From 833fef54739eb0b34fac34065526b85c290251e9 Mon Sep 17 00:00:00 2001 From: KMnO4-zx <1021385881@qq.com> Date: Thu, 22 May 2025 21:33:38 +0800 Subject: [PATCH] =?UTF-8?q?docs=EF=BC=9Aupdate=20readme?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 146 ++++++++++--------------------------------- images/datawhale.png | Bin 0 -> 115785 bytes 2 files changed, 33 insertions(+), 113 deletions(-) create mode 100644 images/datawhale.png diff --git a/README.md b/README.md index 11df94e..f90855c 100644 --- a/README.md +++ b/README.md @@ -1,126 +1,46 @@ # Happy LLM -## 大纲 +很多小伙伴在看完《self-llm 开源大模型食用指南》后,感觉意犹未尽,想要深入了解大语言模型的原理和训练过程。于是我们决定推出《Happy-LLM》项目,旨在帮助大家深入理解大语言模型的原理和训练过程。 -### 第一章 NLP 基础概念 -- 1.1 什么是 NLP -- 1.2 NLP 发展历程 -- 1.3 NLP 任务 - - 1.3.1 中文分词 - - 1.3.2 子词切分 - - 1.3.3 词性标注 - - 1.3.4 文本分类 - - 1.3.5 实体识别 - - 1.3.6 关系抽取 - - 1.3.7 文本摘要 - - 1.3.8 机器翻译 - - 1.3.9 自动问答 -- 1.4 文本表示的发展历程 - - 1.4.1 词向量 - - 1.4.2 语言模型 - - 1.4.3 Word2Vec - - 1.4.4 ELMo +本项目是一个开源的 LLM 教程,包含了大语言模型的基本原理、训练过程和应用案例。我们将从基础知识开始,逐步深入到大语言模型的核心原理和训练过程,最后介绍一些实际应用案例。通过本项目,你将能够深入理解大语言模型的原理,并能够动手实现一个简单的大语言模型。 -### 第二章 Transformer 架构 -- 2.1 注意力机制 - - 2.1.1 什么是注意力机制 - - 2.1.2 深入理解注意力机制 - - 2.1.3 注意力机制的实现 - - 2.1.4 自注意力 - - 2.1.5 掩码自注意力 - - 2.1.6 多头注意力 -- 2.2 Encoder-Decoder - - 2.2.1 Seq2Seq 模型 - - 2.2.2 前馈神经网络 - - 2.2.3 层归一化 - - 2.2.4 残差连接 - - 2.2.5 Encoder - - 2.2.6 Decoder -- 2.3 搭建一个 Transformer - - 2.3.1 Embeddng 层 - - 2.3.2 位置编码 - - 2.3.3 一个完整的 Transformer +本项目内容包括:第一~二章介绍 NLP 的基本概念和大语言模型的基本原理;第三~四章介绍大模型结构及大模型训练流程;第五~六章会带领大家动手搭建一个大模型并完成模型训练;第七章介绍大模型的应用案例,如:RAG,Agent等等。我们会在每一章中提供详细的代码示例和注释,帮助大家理解每一个细节。 -### 第三章 预训练语言模型 +## 内容导航 -- 3.1 Encoder-only PLM - - 3.1.1 BERT - - 3.1.2 RoBERTa - - 3.1.3 ALBERT -- 3.2 Encoder-Decoder PLM - - 3.2.1 T5 -- 3.3 Decoder-Only PLM - - 3.3.1 GPT - - 3.3.2 LLaMA - - 3.3.3 GLM - - 3.3.4 DeepSeek [WIP] - -### 第四章 大语言模型 +| 章节 | 关键内容 | +| ------------------------- | ------------------------------------------------------------ | +| [第一章 NLP 基础概念](./docs/chapter1/第一章%20NLP基础概念.md) | 什么是 NLP、NLP 发展历程、NLP 任务、文本表示的发展历程 | +| [第二章 Transformer 架构](./docs/chapter2/第二章%20Transformer架构.md) | 注意力机制、Encoder-Decoder、搭建一个 Transformer | +| 第[三章 预训练语言模型](./docs/chapter3/第三章%20预训练语言模型.md) | Encoder-only PLM、Encoder-Decoder PLM、Decoder-Only PLM | +| [第四章 大语言模型](./docs/chapter4/第四章%20大语言模型.md) | 什么是 LLM、如何训练一个 LLM | +| [第五章 动手搭建大模型](./docs/chapter5/第五章%20动手搭建大模型.md) | 动手实现一个 LLaMA2 大模型、训练 Tokenizer、预训练一个小型LLM | +| [第六章 大模型训练实践流程](./docs/chapter6/第六章%20大模型训练流程实践.md) | 模型预训练、模型有监督微调、高效微调 | +| [第七章 大模型应用](./docs/chapter7/第七章%20大模型应用.md) | LLM 的评测、RAG、Agent | -- 4.1 什么是 LLM - - 4.1.1 LLM 的定义 - - 4.1.2 LLM 的能力 - - 4.1.3 LLM 的特点 -- 4.2 如何训练一个 LLM - - 4.2.2 Pretrain - - 4.2.3 SFT - - 4.2.4 RLHF +## 致谢 -### 第五章 动手搭建大模型 +### 核心贡献者 -- 5.1 动手实现一个 LLaMA2 大模型 - - 5.1.1 定义超参数 - - 5.1.2 构建 RMSNorm - - 5.1.3 构建 LLaMA2 Attention - - 5.1.3.1 repeat_kv - - 5.1.3.2 旋转嵌入 - - 5.1.3.3 组装 LLaMA2 Attention - - 5.1.4 构建 LLaMA2 MLP模块 - - 5.1.5 LLaMA2 Decoder Layer - - 5.1.6 构建 LLaMA2 模型 -- 5.2 训练 Tokenizer - - 5.3.1 Word-based Tokenizer - - 5.2.2 Character-based Tokenizer - - 5.2.3 Subword Tokenizer - - 5.2.4 训练一个 Tokenizer -- 5.3 预训练一个小型LLM - - 5.3.0 数据下载 -- 1 处理预训练数据 -- 2 处理SFT数据 - - 5.3.1 训练Tokenize - - 5.3.2 Dataset - - 5.3.3 预训练 - - 5.3.4 SFT 训练 - - 5.3.4 使用模型生成文本 +- [宋志学-项目负责人](https://github.com/KMnO4-zx)(Datawhale成员-中国矿业大学(北京)) +- [邹雨衡-项目负责人](https://github.com/logan-zou)(Datawhale成员-对外经济贸易大学) -### 第六章 大模型训练流程实践 +### 其他 -- 6.1 模型预训练 - - 6.1.1 框架介绍 - - 6.1.2 初始化 LLM - - 6.1.3 预训练数据处理 - - 6.1.4 使用 Trainer 进行训练 - - 6.1.5 使用 DeepSpeed 实现分布式训练 -- 6.2 模型有监督微调 - - 6.2.1 Pretrain VS SFT - - 6.2.2 微调数据处理 -- 6.3 高效微调 - - 6.3.1 高效微调方案 - - 6.3.2 LoRA 微调 - - 6.3.3 LoRA 微调的原理 - - 6.3.4 LoRA 的代码实现 - - 6.3.5 使用 peft 实现 LoRA 微调 +- 特别感谢[@Sm1les](https://github.com/Sm1les)对本项目的帮助与支持 +- 如果有任何想法可以联系我们 DataWhale 也欢迎大家多多提出 issue +- 特别感谢以下为教程做出贡献的同学! -### 第七章 大模型应用 +
+`{MjeTWrrj zUUck(r`o^8;mGpdW%8Y$?K-?8Q!D+!(shW#90m~NX=zX`*qb7#98PAcG;&hS67dB2 zLQ3wV1cN@K-Zniywd9XOwIO;v7Q*5S)SG2xIG1Enic{&1 zPxSQ=BoV?B4pL~u=I07~6B*b4CH;pc21`D-i6Zlje=1Ceb;e6wFB}*=$@ )`Mzhz;M4)amAwIP4;GWSC$wC;>Jb>3E(Z|6| za AQi)urC;?LqR&o}UQC2L@M(O?X!(@4nZ9%sj1Kk^w$wR1wczVZ?|C zM3H(d#UC|1UGVxFrYT(?k0#e=did)5y!4;!HqP!Fd>iA|ual-U(t4we80fG?aIuo+ z%!Xf^IRa*l7NWvl>Y^&eD1}RixBr4CnztA>c4Sxl-X_BV?IsRd7>&NST3>{s3nsJd ziFE50sW&VA#(n+>v=2HDDh!A|b`ck^zp?LsW^T 0iK))RKt_r&PuGcTg_P5lIR7!?5b$&?fJ bI5B_`3 zwQiPcfF>Vf=$LO=w9n8~%ijUHg?>HepG<|6nx}omh~x;ke K1IG=%d z8#Dc<6)DD!nW#-51P{I0(W{eKg)7kO6zQpW;i2@{ojimub9sjI{bV-}m1qeM@q9 zYxUBN^ E9kXkog^3I#MtI2*>qfC~@b(AO;*d0E+N^*eoQqyL5tl2h3piH=(V z<^PL&y`m)l6)%tn+w4wf_uEvTa<8;&I`w6waOan_$rwOlERq5~j0{NS7{D1vf9PB+ z(dh@UI9L!Bz6xt2a!hFX75dxeYui#SvE_%!Scr4?2 YZuM+U zhpd*)T<~7mQYyNz_;nZtDWD@l4!ZuSr^+&t($7JbRS<$I^`jED-6D*R=j x3m9krzi6O?==Gw1&Wm8z1TPA z|MSf6^|Kn$Y+Zn}qym_-Fu<_Q?XeSh>a_Rbn9raXoca`;+OWNp^B1#kr`)==r1jns z? Oc~gGSyZiPpFPN>#=8^ZH=S@&uxG4QX!? z+;*bZ!@R$|{iioQ@zp)o1Y-BdJ1a6 !r141%L4r*fD#ruF(Nx*(3QG&HB6@Ia(*y1!ZJrF(p_YC4HGI3GO-F(Y k+M)u>A9GS4Yh>+{XdH$(EEa5>U*8b;(MW9G>o7N_$;M;WjT9+6O3jC0iJ%E^emk zthXiI7@pTGdr{078(<*LXEHv&=^*i(Udq5a^YG9b*R(`)YICkPm%3pJ)=VMaGp(qn zrCxNVyeC_pTkAJd-<~--ju#n=yrBMljNc0iHV_Zf=%#rorEZ?XtbNzL=u2XL^3dJE zgM}$-QE`!nJO2&)2L6@j3Fv@=H#$K`DgE=)01*p;w|H~5H-6vg=ISan^!Sf>^bIZa zA7)N>SDYS+KU4Cm< z9%v|Kv<}dz=it!ESH1o=@PvnQeW;af?x*>A`nvm!v{=r#>YE8#Z!4K-68p@i-k<9% za{RA->s~gxe0xW4loCBxHRZi{_@?^x%e2$A;Q*E5j;o sLVWJvb61tL53H$T7tc7`t6IKPx3L(3Ud`n|3WIi9!;kulq*FKO?G#E_(@eC zg}{Tk+)+QVi2S!RL}7tA#RW0O(giV;y(dfGLeC18$0N(+76Y>-W169ugc$>~S=}Wn_)mQpUNRAe8rdaw4L3v+hS0q%6{z zz1qBoiF01^7$z%lRU(a(F5GxLWY4*3vnPbz;KQYE{dW4I-P~+y6!5Zxfw{0H`~KIM zk4c>_7h@5Ao4WK5lEQ&*!z1aj86jxeK%GQFxMRU@&=|o9&Cj_b@2&9|9iAi+yBXFb zgvjgmoxiy>TP2Q*`*u^kJyuM4sYrV~ih|mLhuz#!Q^Ai2pr?|q(X4-dpw|mrvc00k zfnZ&_O<59)ZV>6g3W1{jn{A+0YdLuM>8}?(z)g?eo_`?EyC0#!?=Yeh2C9Y#2Lg-8 z6Nam9Sm3i0XTh@c#}+DEBBv}78gWcX@dE<(tP6U>109dyx<_9pKGF>xedBc^SXV$C zyjD<@`j6|iVKA7ZQ$6&G7Ju(`PdI5?GW>q=D9d}oePHhAkxb`SQS17ck6gwObe2x5 zaqK}N#bWbz1_@D`=bfc`b6xPq4Qrz9n4aW|CwbhDzn9CAcN`paluiU9QgiYcb*+@t z|Go`9A`U(JCy>NAYu(oF{vh%r2{7b|gq%kg5wlc&Jo(sp`Egeuw5&wRi}^9Df*0&A zD( EcipP^qMMncb0Ed9s)(RA#g!W4)W)2Xl!hM;$noW%KnOn6DEBZF-$Vzn=Ifi1gp| zPZx(HO-_&ibqG+QRRro6k}NZ3a7dcJ>&6^HUN!8+pxb2dCG`&UMdG|}8P0lFaxy84 zYK{FHmZval$$B@BRfyj$W+CqfmL=I^{VmfEMIZ9C>b3$|B3>oQ{HP$aQCmq`@)I r_#{J zi-_lhymZkianVs}l%ADXalJa^#58eyW~6CcBoLbW)mY*FYHT(L-#O(uqKJj* zBB$ _cCCdAI5&4E{vcmHfml!6o#<{NdxlQl@Cn|DFIkZ9y0^jv~bNYIic!unUzz zB^4@2(37t`FfW(&;{`PbXq|0O920>ri;>*lVQ*E_2~@?r@k+AR%PIDq2ED0BAuk9v z8%--8m~_*aHIuFf>j%tVv(Y=E=vv{%I~~fO%_qan$Rt|v_s|Gdg{1k3Dk-i&%a!us zv1hFw;6hW?Na>eKA H{8!N#7nA%`i8XvMj{@1{3?%fby}WKa{oHLfnF zK(=}M7x?9((Sb6NGjRhbNPI2i`KWnHnw77lNWeL?>!xyA1Xy?J9V_`mc%)^D%1TLR zv5Z`VLDFcy$i6fR;{TwaST6KpL1Kw?XFT)Qs~v` jtOyecH?r8d+W(_i{RD+Ck?#?2?o&TrPyqMzI$bEV?x*%*5@ zH_xeToA_-S!vw{aWfI$+{I1AVW#= rQuZ+2QM#A?|_uZ{TvjAL{+>2AD)LL(SKpc znW+H=g<_X8)mrU19Os@2+i9@_MX=n0Ndf`2bPY=iIY?>P2R=?B0A`EiA;fV`Wx5s$ zBA`g)Su~awI2}lJ6v=FtGWyz!&X&ucyIyWwB#-A*pS287IVPF^Lr+<#+4@Y&iY)&m zXO`%l?{QLFPgK{ybWCD>0&36iTay)PGXVV|5MdJ#4-{cRbq7*~zOCnXFMIXHm&!WT z$}o7))0xl7Ft&fDuBH_20H}}~q43CUriNynX!$cPKx<7p>-(R&Zy&~1aq<=PcXcix z{7jCNP?Ou+47VByO+O-PWlJF(aPU#aPoP5$W39da-2$z=sv(#z<-(de9EM`AF=*vx zPMYmv9`EN8_YhQ#91Xlyj`;6+);k{GchUDms)3`IQI6@eb(Tn&^W>_MwV#mzZN5-& z7`9%NfRWF+@yCimFH`g+z@y(trt6H)RbY*D6> U#~USbI0x)cYfp$@H)0UG2na343|YDDj@ z-d>wR;JfL;-7H&z-mYF#`^BL_02m6EOaZ}ks;j8Fo|H8{A4M$L?%}A;{b%H-2%pK= zMbb&V$lhld9O&q_{NC*H!LVS}OW!{I%R+4ZhUJ5ewIZ4>WH-^bmmom}b6FY}r#@Dc zm2CRuEAjvx0*fRIwi-Nyd9+oIRGPC?%~~h0B`YAvNr(XY0v=#^!)|x@E8r=%54ze1 z)6ftH$jlW6N*|rwK3%O14B-%sC|URNXvSL^ocO%WDP;tU@O&Sb(bPj|j;XS5V7t&8 zcX6;p{<>Mwe97Qzvl3%NQfU8rwJlBM7@9bGg9gJ*+DB|pyG&d9kAL>EGRnL>Y%~pP z2VqXtHXI5S{6G2)*dre!^_6~)l|6ZoBfx&OXwP_b6;X>l{j~HkeVF#qXU*HCg6>Cd z(JA%MH?<=waSv28tXgvZV<(MBF=4C~3RAo4ipvQ!lGIU+jT5#I7vXE;N|9?2JKuJy zrj;X%(p|~bIhLD^`58sS`!-9V8*f)zGW_srAJ1DfCcH$V`)2Znjc$xBWh%UZa!&&f zHvj5^jEgc9$R1pLl#@~aQvJeQ5IgdQvX!V2bfUaVe0)K>G{T`GrWuLX`89ru!Bx!S z4PVP;wzt5SY&8MDQCr^U;(WsZg7sq~!U^lY*X$iRHfGX9At>xe%fdO5hjbrjQVm)N z!_4YNX?hOU!B7Q0b{4-Omm8Lmw4w+Ll-3# oUlLtw#{ zbd!Upb?qBmg2z20mHyBFZm03V!xB5b(h=?FE}s=kbQ~vm5}96^U}}YGWPXN3-U{BI z2*Rg%ejzS~Vi $JAR9Dwb#FY3l_e~tZRW=blRC*~3xLlxZaAqvUH z<{GP*%J6Bp9+-=F;}8YsP6g)`j&dJIMOveZekx3^aZ{_D+pv*`CEa{ay2(nq0!8{^ z8;D;#xzoMd(7hfN4*-vlvZ0T{t6Zu)GNG*Qi&6I|g&UE8;fZ5A==tR@LBWvYkAau7 zdN0D=1BWf{{#}|e%mKV3Z5fXkET&PuJ B%?u(Ll3_>7hWBgrB~DF zbbGMk`Mlhog;?6$f_^sVqq!56`T6H9c;^MY-N6^VN2~q0c`e2S%Ek??gA3exi`)1< z$IW@l-(9Y6Qgap3E!to!x@3{4$a*GDkBCVU^y*Y->;zbIB3Z#`i{+KYkloScg^yuM zP1a#a%Vi-!gA3;86WY%n7PqZ$@v-y})N6&3f}s3({1|q}yu-;A%O_ul>E*MM5zz1U zoKH udck zJKe>PquVCRVZ*+O7;muAI3#P2YiR^?{z!*?d+^ZN9Ns}%uvwV&eG=Upy~UuT+poAz zv0in8LB&E66Vv+79dgLWMuxZkIuy2@$sKcj=5(zMAC>3u`A+=&$J}Mau^~y4-V=54 z(7=)wL}OcNJ5DJp+5$5Ner8~@Df~jzif^r{sHpp(`r&2xgShwg7Ak *hwCv}#^VVsZgdIAy>Wbd78!mh2D0@r3Q(RY=eAX5t2kZ^x9wg&$jF6PYl&+nn zzYlGknd9Fl?H^0zED7u=T)U{#CMy$)8Os;I6eU82Nk*R4a4pKXpa0(E<&(WP7i;AT zon`8MWSf{x#f|l#h=%}Th`|Ad?8)BxmiPs1)r;$qKEx`*{^USi N}fvo8Sw;sndd^=+dr` z3mvUkrYsS@AMd`P&CWA+%>CAOgDQ`5!&!H<{Y7GRT@5Mk&KYKU$H%t`QOs=6 #4lVid87_*u}eR$~cyV z(T6anK4dT$XRag5n38tOHnzc>_0R=0C&rEqvrv@`7oe$e!-IkMb4>1&t$PlaG9t`U zXhImF(}5IYr3^|_Z{=gwsJ3i~^M^X&a?k#3Z?zq0$Q5^*yqz=0IALmJSY%Pak@Zp5 z=!jUNc{kv^D{TjRZNo7WC-zqwk~J43k;7hY5ii#q9hYLI9yZM~HV}=4H5Uk8<)7h! zaYdLpnTz}Z69u@Ho8&B)X~W^M0ZH4EnJ`h?0{?z1(kk2~oAPrc4`yCT{X8FOi>cy1 ziw|UwrKj`nx>e}4y+jq^jd&`|^u9u~@}wSBW%%yR2Vm&O(aqVUa{)7(d}FL$RNTyA z+2B?r?5^>;N*ulk$$V?XC ^!z=Sw>LS$&w%z8t4AyodkOZUIp>nOTewo+A%++5lx+W}h#O%@}7eFHj zE7z#kHf0jE5~jcDb=JNG$CIn3djTx%=rbI?bzYag(Q56o=>kIEn#ee^c=K}ic{Mot zm(DCFo-!3$V%c<|`jT0QoMcE9Wnr45^<8A=Lwf(|u2ZcLpUJ$HZ@cU=DcWRe1tF zAe}Js7>{?gf_ilBzG}Zx1^9}%?jsM$)gwAzqTBf58(*-`hCoy`qUY6tN?!(Mr}pSk zyAkE%YU0tIo1*^RM)Dg!Pv*42< VxSb5SmPo25#MzYk49*{&DIt1b{4(O+k?X7*%jyu+5{L}O zf(eG@1N!~Ojx+x-ZCF8AmbLv&;#Q&pw!q`KEs4%~{{BBkBQ_Uz@C4?~K%94lOvjtm zruKbT2$OKH1v$q|Lf2)H?sZW=3w$J%RV1k^8Ca0jCU83uzhsoLSu11 w+y^mf@PiaCGv`R>ZBlKIImhnCpRLr}5tG_Va`sn %?*A0GYF|+FS0&Xbc?TLE1ounye?YZXTUnl7GP}eqTF8;M zY{iMeX~H0JzJeol$#3HK{3NQ$QvDw2Af^XcVPJKl-uZ`v+YYs&4kn)Wa5Gl+6irfrYzF{U^so z#3h!DA;e}2^RJ8)s?c77zs`J9PAre%U3K%8JC33AAHMnEx*w(_Qt;m;JRy%II*^&B zp#y*fcPxp35P6E|HqtAL#89Mc0{&>D_`3YYpU|~^F~^#c$TvT-_N&|-$`^z$!V@P; zX|3k@uZ~23daBXSM(baP>d2B~lEKMzkj&9eo94%zJ7a-7sOS8;X5tvypT;!~&h){w zdJjE7clZ|htCm;pP%TfaS-Gd7D`Gv=16?@gLs`{CH?m9P`|kND# j7ME0+I?;(3w11yxQUdT>>bN^vwhS$h2xdh*^X(khX?`SAPi&fKZ~pJ{Sk4$ZMU zLPq8&>K#Zp%QulpHJjR!dGQVZIwsfJ>H6KqgRIon-%{w# > zmgOh6ypXvb*Ayt4Q&)YBb2-N+IMtGCv~Tn{XOlXumL+hbODd&DT9v84bC%N%ZIDj# z1%dE61og<*n4nn=D&ENz1LMi#GmjEQ?w_k^{MO*Aj)y^0$soD6xP_m>PeNBD`&h z9|64`d+YFiO4atUjxE CN(;+*&zbk2mDpJVbs8(XtcV6$)XOHMkQ)IGs)u`8I%52r}gNT`I z`0>y8 DDko5%Kzioa58J zkpWCrpiyg+8UghPfFa9(%$XcBr@4c*aenS-(LIt^N)c9RORvgB!mE|@@9KvnrM{5m zlV#>-x-2jDNY6Youa UjiC**XLR9Sfw0Zv_kp&Q%;m_dbGNA+fU9zty2~j3wC$@n&q4Livfq=2Jl$sE_kW zuWwS^0Sb(JBu0nHh3`#TS&=i?f!MR&X H60+KQOiaNb+BeF1* zP(A|39IVCcy)d%ZP275#4Gf$td#%BI;EqGP e@tJOJe~<@!_*;s6?fY3$4Y)0-~@zj1l( z^t{ZE&%ZMXo;GR!$CEt%z3fSDWMyScUJnK^YDVH2ReSk!Ymw2 zTa&75Qw)S4H;GQ2-SnGBvn4DRcBamf3X1vHx&lPQP_sP@*F+`Wpc#9-DkeLrcK?=; zPNnzlaA5N26S;rLG<9k!PI2ns*Nor$i0;e<|Bj>UuCaLz8 U+{a*Nmkse8JnsHkqKk$L)cF-<=%& z2nxZ~_81eH%PHndsbZBYfjqDg=GJ%(&!=`v3l}Nkl(f3lwf)HfI;;5-z}8wvl*@+T zFUTf@kr5Z1vme_1U2{oI@txO6HK)`l*V3U|7jY(CoM246P-*&tym}%q8Uq3w#;%Ts ziZ3jyTI34P#vf%ZF(Wbl*5{ABmJK}aX9!li{VJ(M@Th6k86m!7FFLL0k1cw>$5VGT z=EnP+e-~pH4+kTKn))gT$U}5Sb|=Kb!&zg)S-Sw@7T1OY)wFxpY)tukM{-fapJcLz za>M%KdHgWAQF)(|p%-$IDgIW>nd!vE7=73PJ*~x#aANRM5&xZr;Bt%SNQc`@esEH! z_%V3IUl{Cyn33^-IW|oOzE%k3f|1oS>7IB9KeaR9N37k7_FGSdyg@1J6Z1*kffA1+ zA5X)@G}3C(%ggyag*yxSP>IYb!lt4ahz4z8kH&A_Mn*e?OFM5hW#N2nqMdAf2Kc_C zmq*s~oGcvjhjJWbXQG%%l56N*XTFDjdRb?vFQOn+`i`tCksbg_`kLG#%GD2jVp>&n zV#+Yy<0#?-GJQcHSst6JJ`ll3t)dg*`CQLJG|j&$wVuvV*lznK+6Z0l@z;8| Y>+MtY4If^=9MGZV vY*fyLmvRlzGr(Fm3Lb(_@=LD*Qn{t7@ly0(3T#~NiIrlF&0%Dj52XQ zC!rdq7z^9>IK9Z$xqK%?`^M1d6vVI5nq~`JIE#Zh(+hEgOZ=%mRkA0wgpUG-!X0}> zwMHkYO$V5w4I7>Z*?w((6dXuPot8?doSXlpi!i6K{8V_z$bH^lULRCBg^0HIyNeTR za^b&eu_a^y^3K|o!T&lQ(P;I~q2R@y31dE+S )3_BA<1`F}9c_$sNkzvGmLegKepti2!KZN}`2qu= zcOO!Y)HAg=o~@NUnlNrv>1K;B5nxC7d7C5X>WnRng*o_uHXN{q{(mym#D_;Hu0?OE zxztywRMFiAh8q{ps!j{=DKT#^hZVbsl$5lOUMnG j+ zR;mr7o+fPvJPL7qD_S%7vyQ6w(>^-zp$V)$L)OgJO-rA+>Fx-WirLHgL-{rmB #?+J$L(q88%gR1yJhq|=~PhnA}lf0vA_lX%Qg5F6kd*ioiEtO-3-I8 z$nDR=epBU!6ITd`m!yO%SILud_ddxNwhj0hv8O*^(OUk@QLJZfREhB)KiTo@#;gA0 zt87eI{x0?Fj0IYwK^XW|yygqPPNsWOju2Q`&mP{_#>b;VH4^l?;1!sQc9Zaw2Frr_ zbasvhRBpCo+gR+|e%Ygx#AWAJZ)p>|^H?%nf^)-u*{?s@gnfp*&T7)$JwMkBU1PTX zYb#zIQ#?t)O_z&jkS?X$st(F)J9z^C8odb6SJCH07zrUeVo!-Cwz$r+(-l{#NZkS6 zTh q`JrA3r%W8wwbbJdQp_JcgqP#* zv!XvQ0TS&=by*7Yvn<>|7|Z2(iB#n?oGfaJ=i`#3!Ot$YCt_>BcOwiNZ13cr!%N@I znsztU!Wpf+fkupd93xwz&WTbH0HUl(qIu7z$6kzF*#6>2`P2;0w;g%VdpQq#*^C%1 zW~8M9fkS_dD<0YR5Pq`@2hduy<9S?P0WFZeVS0XHwp24OS;2v_tq9!7`)U4YF1!Z| za^k-g8e6aRDu)xa ?j%Fx7w8i$f0#1#ey`KChF~OyKmc>3x^X*R=vUh%a5@`NxrtGVC0E- zG7ms_4AcYtH1rTE5eUG20a3cWme%;IMoW=aG>S|&P>B@)1lZ0rckm)pSiircm)%=7 z>J0y+vYUW@^6a4weK`C+>cc+0&|WIx{HqwcfkZ#AsHWU|)5%o{i@@_cau_OIr%Kb| zXSQNZxlW*#O~HpzqR=GY48A^A3d2uJ0NXX!H538Sma)H|zcX-D}+bE5z}Wu1{6&$JCXCK!b@}JI6XM z(wqFJ4T45p-YE4Z*fXsccwdpP9FenLrLfLtq--_56BreQ&ktY11LmHUX(3rQ{zvnU z{i||gZH(96R}{~0FLw!?V53`?={%L0EH;^%K&+UMu#nv*Mk4$&!1|`_M=NLAD}B); z97t_fbzDzi5POBnTfO-PAMK!}+2E!AkiCBVmtIeW9%e?Z%`)P0B@uqJm0oM(a=mVW zS7Y=_--$Ed9*!xAlr; ae z9{@wwXo>WDsKPl^+VAyP11 n>{ U1*-Uaw@ly=HN|~>P&aQk!w9%`Gx`HT!tjP% zYS=S?Ynd4RrbMic4+w|HBjTxgX|P?~KMd^un^3nS4$DGvWMThDsZ%_WPZC^TDA 8YcK1CZ5E zHzD_q`zn^H018IBRSdshynOnr&IgvI2%1BCo7_sF3nRz7Sm=>7UnrxOR4r7x>%Tq` z533eB(|w*LkmWajyFz?fBB1m%2!Bj8k}at+hW~+s4o4~&A+f4pfR?JM%PsrsYoe}u zg`AVyitR_uFFtlEV`dz2kYaylcz6!TLOZx1=x#e!jy;!0KJannhy|`UDd)-!$hvAz zfKkZOW3~&vD(ti|=a$Br`YUs8?$ JCx?lV~_B_qJy~jAZOjz8dCJR94tv@HhSOK zf5c~v%FgrB=N6Rkc~PY5k%f&D^*TwlZZsf|K$>>^9H|JHk{&%i{T4pti?EDg#>&j) z?B)lxx@*e!Y0|#a8-s5ypU13)GfartxvTesPybOWruw;|XOv#}ffR{69a*r(LKdup z)LjJnnauYa52RD6V4ow?>!leo$%K`(irSkc*$7C0PTm#^sB6!y=fYLtgX|wBzSe}} zis(vTsfMJ27;}z>bwR$UM(!VErmmM=jGQG@skIXh91_O&U0yj+?nnW(uDwJ@+a!7# z>U*+WAAW}iuRmm>gj#9d_mK>)y7N0;KJ43kOKKx#C;@h(4~d8`QJO%__>M;n3y-?M zFw<%6;rn=jiOW7TFEuUug~`3d@+rudBs{B~%PoE=kifO;>5S1h6#PGQcgarzK94V3 zWz9wCL4da>a+Op>m<>92M9C8h{R>op!eo;L=moU;%`VYwVkfZ-F9TZB{CjJT3ryW4 ziL*PW)_;K_20Qh?2K`uM25=l_c6>ZpH0QUqwmiKMyw2F^p8pm`oN1q>Te5heyt-ot z9S}jn*EJ5iLg4C@ZtX5oNn)a%I@1+fr&^0YS%96NI+%F8Tmy7`SPV|kk_N5}+ -YwrHlmb)t>CXPY(y^T#TWQmpaB{RmFaZ_^NU*!^#N)# Kp4mqSa*gO_p6p79WdEb6@;MqHs$np QBRYeN~|Lx}m!hG#5i(4{Z;23;IL^ugp3M=2v?$P2mK9$05nRi2D+%Zxt!; H1tXxKWw@5xwE&133{E )xz&M{7n19B8X1Z*obp9yO6MX*3d(4j@sg0PJ?~Y39T#6T8h8?SH zb(>xFJ6DLoMFzd4`zru5er*VOvHRWRVfXHL8VwQ&+0@Y$uZ41}?z-M;zZ%)~mFFK% zgg=?HUUeBe+LO^29#M}XX_RV){r7*{Gm_&XAf`jMk-Q#9E>*CBQU{k?5jbWb*M7EX zFV=i;o<>;pa;q-B9GXQ+|8o1%$tHK3X$}p#!=-pIOup0^4qp9N8}vaS`Tza}peY3U ze*o}655M?Q58(C&!pmoM@vufuhWYmVBYs15g1oIw;4Ei1k0rxkI2h~6*<{=-&${W5 z8b!*HF`f-$A~w#aYDwe>reR%nhCFr7b%3oQ$CO{IOkks%t{b5Pw~_ +$Vd|W13iO0~o4y$A6A7u>=@sSA`n};9%n~Bj@Ugle1l01u9JgEp4&o zS~0 !WffEeRFmw8S15{}J zL|Y;70-Iqn{6 r{AvHBjjX6(hNL!yVo6J@r+t+ zkB!raZ9K=wuLNuY!>`WCwK{KLZ 2Tu=;J>dp_^rl-QFFSMb%o5$X>AY^})~M`# z<>T4JZkBthYk4NiCTf}jpqz^8%t4<2R1Wg*!}mpb@q*2 @ z1u*9n$ew4{ZZNi8qn^yw5O_KR;GRk?TdW~zhB+s;oP!Ba7T02G@kms?j!+n%Wu^pq zg;?5h($a=A9y7n$7$;BRoPBoV8C6J1$J4O88T?{%vKixHjE4Nl4j(u%g=d>HDj`_m zLmn-*ip>u>;0V_l=ej&$4>H1L_%)a1iCmFi3D{^jh95l}+Kqq1Hp_u!Xq~~X95$oW zBVde3uDI#qHLqdp@vQ!lwHn6&!!Y1u$N^l-IL+4X%=5}k)L!0gvQHwk4Ia;?C&V*= zvb2?L3xI9rcVD LYljA=GkZPGw?80W;{rQ@FQU}%wqr;g(n!;0KhX@ zhL*?fEW kvFjXzz;w18W=6Nk@T{?M?wNTS6UE?Z z$(URNSZN15t*B809-h<=9tpeU#$Nfaw1;6sLeCnj5KA)| ^OH=uH>V1Y_ihB~tcaj 6PWi|IY#D6+uAW&=cCm@P#NGpQ77jM#aZVsZ2pA)NNQ2#r-4={L1yj-7 zCIFU!?G}QBG2~+dw}mY`o#y; kEz4N1s#S+5FQWx%vm zE7p)>_QC9Xa8mQjs0lneJjld1AIm tqt3{?A#1Y`0%eOq8eJc*zt7Y*@kd_Y!Qa%w8b7n_<;F`A^ecT z<1rhyBC*?>#>peL@Q^WN+ckLH-5G_1S!cWJmT X7rd8aB_S+8PWJ4=w%ioH zV#a0+o{^HvY!_3Ud!wdJmPtL~w%T2{# 99 W8?wbgtzom<_%9kgvAz~JobiUJgD%@qs0T+Y3?>* zx8&czEW==9o7K((Z|RToBj@KCZSkA? W%S1|Kba!!p{kupy%bV9-`Zv%xtt=1bppigQH{BBy2P^0N)O26oVZnQ-7)PHEHI zP52=54~Zq)?goFYW#k*qVb~NkxyC4P4WHQ4#y; 7M|t2)gMyXEfCXWN>n)gCZo;~#v6-A%PlRlO)hZ^aP8_svnvV!bEkLhLe{3*V$` zX-gHN%)nA~U2fj1m2Hl=SOUzxYvVLTnR{J_A15b {fQ^}-VfZ-)vviTz z0xK4CGSbf}s{4*j3~){i41qkOho=rO3|m6hM36!_8FrET$v!{t0u0s#2SA}d471(v z7o_(`Wy0i$nayvW ^y}-vXOxC4_gW?#{=05W{XXpWt~AKoXu&Dvl6;@Y7xw61H)XFI#yH) z+p5p}z*7ZU7=fq)lvkoUW;enx&A{avqvajWn8_vvr@3 ?eQnCtn6#_z^ZcVQhi^#UBTH^wdDRsxv?5InVjj zPyN)w;}>2!v+;Ys_j~<=EFD=HHLAy9_U{;UyOme0UER|ewx65*>%abMza>&ggpksa zWY-TKf7zFPnPubzv>TgK2u6U;XZO79qQdFtem~ SK?6x2_i-Qh%fI}~PC}*Os58gO4(wptd+~7k4F~^J#q@lX3mJPKyYUP^gHC~Y z+@bwTRps*3Y}Nl5CeV_-X583u;_1bK?@9UBh-9=J{D!AQ&5#%jOV8ayf9-2u>w~ AsdZw3U<{HrCZaHPzhRvpRXpXPEVXn>d3ob5?4Nb #b4*!ce^3q>X zc#LQfN?|u`<{5>|R!Ru_uJ8ITf=QLv@cc6J*n;tkFL+`ou |`+flP>fp-dx_= zWogSrqhx_bg^P`Cj9K#BU~Ix=smW$v1?vDY6=kmE^JlS}Ay%(6=cO-wY417NQ)4Bh zYBSp!58H2p4Rf458X^r_#Pc)w6U@%YKj9l=Fe|L*8 xr?%AZwvqyQUE?%*wcLOJ?J{8a;nA|4cvndpieksJ7n3Idu-m~^Zi&{CVN4Wz z wOdbp{mSi`;hPDuMJielO-z>$V8U|;#ZfGE6 zZB&Sd)w#hhs_u#6v}{a881M`6SRsWJ1&`C{-Bx2fknsHQW-q{$f1mq_6l<<*`Zur} zERjsFsMWw`V%Suv^ty?Lv%vV-ie=YQ%r$4SpD8}_m TiOnQ-zgVVbRhGS<*BVyav(b7UgY60RY%pkty! ;LGTXsVGK)dl{=IT1cFz%s2sfY#Hq4qS|Gbh>^nabQg?29$+xPWX_ml$HvUh z0GoquDclIa&=cQa3Ktu{sLn17CxAEHjK|DrjBH>e@P!O>FisCtxL6%1Dk`49knUM8 zBqTN&9r_M~KnA2SNf`o10Hdw^wr)QnM;Iq KJR!@p^i~!*`>Go7$$~U{~fjvY#QF&gfU|&3^%R^!r?aV`1BFj0G z+RN_k5H18J*n~5NVRi29j%Z+#dha-s#6QeqL~`w$?wFtr??~h?q-%vHqk<303cSy< zdR7}%&!b~1uZ#wRAChhM{CZU5;ZI57@V2sTG0X<%)Uq*V3y(%yHg8}^A|HRAS;{3g z5>CtdlgC})pa^j zRNYHbT{VFp6 G71v*l!oaO0fa+Z(k@hkIcNnD*X`yb_9Kw^TS< zt;jz`ZBm3!(ro3lENT-wAw8gCrJL{x9M8&-yxAIXC!{6WJ*GJT`>64Z(W95kbLTV* zUlVaQMo;2b%rQH8Jt 8?+XpkD9hNQna z8Emz?!UVE8g~Kz-#g4NFgvWp<#ujInAbTBUUp;qXr!eIR89W5n1Q)$p^3Z&(j4@A0 z%$$ZA>q&i>yaV1C$7<&{5Qb;32EWGg$knsh(6%hRSoV-)H)E&|LOh*9CR{lZdANCE z*z-89KF#&DbHgxHj0wzn<&3H_J6#?ewLEorO%(HZPQA%JY_m~V#ww28u%#&p<=GgP zr37oMb5AabspQXDc=HHlj2#22*dXh>WteEw!>JLj5?kJ`o|BBCZ1qIpM-OsNOHLul zuqJsJ;;D^xA#oPY&j6E%og_1b z@EO37TS8_>TdcV|(Jo9p0PGtKfq0OZ$*^Qgib|qr`O9)$ew;`Q22P_~eQS)3$BZ0i z$dgoReukdtm{@~RAp3&)lKgV#Nnc8%jWen+X3k=x%9Ar2XUlP7$jM`jJw{Y(qF?|X z7X6l9ik|X%Huy&X+YsV5tX>9>{^z%KaM*?H!3pfoc{wpR*haD0=2JIak4i8@Sbvbr zZn=uMAiDpSmP1sA`QWHcf4a>#0(h*6--@)v@5&O zZiHdVzMq9CP?ri3%Y$=|Jjc^vXoind?Ga+;q4s9{u?;OF9v^LN>8E< eX z0^3q-Z1v4n17HTgu~E200BV$aeWu5v&h#f0c*Nt^y7_c(DXENPta;N@7FEord!-2n z7RbK|nWc1MA-n8={bgNWq)#iq;>6VAsC_JwhR0x(du6A!Elyg^mMdUm!}H()R$(=S z;oN`$8loZ(AO*0>Yik)N9H*fjJOBa#*1SBn3^4qWoAYo2So-@N>B@^OSQs-u0cPZ8 zV Rv!&GVML`t#`L((fJ;;$5- y zE6$wdh59G!-vkE8$)>ZGG9;=5yGA7-C$%Mj0iTRXWOsy(!5KiveDEZ@L<75)fzuFT zzSMFd*q1Rjk96K2v*opDBb*sS{ETYvc(6SYF#KWIwrEfno1r-#1iRs}8dO>0+>iUf z1OG);-z1GB0kSX%C =g#B%F9tlMtn=g!X3dE|TC-{`J7*D2 zU`sL@U{#f0h@{=Z{GF8v!OTX*aHQgFH-B3=ec{c%pXZ`#Y-XOfzy0m9faOVpbQ*0o zu$kKxVpwKeIn#z5Ow%wk(vVI(YW$~v`looRNG*^aFbuFj46>Uu(gVXF5`a-Gd`N_a z bb0Q?M9O!yEEIeaM?#sE;U>x>ktvy>?Cb?3;1 z$50}|@FY(YY{_z6W_WBxWzfk`_>ilDlc(%Tt1Vqas)KARyCsjuEim#k=Xl&B@Urw} zEJ-{m9KmODZeX1{&h=j=sNNovbRAvgG!@Xq7rf{ElP08|9m2oSc}=XkD^$ z88t1nMX@O qEQjB!K}FV2f=agdx%wp}CQx1 iB2hH(D8UwwrR=nE_JOf1kN^e^V3BY#4vv101zSog@R+KD4C9oPeVP2iF!0b| z;8zHbW6TJ73Ax@hfs+d%&2zM5G^9|nyxPT FFQ| zbgpX7>5x-5U6EK6@Wwa3@k_t-ORHgWC%s<()KC4?3t#v`iQBa$ym|1e;VD|qbMh-4 zKmOxC?pGaD%O7+2WaP 21fv8W&Y z(I3@7Mpx22YykYuN`FpgiJWZ4luz(){^oD?%VY)824Gmy><=>hgFbnLD@rU{RiFY^ z)F1xgAF^eKhaACsd#%ncJcbv)_{AC AxpbvoX+;^6abwV?EuZ#jp9a%i z?-?Q7z^+^-229}trrh$m&wZ}n6a=tT4t}{-*x*kXRU~i>V1&fK{N*oy!3$pCva7uk z!QeMbr@-I(t>5ye6LpePbv3ZJ>7zdCqa58@6!{4mvo$H4>d*e{&&J8)DNG**c{76^ zLxF$$w}0!`#d_$-^S9OfrZ>GwYJf>JRWO98PVJ6|dNWQxUr8}zGoyX%vB!9NUc)@O z#<=39!=>rah`cQ&u-r3xq9Nt3fXQ*tP*_5hirn(kKmF5r&U_N11UcL9ay|a| c`+ z-^?yDWAftR+)(xS=b>T)5W<7x4R3fu*#(xU63osb&-e?hMRq+e&H0#*`55;ILNGl1 zg=9q79M8rt1^ocYn_N*z!JyyFjt7GQ*;rGI4Z!wA8-M2tn5V#joo^7ZcGZdXYGL+u zqGk?rsn2I#kt33mjmo>jjyw%)z0wmJda^vW;CV>0Yc@O`znN>du_lUh<7p`n9-%*Y zVTa_2c0!Um%kzy9Gf!t_cDg!C@sqJKPtpu;R=bvHsYSKoH+HZtoS_o9fo+ygQn2o! z=-G3!N#DrbP+Jy4C8XGTy>hO$T^Js7_(YpejA4*&M#sfg?-DkKT^@7fX3J(qDHz#i zTfqEgB~&}x2-DZY*uaL$u3GX`5zpyS_U4eW$rVG*87Iu7vt=oEgk_t>n(bbQz8sO~ z8GohqcEMw2d%ggZr9d1R>ny~`Q^q{N!jm`IM-ohI9b$G-cnVxogd7hfTI55*nB5x~ z_)9T!Cuf!!*JU16W2~*#VSZI`VwOTty5XwzS&ygNp`@e4H7Cjz&%tp_WUry!o~fm9 zRI(ck<5=uD{=!jpFVCYFORav|V)wWw<7L_>9nl^uq;61H$Z2h02z_B@RF^2W!8kUK z-gLt1k;wEVJ))7qfNWkv#8%{r91&3sKYt_)TkKh8&pZqnk?ZWdV8RW%BdleoDyLn9 zVX|xY?0QZC#Fl~~3$QWZ^oQKkk~93wIoH|N@UusGA?q?be<969Z9JC7|4-e$#@d=) z<(;o{>Qt34*zQ1ci$ef$7j#1)k+_PBNfVL|-4dcZGW{W+kPuOjLWlyQ!HLL4iO7d2 zijqhnc8Jq01g*daNCE+5%q<4Dp$W7aY)9d08#@8xYgL`<-~0ae9%r6+t+ne^VVq=A zOpp1@XFOxfG3Pti+Iz2k_Udkkxx-h6VVR(ne4N2&IEJZaIVQ!(t~YyHhuq_frR_3T z(b)%m2+l6N?GbyP7UIZ-KuG6OKMD~Jd^(T`U5J>#!6B<{IQd6j`$9yRaO2*gGL-+! zA{%ykW10#)1j=jF7-O$F9Kab0kxgIYq8}uMK@3f8ymLif6O&cL_$6tjqc84R5&UTp z_?E`_4q +~G}e)F{+O960tEXTfxa!#L1}aKKlW_opq5ZSl)X#YCSBn+=aY zoB>B?$YXSlBMgn9aaU@6He L8eO=*Vp;pMX;D?xEgP3Wd(I9`mgo2{>6J=cYM zkbd-6GEj(hDtqFtv%rjl!q83?Ac7tU5UnYFvj@&usb>L>>=-wQ;FQ=Y$HHeSsizfO3GBn} zPy=dWwU60F3CZ4BSJ%)Xv0Q+ujgk8*l4FAGG-sG&oV7m?EMY|^dM>68h~e=0YB41? z_!=&I^@7|yJavbRcm@S6CM3J5hVnV26dq?Baq?{;qlxfL@3=H6Oo%nBX7vS%vyz8! zFrLj#*HTAl5*lPRCW-MXZ=AI#&CZnBaZK$HrQv~dh`SE)XTyp$vxeFX8HSW^5RaqB zsb|b#h1}3`iNKZ>d)1k#gGgB&!2j$+nb%~(n0yW;9UP}6E0 &B}C{UTJ@t1XARU2+OHz6Q%`HJA acFasVwB#-*ji?PC=<_a+(9phF~(( zT{G3sPo=BL+Y|%MEE~BWT>&RVA~QTSCJKWl1%Vib>2t|89AgNO0Z+vTiDsC{wt(x* zfgMDvh-Ru4wWtxvy&(bvGY-QLNGhFZ@2kEj^^&| 8`22m;ylW+SxB zKIU$!t!I$cS~3GNjU%K=CTLg`Acct-hojGG*nLxdc&%g557U!PA)C7pYzDkMo6^tJ zL}7Ha7^^~rJ~*9PQsI<`T$G04aq 4m+}kI;O_~f1J%N}US6K*0v-&<@%$OW T6UCf4%yizXPV$qom60|8sOpdY@9d03dI%YLCUvb%{ z;9P2^G&az&pW{KQ`jos`MpE? Kdi0(Iw*r^eWb`|F2e>ln~n%>YcQ=IaL6j6wd zE;VPHZE8Y{J49&iCBv6(%gV=)zSU`LUYD9E+NzHU;U!y#UwRN~4C3;EOHyvyCE5G% zJ;a$#j3Vi&`)x2`q_Sp{y<@lhRg_Z|j&y45X;K`Jp%6dt13!>j9|&v%Qq}|gc`9o| zE=mT$((~&LR+U1_8=FDRaVdYZ%4FDP07EiXaC9hq(HDJD5hnq0$6lwhON^~Ki+;<( z2@s+v(-%%M-|{Wrk|6&0P6!MC;1B-b@|4W9GJMuO9lm zyAzxmtg)xoVX=`@Qr%Ra~ZPH*s8ZtV- z3`~#4t6udg$!OJN?ScL7$|!Id*%bV>CU=ukjAK$ED&L)Qst?hoG7YQD)RxHSectEw zP%DVct+!+{*g3B5WddRR@DKlR3FDWrUQ0y(i@*4bn5B`+EMzsF!FxLDJc~MgAr03l z_L|C&8HqGo9u`mufSMs(FLiZMDPAu1Sp&{0c*$P#!D+Zh*t$YDY&LuFOR_7@CEvVc zn6k9nX{*qjE$?@n7&Jpi+0iLnt80@;QPATg7-AT?;RH2&U$rzJP%ZMfNblfybB2}{ z!K$s7yZU%pt~iF8^Uy419E~xKYzl@0PQ*aC7MMXZcOW(5&BE8=?zcIH=WAG-*^FjM z+1VAD#7cXnE*T}JuQ?lx$l@}JPOVkwfjDrsBP550gXey>=Ynr4S&k5AGFelaSdiSi z86%Hi;ecyg_7IwaXyePCny`nQkqdkC*|UP+v*jSYd<} F<=^3ulX&@g(<4D?|14j(Rx*2UK_5w=FHh9eWLS-si%o%k%f6t06@ zy?z)zt=uKfim&!r!C8?i`4{56>?^fh(D$@UuO*NBESxxdLa5K!2P4{6<^2h7m*>G2 z3jxSWiwtB7YN&C9Xpr!xcFFCcX$oi|_`_iw^2a&bc)_RVm<>!#h(QY1aB@S_fEwd$ zlt6@xE(kdr$}`ynA-mqyHvt;vb?A$g<`(< Do@=VW(I2(IDqKYA zkt(a<7bV$fH}n^8y74LM499?%8RWnje8^+WRPGjI3aIWi-=~0d%|YA?dW*DFG;O3F z+$g<#D<33~Y(}_1WFc*Q#XTD+M_#$-B7|(6o4&2)YGV`e4|ugwyYBsqHNr7_q ENtW4fU(nfwS_*ZWS@v(`+ x T8F%Q4hrqR~_kEiY;UH5-DErs1gpTw9tDMk0F8GFc&jTC+D~m|)Dv zA$ndRW+zFf#jvSio*GYo(
A->sC9 t22o-#E&=NtYrNfp+vk0{{u^|j+j2zQ>+Fm}VeBn5@`wX%4 zfqGR6EGzcSjShk+9xg@-9V#Un@eG79ig+qME=^g&xG-u?FT4yP#XY;&rt0%ewr8gY z3L<~4l&na*lwR)or@!gMyFukJbu)RQw%Udi6xtUr7E`UQK^52@fUZ0UGNv{n&&bGE zPl|F?))UcBt7KE+spi>O AGpxM+6vx|5( zr2&(gA!7ss*ANMwx~%TwHQ+%I{vZnDuI6kamR4mN>TOWzl^A4{#~5;HOfm-}zMZPb z%@(@2U9t#kl(D(nL@gJ?(Z}g{02w$95#rRB0P@qem6`9j6jxswWy^-Jk@XG7<&uGx z`-Cu5aP=9NI0!}5o2nm9#)ug5T4&3Lm!B*tvJhtDPe1Ns;MbBOqS+~gcA*Dh_&^U= z#b2YJ+V_@sIyZ>e2V0~A2&w3z4w 7%RToar7g8Hbk@fo45F^?;0*! zIBV4K+gWy-UWgJts2NU^#z>{6&wytSfx*$+3OL6CiOBY }h6dEj z(6 VK8PF`^Q+!4Z)3M``D5Hm7++8~{Z z5wr@N8SbuE8&n{xAd7(3>}Z}ErGb`V3B^rHKWfU7J7sqI`ixWM147wpR{`IoW>oVy z1x>2x WLSW$gHZYxR@ehIIC^yQcpoMThE;#3Pe9G_tMs*>CHwC_nkEf zjI9)Cm*Vm@g}jDq?WZnilrb%>3?Z70JWD (E-4BG;;8nPb;XQ(Y& zOGp{N(*}HYjlOp9B`ycO%J>LQvxd?TQDgIJulxO(Q7A*R6xtdJo==2XY*GjW=cX{M z2z(I?HLEj3GbJuEu(*X_&s)C|L*Oo)DI8#*2Ta5)Lt|)|DPuD9yv&wKI(iMFku6Fz z{2slQKeRo<)>*P|`@+-Tg!Wy|IPK|7Aj)jvwAKQVGms-h&u)soaQci> z`i8_C(v%onCT&58St ==!bsj zU;fK~nO)r>m25cv5P|H=W)v8?Gydvd{i~K?h&I(U)Re rFCqNRzxg*2Fr{4x90~Un;k@i+ zFLU1^Sc@rSOpR?t-}Y_aM%=9BK;pm+f$fgIADTzgb1&8p{m>8jn?%`ZmMRW4ULFky zdzQJbh5M^s^{S?ZmfFp|^bq{Prmy*$uaWbRiD-s;Yyaqv{^&vvA;%f6hRQTdfuqg+ zYk%#pwJvL6h-GPdr-jtlecjjj==&COZ(P=7R`F~K+}Y@uFMa7tKkKtTOI$Wzt=&<7 zJJ?GUn^zo;?2-MLkNKFt^q2mUOsFAPuPH_}3Vy@K6xm$H7= oqBJ8cVa{n|UJZeez1v9t(WY=42wR*Idtb@|S4jQDyYKq4_G==iSs>=Z;Fg%J1D z#Vy>IYWC2ov)cNl(bvEJ^#tjcfZn3YL0^*UpHbRYS`Ly?z0?jNp2aX7DND@d!szTW zsF{Up48xiA?jRf9V>||TuOgMMgl82EEySNm5^IzhoxM(@zels}_g-^4yw(Fx&EJjd zfs|4%lBv jf*{1n zCWs6%Waw39db670*>>?g9XV^R;@0fJu-Vkv q6y&(ff>H!T>nDn(=LOkJq1HoJ7rV1f?A=DY!y1XI6$*~NrbY@9SZprEk z)IxGR^f7^x5<5poIgqvXj#jgIm91Xcy>as-G+Q`cXwtI^grq{O#Sj5*3H44dGD3|k z$3)`rLV%a;tbNj;0Hmw|C5%s8@-(UG`PQ;i =SM*NsD#V4?9n`N9E1 zFjLN5=5i3l5RN}mXAMkiF@;|N*}_F;P-Bx4ky?Gr4{r&V0&z^XWww^Y;f&JGMwWk> z>(eZm(Wl@H>-i#Uqa!Pof%lSGl=?JR yUOCkZz^Lb69v0KAAsap=V_OE$l+4gf zwRni3S%@h^%YbO~OU|reOkVjmm2!b_Fb7|a@(HoKluPE+1%g(rW+$#8yM+`HGyWPY zq)bwn*+6}oNezgs0+fpa&pm@k%u#z X~g8r>BvjP$dIL>r{;a zoDgj7QidxnJ0@ErsGrBck)7Gm43VU)N(mnb;m(koCgGlQj-8(zW7fOGz4#*t$|YYq z<=`75>yr$}EFuEO9whi^x(?)krWbt{QV9Jt?xoE)kU_jCLz`KG_>we*W>}IfZTO5_ z%%U}9M;Nu0pKYaR2!}vGZQQ$D&>Rd)aG{7|)umCyQ}GqytBC@fyVwv2DV8EwEX|e) zgye$87D#y+3eu(KFtpuzAa}E}o#ZD6NU=gL-gJ0`BvDA=3k=srBBOrRk3bzbIHS#L zscd9+hX8qojJ&3A<%#dXx9H8%X?B)32BzdYG&q|4n=StohR=YMIhzqba_$H~cHruJ zu&Y%ekR`9z&`hNhnByV6gW7`(Cxj@) K+sB{Y|*U6V*_Wed9o!OEkR6acS*hd?Qb_*2%Hj_eBhO6 z3Ia(S$D`hH4a_~HK;ANQPi=J!>FpSsqrS}B1tA7!@YS!YXbEtEnngG?BCWc_4zs7j zq@*E`+1$&=kP%`wP%pG=#cUx=&3aGuA(ds+2<8rH`Q<=u1aZbIj;WF{RRVel8pIhu zNT(dCkEw>I{l)jXJgtW!AO2!!YytG?iewm4LKAN_a(Cup(rM+@S`SY=LB3qH)?By< zz=k+x8$!;u^oe7pS)hjFvT6cT)=NeOxUj1%LmNlN_^u#*4Z>HS3+8D<5G8)ILtX_R z#3qt2O^uo%kiOED55$U^Vxz_B icTZ=_rv{%_;EqAL!4dK* zP
ihph8-+<@<(%4-Nx^5map(*gN1hNI zhQ$(BD}?%C9*mR=kzLx{skKL3ilv9sPjj+DprFVI1Ij@%m<&_wZYS=Ah dV9F43fIC`o*V7C{t-9xjS657~+ns9YI9vwDFb+B)Rx9YL~soM!P2 z^=spM3Jzf$A((}WZ|IFl3z_xiC}EsYmQTkHqIHIba6|M-<6saG5vWgxCR=?BMK^_$ z*BC3 QZ`SO;uz;dmrbp3R)V}v}jur z*X^ue j`CI}+hl=cOo6~QBOTn$n)WT(G{e DIF-ZtZ155>QX8b zvuB$ecxh YfiSZ(v4llM0 z{p=F1A()zSA+W7NS$rqU=Q9nXO~l>rzIDyi&4xhsm!ONl0o7!pw^(UNOe0QYvQ6+X zycC6UMPmp=+-=U_PQR@&?0M*TG$m*T7lt%C)m5*Q;vk4l$|u_NT07M$CNT aLIWmlA0=M4eMSSrZU?c)OMS-*^Z#Kd-{FXG4^3{eVwz=5WkB|E2~&=6C^9UzMm zE)ifl4XY`{8cjvBc4e)m=}*7rQ1TwC&cRGYHe?K#0jar$gbu7qE$6_0@FCe2p1!?P zUdmR{Ye~CVDXh*z#dgh28e;Kn$awJ32POsXiW4ptL~i;Tyy7!X12q*sv f1~6Kj2kd#tje-QyA<{y; z5%DVG2_j_{vsjmu5k|zi+K3P?H{@nY=#iykD6|T2r=uoXNgCRb$Y%L!hGsKHC*$gU z{sA>?Jr=L%L`Una3jP-7LMvlcbLizES88Od7sQm;)n1cbG-kExZg$O0gmuX7=wwi) z3E>VYR!KRUlx31p6a)=(l|3v%ZU|)IErh{c6rd@#Lm>HvkXo9fHXsq;O71Rzt20@% z<$ta8p#RTM-{Rl6MPu*rW$H6jueB6$PiW2&pCz?Lk9c=2?z>1f?&oW_6SU^E0d( z49r7|6L=bjPKUlr0Zj-m{ub3s8l0Uwn=v(Kh)c8R-Gg$dC1n;(6uo9jCGk}cU+8RP zc!9VWW+%lRP4TVWlr#*{%<3`e#8G@vaP$^p*yDiTJ&q6Oh?95*f<_8~QK~czpHa(& zvM3`W4Y&lHa3QSSRI=r8+T%-1CUmTqFXO@U89`Ba8FqTbWfZz9x#py2FK{H5;}9~| z{^EPOY9|0guD|jtzw*hS{K=gd{#AJux@60MyN9{F+455ed!Jf?{`J59*B|$BABTod zd|I*evl3H*A>5U~iSau_c^NW TU= z?2OjMSHklA%+LHx23ZyEt5jfl+6Z5rz2OaSn9V(n81odr0cjzEdSd;q+xLF&_qO$L zU>j65*sK278EwkhK$c)@ob|u|_y7KffB1)c2jo`eWsM#KvtB;^hJd#uKl3v`qsS7V zLolOEY}v2<+OPR#M+RTHY27lIYN9@`c*QH^Pv5UY2uH+@N9LvV_lzKdcDyG9Lm<6b zQhIj9r>_a8_%bh+72z8S2eB5v*6LR+`Px2?x$LgnLJ0ngfAKFq_j5njRL4dF@Us=W z0hC6X0 i0Dzy9mLz6HBc_7JzB#9sKq7kXSt5f@Q8=%;3=G?wtDH@!(FlV?E< z(XtD@hTxls2gVZebru=zcfM$EdCOaTjU%YghY+hQapZhQp)cMiVeYMBbRNW*D&>8Get^oYF9lY8(~ClFo?Lg zrTW&lzLjlh<>{>i(62FBroD6V`Gv4kozioDFguOyV0|UxC3#UaPp@}34nPO29aLKd zY~NcEm#T*V5oHYxRLPjUL~%ZyUITY$qObubw66vX=lbYm9Y-kT+Op-;> z%cPn}hJs;bc@VYSrR1To`>H`d XFipv;s?uXF8qz?EE!%DXY*~C``w#K*q29ZlsmLP4j7A3^c2+DI(H9Ie~azJaz z#YLl|nbMHqhMqCcd7N;Es#iNMY)m~SLH!yOp8VaBCF^C06+jqL_t)f|BQN33dBnYt*n3&Q;I^|pvk3KX~;kRfHyd
qU`_-WYVK!yMG!(qT@wQOyjJ=g>hl5GQqKRA~W%-z(qgP`G- z<#jd7FoiW+1PWves^W$St2<=G4|c<%m zORq)9&=c=@gUg&CW8+;ffe}t$LyqZ*LN=A4=glxqzD Bx?i183JB3~HzE_3SrCB|G$|1vPs(uA0jrfNiv*@{0oRP|yaI+oo_}<@`op2e$ zKj0k$;NU`APNl0i1(_rR*9>Rs)VSw%nBy;}(keiQ1}*Twzcie@5h#@CfQ(UN41Tj3 zT1>q>vr{I*0BYH0A#+j OP_%-nwW-ghAI6_jo?`WZI~^Ddtj?5XmQUfTms7^M-RV-Su9g6ACkVF zJy9m5OX4fe7oTPc6Pbm0zEZ9rqd)GD131HsIR=I!RjLt6Rd1-x(0W5A)>-4?O($ax z$ypDrh8YLx!1DnXogv`UKX?^!IA@Jq^sB*9X&`0G5u!259G($qsHH!~*>Gmb^4c7( z8>zG8|LVYQf6J2jyb@S!7l#*QQ?0$~ZAD+Mw(9X9tFB^tjY5v?gnSyAB<#4Kbifp-_ZG_+!ut(ocXC(_ixSR#!v<9}c^bPS#m$+O@ zcZyZSLkPoGK6pb?HTbo8wQWMA49|U%8IeoI#L9(ES?SpcUh@5~1#fBkzRHlcrL_xe z+g%Y_`xLo4Jnb5J;Z&&UdjJZQLZ_lYqgkwpSXPGX_N94njNs;KmY|! rF^v%|fdudOp;Rs2MBO}_1oVDp-N`^rPCuOn+1&fL> zv=)w5JF8zQsA(MaXuyeL2&bTr+*E2+uZWlQC$R|5Njf7-+?3E6^`b!1KdZcg7jL>q zlQ%^zu%vHDeGS0we9z*`tXzqdZo?J~)D9ws;cFj wA`myg@(u9DHq>93@tUv zMKqixteiBTX RBb&DuhwEVBj2Xd zJli7-r<|h^u_FB(t+VbcxaJQpjR- OV!{2**A4)yD zWGrx=Rn?OZgcL*R^lcg2+7X(aScl=@86(9YRrQFpHHCv~r^+K`ij9*Osc91hQnrku z=pD0Nd+S<7e8U70c 5CCVZP TxGQJ^2*>v~T>}h}TrW Je3;G$`VLbOR`P1E3hW+rr!*0 zgkV00ZBq+&$evtjjqVun)%PcV@+b9%6$^n4q0iTcGe7B*J_*vbQo8zDWW8a^Txt}m zvJ5-21f@qRCR@Z${KQZE6My1Q^r2Z(d`Bu-Nc@I+G_7;|(I5TMJq*M-uH^Chug I!ylPiM4C3eXZW5h2sc8?bAN((|q98kf1itB)c4b@fUy5 zM}O0S6lLdb1j&5HXM6^54OAM^gTMI2FaGS${_K8Z2~uv{*&cGe-;qGmD3n#n$i(V? z^EZFf?~t&aB|S&tTH;; SSdh ^Esa*Nmr`#FIJzg7FV<6U;Wizef{fSKVGwZ zNKta9hF`=2HOqE*2FHOkB<1A%?9cwJpp#O@h~qn2q*{BL+4VkC{pp|n=>##&I-+t; zB(kf+tTrH{sqm{FdbSCpnWD>(y^_h>eybV~65*`-3PvmT^p;u%49y?zO4EzKC_>O5 zku?yz*6j7@K5!fvbTopL?J>JR!{Ish7$duTZ`~
}4+- zwQ?w8puX)yKBspRCM(nR9^>qeY)8jbvx(pGVtMD`JC8o{(Cu4~Joae)|NbrCtZ24g zlUNyECv14;zbUHY;}4|x@7nLG#^DC=FZ{xnNYj4~vka}W8+9{o-Tu%I{*ZV6?mMOw zTqL6pVKX`~`YZMQf8fp%f`5s#_cgsevG7^4Rl9~(!BJ=nOnvbef3ecFQ+u_px^!k! z#%S8GDE&bnI`Ww|`wN$3dA2B1vk iQ8<$VLCZvX_C@XE{za> zw9i6l>Uq(0F^w$b&2N4)W@Vu>^~vxuz_(0Ftk4wPN>jI#fy2pwNamnvIAA%Ksw% 9i`Kq3Vo&F0vec$Z3yr z$R`9doU&%9H>D+#p+`HF{e40v`VIPPKC69$%h@Tl-Iu +T_d|FHMba_=10>Rbh<&E8MyjeI-b)ZQZSpy=s zz;&4^7ihvo7(Pz+7(+-_wrj#>S6LiGVC0E%FdFLf#kUG=^-4J=dtCCGp3!Vl>9E5M z&1%i+y;~Gz9{hspbJ3SW2Aocf$hEmeq!2PWGeY#->$wEx3$M+P7eq %E!eftaKQ0h^)FcK;6IdX_46~HwY)bNMU)6f$H^dRb-3O;&r9g&=2~w!R zfoz7J%~)H=5EzsZLSnMD^jBZtVHiTQwh~tR;DrpSpQ#y+W*lk6Q3STx5JN5paxOrv z{No@eVmNjNB*DB4Yw`7PNXBXh4lQE{@eh42`eK<~l~XwFFWz)iVpB<|;oxJySNk-^ zS%eGOiq2Lqz2Q{wRI@Zzd`;{yJ5vmem&Ta=2t1oxD?(_N<0aZCUm~n{351OJN_ZdI zqu-4tbQc6e1 SL&-C|r*rXnPiNQ^knO(H6Wn8M z9sF!tmtT} Qz&yB5P&BOtGDh}52tULc&OtmKnxj?-Lq=p}u_^3mxio9a zOM(JcOq@epLk(G*tvTe7a-1O>3c9+O%JDP`GEm=ML>n+8a1{xuzj)IPNh*Z2OA^C; zpBPqhR%a?Qrw8pcD@g8ZwnGCd?mBfg)+mhHC0bHLGaUQW<%X$K@&S3koDW`x9b)ct zL>PN9y*{he)z=_sa!2zG(*ET|zFh>q$}?N?lg6xNjMLB|T!zEex@Bm3!^NiWhmXDu z_~hLuZ*|3OuY3-@J4?U)le1ECF>#@pnx543hv**8Ik(=^xvUMjTYHT?gmexHz(KfV z$DHK^8fx(w gEuAFhfU%leQH#J7G4db&LPQ=wPwYs!~-Qzxdbtxr%ttlI{ zpO$TuNW(a50#jjA`Ho?jJ^a!OoT>3@w&D2Bu-W=Hai(rCp5~^L#6)G3(+zSDKD927 zt qn9Z)>S$m|;&Rzm%6_*GHyu}{Cn}_pS z-4#D4-p`mGd3gI=!jn%t{@mw0_YZx $`qFoasA&>?hv)`1Y;9yLbQ4AAGTY1g#A9lGI#n z1fTc(=lJQ{-KSi0^6|y>_K%NKa*a^XOK|V6&W7(w3nT&^E7-qV?O#H?^N#ID8orqI zJw9JDyYe 8)+W|u5V?NkK!yXq zGz`yCUk-sS9I~E`RmYT9Bi~`b#93cyR;gU{)0#Cb!|+3B9GbvrD><*zehr%Aie#U9 zg UdS&0nfUe1uvy>mJAe5hJ|yNd9&lD@CD;Xe#A$8 mEEw2IbwZLflW@l>L zA;W3k2N`mqrNo$6W+&pP6-brJ|3GLqa#8e^G_}N|h3GT#x}l#~r~D8-_g0a8gIZG; zZ@Pk|GD(wmELKs3;jH-6+G&pOx&a5@GI3rR(>SuvG6x(&QQ-1_5XVu-pfd{V)T$q0 zkd<~2SvgkS;W*|0-jM>eWY4WwzA+E{y081XKlkVU-1DCEe73LbyrFR&Z11s__qN*| z=U*h>KV9^^{YP&KHz`dGH{ Dn?Vtcjt$qt||GSUFZ2Z7co8`dQsnimjsX)Wr51hzrl(T|pXYoM28nz>B zY8}63^9`?tY|nd_H3MJEebURw%j`%U2;7ARR+Elp!(7ffUYde8MIl4zu^FfBzH3W( zj8>uqlA{7-ceb1xijYx9W*4Ta#iSEwj5vo3MrRUb1WqyxH7c2z9UVcdU1`JdL+B*J z7{~0%iZP)_Gh~JtXK96~2yDsdHDoP=JEKh4C9F#9;cPy;dpL3k0-85sof1O?c11>G zq#UzYd>I;$hi_2r?_i$zU;fPh`qf|k)qnJl{?X?@@A `XlQko)HNRq7Vtmd}Q4#4V!#yLtn+%~<_5yM4QDYm-u`J-myR z^Y* i=<@MyN}3lkgDfN57a6`?+bkU-*((yL=LqLp zJ=>R x}P*EVW z$Yew07GAwfNk;zRo6vsLrZmD$hS_mS!_+zpG~3kJ5K#z1kSAPOLB?gZ4 sA#Vs*Ipby7cz5V%TuYBc~e(9II-~})8xnSS> z|J}F0^F=Ru0iUYmhI!=C=lE+d5BnY#9nO2p*e @5P5 zEP}Mt+>+bdwvy`;4j9J>^6@k|4-?1_RnW}F%-0a14+g@4<-kDBmZ2#&1UUsyN)Iww zpg@z1A!cpJK7L$r-~}p;YvR5CB`bO17+gfJuw+x_IE@>c3R?n~mZL99qOB#DkoE;) zN(c&+^NMh`zwf478Pys>j*vg{@VTG+xovq>i>yYPsQ>hz{?kA5NB)Rag>wNuZFuA| z&TIOXH$xo1?&A*v2u-=70}&t$C-~=n?&o@0XtuuO(f-jt`bWN68OMB!Qhzp8v_mE{ zWN<;y$bR>CfA{u{^ZiX0M8th&>oE1mjG9?SJww`m@9+J+kNT*Oibh0(S6d&FVB1|k zC
~0)Wy! 0TfIn95Y4S4i z_!C>W?Kybz)>Dt%Q`kVM?(fU)eUS>fuif?xZ9dm+ce);&{O_LNhDMtqg>lTdihkFp zmN)*sHU(#F;kF-0oNGO%-hleL%Oiv3xkL0t?8A4S^X~U-pA)?M)b?putM!L+{`8;z z)1UgOpUPI!uB45yH;38(>YeTN>2*8c*fpS%x-~xG6F#9_+778QG=gTo?c2WX 30GBwGCwFclmN2KNpaEt=#T!WvwfDlf){T(DiW$99OUi$xQ0Nf)DkLh z-_@4%NUwweR|8>&LuRDbY(t3U`EcnQ-}uHVrRN({O*M;0ZW{~{^f(L!)%;qe->Q*e z$S9A_B$Mn6$0(&4qLD2VvR?E)=3_o)W>+J@BChz@2ySZSbr4J56iwCUB}!@Q4RIiy zr!?)9<@@tdaP2e@#7)QLkvoq(e*3A1A9?igyLvD55C4C^{Ki-R_>aBrb+7YBNrV&k z-H&gdr{$uhriZjr#trS3_fFTXuPz&%mUL RYQ>G318 zRUXp|Fpw|1^tiC4m71g5UyL<7gapxI&N2~rIR@PnY|4gcyZ4r7vRv43-+%0nW3hQj zCPE>8?bm+I;qT|^T ~cOIcbwM_%QCP|%q5DI=I#@v#Y}z)&Aol9TDL|8#|w zl30b%Tbkl{yPZN2C+ {l^$>U+qSb(hMK;vaOgs*KiPbZ_>_}rYCps^nayzvpKOBaj>o7atQ+$wF5qGvG zbkCJ{UTTFIuFuZ5;pk*olqB~Lls)0X>ZIyv!dnzsSrslL*$BuM$S!EIEiJ@1LvC*$ z(YWQiVE*chUtJaM=l|XR`<>tQUEZqy#&5i-XZ1~Qd9xBd_S~y)mux!w&6QMr;`jIa zJFW%tc4~9IyWN|oUh55rFf|!wNSPz7n{KE@c D&- 962JPB;uQ#CYrxsuh8*eF=VBFxvlhv7 zu{CxOs7VPkO~$kqWk{JquX$3U;Al0(p%8QU5S*qsibWv=sQK$+t~s<4qh=OIVrFFm zXK)lfHOA(-pWeu=S3XmL$^2m8Lug`lEQN5eR~j{eI 54uTAkRm9Nlsw0G*8ZWj!Bb!&v@Y>vRSch=K5c&+g+-z!(%A_$0xzGvOy{{A? ztwMRFN5PO9&B?!`#=Srmf>vlovfR_*HF3*?`<*-9 FXXA;w}&6R_r1vCV<%Q4yTanDG(DK7DW zj5IyM(uT-n+zDpm6y31gI&WMkun{OI3*&6d9p7RRxL88b4GWF4M#O~32RS?%TPuou zv}|Bm>G=+)*-QO>HyskWO@6uT)T<1Hmk{Ya=oU4m-jrc|#cgeq+@ Fx*RpZ_pPN?=^3iWs+}2R8g!bXu`QeHR_(8@-_8wK- zcf89_6`phVp{L&brnh|G_x;P?R)x2{^-I6xfB4W3{%`51fW31<7(K(vtExoR+|<0Q zie?wO=J+Z#{d(?YcD>T8HTL)%z- @xtk#as-y!EP>+|V{cxkeIrs7 z;>ljmTwQa8=28)20`bY-aP6+?9dEjsqmrUt0MAnK^s V1$E(7lKS6x+h z0*YSff+mQUF;aN~!}X?0n>#_aYRjao^ayiGaJu{IQ{&QWz9Dj&g*K%*2V1JQw+(vN zyWjK6zx;;p|Nig)xqtTy?|u9U*PQplcOHGtV~;-f-S2&muU!38S!8zQ?Q?Rrp)W-@ z *=JFx`2~MJ zmhi5^Rp8* {TsP7K#Fmz~l$*r5y)xjXx{&omELVB|uA%bii zAcQg(Un&AMf~K@$HAG;PNm3AmdBA6O&3UzpHJ65=S_KL^%<2p=)lYatF_cf_n2?$w zm!g+X?=XP)5D`cGtZ^^)Oq0`i($agb1cMN@Y&5!hprOq4od949V89XdYz?kh44|G` zQhJEjOedxg`cjY3O6V}=@-`(gy;cHxUX&qg6gDru)rD6Hz_r}7#qBaBg=2~rqf{C2 zaS6oH*wK`Q9Swr4*C22uB8U$!L %fF1%HSOS23cQ7p4KY*SXmRzSza5G@Xa z`+m)BKjqlKJGWo+nxFkYzw`h4>DT@I@4Wq;kKTE~lXo9|&htO;;XBWL@8jOfJ$m=a zhaS0g=V8BXy8p*T^A^f~m)_5bxL<)Xx%zK^Bk1iNH=ohl{_~~d`k&*{OPNBf{|&g^ zi2Hxnv$=1Y+kbmLTS^!IyZz*?+mCxUYFi%O-labABqcXC_uJm&`C-i6+mHVA&-_2% z{_^j5&1-&I5>GyEM>>-po2%!1Tl;=Em9dxkd7MnS=Gr5bH`|u&)!1~jtuEIGV+S^b zRGRt-rqVIAWpt=Pa&a~oO)(HO!(6D@S*M~q7iie=o8ysJhlH{v@JfVE`5-e21k_3Z zh`+rS?%#0(ni^UnhHwfRBfFq%#X<9yEk}qcEgJnT*scj=gm7VKfpWm_@XKWLzy8v@ z#ip Ve(%5eH~$9Nk9yI{O++;|EZc6BGMs+>Hr#*@Vz`oipBmw_ z|5bKD*PN}+0Z l)tTKE uAm$@F_5XWK_79lTSXBEe6@8;AB z|FpGCv;^CrXuxniBmzUAQ=JDyF5YzfWiNHjdZa5Ap!_PC@CpIhv)aDARSv1(cQULQ z2boS8?_%4l77-x#(e#vh=9LDsv%;6HkLgJ!TSP%|OjRty)5f=1;bbCEX)}oMt#O1? zmH-zyXdE@!nnf-Fd_(SrR%+OC@F88(xx_>+L~438A>bjc1wzfwjt${OoL=S#)w4A8 zXr%#{JdWZhh!;=w*ML4_T%huoyWjfs&%^qLh*& P> z6z0MEvm!oBeEz?5w=cby<3Zv*Pdx5}fsZ`rv3I=doqk;5hcmzZJHPYmZ+TPyWbVE* z_g=zPxC5q=bX1tEn(G}WeS2rS?GAF=IyeIu$4wDUPt8 8Q)tItwpeA77MNJHe1#iOSEzX2=D= zspo>w`epCjR1u(ZxHTvs16wEClqR}lS}hI&u;D&`>^RB?fhL={Ml%scfusbNMnTOA z#LG|x3Q;DQh82Wz`lj4*`tBMaUqgn5UwzmT)&y;~bPFVbR)=Ob1tIX!)Jl4E7znD0 zpp{J9WY(12T9hgKRl=BbJUg#_?Q30jw{L9;$hp});?<4J%ao$_-}b{zKW%v0|G1rN zTe0qMcPVa1_kGiLu_W*7-EqG9USqUUMPR6^pHckI@4myYOxVKTc+*>c{uln8FV`J9 zYu}fD ZlE*6B%MW1a4;W&CW zF#b4VPBSG0nt#8K2qQ=0>C0BCPNu0|1)CyU6ox6{bRZTuiyDHpi%6%{!NsCu2xmjO z{n?5`bA~t^JCkS{&NL$I5ix8z3`{sj1Rs&H1VhRQxg+Fm7(e`metVYAwxa3 !68i$0MKH{+hzd=iCD}6(ajdqQLflyd4MWV{ z&;;cYfwDdD?dOWcJ-ns06Fyxj87Y~PGovV~EUS6XRnDdu9eQ3kLO@EMaYzi`$0Knj zrFIcc*~i&r3#q&~Go+&q{-H`aSUy}h1Q*%V)+!|6uB1=IIfMA~C|0q%cv^1z9^7kQ z^O`=tDm{EZhrR1oxc(Zpji^5)|2`SM5AV2VmyfdeB?(*f?svcIg&*+z_rCjGzGivL zTi@pIxqQV}e1#3)j_iJJ)3-I97JKRy!d@$mYs(g>zfv2jq}{>%zz_UDw4UnONA)+Q zw>2JDUWUBLBJ(wj> N4aq au}pgvOL7|5Xn zfMknK&`EHRD9C{?9D$){Gw675`d*vFJk+I4q*(e7|L_l|-yy^#E0&(Gx3u~q($q?9 zdIo)E?AgJD2+dtzI7=XCh^CK_TEpy{`+Ha8f!BJ7YLZY6QR!;d2GL}rhcLeQi@*3) zuX+_PG!?PI(qfwe;ux|uQ)yN>du$m$_G3TxC13I-_O+#w6@^#F1)rTxzC~wiGFL43 z1;Y@twTM_OAbw0DW<`u6AGrQQKIB7s`GpJJtRvF#_2-Lz_=kVE+$fMm7<~qPn(iZK zl%OUJJ(`|~hXIX(Siq7jdPxdexWrp50%f-PBREWaiRiVNRrxRaqA%ho1Z6G`?i=6u zM#;!Z0#Dw(^=DrCzx~W>f6hl`w{O1tDZ#DVesAC6>2T4ukCga5sr_f8yZqK|)6cFg zpX}WheBEwe|E%^Jc$WWrd@)&MwzX9G9b|9F_MNy5_d&aNzWsL}edLy(#6JGs_k8vr z`_z}e{N>N}7lI`0p90;E+4f{|ZKGBGr7wNy_k7RyK)5^73`f`9=eT;X?V6YQg0^ei z8EA@ckG}O=zxA*G^}mjcqe0-EF+-ZZ)j-6qX^`}Ljv($?fBdYIv-$5XSBu*7VRy7> zn&nb-I&8g&+)XhwM!7jKZYV>maCC7aTj+n6eO%G!w@Zj?J+srNL%6 z`CWDe<*0GdGSG65F#0=jd&FM->R11%KlP_@azS7eE|)jF;SGLEWYy32&|iE{Cj->{ zt-&)UKtoH-5N`r7Dx%~#N=WZO=-XGhsw{k5;53~W9J3q=ww|O$6M XMQJEdw=f*2A-4)W4k?*1vVm?EfzV1OLmUcL$H31;Z yQllW)=5SW>S_7vtIwg|RD1HNyYKqlce+;YKKZzR_rUK1 zE1>TtS?BgCY4`tA?u94)K{7K=3wOO+fXG&*>m$ujOxx$CK-f#Tb!{l4vw;RNY-^g$ zSI?1%Svjy>g`Ner=9+7Z(Ok9E3?-xC>*4jh*fzQlW-%ef+8nOGS3WLHIV2j8OABPL zjiaIHa--i+CO|e3hE(+fmRm!(=FrM#+$Z^r`cA3*4O?k^L!sfG3wE&>DNkQwGrVMM z>0W9iG}2Qw%;M$3p0c7L$7E|b^>T%`9xLI6nZi!o*5L55n=;ElV9*cLYlX`i>+ksO3CF CNjZLLWS2}feWk!;qysMvArgVG;~)CT;efBh^PVx* zRM>@C*Ooom ukIKF`hj8pfC z5`nwiq#YTUODBVEGu9| FA?H$gZC0L>O9L z{oXxW+k!si17_P7s@wBz$=g2*a{KP>hoA7zoj-Kzy|-_9f@SHS5ZT`7Y*!zb?JeK@ zx2AV}6K L}huzcX-$k3wc8|o(q;9LTQ(3eb_D>*3ysiwfzM*q~f z>83kn-+&a)3hh(p!#Z2A4A>nMTkA!2&uY8uOU{%mgGzF2B))1k!P+-fpsj|fZ#)Jb)3BuOb z*bQ;gF?8S!eakBsHlw2DRnBlj_PpC|*zBeLrixth8GJ2DptLl0Q>}S2Go@-~<7AX2 zX5@6%9&T74zS 95hUZL}XPn$i+ zSOekAESqm_^@ZSw)i-g(nsYNQ2y@|%?+pgc8)mofRQd1vjnww@gXR6orE4z1_37~| z3f>_; MfD^&Ff*TfHEJH1?gAoUaR-lXtan{)6_I7r5z{Ja{B@hQz5CR#K z>Nu)NAcPCM##g%@ZDmYEUlb)}<4|Z88KNg892%V6dkeLipf?!zDt-g$FeR!MSoq01 zaPlkl(lQkpC^;*E$eR?zR7eWx#}66zKz# Fr-)w6U1SliDlN%Y_~*vK@*ZV0 ETR+ zPXn^`nA0F^D b&3Q hajc< zyW^(Y4)a!Fsh-dFMEU&yI5KW3%T!X0(Z_vybLSb8vx5q^FWFr~+hX>A-eT5bDB-o| zWoQR;H@j|D%yo@IV1{6NFYi#vDr5p}<=c-a1q3ca6a}-XRrcB0bm;fFh*IqhRCNdu zy%kLeh$$RtO9>ux%XrTj!a!)~2|}n)e9g8C44`I+!$?+-#+O0APc (&|57tloKO z`=b=T#_$rMfBthG^KYAMU)Sz$Cv$Gq2ch@pQ1!O7_r_Ld+iJZG*IC1gkAl!k3&VCR z`>Y~ktJHpMxMbU@rto 7e0!>$iR@cWoAuh<-)JW|Sls3V-MC{2hpJN(2WM z!u{(d_ZNQQ7b1_lVU7A8;_6{;*&9tFzKoRT{?3l&;`0X3RzVDX)wzGPc>97DUk)XF zuW*eo^p@;T>3C=N$oB6=J^aECc)^Qa_@du@_x2mS5)+yD1=sg0Y?~D0j^nexCHKX_ zD_-%6-+J3y{nbRDdNp**{QH0Z?-jY7?YU(uh`z)2vX{M#j=c3&r(F7$!TyP#_zAr$ zY3@+lH-uSjj)n{^K|B6oANFDXM6X!k2-NE7ko}JD_zr)%dtb=*9>)~B6T&_;B9IhL zr{EFdMEkpc_wV-BQZh5ki0sqyU;DLR+ac#=-+L(7&Z=^~@|CZA{p(+kFd6b~C`lsU z@D1OfjMc;tt;OPC`V$#$hGY%RvdLOFGG>3N3VvA5VYsDxfF69f`buIPSA4*XmDXm2 zjJ*=Zm*C)u8;1P<#NAntX2*3O_}bU5-WzLUCjbH@#6@&SrYvemc~v+Zp$FRvE5hM- zTMvG+BOG4B Mv4$dH; z7 ^W{LGg{60oE(UhrBuSK44WCXux&s^tmD^)>b zivTT0HN}iQboi~~y6H@A0RQk0|F9qO02XXyV(a#E)}_b?K`}%hFw96AY35lf1f*1z zpNbYhp7j(!q2O&_M$<^<&?6bGzPBA@%P?b3o|LNaar# jT9Jxh@aguN|WM z4rOqJlX0M(Qus$G_Cbck4l9 ;~^q_G}6B$ye&GdmLL*R&ZrK;}|tu!Q76!q>9 zGgU|DR3u&jw{UYX7%P6qFma@qR*aKbbX21Vz*ozeeNVdc%KcleR&dsE{>$?>+k<<~ zoISQMzqP*M+VAY%^o>=s-Hro&{l==-aPH2v{cw&}f$Cc4Ld^c-XmAGG?Tb8Kh2(Rw zBz7(4wg)q=rTCGUm|mQke*FCT2OfOrmDexrPVdc3%xs$-TQ9Vqf%w)fF2~11GfS)_ zTHCuf$`z-Gwn7_9oss=s@2awBEva~+(=#WEVdgbf@ iWjzYggZX@9MSPiS@0`HQ(56?c=%d!E^<7 zFg-JC>T^@ojJ1Q&7E0~01NSsMYvolwOY@6M^9$aC@yNM*j;$Q~o#(Adx26}C>`Sz3 znGfV!pt#lMp7E($hmET`X!y9g@x0FeTdMlwuNxSxcLc5Fo})Neh_x^t%sUnE;$*1Y zg4-)}u={qvs%cH`jqosohF_}qQaA|w^l$6b1Ah>GsOa`V3hgi=$ZDe%v_1l(ij@in zhjqi=udjsPmyCy%x0ZBA9IZYAnv5!Wzp7+H5I`gkrXu-1e@JDt_(5j6A)jJz6dFfW z2@i?I le4yuG=o+ z==alYUIN=