From 16fbbe04362b03e993f97bab5863a206f7166ccb Mon Sep 17 00:00:00 2001 From: Dexter Lowe Date: Thu, 18 Jun 2026 21:33:05 +0100 Subject: [PATCH 1/4] Fullscreen UI overhaul: single windowed workspace with live pawn preview Replace the four-window cascade (Dialog_FactionLoadout -> PresetUI -> FactionEditUI -> PawnKindEditUI) with a single fullscreen, paused Dialog_TotalControl driven by a TotalControlController that dispatches to three screens via a top tab strip and a clickable breadcrumb: - Faction View - global settings + preset management + faction list - Faction Edit - two panels: pawnkind list | faction settings - Pawn Edit - three columns: live portrait | category nav | options Pawn Edit reuses the existing Tab/DrawOverride system unchanged and fixes the old shared-scroll bug with a per-category scroll position. Live preview (PreviewPawnController + PawnPreviewWidget) renders the pawn via PortraitsCache, generated through the real pipeline so it matches raid output. It auto-refreshes (debounced) on edits, has rotate/regenerate/ headgear/clothes controls, and disposes throwaway pawns safely so they can never leak into the save. Other changes: - TCEditContext.CurrentFaction replaces the hidden WindowOfType() lookup in SpecificGearDrawer (the one place that could silently regress). - BaselinerDefName moved from FactionEditUI to FactionEdit. - Both entry points (mod-settings button, options-page link) now open Dialog_TotalControl. - Removed the four old window classes and ModCore.SettingsDialog. Data model and XML serialization are unchanged (old presets load as-is); module AddTabs/AddFactionUI contracts preserved. Compiles clean in Debug and Release. In-game verification still pending. Co-Authored-By: Claude Opus 4.8 (1M context) --- 1.6/Assemblies/FactionLoadout.dll | Bin 271872 -> 276480 bytes 1.6/Source/Dialog_XenotypeEdit.cs | 6 +- 1.6/Source/FactionEdit.cs | 3 + 1.6/Source/FactionEditUI.cs | 616 ------------------ 1.6/Source/ModCore.cs | 14 +- .../Patches/OptionListingUtility_Patch.cs | 2 +- 1.6/Source/PawnKindEditUI.cs | 166 ----- 1.6/Source/PresetUI.cs | 224 ------- 1.6/Source/TCEditContext.cs | 17 + 1.6/Source/Tabs/XenotypeTab.cs | 4 +- 1.6/Source/UISupport/Dialog_FactionLoadout.cs | 185 ------ 1.6/Source/UISupport/Dialog_TotalControl.cs | 66 ++ .../DrawSupport/PawnPreviewWidget.cs | 112 ++++ .../DrawSupport/SpecificGearDrawer.cs | 4 +- 1.6/Source/UISupport/PreviewPawnController.cs | 183 ++++++ .../UISupport/Screens/FactionEditScreen.cs | 378 +++++++++++ .../UISupport/Screens/FactionViewScreen.cs | 274 ++++++++ .../UISupport/Screens/PawnEditScreen.cs | 215 ++++++ .../UISupport/TotalControlController.cs | 302 +++++++++ .../English/Keyed/FactionLoadout_Keys.xml | 18 + 20 files changed, 1587 insertions(+), 1202 deletions(-) delete mode 100644 1.6/Source/FactionEditUI.cs delete mode 100644 1.6/Source/PawnKindEditUI.cs delete mode 100644 1.6/Source/PresetUI.cs create mode 100644 1.6/Source/TCEditContext.cs delete mode 100644 1.6/Source/UISupport/Dialog_FactionLoadout.cs create mode 100644 1.6/Source/UISupport/Dialog_TotalControl.cs create mode 100644 1.6/Source/UISupport/DrawSupport/PawnPreviewWidget.cs create mode 100644 1.6/Source/UISupport/PreviewPawnController.cs create mode 100644 1.6/Source/UISupport/Screens/FactionEditScreen.cs create mode 100644 1.6/Source/UISupport/Screens/FactionViewScreen.cs create mode 100644 1.6/Source/UISupport/Screens/PawnEditScreen.cs create mode 100644 1.6/Source/UISupport/TotalControlController.cs diff --git a/1.6/Assemblies/FactionLoadout.dll b/1.6/Assemblies/FactionLoadout.dll index 4b6fd840b0ca6f82130b80ad769cc5f9d7a38dbb..4e79f5dcf4464a70dd65c65dcf4c7d2266bbb4c8 100644 GIT binary patch literal 276480 zcmeFa378yJ^)_BpU0uD*lJxYXI}4B@(8EnHA?!(jWM;y?1`tRPBp}Ep6jTEOJ>4`2 z2(l|6sAvcvf{F{Gs3^e&P(g7)Tp;4UD+;K%4FC5%_f}U`Pr{<#@B4q>^L+Cp)wj+$ z_uO;Oz4zR6*V_MxYpjH2Sq}cc^pa)WhhP4U%JbzPZJ-C{es;k6WahEW@9Wv`vCUt1 z;z{-4(|zv*|Cm#U-+0Vvr+H@%AA9_;f7WTkC!IFD+kuA+pXwcV{DS`e?3RZ0irp=1 zzn+A3(7tD{4^n%^nm63rv(T~@LMm57Pd)(QVT4yxQfs<|Z7nwehRm|o01r6-64vUA zNy>lWuX!a1e>1`NKnB3~gH%NKU)!q5WMkg(&)Sxc@NX2wwZK3A%^nCTs|A^b*N#)@#=}@T zv>)|~KgwoXNo(cbd#u|IwXGh3zV^pvcH=P1%9inaIDZeb)k^%@i6+6e(-f#>?YBdFgMvgJRNHnS$f}t6K26{nN zgkH7)k1oBC*cDE3y)d@h;4`Y1?C-X2#Pq`G8_<7shrQd`9*1^x-|9kLg7sPOUEzZ^L@|P)sk3 z|7!F?hObsH>Ua>Bm)P=)7L-EkM>SG!B6u^qUWD00HI}w?2Y&gdv58tw*-kW00AWe$ zV^Z~4R;5V*;3sv%2>|@$Za4vepVAE{0Pr_=!wCTV)NVKdfS-n+CLd+U>{##7B3t$Z z}14LMZ;4|{@A`P+0uDU(0e4W&f>N!?J&<6qtlr8NFM-B8NqKLO}G7|>+} zRp?PP*3sR&OD! zKvHR)2vn(79BG|^z@&Q-v29>WZDLdkG_$Xqk0x9y_{oHIdJE+ijc{=oftdP*hzn!u z&mir|aoS5lT4D_COn)wEPl?k)KY<{`7}{BWjkKr6X)g_FiP5wQJ-VqAABA4{r!Hc) zsfX5SaSm@M2P&o1CPu5qi_=_A8u%!nAx34uUuCJo)8m9!knmC=Bu4d;=8QPam87{$ zXoyjLWY&*I{R#lREAc2>a~3A80?HDFkgHz>P*z<{>@|E`i%0LGpCViJcY;}8I_13s zpypX%mu~RccqiT)*Wpnd8meE9-~I?f9o=KOE%c<((!7dd-2lo`n;10!iM+XZ&pVYP z>(>FBPv(;8=39WwC3B7kH!Isb8*iChvccb2dL;u??;_ca~28#;c0|{*F0_&vTYIn-E z3fA-49+Zn^!Ti#nDbIobav5qnYDBJuhg0n-54Wkgn}N=T!QL>~H%xb@{yq@&hrzrP z2`4o*N%HP6ojoDXr*!!Jgr{|Q4a1qa!}VJj$ZFtPhI`em`0;LIcv@xK!D;Gt2B+ty zdmmsRm&;W*$>qE|@KVKFIViQoug+=buTSJn>b_Dp3;kWvF06vaD?O;GYLC7)_@b1A| zeyCCy98#ZTa7J!MHRI-Hc=zIM1kg|6xAqgrG&EV*r6W_$4b$*G4U+1y;CLSbrt52b zhQQqnP~N7bRmc^pnN+Uu3Tb5`Nqv@FnTyXcz+5meg>x}itY*@=;wx}Q%?~woKN!v2 zE}KgQFsS+SfGxRl618<;aB#A)bD00E`T}rj8roGZqt-Eu0Z%2@s~%)Hhp?*#@ocl6 zN@exF2u#Y~35HM0mC^*TKTeAeAxLW=>b=wALx35TCo32irzMYb(L%-ApM$`pdm|g- zm%zT%CdT_Rg1MxQ1Y_j1o5+dYr*oxmk^GAy6GP zfuIo-gQh$?Hyie)FE=~h3Z9wLmS;7-4Mw%zTz_ts_ZKFU4~2#p1zTHbT@t6c zoislZ8e-HO&?t0Nl{RE?6gpHH3yghO5B<>#SCr^x_VwALHe$oh+*->w-W$@itWHxZW@@y_LBsZ!?lC21#GKI=w|? zT095wt#x-_`@#BL>Z~Q8>CaT*2td){>#@}c@(KHwb83m9 zit9Aq2G)J)Qq3Jvo1y@00VpJ2X}v98Xdhsq{S>iFZDLqTmDZ(knmb7IGoc|yAwLzh zIUZTp`vt&-Z3bG9(@D7AFY#LG({J9d@G=sJbZNIp1Za^iizoNNP$XisNNIn;h>!~&XU5d?03aFdH)1ruQsS!@2$pg1H9AR*gUMQkL_j{WZdm$lW4z*Yn1!C{tc=$QIyOMDE9XdnxNx(~5UQsy0RE1V7WXdn>v0&=0ewKd?r8_x;%67}T zGC<$LLh|qh(7_hv66z(exL_2m+-5zn&nh9Qw0mq9Oj$TM7?wDWE1Vxv5U=3h$}WX)jyl*pSk!ckAvdd z%kg+>d3~6GISbPknhKXEa%xAkxccS*XWfK155KN|J5u*Qf`{E;QeoEB7Qp-e1V(0% zz_R_okhdj(BQ9S?y%HJN4T@g$(0^ejN5849@KPPLQ#xBp;kAjX=R_ic#p&bIdenR} z@yd9v0_ckIRjPt;pPObH%e*RH`VH3_!nI9XC@#mIbkR?{^#uSa#qvWttyGeN%sYs? zZY-Z1WO|k*kHLi68pPx}w#sgx>N^;$qk(5n$t6iKy7CA~T5SVZ#-5XY4IVdeTJ-A}TjZHM@3KBUX{iy*nw zpev%}l659kQaj+8>#t_jjwIa)4@xRT4GVUz_hIlh*0Ez6Mj4 zo=B$T3_y&cS_F=j9sRLaBJ?iq?#g_sm`_7dcY)cGFX}-imO9`}nSp;UT|1;p2cn3W0svVz zCb{>25r~@~7#xULh%TA!T&l_9R!bpNqy{oLI_51S)Zf`PS!asTdj8B9A-W>wGYFqP zp3mBY88wP{_!-kbtXny$!YCY285!*cTeBJmw#g78EZ3AKYK~dC8QFvujKTJHrcxU z&hhqyEQPJ-C8S!?wQcPMNDMpa6efGH+J-sAgvBO?v1l%|hG^;=v44do?Vl}9dlSvg zNiiZJ8H;}D&2AO|{Wd74(=7~|rZlw+# zqVpC0-u?*pR?ZsiQ3oL8eGoik;<2x?e_Cc4``wHlAsh&NZIRuea2e53-a$7Vs>xeH z3akr;6ydymTF*0nXni(ab<=uKfkY2tlnXIf?U^jRvD1)}(6zW$f}wpb)@{sG2P0kA|6NdF5v|i| ziW&(}r*-X~+Cb}yroR;Kv&9CvPIoKhw`|^a+ikaO-eZsMx3qo;k`n{u`Zt4DB&vEH zQ8_%KGK3b(klus(+gF)CXv?%8I{JTtO-9xqBp&^x0pX_*rS=V|R(l`D zNJR`tXscX5nMOC-kB8V#-FKeB*SCPnh9!&IA5cUM4HoaTed!VV0_-E~*aJJ!=%jNF zxYJG~jh#qpJCQObSREGV4Gd{`z~tHSRd}J@A3k>6CcAg||XZh}wRDBRH0LN*A~d9L3R| zj7aACzldpMi1C(ruSarKjOdsT=>f6a#h5X>>&MF|8Z{^!qp+`q3aWuippK4rCuXhK zJQAq_M_*5zyr0m?d!*A;(N=q{Z#foL5xVp2KZjiSy%|$C!zDYr!2~B@rX9*BjuP^B z6jKsZgQ&$T!L|MX>>%>V2#qCpDCD@Z7(TG2fd)lOtH-D(C~aK1q2cw7qrp?d4{WUN zgqOFj53KEVVr@T5YkLgwZDLwC#L=H48q+pF6QfW96*1q(0oJ5g5efYRkz?<8U}}Ch zI3{iX$Y5%6#))kFsmk_7>=4JqBtz8gYDvg3J3sC8pJPoHO=E`^yYwTY2MMVU#}^S9|m zpNC-eb)d>;a+y@~y&%eE2Ge4vo9~IIkjpd($zhy^!ZmN|bR=7n89Kue z5eU&s*lwyIb>?)S*#8tk5!L;<~rng8n zs3Vir$|fdTa3I5$l*@W&LWU8;ruL(59yx6&wEOCx6|`e<4Wf3XEX&0HJuw0dl*VAK z>t`W}`p$GtuB7m1<8|@-kt^4KF`&=)!a08n5I#Hx-EmDx!&B#g08Gcp^jw4$>Pe+_ z6LKl*GrAprfm%8b*ixGqwKZrEX*nY`0G_FkWp|`99MOX}LC#t)5Y+Lo3WAYg;J<2r z=EL^m6Nv%H4PW+MiTUevn0>{*1mZ8kF(IwLy1Ac0eiD(9Eql!t)=RQQbv~ZuXdL(( zkM1hvT0S`n*FGH02_01J^J3&{6=81^-a=$B5T16(74ir#^hrsXo1RJfRvUb_OSSF? z>2#~L4SwuI{Q>|7E$>47jBIixW=^n4%-VfU0Yb;G zqCfy3&AR{j4iGc|ZcpH20CHaJ446;1pa27A5ivgjW~OGcgFvYl{{=vcMNUM>;zPE$ zUCJ&f3?5utIwF5YFE;1|!q9{F_XNZ+f*ciF?Ez}8Tx4f2=qU%W!(OS1`2toT1u-f$ z^tMfQV<D}nMTgBz1M+Y z{dnG;6O?rW38JhKcR!$5*k2dOEI{@Z$ZVP6)TNqp)pgLsdM$Y_DSRut*$pVysrB0R zE0IoRt@j7*|9uEdx?hH{bqp5K{)tg2M@%A96dL(zUoPWec*WVeN)IMg zYDoVl*B_Hj4{35!f_srdtWY#{AcyxOXp|tH&GMZ)|z{oHsVWbqGn*f%yl!wnp%=k6i(Ef8O`rqJdNP*W zS(MN~kC_eNHzOQ_qCB!5${+&uAW{}Qk!rSf>(h541Drm23)+Xy+0!=wBwR!VPwBQc z+Gb9JA~`xJ5^ngAn!dl4o8BpbT&D!CHzhEAN(oHgP@T@15-@tN-56JT*&6#Y#K7PA z_@Bl9%kUqak#z`~A!@3u*I*6C!W4;dot*T> z)h+GNgw?R=m*x_E=8;f(eJzSg!HQvD80STv2fsP6VS`qpc_-?QT}`_U2DmEIxDCYB zWAv|gJ6?J#OEBX5079k49e84C>L_q6H9i=9LHq#IxGM}JCRCKIeO}KoG&;4!ZhRQ< zYSGq7>sRk1fHjG*8+S8WPr1-n*(D$$DD8a|Pa#A_7f8nY7(kgCX0bHI$4OUQ)t4@= z?8AZ+fihLQ?Wf9me5tHGJzXs9`)`CkHer8Oa~0O>Dn<#tDfWYEDH|U&s2vn-pdM!9 z`vlmQ+Qg`3q(RX}X&xcXJwii_8U>9S!vlGftoLKc$bjC@q{XcE0Z4fjDgm~{EXT8a zSPTAv zX7bct6c@D}*`(8gZKmHO+2@fIC91U0YNAZOPV5&%5MtCm6ohr6yueNt1e0uG#0}GyRrjL2 z@~#c1kF_kHa%<^as)nI(B?Z_j7=V1*t@gUPG#2qOrglewMw{-%3QQWySOkglg{@w> z^a6~r^J(>UB)RyfsHwU)(krP+^(er_WnTk4msfc15$+uiufb`mA(g)by`s2i|4zYsq&^yDbvPYEpoNwdR`wkxYzDjMd zPkooce#1{<4EC!h0K^Z*;o16=czE9@pilh(Keex+yXu=PT+->TT=tRYAc0yxyx6f^ zN?xjqa%puBRWpE{sc065AuO9masyT9DL24*2u^&Y)h7_(7T>h`AyOb{L9d+<)ZwH_ zYEN-ru59(?lAug#e@fIG8{JCn#?OfEz`8pjt1X^nQOwz+H^BjhG0^K8VVG% zC{WDwNSrOgI5P*QYaLAwb)=#?dZ1fJ>@UV>O!0RS{%7(3D*T7d?)X^uNG6It#1pg!FIFgIfO<*b6=2l_3f2Y0~-_ zXy>8!)xQm+l64(A8IGH5!r^c_gXNDSBHVqK-7;zt=N^;NSB3*(461%4RI}U$<8Fj% zw*LpAnqvmu;W#>hPU1VXi|{0~>_A-U(_wL#s0`vYXLSHAGxrd!g6#am>6Gnh2lzmE z7l!#jnBHD3RX+|qE4})){xn|ntY$)*2Jmbc#IvQ;*AvfBc@IA`z*Q0U=lV3pZ!zp; zCt%lqOe!Mm`ZEl&pR*+)&0Ba18?$@pu=-Cx*QU!-|0zRoKOE%4v5rR`iYNojLH-N~ znRv^()gj$-U4VZMu=fi*%AEl~4U(ZuOdJks_ZA3dFesI*%W)WX6QNqo?|@QS7rA$j zbz}>qY16m$ehJpu$`-EoD+HhiI=!jJubC=6Pi)FdrP58lyL!FsiS-cBb#+4|PwhYU zT3avC)pvFa9wSdYwdHq2y#a}{6F<9t1VSa-TZtcaG#;(rfbWp{EuQ6;&`~A{2vO^I zAzs!mT1bz7LQ*}!zXw^Au*{v5q!W-znpM9?RP_fuO10S|e(yBQ*uNf+u1PC(2Fd=& z2gQ^b6ZI#)PUquUJSy0?#fWFK(}2Cpmf=S%MHVrpz;NOuM63T9boIaB(Ii5nz31=_ z1<`le5i)Pdw)S0VYl$WtS_ghUf227z;V%O)={~`R5NB8ZVI6bnP+WsVLW%Gw!+an- z#xNfUk2A~%%Z7Cf-i7?x6O8WPjJymL6k0y!l|~8q2q1V3PEXkr@!O*)Mi@KRg|{}>J?{9^&CzmftX2rDW&{1J5+=Vr>`V55t=rxnT=O+KJFv{;CF!`VEWKV zd97W?bVRm^K?JO=&EP%~OfU$a9kCroK*fSrZ7LSpt6NV3Tz5%EghqQQ(gtmFE7q&0 zOufPgmGz20x?Z6LNxgcS8jCZ-zS+0vszjnDAE*}Sr<^7q2&0&sCLiTL+7rb4dqY#5 z7Dy`p^?;zQX>F2rir#|uMr5cZvQuehYq*Y&!+q-G<%sMm(RD~4Ugg7^uD+}_BQ+p zK8RxdZ;%aJ6Mq|+u6C+vv%rlJsQ@`*&7xz#R?g~#-9V*rYNr@nryn!>OL8Mo#6A!s z-)rZ3>5gv)UzlSj-IhwNPf9KC9#0b*8Ba4Yon&7ng8?<)-9A~A>(A(od>LeIIx}gu zD(M{>{z)jRZdppTnKAkHhB(r(m^CxqzvKw*gX;8lj&QF-M(=g_5F3zmGFyPse}%mc z6wmAiVKBPaL3Zm6FV81cKT?xT9;xcS7|M-;FMh`GBYVh#-4D-oQfBwY-4A_c_d}oF z{cw=Zv4{GGHKye+!)otbkco}3!d${z!6j8o$&M2E;X6_{erIQ7rn55=d;es4Ht%L~vIoU%NlV#jo(v^u&Dct8u%mv( zRmQY#DzfL1p;s54~U_c@GxZ zQamzdHIa4{X2hD0wx6h`6FQ?*;j?39QD3&uTiJ$yXU0}yU`i{L@}@x@)uM|73Da3q zTj0J@HWZG6C{Y=kBN?Y&ODPBz$Tld|D?A z4((CiFTp)pN%Z3g!j9267M6Vksp_yJS=;5k0Mvga9fpQCF~j9xI*LDD4!O~JG=M<> zU?P}n_;|l&KY}AVnD0SPsgOj)8^UXEWlKyB&p@b8)26*hL`>g$1@Zw6a+R%pM^7N% z+!>L}{TGfm6G&s$3;mUyur-d_&BNd^{fuZmpTt0$M|G2`%`#15{+xiMx&W`4;>!Mv z&gr)6padclU=>^Fa-)zJI`vYwEFpe}W5>P^XJ+yM;5{3}s|aa`eA z{PZCYVvRccrm$NWvDS>?VcL4S07KMk3{kH(M8gA4b(+pcQtPIIK8D#!YTXPZmtZ!| z!Z7v$NP|?2MR{f{vPVm&wJwrYxUI{-9^%micBQQ+_RK- z{ci&5@a(S}?){UDE8UJ&@ZelKN$tAg*$hBFAH(WSEzqT|hm%$h|ms(qzlS{8vvsr_)v(y~?;&`&& zMO~0rEn=;ZbNroW1U7OL(5X%Fc=bA#Ezo8=_FUAnfuLeZ8-&*qsb*{w`GpzlD#x;_ zYy-cOHsCZ-Dh{q$zznZ61?e_|reI3gxEX`kPrDfeMCrH3R>EY?4PLO@d6!N0(7Wcb zPR-5(;*4kf>pR(F=jw7AdP8-hZ$zV{Vu1bdas_wKt-QXQga70IfFUaW?}Li3nfKxq z0&bJ>cPa$>4+Z3XAdY`AF~d5CfjoO?G3`uJF7W7z?O(kCW>Q0tD!j}KQC*wljie7S z8IIII4VfUs|6PzcYT%y`&Zjc|b2096GGGI8?OH^2kCXZb0j4|RFq69OhjKAlBhx7e zR`-v*$o}B!&T^b50&aa8r71%=tZHEh_Y*4lQj~M4O$^VU=`%HG%XbDMz&p{qqx81$ zd=kpoEaRtUMnx1~FUZ_Z-B|yqE@Bk$AEy>@)Za|{4D|0O1493+F=~I>oEWb+#$F9Cx&+<4 zJ_17jff%))+9by7sMxFFMVBJZ3l-LQQQG^2$0>f(Mh!sD6=TGB%Oa2LlUwXs-yDrd z&BFr|<${wFJtORR&3FLDiFd#3hw9iTJ`A<(B`UD#80h%nj5ysY+}F}NDf*9 z?f|T zj?hDF8Nk*TL2NzF{)=dY$33=2tQMAVqv`#EjJ0Nn;Y4GF)1Q?#^;rIkELH#TeL5Wdsq*9N=qbZT>21=(B_px}~e}-|1 ziNs|jX?u?KFy!8vx>FS1-0MXR>Vm*Y7lx%Iur$H26a|(c7-j~zvVkz>+B2@V3qpm3 znCvLKEvy6T`k}M(FN(7(@TE2}ymTy*6>y=>F~gEcMYyC|SW=8~`FF^LmW`(o9mCQO0T$!<*A8 z>I4=KRRUHNYAP#2Ti=SadMRW@OoSEnA~xx4wH_oQInn6=!$ll=;O8_cazgZ{mE z=blg)rXK7G#cUNYtTFzBz@RPTl!DxRW>2v0_&@4~QX>D)fSQ?H_$T1NT>3qm#-Qc5 zx6m56@5#>rV|Uj1{{WRxtmS z_G*ZO-sDCamz!YI{CkmjVW?ObQhSno-2WQ@p+^RlLZ?aVN~#5aGOJh8lX@k;wwa-& z1q_ZQmhghkv&12le{MiAWv})wV*Q8eS97B}*z5kmgHwY;6IfGr^)XGM^59a$pk}6o z^9yOq!?w>L7?Us;jy_CX-;v|#Lcu=X+FxUl3xv)&jR#1Zyy7JexfUTet$o2m@5#>S<+~5A&xUts_^G+p>Gl0U z)0ckyU5xZR6}%kKp&^A$h}ogXF*{*v@VNxn4YBWYgs6|tyW zcG7!)81-?~cN6ogA#|8~1BZqN-N_lBfCAwj9VDzeV!W@z>&Y z@Is^b4|uKV@cMUz7aWfNfY(PmytWvQln=Ts!%WI2qH69gE(SZH_eY$y&4Zz~Tq-QS zkmvbPp6En2!ZVC|TSuImqfuc~UPIK!!l;k0?!=6gys0ytf(}#ta~O5#aoD$4O!bzI zz|%JG=;!l z>}V}NSIg2Vp{vfvSuQN6*Ki>R~_6s zsO_pbBm9l%8R3Yk7i_U{RU28Awc{JKuHWH526FX!N%oC8ika>=w}1q5kJmv&aSS-0*Ca6rR)f3= zSIsG(S3d^flC9Pts_Y#BnwTbO%Ac|)7{z}Vq>>rIU^fCu{96E>$APc8%k^w?i3g*Y zVGHTZA}CIc!Z8$?;f7(z!34gj=l;Dn;>G5*wvGg`3~*W`>~+HBrE@3iy{PFJM?HgD z&hbyudPp=6|KY<_K!LaLGMmRSYuy{6L=O}I1jmCwCZ?EahELY;6FL#+w|)?`vhPbP zOR<%0LwuVU1u-jfq^}7Nh&=Cr@_A*W+k~@0zy~`3W)A@D+c6Z(BLH`G0L&;V6xV2e zh&=6pwlW00kTnJdt5W*F`Zg;xsP&}CCIh+?AyWM$k&93TPLU7GEnpMfxPa)J+AE4Z#He2TJn$!>^q+XiTP|0nIa?Fy=-K1xZLBrfB0Wik^Fn1cj z90S1IX#jI9`E;x=nX;2RiXH!>Vg0u!SWN!I-F1&MiNQU>kBkT2G)45EWR2v!b^xX3 z{1*T%Dx0}Y;9*a&WMpE@_}FI%lo{|jEfs?@7d|JLVo+v9ro$poz3zpH0{Js-fmvW% zcw}5Enk~{vJ+td?hC-#5m>>l(L8fYgOv*H&FWS|u>=rhC!tP6{-va&DPi48Z302sB zQBjx;sFZ~{R4jD~eXf>?tMCWdE$rdcJ%_FrY1WI=gbOjeiKx=T4!~C8N`|{AFA6Cyj!-h(MR{>Zc}awl;V#NcLQ2d`b#lZoDUq`vM{f%$-yWf4IHY7V zYup78E@pgF#=8`83fml|YenAF6v3ASSHBDd`K0%D{1(d0BS4&XR|0vRr7U(r0>O&F98K&eYlOT`RhLq^!JKA74 zqzrA0`dG)HG~NN48kV&ag-XVew@Od3I$cXwe+L*h-x+eJerrIAyq9bCq=)@s0~%^x z7t*pVR2PUhj#=qVX(F!&ma_^KT$h!u4(dqQy#FpH!-wGvzs%uHCpQ9A-6NIH$R3zH zZ&f0Q!VVyO6T(GVcxDrvRE!7DLy1o|RQZ#n+)(Av)<;l60=4}9bx8s5H`5(Z~k~8&91Gqfv zOPw00IrH#w;||c^P=QnbAOcOk4Fx?1hFlH~QuHszNW;qYdv^j^Sc(k5T?(M1Gc_y^FAS&!e%^EKvH$8r$wku1+9$LG415?0(Mjrshz)p zXu0VP{^;7dnNg?I&gqlx=0WZB?m;pmrh3&r1#1?oTd!K58xU)>K96GI%Jx94-$I^r zV_#%6mz#9ApbVcx^4`6aAwV=p<$VgEK&nr7OQlaQWjd;f97}p$DzqpRox8L6=i&Pr zQ>q2*<-=+U&N)3SNES(<`DrAml_V_*YZSUAVVOanX)+olB0rcLl+!k7YlGprrU-># z8+z%1g*dVQep1S?mFGI6|v5NZ92e6e%* z=5n+eZjLETIq6;Kob>*j(9AIzWwSOX?~B2??-}|ORYRY*pMg_UGxXsNlarp6m|w6S zOU(U!a1Y4Wlka?kJAgt2{LSeDKASe-L}vdLI2I%DQg-PZvl6zf$FhZ=Wmg=6=^5L) zFMHWoZy#xRH^fV}W$i@2eM?kIet+b5s1$C4&&EgCFtKe3mlq`U5L7NNFxb0^#W68p zUGF|rB7L<%Z*``dXwVPvN??ibXM!-VlyK{x#cT8TOhpHA0whR~EWOVGpHD5i00Lq& z=ly&`pNeyl*zffygwFL=HphXq&jTR`BSUajE;+A%fl)H(MIS(*x(fp92tkL+n+%Ez ziWTKHC;*Q2k&E{r9wU{!+n^{hAO!d#kW1>i_eo6_z8>j)$iw>*@P%zQOEl=z$RY#W zB6oyM{L6r-ui$~Mg{(tbx-}izt>U!xhk)#pXTMe?H<4*IvV|@#(o8zu!ywD|E&2oX z)TbWd8+y6OM|5^GZ~7{pfyx|QfbdCFzx=c`tn9rAjbwrVP@e*z_7s|zzE?81pt3*m z&7GaW@nnz%90voA)A@-D;TSNYd)UqB&4{YM!b3)Uo5BbOHFK}P2$}sVGP@+D%LFGL zzq#Qu8Audx{*i^GJ}zBoqzncU#f&Z#!QqYt413TNER3Hlv{7qIDA_a~fuj@WzIjYn z#o^oIeJ0xq0#SJ!WVz6)&a=O~zD?3RD0 zzoMHWu5D~SizMW01gOOGSuwwcG!z`-N(*P)q7K2F09$GkBQ%Iq4!{CXGwDrf$>lB; z7b_kMwkq3f(;`25l63v+NTkW!=scz6+W*Rynu@s%sraTfpsDCmB%5e zt1C`{uCZ^?ZBUKU{A9)&n-|mGqhO@pWbdMxz}EBEyII4>>EhY3g;^peVXG^Uk@A~b zm^|ZA42<^iEg^=zZ-CE8c}M-0P*;&o$FgO!Mx}fNCNGyjEttHtZRjx3bnsLDCH8G3 z%C^23$(4(daCP?C5V`8MJ_p|AL@nRK01JtH6Nv!&d4b|`1t#r14xotVeG4JZLnSOs z)AN7Mt|qvtK}&@_Mc)QRZBULwW;M|Dz5^I8MgA^PDFmJ%mp{rHXY0A3u>XRtdWy^RW@xK;@oI}VnQ3z&y9RK+!gx;4w zbE^m+m=?!h3J7-yJb^r6hX7__kS1nL9RDz4a5E$34CkZ@bP9mMq>1C7LyWC&HBT4R z^@8Dyg};{kqjQ@V68hb4Xp_*tY=}RntNhst{1cNizK4`E1%+`fQbq-K{Ovb{xtf^0 zHiT&tvznN0X)hq=!VO_KpW@#JOe`OqJMll;4ZVcWZ+Am6aC7`gK+SCIyF`AB-yDB< zeixMEdw&#Ab)!&W_yUQ;cUU;bKQD}RlTe}2JN~=7p{V?jk#S+fE9%`sim|Zce*?fy z^W+UfP@NNLC@05%10ZGx z$}N09k&$sH>XVF|EGP`^5EHRd$G?H^7DHAVp@NTqqiaY zM}j6sAup9CN(S3>A*a*Y1dqv{5-zzJY7$^i@af-=JSpU^f|Dacqmd0r8IMDNJ;A5{ z_>?#rc^8q-0%>Xh-cbWSMCiO)2a0zHA@u$Y(SMSd9}lPQkhOb>vbUaE zS8VkFIwW*LukpUU?ZNAR^1i(l9I;04+uIEZa>V*y-nR!YCA@EsFLr~^srT(&g!KN` z+_(4lc%#^sjp7>k7Ns^Z=Ds}&@yhq@iPo<}-2dRdJ)_a^zP%qBjsB0^x5xaL`}SUp z=YP8}|HSC~_Wlv4*`72vijIhh-?vBB|5x6(XG$QvZ*S&8U8n!weS31A0R5HTn}TtG zwKM$Y)~8U^Jl?svn|e1cm%~w}r_h_Ey{GY1M{=*^dW7USr+d{&+x`H<9rz&PQ`4T^ z06x2b4{pq2rI9O^bg=$o#A^~5&ZT85D_xmM!$+;KLD8-5ZKZHA*1@zyOT%V!tS+=v z_sm(UGjSGPQkgb0W#)pDHC-2+@Sa?bda}!{rH5b`U|U;R$6c=X^le=Sq6ba$3)1{jXo%s!rNU*Z%0Xp2VR}>aU6rzL<6=R5t;94tyjB9o@9~{3 zS!1UsvXtYX2FEhBR3ZEHB>*L=i!?;;LNJ#I{R(N-Hq|d0E7xfWi6XM%6mb!0cKx0s z{#q1;rkS#BW)diWU>n>`#8Ss(9>>?RUO|jrpBM+X$=Rqa96R&xfCH>OSq>bJ?yf;r z{nwyspANZs8a3NK1EI&~!n2Z{t8=&aehX+z4>ot8+4>#cdH+;}cU4u|tit6T6LMvp zEkoAw?AE6V)P3%*aK)Fgj0y98&&bE4Vylx_yGI~&wz3h4E6G0%6 z(%v8O&b!-iE%50nkJzbqx0x#V$!HZ+e*&rZEFO7h(ak-O!twshH_V;NC(Lky{8;eB z8`bAufw0{2#8IHT=oH4#gx+5e4dEXm6Y4p#zyzy$9)a2}o!f=Ji|E0LOn>IKe3@lf z^HQPh3DK7d3Hv^3k z9RD}Nf7WMIG2WwWt-$}2@jr|I!5=4OzkwG_g~@%a0eu^=j{&w2k^2ns*><&Ga%Fpe zg`#n=$h@%vn)-YyXh+%BW2BtXVFkCnzkzhbZcur(J#Fv%$lA#IrP+>N_7hd$PF47& z4$J8ptsA>jLZNvLE>&j!bsH{OnFZRGa&Gb(z{enq`a2T!ZvZ3pB0^VWd$4`>Jm^8H zYSwnu3201G!%DhVm4=#MM*7&BM?vxSMg7Ba#m+Fw=6@Od{71+X{YVyzJ_^); zCD-d-8GYF-wox!U`c2kdw4Ts<4;`sq+%^rPR&Mf4ql#9&S3D~9Yei>f<^djDyn@?ZEGVr=J1hdZCIqh zmK(`ON^jT2N4>D^BI_l=#bj-Xr&mE@xsz$)l!t2x^&ze;igoN?&6f0b&ldLmW%X{) zlx*Vku*okgx0|A_(*B`JS?A#Yp7@XY-&v<1{9pLLCH@biUJc-ve}otDzXaGWUGO*I z{YKz$ja7%9cib%lY&mTTCKa1RaO8Xo(zVtV|P_v)2ut#k6ZnT|^b*RAJG~rtWlj#WQ8~AbvRh?q*`Z)j(k~ixJ zc>lh`yHHL+A9_8Y&)TxX-O2&Ch$GTgLi9A8I$gZpOEWO^v%F@%)#sk3(gi=?T^ zCFklY2|FGt)Bh`CX@jp%KFHxGISb$#J3e4tev{5G=j~S`f2e;bL*&#!7il)u@~sYg zoXyV7UJ2Kxr}Q}dJVzA(>czd=^D$LNnv|Qm>LjlS=+&fBGZ7L|r9+ZSw&zaY_S-mL zXj^+BE&NAX4>GM8cH@iu?FTCcq*uei+pw$f58DBHn?TLgUZyJ@AZn~8CC_=_iT>Wm zzu^e{nvPq>_IY+K(#zR(Y!k{h*CAE2TEaUljzHVtUmbgJvTgSN{%Q!&W>?~WfFW9M z|K|+RWXq@BO2sBt=&~g-_j0{!$uIASbk?CbOa8$O_A-cXQIQTGU*b=pi49+P+la+b z*xi+Fxu}Jc?(Xyyu>mK`rDMG-xXYfjKQ~1hN@}F}O(;!fr0!(T zoVu5>6n6AvYftFL{HKlu0b64~xA_8tedHy;*{u;x4APgtaY4U;aqYU!_ z892xCex$cQ+s*_Nik^>VV*Z_rU@%WY&g}^%=zosyunu@Lu5M@eiUvz+F=EQFtzWLQr^kmK6MCjej&3oggIJ;33u%g)O;D3=4c)!gO=wJcMJ%QyR2kD~BQ~1fkk8CpF zUcD#Uuu(B9m{ic#EQHh=HbJz__fWjEQE%n2f2?heCoJBb3jXR3sIG?3xrj}FF`<4> zASSI7NUCubdNEBgaV04HZ-H-wIkpSwPpZZzAkc=PY3 zG;trhShdT@`reJQevYhnL*&4!kv^KE+400yGcowNC|zRI7m--24{_Ld3YE0Nv?}+# z%94m63LYj;gi4$#(L zy0b*GFiVBjCh}C0~A-@b?$ND7t<`t0FS^QH7Y??nSS3kadeFH+ zo9InZyme}CNQ#z@mq*6cJ`}re&@QQc5fa!+wI71%khm}9Z?$V+i7*P!rq%wSsBSL@ zcwBV=UidW@#Aq*T9*DP`Bs2O(TZrCqrnEUoV{Tnr0i$(1B7%JT)5 z=fNPW#3^uu)a|&QRV%A*$8^#@$)# zNaVZIKS*n#Wsb(uMmwpyj&#siv18xZBzyt@m2;v z-6et7Yv)PB8RdEL26$#8~!K zSTt`Pjw9&1)t^x%%jZpFYcX|O=Os~p4o|^i~TK5`1Iy7gP6?FW> zQq!ioEX$<(BHO`Xs4#)4COsrD4rrmZSzy;TMPSlBo^}l$HH;@Q3X?#Qe&JnAZ1;^O z_ID-*pShD5>7$9wjVJadCI*)mi4mi|5=-peOzf>2P3#{`?1)HWq(@@Y$HlcSw1(q} zoxsFiFNqPOFrbR$>?S7m*hUlkCliB{(#aX=qdD6=p4f>@4DJMSMhrIt8$Ui{y#@8^ zpbhwQz1TS*{#+{R&ryX#3O)fYrE~v9G0=76TOt_mRq%l-90e&hVfh?)7$(me{w^MK z4;X$4KXr7wS%uy(+k`LRxU-w^Z_~Z{ zcFNLCs`t|vA#cpX;rM;^@mXL)tzJA^^WtT763gm1WT@08W=MSv*@6|2ea}eaV3w6X zV;N>%qhE%G$6%cQq=G}F2U+t$r9TYqp(U|3&KQM(b?a|uFN6y72pxh)#^p-_O%x{v zFes~R(}FQZ#{T!G35&Bch2HSkz_y_P{B^wGt6{3N*_!w$r1$ZamPlN5yvT@KN5eL5 z=SZOI5(1O%o2hHGMCh6rh4}_FLe+yvp-KA?8Gomn@pLjqyXrJSl0}=~R`H}xWl|_x zBt?vRRFVoj+z&I2Ek?V9$7#uU8YGLRf&H|4>Op7cv@i`~y3+Uv)2Mf+fu1BjC?Q!i zjrs93Jf@+i1c))ifgm4uGmWozr-AM~o)3~m(vkNK``iVinz%zu9+q1O{8RwAf=}WxNiFh#;&hp`_w+tU0{X#5(nn4aOE8S5py?R zS+VC1pVFJ~mw~5$C>~PP!+XI+EN)sp4s(K7@;nqW$t|-cCvxqqe@75e!QIz4ZYSvE z8Q;E-AAah`dgv%(;6Hw*k%fv-Ke{#4$^{LOFk zrm#1qFV`jDqkkJ{DVP5kfUs{oo$U2TI0rjh6+>yZO2 zfp+rez5Aw{mMXp$WeAaDo3QjShMx_HIC=c^py`ftz0x1&lbOZqI=U6#Qa21?x zcMz6b?zMMB3NT(Xx^kt0g}|ps@b=7@LQB@+^YmB%7r9HN^nwBpE9C~t8WUAkYX~LG zb7gXIjDIg8=KI|G43rSon$U`QEr53xJCqaHB_Un7nx`Qs1-R(iP=2B@MYQ)r(cb;H*&CLGt?tJ0-h`B_EFW4} z|JhnM$2DWCQb{okryOB!!QU2`p*}>y_nOUp9nK;w7+CdlU=z9Z4BIO%hZ>sOz%UMK z3zvzrq?Sil>3Zktde^CF(z}P%(9}D!X^*Npbdq;*707Ze-^cLr1~;%B@`;EwVP$4Wktz9FCm%;y6V2V7ub4Z@5VQJnc{~Z(&_`|Kc@%h%M;yW2cpj_q zJfal@c_gNj$Maq(kE7!&A+hAq)CvE0@jPaXUSeg47sTw&<(e^FS#_1cVPPHMonvf2 z(($bsE&7$+WVa>jmEgi2Iog|xeaWO&!bHoRHcKA-7rtXUfFoFuYi;B!I`}kDGVPs( zB8GcyjcvmAjqjf0KPCXJTk&5SJ>EIiy$!z$*tfs@yf^Nq36>Y=tyS=SbeS)qd#G_T zaeXanIdSrG4PN-EmR5l=k}Vier?rI?mD~(AfO=LxTdE?Vtt~^;G@{-jC_=f141)#E zW$gIsl@Pcd<|GaAI$TquZhRq!UG-Xe-$JcuEr`>=w7GQ{GtdyDz6~1n9Xz4&0%nc87i( zRFAkj)Ky$RLxQcDPyx^5S4s_7P+U&YXz-^umtFiN;L%X&8R0`-u+{kO)!!;alAM4; zT)8G@5vDibF^gef5$EwyDzPAO7im?lPd$O8UfvDb&Y!l|R zw?!zheBc}(d#KPahXM3C~|;V8}|fT$c}DnWkEZMW=q5 z3?{MO)9v=-dJY+3Rtq`TuLmU)wj($n874M!d{w321i-Lw*%AB>W9Z4@OMQ4Tvk7>S zg(BEaZOP?sE;w%o&ymFCmk*v#1=G1szqz- zc&7zt&8?r0?3UWZaQ9|~*VDlR(oT6%JLTc9W58MbS?C=11({I|#Lo947v}ZZu~oT# zjwdi?!q}3SFn<7_K90vTdfekb&{3U?Ql{nl8L=}&!HYGvGB+SV^6YrFxoOY~O*~1W zQ&I-J5m%NmLQ(lKy)NnGV|qrq4UEdVbezZ~dqd5nA3Y5Ftbf1s zlDNkyxW_544Q10kmc5j($L}h%gM=$@AUbMG%zqudra-@3%`x)!XpfTftr0>yTz& zTEo+6f%7Jy>yUb{pW71$*Yrz5x^T4^})ZkK_T$+Ldx9-@9K3<42ipk$hx_%KVV)?FU^3X12L1q3U zN7(1!!P~jC&dUpUHBC{$A#-)OpudE;!`M1z1;e>k_a*ChtWjNfwoK{Z6hvN)ayEM|}hG4Vvs2osrLB2R8K zky%XS9i5yki6;UB>ek;W>LP{*&ML0#1(eRzDC-U;vBf?cE0Il^M7R#Pb36&y$PEmP`?&oo}U!Th|(}T@Frw2eVGJE=y34EdL$|sw2rcbLm@T zy(a>UFx3Z)cu0sJOLm149}m~xqn+u$5M&#hvLd^Y^fsg$kgYhpGSeU1*Az`0(}z!_ zxoPpfD@E6AE}CF2!cAhX|JERK=(0wq>BZi9$mP+{TOBw5RYb%HD8W(R!nGvI&Hf82m??BqC zk+xGk1_k!Wa^wHA1eYBl-zvu@wZR^I90jqpmQ$hmz$Ueb4*kcNS+tm-z-em~X2Y^g zhRUYASh8mCa#E`ks(b+uS!0I&Z{*Yv?dxWtuX>pl_%X{*3)-`{g7JE41Izz za$yY2S(q4DPT!ow?-Al3lbGxcXSQ(@^bu@G^PhC*F~)l(#xsnuK8!(29f>h90fUiL zH-i=_ZNYf&lXySr=ovGr)-j^z6Jndh`f&8C$qi&_*+6DAH_?tK(4cMA`^#M%o8i&6 zB}m{PY&Lf{u;-ewW7^)_e*#4lkysdNm+U;0*M>`ge%fo4`+_dHX|7+r+>HGSa+BdJ z$$eO`m!Fn33E$>clt|zJ&FF-SO2Rv8wIt-54du=oD-Vumh_Oo4-w$m!Sx-XH8iH;i z2=3IMJIx#h0K;o@VnfeGy9pFL{&h_8*~onC zTKOmflP;W`VDC3EY8`4{C(R4OG%tkEdhhqENfXln@og52j`TYxFUI3iz?llRSr8N7 zb$wwd#ak(b?EQWM&j9s6iW^`onZP}!cCbnBV zF}Pj9wrpZ#4|7NH^)SmVCVT!yldUq@u&3WWo(P<>pr!!gvLfY)GNH4~u1+*()@|I~Ec|0;cj67P-3i;~55p%Pv zPKiwN$#*Y#TN$J?aj+5@F8Rme>WK2Kc{`UGaGVwV)})IsqU}M~YbjOvAMNB|1@K?Y zn6`;eQDoIy$PwLYR@V!d=8bLSsV;U_)ZtILrGX?rv*~(R49((H(LwuThevN`_e8Ir zJnh}+{jO8)S`4Tb#)To~M)RUZ8d0LKK0{m^+g<~or_P+om8y?M)b!5U! z)YU}pWU_*L}oIa@c|II#Z_kiK6gA&a%)sRZyK(KK@7aaWIB(z zdqht$Y9)BgeK;AhffUEp9Z1hnKSi5w?G?8g7%RE;4+33k6Qh0x8r%T{w>-Xap|e6a zJQk73LW{G5`uYgAT5w|d2uNtOR>HQWSxeQO)XC+6#`xuOQxJCnp>r{@2O3GtPh+z% zo*EYG?n4=BziTiNDkvt*=}}>Z$5ug%XZ3V*CL+d@F)`TiP$4J>PKZ#`CmDJ6ggk}0 zSzNjLAtE=N|4(ixNon7udE0Hb-7=l?O%K4NoK)DxUf`QDv)q_xi+Q7 z!R1IHn772rKBjPTm=TkeNc#6OlhybLg!JylqqTRu4r1Wz);|hFsZEUfIqIPL1s}h} z1E0_p-SPVV#_r&To4~X6kAb|&H|%4>9Y@jaZ&Ma|jqXW31k*C4eg(F&PjXbZINoaE zCdEQ8yZWCmy|j_DDOWMMFjo!jRBrtINv!_H*3Ul4K_|mp}66| ze~(<`^l-mz4hT01bMRF;eGZs!8yKI_MSF#D4jsBF%eix?VUz5W!#aL zIeoTDqfJ?bKai&V*)cp!r&Llqpb?e)A9px)_T~D!9vC!9a@TAou=O!A!+|+s+;GEl zO|G@dwyfi!D=@dl4Y^$YknpbrC#LxTuY`s^aS@x@(-L*%{&zWY=!I8P23K$StLU7i ztGH4Sm#uURMdLgaLj6i~Xicp4If@+@;TDLl zPT!OhW_BEI6*pGdI|{{Y_%S!tgCj3P&6NN}01~f>MVc-kwtHYT3zJe2THc0$Dlk%6 zWq>llvxEO)R|cp}euTl@sN}&ScN&hXuIc#U`8~bA6+;IZJA5>0@lJ^x=YB9><}~+* zoo2m$CQ`3)`HtHlqQR^!-XmdIDXdR(o6M*_Vi|Fwc3lCVb6-5Vws&Apsg8iEvJ!GM zaO(m)9Q5=uHzu=U+;u=dr)zJfU5sua?a@aSaZQ%-r?Hr;4|OI7oYmF*pdkSBN5(Zm zj)R`AcR1rCLY=&T#2Uq8-KhEm>H!wWcZO8eU0TzS(bj%JZ?-Q2lP+f8-1c3%g~ z%O7)U{4=^W*MK`9AvJ&^|9p={da$<%hQ1;l#MLr~7d{{`)m9hQJ|Cx7-N)#ub?V&5 z&}aQIBO0AIIPu1uxq<3WDc|4*<=ShYz(Vt%Dbxb!*74*(@M|*C4I7dV0!a-+`6I(Z z4i;Y0`w$U&)*5ESqfc(Y2uz~>L&zAJ*rF$iuo>Vt7oQ0JRqt|uB_Af~pa+ z)<*!LBVVqSt!HXwb}KPjmrK<_qgXOHLMb-C^RLvT_GC55mupB?lTgax`*l=SmbkL? zjJ!aRs!6rhW_9oGwRwOxhuEL!z1QYF)X+RP&Apq#?ohhCwS%TnA3MsYF$!(><5V2G zB6RUl>!ZX@&MGGUIfI356*pULyIDowyvL%Ej`I4lO}#~<7f$tMit+lgn9~)hxO9t( z|IHqYKU~FsybJm1y~U$r=GiWTTru%4fZXl1%>!Q#Gr9B|RM2;yi?B5r-$p)vhfNVD zNQ-|%N7%Kax^kwYoW->=Wb+fZ^0CR~avtXcwPey8^juNgSUGcsy5}fCWJPlg)*TEU z8R2aG0}Q({SS{WtM}4GLuhiXRM#&52u}g;Ja3YbeBCHT`cLc+fui6BO zQuDAg?VOk0Z!>@;kkj1^xNRb!mz@45z7IEie3JtD@S!fg`}=JSAIe!=`_v2{$|v^Z zt^+!L4umvjPM;egSiNoirx1c6*^P3H)C&{!${-lwEI8fZ76__xjs=1$z8fS&1>_O4 z{&UwGAQ;K!9oZ`2Kt*cL+U+=uTBl|(4(jQ+$U1JgycM<&l;s=s9V*Q)ba%P7iF7ep z&MhfNQXPm>f!tkO{CX%`WB!5ko?F*Hfl-}}`BHEKH2la6UhC~;Vj21MN%N`Q{L<7+ zS^P#4`SnZl13mFMj^nzEtKwcqJEn)C)+a?@^6XZ}@4ICPMhSD==XD`V1a~~JvB{O? zer@YI+hun9(Wk&%-H@oZKWU>(w;2t@pQ27POaC;E)@M=(?jAPJGE*sgn_v#x93s_? zMc7gnZP!qa@^z@|mc(!JxIXx-xp6%h{3;BB%Z2Oo{-Gy=Ob5lbH&J}^@-*vi%oXV} zzb$cQ%A(G|u`5Eqnr=%drgvLnHml^#s^m3$tb}`7^BnxF-b&E4rW{-`j)S{}no-R> zBMXnV-6-VmX|1MN+KocEO7XP-H$7Bx6e7>Ppb#E>5rw!z5C0;C+;;aAl0wi=2MX_@ z0~?Q`gTagra_y7TtU%MTvi9thJ~WncDIFz%iPz^bAebsnb%5aRKg){f?tz=MfK>%6()`xV9-(dNGZ1L6f(qHzT5!bJDOw6}t=R&bVT1XMARaJn3o< zRY`V-m?HY`5Zf-WZt7|B%sIW4uuG9%9j2K6tHYk568_Os0v*EMSMRpFl4UKa%^-#5 zTf#m=y6vtQ+jh@e>8RUtqhnhe%r1;SFI4S{j#Xtj>z=L_SRI;afknHlwX^e+wi7Oj z&6V7C#GDh9`t<8PY^N{o-_^aVoAWS;Ze}V3=5+7>>K#r(__z^6S37>PtHYbX2&EG0 zj(l)_Fy+SjlKTz?=b>w354PGu_hWB3UqbJ6g_&1SM00DJzt>!M<{@bhpNC^t#5PRS z`T`v`IjfkNF*Wa3jP3YDx)0qmA|&?7rm<}k$1ZK5`6KcQ4*e=Ja=yUKf80(Y4)7B3qNM&{9a($1d3W0DebIcW-jQB zMrRwfF1BdJ#0}~-$?#Ib+}orXRL#@a08buD%=9@qU@f=@!r>LN4}UnV9IWr>AmMLd!av%aTVBoGUp=@W%^)$-RMGT=O5Gq=lx-&hAH@hXS*m;b&D~*Y)R- z$XSp}i7zxS0c`Jyub{-q>AhB@{wwj<2l6-nSih+ge3GOoAZ$ZY2l{g0cPB{vV-VOVsPb<(~gd7Vo!5N7-YzNlVNWO8~Hcf1m8 z&s+!~rmJuik486YT}|xdtYYGWNkb--c|H1Ce^>N}=Y4T|$YvJA8@w?*=yvCptgv2z z{He=>{BnuM+jGk?hvID-JDGf-JP2HqKw;;x|DUnd31N}{KeW}k39$cNTOG?ghpo;@ z43qy2wmNVwv(;hWFiO4%r~kKXb;@?m@e1ag%vNV-2>(KB?QC^!r|8aQjHpsuzmA0u z#7qy-+INytG+#T0AHP%@E_ct}{NFOwL9vwE<(R`%hpo~JVOc1=5LPN?s`Dk9@jqdz zBOD}Ze6OiaUyU2%kHQv<@vp_Gkl^!-ian*M^<|ry6%+r4G??n3obO>&doWd5wntNy z<^y{elT$Ky#>m-aK#zH&8e_~oMj{&C>uQ{PoZ2spzd~<7gDn+IHaMw-;w^Vsf{7xw56?s>CuuD=mz_ zMXv17r_W8xo=cawGWhtOc`gQXL23^)f8!RjDRO1TtDy7YvK<>kY^>z;#sk3}!Z3fW z|Dv+V=55dkS2LascWix|kmL>v{*enlvoCmHi=_rjJ*i)U6hI-T^#spSQ?d0OEABon zAFAW1wNtfxm!DbCUTobd*PU{GPp+M~X7qDABVbw+=J0~O z9fwTIo0+Ef-Fg}+x%Dy}pKASpf+nNnhkV>w$c@5BmewV^eZREqiEEF>Iaw>%d!5OT z$X9#WYm*=Iow#;yi;7+w|HO)8?H}5Ebth-#ZN0?T9ZhiQ5 z3a&-ewJ=wgu;=PB69s_;{Dt5!zFSEb3SBdIf@pWXazT*%oLU=U#A`fQ21G--$WrnP z;`C&bwd+TGAD64^>a1PAbnUtk(i~ocsyCn+Z@@ER?_+6eWl++!dm~F8MDdE`ajpRy z)NE!Gn|U6Fr@^~w`nG;Wxw_Or9;JMvXdhuTvR82w^5$-cTnc$hH$*Olpj!61VWB-;W8G#Ci1B;}vTmiL zABV3f_!M|Rkj~*e`8D<0Q#%zK5y@|aw|WiP`z~C=pAcXTh5eqe z7{aaC5odcy%0&ojD9PbtS#ZEHDg70K`_V>pQPskD{0CAspsqsl56Y;_h*_X%O#Vpt zblDHusgej#kJtW*V7<5J&QV{L;wf}*x0OSCpok|erdod{WyP4oocKEDp7E8!9tQ`U zlEIGL7C^&u!7e@~*#Dw7jdo%Ft6(lTp7A$D9q2uO$CGiF_`elbW^K=oRWy}0J$(-e zGIKN$+Iw=Xe~`KoCj0Xlf+@_i$B~9Pm-isGY=B_G4&Y-<0ZKqlNhv|J=K5t}u>V@u zHodd+;(0-^ty|AlCM#G_qZB2(C}%3%3Lj;stWhf2ehzK=r^;VkNP;5Y1%=z+PXgoB zt}*n(?Q7GZLNbq34Z;d>h-*A9r2eGXbs2)5P)O#&%|+p3p`3Yzc!1>Q98Q)&H6!)= z4BBHxV?_+83~XJyHw^=+m$0`J^vQY>t{8Oh8GUKz_@KRKB*CM>-5YLkT&6`<|5d*J z)hX<*ITweIr5DorP1X{vb>I7bLsr_GSbmD z&zHUrsoT?xp}j%bzygkK&x*Z8S*fo=A`v5ZPf^C`et3w|_^ERmvz5~^V!6m6zB+xI zySM@5dSVUjp~?6X(uD3c%Ib`2cOLgFqXh^*^M#WGf^`==nqC#g7mzQ$3lV*4rF&*f zdDV7}tMzD@eHDXf@kf!B7PKIgW)Tk zAv=ayVCH|d^&yCzi4k5??C1wKGFh>spGp)aJBV*xPTt9=^MfpYn*AqBZsr+dCad@A zSoI`m^L84`R@0q)IzJ?LjK(aQ`5CPkkAKeZ)bkB4)K;N6+N#3pocTqT=vfxm*t_{_ zb%h$zw!&bZm8mB8dt5<3gnARl{$?HxLUu)L!$+-!;HtHVpINNxi#~?U@_Y=2@o5aZ z=TU31@+?uFpAuu3W7h0f3QDcZg5JYn%*nxF>; z-A4YWIvoy z^N7?r1*6i~5x0#zeddtb`WX`5mF&sRXsLQf;if<`jeoSEEk#P%$=(Lu**x1{~Krr#iG* z7JI%?>aF_&6SX z@!T<>+XY_1`g14(S;Zk+$%}?s9d6_)7cN*(m#%vgdF*uI)H!fkR2~}TS26w>SyHrciIq^_`Kwj&BvKkLFX-MU_vXQ#QzGVWBSTp1{870FI)Bz@bfEJm`xd+J z9>gz$OHFeRD>g;{guQnDLV~I1GYFKiFcEL1n9kpntJe9uK5cnyVi6x(3M@~7U=j{Kh;3A1ZgRw{RN=m$*0=jr>eW;& zWxe{}B=dv=-f_AP7ET|M>)(6MlXdk!RL($Wmp-F+)5WT9>M>zk>2)`~zJ;3gwEA^o zs$v}`2$`z}g0}$A)9A0Tt)j={)ikaF1GWU#iE{Z)46qvNzFO&c#V}Y=aJ(FZ#D|hQ zYzqd*EK+u2Az~+_Rz22p_G8^QX?>gV7g7oC4AU0xfpW6%;V)iGx_rh;KIc&Aq9UE?4A!6P;!55Zm28IS96=GfO+ru;EnK?(+7l4&J4H&AN2|<^ z*&N`ZLzZ-yUD#(IkKadDSV}1GK&QZG>J1>NB!A6r8{spEk8wT5C;osk6q1+nnR@MR zW%tzDtw=m#FxVFq=#PuWMvJ2ZqtR%IY5aN$a@(;m{O)@__mq~2)TgZ&zv?S@wA@oN z^QGBB51M|lC#~N&Zh^ef(r8&raTP3h_ftat^6M5e)Xwy@aHmOOVQYKanpN_;wt25YB|{tmP2hl zh<2_N&v#Y!oJ%z$6cL1b^D^E~nO2Z89+ZoDV3{74dq=Qhez7Ze_!4 zSs?{A%*XD@x0{<2e5zQ?2iVS7G)3k+-V+eC3kct;rDEbsDg!iDc*c2i>ZMDz*c zw-c=;Nn1rDforWCO=HM!(QQ?`GFg;K##&OzC}Uat>`qhON@x+GHn1KJCCb0e}vHOiq!)U;;|1xa46L) zwis(6aaXo0#H{HeC!PDcT*G$;Zp|C;0^5Bb5gd0W1AWPT?-yJd2Ej9pzYEcGTOjMC zb8l=6-;@68hbPD#U#HZzPTjvBy7)w;u(*NtNy@ID$*8TW zlauAP?8zxOXJ#e-O>>7hrkX4;*;0vG4^Wy}#l%P)^%(i3-g%$`CpxFP&uM&+V@7Gm zENi>s#O(3*dmO*614|3F3w$!Xb+A^eP1LM8d?zOG%I9T#XX!D{AA7oHjZ@X`?(Qx& zSieEn>)f}FKh!X~;Li%$Z(O%Sd|k1;WRbc^vUjc4+61Uvw#79OI2JHo&hXze{r4>U zT0!yIIroFiJrO_He>d|j$6NRvEA2eca9B#t!CNyF)MnXgF4ks+f|{Y@4%Bfp)9I8h zo%iFD!vodqQ+FRJOi?m(IhVrJb2aY7jL*Z<7`Cu5c?cd9Oy~3AE?}1~Trm|cj4x2k zgSvb~a}s=HoX^zNJ#$oBVUyG3DkK*w(F7g#A_hLYM1!l6;y#MA3o^ z0T0p(oyzywnxBp<;0pO4@qa1*>xWNN>W8`#(X?Ziei&`wh8->ltkjo;u|QybF;s3p zHWv}rwAEr|A3!PCsUpk$2T7UjR*pmqS8D_b4cx@*@F7*<;dwkwT^6!8z=y36=7u`dPngUMe=hetGQV|`Eu*A(JfhzAx(VAFb6hMn z^blWGeQ|RGZWqzMRYMz@#J%8c7VJ>qZl{VM158V!DcQ`T3=WtNtF41r*HmnTCtN>* zuCQH7xLv3+++xE&8W{{bPk|c@mOD@8V@#x+e1VY@|Aa)-<+4>?U)tnI@fFU~{Adbg z?yZC(&;JhYirD*ig8E`V3+dhD)}{1k@=$)9Hu8w8waeS1ki3k@>H9>@U!_G`Bgf}1 z#Z-LU!3)ma!@;!G%_r61Suam@nFGNm3D;jrlvx){^>ksadBFK;A3i}HdAsO})EW`= z(#m5*!oK%=vraTGy4$Sp*mKr}%~$W9)mO?#V}OswSNt&CMw>%+F7dfteo@>tZ+eM6 zVwL;ReAU{Y-m5QMddSi!zPXxu_dEfx41?+f~p}HwFztMwH#}#Y43asQIF8^gJ_k0wej z%U?<|89#>5N}TXJQ=bEt=T@6#m6+}tJP-QW({(A(pCGE)Uw3D6JL%w;s#SHCoFwFGxp)%@CRd`<~u}Gq7m0 zh0ka-e)?!>{PZb@ni5n#>~Af5CdG^n7*4kDfbHNGX3TBx1m_@AzR$b+%bIV#hw2-9 zqqWMw?Lwe)KNr#&FSfqiN>%@IU%p%oiyueU;Zk=0+DK{nl}A0xK{pyrFKB)X2+OV= zS2LN_Yt5f1gwFf)#@r1iW6b%Y-YOSYiP+r(u*1c&o$a^=dz`s&-D}Xh*5g`K0a z`Da6GuJ(!M;Dy5UZq-M-^$BOtGitbdocDs!7!l4N1|=ET@SrF_3lqEqT(__rj4He+ z*W4F4*rGmw&(Pk(wUPRx`g_1ZBt^q|M`so*-i2Cp z7oC-LI5^B9_mROuauvO?>e=PmsuJ6@PoUVS(0MvSS3elbFT3o={#L>QxjLPvEmMd;J%xCDM*1Jyy!@*4e|&e?E(8g*$t+{5Y)vEU$*0?di*(Mu=@ zqj-jb`xkp&47G$VT`B&N+D!S{Cwe6`^)j{DU|Yb2Pb}Wla4&dd70uecm6%Iy9wBf& zRrV%{pGYp-_#g@O-LTO@oH%f8m&j!+z5x4yR6xJM-r!^jIY^kFqi=9eqpnwJv+knI zFe=4A0d8#+t^lVsvk2#gMYmDSwxS^7qqSQ(o&^@Iq*cKBEd={{91lUk2EPqy?#%|G zdotc_cb(0|XJV8uJ(FQTp6 zWcxc|Tfq&ziLDYAt*-8t#79l6E}^JaYS&lA;7}l!Z02^0RGDqCdt7RjD*T-rKb06( z3A~~FG+ah|MpGXmKNAssEev`~{C&f=h`A8AVR4PU!nWwS=zQ~d`NxrZv14TJGumci zJzN$*JQIs+t*5IRmFY^JNS;AJ>V76}OL^^j=ITmqsJ=KV6^fnlBd?HLt6WDfT{Eiz%11-g z&P9A$YxtVy4<89z&mm!_p*D1nNYv%)9+4P=aPeup8c!Gw9tb}5=R1IpsLXc*AC1r_ zUPrlRr(wjrK0Sqr+dSbSKcSiGz!!c$M7bb zLsa{%k`Lj$Jk9Qo?dA(OiArZs_Y_Urp`u1Erl<}4^xfQd?~3}sZbiNE-!1BcyA?HX z$-fSjFf?6)um2wQ5hYW!7gNRK`FKhziOs?}^%9>{4&^Q4%+{a3JpKJgpTpX7fBamLOIps67qmzd>0jmh<3l@3(YTKUOGGsf>%Ogh4^{Y zSTF$W$?f^`_Apf`iR0msdx~_+?zk}dtUGl9keWkA?nU>|na8!DtHnea$BS6LJ!v!i znyswH?C=kWd$L(0T75nxi}eH>&#@Gnxs^%-)fOzmnBufog+`%}PDsps{-sw}l;4et zHzARh`Q#lO`w0+-}zL@YUMYLq3f6}H7Uk{79(3Wu31@r&hTXRDjM zI+VPGuoc9;l&>9TuI#Fv+C3HF%ebCMpUnojk>gRN?4}dmk`n=2G?Z z<5#K(tU=}gTBQTQ9;~`{YrqA2c}BT=1By-wS1X!Pb7OSCIg&2|2zx<|^XvuD42&Cc zxNB}z3wrfYhKZg;S1FNg2Xq@J?7b80iEaAXT@q#_z9hC`lcrmInu62=xsQkK*P@Z$ zd-%}~eua866`|9_UroyFcK+OgRkp)X@RWfdc=gO){7g=tv!XdfN9NdvnLn_9ekIcgw^PJUWN^1rxUfq5v*c~Pnwqio%Sy|U zoN8y6Jh_21jdi!fef`mz*ANh6&{o$Ly%iV#10QPMKSH#v*AtEVPjcU=q}Zy}wI5fp zr!jJ1YVU6CpI|_oZ4<*g;^(+?@hRgM_%r_j29Es9-6Z(161*u(aDV*M%Y1Q1;7PVo zj`y?J=jB}dQum~HTsgLF`G%XvrQM({9o+eX7~HvApp8e44V0Th>Dw6=QXS}GZ*NmR zxDr}Nr+NloqWHb-V)Cl0Lj!C2AP1M6d0i%VBX^&oU3N_Feb;4@vOWKGqr_LSmMR*j zG;hnAp^#)$Oyw-v(tP%qr@67g1%o-|dh!N!;CwX~@x;CT!8|+DTyj~85s9L@fqAne z$4dPq+X(0jJk(QQPs*isVy7=zpWg5$GNptsl!JyPVOhjO~Rz`vZw+tU{1*EiWhBLKyAbe{6np!@~e(ujB#vo5u`; z^S=Rhb-o!~?F=Ym3I6GucMexaIs7*2&RT?J6S{5DRnDHWvHMnn;J|_ThYsw2COjw% z_8K_-!hvBBi9EwPon`S2;?=Y%KT2ewEGik|tGQ&jq;a$(H%;ZH__QN0q9b=p*SwbY z^vzV7N}1<};tR>q*t}bw+&rI_ees-S|43zDLR7Bry7S>wHrLNx15nI8*YB3RImcYj zI<{bUY`q5jwf+EsVXfAA9@NDOhy$=uJPwg{p09wmerK-b$5e%mZtoIJz6HvfoK=hl zknYUkkZiB2Q1vj=>)f~GPMgNK@?T4-d!EMvH_1f#d8`|jo5$4Q-O_T{)I2sd)8g!~ z4lF!ZEhu!Zak+0M@|D# zD2qsru^HdaR|=a|&GMkh8m4@ASixxM@7=dXu}eh2C6iyKo}6 z`Ro>g>o;#1^2V}~?$)CD44VJ!Y15ea=v^C`g}a;I1f)=D?Ov*udm*bz_mF{R!nN|~ zAj^8&oe6?7xH6=UiuLv!x|(1G4uc*CDrt@<_Re_`j*^w zpH_XZ=ILp?TOUOksCJv7NC4c})n6RsJ48)*9$Bi99qTojQA4-vm0SM0XW;#Yq$NZR z*KX6{>~qX!Z9rvPPd&xHy$6yx3YFQ^f5Qs0vRo^Vcn$sNs(O&Xz3j3T>*7s}YQy** z>-z=uWh%6}&~vvv=P02%WR?fO&o)M1PLkSsE!oW7R>vHRc;Ieu?=L4QaiD!PsF2FUI?UXIVJNle~vu*{c`y z9-GeSvHz>w&O9CMvw2j)RM=MO&TdlTL41nQ%XCko$Sx2;ofZLjYo(GEX{i)^`Ld`> zb_^eaUf$TPQ+twG-Seo>KzuhKI%~+V4S^M>;Q|Ac?x$luV$FQKRwZ!P#5o&pUt)^} zOmlXq+Ztz?S%zC@&qwuGX7)x^n)4pR@uu7=O*3lOB;3ypTy`MILEBTMEuclvx&tl) z@ht>SALL<{D3R)b9JI|NDc`NxRq_<(AonMC%@vX;_r#X?J?eLbr}@vj?qf%v)7{sr zeB*$geZA6P*>CHy3OGg+0(jrBnX9>ccnQT*E}T;3>j~WAl4`>*1nJuFE7-Rb7x_+| z8n#8AoV~HmTBI=gcF5lBK)adS3!HV#cmBLwqx>qRYr?uK99kgLnO?8v2<++I9R}dE6g-FV^5!0# z`U&ms_E+!p`>T%n8JZ>f$XQI6)ssf14jI-6Iso))(STIvw_2SPERrQkVLegK#t73O zPt!X#Y+)#iKa~~?B<~~n^dPb7vHB=dh;#a7Z`c-3V;3ZOzY>;WY)LBhuv!|6cm+8l z1&uTu_swlQ-8!Cpx9dcL4H}ACGVF|q99#(VI+GKAylg{ zow`v%4?M}WubzB}Al%wq_xq>@GNw5HK@1bK_FyijZ{8wa76)JzW02N|iR5w&@tml& zfLfA|5YiD>;3;KjB7yf+j$r-GCW1ouyY^U|lMH&7hmDAcbwuiA=K(KI6}Z@+n|D#_ z1tek@r``k2yCn6(iHY4O_0n*>SogT1VC>OrTekvTvV)(QEdXOrYc;4`kfjNKM4i@( znFs7C3EM?3iEW|u7jRrRwyUQdsxL2@mUg)8bhKj}x;41`NH`6A`rB^4ojGO z^HyFsuOj}?EZ6~5m)+()^P3F_-NYCQgQNJq)#e;yu&Y)(()V?V(H_hujBB(~*qGS5 zk&fX^9WvGRw7`{B3cg2KZ=)=(4byn3@YPf>+~x0D7fZJ7Gx&@O zwrjhmO(*J7$jHCkSUT7|;O@3>^Y3X! z!MZRA*b%4}H%*s{t&dW|>AZFR5D2)iDM~(ue~1_3Kh8J0@1ey_>=%9lw>Io<;~RgH zAHqJ>AJ+ObA<1X>3C$`HyrI(J*Q?H)F}zvCH@Q3S3hur&Wt}fS{%lsRx#JgW$)kC+ z2w0yZcGwpobNU7Iwtb$@Hi(?FXxqMko2r;_x(~BVn%TY8mnJ^PCH~Ld6H`Sw`6A(< zpp@K>!{t_0&F*vS-5r^}Uf;X0Dd93Jt{nRk=>_hW`DzCAno)b>nM5B0fORkCN}DjV zv9LmOn$NYbr5S}yGu!~#GFD1ITBZ&8)A8oL$Gw zMtIdt-dk$k542aK?K=?kt0nt5!!7K@qr#@DEKicJlYvf;a-Chu+*v0}J}Bz0x8NNb zht$!t58`$Lvu!Y@8b29nYz^d94emsQPcV>bB=Bn@8c6T?wYk6@dC8XHP8-5NmK=IL zu-r5kEWLG)_Eg^0q>T30%;^##&a6qjb(6P1&mZB)-E>kK5JTvFCn|p!$MKse_ziHr z^IpKI+X1`EpbX9^#SqXrbWYo7|SI*&KU=yt38<5d-VYE0kI^Yh9$i|@*45Kf87j18SllV$BTJC%c zM>Np+FFu8}9}T&d5wilL6#$2Ucy8=G{D#Ny;~8=`h>Y|fPqUlMA-Ojh)FXZNKv*!e9ZVdkNZIXsz!STw_+1JdE3J6~tQo_y zJLR*RPMs!buz5KhF-Hq|O?fP5;)KxiJ+d|~p$b!22hv&xxdUG1=9S_M<>dRMv*i)) zAK;#xp1-2`c6B!!X>KFlt)6UOUc5OQi))yV*|A7|NWQhNcJ3eH=1#D|?ROzwZEe7J z8uQC~h~USnh$Tm*{)9C4`BFbrP?nrl)^oV-!Y2SN`}dK{GDgE3&6W%&!)>c*R+5L} zNZaLal&TI9E~^}yJn9oXXKVGV(L%U?NO?inefRkG^xb2B{}hSRAn-0d&Jo*S+Ng54 z29^+0<+zQMVuLqb)mfNP{DjYnl1|!;H_twT8IDtUKUG7wQ37XM>_y9wklpU{p)J4Z zJwCNzAE+AG8g%os`TssVrWhhjW9Iw#->ot8Gs2-dEV^{QRer*6v&MGDyM!!*THjIGo-VGzQD7lND z-eFW&t`6bH229T|(qNo>80qPGkzLfbQkPLG_w-3lhe-FAZ!p_j;_2OVF!eQEJ8A9? zHm82g)AHdN^`}Jc2v5?XSd6DUC%=l^*Kp`N@S%mMWf!8Ao z71qut_}>@-l4cEF-d4=z>iu#piOqD>t50Q zim0ttB)vg%x`dzg>uH@|m(Ne{a7$95YK%|o_QRfX*P>tI9 zSY`Cj?==Lt1-d%Wxsl*(ER?%Lp$`e1Xz3~857yB0${<_Ki44+l1-xck>JKl0{(l3PlKL(`c*mWAjCc16FE?@K~Hy%Z>~4U_0YdvYB`-cKE?9qOY2#uQ!64!dkSK{|UsDU!(nyY6AP@CGuFF%Flk4&{hWuvJ#IT;Rd!_(qx4v@T*4NGR`!a>#bm#&PcleY;o0z5-H=iD|gY=7yUMR}U zOs4F8fG{q@t3k*x^hm1$HrE&6CJWe!~EMP|tS+n$&F9vWg${);?f0C7d{Jkq* zoqsRNf2=|1;J^FwOTpe@5TK;3hW%GZhzZ=PDfm(b7To4+x_AXQohsZ}1M<+&fsE@R zXS818DE6)bHr|tYE%BWjhMOfYjq13$fiFVT=|a3L4oh6fa#7j~^-A+$sXP8Pv6&NtC9akjT6-<|eX&-a7Fn#t z2-2)+dQ5i;(d`RNHlMd(PDy>gB6k}+irKyMx+wb<{Y$;6&_`_TpU=6W&?ZXW==jhbl&6^_x8v;D8MYc;rwB830zo0g1+oPX}@yE20JCce#2&L zG@{^z1A*=?tLiZX)-J5$--JjehH0hvY0=*klL<&%S#u;ha?_rAqriE#79g;z9_*if zO{7}$cUnmCcWvZqoz0-r&XN<5n(lG5a?X^waMwZ(OVjyY@iL4?PNi5z9gss)u z-eQLKwsJyn;9t?R#MVXA$7TS8&4Dr^-OsA2p6dXLXs{2x@FCW zQDu&n)}nZ4`W6t$E&yifg~?EW=KY`Y=}v$fNMH}+Ms3V9iaKPMK8)*()KDqKH3A#e z=ISd_7^Fhr-hC?1QwO`GuE0ju77wElrw??h+y&)y?pTWu4gT#O~C-Fuw^Wb`gJRM8;>HoHc=}ZK>S{~ksm)yN6Urk zaO(g`i}RBM`Am;hhqkHXn@_FLsAcNE`J9-MrRZ2SOJ1!elf+f43l^AOzd^p`n5o>q zy1=&oJ1Qe<@9i6MV89yoa-zp>_%Ith=6v zFwrHuVOO6>$K04Fy|JV~5i2~|PT$D`Mm+>8!t?uc{(a@|&inai()X1gG;rY61EUOO z+gswSRqz3LcXlQ|*kDG8@Wozf0H4MhA2DaDc)#6r!oYJ@Ji2wp^YY9r!)LP8mMr9U zx5X@3LpD~H@OAo$k$~;a;Df+XOy16_V0u}>-H7n#lq|BecJc$?hEWg{0T$r*}5`^yz*2n^6X8x+x|C$Xla$TNAtJCu}p4?6zg@U7KfXlG$|= zSU5nnSU51|isM>$eiQ+T!;sqjc_cgvi>Cnq9^u-ui0@7g?l(U}Q(?U?gjp4ncTt^g z;-=8~>ho=d1t_mHbV?dg1{Ai)v2Qz4Ur}Yw@=-caQdPn!ZSP+tKO%~`!OBOoD+ch=fRRxl1 zZt_M&CUA5UcfmYYyhJUyrveQA!RCW|8W3(1iC~xRpA~Mtx-VL^lSNPc&RvD4Dz#yj z{)nuzJ2tuFSlX+MQTZ+DCxtWRv>&-r#)xyGqZ*vGCxoW8F(<-gvso={YLu2~1E?M@ zU3PiJsZ)xX5t{1XU7ZpcSPA(mLxoMOcbv9_70+(klJdRQmh_04RB%t)k_83oYYo!a zdw6TTtA+Rr^Hff<{CBhu<+UNms&cU$5PCC1T%X>!?4@|Iw5R~joR6qaW*IQt_oQ{h zhAllAb1$e*4iq-U9Ae<8(ARt)yLR7IP5Ro zScC!pH9f4I9hW$O-g6!Oc(G&2eRJrfE-Gwlq5R?T^kU~WrrTsl2tTFyBWT!ZB)b>$ z$C1}Elj!_>*iJ{{mFwFSl6rx2le zbody4{0iot-cm1@Bx*$EVifPs7jvwMEtUFFrvpowD^yRIqjw+MlE~)`UWv z+u4h?Li@9PvPa>uxv5N#xX>2b3TX!6h9A`|<0hQVHsM$q@d$|0V`-Dd?+D|q^7y@? z34+AR3A!-dbe@OjB1a}AyFSOkWIKtuzC48W#0uB0NbfWSAE8}r3&B%V+?P2n{5#pH(EFOyKS3GAM59$=0$R8s5Bp%hQ)gU zMs}NsyFBe0@HKtDbL#@PiPfi<;s??Pjg#W}q+hstUt2;(ZNX_|Fy5*XVQWY3L4~#v zH@lIo2QbxHoGbJGl$kzjw=u@}0flx11D|;-#o0E_TX5`(_R+%hX6l`sRZRR-(y(5g zRB&z^NA^?$!SBG~4&iWx$KlOniQ4)#2vbA!1;8oP(!qJ8G1D67$*AlJ>GoMhi$b|* zak83fhqC6V54*a?I~or;`hA9{-^s=i9vUTR>|4tDjPCgH_7(N{rR=gWTg`C$ zQ&+76g?duRn!r;9x#FfDJi}oaGrb?LSN#PK#TDZmKhxD5!!s8Xt4sFL@bMd!?Q#(| zrutAeSc}I*9u>AttXVzRC9jn#?rtj@D|Txdty+bc-dkPV{gd?!vZmED^EUb_*Zph* zrQNTXwEM9n>g#@!2kxN%;VIQt?EC)~^4zPAe%qcqy43tpPcP5WuTfhS8HqI( zsAE?K977sPGu{z@^hxAwOhW{gTfSs(GRX9yxoE2&vHqesXN_}8sXRT^yok7rIE=|P zuT0ZBo~MO%ePNb}z4{!V@>_WQ9J)8(o)&|6=Iyj2*G2oOFKU8&Rx$Aq zlrlNqd|wJsZ`JnZ%X(XTG=DR9lGaniDh_}_FwhU`?`fTz<|vEVO|qWo4vG02a>j0V zn&F=3;I<-ivqEEy``-R?AaE+<2_SFmA2knqTwYu+Y-8@ri?fAVM-Whe z+O_xBnDXl5rD;@SN@(D@&@$xEoy29FCb_S)_8KF!Zdz+fBN@zRuc=VGsD2I@kG=iT zX^+OQfpX#zP(Q;(D|t#?Dq31>l&To0tFDkGgv6tyw>v;t@dqDQ->&q1`+g;D>$j(G z_i}xk=gJS~J%p|h@d_hBf2P$)aIyhU|5@65o~L)o;tD@U_^Ni7pN36nhg%pZiZ^k> z?Jo8V+{W5+W4=pgNjjF;O~~EMwEkeVzSrcY+?Xsi@ALTlP%uM}T$pA$W}0q6GSh%m zXV-O3qbpqmuaQ~$lV`?L&OJm@AQ7GT)Zg;qGo zrOVUwJ5!OYkY$CA1x@>N>a>H9z2|7@`r8j+FCL-bNt?_%Pa0(8fvnjvl%i^dS9)~!H z#ysF{b}ZZYe=+|hZ@ixWYj*I{{B7DH$a1+tD{J1V*ws()Aoj;%D;qSo5<8LIchZ-p zex)T?xaS0$EWx5ZCpg#=EZ%d1(Y;tZsMC$9$*M(j%d-Fu>9E?`kB+r{uBAA5%%QW4 zZ&;W|ueX{Pec9wDO zu!TG4!RD9N($&IRj9`L+$#@z7?A5nQyb@>oeGGuU6$$D}cJAW)6EhH{S)vsz)$2af z9|5%W0peQ+Q^qxS(2{|eRZyj^7#+m&i`(;#$t`ZrJBA1;UQEkJB^)faN_<{{67?0^ zTy#}%g^P#P#fMOb?LlQhtI{Cb02}7{Dp{s_>%bzWgkL*FhGg3xqFMTG5hmSWD_%|MBLnfH)t7sX7DomKvqvZf>;Vva>*5i2hr-K!!X}0EJ-d;MdBnegwks&n z>W?n(E7;>r352&pg`^!|z*VTA!_uI8z}sW)5pVAer=`#gHcs(7f1_rfS?-w+lQod% z#Fonowwr#}#`timVb)YXh`p8l{-^VUP9X4MW^6eh>1tmFA<42Lc*Ue(1yd^k>SeGq!$`{8D3Xzn$*IWv5M zs+c!b=4re3i7JEhtopW3;-|clGxhS7JMv-_<1&;wC*y^nUW#NQ#Hkd#r|?N0z)$=@ ze)KN3GTS?G@u|3YVe+&zpuH(|#iuI@lG_Ii^RDXQi91pe20shdE_e45FJYW^=mDmC zN>x7rH2VBQX+?5h5Lc;llJ8&~JV+>QXJbQv!TMopaCti1xq9aTBhAx5wTtc3*Kw~i zXy3_$=_aj!O5jB!Cv!&l{#bNt1nU9p8 z&3wm)?ayVtHDUYnnQyB3Mk7Jhzg@D}Zqz7oAU=js1+eD>>=7rRAcp}UyIs>|02(X6 z9C89_$0=?P{2Vy!c_0f8`!nj}{=#4Iaq_@^%y0i`^r(U1)aUU9LQ6EgvH5!->Q`dB zG^QCk?P}Q5l|Z%I69VHlXvU|at=9t&TMY*`FClT1Tu9N)j`IDDPI1XRPaCIKOb<1T zGGC7PA`%xeg+gO_6z@YX+8duWA8`q3c=?du_@PSPr|v%s8KN;lfuE(oT6`HvqIh2l z;r+OBIe8fV>990aP9Bb{!P((QSRqodG)h>3Jrb`T(v^+(EM2cZH)fN|E$=uNqi6`v z>=bHsQH~qDn?#+DBFW^eVvsOd| z@Fg3MYJFjD5ohN2X}Q0{u`7C%%557siir{O>ob4oO@qW5wYFIr#l&p3)o1?Lo8~b} z)3G#)iC2&YUc=3c^%YU05JsnC|2Po*6u$Un^|v+fpF8z`jnlEtT=)Im+(u`>aN*t_LI65p=}2bX;##y7TQ_ULUrfOBBy*!rV}f zpDd(4Pel){c?BU0hT`YTH(VV~E)^2#oS-_~UZ3KxaaGAj)shz|ccm0}b*bu@m7oEYO(M^^4z-K+glywwr=B-i6^luKOT{4!jmeK{YK zQ%85zp5Fx>*j_=z5u4o|;e?*5e6JE1OZq}rdgVagj`k!;=qxIpH@EesW)U8~^!)BeitXYt8da(tkzc z%1P~CU}9~I6ynzaT>M&o8t^tId%G)L>~%9B-t$suq`rC3Erb|R+h&EKwVD(cL!clI zw#N`x$TSbnv=z?~*>=rb>E>nW6hAcR)=f9;tPD1yL5HohFtk`MwSW#IJJ)Zuu&xlp zXg>jD*SV1>{sis3ytI3Qt9lZ|Etak_JbE3OO%W2m9#;W5|3F>li{BqZfXo-CG{2(XqDle z?H9n+!%gwAP~z#zr~Z5$Uu=l0j*Dw%QtvUVEGZZY_Q2hf<&-s4KfGkUHeBBJM)ifY zV0k&~GE*m2eXPJYr1+^Kz8K&dqq&8qu;SS6+sQQZ4t|oG_~|CDg!?7$ zB%m>GN=gb=_xHG*AFA);v4J9oDLaZL+q;+>SitM!uOqr6-{!~?)D9WXfyNpnijOCI z+TP29_yy_OtPrr?2)?d%rEACv)Ueg-F!_w!j%XBn=nE|I_V;COM_+(Y2BpY?PQ92_jz5KNwF>(q(h zqu)$%5y~dTty9fNsL-ZiZrvn@UpK)6{>63E8DaY`)?Y(FSU)yw|26aR4BX!`UmUjo zp83!_{CDP~h5zXKpl4ePweD^$v?O@pO^(${+jKQV$6BadU=bua@AtIh8yct9skt@K z)^~!L|Cxo*|J>3h^zV1adtBNKmDoD7r44o+eqqDQ$Dq8>b_<)5TiBSMzhHNkn(Tcl zoF@nlV^pIL^IEo40N5XP z=IL!jW7uSb_@|)c6b6m6`Crz2Igvj20R%VSuEbg)x*S#sdbFoXZbMM0#LTz##&O*{ zp7-6R+ngtICF_poQ!I2*u3+8q{1An@JDv?3SGa@e10bpS6%yp~~dZmHbQ+(gy)S@GWpQF{=Wa%VvTr44&kJK;lkUTrD(M z9YS^TAtEaE6QTS6z%|rGL6fYYpkxncsP&&4Qoy2;AzBUR8rZbq(j=A=!9h76rkv@U zoFd_cT`4T(kp~B7KgEq5tve3{-v3e`Kh5{?5M7ye&(piz!$p1dsgiXB89gP_fGFO3)Z) z?H7C-xU!q@G!JdN89H`i$dYi|E%HpOv7_O(_sDab#GZLm1=K#Oo{MZ-Z{pjLrx2eD zdKmo=n|Yw{el%(0kCJ=q1>y=bXDaY00!5ad@jTD|GpoYkOl( z&0?O@8zbEKJl84aHr4Y<)uX2QnCJG!2t_{TdA%`eppSWeZ;X1)$Go67M&0FOUZ|L? zJ!ca$Zd5vMROj%MqvuOVAbP%(FZ68Q9(vv@rRPzj=a;B_N6(6J^sLOT1kv-G!9BfK z)q7Y`?g~hwYNjPm)wOWjySg40l=PuZ(<6hPpa=5=eLe(@E^hysbEvD2pobhOmOLqT ztAM!9Q|gS;dCyR>c~b1cKx*zE>`SfKTF|+KqY^lnG1UW9L^_Y z2c}di8&yZ;t@mRrb{2rdsI6bn;~dEb3FKDQ%zPq@n>g&hRM`I%q%}FK7@d5o&+x=V zKF#$?^JzwmM_&u9qoMHfA{WQ=D-zybYMAG4+U# zc|~u`xmnCB6_bq&^^4E*s@@p&fsc80Z;Wv6V{YiJ=YlK-v!y(2>I|RfwTfA+k-kJD z{h}=9b&B~M=xBYOpV^Cv8Ml!zK5N5bzc79%U6Ok$=L@9M&DZ)S%M>U5D4yp$Vu~e6 zB_yr+F;6~H(I-L9JZP(A#;?{qX;cC`u{PQ0FL7r4$g=C}hc74al*PGJ&QczCl z1traCwdO(GV}E$#m{j{T(S&mD}&l z9j$17l?iBSKX>Ws)T)9lJWLNcb+{5ZAJ-a3qogO@T$b+-zZtDPCpjRG%at_V1JuqdedNRQ+~K z-aX8CXTi?wq0z0ju(wC>Ds-L=%A>Y^+g}HT{J=YuN$*l0u? zGu*Rpkh8)PQMHK@<$hB=#P?hN+w1o<1*cK1h4z1us`YIpUDLw_Gk8Ylm5-j%I)37G48fl+yT_rTIuWjZR(FSOysjD+V2wWuR1?oQ^F zt@o-}w6qzer~G7P>jR2=VLonEp?wFqu@Z#i?+8&(LnZbD259p%9g+G8Gy1gNT>7EL ztc`Wn++naHg;Vz*dsa3!N7uTu63OsRr_TB!Ot$EVg%J1LueB zSE#8k<0ovRmn|k+#avdlKCVW+D&Ht*L+d-yNcz=Eb?UP^W5y2h8-X_l(>ULhIg!`W z(6^*cq2#A{RMeZqomLfMB<-k+uO^+KL@oDC-jZiw?=G|z-&pSAr_q5>GBl}BDLxG<#D%u2yiYz4cx7 zYf3!(Ayws5;lJ6Hz~*H%`<{Fp^Ue-nY(96j_K`(swg`>?BII9Oh#wAhqCQMudN7q0N_`OypJL)9fe2n7N%O>9AvLida6$-ZK3mVKD#2e8{Nz)Y3QQ_g~D)A zXPmOxuNk(L$zsB`G8!^EsGhTd?e?^_CjTC=V>6*-c#FvcDXY?Y8^4niore*^wfVR8 z6vCD2$&bLS&viO!B6|;ZVoOq^B`dnPdmQNel=8AS2JMOjl1=n<>&NOCCo4P=7`_h- zEw=kiZ}b^5!2Un2Pg}pqPe`5ol%Kpm>uN_kOSphBOP$3UgWE>UOdx+w@i&L$k@aa9 zz#r`oV-7*zZ33nqg6C&~N9~Yl)SgrPoMbB)a(hnU*${frX!diI+(jHb168ZBA^&Y% z>-_0Ad5(`yzt?%ceOI;$SkcXXHD4yHsnfjQZx+&D?Va!q~x+B=RB#c=n%f)*Rtl8u$g)u9$NDnd1J5>8{M+f2hphQ;O zCkElksr!r|JS%md7lh|Kx8VFEm7??aaPk1foq#)BI&Oe6R1kAbu!H}I8o~AauT{Ro zunNMxUAxQeM`^U^){4&egovg8u!#C0;Wqj0;+W(HP&hK!*f$*P>{Ox&OEXdV&Q&VP zXYm;V5IOxZ*K8NGYwt%OpN8f3qx-7*Z&%f!{Z-jh(EDNf>uOt=);46dxm@|$Zgr^b ztL-s;wf%ihwef0NgW3jMZHv;{v@a4ab-DU#Q}^}Nmh{#3H&@$kXw)S=B~$?`k#$q z_7qv9E7H_!`Zujxe%PhYrMp)1*ocOi4Y<`qVa*T_R_bH57HU|rP9x!t=-6h1y$NNE zFXS`(eN~grawiwetU{}*@hM{pQv_WKt>%Lm`Co!tq5V20h)^u0XdCyd7ZtX>o*>%?cHy>TKXlT&!thn)hdw0k38N5@EVrnf|h~ z@VGzqcX!hEV|RvpM-re3WL$iB?~c{i zo<~*FB|?EF;Egf)!*+q+_ z@b!mzn*Go7V?&xXZC6d%ZHPcqZ2^$upys6vtus;g1wZNbh2x>>;f#k`saT@aT1Nng zcxXs`M+nDVlw0jLe!77a5ZAGMW+MW-1bukxB6^`75voNs(i>ZoDD>tG4gvpagfc2`9OYFZP~_Pf@D?c zjF3|Oril8L;WqgtX;s)rU>YhW%%zpa=CHflc+9ZvHu~6;XtlN+7d+9n9DV4Y8GhP# zK=;Ui(b7M|3 zvbD&--c?hUE^VmB9Br7FyrK=wuRrVJ%h85xE^l%!X(8FKE zZ2p>OHptF@7l+~dD}7hC9z@dFs(?w^FZ}GCG(>#uUH5RocD#(q8M+Jk@_0 z=$03W-oDRt-vrKKyz=StuWVhavi9vO>!m)=OZ@j`{)YD7U>n30JTmAQK{;Nq+ZGVTp^v6Ij)~$2AU!ikP@k|%5 zV*rY|Kd1G0Ae(dn$z#o(2^bws_V60jcN+EmTy5OWsR3-Vq&;+sLLHZn5E61BBZQby z^Li%UQe;im6-0L&!w)YIF9Q#qzgnC8gkv<;ppIXtj$}1+)1;MHF=Zs<6B=aQED)W$ zA4-0>_95h9yZT}DvbL+6e6>dRF%}*<5rcJ&68j*D8P@JSmnngy zTc$j|06F{0bU{|;%GNe@`>MWfrxUDuZ}i_c`0s1{7vaj{XZ`mY|7D$S;cxU`Nsu1y zgTO^qxbQYfP(Cx#q7~WQ5_`~hzMB^W0Z)gK)(Ima^F^U!5cPx@tSej3R(sa>wdXk= zo+tV5ll}Ku{yXEpC^L%Mi~?5C*#3O`$I+alhmr8NJO{D-VKB}Y4nqGQ=KB9+;EIw* zK{E{QmkLs}lVHpf-M?0+&vbIwMv_8UJe)c@Y`chYyi#RjA(E91i0|>OM7XtHy2Yh^ zt&3eJz1P}n&-?5% z+;hq1En%|-Z4&-wQzdPd$Iahq*o`n{(N@TyhUFaj-&9 z>&2q4U_}%5xh(?VdL>c?8r_csp%!L=6j!ku`d*Be`{cWa z7%yYM%s6K>j+ch*?pX97uG@@kn_+d#)*c1A4IIK@nO>(=yrok@fIcRb`p}UJGfgx@T zFqx01T8NzE0h(s8*Muv^xPd?&Y#@AfcG3!V>}I~7tKL{x)s{Soy~ANFJ?=4edxzDl z#oi%XUp~wRe}$B?gIh}2?uD40!R~>O*7Y7xwFmk-i@gIjWy9WqYEApf4W2p^VtCFv{e43>rYcK2Ndlj%PBh7=-=cwQYXtH7f>RarFKi+e!64iy!h` zs%@C+D%whgBXkRI5yp4D_fZ)8joJYH%JZDhAv5TDSI|MziW0rRzI_RzI1ft*eT(ru zzXVfwStiDLze4Ra)E1&FWXACI4%j;2X^}o6M}gSl>1fsFIr;DzuNEPDtDu2_rNM_< zI2B_2qv7<36Jq*?TXVw5Rw(h?_^{qNnc`0xndKRw{~YvhPwruerRlPg85x6#?*h?M zBI;#}9e9n-Ruo@UrwLfm`;|poib}q0@s|Fi=M1(m3`oOs9yoht_}>JojeoeWr3NIQ zFYPe3*w;?bwV^D59hN}9<;4o<1})qjM_jZM48-~)_Pr1F{U*jPj+ch9OS#h6{S?ZH zV>cJ{#n`SicF#ks!E%xh@p9b3Q~mmJ*Kq!f27g;mF3}MC*YoFksQd3!K1>Hw621wb zJCA{F0}iia@ByuZdXvK2u+q{=@pg<=3ui$rK9pltTm&H*p?g{a9uzbyF2;C~FvkS@ zyaXd)T%tptzG@M&w<&1g{2872TEN3qm@20P_JMTPI|B%Y38v7U%3xTgHN#3paP1$)(p<-~JYmOgw#m(@; zzSsgj!2UYgml@iJh%?}l5zs~A9G#u>U@kYe@Lahdxv#y4rI~M78uanM++&9) zV8mS#v8Nab`Tc?U`TE%AM!~9`+hRCeJIRORi+I!3EC~JMbVvIyI}kW6!E-KnHL<+s z-9(&z$-A|3D*}6kYAAUj+`E7_u7Y53SKLGC8VsL<-wKax!Tm)$c)$(r$r~})WHG2Z zv<-aI7{0030e+ymM(3okCnPt{I}96%oQrtaQ45!Xu4D-ay3>gb_0sq^XtTT(crBz9 zHF#grr)lmYsCW~4*#zk9Z8Lat#f|q#9bH<3CQKG&1e`)Riy59>@3s*tmw44jjDq@3&&u-#*N-Ju| zUSbc1Ms%?yFBJ?ujJ++Pdd0AXfa@xvq6&0H>1xA@y20hp6R=H!S;0~HnxRsRt^YDF z{PL{9aj6Y@*L69ak932wQJojL!eLKb5^Xp(3f7<8la0X{zRuGnwa^wk!?%OzQ_E?A z`TX6Php)M(h!Zy$Ab-wqKG6K@V4~%O;dbqR`yDO~Zjsx8|2%sT__{zJ?`e?k|M0_H zIHo%^sxN$53|;*%)x>AjgCO0X(1&>rU=PnC<-lggr?@46TIdK8ZY4XxN1ihX@4leJ zuk4Vb5RLNi`f^Td2~b)oyC!-gTFddc(2T|pW(p}>ARRojUg!#+ z#yM~W!^{`fDnSuI`s8pu9TqtG{c4qdAW+M3Gc3i@#ui&}WNreX7H$Tq<+L?4hH~Js z1za{>Gq-}NagIBd3d$kK!!Y3zm3~MgZxar8tr*TeI9@A(f{npJufk>z#x*=bYFxS< zeCf+C#x;!0f1bDL2c>rxa4MEODqo{>Y)>eK_dL9gqqjF0ztSG-Lvx_e3(U1bcyk2E zb|Cd@s(g;9H~vD;WH?HT2Of3fza-C1ES>K{;h}!J;p3$-ye3jUnxV6UMHnsUeP-~` zGz5!3gZk^MyB!{-fk=7Y{RyZxJ7~K)elAw ze4&}%^Qq6XB(H-g`vGtRW#11UFO7ZwQFeHS1TE;LiSRWu2sXT8QSa<;>$#@N%AoHa!`x5{F&&(9n83N_Ksd>p3>zoP zN-gvSO^yr9i()?r;kFJHcq)lZzpw${k?#Qr=A_xo z31A$dMPWY>@Wo1y`M<8|ftZGtRQ;^~`=JZw%>eR@ zORC76+NKnI;-8uq1nS~XU<9jqCt*ub3<83tcwTy{A$YnW_-RA%OhfRqhTvHW2BY84 zDL4>==O_s8moY2;0)yf)XTQ8bFa=95K#aas;O0RHn92Pl(BMWyPq6Bq(JMSltAzIN zpJ)Y-32Jnk+aRo4sIXl*8xQU9l*Zl?wg$H4R>7Ly? zL}6o3x*V+*{s_rEe8tmkiMX;n04MNt8^#;cePMAY89Ie>!lu^fX-0kB@fbW1%JU4$ zBfgi3+X-Bs_rN$bhAZhJf5SMKG&jJLop&g-6F&ZA1`E2q_h%4*{q6t1{54$by9rGq z*I(Ew>#p?$LEHLKU!$I`2@S&Q4o%@-f&Uf;|Hv2*&t$>#SHq!0#q(F07=lSDo6wwU1*;G-?qU^E@R=N^jC<~FTL%x=^+YJ@Lp;N zp1+&f=2gLtl72A(5=_Jd4-FFpX@z*>m|o@N~*2Y4WiU45~J!Vv-@)j~``_sZ~&3htSPK)c|dJX$|N zkK(}nS3~e=L-1Kc@OeY<1qO8oV|ZPLap^0F(Ps}gzy9kXwqe2La6LsXxbSc-EV#Je z4TAEC^%m9tU)I}VD2iBbOEC0*Sa0ELo^rj#ybRV`yy1Nc{^8aTn+N~!a4>TPV_0uH zzy}OUD!W?P1k%x)8pK*>3Wy6OYH>|P)~~5XsI(^?tf@C}RgtFBP`9RHMMRW-O{ILW zlMM5DF7kmjRiDqlt*Ml+gD&4ml&?r?m@llU*ldmR71hH5QNp0`w0dG+zchw7qv%#o z)aaK3TsLL?W4g& zo%r{)@831B_F*Lq);>a-<9J^5iq<|%E7m@oT@7m=`J}ZE-|vBIAHLwD7>5|GcXJ?C zKbwbX^i~Ab;7t^;k~W->z{9ZN@JPN|*c9_1m0#X`@K6em4>v3dsaj49tVua$aG@^u z7+mBOreV2VOW~fTcP!{&$CLa1-$x=x2o6XE(ftKv?D;L@xojyZxu`%74-Q`CoLc%l>DdUG+M@+!zdt+T_7= zhQ_7%t!91mHfom*Xi80(T`~eIH58l0elct@p`O}?oOEmmajXc-y$9BRYdLZtTh4Bd zF5m2iZ?Vhv2t=K1k5pajNnKv=|5-OdpKeRZt^c7n(scf0Z~V{w_IJzdlHt0vvMh5j zzc^?F=(oS?wxKQ_b-HsixX6s(Y!}~S#-Rk?EEW-gaBTK8xYA++X7a!T4}NoaSD)cC ztf>9lb(ZbWasPUqMPsn^;)wv9Qeir{2ZwhF;JXnVqH&JHQx zksUUX{^B4uvcXZ15R&Vz4=Vb3DUO3U*&B|7@=blXhx#$b{#S3_@?FoFcRS=GwmODOsEZm@jxUmYW zn*(tPaqKL7yTTIU+73<_G7vtm0H2-!95g9sBpSmXw2zYX{RSV?)&Nfxe|Rl6<(>sa zfM-Y;3^Vo)G}edk9|a8E1XmHn_pY#%^bevPgp=Wa4E&FVe`q(MgRlww{|Ekk;2*{i zy|x*8Dgo2NlEH2b+?;L9E)GIDHU#CZV2{Z*u-u?FVBjqnIAaE(>_W1C2!{Wlumy#u zk&Vy53P`&p80B9SQ#Ej5lrgJHbuBPvc7ssv4c@WRm@N#(TuNuRgIV!&kjG?WW;qb$ zIg*7T82`8s<+Ekj3%ve3-Zp`|O+*4)7+D4$|b1F%84f>f49;}&p8??`# zjrJ$HRs`9x<6|-0HxBK+sQi1op`SOQgl6o!(HLJIk13*Z;`J`A*|r#Lr7_TJW^6W%ndQAP95@!WudPIF_)3iVVFad1rLf0JY-i7C%?)XQoq_R$O)|FJMW&6qYEWsd-~3=YJ!9$Dx)Y!qoHVR*w#EbX>|#n5iU zhGWY=Ny9eWzZ6@k7Q7j=N|KjIUWvkZpOM(AUoSyFpBA8;(F0{s9?EUw(C3QCOt_=5 zqz_ugJ5&T&u*?zDj7$Go6pnt0{ z{xtR7Veo9s?!@5Su};TX{~c)uk3pMGL(ns$nG%wNF`QzyPz(2h(FnOy3;YJX=E!<4 z!5K6K(mJv=qmLxCX66Oh{+DUp*hTZ#gFJMn()J!>(iQrGy!D12hq0ZE?ObP%DS zU=A9y!%z}q_U?4-_wF=n2E^jLd#?}5)txYRYskfz?HYmQxikw`^(1I{W9BglwJ*KV z=SCRe*6eOe9PIH{tnPSEYXJbrl28LI| zn0JF;gu{|}QF(SiNvzpvkY=nItqJzSGgHl&3ydpkW)+9=Ho=&7FRgO>`eKfebc8xu zi{X86L@;AN!qLi%{Y2&bfqFlb=GVIv(?j$Wt2T6aV0$A*#4GXSYS%Muic6wD?Ny^&H` z6%SWrrxG0iDprQDTq0NU83DhUi8=Ichxx^@nM5CwE}6|InmnMgsz%9VHAGK?E2~Dc z5o|4y1=Mf7GJ?HMw1d)(X6uOV5RGMvi-nfUBFUax}_5*{RHY@E>Syium4&MYuotsZ(m5EX(Ng=w#?vUTm=Z4U7 zs?@zC`cvwx!KEd$lR9^zETXUBd!wl9E2#@n4AD1m$rg2fl6n!DOX^2-hjRD^-h_!Y zYEzB%`-X*)Ze&{Lwb)Wom0Hr7k47(M%3DOUK$pO5lmkS5c}Ojk_aQA~!O5c**DH3)VbcAPg*rz` zXJ;X~DVIoB0Xh%0t#XCv<|NGBN4ZNhGP%`^1m>&UCn_iEsyrr|M$}z-Np*J|Q3O5% z6%!SEY|9uyrbKm;%!p1dM%@6V8PR%4wnU$hQ6LC=|lA8P)rx1^d;Iyx)7xw(Yo8!ZMiXl=L}}s3Td1DuamrBPmQ>4|Nakdv7ZIK#vkm zx<@PSO-%qwBq{`50*wDOqTxiz3fw7ymM^DuceFABh_NhK%M)N!k0hN>OQbPCnyV#S z52uz1Y^*Xz)gT?biw-DHsUoU{Q``g?xiv(~;CwcLO;?r?)mtIuE6WYM6ezW%tAj07 z0{mLfb_3laWv2mEDZ9zigmS1+-ZRiGRrVRsa^)adj(}6)1hz&wO7sE_FA3~5<(OIy zrH+MD=mhq%qeuDG#1h!N8is(O7hh0jY zfzNl8OQg$$%L@r?kMb?iDf0QAa>bx5dzEVj>GmN(S*E}NGl6}m{6zFF)#!+Fo2Uil zcTBlU^sy~keysdTWJLLWqWnfw569&Mc1ro3=yG$U)5@O)xt~#<807w0BdSwWt)a~> zDMnhuD7cIS<(%t|KCdcG4Rk*!_M{UdcDc#BPswdJ*rMH2lu^LP|?9I_i6E%b=#|SM= zB*9i6$W#rbbRUsV3pLijiI4Iw2NJZ>ddi`bnokr?ecM?r zFtCJgsu+~4zglUa3se^vqzhA580f;)l?Le|)inmXD0Qs?4OQ10P=dPIfYQ~s$%|H&k?$Eb&h?s#CEja5G|@G@CFLAn6A{FlJ8)lZ35(g?{{FBn+PR<9UP znfg6hI?>oISAQ_j{YSk)I?-nH)SrmN46jsg8(7X)?~+ce6IJR%qQNv%Yt%;umdn(~ zq6#=JamWjYzc89@U*lw9k*NE} zY5-T^c(fBP6eqAx)L?@;Tu=v+rKs%>YCMrB^$j(ND3Zp@O*P%1CGM+Z47~i>h#smF zD4kes{#0{_#A@?col0dnL1lTO<{5Z-rA{-*k887tL|M$VxkRGPnramW>CClC1G3Oo zkR@E1huT_en|KR2E(XASAFbGETS?cv1L}}mnQiCGiYs&Pd~ux( zWNlIpS=zBJ(_&OR_KM_$=@`D1`?$Xy>k@y$4t`Z}Cd&EID3uu~r)8sDmsf6K$9~LX z0e0-`JX4T!reN9^Q|^Mc#Z;7?r=jegV+~q&^549-D}+5rS`Iy6r?7|pD!9TrkaUQ| za`uC;D|>5+e}F4nJ+u!zS+zSFZSrUK^-Zyk zQ8i|L1JE-E{|d_v-w)cFaMaEzIR@dGC5Pb4DNA~pz!yA({rG90L;R78)AmmVvJV_$};E+V`e+kAIk4P3*~B(W3v6B_tzCUf&YX!AIPzJ zI#2U{Ml|IO(M@t;!rzZ;9%17R5dg!1}~Y!=SMnC#lu;aeuo-TQ+5$K6o+ zFT!uHeA^S{bCPetsDta2BnQISHfGi&t0^X~Y9OQwM^`%ILrm!*QV zB-xkb#uZr*Gj9c!A)aIfmE_*oaS;C~j{2(`wt2U)xezlndp5|&xr;z%7T$#TH0tXQ zsjmk|T!r=tf*yxHqS19E4@cLKkz1j5PNC{+F%J=IJcL(Mf3aAM zi4FS(M&lcuFf2x+RUEd@mwm5+-iItd&0z%*^iDH z;0f0|dj@*4yZ$T9Ia{2cFo3g~SuI*{HhWeYgdf8Cz?tb%ls`e(lVwpWodw>n{yU{te;Z@sebgv^<++J zEwuCa$?HJIf>hZ4notjgJpir3hPOlcUg0UD*wWXbRb83Wn6a=1`UG!=9Chsw3^6a0 zD?wtPDlCuMd^X8pkV;r8Y&68^QekW8+VElZ_5rS}Rp~pByUXOgAnz|fWa-LQC430+ zJ&Mji%o0eOSQB@(b-4xc4kX)>9MBnK5-3~-HdgGNh?VA6%rf->wBbMlZzst^ zEyCS7G;Vv%4V)8i`t@`=rI!H8qY}}v%T^`)_awL4Den6(v_hMXucfe z=Ph@FbZhe=$hrI+NPp|AAU|-#u!GB0D34Edwms&1A7Tcpzk_^i`I1Uv8f?eTs90vL z>q>L9v49w?1%_=P{B{!ukcVyBg52xm2QsWJ*0--$KlqADYA~+1Cd;tCl`X?SJ7-jM zFs4m|aK1?n_+;$X%cMYw9udY_M zoT3j4t+0I1dOE~cwww<>zYJY65X-q5!j;M!AZsj9o>AWdnPY|Wwzd!CpH?Vu7<~k? znaxL(>N5y;HvbajzVz=vZi)Yi;vYiT+BODcH|NJ7p>~6?b{2ya)*~2KGv@`k;zf4A z727j^_&|kav}`#DOX3EWj*1t^`^`IpTxZp1kgkPY%kjA2Qyl^^hEl|z?Ggs@x#cJ) zE?Ng~w3zFQ;kMBzS5LV}{T`1cQBpv@;1fWmS(kzQ(QzrrK$p!RbBu9347Ncz07eCt z>N7_e!%aT|*`mc&c&(PM7Cm8Q!&)eE4A{U(P}pzbWgPCyfy8?4r+OWQGOSI*qubB4 z4(mMN@kQ4TxISmJJVEx4opEg626@=Vz7>|?b10jW(N`d6TBB5)>dEp~2oF{tfqZOP z4{}o*lt6O$G z`^#y}3-YE6MsGNqCO8^H_^2DoI(KW39-eJM{_2UfTi``?^!9}qg<;~C(` zJ!vj^sDv0Nqs0*O$D*u2^tpy&-UO*@?OkMf6k`)jI0d59BiAZyE$tva!_@_3fSU(M-DvCxVclr#3gLI*Oc0)e zq4UAj&UkE%bj7>^+4hXMPOqPhNP9hWNLeoTib0 zt8r4t7!~6uKzwl;C7+^Ecpmnek%i)3=+T z9AkP7Vj`P90!#O#S0H~6#ocvfOFl#wBjOF^@1b+x{Gzg@skCY6k)`m>PSJzi;^x4Y zU^{`t9$XAZ?XLZ>{ISb9#Qz?OyV=T?C;t}j-_ZhmnsvhC)YcL_!+N_r%Gj1Due3(# z?}l=sJIcX@4q!h#+ZALfojtW%ge~v~onM@Woi?^@`yn`AI)a>O9SBl!3I{pNB^_kz zws?HE^uUon(Pk{f%yL25!2@M8FO*|Ub3u-`Edm*7wgBWew#y;M;NlG+ziF`*WZW>^ z59>zeD>*V1iZ^B-O$TPhCZ9HIYbpE<616;X9E^U zN{VP@(S$7(L_V9aZ89B})0F)o34NNe4s9EJnz1!R6_5^|x@8;m1mAvS@9GJ4hlp+| za|5P^!IMgQT|Q6&T&HC0ma??H0^bjHf$QN|_f5;~)uzlH?nE%Se?Mqus%=x&)eEVX zor=sgGiMKoYS{UVqA+vTsU7M>SJe@H27&K67hB?@V)q{M#qYIF9EBy*yJk}8Iy4xUSezY3ERLl#3i zb4h21Y*CuSb00#tE1=lKl8qBYEeQ9j^t1)8PnQy%q;|1l&RsE`=uInDO@!@P6K2H@ z64jbS&RGL=Sx+tc!1F?a*tC?*VK!`MH}q1=J{i6ztOc{|frM>#2uA!wqLU`aLT`Jv zWJQA5!{S4xE!jGJP#IeA&B?iDj_f*78M~yM33Fs!`|7-$4|8JG_~^OH{)`;+(@fup*)g z_GghtxG#Gq=~fY3Z(uwI(^W9fc7C8smsC2r7tjq!>&Ko6^JNbt?HoHW+>iOhigfQ! zDurikx=T7UDI&Zh%aRnnJQm11QIu?oe@b{~7D!aaI{A+Z_h-+EDp*z0c~}WYB%!4k zXFXURk(gCI*e)V5S9-7$L}l!X>6GvutS3HB4ZlNs$E+~CCtFKYYjUIO!th>fqojvj ztATb%I@LbRyf@n?h%H-Q9p0N=ko0GKb$B24NK*5RH=X*jk`&CL!sMf{+VH+?r=-ur z)&kup!uhZaV;>7L85+I~bPptD zhVKIEnkIbC4cHgnpDmY!YgT`DC>?bohyLsuQ5j2Yx(zJvHq!mxh@3Mhok>>2`(PO= zX==nVpan!&qf_AlY@Z~|FM$0fENRsUV0;*QDPyOaybqREM78YON!38!L}DHVvT`CZ zj|Q;if@mHMVAUgqm%(Lc!-Lo(q8jE}b}2lVrH>N2TT8Bl4`iiTf<78?CwwrQJ66!~ zrGJJ;FqcV!y3JN1VpxHslxl?~vAvRJRa-yD>4wm|G5*#&I6;TZ{%g!}RW@jZe zpMqqXEi4bVu#HG&?TAEMr@*ym)YYQOsl} zQZ1X?0co$KySVtr;|I-M?V^!A7{w+K)w1`~ z!+_opI`&EW(1jy32L>t_YJP(e@!hsY8(mq@fk8GEu4Ez4Lg^lcd{T}$a; zy>^c*W2cE~S$X^Rk#kt(>!_jF6o#z(q1A_zeUV^lknNkH`i@^lK=dD85A#GyhB33|D z!Il-2vc>GOr1fKSBNwxXZImC&%AFaxgr!SzPe@gku)c4hu8e)^4Og+*Hlhl47hX`X zgguwEqE9JM`|ad~`e+FYB@#1d3ERB`b<3EC=^V(xVJA{83+z@CS;gAx>9xoj7Obc3 zk;_jWH9PjU@RGjd>&UgNU>6duS@$E~WcMWDoPLw7d**0#o*+8GZWh0YT+dA2Mawewau$!;z@AI$k;kJpGxna)ITtpI+QveN(C4Gb9W0Yb zczK)c-Y+cobbJxHiYORw>D1db6ng?24qD z(>g^RVx8U>meEx`qds5-l3K_2j5@+jNvd>g7WEN3FKLhQ3;z@B0g))@C(Qf<^dic6 zihX%l_#BiQ9(9_F^3~U_j_(>)Ol7!w2XbKEsLsS4X8Y;_^(Ia4m9Wf?o(=0emf){IEBi>i1NiFV;i<`rT2cK;WVM#`$I zf}9dPqm32YYl52h?-FgM?2$CQTc7A=$_+_x$A&~(DpubM%L%oy(Kbr3q>&@jqwSO; zNniBjQ7x6O*M(*4UOdWKxhLtzZkwapC~CdXb+#HC?WR~rI^Je%w1?s-X@8U4Xm7<^ z(rQzy$aYG1Nt4ZHMz>dnNUCgF8ttQ`6N$QaPzs1d-TjnBH$;Aer_GD*sC4>CP~?IQ z(Os3pcLkZl?C7Dm-xKu3v}RGgl>$izf%++DB^5;Xj0#koei4>+P@`a_tE8G}9u=b0 z5s9)4Q63P9vV<#{_eHulSGCQCbtqEC5sCatlzUBt<-D0MB4;Z-;o1%6z9aYR z=u+j1nV@b99!CF1sc(jaUKF^?ahpi&uPc?OdR=aGrQ!|OgK!6k=hO2Q+vZ5(xUxWb zE{I(kZ4$FU@rJt_IKxAhSjQ|<3M3V*u#Q=xY?9O`+a#u1v9uDFzXqDbELD0+`n~*G z#B!xb(vDdsF)Nf(Yhk%I-8p8ZvXiJ5?)y83uTrXQgsyvMlbF>?9TDoTMZBg&*y?oF zF>94$M9WwP_lS8z@x}+VU=8^`qn*Eeri$7JIYKV(SN&@vPLvtSi(7M zWz24+TGGR=OMq5M!gJVnl}&=+9Ck&_yGkdxUxh94XZ(toJxYQkJcoTxDIgO4{+@C{ z>g;o0i+NAEA?f4fJu&-~u1>+tLZ9cA%aYLNSITus z=<_ROm7C6|OY8;Z36Yq^b&7pkDvOCp%01IM#YGT1nhek5DEX3bPS+`OB~9t5u#3tj zNy$M-9}!`@c*R~+n7gRow(1vf7X(`xb~8q}cl$=dKNr8qQpyT+M{#qw@Rs= zhQ-z^JM~l+`?GSHXf9j0WOM8Tg?pgexh!VM_pwhDKS_2~7VtBsgC(t5(tfCsI#SYG zlR}3!Rf{E+PZ~eeN?jvqW%orx9n^Ov9qhGssIz)j(%N2ohq|dhNm@Sk>`-s@fh7MC zbwk^$9-dg13YHT3U}#6Rqac%K8BOB4s6B|vOqveMYS%>#l)5s%Qs%FQO5HNQ7C^C5 zce8IP>#C*+g7$0{*HtYQ#18u^th>5a(m81P?&=On`S50l?&@Ai>xUveA}V7S$?}*N zma~jG4QmqDU5$Y~H9UAw*ue}>@9yeGp@ZD*;(Dluh)yclo4wS_M9bNQK5gTA z!;fl`7n%WmRcj(K`}?ZyLT3_@>=V~l?Lbs!l9b#TsGHPnPc@J1r}mS&BdO=Z`l%sO zXW<_a-d~N9x;Fmqk^R*qp@aN-#s#RQM76BCbY$cJ^=qMH@0Gg52B{_;ME(8(pTX)N zNpaw1pjs%YU|8q4L29)m%`Ye}M7<|zNkA#wmvw>`*R|4MwH;9zJ3mJO-9V|^R(;5H zuzDHVA6qv)^N?w%x)$aLQt~i`4N=#160~RdA=4r1w9eAfXGmO_TF^z%QlCSnk!m&E zi^F5%%(?M#QK~~%LGO(l85gIP5S1}!O@Vhv&689K$H4@(ny8iq1y77iP_w#Wx?0w} zrZ6r;?bJh1r66-{s`cTrdvQn0( z{vj!T-08SH^@XI!!gD~p4|+LiQWbK~G*7jXG(Hp4*%H;VO(B=TvJ(;J_kG+nb)B%J z9Ynrr0&fe)7PK3A$aIFf7hckgv@+;^T!H#X(uo13riJPU{V6|&D^aofqoiwNU-%cR zzY&QMS)wWdqGWgnphUGM!rb?Gl&AxRj&h%^zOL6jjw@B`1TpOCIciVH2g_o)UkbkyCSe#ms5njR^r`G^;hmFn6kLB7=ro3HX{L5CEp`1xvuq~n&Y z;uok}h_GZn@e9?1f++VzY8K3F%)zy$OZ;NBGC|P!5q;vT)SW4UJ}*^Rje1YgRhSPo zYR^=m3#oRAU8Oe^gp$gYYfoKU+?6|`oFYr+|IU>?#kwnGg}IInJ!v`vdh_)6u|gl?`;a>4~Q zi>Q`0?J+W;POZ!rUYhn;ns7zkS)ikX2{+WNLP5WlexLA*S}kc?_3ecFYD5|8DxkKe ziI3GfqB0gZ$29RTHKH7KWo&1@Y2q_=;D3;6m}$o}vlnU^5%!qEUa6aiu+3}|U#WqW z!gA~a|3o8=&lhyCe^{c4c12QIMtq`~Hf4d(Et@ndv6;4aq0AvJEYVWiyI9cazF~>h z+S)2Xy?TZv+G@@)X0a?2YQqxkv?n!!jK_r~I%vC>30l!3EYVRbSb?+*zB8Pk=&Tjg zBGt0DCKV^P(kxdBDxdUbqPwm>CYmyr~y-H_C0>BOWc&1s{s^j$h5 zDOPK5Ktr`&M72<|T(dZBv?Sl9#Yu5mfuy?V@}zj}p5C%5DM72=gg!CdnxrJ{=dFT# zmu^Z*(W>b*0d?;rrD+Ex`7V7wDMKsRuCqLmG+e7D677&b;Nh7prI|Y3l zbTMg^1}6>FW`BlUOB$_ZO6s3+FKLXHxl8E!EPawRP6IReJK5~&QhRlxo(9A9&jxZE zT*~xhbSG3XAdAU7xk0zIy?bP~&Wlm_a@*t_JzZ$uCOKD6yq#C_G(GKWe?BZCtMf3!A|t|d-XDl|_?D?>|JrPfZ8#d4$$f|TDoOjRm1e@Rs%;OM0FmNa!n zzA|46m9%llRAqsdD5?MAiONDPL(+`Fh00Q|-B zk(8Ra3aDDrFwj+NYb0G{Du}HX{K9R@|)TyN&DQ>lGka= zB^i50Sg+UCN{UfOCU4NTN@7;ylQ(MbNXm1Ju->HYmGpL->B*b5-z4?Zijucze-Vjt zZq<}SG$PsBW+RigYK}xgw@q`Cy06m(uI0(Qw5IQia#pl0Pu{J0OPcPnIC+mYNYWJhe@Q;BB}(dN{UrHgZJ4A_9DhkZp^cH`=JF)@6D^xawC+hQ zU+Oa5j8aZ&^NB>8oz_+uSf19_Nz2iyZOUowili1+PAQ*ic843r;2F)0NaS!v>p)b_ zepHK+&uEbby3e!(sXK1xmhzc4nMmY*R-0*Hc~&cvmWeQW&T8`wEI-#)7+8L;y)G@= znRussu5Fj}iA~3pbJ`wBA3AkU`9iCc6xTMw`b*8^L($fQyauG4*SZslI(((|Z$u%| z63^AY(uNU$Dc);^c?he=WLW$jx@PR>Os-)KKbQk1zV-)eUxd8-RjzSABOi5gwe zo=V*!ySXV>G_NCAccHtgbtEchiOuGwT-Ev+=&oslq;9(T(v)jjvVrbb3oiERRUbKV9BQsn@=fw9_`i`UmZiq`OVuN%>K;Ix0rNk>>kTZfL%eG{T)`|>tx3#%a*SVPjPd~0~q+2I- zJ{G8ZD#_Q~HsZGCcubVcrnSQEXud=uzdKqtsXGHB@{TsNkuF{8p0`5X!A81cQunOc z^OQTE4&Ob}ZW4*MzNh`x$nq~~xkYhHy{9S1MXBGh zbW8n3GnG`QwoARQSxK5{)h_i{t)-;jwa%#zG*?N?x^wDpT02Sije4a%)H+MDx9OGo zyVi?Hl;x2&h)A@{BP~)|_BKBg_DCCUVEKnO(ZKQ#El*nZvwe{AhgK*lz&RlGPpw?i z6_>%OkF_O|mfA+8KGBvFVSYyJFKstby)rULVNbQ>kFoCc%3D>XKn0&5l`*`I{Zv~j z$+ivBPDw-EkWNatH?NvE2;;HttASI|2b-zm8Z}XP|J(0Sf#wVmc)%u(i zx#LdmsTNEmTIs14O(a_Bsg^`k4&VCDgme=mg;T|8qAl(bCTI#%7 zp9y=Roi@s70Q({aEaL-G9rFAC~WnsL()LrwKmCE>J1D(PP zr0%vwDLla2^R)1?(QZSJ-S)D(A~2F|ah^$B9I{81r)m z>5Ta$Y571|kZR1YNor!WGPMbRB5Abs_EdP6!l$Avzc?O9HRDYsg}IzeZOUyV%`^^6 zG3QQ_Vr{}wn(?-h!r>TT!F?q4P%or5=iP}!$t-ygk*JX+50jQ1n(kCAd4i-iE$%s5 z@eIAC5wqq6L}EnR@ZFMdM8dn7Kf_Xs5oyESi0Vzl=0}9v@b-deoZ0ZsQitQrhWC{^ zHu2k38@^Byjx!s+j7XH)hQCQ9N^Qfp62WoB^aiBcXP~p?A4=V!X1}D`@{4+%5o^I8 z5Q#e2aqqKOYB8(qxclb~b+F_8iRw*fSK7n7DMAEM9qf3d)L|X$c(T-WobV{sj=v@e z>tM$>5{Ww4@pp(s9qjl4qH-2w!dlt!qmr)Kc($_Vrwr0L@Cyd%9Qb$AGQ{XbsssN~ z(h=(ysV(_kNgbR_(j58kL?U-5{)$NC?!=p%6XUE*wN7*5%_ViVGD&mh_L7dbF-dF1 z+ekX?)+Vhr_mXtgy+c|X-cgdD=g4Fi-b2z8&kkv>Jb*~#?#9E3MDA`pPFj|!ebd}{ znxxKF5ovAtC`px$>1pnKqNL+(#-(}iX_9PA3er6J4kD3*7e7EGa`56urDd5~mgdDz zNvd>Ql;+L9kaXH@QCd6xwWO==CTZ>Y_mccP7p3{|pC$P;S)0~@n|vYKY_8MVG+*u| zX;Ra?R6pKD(vTJ#(>n5GNekGHv`+jzB2lu={IJyZv9I^*%pV!(y71>xX9~J5JmyQ0 z-^Z@?e*Sy|k*IA~zKcls?8^5`%QCenr7J%osnYTNv~K*Qq|oEy=WrNqQ*% zjYyPw2!Aeh`K{{xhH&SvuzsS{VceTYScdUVMCB~a$SOUIXBgt6KBwQ!r`EyC9-9{!SaDG9I z0$e8&xjB(2XA*ZH66H+dF4D40_3Dwt+e+$e<(-nuJ4vc^?3j|mdrCU(HXtRHkCSxU zxJ!B(-%KQYrt`O@?lspR!qWMdlID5T`(u7fKx-Niz9z zsmq%%04%?jgh!H0{ymXs!AyRaNYo*d|4vlSdKeX(Wb#*%-myk%dP(#{E2jwX*_H^? z8G+A0B2kACe3c}u!wCNT>xMdv;C7b<;U04YhnM%@anm$&-q7?Byq6%V(MTRBby%a3 zJVxri8aE<+Bwr>8Ycz_#MkLBIiXW6Z-0x=b2a>QXK;JZ!C5xMVD{}vS-t_b=ZY_v% z&*Ckm4s*}q?ozjKd?8roNy6N-cp;H!&n!NVNVI1buOcdEOLzsO+hJfinjbK*9Lkq24RmApH&W-&OkrdAJtC3c82+S@CHoF*RL=f@qs$oIhDelUEccSS=jN7d zEDti!jpGqg=LO?)9G^ubav0Am3@pd5`@HQwzWFY(7rXEm%LZ`Ew#s z&Kz!XwZUf&wi!u z<}p(DRjU{Nv-xxbT`4b>x(~r;Dc@zFE93j6&e{U*2k>u+L<`R0w+t-j@CVZJGh?gt zIozdQ)b>gftMqanBPqvpTl!pHBI&iJ@2CHV!^>IqW3Ym+kh<$FK1#3P`wVpR_=i%r z(OF^h_{B!Lt5P=wX3jir@8rV)q;i*M>1%j*N!>i2rN74e zOS1ENmcEvUNP5@wdiv`;LQ<}+n(+o7Dk;(IQTjTbEa?YZ^NjU;7?G&$Mm|pJT3Og- zY~)uZMcZ#P*~A|hSZ?M|q;92otBlP&^e0jGqt2}|w(wPwK5pA8V=Mnz(tgiY8QXZz zpV1QYGh%P?cp@>*w)10>@aVgpAHIv0Vw`Q~mn7j%U^{<6RByUw{{6`9{D~ks7H{XT zqz*^jc5ZSHz0@m1C%R{B=Sh-q)NSX(iA3LS=M#xUOKj(PMCGiT(h<^?NP65{VLN!W zLAo7$twFjSe3P_HP`YRA;QJ(Xw;Y_YlYb~_kYjwt+x%mLbi4RjscU7Cma&Vgzvx;? zfnTOEBPwUn_9HXi;VuTc-F!NcsKahv)<`#BrdwfC^PttmmQg)D^mXu;!Y;us-Nm87Vu1h-Zf@Jm(OI^+;wVjr6kb6o> z^FRucw7?T-n51D|NV6oJC#sdy(HnhkAQGiM$afKmx*z2GrKKmI3|>B$!K=$h zc(f!OXGb{v2m%Y6jlUJ;y8y#C;alMF9a9U8xjVEWW>QOxNsDNRIoBP-b&)7t%Ten9 zVU4MA4K^49C7Fy;gdHMPu$(`xA*O#nOuKyvrd>lhra*b%jcOD|&k7SU{d%G0s-%V( zL+wNGqszseY~D&k`&n_8mI@mO-{lut72b}e3&UMNgH*Z_3azE3%DjUxY!!xnehbI2 z&L@^un~O1`9iqo#*e4UEXhRY2Q`!(C;)N6?H!OdLSq&bVLETk`F&gW>9OFd{`q!At zQv8jxOke!XuzzY_!nYxLqj-$b*vJkT{}g%$?sp8w-x0!+!0%wBG~~OB+Pr-R#u&=% zXpCtrv3-6I#rWAYazr0}wFqN&j6#`L)gZB^4I{+z{}J~t;89gq|L{I%&fJnoNFXr; z!X*$cfh3R{xr&5@ON0P{a1{;1WPp)LCS(#I8YM`O7YtP}La9)pAe9@bMnOva#Ki~H~U-InVS!eCF_t}@V*Is+ix!@gxAJuyFri6>lDK{5tz z2TdP4?egerZh@{G8m+4ME}5=Nx`Agic@&SDM7afx_|KfA`$?v2J~FqidCJ!Fzsj@R z8vdN>s*cy~SgI`62Y>mSmD4b%`?CEvY5iqhgjMNS26@GHP3W!#{B!s-+e81>`1x#V z;eYXH^_QgDY2qVjPRA>Dt+nKIZD*Nt8ODVse#X|7Xccd2qC7uBpQ_@iHru7*J;215 z8s0ta(@Cxh$e@4mFYIpSNkpApbfO&IQ=e(5Uzf7`;cMqTsi%JI*+YxyPT)~RmRzy3M@ zH!Unj*{%B5*JA#?{4DqKMLElGFB8Yt%d-4(rXyMv%Q2Js#^C=Q-7!@!)<&6s=bSrA zwtEq(n3h9V@4=Q~XCamI^xAgLaLg}03m|j$pOHf$kB6&ZTU61NzViu+mDg(bWCZ{D z@{CwTX@5S7X3{4?| zMKZ8I;Pailn?mr$xzlSyLd@b>%(*@-`hQC@Z(T@;MbFt^=V^A(cq|)5KI{_SLhq$A zh`A*H70(MdlYhI4>J!HmTZ?vi~x4bfxHxrTg-^}{!uHX z+}>Gcd?m?{q>&}*4S`e(DJlIN*^+d1O^`p+@hW6JG(i@?DDd(Yl;rRI|63XFqvW+( zrDkF->uBLW z&S_;nlW;9nJY7q%f0#!&jV-{vJf|<<8TPji5?`X!SZWj58ooAp0%_$8<>TMAm2w_s zCq7vKO&mpTMzJ6DRYZHNB3^(Fs61v3VjItKv=%UmgIlQYW~`xpxmrxxQni56QoVfg zvag52t2c^KK$F-EPt`0A!YW$CZ-M_=p7L)+TAw8KjzRpX1BYrcqKYhllHQtZD`{<1STmpHkyj-B!TK?!J#FWn^{szLq91)Wir!4roo4#? z%cm2mttv5d`C3(4MOyJ`tiz-U)W0{AX+hr^SrTt#h3z%#l2k(I6|XP4vqjYVSCO-Y zEt2*B$|8}@P+IGMVVCfBYu4nOm8ac0QF*8x{AWE$%NFa-Vv{D*94c+QMO1K`|9>H$ z2R)Z|-l|{4zie{NelIjf6ZPmC#o+ zj{8Wvvx)x&>*SB8`efwplOnouc8?_)@@5s$f>bK+uql41c9{MBJpt1Ejq&lD-_;`My=Zl#y%po1yHBF{xC3Nnc~XOYY6?9Zh^0>%WKa{}1h3LCA8F zHzIu!Mc*Z+HM>9Ulb3ZLIfr899*Eo@mb0*={d1GFt5Si)+H?^KDiR4K7zsaYojDPFNtN81l95wPPl9n2%U!8lC zdeHxm-u_J`G{V32^|HLmVb%wkR_dV~FOrrh_x7cX)SsK7#=pzR8p-_q%PIXR|Mros zEpz_MC@Pyo$&tStNqLF>BTHUIO8TSZ%TXX}?cbhV%O=yxlE|yvj1J~;+7;!9_P5(z zITY)g1ti@SWof0wkmd9*$uu70lGC*ek|T5QANB9@94b-D$b9@UE!Qln;JxCF|2PKV zAKzvdJvju6UO4u`8NQl;fUoc1*c;zokHWDZ!T^MU2!l9`!JC9<3b#0*xW(J5Tl@v| z5`=pZ$`C3LR^rV8gAfiVkBj~|UPL&HZo&WdI+5#fN+EXLz_5#g*jB&H!8P!5SZalD9d7GM2dfN((hNX)_U zBEngG-+M8_0p%RN=zb2obKrdr-sj+b4&LYBeGcAbl=(7vmr>@+;9UmKD(FoOp+KXE zWI7rcAQFKgB7-r9F`u!JaXzD+(FF|07vf32nsF`T7GNK-1E`?Zgw4Q#qLt}Wz@g$Q zFa_UbALY)(m)l3VCy9K+D0j6uq0sw&TKOrdY!R|)GiZA)aY8n2#aHa#TK<$MG`xl1 znWu7W5pxzYUBYxF(=|-jFxAU5F%^9$lbJXwB0JccLAFR}b3@g1HZza(1lmniTP0)k~_*(|8#)LKf)hLC&`WdCr zS3hGE`s!zlLSOxSlXE+(;|_cs@PzT9hPmolF)e)t@ctCSdl`2#KFW9xzVEol_}2C^ z^_214%xd)_@DVi*x}k^@#-rPRp|%<$=Htt*XubW)Wn=UBR`slswD1qWf`|SDKD82+ z?UZ`eSoZiQkPlk(shXnv(|b+LMn1uYP}5yGVTL@N-mrD7VJc{sA=Y&F^p%E0)5e*b z3`IW4hNmF^vo)_67BZ*Amuk)5!T;n(0a}h}lsj6>Fb$56)7*$vM54*;xCfs-*}u93 zuVx`#t%2Td7ST%Yg0uX1(ZINqaUWwNV-sVG5;$#_@hGl%(0H7$7^^&A-D-SZ=`*WVJg*Fy^@edLa%)tM z^Tx^;AJ)0GwsZ{rqpfgN1 zrjIfm#&ncQ{1~R=m`-6jo9R5zMln^T7RXbn1&UN^^J*mxx>v2xm$C9xYRMv%O0tmC z=ILp@8BL}VPU~iVC1VX^sHt{qUvr(he&S|P&$z|-`ouDGsOhckTg@v>2WS7>+`y7M zb@?-EzA!hi9_~}Wn-gr=r_xB=hgkUX=qcD7mA<>vsFEf$s`ORbMwPx&@uu={afYP{ zlKYh=mA-z_q!z9te)h~eEU|{Kvm?~YN=;UtrBS8tSgbXjn^|CKQBNm0ETrf6f=^$` zAbKTe%ArxEZ(M9NQQAh%Sy3IiyDYKj>%B5Lv4wJXw z_rNfG6|zusFMZcyRll73sU_6pSa$_<$$Z87rqcgzXe`&uZW?!gPwR1&M&C(rf(?62 z1rMcI515+AXIVql33p7e+D-lLn`%AHG8b5;)%fc6GQ|F@aDhTHUeIdt1Z%7D+oT9J z7Bbb=SoQwcH;l2WC?d?=LU;(@!OB2vE#6Z`?b&Qn@unxT1Bb!6GV3jCv+42T_d$R3 z#7D^O+_p2;4E2HHzgctCx7S`mYzFYE@fTaZ2EA;}zaUedT4ue(rOHu%RCvjHlzT7- z97{l<_SRz|0arM7g=ucXFmN7PGB!X_osaLbw3^m0n-D-YXDZ_?#9ol{m&I18MsS z(<__4M`=g7wLt2Zz(8uHzJZGRZ2~kwJzD>U@r21WIWaIpy=&`oHADS=`*Jm3z4++F zz*zN{XzhG;c0y&~S<}(&4+dJ*!)vw#KCk|(Y+GO)+p835wM=g{{3b9Pv?8(%*S9t* z&#Mc@T(ahYvtP+G6t4Rkv4i7-EmL**x91vd7fsX)*#;UZ*#^>|Y{S6^2iuAa&laWI z$f~!h*@kE4jI~`gJ-=>(E!#k&={om?VtzW|PROi&G{aJ4APc{cb1q?YGa@Z!#!5!3 zdHbUe*dooT84uZ_&DZB{x7Co0rOt3W zsL(t#9e4ktzn&6}++T&}(dmk4V)+K}zYb~vUkg5Jcz^3=QE1-h>>WJcoK+VhjvCfa z><9X($3nz>bB{XgDslfF=d^b7@_R-FTh*5Pih@tFKAh(K52#VqWx)s3tosOm##mZb z7JQo1TGdv3hxLMCR_0inRULsZjU9!@@?+&FJeF61{IBRWYT9}-_&T>|9piOw zz3bfL*SUYgAPIX8?=AVk8?fqsN=dHGE|@hB;ddk@X9dqv+H9K(csNH516Hd~|ibm6*Jdc$}1f5^o71tsWUt$!O!+<#GPk znXY4;%6U%ZJS$lTiZtrwg}5R-Se3rzS#5rO#=RjM&2b|@W|Q zR~UpnZ6Z8mUClB3Ac|M_)Lf!Id2x%6&e>8)r0s7=0&w8V}Vl1GBqqy!!mWC zn@n5O7*8#9^2@Y;gw(T41LH;Yy|JT0cWRW+K5#G}F*Y$?MQcE>Sn??FnUJHLXNgMk z$64kiW31Xc4PV2Bt@}-=qVAlx%M!+Yaa<$&6NWMSV<3C58jac0oaY6!$wA{KZj<9^ zbNHy-<|nzQo;T+$(0Y)C9o!&i8lO(n3;is_?i zQ+tw4Bm2B@bYagcl)vSqMq~M;Mq}_gUr~d99&C8ieEVb7J#Fl(hcPFLF@`aY(Pku1 zAjL>tL^fj{^G}#(Pv2{aG`u*4@Ip~juc^!rHN8Fejb4$4uf{g@Dq>Eg;az+IJ<{+5 zzJMNSn2v8tFXVMWi5^RB>t;?Rb7~k*!6GdPJ7s=)8sVeM7KBAZql$s*$|YfE%};Dv z5td=99JeH_&PWPz^ZaVu*}ijj1qk?VCpO}KMQ_yLtX`2*@0e5w6_dd;&fJey^j zxV|ln2RLmbXa(=xr9L{&c#`on^JA6!wmo!PtTGxc8LN~rPR3X0VwI7PZw9}JaWdl< z_BUbrl%z4O2?YdqU*Av&lseiy2p<&e!Y*+zH7!iT%dPYRpOl03|Cb9;K`oXqraL69UDp&EP z?J&?-bt=MibBlEMF-^83S(~Y9T5qUa?=q9$Au}UBB z8^)<7$~ji~^uF`A74fyEny8!$xtwkjc`PO1?^jB=rX^g{B9x&~S;*xq;v6bD|2&oQ zC*KC|mf_Z};e2XXvQC$w*gTc4yTWv2;^E%)Ceq}c?D^E2$nrNZ)+4sXR*!21Tk_aC z<#EY(az6VQk1`%-Jjr;PafgAt{T+tXaSvE_82&i1p-%%^dt}HZ6MY%?l8L^Od&xv^ z-MGT?mrV4n+)E~U^Tu`Nv>HEv|5*>3%0qZrnN->juWle6u$ifx85VUc{5muBT9}zU znJ9P{Pl*^a^>VDC@6rf0$1?AZPt|*wd@TtCqmTjZ=_RY5} z%v}(cVkUn+1$kcYL2E`uq?p;VA?Jg}JkB}KOd7J2cOe>}rTdizBWd7i*6P!&^CwYX zqnK|ot=STO67&0hCEqk;nlWlB=TpS_L@O^94vZ?|+!ivwg!wiDtw&0jZ{r!ZYld)^yHtNNz}gz-#Y!`OFoEh@PMPD|b3 zYt`^o>dovYnAg*K4Kn+cg>2QUElp$IjA}4Hhp!7an7<$P9gyDGv6J&@Fw^&j8_e|9 zj(yB&}z<62t zMbf+dF0uR-#_Nolh4q0kjPWF|K~AziR;bNRn9+Z&hpJP1Aa7OxvHo`7yYb1)^2zFvVRok7OU<@8!GBK*cL@yGjo?EhWT-f zDU8{Sd5lvTix?L&mRLxC+)Qr)9vrX*UpstZKqd2Qm|rJjwFImX>zQs~+{w6)u~0KE z&K!7wt>OjNG)29mVZ*>2^@*)iuRpJS-x>#vh3Cl{*lG$&*fMafWf|(;$T?i#8LElt z7RIBD#~Dvr=0^TmIcYi9|FjZjBKy#!kvF2KRa90j!WbgDU);nd^tESbD9tVe3yVc6SvItFa4{Mh=pDT>l88s{SAY&L~6k`ly z9AgS&HY53Xs|MvUJ(aOgb0$1HsEFx>j3taMu$Es3x|wc-4cV`>Fjg{Whb3&p=Y#gK zP20ycZ8dtF5$ZmTysw=a^;!)}uC;tnzaCoj2@tE%jG2QAwcYC$4}M;GcdKXc9*g_I z%E5IkNj{_^u5_ztOzi@zV7qi)*rzV)KoYkqS`p*AuhFy|~C$r!R!Uk5gF%N*rYp{9o(y<%zPc4*{wXyg_+&arQ@4UAR2 zcfVm=YjLflc9;j;VVW_2@{j|TbK44rw3<%m%pG!)uXUPJowU-dae+CPm~(+SJ6U_L zF#n2`=Fn>PXR6hjxxXHAS$XDxmw+$dadZe-o_B^E<*OgX%3{B=(@68tPP7C3Rj%W8 z*5`T54IHyJ!z#JPFrVX&K(-dIbUGTCFWdK zKE0zBv&`6q4_GcMA8cDYl)NdUum#XpJ1#3@CQw@Va0TQ=tZnUx8mJ%>nCm%r(pjZ`dn6Mw#rclEx9;!g(<%7isenqP|QAi zP?r#~$B_0!@URTa&Iggd;nFEnRO4;yxozlv9Aj++io(mZQg2$0soIp*AHiU{8flNH)i`(aZz;7ZR>uHd`LfOho^BEtn1bnhPkl{-jA!y%6S8v ze~ z8DCqYmD6*VtI`#H9S!}cXzl*)IP=68xpk@afEYLGrHfmCTgjSf4zq|=d;2^wDIWO(_-`C zM-7ZhG%c;38yjogwCZl)&fz7oC$yFE@N%sela|LWM4Q8x3;5L)IVdyn~xw^t|a0?;r_%*TJ%VS?6k9Py&cz%rIor-*IBX%t3TX*0a-io?B z_SF&jXoo)n--j2SuhBO`PMEIMem3H&ap4&R z^tdrXQ6Cwujl7B)g^zsR^82&_!1vOIf-`MpJa9?_p4+o{8d66_VU@IBS;00lR{hK5 z?2#_*t}Qtu3$+jK8XJ(u{&OB%B(%d?;?Nkcl-kQPQ6-Ob$UsXAt&cZQ`}}Rx2O|ru zUbK~>KDl+5rP)-8dA}a*03S@vO&Au}YS`pWiVHP;usI8;Cg;c1a9`9hwi-WO5}}^t zRryZ#B~F;Ws(m1?o?{o9X^bp1(m7+ZK`T{S9;%Hmsi z1T_VaEox+JHN6vmr>)iWQT&#HO#!q9Z)9viTBB&;5qcDKGt$yXY+?Jk1$zbmjBl}0 zdGM(o$wbm7;(wV~(w!oTAN>EG>jIT&IjaWsT4)|*1 ztDxgI9S71oJMuWy=>U3T#|5tYCAK_QxbLn9kbiqUfOciC2hdljuLsb~bv=OAJEsHa zjUX2S$Ui?FK<@+50_iGR;Kvnj7`4FoO~s>Zf!~Fc1HT_u1EjZ$Xo2*WkFY>$jj%vU z8^v@?Ak{Y}kZMGJ;LD@pm>t%W@+R(x{*g~Bl}cWjo0RVZM|su)tbOWnhnP$?$Fkax*KSoxg>ERmwzE&cVQs) z#X>Gsp_VrPNyJjwXdnKA#8Z|Yx#toOpnw0KxWhEB0JFJi)lzd(v-RDC*raB|*@n?c zCCDw75q!f%Gnm z23>~UWU-U!eJsC^<@d4tzCe0k#lAp#PsP4KdOrp2OK%nz__`N(O?rVX%mubT7u9#> zEx?!09@_#Rl4DmG-oc!*!tfZh^rDH{su5Q)ipIdvvmQ#0)e`R9ZabmFtHqseuK-sj9 zQbGf09oKAq_RhbhL8V$wZZqc!$EGlSo%#DzvN>n9_0#rR8hE{* z&9R9Xt&gPU*+?^|GN*`fA>#_uh`KLQ_p$9Q;Tm1G>>o3COdZ?jSnZp_g<~=TK3HQP zlM^ui!6jqddaBaJo5xgwZZcKcXjD?a{}M6*^}hwb=c3KR9x$$;1!|HP@ZH02Ga2R3}?+|GX zoKGF&MQd42LRy9~?V;qfYSb|cbo@hkX^Gkbk2h^?z_0GEPFrE9$+(0$y)L~L{L=JI zX&VFPW;_nM+OrGzBshuMZ#kCq(`B?^#y_F`#@-x~5ioznYiTN=71kJTn9cjNlkAK*jA^e$7;_#VNGuhh<663p9qMI@14Gr zTYe|E(oU}3KCaz9uEkEYA$FU&RpU(7)a1;uXa7i=zssGqfmSPf@mpIx&(u+r))2!v#01go7869Xn-ci@JT)^8 ze0Z}#wEJW;(7cnvoD^`ri+U3~f%7sivp0U(@a~Gr%TzXRibP)qiTX^hOG;t8LB3T=Epk31{>;Grap*%8LtVV z`L{ku!JDueI5yOjHv3@E&LA4sjVjHy`+{f=-3Q6yQBgb-#RSs49~Ve18ONLqrLG`C zE#cNH;nph&${2KiR%1|FZgWUuP(d6ay?wbcC>7SbG3f5d&4`WKv=vBiuxrHCVcUbq zwl@aRo0gh_NKcxAXx3;6qM4`(GFXoX(M)udYjHH_eW}d{i*x%FL13*ZGS0 zwGfiFU~0+htiuO{mh*r`F^_UoWyb`NFMU~=nessPW#!%Nb=f;{FGpi`STJcqSTOZ+ zs42ewmF(!inGdYhq63d)0nGy)+wnW;*AutfRNT#$H#S(bh;!L0?%|p^wkPh``WEy7 zW#U*BJJu7&T12|x+iVMd`@IGnXSe~(GibM4#AJgNIMonLwAKr_P$S7j8cCLDH?nQw zf3)7W+r%?kKcFxUx;_c+Q$f z`7pi-w23VNgHYxJjIRNEicbSb{vu;gAkmv`gwFwOLJ2Au8!es`pDrFI9ue2Fhl!tw zSME&^fuIv`r{d&$5=3872plZRfg?pVFj;H{W-;b6PGSBm@i_Q*F~`BUTs#YoSG*6r zU!1!qhp&~3dlau_FA{r!cIG&kQ_GyS%vr~r-OSm;oW0E1D}I7hhne5X{3Fai!u%uR zS&`xxs8G)17#A_tGOkn3p_k7vEmV>*sKgn_^f<=z%ux(S#FvW=28vx|_>G7wt~LB# z6c!IL9TA0hIvMwxsFlu`s4nMCBxx`|EADdaF%xH?g>bNi_~V#f#OPqoUdvqyQZYT) zN-_?{b&Pu%&j)yw5{Dtst9;`a4D^)b0xy<0fW^+*K+1m|=ntH`ncf@txH5CeVWy9O z-@4=s)8|2_FE!Y_%I}sAw*5v)T9ym?;4%j=!L<(fQ`cVLkb4IPQJ%R$&x)t-buhh- zaWCT$#`BCKm?RC1gBf#zX9glI({`pEOs{2n9n*W5-ph0=(?^&-&nS9uo{WPTa~U0s z>lpVk9$`GsXb7QHgBf!f9gOQ3_c9(~JkKaX`6`Tq8FLvOjO!TpG9F<(&uHk$S7FR$ zbTF=C+{<``@jRoU7t1r|GCCO7G45qN!g!w15XSP1xr`3Rb&Pu%k1(ER6ye82_##6% zr((=ybTF=C+|9U`@i5~N#`BDZ+c+&_E~A5S9phfc!?zt1(-$3K`aGi{f>SZ(GCCO7 zG45qN!g!w1(3|BMa~U0s>lpVk9%ekkc%IP^$*CA~86Ax4822(BVLZ=h=)>}ixr`3R z+CIm`LyOiiy_fL_<9S9yUrxoC%eaWq!MKibFXMSeLlnz1<}x}M*D>y4+{<``@jT<; zev~Sg(ZRTmaWCT$#`BD|{Yi2y<8H><0mRwO*gEitP#tTdiL-}M3?h0UqkS;*84okI zGM-@+F)YbAj&TuV?Qr6^j`%%n(OJetBZ;$nBw4n@jAs}{9C60QQS2f{dmN=&%h<}C zf$_&g>!R9t&Vg}J!ZGpnA~EWi7-1hbiqkUIGOitcMD%d%VQgg_m`XC^7#A_tGM0=X zt6Q7KIWrz+Ji{o`i9e9BHj`x-*N#0Rq8+=(5@!$7hna3=`mE%Pqu4Wy1IH6Rj&Tv= zzzM`TJAvi`G4YrvwTp?wiJ3@!Q47xd_HmOQQNkB5V%*Jmc+!(f|HX$V?M3^Xne;4B zOeP#SnK6R}9%ejSK=sv%=qh_=6TQezvsEqQxWz;-VytD{ z&3Kq`+)|EZJj{58Q7j|=K*n*5!o?iMTE^XshZ)Z>ihDV?RfM&SM^{m=oncz6Ccd_s zI0KoEVR{_Xix`i}*lLm-$9S0W45PS@_yZZoF)m`PWjw;0?VzxeP{Yk(x0e=Y?8JHee5cr5~i|v># zHE4Wreek7VV~^oI?(E_0p@vKf`Ax_>A!kCChdvzoQs}Fpe-9ngb63w__4=;Y@UWt= z$HNAPFAskz+m3`pvCmKXJliL-Z(83+`##b4*L}b1J1iF@KNwGA44!*ddKWnumNiny)fOKzCQh8`d8_R8M`wMW;ACU$@n1SbVg+6(9F2ZF`0RpQ!-~}-ks^lbY-r~ z+?aVG^YhFfGJ~`3$l8$gMAnm8UuFF}%bGntdttUG`;qMT;O#2{Z&SeY;6^-MWX5wv z7GV=TL=c`Y3dU12J@8afsGw(y!h!T`Q3U>bNzXbPU5 zDZmpz)A7VlA)fG=g(rGu;|U%-dWyF!uD@I0{Vkh-^MZ-~VkXhnXr8sX=+6DNjoQ!&v!3P?V7+;-s6$-BD6eyMxGKQ`hS;MaFH0yj+gHSpo7zXQrt zL+^YU^b3#CRfgVq6!^c7yafzj_YTlj^BypYulvX0bX}S1pELdnx?k!!pv?cbaer@% zwavc-dhk781Ggto&KI)@e>Cr3z*iSg&V!S$17&VE)>7=eWy(E56y9$JK0c9hC|yK+ zDf2}#mGkUYD#H{m&(KK}Ypw`|d!~E4#YTZ&F_}2eKTfEyOjB$$_$M|| z9c!4skvTioQ~ntnDD6)krm{);T{m zRXPfEB~ZoMG!eKPD_gv;2HLNR{TL;9?-Q<|Lf5l^Z;0E0$8jB1yp3_AiYZDi(5XxS zx|K=DtrVz=G9@2)zcK}!8lWm3Qwo4vl94eAM`6gRUB6C0^JH!#cAbk;9rzt;9nIx@Ds%WJfk>)XO*SEFBBJ0sLO#<)KcJ7 z)dMV0R{-azUSNq@1$3&bfJ@YB;4<}oT*U=c#l7kSz~$;1V5PbiSf#E5u2k0pSE(C- z52za<{~%BmJq?cl!wj2&V-1f2#~HQ&ry3pyPBT0Ke8sRG*lO4Te8=!4@Lj_$;D?5% zfTs+5fGOHu;27;`pk4bp(4idwuF;+auGO9cKCAr__?-4U`to%x2lxkV1@JA+3p}n> z0pHP90pHcCfq&BO2cFa(0DhpY0sdKA3;amKJATD!Z9VX>+6LemZ6olU_6YETwi)<0 z?NQ+0wJpHUwa0;%v?qXHYTJQdYde77XioyKXuE*_(w+kTTiXM?hPt@Lb=1Wzen4ID zXtVJEP&GaatJ>R?3hZM_1ICy#fJ04Lz~QFbfg?A;^tvRUkgWV860xe&Myl83}I zkUS)Q0m(z+pm`SXSCBj;ehtY(qRBiP_yQz95{oUVz!FOuaG7O3@Lo$6&~3RLSZ28k zSZ>L|{Bj7A=R^x6&xuzp#lWMGJSSd<#NiyinDBtIAbg5>Ao-;n%V`~b<%g|KD; zRqO3Q&1wgltT~vgW>`~!Gp%XBIo1r|JV;&^3m|z}EVSMMya$qTnCa#VyKv#D(mH$* z`Il&uSH$ZW{~w4?#NWj=VN=4D{>m^VLAhO-sMIR|qdcbkR5_&lQTakKs$pthb-0?X z?o%(T*pN0XGCXEDVfd?Ij^@!;Ydf_?#-+w`W3}-i<0Hlf<9_4sjBgqLWISWMZ0u=@ zHjOsjX_{qPXeu$4nyO3>njSX&$h6(`wCNSoA534G0?qfBo#w;lcg)|LZ?lZH+=V+| z`dSBDXIt;K{$L#tusqp>yGgM#l4b_TBsemeM-;B&#>1c&rU=#kdr_dWjH<4ljwd!&cl z5i&2t9by zn|i+2)6}b=S8cDydhO`-Qm?bUg2KYX62sENriA?}tU2s@*q!0_@J-LRv9JRfl^BBl4Z-ub=f^e*nbw0C*$=X!tA z`^(;j$i9(FBI_fckNhgKcb}9#6Z=&4Y3_5f&v$)>^}V~Vvu|17Refvw9_ahGzF+q3 z5fu@Y6qOORI%;jyzNqJ-eid~#DxhCtzdQRC_Vf08uwQ+@C;PqJ?~Q(E`u(Hd_x%F; z_vt^X|4aQ}@BeZC>-|FqBn`+NuyDYN0Xqi#Y``l6{xIO=fWHm6JmAKFuz|lD`0BuS z1_nllM-Pv#i+(ZsZ1k7W{~K)@)N9b-K?#G>2IUPZ8e|`|dC;~&O@m$<^!lJb4mvYv z;@}4de=#^ZCN3s3W>UV|9|vTsP=p(#UO8#-v%$YCkNN`|?I zRSv5eRzAF8cvb9!v72KLjl4U~9k(SeB7Ru>==kjT$?;3#e-&>|=$~*X;qM7o62vIm zsJWw-jaomdanx@|T^u!Zbn0l==(k6!iOUnmB-JE6ob-0mhe_9y`X$FDPfors`47o| zPCk=-d&+{8k`#B!#+1iXo=n-B@@mS}ltHN@Qwvh(q}HTvOWl`xH1%xi^f3>N*+1sk zm@mhKrbVVDrB6p19?E<*^TW(ixy>TR+C|Efa#MI#p2=sT`BEpVx_8j7M z{0qbTbUOcyWM0R#FV7|^@@X);>VHcbd{q1KdKS^8@OR1(JP73oD-bH+0eKNB;R98{ zhhK@X3ZBqv_(9bO_aWR5uf7K10fYw;)*#d(tc8F75PYO{2zBuB*TYA87-0j#{~&Bc z*o5#1LOsG}gdbrQ@F>D#@T9iDciM{ZI6?zf15Y4qL)eb+V}uawFMPCp@VB0Zf3_dK*3S{1K{$Z$3;1czA~eGLdJf?r-bL_BgkQk} zdmf(Gud&Mb4ZN-3}RYKAX&2!7V@u_kH3isL1Om&Ih*+{xlFLMv7u zuOb{lIEp9kUqg5uE0H&_68Qtdn+R_q978yc@HWCb2!F&XMG7B(SVZS0v7XOO;w+zA#4q^VBL0Z; z5bOfD_-%J?J_?kT&O=1HB9D3caXlXe{7uQef(?-4!<@eftX|1TeVi&O)hYa)%0SSj!^L}cmbxAU>L$kop$=<$6u znNL6cIGB&UasP(w)aO|DnvWd?voM^isdHge&pZaAm3WhR8Fy z)Qo^|T<;~dKJX3oRN#kdr0s^7XS<}%vt2_tFFvqY4WA->0s03U-iQ$tXs8c7D`JCQ zQWJs(8(s~%Azlp%S1txkGDO-wL7uJ3Q^7&X3&G*avEVmR<~0Z|L!K#I`93&8i46); z2KMLy-kYe`4dfTDjPJ3=K*!g6L?CUmp-;$JaV6viLbwtZ8lgmoo)yud=fy~b)X*C^ zMkpgg!_j7i+V-B|%4-N;B8==6t}N?iP&W38P`39pD0^}IMXyrrWAMKK{SA%-!@`x^ zun6U2@W1Kx546u&@lCJInmcTZwgF)?;`c)Cci}h0FM6F7)IKM}BNRG*2HsWBSHlk} z8*V$KY*!DV9EX&x_?Y{K+kS`o{0{lGD9?lLYdWNSU^}d|-1aJXucEKwjd|dGi905i zMa(wVBW#HXSDr#R6mdfwG&LJu?ER$iz241+_i%g>pHu4LwYbzbZT|4?Kd^rKFB4aZ}U`O4uiuQVd%WzO)(ecpTc$XR-e+gj?%KWT# zT*4)_sm~y!zig#IV=}>TNu83E7_c&Ff_1}fh1!PO5(9n#y0l-RR@!e7WDB(_jFmqn zM<{=24-GE zn_mNc4efXh<-LaXxrRDkL%qV4jI3+w97~q%9vqkUyCHT*Zny1@M7=|wx8<44n2`by z0ugKoK?uPJJrF_=Lg7jEMCgSOj`Q1aj6mp(nJyCNQK0*S9sqhELNv|?;W!u}24M)o zQ1FIBCKksLI3I~4ri|>d8O6nk#fhUuc3y>jRj#M3(pgsN9lO}a<@j_KnB}mSpti0Nyu=Lv$DYD^}5QIPP98JU7oU>vXTN% z$uxVZ(>u1LxHuUyoc-ux{qjW>c30(8m$#Cy&+M^|;^I7)x7=;7&UM?p-o!TH{7Pr( zET`MaStDQP*rmnAbS(1FC2FK(=k!T3SJXP0DHL*&+q2m2o>1bd^il_`wzJM9YAaA;BDKSW)#VA+ztK@onO{9=E5Wo9ed-Ot!l!W>r?ZF}(B!qA^k_2GnbXjP(`D)ogHG}&mLqc(aX{04qj4#?~2KKNHpWRyr$c zIc?lxnWE>ohoOrW%Lm)W7HlU&mHGMCy~wvyg(U$$LQ5>u%MIt%Gs zR5^*`QRf`D+t-&9Jr%R_sfaR?T92iu4QARM+>y*!ijm8cCp3WM+oY&L3ZS_aF1x!! zM7zSxk~3(B*zul{YMRTrt7T^0Oeq{O(}}s+;ViIMFLvVUGj$8?D@5lCa~i5h;uvZV ze>Ko8Y1`Dt0)7q1=biJD*-WhPl#;b*H#TGebxT(xW$2nV^nizlFvzwK#LB_edx8&TEs@ zn|7|Nl6?#2qwLTMhqHu?eOnHlTZKh^{f-eo&spZFM1SU@(hk|HiD^FDqnDjBlg!S! zNp6wn7A?$~Q42HCR!BBllyTd|sP=v{o=n$i#%s$gF`dfT$?pVbrqk2hpM-898{ph$$i=;-l?^i-?^BQiAyJDP-~&>JJgbTl_RE? zJIkP{a)>y~s<^*7rgM%`zB4yT%Hl#y%ygD|RyvDvc|!Nn07QLg>@K!@S+%>(T2IO* zgT@aPLKa$11?}e@O+RGN$Nr;4=X7Xho#$@}!J>Aj6#+XT`K9G-2z7q9W)N}ISW>U@ zDm>+IrPdhxsnEyLH!E&vB~9UPArMy3c0Xzi_^Z2|T^qb=y^-cf1~<`%2Y*Y$~dL4gYnF zY(}m*O%Cl9odfUH=a*nnH(HSLXOCT0OcPR>mz@5x%KQ=lre0@-UP|an+Y}88$_q9< zYC>6+zOF;_b&5kW-vomgsQOg#em%=qNg#N3H#qbE#A zosgS0F>!o)^2Fqfq#T@0Oixc8la`p2F+P2CPHuW~M#ktdiFq00bCM?}=8aFz%gdwe zI~hhSY4wX@84HT~wsRNCn9eD6E(R|rq}tqc1&fStp?Y*(f5o74Zd_IgE?=iow_UMw z&r$~w4?aKiyr!*kSbQSWE(>8QSEq$Au}~FVxjQX{5lOn(Ww{GJJ0NtCuIp7WZ@OMZ zTsL|knNUsNsN>>y?g7apGo3^iZd)SCQ_8l>S`%XIw2-_$<+W*WM{B`Zb}kw-I~PMT zsTj$Wt?nXqUJN2ew;OE(islhc!bM{07ArEn=vYaC>e!Q#N4aoh=hYSDsUlqrHVgYX zR+Mq)8nX;B+s!&@C9`2Hs4nOx9`innJEUSh0MKtb4Vp#;XQ)n|`eVKQh+?dP7))y$?o^eo zzBvTC@w!P%II&-0`J8Ic1e&(91FP2sZYHQMZYE{PG1NjGCLqb~Tnn9x>v5{K>-qVj zz6-)~cQxE{(7~hQxLdh=dNwRch3nS2gHZQVFemF=c*#WB;e#P13g3-0*Pdl(XO2pg zj>NJKI8d>8!O>x(l$z8p&bJuxp6C_Fx4;bThDh|@9VLCdowzx&A4`4-RrUK+i&evVNbKo?01+LeOKwY z-T}9Bmt+5TQ8#RCYIeuQBuhaNqyuDR*oMgr`+uBM@^i$oyPS zDV#RnS^NA(=lvnFX(CNNq0FuB#Epa*E+JZ(5yf+Z|)xfbF#~j|f z2Z4*a^__e=n+e}~dYQYr16P*I<@J<7M0dq#|H@f`bJnNntFV2DlL;&2ma0r4Pm zj>{TKM0NufB&n-WOG1lb_c%F8U^xMlj>YI=P&aWRbr}}9l{*Nz4(=eO>ol)$9$YxO zURRe3OsZi=_nPuSeUd0i=U8TPY%)dP!Vl4NfzJV|iyxxLa%5*e1aa+i7)x|61v9A> znBUuS@3Nz*UxP)Ue4S^0L{q*uF+H5By%?DH_3W7Fe%{w5Fb#w9cSpL;;Sli4oD*=X zGS!_q#`cyk`!u3%GFkg%(n+S%!bp$fsGCiUkb&lpO-1+1=IM3{LtK{z)#WiX+Lo8F z);hO?F_i58;8x44ceA`ej<=eZe9_(Qoa=@0O-@~WJv|;(@J%f39N*%%y-w}3GELRG zWQVB=yl#B?c5VkBLeHRsn+0Cm0#A>p{_xwy19$8a?1Pqh%Bo8}RbJXU9=)hLZeq9G zByf4!N)p&ksB#un!6yfAinE%}XJD@rr}=p$~9G&vD0iXB}H;#MY-nhRGD&jbdPt=gWYpTNqbe4#pK!7vrkOa%5-Ys>h{J z!Y*T&xqfyjm8812b%^j29OElFmH>#kiE*OL(A*tVTqe-F8Umec7C01_PPyL9W+AG~ zxoQ@ErNf;7uv|EILHBf$uGrc9K;ov$O2knT|E|+netrN3yw1GI^nq9^E^GwtEw=6Q zf!#KsljXom_8)l3KF2JXyakL42+kKAse5EgXBDVh}AxNaMqzAQ)Dxa zE(UR{@uJH?`$_PoL&GQLlk#sYPD*{2)Lkqy^-+Lax*r94_Q{k%XZ;1sPw!GmgtB9z zdrj?_VvH{Z+%?2>XeH)Ibwkw6)J?x44qeAjS4#o0?le$mcT_1byHgrnw!^RiuT7Ca zcPt4ugHzh{CWZATMa=Y6LeNh~WHKyrd8d|c3rbAI&I13u>MS8O<9mgONo_K^7{sk~ zN0&=vxlSX9nUqUXcd^W**kp?B+~az_DHPYSo*0G9?Vu2l@;e_xsVHl7H>ghC4Nm8= zPONU$wP1Iz4|*0IItRSA&H+u%#Jo~BS{A?mp_##w4Lau54T@+kc`?a#X;3{jsk>Na z`n5tT3w2j5itrO0L+5&Pf$G#;;B@H#@H&@GiqX$7UiuvdH3mo4B(1A-VlkK$n?gjF z{F&=l!c?C)6Ww+dN%*B0<4XY*Kuo7P=@(BdPVcU0VEW~h%0k^XV@JU;B&atds7{yU zIA4oobaz=WJ6yKo`Iusy>$!vKlsh>34|-T0R=8GT{-IyqoTd032zLy6a3f)*-R1U< z730}8%Mp`j%_;KCoHSl%j2H3;M%*)q+y5N6_l17Ao#V1k$`wV<)s?uVD=ClH)strD z=LvcH50h^EG6s%=Za%_sI&OBVaFsY`dR9#q#khsA63HhEhzjfr0r8ut?t0+__NE*M z-cFE4h~>K6lp%Pik#^B78e(cyiPKY7GzBd(UCgS+y*H%^`P17jH%k-=RISK^N(yYW zINftai3h)&dY$uxqpD(_FHQS~hc|(CttwoO1m2LyE*hIqxy+V~M`dnff?6*$B zx%#qPNltfhvA}P2c7dM6-6FKZ(&08SF$1??PA_xLTIQ*oUY3jBQ!DHOeO!Q!q>UBf z`(ZuT?J8gFL5DF{|1EZDg_E~mg#Ut+1#+=-)V^re<2lA()Nk#oi}-Vv((mndZ(Dv$ z!1%!#qx&83Gpg|20YNmktldo{g!ryRkkY#*CTXf2H@dNae$yM#GjVs>43A5X@!d5= zF{B7SiK!kB(`1l{hkZsUJ?RK#Hy$(->8w90l{~-waMn7`lSHk4lMJg5br^1w0rgx}5HkY4k&y%W(_+kg7)uEwO|EyG_Dd;SltTeV)_n zz@A}eSE%F9sAEfb#NlpO`cb#QUS?nFEGb$BttrVbL0R3!#V&bIMjI2q`MN364UNQs ze#FOQ@4n> zX*gi0ch@{}EN~=kK@(9_QB8+Rd4PV>@9oYKk?)=Db&>>VpniWdujTD-T_wHwOQt!U zBvI^KU2ew?rL4|)m&bwIljVtS)Ntmc-=c|KqVMM+Ev_>ITcp&yVwwlPoLA#cYuqwK z{t(^6)6OT&^KobxIP_R*GapSl#lKBV!w;?{!d_PGcb4y+P)3`hvTvL^O*h8i7T$a> z$|+;X==$p!|MHGh<$k-yL zyFGOdcXkI3$)N2josMPsW!_5c4Cx7RR{=IPm*UQIA2-)tHXe5cqoqnP$}8zdM1P&b zZ5(=1>`IeBF4UMdw0YRIofP3pGo34{Toj{Qh_-XPv>0vYR4loN<89+P?Bz5;AzS?H zQt2$2Uct7$M3CWxL2_ebgYMk$LIfT$CP(Uhx=EfU$`agvfSF->ncTv{xu>0M>r2`n zZxir!X$Pj4fAc|d*+u!KP^XD5Y=6t@Qn#RxI!CV-`rOOo6GHk>#_eO>kDB(em5}e9 zRbA#-R^ci8Z=|V1JEdT==UF|=gPTdjH0P>GRX8psSPnCB^KF~aV_mdS4jXeTsYE|1 zFD-_#;_+jZLLdE3S;Fre6EvB-c8)a1d{KR>Kz@25bmKI3d2un>dfbZYi}2U!uF<}( zq-9Xo*tR*fYt$?Urq;4<_?nrxj@Gb~y^1rHh>ve1Rf+1x6Q>mF*-AIH;)a#(v*S z!(z*+E_2W^&V*T>D$tnh*fip2K-~p}i?>WNxeJj~SB|%xrBk|hqo3)s9Cyw#4|1d5 z1m*2+?L1v52RDV|iXDX7d3m_y)3dZVzif#o7ha|yUl+rS9z`lEAqJY0^{s?|@s}Qp z&nM+BZ5vHpeO96O8c(ZjiRg|u+(v|6f|rJ#hdp%AjR9DrwBP)U7tP@oXkXjX?b$r5 zFi|1pFs;)st?YI5E474>Tlo zS1u0^7nC?LdYrU`a!YEit6UP~Kh8oYa6Fa>%bC!fi?*g`CY6L7y^dUcx}J;QlUa)V zB>HigPvlayjlYDq&tzs!OlKZiVWC(&CCnl~t*MYjpM#8Ar>xXLJ39ON>OA3Ox3v@@f?zPgh{X9j0yUrpKhxlp12bDf=X z)Q>*1Jk_-Xz9+@x+T9L*Vjz#^QBOJVdbnjA<|_<42vG&)0L(9woKpL0vNB$IMpvJR z^-rZdEs^%SJq}y*@+22#TPGcUBt{Fa0%OgOO2JgE!g6!Y1l_<%<_u2-+#zg{$x~e& zJ3eHkFN`}ebKI-!)mR}fmlc^@RcbGDyKsi(t_O#5gtmM5COS(oAVit(CT#tDiDa{> zV8cQy4QxD=mP@tbQ|~ft5V@U9!)1nl$z(}|ed$uB95hIo^4-PKc5jC-J9w%dzN3YH zLiFPKN*2%O4F)D@Fu}N2RJkhooVpas!H;$N^QowCkM%b6&T)BNbPZiQ%2w*962)eMFVZr3bGm`z$auriabnWFQyF1NhC+# zpqPw@PU)P~hHh@en#@&+bE+Cl>|$3*PFb~NRdU2^tkkO~lr4pUPRK97ei&>79>#)Y zYv<>BD#&7WW|J+N$xkc5mgw>MMOetV={J}Pk6Y*Y{rrtzuG=5grTpeh@NJ-Ui9*Zh z8I;Ov^L89GnOAmnOOeA_jt8FjK`&bDai!U0@|l;B`f3t1jt5$PSsO`O$*sZ!p3`;m zBgrg=%QBbJ`WE0m9?HUTrO?49UJ)F~3P zo3s30Y%)13x);#7zK4*!ourn?N3DIiwoSo4Mu}c7*r~R%PJ~awC!{;Myv4+)ygh?@ z=}%OPIpxj?zGpxAVQiL~v&8As!R}%w$Yn!yH*qKnxul#64UF;COoELEh?#`f4&T-- zPo!p-QTGu^{XMaQ&PrSrmDM?w@`U;V+mvEf)nfg@COB8ToJOyA!*jvuK!;3ULWwBx z0%wJ%$U|o^)igs0>7g(wH>H_ejc2NsQnXw`OhuQ8N%nF+!iFuTbHA}9-4cC?OOJHH zt03nH!(D&48~cG|DkfmJyW9!av~rnTNzrsl&BLXmOJkRh&*}bo|8w*)$@Usjom!GawdOy$%dx|e)m7D%72EBSU1~>dYh%flAMH4?6PIP#s*YqkmK58hja;fKNi|kIR1Zr^ zWcJ=$64(&Km>Ge?j)nv#>;xuk3tBrZXtAxO4PzLyZJ1^|Fj=}Gh6%e38%To0K&oLbQKu?WIR775CgG0c}F{LWgL zg_$vA?%c{Uh83=VCGrR~Y={8J@!j3dg2!cJMciRHrhO*NcNB;$kZ@>x-ta}N?;!p} z&Ik`Mgv6zP>TGOJH45q$1LW0w(mXr3nwjxCTPu?PM=Ynzb{b6GNmWd)DuT!y<;5>%vvWI1W* zh~(2W7G|&VSsIr1LuW>?WfoGGz$vT1_=32Tr40r0Y+^;03~B-WX$RavF6u+(vfQ+i zOgu8ZWm#^$Fgkt)19X;Qc3p{gS<>@ZZ;e%DNpbZ1CjjkKmY%YnEGZ5`(v;8-aVg8h zzkPwVI``7}?4%wr$>+t22s+0nPAo9bLUxYgWbMT|I%Aogu!lpk%;6JLZ1g$Mn7wPJ za|~5kHp0=Nk>lg@=Uzs-n9I`5MQ)!TsESqQvK*6aU@|_PwNNfU4hKvhTNs_s+Kd@G zk~4CWW!b#oSThS9%i}RV1qY6}{KB-F$l^ix)xa2xnGtij+99^xjoLZ0H3H;`tR6O! z`CN)Bpon`mR0LG;aHJd22;-@5>2x!Z^qd?zrBBLdZn#c&r2LYjmeDTK`O%<8i3q=JVO~`h; zsArqbxO}#bEOj7hkZ>n1onLxgG{5CDRg(qdfYP2P=~Q=xY?mZ8ezp>y(uj4VYWb-T zV;M#iU%8OhCtuLwe&T2qO=4wvEn*A^)yyK{uDFKq?DX()24tk~#pA|~gOna(cDA1- znOPLxM{ZF4B?)+fTi!ezwG_%dCrpu(gDTnb(cLH{#Zy*77)e_~m0@`NS!#DE>$nmN z2nIB3DviDs4}&)o_w;0pnQrkXu3JpcrpX##EHaY|D?Ja2wrl zfGp$Uc6Ot;+P84 zOS~YS(5GGqF!^11W3Fn%q7o34TwG6EDTfMxRI(3~f5_wMBJ7=&DgVmhWRK(b6uK&AFvyQKtKm8nYY zh|tC`lGQO(?*r2(ure_!pk>$;zSW7l&^Wl zpsTdn3CekelPjj|(-ob=i9$zKIQfK01S6e$7zk|=AaCDl1CDRuQJyEjr)SLP<%l^q zF8}f{RS<-x{YfG12)07l5k@XGVU&J+D(Fw*1)d)Eek6$j&(dfB zUT7;c;x$9o0g%gddpbdeXQ;Z$k(!ddte+-5k364=8*N3xS)!L8#_c2RQ^P-uqIz^c z+eCQ9F2F@?)=p}Yxiq9rWwOF+x>0K++qFQ6p~aeOyDH+{igfGqPjZCVpjNj1=U24&^=UwNEWfhPX%|QehgGOJY{?jMt}(hgAE(_|yq? z18#%^M=6@ppS7ccWE0Ps=PXad#V$VYF|<~W6)fYVsk=FOSx zv5D+qhr&Aa!HyVHT~A4)JoMtFwW_ii?kD93z>@}0Sb`vBCnQ>A4gSk z|0pp$SpmlJcZf+NAxl&K-b?$;$s`e}^U!=6O3wy7!^Z!7aOXP24#i0V_pvBti`#&} zyG0XnW?!96G1{EbH>Q{gMp>?IDU_)PilsJTMOZi{fP*4oG{H$27isMzQ<({h)J{0WXNz6=W@F|%@Wirr-zZBES< z*Ob;`O|y?yEG&^jo@zH!$#tEZYBn|}0;|2;X$;<6T4GZ4Q$_u#gIKyvqK!0}$eIEd zCMJVYWd=LQ459;e6A=Q)k>ovyOj`oBiY!G&5G!UT61l=^^VtJhG&yt5@}PLKFU?NI zrFmI8lu7C?*O4PfBTJ4&4=qd@*^);mK^As;)&x+t^*m3QdWtr=#lkTZtbk*zk*QGi zg%M25Be-NR>NiZ% z;?4*xIH5-1BYs}1X4#~vwX&dhbjUEn*jypwc{@4HwSXws;o(+ucT0(E_ModPSXuQT zghyHzMGQFk)Py~W2w4jj`GABYqIAiud|DL<#tUb<6F>08F-+z2<3mOiSsvNULL?eq zLo^3D$1W>7J{F*9OY1%@S=!0yh!6{PJao0q6H81Bt70S+H&aRB7*+;|1y;(v`Lqw( zs)T6!!7MVSRM}W~rVzspm(Mgl6HDU9f}^(cj>toj>6xP(Y@*yc^u$SB&k^wp@3I)? z3I$_4tU`9qo_}vcj5;If37*Nhm^ml2kk8@@?L9I86k}8+Ru^nDF7L;YVDE%Xab#%W zbPpU4&N)vB3Vj+!de)JeUn4n)hdZ@2g-oWC6ZBM&?}EPL!k*J=5w;Ky_k72vLfo8Y zH2)A6!AUP+gfv(vo~JYD3A|=Yp zFO}F*7>U5^$sFb5y`K=%0*V3oVNpor)GmYs$YWklTChB$k0Eiv71AqF=_oW!L^wVJ z(pZAXAGkW|C&Dg|S%#Vpdmt?*97TJChfNpx zAtj0Oj!GeN%F{B<(+{()k<6bUBo0GGCP(JM>9=&^4JOFwX1GVpNQ|uQ$}*p-5Ei&X z(A*rc5!fSAvSLd0^Xs3t)dn_YOiP!fnp647i8e2OYEh(m}{#z2EX%1tH;> zT|PDJ4C{_)138#YOel!XbzDms!4X%WLWYrR%nq7+ zpl0qj6?Y=$8f1>~xtMxjdg_Gv@5F?>nhPb9zaoAYax08KI*>~p%?eCNWmeV*<{CQJ zIf*?vmgrttNU+0({o|(~a7iX`g@nV?N4Rd{1AW={3K6Fn1jLawBdnyea?Lh>k=f*o z+(wkk6;L~sNlw}!QHX?PwWEWOWRjB&FC@%oM>^RJ)OaEi%A|^Kh#&X9G^kM|HAZk; z&UWT(OvKIrjr0>i2a)hbC_bwRG@bXcWt2W_j`o54$OJo^%-N@~NT%CUG8Yb`{~$F^ zD_b2alOU`Ro2`eVjY_09Bng|;eTW8ei~HUo;qdeUVUdwFc-%3Fn8inPVYfZnAs4q~ zIqI_hU*_Z-(O3K437ihUg6Ee74af$1*|o70DjT01N=uvb=h>h!iqnXcJ_WHKF#^sl z$dV?ZJgLMnyx)wc%D{A>j9eK7CD`C|iE$hA+1dFJeCB!EC<(;M1A?=M1c`tso-pF# zOqMGl)MKv0dRPjoht#E}?6CqsJn4`G2sW@UoX_180+;m&CstXpQLCV)J+yCjmIfkq zV8EELkL6$?~NMx3qd&;j93l(v+i}d^89LOEmX`T$6+1w(`mF7w5 zy5qaUg5p!m@;wkrIjegh=ghe~IMzM{NirtkxAuWuAvu?>5cDIw$TRk2qEpv-%pF8 zYT@?qB*gY68;*DnLboAP?xnOGYHHkp3fP{o&7(xuUW;j2Ox76gC4<}cXthxv?cphC zZnTH^LA>BZF>UCWAu-7eRqCfu%HI~T{S2zP9VhH>5hLG;X7LHBnn_v=!su2d!HNQG zrb1jAXvlKf?$-sJxrK~lGqdRU@o9=Vo%o|#&ACElA?y)zaYrMP;Ht-=@aUWwYR%p& zjdITTgNMc$jWUeJiAdNb)wv|x3~5hh)P*N+lj;2Ll7xdLNlMlSY{SDxM`CEnuUcp< zl#3`jCxyQ{H5HODo94q2`8|~A zqZ3?0uu;+qx;w53?OAQ!BXDZ2zhV2;RTla?0s7jV0Nr%+DA<-uVFoZHd8!C^=Asu7 zKVlzmfO##-iOny)1UBa!eEIC-Zr{^fPS8Q8H~2I`{RCDt&PI-4XXHvYqYrj*777FB zT#z$kY>amuq7njmJ*SWiZxPq9xc;rLm!#6QrRk<|zBK9SZR32pwQV{1RBL-lDpxpy z8e+iVwA0VW(>wIp{ipT}?TH{gYes=!=Tfu*a#44S5z)~Cx*Q@+fvBWn6bX;CF)?sm z9>s?3F+3U4pdm;`69}jXLcYAVqeI-(3DN8@dvGJIkH&1 z@f&~>DaBlZ8nPrU2z@@57YbGgd&VF$MW6@idIa5@1nXnaEOiS_HZ)R#RnJ6FBkv)U zTKkUM$ldcmG#AKNxis8~@L3@yEKtO7^x&|#s2lkf21fSHeP#Ko&cS}%D|Je;jRu3Rayx2L*ul-ICw>M&P`=F()f zZ4ucB($uVQ*iV+j)bdfanvajTl4L~zm3`YCXI%+Mn|9&JqG!fO`1MN*%9$Zd*Wz^L z1-UcJL;;(WLkov);t<=b7t)^r4`5W!ol+z7`q03n-e+xkELc$3+Gu9xWnjw`RyIvz zcc$TkJSY>2f1N7?jnx(PfH=BAI&V`As#3EnQ}=19h5#Ixl(A$tiQ zZbHvY^C%D|t=X7xcp6u#G#0#=4*PB0Q|sk@W?0jp)4m zQ^Nz1utGn^pEE0&q{lgVM7W8?qrO*ic0*5QSuj$0nD#wzbi!H)po)x@yF`9sw3{8u zv2-e!Ak=m9`wv#5j#Yw%*X>FYE#(?Er^9;th9;*6vVu+fh4Nfx+kKc^PNqKt2duc9 zdbv`YE0awlml##Ka3f~-OX-yu+pMR~MOMiD&iIo`t{{v|i3EwJOBRjlfW(k+f|~rv z`1~`7QB!lfho-nZXNSXcvUn8PMJh{$_2>k|NKCUi%<-VD{k$o%2bO9(yaarHnB#|l zL|O6}o`}!1#RNa`qqkt}58F2rtYSjv=SanMVhPb)$k8d>D$lUAM;+5S3{5bl^Qmzd zg2ukYhd^Qe+1{2CC9dzFhynr)jp|oW$HGiaTBk`jBYUfmGYn;VQ2@jHDNdqj1_M|q z3guZL_gHxKBosa&-GBk<+SV+@Cw$u}pQ(s?XV2~Gj0`~}hFJkt+AQr_{#>Np9*@Ql zit(}wk|o{n7@-GD->{*WfgI=n%Y6LEuv=N@;$8a~Jr)_36Agp~BOVT*4s6_y3~W(y z^dh7N!X08}Dx5Q4cwZZtuT%Yx&1^T+QoEUVnTwu`7PXXmgTd39wtv~`LmanH&wdX9nB zBhZm0>Av4Q87cJevPiz2tWQ=RZHClS6qPX0nJ~GWImo0wqo(?)^%IErsw|=s5_KOb%PEihuV-@?&+O<9dW~49yJVRrBm4_#fEX8x zK*+`UeZ0aUi*Wkq0Tz-xQ(6Tc&ItVyub1B^=X=RGdThjIjDJce27vu57szk+YTVc%z%;xta&BpE;OjfvnS0RnX3!}khfvCSg|iNzs(1~+k> zIOfyKNGw}=4@O~^HWh*;aEVAEUYzwGwux2()Vb`pYpsO#qyj?Fa0KRLLK2h?#6pZy zelU*PDE^|_ZhwNLBXpw{Iz0=F=cp8&w48n*#K-|GM0~r42*sEDuxosWFck5&V&$tvku!~AsX*Dg{W==grFb1>)m1>qt6`G!+q-!vx3+e;w;b6 zlU@{{$Dpt^Jz&FWGaR)U0OXPJEPnBJ_{NVJfxJ8i2`aEBK^=l7m5doq;+Zlr3o#BqH-M-_%Cqos(f?_)<64Vsa+l65 zH$7d>rLkR*noQ)hGBaSc1(uR}6YO$S)`|&+OrJHh=+SYF6_?Nhy6Y>#=K&RiN=SwC zho)oX`EV8aMct9JY`Y?uMNNMMnapCuOIdP00_)Y#(W79g0(-|NP92`c3~GeOyq1u= zbqdRdcDX&qN9JN^7!;)d1V&%D%i1@jh8OE{OviMkd_2d4{Dp#jaA&_)u0!Y;#6`%3 z$e3WK({=zHQzENd%D|kc`8GG)xL>CHx3DYucv%l(Jig;ToK z4IrM+-D2%Futq6MoA;I{)7F;IIft@cn~bM%Alj`iV*umtB|8zGjtSja}_Oj zz|U2*(uSj}Z=ryvt8XUa>MB}j!?7a1e);w~;%t{@^LU#t`sBABK6-RC&?9BUu$X?N z^%A>-cw;m@rn@kj&xzqNYRB-XOG0ud#$^jdPd?$vcNfMNxHBBQw%l39Pr?qPZ@4#* zsTpQydX6>_O?Yijfq*J`VL#OjvPAbJ=8?V?%g1X!PGxPG(x2yA#Vg2g7g@m)nix!?y)~w_T49GUAq4{tw zLq>-orWh1;OCF!aue(!GH|EBCt`|hbYl#(k*^J$`zueTE{(4D1&DcafLBq<&_o74S z@`8)uHhMFzikm4_bJw>G7LgMDcXC9H*cKK}SR_b^2lcG6B_Moqs_9`wLmiJ>x|!zE z`ayffxMRi*t4nn$-XQcPPzvwoMSka&2nq@GwrE;Wee!VmRinuG;HM&NDv zBsZ?9un!}>nqwERP-VaY|6MwpOmG?CxyQGd_gk)yygYKoGLtbd#0V3wXpf&kV;BRM zID666LBGeBi-*Bj-f>qWEsQ}xMvcVY48Skcn%0!ivn`xGxtpeV^)!lUbUxM16Fh{t z5@~BSgn?j+N8n`R!LDY;TSqYA=fsJSBkFaITf!8Y<)5Nwjg_6Xu-#xB@$gxwsU>pL z|E$zc4h+sFM~`t#n?Cl3iQIo}Vi?trOjb!pgl=Tjoh6@Cg|-Jm_|J z4`Xp3;iN#NC+su6zA(!Tue0%2Yv9>9H=T{jeRxUdnQ2m3Cw)h|$us9%#WWs*NJ-ek@!pEwsd-5jbD1T zFjt!`obziGkHLc!QSdD(Yrsa~4W1RDLBUiyFtwqJdSy{=`zUbfIJxn}{cr-1|~TJZUk- zx%)o0mUfB%#!lRiqWzwe!NudgCEQV;it1zU?75lw>A6#Si8gzKC3jVzbAEcTwoLue zTw693)+NBy46ZTkMn>OHG3~exu1~>yT6ejb|KaseEc@2oDA2apIHY za|)c6^19#9xYzGa^gp5gLyU*t0kpbv$#(kGdTOq`gRc0dC+S5va|(ziTb^ud_ZvyF zhV(V}^G|bsmU_pNm+kXOaO7L+W%FJe6&H+2Kbj=pTp4GEfO*{Orzn4b5uKwZHvy95 z+qYI%J-=mj1#4ELl=MEC9MfD5uH4e|^rzLDVI}zSvH;nm$xDPslQ*r+!WItPEp%{^sirCbtcWvOWyfwYO9H{+FNI z5F^)!wVM&a_!I^~dyahhwqF1y!V&yp=>=m>lDziiTRq5Fg{z`b!kJ_AaO(Fm-h9gr ziPetRXFblGg_%>vyJp!_IZS$Gb&y!D3BABy&>j&BC|B-(s z_Lrz{GW!2tf5IQpV&8Sv+oruX5>YbNe3kgWJPgInL|dnzh(qjI^&`%Z-0sxG_w6@q zCmI#lyYlQKO?j1erfBz&QM@yRUuGVf8!+7>?kSono;$@iyr)0*q`faHl03C?PmZrI zP#dcTc;FN|MScEGDGZ(2WNDNkUP?m0`I)=*N>3}MMP+7-@KlRc3GN$L{~ zEy5;ZK&(xRTg5Aiyoc0n#qk}agiCXVD=+S&j%o=W;yEMaMhT%QY+rl%(ck;GcSu94@>c1Rk-R z#~q&rnY+u@!oTfEKl!;hRX09LCK57n(cbg3$%b+O^{6^Wzd?uLJPtRhsFpq7llgJ>`F>qD1E2VWg1Mf zS@N&Ah_{?<5^algD(R0@ES5@cclZgu;&_^wQPV9aNfEY+f`+y>I(0QkZmVGQASDV~ zP``BXvq;Z^o0Yq(Jw=>P8VwY?-|Yv2L>#T!a~Ycap_QS#oa~;HvYuaE3;P)b&ttNS zq=B<8tCWWKvaYVJNl*I$tz~0|)~|AO&V{p9?&{X#dxkUO;*t)serbKp|GJ~J<}dm8f5HP+*Sc^| zv__IZQC?4_>Qzdb%eS1v(KX*rlE>Ti$a`(yjU|s`b$E!?aCxv@15CQepBbduS4eW= zVPJWpt3_tHHX{EJ#6-8*B~M5@DC)yLk0+8RR-Q)}I=b8#GP?H)bD3on&fSvRH4>*h zZkPN9{Ub&Hk9j#h>hdmOFCF^{T6A4r+WS)5nCs=<@(+_oXkTsoFnP3tuKvU1G4;Pn z49(`5LEXcuF?`C{8|e8Wc@?%^?Uh$ zwOU~3cH73h<{>D|-G5l>V*kwMUWAD(3gU*-hL^?Kjo&l>Q zalMJY8ZG?d%5KdTb(egxTAsLa>#MaVtlVlFTsHHjqU{^a1RnCGF!LB|jL!_8f#0o? zS2#Ylx7IfDRq{`l7&`TkY&rq;b}1J~tdgHRpKoK8W6ZbFHtR1bC&l?Cn;n}aW15wD zmGX`3^3uCQD~DDmbrf4^oAD~?jjwaQ<)mM>7ugK_^o%uLB{XGuE3~s}nYh?a+swbS zI%q}=&$pdybj@4ZMzV1fx)tPh)T`$&^ab)d&qUYSFbmi5$ING*?D*0WfPE5K&c*E(s9w8KQ%b((yPbJLYa@FG-Q zBTmMn#YQ+U%f@lmFFU==+hOhtlJ$LN{c=l6JZo0XC>s`An3GN6o5HBwjO|T6WnU3K ziJH#xZ+Bat;;5n-!a*eE$DX&5YJP497N-^NM)>&*lp@{aIqG2*-YiK%`eZmu-Rjox zBc$;Yq12yHsh!&Yoa(pr;I?5|IV0^#HWkiOx9ktC`?;X@WzzpVZOR@n45nJj4nLFU zUFKj{kS4F3SNNV_{wFoRWyYW~vS*3!hB@uYbESQzZEFohUB`gpeuIkEWr{iNWw#{T zG&4V0=^z(A*m>TOKM&K6^gQVbIzdYAZ7=Wk39Zy577@)Z_87InDBp$|-1{u8iTexx zw0;_Ev~&l3;y3=)^Hh{UU9K6L*oCvnn+_hO=4ny1W6qJ8 zxg5#ZuA%w9Q@)#0v_~`N2BD_AC*kGzvGoM=iajJh%j z=s;1B&e(Wigph*#5$r+A3soT-=`m|A?RIS<)ljKi`gR%1`JoVURog`*$Hl;qDWN&9 zP-1Jo?Q|Zu7sr>Tf329lBBZt#%St@;T@*1hxhLOur~G0IFEd9GG6`>ne|N^USdw#( z+#~aNHB^9ivLrvhQsCYe!BzV&w+H%#70)w^Y2%`ZL=S2l*}n1}5Ra%j?4tWJydNvz zMjM8=VTX99dPQX2C>RDup7mO9!}mM$?fO~^`zXIftU~TCQ50itD0SIk%QKV{`x;|z z2~L?=js!{*lec$D&BjE%yYl_#cO`kbW3#ao4@ti#U&j@3?RVZ&VMK^&g*oN(ldt7# zMtUL2(81Z@3BgEi24a;GAapM%;k{V57&U9J*Z~Ff66`nI! z8nJ!NN397%eRf_mGtRO;TOwT-)pYm1~ukYhx-vSRyw5Zun0L)phO?yQ}#v`wiwn;dZGPqFP-ULR#rGD zp2-7G^eWoW8GDjPq(I3;_NHU%|_ ziNJ18e$RC7bsxJf>Lk=KQS&A0o?~p%8MydKTf#^v9|EgH*nI9GN(iEPoKE&EE%!2| zA{Guo%c95}ARC-~wYoO)f{TZ!;0UYfJL0AscaCI&cHT`#GC*_}>g4hxDl6ED{wM^~dd~MA|`jAtIm0fU(ZPQW#I-|5P!+PBUbiRLxI+ETp1K^-h z9?7!8Hwp1dkvOh#j#@~2JoX~_D{m-rOhY)|EI01&@b5)<-3w6kqH3ldTxw08khw~D zpq(01<60MW#k@4k{4t;G1>?krwOW3>pwUTMi!!OX&^#{}8tLCYGpP>_P3=&vvahu$ zw(7e(aWrz~9Ax&!65fNxo7ZJEKA%Y^haKqvjM`j>Ek(JGl?Qp0d}IoqTt#&j%~@7gOn_eHCZoXsHBv3 zr^d+Th0Ef}#c>$EjA(r&nP&JFcaBy`nx(W!-?>^(Z%cbx(A4hsHFk?oagWNdSb9*0 z^}G1zGPLl<*I%?C-=gp4($V&Ec|6gW-9F}q#E*d7qszkT_dbbmt(0+ zx0HOMi#BRcT=`Fci0GGk=;koo-iowmNhy+xrnbPwQ=b% zK=IkZ(I zI%~Uo!_kuF%rCBrMDi&%hC~fl?i3eM_VrO)A{xbY-A#&wtr_~0S|}nYb|eK<^)v?I zfW$X#bhV%qzmMoPOU;BWZr+HhFN>o}CmSX3og*X*x|D9EY7=6j*jzMn_=%y24x8yN zVU}uT_;-*T5o#&j?Rk;FnHt;0pHoJNV{GHj;%m3l+96<=7qX8oCuVo?uv)2|j-q#$ z6Y8byJ!g<~J7_@x=y?GWoNU!usKkY6Xwdm+(z^>1jZf@-t|a7z?2e=Aaz+_p-DWoF z!U!|v`hcyKsS1x5N!|fwClTJy_l`27yq!2_rs#qVolQ?}1c0ELNSWc_(q8lCH?fA) z#M0#)wg{1aI(+E0Qd#Kz;% z>}VwE*R9%V=$8x0-%3hd;MQ*Tk>Gxad1O1jo7Y{Z7M3&Nh);+0?6RXfwfY<@;Rh?? zb}l^XG*eu$+r5aD+sn*gX?tBfBs;YyUjiK>`#PhV;CVb_#_+m64QM) zq`;k>)~Mra0$n_gB6VHOs{{Gbi6VugyEU(NrAeJ;+!4E1L2Zh=rWDhbO z8~$oS(nSWzABP-e^(1+_gpkj1DY2U;eZEGww%YKz3vVg5?3k9NN$%4T$2o94xwjLZ zMLyvsf^L3!S0&O(>Zpa~pqd<7nOfXjE5A=j7Idgv!W_XSZwhR?8`6bt z6=zx)1-HO;iz)7U(Qdodv@Ncw?mgPLRqD!tjX<}NcRmUi7CJ3f}#LYA6tnBLxsBx#xOWsnL7bzS}RW$ccl);+ZL77E9D zT_nHu@#J@o=Slm=Hqb?eXm3Y{v9dzQk`YIEtFSo;OrwKDaEa(b>)S^ms742h&_b6z z*51Mp-1LMUeaq(3cGTZRnrUxKM&*?chP#y9jT z@Wd{2Z*OC%C88T9EN!7c!*98N-zhnM+Xc6m_TSb1@wHB{UxwFgQftyDbp+jQWtNV` zXCs5K-_I5{>^BPCjl(Q$t79u&xNCkb)VJ%`vcYt_g|)Q*sD-a)9MQTl42}wtIftk& zx8|1CXy!NAjYU{~%*Cv%PtiW>QIu90_nORQ6?1s$f>-4PSM#WTC(X*)(q zZqMHzk}KH=l+mPzE;3E0(Z$wey&N}p(X_R$)UDgty3^<7Tk!GRtX=VYxCj+pZNQE$ zcAoa~N8zh}KP7)M(82xYn=5NKOWQpFWJMRS7Icw*m)7m*GIV<<8o!5||0|Cy(kaa^ z@9@{{@IEhZL@Rf<(*x~Ay>X)b-_~0f_!Z|+q<=Sy53$dJqg5AuMO=9jYnm*3*_l!| z+d$r?dyDRaU98qiAy}AA7fO`X&bYLkEHq1L3`vhDTC#$LF;KiN6o2LU`whI{jN9cz zB4VeX#mz8ITnD=7Rr#_-dqkTKaZByElsU=>#=znNH|RoPi{t4kt98MEd}|#}s=7!= z5uWYtzfi_5QfGUOrE;@u358R)CtPx9ujzgley*>3Np3Zt!@`|P6kT+o_7?N2oatr9 zp=Z1)*M(y(Z7ZgnV4cPPy4f@`O>Bt%MOR=(u|P<6 z(Tsa6u2507%-;~C#O*qvJ%A&j-hq7^Ii_G!?WKbUfqZ+=tTC1B4p7I}{gX!DFh$KLU7U~*59J?*2OOj2n+ z9-Vogwq#SDdFsNOjPq`a7Fd(}mOjB1$EKOeSK96xa{Sl!@asM8*SR0#fgkzS>6^zi z8}H_=L(ee@c@^+O9!ypq5Ly+#$?q#92e>g(v|HWvO_nxyebbPl)V-ZF+2PzlS!K0& z^41Ynt8IZgpc#`jzD;vQh@Nj zcA!V9rEj6HTBO`oxrIJR|8klt+dmP_IP>Oi}TLB z-6bN8DPJRZ-oH26nwP$`ls`jT@%`bitvt&Do$MlkX>P(fCkxVSL;||mXd<60j^lf@ zA}m^6?YOOPR-%^GK+;uOuM1~?#%3l>OH^3CaPr#Hbz%{>ZkUiKDY@0$EZf^)@{K|N zF0I)zSlU^HN;?jU__$|7a*uos{8e(DJ#QHlH_#j9itWV3b>)`YPiQl}S+7keoAYh& z;O1}EoAP-Fd`p(19(O3M$E=CmW%d7)uDGU?THyn4baat6CBek9Vj|L2x>>-)5=7T@ z=|sHT`MZ2kL`VI#0#P(wDM=>tH0KeZ7-^30IT8PM>N5)6d4kc4gzHRSr$0AIfx2h| zPCJS#Sg;&CQXGrsD9fwlqP%y3WMYQ^RIiH^S?o=x4B6ZAai6rErnQYiFStj~w`E5$ zUhJnG!;87G-=pl*v*y*Km5Ty}vwhJV2@C&%xr!2*Wu=Q9?^b&$y5Dv?FU{m!jZhMB z-gj9$SdeXlWf$v5v5gEaMfkPvYVf*?7ej2R+o{4*vBy0OC7iWcIlJIlrXv9mr+p`!=&*xdyA=%Y)NZz)+xA+Q5zF5( zdq+z9SN_*G@ruaNl}EhVc2h~C3%~BvzW7jl)uh|b?N&b>$1TH8D{&L=r`$69Zm!*Q z++E~rzZ&G$rWe40GX)K(n${{`#HZM1Hz_ri)9Lp)W+7j& zmy6< z%0|^L*LKs>iZG3ENqt_{A7W%?i|e|xyqxGr-Wa2kNz=mbDspdsJzkOo5^qgk8mcB+rg5FMZq+E*CMPtzUlQN>?CDyM*iQ z)*fjNZg`u4j!9w_WyUtt)r#%*3zx+TI!hOuzN`rmPa@W8MKli4QrSHD6E@nu3x&>p#9oQ@BPWQgEoyna2E<7 z3LAfo>nJi=UTfezAm}-R|wm4zE?vw^>54MQSgc;$QJMzT!AK z>;3w5o4hR7E@QW?RF`wAm# zlsMLNohnkOZhA(0-IrK9t;9GwnAUNO5T2WMvLD-ww^D^cvXiSsC;PT=KvsCsOQVKs z{%S|5iw|h~cwVOUczzX6*t*Gw?QI;gxtvM;Kh&PIvRj2sY)88`K8gT^?Ly<7Zp6Eq zJ~lrQ>qc=7FwWyZ&Z&g>qwp-A*lHHZnhjlN@p6ju#dd~SyE)?)(xJM|;`snGQB9XT zWm}TPrW=LNYRcOq+$iqC-8$7N(g453;g(lDv*&cB+lprGs{R!JYaMmlE*l%NUl)r* z){3}rR`ce2FV<_L9yi^4@gzTa#A$4i0y|t}o$2(uh~0KlHdE>Dvdp*zW3=6ixr^+W zwIkWWxkHWu-}HEzw{xMajkpIzC-Yq8 z=39_-u0tamnIJ9@xHc0zH|L1yK@g*FZC_cGoxXTtp2tW&Ibiip;Br?4{Lw$8iNdh&?Q zti3Jq-+1uuEwsbq+sSt1=x%zNxUs`ge#j2%xJx`H`>p>D)R$Q+Nu=t>S2%-HX?Td4 zNMCj50bxbN9<8`u!WGWAL?S3;Pgv#cfoNv^zUy=L!D+2SJnb*mb^BxNRSp*U+TWo+ zxiJjF3*=oQJj>%@9F@y2j<>AluBE^F7_lslN@sBDEk1};c-U#-KI?Oc{QTVV-VJ`< zEboQblE42VzAbnO=hS{X>;%_N^I_B@!htv=!P(a!KLSyXY|TV9y!WVE_^q!f@5`>? zIeu1JYWzkE(P>CRS_wqHyu&Q65ZlENcUN$w^L|tofx#U&M)}q;Nt{&lX3_Q)anT#u zMSx^)u=(U>Y&5Ra3z%o2=mCXa@K1&&+H+kUz%RZt@H}4j#S0ep63kggJitELIH7fn= zxBgFhw%mtdWXH`otR(knZ8Nz0m^2zU`;|8S56mLG?zCB?P2#WCh#zixswmoIM^Bwh zhD%h|M~(oecIY~WoM7eRo30|7O4S43$z0K(UWC$IIA#@GM7p(Qq~gm}A}ZiTNQxv1 zdnI@~8EA(*>cnI2dgvH7LTMf4=KFYyc>di*jWs#Anvn`i#riaRsTXl)B=?Gl3QLdB zmrMoDoH7#)Vk2i2Fny6wZq%c}N7))K(o%`}Id*mMcohT{?D)BN9{v zQ;n29zkBPm%tK0aBeoWL8}9s=(9)IcymqMvrt-ygi#;Wj?DXoV`i$*`(d}IN zm{0aLsMw!B^lq&; z{;pIX=ou`RYUS$S`ckb{)_)Z%ysfs;3T&<4U)qv{!u!Mbf$;rm_8YYUt^hDrdl- zXT#tc%js`jVICDL*!rXbKnDPDxl|b-Xdh*TN&`L-16S*B9c;~gd;{?<)Zbcf{nBIp zS*9e-Z1cS4>!hwzvsQsmMqZ)JmeQJaKyuxd(uUqrOj2XNqQZKd0zE`iDy+3qPHA1Q z)#Zc1*UDQ;>ytILdh65LHmyk2GOa-mlGc}{d2k&dI#;S~?kmynxzgQqrO!1Rz?gN_ zb$z8|o5cqD`$}s|eV$wEZ~b=Lz(z~CJE`5Blqp}W^p>ryT918^T_S-w-<@no%C(xW z`8u9IYy7shJ}L915D7KDdsJkA&vLbD;aX2`sowkx2EEwB8eKLpfB^u6mVR6&2{bO3 z2JX1CPaTn^(Z{bJml;;i2CEs%*Z!cdOv%MfOG@5dTDL(h3Pl$CRjEqT8uE{USZxbE z03U06o0Ygb=}D6M;x;crdCRTcV;!hmEN)H2ft7$_E<+<0Lj9Pjuie0h&kSt;nUAzX zLpD;C=*umc4a_F{vkhRW;75?Jvs7(}DO2y$P5reP0UsSHt&}@O{m`SrSd=di?5d{4LQ-_V>%J9=ohg z6s+-INV`rQqf87-^R^Mhz@-?t8Ut5i;2Hr#(MuKW)N^2HfTxi|^`ea)hGBH^m*sWk zQ08*XxeS;Zzg*{|BD}a~?YjQO$717GKpn%uPYijrNo~P34D0=>MKwH&UbCpi*7!$( z)bWBaq({5LCZwD+a3ze$CZ?RLAwg|gBiBMg{JtJLBjD4!&X}9Oh~=+aPuD}&+PbmA zM_-{y?ctC37FBP2s7R%zUHDNN-E5`OXsx=ToJHC)D}~J+_qfQw-KBiJ%Ek@3{(9He z8^3~4)f=DI8^2+rG$%@8aD3HUABhhP+}*o|VYK5TgNAPku+T`G#NEkyTK2>{I*}x8 z_f0+{FI5gx@EC1roM|M`3SV#A;gH|P#{eke|7GzOaSz5V9$tq6_cwkn0vo@zFqQz` zk*uuP1%})}Ubx=elaV2P!EzSA8(0oB>$}h* z)s8j$L(TqJv)^m>*VZP?LbGnJH~O`RWK}Lzs}J|~)tftN)&Ayor!tomtd{k`6rA2P z|4uB%zgQwm$|h5V9H zttD&KY+rwK8($(St*1)$84(Lm$r(B+cPA`yeFjLVw11UsRR;!ap$GI`R%VTF^;Xtq zxU*DSlO!dQYRU@O)ZAH5)~Srd$v8pSHIrea6+k?`trsc4$h?7Lo`~4TCH_>(u)Nu0 z>s+7jb(qcH(+hg;pk0d_VFq`byJ8nM?#0P<2yIN=m$eedv}>~gw5A2HS{hJun@Tme z)i(8(X*y=n0#L60QE!#Rdh^$|dh{EM_#)Qo&HtvAT0huRs`Zs?)#|3cvWXfW8&wg@ zu4+fU7BT6uh(V79R$gyDR^8FJMg)X9rMq)-ic=;sEKu&spS(-D8qc zbB`1PsB&`;BD9DgY`yWB3PE+6doD1&A!#Bl19EqqnB8<8LyDITjU;GF<3JVy5 zo5MgMiq&KdpW>$cQE5?3PvWK|r^Ypx`A7@{URz!VrM6Pd$xx~}X>+N9T<2VHYM!o& zPM>o;JZ-ycxMoOoI&O{AL29ZuPdgVmjntGyQmSzpqT&+Cf{76e>K;w9Iq9%C;9vXw z>(wwgWY92$k8E&#WP{=r5#Wzq_^i}w5A+geedpN#`f{#S&9RXv6T$ffLwF0&TH9N$ zR{CIatpVF%l}d#sL^ggbn~d6Gb7^N*?t(S72E}64sD!VS9q#N)dg_b6q&?Is`10bf zkl1SI{Kg)eJGDg3U1Z0OVW7S1>#eWSkocW7D!wN1Oj41Jt|{^Y`L3ko>!R6*w2v>+ z(KeB1Mw;U}uKV7Nbo8z*(ZyQtntJOY14-j&V(S79nyO8(-fYUU!B=^c7A%eZfn~=$ z*)3wYcDv+ZuTx0>YN(PcD%(b(Ol`X=uUI1X++LG0ThATRBNAOS)^gG81wyK3M9-#E z?xtgH6Y04U>Fay3%zG6v2Aax4vtlreW!|X2p&s}WBYUIIZ7cQWdj`|ydmpB6|L3)B zeCXfCV1!fnw!t3dUf>gbApH5LzHpJK+>ba$naVa~2vGLtrSh6}+l0rV+1o_hgm{;1 zD>;pJ8wj=|?Pu7FTamv#;oQG4lir6nEHws(2N`j`a5H5#&=kw87Q)n^c~BOxY#ffR(#|Ky?4}G zhi&%KsSev%1~g^O{IpMepl&HHW3j{%x1iFm)?2Syu>>789oLmyi9hh$?;ka`SM0<;>J9fSdrr-K$S5X@DlW3lT#=?m*a zLKfJ>@<`o*5eGJ&Q+Q(O{wO_S9hG7uKm;&e31ym?J{&Zm!R8gAcJqpc{So6a<{t~c z9csU=oq1RvF9}W9N(b2V`rL@RYKE`xvdjox~_HOBrjaWj0{ zDhgPFnA-%d+Zbcm%mhl3H2e$xV$e#}PX{Cr-^loDLlzs8*si;Z6IzQP`UO*yQA5QH zu)y8`bNW$nkduZgnPn|B6`S;;jqB8BJla^~0G7t}vSd9Mmylaz8@;gABz6fd8!gY8 zJ}4Kg7uPiwD0b)MGL=_ z&9{UA_@Tw4E{muT@HkUAu2zEXQH_CA^SqXoa;w`rSpuu=O?{Z9X;0LfH|+De275ps z`}OgvC4LmUC~vhn1)+_Wq+ac*)+OqhDwrnajbW51r$#O!Iyw2V%Pv;Cxu>mkb@PTb zX-g`ip$tSxO4#6YSjgtEu%UO&wtDkp2>-`sg&)X7%Ah}m1v5TkcJ9^;>W2|q8P&_$ zPb8U9kntgRoAp(B!on>Hd&L7$|COMAKW%K-U^2Ucf|RAfXv^ydOBz%Eg*zkN{MhN{ z$2*L!OWyrNf1r!$cj8xn%^!y*O7V>?_T@IzzZOb~ds)B=lVTgAp@nKRBqKHtuJ2tV zd5SnnwHa?N>Y>JkR&U>kPD*UDqQ2<6_# z7;mR+wAXk)jQD-65Ct3W8>?)*zaf@?T4o%IJ{>ml(^a^mm3^9>LL}5ARzZ4e{_VCk z6^VrP)+hZJozpoL?fY1m};PO-W~CLW~nW+ zbX!_e1JEpGRn3hlByDmo91A2Bro0{V76bT#zjAqd?*`+N+ex>HS`0%das8QM;bGa} zWCz^HX`V4wKBX9@;Y~hyPq69VNq3#b+Ptx3tj!zwu{LjXm|^q!(puLGwXUOmNGn2(j8Ol{1e*?-@JAeRwo12g?YXJm}>(V=GwPd~Nr`0OkxmNvpF9-x- z7*L|tP$uNC+^NCUcBN#A`f0RYD}P$N;WQ+|*R(3N0hHNTtJ0L0AE>wf9SzomFrmer zPLPqd)7c6>sen*>xYwJ1)rO;wPUFE^CH-8a^h&CyUP)!?EA>}RmgXDlNjOsaTF}*R zqUG9--o9%6)oQg;f0Yq1Lk+~03>5i#>nEn-=lLn)VIC<_eYO5-8O~^Mz}X^*jL48S z=ms_g9i(W}H~y(2Gb}q_$1HRO9_hRw+vCVQ`N-9v9$t`t1A0Z#O4v`3%+`3_c>~t^Xh@b|+K08rShEM%}f7nF?bl z76usauwqgMEpW*LklGmdu(x-u=wrI5lVxcXllS!+#EtfJMhNT~^mTvl#!9{Q=jz%1 z*b(sU=4l~mb_P?aA27l`8F$|#YquE%mr50yUtj>0YSN>4U$qZQJA=6J-NHh z(zG!@1z1z+-P3E^%SIZIKHWwd;f~(T_10g~upO@OE!don3DCwLmG#IQ;wTm5o@bm+h!MS+Dj6j<2YyH0xj+cxs@ zK&`JArJlG;ew6{OD^Wl+P}zi>5LwdBN&rrOYoFmb-y6;D2>cZm-rH8J(WY=HSJl?M z3SsFhImmq;P%94IK(NN;!QS3_>u<6Zbci~cL1z0e5nUSB%6Bm0dh73iN86f5FkTbA z=@lP`%gJ8e_(BR{{lXFcU|IrY{laVg7hV@V#WDc0{sxH%S?yyeTP{+_M{vvXJ>r`k zxmd#CQ*OL?3i)(k-C(i}3j#6>p9)oyGQ!a3+Xn9HUF#IW75IYb!eoO>P=mX5rY72l zUERNe2x+$UXuWSDh-c#E$BZt@V;^rulFLuT=HIj;gXJw|CsyUyyX9ncd~#N&@j0W8 zc9vAC9YGTOYOe^$-<1Y1Y}f5%eIUdezo|F>vEKY`fAgOt+EE0^fZhN>;NTBoLeQ}D z*5B&9y1C8Ih)hmSWlY8qtoNT-Q7Yi7Q|pBfp9fVSDQ1iQJOr>5F=vd@%`Xh8euvd! z@mD%+MSzQ7|BMm6XYwal5{R|F!D16hEz?OO_Rhv<_w@D~rfsk25Vp)G+okatBlbT? zd!@Rbad~uuqZdVd4F3#m1n>J7$2ax%&`?bbn7_FFFTBQ?uOGwO>2-6LBt$Dy5;KP` z5rHVwTb%4A^$Vwgj#L`c(;B~(B^ZaC2iOui4S2u5b!W)>g?+m+9MxW^35A21qs%cq zHK-@r_jcSp@7G(~Oo>-OM3ksW&ng|Qax1-O>7() zL);l!ByT;dDV$S?NtJ7N^;SI5FWgAc3ZIpa zZr2Xl5e7!JFt=TZs{v4a2@bR(51~sHXpj|yW}P>B6u}V`@bg=Gp%yj%j~T3sh$_`s zgXent)f}CM>>-orn>{8<#a<#uOkv%AcD-S+2Pq$!73nJhi$8&`>X_9gs}q}_>jWai z!WVu(gv?N+tuj>ebDKC0S^aTF!9&5ADDnpEZ84QnE^AZ(zyJCN~-T*AW*$scGh^LZp$iDD^`yUWo5eyja)bw1cT-? zH=3#m{+`A*L>%j@J}m`p@vAg}wi}9@;Vr*Znz!&Z8tN$A8ur39U~1J<1E73d>dn`! z0@m#QPJ>eg@ic2g34ngh_PE{V&x3M)Adme15s+EA_=k!4YX+ z%z==Q;B^I%0|Hd5=nM75uLs!VD%<>|BUF30WFCB*k3tplQYSd^0pP)aW@R9j&~>b_HLvnI7z1tgE{Z9-rMSnPf|?VI1Fkh z-%!Ds`ixc7MxCj6q$VWi;473cMkWO0Z&2is?|SRI{jDRRsgi%UUSr<}n%8>m;baqq z#G#S8S_dg@LWZ3!)LY|#JJy!%6q43@4LZv*NX*B7kw73iq1;Y+DALdcxn#7WHTWHN z1A^N-6sO5Q=#}KJWsl# zB;?k5$fObW>^24HT+@L@mLiYN#Xl8M;x9sE9S6bn3!jRpUigPVU7A;eV*vU)OyPEo zZ_GM2xg%D!I=>k}gInD1jTW0`s-eNgk79$3AJHH}is*m8j#3v-vCU$O+LMagCcP6Z z#?0#y6)tTA?Q+JC(O#h;v@_t%qlvuhZOyl}rFg$6v2_qWYsgCyg235@T=<&Nuane} zUE=3o)wJM3*Ez=t!xL{sl7s1!0N%I81^dSP5~Kf7RIUF4o`jHO_Cagh$40;yR%@KO zS-P;>Dy!N*>Em;Cctao8trd*Zw0q$TQZAOZNP$tejd%3d8rKG4hpXW-blqFCOf1>1 z^}9g9$gf9tV@>0F7*X?jJbk#HFMfkDq{S79#c#yoH*5-Q5lD1qe};SsFgYjYFvG?> zHB1Vv35~fmscIbH6P3AxyB-p~C)h){CMK!Uq_Gm^s+}AAL1yJ$Ud#3-qr@KQE)sfo5 z>b)oK-nb&)N0CmxoNbY&LrxN8l)sXLt8BhkB3vyJ;M%wX(=DaWgP3>@b4+}=-uiL9 zb=g<-Kz;E8CIAs=e#%S&%rQ*WTR(H?w0`a-_t*E=Thjc5S-(hw7%Kw>K7d?Zma*&N zHhpaW%AnB7TJFENqyOU0`o&%J64(4wm$E+XdV~56ZAu%F9fwzd!leGl*pq~+d zX4{yZD*ya8#COa1G!DCd@d?J!`f(WEeyE`aj+sYWfMB|jbYiWI^NYA~enG{C6ac87 zyb@Y+k|+F8#r6f?_)dde7oRHsQLoy^3Ee-X9p<)hOvkPUL4F@etIXGW`nTfMiaax^ zT?JXmU`~?M*yZo*P|I@C=HwW)_>(j$7!T`1p6KQ9)qn8_Bv>+eww=L8oK5>LzNW&j z8!f-#5D-DQI3ii<;yBZvut~Ni%CORU>xS7}>xpM$NU@lS5M$NEkaxhp4Gl;POP8SriH@d#TgdZ8g$<~+(U z1h%_~ZIa)WcE35z=@?e%IbWaGd|Hp9*H-GNt@!=fOfLDSWgcMp85KaW0~ZUr9Qc$x ziEO-_%?FCOxKC85@%IeT4$)Z?(K9-O16h0X>y;#B>1m5!P*I(s8iTb12W^WU*lm44 z)5Vev%*`ni2TrTp{G8)*C@ymnHTa~~fAOL<_Fp$yeoG@}r_i%bzgp|*L)&qE+>X&{ zr_~d3%$ZvY-(&321eE5lV7{3oVjcY22hjMP1aAk6osQL8|BbPVt@dA(r~s+1ZAbvR zJO=y{OAyh~Hll9gv#6pB$G+XP;?;3e2@S!+g8JblAD{-;GsWu`PZGwI zQRZ4G1Nn#Yx&aNi@f&YjxgrhP#%u>c$D246zRlx7J1Qiw8@#~0e}jEZxjgCnhWSvi z88QDk*%9%A7H)-0^=NU8?Kj?uT;rYS(%*Qe`V}@`y9!wKllaAVa!eZMC+AC=#^S#L zAav;c8%8YtdrXn_i|=tERC3i9CSJ8Zsv)T}f<*yP6icWa)=5GBM5Oy$LrjYW7B8mAICzpRB!2 zA4&4}LwxLihL6F$v&HM-|2>`(c;i;P%-_*JXRjNq{93{OZxOoKR)u<=wpAp=ZQxi9e?QSPi!q6F83XJb7F>;CXP>xj?B}X+@eKS z8qs5~aW$q~lcpTbm_*L{iAEPPGs#^J{)997X0z4StgAo0!Al{&_1xw`P&eLP0Z&B^ zpGut=ht!#lgv@nO8?z@gdOm#5#}d`hGR&hY?(E+1G1Q!t%_Ei6LgfSDdw=+TH5NDD zLkZ8R3-LvBk;)v=Lyb3>)2YoqNJek4IPiPH-^UL2*-EQ*YR zD~-mG8~%-4q;VyTWFVh-J#A&7XWcdghuB#|GjxM#sQ0vJ>0b-%zk;$ieze60FOyDs z2vRIU8vy* zK#fqYxr0G9?@-~j8fZhIhxGA)J{}F_;6;>c?INuu0k$cTy7^KZW1nE-R!6!^5v8vh z3w$78Fz9kR$d7lqT1`$hkwc3qk#$6haYEe&12-TP9w5@@j(6NZQm0n=6bvyM+{+#aF|jNZs@0n5r8=@BhbKKwSE+EG#G0u!S7MV0^A5y;$Oz0 zMW>5v?Fl8LjKZ;$x!B%m{p+O}%^Mxku19iV4M4`0mcdLB;fKxQvovy@NCsIO@V_Ze zsoJ5j>!FGq!eZ^_l?(;&;3~isYC=htO)_`u-$!&{e_d?{#)omm&)3?suIB1pj@>q{ zYS4|JsNp}0iOtD!oFV3lY`RT3{4k6ID*YF+h-_A(C#}CK&OF_~ape|NNL;S?LHZ3)!sur!^^S@PD2sopW^E5gF{XK4%n(V@ET)U+ z0|q$xlp!!e9Ft%n?*=u}yc;QDL5)hMd0ku6q!F_yrs+4*bTuO2EuPf`rM4+@fs(d5 z4IBBtj1^n&DfeHS{ONla*5a)2N`7o+7K~%VE=aBBr>gqz^dY=$exT5w$A+74EBY6L zgjr@nU_dn+zfzti6*RJYN{Q5|p1JvRr^eS#jZBVj96viUIdf`!cyxLS#R_9HFGyi^ z!|Btl*Nu10=qlz`KX1CO6l#?4=yP2~Uz9WPryP&!@SR|4`M zZ@?rcSr75t(z%MRHZCD)^Vu(RFdp;9IE-U%lE$wa-ByGy$hMPi%HuXK{Tn2h&t9^* z5*HNPeuc@6kV<6|oSn(L9I;_fmZv7JHhylgh?pkbS6mcPLI+R?wyR zq$M*tGN5Z}cE3`%X)3riCzW!*%6w!g4IUOr;6Q`AtgUgAOm%;j= zjpR}diQt;O^5Rj?Aknrc7w23ZVYgD(lI>ow}?z~j16p}yUwgCt#} z-2jk2E_ST9=5?GPd%YeoV6*GSgG?Rt>yhv!clbWmhWnRT>EeqAoJ7c06JOWLhRRI9 zt9L4c0kSq%ypX^XPN?uY3jx*OW|^n5<+9*4p|{G`b48uTTwapIF;IJ{=8ak|iKds7 zKqc3reFklffg5pvRc(5DXSbMYRUg;_B5OEtjuOU}HhI0@i>38mErS4VO6AZ3M1nTp zUicAf%%;V(??Y%@XU#~szAFd%kyT(N~hd;3FsNCl9SLVF}x zd;5U_2b&PPk1Yh=qg?}q=7^|M*k56za-EdY1GoTD7U=U=GXkm&rkc8+-~otuMD8?* z{a;&&(@-^Q>dz;-CqO32O&Cct_tcKgQfY}5_hETvA%mBL;WD&NH> zNwa9$?3KC;MwyL+p*xPM0lNf19nhPLWfk}ju+m?ElDv_zHjVgdHRR<`Givm}LnT?Y zci>wbHX+bWy&>HC8)WahlRwM~n-j&7a(F{LRH}sb+KMm{VF4Z!Pf*4^Pvnya>ccdg z_*k&rD9gmGD(&s=P*cTeAg$&77>Moy4BAdJIWTh-R3Ly^tE-GOQz8|B+$j|OPY&-v@C_0`(buW{0*bZAo*fuyQg zutL6>I2U#}HZFtxm%rk>38MLt({Sls{t{JdYej_dX)rfD*5{@gBmBJ11o6aX;~Vx4 z^QUOSuNow<3GN7+j}UvI2X{p63brWk+d#Gz+niMNT!J}=>74gYu1YEHQ)UjDwN0dM zcjRM^oXN^^D5tP+n^qHJ-xhK3i?Xvu(RtpaBw8!^;kMS$?nwnwfy<+2+8n4q9Vn_a zJ-45+OQKil(568Oy&IrEWLu#*Kviw}`qK^qx#wx_)*3f#8K-j3Q}HW4=5|=G_t7J7 zY)aN?QivXuCT5Zd?)w7KH~LEJZwBXc*c(yp!46fIAbqah0K;I+8D{6OURMr_nFX{j z>s3lm!7U1A5qFCpJZgV1nz+Hc6Aa+6BP-uV5FC%82bB6F<|x=fhT2MHWP@T1!$rcG zdlD-zIgdd~3RA(%@~hREMt!hF@w_eC*MzA?&?9NEI*gi7xiyS#42S(zII#1tj3flpSJ ztGgKhK8-!yT_TFL>};?%sK8*gPYE%ezA6u$xnOK7*6g$GELl2eGl-UzL8FY46+O_C z3cAe?jBDE$nxkt?Z&Mq30Y{afBf=ZGZ%D#!EGA5hV?7-_V)D4`p-X9+oLM~WDuR=T zFlSuz&~*eeenyt{Uj7+=uv$7qNXX4B%NEJ<43Ll)%z126aiq|*jw0@M*JbcrzCdNRPB?^RWRY(1bj zf;E_pLs^3#4W70tIwLyGpSOPTb~RJ5!}_B(+m+sKSuK?G2AXRbY{kat73<9=ZL%m! zt5ZYI#%Or5x7sjKI2bg#p~Xgc2+$@!;$KbIjqMPZVm0ZieD1egWNIsW#bzy?l_5ip ze4Z?&7;vM`L~KPk_6mRo4k8meRNGT!#rR62A3(!Z zFPy(wMrz@1P(RN&Gz?@s!P__OwS0tjHhY<62hJKdTG&vlzAzm1< zci#5X+)*U}LKU-Lf0%q`$Rh)v%Bw1fLuTVgA<(?aXzR`Ewo2yW$ULuG+6_;W#}jG# zg6O{kF;NNrJaogeMAxmL9`*JqP}ovh@AYYAMRwfL!63w1hNxG&VqeWqfuj>0+r4!4 zwgK*Aw%~w0^v5aO{dk(_qqOG!q{hE;&;4jDpYsX7U0cB{v8ECduPFl=SX# zhXH;RrfSplS!UrF!lk+9!TNh_yS~X&8oMX z_u`(+k>h0o(L4VQnrOM=)Hdzjg1X4Wa%OhX%MwQI7Pa=wt=8x6-`^C*rhSt4DdPbQ}C1*WCf zca{oUrXM^TSXI-C#$$mm5KRql@$2eMX}Qu1lNMQW6zUoQ}wWdnm^`mI?*F+pxnyOIorU zKzqGThi$=q(i4Z4Jj-@+MdNu6$8R+HVuH`E2)cdg>m}C}p0sMxRy|7AgT4sbPR%@# zY?3^V6l#>=m-zIaM)S;gM};t}6SjD<$zu9ZG+a&I)#!L)c^8^&bv-F@J}4f*&JuMk z6^h+XCyvmvC44`((#b+IJFc`#hQU6@x*sV<`Q=%*XefE2kVDep?DLu-kKQn351dr8 z;6Cje4fxgb(Eu$-9xudGD)Q)cWfr23qpn*>b9YtPHgG1%#Q$)h<4)b~4b~#k z1lswJ8d*(qaDX#ShKh#^E5LLx=9FW75&CDsoJl-3Si+QUo>^)!Z3KPtS z8g&v)#3r7y@b}x^a3ue>Jl&GQkl-9@bTrACBOfVm$_u!&=^#!l*>;FdH0pA>k@_y` zN<{>Mi=CXd!S8N5K~p087;sbI#(WF5iLiB4nCp>rfk~J9!tO!X1IhK8$kxb=L{4Rm z>sf))@L{ZBE>V%=Pd%b$QR|*K#;`qfrHZ2Okjk&0?fYYn%oVt9qo~*dC`|~Y8{j`b z;@=du;S5SW&t2cxR_2BT>d)oHka5`n@imhJ>H&4dcNfAOmdsL*cuy0 z)G0e&#j+a0v`L*umQpt?gdW;oAA!bPmU6)5U7 zUIag=2GB1vKZ7W~kD{MZy=_4LU8eMd8k42bpFDsPp#xgPOf3d!9N@H&2YGYm2*y^t0rvna;0rR+R(gNr({9#W~V7N*bsH!YM53q&U&?xPs z`!e(s5VHkmDM2d!Y0UuM#F)Yvcya`3IP%cRdCc$H T+T$5|2gEG^E5B<0KMnj1yx&O5 literal 271872 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 x.xenotype.defName, x => x.chance) ?? new Dictionary(); - if (!_edit.xenotypeChances.ContainsKey(FactionEditUI.BaselinerDefName)) - _edit.xenotypeChances.Add(FactionEditUI.BaselinerDefName, _edit.Faction?.Def?.xenotypeSet?.BaselinerChance ?? 1f); + if (!_edit.xenotypeChances.ContainsKey(FactionEdit.BaselinerDefName)) + _edit.xenotypeChances.Add(FactionEdit.BaselinerDefName, _edit.Faction?.Def?.xenotypeSet?.BaselinerChance ?? 1f); } - _edit.xenotypeChances[FactionEditUI.BaselinerDefName] = Math.Max(0f, 1f - _edit.xenotypeChances.Sum(x => x.Key == FactionEditUI.BaselinerDefName ? 0 : x.Value)); + _edit.xenotypeChances[FactionEdit.BaselinerDefName] = Math.Max(0f, 1f - _edit.xenotypeChances.Sum(x => x.Key == FactionEdit.BaselinerDefName ? 0 : x.Value)); // Reserve space for add buttons at bottom. const float addButtonsHeight = 70f; diff --git a/1.6/Source/FactionEdit.cs b/1.6/Source/FactionEdit.cs index e40339a..361486c 100644 --- a/1.6/Source/FactionEdit.cs +++ b/1.6/Source/FactionEdit.cs @@ -13,6 +13,9 @@ namespace FactionLoadout; [HotSwappable] public class FactionEdit : IExposable { + ///

Xenotype defName used to represent the "Baseliner" chance in xenotype edits. + public const string BaselinerDefName = "Baseliner"; + private static readonly Dictionary originalFactionDefs = new(); private static Dictionary<(FactionDef, PawnKindDef), PawnKindDef> factionSpecificPawnKindReplacements = new(); public bool Active = true; diff --git a/1.6/Source/FactionEditUI.cs b/1.6/Source/FactionEditUI.cs deleted file mode 100644 index 6e34f6d..0000000 --- a/1.6/Source/FactionEditUI.cs +++ /dev/null @@ -1,616 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Reflection; -using FactionLoadout.Modules; -using FactionLoadout.Patches; -using FactionLoadout.UISupport; -using FactionLoadout.Util; -using RimWorld; -using RimWorld.Planet; -using UnityEngine; -using Verse; - -namespace FactionLoadout; - -[HotSwappable] -public class FactionEditUI : Window -{ - public static string BaselinerDefName = "Baseliner"; - - public readonly FactionEdit Current; - - private readonly List bin = []; - private FactionDef clonedFac; - private ThingFilterUI.UIState filterState = new(); - private int framesSinceF; - private readonly List pawns = []; - private readonly HashSet tempKinds = []; - private bool _ThingIDPatch = false; - private bool _previewFailed = false; - private Vector2 overridesScrollPos; - private float overridesContentHeight = 10000f; // measured after first frame; init large so nothing clips - - public FactionEditUI(FactionEdit fac) - { - Current = fac; - draggable = true; - resizeable = true; - doCloseX = true; - closeOnCancel = true; - closeOnClickedOutside = false; - } - - public static void OpenEditor(FactionEdit fac) - { - if (fac == null) - return; - - Find.WindowStack.Add(new FactionEditUI(fac)); - } - - public override void PostOpen() - { - base.PostOpen(); - Rect copy = windowRect; - copy.y = 110; - copy.x -= copy.width * 0.5f + 15; - copy.height = 800; - windowRect = copy; - } - - public override void PostClose() - { - base.PostClose(); - - DestroyPawns(); - clonedFac = null; - - Find.WindowStack.WindowOfType()?.Close(); - } - - private void DestroyPawns() - { - foreach (Pawn pawn in pawns) - { - if (pawn == null) - continue; - - if (Find.WorldPawns?.Contains(pawn) == true) - { - Find.WorldPawns.RemoveAndDiscardPawnViaGC(pawn); - } - else if (!pawn.Discarded) - { - Find.WorldPawns?.PassToWorld(pawn, PawnDiscardDecideMode.Discard); - } - } - - pawns.Clear(); - } - - public override void DoWindowContents(Rect inRect) - { - framesSinceF++; - - if (Current == null || Current.DeletedOrClosed) - { - Close(); - return; - } - - Listing_Standard ui = new(); - ui.Begin(inRect); - - // --- Header (always visible) --- - Rect r = ui.GetRect(50); - Widgets.Label(r, $"Faction: {Current.Faction.Def?.LabelCap ?? "None".Translate()}"); - if (Current.Faction.IsMissing) - { - ui.Label($"{"FactionLoadout_FactionMissingEditWarning".Translate()}"); - } - - if (Current.Faction.DefName == Preset.SpecialCreepjoinerFactionDefName) - ui.Label($"{"FactionLoadout_FactionEdit_ExperimentalCreepjoiner".Translate()}"); - if (Current.Faction.DefName == Preset.SpecialWildManFactionDefName) - ui.Label($"{"FactionLoadout_FactionEdit_ExperimentalWildMan".Translate()}"); - if (Current.Faction.DefName == Preset.SpecialFactionlessPawnsFactionDefName) - ui.Label($"{"FactionLoadout_Special_FactionlessWarning".Translate()}"); - - // Disabled for now - // DrawMaterialFilter(ui); - - if (!Current.Faction.IsMissing) - { - DrawFactionClipboardToolbar(ui); - } - - // --- Scrollable overrides --- - // Outer container fills available space (no content dependency = no feedback loop). - // Inner rect uses previous frame's measurement + buffer so content is never clipped. - const float minFooterHeight = 200f; - float scrollOutH = Mathf.Max(60f, inRect.height - ui.CurHeight - minFooterHeight); - Rect scrollOutRect = ui.GetRect(scrollOutH); - float innerH = Mathf.Max(overridesContentHeight + 100f, scrollOutH); - Rect scrollViewRect = new(0f, 0f, scrollOutRect.width - 16f, innerH); - - Widgets.BeginScrollView(scrollOutRect, ref overridesScrollPos, scrollViewRect); - Listing_Standard inner = new(); - inner.Begin(scrollViewRect); - - if ( - inner.ButtonTextLabeled( - "FactionLoadout_Faction_Techlevel".Translate(), - Current.TechLevel?.ToStringHuman() ?? "FactionLoadout_NotOverriden_WithDefault".Translate((Current.Faction?.Def?.techLevel ?? TechLevel.Undefined).ToStringHuman()) - ) - ) - { - IEnumerable enums = Enum.GetValues(typeof(TechLevel)).Cast().Append(null); - FloatMenuUtility.MakeMenu( - enums, - e => e?.ToStringHuman() ?? "FactionLoadout_NotOverriden_WithDefault".Translate((Current.Faction?.Def?.techLevel ?? TechLevel.Undefined).ToStringHuman()), - e => - () => - { - Current.TechLevel = e; - } - ); - } - - if ( - ModsConfig.BiotechActive - && Current.Faction is { IsMissing: false } - && Current.Faction?.Def != Preset.SpecialWildManFaction - && Current.Faction?.Def != Preset.SpecialFactionlessPawnsFaction - ) - { - if (!Current.OverrideFactionXenotypes) - { - Current.xenotypeChances.Clear(); - Current.xenotypeChancesByDef.Clear(); - } - - inner.GapLine(); - string xenoState = Current.OverrideFactionXenotypes - ? "FactionLoadout_Xenotype_ActiveCount".Translate(Current.xenotypeChances.Count) - : "FactionLoadout_Xenotype_Off".Translate(); - if (inner.ButtonTextLabeled("FactionLoadout_EditXenoSpawnRates".Translate(), xenoState)) - Find.WindowStack.Add(new Dialog_XenotypeEdit(Current)); - } - - // --- Spawn Groups section --- - if (Current.Faction is not { IsMissing: true }) - { - inner.GapLine(); - - // Summary row: "Spawn Groups: N groups [Edit Spawn Groups]" - Rect groupsRow = inner.GetRect(28f); - float editBtnW = 160f; - Rect editGroupsBtn = new(groupsRow.xMax - editBtnW, groupsRow.y, editBtnW, 24f); - - Text.Anchor = TextAnchor.MiddleLeft; - string groupsSummary; - int groupCount; - if (Current.PawnGroupMakerEdits != null) - { - groupCount = Current.PawnGroupMakerEdits.Count; - groupsSummary = "FactionLoadout_SpawnGroups_SummaryModified".Translate(groupCount, "FactionLoadout_GroupEditor_NewTag".Translate().ToString().ToLower()); - } - else - { - groupCount = Current?.Faction?.Def?.pawnGroupMakers?.Count ?? 0; - groupsSummary = "FactionLoadout_SpawnGroups_Summary".Translate(groupCount); - } - - Rect summaryLabelRect = new(groupsRow.x, groupsRow.y, groupsRow.width - editBtnW - 4f, groupsRow.height); - GUI.color = Color.grey; - Widgets.Label(summaryLabelRect, "FactionLoadout_SpawnGroups_Label".Translate() + " " + groupsSummary); - GUI.color = Color.white; - Text.Anchor = TextAnchor.UpperLeft; - - if (Widgets.ButtonText(editGroupsBtn, "FactionLoadout_SpawnGroups_EditButton".Translate())) - GroupEditorUI.OpenEditor(Current); - - // Orphan warning (conditional) — lists which pawnkinds are missing from groups - HashSet orphaned = Current?.GetOrphanedKinds() ?? []; - if (orphaned.Count > 0) - { - string names = orphaned.Select(k => k.LabelCap.ToString()).OrderBy(n => n).ToCommaList(); - string warnText = "FactionLoadout_SpawnGroups_OrphanWarning".Translate(names); - float warnH = Text.CalcHeight(warnText, inner.ColumnWidth); - Rect warnRow = inner.GetRect(warnH); - GUI.color = new Color(1f, 0.6f, 0.1f); - Widgets.Label(warnRow, warnText); - GUI.color = Color.white; - } - } - - // Give each active module a chance to add faction-level UI (e.g. a button row). - foreach (ITotalControlModule module in ModuleRegistry.Modules) - { - if (!module.IsActive) - continue; - try - { - module.AddFactionUI(Current, inner); - } - catch (Exception e) - { - ModCore.Error($"Error drawing faction UI for module '{module.ModuleName}'", e); - } - } - - inner.GapLine(); - inner.Label($"{"FactionLoadout_FactionEdit_LoadoutOverrides".Translate()}"); - inner.Gap(); - - HashSet orphanedKinds = Current?.GetOrphanedKinds() ?? []; - foreach (PawnKindEdit edit in Current.KindEdits) - { - Rect rect = inner.GetRect(30); - string delText = "Delete".Translate(); - float delW = Mathf.Max(38, Text.CalcSize(delText).x + 10); - GUI.color = Color.red; - if (Widgets.ButtonText(new Rect(rect.x, rect.y, delW, 24), delText)) - { - bin.Add(edit); - edit.DeletedOrClosed = true; - } - - GUI.color = Color.white; - rect.x += delW + 4; - string editText = "FactionLoadout_Edit".Translate().CapitalizeFirst(); - float editW = Mathf.Max(50, Text.CalcSize(editText).x + 10); - if (Widgets.ButtonText(new Rect(rect.x, rect.y, editW, 24), editText)) - Find.WindowStack.Add(new PawnKindEditUI(edit)); - - rect.x += editW + 4; - if (Widgets.ButtonImageFitted(new Rect(rect.x, rect.y, 24, 24), TexButton.Copy)) - PawnKindClipboard.Copy(edit); - TooltipHandler.TipRegion(new Rect(rect.x, rect.y, 24, 24), "FactionLoadout_Clipboard_CopyTooltip".Translate()); - - rect.x += 28; - if (PawnKindClipboard.HasData) - { - if (Widgets.ButtonImageFitted(new Rect(rect.x, rect.y, 24, 24), TexButton.Paste)) - PawnKindClipboard.PasteAll(edit); - TooltipHandler.TipRegion(new Rect(rect.x, rect.y, 24, 24), "FactionLoadout_Clipboard_PasteAllTooltip".Translate(PawnKindClipboard.GetDescription())); - } - else - { - GUI.color = Color.gray; - Widgets.DrawTextureFitted(new Rect(rect.x, rect.y, 24, 24), TexButton.Paste, 1f); - GUI.color = Color.white; - TooltipHandler.TipRegion(new Rect(rect.x, rect.y, 24, 24), "FactionLoadout_Clipboard_Empty".Translate()); - } - - rect.x += 28; - - // Orphan warning icon - bool isOrphaned = !edit.IsGlobal && edit.Def != null && orphanedKinds.Contains(edit.Def); - if (isOrphaned) - { - GUI.color = Color.yellow; - Widgets.Label(new Rect(rect.x, rect.y, 20f, 24f), "⚠"); - GUI.color = Color.white; - TooltipHandler.TipRegion(new Rect(rect.x, rect.y, 20f, 24f), "FactionLoadout_SpawnGroups_OrphanKindTooltip".Translate()); - rect.x += 22f; - } - - Widgets.Label(rect, $"{(edit.IsGlobal ? $"{"FactionLoadout_GlobalLabel".Translate()}" : edit.Def.LabelCap.ToString())}"); - } - - foreach (PawnKindEdit item in bin) - Current.KindEdits.Remove(item); - bin.Clear(); - - if (!Current.Faction.IsMissing && inner.ButtonText("Add".Translate().CapitalizeFirst() + "...")) - { - IEnumerable MakeKinds() - { - tempKinds.Clear(); - if (!Current.HasGlobalEditor()) - tempKinds.Add(null); - - // Collect all pawnkinds from group edits (if active) or the - // live faction def. When PawnGroupMakerEdits is null, - // GetAllKindDefsForUI delegates to GetAllPawnKinds which already - // includes basicMemberKind and fixedLeaderKinds. - foreach (PawnKindDef kind in Current.GetAllKindDefsForUI()) - { - if (!Current.HasEditFor(kind)) - tempKinds.Add(kind); - } - - // basicMemberKind and fixedLeaderKinds are NOT included in the - // PawnGroupMaker-based path of GetAllKindDefsForUI (those fields - // are not part of any group maker entry). When PawnGroupMakerEdits - // is null the GetAllPawnKinds path already covers them, so only - // add them here when group edits are active to avoid duplicates. - if (Current.PawnGroupMakerEdits != null) - { - if (Current.Faction.Def?.basicMemberKind != null && !Current.HasEditFor(Current.Faction.Def.basicMemberKind)) - tempKinds.Add(Current.Faction.Def.basicMemberKind); - if (Current.Faction.Def?.fixedLeaderKinds != null) - { - foreach (PawnKindDef item in Current.Faction.Def.fixedLeaderKinds) - { - if (!Current.HasEditFor(item)) - tempKinds.Add(item); - } - } - } - - foreach (PawnKindDef item in tempKinds) - yield return item; - - if (tempKinds.Count(k => k != null) == 0) - { - if (Current.Faction.Def == FactionDefOf.Ancients || Current.Faction.Def == FactionDefOf.AncientsHostile) - { - yield return PawnKindDefOf.AncientSoldier; - yield return PawnKindDefOf.Slave; - } - } - - tempKinds.Clear(); - } - - List kinds = MakeKinds().ToList(); - List items = CustomFloatMenu.MakeItems( - kinds, - k => - k != null - ? new MenuItemText(k, $"{k.LabelCap} ({k.defName})", tooltip: k.description) - : new MenuItemText(null, $"{"FactionLoadout_GlobalLabel".Translate()}") - ); - CustomFloatMenu.Open( - items, - raw => - { - PawnKindDef k = raw.GetPayload(); - if (k != null) - { - Current.KindEdits.Add(new PawnKindEdit(k)); - } - else - { - PawnKindDef kind = kinds.FirstOrDefault(pawnKindDef => pawnKindDef != null); - ModCore.Log($"Using {kind} as global base."); - if (kind != null) - Current.KindEdits.Insert(0, new PawnKindEdit(kind) { IsGlobal = true }); - } - } - ); - } - - overridesContentHeight = inner.CurHeight; - inner.End(); - Widgets.EndScrollView(); - - // --- Footer (always visible) --- - ui.GapLine(26); - - if (Prefs.DevMode && clonedFac != null && ui.ButtonText("FactionLoadout_FactionEdit_DebugClonedKinds".Translate())) - foreach (PawnKindDef kind in clonedFac.GetKindDefs()) - { - ModCore.Log($"Kind: {kind.label} ({kind.defName})"); - ModCore.Log($" - Apparel Money: {kind.apparelMoney}"); - if (kind.apparelRequired == null) - continue; - ModCore.Log(" - Apparel required:"); - foreach (ThingDef item in kind.apparelRequired) - ModCore.Log($" * {item?.LabelCap ?? ""}"); - } - - bool isInGame = Verse.Current.Game != null; - - if (!isInGame) - { - ui.Label($"{"FactionLoadout_FactionEdit_PreviewError".Translate()}"); - } - else - { - ui.CheckboxLabeled("FactionLoadout_FactionEdit_ThingIDPatch".Translate(), ref _ThingIDPatch, "FactionLoadout_FactionEdit_ThingIDPatchTooltip".Translate()); - ui.Gap(20); - Rect total = ui.GetRect(inRect.height - ui.CurHeight - 32); - int count = pawns.Count; - - if (count != 0) - { - const float labelH = 26f; - float maxIconH = Mathf.Max(total.height - labelH - 10f, 50f); - float w = Mathf.Min(total.width / count, maxIconH); - for (int i = 0; i < count; i++) - { - Rect pawnArea = new(total.x + i * w, total.y, w, w); - Pawn pawn = pawns[i]; - - if (pawn != null) - Widgets.ThingIcon(pawnArea, pawn); - else - Widgets.DrawTextureFitted(pawnArea, Widgets.CheckboxOffTex, 1f); - - Widgets.DrawHighlightIfMouseover(pawnArea); - TooltipHandler.TipRegion(pawnArea, pawn?.KindLabel?.CapitalizeFirst() ?? ""); - if (Mouse.IsOver(pawnArea) && pawn != null) - { - Pawn p = pawns[i]; - Rect window = windowRect; - window.y += 510; - window.x -= 465 - 40; - window.height = 550; - window.width = 410; - Find.WindowStack.ImmediateWindow( - 90812358, - window, - WindowLayer.Super, - () => - { - var list = - typeof(Selector).GetField("selected", BindingFlags.Instance | BindingFlags.NonPublic)?.GetValue(Find.Selector) as List - ?? new List(); - list.Clear(); - list.Add(p); - typeof(ITab_Pawn_Gear).GetMethod("FillTab", BindingFlags.Instance | BindingFlags.NonPublic)?.Invoke(new ITab_Pawn_Gear(), []); - list.Clear(); - } - ); - } - - pawnArea.height = 200; - pawnArea.y += w + 10; - if (pawnArea.width >= 50) - Widgets.Label(pawnArea, pawns[i]?.KindLabel.CapitalizeFirst() ?? ""); - } - } - } - - GUI.enabled = isInGame; - bool f = Input.GetKeyDown(KeyCode.F); - if ((ui.ButtonText("FactionLoadout_FactionEdit_RegeneratePreviews".Translate()) || (pawns.Count == 0 && !_previewFailed) || (f && framesSinceF > 20)) && isInGame) - { - if (f) - framesSinceF = 0; - _previewFailed = false; - - FactionDef toClone = FactionEdit.TryGetOriginal(Current.Faction.Def.defName) ?? Current.Faction.Def; - clonedFac = CloningUtility.Clone(toClone); - clonedFac.defName = Current.Faction.Def.defName; - clonedFac.humanlikeFaction = Current.Faction.Def.humanlikeFaction; - clonedFac.fixedName = $"TEMP FACTION CLONE ({clonedFac.defName})"; - - Current.Apply(clonedFac, false); - DestroyPawns(); - - Faction faction = new() - { - def = clonedFac, - loadID = -1, - colorFromSpectrum = Rand.Range(0f, 1f), - hidden = true, - ideos = Find.FactionManager?.FirstFactionOfDef(Current.Faction.Def)?.ideos, - Name = clonedFac.fixedName, - relations = Find - .FactionManager.AllFactionsVisible.Select(otherFaction => new FactionRelation - { - other = otherFaction, - baseGoodwill = 0, - kind = FactionRelationKind.Neutral, - }) - .ToList(), - temporary = true, - deactivated = true, - }; - - ThingIDPatch.Active = _ThingIDPatch; - IdeoUtilityPatch.Active = true; - FactionUtilityPawnGenPatch.Active = true; - - foreach (PawnKindDef item in FactionEdit.GetAllPawnKinds(clonedFac)) - try - { - Pawn pawn = PawnGenerator.GeneratePawn( - new PawnGenerationRequest(item, faction) - { - ForceGenerateNewPawn = true, - AllowDowned = false, - AllowDead = false, - CanGeneratePawnRelations = false, - RelationWithExtraPawnChanceFactor = 0, - ColonistRelationChanceFactor = 0, - ForceNoIdeo = true, - ForbidAnyTitle = true, - } - ); - pawns.Add(pawn); - } - catch (Exception e) - { - ModCore.Error($"Failed to generate pawn of type '{item.LabelCap}':", e); - pawns.Add(null); - } - - Find.FactionManager.Remove(faction); - - ThingIDPatch.Active = false; - FactionLeaderPatch.Active = false; - FactionUtilityPawnGenPatch.Active = false; - IdeoUtilityPatch.Active = false; - } - - GUI.enabled = true; - ui.End(); - } - - private void DrawFactionClipboardToolbar(Listing_Standard ui) - { - Rect toolbar = ui.GetRect(28f); - float x = toolbar.x; - float y = toolbar.y; - const float btnSize = 24f; - const float gap = 4f; - - if (Widgets.ButtonImageFitted(new Rect(x, y, btnSize, btnSize), TexButton.Copy)) - FactionEditClipboard.Copy(Current); - TooltipHandler.TipRegion(new Rect(x, y, btnSize, btnSize), "FactionLoadout_FactionClipboard_CopyTooltip".Translate()); - - x += btnSize + gap; - if (FactionEditClipboard.HasData) - { - if (Widgets.ButtonImageFitted(new Rect(x, y, btnSize, btnSize), TexButton.Paste)) - FactionEditClipboard.PasteAll(Current); - TooltipHandler.TipRegion(new Rect(x, y, btnSize, btnSize), "FactionLoadout_FactionClipboard_PasteTooltip".Translate(FactionEditClipboard.GetDescription())); - } - else - { - GUI.color = Color.gray; - Widgets.DrawTextureFitted(new Rect(x, y, btnSize, btnSize), TexButton.Paste, 1f); - GUI.color = Color.white; - TooltipHandler.TipRegion(new Rect(x, y, btnSize, btnSize), "FactionLoadout_Clipboard_Empty".Translate()); - } - } - - private void DrawMaterialFilter(Listing_Standard ui) - { - Rect matRect = ui.GetRect(28); - matRect.width = 300; - if ( - Widgets.ButtonText( - matRect, - $"{"FactionLoadout_FactionEdit_CustomMaterials".Translate()}{(Current.ApparelStuffFilter == null ? $"{"No".Translate()}" : $"{"Yes".Translate()}")}" - ) - ) - { - filterState = new ThingFilterUI.UIState(); - - if (Current.ApparelStuffFilter != null) - { - Current.ApparelStuffFilter = null; - } - else - { - Current.ApparelStuffFilter = new ThingFilter(); - if (Current.Faction.Def.apparelStuffFilter != null) - Current.ApparelStuffFilter.CopyAllowancesFrom(Current.Faction.Def.apparelStuffFilter); - } - } - - if (Current.ApparelStuffFilter == null) - return; - Rect filter = ui.GetRect(240); - ThingFilterUI.DoThingFilterConfigWindow( - filter, - filterState, - Current.ApparelStuffFilter, - forceHideHitPointsConfig: true, - forceHiddenFilters: - [ - SpecialThingFilterDefOf.AllowDeadmansApparel, - SpecialThingFilterDefOf.AllowNonDeadmansApparel, - SpecialThingFilterDefOf.AllowFresh, - DefDatabase.GetNamed("AllowRotten"), - ] - ); - } -} diff --git a/1.6/Source/ModCore.cs b/1.6/Source/ModCore.cs index d3b5546..37dfcea 100644 --- a/1.6/Source/ModCore.cs +++ b/1.6/Source/ModCore.cs @@ -12,9 +12,7 @@ namespace FactionLoadout; public class ModCore : Mod { - public Dialog_FactionLoadout settingsDialog = null; public static MySettings Settings; - public Dialog_FactionLoadout SettingsDialog => settingsDialog ??= new Dialog_FactionLoadout(); public static void Debug(string msg) { @@ -54,7 +52,17 @@ public override string SettingsCategory() public override void DoSettingsWindowContents(Rect inRect) { - SettingsDialog.DoWindowContents(inRect); + Listing_Standard ui = new(); + ui.Begin(inRect); + ui.Label("FactionLoadout_Settings_LauncherBlurb".Translate()); + ui.Gap(); + if (ui.ButtonText("FactionLoadout_Open".Translate())) + { + Find.WindowStack.Add(new Dialog_TotalControl()); + Find.WindowStack.WindowOfType()?.Close(); + Find.WindowStack.WindowOfType()?.Close(); + } + ui.End(); } private void LoadLate() diff --git a/1.6/Source/Patches/OptionListingUtility_Patch.cs b/1.6/Source/Patches/OptionListingUtility_Patch.cs index 0c8358f..9d7ec1e 100644 --- a/1.6/Source/Patches/OptionListingUtility_Patch.cs +++ b/1.6/Source/Patches/OptionListingUtility_Patch.cs @@ -19,7 +19,7 @@ public static void DrawOptionListing_Patch(ref List optList) "FactionLoadout_SettingName".Translate(), delegate { - Find.WindowStack.Add(new Dialog_FactionLoadout()); + Find.WindowStack.Add(new Dialog_TotalControl()); }, Textures.TC_Link ) diff --git a/1.6/Source/PawnKindEditUI.cs b/1.6/Source/PawnKindEditUI.cs deleted file mode 100644 index f493ab0..0000000 --- a/1.6/Source/PawnKindEditUI.cs +++ /dev/null @@ -1,166 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using FactionLoadout.Modules; -using FactionLoadout.UISupport; -using FactionLoadout.UISupport.DrawSupport; -using FactionLoadout.Util; -using RimWorld; -using UnityEngine; -using Verse; - -namespace FactionLoadout; - -[HotSwappable] -public class PawnKindEditUI : Window -{ - public readonly PawnKindEdit Current; - - private readonly Dictionary tabHeights = new(); - private Vector2 globalScroll; - private int selectedTab; - private List tabs; - - public PawnKindDef DefaultKind - { - get - { - if (Current.DeletedOrClosed) - return Current.Def; - - FactionDef found = FactionEdit.TryGetOriginal(Current.ParentEdit.Faction.DefName); - if (found == null) - return Current.Def; - PawnKindDef found2 = found.GetKindDefs().FirstOrDefault(k => k.defName == Current.Def.defName); - return found2 ?? Current.Def; - } - } - - public PawnKindEditUI(PawnKindEdit toEdit) - { - draggable = true; - resizeable = true; - doCloseX = true; - Current = toEdit; - - DefCache.ScanDefs(); - } - - public override void PostOpen() - { - base.PostOpen(); - windowRect = new Rect(UI.screenWidth * 0.5f, 30, UI.screenWidth * 0.5f - 20, UI.screenHeight - 50); - } - - public override void DoWindowContents(Rect inRect) - { - if (Current == null || Current.DeletedOrClosed) - { - Close(); - return; - } - - Text.Font = GameFont.Small; - - if (tabs == null) - BuildTabs(); - - if ((tabs?.Count ?? 0) == 0) - { - Widgets.Label(inRect, "FactionLoadout_NoEditableProperties".Translate()); - return; - } - - Rect titleArea = inRect; - titleArea.height = 40; - string title = - $"Pawn Type: {(Current.IsGlobal ? "FactionLoadout_GlobalLabel".Translate().ToString() : Current.Def.LabelCap.ToString())}"; - Widgets.Label(titleArea, title); - - Rect tabRect = inRect; - float tabRows = (float)Math.Ceiling(tabs.Count / 5f); - tabRect.height = tabRows * 50 + 50; - tabRect.y += 50; - - for (int i = 0; i < tabs.Count; i++) - { - float row = (float)Math.Floor(i / 5f); - if (row > 0 && i % 5 == 0) - { - tabRect.ExpandedBy(0, 50f); - tabRect.yMin += 50; - } - - Rect button = tabRect; - button.height = 40; - button.width = 140; - button.x += 150 * (i - 5 * row); - - Tab tab = tabs[i]; - Color bg = selectedTab == i ? new Color32(49, 82, 133, 255) : new Color(0.2f, 0.2f, 0.2f, 1f); - if (Widgets.CustomButtonText(ref button, $"{tab.Name}", bg, Color.white, Color.white)) - selectedTab = i; - - if (selectedTab != i) - continue; - - float toolbarY = inRect.y + 100 + 50 * (tabRows - 1); - ClipboardToolbar.Draw( - new Rect(inRect.x, toolbarY, inRect.width, 28), - Current, - () => - { - if (selectedTab >= 0 && selectedTab < tabs.Count && tabs[selectedTab] is EditTab et) - et.ResetBuffers(); - } - ); - - Rect contentArea = inRect; - contentArea.yMin += 100 + 50 * (tabRows - 1) + 32; - float tabContentH = tabHeights.TryGetValue(tab, out float storedH) ? Mathf.Max(storedH, contentArea.height) : contentArea.height; - Widgets.BeginScrollView(contentArea, ref globalScroll, new Rect(0, 0, inRect.width - 24, tabContentH)); - - Listing_Standard ui = new() { ColumnWidth = inRect.width - 24 }; - ui.Begin(new Rect(0, 0, inRect.width - 24, 1000000)); - - tab.Draw(ui); - - tabHeights[tab] = ui.CurHeight; - ui.End(); - Widgets.EndScrollView(); - } - } - - private void BuildTabs() - { - PawnKindDef dk = DefaultKind; - tabs = [new GeneralTab(Current, dk)]; - - bool isAnimal = dk.RaceProps.Animal; - if (!isAnimal) - { - tabs.AddRange([ - new BackstoryTab(Current, dk), - new AppearanceTab(Current, dk), - new ApparelTab(Current, dk), - new WeaponTab(Current, dk), - new ImplantsTab(Current, dk), - new InventoryTab(Current, dk), - new RaidPointsTab(Current, dk), - new RaidLootTab(Current, dk), - ]); - if (VFEAncientsReflectionModule.ModLoaded.Value) - tabs.Add(new AncientsTab(Current, dk)); - if (VEPsycastsReflectionModule.ModLoaded.Value) - tabs.Add(new PsycastsTab(Current, dk)); - if (ModsConfig.BiotechActive) - tabs.Add(new XenotypeTab(Current, dk)); - - foreach (ITotalControlModule module in ModuleRegistry.Modules) - { - if (module.IsActive) - module.AddTabs(Current, dk, tabs); - } - } - } -} diff --git a/1.6/Source/PresetUI.cs b/1.6/Source/PresetUI.cs deleted file mode 100644 index ee58fcd..0000000 --- a/1.6/Source/PresetUI.cs +++ /dev/null @@ -1,224 +0,0 @@ -using System.Collections.Generic; -using System.Linq; -using FactionLoadout.UISupport; -using RimWorld; -using UnityEngine; -using Verse; - -namespace FactionLoadout; - -public class PresetUI : Window -{ - public static void OpenEditor(Preset pre) - { - if (pre == null) - return; - - Find.WindowStack.Add(new PresetUI(pre)); - } - - public readonly Preset Current; - - private Vector2 scroll; - - public PresetUI(Preset pre) - { - Current = pre; - draggable = true; - resizeable = true; - doCloseX = false; - closeOnCancel = false; - closeOnCancel = false; - closeOnClickedOutside = false; - } - - public override void PostOpen() - { - base.PostOpen(); - - windowRect = new Rect(20, 110, Mathf.Max(UI.screenWidth * 0.5f - 550, 450), 1000); - } - - public override void PostClose() - { - base.PostClose(); - Find.WindowStack.WindowOfType()?.Close(); - } - - public override void DoWindowContents(Rect inRect) - { - if (Current == null) - { - Close(); - return; - } - - Listing_Standard ui = new(); - ui.Begin(inRect); - - Rect rect = ui.GetRect(50); - Widgets.Label(rect, $"Preset: {Current.Name}"); - - Rect buttonsRect = ui.GetRect(32); - - // Save button - Rect button = buttonsRect; - button.x = Mathf.Lerp(button.x, button.xMax, 0f); - button.width *= 0.3f; - button = button.ExpandedBy(-2f, -5f); - GUI.color = Color.green; - string saveLabel = Current.IsPackaged ? "FactionLoadout_SaveToSourceFile".Translate().ToString() : "Save".Translate().ToString().ToUpper(); - if (Widgets.ButtonText(button, $"{saveLabel}")) - Current.Save(); - - // Save & exit - button = buttonsRect; - button.x = Mathf.Lerp(button.x, button.xMax, 1f / 3f); - button.width *= 0.3f; - button = button.ExpandedBy(-2f, -5f); - if (Widgets.ButtonText(button, $"{"FactionLoadout_Preset_SaveAndExit".Translate()}")) - { - Current.Save(); - Close(); - } - - // Exit button. - GUI.color = Color.Lerp(Color.white, Color.red, 0.65f); - button = buttonsRect; - button.x = Mathf.Lerp(button.x, button.xMax, 2f / 3f); - button.width *= 0.3f; - button = button.ExpandedBy(-2f, -5f); - if (Widgets.ButtonText(button, $"{"Close".Translate().ToString().ToUpper()}")) - Close(); - - GUI.color = Color.white; - ui.GapLine(); - - if (Current.IsPackaged) - { - Rect warningRect = ui.GetRect(44); - Widgets.DrawBoxSolid(warningRect, new Color(0.45f, 0.35f, 0.05f, 0.85f)); - warningRect = warningRect.ContractedBy(6f); - Widgets.Label(warningRect, "FactionLoadout_PackagedPresetWarning".Translate(Current.PackagedModName).ToString()); - } - - // Missing faction handling. - if (Current.HasMissingFactions()) - { - ui.Label($"{"FactionLoadout_Preset_MissingWarning".Translate()}"); - ui.Label($"{"FactionLoadout_Preset_MissingHeader".Translate()}"); - ui.GapLine(); - foreach (string str in Current.GetMissingFactionAndModNames()) - ui.Label($" - {str}"); - } - - Rect nameArea = ui.GetRect(28); - nameArea.width = 200; - Widgets.Label(nameArea, "FactionLoadout_Preset_EditName".Translate()); - nameArea.x += 80; - nameArea.height -= 5; - Current.Name = Widgets.TextField(nameArea, Current.Name); - - ui.Label($"{"FactionLoadout_Preset_EditCount".Translate(Current.factionChanges.Count)}"); - ui.Gap(); - - float factionListHeight = Mathf.Max(100f, inRect.height - ui.CurHeight - 60f); - Widgets.BeginScrollView(ui.GetRect(factionListHeight), ref scroll, new Rect(0, 0, inRect.width - 20, Current.factionChanges.Count * (28 * 2 + 10))); - - Listing_Standard oldUI = ui; - ui = new Listing_Standard(); - ui.Begin(new Rect(0, 0, inRect.width - 20, 99999)); - - for (int i = 0; i < Current.factionChanges.Count; i++) - { - FactionEdit item = Current.factionChanges[i]; - Rect area = ui.GetRect(28); - Widgets.Label(area, $"{item.Faction.LabelCap} ({item.Faction.DefName})"); - - area = ui.GetRect(28); - area.width = 80; - area.y -= 5; - GUI.color = Color.red; - string deleteLabel = $"[{"Delete".Translate()}]"; - area.width = Mathf.Max(80, Text.CalcSize(deleteLabel).x + 10); - if (Widgets.ButtonText(area, deleteLabel)) - { - item.DeletedOrClosed = true; - Current.factionChanges.RemoveAt(i); - i--; - continue; - } - - GUI.color = Color.white; - - area.x += area.width + 10; - if (item.Faction.IsMissing) - { - area.width = 120; - GUI.color = new Color(1f, 0.75f, 0.2f); - if (Widgets.ButtonText(area, "FactionLoadout_EditAnyway".Translate())) - FactionEditUI.OpenEditor(item); - GUI.color = Color.white; - area.x += 130; - area.width = inRect.width - 20 - area.x; - GUI.color = new Color(1f, 0.4f, 0.4f); - Widgets.Label(area, "FactionLoadout_FactionMissing".Translate()); - GUI.color = Color.white; - } - else - { - string editLabel = "FactionLoadout_Edit".Translate().CapitalizeFirst(); - area.width = Mathf.Max(80, Text.CalcSize(editLabel).x + 10); - if (Widgets.ButtonText(area, editLabel)) - FactionEditUI.OpenEditor(item); - area.x += area.width + 10; - Widgets.CheckboxLabeled(area, "Enabled".Translate(), ref item.Active, placeCheckboxNearText: true); - } - - ui.GapLine(10); - } - - ui.End(); - Widgets.EndScrollView(); - ui = oldUI; - - ui.Gap(); - if (ui.ButtonText("FactionLoadout_Preset_AddFactionEdit".Translate())) - { - List raw = DefDatabase.AllDefsListForReading.Where(f => !Current.HasEditFor(f)).ToList(); - if (!Current.HasEditFor(Preset.SpecialCreepjoinerFaction) && !raw.Any(f => f.defName == Preset.SpecialCreepjoinerFaction.defName)) - { - raw.Add(Preset.SpecialCreepjoinerFaction); - } - if (!Current.HasEditFor(Preset.SpecialWildManFaction) && !raw.Any(f => f.defName == Preset.SpecialWildManFaction.defName)) - { - raw.Add(Preset.SpecialWildManFaction); - } - if ( - Preset.FactionlessPawnKindsSet.Count > 0 - && !Current.HasEditFor(Preset.SpecialFactionlessPawnsFaction) - && !raw.Any(f => f.defName == Preset.SpecialFactionlessPawnsFaction.defName) - ) - { - raw.Add(Preset.SpecialFactionlessPawnsFaction); - } - List items = CustomFloatMenu.MakeItems( - raw, - f => new MenuItemText(f, $"{f.LabelCap} ({f.defName})", DefUtils.TryGetIcon(f, out Color c), c, f.description) - ); - - CustomFloatMenu.Open( - items, - menuItemBase => - { - FactionDef e = menuItemBase.GetPayload(); - - FactionEdit edit = new() { Faction = e }; - Current.factionChanges.Add(edit); - } - ); - } - - ui.End(); - } -} diff --git a/1.6/Source/TCEditContext.cs b/1.6/Source/TCEditContext.cs new file mode 100644 index 0000000..7933af8 --- /dev/null +++ b/1.6/Source/TCEditContext.cs @@ -0,0 +1,17 @@ +namespace FactionLoadout; + +/// +/// Ambient "currently being edited" context for the fullscreen Total Control UI. +/// +/// Some draw helpers (notably SpecificGearDrawer) historically resolved the +/// active faction by looking for a FactionEditUI window on the WindowStack. The +/// fullscreen shell renders the equivalent screens without that window present, so it +/// publishes the faction being edited here instead. The old windows fall back to this +/// too, so both UIs work during the transition. +/// +/// Set when a faction is opened in the shell; cleared when the shell closes. +/// +public static class TCEditContext +{ + public static FactionEdit CurrentFaction; +} diff --git a/1.6/Source/Tabs/XenotypeTab.cs b/1.6/Source/Tabs/XenotypeTab.cs index ad196f3..db977f0 100644 --- a/1.6/Source/Tabs/XenotypeTab.cs +++ b/1.6/Source/Tabs/XenotypeTab.cs @@ -27,8 +27,8 @@ protected override void DrawContents(Listing_Standard ui) if (Current.ForcedXenotypeChances.NullOrEmpty()) { Current.ForcedXenotypeChances = Current.Def?.xenotypeSet?.xenotypeChances?.ToDictionary(x => x.xenotype.defName, x => x.chance) ?? new Dictionary(); - if (!Current.ForcedXenotypeChances.ContainsKey(FactionEditUI.BaselinerDefName)) - Current.ForcedXenotypeChances.Add(FactionEditUI.BaselinerDefName, Current.Def?.xenotypeSet?.BaselinerChance ?? 1f); + if (!Current.ForcedXenotypeChances.ContainsKey(FactionEdit.BaselinerDefName)) + Current.ForcedXenotypeChances.Add(FactionEdit.BaselinerDefName, Current.Def?.xenotypeSet?.BaselinerChance ?? 1f); } foreach (string key in Current.ForcedXenotypeChances.Keys.ToList()) diff --git a/1.6/Source/UISupport/Dialog_FactionLoadout.cs b/1.6/Source/UISupport/Dialog_FactionLoadout.cs deleted file mode 100644 index 969b1b3..0000000 --- a/1.6/Source/UISupport/Dialog_FactionLoadout.cs +++ /dev/null @@ -1,185 +0,0 @@ -using System; -using System.Collections.Generic; -using RimWorld; -using UnityEngine; -using Verse; - -namespace FactionLoadout.UISupport; - -public class Dialog_FactionLoadout : Window -{ - public override Vector2 InitialSize => new Vector2(800f, 600f); - public Vector2 scrollPosition = Vector2.zero; - - public Dialog_FactionLoadout() - { - doCloseButton = true; - closeOnAccept = true; - closeOnCancel = true; - doCloseX = true; - forcePause = true; - absorbInputAroundWindow = true; - } - - public override void DoWindowContents(Rect inRect) - { - int presetHeight = (Preset.LoadedPresets.Count + 1) * 30; - int restHeight = 300; // Adjust this value as needed - - float scrollViewHeight = presetHeight + restHeight; - - Rect viewRect = new Rect(0, 0, inRect.width - 20, scrollViewHeight); - Rect viewPortRect = new Rect(0, 30, inRect.width, inRect.height - 70); - scrollPosition = GUI.BeginScrollView(viewPortRect, scrollPosition, viewRect); - Listing_Standard ui = new Listing_Standard(); - - try - { - ui.Begin(viewRect); - - ui.Label("FactionLoadout_Settings_FactionPresetDesc".Translate()); - ui.GapLine(); - - ui.CheckboxLabeled( - "FactionLoadout_Settings_VanillaRestrictions".Translate(), - ref MySettings.VanillaRestrictions, - "FactionLoadout_Settings_VanillaRestrictionsDesc".Translate() - ); - ui.GapLine(); - ui.CheckboxLabeled("FactionLoadout_Settings_Verbose".Translate(), ref MySettings.VerboseLogging, "FactionLoadout_Settings_VerboseDesc".Translate()); - ui.CheckboxLabeled( - "FactionLoadout_Settings_PatchKindInRequests".Translate(), - ref MySettings.PatchKindInRequests, - "FactionLoadout_Settings_PatchKindInRequestsDesc".Translate() - ); - ui.GapLine(); - ui.Label("FactionLoadout_Settings_FactionPresetDesc".Translate()); - ui.GapLine(); - - bool deleteMode = Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift); - Preset toDelete = null; - - foreach (Preset preset in Preset.LoadedPresets) - { - Rect area = ui.GetRect(30); - area.width = 80; - - bool active = MySettings.ActivePreset == preset.GUID; - - GUI.color = active ? Color.green : Color.red; - bool currentActive = active; - Widgets.CheckboxLabeled(area, "FactionLoadout_Active".Translate().CapitalizeFirst(), ref active, placeCheckboxNearText: true); - if (currentActive != active) - { - MySettings.ActivePreset = active ? preset.GUID : null; - ModCore.Settings.Write(); - } - - GUI.color = Color.white; - area.x += 90; - - if (preset.IsPackaged) - { - GUI.color = new Color(1f, 0.75f, 0.2f); - if (Widgets.ButtonText(area, "FactionLoadout_PackagedLabel".Translate().CapitalizeFirst())) - { - Preset capturedPreset = preset; - List options = - [ - new FloatMenuOption( - "FactionLoadout_CopyToMyPresets".Translate(), - () => - { - try - { - Preset copy = Preset.CreateCopy(capturedPreset); - Preset.AddNewPreset(copy); - copy.Save(); - PresetUI.OpenEditor(copy); - Find.WindowStack.WindowOfType()?.Close(); - Find.WindowStack.WindowOfType()?.Close(); - } - catch (Exception ex) - { - ModCore.Error("Failed to copy packaged preset.", ex); - } - } - ), - new FloatMenuOption( - "FactionLoadout_EditSourceFile".Translate(), - () => - { - PresetUI.OpenEditor(capturedPreset); - Find.WindowStack.WindowOfType()?.Close(); - Find.WindowStack.WindowOfType()?.Close(); - } - ), - ]; - Find.WindowStack.Add(new FloatMenu(options)); - } - GUI.color = Color.white; - - area.x += 90; - area.width = 9999; - Widgets.Label(area, $"{preset.Name} ({preset.PackagedModName})"); - } - else - { - GUI.color = deleteMode ? Color.red : Color.white; - if (Widgets.ButtonText(area, deleteMode ? "Delete".Translate().CapitalizeFirst() : "FactionLoadout_Edit".Translate().CapitalizeFirst())) - { - if (!deleteMode) - { - PresetUI.OpenEditor(preset); - Find.WindowStack.WindowOfType()?.Close(); - Find.WindowStack.WindowOfType()?.Close(); - } - else - { - toDelete = preset; - } - } - - GUI.color = Color.white; - - area.x += 90; - area.width = 9999; - Widgets.Label(area, preset.Name); - } - } - - if (toDelete != null) - Preset.DeletePreset(toDelete); - - if (Preset.LoadedPresets.EnumerableNullOrEmpty()) - ui.Label("FactionLoadout_NothingHere".Translate()); - - ui.GapLine(); - if (ui.ButtonText("FactionLoadout_CreateNewPreset".Translate())) - { - Preset preset = new(); - Preset.AddNewPreset(preset); - preset.Save(); - - MySettings.ActivePreset = preset.GUID; - - PresetUI.OpenEditor(preset); - - Find.WindowStack.WindowOfType()?.Close(); - Find.WindowStack.WindowOfType()?.Close(); - } - } - finally - { - ui.End(); - GUI.EndScrollView(); - } - } - - public override void PostClose() - { - base.PostClose(); - Find.WindowStack.WindowOfType()?.Close(); - ModCore.Settings.Write(); - } -} diff --git a/1.6/Source/UISupport/Dialog_TotalControl.cs b/1.6/Source/UISupport/Dialog_TotalControl.cs new file mode 100644 index 0000000..e5d1ffb --- /dev/null +++ b/1.6/Source/UISupport/Dialog_TotalControl.cs @@ -0,0 +1,66 @@ +using UnityEngine; +using Verse; + +namespace FactionLoadout.UISupport; + +/// +/// The single fullscreen, paused workspace that replaces the old window cascade +/// (Dialog_FactionLoadout -> PresetUI -> FactionEditUI -> PawnKindEditUI). All +/// navigation and screen drawing is delegated to . +/// +[HotSwappable] +public class Dialog_TotalControl : Window +{ + public readonly TotalControlController Controller; + + public Dialog_TotalControl(Preset preset = null) + { + forcePause = true; + doCloseX = true; + absorbInputAroundWindow = true; + closeOnAccept = false; // Enter is used by text fields; must not close the window. + closeOnCancel = true; // Esc: handled by OnCancelKeyPressed (step back), closes from Home. + closeOnClickedOutside = false; + draggable = false; + resizeable = false; + preventCameraMotion = true; + + Controller = new TotalControlController(this, preset); + } + + public override Vector2 InitialSize => new(UI.screenWidth * 0.96f, UI.screenHeight * 0.96f); + + public override float Margin => 12f; + + public override void PostOpen() + { + base.PostOpen(); + float w = UI.screenWidth * 0.96f; + float h = UI.screenHeight * 0.96f; + windowRect = new Rect((UI.screenWidth - w) / 2f, (UI.screenHeight - h) / 2f, w, h); + } + + public override void DoWindowContents(Rect inRect) + { + Controller.Draw(inRect); + } + + public override void OnCancelKeyPressed() + { + // Esc steps back one screen; only closes the window once at Home. + if (Controller.HandleEscape()) + { + Event.current.Use(); + return; + } + + base.OnCancelKeyPressed(); + } + + public override void PostClose() + { + base.PostClose(); + Controller.Dispose(); + ModCore.Settings.Write(); + } +} diff --git a/1.6/Source/UISupport/DrawSupport/PawnPreviewWidget.cs b/1.6/Source/UISupport/DrawSupport/PawnPreviewWidget.cs new file mode 100644 index 0000000..e7ba9d8 --- /dev/null +++ b/1.6/Source/UISupport/DrawSupport/PawnPreviewWidget.cs @@ -0,0 +1,112 @@ +using System; +using RimWorld; +using UnityEngine; +using Verse; + +namespace FactionLoadout.UISupport.DrawSupport; + +/// +/// Draws the big live pawn portrait plus its control strip (rotate, regenerate, and +/// headgear/clothes toggles). Pure drawing + view state; the expensive pawn lifecycle +/// lives in . +/// +public class PawnPreviewWidget +{ + private Rot4 rotation = Rot4.South; + private bool renderHeadgear = true; + private bool renderClothes = true; + + public void Draw(Rect inRect, PreviewPawnController controller) + { + Widgets.DrawMenuSection(inRect); + Rect content = inRect.ContractedBy(8f); + + const float stripH = 92f; + Rect portraitArea = new(content.x, content.y, content.width, content.height - stripH - 4f); + Rect strip = new(content.x, portraitArea.yMax + 4f, content.width, stripH); + + DrawPortrait(portraitArea, controller); + DrawControls(strip, controller); + } + + private void DrawPortrait(Rect area, PreviewPawnController controller) + { + if (!controller.InGame) + { + DrawCentered(area, $"{"FactionLoadout_FactionEdit_PreviewError".Translate()}"); + return; + } + if (controller.PreviewFailed) + { + DrawCentered(area, $"{"FactionLoadout_Preview_Failed".Translate()}"); + return; + } + if (controller.PreviewPawn == null) + { + DrawCentered(area, "FactionLoadout_Preview_Placeholder".Translate()); + return; + } + + // Centered portrait-aspect sub-rect so the pawn fills nicely without distortion. + const float aspect = 0.7f; // width / height + float w = Mathf.Min(area.width, area.height * aspect); + float h = w / aspect; + if (h > area.height) + { + h = area.height; + w = h * aspect; + } + Rect portrait = new(area.x + (area.width - w) / 2f, area.y + (area.height - h) / 2f, w, h); + + try + { + RenderTexture tex = PortraitsCache.Get( + controller.PreviewPawn, + new Vector2(portrait.width, portrait.height), + rotation, + default, + 1f, + supersample: true, + compensateForUIScale: true, + renderHeadgear, + renderClothes + ); + GUI.DrawTexture(portrait, tex); + } + catch (Exception e) + { + ModCore.Error("Failed to render preview portrait.", e); + controller.MarkFailed(); + } + } + + private void DrawControls(Rect strip, PreviewPawnController controller) + { + // Row 1: rotate ◀ / regenerate / rotate ▶ + Rect row1 = new(strip.x, strip.y, strip.width, 30f); + float rotW = 40f; + if (Widgets.ButtonText(new Rect(row1.x, row1.y, rotW, row1.height), "◀")) + rotation = rotation.Rotated(RotationDirection.Counterclockwise); + if (Widgets.ButtonText(new Rect(row1.xMax - rotW, row1.y, rotW, row1.height), "▶")) + rotation = rotation.Rotated(RotationDirection.Clockwise); + Rect regenRect = new(row1.x + rotW + 4f, row1.y, row1.width - 2 * (rotW + 4f), row1.height); + if (Widgets.ButtonText(regenRect, "FactionLoadout_Preview_Regenerate".Translate())) + controller.RequestRegenerate(); + + // Row 2: headgear / clothes toggles + Rect row2 = new(strip.x, row1.yMax + 6f, strip.width, 24f); + Rect half1 = new(row2.x, row2.y, row2.width / 2f - 4f, row2.height); + Rect half2 = new(row2.x + row2.width / 2f + 4f, row2.y, row2.width / 2f - 4f, row2.height); + Widgets.CheckboxLabeled(half1, "FactionLoadout_Preview_ShowHeadgear".Translate(), ref renderHeadgear); + Widgets.CheckboxLabeled(half2, "FactionLoadout_Preview_ShowClothes".Translate(), ref renderClothes); + } + + private static void DrawCentered(Rect area, string text) + { + Text.Anchor = TextAnchor.MiddleCenter; + GUI.color = new Color(1f, 1f, 1f, 0.7f); + Widgets.Label(area, text); + GUI.color = Color.white; + Text.Anchor = TextAnchor.UpperLeft; + } +} diff --git a/1.6/Source/UISupport/DrawSupport/SpecificGearDrawer.cs b/1.6/Source/UISupport/DrawSupport/SpecificGearDrawer.cs index 0a085bc..fb8cada 100644 --- a/1.6/Source/UISupport/DrawSupport/SpecificGearDrawer.cs +++ b/1.6/Source/UISupport/DrawSupport/SpecificGearDrawer.cs @@ -204,7 +204,7 @@ private static void DrawItemMaterial(Rect area, SpecRequirementEdit item) if (item.Material == null) { - FactionDef faction = Find.WindowStack.WindowOfType()?.Current?.Faction?.Def; + FactionDef faction = TCEditContext.CurrentFaction?.Faction?.Def; TechLevel techLevel = MySettings.VanillaRestrictions ? faction?.techLevel ?? TechLevel.Undefined : TechLevel.Undefined; item.Material = GenStuff.AllowedStuffsFor(item.Thing, techLevel).FirstOrDefault(); } @@ -212,7 +212,7 @@ private static void DrawItemMaterial(Rect area, SpecRequirementEdit item) Widgets.DrawHighlightIfMouseover(material); if (Widgets.ButtonInvisible(material)) { - FactionDef faction = Find.WindowStack.WindowOfType()?.Current?.Faction?.Def; + FactionDef faction = TCEditContext.CurrentFaction?.Faction?.Def; TechLevel techLevel = MySettings.VanillaRestrictions ? faction?.techLevel ?? TechLevel.Undefined : TechLevel.Undefined; IEnumerable defs = GenStuff.AllowedStuffsFor(item.Thing, techLevel); List stuffItems = CustomFloatMenu.MakeItems( diff --git a/1.6/Source/UISupport/PreviewPawnController.cs b/1.6/Source/UISupport/PreviewPawnController.cs new file mode 100644 index 0000000..c78d74d --- /dev/null +++ b/1.6/Source/UISupport/PreviewPawnController.cs @@ -0,0 +1,183 @@ +using System; +using System.Linq; +using FactionLoadout.Patches; +using FactionLoadout.Util; +using RimWorld; +using RimWorld.Planet; +using UnityEngine; +using Verse; + +namespace FactionLoadout.UISupport; + +/// +/// Owns the live preview pawn for the Pawn Edit screen. Generates the pawn through the +/// REAL generation pipeline (so the always-active apparel/weapon/hediff Harmony patches +/// apply the edits exactly as they would for a raid — "match real raids"), debounces +/// regeneration so dragging a slider doesn't regenerate every frame, and disposes the +/// throwaway pawn safely so it can never leak into the save. +/// +[HotSwappable] +public class PreviewPawnController +{ + public readonly FactionEdit ParentFaction; + public PawnKindDef TargetKind; + + public Pawn PreviewPawn { get; private set; } + public bool PreviewFailed { get; private set; } + + /// Mirrors the old FactionEditUI "Thing ID Patch" toggle (off by default). + public bool UseThingIDPatch; + + private bool dirty; + private int frameCounter; + private int dirtyAtFrame; + private const int DebounceFrames = 20; + + public bool InGame => Verse.Current.Game != null; + + public PreviewPawnController(FactionEdit parentFaction, PawnKindDef targetKind) + { + ParentFaction = parentFaction; + TargetKind = targetKind; + // Generate immediately on the first Tick. + dirty = true; + dirtyAtFrame = -DebounceFrames; + } + + /// An option changed; regenerate after a short idle (debounced). + public void NotifyEditChanged() + { + dirty = true; + dirtyAtFrame = frameCounter; + PreviewFailed = false; + } + + /// Force an immediate fresh roll (also re-rolls randomized pools/chances). + public void RequestRegenerate() + { + PreviewFailed = false; + Regenerate(); + } + + public void MarkFailed() => PreviewFailed = true; + + /// Call once per frame from the screen. + public void Tick() + { + frameCounter++; + if (!InGame) + return; + if (dirty && !PreviewFailed && frameCounter - dirtyAtFrame >= DebounceFrames) + Regenerate(); + } + + private void Regenerate() + { + dirty = false; + if (!InGame || TargetKind == null) + { + PreviewFailed = TargetKind == null; + return; + } + + DiscardPawn(PreviewPawn); + PreviewPawn = null; + + try + { + PreviewPawn = GeneratePreviewPawn(); + PreviewFailed = PreviewPawn == null; + if (PreviewPawn != null) + PortraitsCache.SetDirty(PreviewPawn); + } + catch (Exception e) + { + ModCore.Error($"Failed to generate preview pawn for '{TargetKind?.LabelCap}'.", e); + PreviewPawn = null; + PreviewFailed = true; + } + } + + private Pawn GeneratePreviewPawn() + { + FactionDef toClone = FactionEdit.TryGetOriginal(ParentFaction.Faction.Def.defName) ?? ParentFaction.Faction.Def; + FactionDef clonedFac = CloningUtility.Clone(toClone); + clonedFac.defName = ParentFaction.Faction.Def.defName; + clonedFac.humanlikeFaction = ParentFaction.Faction.Def.humanlikeFaction; + // The "TEMP FACTION CLONE" prefix is load-bearing — PawnKindEdit.GetEditsFor + // special-cases it so the edits resolve for this throwaway faction. + clonedFac.fixedName = $"TEMP FACTION CLONE ({clonedFac.defName})"; + + ParentFaction.Apply(clonedFac, false); + + Faction faction = new() + { + def = clonedFac, + loadID = -1, + colorFromSpectrum = Rand.Range(0f, 1f), + hidden = true, + ideos = Find.FactionManager?.FirstFactionOfDef(ParentFaction.Faction.Def)?.ideos, + Name = clonedFac.fixedName, + relations = Find + .FactionManager.AllFactionsVisible.Select(otherFaction => new FactionRelation + { + other = otherFaction, + baseGoodwill = 0, + kind = FactionRelationKind.Neutral, + }) + .ToList(), + temporary = true, + deactivated = true, + }; + + ThingIDPatch.Active = UseThingIDPatch; + IdeoUtilityPatch.Active = true; + FactionUtilityPawnGenPatch.Active = true; + + try + { + return PawnGenerator.GeneratePawn( + new PawnGenerationRequest(TargetKind, faction) + { + ForceGenerateNewPawn = true, + AllowDowned = false, + AllowDead = false, + CanGeneratePawnRelations = false, + RelationWithExtraPawnChanceFactor = 0, + ColonistRelationChanceFactor = 0, + ForceNoIdeo = true, + ForbidAnyTitle = true, + } + ); + } + finally + { + Find.FactionManager.Remove(faction); + ThingIDPatch.Active = false; + FactionLeaderPatch.Active = false; + FactionUtilityPawnGenPatch.Active = false; + IdeoUtilityPatch.Active = false; + } + } + + public void Dispose() + { + DiscardPawn(PreviewPawn); + PreviewPawn = null; + } + + /// + /// Save-contamination guard (same pattern as the old FactionEditUI.DestroyPawns): + /// never keep the throwaway pawn — discard it, stripping dangling references. + /// + private static void DiscardPawn(Pawn pawn) + { + if (pawn == null) + return; + + if (Find.WorldPawns?.Contains(pawn) == true) + Find.WorldPawns.RemoveAndDiscardPawnViaGC(pawn); + else if (!pawn.Discarded) + Find.WorldPawns?.PassToWorld(pawn, PawnDiscardDecideMode.Discard); + } +} diff --git a/1.6/Source/UISupport/Screens/FactionEditScreen.cs b/1.6/Source/UISupport/Screens/FactionEditScreen.cs new file mode 100644 index 0000000..c0beeb8 --- /dev/null +++ b/1.6/Source/UISupport/Screens/FactionEditScreen.cs @@ -0,0 +1,378 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using FactionLoadout.Modules; +using FactionLoadout.Util; +using RimWorld; +using UnityEngine; +using Verse; + +namespace FactionLoadout.UISupport.Screens; + +/// +/// Edits one faction: a two-panel layout with the pawnkind-edit list on the left and +/// faction-level settings (tech level, xenotypes, spawn groups, module UI) on the right. +/// Extracted from the old FactionEditUI.DoWindowContents, minus the preview block +/// (the live preview lands on the Pawn Edit screen in Phase C). +/// +[HotSwappable] +public class FactionEditScreen +{ + public readonly TotalControlController Controller; + public readonly FactionEdit Current; + + private readonly List bin = []; + private readonly HashSet tempKinds = []; + + private Vector2 kindsScroll; + private Vector2 settingsScroll; + private float settingsContentHeight = 10000f; // measured after first frame; large so nothing clips + + public FactionEditScreen(TotalControlController controller, FactionEdit fac) + { + Controller = controller; + Current = fac; + } + + public void Draw(Rect inRect) + { + if (Current == null || Current.DeletedOrClosed) + return; + + // --- Header block (title + warnings + clipboard toolbar) --- + Listing_Standard head = new(); + head.Begin(new Rect(inRect.x, inRect.y, inRect.width, 240f)); + + Rect titleRect = head.GetRect(44f); + Widgets.Label(titleRect, $"{"FactionLoadout_TC_FactionHeader".Translate()}: {Current.Faction.Def?.LabelCap ?? "None".Translate()}"); + + if (Current.Faction.IsMissing) + head.Label($"{"FactionLoadout_FactionMissingEditWarning".Translate()}"); + if (Current.Faction.DefName == Preset.SpecialCreepjoinerFactionDefName) + head.Label($"{"FactionLoadout_FactionEdit_ExperimentalCreepjoiner".Translate()}"); + if (Current.Faction.DefName == Preset.SpecialWildManFactionDefName) + head.Label($"{"FactionLoadout_FactionEdit_ExperimentalWildMan".Translate()}"); + if (Current.Faction.DefName == Preset.SpecialFactionlessPawnsFactionDefName) + head.Label($"{"FactionLoadout_Special_FactionlessWarning".Translate()}"); + + if (!Current.Faction.IsMissing) + DrawFactionClipboardToolbar(head); + + float headH = head.CurHeight; + head.End(); + + // --- Two columns --- + float colsY = inRect.y + headH + 6f; + float colsH = inRect.yMax - colsY; + float leftW = inRect.width * 0.36f; + const float gap = 10f; + Rect leftRect = new(inRect.x, colsY, leftW, colsH); + Rect rightRect = new(inRect.x + leftW + gap, colsY, inRect.width - leftW - gap, colsH); + + DrawKindList(leftRect); + DrawFactionSettings(rightRect); + } + + // ----------------------------------------------------------- left: pawnkinds + + private void DrawKindList(Rect rect) + { + Widgets.DrawMenuSection(rect); + rect = rect.ContractedBy(6f); + + Rect titleR = new(rect.x, rect.y, rect.width, 24f); + Widgets.Label(titleR, $"{"FactionLoadout_FactionEdit_LoadoutOverrides".Translate()}"); + + // "Add..." button pinned at the bottom of the panel. + Rect addBtn = new(rect.x, rect.yMax - 30f, rect.width, 30f); + float listY = titleR.yMax + 4f; + Rect scrollOut = new(rect.x, listY, rect.width, addBtn.y - listY - 6f); + + const float rowH = 32f; + float contentH = Mathf.Max(Current.KindEdits.Count * rowH + 6f, scrollOut.height); + Rect view = new(0, 0, scrollOut.width - 16f, contentH); + + HashSet orphanedKinds = Current?.GetOrphanedKinds() ?? []; + + Widgets.BeginScrollView(scrollOut, ref kindsScroll, view); + for (int i = 0; i < Current.KindEdits.Count; i++) + { + PawnKindEdit edit = Current.KindEdits[i]; + Rect row = new(0, i * rowH, view.width, rowH - 2f); + if (i % 2 == 1) + Widgets.DrawHighlight(row); + DrawKindRow(row, edit, orphanedKinds); + } + Widgets.EndScrollView(); + + foreach (PawnKindEdit item in bin) + Current.KindEdits.Remove(item); + bin.Clear(); + + if (!Current.Faction.IsMissing && Widgets.ButtonText(addBtn, "Add".Translate().CapitalizeFirst() + "...")) + OpenAddKindMenu(); + } + + private void DrawKindRow(Rect row, PawnKindEdit edit, HashSet orphanedKinds) + { + float x = row.x + 2f; + float y = row.y + 2f; + + string delText = "Delete".Translate(); + float delW = Mathf.Max(38f, Text.CalcSize(delText).x + 10f); + GUI.color = Color.red; + if (Widgets.ButtonText(new Rect(x, y, delW, 24f), delText)) + { + bin.Add(edit); + edit.DeletedOrClosed = true; + } + GUI.color = Color.white; + x += delW + 4f; + + string editText = "FactionLoadout_Edit".Translate().CapitalizeFirst(); + float editW = Mathf.Max(50f, Text.CalcSize(editText).x + 10f); + if (Widgets.ButtonText(new Rect(x, y, editW, 24f), editText)) + Controller.OpenKind(edit); + x += editW + 4f; + + if (Widgets.ButtonImageFitted(new Rect(x, y, 24f, 24f), TexButton.Copy)) + PawnKindClipboard.Copy(edit); + TooltipHandler.TipRegion(new Rect(x, y, 24f, 24f), "FactionLoadout_Clipboard_CopyTooltip".Translate()); + x += 28f; + + if (PawnKindClipboard.HasData) + { + if (Widgets.ButtonImageFitted(new Rect(x, y, 24f, 24f), TexButton.Paste)) + PawnKindClipboard.PasteAll(edit); + TooltipHandler.TipRegion(new Rect(x, y, 24f, 24f), "FactionLoadout_Clipboard_PasteAllTooltip".Translate(PawnKindClipboard.GetDescription())); + } + else + { + GUI.color = Color.gray; + Widgets.DrawTextureFitted(new Rect(x, y, 24f, 24f), TexButton.Paste, 1f); + GUI.color = Color.white; + TooltipHandler.TipRegion(new Rect(x, y, 24f, 24f), "FactionLoadout_Clipboard_Empty".Translate()); + } + x += 28f; + + bool isOrphaned = !edit.IsGlobal && edit.Def != null && orphanedKinds.Contains(edit.Def); + if (isOrphaned) + { + GUI.color = Color.yellow; + Widgets.Label(new Rect(x, y, 20f, 24f), "⚠"); + GUI.color = Color.white; + TooltipHandler.TipRegion(new Rect(x, y, 20f, 24f), "FactionLoadout_SpawnGroups_OrphanKindTooltip".Translate()); + x += 22f; + } + + Rect labelRect = new(x, row.y, row.xMax - x, row.height); + Text.Anchor = TextAnchor.MiddleLeft; + Widgets.Label(labelRect, $"{(edit.IsGlobal ? $"{"FactionLoadout_GlobalLabel".Translate()}" : edit.Def.LabelCap.ToString())}"); + Text.Anchor = TextAnchor.UpperLeft; + } + + // ------------------------------------------------------ right: faction settings + + private void DrawFactionSettings(Rect rect) + { + Widgets.DrawMenuSection(rect); + rect = rect.ContractedBy(6f); + + float innerH = Mathf.Max(settingsContentHeight + 40f, rect.height); + Rect view = new(0, 0, rect.width - 16f, innerH); + + Widgets.BeginScrollView(rect, ref settingsScroll, view); + Listing_Standard ui = new() { ColumnWidth = view.width }; + ui.Begin(view); + + // Tech level. + if ( + ui.ButtonTextLabeled( + "FactionLoadout_Faction_Techlevel".Translate(), + Current.TechLevel?.ToStringHuman() ?? "FactionLoadout_NotOverriden_WithDefault".Translate((Current.Faction?.Def?.techLevel ?? TechLevel.Undefined).ToStringHuman()) + ) + ) + { + IEnumerable enums = Enum.GetValues(typeof(TechLevel)).Cast().Append(null); + FloatMenuUtility.MakeMenu( + enums, + e => e?.ToStringHuman() ?? "FactionLoadout_NotOverriden_WithDefault".Translate((Current.Faction?.Def?.techLevel ?? TechLevel.Undefined).ToStringHuman()), + e => () => Current.TechLevel = e + ); + } + + // Xenotype spawn rates (Biotech). + if ( + ModsConfig.BiotechActive + && Current.Faction is { IsMissing: false } + && Current.Faction?.Def != Preset.SpecialWildManFaction + && Current.Faction?.Def != Preset.SpecialFactionlessPawnsFaction + ) + { + if (!Current.OverrideFactionXenotypes) + { + Current.xenotypeChances.Clear(); + Current.xenotypeChancesByDef.Clear(); + } + + ui.GapLine(); + string xenoState = Current.OverrideFactionXenotypes ? "FactionLoadout_Xenotype_ActiveCount".Translate(Current.xenotypeChances.Count) : "FactionLoadout_Xenotype_Off".Translate(); + if (ui.ButtonTextLabeled("FactionLoadout_EditXenoSpawnRates".Translate(), xenoState)) + Find.WindowStack.Add(new Dialog_XenotypeEdit(Current)); + } + + // Spawn groups. + if (Current.Faction is not { IsMissing: true }) + { + ui.GapLine(); + + Rect groupsRow = ui.GetRect(28f); + const float editBtnW = 160f; + Rect editGroupsBtn = new(groupsRow.xMax - editBtnW, groupsRow.y, editBtnW, 24f); + + Text.Anchor = TextAnchor.MiddleLeft; + string groupsSummary; + if (Current.PawnGroupMakerEdits != null) + groupsSummary = "FactionLoadout_SpawnGroups_SummaryModified".Translate(Current.PawnGroupMakerEdits.Count, "FactionLoadout_GroupEditor_NewTag".Translate().ToString().ToLower()); + else + groupsSummary = "FactionLoadout_SpawnGroups_Summary".Translate(Current?.Faction?.Def?.pawnGroupMakers?.Count ?? 0); + + Rect summaryLabelRect = new(groupsRow.x, groupsRow.y, groupsRow.width - editBtnW - 4f, groupsRow.height); + GUI.color = Color.grey; + Widgets.Label(summaryLabelRect, "FactionLoadout_SpawnGroups_Label".Translate() + " " + groupsSummary); + GUI.color = Color.white; + Text.Anchor = TextAnchor.UpperLeft; + + if (Widgets.ButtonText(editGroupsBtn, "FactionLoadout_SpawnGroups_EditButton".Translate())) + GroupEditorUI.OpenEditor(Current); + + HashSet orphaned = Current?.GetOrphanedKinds() ?? []; + if (orphaned.Count > 0) + { + string names = orphaned.Select(k => k.LabelCap.ToString()).OrderBy(n => n).ToCommaList(); + string warnText = "FactionLoadout_SpawnGroups_OrphanWarning".Translate(names); + Rect warnRow = ui.GetRect(Text.CalcHeight(warnText, ui.ColumnWidth)); + GUI.color = new Color(1f, 0.6f, 0.1f); + Widgets.Label(warnRow, warnText); + GUI.color = Color.white; + } + } + + // Active modules contribute faction-level UI here (unchanged contract). + foreach (ITotalControlModule module in ModuleRegistry.Modules) + { + if (!module.IsActive) + continue; + try + { + module.AddFactionUI(Current, ui); + } + catch (Exception e) + { + ModCore.Error($"Error drawing faction UI for module '{module.ModuleName}'", e); + } + } + + settingsContentHeight = ui.CurHeight; + ui.End(); + Widgets.EndScrollView(); + } + + // ------------------------------------------------------------------- helpers + + private void DrawFactionClipboardToolbar(Listing_Standard ui) + { + Rect toolbar = ui.GetRect(28f); + float x = toolbar.x; + float y = toolbar.y; + const float btnSize = 24f; + const float gap = 4f; + + if (Widgets.ButtonImageFitted(new Rect(x, y, btnSize, btnSize), TexButton.Copy)) + FactionEditClipboard.Copy(Current); + TooltipHandler.TipRegion(new Rect(x, y, btnSize, btnSize), "FactionLoadout_FactionClipboard_CopyTooltip".Translate()); + + x += btnSize + gap; + if (FactionEditClipboard.HasData) + { + if (Widgets.ButtonImageFitted(new Rect(x, y, btnSize, btnSize), TexButton.Paste)) + FactionEditClipboard.PasteAll(Current); + TooltipHandler.TipRegion(new Rect(x, y, btnSize, btnSize), "FactionLoadout_FactionClipboard_PasteTooltip".Translate(FactionEditClipboard.GetDescription())); + } + else + { + GUI.color = Color.gray; + Widgets.DrawTextureFitted(new Rect(x, y, btnSize, btnSize), TexButton.Paste, 1f); + GUI.color = Color.white; + TooltipHandler.TipRegion(new Rect(x, y, btnSize, btnSize), "FactionLoadout_Clipboard_Empty".Translate()); + } + } + + private void OpenAddKindMenu() + { + IEnumerable MakeKinds() + { + tempKinds.Clear(); + if (!Current.HasGlobalEditor()) + tempKinds.Add(null); + + foreach (PawnKindDef kind in Current.GetAllKindDefsForUI()) + { + if (!Current.HasEditFor(kind)) + tempKinds.Add(kind); + } + + if (Current.PawnGroupMakerEdits != null) + { + if (Current.Faction.Def?.basicMemberKind != null && !Current.HasEditFor(Current.Faction.Def.basicMemberKind)) + tempKinds.Add(Current.Faction.Def.basicMemberKind); + if (Current.Faction.Def?.fixedLeaderKinds != null) + { + foreach (PawnKindDef item in Current.Faction.Def.fixedLeaderKinds) + { + if (!Current.HasEditFor(item)) + tempKinds.Add(item); + } + } + } + + foreach (PawnKindDef item in tempKinds) + yield return item; + + if (tempKinds.Count(k => k != null) == 0) + { + if (Current.Faction.Def == FactionDefOf.Ancients || Current.Faction.Def == FactionDefOf.AncientsHostile) + { + yield return PawnKindDefOf.AncientSoldier; + yield return PawnKindDefOf.Slave; + } + } + + tempKinds.Clear(); + } + + List kinds = MakeKinds().ToList(); + List items = CustomFloatMenu.MakeItems( + kinds, + k => k != null ? new MenuItemText(k, $"{k.LabelCap} ({k.defName})", tooltip: k.description) : new MenuItemText(null, $"{"FactionLoadout_GlobalLabel".Translate()}") + ); + CustomFloatMenu.Open( + items, + raw => + { + PawnKindDef k = raw.GetPayload(); + if (k != null) + { + Current.KindEdits.Add(new PawnKindEdit(k)); + } + else + { + PawnKindDef kind = kinds.FirstOrDefault(pawnKindDef => pawnKindDef != null); + ModCore.Log($"Using {kind} as global base."); + if (kind != null) + Current.KindEdits.Insert(0, new PawnKindEdit(kind) { IsGlobal = true }); + } + } + ); + } +} diff --git a/1.6/Source/UISupport/Screens/FactionViewScreen.cs b/1.6/Source/UISupport/Screens/FactionViewScreen.cs new file mode 100644 index 0000000..d61a194 --- /dev/null +++ b/1.6/Source/UISupport/Screens/FactionViewScreen.cs @@ -0,0 +1,274 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using RimWorld; +using UnityEngine; +using Verse; + +namespace FactionLoadout.UISupport.Screens; + +/// +/// Home screen: global settings + active-preset management + the selected preset's +/// faction-edit list. Merges the old Dialog_FactionLoadout (settings + preset +/// list) and PresetUI (per-preset faction list) into one in-shell screen. +/// +[HotSwappable] +public class FactionViewScreen +{ + public readonly TotalControlController Controller; + + private Vector2 factionScroll; + + public FactionViewScreen(TotalControlController controller) + { + Controller = controller; + } + + public void Draw(Rect inRect) + { + Listing_Standard ui = new(); + ui.Begin(inRect); + + // --- Global settings --- + ui.CheckboxLabeled( + "FactionLoadout_Settings_VanillaRestrictions".Translate(), + ref MySettings.VanillaRestrictions, + "FactionLoadout_Settings_VanillaRestrictionsDesc".Translate() + ); + ui.CheckboxLabeled("FactionLoadout_Settings_Verbose".Translate(), ref MySettings.VerboseLogging, "FactionLoadout_Settings_VerboseDesc".Translate()); + ui.CheckboxLabeled( + "FactionLoadout_Settings_PatchKindInRequests".Translate(), + ref MySettings.PatchKindInRequests, + "FactionLoadout_Settings_PatchKindInRequestsDesc".Translate() + ); + ui.GapLine(); + + Preset preset = Controller.SelectedPreset; + if (preset == null) + { + ui.Label("FactionLoadout_NothingHere".Translate()); + ui.Gap(); + if (ui.ButtonText("FactionLoadout_CreateNewPreset".Translate())) + CreateNewPreset(); + ui.End(); + return; + } + + DrawPresetHeader(ui, preset); + ui.GapLine(); + + ui.Label($"{"FactionLoadout_Preset_EditCount".Translate(preset.factionChanges.Count)}"); + ui.Gap(4); + + // --- Faction list (scrollable). Fixed row height -> compute content directly. --- + const float rowH = 34f; + float listH = Mathf.Max(120f, inRect.height - ui.CurHeight - 44f); + Rect scrollOut = ui.GetRect(listH); + float contentH = Mathf.Max(preset.factionChanges.Count * rowH + 8f, listH); + Rect view = new(0, 0, scrollOut.width - 16f, contentH); + + Widgets.BeginScrollView(scrollOut, ref factionScroll, view); + FactionEdit toDelete = null; + for (int i = 0; i < preset.factionChanges.Count; i++) + { + FactionEdit item = preset.factionChanges[i]; + Rect row = new(0, i * rowH, view.width, rowH - 2f); + if (i % 2 == 1) + Widgets.DrawHighlight(row); + Widgets.DrawHighlightIfMouseover(row); + if (DrawFactionRow(row, item)) + toDelete = item; + } + + Widgets.EndScrollView(); + + if (toDelete != null) + { + toDelete.DeletedOrClosed = true; + preset.factionChanges.Remove(toDelete); + } + + // --- Add faction edit --- + if (ui.ButtonText("FactionLoadout_Preset_AddFactionEdit".Translate())) + OpenAddFactionMenu(preset); + + ui.End(); + } + + /// Returns true if this faction was marked for deletion. + private bool DrawFactionRow(Rect row, FactionEdit item) + { + bool delete = false; + float rightX = row.xMax; + + // Delete (far right, red). + string delText = "Delete".Translate(); + float delW = Mathf.Max(80f, Text.CalcSize(delText).x + 16f); + Rect delBtn = new(rightX - delW, row.y + 3f, delW, row.height - 6f); + GUI.color = Color.red; + if (Widgets.ButtonText(delBtn, delText)) + delete = true; + GUI.color = Color.white; + rightX -= delW + 6f; + + if (item.Faction.IsMissing) + { + string editAnyway = "FactionLoadout_EditAnyway".Translate(); + float ew = Mathf.Max(120f, Text.CalcSize(editAnyway).x + 16f); + Rect editBtn = new(rightX - ew, row.y + 3f, ew, row.height - 6f); + GUI.color = new Color(1f, 0.75f, 0.2f); + if (Widgets.ButtonText(editBtn, editAnyway)) + Controller.OpenFaction(item); + GUI.color = new Color(1f, 0.4f, 0.4f); + Rect lbl = new(row.x, row.y, editBtn.x - row.x - 6f, row.height); + Text.Anchor = TextAnchor.MiddleLeft; + Widgets.Label(lbl, $"{item.Faction.LabelCap} ({item.Faction.DefName}) — {"FactionLoadout_FactionMissing".Translate()}"); + Text.Anchor = TextAnchor.UpperLeft; + GUI.color = Color.white; + return delete; + } + + // Edit. + string editText = "FactionLoadout_Edit".Translate().CapitalizeFirst(); + float editW = Mathf.Max(80f, Text.CalcSize(editText).x + 16f); + Rect edit = new(rightX - editW, row.y + 3f, editW, row.height - 6f); + if (Widgets.ButtonText(edit, editText)) + Controller.OpenFaction(item); + rightX -= editW + 6f; + + // Enabled checkbox. + Rect enabledRect = new(rightX - 110f, row.y, 110f, row.height); + Widgets.CheckboxLabeled(enabledRect, "Enabled".Translate(), ref item.Active, placeCheckboxNearText: true); + rightX -= 116f; + + // Label (fills remaining space on the left). + Rect nameRect = new(row.x + 4f, row.y, rightX - row.x - 4f, row.height); + Text.Anchor = TextAnchor.MiddleLeft; + Widgets.Label(nameRect, $"{item.Faction.LabelCap} ({item.Faction.DefName})"); + Text.Anchor = TextAnchor.UpperLeft; + + return delete; + } + + private void DrawPresetHeader(Listing_Standard ui, Preset preset) + { + // Name row. + Rect nameRow = ui.GetRect(30); + Rect nameLbl = new(nameRow.x, nameRow.y, 80f, nameRow.height); + Text.Anchor = TextAnchor.MiddleLeft; + Widgets.Label(nameLbl, "FactionLoadout_Preset_EditName".Translate()); + Text.Anchor = TextAnchor.UpperLeft; + Rect nameField = new(nameRow.x + 84f, nameRow.y + 2f, 280f, 26f); + preset.Name = Widgets.TextField(nameField, preset.Name); + + // Active toggle (only one preset may be active). + Rect activeRect = new(nameRow.x + 380f, nameRow.y, 140f, nameRow.height); + bool active = MySettings.ActivePreset == preset.GUID; + bool was = active; + GUI.color = active ? Color.green : Color.white; + Widgets.CheckboxLabeled(activeRect, "FactionLoadout_Active".Translate().CapitalizeFirst(), ref active, placeCheckboxNearText: true); + GUI.color = Color.white; + if (active != was) + { + MySettings.ActivePreset = active ? preset.GUID : null; + ModCore.Settings.Write(); + } + + // Action buttons. + Rect btnRow = ui.GetRect(30); + float bx = btnRow.x; + const float bw = 150f; + + string saveLabel = preset.IsPackaged ? "FactionLoadout_SaveToSourceFile".Translate() : "Save".Translate().ToString().ToUpper(); + GUI.color = Color.green; + if (Widgets.ButtonText(new Rect(bx, btnRow.y, bw, 28f), $"{saveLabel}")) + preset.Save(); + GUI.color = Color.white; + bx += bw + 6f; + + if (Widgets.ButtonText(new Rect(bx, btnRow.y, bw, 28f), "FactionLoadout_CopyToMyPresets".Translate())) + CopyPreset(preset); + bx += bw + 6f; + + if (!preset.IsPackaged) + { + GUI.color = Color.Lerp(Color.white, Color.red, 0.65f); + if (Widgets.ButtonText(new Rect(bx, btnRow.y, bw, 28f), $"{"Delete".Translate().ToString().ToUpper()}")) + { + Preset.DeletePreset(preset); + Controller.SelectPreset(Preset.LoadedPresets.FirstOrDefault()); + } + GUI.color = Color.white; + bx += bw + 6f; + } + + if (Widgets.ButtonText(new Rect(bx, btnRow.y, bw, 28f), "FactionLoadout_CreateNewPreset".Translate())) + CreateNewPreset(); + + // Packaged + missing-faction warnings. + if (preset.IsPackaged) + { + Rect warningRect = ui.GetRect(44); + Widgets.DrawBoxSolid(warningRect, new Color(0.45f, 0.35f, 0.05f, 0.85f)); + Widgets.Label(warningRect.ContractedBy(6f), "FactionLoadout_PackagedPresetWarning".Translate(preset.PackagedModName).ToString()); + } + + if (preset.HasMissingFactions()) + { + ui.Label($"{"FactionLoadout_Preset_MissingWarning".Translate()}"); + foreach (string str in preset.GetMissingFactionAndModNames()) + ui.Label($" - {str}"); + } + } + + private void CreateNewPreset() + { + Preset preset = new(); + Preset.AddNewPreset(preset); + preset.Save(); + MySettings.ActivePreset = preset.GUID; + ModCore.Settings.Write(); + Controller.SelectPreset(preset); + } + + private void CopyPreset(Preset src) + { + try + { + Preset copy = Preset.CreateCopy(src); + Preset.AddNewPreset(copy); + copy.Save(); + Controller.SelectPreset(copy); + } + catch (Exception ex) + { + ModCore.Error("Failed to copy preset.", ex); + } + } + + private void OpenAddFactionMenu(Preset preset) + { + List raw = DefDatabase.AllDefsListForReading.Where(f => !preset.HasEditFor(f)).ToList(); + if (!preset.HasEditFor(Preset.SpecialCreepjoinerFaction) && !raw.Any(f => f.defName == Preset.SpecialCreepjoinerFaction.defName)) + raw.Add(Preset.SpecialCreepjoinerFaction); + if (!preset.HasEditFor(Preset.SpecialWildManFaction) && !raw.Any(f => f.defName == Preset.SpecialWildManFaction.defName)) + raw.Add(Preset.SpecialWildManFaction); + if ( + Preset.FactionlessPawnKindsSet.Count > 0 + && !preset.HasEditFor(Preset.SpecialFactionlessPawnsFaction) + && !raw.Any(f => f.defName == Preset.SpecialFactionlessPawnsFaction.defName) + ) + raw.Add(Preset.SpecialFactionlessPawnsFaction); + + List items = CustomFloatMenu.MakeItems(raw, f => new MenuItemText(f, $"{f.LabelCap} ({f.defName})", DefUtils.TryGetIcon(f, out Color c), c, f.description)); + + CustomFloatMenu.Open( + items, + menuItemBase => + { + FactionDef e = menuItemBase.GetPayload(); + preset.factionChanges.Add(new FactionEdit { Faction = e }); + } + ); + } +} diff --git a/1.6/Source/UISupport/Screens/PawnEditScreen.cs b/1.6/Source/UISupport/Screens/PawnEditScreen.cs new file mode 100644 index 0000000..ff2d359 --- /dev/null +++ b/1.6/Source/UISupport/Screens/PawnEditScreen.cs @@ -0,0 +1,215 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using FactionLoadout.Modules; +using FactionLoadout.UISupport.DrawSupport; +using FactionLoadout.Util; +using RimWorld; +using UnityEngine; +using Verse; + +namespace FactionLoadout.UISupport.Screens; + +/// +/// Edits one pawnkind in three columns: a big live preview (left), a vertical category +/// nav (middle), and the selected category's option content (right). Reuses the existing +/// machinery unchanged — the only structural changes vs. the old +/// PawnKindEditUI are the vertical nav (instead of cramped tab buttons) and a +/// per-category scroll position (fixes the old shared-scroll bug). +/// +/// The preview column is a placeholder in Phase B; Phase C plugs the live portrait in +/// at . +/// +[HotSwappable] +public class PawnEditScreen +{ + public readonly TotalControlController Controller; + public readonly FactionEdit ParentFaction; + public readonly PawnKindEdit Current; + public readonly PreviewPawnController Preview; + private readonly PawnPreviewWidget previewWidget = new(); + + private List tabs; + private int selectedCategory; + private readonly Dictionary categoryScroll = new(); + private readonly Dictionary tabHeights = new(); + private Vector2 navScroll; + + public PawnEditScreen(TotalControlController controller, FactionEdit parentFaction, PawnKindEdit kind) + { + Controller = controller; + ParentFaction = parentFaction; + Current = kind; + Preview = new PreviewPawnController(parentFaction, kind?.Def); + DefCache.ScanDefs(); + } + + public void Dispose() => Preview.Dispose(); + + /// The unmodified base def, used to show "default" values next to overrides. + public PawnKindDef DefaultKind + { + get + { + if (Current.DeletedOrClosed) + return Current.Def; + + FactionDef found = FactionEdit.TryGetOriginal(ParentFaction.Faction.DefName); + if (found == null) + return Current.Def; + PawnKindDef found2 = found.GetKindDefs().FirstOrDefault(k => k.defName == Current.Def.defName); + return found2 ?? Current.Def; + } + } + + public void Draw(Rect inRect) + { + if (Current == null || Current.DeletedOrClosed) + return; + + Preview.Tick(); + + Text.Font = GameFont.Small; + if (tabs == null) + BuildTabs(); + + // Header. + Rect header = new(inRect.x, inRect.y, inRect.width, 32f); + Text.Font = GameFont.Medium; + string kindLabel = Current.IsGlobal ? "FactionLoadout_GlobalLabel".Translate().ToString() : Current.Def.LabelCap.ToString(); + Widgets.Label(header, "FactionLoadout_TC_PawnHeader".Translate(kindLabel)); + Text.Font = GameFont.Small; + + float colsY = inRect.y + 36f; + float colsH = inRect.yMax - colsY; + + if ((tabs?.Count ?? 0) == 0) + { + Widgets.Label(new Rect(inRect.x, colsY, inRect.width, 40f), "FactionLoadout_NoEditableProperties".Translate()); + return; + } + + selectedCategory = Mathf.Clamp(selectedCategory, 0, tabs.Count - 1); + + // Three columns: preview | category nav | options. + float previewW = inRect.width * 0.38f; + float navW = inRect.width * 0.16f; + const float gap = 8f; + Rect previewRect = new(inRect.x, colsY, previewW, colsH); + Rect navRect = new(previewRect.xMax + gap, colsY, navW, colsH); + Rect optsRect = new(navRect.xMax + gap, colsY, inRect.xMax - (navRect.xMax + gap), colsH); + + DrawPreviewColumn(previewRect); + DrawCategoryNav(navRect); + DrawOptions(optsRect); + } + + private void DrawPreviewColumn(Rect rect) + { + previewWidget.Draw(rect, Preview); + } + + private void DrawCategoryNav(Rect rect) + { + Widgets.DrawMenuSection(rect); + rect = rect.ContractedBy(4f); + + const float rowH = 34f; + float contentH = tabs.Count * rowH; + bool needsScroll = contentH > rect.height; + Rect view = new(0, 0, rect.width - (needsScroll ? 16f : 0f), Mathf.Max(contentH, rect.height)); + + Widgets.BeginScrollView(rect, ref navScroll, view); + for (int i = 0; i < tabs.Count; i++) + { + Rect btn = new(0, i * rowH, view.width, rowH - 2f); + Color bg = selectedCategory == i ? new Color32(49, 82, 133, 255) : new Color(0.2f, 0.2f, 0.2f, 1f); + Rect r = btn; + if (Widgets.CustomButtonText(ref r, $"{tabs[i].Name}", bg, Color.white, Color.white)) + selectedCategory = i; + } + Widgets.EndScrollView(); + } + + private void DrawOptions(Rect rect) + { + Widgets.DrawMenuSection(rect); + rect = rect.ContractedBy(6f); + + // Clipboard toolbar (copy / paste-all). Wired identically to the old editor: + // the reset callback clears the active tab's text/scroll buffers after a paste. + Rect toolbarRect = new(rect.x, rect.y, rect.width, 28f); + ClipboardToolbar.Draw( + toolbarRect, + Current, + () => + { + if (selectedCategory >= 0 && selectedCategory < tabs.Count && tabs[selectedCategory] is EditTab et) + et.ResetBuffers(); + } + ); + + // Selected category content, with its OWN scroll position (per-category bug fix). + Tab tab = tabs[selectedCategory]; + Rect scrollOut = new(rect.x, toolbarRect.yMax + 4f, rect.width, rect.yMax - (toolbarRect.yMax + 4f)); + float innerW = scrollOut.width - 24f; + float contentH = tabHeights.TryGetValue(tab, out float storedH) ? Mathf.Max(storedH, scrollOut.height) : scrollOut.height; + + Vector2 scroll = categoryScroll.TryGetValue(tab, out Vector2 s) ? s : Vector2.zero; + Widgets.BeginScrollView(scrollOut, ref scroll, new Rect(0, 0, innerW, contentH)); + + Listing_Standard ui = new() { ColumnWidth = innerW }; + ui.Begin(new Rect(0, 0, innerW, 1000000)); + + // Detect inline option changes (checkboxes/sliders/text) to auto-refresh the + // preview. Float-menu pickers apply on a later frame and are covered by the + // explicit Regenerate button. + bool prevChanged = GUI.changed; + GUI.changed = false; + tab.Draw(ui); + if (GUI.changed) + Preview.NotifyEditChanged(); + GUI.changed = prevChanged || GUI.changed; + + tabHeights[tab] = ui.CurHeight; + ui.End(); + + Widgets.EndScrollView(); + categoryScroll[tab] = scroll; + } + + private void BuildTabs() + { + PawnKindDef dk = DefaultKind; + tabs = [new GeneralTab(Current, dk)]; + + bool isAnimal = dk.RaceProps.Animal; + if (!isAnimal) + { + tabs.AddRange( + [ + new BackstoryTab(Current, dk), + new AppearanceTab(Current, dk), + new ApparelTab(Current, dk), + new WeaponTab(Current, dk), + new ImplantsTab(Current, dk), + new InventoryTab(Current, dk), + new RaidPointsTab(Current, dk), + new RaidLootTab(Current, dk), + ] + ); + if (VFEAncientsReflectionModule.ModLoaded.Value) + tabs.Add(new AncientsTab(Current, dk)); + if (VEPsycastsReflectionModule.ModLoaded.Value) + tabs.Add(new PsycastsTab(Current, dk)); + if (ModsConfig.BiotechActive) + tabs.Add(new XenotypeTab(Current, dk)); + + foreach (ITotalControlModule module in ModuleRegistry.Modules) + { + if (module.IsActive) + module.AddTabs(Current, dk, tabs); + } + } + } +} diff --git a/1.6/Source/UISupport/TotalControlController.cs b/1.6/Source/UISupport/TotalControlController.cs new file mode 100644 index 0000000..8b995d9 --- /dev/null +++ b/1.6/Source/UISupport/TotalControlController.cs @@ -0,0 +1,302 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using FactionLoadout.UISupport.Screens; +using RimWorld; +using UnityEngine; +using Verse; + +namespace FactionLoadout.UISupport; + +public enum TCScreen +{ + FactionView, + FactionEdit, + PawnEdit, +} + +/// +/// Owns the navigation state (which screen + the selected preset/faction/pawnkind) and +/// renders the shared chrome (title bar, top tab strip, breadcrumb) before dispatching +/// to the active screen. Screen objects hold their own scroll/buffer state so it persists +/// across frames; the controller rebuilds a screen only when its subject changes. +/// +[HotSwappable] +public class TotalControlController +{ + public readonly Dialog_TotalControl Owner; + + public TCScreen Screen { get; private set; } = TCScreen.FactionView; + public Preset SelectedPreset; + public FactionEdit SelectedFaction { get; private set; } + public PawnKindEdit SelectedKind { get; private set; } + + private readonly FactionViewScreen factionView; + private FactionEditScreen factionEdit; + private PawnEditScreen pawnEdit; + + public TotalControlController(Dialog_TotalControl owner, Preset initialPreset) + { + Owner = owner; + SelectedPreset = ResolveInitialPreset(initialPreset); + factionView = new FactionViewScreen(this); + } + + public static Preset ResolveInitialPreset(Preset given) + { + if (given != null) + return given; + + if (!MySettings.ActivePreset.NullOrEmpty()) + { + Preset active = Preset.LoadedPresets.FirstOrDefault(p => p.GUID == MySettings.ActivePreset); + if (active != null) + return active; + } + + return Preset.LoadedPresets.FirstOrDefault(); + } + + // ---------------------------------------------------------------- navigation + + public void SelectPreset(Preset p) + { + SelectedPreset = p; + SelectedFaction = null; + SelectedKind = null; + factionEdit = null; + DisposePawnEdit(); + TCEditContext.CurrentFaction = null; + Screen = TCScreen.FactionView; + } + + public void OpenFaction(FactionEdit fe) + { + if (fe == null) + return; + + if (SelectedFaction != fe) + { + SelectedFaction = fe; + SelectedKind = null; + factionEdit = new FactionEditScreen(this, fe); + DisposePawnEdit(); + } + + TCEditContext.CurrentFaction = fe; + Screen = TCScreen.FactionEdit; + } + + public void OpenKind(PawnKindEdit pke) + { + if (pke == null) + return; + + if (SelectedKind != pke) + { + DisposePawnEdit(); + SelectedKind = pke; + pawnEdit = new PawnEditScreen(this, SelectedFaction, pke); + } + + Screen = TCScreen.PawnEdit; + } + + public void GoTo(TCScreen s) + { + if (IsEnabled(s)) + Screen = s; + } + + public bool IsEnabled(TCScreen s) => + s switch + { + TCScreen.FactionView => true, + TCScreen.FactionEdit => SelectedFaction is { DeletedOrClosed: false }, + TCScreen.PawnEdit => SelectedKind is { DeletedOrClosed: false }, + _ => false, + }; + + public bool HandleEscape() + { + switch (Screen) + { + case TCScreen.PawnEdit: + Screen = TCScreen.FactionEdit; + return true; + case TCScreen.FactionEdit: + Screen = TCScreen.FactionView; + return true; + default: + return false; // at Home -> let the window close + } + } + + public void Dispose() + { + DisposePawnEdit(); + TCEditContext.CurrentFaction = null; + } + + private void DisposePawnEdit() + { + pawnEdit?.Dispose(); + pawnEdit = null; + } + + // ------------------------------------------------------------------- drawing + + public void Draw(Rect inRect) + { + // Validate the selection context; fall back if something was deleted underneath us. + if (Screen == TCScreen.PawnEdit && SelectedKind is not { DeletedOrClosed: false }) + { + SelectedKind = null; + DisposePawnEdit(); + Screen = IsEnabled(TCScreen.FactionEdit) ? TCScreen.FactionEdit : TCScreen.FactionView; + } + if (Screen == TCScreen.FactionEdit && SelectedFaction is not { DeletedOrClosed: false }) + { + SelectedFaction = null; + SelectedKind = null; + factionEdit = null; + DisposePawnEdit(); + Screen = TCScreen.FactionView; + } + + Rect titleBar = new(inRect.x, inRect.y, inRect.width, 38f); + Rect tabStrip = new(inRect.x, titleBar.yMax + 2f, inRect.width, 32f); + Rect crumb = new(inRect.x, tabStrip.yMax + 4f, inRect.width, 20f); + Rect content = new(inRect.x, crumb.yMax + 6f, inRect.width, inRect.yMax - (crumb.yMax + 6f)); + + DrawTitleBar(titleBar); + DrawTabStrip(tabStrip); + DrawBreadcrumb(crumb); + + switch (Screen) + { + case TCScreen.FactionView: + factionView.Draw(content); + break; + case TCScreen.FactionEdit: + factionEdit?.Draw(content); + break; + case TCScreen.PawnEdit: + pawnEdit?.Draw(content); + break; + } + } + + private void DrawTitleBar(Rect rect) + { + Text.Font = GameFont.Medium; + Rect titleRect = new(rect.x, rect.y, 360f, rect.height); + Widgets.Label(titleRect, "FactionLoadout_TC_Title".Translate()); + Text.Font = GameFont.Small; + + // Active-preset dropdown. Leave ~34px on the right for the window's close X. + const float dropdownW = 300f; + Rect dropdown = new(rect.xMax - dropdownW - 34f, rect.y + 4f, dropdownW, 30f); + string presetLabel = SelectedPreset != null ? "FactionLoadout_TC_PresetLabel".Translate(SelectedPreset.Name) : "FactionLoadout_TC_NoPreset".Translate(); + if (Widgets.ButtonText(dropdown, presetLabel)) + OpenPresetDropdown(); + } + + private void OpenPresetDropdown() + { + List options = new(); + foreach (Preset p in Preset.LoadedPresets) + { + Preset captured = p; + bool active = MySettings.ActivePreset == p.GUID; + string label = active ? $"{p.Name} ({"FactionLoadout_Active".Translate()})" : p.Name; + options.Add(new FloatMenuOption(label, () => SelectPreset(captured))); + } + + if (options.Count == 0) + options.Add(new FloatMenuOption("FactionLoadout_NothingHere".Translate(), null)); + + Find.WindowStack.Add(new FloatMenu(options)); + } + + private void DrawTabStrip(Rect rect) + { + const float tabW = 170f; + const float gap = 4f; + DrawTab(new Rect(rect.x, rect.y, tabW, rect.height), TCScreen.FactionView, "FactionLoadout_Tab_FactionView".Translate()); + DrawTab(new Rect(rect.x + (tabW + gap), rect.y, tabW, rect.height), TCScreen.FactionEdit, "FactionLoadout_Tab_FactionEdit".Translate()); + DrawTab(new Rect(rect.x + (tabW + gap) * 2f, rect.y, tabW, rect.height), TCScreen.PawnEdit, "FactionLoadout_Tab_PawnEdit".Translate()); + Widgets.DrawLineHorizontal(rect.x, rect.yMax, rect.width); + } + + private void DrawTab(Rect rect, TCScreen screen, string label) + { + bool selected = Screen == screen; + Color bg = selected ? new Color32(49, 82, 133, 255) : new Color(0.2f, 0.2f, 0.2f, 1f); + + if (!IsEnabled(screen)) + { + Widgets.DrawBoxSolid(rect, new Color(0.14f, 0.14f, 0.14f, 1f)); + GUI.color = new Color(1f, 1f, 1f, 0.35f); + Text.Anchor = TextAnchor.MiddleCenter; + Widgets.Label(rect, $"{label}"); + Text.Anchor = TextAnchor.UpperLeft; + GUI.color = Color.white; + return; + } + + Rect r = rect; + if (Widgets.CustomButtonText(ref r, $"{label}", bg, Color.white, Color.white)) + GoTo(screen); + } + + private void DrawBreadcrumb(Rect rect) + { + Text.Font = GameFont.Tiny; + float x = rect.x; + + // Home is always clickable (unless already there). + DrawCrumbSegment(ref x, rect, "FactionLoadout_Breadcrumb_Home".Translate(), Screen != TCScreen.FactionView, () => GoTo(TCScreen.FactionView)); + + if (SelectedFaction is { DeletedOrClosed: false }) + { + DrawCrumbSeparator(ref x, rect); + DrawCrumbSegment(ref x, rect, SelectedFaction.Faction.LabelCap.ToString(), Screen != TCScreen.FactionEdit, () => GoTo(TCScreen.FactionEdit)); + + if (SelectedKind is { DeletedOrClosed: false }) + { + DrawCrumbSeparator(ref x, rect); + string kindName = SelectedKind.IsGlobal ? "FactionLoadout_GlobalLabel".Translate().ToString() : SelectedKind.Def?.LabelCap.ToString(); + DrawCrumbSegment(ref x, rect, kindName, clickable: false, onClick: null); + } + } + + Text.Font = GameFont.Small; + } + + private static void DrawCrumbSegment(ref float x, Rect bar, string text, bool clickable, Action onClick) + { + float w = Text.CalcSize(text).x; + Rect r = new(x, bar.y, w, bar.height); + GUI.color = clickable ? new Color(0.6f, 0.8f, 1f) : Color.white; + Widgets.Label(r, text); + if (clickable) + { + Widgets.DrawHighlightIfMouseover(r); + if (Widgets.ButtonInvisible(r)) + onClick?.Invoke(); + } + GUI.color = Color.white; + x += w; + } + + private static void DrawCrumbSeparator(ref float x, Rect bar) + { + const string sep = " › "; + float w = Text.CalcSize(sep).x; + GUI.color = new Color(0.6f, 0.6f, 0.6f); + Widgets.Label(new Rect(x, bar.y, w, bar.height), sep); + GUI.color = Color.white; + x += w; + } +} diff --git a/Common/Languages/English/Keyed/FactionLoadout_Keys.xml b/Common/Languages/English/Keyed/FactionLoadout_Keys.xml index a166017..9df1739 100644 --- a/Common/Languages/English/Keyed/FactionLoadout_Keys.xml +++ b/Common/Languages/English/Keyed/FactionLoadout_Keys.xml @@ -403,4 +403,22 @@ Add new faction edit... WARNING: This preset has missing factions, probably because they are added by a mod that is not loaded: Missing factions + + + Total Control + Preset: {0} + (no preset selected) + Faction + Pawn: {0} + Generating preview... + Preview failed to generate. Click Regenerate to retry. + Regenerate + Headgear + Clothes + Faction View + Faction Edit + Pawn Edit + Home + Open Total Control + Total Control opens in a fullscreen editor where you can manage presets, edit factions, and customise pawns with a live preview. From 8975c864923a2819c7e705b6275ebeeecaac8231 Mon Sep 17 00:00:00 2001 From: Dexter Lowe Date: Sat, 1 Aug 2026 18:51:54 +0100 Subject: [PATCH 2/4] UI: faction roster gallery, tighter home rows, per-faction summary, preset None option Faction Edit screen: new "Faction Render" mode toggle on the right column opens a live gallery rendering a portrait per pawnkind in the faction (FactionRosterWidget). Pawns generate through the real pipeline, staggered a few per frame, cached, and disposed on teardown; clicking a cell opens that pawnkind for editing. Controller now disposes FactionEditScreen so the throwaway roster pawns can never leak into a save. Faction View home: faction rows are capped to a readable width (label and controls no longer stranded at opposite window edges) and each row shows an at-a-glance "(Edited: X/Y, Global: Yes)" summary. Preset dropdown: added a "None" option to clear the viewed preset. Co-Authored-By: Claude Fable 5 --- 1.6/Assemblies/FactionLoadout.dll | Bin 304640 -> 309760 bytes .../DrawSupport/FactionRosterWidget.cs | 234 ++++++++++++++++++ .../UISupport/Screens/FactionEditScreen.cs | 60 ++++- .../UISupport/Screens/FactionViewScreen.cs | 25 +- .../UISupport/TotalControlController.cs | 19 +- .../English/Keyed/FactionLoadout_Keys.xml | 10 + .../1.6/Assemblies/TotalControlCECompat.dll | Bin 33280 -> 33280 bytes .../Assemblies/TotalControlGiddyUpCompat.dll | Bin 26624 -> 26624 bytes .../TotalControlVEPsycastsCompat.dll | Bin 8704 -> 8704 bytes 9 files changed, 339 insertions(+), 9 deletions(-) create mode 100644 1.6/Source/UISupport/DrawSupport/FactionRosterWidget.cs diff --git a/1.6/Assemblies/FactionLoadout.dll b/1.6/Assemblies/FactionLoadout.dll index 7997bbd616c58560f0233968997ee839b6203496..18b5802baa620290a9dbe959f8597576945c7b38 100644 GIT binary patch delta 102963 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 z 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 s(5I)grN$odhS +/// The "Faction Render" gallery for the Faction Edit screen: a scrollable grid of live +/// portraits, one per pawnkind in the faction, each generated through the real pipeline +/// (via ) so the roster shows exactly what would spawn +/// with the current edits applied. +/// +/// Generation is staggered (a small budget of new pawns per frame) so opening the gallery +/// doesn't spike a frame, and every throwaway pawn is disposed on so +/// nothing leaks into the save. Clicking a cell opens that pawnkind for editing. +/// +[HotSwappable] +public class FactionRosterWidget +{ + /// Hard cap so a pathological modded faction can't try to render hundreds of pawns. + public const int MaxRendered = 48; + + /// How many new preview pawns may be generated per frame (staggers the initial fill). + public const int GenerationBudgetPerFrame = 2; + + public readonly FactionEdit Faction; + + private readonly Dictionary controllers = new(); + private List kinds; + private int totalKindCount; + + private Vector2 scroll; + private Rot4 rotation = Rot4.South; + private bool renderHeadgear = true; + private bool renderClothes = true; + + public FactionRosterWidget(FactionEdit faction) + { + Faction = faction; + } + + private void EnsureKinds() + { + if (kinds != null) + return; + + List all = Faction.GetAllKindDefsForUI().Select(PawnKindEdit.NormaliseDef).Where(k => k != null).Distinct().ToList(); + totalKindCount = all.Count; + kinds = all.Take(MaxRendered).ToList(); + } + + public void Draw(Rect rect, TotalControlController controller) + { + Widgets.DrawMenuSection(rect); + rect = rect.ContractedBy(6f); + + if (Verse.Current.Game == null) + { + DrawCentered(rect, $"{"FactionLoadout_Roster_NotInGame".Translate()}"); + return; + } + + EnsureKinds(); + + // Tick every live controller so debounced (re)generation makes progress. + foreach (PreviewPawnController c in controllers.Values) + c.Tick(); + + // --- Toolbar: regenerate-all + headgear/clothes toggles --- + Rect toolbar = new(rect.x, rect.y, rect.width, 28f); + float toggleW = 130f; + Rect regenRect = new(toolbar.x, toolbar.y, toolbar.width - 2f * (toggleW + 6f), toolbar.height); + if (Widgets.ButtonText(regenRect, "FactionLoadout_Roster_RegenerateAll".Translate())) + { + foreach (PreviewPawnController c in controllers.Values) + c.RequestRegenerate(); + } + Rect hgRect = new(regenRect.xMax + 6f, toolbar.y + 2f, toggleW, 24f); + Rect clRect = new(hgRect.xMax + 6f, toolbar.y + 2f, toggleW, 24f); + Widgets.CheckboxLabeled(hgRect, "FactionLoadout_Preview_ShowHeadgear".Translate(), ref renderHeadgear); + Widgets.CheckboxLabeled(clRect, "FactionLoadout_Preview_ShowClothes".Translate(), ref renderClothes); + + float bodyY = toolbar.yMax + 6f; + + // Truncation note (when the faction has more kinds than we render). + if (totalKindCount > kinds.Count) + { + Rect note = new(rect.x, bodyY, rect.width, 20f); + GUI.color = new Color(1f, 0.75f, 0.2f); + Widgets.Label(note, "FactionLoadout_Roster_Truncated".Translate(kinds.Count, totalKindCount)); + GUI.color = Color.white; + bodyY = note.yMax + 4f; + } + + Rect gridOut = new(rect.x, bodyY, rect.width, rect.yMax - bodyY); + + if (kinds.Count == 0) + { + DrawCentered(gridOut, "FactionLoadout_Roster_Empty".Translate()); + return; + } + + // --- Grid geometry --- + const float cellW = 150f; + const float cellH = 190f; + const float pad = 8f; + int cols = Mathf.Max(1, Mathf.FloorToInt((gridOut.width - 16f + pad) / (cellW + pad))); + int rows = Mathf.CeilToInt(kinds.Count / (float)cols); + float contentH = Mathf.Max(rows * (cellH + pad), gridOut.height); + Rect view = new(0, 0, gridOut.width - 16f, contentH); + + int generatedThisFrame = 0; + + Widgets.BeginScrollView(gridOut, ref scroll, view); + for (int i = 0; i < kinds.Count; i++) + { + int col = i % cols; + int row = i / cols; + Rect cell = new(col * (cellW + pad), row * (cellH + pad), cellW, cellH); + + // Skip drawing cells scrolled fully out of view (still generate lazily below the fold + // once scrolled to, but don't pay portrait cost for off-screen rows). + bool visible = cell.yMax >= scroll.y && cell.y <= scroll.y + gridOut.height; + DrawCell(cell, kinds[i], controller, visible, ref generatedThisFrame); + } + Widgets.EndScrollView(); + } + + private void DrawCell(Rect cell, PawnKindDef kind, TotalControlController controller, bool visible, ref int generatedThisFrame) + { + Widgets.DrawBoxSolid(cell, new Color(0.16f, 0.16f, 0.16f, 1f)); + Widgets.DrawHighlightIfMouseover(cell); + + Rect portrait = new(cell.x + 6f, cell.y + 6f, cell.width - 12f, cell.height - 34f); + Rect labelRect = new(cell.x + 4f, portrait.yMax + 2f, cell.width - 8f, 24f); + + // Lazily create a controller for this kind, within the per-frame budget. + if (!controllers.TryGetValue(kind, out PreviewPawnController c)) + { + if (generatedThisFrame < GenerationBudgetPerFrame) + { + c = new PreviewPawnController(Faction, kind); + controllers[kind] = c; + generatedThisFrame++; + } + } + + if (visible) + DrawPortrait(portrait, c); + + Text.Anchor = TextAnchor.MiddleCenter; + Text.Font = GameFont.Tiny; + Widgets.Label(labelRect, kind.LabelCap); + Text.Font = GameFont.Small; + Text.Anchor = TextAnchor.UpperLeft; + + TooltipHandler.TipRegion(cell, $"{kind.LabelCap}\n\n{"FactionLoadout_Roster_CellTooltip".Translate()}"); + if (Widgets.ButtonInvisible(cell)) + OpenKindForEdit(kind, controller); + } + + private void DrawPortrait(Rect area, PreviewPawnController controller) + { + if (controller == null || controller.PreviewPawn == null) + { + DrawCentered( + area, + controller is { PreviewFailed: true } ? $"{"FactionLoadout_Preview_Failed".Translate()}" : "FactionLoadout_Roster_Loading".Translate() + ); + return; + } + + const float aspect = 0.7f; + float w = Mathf.Min(area.width, area.height * aspect); + float h = w / aspect; + if (h > area.height) + { + h = area.height; + w = h * aspect; + } + Rect portrait = new(area.x + (area.width - w) / 2f, area.y + (area.height - h) / 2f, w, h); + + try + { + RenderTexture tex = PortraitsCache.Get( + controller.PreviewPawn, + new Vector2(portrait.width, portrait.height), + rotation, + default, + 1f, + supersample: true, + compensateForUIScale: true, + renderHeadgear, + renderClothes + ); + GUI.DrawTexture(portrait, tex); + } + catch (Exception e) + { + ModCore.Error("Failed to render roster portrait.", e); + controller.MarkFailed(); + } + } + + private void OpenKindForEdit(PawnKindDef kind, TotalControlController controller) + { + PawnKindEdit existing = Faction.GetEditFor(kind); + if (existing == null) + { + existing = new PawnKindEdit(kind); + Faction.KindEdits.Add(existing); + } + controller.OpenKind(existing); + } + + private static void DrawCentered(Rect area, string text) + { + Text.Anchor = TextAnchor.MiddleCenter; + GUI.color = new Color(1f, 1f, 1f, 0.7f); + Widgets.Label(area, text); + GUI.color = Color.white; + Text.Anchor = TextAnchor.UpperLeft; + } + + public void Dispose() + { + foreach (PreviewPawnController c in controllers.Values) + c.Dispose(); + controllers.Clear(); + } +} diff --git a/1.6/Source/UISupport/Screens/FactionEditScreen.cs b/1.6/Source/UISupport/Screens/FactionEditScreen.cs index 0575f0c..8171f67 100644 --- a/1.6/Source/UISupport/Screens/FactionEditScreen.cs +++ b/1.6/Source/UISupport/Screens/FactionEditScreen.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Linq; using FactionLoadout.Modules; +using FactionLoadout.UISupport.DrawSupport; using FactionLoadout.Util; using RimWorld; using UnityEngine; @@ -28,12 +29,28 @@ public class FactionEditScreen private Vector2 settingsScroll; private float settingsContentHeight = 10000f; // measured after first frame; large so nothing clips + /// Right-column mode: the faction settings form, or the live roster gallery. + public enum RightMode + { + Settings, + Roster, + } + + private RightMode rightMode = RightMode.Settings; + private FactionRosterWidget roster; + public FactionEditScreen(TotalControlController controller, FactionEdit fac) { Controller = controller; Current = fac; } + public void Dispose() + { + roster?.Dispose(); + roster = null; + } + public void Draw(Rect inRect) { if (Current == null || Current.DeletedOrClosed) @@ -73,7 +90,48 @@ public void Draw(Rect inRect) Rect rightRect = new(inRect.x + leftW + gap, colsY, inRect.width - leftW - gap, colsH); DrawKindList(leftRect); - DrawFactionSettings(rightRect); + DrawRightColumn(rightRect); + } + + // ---------------------------------------------- right column: settings / roster toggle + + private void DrawRightColumn(Rect rect) + { + // The roster render needs a concrete faction def to clone + generate against; for + // missing factions there's nothing to render, so show settings only (no toggle). + bool canRender = !Current.Faction.IsMissing && Current.Faction.Def != null; + if (!canRender) + { + DrawFactionSettings(rect); + return; + } + + Rect toggleRow = new(rect.x, rect.y, rect.width, 30f); + float half = (toggleRow.width - 6f) / 2f; + Rect settingsBtn = new(toggleRow.x, toggleRow.y, half, toggleRow.height); + Rect rosterBtn = new(toggleRow.x + half + 6f, toggleRow.y, half, toggleRow.height); + DrawModeButton(settingsBtn, RightMode.Settings, "FactionLoadout_FactionEdit_ModeSettings".Translate()); + DrawModeButton(rosterBtn, RightMode.Roster, "FactionLoadout_FactionEdit_ModeRoster".Translate()); + + Rect body = new(rect.x, toggleRow.yMax + 6f, rect.width, rect.yMax - (toggleRow.yMax + 6f)); + if (rightMode == RightMode.Settings) + { + DrawFactionSettings(body); + } + else + { + roster ??= new FactionRosterWidget(Current); + roster.Draw(body, Controller); + } + } + + private void DrawModeButton(Rect rect, RightMode mode, string label) + { + bool selected = rightMode == mode; + Color bg = selected ? new Color32(49, 82, 133, 255) : new Color(0.2f, 0.2f, 0.2f, 1f); + Rect r = rect; + if (Widgets.CustomButtonText(ref r, $"{label}", bg, Color.white, Color.white)) + rightMode = mode; } // ----------------------------------------------------------- left: pawnkinds diff --git a/1.6/Source/UISupport/Screens/FactionViewScreen.cs b/1.6/Source/UISupport/Screens/FactionViewScreen.cs index d3f44eb..0ef5ef9 100644 --- a/1.6/Source/UISupport/Screens/FactionViewScreen.cs +++ b/1.6/Source/UISupport/Screens/FactionViewScreen.cs @@ -101,10 +101,20 @@ public void Draw(Rect inRect) ui.End(); } + /// + /// Maximum width used for a faction row's contents. On a widescreen the full window is + /// ~1800px, which strands the label on the far left and the controls on the far right; + /// capping keeps them readable as one unit. + /// + private const float MaxRowWidth = 1150f; + /// Returns true if this faction was marked for deletion. - private bool DrawFactionRow(Rect row, FactionEdit item) + private bool DrawFactionRow(Rect fullRow, FactionEdit item) { bool delete = false; + + // Constrain the interactive content to a sane width, left-aligned within the row. + Rect row = new(fullRow.x, fullRow.y, Mathf.Min(fullRow.width, MaxRowWidth), fullRow.height); float rightX = row.xMax; // Delete (far right, red). @@ -147,15 +157,24 @@ private bool DrawFactionRow(Rect row, FactionEdit item) Widgets.CheckboxLabeled(enabledRect, "Enabled".Translate(), ref item.Active, placeCheckboxNearText: true); rightX -= 116f; - // Label (fills remaining space on the left). + // Label (fills remaining space on the left) + at-a-glance edit summary. Rect nameRect = new(row.x + 4f, row.y, rightX - row.x - 4f, row.height); Text.Anchor = TextAnchor.MiddleLeft; - Widgets.Label(nameRect, $"{item.Faction.LabelCap} ({item.Faction.DefName})"); + Widgets.Label(nameRect, $"{item.Faction.LabelCap} ({item.Faction.DefName}) {BuildRowSummary(item)}"); Text.Anchor = TextAnchor.UpperLeft; return delete; } + /// "(Edited: X/Y, Global: Yes)" — a quick overview of how much of the faction is customised. + private static string BuildRowSummary(FactionEdit item) + { + int total = item.GetAllKindDefsForUI().Count(); + int edited = item.KindEdits.Count(k => !k.IsGlobal); + string global = (item.HasGlobalEditor() ? "Yes" : "No").Translate(); + return $"({"FactionLoadout_FactionView_RowSummary".Translate(edited, total, global)})"; + } + private void DrawPresetHeader(Listing_Standard ui, Preset preset) { // Name row. diff --git a/1.6/Source/UISupport/TotalControlController.cs b/1.6/Source/UISupport/TotalControlController.cs index 8b995d9..206bee0 100644 --- a/1.6/Source/UISupport/TotalControlController.cs +++ b/1.6/Source/UISupport/TotalControlController.cs @@ -64,7 +64,7 @@ public void SelectPreset(Preset p) SelectedPreset = p; SelectedFaction = null; SelectedKind = null; - factionEdit = null; + DisposeFactionEdit(); DisposePawnEdit(); TCEditContext.CurrentFaction = null; Screen = TCScreen.FactionView; @@ -79,6 +79,7 @@ public void OpenFaction(FactionEdit fe) { SelectedFaction = fe; SelectedKind = null; + DisposeFactionEdit(); factionEdit = new FactionEditScreen(this, fe); DisposePawnEdit(); } @@ -134,6 +135,7 @@ public bool HandleEscape() public void Dispose() { + DisposeFactionEdit(); DisposePawnEdit(); TCEditContext.CurrentFaction = null; } @@ -144,6 +146,12 @@ private void DisposePawnEdit() pawnEdit = null; } + private void DisposeFactionEdit() + { + factionEdit?.Dispose(); + factionEdit = null; + } + // ------------------------------------------------------------------- drawing public void Draw(Rect inRect) @@ -159,7 +167,7 @@ public void Draw(Rect inRect) { SelectedFaction = null; SelectedKind = null; - factionEdit = null; + DisposeFactionEdit(); DisposePawnEdit(); Screen = TCScreen.FactionView; } @@ -205,6 +213,10 @@ private void DrawTitleBar(Rect rect) private void OpenPresetDropdown() { List options = new(); + + // "None" clears the viewed preset (the Faction View then offers to create one). + options.Add(new FloatMenuOption("FactionLoadout_TC_PresetNone".Translate(), () => SelectPreset(null))); + foreach (Preset p in Preset.LoadedPresets) { Preset captured = p; @@ -213,9 +225,6 @@ private void OpenPresetDropdown() options.Add(new FloatMenuOption(label, () => SelectPreset(captured))); } - if (options.Count == 0) - options.Add(new FloatMenuOption("FactionLoadout_NothingHere".Translate(), null)); - Find.WindowStack.Add(new FloatMenu(options)); } diff --git a/Common/Languages/English/Keyed/FactionLoadout_Keys.xml b/Common/Languages/English/Keyed/FactionLoadout_Keys.xml index 1628b7b..c6f4d95 100644 --- a/Common/Languages/English/Keyed/FactionLoadout_Keys.xml +++ b/Common/Languages/English/Keyed/FactionLoadout_Keys.xml @@ -447,6 +447,16 @@ Faction Edit Pawn Edit Home + None (no preset) + Edited: {0}/{1}, Global: {2} + Settings + Faction Render + Regenerate all + The faction render is only available while a game is loaded. + This faction has no pawnkinds to render. + Generating... + Click to edit this pawnkind. + Showing the first {0} of {1} pawnkinds. Open Total Control Total Control opens in a fullscreen editor where you can manage presets, edit factions, and customise pawns with a live preview. diff --git a/Compatibility/CombatExtended/1.6/Assemblies/TotalControlCECompat.dll b/Compatibility/CombatExtended/1.6/Assemblies/TotalControlCECompat.dll index 7032c33aeab533fd7e63a953b0175b4d0c42c711..c69628190c6243f186ebae2cf3917ce768ca5158 100644 GIT binary patch delta 170 zcmZo@VQOe$n$W?r=|a%OjXh`b1RU<)v~pal<~}8)J?EoIjp^o${25#ti57;5#)-zs z=0<7BDQSj@M#&~=Cgz5wNlC_uiH4Szrbd=2sTQWmn>DHoSp5?jEEo(K5*duaIGMqm z!H6M^A(W+XN_M$Y9El1cV^9i9ntu5Sjv2SOQh20?jdHNZ!1>K9UIl DJcKOd delta 170 zcmZo@VQOe$n$W@G>)>&9W6zm9f%FxPUtb;`7^jQ49(J#l2Q#! zjLnRa42)APEsfJG&65(7OfAfe6O9ba(##Fb%#xFnHfvNFu=*P^m@%X=BmrS6g8_pH zgE5eA1mqb2S*Z+`Kxhn5 zHaAL3PDwLNG)gu}Gch+bO-eFOOfjLn4DQ7$-BB zGZ-i!rl7JATHWA3P1VU4w3QM5sRG>Mg49T0%CmXT= E0QYS!kN^Mx delta 170 zcmZp;z}RqsaY6^ntmQY)Z0v~%5r|A=`~G#0n18qVHrw}ohZb)B5we;?!_X`(DJj*! z#MsOz$-p?(($YB1(mW|K$<)HkIMK+!EX~}|%q%%MY4hpWt*rir3}y^z3`szk%3#1? z!e9*K8v%I+KvpV)B@h||gg)!Q#5MeEP;71rY&VhUB*GQ;Xbo=3fgoFL0T*d5?%LvqqwYVWM%Oak9Bl zT5?L7VWLs8Nt%hdp=nZ*ablvOrKPEnWlE}rY4T=4iRrBVi3}DDh75@e#$cSxV9sE~ zkj9YAkOCw@;zmHW36O09lrdy5Wk>=-klI8b&k_htfhsJ4s#AgHm@*`9{w~YO0sv%! BDR=+? delta 168 zcmZp0X>gg)!SeN{@Xn1r3L*j>Q+9>c2MYP^ZL6EzrzU%3^BxghW(`BLw4|g|0~2F2 zqa*|4R7*?aG)wcO#3WM-Gvh=f1G6-9Lo>7F} Caw%c} From 7f2e21c82b53a129fee133573160117579689351 Mon Sep 17 00:00:00 2001 From: Dexter Lowe Date: Sat, 1 Aug 2026 19:02:10 +0100 Subject: [PATCH 3/4] Fix in-game ESC menu drawing over the Total Control window RimWorld's in-game menu (MainTabWindow_Menu) lives at WindowLayer.Super, above the Dialog layer where Dialog_TotalControl sits, so opening TC from its main-menu link left the ESC menu drawing on top. Close that menu when TC is launched, at both entry points (the main-menu link and the mod settings launcher), mirroring the existing Dialog_Options/ModSettings close. Co-Authored-By: Claude Fable 5 --- 1.6/Assemblies/FactionLoadout.dll | Bin 309760 -> 309760 bytes 1.6/Source/ModCore.cs | 2 ++ .../Patches/OptionListingUtility_Patch.cs | 5 +++++ .../1.6/Assemblies/TotalControlCECompat.dll | Bin 33280 -> 33280 bytes .../Assemblies/TotalControlGiddyUpCompat.dll | Bin 26624 -> 26624 bytes .../TotalControlVEPsycastsCompat.dll | Bin 8704 -> 8704 bytes 6 files changed, 7 insertions(+) diff --git a/1.6/Assemblies/FactionLoadout.dll b/1.6/Assemblies/FactionLoadout.dll index 18b5802baa620290a9dbe959f8597576945c7b38..178420e7f4ba9ac42cbc551023cb62efc9732b83 100644 GIT binary patch delta 36765 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 IS*4TwFAP>jtpET3 delta 36849 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 S&pCF6u2u0le~&ck-2NAo$5=oB diff --git a/1.6/Source/ModCore.cs b/1.6/Source/ModCore.cs index 75369b8..71d6feb 100644 --- a/1.6/Source/ModCore.cs +++ b/1.6/Source/ModCore.cs @@ -61,6 +61,8 @@ public override void DoSettingsWindowContents(Rect inRect) Find.WindowStack.Add(new Dialog_TotalControl()); Find.WindowStack.WindowOfType()?.Close(); Find.WindowStack.WindowOfType()?.Close(); + // Also close the in-game ESC menu (WindowLayer.Super) so it can't draw over TC. + Find.WindowStack.WindowOfType()?.Close(); } ui.End(); } diff --git a/1.6/Source/Patches/OptionListingUtility_Patch.cs b/1.6/Source/Patches/OptionListingUtility_Patch.cs index 9d7ec1e..52f5d6b 100644 --- a/1.6/Source/Patches/OptionListingUtility_Patch.cs +++ b/1.6/Source/Patches/OptionListingUtility_Patch.cs @@ -1,6 +1,7 @@ using System.Collections.Generic; using FactionLoadout.UISupport; using HarmonyLib; +using RimWorld; using Verse; namespace FactionLoadout.Patches; @@ -19,6 +20,10 @@ public static void DrawOptionListing_Patch(ref List optList) "FactionLoadout_SettingName".Translate(), delegate { + // The in-game ESC menu (MainTabWindow_Menu) sits at WindowLayer.Super, + // above TC's Dialog layer - leaving it open would draw it over TC. Close + // it so the fullscreen editor isn't obscured. + Find.WindowStack.WindowOfType()?.Close(); Find.WindowStack.Add(new Dialog_TotalControl()); }, Textures.TC_Link diff --git a/Compatibility/CombatExtended/1.6/Assemblies/TotalControlCECompat.dll b/Compatibility/CombatExtended/1.6/Assemblies/TotalControlCECompat.dll index c69628190c6243f186ebae2cf3917ce768ca5158..0ae30bcb08586ff4e4f8498beaca27ae3f1ddaf4 100644 GIT binary patch delta 170 zcmZo@VQOe$n$W?rO6l9TjXh`b1P-2_cP8oTIk&l6^j9yQtmC{nBYy^$hJ~fMX|jcx ziKUToqLGE6WwLpyxq)etnUT3^YEo)yYI0&?vW1bc;bx6016F?v21^EW22+M)1`7r= z1`{C9h{2d45lC7v7y^08K-p9vHUO$g0;(_qt4;;7Q^7D9s5TL-8>G*0^YZ#gCIG;< BEq(w1 delta 170 zcmZo@VQOe$n$W?r=|a%OjXh`b1RU<)v~pal<~}8)J?EoIjp^o${25#ti57;5#)-zs z=0<7BDQSj@M#&~=Cgz5wNlC_uiH4Szrbd=2sTQWmn>DHoSp5?jEEo(K5*duaIGMqm z!H6M^A(W+XN_M$Y9El1cV^9i9ntu5Sjv2SOQh20?jdHNZ!1>K9UIl DJcKOd diff --git a/Compatibility/GiddyUp/1.6/Assemblies/TotalControlGiddyUpCompat.dll b/Compatibility/GiddyUp/1.6/Assemblies/TotalControlGiddyUpCompat.dll index af677cfe868846d2b1cd272651ce681a448c8415..909b9bc588da39d2d2fd93d4f9297ac81ab84bcd 100644 GIT binary patch delta 170 zcmZp;z}RqsaY6^n{?m)sZtRH(5eOAp;aHa9?z76!JFtF3x60-pA*(qwEG*4UlP%0l zERBp4jVuf;lg(4j4NQ~FjLc0_lTuStlM@q@EsTr}H=mB(%Ia^yV98+4V9JopV8LL< zU;^YBF&Hx>0!a%7Lm)31D4Pnz20%4QKov${)u}*sDi|gM)h2>5 zHaAL3PDwLNG)gu}Gch+bO-eFOOfjLn4DQ7$-BB zGZ-i!rl7JATHWA3P1VU4w3QM5sRG>Mg49T0%CmXT= E0QYS!kN^Mx diff --git a/Compatibility/VEPsycasts/1.6/Assemblies/TotalControlVEPsycastsCompat.dll b/Compatibility/VEPsycasts/1.6/Assemblies/TotalControlVEPsycastsCompat.dll index 6788b1dabd01dc98b82d65c9a27c3bf11fc25eac..035583c9b957846be60d2a8d5350eb6fe4c54fb7 100644 GIT binary patch delta 168 zcmZp0X>gg)!6KnD?a{^_1rdR%|H}5hHJICYc$To2DkErluw*CMH`L85?dEl$g%yZ^2;6V9sF5kj!AgV8&nq zgg)!Q#5MeEP;71rY&VhUB*GQ;Xbo=3fgoFL0T*d5?%LvqqwYVWM%Oak9Bl zT5?L7VWLs8Nt%hdp=nZ*ablvOrKPEnWlE}rY4T=4iRrBVi3}DDh75@e#$cSxV9sE~ zkj9YAkOCw@;zmHW36O09lrdy5Wk>=-klI8b&k_htfhsJ4s#AgHm@*`9{w~YO0sv%! BDR=+? From 6c19cf65b8c070e4ad5f33f939ac451449535b63 Mon Sep 17 00:00:00 2001 From: Dexter Lowe Date: Sat, 1 Aug 2026 19:06:41 +0100 Subject: [PATCH 4/4] build --- .../1.6/Assemblies/TotalControlCECompat.dll | Bin 33280 -> 33280 bytes .../Assemblies/TotalControlGiddyUpCompat.dll | Bin 26624 -> 26624 bytes .../TotalControlVEPsycastsCompat.dll | Bin 8704 -> 8704 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/Compatibility/CombatExtended/1.6/Assemblies/TotalControlCECompat.dll b/Compatibility/CombatExtended/1.6/Assemblies/TotalControlCECompat.dll index 0ae30bcb08586ff4e4f8498beaca27ae3f1ddaf4..2ec49c02c6299c2b4241cd929d51e91c717c6249 100644 GIT binary patch delta 167 zcmZo@VQOe$n$W@Gt2eD}W6zm90T#xn^<}?nd^Snh+p=D}RIxcDe+HMjd74qGkzulh zQIe@~qM?yxT577Hv9YPSv7woPp`p2{xuuzfrLpN|^(sSFUvq{u1|x=4AU0%3X0QO# zNere8#tex-z7c~ZP&O3^4S^!YKyh;*X~sxShpP6e`4!7v%9HW92FsBiPq`e-HqIJ_+x diff --git a/Compatibility/GiddyUp/1.6/Assemblies/TotalControlGiddyUpCompat.dll b/Compatibility/GiddyUp/1.6/Assemblies/TotalControlGiddyUpCompat.dll index 909b9bc588da39d2d2fd93d4f9297ac81ab84bcd..e1bd23d9371260b072a4c5f0e7df0650709dd22b 100644 GIT binary patch delta 167 zcmZp;z}RqsaY6@+^+|zA8+&3x1T3D4aEiCy^xksznevfki2|E{gskRJH%~K4H8M=L zFiJ8tPBb*KOiN8QG&VLhH#RggFf=qbHMcagurxN^d@6PutFJjj8iNr-Di9koBr{k5 z=_CeI24jXqAm50=5-6JrgoZ#7W1zS>kThg4V=w@chCm)j#1hE20FprY&1aL1SpeU? BDS!X~ delta 167 zcmZp;z}RqsaY6^n{?m)sZtRH(5eOAp;aHa9?z76!JFtF3x60-pA*(smEiBDVlP%0l zERBp4jVuf;lg(4j4NQ~FjLc0_lTuStlM@q@EsTsepNiea>TAJZ$zaZ4%8<-p!C=N< z0^}Jn7&9aSNec!;ATJpxn+n7RKs8A~6-HpysX%rr7$yVNCW3VX^=&?zY|H`xNPsK9 diff --git a/Compatibility/VEPsycasts/1.6/Assemblies/TotalControlVEPsycastsCompat.dll b/Compatibility/VEPsycasts/1.6/Assemblies/TotalControlVEPsycastsCompat.dll index 035583c9b957846be60d2a8d5350eb6fe4c54fb7..539d5a8ad55d4c4dd7f50d972b62bc18c0c0c902 100644 GIT binary patch delta 165 zcmZp0X>gg)!Q#7e)#Z&n3L*lDGF*9C?w5Twp4{voxwU%B<~<_1%qAwx2Q1&~f+ zFl8`iNCfhY7%YLZsX%B56fp*hn*&Kh1~Uc&AZZBXfkZ5Udgg)!6KnD?a{^_1rdR%|H}5hHJICYc$To2DkErluw*CMH`L8E+Pln8E66!C=W?&S1)r%wWM_#$W>E x88H|$Bmzkb216h(87P|y#0Ee$NkA1wVAZKWb}ASq1Jx#ibp!Qn{wmAO0sv3pDTM$4