From ce1463154413fc6333e904869ce13713606fc36f Mon Sep 17 00:00:00 2001 From: Brian Fertig Date: Sat, 29 Aug 2026 11:11:25 -0600 Subject: [PATCH] Expand Master of Vega tutorial to cover full gameplay loop - Add ~25 new steps: nearby stars, pan/zoom lesson, star info, fleet movement, home star/system view, colony management (allocation, focus), end turn, and the full Empire menu tour (Research, Diplomacy, Leaders, Colonies) - Introduce hotspotAction, starPick, advanceOn modes (starPick/fleetInFlight/external), and advanceAction fields in tutorial data schema with validation - Add VegaStarMap.fitToWorldBounds and extend pickFitZoomIndex to support a narrowed viewport area so the reachable-stars frame avoids the docked panel - Bypass openModal gating for System View, Colony View, and Empire screens by calling their open functions directly from VegaTutorial; wire onClose/onColonyOpen callbacks to advance() - Add tutorialFreePan flag so pan/zoom work during the free-pan step while all other map interactions stay frozen - Add multi-target resolution (nearbyStars returns an array), invisible-shape holes, and per-star click hotspots in the tutorial overlay - Update verification script to allow buttonless modal steps that advance via external callbacks --- assets/speech/vega/tutorial-intro-02.mp3 | Bin 0 -> 199584 bytes data/mastervega-tutorial.json | 290 +++++++++++ src/games/mastervega/MasterOfVegaGame.js | 14 +- src/games/mastervega/VegaSidePanel.js | 16 +- src/games/mastervega/VegaStarMap.js | 30 +- src/games/mastervega/VegaSystemView.js | 10 +- src/games/mastervega/VegaTutorial.js | 598 ++++++++++++++++++++--- src/games/mastervega/VegaTutorialData.js | 70 ++- src/games/mastervega/VegaZoom.js | 8 +- tools/verifyMasterOfVega.js | 9 +- 10 files changed, 964 insertions(+), 81 deletions(-) create mode 100644 assets/speech/vega/tutorial-intro-02.mp3 diff --git a/assets/speech/vega/tutorial-intro-02.mp3 b/assets/speech/vega/tutorial-intro-02.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..52d8e20e132767b65498887fd69f3ef5c69fdaa7 GIT binary patch literal 199584 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%0A6~&yP%(V}lV9bFfKFUW%+_InB0N-0;+O38fKg_m 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
!3=?J@f%ABQ&? zbItzB?NA3b;wE&No^ z`A2MCGj0b$#*g!Rwa4Po}=#X$eh?H@|q74TIwV{r*Oh7BWG`icHpW?Y@LNUP#>`92It`DkT()5+O#=QpyJ41!R&By zz;6|yc&t!ivY;g7$0Kg*JAAbLj4vN~>dF)<=C9ZNwB)5b0GEHI9zh$#r zPa>cc>5F>fWFJHq^wjdZ#6j#CuACJk%gh7;`N%(Krj-h6s>{m2^oR*ugX|MS09*WS zi43U`M3jZ3B@y~8aq+Io)3By`rHUokSS?7f0v;9{UxSz5%(^&r-mZ32rF*JepAZF5 z8b(VOVr7%EW;gJ~GQFSQk3!VbswkLgl~yn4}dlIe%1UDVRIcwKah=of!djgs8REgCj><;V{x+ z5t4Ez15tZD68()t`*Ptl>5!UGca=Id@`ME_7Up)v6g>Cm2nl$U=@ds>ITW77uc`b< zFrVOQfvuUSXtZYX^yN?(;&C~jACdH$)J4?PTAv?l#vfD7`{M@<2Lt!kcgQG_~@jQ(_BviBuzk#RMTdyGq)Ukmp2E#)6XS zPYiHs)B-niGD=cSMw>xIF{N`27_a$i6gdGSz&uS;cF+!mY39!#-EHb?`Re1Dq(Ztp z`|Oe232nRuNEKutq9cvTG_>b^F;Dr2jk+p*)(eu8KYvfOHh-%Axz@T(!CCtxyu-YZ zRG;er2LGdNf4u_bKJZjZrRKPD`b2i*%8hd_>0_8$qL=jL$B%UmSqs8Qidl0*mv+`* z(JIr6bT%oybedMRprpb3@cq=VA(kQAYE!ovv->0Q-#}cg= zQW1WdQUTVH1jQE%(I=HFRZ}@p2`8{~(s(i1ux5SAM`Svk<@-ajo&%j>1dIK1zus74 ze=^WNq0DZr%z)h{Q|pc|9+7b%!AaT*ryWPuUpwGwVBGvca@o%+piIIie=Q4FfHQ}J z)0dsr(e8RB-t4#u;uG)LDkl8eOd3}de^Zzv96#GR{z=e`FSg12^d*PUI@h<|b$qKu=9Dx!udTt*tS#qRBUGrtlIR!>2UgLC#fghVY;w_M+>a~nXf7b(q`;xS zBo!wBwe!@^LsD<{J;oF@?GqJc4`%<1Phr}}_v69oOSE_n!St`pe*Y%w_{pjDZ1Mt) z@PvuluR2nNa3)%s^f6`W^YWrj$==A1P6qSS_`) z&fhSSw8+RMmT18!rbQ*3qpI)U&q!>JI6Pb+4I3)QlhmC%c2L~g=TphSOo=P%{>DH8 z1%HZ+0vGktdUs&ks`D%vF9z88qBs8Is&A(il``A+@AL$}v>V(09UJ$f2{py~Fq8Q7 zik_INP)iXb=GeMgDOSeg$O~3&rhR;3{rdp$`fqg#o~RagECeMEK#Z?H z3s3gmirhWw35=1hu}-_a0I!(X!d-9gdwfO?DQZFnK=e7d zcuq!-U8EPzbFb?=BSJlV#VnsANFyn53ED$gVOFXyz#&6ImCftEoAdBv4LxsC!{%Be z+umuNYz3IxKv$RaVRLcyV1~nf8`a*=D@<}RwDm~?i$2aUmpRQ=*@yR5t{k_b70yKo zR826MtlT{Fp}UjDj(f?IIZiyofl!f-POsETselT{=b4iJ1@WunQ>nT8us6vL1QF&U zfZ>^|_{|U#W(9*KXvy(;fEW&SoJJePnwm=a75>rFeEcU?AR4s)VheQo*WR8R|J>U{ zgj72TRpre%C@n&l8LrLY?<`s4@?UR7ihNFY038!68_8y50 zi2BjLAYCG`NwgZJr$pqm(6iOiE9QLWjVp%i_%&=~`IoAPL=(E_@yqj>H;2rXEXj@Of6k{I%!Z#?3Ty8J>UM7JH9-s70bzs_L>B zIgg}wMUZUx{l~9gl30_pe$+$0i(Lh{96RTk!@8ms@l8T=_MGiuy6TQxC`*n1hU+nu?_25~@jOoPh?0=1@BBG$Ag|Na&kko123xV{WCBXmD= z&odN>XH@gN%+lZ>Jh=->CqoElvJ<)0f!|r!3mPDJWwDguQTHei&9vlYDgm(VhP{!7 zfe|xH_&T;sxyqWo&MN+3&|bgwN-a-^UL=d_^v$LxgRW6d?#(!yNpFtr?XMrQM=sTV zQ>J8mrXi*k7;0eV4n6yxBbNbpQ#ECB%PN9*jh^ifpRa<0tX$6XATw=7X~pvKaCLCI zI?i-1mwdlE3ALi4PO-9(?bCeR6i)=hhaUM{VC!mA#F|~en!a)!%6l7hb!qDa6-sds zu+N|Fj#n{+rw&t(9>1Y`YYx{$xh8L34PdBdxc;H?8Jb@_57SAwwN1{ZF1Q$auw~zg zZzHPBMzC6nr<=7hzhao+hK=R}I@KY=Cbezz5giQeLkxUBEFW=k}Bh$vUCitG6^vSGhFpGDkYUZ^4BWH zH>EPb7W89VS4Vkz(h*b~Uo4-Q>!Q9b&MRZL(loU>K1bEgL&tG@#ts-fux&G7CN%Y% zc6h6&@Ya)Txk0w31k*N$%{=A}RgHYX@eH9#U;X?5Xh1KvFg|6R1!WTi02wxar&vrjCjv+CZ+#C zCsD^xC|$^DJIa*^e*&Cvhig6*`g^co{@vFK_3nNTyDUS%%OO_s0Cg7^j{SEBAVn#U z?fdMEH#bS6Li?OXU~)bTMk9_6EqO)VSb=7I27F5EUv88Da@bZ*O0wB>v{HFAPzh~% z+JMba)ez;q9{O%gK94|ed`xb1I*uC;?NdDbmYA1(93L`xa2$mtoe8ybiv!wU=F4yl zJkuyu?TQadfzmy0>o3{x)r=_)rWVrLPE=No+Uln%SI8bo8qm)@%jhKkgMVU=@;)7{URDwT5g}u8*?^3bgUVz;(S&>~W41~3 ztE~Ja!CcIT{;v4CJ%TmvWO?RIZwq_8?@Pno-)P(QwOnyV^(=(7w-|dL#%>^lzX;$u z(V#r`KV|UK3KtMh%Y>*D^T=_o+lce{NrN!ZC(x&_0vyfh+f0}K2)z4_RC9lwnOCH# zOoQQY@33T(bzI2*_x^D;`mCGGEZ4CxB`JxlE)dg@0DLcfxN#mjYuXiE{`I#gH}`z~ zi*5b;4uGX8Ll|+&?C1~Jlru~^YY{eE7Rrat`Uzf6K2GLm_+;;%R0r6Ee$+HL0&sy> zep5ac)izfT>85(ao{MU=jlM?`N2*}09LYsN2d%L_8Lj!oL~arn9pg>4jHO#LY?zE#@_Zi|E}nhJCD}w5m+&WS zdF9!wtIh0M*wR|47E-PDicgZnIh;DEH{&7AH-mN#P(e4a7xxOge<8T}8j1hHkaBR*B+&1ia_^kbD z_hCDPC?p}Pk`y{z)(Uv+cT+LGtbie@L%#?r5Fvs@9Pv}6jBIoK@xVBZbEbuS$PBS% zaA3=vkM!}PVrw8V%+`oGUS>7TE%R4~Z%&t^ywOF=q#~$S9OEnvw{G<+rDWkr=2EvF zuI0)6a(?RQ#EJoI7;zxg6hFam%)azXQ@~*2$8>wHF~qjCu4iO<_Z2U49N;A%*~uQv zb^w#9s3(g|?cQlKUzM4SNoruBk?`9w&>9q{Zxa|1B4#p4Zpu>WDS19O4()W6?IP%u zX{)DjnuTy}&$QjIBVQq+l_HVW%ea})xFzBCFJFo_Glc>{XA2Hu>Rc6D7c-FrY&m5g zCsIX%|9M=N4AK-Czghoh-#GBrBKP_8t7*l!*wXW|04+68mKMEw<%l)k)A)Q)YLJA| z&sse)&rhG#Mtl{-t}C4`_W{5D9g0}$L9;%Ti8q%IZx>=zz9&9|uMjsTxAi#o9!sKF zZKENdVOF%oC-BxcV0nPzi1WhjF>DCU-Ww?gR7b_guTe&rm6aIt-{NG+I%BO+H#on4 zVWI5il9I+)##F;vhJQq^&e)I3G>zy{fsYjBoCtuAU?499j4PUW2)j0Wg zwCD)tIQi?hEOslV$!pVwzKXx^4&=9Lq*8??`kH9^llVOKR6FFo zMu7yF+{#3368&oRU$TYmnBEn9Yd)Trd!%d>{tkTcLTWiCoWH^H=oV5|{3wTb7=Mmxpnou39{7*P0Fuv<9@M_rpbBlSzlow@gU~H1v@N!DbH$Vy zVP1WCEE9U8DHOwW&cR7{b@s)$qLG%^=QeElBtUSND@{8z#EXD9oz#G;#FB;xRIQWOR=XH8amFa!)_Fev%hMInsyy~-Y6nGb2`xkS>3MQ5 zeJQCkG*aARLr)(LC!q~F`AAt1xv1u{QPzT1@)adDy~gZ-PU?3Lxw-jo7Z)x2w(HNn8BI*>wLf>H+b$O?F6bC>?zY!1+LUeJZ!XRu-|xOK zmkuwQjgd6t&d?7Re~luaZ0{U-iJ&_i=GK1X3s;PvDa}hl=*OOAd~IQ!19@{1bYX@N zPqKUPCt*G|==xZjRGuh|+be9q^>uhcHNJ5j17)ZIhZAfXNs6Q*K}wJzGAyjoO_&q5 z%z;|qp99NrvUC~pSN?l_zZ;B8<#Ui#fu(0OgfUkB^(@hEYHlj~I<)nY3iV0<7VU>L_FU9CbZ^LF#+XC_u$Ug`>m$F%(PmSSsE zRIx+5kdz>vMjYl;EvR$~dGo1js)rcK@f3<)nR@#PC%F;vxo-?+sg$rx+GvYlh~qMAC@@=dbQ%my$ldAb3u%?BMxBuxo?$|F`hZe~IvM;Bt`{jyAjsgxK!EY@G6w7PD~SiTy%VT>*o^=`_L1KT z96vxoLH~pD_<7MNh8Z0{toOkt;t9We#Gy|(29rX#{HL*p_MwX>{O}H zu|SV~2mTKn8-(7fLr5AfG!p(l_&o8$y~j*HTQMu-e{c?L@*IvDKsbX?`TyXUf2ak+6#azS8M@2(<6Z;xC5E z|KPq=8}k)#6?%E#W8LZhdw*1U6qIHxA~$O+EP6hx$MHdoKZta2F(VDR(Ji)OD8}dn8c?`sd(yuyHroojo z`KZ0GGZ3OVA5!CCq_hnugk%JjYOV1!;<_bRJeekr6EQtGVS1`~Y%Z=<0w#YrO+dQ* zTf6%;RM6DDAWL^{zSx(>@P4r;rL zu)vOVN>l*`fzg{1X&H3Or+%8dKD3grp5^ag+%K!&VE(z2G~zHypUydVX<-PzRmCJp z&8=bf5*W54#KA(4Jp(b8CSsEj2!Y1ND^u#hDN`Wn{M|m)I6`%wcp4hK$!V zCjp%^i<7_7ZWWUlf}}&XRED)>hJPleblSW!cT}QDz1fehr?HZU+adAc?C2#sLs$iGkPf&v117 z#P~2Ww9={sE<$`1Kn$%&Iss4%&v>VmYg=--QfXK*5Q!CAKaB@UsZD{>Gk!?N?P0j@ z!llPTe#!FcwJnkgSmT33FcBHT<~lVMnThcGw{ttkGqha`eY@){wjFJMv)!8qTx(CG zh1gkL{T6rhXqz3}zU?h2${c+{(z=ldX^{Y*vZ@)}PL`3#SBA@}11SwDPwxKd0*-yU@diOeDs4Eyn5dF37ml*QT zj6{gYkZIWFXv=kU<`ie3Xr?i=$et#r_Z$kwHV>5ZHj&t^%=1}&pQ98>X&KI*B;#P!d5&fBo$)7VQW z8@V?aOCotxHu(BS%Bj~-x8Ci3e>d~Xqpok}LVC`p z?#nD>mazvHBspKv2nJy2Rh;b4sPyo!*4V0exY#h2oGZe$>gt~fd>S>y$}tpS>&0;P z&BfB0bl2mWjm(&TTbhoAvak5vyj)qvxzr}DGsUo476KlVSoPBk)@O89y8@%r1Ao_MxRqy(LOxgD zOymM!@+p4m=u z?M03vB@U-`3Q*C`Y=~-~tI2%+Z`M|PwaX9pX*9AU) zr^g+gL$6{kU=2O;k7Rge3=JzVfPcg4ksp;aSVloP9Dhn?Wh)et^@Qa&k1z}J%Y%sr6vu71%zgM}9bYQ8krBH9Q z&;44p?i{SVtekZQUiBFx-py2f=F*(e+8H7&PEACpNnDeRjisdXU;V(g1OPnx*gy0u zNh9GAQKFATV8;47VIb4u%%%5&1_3G+%DQ-!e6T<#uCSsh3Ci7hq;Ud8J5g(06pUJP z@)rEdd))S2OiLN_bb|pS>tkETsEmTT+AJqu`7DPj4xQ2_e@viU#u81b_|2&IvN~IY zMN+BW;43yWI1guJjp3tK%GM6Kfifq{T4u7MIRzX-VKD1ttcv|6;2UX;nmMF~i3$); z@mx7C-{8*tWAs+S&GW;cno1%j7fmJyK?k0-Ol8jJVXtLe7n=O@mC`zHzk3ROTG%=k zZXj(vMHc8mkt-~a3aPd-%envjyD273I`n*XrSM7^-$_{*jZGs`q+jogXmTX2H8J9v zYbhNE0mUG|QW=W?;kVq)v>i%(9vx>WPi!5yUokvQO zOEu$FG0Ac{t&$|1XrfrrFwinuLrF?P(L>)hgC}{y+`1rsv!|NlE(WyfK0B{x+#7Q> zy|?aao_}qw9`T3F@lItv-o$ZcwYRa6376PdCZ^Fg_n>h{BaX%B&#u-+7~m z8+Fz5-4*|xTqlCAxPPdxC!HIa^h=f$(mKAz%$Bk4ydo3)=NSLG^EL@mVM}g`Vbu8} zgsSor$Kg| z7TKsSkhnmmqH)|d?vIAabQ2)Lru*YL(Acg*e70tR+WF#!btA9!wx<;q+LNn<=0Gjo z2HqO`Gj@?lt|kV}MP6`dh=)c=krSVzK>pKDJC|sXOqSgx<6tFm;qoX{t_54bH&J{x zb0o5Cmhf??h(Xe511J$wZ$vDG>)fw$X9~s4h&5o>kHKBKJSu^YUy*~`gn4NuJ z&xG8$DiLqz=bKh2&u>~xAo0=0a4`V{FT^&<%!f+|;Q)!R{k_pJx8nJCt?k+GIYT4toAvm|BAu=n9>ucM=H#yNFXkJ~ z(lM>zhoy@v-}TmjIaAN1=JGZBD*C7_yFi=R`}dz29}BFu|Fc&bAQ_+a8D#R>U4(q! zg{YD1lOcK>N_3iUaM?os3GPEwju%PY4XB08PiO?Q?lxzb8Kz&wJ>_0C^+|_{*o32d z=+_~CqB@m*4MK}A1*bl+qrp*AosG~~I*;VCmw>L(dxI!BoPt7?yR9*$amcsE;pX>e zDPUmu@e3BcH#@6ch0UM>*5EkFvyC0h06CfCj$ZdvojhB)uD%N`qm0vzR>cs(Wn!O; zuIK97^Y8nT73jXJ3r}yQ=T1>!i4c;Dto!;loR{d?a;&m4ViQIn6qI~E$u#b7<5h_s zevE75f;Pp1ZqzI4i%Xf{YOD3U+{8QTSAs9IZH-BXQs|7s$37cjS%3{i2?)(oW1g zTlrd=P@|A&zHJ4^Qnq|ss)o0z{ZElJj$<`Of`Y9gPRt+X0o_sxoiQ{|{@s@tAVta^ zt`r*8J!|SwNGqv9!GSYX*k~S{^f^eBrYgJ+PSLYLq2lj!NS#TYeylu}c+5$HOlT&< zl@@JpZ0J)ou9toR;>&Zz1Z7@vRrV&q5VY3?Y6_)-i^J(2>Geg-+SY3x7oo2qQ;qRBj~$2nF`->s7F6a**w|?+ z9FLVJ)qrSD-y#8V6v!)yvb6(wof_!y(e1N{aGgU8z`6wlo7X#x>OP!OUK~VA4%4${ z^g==>Z6X&52w|jn=-7!k`05zbMnd=)F%jWolz9vYVp}|A>Ray#eZf5iK?k%Gs?Xu% z!kbv64o&8EA}Fop6H&&3CO~Q<2EfIdf7uExF69SjKY9L0;p`=A7FxFt!x5-TX>n2b z7cX~YPp!eY!FVxIDndvW7GRx16c&`YMJ)uLPzCG4GzFx|4v#X;xW88j=O6>{FcusCaOq*KK)nG)jXp~2ouIB_Z@4qN3)>^1Uk$B+EPqw$*;w32Qp zCxNu($~ix4lM}*I0Zyp^9RXVF5*rlzWm-&(NQ%paH$b^#A<*a6RF z3nzIVAdM65FgBSOs^emfdR#0tR(dGpXlV3-WILIY*0wbq00bp6Whh{i2@@#>78=Uy*^;|@oI+;#xo?t`JGV$qKj|WlcQxc8RN1Xc z+e`A&(}^GeP70%Sg|KDAOK>FGrz-IhR0n+PLIQYagjY*Mcj=MO^2nsydcaJiLVA@K zsTm{H(zLY+bP_du%l6i1d7+RuUj?L`##fr>v}B#CV23j%`a$p+7!3!5Aqwaf zwaiEaLyII-!0j@91=E+;V3h~TbD`8JCQxG{ctq9^6ei!MG?X?G08_fBhtPCUk8$%cH1LMf(F_J=wa927i} z1B`5J7Fs6jDRzx>Ye-4i7JjtuMuQy!ErK~B3Z=?cJt9&eiUJ71ffzs~Uqt4Ft7O$a z`FAT+S~3V_-!GIF#t_BB$vKUY87{;HXt_mU%tWGKVv-BkEKp%2?0aa(KSRM4K-r3j zfsunOJF9Heum=QfQE}%ZQfE|bBtE+NMnq{+p{v-`mXyF%@-rL?g4eAv87LNsa{vve ziK1FbeDc#LTAXoSHoLjQW2f`5)btZ|o2EYJwbw9VOajO%vSOH90An0yCXI^hpk_Yg z0IkG$WP%g0o{P;2yE3Dk{%8! z>ZOWd47?~o#*DNVdgRJusEm(?fwVc{C^aNDto4tssHOcI7XiLGXCtNN2*M4y!ee%d zXOZVLnX7vK{V3AQS*NB$gc^+tS0@8q3+2dZS0yBHx@(gy8Gl9oQls+JOKAAt-a=GmYN+m!@ojLXSCRWaic8t2VEklYeS$gmPOy8P(alz`*)h*Yy zTS&=0Xk>rq5I>!L|GS^?x4n2l*PRkIhPKsM(XICS&9)ABm0NP`H7#d?|p z!>KKDzS)V_uI9CXr$OU)g}Fq*@fiAT*x;uzYPB3fU+l;I%Ol@GumimR=LKNzZ-P-| zmVP>CWI?ULA9C)O)-vTa;ktU0up$N^0%t<8aWbxwicvgeQVI-w2de{e;*5-_bujA5 zw@{Na4K12Wz`Ivj6+=)f6p;GsQjA&)+=DeMw;n`Vq|e(AOqkY~GWZMZ(sq@A+NPwO zldXhm__CThCYxIt@EEh^es~FvmfRFG(gnQ9lPMDVK<&upNFVU;*c>mf?W8`lNXt>x zK07VY#aECeFVl(Rh*+Ic^wGZ=Uged+3xHZ$0;iO0%VZsR7 z4s|Q&&xyznL1j76j6F5UmOJskyZ$vL&<qgy)otoCizF#>JOWS(6KbUqM30Z2fT+o|F zh%5$3J&L7wA4ET_ee(VpN%_$GYZb7#ugwFR*U@tU!{LRhE_~>&!j!$Qx$)8_WuNT5 zmPw@U`}fgm*=;6bJhhI)4vaC#o;K%kmFCQ6GIdbNjm6g!H%GN}H?5d>vp+--y)7vC zF)~35TRidzu5>@d(x$|218&Hq*tq8vBes3%pYp;^Ff9|Ld47n(o(()1Ge+A4DEH+#0Y&604z>u$Ge>--Qp zRg=XOTC3JqZ#CWX2VJFrbOZ1F7QXC!%zEMYUMjy}SN3m~i>CzNrmN|f7@}X*@^gc< z_l|F&m*l2-+?KlZRXjkvYFCOj2Kc4K}6Kmj_{I|NL32!7##YG0iBmc}u z8L;ZITep;6(p^OG^K$CNcP}Dl-#T?)h=L&M)Fb9)-}CNp>6tj-cLAcekhqLton82Y z=#Jn4AdHiqhVp=^h)oF5;+3fnnZjGQylNG`P|o;G`BuKfWI_GV)<+%}fZPY&Z|ozsw%d?WC%NLShy!P`K%xLYT|DejFR` zsoIvNKT}R-`l54aGd9k{e;xmQQ;#`=r4H&R=915j2+s4%peV}G6)-b%Pra+}6_V>} z{Je6cP0pZF@J&1;zxW7`$?I$)Z{^$TYr*A&&5h93H1+R~Tjzu8G=qYIT^+TfU*d5^ z##V`YpUdlC-n?DjDa>&?^5LbgrXg|>n>b6;bNGEWqy^_S*e1{IjT=bMtNLWpSwsA& z&j}4-w=?nQ-5Fs@z?|#D5J$n=J=9z1mcRPN_pD83E@HquX=(7uzn3D+{|1NVNMs&$ zGo+K_Rso{ZG|XItXkmqm0=f7$&gm&kAL^vZ7`Op=a<32hb zq$D%bv18)G|Ue>dLP^IeK3eFF-3{lfwBNh4g@a~5#x<-o<79X{cj`s<{_ z1bnHyP-I|^|4x2Fa?Tbyjo_2L_YyGbw&#l=Is@VBfR*4pWMqAi1rBYjqBwPuHu~30 ztl^5Da9$-PX(qC%dr{PK_ZA^R3Ew1>U8oC)!Z(7tVd1US(93~lQ%JwJon@)g*KWpX zm!7YNVuPkeg1sj%dUi4J&>@N(8O#f9ylR@yXF@pVXBZ3xehsFVv?D|LMRECHL^T3= z&Ta7mK|Od30^I%?5D`<82Kce4t(--#GK(S2dE(_UK5Csf;wb4F-}F7ZYbJj^d$RY3 zB%HdmXm@2WAud+Xjh3q!?xX||#&ih)mT`^1mwy!L<*!I4Q`%(a^JLiV2K?*E zq7>}9*TtkbMWVISu>x$`Vb}K#kWz;-)W`bU$NF%g0s6k@b0j*WR9tEE{0FkF2(}l> zT#QI#W(->vEq^k*A5%hrRuLn|WNnW{-jmmgorlsYXVmz(AJla!^m?^iA(G_$CG9Hv z?;K9q36hxX%dU6UI-9>s=&O5$IKE49c{j3o16t6~r%GQ}SK&^OSV?s*36RczHWtwSs!&bHXhm?7Kd7_Hr73-F_fZ{CGgg z#wxIufzN`l1pasavnGxJ*Zf;u8H8xG%K`BSWH1=16jUfs!uR%a14Av#&qzEeJ|xy# z3Vt;_&v~|zVE#hKCBwDU-3zZuLIY^C%i=Yx+E!_ew#3S{$JECuX%oECPAz3S2bL%E_ z+e4?1ixRN)<_1%wfTadAMvU!^$9sKeosQs_EMBbR1{Xpdzcsu5der{tr9W=E%5L(x z9G?f2-fxwg6S%*5Uc3;>*|Q{dNEr;!L*@X(fRZcG52m(8quT%%ZzW@lKM`$6VYr^+ zbRgks?O7-Iq$OS`LtWRCCt;EzR!a5fKr$D!VcXK?{571llD_3N%{0Q&T#tCyqG)82 zA%W^!dK;@DvF~-{DNd@wnaC2ApUx!N>-)-JB`O+ewtUnz*l@_I1B=jQ8g}jYfngS- zSaWE`Omik@897@9iTwl3Cm&E4}eg3t7e4*yay`^36G7-|`T&xBAT)+28yL?|dP<)wT zpa^4a-c@XV?JBy_q|~C4WO>&$sAsX6k2|Diuw%;!F>rmp_w8Hr#o!#aX@|v*s8FMA z@O9%%qP8?`=yR9j%amr#eKm$|twYTJhpMlPYQuS=#ogWA-QC?iKyY^`Uc9(laCaxT zOIzH6yVK&{LZLuQ;lb~n^FQx>OZHQ4W_EUVcIMt+86sxR=ATHuK6Us6$rh1+EHv}y zCHZPJ*0%qS_dv9QCehr)4|?}L4K`p{X9Ug4ulKDD2H7GKhnL1PxcbLN;q$=e#FDPm zP-^pNXyU*Ec+jF`hVF8t1Z{{b4jKU|vJA>(5Q<$@73L|7=6hTzb^^5sGO^)2cYU?Y z0^xAv>HP^$G@$2MWnSlwN|#?EL!rA{o4J_DN|DIDa+?|^?2I9C4$4v?ynP}p3Z@1- z55+c(V7?W}p&CuzJS?WnLn?Ntna4VIU}ylFl&dt6N=qBw%`v^{g3BEe^79jsW*@0pW<CYx4bvl|#4^w%3t33dqQd}Vp3WkZ!&zwmV4!~k;OiMWssWdzSZP#!_e=NH$*I_( zwHP??q z-K%s*L7m_xvu9C!$XyqzclMWTzlZyz_&<5qEvu5xtFL4oP9(+oMx4*C0a{>@#^5|! zrjSi-R|0so?daa}$x@aq`Mv5-Y0x3@(v!N=?$JJi8u&l+1i~IFFdxTC`JFh zkE=fOv=na)K$X^G&dD)R^~nAcg>FMOUUU2vPRldb6CjExcTgu?xy1kITU2q^%!|xBR#xKBW{ThAE1nO4=_j_QEmp;(&G0#95p*4*v2>|0wGAZ0)cFPorDm{>%m!s4UB4bl|LSV4i!Vm$xDMagWV`~uM4s#zLgqg$u2sKpXQ$>Oqi zt|2bxsBzPrYF(=VERh?X->i5TUJbPv774IHmz;)hw`^gZGtLpN zq!?8^uNAqjAG9?U!CUu+jg7Z~807LMU0ds0=z-zqwSA$c!WF5c@ zY+QyJn-7u?08VB%)iE7@-G5G1Icuh^Ej%;)_j7XKY3x>Jlr-va7JtXmcxF{=;-EP* zNwONlEhGaRT*L^KLH$9Z-bvsgO|}s}wuQ82F7?l(uP>YaH_;klvZX22)UG+VukU!T z1-wZrLxyp=<9U!fZ%uxQCORG#^bjO|&A3j?)6s^hQKmqkldU`%<@=eXmnPt!6UUwd z=H*!o@UYJIMWi-blLFjF=@kK}K?!y?mB=b>*lcBD=&IMDDst{F!>L^)zdv``b|lzu zX>R%bD+npnEQ+8%QPvbXFm;xG68R%Br$KI+yN2kWz^f&@|?XlB@XNeAa_N1_!7ZXaSvDMY{04C@ZIC5>!gE z(2~f=q6^K=r9G@dNq}Jsl_^a`6>a!dV6~p4_iNFD!v5~mJdDDBq3$>zdCaC1N)5Q# zDo`KMqo#tz5+jl)m_FC8Jk99bcE?*HfuRhJ4uy#A_G@B@C&BL7OS`cAcaHKmtjHy(HLY zMT2zM%5z^WPTu45oVA`vv}FDQ)C3m|w2E$vU4JSWBwJGHYTRVfu|SQreh&yCkE%vGD{*+ z{p4ZBftf6$)c|U2-)%dhCEhORkYf}a>J8g{F%#0y&E!d*o2@aRi}$x&OHc-(g~$z1 z&NY05VK+h^D{^QB`8~J&@nz-Y7WnhotTz+CJ(vZkF?;cvha4S;UN{q`C zLc5m9MC2k_@nk}n16xq8S{xco1B+CEr1Z?J0;Z<@mK(_p&Z3{Brp468PiUmB$<+lij`_> zw?8?hz=HF~W+d4HT4MKXxg;v=Su*WTNn$l$O=4rGT=heD+WFR9M)}oMRuX>NEai{k zc_=l;s+S0G(A*eON~ma;a4lq^n`E*kh_nN-yP3%2(#m?zjr1`k-alo88Hfo9L<*(9 z6+peQNoX0VqtrMK-j3r=$B8vj1srk9A+OaF2scY{Oj_|ECg;+?LQM+EeZ%UIGlMH* z(u?1jDTmjtrGvXF4o{d<`2(7kZ*h%rRaS!3Rt0I4|84C}S504;(l=>0OZug+qmRt& zFu865!oFKpkjX<(M>;{}CY|2Hzoul@Cun-{8yTY87+VA_p==mER<%_$N7uZ^t0jRT zo-v6)oc7=O8LLll6&~66^jBlo93)+kv@b$C8*}Vkc4~!c2ox%z0JAJS^$6WiX;yaf zL)h}(`wGuuzo9Sghnz0=Ke#!tx44D&3$xHNWvsFPg=0yyzhsJi{4y0Ra#SK^i;Gt% zRmvOYI~y^KMX$!=k1UPVlH1r7j7pql*rT`Qh~0Mu`^d?34F)9Es!D5D=>_UrYi+Cwc_asTGXtj%r0(7obdf)L%4mw`{x6d=yxC=99f6;=n^*eu+! z^VOX+ERQPPX(Pz6&siEC^Lg1h`1Z7ZLUy8xCv3h?Z-MuWtT=$PWfeTksE$tJP6JZv zaCoN7$LR5^Xeh_~hRm-1t}5?~zO$e<^E0L*zxCbxy7#g;BQevrA!?kaUKqWcFH%L& zlpB)KBW)~Q<3Ws?-JZ-)8Znz?lILaLbh$Nkf6FzpbfdsxO>Hi zaG8~rGksGzn!yJLFL&es{)0h{wNA}U0?Qv|E|=I_btw124CL(PbAzksA3Qw@j*yY> zmD`0=_&T-a1#;ao<$Ru_(v4{s-9Tdv#{K4>|^hcHx@Tn<` zPBdyB_$_Cr95y@}V_h~2X!oSiwnz`$5jWIYMnkk80i0a^QXiQ)^z@XzYFD#HVKCK$ zAMht2GtmeuOmZ74mCO`Bd*D;rg{*apE7{fWA+UHqKLE{^9^CI?lN})AvBTe<(<@KZ z*oHr-@Wrq&XkfJVAz{YB>~rH&DWg`Ve`x-;q}Dx(8%p_N%+O|Y7v&Lc1&^bH5r)(~ z?A(#XiDS*N5-o80#zzr3^2lF-Gy2AlL|kuDDSMRCCUOakFsP02$yjUBp~&T}kh`hqNw%uHG zP5z;Ex`UIg+vwifa>6qE$*2%!g^^xI>au(No+VVs)5Tp(#>!=5_>wJH=P-fI@8H9V z4=`h^PIvjfs|9^o&9m@yb;5KxsC;Ez;7&t{%R2`Y-tjpjwaQ6mh?;YhtcxoyBn7LrzBCygEj3rV=jr}5ey?My@36E9p z?*&H2_Y}aidrU9m1fVTdDt1qKzfJ9@$)KZ&APo^MjbKyUOE$uoCFCrI!1c;;ER+CY z$_0;Yb6zD>%MsPsS__PXI=?vEYo`2FeSCi8Pk!+{40Wls-PH|a9!VPOD+aPg87>e` zIIUE|Wr230@p-kC3X~fx^0wqyo-F(1fO?@aqb@Kc%eAAKK~*qy|KhV>&GhzqD@8Gz&3cK2#qRQx&@{QjCHyZ-wrY;M z?sOu4;^u^%h{oGr=KZy;AdQ~^nf5|JF7)3s!oVZAurPs96$O7=Jeo#8FOH;cpZM~Y zVnN=E;n>I(+z{9!u^m|&+gV2~gJ>ugjFk$6Ir|(@ao&Nd?qj%zSI#tL@cV{ul`qUZ zb$#ia{6hjmb&{apJ~jfCzHX6pjdIUwxu?*K;D>z8Or3avC5B0xWX|pI+VSIAkI1b{ zBwHwoj-7YB-v!|q-svPL;{tvz-!Es94^?O1 zzH3{lGFJ{=T0?D3IWe;TF(wowH|0^+GjR1bsQXQ-JXuR1)7Z6=eJ0_baZR@!$|N3k;jJjR>UZh8Q!y)&r7j^+~ z!o~jjqjwI36}3d&HeE^_w`#BWc{#6pdzVSBtfUddmn17n`;PZieEUt`1cD2ufngDH zCHdjnkH3#BK?K3qrh@v&_{no8NDgWrQEgBT9dEdtfTjFS^*iLiESr}oQdAIKh9dg6 zuWY9h8$QMI8P@t=Oa~8vD3-G7lk?FNE2(2IyC0vzah|Iqzo5WfF<952;;BQVZ{?bp z1CudMmg-rx{r=o`ysGzawM<7Z2nx&Rg?Om4oAWAv4&>w&P5QCcacz!_WIK3l^Fbsy#zCWQx^~-Mv!cxYEa`gS z4rKImwYoGx=G4zq#>iR~Y^3N+N@+Y*4vWmRZg5E%+%<=pE)r)7M3%QYwe(&mi8?_# zlKlG#`cp3+W7GtMi1#xeJf7vE@@2{H5r-O`;yHv|xY$O*3R?O@<^>a`D*Yj6bJ?)-y>G zr!(MrMS>Ho5gWO%5R3)SEuyb4WOTz_bzX49hlQ(8R!S_hj!zjM4-UFLPGCM41%Y9y=bV2gP$u(HDn)(J5Y=|G3kHc=yAZasbC2TzYKTw9$F!lWv9lC{bc zm_m~xbFn~X zs0y;CKaP~JbdG+~u@jR4A3sh7y4q`<+D6jrfUqV^Y;v&1P+<;ecs*9i@ktPQ@@SZ| z3G-3U+BNgR9>a*a@g!!e zI0*TOA8`WXkQv=jMD=DD6cj2d+c3Zq zT$2IUxz+xg3mGaB1+z+I(K%t|ODZ>#TrW`;IMq~<1BWZ;(j#L*3UBgmmD(fWz(5lLmdLN$?UCK03HiBG_W zy`yqxltL_{CN><$C4(rF`>Tq~j}A%*=GpP*=91yh&2+a9e*|%%U8bPW;^Vl!x_zkF zX1WUtgzsmgyR)0aAJrq^F>358g16T<>BGE3Cd%doW@)oKw=X?z{}ncDVICdw$R18y z-E>CD8nbb?jrX%6uk66h8g63eyWi|FEF3d`usdqX#Op%YQs>8XsW0@dE<-P+(hH@| zsszi}vU7DiV;rcEbwwj&O*L-UPP6Eo+;is^Idy&3G3=V|!sYj*7){VGARVcZCd6Nh z8;jwB@CS-CNcCp6Y;K2L7Ua9F+POOQ-OI1PPTv<$ureg>et9a)1^`qB-urD9<+epS z&4wvYr@MRUQ7yDclOkt4*Ug)~nMzU|Mk;J1#1Rgl;PVE-HvL&NBq@^?~%u zg2*kzL98lhnL{8`ghhHledK-*W@8H*u@1jN4S|J%yK_I2qyE#|!=B-jC<5(7OB2i0 zkUHSEmA-0kp%=bqjq#_t0nkO>TN5}Sz8c|5CL#rK>-BZ4bs{i=@Ee znbx6})?lP(Ad#>($ME_0%Bf^W42+0&nkeOVW2@fky>EPd{QV4H%!cRxIfP?nfSKS$7C(pYqzD?;E43yl zPWw|(wQwoZYrx?8xZ|#3RM@4eNvh^EQIt54O<0%aS1ZFrlrn`95p4KWsm~|CmYSmb z%Rn5I_9vCK_-Qfg*k&B3R>Z(xL>qduh%Jt1IKnElyAd^%Tl9WjM*7L~q8mGp&(V|B zH<>x$bTOFd1IjDVjw-a2bUJ*D&zoH_GA)dhv}9)mb-Y=H%qUL0s_=9LDn3J;KW*&w z2!^}_{XNLdSkyAB&LmPfd0y8zV57t&@Ugwj|WEO}u9$b=4%BS;>&dmH?X^V-Y`!L-o%NbTg zw1iz<-KX|%b{KEvYVE5gFh?~{UW{9us6$yl0M_+;wd?E0kDrQDu(#}1TZowr&v#;^ zS4;Of0PSonWrWDX4$$=Uh&CJ7;Wa!Duir79M#2j6*=dBtG@C$jLv;bip1eh~6YTy3_x~67<_i~??Wx4Pr~MTdb)xRF+PPO>8R}tyBT}}U8x9f zysp3v&}oaDrF@cQDOnEmn~IUta5H5Aw@SHGm=co*e?exeQDGSG@q`y_ceZtE)jn2h zXy$FI2}>Bhrb$Tud+@g{*yM+q!L+Gzajs-9y&v0^+Ce3;{q8VE#%yol(=X$LlY*eD zzjG75f1C)XIH&_TEV05BCvYhcL~tW~u+PQqxl^;|Ku%RqW@i-!|M@e&H_6*P7rOY= zpXBRg4m~*#j5HKXAN#?_&f#*BUUwjBR5}~?v_FdcKq;Rx?_ai(j8iKBO{rv+maMhA z%!;Dw>Zp~g!bnWNb{T3y`fwxl3JiPQ9cp8og04hpds)HF?F1Y7OJS29$QhQ9B3&jtBJ-ty1Ig7hG!KqG<>eI_-YF|~E|%hHAl`WYKr zwki#p-KFf61flu(2BQIQp9P!C5Kyb9UFVsN3JbTNk4p@o|Z3aX*Ha zl?&k0(^y&LD2t{jYc4GZ2j#x)UG2EiOjh$UqFZn3hSQHVPZcR)DkM|E8&kIb>XSc( zgJ|C7*VX|_a3L9Xv^XN!x#iixNC-*3$-Ky5*>n(4K?i4`L=c1f#V%w1iY0VBy3~G) zBq~MjN-8d~I?9hD-;q7vPz^@MRNY2gFRAR8OuCCQQGVd26^c4NcK=ivGJ@0;LTs75 zM}6U;#ADN@ZK9E>zpm@vO_Droyc4*$Rlb{55Frd71}4q1x$3*ErI<7@N#LaIIE8ML zjB)Q{txQ??s?AB#72uV5*dF;v^+%$9lX&s#@-?=EtEVMdq!eUiC|%J&&fiLJD-KNn zl~sRl24LZ9`1l%kW#5Pt)*M6Qxwr8Y z+KyyG0TS+A~xE|1D(T(2@)x4tTtF)P}A{gY{|rx(pTT-yRQ8$BU! z8}T+FTCEC{$6X2k@arE>#?MD38uSfQ(v^uHz#Xgkc8DnD?5O{by@}hoqK-hDBM)Ex zr;e}BT3!>5>4n*-c2Ty~n*P4D84FYPMdO`jJ12Dt?R8klG@!U${13_SwDQSZb@7jFBlAAXWxPfm`t|`bSseK%dGpS* z-7Zx`fSrq9ikC)(igRF7uS1cegfFMk$&-K%DulGY*Xy3%<`e67A?uFpM$YI` z;n%!Wt^__9IMuZW)vm=#CV|a1+h+b%ZQaCr6l=MSiZlVmv*UDtBmF&PK5ki>dVyaM z+K+wy*qd9+5TbmWNW+S8@!%izh4~xSa--2zsO*2+FSdGFe&MWaj4}Rk@?Mynq3H2{ z{2sifH{dbDBN`#)kmw7KMlj}Qf{=&-AN6B;iJ?$TlLbXRb4A!6_o3P}8jmOB8RvKU zKU%;<=gMM>&E@oTj(dyr`t_Th(VIT0w6{o|1cb8Pl#R>JPqhV`vdriqn>0}m@8YIZ z=uT`&n4W##ZFV<`g*04?{RCy-Uf}mVNeZE#SIGJd-UN`i2VH z=$ptn#p13Kj@0B^jwU_}VT#G0NY}_vvdf`OA!$%|iq|D9bL6<=fQl8mu4vR`X_913 zI=3^2SAx?mfrD2ai|U@w4d&0lj(HOf35k-VFMBQ|9}4=yeHLV24euqK#B-;)DXP8G z(aWL;A21y#*zVn6x5U@B!!k!>WUl7hlfmnim5SlPSIOda0}1}C=#+D6NT&!hWHqtj zZ?Y4xb{bOf`($RE#8lF4Cy9n*pp^i7%%esTWiOu@D;3?zOe3JjI)OMFvl#gP|7=UN zv$PZqQwAGu=J)m=bDW<10ALwrt>g*;w5U@e&sWQs7h<0|n5FbNrA*Jns2rj|s4Ots z8ZfiWQmA^`R-DISGcDdBvb$L8vBuOiLFRbzeEbS8{$(qPQ|2a^I6$n6@?^5V^$XH^ zt?WALXdaJ-1Zk?>O~55FdA*OQ3FfTCFz1{_!a%C^ycL)n_a7hV5iZgGzY+NcH7@hUr$pBZmYXMx%X+$uqldLQv*cmHkT zvZ`imfA0r)}1BlVGgz{4^A-U;2}f1YueWNNhKC{i;i<>16EX=~? zW+11BAkA%aIkI}SKyQ58LXY%>EH$l6gj*D5(|n&nW5Z;Do#)DsVkGSqq*`AD<+AHn z$g|fdV5MR5z_JSXP);#XwBW^Dnstxj^Bt zI{wfa-2hi+=0=q_UDslDmM4$w;%-0eV$l0Yv*^_-jh=sA-!tv4!#Kb7TYLpltR8e+ zj-%Xv{lE(XE)-wh_-1bm>MqB}Eiy|tt#+5e^aA%Y+Je+rN1};ZlkCXM9z3cjQlBA6 zPcq52Miq@zAedID3n*X7s^?LNsghgEeQhx{()eCV1MpPlA}7r9k|+bEwve;Oi3@N` z$%da@W(-D6VW1;K(?8FiOAr3=EU8SQTyZ~tl4HL)iI3CZAp_#Q5@_LzHO;F|DdluRt*_E<1hG*jM@PVOj2Eu&di%E6A5eF zuNgz9W&q+^rV-dGf#jQx7+P_=8`QTYe^71bdGMY5GJlWHn|zUP_s2k-?bPq4JYp$}fjIkmeJ~MKmHU|z>v1&6QPO|LtcB_D7pQyV4=T1;uEZT?nY<>==4z&p4|OFh zz0X8#yfpJDn#XD4Qw_~It1T2)kiKU&=)Wo@Em6%W)5JMxG2>_=5eeH5+@&D%ASq*6 z#|t9$YUYj9=2Ij$_|8$*ee@I?oMgm%xY?z3V^8Bt0tuo9RALLWKW-h{8@GK3+299z zYU3+#XMVx(nu-}SlW{Cp&>y3H=H}&atbB5ux@~l$62wi+`nqO{R6=gI@PhsQQDfF4 zTq;)D-|t&g;WtN)H(sO2kqe$kk+L_w+4g%`QXGdh#aw%tX$3v8bzz68vDRukA>0&# z6}O^J)i=_|#0pvb<3Va(b)0kMq;F^Ps8khN-FHi9pUW6v|1=yE(S;EW(uOTM7J#C= zwT_snp(e0weh#GiF)`OoFyAre*2D-1BbFApprn096$zh58BmY3$O`2|YTm#ZqfJf2 zX!$^NYQ$BT0vw}@nl^!K62-|ZB^+LU<4nfHJ26ddbI-*}JCnuo~P^ z{3DY?!O0YK-qKJjHuXmYyWyM#C&fCndb9BP-iEcXrBd*(v1jmPUUF|!)P!;BCC8uz zH44IaSm?x%^aPn@Shk$cSk73g)#6mC zkoD+YK3zu+oJ%7-ym|5}g*-LeAXR*A(g#A+#vlYhC+n!wY>}!Elc~*(p`NIX%GG@(+%2a%v8pa-ek*w23O}@*l?Fx4xz#3d zEt{6(Cdsvg9q9uXeB&aEfb`y<@T3oBX*8RqoJ=BsQ)TK&^Xi_E9QT`umW0mH9POYZ zLGtgNw#qUq!%aRgth=OIOZy+NZFXhhrCHP|iyJMvb_r;^Av*Ee+&z2R%y-V#P{~h#vZDdf zxIOaQ2F$W~-d3)Lwll~bj9GT2;l62>GURI704?4v9U8O(1HvFI@fdKo+Z$ty%AUuti6q@L4^-t@Acg4Mzi8(I4r)t-_ zR#BG~0B*OVp`*dBnUWwuNZEm%p~1g;z!4~W>fhdb;HLS;f4zp*iUk3Zk}3IsYe0?|`r z7KOEBK`=9LU8N0ko2Hn0dPX?+ax-#$=|?7Yjw>qbIj$b(i!z?{MWe1*#_Gu<;84jd zhuA8lEKm5wOVb~flqRBV*+srXO5QBe2mGJm6#23*JESspD#q4xy(ZB<|E6vzjco3D zj!NNv=1I{%#PZTy5y<;_ocDo!`F5!z)NUgB#LKNnG-#aZOEnR0MHpUEf@Cv zy^O_+fL`|mXYtXQB+(4wqyOJ|BK~Eb+@e5SK!V?c+?1wP7d9%Q(w0JK&hqmljWoNH z&ctDTyh~j*S$~I4*7n~j7E(k_kOq}l*DAjHo`or<;>AKt6$&`6W6i{K^DOb4O(f0^ zeA}{>aN|RlkQW864?hH#0`Uk0M!1z`Z;rpcDvSG~4?0o1dMdR8tKZZ=7Di!+7pL0b zs|m-=T8S8@+T=y`Jv6>f=#uOe+1QfRP3Y)7nzf%Uo$+G06tnOUtJ@e-Ng`ht0ZI6a z#oO~6%*x+>&EJZGzQ9{c9Iv1Uf?={cD@je9RKcN2Q~&`x6*>TiGy*->us!KL-ahlg zz0F6zoiEzFE185HzM0c#Q$lvb^!R-N)pZ?Q=S`L}ZOnfG`ykAk0{Y(D{pEc>-qEDJ*AJ^S7S|HH?tUy~`y8ZpfgY(GxI{yKh6D(wj2uJunIdUS z%KG&RD-VXERFy6k+yC)9HwaB5RNky>gCLER0{6imOX&8q21fZ><7XNp8aHiH*nHt~ z8PRB{x#7!Ictu8>@P98)wI-cRj}muiSC#ZHYL*AC7Sa<7%(QmsWOp&O=D}AoPIZ-~ z;Yv4q1`fA!ATZ;#sigqmR#|mA(7tPrgfmq%Xrb+qnxd z+K21SwQTTlT7{Mzi6cLcc8Cda>Qlx}oT#e`&8)pr#98Xi`x1;t&=duUQYmDz2;gI} znrUd+N_~})l924$CIB91l(j%rQ95_uL9_zt!YT>lc@Cwxnj(SR;j!5=krh^ihB%A> zRsV=SP&L(%zn2P?51VUoR>d&;5M6*)bDM4fV1rc~RRpraf}UOuXkGs3)-E;5p4`#vK`c;Hhky{J&S+cgqTs4s`0foB>~KpwWB0hTOJeX za2XK>u1%5PS~|bwAiJS?W1J$cv8l$=Rjb1(ks`pBKz8j|NrI@4=qr7j6Sw9Z;nPQA zh#>XtZS6UgvH-4W6j`eq-H+CNEt4~mNtWLPx%=|iSgCkeH8fS*;n|&MsQmEEfuZks zcLhuY;>`ka@e1}%n105PNB!I&ueuN#;UX_WKxPs(p2Z1~USRwPop{3?tPb1&{ zjs(`{>Ze{(;_54GXUvf`W=2Lln3#=)Fk%<}jr(SCv=mKYt_#zA2yl3EWC~^{ZrIex z(=lB1z3CMS%7dKgJ%n8ZPc;{7Kawni>^OmPbZlXf>BpcYuIB~?o6Hr;(BRzN!~P>N z$ia+yzY+P9t$jTV?bnCw4`1rNCi`27WG!P&vV0y#v4eO+&nlf66y9PI9#fo}*TI!Y zmnC_BRbEZ>$*U@+*f^IIRNhZH`6P5Rv(c|T|!;E6QA3b1*YLC{xz)v z1)bd}jB%^ug+^r*#MFvSW>PmKn+qM==IDB@^sOTjm01Dsh_`U5vy@e%v0>;jX#p~F zD#U!#SNe^w?Crb|pyP>ttA7@HA|wpn3SA&a>tPp79p~x$-R#rTrdP|$*f3*#9zB}y zzE@tLs?(P+BL^jTt3jgpJAJnDC~A2>DK8eX&vsAp|8|^PSLGyYj8u4v>u5Gk*4SN5 zE~xM*>-z)pbow}F`Z>2u=|q90As*9g-C3wjUzrAOBV5nJsUuGB9ErWgElcF~TF++h zm!=0>whz0t1H|L7RaMf9F+WjEjL9V)5x&Nk19b)w1C=I;&ZJt^yIS|%UaS0<0wEH^ z*kmT2wzrm2U0>@Q86+aKn8NX#aA@vyDJNS_fqYa{lRQ|5^ZSyN7)%b6RDM>l$&tPd zHOetC-448x6p53kBQaX@MbU&1*h`X4u1ceIMB|1DfpTeJOac@voTj9$9vPrrHJ>Ui zqg5WBZi*MCp?GUeUWY&1Mh1jxgGw!7>M)X&BD~$bAO$1^q1;JOU9 zxT&XX^l{RR3)+dqtM0COT0&fJduW@h-Quh=wuq-SN>Q*AOllp|W&ulnCR_hv#PD9@a~6vE>ZSPi<$;D`*C647tJ~HW9K18-A-$+xzgek!9ddX$p{h{TuZuTO_E?Kj64Bgct4eS`c{FU83I-G@PSep2 z-u?56=TN}E=xsmBViG8I8IrSob0 zg0eE!b&XfB)!zoE<1;8JO~Notg7##}#$x0eIBaq%)@L#*ndnqeKa(XwMwOFjdwH_nUQO@e&Wz@cxYC-zH4`nQ^mPF}KGmn)1R9!9L_^UVI z*vLLFrVOTZp!VpQ9OG-cZK-%kAH~=A?%o5dZcYvR3plW~HTq8u1f|`;xRN44ja|oc zR|){}ADSj{%1u!j%HA$^wCSo4tZc2i(>#PhttV`9oO(OEXoAz7V_jwC7AJUCoQyx| zy>=93ZgfF){HqHV?|9Gow|RVu0&xoM=mb_!=Q?Ygf5@)CQ1>=>0wa$j2T&RW0)<7+kD+!idsz^pPEetCAijP2SX-i5k)o4`8kd%sQjBPsC&(bJV0-(G}ApC~DvqQxVe1C-hU|Q}~s+Hp0@nsh2Wf(GDl1m%3<4=v|<< zK7B!*2yvk{($+uvQH@eTW0$3{rIvoqK%8h&MW$&j=syk)^Mf23UVtCkv^(|zFu-rp z#$LBSXLe`Y>>orw95cSYUVhd$_$O8?&!Xd48qFI6P-LsEA7w4fvqm@sSfdwdPwKLK z=h3nV_fYRqzK06e!fU!iDTZ2;(X%8WJUkPiRA)^y;$5DwoEn-RYcd#BFPpU0c5o`) zr+By5KRz-6*SGs1+zZ|GkJL3rJEOBGSbatH#V?yZVG_NvM|#xr#7mn2mF61adMeS^ z3bY{zq+~vJr$zR$iHIxgXKxahTlPpN`h5lt^vB^JudrhEce#Ypm5zkjN+%oK{)Pyo z5czyTADp@@DJ2yY86Kt&ppj>&_$U9`AHf~a7H1_lEh75qZ`bO-z1F%sADc5g1=DZL z>rA2ilyc37m{g{gIC!dwA`_+X$<`C8B+O8?p>PjB$+Exck-yt(kMEAe@lDUML4IB* zra`7$aQ4W-?XBgK`jcE^)Tm1pZe+8RGFe1L!f?kvsx!u=XF$KN82mUN&E%lCT1H}y zBx)AMiK2oQvepOBEt1Y!f4!Nt93I>K?mH|TYDRK*3kgN;NwavX9k5DYA%6O}@7e}k zzV>Rn%#xMknTYzv+yNft)W5et zJ+fCGU@AVbkXoCs&N zfjrcU^hn35mE(!F8Ra>~krCPPfC-n4PE9t22r-R|2=fOK#31f&)}51FiHa21WUjHb zbbflQ^M-Ktp=K5aa9-G2OmjWS(%o1`FBvX5SX7*ST!S$TC$7wNTV9$KYkt;S(lwd3 zS#oqU5bB)a8~L5eNf;!?w=Ic#{cT+6)_hDdP+Cx=WqE;F4G42^?9tO8*T zfHeb7u~GrjrbgyAWIFoYIdvqP0%y!g)Ey`!!qSYSIt3tz?*EBi)jziybiHVDdi*DYw8B57aF5>;WWL0&^tV_J#0Q0tBFg|1MireLRAePpzDy`M?_BWe7q-M7 zEy0`vc(%8vul=; zrwwhcg=bUtAKgs*>ybV|4;$Czh_DU&jg*;Ae@8xb5_KSnftBGlu1vnmT5PHPD3t$CNYkF+Imiz zpO)bACQj;`OYQujQ|Jzd!r2OT_vbUIT(LK{J4Pl|Yg%dx?}DMSkFLeg(50&e%1{Y- z5mpOas_UpY?VJAiRjgVX*+pClhiMud@@7RtN@athxI&gL58tLUSKUf~9W!<|=q_E{ z_EnWYcxr799~H>ySpW6bvI99cfc@I$a?40f9ic@ z&v{+VuGn~tH;ND8qt*h$F%aUFqLsCh!p98a0I3ZxzNxdzX3+2&JJ_IL@tjq?%pK5xwKR;_K(Ie2YJs`y^X90mw>Dm@&BA%cIl|M@W-CXbCk4 z@(U~6>e^FMHFd+sG$<`_skE4kQRUfaCIOIy@;X~ZrSpYb0Nj49+6{3Mt#M)jSg*5K zZ27YZ4jY{w&b*#cVe`2scNJ(445|qFl}@v@gR7tf30XdI7?H{IgSB%+> z#pBG#`m6R{Uvhuhb*)twH2g51R0h!jos?E^@(FEUGxTW^NsrIpML_EQrvy^>|9*sl z8W@n`>ehjU!4hL%2b!n4KZ>FKvJe>g3X2H?T?6;u`N-up#Qv5K?6B=U64g*4ppu3q zNmDs;k6+&nY-w2V{rrYD!2-+HEVX+0X{RZyK;e5`EYY2l=IaXrCUW>7S0|KZXettX zSd5f~9XIFODi$deHWeBX40^K-EELku0208GJL-EHb4D$luD3vf zVyF53?RDmq>fBmg$$@8i^d2x!PcSG1(}o1~O-qOjBcpw)p^YO37)vKYOPq60;*wt5 zCp9E(LFNAWt-l&?saBTmCxMk6x{0$|KBFyShkA|Tn z2ZoaF?o_%Fn4!ComKLlB?)^gM{(T95MoEVG&3G?ODvBe%xXHl2I);>yZ^pD@Fnl4771!lvZFL2`4EI8WTNb zn3ZxkvNZ4;ISMvf8WKP$xUUb0jhq!n-H>^OO@)AyU;qj_GmDH9053e`tAKei7rNYI z`jn_J!l=-Gpp>O0vt=JeBvznRprln6uazTJ+)0BHu`0P=EGm*cdT5vwf3oZ+@lkfg zJ0T*#A~iBnCyEp$Jw86(6a%t!0nn1Z7p|aC=1TJvLW!-P!Rdh=!*^}`PJE$ryz`ge(WzeJbU@qFBAxIxhN{0s=gv~wZ;hy@vdFJL zOg%k?go*vrkQUxecUxIpRfCkrS4a%r;VM+RfAJB{n34fJAfshvHTLOZ@luG0>9<9& z+Gi_tNrjFOP(-ql(b5B{(4en~du^obF>&qWWRM8>jU(d|A}9#x8363k>2e7Xkr8pB z(j~b)BN@C_4i0KrKFDVyQ$+60Q7EDK@d`}TMneFBzDUbwOCqa7cI_lgiS$b5aVUs> z2x$?}qoUVzv(FOH_G4o#d@49i!z?pJVG{$|kP!qU2HrFzJH=Y{MbZHWBhg8Gl^Fa& z$B2J+A5vJ-BNd@GBzcDys6!apBW+Y;^7|?LV)#&z&4stq)nYLz*StwK#3SQ-6c`v@ z>bviQE9T~~HVbf-9vYGg1E`6lJ3EvV#U~d?(Vt528&QNdk$RUiGbf}(P>{+O4yp03 zfGG8Le;K;;E`1Bf@TXRORKm>Vz_o~GPA~Lg1gb%miBrJfkgZxfG)vsD3O>+QL_`6@ zAA`tUJ}T-}LYSnK0*by=fi610kJ4)quJ_DFDB!WiW)2-AAOHdsqj>b!WOxQb3U-oF zNl}sMKl{c}m?{id4G#=Qh9^?;SK=dKTS?bP%1YgEYvBTnazv#WMKF;l!$Se`=xQ*} zSafzBiAW4!B&y}qlaGIo<18u`0c)Evz>*2TPeKx&%b8`Qe_xR2IQi(4AaeF+S3Opb z8r8DMo-hVjb&UOrU%fQ`dK52EcOfztia9`7Bt)QhWrJ!Rk2^zTi|2_Fy>lIICL-F_ z8$A_LIGWn?{v?oK>XB?6o|HWNdQR!Bx*R`ku3>NYF{L<)Ny>r|gJe9uAeR48HQOoz zOKx*EtreR={!T4WJKN|}ale&Og)ca#ESTS1yN8Z*numK^Yj5Lv>X_nHF zW%FZ?r>30$qo96_YH5jgBjQLqw-!A#NhQrvpFTBpqMpwjm*h#7z zf|XZC+$tXT!h1PUjuiXychf@9SR$HhA!a8s#f+A(E<*EbDz$Svu%Vik5^v5Lu9!@O zX`QI%Q~9n+SUwYtac~KYw)z|E$aidc_X7XOSze%W%-oU7R~|h{I@ox9FcGT-(J%?f zfzgwMebLi5MWsD{g$(`em|_eCrDz-xGA~PRy47*Bxum%>P84j4%0;#dwof%Y0LxR~ zEY#W-?(6|ALLz< z)r15>T1=1}1imJ{<+!ntSC3W`L^lGALbrxA#Z*+}KH_<)qQOeDyD~ncS!ZBmr!qYA zw5u7v$V{u66dzxHP6)0JG1Qyj&lu$_zXBoyZ`gMc>o8L7ZJH`-WnnMy_M@1 zio`rn;G8IJn5N2vN?8K*sAA9j!?<|Zropy}=ytWfWu?d3xC%3wff6{`4N8eN1U50b zYefEf4_%VP?=eRG4>`oGTM>Cp0M9}2U@3Xme*VL`V9B4n)?a!zbWi$WPTRi?uwh}+ z7j+*RPyH{ZZA#r1#d0A=BqKWM_W?%~0^n_s$m8E?T_qTih{l-TRknvrG_TY9=491Z zM?F!EU)Ym&8OKYi?bS{8ll1h#hPbYbqY2FIm$+Q^*~YYAJ@nE6X_x89-7odM5RMe9 zvOo|^U>8M$+Q@8>W7c8n@6|fT8{jNn9W=Xnp(m=0_2;onXL{*xFXr3cW+;W|`oDXf zv6usqdG`x63hy}!-{;4hyp#EJ(jD_G&jRO{<@9DfzR79`(^AW$O-9Ba-c+WUpUD9$ z0IiToT-E|s<%ZI;@qdaP-FJ4H3RFc6Q+m@kk?J$6r4UiYmE0uOJ+@5S^wDNQV}s=(_7HFp z{A!Ss$2taKsEas)oIWS5k=!(hVmik_t1x$I=3!;hv_>$rPKOJ3--n3GUqHrFMZ9O;#wst(hoPJi@nMC%KqDUyyF97f z>(L`9mcd@m&SzorgB$F;LVF`1F-~EGb-7MWDW>K^5jk+*4NRetTRC47+tRpgK0gx1 z^^A*_3_Yp3iq-ucT$#m>AQ&N+&uBZmQBO4T&QIbz62j?>LPtB=Z9xlfNC^c0_1?Xx z+&#&i+mLL8FEj|Dc=-X<4-<=~8^<}NvHJQwlvr@x_@r%RaFvn9gmf$Q3^T)CX%t~G zlSu4>wVLI*qy2_=IxZTP1q?PSm7fxh@T8eZZ;+6OVi@V_6jy9Kp$%n;m=sz0oLuxP zDltRX9Nazaa!fy`AQPF*rVYP7l`NgH)Nqi&8JDoQLSo7j7x2BLfBuzV`DaT0S;~$# z$dJ|~MyP#ct5xY0IW?_$+&}Yi*mw`oK=34=lk-FCW6$ty{akZvj19~J6%^zvfcYt= zMMmWa12{BwlkdlY$-~$N!ENgqgMb?Yk!!;@AizT z$F+Sp*YNrVL%WzhF_RuBx}ud57emcR?T5kyLYIe4*7Yrw5TRq}Q+_|d z(Q%uz<0~eq9;?FIE;>YkK+oHZ3|BTn$+^s-2sxufCB8lPJ)8gRif!zb4UL*PlNPF# z4ZE(FGpX-e=H~9I5b#S6t^>xMd0%iC)8uFF&!k!Awzlxcx#Fi z<~pTwdry|Pz4XJZM9$wP3k2QAjJ2(E<)1dP-abx}=)1cWdwGfdDluv+X2t{5zEWkj z(%~uq=(cLGC9jABNrVG6!D#lZ1o17JhMW>dgDXI)}Bon3t#&V{z96Rm}3=M8T9Hx!}Rt zXO98*MXs7fK^E_|@Tv>!pAEp}eZ*(%$F`!Qje9o;$K8LQYsQI^l!8e;Zy8uh7a$tsO&$YH3+Bp%Fr~MoE70-|N?;YQed3vo z2=jOx*EsHdhIx>W?9;?_yz|FyNKKtPUh{XHS4?n~O(QES&2+<$21q5P% z{xV;t*vwLAy#idTS5sNu^xUj|-QDmO(f}kR!f_oweWhGHK^f9MfAlcf1}7B@Gn&eR zYPx#=;R#v~4lK_lrO}zSM3WO?s6nXuVZ?+$Pf2W@mND z04J)nDJ&LgH}kI5r-W_Qm;_d+h!SV^!d7F)z2K#)U8|GeKVAoS0bkEWE2|J-NtH3x zqF2;)NiMuQY0{$S3or2=imD!#8X;B)fvBjLe^SF0iTKM61}knUP(|Jq4#b2}>ML=% zAa^~=p3@d-$Q#K9q%ri0rpAS7f^YeqlpT{S+_~8J#Z1JI9T;ZMGJuhIkijdndivC{ zq_|do>!jgwQW~?2lvi*$`OP4%md;@+P`pZ(TnQgo==F@3;V=iU>c6|Mzkf`X87#WZ z5kb|bi6L8r1y7ugELr)39NrESAm!6HrEp`CQr!slY;Hg{Ddr@3(X@i7PF&+x3ZHyq zP5Bdn(gl57CXsg?rtGuQ6uU8FsHW_k*#XGo6;}1>o09VM5g}tFV%bA4@$P|3@XM$t ziShmpN1?ve9OMl(mgWleY$){fkvEZ$PY0dYt-`{ApSo{Noj#B#`_RjoFw*1E+3_-0 z8E3q1R~uxf{J4J;vee?vz@X+jFz@ueZ_9ItK4B1j(626D!5i zggLV*YTrQRCJ*~b7QX6Z3c9_5R4r*}C9vi@`J(l%Q)a41$1!@DRJ$2#7*jNo&NWeH zD`Pk^Sq;jM+9s)(Zd>D>KpX-`NP#c$o{H%)W|$#})v-~w#%jkJ=EvLAo7D(pNci-! zwyR_*7}Mu*(C~q*I0!=fq!nKSEz8P`2ZagPx}+M-v@yWS?b-Fws&4yDN}ZC;)hjNf zCPo*`*1Z&p`I>pG-HGXD^InayzOP+c)?D-^N;z#p?}b=k>`S&ftFEZHRh)L%kU^sC z)E}$4xp)E}^soPp{$yQD_lcJRD_JPFL*&Cz73B_&b|_S6v4_7iVYrI9wF|mw=tdF? zV>`g76bE<|ynb9JkP0$!FkKi9w4QQNce;2~xNU@lWklg1h;d-Pg;?AT{UTs}D)qkq z?`7&=rBa)4{O)YyyNr>C0t=8&{R=c6_)m!;uM7aSEUF6O! z6&kv{k54DB_7bcUoUp*uNkn-NGqC59L`eSX&41@F^L$sjg%)PANYM-0a33ubIy!yA z{DQJXut+ye4*bvOSL)0s{Be8lj$Lf?;n<(7Kq>bhv8h?4Dl_4uh_MkoDzKQudqxXt z23J3%mbzaZ1Eo`TNZMsEM)xLv!&gdqhb0#xDf0Qh3x(VZzc*-G?n$9aQ!;f`o5nvg z(yWIjH@iy4U*+N-_v%zmUR4WUz?ZDK2mN8HQF!f5JQ9Ri*8J||6#p5ozG<&kX3u)Z zbalo@*Q67xomMlH(y^W(dQ}gfe#W7)qm$3Hc?zf;AQ?0NhPZA#VZHS!f8+U$ST+F)i?rKg>RE>r zxadF!69qJD?UX@c>)`_KjW1f~)~PY{*GboAP+7_-g4KF2@G`EPa36>BvZ}sj@CuC) zmEcn^i(`gsR;xA%;fWO~)PT9&`J#gR@)w%guye}aNt#vQmKbA&bOmkpn-(;MgDi)} z5=8Ci9lU5bs!Jfm%7Y`qsqiBb#n&vT#&o$+sO+@ysq7tL2c(DFu+hI z_MZ3r>NO$z9`hAtp}NaPyAc$9`)MGx!D6XD0z=DB;M5(hP;xE)^m1U)TDh&#hmN2a zq^s$Dk5)94DA>q-zjj|&*6aJ!8ihT3IK<)$Hfw-)wcUNn-NbVfPQ9_wa&d#tZuhNI zt**^XpHro_9o(;(6&t+FH~6zpT>d}JKqNs$_D@b&`WTbvr{~Vju=v+R3o-?4-m26z zDJIj0y?(vGG|Yr~Yyw;s!76L;oOYRzhvzmpq3%rS#>b3Y{JUv;CY|1dAv^aA>@5YAO$F zQbWx$)b5v4lK=s3_==IGc;GKs-(zt~7QtLp405>6xa^`)vK_Vjzq)Vh{#xS;jaX=_ z_!N9u%xDc1BBJ4Vm9hYTn)e`t43^#iDO{j6|EK8qtX!~lzqFJBtyO;?^9vp|>+;O= z|Ch5u&%mfliN=hC56JaroJLx0L>in-G!sio__*w6-0eO@c}mWV&*vy&n}s_N8Xbm< z%1uC^L=q3YR@eJSY`j|s?!$4`i&G( zVL7)$AV@PKmcDWtF@LbILCMF-1g08$h0eT@L^acgBGm$sQHU|)Ze6`>s45KdC@aEDqX2{2rdv_mb2 z*%}kYJ!!{tG87M&n?UfEfIQFYbF`ds3~ByrY$X*4U4ay{pKDqBz67e#w4eUaA=%;I20H!<)bTzQv}B80Qz zgPFb1SGhYXxh33es}FP8kX!|oU`CBxTKe8i=zd5xOO4ZYaf{tA9ojU!<^2-vV%7)0D{>v0>Hdvk` zsxTV-W5ac~ChbHOUQI<-e@UgDg)`^np0N3N$YjJX z7Bm;FIBW}N#uY2fp7a)49t)4}nGMHAyT3du!vpbXC_eGmhkbHqapM%2?j;#P{L(+C zcCqJaE8SCaY?~}j{9sVK>5NPAF+7^l@Q7LMR+ClwFtzgNU~jEeT-~U%E!sicKgySNM0m#LUc5us-402T2n=<)8X4CqXApgUq0Z~uX`VpZ+Z07) zX9JwiVw3DH-*n0$VxPn-H;Vo4k^Mkx>JsMfN z$g-esc2RDU&WD284aX63;i`$H;Wk&l*=dV$%azy)HjbZ7QzM z;DpLjhIUkXdliq$nhC}>+oTo{qgelFQ6e4TE-MVJF-U^z|8;uz1O=%Ue-Gl(wA!Ba z>V019<%^&@+N4$!snn2ROJ`t?Q;LnT=0A0@eyxm8!LZL4V2O~GPuPGtk64$6326+OX9CYB-bNaxFl65aGBwqX&QiY(hSHz^cj zES!i?5R?);z|%ZyEK@K;RaRb1UP=J|l~Emi&ig z2KzLzu5-y&Zr$%l@Ixb>JZk5D#ppMfb7zdRKuxc-j9$L4 z1F#xzw!sJDDEiWh;}IVR5ZE$DomSR@{=2rWqO}v@ZQ{y!46U&c*sFpQ6Vlt9g6$uK zhha5sOqo9YIsKbb+~`2mQhpu^zX-e?^3h>=wJ|`sg1=6N*Cs9(Viy;US?hpb@I~i7 zx{6WPdR3m#;IiIHNT{6)SMOla8=P0WC`#(#%xwd+iZeYM-xLBa z@rhsR$hQav8sOBgTTgc-uu!jZes#d{E0ilb1EGd~&e|kD)v8fey>6sSQmSMje54*~ zGL1y)p;OeQ-s!AdF_+K~_McBFlVPPkY{U%Ry)2E^x=_r62nlM0Nc7VzX8qi7Avn_z z;&}UP<_0g7l?8`&T>K}W{rk6ZptFuvFQeeW&7+uvU_ytOP9^Ruf<$%vJ*Af4Q-3iC zwv-BO>K7Z^dP_5Zz3hd}$OnrRNeb5iGHN9EPP}M@BY?B#ugF?6fqamy zZ^op?8uNE6AC_AWZJ2|Z?;$O|_X9fCSh}-3YredJbm!lpKaziOXjiwsO{@NsNrQ~1 z%@35zjs@W=;Z9>k$Eww^FQgz1GnU#Hg*XnQuJ%*1?oTv$rN(D=8XoH!R3ThK^gx5b8Q>F1FEO;Vyw@&hbEo7b}o6~k)%JW1q zX`0fMMJI-Y`bVd7@;@|8xXy}MWifZ00*$yE(xi#U5ZYVpfv~keCTu`Aox@)`cYHbY z??YrXxy&{d+bxGudsTsW>FkWKYMY|T6<6uf0=#R8Du+Qtz{~mm+hYAWpNBt4{v-cz zpO`>G(x%k1llAM%Ux~)YrB!p0Y(iMpB$Lg}^_JbM-$klx-9YJ9olgRvZwDDJEdvaTJjlwz0g^VgA;F~veso6AcWyzvkI`EmiK41H1r1}_Y zvij9qfmWoYC1ZG~n92%wdiYew`H1^VMW^?%vv)=IdYiW!xK(cX!B6}Q_B zMrYK&%%7V#Eub%wn^`oFkFPUOmk&FG<;S}VgjtfMrOgQ}O?~g!+~BbC?(_uo~eu;EE{B4SW(Doogi`99Aoe zZ#@nC_E2d^h{J!{6dGmGI%9VkAm;765ZAPJU8%S8+Wr&-&TdWpO5JJt-jdi8{>}D=o+H zN(hPc1C>A{$%yT-`2X-4+2;B^vt6TcBRCCg=Q>gI3v1&?*knmr3fz0XhZKE(GeKP- z55sibJ`|os@!YLhX35!^`Ps-S#$Jt_iGtz_Yhm+PK72= zhNeI9lt#11x&ET0dxwVhef4Z{1lsq&SQ!(O$t6au6AH!?^6tnq^*vG`#8{IsWh?sI z-dHndsBaDm9%fHtFosm$6iSPP^CX`}pPEEbcYQYSH2^_rB* z8V6iE@35?Inmz4g1)5kdl+O{&B>>G)$)p5HDMeYWs{xT5SFR}8l9Hv4_k^o z_48(!%PJ9m$Z+0=JS)X%T;7}VKlA?u!JOx!RMqRTt#n#n#f^L_R;JO=#KVWoGGNH< z7{NHD#Egw-JJ2Ah5w2u#+}Bizo#%$?;2B&V0I(lkRwKZMjbqz-)fXf$1)oz#tfZa%Sm=B*paky2SrxTpJ6;)=!QkNB~>YR|joFlLEw3SMs0nIPIm!9E27#44ud0%- zKNkA&SyqBNDk>N?sO z2%pLLxj!y0)OG%347T?qwbexj6RuHjxR#^gkfKY1F|7zsvD*EimSm zR}WWz9FiOTF4LN4El`E6;vd-Wj6Ypkv^Td;zS}&lH5V@LS2fRM@4`Ga`cs<^mhI)Y z8l3uU_7d;>v(8n%6+)_R9Ow+| zYx>0ut#h^L9Mg}0<1}Q!$ZI-3ce`q=-iXfCH%nV}Jzzvt?1L$^?y>%HI0aT&5#c(-3)nr30w8>c(X*5 z!~DJIqAnIV8;uMlM+qoB8DgJp5Z3)U+`KwGlPbA7^|?ROhh|00sPgjHh&FB+s|X8+ z>zNvs{o<6lX|PaR0hA`TrV#U;j20&!nITyQbZ?2T2u8{@-YPMFN(02tW6H|~4ZGfP zm7ye;AnUo)pE}L$E^g;1K0L7Qq>#t4gt)%zssRAyc$KQ7$u!WNdJV?iz0J%s48l^oAzS~r1;>oyI2awFE>)kEvheY+5)2SNe4T5Q zNtUF#k)%<`X2{G1Of*JX?AM1Xsc`ya2xe(=kX4Jq(D-XWGD(50<16d;Bdq0g?03j# zx>$MMdH+H-MijDc=F|8qLO`dI`gY2Tf3}ylFv|ETGo?Rqy>iz$JxA(%^)zdUABW2n z&K^uQz7p9A^)x6y3YsCg@OSVwvC?fa{qZW=N8Kd8S(7t zx&S>80HjbImHbe(Sf8adu<(jMM3I^h9~{XyO);49V>Cw(hj;Mp1x=YWz3Lf0^P&A} zig){-e?tiO)13IZ7x9iOp7weje94?6XwAnp%&O2xeUs`<8?^E*u$SVshe2{Q6HCZ`rL=FF9@fmdW!44y-8%yhrWq?45z`29SD!(XI}C;MD0)u z<;EnW|IZ)@hNivZ6g1)BdG`|9GXaC# zokhp1*hz^1 z2e7{9ha*YNa;hRInAtSEvDHv!*`2&BJmHTWJueo|d#HK&c^6Hl$cRg) zPnof~!_joR33xTU>{XJ%EeE=lB`w5ZA14i3MfH9K9j|{TCs1YKb2dN5R%0R+LM;?6 zqxkqs61JCbGM~bh5@M=teXXpcHu5Ud;<)0%StPLH0AXCrzkWTVHxG9p(PU~Kor(G# zv|$bt^C^Zqm1^IccDTBWGzZ|7FF^dG7L(hPU*_937#H;Ieh}VsGy+y()^WfLko6np zsr72{Td6jelw_dcmcV3wFJnaX3hB{El@N<4Ct;NAl{E(bP?p8uO&b+_+zcx6Y6ny8 zhu(j_G1Df*V`n;S+S)&P9Y9fX3UZ1FOR35;nL+DG#$_6TbW;xVU@8OhJ&MVRJ>1l_ zt{b5{$43QFS*FZ4P_ypH3A=xGyK)f`sX1#Fi!8PA1IMX=c^c%Ov6r)xd=+#=VAzBB z!F9fUDF+BuF^(I`Kv2P1mYs1`vE#I{Q?h)xG<0Rs?7Zu^1ix^unf#T)b>lD`tGF6^ zPopivK;`uk?}<tDhuU ztm$q*8gtlFO+3w@D)!iyvjXu6Rk@EH8--eH>W@Gr9~!e79#$73L%Hav>QE(cKmZd( zNy_M3)ykSox=yestfZ8$N#?kjRNGkzl2mA*EyFQ!vgtOQyO3h0&BQV=BsU}wy^4OK z7XVu6$_?h#4A!2=?)*J}-hG0NBh8^4HZUb61LtSZ+bvY?XPf(eBC3Ho*VdX+d=)gs zbCo}D^}TS>|0Dt=_(v;X^^gpW!V)#W&yvF=+TIwwjv4h8;Y+;t;I#WT$u*)3cVI>M zrCZMS6rM1BK?9gys>`h+qB_lk56KfiRuUmirsQj5C2#QRs|H)Gf49z4(Q4&k4oxSx8_RBoRC%?$eG1KViCk6S!Q z5&d{S7KeNm&S+KMpT|k%@$q<+2|MdBw4arhDFbl+F=+$^%;=W5<32e@sxD?iss{p4LclvKc$-9};^I8;~OcSqttvvJVz@Q=^77c|xGEthTi~QUb5-BEY``4E>2!Awnd*=JS?5XV| z4_F|G?wprgRZG3v@zM~-o8{{b(YWEWzqd67O$O_AL|nbAeVZg1@D@?7Kn?cK^lLen037;k5BDG%)I~ktg%yw&_`75 z>LNlUM8sUM`sXwAHP;+Juz>}UcUk34E(g;5;B`y#1SRr~5Vba`5c>>EuV8^X#(R${ zjqKiE|9V<#D^w{uF(8>T;{uL)a!w?BbAw*bI@r&9K*A-om0zCudzPRm0G2ZVHB@|S zpEb`9S&$tSkij@JEOl^YlCM@2aZbCGoQaw%SuW)YCOnu_H zt9;{G^Q5x&yfmtp7hlsN5Fh?6ZUudgQYSUl{i)2(3mpbqh*Olfn0`{%=P_WylhDS5 z5ER-fr1G^t-zQ6kwxx1GNd|j}H$g%vrC2T&-@eH;EXHyt5*P=@jg=f^M(XmwgiF5K z$zMsw0WboQaRD1g9iCxB*gy%^4)Vw`JFH0%yb&@fr0M_U}em$K3tp6f_k!k#A_{WiqZP4GgrZmOGyT#LVuMfO$ z&>TWMs%gKP+&VRneUuo6d58VxB9k{=`Q=KmP$tO>a6)BA+Is1SA7YWux-@&sxo)M@ zk?{T~#evmG!VG*gfRrO80LZiK*DTR;eRP7F_@$~|6=h*SGZKv|uIX_FE`?L|drIMe z522P7$l~SNS@WM)Pgy%p!(0_V2ATKkk6+G2rnH0XEEbwM1f2KUE)AA8TDUW_XO^%3 zC>3OkIVYyjkS>eyjFglgZ})GaE0mAPKlN7&LU*ZosKfAYLG86ME{Ew-NK<6aIw=L}A%zsL{vmki>1XI}A#h35<{T9Z`8tU9C)qse>nmZ) zn3(_E|9Se)xu}RG_6IX!QlrJPkN_c$vpi`GaZ`c8J}gRn{KZJc&_Uc>kG>k0lsV{yuUlPG5sns^>0L;J4&c>f6@1%spyi7xJ6Q zn>BPqhMdltK5RK~RMC3$Lh~lYEq+}VMJ*Lm&_Yupr!5DP z5Gk_j6P|v2?+6uB2D_9snb367l*#|k&)g9`!-wQQ*B3Mipi0Lg0*IlOGXD4AC`DwS zQ*aOOLyn24jKGvd*Ez3dnWT@?$t;0W*NM;Z#4e1FdDrDjLTepehgF>Nvh$3OBjoK zC|63f7|+By&V8p#>ZP2UhC^*E06Kk~E?qxoRmYx`QbXfCoCHrJw6B*~Ym9jhG5xg{ zpQ;NrT9M(C+2A_1Ru3m8+r$w!rs|Zq725$wP10t#+v!`g)MWR}jqr`xt(;z2oJoqj z|Ic#~LG;9DpX)qAR05PD0=%KShfJ>`R^Oyhd6ZI$WBa}j9Pgr#maEm}MNXyjKe8n3 zVusQ`xjOoBH1d`eMcZ#XEUrs;=?a!pv3Wt?F4z4Gp~)K&SQ9#`m7F!CS0r-wRurX2 zim;^aZnMf0uRqIS09K{iH=V zvk3E8!&l`ns(fXuc_y^o2Jf_PX%7t-lC2%(C`hX?XpieB_wNq*cjeD+O^c#%*t;Ma$s1 z18%9qlCGHOrWzJ2IF^MTh^??eCG6t(A0NKosBZ}5-hn+t-v_u4E_$50j`xBBK!0l2 z{^q^U`#S^6;p-9C^a$8>l24a;G>JypHV{LpM3r5pB7!z(xMu6p;cLVu<#%0ElkdN^^!dR7jXqAYe#BL(k_(@e^D4ax`( z9PyFgb2xvrB0)G<0ePjz-~1wC#Z(&=O8t=iy_Yo@c(KH4l~4%GAzkB}DOCe<*P6Jb zy0*+bu?=+Z=}zu;wGv`OWIVLUwc)ZEE|+ya9q0SxN#sxoBVy@bl~qH0QdgUivpv+m z4ud$4%qtT1!L?Q-!_nRx-W8(h6)GxZNwzYKLR%c(M^2Sc|9}cv#@a#hr_`m*XG7)N zjKsel36*DkSH|yZcJFMV-|&IC!Ev8d*1)k_;>>1T1mg`(Fa2;T&n#B>WrP;Bw#P>H z{@os3A}+>XtgI_*>BeHTWOr`iW63%S2dZcgED1Yf{G%eurd>(ZLV^&huJdFliYCrL zEB?<4ENi0m%whIDG^h?t*T;$1_qm?(sOt-^*o%GMEhwqJU zllC}Oj(*u|YfVqM64V_06Ph}YJ#H!x2FPvMG1EI5X~_z+XD6MbVc%xg?54T0JCn5N zrV7A@^7`K{OpsK*@8I12f8H|}qQrESHlsrM?A!bV=0TT*0v zW!@J5I+)`1Ye-3>73-ns?njv7_4T)uI1;(H6~9QC_Y#WvG=wV~T1eg^vmnWPs;RJQ z6knE)4}_oS?JCE8cuhm;_o0eSNF>vnGcB*L&XUWsm49O@r2( zd4C+j1tAwFO$Nf4Ijjm=VbY#)NQpcW?j3k_Px`@5OC#F@N+J_+cs-62E=I^T&FiOeiN#Kw7zYBT0;Ztz`Pwo139>M2cHRc~n zCY7$I74B+NW9WD$1>|SOAtqpJ_~$F;+Xojz@NGM9NZo1!Z`A`vy7HvTjHNJZh8Y`A zI7PWmsvdP#w`r|ODFEf=yf}P@U8!h(bvIw=(Xq0ULFFVMPB==o9&~xzL#d4fyLy}@l4e~R?-+|QJ~mcm zcda1mREn@jYX03ll`q&K(>c@JPsDKXsC48|r2UEZGPz zjk*aSt2iiU!&yWkjYOq7Ez+GmRORiq>#mh4>DBQTM8h4U(k>zYCY19PqK+5##a@GVK z3=%V_^p3%Up*s|qRidE;>~iiTasUdEP`NNFKumBlk##DJ2lu_DfFc%$UT8lN3h(Dv z*qoWJUVzDTWU7-SN(>B{K}V1ifXVlr;)nc|G-4 zT5Z?uXEOQDdQoo1mzs=)wBAcItI^Pc(Yeu)^_y?zWY^S9lbN^sq)2s(IsRor#9DVZ!oVz@J zoeRWUj8#*x!yTAk|J|86akRQd?6sQ_z~#9S==P8@c(;FhRmCEU28`i?9u3b98GuMX zRniXv)hd*!2~e>^of2ZGK!?fb)C~hfY!qbp`1sa17`$>e6j&H&=$MH}P2Pm`z;HTp zYs-N-Y&1DQl$0(Cp_ElD{)8O83pySRx-uc>WN4^8I;NW1^W&n7l>*?zc3(LTpMc*p zLQo03o9ylRy+1aA3Kst@JsKC#aDAI5TN!~tnFVJ<=wCpNZA| z%U(vsNtHRv%u`=kD}p5o>6wwqd@RHMHf&yNWkAxZF!_Cd?Vbtl<`i-V11IH(_2* zE8;x^u@CdSE_QxjDTdPvulhz!rZc#?ARgHYO>Uw>naw`EcDWx7t2Qnip!9+#8LHw=+$5t`(Z*C4J!o-11Jfck_dje??Fa zUtxgcVjLiw^{>UsknQS-SyB%e0jNo@OO^BDvIrPrL)*yyWR~t?e|5?8Q#8$9HNdzc z&Ty5U4&6D1ye1wwPGR%0=N+Y#D&%F4Hp+z7oB6%5dzW;0_S?eAl>AI{PpajO^OrAE zny_Mn^tZ{UU&LoejGX126HiY>8rhoTq@iRyL5E~KU2v8>xu}q}N(+Uk{~pW~-EBka z^D|9dv^(qUC*_PEso!d>OQtZD~CLWSqex_x{6nx0X`H;UIsF#>$BVOzD z;Zoh}<1wVUYT#31uuj+JU$;QY5eB(Bn-Rn)rl){p#kEpTQK>W1Okw)!z^fN^ED;nE?x-s4Ph`@x+-}Xviemym11n zclzJJI*-=;%Y__qG}Zk_Q#dMxO2FDmkQIY_Qh)Lk963$yAOXwi9e}zGRUw`d^(XYqxmDiJ_Sf zU3Ry|S+!%C(Bc1oz;H@x1>h43OWdZIXzu`9#?&3xm9}Pl%?N_U|#tB6uL0_QSpxsOk6-3qc z*A@1}=@iF;UL#`Mc;u-gXEI&^{_BvBr{zQK*6Ify8ouD_zY89d)EQbpWpwh=ad2@W zybzUztrEQpc2r_+RJ`}r?fu;kyt=4@0$d-?3>0{IxeeThx7=8geqy9YR~@-Yg%xcmFsA0?@@n5^xYR8e<)vGTo`shv&M44k2)_A9)EN62irwsj7FDW9ScimcDb_xV@!cmsb{UlhpAD{!L!bLfMaQ3Kx6!~h&^PrH{50MKZsj&WcTCIyU z%Jg+NQ7;SQgElo(^j5;Mo#p8^O7cB2S`N{wnEU>^x4-hPHtm{J*xp)$D5>>b9vVk4 zIHyGHLYo%;Jall6n+y%#77v=~LSKrt!}!N|vvg13dPW_{A?a+Bc#WY$;9SRq!9)t@ zJp15-!T7hUE!}_T|6M65NDuw^Y7A!?=XYD7!|%CF=ACO$#(Y_VyU+vP{2jEbuZ|Zg zO02x;Xn$%q*931|?GkEKDn28RRR9fjIsDQ#ZVnv94z+Q|SU7moq0HgQ z{kP5k(5oGFj+QGz^DzjripXw+VTiYE9{85=DC9 zGKo$JcIsrFSLg3O6~gdpk!DO9nQ(5!WE7^Ar(UCtza3k9%B0{fAqZO|8(T}JdIhP- zmPTUMYVa24-@ms{16*pFN_Ag_-aHy{E5h^i9oVzT8{#T>Q$rK82ZFp;?;3 zAVG1CRDp+qJ!KAQ8D=;pOC*^!k1LJbjV#uNy{S@Fpnq+I0sdDak>H`bvLf7BeYv11N z``i}M+|jn-8UTHJf^%_T+MbnH)16=SI={edE&8*uP>bVd|JwTW=F^QX5>djkPFH~< zN6)-?hlR+it)BUXIw$TsMe+Tm#DNdu|^3;Awi4jR{}(1;B_4JxO5q8 z5OA>Dz(}|S*^N*ilxl#C*ckb`pZ#X?g{abkqN&Y)v{IX!ZmR4HWk}an$G}oSIr|1BbKPmne8^Vvmq)W^8#T z=fni;=t!39lc>1jm81DlnNj6s^FS{Q3<@%Sd?vFt)?Y1GnW2P_t*#|ETxs_hgPNDv1+bz`#68m1AoTC;K37` zS3m6(UInG_StTo4^0fKdbkYRUj&lwRG;<}tUzEHRwT1qgW_^QEOYg#s){N*5SnR#T z$ZraQaW_J=x$Mw2DXRB$6{X7zIqj3T<>q$l^E)r=opV^1t}jI)&+==aIb&GhqYPnD zSff8RK~O5S5Ek011+61TnITM}>8ctfoD7t&kNM39!I~MKADj(o zD`iV8s}`8LIR$;;3*rZot2{j-W+rbP#)rF!&x!41vq;=2ok^&f9f5hckbAjg()A_t zN~JYJxk5JQ?Aq=dv@FZq;h}|eE|{nTx@`|5bSf$k)fV)bMM+}==#@FM!-nh13B0nXh%mc=5_93o%CCn^}%U<9*YWJ z=3(Pe8aX|k(39vADzh#`^DjR?y_{el`@0>8`o<6`5ByHIgwXYMY0;`QU;jBaItzSo zjp42P>obMo6^7zPYP1<+Ya8vLpAGCamARa4Pei7&!q}*Fypr{Txwl>KV9RjQ14A)3 zO=Zwo^Db&a0xPHM#_N{e`kvWXmzeZ^QP75n5FpPk?)-&o!ob*1*TNki=RI+24ujf( zW*4##e9J8T8LOXOmqO z+aB%yiTY{zL!9DrxKKHF=WuLMY=i6W<=R~<1W|npi<~`jgcg&}TT^F|Q%Bd-oMT&r%mB$kAd56^OsiO(n}oRwrz7c+KJCwz5dy zxSvtS2R+DTQDMdtC$s}Y8C_et1>5J4j|VYXF(2H&C)+pScSj9-tg@%bQY-N)GjG+P zI}43H@!CjXw9v<&fMLN}Rax0A72n{dlJ$Ucn14?bUkvAkMdB%`*Z@$`&4evl!a{kN zMo)|xnw6a{6UBbmO>c*QSH8}x@5MKDaPE_m(Fg<;qPD4UQkmkch8ztIy|z<*&lL4) z!S9t3ljf`>+iRn+?(7}na}`=qHSNQGufF_97Ta$c8}Rv-Ls9N0by11>N=xNPNJb8j zjKz{em1J&QtZ}`2zaeSLoqJdpEEoGPA1=gsx#y6+(p(~J5KXoBZ~mH08n+v`S?OZH zqa3vTvWEd(_dzupS_Q3OY}I!?7q6DKLzPzkC~%7l;uEVjl(CUdh%_UxdG?1(#rX`a zKS~afu1|%FnuLz)ab1pwuluc18TG~ZmE`9cI^a(aY6d-ex+V2(Z!eIanfP~<_TY_N zCP1*tY;NNxJ+;Mo`zzk0h$nW$8hpj*{@_(gpWE#)+50%8KicDKKGoA)j8O5aeS_ET zYSP%a(W$QJdU~alMQVDoTJpC29hqLYQ zB2oYFo{Kkek6DhtU{E&p#~F0$-+Qa0GKG(4m@2U%c29(bR;nzMaO2Hq2WtLBFGy9q zE8O==t#Z|qNQa8lxe$UAC+AC-&eRm<>(ZoWusk}FvKQPUO*@%XQg6sCeZF-cWMS75 zSHsawFE|lK{UBaa+EDwh<+!ljPRHF&o9J!4s0EtfW(K-0QTaeUHCdiywS>!s93< zq|csu0m&6>i&VK1tNSOX93{-*fn%??{$~C4kD*y^82N|ySVW3@<O~~^iAKU_(?5=)OXQm8XFQ5->K5NSUBuEsq1JW%l9MAk zhFa0<%uJbr+$dSD>f}&Wju@r%%*-!uhS_DU;XuJz)Uq|zB^$wH1@^oxQc_U?D_`j; zUbe+aQ9yXIw+e|T>oew2$yo%SGgsh`m}nesBSE zT1gROBd)%_i5=iCjh=QEa_ z1rxsCYTdCd+}`1_)i*2=0*xya^1+0YakX>Qt|s~}mp=UE`~2?5pq2}C59YY^a^dB* ze;#)uk99sbX?7SEiXM`Twm%mOD6T|ts8OrM5u}JBsj<|kpw;iHv${tRl?M2F?=NUO<5EHZzRK^~hj1FWNKI;Ent1!6&@M0j zs{_ij8s} zlX+=-a7|~+s1&7x$Q@*KVj|$B!1Ls6i1D2+|@bs@OYBppU{}*=qme+ zjgJ64ERml^n^L|?WW6l-iQ`8;1>H9qtZzv)v-1gWbmGV+?%*vv=hC<;&s1p9B;U~N z%9a@ie@@jF2(vRT{Jg*iNUOw79LKTN6`k2WnR~|+7L<+3FWS>-Re%z+o1UwHhk-Ts zf1j6oF|Y)(Uab^!i@7P*bv7)(iod3$M&r7bF}o28P&2m428U;j5)++#`(88kslDDr zm+KkE=sGmGZrWGf&k5PdYOQI0omzdTfKgXP=MZZ<@Ff@JqxVu9$lg2~p!6gmbk%JX zkcnxamutA3<>eT|d~Dqrrz+N{OA69h)l{#`yiY#y{cZ-$bmOn8qYM5@2uRYjd*Gga z4&HL3)huefv-PoJnX7K#@yT-4R9q?#_5M#}H?b=#s)3-8tb-2docg7$qhl6^lS3s{{YKuu_4_Ec215F-u9Wl%bn%I}OVgDE zz9`@=(lWcewa6i}08+j=`Z}>MVLAcE@M-3-dLtN*C^{ z4y_2BBLj(Sb6B-XQj3)c{g|2|SJT=r=yXMPF#AVZ-6yS!&DZ$S_ILjuJ-M?(mY6(a1}cH)Cb)oJ25r z)9(a$8a})r2ZDOrj?cW;S!OB*U61`1Qo66pq&u&~0)Be_bqbKRi=ND?ey5B4mEAe_ zsdY55wN916(@X^l$Dt&ODX*?!_%9C=m`UW|B|H21k>HoNUmy6YzHB{`JO*s;^R=3Z z_EEPfv_8G z;Y%cclYoL+D%>1QzC^+s8K<^QCxkaxHmMoZ@bTmO)_O% ziO~V^LBdh!X$AgCBcZVTk8)U8dx?$4{*;73$X87heaLQ`DyGJqJ_*U1nowfYWJH9< zV5eNuVVT_RZhj|lT5Wl$mVmR387KYljGik8KtXPcMm4%*8XZB94yX1LDn{Yfn6HPp zFG!Fv#_W!ZqRopPGg;Gv=Q8wtK?aB%(6KyDzD_-g{b7tN%(1tAVa#8?a56?ywgP3G zVzhlOKr^3RX-h|;6Hmc-S;v`%+UwtY^7l|)32T&%cJm0X6(={OrZ6QIE}D5K0K8O> z<5*S^xmh1TQcBM0l1@m0Q32u7_~c6>wt%)Ep`l8_ty875w17pRgd*kshNuM0j#M2$ zVOe5IL7~A?h|b%ch{Q_f?=Ml~4IIx??9s5*FZ4fB-R|rlAaOk`reL?HPEjqPl@mgV zh?rWIO-1Wi8#YL(kO5%wM3f3vphV&0+@sAEt6_=f)SFv@-ZxWhV2~!NUje|u7IM83 z6Z?XslM1$IGB2+Om+VP0s0&e+uK?b5c}$#kzHt$CE}n!!6ZTTsO=n891Q^V-DyIEa zOt#Du8#*|8e3W~0IJ04BD9E-sYs4T2ZHEl}!Y<&a>+il^^BXsU=bmsF&CkFG(Kl5+ zm%Xbkjk!1S>1!2x0Xwh9aTYe$s9f-e5ayK6FGny++tG5tY9z_{08|^QBAqz;O_*Fd z+8jzGQd6iu?jESjOFfUcm;Jwv3%lhHFNV%8ij!0tGddobWViHJ`ZDfyD$D zi&J#~Gv-qpFXw&bb)11UzwpQ?uw1M~Q``_N2t^qo?Ltk+xTt*Ty;&Hflwh+lK%k>E zKb!I*-{~hq`^SSCgvfl#oFHdZqc5(;G_#Iw&G7=VKXo#(;eR4g`*N{!hG_v5>Bp`xM9>2&&zqkQKC=`Q8La1RsH4@?;IKE39QkBdDSALz#&ul4vv1# zU|1`^tr@Yd(3mj^cvG%icx67SO3;YEkJJtWRVVTr9U`}So!JMqLOez^limb-CKh7} z4+k$YQz&ScO)(?A#nD)CG~t_xTrUAzWJ941nmiCC-A@)B1y78e#|f5%Mr08|3o5M0 zV6!WNm@C2AWYS@7+o&i8SK_h;&Rx7LlumO5y0WQqXblOn(JYXIAia1Ym+WCm zM2?{yP6jk)h$x>XI5;dt`AJy>7`@NYx6E3 zND!tWpvPDJ&Nf8Poefkl17y63mD1l}v89*a)0T|JJ2zSMCM1$q{%rEdiXVHdlt%F+z>=7LKDpc)@i^CPUWnG@7tq6@`Nf#yM}WjsYE7* zd4-w%IJ1P^j~Si|-8Is_V0zKO3T~>PbJ`v|N8lgGbB(-8djB=Vzw5J&=BIGf-}mtd z`p{OVUA>K-hY9=s4DoC6?*V62iiC7|d!2-hR=A-zCv1{de_D7qn;*aKyG_4aE*L8? z$ok$;8E$?&`~LjAFTQZ4^Q%%=epHiBds|NYs>ZOZ!ki!7@mt-VJF~j}1)WRxl@+^I z)7>qgMfH`fi)ptbtoC616U$!P_CLH!LiUWS^dW={+n)|aNwF^G)5*~&ON_=~x;(1e zjo=Z|WwX=ORestR*5KfW>%V5pvMf4VCQ6pf+P*9;1Jyi4B=$M-$J9A z6Cro{it~oWK1$gaz(rM@ZC6ZjEXWT-7&O@Zl=9diq0(?53f>Fq#{ZP$KD`;20@UoU zSG6~N$C_}YeCm+9wW7-H4E8Tn5jm`qCO4nQm<&qh6aQ_UBO!orYxj2;7wX?6Avu~*aAyx zS1WAJIGofu{q%FTs!~;11?)xQS;Qi5RX&7rab&#?@NT?orERd{N;LFUDH48ll2N)x zKgOROq9}c@o%+hRgdoRR_mU4hE`MY;x9KyUU0=EkQ)EOp@Ak>qX zOyIkb2ZnM6Ssdwd?n=bV7(hYe!WNB`U-kyrI49GOB&Fbeq9z~z{C?#~yJ(u+IfZL_6 zOdwc!vH6T7vsoIyFbm4ZlKVyp>*UTq(nVK~DLy_9RJ`E?l!+z(hxZ&3O8M4u%qXS5 z`{NyRfsi0ZzW|LH)vmZ8VDw&2CT5LNoZ*$d}2uM!7!i6-EQ6K+9g1Ku5nZTy3Fa zyJxIolfg-l=UUR&&sMK@asJ%Mc`OgvGD6dU@kSXS$Hxt??|M4@N;3aG=#PtAZ+sRwM#ZqgrQEWwuJ z;-R&GHEsV)_HVutk#&ptZ{4iFmEr9@ZNDZgN@dZrG zl>J^49SaY6cx_a4`R6}e;rhuu$4;Da{pRbGR>J$4iBF{b9UBM%Xc(?xEpH`;wi%7l z|9xOrz+L~|ivYh%%U>PtE%3Z8RmTF5`3Rf5@7b!xlbt-Scw_c~pEhhQ`d!<{9&Vjw zx9<@;8eS2WFgZ4s!Gk{z&8e>VxNGwD@v#$8-sx%9t^T{2zzOUe@kA*p6&A3Zv9Sr8 zO{UI|R}j_D>X5|qjbiPv#+f^068>D##x8zav&^3pLh2y(xxzm+rx~q*&w23_xxwwICuc?xPYq&)68+rK@T2QUDWqQm@;n2Mq3y8@ zHYr#~QBhCD?0s~{*$WpmN35h8MB>8ywb=o9cZ&Lq1fU;QYLoPxu{i_I>lpiVjJQSRH-?j(}zdkL{SHK;E5gl(| zY+w;m0Qj?K_Gh^+$W*BvytA{JL20D~TP&>58x0!0+}}NiK1C|mcG?QpAETBUY1hJ( z*cCiU1za~KO9r}x)(esz2gZ*@T%2thf1WXxx~*)~NcL6axORwgbi|DBe9q}rg<_~P z!4#J|DNG#R7hC5($mF4L7%X&qAo-8k6GxB<_Cm{$l|9ecF`U3U_2h{GFj_uQjWi7f zzQeaCHDTlQ!a$B%r4$a53p~=xbsRC}7nXrKPhK?OhAa#v0syLQ2YH-A#7y>C-Otcr zida_Nub`Oxjs)V7=0o<5W4?)YdLhzDQ@PdP#^#Co+roOj{YKokJFvOx*fOrkzHaV& z@1p8~-8)U$LH4DmN*?}*@Kl+Ijte_f!P+FzN6j`4oRTEJ65}YE*<$4}Pjeo4 znKR!|y=Y45F(D$N7S*vDV8|)a{cgpo0M-g0Fzmeh!F4#+ZVNsv$HLslted4cULBaL}GUR{la|fUhm*+2<789|Ju#H zN}ZYBo_+oC-!2Uel6VdFp9B;O*t4TA*j^LJr3(uSe$fb#6kQsX zG%;1Dj93?5uAbKUcEz?&3_TceTmwwL4qD@<~^z1*XDYO1hHHrmP|MMbV7)R@2w5 z2{GJIpLw@->MzNpAKW*)D=`;s;;uk*e?rk`kF5i#eSk3uvW_uDrt?18oh`E{nKUpJ z)nsIz{nXU&dsmto`~6?M4#5UUpJL?qkIEE%o_3E5@|IIrN6SqnN0a@t$;Cf1aGJ=N z1(Fcts>rZ5kW5uP+A{CkVDHnL>ln#~;w5}7iq~`L#NSZO)A$jll*`D@J7Y+X%L#O# zEMIQd18(bm(2bri^)?Xfazhb{%b+HN$ao7b923roELCdGKZBzPcliw4V;ra~Sh@4< zzL1yf0VSf(2ktFyv5zsnz_j*wp2J^T@r*;XbDv+XEDqiAfIg+hoYPI z^@MDST+)MY>>YR|*;2B<_G-$-m_%;40`8c1GTR|7ESc~g#jI|F&CsQP@wx@`a;G8l zGiT0`qwRZvPK2XvPZHvNmaTZZy(%MKffE@;`eFt{omBnN3SQk@W6E~nV6w+9WG1_{ zWuV=jG6o?rg}`yWf!--fS&`x@ZZ;12%P!P`T`n|B_;Zf+pu3%~tR(MxWujuG6! zNHj`7u-&(oEQ?AFo#PQk+a%ng>XcZv|JRc>VR}5IZ!f`bt4##XjUik{gWy<9kY0)w z2E&wTc~#749x8VOQ5T=eF)1oegr zhi*E#?R3t1Ij1*0ViBLmaVAaxIJNC$+5vx3^p!wp45#L>o@jyQJ!2JZ^5*O`ysJ-iZp}lsn7! zKl@`io#EKaO>YVH$nAtN(@0ye@z5_J<2(mu8;ibqaTyLMV3Q4SNzp<0(`bRgd{=%e z0{H)Vxl0i@2_#;C`BP)y>`svHOn<8~l(E`8PzsNNV)YH!bY=W&OjAX~slHAHkBPsc z_a*x*_UJL5@>034W=*Gmfb&KcYQZk44ASwOjbaTT`va9E0gf*+{5^#4@TX(Ot#Y>gM*IyQ_cm^>Qu&d{GZrxrCvGnBlvz&T>=A$ zZ^&8I@MHnGNo4EKtecAlx5mpU@42h&a_y z&<2vMsU|cf5*ax+IgF7$F>^28LG|<{uoeedkF_z9cNvr1GpqD~H{Nfzw6)rt0#c%h!*;`u}_MZ8i*H&usc_q(*dk#HP{FHanPpo!if>Ugk zpo$gUc$y_d!u@YO{sCvR#90RE9a6DLs^dQ};La$n)-=-q==g@ReF*b;xq0aG4BxVb z6sIiIauFp0dOn=frBqL((IRJ9szd-LcLZ(i_6~?5<86G!8AT@D(Qj^Y8AoUszH(V& zuSqr6?hCA>pRHV~JMd#vpsMylp3wY(m7yJllEsbqvYW+=v-4=x>cQV0XLEFJYVQuX zI$SMFx*k}0`*&wQIO>~YFtczzlccQe+ekv)+Ob6f7Kdwe0}R<|fa&CW|LW(y$QmRZ znV-cE{qpwWi4rm?O4^ga7V=|LfVu0!|)V$*HGA!L1s7YX+1Hmq*=DcooZRof?4K| z;)OvR@5`tmA!WjtR+U{^3ypozVRN^pr)6y_;s4ZD?$XbDC>`b~vx+~MJu5v1a=nv% zc;m!;{`qhBmxn9Fm#z;@g$PaWAD&sxFjS>>jVHw(6$#_K&%d*>7!G+2QTvNiDS&?v z@n;o4CxrxDJjRTa21lQl%Q)@dEx%R&i`NCn4-{pIe4l}7lwPXlZ|%~&*=(#ay+mJU zkt*Y<>Q<0nCj&UF_-l{*S7(+dlUjRYO$*UhJ8o#Z>s=&48)7PKp1Zhz6$<(3_zSvR zA#D~BvjjGx&rRb;#dU)7^Dzl|h80Cxc(brd2Q-&{g-hP|kdSRd$dUzEuAdn|S;ywE z5In3|p#E#Eb1i_(UrD8*?t0Cm>e%9qArR@K4!)sGDk8T{BL%GjObR)piR+ji3+?c2 z*i>o$KfkvEx%&70WSVzgx|#O(;#TIiBqAz3V`fFaz8Z}G+Se~RCy>*l22ShJ_L{c7j`2?O>@dPHuy=8)cckLz#mo3#$FD;k zI3Ntsytg0Lw!g4+>q_{y>mEBX*64*@#$Fv!6gWyF1rE`&Fh6LxlYwhqV2)|ttY36Z zM@t|Tiu_9wpdi&c%+dEw+F^4p#T)e}0`Xg=f8P%NE%@&VA@dcpL5X^3f`lIxmybY1 zkVY`gI7{#ZkFK_j*$>*ngtKNUgopB?Iwscg$80|4X2`$%+!AJk#Qg~&_%*`u$yJW} zB@KlVJijPP%b7{@UXR*XPxH)GVyO#cG9>_5M0+K}wC=@Q-n%YXom)d3V!eIev28 zMkVxOKZmvBs(-r}`iJ)#;wKSq8I(1za~aJ)sdTKpxRsz@G57j+y0Vq;6Ei<$+=Ov5 z+fmm_!i51Oowu*jyI+7LNsZK%#O+?Rt&un#_oW1B-(w$!B9Bv|hJqFBb{j?T`QGW8pKsrawDGtg|Z7HW77uV)T-1eYtSjjcI zHS=rCF~=xfRPafp8YXsmv$D4^1__H!s91O=4!aiAblS%yuK7nI_NnUdkQ=j)ocff> zNqDVaIX0G%(?Byt*WQ1LxiXzxUmSjiJs0Ia=cEQ6fE=6-1H_bIiP;6LiKT=1Lk%nK zD?T2Ps^B`0Jm>t!qFfI*I0_wE1j^|TD!YI2+6GH;2O#6s9ZHS0%t&x&p=Pd)Aqx?R zmd4|6eGiFYTMth0GAF@7KTP0smgw)iY7~w=TBeYB(Bz>?x?%;W!svJk3UU$XD|odq zut&0%s_|PoQCz8u?34E0$6}&JTHhIG`ySi^i?CSe`!H_W>mMlw8VPbaS+fQ>nOuZF z(lifhUUw84QS1lT4j7-B7p31Mp1SYaoAA}kl~|q0h3m|fs9rh6IX&J#FE1xiGAUPpFiRn=T6FN;PG(KL_Jl}Ha%1Mp$w3tuk}`BsaE$A}kd0cB9HBrL zmh=DXaa}<|xqXoP#V!G>P2fGFvKoE#tK|fkpMdH;Gn=?xjGV2r(zXAd`7AT4nr+9O z>38z>o3KiaG2UnIH&)B#40|9ZQMJhLzwPze(V#p}vR%!R`Gu{q4t?%Y#SPUp1V&z+s zEtvd0e;myDy9wkn_`(}Cb%t>6(4Wd!AfM4APSlEQBOY-2<#`v>;U71*PA}WlY0@)kpFfzQ*g)#HM1o&iSIo#QL95c?YEty&2JnoB``IAM?xFZ)_c$%OI-6bIp zZyhML$}eEVfi9C!mXch}RW_kz{O3}Ay1Rd~_V2&HUV8p1Y%b1C+Gx;t4|(l_;2y6v ztJhh+eT6Yclk}Uz_`6Tlzx@0l9xCBsIcAlg@|N)9MWR%WyUyc}xQS&ZT!0ta*9VTG z0korHwPP3itxB%6fgJ*k7*Je0T!9#C+U8usjCjnuydHaW(F# zoh*_okwt%vnW!`LUC%_8j$l?XGZT!<;Q>^b@Z{s3Gz<8A$`0fZ#?!lRhSvXVyXoiB z-wbg%Ztq*W@9FhVq=6mOM?9 z7zS!ZEV?~44$NQ77m)VTwxAuDC#2Ubd=fr(XG1|AExLuYSoC{%G5p^2kfCHTMDlL1 z_ZQqCo$nW50ZN%|GNg)*(PllauONrygCpZBkqz;&+yShSswD!Ve#CHtX-SfF+JdgX zeRIr-5RPUd3j3XbnL;C>CC@V&0gH_ou}iXP?{mAIkg6zP3#GA#P;*mIo1<6?s;B@M zHCX91<@x9B$TaDqwImJa1;~l2>!c*F>?L67i3xb@HUy}S1vUjNl{+ALEa#714{dWy zTD`_-B?)?JJ9LVEM|?IZyH5gI z=5e%(TSL;Qkk6#U;YZ}{bblK<^^!%o9DY{J30_(b4tGDH7BgiCvQjl8j@*T`mNiR3 zdRzbIpWj=ZK>YWwK_hvo#-mttM+qblfKY@U+1zHI3`?HOn4qyfbZKS2CTR>sDuB0U z)}wNA!XX)#h!f>g9W#P$_)L|LXs`!y#zj+j9Xm*#b4vURVdn6aw$4Mb7zZ@~bPC_H z2<~5zCt;1JM4D0Z63vmLics5$Ib?1yZftE|`+U5l;zQ&Z7iKF^N?GhcA3WyBS2G{K zic{n%99>6?h0{gzMs4j9yOech_W!MJ*DDRL{WI0M4xAKjl#2mIKFmtN3*?$Uj zqXpRplG}W{wIxAbbm#f8l9%uZNJpiqo6zp(m}svDo9eucO3vCb`!gSc_`?d_1Z%#6 zl%o<6;dMn1v;4(*=ZBGawb58O1mlX)BPeR*DG@gEXrv_hIA|;VzV$5M$J37Ook@PZ zT+M{L{F1`i=SC&8fBpSipK6KF@UM4Lm)3#`1OiRu%9RrmiG&Q^0Go>Dzvs!y{7Hz?rqgcWs%`EHN zy)3z{%w=2{q`^@ht73eFisE&ZOQm^aDgmC`gHM!mC|{&;g#ET27!%7n9iQCdgMJ3S zIwmiATf8ruuFm$evBRkqydx5!hi>F>t`p>+@N#f$u|bk>@?)G8(&2&2$E?0kjz7JP zKzDF7sXq{ueQeTR=N~fUE{7Lx4bw1r3@9(;9P+vHuuB)YC(hWZqX<)$p?SVuGVdov z#U(4u$SzWL(BayIYS-7hPbi6ck+Z9TfL@hP9TN#4*~A0|K;#(IR9X5ts?tP5{o<_j ztw}7xC;pNDOX7vpscAQ*WGi)oyrJ8YUL6mW`b?vQi$Le?2~VHDaoJhV2V)FLVg%3E zOvh98Z|oETb}a#Wd>Ws%T+SL++8{-!0itP@dRL!40`e@s9SYQV+PYN)##UhTo=oS| zH~E6DW+--y4zjOKMnYa{56dpCnre7T~j6zD?lOUi|L1Ug^y^G27B8yN>%!OTm z57))%hK+u5<4~jVNOcTVgB^&Cq*0D=x$vp_$LE^0^i=o-c*nom5WZxJpltVC(cUm~ zEK=P-;cH2ns&NT)cO)pAy(j66u6emG@#WA$a&KZLnNKO2Hnq+iJEGB-?Qaoe(p#of1k^IL_2H`TVJFxb>L{x0>@49$Oyj6Bvv|~uO3Tax)EfKM zDOjcm`qM)KiKJ=nxNohQTQN6B0Jy=VdsMP>Op8aUiV&lM?s&M*uy!|v=L%lVYUs?n zIAymd*knz#NY1>503~_CdFo9guk_c#sdxMLZwiB5@uB;l@3d3?Lb}~l(Uh`(uvHPH zwE!`d5;8zF-}k2kM4#m zTegIpkEE+uHFzi~sND+I5pRg`3nk_BPFDFT$2djUNN3ke$hV&)JxRpo4cdWxBw|$T zteCL1LCm%#&2S$n50aaze@NS{k@3WaHM_E zGdB(?Ed$OkxYmeTRUGiF_m>?YVhD64`WE&YV- z;PnM|x(vaSWIzK(&2PU0{|e|!WRTfcj-kV2F@#x|A?og$1Pk=G!Si{cY!B?kwmbh- zL{c|pV9w;Q*=FO6?>lp>1h;SwbOtnafS`)*0(ecmNImXX$QJOw|MOmg=T8q(uXxYy zSYo{ZV}}mggs=)|Vq2qxKAk9}f#_6m@Jo_0>TT7O1klG|j>|xz{pIn)NOjklnHxLk z2xWT`Sen|4r@h|16ks`V)U-i_+pp=C^AbmKOtRi%cIxz51 zU}|Cchq#TMm62K|Vlth<{Dxz*!h(ImsTG)Z2I{!!(rVW3SG ztPRbcy@&BYxqpe&BmF6|C!R$ouzD;JWDM&z-?IZgUo*wkf9!o|z$N+0%N|$5wdlcN z1A1ig_pox7U-k4fkwVBjDG_6fPxbW#uQtM7zpJHQ{#Dob^fl`%OS zK5<@78S7_jna|#;8CII_@JiUdUIZuMA#hoEUQp8)y#|xYM8I3@?@RQ(qjXomi0Wtt z73w%~JDd+u!EZn$QCJ*LaGli%F-k!aikNvS2nR}pj86I%9kY**Uyf>~kMcjfzhx9a z$o}ujZ%bA)N^I6HnA)0$(QJpX<_dXCbFnaBypXyxGR2CkhV>kp8Ecy6XfNb28fJes zwU&Vh#c5}qU{=wi=c~AtiaGh}BCL1LS{MX6!0jHz15xmjanUh113J?C8s;a2j{F(p zC^5#`XA^-Gre&`>pb%;3Ae6^^vuz8z>CEGjPT%L)d&d*CB#~*P+S^B?F~`rn#B#7? zZno}b{V}0D8MOxMXr@UO(AT6^8>BNf7!^lGR>CA~3^{)pb@c3L44gS?X6M1;4xLzOSBJjsr`=4vS$_tmNlyIWTwESq z#!ZxJUA%jFvD~s3fQihusL8o+Rpbo0*ekc+TwZV}9aZ|VM1cuO32303gh@4}v+XFE zzM5CKygJ*$G43*Hj!Phg6#z6+M1xvkB+O4^x?xrQ!Woa1En_-^+DhfVI&W4l78jSs z;i_-9I1Rt8n4giP9^jt>d0wE?wE$y504wskNmxsI+ur^*6wM134hUD>QB;MQRT&;) zCYu~`7bDz6|`$xd#BxOS)eE-5B1Ep5`Up^d) z46&^I3ISw{*=okiu8C@gF`VgXg;{E8z_%WR$BZE5yZy za?yts87yEXIU(H)Nz7**izt_fW&nH!M=9ENdNgiz>Z3=v5j?lh$)#|D|6AUtB`s11 zpMVV08&99GC65(Viq@BF^>oNS>=(JAH$R%AzNxu2u6~g4@YS5tG4;{xQ*#p>K>R9R zTQGBHQ>*Z&n|veS>yEKPjC1w@{-jj%O8h80i=dK;-CPJ`y0D}}Apl(yJlr(B5)-7Z z%%0Scm|u|VZ^W2F0r8BS=@CdJi2=y6&LHdI|Mm7E8-GFoC%$qBJG7611kuH}9PAeQ zyZ%s1;<;mZI8h4&PSSc42a=~O&w+_)_~}Nun9Jh*+7&TToQ=vD`V()_wn<_81KZ*w zumBV5gbidGWt^tAGB{Mmg$;AjgcU={w0d&_TyP4UmNyD|?eVh{$vIw#z6)%GIrCQY zWyTT0b2H17sIKY3S-C_Jx<8X<->M@hrTBaMs>rjOa$d>ZiIlzTNZ*q=s07m|t~lfY zBHcnclZa?odJJrQd_#FxatuXk7OM*~^>flt{6q2OFa>p0dM8WzY`j*b9hv*S`G`e_ ze;`5bk4U|J@Gk!jBeFlMNZs!tD{OA>@{}SQ({&Y&i-qcfQp{@{nc3FMA4)A zCH?mm6uNXgOKseP3j>pfHWdjf8Qu;&HR8YY@7r|v4by};RJ}bu;wwx$CWd#wa@3P^ z-w45?0dJkVqnpf&yHvJ^0&o1&B{CCDR#s|K&L8$ow)dNA%w6cj*2CGtDbp8VH>n^# zyN^g#k@%Syo2Piq3&#UG{|({at;}3F_GPV}g2%U+X&I#;Rx84MY*deQ5WgLUBpn$5 zN0~(2XY%e+3GcMZ@pp^K*5|WRj5p#z1UQAg^sQ$XrWnLTaD}N;vi?z)Hqu7#jZT`N zn&9trSN_CPEYD-(WaF{%2Drq4M4_@f*rT$f7x}T39K8vg=N16KSjU}Gjvy)XJ&>bSOUENHLSw_8x)N+^WEf4usix%<-d(XJiT3*;5+eAj zRCZNBWD6x8`c+YrRna1zX}M=?i)3?v17v$pBeS|_DP^J|QblB{D}pRtD}fDJN(_t1 zi-*=gImZ2f6zQhxB*SS3_9FN^93zj-j@DM#-%H^?!)>m^|C}0n>H1v1M3lw9-_276 z4s*2j)@w-Ts^^P7U-#`)gybFKkzvb`Ou^qDrv)v{_skOnntAz1SZB=h=(H3oEkz>B zG)qf;FhW$Ju7bJIOi~H~DkRBT0ugB~E+a{OA9y&gyOe)b_afs3LQY4j)b&&@J9%0EQ~hPf*)-apQ%7|Am!H^D$I23!DsL2 zHHu`GFtQU%`PLhQN{7XCkfG~2q6ug6pt;<(l*)7#lFc=IZh#!tnyJ`RtFv+AOdBOfA~G$z@S zJ^KEJYWPN}!%V-H+O3)nzPk;urX!*Ir#P4$e`H8#`7vl&DNakaCY1nJj%d7z0o&U? zd{-tYRU=B1BmbeRiC5Z_0NnyxXo}&SK9yj}{7z=oOb? zqwbmZoA{J1r52Nkx*R%P@Eiq-5a9=RJ#lg1966#;a>ir%JIkdPyXY=?B0qomhPx~k zc#&hz*h96?>%+cM+jmr}(K@l=sHgRCFaPL=a_=`~8iDXmwbM24fQAj;Ncvgs726I4 z%cEpa`2Tgl>$x|v|6D>e-Q?ch;zOoT7vWs`di*+1gdA(j65+$&E<+!}tcv0z@k&Zk zpOsMNXDgY+IVI`16F&!$iZx51EDeg?IlqyGQeQu{&fr=gY7ko;8v96_bMh-!tDwK^ zfX4g?nz&>G{F&6s0>(3(WHAkGfDI%?KU7yVyTDzqslK>5u&Z>Jw$*%4c&F%0j$|pS z31u@Zd_3Y?2-oW`JRJwOA)W6u3kshDX`7DXx&Cmo)gYp8#tL^{dEQu_>ZT%U%XokN z$A6v@E8`s_?*de{87!!V)r6 z8q1ALlXc;4*Snu12R8&=srqhq_1`DoXa6}H7l-N=zj=Zp#xaN`O&PzCP6#wfH zwkVw&JgqGJk+gULJd9qGKQu-zVKY1Ea>UX*o|E|amLSBVNcf;wVpZQvzMnl0daM~a z;?x7*ry$6SAys0%?P4Uk=P89cSM~531LcnjH5U-Xt|D`YXVFu9XN3=VXUY8l%YTXLYL8n1&D6=6 zN!inzUX(Ft`0K^)0t0@@UrVCMxT1_PJ@A+TvepuQ*ANyG5ai5KFccK8 zV#Sv>gLjiFavH{Ou4>=>o_fp=vw=rr1ybv;FAFH+)IHsnOU%9kJ z&~CEnR%u1kd|v;uhgQ^6^G5vWB$XbA*Y?FPpY$c4cem$;qwliTS^kcd|M;<@y=dL8 zm7gX(#ix}QDNq-#y)?`0xcrWnpkz9n9aS$%eTg{cc}Zw2FBH~5Hj5Vsy;nTc7v2@Y; zmqP?nxxv5-sfcMy!%Ou)h@C;~$D=4a#w*2C{auG4@Er@{Uqd+)o&MV9r$nx8k79ZX zFA>!IY#2zff9VUIGe-g)Kr046W|`NlBcj62#i$0vY2(J082!z#rKZ2zO{esgVR|)$ zQyHr#zAivUMO0ysY>^`jrmPAr5TvgACRdg^$=TobW22qt>Oe$vI=$pCxq7B}P_TVg z^=M)9e8c4a20q7{dOkD=oLz;$m=6ds84?cnM4z~>V~0#muV(UYh2s_|l_L z#(Bgmast<40RL*Y9HYyBZ+ggH!=77J>Sm|}iI{!W`})UM^)GNu_f^PZ0fbKv0IHW8 zI*>J+noItI)0kYJ{9E2b>{7}_&R$A5R&{fK^EI?vT{dKq{fnUqFRx(c`sry-2nJ+y zdNyHHz_MP9ut1f@=4D5)J*w&^V)=Dpa&(AC; zdW!GzqrO(fBi;q&QYH)#u0&1 zYbhB*fceIhQ|hIg=UMyg8T}h@pWkPmm)&1bfu-8r-uDF6vP@J}vh#}GHMk~DOZV7V zY{dzx@sI_Yq@8KFGsWS4@%A5;-TLAaT~QJX)I)HToLN#GwF7`mQ=gkq_|uyP^xWEr z7)1=>-8jG2;W|2UYSo(kJ>VM0X#PxutBGZqac}7+x$m%LR^LNQkG&EByD4c`Nu}#_ ze01Dup_HvdhsN6<(@HZXG0y>Dp%{18|xHIQ5V%+JEb%q?#!I5?We z$~Nx}>a(aE-AV??v_yh>KgxVWn17;+%2Xav4_<=1PH#)8jEtM!hbO4=cVmM9Z<}5<`ROq!70<+Vl?s^n;Qac79`x1b zGH2yL73>};=+a_C*cwGoM6{&35U{oL{C%E9GJCCKi2{&RHHw-1S%(;$5e-G=Z-ktf zftSdID&v2C5GRuV1Rwj&Czsh6^T3n}Kh!@M(&7y#TZnW7CA(#-{4SkWi;DuuH|SSH z*~C5X$?(~>;L1)IlRg<1qOIX*@#E$&og0#LjKtS)9B(y=i{&Y7a1JcwGf|3>fPrdl zGo;r1XaK6K^MY@_nY%4{(a0>ThFTB_VQ%OKPL<2l&mLEdf!TC(OC}KjKZ%@(t--gq zv)?)CQ_>Q<16H3IC5Gc^&5&n3nk17l+bh3Bre|Cp`|4#om(fvZkx3xj$hEUvd4bg= zSoiCL4O$D0bH8Ko(pl}+NW8qjig=EfcFR;FK9Rb&RwC5jyq?Zi8#3I2&G$nL9}+J; z6v_rXm&ypwQ@J;KtIv}I96rgEA6D+yA1ob=! zIutjsU;@^==8(X#X2;U!u6yr-x!J62;veG z;k=RlI&!<0bmx6R&5Rn^ox=uCa4Qp3(8R(GG})yGp#{o~+&`K}9zY0>)oLE~ggm5?g*kl;WwZM#@MhJXo`Sn0!5@SIh{4CXLl zIU`BmdjE<4WT2lx_U@@G2l4c)*OW&oC+~E2C*29<`vTc!KnNlyQv5&tlLIky&gMrx zWRn4=I%8#7IWyE@uWTNQ+nXRy%H8}SCR>UEFKBnLicqnLfS+iG?W&ApDn9_$x!&3S zzB|f>UBrxh?T&%I{>R^$2B-5p|c}&QTTRabRBfT}p$3W8#v{x3d2} zR_9o5oiT=+ibiJH+a?&-X7E+QpZU^X}H zy!oWUZTa)0dNnfxoy_#@Zwr?jd&V2=D4)E`pKY_tgAC=DvoDQRx|9{KIlE3Lyfm_v z+aSx=X~VM{&X{w@+a`_|VXlR*^SRW!_$PK=>&B7>#>44_q4qTOux^98#J}p|9UmNd zcw|5z2T1(ZUD-DHYNXunGA(02ZSz#(U-u%gH!5@Ah{%QfU35>sT1p5n>ZwJ9x+8*X`*Ia466(b@F#QU-+0 zVBez`LN3ouCo|M_I#n1MiD&xKw{}BKq`n2KA5oA*2@KDhi_npnARm=VtvZclg{Dk8 zcY&@wl%wzkwO+;U&-{SozdOeSr3J zS{_Z$ZHy9yQU(+A{#Edtf0-~wgJ%SIe97p@*>L0MaW4spb~gxBM~(Ru^nqX_ZM`>F zlWTbeEaU1q=k{D?l^k6Ntk8RR_UnFvzK#xS&Bgk~Hk1Opzk0V5XZ+`G9Axa^s+VE$ zuT1JYzEi(XZQ09a4-bITt8!H#KPgKWE#efT9}-ho)g3X~==_f!k7zV#k5a5=G_c#=H&d**fje)Wel=TV33$&$+Ta!oi617SZkr9cXFrPmAECb~&kq;vJ)?>_sE&&X&s$o98+ErRC z8#1!wqB{u8nzIC9h}fz{M$u^m@{)3+cN?>l@;Pd2kef?9wt{{3QHG-tT7iXy$tSTI zRJMMOa7_D>2d490AYiA4RZ1itHsL&sEMvPLh_~V?5)Omv4?P?^To!-*1--vEE#}Tk z`*9xUTf^7<(6i}8kll=Zf=pFY{Be|a1igrf2(DE?p`d_z6VoYoF|a~d<%#SLnea(L zFQIOqOSjoJN!fNgz+=(wEj(4Y|(q2{v^yluS=Orv47*OcQU z^WPt0=*|0fCTi9?+xZ6*F1~gCC58H#di+m=TNplSozUD{4}Nf003IQfDjzD{h~E*Y zl7G}4oX~R0?k1$E{<;Jm#5x|wm$+gOOT4?o7smw(zCq0sR@e1YTih?NYgkC=ixA~S zCcQkv{xJUS>umT0tf8b;Hfs}2 z?@3POzk46}dcjvMhKB^~tfLQR!q-pQ0XFaTkJWI@EUnb7 z+N4BKv@#X*(tqW~8CDoS3j_=5yd>P6`r#<4Qn#WuR_}Y7ctHpqsG5+MiYXiterEIUapSkNaB|Jev*Ue)2J#gv%c0)8X9FK zI~gYN8|v^!{j|sWi2Qre$NC7v_I{4g`!l$JvKS3yj3?-P$b^8WyVz9!G>bLdM#BkI1$04J#~yotXTJT((GY zWyXPF@v(KudIMXrD6xbnE_1O?8QMPca+$eE`;vm__DQKZC#SWej^?ArE1ZZ;iZ4pzP>&20)#621sY0G;_4hL-3CB? zoJh|aixX8i<-t%d?ap%mHU2-o=&Yayb-{fX{`?o4VBJvPj2AE@sD7AXb2_1e%hrVk z8xNDZfi+|S2L8x|YE(nl0v7RY6~4gp5J;BUO9%wxx@iVw~S^-7FJ95JBMiUc6L^P{FS>CLzmcGsi*j! zh;vIk;w6w0mmxyYealD_Sm>EtE?j`cC(rSn(UnU6Uq`<768?H!Lq>({^t{EpICnn% z8baNX?uxo5;4{`bLit2KA-A38bkwj0HATtC-?fLht{k@!m4ZUJsGHrygMu`(mb)xbuUs^oKA^(a^{VL&wICLc;8c z@uIa5RjVri&bT8=uHbM;9w0odK&EMk-Wc;+n81_V^^bEU=~V1&Kx_R{x&edZTb>y4 zUBZ77+@_wS#&%4&nxY1ft)F8<{|kk6;P^yo`a+12JE>auqC3Gb;V_Dt-o*bKkIFU%#a>IugoU;X42~$lvCgUyN*iQSLz;+)^iApWmhkb9F zbtH}Ph*Q2$ZohC4;-~rvCzibrz(0A=%N-99W+pUAUE@oH_xwE6EMjc`90Jm$z-<<+ zc$&{mtzn58`d=7yF>5vz?t82Mp692Kkb-01zK z)>u$n?D77U|A}`Cs@f9lCt_L6QumtMkMyn7A~-0^yGO-;)zd-;-5+*Z>8U%<#7Mu7 zqY;wVoYS#}^9;1ho9&<^Q&qHnA}ziJx*kwisAZ1rzz&Ko!sa9l%ds-QWQ7h-#qrnb zM>97%5w#vj=yc=M`VlF{D}|F9UwBpsQ7W(LO%Pw(NG{g`}TPnpJN zmX}SN#tqxb4R2)DA?#&7C>G8)5Y>PBJ?=~3i}uk^k>K~Gb>mk_vVy@;Lb}*o5ilSJ zmC9w29uXbRxZ2A^IIacJ>lcz!<1sj!Qy`XrMkPtWy5aOcyZy(6W05nz>Ry#HDl+<> zXEWAqH5Ta6wKqaetuU0(ZR0_c{=gjsyEUBDu5L@>PVw-GZzF?T9XeFhw4oxa{sN}8 z-SJp2qSqWL-z(Efw;4zO3Xi$^Wj^1(3nGz7vN7i7e~_CfLsrN>o^ylq>9CRQ z6W%S*ABoQUp}BO}tPh4TBuOa&$-~Fq50BWm#~h|$ZO_#i)Kwx6!p}LVgM=WyId@w^ zN2uc@J#z^4Hx2Vy|GB0WL`|x2SPM8Phu{6+D~E<4Mf|PLzxULyu;r{O^17A(?9F60 zCYtB}42cRxH&-PK>y77QwRFuV8ylDqB+fm+L7!2Ak4$*?a&y>SV7$=eO^B^h%_fNf z;A(WTnqcVWw88xtW^B*k?QTMo!jX`YTa0X#DH98^Dd>YApHDl0i{OXBY#g>hf=w?V zYhVD*^kM&n0GHInm-of6W+NK*7qn~3_FYk0my=HGbfhfJb+eT1>}qVvS4F>UghkQ=yPAVs?YS>G_pR%3 z6V3ws>_0xql1MFYTYDD?q}J$gg2idX08eF<7*~*LC$K84!$#WRuY+nEeQnOJxK+_; zQV$zZ&xO@UG3!?M&Q0U%lYG03KaJiuO*)a_!goVwuQg9>d$YQAZ7VyLAZ_=NJdK*~p*f|H$GqT#}k< zHqbfpvTdnvYaV)$jp-{`a>rvkx92-&%}pcWObPnAmx2w8>}483YO+8&rDl)(;iaf% z9Lz{zPvFUb@NipRiUA50>7$4&?-(Z$WrQ9)tRc8FLH!r@Q+$65TRrN>`otBp0j5@W zkXsfU*<{WY-5jgVe~9PXE^SSd+o;Dou4w8G4$me$W01?^(0D}Fut z*f1Fi?WrUt+`!&Y7Pq)?+XYWTF%n~EO<^KlFX8vqlL;@gG(CeMb<#Q4(cK%316-WA zaFUVtOn;QOSVg9T$Xc>PjGX32l?rd`f2J_xT^X*h*~reGhInhDAl>6#iTUO*Q3!|wNv2a<^jlS$nBsraH=T-s=p1uV}HR?MI+zWu(+EmyGUiCtW zO%HjvDwU}`fq7pO7T;4o;YLLN(T||hNQ&nese0A>$D1eGeiJTA{)hVnToONMi*2u9 z@J2DD@b4-5=cPB6~bB*Dfpg5QvrWcnwxFRCDDYg_J(EA zmF8Qiq1r}Vp6##3@XCc}=1S`>QW*+x%1CVnaUrz)7^=9W+lR3Jo<~-||=`D^s zTh8hgf|AA3ulKqcNB$!p1eYvu(_xcpD`gp#5l+meA<@wl#Rj>onY6qmDjb_<|Merx zh#p8}KGv7h|7xbNYPq4%B4q*?QJoJ`H{-Cm&5OF+&{fFUYs+tW?D&LmLQSz$y;j#n z#s6NJhF@@(iqJ>NPl&nU*}85@lndV%Q-(;tfa*)W$V}&c+ZYuYsIsSx)kr8{nvyb?+j-RR2}Xda%6jUDI9Ysor>T5VdY>^qJEo_DV{nW7 zB>KF>1>t9}!w-aF;39hp=L76an`le^v6;LQ(Z{L%G)1TX`o^?9JPGh!<@a%M5*c@q`ptU(9*ujV(@N^v)*>I7DxGVn_|1dgh&|aa zGcJfj_^T!3D?(CLSK@G$;qCSIg(4$_yic}SA~zN^AWktJU0%6Y#&9r^G!3RFzznjg zCJ8Km;44^Nnu-$g*|*+XyYfF%pEZ=;nJGIr4OzNz(96&^rchdZUBJ#CC2P`+HxTeZ zq$ClH78M$->4kJ!FVu_zqhL4Eq8!KL#;ScgW8(%z3qGxfdr4v5r}+Wd4m11W7?-)Z zW#ZaJTT5%lPmaTpSvPS12Jw?mqR~di(FISS*Tt2B&6Sq3IRF(nqHw&wl)w*I% zG1c)RY?zr+S#wLkt4%q+o=_!Eb|W;%IdRKHT1IX}gXPu3574K>)Dh1N`?EQb4Ji=hZA}Lbz~2a1?8H#dF;`JQOLIg^2&VhTU6UD+WXZ&L-s`Ul46{oEVY5QpWIr3C zzie^dF&<4UIS;M?2o3nO?7|L`pcKg?PMotwG%gcDf{s?nQxFD38~({|m^|_yGzEn#$7`|IhfJ|AF!U1JJ;qm;e9( literal 0 HcmV?d00001 diff --git a/data/mastervega-tutorial.json b/data/mastervega-tutorial.json index 7d7efcf..8409f8f 100644 --- a/data/mastervega-tutorial.json +++ b/data/mastervega-tutorial.json @@ -26,6 +26,7 @@ "highlights": ["homeFleet", "homeStar"], "calloutText": "This is your fleet. A Scout Ship and Colony Ship. Click here to select them.", "advanceOn": "hotspot", + "hotspotAction": "selectHomeFleet", "buttons": [] }, { @@ -48,6 +49,295 @@ "buttons": [ { "action": "next", "label": "Next" } ] + }, + { + "id": "nearby-stars", + "kind": "callout", + "voice": null, + "anchor": "homeFleet", + "highlights": ["homeFleet", "homeStar", "nearbyStars"], + "calloutText": "Your fleet isn't limited to your home star — it can also travel to any of the other stars highlighted nearby.", + "buttons": [ + { "action": "next", "label": "Next" } + ] + }, + { + "id": "map-controls", + "kind": "callout", + "voice": null, + "anchor": "homeFleet", + "highlights": ["mapArea"], + "freePan": true, + "calloutText": "Before you send your fleet anywhere, here's how to get around the map. Click and drag anywhere to pan in any direction. Scroll your mouse wheel up to zoom in, or down to zoom out. Try it now, then click Next when you're ready.", + "buttons": [ + { "action": "next", "label": "Next" } + ] + }, + { + "id": "click-star", + "kind": "callout", + "voice": null, + "anchor": "nearbyStars", + "highlights": ["nearbyStars"], + "starPick": "info", + "advanceOn": "starPick", + "fitReachableStars": true, + "calloutText": "Now click on one of the highlighted stars to see what's there.", + "buttons": [] + }, + { + "id": "read-star-info", + "kind": "callout", + "voice": null, + "anchor": "panel", + "highlights": ["panel"], + "calloutText": "This star hasn't been explored yet, so for now the panel only shows its class and a general description — different star classes support different amounts of population. Once a scout of yours actually reaches a system, this same panel will also reveal its worlds, how many of them are habitable for your species, and any colonies or fleets stationed there.", + "buttons": [ + { "action": "next", "label": "Next" } + ] + }, + { + "id": "move-fleet", + "kind": "callout", + "voice": null, + "anchor": "panel", + "highlights": ["nearbyStars", "panel"], + "starPick": "order", + "advanceOn": "fleetInFlight", + "selectHomeFleet": true, + "calloutText": "Let's send your fleet on its way. Click one of the highlighted stars again, then review the order in this panel and press Accept to launch your fleet.", + "buttons": [] + }, + { + "id": "fleet-moving", + "kind": "callout", + "voice": null, + "anchor": "travelingFleet", + "highlights": ["travelingFleet"], + "calloutText": "Your fleet is now underway! The number above it shows how many turns remain until it arrives at its destination.", + "buttons": [ + { "action": "next", "label": "Got it!" } + ] + }, + { + "id": "home-star", + "kind": "callout", + "voice": null, + "anchor": "homeStar", + "highlights": ["homeStar"], + "calloutText": "This is your home star. Click it to see your system's information.", + "advanceOn": "hotspot", + "hotspotAction": "showHomeStar", + "buttons": [] + }, + { + "id": "home-star-info", + "kind": "callout", + "voice": null, + "anchor": "panel", + "highlights": ["panel", "homeStar"], + "calloutText": "This panel shows your home system: how many worlds orbit it and how many are habitable, your colony's population, factories, output, and defences, and what it's currently building. Press View System at the bottom to see the whole system in detail.", + "buttons": [ + { "action": "next", "label": "Next" } + ] + }, + { + "id": "view-system", + "kind": "callout", + "voice": null, + "anchor": "panel", + "highlights": ["panel"], + "calloutText": "Press View System to open a detailed view of your home system.", + "advanceOn": "hotspot", + "hotspotAction": "openSystemView", + "buttons": [] + }, + { + "id": "system-view-planets", + "kind": "modal", + "voice": null, + "noDim": true, + "windowPos": "topBanner", + "body": "This is your system view. Click on any of the worlds orbiting your star to inspect it — the panel on the right updates with its type, size, and richness.", + "buttons": [ + { "action": "next", "label": "Next" } + ] + }, + { + "id": "system-view-colony", + "kind": "modal", + "voice": null, + "noDim": true, + "windowPos": "topBanner", + "advanceOn": "external", + "body": "Click on your home world — the one flying a small colony flag above it — then press View Colony to open its colony screen.", + "buttons": [] + }, + { + "id": "colony-overview", + "kind": "modal", + "voice": null, + "noDim": true, + "windowPos": "colonyCenter", + "body": "This is your colony screen — everything you need to run this world lives here. The panel on the right shows its population, factories, output, trade, and defences.", + "buttons": [ + { "action": "next", "label": "Next" } + ] + }, + { + "id": "colony-allocation", + "kind": "modal", + "voice": null, + "noDim": true, + "windowPos": "colonyCenter", + "body": "Below that, the Allocation sliders split your production across five channels: Construction, Defence, Industry, Ecology, and Research. Drag a slider to change its share — the rest renormalise automatically. Click a channel's lock icon to hold its share fixed while you adjust the others. Ecology is always funded first, off the top.", + "buttons": [ + { "action": "next", "label": "Next" } + ] + }, + { + "id": "colony-focus", + "kind": "modal", + "voice": null, + "noDim": true, + "windowPos": "colonyCenter", + "body": "Colony Focus automates your build queue toward a goal — Expansion, Colony Improvement, Research, Fleet Production, Population Growth, Trade, or Homeworld Defense — instead of you queuing every building by hand. Allocation Focus applies a one-time preset to the sliders above, tuned to the same kinds of strategies. Open either one and your advisors will point out their recommended pick with a pulsing arrow and a short reason.", + "buttons": [ + { "action": "next", "label": "Next" } + ] + }, + { + "id": "colony-close", + "kind": "modal", + "voice": null, + "noDim": true, + "windowPos": "topBanner", + "advanceOn": "external", + "body": "When you're ready, close this colony screen, then close the system view too, to get back to the star map.", + "buttons": [] + }, + { + "id": "end-turn", + "kind": "callout", + "voice": null, + "anchor": "endTurnButton", + "highlights": ["endTurnButton"], + "calloutText": "You've given your fleet its orders and looked over your colony — press End Turn to advance to the next turn.", + "advanceOn": "hotspot", + "hotspotAction": "endTurn", + "buttons": [] + }, + { + "id": "empire-menu", + "kind": "callout", + "voice": null, + "anchor": "empireButton", + "highlights": ["empireButton"], + "calloutText": "Your turn is underway. Let's look at the rest of your empire — click the Empire menu to open it.", + "advanceOn": "hotspot", + "hotspotAction": "openEmpireMenu", + "buttons": [] + }, + { + "id": "open-research", + "kind": "callout", + "voice": null, + "anchor": "empireMenuResearch", + "highlights": ["empireMenuResearch"], + "calloutText": "Click Research to see what your empire is investigating.", + "advanceOn": "hotspot", + "hotspotAction": "openResearch", + "buttons": [] + }, + { + "id": "research-info", + "kind": "modal", + "voice": null, + "noDim": true, + "windowPos": "topBanner", + "advanceAction": "closeEmpireScreenReopenMenu", + "body": "Each tile is a research field — its current level, and a slider (with the same lock icon your colony's allocation sliders have) for how much of your research output feeds it. Click a field to see what you're currently working toward there and what comes after it.", + "buttons": [ + { "action": "next", "label": "Next" } + ] + }, + { + "id": "open-diplomacy", + "kind": "callout", + "voice": null, + "anchor": "empireMenuDiplomacy", + "highlights": ["empireMenuDiplomacy"], + "calloutText": "Click Diplomacy to see your relations with the species you've met.", + "advanceOn": "hotspot", + "hotspotAction": "openDiplomacy", + "buttons": [] + }, + { + "id": "diplomacy-info", + "kind": "modal", + "voice": null, + "noDim": true, + "windowPos": "topBanner", + "advanceAction": "closeEmpireScreenReopenMenu", + "body": "You haven't met another species yet, so this window is empty for now. Once you do, it will list each one here — their portrait, treaty status and attitude toward you, how many colonies and how much power they hold, and a Seek Audience button to open negotiations.", + "buttons": [ + { "action": "next", "label": "Next" } + ] + }, + { + "id": "open-leaders", + "kind": "callout", + "voice": null, + "anchor": "empireMenuLeaders", + "highlights": ["empireMenuLeaders"], + "calloutText": "Click Leaders to see who's available to hire.", + "advanceOn": "hotspot", + "hotspotAction": "openLeaders", + "buttons": [] + }, + { + "id": "leaders-info", + "kind": "modal", + "voice": null, + "noDim": true, + "windowPos": "topBanner", + "advanceAction": "closeEmpireScreenReopenMenu", + "body": "Leaders available for hire are listed here, each with their specialty and a one-time cost. Hire one to post them to a fleet or colony for a standing bonus.", + "buttons": [ + { "action": "next", "label": "Next" } + ] + }, + { + "id": "open-colonies", + "kind": "callout", + "voice": null, + "anchor": "empireMenuColonies", + "highlights": ["empireMenuColonies"], + "calloutText": "Click Colonies to see every world you own in one place.", + "advanceOn": "hotspot", + "hotspotAction": "openColonies", + "buttons": [] + }, + { + "id": "colonies-info", + "kind": "modal", + "voice": null, + "noDim": true, + "windowPos": "topBanner", + "advanceAction": "closeEmpireScreenAndMenu", + "body": "This lists every colony you own — population, factories, what's building, and its Colony Focus and Allocation Focus — so you can check and adjust any of them from one screen instead of opening each individually.", + "buttons": [ + { "action": "next", "label": "Next" } + ] + }, + { + "id": "keep-exploring", + "kind": "modal", + "voice": null, + "body": "That's the Empire menu. From here, keep exploring nearby star systems with your scouts — once you find a habitable planet, bring a colony ship and found a new colony there to keep growing your empire.", + "buttons": [ + { "action": "next", "label": "Understood" } + ] } ] } diff --git a/src/games/mastervega/MasterOfVegaGame.js b/src/games/mastervega/MasterOfVegaGame.js index 38bb15d..615a836 100644 --- a/src/games/mastervega/MasterOfVegaGame.js +++ b/src/games/mastervega/MasterOfVegaGame.js @@ -80,6 +80,12 @@ export default class MasterOfVegaGame extends Phaser.Scene { // Arcade already relies on instead of a bespoke in-place teardown. this.pendingSavedState = data?.savedState ?? null; this.modalOpen = false; + // Set true by VegaTutorial for the one step that teaches pan/zoom — lets + // the star map's own drag/wheel handlers through despite modalOpen, while + // onStarClick/onFleetClick (and every other modalOpen-gated control) + // still check modalOpen directly and stay frozen. See blockWheel/ + // blockPointer below. + this.tutorialFreePan = false; this.busy = false; // Empire indices with a freshly-claimed contact waiting for their // full-screen Audience — see runAudienceQueue(). @@ -652,15 +658,17 @@ export default class MasterOfVegaGame extends Phaser.Scene { onStarClick: (idx) => this.onStarClick(idx), onFleetClick: (fleet) => this.onFleetClick(fleet), onEmptyClick: () => this.clearSelection(), - blockWheel: () => this.modalOpen || !!this.panel?.detailOpen, + blockWheel: () => (this.modalOpen && !this.tutorialFreePan) || !!this.panel?.detailOpen, // A modal blocks the map outright; so does the panel's ship detail // pop-over, which veils the whole screen without being a modal. // Otherwise only the side panel's own footprint does (so dragging a // slider there doesn't pan the galaxy underneath it). The old // `!this.modalOpen && ...` form always short-circuited to false while a // modal was open, which let drags pan the star map right through the - // System View window. - blockPointer: (p) => this.modalOpen || !!this.panel?.detailOpen + // System View window. `tutorialFreePan` punches a narrow exception + // through modalOpen for pan/zoom only — onStarClick/onFleetClick are + // untouched, so clicking a star or fleet is still fully frozen. + blockPointer: (p) => (this.modalOpen && !this.tutorialFreePan) || !!this.panel?.detailOpen || !!this.panel?.containsPoint(p.x, p.y), }); diff --git a/src/games/mastervega/VegaSidePanel.js b/src/games/mastervega/VegaSidePanel.js index 07bc1c5..ecf7182 100644 --- a/src/games/mastervega/VegaSidePanel.js +++ b/src/games/mastervega/VegaSidePanel.js @@ -785,15 +785,17 @@ export default class VegaSidePanel { } /** - * Screen-space bounding box of a named region of the fleet view, for the - * guided tutorial's spotlight. `name` is 'shipProfiles' or 'countControls'; - * returns the union across every task-force stack, or null when the fleet - * view is not the thing on screen. Uses the panel's resting position - * (this.x0/this.y0), not this.root.x, so it is correct even while the panel - * is still sliding in. + * Screen-space bounding box of a named region of the panel, for the guided + * tutorial's spotlight. `name` is 'shipProfiles' or 'countControls' (union + * across every task-force stack in the fleet view), or 'panel' (the whole + * docked column, whatever mode — star/fleet/order — it is currently + * showing). Uses the panel's resting position (this.x0/this.y0), not + * this.root.x, so it is correct even while the panel is still sliding in. */ tutorialRegion(name) { - if (!this.root?.visible || this.mode !== 'fleet') return null; + if (!this.root?.visible) return null; + if (name === 'panel') return { x: this.x0, y: this.y0, w: W, h: this.h }; + if (this.mode !== 'fleet') return null; const rows = this._tutorRows; if (!rows || !rows.length) return null; const key = name === 'shipProfiles' ? 'profiles' diff --git a/src/games/mastervega/VegaStarMap.js b/src/games/mastervega/VegaStarMap.js index f3203bf..facc263 100644 --- a/src/games/mastervega/VegaStarMap.js +++ b/src/games/mastervega/VegaStarMap.js @@ -21,7 +21,7 @@ import { coloniesAt, empireColonies, fleetEta, habitableForEmpire, } from './VegaLogic.js'; import { starFrame } from './VegaArt.js'; -import { buildZoomLadder, DEFAULT_ZOOM_INDEX } from './VegaZoom.js'; +import { buildZoomLadder, DEFAULT_ZOOM_INDEX, pickFitZoomIndex } from './VegaZoom.js'; import { delaunayTriangulate, triangulationEdges } from './VegaDelaunay.js'; import { describeStarTooltip } from './VegaTooltips.js'; import { ORBIT } from './VegaScreens.js'; @@ -868,6 +868,34 @@ export default class VegaStarMap { this.clampPan(); } + /** + * Pick the ladder rung that frames a world-space box (`minX/minY/maxX/ + * maxY`, plus `padding` on every side) without cropping it — via + * VegaZoom.pickFitZoomIndex, same math VegaCombatCamera.js's "frame the + * whole fleet" opening shot uses — then pan so the box's center lands at + * `(focusX, focusY)` in screen space. `focusX`/`focusY` default to the + * viewport's own center, same as `viewW`/`viewH` default to the full + * screen; the guided tutorial narrows all four so the frame is biased left + * of the docked command panel instead of packing stars in behind it. + */ + fitToWorldBounds(minX, minY, maxX, maxY, { + padding = 0, viewW = GAME_WIDTH, viewH = GAME_HEIGHT, + focusX = GAME_WIDTH / 2, focusY = GAME_HEIGHT / 2, + } = {}) { + const idx = pickFitZoomIndex(this.zooms, maxX - minX, maxY - minY, padding, { viewW, viewH }); + this.zoomIndex = idx; + this.zoom = this.zooms[idx]; + this.root.setScale(this.zoom); + const cx = (minX + maxX) / 2; + const cy = (minY + maxY) / 2; + this.root.x = focusX - cx * this.zoom; + this.root.y = focusY - cy * this.zoom; + this.clampPan(); + this.refreshLabels(); + this.refreshStars(); + this.refreshColonyInfo(); + } + panToStar(starIdx, duration = 420) { const star = this.state.galaxy.stars[starIdx]; if (!star) return; diff --git a/src/games/mastervega/VegaSystemView.js b/src/games/mastervega/VegaSystemView.js index 09cc18f..2b3aa8e 100644 --- a/src/games/mastervega/VegaSystemView.js +++ b/src/games/mastervega/VegaSystemView.js @@ -29,7 +29,14 @@ import { } from './VegaLogic.js'; export function openSystemView(scene, rules, state, starIdx, art, opts = {}) { - const { viewerIdx = state.humanIndex, onChanged = null, onClose = null } = opts; + const { + viewerIdx = state.humanIndex, onChanged = null, onClose = null, + // Fired right when the "View Colony" button opens the colony screen over + // this one — nothing else in the game needs to know that + // (MasterOfVegaGame.js's openSystemViewFor never passes it), but the + // guided tutorial does, since it has no other hook into that click. + onColonyOpen = null, + } = opts; const star = state.galaxy.stars[starIdx]; const shell = modalShell(scene, star.name, onClose, { width: 1620, height: 900 }); @@ -357,6 +364,7 @@ export function openSystemView(scene, rules, state, starIdx, art, opts = {}) { rebuild(); }, }); + onColonyOpen?.(colony); }, { width: panelW, height: 50, fontSize: 21 })); } diff --git a/src/games/mastervega/VegaTutorial.js b/src/games/mastervega/VegaTutorial.js index 0786875..ae5bdf7 100644 --- a/src/games/mastervega/VegaTutorial.js +++ b/src/games/mastervega/VegaTutorial.js @@ -21,13 +21,35 @@ // tracked by a per-frame fingerprint in update() and re-laid-out on change. // D.tutorial sits just below D.detail so a ship-detail pop-over the tutorial // invites the player to open layers cleanly on top of the overlay. +// +// System View / Colony View are opened by calling VegaSystemView.js's +// openSystemView() DIRECTLY, bypassing MasterOfVegaGame.openSystemViewFor()/ +// openModal() — the same reasoning VegaSystemView.js already uses to bypass +// openModal for its OWN "View Colony" button ("this one has to stay up, +// because it is what is keeping the star map behind it inert"): openModal() +// refuses a second modal while one is already up, and the tutorial has had +// scene.modalOpen pinned true since start(). Calling openSystemView directly +// sidesteps that gate entirely, and its own onClose/onColonyOpen opts are +// wired straight to VegaTutorial's own advance() — no polling needed for +// those steps (see 'external' in ADVANCE_MODES). The one place +// modalOpen genuinely has to move is the End Turn hotspot: onEndTurn() is +// gated by the SAME modalOpen check (`if (this.busy || this.modalOpen) +// return;`), and there is no direct-call bypass available for something this +// stateful, so that one handler flips modalOpen false just long enough to +// pass the gate — see _onHotspot's 'endTurn' case. import * as Phaser from 'phaser'; import { GAME_HEIGHT, GAME_WIDTH } from '../../config.js'; import { Button } from './VegaButton.js'; -import { FONT, D, uiClick } from './VegaScreens.js'; +import { + FONT, D, uiClick, openDiplomacyScreen, openLeaderScreen, +} from './VegaScreens.js'; import { enqueue as enqueueSpeech, resetQueue as resetSpeechQueue } from '../../ui/SpeechQueue.js'; import { resolveSteps } from './VegaTutorialData.js'; +import { reachableStars } from './VegaLogic.js'; +import { openSystemView } from './VegaSystemView.js'; +import { openResearchScreen } from './VegaResearchScreen.js'; +import { openColoniesScreen } from './VegaColoniesScreen.js'; const ACCENT = 0x6fc4ff; const HILITE_YELLOW = 0xffd400; @@ -40,6 +62,31 @@ const HOLE_PAD = 18; // gutter — see VegaSidePanel.js) even though it is hidden at tutorial time. const SAFE_RIGHT = GAME_WIDTH - 440; +// Fixed placements for a `kind: 'modal'` step's window, used only by steps +// with `noDim: true` (System View / Colony View are open underneath and must +// stay visible/clickable — see the header note on `noDim`). Both dock to an +// edge rather than the screen's true center, which the live content behind +// them is using: `topBanner` sits in System View's own empty margin above +// its shell (VegaSystemView.js's modalShell starts at y=90); `colonyCenter` +// sits in the empty stretch of world backdrop between Colony View's top-left +// masthead and its right-hand panel (VegaColonyView.js: masthead text ends +// well above y=260, the panel starts at x=1416). +const WINDOW_POS = Object.freeze({ + topBanner: { + cx: GAME_WIDTH / 2, top: 8, w: 1300, minH: 130, + }, + colonyCenter: { + cx: 1020, top: 260, w: 640, minH: 160, + }, +}); + +// The Empire dropdown's four rows, top to bottom — fixed order +// MasterOfVegaGame.openEmpireMenu() builds them in. Index into this array is +// what _empireMenuItemTarget positions. +const EMPIRE_MENU_ITEMS = Object.freeze([ + 'empireMenuResearch', 'empireMenuDiplomacy', 'empireMenuLeaders', 'empireMenuColonies', +]); + function cornerTicks(scene, x, y, w, h, len = 22) { const g = scene.add.graphics(); g.lineStyle(2.5, ACCENT, 0.9); @@ -74,6 +121,21 @@ export class VegaTutorial { this._voicedStep = -1; this._dead = false; this._started = false; + // The directly-opened System View shell (see the header note above), if + // one is currently up — destroyed defensively in destroy() in case the + // scene tears down mid-step. + this._systemView = null; + // Whichever Empire-menu screen (Research/Diplomacy/Leaders/Colonies) the + // tutorial opened directly is currently up, reduced to a single no-arg + // closer — the four screens don't share a return shape (modalShell's + // `{ destroy }` vs. openColoniesScreen's `{ close }`), so _openEmpireScreen + // normalises it here rather than every caller caring which is which. + this._empireScreenClose = null; + // Set true the instant the End Turn hotspot fires; update() then polls + // scene.busy (cleared only once the WHOLE turn-resolution pipeline — + // battles, audiences, turn report, GNN — has drained) before continuing + // into the Empire-menu tour. + this._awaitingEndTurn = false; this._shutdown = () => this.destroy(); } @@ -106,6 +168,27 @@ export class VegaTutorial { */ update() { if (this._dead || !this.layer || !this.steps.length || this._skipLayer) return; + + // End Turn is the one action with no direct-call bypass and no button + // of the tutorial's own to hook — onEndTurn() runs the whole turn- + // resolution pipeline (battles, audiences, turn report, GNN) and only + // clears scene.busy once every last bit of it has drained, so that is + // the one reliable "fully done" signal. Nothing else in update() should + // run meanwhile — the star map/panel underneath may be showing any of + // those screens right now. + if (this._awaitingEndTurn) { + if (!this.scene.busy) { + this._awaitingEndTurn = false; + // onEndTurn()'s own pipeline manages modalOpen for whatever it + // showed along the way and may have left it false (a plain turn with + // nothing notable never touches it past the initial unlock either) — + // re-freeze it before continuing into the Empire-menu tour. + this.scene.modalOpen = true; + this.advance(); + } + return; + } + const step = this.steps[this.stepIndex]; if (!step) return; @@ -120,6 +203,19 @@ export class VegaTutorial { } } + // The move-fleet step's Accept button is the REAL side-panel button + // (VegaSidePanel.buildOrder → MasterOfVegaGame.confirmOrder), not + // anything the tutorial overlay owns, so there is no click to hook — + // polling for the fleet actually departing is the only way to know. + if (step.advanceOn === 'fleetInFlight') { + const st = this.scene.state; + const human = st?.humanIndex; + if (st?.fleets?.some((f) => f.empireIdx === human && f.toStar >= 0)) { + this.advance(); + return; + } + } + const sig = this._targetsSig(step); if (this._lastTargetsSig !== undefined && sig !== this._lastTargetsSig) { this._lastTargetsSig = sig; @@ -133,6 +229,9 @@ export class VegaTutorial { const ids = [...new Set([...(step.highlights || []), step.anchor].filter(Boolean))]; return ids.map((id) => { const t = this._resolveTarget(id); + if (Array.isArray(t)) { + return `${id}:${t.map((x) => `${Math.round(x.cx)},${Math.round(x.cy)}`).join(';')}`; + } return t ? `${id}:${Math.round(t.cx)},${Math.round(t.cy)},${Math.round(t.rx)},${Math.round(t.ry)}` : `${id}:none`; @@ -145,6 +244,13 @@ export class VegaTutorial { resetSpeechQueue(); if (this._ringTween) { this._ringTween.stop(); this._ringTween = null; } this.scene.events.off('shutdown', this._shutdown); + this.scene.tutorialFreePan = false; + // Scene teardown tears this down regardless, but a mid-flow destroy from + // anywhere else (there's no Skip button once this stretch starts, but + // belt-and-braces) shouldn't leave a directly-opened System View orphaned + // on screen with nothing left to close it. + if (this._systemView) { this._systemView.destroy(); this._systemView = null; } + if (this._empireScreenClose) { this._empireScreenClose(); this._empireScreenClose = null; } this.layer?.destroy(); this.layer = null; this._stepLayer = null; @@ -182,7 +288,14 @@ export class VegaTutorial { _onButton(action) { switch (action) { - case 'next': this.advance(); break; + case 'next': + // A step's own `advanceAction` (VegaTutorialData.js's ADVANCE_ACTIONS) + // runs BEFORE advancing — closing whichever Empire-menu screen this + // step opened directly, and possibly reopening the dropdown behind + // the next one. See _runAdvanceAction. + this._runAdvanceAction(this.steps[this.stepIndex]?.advanceAction); + this.advance(); + break; case 'back': this.back(); break; case 'skip': this.skip(); break; case 'finish': this.finish(); break; @@ -190,6 +303,15 @@ export class VegaTutorial { } } + _runAdvanceAction(action) { + if (action === 'closeEmpireScreenReopenMenu' || action === 'closeEmpireScreenAndMenu') { + this._empireScreenClose?.(); + this._empireScreenClose = null; + if (action === 'closeEmpireScreenReopenMenu') this.scene.openEmpireMenu?.(); + else this.scene.closeEmpireMenu?.(); + } + } + // -------------------------------------------------------------- resolution _humanEmpire() { @@ -205,50 +327,226 @@ export class VegaTutorial { && f.starIdx === emp.homeStar && f.toStar < 0) ?? null; } + /** Whichever human fleet is currently en route somewhere (toStar >= 0). */ + _travelingFleet() { + const st = this.scene.state; + if (!st) return null; + return st.fleets.find((f) => f.empireIdx === st.humanIndex && f.toStar >= 0) ?? null; + } + + /** + * Zoom/pan so home plus every reachable star is inside the visible map + * area, biased left of the docked command panel (visible throughout this + * stretch of the tutorial) rather than centered on the raw screen — called + * once, on fresh entry into the step right after the free-pan/zoom lesson + * (step.fitReachableStars), regardless of wherever the player left the + * camera while trying it out. Reuses VegaStarMap.fitToWorldBounds, the + * same ladder-fit math VegaCombatCamera.js's "frame the whole fleet" + * opening shot uses. + */ + _fitReachableStarsView() { + const { map, state } = this.scene; + const emp = this._humanEmpire(); + if (!map || !state || !emp) return; + const reach = reachableStars(this.scene.rules, state, state.humanIndex); + const idxs = new Set([emp.homeStar, ...Object.keys(reach).map(Number)]); + let minX = Infinity; + let minY = Infinity; + let maxX = -Infinity; + let maxY = -Infinity; + for (const idx of idxs) { + const star = state.galaxy.stars[idx]; + if (!star) continue; + minX = Math.min(minX, star.x); + minY = Math.min(minY, star.y); + maxX = Math.max(maxX, star.x); + maxY = Math.max(maxY, star.y); + } + if (!Number.isFinite(minX)) return; + map.fitToWorldBounds(minX, minY, maxX, maxY, { + padding: 180, viewW: SAFE_RIGHT, viewH: GAME_HEIGHT, focusX: SAFE_RIGHT / 2, focusY: GAME_HEIGHT / 2, + }); + } + + /** + * Screen rect of item `index` (0-based) in the Empire dropdown, or null + * while it isn't open. Mirrors MasterOfVegaGame.openEmpireMenu()'s own + * geometry exactly (BTN_W/BTN_H/GAP/PAD, and reading empireBtn's live + * x/y/width the same way that method does) — ITEMS is hardcoded to 4 + * (Research/Diplomacy/Leaders/Colonies) because Council only ever joins + * the menu once state.council.lastResult is set, which that method's own + * comment notes can't happen this early in a fresh game. + */ + _empireMenuItemTarget(index) { + const { empireBtn, empireMenuLayer } = this.scene; + if (!empireBtn || !empireMenuLayer) return null; + const BTN_W = 200; + const BTN_H = 42; + const GAP = 8; + const PAD = 14; + const ITEMS = 4; + const panelCx = empireBtn.x - (empireBtn.options?.width ?? 190) / 2 + BTN_W / 2; + const panelTopY = empireBtn.y + 21 + 12; + const panelH = PAD * 2 + ITEMS * BTN_H + (ITEMS - 1) * GAP; + const panelCy = panelTopY + panelH / 2; + const firstY = panelCy - panelH / 2 + PAD + BTN_H / 2; + return { + cx: panelCx, cy: firstY + index * (BTN_H + GAP), rx: BTN_W / 2, ry: BTN_H / 2, shape: 'rect', + }; + } + + /** + * Open one of the Empire dropdown's four screens DIRECTLY (same + * openModal-bypass reasoning as _openSystemView — see the header note), + * and normalise its return shape (modalShell's `{ destroy }` for Research/ + * Diplomacy/Leaders vs. openColoniesScreen's own `{ close }`) into a + * single no-arg `this._empireScreenClose`, run by _runAdvanceAction on the + * matching '-info' step's Next button. None of the four need a real + * onChanged/onClose hook back into the tutorial — unlike System View, the + * player is never asked to click anything inside them, only to read and + * press Next, so a plain refresh callback (or none) is enough. + */ + _openEmpireScreen(kind) { + const scene = this.scene; + const { + rules, state, art, + } = scene; + const human = state.humanIndex; + if (kind === 'research') { + const shell = openResearchScreen(scene, rules, state, human, art, () => {}); + this._empireScreenClose = () => shell.destroy(); + } else if (kind === 'diplomacy') { + const shell = openDiplomacyScreen(scene, rules, state, human, art, () => {}, () => scene.refreshAll()); + this._empireScreenClose = () => shell.destroy(); + } else if (kind === 'leaders') { + const shell = openLeaderScreen(scene, rules, state, human, art, () => {}, () => scene.refreshHud()); + this._empireScreenClose = () => shell.destroy(); + } else if (kind === 'colonies') { + const screen = openColoniesScreen(scene, rules, state, human, art, { onChanged: () => scene.refreshAll() }); + this._empireScreenClose = () => screen.close(); + } + } + + /** + * A fleet's marker on the map, reduced to the same { cx, cy, rx, ry, shape } + * shape every other target uses. Falls back to a fixed offset from the + * fleet's anchor star (its current position if docked, its destination if + * mid-flight — the only real star anchor available then) when the marker + * itself hasn't been laid out yet this frame. + */ + _fleetMarkerTarget(fleet) { + const { map, state } = this.scene; + if (!map || !fleet) return null; + const zoom = map.zoom ?? 1; + const toScreen = (wx, wy) => ({ x: map.root.x + wx * zoom, y: map.root.y + wy * zoom }); + const marker = map.fleetMarkers?.find((m) => m.fleet === fleet); + let wx; + let wy; + if (marker?.container) { + wx = marker.container.x; + wy = marker.container.y; + } else { + const star = state.galaxy.stars[fleet.starIdx >= 0 ? fleet.starIdx : fleet.toStar]; + if (!star) return null; + wx = star.x + 26; + wy = star.y - 22; + } + const p = toScreen(wx, wy); + const r = 20 * zoom + 8; + return { cx: p.x, cy: p.y, rx: r, ry: r, shape: 'circle' }; + } + /** * Target id -> { cx, cy, rx, ry, shape } in screen space, or null if it - * can't be found. `shape` is 'circle' (star-map things, drawn as an accent - * ring) or 'rect' (side-panel regions, drawn as a yellow box). + * can't be found — EXCEPT 'nearbyStars', which resolves to an ARRAY of + * such objects (one per reachable star), each also carrying `starIdx`. + * `shape` is 'circle' (star-map things, drawn as an accent ring), 'rect' + * (side-panel regions, drawn as a yellow box) or 'invisible' (carves a hole + * with no ring — 'mapArea', which just needs to uncover the map). */ _resolveTarget(id) { const { map, state, panel } = this.scene; const emp = this._humanEmpire(); if (!state || !emp) return null; - if (id === 'homeStar' || id === 'homeFleet') { + if (id === 'homeStar') { if (!map) return null; const zoom = map.zoom ?? 1; - const toScreen = (wx, wy) => ({ x: map.root.x + wx * zoom, y: map.root.y + wy * zoom }); - - if (id === 'homeStar') { - const star = state.galaxy.stars[emp.homeStar]; - if (!star) return null; - const p = toScreen(star.x, star.y); - const clsR = map.starSprites?.[emp.homeStar]?.cls?.radius ?? 12; - const r = (clsR * 2.2 + 14) * zoom + 6; - return { cx: p.x, cy: p.y, rx: r, ry: r, shape: 'circle' }; - } - - const fleet = this._homeFleet(); - if (!fleet) return null; - const marker = map.fleetMarkers?.find((m) => m.fleet === fleet); const star = state.galaxy.stars[emp.homeStar]; - let wx; - let wy; - if (marker?.container) { - wx = marker.container.x; - wy = marker.container.y; - } else if (star) { - wx = star.x + 26; - wy = star.y - 22; - } else { - return null; - } - const p = toScreen(wx, wy); - const r = 20 * zoom + 8; + if (!star) return null; + const p = { x: map.root.x + star.x * zoom, y: map.root.y + star.y * zoom }; + const clsR = map.starSprites?.[emp.homeStar]?.cls?.radius ?? 12; + const r = (clsR * 2.2 + 14) * zoom + 6; return { cx: p.x, cy: p.y, rx: r, ry: r, shape: 'circle' }; } + if (id === 'homeFleet') return this._fleetMarkerTarget(this._homeFleet()); + if (id === 'travelingFleet') return this._fleetMarkerTarget(this._travelingFleet()); + + if (id === 'nearbyStars') { + if (!map) return null; + const zoom = map.zoom ?? 1; + const reach = reachableStars(this.scene.rules, state, state.humanIndex); + const out = []; + for (const key of Object.keys(reach)) { + const idx = Number(key); + if (idx === emp.homeStar) continue; + const star = state.galaxy.stars[idx]; + if (!star) continue; + const p = { x: map.root.x + star.x * zoom, y: map.root.y + star.y * zoom }; + // Off the current view entirely — not worth a hotspot or a hole that + // would just balloon out past the screen edge. + if (p.x < -40 || p.x > GAME_WIDTH + 40 || p.y < -40 || p.y > GAME_HEIGHT + 40) continue; + const clsR = map.starSprites?.[idx]?.cls?.radius ?? 12; + const r = (clsR * 2.2 + 14) * zoom + 6; + out.push({ + cx: p.x, cy: p.y, rx: r, ry: r, shape: 'circle', starIdx: idx, + }); + } + return out; + } + + if (id === 'mapArea') { + // A big hole with no ring — just uncovers the map area (left of the + // docked panel) so a pan/zoom the player tries is actually visible. + return { + cx: SAFE_RIGHT / 2, cy: GAME_HEIGHT / 2, rx: SAFE_RIGHT / 2, ry: GAME_HEIGHT / 2, shape: 'invisible', + }; + } + + if (id === 'panel') { + const rect = panel?.tutorialRegion?.('panel'); + if (!rect) return null; + return { + cx: rect.x + rect.w / 2, cy: rect.y + rect.h / 2, rx: rect.w / 2, ry: rect.h / 2, shape: 'rect', + }; + } + + if (id === 'endTurnButton') { + const btn = this.scene.endTurnBtn; + if (!btn) return null; + // Fixed footprint (MasterOfVegaGame.js: width 190, height 46) — the + // Button's own container position is read live rather than hardcoded + // too, so this stays correct if the HUD is ever rearranged. + return { + cx: btn.x, cy: btn.y, rx: 95, ry: 23, shape: 'rect', + }; + } + + if (id === 'empireButton') { + const btn = this.scene.empireBtn; + if (!btn) return null; + // Fixed footprint (MasterOfVegaGame.js: width 190, height 42). + return { + cx: btn.x, cy: btn.y, rx: (btn.options?.width ?? 190) / 2, ry: 21, shape: 'rect', + }; + } + + if (id.startsWith('empireMenu')) { + const item = EMPIRE_MENU_ITEMS.indexOf(id); + return item < 0 ? null : this._empireMenuItemTarget(item); + } + if (id === 'fleetShipProfiles' || id === 'fleetCountControls') { const region = id === 'fleetShipProfiles' ? 'shipProfiles' : 'countControls'; const rect = panel?.tutorialRegion?.(region); @@ -279,6 +577,7 @@ export class VegaTutorial { this._stepLayer?.destroy(); this._stepLayer = null; this._hotspot = null; + this._hotspots = null; } _renderStep(i) { @@ -291,16 +590,43 @@ export class VegaTutorial { const step = this.steps[i]; if (!step) { this.finish(); return; } + // Pan/zoom are frozen with the rest of the map by default (modalOpen); + // only the step that teaches them punches through, and only for those. + this.scene.tutorialFreePan = !!step.freePan; + + if (freshStep && step.fitReachableStars) this._fitReachableStarsView(); + // Re-arm the fleet selection a prior step's star-info click may have + // cleared (that click mirrors onStarClick's read-only branch, which + // always drops scene.selectedFleet) so this step's own star clicks quote + // a move order instead of just showing star info again. + if (freshStep && step.selectHomeFleet) { + const fleet = this._homeFleet(); + if (fleet) { + this.scene.selectedFleet = fleet; + this.scene.map?.setSelectedFleet?.(fleet); + this.scene.panel?.showFleet?.(fleet); + } + } + const sl = this.scene.add.container(0, 0); this._stepLayer = sl; this.layer.add(sl); - // --- darken, with a hole around the highlighted targets - const targets = (step.highlights || []) - .map((id) => this._resolveTarget(id)) - .filter(Boolean); - this._drawDim(sl, targets); - this._drawRings(sl, targets); + // --- darken, with a hole around the highlighted targets. 'nearbyStars' + // resolves to an array rather than a single target, so flatten. Skipped + // entirely for a step with `noDim` — one where System View or Colony + // View (opened directly, below the tutorial layer but not gated by it — + // see the header note) is already showing and must stay fully visible + // and undimmed; those steps have nothing on the star map worth spotlighting + // anyway, since the map itself is hidden behind that screen right now. + if (!step.noDim) { + const targets = (step.highlights || []).flatMap((id) => { + const t = this._resolveTarget(id); + return Array.isArray(t) ? t : (t ? [t] : []); + }); + this._drawDim(sl, targets); + this._drawRings(sl, targets); + } // --- the step's window if (step.kind === 'callout') this._renderCallout(sl, step); @@ -349,13 +675,15 @@ export class VegaTutorial { } _drawRings(sl, targets) { - if (!targets.length) return; + if (!targets.some((t) => t.shape !== 'invisible')) return; const g = this.scene.add.graphics(); sl.add(g); const paint = (alpha) => { g.clear(); for (const t of targets) { - if (t.shape === 'rect') { + if (t.shape === 'invisible') { + continue; + } else if (t.shape === 'rect') { g.lineStyle(3, HILITE_YELLOW, alpha); g.strokeRect(t.cx - t.rx, t.cy - t.ry, t.rx * 2, t.ry * 2); } else { @@ -406,16 +734,20 @@ export class VegaTutorial { } _renderModal(sl, step) { - const w = 980; + // A step with `noDim` (System View / Colony View showing underneath — + // see the header note) docks its window to WINDOW_POS instead of true + // screen-center, which the live content behind it is using. + const pos = step.noDim ? WINDOW_POS[step.windowPos] : null; + const w = pos?.w ?? 980; const bodyText = this.scene.add.text(0, 0, step.body ?? '', { fontFamily: FONT, fontSize: '22px', color: '#e8f4ff', lineSpacing: 6, align: 'left', wordWrap: { width: w - 96 }, }); const hasTitle = !!(step.title && step.title.trim()); const titleH = hasTitle ? 46 : 0; - const h = Math.max(240, titleH + 64 + bodyText.height + 110); - const cx = GAME_WIDTH / 2; - const cy = GAME_HEIGHT / 2; + const h = Math.max(pos?.minH ?? 240, titleH + 64 + bodyText.height + 110); + const cx = pos?.cx ?? GAME_WIDTH / 2; + const cy = pos?.top !== undefined ? pos.top + h / 2 : (pos?.cy ?? GAME_HEIGHT / 2); const win = this._window(sl, w, h, cx, cy); let ty = win.y + 34; @@ -432,7 +764,11 @@ export class VegaTutorial { } _renderCallout(sl, step) { - const target = this._resolveTarget(step.anchor); + // 'nearbyStars' resolves to an array (see _resolveTarget) — the first + // reachable star stands in as the single point the connector line aims + // at; the per-star click targets below cover the rest of them. + const rawTarget = this._resolveTarget(step.anchor); + const target = Array.isArray(rawTarget) ? rawTarget[0] : rawTarget; const anchor = target ? VegaTutorial._anchorPoint(target) : null; const w = 460; @@ -462,15 +798,65 @@ export class VegaTutorial { if (step.buttons.length) this._addButtons(win.c, step, cx, win.y + h - 40); - // click-the-thing hotspot - if (step.advanceOn === 'hotspot' && anchor) { - const size = Math.max(44, anchor.r * 2); - const hs = this.scene.add.rectangle(anchor.x, anchor.y, size, size, 0xffffff, 0.001) + // click-the-thing hotspot. A 'rect' target (e.g. 'panel') gets a hotspot + // matching its actual w/h rather than a square built off anchor.r — that + // radius is the LONGER of a rect's two half-extents, and squaring it off + // a wide-but-short panel would overshoot past its edges into whatever's + // beside it (the star map, for 'panel'). + if (step.advanceOn === 'hotspot' && anchor && target) { + const hw = target.shape === 'rect' ? target.rx * 2 : Math.max(44, anchor.r * 2); + const hh = target.shape === 'rect' ? target.ry * 2 : Math.max(44, anchor.r * 2); + const hs = this.scene.add.rectangle(anchor.x, anchor.y, hw, hh, 0xffffff, 0.001) .setInteractive({ useHandCursor: true }); hs.on('pointerup', () => this._onHotspot(step)); sl.add(hs); this._hotspot = hs; } + + // One click target per reachable star. Independent of advanceOn: 'info' + // both performs the click and advances (see _onStarPick); 'order' only + // quotes the move order — this step's advanceOn (should be + // 'fleetInFlight') is what actually advances it, once the player presses + // the panel's own real Accept button. + if (step.starPick) { + const stars = this._resolveTarget('nearbyStars') || []; + this._hotspots = stars.map((t) => { + const size = Math.max(44, Math.max(t.rx, t.ry) * 2); + const hs = this.scene.add.rectangle(t.cx, t.cy, size, size, 0xffffff, 0.001) + .setInteractive({ useHandCursor: true }); + hs.on('pointerup', () => this._onStarPick(step, t.starIdx)); + sl.add(hs); + return hs; + }); + } + } + + /** + * A click on one of the 'nearbyStars' hotspots. Mirrors the two branches + * MasterOfVegaGame.onStarClick itself takes — 'info' is the read-only + * "look at the place" branch (clears the selected fleet, shows the star + * panel, then advances the tutorial itself); 'order' is the "quote a + * route" branch (sets the map's route preview and opens the panel's order + * view) and deliberately does NOT advance — the player still has to press + * that panel's real Accept button, which VegaTutorial has no hook into + * except by polling (see update()'s 'fleetInFlight' check). + */ + _onStarPick(step, starIdx) { + const scene = this.scene; + if (step.starPick === 'order') { + const fleet = this._homeFleet() ?? scene.selectedFleet; + if (!fleet) return; + const originIdx = fleet.starIdx >= 0 ? fleet.starIdx : fleet.toStar; + scene.map?.setRoutePreview(originIdx, starIdx); + scene.panel?.showOrder(starIdx); + return; + } + scene.map?.setSelectedStar(starIdx); + scene.selectedFleet = null; + scene.panel?.showStar(starIdx); + for (const hs of this._hotspots || []) hs.disableInteractive(); + this._hotspots = null; + scene.time.delayedCall(200, () => { if (!this._dead) this.advance(); }); } _drawConnector(container, anchor, win) { @@ -515,22 +901,110 @@ export class VegaTutorial { g.fillPath(); } + _retireHotspot() { + if (this._hotspot) { this._hotspot.disableInteractive(); this._hotspot = null; } + } + + /** + * A click on the single `advanceOn: 'hotspot'` target. Which real action it + * performs is the step's own `hotspotAction` (VegaTutorialData.js's + * HOTSPOT_ACTIONS) rather than a match on `step.anchor`, so more than one + * step can point at the same anchor (both 'home-star' and 'view-system' + * point at the home star / panel) without the two colliding. + */ _onHotspot(step) { - if (step.anchor === 'homeFleet') { - const fleet = this._homeFleet(); - const scene = this.scene; - if (fleet) { - scene.selectedFleet = fleet; - scene.map?.setSelectedFleet?.(fleet); - scene.panel?.showFleet?.(fleet); + const scene = this.scene; + switch (step.hotspotAction) { + case 'selectHomeFleet': { + const fleet = this._homeFleet(); + if (fleet) { + scene.selectedFleet = fleet; + scene.map?.setSelectedFleet?.(fleet); + scene.panel?.showFleet?.(fleet); + } + // Let the panel finish sliding in before the next step lays its + // spotlight over it. + this._retireHotspot(); + scene.time.delayedCall(240, () => { if (!this._dead) this.advance(); }); + return; } - // Let the panel finish sliding in before the next step lays its - // spotlight over it. - if (this._hotspot) { this._hotspot.disableInteractive(); this._hotspot = null; } - this.scene.time.delayedCall(240, () => { if (!this._dead) this.advance(); }); - return; + case 'showHomeStar': { + const emp = this._humanEmpire(); + if (emp) { + scene.map?.setSelectedStar(emp.homeStar); + scene.selectedFleet = null; + scene.panel?.showStar(emp.homeStar); + } + this._retireHotspot(); + scene.time.delayedCall(200, () => { if (!this._dead) this.advance(); }); + return; + } + case 'openSystemView': { + const emp = this._humanEmpire(); + this._retireHotspot(); + if (emp) this._openSystemView(emp.homeStar); + this.advance(); + return; + } + case 'endTurn': { + this._retireHotspot(); + // The one place modalOpen genuinely has to move — see the header + // note. onEndTurn()'s own gate (`if (this.busy || this.modalOpen) + // return;`) is the only thing standing between this click and a + // silent no-op; everything after that gate manages modalOpen (and + // this.busy) itself exactly as it would for a normal, non-tutorial + // End Turn click, so there is nothing further to bypass. + scene.modalOpen = false; + scene.onEndTurn(); + this._awaitingEndTurn = true; + return; + } + case 'openEmpireMenu': { + // toggleEmpireMenu() is what carries the modalOpen gate; the popover + // builder itself has none, so calling it directly bypasses that gate + // entirely without needing to touch modalOpen at all. + this._retireHotspot(); + scene.openEmpireMenu?.(); + this.advance(); + return; + } + case 'openResearch': case 'openDiplomacy': case 'openLeaders': case 'openColonies': { + // Real dropdown item buttons all route through the gated openModal() + // (see the header note), so this hotspot intercepts the click and + // opens the screen directly instead of letting the real one fire. + const kind = step.hotspotAction.slice('open'.length).toLowerCase(); + this._retireHotspot(); + scene.closeEmpireMenu?.(); + this._openEmpireScreen(kind); + this.advance(); + return; + } + default: + this.advance(); } - this.advance(); + } + + /** + * Open System View directly for `starIdx` (bypasses MasterOfVegaGame's + * gated openSystemViewFor/openModal — see the header note) with the + * tutorial's own onClose/onColonyOpen wired straight to advance() (each + * guarded by step id, so a close/open from a step other than the one that + * expects it doesn't skip the player ahead). + */ + _openSystemView(starIdx) { + const scene = this.scene; + const stepAt = (id) => this.steps[this.stepIndex]?.id === id; + this._systemView = openSystemView(scene, scene.rules, scene.state, starIdx, scene.art, { + viewerIdx: scene.state.humanIndex, + onChanged: () => scene.refreshAll(), + onClose: () => { + this._systemView = null; + if (!this._dead && stepAt('colony-close')) this.advance(); + }, + onColonyOpen: () => { + if (!this._dead && stepAt('system-view-colony')) this.advance(); + }, + }); } // ------------------------------------------------------------- skip prompt diff --git a/src/games/mastervega/VegaTutorialData.js b/src/games/mastervega/VegaTutorialData.js index 1d5d313..38cdb74 100644 --- a/src/games/mastervega/VegaTutorialData.js +++ b/src/games/mastervega/VegaTutorialData.js @@ -15,16 +15,69 @@ // adding its id here and a resolver there. `homeStar`/`homeFleet` are on the // star map; `fleetShipProfiles`/`fleetCountControls` are regions of the side // panel's fleet view, resolved through VegaSidePanel.tutorialRegion(). +// `nearbyStars` resolves to an ARRAY of targets (every star in fuel range of +// home, one per star) rather than a single one — VegaTutorial.js flattens it +// when building the highlight/hole list. `mapArea` is a big invisible hole +// (no ring drawn) used only to uncover the map for the pan/zoom lesson. +// `panel` is the docked command panel's whole footprint, regardless of what +// mode (star/fleet/order) it is currently showing. `travelingFleet` is +// whichever of the human player's fleets is currently under way. +// `endTurnButton` is the fixed HUD button (MasterOfVegaGame's scene.endTurnBtn). +// `empireButton` is the fixed HUD "Empire" dropdown toggle (scene.empireBtn). +// The four `empireMenu*` ids are that dropdown's own item rows (Research/ +// Diplomacy/Leaders/Colonies, in that fixed order) — each resolves to null +// unless the dropdown (scene.empireMenuLayer) is actually open. export const TUTORIAL_TARGET_IDS = Object.freeze([ 'homeStar', 'homeFleet', 'fleetShipProfiles', 'fleetCountControls', + 'nearbyStars', 'mapArea', 'panel', 'travelingFleet', 'endTurnButton', + 'empireButton', 'empireMenuResearch', 'empireMenuDiplomacy', 'empireMenuLeaders', 'empireMenuColonies', ]); const STEP_KINDS = Object.freeze(['modal', 'callout']); const BUTTON_ACTIONS = Object.freeze(['next', 'back', 'skip', 'finish']); // Ways a step can progress WITHOUT a button. `hotspot` = a click on the lit -// anchor; `shipDetailClosed` = the player opened and then closed a ship detail -// window. A step with no buttons must declare one of these or it is a dead end. -export const ADVANCE_MODES = Object.freeze(['hotspot', 'shipDetailClosed']); +// anchor (what that click actually DOES is the step's own `hotspotAction` +// field, not this one — see HOTSPOT_ACTIONS); `shipDetailClosed` = the player +// opened and then closed a ship detail window; `starPick` = the player +// clicked one of the `nearbyStars` hotspots (see STAR_PICK_MODES — the +// step's own `starPick` field decides what that click does); `fleetInFlight` +// = the player accepted a REAL fleet order through the side panel's own +// Accept button (VegaTutorial polls state.fleets for one under way, since +// that button is not part of the tutorial overlay); `external` = something +// outside the polling/hotspot system calls advance() directly — a callback +// VegaTutorial wired into a real screen it opened itself (System View / +// Colony View), the same reason `starPick`/`hotspot` need no poll either. A +// step with no buttons must declare one of these or it is a dead end. +export const ADVANCE_MODES = Object.freeze([ + 'hotspot', 'shipDetailClosed', 'starPick', 'fleetInFlight', 'external', +]); +// What clicking a `nearbyStars` hotspot does, independent of `advanceOn`: +// `info` opens that star's read-only panel and immediately advances (paired +// with advanceOn: 'starPick'); `order` quotes a move order for the already- +// selected fleet to that star and does NOT advance — the player still has to +// press the panel's real Accept button (paired with advanceOn: 'fleetInFlight'). +export const STAR_PICK_MODES = Object.freeze(['info', 'order']); +// What clicking the single `advanceOn: 'hotspot'` target does — VegaTutorial's +// _onHotspot() switches on this instead of pattern-matching the step's +// `anchor` id, so more than one step can point at the same anchor (e.g. two +// different steps both pointing at 'panel') without colliding. +export const HOTSPOT_ACTIONS = Object.freeze([ + 'selectHomeFleet', // ring+select the docked home fleet, open its panel + 'showHomeStar', // ring+select the home star, open its read-only panel + 'openSystemView', // open System View directly for the home star + 'endTurn', // unfreeze modalOpen just long enough to fire the real End Turn + 'openEmpireMenu', // open the Empire dropdown directly (bypasses its own modalOpen gate) + 'openResearch', 'openDiplomacy', 'openLeaders', 'openColonies', // close the dropdown, open that screen directly +]); +// What a `kind:'modal'` step's Next button does before advancing, in +// addition to the button's own `action:'next'` — VegaTutorial's own state +// (which real screen it opened directly, and whether the Empire dropdown +// should reappear behind the next one), not anything the step's JSON needs +// to know the mechanics of. +export const ADVANCE_ACTIONS = Object.freeze([ + 'closeEmpireScreenReopenMenu', // close whichever Empire-menu screen is open, reopen the dropdown + 'closeEmpireScreenAndMenu', // close it, and make sure the dropdown is closed too (the tour is over) +]); const PLACEHOLDER_RE = /\{([a-zA-Z0-9_]+)\}/g; @@ -128,6 +181,17 @@ export function validateTutorialData(json) { if (step.advanceOn === 'hotspot' && !TUTORIAL_TARGET_IDS.includes(step.anchor)) { fail(`${at}.advanceOn "hotspot" needs a valid anchor`); } + if (step.advanceOn === 'hotspot' && !HOTSPOT_ACTIONS.includes(step.hotspotAction)) { + fail(`${at}.advanceOn "hotspot" needs a valid hotspotAction (one of ${HOTSPOT_ACTIONS.join('/')}, got ${JSON.stringify(step.hotspotAction)})`); + } + + if (step.advanceAction !== undefined && !ADVANCE_ACTIONS.includes(step.advanceAction)) { + fail(`${at}.advanceAction, when set, must be one of ${ADVANCE_ACTIONS.join('/')} (got ${JSON.stringify(step.advanceAction)})`); + } + + if (step.starPick !== undefined && !STAR_PICK_MODES.includes(step.starPick)) { + fail(`${at}.starPick, when set, must be one of ${STAR_PICK_MODES.join('/')} (got ${JSON.stringify(step.starPick)})`); + } if (!Array.isArray(step.buttons)) { fail(`${at}.buttons must be an array`); diff --git a/src/games/mastervega/VegaZoom.js b/src/games/mastervega/VegaZoom.js index 0cd6d8b..214fc4c 100644 --- a/src/games/mastervega/VegaZoom.js +++ b/src/games/mastervega/VegaZoom.js @@ -47,10 +47,14 @@ export function buildZoomLadder(worldW, worldH, { steps = ZOOM_STEPS, maxZoom = * than the area needs — VegaCombatCamera.js's "frame the whole fleet" * feature is built on this. */ -export function pickFitZoomIndex(zooms, boundsW, boundsH, padding = 0) { +// `viewW`/`viewH` default to the full screen but can be narrowed to whatever +// area is actually free of docked chrome (the guided tutorial's fit-the- +// reachable-stars step passes the width left of the command panel, so the +// picked rung doesn't pack stars in behind it). +export function pickFitZoomIndex(zooms, boundsW, boundsH, padding = 0, { viewW = GAME_WIDTH, viewH = GAME_HEIGHT } = {}) { const w = Math.max(1, boundsW + padding * 2); const h = Math.max(1, boundsH + padding * 2); - const ideal = Math.min(GAME_WIDTH / w, GAME_HEIGHT / h); + const ideal = Math.min(viewW / w, viewH / h); let idx = 0; for (let i = 0; i < zooms.length; i += 1) { if (zooms[i] <= ideal) idx = i; diff --git a/tools/verifyMasterOfVega.js b/tools/verifyMasterOfVega.js index 189e09d..93a7b73 100644 --- a/tools/verifyMasterOfVega.js +++ b/tools/verifyMasterOfVega.js @@ -5946,8 +5946,13 @@ section('12. Tutorial data'); new Set(steps.map((s) => s.id)).size === steps.length && steps.every((s) => typeof s.id === 'string' && s.id.trim())); check('every tutorial step kind is modal or callout', steps.every((s) => s.kind === 'modal' || s.kind === 'callout')); - check('every modal step has a body and at least one button', - steps.filter((s) => s.kind === 'modal').every((s) => typeof s.body === 'string' && s.body.trim() && Array.isArray(s.buttons) && s.buttons.length)); + // A modal can advance without a button of its own — 'external' steps (a + // System View / Colony View the tutorial opened directly wires its own + // onClose/onColonyOpen straight to advance()) have none by design; the + // general "every buttonless step can still be advanced" check below still + // catches a modal that has neither. + check('every modal step has a non-empty body', + steps.filter((s) => s.kind === 'modal').every((s) => typeof s.body === 'string' && s.body.trim())); check('every callout step has calloutText and a valid anchor', steps.filter((s) => s.kind === 'callout').every((s) => typeof s.calloutText === 'string' && s.calloutText.trim() && TUTORIAL_TARGET_IDS.includes(s.anchor)));