From 681b1214cfddb6826f6f2b479bfaf4ad8017f2a1 Mon Sep 17 00:00:00 2001 From: me-no-dev Date: Wed, 22 Jul 2020 23:59:22 +0300 Subject: [PATCH] Improve CDC Logging support --- cores/esp32/HardwareSerial.cpp | 2 +- cores/esp32/USBCDC.cpp | 1 + cores/esp32/esp32-hal-log.h | 2 +- tools/sdk/esp32s2/lib/libsoc.a | Bin 2259990 -> 2258666 bytes tools/sdk/esp32s2/lib/libsoc_esp32s2.a | Bin 477970 -> 477970 bytes tools/sdk/esp32s2/lib/libtinyusb.a | Bin 752680 -> 749496 bytes 6 files changed, 3 insertions(+), 2 deletions(-) diff --git a/cores/esp32/HardwareSerial.cpp b/cores/esp32/HardwareSerial.cpp index 3259ff93..b123d8cb 100644 --- a/cores/esp32/HardwareSerial.cpp +++ b/cores/esp32/HardwareSerial.cpp @@ -132,7 +132,7 @@ void HardwareSerial::setDebugOutput(bool en) uartSetDebug(_uart); } else { if(uartGetDebug() == _uart_nr) { - uartSetDebug(0); + uartSetDebug(NULL); } } } diff --git a/cores/esp32/USBCDC.cpp b/cores/esp32/USBCDC.cpp index 6105d40c..bd7d4569 100644 --- a/cores/esp32/USBCDC.cpp +++ b/cores/esp32/USBCDC.cpp @@ -315,6 +315,7 @@ uint32_t USBCDC::baudRate() void USBCDC::setDebugOutput(bool en) { if(en) { + uartSetDebug(NULL); ets_install_putc1((void (*)(char)) &cdc0_write_char); } else { ets_install_putc1(NULL); diff --git a/cores/esp32/esp32-hal-log.h b/cores/esp32/esp32-hal-log.h index e1d4e56f..fd4c52d4 100644 --- a/cores/esp32/esp32-hal-log.h +++ b/cores/esp32/esp32-hal-log.h @@ -75,7 +75,7 @@ const char * pathToFileName(const char * path); int log_printf(const char *fmt, ...); #define ARDUHAL_SHORT_LOG_FORMAT(letter, format) ARDUHAL_LOG_COLOR_ ## letter format ARDUHAL_LOG_RESET_COLOR "\r\n" -#define ARDUHAL_LOG_FORMAT(letter, format) ARDUHAL_LOG_COLOR_ ## letter "[" #letter "][%s:%u] %s(): " format ARDUHAL_LOG_RESET_COLOR "\r\n", pathToFileName(__FILE__), __LINE__, __FUNCTION__ +#define ARDUHAL_LOG_FORMAT(letter, format) ARDUHAL_LOG_COLOR_ ## letter "[%6u][" #letter "][%s:%u] %s(): " format ARDUHAL_LOG_RESET_COLOR "\r\n", (unsigned long) (esp_timer_get_time() / 1000ULL), pathToFileName(__FILE__), __LINE__, __FUNCTION__ #if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_VERBOSE #define log_v(format, ...) log_printf(ARDUHAL_LOG_FORMAT(V, format), ##__VA_ARGS__) diff --git a/tools/sdk/esp32s2/lib/libsoc.a b/tools/sdk/esp32s2/lib/libsoc.a index 16840d4cf2ee183a966efe2f1aadfcd9514c16e8..c423fac41ea65eda8795989c542a8f4ec9de2a02 100644 GIT binary patch delta 15441 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≧3=I2`*yoVgcahj{kl4SG*jzFQ z4@e@hHIUfmNNhI{yB=C%hk`gzb_x=^7>V74#GZ)6UVy}2kHp@G#6F9}zJtWBe~rZX zg~aBRMfgSniLH*rHbY{&BC$h|*vUxjA|!SrgbhxA3=<$6Q2Jw-kHlVw#NLaNS zG>pT*z;H_r;nJ5#>>o&Mc6o#vF(kGs659lc?To|@LSiS%BbEOJND}o(>^>y+TqO1y zB=&A3_9-OxO(gaUB=&a%yPknf0pS}_B(@3?+Zc)MjKmH=VizN^8<5z&NbI>t?B!s# z0XWSuoB(qm?7K+p*GTN|VD@yGBBeATA4PmJ8O_wTBIwQK5g@Hkcm4U&5 zfq~&5lcqU9=#la#n-OhqnWV+s7CIL8>||8p)Nx^8@L*tIkeZ%fp(HJN*n`&3dnfSN=MLa8EF2Gfq`Kq0|NtS8xkbQ7#R9g z7#KivGB7?&4m2|Y8qNoW1xU^#jsdi;lL0ip%#UQ=9yIgjsW31cV}XvpgEYbn1WlKtUt}Pe2WXMleH)CIiC?36Mz;3^EUdFQcjBabjRlgD7EOV3@vVHzSwO z9R>ylcDNV=gOStp33iNPLhqn@VNzL6)AlfmS-pfh1LkL!cxc=*FffQg<#-qv7=EK^ zFLIi$Aj2dk`wglFravGa8pR9@3=-4-i?B&E?Qxo3qtBzp`p21pL2>$eJ{Dz(8SxAZ MEFd32T?1nR0Ec-|hyVZp delta 16258 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�H12Qlb%I9HFG7+18Pf1Bm@i$1k5Gu~e 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 KtJe<8SN!&+AH?Y~7C zH0< Cx=%&` delta 245 zcmbOOV*hL%PfmF6=+*yg6w9~@y6Yre;{{T>tJe<8SN!&+AH?Y~7C zHsYp$L3yUr!4?`nWs%B270UKyKX&%LG(Q4WP2137kaRkNpkzsOg7zz E0Jv37>Hq)$ diff --git a/tools/sdk/esp32s2/lib/libtinyusb.a b/tools/sdk/esp32s2/lib/libtinyusb.a index d66e4fcfffccb36d6ceb001b4b56a2ee8fa9f506..459d4482f39c7b93ee141ab998761eb02218362c 100644 GIT binary patch delta 27860 zcmZ4SLwCo0-3c;mCMK4a7A6ywBI?637?_YSGm`-W82jvDV8(%2STz`^h3i2Ev93MC zfDN-5U0|RTvwLr0z>4>rVPM~LrXEBP#2m9T81P}vwRafE!S2>w^Rkn2CioGp~e!S(Sl-fu&xMfr06U zxDx{d1G6Cm0|P4yyQCQd12af~m5H5KmVtrU4fyVM(hk=20HM0qb#|(1cdg)UP3=F(1tSsz@RT&ugSn3%W7+4uOcB?TkFoW1E z+R_XRY+{l{j0_C?+te8tB-r#hJ~A>e@T7_|Ft8a4gV+oL@!1S)Mqn#hWO(kWFfgzg zaf2Md!L!vA#1R2;cz8^vPo2o9U!Tm$z@Wlr&e6rhz`)}m!N9;~$q7=xz;h6!+6v5J z;h7=Kz`$k==5X-zh%hj)*?>7bJZ#Ji3~aVwjsQhF|iVBlaY z<;Y=XVBopU!N9;)CJ16P@Wk*iFtC+FR5S3gfD#tJ>U4w2jJAxa)AJ@XN=9B`V_;xg z01iwEo+5Sz2DU{)o~#TEG7QW`%nS@7G8_yHAJ|G5IY5Gw{A-Z7tgUO82VM~=67}y#aIV%|%7(_(djTji%njzXHL}fv| zRtQf<)YXK6fvt^E>^lbogMwImZUF;Z2cytm4h9Al(KT8O3~XJDTzs4i3>u=p45kN8 zVU*HN7h+&wn*cG}L{!a;fq`ujqp%1k1A~QVn;-)N+hj%oDNY6k8&Tou)21+L`aRWP zU|^fWD0H8Rfx$<#2W04cMu7l!28J7=DWG6m0P)KcQA<#`Eo2lo=VV}bA=(E@e2X9! zy(+)!MGn1j66F)nh$doFfuSG@UWOOFt8n! z-N44cpu%I!%fP^PT=qU21A_+7F&PF1wo|;!>$p(7}%~0x-c^^c<@+(l-&Z`9l)a`&%nTTo9iwE149VUWRRXm zJSmI}3=uqHObiTcPxvAj85m-C-WgAKp2oPhz891QSs55a4yZ9O@UST}a&)pY zFo=SaohqXsh{GVt1d4ezNMx~y&Id)SIwZ6>82DH~VaUhg%+A0d(qInCw)Tu1cR+^B z2YJhZQ3%9g5S;_cJdO|^o2UXC11|%c6QdBQY~vAqqCCB4I-_iTi5>%k09ynjhcO2O zgXjuS_K0SL}UCvqV?3(>oh3=C{}5T1i*#q^0Y z808qJOy4kr(aY2xl;V~$Dm`UpV36i9W?*1j2IZK6vdMBNhYQ5vVwM2qMwZRf^=C4Q z>px~?U|`n~?g16zNh%Bs>;@t;7#J92rgAbcFoOsdK9H!d$R-8`2H88)OJ_0~s~uxu zVBpxncbJobK~`Opfq`QugneI;fq`Scv?oaEALZ%iW-`h%vP^$BlTp0>1Umx*$6<(6 zgaQKt#}P1_^A;NeLje~90~ffmU|>$*VqlQ1Qe$A?I3^7emyH71bs4N!)=_|gf#aG? z3CR3!#taM`Hz4d!AUE8R0o%*M$H2hx9>P{OWMJU<08-<_AbUcPfq~-(h{GUj3R3hF z!hWX0z`*faHWXxNC&&YTAZ$}mMfD$SkhHZB0|N&GBZQ+p{lY9pNexa;1_q8ksMvK8 z1_q9PD97E5fq`QJqYTJz(zB)u&SsRX=Q3wt;F!V)wo+OY6aZ799AhO0299Y^PK7iB z1IKhIXE(^u8BmT7$jLLIoEBXM298-!&S8+FXG1xcKwh2$^}7&uljT0?@)L7#zvV>L8nY(bjVKsiEs3=A9#nIPel z!~?Pw$_bjDJcm)ymI>tL6-?5Hco-O@cY-{&3c}$8C5MkZ&?F?!!2A%T;w>n+)-uU} zB&1cRADqJ&P~RiRz`${mNl1r*fkFD876SvvDJaJZ%m78=6DUVil!1ZcDU|b@pMinn8Hl6Jz#u&j)Dq%j76hes>0h8Y zkbrW$)fpH#q@f(;>AUALO3G+xGca&yF+&2S7o=Jn%6TO`{li>F>H2(7fEqB%c=9nY zNXM8mFmM<`IU1leW(4J20L6kalyey5a}y|MJ}B{+LOCoN3=AA*P)0R>}1?sCoac2$UGcZW|f&6O&<;((wge{bl1Bx^|D5o5hN8F&k*=WMR zz~K(%n1V_QPi9Dhkp#ts7nH*ViX|VYvW=jS^aXKP7#O5iO_!a|C|TbGO1m>af(#7O z8$rrvLOHsspd16`ScAf5Hk7jm6gG3AoT;Gbo(JVLg7nOXavVU3e*u*91!TZNC}#!8 z`-?!F90mqyF;GY?hPwD8$p1^AoEso7F9WG#V34+F17#m5M+6klE1(=@4h9B}l~9f; zD=7OwIR&6_Uk%}iOr5T{fKh{S>U6IKjEeQSprqZ*BDYe2fk8Ufkb!~IlogU}#CRAO zIL%lg!TE)Yfq~N!D)U*Kfq~NsD)WMufq~N&D$}XPz`$t-mANX#z`*GUl`%4AVBmCu z%AC|-VBmBG$;2}-NWW!aVBmCvN=-FkVBquwNii@;8}KtQaC$*yn%Ni_IDMfq`7#U) zoPJQ5Oicy`&OoS)j1~g}XAne2R&2WGLPi~1elrFJ9tputP6h^U5ndZkCLsm}o_|sd z47|32pf(f(&lPS423|WpkOT|QIwb}MUVAPfAqEBko(t1AEo9VWJUji)LPmx9O^OT* zye_I%LJSPDhRO^Kyso0Q3=9n10=%A_Q$ePd$ucnTdh@O31T~vC3NSG6`tX1{WGp;i zIT;vueZd?Ko=9;923|j~G9Ct&`+5uvy#CDLLZGTsh=GA~p%4SZMj-|UIR@rsAgj)R z6a*@5WCL;Tm`-n8#3(GV)SQ8VFA(fZ1_qX|($kkLVpQWjWy-+7FTwmxh=GAWXZrO; zjA~2|WTyXL#3+%)BhSDfU@E?l6XdTvMg|4}GcZSlr<|XGLBJf$k>KfOVqg%k-~-j+ zG7KzLQVa|NmdujE3=I7DSQr=-1Z)HZMHm=((hL|F1Z=^27qktV)4-3y{{^^a2 z8C4lArY~R2s9xW!!oVQl$~;?`fkEC-5Y&O?Vi1%NxF^oQz@uTnz#u3IHRLQm1B0Lx zn8U&&Ys|nPC=KRt@cd9^U=Wl6b9i{{IT;uPWx*T)o?deX20=M6M}+5w2?K+mJeVWF zvj}8>g80HjP6h@Uo>?HCB3Md+CtrwxK~M?IQQ^6&$iN_|4CZL?*n-@n0_N!OsDdm~ z1#=8|)|xRe2&#cOCOj`e2B?EM7Cf7#uUo<>nK_@0fk99UEat+q9K_KEb3Ay~gE%^1 zjt|dv5Jwlx3E*K6Wnd8019L)nx(pc@1ogq32%blvurL5~VtB48F)#=kf;kC1^QRju zWt6J-&}Lu|G!g$N&cMLJD709BfkDuek6D6&!GTf8O`U;3&>F0sfknuNk%2+b2Fzn& z5pv>UU=V~v8wZQf3poY`K}fvuun47s{2-NXU^xa3 zp$<^&xr2Eu96~Q-7#IXSz&s8Pp)aP>b(S$o)pO}FFbH~sMMXG-cAGLV2>O6|5*$J; zAf7LnC&MAM8WezjV4ebp&}IgG1<&Bm;wBAeg7aA;hc0z#td| z<{5AZMSy}N7|b)_5PIka3fT}a*MdXH3Y1tv!8{udArU?X2Ej0KXOP!8gm|?W7zD$? zyao=TOkD;B!3aJN2?mA(9721hb1!F85KLv36=7hIEe9pW zbfG5_3=G^XLei{dQVa~rg)9sVLW)A5Ow7V4&!F5Qz`!7+3gyc&DE|;)U=Y%T@?{y6 zLpT{2gmj^N83yGUAig1#FU_EQoq>Tt$P~(#s%KEHP+?#YvV;mqGAI{mFfa(&LikML z49XQCz9W<`%AoulWS}dA&nUv6JPqUkPbgoQL0MgmfkDU@$`@i#ULnN5AQTAY3o-y z7?gK|_?b{XH-mD82?K*rE|ky3pj-!Xa3Pe>$)Fsd%fKL11mUxBFfu6LQ<|=_icyQ{ zjoI{oRg4-z$3X_PLliK|F(?;<4CsdPWf_z+K>U6vUxqQV+@oH^96(Jjb~i7=&(uISY7hf;hLpoFzQZK%CoP&I%rX9tH-X zJ7CTlo^lZ9E|{}{rv=2h2j*=*h9<_a(hEeA<{1M@@}g${yv-@!ZyMj>-hT>k*`WEh3!gLpr|JOxIfH6Y$E zFi(Y1=m3cK8_d&S6uPCrz##Mo%+p~MVgtqgUog*rQAk0to`FH=ADC;xDC7o`{14_? zFsgq5@faAvTpLDpcTh@Ugm4`g)k8pBCJ5JsQ9T>PWrlD)7}dFy85o3EAY30t^*9ih z6~YZ*RL=%+*}&X-h7d;eHV~g3%x8#TRDTcRazMB-jOx~)nt>C-O<+_H1#!6`+!RLj zY!H_l!p&e*2MtyW@j$pajOtFR3=BfN5N-jZdJKrm2jP}5s%NS))H4Y2L--Yp>b#&j zLjc09VN|yRaRnjV21fM=5LXDoZDCZ;1#yKT+zv){9(4u=ArT0-hf%!=#1(~bCornd z0dd73+$oIeD?waw5VxLzVFsi6br4?y#Ajfb!>DcvN?MW-?gB>jFc4P?!d=3so($qj zL%1s#)pvuqG7#<>M)mt3t}KMRfl(dQ=@62GaJMk3%YzCdc?fq0qk4_dbkB{9GWA

iqGfpE_-s;>cYRUzC9jOrzzIztV@y~3z|4J4}$;oe|W z=LD5q8W8RsM)gz>R};d0z^GmX;%YJ0gVWd(M)i6SUmGI*f>Hexh^qtPzF|~<4dUuT zxE~nR3s@N#g!CZXFO2FOpyE#-!u`Rhz8b_efN=jXs*8h?i6Ml`z@)AR;u=A?EKK$4 z9w5FkgwMgG{s+W0fpB@4)D=L<#uUO8U{XH{s;|r-ToER9e~_#>ge$?M{u;!!fN*7) z)TKbl#1g_)U{W^(ajhU+6()6W5ZAgM!q;F@{{Z6KK)5KUMPVGH3JFsYY{a192T7TpK2J32=i6!gXL$PX%$EAY2zFbq0_{&JeCgJ(IeWCIf?z z3xw~(r0x&mx{ zJ1QE&UBRS&9mI`+aMv)Y8;OG&0kIJN1}1eMPzx#!!rj88o(AH^L%2Jb)cYkE7=#ia z+&xU{#-Nm#2;m-JQV#)flOWt9OzMdsZZd>>f=QhT)MQG5aL+KQ%YnG5U~WCb1t#?% z5I+sfXSl+o9uMNCL%27X)R{qTrwj=94wJeCC;&1c+y_kR4j|bq2=@t-x-W>E4dK3E zQr`gL=0Lb_nAF)o&8u7p_XCr%*)r2WnciLbw6U>an0MO&f$8!mOSIl5J;%G=d_S z)fquOpbm(146`~Ph}#L_CNQf@gScG~ZVI!y0f^fT;bt(a9|LiFAlw{gbxu%cs29R5 zU{)6car+?L5@vNKGX@5seh9aMS$$qTNO}TVHAp z$q;S_v-%1n1_q%i5N;2%`ehJzDug?MS^WWsI}O5}!mR!l#GMY|&R|w=0ENd4Mo1@M z4zv1OP|}+TkzT;8J`I%gWH zxF?v^y+IASB@pfzX7#fm?otT%0<-#a5O*1bdxcrO5mXi}hj4E&tMh=0lNAu|9cJ~L zAnrV>>tga18m>U?CKpnC_%nWS&pyFjCBXgfL1A{bU)by)68I?4H6&V% z)RAKm<6=-Qo1V6d(F7u_ge<%oF06?x{9zYkB}BCqvT)UIm?4hH!u#RE9>~Hhdl*dw z-)S%~i15I&PMgYtYP1_qIdP`)IC@8uaxNDGgUDnEpHY-SIa`Z?L1YSq z&m_#CoD4F5DumC<$H1iQIQ`*1MiW6(Q3eK)xe#$kK&kC#G*M*aWnd6l0ug4DVo;XV zVPFth3gI(KGAQRwuinq-0#UXWBFrhypj;rxz#y^?!efL}%IG`&zyU@{zWGKB3?ky-)+q;1;q>PR7#;it zxEUBkOu=FbJR6i57(~p#92K6)AdWehqrsETz`!74$9`5Dv=m}5$iuGepb0+%p2Z-J z4|}){1A_^V#PqU*jH>loatsV2F<`AOJk9zH3?i{$jt5T|h!Y3q`0%uW0ydRhO_zZo zfG1j=fk7mPJzE#FNaC>?1A|C0`vzUmB8guhXP1EW#PAfGGcbshf;kC1VxZ(w2Ii#j zWXdxzh}5!w)nyQ5$ly6A#K0iZ!fvIve!J6-z_qon0WkcwGgT1kSjK~sLjLt2E@ZSOflVj|#Dfgiq_7EPf_RYenhZ9ftNaWM zB9H-_95x{ZSq26X$cRk=o6ud5O308+37gO>5DzkBQ^6*b3R)`y8MCQj6Y2)>E`S}{ zz$P?<9n`FV4BND@3GD_+LdI=6*o4ACISw*#)59io4#b0u+)Q8-dI;h{hHj>?3B3dH zAY(T(*o2HgWd>yMW)7Rsb5PoV4BjkY6Z!(;K}K(uunBdTFw`@MK*n!YunA291tMes zXAPUs8W0aMg0q25XeWpV8N%7ZCN#yAfk6Z^hO>iBD8P_`K?E|0vxiOSv>5|~2xJuJ z0GrT6kQ`(f=Lnln8YrDXhH*}?38fe@Fi46(26E1@2~~koBxEG#0-MmJ=_ijcO3SK( zQV?X^<_?=s0Eh<}xOu=PR6L#WD5JFHLy+KWaFD)X6OuDwU=V=}(|lkP(gyJ$<1}B` zge*Wj$Uw~xHX-flp+^~=c>_Uy`Nq7=lz~BZ=k%pV85I~ArXM@Xs4CA3T2-MXXUf39 zsHJbpz`&%{s01P%Oc@xMwJN4_9b;6hpQs8FN@oTMy$4OEX%#UuFtBJX=K+zm%nS^y zTHAO)WCv(Lo7Pd#@)xbi%nS_dT32{LzV2hJM z95sl<91vR_!e(Y+uzSrI7$h|z>>eow21zXldjrUE+7NamF9U<54uq`=64!;W zrPvu5B=sQdOb!MHNqq>ro}-?DLDB%inF^9Hgs_)_G#EkHJ3!*b5VkppZ31Dtf-EqF zu#4px7$nUgY=2P(21#=Wn^%m1LDB-k&IXBFLf8f%aVrH=a{&ehSvL^J8X^%heZmPw z@p=Ur1_ntxh|p651_nuc2>Xlx1B0Xkg#De3fkDy{!Zy-nV32fzuvc+2Fi1K>*oQb7 z7$jXFY%Y-7T_NmM#taOSZV>h>keTifwjwCNJ)p7jMv#F)(i0-lDa*hh=>=h{fHZhR z*!w_k_kplqvobJ9`a;;XAV>H?*cOHi43hp3_9rC<2FU;jdkRQ>AcXC##lRpL1YuVy zfMO*W!kMkWz#tg{VaM|`Fi3_%*!3WG7=*nQ#14nB<;)ovBqJbfGY~rx!uA8PqabV_ zVFm`tXbAfW$OADD_5)B}h*dB(uV-M8)dr=vIEaKVNFpA>b_W$t2@v)Zbp{5>LIfU)O#lRq00by?d zu`40$GoVCW1!4aMd8``3u9ah8kgS2QB|#xt3r!RnAWj`b!W_h|hp-QWeB1zGp8{Fj z2xe>7vNA9*Msx1~&+IcWfR;lr&Ut6Uz@U>o{nKeiJ4S)&hG!VXxj)!4Fc?`fFfjbF zogRFKQHzPgZhHM0Mm0u}>C4VADlqCyKYoVMAmNN50|TRz;wxJQ2GFuRcLoLqLlB{0 z$G~6`!@$6xW5>XdZ_B`7%oxLHV9XfHXux2S!@$5`VaLGG1QTa41TF4zv14E`tYKha z2()8hU@!qqqQ*@RKg*~nnPtboa2~8UiqXZGF`Chs!N`Pxfgx-9#Iuaj_2w!n3=AMF zRlsJ>EX=?F!aMH3?R%e#b&O<&As;(3?M9{%gAOiQJjGRgk_`|+02q9g+YJBX0=V%*+; zj**F3SdYP8(nd0mkD1Sk+nU>wn}NY%a#y_c^a~dmLl{-2AH2sZtk(uwSHS=Yekc=6 zVH20&+U|InaV^L8hj$r|vu@w;m{Eys`-7K^JGr)R{=%rp%u`yN6rYip6Q7xvSu#D~ z0i)>l7vC9IvrT`soymRs{eO%bB&JUnXA+pcS)55_y3AP?k?HmlO#7$LbK(-1?qtub z#LEq~n}GpjJJWQ$++1FQl< z2rw`(SWTa4%OP)=2@wI4AmKVN3qpYSeGn#?1o7uie<;NyFL)R%00|Ny25yF1(*>oO zD9r@LQcFhQ1_lNYn;T>>0|SE|R2<|T5Sv>XY!w58HAsS$fx(f1fx#Zi z2IVIZALKZYpFwPHkWU#H7`&ir5*Qd5!a!_c1_lu*n_Cv*nKY<4$O9lYH^{{d3=DZt zagb4YAp5!HAsWh{5}?2XvAIDE1_p*kkT@#?g9QTvgF1)}vWbC#K?}+Tg{%RT4e~K4 zQHp?8E`dS>gh4?78nl3_0eJ=#;Go_NLm&eKgCtY}WG;x!tqgGx$Xy_VKt2Gmxm6(I zpzRSN91IMgLe3bf7vvidn_G4Ip#|*Oldry!pKh~=-NVoblmiTw?U&BF-V z76S321QOd0iS3QVjznUoBC$&$?CIMVvkTVuKsaDiXCSecBC+=&u}>qhZy>Qbm=KN= zMPe%Lk~8Hrth#I8kRcTewJ!meBoTEhd2gM&!Y50Kbz zk=VbG*zC**w~HXLU6I&9NbGndb}@tvDiIhMmOwaQe{4izpGIQeKw`f}V*f;9v$G%^ zB#OjVMq(QxvF%yv5gL4vB%+bnnMmwbBsOT92rT3lB8jg@V(&#_pGIQegt0;Xe-7g? zFfe>YVl#spCeWNDh{TphV(TKYt&!LPNbE)=b{`UZ1*k-Z`Cu!O#33a1c_j87B=$=r z_BSN978@c&&5_uFNbEQSJB%S4!C|OCVz(l(UDy$Z1|qTJk=VIN?CR;A%h{FdHz5ff zKw_UmV!uUV|3+eSav-b}M`EiYv8|BU9!Tsk2pbf)3=E(xQm{ZSf=GbVc>@x=4~abo ziMV$B=H7`{R4^3!i5NG0VK8|65AGu?TN$=MPipBv75LU80x{UU|?VX z?SF!?XCWzChQ!{4#NLO*K83`-hQxk^#D0gw{)J%IGq7?SLSp+Pv15?fnMmw1Bz7|rdjb-BE)shc z5_>xzQXzB%N#Y_B`yLYeH4^&=5}TDD;WHs5wmcGB2Z?P7V}tzf2IDX=Fa#s96Oh=s zNbD*kb~_S#3KDxE5_=sIdp8pM1V2(C1RC;(#U*HQJdFJwNy8r`Hm3l>$6`oqWhAx% z65AGu?S)|1GlU~J3@J$LUL^Kx-Be7XT5Iz<{V#^`1^+4=;XsgE>#DTIskl3L}>?9<1J`%eIiQS3B z25kX=h3;Y`@eN4q`n^aT(E37{2GGV?82bs5nvY2Ae@JX@QG|~rkl3n7Y$GJLJ%kNT ze+)hl4k-OGL?W@%kl4jY>;@z@Xdge!p>vSLS0S-M+x1~;jv1{w#2C8*6v5(kjjXOY;qkl4?W z*k6#?pfO^YnS3$`$4MixHQ?-e1_o0&hk?NfiS3WXjzMB)BC*Sm*v&}n2}ta@NbFTe z?Cl^nto%O$;y}y)i%9HyNbJ{0>>o&MR#}8Eg^<|tNNgP>wj~m~9yBut3$9=!i3B8e zE)u&6iQSIGo`S?)h{Rrp#NLg>J^^8a(;vfC2nUq@7#<<9-y^aAAh9{+5Iz<|Vk;xD z4UpKjNNg`8cDNi;`JaL$QHaE@Lt=L$v1cH$mm;w@A+h%(vCkl}Z^GCh|38OuKm%+@ zY-V|cF9ng<@JwyVuR-Q;e!y3ND}=>?72wn)ky4JNbHkH>>EgI z&;cv3wDk>1oK*qtv3dp(1cyNxiEV_$c0^(aAhF|-*m+3oS|oN45*sw{4s*~dusA6E z85kILf;r&y$8Z9PeI1GY42k^}iOr%2_YH$E5?cw0ZHUBnKw|sXBXQ!8*ttmT8YFf% z5_=XBdnFQk2NL@@68jnw`ze$S_Wu_s2jqWdC4_H;kl3Je#$Z8bfFy2@#P&mC$0D(F zkl58o>@Fpw_Ww*Ii4{of?MUonNbIXf>?cU<&q!=0WrSx0k=P1wc0B`wKAgkAV28x^ zMPkPwu|d1FU?EY3B;JX{o`J+(j>O)E#6AjQ!^;0FAP%(re~iTbgv4f4LHI@hi7k)B z25sblInEYI+y{vrjl{0cLgG{+u{)61(~;QAkl0(1*hi4qmyy_ykk}uQ*bJ&*&w$e( z13!cVN`DM;NNmvIATZz9Ac=b;v7?aKnMmvkBz8Lzdm0jZscJpg6<~|EAW48uvV&QC z2}%4R68i%Z`#%z!PYq$FED~D>iERyIgZ%FW<1jEVL?W>>kl5u&>^3C!R3!EiB=%+` z_8}zpMI`nEHKg|cdnAc}NNiqpgl}Y!*xE>JD{29l z3le)W5_=I6dm|G2Ks^%YJQDjJ68kL@`wtSETNB|MDI~Tg659fa?T*9_gR;T?Pla+o z{x3mdHzTn@yVzhkVj+_F1|;@=B=$KZ_FW|Q8zlB`O{DUlTMOYE2_&{P659ib9g4(G zMq;-hv1cN&S0b_R!P)f;4Da9^1_otqgd>cR*r3f%FyF6565or&{)EJ4(m|MGj>L9H zV%LD!u=2kL#DSLo2a(tpk=Sgy2tz@q8NnRnjU*n8#GZh}UVy~Dio~veio}u9Ls+1N z#EwT|=OeL~AhEX~v5z3JuOP9XAhEwd*x>ZXz@m?^SOkf!g2awQVrL?;=OMAzA+h%% zvCko~nGFzj2^%1l|H?=b#z<^uBz6T7y90^67m0lqi48g|78Xsipp|#fDAt0pLH;*~ zaTpjFT#(p-NbEQyb~X~b0*T#<#GZu2o{z*{gT&rxh*bXHN0NAh#QurIW-~$xIwZCN z5?dFEZH2@JtuTd!Lo*@yzVaP*bcObE+A+eVru{R;H4hz zC>b!EKw_UmVqZaG-$G(PL}I^1V*f&7gAVzGg`BuKB05w-i{fDt?nn~BNbGndb~X~b z9EshG#O_C8&qiV|M`CY=u|fXd592T}Fq}qWUq@m;MqNyIgG?UkHo%>#D0#%{*1)_kHqG-LWG1k5?dLGtq)~`{cjEBfc)={#12Mc z$0M<`k=W%(>}Di(KN5R35_>rkd$Sc%`+q-@#Azh~th{F%r8TiQSFFo{q#`jKp3KV#CV+-5?IM{6CJw zzKq1akHmhB#Qu)NX0}22o*#)Vjl@<1u{l7I&A?EvWy8QA4CR=DB%qFP0I~TXid>M` z5g;~HO%jOB1yPd@VnfZzhMEalyj=nkhpMj!v7u%*L)hT-$It=dKs8T9V$TDyp$qxf zg4j^Ywt?7C@x356RPRM3_ERJ_mn|Yx1VL<8h@(Yq>lqk?p&UIV2_svGIB4y=HAo!l z12+&G>H{w%wm*msH75dzU4X=HMq>BC*dYH;gK-!b77 zVrL_<^O4w~Z3m3d_y$ohHa}=dJxBn$ykChZ%HoAapARHxgSM$_DKt zQHHWX8^m-V?0WE~63`xLkOiQPB-RiK2GEW#XC$@{lnvTo5(H)YFfcHH7UP2Sf;OBa zK*d3u!E&K&(9W1jC>ykOq7}*pCF@?$3SW?B&_0TZP>B`>28QJzHpuG?3=A8P*gK(Y zP-q=QVxNMtK_Pbm$_AbPdkxA4?TotvWrOySJc6?2Qy3T+UcfjE3=E&3Y|uuMzfd-4 zXA5YBuMl)&2`}hy5hz<2i48if6{H3f)S$wH5ww*Bv|VYs<0U3>Hqh1{Mv>`iLCnF^ zZ$>gnOrOcbtO8n$4N|)Tl!~Ap-h#wF0Ah1Zx0}nVKmBPGQ^0h;Xr^pN*R<$nU;srBXul08 z>_9mLaDvoxkC{cn;2Nmov)BmCw0on*t0ovvWH4}813y2BY?gr8W zbM1#-28Iv=NH~CYJb~mu;lK&nRKvhv2GRq@4Gs(pYOwG|vP=e|5Ud77EOTaHh?#z| zkx_U$i#NM~uFF0Kh6?BgGf*0YSpW)rn4>`Ym|PebG{E|7)j^l_Acg3jeGCjXP$NX4 z;Q?}^1De%ZE({D3U?b|S(Tw=9kAVSHc7lQpwB-=yieNM&oLm?fWT3S+$W<^G`k|Sp zv7doKfC&<8pgasSFCJo^G1xMY0dal|4BO2?EC>b}2*Ozqg>ZGEZPU+%v5ScoGcqth zTMA$e)@=+77GOV#wnDXl#TghFirW|%1RzokXwI`Z2nvbB6YRpGlhAZEw=poB0qc_O zMbi~__8UnY?KhG*+ixUsZNHJk9Uut+ Dw=RW! delta 30823 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 C9nRnY