From 8583ff4f02bfd3e22ffa0aaba54cd1a78e83dbee Mon Sep 17 00:00:00 2001 From: Olaf Rempel Date: Mon, 23 Jun 2008 15:33:07 +0200 Subject: [PATCH] working version --- at91_init0.s | 2 + at91_init1.c | 2 + eagle/SAM7_FC.brd | Bin 82261 -> 82291 bytes eagle/SAM7_FC.sch | Bin 405792 -> 410067 bytes eagle/sam7fc-bot.png | Bin 0 -> 41644 bytes eagle/sam7fc-sch.png | Bin 0 -> 207738 bytes eagle/sam7fc-top.png | Bin 0 -> 37411 bytes include/at91_adc.h | 29 ++-- include/at91_dbgu.h | 4 +- include/at91_pitc.h | 1 + include/board.h | 2 + include/fixed.h | 34 ---- include/pidctrl.h | 2 - include/tdc_proto.h | 103 +++++++++++ include/telemetrie.h | 152 +++++------------ main.c | 264 ++++++++++++---------------- src/at91_adc.c | 192 +++++++++++++-------- src/at91_dbgu.c | 28 +-- src/at91_exceptions.c | 9 +- src/at91_pio.c | 4 +- src/at91_pitc.c | 35 +++- src/at91_rttc_test.c | 25 ++- src/at91_sysc.c | 30 ++-- src/at91_tc1.c | 20 +-- src/at91_twi.c | 2 + src/at91_udp.c | 38 ++++- src/fifo.c | 4 +- src/fixed.c | 389 ------------------------------------------ src/flightctrl.c | 264 ++++++++++++++++++++++++++++ src/memalloc.c | 2 + src/pidctrl.c | 26 +-- src/telemetrie.c | 273 ++++++++++++++++++----------- 32 files changed, 979 insertions(+), 957 deletions(-) create mode 100644 eagle/sam7fc-bot.png create mode 100644 eagle/sam7fc-sch.png create mode 100644 eagle/sam7fc-top.png delete mode 100644 include/fixed.h create mode 100644 include/tdc_proto.h delete mode 100644 src/fixed.c create mode 100644 src/flightctrl.c diff --git a/at91_init0.s b/at91_init0.s index 7bd3a5e..60e5dae 100644 --- a/at91_init0.s +++ b/at91_init0.s @@ -1,4 +1,6 @@ /*************************************************************************** + * sam7fc - stack/bss/data init * + * * * Copyright (C) 01/2008 by Olaf Rempel * * razzor@kopf-tisch.de * * * diff --git a/at91_init1.c b/at91_init1.c index cf07a06..49780c8 100644 --- a/at91_init1.c +++ b/at91_init1.c @@ -1,4 +1,6 @@ /*************************************************************************** + * sam7fc - PLL Init, IRQ/FIQ Vectors * + * * * Copyright (C) 01/2008 by Olaf Rempel * * razzor@kopf-tisch.de * * * diff --git a/eagle/SAM7_FC.brd b/eagle/SAM7_FC.brd index 973a8a17ee6ceb383b3db25a0c74fb95d9708316..cd2a21970aaa32e28cf1b2bae142fb6f64d9644d 100644 GIT binary patch delta 6332 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 X3ULW0@QC$ovCIDhFdpKF diff --git a/eagle/SAM7_FC.sch b/eagle/SAM7_FC.sch index a044597b52149dd20571f2f13c08b18043c2b04a..a8f7c695c7eb900d7bc1e7193e0a37b346a663c4 100644 GIT binary patch delta 26459 zcmai6349IL_n(-#s@CRtI_e36BeHZK@BVXBMRmxA!bWjpd!V2 z=1f%TM5VR1t4OJa|26Pm;ab)qhPss_a1u)9}3nT?(!Xr zb@|usa$9poy1aRb+-h{Xm|vb!hPaXhL$1!y z>6_^&e* z1B6$EbMKY@vZ_lZlRFhTdWY1}v)SuPF zb7j(8Ru9i+$sw#Uo&%HburNHkrG&7Scv|sngXd>>CgAx!p55{ENey9Xc(%oJ5T0-1 zIULWGc#g&M6rMIbi}0L>XR}@*Y%!h#@%#|a`FL)|b041j@caYM<9OCd3t^Y>?1twr zo$UG6w9h2=H$ZsbYa;8=*`8miKiY8wz>>yah8Awa-2A0|l zp56@;)o+M>1@?R<(z|!=p zrJi8Vz#cAmUsA^s8`=~3a#cw^OzaD=wTodhFbS+ml09eY(#ZT>@9!4X$s~C_$(}!T zsZA<3Eg38mKXQsb7@I$F`DBqzNI|z;QIp9Zq(GdVTq~zvs)c==qBpjjZwhxqxDP_K zxO~hM*6L-EzcERdUKaKfG|=|t3L$)1s3cU@P7IYBddaDr3OQ3f{Bo}LvXt{RMLGS? z`{z_h^I<`$_ME>z3}KOYqF=}{(4g{Yw>_~0ci}8&%^HiGW+v?xk(6Pwjgsu6SVx=G z+k@z2Gh@a_7TIo+T##Io6oBNJq!47INrKi|nw7lNg_dFOp*c8#U!~PX(lNE$uLPF$Y_%U zePWR(n;ZjvmJT$5}C$ur3fkc}qsU5|j6Bp#%|B$*(mO|k~$s!7g++%$>2!6Fx$ zBoahO;{nM4@is{=NEMS5fYdNaAxK@51Z_m9Op*-J%p_SLEljc%q_s(IfW(``_fw19 z*(C9w_GC$E_M9c3ZeW>swoR&?ld)+uo5XS9rWiJz0%vpVyE%qw9A^Tr z;P^c7M;u3PiD4T#&IQglaDL&IY?1Ba32X8#>;T8-fe&*mZ?&+~97h6Q;y45NI>))d zH#sf4_58Q!c*(6oIaSI#HaRzWE$GOKXvenF7 zfQ0vWLLqPt$3Z77@(NQa`Gkdi#1pcBw{W}_cn`-nfRAwOd(y%#a2yZ(1IL-bcQ{@H z{FvkOz)C;f*G^ejC5|J3Yjd0d+?eBB;3ypj0ZPWv-HY#2|-L_#Jd1g6x^`3MPCBy>v&$hiRg9>g;Fk=Xzx6Vv#|{Jd zP>%f8B6sB^KjT{@rI<-Ku3F>)Ch@&ykzX@OJjk0S$pjg1k~JVUlbi>cWfJ*2i@d-j zkswP=k^%CeNpe9pn4|zC-z0?~yG;`Gy+!`YB*`GBOp*n1*(6&*el*Dqkl#(>d)*@c zX_9!5rzXh+Q3mqxtO4;c$$1celgK|<YfTI9C9s&FWu<9|uQ-J&b zbQR0h8-yjaDt>6z95E_?^3y(|`YOrN2HEq!dv;G$*AiPY2zO}DUfgC8w~Ok}B)K%m z?l>umPzV|fT5Yhduw5pFAtXs1YeryeTgQ5diaa`MRgg``JgAO6TL?C zH0a`*L~FeY>hr4IF`zclzC;sWwQHb9wR?5Mhw3sC&4J}^@*2@T!|mF4FT+armq=wJ$yP!IGN{}qdc#z?-iB0K zjDW212)koc45>^e`sN63Wpq1IIY_c?Px=}gJkqY+?J9n*MRyf9sjreKZ6w;ND`{*Xx&j&j zJy4(QZe-*>$!ZtphxGc^apqgpvM4!0|1Q&0#q7p z*HGdMY!CqE@e6DVz?MM(;#+oY)?o31+WRdy=>ax$h-haY0Nfvf^fPbS9Y-=mjN)5B z)rS%i$JiaiUn5iZxGr7l<+2@%Roy;i?~(0 z4zHC*m?}Cs5r5gnoJ(jg*6MR~?6N zR~Tn^q~_8Zwi{4M<$05?F+hTH7J`0Bz`2;7S;WfumiNgTGIQI=1$J-r;HjsQgU80%9(AAts35OE*alxUr)n943v zjk^NgFO`yJ|NnM8+A!|L}$Omt-36WfXE zN|NP5<>Y7Z4o+Z}8FBAP%n2K3NFQXWV2bpqysfG*{T}4y_ZBR}^NsbWR3)-T*gkt|e z^cT=nZwbYYco($cyQp#nqJ4?>1fA(abQ#eFpaGSL{!H`===RD)LuZ1%FcTfkR|*r= zcZiMzommx**fyY5e$uCy%7A+K6M77UP6AZ(J-cH|O{s$9)&4zXYmFa*mTr~89FJ;C zcSUs(N#{c8ZXF2``<3YT@7c9BK~f7xmwM7~qT1RHS(F{aHV7(g4$z&wy!iH!xi--dE;2AUN^vO7S%<4D$I4pQSu z_8QQEj^sHHD7+J)%RsBT5UM=a?x@s_P#2(SJ%H4Cb5Vwwb1{wdLI8r3rKL=DknA(4 zKz5p`*NI*-Rj&4x)=O%+d60?ou<;lm*(9$BqD}Ba(5^?JCS3+e7_t*c`WBQ%4UxJ_ zUi*peC{cR)Dk*u+hqMSv0mGnFE|F*l{Llu*Nv#~4M@T0{Hg`UXJ5s{pa|B2nCE;r( z&upxBV+pkfdTRoZ`oC;so{??;IMgcP-Usq<8+8h00cO-`gxUcum_e4TK$YH=Fc0nl zsy>qf`8Uv(_b4@LA@a_WmMbh1=*&Dqp98&>3#2|;2tW5g{gz@Vv8Wsv{eX%x7ARpA zq0K#-EC%|P&|pG85L!j(S0JyOi&4ny_<`x}p>$O%xGNoHjWiVX4~oQ4pxFD= ztv>`R_a~w2KxYaG)qWox{2}S}14?)#&GlgK16_Vj=seJHg~6R=2~c@LT?kcTScn%a zf#X@A^C~k;G~WuS@FSWuR%xFgw>LogqQG4hb(C zLeg1II?FM|He#SZ6a5x+Q&VP>)S)Xt`>nvl7D}nNh<*`i0CfR(9UeTsMYGsywte0khNT^%TSK}M7QFH zp<(T!;02}=mMfMK@asLT1fO3 z=r2h`Q$7Lh^a)m}6rwwbehS(km1y<#pcU7nhP{a95VeC2O(R-<1E{b8etQ#5A=(La zZ6Bh`i7o^^)R*YbM6ZDU(vN8HM$o{G@H>Fobqdk9K<}m#JxTN+=*1z-!qhsSf>!wy zsY6*Krj90>0U9uZ#W3{%(QTkZ-(YD>t-J};V-x(2Mk?zCR4$WYvRy_Axu8?W(NMSy z^!ObN88+`TOhFR}g>J^$F_F+opx%=R&DdghOqfh4`g07+DTM9-?VJjvZpnwy)%iF% zT3Md@7qMT!M$KW7+AbR#sYY*wsL56wjHj`W*c$*Br$KWzi6?_ioeuFn11#2d&p;Qr zN@*t{IynQHf!n|;ZPQsBZEF@AtY(lX1)_j=*-iChVoSg(&V>4J#IAy&Ky9?bnNSbi z4pE)$=!x$^VGOY$U{IK>O}Dck)j^_8!dS*Ja;2e%nqFK=RzTuSQZ%6J87Hep(kG=(GiGJ=fhsj zonRGq>I!YNtZY~qK%(vt-OYxDwZw9EV&}SmCbycqK-FESc?UVb5t+kq^^;AqDZ8MO zODY~;fIa~ATTFBk(P3X8RU>+z=rvHkB}9kr22I+H)TL}4mayG+Ep{1e&#nQ?BJcod zXO^+QMCQ2%N97f)v+TDA*K?zjf?4f7^nyjOVr@W@(@9MgYbemdYDjZNrr<)D<7Fv6TGA?Z-)kJS zUKT0~LM8n>b^3mO${xGpoz?6ck!1n(Si|rNLk`gWwLt0yWU#IVUHl0H?m}hu zZo(|JY$L;_;0npkKm{_4ulq!AfqHz-aCN2b1r_#!ZUbf2fN*TNCaa;8&;az8-IT38 z(bk}$``Kuw_9L1My7o)5GM4D;L=REwY@*Xa1CF9pYzfe<<1otB0UbHRsxsyP`r$mg zCbC072QH#H*ae_+R~T0OyCnObEyubDH0Wn$lViR2Vfi)Qyz|1-d_m9ZXUOTzJEUhN z#39id2w_BI9Nz7rS9|b+Q2ai-R_`|!!ukXBBrq0W`ftq2=IpaOX6| zy5C7P;@6_0LM4w>2a!BLum~5Q-+Ue+)<(%*N2bSr(c-)SXu;p?Agg)Z%pUxDQ4wXo z=NU-Z@9oEEdcxwu9+QF*jM;cf_)j0Jd_b2|Fk%ETD_Ix%9I$IYJYj7tjf_-7wGO1s zp0c@Y2f)6ktUucaQ0E!IApk3Z69C^6I1kYFIimJ0z?;umpyjr+t)C!W`J8RGj610N zH$1#?(5?+ELMFd2^)FC2TN-`olpOG-eNi_#gth<5zQ`&ET6%xwl-Lcz&mi3FEc_V4 z?;*V8EIjpAkO=iZm5cJxD)0ORqwTAcabY z?b;uTeBJW?VW&Lv4jVDras-w1M0vkBV#MX-5hty$Af&iFbr$}KEGsEX?W3q7fd&9Y z1eyUfQvq553{;V`%TXtDagfee<#uesQM=>3D)(ppSw?z*P+j=+srU0FR*0TEAIS;c zGR{CB0PUC%LN(`EQg6~ z8PI|dxxS=+aSXFiKIqd_<`PymT?;rOSBb!@ISE7MvjaJFa$;u~NQ42^r8s0`#(pzGu)ZQR~x9_Ez&r zwjQ!k-N^SjqDNo~j`}-T5BUR$-AC%GBx=6rK*Li|A2s?U^g>VSWo+;0+)J*BJ0g;G zISEr~GS2nGfEM(TF>_CZUP3y$%q)mLNtdy`dLN=AgCP1Cpz&aNuGe?-p9Be6i>i=Z$4VwFqHFc zE_tPe;-h^y4E3AJ_3>64o5@qNhRZSXTwY1-#&9{09N$T8kdV@Ei~%W3SafwiEKat!;HC*XB7c7tQQjmG}q7%!u-CmiEl zH0F8Q2svIwV^ulEn`kVEW4wsQf;q-}Xe?64)whq5JBaM%)0jfulwTED0??MxK-GdLhlkYB;qiA4K> z227H1755R*WoNL1UMC-Q#7vbN;P8&r;Z_;9@wLukCo)a$DzX%yN;72a7Uu$$dzaAH zK;nBeb=)JFox1z8v*_isbQuDKhH^)OZo0MI>7yhj_4)K$lmN%<}^F8f$>mS1!On3@9pa57Q6O zne}pgh3x`*{27q?gjD_nZLp10A}`{IP9-r@dB^d@+6q zTA)Mj;*fXC?ND7PChVbUto%1fm%hQQxQ_}Q2NZjdA~G4MRRNH?k5nAr*tHgiFl*m} zyyDmLC4BV)bnCDjg((K8?oopi7dIbsnK?A-eJv-4Ups82obWvSJbkP-TysyF6En?Te zHhl*c{w>%G-=fgp%l@Lep6Cald#@9%brsb2Dq8OcG89g<@l|BKAxAnU{v-#BY6p_F zfeK{V_#z1?_7?=ua~KkmItf~A3&qco^Q$}wt&hY?w`dVv40PZ(`4twn0czNh(eJFt z_+Pwp{=$&cW>Lasu?y|mtjFNH)m=HA-3M59SN_OfyryRlz`0~-(F;XOg=>j1zZMg269>NBwvzCuQ!Qavy+F85h-=wh5Tb1i{_sx} z65^V}(y%e}sdQmBN!UEmPuN@qyL%*>pGZL*@Jh?df^BJK!wye~;&Lk`>JE59w5r2T;LIC)X{r>24kg6jsl7?by^UNFH&dqEo?)5nF5@ zUBlgenN3HAq+4DthD-+w>$%FQ=}ZTa5v3iJ)pTTka65ej#Xg$Yr2XGAzPL1#S_)Q9#b zHWKW$OHZ1&cQzC%r}+q0m+_Af9q-Us@V&%Cq#7Z0ae!$*vSo<_%jzb=y6g%@1q^io z)BeDhD>M-zj#Y3eD2+~%Z}cga8}0An0K?P01~uff6~*S0ik;5}S*shLX!FhjamfPQJy-9A;|tkuhTJus$s zs=@i$yzR@VL36ZmNezq&&@XMeJD^ZMnBv-3%nFP=$n**nk3W|h7~@!PWU~_$4>Plk zc@wN&;5?j4DzK)~fAk>?V@yP3->Q#e>ZQfQ%*}!HyIT|RHkM!K^0Fd?Vay#A+b%n^9TRHNFw>`MJ_=yazkWkubO;{>#Z$bKzCQK3 z>Ytto!&d5aWn^fsH-T#g`UPCQja~Hl+F{h#SUXUl^m&1T+M}vVpP(idQ2~9MfF`hZ zxMq)|%26Aql@Ah5-|=3}{kQz0^FkKkwhqt) zM874h7oJCxY|~=pJ=W-m=JZXrM+Ex_w~Ki6`Lu5IPouKNBv-OfQs1 zLAu;+Aq&SW=e*Wah{|$65h}|8Mab2G>p~fB4B_Iv$~r4TRF(q@QCSWsLjUPNUj|Cr zIQpn}nf8Bt+grD9EM!h0s&U!-KOIE4)nN3K`ofNkIz|)l5k{SK|GE0Y*^AEGJ!6t1 zd6Q2A%w@osNL_lVTN99jOW*K)rkjHY3B`u=Ax3?O9CQk-Z9359F7{pe5EimV3xfrl zSh@x=p25P>v88LU`9x{CivxWjD`^6^tv-#OG-5$2h)q?n%6&aOXq1K zT%RUJ({|UGrE$2+&MR-&=PgMskhid+Fy=GY^B0*X`HNj#<<8{~$5tgg%+-F$e%H-G zS^HgbaP(c*Ek-mp`W~1@F^P6ej1LdT54~l=Y*+;_$lQ;>E(Hq5dKYd4RIf2D8D*WF z2Ipfbxy{!%-c_i^B=^3-3&iCv4rtyow#T}C;Wcl!0->8yNPj6TF9i20?SSOVYM14} z*j}Pb3*n(r`np7`2018hGN(R0F4$YxU7k0MQw8J-zo31QN#AyQYki(jm!Nf$&+KTj z=FNGN!51ys?pqt@3hV1|R7n#z>hCGgpOMh#QN3M^`o^5~5F!RkE@O!TN^44;=?Nfz~fMTAu3K1=P>Saai=||n-t%}RegJ-~~ch{#s zwBfvR7!~09G|f4+7@fylccauL1aaWT6^d}SjNRy*rk+B4555GIRUkb=B|8;zKv8mT z0va^MHKwhTSs+ySv=#dx`r|0B85q70#whc|c^w(>b#Pc@Qlj3e*Zo~xh}r78wV^(J zc!a-Dc!3|YdD~MPlbm)i&L^E{*fvM8*5#R8KLwrH18ss~-L!dXbK?h$(7B$P!~KAu z&p&HrVNFff-6_>n!as#B8p5?r&*T>>K&1a+84^Wk-$7IzJ25jJXiuR5aUULltT;AsI6?>4)k1HXJqZM`nuK%7R3EDE8E&Xzb}R z_BZ4dB9a9a-+A#2F1>-ytLP0{L6JPA9ZG73MW4KliAJE3(&o2#e^EU3Iq9RQ5fPmi z%}^3)jqyT-(UzUMQ;qqDCM@aBA;W}kdXW;s+XjV0A z%rm$jFr6JlV%>4qFP?>Y1!!E9H@cNI`-_RZGZbO(` zx{WW(!PHu=cFYQN+3tFO>}=nfc41zr5S4X(Pc?Y>s@rWQk5EC8>*a#8gJEUZ&#O?$ ztN`MVj~Swi4_t4w%^Iwk<0^M{uu3+dpKj=x*Pte^Wvo z=)W9bUU6|i9keV5EjswPJJ9V%9>Tf3%nBqM+b`_CTpWaTw3O*!t+%C22h>4J9B8{_ z1^Z>^)gjVlb)cEo_$JA9b)YTx(=@)DK#}M}E$NB*OcjM5v`SiSel{AhG#gMc=_@aN zHgMY4)AwoCn8U7TE?Rylfo^GCHd*>|Zfxu+(8c!=z!c=LO|{I?3JDd+n89D8B?}z- z#*zh0s|kG@i2@lT+sHs&MHVQ7(N%PPy#~}5hgB;5tP=v#EyGetI6F^vtq#@aRyWwH-izr3LDz*E}ACO6e$Je9g`!Vqn=r_zHqwB86plqkgO z{Uk9mEDV6QiS)Mxi|;7F=@V_E0i)l0c5jL>H;qcw<+Qh_8KwBnM3)-3J2Xw!YVLYx zV%U*{KE@#-%4Ot{Av&2j2Zy3ehTRF8OKC zCg=x(;!an_wp{PkhB`)#q3^#Je|?j-ucki6wz;H4AROVQ{&gJWPx_nl1jZfTP(MP1oKVm1k_&gPZa3&Gn<59E79F?hcB-{dKe7kA;MBvgDi-&! z>!RK%im&|;V)~FB>MSJJXG}8^Hi`rv-UxMZ)7UWISPwMNU!-vEVKlyh_HrR&Izo*V?Q9j{`))*#UjaQ`R2#yS9zW ztbpH#jhriB%=(jY4 zT+sGbRP?(8QxqX+cPlDMbht*9A*$Pib#bAa(qD$2Z&rJ~FWSt`nTB{y7&@y+S7S|1T%d4fJAS?yV_&FIwbNhw`J z`0z3M72W9-AAQV868)<32#+$3K4N-Fb0-$tI)mGu=N(FeoM1CLPv-EvR-#GJLrzvPECV?(hR`& zp(V=^A~E{A71dKB9?+MgUy4Z5u63Cux`#WD-j6 zIh~s^dOOwNdLO<=adJR4@QW$!fGTkHTV1ZbR$1vZs0V+!3}cACjBvjRbJ>q#6YShk zX>Pjrbsd-e5%p8rW6|uZ?-o?;pUTQ>u?Tj_m31qZ{UEh)u^E1_CNm^=GBdjh9VbP> z#|U*7V|N#}?G=<98!>%ImflU5=<_p6v3{e1DnfL)>n7Nxws7EFTk0ouf?MIjm^vf> zP&ui6>8h4y%Oa~%%Q3`PX(NjJ9jmJuyn?KV|>p;iZ zhDx+3GOc`LWuQOnOQ$UINUzk=lf2cjY111k@8FLNXipj|%|t5Fhc?XZx zt(0$2`-v|qMG}Q;QfsBPD0Q}IyV@uXE819JIw#Pz1fJR-ZIpTqY(ihUJ0Tf8=`NIq zQr9I8xz@6+Qm;02sa;5yo+Y|uLkn%I_-S+6Dj|xlr|oU4G_4M(Us}TqU2&9T(WDrq zSpc_4;!C)MH9rj@C$HUNlqS`)g}#(k@1jm78rmESWAtiDj+{8+Svc<3qgHwUuW^S_@}a&m;a~bnwx@CQp*};?0@-bjT>$kC;>J{9*djZN%CJ*s ze+9kZT6z!Vj8TYcwafd@#l1+$hcZtrBQteaDgXF;&}|qO?Yb9Y|lOQ-{?($wsL$7`#%I ziRuc;+e4LKR<${)${UrSOvis3%DS?*=G99%41ec(DQ(!huG)@q(om^qlU=%E&!l8MCV>LJ1NQc+gpU@Nsif4b;}+oLIOA9yD0pheGL^Tr zw6~Rn8tzK*3EY~e_Ql&u2i!UIrAu|%{LxsYr#Y@oP6N}Fw?^*%=mO}fE}wdsGf1B< zfz5nmheoK$oky-&_$p@iNRIEO8>G^27*|p-%1jduJjsbB;CrC_8_1vB%R z1vB}77p!Yialt-#r=(!C0?{lFmVK{kH8 zvOu)PcnS-uZ>SYmV|l5ePV-Hv_Q6meom*X>S7>cA=Np;=OioX83NWXPvh0vvGg2gj z&KV}bvHPOfFi#){nq#68hw<=aqB5XHw$ztaCOQw$zMY?Di?ru{xisUuyk zrg=|R>U(92eQ6(o3nA^L$w~`$fM)H<%6CkZ97#6C>ZPsEP%Mry|5F|^-#RwMW%$rh zN4qgwne0)e@{;P&s~n@|D?hKa#wNE4Pm1l@GASaeh0rxNt$9TAh`6NoLYIW3=3T-f zVv{0;PRX$y2d2iw8GzmeDn=0oq7kQS(HPZ1GKLoi-8ew^36BnqY#!0|m5D;nxPjff zcNKc}j?*oJ(y=WeB5q((To>aRAFDq}o)X(LIecJpnh@WvV+uVDK~FBg(-4rZt^%M9 UYvwUUe%^l5OvkNe9xcWH1M9xeCjbBd delta 21679 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 diff --git a/eagle/sam7fc-bot.png b/eagle/sam7fc-bot.png new file mode 100644 index 0000000000000000000000000000000000000000..d7de1ba1cf6d266fa82238d7022fc2b7828b83ca GIT binary patch literal 41644 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

XK+cPL(iFehktz*N-6G8>E1D-J?5R#;hxD?W< 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

^}1iw@2GL$G8gVL=ORWcY0QN&dIF1> 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­=`j5 zB$Pk6gU5sMQge#u^*I`iX2q@5ijMBkKb;MX(A!H9`ydA3iX+|dYw69(^k*G{NR(}*S4WNy(2&4e z`09a^yn{vh>Ae9M`TTT6Fo#J&Rz*cb9!A3dvY$cYB3@`kHcTF$Z|yb;;`50==l@d5 z`9q4r&{y%+gE#K~psqu)N5n-f?wTKzMi&H^9z6wHjub7;zTK9ver|{nl z7nu*X*U`3gigXQ7OF^{~X;5H1fhyp^euAUB2fyw+o`>4xppEO)diY&|030(JC&%+r zzdpNESW4FCC;>^tJXd=YOhhCo7*4^OUf)}A@3eI_d77b+d_$&lig3kGGu8r?^OThC#j_Qz|`aD$F%vXyK)AEW8+}fOi zZe0uM5e7IqCgK%WpiMzc#W&wx!NZphmQuP5(o47M#HA{kFCTMN+a*sd~7GL5Du-}Dy<(YMGf)aYahcnmu&)p9`5dy5F%0oZrJgmc? zg2os;egfOkkDQ+6OPZbR@;=#@(9y}+O^oGvurD!TpBeF|cjKD}19%H&5ZQO8zk{FV z{H+w`d~o%K2n}j+*rtBr>Wg-J>||4fQ`f4@vZd8Z9r>Y#0x(s5j*{)N{4qA}T|dNT zD|`qx)YdZe$#ElVFhi7~`KvUnWw7MeYc~ksJ;EH3JhDb2@N??m9rmWIR<_IOq;+dz zGZ{VzR8!WHJ#o|}Qmd|4-n-JR(kMGjn~)es-phohV`PIN$@3v=@{^iOB@jgeW_?Mr z%*qd&*Vl3Nn_g5!{8E9*y^q;SoG6n^IYxY@%`^c-UY>codeOSLdn=pbQY>Y;^p$wl z=M6ax^M6uj>TuG^Da3m0z3v<$#j=2VHWW-BmS@$mhG$S80b*6b398-Jytnr7DH8o` zB$6vj(wIC&v+B5IfIf@dm`Emfh;u8yWngE;mZJ6Jdy`rGitxzqeEk@W6rMH5iD#T9 zRc!h`X4qM@^cd=rFS%&wOnt5H?x7F8LC_QUc995*Gam>ak&!RH7k`d>VpvJkD>XIM zjHHfoQAl-^Ta&HAArq|>uLas}M*bWA_bBNRf?ITKDoIM_E zg<(I!gp8i;?>EMg2N-tdMTjjBUjjB#N6vqK^mW`=WwZRYTK9c^v@SarDY9j;$Yoo| zp)vQ1mu5v-hGgmC`q7IcLK$Y*gUQ-*k>D2&+&)mJow|O@I%{$f2M-iV-_Ixtr&Gc-ny zRt=?wj(=1r$86)zlMhJbsrH)Ts0dJgETJKC!^i%i)?71cGp_FXOw1QIH)NZS9{-s3 z0WZk5n5hU(^k~EJ^k2%PFR>X_jz5%E?hT_5k#p(nz|_=3R*LvHy6mj^H51rLZZ3Oo z)7|@fPiDkKKR7YLOVZer%XNNRjGTSuYW?cvEVqVc2Y?&`oB({1y?64YE?xB-jdc+u z=T?KK#_>u{%j=H$V8q55CHwe#E z+OgE_H@B+b@$ak?Gyr4v3Zs6`kwAy*qz(zDjq#a-SRYH%^QUyfvCc96_5CO3E1C|U zz&Ccl}=yH(ki zg>KrX#PH0H63t1`In_F)HVc6LJ2Rt-eLR_3gIeyrE^*y-(K5%3in7H3>Rb!dhHbRt zbmFwsSyJTh0mEZ1#fFeF_>ttyKY*&!D5In=eg2r=Fg1Sfx@7%!tpkl;x9rQzQcykX&WnB>JK_Xh z8vmp*zy^40di&sA=3=kx^3^Z`G^5BAugNrtWMDMYKjf38O+SDR(*JnTe7?6g5M%H_ zcT_Cxg9@q7KZkYUJ_17q!jxB3tLu*$&r()Iy(tkz35{7Y!& zN#g)*eT22p{KMRd#kwlXvfOFJxf`HGH(VR~IElboYJCqP&;OXgl6R>S;mA!nV0SAF z`qvY8{`FEy&v)YK#_M4A8@=VzP^OU;g1-;Mfq+A^3BtzW*V)Z z-iY~m{(57ucHb+Nfc4f^&)R<6P!$^u63;1lyT6!+4SEvt-JJhMMR*&5)uZxvlh9Vh z-uPeObF24LNP)kZF(qX>*+J)#ge=_9CQa)rZh* zYertCit7r`#KAB>NCkB{^!Hz#G*&T<5h=O*S`2;_#d`LPcgrxr&~?DvL+qE|o$V-!N++-0+yY zT{>A6NIa54G|;=HaCb|3?A4O9mw~X)I zs0U~!lIU0_m?pqE1D#8n$qR(PB+DAFyP1k04`-mvNfWJHS_(K*s@o(JwpM7SPu1fb z)&~~j^qSeL$IK00rQI#W^qH+u!&*)T>8Txj1aQPBzYHMY$y*gX%|B0~-uZ6pIxO05 z31Vn4Ieo5x=J08CM1!bfaM`)~F`_P55>HGs^FH46AgXRd)pVJNLb`;dy)y8Q{g@2T_96eY-(w>4Tx+qFbl$adQ*5UBEy)1dm4l`Q= zVh}j~Q+)K0;P9Vb3$?n}bH&6DWPcg2d0horLA@{|l`v>MMk$$zp|Bw8ZAsB!+>HvP z>rpTrLlTWAs#BKxgrP`WeC3x7`7PZ|8N1KcRrZS=0GNF5v5NsL-({A70J8*mYIFa< zP*)men`r(jIy6g9iKF>^cxPzmrndTKN7y`zcHD>)R4%^Ce-{{ORJj$-y(ZIyUM6GRz_j z?~@y3&*g6eU{vjQ+w!9R3WV(1&>)DwBQy14b-V0SaYy3rlMWB3e^0IX-`%I&>Pj!W z!6VWLF5|$1_0$R}4iAIh-psgh-ELo*zWV&XsqDqOM+od*#(>O%u5K9I9+2m#M&*|J zcu})a_+fPXi*Pnd7g4Y~Wv_lL(npDRG%Zv+J6V$gz)G`QW<}j+4cg6y56em1gCxFQ z-GngC2`$n{Q=u1J|5J%Ar~FC~NuE(DVvjeI8Td#fw8%mueh9C&;^ zkKx+2$0=hX|G40{C{BG|`KwUrj+jZTRQ@+R5>#i4Pa2K$OhcP~Y}qhx^Rg@6fy4w`U7vx?4+qmPJFURycs3zfwxwuch7lO`ZU z@Uq`9h5Oke0#ERRZ7FK?)cPRSdiip;+Z}X8$L2wc4Q2Lj>|tuZ&ne6J;|X?mOI!x93;LVM7x!`r3U<`6yF;p;8zp zN&{4m4?y|R=ZnwjmP&*ZL4wNXVR<(e&N;OWQB`2t6%b=(7nEUUQGLH)ZLn;2AgZH1-Ku?lly1B zmIm<*{?;Xb217ig-Fi56OAk{jBE22*Ql&}{t=zX;bc~JxKt6doP4MnB>@UC^hG&ad zy(ZrLhp(ETNy-*RTyC~J{?lAbIiM12>lh!Hb}rytp<^fNwBN33;>Dk4d}iL)^)rsc z-3uv|5jL$hBs~7HpqxzPSu(@FoEo6!?)x0&^XDSYd3%5vR4WPy?tok%S~~DpI?3Dd z%+0^`!%1>_=VIq}rDVQ&Dej*rC7KTqgtOZk-^Trp%XPe{teKu#6W2gQ={Pd`1+>&P zKk+h|&czGv;BHsxslG-J|xvhxMWdxj6({hqs#%&5x?tgs!0xmkUt|0;!Z|V5V;4-Gm;A{ zMn#B*Vt8*mT5SeWjOx9N9V%<`!T^Z(B)i=$EcUFfHcuv8xVNw=Pi;yPpd{^1K(@<9 zmsTD4-yFzAIzBLJj&{3J*aqyp@X~^L1?qx;HmK0}y2E{%isY;3Q|h^|} znh$%M;!xp`QhGKogS=H@TrjyHLxL>7#>r`lPa&KN_MPQm0fo7d;OePY`8}rshMDCF ztO`YO5IGIhXt%dBD=2U>)ZB&sNhNjD*jS)P78BQaAtsFQ`8r}gE4AYGcG? z=bmFu-D}pPK1{3`(hkYFw#HZMC#ET}RNSL2krw9tpU5vLT%J-^$cJ7T@w!Li8do! z6gdusSgC-<p^a#w}l_iUc$(UpQ?q zw-T)y#kfQ9hA#%teqtixkY-x8-5yxxu;|fJI2AfwAJ*23qA{m0vHQIjcCH`l{2UQxTUP|C z_njDDP8bG}0y4~q*Y9EKvA$x;nCu~yifpaRFJA&5`d7Dh=F4;5nqa6Zh@)6>?)t&; zNIdDn2j;~HxnMzw#Ic4AYTgO?wJGDEAdaM_bc?|)6?T!en4Flj9QI~ROCRUjCG211 zKic8#iSsq7cz+vrSTZDN}! zpDXtowO&?qClKTPlZq~pO3Vk#3t>L<((1c=fcy4O-dG|~S}tumqp>y`UK6~Np4uhE zzAfgL{MeYsJc7s-&mbrzYcOTIJqKb$uck``B*07=-Da61nHjRitlK*3L<4!#Hcpaw zG)0&)UcA~#A_cbNk}uvB$CTjb()VtJKz$7#f6W22Z6Pjy4WppI{9=@1S1kn7BLI}N zO0n@fs+m^d5i*vOKS6qTK_6#cbdFshTRPHCrdp*csE)+vxGahpeCb0cL=xj#NFQRg zStO$QJz$lFn(g5BmQ^50u1BXq4{&B_t#X#3GlorOmm6507=jociD$b~hhC@*NfXOQsG&bcDU;%L zH04!iW7&Q;{rVm!X)YS5mf}uVZ8*ewJwBx-EYlF##-2o!ky0gf>8|^{8jtOM+K0d*{b``Xq^>#ejv2N%ZVTCUx z5A{JN-2{kyzqOz3LT%PqPAYi!S!(^c!5udHKv^|*=(Dj(F*Wng>$96{Iy8+Duw2!T zWgWb@sAAbUi6^)fI57cK_@`a>&bR1fPS`p(h(3353hce0?M#^8d671^Yi}#5FjJw3 z0RD3i?DfLLT7NO5=E>6@`aPZ*q@l&_!9kNMO5TnIgGjCF#?LK78q&GbU^9N$wH{$lUilw#m{}hyIy&A!H@{HG|vcdw&!t?Tby~9o^ zV&~r*{JH9c-re=GaxxgS%q%}oABlcEI?QF5!cml6@+YmzapJaN)qelpIGUzyD6^Mm z#Hz;G6ye5ubZ&ls(Bx8_Of<-ky80uv%zZ%E{Y+pCJfH$|CrHK&wYGaA{HIOa?~Yer zF(kKs3K5VFmTiizFhmhVVZtw9Gb>mPs`o_V5t@bj*GQ>vLC0kpzb;X&jrgSvF<7%( zWx?Tu)}?$o@0^#=i_el<5}WDf2UF6>T^HxjPv&GSoDZaLoxVTqGnY4L9k^$%!1S>D zU{BE#HN*@}TY3hFkRt^&-5K5D{T41k4RxV!qv*m}9h>IjtY7F7v)hJ!(ZLj#o<#nA_uv_*;X#Nhn~X%&#DvG6^Tk%}$&trF;2QA)(_X8v|AErb4`e(VRnsD< z79L0;Pl0_-=}$MBbJK7`G3(mh)OS3*kU7|@@Q6Q_J}4a#@1ps3pMv1I=8tc?ZrAh} zhbl7%mi3;*CkxqVl%ozbJTQ|t>JAAc%yCP1E@G~w?-FvnzcwURXubcL_p#&7HClb? z{j#ljk?5QieQF7Z3qMUA8nj^OrgxzBrsHCZ^(e-&0M%z^x%=oy+U% zjM*YXY*gkKk@HjM-!L(yH$=g$=(1$df;XU3ke%K%>!3t|%9INEQSbx$37s(l)y}#A%PSlb7OiFlEJnx7LeqqFF-g?`J36f-^ zsHlK}D`{}^oX+Y_f74Wbk?tMBm$nU$n4buKGo&*ADFQV^8)oSL!^=mAIS#92kjl}Q zmzhUwuUyr7|2dc$Ni4{Lh=_{2F&bQy2TsIkb(H+tE8u+$6oRZVd_!4IhUmV2R#D6b z@W=<~xh42Alj|qAsM|6J40{h{=Iu&Cib_-laL6tN#fa0o^4F(Q3w}tIS`Q9`0=Y@e z=)ULDqQc@RV~czea1f&JJ|0ZM^woVeDLC;msbB=-uHHls1*;&s?BK=@BUpGjmV@Uu z#}59|8K!eVhHTVaQ$sP*OX(io3mp5?Uax01ECg01S20uOvnISHWFGwx2HEmr`IPdQKy5^^dx(P zn69s$l8uspw{+l;0H%sNjDOGVGSEyxA!-Jc@vaX1XCgeL4c4&m4XP}h#S^;f%dGdW z-(roXR$AM3UFoq=eA2hL z3ADIkF-DS2-eBHdHk2TXk&nsCkMQ0LEMTL(^t2DKcTy_aIBjp}|69<(;&ZF>0}sqvZ_ba5sEGh(b4F-r_4pB6j+DN2o|KNg4rzi-cP?s|HyqAz6_KEpE&?fVLjZ{er$(+(( z8n#kN^Xn920~Vq_B(mprl=*}GTF(nUc7ptOSzvM2-H*4pH(_w$S>ESx>xc^XP;rrW z)-l{su$zRR+_@Xi7XS^-?P^P;uz{s@!La_$*Sk2&^!Z(C5B!-b#;7VtCb54k(L`kV z+dF=rqxJ?0S+@A5PrhHtXt%jC_8S3W03iFn7y5+jyZ{rernA}EmPGjr_HJhvLQnwaY*ZQf;213~j{*T6lsk6^O+@B(djlhr{-3E=KD zz>uWK!SO7Ab+hp}@cw`|{r_f7=DnLNr=Oo+`@Ne%+N7T}B)-ltfajXV$GMJGvU1lQ*zqPHy1E>u~=t7)92YQ#Syrac)ZX4 zduZdrJ->fq*nEQxFm`|-eXAQAC2;JhK_KVd8{5i!zGK-1bIIqYLM#JSXT4PpJ#1~# zp2VdoSkXr}>T|+kgyb@ly#Nm%L~svuROFyn=Fdy?{;1d&@34sp0bqwvELYBnpn zOjdqSDa8ddVJ zgxE(Cq|Y*~PYz3Sk-zsmc+^z{AX!cGI$e#$gon`3mLDCbwwnK)5)B{W6)Z+t-1saC zta`U@fk+L%_9n0=V1e7ep19P8g!UM3UPgZ z&D)_PD4K9xLdC{Wk)E6LlwEMt02Hu*R-!HnJ{oj<1u;=rF9)OJ)Vm5*S-(}wq*240-7tG zkyI0O3qb%l5Fr1*wo7(f!pv67U~}lp{_gT$H~H=fj>P)a=C{%z>CcV{s-?nXH9d@j zM<-Q}=-(MYJk1BUf#BD*TFQFKFsXLYVt$Zi1tdlSLC*i7cR;W0A7DF_J1XxFp^Aib zvuA9q^UVPV4y#iPWtv()f#0XX&4_PL%UVo`dNBOqNLk2A&i=MMSDnV%z!iJ$Q!2mg zpl|*Q0ckUXGCrP~o3{os-zEwQf)28rK>aeR3))RNYuCzP6RdQ`9A7m9ISb+%#-vAK zsGG}zu{*p>HjdH@Qdn%g5~4ZQP^rvNd&e_p%Ioq6fk}E!V?l`L|2SoEzg9oEKT^%^ zx4}_t=VY+<%YqxWXHbbB=6i2|UdkEl#G1E_4~2i?7Wg^%>I6-gl$V6nfeWd88w)DU zDxp;V0tfWviC)8$RfxbwqsojKyP8*rOf#U^BVvyA-jCM3PG>->o0hJp8Bjuol?7*z zz|>LJle6|Y*%t=CT32EQwOtS|mIlrN`=Z`IDd22rgzJQHFuso0jISO{;7j0&&}%Tq zgY{Kfz_XsZ|t7`ciQ~=MkI{Fxg+8}h`|9*kYVk*XHJifkc@&od7%gPNOwPpUF zRcb3_!YZ=B6j|Roc>^ZCzxBluusWExLbIN**M5Eix&m$+3XG_D-`kz-ZH;lzP>A{M zZ|vCd+X(`CGxjCO2r@;Ybg+`_ZmR{*g7uy)T}QirNrH!J2HqiXn zOmijaPjew=FUEJ|9^M;wDKQMR)t-`(?1)xwY*dtRzA74`odiyD4plKRivr_8&78Zp zeBmJtJ;GZFCt3SiUfgqJ;vm_pT0|$hKm@Tauy4yV|I1rZIFQrR^BjK0WYyFfX3Hr*swqUE9iR%>R@glir)0(+^IQar- z`^v+10j7@pGR6w8@4Z9)PQ_pm^)!3tp;wGyYpt7IW#;{D$`d zs0D1M7DkZEJ%X88;~g2b0F<#v;?|s>OGJoSQS6)X1YKOE0)P@|?x%l^N8VE_A#4LR z`M?hnwq_y%>c6(^t6CDyNd9nJeC~M0yM1y05|@-TtWe4x5Khw=TF((#zYH( ziHva|)HZOUP3M0XPtimAtTokW06;&S>1Z%fD6Gq!aDibgP5zzjc(RVDM-s<8hCVK< zP&KFwZR+`?!JzHoxV_wRvGZ34Z-;%p=zQDb0uyMnT%<8II-;9J z#m$%iffIoBMFEjXrxuu3F&RR!E%*KVV&0$ZycZTX2t>sFE)esq=<9Lr(EfVAiWy8> zj|_gDyB83#o+I;+s-6`$H-}pSh2GT1OlOw*HT26|TLiV_-)Yo8P=Q*yErv+(e*fQD zWfNrBPKDU{)#oC3f#v&554YUXoOtq;DNPXN?hc5J4OY}zJB6Oi4yGu3^dE!Nq}qsT^eci#{2L`K$LLwh|GP`f* z$J0Z^o(tV5fSK@3CirAVPZ;@>ZAQ?Kkp;r~-1fjN#Dkb8fC@3cPSfCm&Y6yzT`L(d z^Coq)Lx*?{X%i^#QBg!izAW@V%ftmu{M}&l$?5wFV%Xo97_pZ!+HP}g9aHRlY+lHM z7dk{LbE~z5X?E|0+mA{F8ijNuLOwx0?SoiS&7Hmpj&-*kYule492hd9FDGUHsNjET zoO<;;FWv4=>kEpq!q@GebCcoXk+za3VA z&@J+Kv(XD$KoXz%wCD%wjMD9(I9ao0NXNTgNX|gdrjt8RW;-U(otLL#vJYcLwlfDy zrntARXcTV1>YOe0RAwY!x8|b7@*lRjUOWWnj`|vCD-`Ofo*I9W7VA=%{;Gt6S-*ui zP_+0wD&JWt`}Kkl?>e8R=Q}(-)Zth{E~OwT=lsR&gLi(5If7n2(BePleGhnKV?h`* zoM{hr0g=rZ+C~{MP>#I<(fne{u$EGTaI1KF!lrbqX37JzMG8 z&ItBHp`M2sblEswv7cEZZ8XuC9s)n>jt+;_MTo7k(O2DBJvK3zc5>ag_k}pxa7A94 z5oj;|Wcc|#Els~5hnNSh|NeSH_m+yizNCvF@`?}hsSP^nI{)k?@1Cf}9bph)FQOvF zmHuc`! zzfMRGCS~aYthcML`@*Of3AP-`eVTDeiZgvr3J9iY7^&M}2X27#ikBoV&>nvR`N8sqU50wXXbyx)l`#a)6tYeX(Nt za$5|55}25n2-oM+u9x30_FBpw5>XCcXFTZ3mbbT>UmMmoxMw zxc9uw<+nkWd%j<5NW&+v(vTP{sTsj4MPGiqoU#kO9lDNS=c@FE_yXm>*)*Opld}3W zjMcm{o)q_NKLFw^V+d*;?Q1t=D9nojKODgQw><%k^__<@ho@o0q#M^8G3dP7%{L@D zfq_O3x;X>$`F@i+=2u6PY;eu%hEBblTnlA_p}L&yoNdiH4j-+~XZ!_g1Rb?*rbng^ z&`ygOJn9ZQTBeDr8`o?WRS_kZdw`f`$^sl(1;uj=LZ~2?>Z8#2=#uc-<{_VE&Y6d3 zj2vwze)9Bk`<7 z5XI61y;0qCfS050>ImO}A=DwX$T;~JV&Z<&m7>RHIf?tneeyuOO}3NpTdw;gaUDg) zR6ZvqCZPhvmhsnJBO1m^<-u_xF<{)`-O?(a`SSKc)bH{qE+8`UVLVdWq{pGxI3r7) zJo{nfeQ35)axZxd)}CgR^7lfxe`v!eChuEP+1KA^fuYVRwM*1A)FXX)xvo*J5 zWh#R_3=j{uF(z5s9rJgxHq$htBIp%z!VqGx9J;)IgMW;b{o1o;0Fi5T^vZMEG36i_TA+v3!a!2+eARiZqshUP*7Ojg!)q2$emlCiUct$&tBj*cYH z*J)VsOZy@YCc;DyFuKV^Ke($gup1Fw3wS=ev!F3Q&*hsX)nU{gJn07Hf-=SDX<8c6)#5)Zy^6u|wI91M0>*~K1_)ME3Ih2lnh zlPe#!TYLhL!PdTU&vpw024C2{uPM}dgy8Q;)!t~)iZN^2p#z|)DcP$NZEMQ({K!Q@ zFn%hs!R=3;p$)oCC;Sr(Njbgwqd;Dp7-&T7~TfM*)C)z5!z66^bw&vjqV zdD#N6Ut+wE(ERZz)H=0fh>65gm1d0)Gb80uRTCAP zxXW&|b1YR8p^u|UJU*L9J_}I?qk|v2hbtWv8wB>;wD7H#pD&EsFOE~+ZuA~oY?E|^ z?`EDKgO#|LcPW%Je`Fn`+}~9W^e%xvwV&q=;C3Hw#vh0Eku=h{yC0j)G?hVoAfBzK zx-k`LX}+eefk%TV%-CoMq6DmtH>byao<4Rs3Idhx!pyTCZ-d#*Cm>8tPYCOc(5I-& zn4|vswZX6mJI(0kIBldQ!@2;MDDFNwumJD1Ww*dUtg7Rg*#Beds>7mqqxDb%(jp}( zDT0f1htg8g(hbre-Jl{MB^^sicXvw)QX;T)ch}N!XZhXxJa_+vnfd0-_nmytduni} zuvyt!V}gP&OXPi!ONunXhM|$R|Dwz}e)(B2SQiW8;iO*Bq4B=yxSmQBK>b`8qhYVi z>t8{^^Kl1Qs}Zx@sS}eAq|h*Ioir9-S~DRAfk=1OSF48&zq*g1Ma7qTD8S-_L4#_W zUV;l=G+o+^akOPz@|~l7U%v&JUAzFYSO)sjUmZJUwd@U*39=uY>geW8%;2=?c37hr z*_Ex-eK0>d_&u?%C~OJ!YQ+x^a$+v2Y15_Fs=d+#}E9yuI+vF2RBOkaQgkhT_hd|dXW?@%+`TV z4sim2*MlF4aJ4+;`chspj`I4pUGXEQCl{aZub$N8i>XB0fb+7=M2UzAUzHf30uS*` zdlng3tprFD!aP%aZLH|*}PYb$5ifw;?^qmNosmQLnq~Q(^gsZ$@9}YD?y+=7$xO)45cY6dZ zw&Q%p244+kw7lA`Bw7(Sp7qFtr$sC2;#2gQC)?XNdss zFc745v`|2>v_w~a;qa0IOthZh%4d9u|qe{o~8o)?FKs&Iz2vcn*TG=;BPCU zm^AigoCZ0pb}0vbKc&Ku8ZOt;&bnD+`YmJYOU{mTh1-!kHU!3(}k4Se8FaiISd=m+K8~WLU2-+ zX|F(DX<7?xe+S9`C#DaWj3P$poJoAr&&Age7n<>P`}8Sf;CIY)Wla#Ao7nfN2>;sb-$CO|5~lu+`W+0eu| zL1|`3o4j$AYfrK-?~%hf@!>63ltEfc0^{B*Aw08Ip%j7U4~r*Ze7o2kAZ-6<>OV7N zU~wMo+EKmn_JOO8ogdi8C4;m*hs6%7-L%b#J81IjZFWIy7sQxI?M^9veOUJFBjRZq zy6Eb8`;tv9BD<2SX!7=q+Y!4JT;ZQYc8$juj9ZWzC+7X`7P=1H?ppM{pTU2>U(fA0 z8ev~(6vJFIn5M!dI7CI!yQ}~D#t@++z)lPTPxAb$%PS5JWCxR)Qo&M^Ljpp!CrLGS z$}|A>b7p-9wo@KvU*6V9?46A5LG4sBMv(&5j z%#|MW$)CNJEh>O2b3c#`{wbx})Ckq7K@$JO$jlQeq1&t9D=j&k@K-C@%Pj?r&;4g! zcmT!w;j;F1{D%%d&zJXSk9!x!^6px_PM`DX)#%T|) zKks%7_>)SZPsMVL6tc~YRF6)mK0t>0h-UGyq=5-rm$eq7eGj3hXnuMBZpUU14 z*a-iS;$TF^01iwDp{7Cb52G51B?_;TYcEET)34v50A9wl*;OdX){<}01r!UQlPQTd zu|bwqOg!CEb(6*_3hsOhVEx?RiEEH`C7#-!^x@;+`>tOPBswmgx^Pz)f8zOo(L|6 zw;)W-*D;B|c9%%Oh*Y0HDslm{=5cbZm}QiA5R$*tStHp=gu;C2M-v`B{Iq+q|HA^f z5kd)L!mpH}-96`zHvTX%Bx@&>Wq~>pAooyec9c#Q0ElYH{a&z5p%S(`1?POb#yZ9IB7L^= z6BqPCR1E(0#FTh7?J8howv8nh2en?*%&8t7yZM zSNO|Kyihq@N7Q!$HbFZ*6knS}lmX`)?iW_=1$e;B_G&UCXoSg!QJ^{LAe(AXWTDsDC)1Y zNDN;U+%nrM(xG!9Ltn5xF91iP2Xu+55$|I)6rj3eRE#-T6xj2NvX)#yEjEZ=SAZQ< zZsP;9Sy!ZyK0`*S6sH>-7TZR45lM=i3jok5yEo5T8Rj;Rr5#C;Rs|8mVn5#s;^Ye= zeBr_H@g<1k_4te4E`9^zR{b@M!MR_Q1CXw4JXFB2EbsIL)(78`Sc({?D**feBBFte{wK*I(M5C3^T}3J{b8x)gC}t+8!J--N({eDbKv~j76E3=I zje=_JR`P=U2zbtI`wD$jl%>|%l!?}<3c35W`!FzfE%9BJ*GW+UKu}LOh%-6kz(tV! zvBwSm#ao?<49r7k^QZ^?1g?e{FL!sBX}(5^U3!68`NmJ+-OhBRAH!0c27jSKj`GQ! zK#Bpfg4@|Lr1vnyi@lD%{IiAx^i*O%E(nRr}` z1Z;L~&OxJ5N7bX1$^?hMi7izSm;7>eBdh-tq4fyxcUL`*1wEJiN%p3NtUrJaXe^bU zZW>Uz-eF@Qi#?%Zo!b7!CbTCZWXj95b9;NLjbg;EBq#y2>&>-#{o^XC9w2C!{+GL0 zy2lBK>4lP4JK))tg{~>&A=<;iR9^z7kdB`w*|1q0b^1(i0{+&cg|EM*Oj;(_zq6yS z1`IxJ&wjnI7YIu&fDg&QVk=+_P%lYc>xphDs!?*?D?G`4lMRmqsFYkn{ShxZ-y6+W zd$*a++6xsA5GD2lHAtLzL#8hn{$>>f_)C^5OyslI5T|%n;OIr(#k-? z&^=d34r3_$;`pf!6-Z;nSN7@Sh6PeBJ_qd+PU>qL3sd|>#m5^VdKfb5YuvUT5|Xpy zMupuos4CQFo%U6E!0m4@%UvP$lfExZC*RRN$pm4AlsUu=GQ0L0^c0Wt7x)(G z4v-49i+<4G$tDhtY-Hp1T+TfKweb+>dbzh$_Q1Dub9u@!9G+{{*Z1?6S)Rc4udgmW zTM(T`nwr^_olZVblGy{v1EN-~$!0dOS0|77XQ%AOl=&Nk?duxE`qD0rczkwn6KC|T{#4Fgso{=$* zozef#tGC*N)K0m_2Rij%=c-i>+?HH}PB4G!-*0Tb8Hc{P#Ix+RVo2mVz#5shWKU+Q z+X&}LP_tRB@NrMvz0$s4&8pxL6%mjWlMFnXS{m(_Bh}m1fgWqS!@$VXKM1Veo|6nI zx?R2=X-4KH|BXT#@j;-zLXrl)ES(jk+V)9&ySFBhyA1w%pmSva7}BI#a54!>$bNaw zwvzUFOs-bW`$-Vi?;oi?jIToowbVQ?y^0o; z&sTH`01ytE%sezZe8pR?9gnMMs+wL)KxGf@Rf*_*b;a6nk%UNu?=c`3w8Foqh*Xy+ zh^j>B#~Bxedi8#rUNQ8^zLAeg^#*wRZ18xx)m}E9v~+8G?Y;ovXIv`mba06jvi7&> z6?{u|KgM7B4RU{OI@Tq7uQwoB1zM&e%Z!sior9)*ZU6;rLAhsTT4<|G0>oh8Hoo1% z$>Hu#{ZZi=2Zk9I0s~GdTeqIP%yqe!n-;1Fe5LAX;i|?)bv!{Uc^2VY)F0b7?BSN7 z&;oWPyBkJ4R|;&h%?ts}#()vj&fOtWhKkzKYAg~O)~aMF*Kf?&n_)Kj zMMl!6TfqO5f?c(=b%s)t;3NN~;QUAar4K1>uyXbC<3ab4LvG7KA-EV4fnEBWn;Z8J z4D(AB+6Lt*$bftCFvH!UFHhx{iVuwTuYlm^;A#XOnlGPmggl}1?XYBLSU)_L|HsyG zqiLATSxQ99IEI};=p~%vl0VY7=h`&LAUwHZg$Cf&?ep8X;vJ_^oHerp8~DmNK*IF{ zbrTRt%uffGrA@4Z1eFol9nTv*(;3ErJ!T|~ef0W=QkKuByv^!CG@fi~3}Cfy$8ZzO zsDB1=6H4#FMs^WI!b0o-c`HzRK-1@*=)w{nUVCxR)gdzLefH;Q5CkQqeFva22 zjaoU7khGq&9%G8I@nGKF@7;t2EdQCrdDgbp#{m_XOvij z3(s26Y3SLgjHu~(42AhJcJtQS6Im^xb7GO*A_`)ve=`N{#g)98zV#fVxwZNX*VT;b zn1-*)zWmhTs7@qF1iG-CwM>$egQV3GW2FuLtI2 zC|uXO$P0@iz$R*89&YRvQd4MyyI2~X{A-s{p!I9COOZ`Z_qvsOLBFwE%ORS;fZN=f zY}}mC$N58gGKAL53eY#u{m#wmXLlV!Cw=w-zy}=SPb3 zvl$c&VDd*JhwWwN)f2Kvii0`nx?p=qTPGS#Btmp|=@!XK4sGp$xsUN+H_U$0REzhM zO;xtME;dLRu06N*D{SXJ4$I3U7_u18f2Cx-?3;p0omvrN0j2cJ;}i99ZkLTmLRLa1 zvMFC+|>2;@^%>j<4qLQE80u}m3kul z*2}UM`JP=SxX>z7K(l4d;btIlTnLC?#-0rq>!%rYSr z1>nsCqlY#4WtX%}Tl(Hb74cIgQqB^KA1_3 zN)$2z+T+|eQQ|`KON+CHzZ0`X6GPe^5xb|{>WSjZ{Knt|NDVo-LV@)XyuB#*xbrx1 z!cKi;nr~k*+W#_IYT*{~K}L3#M#u)! zlw-!eat9kv`mx)aX*rOe^y8g&alcbxzt;fLcOy0={6%)8G0l^}aj3K!bzM=++ojGD zo2-0581X5@aBu%s8&>gJRcsWUixk5){=K!@W`VaLw+|1U&l-#DdHyhH%(^HXs{gTM zBfGRG;5;6g^QBU2XfSSmWRTY{=Hu3*DLDY7F!`ByWhK=b)@t`BbcR9ng#$ZpWWIik zb9(x@V%Jwyd-E!h3OA7V4Iu--hwo~~ow7kZ5*%e!U=v6$GQY+mwDyKOC-HfEmS)Sv zNwfWd-6PwD?2f7Hoj||=-E8MA@U+5}P^2izWg~dok!0}h_TEcUXyl}dOcMM`z_SO- zQ#k4sZI!Ze2n!;jR*Q{#K>*Y@G*|boXiG=^*ty&`{$>O7g=(e^ifunG@?|yq?pYjZ z_bA$8;r#{vM<_T_yK?8PZ2!c9HvV12JNPnCS9PLs;wy53oO(d4?9(5tv|2u9drb{M z5RX$Gp&hUCq~uR|F(Uw;wQ53s$-!M;~bj`&L2jKHRKpL)WIq zyZbZ@yi8EIe33RKj~ej-Gs?feufFkF1gVPdlPC+5TrQP`|y{7Tn<1(EU>6KPPI zWV?IXFESOsQcfp8IHT0}zAd5Z)(2#EoK#g;d`2p0{PfkQ#KR1v=CMH-Jtj10v97$g zhx!LU#A$NnW#_=SD@?H^mN3I{`z;V|T@}Uccu6rHFq{-0H|>roU)x6M98L@ot3rJJ zL-&E?g&6bZ9uKX6+bP3H@<9Oxy{Uj`n!i0iHfWp@D{HM#{?TQQO4P)z^sG%SJ za3s zV+HMc;9(YeyFtwQId9bbv^|}qYyYW{yU@1*t(db_zK{eF0$R#chGi8P2eA9T!IOtf z6bi$O4E3Ea4m~4v_wht)$`Tkq{B3_{bJcvO>4uYsG~>}+3QH4kb|V^-<6jc%3~*Df zr*ffR^cEiv74%+!-q#x5`&ko==XBL^OlY%&%6%-{5tnPQ0%VlKHdM1kb85=I;ar<5;c#6ta?I8#g3$ijq@AmgZR2`@ z!rbJ%8XiS43!`HooD4jbr;?PId<#ekZid-5N3G}3)?>Y+E)aP+@)Y6b#SSx(>`U<% ziEiqOFt(bros1qQS_>JOa$XG8ROl2utV1J7iADG%#Mf@EMNkRGZsY< zj}gN;`t_@AE0Sd(Gc zJ`Yc!zh;me5PhOU92(cTd{Ccj_qLY!UE1HurftE}>fMnl$jXxY#7V60+IV39L&`$Yo;qY%u_13+AH4zqTOe>ZlpAW6O7^J;rv$B_6(H2R|_w4at8 zXa`o-6_Pm$=$T3z$6}=i^cRewnZ3zMh94m2PSMj?WL}Jw*k0zMGHnb&R~>rz5Y!>{ z%U2vsLhV|u)R{K?e(wwj#>-_$y53y9;txakxrQs@Dht0wItI^YhT60GhRs}-Esi8l z2Is-jYH5x+ztubWBogVdo-MsjlOzxRK1L@rji?sPYq-v*e9QYLB>-@7Ch(Z`m4K%a z+P;SJ73)7L<2nQE*?+0+mvC2F0|mt zb4E3`c!X?pcIH5#uhTNdnA|$R#l@ivq$pH?{+R?5(y@ z{Jb4p-QIO;S<^*PO&Pt5qs1dY=J?8cnJ#-_cq63q@$uYz3M4oSd^^$@ur#wc!6jG! zd?f)^>#hT}D7?F!0q0aYln$C((p>%vDX3RHQTEBRf8L}5%KM)JBt0>d)`S@FZ#{)( zC6kY$DQmScY@|IvCpTs3Qp3W*X{P>EYim~86aiSK;nV2^FQwW#y>8I`A;%}z$M>ucxL^Jy>)d}|tRmr|cU z^uoN^w~7T^_6xha@T^0yUv}I+{;~`JO5a3SLBvS9LO`*>{)7D{aP*hk)Ua^2r4rY&9Tx;|@Nr68s6)c{8c&QV2P@3 zaeCBvf;)*(F#T{^wPTCZ|gHalPEpTkhQX=@^{u( zU-gK5*9v^_WVV5816k|9NT`r86^pwH^E+9~7Z2V+ZrbmyJPSA<$P=j#z8;nJyV{oo zlGJbdOL~~}tPG6AHLb(;b7DRRl00ekvY(&lC8^@2>p_!XY&?35ue|=yrK7@F&2TvCFcNjME^d>S^X1sPIa`8qbqDEY1RI9 z%d>h7DxzC(G7;$B?ltR|CGt2GxWa|<$6l;6+~S@t%Uqf@T5^=89w{c?Sltl9&_;sC zUgVUwf6{09Ud$^y)pX>I9`A!MA)=$?SB%PITPfb?`?S>d8P0Z{{xm2WYbBB{bH5Jn z(m@jUp+bAW;j4%Er=ym^OV$9)MGgIQCGW4N*Oy^oExz@Y^>x1F$G7n*)(@y@nM3bh zS2f$m67PuYpC^R(Z%-eB^XM-<^msx$Ya-#=(L=j8v7^~YEu;&Z9p|Mg1bytHtPIVP z*P42(Z_4@8q8c|)_-Bl9od=F#=G0}4z0ym3HN!WW7O|TjUQuWKcU*t}m_w`JF_~Xm z$wa9yOyud##yJkoU-NWuAnaYsw>zPIhF7iUp2(>3#Y_A@-BJbMX_1y#?#?X{UG)nb6M5RPt5e~e) zl4^A;xSd=_g?l)9_)Ob%tFs7xdB9MIh7x`sCvRH#dswCJ4AW=~>To0H*e&R zy)-Zq1Cn$u9DM#&wuF02XkR5;gljLE_9cxwRIbP&gG6($Ci5z~V-_kbw(=Pc4>W@d$*Qmfs9zy#&VRc6eVoNAsx7*V7c0-&6yqx%_7-- zULoA#P{nAu5*!O2zT_HLOjIdT@~Q8Lg^#rEK2qe9>sU69ym&&u1rf z&gxzWV?1w0pO{@edf)rgYbL<1>+sr|&-5~MVS7%fK1y2jj-FY>tmdRDFdCMG24qln z6Y5Aw8Qv2YG5vtb^(*Tk{y)D~vHu@hg(?;U4DAi~!y4>H;O)_G_LuI-BIMj(JG&#{ z4uzwwG;GaB(smi9KnZ?H`kGPEOXWCjjMr@hUu(f0YC)NiNHsBK6v(< z>I<#3#N*$E?Ks`1jS04H)O_+)*>I!ePrEo73J)9P?t94Y)PN2qQE_UK^_LgWFD!1j z)+p0;mxn%W3tm!DGY#le$?k&dZ+^r|l(@TWW}x8y=W=Efh(4X#Dp;~`#K ze88V4+&}=QT8k$uUloRSPLR};okf!P^O+t#{=q}s1MKgU6BCNA4gW>^!gH&5=V&o; z06xa-Gy=(uxE@`jRTwfqAIe%1T*IU||F-b5guU4+5(InEh^q*I!+>(OkfP>?EldT# z-WyF?W^RYa2(*$vPCAU~rlmwU_1Tf~Sg7dO7RAa4-ES>oQQ%p9#&XPZSVAp-f;E19 zZSsMg!i2i_cmdvLf8mgkmu$$w_0q9|lq963R@gHQHCtyXZVU+x+YRs%R^77AEWbweok?(tq(KX$OC&+b@Jkr* zo|lzMso@^-W8lKcXIvi)AB2hWB>0skHXTt3QllcFSsQobov!DGC;aQM1o>Z_X_4OR zj<$y@Q@QIxzF+me9!zXO;*vomW%Oid`h8SBo8J{|<(iWc4z{wqL0R@bUcOK+vtO%&Ui+nHZoWP9I#7lKG0hpG z7APz*`KnqjqmWqjKw&yQtR#Z9Gi{38d6pQH7isZhD0h0$2Cl`-ZaRfuwByb5)FM~M z^P!Sl8s#y7>w$sx{kXPNb#?&hwo(|?f+}QF5=z1{4c+h$aq!rwpfEwrh3oW`h>R|SQogqJ+ z7Kxi)#OJkp|%lw5HsZTI^;zILrolMog?W#t6g z;q>G7z3K(7+db@2H36Bqb~5_x>k7dBUY>%^nhG#oBXJ{$FfbKcf-d6v}!j z3T@@j)VUY^jif}-fj^{T0NtsJncxLKXJOYT>8JbFm6z8mRLdv@Oh*Dy)_4O%`dex8 zAWCD5Bq`JVCIqB#V58`7X4>YxL5n-=I1l~qvG12D z&eq&Bl29`YwM)ffoZQ^5h!6}V74M{=9s#WEToQpOz@OAwZwf9qN`Scae<>4?7#w$y zu4}jbk=wDOq$gXFyu(N#5;$Kb>bZSh^Y7_yEA_=|PM2jjrG=!(ZK9zu`#W$Jdqy&B zhv-fX4S=_#4=0Lk!#3!^*%E{geWZuf_o3LN-`eeql8P%ryS(7GzT=c&Bafs;N3ToA z#IhTnf`ZuC{UthMEWafj@D$}b# zl?{l=uBdsh+|AyuNC|%7JbwJ1{$_br-^OPX08FI2I2A^f6CN)OmUg9O)@0UdPyzdW zp~CG1t>^JD(G}`rUl9`!-;*8*_7o)3f*nEaXlPf~9eVr;yYC~s&s!Mh#E%q}_-6}_ ze4)GTVSjF5Y$?josn$vYS0@A11y#LD*g(6P%>)X$J#*dE$LO3$#Vv`?EM%f#Lf`zC zdwAn{c2?owd~`&08H{)+G4NW*aYGWGb-k~};tyGt!-b`hW ztsHaBFO%APVM$U_BfFRYiq9#zqJl4TM(0F#xzgB0noay5dtp;Ct{8yi?f{yXv3u8rQE~;5U>i}D(_VnF zjbby;n4$>HDt9x8Vf8 zi~EKdFs3$PPXk{$au-eS(3uhk4@&}~z`7{ljN@ecZJrM8Tj=p(P*KW> zu)N*Gjgke%V|}iAB}%)b_2_*ppRZ)$Ll;aZtIlfj)NimfL*=l7-t@9w*7xh*{B8RX z$f2@f1-~xvypUPvL>(b z+q1@-ZT9~wHfPd$Hr67L#IpWjV^961^{Z`On~Jolb;ez0_3h>**WT5j@Ud~EX@b_N z(m75!bv~47k9;$58Doyak@q)X^Y3Cb;zNts%KBJc-BMTmR}yGe7d3Z;RwzXJp&Jjo zkH0a|<1WiMVr&ljIqiv5T4)F$w({>}quwDmw@t}w7xKZQH)FP|5++LjaH`C!pm)~m!J#5;VLyb!Chqz7Ez^?(k`q+N znC1`KIr{mU~jl2#XxucBQ6VN2>;FObHt&fzK6qgCdjPAP*xu=sH2 z;q;CH^0>yBxi=nIi4eiMYSd#2w9JKgY@pt1Sa&|}_DOwCc#XFc(s7Vok*7*LlnVkT5>I?*;tZwYP} z<#1l&e6@)eo~Slak;c(nO170}@OhTA&JyU+!~)OQ)e6KSGxTK|X!5#N(TGG|`q_s0 zRrL$Yngn8BJOoji6YGYY4*4Fd5`$$pcHa!fbiK^1i+J)e@h4>B;3V0Ccd|FT8+MX4 zH3`~Ly|e~V2XoxM9bIZ~$QQm=B%@36aXaWNSxEoFqs%U4*s9?LAP9?D$AC}*#K}7c zR8)~myBy`cix@nw@B!r|yYkwz<#dcl=0|{Dkq2kGX!JX?$E??bK~)nX2?VGO^_bzP z|6m0CjB}rt91R2gq6HuYXYQpn|L$hD&ofim$fz162hGXQH#NWD4bpGRgz|76N1Kck zwPajy^9czwt8Ax{7hE?hE>?o-!0w^davbOWZnr7szUP~tpTK8}U}`G4XEH1zj;qL3 zZP@zTn%BJE{8HYe#~Mfu;$&Ot8&x-z?>6RK{FHs#rrJb93=9|Jem)M-v=*`MA&8fS z@+|bR|05Bd=t2ZgL9Bj9aslzL9wmjEoEl_qs2)!};#yWLT+$!FY8?kz;N&lrb4fJa7}eV0ozjStL?406ayq*C^6wbp?S;#WszuDn(;%d zWS1{v%UMnl@p^2qR?g!~^B6a_us*Z+xYG*!vN|RK>`Mb~{x>L{LNm-;+6Cbvu}_lj z`PgJ~)Sj$85;vtqaqHO1C!Z}9cj3C(os$4IyU|*w9Xka^Pg*FOH{n&{6i#ub*<^O_ zj;zc7u&ntz(K#4bJ1h`_{4WowrP5tw;Vl3-tRX%XN?YVmUs(AZ#_RTX-8aI(kne}5 z64`MCeC}Jt67GdAl7;6~}t9s_)+Vd{Pw0)_ms()-)M^T){6v|7GzT zB3oHsZ(y|@wC@hWW>xqhR+Wv*){%Yml$Ni;jpb?J4PHcw*|xYAA$TGBH%8mydmQP1 zfQUm6pR|MVV5#TX_?>Z2lpt2XB%-9e*st>CH8wbiW+XQ;0mZM3fKlBVwl1*d(&ZR_ z8?1i+Hhn{<&S^ZfN!Xt7JM~W1`Aa~PV@sI4jl2467Sp+&l0b1!%ax(haCTOkujcUm z#ic&(2}`%x6D9DoNFXZk;II5>-RNjDK6{)<_nMy3#%cTrOE*;70Lo&b2YpE`0SG*a ziS;~!Lk~oasa*Z?D8BWfQi-KVj_3Qt@F_3-EdL!BEe+m|{-Ko6-rd)aCpO6^Wp&(H z^;p%2=w!p>tPq^DXxn&G<;$6FMwjO%W@UPBf3-Wi8pULL)B5uG)7x*&@Y22ZY>;Gn z{*jU>g!TF;)-m(U#jfsN7XT{3*)0Cp!;#W-K)Yyf%haQr3T*`v7v zYB}Nk64xA{J$1Z*2-Ua%_VVrC*TFUQapKM_UQPD2Pf8;W8L!EzEM}_a2~7%k|2#s= znMdh7uwTq0Oh+=Gw0BCR05S~N)suHgm$SN`nzKJ~Ou@Om_3hnQO$!Zq zgI7%JMd&JE-NNp=ukvCucy}w*!oG(!fL6U;EZGOF=0P~3iM}Itv*1IdwK&n`0JaNF zlLgMcrMH&1+iEwD=qxayw>=Qj+Fb?#8efl4(atZ2^hmNUwg?*JmL$kD2Zyk1qphwo z1be*02SrE#e{4|iW(5DYtsz5VPph|zS$zONXgM>0S`MimDyMVf;abARxB}mSYeQKN zi)_r?^n9!qU-PueQ8@O3DUjV;?;cc@HW6wtKq{9-^g!{=(zpBwUrT;tXKyD>5B=2oq;cW^_5IY&Nr*i5EY0)U)acM>!1o6Z=IH2OGs!44oQ6NEyLNV%h(YGjRj=|a&SagQ7$=4zKe+mAO^9&3q9PleZD-Qk~ zNQ7I}h_$92yBw?+&;(v^y9{_1m0;y(UAWAxfIQlEh%q}9?+}pth$LiwZ^qM51+)IPf zL@~NX*d$@JAdLRp<#?I83tX5sBS`u567lj5%zAiB;PT%8s$08ISn_t&B1YA&2|$ii zRkc@4(N5!W8`GUHEh@{>>lY4G`rB<_HZU67la2)@JiyPn_!MEtOVv zX6QKz&P*#0H8#u$v15%Yey}SsFn0#137({-eK4Y0I6AJS^&ZBy*FKx(wI4gl$q}g{ zPKdAW$*ys-Jz^3Y;CJo3=n$TlR+t4_;s~LXJ}v0#1Lu8;$0P(_jyM zigVrIFh0?0?7W>*^&AIxANQV0oTVe=ru-h$gGQ^ynVeaTp3A9j=D97W=Y~oQ*^AGc z<|EKlBRD zNCj!S&jjOX&CZ1TIW+#&x9cF3Hl79i&1I{-Q{_ZG%)Z=kY&YV6`LedxU2XRb4d3ab z;wmc9@MT)0z>UMT{E#H`_ri3B`l>_lW_!^}%V^UJ)8)^g9KQFfgK(B{G+fk?z{>NK zi(!FC`{-*1Tgg?XxIfRzoGa&dHzWz5)_&orj5~A7%+7tUY!{d{U;Hq75=~BcQA65I zp0>uS=?U2_{`$0-MZZ-533Xt`-@43B(Hv9$@Pj81sOk8%ozT_-N!yDrZS((~)%Opm z$^7RcYT6Rq6x+{I;Y+4G1;=N7X~J6&^c3rqD;96w(1H$-4cL5Dd7fEB{v@~tJw7Q_ zMPMB;duqdeG{aqpZgdcJpma689nXUIDq-)h_fdvIsN3%grs=~2zgG*EUVe}pQ_Z)& z@8*~U=K{o-*?9vTWt>-a>aDAG8{8yuRR;c)=K(FEb`N^(A+6z{Wv04ZAuTnWi)3%8 zy!t|JzT;$Hhz#U3)UImV=5A{nAGjvvXVvrGlf{~?VmV9jcEUu9QLQzvFmk^l47~&^3hp3R#~L=gpH(Hgm`BG`YB4z4R4Xz%o)K zy2VOzIza2`fVX!S&Jh^(o@jogC1U;}w#^P6@Abj6Lf7fk)x+sMIvCF$?BX+He)jHd&R6Pr@ zj?jc#YQb)PbzU@F)bJrcJ{{}mo$%ee8YO#`9bm}is)Vry$gBGReL^Ow_mduIPkB%x z^dit=M-sz--o>T>K2y(?(iXk{y?o!2M zH8v9d&f_5U7-()f+np|kIj7^^0Z z;>VgQ&X`L`OGmH0<)-SQ20yO&T6@}+L}5p@uPi;ss0LGo>S$Kryk6Flj6iSzg6*@r z+bJ)}pEaA|=O+baha9-zr0z|59S&UKEobkyr`Y8Nqqe3cCmZDAF>b2bH<>cqwjPcx z?9?yGq*crp)Mgrps2%-jH5=>aXP*7%le6>htlvcni5>M;T*O+WzV&Fbvn>_YaqJpG zzcabG?sc$YE`4_$%LzsX&bU0q?#s1SI+lIp_YoLpw8sSMLAe%fwObSmcCAwUT9f#=+&2=niZia=Op}!nOu&Tuain zlI{IQ(ENqrP<{3yc9r!KbtUV}eLs6e$^MYPjTr8wpvtkc0-B;aQlcXov!=@|IK>>zp8aW=%ec0p zv`+t&X|%B0()MW~FcJ2~#EvfJOWY}sjr8BXg%0V~b1!O2Zp@##h`7KT6v4OOPucQd z*}b-SH69=^;dJ6xoVO0-8eRD~9xOFd;@ktU@=M|B-}!6Y;m!=>2V>K^CaZII87NOL zAg=B%4k^0{EZ-AQ^QGS1(LF6bOPQ?vmddk`FJDsBtE+MJx1E=O%=}07!i2Avr@UlX zjr`0Y@dZuH7|%IH@=-22oPWpP#<-xs%HmOK?~yHv$t9qxwD>o74r8RuW5w)VPuL#w z8s^pc^C?(F`TXPz;~YA^E2|Txrhn~5xxx)H1Y{Hs@0@s_$NF3%(*~Vze7iZTQ&NAO z&v+Nton0msL|4vf-Vic)tzvrBfR$)7H;D3jpG@?&=0qW~CWoPg`qQ3uc!TOtqi_+R zO&6csxrU=C;d|F3jsZ;2<1o2rQ!$lgjr>Hi5@2A4!v>{Q{jD(~W4-P!=8e8oN~MQ$j}DSUN@CO6K}4*h6Li4k%CW8+0m|_91k(xH@=oe> z_GYRdPi5xR<^v9q6a*%WUvGb)aE4-McFU{2n}<>bY|$~18b~WPG!?i`ASKYpC%@~T zP*kfyqM<3c*0+C)R-m5H`biCF!8pHNTRZv$MRrGZdd>ETY>ai7zVdRD8!WU?1Q9c? zSP~_6|HJXOSt#E+Kjf9zV)%Y#2#x!({5)j(H`nqA?rN^F2OG_`VM#b+iimgl{pssx zF1CUTrx>iS%|CaOG^c(_(7Z36;TIlZtr(*y>Oc{1K?izNuK%7gsuBOL(=5qp;i-Mf zFX!!lXWBoA<9zjt`54mjMLz*;bL=K`azn#rdqH!<%kb{xYA{?!oz3KlSDn*$WHIKY zcQW(HoZHG&#at{Y>vSvRX4X}kGyHF{#Cg#EEYdf8S+2N~-5A({Vde4d6g!E3k$WPi zPzFlCKVm>Ml9XRgD*)cprB6{3$RXxN+lJ#g61`$EtD9_1{rkt&o2As4y@og<1DjD@ zG|~PP-Z%0_$GGo%R#wuKQar@P=E(h7WDEBw)UH2Yoz*!;jJ&@d^=GunnnV|q8-%z*d=2g(Ewt3-_=$ly!g{;8O1T2_a zir@mI>`p7;%2q!E>mi>dlP6Z?+ncjkCvDPY8WwE7ks$nQ{kjViB$$Ang|Yad{0~)c z85ULd{SO~fLO@YK5Jc(jZc$1)q`SMj5orXGlx`SOy1S*jJBF^I^MCOEeV^-kUirou zX7-%D_gbG?q)Lrow&E)^5t+THMbo&1g>i8s95>l%idserNq246&5fzyf@wli(VXw0iJLoV#5V z84qjBEd))=pfadKxVsKhZ7E=YyDAQey$se3oNulnAO85S-(CX0$+O^+@;Z%Wg0l*> ze<^_MLAG6hX9WTA^(O!TpUNShLNPq5Jr9*p(;NyDqGQk<2bUTJoLN^)x*S4R^GT1w zl$bNdmJC5K9~56L-jO%CEgx-UeS?vM;=xc`)(ipgRpfDrTZVj@f49WW!V%M5qP6>b z#gfuhoB!LoIz%Axy4F4E%5DXYu|ldh0n6Dp;#$S7tyP;j&%W^|JGBmj)JE(1{W}h3 zX3kkVZV3zSOb~X6ndnaKUfqo4@60Ixtq(#((FF~OeBi%FP}sdEuBNW}^8RhwH>3or zDnnmJ&ZlL712erL`}5)&9`Gqk{*3JCASCffqoWI7QXqW)<-!yIOc%0Mrd)IZ;BbEg zG1)x9Rs%vzl(HNqgN2{TJH(R?ZlDRK>ldC^@-g?5SNr&0K`6fcv{$CINy1sd(@+QJ zmxojhyPz<4g3}tOU;xChK3A!y?UKvMt;Df}1WY#O#9UQi)-sh%D4lv`S}N=B^0{*O z*U`p+0#YPD_fg{cN~M|D+1q&SEpCdF5$6ZcfS&Twn9okhUa(D#6x(p zz>>ZhB`rpgWH%xJ5U^nt5)QO&LwVHeUSys0;|T5j5!?^WbClZTQSA zuj#>mo99*M2A5O{x$&1sPQW)LTjru`HYXPukdZIAVJ^Au?AZ@gNqOxcXGj}L_FJ+5 zADM(>%OQ473xb9Vx=9mRB$(swf9c&dq_3B(^s4#t_PdT7JO&-3RQ^v3K)`-rQ}Uqp zOf&qc3au?dD;sJDvo+Q~i?%U5Txdw5D#>r5tG%^TOJ?!br7)mnVQK9Wr|(lwzdnMl z@;R@kWk(o@yz6wE)kmwVU9y-qCUpUEJ(2K=J8xE8;;2i`TLZ4hV7dLly2eBlI-2ub zu_XeZAIrU*(7M1I6C&HMPkY!GcV`FyralMGh%)S69(8ecZV{i+os+1w70;NJk@+$H zj(A2js@75WWUVk#KoM+*@%@5#6F9L+L7t~YI%U&3A~;E~o%1ho#2=`1 zFSveR*5bhw!hzT2}yhW7~Ol4u3_56)PSl`{+ z9yzZS^^CdO^P)Aw=0nN7oH?j;REgD!985Twb23gm_e6g<1UtKTvxR#n(veV5lXZRq zFN#M4{+aWCpngnB)_M|s9|<>(H!7BU-^fT+wh(k5X3`kfNWM=8iii@kfmwd$s&fmL zo?>RRJ{;%i2P$ZPkHj-NO!6gX@OcEhev8Tb_>jO?q36t{GWYLfrtEo^q;ILIc;>X$ zJ+;2AT67evNp}~Y*WtGvL6gvnlJ{Byd@i@r{g1g`<_<0g1D1jMG7SuI8mhVooVkNqxaCGKF(k=0D#IiS zy1y?wgehgODP@xh^17(peWd%!2Yx<+*C>4V((mtLw7JsY=AP1GR?I1MY;kE@4K^E= zETW05SQ8qAK@l%Q@_C%@ESf~Oa?xOUh3-`Vno{g3tTtL z;i^Q%!fMIKDy*>tXyy2E3a)m z+MW91B-cfqMHYL&7c5qEGjtXMf2Z_jz}~&vUV2-=6gvk7v9$ zC$3z34<=Xl?8&NV0Lnj96r`a(i?**T^o2xk(Vyb~Ch==A@fx9!yE5OzkI#rwnw73o z_zWt;JpH+XDkSaP{LeZJ{3{Mi+d|-kU{9YKbVezeo0Ed)2?%b^DO2 zp*8e+XTfS-HzYH1i82B~^H)>x60PLG6!$N2Kdo4XINg1_VzSTPE|1)77A)(;i z>!zUGRZ47>7V2c(#rcRi;U{qkM+MrZq4PTQx05LB)o{84m*57i4Y6^x=9)a=lj30c z$-}f>Wrd8(co?+580+$a6b~KX9W?lM87_gNsdQV?uc+ z-<&UXdu%n9n-Wjt#G<5uXl7d9JsoP`BhHKVc_iXfP|t@h80tHd@Qz8fb(?wOy<78l zsoFj+0i+qz%Fy{Xz_1@Z4_6!maHDvce~+BH^tX{%7skF7uI7H`=9N4ESUutMwni35 z=6H9x+^u!`?JH9h&RB@=yScKjE~7zoeRghT^9pLQIuRYRr=fAQCVK8I1=fu{vdSM7 zlGyCmsth-hUOoH%cH)HQ2&SNc*YY+RyQ#(&x!oJGIsvYgZ$Em?Vz-UXu%I!HAUZ(! zl&{>1)D^j3%^HJgo8R>|%j3OJ#V_ljs8>f4KL`^9j#MmOb-t$K8=TuVI59H5>55TRi54o}6dHKTy+8W+_+^`$xh1o+u)cIp@yC_-Kf}d-Jp6pY z{4EX)BSg;*oKMtzSopq<$zGfzH#!Bp_XqDVU&#>9OZSJb7X0X~0rY|Hot?p;GhY(r z+-}Qe`QZ7G^_PJuq7&)^eh(aVT+Dy#z90s!mu#5s*n!Q+E8modQ#I0CoD|PWLG85RF1w5>*GVRPgC|J;6Z}q;Swv;r z{jTZb>68HPlVHV`$gShISauS4Ew0E#!9iStH5S3asET4ix(BojA{W)Nowoe2{RtTA zZX60%&xW;}RZi@5Zzpw6(`zV}li|c8mN|Pxw~!@%j# z_Iib$nBvfK*rNXE@|O8|q+Y@u-wUny%K9pFIcpIhT`fBFi&PbvK^$3uC{Xktr-O5M zBQ&kgg6pGD46<5;88SZ(=QMd0~jkBM2ot zRTcmb$C3O!lIMUA%e#)Jhh3<(sxa(CgR@ktDtoy{$o6Oomufsaq!KWL|+bQxYRIHn>a^>DLRqH$CU+w4{@t^V=keksj-*x*g z-GvPY$Y}>$u9e*HE>_iGmWy}~QL%We?GTH(8zDI(0EREbF@#$FQF{@Mh=n}VzPH== zqIfX9?Q6qTv5vX1hy)Amf^gDbH#3Q^&Fo5g8LfLtU+3GH98SI}>|CFh+*O|NWXPVY z(1LA}NjF~qv}ZK|@x(pOXp5-gB+bD4LkyI8Si(%QQAIz4K$7=6Vxw<7LtloepHb2W zd;St_4w(q(HL*BK`u!O^i?se-U*BV!S*g`Qv(WI$i-sdi$*SR^$ji!XHe-g3!M4Ce=V5)MW3Q^5wfb;dRd!oa zdqH+!a~&Ju{Z~&73W}Z92Q__Mr?em~Pg)PUhMu=TFU3EiL?MWy=@>&()evpt(Aw9H z*}>0qz|RObxiEM+!?R_X`L-<|VL@7Z>aN$L-}A%mCmTF;Tpi!Rzdq^JX)ZyLl@1N> z_CD>qkx%T_6`)0)TbS7YnB|Gba)I$qhPCkh5p+3!fOjQ=U-@-G7TddRJm4Ln$@PQoN1rM(kxpA^EUvkH&1FT!oz#nlMpyl&6T*rKrGF^Mg#X@L;A2I#)#z8 zb9ZTyp~$4d+*aL=%OESKL-r-AsH$bX%lWmSo;S%?qNDaz>nbPjJ4fXo`fR&4EdtbB#eI3dN_jLy^z(vxWf5T>@+oa)>fN>(xQ8~f7ZUv&Gd0P1q}cfLyP^eSBQ#J`AMaDu~0 z3lEL2yg`6Ui}vkIS@m(%<|iYu1#|fRaJTM02$m2Leu@XA0wuddr~wrS1-tKiHA@>Q z;bergI~l8-eKl~EYLB&eUUXh3330I#_OQEV9`|sTnml|>7GjvOJ8nCotonjhX?oDF zesUS-56{oq96~7mXJV+hbj5koOpo%98R7S+o7o>%pXkV#KbhM~ZA3I(SS*24!#12y zt-Udf%Yx{g;;z}4!!l8L@d0P>+K(^4AlUx6vqms144M<-UzY^cjF>emHzpb-?dK#! zy)AxQ>s!IF;lJj~8ajF^rrdc7O{h|6hS0kr7U~G8hYUwz^s|Jcw7`Mn^#t;*M2F zzzi6)un^$Q3CuAQHf?{DrJayF5(!v6BL0+f?qr}@V`J{Qmd+`N*TQz=-NHG~1#61A zTpY`0LC6!Yf81}ZA&l3f{n^K&SA-t0OZ3>%vSGc|~B zr>eQBPc23&LV~j! zLuGq!9mYQG_SokNG>+CwT;x0Q+6BXKfH+9rlw_R-8C7`#GwX`^id+=*C3fyyz0h-r z3&zEi+1*=&tdGd{zWkxtSwjuzU1S3f54%NgwftSCrw*@)kb2IPui^9QsYkeP_1Lr} zm$032K@Ujw+fiFp=6vHZuBHq066WQ|zxhm`WqekN(1F;HoWR2_6-Zd+R|N}Df6{8# z>~wp-zUC&G&-$)~o8}L`8VXaqiw!llxYzfpxAqqYCuhNhgTL}3@I4ep;`ccjKoCCo zr8iC0vC{qh{15mN6YpqhcC*D&?4 zgcim^)4Ds*3f3vxOIIILIay-v8DjjXfH}&DSD2e#fflCR)aOsmPut9IAWXd&u!ThX z#@%T_a}_D>%dy#U>fyF^fVOAp)L@=eN|^h<*4Nh@SLaV!m z@6?JvFxF00R@AgTd@l`;|JEpmIPg@32uZZ`T+b=`ID9Jy|V+G~@ek*pbB)mHC&Ncz`A99MrvcKs1Q)$V1#u+Bz( zH-x?04!?p@I&EuoPh^J_R-RPjOd3Ae za6~b!q?_>GJC0xbC0Yq)FF3O(F(x41!kW={SIF>L1&OHiU?jsjQ(9OK6@Nh`HMm#Y> zk=m(4=6oH|B2{pMtNEJ$FADAgvCg*Rjrppyac#oM_3ndHu%eieAwV>T3aH)5q}J2k{5nes#cften%H~8eR6fx9fT2J zv;hs%8G3p8H?C%{Tan_2ECQf~K0WxHp@xn$xK4KgR;6K>XB*o_x|j3*=p~#57{T>> zYj_cDP!h`<{Bz+Xv!gPd34BY? zIfAcOn^{6S*mBpv%GL1lB&8dvW#i#qtUDDEIDJjn%8u(v9(FV&GKIBn(ns6vMMrUs ze9>D=eNY$qBQ2c4u=X8zAD5jpNaMU4i&X*dAyBwyAC1{m4%Zfh8By)|dCSAbglcll zWDU-D4NaK|v!Jk26KPk;b8vSgxZ_jUXfA(JqY0&^@iSp0eEQizHE+SRM!q5lIvyyw zxnbRDTYh9Q9lOo#TIL6_TmVq`!MnNkNrB-vHzX@OtIYs+pT4o$U7a(VX5iDgK4#zqWv#Wmd1_XG^pBhp$b1h2))iR^ z(Wj1frf9kM*4HB-IiVhr837S--Nf=OXL)Cm*CK}apAiLok>-pvi(MlwdpTUrPi&WfYKya?myj#goAR*a}x_NYNO~ z_Z!$^(EyrWSL)u|j@Ix0`>*M@pG%}f`FnoHb|7RXHT1gff*}gN7iZYw_h2|!>j_J$ z(KG%B-;#e#9|%75*B{sF2Baqsnu6ite-kmXahWh2K(v0J#1PD2F~Nh&1ci!U{tuO6 z(=+)t^Xi#!bKyfy`wwQB;cB&&KEu_jn7O-?F9sI}o*EZ~BiD`0^X$L-f6h#=`33V` zGB9qDHR^GlZzR{Pf}tFknc8i|XK%&tUHO)V^K8xMRKS7NC)5-yZy7%QhyRQODXbr^ zGqv^FE`b6HYE{<;g^Gr*&R)^(QHBUC9723FtdH~$o>m8t)%MI1Mhe^ChG~`SHKf*W z&tUVYHH+Z1&GKv)ypAYs{L+sM%^vuln&1In@m?Qr?lUrR2DxOLq0K(JZrsBz6$nKD8KIi zseldyb3$4p_YNX;HH4%Qe7}|JpnXZ)JXwC%I~d{z;+CKb>f#H51t$|0urV7REu%hh zwCpFh)!TQ0M`3eJ!DM9U>0IzFNY~CR$!|Su9w&GV<+UrbT$0RYlW$w*wUO&*bMqe` zfnMc5fr{1TXI{-V)z+Tp-{$}QE+77ay4(hok&+X|{rz%a^WWD~9=wIeJXk4d2q>*Zz2tNjw9uRF5+3u>8o6WU&dkYQJ&cV8cRl z#Z#1$rd4=RkKk6S%hS4|i0i2}e(7xL@s$a&0inIF5&J%8z2X>nPrV(WihD(Nqi#By z8g+gJZYIkw1#zDP#~5Ukov(bDB^)3~6oXY4h4-Ta__T|kq|2pG=uy(DxJAbL$)XS? z;aa7`1*u;ph%N%YDW~OFN*bl!&;MtbsWe@PzjtrKRU|u9v()uN0#B2XFbS0NhpW-9 zN(aHZuDi4f;k4<$J}?4<|UL9CM4_2ox{%AoCvshZy$dkb93Ufg)1;p90j-`l1gAg!>Fq+L1TZc5y6=_d1@CXIrVXd}SFOZ0|8 z#B9V4lPye+V@F(f?NK1qJaE^&{sYk06&#IHoJzgL=-T4^+D~4c6sN zV7P^aJW^^lzNf%jfQke{Qie-+Tm0KnS(1blrEoJewG*yJCoh!RaI-k!+1H-e3g)|I z|G#*hW@vQo@-+oC1AlKX+1`jz!KNF2q?|!}B=IdMv2mn+H1jkOjsWZT4oFUI_0voB zsZB?Zk7Q->Rvf{6SOp4s({HU{fLnridIILjz6`8OE^l2KjDPqjnmW;&+?f=OQq`VkTr zVY%r8!A4H%DBFX@_R5DD(|b57>8GPe+SN-yIw$u+U@VjW0|hT>G60~_{EE0qum9_! zWgCLR8<-7(pclatJol;iPtCro6 zOD!V;h+|)G^JN~Qf!79<8n`knVgKz^AWh*Tx>Tl*-90OsdVT%F&}Ut#%}NLA~& ze!}Ja&{)~~^F%>GvbHWC9E`I)c%UxD#h+$WR#}h;0E>NvXSpGy*4-7ymlmmol;j`djIz&WPq;&+q$TuM*>eG(p<-X7ft6$%;DJ`B4C#f`!(^{?@ z`h~rHGqgm+-M1VCf@p`Kmb;7CxF5_!@ItqXbqRcbF& zV-PJ=dSgx>JBDWyFdZ>=KFF?gJ5RGSYKd!(+vfSBB~h{8r@T}oL{D|P>G$`vz|eyM z@jw7fH^wWZ5ewZ>u@u|r6;~+cHC_wKyC?Z}rQlRxm`G5qn~rz7ncGM^>O!yu{$uya_>tO5Zn#?{ zmrreE_}`2hG9a0ubWHV_zcoy4f%V4KE#^(9ndcjDBsv|tqb0U@(;G^D32AVgmoIYH znWorQ;^OQy?vO@qzbmCjWR?h~|GkVzhcVE~-Z^1D(e3l4>Q;#Y&bN?2CCFLaCnw4^UDia=~53drZio0L|u{btQ1Vdpoo%S#(cJw1)dCQRz^qkT2g0N^t&JO7LzA zWoXN-+y^Aed;UGaQnU0Dc9TFQI0o=$R0wXz**xTIQR zBNEye&a&Z75OR><|G>zu`SCsVxefe>iB_3t8QgnZ z`PBMo(rDFqb)p)3Xbor!#M1#TV?C*w_2po2grCFV{aRm&_BY)F;cl6?RMRBg6;(bPZ+vxI&!ip$7#G-<~x7Gvp9*$Smsq z3BmRKNb85&*aM=Z>?EW&Nz3>PwBR)H1h(C;-vMCl;Lg<6W$BUc^LG8_oBwG6YO6Q4 zEm@4FbGqQbWHD{?ZK<}vo8qP4$freKlY86yEejt56!S0lM}^d2L38XZg9yO)!9pH_ zbC4^V*dMObcz^ymAlO_2BAabCQeNdZSJlUnhX}xfjhrk6#(8+$#vTlx@iQ0u&%s{W zL3?|6xb+gl8gyV~>&6R0my0{SlM4qF*O|PpVvMP_q<@r8cPD1W5GfK7?9mZ}JQD{o z@0e34c*_1RH%Ld4MHmUVtRHmqsw7BIl}v-(hk)USww!@8pu2d1^{4yVHYS?{gp_D5 z2;w(F4HAlSKN}}Te)!Mrisj`-SWZA@KlN*703*S@HU%;i=+k}EadDg~QXim_%Ci86 zl{4dK@5AZ`43mQruG!39504GHRSmnSCT4Asu~F0*`Ue#WV*Ju$5&K;SA&_A}R0tv} z^V!{ZcsVaTd@S7ZpsciXcUYb*RNZ#=uv`FN6fL}!_qbgmI= zeT7g&HujrUpS>VuY_}ZNbd!9A`s{mb!MVtV5xIzPkLQdFYdDu#oNod{Z7+FG=}kJ1 z+kid-eei_sg^Y+O474mW6DK!$nmWzdS`B+-1+<;;w+|*)k(!Qdn9lyD?yjIDB4FkK zkdvB|l5)S#3%NzYV^M z$z{L*qyLp|S{NXgw?ws*pD&DxMTEryKjtA<$2Gad5twMvSuKr%=Wj;cs=;<((sMww z`@!8f-zCR1u5bx|)21y0qp(W5E&FAhn}@?AHcvSW04Kou;@*Lnho+)ucl@gZ>OPnK zVqHBBWf#v8m|7`j%fq#fL?ZVmK=(%~_4d$Zc~dKT+KI@IWP8oGvVZT>c&2L|d=#n^ za?B_IJ&VihMiFTq+Nrfbs24#J{BTN_^o$!!Q}b3GZYw$#8`L3=uAZPrqGn;;@olN< zbj(3Sgv7pn2GWb>krje8$l2DaNDSmLt?ec;zk@z(u5XQ?X79w%z>S={Mqd6;-O@x& zzISO(V9w#4=+M7P88I)HpGq63&3lr5u=Dgf{zm5(fHM#8ox6IdgRfcZ%F)_#g`*@0 zVti(;874mj+d+sXC%=;Y!xZbi7C^&Z-mVKvWSpA%%eITQi!a)SY zfQqlvsRC=O2nj=<==xlp5r-3w4LeB&DvufqKJXHR%v%qy>(V>Em++r_W7^}{3%!lb zB`LsT-8)k?2scwTvQfF%%SBR5u7;h`+kTa}{2ku9d=mOAH?1gB_r7AEYwsn_x?QE? z9VQlW$}-F32DIvZsKppLFEho`sFx^0%JYEm`dv<9*X*Xi&2Xm;k?0P$7ONMwD*BOBGTi`x_rDUU> z!LZ7XqoCMBm?BiMcV+@7L=99cc}=NH?#UkZz>4hH?`G+8B5~`ke(JE z&QERpd%~QvyZigBejk&whskm7CbSiuQw5_cbachwg!;j~7&C~~lWeW|E1S=p(@d;t zy|z*cNVZmBo_Rhv?15%DyiGgv#|%cAofmnpIn#)fRq%XaYA$#m6vg}wC)L>nvv81E z>^JF|CO^`CQCGjJ>Z=&&AD77^k2Sl5Yu)Uc*quksevr03U|^SktaowlMTlF*^8`C| zVyjnIv?a0K8cv_zQZW6CUC1-bu*Q2O#fcz($F+E^y~8sSSeFJ1Myk|8vTcac_I7 zY8I8TiLdErBvzGF`rA_)4rph;Q8^{jWhxO0ANv znwvnfk!OiRf8Rm%0Y}{*@sOXg?T+dke3<)smaKhiMl!6x3N4GCviAG)59jr(f{$Nw zB@agROV!aOAYsI9pxgGoZl8JJEdy%jr=Aw|Mh8^s*++9nQHx97lb5KytA?L!KFYL; zfNDyqgNcK!$wBXNd923=%i>OxCbN1D;n`7Uq}s>?*@>JXY}TA0;Q}2o*zNUe884GA zQAZ98pT{>e#iei8&8>JDi{J?FnH2CugbIl%MT3~WZoRU z(X&h0X%^d>$3q4HA@p~@jcv1!cD6SHM5k1ZH;Z$YG4SZ<=-Q;_N)~uOsQ)b^Yr@^p z^5(9M*slio%77}g?p@tkbo$_O<<=P4ghYbQy)53n8s+9_-~FS;xl}Drylz?ahvLY;ZmVDMKho4L7+ERscVGAD1-vk0*5+Ir!3 zw7xY`r74@AYqdI|&K#oq>M!tTC;GSRutnjV1UN!`R|)rk?rjk%%XXt?;7)5EIEXKD z3?4EKR~5(;M!-VNo*Y|vJG(N!0+()as-XB~BV2qmoY#!6)g=tM6mcbX;!@e6y;X|r zXDd2YKlO=rN+msEiBmyUDLvc*IXJgkpwh+Rw_;S=Y|xkT=WbPMlEbiX#Hky{AyzN| z4nV2p;yb;+ZFqALJ}i?$cWPxLl%&7Zt5xShU5f;iM8_wVZ}oX&#+&6?LE!{^4Namm z;S63F->VAe^vHdnK3}Do!)k2;oByG8muT9`CLC7fR2Af9w67CM8N+zPWB@Q6waE?B zC|3*;n+zm$h>juHD*xV7`N{wRKzJc3tube|i<);hF|6Z)hnPAv{i54}%jbRaO__I# z52uOCg}00-Os-;MrRDo^+xMz1{vr|H55>;`IA)x6<4S9(%=>e7lLo;g1iU16y}G{@ z0SxoAyyDKV=#h3*IAA44g!Ec}sbtW0cMKubW1*|P60VDi{W`PzcdewHr>MChAt8^+-#dPRO5}j=@7p)$ z<*NgEe43j>jpe+Dm=d!m7fZC@>pr7Njs5a@mepfqVis&!QSR-fz_zummm%Tmo zifsWBq4hCr^&k~2n-3nFkm-v#9@P7#aNM0Y2Ds>qYGUfm{uM7T@}`>ZK}?{gfjrqA zFd4TJABJ<=*+LM))oGc#XFFO`Ebu7Qv5~IkZd_95X}xlb>LoY8)foOz#i51RvB&w$ zvrfIT>IQ#}KCl|figwf;n@rNkt}uGA=ugw5aH|afHk;~5QHug*09IP`wX|A1<@rwocz(!JT+0z;Wml%2aMR+>kFK3 z-TB^?>P$G-QNSt~Ml}U$P>s5Vi9a*AnG3h?BLSK(1qqhUN4Pscg$%$XlzgUzYg3P& z+zKX8z2X4{mP}jtxcE_gf<^+5EjA&|OJ z9wJfz=tQX`>o90f!x1S%Xx06$s6z&dt9-S=7VXE%(V&YC2(|p3mH5`x_|4XwCd{&< zM^G3Qgom5r2K4h4{htA@5nZ38gRtg%npsr1K*)!$)yDL0X zo`pvJn9W7PqWL9BQoBMSI#Jbhva9mnsHmJ{Z=JD`=R{ljPN5xW3ZWWXv^R=~?{OWhfS58os; zPQ0FYxH{ENtGoY&P+3%JV&+>#TLJ$q55mY&wsxrlON*h$2ZTiOc-FN?qT-`o0JV$y zGbRpxmx8}EKBh&Z2nYvt0l?AuM2t9v;Go=^!aBZKig}3w{Kl zX_8kmHqG&+ip-m(Q>}aVhVViyLjpsNUJui9l%N_IG)C`Vln5@G(QJb=&yc0x%*UF` z$q_t%f51`Wx|{YoKo2(K=-U)Ic{Cy&kf z?z zc<5$$sCTxerg});KUbCPFMWi_dV71rSE;Fsysp>_xPss3CwQ%xjU9=j#Ygx{Ye4)U zE^$Ed=_C;K1%(4nh^o3b2s zs=aR+PpMZd)HuC5HI>YP8sAEd14buJ=wWDPw*8rb z5WK@~d=`D#?MM5aYuJT83#1qO9vT{eHBm9#FNx06N z=gd$d3x-NH^>Go6v)fw_qUY1zygu}~1ARTQ&PPK@J22Z-w|5r4nlh6#exdn28$Bx4 z!Q`0GS9gvD?O2S-{O}EoNyH}x!=ed7=Dr%ABgn+6(bn)Z7-w}AG2Bn?Z{NOwd$_)# ziE_*uF@^(NDZs5yen;k_=>Ib66)Qbd5WN$^mhk!oV5*p5Ya&0A2!NaL7c}r}NAQbu#)R$K!(yumr8F356}nExIesmA{_JRAT5f^#TZj=8#+#+MEp{}^be zGJFSV*}#{nBG!3@3KO3&Uj^Gut12!%Q~yHTwYDVB^KByz%ZQOe8*o`46OJY=E&J}I zMFX%KnMIRv@=aWmzJyy&w~g3E1a}ue1s*?0#ZdZ^7D{FVmpwCm;gU${QtA$6(dhf~ z9PFd-b(SCet`gnWosu><~{rk6i*o&+0ys(6fsf zrx+MRxMo{@mFuw>;wzoE`@Knbp*MJ`DRkRC+~&Q9^@VT7c~jN`!;pG% zpJLRMA)D7jVyLB{n=8$2O;LM2Kp0wNe2FXRq0y^XD7(2FCc<@YvDe|%o*=QF80va^ zePa&#eb*t!WOaWDsXo%3UzOy28`>O?wX!BRz&Q7;8H;yp^7V>NDUTWwCZkiz`F0H zw{}K+f*0Ou!wU4B=cX|?qeC5M@{&jim?`#VtYO%mKb_tRJ#UIBmsp7^wLB_*CK9rkTAfhY-3?EIM|mN+Sk^1C z=M;R*bka6`ARQR%?QgCfwFAJdn7Kc1QQYEjr*mlGn@}05pSQpNB{Sc?s-EYrniN@g zQw{IZr}1*}YZ6YVuyuufs+ci)3o>{{(6{=5qXM?ONRn@$d$h%wpvYN?6kO1~rIj}y z+AnXC3mJrmJ60#wQ~=%Lo?0}clB^z<a1Ba!L&w-lsLfMX$(PYY7b4B06`v=+sJENMtW zX67q?M9qwuv(KW30((oRdFUQ9SL2z+JT_nF7->YB6;aSdA8SWdg5$i{hB}uKt~-f^ z!-<6YhXO&90J8OmxOy9tXFU>AlIG^VjY?iXxZ$V@0jZXe)U}1EWKYqXy3Hj)@La$) z%YcSyL4tAjkU5;1=E50GO76y0Fe$CNDmKVTK1kO-pvOz)$WELZs374R*#~1ffG5;lWx-;yP>m}qts~k+a%xfcy zvi*$ZOM*YGddC~8H@+{-0aInEfA24<54okN=gexoI`yQ=b1nm=AB0o#L`Tle+Bl${ zaWHr?;r%*tj*--G>SLyTMC7F)2aKmCZO%Y`--R10XjykGQ~{4=@VdSMQY32c8g*3! zmyWdh^xL#Hbt+&<1~DmYAb!e&y#P3W1)J*ndFb=nq=8JEYx*+*`f7n0G_~Ijb+q<8 zjSW{($4+xLS=+5@VW_oeSz$1K@7<1T@A(!lrW%()S4MoG(u^?~w9(k|mQ6Ixp&v9g zan7t?32(eFwcWMHmCk84ZGDpN2pI*DZtzDa5hoIB&FP+>%O4)&ACi=Ej3i#U)rWf| z2Pxvsq32j>vkH6!OqY3*-J66KvEdrE^&!ugh@k)XamApI*N+vl|9cMHfeRIM*1zG+d9EUgf`A`h5rUG8(^t zl$$(Eo$rdW;|KmY>aUN%ito1CdvQ|Fs-)h8PkR6nI5zaS&chSbFbhYPN0Mxty~SUFD&P<+HFhzK!m z7N~eN)Mc=Rk}5%Wj#AKsgI>;MdD$uDo!v-G=A;Fbz)%=%!_G~o?*wl#8sLBg$#+-g zhUQF1y1M9Ml|L^r+V=vWY3mT6JOQsRInxP4$ZIcYWy@zQAVJouVuu&2NN~Or#|KMp z@bI{6fBD4axY2-M4_AcLfI-t4JjIZ0QxzQCD~{ z9B}^y{ozm4 zni@@!b;b<~8Ba7GAMj?|G~WJVg;E z;6`Lz;9N*BIhz|L3IBdJmgdYhw&SMJv9Ss|yjljf-sj0yR<5aFfAZ&QgzX|*B;jA5 z^BD@9*bk-?8vjLIFug$gbLFNU>pG<^(|pW8(*HuISD00UISIp40byh02mZOclEKc! z##hcS0vp$%s44-@1OWXjrNw~W2nE;T07ZVJcsL;>vnp#tuM&!9_AezD3%~10b7EPq zc1Zz^kWjxH(PFo?|Gy{FFs%c#NOvlI_;ly zS$&PGNPdXa-o3HP@bYs*JTa&Dsz>Zq%w9js?&S0b8~3?woejNiI%odjDFBNMIDQdj zqnP1UC(xN!^#Km;dLnZ+&8j)I;l>^A-EAcY-*463XFGOZfRYi6z`byKY>Fy`k>D=f zshfu?Jnm^NMrv=*W2NN5S!NLEf_M4eQ5+zs=^NR>wWFAHbH`i$Ez~9F3tvNg6Vwo% zlEy>&?R6cQV1D$m=V+d87`aFCyD++AJp+j1p3S&;bPDRL4mE+vR$=wiE z#uT{7ig2zDi)yOzkrJ5Yuw7%^VzKj^;n|0~;FCi;7*f*R?!Hq&`FDhNq*N#ce|AIFa&`Zdxlk@Ka;0x7OSa^h z?-1*m?(|nH94@x~` zGXm#dg5-&(L%@T@BBA#xj6r|^ucbaiWkpowa3TsvOBXLmL)=wTbP3uywPE_5A7(tj zsu2$0A2@YeR0~Z&g}`&3xRd^SGZ_|B-OvY8(qcpT`j^<^(T(B}^F#c?zxTGw2KYk- zhebq|Di-E0l*FaITu+_U{h+}R?23IV?;G>xgt=OD6UJX{>K|8am*fq4X)0aCc(jBn z7?jzk_bxi*b_TVI(gp>j^sBsonnlTMU#L&7GxLq#+|z>-v`+r=8?;b+tAF&u)TE5N zQCkq+9)b%0Ak;n8r|``~MYQwARSmLV@^F#+S4BpS4Y8^f&DZ+}G+ztAn;h`_Ha%Qx zBd;lPqv&XyFeh0H?1W?HL`L9<%ccHJUdAfYk`0rIXcSd7)(`X)i@LF|n z*{@5Rfi`#eShZm>QamJuImF^O86q}@ZDFVNc3Pvi5t2$IX2}>ACseT5i znj;zlRBF+hcHwsvqch4&3rctj?trbVEmHg`bue6Rlogh!t5~6e)+(w~0b81wkEd4^DM0R0vleg5L%b zE|(qC7RTduGoLQ>DSBx$csKSqel>!!fSsqVt|l(?BP{UHVNIO?{6I=^KLc%9Q>>)8 zj|55dpQB`$q+wcMeL{g+%knZkKDM1>fySsCfN+}J}2q@A5 z($d|Xo9^!1n-F*xUib5j@$o|){$SOd=RD&GZ`+8G9rd5?1c;xf^F|ES;tm7ud_jlX zyl*G_g(anSCtvmI+)|Fq?&xyUlNC#VoJ zK9ZE8vGkw_`Rv z3&b2*$$oyvvO4J`)n1#ofSzNm97B0Zk9a(#bp7wD7-cQ|3k_#S89MvF?TrF)dyh_r zo3HJpLvZGMnVeVn-fev1+#LSoHrYu;<0&j*YhnX+(w{S(TxTs~<9yv6yT#kOJ(n5K zHD2nmOc-d>o+Dbze_pz*7U&NmYe`&Y6q*Faa^dLs7Xq;gP;gSxVeJh490tF4JuGbq z<${ixrb0H5k2ZfD*Fnn$H)iuXkk`^tBlu6R>k$&WB1H}~l=tf$n%-AasD0O|8nW@G zNF{e&0q5S?o=q~Me5wZo{Qw%l>STnW{<1&KvNDLQipf2wo=^m5+1>!FcUOwBs1ax* zlGP=G016SkVA}ViB9#-4d~k^6s_gNmcpLI_GE1Y>G9AYh^J{|nj@>sxdq+clx|Mgu z9RrDG&P-eE7>rdtmx{(iQi#g!+_unbm1Qw6hyF+eJH>m0zly2KC=9GFqrVhMcR3zK z83L!llL<#5pq>M}&G)b>7gvXsS{R`sBA`QM*C@nudfuJKa$wf!zb{U+ef@7{#9upD z`@x}P$iv^u_WV^&IyzEtmwHUPhJx8plHO}t_0N5LN^fY|I^*J=g*>x%dkXkKj~hoW z;~n{a@bOO_Yp<2Bu}?yhpHR&jNV=EGU9DAe9w9#_ppe`pOQRq{?j{$#R+LD9O-FN> z_2*N4NmmCH=b8@>%&z3;oqdq8rjo=u8S4D`~0{+gMQn$&7DcW+RKWxg$K3d4xGS(XK#OgKE9Qg}$ph8Pi+0r(D zT+nOp;3L7SMy?&FKB3{z0k9es`66Yd(>`O=?e;xR_zOnhLBaBl`zxz`P zapDvm9m-iEQ)hQ(>OW+#pox1v6`|1eWabd$9F6)KVVrBNb|6=XpG@zvYUC;ynvjs9 z#X!7YfH-ki6Hw=%H#_+Web8={MMTM<`-PST0Dv+S*{^WS8tcqx7Hg{xc4r~kQ;Je& z(OZ;9#(z9u*q+=o1v?Z7a!)1Aq{Yf`uYC$y{cP@9m5i=g%CrSA_`~MAe3{|Rf#7BA zOV>_0fWWXvs&lJg5a>!FOh%d2us=0uRrqgjf(-Z(YT5c(F&*iU_Fgx~fK`LC?kf^E~6o(`~@{haIn zu{To$*x=g8pv|x1oAdHm`yO%zEXY9)Z z5k-O0lGE0+`w6{PTPZBK>E-D`oBVK6|2oM*w)n#0UB$r(ozY zGZ9G!p4g2kD1qZ<1706nWlcU2t0{_VPWS$Q54Lj1Aq_*LAZovj?RX-KBgjG={#)di zDZgjjNqt~z@1D=K9&f;>jvA-M#Ga;h;vMieQm^J-yioUVcsrTn38gJ&i=`oy){YjdcI<_PwrBv6l8dP+w~fitmiJvc z;g%{R0%wTDp6hld4VY>75{%`ENIDvX%guoBwfZHg}SlDp5fa%Y#vp0sWxAX5ZC z&62pI0jL^MYGmG%vgduTfPT3LC$FHVx{*4#yZ>l=QLUe6S@y{ETAeSXrTip}Q1{k< z)us8r2m7FdwdH-ZAwg)-6xXzS&Mfc11{3;%F%tn7jii^I(QI_WJ4;;ow6U&#AOxjf zs!$7>+^^&uWaxi^*w5V^Zuqc(>h%=-6a&6^{LOIze`b6Tj^SW8_0JRq_I1Ra4cN&(Nl_&yV{SME^mWkh3aTPX?gzUi>!CTWcS-va4Ou_VEAW95H=i<-2o z=Td3uR)qh&rKh)g_-OyYqrW;XKBjh*e(8@yIn=UZ!gRsaOW-Y*ww_=?O7k_`AM1di z9tILVbQl4^>}66~bV*LZviSAgeN&Erggs$CfSUfA#mw+9EKPcI_vA~)`B7Xwp#Q6w6(^&s_XMnK!7UXb@F}gsXb?gBn&v*y zPzZ*zbBy-;gfoH zf`5IiiWuRa#iuW>ZJ8?W;H1bCidTizCIqFhI+-JeV-xEEb^_QGP>Lfv^gV@9{_2Y7 zIDryg^k7Ev8)p`?WfM~5@-N7+fc1py#lPPF<2Q~ z$oa$T%XS9bJjObS*OR0(j^3yjKLTfa-;VQ3t=!YssM>n(IOk)^6Jd<0nn|@y-e~6 zg^f6MV+Q=!poQdR9$R~%DU0gcrqJ{aNVfNvGQDpvrs(wW{8{ETF@Qh_x!4vzwx7W- ze1r0;p(L0wsqkTWw*~5Z>KMa*k(R$2%-nMHq?)^s#F$F4nn z9b75ZuW_#T{eKalp|QiZZiz?#`)Zu>q)W-28hBz5jgTpWGupr;sb)?)*Nc_kpIYFr zV2R%lIf%+9*Jb73Oq4kZTqY!_vUkd;!$}n}^Mlp)njcOx>hXr>Zqs6vi8VQmJq@+b4<)ebWWiUs$1tbc0=k>Gy8iX_M3B9> zgRX6h2P~=<_46U+1+)Z!Vowr&Sr&buLjnc%>whg7;Dmv*4rQrDe_#g^`3;}e247@-Y!7DPyI;BT(IIGcF;yxB`VH$-`h`(hF_Kpr0f9qxv_U(}K-ErT& ztN+XTM#X z{xmr40Z{Q)*0oP+wnFcZ5ISnWx<8j+QMNdvaUbRw;2i@;Ylm*EA_ehh z&ZuECJ4E|a68Mju$a{%!9sbpuRWUQ=T{ZrcqI&(Kjk!KkaH={|`|9ScBw;PiIViLo zh}*wefo7+TNDdHygBMw4UP8B!ZY{H7ml+Q=ruz!y4*Ui*aKD~da>Rjl#)3P z5{T>pv-%GPge72V>yyv=L;?d$)zDEjY?(zm3&8+f?Sq{!miPmupmlNEIxVe5oOE^Z zP2azhZ_ph=P74}I56u^xzAn}04>n0VO%Iw(x6J7*WT?$ai6V<`{S{E1`C7pJX}2%Y zyA9|nZ*fE^#z(1Xj39lz<@Ulu0C1DkL=FV43&lTb1<~K$-zi|_4;!Qi$u-&~OY`8T zp^e~i%YQYeV{CBpYAf!$4f(e+-&IoZ`9U=mG(G@89AAF$2%jT~H8L$;j$}{e+-xtd zt2fcU@7`eNAe9|fJ>Bth3R*gad*gzORZSLq^es&AL$4^XT&fXadRKUd?)uaGG!6f8 zBoBkWpbuDM!QqiV15CazZQb%6|ZJ7kyK%sK;Y^TMNM%Xof}-TH{?6wQ-( zT8;3WpgX)Y6Pu*I9YHSQmz_qhgc{%Sn|oDl1i(*@;t6RX+C?kQ5~rAe*Vp~$BhdYN z)afLUmNd+#2{ZYzg+95=2sGV-cSe=pDmqWZd@8m&DQ;*8PkJ>T+h+mDK{U@aDZUGm zD%v|C{8_x6>W+Y?E@)8zfsN8%5)@4{P7W83z=IPUR$+_d$F7{0e7VdiwMS&bpKZDzklc70zV7~3z|T$pe5V7 z>}?h>UfY5rMPoM7WSm3ZX;(*>-DJat(YCg*dn1TQVez-No@Oc0T7zJH} zeC~YxFo{#20SgRVRp#YdpI>jMEbaK9ulj}5dhcbMcsz64UPCVwD~6U4Z1HNnIZRVt z*YNU&ZfB1(ZFHnP94Nf9$j64Bam;naSUX#-^rQ^MAV_^o?RJ zMWmkX@oi!ad!TF`B14Duhl#vtMRTtbWu?#&4KvPXiQLBuued%I^+43-&~{H{*ZoMY z+Y1xA+`dYxaM!eIQYqIK1l+_=&y0?MPD_YwLz_o+wFh{QmYUM^lmOAJ$w5v8U(CO4 zzRF4mIIxmQ*VGOLSHs>+tWA)0&&-z{b78Qv3Z9C5cF88taoq4(#1%)Y)l{N`des?t zk}kbjdM0>H=fafh`5C*OoQ7OJlD=x2xyLHh6MFmh>F>gw%4tY#iQ4kMyS}F%x~c3A zc|I@S-i0f|%1dg;G;8>Dgr^z5TOd8yX^^1w>C3zwzC^Fe>v`4r?;X&!8Jy^Own?9A z9u%JLRE`M-RU>j=Sl=RsyAjd**{Ed&l-ZWJAoNe|^_|q!ms@|mqdU{Kbxk}$U2Gm2 z;S}@r#ejZ7m(gIba+%b6f7R=iOj*5VFQaoTP*VOK^mPGFo;=pLfX&s-^A&X9gg$L= z{b=py04ZalXot*P8SpGsT+lV8&Z)e0R)<;4{H%~w-3hj(b(34a>5;bi$)UgAzS2`b zpK@z%b#u<$)KMv2Nf?ysD?J=3LtJi4F(21kUWvV2m3eb40I~eg^%RU(j|PsPZf~x2 zo~V`uAc~B_j~&@}mk=th?(dfdsiqdcTD}iTz-F@l;&-pQK7NbXyQYrMqr^|NWOU_z zV#%wkM8Gt2$RC%2UC#>{O4ohnniEI84$lxOz+0ZSy43NzrzNC^P`D8c zXOV{>2p0(ah{!o%C~nxY+|GayXi03hC6IFkr=cu$_llo@A)k=dP9{KUqACbY9TE8B zLVk>B^D>jo-PS3Bh{{kw*!AlsnD|8GwQZQ7yYkQ)goOR1DSBb@lJ%fOEHkBBy0jX+ z(hkVT4KyaF%K}xVMC4-BNd8;N&<}R8Gh8cu?Wy0vbfrhI#CB|>wbMz@^b>28Q;;c- zmokKpJ+L+2ZPkw8Ji2t|_rGdo^*|--3v}?0;UCSv9Z0kk<60tAc=!Gxl;rQ0+KE6D zWKhWCQJfIRoD=Z#IPqI)^8pH2GU6vh35h^4VNTKM(wHyQ{qB|rr=KV!Hmd9I-4L^& z)CXQEN_=#@x2tX487IcWL<rpiZ+?8Q3;jk&!Js=~ zqF{;?NJHzxpc$`POV*#^TdE^gAj;VUwdqOp%g)Z&bsxd${2u(O;uBh@f<++;9QQ90 zrx@?ZMH)D^fm%Gws;eGfS;}dl0e{TK5PTo<>$v|RxP@YEqgS{0>E<0&zCFZrha!5R~xW-u(#%d-s*uU&HX z11Yu_ZzMq<9?;CzspXx)-jV{S!oack4bMhQmtzCsf?x&xSzcb1Y&qsfY{dF9)1tZG z7{kFR2&H&)Kh=j+q~N#2j_(HQoy5fATO7bH{USOU{HQx|;ULHcRDYmSSxRc+EWxF& zG~7sSW;%cFaj`eAFe}`8*}@2!t&{dsVgt1C9$hh-W+2=sD}5Daj1F}@c&SN{lFd(Y zPVz!~(H8v>TVI4K+2gBRPYmEzQXT2hxOpNq*yE=$$75v7{e36z@ET+k|ts$GD<_;Qa*@_sP-Y9i#!$Y;=6_=J$0Zq{D54Bk8fI` zGq@U{3Vpok&VSoXweuYkfMF*p1M!>Yvq#UWRxELdCbm+3<7;o!7lE&zerZ;xI@S0Y zlz|D1lY~XHdw3ya7i5*O*L?w249--MA`jrV@O{hL3EG)7+3pAgBRk>*)d2r$sQ--K z{x^{WCsuph?1ISCYE2h<{`9Z)I&H&Ck|unAuCpAN$z0+9491f3xTepDfUS!yh#})TB zJ;Qh#a~V|HIEL=^tD}gfnZ4%ZBz%wAFX^h<=b(km;}t{@=ihkh2#?$AxfPdmwBIW? zQFyK-ROZl(90`?z$avj28!EoAlEO_~gwh#|{5Ea6ek)D$A9qH*~&p3+lZmty!!YD*pN zFET5(V+BV0B&NoG{e&0$S>iBZ(%FP3Sl4`DaKtbbQ^lirKmY!4A;(+bGINM=FJc#W zO@CqR^7UBbxJwXdTHDe-H0SQQewPqTS0BEoyYY-hP>*@Y#5Qh>7XYX1^^UAh{N8-5 znjg61&cF4K3@IpvLEOgy2X82$Xq8 zs%baf^?FRVztVsR&{^qzav>$@{?kcfayDbFEQce$E*K{|MOCVv7N4p$Cp?#;&4QzV zlwN;8V6}Xy9V9y@9V_ZkxnH$*5POFH?GJdkm-Zkey%=m}9;)A*cZ2DUuGdPZGVheO zf{%#|dF$JOstUzZqcFAscuKdpWhIVbxaC9Sp?d~)gAoN-3_7{_mz<^sX`D#oe0#3JZ>%Yx6hws_8Q}(cWqK@eShcDzssrZdTpU(yl z&5vU`9!_oqBY zc4hB5<&x$Px5L4knCJ0WfP+~pk)-;F{(ClJS6eL>*G-2Xj>w~6|I^R4AvdG9<|yVL|t?%9;vw6L?j)Ct4z~8>2GHv>L-#E5SRm)q+)IgCAXyWEY z!FVU>-WY*)F#ZAKV3HLrn-ILg+yj-#RS(O$&~;x5bCpmRVOD;L7qh<0ktE0F4lLIP zT^Sjb=^&8oQo}29`&WlCoq2O<17Zt>$UP|J0dfPI_zd%^SJoSmghQQ6wR{PhFqjZq zWz?d`0uLnB1Aal6(P{%Dj9;ya`qZFi3qNLv*)PGm?Xn{g%!T%1Y~A?dabG}h@9vsX z@b`=LmnOrgV}%YZdlomrtq_Qgr~zxztEaoVA0@sp zeG_0eUUiRit3~hufdD5y_`_F3Rs+M^?iKvraOnr}GEU57R__?vn(K1@OZ-Z58X2^V zs=5xgEXG=kMP5m+y@VrBo5OA91)8UX!$JO_3|eVRB{QAIc$X{wx~uYO!pAtNMdta! zwxpAGp^~BctIx8z8PMAUzviuB`qslUz6^o^J-bO>+w(sgsK{LX@p#wNf<^q_ingJS z-d}bR$g#$V0)U;bS~gzwLp7I$7I6H{B?c0!%%v-miJ?1+;gb+TblbykB@h>UE_p}E zWs8Z~9;a`jpnzMn9(n8)KVFw7>A5t}Q-(V;w)*0@4vVQVd85g2`S_B1G`v|(H|%72 zA4cKtB!=MNtl5DU7@ZeDgPo_Z3M3fnVD z6=;=1eC9WpmQpCWVoYL+b{}a4nfRyqvV+%4h=l{6%c>&i(m^H*#lCvR>00ga>%gnj z-%x+AexbWVgW0vLJS@)~YI&DG$tO&4CI*J2#G%bv6>f%SD&Ow%ku{?(Rt+fenhXMm z&H$$fA@=#?ypau zliOM0(x$#>VWlu@+^y4nG48s^>K)c-&|+j(wDvF0Fc}^XFYRh;n&?P!(qZg z4gJ201k!J&*`lKsNEyX!M%>QH16L0cgSu|;&sikdbx85_IfjvxdkRTY`-#EHyT6QW z_2~&XW3Q!6o>zJERHjq`xdxCx1MBc99bvnp6IhF2c7W-m{)Qr{<1!M7~qtXMn2;b8dH!N(c7d7U#-jycV^oF zl&{R)!_%p@$~Q?16<7$8pN^D}6&1PD=9?DGt_v3s76EO7E;->Ju zeZQpO>z$4;P2HUXo-wj_ z+-3Q>eVeWggGNoYbyDChX!XUI{sMm}Z&15O8S6!Yk7)zn@jLk?9UZa7@dk#fZ~p9) zE?D{AFd-@MJOd0;fi6h#;wJY!kqd4UVOnaX6B8&!KLnjDd)cP&y4*(h1Nv z0@Yk%mI!m=sa-@?zqGx(}hcjfBd`*(p9WJ0klCYFR(G= z7ZKx|Cc_8C&W|?CRW??9E{#Sm__y6414|QIf<`C`7VRzLtH3Jx6n}iK5Cyo2uT6Dx zra7M)Kqkm?Z^Gc;0!NCdt;|I3X-*wcb|Sw#_Y@@~)iCJ^@d09xrL@x5sp@&4-rGy9 z;s!EK59FtfzaUeTR%-$sCy3`t>4x1NCUOSCA%=tv)m;3l@m>&x@Brz+eO&g;nsp2u;$f{1M1kesvx+m{JiVx20 zy1mnI_GWXvla1Br76$z9{LS^$C0-3vP%S+r1WI5S+`+HObNf0hosHF36zTgCWMJ7~ ztF~MGCZvn;u=wP0pa*(+<0SNoAn$K2TqgAy*9Q;jUtIOa4c*`BRzoAJCa6%en>$h_ zd*>zRnNRfOggO3No?)YhyuGGpBr2aa3=d^NvjpTzp-sg@xw29OyYb3?&c%r zH7&;rTLU36eDoMccRm!ux;$E2waukb9myxnHHz-&+r+?*Y<6EcVJBIo(_aHVC??zk z+cR0dyXh6B%3oBsKem`sfij;{6@(MN?5OkX-L$c`{pysr6=3bYqlO{|ic%LLcwvD( zw@4~Yp}nrX(3;&vlh&rPptDvzP4omMNZ0(WH@bP|{^{Hmo(t#8DzT{_W)%B&aszA> z^guQ_tx#qd>8!0Z4DwKa8lE{iByP9FGj;ziLPlh2L-&FNmo2c$HPKndGAl<`wjH-l zuKMq3tO^V&(COO%3ioi?yl$)to$$hx1stG`lI}6bmp?xK@H-qja@~-4{l-wt{?g3) zRy0E^Ca$LRSS%k@In74nWKBu&WZRyD&eDF@KL39HlHPhwq@aU%hoHal51)a;2cLBP zeQ%uipUk%i_Ma#8N>BrHp0ICrmW0Cd83K`zX4T&j#fAsGl+CuAYfHK_b|6ft_iY;g z=|~7{$yUHuN@-~Q3))YDDjBF^h=BO&Dp^|mhi`P6?KX~q4ZaWe_r89-xE~t}%fk1h zK9$UV=3r`=fr|0=r8_lAC9U@F^`(*Ig+pCt!8XlaGp+9w=BaN10|LnXZy*=0N8>Y? z?2aHbC0DuITm4gIojTv>rvDNE&^vfyP3n;#G3F>qgF9={)XBeKDM!Xsmj*!%q#upc z>nPrl?Hj@qWE%% zZpp2yXo$uJhJy#E!oJk;8E-$%6VZO%+b--x-++LJ_iEjsEf-J0Y51P|drPnWKzdoo z>bP&Bnto&ze@V#gZ9awjuvfLAh&yLR04I$SBg^A376|;_2>I@r{89hh;gix{edYG= zQ`dX2MA&(IKe(V#1a;a@ZNwFG(0mGTq=fN1PKPbeO?=Pq#B1Ji{`Q6Pj-~QQzn!Sm za7JHK8GKpGEiI?d$HAf_t{fVx|DNZ>mKlIM*`|vtIUM$wHDX=-k$3Ap&#b?>XcPc7 zEI3qi<5bUPlqe-0(4fIr&yl){g_Mj2fI;tt$ZEebu~UhNe(DZiA%d-~Pf+ z2EFn_Iml-$4)=dyKO=!ezbv@6X2@)X#S2L(u^AyxXwZSE9_dp_2YXc!ySv=xVxr>! zGO<<6I2Q%5-N3WfHn}tBZBj~IB35B3F6X6JPWNhouu5!DM!G;Dp^Y{A_^uV_{ zpqasg#$0i9*d6z2{*uVl;nxfsEX%yxJ32(bZoE;OC`Wj-J*UewntIiKf+Q^T)eSNa(8YQ+KGMO=~J}& zYeQZiBzd2_XO#rW7>;WyE`B%essp@<(l(Lo!$dN#!MdBVU}ExTQ2OYNC>7A^ZoO-& zyK|CZPg1Y>Hdl?c)*TEJ)eRo2(M0JtDAHhjX`^-uI=rea;nc>5v|}9yay2&3yY5VQOJN4 z@=;~U;z#W584^Y(nl9NF%@ioIuY26jWBkdLO#eLY9@(Mv6w}X++xyS;oGo`3!FIdORI-jVy+PAo4qJL?jMa+lLOh2#_4Hzz})1SX#HkI)KIGBc_J4$ z$c$LQPJRY(5Dk%XrG*6>U~ru@GA}aXX|3OY;vvPvDot?Q{2^_mrx(a3T%zUyG-@)* zR&#~LWjSj7hoDrvb*82;?U`PkqZHro!M6bLYThpGD5|)Iv7#!XtKI&rO6J;?76=!A z@bgoZP-EMo>l35Fbu_rlC6`L-Kd+3tLMWFo#v+7#WAX4>B^7TLLIGc)OA8VdV^-?8 zvewJk`R`stOowG#6K?57Z;vw)obX%*_{2GjNxYbnL-M8njIU&bd^?DSR5KdNNJ~>b z`8Ai0TDALK#bvy!Wm(@wUw$Jyy}si_GCB~*GOp98IoFp~Az|yHp%AwSQws_`MV1%- z(t9J~Sg=3)SP&cA)j}qS;yVJaXKpKAMRwjiwNhBgqq!jt+&A&zN8^U3X@MOOUWIo@ zG-gVjg3CsPG^B@~W%a_j3*hX-4t?^w!qhGK=ep0`3-xOw4+bWgY7?<>@*j*svBN#f zZ&dq$MeW*ClRV;j`Pr-I4iiU<$nBVCP4*Ug%*uR$&&G@LyydpkK1ro}rm8Up^AnaD zwuOe#42Pl*CbNhpI5U}A#gu$(OXKg8mJ{{oBM`YQXRmR!`7kp|JEWu6XI-}Z?t`}{ zfah*rA-sA$&S~%(34yw(FsE$0lpnI@N&dz#-$4l$>)8!^oPv*yczY7oS);vex?7@8 zJG+B!(`%Pbb@3XS5c0bmA^^U=Y0~MH>+8H36^--`P`H;L2YKg(wZ%o z#L+~SD~NvmY2I%=f~gn8Zu4)tr&!D_ZXEc-lRiH*T20@4f?03jdy640yIH;7NZj2+ zrg}YS1{d1xST(KP*JvMj+tM5muuk(6lrb_fDTAZD6Nzed#Sl?Ik?NDbqe??IPRC?i zjJKiAdLnfDd{Dg2J3?@)uuzZEGl~6MD3+gd*V6EMVrx_LV}9<~i+x&9bZi%&{=14a zY#x)N@!CiydwibERhPYGR^=HqH>6%&Q(AL87%7bzRaM5{pz8R9W?#sD{JV|jfiVeF zj>HA^$%0CEF?8|CO1a4m9)uf;4*Aw|?bze6eq@7Z4*%|EDXJ|kB8-+fK^VVZqaqCusVpA+YHLbh zEGhKhQ`D%j$70MN+3%gvpj?@3V+3n#cUsvh#kY+S@Zq1dF1Fu;q$-Xq)ZWWFl`$_9 z656Bt6khm5o*se>GMCJT-xP;w4@GlNjoNz-pQR?Gk*o+Zq1sa}Imw$L`5ovtZ_PGC zU%XL8JWlyX)pG2+Pby^8YjfiIzDh5+^C9{jYI3*PrEi&%mkDEiUsgjs z1#vI3Lmw`EWX_qYPoMGpogPc0U1ep(5kGXbW8GQCqq=h$d-Ex>T=k7n)qZ8`gfvi$ zwt;N-!Rr?o+aMYfH`@^J2y}&)8AYrE8o$Xk=HhY~@_bR8_B!_1GJM9I(JAe!-wIYe1e!}p|9-lrA^@D0PN=gH{O2!HAD`$npv#(_5@|1Fqo)uwz|PEGS? zbi{UD96HNFe7J~o(4<>GzWhgu1`W}q>uR6hC3oz0`P;;D=mESsS2nj>h?w=oHvPJ+ z#YXTAA#T*~uY8p^Ej0d>)Vxw+zUZ9-q$-PE0=)44acHyt z;Gi|^ZGqEXspV8K$U9UU6_S~2Jd!V7p(cHY&Hs-~CXjm}Ot;0ftj&+jN~is`Ple<= zXTSP>W;|!Nr|K4sHsaU(rQ!2QU8F+vuv8>PRu7{yG^{uKh*rv%A)@XtR4Rpsfx za&|nes9%m&F3tbFA)e1LKqej4jF<27#PkW^;^xrsmj7hqC)Oa=1ZvgM)+m&qXvIt@` zrxl&=WOCxyQz~x{9OBA^&PpmAwp;NDk$gc*2u5greSS*-ldHn)^JUi-BRs23D4hdwi3I3iQzGXts8raf;V+eHA-B>Kgb`ziVrr#gR)_lfED-*ZszO1e`(e`rwnci^ybB@_Z5QH{T}|F z^qB^(f!wuNqxuE_?f?E^so+UyB-ygu!pW{Zz^y!`t5#s)g8`5@6D2nI<8S%&RRu-# z2G5?>XMT?%d#I!RQlE3$_fM=)`9o>nk(48?NKVtyoO=3kC`wmk{q~`!ucEcYC`=eTq1ltiKN2Dk7=?#Y5 z9KqlM@b=lyhlLU6=h=)D4~tAyZw=-Or3 zyEy`1QH0VbTYSR8nVU5(&=lz_ZJ$TDwuC|0V%7=i7g&vVwbp2h@s9$9yg@-yiS$m@ zb1TAp*9(J!oDjV^2`J148{rAi_)ZSfNy@B2D8tX2eSe0vf{;dxQ&$@D9pmP8r)wP8 zRFnGb5Z=wyK}z?9rNpG>T_BfPQ$Py7<(wZ+Y*HQ~C7aC!*XTR33we%v>AKgrRagI6J^66?!na zkaj{9xU~6An4*~wt;{*+f4BV!yj=K)OC5CQT09q1-06-#+Y#nCikO|Uf7%KS0-3iQ z&A2D0@=i)#vg%uvlFAsdN9cF5qbbiCBUgtr8L)vulP-lF~|OV z2ivLmuLjZOV|x;!NTft9xy*-Wfi&u*dQDC0!0Nhf0!L+c7ilgn)s zM!fXK{9>L@cxVp?O1}WIza4_ae+ubSUj5z9^}H)s{VHK{iNfBfMmdx}n2%*P*6{8R z5m#oh+6bGKB6%%fh&-wBX7rDyV$aMifi=Ui^Vy#!=IJHNucQVH)WuV;=qR%hbThP+Ml3xaf1)p1d81Ek7N&{fN}3 zs6lm#7Bf*pX&`o}8HD_-B=Pq~RJuM3#|fr+Sz*h)_a}uruZZt0ttwR$3QsTEO~fJ& zikJQ00NDj?B;pwBPG^cSC;|} zv!xB@LktcTAmbJhx?VatJw(e#{TUofbM55$4d)=grzDj>-tqWOA1{H>l>P3tQ6DZf zzyHZ{sL|7gPX+2bdMiP?F49Xf&C2 zru(VFggA;QOnn=eT{l>*{T^(JX5xyiSdl<{n z^GlON4cmb>9a>x(h+ zSU)N9;QWI@!FPjt%aga1*n;kWNCqioEcCDU@CY`t>d0sCt*AYKT5sS}KKDoG0RO&| zODW1K8&`Ma+|pV@Uzq%^e<7CS)ZIXDNgIYsZTQwOfrv(S+HM_{sQX9e*i5vYob?hg z3KHrhUXYMwNB;bd&9lR8@Pb&8l^YztNyMxPJKy--%?(1}&P<|pv0Omr+x4*i_a5T? zH{WG6q8Mxd6i^uRk70}70CXRexXbOru43UR-n+h%c{dPl)DMbPb{fmmE$G#iYgAgr zI@XN1lIw4roo?ku35M5B_{FjrIlHzn4Vo+P2OoY_B!Y6-Fur9esJ|+Jh~&b1`@1dc`v7AXvT0hizay+ zL>i!6)r*aQS~ztif^n;%`9E;W2Pe0_nZlo7k6J!SAF-k+52@eR zU`%-AeS_xe%Uwjv?rz7o^irskJ}l??M0Gz3=D|k?(5Kp&2fEra=3M4ZLvxhm!u-L4 z@(Nc7Ry@>u6^t>Pj%}^?_gO>c>Mxct@hn-Ia!I={bsB}OlqTHPUC@zaC!3T8XD;&* zleslspC(rDjfa8QD9~VK+{72jI-WUF7_PPD?Y;Jb{=zF00XTccFUu6RN^xYn__6;M zaqUeHsjD9Ez(leW)@59vJ%1hW9-s5CY)VD~moVc`}7$-G1 z5jVV@h3R*Xo_ByN`P>cWz-l|{v$upyKP^T~P8HAyh4so`<+CTk@v_bL)75o8ZIo_N zYgTbAJUcvBsEY$PF$EaGL9d%V=ZlseE_kmuN?=bB*`bagQ*MveQZK{Qv#=V%Dj(ST z#AKt?2EGf^K8zaYy4z_F8WL!6yp2Gl@h5cTY6m*obijISfOJ9zDiwOMluu%q_%!7; z42-6A^zf*?A3hK5J(6tP)j0VGvtx_R?iJ1bK{2rWIyHZDvFH;>yj<@mTH=hMdbeb^ zw6ogZ#vE6kt{u&}{@uR0`xO^evknym_WGwwo@P#m+G)^PUFrBf;`1p^ney7BrM)OJ zUV!(KV*giERiBgXbGnAw3*OnL*u!*H_?!S_c>f7o#1E8})lOCJkKoMBFXly+<9~%i zDE~i!!R6v;px5Z;cH7O85k!6n;?qdQu5~2arW=furVVe;N;t3_QTZ+3=r0yAIQrv1`O2zw zco!lVVL%iLgLk&O)6Hm7->+UeaLwv>Os?~r7x~zOr9n+X@}pR#Z+NZ+9#|e&y=$8d z=Sq+xZ>qOdgJr(`UMGwYC-D(x`Nx#0b~^e^Dgxl+%=GzEX2~h3itCj;gYSTKrQt1t zbnVZaBdeRbMI}7oN^^6|1P$AchS;Ggs_%$(NYO*{E)VYyA0nYN`ei2gcv_FU2mHa< zB&Q<{r>nzts4zH9(hCgREK@GR^~Rxz**7T|Wd+M-`ol916@-wCqOX%uA#EHx~il%}`fed(NIm5AxFkR|av*pC5uP5+OkuMCUo``SKqgMxH7 zf}rHkAV^7r(xHGL4BgG3gi4D@m$V2dAsy04N=nDjHH37%o8SL==K~+OX3p7r?O6A^ zS4G`il2#E=h?O$tlg| zdl5B!2fzUTcBH;FFnBro)EI(M{(g^#2vmZC zSkfqN#O4R)_@q_mJ_fqp6}h_Kcfpv@7Aj-&a3bH#m~qMf0+jMSt3{>b$2maThRutM zhw+Vn*SkgJ`F1T>ldE(5%SkG!H5_WlSJl)^I6u%pEI(Aq&P=$UPRlWEz3pn3!r%{OlhUTQ_srtN@TUW4}c$D$U5Nn!_QGtT|E zf)JnhbA2Vg21?EV7s^H6+#R8psgtT7^}2arlX8#kk+Uacd{d>yk0XSZ`5&^?UOmF- zA5E$`jwmkRCH%%NDOy?myY9``o22pcrWVt3p%)_NGjRZqRo+5nHjuec$zJY40*VUn zm)V;25v=xSftuJ^%*K!TSLO+G=ORgYe7RX*O_cW-2E>DEeC1SLNJcm*Eqg8Q;e}VY z6bGYhS04NczK|;z{0mifTEV<-B}93XCzSur1*qUwx7+$<8(X+>QNT8PIee4)ez^U~_N0&&6(&J|L z&6A7SUB3;aDP+riHjZlahaTCKr;c=g!A8g}-!7`NlHC!=y*ho>tdPI#Nrz=>M&!#< zPMw;mFZX`32PJVmv>4`^zSOEI0+Kpd!OK3Jqc(vYp_WOz-U>A6@7B@8DJ&K4L4g%@ z*uCWgHzZB$LdkImX-%Czz=uXxulzgNbeg3Z--B}PYNjA_7IJ*D!V6{jMI=P}MZGaA zo1j0q@x3}l5Y*aWK$`^=!cdwb-!01b($=h!1KEV*q!IAwHx{I)OR1)dv}(rz4-cN#z=EvOof~x=PPY~ZR%yAS` zfZkUf>s8Xf;NN61SDq;Ai8sI1F*bO^5~JC`-=CB@7}Id_U~T$=goBIBx1OWuR?04E zbc6!jNm8q=W-8tJ`^)(185ixb7L^>N7txV&jZ=23F+Gb!LcaWAO4HeW})CGi=Q+egyktxfk=CpR#n)Ak)jqd&a+`uV)>>7nu0bH5n3vWcyW zKvb*&ozDba?1M$M;eR~^v)2Q03(QER@m*p}*Z12xQKlYb+upsL)!8VszmIRF>grk) z9B4Jzi2KgxgZT(+0kCg2I7A4#lHuAeqHj#6ty_)Y@ht4)M({<}B>mC;IH>VyvEt3v zMe{tW#mAL5N_4_%?=jxw;32u?K(&&ign30xDB0W}YriEPShaU>(ssP*OIgNEHH!Jv zv4CaM8Sb}q8haNSQi|rq&Px+Z-0@gXg}s_PUKGvN3mjmR@DKZr%Q8my5p&M`G5T^s zGv~b_qMU1XyFI!0=f{YkZp%QW?OYPi*4GPLWrF6QTBb6}Lm$SgcPS*l{1Le)94Lc1 zPGf_vJ{22K(yzE{%AS?|7E}E5zTXuM-oxZeS0Ks55_++DY)5sx`TPv+Qm;x54ndDV zs!ETaj4(ga;RpFK)eKm?Da|X2GX1sE(oC;MtwLlt_IV!N*K#N|=v&Eg#d#aP{o~c? z3c{?Tk64qBonQBFaB+|ATC%Id>)j8!0~cqJD!HI#ASviAgb5@(7g?VLANf+o+uZSS zI`$_EB#V=QDwLz4i-S$@^7<3m6r>+(DyUe#(Tmg#!LW(!P+RH{N@+B|>8Iq){g*6= z3>0k&J&g)?Yef%#>;{s*XQw3vjBDRi4{OvUv;-)n78Az2^p?E7cIuw{iKKW)v12A3 zjYHz&6o}yn-(maijZ_l7^5s7fM>^2*7uz_=*H`b}W4V>-zvg0EDE4v9$Y z&FgoSj{oAho%zA4PImld$|xQR#nlGTr*eLph)r+sl0Dc*(W)5Gzq@-A`t)>@*IGkn ze$Zz^bZ0dE#D3_!mR(#Tq)sPF>!*=GLxFs?hX$&`2!#_gq$I1~wYr2Uv z3yi{jRS+b^rWI-wycuToK)tcHsFM42VqaBXrYXkElew~+=S73?o%!cB=Y1nD4kXU` z<%1YgL&-TJOnJ2C1Dv#5TAIbT7meyV6Ga&${qL(2efqq0snzCV?L^yNY-y*BA=^Ki zhi#Dc5C^(r>Gst72PUOqACKwtkG#+DG*g4GzXg=7HJkH1GFeZ%^Vh!ABD{9M7WuTg zd7f@&)f>4_kSMCE)KpXz(==BLqooR5*;3tO7r&*g@{K{{wdZ2(Tzx1AZ)s@6NstgrUr955$g)5YQ-q=z22*kab=x^D&MM+9DUH9f5<@i)CVJAweTR?&=;aL^6IO{F+XTat_sWMGgFD{+3f zYMUiP-8_LD@H?<(b)%~wy!VNVNlNpphF?M@%wYFHdMts5*??D*Rzv0D;7x?+M|CQh zA$`rFKeCD*ef0*$Fl&!2Zr`r8zkW?6Yrel`iLi1WKJE1@4q~hedRv>s65Q3MaHlZT z#4gKi|EkioB8=f1o@|a?@0_M-a#jwMttc8^xV~3 zs&(UuH>>U2U$IT)Z8zgJwGJbck3U4(H08Mb-YA8AF_@a!yRhUczjAUJucQxL)?V#` zdAG+=iq9#B!`v-S4=rmd$s2W2Qh11hg2b_TKELwxE{`+Ql!&k1z^w1?!@cCcyxNdN zGugR499mkRxplkDLHhyuuz67FP7?Qe`SWN`Afn#qAzs-5jo88P^H+8pw5af@4{9if zmQt92^fSI7g6GuNXROVv9z|%54yRWy#+o@XWfbxC>-m@2kdTwTiH62a z9A3JV^iz57OLulxL7gI~h|;x;4-eKh-&Y{IX?<*=xZ220s~-aSYl^rN2(5!-LHWp7dp2 zi{EI(Ad83U1Y_!w1XC?ZQdoiLyMDbkpaV6Uq+UIEdUa9IFP>F9jxM^}ZU3|(URAf? z6><9a->cYejX72HjsgkZ#H37SqUlo(ohxZ~B-^Xmd`v}O9~$3D)@byh8iX4~1-Z3- zZA&HfWfZnz$n>w^xvE{(AaNYf#<5}sFMD#J_IG7g8$#p<6ojm~b>@H2+)ED^)wx(Z zbu%63?(Z{B2;f~0) z^L4jq63M6~+3ej=o987aEF6gWguAqv%2I(HDvDKfRgtX{hiO-7KZu5l2KNK`W+sJ; zqUbBs_zGq>;$D%TJ1=VExXbbh554W>yaX7|QPRf0=b1}u-^wh53=PADYB92^X59OW zqsvhwJWpksTvl^+EjR>qy;2YnB53nI-l6j#bJA>o zmD22rjV;r|+EH2k`4&aD#QidmcW{g6 z@2N5xU7T$);9XjNc}VJ@wOM7UKfB>#MQ-FZrk&^37Pw3c*6OGYg%fi^` zb#{0}kx7diN>v3YY-nM?B14DD?4$tsW5%SS4X?g%#*CML#epWB^y~SOGg&=xc86^~ zYoh*w(f=^~0$Ug3sAw5;dSV>bv2UYUM0o!cvmN0r>j2@89bk&`y`-A&mcgMH3o#4o zhv8N#+*%F)9_(aW^Go^XK%;|04Q&4#i@gY|#kXC`6t}-z16l^PcDSkcpjY^*^%Kf&_C;_jz`~u~ z@WO{yO*XB1WqE)gA=#S)VrFW(0&94iS;qeDWM#LGqx+j~Xm0YAdm#Z8s!rI!;A3hM zW+m3jtss3E_y*TX$jkkc3kNO4(@2uj4q$|U&jQaQ3y~tdtZkm}8%MqYgXD1|iic#X zt&f`GZc^))3o*nwZvD+5TU`<@;a&0{{z+iLfhO@(tyo6)f(p9gp1Dnehpro|d2Y3OV)bM1&f?Vg@HoB` zGs-AcJ`(#p zCVoBk%qyxjSx$PkpyjomzZ1S^1TTmqg@@86uN>0D`p|A?7!oC@+iduA((QQ=Mn#a> z${z3jekX=7cP~18pmqeKlg^{%u`6Jpvy3^H#Z?RPvAraYTg|Jh_Fwl+SSpg;h%D>@u;WEzNSxdF<&YjU8nvd#$fIu+4y#n= z6V^)9V_+Wrmy-fz;VDwTOJs-t#ES>d{kR{ICx!0hQX-qTw+(j?Ik*b6sqMF%d*&4b zo(u`&T0OI2tT*uEeamLaQNOq>A+_Mrp$*IU=JG1Uu{$rURC502pO18zNS)pH?tMb% z_aOx)E4=DE{KoX&O__W%c_jg}!%dI(?@z_Su{5wIC%A2XU>>o92FVbF+il=~UODl` zl!L5m6xAmoHT6n>y(~UPe5Ej3#*$62q#J=Z~1!W9I{*Vk?1rw8G7v zK|yY`X;Z`&?}1 zHni9C4qYWP7nXBM2Uv-e4{uE@0o<9;4Q%xkq&GI#TIwa`>4YFHnIj@QJgmm^gn37` zx@LSeA6WPP$w^h7RsYeAuTy^6_%3;47pB#X4#|x9+jd)X{@N#ueWBAKk|s#6dmw`P za9CxfCemJYA$M5Uoj8A2I{`JvrCmD{cuP4Th6$xd$hrh&ua4=o(E$UM+M4|+j# z*x}89ip8ATs&qEdP~~0;f!75oyOoH|q@UL`a6jCBhKgBgM^ObzBx!3$aZJW~u$bZQ zL&dPJ*q1zwJ%PitpkvRc@tDo=X%gq`s>n?f>foNdqC=6lBTvjeVSO>lYd2KTzP*17 zLf#`xi)UUo4H62#T$Z&ojjNl5DD;v7F%U3$?aP#8Gz6REFuNXJ`+x%J117-H&zrANVBq z1%V$<;|^~Al!LtUjr?;msm1Nipi&OPPyFTah(F`M#gA6+2Q-)z$ch*{sd{Mxg9s^q zexdo_^9z6d-}CPr+%DG?|7D=o(B2?pi?DQAU>H4~ck_I;x>QIfVKd|9kI%h4T_-#j zfmG%K+g3nYh-2{YdqS6oT{}e0j9#$ILmX(7E68+nVl78V_^L>(i0@!-M$#!;Z9sO5 zGitlqm-1=kR4735$Pf@akSq;Zm;Gi@mVgg= zGLg_^WA0SX?jd$>&_=|CyHL+B5&d?6EfrCurSlL3~H@;cNFw!jWm;g849?xB=hZ zrN3KfjQ*tNbnB8)>PGK;6-V!rQV(fBEkP|7a(i)SLk-5oCS6WMtxp**NwGnDa2hj_ zdxXxK3IIV0DtyKW;SkLTPKEPZYNk3l9!~9W6uPe7AMGO9sN}sIf7-h_S2f;aZd?F# z%mO?^<0?>kgp}PW0ki__A(VzWNH5omwWoZ4Do-~E9bMegVALURxtS>)TqH5R`83b# zC%jV6?;i?@R45v}DR5=G<<~3^BiBN{d~`q_6MYS(>$u@9lVuW$wYK+dVW96+4AK^$@|h^)@2erH<;+io7RZk=M($vtHwr?#T@Uhu)y(7}Ub@a3wkGQPrxQu-qkfoxN z7R2sZu^B+KEf5Fh?84g`0G|ftE;pKIonU|o^8Py<+#D?Dyr%}lnp9PrcUM0iVtER0 z{KNrj`}_SS@hb3BMC9tmMEo`fvJT3PQ|o zkV5sW5!)EiZ3Z>Z4;P^+Gu^661Z~`{=wvD8+t*d5W*(*+0Xx8%2amc>>0<^b*4Hl9 zoBw?`rN~8+xd#+nk!Sjfha(wgl%-!bp&A5~IRd$g^_4Q>*`zRH z6K}C!-76|A$CZL;&@jDVpQoU^KTNuWn)+n7>oC*o4 z@d-Oqb`qf#nnzG_IOH=&ko|Q`1A~9D?d9d@P0C#EYq323n|j{f-Ut&kY6C02^HDXO z&$V;5U2@d=hw|dgszA=aJs|P_^$2LXhIkM9(AN8m+Q+sMrAioS=4j!@s>VDGp$%~M zC)@luVGskbdDfLl2UodMD@gMWOIQmO5N}Jl2aB*dh2J%NRGfQ18qy7iZ#lV9g6l{~ zo$shzb_jV+MBgi##1%&aEx0znu;=F{`yP<@AI5R^|mhHU7vPIyRJ`~F*+()FPaJ=I4q z=G(j&v*h@zf>;tU?H*+iX55UB^K$d}$^5JTJBN4FVia8Q`nXDj_AIcu!U}JOTNhN5 zaO4sj7@Xe!v`Z+dUkhgfE>43ileM_zF^)nJ`)Nnm-5Iww{zeszn5OA??VHl~oynR^3>voJ(9` z3}rE#^yfw2y@_4llh;H{QN6)jkPB`fnMXhTHv%s+nd(cayi%h$&wkm3a&?yjV~4Ut zY~|nh37QS-B|jvqxW7bw2OHtKtkY$b8cHj?-x< zhj5HxLndwB!Y2RanM^3r@!?mOIhFMJ*AVg4w~zI`dkg}OymObPCSxDH!8j%7e?JcC zb)?R@I$Z<)8i+_ml~RIv!cbh;8UD6sclEx(p~p);3Fv#G$>uA+Elrtg`rbP;4`}`a zK}*^x;9HE(;vRgdENoF$}HK)a&zFzg}TVz=agac}Rv88yPtEuA2< zOr2E6-%P#BI!(Z&I3wEB(cB0Rd(|A|+F*Inn+MLH-+9MzaK^LJ^C7&ecMW+(9##vO zWtvO&M=1W$9^>_%7v=RX$ll`OLH*Xeh6_x0sBkFCwJ4@oWE5Vg$v!U81*kX2!hv{< zmh_TYE04>_0RMm7`QFDhSHkyX$E?S*+A^!b@a?PJo(xV z`^3-iSaY-vBTJCitRqmxFUE7Ktlv4sNeaUWg`9+}=6l&E<-Fwlx5|HeI z5$P=(w91*h?Bv_2?&21qG$1ATwu`lT-*16KY<;NFlpf98v+x&~7_x-O2XnyXun4{; zYD6iz!0Hxxd|WNDo(Y?H0rBno1hnS)uXTK!xOOWY>QGMQH2D|gxnpy{{f9(-y49(q z^4qQ{JpF9P%?-TXeS3mvGV*NVAekc|*}0kHjN|VzxkQp1TI;w5F&+jDH4G~rLs3l5 z57LOg14SeU^Vg2ni`fo0c56vHlUd0H`IThNP8~e|a|UcjTj~g%o9p}8Y{pYYYw)~G zfMGrz?@&H-RXw&AIKgv(G%CE`UM*wCbUzI2RPXq!0jCW!DeGXp9|!Z>E#vNW+dpwf z<9B7hAF7X5$C>Cm#ugbtjkB-jEMAe^_5JU(%DU4a<0JjjAmWzv4w>P~e~-qibx;i{ zPW|NmRmsA~hoR9Y@*^2XbOvxqVS%%WZFs`*bYngCEd;4I>@6G^3l&Qmu@1vJ7b!}- z5q;zt=c4 zFS3kl^NhRN>CjJmU|y=3SB>pVb_mxZs%}vi(4r*Mgx6~bPpvw?Wjv~?RS+oHO4R%E z;AM$R(98cQy~&IGT}e@}uk6+rpvqTH*njt5trE0XGwXBH4u$Xe@0R9{MW%jHz}q0d5DUpW-_A4`o@xN+r^?M7W$^==ZxXZz27ZsJD{4U3w9QL z#7sLvHPxD?j-caY>T)X@#Qr3@6GhVkO3R+Ao8&oRfUK0KqV3#Q-Ad8QNq2fg!(I3I z3DWU6HBK2GH-xaUpWH=*@20BKTcX5%6u7Nl-tFWgjeHfuKxYc2y<4d!EooIEc&2-Ry%VRcZtF6QJLW@6n{dhT+;n9@NVrE`a>6gU_kT; zU{hHnq$VvZYF^);;I79_;H-G|To(tUA$btg8AaCo0ag9plfFi6N}HCd^V0 zE<6uYZh^+sp`r?u2ddHQbNd0)&4c+x+>S0*U+tdzb$-o^ML=@D0nG0Ws=s$e%@+q= zRTzL|GRtPm6GrkN(+91Gia)p(%@3|E!^#HNK7NKmw>O;#B%p4t{Bk)53mUy?gP$UR z#a)Z{F>Dw3It>bG06^D*on^X5&k7F{q^W_sVgp?5zBUlP1>(H;~CwFT{<=F98bspv` z$$S>bo%n2GoKY<575|{Nnb#5z@c^Cj6Mk{%PMxFP!SZVdpy)SUB#}P)q1$pGIrH78 z9|q4i>hz~sf3(G(kfYUrN`QGu&nbe+E=Xp%5>!EXn`^#3^_V%6kG*4`O`jNpOJ|LQ zliUGvj(%DyipM_5pl>d8D|OM=m$5VbEf))tE2U<#*}R}eytW&KM<3O;7qvDSRLf>E zz}FmuTlgf-WV8F<`k6)i(g+eOuy!J?kCi~hQ*z4rkOJyTe?&wAZsC+Kp^_X|^~kck zZCpqzVVM(ya(2}J?HevgL+d4l@X%)+kD@Mg>S1{AWnhurQE2%|V&Tl3P`PtPBN7LJ zkHu$(+*+9IH!45bJcHkaR)X;r24~SjHE$z@|KKO+)5>g-Kp&ne>wKKRRJ%+Jh=|`_ z^ZEF1>+pTqBPlZ-v!mqBD|Sl4;}0@{b3y6De30YUj_`-o-Y%oJE7G4UaeOf-+s;ry z2=urS@J4sTpe%5hU_LG_CX;oeabhF;MPq3>T0!qKF!QUW!R#t{~2x-*p!t#){i(}BL3C?w$2hZe6YIPW$KVxmas=! zsW3wfX;qx=8?4Ln*lI`24HmfDZF;$~94$Rp`*P16S#GlFonT|CG=N{(dX}Eq@*~|v zjwP*g8G*TAlxU6+k?-$OI6J_W0U}%o9H3)L@cvW0C%-o?{Vzm<4Mf$IZz=xTYlj~= zM8yq;qjC!S z>j5XB)vG|KXlD+>*s$ta3Pec>Dem86Y}+?=H23HslgoD}t7e0TQPEC7)d(W993_`% znpVmyF7Y8g{Ut-2MWr7_?U+~hlT-u3ZKNXOrTy?v1T|ELzI5BKn&7lq)5PZxBWP1j zS^%9tk#s8ZS`ccP{YDhqiDR_StYsRT{Fwc?2fQA|)(KP4&ZqSZ8cw$N#g-qMA zhi_i_o6TYtPMmUkdKe=vNAm_=IALQ8F~@4ByZEwR8l4Y9CV62?FC${iO^mZhr~ZpP z%C33Knif1ZA;3mhIA@}k$-^<2Z^AdQFF*R282S`Tci5*dNhPfyosXPAQk8MtB|;$i zYH^Ge?ADV^Hq*pwJj#!b<7Z3dmqM;Zpc&l=eU<+NwZGWkm{)}LqV{jRCC*_*o3TU_ z7KCW(ki;;o6^Ei#*Bxy(vT2DBW<7ZW^54KA0yObwG@a6qCKJvkDFOSL8h=6i-ZBxg zZYy9oX_4Pj_>W#ufqJY>{cf_&ctz|P4X}A@qZC^vr-YxE#E2xq)JBCYnEJsrjECbh z_%ZnW?`K+7E$#kQ6$fCxEtbUwM@F9#Vr?5wo{xW~JoR8&m5=n<_4n5OPcwk>VDfw( zBy)pnW9sjO0f2>M`Q_j4cYYsQO(Ohw>gsq#R8r+*ApPj8qaXy`*hw)6#$I?KlVS7& zQzYMx3^wjQVX(b@(w?x8=vN|rpC$tLZ{;UCb+OeX5|U{f1|p(D2=VT`RmnC~%wj93 z3~ow$eQp1G%J=lbZFIHK2V!UFU=X;xntYlX-VD;Qe|?=MgtYo#_$fFd^C6?8{Da=9 zwt4=|@RBMAr?*%hFTr!NhmOMm8&|tmTDgkZMS>kp294(Y>53r?3eubX-ON3o9Q%Kc z?tuT1hi_6ftey%%GyC1f)F;od&$1=La%wjkOks!R}W zV>8aoVC@j?wC24iIN~2ZJ|+2po+_c58UjX%coW_@J~pS7OykfBIbp3rbwAEY`!-Mog}i3n>r^8N4Bfyn^Wk} zCy@tNuF^?OdLK}vZR;q%@S`r01ZgqQ2ll-P$<4J58Q57bzL`vJk5F}ELEVlM^j=5U z@oi&72#R}sQoL>!uN%v)=A`WtIL$X7nao0nE+liJc%lkP$uKb$)WVB}J+ehF4ocSx zh@iODdiA4=unK<)L6A>}=7`@e9moXP10?GD2MtO{w%?4k*?c^?FK(~>P>%Qh1U7j0 z`k+OF&`sWVe83iU%Gbwh&)1%Jg#f0OV5LlTcE}Rn?au@{R5ri9=Ak0neAa<0DBR|0EXZCWFPw_t)Y^@h8*sw3v|N zE8e7{@1!cNudi2}9;e#AqqRU|GVI656|OE3!l;FyWsgDJk#tZr3dWguUU>axqvJge zY!w{}C>ETWq-!j3)-p~l8gD4De1i#O1{R!fx2Mu=Vfn_?t z(ig3u7-_5h`clj1vQy9z+;?|sN2hnGtE1+t@cn^r3_Yh&I5GeFgZ*5UcCpCF2OrHY z`#VrIsn1yIgU>5Q)D?0409tN47za&UrIIXT&$%u~xph^4?*&Cdo7>2ta@86WJy9l; zR9eL(m`|#b5GA;*x1a0t9bKHIU9KLTnGAoNHX_t%zEYvahGgfze(*ddUY{6pb;!34 z&KOYOMTbOlD}rZKo>3f9uwc}-BK5L05m9Bsn%a}Ew(_1dErT8PQ)m&vBd z`_bl(T;0r;J3Cc$%aE4b@}smr;_H8Zt*PEdGZqBTG~%^)kwuq1H5}iixcISk*-h-$woxS=yrt&mB@^eyjznXhW=&81kafFvQ}^{ zZS5sYw?0O~ZmF|Pui}Q#Lsm6~BCknuNk%o@U8X&3=-s~g1|=RD8(dtRoo1$zXgW0LD7ST^A~6;fX_FCSiIk=?U2IngWDX_*f0j4S*D1u%;wG(P z@Rj||%-L!uDc?+{_&vxu&15scQ9>?Y8b%D6z$Np~=oNMXKOO3)ePf-gNci8Z(C(ap>b+=`9H{Xpr| zjMvHp8C`=48^SG3E&bIi0saXcQ!<8F0qH=VXq}Ap#`;h ze0j~w#xX8nJ|V;mn$*fu&aQX`5lt>e}#6Wnmhbfbs^Js-uUj!!k-XF5dOoKgTv zo-W2;ZcrwfU5C-Xgv0&LOV4lXI6qEJ?|7qJ_b@&J&j9f6`i8rdE1c+d)H9HSoF7l# z&s-zc+?1!^Xg5)qianO%C2=aY{1#>dCj^M%8Jh>yZ-Zy5unE{8gzAi7obR`{xD}Sv zZ*BHHJ#9ybl=SvzF%gl=I;io0azJ&@pC$sZG0HTg6tP{o`kUL>zqZM*AE>j^ZV%^2 zo^D6^Wrpe`%bk5!j6wKk`-9aRteB9pb0Evn;T7G@)nT20hXik{+MFt?eixqVK5bp zAy}dalOc>g%>;SC&cS)U3-&IV|oQGAKc9&>~@8XCC_ zHrg>kJ`UnX$Zy?i%TG4dtD{bU)6cuD<>H0);hbX;*p^&t&D+K^w5z*DO<`2$Kgd7% zGbZ{QS%Nv&B<$G9mg)Ds@GULfx~wu|H8ewqK6aSE25s@!F%^-l^69s)OZjdHuMK;$ z*&p=gZJ<)19DZ4g#KMba0oNm9&wJ45w-=_HT~BQ{r9a$;S=jPgd%PAD%GR>AgG6`z zLTQv<&-dzOhiegFJ-loF)S)DLmMsYnMc4f=~2YV(MWvjMTE5QfMaJSp63M)OD5uOpw-zgVE-M_ z;snC=Z{o>{vKiv`zqk1PNxu4h`pFk!GK{MmEgQ6%na5q0$2n&{ta3LR7y9HPeR&pS zdET@|34Qfo>sB$=Z^6SM_eb9tvd~<57GZg^C`M>&1>cv%b`R0ek&~KnrB+nI3UMP_+H+?H6C${$kLk9W?@!~-;%eho1FRtE#eXl1kuy44?%l5TwvT4{nV_Rs6@}DdDPas+@u{{K}rYkPY#*?Ca^}3w% z54PnlG-~Ov$ldJ(H#|C@C2FV8AjHWVC2Nm6sPIXazZ#=KpGNkCuC%OE z6QaJ3X?+r}e|+gL*maTMSN%vVfqEj3^Q~VX!tP#QUf^X^0C2#~T50Ql$u=F;&_9ZK zlLy>^S-J|?C&pWM-zK*M{OC>zFNw#iwzNlUqtl zew5X2$JL&mWuW8rHwWRTMMVEo3)&bB^W13pFW&L@s!kAlc=lNIgYf#78F%s6x9ffk zQ{KrE%xh~M4-W{g?-7;G$P0PT!Ub9V5c_r>*i6RvhM$By(jLkUl_KVbL?63~Z7#dp zk-8gxqB;I8oWc#)dd(x--_QgQrSxq-&#iz^z$YuoR_nd!KJM*BSQ zp)CC#!_k}O-y0jFnG;>exNOr!KLjlC{$p`rh)&;<&tv7@%ojhrP@mBQpuGgKu)9t? zjYvM{k1JtkS;xU{XggRwz6A>3O)~C$@IykLZjhP7r_5;($UxOQT-$vx`WRYJ~e?_ zIVmlTA(U0*pX_TU(ChQ)x*e}mZF%8M5P?Uou2-@G(WRAU00Rl-)+Kt&UDu+-(6+?- z4#v&$nXV-=8;*@X@pmL&l7m1ftCGWVF}Yd225~-E`RRE11nZyM@t5k#V7sCrrk_&b zB`c{X=IVk5ky7{a!pM~SAOvu3qsYiS-6>MMnQ+bVCaD;>fG0Avj}ce!I$#RBLQNc9 zR%+KX-7bJ>SNZ;aRekTkjNIih3|4Q@2*6+0*~TdS--|~r4KXa3Y}Ws|CJQ1pKnS7W{iQ0ViX-M#*}VoWBU_$f;D2c&b5%Hnp1f-?Q={nhNN}mL(`QPH z_%Y`=L*;rYIZoD(SZCGtj-rvCQr!f|r@Z?Fv@N2;L!KW` zrL{QEpo72^m(4~rn+P;JHwVYkUzKu+IKZ=xquoD8w}ceyqO|5MTd}!~V-Qy5(4N8VN!JyNk|VHSbQ5k<%I4D)c#!M z9%KW@3EIuttQ(!*PBtHW0>CA8=PT)%?_y1v-+#ve7%2OO_%{q4y8L%{>~c=Q>Z^1)@)s^}gr1#a3vP_s-UE4IS7Uca3!Y&ptseWe9}Tw_;U|(EN#V+a8&HA zs;aHUmLa^tfV83cv|~+7iRYb* zEcOP`7(?RZbZCf-O6gc0K&M4dlOJCW7xgUZ<63@vRSG5z^~b5wzjFB}Hq&coQAkr- z^UQ~Tq)G$<{7$k0)UM)6Zh>z#C%b@ z!L*QT9BDx9{-f&?6!u?GTmU%XbZEG*`G5XhP@E_53uS~?i3TKm|BYus`gAE=f0zbk z3>3IF9L+(EDTQB`^U@Wm_#p~SbbiW%`w`#h5LPj;$6CUN13tQVzaxjZ+7qfneB$m+ zjsbZASB7>l|5ms(RX@#O{gZrp&Tj%{@bcergsaZeu6RKwK{p$>f{$_BBrjRvO5FOe zyK^?+e## z0)Rr_J$ZZ8KJkeXvlQPk6f` zcXv^CUlcd;Rr#}AvuQckY2wfQhetTj?)F(=pxG+#?+>-F_#f!!4_vNLSlZqdfc85R zKfcw!Lz!jQanD*hk^U>4a|Ht08>eO2a`ZLJ>x4?so2#-PPWrx!Ke&N%M43ur+&PD2> z;MX>06C5fiz zfvJT)m@3DFFx=syt9mAC@uW-Z^+nqnxx^EHjg9qT?cb$41j(SgJX`wt4|jI*4b#%E z|DX+gC@B#OAcK80|Dv#!4$C33~Sd_s}^tPJu5r?6W{W&K7#|h#_~p$l?K- zExn{u@)7PpH7r8BzGtL8vKM+{RBS3fm`q`T2214c?)wP)S%U?vg6%4w>g9_ojT+od z=~(TlMK(Hggxh6lZQ>xgPOF9D(TU7TAv9_Y6z#G}x{EG^_Ix65H*A+Wjbn#;X_9kn z;QlMjp}e!n3qKwDHMPj%$Wgb6rwe`NK?Ig2*L+K52Lhslm4+!(7&C_-A_d8sP+gh@ z5wONn8g#AqDi-~h_^;S-pe))jR&kCTnk@2okkosa?D^%hG7(6W^?2Mlzi5RcC_?xR zGU1{V?H?&(%n50Qj}&>a3)hY3CZm@7Q$nA~v3Q6D>(0-WuK&7#CYrKI%yl5{SZBir zqon5xxM;ws6lsUxpwle4ed-2?>l-R?DjhsQDe5oM^_YuSOF^;rD23&z2#p*U+ZP43 z@AQ`r&mXL+spj%ondrG4@Fv|@Pl%8W*akB-{Ba|O^xxMSI!<8m_@}3s%Og|qA=#0+ zAk*19(Y^uFA2%Uxn3%SvYfc*ok>u0`bYnlwhk`1$#B)YX61QD5XuWN2*_CMc-+C;y_=H&gRD@ul~QYEA1wvG2ggmP#=eq{mBj4|@xFjEJKBS>RrY z>9wJiiMY-N=&}@wcb(*->1F$m^K}8V;R6Ko@1??5^YY07%@X22#h3)deiCItLjAUv z1D#k{9i{CCYW+@ELZqUnYd4i=puxrAQ358@uTsBzC#4?C)ojHZ|JA-8=w zpLLT-LRsAV8>6H}!NuJGv@G~8`WB9HNbJ&k>Z^;XXJutw^|a4PY&9vxMfyVsxcZlx zq`e2_5AXaP-RIpVt+-212Z<_!8}Atp$88{_GxKfI26v`qYzoHr-iF-?>-&=gniU!c z344$C#+G=2vyrYcnY(e)93+-*yE{WK5*xiHFrY--g4-FEvM18Ko=c8#i!z_fB5W~3 z(zNXx#yF%qZS}0$J2u}}S8r(1{^8A3b>so!DyJWQCMb9aD*4p^ERr+s=F3-sTH05+ zVt>g)g};q%gFSE4j1BcvN|c}lJ(}N$$g~AUK|AwL!=ru0Q{W1HjDu0@=k_jUjZQzQ z>RTHw`otX44meT>zds99CnlYxgR(FJ2$!#?=#rc0 z&KM#bnd>QJM4`gRIr}6LODK{)gZ3vZ!m@8zIR{TJuBgJg9;pQ~D(B7}xxy>@lICTQrKz81%Mk=S%N} z2{eR5vc4{FRrs^U;D9Uhi5)`l%8fWPSC^!1MOTCczeccjbldrioB%j8k?XHrpz5D{ zwsYO*I9N>%5w*GvKfmE>d_R$AWZaAfP8)q}S7T;6EQD2rWtgK*-CG~A&3Px{uwTTq z2ya_WG}Cn~5G{Md@w`jTgn{t{ccNIN6#axPF@@_Rz+WO`^F_o@+>c1`+l8D2tJ2Nb zWiqd(M~ZGvaiDjj>$1CSR2PjAO-Lc~J7^0vJ%?R^Mv?E{osCkk7P?qm%|SZXQZ2T6 ze!o;I{Ct!MSMMs!vy!%epnX~L|D0~h|IYnO9nqof|JU4eMm4oHdjJJdup(YXKv9}> z=^YD52SJc3Qly0@y@VL93Mx%NsiCQWC;>%!3y3tS(t8m|DAEij>;8Ld zz4@c$oU_a9X?ym}?1EUg!M+p)t%b)Lu<&1SiQ^D-$rE>x6G-akJw`ge7Gn5|JX8-K z_ykV@&atrIGG?jVQ*dH)*J)NSNF-yxWX7k7*{x#OgrlO(^fhNkzQaT5Blf_X0ix)` z>(+@cH0fR3mUKsZ!kV(neP2JGMFu4aK&HVMSM>C{)V*_sO#ZBI!5K`mY8QV+dB1eq z+;d3TbAq9y_$!uJ=3bE>r(1+R?3UT1X(J@sa5>4UlsBNeZ-4>>7O?n;o!NH>5#<%4 z@7gWd_dVmRGGF{g?$Fo=4&RC>r8QMbm)zz?i@L`F34YQ6Z?mwPs+av4A&G!DGaPT| zyO~+nUH^hm+;dq>K5||hG_KQpF}{w3QWN54Wt0EY80oqi)#bnHb#c{SxTxa`5W#!YcOUMe|1m3BWZQFqqdpUw+J; z>QGz2g5n^15mm9=7tb5}Dc(g6ehV9My&LfA_6o;4ZHhh*5La=)r;hne zeuv3K8$2X7=6wgjLU22S$LPx($+%89I=OT54B6k;WE;1$hxxpgobAl|756F7w_+~c zlcFu4(!+kqqJJ>$9XO|`w=r2x9k-u?w2SjEcMXP8L8B=XC+t>^3-WPbDMU#j_Y2BK4OKiIphQiLnqCK0u~0q~&MCvZt$=4aPV%Wz@{6-L&gYmxF1h2(bG(i&ax|A`(EPu!(-J>fIuc^i(+Hh=Gg2X+qo>LZI{@VQkavLwjg&+L z>(mn1%(#U8s5We0fIL;CX_H-YJ>+O|ixl}iF5C2$0f+0gh&i5elfgw?or@h$i8%15 z@;mIWd>OXyE-=f}EQ@00e5^43gmrvVk+3yqcuX8!7&wXVKEZRlD5}A3H{<*a(l^VL zw<6V}7S=uSxT#Qs4kI6Ub%6Cdjq9rCo%R=7Q_M!7!tdj2tK~J?9yHL3k+gY%UWrJc z8r9%e;9D4_%Xy%fty7{W4ib27FkQ6Swj^w(q>LrYBZrG}8N@>nNt2sB8_Bf|r{7o8 zR8QHU)5n$s*L=RtQd65*MB7<#p18b$`0%bJXo*s;UZQhIRi0~)tEtZsPdWrTAoR*ACfw5D%jJ&sn1Pt3~hTXEngGeJQm z;cVvIk}d6b=3Xm4{ubXu*aI;Ml}FnU7>{bxVjrVFab5g!9R%y%$`uS=R)X;S^Kt ztA8Ias!f}eD%Fet=KX}yWe90fYiWoXu98qzJ5=t;PNZ1Q`I zAx@NAcu->tn&G73;pa@Q4iM@BM=z6r8T-Ny8Z!);;Kodx1Q)(AR?`29QrkRnz;QK+ z|A@6^{luuq7y~1b#|zsFo$1n!cm5m3#LD`*JDR@Fwq=cZ-*@^dB}u*&I86FI9l|EzzZyflOz?mD@F zg9mf-M&9<85JRRb*YnIp>g3?C-j5WFo=g{&eI>1aazA3q#h>l|mR% z6ejKYX-Oz~+>Q@~-a<$#W^f8HS5k9v%sM7EA7tOYM~jRQ#7vUfo=10;6QJco`7b}U z*s;06u)%sB-Wi!?xPkew{iE=R+o25>;uuYKo4-ctCYe9-QYPC?I)507rh;%!LQHFb z&4fxB0JSY{?qs(>E(J;*@Dr{K@tS>Q+Sep!O>C14e<3h9vy!C;>3SB_ApX^gq4OhA zI`NBlg5L!Maj`tH4=wx1YJo|n9ht{xHtY(ea3;L2unTu;Bvgt+kkn2NlxHyf906X? zdu!>AYd38a9X&YU;^Mmd^K2yEtZ+HntGwzVTB^6a*g|uAWy{nR+D>w_R``MfkXKX|@K|JF17rc;-B?wO^Hth(dIj7O| zWf7J6{lY|6RL#bL`%NI`%fx7V{_wIn1ya=^I)){j&N>wTO`2L&m^Cy8*Y=mp+x_47wFVIJcnWU0;3V4oB7oOoL zAo24Dzgn0?F0RM;u2>bZ=U`OJmaCfY^twW$a*s}ckk3?5>fmYpH2shrG;fDKd?Pl) zwBy;rM=2HfO?eRSlf=d4@acxG*5~EHq7zj%|{rp$Wu+tNC&KJ+$z>tQ-ETI#`?xQFKf+Oe~(x{!xf4=RwkzV{9823xg z{K-xfwogPxqV_wj->eG@Yi<=h>P~MER0R^U3K>h;}Aeh= zk*8u6SUv#Rea|t0nPfPzVGm4OhVUPKvw!$5y>l6fD_$xez%tqs6QG?+%!=V0xKZt=nz5=oJqd;7?P z>N_ZSuz%89@3FnK|5#+}<2ypBBEP5@GoyTAC@puaq>jr*(_^t;xE2cS_1M* z7Pr}MTmlAVzGb|h%>$U)qW@<8Y;v~6vqWT#faNGtVUd9w$4ghN*}xCyx%`V;ll?y}_o$ztyB~;Vy2Wh$K*Kq_Ca|AJik8Mii2i-nlZ+BAb+k6Hk@y8f zy^gsMb`l!B1SEU@A^pu%KZTA^j7eh9^-|LWPvgU2M?XgqXdcBoQ^o{*MWl4sgiHNA zVm6?_`J~M^m58#~szIW(Z$)w+lYYORV@u?xEx5dVj#i8H$BBu}GJ}topDUFW8=Roz z3rF4g`f{_3=$cy!^}@~)nAH<{OMQ($UV$@wx!%+}G|VLJ{22swUAk{2)~(JDK_G!D zfTw*~dx!`fbgfYH-P6O}FN}I#f8_I3c)tb2*VXb~~+b~BUf4v7q%l1KcqkxnYPnbS) zTDo>zgh3GrIq|qiH}_AT)9x?s|J=}1AjxM_Ub8vKwoZg6q*`0?`Wo5IToGV_W`;Z8RC`OWDv5eSLQ!?miP z9l4sXIUt|F)c2mm1AJ#%8y-ga@w5KEKNh{| zZWo&8q*jSho$SqeX)rw%bzK@A<90YdzY1Z5K(;~kn!a3pB zF5s$Pk0P50#q47*V#ZlDX1^&!?$7U4(2_()zp)!G|14y|E&MN~09|kaeeR(;T zX!RCc6;mq=N7?5G$}LY0`Jl$?A{Mdg)k>@6|()U3d1m5%cJ0wFbT< z>-U+%HW3j99Fi*L*M3%gfYro4){@|z9h86U8I~gn9Tl7gDz_s4uba1wXu<71QVc*w zD?ARQ7JeQ`JwRtNi(h*yLdSfjGi_Kbj_n!zt?yIGi+COAtb2djmu7ib;E7of72;xC z?DYNFU|2mXK2*--WtnlZ>iQ?vP-PTh5 zGpAy>@OGXDA?%qmjUMMox*nQ;t!z3IsPu@!{)2(@bU`2I!PAt`qkHQ9EjsbO_YVb_ z4U4tyKj(nI3|JZ*^}}vUjUPdsn-e_23nU0s+3*agHTQ)W_gt}{)dX%@EyO;KTWlvZ zu*SWjL&y7C+)%~hY{|ZuVmgJtL0m5Xq_O!&D@W_lO?Ym7C+<;J;yAI-f)lbY@Jw{w z+=){L6?ZCcj=N6~@?O@nQ>pNcm8d#4@9$@-9NO2e^hfrrrCSMxmh#DV8^{-Rm@!>f_f?W*Sl1Yw4@q!gvlB-4^I%I(RA}l+T-+I6 zr5>2@>dRS4Y;cG37+<)WA&nS|@JI3Ct0}SpVkYzb<>wb@inN2{(nrKFLGp&5au|oN zlElFZKCU+Pn-Ookc<&)+4Tb%c`H?xg{N|)F@7M-IPm(vK4EWdTBh7>|t8Wwt^6SOU zHY`kx2ArVA6nU85G$OX=-+^Ha~ya-#$<*7*S(xBmf&DzMjrkWGk&s?sFl@cYGK19dC{GjcL|9^|I{ zhI7&Y|E5n>C@aj_JbGty9(j=HWCv_}wzHkU=}bt+gM}!;%?EQs-(0^-996ifzBKZz z!eo8)boi+!j+F+H>!={^=)XGB4mQXPPH#3xcNF;{HndKHbF1H=aMTER{fZhNuy%}T z`!CMeInXt`wM4p;pCeCn=uj;?<})3>7t^84{aCeicMP9Px>=xe(V6o@2D4ZUVtr<# z1(R0Y99^ZSNit=AgVGB4++H=vEHp5=px$`|eXP87Cn}%xxN<446Ph#X?LI5WJUlBx z$pTJs{(u&J+KYbS%8WpnkRz%;H`Q6iuw@w2l{@sPAo=7MBI^w!R}IPptKnF1B^r^P z4@Ijmp0uS&flUu@sNviXS>QpuH~?g=DeMSz)To76=+Srx7TfyOj@$#}^2T_M0%B9; zZXO?<)b=)){%LPMSYtgou4U<4x74~sERFHHzl#V6{ux}dDy5@pY(I2PabYP#2-7t# z_v2h0NaFepM^WXSkf`j?6PfMy*Ijdsn^FXktk=7%dBBM)tuu*2PIST?t{u5xL(pT{ zg6rtW%M<-jr_WK!C!2RI3l$UIKnf09Ab=l0TM-Nla1SoEk!nJa;g}sbrX>UNiBmpF z1|5DGl$vOqrsEm6&!}KL=+D@Y{(U6-H6X9sy+DkN{iDyobp^ZdM0w|pH#+v=i}L7Z zD!-+2VCgRbe?0)C*pNNxv$Lwz6m^S+e+FTj4CcEF3fGN5kQN!vy&~b(ASNg^zZAVC zKMSTveuUKiK`Nz72DV&Mr3H%yNqM%-)(-+2}R`nhr9{l+d84BnNazWtl5DRsD)Es0@i!JA6 zhV0KMXaaQXz}aylKk%Q?(t<~wF*X|bD(t7OcrsoO)PN;Fyn~Zm78`1b@~(TW+-Z|f zd`d>u-oL)RBlJnF^hS^{;bN`3{n`%H1vm()T)%QFenV%ijNO(|mOR>Wz)2vv;|+$9 zpRfXrQ=!FnMgWXQM-u8JF#c4w#UTA-2V4&C{D!77vXLY+Ya6()<2O=Q4y@{MH=bIS z5QYZQUfd!tgTex7zDIkm9!bmcR0+@tuE8_L5fozU&ZZ`G>5v zrAd7dO8y%*ca}sGHj_|@`$iA)Ykoszj4hxzB%`4_8F}yo5(yD-p}*SKv(pPk$n+%9 zga%z@sinaYQ8IMW!;X64!c-_7RlBSxx0d$_Nh9;IxP_m?%yJ+%;x~-a133XHFi7Ga z8x;H2$*|rPT_+EmK;kRN#kHe->YJ;uzt_^hLhjJ``$yziR|@@JWy{2}eks-yLOHdA zG++z(8(hAT+C7Uo+2uFc=$w;2>;*Q?JAe!g)KQ%~J*s<+rIv=BhzK;B9Bbud|Amjj z)Wwl00Gg`#FRYPpK!)F3mvUYbH+L%IMTNM^AryJgP-QXT&v-%W(nGTI(b=mak~tmZ z&!ADL2b@VQ_HT`MxRG%NxU2e(J(TpJ)2C%mMxi33&!ptu?h#Bbo%Q&SSC!Q0wX5FO zEKa%0WKSN=c1?pMRZg^_xVw3ovzZu%^^mzS0+Z3MrmcZ2XTgngX(IlTBMd?M?gc1(JLq!_kO;$h9eb zz~A~4s5%<%w34X2%01kEIOUf~VI;0tt*ZpLkrY6zy+Z_BW$dnQL^V6k43q0=13AVm2ORB{7(+ZN{F*!+kraj^+GU30*J%n=?RD8u*f6ZJ#mw&^J zSiIryzM8Tbt`1a3Nrw#vo!;?WgUq&&U@=h0NP)Fe|Dh(fGt#If&|S}c`=@sm6-4pB zR0mSlF!xZ-%y(V9E=e5z0nG+Lkw&Zk_{nZZi+Q%yIGMivfg8JW3c-)i+eO+UJwQ{X zoNA=eXHdewHsx2i);p5>?GJEzpuu0F`7C=Qtn2|CrK!eAmMP%A4}f=@0+enrdbimp zKS--s0i#O~l97?4B{v5}(5KZ;Ls#polTlK{2C`;@pqR#g<=THP>_7At+rN;~j*2Ar zef`Zpv{?Jzj3DU0RP+DW?!IZOW&-Ur`%|!!Wh{BZYgeB^o1aMhr}4NmW(B*u2uSgN z%04hHX5}>S=>wyLy-$Y)8Dw|GI#5O=Hs6K+G7|m`**knI_HSkZh(-ih&vQz(X2IMl zw01JzlONs>f!MTr4@(sou*ahCLB;r=6*H|1djvuQba5VRm}gu6lJiq^29H-$VurB> zRsA0SP3@47Od}Z5wT=+H(7H4jZMubsxYe`BkPPARYQOB*qh=qAdf6v6?8 zpc^FxzI^SH#u6c2)b1l_uCxn?Dx8igUfriSuA-DM=hZjAq<3|1SZlA+sBL=;ICBbG z>aI7v7h0ttn?_*Y5JqZw9sPEg#|+^o`m4f{+$U67wWHN{|AwG2Pm;{p1%>_p=ls4! YReL2-`EX+OGO1S;Ma}EkSMUD)Kas`Zm;e9( literal 0 HcmV?d00001 diff --git a/eagle/sam7fc-top.png b/eagle/sam7fc-top.png new file mode 100644 index 0000000000000000000000000000000000000000..86e0f5b6b0e0f5c116ce2f28c71942036005f6cd GIT binary patch literal 37411 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 O<80AqZR)Lki2nvd1kxw~ literal 0 HcmV?d00001 diff --git a/include/at91_adc.h b/include/at91_adc.h index ba463ae..b992d0a 100644 --- a/include/at91_adc.h +++ b/include/at91_adc.h @@ -3,21 +3,30 @@ #include -#define ADC_GYRO_ROLL 0 -#define ADC_GYRO_NICK 1 -#define ADC_GYRO_YAW 2 -#define ADC_ACC_ROLL 3 -#define ADC_ACC_NICK 4 -#define ADC_ACC_YAW 5 +#define ADC_GYRO_NICK 0 +#define ADC_GYRO_ROLL 1 +#define ADC_GYRO_GIER 2 + +#define ADC_ACC_NICK 3 +#define ADC_ACC_ROLL 4 +#define ADC_ACC_GIER 5 + #define ADC_VOLTAGE 6 -#define ADC_CAL_NONE 0 -#define ADC_CAL_GYRO 1 -#define ADC_CAL_ACC 2 +// TODO: not all flags are public +#define ADC_COMPLETE 0x0001 +#define ADC_CAL_GYRO 0x0100 +#define ADC_CAL_GYRO_COMPLETE 0x0200 +#define ADC_CAL_ACC 0x1000 +#define ADC_CAL_ACC_COMPLETE 0x2000 +#define ADC_CAL_ACC_LOAD 0x4000 void adc_trigger(void); +void adc_get_results(int16_t *adc_result); void adc_calibrate(uint32_t mode); +void adc_drift_adjust(int16_t nick, int16_t roll, int16_t yaw); + void at91_adc_init(void); -#endif /*AT91_ADC_H_*/ +#endif /* AT91_ADC_H_ */ diff --git a/include/at91_dbgu.h b/include/at91_dbgu.h index 985f366..4486b3e 100644 --- a/include/at91_dbgu.h +++ b/include/at91_dbgu.h @@ -1,12 +1,10 @@ #ifndef AT91_DBGU_H_ #define AT91_DBGU_H_ -#include - void at91_dbgu_init(void); void at91_dbgu_putc(char c); void at91_dbgu_puts(const char *p); int at91_dbgu_write(void *base, const char *buf, size_t len); -#endif /*AT91_DBGU_H_*/ +#endif /* AT91_DBGU_H_ */ diff --git a/include/at91_pitc.h b/include/at91_pitc.h index 286a722..f7e72ad 100644 --- a/include/at91_pitc.h +++ b/include/at91_pitc.h @@ -17,6 +17,7 @@ struct pitc_timer { }; void pitc_schedule_timer(struct pitc_timer *timer); +void pitc_remove_timer(struct pitc_timer *timer); uint32_t pitc_get_ticks(void); void at91_pitc_init(void); diff --git a/include/board.h b/include/board.h index 340bc57..f00c898 100644 --- a/include/board.h +++ b/include/board.h @@ -40,4 +40,6 @@ #define MIN(a,b) ((a) < (b) ? (a) : (b)) #define MAX(a,b) ((a) > (b) ? (a) : (b)) +#define LIMIT(val, min, max) (((val) < (min)) ? (min) : (((val) > (max)) ? (max) : (val))) + #endif /*BOARD_H_*/ diff --git a/include/fixed.h b/include/fixed.h deleted file mode 100644 index 1202c3b..0000000 --- a/include/fixed.h +++ /dev/null @@ -1,34 +0,0 @@ -#ifndef _FIXED_H_ -#define _FIXED_H_ - -#include - -typedef int32_t fixed; - -fixed itofix(int x); -int fixtoi(fixed x); - -fixed ftofix(double x); -double fixtof(fixed x); - -fixed fadd(fixed x, fixed y); -fixed fsub(fixed x, fixed y); -fixed fmul(fixed x, fixed y); -fixed fdiv(fixed x, fixed y); - -const fixed fixtorad_r; -const fixed radtofix_r; - -fixed fcos(fixed x); -fixed fsin(fixed x); -fixed ftan(fixed x); - -fixed facos(fixed x); -fixed fasin(fixed x); -fixed fatan(fixed x); - -fixed fatan2(fixed y, fixed x); - -fixed fsqrt(fixed n); - -#endif /* _FIXED_H_ */ diff --git a/include/pidctrl.h b/include/pidctrl.h index c1cbec6..936180d 100644 --- a/include/pidctrl.h +++ b/include/pidctrl.h @@ -6,8 +6,6 @@ struct pid_data { int32_t kp; - int32_t ta; - int32_t ki; int32_t err_sum; int32_t err_sum_max; diff --git a/include/tdc_proto.h b/include/tdc_proto.h new file mode 100644 index 0000000..0e18be6 --- /dev/null +++ b/include/tdc_proto.h @@ -0,0 +1,103 @@ +#ifndef TDCPROTO_H_ +#define TDCPROTO_H_ + +#include + +/* + * 0: this is a request (host -> board) + * 1: this is a reply (board -> host) + */ +#define TDC_DIR 0x80 +#define TDC_REPLY TDC_DIR + +/* + * TDC_DIR = 0: destination address + * TDC_DIR = 1: source address + */ +#define TDC_ADDRMASK 0x70 +#define TDC_ADDR0 0x00 // host (dynamic!, sends to interface of last hello) +#define TDC_ADDR1 0x10 // flightcontrol +#define TDC_ADDR2 0x20 // missioncontrol +#define TDC_ADDR3 0x30 // videocontrol +#define TDC_ADDR4 0x40 +#define TDC_ADDR5 0x50 +#define TDC_ADDR6 0x60 +#define TDC_ADDR7 0x70 + +#define TDC_OPCODEMASK 0x0F +#define TDC_HELLO 0x00 // sets the path/interface to the host, reply is a info string +#define TDC_GETVARS 0x01 // request variable names, many replies +#define TDC_GETVALUE 0x02 // get one value, one reply +#define TDC_SETVALUE 0x03 // set one value, no reply +#define TDC_REQVALUES 0x04 // registers a periodic update, timed replies +#define TDC_TERMINAL 0x05 // stdout data + +#define TDC_USERDATA 0x0F // user-defined data e.g. between boards + +struct tdc_pkt_header { + uint8_t cmd; // TDC_* + uint8_t size; // size including this header +} __attribute__ ((packed)); + +struct tdc_hello_reply { + uint8_t cmd; + uint8_t size; + char name[32]; // name of device, version string +} __attribute__ ((packed)); + +struct tdc_getvars_reply { + uint8_t cmd; + uint8_t size; + uint8_t id; // variable ID (max 256 vars / board) + uint32_t flags; // variable parameters (type, size, ro/rw) + uint8_t name_len; // size of variable name + char name[0]; // variable name, excluding '\0' +} __attribute__ ((packed)); + +struct tdc_getvalue_request { + uint8_t cmd; + uint8_t size; + uint8_t id; // variable ID (max 256 vars / board) +} __attribute__ ((packed)); + +struct tdc_getvalue_reply { + uint8_t cmd; + uint8_t size; + uint8_t id; // variable ID (max 256 vars / board) + uint8_t data[0]; // variable data 1-8 bytes +} __attribute__ ((packed)); + +struct tdc_setvalue_request { + uint8_t cmd; + uint8_t size; + uint8_t id; // variable ID (max 256 vars / board) + uint8_t data[0]; // variable data 1-8 bytes +} __attribute__ ((packed)); + +struct tdc_reqvalues_request { + uint8_t cmd; + uint8_t size; + uint16_t interval; // interval in ms + uint32_t varmap[8]; // bitmap of variables (32 * 8 = 256) +} __attribute__ ((packed)); + +struct tdc_reqvalues_reply { + uint8_t cmd; + uint8_t size; + uint32_t timestamp; // internal jiffie count + uint8_t cnt; // number of variables +} __attribute__ ((packed)); + +#define TDC_SIZEMASK 0x000F + +#define TDC_TYPEMASK 0x00F0 +#define TDC_UNSIGNED 0x0000 +#define TDC_SIGNED 0x0010 +#define TDC_FP 0x0020 +#define TDC_FIXED 0x0040 + +#define TDC_READONLY 0x0100 + +#define TDC_GUI_GRAPH 0x8000 + +#endif /* TDCPROTO_H_ */ diff --git a/include/telemetrie.h b/include/telemetrie.h index 6e233c1..79136b8 100644 --- a/include/telemetrie.h +++ b/include/telemetrie.h @@ -1,108 +1,19 @@ #ifndef TELEMETRIE_H_ #define TELEMETRIE_H_ -/* - * 0: this is a request (host -> board) - * 1: this is a reply (board -> host) - */ -#define TDC_DIR 0x80 -#define TDC_REPLY TDC_DIR - -/* - * TDC_DIR = 0: destination address - * TDC_DIR = 1: source address - */ -#define TDC_ADDRMASK 0x70 -#define TDC_ADDR0 0x00 // host (dynamic!, sends to interface of last hello) -#define TDC_ADDR1 0x10 // flightcontrol -#define TDC_ADDR2 0x20 // missioncontrol -#define TDC_ADDR3 0x30 // videocontrol -#define TDC_ADDR4 0x40 -#define TDC_ADDR5 0x50 -#define TDC_ADDR6 0x60 -#define TDC_ADDR7 0x70 - -#define TDC_OPCODEMASK 0x0F -#define TDC_HELLO 0x00 // sets the path/interface to the host, reply is a info string -#define TDC_GETVARS 0x01 // request variable names, many replies -#define TDC_GETVALUE 0x02 // get one value, one reply -#define TDC_SETVALUE 0x03 // set one value, no reply -#define TDC_REQVALUES 0x04 // registers a periodic update, timed replies -#define TDC_TERMINAL 0x05 // stdout data - -#define TDC_USERDATA 0x0F // user-defined data e.g. between boards - -struct tdc_pkt_header { - uint8_t cmd; // TDC_* - uint8_t size; // bytes after size -} __attribute__ ((packed)); - -struct tdc_hello_reply { - uint8_t cmd; - uint8_t size; - char name[32]; // name of device, version string -} __attribute__ ((packed)); - -struct tdc_getvars_reply { - uint8_t cmd; - uint8_t size; - uint8_t id; // variable ID (max 256 vars / board) - uint32_t flags; // variable parameters (type, size, ro/rw) - char name[0]; // variable name, excluding '\0' -} __attribute__ ((packed)); - -struct tdc_getvalue_request { - uint8_t cmd; - uint8_t size; - uint8_t id; // variable ID (max 256 vars / board) -} __attribute__ ((packed)); - -struct tdc_getvalue_reply { - uint8_t cmd; - uint8_t size; - uint8_t id; // variable ID (max 256 vars / board) - uint8_t data[0]; // variable data 1-8 bytes -} __attribute__ ((packed)); - -struct tdc_setvalue_request { - uint8_t cmd; - uint8_t size; - uint8_t id; // variable ID (max 256 vars / board) - uint8_t data[0]; // variable data 1-8 bytes -} __attribute__ ((packed)); - -struct tdc_reqvalues_request { - uint8_t cmd; - uint8_t size; - uint16_t interval; // interval in ms - uint32_t varmap[8]; // bitmap of variables (32 * 8 = 256) -} __attribute__ ((packed)); - -struct tdc_reqvalues_reply { - uint8_t cmd; - uint8_t size; - uint32_t timestamp; // internal jiffie count - uint8_t cnt; // number of variables -} __attribute__ ((packed)); - - +#include "tdc_proto.h" struct comm_device { struct fifo *rxfifo; struct fifo *txfifo; + void (*trigger_tx)(void); }; void tdc_register_device(uint32_t addr, struct comm_device *device); - int32_t tdc_transmit(uint32_t addr, struct tdc_pkt_header *head); -void tdc_receive(struct comm_device *device); - - - - - - +void tdc_check(void); +void tdc_init(void); struct tdc_value { void *data; @@ -110,26 +21,45 @@ struct tdc_value { uint32_t flags; }; -#define TDC_SIZEMASK 0x0F -#define TDC_UNSIGNED 0x00 -#define TDC_SIGNED 0x10 -#define TDC_FP 0x20 +#if 1 -#define TDC_VALUE(var, desc, type, flags) \ - type * tdc_check_##var(void) { return (&var); } \ +#define TDC_VALUE(name, var, desc, type, flags) \ + type * tdc_check_##name(void) { return (&var); } \ static struct tdc_value __attribute__((used, section(".tdc_value"))) \ - tdc_value_##var = { &var, desc, sizeof(type) | flags }; \ - tdc_value_##var = tdc_value_##var; + tdc_value_##name = { &var, desc, sizeof(type) | flags }; \ + tdc_value_##name = tdc_value_##name; -#define TDC_UINT8(var, desc) TDC_VALUE(var, desc, uint8_t, TDC_UNSIGNED) -#define TDC_UINT16(var, desc) TDC_VALUE(var, desc, uint16_t, TDC_UNSIGNED) -#define TDC_UINT32(var, desc) TDC_VALUE(var, desc, uint32_t, TDC_UNSIGNED) -#define TDC_UINT64(var, desc) TDC_VALUE(var, desc, uint64_t, TDC_UNSIGNED) -#define TDC_INT8(var, desc) TDC_VALUE(var, desc, int8_t, TDC_SIGNED) -#define TDC_INT16(var, desc) TDC_VALUE(var, desc, int16_t, TDC_SIGNED) -#define TDC_INT32(var, desc) TDC_VALUE(var, desc, int32_t, TDC_SIGNED) -#define TDC_INT64(var, desc) TDC_VALUE(var, desc, int64_t, TDC_SIGNED) -#define TDC_FLOAT(var, desc) TDC_VALUE(var, desc, float, TDC_FP) -#define TDC_DOUBLE(var, desc) TDC_VALUE(var, desc, double, TDC_FP) +#define TDC_PTR(name, ptr, desc, type, flags) \ + static struct tdc_value __attribute__((used, section(".tdc_value"))) \ + tdc_value_##name = { ptr, desc, sizeof(type) | flags }; \ + +#else + +#define TDC_VALUE(name, var, desc, type, flags) +#define TDC_PTR(name, ptr, desc, type, flags); + +#endif + +#define TDC_UINT8(var, desc) TDC_VALUE(var, var, desc, uint8_t, TDC_UNSIGNED) +#define TDC_UINT16(var, desc) TDC_VALUE(var, var, desc, uint16_t, TDC_UNSIGNED) +#define TDC_UINT32(var, desc) TDC_VALUE(var, var, desc, uint32_t, TDC_UNSIGNED) +#define TDC_UINT64(var, desc) TDC_VALUE(var, var, desc, uint64_t, TDC_UNSIGNED) +#define TDC_INT8(var, desc) TDC_VALUE(var, var, desc, int8_t, TDC_SIGNED) +#define TDC_INT16(var, desc) TDC_VALUE(var, var, desc, int16_t, TDC_SIGNED) +#define TDC_INT32(var, desc) TDC_VALUE(var, var, desc, int32_t, TDC_SIGNED) +#define TDC_INT64(var, desc) TDC_VALUE(var, var, desc, int64_t, TDC_SIGNED) +#define TDC_FLOAT(var, desc) TDC_VALUE(var, var, desc, float, TDC_FP) +#define TDC_DOUBLE(var, desc) TDC_VALUE(var, var, desc, double, TDC_FP) + +#define TDC_UINT8_RO(var, desc) TDC_VALUE(var, var, desc, uint8_t, TDC_UNSIGNED | TDC_READONLY) +#define TDC_UINT16_RO(var, desc) TDC_VALUE(var, var, desc, uint16_t, TDC_UNSIGNED | TDC_READONLY) +#define TDC_UINT32_RO(var, desc) TDC_VALUE(var, var, desc, uint32_t, TDC_UNSIGNED | TDC_READONLY) +#define TDC_UINT64_RO(var, desc) TDC_VALUE(var, var, desc, uint64_t, TDC_UNSIGNED | TDC_READONLY) +#define TDC_INT8_RO(var, desc) TDC_VALUE(var, var, desc, int8_t, TDC_SIGNED | TDC_READONLY) +#define TDC_INT16_RO(var, desc) TDC_VALUE(var, var, desc, int16_t, TDC_SIGNED | TDC_READONLY) +#define TDC_INT32_RO(var, desc) TDC_VALUE(var, var, desc, int32_t, TDC_SIGNED | TDC_READONLY) +#define TDC_INT64_RO(var, desc) TDC_VALUE(var, var, desc, int64_t, TDC_SIGNED | TDC_READONLY) +#define TDC_FLOAT_RO(var, desc) TDC_VALUE(var, var, desc, float, TDC_FP | TDC_READONLY) +#define TDC_DOUBLE_RO(var, desc) TDC_VALUE(var, var, desc, double, TDC_FP | TDC_READONLY) #endif /*TELEMETRIE_H_*/ diff --git a/main.c b/main.c index 1d0b1e3..34ac970 100644 --- a/main.c +++ b/main.c @@ -1,158 +1,106 @@ -/*************************************************************************** - * Copyright (C) 01/2008 by Olaf Rempel * - * razzor@kopf-tisch.de * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; version 2 of the License * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#include "AT91SAM7S256.h" -#include "at91_sysc.h" -#include "at91_dbgu.h" -#include "at91_pitc.h" -#include "at91_adc.h" -#include "at91_tests.h" -#include "at91_udp.h" -#include "at91_pio.h" -#include "at91_twi.h" - -#include "at91_tc1.h" -#include "memalloc.h" - -#include "board.h" -#include -#include - -static uint32_t global_state; - -#define MOTORS_RUNNING 0x0001 -#define STICK_CALIBRATION 0x0002 - -static uint32_t stick_timer_cb(struct pitc_timer *timer) -{ - static uint32_t i; - *AT91C_PIOA_SODR = i; - i = i ^ LED_GREEN; - *AT91C_PIOA_CODR = i; - - struct rc_values rc; - uint32_t count = rcontrol_getswitches(&rc); - - static uint32_t stick_cal_count; - - if (global_state & MOTORS_RUNNING) { - if ((rc.chan[2] < 0 && rc.chan[3] > 0) || count < 4) - global_state &= ~MOTORS_RUNNING; - - } else if (global_state & STICK_CALIBRATION) { - stick_cal_count--; - if (stick_cal_count == 0) { - rcontrol_calibrate(RC_CAL_END); - rcontrol_calibrate(RC_CAL_SAVE); - rcontrol_print_cal(); - global_state &= ~STICK_CALIBRATION; - } - - } else if (count >= 4) { - if (rc.chan[2] < 0 && rc.chan[3] < 0) - global_state |= MOTORS_RUNNING; - - if (rc.chan[2] > 0 && rc.chan[3] > 0) - adc_calibrate(ADC_CAL_GYRO); - - if (rc.chan[2] > 0 && rc.chan[3] < 0) { - adc_calibrate(ADC_CAL_ACC); - - stick_cal_count = 3000; - global_state |= STICK_CALIBRATION; - rcontrol_calibrate(RC_CAL_START); - } - } - - rcontrol_getvalues(&rc); - - static uint8_t pwm[4]; - if (global_state & MOTORS_RUNNING) { - int32_t pitch = rc.chan[2] * 256; - int32_t gier = rc.chan[3] * 64; - int32_t nick = rc.chan[0] * 64; - int32_t roll = rc.chan[1] * 64; - - int32_t data[4]; - data[0] = (pitch - nick + gier) / 1024; - data[1] = (pitch + nick + gier) / 1024; - data[2] = (pitch + roll - gier) / 1024; - data[3] = (pitch - roll - gier) / 1024; - - pwm[0] = (data[0] > 0x0f) ? data[0] : 0x0f; - pwm[1] = (data[1] > 0x0f) ? data[1] : 0x0f; - pwm[2] = (data[2] > 0x0f) ? data[2] : 0x0f; - pwm[3] = (data[3] > 0x0f) ? data[3] : 0x0f; - - } else { - pwm[0] = 0x00; - pwm[1] = 0x00; - pwm[2] = 0x00; - pwm[3] = 0x00; - } - -// printf("%3d %3d %3d %3d\n\r", pwm[0], pwm[1], pwm[2], pwm[3]); - twi_setpwm(pwm); - -// adc_trigger(); - return PITC_RESTART_TIMER; -} - -static struct pitc_timer stick_timer = { - .interval = 10, - .func = &stick_timer_cb, -}; - -int main(void) -{ - /* LED outputs */ - *AT91C_PIOA_PER = LED_GREEN | LED_ORANGE; - *AT91C_PIOA_OER = LED_GREEN | LED_ORANGE; - - /* needed for dbgu */ - at91_sysc_init(); - - at91_dbgu_init(); - at91_dbgu_puts("==========================================================\n\rGood morning Dave\n\r"); - - /* triggers pinchange-isrs */ - at91_pio_init(); - - /* timer */ - at91_pitc_init(); - at91_rttc_test_init(); - - /* twi */ - at91_twi_init(); - at91_twi_test(); - - /* remote control, needs twi */ - at91_tc1_init(); - - /* usb */ - at91_udp_init(); - - /* adc, need timer, twi */ - at91_adc_init(); - - pitc_schedule_timer(&stick_timer); - - printf("static alloc: %5ld bytes\n\r", static_alloc_used()); - - while (1); -} +/*************************************************************************** + * sam7fc - main loop * + * * + * Copyright (C) 01/2008 by Olaf Rempel * + * razzor@kopf-tisch.de * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; version 2 of the License * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ +#include +#include + +#include "AT91SAM7S256.h" +#include "board.h" + +#include "at91_sysc.h" +#include "at91_dbgu.h" +#include "at91_pitc.h" +#include "at91_adc.h" +#include "at91_tests.h" +#include "at91_udp.h" +#include "at91_pio.h" +#include "at91_twi.h" + +#include "at91_tc1.h" +#include "memalloc.h" +#include "telemetrie.h" + +extern void base_ctrl(void); + +volatile static uint32_t run_ctrl; + +static uint32_t base_ctrl_trigger(struct pitc_timer *timer) +{ + /* trigger adc, after ~15us () result should be ready */ + adc_trigger(); + + run_ctrl = 1; + + return PITC_RESTART_TIMER; +} + +static struct pitc_timer base_timer = { + .interval = 2, + .func = &base_ctrl_trigger, +}; + +int main(void) +{ + /* LED outputs */ + *AT91C_PIOA_PER = LED_GREEN | LED_ORANGE; + *AT91C_PIOA_OER = LED_GREEN | LED_ORANGE; + + /* needed for dbgu */ + at91_sysc_init(); + + at91_dbgu_init(); + at91_dbgu_puts("==========================================================\n\rGood morning Dave\n\r"); + + /* triggers pinchange-isrs */ + at91_pio_init(); + + /* timer */ + at91_pitc_init(); + at91_rttc_test_init(); + + /* twi */ + at91_twi_init(); + at91_twi_test(); + + /* remote control, needs twi */ + at91_tc1_init(); + + /* usb */ + at91_udp_init(); + + /* adc, need timer, twi */ + at91_adc_init(); + + pitc_schedule_timer(&base_timer); + + tdc_init(); + + printf("static alloc: %5ld bytes\n\r", static_alloc_used()); + + while (1) { + if (run_ctrl) { + // TODO: racy? + run_ctrl = 0; + + base_ctrl(); + } + tdc_check(); + } +} diff --git a/src/at91_adc.c b/src/at91_adc.c index d12f8ab..133f812 100644 --- a/src/at91_adc.c +++ b/src/at91_adc.c @@ -1,4 +1,6 @@ /*************************************************************************** + * sam7fc - ADC routines / calibration * + * * * Copyright (C) 01/2008 by Olaf Rempel * * razzor@kopf-tisch.de * * * @@ -18,28 +20,35 @@ ***************************************************************************/ #include #include - #include "AT91SAM7S256.h" #include "board.h" #include "at91_adc.h" #include "at91_pitc.h" #include "at91_twi.h" +#include "telemetrie.h" -#define ADC_CAL_COUNT 1024 +static uint32_t adc_status; static uint16_t adc_tmp[7]; -static int16_t adc_result[7]; static uint16_t adc_offset[6]; +TDC_PTR(adc_offset0, &adc_offset[ADC_GYRO_NICK], "XADC_GYRO_NICK (offset)", int16_t, TDC_UNSIGNED); +TDC_PTR(adc_offset1, &adc_offset[ADC_GYRO_ROLL], "XADC_GYRO_ROLL (offset)", int16_t, TDC_UNSIGNED); +TDC_PTR(adc_offset2, &adc_offset[ADC_GYRO_GIER], "XADC_GYRO_GIER (offset)", int16_t, TDC_UNSIGNED); +TDC_PTR(adc_offset3, &adc_offset[ADC_ACC_NICK], "XADC_ACC_NICK (offset)", int16_t, TDC_UNSIGNED); +TDC_PTR(adc_offset4, &adc_offset[ADC_ACC_ROLL], "XADC_ACC_ROLL (offset)", int16_t, TDC_UNSIGNED); +TDC_PTR(adc_offset5, &adc_offset[ADC_ACC_GIER], "XADC_ACC_GIER (offset)", int16_t, TDC_UNSIGNED); + +#define ADC_CAL_COUNT_MAX 1024 + +static uint32_t adc_cal_count; +static uint32_t adc_cal_data[3]; + /* check eeprom parameter size (3x uint16_t) */ #if ((3 * 2) != EE_ACC_CAL_DATA_SIZE) #error "invalid EE_ACC_CAL_DATA_SIZE" #endif -static uint32_t adc_cal_count; -volatile static uint32_t adc_cal_mode; -static uint32_t adc_cal_data[3]; - static void at91_adc_isr(void) { AT91S_PDC *pdc = AT91C_BASE_PDC_ADC; @@ -48,71 +57,50 @@ static void at91_adc_isr(void) pdc->PDC_PTCR = AT91C_PDC_RXTEN; /* clear interrupts */ - uint32_t status = *AT91C_ADC_SR; - status = status; + uint32_t dummy = *AT91C_ADC_SR; + dummy = dummy; - uint32_t i; - for (i = 0; i < ARRAY_SIZE(adc_offset); i++) - adc_result[i] = adc_tmp[i] - adc_offset[i]; + if (!(adc_status & (ADC_CAL_GYRO | ADC_CAL_ACC))) + return; - /* (adc / 1024) * 3.3V * (11k / 1k) * 100 */ - adc_result[ADC_VOLTAGE] = ((uint32_t)adc_tmp[ADC_VOLTAGE] * 3630) / 1024; + if (adc_status & ADC_CAL_GYRO) { + adc_cal_data[0] += adc_tmp[ADC_GYRO_NICK]; + adc_cal_data[1] += adc_tmp[ADC_GYRO_ROLL]; + adc_cal_data[2] += adc_tmp[ADC_GYRO_GIER]; + + } else { + adc_cal_data[0] += adc_tmp[ADC_ACC_NICK]; + adc_cal_data[1] += adc_tmp[ADC_ACC_ROLL]; + adc_cal_data[2] += adc_tmp[ADC_ACC_GIER]; + } + + adc_cal_count++; } static uint32_t adc_calibrate_cb(struct pitc_timer *timer) { - /* trigger next cycle */ - *AT91C_ADC_CR = AT91C_ADC_START; - - if (adc_cal_mode == ADC_CAL_GYRO) { - adc_cal_data[0] += adc_tmp[ADC_GYRO_ROLL]; - adc_cal_data[1] += adc_tmp[ADC_GYRO_NICK]; - adc_cal_data[2] += adc_tmp[ADC_GYRO_YAW]; + if (adc_cal_count < ADC_CAL_COUNT_MAX) { + /* trigger next cycle */ + *AT91C_ADC_CR = AT91C_ADC_START; + return PITC_RESTART_TIMER; } else { - adc_cal_data[0] += adc_tmp[ADC_ACC_ROLL]; - adc_cal_data[1] += adc_tmp[ADC_ACC_NICK]; - adc_cal_data[2] += adc_tmp[ADC_ACC_YAW]; - } + if (adc_status & ADC_CAL_GYRO) { + adc_offset[ADC_GYRO_NICK] = adc_cal_data[0] / ADC_CAL_COUNT_MAX; + adc_offset[ADC_GYRO_ROLL] = adc_cal_data[1] / ADC_CAL_COUNT_MAX; + adc_offset[ADC_GYRO_GIER] = adc_cal_data[2] / ADC_CAL_COUNT_MAX; - adc_cal_count--; - if (adc_cal_count == 0) { - adc_cal_data[0] /= ADC_CAL_COUNT; - adc_cal_data[1] /= ADC_CAL_COUNT; - adc_cal_data[2] /= ADC_CAL_COUNT; - - if (adc_cal_mode == ADC_CAL_GYRO) { - adc_offset[ADC_GYRO_ROLL] = adc_cal_data[0]; - adc_offset[ADC_GYRO_NICK] = adc_cal_data[1]; - adc_offset[ADC_GYRO_YAW] = adc_cal_data[2]; - - // TODO: check for invalid values (not centered) - - printf("GYRO offsets: %4d/%4d/%4d\n\r", - adc_offset[ADC_GYRO_ROLL], - adc_offset[ADC_GYRO_NICK], - adc_offset[ADC_GYRO_YAW]); + adc_calibrate(ADC_CAL_GYRO_COMPLETE); } else { - adc_offset[ADC_ACC_ROLL] = adc_cal_data[0]; - adc_offset[ADC_ACC_NICK] = adc_cal_data[1]; + adc_offset[ADC_ACC_NICK] = adc_cal_data[0] / ADC_CAL_COUNT_MAX; + adc_offset[ADC_ACC_ROLL] = adc_cal_data[1] / ADC_CAL_COUNT_MAX; + adc_offset[ADC_ACC_GIER] = adc_cal_data[2] / ADC_CAL_COUNT_MAX; - // TODO: only 1/2 offset? - adc_offset[ADC_ACC_YAW] = adc_cal_data[2]; - - printf("ACC offsets: %4d/%4d/%4d\n\r", - adc_offset[ADC_ACC_ROLL], - adc_offset[ADC_ACC_NICK], - adc_offset[ADC_ACC_YAW]); - - twi_write_eeprom(EE_ACC_CAL_DATA, (uint8_t *)&(adc_offset[ADC_ACC_ROLL]), EE_ACC_CAL_DATA_SIZE); + adc_calibrate(ADC_CAL_ACC_COMPLETE); } - - adc_cal_mode = ADC_CAL_NONE; return PITC_REMOVE_TIMER; } - - return PITC_RESTART_TIMER; } static struct pitc_timer adc_cal_timer = { @@ -122,28 +110,88 @@ static struct pitc_timer adc_cal_timer = { void adc_trigger(void) { - printf("R:%4d:%4d N:%4d:%4d Y:%4d:%4d U:%4d\n\r", - adc_result[ADC_GYRO_ROLL], adc_result[ADC_ACC_ROLL], - adc_result[ADC_GYRO_NICK], adc_result[ADC_ACC_NICK], - adc_result[ADC_GYRO_YAW], adc_result[ADC_ACC_YAW], - adc_result[ADC_VOLTAGE]); + // TODO: err in retvalue? + if (!(adc_status & (ADC_CAL_GYRO | ADC_CAL_ACC))) + *AT91C_ADC_CR = AT91C_ADC_START; +} - *AT91C_ADC_CR = AT91C_ADC_START; +void adc_get_results(int16_t *adc_result) +{ + // TODO: err in retvalue? + if (!(adc_status & (ADC_CAL_GYRO | ADC_CAL_ACC))) { + uint32_t i; + for (i = ADC_GYRO_NICK; i <= ADC_GYRO_GIER; i++) + adc_result[i] = (int16_t)(adc_offset[i]) - (int16_t)(adc_tmp[i]); + + for (i = ADC_ACC_NICK; i <= ADC_ACC_GIER; i++) + adc_result[i] = (int16_t)(adc_tmp[i]) - (int16_t)(adc_offset[i]); + + /* (adc / 1024) * 3.3V * (11k / 1k) * 100 */ + adc_result[ADC_VOLTAGE] = ((uint32_t)adc_tmp[ADC_VOLTAGE] * 3630) / 1024; + } } void adc_calibrate(uint32_t mode) { - if (adc_cal_mode != ADC_CAL_NONE) - return; + /* disable interrupt */ + *AT91C_ADC_IDR = AT91C_ADC_ENDRX; - if (mode == ADC_CAL_GYRO || mode == ADC_CAL_ACC) { - adc_cal_count = ADC_CAL_COUNT; - adc_cal_mode = mode; + switch (mode) { + case ADC_CAL_GYRO_COMPLETE: + adc_status &= ~ADC_CAL_GYRO; + break; + + case ADC_CAL_ACC_COMPLETE: + twi_write_eeprom(EE_ACC_CAL_DATA, + (uint8_t *)&(adc_offset[ADC_ACC_NICK]), + EE_ACC_CAL_DATA_SIZE); + + adc_status &= ~ADC_CAL_ACC; + break; + + case ADC_CAL_ACC_LOAD: + twi_read_eeprom(EE_ACC_CAL_DATA, + (uint8_t *)&(adc_offset[ADC_ACC_NICK]), + EE_ACC_CAL_DATA_SIZE); + break; + + case ADC_CAL_GYRO: + case ADC_CAL_ACC: + /* calibration in progress.. */ + if (adc_status & (ADC_CAL_GYRO | ADC_CAL_ACC)) + break; + + adc_status |= mode; + adc_cal_count = 0; adc_cal_data[0] = 0; adc_cal_data[1] = 0; adc_cal_data[2] = 0; pitc_schedule_timer(&adc_cal_timer); + + /* trigger next cycle */ + *AT91C_ADC_CR = AT91C_ADC_START; + break; } + + if (!(adc_status & (ADC_CAL_GYRO | ADC_CAL_ACC))) { + printf("ADC offsets: %d/%d/%d %d/%d/%d\n\r", + adc_offset[ADC_GYRO_NICK], + adc_offset[ADC_GYRO_ROLL], + adc_offset[ADC_GYRO_GIER], + adc_offset[ADC_ACC_NICK], + adc_offset[ADC_ACC_ROLL], + adc_offset[ADC_ACC_GIER]); + } + + /* enable interrupt */ + *AT91C_ADC_IER = AT91C_ADC_ENDRX; +} + +void adc_drift_adjust(int16_t nick, int16_t roll, int16_t yaw) +{ + adc_offset[ADC_GYRO_NICK] += nick; + adc_offset[ADC_GYRO_ROLL] += roll; + adc_offset[ADC_GYRO_GIER] += yaw; } void at91_adc_init(void) @@ -185,12 +233,6 @@ void at91_adc_init(void) aic->AIC_SVR[AT91C_ID_ADC] = (uint32_t)at91_adc_isr; aic->AIC_IECR = (1<DBGU_BRGR = BAUD_TO_DIV(115200); + dbgu->DBGU_BRGR = BAUD_TO_DIV(DBGU_BAUDRATE); dbgu->DBGU_MR = AT91C_US_PAR_NONE | AT91C_US_CHMODE_NORMAL; dbgu->DBGU_CR = AT91C_US_RXEN | AT91C_US_TXEN | AT91C_US_RSTSTA; - txfifo = fifo_alloc(1024); + txfifo = fifo_alloc(DBGU_FIFO_SIZE); /* enable TX PDC */ dbgu->DBGU_PTCR = AT91C_PDC_TXTEN; @@ -70,21 +63,18 @@ void at91_dbgu_init(void) void at91_dbgu_putc(char c) { fifo_putbyte(txfifo, c); -// *AT91C_DBGU_IER = AT91C_US_TXEMPTY; *AT91C_DBGU_IER = AT91C_US_TXBUFE; } void at91_dbgu_puts(const char *p) { fifo_put(txfifo, (char *)p, strlen(p)); -// *AT91C_DBGU_IER = AT91C_US_TXEMPTY; *AT91C_DBGU_IER = AT91C_US_TXBUFE; } int at91_dbgu_write(void *base, const char *buf, size_t len) { int retval = fifo_put(txfifo, (char *)buf, len); -// *AT91C_DBGU_IER = AT91C_US_TXEMPTY; *AT91C_DBGU_IER = AT91C_US_TXBUFE; return retval; } diff --git a/src/at91_exceptions.c b/src/at91_exceptions.c index cd87668..550d746 100644 --- a/src/at91_exceptions.c +++ b/src/at91_exceptions.c @@ -1,4 +1,6 @@ /*************************************************************************** + * sam7fc - Abort Handler with Register/Stackdump * + * * * Copyright (C) 01/2008 by Olaf Rempel * * razzor@kopf-tisch.de * * * @@ -181,9 +183,8 @@ __attribute__((naked)) void ABT_Handler(void) "mov r3, lr \n\t" /* enter previous mode and get lr(r14), sp(r13) */ - /* TODO: interrupts might be enabled? */ - /* TODO: thumb mode enabled? */ - "msr CPSR_c, r0 \n\t" + "orr r1, r0, #I_BIT | F_BIT \n\t" + "msr CPSR_c, r1 \n\t" "mov r1, sp \n\t" "mov r2, lr \n\t" @@ -194,7 +195,7 @@ __attribute__((naked)) void ABT_Handler(void) "stmfd sp!, { r1-r3 } \n\t" "mov r1, sp \n\t" - /* execute C Handler (cpsr, registers) */ + /* execute C Handler (cpsr, *registers) */ "ldr r5, =at91_abt_handler \n\t" "mov lr, pc \n\t" "bx r5 \n\t" diff --git a/src/at91_pio.c b/src/at91_pio.c index 6a990d4..93c700b 100644 --- a/src/at91_pio.c +++ b/src/at91_pio.c @@ -1,4 +1,6 @@ /*************************************************************************** + * sam7fc - Pinchange Interrupt Handler * + * * * Copyright (C) 01/2008 by Olaf Rempel * * razzor@kopf-tisch.de * * * @@ -55,7 +57,7 @@ void at91_pio_init(void) /* enable pinchange interrupts */ struct pio_pinchange_isr *isr; for (isr = &_pio_isr_table; isr < &_pio_isr_table_end; isr++) - *AT91C_PIOA_IER = isr->mask; + *AT91C_PIOA_IER = isr->mask; /* dummy read to clear interrupts */ uint32_t dummy = *AT91C_PIOA_ISR; diff --git a/src/at91_pitc.c b/src/at91_pitc.c index bfd7b9e..82b77be 100644 --- a/src/at91_pitc.c +++ b/src/at91_pitc.c @@ -1,4 +1,6 @@ /*************************************************************************** + * sam7fc - Periodic Timer Handling * + * * * Copyright (C) 01/2008 by Olaf Rempel * * razzor@kopf-tisch.de * * * @@ -21,13 +23,15 @@ #include "at91_sysc.h" #include "board.h" +#define PITC_HZ 1000 + /* PIV is 20bit -> min. 3Hz @48MHz MCK */ #define HZ_TO_PIV(HZ) (MCK / (16 * HZ)) static LIST_HEAD(timer_list); volatile static uint32_t pitc_ticks; -void pitc_schedule_timer(struct pitc_timer *timer) +static void _pitc_schedule_timer(struct pitc_timer *timer) { timer->nextrun = timer->interval + pitc_ticks; @@ -39,6 +43,26 @@ void pitc_schedule_timer(struct pitc_timer *timer) list_add_tail(&timer->list, &search->list); } +void pitc_schedule_timer(struct pitc_timer *timer) +{ + /* disable PITC interrupt */ + *AT91C_PITC_PIMR &= ~AT91C_PITC_PITIEN; + + /* check it timer is already running */ + if (timer->nextrun == 0 && timer->interval > 0) + _pitc_schedule_timer(timer); + + // TODO: if timer is running, interval changes are delayed + + /* enable PITC interrupt */ + *AT91C_PITC_PIMR |= AT91C_PITC_PITIEN; +} + +void pitc_remove_timer(struct pitc_timer *timer) +{ + timer->interval = 0; +} + static void pitc_isr(uint32_t status) { /* get Ticks and clear interrupt */ @@ -54,13 +78,14 @@ static void pitc_isr(uint32_t status) list_del(&search->list); /* exec handler */ - if (search->func(search) == PITC_REMOVE_TIMER) { + if ((search->interval == 0) || search->func(search) == PITC_REMOVE_TIMER) { /* one-shot timer, mark as completed */ - search->nextrun = 0x00; + search->nextrun = 0; continue; } + /* interval timer, reschedule it */ - pitc_schedule_timer(search); + _pitc_schedule_timer(search); } } @@ -73,7 +98,7 @@ void at91_pitc_init(void) { sysc_register_isr(AT91_SYSIRQ_PIT, &pitc_isr); - *AT91C_PITC_PIMR = (AT91C_PITC_PIV & HZ_TO_PIV(1000)) | + *AT91C_PITC_PIMR = (AT91C_PITC_PIV & HZ_TO_PIV(PITC_HZ)) | AT91C_PITC_PITEN | AT91C_PITC_PITIEN; } diff --git a/src/at91_rttc_test.c b/src/at91_rttc_test.c index 6b58388..37f4167 100644 --- a/src/at91_rttc_test.c +++ b/src/at91_rttc_test.c @@ -1,3 +1,23 @@ +/*************************************************************************** + * sam7fc - Real Time Clock Calibration * + * * + * Copyright (C) 02/2008 by Olaf Rempel * + * razzor@kopf-tisch.de * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; version 2 of the License * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ #include #include "AT91SAM7S256.h" #include "at91_sysc.h" @@ -6,11 +26,6 @@ static void rtt_isr(uint32_t status) { *AT91C_RTTC_RTAR = *AT91C_RTTC_RTVR +1; - - static uint32_t i; - *AT91C_PIOA_SODR = i; - i = i ^ LED_ORANGE; - *AT91C_PIOA_CODR = i; } void at91_rttc_test_init(void) diff --git a/src/at91_sysc.c b/src/at91_sysc.c index 2789d6f..a88730f 100644 --- a/src/at91_sysc.c +++ b/src/at91_sysc.c @@ -1,4 +1,6 @@ /*************************************************************************** + * sam7fc - System Interrupt Dispatcher * + * * * Copyright (C) 01/2008 by Olaf Rempel * * razzor@kopf-tisch.de * * * @@ -31,15 +33,15 @@ struct _irq_regs { /* same IDs as sysc_isrs enum! */ static const struct _irq_regs irq_regs[] = { - /* + /* * PIT (Periodic Intervall Timer) * ISR must read AT91C_PITC_PIVR to clear interrupt * - PITIEN (Periodic Intervall Timer Interrupt Enable) - */ + */ { AT91C_PITC_PIMR, AT91C_PITC_PITIEN, AT91C_PITC_PISR, AT91C_PITC_PITS }, - + /* * DBGU (Debug Unit) * TODO: must use AT91C_DBGU_IDR to fault disable interrupt @@ -58,12 +60,12 @@ static const struct _irq_regs irq_regs[] = { AT91C_US_TXBUFE | AT91C_US_RXBUFF | AT91C_US_COMM_TX | AT91C_US_COMM_RX) }, - + /* * EFC (Embedded Flash Controller / Memory Controller) */ { AT91C_MC_FMR, (AT91C_MC_FRDY | AT91C_MC_LOCKE | AT91C_MC_PROGE), - AT91C_MC_FSR, (AT91C_MC_FRDY | AT91C_MC_LOCKE | AT91C_MC_PROGE) + AT91C_MC_FSR, (AT91C_MC_FRDY | AT91C_MC_LOCKE | AT91C_MC_PROGE) }, /* @@ -84,7 +86,7 @@ static const struct _irq_regs irq_regs[] = { { AT91C_RTTC_RTMR, (AT91C_RTTC_ALMIEN | AT91C_RTTC_RTTINCIEN), AT91C_RTTC_RTSR, (AT91C_RTTC_ALMS | AT91C_RTTC_RTTINC) }, - + /* * RSTC (Reset Controller) * - AT91C_RSTC_URSTIEN (User Reset Interrupt Enable) @@ -104,27 +106,27 @@ static const struct _irq_regs irq_regs[] = { AT91C_PMC_PCK1RDY | AT91C_PMC_PCK2RDY), AT91C_PMC_SR, (AT91C_PMC_MOSCS | AT91C_PMC_LOCK | AT91C_PMC_MCKRDY | AT91C_PMC_PCK0RDY | - AT91C_PMC_PCK1RDY | AT91C_PMC_PCK2RDY) + AT91C_PMC_PCK1RDY | AT91C_PMC_PCK2RDY) }, -}; +}; /* check Interrupts from internal hardware */ static void at91_sysc_isr(void) { uint32_t id; for (id = 0; id < AT91_SYSIRQ_COUNT; id++) { - + /* check if interrups are enabled */ if (*(irq_regs[id].mask_register) & irq_regs[id].mask) { /* check if interrupts are active */ uint32_t status = *(irq_regs[id].status_register); if (status & irq_regs[id].status) { - + /* execute handler */ if (sysc_isrs[id]) { sysc_isrs[id](status); - + } else { /* disable interrupts */ *(irq_regs[id].mask_register) &= ~irq_regs[id].mask; @@ -138,9 +140,9 @@ void at91_sysc_init(void) { /* high priority, level triggered, own vector */ AT91S_AIC *aic = AT91C_BASE_AIC; - aic->AIC_SMR[AT91C_ID_SYS] = IRQPRIO_SYSC | + aic->AIC_SMR[AT91C_ID_SYS] = IRQPRIO_SYSC | AT91C_AIC_SRCTYPE_INT_HIGH_LEVEL; - + aic->AIC_SVR[AT91C_ID_SYS] = (uint32_t)at91_sysc_isr; aic->AIC_IECR = (1<= AT91_SYSIRQ_COUNT) return; - + sysc_isrs[irq] = isr; } diff --git a/src/at91_tc1.c b/src/at91_tc1.c index ad22fdc..37e8fd1 100644 --- a/src/at91_tc1.c +++ b/src/at91_tc1.c @@ -1,4 +1,6 @@ /*************************************************************************** + * sam7fc - RC-PPM Signal decoder * + * * * Copyright (C) 01/2008 by Olaf Rempel * * razzor@kopf-tisch.de * * * @@ -133,15 +135,9 @@ uint32_t rcontrol_getvalues(struct rc_values *rc) int32_t tmp = (uint32_t)(width - ch_data[i].mid) * VALUE_RANGE; tmp = tmp / ((tmp > 0) ? (ch_data[i].max - ch_data[i].mid) : (ch_data[i].mid - ch_data[i].min)); - /* keep result in range */ - if (tmp > VALUE_RANGE) - tmp = VALUE_RANGE; - - if (tmp < -VALUE_RANGE) - tmp = -VALUE_RANGE; - // TODO: stick mapping - rc->chan[i] = tmp; + /* keep result in range */ + rc->chan[i] = LIMIT(tmp, -VALUE_RANGE, +VALUE_RANGE); } return cnt; } @@ -189,11 +185,11 @@ void rcontrol_calibrate(uint32_t mode) /* treat current position as center */ ch_data[i].mid = ch_data[i].width_slow; - /* if center is near minimum, clamp output to 0..+1024 */ + /* if center is near minimum, clamp output to 0..+RANGE */ if (ch_data[i].mid - ch_data[i].min < PULSE_MID_DIFF) ch_data[i].mid = ch_data[i].min; - /* if center is near maximum, clamp output to -1024..0 */ + /* if center is near maximum, clamp output to -RANGE..0 */ if (ch_data[i].max - ch_data[i].mid < PULSE_MID_DIFF) ch_data[i].mid = ch_data[i].max; } @@ -204,7 +200,7 @@ void rcontrol_calibrate(uint32_t mode) for (i = 0; i < ARRAY_SIZE(ch_data); i++) { ch_data[i].min = *ptr++; ch_data[i].mid = *ptr++; - ch_data[i].min = *ptr++; + ch_data[i].max = *ptr++; } break; @@ -212,7 +208,7 @@ void rcontrol_calibrate(uint32_t mode) for (i = 0; i < ARRAY_SIZE(ch_data); i++) { *ptr++ = ch_data[i].min; *ptr++ = ch_data[i].mid; - *ptr++ = ch_data[i].min; + *ptr++ = ch_data[i].max; } twi_write_eeprom(EE_RC_CAL_DATA, buf, EE_RC_CAL_DATA_SIZE); break; diff --git a/src/at91_twi.c b/src/at91_twi.c index 7358848..3dc15e3 100644 --- a/src/at91_twi.c +++ b/src/at91_twi.c @@ -1,4 +1,6 @@ /*************************************************************************** + * sam7fc - TWI/I2C Handling * + * * * Copyright (C) 02/2008 by Olaf Rempel * * razzor@kopf-tisch.de * * * diff --git a/src/at91_udp.c b/src/at91_udp.c index f0d0699..ec6cf0c 100644 --- a/src/at91_udp.c +++ b/src/at91_udp.c @@ -1,4 +1,6 @@ /*************************************************************************** + * sam7fc - USB Device Port with logical Serial Port * + * * * Copyright (C) 01/2008 by Olaf Rempel * * razzor@kopf-tisch.de * * * @@ -21,6 +23,7 @@ #include "at91_pio.h" #include "board.h" #include "fifo.h" +#include "telemetrie.h" #include "usb_ch9.h" #include "usb_cdc.h" @@ -66,6 +69,8 @@ static uint16_t current_address; static uint16_t current_config; static uint16_t current_interface; +static struct comm_device usb_comm; + static const struct usb_device_descriptor dev_descriptor = { .bLength = sizeof(struct usb_device_descriptor), .bDescriptorType = USB_DT_DEVICE, @@ -317,6 +322,12 @@ static void udp_txcb_setconfig(void) udp_configure_ep(&cfg_descriptor.datain_ep); udp_configure_ep(&cfg_descriptor.dataout_ep); + ep_ctx[1].fifo = usb_comm.rxfifo; + ep_ctx[1].flags |= CTX_FIFO; + + ep_ctx[2].fifo = usb_comm.txfifo; + ep_ctx[2].flags |= CTX_FIFO; + /* set UDP to "configured" */ *AT91C_UDP_GLBSTATE = AT91C_UDP_CONFG; udp_print_config(); @@ -473,9 +484,13 @@ static void udp_handle_ep(uint32_t ep) if (ctx->flags & CTX_FIFO) { /* get data from fifo */ - if (fifo_txudp(ctx->fifo, ep, ctx->maxpktsize)) + if (fifo_txudp(ctx->fifo, ep, ctx->maxpktsize)) { AT91C_UDP_CSR[ep] |= AT91C_UDP_TXPKTRDY; + } else { + ctx->flags &= ~CTX_IN; + } + } else if ((ctx->flags & (CTX_TRANSFER | CTX_IN)) == (CTX_TRANSFER | CTX_IN)) { /* transfer not complete */ struct ep_transfer *transfer = ctx->transfer; @@ -599,6 +614,21 @@ static void udp_isr(void) AT91C_UDP_ENDBUSRES | AT91C_UDP_WAKEUP); } +static void trigger_fifo_tx(void) +{ + struct ep_ctx *ctx = &ep_ctx[2]; + + /* currently transmitting, no need to trigger */ + // TODO: racy? + if (ctx->flags & CTX_IN) + return; + + if (fifo_txudp(ctx->fifo, 2, ctx->maxpktsize)) { + ctx->flags |= CTX_IN; + AT91C_UDP_CSR[2] |= AT91C_UDP_TXPKTRDY; + } +} + void at91_udp_init(void) { /* configure & disable Pullup, disable Pullup von VBUS */ @@ -631,6 +661,12 @@ void at91_udp_init(void) aic->AIC_SVR[AT91C_ID_UDP] = (uint32_t)udp_isr; aic->AIC_IECR = (1 << AT91C_ID_UDP); + usb_comm.rxfifo = fifo_alloc(1024); + usb_comm.txfifo = fifo_alloc(1024); + usb_comm.trigger_tx = trigger_fifo_tx; + + tdc_register_device(0, &usb_comm); + pio_trigger_isr(UDP_VBUS_MON); } diff --git a/src/fifo.c b/src/fifo.c index 7a3611b..8fb3c3d 100644 --- a/src/fifo.c +++ b/src/fifo.c @@ -1,4 +1,6 @@ /*************************************************************************** + * sam7fc - FIFOs for use with PDC / USB Hardware * + * * * Copyright (C) 01/2008 by Olaf Rempel * * razzor@kopf-tisch.de * * * @@ -29,7 +31,7 @@ * all other operations don't need locks: * - only fifo_put/fifo_rxpdc are allowed to increment fifo->in * - only fifo_get/fifo_txpdc are allowed to increment fifo->out - * a integer overflow (4gb) of fifo->in / fifo->out could cause trouble + * FIXME: a integer overflow (4gb) of fifo->in / fifo->out could cause trouble */ static uint32_t fifo_used(struct fifo *fifo) { diff --git a/src/fixed.c b/src/fixed.c deleted file mode 100644 index 78fa449..0000000 --- a/src/fixed.c +++ /dev/null @@ -1,389 +0,0 @@ -#include - -#include "fixed.h" - -#if 0 -fixed itofix(int x) -{ - return x << 16; -} - -int fixtoi(fixed x) -{ - return (x >> 16) + ((x & 0x8000) >> 15); -} - -/* -fixed ftofix(double x) -{ - if (x > 32767.0) { -// errno = ERANGE; - return 0x7FFFFFFF; - } - - if (x < -32768.0) { -// errno = ERANGE; - return -0x80000000; - } - - return (fixed)(x * 65536.0 + (x < 0 ? -0.5 : 0.5)); -} - -double fixtof(fixed x) -{ - return (double)x / 65536.0; -} -*/ - -fixed fadd(fixed x, fixed y) -{ - return x + y; -} - -fixed fsub(fixed x, fixed y) -{ - return x - y; -} - -fixed fmul(fixed x, fixed y) -{ - int64_t tmp = (int64_t)x * (int64_t)y; - return (fixed)(tmp >> 16); -} - -fixed fdiv(fixed x, fixed y) -{ - int64_t tmp = ((int64_t)x) << 32; - return (fixed)((tmp / y) >> 16); -} - -/* Ratios for converting between radians and fixed point angles. */ -const fixed fixtorad_r = (fixed)1608; /* 2pi/256 */ -const fixed radtofix_r = (fixed)2670177; /* 256/2pi */ - -/* precalculated fixed point (16.16) cosines for a full circle (0-255) */ -static const fixed _cos_tbl[512] = { - 65536L, 65531L, 65516L, 65492L, 65457L, 65413L, 65358L, 65294L, - 65220L, 65137L, 65043L, 64940L, 64827L, 64704L, 64571L, 64429L, - 64277L, 64115L, 63944L, 63763L, 63572L, 63372L, 63162L, 62943L, - 62714L, 62476L, 62228L, 61971L, 61705L, 61429L, 61145L, 60851L, - 60547L, 60235L, 59914L, 59583L, 59244L, 58896L, 58538L, 58172L, - 57798L, 57414L, 57022L, 56621L, 56212L, 55794L, 55368L, 54934L, - 54491L, 54040L, 53581L, 53114L, 52639L, 52156L, 51665L, 51166L, - 50660L, 50146L, 49624L, 49095L, 48559L, 48015L, 47464L, 46906L, - 46341L, 45769L, 45190L, 44604L, 44011L, 43412L, 42806L, 42194L, - 41576L, 40951L, 40320L, 39683L, 39040L, 38391L, 37736L, 37076L, - 36410L, 35738L, 35062L, 34380L, 33692L, 33000L, 32303L, 31600L, - 30893L, 30182L, 29466L, 28745L, 28020L, 27291L, 26558L, 25821L, - 25080L, 24335L, 23586L, 22834L, 22078L, 21320L, 20557L, 19792L, - 19024L, 18253L, 17479L, 16703L, 15924L, 15143L, 14359L, 13573L, - 12785L, 11996L, 11204L, 10411L, 9616L, 8820L, 8022L, 7224L, - 6424L, 5623L, 4821L, 4019L, 3216L, 2412L, 1608L, 804L, - 0L, -803L, -1607L, -2411L, -3215L, -4018L, -4820L, -5622L, - -6423L, -7223L, -8021L, -8819L, -9615L, -10410L, -11203L, -11995L, - -12784L, -13572L, -14358L, -15142L, -15923L, -16702L, -17478L, -18252L, - -19023L, -19791L, -20556L, -21319L, -22077L, -22833L, -23585L, -24334L, - -25079L, -25820L, -26557L, -27290L, -28019L, -28744L, -29465L, -30181L, - -30892L, -31599L, -32302L, -32999L, -33691L, -34379L, -35061L, -35737L, - -36409L, -37075L, -37735L, -38390L, -39039L, -39682L, -40319L, -40950L, - -41575L, -42193L, -42805L, -43411L, -44010L, -44603L, -45189L, -45768L, - -46340L, -46905L, -47463L, -48014L, -48558L, -49094L, -49623L, -50145L, - -50659L, -51165L, -51664L, -52155L, -52638L, -53113L, -53580L, -54039L, - -54490L, -54933L, -55367L, -55793L, -56211L, -56620L, -57021L, -57413L, - -57797L, -58171L, -58537L, -58895L, -59243L, -59582L, -59913L, -60234L, - -60546L, -60850L, -61144L, -61428L, -61704L, -61970L, -62227L, -62475L, - -62713L, -62942L, -63161L, -63371L, -63571L, -63762L, -63943L, -64114L, - -64276L, -64428L, -64570L, -64703L, -64826L, -64939L, -65042L, -65136L, - -65219L, -65293L, -65357L, -65412L, -65456L, -65491L, -65515L, -65530L, - -65536L, -65530L, -65515L, -65491L, -65456L, -65412L, -65357L, -65293L, - -65219L, -65136L, -65042L, -64939L, -64826L, -64703L, -64570L, -64428L, - -64276L, -64114L, -63943L, -63762L, -63571L, -63371L, -63161L, -62942L, - -62713L, -62475L, -62227L, -61970L, -61704L, -61428L, -61144L, -60850L, - -60546L, -60234L, -59913L, -59582L, -59243L, -58895L, -58537L, -58171L, - -57797L, -57413L, -57021L, -56620L, -56211L, -55793L, -55367L, -54933L, - -54490L, -54039L, -53580L, -53113L, -52638L, -52155L, -51664L, -51165L, - -50659L, -50145L, -49623L, -49094L, -48558L, -48014L, -47463L, -46905L, - -46340L, -45768L, -45189L, -44603L, -44010L, -43411L, -42805L, -42193L, - -41575L, -40950L, -40319L, -39682L, -39039L, -38390L, -37735L, -37075L, - -36409L, -35737L, -35061L, -34379L, -33691L, -32999L, -32302L, -31599L, - -30892L, -30181L, -29465L, -28744L, -28019L, -27290L, -26557L, -25820L, - -25079L, -24334L, -23585L, -22833L, -22077L, -21319L, -20556L, -19791L, - -19023L, -18252L, -17478L, -16702L, -15923L, -15142L, -14358L, -13572L, - -12784L, -11995L, -11203L, -10410L, -9615L, -8819L, -8021L, -7223L, - -6423L, -5622L, -4820L, -4018L, -3215L, -2411L, -1607L, -803L, - 0L, 804L, 1608L, 2412L, 3216L, 4019L, 4821L, 5623L, - 6424L, 7224L, 8022L, 8820L, 9616L, 10411L, 11204L, 11996L, - 12785L, 13573L, 14359L, 15143L, 15924L, 16703L, 17479L, 18253L, - 19024L, 19792L, 20557L, 21320L, 22078L, 22834L, 23586L, 24335L, - 25080L, 25821L, 26558L, 27291L, 28020L, 28745L, 29466L, 30182L, - 30893L, 31600L, 32303L, 33000L, 33692L, 34380L, 35062L, 35738L, - 36410L, 37076L, 37736L, 38391L, 39040L, 39683L, 40320L, 40951L, - 41576L, 42194L, 42806L, 43412L, 44011L, 44604L, 45190L, 45769L, - 46341L, 46906L, 47464L, 48015L, 48559L, 49095L, 49624L, 50146L, - 50660L, 51166L, 51665L, 52156L, 52639L, 53114L, 53581L, 54040L, - 54491L, 54934L, 55368L, 55794L, 56212L, 56621L, 57022L, 57414L, - 57798L, 58172L, 58538L, 58896L, 59244L, 59583L, 59914L, 60235L, - 60547L, 60851L, 61145L, 61429L, 61705L, 61971L, 62228L, 62476L, - 62714L, 62943L, 63162L, 63372L, 63572L, 63763L, 63944L, 64115L, - 64277L, 64429L, 64571L, 64704L, 64827L, 64940L, 65043L, 65137L, - 65220L, 65294L, 65358L, 65413L, 65457L, 65492L, 65516L, 65531L -}; - -/* precalculated fixed point (16.16) tangents for a half circle (0-127) */ -static const fixed _tan_tbl[256] = { - 0L, 804L, 1609L, 2414L, 3220L, 4026L, 4834L, 5644L, - 6455L, 7268L, 8083L, 8901L, 9721L, 10545L, 11372L, 12202L, - 13036L, 13874L, 14717L, 15564L, 16416L, 17273L, 18136L, 19005L, - 19880L, 20762L, 21650L, 22546L, 23449L, 24360L, 25280L, 26208L, - 27146L, 28093L, 29050L, 30018L, 30996L, 31986L, 32988L, 34002L, - 35030L, 36071L, 37126L, 38196L, 39281L, 40382L, 41500L, 42636L, - 43790L, 44963L, 46156L, 47369L, 48605L, 49863L, 51145L, 52451L, - 53784L, 55144L, 56532L, 57950L, 59398L, 60880L, 62395L, 63947L, - 65536L, 67165L, 68835L, 70548L, 72308L, 74116L, 75974L, 77887L, - 79856L, 81885L, 83977L, 86135L, 88365L, 90670L, 93054L, 95523L, - 98082L, 100736L, 103493L, 106358L, 109340L, 112447L, 115687L, 119071L, - 122609L, 126314L, 130198L, 134276L, 138564L, 143081L, 147847L, 152884L, - 158218L, 163878L, 169896L, 176309L, 183161L, 190499L, 198380L, 206870L, - 216043L, 225990L, 236817L, 248648L, 261634L, 275959L, 291845L, 309568L, - 329472L, 351993L, 377693L, 407305L, 441808L, 482534L, 531352L, 590958L, - 665398L, 761030L, 888450L, 1066730L, 1334016L, 1779314L, 2669641L, 5340086L, - -2147483647L, -5340085L, -2669640L, -1779313L, -1334015L, -1066729L, -888449L, -761029L, - -665397L, -590957L, -531351L, -482533L, -441807L, -407304L, -377692L, -351992L, - -329471L, -309567L, -291844L, -275958L, -261633L, -248647L, -236816L, -225989L, - -216042L, -206869L, -198379L, -190498L, -183160L, -176308L, -169895L, -163877L, - -158217L, -152883L, -147846L, -143080L, -138563L, -134275L, -130197L, -126313L, - -122608L, -119070L, -115686L, -112446L, -109339L, -106357L, -103492L, -100735L, - -98081L, -95522L, -93053L, -90669L, -88364L, -86134L, -83976L, -81884L, - -79855L, -77886L, -75973L, -74115L, -72307L, -70547L, -68834L, -67164L, - -65535L, -63946L, -62394L, -60879L, -59397L, -57949L, -56531L, -55143L, - -53783L, -52450L, -51144L, -49862L, -48604L, -47368L, -46155L, -44962L, - -43789L, -42635L, -41499L, -40381L, -39280L, -38195L, -37125L, -36070L, - -35029L, -34001L, -32987L, -31985L, -30995L, -30017L, -29049L, -28092L, - -27145L, -26207L, -25279L, -24359L, -23448L, -22545L, -21649L, -20761L, - -19879L, -19004L, -18135L, -17272L, -16415L, -15563L, -14716L, -13873L, - -13035L, -12201L, -11371L, -10544L, -9720L, -8900L, -8082L, -7267L, - -6454L, -5643L, -4833L, -4025L, -3219L, -2413L, -1608L, -803L -}; - -/* precalculated fixed point (16.16) inverse cosines (-1 to 1) */ -static const fixed _acos_tbl[513] = { - 0x800000L, 0x7C65C7L, 0x7AE75AL, 0x79C19EL, 0x78C9BEL, 0x77EF25L, 0x772953L, 0x76733AL, - 0x75C991L, 0x752A10L, 0x74930CL, 0x740345L, 0x7379C1L, 0x72F5BAL, 0x72768FL, 0x71FBBCL, - 0x7184D3L, 0x711174L, 0x70A152L, 0x703426L, 0x6FC9B5L, 0x6F61C9L, 0x6EFC36L, 0x6E98D1L, - 0x6E3777L, 0x6DD805L, 0x6D7A5EL, 0x6D1E68L, 0x6CC40BL, 0x6C6B2FL, 0x6C13C1L, 0x6BBDAFL, - 0x6B68E6L, 0x6B1558L, 0x6AC2F5L, 0x6A71B1L, 0x6A217EL, 0x69D251L, 0x698420L, 0x6936DFL, - 0x68EA85L, 0x689F0AL, 0x685465L, 0x680A8DL, 0x67C17DL, 0x67792CL, 0x673194L, 0x66EAAFL, - 0x66A476L, 0x665EE5L, 0x6619F5L, 0x65D5A2L, 0x6591E7L, 0x654EBFL, 0x650C26L, 0x64CA18L, - 0x648890L, 0x64478CL, 0x640706L, 0x63C6FCL, 0x63876BL, 0x63484FL, 0x6309A5L, 0x62CB6AL, - 0x628D9CL, 0x625037L, 0x621339L, 0x61D69FL, 0x619A68L, 0x615E90L, 0x612316L, 0x60E7F7L, - 0x60AD31L, 0x6072C3L, 0x6038A9L, 0x5FFEE3L, 0x5FC56EL, 0x5F8C49L, 0x5F5372L, 0x5F1AE7L, - 0x5EE2A7L, 0x5EAAB0L, 0x5E7301L, 0x5E3B98L, 0x5E0473L, 0x5DCD92L, 0x5D96F3L, 0x5D6095L, - 0x5D2A76L, 0x5CF496L, 0x5CBEF2L, 0x5C898BL, 0x5C545EL, 0x5C1F6BL, 0x5BEAB0L, 0x5BB62DL, - 0x5B81E1L, 0x5B4DCAL, 0x5B19E7L, 0x5AE638L, 0x5AB2BCL, 0x5A7F72L, 0x5A4C59L, 0x5A1970L, - 0x59E6B6L, 0x59B42AL, 0x5981CCL, 0x594F9BL, 0x591D96L, 0x58EBBDL, 0x58BA0EL, 0x588889L, - 0x58572DL, 0x5825FAL, 0x57F4EEL, 0x57C40AL, 0x57934DL, 0x5762B5L, 0x573243L, 0x5701F5L, - 0x56D1CCL, 0x56A1C6L, 0x5671E4L, 0x564224L, 0x561285L, 0x55E309L, 0x55B3ADL, 0x558471L, - 0x555555L, 0x552659L, 0x54F77BL, 0x54C8BCL, 0x549A1BL, 0x546B98L, 0x543D31L, 0x540EE7L, - 0x53E0B9L, 0x53B2A7L, 0x5384B0L, 0x5356D4L, 0x532912L, 0x52FB6BL, 0x52CDDDL, 0x52A068L, - 0x52730CL, 0x5245C9L, 0x52189EL, 0x51EB8BL, 0x51BE8FL, 0x5191AAL, 0x5164DCL, 0x513825L, - 0x510B83L, 0x50DEF7L, 0x50B280L, 0x50861FL, 0x5059D2L, 0x502D99L, 0x500175L, 0x4FD564L, - 0x4FA967L, 0x4F7D7DL, 0x4F51A6L, 0x4F25E2L, 0x4EFA30L, 0x4ECE90L, 0x4EA301L, 0x4E7784L, - 0x4E4C19L, 0x4E20BEL, 0x4DF574L, 0x4DCA3AL, 0x4D9F10L, 0x4D73F6L, 0x4D48ECL, 0x4D1DF1L, - 0x4CF305L, 0x4CC829L, 0x4C9D5AL, 0x4C729AL, 0x4C47E9L, 0x4C1D45L, 0x4BF2AEL, 0x4BC826L, - 0x4B9DAAL, 0x4B733BL, 0x4B48D9L, 0x4B1E84L, 0x4AF43BL, 0x4AC9FEL, 0x4A9FCDL, 0x4A75A7L, - 0x4A4B8DL, 0x4A217EL, 0x49F77AL, 0x49CD81L, 0x49A393L, 0x4979AFL, 0x494FD5L, 0x492605L, - 0x48FC3FL, 0x48D282L, 0x48A8CFL, 0x487F25L, 0x485584L, 0x482BECL, 0x48025DL, 0x47D8D6L, - 0x47AF57L, 0x4785E0L, 0x475C72L, 0x47330AL, 0x4709ABL, 0x46E052L, 0x46B701L, 0x468DB7L, - 0x466474L, 0x463B37L, 0x461201L, 0x45E8D0L, 0x45BFA6L, 0x459682L, 0x456D64L, 0x45444BL, - 0x451B37L, 0x44F229L, 0x44C920L, 0x44A01CL, 0x44771CL, 0x444E21L, 0x44252AL, 0x43FC38L, - 0x43D349L, 0x43AA5FL, 0x438178L, 0x435894L, 0x432FB4L, 0x4306D8L, 0x42DDFEL, 0x42B527L, - 0x428C53L, 0x426381L, 0x423AB2L, 0x4211E5L, 0x41E91AL, 0x41C051L, 0x41978AL, 0x416EC5L, - 0x414601L, 0x411D3EL, 0x40F47CL, 0x40CBBBL, 0x40A2FBL, 0x407A3CL, 0x40517DL, 0x4028BEL, - 0x400000L, 0x3FD742L, 0x3FAE83L, 0x3F85C4L, 0x3F5D05L, 0x3F3445L, 0x3F0B84L, 0x3EE2C2L, - 0x3EB9FFL, 0x3E913BL, 0x3E6876L, 0x3E3FAFL, 0x3E16E6L, 0x3DEE1BL, 0x3DC54EL, 0x3D9C7FL, - 0x3D73ADL, 0x3D4AD9L, 0x3D2202L, 0x3CF928L, 0x3CD04CL, 0x3CA76CL, 0x3C7E88L, 0x3C55A1L, - 0x3C2CB7L, 0x3C03C8L, 0x3BDAD6L, 0x3BB1DFL, 0x3B88E4L, 0x3B5FE4L, 0x3B36E0L, 0x3B0DD7L, - 0x3AE4C9L, 0x3ABBB5L, 0x3A929CL, 0x3A697EL, 0x3A405AL, 0x3A1730L, 0x39EDFFL, 0x39C4C9L, - 0x399B8CL, 0x397249L, 0x3948FFL, 0x391FAEL, 0x38F655L, 0x38CCF6L, 0x38A38EL, 0x387A20L, - 0x3850A9L, 0x38272AL, 0x37FDA3L, 0x37D414L, 0x37AA7CL, 0x3780DBL, 0x375731L, 0x372D7EL, - 0x3703C1L, 0x36D9FBL, 0x36B02BL, 0x368651L, 0x365C6DL, 0x36327FL, 0x360886L, 0x35DE82L, - 0x35B473L, 0x358A59L, 0x356033L, 0x353602L, 0x350BC5L, 0x34E17CL, 0x34B727L, 0x348CC5L, - 0x346256L, 0x3437DAL, 0x340D52L, 0x33E2BBL, 0x33B817L, 0x338D66L, 0x3362A6L, 0x3337D7L, - 0x330CFBL, 0x32E20FL, 0x32B714L, 0x328C0AL, 0x3260F0L, 0x3235C6L, 0x320A8CL, 0x31DF42L, - 0x31B3E7L, 0x31887CL, 0x315CFFL, 0x313170L, 0x3105D0L, 0x30DA1EL, 0x30AE5AL, 0x308283L, - 0x305699L, 0x302A9CL, 0x2FFE8BL, 0x2FD267L, 0x2FA62EL, 0x2F79E1L, 0x2F4D80L, 0x2F2109L, - 0x2EF47DL, 0x2EC7DBL, 0x2E9B24L, 0x2E6E56L, 0x2E4171L, 0x2E1475L, 0x2DE762L, 0x2DBA37L, - 0x2D8CF4L, 0x2D5F98L, 0x2D3223L, 0x2D0495L, 0x2CD6EEL, 0x2CA92CL, 0x2C7B50L, 0x2C4D59L, - 0x2C1F47L, 0x2BF119L, 0x2BC2CFL, 0x2B9468L, 0x2B65E5L, 0x2B3744L, 0x2B0885L, 0x2AD9A7L, - 0x2AAAABL, 0x2A7B8FL, 0x2A4C53L, 0x2A1CF7L, 0x29ED7BL, 0x29BDDCL, 0x298E1CL, 0x295E3AL, - 0x292E34L, 0x28FE0BL, 0x28CDBDL, 0x289D4BL, 0x286CB3L, 0x283BF6L, 0x280B12L, 0x27DA06L, - 0x27A8D3L, 0x277777L, 0x2745F2L, 0x271443L, 0x26E26AL, 0x26B065L, 0x267E34L, 0x264BD6L, - 0x26194AL, 0x25E690L, 0x25B3A7L, 0x25808EL, 0x254D44L, 0x2519C8L, 0x24E619L, 0x24B236L, - 0x247E1FL, 0x2449D3L, 0x241550L, 0x23E095L, 0x23ABA2L, 0x237675L, 0x23410EL, 0x230B6AL, - 0x22D58AL, 0x229F6BL, 0x22690DL, 0x22326EL, 0x21FB8DL, 0x21C468L, 0x218CFFL, 0x215550L, - 0x211D59L, 0x20E519L, 0x20AC8EL, 0x2073B7L, 0x203A92L, 0x20011DL, 0x1FC757L, 0x1F8D3DL, - 0x1F52CFL, 0x1F1809L, 0x1EDCEAL, 0x1EA170L, 0x1E6598L, 0x1E2961L, 0x1DECC7L, 0x1DAFC9L, - 0x1D7264L, 0x1D3496L, 0x1CF65BL, 0x1CB7B1L, 0x1C7895L, 0x1C3904L, 0x1BF8FAL, 0x1BB874L, - 0x1B7770L, 0x1B35E8L, 0x1AF3DAL, 0x1AB141L, 0x1A6E19L, 0x1A2A5EL, 0x19E60BL, 0x19A11BL, - 0x195B8AL, 0x191551L, 0x18CE6CL, 0x1886D4L, 0x183E83L, 0x17F573L, 0x17AB9BL, 0x1760F6L, - 0x17157BL, 0x16C921L, 0x167BE0L, 0x162DAFL, 0x15DE82L, 0x158E4FL, 0x153D0BL, 0x14EAA8L, - 0x14971AL, 0x144251L, 0x13EC3FL, 0x1394D1L, 0x133BF5L, 0x12E198L, 0x1285A2L, 0x1227FBL, - 0x11C889L, 0x11672FL, 0x1103CAL, 0x109E37L, 0x10364BL, 0xFCBDAL, 0xF5EAEL, 0xEEE8CL, - 0xE7B2DL, 0xE0444L, 0xD8971L, 0xD0A46L, 0xC863FL, 0xBFCBBL, 0xB6CF4L, 0xAD5F0L, - 0xA366FL, 0x98CC6L, 0x8D6ADL, 0x810DBL, 0x73642L, 0x63E62L, 0x518A6L, 0x39A39L, - 0x0L -}; - -fixed fcos(fixed x) -{ - return _cos_tbl[((x + 0x4000) >> 15) & 0x1FF]; -} - -fixed fsin(fixed x) -{ - return _cos_tbl[((x - 0x400000 + 0x4000) >> 15) & 0x1FF]; -} - -fixed ftan(fixed x) -{ - return _tan_tbl[((x + 0x4000) >> 15) & 0xFF]; -} - -fixed facos(fixed x) -{ - /* equivalent to if((x < -65536) || (x > 65536)) */ - if ((fixed)(x - 0x80000000 + 65536) > (fixed)(-0x80000000 + 65536 + 65536)) { -// errno = EDOM; - return 0; - } - - return _acos_tbl[(x + 65536 + 127) >> 8]; -} - -fixed fasin(fixed x) -{ - /* equivalent to if((x < -65536) || (x > 65536)) */ - if ((fixed)(x - 0x80000000 + 65536) > (fixed)(-0x80000000 + 65536 + 65536)) { -// errno = EDOM; - return 0; - } - - return 0x00400000 - _acos_tbl[(x + 65536 + 127) >> 8]; -} - -/* Fixed point inverse tangent. Does a binary search on the tan table. */ -fixed fatan(fixed x) -{ - int a, b, c; /* for binary search */ - fixed d; /* difference value for search */ - - if (x >= 0) { /* search the first part of tan table */ - a = 0; - b = 127; - - } else { /* search the second half instead */ - a = 128; - b = 255; - } - - do { - c = (a + b) >> 1; - d = x - _tan_tbl[c]; - - if (d > 0) { - a = c + 1; - - } else { - if (d < 0) - b = c - 1; - } - - } while ((a <= b) && (d)); - - if (x >= 0) - return ((fixed)c) << 15; - - return (-0x00800000L + (((fixed)c) << 15)); -} - -/* Like the libc atan2, but for fixed point numbers. */ -fixed fatan2(fixed y, fixed x) -{ - fixed r; - - if (x == 0) { - if (y == 0) { -// errno = EDOM; - return 0L; - - } else { - return ((y < 0) ? -0x00400000L : 0x00400000L); - } - } - -// errno = 0; - r = fdiv(y,x); - -// if (errno) { -// errno = 0; -// return ((y < 0) ? -0x00400000L : 0x00400000L); -// } - - r = fatan(r); - - if (x >= 0) - return r; - - if (y >= 0) - return 0x00800000L + r; - - return r - 0x00800000L; -} - -/* this table is used by the fsqrt() function */ -static const int16_t sqrt_table[256] = { - 0x2D4, 0x103F, 0x16CD, 0x1BDB, 0x201F, 0x23E3, 0x274B, 0x2A6D, - 0x2D57, 0x3015, 0x32AC, 0x3524, 0x377F, 0x39C2, 0x3BEE, 0x3E08, - 0x400F, 0x4207, 0x43F0, 0x45CC, 0x479C, 0x4960, 0x4B19, 0x4CC9, - 0x4E6F, 0x500C, 0x51A2, 0x532F, 0x54B6, 0x5635, 0x57AE, 0x5921, - 0x5A8D, 0x5BF4, 0x5D56, 0x5EB3, 0x600A, 0x615D, 0x62AB, 0x63F5, - 0x653B, 0x667D, 0x67BA, 0x68F5, 0x6A2B, 0x6B5E, 0x6C8D, 0x6DBA, - 0x6EE3, 0x7009, 0x712C, 0x724C, 0x7369, 0x7484, 0x759C, 0x76B1, - 0x77C4, 0x78D4, 0x79E2, 0x7AEE, 0x7BF7, 0x7CFE, 0x7E04, 0x7F07, - 0x8007, 0x8106, 0x8203, 0x82FF, 0x83F8, 0x84EF, 0x85E5, 0x86D9, - 0x87CB, 0x88BB, 0x89AA, 0x8A97, 0x8B83, 0x8C6D, 0x8D56, 0x8E3D, - 0x8F22, 0x9007, 0x90E9, 0x91CB, 0x92AB, 0x938A, 0x9467, 0x9543, - 0x961E, 0x96F8, 0x97D0, 0x98A8, 0x997E, 0x9A53, 0x9B26, 0x9BF9, - 0x9CCA, 0x9D9B, 0x9E6A, 0x9F39, 0xA006, 0xA0D2, 0xA19D, 0xA268, - 0xA331, 0xA3F9, 0xA4C1, 0xA587, 0xA64D, 0xA711, 0xA7D5, 0xA898, - 0xA95A, 0xAA1B, 0xAADB, 0xAB9A, 0xAC59, 0xAD16, 0xADD3, 0xAE8F, - 0xAF4B, 0xB005, 0xB0BF, 0xB178, 0xB230, 0xB2E8, 0xB39F, 0xB455, - 0xB50A, 0xB5BF, 0xB673, 0xB726, 0xB7D9, 0xB88A, 0xB93C, 0xB9EC, - 0xBA9C, 0xBB4B, 0xBBFA, 0xBCA8, 0xBD55, 0xBE02, 0xBEAE, 0xBF5A, - 0xC005, 0xC0AF, 0xC159, 0xC202, 0xC2AB, 0xC353, 0xC3FA, 0xC4A1, - 0xC548, 0xC5ED, 0xC693, 0xC737, 0xC7DC, 0xC87F, 0xC923, 0xC9C5, - 0xCA67, 0xCB09, 0xCBAA, 0xCC4B, 0xCCEB, 0xCD8B, 0xCE2A, 0xCEC8, - 0xCF67, 0xD004, 0xD0A2, 0xD13F, 0xD1DB, 0xD277, 0xD312, 0xD3AD, - 0xD448, 0xD4E2, 0xD57C, 0xD615, 0xD6AE, 0xD746, 0xD7DE, 0xD876, - 0xD90D, 0xD9A4, 0xDA3A, 0xDAD0, 0xDB66, 0xDBFB, 0xDC90, 0xDD24, - 0xDDB8, 0xDE4C, 0xDEDF, 0xDF72, 0xE004, 0xE096, 0xE128, 0xE1B9, - 0xE24A, 0xE2DB, 0xE36B, 0xE3FB, 0xE48B, 0xE51A, 0xE5A9, 0xE637, - 0xE6C5, 0xE753, 0xE7E1, 0xE86E, 0xE8FB, 0xE987, 0xEA13, 0xEA9F, - 0xEB2B, 0xEBB6, 0xEC41, 0xECCB, 0xED55, 0xEDDF, 0xEE69, 0xEEF2, - 0xEF7B, 0xF004, 0xF08C, 0xF114, 0xF19C, 0xF223, 0xF2AB, 0xF332, - 0xF3B8, 0xF43E, 0xF4C4, 0xF54A, 0xF5D0, 0xF655, 0xF6DA, 0xF75E, - 0xF7E3, 0xF867, 0xF8EA, 0xF96E, 0xF9F1, 0xFA74, 0xFAF7, 0xFB79, - 0xFBFB, 0xFC7D, 0xFCFF, 0xFD80, 0xFE02, 0xFE82, 0xFF03, 0xFF83 -}; - -fixed fsqrt(fixed n) -{ - uint32_t i; - fixed s = (n + 65536) >> 1; - - for (i = 0; i < 8; i++) - s = (s + fdiv(n, s)) >> 1; - - return s; -} -#endif diff --git a/src/flightctrl.c b/src/flightctrl.c new file mode 100644 index 0000000..8ea24e6 --- /dev/null +++ b/src/flightctrl.c @@ -0,0 +1,264 @@ +/*************************************************************************** + * sam7fc - Flight Control * + * * + * Copyright (C) 03/2008 by Olaf Rempel * + * razzor@kopf-tisch.de * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; version 2 of the License * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ +#include +#include /* abs() */ + +#include "AT91SAM7S256.h" +#include "board.h" + +#include +#include +#include +#include +#include +#include + +static uint32_t global_state; +#define MOTOR_RUNNING 0x0001 +#define MOTOR_MIXER_ENABLE 0x0002 +#define STICK_CALIBRATION 0x0004 +#define STICK_CALIBRATION_COMPLETE 0x0008 + +static struct pid_data pid_nick = { + .kp = 1, + .ki = 0, + .err_sum_max = +1024, + .err_sum_min = -1024, + .out_max = +256, + .out_min = -256, +}; +TDC_PTR(pid_nick_ki, &pid_nick.ki, "flctrl: pid nick ki", int32_t, TDC_SIGNED); +TDC_PTR(pid_nick_errsum, &pid_nick.err_sum, "flctrl: pid nick errsum", int32_t, TDC_SIGNED | TDC_READONLY); + +static struct pid_data pid_roll = { + .kp = 1, + .ki = 0, + .err_sum_max = +1024, + .err_sum_min = -1024, + .out_max = +256, + .out_min = -256, +}; +TDC_PTR(pid_roll_ki, &pid_roll.ki, "flctrl: pid roll ki", int32_t, TDC_SIGNED); +TDC_PTR(pid_roll_errsum, &pid_roll.err_sum, "flctrl: pid roll errsum", int32_t, TDC_SIGNED | TDC_READONLY); + +static struct pid_data pid_gier = { + .kp = 1, + .ki = 0, + .err_sum_max = +1024, + .err_sum_min = -1024, + .out_max = +256, + .out_min = -256, +}; +TDC_PTR(pid_gier_ki, &pid_gier.ki, "flctrl: pid gier ki", int32_t, TDC_SIGNED); +TDC_PTR(pid_gier_errsum, &pid_gier.err_sum, "flctrl: pid gier errsum", int32_t, TDC_SIGNED | TDC_READONLY); + +static void motor_mixer(int32_t gas, int32_t nick, int32_t roll, int32_t gier) +{ + static uint8_t pwm[4]; + + TDC_VALUE(pwm0, pwm[0], "Motor PWM 1", uint8_t, TDC_UNSIGNED | TDC_READONLY); + TDC_VALUE(pwm1, pwm[1], "Motor PWM 2", uint8_t, TDC_UNSIGNED | TDC_READONLY); + TDC_VALUE(pwm2, pwm[2], "Motor PWM 3", uint8_t, TDC_UNSIGNED | TDC_READONLY); + TDC_VALUE(pwm3, pwm[3], "Motor PWM 4", uint8_t, TDC_UNSIGNED | TDC_READONLY); + + pwm[0] = LIMIT((gas - nick + gier), 0x0F, 0xFF); + pwm[1] = LIMIT((gas + nick + gier), 0x0F, 0xFF); + pwm[2] = LIMIT((gas + roll - gier), 0x0F, 0xFF); + pwm[3] = LIMIT((gas - roll - gier), 0x0F, 0xFF); + + if (!(global_state & MOTOR_RUNNING)) { + pwm[0] = 0x00; + pwm[1] = 0x00; + pwm[2] = 0x00; + pwm[3] = 0x00; + + } else if (!(global_state & MOTOR_MIXER_ENABLE)) { + pwm[0] = 0x0F; + pwm[1] = 0x0F; + pwm[2] = 0x0F; + pwm[3] = 0x0F; + } + + twi_setpwm(pwm); +} + +static uint32_t base_ctrl_cb(struct pitc_timer *timer) +{ + if (global_state & STICK_CALIBRATION) + global_state |= STICK_CALIBRATION_COMPLETE; + + return PITC_REMOVE_TIMER; +} + +static struct pitc_timer base_ctrl_timer = { + .func = base_ctrl_cb, +}; + +void base_ctrl(void) +{ + static int32_t nick_integral, roll_integral, gier_integral; + + /* get stick switches & values */ + struct rc_values rc_sw; + uint32_t count = rcontrol_getswitches(&rc_sw); + + if (count < 4) { + global_state &= ~MOTOR_RUNNING; + + } else if (global_state & STICK_CALIBRATION_COMPLETE) { +// rcontrol_calibrate(RC_CAL_END); +// rcontrol_calibrate(RC_CAL_SAVE); + rcontrol_print_cal(); + global_state &= ~(STICK_CALIBRATION | STICK_CALIBRATION_COMPLETE); + + } else if (global_state & STICK_CALIBRATION) { + /* do nothing during calibration */ + + } else if (count >= 4) { + /* Motor stop */ + if (rc_sw.chan[2] < 0 && rc_sw.chan[3] > 0) + global_state &= ~MOTOR_RUNNING; + + /* Motor start */ + if (rc_sw.chan[2] < 0 && rc_sw.chan[3] < 0) + global_state |= MOTOR_RUNNING; + + /* Gyro calibration */ + if (rc_sw.chan[2] > 0 && rc_sw.chan[3] > 0) + adc_calibrate(ADC_CAL_GYRO); + + /* ACC + Stick calibration */ + if (rc_sw.chan[2] > 0 && rc_sw.chan[3] < 0) { + adc_calibrate(ADC_CAL_ACC); +// rcontrol_calibrate(RC_CAL_START); + global_state |= STICK_CALIBRATION; + base_ctrl_timer.interval = 1000; + pitc_schedule_timer(&base_ctrl_timer); + } + } + + struct rc_values rc; + rcontrol_getvalues(&rc); + + if (rc.chan[2] < 15) { + global_state &= ~MOTOR_MIXER_ENABLE; + + /* reset integrals */ + nick_integral = roll_integral = gier_integral = 0; + pid_nick.err_sum = pid_roll.err_sum = pid_gier.err_sum = 0; + + } else { + global_state |= MOTOR_MIXER_ENABLE; + } + + /* get adc results */ + static int16_t adc_result[7]; + + TDC_PTR(adc_result0, &adc_result[ADC_GYRO_NICK], "ADC_GYRO_NICK", int16_t, TDC_SIGNED | TDC_READONLY); + TDC_PTR(adc_result1, &adc_result[ADC_GYRO_ROLL], "ADC_GYRO_ROLL", int16_t, TDC_SIGNED | TDC_READONLY); + TDC_PTR(adc_result2, &adc_result[ADC_GYRO_GIER], "ADC_GYRO_GIER", int16_t, TDC_SIGNED | TDC_READONLY); + TDC_PTR(adc_result3, &adc_result[ADC_ACC_NICK], "ADC_ACC_NICK", int16_t, TDC_SIGNED | TDC_READONLY); + TDC_PTR(adc_result4, &adc_result[ADC_ACC_ROLL], "ADC_ACC_ROLL", int16_t, TDC_SIGNED | TDC_READONLY); + TDC_PTR(adc_result5, &adc_result[ADC_ACC_GIER], "ADC_ACC_GIER", int16_t, TDC_SIGNED | TDC_READONLY); + TDC_PTR(adc_result6, &adc_result[ADC_VOLTAGE], "ADC_VOLTAGE", int16_t, TDC_SIGNED | TDC_READONLY); + + adc_get_results(adc_result); + + if (count != 0 && adc_result[ADC_VOLTAGE] > 960) + *AT91C_PIOA_CODR = LED_GREEN; + else + *AT91C_PIOA_SODR = LED_GREEN; + + nick_integral += adc_result[ADC_GYRO_NICK]; + TDC_INT32(nick_integral, "flctrl: Base Integral Nick"); + + roll_integral += adc_result[ADC_GYRO_ROLL]; + TDC_INT32(roll_integral, "flctrl: Base Integral Roll"); + + gier_integral += adc_result[ADC_GYRO_GIER]; + TDC_INT32(gier_integral, "flctrl: Base Integral Gier"); + + static int32_t integral_gyro_mix = 1; + TDC_INT32(integral_gyro_mix, "flctrl: Mix Integral/ACC (0-1024)"); + + static int32_t acc_faktor = 300; + TDC_INT32(acc_faktor, "flctrl: Mix Faktor"); + + /* + * 90° -> ADC_ACC_* ~210 + * 90° -> Integral ~60000 + */ + int32_t mix_integral = 1024 - integral_gyro_mix; + int32_t mix_acc = integral_gyro_mix * acc_faktor; + nick_integral = ((nick_integral * mix_integral) + (adc_result[ADC_ACC_NICK] * mix_acc)) / 1024; + roll_integral = ((roll_integral * mix_integral) + (adc_result[ADC_ACC_ROLL] * mix_acc)) / 1024; + + /* + * hoher gyro_faktor -> bessere stabilität, aber langsames zurückkehren nach vollausschlag + * niedriger integral_faktor -> geringere abweichungbei einseitigem anheben, aber schwingungsanfälliger + */ + static int32_t integral_faktor = 256; + static int32_t gyro_faktor = 4; + TDC_INT32(integral_faktor, "flctrl: Integral Divisior"); + TDC_INT32(gyro_faktor, "flctrl: Integral Gyro Faktor /16"); + + static int32_t nick; + static int32_t roll; + static int32_t gier; + nick = (nick_integral / integral_faktor) + (adc_result[ADC_GYRO_NICK] * gyro_faktor) / 16; + roll = (roll_integral / integral_faktor) + (adc_result[ADC_GYRO_ROLL] * gyro_faktor) / 16; + gier = (gier_integral / integral_faktor) + (adc_result[ADC_GYRO_GIER] * gyro_faktor) / 16; + TDC_INT32_RO(nick, "flctrl: Integral + Gyro Nick"); + TDC_INT32_RO(roll, "flctrl: Integral + Gyro Roll"); + TDC_INT32_RO(gier, "flctrl: Integral + Gyro Gier"); + + static int32_t stick_kp = 8; + TDC_INT32(stick_kp, "flctrl: Stick-P /16"); + + static int32_t stick_gas, stick_nick, stick_roll, stick_gier; + stick_gas = rc.chan[2]; + stick_nick = (rc.chan[0] * stick_kp) / 16; + stick_roll = (rc.chan[1] * stick_kp) / 16; + stick_gier = rc.chan[3] / 4; + + TDC_INT32_RO(stick_gas, "Stick Gas"); + TDC_INT32_RO(stick_nick, "Stick Nick"); + TDC_INT32_RO(stick_roll, "Stick Roll"); + TDC_INT32_RO(stick_gier, "Stick Gier"); + + static int32_t gier_kp = 32; + TDC_INT32(gier_kp, "flctrl: Gier-P (/256)"); + gier_integral -= gier_kp * stick_gier * abs(stick_gier) / 256; + + static int32_t mixer_gas, mixer_nick, mixer_roll, mixer_gier; + mixer_gas = stick_gas; + mixer_nick = pid_ctrl(&pid_nick, stick_nick - nick); + mixer_roll = pid_ctrl(&pid_roll, stick_roll - roll); + mixer_gier = pid_ctrl(&pid_gier, stick_gier - gier); + + /* mix gas/nick/roll/gier -> 4 motors */ + motor_mixer(mixer_gas, mixer_nick, mixer_roll, mixer_gier); + + TDC_INT32_RO(mixer_gas, "Mixer Gas"); + TDC_INT32_RO(mixer_nick, "Mixer Nick"); + TDC_INT32_RO(mixer_roll, "Mixer Roll"); + TDC_INT32_RO(mixer_gier, "Mixer Gier"); +} diff --git a/src/memalloc.c b/src/memalloc.c index 4d6afde..af60ff4 100644 --- a/src/memalloc.c +++ b/src/memalloc.c @@ -1,4 +1,6 @@ /*************************************************************************** + * sam7fc - dynamic Memory Allocation * + * * * Copyright (C) 02/2008 by Olaf Rempel * * razzor@kopf-tisch.de * * * diff --git a/src/pidctrl.c b/src/pidctrl.c index 0e40888..0419a65 100644 --- a/src/pidctrl.c +++ b/src/pidctrl.c @@ -19,36 +19,26 @@ #include #include "pidctrl.h" +#include "board.h" int32_t pid_ctrl(struct pid_data *pid, int32_t error) { int32_t out = 0; - if (pid->kp) + if (pid->kp != 0) out += pid->kp * error; - if (pid->ki) { + if (pid->ki != 0) { pid->err_sum += error; + pid->err_sum = LIMIT(pid->err_sum, pid->err_sum_min, pid->err_sum_max); - if (pid->err_sum > pid->err_sum_max) - pid->err_sum = pid->err_sum_max; - - if (pid->err_sum < pid->err_sum_min) - pid->err_sum = pid->err_sum_min; - - out += pid->ki * pid->ta * pid->err_sum; + out += (pid->err_sum / pid->ki); } - if (pid->kd) { - out += pid->kd * (error - pid->err_old) / pid->ta; + if (pid->kd != 0) { + out += pid->kd * (error - pid->err_old); pid->err_old = error; } - if (out > pid->out_max) - out = pid->out_max; - - if (out < pid->out_min) - out = pid->out_min; - - return out; + return LIMIT(out, pid->out_min, pid->out_max); } diff --git a/src/telemetrie.c b/src/telemetrie.c index 4df776c..5876d3c 100644 --- a/src/telemetrie.c +++ b/src/telemetrie.c @@ -1,4 +1,6 @@ /*************************************************************************** + * sam7fc - Telemetrie Handling * + * * * Copyright (C) 02/2008 by Olaf Rempel * * razzor@kopf-tisch.de * * * @@ -22,9 +24,12 @@ #include "board.h" // ARRAY_SIZE() #include "at91_pitc.h" #include "telemetrie.h" +#include "tdc_proto.h" #include "memalloc.h" #include "fifo.h" +#define TDC_OWN_ADDRESS TDC_ADDR1 + /* extern symbols, defined in ldscript */ extern struct tdc_value _tdc_value_table; extern struct tdc_value _tdc_value_table_end; @@ -46,7 +51,11 @@ int32_t tdc_transmit(uint32_t addr, struct tdc_pkt_header *head) if (addr >= ARRAY_SIZE(routing_table) || !routing_table[addr]) return -1; - return fifo_put(routing_table[addr]->txfifo, (char *)head, head->size); + int32_t retval = fifo_put(routing_table[addr]->txfifo, (char *)head, head->size); + if (routing_table[addr]->trigger_tx) + routing_table[addr]->trigger_tx(); + + return retval; } static int32_t tdc_get_vars(void) @@ -62,8 +71,9 @@ static int32_t tdc_get_vars(void) struct tdc_getvars_reply *reply = alloc(sizeof(struct tdc_getvars_reply) + datalen); reply->cmd = TDC_REPLY | TDC_ADDR1 | TDC_GETVARS; reply->size = sizeof(struct tdc_getvars_reply) + datalen; - reply->id = id; + reply->id = (id & 0xFF); reply->flags = value->flags; + reply->name_len = datalen; memcpy(reply->name, value->name, datalen); uint32_t ret = tdc_transmit(TDC_ADDR0, ((struct tdc_pkt_header *)reply)); @@ -92,7 +102,7 @@ static int32_t tdc_get_value(uint32_t id) struct tdc_getvalue_reply *reply = alloc(sizeof(struct tdc_getvalue_reply) + datalen); reply->cmd = TDC_REPLY | TDC_ADDR1 | TDC_GETVALUE; - reply->size = sizeof(struct tdc_getvars_reply) + datalen; + reply->size = sizeof(struct tdc_getvalue_reply) + datalen; reply->id = id; memcpy(reply->data, value->data, datalen); @@ -102,36 +112,37 @@ static int32_t tdc_get_value(uint32_t id) return ret; } -static int32_t tdc_set_value(uint32_t id, uint8_t *data) +static int32_t tdc_set_value(uint32_t id, uint8_t *data, uint32_t data_size) { struct tdc_value *value = &_tdc_value_table + id; if (value >= &_tdc_value_table_end) return -1; - uint32_t datalen = value->flags & TDC_SIZEMASK; + uint32_t len = value->flags & TDC_SIZEMASK; + + if (len != data_size) + return -1; // TODO: atomic? - memcpy(value->data, data, datalen); - - return 1; + memcpy(value->data, data, len); + return len; } static uint32_t tdc_timer_cb(struct pitc_timer *timer) { uint32_t i, j; for (i = 0; i < ARRAY_SIZE(tdc_varmap); i++) { - uint32_t tmp = tdc_varmap[i]; + uint32_t bitmask = tdc_varmap[i]; for (j = 0; j < 32; j++) { - if (!tmp) + if (!bitmask) break; - if (tmp & 0x01) { - if (tdc_get_value(i * 32 + j) <= 0) - return PITC_REMOVE_TIMER; + if (bitmask & 0x01) { + if (tdc_get_value(i * 32 + j) < 0) + tdc_varmap[i] &= ~(1 << j); } - - tmp >>= 1; + bitmask >>= 1; } } return PITC_RESTART_TIMER; @@ -145,111 +156,183 @@ static int32_t tdc_setup_timer(uint32_t interval, uint32_t *varmap) { memcpy(tdc_varmap, varmap, sizeof(tdc_varmap)); - if (interval > 0) { + uint32_t i; + uint32_t tmp = 0; + for (i = 0; i < ARRAY_SIZE(tdc_varmap); i++) + tmp |= tdc_varmap[i]; + + if ((interval > 0) && (tmp != 0)) { tdc_timer.interval = interval; - // TODO: timer already running pitc_schedule_timer(&tdc_timer); } else { - // TODO: timer stop + pitc_remove_timer(&tdc_timer); } return 1; } static const struct tdc_hello_reply hello_reply = { - .cmd = TDC_REPLY | TDC_ADDR1 | TDC_HELLO, + .cmd = TDC_REPLY | TDC_OWN_ADDRESS | TDC_HELLO, .size = sizeof(struct tdc_hello_reply), .name = "sam7fc-v0.01", }; -/* - * returns: - * -1: on routing error - * 0: no space left in txfifo (caller should retry) - * >0: success - */ -static int32_t tdc_parse_packet(struct tdc_pkt_header *head) -{ - /* all replys go to the HOST */ - if (head->cmd & TDC_REPLY) - return tdc_transmit(TDC_ADDR0, head); - - /* forward this packet? */ - if ((head->cmd & TDC_ADDRMASK) != TDC_ADDR1) { - uint32_t addr = (head->cmd & TDC_ADDRMASK) >> 4; - return tdc_transmit(addr, head); - } - - int32_t ret = -1; - - /* parse the packet */ - switch (head->cmd & TDC_OPCODEMASK) { - case TDC_HELLO: - /* answer the hello */ - ret = tdc_transmit(TDC_ADDR0, (struct tdc_pkt_header *)&hello_reply); - break; - - case TDC_GETVARS: - ret = tdc_get_vars(); - break; - - case TDC_GETVALUE: { - struct tdc_getvalue_request *pkt = (struct tdc_getvalue_request *)head; - ret = tdc_get_value(pkt->id); - } break; - - case TDC_SETVALUE: { - struct tdc_setvalue_request *pkt = (struct tdc_setvalue_request *)head; - ret = tdc_set_value(pkt->id, pkt->data); - } break; - - case TDC_REQVALUES: { - struct tdc_reqvalues_request *pkt = (struct tdc_reqvalues_request *)head; - ret = tdc_setup_timer(pkt->interval, pkt->varmap); - } break; - }; - - /* - * on succes(>0) return size of request, - * and push retry(0) and routing error(-1) up - */ - return (ret > 0) ? head->size : ret; -} - void tdc_register_device(uint32_t addr, struct comm_device *device) { if (addr < ARRAY_SIZE(routing_table)) routing_table[addr] = device; } -void tdc_receive(struct comm_device *device) +struct tdc_pkt_header * tdc_alloc_fullpkt(struct comm_device *device, uint32_t size) { - while (1) { - /* peek the header */ - struct tdc_pkt_header tmp_head; - uint32_t len = fifo_peek(device->rxfifo, (char *)&tmp_head, sizeof(tmp_head)); - if (len != sizeof(tmp_head)) - return; + struct tdc_pkt_header *head = alloc(size); - /* peek the whole packet */ - struct tdc_pkt_header *head = alloc(tmp_head.size); - len = fifo_peek(device->rxfifo, (char *)head, tmp_head.size); - if (len != tmp_head.size) - return; + /* peek the whole packet */ + uint32_t len = fifo_peek(device->rxfifo, (char *)head, size); + if (len != size) { + free(head); + head = NULL; + } - /* if it's a hello-request, remember the device as path to the host */ - if ((head->cmd & (TDC_OPCODEMASK & TDC_DIR)) == TDC_HELLO) - tdc_register_device(TDC_ADDR0, device); + return head; +} - /* parse packet, remove data if no restart is needed */ - int32_t ret = tdc_parse_packet(head); +static int32_t tdc_receive(struct comm_device *device) +{ + struct tdc_pkt_header tmp_head; + struct tdc_pkt_header *head = &tmp_head; + + /* peek the header, return retry(0) if not enough bytes are available */ + uint32_t len = fifo_peek(device->rxfifo, (char *)head, sizeof(tmp_head)); + if (len != sizeof(tmp_head)) + return 0; + + /* assume an error, remove one byte from fifo */ + uint32_t used_bytes = 1; + int32_t ret = -1; + + /* remember the device as path to the host */ + if ((head->cmd & (TDC_REPLY | TDC_OPCODEMASK)) == TDC_HELLO) { + tdc_register_device(TDC_ADDR0, device); + } + + /* reply packets / forward packets */ + if (head->cmd & TDC_REPLY || (head->cmd & TDC_ADDRMASK) != TDC_OWN_ADDRESS) { + /* peek complete packet, return retry(0) if not enough bytes are available */ + head = tdc_alloc_fullpkt(device, head->size); + if (head == NULL) + return 0; + + /* reply packets go to ADDR0, forwards to others */ + uint32_t addr = (head->cmd & TDC_REPLY) ? TDC_ADDR0 : ((head->cmd & TDC_ADDRMASK) >> 4); + + used_bytes = head->size; + ret = tdc_transmit(addr, head); + + } else { + /* parse cmd */ + switch (head->cmd & TDC_OPCODEMASK) { + case TDC_HELLO: { + /* check packet size */ + struct tdc_pkt_header *pkt = (struct tdc_pkt_header *)head; + if (pkt->size != sizeof(*pkt)) + break; + + /* send reply */ + ret = tdc_transmit(TDC_ADDR0, (struct tdc_pkt_header *)&hello_reply); + used_bytes = pkt->size; + } break; + + case TDC_GETVARS: { + struct tdc_pkt_header *pkt = (struct tdc_pkt_header *)head; + if (pkt->size != sizeof(*pkt)) + break; + + /* send reply */ + ret = tdc_get_vars(); + used_bytes = pkt->size; + } break; + + case TDC_GETVALUE: { + struct tdc_getvalue_request *pkt = (struct tdc_getvalue_request *)head; + if (pkt->size != sizeof(*pkt)) + break; + + /* peek complete packet, return retry(0) if not enough bytes are available */ + head = tdc_alloc_fullpkt(device, head->size); + if (head != NULL) { + pkt = (struct tdc_getvalue_request *)head; + ret = tdc_get_value(pkt->id); + used_bytes = pkt->size; + + } else { + ret = 0; + } + } break; + + case TDC_SETVALUE: { + struct tdc_setvalue_request *pkt = (struct tdc_setvalue_request *)head; + if (pkt->size < sizeof(*pkt) +1 || pkt->size > sizeof(*pkt) +8) + break; + + /* peek complete packet, return retry(0) if not enough bytes are available */ + head = tdc_alloc_fullpkt(device, head->size); + if (head != NULL) { + pkt = (struct tdc_setvalue_request *)head; + ret = tdc_set_value(pkt->id, pkt->data, pkt->size - sizeof(*pkt)); + used_bytes = pkt->size; + + } else { + ret = 0; + } + } break; + + case TDC_REQVALUES: { + struct tdc_reqvalues_request *pkt = (struct tdc_reqvalues_request *)head; + if (pkt->size != sizeof(*pkt)) + break; + + /* peek complete packet, return retry(0) if not enough bytes are available */ + head = tdc_alloc_fullpkt(device, head->size); + if (head != NULL) { + pkt = (struct tdc_reqvalues_request *)head; + ret = tdc_setup_timer(pkt->interval, pkt->varmap); + used_bytes = pkt->size; + + } else { + ret = 0; + } + } break; + + } + } + + /* on success(>0) or routing error(-1) remove the packet */ + if (ret != 0) { + /* remove bytes from fifo */ + fifo_remove(device->rxfifo, used_bytes); + } + + /* free allocated memory */ + if (head != NULL && head != &tmp_head) free(head); - /* some tx-fifo was full(0), return to caller and let it retry */ - if (!ret) - return; + return ret; +} - /* success(>0) or routing error(-1) -> remove the packet */ - fifo_remove(device->rxfifo, tmp_head.size); +void tdc_check(void) +{ + uint32_t i; + for (i = 0; i < ARRAY_SIZE(routing_table); i++) { + if (routing_table[i] != NULL) { + tdc_receive(routing_table[i]); + // TODO: handle retry + } } } + +void tdc_init(void) +{ + uint32_t count = &_tdc_value_table_end - &_tdc_value_table; + printf("found %ld TDC variables\n\r", count); +}