From e8f8d05cfab30c0dbf0a4556aa47c36cd72f6f5a Mon Sep 17 00:00:00 2001 From: "Matthew N. White" Date: Mon, 30 Sep 2024 17:40:42 -0400 Subject: [PATCH] Add AI seed grant draft --- Development/AIseedGrant/AIseed.bib | 118 ++ Development/AIseedGrant/AIseedGrant.pdf | Bin 0 -> 112947 bytes Development/AIseedGrant/AIseedGrant.tex | 98 ++ Development/AIseedGrant/mnwteststyle.bst | 1590 ++++++++++++++++++++++ 4 files changed, 1806 insertions(+) create mode 100644 Development/AIseedGrant/AIseed.bib create mode 100644 Development/AIseedGrant/AIseedGrant.pdf create mode 100644 Development/AIseedGrant/AIseedGrant.tex create mode 100644 Development/AIseedGrant/mnwteststyle.bst diff --git a/Development/AIseedGrant/AIseed.bib b/Development/AIseedGrant/AIseed.bib new file mode 100644 index 0000000..e9f14a7 --- /dev/null +++ b/Development/AIseedGrant/AIseed.bib @@ -0,0 +1,118 @@ +@article{MALIAR202176, + title = {Deep learning for solving dynamic economic models.}, + journal = {Journal of Monetary Economics}, + volume = {122}, + pages = {76-101}, + year = {2021}, + issn = {0304-3932}, + doi = {https://doi.org/10.1016/j.jmoneco.2021.07.004}, + url = {https://www.sciencedirect.com/science/article/pii/S0304393221000799}, + author = {Lilia Maliar and Serguei Maliar and Pablo Winant}, + keywords = {Artificial intelligence, Machine learning, Deep learning, Neural network, Stochastic gradient, Dynamic models, Model reduction, Dynamic programming, Bellman equation, Euler equation, Value functio}, + abstract = {We introduce a unified deep learning method that solves dynamic economic models by casting them into nonlinear regression equations. We derive such equations for three fundamental objects of economic dynamics – lifetime reward functions, Bellman equations and Euler equations. We estimate the decision functions on simulated data using a stochastic gradient descent method. We introduce an all-in-one integration operator that facilitates approximation of high-dimensional integrals. We use neural networks to perform model reduction and to handle multicollinearity. Our deep learning method is tractable in large-scale problems, e.g., Krusell and Smith (1998). We provide a TensorFlow code that accommodates a variety of applications.} +} + +@article{KrusellSmith, + author = {Krusell, Per and Smith, Jr., Anthony A.}, + title = {Income and Wealth Heterogeneity in the Macroeconomy}, + journal = {Journal of Political Economy}, + volume = {106}, + number = {5}, + pages = {867-896}, + year = {1998}, + doi = {10.1086/250034}, + abstract = { How do movements in the distribution of income and wealth affect the macroeconomy? We analyze this question using a calibrated version of the stochastic growth model with partially uninsurable idiosyncratic risk and movements in aggregate productivity. Our main finding is that, in the stationary stochastic equilibrium, the behavior of the macroeconomic aggregates can be almost perfectly described using only the mean of the wealth distribution. This result is robust to substantial changes in both parameter values and model specification. Our benchmark model, whose only difference from the representative‐agent framework is the existence of uninsurable idiosyncratic risk, displays far less cross‐sectional dispersion and skewness in wealth than U.S. data. However, an extension that relies on a small amount of heterogeneity in thrift does succeed in replicating the key features of the wealth data. Furthermore, this extension features aggregate time series that depart significantly from permanent income behavior. } +} + +@article{cAndCwithStickyE, + Author = {Carroll, Christopher D. and Crawley, Edmund and Slacalek, Jiri and Tokuoka, Kiichi and White, Matthew N.}, + Title = {Sticky Expectations and Consumption Dynamics}, + Journal = {American Economic Journal: Macroeconomics}, + Volume = {12}, + Number = {3}, + Year = {2020}, + Month = {July}, + Pages = {40–76}, + DOI = {10.1257/mac.20180286}, + URL = {https://www.aeaweb.org/articles?id=10.1257/mac.20180286} +} + +@periodical{JEDCspecial, + editor = {Den Haan, Wouter}, + year = {2010}, + title = {Journal of Economic Dynamics and Control}, + issuetitle = {Computational Suite of Models with Heterogeneous Agents: Incomplete Markets and Aggregate Uncertainty}, + volume = {34}, + number = {1}, + url = {https://www.sciencedirect.com/journal/journal-of-economic-dynamics-and-control/vol/34/issue/1}, +} + +@article{FiveGuys, + author = {Ahn, SeHyoun and Kaplan, Greg and Moll, Benjamin and Winberry, Thomas and Wolf, Christian}, + title = {When Inequality Matters for Macro and Macro Matters for Inequality}, + journal = {NBER Macroeconomics Annual}, + volume = {32}, + number = {}, + pages = {1-75}, + year = {2018}, + doi = {10.1086/696046}, + , + abstract = { We develop an efficient and easy to use computational method for solving a wide class of general equilibrium heterogeneous agent models with aggregate shocks together with an open source suite of codes that implement our algorithms in an easy to use toolbox. Our method extends standard linearization techniques and is designed to work in cases when inequality matters for the dynamics of macroeconomic aggregates. We present two applications that analyze a two asset incomplete markets model parameterized to match the distribution of income, wealth, and marginal propensities to consume. First, we show that our model is consistent with two key features of aggregate consumption dynamics that are difficult to match with representative agent models: (1) the sensitivity of aggregate consumption to predictable changes in aggregate income, and (2) the relative smoothness of aggregate consumption. Second, we extend the model to feature capital-skill complementarity and show how factor-specific productivity shocks shape dynamics of income and consumption inequality. } +} + +@misc{Reiter2010, + number = {258}, + address = {Wien}, + title = {Approximate and Almost-Exact Aggregation in Dynamic Stochastic Heterogeneous-Agent Models}, + year = {2010}, + series = {Economics Series}, + publisher = {Institut f{\"u}r H{\"o}here Studien}, + editor = {Robert M. Kunst and Walter Fisher and Klaus Ritzberger}, + month = {October}, + keywords = {'Heterogeneous agents' 'Aggregation' 'Model reduction'}, + isbn = {1605-7996}, + author = {Reiter, Michael}, + url = {https://irihs.ihs.ac.at/id/eprint/2021/}, + abstract = {Abstract: The paper presents a new method to solve DSGE models with a great number of heterogeneous agents. Using tools from systems and control theory, it is shown how to reduce the dimension of the state and the policy vector so that the reduced model approximates the original model with high precision. The method is illustrated with a stochastic growth model with incomplete markets similar to Krusell and Smith (1998), and with a model of heterogeneous firms with state-dependent pricing. For versions of those models that are nonlinear in individual variables, but linearized in aggregate variables, approximations with 50 to 200 state variables deliver solutions that are precise up to machine precision. The paper also shows how to reduce the state vector even further, with a very small reduction in precision.;} +} + +@article{CarrollEGM, + title = {The method of endogenous gridpoints for solving dynamic stochastic optimization problems}, + journal = {Economics Letters}, + volume = {91}, + number = {3}, + pages = {312-320}, + year = {2006}, + issn = {0165-1765}, + doi = {https://doi.org/10.1016/j.econlet.2005.09.013}, + url = {https://www.sciencedirect.com/science/article/pii/S0165176505003368}, + author = {Christopher D. Carroll}, + keywords = {Dynamic optimization, Precautionary saving, Stochastic growth model, Endogenous gridpoints, Liquidity constraints}, + abstract = {This paper introduces a solution method for numerical dynamic stochastic optimization problems that avoids rootfinding operations. The idea is applicable to many microeconomic and macroeconomic problems, including life cycle, buffer-stock, and stochastic growth problems. Software is provided.} +} + +@article{CarrollBuffer, + author = {Carroll, Christopher D.}, + title = "{Buffer-Stock Saving and the Life Cycle/Permanent Income Hypothesis*}", + journal = {The Quarterly Journal of Economics}, + volume = {112}, + number = {1}, + pages = {1-55}, + year = {1997}, + month = {02}, + abstract = "{This paper argues that the typical household's saving is better described by a “buffer-stock” version than by the traditional version of the Life Cycle/Permanent Income Hypothesis (LC/PIH) model. Buffer-stock behavior emerges if consumers with important income uncertainty are sufficiently impatient. In the traditional model, consumption growth is determined solely by tastes. In contrast, buffer-stock consumers set average consumption growth equal to average labor income growth, regardless of tastes. The model can explain three empirical puzzles: the “consumption/income parallel” documented by Carroll and Summers; the “consumption/income divergence” first documented in the 1930s; and the stability of the household age/wealth profile over time despite the unpredictability of idiosyncratic wealth changes.}", + issn = {0033-5533}, + doi = {10.1162/003355397555109}, + url = {https://doi.org/10.1162/003355397555109}, + eprint = {https://academic.oup.com/qje/article-pdf/112/1/1/5291627/112-1-1.pdf}, +} + +@InProceedings{HARK, + author = { {C}hristopher {D}. {C}arroll and {A}lexander {M}. {K}aufman and {J}acqueline {L}. {K}azil and {N}athan {M}. {P}almer and {M}atthew {N}. {W}hite }, + title = { {T}he {E}con-{A}{R}{K} and {H}{A}{R}{K}: {O}pen {S}ource {T}ools for {C}omputational {E}conomics }, + booktitle = { {P}roceedings of the 17th {P}ython in {S}cience {C}onference }, + pages = { 25 - 30 }, + year = { 2018 }, + editor = { {F}atih {A}kici and {D}avid {L}ippa and {D}illon {N}iederhut and {M} {P}acer }, + doi = { 10.25080/Majora-4af1f417-004 } +} diff --git a/Development/AIseedGrant/AIseedGrant.pdf b/Development/AIseedGrant/AIseedGrant.pdf new file mode 100644 index 0000000000000000000000000000000000000000..d83f4b63b43bb85ecfa4ba2250bfcadd3e4ef94b GIT binary patch literal 112947 zcmeFYWmH_twlIpj1`m?PgGcXto=knFSf z{qFh3J@>u8k1B=9LZKcS?U+OX0$2go`sOISyeKR(Mph;c zrT`8uAmHf_g+?#oocrNY4_*<(H*mZ{$x_+}U%6 zYKQ!gkQX5aD!AN&di3NV9%Fp+CQCl4UHz|=hvyeD>`JMxx33_b=b6jyI|TduakT(Y z;%6$+W)`H?x`a|Je|=fk;r-C8jUdo^wLUHpSY~mE?Gu=j45D8C@iWFSvQvGvf)$66 zsb`3Q?%m2ap~2J7w;u9by+ioy;dv}hL)Z)UKI5P0vVL3Z0etA*g@%4g=48kG6i^eS zXmOXY29qXV`mNUjdH|=9LReq&Ywj};{*Gf#wK7%|txwm+H`PqQw&6B7ZkJvmk)DSaYp1ChOa>6Y@f&U#Xi*W1sb4Z%v;K53I^O z<0Sj$i}(&ByH!*32eXJ$p!WWe)v+mf#3GQ5nZSf7f|C}6AWA5bmOj(Evc_cXUJ+KZ zS&22P3@8wHjI^@H=SxGUMoL!=Y9+oZeCsbILswsd=P>7IzgdRl!%tdfHn3(;N=o0ctskk3U#ZDBC#_yv;gO6y56{~rG>cTz1Fl92Cfz1+PA2?1qQz2} zmiHkeC#tI3C-8!KFt2e zd7%0$M#b)V19*AwBa)31!0~|iPz3=%e^tQ%&d2IKIm;V6YXe0i2Y|+X&t8cESd@%h z8~|Dm0sI%|2l;=o{uBN{AS>H{8vX(5(s47j*x#;HEiSR_OE}OZy@C1GwT!BwbUYv4 z;=NcRsiQJRz-^G|X-31Y_Q`nw}yQMvC~y)@bjO)ZW+Tf2?$xny5hIOw+V(f>hCmSX(K+A z1$CTjonoJJ4#0951xg3($X#@Hk%yj=pV@_axCPfVuGG|NVQA#ExWIY%g9NleFtT34mve<<%MN~*UKY_8G4^BW+joDq6OzT zP`qbQW>!U+Xp1i?ryVNkN0oJazAhC&?3(}1qKwOOE=$2SHbG+|=*k;SLt{lU-MEH= zb3AH*UpCj;2DUwIgNE`0)*>7AL4R>#sXl8#BHc!K3eaW@M<6zp+(SkBUJtFTK;4{sy-QXTiQ zXp~@t)WtVa?j8PLa~yp#EG*mI2y5ra{%(3(X1-d#3%9;|uF7=p>WwFsjzL>HE%QaH zl^*eGu4S;TrfjqnxK;a2yP+S57o@Ixt(9H8=9mnIo`9p!uInU&=EHC_dYQ2Poc9BN zKX}}>rlcL&&JIAs-^pv25`o0+5b)ED#qAm4p{n}KNd%!{xxvt{iG2)N{7;4+CT1rq zm)q8TNOai*GYhoBC{t|jfzJsqcv{>tZYoly%KG4xAw(v>e|0gdIGq*?iqHZxZQuR6 zTRomlELZ<_WZ%KgA9&?La-Eu*zkN8x zZJ}f(Sn1b*TBaNe4W6jtAiFhSwd zbJbj-XWqw}e-OcC0uWDi3$ks!&bDK?(_wcNqUB7L| zl~yRtz*Cso29(!)+;|n;)uySAxITJ08$41P@8l2b2scpCCz< zqK0^<0mvEx-|I#S(;7kjm`c?ggk^wy9IEYGKoabrLf+AtTP}NHOL*h&Ta3h7YmP=H zwAxwx(Y(|AWv`oWWBs%KZ@*Igz_QdeBs1bL@exCCTeAY%iR)Dg9j_fYRd1m}1#dhk znpTDyE{mxb(z*C6NIrGRs)kT#?pSCKiNbw{AVUeK&Ng)$B{$ZiSuWewQ+~}U^)~h3 z|B{Uw%tB1|%%2;H(u?<{^VbMLAdkVdfR>~K3dnPr7hDp((GVZ|vYB3E^ITo7{hrVi>-knfLc%x7x1@#Jylb5h}((vTxK>@j&Pt zMcLHgW-3P=-rz5L_uHAWU0pixwqwS}GFURId5 zdkPjv-@~KX104#@J9``8C_i?OrD!L9(79-DI^?f#la+4xbwNn1?6{1 zSFY!eoeiB@3{FQKKJ+Z4vX`ptBIm z(4+Ui8LeSVL=-#~`-Kx-O++Y0D3D~sMG3n5?B#!z-9gnA(g%3Mx=uk4hev)Fj7b@xbB&3HN~N}^5tblQ z`yA>}YeQv4rNpsLm7+I>*e^&lkH;=qPKbY+`DSuNX zqa)&qAssG)*MOLiHN+sE_w8)D%7`LqfY4!T9wRLmFK0ypEGGZwgk_@IDnGAHXBg*J z(cY#dT}v%K$14^>_6g`w@)fHu#si9q=Ak$@$}dm9O>=eqGoCbbp)*lK9+X+Nte z3;X&(eQ`P71Hp5cW!g4h%34acGi{!BU?N6PGzXVb$$&g2tJvl_K5#e0j*{v`$xx~W zUZ1_mb(0~OEcg`$eA|`yoHyH8;EX*&{RHw%Ff;(2rG<__A^*1&)2Nk&4@!HOO`0?p zdy9aSAZ#o#oA&P;WXTh>$>I!B5scpV0|V?9QqIZ#zoSM+Tz2`%kR17Acc^5| zondOT%4d#MXHr8b>&o5M2pmEmWaa{@V(wN(D1svvmQ&Q4>=+jV7m1QzYD71%Zvc8j zxk%B*iUeHV+{&=J2=Bz03TgXDK zlFp2SwFxhO2_YqdNc0K0L)yfm3 zj;ld*oJ4r6`G>3ks% zWq$bDn#5Gz$>#99!H+|b0%v{Uyr5a3!~C)W?|8pp4HfS!H~p@&^|!d$FMmJNi!mgT z@s+jtdS8_dYN?pY9jepoUJ98s05eZXNZde1id1l5B*6jVWeQbT9HZCdGUk$KYwR$o z$LU_X>K$xUl?Ky)Py4w3ku&|Quz0$_X0E&=~p z;`fj`{>A&R#E+fpKTiB2)ODir>#)6=<=7gM@(L_r5S~k9Iu*>A;fRLX;jEG;A!52T z3=a)e=^0<~du(N)_pvKz7w%ST#rLk3=p?N7E@OIKa50gMP?g7Vd$_oJz8n)tDYQ*c z!Hn8%Z_Yd8-*`7sCqNqMT0+71Dab%2gW^;}A%CVZ98p=+dM1S#fmqaGEP@nMoRF;_ z65irRTPG>Ec97NC+>-S1G)Yw9?A!1l=W*&(M2Egnkioo%3u-(tuGKS>Q^SZ{+nq_F5M9th~Zbfd{JU^vIt z6+bq-TwvewvMe|4+aY7`jg?K@Fq1Qhglw-NJ3C{ZZNtT9r`Q-XUgDvG8#t{5u?Qzc zaJtb>^+!QMU#CrH>%b2+#r(X{ykX^(PU=7R>GtxM=m&2`B9+;W);aEYqs~Ih*i$n+ zw<0z^NG(@O%x@zn&dZ~7m8;xmzs9x2@2Jp?m*Tty@;vk?CKcJ$t)lAewaxrPnXYzHXU)G7Ze8R5r0lgLHOF#Mh$skOkianWFH$hkzhqtRF^)|;gbMQCWxnUP|oypwM{$R#?&S%>7y9@o<}VXjohzRW@jgkwx%v=yqmFsf$Z=} za%%nMiFZN9A+LE;Kb12KJ3^26n^EC2r5E*@k~(Kvn0QK$EDdNK?~X^Q&;-6qPAdKc zOJw@oai~(pBBGx3ectZEX_!(S4^X{rPGyFanP^gE!n?ZrH6UpM17p&5e=1Vds)|i_ zn+BsKgZL9Hm22;6h}d(LFBxEAD$UN1E@71Kl0Mkz1(0VN#E9x7wtCbr;*eT#L$@RB zIZtr$S{3-}o4zc@=U$LW^RzPRvZe{*nGR3X8Z-s*pyunS9ZJfo+K{AY?Gbeqi-2eC zu0}qW5xqUo&MTP5+!=8?^B%9#45fc2;OHyu$gg29<}9c6LW;@`DnJI;b6ABP_B=f! z4-Mn!eFE{_b3#PLg+UJVi^Mfg@Au(*)iSw7u17L&)bz;d3`{V4eR5xI_+%bV=$N0- z;q1ejTCUSf^SL6^Pa$&G+WN+^Y>_Pa)C18ib)5Z7f;u~xnuEQ7UKPaXUt+`?(RHtQ zkU!6&!??zDB1gMpT{syE>~3mcdSgSw%tLq@K^vgd-r)5*9EuXfbehj5?%OgV@})9r zY6sKkgp{8);E_Jfl9DSbcaTq-Vkp@B#KF7as3NRr$nuE3#K<+Y&GaXY)d{pNgMpmR zGmGWxig$zU9V}3(NM`xerODTD-bpDNX%_8M2-wt!@vO*K%G&_ivz;`Th`!sQnw+&A z3%~Ih+%L%~T`rMH@}9NAG-Qz_u+{Px@qQPFS#~Tm&}EYJE=UW4hh@e^I0udRs+K=r zkb|Ql2*w*roO4)I`@3>24pNOpKsLals<`NLu}y~(z6n&P>6FRPiyxc5eehn*7(r;V z&+iBY!6vc$QSZOXDnHLUf*PCAcO_#AH*UITpoG$eflM;Sk%m#3u+W`#ChU$!rm9jr-#uO@;Vz6^9CkM_`}*4` zdx&!R(78xys(%+5oUA^yf`nIIT?7-~!Tx$hXN3cZuURL;`bK}X5xaBE^#qJ$YZC)n zl+{J|m_J;2@%(NJp+9Li&pZ2BLUoq-j(!BD3=YotTllLm5!&LPT3i;Y*rAAE;aoMm zHW#9?wvehVMxSp~T8n*3ws-6UDuGD)J>XB*k@&fOwa$B|zd0ko&)iK6%D~=26jIta z!EN)@_1*&spY7M@egN^1U9Fx&X$lQ2t}YBd56)m+>4HU-7;sfy#BIJAU%H#V#m33crc;q?dYq5Wk7Mq-Z$%yVwcS^ptdmhV(%=|$w#u~qnUEurQC!rknRblnRrHL7*E z9^X0(IK;#8H&$wG-BY0mN19klqFu4FoIMKx0`RKxzQJ7$9d=ZQW}l_iI}ctUvaY7n z?j93T<>ZOZdn(unClbuCVjc&*Izz*mWqcV3uS3{|=iI2X_5){ zx{VoWKLY2apSNhx*8ps!8$6_gDa%k4o2YJ0?3z!6<&*H>9k z|Lb`L`0#i5#Y;Tf_&g}N$973M?=u&J<y>+}cv*@9Dap#s2)t z?%(|76RdCtCabo|{+b6{DK%#XRm&lq><{x1qEf`0I3iPqpDNTa%I^o!PSC%Jz%27v zuzjNx515Tuq*d_5Wv)36>zYytN%zNPM9%JAJ3o81K;}zSUqw6p8SMznh1DP3-$n>< z?&QEW6xL9ad9i*#V>{J=!8Z;@c7F^Zn`IRz>#G*om(_5L;#Qe)|bqD)Q4CVBQH zsoF%j6flT4Ayg1Xou3GL%Z?9Z{{0yhtyVdnLbiILn)S$GJ9ww6J$9P^E67|INj-i$ z9osD%8L1|26ao|9VZ$8MwaH7hLhq#tM}clKM$=V!CsN|o*ov4Pz6gL0Esf=+Vc?o2 zhYM<&A7OMZtTMI}=y??>kB9!cb{TeM*n3US<)*wXUPa-`QQ6Ou;g$c|lYjyfp`f&-wz*p}hs}1mOaK`#5Eut!+&f%<}JX(B1er|}9%{IX1 zM>i;cvqRkav|HJryLFdkyxfEP=8GAJL9Kr;BN4unsN-wI7nd0vNO}Bu+{_^iZ$9%% z$X{~Msgx}C)TC8_IimA^hGVgvavf_{Fl5ez;QkEIJDvt8^nXoTeW|tgb2N0&3ra6s(iBCJxtb32zO_3~?3#d4 zm_3_BdDXNp=-U?Zbz>J25wmgkr2CyRX(GPbOT`Ln=DtjuEAks-Fm4bXXTgMQRulmo5ZY8W}K&oyhW;K2PX$1 z@(6s;tJmtD>neiH?Q%FkLK%^@MG^^d%pkMirbaQ}a2tqqA36ibk%&(p+cI9xACuPz5yNeYAZ?x2&Y9sSNXXtxDV$*`c_Lzr9AA5u1# z;{Bse`24ngpX{q_+6vKEZH+omLO~S_rJpWQQo%K1NL$W}+v|(=JE$r=fq!$#$M(-7 z;(wp-J)Xn;mvg>{qrv+O@PC=`-5&)0ot6C~*2ll16xQj1gL0F|2VA}JsUf*ARI&sZ!9gL-%8VxmY}N!l_3 zc1KpRgF)V%u@`M}=N%hFu>Z|`~M@V3f>m6Jrc^X!{!(3>30_=K!?YzUDP4kRF+s18i={FRuU~kHuAZkQ2NrQNDLjS}f9Ypz z7<#FmmKfxQvZ{6YTWfe$h*~e!_&Qb&gR|@BfZhYExg)?{gA>Stjh+Y4EyLd1Jd%v^C;U^aO zeR+$8xW|uyzY92p2l4k=`kDA_cTa=c+$q>viANyFg+5-39D>)rUVV_MxXfT^7UX?X zmz_R+oJRAFOV#6RqNHYiu4&dOhJpj)w~Jm})6ZQ8?U3sBBgd%Zi3&xxj3%aj&6?P< zF1+yb+PacyB|=D^it~sG#M4wy)R{RLO^uwtco#1!E9bP~*qbZWLnRYusH$Z0x~-}> zi-X0_ZG#w9Kj!omrF_di&g{geaT4)D(>Wu-!GiUl$fw3{d?-w88rMEg*hFE=;sdi1 zPM3$OwV$uK3wtylB~$S`HwcW@Wgw+-^+qT*7QGXjz5+#BowZrzkBL-bt$$z12@t$@J6&#NPU43nk7^T?HS9(b(iwZBjzsD7`h{v z?kje8zs<;~#J3$Dqnt>;_IBcEuX=9mL2Co@6S_hP9R z@%l`vfl!emw#MEpW~;67bE1O%=P?VS>5Pe~NjOZiv~ax5-a@`|thL;=t&MRVf<{o# zf_tPNk_D$MdI@DW{lIQEX=Ez|{pU3SirpE3WN2Gh1(ZUgK9 z$%OaT)qJMw!ndY0D6#L!l2!GTnOalyU#VzSETR*JfDx{(a54KrS>?e?htH@Pc>hMYr!?~x<+H? z@LEi?lWLBOqTSP2o$BzTuu!GGMKZeQwvg(`XlMdMgh5=&>TpV6gt-Z=MomO0ZtB32K^ z(g#l9s!JUq@1=$f`$u+>JqY z-*1|h$W8E1T496d#!7?xZkD?Z-O4FexIn=Zh%b&DPkb3skbo9`h{YrnyQuaGT*t@2 zkXPB2^g1)UGS>99y3S}lMwrdoT%Mp^y|M$8$HXK4lA+JKY?>wlzsFin)EY-(;kp*FWL-<432z@v?y#?Hfx1EyD z-o<$?Y27*+HPC2!rYNFz)zus8Ele~Fv9T`e(jq}rT|@7fqaAKOjZ-#&bIW$4n>_aA zh3+gQMwa1_+Wj+iXZtd_?^lR4As(_Oj70S$EJ=ozFZbkUzzL$*x`P^Cm|9sSKQSX3 z)DlSA6)FfTt^mzIyjEMPb^8d~w;ke4z%k$cGJA607Bq8+GU7ElfKH|MHp0KI1SP!W zLMO6RJaetGr4Qu;543NT&ML{A6oxh83o!=Sz>D|a8(kyh1?xAdltxHep?A#9-fHIL zU?#9O9ldq=r7ev_A8O~tG~|q7e3=s6`@U2f?*sf>Atq~W6q%c!uo|Dd=Q%ErYa#A; zz4IyIEYI%fYwKB2elqm&$o*XXYTfMN>WX}bgos|yu^{_Zjl)M>l8K>7VWEGifZ+R9 z^lX8%@LVDMI~}-Aur96r>v78LneF^@T{p3hxl-dU1pIDEEHA%=UX{F|`>cwLyK`n? zd0?YxMkU(tfg{?8bST*S=xbtGM{R~;fKfeETyt*UITWByuU@GrOS?7KZSJa#di0pD z@GK6Sr|ak=#(X#3cu0ym%0Si~eIPI6u{lGao0II`gu)a))1d+iXh147j)q^GPXW@h z{h`Vs74!wwK%REjcsfzM!Lt5jU3`i`09bZwhZ|h4FRs zvdyHuPe-f1Z23H?N2Wm)PC_xq0N{??p*PXEFW z6A3~aq^kA6kV){g%7~24Zz)+7MHVbi(A`B}@A7MS+G|4`2l7|XAd`WjR)=$>^!}7z zoEj{9vz4Ty;&dxN5Wt0t@w|q12r(Zk5-L}g_9NhXpN%9ZT|C2Zbi@cJeV_o}II2-v z`hlR}3amcP1(Vq^^|iG-?Nh~q0urK;lcJ@Ji~Tma#dCs@P$nb;>BJ6C%H&gQJ6uy_ z9I*guHb(>>dt%3!pMx{6ps9vw&}*1}AUX645K@qKNEj9)(xQWCGZxyu+_j)1fHQZE zzL2&vvA={R6S-DyWod_*LK}3qtL0R>qeFm5@ESOY--ZEo7}NcH31lFO#9vPYVnmMp z?-HTg<1|X)h{}Va6~Gw$U;Or5&)Pjw5TwVG>}`0VENsb~6e|P-3V6Q=_f$wvm~Or@ z>oy*V5gf5=`7$k>tt|c$kTb6Ryc4X9(FTkAL;d47MquH(IMgMMztK3*hms7UafG(DG$;ySlCdh|CE-VGfy<_vm7bDWxmZDoIFR5b;IC**Vo9kscRPSOafW3BG z1;KVL;b1kr?Fps?Zt4`jzFpf<`U_h*U;7qErsv7KQ$dVCk z-ysmcUoEOJgYN*zw6KSXvkWNg1h14qTwd)135EF?7oa!O1_@;J!@`cJ2Uol^c|$wj zBB}rG#hZ&Ox&C_QhVU^;(d7=${UCNYSJHpN%y!zyJ47!Niqcg+b2E>@&MhN(;EVy0 z`o{N+u^m}AUe5i(=@##<3>07SG087pW9a>HPj9h|1_LI&H#lwa&5FEUlvZkmwzhjF z`=y7_DC=yVzb|mGu&IXL!rQ);U~+wO7ehrp+0dMB0^gKf+Oydtr0?SNL)R z`ZCWR;f=|gG~ye+RS{Z2HY8p!7VHQmoc2j<3^tjD(o#S6OG@+bwzt)_%!8s%h!&VK zgb}XBFsobs-(q==s;H%4ZO=lUg@5W&xZT)R)pIdj<&BqI;l)tYPd&~^6xn;}di6RP zMS`rLbs}C9yrPxW%+m+@_(OwJ&^sCA^qps z*L@=Pzq)hD{%`JFvT<^-|EGyqgsO(~F9??Be#OFxmE#|bx zn-Hih!n9w7=>1vqM3OXuuLr;Bni&rneXDnGNN#eyixKCe`4G*v-;dAN|2|ce<5>gv z{mzZZ-fo*pZSr)(-Tuz+8}UN7Y}vf{9LG^&n~RF2xeMuh3bHDsZ{cT%3MfYb$gWye zAKO-Le6W1uQLm-gQbJBdm37X)~Wj1T;45`i@x}O^q6@1FBUE@?ac zQD|lXFT2D|5mwy>O}WfZiE!N|0iQR5I_ooRVX>w>g>mj>V(3$=7Z7)YBdKm(vvQ!V zNgZEQ(ljyKu|Z}NdQIaIkj5a(7`bM(g;n0vUpZ)?fLke-)SE2xLBioHM_m%FFVZbE z?{_#o7WLtBC@4!|yzr={g%PO8bet%5IZ8P5mSulUN0>yL)E_}MRUBi`%;g@qIu^~Z zWG2m7Er+s@HL*Q2b&;^yK#EfhO_0lDMQd-JY*xn>@4D)WW*1RI$vdt-7df znhKV7a9pz+efKX;hA3Q>IHk)g-!}ZH)e-#F+Os301isuN5FIc|^i3UZyVq#4meDP# z-4CJg9&w#&3^Ywm({R++Duq^pn+j_0N@7PMvm~jbLAX z6MstPJ1ptxvu!1>?-A&HDXZAMitJD4OArDJ2fxe$bG8K+BT_E;!wZ!H((Z#~wA!OA zXESDG^jlKObH#~3My$*{mH7I2X61}-quh+JucyfJ($IJHHN)9w!f~&+MiJ=0Y$uP) zfj0TkZ=&TWf`a&0Sz|Q?>-nIO+s#5*^>alKByFZPrf3T?z!;6c!ftZhdrQ8&6C~Jv zw`gSP%%iBh99&|m(%a*mPed9 z=t^F!RCKrmyk*rk%wGlu5Cub@v@E|>Q&yXePfG~+9-6|?dGJ~UD+KFRm25Zbm%)Y6 zaT^jeYqV5Lf_D=?hYx-s4t*)>uW57J*4SzWubCtom~&72&!l*k=Fs@54%6P=Uv;(h z$=7FRNDnH8`l!fI>OKWT~@X>*>@_df}Q+$0H4|f2m$$7!Oh5Ae@_DkO{IB zx<-EWqH(7J%QIj?hOMu5Yz86v#;UWag`kx^=#4TX79xpe;&%VII9n|o?&nf85yxm4 zlM79k4slkE%f$n_G?N9w0zkFM{QHxVX^R@RGWy_QzqLZ_2PpkwbT2waOWDmd zM<~47vwYc=W`kSa*d3M?3LLA7C~Ws`wk@#L&>)zgSTq#AnXsSnkJ;pYry@(&740?^ zjnL{irZz~ZbPQ3T4KIkG@6uS$Pn1T=(U2nZ<9O;I3|G0xD5 zLE-qOGWKmV)n-a+$A~|TFsT6q!Pr9cB@A1Afu0RjM(xOgu}>7TB8L$7CR|KSGEKLc zqCWJi9KK-HaVy?{{<04!gRF}98vK&O$3*T!iO5c#;zCM+V(?Eeqbn(pdCA^f&GSSQoushnkr62Z%I(951P#7 zTe^qC7Ndzu;*a9MbMN?J1W3`6t|p*Wva3vzE8d<$Y(UuU&tS+7hhAJ$Jae=bs{!9Z zH_BZI|C_b=f4uqfxVHV5n=fqt@2%+GY|9V6E zAH5c3|Lg6p29S-5nF9a>gP9?Kr#cA4eqaCpQvTuj$Qi=HanJvsC5Ro!%=s6D4am#| z0E1cYC4wQG%xnM%I~Vi)hantn%wPbRjhz_;fPmN@I6PuJG%efZdf?Vk4^36Gqfu-Vw|8QzQd2Z)pN(IAhVe=@>9&GJvx zIPa-|01$)~0OERJ&&mFvDhTvoN)Yg&qn!6@+`}L7fUNBIig7&Ra6Yzz9^qh)2W6gc z{=gqOJk>d$sGfK}NqMAt!iPLb`3D5_fUot}hc4`Y-FMP}0J$D}2)Z`{`-3?-IUb$B zb+0`e8z=j{H6N-^B_{-YUk5%~9|U3htH$}@jVI`zw)?Jg-K%~7qW;0g5C5N3q_KY{<@ z`K0}0`6TO~v`-N5y+wflFze%}d(s(n?*TC69?JPR?!n-P(fNc2gglP6dk=y+AGG0Q z2jANr!u4peCr*#Hd7}R#;ePzy4}wPz{jus3=3~jl^}y#(FCHO(4UPw%Pj>yMRsN~j zlQs`Nd-U6*XCG=$IDftk4bVg6|NqZ_VuQb}_t(Lk2Iz4P2R)9jrxF5uh|;H${b^--n)mN# znTMI?pAQ&x@4v@2<^c+3e;E7VN1BJo&1~6L;HX7{8Ro@{YfGR_@V1h)?zp64;{{w(hIC&Hlr@cHK!0C;bsr?m%k zKbzf~^Raw_Kpr;|5H`re`T%@z+QV9PABOi@-Os3xyC5!Bj(ewb-RsKn%ExL6-{ zJe-djv#~z@dq9Ca`v1=+=CKZWS~h`?+n)!F$9Q-W%*OV#D|+h1V+np74Nv`l*jW5) z$9J#!KeYmZ?&tbPrcZP3pZdLZ@Am?ayRipbJwgA_JwiF}*B-7voVY-bYswRse_=mi za6GOt9H57lhJ)i_O?l$=)cRzrr}|_0w+H{Z6MwqC%?4oO0)zkhh@Bn4#=!+*`|IcZ zCikx@fQ^%l^Xb(8fBw8Z;uO}wXu1{wMI3K>Ak=cYcDHnrlfHaXvV)VpR=z4us>8Tr zt(Sj&rsllqZvNMM%g>w>*A315ZZG1}-%2KEPxiIKy}}9rSfzqhsL)8kD=*^Sn`v*1gRC{EWTNCd;yr;mFZk-}yQG?` z4|bbpXS3e+%YH)k9xpK=9|_xA$zf z>o%4ekQ)wx8qV0YCG4iu>J>BRpna*CM$zkuzv!iA+cxQx!gv9xwLOH-d z@x5jux|7OYTSdA~ioIkxq(u~XA&w~SeMyU+ot40KaEv+L*)d6qWaH=r`}^`*@vs@2 z5eRJQ>lww`2&;Wt;=JaYm?RMQig==!!?Z)!9 zg3>r%Q4u@lS-}nF>K(o4D-vF4{*xUNC^vj38YmzTk=XnAxMSa|Q=Yx{w;bu+K|(Fq z8OrAF>&zhkja>KMT?%x`9U~HG!K+ij<|17a;JvjkG-04`!hYkg zd)sr)t$+MX$F0PR`1)=mVz<DJ(otKO*_cH=%@cu|I}qTM4>q z<~CDZ9@N6B{Ze^jO#F$J%oj!GD8$8&;PL6)xqKCnqr0j7{trP^F@-}vI>Sp&&6-?BB3oWpXcnez%Mc99baiNx2pKvwrcGf(KVKs1PbHPz{ zfp{%rdg=UokW<}_OC4tSPVbPe<~QQ?PT8rz0Yp{R96-l zDX(2%!K5tm9vr}Z1M7+Z8}oTzmU8_ytf$KAZ}9eDOL^izi`U5_u;yc@K%B?;?iuEV z+Lx>O=vAQi#Jtv}k{fKs-R@2EkMYs|smtS|+lh`NuAg^)cc%qVFnm6Rl?>7tg^lFn zr{oz?j%_YvCs&Hs$17K1*G+n0G zf`kLU(9$_KUVM8_Q{1=b+;W@RN|MRUjb}wj;oVxKio<>2VShA+R1IwnyBkA3Xm7VH ztVA#P{)908#DcKoZ3dFYFIE2H)#!ltWyyI_@=@cc^jd&HaJTk%8Xt!OTJJ)krju9d zbzif@`!j9H8bb9*dLc_sWexmHnUh~} z*mA7xn;2j8g@wBsT1p`adEi-!JLVEQ{3*-4>tU@i5$?5IFDz(nJ3V{V&=lPyr)-_r zSyyZR^Q@67N^pa>o7E7JT~d#1mHYFMkv8d^I$F7z9~o}~iQ{o;pXoEr#O6OI?T{1R zt=;xSmxBF=(bF_u6Ee(fSV>Z+(S9}jJ zM~`8y!y7#oh$ZpW{ZQ7iqDtVuN|o)AtCSUhx?FX%Mwgz zjVDU(g?>{;%%hhsm}o9PICE$o30L4857Xg*)_xf@^w#JXRKV8NN0LMk$|j^LqZ2_I z(Jbhu?wB*hdbG3j`PK`r;uWeJqAaO0g}f+}T5^PLT+B~vB~8jY1>*QIIANc~qKI+Q zv_l$5Aa#I%5(WErb8mq{BQ6@x)FW%8d_7Ss{UBLIJh-Vv5yt{%kQy6PhmxN6!Hm?T z@GQ!>@kVE35I3>Y-#zl=t-RvFJlmExB(;z;8JZbAr{5V#st!fr&Ap+gpSmG7j%I$N z9nCQqU&MOX88YR`WhQ{ZO;){QdrG?7v%?msd~P)giHUFe@@?Y%HLLT>ggm#&?}Vij z?5<{MhKk8FERHj(ZfW0!qT_9u>RY70=B_qi%KbRp)LPZmVh=eRSiP- zI{f~_8Eu1rL-9zP%8TA%X}*$uua`Mk!gG^yMpl{(5valc)s;lA7^KLoDEab;oQO3F zx90>lQU{ZclJ1*Pm*S{BXYQw*{Dv)yZ-N_KIB*x$MO{g?)o~o|1)JrfTjY={k2X~T zz61(<;#t87a%Tgp*JGadVd3WZKztI;(SXYA$sqWd^(cuz75E4Hw4dVxy*>4kk zXFyK7iMhZLOtQ@xUW?tGO*?8}u?WQ)@&QOfFm+h_Ow2X--PvYkHp=Mf$Mg|yMVJf2 zVJUbV+Z>CNBrq*rdx z15iD!#^$&tlV=%g^^<{`-NOayl}j)-q<1pI?HrRY9TAY=4qpyOT8_`KcuHqwjg7XB zklKFor(Y@p46AAlhDZ)Rzw(r)9idSGeRM)t(fBCdZ}fxVqerT)kXqh+9@nK`7lXCS z3(rpcMnyj4Qwe2BVNtDN7-@yiKFS_NEOG>^ADzx-aQcV_PZlw+Tv-TL8@fVtvz5I9 zu@Dw8waT~_v(@{ZVe^8DuuH;GnNfw8Bm#}~?YyJ`D`3icF_Dl3#<|EY$0Z2Hm> z`-Kr!`84{g8a$$@DItk4Y8Rt0l{ysool|~s-CAU%lLJ_LX|;qn3DA|J(-c>WR|D${$q6I2{-=j!W0(K`rzmTRKN$%9r16M7;SV zxDlB0DW>aJG3Icls(*}xxlD)|Xr7v&o78d4dpEknxX6bCCfZcpCQ@lCk7=f2I?l581>1%;%G45lGCAvhXku-*2y>M6HCu= z8?zQ;USDlZ6rF=(IRWl@XpS>9m_4(zUEcj-Z%pNjiEFoZ1IO=j`>wDQ{aiGfK0wPF zbtGw`qg6+(h~cr~W+~@4WxAvWUqp7?VZ8Zq?YEucD%s^yXy5sz(! zO87fl4|T_|Onz84aU{zDg+jsdn00Lh-*2?Ps2M?bIp2Vv8_qVsH+T$N=WMQRH9{=* zL35fo{H4spZS=0wP4N)A|c(5*SJcA9u&E-q`^^yxZ#? z26h;nrhA#Qx1aY9(r{A|3}*Yd>@tg%zX_9Z|2n#j|JxGVfrO8V(i9QP*-l*&qkdH% z_%@YvT4*Z;uh;Si`2S(-9fLG!qK3`3J#E|Fcbn6;ZEM=LZQHhO+wN)Gwz>1{yZgl( zv48eYRb-s3%&Lfripn^7uFL1>IB18?;wt;D9G`AlxO$1mhJ~fT_1n4=Ma*%25A2=w z7q=;*Z}HbktCyM^6sLlGB&RyQ=P#_ZFw^#Dfl`jmL*x@7OP4?an_C!gv}g#dqCpE; z!jWa?E^nT1jAy%u4Y`$KKji_HFeuuVz2!0;UJ4W$HDsP`uf2v*zpCd>W~Dq`xhwf5aEEC>gZ6+IJC)`FWz z^4rG~3j?m*902$vWYLntHhepCXE` z$z^f~fpk0?CQE6qwgHb%mEV^W!qM-z<>*wgq~uisdE*CeTVKTn8>w)S{#T^oqGsD7 zc4*7zjE3vTMf1jHVzXG}Avg+c4*F7|H{;nYhHwq4vQD)mCJ`-B`pK}g2s~&%<1`Wd zN=`N=9I5-3u^t)`I}tgLyf#713eT$#m?=@<_+BnIY_t6pX@qPxZn6qEg`7VfIh$l~a%r8)YGuu%J}*7N)nYU=^6bn=8$MQQD5pP^Rq}7ezh3+4$Qd_D z%`{aEF)^ltckco{z*1rM)%M@zjL-ZURe)z^GwD&|D8PTavm=QaNPUqsNMk(|#gx#P zLmN?yiCo5Ho^hJ)GCC^vHfnbT&uhbnQ^ay`Am2X=)4E7AvIA)!u^iL82vPrm` zp7)x|`t@oBQct9W$yZ=+U5WL+_B*V;MbUE;En5gg1SW)8E^gB<&r3EqYJYRy5!dhv zM#b{5)QB}9-vk^JecL~%t8_Yy%ve5JT0Xx}3FOzisLb zIfVL371Zk|28qbJS~#nqFqw_0ABo&#JoB)mak)LZ34jGqNJzE)-XI1vKiC zj~ns3tECkE7`UjxUJ^-)k*aQ0T|3C}2>nX#{6vko@w5AK^Z1_rEiQdW`3=DC{Hbzk zU}%jE8K~qon#q^fqS5vvsk!)HJ$|mQnvFa8zwSg85!Ji95~sy7x8bjK)LI?WCOJZN z4X8jE!KEGw5vI0z9%a|}`}c(2?(FPav5D`5!4gmAd^u60v~wC=NvT2)SxcTXA2Q^; zo(xaASEv*h^_uE;$7OL&LVl3iCiO+X;e7i@ZxseQ!H}RpM=RWX6CT;wohuN;X#nK%bF<0y>yv{fIJoZ2%nS7gATxI`*7L*XH$ER>ndifcy|zD;1jqZYI|lj+_K5Hl_eO*-Kkq{# zIgRrY-7+ePsdEd~~dw)xvxfKls!JR{3Gk@MIo>ijD%a zx$uG%@qpr|n^BsJ2RaTo*|b^VH$b}SJ-3N-bKWGJs%kj$MU@L+B4RIkCjFTwOaAHs z&CDQn$cWjP0C`#*ua&4y(m*uIFDPYlXzMAE#-5kFBrfLHNcmh#Mun{!N?EyepyHAI zFV^0ON$j-h1or0y?cPdJ#xVqyL&aAIu3%4E$)3H>39lKVjfJo*m9d-eCmT!l(Y>Jp z3Ow|>Wb~~b2&OehRbdn&<0(lVs7y%6iavMJ!8Lxc`nu^UjhXbSno>EyNbiYFAByl=uRoH^F>j>*$%-~vv6>rIxOR&kQ;Pt~ZxZdw} zbD=!NIF1$*%r9y!wu{N$`%KutN*$X#F2h~=$fh%QVKe$ejD3yc%-f=Jf$jg^&EVa~ z@Th|dFiY9#gkK9&A??Cr?q!EZ^&#`|F39i_6@GM;JhWRpXNocgy!p$8ThiZLF`oUJ zO-8UtNoGu7&5YysN=u)Fb&z)#-&20R|8ihJ67kGzsds_sP!EIUu{ zTh96l?FUzg7;r40^cu&H7yxY8k;BOThMg=GiV7e%UK%Hzi`?;&K--M#hG7N{KDA1o z=B5yd{vtd<&carmV-3PlK?T34ljAmpaA-E;mYdF|idHltFM`(9+;> z=zMKbIZOB6lU2OhIuH6CQO$9bQRU7yk!jKl5!R|(ZllQWIh3yYD>&KoIjA|72TeVb zRDlTFG@b?xZWFF-?;s`Xn>uBkRO^k%e4F7{6miV9Pi=pk^abM$i-s$QaJ83fP>%_c zt3@+mV0mXRJ#D{QNIG%3via>gN^p!_df&8kFv40+xr|?s52*A;ZdPj~C|}1S7E-{t zu+V&y16~+SVOOE@;&w3H5`p@l&z6q%tOv*1DY-Y zJ*8mTC#^k`BPksoEX#dv3DB|%96uS6VNQ;1Vs@Xj#5!1Lv3^us?R1X(T)*>!9al^G zc{9opRp+Ng^Z zPsn-+l4cmJd5*AVoN_x`w1ei2cz2NEmG{RI2kYf7NQzS2W(bP6q zzyE>Cd{zG1KAlp$jWY^xb6QQ({$K$cZ`NpA?bTgXTZTo1fhAAk^|;A0bz-Kd?a80j zM_rv?I$tnM)%Hum@K)XIf@cHSHx}Y-Wn{L;Ajhe<;wtI2%MWFpCWLfS;jhFyX&mj@ zw(1Z<>ZD@Mm(aXx{@ry)oc*Pj5ijh{nD8__b^vOBvl4mi@VXeN|&maf0#9pKh1!6yU>d|xC1f#a$?SQ#y-rmC5bODhPS?7(|^!b z+iVVhH#Ul{qw>e4Q4L*uh$&RW5D}hQv&9m#o`z_U^@Ht}jd5b%aYL!VG9qdK7dM&_ z#0a5+6?+XLAwaY4YEj9X^otu+rC^t0N*ycF*hSTL=sDhS4-uRrM>TQyIc}F68h5!l zD*;!Cx&{{?pF|D-kH^%t8H6Do_GF8W0y`aQnXXqWU6kZpId3`vT^n|R2eQJvC(d8C zdRc=M&)}wJ`wX5$q&nOiVu61rh`R$n&xCTErgrjre^649Pit)()lBbPwDx zK`iA#R-;OWy6v|@Fd65@=W50*K8IQlaPgFhtlc)e@n9{cL~1u$B~zK#HCI&}r3}Q{ z9m+lWC<&C~nB1fiA5*2f|M4=qJ-U^O3gm&NrO_qOxGmh`%Z>o;v=|jivg#_AgY?cj zuPJJ`udDz%C!eSD#Ok%-<#Wtv<5U4br_iYmZHnEVq+^oDOEo+fm9viKFM@`dp~vNy zVwIPxdN9@}gnvK6gG;I_eFNuhsq$f{0}e1X#MI)wm@6bPk}Rp>Tk_MxYlv|NkJiVp z3Jv`8xZ{ZZ=9X{eJ}XiMTrlQJGm2`4^}i)t(1ut6)$}hHvRe<@`}}ZCNMoExfQ9*K zB`+)Yb@D*q%gS*&!mCdy{s6Rux$end%Z8B~)RiMKAg8(znF(@g6Oqa1m#u3)GRvDz zJ>u64a;IGrQoqzx8If5)spYoChac?QnV=M#{L-h|@k*YjyY{lc)->YyqJi;yoCnkAmL^aqhHI5w0cb#UR?-21?WP^(0c<;0VK_Y9S&%0Gbc$B&? zBcZ{Yz=^}W?b+6Q%IDT-|K`BwY+JZHr}%ZVG!mbWFPb{<<@ov})yu={{xON!b>&SU z@uLy?t3?Fp458=o1)4y|Qd{ny15aF2Dc24j|v26^V zn0+u~1!MGIeugcmLozKx;Aa?8WvvfmYTlD4Y?3%~*1 zR?d-7{F(5c?Pr-Lw9YSWQLV{_qn-a(mTU54J|xQ4qj)N?(ew(Dpt}fFzMcm~F9en5 zBA)|H4yt8a5r=p_de1R3bG+G&n$D(lX<}PR!h8mM=hX_4Kvdl1WpX*uW%p9RZRBT4 z`*dx|BuB&(sQb7z|DgOW0yn&EnYg`Yr=1_F+t19_jtYpnI7<>lFw$aD348fyjeHci>u;-P5954jMe9^U5v5fg z+8~oQVxcUAzzm$W|9f=S2u3VXN%%!WKzbt9cX)}&aiUzxLG{C&0)rQ zRL(p85dSH!k1e9eM}ZFgGICW>VPpthrVm|l^}JrrfuC99Ze%Wk5_rl-&G+w8HKpM4`=^W5Y2!4>!(wLRP?XnbAbKNPQ_ z$=c@4)cLlO^`gdrepZ=LdEd^Nv@eIKJARY7)7<4BvcW*wGN^v))0RlyvJ@9lcbx1l zUJJ!Y)+eYEV)oG#gx}jfSm4ceq^s_1O0Q63E;Ka~zVIK{Z5bt-M<82k4$I}E&+BL> zyr{PjnpEMsH_s%xZEc|$+73fxndL+Kav8o!GcbRvaq+F{1Im`4Xgr(y>)w;ylyj{Y z3-nBop!J&%zt~DQUonRdTi?uf%qDHF&}LA$){Kt-TKdP*nQ^wRxn7T<3DJbluE~^&Dl$M3W<7K6QxZrJ zWuLfp2P4Z$yKk!t;!ZD9N?k~Z%T-UHbgZW@&Bun6s5BjneJZ|t>;x|$&4pdV+jRM4#ynxVOU9-T?gSqI97>+L&X+ic17 zkbH1i!;lx}i4voN8!sI&Axwtr#^M$aY|6O-pPVOyn1bBy5!sZP;omZ5{cuz~y@MG< zy|AKwk(S3F*cE*E2J$j$68@^R>tP!dn`kq}DWo?Q@ftf#lJ?ogUpDj<+Ivvafg(}? zLhx$sGRyUt-{-8fc{e`GOOC4?R*@>UIU1tM5gkXZLp8>uS3!q2kE^k2#sswbkqq!l zru-$+m8{6&J#s3xaF$N?Rd` zPPI0wXWf)9^)jq$zZ)qC&uGKD5v~l}$yHO7J$P+WnesNy)#f}_Zw(4nQOa=ip-cP! zp%OSmS=BugbzRb0RBs2tCa4%UYP>eunWQ74+uNKuf8;Xz^eHg!f7{A`nlIv#mG~td zjW&Sj#TonH$rf@SEPU0elKxB{QDgFse0^?-(2)Mp?cGDlmOxxTKI- zT}Ms`$#1>6cca^BOWKP>y_gR|UnQ2Gk7S)~H{0QCSe5FM7Q`Nmyppm!r-ayVd^qe+ z9R2(1WCN}-LK$!t#vm$Qi??_VV%p^`gjGeI{kPkz|kVV#S7jLMGPUEz4?1pZN0CYXwp0vMxu|s&qxN9bkhUe3=0=U@i|hn+H}JeNm|Bl7^+0WH1_$(RDbJ#^WwWderU%Qtqbrl5UM)modTLFn{NgfZU{t^rzqt5~ zD!yKQAQgv(X-F_0BQ>;Dx8rK|xTKPaT5@l?Tr_P8GrVM%=jxRYB@ozFcfRu8?*sK+ zjx$`{eo@LGouV{P(az$4*vK?i^15I~W7FrUJ5%knPcTn3vx@g2fLszhGL6(V3>|-y zDij0$ceajDfGhmCC z9u@1~;b#wA3y;&$?+&W2zNjg4f3LjT%$X&Zd$S(nS*WKC5E`eXN@hQ|dZwr&l8Bm$ zntF-VhvJXfvu9H-{ZX>E){XW94f6W)QHeM2{)qZL+C=k3h6W0-0U9o!R7XWxN$cA{ zNIn_+voJ;`L-GJ1isQO1Cq&ZJ=09SSFV{N4`EYECBXBEmTQ#QaMZh31+#zQ$mv#WB z7_V-m_oezZf~ih>U~X8U!R=o*?_b1|aoAa^Hf?IXdFwTL)gp*K5Sd&9Ndk%`@zS_? zbPfYIt}{w>-+xlC3`^X$>sT`f8jW;WJ zMN#!cbxj@BZcR=fm`^|Kb4S;a|A@@Xw8^ zhY1l9BvH&|CGRY}A)-8aG2Bu4w&a~?mM{5G3eZE%NS@(&N!K4TT{a=^z=!(YY>uS)cS}LE^)EegnMOSy$2j%+Q%wX_@vV;O+hsO#hB@n| z4gy^r-+96@BXuZ$WGIwm!@GKoHhYdE$la%mIUpZG*rWmnZI>H!MT!r%pE$Rh7*XU- zSLhH+|0mw`2xT}oRQ7-`I;@+8fYNsbVKO24@r{ZDlp~q}243V16GwE==VE$7owt|+ zE}vL1+?W{`MEF-+6F<)Cagxu^hgbtwk={k!HWgn|@E(Ij7XR{2YrAW=RHV@>#3M!c z=dqCdq^%FzOHDf#o+e(H&-(t^%loQ23py=snW|m|5E7S3$V7; zbU1tUsxGJS4ZvDQoYcPUs3s|)XUCCVxt4I$bSYTifC*Gu_e=MZ?s67?{U)!~5nn9g ztutg*IEiUw;a2%0To+(5^k+~g*aK8CtUsR&h7`E6viM55^oe4N!w^flq>b5}HA+S7 za#5wOJXwJ?E`dZo%v~d}0cQnNcDHzm?`qX6vofm2<7Y*J5nNeMfakbtLw(nwfCF_C{gSaEBME8+fVbBo zjccA|nM?r%u9rLc_AED39L_LEQz9kV>N1Mz=Tj_W10hrrHhogf<%83-o7MMBnqSL5 zW`!5qLNI}!X;{_2YqGP*55{5!+utd`mqZXQsL~|G!YBf2b9`ohyemURztVOT&ME>U zA~T8ik^tDe5tDm!vAg(=x#<>ND{Fs8fyoQLQ@a`ZGsLZ~gM$YV=$==HN@~xk%CmY{ z6(qTi?C0Jx?AfK{OQ1_%rXxaII^?rsKz!AjczSgc*8(Ov} zv7zKe2;^6?7dFmUyIPoBY->}1TJc&sBrds{gN?t;Z;tdhT?zf2L&K&;-gxNq65KF? zK!&`ea8z|vH+bD}QCRM;1C_`i9M{K92}HEU(22RJkz^Vbg*j^z2W@PIX^Yl-=b>hj zlH;>`p9;NT8OydZ*A0TpWG5&5TBRgL>2w5hIgA8$@HW1y*)?}*F@8RYXwCu{pQtJS ztg@LV*6B56usY89NTKezPyKQa-DEMMyRhf|ny0;?N?%FC8#gWN*x;GJ03yVPTa~11wHofi238_2h-8%S`HJVI_32uzw^9LQj@fcigS5iU`41h* zGGPX~o~n(*M6u2KG|bV0cVa(FCd61bSQ_c{`2plr+~K)qQTGgOsgR~K1*s?VfmL4~ z*wKFYAMXP^(8~9;=&koq{-z@^`5-dSQ2j*Co`IiEyb>J^VIM2(H$GNSQ;|K=oGynl|-xc#Z@v!-9ZDl(6Lj^aHj^ z(CsdUE0TVFQ2!mKdF;c)zqBd+xF1}$f@89A1m&)%9$uzSKyMHlU&9UArYdU3YBaA( zRD!J@Xs19n@*yCyPRV%W86RSx0O{&HN&%oVax3s)Ml+ zj`t-z)pag;7Qow#*xQ7Sf|gPmY8=U1K*E>z;)+V{^o?tVu~=>63^=_(y#UOQu+IfN zg=rn*1J>Uheas%8IuGuo zwf_fPYqr)`2j_>e zV}FgedOmfn>gnKu|0POL&Z!ZTxC`V^)>S+BX1R%Pgnu+f4w9M_87gXcc)u72lDds( z1y%H%YV*@N3!@V_R#4JYJweQ9@8^lTl5TEy&2lSnxez(8Zc;kO-}Gd?J=ECz-o=AK zl<4i5apoDEBpNDTj)#~4Tic1>jx+$PY3{-}I=T+YKGBye_%uaJiyt6ogULpju@pN7 zSHDHg-aEAQWR3Zvj>nxQdOk9yETHXxPF}m}9{DcSV3)Y+)W|AXrZ}33a_9|2%W;?u zVAAur6Q=`nW$QZh;F+YNe%niq@_w<=d4(OsdyBny(M5>D^yUlD1veymmB0016B4I? z4_P~ZoYIk>1f^!>ldV(JIzod_Uen?)@IfZ`WN+OR6yI#nVu=|3a#=3?>)~szHk>Ern6vLnC1{Z!soOpJ z5OICVQ}f7cRiEWIuwb{L0{5h|D}s#gu+@R>%umV4U4Sl3eNoX}|LY|j-WcQ>*k|S* zqR~I;T{@vSOzkz+(wA#6pfmqRoquuSV+uz@*pL z(ahhdDCCFOcTXFURHqR$l6m9^ci%sNNp_5w}YFy^iAN|DT zq&0WjSmS9yN)pLeU>Y=5osJb3yOv(%BE@9 zssvpi(_K|F3dmVHHOhwc!7>Xlhd-Q1 z&gCE~aiPo%&lh+lEe~G?skOZgPw|%;(v;8wm-Xt{Hl1o063geSltAN(5~XCh-rf4M zz%_6c*e8hVt5vCbZJc4dDyIG%@?V*pD3Hb_?|K9ln})1IDhUZl0WZfv z*WN!rU=HUXHUAA4=uXbNKOt})qZ6K`oG1f7gA zw@1T#eaVMCxF_fD>wTqMUk?~}&|o{D5G{i%Y&7)i-O1?}W}<@Qm^in;k(sES<`k`=d24r6uz7bGX zIDQj^ZPeJXTaPA>KPOsQj?~CO9NODs{sO))21ob5 zIgELJS~P5sL@J>}+}39e;UsHKFA;~xCpt#-3czm*dr}9IZq721h9P=KK?IWxL@~@0 z5Kj!lD$dH-yhgQ(ZRVs3S!mRIqq>T3lHU8oXPE~GcM5AjJxha!3t2Wt*l)n65xYF+ z=sHI2dyhzn`$Y9rv`t9Fa}rgkXk65J({=lTn_q6xgc4xd@a;b2;7}Z5AAF%{`TxkT zvPZ0Ty%3ElXN6CG;jOL`-V0R_mrpg0>sP5yX@}^c3Kwu#yF^pwiX1J}8jZFf`$(EA zTs(WMJrvlNvm5S#z-m$#P*q;2pW>E=RPf?x93eRmy&G*vukPHUZuszcG?`c5=eNM^ zpbw@EePm={M z#qdeXY<%7DmOfMD-(4l%hh~cX;AhxBkH2x!A0Cb@UvuE36LiAM^-803Tf|Yn88h!O zrX8(5xSX!;(gc~~eqXJu$4ms4!8suog3Trhzyk*eyk?A}nL>MKUPIuY^3vMUf@vE z4RAYPz#c%zh>7##GmIp%#U0)uCOSImfn*#F*<%f#btV36UMPGr+i;e6X>$HDi{^Ff zl?pnfBa%kTqM{N0MJ9^KfatR6NkSOPlVKVmb-9740HEW+**@7Jb!@?ocj*ExaRU<- z#Un@z3C^P}y*v;U__@V}+e&rtq_;07G|dm`>Q=LAQmcW_^0k!}MJU(Ky|6n~DncCj zcJKxcQ#i2K6C0rI%pMDiZg|QNLdM^ux2Q7b?*yLgOjWFL2TH-_W4-3k5!}vus{h(brz9AKR;5+u(z!QLg<^3`G(Clc-FHkufv%>w9>=xc!!; z{HVnOG0FULgrnvU{9uil`9qRT#tU?RaWa5^R)!jr*(6D_d+mHlllxbvh4FF7tSElU zRxFyMzu~>gln#^^_}SWwkdUDJ;NP0l6xz73;3 zefJ^Yr0b@A+X`4#8X{SZF-d7pgPV`Yy0+HjoG~rxEm(FvJm$ISS>m98)fjWPhf9Y&=I5_v0Qe2==MqP_2arSc^NZTjDvKx7(M}lOu9AsC%}cMa@mFgm&H}^mrh*AOQL?%?Ihd2ROa)hldR;=}XFA%-Qs<^$@wQ_NKsM=A&F12y%yKyd-58luOI9w6F%4A;nBD7VhDi$a%zm zO7L~4`7DRfUs-y=LZL}gF%_rbA^F^N{Hl^X9ISSr=E#n5~N2qN}=vTc5f3YRst-j0LzcfH>2^i!k-g?AKvjn%}aK4P5u{5J3(g=j+84j9Bb98$c{E$pk)r9<^{Rb2=hcP%4ZRYdHq8d;w2 zm@N(}Ex#??o%yc450+H=3T14@3+}Bv7zwH*e$@r;yY1`MDnCxx zsp2n!2%==&g895T*?I$(Gk$}`Wrl=(*yOc2FOhF>y%_h2gPJ5!k}FcmMq>7~29!|! z4Y)(+p;1!<913%cd2sU>$7YsJnB;?cGHl@CM0GnKG4&r{K_PGuS7!_H?G^OL3xf@s zP!5n;b|%cg0LJ+&RPkcRs}$9rezAd9@X<7?=z!Lllb9hcg%!Q^IWy65DCu4FFzt!F zCOyjd{jour9kecTMq>IsoAdH8lpBer@MpAHdjK{Q{{exx(*lCr^^C=NH_(~`VCwDf zw7`)?zcK&>n6^(bpPkPEmeHHZTuoUjkA^ITOwDBRC3R0mvDrV>+^&_J$-nL(FI2&< zSQvLI%dmongL}`=RRK{6hoS=(5cA$#y3|i;)_$)%-s*`#@lR;wnK$h+{E0}>|c|E4F>SvH2=lu82<}OI2l-( z8wuE$TABQZ08nx=u~z*z(7%ZK|8vnlJjA~-%nTg<6NOU(1OS2nVSpGw0w4pB1;_)G z0LlOZfFZyLU}S4$YxD1DZEXNB2ABZ;0REV}{5$iU>uAF3v!6q$U>cpJncQ{8# zM7Kr6!@$fi1P3SNDg{LuP!vRrC&?a`S2P2QJ9TuWh5& z1j-2thvdQlHF2Ux)>eckPpL))3=9AOeBvUx`9RD8lhd%b0r|KMp#}^5k%d@WBhuCuup_|S#0LuI6awO+&iJIXMFjwXLH>XQ zWNjh0z7fhHO<@^(!oF^CLFEzGLIQ2czMAs7a+6M>9nIVzIDWGh_SG`AZdAcR(hzHF z6WS$lf7gB|>5GSLUG;oGeR673a16j+zqEn}_xI1~8Ts*OgGcQ$up@?LED%gp!~PKD z@_>OOp`oIpVkCm`Zvr9Nazpy-!D7C*3Hm_#_inZ_gT1yBYXi@1FcJbYP#!)9-kc!Z z2LZ{8BZ~X&_(FbL?}7RQF-#$V*9ET*?!Nvg_c{yZ`L4B|#0I&8PJ!E=L4rYjdwf5b zx=%7NfLvcbAb!3e!=7TEpJ9&uQ!>2q34ntKvG>KwDP#6gkivig`41!j*((U}_w`}6y{JynIhxAQ#tu_Bq$0Y8QZz8H{qLGYbF0`$%U@;L{0k#vH%FIWD8?1I9; ze9K*`>bS_Z{&UCEQTT=uw(h^ZBuv3s3}sfWP!=c2bH+`TMT<&~H=hLE?UxZ0qNIrSk~+ zfxh)hp!k8_^hzlC`@UM=YJIML$Bk+I{rgku=W#~obfiFEzS+x1qZ zn6n*eYc2jK%V?T3Idj$)eQn=fAS!W6Cm!n^&7C-R^TprEMpga@dlj81H#n~l#FekwthPvfiPGp$uy_jTE zc)SLyzM~-dc1M-=y!aYL@?Re$b^yg8g4b6~mrZ|IqS8i9wj_m8l*n`$ zT;Q90qHk(eI_zbRaJ1Os!{HJyTm-EzU_^?Yd0qd&@Es=%+H6IwOQ)k}=1*T-C&1wz zRQdS)dc0kWinFGl=o&;klxf5zJs3$ykER4y<^ zrjY2tB3|(l_pa+ZE4|Tb(7#fbX+0}v6ROpOarh*Q{7~Y7ok%s*0DfD=f(MSX^TNwm z7+Ghm;*bil$dMc*FHki~zub@53bfcu;olAS9t9$bx=e5eN{Z{?f0CgxNxN-gj|nh2 zt&~nmQ8MXs^^;^-i~gQ}^lOsf#1!on(EUZY%J)hZY{MN%A<{BEUbWwkTTvTKw0K;s z-2dYX{!@{`W8ds(yk?;F%El=4 zTDVF@07yoMhgsG01MHhxZ!fNP{;PjhdY~A`pMoa#zPoJDYvr+sf&9ZRBQ3l%1>#LF zN^#wt9bKvWxyW5ZdNdhdlH8gckAy9ezT(cExEsbhYxL#3#zLxwkjvE*>E7O4F>1*P zTqIWqpDP(eL7}ECLfCDob11Gyo)tD# z+`4Iu-)%ke#&RQwg0m?Ay=g^WW&rLmJH4EHe42=hz!t>*qzBGs)HJC%G0%vXAMxaU zh_iJD_r3x2oj&SRl5l6{&?HUKVwTl9AIxL56!zbC9@vC|+YzGsE^Y$T(e;JeRh^fy zM0HVhtP@1C%Kb-Rru{#Vz#{1n;VHkhdg7q4jc^~D^)Ss_9d@a9CVbYhK}s0@gNT+@)>bFv6Y%aFHv4Mw@0v1ZTj4IA zi1WgkOS(4x?${stZ0Z(Zf5bSGkKL->%E_86m#Lj@?Cwf+ z5Z0Pf;C1&5SvX;p7c^C0JVk(NCNc{WnKY`>pOo(p*Ojwawd0Hah(hZ@g&@<%a!s=> zb5<|vXbPHZY>W9HsgiY{iZ-D6yN;uSwBLv;mX`f_P*4wjfRht8=tbqSly#B_t z0iKV$Nr?2pbso=1zJ#M4gC9kdq`k<<@3bN}Y;5OGa*7pQgv||OUEuSyr+-^k8WCvU zT2HFnpkP$|phXLnN~qBf#HQsU%Wl=DR*d>fDmjx-CuUZW=C4yeRpf)Bx1cFz!N_c2 zo*^Z$m^PrSlVi_%;nnM7=%;(mC*MxW1oW6b=X%;`GsIHzMk5%KQ{9!4@!d>QyDV_s+67&z8 z69Icp@l%3#0prv8A>kVxtyP!vtdbb;;n<<}pERsOda71&GN%Z!(Z5UY(9}qT8HPD| zwj=acafNNW$?F4MzElM?a^C}!{VjB-^X&}MoP@udMzTnEjzVwD8+ebfxDQ^@O4=P_ z!U)`l#MJb>ffFBWhrHZmh=K_%S*xBhNHIc-451$V8ryl@1~=&nYk*SuEF~4@0{ba% zlJ3O*8Rna3yY36!biJy66RTXpzBL%Z+bWu@P7oooUT5mF(1@w!U8}#`mA7`C64jaD zdf+|1&%tHYsU0FEC%p2q?G;wFKD#Jv2V6)7a360}L8wgcYGivst_@z=4=onnRc8&* zcDOWgK0$h(|3;^O6`F!OZ%Q>}$>rskPZ*VJ4-#)MwEP8Pl{CUNrS%MyiD0Pfb5H8B zzyy1g1B?Yq+F=&)re{BTJ^I=?DcAc6{P*;jlNz)kD2azooXIb@_e>Mo*c02>`^Be- z?4S}Gb`>A?sQsOg_90Qrw<3~@zYqqL-v$!TQ#3i#rP?pI~-? zL$JmxiMFZY23wprV{OrM{danB5Pmtjx{gLzgeX~K^^}KVhS+cXn&XnqyajdEu~x$} zgdp~!Wb^rS-FwMRPdWtRbBM+tuQ#&vJ{U56L3E}A=1uga=lBw!mpbJlUAe(nPt`w2 zbOXZWShO2Kd4XQJ%#(K6G9`h*4+7%&=e#Rj^)j~r9s|c=Lo~}pH_58;D$Dhszbh%P z)-4)ETdU@MGGlD)kj=+Y5Xxd@nn4$efgt44LYiH~UEE&be6mCRrx<^%irKCm~>IKJjc$)QMd+Of{NTv`WZV-5x8wMOajtp*>YCwY9sEAA zlMV(jyK6IB3TAhD;dj?K0S^Mz^R05Tb59`7p&;B=AYY8#-IzOpiqX&uDrG36Sz`MA zf3bECL87!#fTqi~ZQHh8w`|+Ceap6O+qP}nw)+0v(GfEd-7%ZloP92Gk@-E}d4p>U zcmIw<`+n}t$>rA)X{6h5h@Pd6CA-nP#C}_e7{)38#tUO_pHDjku0$Jsg2@@M?ZbS- z$B3Z9SRUSGwv$&(cIUX{uQ{@TDMo53ULdG_-vn&%B{b%lj7K3gwPpR#FT~1E?|0K% zO~!blF&wnoQ;wi(rIrkk^fdmvLtQUqFK#?WmW=_4@tO}kcej-k+;-&~=-5y&XDOsZ z?|F2d)J*653T_*kiSW$}wQnTLqwyNc?; z#;GRLLmCz{niA@@kDmFUoA>J0sa&L7B+(=yy%Wd4>w{Uxcx%po9ml`hdVEwsK{U?y zJ?^hrt+i^_Ml<5KSlNHTj)eVeODMv<%Ig6$(=ZU8&YK;kXy11_y(wCO6XcJuI~E>2 zKKdeZT2WW5E7jWL_oQCTxX^Wjbu&rSQtN&M=aqZQ!|K^zSD_gem`i+M z5O*3<5p@Mk*+5%IX-Y}9Y^CBP1@^Ur`_+g)7oKJC4mWvB3Nfa z6j*%;dNId!1E4B2V^O$x&K$SSb5gLz#%8KMI`t>O7wEDZNvCevp)*m6zteqM_T}F$ zWrtZ)&{LcgY<7(B9;&qVdtFq?is>R$%z=mg*!uk=28{uQ9|EFjFB3T|{M>$oFS=^AE7|5!-oX*i<{8~dGNO+GZZ6Nh~M#Y~Bgi9uqVlwcIgtaH|ggk!`L z_hKt`N=HG`_T8GYi3R&y_xJ1T56ib*$~J5Liw)lt(W*bqKvt;K7c+dc@J*)V~cXLA_ioY5mT~e#UQv^p+xu zOdOz!4HcCXd&Y-)6Ks7#c?Fj0%iVDBDwPK^Q;k#ERi|PQ&8TS$h|a^EQf;g5Fj%MAu2mo-%6?{o!_Yh`B)Cz;d>hG; z15}?<%2OZk_>$v@-A`nwazGd>m!n`)|HV@^&)0EdKc%&TXh36~pJvni?b!HIvQNoH zrFPtRs^4vS?f$z{vzwoq!x^g)_3_Bl>gk;mS{w$_Nljs{EVxFuRmi(Vy%+1T07NjvLzuyjLSz4^Ic zyoJ^2Z?gjxmhI~zafH;BemwJCmmKt@EeQn`j&b5)g9L9iSao~erzv#e#r;}OVAoWA zgX&)Pj-MO$xFrLLwp@oKftW`gSPpCdG9ktHHyPUl_p**kUJr~h<_gz(yo|(I%8mIn zE-Ir@%pF=WZ(FCGOoE&3@e$f*!=tHh3SUmRjdp%_P{S%zZJW^?_Mi?N8I%o_bfd=F zGEFAQ8uR!~3@Qxt>XuVqEqrBMy@IXqTv<{O~A{592W~Xr6Wrzl&Cs5#yrO>5sXjGsQPV z1^)b$tKSuRwemEXkUd(-5ja(Yz4xC{xLI;gzljqZoTWcxGW*W5n#3T{%-K^~)H}su z;Bo=s;kA4^0ZGZ>r=secJ5rf`x74tGNbqQ5nB(JbOs^ILT|R(;m?Vt(e(c!;;yQ=UGr9>XW&T_>2&~ywYKl^#MJ2_a4%Tu2mh6X#9L`j0kTy(fkK^yIRlVp3k z+6;yAC}W>JEi3slFDkn3#gj~;7J$;qnlnJ{q!`@aegBTCRn7K@w^S}A=a(lxX_1bN z7H-<@T8%23t~%nxENmPW;65#2rtdgmcoU^?6fSl+xYu(SFp)gXSjL>tAZD+rH5-0H z0W8j7VpFyEyacqUV{g^XOz1vrZf4C<{w=rN(|fh0Bw^Nh4wQ96vZ9DN#Fj}0p4&08 z6&I-zmKn>aVsFgOevTL$uBkWpJ8&0wO0}R8?mU2Op=O%K-%DfV^oRD$K+6Mm-WxLV z`f0MQR2z*v`IH2hApA$HH+LrQ&s&Y$G(SHkKexRjT_I3~0*KSY3^>Wvn`_(B5-`L_ z2)$_~kWNeXzhk|}WANo_f=s;bO-K3k$ed0lYISPblU}3u#=!(G`HbR}g#a&rx$|5= zRzDGqD;|8xFV3UH_f?8r+XFg40M~xowZqH65|ka;JM*MrgG`JAiwoD`A(>B8;Oqx* zNS0+urv*kwLvxpa*+G2=rAHj01$E~vJAEc(xq32}_W|i;BbNXjpcetr5%-jfV}G22 zq%3+<^QprL*;zYLOS5t4^JnOV4JE(_a+fg}^TtmHTub3QLMi6d6 zGswDIjFT<%VBpQmK$EEL8FAN#RHFTYc0=DSzQ8CouKw_Eb%80!*-?yB!DUd?!M0@TEfW>!2TeLjZP z;=kvel&u~C$9%mU%E8s6)w1xxcx+b&Wyi5%Lit0bWv6>O&?NRgQ%ux4@S}S}ZoZ zYe?qZpC5r&P|^sg+Yb-X^2PP2--=%AcJPF@f+3~y4xS8%ZXBPl*=4a;S=Sn@z_pwL zrJR@cKE$Y*?A5($NX{%&9#_|;xj`8lq@30gYo)gst{dS2^4O`5bd)luY_GQCacH4s z3;8|IM3Uv>Y}>KWPKe0okUe{ODgz9C;Uu1R-#DwNnu?tf3kYcyF%6#vzaVh4kIBla^mV_zZx%sxqd48(hO-Hjk zTJ_{~b5vP6nMcU~bU}E-Y+*O6=7oXC9c%BTw;0zm97EdM<%I*&bHJPd_r7hV<@~PL z=PX7{jpb2$vS22v6n(<}ASc}M))$L3MMV*q%)G(vz1m{gpEq9iIO`dku6>HN1@YXT zeQ)MRc^^DbirQ#m$nFQn+q!^A9Nbr)))oX2z9_wibHt)Iyl(r!Hb-!iv+lW4y~vYy zVhb2)WZu2CgF9vCK@tabXJWWaMAdHbfyYYP?<#-B@x+oTclqxZHv9}k3OJ1H+>4m& zhhkqVxyQZq+jQQV5`1Pf7O?zXwr`|{v}AIP@(aa!XZc0SQ4-$u+AM1?Soem0;%U136WQzoE z-tTj&VI3I$4XB;hw;ke6Ok2WwfWSpVXL;~*+dA}>pkpQtb>Uhg=NSPt3(%futt?Jt zlGRoo!TCOl8OQJV+V6v8sm{H;nXuypa_}*_$vpj9O9v5~d7a<F`tGZ|GYNJZbqibP(>zogTYdsgEM(|qCX(GrvA)YRwjZ;KHnR#|XhE0g`r>oJgv(jkG!k$cJ zQWChA_}k`@g@PEl^LQF-s~LFZk*P!(J} zPN}$aW?G&5bZ`Xe8Kw_Tn}bBCb4-~@S8qkWBkeTVsG3qqn}oJmr&ij5l=IHGoawGx zE<+eOKA}s}(mXaE$L_N5o@Rb#n_9)fQ4v_8?9khl=!Eh;@1R1k+cgyl2A}KDZIN=l znhLUXQ<)D)9?!N=R)0M=kX90MQ`^B}fk#HaD8Esq9_p|p#t@By-YZiX5y|t%5QT^G z#f=x8US=!j$R>R)DoulpQ(?(f-QqlkYzB& zJo+z(`kAyT!7g$IbHh5P5C7hsTx9=yGtcDNg&0ObKXy-9;*czxVmrCwme_aWbW!WK@r|y5-K~JzP&03Ex_8{kh>ggE) zq>4S@lQY6uGqcz%qAbKn`HG2{#-;M~^IGxi420uRn)__-Rb0Yb4i@5L+tNfN-4ou& zZ%Sduq{hcDs2;SIe*pn>y5{~58son(*#9nx{eNi;d1VE8CBgrtF_``@8iV;ijq$Ix zz{vbx!Q%f1jlsbAf7KX@|J=oY(!%yXMDhRB68{rN{J*rs|L&Oa@ceHd@m~>w;~(z$ zUv}cZA_ODD|B*{DvNAI;|4%RR?~yI6olPA7b=0g4oJ~YbjO>g}{xca)&WN7%xWD`ZV2IgT%4$lA#_VrEB0VJrTEv5b~y_Dwvxy z4eB>+2`(>!_E!)2Fr?vnu%I0Xmz;1i<YDQF1RlB; zq|Z2A{R$Tfo_#7yRyG|W&W)P0Hp3fEz zjR2kh>Jxyh2dRGr^4PxKh}18WKG@f%GXPE%&M)k%-EA*W0Pc?~SVkuI1~(vXS09`z zfOH)$L>^V)5Y&Az1F%0Fnja?6wKlHacfgH69q!!K@}AwbfPYjQ7r>k5K`*p3s~aG< zptgoizpEeW_={TFs#A(Th5&GI0QT_seme4t1O*P>2V@Ngm=;jg2S?#o z&`TFY^E+Hiy9e|Fg3-|HN&xQvT|4WS8>N>yH89^la~b=-+d4&7UP(nsKKPWI@!LsF zxPJzDx4#EeXYbeu%(3R-0oYXw@B51_4h!+q8spbC!L7~(^b_%%y0aSe5o`MD*9!RE z8x{S}np3`{`dIv_}b>-iLasZhl_@3bUi(kUE?@d2*Rx;ba zNWav8zjIb#jr>oVLGOOym#h<)ol`%t&w8(eruXpP)ksh9-pR)A@ZQg@Kj1wnu>ZzI z-8Xm-RQ)G-4^{ndP_5C}$sN4+^yS-s<4OGGGJvalCgqSnxaUW&p7R%2FZo{y;@|iI z)&my!38)p?{x>Fgeh5x0nP&a=Dw%5k8@Ijpex6HP)5FKj;lI9(U2J!LZ?}HX2xG{` zF%2xY=5!d=O6Xg@pQ2f7K_*_>5I-!>sD&YajU z4uYBUVu+Mf=SdMlxNa2Tc&urcyJ6sdhR^Y?;-FM*ep`Hna3T7V&~OP74umUbUsHaM zX-WsaX))JEWRb+K=JR?pQH|Ho1>g)9Rp&5#5E#$lOu-VRxahipD~e&*dr1C^Re$n# z+)?dKFKELnqgck*7V4nP20K>>nZN)$J9W>eXgSn4rIQuV@VtvR@qij0F3mka`gedl zwV&n&-=?MQ72sqKO5g2N^g)l;s)sLefL|YXm4h?_hG5vcy}>8?1Q(ih=o0uCQwo|7 zA|rkLLT$ZC?D9SrOUFM36bta#m~eYDOn7SUqd|3(iewr1VXq;4XE!maBkiV`&C#xLl>15sUytDza!At2<+6Zr+ze-Z89Ww496)f}JY-+@@lsj>DLeuPGl?B4xxeo*{zPJ2FIn7)>7aAWv)@x>*pXMQiG_;=fE zKz6&*#)Vo|N&|a+F#zhLF*nVOyr*JCPF_ltr_lF=njd#i$?teCluN>a=qf2dvrqc~ zQMoJs12UCu^SQ{|O--S}`}AiPv*DE1hPPUqh>aUZFSDYJjb(l6nQ$JHpVN_v_Q7r{ zZ9U$mrmaKDR6dno{+cGVM#>YmK6swy0`;t7$$`kT?03%nB|$kEj!nsxJ)DWXN#Zg1 zNG-cSA%qCh)b*f+I861<0LCanRs^+#4n_)iBDZC9u#1th87nHAz>`d7v%5trB0K<+ zGTTcg1hIybA4$!*mt4MTY?UH+^zi(`XZfu|Z6RlxqAUOm&^MSK7dLZ#mGziOt9MtE zILnj8BjMG@Sb-#8X7n?P+Q-P z9Iofq>0&~%P7;d!q1#pbEPnzP@g}rR2rWaCl?wW_T?JEZ?q(BpwK$eLcBh^Y{I7E< zyVCp5gf?p<_YLUS(ac5RYf?-kAvo|KzV{r_jgN2IgdkuxG{UK{*04zDtWNNz* zb;$2oKUbSJ{9x3I8WeUa**juAJ9Vepv^j0KfyiaT4@PR-F&V(dVrZ0({NZdfJ5yO~ zK7~wk1JB5MGc-+Ad@0ztXf;+=2Cg|g<70+ox&aibD)o~~lV6RFpoon_!gJt53#y&n znm9CP*oN+i@{XfG7A9lO>VjLQ?SbW~93J{%v!^?B$4)OduZ>Q|GxgEI)OdaE2qW19 z#KNxZoy`YOTo|;FXm9JBqADtW^c%c$XQ924du!-SCRQ*rh+8zqT0wn40&$|Sz`dPH zDcORM68iUWkCKfFtSx;<47evD-s6BOKp?FP5Q|8RB_Tlc$UE_td06czq}KDyibs)N#*oo*XAZJllWe z?PS=CkzRyj8e!$tQMk?tGsCb8$_@e2!KBKk|}+g z0Crw`ZL;Rog#>W}dL76>uHc?s=v$fzEgO=PgwstL6j<&M+Ii^6v!`t-RhQD5bXkui z1cf@NC6Kd;-nBkKYPWq1{^h@#`|h=~Yb1rqM>4J3sQo=u3M1OH=e(v$3co%5`uD2A zQ|JZN*LmPcZjXUQFmDxuplr3nJb$r_6vpN^DpWb6H@-{ImC{w}1G}Kd7*R4lJ`kYJ z21#`r-)Miq#EX6=m7}1i?>biA7a#XY;fDX9G#~G5mW_Te$(^ntw1x@B2J~!ZxGs3I zyC2v_ONfl5=Mq%8<0*AjN{BUe-rZ95zxI%492$Sr66;%|FdTQhu#<^(E&5j^FR%P@?>{XNvM{oQI!bj{ylsA zeS~i#l*~X^N^e(OI*PehVU4*}Nqn+WdmfJN*LvrIN<&$JbQ_KyU=RQ;RhV~G;L1KC zk8PYV-k2~+)+uzydMMGIBQzI43a4J-NB?i4=qAIUZlvk3hajp2Vd3Z4>;uZL70-o5 zx|;z{=iO>4JR%wA)qu0%Y2GXMVI>?i+IoLw#D09H0($cVRk@JY>`)b%LAGTc*7Qo- z4Ck?%n%*o}22Sr?EhdeVy;KELH|keQ=cY=09eq!i`8(&d2+S_cn!ME<45V95&5^|c zqYSCc(O->k$J|aFKv!)8`P$l*7Y@bKurGs6-f7!!VeCeMtUPNC#IhN}y-z;!D9pfC2vgWkVPfwA zck@}ed=OQ{>?T?;R7Dg2&7d|-WqLzD#k({r5501l1F8+Kl&nX2>(^PFOVE12h@_&X z*pcp#(;8-@`ZiU_Pi;M~WCQ5p$B|r|)>FS{>-*~POHAoyK0Akue&4b*%Ff+hWV>DO zBHLPJrYqGhQ!D1#>1u-uqCu(b2Z8s!Y*u#0MubIpB_L_W2zj`5Vx}*=&dudX$kiHx4kbw&uGp!=oisEf;gj8QrDl~K3yh;tE6)gr;#lEIrDph! z5ARNm-}{%xRI8I=48%0NNKDbZN~#QT)nE%V%-2SEi0Xcu(p1Bd_{-^<-596OQ7$Xc zL~EQMcG{~CGnZw1xtqik1O$HQ7}mJ&wM+1gCnP^oIX>yW(?BKSlXM2g_T8$INUfC%x}MV!dxK=c@`mv*2j5Bg^53s@kltnRNnhzCPpz0(iGVQd5 z4^Ar-&ubMtkOs`}zQy}DWY+$$UxG9{A+!uM4%JuYi&cbOwoj#JeM;`(FDQXKO@sTb z9HuDsgwq8${+w@kicHuWXPr{5c%^nQ~lBx+X0 zoB>Y`Gqu0Qti}#=jTh0ric4fTJa|gW`T3pBxvNKS2`IqP+wA`mL7COTLJwoF2@ljV z+{u6FX-|L9cGtX1xK-7f=ZT|SgyA`t$d{PTNuAv6>hmcP-Im4MrEx##KTOfECQ6g8 zdehM6fZWg`ZQ{b12BKW0TbOgcpzt%XUKsRU`$uyGYhLH{nh`;!n<_2}=9F#SklIoc z4hQJcLnplxM3Q{+fe`4Y!fT9YW+&4~D!kn~mGqJ7C0H}f`DnD_^tQNNuL~XVKODv zE`m2A&o5QxCu6kMI#tPHqLWKF5ntel3V5?NMmNC6n%!G;?yq*7MZeoVrZn={Ud04Y z{B`!JXS$^ZOQMW{?0!clee)1!!K+Uq}IL+fxl-cuY;e!uH<$6EP( zp~bL;*uZl#g2WNYes8fe+>Io=Zu+G+);`PMxy6FDd>mfK+eDQdTh41tu)HnFGtVMx zr5a_yuVwZ=a@$*)tK0f#%naH8Tad~X9M7&>DV_Bw-URvTAb49l?GR@^{*bFlGfJEB z7BSyVYatKpSf4y3*$%SE4TMKqr5lFy|J@>*n(<#!>Wt(;2mF-bBs(60C4Mhn7Vm1`WeGPef}SYdn*-AAdqKiBI+H8 z7Zm?yTcD!&wqLoJGiEne`jW3q>9<&<&e_e8g(|6I(!N9QqzFBLsN>P)YNdV6egDRx zfMHGoCHxrau=-eRAw*jKnEe40jnlsf7sujwgT(GiS1 zlX=Mix`l(wd&GSV3e)*YRuSO2roWsb+Jhk7cLh<%qI%o!hdz?sLN137BJJwH_)Q=# zVt*~F+ivsXLLHcBuR0fIh94~^R$$ZZg%QNOCJAnYoZ9yrS7tF}v6B#u!D?Gmu+c8* zKaPNQO&hK4?$k%z;#DSjp%nRUE_^tj>bYEJrRjVl;?KCNDe@RJBEs4ToK;HF1hqD; zI@G*zyEV77r||;Zbsx6stz6vXAj#j-i{_w%*hLF49^#PadM2UFqcN;Lg2%R23Z}e> zmJ)F9{w4=|;`YHEA!@v_pcVe>G_a{L@fn^q0Y1k1bl7cBFEoFck3YR;aDFrmr?WZ= z-R9iEpEW&A0mIsFGsn9D@`pHk8AyHTT?B9-Mw5T`rgeYTy_NZ&%ic}6RVZZ?2yVWS z_Fhg`eQcsvdm0gOy?Wvci}1q=SB|dc*?SjI_sC4?B?t|XQ%nUarPb4}*2*E?Px%QP ziQSKf0Vx(A$V%IfR8Vb~MBd$TS&X_kDMCVFiQ+)mHR+QP$PTbvwA7`ef;TO;K<$61 zfb`}4nCkQwBuc4{`pw?>KKgbZrUl?yF_z2W*-hITwZGs#)$W|(Ku*AJsm^w{%UK_k zKr|8(0YBesmW88!tLqll!dnCnst{5!!F!-)pO0Gxh4I-M;1b&KsX}7lnQK%Dx5bp? zr@YEx0&Ws9I<$gk^9xRskl!*zOb+n(N#zgHRzl``djqjmf6Xu-be z*P(07>`|le#&1opQ2%}nhnXdusq>huyv*&GdKwBU>InM_{lakeBHYz%yru_5HYwOu zSoxG*jWl`1TpA6{JPqPpgp{5GlRi!TMf3iUqN*lpOyIgek-Lj#3E8AbaWm&*148Dm z^|gJW^X)AVTX!*Xs_AA=ZV}DhVT6lYN}7(NBG{LRTo;(x*n2c?ajeR(DD|z14L-j1 zWi~KPDB|9k^`wRN>6AVSY~ML|Q*hpePM52$B5~+53U$4CG?}do41De7yqf6N39)_B zn4p2rG2|>pMl%G1#xi(f!a2;Dz0G?P>BQ-*5ZW}^2dhP(6M67+8hitH*i}~WB;RJ- zn&L_ot5hKnajs;$q`Y2-B!V6c<|y(Ulh-QJ_M7si*e-*iRu@FN{9bzeIZgU->5i7l zx4wy+C)cC)E<`e_*qy!rRvnUr8j-zA9T5*+Ty4-e@lDMcL`jYHPxp0`);ptzV zI=%_gi4NQmP>v=k8uIwCzHQsiV2a}!J=|C^afR?lTkh7mVY}bo%admko7fUibNBY+ z-(AJRofsVu!M3ZbkAwPNjWCn^q4(Z3rhj|1(8i59B3N2&ZHY0_H|mWOP)W)(0%v%UZ#U{Elz;)HYi`%=%LEGy` zc{{J6My*chf`9QMhxk7%?<+%v%ifyCB2ULYg9F$C7@WOy>Z7nH#+5NX-rAL3Ya@km z^f0QvGRsloJ#4CPEqHp?Q6BYN+9hOhZ9s@j7V0C>W?!Y|X{By*?0{EhYv#`M=s@V4 zwTexVVqRIkgdHjF5=j%tq7JKqa79>zADxAtFs_%u6Q9wkEuAKgiqe*BGbvHSPAKOg zxEh&?JE$Fw+N0kG8UteMh5& zX4D?Vl!dR2IY+_fE+XHE#FPfuG`YdpGm40+v^*cQ?&3Q=@F4FyvJ>@wNF`FBpZYe0 z=Blm>bucs}fAL9V<*BnjXkb{HubqTZZr=!LYt0YSYb|V14^wY9!e>>Y!YtkD%+n-- zlRdhYmk)vDqH5h$ zcanH|?+1-s{!!Bk<`aZN1>oOW66(fmLJJ=4`W zzxh40gF?}L#J)Q?RF1+)l@V%Pk)WJb@Lpg23ZWC3qNXyPi`_FpU|^XZc}`SPt(4JkbxIaw27gtyVP=pV8@=u*px>Vw zKdYj2#X_@EGlRZ8#ahB);Fk3%dlFzp#=xaRq-g-0M*%BS^>8>1eIVCkGxv^wmGEbp z%Z})+nPKHxT=Fpg;#Fq)Fgy$r9h?QGO`j%9BF7kdE+htla)5ze<-GC+= zZ?A(Vdi=AdX(cmB6#3pXM?S2qE#=XqZv`wDaUi&M46BHWKvQbs;{H6Be__M~{2hi@ z9bnLn*Q8WPL;A_NC*E0Zo`IS&oY|(jqx0f+OF2kKW~9@&-mR=~PRcf7Rt*T?rZt&qfmu02!@Kk4DlIcKqGP?&pbH# zeOoHxa`c(&FoU9FHmd8s&9jpwJWA-_M)C&W-5U>qC0VZ7jH8H-SZqp3gX4Djg$N|e zccGc@G9Vyzej8m;*l7xQ*<+37VCD&H7ei9nat_wc%Z`7^`k8In$s8LlnmwB!631%3 zb}jv7dRCho-%l`#?!H2b)%s{t)D-qDg#=j1L%Y9{fBqFVsQ=u(`5XrZv1fB+I%WOk zhpb{ru$Q7aXVJK?&SRY$WB+Bn*0rIUmH*vSBTEbXOMoan4~@Hz`cl^W=Mj>opxk6! zw&Nk?Kw9cALbbz_1FhliO@_x9T9&>ol^f|6>enA47iq5LrYOb7Cl0e3WjlQ}LfEH^ zVD1Ij^4%RicX$6gQeeK)9RlJsh6*0gdx1|_Udhscq1F+S-uaLNP@^*O;D@mVm*RH? zo#PwNZil_@0yKVUonypQ$igYl(G9I35FHNj*Ct`3pPR*w*nL?x$c6Um(NL_2VY8J{~30 zD>e>+;@=h@YnQo^3Qf|xQ;~b*I~rda^I=CMX{GI$T!ilf?8Phk89Ggbh;7eG!EPh0 zROhnVQdI6fZ(+m+Rupk-Z(g8Lf1tD@B9xZ;x_0KnQmKT+Ijk#OD0HXIzc9@v>;}qZ zqJ4}DD!m*Ijbl}8R!d>m6B`sLq*dYP8{S#GT4!`}aK(8@cocoU1nY9jjx3IJgX(q0 zJv!cr@517zFu4N3B*iVgNXca9OZANmi+m4H{sr9!&;zT(cV#!~IL00GC6Yl0f0zQ` zfD}7-nJycFY)W^+Me!J}uv2pn57aA3V%V_-zlxGoF<>kV%K&<<%7~4gT)$`<=bNh> zysV~lM#{+GJMF9NPUyG(t)<@Rvv4L_#!^Cq`$(~az-6PclaR*C9S2m3qU<2E6UCJB zvu_VUL@LUj!sE(okhCl)=%}6< z@EyBG-c+a?%fG^yUjQ2cvEX(NMJZlBc= zO=d9Tmg-CAc|=H~?2GA4%5J}P$Z~+JMH1~9qil5hyv5}=Us z@#8l8rSkdDPmd(&<`OqGU2>-b@WOly8FH8lXVJJ)FA)!I1hrD4+hMtV5PAWHRl)TR zoSc*Kxj7Fi^<_+NNzNx+XEOEmJhnRv3D2t)F{QX-+|sn$tud(vkSYH_+I-L?v+hlV z`N(Po@V>#Z3y9n)0=-mECI-AVU?0`J{m5)p(b>|zUeBKfNa_zKuyghU2L_;@OV<^Q zYfG?r#GMznvnVESlzpZ$fId62sa_oHyISlw_k@ zX(t~!`Lvg@vgeT zB;YOcLpID}NWzPbo%Km3r$56jeB=#oQs8=|Qc2d(NEwDNYFnZ7muw0Mg16cm+Gmus zJ4#4G*=}`Rfl<3F>zJBS7wgZ6M`3WXB(38PJ-@In3M_Uo)2&oZXky-tejbceb{j7e zjBu<+yEStR0P6_n1vGWPmE87wO1cU2KDh4-`PHTfash*GdpdW_tCY=OIc=x?M97{7 zFxF&tE(WhkXrojtdoLia%fM1pjrok}SrsUmipMF-m2jAHqTcIuhY*kyJk72Tc)OQ# zJu0r6$JUa@1JyDbvEf-RIWWT2&Hgu|NE>5Y()shoW|*tW9d3YdeYN+9S^1X zKTKVPpkojVRD5T{jq zv+j~dX`7Q~#vUvPFcjy85jvQN(Oe>_OxGlF2TluDiPbMrxE|Q&l)I6~MwF>1!p1MH znnuA~}FhPCODF#D) zjc2qeZPb`3G;UAmr>Nr21DBUZm)vRJUE@5|7-XDWWH1$tk}!9pGqc2X9t5v3Z^+0| zvPTm_PIoP<8EVDl^Q&U7liIt^e#~-$@a5)}55W>ecdwy4ucNk6?lHEL!p}U0!ZKbW z8XXJ(-;-D*FLa|7jzXs+Y@~1Lw#Rdw*ka7c_sK3xuOl~UdF_=WOM_0ia9<8qBAG6l9_eIy~RS-3>&8~ zY?-5rs66dWlSH`yxNH&#M6Vs_EnJJuL&RizQeTLKL$JLAJ06$Psnc5(3k?0BlkLxG zZAe_dXamOS)SRSoSxR|_k@=}aQ~j_U#*60{aV!9WQ_FnSdfWU2^Uatet^x{n?it8H z+@2ym6hibI;MbJGt{d8Z0b%=-8BXa#n=6CH;jyEh1gr@aA+A+DW@+!xI2_#0*2F19 ze*jkf^-hj*3ur47u?3G z=3B(*J*7~zCEGv;a86CcOIY%j>bq&x?HTGWanX#gqT4TS{Yt<^OnOKCtGv`kAPn z=77+>GKZoPCpqxGPKTUkGzr%hvXG@{RnXl%s=6 zrl6a&hlia*LZ&vo5(g(5@L8Vhb9Tivt^bD6Ksuc;9mI>BcF5pn`-;q|Q#3~UvFC>S zIVUqe$^p1#P9mu~wA@mvZ^6*%H)=McCDa1xJARdMw;{mdM zBwmG@lDM>{C5O9(l4AI(LxD!6)qaavy`gZ7{pclSM2UScy~W7LHyk|@wXKZHz-~LY zIOjLR*-*s?Y0k>=i}bBsWh(R+ev>E9Pp#bZ$>=8%C(~@-R1l7w^^hiayXUqG8*Ra> zI@Xyes`CKTy#HCeg?J8iH$EyOV_z{tDppc`Q^;=%lSf2LN~55AF(F$2@i6y+GBhCl z3AFscflnzXtNSt42$GIjj#H&wt{;%3Nv_;Cu*znI1TuM6X=t|f`P2$-=q6!is1bEb z(Mp0FnDXAQ#*t&N6A}8^Xf9#eoQvVa^N~x=8bd46oeggR&bq`sm8s$MZ}>K#Mp7(+ ztA8*}?(8_0n`9k4vbO|?5xHx9tc&XXyZhEh#`_da7C^f$zmMfOwGhrEAUF%H2(tq{ zdjpgW&-VDD&e{MmAQZ<5vgc?+7vtxfSUo-{%}^jm84t_bX5H;gKSKK0yG1d@j*A7B z_|OvgeBn4{M*>`HwU51ra~%N)A(wFjTtz0MO22zD$HMVDp~7;uzfM&-ByR*=xUUYb zSpDswLz~e&`%DpL4z=q{yx5lBtvY5CA!DyeKC8-9hGPg8r)-IPFdt)-E%Tv?I1e8r zY5E=mk0ptv>-ct&wOo=06NJ8B#G5(#fm-L*_s6xn{MR=Icte|`axZ8!iG=}25?SgwCR(SBqFP(5js~wt($d^+g2_URd9T`b_IVBru zrnJx~{=!}eIvWA@(0NVk6{AA%%~{T;)D!9Z;QAq&Vwlz-r;QjQ{?%BkCf;QuTM6{1 z;k;fM@&2-}q1fr?IU_vSCL)G`;d-~btdF79 zACzG}5Y$KMsL`OZ5$y>ASamoP8qZ<(w8CF4mpyyvL>r08oU;!c6!Yu0g)%RrBJ#6` zijrYyJW|ct&|0TM;-I`tewj^EUbzQrIO;J{7_ljwZ;REpWCEq%QIDH0zIWidDx{(x zqC+?{SDiTLGD&a?1AA7ZZwgq(u}ElM(O_1O^p3HBJKsjm96F&mJZN}=**{P4G^E0S z1JLayT(YaCr!y}Mu|6ea;K1`qxY?g5IcN^=EB5d>tD0v%U7zGqn^aXQ=r+*`EFO}H z+?n+d2Ntn(qYePF>cn8EVBGIF3h+q}L_}%T#`S{7NrXM;4lQystoeMD#f6DEdQ}Sn z3Z#`Se}0U%$_F$Fb~3_&_h6#R9Pow{)!m(mv^cvmVipbT=E-KWLN(gU@_*SOf(5A^ ztjZ2HthEI({OY;3M*5BUd*AIzZ?#qyjX4ow!_&{ZwRZ%Sc4tMCtc-^aP8;nG^tNt- zoe+|X6x^ftFd3EL$Mm)+$MBE8#jx0d`3x4Vya&CyBP*&iXvnymZ$bZ}px!3^3u>78c|ik1ZZJpkibfVBR)LtG9;Y#oLN%IDD_5H_Yz(WF@Y* z{()Eh+O?B9OgAunP=Xdxq<_M3FjETn=E?T-y$Qvo!MgjYT0mg2D?zWp5H)58)t^A! zG5zZs#bimbWoL;E-oZgOdYg0>-3?&!_H<1~jOy8mCQaq?+z?SW74i$x%^uriG8);^ zgvfnicog47@-&V63Y`fymrW2J#mOmBYGGsPAg>xeX&4Zz-$EgWwHo|bZH+af7k%e` z65MpIYY19XFp-|xNdT@_25|`BocVS!8&iMLIIJ)F%Q2vLJU4emFfyY5cbrX_8W{sX z-Jl$H86<7RAbQWUSD<*GuCv|vqKH^r+MQO#V%q(^X^>md)pP*zMCRW6lPusA7fueG z*p}rv(WOrpZpKF}Hebj{A?v~gXfFv=Sgh3PBILfZi>9WjRWn$BdXkC_z}b6aQ=}&1 zxb~e6pJ$qo#4|UAzAFxDNGEiGhXlq*H5Mgl)eSug5cwhIJvsw)Cm!o9WBb|^w7W{LdvD1@64`5$g0OS z_CsJ&iF4#z6N>B(Sb{w&>p-icKuLz*a`yB|L>O*hEGUNQo|4Q`mrXM-4ffWEg+39~ z%VME^d>NWtCCxCwof@z5nVyxU9=@g*Q1#=xvl-knEd?@|io>utyK4+ZONt&bpyR79 z#%{)=A-3&tZz8bMs}DziFbEA*;A-|p`nwjp{Q@&w%1yWmRN7T{YuBxU;bGVsE)BVO@)4)b7qN?h4D3rjIgs-k1vXt<%SYvLjaF z{R;8`8-qciOYhB=IqB4Bm9~GqsSRogA`G$L>o!G1A8&>;BYf5Cgq{pE>*z7YwudO% z@Yw0b0ZWFh&%iVXY5p}P&05}$(B#IXdWB&)ajuFxTXoh78&wARW3k7zl9Be>oHDlS z?lcXFi|3MmAa6|YQX=0}T&<3T+wKiL+#X!fy?X^-5G%1oaOkK0SYa!LQbxy(-o_xP zY=jOoL?s^^&S)&=o2m>aASs@b+OA$jXh;dm_V|}{^xj$fzlfI zqRZu>`JA-s>4YQ=UveU?TilOg}E(t}HV3r19NmcXraZ&P2|S4+8m;;mukf7B7MlJKH?z zyl5@U7J)bP?}USsfbi?z`}{i}Kg8796l%CHl=!1yXQh^-Xyn`Bhm;!|VJT#rC%5uM zu=Y)rYgenFgxAC|Cr~@3k?B?1gVAW{ec6DHc|EO9B>FAgNnW0iG9jP8hI@CJETk{f z#*bxok_YYR{W(}qSaOdc)G_(l-;Nm4xQQ9vPgz|QI0CcG^mT73#IHchpWfZIIvm~u zxRFVMSQ;XpD<(DDr0$lu@5knqd_&aQqt1khF8 zf5xlv6AN+j2(hM$x|zRJ$e+dgk&ORzNzp#ua6V*;n?kMP6)c>nZnwFxw34Fp0sdhV z-+}E=?R!FG)I_Uy%**vL;O55>@vv9Szy{Gy8SF* zr2Jcn@hvO@CbQIG?Npl48|$6(DK=VlPt`OV95rgZDaW*xiXb%83iW70X2S4hYc~E? znTpnY8$Ut1P$1%SSZ1ubi|)CwEeH3KF|CyPJB>m}v+l35b|v0r~nSCnbI6O)1X09MKPlKfQo z3q%9sDR;6L;vEajrYEgtMubdIx2Mn$uFiyrXHEri=W_Hc<(dGgppP_Dqg^pRY@hex z>HEH7>OcI{M^rL-e>vjFxwfaxXq(PA!)eku-3~j@{0!ZxR+It%6s%AbPnsbS9-dPA&23@V_}dm!_%%of{%hmL93*22IaM3#=UGggG$5x!1QohqlZZ+K zk>Wj)|42ZD_w%v{z_)7-nSslPcGN(r6cs7$#w#`?!bM5aLVSnhbliz0H|tsB;1<3KTGnU&QdKzm__ufbUD3Y7;04Y( zymY8arrTo=NOdQbr+n`eJ^HQp6O$nn@9W~YsO#k20_6&V(dKiQ~(9I98N9zWhYK>UY5OqZr< z@dq732mc_A3gURCHwcrI5hV(>+iuFs5xCIkGSnNHsBxkaCiESfhDjK8`w^dS`J|f; zA^y@Li29=_O%YpFOQNmBrf*w{W*%f;gX9}UML~7a^yge4W#xCEm)s!g?0g` zSYvWsQ%Ee3XL;_+Ok)Kh%XM)dLF%1L3uVUUb@;5)!B%DRVg);%Cc-Ib%;>)pIa|;f zLKr%@Lc}1a8r^&Ol^=JF&B3+WFnfYhQd?1r!cSSe?n{C3?};N1q{&bQ*kZ9GIrtJ2 zN3YZj>!2fI9Y;8#%j)Y-c;VuW@Mf*^hjt%HL5A8+PdSqn5`~P}K*Clpywk_!I8a60 z@sd^QtTI_lZOc%ed`2-VS} z5CP7wcr0pFVUW|s)j!VgjNz=bn;M!hsv{mVwD&|di<_!h$lffMBak5XIu*?9p{yQbj z@*nc~|LUw~`d`laUpo2!D6D7uWwHO$SI@-ozx(QievS1azs`C|Iw?Bo|KY7y{C~~$ zYX9l3|6kU6^It{%e-+f*n>bq78ULrJ-i6MU&h0<^^#2XF{tvqPzv0#_|7E}ar<|UV zh2!@||0izE$jHX@pRW4hwfy4NkWDlZT>UKKhyQH*x3{xLws8YU z`EU8{UC9u(bOJj&f642vnW-&_lW)BzU4`Yx4O*+*MHFJm3YY;?I8uH{a8ETbG*MGs zzp^eUXePh(^yv8XbX5NU!Rd)*wAWY+e?j20E5l>`*^f~FGN!pTRAOYNzo6^mTx-C_ zTh@To)&OX-x@fezrltT?OiZ&s7@X`6Ktoa6)l&fXQ2?0Wo_Wwf!DWGksg23O#Z=_e zKVG2nnF|2wZf1n^1HAeKcHU@4M&CdKBFn5(U4Im{ydR`;f9L#N{fnPv9?(NMC1|m6tWr`}T@1zRu zlnzf+wm(2z-^v7v`3=y$eIpw%CoumwV8wzXfQVS$*Y1d;FZLYpcRH+JaQyME{g2xZ zl(ETAYGZwQdEoCPLw9O&H)!A11R8{VQk;?VlXEdR#%AUhBXf(31Hc=0C$`o)R;C}! zcf}S40bvykJs8WYoF{F`jA~2`Z4|9)ORuK!J1Q8niGwGT0yq~}UUwz*K<)cbRhEBA zUcD#7SGNYXCpf%kuCHHva(DV$E$P%2PWsYyb=H>Og5gh^pD;wP2^zl|05}s96FNLL zz!?aDM}{Wj7gX)ZF~q0T_`MX&Mc?e`d_ST-oF&kinF$=om(Z;P!(VV9?d)woA6{R| z???o7bpTVftxb|hPh8W7|ou>WHSC#%po2$fQQ;%-`?}UGm{g2yUVA| z&)P3Wi81lW3-kG}?Ymx1L_}~oKX_m+CO`k=K+L}TNMr3hI-eidLSySEIZWSI$<0hI z0JrZNH0F|@^0hB~Ao(9B9A>|t5k-4|dNhcbnhux%u=Mp&6UfHPRKxF-^E9XFowH! zLqPfopV8`o(u%!^*nSf4Y=+?U&c-lF-}Remq|+q?^rr1SN=wEFtH#PTD;Oin7 zb2C0ReAq-Zw!FvopJ4q$ckpvAfomba`@|0TN*$W{=USl$V!-$T8~_IUi3_NFzkBt$ z>W8{S7sfb3o8rsvPs#KHD?m8)<9F4Yw~UX-|H^ix{{gz~dusefQukH;WAbnB%vV16)4$tJjJU=@-=#cL9N$WTejI^XNl&f3w;RaD#?L=4-?Mw`0xE$R2FJIf z4L;Em=PzHMg0}pry|h1iqIKU$oNYkU($+tTA<K=0UVAKL*IqWsAEO0<*59YEou<_(dSm z)60YV@Zj<=t-p61_|KPL-UQFL4*ux+4ICu+^Ctw()5v#t}}o%N_q zsjTmCK8Qa&-$N4o7RJvmdPL+9Pv}p7p`cYi*Sobopd*+OERoYS;5Xscm#J(}3~#bK zD|f)xu{K*D|Av9c_t=cBPn1_$@Uu9Rt_V|EHpB?u*BmqjCg%Q4e{0xu&z~{2%95%d zq`$vIr3tLGaKl+&-Md#gY2sr2Gi!sDvhBgP#Mt?FzetUAg-l#`tDleBx)iOhaU%0a zI)v5*H}Gr;MAE2Wfv(;6#3z6i?)U|=1I4}1Y<l6PfybtV&vKz~}cu(8dXrnPQnN#2oZ}L(l2B5%*%5yj}S5m=ftaN4PNtSD7y#ITFss zq?6I#Iu|8XQbRwNvpff1h5b7LV{#9rXe#1UqfSYE)zV1Ah$4Gp;r;7pYxpk6_414` zu5cY8n26s;*x<9e*?uCpcX<;As7ilZ{|Rw~^qk)6u&KgaPdwmy%O(vcPkQPS3NZ)>W@h&4}aKrb8x zintbsB;ton|8liUpd|%Fx)a1`s|&mV7by@H3#PBWr^J2*azw^8R#wv~*F!QzzfYu! zN0xRV&Z*V*An8k*8<>3XgEUcpN%ZawmZ{v&d=ns#?2WynOTz&CrPw{P=NxuEGZ}Zu z6Y@>?q;8q$zRmiIf;6cq;`ChMI3v)(^7(0LkDEuU=$REU+vZ?VJOq2U!FV}>wdrIz83dQ@s}aFgCfUq%xV5y_%Id+*E; z>giKo2a3DyTX8nBS6Q~`ifUmsbgN84tJHA729{UV)Jh@Y_Aw!K9Y}DE{$RzJ3SIix z_8vSdADEe?lXM~3fBBGswgd%CjixUwot;u&jyR4zr&Z8Gf!QQS=#U+2DsXXJyB-Eh zF~1zxNebt;{&U7FTixm!tr`0#Taan$Mzx)#<^A1!0a@ug%Z!xko?Ukp+BMbfmBQ-u zW**fEf68flkhP-&4=}(nX+fTx1S_|P#>gOKBdL|*AcFQ{9##^GC+4WWGWr@=787P{ ziVcLAzsmTO387I@ho>rXViA2LDQiLE=(ssL7( zO+pncQXrA+`dU3jt_#(j8QAN^VMSN-lA+}#`S%ru%*GPhhR{)u&2jyRN^aEcu0!80 z$C{{x0`}k7%ce{>bR_jElw^Ox_1R7LYV0$;n(yW4JJ?vC6R9EjqhsIE<4skLcN5dtmVqH$3@pmKHU`w>1 zL>5bEs<=>^sETlmMQkt1M-*_OGP4r9-52X%O6`JK5psM+mAe4+hAt3k4hk*O6|_1; zYwSdT5VxjUEf(BUO#TUIQ24EsUsY`&cLCwZmU9E?#yhltHg>~m%x6E9nZCx~Xo1b@ zdMi?ftT>`c2RJ3Lv>_6Q12$GVqJ|_JB^39!H^_0`>{AsT@y`2I)0-OwBtZJxvzFo) zlcH_L8%lq9Xe=Uz3?dMp4=m<-d8&%QNmaK;j?uXDUC?^pnwl2}(SjRE+-aCOpd=F;|q zJyEdXj0KHP{h^(pl)E#-SWxMQ_6_?|)l`_Bavq1}u?Co`X3+-Emr3;q^C|yeyaa0_ z;!CmV9bjM%A2euigMIb#r$W5*^7~uk7CD~{-eDO%iirvhPeM?=sn}fCaTIPP?_2+08O~HWU)Y_MG8Uv+|YqD7q!tF&zL{hb{ur<>rmZ4-nyJX9MgB)-sjEHi)X?R zLEDS_|3MjE$KNMta~~}@s?sGv4nU*Xv0dA6boULK>=_ZGT>9Ql4&2~TMITd%LPHN1x?Eyto;ZJZjMOd_$eYpaU` zricvrXPs4FI;S3^+P;%Pw|zd_hAx3uyZf*+5B?UfBD09!-n?9M_Bja0`1=4Uh?OlY zv}T-W|Lx2AguoqF|IQHorF=(e@Y3uHX~P(-oHxCd&(<-%@FSM?2xg$JEh#g&$57M^ zF(>v&{W*H00JVS`zPqN_RM5C}cuOCd6>6U;zF~Q9ebLK3TZ{>^<%R^W%m4ws0HuZq zs{f6Z6?#f{q7z@P|By;Pcf~^M&+7-Y6R+KiL6CluV23l>{q3sM2ti~7cCaPRiKcB6 z?31EC1zD673Ojl8ldVhvD0p1zNK3qILw)lO<=xan)|r>%J|uW4<3@% z^|W9H?viyOD*u|^31#ym6|7=y;2#5W1-Un;7cIz*1ym}Qt4TR_=Y(JlB7HAN0(D+v9jeSY@Rft2Ry^Di( zGBr8{^u>n$>_&1$1?A?an?9GM;1Pu)bT(~@-x|kgpxwoT`@7%29v9lyo`tT|$sGIX`(SQ>!FAc!r>SEm zQ`etmc+YGX@r@)j|AbA0)Le8pi!{>z*jA@7d*XtEp?F^Q68oqOK+av+negW{hbu%j zX&fOM?WCTxcqZwKZRP0MB87=NuD|^GYz1qE1aGWwrOOWZ-1Klyq~3*0`1rTalz-t# zcbKbC?`m-1W}!MwQJr%wf&=~8J1oCA@OKJ9ZL`D%qS-R-LgSinVyyP-#epILTt}O! z0Dq^`iYsn>F*88p6&>s@2^d|~a{%PBlJ;c>ynN>n2;(t=nmWGiRf&3Rt3C+FK4r%f zdE_aXu_s?3R3FM?>@*V0;gD6Z1CwNqGK}snEN*O-Bx9XBq|r}eNG!OImy(3`V@j9q zaH&$IBgY)?9ZQ;X*{*r{aTZRddi^9J+3WL?s$Nah}(+( zia)G*ukquYe9nb-4534I)8uzo>QRb`1om~#X0jTU;W(m}-RAfvODdeb1*p9G_9+eu znR|-n{dkpA9FWVm??XPv-fTFIod=68m32VOfjAA`ipC8DP5W3a{sw0apr&5kzNCMB zVRp&>6kLQa8fwJfHbcwm-?Y}C9#pi62DyfVx8P31I2gQ|v;!_OXB+G?{=0vMeQ8J=&4m#I(W>L?|&~Qw%>%z3s_{Hx!j0xsNqbtsdkdx^W`Bu)W zzXoD9J=L^06jDH{bpb{(d>8|iw!CT=mHR#Wv&SIq&=gcUWCOTKQt*6<_7H+7FENO; z(xnqV7wpH(v@RykJsjB!O!wmMX%n*xfkLU#+fJD12U1JS+zqDL1u4r7g-R_tBDSv+ zJM_f#ZhU547+^{`^%IPVB|aX;5!ZOeVcM9tqMmKOhew@0s?MVx_KvGU}H=fTxKD;cjr62ds`O{e<~DfLW0fX|ZPH)~!C*>#`a?GzZ(0 zRWVzZB(zNXz^#=Lu2*|bym3@7@pv61ra}MFeLB|G-zp5(b4@To~?Xu#DurI;gs7cTU7IF?KEAy(zuiS z8nab{xz;JEVFsb>;Ui9(Gxv4K@ay+c`}enQev)AP!{DJ|m5ZH;Sw>PUmPqt#$vYo8 z3c`KBa}&VTNcbobT_i7HL-ml26>v+k`Vh8Xl}kGPmCHKBq9smCu=3iSB0qWUJxH|I`*6`*N$KdRFN{YsfdK?lz;-l{= zc;@&f8V#l-gV@CGm3>10o(C*OEAMYncJ@qg~PE+#e;?bgYOIF%xe9M-t_nAU2rK4x4(vH~4 zKiIM80V|cHT8333J%aNfOO!w7`{PsEMNz5(_R+TK2q1p=N&ZQRJxwRw; zWbRq5YiJ?wFaOkI(XQp3ZDx--yADr3x_2Kw7Bo10mNvntfw*?z{IJ`%AqDn61e0?S zjHau-*vq7@+0+lbJV%nwS>DWzz2XCP*~4)1wOH`{Et!{jDRa_Sul;vHy$z)w(I`ee zXD>pt93bF2a-Zy|m)-g^VDzR-3C`^U0!FKDjbow$>nC&p>j?&jj3 z)1yH*56ML&$b)0XvPy80d5Bw>q^Pv-IMZ4ntMnt{@aJmL{XtfgrGdg9BbZOV_C7PW z^cT_-ME^zn;~J%A&UGszYD=P@no5s)@%5O`Qa$bxpuIoNCc2~gotm7dtBbJ$^eEQ-2!8ZwoF;I z6W+7PdS#4B>tHgk+~Zh<;p;VFDq`+Z)iQIksT5c`CI|ZIJFutZJvqh5oK{ucHzN;A zwYC8k-eQd|Im;@w_~w}o@Z|!ly;&v0jzUgwC*Ihd?ukL_fhJRohXZOX5Lmz}XA)oq z@}BU$W*$TEoKVpR>c|Cqt17Kw8)3Q1dHzp3+e~ce*40WL5W8sFa(cQ=Y#dRB_QapC zi`<>Oph6X9@1lwp!>jN?q2f^aWwZH?l7B7`OM|Xzx4JwJa2M#kf-pSTw8n&}rmsSI zbZW&e8vQ_BXG(gGwtYE{TK>e_!f|w@;lC?cbi1XAaz6vJNzNsD2)qY^%Nz%TiVi`f zEW+G`q_b!UC@n*+fJ>>D0uBW{s-lA%hmhvGfoO>9((PszikW?eIS=XmqX=*c!Avq_sn<2(Rb@cC~SA*P6mYL&`Cpdr;}shf_lM z=x63o?}PDf7rqWewY6w9N#O{gRqfe}o@jGjoJ9Hv82l-N{`%H1qG4sl z-Jev-a1_t}H-Xjbk%~qKs64mOkVml%J1h$OSuQvk5k?6vx29vis&*?^oL<-EYLLV}GwwBD zx=>&joyObsBBWmj=I7*b8NK$+kLevFo@z2$it9-?>BrVvp^?{7iNc{up-m})x)r(I zdGGh&VrZ%SndM?2C>dS}T^ezw>?!6Hmal3Ep`*=ftIOvie{`sd#=)8PO+p3Q>$td+ z@`G1Y+)q0HyniO)!oLHszTg+DkzY7!3_+N-9Jq{F4~!G*G?3O2+x-%TUs~~zeo0Q@PL<*hL^fjSSy z3$>a&-#&*%dd8#DAv#TKye%4q18~ofFx{2}kv`7M1XSO9#8beo=S(rL50xZ%pCnAB zdioTTKDga&lDigw-ew+%lG*UJLOWo-2lsV`Eu~|vAZh$+=dGcys?kG7r`9*fx%#vh zYkUP0Z=8(J8eYL`ojeon#mFs{Y9Zl9=fR(bA|gv*;+^B^pvuR^=^n_~y#$>2$f{_g zHP*q9+drntAsMdK7>FS1*2hz^4;?h4wlUw*@-Db?bioug@$Ic(Ljb>YG`|Uxosw#G zFEZ^R3D10y7xE&g;7~oOZ)c3<}YMAP9v4XQhy?b=M_DwC4#NZd?zUt^O>56!OTcfPCJ|K45W1} zgU!2K^VpnkcaDqQh38=vfgjJdSlb;t@g<;LWwIpxIfA7W7P0-BwrAAHW9+#78{*x> zv*!jiwj)OQWrnV?6>tr0c}1&Uj-%Dk_f8((+UUh%hp!ucdT=!-YetkSfU`%3Ji@wh z;;<-tvL4}j&aL^xlp#mtJf#X_p*m(zM@>`-9K?!e%FaTu`{`$bWUQH}at&w<%nc+~ z#ldIIg~_R&=23oFx5$$&VU3geX?xoEFKsu;4|vPGXt*qdfsgSNhAt3&{F)F$1=zh< z8XDsfu!%u?wJ-Ii!aWV)$)ofk*@K|hct${MI4f7^q9}1v_ZXJiczYGrYXd{4^-Bg- z1Lh0L{4l8}-es%XqVC+anTaP>#)dJb$E6<&Wt>*1@K>K#;|Fi_Ayt1BvvH z*@w$U45x7*pJ_30vgUK5)fsP#tUsO{Wd=k*^!vlwDz9Q{^~hNnwPL6FJM-g)S)6xk z<=~o&<3*G<0mOC-XzwM}9fb=<6yd29&uz1dSz|lR*AE<(kX*=)O&fZ0wo@qMw|H1s3i_aG{JB=sM}*}X4Qr@AGpR|z z*bomwBe0ZoA~NQAlf!(k?Q|X`p7smW*BMMFBWZw;!`k$P^AZd7xj^$@T$`^IEE>>K*fk(BrR{#Rr0d3ug~qY$+DKUKyx;W~RE zmr`Ro!gkqMTr`gI0qg5zs`9vM8p~xvtm9z-0#Qz$3h^3@{qd z3T-2w@tNhVVd;%oWEe8e1TNza?dUDJl3Fq29wA;9yOk(Hr{cDW&x)6$t>hKll)Mdh z<`Pn!M<(sdLYC z89Mu^l(Q(NhDbacuMG$DqjR|a*rek!t?Rdld`06ExsT(o(n`3mcP8Te%k>+#S1dt1 z_#ITPxj^LsOX7hW%4RDM6dCQ-H7A+ESwg%&TTSJ%Z_XEE`;REEs|2vPwgq(ls#qbq zRU3WT9q(ew8ML9mxDS%pF`;<$tjk2lSHbj3`<)yi8pkZYa-ISUkFkvsrnST?{&KEB z-uV@~y|I8TG#00K*0`l~BWgC4-A#gIjbZ29lwz81u7{d^9S#_L72U6sUiHph%-u3- zh1eOJ;{1v<;*?i6bPpIUvVSTs;Bs_Uu+O3}V%>Wx1yo!$(@$tSK)&_@m+b}((Co1H z?cNdNPIAj8(^xa!katAy!}bQ|7DHu)lnSt~q2LBl#(jN*UHbM+AP0o`P2MG#o57|O zGBsqVGO6>gwvpZp;3g_E`^*ed0;qv3x3V(~NNuQU$+Z^5+iN?{31hirpv25$C^BTO&*wdbQQ=NfHT_$%qVmm2z4dH_)Z zyzEEAtGh6fi73>2KMs(_&$F8zmy%*fh(TOP2E;MacT);crC*q0_7t+L&j*47&$g=( z``9(`n7fvi@<2&>p}hlpOKgyzvYt6}29t;4LUfI`QP<4P){PWQYMK=l{OLt9&R^i; z4I<2G;b1L9&=}OMDIGqrk@eR3^YSTOe+BZ4wNKXh+~U+=`26^19q*q&^tWIAAsgC& zk8SPub94~5sHr3*8}?tJ&6qU<$^#Jsx)!oeCOKTLoZ;EKfXUljU{g1qe>b-m+SJO-|Sxm}Tw6&av8j#NO<3QROpJ*(3oc~&O6a@?h! zo2P5JPmCrhpFugE#-o6$v@h#gPg1B0h_mRUY9Xdya_P`<3Odd4^4l!Sq53!Schk<1 z!rJXhg-j;()0Q=zThqUVyOd=5&nn#J|I`V3t`a42I-s3%;4 z3&!c;wR{FlAS5$_CH$kw@Y?1GNi0T>vQpKNWA7oWQ(4D9Tx#CfybNk|LvK+HA>Ef_ z45mHJ7)XY4P@+z&sCk_h2l*7X+>v{w{|-J*S~OOr+Em;c>F<|D+}2es7sKqi#>s11 zd=TUnu0{8B#SY z^Bc92@sor06k9L+3FaZz$BJ{zlO0hJk@ifKMJ4MY$AE5L*pZzF?P2X1jR^mOCav~@ zN^NYeuimq88$BFE?oKe_dCfc$yRJIcIb%pzJysY`XCx0#5IKNEeh*>`Q=9ANfkF z@s6nBy0tx2&2x1-3#=y-68&LYS94Pl!&o###ah{doXS$02^a$_>~fgUASYc$0B8*b17q%^(VoP$?-a(iufcj z%D%(uQyu+dH)SsK2qI-aL)UMn7uUC^7}X?N_qDWh3WIJj;Oj=4k5d)7tS>v*UUz=4 zyH68!7ZB$O8_shBPW$d+cj?x<9{qDtUp#u*Ub?@#12mua{bXs-0-ZRrFq%1gMN{6w zq@h)jthEHhK%#benU#&6`|z%!(PF*rs#%lu;XVnv3p6s@bZD(YW2e2+i4!pRY>UPo zc#TIR_k^$22{X@BCFQeW@thRBIXA+9ATyk1r$l-6obN2!Rf~qidzu9Y_qcgsCnD*T zc-_>liyXfOuMGcq5)B6gqwULSL|Q{Jxa&~xeH-4PxH;B%86Hn0jdszwbF?i?$S z-Tij3*>JnfsFCIT+I(`APG=nL8ibiSt&hk-KQ-08yBjiwC%pdR&Ftbhmw^;^76#4- zQgS`N4=`hv1RHk>T0EyUI83~yLV~<|EDFP(g4j`}vh=tUB$a`$qiK2oxlj=!C)*WH z@<{rv8WpbcAsyAlK^8wX)unS#S#LP0ZI815uZ1v&<&*dkDm_|$QLLJvt~bRmk;Bwi zE)*fQjB5Kff&m|%;kEcGhFOATu+p5a$F8c(`cv^JXD~QO=k@rMqNfjO`u^kmqvX<= zbDYYy03RzGNO2@6g#(TJ(n@QaSl3?Lkcf|-Mq+zXG;oUz7Ek?+dRpF)>)NRNgM{bE zKx4A$WyV{ywRFfy?(Vgfps_pA36OXP#U}~RrURSuesT{l2syb3RWf&(kIzO1EcXfx zLaWU_rgRk>21@51H2MKOHgP?nm>Jy{HMiH3T>?)0<#QeAh8r-_1j}_%Jw<)xO@d!Q zY7KwVcv$(%Nc1CX->E=6_@*iD!U!i3Y-@uP~T=hnC2LKDM0ouR+x4kqMO|zUMK0w%QRH*d+^z=mO0An4K zKV*VW{g@pXGZv6VP5CO64E_^}IyyQ8TE={^b6$UdwL+IwII;_pO??vL{>S-OGvR#! z9DXmii!SwGa0i{+C`C3!@nK`ZodOd+WkCiNxu{LZIcw5lnAkwfyg);pz|t6gEaYTO z@6wii$?4O#7X%|tj%JuaGanLUNk1X1aXmNmPtGp-kH}PzURoWGw+L;Fg-aqZf z_GK{P9pUZVwEZsd-<>Jn8#p1!cMj=b;x5Z( zNe*^Jxsf;KD}e`+f^fM^GL)Ql3f^=V3}70b>&{8ViC`At9TJxskk)L&(e@?4Y@aCA zkfD)6b6hcB8%BlSqjJrR=Rp2oC{5LfktsvTn?aki0P4 zBSFgu3H2SJi7Up>Yf}&T+%WU>>wDL7ezl9vc~+m-3-hD{5dx^XOuBm5H?au=;?464 zaaVoXhk-0IRF?)wZW^#aUJ%oWvh`WS`f#5Fx`flO0Klr$1lx#P3Bf8^?|1q%eXt3p z?(7XoMt3$-og}LJ-KVFS;v(L|%qxn~&u*)w!x9yLGh*i(Yc@&e$E_VfOm9BrG(%rs zG{TqW!mv8E%>06N>vldtxHm=(Jud`6fVir0+V!5Ph9vgh@y)4D`iob4Xe>ss%nEY`j4# z^vpIYW+$EfkTalq99Q>QB2D5_S>ZslzGD zeUtB*4X5Z>zGoe8<09X&nryciJl${4n^aR;4!ydP6Dh7cxFITrq&EGjqRgtSMXt<`YN5dT@{=bf zF5pKJ;___mzI&o~K;rO@ja3SCeaT_+=o37?p!em^*a3oy{U=|N0rHdxQJj+lqM#H5kd9TT>vX@;jW@-|Dk?Puw?*XD|s@ zN63wF?=QB3qQMaXtuiO{usAsymh`X-HQ%d{s=syF`$IIrxQow)fO*X%bw9-XA3mL|Q(-6AA5p`1_K_6|gK`j{ zQB0-|#i|`za0A0lIJnWyR;;#_?;;c=10{`9T!7fvMs5Kig>bVLX&*z0?NGp%lu;3l zpSNVrM_^XT+?T)Ysyd}~RnIVA36HRh8p{{3T_p5{W7}D>f&}UcP~?(cCt9MEdPAY7!@UUO!1)p?iD@SOQKfuEE*1 z$0?H~b!`~Otem+9Rmf69P_HT)=!iC-_F%f=$FV6-V1jHS(DD>4rImyXzT~4Fl9V%| z62>3#$>l?!dk=P|q8PDmZB;?5@P-oTbSd|@z8>V`gs^Fh27iYfTPujqahKgzAx`d5 zi8{4{8^OG-XF_}sM4OFEX8O_9+))q5v_I{YDxwkzv6T7WWf2u+YuSIUDsp_6lYxY^ z;)mUCz;USk4ao?UfauJMi2uCg;VQjvSo#`M)W%WT6ytSaKQg;yn>J7?SkEMiDu}ou z3#qT&x)waFslT;ReDO|4Bpn;ci<%#%Pjqa5!F@~FdxcHhBqy-_Ia4D3sqtl~F-s3P z*Vk7`QgtmQ0fCRsPnH^3b;o27ERvq4u0kJyVEcwpVl%Z!buDXM$sR#e^-7S zP&0F4xD4x{Q|)gUcD~z49lYwIf?kC(&56~qaZ9U&ow{YKjb1o~p)P`@3gYWGeVlA= z9Lv%$_rl1)O7?F~K3KK&HWZ~)h(^3?I0S=$OY`J{rDvadX2{`*TUSa=f7uumcUeUU z1E;<}m5$e1M*=N3!;dSqG)!_z+0ismav|&TE#%E2_U3jyCa7in3G|(b%qAGLt(oxG zm)bBeZ}!pWN~NCE zo2u$`r#oH!KKG>!v$Y;F^vll~%NlFi$h%NzAwofT-kGWK8k&6Op%y&44VFIExCmdrNxmcC;%P=6Kn(b!94Mj+v>j?ym&fv8;-($d!_ z7Uj9(#q@>wwyxn9S~KIy#39P9Wp#%QySZvRn26z?+3N~D)_LWn`>lmV!|5%rnCJma zP@Yo_3*oNltm%p&LPsxts0XQRS+J>*)=eneo+*MX9Z|k_%%pKVf8h2x zkx!_WY#U`lXK2Lm8^lad6)NlvqxY_mnV9Kf6c>-oC2FDP+SI~Wj8evL#z-wW7H%Mk z>V7GU4T~g(BR!vElEPl?S@wt$jr0UhwA43b=kB#Rggi;}W&Ll7_X;w}NB>y-StU`g zty^Qd@oMcDFmE2ur^S61?GDA21T!B#p<6{uE2KMjuIY3UhB}1b)FuzZ<3)gFr5y2G z23cXp!r90sqL+qF8$z>{EzUYG6n+%N)vYFHwk5jDYahJNkx@YJQSL^dVnEjLU6Buu`kIWPi$5rebD&#$Q{I zjv-8+p>xLNrB*Tp6~J8vfb|z_`qSY{6H!u%>4v^zVJV&zZKI0eiJUX^~{Hksc&esPyFnwjjjA+;`*Xl@{+5Y4LyB(bMK&RwN;y*M0Z7H$? zhkj`cn>pjsxtXxXFlpKCP}e4K28uWN;wFTYy9ABzjY%3zknJ#LE6mBw8+IJ8>Z|!G zKK$@;la-X#|gWaa_dAKOS1q9@nlCNFWF%bH{AcpkYS|&nl$z|wYsY$!ZKuJ>vsOqO=;Av=3Y!%z{J#^Sp?pki^a69{ zj?lJX_O!G3rj24pPwRcx;`<8L)}1z)o^d*O3y{qLtGe~>w-CQx*tu;}wyzAX=kpLw z+?~2Li{(Rsdx;HKrV zo#q6_p~&?@o0}(0rWAu|E68B{r9+xey7SgDxm*8KT1+j_9QlQ(?{~|)Nsd-kQn6o_ zeR|+8eZtw;hZQgEwPc)oh(^D>7F~s5L}EIoAsiynd9EFvR~aj_uI#|QRUB%S9Y)CC zE)HWt!}-37=(7SUr|zq04`bFD8Q^N0x7?! zfwsD4tjx7b6+!o2GleHkFQrCV(eajLRCJ2i-*kSBXK?S~A>A+4uO@hM>nf0KXjSNC zc(;+8H}Zo07L8q}XaQP^akyqOAc15sp|HLmmy2rK$n_H#EFMnhkB>gQ-+Vlg!gI5` z!TPPQ$=^E_wmeS!F2&_+m2*A8OBq9wTT+Oi>6U*aMq9nE76_A`K2lwq!+ARA2-|aL zKksM@ZwqbOD1@c;ZptbSxRJ49xlTD>W0MsG2NDN7G$bf!ZpOdo0-0|x%mq;!L8xTY z(Cc1eE$R2qb--5< zlV|-nBF&}eB1(!hX*o$6wPX^f*w(k+n-%A%p&@Z5=62L@|DEeU_U_D3U!S2FzEF7` za69Jw(zcRAF;1^gotoS>bKiyf81z=ko505KR1LX18 zZrqRd($cjW7znw4>tAbMR)|E`ie%iD5{&HVDv6p<%xP8nOq8(OENIWZD#hy5Oyc?1 z+q`q4DYvV=*iBQ_i<$WH$#9gxLl_NT*}pY#LMT$?4v@+taoq&aG~=Lf3_Bzu#q6TF z3+WN}6^Y6AOYqW{Ww5MyN5_U#3OYgN)cw9=0lcAwRQV82+GMq>lc-L^^)$)Gb_r_1 zW3Gbhir^6Lh`40MpITGj?s5M9u*I=r4tKe#n1ldAVg=dBAVKOd%*z4g$%NGFTUsZ{92C#9KoQGuN(=q zh8+;<1?h7f={o-yy0Xm#VswIwLMf_4WFuHo12!{+v>cA;5B$it(=#|xbNsj+)&f*evh=H)~J(>SC0j7Lr8T^IC8Wh+{x zZI62%rrTu-E`Mcv5$yK^K}KLYv}qYFfIPJaNRHE4Uf;KY6Tu6q;wKeyr|UudV&@|l zh7f4(Y$A9fg_#RvwDcXqG~O5e4rsk2yjsVvK1Sy+_W~30vcnzW=#+~mWJ6dG5sZV! zBE&lJfZ+&f(4FbnaV3JJN!a>=0DO6(U$HwTsCg)}Pw5C_Qli`4dP67Vb=INTF7fx2riIqRTO z@BClmc8&Q5COgw$RP}x1WsYQ8&=rXhFNN^hti_MIv~6IeT4&`@-OqV;p@Ds&TnJ9t z3-r56l8vh+lZ(VjSFMkuo>fMi_~=ah*2CzthtyOepv!0f0|v#4--gjDW8_W`iG^-YEy`WF)N$JLx*1-O^rJ z$_Z?^Ruw`qtKKT{)_=2_!g|Pm%1xj8u!{V-^S8Y+`0T|`2b<P0+5z@PGV>JX-_)NxpmG zzK(qSdQ0TWp`c^oA{SsfI)_Zn|5q2ZD64qjb(hR*)xR@P9F&GUIttPp-ebxsKJxx2 zt)kt-GdI7)j~g?kUn{gNqb-V{uR{J|DwQu2bZ`eJkayK}+bunW*GAY8i)|RZ8UM8n^S+bo3{9URH7>cZudz z^{5e=50Tai{fUTHN6oOGZwuMuhmV^^uBqiA04u zRvwnXm%cnXWhINFd39f~R5{e7L&tu6xQJ9D#Jl(}vK=q5E$q%Hcja6hn&D^eao4Ih zQ4SgeRhBa{_mjhrdBD}urC^#WZrpgY)7WCUbAc1~-bfg9>w({$4PtHXiv z=OvK0X?6weRqS>xD`t{Z5_uu;9&IIkc3Uq=v)f$5$(h#*8NGfEb^6`yW>R$w{lLm; zS=xGU?Lyvm4)Q_>1q>M{I$rSFwO;mjoa?vtwS+ri`EEyFNmoA1KhEJI6xSgTo~jPQ zXeLK3mrAOz6x3=;TLjASzuhrRf3UAfK6jweiqL)$Ss5eD(5k;C+_Fr?sujTF3yqp; ztE|8Gat@J_-*hh|d_7k!(rzPq+Cv0Nqxud90yi;G^s|Q-UvR~MVl0Fz?xv#2{;0l( zmd9ygr=2EV{CQ=iAum-=XiL{uAFh#H{0SfpHT_5AZfD%vcFS2Uv<+h8~X? zB>6<40~d9F^mySnZN!y5PD=|=WMg9^Y#Y}zr zcMpBuDRy#zd{t0LqIofB<&wzT6hA;{pXk(Z0uAr6>~VGvZCN@$7GK1-(m0qRbzRmP z|JIS-y}{Zq-`+ydWH!~%*?Le+)zH7?82;SlzpF#l6jJ^7k_)l;OIgpl@pEW?Riz%| z6sp$oNhnTbr_4a6W7&t&>b0^4&txUU#mlV8$<;m4!GCc9v<;QjGWdegT`r0l1G_~C zxjiMMUj~4v)*D&2$eu9=m2BfLwRrf&&iVXT&RX-D%9NNQdhpLPa=QRBTzPS1_Mv|H zDNaTi$s>5&KIi>rXBs|H5e?zY7;?Dh z#QDQfsqg7v+23|jDUu0Wt1m27f~HAu3*${7NpDq6nU|^6PgK0v_7r!BEJqg^tEz5%+Fuz*I4%jg)ZQyWeIuieRP1 zu)6{5cMJj@4|3nev%#a5i}1>z1Sk=T5D-TjLVGHyy$Aq2K)$(7YU1xSvj%HUrviQK?SK5uIR`?$z=(0j=Gs|Y&4Vg8XuPrjU`c2*;bSsHLr zrRS~>cbpmgjl!yI`|z=YBfTES{1oq=Ij5JdV<=&rQ&p4Cc_Mpdh`<)0U0$rW z_|k`gOHg;_!RsM;mW%#6z~shElwhr%UsrRILCP&vIo=6}W<;?(BGOE^vBR`x6rrQ= zFV@(Z@{ZC}z&g_y%>2K$22J}A?PPqaYGd?)I*E=hWoEjD)zH_zw%`rX_+v^z@De<8 zGM1#Wr8Mw-78XsHY**Oy)rx}@n>krwT8A^NvvF?jJIwpWacFa%QPGsrKZN+uo;&1$ z?lcNjztS7uW>}R-(CaqOmK!~<^!xug@g5+RrZhuOIH%=8$Te63T*fLo zM0=KUkVGx$H>5;1`^G`YkW2X|$2eg12w1QJRA^8(ZLYK`mmc-ob0UhpVM+D>Ku-nn zWV)yW5;Ou>;P2mdPY-468j$hE+{x=>H=|Uc44Y*GqcsTnyMeWaYp+Jl1{xER_KRxC zDIOJLvEC{r&#>e;2wqm`aO)Q%&h_+PC5phc+!8ZAC{t`+8Kl*Q3d~)dmeFfAe6D9~ z&4iLlGbNA#9!bdZ`q{#m#6cAJbmilNcY9hv#;$d$(?=XVl#!uPC&_mDHDVHNptY-6 zmzgnLtCbUQi<>cCm>L!{>k$-7TC=l(m8sxmxr%Oj@v#NMp?=TaVwvVEO4s01 zU`k~O+oF6LNog&V>zlj%{#}Y=OsMv^!`8Xe{&rPBbTJmQBq(NiP%8!0)hTy!oG7<%5bt0#`6vVH#fV2>AUPi#D8CgJ&VCre8 z(sxiy(=_hp!nJ%cMwKE<5q=Hi1@FUYjYuhU)Zl>b3zblCLY9b;??*ldhEv0Vqd7N% zBv1m+z^Kbz=SBc{i<=@?n%f*xilmshG*K`$HmpexU3+#2 zHV?g{15~iyUHWH8JAh!`q^V3l<2v=j1Uq>)73ccKUq<8mk-4zvCfz+<`P9ctK|uEQ zAHHaKxUU%VO`0E#qvk=Yd&C)&KjD~h2bS20=q<0$ycl&d|XeahN6cg_w(vwdk+b?$~JnHoS+Y!OxZQt4)&{&f^psV7uRmo+SI`J!-pufZ*_=y$i4D&m}%HWUA$aF_OH-Y6Ys)|`*_68whtZYFz_$E3Wq zQD9NXU+O&d@iMgtONWcp1N5LChuCgZ!ydmUYFVav|GpntCgba6vv#PUA{_&7)bExd z72h|tOPl6*ZK~@Hm2mLYq~l4k_MkjHxz)PZ|HCfuM1AQ(u{dY`c9Q&cpOsOPD7i4U zt`Wd(ae)kCQCwiemU&u#B|6Z>TCBc}@Jn-}&s0!JrnC>&HXtvzsBqbYzp@sZ6ITaZ z)Sk%$<@y`}KGAu+?zt~fUWR#Uw5w8>z2H~u@LiqtRhZGu&I~B$b ze~ocg8EiTX_3zsPq>|n*po0N>;dIb-PMkyBGMKYv2|4dS3S|_d6hJ6s$P3t=azi2& zv#5b3s+~c!&VZvw0bTYRsjPW|CNjbTh|@~PHu%92Y?obBnWNkEF6!kf)0~*=in}v)RstY8^;Rp6QJDyQsA#3 z-xeNE*#kcQE&Tv8Ep6(jv)#V??iNOYhi~y`=q5XfKfO}a>UH~YcL|;u_Ex+ued^@v zx>#ByZFRl8L#P9`r~!~_m86!P2$U6{e?kjAq0xD)i)(L$P`zH=0xgoE?0xz)6N|JG zmLvD@To671iZ_c{UwT4XJ$uk&0k?=d3Q;(b9=AKR-OB+XY!bl1 zObi) zp08KIn^wQZl~+55FajatbLmNr5zXe(Lte{4`io*N*Q+}J+-o0!@s$+b8=&lr0P%`W zzTMrMm>=SO+(|Ont0fs@e;liPM(Y5&5awQW{Es~ubfU3`c9WmU-s1(NFhHPgvLIQ0_jQxZp2a7&QP@cs9F`ii(_0Z zukfkI*;x9Zw0+7sShL&w)t)*;@@YnemxVR?JB9lNv&YT$tRCwO)vT*m`L#UV16aRz zv#^=Ukz~$tGTFBXxkfF_NlJWkJn6e#0l#YzG%Tuo7hWp4OS@Rg$QfRyk#Of<{6({` zIXK1Kc)b!+g{OJ&-@4DkQFJC;^;YG4REBdZ*efPX8*QKIO3V;>aS9dFFiZ<|h<}uX zTQk??Z=wZdRzF0Fe74NyJrJn-%xpUgy*`DkYYOW`tnY~-urM8SUq_&8Dc#>^cbXHA zLy_M>dhckqqiQJzz9--@)D;-}`y;2`1+~_5WD*<&aprOv!BpHiWb;Bkl@WA9`1_6J z|4P2vV>_fXpH%aXx-rxVH$#|oz%_1YKhvtfCa(GYZKuuax5m<(dk++>iBv?zOQ&ES zl*gQAro5#r)u@MOdG$b`@Ru3j1X9MHQ5U7}K{KMtAd{ z(}<|0BJh}y+p@HEv%y4fjHS!^N@dFzO35;XMXgz-hINH!Gksilf_z-oS zJ<*6oFith|WG%^3V$&nJwycL7cT{1uxV zPvji4ogfxLF9moQ#EEnciw3*M|KP0mg9#6dn>C&-mE9#VlNz?)Jta4`z8?<~#NoUi z(rB~_Y)j-|YrlFM7;~IJofX9_VujNj;=)rWU%)ChvhR=M3xy4+Qnz3zS#qk<32 zv!Zp_w!cXj$3><@p9qmX+dq3*F|-jM`=Mzs=yZNvIn!u^0uvD6@7bC7>jd=(n^QKpP4 zwB>sac3eTeSuzVvoyU;vRN#yCU^An?na-6%27emd6s9L0-A09{5HJmpIm#{V_BNs9 z$H4t*?A3)N@!-?km|KU)oNh4=#2Ev*FGf0Zd)p~Lm@S-@Px55bLKGHE5-e=g+|y`D{vIRoH&2ymgVvo5yqPXdbmJ^1^#B{mY%$(1JIe7T~5G zWr1cAN$=mTu%;OcL10RJ-jgrdlx*k&36(cim(#t|N|O=Wzd?A_ zXY>&cb&y9izrCOzg!LL%!cK~-daK+NazKwFqAOBUjyQ3@p;*Y;Ad&|j%h?8+fp5!O z?U%={zdP^O9g8D6n>0X3rL5$j;~<*|zHabnM-Y&;uLq;37*QDl@<+@WoA0c`-t*Wt zilJC#^0dcL{$`Dr7vvjyrt2UEXMX%nRWts922Bt|EUWh1nT{Y=RjuKplZuFb#MBHk zl>quk$_mL!_%Z1K{;1Pwp)D<|HbWny^CjqEzi6YMb5#nZTxd{n+bH?2VbCy&pM9^i zXxD?b8Z$6zi(d8RA)E*{^nSBUP-CjKt+7{$#iJ{(9P$mFK0yMvIV;5^wEdf%-b>7u z?4Hh;_&{4fsmhHc#A1yKld4F@6~U<>5B#4R9zjun5-I$wjivBbSnet4uqv%ke^%sB z?;Kj|(f18t^iO6l*x#l18x2cb21aCWa@Pi;ZVB*< z(zXS(!EQeC5E6Fw0a#;aYl`^4&sx15dd)rucf!4%9?FVRUn?K{Mm2EKl*~=ZWRJ}H zO0e_~N?_28223OkTG87?LoQ1Em4a&+RMyA*~Y?gUuEzbHXc_QLboLBDc>`Pw%<%j)I)GZk`)jd_vIiW}v#; zAD`Cwc0>CPHRJEX7}G3URo7f3^h_BkYg=x=t2$cmQw;_1CnX`)3RFcG43Lj4NG&+P5LpY5Wj5SSxVz!J1Nr>GMV~eq~ZIn&hTdGSqufI?~;Z@4dYjN=iFKkWfwGE z9J>gqUjMoX$O8Qd0DI8hkg)Ni(b7%kZ02XN1tHZ`2f}`K*p<*)NG7pXthVl0t-aB%W}{7B@E*&SZd`aS_RRZ)A=zMXf)#-H$1B=H|Q# zw5<5jsXgMKG!?SMj>4~k9UVpa z@vh^?RrD(=oYWqFR%L4fJ0shbfo;#J*Pa3PJIujNj3rU-_y{<`cPhn6+Zy3pnH|v^ zs7Vg1Aqj%vn#(PQR$MwAk2_oXHTSql(c>#zJw5gTk{#pBr+!;sEiTV%^9dpW2J06n z^vUFpQaIQbt)aN(7d6-`OA;F#rG~CIuNZVb$O%@CN?BTVtZ_i|Ky5+menu0XK-icC z39I~T&jqpdQ`q7+9nfg?%$5h#zIf+85_Cq1$=f_>nUJmGyAN|4qJ7c>CQC&bPpTJRiJ!_X0IC?;awrt=|az1qB zd#QWfW@oG+DYz;FFJKCtmcso`@Xp}1YBS;atbwY?`K!1?>6}sCSaus)$0FwRt5`fN za{|XQsKIP3XvbK<3QutC?tD5dfd;Tpxi7i2C72Qqmz<2%EH&dvpF?SQY}H>6WF_p^ zLC@c6_#4iVF$#!&5qo0Yw1{L*jL;m$-wkb5T0Klzx# z+msbR8SNl`A@J47@iG!e7f-3$96~c}a2ts)0(>ybg}TB6QyBvCt7qtW625Q`GERD5 zcE`V-eeaL4$$Ew4bOhcSDiRHi{J@}rN)38m3-ck+j{+%kXM7( zmsh4|i6OY8f*c`Ix8HLKaS=%mc9m)YkZa>0WC~L=-j(;c2IKoJJmpd-o#8?^ ze|D@U^hn@WiieM^ZaFWg=9Pws&M;+M}@Y}5X|U3X9Jvo zt*rMJ&v@zV<|BFeRXz%mQL$0R(5w`~>lS0k*Wg1u*@hKn&kVJSC6z*vxcFMW)+YO_7%N<&ej@M`kShF2Qfo|fHy*GjsvRi&j>_gEwRU)Jl8>EcuQ z*;2^bs2+D{#9a?1kNhcb3r(ueqiD*nVmDFXSkJQ`-Dq|)0mto^t*uEr2539wXne)OG81{shk1+Vo8 zHrs-nd&N`jYK|+-7yS#u*OW?8sCLTJ=ZdVZN}AJgn&w3DJ9R3*E>)V;y zI9S`k{8uflYx$o&;$lK-DnE9B-2X!kpkrb9A3A`6^Z%p+*f{^+bO0UWe|G*~^#C@` z{~vmQ$d4cJ7a;b(83HnZe}Mm11QY>Efd5DWx|TmyfW5Aj0YKN@;YSUyHwWke^a1+T z7S>ij>;EAJ3{8zq8~}z^2D4k+q{8z!+cxFmbgpF|_*e z2+aPMNML1ZWeBhaSpTeT05-aIhE^7aMh^eIW%pkP{$E~!t)rp6gXzzyZ5^#03=Q-w z{%hp_6#qT=zpDSiYB=+Bm}^5psaR{?G_?E;h?MS5t=L zobK7z-{n_yWjmg0?v+>Ii|&f>&mrwB;( z;9R~x7y^*^kd8#orTPzsfa4R?Nd*P<^pcI#;FqLR1Ih;*o}P|VUt7ui(=!;zfJf2; z57q=$0-EV7UB%DbLqG?b5NYY_-8>ZW2YjXhjPtv2riLA|9g7UhH7T&b#icU z3ho5VWgKB9Mjot$1L*RLN$F$U2l?iC7icAA^$X|9`kD{K_u|Wejg7Uj*^!~?9%xk+ zXhMLE-zThrn0WGd*+Jdj!|O z*yu|X$A}(*R?Ue}6eB0&V4KaFxWL;0ou9!cJTWmbITHiO0SstUicaeA4eg|4F zu71F7i#LBlZlfn1YUgfcL7~5U@2Z<3d<#dhD~n>hH$#8gBYoGpmCu}NzbHlBci&tV zeOZ1eWsd(GmTUQEEKIX^=7hTA)puX>8PC_icdCFq21Ri*eCo+bZxzjxOce-8Hy zs;TbMmIC2Q8CT0=m0ZL~edS=pPHjt*SPf4!D^SeA!-ihA<%mv#wL z7^{)hlwAbO?|Kytu&0 zSlH0C*DPEOmcdOjGA0$lxsZ|0`;fVK(cZ-gRZN(zFh!yGTZpu&&{X--*NFa8mB%vd zWG#D(_@a=0SpjKALXlgxI6A&Z!Vv4(8zpYi1)zS4HhA8$p0wNrB0+Zjj@GCh`?O|hg|xSeiOx6 z=}jTQ{SVsy=3u#fx4hY9QT)}XVr;3#Yopafq-u&JN4BveWWV=0qh=wBB8c(|L$!8U z`!_bbip_~*@38R}2Rm7-mJ_titN2+D5{?(Cvt#Y%N9umlmJEjC3RYYY)d*=MB-q(t zw0i{8;^H&k^;S6DPL^8*u8`8Lk4fycU%hO~3p19HDnMCJS@^j!vZ~YxpDg=P3vmU` z*{C=);KeXYRq-c@2DHA!C}zMgBuOmFSLIr7bIXrwaTNs*p`Rq~k_HG350UD8{*~Zt z;>+I`|6BdJ%K7#W?Z~jV3U^lSSXjb`A-i=tB|_AA2LmG^8PFkDc3fq_XBT_~p|;n! z82ty?yJJfp=?6NS<2!wRirFV#+S}u5Y+W#6PqvJy zzPX;WOdl?<++^m4!i|03URrgXp(-ibdFiZPioxo&V^9s|aQwY6H>xj3(mhUQ+eIH7 zS%?u7YIC$vB4O106{2h@_W@i&g9h_;M{0N3cGdvqmVQ5C^XuXBN5 z4n|secb>S*l%UW}#B}^|40=8n>Ze{N-hH^m=Up;ZIG;l37kl{lmJk2aZn`glpIbDt zf;qI){#t{;iUz%1i}^yg(&XI%Qg^z!a+9CLL;Url?m8mJ%4k)tB>hu(SFe`~q#}Fi z?s>JHrh-;*o9O4_iR-qV=CG4!q!^+QOh&lmx8X}qK22K*p>n=zys2lWP7kCx(OI|P z;d5@LrcUHYc$K!6eK?Zf$Ky3L!q$OHlV3Gy+i{3)x-IF}b<-XMjp`cw$H>zbgdu?p zt}%~XmO8l>_rBjBgevH+uf9**PoS#>Xk_=v?;NzDWF17i+RjGO>zJ8soLQT=+M;C8 z@FSxp1j=E&d*Oe=Xp-Jlh25x?ykn_AuRMBfIIKiDfHiD-Tq?=-L z(4mReLLqH(I%E!kSg863(d8C*#=)zP8rSc2jmPR`Ey^ zS|BAa(y=!{!FQ#BCLEKk@e{u>z>)J_Wq*0xwpe#m^6&8-B~M(}`)myj=QZS5du@Oe z*X!te#ST9Z@*eRbp3H(1hSzHD1eZNheHx={lDJ^Qa?xL8559l6CHf|rsJ3Zm8mw(mu(<-g zlo@5X(Gp29Kbu9K)AEFmFJC|p$x{mVKf1=+OVlqopBGjsRGUpV(wVyx9f_{^4GcO}9`&gU=jxo}CvrsSAj*Jb z-hFP9&}R(xpcCIUTeQ&+r6n+$Fk>4dLRM*8@c@OBwIuV-r7RDPa#FWi?f35%Y~8f(`$MY!^Lf#31WaBVYMLA+i46VEg{Je%f3>jEs@^2Rh1^o2G5%JYtWEi#{}!dU-O~h^(<|rUsoKYOo2S~) ze!4RQQR5!O3-N+-FN9pbow@|iBW3z@@XN0mytMJSZ}tKZJ&l^&1L&Zzb*_xDmo_z_ zI{QE+3)vX>Y%P3*kJY@tvsnBscYNoSqf|G}h}|q0R78D8gz?m3X>pv;KN)OV7`kOV z(opW$B_~44=-iB|4Z&uN-V68TQ=zw~hZfxpABl^1(7~vc!22HOfsZPeQbpT|2Dv+wkvr0`PDKpyY*@mLF3O4P6yXYHeJ+L5ome;9%**0sS$#ZmZxAE zlMcuFE)(woA|{Zj(r^yFTDy*5vV2yg)GdIoP-(`DX{K0FwsFD?I! zk@NUA?1Ccq>HEpc2MhWNElppc9;TL%41cC@b{KyQA>jE_5(cCr{@&wC#2P0DjMmR=J4Pi4vDrtNXBZ&CF!-?@dZQch|`V-gXdP#XHGhs zFggz_6l;G!tQdwpR-&;vCs^)){CQ1v>%#>g)($c4{bd2Bj{?Kc=KrD1iHt*f7QPJ)F@{2Biz!18X_{$BAd z*ottysuO>3*DoU-ex5)aK7Mtn@3zj)5aIfP7 z%_}H{@+a6crd~rE^QC~?OSjJasV|xZ;p*=~)?f*XCro8(FLidC(Emr;Jq3vt1ZaXT z+qP}nwt368ZQHhO^Ojw=Y}>Xq)zLHC(-FHn4|85KpYlXx#L1KY_jkX78aU9Skhzm} z>JHY9t=Y{2Zt*GWgPR~s{f(VMocB;mZ1i{#o-OMCn!S8UG8NW5~UdzI;T%52D=AK4tDE zjk1uL<|LzV+5LB`H^QlAi#V(*h;Nv=_Gm-R)n*m6%2$fn+!?TiM)jO%Bahmva+Tlq z8R{>@taVfy`12}zo;HWhJ1aKh<%VDL%}7{K{N3Jd@g=5SbX28O(!95Z>a+K-JSzq+ zO286qTRw`eYoIth3U?PW{N19tKL{=jd6>I4c)w)@f$!y1D&lx^NG^>k4u{894tH3S zVoMD~UwIg}4wWlHi_zol1=(@-Fs=)o|L6G5No}@nT0|RualX-{+?{_g0`L`(Yf+6~ zCV26E@RNb+ifzo{&6G_KvhA53%y6esvTn=Y$659?R&O>01>Y0GDpdH1Mj=5tajpj_ z+hA@JI;>~vhiB9Uh zikJ=vKuVPzD2V5w@ zd;7}!r`njSnq%dynv^<(h1+ySR@s0X4s9@h$Unbihk%C<&Spu*dcl1vIXDE1Kl*sA6FLLf;a1bK~G>1g4;nkRmo*t6T<3WqSfn zZVwzxZ)n2iSb@>LdAe1U%H>5aVTx zmTjE0l+8w?%b99Kp~Sft@UAVGcZspk?eQc@P11;Y_h;CQfFCAd zfg1eSFWVLaL#p-lPlJ@53iW;SBPbuU9xICykS0<4(Z(=o&VF?AA(7|HeVwupYz!lW zmr#AAB#2>yE>>45!o^2uJMkG9=YbCEN{Dr$i8??We1CHzwA20K2y`315(Y< z#~Z7JWKyja$bNz|M+K4F04R0k!HDG6LC>`^=+%jPYt-ZEQt=iJnvPYyxfdIA9{$R3 zcb0w}764GjxC-$4%m*p!Y#1(R;ehA_gX>UpeOpZtI0oe)7+*%77YMN`6nQ zaAOHeTKNXs-qRMx74cuMiQyUl+F}~**CTvpQaQWidmudE1|$qAhzOb z0oxk7l?^DF>1mW{cbidpd3Q#7S7N3)^k+6tA0jzy%tY7il#ZG-?d<8t_2=xd5gSzJ z@EpQ@{)dBstY&sr0_WFFu~rkQ_jw=?bGP{pT5=_m~Jr>-VJ4pdRdYa}N+1g_fftB2Obd3cnM3F?g2L zPBKX;aCU$RMrE^9vcktRqPpAnrm zO6Jb+pGH-ux#G}@w9UilWRt~p#5EGTFNHt%K^ud<+W(MR&pzEw2ji!)Ay?BCFU}0T z0ak{&C)EfQoT-AtM4BIeY$4F#^XqziX&bInrd2UMb8p6uKEw}DT_p_U#2w09YS4Dj zNx>ftDMrRTG<@jtdJZ`T5hx{%Z!5V^s~bg)Tic_juK|?}*@JS&GMr&~TD0L=lveHI z@k?Sn&j=Iy(HV`kXi)LrRX>F~36ec-7E^nasK!udabUDjj1ACeWpSFF=up#cVLoQN z%HL^=Sp%v_4*B8`AKN643zguE@^;PFssYVE!;GnwSim8Chsv0DZ2@Uo8AO|4>|JN{ zv4@YWub^IMp6ofG-h7%+yb*}F62*tDssF2Ee9v42>TC=hVyDvGLA~g1EZPsdo*0k3 z_~uP}WBH)+(j2P6S~C)smgeN&aR!hZx)hEPco6?CfY4eYGbu zwAXZ)NUC1j#)7yNdvB&pZG4renzeHVn>k_i%^D?8@D5>MOOQWFlD`ABy&~l%CJakueZ76i6Xrg9G107CA zxra18B@C6`vK1>B3UT(^Xf5TUNP-~@y4sF=A{AMEZNRNEu{1DI zrx1u^+p2UFGWZ?eVt>X{d5FeFym2mO#;dwH==-xSbgYcsx-rCrtyj-i^BZiLz^6wy zePbF}a{Ngkmk?=mUR4evZLBfokB5HM$p z_uz>&d()J?F$$NbtRWTyWQitCmQXsg1LYomVH=JT zpk9^q@PO@m+RISX{A)0@Uo$#3pI#mGMmx_|5D|AT zpBn_AS2DM!{8XcW)>E6N??Qy{LE}N9+<_C ztxThC@lW0pllk<(9o^nz$1cfAn$YZSVdn?hOanj>{Fr=DZ8}CBc?#QdHNn2)HC`v# zg&t=Zbbod=13SQAT|+;N8~x5o)qC1Q^&xi)ThIo@Gh+f~KiMv_!ARp23PO@`c{Zpp zJK!QhEj*tda7j#u{2eU(__o$|Jsgp?v-QK@8=93{pa!N-c*oD0QbHwXjz*H}X2mY~ z+{6ckY>7uc(PO)FrXy#{fd5>+%UWS5u&?)eXqycT5_a88b84b_7qMC=(sNxA$4^95 zQ_d+sVqkvF%etJ$=s5r;S=pwC@H{_}>6ySS^{mLMrO*GURoSHQnyS%9&R!48=Ap9s zpP`93unn3%5xdGbbd}u*M|Tc-m_e_g(PpR=!7UQd3)F2cEbD{tPh+`#HQqX9r3x_p zI|O)G3ak<(w3zTE8A5Wgk2hB{PHzw1rb3J4*7I&97bLtOXetmO9MQNw_&p0;DOnsL zMn&C_M}GFbf|>KaubT%rJv=V%&`EW8;?kL+sX`xQ?0L38l=MTra<3FpL;NB;8^Z8> zx)5p>Uu{6CUFId=DU<@US9XaA`&aijT#aq1$K*&hdRz!gKMJt(H;Jh94ja%ayIY7~ zEA3*LTlEBOq--Or(%!}8(xuvoVB&bs$fuaT3G2dF*<$22(vp>)Ewk!H3y1AwrYhc$K?(x`={b;Y^W7CGVUUh=*L(zYA_pm4!x+z*x zDi<~$Sy8sj;%D0bt{U|T$WlNeCz+&T{Da#tcp8S7CCU)WTw*mBXv^YFx-olV1RD*G z#E|`M2TPe-3#?-;uHi2K%yhL^g=xIkgK)|-aa7BMGB^jlJ{1*m9M*F%y8OC$Bj)2D zj2zvN25`zDcC%B`nux7))Y3d{GCzR-Fvo&!Ef-wlIm}$p>1iLhP`s{zfq$fGeE{+5 zD?UXFur+U&bm!Ors|{G25(%Xt2U@R&5UtfqLsp7`xV2uv+*Zl$b?^)9&M~9$Yns{@ z=!GwgKvI`^Y*=p~^TNDJpPJHi>dor&n_gdCpF=+rTF9jzu%SqQG;FD0!vpYB7}^y9 zvljm59O*Q4#|liYPsk{iu!di*`{&6ShERlvg0e#(9NA8TEqhUtK-Q|kcYO2-(a1XN zZ(5WJbhqZ^o*d`K-#}#2{)IkW79Z1l-PcJBD7Z;ZiZm@s)@$-G^G*c!9=%&glwqy% z^o^FCFa(Hz7j9ciL=^RLH;ZZ2E!T$Ayp!x6k)8>isB;ve#h;I++`00p+8o7!7>ECp zi{T;`(}t646NeB?E7exAq);=$T4K%BwiVBTvVL_Wz#}Gtz~b|SE>7m?f?~q&Y=`Sf zGWlHhu|ysIGJlKBYp{U8*xuqsvifrXqq1v;aaMDqOgP)EBpaTPoN$;8DuxJhF!GKt zHE3>(T+5xXPlt;ZIpGZrKZPMQ^K9JqP(2{%R=?yG>3GDj?zR(roUzuRDm53H85MJ( ztks!$I&hf~-u)sxPxhL^&sBA=D~jvP=VZ_IJ*i^aWMBCXCdr-`)}YjHG=|^x1<{e? zeUz?ZHL^5S6c^wZ{rMNuRcu^^3vMl1O#?F`48xX_izY*a$Ee2C&w86D98s|p;{7>l z1>Q(e5j3(@F0G=9H~qcnrJiA9(ct}?dA13i3a-oTF3~~kX^l+|LN@srjn&IFn_3CS z2Fk>!3IDlP^x=#u9;Q7$5^;6F|K#%m1geF5#fJo5^9KFv7>+g29b;eNE{ebL(~x!- z%r?Dlnc9Xrs4^5MU4>B?4><2gvVe~H6g>jWs3_c*`ZPdRGw3tH>yf}|LEV+u*Y$D3 zlPHdOmyTOcUsTYek>*>3)bLgwLza_uXIWWW6-#zGDrb2_M(~z`Ju@GB5dA*2x6hhf z=5H!~8mxDY%ooiL-3O1f0bK`HrF;yVi{BQTNQzp5FFQWN#$RN#nY-8&p3TOW9FZ-; zTAU)t?v)(IJ-82>Ish?oZ($?X%$PmUs+r1b^q7;DeywGB%v*w^_TfQnWP!9G1m(Sx zraFrEAs7}LaHf}iMS_T2vM1DMEkRBbhPLkz9UM@m{y?coNyKX^_(|r6Ddj2JIr@Jq z1cglg(tpurBwN*LbNgQdRInGD8~_42uqX zh>R4c4=WyXV;Dd& z-7S+5W;2x2VPnc$>{GqJfTR;~aEs)3E;vGw31ANPq`gP7rRDl!mdx>$km$9WVZoC4 z0GygA(hLNFo)N2~(813)x?!YMRfrddu@J5&f*~pLnzUj8Xc$W24aY`vrJy2wg%*cIdE`}}qWrZQDzp^O@bFvWCWd<~a&8Y+&Sd!WPjGwY4 zv$8SYOfJVaHxM4hER19*#^#*qgxO!Y}5!F5$rSkgqyBO9}ziJ2p`2qBWk@Z&4tJQ%)1a|IO&5=1Nf zP$QH^rQ$W!@C6(20OXWn!RvMN4~g@0c%B739;{=sndf`vhMUEMRdH)0}g?B3|uTOe>R6{c3-5i6y$v|AlPAf#`CBf zm9}wy2(_5ueB3mkP(pD&|y=AvRzTejs%x{m7cR)t6mcbMIK2>zf?qxG1_^*W~Yg14FADIc&-@T13!V#81 z5~&f0)mAqx_X~)y?_E1Fio;(JN)>z0W%km(Kag&8wXQ03o35MfM7(jf(79~eAMyJ6 z{92lJtDydzrRqp=hrL60hOU!IZ^h4NfXg(yuVxkk*TS;KeP#bF?hz@P$PM=BW=>hQ zW^w~=Vi`00*F4NLdc)bz{@_*lougaFR1}mu8f)mMj@gRwM z+?aGt3$3{3KoqM_=8Y>7pfX(ODaP^*<2;q^6@1BzGIW^G^!W0(%6s$%34|Y2*o^=mTTS-do>{C<$OpO*EmPRGy;HFlfOyoM{P=Jp zhdEjShHL>k$nC7zX8`9WsFgc5U2q{0J*sbdmF5C_Ss!0nB+l$hrey+6vLy}xQ>%y{ zbhDV3ORBQc4K~X{IB(w)7gox8AO@rlut8swi+TVIot-d3AF&<5u)&is{!QiF_eb)5cK;G!G|PWJL)YZ{Ei}d6v9S1+kVw ze-92fuPmic5P|Z*f9HqJedjbGc#ZC?HIbeYhnz~ithCQ+IMyH%s_X;P+k!|P3$ms! zk|xpzv3QxWlORH#lTKR_i_I|+Nyz(VyH@BeN*YN(U2etAsRyYSB21#(-Vz!`A?T-G z${(~Y81-1CZ&AM@<73u5;4R=;2Uo@D2Pcg?I8#e)eka2*Mc-|wUPeQ5&q}?xnnypk zqxAHgm=jT|leCfeig&?iT~rfhoDi0`q59LW*9GM^ebmqloJgNREHh3GY$4B4dg137 za~Dm(sipZ3D860_NV6=lbp_6T+}JoJl!A=8p1_*V_1RIaA`KR77tFF$ZP8~Z6?CiW zy5|!6W&-oz)U^AeYJ$SH@oS@ns3QpV_#&W1?CZ78`mi)@Fi;@#Ie9ux@893h)qJ2( z)0wVXeAPmWU`qoaE|_%`V$(j8P);)&kIXDod7h&0NW4##6b0ug{|w~taYz*x&6m`O zKcU)zj7 z<)#T0dw-;gn6$9Y4+baq(LO~xBCS#5w7Y$%s&OQ>V29xQ%5fmKWw7D5`+_NFAX75+ zUxNSZLcn$yZqQZySHR|--`~n{cu}SKAWIbbWeU?jGZWv1G>3ZPwIjiIM&M?THZN*^ z1sz!8wS#C zaYMX61-_Y&wcc?Kk~KPE)lFqMY9Cj%U@3moS3>R0B|(QX1EF+4;2{=9z}t-D;}S@Y z2z4Tp1EttdX7FJyYJM=BqCSy7$iwg^fQ+jC%Ua%kYw@d0|F6i8m`{Ss1~t6ky6Bv?7DNX9B&_5|r{ zGa$YwF%#>;oILU(-O>S!8^V{(SsW`#N0bizWaL`wsiPgF^^F<4a0`mqP~zyLaUIJC zKXq@PKR-ZKrGBo#czM3wsiHB0acDZSDf6q*8OCc|H3p}f(VgRN=SU;%So!n_$7-4C z+zO6;mLpzUwNaf=tV0?ZxPpxcF|vgXFImZ{Q!s+(JDc0!LT_Ie)qPCJsD?CH!@S_6 zgUB%hZ{=4*)E84$Q0y9`&y50L68p42D6@fKAv-M%P#PH3loN4>ZIb*DvKfL zor6Yq58dOzBj5(9Fy;qVsV(O5st$9B*nhrp({r^Gr9#~$khD&Arf=-QP*}5OzU!ul z2h6*iN98dhl9fI6sdo>cS~b4lyi7a&xT=UttHMo1!X-S@QZ6NWos1pTZyoZFsxX|` zLER)f`!P2%Kjo^h)VuP`kwUoezOmG+5B76Z2cl$0CO&%F%!l%C<-9AB#Z3Enc2#6L zJ!KdYI6R^!gyKO9!g}27qhfuzMR%FC^#Mk5hfn0lSlOk*hHGTZi9uPjOU%~-Mq@@Qz1GPOV+G7v@36*$oUtq2$X+6E01_Q4q5|)s zBD^k{ljpkVdVcMFkLQ*txl}elljjE#%y zzK;*XFH&XR-(Ky7x`LywrCN~xD9^qiM*6&cM_n%NLM4@TS{$FiZy$S4N~NLg2{*oO zk;`J?(~4ipI+?dY@)?bmbZj9Ivw1Yf{6+kJ0Cu|x?Oc4mDdheTENUmQnRzH!{(H+7 z)wVv;{?aG=Cp8*(_0H!Vy&V)|fRg*4YBo507 z`a%HmCYCy_FKg$+#jpzssG-{zaiUWV?YD^v=8DFlOiHGf9->Iv6wbmPUWk&J}B0BbD;VjNRoFSqF`$>A$$YsCq%s z{JWKI(SHjMp)|FEX4+%KsT8|18jb6A5@JK`XZ{w(Py3YH#ZJ{%yY_;kF{q$m{2-{e zj~Od(-%i)UI*KMyNNEtQ#(m@PbA%{}-5?1$o=8{yK&P6LVVgLY-q!laA(uOwbj*GJ zQr};4)^#e-kJ3cX>j#Ux&36HpOS3q$XOGHC9?PS&vQ#@9+BDKDGHhXqBUpY_{iAkw z*gs9$knd*2%Ze7VA4-5@XSzK$=)-znH12xk!Sq5?in8EVb7x(r<+321lFEN~uJ4ea zV|97u%-jk;1z{`UQ<%IsOj{B)^P`X4J$EF;mz&GS!~w~{zXyeT{WUq>FOKUvWvsiW zySuH~!^Z04NVQyHNsB}CWGP8jhs%YHAj^6>Mj#b{WIPqnhhtz78_fj6e$#-6GhNUu8qQ=VEJu-_ynX~CCH@DZykQJIg3z8Ji zK%4NB3&^>VKHO8PUSl3=-DaHd*;YlTN%J6szo z9s|RH8l+Py8Ij=9)J$o$D%Ru*QcQd%uRA&%{HZX82hjuPt9*}P)#q@#{$QtvEO>bh zHC=0AKBV!+1X-kaUOWU5A}C#CNz)Q~aHfwjv}mnm=FGye)YZeI6zB1ZXYZh{*}>y1 zaTHT#)n-8W$w7LScyTFtcM%^zBC0*6l_(V%HU)%Bh9U+ zB}e^CQgBiVLNAnkLX9*-lo++A3BofHMDoaFPlxB|+^0AXg7_j&^tnaaK8zK&VRoqI z7^I*xrQl}Zeg&_(qvr={O3}K1FKeR&YkWV0{{_$C_YVhY+8|@}H&YKG6B&_RE;Td6 zHbCk9={ATd7~kpD4{2%&kID^P9@&+v-6loz*2N@P9&I2{RG&D{C~?mUmaNyXp0+fU z*0Ibctby$QlWa@I0U9cOt}UZt zomXirq~IGNv1ILql0Upwg8aE@B)QdN&*kz&OB}q-9E|qMIeiSc+Bye;H)8qrj*!-S zVNix!jP$E$yw-8bO+C~lqCy4dEUZIC3C1L8IdMTt)80HhkS!s$lr69PkW((NEkj@G+(`xt0i&xN-Np#wZ_2eL&7cU%f6e9h_0?PyY^skZJSV-`vh{3ttm2rML{nJXL z+$gap2(PFOlsTStJ?v`!_4f7d7M+FZG%SStp{OfD{pQnWaw}SHsCjEl9Q%w$a6G@2 zU2D%1X+>eK6S!KewD+YN@c>_q-JJaTM{NJX#w1A4kit96{=Gf`7hel9nAyAPa4K?jG2B zeEXo#FSayzg7hQkmci9dg@%0}dO*x=JVXVLLL&QHX>LHg7xc}UXd^nB zw5_QilzTQzXrS@bvnk*QJUQBTvE|RY)Q(-gQ z#`X+Z?Vz^>`$+6NFmE4brdK6ie-#bGr~B=E@DGK#oNi#M)lsw6go)1xJdx%unuQoL zF1vH5BHC5xuIgfjP1Vr_5-RGnf--XI(3|dJPob)1v$WlA@cO+8Uz3BuY+iBoV}ky6 zj8mpNR=HCdFOk5^7Dat2SbPfSR{`eSTHVFN8(01VL<5Ygbx6>Bu$D4f?T3)InX(4R zmOpL!bq!oT;Uu!|Xlx15{|M!&_n>jf9GC!z2vD|tOI00EFDFy^N5;EDbVCa~@85vO zXZ%Nlw6g;kgVn1g6!EJvLq5ypx%a`n;Ly%{)s)n!;h9-QmUL(TI;DBeP0}C=pck;) zm>_=!oe*cYn)dV7TIrd}1pit0sa4dXvlb_-C$})Smp-UMqTrE0QMmj>wsIT7IL~sk zN@$qZP-6ZJsf|V6Tv26)LR*(nWkh;}N^{O(?T{}6QBMob6N5USicip|GXyf0Yx3Ew z^0D91=P>as`nbB!_}Fp+fi+$4yVO}e3>{AuXKmf*<9LeNOVYP4@nLA!SH`}W&PT#L zo>#j%8KB|BvZx8%B`Cp7_?<{#2SUZtbtORPCCjmM4#K9NHCK@UhDz z8M~w0!pb{Q5DX(T?U@I-MFc2$ossm^Ww~To6|Gx4hES9HjvS5uVy9lL{cfe)t`g(Z zvLi!r4X`7=1Z`}^KD-a^YUVO58C-@-v3oa|Ml9EP&);M!UWqM=S_hD8Nwv*nxkN}l z1xj#-w^y|z`nLk#rJKU<7Du-(cUqVxp;#fxCe=`;PI2)2$iK@XfJ)(8%`O~IAywjA zXAdlZ8Q2p|6u*QS@!vW{t0qwypS)bnJXft)Z_!p;r>GBm9&Mht2WYF$cwRZ=1{v(R zYgVSilRFMw60XM1Cd{adqw(pJ4~K?8SyZU1m6)SW3Lesv{rpE8e8?+BV1~!f;zFod zqcKgR@bq?{y*p{eZ!|iPQ@;Fbm?~g;>qOffDkkr>*#`zEqrNDeu??RyQzIKRA%Txm z)+HGwFP9-xD?_050_-kL;Qix!|D?G{H!E}Yb?!!MDvF)8&hkq?wm;iwB}(=Z)f5_5 z)_-5ZH9H@XpM(YR$AV?|@P?AiM69Lv%hF(W&eITNWa^>x7fITEH3wFSKb;Tk+F)^R ze$t{eQS&%+m#Vv5+XlA&nD{QYG`DykMq6y?<*U60tTa$1W5|501@Q@VpXAg^WfRrA z7*U0psYvwK6NZ%t=$pqcJ$>iU%xlVHnfhGDO5*RCX^&%L&g?K8AB zS|r$TCh_Uf>2T*vZ*~AmCY5hlLG3e4RMa+Vw0w~_sE=7;x%1A`UW41b#?S*sRXHMr zPBGzA$4g5@`(5AMmYWRcKQnAX4SlN>tEVPlZT(r(wlWv2kz42Fj>QNc8dyVAKqDYg zs+IWs!sWG+vqXTqYXvRz$}E2Z06nq_&62{q6WfMqXzvpi+?2+Dx8t$4NlIbQJ*-e zl>A%Ja&8gw*})PnWH4++3cRHaL~4q1Ro6VmD~YhBTYFg;K^p;@yU>e#-B<(+09VZH zy|&5HyFMXRdBH&+O zjW!u=wSF@by9xw42y7 zC7@&FJ5J9+C<2{{74giPix=p;cb*%`E5Eqs1BJk)KfU*27`5%7!kwaZ49V$BC0WvL zlsY&B8~r3;=Q77_E}GoWYZ8OC$zLRnb#rGFdhfNH?m|M%`CbI_7Hw#b(2aphEiGRa z9BAohyqAks4}*8dxO3Sm26TXL%fKTRuO-l!I}V)2vYHiag_6^YV)iHZwCrU|L>Z?@ zSF#sy8_H)W*jI5yGaG+N8wok^@_zjXqhS_4itZV2DkIrpyiGd!h_!?0F8Q-a?@DRb zgq1Rk-p2A4gVhm;J>H==l@~^{+l20A6&qH^8+~lw}tzE`~Y@l_WuP2{Q3cm42-{q z!+#F`H$Q-h@pqm62TWkZBb!f7cp%_Ylnf9@60++QA;6or449M;Jsn z7@$s8Ti_VLgv}pl74I}yj2hO}KFpt{CV$4|`vF3q!3e}23hKV;6A>=H8CXcblG$`uhC*pQ+)=5Ll>2Bx56hwx9yFKi4cI zgacqEux}iU0%HU4H!Bu47OlVn)Zt^9Ft9bC3u^!X;0%~nJm&278RyX2HVyp*q=4EzZQr5CK<}{=Q;hv0svh&I5u%w5!HxDp7dGLDR zzI_jveD*P**UzBiGvj?A5COtz0lOJL?r-b@2S=buK~n{P%2_1ixM%riGv?WS`A_d3 zgm`R$xC2e!Y=GFEyxu&RTvSuI);5=)uz)J93>@vc7Jkec>k2B zEbP9CDfnIFLtytGH#An{Sv{RkYNhRMAQ*(trnM90clkj&KT7|-x+i^*Pd7T$+a}up zfKWf<+L`_dgXhoTw;!5kexdIlmT&G~nc(YZdbGV+u(B=y3NHf9Jt5V~wYmH#?W~Ee!g#i~C1Mabz3D`rB)~-Te)K z3?V#%8*8*FvEAJRFgJTnp|`G#7F8*<;{G!x#Ra?Kk}x zq(1mJv?K5;?GI>PlGYcjM{ZW5qgy@DH#aW6|JJ+SZ3lanU;oK_>rdawlKzkSLshNS)2zyD8!T;K)vYTMgk)~4M^T20WCJ1L9?6hurY+(;q%Gj^P_K=oi2+}TzbysTW02u!UmGq~zkx^fI<`t@7yol|`rCs`T^#_dfDK%A>m1g~kY zkz#2MZ#kLyAnqxh+$!DOwtH&N7)i_+0;Adl*>?z99z6+%7qJI0A+62e2Ef&MUpyLS zQq9<2+!2RawBfSHEcYm7Ae+&!9DWX|SmS(tHhcQ6_peS+dE@ykO7){DW2k(|iFFGm zlCHV!tm4eL;d#V5i90KUpxp3i>x`do+8~cWA9~2%VNujf8OFIlPVCkz4QlMaH9eew zNuyK+*Xl`9cr(|pvpkNTL5Yx{Untk;vfVuUgjWnmibZ>+{w zi=ve}N+OVrRt@$vQxcn*3}_imEHvVpZHB$b7Vh?2Cs@23HJc1mho&nW(#=K62{H^suFcWoU~41v zQ4aODhwfW@!{mycS>1V**7kk6YoTs0>A`?o2+ z@{ytPX7H|!y!7gF(&NllNgI-Brpn+QM#iW0Eme)d-Bky*O%SftUM|h_CdWC_l)cAy&utvuQ3;7Zf9i9wO92Tw>8JPH+&8es z2Mxfe)3}%?oQ|vAg3l@!)^n0mTXM#qRN=W8SviuMlhGBk2yLI3S*zz*jJ^^q5^!Qi z;HSE7njA1-1!y6NDZYy0`Qcmyrac&qR2o+PjxY4=4?;j27H27auDHC-T4iHC9M%rt z%r!p3Y|r8A`D935JjhqSaa+I(BFT@7V7~&lN0Zbi6%1xxG9bqm(C^U7k6o+l46`_p z37Cukmtv{$N$Sh_-V+~_oK07yvi^218BWPecAZk$lR$~EP3Ct-`5WywJ9n=iosS(E z(2tGV9@?f+Y|Z`*+}uqK9q1<}S?Apu0dM>{UxWX#$7}<@eLoIJtODLv&}7zA^txcH zjak+#=41}+#!#1w9{adR;I-vnu=WUwkFJ+{8L=!VPoR~F>e$>r3c7v03VI0qO9VYZ zyzUyd$&EP6SwaO0+->IYX#K>HYIRmL5(~zVqr3aG@ODdbCI-9msxcbNKAd9Rk+*1# z=+4#1`HZoHuqSMGA7LxVhV;I-kL+V8B+eU@aOM^gTZ!6v^OjF zcn08c_RE7X9<{KC!{oD?++>#Wp)B21#{%JL1&l?vN%CZahAa zYd%VpESdKl9d7K6Mg@#Z=Yz*Y;q;4D} zS+@q8ZRliXCR9}XeXdzL*b6qD3k@XS*CngNa+9Vo(UpW}ubo#~Pos!+tQzH3xH?zy z8oFC6AQ`D>EpZeT>J5$KreCL)D~Tt=so4T({-x6An*{(QESKc(Lm zpdA(iMe&h@$u9Kygo{lCyYKo0y_i63{?0X%ZWEKp`M~UAbSiyI+6P4QR^?Cd1{ana zqRUc_QFPnAmF)um@Xg96lz&h70HHH#lpsohN?4P{iTc@Sw%b*biRh(xWm|ZrdGm;~ zxN&X(3_Xfh$ZBz%Kv861-ul*|r{>M(Khwn0nB1hhE~(s6w~+>s^1S`eS|^oeud6gh<2bJF)v} zRQsu@X?>KlNjui8kuqArxz}M&!(|vOsIh8g?7Vnf&*t|v4 z#oUR}ktL8j;Nx1zV%>*;bUTz>o>gq7=fl$tXA2;Hx`ARkint?ak>fg1(U-IR=wPw_ zl#EzVSNdr9jl44M5^wtsl>z1K}~N397cHHe2P280rvdSu%LKGVlM1V^TK zBPz$aQ>xOhbQGwQ^8r$yno{E|U+v@M(+Rd+zzL-TE zqQjUGnzt5^Sz-9>n_sYOgT^Zd=TxQ%{HE&S7%m;7vtVc%EfW;|Rg*F=36sK9ekVa9 zLA7}#M^YP8nZc5Hv$Pgjiz+;(>d~Ij42aJb2%2TYr;j8?v9AX`rU4}?HMBtAhQ+&o z!PkI8q#P`Hc)^3{9!ZA?!x*c=L#DGEV%rNJcHQiOd=HxL@H+nPY$OK`TYcK@?MK{% zP@oKkP}A8twd9(MHzNblBbuWL1&7OmgW|GTnZQmh6pv6Gqby?TzddTOX2g1wGZB$* zx#&lqrCi`)?9NRnQpJTO-$^f#=sjr;y;~@0#fvHshXdCo;AxZ{Ob^#!fS!s$td+>v)9`&tMV1lS9z)b{2ko;^L_LNMS~>N3HaphN-_9Yh zx$nGLMN~Wfu?u2*eRIV(Uw5zcuh+A*0{A;DwLwE?)R8%D_tGaTM2%i}vVG{n)G{av zlZ7QbScGGJca@@;y@NS7brU|o-}TN&630TdxnE`~5WT{s;kGSO47c%}?%tcWN&`QW zD8NgQn~Qn#W3`|{<>hU?>#N&m^|q09SA9cW_C7G>h++Qhb0J}>T~L)``x~2;0O8D5 z*%z`3zG#<~+~5$IRY%#f64`H-O;V3Y4KTpE65x$%w%(temI zL6Fj)Nw6fynlIf_dTH)JWxlJrJ9MAvnYK-i-|1 z?JS+x47f2-=y0DhISae<5Gbs?4L%6%4d{b~4e&AwQlZd*3_Lrbw477a6BCAy@4kLA z?few*8bpZ=ano{yW_5cPNv4CX+BZHC~n#oFy0C0XT0{% z8$OTwdU{7Ag??u_s&Vy82Dl>pR4Lz8OQK-lXQ+{Tw#kXn*l`+L^*EA@V@OVJti2__ z@p&_3_kwABz&0u z$5{iqsY8eSj9af~%@P*3+C{GAu-&kEFY7)Ao5$UMS9;PQn=P@L+FoJJu9Tu@vrjIG zZ}t++C~|9W#u^sgV?WqTFlB>V&^3IZu91_?-3ynUcimpOG)A*sJmV{Qz9%{FZ2srP zV|`L=3T3!#2HzAghPbV=>Z4PCG00ijw=ldeyEIfL&vYIx z?#MLZ=KA}_wV0eFFv;aUP_ju6n+3jZozn~~?rzJY>N;tx-Xe4PY=4^Vt#}X1A*}mH z#Y-qLNJaWzQI9;XtX#4lucDiMYivk}CJdaKMC|-|u@$-X{rtR1J0wqfys{8(@+u_e z0lWIu^aduB^CA>HTSPZOg*F}eG?F7xsiU| zPQU3=9Q@xkr9y@r!b{_dW|fvQbOM|%d)mi{G!Nv<3Q-({(+hf1;Z??!W=hUNM`L@nd& zy~nT{8}gehxJQ9}fLO)o@pM8i$`Zs%52hxY3bGb*(D0k61n9%=bM`{{eu{cVGzrPS zYk;I`_-eFk%3FUNd&_0;USxX@kb3Kr`3T)F^rUY80ZwU&<7q0=@0PMBm)N{ZF&(Ms z*aRbKPJxj)mXtvL#m&PH>Tos3fx=aWjZwakZo-ZDE;$=7o+*gnlM>`6Xlc$VN(@q@ zjU7vfzZAH4{w#M^%gWc$3h8+KI(7++fSPYjkKo5Uq@MBqtOgm6@z9cVG#jXuCZ!jI z-4t{JqmQpYX$j$S3d$(Qg18>9c+7IG26!`CpA62?Y1dn4H^{h`Dha|1g5j)ljCrl4 zS0#k?S5E`J8oLTHTNylT3EB9o$MxsEUfSBNfv!r@PKg~5SX~r70LxoLgx!GKtnV{v z+Lg*ygCB(wS5`V31*G_wTe2gX(w0q1ZkY9-y_|R8fF5|noVW~3%@}3A0wOjw2Qs5W zFFM3YJ+Yj7IxAfZd!y%UC=tc8l(7qoN@6`;YMaXVADvwVRF&PfRZ653q(cr!=PA0R zyIVMfba$t8gLESe(%qekfOJU+D1vmC`VRj0zgO|TcgKC-U<~*c``de-xz=7V;LJVg zT&z^1LJ4wY56bQdhuvS%*2;)h#(qvZik|Qr>jq z_^^lpHR~CB@4W-EGU*XzqOqVHtcik>l$tFE>Vr$TK@=d1{aM(>mvtJPJmigSK#0!b zb&Po{xsA1Hpb!f#Ao_%InMjIxnb7%Ua{64Qxp?OZ(IvgLXBGv;uJ%OJ)O~k8QhBe% z#rG=IxF6_V8n(dD-`4jHQ(*QX;@nRk z6O&WMd74J21~m0!P|(IXYy@=q;+w?GMNNE3^vhyQO(|FRqPqe{NMv@E$LZEUJc8)_n$E(7V) zmvu8asDd9xu(w=4*rskqwN@4A;PMAI*il|-yO3Q|6~rzHexEC56<{2!ar5Z8CZ-_YmCayI9 z=tnapcY^Pvf<-*@HedmaLV6ziJiW+znrjkSwu(YQ*fU;OJul$;YhblLz6Of5*Dmy~ zvIx)Q2c)79vo8}J(<=iJQh`(TG|$fp-cXM(#tJKxRwkzUIdrUObdYkY(db5Je+=NE zqpp~H2;y0@f6;*Yp=2muMAfFst}6e4;U0|4j*~mRE~m}OKPAAILO>E#La)W!^KB|S$_Su{@e=|*?`c>tr0wDgbb<0{IJ zu?Atpv0_{C`~?)SDn#0Owom*4c7+@c90qhkea|{2j{?={Kem8b%6Us>pNv`hUEjwr z3Arf2;6?6w)U0x0dj3jX)%QSWsA$R^Qh-mdt?@a>zS~HX+2cshXwS}xY(qtv?L5fW zKB*Q4v3nwIM4|(;ec&3X7hX!&^0_BoR1Vns;9%<@jioB(DzLd{Od-)SJ-s?!Rys`( zk(21|HHzJN{5G;doC2P+!M!}8?Zv7{FBX=Eo@308gb6QT72?k)q&1rL@cKKEx*NDk zyh4eJrUnttRJnOEP{b0x%nUS$lRHI(J4fP0x+ZDEX$a5OEhtL(7S6-92PVm7lqvoYf)s|J%`f8&| z{&7R!EKenIgM;2h)7d58;4;Qjhtx#Gk1yTDN}8R-#HYIq@!X>Cw_YTO9y1`6&%VvB z9ef8CV!<}m7oL2vA2~r?*w_B`fCkxGq> zT?BoR2~wrBGafe7I!077jKrYVg|Lo2jm&F&WqKtOBKhGs{I0y;g4U;xiItbSj!RNJ zrz0uI?X3Jqo0mdDxcwG*4I_wvRiMsEAN4e)?kG zWS3ytYp`n)GRS;M_s(s+Q)CG(Vg(gx^D3O%XA5KEj;Ys{0$SwNcab;RyH`(qU#N|T zmp2s?RkbF_Vx2R6kk*x|^DJ&eVWzQ%ZFaRE1E)$6F?|Fkg`-lvIyB=FKKRL(;CF1dN`#K#6kCk zbw_#soSpuDyO<9SlGR~(>T0{ULeuMlyjL!&Tiv|@i^g3g^#yVtg2(KO?bIJb>TD%# z-gZ#r8l+$*3YVjP_l0QwIEmEp6@72_fCA=O^(|aOEj?KE8*T0XdkjM8`AWb>GSAYrKX6=0|+<_2q{)U0IOm{xNu+t!3VQP#3 zQ2WT1qY3*sChUvg9a^n?R9bQe39KChH4Np9)O&%|m~jbwEyzZz9wewVZ&t*RXw>uA zvni#YRbW}vrnhI?54gE}Jl{Jfj3|-dmuXhS(<9ZQN+08w%RfEV^|9M|M%8o7gT}Z0 zxLjY;)Q6{mNU>xJhOdLblO9Q^e3|N-gAksKOB~wgG>@qc!Li!(4Sq_S7_s4;*C!2- zu+Z!^E*UgXp5N4Ly2j4oVzOzqG|}gAqoz!i#Xwnw7BA4gvlL6w;b5Dq8BY=!2Wx3$ z86ZPs6XgFkv)kSWlS!EecOf;vRmpc() zov|Uo`R zu*}3pscITU*|cNG)|Eeo4+6flAZHgrJdR#)Nm`0RbQ`WkiwbYQp7P3P#tLbL#Q4q^ zl$xQ;hE47M46QZV=o9XXS{XZt=ndjX^1<|o1SV-FE+-l&XWr&}D2e=O5d7-R0b#ZA zteo>Brxg87G7W((l6M9}YjauxB$J)2r~(D2O{Q(%`bDNDL#N>$SwN3R3}B>nTW`M= z)5;252$H9#*B!@7Qx!_Fh>xx&anix9wTeEt7`h!Xk56$6ltzrVn3qv2+|g%S-44vy zDi(v(F~1gfem;Mlt<6{JCF$tV_hn^v2YFoFNzR@C`qr==MubDQ=&+i`jf@!_@lH2S ze62{igMXCA3o*`>pqj-gm_Bds?sU`hgA}Y$x>)0O`3O;_ds+GZx->p!%YrxCfp{tZSDmlW|p!R^V$G#aIgOhr9+NGrG4pAEn$Y zY}PmWn}c|pdo8+x^2$kjBlq~#z3yF=<>e~F-+T1%b#!l*X-YRAp!3|zu;n5Izb{#k ze$WXrmOly|P&p7|b$lgQIdT-gnywUYl?L`e-n_c7V^3`dwOv-hUe{-Nc+#g>5+7X+ zn>peLCnK}eRj@U>erzvHrPuIumeR9%Q$5Rf-{`>uGT18C)w;!X@`?HctAt{Q!_2rE zktC`mgHe4YS~I~X`U;*A>0sxF&K7y|MS4tHj{zpmyG29(9C)shgAc|xQgQgT=CM5x zH@cUGUnyTcm?%k)2W~_67g>j5icc156T-Uew1(PU?N_83TATFzc-MnJ&`N(vVeidR z3ZrnYC;IVFJ7o;th)sl5{R0PjX%fuwTeh#L$1~XOwSKjm=6&+P@8bvl8a(?K0z&~@ zRVQG*{gNkaflz4bR1s?sVy4+*BA0jaGmO`W=xb3p`BR5LSOJ=~ApF?cw^Tc#TGD;S zQlLk+*q&44uXMw@B$)U~`DaEXi$?qwn)17|P``I)^jz*RB|Uy@{{!jr1AdAw3=hFk zgEn49I&1V@{O->87hD1v8z|&~7m=+V76Sr1cRw;2O%@u@?$d0}+;3lrT`Dg$=fxNi zMG?FFG`i5YXVVAVK|NH`L$$U8uezd}uq7s7wgHa6>7701KCJc)Ac@I1I|T@S*15!3O5W*teM%pUUcq16Uo&1J(r}f&+MUE?YQ8leq>08j z5qjzY!)~jlY!a+ycJVfuuoNN)dfP%;0^oy*`^q>Odh+l*e$=EQIHbxDRqs1-|IN!e z7XggBP6`ZKjFuhR)0ziYRyOo6B77x8Q?Tb3zoip02+lNQq4x`Knq#i?%%S#CjD%#I z6%X-_sGz+o^=0mnoOa&oN(xxBIJwu#Okx%)TLf_Quop9*c#_LNudJL8sUbO`^oCp- zQMe3|2XKx_c=l9&!tx)kPrRRIBvG?ZOHp67wRLaAqD}lgXFfl4vVIjIVRl}43K^Xk z>myqfi7RIb$hT7GR7S$?T70`YB*wwcvsM;gFsqO7!Rkt7HTmRmXB}1loUe6RSS?@L z$1+6o91Qzx6;%c-4YpEt!=`e4cHIv_c`6X+oVUK1Q%)3BZLFk^EImkopARrqFwEeNF)j=a1qOr5 zwPK#8cUxC_^5__+nP1JUR-YB0)*|=KpoM%F5IF9Ggclj1^Y3FQrXR zyp%H0OXK97f|L$JwWCw1HfhkFzD&$kkb7AauZyM?`rHI$LmQqHGT&cAJkmp})mL1i z$&z+C>qQ5Bta`juD=C+URa_fr_C0MFHzUb^xllYI`O))6Y3H(gg2yNXh{?@&{9oQt zsYRi%C@CXK#7li@jsAv;k4lKe;JY4~CBD&w3Oj=DcpbkexM?iS%c}5gQkfp1KK-k zf^$zN(05#1A`7sg9G0{6vUdRaLwQ#^k>0NrG)gtBD^xM|{KF24th(q}4YfD{&L+rK zYJ(}y>oE6Qv{ceBQ~oc$e8aykVjki=6N>cQ3VuOr13X zxA3~Av*~@o8fmD-AbBaWjgek)T*VsbSK3Y-3ma>z+_wd`yj(!$fzQmtb23kjz`QI4 zpWn<59j0hV=jIfN2`=5Y+~jz(dy*{#8@43)IxZNrzLc0oW3-m=BOUAVHI7bU>`_z2 zWrBRlW0urRd2(Gk4k-jrME~{y!1r0-5U~J(CUr*Tg;NAYEU^vEn7byy1EheLO8Td& zPv!C{F{Rem)7*#)-}^s{VsgmEdR0r#B*aYcxqGMNNL{;{>CqWjd@j{go%p*M>{;F> zitt!PB38O#Ik%)wO2iZUF6a{`e#+TC3Kb0{KZe&$HTdwJ>sI=aUas;cQ>@w8tzzBd}kAh{(tHCNH*S3kowZg6M+pybeV zM52eBijVxMl+iVk3A1;4eO_<*{vPX;gqwpBzz{v~7MJ9jiqFnH(u$}2sbH?4zbu-*5_aAT<)RSycn-fl!G7*ZAJ^V88 zbq_xr@A?b)kS3UEXTyQ)jsnmq_n~@Dj1Ipo%4WSGO_`Vs(ZVR_qX2gy}gl>gWfcKf>^vCexcp=F>?_+ z;XM=0j`q+twLUHNei?an=22a((7n+I5RLGy_But&d7@BU-Ve%(LV>!gP|f8imgjam zJH}oUPrE;cF~sxc2#QInl|LnJ(}1|a%xd4u9hR6$D6qw;tvdxrdoS;XPY=_VBD%|* zwj~`$6@ogD-V!?%Nyf*X7EiqE$><9#r5&-VvLV^oMQm3K$bmpvGcT@EPuxd_bu1fu zYjXouJ4mROWNqz|Sj6y}98D}?Tp783&577jdhyxf+Pk#-$euK@_SHL0dn_UXU$7r) zz0r(i#oT*Cx$hibR>Q#0xkhT|Cm12K84sI4UiDGs^|2hIKS_RX=7_bpC+)&f>9r<) zHs|*C{ld4Qf~C6`z!Rl7_>>`x8C!@_Ey>V1Y>nvpq=W zh(Vtb#Fo_oY}&Gus)LS%!y^3^1ebbXZIH;?+~vka8qWYUj4dAL-JRen_;Dc~s!?NS z8ubzS{CGpj_VR*Y&yCKK0i!w5)>Olq{;?rl{>x{f?XseVdaz%75`?9T3f7;SxMw35N?t2(@Y?xk~Id^Z% zl_L#g%de>dyi6rCdEPEmM+X|eH}(=atpI1{WiNLN6;G%fMiDnyHHAM;8idHACx^Y3 zdHS|2{L9{K9N`@V_I9m37R&xx zQa^jwU;y_*aT?R^Tjw@uX}qjZ&$qr{g=Bf-Z+C3x8%wl?<(qTfvmK|u1hP#gxm_gj zSy1=d3ot@#)e-O~L=jMB@8;Hg%S2mPcG0-6#)G02_c&}Sqb~9DMAB3zespoU+1~KL zID6El6dA_Ix~6fH@`Yyi;N=40o5|pg!Fi=0v;1D7d&3EQ#6COx74mPev#W?BlPg2; z7s~RhgPqdLO6PW3*xe*Q*wo7l=d~_%VoA6A88&cJ{QxA3DFGc`AbD(A>^W_1cZ~oS z`E&Rss$xu;WAkub3b<0AU5UQS-8K3^0FJs?QK;+c(!uuDYB6|I8WKyp=Ju-8=o&Qwt9^gXfN|S^ zM4ZrPH`<);89})uCN^5(k@~p1WLiP2@H1*N((#(dkQcPuCQ3?Mwk^$P-y7gmW?mAj z7Bo%IvN0>wZH1XJFVu4#Pk1hAn`-wpkt0dOl~>75g{?M!eP8Eg)`xn&LN5CZcZi&A zGz#Oo>B%euE?RMLqRkksF5_@YukCX$9U+s>BuLV#!zoFAW^@r%%pzWjX(O)hI#u$X zLd3;L>PrzC4uT(@FIiLZ_A!X1b|$#ONU2foX_@9Tnm#GoL)z%6QpZTKkWflvoXTBU zGo~g`Y|*WrVRr*?UQf1R@5WxgzzMgoon;5dhnfPOru8` z#RxeHwQdLv423dMxJbry*#?^RwOzD}w0bo~hQj1WV@HvZuCN%NPe|8Z4mb1QWN{qF zkJlt}{LMP22h)1Xtb#VQQsgDzyNCs4@N>}Ty=e0(a ztFs6YN_Pi+Rwv1ONCI{sO>(F?648(9>??U?H{8q{>82W=( zN=N#6#y!|4hI6?Kr!2-?o9VX9+#{*m8nN`8Wp$H>8z>jkn|eVC-6M>(dS zcDC=4zCUych?#g(E>-M-lUy5PBxR_3hSdd;pOeO!gKV7u1FZ0K`IX1Byj@%6_^!HC zKWf*rPIs3y)6ccxk2UdsBR4=xxA;>R0e5o*0&Jd}qw(^hvHmArgph`ekebkqE<)vh z(?vkxvIqzSzy{#}uye7)&{zc>42-ND0qh_U8mq9rt;A3F#lLQE94K$T#|#F8|3BW4 z60Fj29R%F>(ea-yk2f-iUlb63`8NKgfB1(lBiv^3ABKuftS-MPA8v#WzbYS~|CSlJ zTEpqN<4+gO8@k}HN=VyLX6R_@007^pRer?+2L0DyafW ze9*tZfZ&FZe}lOp;x{li&;D66{}(gD>hi)8VsJ3R%EJGSn!lF#->HFP`x^~hVDcN9 z8^g>04$Li&(_2}(aZCLzOE;DKFJi!OCrKyOS#|5?5_5}?0{`HMriya(>GdXt-9JxKp*G79=8 zMh@_fVB-YeIPiI-%?up?T0e^t@N**qKtB@=0R5Z`?pS)07TAqs=pS=J|0G*j-%;Pv z#srP^=j?#n>4E-Qw+i+)hE4`>MG~E?nY4iuK^U$~g1h4a z=-}bMZ{c>XB5?f@fKG%P3WC#~S z>03G&!QrZiYOshoSz12Vx3<24q+)930Dyn|1&#SHXaFz^7YjR-iwi*aH%R(l_;9s1 zGDZUepb#|RKQ90~8yj4KWeoT`#?A$2?dAel|1-wM2`B1S?8f)?w-{XG#c|WXejNvb zUu^I!-HJis{r`51jpJ4f2!w*!|5z6aVu$DG*ZJUIb8z0m3||(^^~X34P6)hIet(vO z0}QX5-(ye+8+=#&7Q316)@uX87vcN^GY8jAXa4hqlA2B#Fw__j(*RA>BoN{v9 zS{J@7eCgZILLlJVT!A2*Ab8jO9SamL#QP)04nNNQ_BgKFSl|g~|MOXPAp7n4AYcgF z?R6nw_S-oE!uJOB_BbdA^amC;b~ditoU*ZV0dI542?9fI&&LVk_+t$&4o;5Sn7KGX zx9bH?GZcD@Q#kkRY=6c$fWO2X?e)zpjqKsSE&*7T&D@P{_8Y5`jg2GVXFr1XM@egA z8^F(2b8{mC(BkC~6cYgf#lV6P4lXE&6DTGGWru(SMcCPe!J;5RE`Gp&9s&dW6ie#c VJO13~aHw2hE;MRtQF$@6{{aN+mqGvl literal 0 HcmV?d00001 diff --git a/Development/AIseedGrant/AIseedGrant.tex b/Development/AIseedGrant/AIseedGrant.tex new file mode 100644 index 0000000..380cb7e --- /dev/null +++ b/Development/AIseedGrant/AIseedGrant.tex @@ -0,0 +1,98 @@ + + \documentclass[11pt,pdftex,letterpaper]{article} + \usepackage{setspace} + \usepackage[dvips,]{graphicx} %draft option suppresses graphics dvi display +% \usepackage{lscape} +% \usepackage{latexsym} +% \usepackage{endnotes} +% \usepackage{epsfig} + \usepackage{amsmath} +% \singlespace + \setlength{\textwidth}{6.5in} + \setlength{\textheight}{9in} + \addtolength{\topmargin}{-\topmargin} + \setlength{\oddsidemargin}{0in} + \setlength{\evensidemargin}{0in} + \addtolength{\headsep}{-\headsep} + \addtolength{\topskip}{-\topskip} + \addtolength{\headheight}{-\headheight} + \setcounter{secnumdepth}{2} +% \renewcommand{\thesection}{\arabic{section}} + % \renewcommand{\footnote}{\endnote} + \newtheorem{proposition}{Proposition} + \newtheorem{definition}{Definition} + \newtheorem{lemma}{lemma} + \newtheorem{corollary}{Corollary} + \newtheorem{assumption}{Assumption} + \newcommand{\Prob}{\operatorname{Prob}} + \clubpenalty 5000 + \widowpenalty 5000 + \renewcommand{\baselinestretch}{1.20} + \usepackage{amsmath} + \usepackage{amsthm} + \usepackage{amsfonts} + \usepackage{amssymb} + \usepackage{bbm} + \usepackage{natbib} + \newcommand{\N}{\mathbb{N}} + \newcommand{\R}{\mathbb{R}} + \newcommand{\E}{\mathbb{E}} + \newcommand{\der}[2]{\frac{\text{d}#1}{\text{d}#2}} + \newcommand{\pd}[2]{\frac{\partial#1}{\partial#2}} + +\begin{document} +\thispagestyle{empty} + +\begin{center} + \textbf{Proposal for AI-Informed Discovery and Inquiry Seed Grant 2025 \\ September 30, 2024} +\end{center} + +\vspace{1.5cm} + +\noindent \textbf{Project Title:} A Deeper Dive on Deep-Learning Solution Methods for Heterogeneous Agents Macroeconomic Models + +\vspace{1.5cm} + +\noindent \textbf{Principal Investigator:} Professor Christopher D. Carroll (\texttt{ccarroll@jhu.edu}), Department of Economics, Krieger School of Arts and Sciences + +\newpage +\setcounter{page}{1} + +\begin{center} + \textbf{Proposal Narrative} +\end{center} + +\noindent \textbf{Background:} A central assumption in economic modeling is that agents (decision-makers) have \textit{rational expectations} about future events. That is, while they do not know future states with certainty, they have accurate \textit{beliefs} about the \textit{distribution of events} that could occur, conditional on all information available to them in the present. Combined with the equally fundamental assumption of \textit{rational behavior}-- that each agent chooses their action (e.g.\ how much to spend on consumption vs save for the future) to optimize their preferences in some way-- the rational expectations assumption provides discipline to economic models. These assumptions ``pin down'' model predictions by restricting behavior and beliefs to be ``correct'' within the context of the model: there are infinite ways to be wrong and only one way to be right. While there is plenty of research on models of non-rational expectations (including by me in \cite{cAndCwithStickyE}) and evidence showing that human behavior \textit{cannot} be rationalized in some experimental contexts, these principles remain the standard core of modern economic theory. + +For decades, macroeconomists typically worked with \textit{representative agent} models, in which all households are agglomerated into a single \textit{representative consumer}, who is employed by the unitary \textit{representative firm}, etc. Such a reductive approach was justified by a widely held belief that heterogeneity among households or firms was of second or third order importance for aggregate, macroeconomic outcomes, as well as the practical consideration that modeling rational expectations about future outcomes is only feasible if present and future states can be represented by a reasonable number of variables. Over the past 25 years or so, the importance of the heterogeneity of household states (e.g.\ the distribution of wealth) has been taken more seriously by macroeconomists, nicely summarized in \cite{FiveGuys}. + +Properly solving a heterogeneous agents macroeconomic model is a daunting challenge, conceptually and computationally. Future prices depend on the future behavior of many agents (in the limit, a continuum), each of whose action depends on both their particular idiosyncratic circumstances and the entire distribution of states of their peers-- everyone has to know where everyone else is and predict what they're going to do. The canonical approach to this problem was presented in \cite{KrusellSmith}, who reduced households' information set to a small set of statistical moments about the full distribution (ultimately, just the mean) and showed that the value of further information was of little consequence to individual welfare nor aggregate dynamics. Subsequent work demonstrated that this result was not universal and critically depended on the simplifying assumptions, and explored other methods for reducing the complexity of the state space while preserving solution accuracy (see e.g. \cite{Reiter2010}). Variations on the original model used by Krusell \& Smith have remained the benchmark for exploring and discussing these topics, including in a special issue of the Journal of Economic Dynamics and Control (\cite{JEDCspecial}). + +More recently, researchers have begun to explore how deep-learning and neural-network approaches can be used to solve heterogeneous agents macroeconomic models. In particular, \cite{MALIAR202176} present a unified framework for solving such models using deep learning methods. Prior work usually divides the Krusell-Smith model into two complementary parts: 1) how agents should \textit{behave} conditional on the current state and their understanding of aggregate dynamics; and 2) how the macroeconomic state \textit{dynamically evolves} given how individual agents behave. This paper instead solves both parts together, casting the \textit{entire model} into a form usable by a neural network (or other functional approximator), and showing that three related approaches to representing the model all yield comparable results. As usual, the benchmark model is based on \cite{KrusellSmith}, and the authors briefly explore how their deep-learning solution systematically deviates from that produced by the traditional moment-based method. Based on their analysis, the authors conclude that incorporating more neurons in the second hidden layer (representing aggregate dynamics) is effective in improving solution accuracy, but including more moments of the state distribution is not. They explain that this is because the moments are \textit{exogenously chosen} pieces of information that \textit{aren't valuable} to agents when choosing their action, whereas the neural-network approach \textit{endogenously} finds the aggregate information that is relevant to individuals. + +\vspace{0.25cm} + +\noindent \textbf{Area of Investigation:} I believe that this last point is ripe for a deeper exploration, and that I am well equipped to conduct this work with an AI-Informed Seed Grant. \cite{MALIAR202176} report model solution times ranging from 9 minutes to 12 hours (on an ordinary laptop) depending on how many agents are tracked in the population for their method (1 to 1000). From personal experience with their variation of the Krusell-Smith model, I know that the traditional (moment-based) method takes only a few minutes to solve on ordinary hardware. The (approximately one page) discussion of this topic in the published paper does not provide any insight into the \textit{economic magnitude} of the improvement in solution accuracy that is attained by spending orders of magnitude more computational time, nor provides such a comparison time for readers who are less familiar. As a basic threshold matter, I would conduct a more thorough exploration and report of the trade-off between computation time and solution accuracy, using standard measures for the field. As you might guess, economists are interested in \textit{what's gained} when additional resources are spent. + +Beyond that straightforward analysis, the AI-Informed Seed Grant would be used to investigate a hybrid approach that lies between the traditional moment-based method from \cite{KrusellSmith} and the unified approach in \cite{MALIAR202176} that passes the entire model as a problem for the neural network to solve. Returning to the framing in the Background portion of this narrative, solving for \textit{rational behavior} conditional on beliefs is a well understood problem in computational economics; there are many ``secrets'' and ``tricks'' that have developed over time for efficiently solving such problems. Under the ``unified'' approach in \cite{MALIAR202176}, decades of specialized know-how about solving consumption-saving problems is thrown out and the neural network is left to its own devices, unguided by economic theory about its task. In contrast, representing \textit{rational expectations} when the state space is high dimensional is \textit{not nearly} as well understood or developed. Given a long history of the states and actions of millions of agents, an economist would have some \textit{informed guesses} about how best to summarize the dynamic properties of this information, but they wouldn't necessarily be very good. To wit, Per Krusell and Tony Smith thought that the second and third moments of the wealth distribution would be relevant, but they were wrong. Parsing large datasets for the important ``hidden'' features is \textit{exactly} what deep learning methods excel at. + +\vspace{0.25cm} + +\noindent \textbf{Project Goals, Methods, and Impact:} The main task for the AI-Informed Seed Grant would be to investigate and report on a hybrid method in which the \textit{microeconomic} problem (rational behavior conditional on beliefs about aggregate dynamics) is solved by human-coded methods, drawing on decades of specialized knowledge, while the \textit{macroeconomic} component (characterizing aggregate dynamics from individual behavior) would be conducted by neural network. I believe this approach would best apply machine learning to the aspect of heterogeneous agents macroeconomics for which it is best suited, maximizing its efficiency in the solution method. + +Moreover, the field would greatly benefit from a proper \textit{interpretation} of the neural network's solution. That is, if the second moment of the wealth distribution \textit{isn't} relevant, but the neural network found information of the same dimensionality that \textit{is} relevant, then \textit{what is that information}? \cite{MALIAR202176} are silent on this critical question, the answer to which would inform further development of both economic theory and computational methods. That is, if we have a better idea of \textit{what to look for} based on the neural network's solution to one model, these insights can be applied to other models \textit{whether or not} a neural network is used to solve them. + +I am particularly well suited for this task for several reasons. First, and with appropriate humility, I am one of the leading theorists on consumption-saving models (\cite{CarrollBuffer}), as well as the developer of foundational methods for their efficient solution (\cite{CarrollEGM}). Second, I am the PI for Econ-ARK (\texttt{http://www.econ-ark.org}), a project that produces open source software for solving heterogeneous agents models (the \texttt{HARK} Python package). Econ-ARK's developers are currently working on a modeling language that will allow for much greater cross-compatibility of solution methods, including machine-learning toolkits. Being able to demonstrate a proof-of-concept by connecting \texttt{HARK}'s hand-coded microeconomic solvers to a neural network that can efficiently characterize the relevant macroeconomic dynamics would make Econ-ARK \textit{significantly} more attractive to other funders. This project is currently funded by a generous corporate sponsorship from T.\ Rowe Price, and has previously received a large grant from the Sloan Foundation, to whom we are applying for a second grant. + +\nocite{HARK} + +Third, I have recently been installed as the president of the Society for Computational Economics (SCE), taking over from Lilia Maliar (of \cite{MALIAR202176}). Tying these last two together into the fourth and final reason: this summer Econ-ARK employed the Maliars' son Marc, who actually helped them write the TensorFlow code for that paper. Developing the hybrid method that I have outlined here is eminently feasible for me because I already am the PI for an expertly developed microeconomic solution codebase \textit{and} direct access to the authors and programmers for the seminal paper that I seek to improve upon. The tools are there, and the AI-Informed Seed Grant would provide the means for me to put them together. + +\newpage + +\begin{singlespace} + \bibliographystyle{mnwteststyle} + \bibliography{AIseed} +\end{singlespace} + +\end{document} \ No newline at end of file diff --git a/Development/AIseedGrant/mnwteststyle.bst b/Development/AIseedGrant/mnwteststyle.bst new file mode 100644 index 0000000..4cddfcc --- /dev/null +++ b/Development/AIseedGrant/mnwteststyle.bst @@ -0,0 +1,1590 @@ +%% +%% This is file `mnwteststyle.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% merlin.mbs (with options: `ay,nat,seq-labc,nm-rev,jnrlst,mcite,mct-1,mct-x3,nmft,nmft-sc,keyxyr,blkyear,dt-beg,yr-par,note-yr,tit-qq,bt-qq,atit-u,volp-sp,num-xser,ser-vol,isbn,pp,abr,ednx,mth-bare,xedn,nfss,') +%% ---------------------------------------- +%% *** This is my first attempt at a bst for my dissertation. *** +%% +%% Copyright 1994-2011 Patrick W Daly + % =============================================================== + % IMPORTANT NOTICE: + % This bibliographic style (bst) file has been generated from one or + % more master bibliographic style (mbs) files, listed above. + % + % This generated file can be redistributed and/or modified under the terms + % of the LaTeX Project Public License Distributed from CTAN + % archives in directory macros/latex/base/lppl.txt; either + % version 1 of the License, or any later version. + % =============================================================== + % Name and version information of the main mbs file: + % \ProvidesFile{merlin.mbs}[2011/11/18 4.33 (PWD, AO, DPC)] + % For use with BibTeX version 0.99a or later + %------------------------------------------------------------------- + % This bibliography style file is intended for texts in ENGLISH + % This is an author-year citation style bibliography. As such, it is + % non-standard LaTeX, and requires a special package file to function properly. + % Such a package is natbib.sty by Patrick W. Daly + % The form of the \bibitem entries is + % \bibitem[Jones et al.(1990)]{key}... + % \bibitem[Jones et al.(1990)Jones, Baker, and Smith]{key}... + % The essential feature is that the label (the part in brackets) consists + % of the author names, as they should appear in the citation, with the year + % in parentheses following. There must be no space before the opening + % parenthesis! + % With natbib v5.3, a full list of authors may also follow the year. + % In natbib.sty, it is possible to define the type of enclosures that is + % really wanted (brackets or parentheses), but in either case, there must + % be parentheses in the label. + % The \cite command functions as follows: + % \citet{key} ==>> Jones et al. (1990) + % \citet*{key} ==>> Jones, Baker, and Smith (1990) + % \citep{key} ==>> (Jones et al., 1990) + % \citep*{key} ==>> (Jones, Baker, and Smith, 1990) + % \citep[chap. 2]{key} ==>> (Jones et al., 1990, chap. 2) + % \citep[e.g.][]{key} ==>> (e.g. Jones et al., 1990) + % \citep[e.g.][p. 32]{key} ==>> (e.g. Jones et al., 1990, p. 32) + % \citeauthor{key} ==>> Jones et al. + % \citeauthor*{key} ==>> Jones, Baker, and Smith + % \citeyear{key} ==>> 1990 + %--------------------------------------------------------------------- + +ENTRY + { address + author + booktitle + chapter + edition + editor + eid + howpublished + institution + isbn + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label extra.label sort.label short.list } +INTEGERS { output.state before.all mid.sentence after.sentence after.block } +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := +} +STRINGS { s t} +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { add.period$ " " * write$ } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ +} +FUNCTION {add.blank} +{ " " * before.all 'output.state := +} + +FUNCTION {date.block} +{ + new.block +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} +FUNCTION {non.stop} +{ duplicate$ + "}" * add.period$ + #-1 #1 substring$ "." = +} + +STRINGS {z} + +FUNCTION {remove.dots} +{ 'z := + "" + { z empty$ not } + { z #1 #2 substring$ + duplicate$ "\." = + { z #3 global.max$ substring$ 'z := * } + { pop$ + z #1 #1 substring$ + z #2 global.max$ substring$ 'z := + duplicate$ "." = 'pop$ + { * } + if$ + } + if$ + } + while$ +} +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\emph{" swap$ * "}" * } + if$ +} +FUNCTION {scaps} +{ duplicate$ empty$ + { pop$ "" } + { "\textsc{" swap$ * "}" * } + if$ +} +FUNCTION {bib.name.font} +{ scaps } +FUNCTION {bib.fname.font} +{ bib.name.font } +FUNCTION {tie.or.space.prefix} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ +} + +FUNCTION {capitalize} +{ "u" change.case$ "t" change.case$ } + +FUNCTION {space.word} +{ " " swap$ * " " * } + % Here are the language-specific definitions for explicit words. + % Each function has a name bbl.xxx where xxx is the English word. + % The language selected here is ENGLISH +FUNCTION {bbl.and} +{ "and"} + +FUNCTION {bbl.etal} +{ "et~al." } + +FUNCTION {bbl.editors} +{ "editors" } + +FUNCTION {bbl.editor} +{ "editor" } + +FUNCTION {bbl.edby} +{ "edited by" } + +FUNCTION {bbl.edition} +{ "ed." } + +FUNCTION {bbl.volume} +{ "vol." } + +FUNCTION {bbl.of} +{ "of" } + +FUNCTION {bbl.number} +{ "no." } + +FUNCTION {bbl.nr} +{ "no." } + +FUNCTION {bbl.in} +{ "in" } + +FUNCTION {bbl.pages} +{ "pp." } + +FUNCTION {bbl.page} +{ "p." } + +FUNCTION {bbl.chapter} +{ "chap." } + +FUNCTION {bbl.techrep} +{ "Tech. Rep." } + +FUNCTION {bbl.mthesis} +{ "Master's thesis" } + +FUNCTION {bbl.phdthesis} +{ "Ph.D. thesis" } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"Jun."} + +MACRO {jul} {"Jul."} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sep."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} +FUNCTION {bibinfo.check} +{ swap$ + duplicate$ missing$ + { + pop$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ pop$ + } + { swap$ + pop$ + } + if$ + } + if$ +} +FUNCTION {bibinfo.warn} +{ swap$ + duplicate$ missing$ + { + swap$ "missing " swap$ * " in " * cite$ * warning$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ "empty " swap$ * " in " * cite$ * warning$ + } + { swap$ + pop$ + } + if$ + } + if$ +} +INTEGERS { nameptr namesleft numnames } + + +STRINGS { bibinfo} + +FUNCTION {format.names} +{ 'bibinfo := + duplicate$ empty$ 'skip$ { + 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}{, f.}{, jj}" + format.name$ + bibinfo bibinfo.check + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { + " " * bbl.etal * + bib.name.font + } + { + bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + t "others" = + 'skip$ + { bib.name.font } + if$ + } if$ +} +FUNCTION {format.names.ed} +{ + 'bibinfo := + duplicate$ empty$ 'skip$ { + 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{f.~}{vv~}{ll}{, jj}" + format.name$ + bibinfo bibinfo.check + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { + + " " * bbl.etal * + } + { + bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + } if$ +} +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.authors} +{ author "author" format.names +} +FUNCTION {get.bbl.editor} +{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ } + +FUNCTION {format.editors} +{ editor "editor" format.names duplicate$ empty$ 'skip$ + { + "," * + " " * + get.bbl.editor + * + } + if$ +} +FUNCTION {format.isbn} +{ isbn "isbn" bibinfo.check + duplicate$ empty$ 'skip$ + { + new.block + "ISBN " swap$ * + } + if$ +} + +FUNCTION {format.note} +{ + note empty$ + { "" } + { note #1 #1 substring$ + duplicate$ "{" = + 'skip$ + { output.state mid.sentence = + { "l" } + { "u" } + if$ + change.case$ + } + if$ + note #2 global.max$ substring$ * "note" bibinfo.check + } + if$ +} + +FUNCTION {format.title} +{ title + "title" bibinfo.check + duplicate$ empty$ 'skip$ + { + "\enquote{" swap$ * + add.period$ "}" * + } + if$ +} +FUNCTION {end.quote.btitle} +{ booktitle empty$ + 'skip$ + { before.all 'output.state := } + if$ +} +FUNCTION {format.full.names} +{'s := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}" format.name$ + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal * + } + { + numnames #2 > + { "," * } + 'skip$ + if$ + bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {author.editor.key.full} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {author.key.full} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {editor.key.full} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ +} + +FUNCTION {make.full.names} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.full + { type$ "proceedings" = + 'editor.key.full + 'author.key.full + if$ + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[{" write$ + label write$ + ")" make.full.names duplicate$ short.list = + { pop$ } + { * } + if$ + "}]{" * write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {n.dashify} +{ + 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { t #1 #2 substring$ "--" = not + { "--" * + t #2 global.max$ substring$ 't := + } + { { t #1 #1 substring$ "-" = } + { "-" * + t #2 global.max$ substring$ 't := + } + while$ + } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + +FUNCTION {word.in} +{ bbl.in capitalize + " " * } + +FUNCTION {format.date} +{ year "year" bibinfo.check duplicate$ empty$ + { + } + 'skip$ + if$ + extra.label * + before.all 'output.state := + " (" swap$ * ")" * +} +FUNCTION {format.btitle} +{ title "title" bibinfo.check + duplicate$ empty$ 'skip$ + { + emphasize + } + if$ +} +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { bbl.volume volume tie.or.space.prefix + "volume" bibinfo.check * * + series "series" bibinfo.check + duplicate$ empty$ 'pop$ + { emphasize ", " * swap$ * } + if$ + "volume and number" number either.or.check + } + if$ +} +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { series empty$ + { number "number" bibinfo.check } + { output.state mid.sentence = + { bbl.number } + { bbl.number capitalize } + if$ + number tie.or.space.prefix "number" bibinfo.check * * + bbl.in space.word * + series "series" bibinfo.check * + } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition duplicate$ empty$ 'skip$ + { + output.state mid.sentence = + { "l" } + { "t" } + if$ change.case$ + "edition" bibinfo.check + " " * bbl.edition * + } + if$ +} +INTEGERS { multiresult } +FUNCTION {multi.page.check} +{ 't := + #0 'multiresult := + { multiresult not + t empty$ not + and + } + { t #1 #1 substring$ + duplicate$ "-" = + swap$ duplicate$ "," = + swap$ "+" = + or or + { #1 'multiresult := } + { t #2 global.max$ substring$ 't := } + if$ + } + while$ + multiresult +} +FUNCTION {format.pages} +{ pages duplicate$ empty$ 'skip$ + { duplicate$ multi.page.check + { + bbl.pages swap$ + n.dashify + } + { + bbl.page swap$ + } + if$ + tie.or.space.prefix + "pages" bibinfo.check + * * + } + if$ +} +FUNCTION {format.journal.pages} +{ pages duplicate$ empty$ 'pop$ + { swap$ duplicate$ empty$ + { pop$ pop$ format.pages } + { + ": " * + swap$ + n.dashify + "pages" bibinfo.check + * + } + if$ + } + if$ +} +FUNCTION {format.journal.eid} +{ eid "eid" bibinfo.check + duplicate$ empty$ 'pop$ + { swap$ duplicate$ empty$ 'skip$ + { + ": " * + } + if$ + swap$ * + } + if$ +} +FUNCTION {format.vol.num.pages} +{ volume field.or.null + duplicate$ empty$ 'skip$ + { + "volume" bibinfo.check + } + if$ + number "number" bibinfo.check duplicate$ empty$ 'skip$ + { + swap$ duplicate$ empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + swap$ + "(" swap$ * ")" * + } + if$ * + eid empty$ + { format.journal.pages } + { format.journal.eid } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { bbl.chapter } + { type "l" change.case$ + "type" bibinfo.check + } + if$ + chapter tie.or.space.prefix + "chapter" bibinfo.check + * * + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {bt.enquote} +{ duplicate$ empty$ 'skip$ + { "\enquote{" swap$ * + non.stop + { ",} " * } + { "}, " * } + if$ + } + if$ +} +FUNCTION {format.booktitle} +{ + booktitle "booktitle" bibinfo.check + bt.enquote +} +FUNCTION {format.in.ed.booktitle} +{ format.booktitle duplicate$ empty$ 'skip$ + { + editor "editor" format.names.ed duplicate$ empty$ 'pop$ + { + "," * + " " * + get.bbl.editor + ", " * + * swap$ + * } + if$ + word.in swap$ * + } + if$ +} +FUNCTION {format.thesis.type} +{ type duplicate$ empty$ + 'pop$ + { swap$ pop$ + "t" change.case$ "type" bibinfo.check + } + if$ +} +FUNCTION {format.tr.number} +{ number "number" bibinfo.check + type duplicate$ empty$ + { pop$ bbl.techrep } + 'skip$ + if$ + "type" bibinfo.check + swap$ duplicate$ empty$ + { pop$ "t" change.case$ } + { tie.or.space.prefix * * } + if$ +} +FUNCTION {format.article.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} +FUNCTION {format.book.crossref} +{ volume duplicate$ empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + pop$ word.in + } + { bbl.volume + capitalize + swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word * + } + if$ + " \cite{" * crossref * "}" * +} +FUNCTION {format.incoll.inproc.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} +FUNCTION {format.org.or.pub} +{ 't := + "" + address empty$ t empty$ and + 'skip$ + { + t empty$ + { address "address" bibinfo.check * + } + { t * + address empty$ + 'skip$ + { ", " * address "address" bibinfo.check * } + if$ + } + if$ + } + if$ +} +FUNCTION {format.publisher.address} +{ publisher "publisher" bibinfo.warn format.org.or.pub +} + +FUNCTION {format.organization.address} +{ organization "organization" bibinfo.check format.org.or.pub +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.block + crossref missing$ + { + journal + "journal" bibinfo.check + emphasize + "journal" output.check + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + format.note output + fin.entry +} +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.date "year" output.check + date.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + format.publisher.address output + } + { + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.isbn output + new.block + format.note output + fin.entry +} +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.block + howpublished "howpublished" bibinfo.check output + address "address" bibinfo.check output + format.isbn output + new.block + format.note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.date "year" output.check + date.block + format.btitle "title" output.check + crossref missing$ + { + format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + format.publisher.address output + } + { + format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + crossref missing$ + { format.isbn output } + 'skip$ + if$ + new.block + format.note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + end.quote.btitle + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + format.publisher.address output + format.edition output + format.isbn output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + format.note output + fin.entry +} +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + end.quote.btitle + format.bvolume output + format.number.series output + format.pages output + new.sentence + publisher empty$ + { format.organization.address output } + { organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + format.isbn output + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + format.note output + fin.entry +} +FUNCTION {conference} { inproceedings } +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.btitle "title" output.check + organization address new.block.checkb + organization "organization" bibinfo.check output + address "address" bibinfo.check output + format.edition output + new.block + format.note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.btitle + "title" output.check + new.block + bbl.mthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + new.block + format.note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.title output + new.block + howpublished "howpublished" bibinfo.check output + new.block + format.note output + fin.entry +} +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.btitle + "title" output.check + new.block + bbl.phdthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + new.block + format.note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output + format.date "year" output.check + date.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + new.sentence + publisher empty$ + { format.organization.address output } + { organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + format.isbn output + new.block + format.note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title + "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" bibinfo.warn output + address "address" bibinfo.check output + new.block + format.note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.block + format.note "note" output.check + fin.entry +} + +FUNCTION {default.type} { misc } +READ +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} +INTEGERS { len } +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} +FUNCTION {format.lab.names} +{'s := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}" format.name$ + 't := + nameptr #1 > + { + nameptr #2 = + numnames #3 > and + { "others" 't := + #1 'namesleft := } + 'skip$ + if$ + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal * + } + { + numnames #2 > + { "," * } + 'skip$ + if$ + bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.label} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.short.authors} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label + 'author.key.label + if$ + } + if$ + 'short.list := +} + +FUNCTION {calc.label} +{ calc.short.authors + short.list + "(" + * + year duplicate$ empty$ + short.list key field.or.null = or + { pop$ "" } + 'skip$ + if$ + * + 'label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" + format.name$ 't := + nameptr #1 > + { + " " * + namesleft #1 = t "others" = and + { "zzzzz" 't := } + 'skip$ + if$ + numnames #2 > nameptr #2 = and + { "zz" * year field.or.null * " " * + #1 'namesleft := + } + { t sortify * } + if$ + } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { author sort.format.names } + if$ +} +FUNCTION {author.editor.sort} +{ author empty$ + { editor empty$ + { key empty$ + { "to sort, need author, editor, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ + } + { author sort.format.names } + if$ +} +FUNCTION {editor.sort} +{ editor empty$ + { key empty$ + { "to sort, need editor or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ +} +FUNCTION {presort} +{ calc.label + label sortify + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.sort + 'author.sort + if$ + } + if$ + #1 entry.max$ substring$ + 'sort.label := + sort.label + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} +SORT +STRINGS { last.label next.extra } +INTEGERS { last.extra.num last.extra.num.extended last.extra.num.blank number.label } +FUNCTION {initialize.extra.label.stuff} +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := + "a" chr.to.int$ #1 - 'last.extra.num.blank := + last.extra.num.blank 'last.extra.num.extended := + #0 'number.label := +} +FUNCTION {forward.pass} +{ last.label label = + { last.extra.num #1 + 'last.extra.num := + last.extra.num "z" chr.to.int$ > + { "a" chr.to.int$ 'last.extra.num := + last.extra.num.extended #1 + 'last.extra.num.extended := + } + 'skip$ + if$ + last.extra.num.extended last.extra.num.blank > + { last.extra.num.extended int.to.chr$ + last.extra.num int.to.chr$ + * 'extra.label := } + { last.extra.num int.to.chr$ 'extra.label := } + if$ + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + label 'last.label := + } + if$ + number.label #1 + 'number.label := +} +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + extra.label 'next.extra := + extra.label + duplicate$ empty$ + 'skip$ + { "{\natexlab{" swap$ * "}}" * } + if$ + 'extra.label := + label extra.label * 'label := +} +EXECUTE {initialize.extra.label.stuff} +ITERATE {forward.pass} +REVERSE {reverse.pass} +FUNCTION {bib.sort.order} +{ sort.label + " " + * + year field.or.null sortify + * + #1 entry.max$ substring$ + 'sort.key$ := +} +ITERATE {bib.sort.order} +SORT +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" number.label int.to.str$ * "}" * + write$ newline$ + "\newcommand{\enquote}[1]{``#1''}" + write$ newline$ + "\providecommand{\natexlab}[1]{#1}" + write$ newline$ +} +EXECUTE {begin.bib} +EXECUTE {init.state.consts} +ITERATE {call.type$} +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} +EXECUTE {end.bib} +%% End of customized bst file +%% +%% End of file `mnwteststyle.bst'.