From a751e75588122a854217fbd07dbb576dc06a46b4 Mon Sep 17 00:00:00 2001 From: Mounir IDRASSI Date: Sun, 14 Jun 2026 11:24:11 +0900 Subject: [PATCH] docs: clarify Argon2id and BLAKE2b-512 KDF usage Document BLAKE2b-512 and Argon2id usage in the HTML/CHM user guide and Russian/Chinese translations. Clarify Argon2id's non-system scope, PBKDF2-HMAC system encryption behavior, PIM parameters, and regenerate the CHM files. --- .gitattributes | 3 + doc/chm/VeraCrypt User Guide.chm | Bin 2404921 -> 2407357 bytes doc/chm/VeraCrypt User Guide.ru.chm | Bin 1697153 -> 1700515 bytes doc/chm/VeraCrypt User Guide.zh-cn.chm | Bin 2283520 -> 2288493 bytes doc/chm/en/VeraCrypt.hhc | 4 + doc/chm/en/VeraCrypt.hhp | 1 + doc/chm/ru/VeraCrypt.ru.hhc | 20 +- doc/chm/ru/VeraCrypt.ru.hhp | 4 + doc/chm/zh-cn/VeraCrypt.zh-cn.hhc | 20 +- doc/chm/zh-cn/VeraCrypt.zh-cn.hhp | 4 + doc/html/en/Argon2id.html | 6 +- doc/html/en/BLAKE2b-512.html | 51 +++++ doc/html/en/BLAKE2s-256.html | 4 +- .../en/Command Line Usage for Windows.html | 10 +- doc/html/en/Documentation.html | 1 + doc/html/en/Encryption Scheme.html | 4 +- doc/html/en/Hash Algorithms.html | 9 +- doc/html/en/Header Key Derivation.html | 6 +- doc/html/en/Key Derivation Algorithms.html | 2 +- .../Personal Iterations Multiplier (PIM).html | 2 +- doc/html/en/Random Number Generator.html | 8 +- doc/html/en/pbkdf2.html | 2 +- doc/html/ru/Argon2id.html | 174 ++++++++++++++++++ doc/html/ru/BLAKE2b-512.html | 51 +++++ doc/html/ru/BLAKE2s-256.html | 4 +- doc/html/ru/Command Line Usage.html | 10 +- doc/html/ru/Documentation.html | 6 + doc/html/ru/Encryption Scheme.html | 10 +- doc/html/ru/Hash Algorithms.html | 19 +- doc/html/ru/Header Key Derivation.html | 45 +++-- doc/html/ru/Key Derivation Algorithms.html | 52 ++++++ .../Personal Iterations Multiplier (PIM).html | 68 +++++-- doc/html/ru/Random Number Generator.html | 6 +- doc/html/ru/pbkdf2.html | 82 +++++++++ doc/html/zh-cn/Argon2id.html | 174 ++++++++++++++++++ doc/html/zh-cn/BLAKE2b-512.html | 51 +++++ doc/html/zh-cn/BLAKE2s-256.html | 12 +- doc/html/zh-cn/Command Line Usage.html | 10 +- doc/html/zh-cn/Documentation.html | 10 +- doc/html/zh-cn/Encryption Scheme.html | 14 +- doc/html/zh-cn/Hash Algorithms.html | 22 ++- doc/html/zh-cn/Header Key Derivation.html | 43 +++-- doc/html/zh-cn/Key Derivation Algorithms.html | 52 ++++++ .../Personal Iterations Multiplier (PIM).html | 65 +++++-- doc/html/zh-cn/Random Number Generator.html | 8 +- doc/html/zh-cn/pbkdf2.html | 82 +++++++++ 46 files changed, 1088 insertions(+), 143 deletions(-) create mode 100644 doc/html/en/BLAKE2b-512.html create mode 100644 doc/html/ru/Argon2id.html create mode 100644 doc/html/ru/BLAKE2b-512.html create mode 100644 doc/html/ru/Key Derivation Algorithms.html create mode 100644 doc/html/ru/pbkdf2.html create mode 100644 doc/html/zh-cn/Argon2id.html create mode 100644 doc/html/zh-cn/BLAKE2b-512.html create mode 100644 doc/html/zh-cn/Key Derivation Algorithms.html create mode 100644 doc/html/zh-cn/pbkdf2.html diff --git a/.gitattributes b/.gitattributes index 1d41a502..0001bd8b 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,4 +1,5 @@ # Set the default behavior, in case people don't have core.autocrlf set. +.gitattributes text eol=lf * text=auto # Explicitly declare text files that could be normalized and converted @@ -36,6 +37,8 @@ Sources text eol=lf *.rc text eol=crlf *.bat text eol=crlf *.cmd text eol=crlf +*.hhc -text whitespace=cr-at-eol +*.hhp -text whitespace=cr-at-eol # Denote all files that are truly binary and should not be modified. *.png binary diff --git a/doc/chm/VeraCrypt User Guide.chm b/doc/chm/VeraCrypt User Guide.chm index 57dc3d25f4c4aa5b2963088382f3f0455eaa8428..85ee5c80c3e5b871ca025aedef953763453bf5b8 100644 GIT binary patch literal 2407357 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

lKEDeY1W z^469{F(i1VHP-MrfJ(rTqvF{zgD^Lhc=y@eOV9k{z)m=|! z70{&t%7IH!emW6d27=fwCN(tQ)4s!Mu3dckb;^KjYjo5ineV}h7Rg0DZZ{N~;K64L z7Pzqm&uSaC-t+afi6+u$@^_N!Zdqp1p0zBN`ub9$0w&ADNt4l>kL~uHrsfs}xA(3Z zIc9szq0hf0?u7$D)nJ(6m6yMAQka#?Q{u^_ZBB{QVC#{B;%xVXpfTbl$wv9P(Ds}C zWXFHw4^ocBpg(5MpRHr1C4iDz!QGXq+mY^yPBHV<9oe4$_;6B3} znwekk(7Cr7%#TjW(GkE$jf+6Yyq=@2B05p+Xpumlt<+u3OX61QEldx=0Ws=<4FoC3 zfYELRzU{H;rH&tXmifedl}_%6wI$F*^dxf&6c(^g5Y~9S4o>rp-87IGoi557dQaT@ zJj_9;VqlKfH62oBFPw0__tU*1lJ94nnFS}07C?^Bu3d@&1euFgZfCC1Emu^)@Bxb3 z%XZ80qvl0~ra=V8y35dksk32%eYChh2WVCiV4gKfYDWbjIGvpg=O>n&Xp+#2CBc^cb%`o;bwUknB4 zYL>3(!?C+e-2Gr#L))ftPrXX>u-H7Sc%ZscrX4aCoV%#F<`F}bd*@XBgHPXnwe%4= z`QK3@5@*NKD@A?Su_&6~$hPB^0LAFi86=^Hba9BX$6clo9Qs1VP6sKko3J;1KlD~A zqXdA2WI3>oB@gJC%F&FUgJfxghpeyMr5pbNWWIw)-KDxoX2eoCmW#WYF@D zt5aYsXOPC`A@NWxaZ@%2&E%gZ>n&Y1+V)jDcFTOp1L#k+sB>X3&{ti>_z}pGvX551 zeG*7Im&7Uifw6e!f$g3go?C1OW(>I`$>mnetg|!tbhGg9_wv}#MEA$5I?jz%>kr(; z3^&kcwd{Iy3TzT*U)q8$&vb||caPfw=6$x80u$YEU^`2Hh6hFhk$~nx?aQ>1#Xw_= zW4wydNvl0HNy3{~M>nwZLk%~1(9J6pG=sT)=`5*@X7b=_-)$=8L+i)+XCXFqcGWge zp>eI9hRHmeu7pk9&$Pft0<|ORVn;8Xi!-qxnw;}Bu?6FeS9|Z)JF|mS<|cC z5)OmSV%q}MtQd2UbL(1^`msI(C9WP$AQ?EDFIM&-1i(zO@lvsr-Oh7~dJEA6Tmb_U z9n_bk=#SBpaK@Bz)-_rw?pI4eFP}@sb5~3dM=D_8dYbYi=EP?^ z4?+`$2U$xX*%}Veo+YFz0=AEv85gL#38*K!TE2rkG@HcRz0)Z>can*K&_+;^6Yayj zx>_5u2q?-~WbV(}ayS4m)b&5t7JZ)0{g+k>-W#$Y2@DdJaG4uO5bM=4le4%vc9_*D z#LJk^hJl$IGOVhkJuzO_0xcSvzP34l)lXq6VjVPufu5H2S)sq*$1BZm^b=K%W6yE{ zcsCAiJ!b0s{(8xLpezYH=s{U=u51CF8Imnf00j(@ck~jclY4H}odl&z)0uSG3UzX2 zhU=KyrpZ`+^uwW!b?W(4M#B!m-*mC06d}SI{F-}ydpjwPYoRQ)E!5~SdgIPI)K(#S z#>-ko8{K+NJiAcSDovER#-=P70$wAAr^jE>X_y}J=o|DC?l|gDE6dlx_JYjUvQSku zkn<{D4qUdQEyzT%#?fZejiEr7!3y--H4C%r@+7^^gPqE)q#Nl2ndM3o&MR8N-(-rg z4f9|VIrqo%74USk)ORZ}0bOIXN)-yN7@65QN%sS543p3%;agPPY6DT$Ar=Yf#qffF z@8FDb{a&N0S|=qF;{*9FLRA=6|>NtC(n`6lBah>51Zrt zy-?#tyvSRp@k&&QJO5aWr|%6w;b563dYI9XKx?4T$`<+yVll4Q?J-J=vsM7kr0vm> zd<~m-k5y+x`DFxrRec?4*0PVvPxT@7)t$HY;D6D-3^Jc)?oI+jpcVUUX$^b@0)>rE z7Y~Bif7`4XljEW2qfs&QJ&7&amiulPrm<9)mb&M)%;WnD;b77Ji&F?fn&S!OEc5r1 z2yX9bijfin)o_4+g=T(eu;(KJPS<3D!TNfE={UfUS-QyfamG45vca@Bc5Ido58RI6Qboe*ZpZy(-l=kST%A=-C4^#}raM0zd-QcR<59u$KfH$`=T z4DMTbGPr=vAzqC)1Yw9hb9-tS`DJvU>+S}SWo{iNg1u;b%VweAFStCHm2Cgc|7B~g1c zPH@Xh(KJiXz?n}wx@px^O>C4c&xt=}o*ASkF5-8%b8uq-%m_*kA0>4dmi^|XXx*P= zG2AsZyV=1xG>$GbT-mm9sIvH=vK^SwbxrY^j_vs7BLKqp{F9jRY1&!J?cD_H@#&g15YsQ*oU~5|uX7GwF{}_qVkH%%e6kI3I(=sqoB`h0$T=It$5Bg4g|E}~{ zF3^FG0RUgagMe|lH&bqpU>atCO` z|0SX}FE^Qo@L>$pVv#jVe%ecY3pxb9yXf`f!`qzYe~oqU*oihSb%1I7ukMboXkfv9iq zO_S_5qkKEr*ZJOAcIsbUPPu(ivYRl+?eTk#-?jhzv2CHUjj5+bKNwlDRi`HCSU_;Z z=nLA85C3t#LR(jU-w1C{H+lZUL&I^eTLAxX;7|`>oc|9mM8&M`5M<`gGU_0o1CeT; zo6*AZH&=IQg)N6?`Ce6DSt}*2AWwCxB%RU&bG-l1H$Jvws$&&P{stkaA;gzXa<9S# z4MN31PYq=owR@V6uhW2V_jQQdq}zimzBlOF3A!kaCU$?|aD}7u7Sh)tai8k?)0Z*( z?OaN@n~nJP6l`yzlx+mfFI^dCj5U5QF(YJCIVR_tU{!z%XN zI|N;WC;LOhHSYM#PlS#056x7+k%3D;X}HXI&r*z*7zNyQi$O+jjjMYN(T9apbZ|XK zk=WYrnc{*I7jyUC593&WE>(+3fDyZ2(GY)K*dU4kxM*ZD7LBZbeKV?7h0iA;BMqyo ziJ$Xp@C&@Rj0nB|cac3bml+8oim(^pkdolpVwlU_6$AVBwH;bV3~?JXvol{f#hk70 z33WU_zjHyIY!b%<#4Co5Kx(gWN5Z1C3kX0lf_*oj2ih9bYAWsOljIg>%i!5-LoTVR zVBZX2Q|$`-v?ARHvU@A5j;peMeQg9|u28_IU^n18_qA3Dx_HAzjabv&`><-&WC&`V z7ZQk6ZDWxb_@v^kDXPEo4s{`P{F)_>l^d#0iSuIGV$D}D-)oxz68oRK>er={k!An@ zgT9*!-k~DfnmuQJ7ttRTU!>YDFVh{m;e2`9NqnSiI?~x_LeW zPnXKKkmw~Xj>Kv9PZhP#{0cXxtt)gZ-7&i-e^*`+!11EV5uMo?m0|H!@L3*tvShsq9+5i z8xB*JtyvSx&}@N9gj~CzZI2JTm^%!_Rv{}>rktHv`S+Nx@-`k)5hR7R4baWjv_Ow}*OaUsISe*YOyxw2#8rw~7`H;5K@DyYeeE+b; zIUi)1!+k?XnD2kb6u9Z|rpI=@*;PQ$C?Zy=tUWWtp0xnUlr22q26pS4mUTCnn3 zcsj}F+96KuY@kpJHM-kQO+T*>8%n_F%(heD;M@Kv}k+~Jo>k)RRu22Z5_s%=Tw^aag!3{@ikjT#@B^83#(-S)@!M{(Ez@Kg+s4-%{L_1IwK#AETl@knVOj;r?Y%^fK; z2ub)S4*SMB+;a;JpP5MY#TbzWo~k9cOw}8Lw+*4kUDxoga)mNr%5JrPTV36EWj>dw z*d#%THFhxjmqiebP$MdGb3^2|^z+AdowKF(D^zVsc#aDxr@ky-W)o{bxj?gD;!a9n zg;pLm#)2B66ij3eDD{}cecZ%^ymtlfVf1o~X3Nh!-y@boz6*iNE}GTH_Tn4ZL=4TU7w&#Q2W<&BCb0fJeI2TUgq3sNFUt6h%dGf6slY)HR*&N8FNp< zP7L#%SuM4%{O7S2^a2J;1|m@4h784eRo;7X3xqtyFG*!Q zo;A)eqYFLjDLd{xhekFAjoq2KF|P9f_t&ZVTm~K;tsF{Md2_aB7ehUR8&n|7-cd~! z1`&4?X1PzG7WV0uBgx>TrMV+`Y}}~smFiXi)ibiJHdEQZruKiGDcTp3O~U8ztT7`5`1`~*@e!_OY3T9eo49yAO|HW3h35%g6Kfukrx>AJB& znAU1F%21IrI#*sFB-tzG%Zw@g+Zv?OaJ1coF6?Tnz2X5*_ovLsX6mqRfp2VJ4L1bJ zc8%PYWiJ*xw&R%_<{m?WsN<%Z_2lcVeT-pwadM%t| zLLz0b#q9$wtDz2CvF8_Z1`>t|n=Ogk=&6*-h6qgjN{tZzpRAU_^B=8YMFuhk&jh{! zH0&U@x1UkV`yNDj{oRX764?dvCC_6!_wo_qe9HTK(0`>* z?5hN|fm8SRrMh{1Zw)gEh>JR z%y;*NbXmkUQXrJ3nipx^tF(3ex?T68yo7duP0T@r(ldIWNC<%Bqb{Q}+>vlM)|{qA zgNn;b7jroI>9e9Ks|u--a6Pv$XtS)@IHP0~S#xlP;MpkJHoQ?aGj)Jj5}5+~D6Deg zwpyf!#-`_>2C0y!d=7X?2uL%fXRKUpnqhp}tWQo=D+m{kR82R(ijJNG;|7ns+6MCmMc z%9+kFd3dVII@*IhEwQ$lHb8VX!MwtdoFqsM%}vT~hErYur?=wb1`b7O_a!-Y)SbbO zNHgsc_sF!8aIh(m@yf)Yysr7irx3^x9BgNip+}Q4zvk{;7|{_DI>vRG=2$z6?uijj zOE2(UE@ClX3F1nx*wd`kWdcgq;v%=s4zr9c5Gj;O1)#ry!bzbG)56c@=~{aSqKkzf z3!t2Jjp^Gy8SSHS#Fq&YA6im%W-ODu#_KrCQjCs5T0gGph&9=AmhH8gta#GY-Dk{- zpzuZPEiM78%84f!NPz&Ydk|gpY^CAd<5Z;9prjY2bZhu9$D0cerN#P`tHA4maE3xN zIl?$L#jHrN+P?zUVjdF$qz;{KGsS-cv-&u#Q1 zQ&nQrBfE0?Zc;vC;+xKL1`}J! z1&#H=4qSEtXrtH+!9x)^U9kcY3fY3LcBtRv^!SM$B{D8C&sLe+ejY0^C|0hp>y~4Q zd2?HGtI`qkflB#=vLGo&u>2TehQ1mT^+uC#E+WXzVI*WFK$ZwvO~dOfu<}4)L}j%) zhoF^amfL1-mR3I}<>x%U>;yLul2kaLk)&Qq@NDm{^o83F3e1=|HjWM^Hv#SM&MnMy zvt!85UN3gwg4-OxWis9o|%-UM>H@e9c zv4SCV2_S-w{oRXP5QTv2E_-?5J{=Jd6O3K8fRsl(3hAxDeKd%)d@Xy;hJj7K=Gm|a zW4zq4i+Ke_VoPFdNHRN}feBk>YO=<0&PU=Xt5kt?>b4v^%HvFkFt~Y_L(WrpIhoQ0 zJ!SrZXH_!@wkJ4##@wjU8q^V3f_S;A+?Z@AjhWs5ku(GaLv}+A*$&+=kp$1zlyhJ~ zH6qz1+BkdWFI^jyK}}o-_}nG~S778sP@tA$PTcWFNQgF$a%1$BYD=>$nZ}KvvnaI2 zQM>+-TL5)mQBP&F8_nM11MwYEGTQi-NBvsMQbw$0{*`-Q*4KdRK3(*$M|_jJKrS%s z74aG^_RAX#R&c65?i=F;t0#-1FqbD$Qn3l1*Rjv*j?>h*N*BnqZSRk?^bJ>z(11Uh z&&T7>wi2@?^Afe&RqI^ywRaG%chxbA5rP*Atoe!Wq^-II|Hcm8U4}=etF$t;AUXHF zVxj}4C6Dc*xfDc>Ol!wgTT^RsC>v@0Iwdh?$CvATUNyfxFenR%c=R#K3xs zlG~b!{b7GL(3yj+z&(;YF&GH(yuOZsmFR(_@gxd3V2C)7qhLz_ z?+$rFPOgW5Ab#lPK^6oNDP(V@Q9v687Am*&h|@yBu=}pP75_%>Ts!74!u@k7>!8l> z_t9D(xqkaKDf{rrW)D7Gb#sz`*(BHU(^)#kNItc2^F+|Qc$wdLx-GRy|EA@mv9$6?o-%V!K&*DvVw3sj2Pze zUEU?!TEz77snCPH;$*!%W0)fWjYvMMuFrzDKjFk;8d$oi{O8)NEt#J$DUP)B?N{BN zCA;OF63s-#_KQxAZ}6ni8szzx!@~p%#OJ&Qk1eHrE@u^Py0vC;a`c~O$G8g!CvHtt z=A=xQyb4orOc||;_9ih%lepEXHrAG*s*2qVawJmXvdEc+2=m@X>b$EwOEKbWOCngh zH+D5e9<7c)OI3utpC*pRFjmtl-q!NM+oopsr*YU^hU4zOs`JA5ZKaXRnoy57=ukx{ z8gbY9<1-Ko=#I3FEgMO=3)K3|`6DBc{RsxAezXZk&ricrI&Ia+d6pAuXL`Pfwk}1( zthm#9P*+56XR*04ubl@2*n})ObH<0@EK%*tkg&|N^#mv=Y|+Lokn}Vay-yk01@8&( zj7s5?x7anLtZDnsUTS6kRmh@pFFUm0df?1Cnm%&A3hF zHogKIkW6XcVk&ZwdeR&$?q z@*+>r(-2&jAPLMIZN&!n zsv#n-sSsv0XMN6Zwa|eemS&lCnh zR|gNg5Ju-wCX9!O8IS*q3Mo^N24QJFU6NUm_X!ImH|k?qUPUcbi;EAR}C%4?;Nvdvs)_dC|NN9f3l!%x`h1qkxkzu#5R0Ddz+Nh}9 zbl>0f5e%{h93080Rj{hAd(M;_OqYlPY7`(;ls}oc38tzZ{n}PIc(~#ZACI$H=|XOs zW9p-8J!W_j8}r_Zf{GIf3xPP%x5?FbLh>-&9)lr@b-RV*5gq-YGkMjLfErc+kkZB( zFQg4l;?>74|}!g7ym6O0nvFsB$Y(wlwf8`O~UYnQEgmg?dWsx z^kHo8wA8t18q!1;{!%_(18&S4P<>leaiW!WHN5T1To zu8@T+=~>uGg?^jL+vL7`cjmVb3aa(<+C&YVQF8{eeWBD@m|)F>&ZZxN>tf6p$0HwZ zQG+|D!Cco{jZ#?AhzHEf+=SJ|J>oOy-d^^Fj9mUWuTjoZ$ABsi8||xULLZ<$ZmfY; z<8!MFa6TQ41)#!KX*cfO!_fk-hY3esKuvPh3n4RV46X9idj-dFTW{V0M6u6p4D zigRabBVu>)op^w-oSOkch~oTjsIQtN>;})q4&&>KmMEI z!&o<)jB}Z-AZ8G^7o2oo#fG9=a>$^6p?R##>+>NV(#t6K7;Z`(7$LqB~QbQ>Uf7aM~c;33LjAE?XCFstVd{%>>$}rwr7hVSe`V!-=wU z#ES$lJPWiWQDKuovic6+B{Vo9@MIc(bz1jwuzg`@*f`KBrMTYyCZ?}28Yx!JZ+Y+V zQ-nezB626P8(9P*`E%27&p^hVGDqfuya#d`UV3>kgpdd2TkJF_kH1|oXraPF`U66g zb`U}(DjJq>B>$UXN`2U{2>nQKtB#MNC&o)ir_c?b0d5@ici8bxNJw5UpomKSrRrR? zfyj37n`p{LLLLF{PX%}PEm8 z@|Yh^sL4vSAFT9ScaAQvHnC)~%9ea0=_xaNcE(C^UFXs98T^hR-O-6L-Q}uz3hm|4 zPJ9zq;VG7a+HN&pFPTo$LLIbcxUgntYwmklGDWbMZKcO?^q#H^PMXf!|{thHGXPJJ@R`Zh} zH$1Ay6W`91$?gFIH3LBS5Nl8+N%@~VqCfgch-cD)1TcUjByPkU`gb4tu|<`{T7i9$ zqsxko)0X;T#rUXk*HVQjeS=n>B3pB*A$le|QluUzgw=)!WO=jHHyURWVWv0zi_51J z3v>1o_%rglPczCECX8MNZS0)6nlLTAnJ&W6GYCbPS?rL5;#_!K+O%pNHNgvRowHn* zuJAl;Vt2g3ulw3z>@>%gUHZ29eukdZ_hrp?@txem@96vQeQ5a8uW9ssz&!Wg2MaT~ zv$t5kdTztJkAd(9&hE%~NZEwXiN#S4aRcK!MZ@0X*+I+lXl3x*#(m=Yea`H=R=Uu< z$`=GnxA`)jIWQQEaS6Id?f*TVJRMuSC*^-|n z-bIInep6Ecunx(AGeIo&^Q8+K6nJ(QHapA#VDSG@=>jTW{ek}UB`0be@b74Qg(sJU zk#!2Llc^!as_zU&k&f&wo;ORn+mLO#Slm~$V@Dr`Y&f94nH@-rNZaIVTuqLbFS7iJ zr|nZ~((_2yk%&quyi9rNJ88s~gun}LxpoIRNyk`$kf|3T3%DZKA1TLepg<&Q$>9J$ zaAgviXNeSdZpQ((o^{`zALZN@eH{ldO`N`?iwCy-ph&`@CzNiz90!as4@&Mw z_R5(_4ct25C;S~$d;Fmk&Kr!43fwRoni+5c5DUI42vuvyV!|W9LCT9E4Og2yMW%?{ z_oVqj8Zkpxf+UH8@#pdK9m-~>0vYYZvk5Oab@M+*Zy@k4Q59BNd5>d^5ep+4UMsi~ zZU9~!Vgrx_&spD)lfi-cF*+cF?_X5KOa398UU5D~v zKJumH8SSP^fY$jS_83TxB}!nws9Meb{-K=I{t6S|zMij@Hhl#7LV`l9?ch22j9j>N z_TtmBJOnijJ>7q)f%0pbZ~FxZ@~qv;FphMZ5~4h)UANE>jW3jvhrDNXUiqeF6X zM?vNRKo9x>Lij&E+spS~Iwzk6e0_r@qWIZAWbn!M4Iqj5M`NG*_yEckLo4c9<$}9S zK>RLIW4>(4S#O)#1p(sOB;|Jd4xQRVKNqLlKc#Nmr2`PW z*3jpqkHDhIKs5bNG*4*3J7=m%e=~;@?(?*Vs?w5ssp>Us<2nJ>;1|Go&qH%Y2!zgYPv&@8|#D zMI?PcP`9UhQ0z0s3>B__n2+ehM|X0Tg1}s}TRW&S$i5P}bG{@!_M^sz?#WE)^HGoe z6C1N>@Yvl67P^)JVz-7I04ID+^e@b;&qQvYQ~1rF-yqQK(e)Gl)AxCz&nz0(U}nMG zFbV#D=3fFX>FEb`JvDIP)2sieJ+>P>KKsHFxbr*$vXNx!+vPrh#4X-@ zKP7Qu-$1!Z(~veXK^u79-kttIpC;UXj%X@~PgELrbwY+267eB?-jwOOr19YpKB{jup-|9Uoj8WvDl0rm%)f7B03p4$G^ za|Y*gq*48zkZ@n&U94CHC9*29Yun8)a*1BtY)roH`_GpiHlDxt{y~+%Q?SXf*4|GJ zvs9?TKypB2{_d;8y>9RSI`^F@bY&O153=#$jpPAmOPBP!lY78q$Hlg!AN2n|v>t?a zdRcvDmthH^nE$jiO{QFKu0Cxkf^!Cz6hX;B;yvArqO}+ATa?N&YKL{iiwcc#sN%rV zo@ss$0qqJ;eG>3y`A`@?^8LobW<_?vTaP6#kX%VTOC?7Z4Jh2MVMJv=RNq3zRr==Q z$BUXm7hh$(KNDK7{6Z(Fj|?>f>i*n_-`_~Y9}gezQ?P>YBFRG{1pQ-DN75hm@$wq| zbD1bDR_r&q{66@vkVN;0`#f=Bn`aejRr1=9J9Os{NRR$yI2J}y* zw?n@&HG)xi!*J5S^{SeHxR@&St4XO^Uw)b+L30=xEglHE_W?Z$to?s@MA!>VROWpW zFg085A=fzm)&EoXm4oEc_a)?<&LBP?BF(Jzv93MN{4lEOPx7`$L-6uHZp*0s(PwHj zC?V(*Eb{+5u^!)eZ?mANzfaF* z{`1aC#{QNrp^0i&xEj7Y=X=6m(}}^#fg3Muy+cVB;w%LYftZA^+h(pT<)*W4>!!y^ex9hQ) z8T#pc6LWKOO{FFi<%6Nqde3r~+r70brc&IpO!3P5&y7F-UutH>OlgxFQ`necJx4|3 z%@e{uXN!xo2_GJR!~b;uxz1;KmAnjoNB=v*rlCCNE0gY0nglQ}jU5farwS7(1YNns zLw*^|pm|uHGo?Ba`~TsP=q;(>d`;!01Jdj5?Hkc5s_|LDvwfx22By| z`mL?0X0{wdZpoBJmjT!5IDWbvmy4Nnj_tXy&nX{khOEkB2 zsevWv#jN1xHQxaF*RGt8j=QNtGId4bCUA2U!Qc=d0ur(a#xBT*VX|1DL1SyP{f@)c zx~g)n?7DZS4{rIwzSo~5o1x5#4oA{x8ueT?}81@ThBbKkc1` zB8Eu;puJzUxucYP_UfY8a7b&i_8b5!x&&5zc*nbl3nfl1g@tRCm9agJ>COJdri6}L z=FUmSrn_U&H=2>uNhmk04jLHseulW%wmqxKWN3G;AhzPZ#Sv!#6g@@4Z0LdzwYS)nG797m# z%^rdjttPiDX0RC0lTW@AvkQ#_>jun*yJuwdpfx5#`^M#IYel)5s3E1t8j6cnkf&EK zJnzic8N$AW*cEuVj`p1o3B2IrOvm9$Z+Fog`?R5rEGt)$)Fv~*j(j4yETk9len`AES z{fuEd+o)uC54q|LnTN75)={m2yHQ~LNzDR9PaGdRM5-OyLblUW!XUH_!GT&X6#AO! ziD%caDWF7GIea%2wq3{?LXRG$<}DIs8^v7{YYL%0h&S8F%XO}u-^tZakr-hZ+0xz9 zWhHf*@>{l7biaGIERD)7e7!rQi>|$e2_*Ekq+YQLTEUdAFM|Mj8tTU|5w4Yj)lr5had$zFDcHPoAsU*jIf!cC8izQmP2*v~y2I6AD zeE_OLRlYK@*E*>Hw&X1kRX)&*-aiuw23g}`sfSv#eD&?|&$zC4Fo*}qrlvcVL*`vK zlqouK3){q0RKYIdYnrk06IV52=OH8&U~AdY&s?Wm^#TR;3Ulb6l307lm4|X5J9EaO znrK#hv<5;uBe4K32U-gq z^WL`9psv;HT#r4qfu_PGvWSab;{=^jION5L(4`glX?P^s_B@@@&-Mz3nw$u+RYDNH zWNIyR*g;P!|NP1%_HoeROQAwoS;5i|>%2+lKdhlouHq{PAx?03~(aEeOhrl)@ zC{PE=N7;59-l$H28gLm@%v{9{9jHCy9Ksv{b%^;1Gg(rArHH!Jl~>EjhAbGeE1=2~ z1{rhY&FHgFDef@mnLR%-(~+>l+L!Vq6S8a5h4?co7K(V=_qwR$QxVriHF=iMG4M8nvF zN4&zwfJEO$gP4UHc#HRRyGGH!QId0JI$lK%`I+Y+)aoTOCPl!H;5IdWNc!6#(S`>ZNfv)NzC;o+#>Rh&geTV zHp?c`k-3=|moA>80oD^W&&kwevqYuTZy9+lxWmz@lCD}qpU>pUgko1=G=Oz}Le{27 zp;u$H;xs!!2gbVf>(63o<@1qKD`>c^S!&akMzU6!j~u3=u2K@hsb1@;n6}MKSC%MD zuFgBmpwU+VIY7q0*em7iAf+7g8A*#=wDBca@l;s_ z?sB4&I0xBdM#Y^8({86+at}Xl1VW@(`4rmaRR`(RL)jDVVahI)=xaa6%`+(4`Y@sI z+#F%!8z(F+eSYZXr-e{k+Ff8Gr0AG-D^>7^4}!+89!kk#qwZ&!zc?*>AgT}$0000$ z0ssIM001=rR4T0{R$+@4r$w~XD?)u(cv{-`Pe0b8gpgJtc@X+(T0ha!T0f5#JpK54 z5lvMU0GI#(0}w%y0$DUyRaMQRXeV|ixoBN9PSFWe1l?Y*y@C@|px3gmXGlS-LPT3GMAb4jkPenCV*nCoMA z8`1BDY6sA2v0*m{NOpQtv}Hni>+Go%O#trL`9<9aGl>UG-Nld}M{5or$(ZyyQ9HLKCI$o9MTuXh2cgD+z70%!fb&B1oi6T=n2^t8ua$^Nj6?efAb zGHx(|*&pwXhGJ702)WF85_bwY!1jdKG2r$ua*vhJvQi^YHkwXn?HU3fhck^ZEC*qg;e3wt(g3J&}+lk2glL|A}*;{n>>E-jA7K* z9a)L)8R#+WTkT-f$`a{sOj>} zYJ6AB_u9^5X1J#xrgmGfvET(cs;fCo#+*fR|Auu8S_1HdKlRRU`Tc+i{~I={Ou&&{ zK=8vpbq6x3qKDlw0;rtVi41kc{>DH9h6}ERpz+4j9q;)sa=%pgE#QB#H!fBj)ct1CDkOmdITsTXM9m~%LBkSh|-Dz_h{34R6YKV@B+Q?qT$QdNI zDR$YSFJ)NuFt&o$-e4>-^aQnW3k-5>KDpJZ>&VK33-7$h=8f~$AMG4Svg^&v+N+5fp|sQyHJz$}CU%GwMYl3mG~x_mN~F-6r&52u5ry0b;HKUs+E zVa#23btQ&ieQ@+(TP=F^vM%MwPh8pk{d~5bS#exj(6#Oz)VTaZVs~*-kU2f8B^szM zSh_MddRSBAq24EvTMpC05pU5`3Vr&DIB_TBLH0dL#tgF3r%R_B)dEAc^L@mcNT{E< zsq~Bh2Q(G%ZTtTbaA)rq_uO9n->8V`p(&Z2*5CV)u?|_euTYk`ukKG}N?o^KaP4IHE&=~4`-w<0pZIJ0{^!$L@rxxsI-em? zoY{CyMIVJT465m*p%-oxI1}Kde54Bgv}i(1xgzV2awGy53_ger$6>-P{D zoM>OuuAOCRxnRUB#Cn=&qUxglV966&_~E+7(b|xiwe%|!276Ocn+j*G!u|6GpYC6Pxwq9a+eu@278?!V3L(?hsFDE)P2J!QO~ z)Xd@!%+*OQNiyPZpsz3&c7F3*lyAx>H~cC16oCy(OdU_0*7BndG|zcUl<`=6dE*_3 z8IzAFj${UKl6YQr5#Qw42_=j!O`)j&7M8KN<-y#0!5Z&f^zQTDS;oiygG4w`>Uv>eZiM7~E4N&1S7CW%pe>)|=|4h!W2QP#sQVCMBV0- zPR(7J|e_x zlkx4wySLM@#b+GX{eIn?QYtlUFSj z;rBARhLH;^nTZ~DP_FvExwIPT{ZL$aq+DRGAHv|?rI>}{h$-wN9zw3K+^Ze)>T7xa z5y9ws8bXx68-;d!?f*+{bw||yDX}ptVrv}GtkUl1O0u#}^>*bYE=2;qV*0gR2k}ft zuhsDZ^GKk%g^D$`r7R-5e6Sch2JLc<)%L;NtDtX9kKs&zJgiy09ttUc7wYas=rU0H z4G+28RGrXF98@p8;X~MnB+J;VqZi8DCBlyJ8JD6uIt3EQyoXAqEPaq-?=~smy7I4x zT=2Ecvd^01tKXjzSL6Jf26*G5h5!t`!#OLGz5j@5qv1U1K_z+fP+#hyX!Cz~6n|%6 zWp=2ce3^S-6vJ{O1HGM*vl_plI)^ZqIa6RUTAx4ebr{@S$L_knclF(i;#~Ch*?qBL zvudm|dQC(>Xri(Tu^i1Lg>R2_%4!rCWtXo46!BfEStCVr{&na^S9FBEG7m}-L!U{4 z?-TmJNY?caWG(e-Nn&@&JAWFHRl8_}dc#9?z#;Jia6P&0t5z z!y2&9k(pbML2t!EmHoyOI z2rRt&gk}VNisrd}C7V%yccbdD7}fVT=)&!Y7cn6`O*R-&2cAl7#^|bUR!DK3lllgW zX5vA#T|-THCWy-*=dFx#wFJOK z|NWJu4}b=^Ckri_CfenZDO#J~1p~ymbPat`6ou*<_DvZR$M2mVvgPJ#%3!MhV&dC> z8gvtWy9VvZKk?`YT8-9PFD6EnuVnC{Tc`~ku)J&5T@j$@yiN!v($TeK=?YHSx9@93 zp-}B=)X~Z}n{HIOSNfT>PD5*hH-BoZ{Z=rISZ;SDM`r{%YM|nNzru$(LpcFeP5jCYR}P1SfshV)@J9#hoU4gTR!3&5hhUU_Ay#K!(p{)b`r-$RPV7rF4qK|9I$T?En2Z^BTm1>VChGnOjr! zXAui%vyLzg+|(4q9vZU`d9g9zQbqA_-OQDvAn^c8(v!7i;D0x7?&4_iIv30BrQ0Oq z%5FaMrj?G^{&4*cE&3W)j?KE&dvt@dU1ZJdxVfk@ACmcrD~h#sJfD5xzxqS1p#C$@ zP{mrE91RF=apPI26nxZy$82UD&`hJ@ad&kPBkxf8{hLGe)M$nicS`t|=CWEfcIr;Q z=aDWyXOo`nxF)EV2NqOX^M#Y_P5cO1o7h%skzdDigNk67OOYq`a{c#1uBq3no>UOJ zHe$*DiYeTM-jxFehS!e+r>FU2|Ih%z?LMJA(h#s52N3kK0}ykHNew)Zw&byOx5$}h z960Al5U>UNrv_2vRMbd|^^Zo*mIYAjy`Qv%e*umEKu`0YdRCGnmIXb)O(?mmJ2?W* zHBO?Ws;tnCpNfk&&TDmEmW`^0Rwym?*Wy50x&Olk8_IZglRqKuY6OzwR9;j5_UCFr zxLDFhF|{}-|AAg+eadJm|4f|kLg`|U-Tz5Zs|Na9{baCmw{PKJy@X*>Nxn(t2+?IoE~lGrfx6edk%$^ZsiI>(~=Lr~a2<#vro9mP7%| zj*Dh)!k=iUHuGKHusMi$glt+sMBc3(<9M_E%GJKZk7H~9cej|x<(Lp`^?XC6MM~q} zk5|4dz{~)vMi0L+-D=~|E(TGl5Es3te|mpqv2CujnTVbHS{e}|55N-d4V@NEV)KF| z%d~k+^glT7bK(sv%WgRfta;QD3NfIJP)@y2y>`i&rT zi5`~!pYs>{Z+)lgAH7=hy<=n?oktJQrO4lHTKA6J5jy-H>EXPI#^2-pY_0PTy&V0E z_L1pYw11XU?Vzy_{i3S89$3#U8M$#o{~~W^^(qwo6nc-fzuD^R{NHpr#v6%zKloFP zV=9>cjz8G9=2iY6L_XQ8wvx1eEjtOc9M6Wm>x(*k2@7eH;FZXcSR=+?qEVsgcZneN z(_>&cBH}oInj3EbTLSujiFiKEW^Uv78@1N-<~b#BZ2DKM34hS0BNk$>ZRgJyoE+Nm z#T>a}{QeUWgOrx6!Gry`5jEc`TfvLRKFNblhmW@G@`FZis{zy00g|Htftu}1S(B7R zd?^4M%aa`oF@X_o`wl@{qrkd6pxm4COSFk-2@U-dM+j5janlusVb@scF=vbMiRykW z7S=7^Uq)U^5i;t>yhP8EAopEDOwQ{ixTsdc?rIq_^@-r|djC==_5L{``Y-t<#&Y|m z+Y#V8V|opjZgG1w9JT#;k606vo%DCzI8$u82K>8U#V8Ux@MM5;48=a?%;^(yD}|&- z*#&Wv*fA4=Vy=4=F@&tBuNNlk?Ary-j(Be*n(&?9#z>S8W_2L1`{rdOot0U~AEx81sj$(+ni!TMGbb^fle(J&*o zsJRdV=g@ls1j(n#0`f+g_l<$TcphVC#Gkh1zUSjs^mSl87Ro3ibtQ3vMZ?1DXyIxz zY6Y$buQ;ghtXJ7E(SATBIx`bkMB=JdO#_?5szzeRL)FhN+J=IJy1J(K5!@W18A*l1 z*J}I?6$9%Ay^C$$9~o8!Foe&h1maf{iFrhbyO{)N`K$$LKd+&J`kHWke8U~|p%;C{RUcX{mj=9|Xe^a}~TeY$S{Ub(&wsR}D&53;JXKuI= z`_$hmgV|TjvSNlxKP9%^3aX8{Qm*iM-c!t+awp#N8S{6fz*L4dWG!*kI|X)~uI+V? z44EGAg2&m^ny>&$pi;)CUYkx`+Hz(B9#$>#%$OoFNobc&QHQrDtx3Wd8yj&D1~&Uw z;v&oLU5*nl!>97QV;i<)u)k{$v-clk+_;O9cFiO?2GU9+&=Nm1mF0O+Y*SCUcuMVa z>&zN|YDZ8j#*ARee9qgSd{MA&C|1)3RG-K+`p?I~eJ=yEYX!h#h@l5;4XWO8&pU=lWQW!Sw5& zv3Mu28(t#byJ4pa=#65OaWS3%UFFm18daLl-Tdu9f9c^h?DMay#Qp@~qascX28{s-dU7X~}A^nZ(o1RdJx}l4jjS48;X&5^&!`a$qC$mOjJ-y=Q+oNC8 zYWGB)byn^SmI?gbcpg1xE1OxA`l3X2`>mP=NPJLuL7UV=-V-_e|B7a3&YfB8C0H?{kseX;A7d5{y z;+ePGc18@cD&`{n zx~_Pa#6_B{~kEoK?ihUWBHltKY4|)oTBVt7-S1 zuca{*QALmwui1Z1Az%{Xcy9f8%_(1!>pe1r$oI7f5mdHDrLuLufi(pwc9I@3d~P)r zjA_`Xl)k@&p`9CxVzZiom$5rM%5r-)pH8=7H`E@_+0)E|uxndv`gL~TQ21#QW1IbF zm#^VFYF#VH{tbDzl3EitzKa<2H)?nBjUyLg#CbKov@K3teQkPd6t23+Yj0koAC(d; za4d99VIty2ViLSGbxUynU3r8-<6uml8D^>&hc<7MYG`-3Dx}0eTxObcD56tDg&f-) z0{dv_uDl-B9{!|xo(u)AKN>hgfC+L`_JyV7FUE7&Tv-7Y|w&VFo z$X3HkeZ_gV$d?pq(@;o3Ymxn?vt2oSbHG7lHOipK2F z*_>yYuPHG$nKT-blp>1(iRU;cR5${QVr4JH;C|ggvZx6ahY`|$^ z%Hm2xXY9I0J{#Eek7{Mv1!CF+naUr{vs?D6ejanyl>L@~TK{lO+2QTiz>6NRh*~w^vzgOcM6f?)ZGu#h;gNCeXY-C{V7#&Hcg4!oe?w?QLMG}c|%hp?iRLPED zJxH#lB3&TSYImOddj~h#h>z&))esltNcZZO-C)BPvtWxqQ0W;H#H59K`LT5+{S?~n zKP+oX?3k@isn(_;J~h|%)u2mx z{xuI&c<*`PRU?djWI_#*%zGQkVd1fldbXZs-qr7T$~s>k(6^-nNalK1_v~q&5zTqu znX*^<@mLhw&HO)uK(&O;rrgxZ9N4_eGD`tyvR_B6spWr}Y?&9sA(hw{O2E<6Z+EQf z6Hmt6p{?)TlfiF11%1(O(ksU2bT2jm3GWV>!+WnucJ!0_A^$miK?@eW4>p)A^J$h$ zn^~c4Ab~0Z5Ks^XrZ587vuIS^;UXX?P83b_M?zxnM2)Z_ z9a97O)RO7qIj>mF*!w7(*?f5-+jJDrtmQqS`AocHJmO}dz2SCK{GP2`R{$Rd@xOtu zd^^;p8!gw&mju2|Cv+fX*8jbA{Te`>nEK#wl~fHudseP8B%MZc$zaH-k`@a&&&J(o`tWMqG|D*P8<$09ABZYCo#S>^|T)8v=<&SkKT;rF_14BRu=;@`xF?Q06AT{C_h3_xcLbQb-% zI^-@TM6tj8JWZ+ZSqSb^q22#MkZ^Ij#eD3o%<%;VX8lNSO#@~@9x;D_Pom9gGRh+x zoPU6~&>ghw050G&B6?;Xx#D%`5EVmy19WFE(B<=Y*?{MSzYoisgIP}AM&_qjB-nLI ztzSAG|McY-Ot}%AK1q~E_?&M2U*{c5j@jSvJf)9j&{O+{150StaHp0B6&Hv9hIM_)+n;Bm=dfGB}TH$4_MhOQNnsD+ZpB^xx zRnx^&TiHVBM9d!~(0HZZMm)|g!5%}4|GE#2Lx%93o>53v{z4&B7CBg?)914_HZoi~ zd=@wc7UTA%U`W1k8aRpj^;9>`%e#l&h=-xe2sE3{-r-dG>wkG2pvA-MoBhA$LE=Sq z+1|jc>kn8-Re2{JrqstmYg{$b8?zj$L|Z&}2WqgL{z&O}-AEJ=BXNX^Eau+pCjMo? zp9^pvSv9C;SY7|8v{T*EJvAUbL62Q16!_21cxh95l>Iwv>&fB&Cy6;t@x&AJ-{>6T>w%gBY?b!FO{Gwb20$?CPdZK_$fq5`9Wr?K6s0b++e=@AN zCEH9d)bE^HX(EcFRfJiHfRaLVistajU%r%@AU=ErenAOgDq}fLqY~&11rNeKKVDTSoYPwIba?me%Q>b2+Ha{fpdint8N+I=|1N4SRR_#?p ztbd%T7zcZ&w{{ui542F4Xsn76$<>ik-hm>N$7_71G^ubYSa)8OrdW>fU46Ol{~3wT z@M*snowKPMmHTOB^Ljp8=ndLd{$0Smb@=l|27Yd>UL00ISnQfz->9Sc4oKRy|116D z+Lox`=vN=7B-iA7#0BsUy6f?izdt{XneKly`l_@a9cwL=1;|5&Xg0?YHDC>-+rBTk zx7Ne$k8HKP`W`^n`LC@i*nd5{s{R9UR`ETVF;sS^XR)nB)ZE9Y?kKxQ-+S4}oESGW zJngcMvwyWNFo`0)>^{>5QC99Z%Q^xWA$PYDGbiGba&*13b*%xZn`$l+SZCzWzWq;P z6GHBG1Fsu{6y(NPr035^>(wr0rX4+xg5ycG^3-RM2r?qq5o&9jN(+`o4{~FVc1-^ihOCvpD~`Ok*cXkNs@(68(LDSrCp)|2DzRC$QG8h_)=XUch3Hj0 z^FqMK(6|}U0NNWn7!Q|kmYVsthsXMjO?iGAvj0J}l{l7s=k-j-tH`ZK_Zz0tb;Q&) zn+|%+AN8h;E#Dyu>_M-iuC0{Jiz&0|f+gE}t=7Pc>RBV=pFm^f7)OzvxZO9ccf+Tl zC4P+$Aw-HiDM_n+I5!rilr=}gG$z&!=n8AvpKjYNJETvYcO5PP=0kOAoB2djm{b{~PiU?ZMl9~Duzq$%kY5-LAC&b+XoM*G+ z82ze(8axC>svgD#ipi{_N9Vsdb0zQM8DRqFl&6cvFC(_TetqGtZXl9S8qt3(_R^-X zsC&&8=jvhl@qLgSd;Sqz+j)8C(4agt0EN5lQyF$D?~C5GL@8{PM{jDv`4v_2iN-NH zNB>7Umd9iqp8U6iFb3Jg?rqLcck+%;c`)ct{+kx2^gsd8Jr?rkIXW5!ydVXUjO$xo zMoh?;Eks$Fw&eEQl(#;!1N%m*%FN70WE&nl83O_Shm>Rm>Ojb&N3J7$ZGj}K>xL-ft)dWshW?eWa!!J>B=eJt#zTJv#RAy8P?Cmd7hVYE|kl^7GBD z2N1|u)}3Q^+S&Sk&9t)j9x}4E+D5z9Vr{i z0}!`|Bqz)git35!oNUc=ME6=8CFyCIDt9MB*tLnO@}>IWOTB|_cd~v(tP%VP(v_Nb z6OQ6Jbe-EbHl|W1p8@MeWXn0@wx8z;`$Sx>SL6jL`cjI#+jAfWQs)d^PDJN7^G}`4 zpNQ5~CtZZ;Crmr$UcOPj6Y&0cXcyR+ecJ7{jQbPgJ2X76kCv57S8mZDcQwm2I8(%Y z&cs@9ROQP5n(t}mZ+xT@(RAB%pS8$2?sjbirKKCcqp}o6XTESoacPbhQ|7^;n*=X7 z#&mY6juK6$DZf5CWvRoMq6D)Nf)>k zxf*AXs&5U@Xifecqow}34;J^v?5O=f$+>o$aR_O!AckJ885%@72GncSUSmn|JjIzm ziVmry+jJ1w6Q-`XX7#`kRNmNH=_z`e@LP6v^j)TFWh&b$>-_Sl$Oxc%zO0gTwl9iF z^Jv;Se>0_(W!r5Ucv&qm5Nk+-JdLK?6{)z6qCe9Wu-6J)%E(Pt97f~auZB>b;R|f| zS(l@*;jV&tD*V+mmtsb42+)#=Yk2;%_EWEdyw}=Q?lGqh$B&_e{m3dM~X|iq4|-;YHjOXW$3Lt`F*iv&94; z*~2}q*wBt~*x+r)tI!WM<_^)-_=f%gn=Tq2HF` zmA2otP>w9a8S}_oZvWrl>A~uz6Be@uu(U zU5lx-HikA5)jUMS#rW%)${VEO0JDXhsFTNq_I?9mkxJ)B{%d?hJTA4aU;|7)!(6%aoJhzoygPZPVPNgkjL@@hNcI4?FSb zBk{`WB+@c#vQ9gNd|-Mxtwb57`;@1kZND>9AMDEY(sy}dtqdm8tTi$+kzQvU@5k9j z+r~!TF&m!51N3zR?X`S)%WJf^IxpJX_Bbclj#`Q>!^E6CvDu29!2=n#%BD}@E2;KX zJUf~v#}qZXGPjTw#|Qyotx@m_EdX+JXZACJgDE#($BK=M9j6n&_~gXGCZ@ALBf`IfTSEQDF*WvQ z-UtSdf2;a~KVDmPY959cxkX1qJGzsq=}+#saMpuLnQ$ESYb^BAtrYC(*wtEfICvOccC~{C%N?YR8@-y> z4Ay&%RtGU-E2g|kP8d!urga95p8-VC+dc>Dy0cA-&a=yIQ^z>W@@=yWy)FKgTY=;A zP^CBzH5&X7kX`(~Gt=B$%TJSqQ?}M{xxyaWdFy8jNO*+0-Xj0Z$sotS;&F~4@yJ0r9;YG2N9P*}Sb%zgvt z4FIqbDFCP-q5lTMN-y!beK_vj3@C5I`jO2tl@@*krS{GUNkE?P2id}9|4j6!mzbXnzUmbaNluL?I5Nw}Wf6gd&&1Iw9O z#Iik<`v3{H#^}0aQSNX0y6E8{-J`1x&1e)&sYs|oN=NdeE>lgQb{mT=1vJlwd7!Xp z!rFydGx(z^e8LzLMt$BCuXLK89_k~=4V>n4y&usQ`n!$M>dpPlWKScY?4k}I+%o)Q zpN?%`m4)4gnK}w<-jC^yJJnVOHJ1%X1yDu;ua!;fSwa}aZP{w-0KCuu^+q+Z#>&}j zmSpkLL@y$yQlPRCEHSu}n0x+o9bC@&^MZJrpNM*guzM+_nGAs@Y(TW%YiKkvT#EUE zEed&!hdF{eKMpDgoC7=z?r56B7nkIWZQGNIvSrA-hFUFbMDL1HhW8($NxA6~6uh7251BEIuG&e9ShVUFY+Q(oSc+wg zG;f&x%-P$Df!~_KAAcHd@k}zp*spZh2>BhyIgOx4V8}|dj5s}iZ{~>^l<3@SqtY>l z1mXg6fXP;j(H@4)qNf*!B@!?VuVqfGen|%XCN}l*9}oKUzZo^pLV9$p84+P-^x@h3 zDGe=>!QgYC`ni57K8S4?S9^qwsLm?3qWqv|0W`Z`|_ zBM$hHN&w{qfBTBA2?kIx)+7j{GD|&gJ8v)z!Rh$4nVV}hwf#G$c_oTN`Fg29S3%TB zT2wU;$V|b@Gn+No!?kJ?KXF3X3mjQKwGBQYd< zklDfhvkUNDtS>4y8=Zka zaH~d|ZS@$bIjCsj__ZtgT{*~gF4cR^cAi`B_xfYIr&XCAV3q-d9wUxt+x2INS*N)v zs?5Vk?p@6GH9K5L@f97UX7{;%f&&o7cxLpMn618AY2M5p0sx3$CEHJotZ*}U^g@w6 zH}btkseOd@+b@cMU`{3@3yQp!@MZDa5#*I&ss85y-ooIIHEjc_kdUGNoYB?yMrfd< zDyLn(YRv5+Q!g-!mQB-8o!C5T(%Ualw!034$-aD-pc6&2Zf1v_qG#)fF*G0Y zxq)7gq&G=vv>+kFbi5;#hZ;YW{-L?^VmSg#QRUf5!cTNq**6s~prL))J#vt#SDdh_zVV28=5iGz`Kv-pMkLNeLDvzw65d68QNe zD~O(_{?gw5Ch?l-U>7UW`7C+O+`${!+7wSPqPk?)gk$txh#8C3Tc8l2JoXbmYKJIf zLdKlv$eH$57`&>P$w@fCY-g`m;UOZvH)=kDcreE!mh$pqHj@89l?OzT*g5%e7<4(- zBXOmUDNJ8>NNXuZg;$spFQYMaDX+>Z{!fM4zv0cS0$ zSwxG8RD><146EB@4gZcY4LRhG!9 zbRoQD1VCbf1FWKwyiwz3e0#x3w@5{v;nL;6keUIF!d$et#fP~d2Z$r4O|8Q28|=cGVK*s^8=vaThrPFchj09lnx*-ns4QlFb|!wD}FD# z;{m;odn9vLX!5mdwl3}K@UYwBBdWwtZ6_rC=&Aw+C5S~l@Y84p#+_$aF!na#=t#RP z69)z!C+_qY5rO;UP9rtaJA&rB^PpgU1fJGct2A!%HBK;eg!(g!Z~>RBa^s6PWn;QW zr<<^i!&T1EL45&fJlXEsuyLYwk&WE<4sOm) z5VAXwf|(`yEGBd2yEXHFUUo6&vjlpRPb+L7wbtc6Gp$52 zSw(*-c@hP&M#G0cqRgU7d5(2R$j|O_x=T-CLcHC3DV~9;Wa`L=fQ_P$=$*2}Sg@Ng z^w!B+8dxRh6tIjPz)BI@%5Flq=5lF`e;>)Y{r+Q(TULNShjLTKB@I^3D;yddqBoyE zX1JlrlJXIJ;Cw4m-r8c}gF8Dw-V6P;{6lg0zz-3ly_CoLD-QYh#lM%uqvUSYfTC3U z8tUbHY7*zuCQd$)oET7ctFTWZ$$k&$BbV{d_3}K_EDM~g#osdjn#`^+DJE)+j;e77 zG<11_tKmb_`elXPX*|8iV(2Sb(((-@65?hfHGUb8MaS9a8{N8DFXHY=KKBqBRAtks zou#^OwB=mbx$=Z>Gq*)wd6RPxPovsZ_uQYNzOCq9coK#7C*Pm7bl|;ic|^yq^U6qe zLmjT_GOfq4(I~!@>{_7^V|~uY5TW%)&a6kHBEzbZ%i__}{HIuv+C%I5p?BHze{Il;X2cSd^LH5H=uA%{ zFUqu^ZA`%^af}#MxX0TWucXZON3(nC+xb`hOUGigSIHDr5qf@$M=$7B+EZ@aHiFyS zQcaG7@KV!jr%|vs%7fg8q*T;v>P^OUcD1<1nq@D;&_`+lVgv}nfO=JUP9LW=pghoz zWJXoj@>iCe^75JLQ>N_2H}AKNRO0!3nq+6kP4gTQc64F8ht)5&G{wY08`Z>zd1LB>iM&MVsZC&)rYSsQyd;UJKcj4cl6wb~I0a zFQKBxerY$zx2h%4@RyS7K`_?hEg@P=pin0 z{4cd7Jeg?umn2&-;;?Ol?C8@{|<9IpLX%9by{Qr3dXL#zuA18j5GTz~a|oGVXU5Dbx^=)cj;c zL^tak>tLZTgs79)&0?F<(hC#J9_A)%a?Pb%_+m+GTYsUEw6QBYi>!~f_p(P-uMf`* zPlsVJHbd!F(08h})ZgxTJma!f<4=P)z^1frsEMoWg6b>o9I#+)18-|!j;K|p%(-Es zk(Ff(b6VE?S{ozqXilji*dE2JzaTy9OfeXru|o6Me;vyJN8Xk7-UxNQ7Cu=B}Fm~Hs!X3r+Lq8@m4qK(TLmVQtZ*C>s+caO~$|nL6xVyNL33jiPWAZHQSMl<2}Bu zRHnNv9K2(vX4z4d*bd;i1acz9E8~VVBKke%1??*CDIM7}zB&7}!w-^FC6*nO?=G)L zq3{1k^Sh&e>?Gv3KNvCh#2qv4PA>3&@2P2#8~|!$8z21Xzk1vO6jNZkohey#HI3h% zP`<#~l>`6IM>v7$!Q+_$;NjAo-fBm!L8|csC*gHapjtv$Q&pYLn}Mi1dpZAs$Mffs z!*0qnBJjX$R{zlPt}Fu;g*OSu9XMgPR*FGr^HQO**;^8zwD`W!!Pmpf5pYP5!9uCL zo|<`h5`BH^6h$zdJf6S=YZI6x$$KGF!rZAoMIT0|7d8XoF=s;{2T9Grc=J0{^ENr~ z9?IZ_?*%Jfs*JX`GM!yN%)f+&UQ)2#f8~cLLIsDUi4E2j;Y&Z)kM=x+Dtdp z`5pIo$WX`G+KOGcm1^xl)?PSHJn-po)Q34tDFOQipMej0Sv_SXWXQhWQJDoKxwVB} z!=+t72JU#%x}-9c4qdc?v!qgo(HOTy=?U6fgC2xh{#=Q3{QSB|h0f4D;YKX`=5wNMV|z&8E5PdgkDI-;4~4%W2fouUxPcu2&1dv0OE9 zf!2`TKI;URVoZba`K7Bt%pb>X$|ukk4D-;U)we1Dm^JWv)tq6S1YP;;iLQCJ?_&)T#(v<{~N z5{$#HeNUeZkJj0n-5__f4~*+}AX1ik2Ag{EHF}Ey?VvZ_n?k|@eA0ScL@Hb=l>`UL z4CLqB-egUB6nU{%Uvto-Rq3g9q-NkK@fsx^CdrD4-F-5Y*+*G&Ren>qr3M#=;pj@w`gb@GnE)yCZ^5pMB6n7WwSiU^zXfqUj6C3@?yq+ziT=x{m%jR8FIA8 zn?xz8?=hIQPhfZWn3=wU$HO9&biy>xUsQe-#s)_!CP|ZO*7ExZvgOeyErubt?TtFh zDi{|BX$NvIP99uV0N7EkrwwsdMZoxPZ5U76j{Q(X|3yjHKMnZUWh^ZXWp-W1O}7iY z*noI2osv)(79G&S{32}^&`QG9k*Hx_JhbeKbb3`CFMByXoA>X^*m+(`KKa%y1Iz1b zlUwIvn6+Fa8Bs68e30Gq2)QHRzGn;}hVBz5@Rvn=j=@4BMQ|5U&~p#ko-Tjf_VJH+ z+8t~?5Xbg)8gG6Q2B&w#Lt@qp{)5zFsd!q2<0x{fTjLL7ou%Y0xL#b>)NOP~bBlHz z_jqVvSt9;$rBlF17}@}Xl(}Iqz0!0#_Qs={Xywmts2S9&i~6W161X=$11b7`S{1QD1n$Jr+H6+@a~P#MTo+E2i?O*~eD0!kR3?_AKgSg| zo5K!2+U()v%A|OtM1SGbi|PqhxZ~*8a^3f{<29o&i1-)ko){g)$O$alMoL&ww~CWmW^0tA4Vb9zjNUmVRs3T)OD{p88$uB-3YB2A zb4}Ze1geWCk!e2dTL4u+s=w_qb;aHCa#;G7_;A0|8BVQyveehuCQxmV zaZFCu&)oZCqoh2`sAp6B>f74!uRG~+yG?ww)je$rVprdA)kI9A?#%JMb3V;Ae?jhX zy2dlb=d>8YLe){!@&5ejCo<@GF30#oQ|1WHl;Op%?@~Vt;foK@ z=-fBWPLboE4O)BpYaCn9oHA`qr_D7q5hH6iq<`$8&dey(S zVM;OiMyWoXdO0r-Y;`T8HY`60(c6x5^glNj$P7w4rR5k{s#zY7NJZmGMJu(2u6eEO zh$#+=|G&j(x8|U}B*BCI-&+{tvvqC2l&4&C>9YA!*RSurX&Sw?e_MU~U}dSQ%Z$Yf z9z4YV$AG7sNk_^4XmleSV$y7`4503YWDcLtcrXRq>kXQH3`W%*{~Hfk^^*&u)p!Q3 z*?+ZAH)rQZ>7yQG;RfTu=|AR#^l&Pm_! zwo*z3;&r=kxoj6x}9_I2^h=NAf=$s;>$}* zGWzG}&$S)i9@pF2&a(3@asx`!iGR;JZfw#ApAfY!1Qd9GfYv7ei`X z-5&KsMP7TkG+!Unxi9iX`;cj;mr{t$U|foUX7t!MG_DTjo04a+8lTQo*Byl-N}nUs zn_NdagKr>BBA~sU+LlB$WY@@NUb!M>?|}(SHqzofO>IsZvbbT-#u2f?KYZ?uw)g=< zevi+voj^cOWL$4SbqS@MsB2|<Y_!=!=H_y!ttLxv7d!x=SODubiSxI4IjO^bdd;Zdyxh8 ztH2IZWRpz&0Bf^lVhgU>hegE)wg@d1sfR3%ZRlF&Po?s_gLrYg#EJVka8*WCmL(Hy zo+OE(dBm7|XnYLlxmz;Jx&)<^FJbB`=I>*>tO=PDzG|U46eFF?%v)PME>~N?Njk#( zCxC_~AEUK@`~!YdUw2F3f*d!3R2XSMSq#>zsRBm!@F9V-*UP|gqU=F%(p|GGV(g*A z2FJAw7K*}N=>DT3=B>bYu#5OLGrcnA-=$zv9dXho#1|YJFmq&43)RIZrY~srvNoK# z--S9ZNjlC<#|A$bjcUt}VWf_Eaa7|-^BwmqZH(Q0iP6s9a(!g`aWc*Vq$pN5(zhsfCU1LE z>bMc`sKx{Ju?W_Tj+mk>eUCIAxoKM?R0Y`jD4#iTu?B`U^Movj)Bd z&3$vzuAll8Ju%@sqonTU{(%>$uZd_ZqWUu5{pQ@o* z`y&1;oau=2@@DhtQ5SCo)IwuPmfjhgO`_h>;rTn!0c}(eVQce9zv;)%K4~x}_Jk<+ z;$2%Pe8&p+Y^kOJ6e+D&HvSwkjSVXJMETC!PIdlShcvSRH=5OWiUfXkOf@E2A``c` zw(>$6Ad#rCZp&m+D~yMz(`J(^J;eQxe;s)wF2C(Ci{3qOjV+1n%bpYfHh(rC0J;zo;{RIwu9Mb)1T2DX(UI;$H@@kA; zB)GUJqjPRhvS6Ok5TNE<1 zChO6(T#2wO`N3T>GhvSubab+Cw8fs{WMVI`Y&<*gIprAM;0Dg^uUopv&v0_|4oidI zMcPHDJH}mY`|6EpMgheHQqU{x@oa~6kH{9O%IMYiIaf@b87b3)I#|ZqOF!Yvgn<;m+-;^9>b!;u&~e?2o^&VHj-Mt|xI~SyS3X&0%9_fxqYX z!W14pcC=*CgdXwV#iC!4O)%uX5T6S5d<{yTyH(bZ@7%>1tBOMlq0)KhK3ixs6kXa| zR;8h2EPCoiHtXE06>VzA*fKvKvbr+H-*1cL@P5`JP)q@(2AitUbpsM8qsc24_75ZOQDJ|b`Ba2 zuh{7(Z<|hV!-xi|c8{2~l`W^xyz>E%-cm&*xij8w0`pr~vx37@S&G`rt$YCFhikwo@D;y^qIfp5_hl2sT)NAe2d})TLOc3 z-R69n2@$d3c-DK|EGo}6I}4%Ew7NouOAG z+RupX|G6DI>^JosNOn&R14udOvNk3$@vM#3@hie*nqXM^9|t>^r@K$Z75DNNr(7+h z+HWk5JRItvdK>0Ujf$vu3(>74$P_C|juO3%JOKL8(fO(>SIOI6+e7$5-4$$Co*f-* zUo6hN>rdNHKo9iKP)(bGWDwzR}ZF3hz!_RA%;$$}DF~n+x;9 z>nr*IgUNmpub|4DyLZ-H!^9MTkEkSc52VJdi%A$arm3V^5l*nY>g#F*a=l zQk_L1O0ybZR{kGKFC70@3{*n=^h7!ky6w{3n{M8R9G;W|S%uw&73?ezrCa-%@5(>y zB+g!sxA)+}Gz%jnbf*Yh$m!N4@uRP#xf{^Mq>DBu3{<=cE+%*IIp-ve+`7#ig(&jO zhpHTFXILokmtWNKa-0FnQYtmSe3US4k_(>Z2ER34L=3RrTtpqVw!HE#zPapvcP#4n z@tH~f9!;cHBc8mUaJHF!Z25--0}2E_U|}WMxQ4X*8txIAQ%I@L?@=a$#c36Rt^@0` zo~u7SjB|fbr_6RS<&BYR@jpNZ zZ{EZ> z8`b(yAhq{m7Y&)^yUU$tkD{w@sKjH5A9-Ce5OxP@F9MT7FcpvD6knooXIgjHfnH;z zb`=w^#_WU8!!2q}hB;f;s$!BJX#`yhDw^SKmh;cq&DI7wmqa@}sXD0eMH7r^MOP#$ zE8Jh3x%f;`Ln|irZJLF@b*q#tIBK@@%kbfASMC(cmn3o!pp97%fq_MwYr@woQ6Z&lzKMv#_7O zESW)@vLZ2pfWH{0j3B;FpRYt__jE-kTNAkh7SjC32xb`yu!{fNd;j!?m;Nbu1dN}c zDtI8hX-&=frh_FiG9fl&)97)epz3XmYmsI9rr0&a#8g8c zlxwUYPwPHR+byj&!IK$NTLEjYeMV=B#n#!^-@}e8nSM0+4<}9FWoe+QG!dcgsH<` z4Qt?y5DGzD7{%Er{dNLNP@=Bd75&?2_4;@jZptUH3Jno?y*P$g%2h6AWYAo{;(!7_ z-(uv(a%(l_lk}`Ne{;>d{K(j*TG0qhzg-{G%&{7J2(!EIB()_x^vm#ZSZ>~IbNBZs zMa#hZ2uZV4jf()MP|A}Mau>{$O(qY)H6S%Q-I;|fyj2a-4onx;+?9rw6uXrjDdKeY z;iQtCkFGZrmWOHf(-_##m75!e_#Y8XTx06(L))^lUpaItw+w7v?fg!+oP%V0r0*%3 zjM(ew=5Jr0NB*K_S0-~VBz!BzcXWzdy=5^aa|kn*#eS}bMLu$9bT5YY;TE*K<^Tz7 z<#6c1+am_nKZD2Q_DBM9Ci$N5weQ~RNryT?Z$EUpEP{pkOylPw6?G_2s5wyBNdF5Z z-O{y5bVF`m(xB*G3ac}>PYY&uv8whq5W;$FiAAV8DQ=_2NauWPsE0^_u2%nPS-+M8P(di)>JXlG=$AS#~^xqua z3F^R%S&`i!r@KFqVMVFHzuhS=Zs~1?TF!G2uiiE${Z|j(52v^vvg+)nP1KM1d4;XM z5K4B^=RW_!8vAAu5HouEIuo}HlvoNEO>8M(JQxjlCz4!Wf?q5B4G8`18wqSFa;h-0 zZ+KX3ova3E(jY1*tZXG;s(o(v$D%r%HhL*`7Z)AOp1FrRdy#Fsbzs^Im)DnUo{f|8ghzsQ^Jr8QvfV}1XCMYVKv1c+f4}Gxw={iIO zxQ^^Zt~WmRlySuHUvq>G`4=y}zk^&obQNa7P@r2)P(?eCd2fh4DNj0aaZGLo$S|(PXsq096 z5A|GOHjw4o7Q7DSpYG^~2I6fTF&U#MV|-0ooU8OWe)x~Y^35D(G>ny}E8V{CWV#rL z<8DeoQ`Gcd+P5O(dKz+@E^!T~hpz^X@fLgaV{wG&>^g5=*w!pOnDNC7-c!;JtCdCF z6RW68w9r;ajW5%2=ZawU5c8Y-sPW~>yp#)19^a*V-8iynq$Ey3jm{(_n>ouP(W+JE z(z^!8S~DwcbVtx?ZTc0;c?Ww;F`d@FK1^-V=4am;17k%v zk6st;VN`PO^&%r%H*JC`C3DUOL*_U3;}2xemB#YpsNL1AG*Cf zxqqP{nhHQ-k+Z|p1mZ9z@{fU%A;FUhj$YL%BUU-ydslbrjpex;^CHoISG4n&L&OFS zky0vc-t!vB?JR5~e9akxiIb%g?%JLYuc$7X!KI=^V2(xDj*hx_`g>?Ym(&;z^eQ}= z1Q|TP()RtZZ`QxsTqj26P_`y6XJJ+GB8;~T@}+#OU)N7 zMSa)xU`ob@_wmMsAI&B;{|B9JK$ER*2@LdEB`_#n&0h9wI$F~Q6`a1C20qpPdel`m zH+1IHt~bL_qtEUrHfjOJES%e3vAg=YlP>CRJP1xIt=7G;Is4f^L3Ay*>)nYG4)fcY zde}m|f&SO7+-+!VMyxEM5zEI5biwQ7{b80vjwf5XAxt-&)M;be9#KP0EfTlZ^YXKV-qC6N?ulFli;#Y1@pH3fguO&dc2s9Yhd(%xPM!Y4km3 zFwLj!@a)gx94<27bin&Y`4(5YSJN#AN^3aN1YR3SCeLbHIZTjN-cnCG|K_DM+dB&1 zsghg#MW?>oc6;U()Vxpl0T@jbh;Z)R(Ea=>ZL?F1YpwYXrP>llYVxF0;+Zh6{rW)A=|N2GocyL*eitKAXlCQ_4YC$*K+8QB zGUy_A@vT<0gJ}AhiaRE4Rzkt(4~s#tPxrlqUDeBllIhu}4Ydmm_a<)c>4>`JHX|Q2 z7T%Pj!O_fLJiNKO)5t@YADJ@0S7INk=@s6u9<3`|Bee+$5qFO(bC4MtA!Amif!{yn zqr!ERm)@U5P9K5Y(JL7Yy@NOGhy&K6^w`_a9SFo5E_7H0P*?#*m-uuhjiuc!t$2$- zyZNFW2fT>uRIop@sM;71POi!thN^w}$m)iS0AV)xJwQqg#afBeFGM3q*v#P=e1MqV zf@7k|F059`Fwn2)6=F(cWV7|Mn36BHN)`YIs@Tul8p2^K$>iu@^qT`=s#zUn?q~#t zd3KAftb$i#tO<#ey@00ExSo!prO)mL;z2+c);J!kq1P<<&h~9OYb~gblWtP7WdNp+ zM=_pwI;>N;nOj{S4m07XdHrZRmeaP=u zihEu6Nl`9m-?2Wgd7-6P=o768`>$&8qwjuy8oOt%i5y0iDgtoM5efqZR7}cgOYX=< z?@qL~<6ah-y%l)-jkE&G;|~-h^D7twaBMgBEi0iwk4=3o5(i1f7AMDposd>9)ZR+c z`JpH0HP@db5=V8BZmG`ow|47d^)yBvuzbF-XE!F1o%CKzabafJaEP=_dfS3hCWz4$ z+M$v1_!FRWJYK_kn>`I@9Avs5vo(WWTPGBqI=X=2YLroe_N7M{RiVovjLL}{-!cLz zE%CMPsWwZn88GqwMsKtj2!Os-HcR%>Uvoef$qFB86RuKm{!l63Ua4nF=d4nwX9%J_z~azDk!%FuD@ z{zhr@?!32FX`E&DWLK{IF&M0|-@PJE{Wt-==;-tD#z?Vx2eg+z0Bz{+y8l59R#k9y z__oKT)_H2737^MeXr_sMKv&o6wdO94Q2REk%6y<#gQvw8EZ;rMl~YrX;3#cY>^6;5 z6&(idX*p{aN~2%RUV?_BSa)e{pVDHW^TQagHfO3f3MDx#0-j!zil1n=jr7L0`OGu@ z1-~TNB7TDgf?#w9pUDP3f3f0VWUUK@!0yT%4R1*8L?e?DPL{JgWC$en$|L!TFlhn%T~ z`hdcZ!?4+hepx!5ld@X02ieUP_=IQ@5>-8=(4j?VA z2EN3-A309}phNGZmtNp20G6RJ^6|)s#aa8XCcQE|7i}CY=)uZJF%j?*Y2=;%R#^@? zS#Z%1^nUM0XVaEH*qKm#1Cv9ImRU!cKMoa}t=H0=@F;o~Yqrcw zPiL>6S!8tR@L;51n>&9f=Bjo^p+8~igro|j)=o9IQ$?k{wr15VIeRys>~Dk8MQLg4 zwjvWxYaVZ2c2LMUpPl+JF04Qv%p{X`Rzig@4Nr1A{kUOQWRT-#dAZ&|l_6B~wIW*j z8~)NM_G$Iu@>hyBmwpif*1RJNr3sMRKzhqyM?km5esq z8Uz#3x}C*u(cwfd&kfZ?uCoiW(WEJsar8OSRGhxLxwfHoN`ElRG1jrGr{Zv+`QtQE z`eW=>e1Co{XCsS4n?8r}3Eg9^pfC5SIa3vKUG#HLk=w87SoAQa)ZEf(B+p!9g48Vn z$uHYr&2`A@xW0DY3C24P0ms^0h^(+0w%rmFi&G0}ctq=?{)sE~5j@??FpxxS{njDa z@g!z~@C}$d;~4&csRvEQ%6~q`j#6DA;+YJAj14Qq4tlHiJ0WH28ZEjKa%a&#B(+%M z5@xd+V`TnT`j~Y3GkF84MjIVX&YFnHD&1tTefcs$pP&JYayTX zQ@IIzvwpjZQY0UeBFCiO2V3Mivw!mO($^`rNhX#vIA}`#CSgEe4GQt|6=}tm@B>Ja zEyjRMtv=VtAjhbV9f|Qqera)rDNej@!&jBpYbA`*oCxZ5x*&)G{Sw`@Wd5-lA+ zYVGD?sZY#P()=#e?j}~tw%gt!#pLQB)apGfw32L3>U^8lf+%kfi~|sq0t!f*-<<_xczts_@${MCq1?A-PvAoz346$PjDr7Haw4~fKq1O>F6ts*z^JCQJxYJqwXy&?#}KNncl#pL zGO(w`pG#2gk=ps2(0h8`IZ)j?C&z@2{`~m0)=#xXC%JcQE`N_NmJ-7Sv^A7cf4+Uv z2E9~diTUFV;wN8NRL_TQCd+T6r&nu2;%0$2_MVyC;4DrAI!jv9-`=Hr)0P3|S1y|P z&bn0Us!*)ZOanDT2cW<;2noG(46Gni$M4vD;4-6E3Y>v2A`E*nVV6rd3+R|GC8xF)}hlehtc`j zFheIlYXNH*OsuXN^~_hLS-qL?8OdVo8d0;MiN_e*5Q{c+i>`!h;3D^dvKP9kZ`~Ia zQD$S2^q&6rNU@%c4|0ZCP17es{By&gr>Z*c8fP&iymwl^%{xM~Q@NDE9vp)a)sd4! znFv|1DD?DumOwQ=|CXBZk(S0tS9doiTR$eUySn$N$~%_cXOpi>e?hGY!VV%BlRh!i zH?V07u@O^g*SD9zZ1Vzan$SlP(dfiC;5nv0C8sh+4c`R^P2x`8U_{i_CQk?3-IR;E|Y)1b|cl4+v( z1VzNKh8w&*#l;DQw+qwICy^xUI6~^(0tDwH#RbnEDS1PAb7i^veEgnBc3`FWy8_oy zI+uJYRI9hgHx;{7x=p>|s$YZ|m|NDnZ{u`H>jPp0Vv3hsDXvvApqa7%T7rXs;+4xJ z%G*V~_wRO(k<;7pQ1SrI7Ok>j>g$fR&eGq{Q5?U{OcMNx)ml662H?lLB&Hlm6lBqt zKPpmrs~-OJmN?X)G#5)O$7El!@NFLA_mw!-gpxe9tzlrK=tb$+=XR#07+m3K5ta{n z#H03nnv;O;nS z)%Bo3D6wGk-Ju)jO&v|mkc^f2C}v*Le)5?R8zot>dbxz1F>@~fG8upJBI-iwr?l8{ zi|XVbV;8EHF8tpNggM4*$QC{4b#7)g>o3iRRj1_5& z8AsMV9E|l>3QBug0*2^n1~z$M=nQ&PWViCGek&^Mb7ya2R|mh|eKcQ-bdA7C1K|Cu zN=DSSQsH*n;x%s@&Uflo7w}oQ_jCC=z)BC#H&aevqg5^VYB87HALa=l8|w4pUh%Vh ztkwdzHbc zFcro~){%n4P;`|f=Gzo?yS5`Vyn4_C`tiljeFz4L258bPav|fhxKpaN8b2#%;-8As z@S9if1~GHa`=YC)p~bOu!hQ{C$#iDJ!U_$qWQuQ+oXI&2~~EG@5v=9>uP+CMPpAP>}WB4V&r!d zrzR5PH1g=gf>>vKWiQ6jwMsUVgqNd^Nz}(fC`-q8V>+V{^*hp{;ZVsW9%K!_poHJ6 zjlGsgFX;CV16ANXXfE)~C6@6CQ`Tw9ze{Ae1NhtL1nB{3ibfmYGpN4`>rIQ=Xojg} z*QY|Pe4uIHZsqtNeMLF!@geoOCBZX63MH{&>oM{1)rS(6*f9kj+;gp?TbilzmRuB` zBKJ|N!m9T_LzJhrZDg~a1L&A-FO)`XUE4hG*ANiL0cJ6#>A5U`qA&Y&mZ{cPmR6TV zZdH@l!!Hl>M27-$i|&8x{_$7*ns(%yT~0H=n7`10V{u(0EltgxUXQa`z;nuls(bHw zn?DbWDR~b@3T+7vl+H&+$(B^4zR|;D7YXp_Raf-d6Z4pC>^}Uefpfn z53H=1Bd$+u=lNcuT>Z;2(Yw17?~gB(1u{P`q3H>$E6?ca0K_<`7?dv>5DKo&q*6aw zg(=NB@UuY@6lJ{?lca*8IwPE))bB#w1aBZqBr$R!BWXz z{&^_hsK(r7%$BPP*~BHJ#?t}V`6vFT?<{zs_x)XlD&9IbQ|=jekrFMP+cQfKAQ3b~ zyJknFy|bqx(N|jydU5>W-eF?N>eha2FBC(1g9&i-n>c#H_eHPcm?i7UpK*|;rDV8E^LxL>tr5&`UMZH!@Im%a>f1$g)f@& z@b(81@ZVb2{H(LqnEdWl*nW>$i#xNz0p0#lME-)T7l)9`t@!P3<+_QNZ_Z;xhNi;0 z6eNCUB#mFQu`0>q8*I`LT{@KdnyU4ta7uQ2vYUFo6V0OO7%zW%1w(z&)1PW<6Va9I zd~yYJ&VAoYOnRM(c;n23prbYtqK9D_K;bc_&e138FEIUMJzQzg^S>Tc%W*e_id~q) z@Z-MZwV{Z21De-Ad+;>w(r?GzVI#01JIluCU2zskYM*gZgc8s2rIDa5PG!>#>=q(B z2UbQ+Yc%n@WL_x&6}Gr3nNj`tQ0abS%(Xs;iv4B$B zS@F4At4A14Og1puNKRFuf+kcYvTaJ4R@8mu1(AQpx@lNlTttqZKHI%@O(6el*u9hf zcewD0W_m6dQD|FSg83C(P~L4F%r{vc?^TZ1nq1qN<#xNxk_%>xq05=~yE;S9AP=fd zE|aMB;R`Px?54wzcJ9=E1R+EIWX2*B%S9?gF1!5i48>l~aacZP8({UOdFMv)x|@+< z-nwRa+Ao*cY_O$f^=jE|{kBZo9%O1V^?CIeSKbL4v zdOsIFD>5_#=Gmp_N@|5Pqnh<;g)i0{o4i4UC(PjdyO^bB{U#JHy~$qOs7b40UU34v znw!oX#%-4E%rQbWoBEFARnM$Zbit&rrp2#JQM%Bx2xzg&(OJ*(tA5QH%xIx^-&~Ax zwRv&UOV`+~Nf|yrsK2muI#^Dvl5DDBu=1lj-@p1rH%roc`O^7jUjK zuGfYywOBdL3Vx&8l*az(ZD-D*s+Ns592C%5=>KcYsxY8WIQDjcSITrs4JVXwKWhDC zSg#?pN0THPbSEdsGRb^#H6=7TB_Avtt5uZZJf~pZVW{-f_Bm}jptXwN!f$LIOe4Hz zVBcEs3N}Eb5{G4*(Y*!tH*lu1Y{IZ?Z01ge88zam-siv{Rlgi`ibXw7Mlx05oYiG7 z5;PLX3UJi(Q;L`v^J+be3;&pp%w_OwWIRUkFMFG##32s77EPSH2jKdNbP_b}HxosG zx%w%VRLuyWs>s*4Wx5OIlJjPLukXiFM_Hp#rP!H&ro{L6B>R_^pneApD*H(JRuw0% zH3a{s$ib$=7jwH)0S4G{R?6i4=HJz-q_vb}TruqeW9ty=BSBTaHmV&B4X>^N+2Ghp zS&gku1>maY4fT8;?|Dg9l?wDVx{v?gWR(1R){=r9meV!HSR3KoID1ZrE|mSSYaPnVpxvCk|_5TiBh+l<(EAz~=;Yf|t7|ZHH@&XZb5zZS-LaX!wvdBD#DTn`(F2 z7Dx3GU{KI{{`fqjC!M@oDDq5ATtk}Xu>jjI4s^zAG&ED}O7PPdH?(>9XJ3sacEcAFS zs&Qnmv@%Z!r*ixY|5L0y%52dD5@NJ$<@2RTLuG2OT^DpJ#$`gDgPHe2^O9SSTEabd zV2o_p#H_&fp!Vr2YB$z_fuF3*f)dVMFrI(TX&$GI_VnMpvM{;%<9rv740FkGqd z(SI&dzgrA`eqleP-hcO8oTqq9qowq&nqHTiD;}aycZIP&cEe`15I)*?GJ3PGhnaF@ z5%777ARttY=(8avm2yli7rC8klIt#!D%Kho4XI?`t`aW|qdqZjbZU5c{a_1qkZdv8 z4gB;^&1Pt}w1Qr@b;rjb%(ZxYe;YHIojATdp&o4}rp?SYXP26lFUU4Fty0;&|5ID1 zb1(3)>RT7L=^yqEf;|+8Un{yC{(*G-9tE-mJ zyX{LDWt{kd{&v{?x;oAY7&}b3!=2-)X`4OhQ`&;16xn;_V!XtkxN z%$5@RJ$+<2@VBoPJ~u6UJ~soE5m^nFXG0>jt#U3Uy@7RFi)qx1k0;sfR6Y7Yn0E6| znXL?Inz(h>*p!MK32;83dG^tg>^mM$$<^?_G$w?GJbeQ~Oy$cpR%-*6PV$1O5*J(; zDmEl$zYMSnpsQmr5J{lcs+UQkbitx!Fqjd0goUS-yv`H+GXv z+0mfcF0&Kj85{t;Dj3LI9*iSYY}E8v)D4kpe56jatqlap1L=9rOa zY7Z35)&nEO^cMENM~;3ZbLn;55>!)org*1Bzi(9ik)V6As_YricGaogzhuC13Aaq; zBXy~Ytz(9Hi)a1QrAuGMKo3{OgarU4-?>i6I20@x2Z-pOny^k^_iQH8cU}|RR>w9?~SC*K8Rj~ z?qrbZU-R~E`rBVU*^YBe6L~I*lOOX7Nfp%&kK1woeKPA5p9xU1!Gr3mZGinBY{mYC zH~nwr>38Co6AikIp=&ekQ4UbsM*1HKru{$uuSt&gqmAx%9@E4PqN%A6TgiHq@9sKr z%Mrxwz#9{`z-Z=kOeHd`2NDRY%l@=ikq$i{pBMbzz0>7R7lwiVSp`b>)tCOoH{<|O2mM7r!qNh6Q=CK&<8$8 zbditV7ew6c6MpF2znto?-9p(hFYNqm(Ox#UClXh$RY8uj@LkZlx!e$0wGiFh(`w}o zJa#Nl^Z4$sa(gCC(!s8~deTgtY+voqT|GOBBrRz^Wqn3o<`5n9j<=WSYWQNuuk)=X z5E_Wl#uC?@G3gfjO7Gg_x?>rHlh-<4t=7KrOZat8gqSV8Z{oKrG-ZHi(Zu8}sqGQGCf z<>?CpM2v3A##U|*?-@^|GPB$cO?h(5v+jB5fIa(;h9xgXKeg3*lCxTP(gwBeu4vSj z+jRW-=GHz=eDiD-+gXo722WO&ECLkV}T7W{EbETO)`yD`g76|(*$YewH{ILg$=oF82vU%vGp zAnV+#0N_wB(y8`NqOWY7auhSt;E}_T@TY+QL)cx+>!jdY$1IOlaLxrF4Nz zu4B_Ayr$H=ATphrPN{Quuu;cZ_trvrqV7Zf{#6irq%zxvNeTKkK44U4ep4*6r-xp* z{uq*u;qg30J*rQ#xa54<1$tX&Nd%dF-qo?qj*eesR(I~hUB=6(vKuPDr%|DLp4>>u zYE;=_PVKZ$(oVnt(8)yWz3SXfx(Zc{TaW@B@-5At2XGde6N0~b$=536m`vK15a__c zw6?p@w^)rk)^7yGZIf#KD! zh@tuA6ZWkpVqZ@t(X|b7c4YE#CpiN6PoV=<8 z`m^itr-HL}Qq&R}qakDO+9C4^U@~cd$c3_?w-S<&&9&smQ%>${OYgDL(>mYQHfkE- zaPOVtA5+st3w8JO9u=SjI^0Hg*cr35t4L|)eZC+d+2Bs(^He?5jpr@cl1KqlC356g zX9&l+zXRHNqQ?~4LUO&vYwvLKtDCGw$H>?Dw2qnRvt;$9dgW5NF*IfIX5NsO$bO3` zB-j;Y%}uL6{0)VLu<})p)6a^8SqyIVnkqdO#rp%Zb>o2T^Vx^X-Wc>k;OSB z62W$~;!RJ@f*|DqRbI3*`%`~f!SknwA@sQrkU!<(F^4>cw^{}yY5HIGxqEl33z$cc zi*fYCRKbb0@ho(pRev{EUFo)ZIpy|z8x;#M0#pA#7^Op|(-HONy0(04K5htIH&VL- zEzkZVz-H37Nixfejaz3Aid*cyDSg+Vx_t5<1c4}iyExROHzwS?m}OLaJ>BP+wQWUR zu)Ln?8I%P|N(5VZzHkjiq>IkBd~Ai#n{}DBj-eN;21ifvh4mb?vIfGg?wyu3iHQd# z17}klt@xt`R-Z3RY|OUQLpo;ND>w{ApXvxF(7jJ{WBOAPdj92KZ+{#Awl=Rry3tV5 z)HBM@ox1r9bmS==JCX&Y8X4+9g_~FXlhI zw4P7>uNk=C;i%D^0cT>`%eUL5!b(3}+kU2Xw?Ery4uFu3Z}3&(`N?rgqDKS?tuz|E}nKO9ay@8;@0;VEQh!5J*s?iPky4j4*eng44 z5nL*#lvY7bC3&}Y*OZO}bpvmP8}1aKyMbk3DO&W+bgf0dZ0tw~2ObdZY$T@)46sF; zYpR5$sfU*lKjimcZru+lskNm2m*|y!vwwJ~R{_RIw5j65Y+pLtLS!QjqRR&Ce~2qV zzay(*pk8gajBn=ill0uM+ZXoIB469oVoi!>y^ZS!EsTjnx%v4Y&IJZ`4{o3(onpv* zJIK!Y;}F0|FEA(Lvkqd5FIH99rZwg^MeTI29UVzfoyqFfEB^Z%;Z(UtV4oCozS;tC z*n!vZ^W>u8m-v>2S!VHtFjr0`XCFt=YQ>o6#UVXsc<5b~`@L-)z*zl~wu-28ntK&N zxWKaNLZQ&`jbkxsF53hgz&0T=OI?Hh-^%fHDk4E4{S5<^1_$kxUH6_{Gb=|~hP#&gp@!|%4SIuaw^L94*$5fm=h*0*|w6H77 zsvteRy`ydp?}78g^V`fNUizv-3S?Y&8EoFmKG#-C z+21;}v3(m{P69aWF|&WVSSyO_sSpyl7Af10ZhVosCunN_Rq zg}3^`ql^?x@zTL~Yf0VUAf}Axt~X{zTj0nOkXw8uGY|v{zRJvJl$| z@=DuQC=A|;7*>n2!KN~eFL7Hi9<908h;G6Xw=P}BSB{e{K<_lLIFW^N!zd>)4ODM@ zv<<(~8+fdbCdTu-GG@9ZhHc2-ED7Nb0xXf~&OQKEbh%cqv(3E`KYg=%6^k99Lm~xAzaRWHe?=j+bf|)Qm_*~nVT{TY=(KE=Ja}hem zxsEuB1ovG|gXogjk{G_CiFZiHOuv+1=zlWVyl}vP>`05ON`a?wS{jm3!9}hG0=$_` zX1mKPj90NPtb&lbb0X;DDi}sT*f}rAWD>ey{y5ykk-pY}4Ns~Zzd~Eoio6QBchwb6 zM(!{v%(7tiw!xAFq2!;nQxP?pv@MbIZE>`Woi+AaKf48u@w1>^kMAg_v%WCeHsAK{Zz`PZQ@b1 zMno{`ISZyHO})Fu(9K3BFv@^sw8S%?Kzu7^z{x54w{N&)4ZhXT^xXKwXe?d@jMRI~VO7WSZs5nks^OaV>z>+d{FXsr$d`R$0l z`W96?+)f+C{EFb$kt4VfLRRxg~nQV)w557or@bDBT2BS1! zCIei1g`S5Lk5l1uBMo^d96Eba{0^+SOr()Gxvv>00O*uc{@CvWWd8k`Yaul^=Q|pm zvSeyiQx{BbZ#P%!Q|}ZkSlR)%*OV#QCFPyI3sUt-n3|d)dhGUK`|tg1$USgV7<(w~ zemA$})ayu%KsLv>C8R6iKF;u~mT(KbPE!FNVx@KjVjzuvQ|Wrk#D7s3S;wf#*yBj3x@Nc%jQniVT`6=4V@$?IumUu&2PQ1SG( zajoslHX>B+J>0Qxiydkx^@6^7DxdO#_<@tw6%wvHu{-#HHEONWJ3sItqgpIML}sop zGs=#uP;7;d<nZMrQrzaKd%t#y*mygV<~rAOBF2$+5Z ztdR~&nysPVW2UN`@inNaprz4kxW8P%;^^dwP#b!Enmt4rQyTR&x(axTdUh46LrAa0 zynn{GM^}Uu;+=kWV~aD=IX(Z!*q?B7=L@X2p-d`H&EU4_{`qINd1Z)gr;5UTfV$-o zUQAXnJx;FLd{4s#7$B3~{ti^0R_bn5Q`@kiR}^1a$)=p@k1j!aw@VC9bV1pq5lrNCDOcVtU!F%XLl}uyc6q3ZUnm`}gI>p}x}Z3>TUcMY81@ zG&uYH7PHwy7A33i%{mND2xQ)mrI3Gn#K+x?ot>^V`AV2lNR^!M%N*)K3eJnwvg*cS5ZAzD8eAy{5UbDwnG5 z108sWYkM-bGhR^@oIkck452@KzMkmTr9at-q#NKTYsG3cs|za#4L7dMu6}dXsnVh8 zEx7RPI8l0`rba5BMISWk+{72jsvP=z9mwLm$zeQ$M#-^_{jwD|5<23!sMK5>yFcKF z-m){)VoD5q`A^1P0%z?a-*4Wpt^nIR*lH9l#WBjuYeJi8SZ7WI*&d>Mc)AYV4;c4xzEO5#4NyBbt3uwMHr;o{d87;xy4K@&01B4k=G0lY?lt-+?SB}8#DLri$vN0-96y+Fr?w!s++c$Rk89z!?7p}C(#?37yzDPrT+EYt z&jakq;fLeYrF81qZP*TZt=w7f12*o6hsmUv17Yh%S;p=E)`;>Sw2ZMkUoe7=;rD-$ z6kpLWW{Df1-VUj1fPl?{w+Uk5U36FW^pv3Xexn^#UZ>k~Q-od-R@R5UXcC;;*5F8j zhBE7tiJ}@UVx_&qnKk5gOSi}zv3iGv+{M)kYpLt6`X#E_@L#oFR?6i&1{H4$slFuc z^Nq@#-pJo0w&%=K$34}|m3>E62fL<@HF+9RYRzlHGY@Tq>3n()8NICCNPA*hr#&#( z)3DLyUE}3+7f`zwUyI}#v^cqvGSHy~NV!z%OXtLODFC?(kvu6yLDX&)0+Pw|0})8)f7;znl^is(uPUzE0Gb( z!?xpKcZ5r9C)k11RnX_(HqcH`&zJo5QH$oz zOK|?3yioyJlUugNP(=HJw!lko<-*34!Dxp6(feGrtmv5Klq`o~u2>?9#PRepDaLL< zB-Y5?YnSKi>|we$KQRPpIf|79>ZA0ucps0~F~f+I_LXgiL*kB_uL;w zy@y7Fq<{IQI%IiEFbdb1ki+XWLOnVB)*-NkPr4%bRzXsBm{fR_S?WX(W2|ISoyT2@ zyAt<^zQ`V+%1sZu?hWf-`9ej2*e5XJeu+ldPkW_PN2d(a?&$@}Q@vgS!cyd{2}r)# zHpU)Pj@)t~*X@CKU6Q2h6ElEYHCb_b%dhfZ<^gUdh3|gtqz5e8KnDONE>P zyfIz9cqJl)y{Tp8OS@~SU_-A#-K%}MYlH&^6)nF9$BXIPOg6MO{)yV)^qkZbR7t0!`U}6Lsg|7X8YL%b1+8 zvO<}!I4jQq1jk_Aabj`L>LzYPXfIl?9tEz7o%a{$D|LKGs{nTtq>7<;0JMp?Aeg3q zP)9_pocU?*0J@$i(1bg`(#q$%11EHQLgIlO_=Y}63HT~H4Te>3B(t8D@B6J%VxZNQ z8}6m1wW!*D>|dK@Jp7#*JG8kSd$M^SelLR^0}!)D@{+5L+BO`VL(|2{x`2kwuK zhg?@yL;q|azpZ@#a6iFAH&Du4Nj&d>%@3BQas`i}*v+^u+phP zs}`_m3LPL%b-W=vJOqErEdp{Aw}UYHT!KK>k>#F_oy(Ui#z{vt1tXMtub#_i`7Fi9Cq{0?8<>>qvS9Ta=dI*2FDN2R~0JAHqx zO+SqZj$NNWn*#Eht)XkvFEqLur}c;&J&(TdYwJqLcOBaNo<}ZuPobTsa?&4TEL4+; zIOLi2(!kt3#mUAD+ZS#?=#}r$FgK$WM)!Dk-J~*#t&m}Ec0Fu+i5zHHcK-Kja3rT5 zKuVtrleoEOusVC*8M9hC9KQ1gJ^Sd$FLmRl$?&I=R_PCc(TC>In zeSi*cJB!S&5xv`&>;?{1@l`TZSPja)2GWm_RkhIT=k;gK_Qv67lQGfogH;TgYnY`J zqa(C&5OWmrKR<7;wAHw@H}~U1m&X2gpuKLvrxGgnFrYB}9sAvy6u&-Gx;dwVKUUL1 zp&gUpVm6A^4qHXPUvQ7h!WoXHAdedeZ#fudBjsVJ1o_N{t z-KilgznM}Wh=#kKyUgDM)r7=nqu#9b&By|wW-75f>4q0eeXcwautAv#*6ufd;k8!fk+ORcX0P{Bf&=ii?0gj! z_vXOS$z==W3|RSD1*_PvoooXGUs?s}%TnGdYUtWhNQN+_0l)RiVa7UM6Z|h#2RlH& zdLugV;?Z~8xxU4H$qmlyK9n|3m-ic{?xl5Pyx4E!g_omU;;rI89YAByik@!~X&UU~ zdh`<%ykV+j%){pX=lp;L>|7Y=IU2TsygBpHh!2D&`{q*al39G(JPx4!aqxuM{Pn2i z7pws8Mto_89PF=hoQD<;obK)WD$;PezN>`*)HU)3$5vZR}U)tlvp%PYxUXDt$ngw{;78AVNY0&S5 zP6O=9nJMxQJ~}AVnJ-!)MDKV3zidio^($h4_KBYnsD)?~KK}QXV*3M>ICj2i*^}n( z@&G|u?y%>AfO8K*Y%JUF=DQ~b;nSf}jN`3*S!eiY%rQI3A@kodU1u8{?X;s5W`|v` z5i8QDzJiXFm8Ad%I-mM(Fw1N0S>ZRQ#7T#Xx{xD2@eOR2(SprAG%Knr%49sK{L6vZ^5OyIR+)yJwMFxl+=aKNBan2Xu@#{}7|E z=d?b;4fwsgWI9BV^#dFAW?oIvb#PxWve263bf0Krm7DEvdaDG<5!qK>>NbB$R2kjs$Ny%>aQQp*nYxskGY&RcdADJ6s+$Wm5m(JklO=cKnw!SVOrHnEy=|F;Yg5h*V5BFT5v z;I`?XqHM9?BvGO3keT*59E+6f`YW<(YX3$B7ju?|i;u0gCowv>x&?W#fihr`G&YK3JAgrktLm8`V7b&}`t0m4f@P@f8e!EXUs|>^$@wT1 zin%=SD7Tw`2|*4Xw3k1up*~7oF6+n1u>y%o?0E)FtE-38n-RGclr=%Dfg75vqAWcP zLLJEoKSzbcTiW?gZ#Zt1?TWN#YS#21&4W)sA)9ro>Y8}J1Qx#aFQ+t!A*jYBG%}!f z@#;6fQqYweHa*XI=-D1vo|>(9e722eX!1=H{&6BRKM#vQ*^gJ{t9dbeQ>k=7d+7AO z$kY29kpb1{Z$-VpEa>Mt(qwj7Thy}BdxUAA&m(ml-^`{JC$#NvPE*-p*oAwe3_GM& zZIe{=m}P_SnIK)KpV^*cjKoL9@VltR)aMPzrw5k+7)wdGoz@o-9(j420JSG+8sTq}cr8t=jR{MyuUL zWGo2w(X@`>YpDnVvtl81ol|H&(pZm!J}9GpeDS?=SdQO_ZKd%BnxG@SoQ;X$*M6mL zHMy=#_mOQ>m>{uVmD-><$Rl`XE-9R!=DN~Q1UQ`C^_$4&5-tizlWwy6Rq-?>EPZ@z zC8pLlC+%5Hw_i2P=;Vj~ z$v`L{G07)z21S}Y83We4)Xv#zTu9_8@00CK1wEhOtud$^z~fCM&$Npk-|msYij5`f zOprH{3AzNqOAgmD*<`rf%7eJu_n(@yadPqNSu-Km+=>C}y}bjTGEEPn9Egt*YNxhK zQ)E1N+ii@m?LO^2V^G1Vff?eHKuIx^)*_SiJ}JVhuwvBPxgN!Xjz3?K=HvK(zctt= zAx-b*_e#pcx`H1%0r{jwE6p`4>!0Z4aOz&>J{#HdO^Lba69T*P%{*kzC_)PSuOMv- zAVWlKGQnSv8z9TC(qX*LqMfzwrg)L`Fs55}{iO^k>T&|TN)K0=Q7gQ1K5*wa;llj) zagIf0{?M?9noYb#C4(o&pZn)P3eJsl@A^jq2q|wqM(lz19RP{s=^Cvc`fE;Svw+%P$#cI>HIuD+v}^fk4r&*buOI&U^_V}T znbnudk^O*>Ff-A>@tVh&2G`Ubl|_UeG0K2I0Vr3=%saf_oTdLpKE-s7^=Eb3V*h~! z=9(d_j-URS#Y{P8c5dZ)3J@_0{ky!WeU^(;$Kg>WbEM3h!iKF%l)%QdXv|k~x z{Z!(dlD+k>rDs!4YVg$%Sos#X=37=7UODQIOeF{CVPuA-9>gwaI?mBOsTwaSf4L~z zhC*6-c|4(wbh$0E)`l%k6rZpNrgB^-K}&9r*g;j3wgQpTmsfd`96xj>IR!HI zprbzVzX`v8CE~;T0YiqVKG!~f(N4bzOzf6%oh0c!`g6RGxcuoznYmd%jm+pz-e&%v zKZJAbl{M-9gbWkhcLI?A7)!77M*ozd)wWuZZtQ9%u9=aydJ1jxGE%XpQOF_LnvI8W z&2k*cp26Sw9}-uecL8?ZbxZ5@P1$_G+~=yFzPfjzJu!~#YCkG2-~+S(rZg}&azCo$ zl{cc;bfMS{jNA5~pl=K3Vi?msrZ!hmxMn(`Ag?@^STIDaoM8_$OqbEn+)$aWj;AB@ zKNqJqR`@O!B!C0a)Y17AF-w?lS~mohOrvd8`xf0^dD|4jU%TDR+K8}6g^rhU%mE^c znkS_u9b%!)Qs9l=f|}6=cFMG>a;C1Q>~DNmJ8c3T<|imZw@Rx+o*);FSi2oR1{{~I z#W+Xa$LVGkH|PF!3FVH(Xtq}^Zw0QYoDu7PcENB zQmION_jEeLdd2VaL2Y4y1QQO6U9GIboS%<=(s#f2>~wojZv>mbK0L}!GWRd@%guNs z={4Mp!*|YMrc{Lx|6ryxDtw>+E6eYQ{wS4QqYy*dyN}4KD&OJkH8Szmv_=L-TE%X5 zZl=eQ^{WND1r?C-)AvWq0Gzn(AhdH;Z}!jH-iP3#Pk#t9^L<61&%c;0m&9`rQ4LPa zRLieDob33vU13^c-Z=cBBctk6UKY4%X-+bhX$+%sn;0ZRdkk!y>5r`g#dHOK_c3;z zOP}eerCp7bJfvx$bq=Ngy7Y?M?$>2%?PC(k7>Mqo z-HJ2&IrhP+4BVI)<=x{Lq}Kfl`#iG#ogdG`WDL;vj3DF!z8Vf^u!+7%NcdGDYDqJK zVJHmR)z>>GrdU4Mgt%2f@FFy7?|n&P9Wy5Ny%C`423Y&7FNak9cYfZFt9d}fo&L34 z4v2P+F(NT?$ob!0GTII$E!1L4r^PQ+iJKB1xfo(A&J*`MdHS5~ z99FY6{y-WM58KXIkCoQ*Qw;D?Dhf%clSq__8W&E`??hlvnk|+TO~|sFBLg ze~AfM(1Mw^@EEw)r^Ab>Xv9`&-3m`ure)ie_$p}FtC1KZdO&<2CNjXJcdBMwic5bU5S_$ z=i<^f5p2LVN(Z<$D258&U;CG5Xtw}}N)m5ptcaL$P{iFFtPynC{?P**Mdwv$5R&^{ zkFZJ-LKC2wzPd+QMyZP=mD<7+BI9LK1&k!mRBq6gI~;3Mg$q}}3mzBw(N+BII6Qpw z0ZeUQcQr<<=*?uXwPW~MW;^WlebTaH+D28N4&>}I==ljNqBpSc_faW}=CyE?O#WC< zy=&B7u}}IbI~-c{Y{DPyFdd}^(n_T#j=20TfK5(=$f$Gg!Kbs04C)-Ogo8KsbsQt$ z?hUz~tZ3?yQIODRyWZ>vYeYZ={dwWGbpRJi{Qg?_sJ65Ak~ndR6Iz)`5lG9n(%(A? z{Igp*BRJbwI@q4;ex?r*Dl?%t#gtTNgUda z5Cl-LPo{V!BdU^l4vYD@?2BCH3M4%%8l9Asb6=)Er_$@tMim=XrHcI>vcCU|094q| zN0LMBD?;>YiVx%pMoFi2&?iW#6H@U!#ir!Om;O2o3wAoKZ+TNa&Hjg4m*whJ(MURK z4RHQ6sJd$0yhnN7S(?d0K3*KI(qqXdYs`*(DpN2}=Hnkek2clkwL=yj`s480#a}rU zcG{=y9VjIoY1t;G(Q%VpklIX&m8a3VFW%>FmLB6d!NvlXTz58XnntVEUk!ex8r4p# zg|$zKYY#CYg}!$7;ZLh|%ISVQ>D!U=6SC3bHgdIY+4t@MLMd;=seO_9pVz4!LZLe` z(Ck|6DUPe~O3lZ?wuq&ve8H?j>_}T>#55~6(4ll*U9;J8)X_(Nak}w5kE?M?Eb)uE#&zQ$y4HFz5cI6?bC54>NBI&&@~!J#T=cORV_>zm z|NlZ19-OeY-NPd#-&BIan>V)CB}Re7VCwMrlw)1kv(FqM|I3a~Hc2P*_`i&orJkJ3 zWKY2Bhd`{{f5|mX`mKP&#l(#}vp|edr+uxGkYdLuj9W$Br^3JPe=pr`q`&;|>A!{) zezD=CT%xJWoSvu5>@aLP1kijI%x8x4P7~*npVzopHzFh7y4F$JP_XDxb=Uk2EklzO zF!)wT9wP43=wDl>nIx;144UC+tGCmuQ&xSc@=dssqnl#XG~uuvS2%u>`De-ZJd5+N zVbs{ey<_lE;yn5K3w@?zAN`f_w1}>)V*Uf;BU<%e22zuQz|Smi&G|)ovP-j5jic|hzqHraDDTz zawA}~Stb9(a|gQbY{_JKnJa0uV!BUB``m5missncW@K@mr<9yNPAvF)y9;!p zegj`_-7g0FizCNnFy7hPdvXEa+|CdIXu2|navx#tv9AVAWXz9Gc=YoMUUEfMd}+&j zU@&!M)>kKW;*1yM8RBItG{5PHPA2Ib099yw=WPF75-vPmm4gA|<@h?P zd~B3|Cy+`tfdBY=cIa&bp{jr6%k{Qze=}@aePp7L5G#7dorZ)Fqff26u30)>Uk3H2 z%t|sJ{XM8MgN;gZAxn}~sTWY|Yk5A3B6ra|^R18ntxx;%o+z2GMU@}17?vQrU};|% zcf^uCTwRw+Hpy^@Js<6ZwJ1XmdMaIGYkdC#y}C|n@xm>5FMuI>O#kD{b8cW|NlgZM48Ohh3mv2n>o}CL zRXGDGMbpEo8XbJ-`NDK0{V3p;!|bA~5LKUDwNItIAWHP6hjM57ADP30Vl|);CoGxt zW28^)Yum{G5!X6H{K`x0mKrA|%W2A)Wy#G>ELA*n%L7@AS9ER4qoV+G_Di5jT+p|! zwY@&m(QFvBgvD$+^_(BxzE(`SC3an9xJM229Qyt~HvWDxXov=2h)+N4X{`o! z@*Ea$UcGycvzMB#XGi_R#s`D)Efx?VTX@+m761G*=e6f_ekX~!$F=CD_qX)FMXmv^ zj)z494Bbj!(}Ro)fWy-HwhKb9Xf}cy{X@T6wY}qnst0j^=zdXt&uNR#n8kL0aZoM3 z?fGqXKBzfznxS#xt8uCFtX)_MnX9i;nb^lgXjSnMGN!Px{GU9ct1*OE2=LD59A>RTf$# zESVp>&TYRt{=0-JYR*oDf9A&)18_-n*LXQ=B}6%x9ucH>&`jqX1E69FLL&uE;~%m1 zjDU+c3l)ubTOn+xAIYcO9syyJu$h>JLhBekG9}{Rh9v ztB2~zSkBbcSz1_}-NUzR)X2!lz}Q$`$#KJVWW-xBl!lX&rjbUsN(X~E{0F9YQb2hc zx%f$sVdKB$KZbKWtwYpF1_H9>U@bvK(1d7pE>CQeE>`+&x7lOP3Tl9Test&LpzMkk6l&R_>Tyn*!X)!k^G9x67kYw@Ld zvZb#$dViDuwuTo6=z(37o7hoDd8Z3u$C}oiQesoOnP1AwURt*uQ+k`FzI;n+Ke}8e zWfHdB;)$%4uc=A?1F0q&@g0RCT}ZQx`4#vg08=E^mZ&q5RPvGvp1@%iu_2%#%dkNT zq!wU1@+%JH!c=D;9D4d`Z~0@Ew{eA=eXm2c5y~X;`krnH=lnixjL-jA^>%PZ*86NL z*fRsIDQK8{ZAmQn2xtA;sT#k}503h(BClp^$0PHsUbxs`s{pi&`ToD6z)c0pmj0|<0@!g9Ms9xCaZ*@+gists;Tsvy^={SSR3#bX?0x< zmrtOI4@JEau}J})O$v=aWFywky`piycnGSX`cl3t!L{)4<-fK)J2}!Wv+gZTIjv;l zER+?9b2LF$D6AzV`ZfaCq9-r@+8DL0`zlb}@txVIgtg1rlhEDCumA?0c+_*RC1(w2 z?U`x77fNaU%S#O8&(Ek>0@H2pq6?6ubz>>Y0ROVHHKw9xv)V0AWo-Xpmd7xazXT-H zwu&?d<+}(-3I#eee$S5p*o^s}A*&7esV`l5A6E!>>=8Koovj(1 z?Ii-gXQh@M#YV3646~iSE}p+E&l3=)0y6E7Fm_tqFSI`@zL|u#pc$?pIZE>(sCYsQ zsm_B9ur)&h@Td>}KO0N#zHE#YaH848`RX9WUD9>^lPF^N^qT^cBM%r_wEPD&Uf9lV z#IT%*tkJ{*0M}CIi!*^5OY<%kqlNJ6UR56@QE_W7PFcrN5be_Y8k`CN@vF zb3_PUr{mXrhqFUKgNf$al%{RHQ(F2k6&#$3)V2CZ8NT-(hd_L;OI)X3+Nv=7w?sz+ zg&AHj2$pT$=fu$wVI_9$?sez$p@Vui7-z}ikeiR7uNho&+@StEC^mO)!t38q;rn?F zF0FWsgh4-c1eUENjpgJiOe>l$E^i@CU4f8|Dl3JeWmQ*!V@~D{r2r>MY10xzn}Ecr zPs&iot^w9ef7EGARx@02oK1A8d1X+iWm#+)Eea>LUT_OP&B}8F{`o8(EOw9fgLUzz zf?~546LYGFT6;jbRRp#yPJPDBMt=NO7rxXEh}zu!szXy6aE0m*LWd5u-O`pQc8IY*QNAB!1e0j=XJBXe;vgGyga6suHqEV>*#>FjQ`vXxGr!)VDj|;fBjZR z_p3`l{OYF%Ql|!gKT9TOqnO^aQLlrQLWhdtfiEj_947c9`4QXZdxA3 zXorAbu_2YkbSm}AV1ZHCVbZN`qa1w5nDQG#-^WJ@gbcUTh97a*J&-i0DBj3>W|7Of z8cZwjoj6)glwbm3E~&C~eD@?wMbbXs>E_~+1I$9_WR!kQ=QrD*E2vU#tbl>cD`bUj z81SOR@}WF;omKNNp*Sb>`2F-uQbWYWR^@0{7%Y3gUq8Uwz>Aom(8}1GylL#0 zwNt34vFTuG&~1#;zfqu8kAh@dZBln|K}9!kVl>n4ZAZ;=H3deouDN?-JUznhhEYS_ z?Xn^rl(bYW=#(3pixS>NQKV4;L*qcc7mrOIK>v5&S(lqZ9is*EBEJd$#*+ERA;``S z@F7ZXqv7Ht;!TP3lufIAgwJ1Gpn`Pu{oQu@YOExln{HKsqv`;&CN`+WBq9b(DZf=Azj%a!Du-+WIDAV;^}D(;?}mmT6Q8U-XJ5;9Ig44jxmPD>Sc_O0#P z?8hD~EU`B~n8~G4AePE!9J}hx>pE{RNuC+aOGNAy#3rWv7VH0RJTTva+a3a%e+2nM z4K{zzL9q%dt+KZ15a}{Wxb(di7dKfX(+1vxvowGIi9)3^g4s>~NXtSnC7Na^VR^jP65mirJ4}1ZZZ(P- z;?cwu6S;EH!DPiV_PF(E!Pg?*#0c6V)MwPEVxfzp}3&yXkG>Ce2tq4F0RQPTb9nC44`>lXSvEw5t)RyG~tY#jy1> zaO$UuM<}k{uP(bUZ+bojt$6x@4t`#7R*uT=-Id4RcjGZ_R%!U_wDM;s9LI>6dQ|g7u}3bRV3}m%Z`|L8M@Y-kK+AsYl00AL=!vy7Soxo z;?Q)XTygSRch(s`bQ1mjErEYg9<@BzOvgtmtF`l>GYtT%7h(DlvH_f^>Tn3op=6CqKie{8QZ=@{9a!-bq zVvOp9FQVS24q!wv!gTp{PsAd-mgCfuh5zB2Fm##wr<>Ukz>DJS=J^anjuAfp_FpcV zgw@NgCrxnJ7BCFHT#C^;@=e^cCz}!G+gdrygs>w{3rG;sdSgO==-0hNcAtrk^^rjehWEX!Jk5;~LCdmVucyL2>l#vqh| z$GobVF_n^RzeA`O@gx{)Dna64?4tvQBo>Pqy=CY&xmhZSw#A(wPGyd)pAWps&v;6w zGh;%@(kp8km$wyZw}2nCCaiHoYTZxytrtL2&2OiPL2gD&8fVU{_rR10sAg)QFN;Zm z>|kY}6C^l4O z@pJS(cO!nx_R>AOo)u@;<~SLdt?WclEMCoop+D+Ixz)RG&;`go;&;0Cqareq8`?zTa=q_ZbQ=Nhmv4NhrW~i$Tvq$8pLd|30B4exbE56o= zAo=z_VApCKi0=6y>*}_4bKPk6CwQWA%XlKj*-p06wSnJbAo+q?r#L)`zc0bFm>{x; zZ0K!zr;fUa`P3U@%i$n@z1(eOm#&AVODtwzfN0$B+4{4w=-r=X-a@ZtDU|J8cYL=I zM09#RDihvopf5qmw+Oxi?NXT1usO9fBVpOmlupexWMDM$w@MB{gn6tJ+8(gVfD zg-^JY==uq@Vu=gnB&YJMNs+)1_He_al6>>qdhVGT*|reK)!tfb>Ugt+r^7+-n+?Ag zPGqh-^fW4Dxv=^8o9|c~dXiWHvSO`R@!T{ahjK`q(Y|8NL)@YI{k#)<21Q~-KF;Ae zK>WY2%g9hHfE6q#GQ(OLHO2r1jgJbHJ7m6Z&s+0-1M6vjJc-r)<3;(jBJYr6ARcz(-9BlVAr)bs1-n zUSLP$8bP^$ZCo32*kgYbi=W$?FLugG9y)MXZvpI{nAPGWjq&Y^$ZO4N_)?;v{+e`{ z`zmb8C=xVY9;;I?b08XCkH0U2T1#Rmj0#_7sv-x!>A5BbH^6r<;lQai>Qd1m?$Nt{ z$s!ELOuTW-aOjT}PaV1dSz}27q|>f+-t+Y2tp;qLHs6*G};Wa5M}(BQ0GJR zq-XZ^yfS1j$HAZcLOI{?OhsqR^F(mL|FFd}LK}?oT_HtIT6ArquS2z#5xCYRotz5A zQ%~8Oz1s~ns$R~WM;hIjizrF@yPq{J#kRK|M5*sCT4HQq&0;n^0tLzh6P|rkJ?Vt5 zd+8=QcQhhjPMU(AOHc-N3n)Y*lCk}|uvth+6BR?Bw%n^KRkLXzj3TVqV7NCVV2t3; zFNx^i>1at|-2H8}s92NsFv($%qM0IpQ>r<#J8L~%Ygk}bHe;?&@>N{pah6av9%*QO zYo_X|_=-SWtA$1x?K>k_sjwIIgzwe7?EBNwj+Zu?!8T}7R?@dRyq$vKk)*$CqFUJm zBD(lWz&r3GACsw*;i;}xq?NJK2nn3ZT_ghpROhWJFO&aXJ6?Tj|4JEm?}~Z3=gzRM zA$6ec3ccio9G9A`q`i_o_hEYCOiuzsi!Dayf9Jl7;-m9rCop0{O;Oabn{9gCgrsR& z70vAW1DR>>t}gGP8SD4Vt+=XL09GDF;;_O}B7p`PwY+|*kg-Ua{$Ug(R<)rEeI8y+ zRoBMn!c~{kb~Q&J81BGpdGo09GasK$AROiMAZ}e_NwX25OrZ+=t>4mBSA#Ef4NQTanH7AHc?l8O6b3!`+AV%3V@FbWb+?0w z!_eU5({;EwpO873AZYL`UYktYyX){67ad1`Uq3k&yjjF~3A@MSU%ov!-ZqH*w2R#a zUCf$@!dI`ixFArQ>zvda9}=F{5T)_OMArT(Q>(2Ha7Lua^AS-A5z z?CsEf^ zg@I;bKrdj9YnT5>6c<(FS^cF>=5KeFVl~)FT`k$BP%KD<^W=NvN?TRNR@Q3XaVn-= z*z;%+iX(EhVbDzLg#cNmHHC8~CMCpIdT(+`p-y|v!b(>00zfC0ccUuM__$xD_#H{F zh1b4wGxLdm(THA|=3#)tS4oYbxNKL-MZh&y3oGRBPDv|}Q#4LtMOK8Hqq2uH+l^&O zF&55AQ!IHU(e|xZYXK;O{?EU;9j8jRZ*?=m3sb1A%xwc#sb(uQaumbR)>kT=H%{m; zU4ZJyH2&A2lcIMR>@e(@rBWVI(7T78Re(ygp!z2HR#IF_x@tG*)33T-ZdGt!mTG$n zkwAI^pxwsTo4Jg$`jNjN7@2=Mo#N|hHPSKiTc2MOcoXwLDyko8d#uyXNjb zUk{5bO9#J1Y#_~0;kw~GpvFz}f=gK7l`@e0w@}ue@K^PR_#&HOQv3%<@5{LcXY`f1(|s`U+w*TyI!oefNL1Ij9DvWS|j zX7(JB7ZMiB>=?yzf>Ob4kbnnHH6%NdReKraP(68xYfvn=HM}#tp$+lg_?F-3z6p7k zPKW^G2j&@@Z?s$}{8ON`sRm@>7%ib(74m?WTxlQYpWJ(!k>M^ZKz@Qu|m-@a$jGK~~_U&Eq~*fI__uxU;y4o#{O(^JSa3|0AU^6Nw^MwObr z$RpEfet+3k?e4rI_HLvQ&dW$ZlM4XxVM;ZftG6#=Hf|;b?9VH1jp`qkhtUHUD_$mI zP-ExNALP_@5uE*mwH))118orhKRLsEaB~IPw<|x!q>s=n#i<5_PM>>F9T4ncz4xY5}*JGo3&Qh z+Z!wkN(!!FGso?-YJVqRCP-QOVB48{l=zsdNj;WKCyI7js<(VtzTjHoi@%0|k=DP= z|IvDA`c|0V+nQQkV%4+qV9`$089<88Y7fpCWTvD;F#hQt>Gm2J>>>o%g-?pUdBiPB z`GtHAY0jBFzUlq`qz1&sxb9857=ak94DV>Xx)nB|4&G}jFEX09BCKCxqd7K4tIdYx z3NUH2`sHZ|@3D8rwJ=KeH2x>#{Urv5Kmty2@DGV?+%YM`1W z`Sfb_I*rO*wRk=lRjsX*R6Liuh-$xXRG9g!;H`&AAM_3NZ=oWYnin_{NkO@atsP2WwLZ zz0Y$-F2*~rnpx6Dj*~G}GNX|s>*+H7vNn$2ngIs0S(P7XIxtqLn%EF6Ykk9um9}Xp z+5KNknrD`XW?{zZ^IL7*15|NNQzG~e8kQ5^c!o_`d_)~^z!gR<)GU9E8=o+!m)v|D z+xT&%7Yxd^{>5Vkffu@}l$;(cNsKb2j$*d>+tnlX=a|uK#?}g7JZ@Tf%iF5h{??9> zsB|l$!~nOOVI*xjD6FjT0N+|$bB9`a%bU}*Xpnu?B2U<-PJR>mocp&t{V{Z@5H8X6 zTAK668Rr64{z!unU(SXP#&y~&wnqYB%)Q8kS6x)@Lek zbo?1$Ta%-A-Nv8g-?;Rw;gKTqdAYSh^#OcamFE4P=}tc9i%o@nxw_lDu1UGqIdw57 zP}zI>UnFi7wC1yCva#=0>hQ`BajG3zTlL#rnX)wu(;Vl&ag#+a>jKyWUh!a!B9ukJ z(fpScqzU#cSSSEX>}bDUS{yj{WH*)XzbumFyT&(>7V5g)02V=}O|a5i^s*g_8sOmI z{E)Za26_Y`6{D>!uF9%p=@UfIq#?GPl>d$CHX+X|L}iKN?Hm~6v$v9G6JE%kk;bBB z&@++h4^#VQ<97i8qku2#rp{XR#JIFF7%h6s5Et$rp-zpS(?75ZT3OQnt&DeI`EKwv zj=-VnDg9ra)jF$x{yHNjrys9cP~gKHp1CxQSH1V!RQ$DeV)Xl#c&dP2b;!Ohe6QQ5 zm|!*ZNQQj+Nr@iW(iQ;8i4KAlUQM1f=NhRrbpWCx?A_B(Nn=vi07J8(tPhkOvS}`bG zsZWcP3?&RXbZx!?eilqa8qX^lHgu}P+f+(1hX*4*Xu*XVmOA8uM`!RhAR(`;lhk11 z1V`rxbzcewlxPm!>fu6q<_GiDpsSF)$8>teuTL!u1YD^wJX=wswzIHeUEm)+LQW>W z?nOxbIoPl8y!$L3KuWCY^Hc!asoCr=BW9Ruk(JF!89FVG+9k;>==WS)t2DT%mcSAKsjzi2gZF|JCXEkg2 z10!VeYTU`Noj8L=pE8LK7O{+t&0Mt}6b+cVGFHE8qbM}%Bk(^%Ai6jmtk|b@7-v)g zmdhBgY69$wL>-?app#sZc_g6YSM85FJX=FeAMHjHXX2P_W~vJ#6h3Ez&MO+l#&irP z0U|Q`8p$?)2JgC6@`vmT$5bY-^W2|z7ZpC(B1q#-C&uC5ynM6l@T%78(JnzVX7ouj zmtC{tf0o}C3VAAcVQOLV(GK%D$S~VRWG50IW)B=kQhMg|lk}uyjV@>{LZKCr<|Q;5 zBPjA`wz948Sa^}u)@CNT@*@ABxG0hK7~oTLWRfJgN5KW??}^E}?B`;4ROfzJ zuBQ1{7crZ2{LN4RbH|2%NK*{l`@Mz?4Qo>NX_0=yyd8nM3Ekd?D;*^;v`rMr3*Lrs z&Ox1DMab=ZRz7AFEH5%2{?`GcIJ6z?vWhN#<(R2K?4mDo@;r>%ho!9nAmj{u^=us&8wf)%bPi=Pu@I^ZuIx${ zQ_S4cx@y?fKztba0&zQnRZYiy#QgX3rBxG3M%(5r@>wN!R;YYU)$B8?`|CEZYrVc_ zd()M!@BAdyyLbtYHzdq~F%Dtw8Waa(=(`$}B+MrU%noQAEEV+t?P~c4!80rRITIcy zznYJ2Pgz5vbn5hP4H)F#I0A~HdC0vm1o#ucY3;bhGawN<6zXGi`3iso)hL^{yaj2M z?k3xc1Ma+C67a1|BK0CXBrI89ct(QTAwR1zr-+1Ao^bh`i1x6%pa1>fm>i}x|Mtpw zI@-%eo_;lbZ*hC;dw{rwiT)*XE!`EO#{T)BE*Bu%*%no`QP;}`e=h2QPyO4Aqo2!< z3DW+uin#U<&i4(46HKFC4=h*CrZIe4?JS{`$4B%JISvH+(p1bfeNC#$g#uZA^A3;C zeyaU#azMQ$>?|(51JJ1O`XfUVyd-J^1ha*eVXAETnNsVT&Jh-BCxN|2*6BWp-Y}bu zc2<)sp1WWBb6=;T1S9&=)o$$$AnKl)6nsQ$Wu*u~h{_E%EZZc+veZIhBaJN zu<@DHi>zX6!4920o5*(!)#2T935P8oq$*QZnvBDF=>W8f)wi;U1Hy0AvxkozIKS|i zsWj^A#nZDWukLabG#b~(c@BM5{GG<+_&@$%ZCo^aFJ%XV={GoQJnAhqg=RI@2`m-Q zD|=o~shSlzA}e-A1>7zQ%I6!l(wDgQ^yP&|bMMzuih6*TB3jgy`^@CkwyyIYF_Exd zMK(ryX30kTtv`Lg^ncDvG8lR?+m1-}s{ZQ~vy5I4v_CEux0?-!z0)}%FsxAGsyCZh zix~yUuLvMlFr$;66Da+DwH4^kBJXa{&F+zHv;y_8 z+jTn;_-V>K{UzsL^Wx23wzBkwGFYpmWYytilZAvnG{nGxTA;3y%@27t;qf9v8y5Pz z?l_7a*9zZ>E93=O-3YU3{p?xjUv?JMYU2g`Cj_aDlIr(~tfQ$7z<-#Sg4nWl=+A%! zR=^V>CT}hk3{$f@xdg8}_xiX;^#)*_i!xYxKO_v$CLLAyz6iQpnp=bOJho1o*r;+UFz(v18e7qz^L8F5POpnM>bQtLA*X>_ZI1MIvrK z8xlu-b8R%eUTDine2tw=jI0JyLk;lUWcQ(lk}yKL({Z5_te3eH=-K?-a;~2K8Bpbu zDXz-_vzpV4>#OBWT4aPPK`EQVkX%V(;+}7%pg9h?Nyvsb?Wbm>me8xjjs}0Uc&L&# z*QAc$0+??EPJhIN&z42=%kU{Su(w*Dq(noDp+K@j^H>tT`yiaBAldabzAu$Ztn$(q ztEcqZekPW%)GWG19(Oj3dBal>?`H}#%Vi8S`=O9yR?Tf~TS%jUQot!-L0lpb1iN?0ToYuD#0pMRvdn%6Ow&`NPXw z&3%oSn$%V=`v2y`|9eR#F{qmWBtV&13(lG>yN^fLTnx;La%Qc^HBe*0 zm9*egabebRV62Q4oiCX4ur&8@z10f#B62I}PmZ__q3No8>xIJC8AY5?q#IfvJK8fI zVcp*Uop9E*F`)U6{I+eQi$=?QM@(e*G?vbq|1vq$oyZcs2U~*V->z5Zv?a??_N5#5 zIhCRiG);C+jkBCa5H+1cS!SzR9i}NyH9-X#U}ix=OaX&}muZCVsun*Scb={$M+n11 z;qHkNop@sH8ONq|%JatH+4X%^N^d^v((7?w;W6lOWRrVDMaQ{S&G0&$f_Dw)yaZJD z9h!Q?8iXO|q|3CZ!3wF74XOOLYyYLc@43s=678A>tNH&2x{G`(4_p7c4~bW=|I8YG z|Iuxoj2vt;#C@6MNH|Z*$N41RJ8D~2`He32IrrsWzL#s;4GaF0DKE$qb8DT*UbBD6 z0|mJxOH9x9>(|-aeEwdwn&UF)X&x50I;TUAm4F4o7X`{J>-IX|<5YPO_R<&WrBfsF`fcZCmGF-@UJ-A`IN$u)&Krk7QPMAkxp@%Vc^#OHeH3sWv#?#uHmE9uxapd7b$4;=dY5e=FQ#&cp{B= zb%Xkb=+8)d0v|7;yEXBHVA%)`eMonK?(S)vZ}&d=dIz`J!x7*R?$4w30PHx37iu$L zHd@#tEgAmqDQbkiMmD-V4JhiTK3MO*R2dhXesAXum;o+v!Iv;IGb5D1Y+o%)(3G*! zgD>yQ=XU9n?IawPZ{@c9)s$u#CVCn-?cEo{+!>+W6)k^P%;lLisX5iuygf5i6!k-p&+@CoJcWp6(n(1J)siPSjQ6(1I27DP$M$lu z6Z%eGxm>=t`Ff#2UU#12cz*HdJ~R!k4b0DD^R{o>HRL$tUsaCs*Ag}And4QLby|x6 z3Rxp9eeV!Ht%(+02DjQz2A7!jU#`B~W=NM}66r-$q-4GS z_pf@P_K6yndJEj1sA<8vJj_A5pE;3z&}Ggvik>wcRfmw;V)5?;1bWKB^4rQ?{AxAC zk$ma{S71nu!$eKOWd=;AlYGv8lfJXcpLU|RZJVDEbS1i0KW|hdTH()P8*G!yy@VR02n>u zQ@S8S2UFVnL1Jn}yY69l$CWH-Q6zKK@8{~)d}J+8x1g32NyE7~ik#`ez$8bDNF)>X zxJT05*{jk|ltAkkWSbZA;*eont?MC~ce>2PI2qC_l5H}Hl(uv37tR1$i$14qk@vZg z+lu2Xv0a@+r5k?KEDqo}d}IbLI>kqjYUb^vLvaRw>ZQuB;0(210Hws0l_lA$h93-7 zuwl>1FP{_Rb)X9Jmy3#2aj&kRpP1f0!|biWkJ3t{g+rB6+v~$2QTbS?M?m3X7nmOz znR8pr@|~fiQN7B`_=n%bAJS5s(s^Om(oX#kH=b&LPPk@DgX&=pnWm2!wS3`l3Jehh% zxY0-QTS=*dD$NB*$9#X@!DXx9PiSytW2N!z357^~;STF+SiT^)w&H2heDeAGd)fAC6jNr;j`P-pyO&F z>y477igtV7)&_-TXSUeyls;Q&UUOZ}e69~fx<*F%oD0Kwy*x=iz0g**IR9coX|E?? zBAtVspyHpV>mUQcGIoxsEt_e~2;|@z5vIQFoY?STRH?Tru9YC?4?G2@&;=|R4tyq#duS zxFsacx;f=KUvKV%-H>9&@P=(1m8e4A!W^vUQ1vm}b{if0Kxxos7m#_%ZvKDWtbG7o6^sS~}D%PQz|op8^+|LqT!=(MVhb6Tsem;4#J4s-5wX(VF3 z4!(Vw)w37Mmz2^m!YyqukI|QNF}ZDd=b_H$vD#e#G0k;Kn;I&j2;9gs`>k_0?KKtu zqXdXjhM^vZ8Mhhfd$YeC!+uIXf3YW_%p(-b7OS7&WZ^nWf?!e2fb~aDG`9{Zp^jp_ zcUNuZ#65*8-&|dBg`OZzi;Z@K08++X{e_?7M|5`(XEv>oDat^$?tQ`Cj;k}}8zwUB zJH8>@Iv|5xl#S>EfRc6xH`8erEq)o^LNntu*d1T#Jk0 zVV0%D!{6C41y(5~7Ax)j%846z@4%P%2UFv*Qr@eb)t$K`F;_>`RjXZ5@T_Tk>`$*X z2ptDCR=vtvw2Vj@;GSOEH)# z|76UcS|nB}bcfUqRHZs{MabiwC44-WcMn^TN=%?^n)Zqn5rH;9J=o zh=smwF!xETMfW>6Tq!-PXxU}Z$4<*@5_tQh9-6sa*O>uqTRu{_2p?=G=DdGy6=)5$ z$aC>Zwl3eL{?NRxbpM=59>%d)qK}r6IaafqK-8c6FgJX(h)?MAG!=_`)UjxnC$CD- znwJr^a0G)Z4lL>Uz#UL5Ar9PV?p8gm{c&H8C! zFZ30n^da2D?Il)J5af-mQTU>etAU0WQls;G`FF7VF6w7^9Q6+pIFZx}7k&4cP!JOg z|1fC}`tViys9kR^zS5(`K)oN+;jFl}H=fw)lzZVh;|<7-N*??BMMWgFF3USVv{1dQ z*$~0o%T#gF(1hjh%X{{+C5T7xhJ!Fnpr(ynq;Zj!Lhv-I`tjp9^61>^w3x664Toj2 z;EkS^p-y@x8=3E2lqdKV3DX2A82{40$$%04MSogvjsx-Tp@R{vJz~g5<`*|J4_aCx zEuxxP9q~qmpL;JZ?ZBZHS$OmK&Gv)L>`nYr+Kw^s$W2jpqkGCKU5`=39=#lh~b?08YDwztm3<9D2$q?xOXl7dKd2LHC#@p^D&3$tKvf)V z{P?{zzKcY!ny{SW5a)@0^p*6vM|UST#lkGzrZ&br_&0WfW( zj$zuOQ(Y97x-|;}S+%VpL4?yMb4yFE_MEy$)W@Or{Vx%OKMp&S9_n$6n(DpH52iFF z1UEI|RoswIJA1! z-}mh9kF3JQRJ1LcQui>T1Es}v{7n(>epBflx`h7AWEai;YGe3ess(FeNKa}ulBM** zL6=-Bwo^A2A72YTTVf@yLN58y+wta8^4XvNTg?GR&rvv<5n4e%yav_jwJhvvl*3S@ zu(F`$@%LcjG5U45m$;&KkK(U<;CVpMw646v_rQ11v41LdGW%0p1o~wP}5@Bh;k}HYXg|iEwuW zYh3talA||w;qh=LHu}702zRAuZ}(d-w(_tmRTOayQTT`ryYuBm#h!j4)Vj%^olGq8 z=l6z$1^s}#4cA;lFEc{4Qvaq2a%>h{g|Fh2d=Jx3i5xjWp+P1v>%RFfeuT$C{FL3} zAs&c0YVZXH<;i02DG{;w=PCtp7-KO0lVSrF+0`xB>)D-7@baX;P&^fs^#90qhxs3h zZL$^_YKu<**qPEp8~yGVDxM@BJQ$|ESj~5l>Od?t-Q`2dEUdXajf9naZ~rS7fm5IJ zZHh8^elcHlO|vdgM9-j>-lDf3zu6I>T^2AZs?VPy^ug3=(i`8=3f1ogU1|`)FGu{j ztWpDcGhd>?wVBonsk7oXH0v1Q24nEl#t_4y!db_gNneJaNx&lgPPHx!c=wSSGLCGk z$k6x2ff+Pnk_J5?->}zsak8RbED>6veyde%qaQ{qEo5}&lA?q=3Iv4CY%LQ}}~LHj)JwRS#J&F5@0ReEN-7(@fpul7;I_(2TZUL7OkuueKnbFXleIvr)zZ z35f>K+p0gOzg1dGg3q*NmO@g~Mp(a@oww2yRxCAVc{tp3mp z^$~WF&cD@rHB&)7V9EnSN=n@)&n9MfaP*g!9@H@yI1 zC6H`LHsCxB)|$D)bMCt@kMPZO?P*`QB}Kh+^L|jMiG9<9O9&Sh=quj9=!6ILSf zgCp`aP}UXqYkKlqiSw`eKKTRrm=2bEK=eKzH5##Lb@ek!)U6d{n{qPEG9KjnXx`e_ zm`ryH#^cj!D?w|>vlv>46}TeDWE zL0_EcfU{=sXcdNu<&?H=7I6#FZBVOcUwf|<Xv-R0C+0*&Z;9>lM6SJ3 z#m6#YWU=B)&GA)^S@oW*M~et^)xV9(Zyz+3^0XGo7!2t&WlRWe;-PTXtGsLwxh*9; zjQr;c-t<#9fI|8z_NkFs9HtQpD&z>f(kVkwIxAmGEpYaUe~m(hcQp*ku!ZC_{%1A! zLI&2>G$jV6hHRn_{a*EjgHl4zjhH3&Jh-<^wKewnc#FK#qnFYN`I5`d6It9{>08V( z=D2I<;YF!pwNDP!n<Q9w|VO4-p!vXKkKduYziY zQ+({z64CUX`xYPm{ir63tA=`-9gyvR8JilHI9}v5D4y1HB62Za1vi5x@Gc*FAX7vnq4KNvIyU!ZOj?l^)wQmRME+TkJwg2udFas_F#ad~ zOE70^=|43`95X`xG%xgmdE5Sy87akzjltZHksPa7cB!OiCch@838y$0i7fh)e}Nx) zMte)*aTi}6Gw<`M)1inZ&0bH4tlGbI3J_1RsT`#WsSl`1l$Uyj)QvoTW0;q?S6y|$ zUWcg@r1K=hyu39>srE>=jrjIh$;gbovDXPzp8fyZoEH5702lR2|KDf}`0_1@{Vx{c z|2z!T$#Gmz_t8Ig6hqOKr2iIGr$2GXg$d1ssE6q57?xF)O^KTX1nGxqE8T65jA%!m zxwEOFU!fCL6gJ`yo^~kU$SssGu{+$Di00}4N0g13Y1WcE5Yc8rJzR__e|!^1zj8Rc z<7}g#(AQe&SB~y3zgpJH2S>-N(#Pv-G0+v#u7ts@*la==bqw^yVXIxG*P@o7k(~oZ zB-+D&7>Y`tC!P+ovARJrtx=6dw;+p%$@h)G#IfsV;lK$A*C3Yf)Stu~(HKyHu7VRD zC3UVsa6pdj_L9X-?LfAN~9_wYR~ z)bA*Bp%2KnY>5?Hg!8ssA*(j}uQ|#$h22$yN>^?VIp!ySK?)J7v+cUMr7wgj*kJR* z1F2c19{U!tOWwdMO)`DApG?UzsUC6?(t5?)4%N{WuVllGjs+8rgy z31>~kZ%r@Jj`Z9asiV7EMMw6J=ww$Ca|<~Y*1RiWo^#|H!A6PZ1r0Qn<3(?1%D zH%dToEH3-2a=Rz{J3Of{QRyfc4;Bc5+4Uhj?fg7e>IAuCjg~%t%u{DlVVL(j^(*{v zU8y=F$cbGwWmsO*wdB|q3ngSDfzWg~)p;t_yb_WnBWLXS0_tmVRi<{pN#W}%z2zoF z42Dad{@i-A(?`<4X;Tk}{7G}F#->IeZ=$FQNV}4Z~8V#~c zwlP+ZBJcB5enskZYkA2VFFZNGDr$9QIPry#R~j`mtp_3+aEoyw%cMB8vt|iCjsiQ+ z?4=^}=32Qqm}O^Qhv{Z4r3tlDi51`6k3G9SSE%XC zm-;RH1^HP;zUw;Fdrva6SXA1y8hs8PGHGG;B-`~xe~>#(m*B>@ z&*l4LPPBHJ?WwjzEUPyDHGWwenco3_pj%na^sDAF0D{-*&Ur@4{wf%%Q61hUHqG5) z-E5~iWa@p#1I~6g-0NIxqhrOc0fe&x9RYzvn6*j;Ol|uVJ};q_>;2$kvh&wM{HE7a z?Jwal^{V=DtKzpcxz=YXve4|}R&WG|C6I}mMpF@|;Rz;=%p2A>>F1nIpzBKznPtN( zxidUfR*}U+{fwwZh9hd_f9Ndy-Cl-WxznofVQBR{aCdbDHWzoRz*CSW}O`OWxD-Ny2HoQxC`8zCb?C5|07YyP~o3tc|khqGq?m0 zZ*H_?<2_=qhs$GT-B`8mZM%Y*4T1~RxExnuGDV({5~`mYd!u^i^ZK5zNg@6Ofyy-> z$vt|PGKc4NhKJs*&Ln}67L@Bm1kGRCSbajnaAOgi#IETw15Wle?%`+QhsMYc^o3p% z9sbekfl%Q3-8e3zcd|EKYz!>#^Py^Ltj8~*nEuj<+{V|mHnRByyGS+rxWoo7t*#PP zocMz-8KDUm&%Q+QHojno2)jn-PX!eCFP?D-o8zN;iDfW(Hf?A_H=?m?%JHb^f_*As zv8{H7i1y0KP5K_Avz2LNH&*c_o4Mom^$1aR^PVKx!A1!+OMVCu^II$%psh zRy-C;@H6J-w>0S7YS<;G!o;WRY|0DY=Lj|RP^dKYGz}?@ENKUR6)N+lWyFZHikfgM zv|wGjyHe`0S^2XZzsrH5aw~Z&4LD$rsPkC6%xLv--p_3X9#>uv`s{^rpS;#(!8&7YlC2enDwM@YOjv&Oe&qmws+$dX?59n(YA81SF!XH)p#C47B870fr85bU7^v{dE~Ed=I}_8)IO7n1tW@587rR$-pXN+!eEE!hdFVCosKie-g+Eh!%(!3ct-og}4mwYyDVdLm)}u)FduMs5sW)=!-pU)=355F>(5 zX?*KDK&ayo(>@%YiN=YOb%9&5>_0(9imI z1XbRQC*kws5xNIM(Wn-(U_o#N2Zk1iM#gqY>TQe4W0;AHci6{9vCb+8Uc7&V6T)?> z>vA8_r#sWmU+;itF$45+m!#&}T>kb>QaH!k zfKaU@msamH0Og~HH8>9)4T{+^pX!C^6)>d_jV zf#$0@WnvI>6`d_)#mL;>b1d^I(xsROOC{cpJ$FB}IC7GCat$w{yYcpTs<2*cr509$ zyn>Y~yq~42zvz`_o{C&oVTA5PS-jRuHWbbDof+!a6E<*x=6D(f)ng+yn~JRnU_xd~ zY<=(#pHp(e!>RnJKl_4R#_cC){7q)6Jsv%XoA=VsE1Sb3@HaWukIZflPy zsl14o+%u)8lJm%yP_Mvf^NnJ?jHOxjmrRYm9Gr^kQs+}F*xZwI8~b4 zN?$<81mHKRcISnW$J?PaxKGh{elS`c?Dv!7rH`dR>{U{rd@M33M~`<1RZ%a7Uz-hwE7{ROT`m$Ng7f*KCgM+p~e{Grg@XxN2mo7V1IR|7(n(Vw&8*L{g zN8|K$ilIJ>>jgyX;`&@RJ=Ko=xwb_Id6R_AZ}5@zLr-Cx+7f#|fQ0*XFjYk4ujJpQ zDFvJ;&+;g{kjlJbo!ij6-HiTlvWI`fE%ba3tv?`|6=q!oY=NUck_Hr-t1nL*kc8*q zyn5ePfrAoVF;YF6PVSc3{+rt}lLT?piEwTajEwRagez*Zgzp3CU*#Zd%;;*0xE7P^ z#U!PmgID3SX+kFM2EWr#fwUUg8)Ns(gDob5Cba_F>$rpsQSNT-+nrs9?;d9!2lrhPe4(Cx3y8OS@PK9ULPb(QCtfZsOWk zsBRO#d*9CC!dkxeh#i6HBw6`e{Sobjy3)vYre5Y$n+Rx&!tbk#ShrIPqVM;=W>Z29 z+jzH!3roB^ndKD4GFDmGl+pe1#`!y9YDn=nc6LD1E#^1X}wmYHAZh4rzsjBY7pKyru^T+R>17 z*X}+vdi5}>Y5+s6Vp79K_nGFD_m&O^IS0xIP}P8jfAqbe$ngpL>p0;yQAv8X8CSL> zJ3m>1M;+LA%F;`-(W?2+z#A@TWxd#t_LBPP|)r-e*0FC}7`mv)3Qag|AZ5 z4GYQ3DqJO#%G~l{wp-anz%(UR+1J7OKgBnSYn^RX^!GVq)_IqDV;ZY*$GDm1@u{Q% z$#YG7LT?iHASVfQ=KG%EHse3#Jo9 zf#$6eTB$}~LAJiV+YA5iD}C4tP;$v{ekI;8{Ff!1+6sser<#teRm`2$l!CqJt9Z-v z-Uv9WZ5ugN_R(RjE1s9{y#e904aN^c*>}oy7xY; zlW7IwfVM%#zejKH3#0)JmtxPgVN|k8dS7~3spQBH1mBX@nOEv%0tkcR(-vEMo&K<{neqTlywUVOkI_+I9(7WT+!S> zTP#G=l+w}k9@tnfc*NfzSid7Y2lieqGcIGc$}Y^NCHTmSCd%Fld;+6JDqN@%XymCwf(>BxAKBcFTlyO6Pd`YLXd0v1Ew|h-T2ZHYIuXkt&eKN-1}y(J5I6>pnm1 zr9O%ovd9*QfZD{I&JkWaul(34azlp}JkJqYA2u`COLCKIBa%ZhIA`~4Pq4dDrbK;X zxd*MdT!)#is1YXb^$-*?pbY3O62=kCo$ro^3$fp3@H|C4l4Bxyg{}h7pa&ycK`?_y zHp^>`M@PZ#)K*Toa_(pqDb=sM+K2 zX(LIRyGo4mhE6_2r=798gX`2)^UPm)|oe{6Rld`cUBFT%+F)$@~7(^FX4 zLJQxjsvATf$o}}hTsOkK7u0eChm+{p5ybSFALVPW2G#1#gDMg^k4tuEHA$aDlzjL^ z3J7jt<$Z*Ap{G^t*Zu9It$bC^EtxBCEF(hU=C}S|mR_;`V9|#sz;SG0aA2R~xHCcf zmJr-q-xZ6Z(zY~!@;CiD>0ACG?BIVintX1k{`8o zr>p{e@2ap2!LdD80su;cwbXC1h3K5%TwsKxMz*=5>z3%BFZAx0G;`@Gy3FRjNnWs{ zC3FY1_QACIKa5Z9!hYDLZns$_HhJ_HkJNN?jIcCR+y?~NIT}$prGg2Wl8rp7CG`jr z!^(EiIh6>8DEb=F8$LhUB??`f%D;pt}%M(;D*ioB}XXTkEayB?{y_g9g- z2cuFY`sU)qtU&YpWeMx$t8{v=ngio*K#@d|g7mX_Vrp_rZkZ+u;3`j}yE;f){o;(w z9`5@7_}GOM$xssMw>hOSXTvfEj@fU1{Q+zn0xrgG0%~}ilD7)vPR=wNFz0kz@~bL1@fETT_{7KlQYRy~NH z_OxgxTKwqqAU*v5<4yP#5tvl~01yC`1I!3XkRp^(TvR4`(3}Goy=ZQtIbP0pf>$84 zuF4*J5)7J@`}Y?UD&{`_f)>Pr?sGfYLG7ZRzzV6tdcdBrx49#(1+?H8yAhZ`GN6?J zAOHX|001;V1MVcbw-)7u%F$K?1Z@Pygak|w2y!MPWPgDF1Rw6!K{l!3F?lS|x2w+l zvBT$E%5?HEvh>lfaP~%5OI@=*BnXlT&2aNPHx%W)xIJ*&xdT_-W90HWw17TR=2&a@(S35-Bf_yu&zeztuL*LJId2V-b-yP55y}W$FtB} zPMXp%$;O4jEFM7Ng|lLJkR62x6W2R*AuqQ5%j4}CW+S?diTAoqDP|z2Nh5;e+1d4n zlBNEC!2cvoETjxqy(TXUQ)*eoGAyB>kc1Gq`J6>^U8l#ihgQeTbd#_Qy$w|UBuxTr zuL(PY)grY{M^ODW#!*>aaRu~^S3K7`ea65S>Zx$FG}rA+E?{0y(~e4~0HtaKjZY=z z&%m&ju!|Iz@}hD@XYKS~v}O!vxL(n* z=JZCoMWLs(VoFSUI3d6$+{D`P;PsG7XF&0Fe}Z~jQY423{0Su|_0(R+Xx{j%SlX(D zdQZH*4K&6~p|Z466AnQi?H-$Xr2|Z@GW`15Y59Jhn&{%xiX_Fpw@R_o2dwa~tpvg| z)%uMl`#^O0*&j*R@RDEMuNUGs!44S_PJbTwqVai0qzsH=Sw`gNO8?#j5jtljso}1+ zGr@)~mM2=)P(IoRgS0oEe=xCKC88?#rc^k8RKXlGGJ z3iaXLt2V|c#E>blFeJQ_?Ow4P>g4*RP@2Fn>TX>tfYmD)cYkXznn)K8OXPH;OlRpD z?K;%f!y@2dc01H+pYrvBhE8a56~U)`G`UH*WUF=MbJ?3OU;K+tz2{T_N4L|bZY^2*8SR8+jPtSy;>qLNvKW>=6iQDVeqkdd~}y!Zs~aDDT8 zmJ;myhlHo-oQgwtu)>r8#_pEEXV~$83UfL+5e?X9B z>18}vQKrM!Yz4-qkY)5V6khvpm6GS|db*XklRvwTRrky3@|B&aSICy)T9;&jm-|1o zP9Gkki`zXNREd@gjdo|<2_x%ON~`@Q?e; zG0YarbO7*qaVMv%;cc9ZI~Sd>-zmPNSAigW^XrqxDhA)RD;hWZXY>hL*X5%Jvvs zJu6MeI_)tEQC;#nj=}B7`kaTv$9gNBvnZd2Gtxwaurtx68%UC)Qo0E#Zpy&5Hnz1r zxsGJ8RYbcDGIs)5)8Tl$N2GUJS5CZJJx5M_I}o<)Y2Vy(M?B#RCW{OzL!%7q1rOc2 zRpQbu#jVBV@j<%jazlnL75`$g(P&%`N~&|b_lqT5xY$YX&1QNss{ucxnbs1rlvgT|9GxRIqMDV~c>cTm z(wZkU_)F5^`%930K_q!>{4fVqx(YWM{ZZSrniuE@^Pa$_X|sa;rRugmGG6-S_$ns1 zj8_%7GR=guo0MLDN}>mw#!$XHR`d4~kbn zid+}|k{IJEb{x^EL<=JvATD({R!Vtf{7HJPPNFb49Eu4!ili#a$h%4t?w^shs=dh# z690G*yWs8&-m`j3-cuEMA=YQ_ zif~8V`ksX{B)f#SZJTW?&y`Qt!Z7eYYBR(%LMTEwUeN8yFp$YTruz7uZ|_yqgf)9R zy6kkxY< z4h7fhjPZ7HLxd^yheU;bg5^S|jG%=J{(>eaOH)TpfP;{2hK3*$(d0)BPXQ|XL{34b zsyAgeG}1Nl!Whm@n!6){t|;=4fLvRYgxRHBvyg_ArVbw=RhN(|)=bGromC;5{iVF~ z&F*?AE%L5r|HY#S>vO0nbm@@W|4HSJLszRj+*fZ()^FRRlp5^~%7y;%aqul$vbd9P z#37|nqaa4?!-4Lz_OM4XQIx38-06NX-jcN~_}~?@h%-okS@$f6bJg7*e*lXrk&*3= z-O+v*>*sX}euhEvU}KV_4J)c$in4r&l0!W?k>Ks&aPIvtjynt%--SmHQM6STYa#Cj zvn6I`9E4TZg*Av$4b-?Mezton>hj>n903YBCWk(oO64Zb>@nsKZR!zc#0syKTS(CV zcE_Gd1gv%Cf)jWu2KeF2WJpPIV>XCQ*f5*1QqSx4tgiicmA9{ZG>=ikl&oD`?Qj#%oEaa{UNO4ofr@a6*bxa!EDmkSy}8@ME*j@!0|kMILrPD{=1-V)b~6v%v)Wb@P68XBq+w)DoQC!dbgeJvcNmvV6t?4L(!&pn8P>E4Uyj=>!czX3-w7-J zyaam^|N8!zFNBNcUkdkxE2_HNOjN95AR?C9$kG12+ub9l{+bx;Nge#j*1I2(E;57Y z#cnHA5B9SHX1g?^7vMFuQ+MrNg{Ddc^gDgZcK5akR9@=3hz2^ zKS?@tzDulVlQ>@gL+&{9{EI)%%g8&lK7$o2rL;Fx*HL^Mg!-y>nGi zMm~#BWIeAnL-X2}QEBhE)jSQa>}gAK%KkKjUR0YcT7y$Cmj_I>Q|j0Gn~P?4sqb(` zdJO8(M+v*ja)nB`=Hn#5+=(wi6#X6f*#sTkyGe(rN&)H#^_8!wlD(%99hn+D9}hF! zsZ-68FAU&zW{qUV;ZHhzn^HW!JpZ24GUXBWv=V^Ebg~DRu|P_f^o@g^XJEqH+Q`#* zFJ0+i9mqguy=4Tcb-UX9>-%g1%l)mCY-!n|sP|XO?v|N>O7R(CGycNRAdSbJXJ1ie z&2`Zg)+5!O7>@H4rZg4wVYY$z?4hcOXq3nW6ZmuI4$6B!7;LqMiF?=7Jw5R?aj9A$ zYOrf&7p67ft*X&TU!Ll3Jo#9Y{C=(t#k)3of+FP+$l1+4MjbTaK4y%Pmc;MHyPHKw z-adhJ^_9LF*75!@Ihun14WQrAo<{|Z0wfg7eoqV5+pd}JU^nawkHR-UXgfn2mH3^u z<8JcH%*{9KcHb1H`19u6cy;AgC4Zt2k`NTPoZ#A^kG&u&<2>`O$t&ATGwRHYWx$dm zwdAxk0_t+-wF2VimO|4T17*oWo(J76w~6N@iR0JF2iOBcQv^LE*BJ zvfQ~51#z=>0+_GB<#OyF71)(M-`;c&7F2P5P5$s*_-Ot5!owep))}u(e~|mpdEkl# znGD`*#r1%itGhrJz;(3WZF76ZP_{X)NR}_{4eT5ie{>fNXlZ0%k2)+z^t#rHu^wu? z4!konb(LiycuiA|2fr47ozn^fB?<{t*mMGOrP?DJJ z9k{6TBh-r7#kXA6ED@lRlPkyi>WR|;fR1-{Uki;^OH2{?k_4mNS<@xt7HGw{{7 zMM%ncdt-jZ$r!WOB{6OivutKoD(SurLAvO(q4M3NtKw+eVlN$5b1zGknA4J_GpcF! zuSJ!riQ<(C?J2YUNL-E+=^WU*CZ9)~B5nt9wjPelUrramf(q7z9=ISn&rBX$NFOv0 z+U<89`~)<-Y?R(9pvo`o# z#LthHOIT?({x1AlFQ@cMr*C)BqtZB+pljsyj`%(ES|HT@?%N%W6s^C2Up8QyVD|6OpM!FuxCkrD2$$47ic=7sf z%CkEniZV>*K;3E^bW&e+?iV{Je|Xl;diQl>mi8N%LNe`7IJ}ckTj|VNJ>q9-i8}h* zui;i%XC_+KtMYUrXyFg*M! zWNwGAQ0_$fh&Z;x$t$wi;l`-lcwL0kK@(+6)R+?^2Vf}41U~X0dXV-@fRMQTSG(k@ zaB=?mHg>W+P%b>LD5YA7AFlSl?XnHjD`zPIe)EI92R;TR-LrZ{9~h2KV*9&<9tbKh z8r62c4Fh`0BGrNgw+Y9Z;yKX}?%ZZom*_<_&vB(SaDH<=WNA(}dmQJ}boEf|#C>v}@&rH9ik++3+L^bJ#9Cni zOA_y#LtiAsqH%f0Cf-2Xp3heDSr$9JNvxVZ{f@cAr+qQwMQF$L2?4$#=$#NMX|TzX zK1k({PcRt%rm9%{dMZ_0h21OY{Nq8v#RXGzHs~zCw5}flMiP+N7J^H|V6ggLln?qW zF$~H~RL$<=+GbN)vv8ahU|L>vDV-Rk_u5BfGIL?>XYu3D8@x&a%&V&i z&!PP1-0@EUipY$gt5QncoTZFcyPF>`cCP>>2#1?X@Jt&i>?q+Heu8}$E3+F%3C(&o zv_rXMp92*pKMBUr3^#*KFgS8uQ*JYziDPl*jG3%1#!JDzrwMl#I%K~Uw z`#x=2L&^#S2B%75x_zwwvL8cF|L9rz||aur@swhJttqwNHqR z|B@?_7Hg7&TTv#kTN$6}_;?5>7Yy~Xjh|8D=oxM~Qxtbz-~O`+_7NuO9c@P5OGi%T z0Z-ob`St^MLIYNZ-;s}Aw!I0<+qC{)h+EMw$QSxbTeK2QTIM=3B`b%W>JP;^&hHL9 zof}mzs4BUw+KguIpwc^pey4V2&ip!IaCJAAv^wGDd<`>Li)O4jcld1z#Q+}q*;+Tt zYA4NZ)zlwO`v&!t5FeM2kmxn#qQpFKvy8F^j#7=)AovU6_2awAZEkIzhbe|!;TH8* z9e4#L(GXW~?yBmu>~oi-Ew2u&Jr5UivrVkHc-ZE3u$Ue8d-m-uB1HG}l(Fmdyq@lP z^aYa88W=nOR_b?rLw{QaN+0BSQ z5Wla>+D@^h{{GF1+9%YI#dYD~2Y7oGB^PLeOGPW&8C4RKH#*_-h5Ra0Fa9CFzK`^& z@2I)QaQkfjC*FB_Hye3zXPgzi#l(m&DXzD%tc&2=MeM$I!y>?ApguN`*Mcs?V{=ld zh(R2&8IPS_MKr;f&FGiS>ZnBcBQ+%^*TE#kB^K4OAHhE-9nrqe!<9u>`5lgjI2(6Z zOJw!oiP-L@R#3fbnj(K^<57zLBi>JVL6{l?X(SzoXI6wk6As$zR5&C3+lbkH5w2dn zRW-9VzW3rNQ^VJn&fp#VcVg;Izj$ju9<093jG$A}u<0`LXe}_0P!J0{v^nISx!rvz zYit5e0P=O2lPE#x7!y&-Ik=48^LEa^;n|VVJ+vD}tUl3@8@oJ*UvhC&$(qd-bd;WL1 zw)oJ#+c;L(xsQGs?xuC^Y zN{c)OT?%(#d=fgstB$1h6@W_PM`SmHC1_MPF|W_^%qvxtrTD56(Bch<%8EV<**G=b z;WP@jia;Jzi=5Zp%K@OAd~QkeKuc6JTsF46OVy{`k!~2}){c%G4Xy^=|8;NENkC;v z^;*^t&k60ZZKLXt0dB1@Epo;BinmU#Z<}0yKDZlHQKT@)aVqidP1Y3Oc88P>{GL;# zvFXA!@=x30_G>8cTW2!P_51d7hX>d9IZWVZlv*Q&V2+_g#q%&nv`Fy!k+q_M zg;2r}GB0L^_FoQd)iK0m-r&%xD8_xi>WqjT>8$|PL3^tpO5`$>P0)H*(3Qe-XDm}J z6Te}jSOTA()9CGSqltcOK<0934)Z#4;D<}5QuE2M?q~ydk*ARFj8ZfVEpx@1!{&}U zAg4A$+^BK<%+W_K`u)f76}91Cpyl_eeC{qy*QmI5v@t~@`bpz)8K#>iGD_=Vc6`tq z`u%c%WhQ+%1m$1z4O-d|i4>Qr#ODKr3JNL8$fx73q1RsBlrA&YU)+W2)#Bk1!wHQ@a(?)|*>AW1d!a^7xejPvcy zo(R0yybZQB-E-8+$?Uf}8ij}NvBVg`T@piOsUZ`-5JzL}Pt!w@hmpBYaNIVY*#?ZNDvhjb7-S{3k0Cb-=92crxZC#eJqmdipe0^B z3V}@&ZF~2`HN2oi!?}`lIAMvSfSi9zn3obUqTNrhri^3`Pn8t&;@u;4ykX|01*zEk!6 zZ}$6cFOLF!hCn&32=+@UWPKGbqy;66M-F}!;KzhTRNoSnuj&-Q& zzSMkKWwkR~AChLdejISk4Ffnam#0lus2rlj@CBf<<@5c%pv9K;#paItFYgnO+pvajkuQzEhFPQy_=j~j0-50DnV&w?` zXtIpWfN7S7D-eY;5xSkp$p;8F-W+6zOCcs9Ss>Uxzk9=2Qu-%qw@=u$se2WBIb2wR zQ{#ppfT3-ELlC)prRiEzPI@v(%&xu%20s56_wqxWV3@d0$^a zJq^?`$h2w8jZzD+ydER@7HJmYn6Bj2Fn(LL%V0K>&eNsnZ0uIU32}laiy)ST3nIl(auHcV6Fq<&{@k^G4zV@>6o)Q zc^0tRupy68u$c4A{tLTu`$5~><1_HG9O^xU$Q2tfXVQc@J1!7U`^wlNpOn?Y>$qR!W`ZVtR$CRO?n zH9IbSZ&pdDY$LRTZp{5kgm$~xDH}GrO>s_R@shu%mwD-ybIPQ=p4(-JKJ+Oo2{#tb zZXr3&EttDA&Aw#7s;4xsw}IT$%6^6R0>nL!TwKj!Cy2S3_}6~fX*KlpQ=~Ve2&Xl@LYB^x!HaCNj`_qypwC=lF&S1_dIuD zcZOPzn)r&9=!noboA&!|2^-&iYN8cK_K%A4KI|@rqjoN@=O|u)>+VCHa@hClDD??; z-y5_;K>`q{2F^Q!hRNHpz=#tX)(gJLu(xE5N%W^bt$4h3r&K;o)SmM>2`sr`;{Nx< zI)2|d`N_5(9MDBipR~4zv3YHxzl~1)8-`U((Js2nV;;OR`vD$+NoVpvq^W}GA3v^x zS;y&g-nXmoX{GE}P{e|tD&AZ%+^QX2wY(ofNI=uzBWI)_Wx1@vDK1>#HcidA)rOu> zzL=$?IPN)EJ5zD$y`6@*OFZgAP1}cyAHCw-T9l>*%p|Ty%#~(Ce1kKm(ts$rQ=c(J z!jGCAq%TF5QrA$sL&GtHbpsY{DO{5>jM2#JNiX+F67QBt{<_~hF;&_T&?OPceaCsU zBiRNWIA%*LkbT{NbsSfn#|=5t6UhJRV|O7`P{NK?ur z)?8tbdgUc9#%;zx^`ZH)l3v8?EQ{DecVrsb+_~otSi2rh{S$u-2QJi^9St$hMp^1n zcUs&_)!B-4Vh^mYBs7p&k_%wyX?nZy@f}!bRAWKZ{Zg~imR?KKPtXB<(fC``4_IKo zXc1xAlVsT`}cP@ODdb&IkAa&`ZR$LDR3ZVIV;&Mw2`8?ZH)6i za#i0(nV{>KM;KkkvQ;FCliTTps}6c;!q)t1JA0_mAxXYp^ZRwue-Q(>!L=6GJX|h3QpW_x)jm)p|VMbm|&6dkNne?4tbw%071i2{aECoqdYobR! zN%3$`=J!YFU0D_y1<;JHW&FHosTFNJw^82GpK8A{KQ?-UPIGy`>O~VIaMy%^XwGn@ zCK)Z3`W90G!KtaDTIu?2Jzd3-ap5Q;XJ|_3-nGZn45*n|cC0iV&$!YP0DPc1L+%!D zsePsUYapKl@7TXrO8Wd>^)`Lzsekl5d8f*61*Vy|$yOhvhKItdw)_SqEo=@nlAXP| zaHjSJhKKjD@l}&bU*Ed@+Dlg{Z;m|OXI;NjF|+c53MJj0{p)z>6CTS}=>Zn%{~X6w z)zEbfTf*p9`KR8CY7g#txKCpo34tP&1YbL3B&QtiV(mjf9dcuwS(pMRV%N z98GTWlPat{z3g)ZdF+U1`5qYamo0n{kJa-7Pn-{5UtRQBUf8owHkoXeN>L9|DbIsM zG&Y07hV{bgpHJ(0!}{Jw+l`0Y6tmeTbDU!h_JfFj-*B83qQl?1zo&{vR~zTNzCYUWWGU#)hv`$pdMBL3<~kY5$EFpwnO1~!NzI6AcNk@4 z`Kt)<0PyX;W^V|w>o1bWPV|<|$uCcvaDN;jo|O$8n2&DZcZw1W#>YamG?j;W{MU{( zazSTinpWJ)R$X2+Y2rUzJixG*>qFG*!MQPs$#<kS`IicNoF^{Zu=yKQ3j$;6|C-{TIM_M*i5+1Uz0LK~PnYpzzjsU}Fr_ zzGeSzcyHs8SvzXPR-Voq_94;nRv!#Lleu^Cv-|ySo?cx;%LBr?PKAz(Qc0|Be)fN7R z_~CQ1u5Jjvvc%jnJ~ARQ{hh;}Lf}Go#$=yCxcTcldhw}USLXTKtNarZp%6;jCGw53 zGCoF~n3u2nWLoJ--(|~yk>KF9rt#lc#MefoSNI7K?peMtgWjw!q3DQLZsV@(Xcn)a zi<7;=sIaoQ$%kjr!$yH&)6nG8%g^>iA4vS90iZ7`OS(&Ta&^G#a!21AN>Nr+eJJ$2 zJ4l2?{mH3CgLf}fnZQk!q@%sd?(opxMdWER_tZ<~{6cA}YE&mu4)QGn&1QSC3!U=g zCzvRgF>|5pg>%{|gyH#AnfVR#Tipcz)FmjsP~f~1`Nic^Bmv`mKp)ljWCkgJCc^B+ zIcMtml1d+kjz9`(%*EmOGiB!$+BSVdAs0lV#!PUuC-S5GOs= zp^gtEHe0SNZ_<8cF+Lt`;8IFr9^RT2l%&)SbdHLBwG4a)sMNPskaG`prZ`2ck$4$1 zi0AFY1LV~~xgiqE%2Z0~)+>`>OEqf{%lL+U!BIb3|?#DuS7_>1kbcHPpU^{FH6dzSE28h;|DoBxamcVF&R zg2y)tkW&Cx9A8}s=}lWDLk=)G^P1PL{K z6xK4q;8G5rLta#G3ZQ;V)NyW;T}7MK=5WWK*<_`E0&nLPsa~jj8hrqC)|UpO;;Dt0 zKjwTuo3LU|F%>+ay3Jfu9%)UL7y+qfcOpl`P*!wXb#1|y&uR#RyPE(ry`$1)rq4jY z#QqQaI=q#Y)6geR(Z#aBJGtQTEJtXXro6=f()h$aUJ)OM@T? zidR7I?5Bb}plv;6KyKkSP=u=JZw)XJ%%1YJAV@~ldoyTAT>4P8$Fjp7?+B%7Gx}5(n{mh13EZy7q;G= zg(IVk#d(8GeV~xE$EBF1%7<@HFnxQ#dS}JTW?|nyXjz&ftKd=6`PskPbQpsfb};yt zy@kv|$KQVk6`m#CqDJq<(J?f~-Th*nfL$BY8F~Qz7h8d1zNrA*O{Ubc`iV;et7Bd@q#byYs9|fN8{?Y7V)`w@ zTTM7QFp5ibBlLte6>MCj{(iw|4Lx}=zOpUy^(y7! zUz=+ZHtXKA;x-G-3=*Prvx)j&aTz{;#L{!+5|d&{^JYO&Zjb}Pj@HwpWcq@mZ!|Fq ztLbUSCuxjuvt}Jvu6t%90;@!ca4QQKo*u{>sLOUXNq?7<^bCU46{P zWDpFvNF6R8GtBZ;qb5n+cE7k$ekvIo#&0NDC)sJB;}c5;+nA|iSqp{0NCZqqhM~+D zfHnn{F@w@~_vv{B z(z_zG4Jj@;)nL%6){q!G;1YS95*j0y28G&8ri-zkXt6xB+|+$lII%knLzc6wC4#ya zqV$8MzSRnJGdabhj5z9MnjaCgQUW;q$1`SQZor#0CsE6_h@RC_NxE zY~WIveD)klSXA(btkQk>!ccc)P%8W?+aPAx-1k*jj&C6%I){#5M4-=c*U&w zx*V3PjOjgk#8(bYJA8b-D4&Ld$s;)*HHn!vZ<XF3xuiXtHF5XL>WTrD|T*CaxUb-T&w1rU~KJgdW>49JRkK zl2Bv|;(ptsA?@fV9N~y9rG6(UHV)9;+SHByTT>8?gexVgtahSs?_$Uou)!+!nY?!$ zZ*Ct{q_`G{Q0zc#Tg_d+CI*2gNrb-sB(cu$rj9rE*sK=f>O6hLV6U0ZaxV+7Oe7-c$;my^J|qqru`6U3xIV zaLJ9x=3%`n%?7)?)YK&|qU^r3UJPqyo)%uy*aixmwAFcOYI!QDjh2;FBgF0b8hw8{ zIG%l%BP!hikZhU7^YD+=p#RhT;i;cZw^#z92hjx1r539PzM*hjyHGpiG4MP&a^8y{ zUIdp!Qs*94*pNUVB0RA{dg1Gm;rfYqJ(ps)SjP5oW6IGe0t!@YhR<&iRqAorTx9yOfBI< zWlR>~#pmaMKHc>CP1nq=BXy3XEN%apt7sHjoWvz5(Rfv@uUr~1*9LtSTiTvx4Wt8I zmpXuyW`fyHd+VX zCrN|rW1g_h;jemD*e9yHItM8qm1IngIEaomO;z0T;tbY z@%b4WVOqU62)x&8<&Q1FJ8s^-Cu2tv`j@Jl5J>q_r~IuBv#xp^joj;c+2A9L_fkbntPAQXC@oaVuOqWO~_SHCn21sGJ{|Mxl-V|tu&;q zHJf`>%C?E#jd*l+g+xXUZi7YZ284Y-U%yyRbYi|kPPOHJ5T$5YQ8r|j+_i6tbenUJAwxe{c#s) z6(wiY8RVKyz+vIMgjtMjhsS%$!W)boxbgOaLdeX{%|MV$3USFD{P4G7Shi>U!B=+* zy?a?^%DMqigj^>}xmTjPO5d)KF7xswnWi1ME23suzP#E?2_goPB-#XI^8ayx4`)b6IdmAkTH-C5GwZmv_|_T z)si;t5isAF!?sT`R_QG9Y=~`m2;_zXbJ(8BiA_B5GC;#A(Y!(Gsk$PyvKP z&MAU+Hd%lI2LC^)=fH{FCP%y*MnwAqq6cfrSrdU ztb0E319>!S7dkWPN-F80#KDj<%2Q6!g-1tF@<&xV`m@8X_Gw|(>O)63ODkjt&?Alk zRf~!0??NR?xD`whVym+Z9OrQQe@WRQ7erX`M9d`E1p6?-V8pH=5*ABl?5Z5-$Y$?q zXRs4HN$<*D>mqEssMP4Jlql4gxO_ZHzJ9q-U8H5Q@ROOoi!4#n>zKDGx(-1FRGQz( z(BwUmi7(x0NdRD1>RCt9ur6&~-{QNEdb(!hAH0)Ewdhe?%OYE2W#ueU9Z?=zD zo$CuFWJJ72R^0%UR=I*cb7MpEq%1JcL=hvnhxS&%(u+?+j=YYKS@1H>&e+u&7Z*%v zuNHWMdtUIbbw{$E$7~Qlyb#z^k)Z$T_^g`>cap2gS$RotOGUz^v~?5ImcOWc#M5dD zyPJ{m6_{YpZ9^K0A!KIMFk9}E|?g-@I zmC{jzOyj2J_YoUErm(xnQ(2k#JL3nEN_LWW^YTv@>{KU#Huhv##v2Z9kVUd&xKMdt z_z0HtvfDz*B!f;R3hRr627!9taT#`f-iTU2sf9a2)EH7N1{_%!ecb5;IZSg})C}bM z{ae#B)ER=GB^H{2G3(=i^-opzfY?od^$8|OWl{1Y30c@q_h-g_@2MnqEtUtDk>j3u zE{>E&;@}KBK=EAee^g%&F_06%4?TrM9hrDIt4+=(GcLSJ4T)x})e3m3J+DWv3DozAito9;`DC^d!C8mcS7~*<=WsDqO%D+H#0mtlw^m)C(EDw!9K8ZhC%-PrL&w8YW-F$ zP7YrqsSRd_w|nc^u}%i!hez?9GS1Lru}OhnXIXbZs+uE~rakwN&RFLlKX0#^gtSMG zq#O-YLI|(mQ{uJ-3T6nzII# zZNWgx$D4uP^vDAoDbl&PAC78KmyAO|ylZ>&BQ6NO*)qgaY1*p~^k)@R;ZgW}`3kIk z;8p{F7t}v%**jkGt}A>}lc$&-hq{i)ZEb>8hM*zzq&U>83O!CVze6>1{%{H~=p&~_ z7Ii*Po?Mtc>wyraoU*<*nHvlMrPl&am%gw^ju35(9LZg!bf>?-XDe|#u)*<=qsO3^ zqccUd^b}2XVAg@vRHNnvX0L2dIJqHh;L^dkyP;a%dFgK~)aqtRVQ5sb$G+p$xK&o; zkX9qqT)zN^RAp=kW9YA2HeP~^`~=p|ksr3aHSHc}rrcoX25X+TKNVn!lq2I1f`6L!LfiORgyo!s-vH}j5;z&Er#G3`l0f(%v_p4hrMW8Ao*Fgm+#umU z3?5?uZPof_!SROHG68CI*x?&^VP$^utHh3jj!Pr}8$H)Zf=w3;e`{q5Ok)9d+&X3) z&J=oo$VBOkbxD&hXy0w55Mp+4VjE99jiyHGg2V|UxEmFst!!rH4g*r2EbV&-^#Ut^ z@YWuKjMU$NjmEM#ZR{Z?5IT(K6*=WH`xkmix0cz0r{yy~!@9E;&ca8#r~BmaK64}G zl)6YcJ@C%K40$zCXFx^?yIJ!-iRffLdxXd~BKT61sdO%pWJ$%J*SO7Y-?72 zrj=&u9(=9mb2Vs5-0tq7L}dq^Wu&o;R5CxTfgnR2oxxQIm8mZBIL*r+o5e!naT)5T z>SY)2W+?@}ID2HS2yetA0HqOxI7snZNjC0)EGjHk+fKD{ePluoCl3wz5Yqo1nH^=O zpEkiSV>yiPjJ4X~3G<=|It(i-93CAH9yvLnKni~aGz|L zj3$>wb}o7{mo9K^hUxOXDtolno#*q&H%`nHC3O=~=!0Ia$9I~IRQi{Ruc+WoB7ZK> zg{2jpHqtJ9e=Ef7O%TK@$Ed6_4?tiG(QF^jP1vzz-MRCk9`Yn@(l+~AQAwtUYjOU39jrk%jwY?o5 zZjRTWV~Hy(9@}7tDaQ?pZu-N+L+#Yo5riy}lp;LZ<$}kNxDF1YNRI5M-hGvCnR%RP z=+Y<)KEheauLs0FPt|FqzR3b}V7+xy!H>>K7I^V(XGxLXOE>Y^JTy=&x%bdGS)*9M zZ)4HLrQn!Qnl~1ae${9uQ%Kiw=Q0$IykMw0CxjR5ACwAvxMEhbOZg)Pt_RTR%bx>l znl>c_4Dm`QQ=c4AvE!jCWmH`ecAl_wIrpLjC~_D_hfrYADIuBz0xRe*-)(8+#7JS6 zM`$szdUM+V;`x^wy8^IUzE+@t&F z1S!c{l#K7&eW|vR=&YzY(QnuOTghF(i#6^iPb&+a7hC3sReStksD-yuUw-tTid<8m z(j+4O_fff|Yi~a@!qS8+aBCF^UE=u`$z9SC*@E@p&2iGaMSO54cRcjXP_NL#iJMuD zL6Y+*M~49V@A}obs=n^&(`Bm2WBaYFPWZ^&sx!w<1NBAI!tBegE!n0eZz^}JC<^zJ zo2p__FPn!Q*9FGvc{!1#-Ee30UKm7lnvS57(i6he$aPB2M(x)iI{I?AbQZj-9~b1h_!^QtU{-!2s6!OimOHHaP%w~l-%?!?{DW2Xs+eP;R!P*5N zfqYEU`dqksK##4QN*RDa77Mi%fL0|zKJ(!I1$%EVc2uH{*|SfabYR)k3JoCl?QEX( zp)xp~Jpdb&S|j692c_)UklTWx_o006;zcgoj!Y!!;?u@kfyu#0emRuLP)BNcl#|{m zuVAAMnNoLfj2cAaMGjUnTc>Sa*h90$;NWptE?6v@p7{Iz)6qx#nmWTMp=~;fuOX{~ zXzC&2MMf@|7Ij=(jglX`n;LsB5l=(+%Pr19&mnsPyz3JiH&i@cAh!v79J2po%If>< z+q|Y*shd2b(w3->*v%a-)yZHwoyfq7omnjQ;Iob$==*h-<;Yc~sLG6v%E5xE2@~+n z%H@FfCeyLFoB8YUn5Jx)BmNJ5Nr&{#CGAV}Y=7pB`XSZsFV6#6^QNKzujh7@$>c?C z1Am|q5(|z%1R|M*Cdw}R#@T@qr7)G>T2!upgNncv9uQ5qW!T1e>m$0cuv_1`{@y2*0#jvVA%>~29bK$~!(mNWEiM`J1AN@0x z%)m+ccS6Lx-r;vt*ub;}1uO6Jk&_d!7JEPrO`MTfbbR<&-DXK<9s((^9{ivGZ&7vb z&tb;&^>{4ywNvUBSRkPCWj!x5d6@Nf+bFw7;==&`U+Et0pAwB@Y6t zR6YLUHI=bTiD5tI#H3l_SaiE`-seA;H5R8;r`N;U@X0{8EN3ufDZ=fL9d@(@A5FoXTm{&Ht`sN*C0?b|UA zV~2@gInddO0P#iZ9AAGF?5{yeJW}(zBi`Ff%JuDKZfH;EhIFdDNd?44pSDO-K|G$b zH=m&4X1&qZW{6x-nss>N!YiZvhW^0X6keS4yug@?#6Yl=#j8PM5W`sJV#KPIh#TLJ2oKA}b_ zZ7~c@xY(h!V)vu|I&=&h=zslNcJTNp6EGnz*{zzLiGA}a_n(esRIgpGTKE0 ztF|fk0EyhmW(d@iKX1&++uG58E&Q>gJ3%94hmR&-AZcVt9ka-sUDCp0*LJn1st_7J z%sS5AgMF==+F9wTV-S4uxn>93#&Uaj(}H5h-{;?2b15VhY0nMmE^lNM26~IT_kI#^ z-Unta%bbNxDl5_o93CYsjHBcJ4=XGO1K3T+8Fr1pa)|VjYixEAT3XJhk2nQCYs?d@ zN%>;;RHw{!cnw)l`uH^qwkx#6Xrf6kn+hEx-z5M*B&e)td=n3P+nBkX76e- z`UTW8$cxAsMoppz+YsybACb`-;8q{+pASJ3bj(5|6+c1pS5p~IN!#~O?~8o0CLyu& zNj&2iZvdxBStcJr>Aaa|bokBV7~fri9GTL#Xjx9;$0Y+|qOfa#OPlYG=Yrp%ZV#!n znCfnLWu|K?RP;LftNO!GjYF46>t&vq@bNOzQ^qFQP{cs;{8{$4dni2RVV%|$I7Fsp zl#UwdBc$9MkX3-MbX`%X$8X<0j?DLL#VPu4^$_kgn8liTGwR~EoBM#CPj;R-vk%it zMf|E>jh%a8Y31QPYNb1;3ZuEl64<}6do%S}v$nZ$?eNV^nTpBt?*F#{{~{AF&kAHG z&T^+rbr0UyI~B#Ov43>G6BgJF-gf7|QgB71yxKZ??sq?$hAh^<_@tct8Mmm~GP8h& z#M1RvY5!QZ(GorOV4=wak8#i-fCE7urs^22raL!!`EfJx6;H;qs}3l?n2iBBSg(uH z)`;_8@0M*ZWqXDT=DtBhLr(zjv6{mm2KB+0l#hO` zs$@&(7Rg^P0o77%*AzP3)#Fk675wSSdA(56KQFE(BL|nJ%Am9c2oKjgol$TdOnf5> znxJZmSF^Tl5CgDKaIF&#DL-q&H+X{#WE$?5bWIag(U!OYkmR8txhjggx&(n859YDm zHTMH=FYifKls|Qf-I+BG4eO!k!m9!$IRz|`glkg@N{^919hbcBoH@2P3)kvr(nsv| z!y2_>=D0>R7&)G6a!if=IZn57*v%@c&yg{J^W9QyEamj86&KgHsir&8s$y;$m2 za5jwyk3TjOIc;{}#lNYW5^qZGPB0uXt}5zfRKM=*S3VIiRS^{K?znrEVuOWrvk!vG zrGpkIS;*geC>N!<0ABEPif#41X77@sS`VYMATQLIX~Q>b%eT{qm zX)?h3r+c!&Q!&^qFDZbEP&eU1rQ!L=co8%+N%Z!6JlFKY&(zJtebSh!$5GHS^lu91 zpG6atCEObboyMemKcGuCA1NWp3pIIEA0e3Jhp7_Nd*A?Sxxg)6$hE8Y@~f$4)v>Zl zSmk-0U9RRcmXR2_^%DrK_*{jsZ}b_Bj@DY8~hSbtt$H~7-T zekI^;4|sgM>PDEun&70VtVei2_YUf8m{kbr{Dht1&Y*E5EKE5H9r)MWKpA_gVQN;c`HY2P9V%g^Lq7 zpz)-kk)zM}Sbd#dtLwly20l`OVag2bUaYG$KwyiTkL1{atbI;N7F(?5Cb&Q9OzRbvgk*1uR`5yRyHq`Ix%;| z-&2)b;+#LhZK{jj9`F=6X}-nof{Y8>PT(0@?0W$ zlJ#JAL9Rx|A!LNM@Nz;p^G_?gd<*y7p#sSdxX@yerFQmQW4ajOsbtMVrjokboBtI|1<*q@FT@pevwN_W zj@|@f&ccoXV{RceBd@hgGme4NT{X@7xG_B?%mn5g841Z&51W2eSEG#(lO=nKwT>1| z>d%u(=U^FmIj4$<-HL~vhQ442lEA1CXi@MLL2@_hYu@Q0dD+`l$*{*b< zJF9V)quq+xnN77VNEzADU(cpRwhd_m4`z}T3x&a1(Pb{i7bFKH7UQweJkh5qtI3@_ z^%Tg#Qg18a6q+9S*l355oalC+|0znQPQn}qB8VYPdI%3IN3472iQHWE)r4erGB`cD z3WY8dr53QZ{ksh4!F}s!d1!r~5t|`P6N9(@7qch5LBpSdEe5&!8F$cRcWKlqsi^h7 zEWzQ$L}d3UPI@$wIVdvu)HV(FN?qQ>zeJQ=ofRa}8!D|2XiwrJs$j>Hjo`sR%O^Ul z7Tx)1$Tp((7*}t8XS1OPZAuTb-dFCQsrC;ymRmIlicH^FGL- z))AzPmPR^p?eUXH7$|=HQ01@G4||opN091w2Bb5wd>~aK)%7d@3m0g{v^(T-JCrz+ zL17EGWRsAZcpYlTG4UTY?7=X&^^BS$ifR#v+}!fieJM&tVivsj5pc?6CMscjtn*qn zRpLb_k2^ktR^r6TbKqUCypP*s#!SNLz?x`w*!x~PnbhzZ0PWS5=QD()BsRG zufGrZ{~$q@-a_n7Ft-5@!6la{78>DL){gZQk}+?gW4e2eZRgz2d`xj4=vy?RHKl2q z>a*8W4Z?zY($EfxIxzPwwAAqn)l#2W5N@;v&^}#oef&~|LM&R!V&3KG#PN-GAkGnn z=Os`M-SW-qfq#Tk$HFPUo1tuby&v?(1Dj>-+FM4Kso>L94-nEnK2j!u1{o+caZXYt zc{L9tOKC!VC1Ilk3~96)b;w7fGscxiwl9o6*vv4gRa8#|0{pIOMVBD14oS{YSe~l{ z84@V|X7;=(RjNVfJiKembxHkr?GTfVSa%+$2|ihklY0*<5rE*%)3T`nm>b+lC}sn& zzySoT!CZL3fqE(QT1Grsf?M4Jx?W%gpRM9qVo{Ad?i+-FGFMJK~^*tYn?hr4Jh!lYSbir#@wlTg9+ z0j2HSR}*9&87q)2b#t&0M+z?LYdVl;xhivrkn(UYJ0C1eKC|b5V`e_oJmgaZ-PMf5 z1S{B&5XcS{zf#A}*4ME~fjc!EmpQ!wVFRp)ld9(mZLKY1X|Dt`7Dgl`@Y`nqgg4QB zZ-!}O^Af|D22wB+xVcw77@69lJK=>O-P|DWFNZm&v46bWAPBB~UjSm%iUy^#aW?76 zK(Th$xp{@57+K-FFQ(7jVQ@ehTC2lhGm3<`!=fV0)Ggg*&`EEjl+CzxuKGvC)iZHx zZLQR7(R{pJIHiE9*1w*Pz@m1fU5?BK!7xs&p&mv*EAh?XRS|l*AMg5TYvh+2;6z^= zA6f9y1U3+sgeJV|cipd%UWrN4X6)zaRqu7wQ$iD8@?egF%oxY-&V{iRP#3XK!);#$ zl_Q|~ilA>)!WZ1^jzDd=`bleAgkSTnaj8r#?~o6I%odw)uK@QqK{D(cBN>&@U?hGs zkUa+a2@Mm1VhR2Q8urZpxX|9em;;W{VbcFJ9hF z8C*uCY`%RwrqyeFHp}MzOoN;eg1F6MmR*~*ssQhBu(N}L!a;bVi9~&LE5HDas>OU& zp6U)Z@Ly4IH}?%qtZo-j0&_36aM0Hd^w)zY3<)g(Hwub%{w@QB7Xq6qT*Y{hW-Q7T9l zBuG|BHD?(rjPE7C7<%;fZt^aDZx@Vo=7?^%kceKmti^}f(#y!Ysza-FmjH6JNQRPV z7S5&03I(}8b4f5e^dZBXZfALAP|AGM}aVs z@~yoQ+f)fNWg(v+$wr#u0>-YUU?^KPXh}UCM>t7V_WepkweYSn#@PG&#TG_`J0dQ26U`9yenL$)+g>Q>=Ae^w-vdi;pUe+e-c zKA|KauJ}j?%_e0Ue-z2s`P-B=se1%XMA+56c#Qja<#e~|z~nB3c!rJi!zdSuuM?KO zL2K{S$nL_uA@NXa0=6lAxz;>5xa+0GpP$jtCq@=4ubA>btz4~r4HnxF1}wuTrTQMY zUqTQ9_JLUgsI^Ck(`*PT>&b%$hv;%K9}&8ZUkJayZ`sJv11IHaF$T4c#Q~=bq$_}9 z9O`=x6|2{GMdkEsec1neP@0=mIhT}#$fWv)SQ<51`RUWSd%HAYm^<(;$BBlfo_}Vn3@l0$;zKH zp_^`FoxUZ`wbTWdJ2qn7VV2ii$j&c`z*!D>XpHWt!r#55vR$e?+{-5mCB~5T_wA*V z4EUS`ciLl>$mNTJ4x3wLRE?Y3H7v)kJ&_ky!0?UP+IUVkU{;J?-=g?|8bk6Gz0Tsj zkSobPC~T#MdnBY<`eGR7=4KbTRkjID`18IC3BzY6$!LU4^XlAXov5Hm6~;Y&u3a2P zuU|xo$)}D<03U}%JfX+*B;{PL6n0ZH`c)-J{TS=* znUV6$m&1t`?L9~x_C=2RT4k-Y7V`U;FNnatNR7Gpyai<;KmKeTZxiENhq58dOluso zQ1uQ@DN438;g|6+8!|WaL&^RD_XsW7CE*keJQbV|G8(v*KBO@B=C+N8(X`=tsPmia zioL3F#h?|PQQ%RT#d;%3iq$xrcB6(2oku0jj?(c$s%>@58${s&oxf^2@5rpZxrKM7 zXW>y-(ycoW9iC><_g|r~tb<9lL4TC;{oUqP#XO-vy^eyHno&yHg+O?qs@A3S7f_NlmU%~j179@Tr41x~XUVg;zAl(K2I(R#y|5La=V;avH@46j5!b{VuOr9k z0(gb1Eg1|XxqE-uLD298YQd5$+S=>)I7@j4H@wR=h6)nZ^4A_&?0GeeSm!QwhL5Uk zhU>kK3dXm}Hsb?l1}RIF;(aq`;4O#~(+>(V$g?`}02My=ij;oJ5oXiTfb^;_EpY{h zk=s}r&a0fT#Tmk?X1O1GmvFTJAb|rCmF-I??0T`x7zRXAGd`yN$z=eDeJv|ZwnQix_FTY zLPV^z{wEHtUR-5=l0*Duv6K_zEX(R&-?8;_l;;TR8KKw#Q*z;RU}r%Ijf+6B^5A#* zca2ouj3VC(kObkNkO`q=nJos68Rb@tGJQHReXZdJAq(FIg(ts;BoraM&DKP3E}$OW z)f-_DQTsNl9=e2^d2YT#zsu+Z<$iXMXeY6|7VJig_1xgKw0zk?)cPso;|XdD&HaNp zO?65CBDus+7Z6hN&OczDM4y!H?op;qUG`^wSw<1vZ%YnmS7xf2CR%Ek9z=YzR}Ye! zlMg%@=XZ}GV=)8ZlC-4X0|wvAOKH@@nfRqH{KEdd*QNh>V+moIUXPfsoLEnF?WA7$ zb%3-)i2&F>;jEsCjZT8pXIqdmOcv~WGM0(|0)|WA^!d=#_S^O2*+8nF^b4+ITK*bgo*Rz#+t7M=TY2D(g?EC=}L^!cT@mfdF-KU5d4?O2oQ zs3OaxORGN(4Oa%;mhw#VaZRXoe*EjPQVVW#bTV4JWUYbe!re@wkxZ6U?PKpTa)r!U@AQ%X9i7>5}&1OSYJX_Zs}?J5X` zNHldd*Q}5(lH<~K;?&(`(kW=)R$8$ByMlrej9AgjcM$i1X6*b6Y~ z66Qc;#1lzcOa>cQoE??PzNVmOa#o8b_L{;4Rq$h9|D zH&PGM;2z2*F!pvwJa~2=w^kriR-M;HDg>GeCg5hK=Dpt{L)|J~@zHxmACWreEgxCw7B(Xr;TboPY zHe)8tyV#kN)esIvdFsJxev65Z7#mt~eTmAf(wV|H{rPZ8hOxiMJ$_f4hh7bOAmQ2@ zqv_hT0)bPq%@3VeIieiD2MR4s&foK67K`PBpMp)-hIcYO(^%2<_&AZg>ZA)vzpt^; zl)$CE&$>WH&4K@hX`d!}yWp`h@Nk1(j~p+bwYfN`SuGA2cg1Fo<{X~NPa-ECudp5d zfe}C2^lI3T9BD#uY6o1Dc_xVEojo@hD_Dn@2Md6Qiw~K@?s>7Ge)qq3@*n;*)sbu^ zP|CyN7ex_b1!0QyU$wORKx^>de~&g^Xm-4f;YE^)J%y6{yw*vMP=WCtEBfeo{qL6C zuK&t~J4~{HAOP!^FeNNFDXMVgM?8`8K&mwaMyU&wqQ9g(yPcW3>;h>>l;GzJmvE)# zy42-AHyuHSc%=K>rWP7*)9}x>WG7m3XlL4^AGk!+Of{fON{sixWF_0qV+lwj_k=V>N?9nG9W86s)yQ$8SOab z%184SH&dVVH9Z9SOdRr$=rcxR-`?Z1S|qJ!IJR)wL9$qXmaSRS((s84>FTlxMBB{k zUz8LyETdkf?$Kqh_+y*#BJVplEoYThBl775$!E!)v9tIfG`q(9^4!Q9540+*J_DT3 zo+5oY6ARZez5gY~vJTlW_t4u~;vn4I^tesL-eB%OZ>w!~(@E!t&)~oIlc=dGqBG3x zvI0g*#0bJ_bE5_?6QF`7TeVETbqgQvZYvO+s`qj=vtdSe^~1+~^}m+3JTLHZ>TORd zMuIGOfA>I&mpFPa=FRs?_&N@9W($?pYFR4h-4=a&`@eESeN@8nb21irisWn>@}pE* zVQH7)SCfd1d7qz4Xo#piG>1zuqPIR#@q|?HI}dLfrQJRGB*TI8v9EUA{B_>GOZBsl zdf^wmx4sL14&!)_Kmx!L-!B^CLL>?%{YHxl^~*Y)ggAgto)Ie$1ciV%WV%NB)&*JiA=zR5$K&CZ!|f?|7Xm z7wg_0ciB+Z9vMl|YDHGE+(}R{0*pxHX29;Sb8cz$`54scud2J6DsLSNZ)X#e!m6pw z$E4t$d{KEW9NY`?x4yW%FbN_H`OJ1_dQ}%3|5RSGJIK3HAYf}}z0Usc&K=4y>56fX zQCw53+}bdOR^~zc&moH4(ca{R2|0y~cBNp^Su*mcHRGDx9>ColWCnA9dOvo_K4fP8 zAWKx;%lFYrlC{(H=gz%|dN=%;hmcUXs}3oT?@kVxM%R~FyAOlasPMsfBTe5veC-@r z=E(~!>=zc0bZZpbMW_%G+wDLp*YZ%&e1gB?pLnnAdF#y2o;(|FdaA_G4-ID+bWo-@ zDdp$U>Ygr4A5~7!ueU#;=R4@?PlbcuQk7uOt{kY zc?Btn276_bXPj6^;(zBfJiMIcihQO@{B>&lpbjbn6(c-iM)jY1SFwn7Z0{=W69APr zdR2sX%*RiiFj993KL2^#l4P6rtY7-3G8rX*a-r)?P2O5Kkkz}6<`LpGNLg)V8X;tb zE#+^9I1yPUHoN|-%r7WK)MYo}Q1n)@WBfKf^0gB%in~`j|s|D=*kpAAmit4Ngqf0wc-?})XJ!F@9%NH=1d<(wl2 zwDqulDu*cqwPf;4ahj>6p^qpJe!IW_oH}9Y zw+E*=ZQrV;a5Xnpd?9iLCVL-Lv9|`SnYfLt>#4XiQvwKLh$w8wtN(5P?s%EdFG%CL z_L>Y02U)Q0YhFZ|yy%Kc-YRzoF2ajkq1j>H;dxfcE+VjQx|&Vw0^G!M>#zLHe)3W) z!{gm)@{NBtgY2V(oOXVnrmdlw33j%D9+Aei{^!t_Q_|17^{4ToJ~dptScwZu*Y!826f6SgGRX z`24LsBS@u{W#M2(BKC6Sywm&6^J5?6yGQFp3KWy4!!CY7cckYY=?W$#l0)mDN+fYq zG)(GbZy~G+6Z`+J=omb5$8tX22EhM6Ttj_kj2=jRNURmK2d9CWYGIv5`Wv8@<6%~n z&Qf}(8_PrGG5b?{jtm;R)-J}W-~Z~2!AXK-R_K(t)xW`1WSud+n+12Yo<|R^7r~2; z*LLvuEo{*|$8X9{FDZMY%f3vtYrvP|`tVjP&gJF$#Y@ly<$Df|;C22HS~Fh3)S4>_ z;&}(oAk?13@4dE}PkbzAY0FStC!s#3&uMKS&=(7d33e)qvD>bw2>B7b5a9Lq6Gp_m zL@=M{f*!pW0>gJr>RRzvDN4JV-lsjUz+uVB4mu<g+evc|WRr--b z)SthAG1rX-_?K-D%MIv=HtKuhWCxr3J#ZaZ4|s(gmSz^x`M~wwAy!tNlT#=BnO3{7 zE78BmukDTV+RffZ|GCFJNDV|eE*o$N6T3YZKM?AgCYl>B4l97(#f|m7P2;T1E50kb zNK;W?UfwV4GPc&eN9j&4CuE<}t;1nyjMD?wv4Ms6G0LLrK}@t3QwF~0h7{r| zS;!iSY|q2l?oibmQDF3IlK~zqG!3K7|1_#&UdN@5SzD*AH zpw1k4Rt)Slp6g3sTxN3H;KKpP3we*uMdJ6Zf{;uPjH=?wbzG4P{K;O+gQKOss#V|b z141=7_ESSpYvdwy?ztim4_$7H1-rWje3r`bKMa^I`P3MezcJ$A8De?RVg7Ny2b_Yl^*wJ zz7sdZ=J~YCFeXyXH|J=wGK+GK?N@3wjgHCWVRKx}cv(R&Kiu&(8v(v_W>UP9-xD=jp*;@URo$sxVpHud2L z{mfLm(;t;{gEiOcgiuV~&ni3*^7UwvXQ6o`ee2Ol=pA)TXbYO`oP8M)q-3RnJgBd( zR7=AWj*tCDq?Hz)PUgU8kHitqz~@|wI{z|H_z9b`^EzwTE*@5`U9f0*=V zsr;`(DUFKU$5U(n0Z^>|jckabDUH3K%mwMjAeB2+ij8P#Xy@D<_Ow8PgC+1W2Ca+= zdG==5<5>CD)*qjud?cD+y3ZmT5E&eGCS-FKF^oM(=kIm%+g%TU&p|K4hv`?w3ArnY za~kqyu3OTIjSC%eqqE=Y2K8qh{ljI=4V)(rW!dA-Vo^fMf@$p<(7bZrh+HFyY)tQ? zr;7`RWV)LcTT`Z~`jh-WEcDMhr{3~V(({lWV-?VJy;{*4ZWVu&Si4r*87VuTa;F~F zDShgO&9givkT|MXTgXLn-hCsc=Cx-8G-i%|n9AQw<$W+vy+unWnX@dR&<5~)K#*NI zf)MwVO?EtcnHArD(=T1FowGA?2+$Mnat#+EUa02Iy4Z7G;?-eZPtu2Mb|hKiv^F+G z;$9b0C2|q!L!=3zH9zqeXW@BiQm21;fw^#BNd1v>d@3YcB$PFrs?{U zXg|b$^fsGDz4I;Dxjv#b7odVinck6h?ifAPoy|^Dtv`&n!kyn334OVN%V$HgyEAQB zj=2kNVg0_&Da*@GM$2l^*F9mz@1bJ~^EC}Ruj}#7Bs}XL=g(%dvVU;~UndzcqQfiY z?Qa^bDe&LnTXTzfx0)|qFX)j*3un>K5-+BieU{^XTJbq8A4MH{RC$ArybZJE>Whd=&fgr5;fh(UxntpuYlZb+5nWAY2Hg7o@cX7k0|Vt)DOPGz z)1!CL;qE$|c&>9W>B%U|ryS_Kcd-C~HcsJCqEF4fB(Rg{JbQAE>Z#?Y4W9AX=CFXx zJUh0t>us~#OPkeWZyii8^~yq7E`L&aTXKb#3)}ARnXi_CD!&BTBaNa9mUuq(Ak4UC zwKOZn`km#8lRDD)aidKXCHD6cFQR9?E+)u5n>)UgyYOCg+(SY?AjFVJ4d-dpP%EF- zX)#{awuo}0AihObER#)|J9OK-IP6bUSWenjK{l%GyLm*H<#gJnCgO{{;H z-x|Tr5eppcyX1S%U{&RPV(s<0WVFk>F5-)G!teX*x$DK$on}1-4G9{56>LOC3Rz~> zjyMe&eqsE^rXsDaQ* z!n<*k&bWN09E@MA_pq(wO}Sb(?8XmvWnR^_V7P`C&_^|2p@)x6v+PXI!+f;ne1Qt` zLEAQRp;BBWQ}HS-IEVW^imB5M(;|~Zw=A+gyzQVQrq_9xvwJT?EoI+|F<1^jl}$$) z&J?r+e}-unyp#`=V0-z7dWV7@l$$@WG^1zkySQPZ6}CIYD6Dx!3wbCgMDD!SjYd7B z&)7`MgnGwIYkgIEb?Ip8^N~`>p9(I>+msbFnW~5OLzF3P`*1p0WPPU988`jBBHa&o zpy4~|A;-?D!bt6wWQ92Pd|FF5I_JaH!?dS`@Z+Y_*x4lATBPEB`=YQocx#s1SaKRM zoCOZo05FS0{Kssud)0C3+_ZtSt7HKA%5wMkWanDDp%gKve@Bgdu0egUsk1r^bKoFWPfJ-DTI zQuLcQtOTnit~vC?4d8YhWvQmES9^nN2Ou7G^qPzie=)>DVZceH`y{rt5-mFV(>S>I zGZR%UQte?QbSjV8JV=kYbh@z>RQLy~dbYmIRXo;HWo(ZHNBbnTp{oGO(cq`3I43j*vPcLvzZadc1t$pS&CgoJ z;`=m=Xi0u~{!Cm!w=%oU{80DWH@SU1h27B-6LlKv+T*{%|L@>!RORI5>Z94`X}jjH zQVcuMM86&`Z+f)#2+R~a`{&=`{C(&D4OCzbEI>tN4H}W9f2KA4V1c1XDNk%J&>z3a za2zWxr>!EYCjIMDiQB(mc|c(}4zSp8@9g4XOG8EYKORIxY%b3Ha-mWx6KPg2{!i83 z@Vy1o;X!2`heJ3aenOmmn76n?*1Iz%aC1`KK4ybnePy--EC4j;&CX};ynzB6BIX8b z*iUX@pD!GU{V^nW?To|(_Lg{+8yZnFRorJ<-VZP5Y{S7WH~;rFA8^#4$TdO<`$_Na z*w^pCXXxH)B;-~?Mbvy^xreai6(2M7-ry0?l0#BbZDA2o{NbVJ>0`wEOn8n{ZjgKk zFNbNE3q8&QmOZTlg#*Kn?oF^I&Iyx$6=l3)*+4!T@#x23UaExwLoQq2+H-D;24|qG0K_orY6uMLEgR5;lOd{O6h4ZH6 zy!%e;v$?dZZ2<|`@ENZ4X)YlP<>H~SIM^M>o@fU;Ct??x(qsR=ycGY z$Gpx;1sd;AMfO(r)!g*sQ*o{LvZ{DixO3ff^Zau8y4SLyjQ>k5Y@5Cw_01hbU1UPP zfu~1#a5ToZ7*FxsFD? zlzO3?Mn~*visO#;ZljBxnDF0}bn;e^pA7T%Fcw*1Lp}7P;&vGyj^H5!V_f+gTSpRG*OW_@}6>yoCN+mxG^hTFbA8cJCN+NLE+Q{WYd7+_r}E2Zviz@w?p z7E^`n-hc-NA<+pI^bnYL?uRR!YV84 z)k;{UZ@q4M?aO*nkunYfhyvx97$4&2_0pbwE&j|3zk`2uimBR;n_SMzy;k%kUC-1N zB4&5`h-XfmCb3^~V()}B_Vr$Wd9UD{Q_|OkXxp#6MO^q!HkWFeX~U|c2@ue0MLVZW~exR6tYuC3n~=nT~8B#H(|b0-3M`gXkB39 zVW+D0NM))+AGS6JqRzBB-puR-8S zYwELk;%A8v_*dy$@mKx1v~)WhdMN6QCL2Gu(jlaVnB2VudMsa|xZJ_oA1WIus^@|u=c+vF?7 z^thmVJ9xMR_OPePnvvj7uTG9BtK#RiU$2(Tt!HsY0PkG8RfoQ(Q*Gn6|M<=5t!a;N zwHUvtza|knKM;Yqhg%65j~Z}Qe~{z6d9-#n{)%$K`%?Kk#1fOwWqkQI?-1 z$J^OH78C&bPEuKCua|@_CTB9)(Dh;lEIc#e#zE z?zY$c-S2}eCHB&zemaXt^fBCvnsRWnn_#mt-$OB8FUUHih>*~)JIBI->g|DdbepT7 zAn{k4R_gPDCCEIKVx1?taKBBC6D6e^S%b3=V7Cbb-gfH^y4g735@UiXRkdUl?xpl? zq^v7CnO3q92JG(J+k8(G_v84)WHfQe`|IZhCK&H01jV2)SjAB$y&CZd1l>ZPcuR$jOHm5#R?tkNbed6~>iP3N z_WOwcLvXZPrjh=;4aLX9eO#^+NlXIgGl}$zB)AprO35(^qSr?v+umEKO+(loGh=cZ zBibo<8w3(aT2Yh!`=E>WwK;ELKh3(_0x_pC23_I0p zn5hm(zaQx??AGUF=X}W5-gVqCbdFXPQT>?sdrog``TGpdo@j#(#|}3DF3RhN3&qm1 zlXa}QCQW?hJj!;UsMkEuNBcCJRl$N?It^S;qab%{u^%B;s^@#D%dZJqHkFySvf^aUS;1{Fi0gufe0IGLoMd@p zXwn?_oOq&yeeZ2m1CHO@^1&2~OA6J2hi(=C)v``5zUiFSsf6eIxJj|o!6NymlYkfK z&As0Dm>su{&M=?%4OOn#`>STDv}QkWv(UwbnqVK#DkpQdgnT=78ttP?pYqp@&(rku z+;v!B^wZKk%hA%93m>$@8>kv%c`KLH(xr>k8B(1mC%tUFAMGtB*169q$&r~nH0d#Q zSxg~FopilXs34TO4E)CL44vc-c~y!mUN~xwzjd8}>wLzre8Hfj4pm_51WE3d!-t)8 zl!RaTP_0**4tCh5=rYxjm0uog6RxNcBJXs%Ug12dJy+N9|K0=W+KyY{-X+y z;|W;m7^4|{@vSH!n|MP+Gaq+&y6tQ*d@93zV&PDY?jOU1-!*kpV;xk{M6#0&d>Nt<$HTpOO=!7GF zWL}L(2~7P0D7V4~%?o1J+tL10T3x+os*i*Uh}K#nw9Sjh=ghGqA1J@q^a=LhfdDYy|@^#YSy{!kNofYM^;%S%-UG7CV zIIN}Ls-h)YhFtQ3ak|8fk@2bF^A4_55)jJ`_>VkhD#TeHDM(4vXTA3<;fb6>9bcll zO4V1nNS+J~sbiqL?l41>>~Ost32qDWlMYn7RZjz*E7o(OYS&N_STt`r>+gE=IY78N z(&?BHXjo_swo@Ve&`-!o@j!EZSahI~GW=|kZW5l`E+Al+YW>`-WH#(E-)KKn;XfAw z8|`9JMg4uN7V^!?mQmSadlpeXKSx%8`^a^QDA$2R{VhS!8a*6hdK3&jpFv>8(S4=C zbW5t^?*cR8*rQ|@@AsIC(@N+;JerSA#6L=B6Ghy{Co3svRO>bqjsV&rSHm=XQ&yE; z#gdwXxWNmbv82W1r-vU%lf>_)F6Q@hvz)>FlQ+|3;K|tTA%`8VRgS1V6d43QaRX^H z`Hk3}PSfNr`{NA~BR)=3HABENM$Z0v^FX&T_aQ6L>I8I83r7;QC15fUDt^mH&0y%} zXXUYQn-~P(6YjJo213FF3IeLcG&K2Ja#-_%3<{lX+FZJh0W&q7m=QeDNwE@dMju`$ z8p=M;@VvAaoHb!Bckj?mg(O@zj<6h+lmTKGFa`=J0pJ7Dst{A-71}0XX$JD54N&nv)@1|L zGs=ie4Z7FCgd!vQ%@$jo#+m9Gh=V8>w^CgRVP|~|2ZRTX zpzA|nZT*NtDRg9ixRAq)<$H2WV0$!jGi!EjQNx{Qt0ykp$~DjP)qBQftxrw0{n4E- zlmIHRn#cx%T-)To0?mKbSmdEcw&Gm|-4gaxoM=)+oA`QCc>A1~&@H}{UrTynYY}`u zGi<+-(|HQ{(i@Ic2tc0$XRXAkV0;--na&+HGsj@dP<%&w29fY{C#_Q)^0O6EIXza4 zXVh`jLtK9#=n0Z|wGjwni!06g1geREkK3gf$`L0jd^Y|jCOR;uHhz!7Ee9Mn549go z;OB>~(WdUJWsm~}R?Y9#q0vz78cj{JjhU&Vs$Nr<2EFMF)GMX=yTUU52=)Im`~Pei z)zuaA&6#`-$(#~6sj^E5Q)F_1*5OhX;4 zwIGS~Rh`ub5{6(-vskZNrZ{|xn+jic?~Ji3A7^YJt|7pk zy55?;+Y1fUypr5hzwX5}o9QFlcV9=K1#GKA<7CpP1CjwF3*3MXbEvsiIGmg|d7-Xu zLQlFhIBeyNIaNc7e859^Vd5OAIJu_TaJ0fWeIYTJ-`(_u0yOe5)j#UnaP=DZqxzkn zf73&;5hP0e|@}@0(1~ z%q=sv5fl}Qu|Ii^0~?ix7)BOlkuDQlUUaYGScHExZ=#ipr*NU@$RF%q2}9gL^Y&63fRKr zcj(JK;Sw|2v@|$WTOTf-*eXG8sWJAJu<+~DTOhg1E_92^j(I}Y|1xJAZ8(N6`I1T} z2{j4+7x)xYE_41-v1&VDYM>XKojB#e1LApBS6|7!+_0XC>-n(DL5^rXyYnEv(*t(gPf8+nZXDcG- z8TXP8Gl4%R_KMj@ZE}~G<)^L8+#)0e`oZ{M#x-dE9!?37$M(FcE!P9EkKw9x;`D!YrV+L6ZS%D$UrXm_jMNq zy;UOlUY^7E=3B#=@H!>qqzrk4u)a{#+v`3pS}tEv^P6ymA6kKy=#W`~eu?5K9$5d|3%CE3E!t((q} zItPJdgtau@p4 z|1lp~e<7meomdt@K1^E{bHB?CR8rT&_ASfi(qYbSm+7~e{ohW)ZT@M&t_vT;MhypQ zK^Sw!DDnJL_jM^g2Hwh0jO@V5+mk8`uX6klgRr}ZNHdDMR8}RtEYa)-(bt&QEAMz6 zgtWnU7`rup>#b3N$Z+NeP|?DKY_u`QThrh%@k_AV~b^I8qnQ` zvBT|KRhq<))ZKxyxY0FOIOy#L^Hp;AvoxR5%O+4~5HW}3>mwESLTEif(-=5wG~_!- z4A$i3?l(-oQ~O$(@kC8bJ+JS!2q-le&+x8qn?8Y6tFRbRJKas>!CwCjrx?MwbB(Ie zH=<;}K~&dsa2;m!PKc@L^JaCuBr!O%h|=wj>S5c5v!7kl~wd;HxXeGRKGfNK5ewj4BY!Uc)dlv zNxih6#C@Z;^2@-8<;XaOzYox(i(E9bIJr8jTI`2l@Gv`6}t-79Nfa1FxGxaqigFd zWd>~qm)yn`UL#%Bpzyg5)#R8vWWD; ztp{(M=^U4fF438Azt6|yB}MCVP$rVrjVdKt+-s_u7+v)AXD_3(V}AbDxs7307ay9h zoKj!8?lB|cl9GLXLYSRPqV8gDXX=8#`k-@2>J-wt1afRX}O7l8DydN$J3vZPB z9M!Tc{OVlrVu2^$o`?q*twq9`CK6%4rEv;`!!Szz;m7foCZN31-)f%D%5a4co6+1n z)*KXjXB`KvxFgF2jRu4+PJ3jhqU&RM$cs!JjI1rChnp320e+vo!^^Hd5@@o$FsYaY zB?XaBe6pPhohxy8Z#elJSkG!LYKkDoKEer&4{*z*6L&V7qBf`dmK&oI^)5XsJT8kv zdajKu<;ba;XEv)McPPBzJpf}ZP-f7#RC|2`0SQ_23Tcd8*&{hbQOUUPvv6P0Y zG^t42vzBP?3L|;NEyjKGM_yQr{Du(+^ZgEYGOqZuygn=Jj_82BI7%#Qo24e&06$n_ zBem})U6ng$7T?Hkov`l*a#%`0E)Co@`>JSRAjw=qDxZB>vmeqQu~ZJa-87&-8iA;L zd^zV$jp(Hivq=%XB+lu|hDkrGQ9i-7hp{E*^bW+z798d0ULRz!hL;%FYarhmQ+o{R zgLDXt7MwDOYMKaBKksXy0YwC0i_vJT@l_E`hr?x#k) z2{|9&)$__8JQ!Y6gdIr@ccIB0$ZEo&L`mh3uh7;msKd@BrQ@iZuV^2M9)3nT!esV< z?INA-nJ0H7^#fd`ErXmr3~>GW5&)$3g9%!XQ?qy5HiwBfdn6lYxqI0kW4-W+KYv_8 z>$MZdq|un#W_6IsuflLQJ8uQpjjCy5B(S*OR*N5z^unl5BJF!MA(r_qoSy+y+rk+S z9qk!>U}MbEn2|xyks~Q|uH_T5d+!Ob5~K_^dVUN2E;ia|S9kZq!WuF6xL~f88!@zD zXhv3g1n0T4GVRV>A+1oaQ;EB6p$ctDR^5Sj-7@4V(VKqRnWm|D=t_7t^!!-2VmP2n zrEOpI?l>BvgcG;Zo>NHWLa}{elEJwjXd9Vju{J4N$G9#y>*ouygYwD^vGkrDiNrHb zKwEU-_$%_%U2+p)gZoD*q&C9LQ7;8~@axFJ2K zNBgAqM1}-mY@Y>!d>uT^DW(YC=M-J_5}WSS+~X*2U0PJjZ#yB3F`w&gz?brvcM7uI zM&o-g{%ofbn$diq;Ub-bOPBS}E~9;M_@*yzVyIwkS+xK`K)%1Z9hk+}bmzgrG1@Aa zq^Rr=E7PIwI?i7%#4}QwTax7v1D3!%e$29tGF5y|y75gvNigI`bC92NR{Oz4(}G-O z-lp=Aj8A@Si0*s4+1+h+dCuZMsC0A{BE_uiX>;CoXxPN+r-hg}7j2$XS?@bg2Ln(K zs;631={KeV(#4wn7z4l>djV)@WpQE8DzX^)&nqMBga4^+Aj=N3>9q+rPG}XT#Zpb+ zCSD%`ot#&T>$?hg1C%@e3=l(&+c)Nv+|SoIo%^|aQ$sQ(X1D$0Kt7KkEMOS7tvt1| zB{eSEmZYwqBB}YzuL2Q6e^;hYN- zp*%u|-(=n)3Xqox+PgPbem-;4q|7A)mpjX)iCL#y`y53eooNN56<;j?%Cc7N;?smU z$Jj_Ky42Sm#^iNW)BlMQ)`1=ees_#mSy4Hb-(N^}a2l}^ZJD7pRHEh(oh>4-Se zgwV?D)kn8>`~VK+jMQYb62KmZqF)9!f?$Rf8$JvyRE{J66)3*`qbfZ(S|e(ipMbGq zHNj)`fV|NAR?sZW+9ze>enzb5iXF-_J)By+xfPoukilyP-KzS}h`yrm(kmiPvHLeL zYKX|z$xqx=9uofNj^WdBeQwN){%`%c&);{snhp7WJ+6P-=SDoC`N5kBM#A+UOIs0o zML5i#lG~>sL6WS9+K4(9X&#$Mg1JhNvqrs>-vp-#&m1wBkCTsDtITsVU& zMd9sT69`n233mEj?Y|2P{=eUaU*E6q*Z2PWO#2Gp|EN=o`f;-kk%+{>x>Updc*BAq zc2nWj1B$vM_Q}=qBZFb#c;C1A@^3#SZrSI>_l18%A25O#A1Hr3F6MQ4$9RF#M}AMj zdC481k~_?cqAmSt!ydYmq=XOM)nA0Zf97RB12}KO(4(rWs{3pp5>Ld(?7)3-#%66e z7V>^IqnpkaNzSVK$^vg08j9|0)*XlZYvV{M<1ddO2mSEsBC0S5#8RxEK!Eolw&Q%` z?#}N=PVDBTKD}(81>VxjcaZdOgUErtOy^H7dQ*$|qXAv8q^a*SIfy>hqCE(wS7CFx zHiptme4)W~>h&K02ZSStIOjJ_jq@!e?7r_pF5DlCRs@C;LA-1}vha>s$3O_$3*-9v zsR@yPuH87l?~Voh!{tWhNe4^;T zXC>oDH~%UaUOB0f#Wdi`d>duq?%%stcJrgML~Ni}=M$2DM;m|c7dHtE)>IKZ^&2lP zpUB!%=s$%a1Yo&plfQg30Cw=PrN9Ogd2tMJ`B>wfftD|(vDN$pGd%MIS%EH}K zm9vZDfa_KtOfRcO=$)Fp-Z$YtzI!0it=~%m=>AfNPQ|iNmVN`8{()D{1lhF^0oHrH zBrQRNra!;##A{J5e4)==Ow3{PS#iK+1Wqc`vEMAGd>;gq--%Z zV~pV~Qd8JS2-qL1_k%iG&g4d#Qd~$?FJ3Uf_ME*u|0QosTRF;yKLD5Xg3EgK*ng%r zp4;aiGio!K*nL79Z(S7Vve=bHz%x$<62ZMo<0-ELecJvxlA+hMsQNh6@=wV^)-Uzn zvhGTDQ<)|R{^Owr0C4;DKn2MNZBN7fKmX&owgLV5Uj&*Ai#S5rk$ykI9?y%0i^*sz z?;`b~{M#L*_bGo)n``8w6tM#`js2+Hxx$bKKQ@?Q{3VU*x~l*~vI zsxNlNi$^8$axM=7aJQ$+)V!*dK!8urc*3+Kss_MyZfd#LNzXIhgxnQ1IXdXoRXxwlXf|JGw8PA>Ov(Rl$VoBp`e{sI3D(C_RU4q929T-@R%yt`JeWOvhv#sRXs)VfZ>p5s$_(L10o#cw43nJgF&Jf^q8(P_Bz7k?IVQAr97rb$^j#*^OWl@nIJ zTK;aV$}!_A{JkL!a39Nm&-KXmAXnF|j@`h&S^YHkUq+e4?$7iC*9e`~y}=ta@7p1o zGxsC#V_wVrHt&mbOPc|hL&Z&d9@_08`?-Zl(AB=|xnXIXJn>#zG;IUwFVZf0(6ZP8 z^N%}F@$bK;iy{!<`*I}GMZ}ZLki%xt68b8i6u@PY6ps`ax1v(WP;C<`7t7iYs(#O8 z2Vw)B5rL&CBQ~buhqpmzr3?Eh42nxm+DO53Mw0s#btKOw1G`dq{D(O|W_&5uk;cd#!hW#}Y)D2%YDIN1E#_fi|YVjFsAD3IKhN~T+iL4hnIADtEUoP;& zwa~w|R%G(%0ikr^^f41n0~c)RWG;H)^S=YVefPy^hk}OaB*Rx#DB)l{)jyQ${W3zu z0SP7jV2&Sp z#N^9I^t~F$Lspze=6)B~vu!GN(XOc3l+AM9ZdVeRD~VgO#u&6p7PGH&2&yy~Wy|@%0s-t`n9W_UUNISUFlx61`%B)006Nexi3ouvqcPYa>l^|7 z6RpKS=#FT3Z>7gy-_2JyNnYQc>+eW+tf8$)^Cyzl9NptTe<^p)i7_U(N`7m8*y(Bb z2n^x!bJelTW2Mu+8jZWPh}yn1mTVhH^3x3V1?0Vm!|!2;KL4j04kW_ae}W(EBKiD3 zPJ5RmzzUbd?fxLkc?C_>qTUegiZE7RhLIGC)j&i2-CNNS7s@6Fg{bMhMVI8OL2u?? zbE)w@aEVp|W4PnL_6jeFVD@%t--mdI6&X#kj0}>TD@zIp3jDJjXQr(vjiZfqPg%o~ z5h5Z;)uoD8ViZ*Tj;hG+HkZX!Yq7hVcG>0|Z0ymNX8p5yiAL;qtKW-6|E?+3vF?P3 zIe9RNhdV#*B#~Kzq3r&XxQWU)#P*n3>4ts~VoYD+2cU4`%%+SW{HuQ!Iq=kJTrzk{ zkG!`{wJVZrz*}ngBb9{7FWa9xn(D71FxX!(+Gm#Y<&|ggSl>bI8~BKB9UAj>=I*B8 zI&=^$mEK4AJOoQ@XUH+q(kel< zi09|me#=H)?+@UU$9qutnc8N1FjB z1{L(L5RXiv@e45!SvLAyD#sQuU*>NJ%Pn2B_uJBkGMM=Pz)t*<6}5j<=eb!qsryasUsYGL%J!oj3z4?4TL+RVTciEkQb;gG+D=j!2b#Zkl(P*g zg2*UrkGx_iWhNu^q+h;3#QvI!k2JPuri($r=niWTM&Shw@A8Mj-<0k#g zYp2bSDjej)G~6flEy!r8kQFC`K-AsmU6OGJhq@A4k{_V-fwCEmAC@SW;pDw9<9OHFb~CF zqmT#}UqEO4sS1xY!t!q?Af%j~kAR}eDVYBTH2eT?@CpBg%thQoZwwFpZ&#NbGS>{P zy??Yl!AB||qzJ=p(AFy^Ow$yxT33Qr5jP`=RM^fwp^exjTy+mKqY)or1R=Xexu5Pc zG>FV{s6+E9YlQ$-zNPf=Eww-reGZpFF$imvLIg=EHZLY(&%j&3UIbOJ zSdLoRznON!aH#opNQ`{#9AdO!RM46~Ev+_X3GuBA;ntM7Rn-&$0P+nf&Kihf} zy`ZXslZxXG99ed*pZDge-)rf>9k@}^I0aiLRY%ZH@=|BdGM{oP*B-#yiL1eWlY zAwj^~;^NL;MqPTc6Xf3nxN>J@?*K0X8hfcLve3q*Rs;VU+H#jjdSt~oItX=Y|t#^EpC(VcCIYw!DW$B8vl9aNM|=D!Yn>C#BP7ftRWJ9su=Blrdw~~kIr@a~%I;=;naJVBl9byP zi2a6czwC(EF&JNJQvg3^Ra~b~e7tF9L1l%{n2)Z0HYaWUr6;{YlKLM^6!#_#&!x5d zxXhA&8>^X1k<@@3*%{o=?y!4C}3Wv{GRDUhrny$h9+_zQJt>HuNhT)<>@$f)- zKRvsgkFjU`(V4(7$47rtJPQH9di%bgTC>Q`B>_T^Z#6(Fql#|R8Mbgf%^@9V(z0*l zq2w%dyNEYi$hSIS>9GIzBruhk*08b3oU(~<7=y-VK(4cGc;HgF$(?qF_UMXOV3{IQ zze+kd<@s{&^TG#pSvyv{u>v!2LWA&=Or!485*Np#i}&R)ln;~erfxG*LA*f}NN)dZ zyjp{PWkOZkzV-MxHBY(hMXD#CDIHdiT7K9TZ%IQV(?(xF@cD2Osq14OIW+x#?nT;K zGlrf-ObA(Ij9H_L%bz`4A{nX)9-}+5C_G6e!0Q0G=vszwTU*+cEkE3lrS?6a{{e1s9CRm|v>9#>z@`ELB=b@5A)|{!Yy;z#7dT19T&j7bTPT zEZf5a5W=TS|66am*WH^%N7?+=Lj#ZdBZDaI!V4?2t7`GF3+JUK`BMbc5XdWnz{n@Z zLrW#ixC!Yr3zl7w;(m$y3O-xF}82>IA-F(B?3@SPQgB!(>&Wpag_d` zQZQn1#0-#pKXv0l=~k55I~w$dhZ3QS4j_m~$bs%^cn>wTe^n#3{#h-ug_CWo$YX?OpjTd#B zzSc#aQP>+bn{(Bs(-e(-KR=9(RoAiGgH)V7{L!0!m={z@UDc% zv7y#J%DU3jAgwA3a3onjoIXr`7&)g=t7#ekZLcr&sk(>=6eS@}QNhcaF0zQ!rnbA` z*1Wd+rCJD&L2O*T(SQA6OCq%-ACTboMg2?4qUNqnBonmytzV{#5cju@s5ai~if7t$ zv+yNar_zggC=vKBvN1WqA{`y^Ibi!N%BzgO{6{en8vGwpCF2>*N+FN+xw}-z0EYbJ zM_o%--0f>FU^Ld;DV#AXaalG|r2r+?_Z5KP736L`nRylDCv!9p!h!xy|GA96s-^1zu_`g4}-k?bTQ<2^?|1L{Azvo4H z*F@6&)Fzw1I!|e)40X0tzN}f?(@bX1rndU~!hdLJ&b=TrosaIM7BCy(YDm9D`plsO zD%C#dek_mgw$b%VFUk_7@(NLo%@=j~Bs7qU!9prpfxrHOD+kDC#vb=Ne))XEx4O7B z&@N}MDV?dgAaH1Q0EL_PgUg?L=hc>1Ar0;sL*uc|XNq_H*|M?^zf9zA{Gexsvt04AYwjJUD^S4)f z_7qs;1V6mJ@N8m}QW*A(ac060JM&!RFw`&=@#KZKDHfamnBHe}QTmFJVFAd;#S zKd>DjA1;^v;tUIn9cV(XM}mduzhKTmu1WP_kRN~Z~qA?m0ymUW}U-R7vA}<_liP>s=Swi^$YIN za(^RRj_>qui9EtdeR;2?f5G?GR|Ow}BcRE5Q5Fg030&}|sv3XK7WRDU_W$8Hb@m|j zIe2{Giqo0$JueD!WiDG(KtJT0t`X5LsIaN7-n_m4OZJWb=KtiW5AVZNY=naS*V2mX-hY4Mxx>vH z{Qvg`8~+#ou=kz!=56}>|BwGKe}mt_?f=&j%Lrfb+p)a^yPF zBb?qP4Cl!8C(RYb;_G!Et7sQZ$FB6BzB}&+&A+)#=OzdUTqtkODLFAMqc={{b?epC zRTb8i*cVJYOe~CSEv;=$t&JPO-P~Or!<{_5_`e|FykKyUagk`A=-5C1LZVt$VqR-z zH`zxyN=cX|x>ur}zPiT3&&p}xd24-pfq(LY8NxS`FDo}Q=R2UES3_T0j$kdxzpV}Z zQGM0=$Nzf%F`B{u|GsWO4+nSuF82NZVF%a2PFZMAuUtFux>T3Z){~q>;N!B)e;8G3ljNlQFG?tUal#i2M zH{3nXZnlrrbio$$%EKU$Lu=w1jB-WWCZDM5a8L1Pbs7+acrzElsIBxDzvA=3#9%^b zjR+tKid*{)GHy47#{ZxKB3NyDOYy)Cm-Bi{S%d1?a>frA8-4E1ocG0F)!*p5$6z2x9*b_<@H}=kT7Wkp-z%C_FYr6s848+-|1P1ACf}>pGgXul&(Bz^fI}#Wo=S zi3{0I_$oj+U;ZfLDnZVB{MTxa?!ddm!}3a3RlMgdyv@5Gy>X_VwW#LJ<@UO0f?fx; zC>H+1csB?%eEleVv68t7N&sz}1OE!J(H_w*S_miLM|B=1qe`>^;U%l>dG-qm@~x8x z@&%~Pv3?YqTb&$#`|iVu59Ngk{Z_*BjsLFiajQS8aplyGGw1((ODFIx$(!cf%8#q? zE1^xmI{mLoK>k_Q4_|9LtpB?nkpG8yAMDHg@4v+HBkyWRz2Oye{tGu9{tAnAL(a>~ z`30KTmVu{T-F_8F>nWWWzG?Di$A@$MsGW&Xk<#kin!TTtuN{}Tk_B-_20%M7z<2)C4_|M%5|3GAW-FXt;!k2T_TQasJs zg0u%ri()v}9L&2dixCGmz}a(2 z#}RUK;8AZdVM+Ld6Y0rh!vCDg`${sa6N1=c0d8E!Tg8D1k+Ipvh9e@|h2YyWoFV)< zDTFc=<5VBt>Ur>E2U*#pJ1ub-D_-vnB|~a%^l(>GV`;X$`-k%@y*?WKqk_v?0S{;o ze>zqPgtq>X-)u#&J8$}9FVrLIH+F<9GJI+&sBlhHZKNmQH#2XRJ7aE3QQ~o|Zt=49 z(+)(vcIQ^c57b*E9(IjCMdVnYGJdv+T0sGq)voR%-ew%1l(O$u&kY)XdWB7B0ICnn_08Z=NTmIN&{yK=c#bah8&w(0%`M!1FMTRu9m zvpKJ$Z%=;XA}>&CXWGa8m4^_z>;oJW{Rl$|yA&>i1;N)yY$<1Jwj0p>D&a6KG6#`cpnG`r9sIm3U?Lp!43pB#^N&>l!~t8 zynd?2m00JD&Pm|4b2D-hh$xF3fh0H*^}~E0VGOk4L$)vtsDJ(u=dfqwfs7h|BANEP z(MoJ{o4iZkp|RwOM$`ZCDwuUGfv@31yIH>)P!%5QYvFPa0kbB=6uYxD8?KOq0GrXN zyKpUuWEA~*wU7pLd+1&v@}zEp6EgV=LG-oBLlWopG5^|Q2WYV?OpEqaSa`7tJS=Y0tA50X> zhvZr3u-EMOs75WW1<2m1EA)@tSJk^Dk8qt0-~E(S=DZFg_>zae{&(*xy%m&UvL1#b zwoC^Q6p0CKA!!DNQ!2DbO~TgiiF z3SxDzG)K53By3_FXDEh46=V1vTW#ji_?LXAggox~-xH4s?=-Y+SksRUUFMPCB#yb~ z(c5kUw*}Eq`s_~gowFdHD%J&{eg*Uy4WPa@0Hv+5p9%H9Hi{5T7pCSsWagP>&6c z5n^5?Cb3*6$CbJH+tc6~h4uSvnmId*eKxmCT=f%U=gXS$`cz)y7|ZFi#^RYykb#kII%WS zPXG`UN{A0DL@RSO^2Qq3xHPioem>$#h92+}N=IViq;R@g(==7{`A&%o9IfVE=u}y% zYk$^$a6IJb3Sdut!54x@OK?qEbsEp{c}%L7TXy-1^XzRojVEmh9doD=%~-lER{^I=bPQtfhA@7as|=Fdww62N7b31BcjmZY z&v^632eHDlYVB$2k252$*z^a7Da{5-vm&6895B!T|N3Pj&)qCw@L({E2-bSSu1!at zs170GfBUB<%2!_d?92SDA>)4hJ3eX7Z zX8-N3eE!?aXm95O+ddq_z$2->Bv$-IZUQdN08TPFyOavt9!58?=a>pN#ihvNsxKf` zT2bDY=A{TerHiNgW8TB>^YT-lVM&m!hfU;CQIjGdDGgfDEqOJZb9@HOS;V0CyT`{M z@r9&A@#tl`5w>9qK7Lrqw|{VAI z3V7F9dTQ6pokIT9$lee8R1Iu7Wp~*7z*$s|4&Hd>BVKXqbIC<9UD$^hM}GS*Bt=2K zbM=OeBCh6pad?(?ZHj){N4&k*S7cCiZ@Xh?@6LI5Qu*%NEYQ7DxB?3z@5BUnP7*GJFvUB`Z}}+t=aOeoU=QL)f()gD zFGf7UO5_e2lT^P#>l&$)Gv%{w z|Fup`P^|?j{iCY)p7tL>NwT+P+9DYgd7!v(O(kpM7^K8sGfOVALK+O8U-LEU14qq8 zdfYow=dau&=uyWkW^uwD>L!harFk5`KIxl=hTEiHR18@2tz8Y`BcuhM<1>tB1#0DkRqNBu-j&@(JIVp!PTF3dHC18TrQ;UO=L+C8PTC6aZu1FGHTcSfLSj537ca?I9;FGwRn+j2CN*{+sB~XgW zMkZv%7b&Z6YUEJLOOrL+zYh@Wwfc45>bTh1A0E}-xFaygEF_up*0Joe&oues#pesY zM-I`wJcoZA-_ac1O{lP{Ka-NESC+55@jB$};x53j2l$dDT~E+!wA6wnqhONUB50kG zsHq~}NqKw>z6L7m&j$ryftl+g1FOuk%A=6EtozAd3{D!l{|z5uOMY<&U!|bXl97yD zABJZQ(U6UdG3#lAuHg+10x@y_g$XFgp6vTs-}+ltJ%=nT!Z$H=LaSX=Ixl|!=s zQS0rZ7gOO=EF|4oKJA*=+Xp@A`}oD7qm6s$FF1L&{ZpK7fsKz5%yfrE9Yb~!t(TP1 zp9KkXyjuTAhW|Tif0cz3MrL>`FW^=oW75r7Wg&K^tYg zsWaS?)95Qc3XWLE<)l@UhdH+p$G=SS;2;Us7pt|!94pI3;ysj|6pggP3cgY}5UFAH z5w6R}cZ$ja8iy21x_}hn^^We)XLi_$&oc~tC6H&>YBja1(_I(uS^6fjznyn!Y>wCN zE!y6<$CF7ARRBJMS?xSQ2|N3dRpKW0$H@tMQo7n3ZNnm2i! zmPDm%i7@W69Hkq{DeiZY2O~mx_Kw@0vXm(ZCHIH0{0)Lgck}D_v|DFs?+w4BZqnYb zMaA@_STXXw`-6`w%);b=6-y*JHGRGQCFzg>a|!o|yV{}HDdZB)>xom-ptI?AX4Xx| z>|T9y>^NCk&>s+tyR0NUVyav_M6e*z(C`OzdWK7}%pR`Qsbd%X|bc%V0Z2)=4srwb?A+b$xCo6IF(TKjq6h=GpAn|1+q+vxeYPMet2CeEQal@epwy{P`4nxVt>P_SA##)hB3&)hN7^F)sCf1wc5!VUrPc`O7(k?{WpYD6t~4P#ekwZ))`#JekkM;?#mXs|Q2sbF?eT z-;m^B*6bvMSiyjEDV1Zt$Wqa#C-eqEx^kB zfFA%j)&t`4OkYfjF_V00Qy&J|NnR>*8d5;0Ll_tAD@YgDwo3dPDWN15o@jM5?LAyU zJ-kdypyOBC#{ZlaJ3~~*d;kr04u~`fKGGvaR$`=T*(kG_fY`u>s6wT9sC2imghugj za}7VuIxci=OKiHsi#U>WJ7RW={LtzM;5eFBYcdTvh~7J2EIS}r6?4#Xm>Sn{@4A7% z{X(%MS)au#AuMMtZBX=F7y`ub9+YlScrGH2*&`3~B%^-0+PFDG)cyH6!{ZMYty_@C zsY%yyfYF@vFSSoQDF;XjwKPt)6Qq2}RieH{9{RUO-Tp@TS{u4s33Jh(p`meDS} z_9~Mf(kPt&niEEpqA_7@3|zi~xZ3<%rJrJtOMy9*a9xpmmhS>J7iCFSLickS}hRXn(B{h!a}b ztLdwm8n_q`*!2;UXOBd5-y;jF^-1Y(*I6FyBv0F=Xwz$DaQH!bIJT~XeJqnJs)|Do z{d>^VBb@Aj{gKDG{u{b)FzVDph<0dN&AkmdEHSlQZ4`OHN`WKFUrm_#pPvD6T!~VJ zx8Pp>D_RJky)7h9-iX^2a-R@vNh?~YYQD|-Nk!AuYSDI=m#dxUnOL^yM;1S~f9=5v zZ7yxb_7I*dlJfj8eRy+p^e}^p6UxSUm7Q8-8*NW7ds9KBO`S6W0b$7enHtVoCu7%N z#d++%^foVd|2s9vCImubiz1;#ZEbc(F6a6M^f2=J?fRuqmGK6us7IPobCo^~Q?v*| znEk#NxYWyanMHQ=>}$w%HoFafSE71&#f)n9KWw!hJZG6l@`RdQCU0iHW7rWQXt=dW(@eDX6ZyA@Ll{9>3h7M*R2m^g>cZ z4kgSKYaSdmuYRlP-I8`(1Zt7g+`fcZ2h{=Ot4#a@nr}nQeeODQs3SW9K#Z{TD$!i; zk`@}-3!#ZT8>=4J2ZzlIWLZh4e(09=e+vX3&`h-26{=A3I(-D7D+@93cab(Y2yhGA zJS(Eia1GM<6V3%w5GQRfxsDmA)sp87UgkATAK%|$XL>e!#*C=nN*Yu!ko=nAT8*Ds zb6>$O>*bh>tk?L#vh8ca1uZcn*YUy)VS7yeNPX0yFn2euf|`C}GZ>7daE_#Q)Lpf# zZIkHKR~I>Nv_4C2B~P&krA*&LYAnv-cQDGO8Z5LF2RD8VZ;Zuv*vPJqAJAoq&vn}X z8*wjwhR<{(_B*@#2G!%Xy&RsjPskHa`7;$CS6~QT>6Xq~Afcjvk%;&tRYLOvd~Mof zhQ?Piv7XoUzWTpxok3t{BinSXQ}tLAWmydHm1X=|R}%^qor<+ecGjpr5l92zUFI@XJ5FZIp*uAJW)MpZWQo zNP&M%CKE8Kv@NhdA(mw~>gt+ysQ(8*x%t*qZTp*$gHnfJE`K%tFe&3rz$H#DAf!By zO;T??294#oSj8ZVOM=U~^wiMw>NYc*X{g6q`~1HLT{qF!7c-{OXjc#MBi27$6ds7F zYkQaxloHJWP9GiD23(=lM6*(Hx62{R8TmJ!kn2WXP^_KETMj1k|NO(@Hv4rl&b33k ze-WYc`Rd(yG-7)lc$tVJpEzBV(A-3}ncd>QkFY0-pf<$fC*2ji{J5s8^aP8nW z(54LOt$S&l;`*OwtHVruA_2Z1!po&TY-$1w z7l6JY)p%S5f1BOJ_~J}7sGgHbeab8W9O;%~+#7Dc}+uV@KH_G!(vBbvO?D#yA7{u}mO~Qi3%! zccaTM(!9u=?M3O-O4~i@s3Fs+5$We!TPwI6+%|x9slE-9H&}3+n92$7qZl8zq7>L!O-$y z`1<&;)lD|_ogdjnFlQF7mTX(Nka5T(5xl}UdJg)iJal;C8B_6GF79)F8TV9m zFW);XS%x5uhYlWgoBwPzF;hL)1l0O;$SX;lm#`@U;sv&dPG{OYdsD3a(oDA|VLls| zITYAnaoA3NC0+kmiYy=9I6$4t$R2F3oksnUPDnyRWG+jJ{XD8vpMTg6+xcS)mmGyV z>M3(2UzI&VDeKAtGmuEZ0f(u>4PF;EEM_ZbCp~WEN%hj@V#OlNiXtBBVevS5OdVwN zIx4KPnkxuy2{o6ID*r16Y>RsmlN;po<3vhYT`og|h9!+xKX&--kg90&s1~?_kPE$x z8K|6$M^#+_Ie2e#?VC!qS={(GaU_!^mJ!QS+<6abnd!y=um!6a=%rHJlqDg@yk_7G z!N5I~s|JM7p=DH(=XE$ls+K3GLpz+hZ5OX7@P5*F1z$W%^1onI;>s{X3Sg7dy0--M zY$~{qhw7V;s7)!@7D}^LL7JI}POW!NNxrN<$q$4{7zmDd!EPHS`=zVY+WRP84r=aQ zGM=U?WZ9xEuK=wL$=}OO%9)re@b}59FIqi5HkWw;0ZhrG!27==8Rd<6W4X!TMjC z76Tu|RMFEm5ybFTbHq~N&~4-v$ng4)0}I0s8lM6jg&Qu+{pJH;|cG{n>nC%r0o!Ewf&TP8x8L11w- ziA)PlymQNVNEt&kYh_vYgZ_^XUJB;-Jwx+`nH904trVr5#;M)u_W2opex>3)S?*Y7 zUxPl?WLrJ0##f# zHMq#@{y2-8;o|6}eV`4y%{DOXb#o)*wR~ddaO@12Jh@XCjHe*)ii{;t9E$m|N;Tp0 zkra~$luhu$<9ua?Fw|qi(;jwT{pq#TFA(2W_bH$Z+VePfLwNY5)kU@`kDN_~0A`@O z!NQT#1@5@RmIquUozx4S7Nc|jR-W_oK74Vgs~e91t%rQ~D|T#B8U33cP85NHU6)j- z8Cx~~#t|l`S~G{&AckR zPlQOSlq#i(AcqKCLyCU(O0QR{cdu%o6+y zycCu#0e1pB-E4O6w)L?!cZUC-{)De+X%~5<9rG&a9MQyz?f^&qHSAZhVDIlubsWs` z<5JUQQ5L^$Aa5Z^3`gR|?q!c|#?b9!X3p$+e!`w_n#fC18Bd7;gEE&hS06-F?Awvn z@!mf)NjLMx_d+B|{iAQhJakO2(^bKw8uyO2r@&1WUxG9bK{Fp&V5)XoZl5V2Fs1f& zboTCClN8)aDStYwpWU&<8gQO#fNVdZzkF8Vr zSbD5m{$p}a-<~mTn~jTqX|&#h^QV$!-Fg$e=pt&h2v>Swypc;{E{i${)f$Y~O85cu z_Fd`OFjKY|XHKiu;jOnqB4)tm-th34hK3Q8lzOSX8k`THRU1`i29=gEyIxpR(;H2J zeV1#BK|gsu*GLhyo$}?8GS?qZP=MvDmN*xgObN%K4?1DiLKq#2bpS>a6J#&FsDY(AnMV7>q5v-$t9Qk#)n zQTBd(D^}h}f*r}>r77%qnk)&7m=%~5GUD?P56O%PBrM1|GLL*#MMy@J$f$7~G&w0h zupU_T1cjv`7RKBd!28g|=iPel!|Tlz!)N18^~3IT8gqAr;W8m$x}}}jUWtc#ZPhI@ z@BCg)#axQ`)c0I9$y7fr>Vks5Tzuy1dn(AM2!MZ#Gi?m{rJ-Z<;!p!k*W;()`dpnm zUdKBWQ>ay>M=1<+C)tp>2TvLC1Gv6e(e(5)rD5_p*|0ZjB88JGKyu^12Xu+R3!D6n z{*N63{w@&C<4fy+&fZrG#JlK=OqbU3y_St4GlAISd-4TPt?4syYuBBjMB8{B;S(;IrdY1(Zt3mQGyGkss_wWHUu<~$@DXzb)aL- z+tGQog?seSU0z5!FK8nztKKqIGN$sU8vV1j>k0xzE5y(c?U9rPhg;ksYSj=9A1n`f zen=VTJn2LR)vGKER9_rF*dNCMc&Y?ly>{s~ z^f{bX06{>$zp(0tKW1|N7->p|Qb;NR4Z!4nn{k(^yt@CeKWi7|P@QdzB`s&{tLd`T z7v0qEW2(b!rQ=Dl&?auRm3`LZxHw3V$QnN6Z2?e)HQV>kZ<8A?fHsfgi(%?uJl*g4 z9q*lt_PZtEvwhox`K%-j0+cpvd>dUF4yc^@>0R2gvHNJ?UZc5(y02Gd6}4YtZV+Ku-6ifV4CSk&kE*xL;kXU898Ss z=KGFP@E|vMlo5fbp^(aUO5n&iG&N&WlUrRQJ!IZTVyCBsk5NB4eqKI-zBGvH;y}3Z z$BFhdSW6TijR^z|*By-IPn!rStz|QUI8iHrs>5WJ_4HzZZ0d2&x+odY{+C2puV^a3 z;(qZPLk80^Kh(0zGWF3}bsq-aRdn4jqSlO@CU%sxE^?h{WRZNmWFizqa>6E%APfm@ zw2c;anTswX2|6?Q*Ljxs=B~NwenuN5ibXyvOcwqXD9Ea`9wf|psi+oT6Op}K0pqzyxr=h$I&?@i5-ddcWllt9PCER&|q|m@xco~U?=uCDY z(4#%A#W+KXj2O^ME0fXMRh(|P*uim{hq`JJC(L7w9K?-7p9J|AKs;Et!aSI@|#=u`Gy63 z9}#yMOFjvdWLY-FAoUGwCgnPGiY^r6yS&c{CIrOo0Qz_#7sDv2kdT@=#7uJOH)}IJ z$9DXmjA*j$$nr^#dX-vbn^y`@bH*B>V+#1ZvOTwc<^5o4YNk{S_Y)(3L8;rC1>V=T zXKW+2W`l&6<;$!bSGInYSO80`?HH`jCU{({go--_8HgMY244gPbsT0+H67-rNS<|O81 zo%KR{9{bcouY@tKRQcq|El-xl#& zV5>e_zQk#h$!`Dk^BphY5!MKBbe>A9y}=Nlge_$k2A{#E72vFfmX)nNt3IW)H=$$0 zA5+YZKtD_s$?k*w|H&K$Z|QS&`ypbO4UHWrPE!=7L!4t6|b=ZhwQKe&?2UdtuU$CIEjEm?Mrrxl~s!_So&FRlUAT>-F%|%IZI%Wt~c; zU-E${H0_YVY}9L`;>|BMu50kFJ+CdU%dT#&4FVi4=Y=QARO8I9g231CNaJ6rT_B;A z>);Z-SBd<4mG1wJS#|z@e*pcmAt{z1;!{{ro;{^xfvPc*T>y&qRVJ{>vRPSWdD>(B z`g5pdymfOP(`QWb#Hwa(grJbOdXd)DS$>dLI^)FE?6&Ps>Fg z>SJr;mG^M3IXr#S2eoph?|2tncK?RDdq+f4+^}j?;2$WhY8`;v`QyGJ zF^LD*=?s!v>Vdp4&Wlp;udmVMU4F21)gDxF62U2OJa2q zLuHj;+Y|zi>a=PMwGvJTrq6!7r3;9?s*#5|9)BDwLnZNxpOql9xAPxqwtr=BRT78` zFEy+Y!6LfVb-nK@kS>;kw%>q!r1J^C-$Q=gx<5jUM583yMf-Qc5_MQeH&8c9z@Mh}IZHw^v1_gMO3@Cbfn+hPY;<;5v`pLjt7*PHi|s z!lGPf!_{%tKj35wF7Ihu#C)Wf4#Aw`z@CpzQWXxQfLE=0Xn1X2ig~lYz%vPmK!em% zaS-gN##XBxpG1Ve%q(c2o9JPmAdLxP;`qXvA+JyJ@N83Vp>~N>o`|3kE|Bu^p;eP2 zAsDp0#sS*P?b;%{Btz%7G}#}3x<}`W{b($S=3myV~U#Z}F_3%ddD2xNKz&WunTih{{4RMQX}-PAY-M zZo~@vAu`E#rzvch6I|H7$h$0~)zv_BYxq$Y&uto&8`gcWPwT>b=)i@QwHk__$KqIn0C_xy8$MBErBR zf92NQ2eqnU6T4UPuca~!Igo@`yRy`ihVvR$A=|pRjLR4YEcS~pXRVSC!`O`>OQkl` ztE#?tZ$uBGRvy;A6-lfjC2vFdTXPJGtj*Hrk%SCO4TF=vYges|*@(*`$q%!84P9`( zd?~cGQIiLH*F7_7hEiVbvC2(MiBrcCx%$rWTu@akg@Z9cFVbW0ma`U_J1AFg6;c~f zgNw|xXV?%Gn5*%*#Gw0!diR`;&S#0_th$g7S-yhLVKuD2P2H7omq3X_{!vDc~^(*GYKKond8CNDw8N&f!RrZL^+5%4a zUJT8i``f@YK~P1Rq-$OQa5`JWSqKYm_)_13*+-nA)_|zs>_??8kW;Rip`)WQ1SYTaA{RXJP` z^-!_(jo6*pT^o8~1?CAye!sj@&Wn`xi0W(E#hS^h8Wu~Kyy3@kYHu5R^b z3GgA@*mFFFGP(Di-b$;GL|IMHp0Bn5y+rK8e236Ra59t&>nbS>mdpoes`&Zx`jyYD z0}m}22S+<8M+s+N)g-g7oTtdlUOy+SbJDCmkgZK-SMMMtrT18mpuMI~4BsZY2DR@< zkM+C_gcEOV)8DB6*%D7pu2NnfXY_k>b^C%)drxZ|HYo#2T=*d`)iW83>Q|HmPC8t5 zx82M*XwIT{_pyaJ!N(-02}3%PhXjQSRJZL@;1MdqJY;BVX5!hZ|7Tg?{P$WXKacyZIfpDu(cKA3 z91a7H0mC7lsmS&WKlYD4PQYs5*a1`?KG8*lc7}gZ4}U5$kZkEMk#rb!L=5*e3mWW?p31%G&zeBn|`)knO*arRHlPou+` zH0cbW;WM$&AuA?}o+pqc$U~lztxVdy%It0g3p-b13>acL73wTFw%jStin~M7fm|zr z-u;ZVU6x)aqHk~%8g2w!XF=7UAwN6FA9ydYOpAbn1_iuX0Qdr>q(_)qzWh}>Lms|u z<8|dU{pP(fu?=j?k9}8lcML|Z)Y6t|f=D9W^?3AfiAt4O)Vk&!3MpNE z6MRm2rv7RRVuU?+LLO*lEk!e(C(&-GBjHwG7N0}ns%m>(O-aKzo1+A|NX8QXYg&tTk=B@N+dU6 z3elN=1m6?+Hwj*sKJCRJoJmO+%6k2CmYG%U-YL7r?}fw2flKUi<++yAYy8f*T7mkp zD{~vnT%9V&A%ayLvzt@3udQ(?E5r&Yt>ccHb&xOC_B=vxiE!{#t!}rkm?u^P ziYD-QJ-}=Wmt#%CoL$8I(i3TR%i8k8qH`C$7Y!Z*4ku4YG5`AoWGZJ(2tZ?VaPrWZ zK(W1u4-lzoX-{@_kKQ!3@+nPr+=1EDL$c$vDdYVZFvQ8ZUklyW!TVGnRgc%$?}@Zi-y2{T7yH?L%r>mCqZK-@hqAVXh4E2Q z6;$Cvj_mLjdBHwU0SdIGfNHGOtA)zS9XYm!?&d~YMq%!H_nw~jW;3F}ph<@n;3XL0 z4Vj;7xvP!07QKQu+H49qmsGIXL8?{sv{AR8GS3Qr^{)z#XwT+SU9(ikw z*+f+Tw@aWD|9+BL;$1%WI07g{r?8RlRs8i&=@*YKK49#gd8qQB6Jyb5dk{f*sNpzwTA%xSnh_R_zV0g^u647}ug&T`0v^$9|TSQW!Vqtq62lm=?xf}tz zIA_)7ErTav$kFP<7e1y*;55w`c;K_y3L8daJw6eaP@b zyKl=O;T33btrBoPN876%dL>00%Og16npa>gZlx&dML-Zz4OYYW;P;Fk(nfrjICG2l zn7z;uOAE=pCtd;)mrHEtLPyV1xY!GOchbrGfd0zRA>>apyy7S~z&CKQy|Dc3HDA4l6jL_fRGjLrj~mv)sy ztkaV7@WK>42)qY~VDb(aQV@=_bp^ASkjvI8ae=~20zi_tSKxA>eDZpJZBq}DiGQ&( zS)jhTn|sMf-NO%i^xce#{HeHl#;K744rv&k&qo7|CUX62_-hNF1jqxjg4l$N`5MwKLDljwnX5^Q$WEo zRo72w&6!C_vDnuFQdnfOj9~B;cnI6(=wH)m$cdllF$~4|Svzmy&s^+(L=B0^Cz-#& zswK)q-2*21cXN0Q>$+pmI~c&<#RLh>v#CGl6Ys_q3eN)L)W>_?+=N&>=*L}@??glj z$^iQf#j;y*q?LRPk3@iIL95Fb49Sz?K@;qhnche#p%`|W=KSJVj6vM`@EVb=@DncLL6!1G1^Y20U}9_K5LjR^{zq-EJ%kNR zNkXq_=z9mWx}2|__G4C_!mf;6WF{nsYhkbqt}AZc#u8gWG#f{C+-c5FPuJSGcv2pb zKeI@l2`A5L@(xR0a{A=ZS9c!l!8g#Hrj!mhRrkFK2t0M28vJ{#2O_mN1i zT!ami|64U?C~@BYoa|J!k%n~k1PAM5&)IhTbpAcXim$G!p)C;`wGH71W4efGulBw^ zGYi=x;t3P=Jv7YF2ZFiY253mtE;{(d^r@#ozj^R%eT~%jNCHn2v`NRdi~Jk|?N6CN z%|LLdeOk3>p}t_fUxy2p>Is!Rqn7(~Cw&^h*|ymSAEY`Zh^OwUp%5 z7#*%OeKVhK1z|Q2l=LQMjD?2jQekjMuu>r9G5k_Ou#cVccZ$>V@ldRvx=X?&)?Z=upji{gX(;&`$_}B0g<^w6V(+2cBhP@<1#MFaMcstpdOD&ie~qxM z>PGuQ+(AgmSUQ45IP^3y^yey6<$t(&5wa50hWxl`LWle7Vs(xJ35^&&8J9`1AC7uR z(*i!oe#lIKOI(kDs(r#suu;nqcDd7*tc>+cJOC~GABiIh7ruF{yAMXW8OheozaNGA z!!#U}yXPJ4Ozc-H7RNlnK$J$Ycje)Fo+KR-^&5-JkKK*oZP=`o$!Wrg$rFC&B>27P z1cEv8z1M=RvlKdo*#)4fC>jld{KR&g93 zfyhmYFlCqYpeSY(!1vfVr+v!mWn+D@UQA)YP3x`~J9+%XT{Cce0DysdSU{qFS&LvUR2XziFMbq&r7RxuxL*GbKsXLn zb7D+hr-<)+>3YU=tQ+(#|Kx(@j_tVB&$N5YH(Mab%XnTF>z!P!h0aN7yBO}p&z6Qd z7sR|vDjxzWJiaLgvNJh5G<+}w1*q}ks|8RxK!DH3$<&5Bs-haa4%K3%|NfOQnyk3& zmX@TRYiHv@x<^GNC7^9_Ydsp@Sh|>NQ*a>V*rB_@fn^GeXjA_ZqmzLX}q)P8#|u=G*2qF(|JVHcqw>oO=8&-Iyd1xgEtEj+b&gftK}*c-PS?SlsLQ4y96 zJkS**T8|ljIkgddg668uEdxB+Wt=Ep%f$Nk7UkrI7VnyH!|!FV>awoW(nn{vr}gO0 z{Fn`Vs6W(%oSb}1{k$L=wwghdV`E}ERKFhxQ2>;5*c+U~B&%;k!gFx7(_SE^&_}|l zG9F7%QMWU8k^NrXu$6{lvdkx0V>#=dpLrv8Yjw-VP|5O>=Kn_T_(7+?bf{9Rh8Zb@ z;($1Qlsgl&xT}WCeT%8E!!VDgZrb)`AX`o!I0Lpt=`}|Hx#EpWgRHFkzO(sy@hs_* z<@gi-HQ%#?ijO9CG_eN*f+eU`!I5GWkLyZQfS@0%>p#+q24}>tp!ej&OI%mU0bvmm z{)zCMwf2#&P}ow#ttJzHCMGKWGyq>vKiian)Jv*utjG-CsDh zdV(-ux^82vEeeIFX~|}b9fnu9_b^VJRLxuMCUHC@n2KL+Pb8$k8dcyxdG!_Kg{mD? z@|AyIIlvLRJ*Qg75vBn$rhZ5zUiHjzG zP44&Vd-+&8jnAN-Y~;p1+XJ>Pg^wC7JHk~TYS*X?2#J)y>aOQ`b&wvNCKIpUPIl`4 zh%`ILoDn6Xp+k`hT!%);lh1V@m?r}js@$prS0WXm3)GsquBqtl&Z-8_-iDo)A_z#( z(5nn2o`19{;{Ow^_(HdTMqi<%f=6$$9x!`ppK=xr!*XI*S9b3h0JF)pcC3E1lg+rx zM(5?PcYt@mihx1$ndI%=mPM)14;|b=}zp|P`#zHCU_SU!s9GY}O4AJK=lrnvJ zlCCGz4L%YazR@iNu0k2 z>-rpjmF)gl{6`3xNZIq?LNx!}_V<+2e!?~qE8mR0v^&%G=^)JvRp1giw|UC$GsNm) zB9v-XO5>jpBbaEKL7+yZyUopMwKJJjh6IfX=#Bw{K5yRaSnl6VwT1|4hmOO^#WU(& z>S`~}y=vo}K~_UJI%vW?B}8&a;1vf^U6;G9TzhtQo)slRchrEaI>AD!Bjce+i)7{?-B@)5v zch^5KjDf;T^!Hg9Irv$P?L$HFAW!O9wUSbA2a5Y}XlvXkS&!ZuRA^m|9-4}}iwN7e zVoJheU!6wg<_aFg+{4D`2zD$<8T**PRBU2##|mgX;6K3uC}+sAJ~?P>9xy}R9YV$c zU=R=h00aO6000vJ08ap<-^7spMT8vQ{%(SAunI*orqRtmrwYJWxmUh<4L*Uq&dCt;* z(UE`Aztcfyz(KFfz+zuL>VS1gzUX@@C6&ZAKUcPeD*jVu4M5k(+PML|aIEs;y&Yj5 zKwAO!L@E)NZ;49Z4rkNe%mDa;gvra0uu{cIhXtO>L6t-FoHtWW7{w0^F9K9i=?cCu zgzd*=W!Ss?hF4IgE=9mObiUaHYnNDlL@~QwWpyeO+73J>=~{$-FZQ59?dcdr!vOWA zrU%pwhGcNf`M=FembyByh5B#7Cc?h<wRo>%|u8*5)(1THp3qfO#QO;l&zdpm5xqPs`i_vO; z85QukDX8s%(@?7h2m_TDs+@Gr54r`$53?!&gP~J{Q@X%W%Q#Ou$edyHXk6s_CN*rU zBx02e*fnM{OOEz@FJ^sUTkBKdWYP-#;gep6;VGE9gSa&>zR(8VQ#L+bwl^N(pnsc- z^MF^^Z}MMfk5v`f9P24CY_Pa!4lWM0nTb%{?_gD}HCXSGvDG0bO3Oi!7gs^s>+02^ zi8AjvGDRRdkx${S>z5ZjJJ+TwL!)UTHEzv^hlT4E@W&6kDY+2@^LPr}lcaArxUfs5 zsWZ)?nOn#;(PfzgaoasI#|WvJ-&ibNE)P8x&bugT>iZ!XjsOM&@dhjcPQ1j-(l{hJ zoKjZRIH-s|83HS8nH4ZH8{&^ViNQzO$tHAUv( zw}jEI;HRMNr_QbIPv-ffy)SkTrzy93c=d}2Yh`o_=0WjFIye18)3m1xnT^?tWp*td zI6KY*U_Gts73s}*#EJa+2k@6_3$M4n;>l{& zn$+2}eu*=+BXmUt@N$G}z(7WbwJgXGJW_{4TI z(ji9 zzD(al6>H-#o$%YGObYPfMCCFf3~+{GOQbr!hG5plG160he{eD1q(qq=4?D?xzJl&a z=|f$=isv1x^dx&cna;oHe!6huU4#iBeXZWqZMZfo{7CJ-(krt7UDohL{PDK!i6BuPzSTK(cw z{4@eibQQk!2`auCghez{j^{QFoDD1F7kJN9dW0&2=R^fApmORSv-hqUc<^#Hx~zU5 z7n&8lZ@aGHAdxyF7#@UH$)SpWXmYq;Bbf-@*wPmNG6nkE$LqqRe z2yhvVn-w3G(!y_KS$gq_cT0;TohA&9P7h)YIegm6gCy`2_)FA(Y(8mkk|qIjnsqf8 z_HcCICu~F)fo9+XS3-u%l0isY12$4Ll{aAX)Q<2w26>iro5C+_$>2W;5w zW{$$%c~82}jj`DHx$Stf6k6@Ibw2b8o+|A;aJvbb+iz(NeU2ax^8&wEJWsJcx+sZ` zC>HF`|NpKyz}1C?uZuF*JYhx{gvX5$SaG@7mHs9>?5(bN*2N7FSyMLL?geVWD5WhE zQ|aYBD+^eucphmE(U&^>yRq#k6A^z0Y`Be%P<9gDpM@6S4I&;o7>`(JIKj%VkstvTjPVdO-eZi$VQ5xVJ@tf)w@%1-=vI-9+{`iMl*sgsjx6 zMn$QDmtVuexrtLfUBS4HAksO3zo!dEv9Bj);NQ@`g2If(@Xl#S6TX&vgMhWOH6ba7 zFW7nV>95ekORaR%`YGHd9XQ6AvIiJXNLe2BmlR&8)>FQ}?I_Vf$OQb{^^BU`D5k`e zjSJ3{f|u>#r=UnCsEF{ow|O!vY8U2F-q)Xr=)Bl<$&%uycARpP>_CV@7;T8F%#h)R z*5h|=r}T{GZBvv_^|Rp~+cBph>Oy4+YA;BDbXv~VMKyQ}%~U=1%mg1VO|VI+Sd1pQ zd|2oa^}(vpIRuAnlzDZa$_%g2k_8YSl(R!eQN;RsvV>#Be^ zs2ZmGQ2|wgw%I=%IS5G?R~MnjhJA8Qy114HV}SyYC?J$=ArW%mn} z0wq%vvP9ezg!zF{TuEU)bJ)R-dRCaaNrBK!Li4gzz2bCA)*gLB6a2zsu zP~XOtp5|MsQbSq(?t|&8(PKNsD9YzDn?Bsy>--GE|0sC&4Mf#z7Ez%o>R)Kd7CH32 zvFeO#&ut)+pRFyYX1tA*^iX~8)N>grd0I<3qjQT(^Lyp^|CPS~jzXG75Q(O~Mx0 z-m zlM;%^PRQLBaeLd*u>e@AK+fbTTJ->|4sj+IS(1XjQst>ESsIE=Q!jApb6+LEp!G4UIc=B|&n}sQXGEVFqQ%u-j?>P~e{aKlcJLKNq$Zk#qQII#+;vZ3Pr8BsN1sc|(*#XpdIsaNZlofKXN4GxMj zWGeqL8LIa+5suc0NaN%@YPsMaTi`UQ?7&QObG&2(V}rc7#ifkn3mBU$FS9to96S|e zDzcYCRx6eL$nY~y3sCPQ)F<5sWs%+o-FHR?Y*i^YZ)rmp`*$ze8&UMRjPkmsZWrR+ z<>zm#{Qx-TClQuH%1XfH7yk2j$fq9o`&|u*QhWl-3Rg2OxN$nG_jIx}RJXA7+w1L3 zHzmP_YofhBn@8W&(qteT^TOBAFU~PaH)XE=xZtIh7~D?!CO`zT!a8_B3?( z61EA_Q(Z9Hoaha~9gj!P+$C!(XA>A`>Xv>i904R~FCF*ze6!q}AhgBjDe%>>iXI0* zFMn5ts&=)SN6mLZ>vwY-j;1(qdvZBUdnA+_u$K8qy?}?Vt!d9JKB0y8^rRXd@!cgF z?uXvo=IYjdOuwFf^m(sG!CmsuWAO6#%UKGPFn`M}V?n=IEI0usZkzMf1t&%i&n=ks z^%Dyius$j1r&rh=T@TiVx)ZCitP#~~LaZi*d>I+C%^%54d=_u|wBCG6{MKbl932HZ z6NPf1gnK{y7As>nKVRMQ37RYt)PL5@iJ=T)J%b~h?f{odqg6DJw@g*mEpv)ZOje>1C(FD3a5 z(BLPS{jhjp)0dL>XOi&v;M}aHmocz3RE{j5eN3J5=-*o zJW7DT0V!AhS)gD)M17fUzzfP`Uk<4(v569PKqCN<;Y0s$~}|X-{>b<~Z@=pe#U2-B}FZ zhDq00bK1uYMR5Y*x0WHRwxnSGrN|59Ic>D`$Ksu6=>SQ$I(_Wj~TrXWi3moQO4Yn)Zq{YPII)@?m*+gz09pwbJGxk-*J&9G#!N8eKVYLuM*kv zxzQuFuUdl9gU{{SGSH%#9~e7dN*};3Yq?#xd|W3goERnV0%R{ROcd=AB=jRpDYHSR zO>(<1(!C-REnt2tk>0Fi__FCXzWfv#fwu1kc!8VUhVO0v3gi0l>=}R&m;x~y=&-7L zfxrUf)3VQ2qpzi$5ZFm8H$j6uI~RQ<#*CJO>HfkcH6dpa6q0qs(0D<25lRk^&v1S_ zXtf`iyl_F16!5uRKpNWKe46@cn$omgnI4e;`y?R|-7Ve=j^?u=>dc_#4qHk-vhl!a z)I>D8_?%IgNQ}DRjFbLa54@H{=!y^Gw!AP}%J6AVCL2kSt%Je)MaXWcL4oOb`d6UD zUepmWTdCHq3T0E`W?oI(B+jM<#RxmYy{~JvH7SP8l1374pne(>IB!D4yX2;#NLuV8)T&=}BjW7A zV^c1;8eN`&Y}}XN-n!cIH%?;#@q|^(Q^a#!%U3;H1gX8s=V1A$-Lii7>COgHgO#+F zQdp$(gE;&}V3?Y9?cHKP`m+2XBlj41T?eT?3G74^JqG{Nh0nb;7d0)MLC)a8@CIN) zU6m!A4uQ0kP;|eYLu;86fKK(7>bs~`Lwz3u$QX1j2?3l!8V=yhABCbAd`inPRs5hk z$`3)1EPFREiv&vouBrZU=?^0I0eg$7nwULIFCG;0)_pv8NTAeu=Yf$h+iihu-{TYq zSS&-h9~)FCMKC_l)v~+RX*k4P?K*^&P(sz^>Jf)x!16}|`*ExsxAt7C?65E40Jy2? zv*CV(BL_DG-a!LRch8i!%->du=?5*UC;6hm)waR4eZS%FW!PZv8#f?~>k(;+E+HD3EnWr>YSJ#{ReMkOY4Q18S$;rt>gAr zRO+-q$1<>t0^-XYW&E+ zDn9t&5Tl;`d9fuor8wL&g-RU&<@@4IdK>%Vdl@c&H57O|=hck#1d~!VzAu&9p1@ zy@Map%jXZVoq6^dXFRo}I%k`M4mI%1C?$kYN5O)QC2IBBTLn9*EP>Oe`nn9Hz2}Lo ziqONN;l2Ujj-x-0ydQ&VCBGA*%=&dkXeF8>!1$Z?|iB zCTe#A$kdBce~oE9Hl3oKprNA7W+n~>hL+BOr(zR{xKWANZ8+F<)i{`*^5C3ag`a_t zq>7Kx%LWD`_S6n6*j&>BgF4H6bRt7T^Mg96&Krgj#?nc1xFU$yIt}&7Z;#V=ek24Z z@;^=82S(&bE;tcCvCq5lY<4N$2)WRZQ%3vN`t-uKrX;b%o^U`KvL*H-ExxcpNzlgO z)9U#33jL4SSNt6Qae@}R1qCszO$f_;RJ&IpN1^YV9a`SeynWgdnvLogEnq^d0+}7S zY56h>F#Y6p>9>c0#65p~IlPJ7#FDXl-g>z8omAsGw#;$jLRkm9nv81(6tNTz{=LW> zmVM$Odf45pbj>VznHB8^*3Vl!rpK3r048ocSLU65AU-jk_p@0fE0-jBgC7-XC!o*S zL#E5qHMFr>`nw5x;x2A^tR=m#Pu9}lra2DFyxU4^o5;gzR~>Z( zmDDb%`kI<&?-9eY$XDN(aKHu@5HY1ghPUg`H{i)kXzQ@BjP${Kif+xt?)4^$Dbigi z%i(40E-SU}Zus<>9QX#E5gy66nM;)!wTwe*E;ctU?PT=*@=uO6mDM)wEo(V_MpdiD zAQJbi5h4>3=je(>;r|YMX~y$FrA$z$!TOY;T=spf{g#`u#22q%MA?`eO2-`PO^D zmqx+C@-9U6ZP&X_{^M_o2kdiRffmkO?n;?&o6#7jaz_H-B%9rh9iX8_hO{J|rcVfn zZbIfN&J|8yc4UK)@a=zucuY&jQC#%W%V|d~S!Pg3_;#WCFEA9oDH)S14(|L9i6$F8 zj!PuvkjLDNu}Gw+Rmi{>DKJaTvsX|N=mrauurZKB;`nurp}2tBjM(?b7Q79U^?_od zTIfv;tGzHR2i!!Q*vjeJ@1A!bmQL|m*@#TJ4P>t=Vz#<_`lSI+$K|i4`wtMb5rY)= zA%hG8q*iE4;O*XQl(=jX-f$5kzbrj|%1`CWz~j4ht3D>g2OvHd;8_!u1P4vH$OxcR zv3g--guCsQlal%|BUF#Ek8|0ANF*T@Mf$x{BLh%pTa}M)N2xIgk`{#m>js_ZWqZ@_ zvk#|_2LrtHj)Sj5H{oisuy}O1J%yrmEmH5zDS@4)?X}T9G7CfDUf15bd8t%e7ST6N zj}b$18*=Y3_-Uefw4>eZ1mfku9(DOZca2&bHXVhUAioP54z)UA6HGt!UMm@)T_6Bk z^~PNaDvFg8p?xF5^EZT~g+aV;xH8W-2T2K$lSz|69^T2Uz2Un)Kq|G8gVOCjwbF&Q zm?cc*;quuo8GhL)qHgFHRBmyn0t9U4`~xsc*_Z3Ic&!TZt;7s*ym7j{C3W8ndQmc~ zV{W=!D3U*ne(Rtz&0xBa-f!b7y&KNq(}mGvw0Ra)ke;a^dXxR$$w-jyVTXk%enM1m z2}Bi%$PGPOamUxwf?dYXwp`ieT^r=^Z!zM}Ffzt*Sgd3{VT=5pc3UP4Z0=UuZivwu zoN89$f~jk|>;t70gAty@sGr2+8d?y8#r@@m{p>wk$|H@GIDqd{pFQ@}$D;VQ4~?`Z zIE6o2(=_(H<-36gbR#CG8r@flcLMH)!3}|nU%xRyxqCvM?jSBNJT*uTJ%lFrU)#%cXwj3NI=bTNg?q zY?7y%tSm?jAGo`KQ+(BM&uCHWYvxv-dRv}ZfM^i@FN$b$azsg3_6qGOBRW=P*S>1& zIVE{iA>xm}SKf?u*@!Zgj0R3LuFG!MR<^y4bqE8B0dahB^;Wtl zj-MAQ82poR!n{zK4Z~W%VXDg8nn_z77xh@&nLk#wP5Xav%U`F_0``z0Q!|8R=V}ny z`8>>im4+ut1#Blz#^iaUd0**I!}lVT1Pf@w0aX!EG{Zkzp;SzPcR|!h#el5dLu8Xa zxrLldCbWf64=Fl%&ll2mk=`Pk#bjA63Q|(O=x1Jw_?%KtvZ^} z8D&EqXR)&*Y7EnCNWSKjZMg$Q{nesVmMhhEvjBX$MrAt4$3sv8^|pQ+_%Fav-IK+)e`LTF8!T$NaoxW>jN5MLxQF7Q4gxH+jKJLCo$4U{r zGnUgOiKF{hqzz|#QNJug`Ezc;^GxP=yE-bdC*irORKP=k?-7ADl}5|)oXdgI(~{RR z#wmCf)vO7M^4xzM9CVm)`il}}J5_nyYTyJ;AC3^?i zLsW>;o+9%7BjSQ(`N*YTJn7-B2qrnvR67urd8L#I}9MOXc zso!|+*nVGg#=o-jl5@n;8A>d5LocHk%Sh8Law9{fW2ELAr3hZm&f;ZwdNMEiGM429 z!O0XC_psJcparL;9C@#N_kJ3Yt_-fg<4*uNK*qnKwxGemvcl3n+mr*+$O zqw1#HSVD3;yb5{xw`{_G#$3Ke`jgbjEF3*GW=7;owc}5;aJEh^^PPhRx>t#TcV)7Y z&w2mWY~Zu__+bGzW%<@ugi4I8X!-QsC$(24ZLF;@YwB*Ytw)==>m{tbe>`l~zk?F{ zfbm9c8@BHN?O>H|4!BNb>g#?IR<0Bw9H6iW#|Ch8n;vflza>VSg`Tr4y9<`A#l@d& zKFsdvCb5*L~G7T4d#fpyV#A>@T6@Bp;X?uJvuv{dcj$0II=qZ z$N^DMQ z3;vpK`*x|5i5gJs+EcMZzUb90eKu75|qV z$z^ZWcWx%Dk7*ogmZ^vtgRKFx} zY5Cbhg3PhwHtwFQG%VLtMBA8Ac%OTNs>RxMMmlH@e1+?@zusSnN| zGTXkVxA?z^PzjJJ06Um_KZNuQ-qczTzIr2tvm&FRqKoIeX9&R={xq68*&?oiQ_hUq z(3e+gC%Xnin!K;%0+XS*+Co! zv>jIISkVgJ?`;I4CzBm-;LlB2b4%7(Dc@KMZjrZ>nRA#at@16!)a?$WOVo1ro*_z! z$auh1$f{Sf=Y`oS4Qf@ca=AIJ1}*r^6Ympahvl*3-e04v^WD^aa`$-r4z$nnrv)zh zJbnaA4WX&>wpm%jre$JXV6fMRzTe{Wupta;J|w#qYO>1_)>z^Plv3@+hNxlaL7b<) z;4|Z;7?zUJZr>iAvX4kyNQ9cW2Nj3vU0y)OsNFhqe#qjo>V9;Q+Il)+ZS|4tqLtY2 zPhm`hKGoc!iaO^)MAyUn0V$er^2_>T9VzTwiDi3L#D` z6zj1}yPw}BXxxddx@&AQ8%D<{4B<|{U5aNVL^XMomtlCfa}MciaaYz_WL9LQ+MwM_|@K9lD_EG1qx(8 ztk*s#UYh>QlWLqpTW^l@v_FC;oZ-CI=2{pLRoNCHQ^M>5!puKisvU4Xx*~9$i<0Nj zlmx2#hdCq}4G%$ZH?$~1UF}biFS)0&E4K$6`iJ1{&CRle4~KlPpmM(zy2Pt?cH>gg z;s&Q6a5gm9c4Y()%B~HM6Fqz+fxiP-7vYS>v{Ek>VFWT3nlNpDImV>k$y`Ms93rN@ zAp1vr38;I3ka}E$PFVAUeLkFNu<()sweOAbs#;B4k;8Szr+ceE0rxq`eFF{4umh+; zn2+t?^>xLroTGCy_%@4Zc*+T56`=K>J&8xC0t`T`sasmj&JuScggq1Bbh6Bl;+EWb zdOU(on>#-Ip{e9%wk+qT-Ur}LE1pkjlpJWq>ephCqvqif+PauubSkn%-OtCIcSm?| zx{EP%nEBnwI~^$s)@Z7SUlFyADZ|ULn~7&=`M+8Dp+S?5XuOwSuWH8I>F%Hyvt}>? zxy42HmTIzQTE%W9-;fnz*p@-Mzl})d^|j@PWLkCxO5Pst>&S@GCTPg-#92da+hSRMU> zU5VHt;Y;k4orZm44H~O0rj_cd?YWvvAC|+qi?#7;?8Qjly8&+J;_XQ3!5YwO2F#S` zn<&uV;)$Nh?Wr%HX~Ih-^ciHS=h$G|f+vvF`}l^aS(K^d;%~lKEg24+rS$Wo7@3S? zt9Re3T8thy%2ab3@Mg^MvC>91HxteCsVlsa#+_wfux0bc1P3w8MOn)@wP6orK|>X; zp2UXa$hPZLw$aQcYpb7>!LaP{XZ-t9Il}8SN!47br;F5Sb%AlV<20-Xaa*rioaPnSlCAyP(1@-*<>MT# zufIQ0Mi0uWZF3osLmRgpzMg1mLCE!OO!sMXV`yMi`oW?aJ)=#qeeyJv)IH_cRlbgh zcs}DHL~Hu)7R4ST@k$ZuCae*1?hk_Lr%LJx-*qxiNoMdz*?8yhl$(Kauuh>;3jH6~ z4w3E{|708k=xJfl8exmiaPM8$J9Q3NozolYN3&YxUgnKkip9{a6|@VmVKcqNp|sZ_ z_qO2zaDn*gU>y9>yGw?(6sCpQh?)S0P%^Q}oZ~zcH+1S|G_G$h6S$9bx0z&jQ#t@F zRF`$B@D1l(9)^m4maIM>ARie;C`oXVIIW4sX;Yz{pt?^ z=drsXO6?zP&eFDyf|!mQp9i$pnOe*{@g$!Ho=^}SSgbd)*Mb;S@lR6U)q8xJ3F+C} zLrlE8dxLOa9hz;B$1Mo0BqfGvXnl5^0oW zef-Q(sf3P&nZ#dxS&kETA#K#XtnV2jE?9X7RZey$9ak4&W!$Y#KB7bx+$OR3Ii&do z-j#~K_prs6Yx=H##FLOY5(n>GL+z;gpDhDWjH(kanTHL!SfjAlptntf_E5U%pu6wv zlT+~~Pew+3O{AJ4nc-!k-CyVy!FhPt>>1gEmlmsi>-zum@(^@;nzl0mtva=Tp5i%naj3t~{5~j~kwZP2kSy;oGGCjKeI2C~1 zoBf9RivzV%b?H7%*~=~}WRM5z1Shw85`x>eh+kRN0)s*4wbqoU zpQxF_PWG^82TdHigu#P)tgp2|8?=y{@uF+wKu`;IyjwOyO^Jl08gO1btj}^ zqd9SJZH*_kSQ!q6pg{?y<=rM|81(WB?_}`H+f^hC`2}qFG=EL1eo!R*j*$pu*+bP% z`A#!^pIBud+ZOMY-^66tsO7TYp7zJ`0)y>Ac}|1rW3@1YrdfCXe?AUT8ZZ3lMS&a9 z(sf`cb9wxwLZ$ky^NQW0LnVND_FY7e*{37qe8Bc-<)TGBrlX1KY@^=V zh4^t4dt@+4sZAayrEQWhdd05b#Ll+RA?(=?348KxloNsT)y^WwD>#)>XXv$AoGs`tIesVNYn^(&)Sm4V%;DX>q zqppililS1$tyFhO-Ln+?t~Wl<4TQ&5&f z%=U&!YIkSf3UkkU`?Q7Z*u7N}i92`6?iI-DxM?~|Ck_6G-^#m>mnnGg8)L{C)D~(A zi=Mt4CnL~nF*}S`22U-)dE%+T7^tdmP)n~s0U`$-j8sIb7vuY#Y;D=EVsmMm2*3GA zb^iOrvekaGpQ#nN4T8y^a9ui=%;BKqSbI0vNOY0AFdgPv{BUhs=~2p1&CNuF3v9Bz zCKS3(WkzqIvgdFD3_T5V6g9m;-3q zhWC=13t2AE^qm4AN_=;dNbGp3HR#Rt3HN4bYmd2Iw_daM-21)Xs1NJ^)8v&O)o$RA zvr%hw6)OyB4oX48mk+B~D$rsi{zb2vAF4)7by6{>lV`+ zf>tw6jwuBR(}jkinZg=_fpPtja!-LRX9Kk`bLln53^_ zpG5-bMXQxA0fPdBp#>3!8AdS(`HCeDf4YuRpc%rhK#<<{vgwu;GyNa{=S`)Ch6J+* z$!T9px8c`AeIGUIqv3)dgcbrEN3+a*#kreI+D&SOT%R5zJ#&=XUc5dl`LX{QT;u&{ z`{-SDOiAp^dQI7R@r@M$CQ6MMU0fNux>`3;G<&*r4A3cML+NVZ8niS_khjxb6b`I< zg123GvnN?KC~r@_a*YVj?@8ye_ z6?)&Y>5=3aSz(Jf-d0@CBm|T{TjL@&Sf#N30MZ-jyr1ZAtK3O)o=H#CHj=>oMgeBJ zZ(Uhqm9^`$v*|V5pW0En8}#I%r*=pNLiUyfA4&|( zEk9D`T(fPVvtXW_{j0_!8*Pa!l&~T_HTOZx2Kd59i=Oj$99M6waBCEXJ zk^P}b?q148D8F?BR<=hZz8iWEIm~&2xeJ89+f^|2S^81FUKkEpKqQb&UXf0ZINfb~;`^E8e;V%7<={2vB?``hZ)d%XTQE` z)T7_8FZdFbR!5k)jSA7__oRsy?BL!-gnGi2{roMIhZ5U4IPWB?;8VEEulW3{A`)iq z;`&r58*9@2{hdOj^X0KZIW_^Qu8R`)ksTAUb@34yR~IXmyvZ!#vJ5>G-1va+#jNTX z3y4&ph7tCDXJJrMQa>VdH{kEZAg4jMfSwl{xP=7dY*E-9gX)2Rh)1-=C3!n|i=gwK zH`Uyw_HHQs^gs!V6%y&RWovCue;}Y1(SQg;t>{wXY>CTL z!XOqdmc@}2nJz`dq5t2Im%4F=26|($P=Ho;>z9L2VH;D|yu5{cufhv{B$orgOP8LU z{V3;`FGzoG&)f38J`X;DtxL>Ddh@2H2QFtt9b9x%5*jOi>2SQa%7 zYZW&+Y>N&65zCsdG=*$S5DJE?sqk+s6~=^9o(pmKxzMvw%K6cFxMUx1m9jh!b(>0w zuJb4>ujX`i%Mba!WmTa(q@>Ffqz)}x(|FVL5-zfVuxmGV^GFM@d-rqSdi>8oQ3k9S zBS=bV3TpcyE}PIXBOmf@A*_;=fDz|9$OHTmg}R3Eyf5(Uq&`gtOt=;53)#Sx#t$l| zX%cv^RR7dMmHCrOZI4ffkDRIsybqA8Qt8Ey-(N^Av&ol8FrQx7nP2ItZl-UNg%YH_ z87uk#@Qq2ND1-6;)bbl{vQ5iSL3vWXBs|(RDQf(*jlH5{@7_VG3_1Jd$C{NfTO{Si zH#z7DPX`yDU`oPgK52LWXc=K?UC+OWi%$5wtmUD%;*X**4rJH;eHE~lD&IAU%h663 zzOA#GlD3)a0U-KbbF1=FxVsG?b29k|<`^rXuJ=sW!uW|++j<9(7c@v9$;d3;1lM|2p z$UxiE&UFjo3?(*GNtb(phNGhsYJ-*rIG5WJe!Q(?2J_mEG7fA!wER1Sywig7MO%W~ zR4=I2RF6q4VucsxCP#CJuPgDaZWmGIuN2RKai?M>o4)3=fyLNxEYM9b*fDBio<*lK z#UuH#9^l(JkK>X6CyWpq()=OosW3WqyA^kwNqSkjN|_!VZ4zTl2P-=z7o(fsL9Lqc zzGgA;)~mjhIHsl|cHPeER4Q+Cb0g}ihHGP&#QBp$uk zS&TyTt`HAb=W%JcT;QO07!1esGevH#DPFT@T(NSOk$!_dzNg6?=@Y$!w9ZUwY9Qe! zcIKdjPQW2DKM`W z`#zSGZ2MiX?`eNWM|?|yF7Fc*lpFAqUx1VZkOb@Mc933B(treVvO`~cLtdi)yhG#6tk>`umx{s*?ru`cP(pj z0GZo3M9ZXsd)I7QF{!^m8F59_1kFZq<>3(S|EL!JgIIJ)4D*)ZmFs*F3_1-5%OVoE z8T82G*ZhN6Jx`r+mtQ`$o{o24kfQEq80Mf?wYCr6OgPM(Zg@{Xi2g9iPl^4ogV})h zLx9Ts$TwC@_i@B>>~4%N&#}g}XSL+LR}03mye%`gBFnpRsK+Zu2`|!3R1mN3Uvkf& zpLQQ<_p$rX@~Qk$G!!pBM_lu9?|qy1`5Tr zDisrGk@)`5c@(ipvbH~2qX-raYL<)#Jxl*)`uG0Nabx2GtrxlJNj(QlrxzK@N}q+= zCky{-(tM8A&8xc=W$R=19IpKN#;iS@5%qzCr1s`o(=c^*BXrhIZxMIHS*!guXDcdN zo@I=_Z*6Rq1w|?Mf*h}c9#*rO=3?fB&LjL*r6-YcWi6D&`Ij`W5^*}s##fK}K|`W& zshVkXwEJW$QEg44g?vBEB~@oH@7mb{Cfl~}#)SWU7NZS%A4GGJrcCumIXh5osbk2Q zALdP1QX2#K$gI--zHH@Z37?)fpuRa%T;uXct$0l}SdiJSTcY^WOm6wExh-!pJg}Ms zD_TVr>@(DbJM*j&3k`(!Wz?&O!2Q5s*c+d96`N?>FEFClTpZwMSu`QLQX%!ncktm! z$r;EjHzkT~$e(v?lM+=NEUr&uz`^xtTrxY>4O;m`I90g}?Vt_Am>fIsx^8XI8d&uE z-TRW#v{#zu$xg;M7PM=V2RR$qAcg!0LpZ03D#WteW*fK9RP~h9?!P_XHL%l`xdpf7 zH%&suBRengqAQB>_G7xb?aV)n=ea4{s6AoMI*ig)aKZzAvU*IKTyT9eot9Daeoua% zY$5a+J&0QTmPe6I|JjI;wt+>Na87L2!uaf^ZDik2MKR(}tuS4;^jF1WJF-O7QK6pp z(L;~MiPWdIx^=yIiYlN_ZBU&~1l&Qkr2~v@LatT9Ue7_@4eaHvlA|f4Z||YAc93n{rbk2Gy>{cd+DTfd6CdlAWK)x7DdtdD117?P(naZipUer{cO6 ztMFmM@Zf77`%+uD`SBD8(>l>pvR=%6pB~ZTfy-|Wyva2QhHV9I+0Zs6^i>W&>cMcdY1=kv!KAhrqcO@ z0+&PWX$_WU=w=ChWuj)aj@&~5Q!iKjlC>Pabx0duY3lI``qpeY%&MprWmjVeOvd)N zB&!X(gWt%}_3L`N=iOv*tD#e542?0!74Rr|VW>2f$7@mZYFu0j-JnKL`PP=1lCv2o zyLhVZrsY2`zK4GKyBS30`0K(AvJNpQMZ*}zd|lfjN*QYS`36LH?BlyOsJZ6P+ewDu?Na* z0y94r=Td(Ky?<$EG?%O2*&KV`;s%^o8E7 zce_laJ@I(PcKCH~o`tKP181s6{kPR!Q==S4CEpy)teNxgku$vaj{P+Pp9<&{w`n8k zp8Xec_0PEAKWbEd02*|#;aidyO98$GFAkzQ6wh_ma)w}^aE9kfH=B

- \ No newline at end of file + diff --git a/doc/chm/ru/VeraCrypt.ru.hhp b/doc/chm/ru/VeraCrypt.ru.hhp index ccc77d9a..9b95f23f 100644 --- a/doc/chm/ru/VeraCrypt.ru.hhp +++ b/doc/chm/ru/VeraCrypt.ru.hhp @@ -14,6 +14,7 @@ Title= Acknowledgements.html Additional Security Requirements and Precautions.html AES.html +Argon2id.html arrow_right.gif Authenticity and Integrity.html Authors.html @@ -46,6 +47,7 @@ Beginner's Tutorial_Image_023.png Beginner's Tutorial_Image_024.png Beginner's Tutorial_Image_034.png BLAKE2s-256.html +BLAKE2b-512.html Camellia.html Cascades.html Changing Passwords and Keyfiles.html @@ -90,6 +92,7 @@ Incompatibilities.html Introduction.html Issues and Limitations.html Journaling File Systems.html +Key Derivation Algorithms.html Keyfiles in VeraCrypt.html Keyfiles in VeraCrypt_Image_040.png Keyfiles.html @@ -111,6 +114,7 @@ Notation.html Paging File.html Parallelization.html paypal_30x30.png +pbkdf2.html Personal Iterations Multiplier (PIM).html Personal Iterations Multiplier (PIM)_VeraCrypt_ChangePIM_Step1.png Personal Iterations Multiplier (PIM)_VeraCrypt_ChangePIM_Step2.png diff --git a/doc/chm/zh-cn/VeraCrypt.zh-cn.hhc b/doc/chm/zh-cn/VeraCrypt.zh-cn.hhc index 9a369514..4d4299f8 100644 --- a/doc/chm/zh-cn/VeraCrypt.zh-cn.hhc +++ b/doc/chm/zh-cn/VeraCrypt.zh-cn.hhc @@ -190,6 +190,10 @@ +
  • + + +
  • @@ -207,6 +211,20 @@ +
  • + + + +
      +
    • + + + +
    • + + + +
  • @@ -446,4 +464,4 @@ - \ No newline at end of file + diff --git a/doc/chm/zh-cn/VeraCrypt.zh-cn.hhp b/doc/chm/zh-cn/VeraCrypt.zh-cn.hhp index d55f356d..e695083f 100644 --- a/doc/chm/zh-cn/VeraCrypt.zh-cn.hhp +++ b/doc/chm/zh-cn/VeraCrypt.zh-cn.hhp @@ -15,6 +15,7 @@ Title=VeraCrypt Acknowledgements.html Additional Security Requirements and Precautions.html AES.html +Argon2id.html arrow_right.gif Authenticity and Integrity.html Authors.html @@ -47,6 +48,7 @@ Beginner's Tutorial_Image_023.gif Beginner's Tutorial_Image_024.gif Beginner's Tutorial_Image_034.png BLAKE2s-256.html +BLAKE2b-512.html Camellia.html Cascades.html Changing Passwords and Keyfiles.html @@ -91,6 +93,7 @@ Incompatibilities.html Introduction.html Issues and Limitations.html Journaling File Systems.html +Key Derivation Algorithms.html Keyfiles in VeraCrypt.html Keyfiles in VeraCrypt_Image_040.gif Keyfiles.html @@ -112,6 +115,7 @@ Notation.html Paging File.html Parallelization.html paypal_30x30.png +pbkdf2.html Personal Iterations Multiplier (PIM).html Personal Iterations Multiplier (PIM)_VeraCrypt_ChangePIM_Step1.png Personal Iterations Multiplier (PIM)_VeraCrypt_ChangePIM_Step2.png diff --git a/doc/html/en/Argon2id.html b/doc/html/en/Argon2id.html index 6200327e..b4a99d7f 100644 --- a/doc/html/en/Argon2id.html +++ b/doc/html/en/Argon2id.html @@ -36,7 +36,7 @@

    Argon2id

    -Argon2id is a memory-hard key derivation function designed to resist both time-memory trade-off attacks and side-channel attacks. It was selected as the winner of the Password Hashing Competition (PHC) in 2015 and is defined in RFC 9106. VeraCrypt supports Argon2id as an alternative to PBKDF2-HMAC for header key derivation. +Argon2id is a memory-hard key derivation function designed to resist both time-memory trade-off attacks and side-channel attacks. It was selected as the winner of the Password Hashing Competition (PHC) in 2015 and is defined in RFC 9106. VeraCrypt supports Argon2id as an alternative to PBKDF2-HMAC for non-system volume header key derivation.

    Key Features

    @@ -48,7 +48,7 @@ Argon2id is a memory-hard key derivation function designed to resist both time-m Side-channel resistant: Combines data-dependent and data-independent memory access patterns
  • -Internal hash function: Uses BLAKE2b internally, eliminating the need for separate hash algorithm selection +Internal hash function: Uses BLAKE2b-512 internally, eliminating the need for separate hash algorithm selection
  • Tunable parameters: Allows adjustment of memory cost, time cost, and parallelism @@ -159,7 +159,7 @@ When using Argon2id in VeraCrypt:

    Technical Specifications

    Algorithm: Argon2id as defined in RFC 9106
    -Internal hash: BLAKE2b
    +Internal hash: BLAKE2b-512
    Salt size: 512 bits (same as PBKDF2-HMAC)
    Header KDF output length: Fixed at 1536 bits (192 bytes) for the current VeraCrypt format. The required prefix is used for the selected encryption algorithm (for example, the first 64 bytes for AES (AES-256-XTS)). Third-party implementations must request 192 bytes from Argon2id before selecting the required prefix; requesting only the selected algorithm's key material length produces a different Argon2id output.
    Version: Argon2 version 0x13 (19 decimal) diff --git a/doc/html/en/BLAKE2b-512.html b/doc/html/en/BLAKE2b-512.html new file mode 100644 index 00000000..86afa0ec --- /dev/null +++ b/doc/html/en/BLAKE2b-512.html @@ -0,0 +1,51 @@ + + + + +VeraCrypt - Free Open source disk encryption with strong security for the Paranoid + + + + + + +
    +VeraCrypt +
    + + + + + +
    +

    BLAKE2b-512

    +
    +

    +BLAKE2b is the 64-bit-word variant of BLAKE2 and the successor of BLAKE-512. BLAKE2b and BLAKE2s are specified in RFC 7693. +

    +

    +VeraCrypt uses BLAKE2b with its maximum output size of 64 bytes (512 bits) internally in Argon2id. For non-system volume header key derivation, BLAKE2b-512 is reached by selecting the Argon2 key derivation algorithm in VeraCrypt; this corresponds to Argon2id internally. In hash-oriented contexts such as random pool mixing and keyfile generation, the same underlying hash may be displayed as BLAKE2b-512. +

    +

    +BLAKE2b-512 is not offered as a separate PBKDF2-HMAC hash algorithm. To use BLAKE2b-512 in VeraCrypt non-system volume header key derivation, select Argon2id; no separate hash algorithm selection is available for Argon2id. +

    +
    + +
    diff --git a/doc/html/en/BLAKE2s-256.html b/doc/html/en/BLAKE2s-256.html index 2b938f26..16c62d1a 100644 --- a/doc/html/en/BLAKE2s-256.html +++ b/doc/html/en/BLAKE2s-256.html @@ -42,9 +42,9 @@ BLAKE2 removes addition of constants to message words from BLAKE round function, BLAKE2b and BLAKE2s are specified in RFC 7693.

    -VeraCrypt uses only BLAKE2s with its maximum output size of 32-bytes (256 bits). +VeraCrypt uses BLAKE2s with its maximum output size of 32 bytes (256 bits) as a PBKDF2-HMAC hash algorithm. For Argon2id, VeraCrypt uses BLAKE2b-512 internally.

    +Next Section >>
    diff --git a/doc/html/en/Command Line Usage for Windows.html b/doc/html/en/Command Line Usage for Windows.html index 9c1ea35b..7ef26f87 100644 --- a/doc/html/en/Command Line Usage for Windows.html +++ b/doc/html/en/Command Line Usage for Windows.html @@ -49,8 +49,8 @@ /hash -It must be followed by a parameter indicating the PRF hash algorithm to use when mounting the volume. Possible values for /hash parameter are: sha256, sha-256, sha512, sha-512, whirlpool, blake2s and blake2s-256. When /hash is omitted, VeraCrypt will try - all possible PRF algorithms thus lengthening the mount operation time. +It must be followed by a parameter indicating the PRF hash algorithm or KDF to use when mounting the volume. Possible values for /hash parameter are: sha256, sha-256, sha512, sha-512, whirlpool, blake2s, blake2s-256, streebog, and blake2b-512 (for Argon2id volumes). When /hash is omitted, VeraCrypt will try + all possible PRF/KDF algorithms thus lengthening the mount operation time. /volume or /v @@ -252,7 +252,7 @@ It must be followed by a parameter indicating the PIN to use in order to authent  /hash (Only with /create)
    -It must be followed by a parameter indicating the PRF hash algorithm to use when creating the volume. It has the same syntax as VeraCrypt.exe. +It must be followed by a parameter indicating the PRF hash algorithm or KDF to use when creating the volume. It has the same syntax as VeraCrypt.exe, and also accepts argon2 as an alias for Argon2id. /encryption @@ -324,9 +324,9 @@ If it is followed by n or no: the password dia

    Syntax

    -

    VeraCrypt.exe [/tc] [/hash {sha256|sha-256|sha512|sha-512|whirlpool |blake2s|blake2s-256}][/a [devices|favorites]] [/b] [/c [y|n|f]] [/d [drive letter]] [/e] [/f] [/h [y|n]] [/k keyfile or search path] [tryemptypass [y|n]] [/l drive letter] [/m {bk|rm|recovery|ro|sm|ts|noattach}] +

    VeraCrypt.exe [/tc] [/hash {sha256|sha-256|sha512|sha-512|whirlpool|blake2s|blake2s-256|streebog|blake2b-512}][/a [devices|favorites]] [/b] [/c [y|n|f]] [/d [drive letter]] [/e] [/f] [/h [y|n]] [/k keyfile or search path] [tryemptypass [y|n]] [/l drive letter] [/m {bk|rm|recovery|ro|sm|ts|noattach}] [/p password] [/pim pimvalue] [/q [background|preferences]] [/s] [/tokenlib path] [/v volume] [/w]

    -

    "VeraCrypt Format.exe" [/n] [/create] [/size number[{K|M|G|T}]] [/p password]  [/encryption {AES | Serpent | Twofish | Camellia | Kuznyechik | AES(Twofish) | AES(Twofish(Serpent)) | Serpent(AES) | Serpent(Twofish(AES)) | Twofish(Serpent) | Camellia(Kuznyechik) | Kuznyechik(Twofish) | Camellia(Serpent) | Kuznyechik(AES) | Kuznyechik(Serpent(Camellia)))}] [/hash {sha256|sha-256|sha512|sha-512|whirlpool|blake2s|blake2s-256}] +

    "VeraCrypt Format.exe" [/n] [/create] [/size number[{K|M|G|T}]] [/p password]  [/encryption {AES | Serpent | Twofish | Camellia | Kuznyechik | AES(Twofish) | AES(Twofish(Serpent)) | Serpent(AES) | Serpent(Twofish(AES)) | Twofish(Serpent) | Camellia(Kuznyechik) | Kuznyechik(Twofish) | Camellia(Serpent) | Kuznyechik(AES) | Kuznyechik(Serpent(Camellia)))}] [/hash {sha256|sha-256|sha512|sha-512|whirlpool|blake2s|blake2s-256|streebog|blake2b-512|argon2}] [/filesystem {None|FAT|NTFS|ExFAT|ReFS}] [/dynamic] [/force] [/silent] [/noisocheck] [FastCreateFile] [/quick]

    Note that the order in which options are specified does not matter.

    Examples

    diff --git a/doc/html/en/Documentation.html b/doc/html/en/Documentation.html index f0f4c178..e2e6afbf 100644 --- a/doc/html/en/Documentation.html +++ b/doc/html/en/Documentation.html @@ -82,6 +82,7 @@
  • Hash Algorithms
  • Key Derivation Algorithms diff --git a/doc/html/en/Encryption Scheme.html b/doc/html/en/Encryption Scheme.html index 0c34062f..e34a518c 100644 --- a/doc/html/en/Encryption Scheme.html +++ b/doc/html/en/Encryption Scheme.html @@ -56,9 +56,9 @@ Hidden Operating System). If there is a hidden volume within this volume (or Header Key Derivation, Salt, and Iteration Count), which can be one of the following: HMAC-SHA-512, HMAC-SHA-256, HMAC-BLAKE2S-256, HMAC-Whirlpool, HMAC-Streebog.
  • -
  • Argon2id: Memory-hard key derivation function with internal BLAKE2b hash function.
  • +
  • Argon2id: Memory-hard key derivation function for non-system volumes, with internal BLAKE2b-512 hash function.
  • -

    If a PRF is explicitly specified by the user, it will be used directly without trying the other possibilities.

    +

    If a header key derivation algorithm (or, for PBKDF2-HMAC, a PRF hash) is explicitly specified by the user, it will be used directly without trying the other possibilities.

    A password entered by the user (to which one or more keyfiles may have been applied – see the section Keyfiles), a PIM value (if specified) and the salt read in (1) are passed to the header key derivation function, which produces a sequence of values (see the section diff --git a/doc/html/en/Hash Algorithms.html b/doc/html/en/Hash Algorithms.html index 00accb67..3f866abb 100644 --- a/doc/html/en/Hash Algorithms.html +++ b/doc/html/en/Hash Algorithms.html @@ -34,13 +34,14 @@

    Hash Algorithms

    -In the Volume Creation Wizard, in the password change dialog window, and in the Keyfile Generator dialog window, you can select a hash algorithm when using PBKDF2-HMAC as the key derivation function. When Argon2id is selected as the key derivation function, no hash algorithm selection is available as Argon2id uses its own internal BLAKE2b hash function. +In the Volume Creation Wizard and in the password change dialog window, you can select a hash algorithm when using PBKDF2-HMAC as the key derivation function. In the Keyfile Generator dialog window, the selected hash algorithm is used by the VeraCrypt Random Number Generator as its pool mixing function. When Argon2id is selected as the key derivation function, no separate hash algorithm selection is available for header key derivation because Argon2id uses its own internal BLAKE2b-512 hash function.
    For PBKDF2-HMAC, the user-selected hash algorithm is used by the VeraCrypt Random Number Generator as a pseudorandom "mixing" function, and by the header key derivation function (HMAC based on a hash function, as specified in PKCS #5 v2.0) as a pseudorandom function. When creating a new volume, the Random Number Generator generates the master key, secondary key (XTS mode), and salt. For more information, please see the section Random Number Generator and section Header Key Derivation, Salt, and Iteration Count.
    +
    VeraCrypt currently supports the following hash algorithms for PBKDF2-HMAC:
    • @@ -54,5 +55,11 @@ VeraCrypt currently supports the following hash algorithms for PBKDF2-HMAC:
  • Streebog
  • +
    +VeraCrypt also associates the following hash with Argon2id:
    +
      +
    • +BLAKE2b-512 (associated with Argon2id; not selectable for PBKDF2-HMAC) +

    Next Section >>

    diff --git a/doc/html/en/Header Key Derivation.html b/doc/html/en/Header Key Derivation.html index 926f8829..7b14e285 100644 --- a/doc/html/en/Header Key Derivation.html +++ b/doc/html/en/Header Key Derivation.html @@ -44,7 +44,7 @@ Encryption Scheme and system encryption), the area is encrypted in XTS mode (see the section -Modes of Operation). VeraCrypt supports two key derivation functions for generating header keys: PBKDF2 (specified in PKCS #5 v2.0) and Argon2id. +Modes of Operation). For system encryption, VeraCrypt uses PBKDF2-HMAC. For non-system volumes and file containers, VeraCrypt supports two key derivation functions for generating header keys: PBKDF2 (specified in PKCS #5 v2.0) and Argon2id.

    PBKDF2-HMAC Key Derivation

    @@ -55,7 +55,7 @@ The PBKDF2 method uses HMAC-based pseudorandom functions with the following hash

    Argon2id Key Derivation

    -Argon2id is a memory-hard key derivation function that provides resistance against both time-memory trade-off attacks and side-channel attacks. Unlike PBKDF2-HMAC, Argon2id does not use a separate hash algorithm selection – it uses its own internal hash function (BLAKE2b). Argon2id requires three parameters: memory cost (amount of memory used), time cost (number of iterations), and parallelism (number of threads). VeraCrypt sets the parallelism parameter to 1 for all cases.
    +Argon2id is a memory-hard key derivation function that provides resistance against both time-memory trade-off attacks and side-channel attacks. Unlike PBKDF2-HMAC, Argon2id does not use a separate hash algorithm selection – it uses its own internal hash function (BLAKE2b-512). Argon2id requires three parameters: memory cost (amount of memory used), time cost (number of iterations), and parallelism (number of threads). VeraCrypt sets the parallelism parameter to 1 for all cases.
    512-bit salt is used for both key derivation functions, which means there are 2512 keys for each password. This significantly decreases vulnerability to 'off-line' dictionary/'rainbow table' attacks (pre-computing all the keys for a dictionary @@ -74,7 +74,7 @@ PIM value is not specified or if it is equal to zero, VeraCrypt uses the def
    • For system partition encryption (boot encryption) that uses SHA-256, BLAKE2s-256 or Streebog, 200000 iterations are used.
    • For system encryption that uses SHA-512 or Whirlpool, 500000 iterations are used.
    • -
    • For non-system encryption and file containers, all derivation algorithms will use 500000 iterations. +
    • For non-system encryption and file containers, all PBKDF2-HMAC variants will use 500000 iterations.

    When a diff --git a/doc/html/en/Key Derivation Algorithms.html b/doc/html/en/Key Derivation Algorithms.html index 3fefc408..ada1810b 100644 --- a/doc/html/en/Key Derivation Algorithms.html +++ b/doc/html/en/Key Derivation Algorithms.html @@ -38,7 +38,7 @@ A key derivation function (KDF) transforms your password (and optional keyfiles)

    Available Algorithms in VeraCrypt

    • -Argon2id: A modern, memory-hard KDF (based on BLAKE2b internally). Recommended for new volumes. No separate hash selection is required. +Argon2id: A modern, memory-hard KDF (based on BLAKE2b-512 internally). Recommended for new non-system volumes. No separate hash selection is required.
    • PBKDF2-HMAC: A widely deployed KDF that uses HMAC with a selectable hash function. Supported HMAC hashes in VeraCrypt: diff --git a/doc/html/en/Personal Iterations Multiplier (PIM).html b/doc/html/en/Personal Iterations Multiplier (PIM).html index aebd0fea..721d0b5b 100644 --- a/doc/html/en/Personal Iterations Multiplier (PIM).html +++ b/doc/html/en/Personal Iterations Multiplier (PIM).html @@ -93,7 +93,7 @@ When creating a volume or when changing the password, the user has the possibili
       
      The PIM is treated like a secret value that must be entered by the user each time alongside the password. If the incorrect PIM value is specified, the mount/boot operation will fail.
       
      -
      Using high PIM values leads to better security thanks to the increased number of iterations but it comes with slower mounting/booting times.
      +
      Using high PIM values leads to better security thanks to increased KDF cost parameters but it comes with slower mounting/booting times.
      With small PIM values, mounting/booting is quicker but this could decrease security if a weak password is used.
       
      During the creation of a volume or the encryption of the system, VeraCrypt forces the PIM value to be greater than or equal to a certain minimal value when the password is less than 20 characters. This check is done in order to ensure that, for short passwords, diff --git a/doc/html/en/Random Number Generator.html b/doc/html/en/Random Number Generator.html index 4920b810..a9d9e356 100644 --- a/doc/html/en/Random Number Generator.html +++ b/doc/html/en/Random Number Generator.html @@ -50,11 +50,11 @@ written to the pool, this function is applied to the entire pool.

      Description of the pool mixing function:

        -
      1. Let R be the randomness pool.
      2. Let H be the hash function selected by the user (SHA-512, BLAKE2S-256, or Whirlpool). +
      3. Let R be the randomness pool.
      4. Let H be the current RNG pool-mixing hash function. In standalone random-pool and keyfile-generation contexts, this is the hash selected by the user. During volume operations, VeraCrypt derives it from the selected header key derivation algorithm: for PBKDF2-HMAC, it is the selected hash (SHA-512, SHA-256, BLAKE2s-256, Whirlpool, or Streebog); for Argon2id, it is BLAKE2b-512.
      5. l = byte size of the output of the hash function H (i.e., if -H is BLAKE2S-256, then l = 20; if H is SHA-512, l = 64) +H is BLAKE2s-256 or SHA-256, then l = 32; if H is SHA-512, Whirlpool, Streebog, or BLAKE2b-512, l = 64)
      6. z = byte size of the randomness pool R (320 bytes)
      7. q = z / l – 1 (e.g., if H is Whirlpool, then -q = 4)
      8. Ris divided intol-byte blocksB0...Bq. +q = 4)
      9. R is divided into l-byte blocks B0...Bq.

        For 0 ≤ i ≤ q (i.e., for each block B) the following steps are performed:

        1. M = H (B0 || B1 || ... || Bq) [i.e., the randomness pool is hashed using the hash function H, which produces a hash M] @@ -73,7 +73,7 @@ is greater than the size of the pool, no value is generated and an error is returned).
        2. The state of each bit in the pool is inverted (i.e., 0 is changed to 1, and 1 is changed to 0).
        3. Data obtained from some of the sources listed above is added to the pool as described above. -
        4. The content of the pool is transformed using the pool mixing function. Note: The function uses a cryptographically secure one-way hash function selected by the user (for more information, see the section +
        5. The content of the pool is transformed using the pool mixing function. Note: The function uses the cryptographically secure one-way hash function associated with the selected KDF/hash option (for more information, see the section Pool Mixing Function above).
        6. The transformed content of the pool is XORed into the output buffer as follows:
          1. The output buffer write cursor is set to 0 (the first byte of the buffer).
          2. The byte at the position of the pool cursor is read from the pool and XORed into the byte in the output buffer at the position of the output buffer write cursor. diff --git a/doc/html/en/pbkdf2.html b/doc/html/en/pbkdf2.html index 419b7b28..da17d922 100644 --- a/doc/html/en/pbkdf2.html +++ b/doc/html/en/pbkdf2.html @@ -60,7 +60,7 @@ The number of PBKDF2 iterations depends on the selected HMAC hash, the context (

            Output Length

            -The derived key length depends on the selected encryption algorithm(s) (e.g., 256 bits for AES-256, 768 bits for AES-Twofish-Serpent cascades). +The amount of derived header key material consumed depends on the selected encryption algorithm(s). For current XTS volumes, VeraCrypt uses both primary and secondary header keys; for example, AES-256-XTS uses 512 bits in total (two 256-bit keys), and an AES-Twofish-Serpent-XTS cascade uses 1536 bits in total (six 256-bit keys).

            Advantages and Considerations

            diff --git a/doc/html/ru/Argon2id.html b/doc/html/ru/Argon2id.html new file mode 100644 index 00000000..9f93d309 --- /dev/null +++ b/doc/html/ru/Argon2id.html @@ -0,0 +1,174 @@ + + + + +VeraCrypt - Бесплатное надёжное шифрование дисков с открытым исходным кодом + + + + + + +
            +VeraCrypt +
            + + + + + +
            +

            Argon2id

            +
            +Argon2id — это функция формирования ключа с повышенными требованиями к памяти, разработанная для противодействия как атакам с компромиссом время-память, так и атакам по сторонним каналам. В 2015 году она была выбрана победителем Password Hashing Competition (PHC) и определена в RFC 9106. VeraCrypt поддерживает Argon2id как альтернативу PBKDF2-HMAC для формирования ключа заголовка несистемных томов. +
            + +

            Основные свойства

            +
              +
            • +Повышенные требования к памяти: использует настраиваемый объём памяти, что повышает устойчивость к атакам с применением специализированного оборудования. +
            • +
            • +Устойчивость к атакам по сторонним каналам: сочетает шаблоны доступа к памяти, зависящие и не зависящие от данных. +
            • +
            • +Внутренняя хеш-функция: использует BLAKE2b-512 внутри алгоритма, поэтому отдельный выбор хеш-алгоритма не требуется. +
            • +
            • +Настраиваемые параметры: позволяет изменять затраты памяти, затраты времени и степень параллелизма. +
            • +
            + +

            Варианты Argon2

            +
            +У Argon2 есть три варианта: +
            +
              +
            • +Argon2d: использует доступ к памяти, зависящий от данных; устойчив к атакам с компромиссом время-память, но уязвимее к атакам по сторонним каналам. +
            • +
            • +Argon2i: использует доступ к памяти, не зависящий от данных; устойчив к атакам по сторонним каналам, но менее устойчив к атакам с компромиссом время-память. +
            • +
            • +Argon2id: гибридный вариант, объединяющий оба подхода и обеспечивающий устойчивость к обоим типам атак (используется в VeraCrypt). +
            • +
            + +

            Параметры в VeraCrypt

            +
            +VeraCrypt использует Argon2id со следующей конфигурацией параметров: +
            + +

            Затраты памяти (m_cost)

            +
            +Объём памяти, используемый при формировании ключа, управляется значением PIM: +
            +
              +
            • +Формула: m_cost(pim) = min(64 MiB + (pim - 1) × 32 MiB, 1024 MiB) +
            • +
            • +Диапазон: от 64 MiB до 1024 MiB (ограничение достигается при PIM = 31) +
            • +
            • +По умолчанию: 416 MiB (эквивалентно PIM = 12) +
            • +
            + +

            Затраты времени (t_cost)

            +
            +Количество итераций, выполняемых при формировании ключа: +
            +
              +
            • +Для PIM ≤ 31: t_cost(pim) = 3 + floor((pim - 1) / 3) +
            • +
            • +Для PIM > 31: t_cost(pim) = 13 + (pim - 31) +
            • +
            • +По умолчанию: 6 итераций (эквивалентно PIM = 12) +
            • +
            + +

            Параллелизм

            +
            +Количество параллельных потоков, используемых при вычислении: +
            +
              +
            • +Значение: в VeraCrypt всегда фиксировано на уровне 1 потока. +
            • +
            • +Причина: обеспечивает одинаковое поведение на разных аппаратных конфигурациях. +
            • +
            + +

            Преимущества перед PBKDF2

            +
              +
            • +Требовательность к памяти: требует выделения значительного объёма памяти, что делает атаки с использованием GPU и ASIC дороже. +
            • +
            • +Современная конструкция: специально разработан с учётом современных методов атак. +
            • +
            • +Устойчивость к атакам по сторонним каналам: содержит встроенные меры защиты от атак по времени доступа к кэшу и других сторонних каналов. +
            • +
            • +Стандартизация: официально стандартизован в RFC 9106. +
            • +
            + +

            Рекомендации по использованию

            +
            +При использовании Argon2id в VeraCrypt: +
            +
              +
            • +Требования к памяти: убедитесь, что доступен достаточный объём ОЗУ, особенно при больших значениях PIM. +
            • +
            • +Производительность: более высокие затраты памяти могут увеличить время монтирования, но обеспечивают более высокий уровень защиты. +
            • +
            • +Совместимость: доступен в версиях VeraCrypt, поддерживающих несколько функций формирования ключа. +
            • +
            • +Без выбора хеш-алгоритма: в отличие от PBKDF2-HMAC, отдельный хеш-алгоритм выбирать не нужно. +
            • +
            + +

            Технические характеристики

            +
            +Алгоритм: Argon2id согласно RFC 9106
            +Внутренняя хеш-функция: BLAKE2b-512
            +Размер соли: 512 бит (как и у PBKDF2-HMAC)
            +Длина вывода KDF заголовка: фиксирована и составляет 1536 бит (192 байта) для текущего формата VeraCrypt. Для выбранного алгоритма шифрования используется требуемый префикс этого вывода (например, первые 64 байта для AES (AES-256-XTS)). Сторонние реализации должны запрашивать у Argon2id 192 байта до выбора требуемого префикса; запрос только длины ключевого материала выбранного алгоритма даёт другой вывод Argon2id.
            +Версия: Argon2 версии 0x13 (19 в десятичной системе) +
            + +
            +Дополнительные сведения о значениях PIM и их влиянии на параметры Argon2id см. в разделе + +Персональный множитель итераций (PIM). +
            + +
            diff --git a/doc/html/ru/BLAKE2b-512.html b/doc/html/ru/BLAKE2b-512.html new file mode 100644 index 00000000..8aeb285e --- /dev/null +++ b/doc/html/ru/BLAKE2b-512.html @@ -0,0 +1,51 @@ + + + + +VeraCrypt - Бесплатное надёжное шифрование дисков с открытым исходным кодом + + + + + + +
            +VeraCrypt +
            + + + + + +
            +

            BLAKE2b-512

            +
            +

            +BLAKE2b — это вариант BLAKE2 с 64-битовыми словами и преемник BLAKE-512. BLAKE2b и BLAKE2s указаны в документе RFC 7693. +

            +

            +VeraCrypt использует BLAKE2b с максимальным выходным размером 64 байта (512 бит) внутри Argon2id. Для формирования ключа заголовка несистемных томов BLAKE2b-512 применяется при выборе алгоритма формирования ключа Argon2 в VeraCrypt; внутри это соответствует Argon2id. В контекстах, связанных с хешированием, например при перемешивании пула случайных чисел и создании ключевых файлов, эта же базовая хеш-функция может отображаться как BLAKE2b-512. +

            +

            +BLAKE2b-512 не предлагается как отдельный алгоритм хеширования PBKDF2-HMAC. Чтобы использовать BLAKE2b-512 при формировании ключа заголовка несистемного тома VeraCrypt, выберите Argon2id; для Argon2id отдельный выбор алгоритма хеширования недоступен. +

            +
            + +
            diff --git a/doc/html/ru/BLAKE2s-256.html b/doc/html/ru/BLAKE2s-256.html index e5f41620..30dbcea9 100644 --- a/doc/html/ru/BLAKE2s-256.html +++ b/doc/html/ru/BLAKE2s-256.html @@ -50,9 +50,9 @@ BLAKE2 убирает добавление констант к словам со BLAKE2b и BLAKE2s указаны в документе RFC 7693.

            -VeraCrypt использует только BLAKE2s с максимальным выходным размером 32 байта (256 бит). +VeraCrypt использует BLAKE2s с максимальным выходным размером 32 байта (256 бит) как алгоритм хеширования PBKDF2-HMAC. Для Argon2id VeraCrypt внутренне использует BLAKE2b-512.

      +Следующий раздел >>
    diff --git a/doc/html/ru/Command Line Usage.html b/doc/html/ru/Command Line Usage.html index 0f47f20b..ac9fc5d0 100644 --- a/doc/html/ru/Command Line Usage.html +++ b/doc/html/ru/Command Line Usage.html @@ -48,8 +48,8 @@  /hash -После этого ключа указывается хеш-алгоритм PRF, используемый при монтировании тома. Возможные значения ключа /hash: sha256, sha-256, sha512, sha-512, whirlpool, blake2s и blake2s-256. Если ключ /hash не указан, VeraCrypt будет пробовать - все доступные PRF-алгоритмы, тем самым увеличивая время монтирования. +После этого ключа указывается хеш-алгоритм PRF или KDF, используемый при монтировании тома. Возможные значения ключа /hash: sha256, sha-256, sha512, sha-512, whirlpool, blake2s, blake2s-256, streebog и blake2b-512 (для томов Argon2id). Если ключ /hash не указан, VeraCrypt будет пробовать + все доступные PRF/KDF-алгоритмы, тем самым увеличивая время монтирования.  /volume или /v @@ -233,7 +233,7 @@  /hash (Только с ключом /create)
    -После этого ключа указывается хеш-алгоритм PRF, используемый при создании тома. Синтаксис такой же, как у VeraCrypt.exe. +После этого ключа указывается хеш-алгоритм PRF или KDF, используемый при создании тома. Синтаксис такой же, как у VeraCrypt.exe; также принимается argon2 как псевдоним Argon2id.  /encryption @@ -305,9 +305,9 @@

    Синтаксис

    -

    VeraCrypt.exe [/tc] [/hash {sha256|sha-256|sha512|sha-512|whirlpool |blake2s|blake2s-256}][/a [devices|favorites]] [/b] [/c [y|n|f]] [/d [буква диска]] [/e] [/f] [/h [y|n]] [/k ключевой файл или путь поиска] [tryemptypass [y|n]] [/l буква диска] [/m {bk|rm|recovery|ro|sm|ts|noattach}] +

    VeraCrypt.exe [/tc] [/hash {sha256|sha-256|sha512|sha-512|whirlpool|blake2s|blake2s-256|streebog|blake2b-512}][/a [devices|favorites]] [/b] [/c [y|n|f]] [/d [буква диска]] [/e] [/f] [/h [y|n]] [/k ключевой файл или путь поиска] [tryemptypass [y|n]] [/l буква диска] [/m {bk|rm|recovery|ro|sm|ts|noattach}] [/p пароль] [/pim значение pim] [/q [background|preferences]] [/s] [/tokenlib путь] [/v том] [/w]

    -

    "VeraCrypt Format.exe" [/n] [/create] [/size число[{K|M|G|T}]] [/p пароль]  [/encryption {AES | Serpent | Twofish | Camellia | Kuznyechik | AES(Twofish) | AES(Twofish(Serpent)) | Serpent(AES) | Serpent(Twofish(AES)) | Twofish(Serpent) | Camellia(Kuznyechik) | Kuznyechik(Twofish) | Camellia(Serpent) | Kuznyechik(AES) | Kuznyechik(Serpent(Camellia))}] [/hash {sha256|sha-256|sha512|sha-512|whirlpool|blake2s|blake2s-256}] +

    "VeraCrypt Format.exe" [/n] [/create] [/size число[{K|M|G|T}]] [/p пароль]  [/encryption {AES | Serpent | Twofish | Camellia | Kuznyechik | AES(Twofish) | AES(Twofish(Serpent)) | Serpent(AES) | Serpent(Twofish(AES)) | Twofish(Serpent) | Camellia(Kuznyechik) | Kuznyechik(Twofish) | Camellia(Serpent) | Kuznyechik(AES) | Kuznyechik(Serpent(Camellia))}] [/hash {sha256|sha-256|sha512|sha-512|whirlpool|blake2s|blake2s-256|streebog|blake2b-512|argon2}] [/filesystem {пусто|FAT|NTFS|ExFAT|ReFS}] [/dynamic] [/force] [/silent] [/noisocheck] [FastCreateFile] [/quick]

    Порядок, в котором указаны параметры, не имеет значения.

    Примеры

    diff --git a/doc/html/ru/Documentation.html b/doc/html/ru/Documentation.html index 57a2c6e6..76fc2df9 100644 --- a/doc/html/ru/Documentation.html +++ b/doc/html/ru/Documentation.html @@ -82,11 +82,17 @@
  • Алгоритмы хеширования +
  • Алгоритмы формирования ключа +
  • Поддерживаемые операционные системы
  • Использование в командной строке
  • Модель безопасности diff --git a/doc/html/ru/Encryption Scheme.html b/doc/html/ru/Encryption Scheme.html index 6914e34b..eef0f685 100644 --- a/doc/html/ru/Encryption Scheme.html +++ b/doc/html/ru/Encryption Scheme.html @@ -53,11 +53,15 @@ и сгенерированные в ходе дешифрования, хранятся в ОЗУ (VeraCrypt никогда не сохраняет их на диске). Указанные ниже параметры неизвестны и определяются методом проб и ошибок (то есть проверкой всех возможных комбинаций следующего):
      -
    1. PRF (псевдослучайная функция), применяемая при формировании (деривации) ключа заголовка (как определено в PKCS #5 v2.0; см. +
    2. Функция формирования ключа (KDF) и связанные параметры: +
        +
      • PBKDF2-HMAC: PRF (псевдослучайная функция), применяемая при формировании (деривации) ключа заголовка (как определено в PKCS #5 v2.0; см. Формирование ключа заголовка, соль и количество итераций), которая может быть одной из следующих: -

        HMAC-SHA-512, HMAC-SHA-256, HMAC-BLAKE2S-256, HMAC-Whirlpool.

        -

        Если PRF указана пользователем явно, используется непосредственно она, без опробования других функций.

        +HMAC-SHA-512, HMAC-SHA-256, HMAC-BLAKE2S-256, HMAC-Whirlpool, HMAC-Streebog.
      • +
      • Argon2id: функция формирования ключа с повышенными требованиями к памяти для несистемных томов, использующая внутреннюю хеш-функцию BLAKE2b-512.
      • +
      +

      Если алгоритм формирования ключа заголовка (или, для PBKDF2-HMAC, хеш PRF) явно указан пользователем, он используется напрямую без опробования других вариантов.

      Введённый пользователем пароль (который может сопровождаться одним или несколькими ключевыми файлами – см. раздел Ключевые файлы), значение PIM (если указано) и соль, считанные на этапе 1, передаются в функцию формирования diff --git a/doc/html/ru/Hash Algorithms.html b/doc/html/ru/Hash Algorithms.html index 3069ce4a..2009edba 100644 --- a/doc/html/ru/Hash Algorithms.html +++ b/doc/html/ru/Hash Algorithms.html @@ -34,17 +34,14 @@

      Алгоритмы хеширования

      -Выбор алгоритма хеширования предлагается в мастере создания томов, в диалоговом окне смены пароля, -а также в окне генератора ключевых файлов. Выбранный пользователем алгоритм хеширования применяется -во встроенном в VeraCrypt генераторе случайных чисел как функция псевдослучайного "смешивания", -а также в функции формирования ключа заголовка (HMAC – алгоритме усиления криптостойкости других -криптоалгоритмов на основе хеш-функции, как определено в PKCS #5 v2.0) как псевдослучайная функция. -При создании нового тома, генератором случайных чисел создаются мастер-ключ, вторичный ключ (режим XTS) -и соль. Более подробную информацию см. в разделах +В мастере создания томов и диалоговом окне смены пароля можно выбрать алгоритм хеширования при использовании PBKDF2-HMAC как функции формирования ключа. В окне генератора ключевых файлов выбранный алгоритм хеширования применяется генератором случайных чисел VeraCrypt как функция перемешивания пула. Если в качестве функции формирования ключа выбран Argon2id, отдельный выбор алгоритма хеширования для формирования ключа заголовка недоступен, поскольку Argon2id использует собственную внутреннюю хеш-функцию BLAKE2b-512. +
      +
      +Для PBKDF2-HMAC выбранный пользователем алгоритм хеширования применяется генератором случайных чисел VeraCrypt как псевдослучайная функция "смешивания", а также функцией формирования ключа заголовка (HMAC на основе хеш-функции, как определено в PKCS #5 v2.0) как псевдослучайная функция. При создании нового тома генератор случайных чисел создаёт мастер-ключ, вторичный ключ (режим XTS) и соль. Более подробную информацию см. в разделах Генератор случайных чисел и Формирование ключа заголовка, соль и количество итераций.
      -В настоящее время VeraCrypt поддерживает следующие алгоритмы хеширования:
      +В настоящее время VeraCrypt поддерживает следующие алгоритмы хеширования для PBKDF2-HMAC:
      +
      +VeraCrypt также связывает с Argon2id следующую хеш-функцию:
      +
        +
      • +BLAKE2b-512 (связана с Argon2id; недоступна для выбора в PBKDF2-HMAC) +

      Следующий раздел >>

      diff --git a/doc/html/ru/Header Key Derivation.html b/doc/html/ru/Header Key Derivation.html index 808eefdb..741153fb 100644 --- a/doc/html/ru/Header Key Derivation.html +++ b/doc/html/ru/Header Key Derivation.html @@ -45,44 +45,55 @@ VeraCrypt (в случае Спецификация формата томов VeraCrypt). В томах, созданных с помощью VeraCrypt (и для шифрования системы), эта область зашифрована в режиме XTS (см. раздел -Режимы работы). Для генерирования ключа заголовка и вторичного ключа заголовка (режим XTS) -VeraCrypt использует метод PBKDF2, определённый в PKCS #5 v2.0; см. +Режимы работы). Для шифрования системы VeraCrypt использует PBKDF2-HMAC. Для несистемных томов и файловых контейнеров VeraCrypt поддерживает две функции формирования ключей заголовка: PBKDF2, +определённую в PKCS #5 v2.0; см. -[7]. +[7], и Argon2id. + +

      Формирование ключа PBKDF2-HMAC

      -В программе применяется 512-битовая соль, что означает 2512 -ключей для каждого пароля. Благодаря этому значительно повышается устойчивость к атакам с офлайн-словарями/"радужной -таблицей" (соль крайне осложняет предвычисление всех ключей для словаря паролей) [7]. Соль состоит из -случайных значений, созданных - -генератором случайных чисел VeraCrypt в процессе создания тома. Функция формирования (деривации) ключа -заголовка основана на HMAC-SHA-512, HMAC-SHA-256, HMAC-BLAKE2S-256, HMAC-Whirlpool или HMAC-Streebog (см. [8, 9, 20, 22]) – +Метод PBKDF2 использует псевдослучайные функции на основе HMAC со следующими доступными алгоритмами хеширования: HMAC-SHA-512, HMAC-SHA-256, HMAC-BLAKE2S-256, HMAC-Whirlpool или HMAC-Streebog (см. [8, 9, 20, 22]) – какая из них будет применяться, выбирается пользователем. Длина сформированного ключа не зависит от размера вывода лежащей в основе хеш-функции. Например, длина ключа заголовка для шифра AES-256 всегда равна 256 битам, даже если используется HMAC-SHA-512 (в режиме XTS применяется дополнительный 256-битовый вторичный ключ заголовка; следовательно, для AES-256 в целом применяются два 256-битовых ключа). Более подробную информацию см. в [7]. Для формирования ключа заголовка выполняется большое количество итераций, что увеличивает время, необходимое для полного поиска паролей (то есть атакой методом перебора) [7].
      + +

      Формирование ключа Argon2id

      -

      До версии 1.12 в VeraCrypt всегда использовалось фиксированное количество итераций, зависящее только от типа -тома и алгоритма формирования ключа.

      +Argon2id — это функция формирования ключа с повышенными требованиями к памяти, обеспечивающая устойчивость к атакам с компромиссом время-память и атакам по сторонним каналам. В отличие от PBKDF2-HMAC, Argon2id не использует отдельный выбор алгоритма хеширования, а применяет собственную внутреннюю хеш-функцию (BLAKE2b-512). Для Argon2id требуются три параметра: затраты памяти (объём используемой памяти), затраты времени (число итераций) и параллелизм (число потоков). VeraCrypt во всех случаях устанавливает параметр параллелизма равным 1.
      +
      +Для обеих функций формирования ключа применяется 512-битовая соль, что означает 2512 +ключей для каждого пароля. Благодаря этому значительно повышается устойчивость к атакам с офлайн-словарями/"радужной +таблицей" (соль крайне осложняет предвычисление всех ключей для словаря паролей) [7]. Соль состоит из +случайных значений, созданных + +генератором случайных чисел VeraCrypt в процессе создания тома.
      +
      +

      До версии 1.12 VeraCrypt всегда использовал PBKDF2-HMAC с фиксированным количеством итераций, зависящим только от типа +тома и используемого алгоритма хеширования.

        Начиная с версии 1.12, поле PIM (Персональный множитель итераций) -даёт пользователям больший контроль за количеством итераций, используемых в функции формирования ключа.

        +даёт пользователям больший контроль над вычислительными параметрами, используемыми функцией формирования ключа.

        +

        Параметры PBKDF2-HMAC

        Если -PIM не указан или равен нулю, VeraCrypt использует следующие стандартные значения:

        +PIM не указан или равен нулю, VeraCrypt использует следующие стандартные значения для PBKDF2-HMAC:

        • Для шифрования системы (шифрование загрузки), если используется SHA-256, BLAKE2s-256 или Streebog, число итераций = 200 000.
        • -
        • Для шифрования системы, если используется SHA-512 или Whirlpool, а также для несистемных разделов и файловых контейнеров число итераций = 500 000. +
        • Для шифрования системы, если используется SHA-512 или Whirlpool, а также для несистемных разделов и файловых контейнеров с PBKDF2-HMAC число итераций = 500 000.

        Если -PIM указан, то количество итераций функции формирования ключа вычисляется следующим образом:

        +PIM указан, то количество итераций функции формирования ключа PBKDF2 вычисляется следующим образом:

        • Для шифрования системы, если не используется SHA-512 или Whirlpool, число итераций = PIM × 2048.
        • -
        • Для шифрования системы, если используется SHA-512 или Whirlpool, а также для несистемных разделов и файлов-контейнеров число итераций = 15 000 + (PIM × 1000). +
        • Для шифрования системы, если используется SHA-512 или Whirlpool, а также для несистемных разделов и файлов-контейнеров с PBKDF2-HMAC число итераций = 15 000 + (PIM × 1000).
        +

        Параметры Argon2id

        +

        Для Argon2id значение PIM управляет затратами памяти и времени. Если PIM не указан, используются параметры по умолчанию, соответствующие PIM = 12 (416 MiB памяти, 6 итераций).

        +

        Для Argon2id VeraCrypt формирует фиксированные 192 байта ключевого материала заголовка для текущего формата томов независимо от выбранного алгоритма шифрования. Затем выбранный алгоритм шифрования использует требуемый префикс этого вывода. Например, AES-XTS использует первые 64 байта. Реализации должны запрашивать у Argon2id 192 байта, а затем выбирать требуемый префикс; запрос только длины ключевого материала выбранного алгоритма даёт другой вывод Argon2id, поскольку Argon2id включает запрошенную длину вывода в своё вычисление.

        Ключи заголовка, используемые шифрами при каскадном (последовательном) шифровании, не зависят друг от друга, diff --git a/doc/html/ru/Key Derivation Algorithms.html b/doc/html/ru/Key Derivation Algorithms.html new file mode 100644 index 00000000..5b37e03f --- /dev/null +++ b/doc/html/ru/Key Derivation Algorithms.html @@ -0,0 +1,52 @@ + + + + +VeraCrypt - Бесплатное надёжное шифрование дисков с открытым исходным кодом + + + + + + +
        +VeraCrypt +
        + + + + +
        +

        Алгоритмы формирования ключа

        + +
        +Функция формирования ключа (KDF) преобразует пароль и, при наличии, ключевые файлы в криптографические ключи, используемые для расшифрования заголовка тома VeraCrypt. Такие функции замедляют атаки перебором и защищают от предвычислений благодаря большой случайной соли и настраиваемому рабочему фактору, например числу итераций или объему памяти. +
        + +

        Доступные алгоритмы в VeraCrypt

        +
          +
        • +Argon2id: современная функция формирования ключа с повышенными требованиями к памяти, внутри использующая BLAKE2b-512. Рекомендуется для новых несистемных томов. Отдельный выбор хеш-алгоритма не требуется. +
        • +
        • +PBKDF2-HMAC: широко применяемая KDF, использующая HMAC с выбираемой хеш-функцией. Поддерживаемые HMAC-хеши в VeraCrypt: +SHA-512, SHA-256, Whirlpool, BLAKE2s-256 и Streebog. +
        • +
        + +
        +
        diff --git a/doc/html/ru/Personal Iterations Multiplier (PIM).html b/doc/html/ru/Personal Iterations Multiplier (PIM).html index 11d7da7b..5f84cff7 100644 --- a/doc/html/ru/Personal Iterations Multiplier (PIM).html +++ b/doc/html/ru/Personal Iterations Multiplier (PIM).html @@ -37,27 +37,57 @@

        PIM (Персональный множитель итераций)

        PIM расшифровывается как "Персональный множитель итераций". Это параметр впервые появился в VeraCrypt 1.12, -его значение определяет количество итераций, используемых функцией формирования ключа заголовка. Это значение можно -указать в диалоговом окне пароля или в командной строке.

        -

        Если значение PIM указано, количество итераций вычисляется следующим образом:

        +его значение управляет вычислительными параметрами функции формирования ключа заголовка. Это значение можно указать +в диалоговом окне пароля или в командной строке.

        +

        Точное значение PIM зависит от используемой функции формирования ключа (KDF):

        + +

        Формирование ключа PBKDF2-HMAC

        +

        При использовании PBKDF2-HMAC значение PIM управляет количеством итераций следующим образом:

        • Для шифрования системного раздела без использования SHA-512 или Whirlpool количество итераций = PIM × 2048
        • Для шифрования системного раздела с использованием SHA-512 или Whirlpool количество итераций = 15 000 + (PIM × 1000)
        • Для шифрования несистемных разделов и файловых контейнеров количество итераций = 15 000 + (PIM × 1000)
        -

        Если значение PIM не указано, будет использоваться количество итераций по умолчанию, применяемое в версиях до 1.12 -(см. Формирование ключа заголовка). -Это можно резюмировать следующим образом:
        -

          -
        • Для шифрования системного раздела (шифрования загрузки) с использованием SHA-256, BLAKE2s-256 или Streebog применяется 200 000 итераций, что эквивалентно значению PIM 98.
        • -
        • Для шифрования системного раздела с использованием SHA-512 или Whirlpool применяется 500 000 итераций, что эквивалентно значению PIM 485.
        • -
        • Для шифрования несистемных разделов и файловых контейнеров все алгоритмы формирования ключа (деривации) будут использовать 500 000 итераций, что эквивалентно значению PIM 485.
        • -
        + +

        Формирование ключа Argon2id

        +

        При использовании Argon2id значение PIM управляет параметрами затрат памяти и времени:

        +
          +
        • Затраты памяти (m_cost) в MiB:
          +m_cost(pim) = min(64 MiB + (pim - 1) * 32 MiB, 1024 MiB)
          +Затраты памяти увеличиваются на 32 MiB при каждом увеличении PIM, начиная с 64 MiB, и ограничиваются 1024 MiB, когда PIM достигает 31 или более. +
        • +
        • Затраты времени (t_cost) в итерациях:
          +Если PIM ≤ 31: t_cost(pim) = 3 + floor((pim - 1) / 3)
          +Если PIM > 31: t_cost(pim) = 13 + (pim - 31)
          +Затраты времени увеличиваются на 1 итерацию при каждых 3 увеличениях PIM, когда PIM ≤ 31, и на 1 итерацию при каждом увеличении PIM, когда PIM > 31. +
        • +
        • Параллелизм: фиксирован на 1 поток во всех случаях.
        • +
        + +

        Примеры Argon2id:

        +
          +
        • При PIM = 12: затраты памяти = 416 MiB, затраты времени = 6 итераций
        • +
        • При PIM = 31: затраты памяти = 1024 MiB, затраты времени = 13 итераций
        • +
        • При PIM = 32: затраты памяти = 1024 MiB, затраты времени = 14 итераций
        • +
        + +

        Если значение PIM не указано, VeraCrypt будет использовать параметры по умолчанию, применявшиеся в версиях до 1.12 для PBKDF2-HMAC +(см. Формирование ключа заголовка). Для Argon2id параметры по умолчанию эквивалентны PIM = 12:

        +
          +
        • Значения PBKDF2-HMAC по умолчанию:
        • +
            +
          • Для шифрования системного раздела (шифрования загрузки) с использованием SHA-256, BLAKE2s-256 или Streebog применяется 200 000 итераций, что эквивалентно значению PIM 98.
          • +
          • Для шифрования системного раздела с использованием SHA-512 или Whirlpool применяется 500 000 итераций, что эквивалентно значению PIM 485.
          • +
          • Для шифрования несистемных разделов и файловых контейнеров с PBKDF2-HMAC применяется 500 000 итераций, что эквивалентно значению PIM 485.
          • +
          +
        • Значения Argon2id по умолчанию: затраты памяти = 416 MiB, затраты времени = 6 итераций (эквивалентно PIM = 12)
        • +
        +

        До версии 1.12 безопасность тома VeraCrypt основывалась только на надёжности пароля, поскольку VeraCrypt использовал фиксированное количество итераций.
        -Благодаря реализации управления PIM у VeraCrypt появилось двумерное пространство безопасности для томов, основанное -на паре (Пароль, PIM). Это обеспечивает большую гибкость при настройке желаемого уровня безопасности, одновременно +Благодаря реализации управления PIM у VeraCrypt появилось многомерное пространство безопасности для томов, основанное +на сочетании (Пароль, PIM, функция формирования ключа). Это обеспечивает большую гибкость при настройке желаемого уровня безопасности, одновременно контролируя производительность операции монтирования/загрузки.

        Использование PIM

        Указывать PIM не обязательно.
        @@ -69,7 +99,7 @@
        PIM обрабатывается как секретное значение, которое пользователь должен вводить каждый раз вместе с паролем. Если указано неверное значение PIM, операция монтирования/загрузки завершится ошибкой.
         
        -
        Чем больше PIM, тем выше безопасность, так как увеличивается число итераций, но тем медленнее +
        Чем больше PIM, тем выше безопасность благодаря увеличению параметров затрат KDF, но тем медленнее монтирование/загрузка.
        Чем меньше PIM, тем быстрее монтирование/загрузка, но возможно ухудшение безопасности, если используется слабый пароль.
        @@ -79,11 +109,11 @@ того, чтобы убедиться, что для коротких паролей уровень безопасности по крайней мере равен уровню по умолчанию, когда PIM пуст.
         
        -
        Минимальное значение PIM для коротких паролей равно 98 для шифрования системы без использования -SHA-512 или Whirlpool, и 485 для других случаев. Для пароля, состоящего из 20 и более символов, +
        Минимальное значение PIM для коротких паролей равно 12 для томов с Argon2id, 98 для шифрования системы без использования +SHA-512 или Whirlpool, и 485 для PBKDF2-HMAC в остальных случаях. Для пароля, состоящего из 20 и более символов, минимальное значение PIM равно 1. Во всех случаях, если оставить PIM пустым или установить его значение равным 0, VeraCrypt будет использовать -большое количество итераций по умолчанию, как это объяснено в разделе +параметры KDF по умолчанию, как это объяснено в разделе Формирование ключа заголовка.

        @@ -92,8 +122,8 @@ SHA-512 или Whirlpool, и 485 для других случаев. Дл
      • добавление дополнительного секретного параметра (PIM), который злоумышленнику придётся угадывать;
      • повышение уровня безопасности при использовании больших значений PIM, чтобы воспрепятствовать дальнейшему развитию атак методом перебора;
      • -
      • ускорение загрузки или монтирования за счет использования небольшого значения PIM (менее 98 для -шифрования системы без использования SHA-512 или Whirlpool, и менее 485 для других случаев) +
      • ускорение загрузки или монтирования за счет использования небольшого значения PIM (менее 12 для томов с Argon2id, менее 98 для +шифрования системы без использования SHA-512 или Whirlpool, и менее 485 для PBKDF2-HMAC в остальных случаях)
      • На приведённых ниже снимках экрана показан шаг монтирования тома с использованием PIM, равного 231:

        diff --git a/doc/html/ru/Random Number Generator.html b/doc/html/ru/Random Number Generator.html index 7b140d10..5d40b545 100644 --- a/doc/html/ru/Random Number Generator.html +++ b/doc/html/ru/Random Number Generator.html @@ -59,9 +59,9 @@

        Описание функции перемешивания пула:

        1. Пусть R это пул случайных значений
        2. -
        3. Пусть H это выбранная пользователем функция хеширования (SHA-512, BLAKE2S-256 или Whirlpool)
        4. +
        5. Пусть H это текущая хеш-функция перемешивания пула RNG. В отдельных контекстах работы со случайным пулом и генерации ключевых файлов это хеш-функция, выбранная пользователем. При операциях с томами VeraCrypt получает её из выбранного алгоритма формирования ключа заголовка: для PBKDF2-HMAC это выбранный хеш (SHA-512, SHA-256, BLAKE2s-256, Whirlpool или Streebog); для Argon2id это BLAKE2b-512.
        6. l = байтовый размер вывода функции хеширования H (то есть если -H – BLAKE2S-256, то l = 20; если H – SHA-512, то l = 64)
        7. +H – BLAKE2s-256 или SHA-256, то l = 32; если H – SHA-512, Whirlpool, Streebog или BLAKE2b-512, то l = 64)
        8. z = байтовый размер пула случайных значений R (320 байт)
        9. q = z / l – 1 (например, если H – Whirlpool, то q = 4)
        10. @@ -93,7 +93,7 @@
        11. Состояние каждого бита в пуле инвертируется (то есть 0 становится 1, а 1 становится 0).
        12. Данные, полученные из какого-либо перечисленного выше источника, добавляются в пул, как описано выше.
        13. Содержимое пула трансформируется с помощью функции перемешивания пула.
          -Примечание. Эта функция использует криптографически стойкую одностороннюю хеш-функцию, выбираемую пользователем +Примечание. Эта функция использует криптографически стойкую одностороннюю хеш-функцию, связанную с выбранным вариантом KDF/хеширования (подробности см. выше в разделе Функция перемешивания пула).
        14. Преобразованное содержимое пула подвергается операции XOR в выходной буфер следующим образом:
            diff --git a/doc/html/ru/pbkdf2.html b/doc/html/ru/pbkdf2.html new file mode 100644 index 00000000..9c0a1dd9 --- /dev/null +++ b/doc/html/ru/pbkdf2.html @@ -0,0 +1,82 @@ + + + + +VeraCrypt - Бесплатное надёжное шифрование дисков с открытым исходным кодом + + + + + + +
            +VeraCrypt +
            + + + + +
            +

            PBKDF2

            + +
            +PBKDF2 (Password-Based Key Derivation Function 2) — широко применяемая KDF, которая многократно применяет псевдослучайную функцию HMAC, чтобы замедлить подбор пароля. В VeraCrypt PBKDF2 доступна с несколькими HMAC-хеш-функциями и используется для формирования ключей, расшифровывающих заголовок тома. +
            + +

            Варианты PBKDF2-HMAC, поддерживаемые в VeraCrypt

            + + +

            Параметры в VeraCrypt

            + +

            Соль

            +
            +512-битовая случайная соль, сохраняемая в заголовке тома, смешивается с паролем, чтобы предотвратить предвычисления и атаки с радужными таблицами. +
            + +

            Количество итераций

            +
            +Количество итераций PBKDF2 зависит от выбранного HMAC-хеша, контекста (например, системное или несистемное шифрование) и значения PIM. Увеличение PIM повышает число итераций и, следовательно, время, необходимое для формирования ключей. Точные значения и формулы приведены в разделе Формирование ключа заголовка, соль и количество итераций. +
            + +

            Длина вывода

            +
            +Объём сформированного ключевого материала заголовка зависит от выбранного алгоритма или каскада шифрования. В текущих томах XTS VeraCrypt использует как первичные, так и вторичные ключи заголовка; например, для AES-256-XTS требуется всего 512 бит (два 256-битовых ключа), а для каскада AES-Twofish-Serpent-XTS — 1536 бит (шесть 256-битовых ключей). +
            + +

            Преимущества и особенности

            +
              +
            • Широкая совместимость: PBKDF2 широко поддерживается на разных платформах и в разных средах.
            • +
            • Низкие требования к памяти: подходит для систем с ограниченными ресурсами.
            • +
            • Не обладает повышенными требованиями к памяти: по сравнению с Argon2id, PBKDF2 обеспечивает меньшую устойчивость к атакам с использованием массово-параллельного оборудования (GPU/ASIC). Если необходимо использовать PBKDF2, рассмотрите возможность повышения PIM.
            • +
            + +

            Связанные разделы

            + +
            diff --git a/doc/html/zh-cn/Argon2id.html b/doc/html/zh-cn/Argon2id.html new file mode 100644 index 00000000..318515c1 --- /dev/null +++ b/doc/html/zh-cn/Argon2id.html @@ -0,0 +1,174 @@ + + + + +VeraCrypt - 为偏执者提供强大安全保障的免费开源磁盘加密工具 + + + + + + +
            +VeraCrypt +
            + + + + + +
            +

            Argon2id

            +
            +Argon2id 是一种内存困难型密钥推导函数,设计用于抵抗时间-内存权衡攻击和侧信道攻击。它在 2015 年被选为密码哈希竞赛(PHC)的获胜算法,并由 RFC 9106 定义。VeraCrypt 支持将 Argon2id 作为 PBKDF2-HMAC 的替代方案用于非系统卷头密钥推导。 +
            + +

            主要特性

            +
              +
            • +内存困难:需要可配置数量的内存,从而提高对专用硬件攻击的抵抗能力。 +
            • +
            • +抗侧信道攻击:结合了依赖数据和不依赖数据的内存访问模式。 +
            • +
            • +内部哈希函数:内部使用 BLAKE2b-512,无需单独选择哈希算法。 +
            • +
            • +可调参数:允许调整内存成本、时间成本和并行度。 +
            • +
            + +

            Argon2 变体

            +
            +Argon2 有三个变体: +
            +
              +
            • +Argon2d:使用依赖数据的内存访问方式,可抵抗时间-内存权衡攻击,但更容易受到侧信道攻击。 +
            • +
            • +Argon2i:使用不依赖数据的内存访问方式,可抵抗侧信道攻击,但对时间-内存权衡攻击的抵抗力较弱。 +
            • +
            • +Argon2id:结合两种变体的混合方式,可同时抵抗两类攻击(VeraCrypt 使用此变体)。 +
            • +
            + +

            VeraCrypt 中的参数

            +
            +VeraCrypt 使用 Argon2id 时采用以下参数配置: +
            + +

            内存成本(m_cost)

            +
            +密钥推导过程中使用的内存量由 PIM 值控制: +
            +
              +
            • +公式:m_cost(pim) = min(64 MiB + (pim - 1) × 32 MiB, 1024 MiB) +
            • +
            • +范围:64 MiB 到 1024 MiB(在 PIM = 31 时达到上限) +
            • +
            • +默认值:416 MiB(相当于 PIM = 12) +
            • +
            + +

            时间成本(t_cost)

            +
            +密钥推导过程中执行的迭代次数: +
            +
              +
            • +当 PIM ≤ 31 时:t_cost(pim) = 3 + floor((pim - 1) / 3) +
            • +
            • +当 PIM > 31 时:t_cost(pim) = 13 + (pim - 31) +
            • +
            • +默认值:6 次迭代(相当于 PIM = 12) +
            • +
            + +

            并行度

            +
            +计算过程中使用的并行线程数: +
            +
              +
            • +值:VeraCrypt 中始终固定为 1 个线程。 +
            • +
            • +原因:确保在不同硬件配置上具有一致的行为。 +
            • +
            + +

            相对于 PBKDF2 的优势

            +
              +
            • +内存困难性:需要分配大量内存,使 GPU 和 ASIC 攻击成本更高。 +
            • +
            • +现代设计:专门设计用于抵抗当代攻击方法。 +
            • +
            • +抗侧信道攻击:内置对缓存计时和其他侧信道攻击的防护。 +
            • +
            • +标准化:已在 RFC 9106 中正式标准化。 +
            • +
            + +

            使用注意事项

            +
            +在 VeraCrypt 中使用 Argon2id 时: +
            +
              +
            • +内存要求:请确保有足够的 RAM,尤其是在使用较高 PIM 值时。 +
            • +
            • +性能:较高的内存成本可能导致挂载时间变慢,但可提供更好的安全性。 +
            • +
            • +兼容性:适用于支持多种密钥推导函数的 VeraCrypt 版本。 +
            • +
            • +无需哈希选择:与 PBKDF2-HMAC 不同,无需选择单独的哈希算法。 +
            • +
            + +

            技术规格

            +
            +算法:RFC 9106 定义的 Argon2id
            +内部哈希:BLAKE2b-512
            +盐值大小:512 位(与 PBKDF2-HMAC 相同)
            +头 KDF 输出长度:当前 VeraCrypt 格式固定为 1536 位(192 字节)。所选加密算法使用该输出中所需的前缀部分(例如 AES(AES-256-XTS)使用前 64 字节)。第三方实现必须先从 Argon2id 请求 192 字节,再选择所需前缀;如果只请求所选算法的密钥材料长度,将得到不同的 Argon2id 输出。
            +版本:Argon2 版本 0x13(十进制 19) +
            + +
            +有关 PIM 值及其对 Argon2id 参数影响的更多信息,请参阅 + +个人迭代乘数(PIM)部分。 +
            + +
            diff --git a/doc/html/zh-cn/BLAKE2b-512.html b/doc/html/zh-cn/BLAKE2b-512.html new file mode 100644 index 00000000..0a105e0c --- /dev/null +++ b/doc/html/zh-cn/BLAKE2b-512.html @@ -0,0 +1,51 @@ + + + + +VeraCrypt - 为偏执者提供强大安全保障的免费开源磁盘加密工具 + + + + + + +
            +VeraCrypt +
            + + + + + +
            +

            BLAKE2b-512

            +
            +

            +BLAKE2b是BLAKE2的64位字变体,也是BLAKE-512的后继者。BLAKE2b和BLAKE2s在RFC 7693中进行了详细说明。 +

            +

            +VeraCrypt在Argon2id内部使用最大输出大小为64字节(512位)的BLAKE2b。对于非系统卷头密钥推导,通过在 VeraCrypt 中选择 Argon2 密钥推导算法来使用 BLAKE2b-512;其内部对应 Argon2id。在随机数池混合和密钥文件生成等哈希相关上下文中,同一底层哈希函数可能显示为BLAKE2b-512。 +

            +

            +BLAKE2b-512不作为单独的PBKDF2-HMAC哈希算法提供。要在VeraCrypt非系统卷头密钥推导中使用BLAKE2b-512,请选择Argon2id;Argon2id没有单独的哈希算法选择。 +

            +
            + +
            diff --git a/doc/html/zh-cn/BLAKE2s-256.html b/doc/html/zh-cn/BLAKE2s-256.html index b5bdec29..478ebe7e 100644 --- a/doc/html/zh-cn/BLAKE2s-256.html +++ b/doc/html/zh-cn/BLAKE2s-256.html @@ -30,21 +30,21 @@ >> 哈希算法 >> -BLAKE2s - 256 +BLAKE2s-256

            -

            BLAKE2s - 256

            +

            BLAKE2s-256

            BLAKE2是一种基于BLAKE的加密哈希函数,由让 - 菲利普·奥马森(Jean - Philippe Aumasson)、塞缪尔·内维斯(Samuel Neves)、祖科·威尔科克斯 - 奥赫恩(Zooko Wilcox - O'Hearn)和克里斯蒂安·温纳莱因(Christian Winnerlein)创建。它于2012年12月21日发布。其设计目标是在需要软件高性能的应用程序中取代广泛使用但已被破解的MD5和SHA - 1算法。BLAKE2提供了比SHA - 2更好的安全性,与SHA - 3相当(例如,对长度扩展攻击具有免疫性,与随机预言机不可区分等)。
            -BLAKE2从BLAKE的轮函数中移除了消息字的常量加法,更改了两个旋转常量,简化了填充方式,添加了与初始化向量进行异或运算的参数块,并将BLAKE2b(BLAKE - 512的后继者)的轮数从16轮减少到12轮,将BLAKE2s(BLAKE - 256的后继者)的轮数从14轮减少到10轮。
            +BLAKE2从BLAKE的轮函数中移除了消息字的常量加法,更改了两个旋转常量,简化了填充方式,添加了与初始化向量进行异或运算的参数块,并将BLAKE2b(BLAKE-512的后继者)的轮数从16轮减少到12轮,将BLAKE2s(BLAKE-256的后继者)的轮数从14轮减少到10轮。
            BLAKE2b和BLAKE2s在RFC 7693中进行了详细说明。

            -VeraCrypt仅使用最大输出大小为32字节(256位)的BLAKE2s。 +VeraCrypt将最大输出大小为32字节(256位)的BLAKE2s用作PBKDF2-HMAC哈希算法。对于Argon2id,VeraCrypt在内部使用BLAKE2b-512

            -
            \ No newline at end of file +下一部分 >> +
            diff --git a/doc/html/zh-cn/Command Line Usage.html b/doc/html/zh-cn/Command Line Usage.html index c5227542..f736cc35 100644 --- a/doc/html/zh-cn/Command Line Usage.html +++ b/doc/html/zh-cn/Command Line Usage.html @@ -47,7 +47,7 @@
        - + @@ -228,7 +228,7 @@ +必须后跟一个参数,指示创建卷时要使用的 PRF 哈希算法或 KDF。它与 VeraCrypt.exe 具有相同的语法,并且还接受 argon2 作为 Argon2id 的别名。 @@ -299,9 +299,9 @@
        /hash必须后跟一个参数,指示挂载卷时要使用的 PRF 哈希算法。可能的 /hash 参数值为:sha256, sha-256, sha512, sha-512, whirlpool, blake2s 和 blake2s-256。当省略 /hash 时,VeraCrypt 将尝试所有可能的 PRF 算法,从而延长挂载操作时间。必须后跟一个参数,指示挂载卷时要使用的 PRF 哈希算法或 KDF。可能的 /hash 参数值为:sha256, sha-256, sha512, sha-512, whirlpool, blake2s, blake2s-256, streebog 和 blake2b-512(用于 Argon2id 卷)。当省略 /hash 时,VeraCrypt 将尝试所有可能的 PRF/KDF 算法,从而延长挂载操作时间。
        /volume/v
         /hash (仅与 /create 一起使用)
        -必须后跟一个参数,指示创建卷时要使用的 PRF 哈希算法。它与 VeraCrypt.exe 具有相同的语法。
        /encryption

        语法

        -

        VeraCrypt.exe [/tc] [/hash {sha256|sha-256|sha512|sha-512|whirlpool |blake2s|blake2s-256}][/a [devices|favorites]] [/b] [/c [y|n|f]] [/d [drive letter]] [/e] [/f] [/h [y|n]] [/k keyfile or search path] [tryemptypass [y|n]] [/l drive letter] [/m {bk|rm|recovery|ro|sm|ts|noattach}] +

        VeraCrypt.exe [/tc] [/hash {sha256|sha-256|sha512|sha-512|whirlpool|blake2s|blake2s-256|streebog|blake2b-512}][/a [devices|favorites]] [/b] [/c [y|n|f]] [/d [drive letter]] [/e] [/f] [/h [y|n]] [/k keyfile or search path] [tryemptypass [y|n]] [/l drive letter] [/m {bk|rm|recovery|ro|sm|ts|noattach}] [/p password] [/pim pimvalue] [/q [background|preferences]] [/s] [/tokenlib path] [/v volume] [/w]

        -

        "VeraCrypt Format.exe" [/n] [/create] [/size number[{K|M|G|T}]] [/p password]  [/encryption {AES | Serpent | Twofish | Camellia | Kuznyechik | AES(Twofish) | AES(Twofish(Serpent)) | Serpent(AES) | Serpent(Twofish(AES)) | Twofish(Serpent) | Camellia(Kuznyechik) | Kuznyechik(Twofish) | Camellia(Serpent) | Kuznyechik(AES) | Kuznyechik(Serpent(Camellia))}] [/hash {sha256|sha-256|sha512|sha-512|whirlpool|blake2s|blake2s-256}] +

        "VeraCrypt Format.exe" [/n] [/create] [/size number[{K|M|G|T}]] [/p password]  [/encryption {AES | Serpent | Twofish | Camellia | Kuznyechik | AES(Twofish) | AES(Twofish(Serpent)) | Serpent(AES) | Serpent(Twofish(AES)) | Twofish(Serpent) | Camellia(Kuznyechik) | Kuznyechik(Twofish) | Camellia(Serpent) | Kuznyechik(AES) | Kuznyechik(Serpent(Camellia))}] [/hash {sha256|sha-256|sha512|sha-512|whirlpool|blake2s|blake2s-256|streebog|blake2b-512|argon2}] [/filesystem {None|FAT|NTFS|ExFAT|ReFS}] [/dynamic] [/force] [/silent] [/noisocheck] [FastCreateFile] [/quick]

        请注意,选项的指定顺序无关紧要。

        示例

        @@ -315,4 +315,4 @@

        使用密码 test 创建一个 10 MB 的文件容器,并使用 FAT 格式化:

        "C:\Program Files\VeraCrypt\VeraCrypt Format.exe" /create c:\Data\test.hc /password test /hash sha512 /encryption serpent /filesystem FAT /size 10M /force

        -
        \ No newline at end of file +
        diff --git a/doc/html/zh-cn/Documentation.html b/doc/html/zh-cn/Documentation.html index 07a5a979..044b0612 100644 --- a/doc/html/zh-cn/Documentation.html +++ b/doc/html/zh-cn/Documentation.html @@ -81,9 +81,15 @@
      • 哈希算法 +
      • 密钥推导算法 +
      • 支持的操作系统
      • 命令行使用方法
      • 安全模型 diff --git a/doc/html/zh-cn/Encryption Scheme.html b/doc/html/zh-cn/Encryption Scheme.html index 1f14c527..d6ca7864 100644 --- a/doc/html/zh-cn/Encryption Scheme.html +++ b/doc/html/zh-cn/Encryption Scheme.html @@ -50,17 +50,21 @@
      • 现在VeraCrypt尝试解密在步骤(1)中读取的标准卷头。解密过程中使用和生成的所有数据都保存在内存中(VeraCrypt从不将它们保存到磁盘)。以下参数是未知的†,必须通过试错过程(即测试以下所有可能的组合)来确定:
          -
        1. 头密钥派生函数使用的伪随机函数(PRF,如PKCS #5 v2.0中所指定;请参阅 +
        2. 密钥推导函数(KDF)及其相关参数: +
            +
          • PBKDF2-HMAC:头密钥派生函数使用的伪随机函数(PRF,如PKCS #5 v2.0中所指定;请参阅 -头密钥派生、盐值和迭代次数部分),可以是以下之一: -

            HMAC - SHA - 512、HMAC - SHA - 256、HMAC - BLAKE2S - 256、HMAC - Whirlpool。如果用户明确指定了PRF,则将直接使用它,而不尝试其他可能性。

            +头密钥派生、盐值和迭代次数部分),可以是以下之一:HMAC-SHA-512、HMAC-SHA-256、HMAC-BLAKE2s-256、HMAC-Whirlpool、HMAC-Streebog。
          • +
          • Argon2id:用于非系统卷的内存困难型密钥推导函数,内部使用BLAKE2b-512哈希函数。
          • +
          +

          如果用户明确指定了卷头密钥推导算法(或对于 PBKDF2-HMAC 明确指定了 PRF 哈希),VeraCrypt 将直接使用它,而不尝试其他可能性。

          用户输入的密码(可能已应用了一个或多个密钥文件 - 请参阅 密钥文件部分)、PIM值(如果指定)和在步骤(1)中读取的盐值将传递给头密钥派生函数,该函数会生成一系列值(请参阅 头密钥派生、盐值和迭代次数部分),从中形成头加密密钥和辅助头密钥(XTS模式)。(这些密钥用于解密卷头。)

        3. -
        4. 加密算法:AES - 256、Serpent、Twofish、AES - Serpent、AES - Twofish - Serpent等。
        5. +
        6. 加密算法:AES-256、Serpent、Twofish、AES-Serpent、AES-Twofish-Serpent等。
        7. 操作模式:仅支持XTS模式
        8. 密钥大小
        @@ -88,4 +92,4 @@

        ** 主密钥是在卷创建期间生成的,之后无法更改。更改卷密码是通过使用新的头密钥(从新密码派生)重新加密卷头来实现的。

         

        下一部分 >>

        -
        \ No newline at end of file +
        diff --git a/doc/html/zh-cn/Hash Algorithms.html b/doc/html/zh-cn/Hash Algorithms.html index 1c641b6e..5b1c2168 100644 --- a/doc/html/zh-cn/Hash Algorithms.html +++ b/doc/html/zh-cn/Hash Algorithms.html @@ -34,20 +34,23 @@

        哈希算法

        -在卷创建向导、密码更改对话框窗口和密钥文件生成器对话框窗口中,您可以选择一种哈希算法。用户选择的哈希算法由VeraCrypt随机数生成器用作伪随机“混合”函数,并由头密钥推导函数(基于哈希函数的HMAC,如PKCS #5 v2.0中所规定)用作伪随机函数。在创建新卷时,随机数生成器会生成主密钥、辅助密钥(XTS模式)和盐值。有关更多信息,请参阅随机数生成器部分和头密钥推导、盐值和迭代次数部分。 +在卷创建向导和密码更改对话框窗口中,当使用PBKDF2-HMAC作为密钥推导函数时,您可以选择哈希算法。在密钥文件生成器对话框窗口中,所选哈希算法由VeraCrypt随机数生成器用作池混合函数。当选择Argon2id作为密钥推导函数时,头密钥推导没有单独的哈希算法选择,因为Argon2id使用其内部的BLAKE2b-512哈希函数。
        -VeraCrypt目前支持以下哈希算法: +对于PBKDF2-HMAC,用户选择的哈希算法由VeraCrypt随机数生成器用作伪随机“混合”函数,并由头密钥推导函数(基于哈希函数的HMAC,如PKCS #5 v2.0中所规定)用作伪随机函数。在创建新卷时,随机数生成器会生成主密钥、辅助密钥(XTS模式)和盐值。有关更多信息,请参阅随机数生成器部分和头密钥推导、盐值和迭代次数部分。 +
        +
        +VeraCrypt目前支持以下用于PBKDF2-HMAC的哈希算法:
        +
        +VeraCrypt还将以下哈希与Argon2id关联:
        +
          +
        • +BLAKE2b-512(与Argon2id关联;不能作为PBKDF2-HMAC选择) +
        • +

        下一部分 >>

        -
        \ No newline at end of file +
        diff --git a/doc/html/zh-cn/Header Key Derivation.html b/doc/html/zh-cn/Header Key Derivation.html index 6cb99eac..a9108910 100644 --- a/doc/html/zh-cn/Header Key Derivation.html +++ b/doc/html/zh-cn/Header Key Derivation.html @@ -44,41 +44,52 @@ VeraCrypt卷格式规范 部分)。在VeraCrypt创建的卷中(以及对于 系统加密),该区域采用XTS模式进行加密(请参阅 -操作模式 部分)。VeraCrypt用于生成头密钥和辅助头密钥(XTS模式)的方法是PBKDF2,该方法在PKCS #5 v2.0中定义;请参阅 +操作模式 部分)。对于系统加密,VeraCrypt使用PBKDF2-HMAC。对于非系统卷和文件容器,VeraCrypt支持两种用于生成头密钥的密钥推导函数:PBKDF2(该方法在PKCS #5 v2.0中定义;请参阅 -[7]。 +[7])和Argon2id。 + +

        PBKDF2-HMAC密钥推导

        +
        +PBKDF2方法使用基于HMAC的伪随机函数,可用的哈希算法包括HMAC-SHA-512、HMAC-SHA-256、HMAC-BLAKE2s-256、HMAC-Whirlpool或HMAC-Streebog(请参阅 [8, 9, 20, 22]) — 用户可以选择使用哪种。派生密钥的长度不取决于底层哈希函数的输出大小。例如,即使使用HMAC-SHA-512,AES-256密码的头密钥始终为256位长(在XTS模式下,还会使用一个额外的256位辅助头密钥;因此,AES-256总共使用两个256位密钥)。更多信息,请参阅 [7]。为了推导出头密钥,必须执行大量的密钥推导函数迭代,这增加了进行密码穷举搜索(即暴力攻击)所需的时间 [7]。 +
        +

        Argon2id密钥推导

        +
        +Argon2id是一种内存困难型密钥推导函数,可抵抗时间 - 内存权衡攻击和侧信道攻击。与PBKDF2-HMAC不同,Argon2id不使用单独的哈希算法选择,而是使用自己的内部哈希函数(BLAKE2b-512)。Argon2id需要三个参数:内存成本(使用的内存量)、时间成本(迭代次数)和并行度(线程数)。VeraCrypt在所有情况下都将并行度参数设为1。
        -使用了512位的盐值,这意味着每个密码有2512 个密钥。这显著降低了对“离线”字典/“彩虹表”攻击的脆弱性(使用盐值时,为字典中的所有密码预先计算所有密钥非常困难) [7]。盐值由 +两种密钥推导函数都使用512位的盐值,这意味着每个密码有2512 个密钥。这显著降低了对“离线”字典/“彩虹表”攻击的脆弱性(使用盐值时,为字典中的所有密码预先计算所有密钥非常困难) [7]。盐值由 -VeraCrypt随机数生成器 在卷创建过程中生成的随机值组成。头密钥推导函数基于HMAC - SHA - 512、HMAC - SHA - 256、HMAC - BLAKE2S - 256、HMAC - Whirlpool或HMAC - Streebog(请参阅 [8, 9, 20, 22]) — 用户可以选择使用哪种。派生密钥的长度不取决于底层哈希函数的输出大小。例如,即使使用HMAC - SHA - 512,AES - 256密码的头密钥始终为256位长(在XTS模式下,还会使用一个额外的256位辅助头密钥;因此,AES - 256总共使用两个256位密钥)。更多信息,请参阅 [7]。为了推导出头密钥,必须执行大量的密钥推导函数迭代,这增加了进行密码穷举搜索(即暴力攻击)所需的时间 [7]。 +VeraCrypt随机数生成器 在卷创建过程中生成的随机值组成。
        -

        在1.12版本之前,VeraCrypt始终使用固定的迭代次数,该次数仅取决于卷类型和使用的推导算法。 +

        在1.12版本之前,VeraCrypt始终使用PBKDF2-HMAC,并采用固定的迭代次数,该次数仅取决于卷类型和使用的哈希算法。 从1.12版本开始, -PIM 字段(个人迭代乘数)使用户能够更好地控制密钥推导函数使用的迭代次数。

        -

        +PIM 字段(个人迭代乘数)使用户能够更好地控制密钥推导函数使用的计算参数。

        +

        PBKDF2-HMAC参数

        当未指定 -PIM 值或该值等于零时,VeraCrypt使用以下默认值:
        +PIM 值或该值等于零时,VeraCrypt对PBKDF2-HMAC使用以下默认值:

          -
        • 对于使用SHA - 256、BLAKE2s - 256或Streebog的系统分区加密(引导加密),使用 200000 次迭代。
        • -
        • 对于使用SHA - 512或Whirlpool的系统加密,使用 500000 次迭代。
        • -
        • 对于非系统加密和文件容器,所有推导算法都将使用 500000 次迭代。 +
        • 对于使用SHA-256、BLAKE2s-256或Streebog的系统分区加密(引导加密),使用 200000 次迭代。
        • +
        • 对于使用SHA-512或Whirlpool的系统加密,使用 500000 次迭代。
        • +
        • 对于非系统加密和文件容器,所有PBKDF2-HMAC变体都将使用 500000 次迭代。

        当用户提供 -PIM 值时,密钥推导函数的迭代次数计算如下:

        +PIM 值时,PBKDF2密钥推导函数的迭代次数计算如下:

          -
        • 对于不使用SHA - 512或Whirlpool的系统加密:迭代次数 = PIM x 2048 -
        • 对于使用SHA - 512或Whirlpool的系统加密:迭代次数 = 15000 + (PIM x 1000) +
        • 对于不使用SHA-512或Whirlpool的系统加密:迭代次数 = PIM x 2048 +
        • 对于使用SHA-512或Whirlpool的系统加密:迭代次数 = 15000 + (PIM x 1000)
        • 对于非系统加密和文件容器:迭代次数 = 15000 + (PIM x 1000)
        +

        Argon2id参数

        +

        对于Argon2id,PIM值控制内存成本和时间成本。如果未指定PIM,则使用相当于PIM = 12的默认参数(416 MiB内存,6次迭代)。

        +

        对于Argon2id,VeraCrypt会为当前卷格式派生固定的192字节头密钥材料,而不依赖于所选加密算法。随后,所选加密算法使用该派生输出中所需的前缀。例如,AES-XTS使用前64字节。实现必须先从Argon2id请求192字节,然后再选择所需前缀;如果只请求所选算法的密钥材料长度,将得到不同的Argon2id输出,因为Argon2id会把请求的输出长度纳入计算。

        -级联密码中使用的头密钥相互独立,即使它们是从单个密码(可能已应用密钥文件)派生而来。例如,对于AES - Twofish - Serpent级联,头密钥推导函数会根据给定密码推导出一个768位的加密密钥(在XTS模式下,还会从给定密码推导出一个768位的 +级联密码中使用的头密钥相互独立,即使它们是从单个密码(可能已应用密钥文件)派生而来。例如,对于AES-Twofish-Serpent级联,头密钥推导函数会根据给定密码推导出一个768位的加密密钥(在XTS模式下,还会从给定密码推导出一个768位的 辅助 头密钥)。生成的768位头密钥随后被拆分为三个256位密钥(在XTS模式下, 辅助 头密钥也被拆分为三个256位密钥,因此级联实际上总共使用六个256位密钥),其中第一个密钥由Serpent使用,第二个密钥由Twofish使用,第三个密钥由AES使用(此外,在XTS模式下,第一个辅助密钥由Serpent使用,第二个辅助密钥由Twofish使用,第三个辅助密钥由AES使用)。因此,即使攻击者拥有其中一个密钥,他也无法使用该密钥推导出其他密钥,因为除了对弱密码进行暴力攻击外,没有可行的方法来确定派生该密钥的密码。
        -
        \ No newline at end of file +
        diff --git a/doc/html/zh-cn/Key Derivation Algorithms.html b/doc/html/zh-cn/Key Derivation Algorithms.html new file mode 100644 index 00000000..25ae7816 --- /dev/null +++ b/doc/html/zh-cn/Key Derivation Algorithms.html @@ -0,0 +1,52 @@ + + + + +VeraCrypt - 为偏执者提供强大安全保障的免费开源磁盘加密工具 + + + + + + +
        +VeraCrypt +
        + + + + +
        +

        密钥推导算法

        + +
        +密钥推导函数(KDF)会将您的密码以及可选的密钥文件转换为用于解密 VeraCrypt 卷头的加密密钥。KDF 通过使用大的随机盐值和可调的工作因子(例如迭代次数或内存用量)来减缓暴力破解,并防止预计算攻击。 +
        + +

        VeraCrypt 中可用的算法

        + + +
        +
        diff --git a/doc/html/zh-cn/Personal Iterations Multiplier (PIM).html b/doc/html/zh-cn/Personal Iterations Multiplier (PIM).html index 44a3e997..393927a3 100644 --- a/doc/html/zh-cn/Personal Iterations Multiplier (PIM).html +++ b/doc/html/zh-cn/Personal Iterations Multiplier (PIM).html @@ -36,24 +36,55 @@

        PIM

        -

        PIM代表“个人迭代乘数”。它是VeraCrypt 1.12版本引入的一个参数,其值控制着头部密钥推导函数使用的迭代次数。该值可以通过密码对话框或命令行指定。

        -

        当指定了PIM值时,迭代次数的计算方式如下:

        +

        PIM代表“个人迭代乘数”。它是VeraCrypt 1.12版本引入的一个参数,其值控制头部密钥推导函数使用的计算参数。该值可以通过密码对话框或命令行指定。

        +

        PIM的确切含义取决于所使用的密钥推导函数(KDF):

        + +

        PBKDF2-HMAC密钥推导

        +

        使用PBKDF2-HMAC时,PIM值按如下方式控制迭代次数:

          -
        • 对于不使用SHA - 512或Whirlpool的系统加密:迭代次数 = PIM x 2048 -
        • 对于使用SHA - 512或Whirlpool的系统加密:迭代次数 = 15000 + (PIM x 1000) +
        • 对于不使用SHA-512或Whirlpool的系统加密:迭代次数 = PIM x 2048 +
        • 对于使用SHA-512或Whirlpool的系统加密:迭代次数 = 15000 + (PIM x 1000)
        • 对于非系统加密和文件容器:迭代次数 = 15000 + (PIM x 1000)
        -

        如果未指定PIM值,VeraCrypt将使用1.12版本之前的默认迭代次数(请参阅 + +

        Argon2id密钥推导

        +

        使用Argon2id时,PIM值同时控制内存成本和时间成本参数:

        +
          +
        • 内存成本(m_cost),单位MiB:
          +m_cost(pim) = min(64 MiB + (pim - 1) * 32 MiB, 1024 MiB)
          +内存成本从64 MiB开始,每增加1个PIM增加32 MiB;当PIM达到31或更高时,上限为1024 MiB。 +
        • +
        • 时间成本(t_cost),以迭代计:
          +如果PIM ≤ 31:t_cost(pim) = 3 + floor((pim - 1) / 3)
          +如果PIM > 31:t_cost(pim) = 13 + (pim - 31)
          +当PIM ≤ 31时,每增加3个PIM,时间成本增加1次迭代;当PIM > 31时,每增加1个PIM,时间成本增加1次迭代。 +
        • +
        • 并行度:所有情况下固定为1个线程。
        • +
        + +

        Argon2id示例:

        +
          +
        • PIM = 12:内存成本 = 416 MiB,时间成本 = 6 次迭代
        • +
        • PIM = 31:内存成本 = 1024 MiB,时间成本 = 13 次迭代
        • +
        • PIM = 32:内存成本 = 1024 MiB,时间成本 = 14 次迭代
        • +
        + +

        如果未指定PIM值,VeraCrypt将对PBKDF2-HMAC使用1.12版本之前的默认参数(请参阅 - 头部密钥推导)。这可以总结如下:
        -

          -
        • 对于使用SHA - 256、BLAKE2s - 256或Streebog的系统分区加密(引导加密),使用200000次迭代,这相当于PIM值为98
        • -
        • 对于使用SHA - 512或Whirlpool的系统加密,使用500000次迭代,这相当于PIM值为485
        • -
        • 对于非系统加密和文件容器,所有推导算法将使用500000次迭代,这相当于PIM值为485
        • -
        + 头部密钥推导)。对于Argon2id,默认参数相当于PIM = 12:

        +
          +
        • PBKDF2-HMAC默认值:
        • +
            +
          • 对于使用SHA-256、BLAKE2s-256或Streebog的系统分区加密(引导加密),使用200000次迭代,这相当于PIM值为98
          • +
          • 对于使用SHA-512或Whirlpool的系统加密,使用500000次迭代,这相当于PIM值为485
          • +
          • 对于使用PBKDF2-HMAC的非系统加密和文件容器,使用500000次迭代,这相当于PIM值为485
          • +
          +
        • Argon2id默认值:内存成本 = 416 MiB,时间成本 = 6 次迭代(相当于PIM = 12)
        • +
        +

        在1.12版本之前,VeraCrypt卷的安全性仅基于密码强度,因为VeraCrypt使用固定的迭代次数。
        -随着PIM的引入,VeraCrypt的卷在基于(密码,PIM)对的二维安全空间中具有更高的灵活性,可在控制挂载/引导操作性能的同时调整所需的安全级别。

        +随着PIM的引入,VeraCrypt卷基于(密码,PIM,密钥推导函数)组合形成多维安全空间,可在控制挂载/引导操作性能的同时更灵活地调整所需的安全级别。

        PIM的使用

        不强制要求指定PIM。

        @@ -61,21 +92,21 @@
         
        PIM被视为一个秘密值,每次用户都必须与密码一起输入。如果指定了错误的PIM值,挂载/引导操作将失败。
         
        -
        使用较高的PIM值可以通过增加迭代次数来提高安全性,但会导致挂载/引导时间变慢。
        +
        使用较高的PIM值可以通过提高KDF成本参数来增强安全性,但会导致挂载/引导时间变慢。
        使用较小的PIM值,挂载/引导速度会更快,但如果使用弱密码,可能会降低安全性。
         
        在创建卷或对系统进行加密时,当密码长度小于20个字符时,VeraCrypt会强制PIM值大于或等于某个最小值。进行此检查是为了确保对于短密码,安全级别至少等于空PIM提供的默认级别。
         
        -
        对于短密码,不使用SHA - 512或Whirlpool的系统加密的PIM最小值为98,其他情况的PIM最小值为 +
        对于短密码,Argon2id卷的PIM最小值为12,不使用SHA-512或Whirlpool的系统加密为98,其他使用PBKDF2-HMAC的情况为 485。对于长度为20个字符及以上的密码,PIM最小值为 1。在所有情况下,将PIM留空或将其值设置为0将使VeraCrypt使用如 -头部密钥推导部分所述的默认高迭代次数。
        +头部密钥推导部分所述的默认KDF参数。

        使用自定义PIM值的动机可能包括:
        • 添加一个额外的秘密参数(PIM),使攻击者必须猜测
        • 通过使用较大的PIM值来提高安全级别,以抵御未来暴力攻击技术的发展。 -
        • 通过使用较小的PIM值(对于不使用SHA - 512或Whirlpool的系统加密小于98,对于其他情况小于485)来加快引导或挂载速度 +
        • 通过使用较小的PIM值(对于Argon2id卷小于12,对于不使用SHA-512或Whirlpool的系统加密小于98,对于其他使用PBKDF2-HMAC的情况小于485)来加快引导或挂载速度

        以下屏幕截图展示了使用PIM值为231挂载卷的步骤:

        @@ -119,4 +150,4 @@

         

        下一部分 >>

        -
        \ No newline at end of file +
        diff --git a/doc/html/zh-cn/Random Number Generator.html b/doc/html/zh-cn/Random Number Generator.html index 76d533ec..a58470c3 100644 --- a/doc/html/zh-cn/Random Number Generator.html +++ b/doc/html/zh-cn/Random Number Generator.html @@ -50,8 +50,8 @@

        池混合函数的描述:

        1. R为随机数池。
        2. -
        3. H为用户选择的哈希函数(SHA - 512、BLAKE2S - 256或Whirlpool)。
        4. -
        5. l = 哈希函数H输出的字节大小(即,如果H是BLAKE2S - 256,则l = 20;如果H是SHA - 512,则l = 64)
        6. +
        7. H为当前RNG池混合哈希函数。在独立随机数池和密钥文件生成上下文中,它是用户选择的哈希函数。在卷操作期间,VeraCrypt会根据所选头密钥推导算法确定它:对于PBKDF2-HMAC,它是所选哈希(SHA-512、SHA-256、BLAKE2s-256、Whirlpool或Streebog);对于Argon2id,它是BLAKE2b-512
        8. +
        9. l = 哈希函数H输出的字节大小(即,如果H是BLAKE2s-256或SHA-256,则l = 32;如果H是SHA-512、Whirlpool、Streebog或BLAKE2b-512,则l = 64)
        10. z = 随机数池R的字节大小(320字节)
        11. q = z / l - 1(例如,如果H是Whirlpool,则q = 4)
        12. R被分割成l字节的块B0...Bq。 @@ -78,7 +78,7 @@
        13. 将请求的字节数从池复制到输出缓冲区(复制从池游标的位置开始;当到达池的末尾时,复制从池的开头继续;如果请求的字节数大于池的大小,则不生成值并返回错误)。
        14. 反转池中每个位的状态(即,0变为1,1变为0)。
        15. 将从上述某些来源获得的数据按上述方式添加到池中。
        16. -
        17. 使用池混合函数转换池的内容。注意:该函数使用用户选择的加密安全单向哈希函数(有关更多信息,请参阅上面的池混合函数部分)。
        18. +
        19. 使用池混合函数转换池的内容。注意:该函数使用与所选KDF/哈希选项关联的加密安全单向哈希函数(有关更多信息,请参阅上面的池混合函数部分)。
        20. 将转换后的池内容按以下方式异或到输出缓冲区:
          1. 将输出缓冲区写入游标设置为0(缓冲区的第一个字节)。
          2. @@ -98,4 +98,4 @@

             

            下一部分 >>

            -
            \ No newline at end of file +
            diff --git a/doc/html/zh-cn/pbkdf2.html b/doc/html/zh-cn/pbkdf2.html new file mode 100644 index 00000000..1cf3a75d --- /dev/null +++ b/doc/html/zh-cn/pbkdf2.html @@ -0,0 +1,82 @@ + + + + +VeraCrypt - 为偏执者提供强大安全保障的免费开源磁盘加密工具 + + + + + + +
            +VeraCrypt +
            + + + + +
            +

            PBKDF2

            + +
            +PBKDF2(Password-Based Key Derivation Function 2)是一种广泛使用的 KDF,会重复应用伪随机函数(HMAC)以减缓密码猜测。在 VeraCrypt 中,PBKDF2 可与多种 HMAC 哈希函数配合使用,并用于派生解密卷头所需的密钥。 +
            + +

            VeraCrypt 支持的 PBKDF2-HMAC 变体

            + + +

            VeraCrypt 中的参数

            + +

            盐值

            +
            +存储在卷头中的 512 位随机盐值会混入密码,以防止预计算和彩虹表攻击。 +
            + +

            迭代次数

            +
            +PBKDF2 迭代次数取决于所选 HMAC 哈希、使用场景(例如系统加密或非系统加密)以及 PIM 值。提高 PIM 会增加迭代次数,从而增加派生密钥所需的时间。精确值和公式请参阅 头密钥推导、盐值和迭代次数。 +
            + +

            输出长度

            +
            +派生并使用的卷头密钥材料量取决于所选加密算法或级联。在当前 XTS 卷中,VeraCrypt 同时使用主卷头密钥和辅助卷头密钥;例如,AES-256-XTS 总共使用 512 位(两个 256 位密钥),AES-Twofish-Serpent-XTS 级联总共使用 1536 位(六个 256 位密钥)。 +
            + +

            优点和注意事项

            +
              +
            • 兼容性广:PBKDF2 在多种平台和环境中得到广泛支持。
            • +
            • 内存需求低:适合资源受限的系统。
            • +
            • 不是内存困难型:Argon2id 相比,PBKDF2 对使用大规模并行硬件(GPU/ASIC)的攻击抵抗力较弱。如果必须使用 PBKDF2,请考虑提高 PIM。
            • +
            + +

            相关主题

            + +