From 0a8b6a9f8f5a1b446cb4217efa37529bcc37bc1d Mon Sep 17 00:00:00 2001 From: drh Date: Wed, 16 Dec 2020 21:09:45 +0000 Subject: [PATCH] Enhance the sqlite3BtreeTransferRow() routine so that it does more careful checks for corrupt database pages. FossilOrigin-Name: 85952e71175dae73c4e587a3b80783825d91fe8567a819e072da651c1ff4131b --- manifest | 14 +++++++------- manifest.uuid | 2 +- src/btree.c | 6 ++++++ test/fuzzdata8.db | Bin 1616896 -> 1619968 bytes 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/manifest b/manifest index 89395f093a..efa169e37a 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Remove\san\sunnecessary\sand\sincorrect\s#ifdef.\s\sFix\sharmless\scompiler\swarnings. -D 2020-12-16T14:20:45.731 +C Enhance\sthe\ssqlite3BtreeTransferRow()\sroutine\sso\sthat\sit\sdoes\smore\scareful\nchecks\sfor\scorrupt\sdatabase\spages. +D 2020-12-16T21:09:45.084 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -481,7 +481,7 @@ F src/auth.c a3d5bfdba83d25abed1013a8c7a5f204e2e29b0c25242a56bc02bb0c07bf1e06 F src/backup.c 3014889fa06e20e6adfa0d07b60097eec1f6e5b06671625f476a714d2356513d F src/bitvec.c 17ea48eff8ba979f1f5b04cc484c7bb2be632f33 F src/btmutex.c 8acc2f464ee76324bf13310df5692a262b801808984c1b79defb2503bbafadb6 -F src/btree.c fae82794638b41f4fdd0e49d5196ceaa7848e6666dbbf412eb173c58c4fbf48c +F src/btree.c 0f9cb686871ae668817673f0823b55d1bcadbc86ea28bd22c590b064a8322d5a F src/btree.h 285f8377aa1353185a32bf455faafa9ff9a0d40d074d60509534d14990c7829e F src/btreeInt.h 7614cae30f95b6aed0c7cac7718276a55cfe2c77058cbfd8bef5b75329757331 F src/build.c f6449d4e85e998e14d3f537e8ea898dca2fcb83c277db3e60945af9b9177db81 @@ -1043,7 +1043,7 @@ F test/fuzzdata4.db b502c7d5498261715812dd8b3c2005bad08b3a26e6489414bd13926cd3e4 F test/fuzzdata5.db e35f64af17ec48926481cfaf3b3855e436bd40d1cfe2d59a9474cb4b748a52a5 F test/fuzzdata6.db 92a80e4afc172c24f662a10a612d188fb272de4a9bd19e017927c95f737de6d7 F test/fuzzdata7.db 0166b56fd7a6b9636a1d60ef0a060f86ddaecf99400a666bb6e5bbd7199ad1f2 -F test/fuzzdata8.db f8451a1fd38efbea8c1a7cdf5d02259c4702446a9fabf566becd306b64a50236 +F test/fuzzdata8.db 7f6c5443d67ba040f760b4d28da54cc9f68174fa212ae34ccb86c645de761ec4 F test/fuzzer1.test 3d4c4b7e547aba5e5511a2991e3e3d07166cfbb8 F test/fuzzer2.test a85ef814ce071293bce1ad8dffa217cbbaad4c14 F test/fuzzerfault.test 8792cd77fd5bce765b05d0c8e01b9edcf8af8536 @@ -1891,7 +1891,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P 48301edc90fe5811df0394b106edce7726d0ea86ac562c9f4db511b812a76433 -R bc270d52af99cca590351162eea6886b +P 31cd1bbfa5b06723288d99d1cb423f88353bdef770b82e9103f71a796d66f660 +R be1e2d0f672e56f934d1c99d7dc679ec U drh -Z 53bb33e2ab1210ebb52c38429ca9bfe7 +Z e48ee7782ade3dd763b30b3828175795 diff --git a/manifest.uuid b/manifest.uuid index 1abcf7fc42..d23f02d0c0 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -31cd1bbfa5b06723288d99d1cb423f88353bdef770b82e9103f71a796d66f660 \ No newline at end of file +85952e71175dae73c4e587a3b80783825d91fe8567a819e072da651c1ff4131b \ No newline at end of file diff --git a/src/btree.c b/src/btree.c index 9b8005037e..a587332ce2 100644 --- a/src/btree.c +++ b/src/btree.c @@ -8973,6 +8973,9 @@ int sqlite3BtreeTransferRow(BtCursor *pDest, BtCursor *pSrc, i64 iKey){ if( pDest->pKeyInfo==0 ) aOut += putVarint(aOut, iKey); nIn = pSrc->info.nLocal; aIn = pSrc->info.pPayload; + if( aIn+nIn>pSrc->pPage->aDataEnd ){ + return SQLITE_CORRUPT_BKPT; + } nRem = pSrc->info.nPayload; if( nIn==nRem && nInpPage->maxLocal ){ memcpy(aOut, aIn, nIn); @@ -8993,6 +8996,9 @@ int sqlite3BtreeTransferRow(BtCursor *pDest, BtCursor *pSrc, i64 iKey){ } if( nRem>nIn ){ + if( aIn+nIn+4>pSrc->pPage->aDataEnd ){ + return SQLITE_CORRUPT_BKPT; + } ovflIn = get4byte(&pSrc->info.pPayload[nIn]); } diff --git a/test/fuzzdata8.db b/test/fuzzdata8.db index 39191fc8b1f03935f6b661eab5af1e2e2fba7285..47d0d5a165f0d64501d44be2fe3902b232d67776 100644 GIT binary patch delta 25797 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 E-@|?Jw*UYD delta 23001 zcmc({2Xs|M_cwg!lzY#)_1u1`N$5Sf5PC}xq(g!rNKGixAyMfiIhP_TB{7%{NJ%Jy z(h`AeP)Z`GNDYbzh!6w|f{^$i_z1$c=c3`!_xZ2&eed_K^|IEPOHP^Dd(Yl`W`29m zq?Zm)KR-O9lG9=^80#CJ{u`LtpowfTH0qv_KXS8)J-f@Qcv)HtJ<(tg>*@(qR?~Y> z>DIebDeGMg2H_9AGnIGsXQ}*I??h#Z-jT{;y#tlU^>`|e>Ty(lthcA~klv0;)Z0+G zOK(l(dwNSM*Xu2)T&Fjua<$%!%H?`fD&I`gW9jD&y$O|z^dOZB^cX5<>d{nA(TM?J zl3tg}k$P<^ll7WZKCjoHvX5Sk%IP~}!-P5g9-qOufeyOWeexaMFJf$0{Jg&>Izq+mAu4(3l zOzfoB2w4|e*+Q$Z&?+vpN(-&>LaVXBYLY6OMZ<0bdy`c+?9Oslen)wAv@T1AWzWHx zp{4@Ct?VMcHQ+1@h9BOLJjA!ZZubKg?X7OUei%O7T_hi#vft|owh8UNyI)X%!o zL`XTRQPXd^UgS3~p?===tpLR>+}okz2Gc}-^BX8jaJPiQ4W>9KnQ3xi@k3LL2zha6{KYE}Cn{s1bgM~&b z@XbY2RZRNEt~mtuu?cA5s_ocX4OCiX4lzY|C$)-(m%eP@~^ z;LW9`0Atti;E$#bA|x$j@mvHmcpcYq&KT1?5!Q`2sgMDtm)Un1)zDp$q4uro7K4mO zS_G7Q@A`_r{5|NeNEI>C<}MNN(OQ$t*bm4CTH7&v_;1sB#>H@h{fGx2@^*;nju2VN zZHAQgE)x`=H;v+z+}Lwap{I`px-hYqx{#Ckehi@U>nk4e-??C(rQ+3$(gQ+jXEi-k6Wy?&dP*~Zh z;i(@@ABF{2ilhsq9|v!lj)!lQ;puF;5$^TuRi@LtqF4GTZI3uoN!Xn3^VR2d>Y?kbQs&D0QAo;8gV*{@Lar78Fh zxi2WL=yvTXR`v-6mrR2tX2l^TCbJ;lKQ=+P;Dm2YSxo+!X!s419VS0#?njaR8}di| zlb@y{`#s#DNFB;`Jliyl6aN5`UuQ!wa)N1HSSk-O?yRfuPYwS1zNxmr{s6tIy%wf? z=E@KX)|)D_a(W%ShDUH{8mSynK3ar~jizAsX4A9$!Q+2)EKTlo*4| zHLe;^xX(mQR8y)jOj#KiM*WvA$dIzwB;#4L63v(ZMVkWe;&!X@yvRg|@+()e3JYZX zQBx|3OoG&I#xdCy+!mbXQ5K69Ifnlm5!*O+1Wc}{#6reLCJ7w#O!2VBshBY{pnPVM zosuE9B{*j&9brSHQcbaD7C z{MUgECn=;FCkL6Mv1z<=N?;lmH5OYlES~OIz#yrP&7a*($b!c+9RZl>bVWnyUPpHl zui%8tS&j&--bE=9nG2HV*z0HO(n(B8a8+km8j>^yrH2I#a?c!}7fw~M5R3! zqx!Y4B=A+?XWF0}ht=>Rcz)ooDhRvp;-6QziO)=GUDhTc>*u~u;E zxY8JiiN0BRqm7txOLH|2b2Kd5s4jygU#ZW-5%aYpzAt|JtkSEBJshT5FrIInuuC`U+!9sQoZn=8oA(2JcR z)vZ>+s7Uo&k#&Lm>S`_2eClfqGuo=v$fw^?s)06DeE>>*)y~bbD>#kr+HmJvYXW4v z?@OdYYzIjn_y*&Pb=5Tj>jvx(e+3xUL>+)r8mP4u7KLkK)k3E9*lN@xCBwO}_d$|= z|1iOPR@yU5JCp#WcU2oEw@}xMq=`AdsXGLGznz*Wvjj3>Rv!!dsy?D=hFXNiXVpI# zON7irN)VfNQIiz8nq)Z8l5@C^{Z(6ZmgVvmh>1``Tr$1s>I;{DP^!X^s6RD^*ZGXd z`oWnjH5#H1DQC)cu`5QurS>8P`g;#H8KgFnIkH4Yw~P!(7*O|1-T=c%ylu(t4hQ~mRd)aYfFYJ^|?WgpjC=6>aE#&Ey=JIoTIcj-n}!+ z`{6##z=h#-Wu?yW@ky`?OPi@ys<)529wHl-sT*bXGG?w(CktG9 z9r^1cq0$%XkL;DK+|gc0XrnH{lIyA_V8J-~;OMaAro)w6N?RyCs;=V|FSp3iG_b$SwR9SMAxDuGTd7&q}y%g82{Cia7hB`l^YgXXTt-g=;1AD3R%qJ6;_I)T>S5 z#C_Qgjeb@V@xEfVTG)JG5$fBx&SQRGkzypnd*uULL;R$!xtWlaep%wo&!g*AC@Llf z>E$6}K@D?1Sq{<{@mvij@V8qE@VBZ>HWo_UHWZ=goDfj(S_gr0-soscj>Fhh>XG8oc6 z@{?=$(Yz$=LAFD%x4afArJ3Kxw)@PV2y6#9ADiz$LVwu;>0g-Vz@5WpC#IL0UkQJ( z6P$hJ2q=DN<mYeR!hK++1XNn4c*37U1+R=C8u{A?{Q2VU~}jKbtjy*H#5G`pQkq zYkMthm+u36Y<^tc*gza}(tOUuT4Vb!&5Z=}?!s|;E1J&f{lmP$(XY(S+17&dT(t@? zKGLEHXuWJ6WRlyEqF3QB4S=-kiWernC@WC!O>-?YeQ*Aa$$Lm1`+&`%3D2!p%^DQW z5gGt>+z;9HnGAWYlnA`jQ#Lb9@L48?N&5f}_$>jfe9QcU$Ufv;hdJnu6H3h>vi*4G zfH^wMSp==%%{#&$9f0-^%tg@tF%?{b{K@37+z$TzW^WT~hmn%y7LyA+B8=K&zCtzkkes-5uGt!{`6GzhXRZW=eoHOvWVIYLu_F+?XKVgHF)_;|w|rEZ0PK z8Xj!3Re_vNmb%z2&f+$+4mh-%C6~!3=+n>P%wtP^D4i8BVZ>6)RaS7>GJwJ4-j?O; z3-~$H62gTEmN_Cj3q4kutHQb}%!`e#TS^6}y3%ri4`N?JkG1B{@v~Ky<_wm8B6fpb zt1W|Z*FZ}GW9KmHmgPAHz1CUYhanqjZlMje&iMabSAael z1nJu>%Q-uQ^^CVf!0Hr>9lDRVc=-R~AZCIkA}isBnYYmi;!??NJfmBdm{>ODEOWwiT`L!NCX%py z0=o`N4~ns{WQDmKhL&4&k$neCKN5%FxaTd|tX$Ns7{NbW*hs?OBNFhV4z=88_#l@I zmHh|}ezDBQCBrQ*)2&T(OTG~kY#hXxdzNCBy~AvU8>20LE@;I_@D5wYmO#otYgOEt zXXz`lThRWpSQG2+wro}8PLg3i4b~Sd^KkG1%LYOIi8vu#r@!?>AfTlc{=3j(7Fj7A znq`fLw!_Sa%ZG~kSoellKWvm`a43yG9>E{)r1f!9N2`PppINR8gzX%fN6!jBwI~>q zW4+9<{wd3O#{LC|Ugh76H$Mx9g4PjuyV$ZrVb9{43zp%6e4FUFmzAPN<11>=!In zSn{!GL+yrzM!Mf2{iqm;kJga>!sZR;7x+*x4Q6dLAAl=4mLN2~V>!bfWWQq$qPpJl z3d48HECU7hF#A1oSL}J$a!WCGCRKQyX699_uR`zFEY*0wd%|k)D-rz|oWF}(_w2Ni zs0~>3k;O{*o@}MI85DhDxeujvtX4Fs)`tQUu;`d2Iy}BM$6*bv*<6~U2t}tXA!t9& zyb>dvR+6CvMW0iTR_SHc36tDn-AJY1I@rj%;+iVfSf&_1Fza0;!(E71z(3-xMgnQTd6c!lHZ;o+nG>BSSRIB9x>~;y2#GmVZ25vLm8$MF z(cA`$_p&hz8Z{*)S=-w>M`GQfa$oC*s;5BFyGe#yUZlQI3F`Swu;cxHR$|KfgYm=6Z(+euYfna4Os2_7{xr!-{xks2kaZJAH?YPq zn01GAj%Ga-1y%tv9acB`$5?NPtRgsHxBd*RCz)G9UaWN~?wx4uF0e{j!SOWCrC5J3 zu_}=HKpYPldtAft)O0IBhgHjsXDRlZW8ERJh^O{~WG}lJ&}6F)7KAuekN-5 zS#LmEnfMD{T4=4!SkzOa0Wz9cyt>HxiX!!p3_n3~H_HoBH_RcDy{GiZ@z{Zyv- zhFAmH9#;y1VghH4)FA_6!Frn2#Hb^r@%ZIRYa@Xmny90e&+*)9YeNpvM4hmh1*E1c zFo+vxUIaTgSo^X%7*%XZr8|Fh5X4Qe=0nOoaT?r?wMOI7&DN0;t*9GrvyM|^mrc}r zONMpBAh?YX!IEv(T597%gY{mL;c;8;c}CE}L9DlXoZeG1+<4(hS7Oc#^Ax^R5UbNw zKMZhkj+zRn9dk7%P*MV8nA@&*x1&})eKKfAWvM-AZbG=z8)$Bp+|34&_`MY{FZ z|LozG2d&2#i-x?>yrQw@D)8BEHUdwLH8&PuD3WO;xUBUcy@&NvURw+ny=HC8{-gVq zPpl6Z3qrh~>(No`H4|%sQn8g5i%qdOA<&9ennkvQ0zUkj!al4yR=s7Vfq&{%>okSY zg#CuqDaaJ+5?ev?r%FZs_&r5_PBL771`^lX2Jrr@5T13wv%gvosBN+)=zS!^<{?j> z&YrIP2@cNq$r{Jti~H6FGR4xwwvgC@cjj-rGuvTe8_N)e$$wba3#>gBccNJWzT422 z$DmtR+g8q69OTcn)qn;uwrbc-vh5SeJ;aT%&7qOMz*YyhH>Lk#EsO0Ni9LgoW;3Z$ zKglpZyc&m$^|lIO%>$@l+b#E%4Da+SCqEj$s%WdjY#n5RcE_>vR0_|dwX)66(*Cc8 z74_IOBIW;HSkYyu`~NMhh|{XtmNP;|t&z5m(_A6yXrmUQaH&xZkq#M+A&QX7zlR!A zc`rnk;S(zt$&E`LRBZ%7gl7s!q(;U!-!CK9b7$dNP&iI^kO4Y<&ooFY1G- z9H_rQ<#T#}DtqeBQ`u4PM`dfBpgZw@KeC?oex@0%(?>6>N^qifjCiZop+ zi?@Bu@UyzMRsq~g5orOlJJHu>Fux_V?A+6BP zFu1Y9HjY$NOazBuD}~l0Y#+lS}8$us#snWvhktdf1jKa(~HiX~feOkyvA>7t5JfC8#F35xON9qHzU$#9q_N4{~ zkASk@2-z9*j%^deV^eG`1ww&KI`H7pbldl$ap=fq!I%*+bBApx6ers@!JM78(fINl zTZSMEYXX_0DA={)eVY$5f;KlMq}z6xSTf#D2vlYm`I_yTz=lKSIa@KFU2KaM*$Buy zYHJ9~?%J%7mTCJEU75BrfsF+Hb=x2uw%oQ+w2T@~A*UB#9Bv*I3+?+WvDjgSZL%s4 zmJC;Cfv(t>@!px3S4kfPJ=fdDsiWVoqYtD`439}8;L1sRRfwx-55Nl>Z12cP^zs?OE*(-r}DE|ScmGi-LkE9@08>4a^AiM@iE7p&tciNP&8 zAmtCi2N8AbTcQ0|wj*o`q<(H|40&k;-DLb>+lu$j+iW763RjnC6zIHUqd@00h^p>r z3d2SyxsZf}g;2b40rdLG_8wTT*qo@`upQ^?S8+Pzf{hl6*KHR?HUrL-*-G*5k2Z(M zW@7L=+i3xE`kVc*!(^`vC3Q6l!vA912&MB(4w&Uqs@eKPc6cFj?8w&StHoLH=ocF; zph|6^8i&vV3dSP!l8Y~!#Fy!s3-J;5LvQ5>9*jF@>p&=l*B-=fk8JxGOM}E8Z1wgu zviDNhP@JRKL!vx~z6n8QO?zjIlkMFJ=YPXi3<;mxo-5}*1s-3rwuM;^`yw_Eg0c3O zaH?jnuSm%hS>a3hE>N|K!vm~>{aJO%p_lX|nv#y?$`hWFE?C`EA4cJ?$(+!(VM29k zbRq6Y2n?q9L=`&)Szg7mqc%5#V|DE9;PDaL)`DtwQDBQOv9f)q$k_p6hhRm6_!=fg z+9|N1)U`hl*z0(;f_($S*IN*E5FKql%ih4Knsx%Lv_EX0@CwNT7{tXGRhQp9nH{JJ zg(NN3u-wN^u6{P zSf`8qYmvQ)Nx6<3Qo6PFD=@FOJ)LFIYTh2putlQ%xRDlkS0f$sanS(#ERkhH?qEk} z>^|7OS0rp%pJh*j941x8(-$2<201Gv2@)PSA|NB%-V-|vw^Jl)1w_fxCdhaosZes+ zfjD-QeU-pgqBO=Hr^q8oWkOIiKyD2=9h5l8`P{F<$rO7JId_*!AAwark4EMzQn-j@r0Tx6ct+4kQlNn&RZK4kN?%3+zXXY(4d-BS(a^3L<$O zgSY_`YdCg_kn@b4Rx$>0BPQ0Nx8c!te`6rdFJgKD$qh1Wj_@F`2@@MQ_6c}kmHk;p zaP^s0{!~aGq}9iq)%Fn_vyO{(@H~=`zY!!IvGdrdxCO3$?T>(AEeIEHzR`Zd#NGq_ zf-g`mkghmsoBb`3ZH3ed;zvB`VGgYMp0&hbH68QA@WM6>p0lU?gRXgu5rlowo(lge?6_`~7cHM~pLF3fN1=q*6+FCE=+?dSGUjP1t!c!xqM2KOC#a41A^fTVL|O>7V3 zcXDiph~bVDNVhs3VwH>b?-?rq=Ne};lyr5>z(-x}g21)8Pna3R%)weB14k1_8N^tn zHeBk>81B7h?=G=@sCN-u0vDr-5kJ|lGxh|ATlgmIrb%=qXxyGfBpONN{ANWzJth~i~iB*YZk^SPV|@D>X(f4XDi z-!on&w!MR2CrVD|=2k^;zsAB>IO7n6ko7U`phCM<(ax zFy_y9C?Z6Rb=>8DAHn=Zj+(5Ts*^%Nz%f*!p>bGc$7JQ?-e>i(lA)~JzeXsZ?5U=Y z;ot<%CBfo6$G3zX{7L*2PW&OdKILots+gx~IZvJsAiUm5WUS_7nhbfraq;jdYFpSP&A0V$J&{W%jE`@OGDr@c1qebh{d4a zpkY7K>?rvMRlUMgodNx4iim6Z{<%+W3dpAZC?_;5-p|3=S}1@+F^)MHIfhgfibbso zr1w#pLGb{=1(Cn9;k>~wplH0KJwB7*pzN0~F`qfQ3m7Lk^25zh288S=hGpL~JEVMJ zpM(iR9J>Ve6_%+E2PJmSw$H|8!yT_M!sp9u;alnUY{*$-pF5gYb%EU~3-%mKpe8)ABU4>jtNWz2?`xr`#lUOXL=3B`1&|p{iHVqMZKR6N~ z?lt=g+_uEg-zZ*hHUfhK?QfHnWZ2!f`z>-T1i~ja5!ym&Pgga_Ya%4Tq%8ZJS$X$W z%(>u5qCPGkuwo_&6!12P-vhfKG=|~_juxdKiUglEGY^fNb)YAoE%P|{6^!So@HA4z@Z z3Fhnz4gyFG;%#m+E{20IatHAjKY9O!_V85Y4kW%R)aP8#qN$Xd&KmgPs^d-gm}w6& z`V$8&Fv8x_kJ}~fIT0oucf3VNf6zoJZb>(2qJSTqa&(p1U5H!ar$|D3M+TDn-YrmK zW_*ND0n-&ndx4X)nX!A2ywhI|COx1A{s&>c5jMg5uw$L04bfPE#UhSuJVYst`gY;_fPmYk0Cg4{}9g(8^FA~Z_%p7QM z9oB>yf0y2SVZr`EiBR?{|3wep7sN+dXMV4W)gC%ZL_vHE@dLHC5Vy+zOIS=uVrnOt z48fSjF)=|-O$U)H;cn^*i9!5uqBF7~;d3+`#)6}wLqkQ?s+r^z3O`TgV_yoSY_lp) zdK##wcXK!SfWDR>SCT(~i0_0!kkVQ4V%`cZf?-KjIg(ZzXPjBQ2^lg=r9w#A<;;M{ zs?rKb>E@b^V=8KIGiHR$yHY!d`;wevjNn%BQ30h3K*ASV9%z$YX;8Jb_ANvXa|WSg zy~Zahk_q#t1ZX0YKF4n5`H`R{3MQQ73cSh4Cu{ThI|?MXm-^$N8ro@-Ovvo*X`GD# zXo(7x2@r8snok@^9FVbK^6bE8R9md`N8D+YyK`AfR?s)_6o6Rm3z69%a*%TYT&e7w z0(ox+oS5>tMzO9?D@|wQ&*D2dnqfwyb1S3pvz?O2zjh`<`gWlOr)gHWItS#gcK*W2 zF^dHqwT~tFC5jWom(z5SJ0*#ONG{M@DAlr0+m~c%Wfty{zQ&b3wQ&MPv2uTPP#-5~ zS9ykKFp^f-Rr_kR*7HKyDv6-}0UCw0ebBZI*<9>kZJa`Dt92u_adP!#v-PQ9A4UI- z%50@ifjOhJkJSjALOI=rJCivQ{tPUAQLC;7-fyJ8Ov}<_PFfcbMr(h_w8ucAfCCMO zkk>%#grmo3t9jHR7}Oqb7AI;Vs|3NO8ZGWqG+NwOhG0vLrrxh;H1)0m!M0j=>^)uE z&0`M1cx@)movke}u}B=YSfh-N;|sJFMoRb0TkIkiv{<`tVl^O`;3VdjbLMJ7)D)>H zVT4JuII94T1Mmqo#aW=Z#vVVz1cOH_j!HL9|;v9&*vP(6@eyUDJQi7 z(CKZhIo=64X#_sKON*tHOI;9u!;-Vk2ZR>%bgAJUZV0(wXu}|KuV%%`d$r{p+0U%z zY!CG|X&vCsc3~1++@wv!qyt)^k5}35A)t@aI>YUw&YHO86Rkg! z2^W=uQ1-mF59V#t`U$x8m^Og1#-Oj%C};JAMmeiZKwqOZ#%9IZNs+~pdPvnVuB+0C z;e;KuTQ69kw5g=wCqHU! zMM@8K_NA3owOd?ETSM8@z^nL1sb*2+Sv1S;9_AB?&*kLjYS=1s^tA2!-SnA~;kzfn z!opFS!Ugde?0BFh@;HRl?yWP{SGX7w#O&_{O1v>h?J?OHSVuz#3SMrdC&>0T3A6d5 zI0`zsDA7i8Qld>fCfn(~tis=Dbr(8%xnl68X2RoXzzV9pc)BhNY;hc)0?$Xu&^1JUQ4FT?iM&gUTg zU!+{x0YSm&s!kfAI>Xg-!U0T~?wrYBP0-aIXI68*#wZDu?UEit$=5<8B)uj?@yzbZ zm{ij_$;4*k=?2aik!P+--7z)6xl9aqSY8w7bF2rZ_H`1}kTaF+laq&UG<8lFSWif7 zs`ZC$sZIrtraCJMc;|*jQ8uFLdDaUOTWX6qNdy4ixhKuTl6KDOjP-`Zw%YP?x)zd- zw39OM=MGLEV+oi#k~i(Q`yipNvwuMs=U$^US2C17NkRCl(<*aJywAQC`W%8Zrj#r7 zYuvkaql*?&f4UJPOzuePnls0>m)2)dZYw(aIPWsn7vkpxDuK4sSqd?aC|ftiD8C5b zJQ89kqC*)Zrz??J6mJkJf#ZAa9`Emdl#yf1gNzH(FXh^}nVV-%f7vdDH4i5bD6O)TcehXZ@DUD?-42^x!gXiT=d~#m5|WKLQR-# zlIuS038bEQhasuk{;(m8giKMK3~4t73z7sDh-?&G?W&xDL)9ts>F?}~VC+S_+Ea-T zkoGWq6aIcQupv@s&P?J{R*+bE!z3Fd!|yNurxS_XrrqV*MS%`!9L6_t()OjQ+nwJD z1czSzSqdTz7bUcM?C&fo*ONh9niJq^nFQq;(*%70F(|e5lUKViTLb3 z=K+Ccz-(GzA0}LKeopJuZgwL~^ajTBdM5v)D}cJsW!6efx@xG;;T3|}*2hWFy z$6q10F6H@ftKq(|HjgYzW9fPca$N-6Y(C)}EV7rO$g918WZ3VB>=h`gplycJA5eZ< ziYTgF!K;gG3hKACd*s5pDP-X7g06F%rm2{^-&s|J?GMNewXf)UgWsG6MKv|b87Ohy zGSL83mf&o}cuS}FTvnP1ncoSqc%Y{1839YrkaOgBXJOd@=WgNY)CXwlQwQ!eaINBx zXTzD68YNBKbyCvA9LQ`=Xel{1iprMsR00BT|9MK3Jrl334Yx~+$Hz7k6kKz5gQQk2 zO1z6RO1oW~jWVr&?>_MtTp(&#Ak(P@9irYgMMC;)@oWglf)=X*$R|YyidCCNzzhzKT2%lcI8|thD#fp={{|0G3#;@1NjtVb2 z$8igM%vVpg0>4XSYyn;kNf9)d{<#6ikKHP`R-0srAds~3KBi%fG;$&|sqQ)`dhjxn3#;gIM*prewA9wz*LWOl>jt-c?+6!b`?`v zu6|N`6SKRxCK752sg<4A%IC08WY8Bc^>R@fM;0a*36vi`FVU4Qu;qBhDOM7oq}W9H zqW_Ed!y5G#B=?YN5ys$J!FX$x@$w6!D01)Os@`XQ}?_{~By$aqP!W0wi84|&dRQ9mgbB0*Y##VIaYd9Q}3K0-qb zzT!Hn@NJ_vUnp-z#a?q<`Lx4~s#*uVmudOs8_sO_X}YV8NT6xa>n=aEndjOIy%xC! zVEqNIfJs&)!@=+btP?I-?4q^pTB>3LL@l>QV51|h&&BMuCJU!S%}M zlMRMI8w}g=HnyPtC4a>CnreTs#QEDv*KREO-qk+5 zYcgK|+AB#P7^FQ|^b_5s(Vh}sXwztY1~qQG))ZWFjge%Uc@}mmml>2;+z~3S4TNYT z-u|ZL_n)?P3z97EhERIV<&bw#<$L+eqTN5_O4FKs5R7o2#;SJrx0IIs*RIX3oSqLL zSlxXZ^4eHyJs}5)oGUWhUtU#J0%q^IHgF7-YN3_OZ!Q|m4)X5~;zti%@gh3}!P@RR z5dDW~7DRmD>bK{id%8)c9fv2pf1|osP>Z%iha8fjctrVwFq`s+M9W7Q%yXTl4Z77V z8oYhq#DPWWFa&qIBEeYAorLo>cbZ7K!O1P%v}Mxce%{1B0sFVEPw-e}cT16dN^2a~ z9f&(?Gt)BO<%E)Zrq0+e%1xPFM#u**P@U@!m87A39E069^i6K3uEV4%K zh3c{OwL(tXB9ZvFhc|imeoWVKf{Yq_q>3+u`W%w5Cp{-t`s@ZFP`n`@duUeV)T z0+Cx?B`~+PI|L4&dpT$E6y|Osf*_{UH5VptW-9*F)?I-%e?$I$H3-ALcM@K>)o!9} zV)s51?Ho`1-nEl)Yq<*F{pQl4pha5TJ1!J03*FEZsEy?bd?Y*R?v=31Ns!}MS#ocUoCBhBeVcbwZ;wF1vVLg_zB5Gd{D$T`1B{?8^>MHAr9{3e9YDZxkt0H-EjGwol}_ zuTYXMZFc06_!*_W{P#92n(1zdZTGuB5yd+(F)-|myAo`g>u!aE3f)^cO1CKFu1EgU z{iP_EHHmrA42u_%ka`?-qe#$PhEB{!oNyE3_%B$rls3*M%yAp>nPN`NU6ju9R(?h4 zJQvoz=6`Z>iF0xvr4qWU{?;NUIc7wQ*cizFoJ3UXy89arvPnPkPk%@07XN*KQYrs^ z2&upF7VnZ|jM5+US@S2KRr}3Nn3?nlYprl!q{P$}ZVDW)b{n~}KaP1ZrX?i#JRWSf z+WnCTg^y|X{`PHdCsfFBlWQ`_1_-Wq6Hp|12q>a#w2i!y%N9>fCO~eEy9yWY0TE&x z9xMFh@Kj(TgQEn&yI)MDIDw*z8)o?18~&%ITE>Ww@;2>3lWX%|Dw zfTs>N2zb5{2`x*m;-L_DWzR)XG?7eG`*`Y5<^%O|e5B_iktx8cdm`ZNE}pvBqlSk> ztpcm%iH5=|9y`oz@3CR8Ivz?UF{9MLLvo?%X(MX2UX160XtK62#{`?kz?m3NEVhgF ze9W=0+`1kgR&3$9ArjV=^a5|b4K+`Rw7sf$nqjLr&u1c~&t_KjG=kYto@&^)qlZ@B zPCDd)H{gP+&k{w{v>k&zJfx&Hh@JHBqh9 zyhZaCgjNJ0WfW<3rxedYj!xxI^Y|fSJbe>mC<&obNd#vM6A$dbrVg$Y`rU{+lGU7K=T{MOGaq4DpcZ zWO%NKtOiQUd6hMxXsV|YlmIo>e1+$PDAtN;3}umIbs6jEUfgQWVUA+GyUjy-n&TnM zr~}UVo`$gPNAg=OH+m=$qb@KPRYD)cVDBv+0@e85WL|xJ+D-2vMa=V96cSsTy`Dl# z!v$|N3wdS3>)DgTo*artnN;k(&yy#}Uz74SLTNw$HX5Zu{u_hGE_*0Vr0{dkQpown z(-?pM*rN)ROR69CL}1){Zz19Mv%Iq*<1mRi=9nkEOpqI6zQ?;;z`dtD-5J4BaYsB9 zTP^l%;ILHU5fWR%5l>s3eAYv_SW^tf`e>+&KIUo2EvOkvm#A?N&yt#!enbw9UhYxe zypiUh$Ea~?%+IpVdniTkFxg{F$XiTXb{~5DLiVL6HyiVJx>Kn1l&1?#nm_VrPii7U zF7k$2LGE#C;?iaA=l*OWfOpP#C`swqZBI+acQGF$)uU<_(+c~#N5b3ZJQSuNQk(J7 zOm2h04DT5Mzr5#Z#Q2`(!yYG$pHJ-?qD!$L>Z*n{)+PoHq4%K^CAn;0W**Ajl&*h{P9 zzi3J1&!5HQ4&HSHr62QD!NMwDT4Z(R+ zUQ(d0kodbNlGj&_Q}IEVif&KDM1Plr*`|5BK_(=Si-lOc5vJlABRGpBGlDXzt9n<4 zMb{JJC0~1plzp`z@`ShPKidA0*V7An4Dk-Y!EL;oMb;ay*6~G<6Yt>b$cdnM^fAv2 z{#pX18~dt|W?OxU_);ftrod=p0_S8ocovlql@`RFNHrE0$0y_ZgNSNhI{`% z`W8xG@Sf#$45i4Jw>qS^@1U z?^`rXl9b`6SG^S|t1hmFw@`#0UA?rG&ma%~Z`wbCQ(J?xa6T;bkzCzN{;8a_Rns7k z;_Ze_&J|XaFT?D-h;c2#tqgh6%4moy^3o>x9PcTSjluZ4-a}!{b8(5(=k<)`O%mMt znfDKjde{4{K=}f6$A@u2U!j2Me|T!K?2TR{x+i#l4u2aS?I&QO$6J~70ln8aRCJg| zLy|$eurjRV6;BEa1|ph!uRc)*Ey{O3+}V@CIh$Mr*M}#POfB-h$&>DqYk2Q)8QQ|k zr*b-Cc&%5%>PlyP-1MsW;xX?U#$H0_L(e0|T@20MNEP}2>hgY_%d(GniTt|W!lxSI z4NK=0PLltrhVc9VnZTCAo|m{{+i^~;Z+5utsgV1nXCIK832^fXYsDhYiygmuTa&Z!b(qlEnE0J% zCuyF|+cV7L93&}zLd%RWKW9C4!XhW==}%dHLm4&yovQ{spRepoPna)_B99SX4M^W< zz4X7Z)`YS2C(Kord_T~T_0Svqlezg`x47JA!i}T6wA<8a^Zg=Fl3!E>Ulupu#IOnl zvK3z>XM$$@3pi=5csCytIMu)LPFaZYao+A>WyKcAWy!x4IZ3C)>;^s=8^_ZB%7^BqPn0=*hPMuOZ{wp$+A?5YdzSoH$ARQH!jTX;1M*6| zhq+dyKT-EvHGGqB#k0QgjAdeSx_2E-h);TkWXJiUxdd!sHRy=xy?yf}w*0N2e+oAE z(r0E*w#^@8{s0U<=bMKOp7(vl*jpHs{2V`f!AJO6He5|Gdf@maUnOiZ*msW(ijfSb zRX*Qo2YJP$lT$|eUKjaJbD3xF`RI(Y0G-*;y8I0%PDu5U!(LJFitjRG74XUwUk#p~ z7k}UPAtZSG<6!Yh-$-0C!#9=Z==J)_HxW~3`zEWbB3@nKt18H=sq$P*{I`#9u6xb* zFM)QiUwOy(GEQ6Ud)LG&W7Klr$4uS0S`Jkr?8H&t_A{80?OVp=9I9Xw#25M8kkZp1 zN1K^_8uotCSCb*NJx!o|yrNk&7E;?OuqnIFs zeS~zq3kmUlnhb97(aiNdh|Kl%ftdGvRxTzwN=ESqL0j*$qjkIQzCgKo`5*dvL&fV> z8z$xXXx6rk^o90VM}FX=*+I%K-vpdm;QK?C2$uNyN!DYbVyX;xzVO)~J=JH!j9-0k z6LfgcH=D_uiI<&_`iI4frTcwZ5|(h0X?=RP3uJD!bM_AEHpoAr73k=iORUqwjXmwfo6Y zKaGQsINGQ1mtRLDF!AmJ64BbZl0+ zBq^)j_YRzl^-qVAA-)dix#Mdh%TbbHgRQ);UnhJ}-oGg!L?^-=uNl6L#K~G7`*dy2U)Kn%2i4=ek_!)g(h zRrV)v$L*g3x3~M+pv~;>YUBsZoC<@SVN>b`#oGf8a2%lL?Q8iD5dZgmJ-E0&<}4hf zi#D%+k2K>U1#RQ~CX)`NHsacloohrU7XhrHTFzqJ!SnAjdy@VI1v&b;A^ zh8|z}UP7|Q2MVPk(YY-tWBuf|E@rVZ(#HvYTE2db1K;yg7Wauvf2;sszwEEWE^Q zQ3Cr;$_+}16vtft=KdnYDYNo$JB7x_a>z4~FNP(6x$IiB3?`?`NClP{1szJ(wY z;yJMw865%Or~K7xm|IaC#|9Zl{a;u4M zxINA9g5rI4O7)oTPo?DKS|T-UkiUogEB5-3R6sU9f3-i2Z(3(Yjq*sfKK4bJqWe=B z8aMd=kl2lPmf6Y44YCj53F}@uInbX0IbYZ%*gBcMCV{@o2p&rvYNv%wWsxi?%buP^ z*?5pQmomhLX8G51NmJ(R9{X-i@UH}&{Y|tR2=o4v#BpKkyoH6jog8D^S^ifz$^DQB zC7AhVJiW#rB-!4lAtUhve>0=pfIRLK*+SMee@pzm&@YSfkHlgrGN;!2Nm?jSa_TCy zed52z6XDJjS!zS+Oo!vYF$Ba=O&s!>{~g*3k7aNA9qjMq|A$_1dGpj5`Cm|$?N5O= z)BH!uSy>#OV%??OBR{1(4bo_f@PD$C^HgiX$0EqTV%b{WSeUuU9KS}1>lghWn)s1D zSv|9usWAk<_3u%Cdv#=}5uH2QGpsyNtCjiV<4y0zr-y6u`D$dr0u<<>0S`Vl=+(~4;DWkq9b-z^0A`{o-gy)7UX{uQx8$P z>wjbt=!F+qyOsM*e?BJ^G;P2?5IkXpw{3(;Mad^D*Q9RMg-2+*XV3GR#x z^cHRMV|qtv-mFQmaf=pNaR+PCIZ=Vf3Z3>A(=b4G<=9d^)D%h@1;)wd%$lKC=p7x% zvzX{3OE5@q-iuk8t=w=q-c$|S#{`b>9rIFbfEMfg$U^>WN2yIfv&qfr7mxt15@}t*gr7PLG`{iCDe*~dGcSkDnsW%fxWVui1b0uc`_JnmZCuE38MvtApu6` z=fQ#ctQyuD8TiIT)2!Ur0u)-9JvYzC;{Z z%3+jX#~Xn@NDaPWR46&*X4|Hl1&E*G=+9FKX$`+-VPH6&&qowQL24ssOUzp%&{+}* zi+PN=JRP#Us(u6z{*C&1sxeM7WW+ax$h<%YexhL{<=GkQZfO#t^IeL^H+}T@@ncAx zWo!;pvjg?4HCA;GQGjqyrKVe+&;dlpziHStM$%Oig2{9w3lb( z3HDzd*v2=}>plH77|cCHifVPiYmEn@kLbgx`+@BZF80A=<%nvM)<&N}P?|;1Z8*%af04aoAE&u=k