diff --git a/matlab/figs/hinf_comp_filters.pdf b/matlab/figs/hinf_comp_filters.pdf new file mode 100644 index 0000000..d149cb6 Binary files /dev/null and b/matlab/figs/hinf_comp_filters.pdf differ diff --git a/matlab/figs/hinf_comp_filters.png b/matlab/figs/hinf_comp_filters.png new file mode 100644 index 0000000..a3eb8b8 Binary files /dev/null and b/matlab/figs/hinf_comp_filters.png differ diff --git a/matlab/figs/psd_sensors_hinf_synthesis.pdf b/matlab/figs/psd_sensors_hinf_synthesis.pdf index a8f71fa..468b5e6 100644 Binary files a/matlab/figs/psd_sensors_hinf_synthesis.pdf and b/matlab/figs/psd_sensors_hinf_synthesis.pdf differ diff --git a/matlab/figs/psd_sensors_hinf_synthesis.png b/matlab/figs/psd_sensors_hinf_synthesis.png index f0b735b..494abae 100644 Binary files a/matlab/figs/psd_sensors_hinf_synthesis.png and b/matlab/figs/psd_sensors_hinf_synthesis.png differ diff --git a/matlab/figs/super_sensor_dynamical_uncertainty_Hinf.pdf b/matlab/figs/super_sensor_dynamical_uncertainty_Hinf.pdf new file mode 100644 index 0000000..f7cb29a --- /dev/null +++ b/matlab/figs/super_sensor_dynamical_uncertainty_Hinf.pdf @@ -0,0 +1,1759 @@ +%PDF-1.4 +% +1 0 obj +<< +/Producer (Apache FOP Version 2.4.0-SNAPSHOT: PDFDocumentGraphics2D) +/CreationDate (D:20201002174812+02'00') +>> +endobj +2 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +3 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +4 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +5 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +6 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +7 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +8 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +9 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +10 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +11 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +12 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +13 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +14 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +15 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +16 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +17 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +18 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +19 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +20 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +21 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +22 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +23 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +24 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +25 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +26 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +27 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +28 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +29 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +30 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +31 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +32 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +33 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +34 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +35 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +36 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +37 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +38 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +39 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +40 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +41 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +42 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +43 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +44 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +45 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +46 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +47 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +48 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +49 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +50 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +51 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +52 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +53 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +54 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +55 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +56 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +57 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +58 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +59 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +60 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +61 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +62 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +63 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +64 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +65 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +66 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +67 0 obj +<< +/Type /ExtGState +/ca 0.3019608 +>> +endobj +68 0 obj +<< +/Type /ExtGState +/ca 0.3019608 +>> +endobj +69 0 obj +<< +/Type /ExtGState +/ca 0.3019608 +>> +endobj +70 0 obj +<< +/Type /ExtGState +/ca 0.3019608 +>> +endobj +71 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +72 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +73 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +74 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +75 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +76 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +77 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +78 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +79 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +80 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +81 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +82 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +83 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +84 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +85 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +86 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +87 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +88 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +89 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +90 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +91 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +92 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +93 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +94 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +95 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +96 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +97 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +98 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +99 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +100 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +101 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +102 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +103 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +104 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +105 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +106 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +107 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +108 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +109 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +110 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +111 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +112 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +113 0 obj +<< +/Type /ExtGState +/ca 0.3019608 +>> +endobj +114 0 obj +<< +/Type /ExtGState +/ca 0.3019608 +>> +endobj +115 0 obj +<< /Length 116 0 R /Filter /FlateDecode >> +stream +xĽͮ$I笠/0 @$8;B+ $!,H-:?yK_\uT婌p777;v>.Jǿq}O?׬5kg]}Α6#^;>ǿ#QS'G?k~y+W_HUO#_R<TX\}6ŏ~h`[x<'q,~CXI󳥫qG?4|= ` -{`:&T5Ւŏ~h`ER+=X=0ÎYOCv|S#Y%;>}>t5 {dxu-;>}Y 1;>}IU|}'zbќؾW˫g?5Xe<?}'HhL1O *؞K/8gd+~se?H7GmCE(f+?Hwq/3}Wu9{|#c+6cHUJG?Q+6c6q/G?2b9?[jc@R0cG?2[¾[S~<я[s:-~#c]x [G}/^c}~&\}u۷=yb ~dlq_ȥ|εloG?2/+ZpcHB/ p|#cBge +c-~#cBZ|Ywz|#cBQcl_R9Wŏ~dlq_H}?[h#7J9o([q2ŷ 5A`fk9ؤoMK | vsxAA;paIoAN1I1D1?1:15101+1}u0ߑ2д12P2ߐ2б21Q21c[F[;;[[j[R[5QT1C:[F";{ +{F;{F;{F;{F;{Fb~ώ _j 'oыīF"+U>UP #zэxUxÈ^#^%$0W7E"U4 #za oы.ūR?W=W7EU #zџxUxÈ^t'^(0WD:oQ1_-^/[(]axk{BR=(Dqa%P+=sXoJ +[R=pa'h+ۗa#n<1^c=9~{-1_zKʻ/zC$ǠL1~!{!H +cy{NsbĘxqOpp?D ^~oGj3|i{ri/ΰTz ?e~1O~amYR/ |UJD>GD YJm)=W^_| 7x )у⃯g-=gyTp;aϡ0ք]ӟXqΆNih=5쿏կ/qTaijG yo j5_cm=ۼ֯F1Q9r06(rsɂ) /oaj9||`>kQ9E3F,_J0]f2ʦ1Y0fS#) z,c% EF +GQlgoX_;>|Zqalޚ2ZϭkWkuBSPjr}>vb!MDjҮ.HJa& Ӆ] W$?k=Z?/\g ^7W [e&/0<csXPfK)T+K`ލgaκD_Vsŷ& <*(\4<9nTQG2d*,/_&~TR]! 7`d gZnӿ7>]\ d*uK؎+79gdk̘^}[Xx9w`0i/*]CWmݏ ه61 ]$D`X3YG? ۏ :@1V pE S3ʵk=?Kx|'x? SZofZKNVrɣ|i-MrJ(8j<lqh.]yL-bx |MZV>qE\xfgvxԺ=LɴA#{N! eH́);o`O, a61 Wc+X0c7wqZ}FDc^pŁ[X'cT1fjy8Tf\Du U26>ᴦ9L [}a~m|Ʊ`tSX`.3` e簼Y<.9 +8ui (^ ,- %_x0V W\` 62XO1kp\±:…UЪRppWW 6ӆ0+?cWXLX7x" /+;Xrcվn)MX*Ocs»~,̴gb<w|M#,`e0 q|͉eSy~ML gapaj~j`7hha|ǃȜeb2cEs5CjL░31o +f*%Mj'3i\4pżZ{oLr-p%:6ml/sA:f&ߊ/=B1ބa{ Q!>YK^z{ـmWb1랹PMM}bx [Тgq4<5Y =9bXLQ7҉aa{.1!?g,RL6PXm1cm¥7k0 m & Nz[Xژ0q5aUi$0A\!wՄ?VU0<"l0(x%S#rJ:lhµ/LM. `0]`3ۺ$JOÃX0jR1(ׄ«(|%Cb) ^#F47I`U/\SL@8{Y} :.cXzusܤb<4^߫{pgT$}SS֩R)A# '#bt?Al1N[YhJU1mGSnϯoa D(q +_Ŷ6.v;,9Y`0X"1#cᇙ!r&6 TX. , ~ "M[S7`̆:H?ݿS7~$x'3?LXFra^!'0 +~OF!/<8Ż)jn +~xۆՐ~z/Lo~|llMC2=/T`$ {P1m6ԖfWcL㠼` +?$ +]yatʾI" t{Iwul .7)`nveP.c1;+y,/s[/11o#ARO,,RKӏa2j<+ +uy,8OcˋWƭܗ,C&@jyqbX-<9UCm bt`[#3p\n &n+c iq^@X1t4\x}M/XaTT76Nav7p'6 +rLOXeMG\Hl龅`=}1kxs.c;`c^jkc; ,a&sH&*؉畹`.aisk ãcT В0D0@ؕVV 裏#ʵh)\=a/f9#瞆`88.cLTM@}¢]]ڞK?E`\Jx ߜۼtM/7'fe0bRu-|7o8w[1P&|t'k&pU^ci>Ib{kfSc ?#P׍uM8v`p-~rq>&&K왉kΜc6cwNI)Z7˷kvОQ:afXK7=D C N Ld; ^wtArA0^d;*;PH gm~ظOz+ ms{xמb Em25A$6 2〹m#e CáFbd[^`Gg?tv03XC1l?zޠmD>ȆPH_fٛY;Y MA +{q5-:A^Oƃl-v%x>ڰOr1R[o [7&rhe`Χ" + cs{&ռ1;l &cr,}{f¡yҌ 6-{^d`5z)Av);;툶'}>bM=v^k;2i ғA;g`٫UUV~hLφCe >p՗49kqZ<=$>tFnHIܠBfecn03A>' Ҳ7`b%p8jE ۼ׽`A^_$nГ$l0(&U39gX:l@L bY^ !&}['9HX'?B[A2y(5-#9ˎj`mj` c5Ѓ'Y5=/ nOv^-D}p|I%"kxc^pj$ fr9ݫAưNi,M,~08,;[):v#1w0vmz V1'?HC;Ey,bH=R`/D|2~N"uyFE ~Ֆ)Oܣj C5ά~n8 A&~*OW6&zP#2Nk$Ѓ7'u7=!}{ aMFAp }<E"i֓̌2=H3AF"n态Aa` w B+i%X'5H R/yxp?H bdbOkAmWƓ +}/0EDH&erz@RX³;hq= KuB$ljNH10[$Rs%}1T&izM𾌕2Cz  #;TMxVI]:*܃$S[DcZ +3;tA0t9L *1j!;AK}du M (ťJ2p#7h0cܠktӬX-F3*Ԧ1*y4̓$@"rff7frְ7!DBİ mQ 2R:zWv8y𪗟e19sXnL7XYܠ1}A4 KZ{RSoYʫAkE+a=AY8SL;THAX"jOһI2Are`YHGFf{b,fc%LxDXT`==2KC B/ˤ=A"'fhteOUR6_'CSq}s\\)%ST#;HsRA̢fXvF5%MItaM*x0Ahyg6~AN@Qat~* #r&c)2,T!9ob $v0Kb DZ?+O! ǔX I"cJLa XCHEJ<<rrvN::]T e&6CHm%t!Hآך-*xdTC $[Qa#3蘁!D>QSOI"w ;Eʪd Sy1GLAa`xrTCK>nh{͇\l1 e\RWޘ5)B1qr]!Ģ%*UF!' +a + !OױKcʮ{akZ.jN +!yM!lP%P؊0sw`uޚ)BEٞWNG>~-a !ml ![UxGH(B< !a*-"g:Blɜ+CmBL%yAK*v$ !Ik&Xd ZjfP-\ώmAŜb Q='Auyh$4jTZdCAe,9(MXVצdPV!Mщ.9XSY B]8"o 94s"]:5s +< !V/ˣ ! |5(B$?U>)B,r^Cp1R*]}B,g9daMӃcf`B%pdYE[!VL4(B'LHBYOfGEiNm3#THG8Bҍb +0^LxKi7 ӓ#dՅZwm";?8BHy1^RԵJhjS Q^LCfi" ;F +oI*_^ "_fcƐ!Dm" +FĬ!i/B.pX3C(3*VJZq@bp|ޘvA|,% rMrtlb0Ųyk)bc3(G.3i5l5Z +ddҺTta9%ά@}3cMVڠs0/U2 ] fp“¥7 Id{kƘ)%``'*=׈[ng 7N<ln%p78'/i-"m"x:]=R( "We0_)[̋h{8 +`8')8{,!ؙykrZdt~jL? IZ:Wl¬먞-|ˎ2u6G$ƬH8a  iIJ[ȉNgEL0q1",&d{'P"o7‘VUTMPbjF . y6H_}O{]Qyx۶lU#65F`p,?{I}s 0‚ݖ((L\{EH 'Eld:[b31iB1Sù ʙV5 ~g,g]@NPb\S'x2^_th4rpܩS8{e?\4~{W \XT +v~'=͎݃bl ``]f)k=ؘ e6.xgե^3aIGv܆bA ÉdFDy\W_I-dX\xP~u*3r"I\|nAixM +ju]WLZҥUc#@eI=c[ӫLLa\SiY*/t*u̓6q^avJX\.v+\۲%gVaS +bkc&' W, dXRDD~H`D2p_%lH +Z YStMGIGx٭*;nU)wB8E}*XƜ*A_2VXM['tMj+鉯lYWNouFƞeBi% 0mnXbC@ÕcFMG*wQ0']µ LM-V#2/grlbnLP(fZs1kx0س䗡PX gW/,O\t,¾8cA39E\M6{,fȓNJafM8^5b60N4˼Dafcy8TN)bpW{$ץ SQYiC/kB4Ϯg;rI[jv?idIcX'$#7OՔ^Slljjs0ͷXs;H6XT4v_fD%.M%LEbWI쩼Bq]51ܷ,AqԃMՈ +1.ټ6M%*tmت/tbThVм s[ eYpŇCֺ%"0]z~*Pf~z>P:-x9y( +4EHJHAX%IѭT:w%>^+"x7 D.ĘbFsrɬI7:2ʡB bC?|i_^dGYQԊ$ $9E:uLT>wvW(*ĨbSP ! ;d_e6ʱ"!C1fyCfjɄS{{HR-qԲ%o"H& +>}U!47Ty➴"XүE{Ftw"䏏W9"b0}Ch2QxQ1o(D.nrKuJ!6i+#N^J+|B˻ëh~tPkSaW*b̶N?CUb,&hBW"x}"|e_1jz)9jC l%˂!r'\v*cX_G2tFlW{ +MSIOՈ+A6bG(FdY-Spa E.E+F9V1e-SJzM tl!G.;FIm|#FPvcTd [Ħb\47$cf=]E21ڶ`4j逧"P zK;ӰYTl$Ր_ d AlbCS* d b,%Ů;d,_2cws&$Ʀ?rlL|^$ {QޓP*zbյؓ5V#JEAVX$|GEi aVקЭ0pK 6M +^uu IJ4p$Ͼǫp8 ܰ0WbA>tucbԻߺՇ*GTS6tdk , r#%HPUeZQ+`:eEj-b؂ mA- b D32IA.2 A!d.LU]e'b c$( c*xw"+h_sY7ԓcفS~ܭ(z:| ca"慄^s5ǫ6+C-폴 χ\"yt1 <@[C9k0A6GvhtUaAyuw*9*xUn=#~ ^źgA l<%Ϯ9qwۄ0ѥBIbD^l7)θ^ĘD_=8lۖ>{w/w;;~z)D yF$ Sg<:AInArqݎ0R-鑓yh#pHF>$g|ة#(t.Vr9-z(I6G.7?,Em]w~LMMFP:H|i H Ug)\p~sa;wscT^X쏥\GZr4(8s0wǰËxڇ1n +;{Tg)>8)Zɂ";.gC4bV'>j(͸Q&ح,wm#6XEr{#Sx#MvWݣ`Ÿ}eқgG 3}F.xD.ʦzy乮AoV}SVM :;NYOdgCAb 5u<*Eh`HKpJbHL>^%*6(z}7k=賯# ^Zx~8H* ɖn{$VuѶX&vĨj&4NKwMB]9[rSʓXƋ;-@@^;7n>ZcuΖĘmw٪MڭC#5`l9EvgKUb'V +EcsGWљd)9ry7MeAΎfX:m&<Nҧh~K L<(=6v9z3=co_bս?^{c\6y E q;޽cbBiɨ )}5ʄ̻g[f¸Rݜ уvM,KhM;@gib7٪cIlq|05 +7u6S8Q=715p{ʅXӎiy 'VbqubrB0-(x:֞ ѕ:W1H])FkuYb}mWl.jG)^TXhf/6 P2FMd? BbZ`Y B,69uP.nY9 DLqL{Eu6AHE(:7B YUfD !aŽ,k !b d%E5̬;MA9RW8PX^͆!m˷yM/mDq,2ߊ\jGM"D,E'S$)Th}9Uc +x)M ƾ7\)qG<-J;/]o\됛 #\&bf[/!H=U Ffu.aFhrE1Ji4+.Q/d=eE8,fr=D2ֈ&^ Bbw 8jARqTv{.K KXAHŏ$wZ e9X@ݱ"A#LZe Ĝip*(o -,LAQF"7Y)=ئqrb|;HR1ZK^ɭ8af5/R, B;65L34 ׮6eFy*?a*iD*YF$EOk&i|HUF +_nX$Iڔi+H&kB$-2jvلb&b "?Dnf'ܙؓ P?3*͂YA,Sg=h#hm},=jn@wꘒ+=rBKܠmz5۟q^Tg6b/HW{āMJ JA,5ƞ 7j&M%Z5 G@b=EE ϊCJ !$t-l0nzl[nĞ !FϿ ^" ! $U0BLk ZP]b+y^UEUL@iKf˃b/kO`}f(V JK*95 ]j)fq[S]dBOoX"C/Of_ъ!#0WJz=)B2>l{WLRUJY@b)(.,IRc3b)ly2.c͑%G^rdSX$nn@ɢ2al!ۏJ6E(CbERRSYZ:XKY#CH5vCH|dLԊt%E+*۞*WRdQwdfdKkd͒ a Pvm-łR: fwd.F]p"A[nV)bAv++aZLI{QBTW~ ĺ%WR\i)$z -!(1dm"AzX`E̅ ֞3'$18rEPW8D!\PzqO7N:>KLM,aN]{ۇVW/ܼ,Hb~^Ѓ51 * WAvdkz҃ Z !ԩ>{ك4=H}:1zHbݚ[䍑0+[yMӃx^ތ -3=ÒdaĔ>4W JxL zD +0s"=%v=ӃDm%K% ].PDDrɿ~*voix݉U!i#;ry5arI$ncnKM)AZi 392( +*{XL2c>MAd)DZ7̷VI=@wuQAnåDr0%|s o+]16m`AawbULM=$JťSUf%Qk@X&-A±zؓD O[2( +m/҃ݦԀ+5M,^Sf3=DaL7f'=F[&7Ӄ*1bAp][ZX5Ɨq0O<'Me>z}nS< Hf~a0?ĚR|H QCt۰ɵ,¸n0&A#yWa;Kz*=TgHSѹt5?Hc Q@ǏTŮ l^43Aer<=fH1 /j$,O B +Μ-M~7$ %! ٳRAvCVX^Ktk{{(cߩP,NodX%%{!L0!: k0#+!$RS^Bl?!lRS{eShمT^#E͘ܠ4!l4ɲ)B"L[,ӓ!Gb(&T*ar؃!0 57J"FPVS@$8&;V$%}[U֓ :i7=ǟ!3zm]!x;ɽ3k_Q>;t Īu Nbz:A0Y-.C<އB]d!7-3.a&Һ] !-fBƾJ4ju㴒1Y$-vQnAYZJBz(3vXjI~{ %  D{+W6I:{qQ7d~W0jxF+XɻɱҍpsBg#wXcZbvZ2cp4ƀWi[Wibl=Yy7F;Ǯ` [1dMN%Ln˞gv( `ͱC~mSOlFWZЭ?~z>_=wc}N_;sI<)cWa \"Zr㌱fd5;iYl.c&ք[<<YǙR[y~E1Vg< +_ӧm8\X^8r#h0,(1~F`ZEgC؎FI;|DWm@O Zg0=A a,_G09 7 U[93% +~Ƅ=ȪGDܒg NXkłgO5tCa[o@YVgR b1}g@XH5+,o3nk.CDZJGX\=0ּy1Qiar_3 +.v L%vD݉50u Fa=°t#c9 + +<V8ِY a0~tGDؔm.{gX'S"&walX !ilC1$͑sꙸp6n3Q&̔?_k(9n虖D-;#',TbPCbGPcc^GQC U +Fm$)GjT98SX +=T0\kg +WXҭgWи ΌZ~& -V]wpH NG]w g^捻~a9ښIAcY $cEvx?c=ʛP9¦+O7oWϜa}" l^Hdxذ[sa'EX[f>$b3|쓛#E~bGX $y5s1 +MꑰB 쯔%aL{tɐ"%qdV #h}ed WpmXdr-ᄌq5-ƄYz7#F 0m.Z l-hY/#WtBں4OAu^PAT(K*0L?<)8F꫰ɍ+eMoT[aE~Wb)(my0al~MN daL_K]K/,. 8hK¹JbS#-;*f^Gi'{XQ׾:'&[],@,:/0 U/lN6>1n,~`l:|OlR1 sҀX&W KyHX}NAKnvPٵYz;XAl s܏Jbxqu3N +[,YR)Ğ˳&ԣ; +u3K~|D"",!ƤQDhr_k-ܺ) -VRS`\]"+ɔXD NS{Q+E2cQcE ulQE*׮<5]ĸpZð+__g>QFNRԌ]G#xK5ڷ0YGb,#  .3YjHAŠ^LZHl02ѣ r)*BŊwsLb85lIpa̯]D ͢8ku)0Y=ZJ>Yd9`ᶗKc,!D=v)Bk.SB']WK|Uuc`TwK艺\0|fbBt,}B<:JFg5!\q +Ei}XM('Dn.ЎuKÑճ⍮c:1lV9݉MVX(gk%]ҏ}GY>(4;Y  v DB=U~ba S^vj##SRaQ(@QX{vfSǵWj3m)Ab}! +ʷ.*[,BߋUW6 FڵQ~C{dWю*;>azj,1 tT/Ĩ9u2}x^䜉x;dc*U=1L:DݩC̽B뽘51!JjVfKRH'[?9K4|Q&FSTo,()#rP mr+CAٜ,Blxn00so{u,N!L[<(ybK?Ad&ޖ<1D"˵ =1x|2I.nq{4)T'ۑnO#]vs@ "F1;@Vf`v ]v" 6ټ- ȑTrTh}@" {4LGC?-#هb`G$+HUc?r$\z&Y-|['HسIrjI:FәģEٓ Wk@ +"{rVV[r=' 0 {Akz HG?!AYri=- + qj`,JXpBE"ӹGgr)d݊B#;8N,"4/6xA$4N: _HZT5؎1$u|+N3d> jH0dm"?;!SMF:dߕnU~'H3<дG]5\P,PscbcL?@@ɿ8b 3~#tĒAjo:T Pqw5bD > + bOWe^ȓ.|nmAGv  򐸿C+u<tD7Ȏ3~@]uk7萌@屛Nͻ1Ӵo3y7(M1} e]y3[q wҔ;6۽kO+is)e5J=AAP ~)6gYj廱[̚*|{)2=rps + x/){dJUW r-} 'm yMvw<ocGxv݀[ށsdE[Ԏ3f6°A, ^@0Ŷ|$O2evk5Eˆ.> t#$" X{vdSdľ<4#F:ɬF/ׯ:E{&{v=@e WT!iev& Fn@nh?l(6 OfQ 3xYJM}'}&^in{xEA&#b/37wEf@lW1W4|r3FXd XY)AA1pg>SD/l툰<Ükߋ}bVn?jlHupan jB2 +#WA+wO\ȠjkcdVcB Q=ޢrcͅb0sH;G{K{Vk.XZM$<.afתB1qg銀GXoU:t0ߪN^MXU}Ũ0+V˜ +j繴a WsPa^o 'V]j:پw; o%V9sLW\U _J!O hX%~U\u݇2۵[ ÁX5&uA\mg^,.J/h2;m7cgWMZ h";eu^)& {ˎKz?Av9-٘X_H,8bc]0u+0wD˅BfF.bKׇ7bxau$FJp+Ƴ߱R@J6TԹCX)%F [I!>bl6Y*d21Xzή\w ncR,=goj)'ƺQCBxbd47Wg+?+ƥb2ji)#^ +XX!M s)UbA6Ȉ& a^U ++F>] /es(0Wl2(ƞMYby;1xŲvs&Cg1WlO1vkI/Blvd +E`g.f +ǦRUmyعK@:bK}YtZ'ucG 'c A33UV!:f G{; [ +aV6K(q,bs efN\&M3Y0"5ò>S41|D3?f< <''Wś_Lz{5':WV)P?- +!we}xػ٨R<+ NY5ćbdu7' hVWV k;lI.c",+Ї3X,ʸ;ntb|OIb2vTn,/vwߧ$B@܇ზDÆsF B ]|ߞVm3qP>!pvY ~k޾O }8QAq+Bs;ۏl7k_5Fͅ6>q_Z!zއqcN|0:oB"ɺQd3>B&WOBbBQ%W1?#+h +!0=l +!nEZs=+h7QsXW!\T>lŤhJp,Y!b#HpK!ό|۞xq!ٺ"iOKag^`0+蔹}x0vv=%H[쵸+RҬs9 UD%kBvWk\+ +{JN,|O&%B ᅇxs)4k$`ͯKj=.1 \^n%,s:,>{vY];J˭bӘ+@/_eQ:0HG}&܉ m`zLt氘1 آ-ְ?¥CȽ?٭8.wþAߦ:7-Yapr{St?OO4Ox,] |.mM j7v~+c^@f;$-28p88.,nSYz4O,욐uBF"ٍň s'ƿEI1~QP\,v0N XVebO4lUl-HS)Aa-fFɢ.Q-Jhۨ!vи1xV>`;wn-Ҵ9Y,I`,Q|zPLDV +옃gqNqN=7"&cHsN-0B^^b : ˲Rmjq#%Y)ĽP쮆{C%]xq9Y)n%Iuڂ'(@W OS3w,h݀@1b?!b7c0x{vWYx\6rNBY&C/2~SvK#SSW˟u1r9}Jи|\q`b8COlT{ +?ߊ0R +8& FJ1T?-؁&VY%-]0B%/1؅z߼/6cd(S`흊fZe읶K JrBE t+]s6_Z"F~ɲ V8osq#u;!x|~t +e ]e񱃑y>\ʯw̩ 7߷6?R]f:nOn".)[S̫t +kVϴ8ƛ_RuS֗1 =~uK?7g;~̫_8a/>㰓ݼO ~=BVf.~ 5}Vuh~tյnՕΎa72l3AAi5GSnIH}7 A~bOv$7jksg5qm6.jz'2%F1 𳙱%@` n(0d}ZPs`_-bq z]b8_@J%a-9CW5{v)%x$| 7ʅ9|UDsARQq͔SJ okn +, +sWqoK1zM9j0DP.'͖  jWs@UnKj@Uz`wQR~`\*ٙBIF)B'a"eC}CN(F0|#,6}~ a`6˩ +j1ŧ\PjI7KM]v}E'7dGXSd,ި$)&>JKp%)K1/u9(H6a;ə-9O 3IAbc?#0Abc/.{6u(W9,o<ؽ?|]Ua6s +,j>\%UF4/^fpdM_mj$. W+"j_@Rpϙ{ak>kb=SP0J҅EnrCӕPa'^b9X|%5YϮ%<O_xr\#k&Kʽ@$eABř9%[7[1s+YB7,E Dr@EI,;eAQM:SPpÜI%X]l?K X<Abcw*E[x1%o^Lf1x9bru6|t%aP+:dV + ԃeek, |HoY$7' z'.0H [!?[ 6g0ouAB0T<6Ώ;*] Gqs_YXtL2Y_Yk*eAb-$YC<:I$O0kJ: ˂LOcI}eAb] c,5}dUX|H>â EAb fQ^017 i8_MX\ߠ;gQ{uV),r6 +QّNW$BdonMO7/ynMsf=A_EHl4y?IRΡUI$–JrmAH[vgAX,j.wHi\a泳:Ig_&΂ B!%d1XeAؐgd_AfA7ul~gA[_ Bb,B0Fʂ 6ѠnB)jSb)bῗAfUW/ 批}Df>ABTI]˂6ޟ?~AyFfʒ }O+8Uy8njE'o^ӊj FŤ¤sYE^ꂝVӈաq*bQ, [&5;{ +ٔDotA^Ω>aAhc<,z|'+3?Gu+=ù0=9ߓ J1wXkv0 3iMP{ߠ9r/{v+!;İ$ucC.d5AZa򚾚 NH5Az?-{) I~9F"/AFtmߜ dw-b61Z, < KM Nv fIP?~ ڞ$pt}ZQol4k:aEA@]Ų(Ȭo7@Ժ;p@s5AJ>lF>+2/{N 7cn56x9a/W )}Y ?gX")[Ӵ2mkߝ̳VTAbc:Oc+8̲wJbRw1U3$JSwY]p4V~sXIo+ X489Y:, Nz27/!UPc?/i?hm6Oc6ca8|e0.O {bsηh$?=ވwG.w@&:=g/_3 >2b ,VCOP NI-ХqDMÏ>u?㐪:ډnމZuc&B/AwTSh. +k3{ wցQqZ=C$r'A(eFcb۵͏'p//k5g&D|YyX>jYB S-޸`¯Զ4nKTSzԭPe,b_1.ŦҲ]P[WbnMz& n^s~:.,[%B.-ĐnĈ(8vtBtߍ`KY@Q(ͬ;0!3+UXs˾7}6^l[?R6ÿL߯TQ2P?P-nap?k"B楔T.%1G\**X2_J>b縎)m3s)1I)1a`&35iݖ--7Y Q vMpgOOta׺Pb[+H'0*% RbRlE1`J/EZR܅vQz槖ܤg94z= XYhL*e9:<wt=' ]t"/wb46iwg/MvyrMPViKz jpazds2z=S +#l(>GMqɲKjCgzvާzXPK7vQ3NYM"ܹŒv?|Q-яW0eض( +X<^|Ϣʀ[f-GS5"i*S'U#\cp)3镻(U':- ++-7fMQwH(qu#i:0Ok.,!X)JBUق*k(_P-ȨSUWD_T[?Eվ~?*1m vmQZS˸5pEcచ_A΁bɡRWeU@F{_WaRg"$vZU&s-Ǧ}VUc EIxM' ц߲HAykV in&W^% aӻ]Mz +Y?>$7Jqak5xa\>?ߦj}ޢsv{23 +nmvQE2QS<;Ǣކ]jժm=Y^ !b 2$UaT7+t OR.! oqU#rB @M Lj_AK1K;TXic?kCӈ}uihܨMnъ\i<4w4?"l$5pI,+$)/X?<FXr1nˁQ[kFarim ;ˉKץvR]ׇg-ݭ|ZotJip1o|jjYA,&|b=f^a{tbw&滯Z(/ 0lۿX!'pbe.^b +wlX?tqA ɸ/g5LsKYY`r˦̾YC^0,/1b;%XܤSŮ lsMgx:0]T;1BOGjl8*UοG 6y +w{dk:'$ +%rwjuN!_֎ũ vuE8<{ڔwX88Jm#J6g5SfXb|;◵i4l9յG=Gz1iz/~_ms"; }Y-@h5ZPL?zH۬/j;Ρzvr##~"MªwwեwGk~ȃ@.AY٩xl~^`Նϡ^{žF=Ī_2`1 ʻ mbśpc;v@*YUV+Dc v^,Ttb0:/^qkdIy8*? ym~%&vΫF&?3d%m}~ 3Mfg +]|6O}iYAFgu m~[@a| W]Da~۬>*YZ:,vTػXUL}l]Yb/b +"jkÇ9F%QেyW$öyϒ`5L,˂/wbTleAWaeCLQ~n)R3 +xgo&F8"ݙDA9}l:.AFW԰kh[ %US?K6TH7_PnhU+Y<N rv8۬Q>Jn*}/&soVMFf&]55%=N @yfPMiϒ2ϝw/wb97d?vt.]!<S+vHd߲(O+ +q#e;W~uq$QP׹{7g,8+cוי!.Eal(S-6ʸkM& X4tΪXOS(_۩Y7-bF޲(cm;Ă9(T wzN cEADfQ!aS T~,JeX, +"2b6c-U +ջDA:>& UbEg6Q f3PZa5A.uGcRtQ, ٱ:{XOH^ESw$Q߭ 9餩R`,rU1Kvn\%MX|vC2cSkY##˂HX}W0˂sbCIqDׇ=ߑeA,H' +b,H'2Ζe?UM v@ j2Mf*bQ14c+eAYDĔSu/n$ ҊS*Ӳ 9S5~Z'Dg ԑTAӺ +e 5.Ӫ `a?*&h߳*\1΅gq;% eq=.I3˂nV~[[8}KXF%YP,YbQ%>X>1j'ׯ, Rk̲)K*·,T j8eAnXWICL_G Y\oTA}]۪ lxOvBYtiN]Z?mQP.HB!]Pܞ=43G]Ngd]NC6 { iT3IJ0Hy"0|2w EB08ؓAżuAadyX$fuADmҏA +jtbZɺ@}t1 1q YBET? :9?;˺ M2b;Ab#bv2s$]e0H>XZ(Ø7VAT웶2 MB]0I!4b[Av2 81;%a޸؝?eZ, 0PLw0Cv=ADŬ_+)[qooJItZ"A!֡{L.:99n+ֲsMH]=4sepjmA꿞Hbq.f[l0N1&yA2>f{Q!AXhCcZ# /c=zY Dk ,m>)P{T;̶kCuHqfy;m +W,VR>I4PV)H ~H G,[vuYuYĦ~ǙA43z3郔;* +1( ZK+?^H&%A:Y'>(Fe 67+LƕAeZ5,|5r*- OsK C pP>~Yf3`z/Se}*(="Yxd{g}rfwg}}3[IJ@HvUlw{}`ٴ=ЬP= vLݳr>\w|v$,rsb%20J +!غd=+8!=t>g~IhX5zVQACѳFhiEBȐ痳F!v/!lȞ+n"#k15| ɴv5Y!xu,$ɾ +`;Ho' +!x<Y B֮*BNX%4VĨB;GM1ۇB>] [);'Ƥ6X|A`kx<=FFcE9BoAb7A>,¯pbyA{jZ,@<= /LA;r(.--pSng8ޱȄ5vǸA }, AE^^ϖAA͟2kdBeq~x)'F$jkٲ8m1Wʴ:H01l_c@O )Jk: 8-CB I@'P>?A)6N,BxK'>ͦArzc2XaBe`{6%QARk jz⟺g6XkG&ٳ6ɆZ3E<IFd,r\F;Kkԟ=Kyԏ폒Al?!2#3kW zx)3996_ C2ϑALM'CP5u,N,j7[3(l3;^98H;A6,jUbzޓ!:TC/wdi-OaVqss~T92#R;szά j}u `Rsxfa<OݙAMl0CWs890& aбo(\d>B_]ʶX|C 9#6ATKXI.)ҝs?mڒ6ϕeA[vx.˂6Xb*veʺƲo` qa;Kk}t6bq\Y6SZ<키Ƃm3)sp ;˂b8!sKmE}eYq- H#<>QvhaG}U0X +fa0iaf؟aAꉺU0dJ,|A-`J=CA O#vA,ۭxzV)O kӳ]deA6G?]+5?}ԞeA04-X==5=33Yp3,x% X}ƞeAwlS=l, P2 +ߎNq<#@(|8kיq|EA PmdWd:y % %375A]>ܞ +.jd[OԖSϓ5Aȋ;a~x w9Xtn%dMWC`,sYOvGdQ sW((f|Nz,X,HcN 6-J t^ A@\pX0kہ;0D4ĝrm<xb~8'- 73+z^|[KTrTye$$- cfgذa@kY%wq2a󷀖 meHlY' +m% '3ZpJJ&Kz_P3^'ЍR1'Oz6,ݵgPLk^YڜFwJӶgPQNoC"N'3Al"3WS\R/oeD\y䚗HȰňN2ˈtλO?,6̛e!QsG2(y?#?H33-k;%`j\bb"6WRv,'l +xڼD +R]z_g9zo\YOE?oKk}#DIu?8iz!NCw)2᷽ɘĝEEM}Ü*RNiqNAdEKM3im7D$ ,,$RC,-Ʈz|qB+n6'"ohiEߩ)W8.`5IRwFNC +1Hy:@jM@ʓ#Ns=kW}18N"# b9?;H-<<6cXuɌ-F| zV#wJ'&+{ޕ# 6u؃$`YU8s>R#&0+5oˑF0Y}ў Yh7,hf$.)hfojG3ӱ(䣙.5M I Hf=JNfp(YG3feϒffj>m^|4}loJ7<¾䣙с锰,s2 ,=dlr棙7rd؟}CG3#웏ffz !Zь_hfl*hFdX\G3cSTfvэ% ͌#IJ)h9 ,3,'$=\4{wz H3zk@8'Plds²l ibpUMH3;GaYd6Gɔ4?3f5!,EP4X5CLJBf$QH3{{nkF2}$,s2쬳&{Ěfv͸f<ޘ׈41$(iff5#Ũ5#M|S'~4{qwHQV;,˜̮M 5#M,Ϭif4Siߌ41Uw~ٍ^MRH{ag9#,iY3^SH{5"͈ӲIf6 +ib;ڥD65"<Ո4kJFR&#Yk)#M(OlH3 &ibHt=41<4#UNs&c嬳&*@kD}R###^Ԛ&tm5!lx7^҄/,ŇM* ibl'=T47a%!͌;e½CGH7v5#M#`O%#MlqibĽffQyY3:eX\JF=^H>XHQD vh\#Ď7FqoDإrgHpY"҄:"]&65!M&7! ֩s= ib>^҄4YZb;7B'N3-&s9V`OX҄8iTRĦ&v Ha.J@ᏙĐR-ivz4ib q䣉u@t4 )h,Don(hb9-˜}p41R%M_ #mHMG{вIlW|RٓQфb G!:zYrYb@I(FV5M ér6}Ʀl4l41ݔ:'xv9f9Ml0l4I HߠD jhbs,&FV5 d42GZK2P˞)hX;{MFa9FMF?x ,tǛ1U]:&Ƒ|&&w>_`mS^XoSh4K Ϛ&6Ι]`DgߎZ*hb1*hBrJ4?gFh&D/JFlqtXFS_NAJ4*hbq;$ =TtJ2,~q9>k2К&kokij2ڣhbL3s,I0]Y` ]Ġ=Il6&vpFuզ>k4,fi+W>hb7-4f9Mqp Gb`l GO㧲d qdƌxYĮm&l4xK8ڣC%M|k8_w G{hADz:hbjtZ<{p4Z:{Y)y/hb1?CwwNVGq||&v65Mo=\`'!N-hb>k6 :&%Q9<&N/JJ6%9g GCE GXF*hb1Uoaru Gu:IdNk6,cNB%M,K4Pwc@ԳF-KhBq[`]Z޿%Md5MaHpwXEK +vY0Ŷ)l9 Fu85M,ve $%&d41dǏ< +5Mz7,[ .hbx!7워&aK L7h4>nj2()hb1v)s2 93%Mz6/;j2 j2ؔhb_^IF!osJMF×.% 9GsrUNF'X`ml$Fo2ԿPIF>^тٟԙK%M0P?D% wgMF]hL[J%1_Ϛ;RĞc$]qhb;$ٿ&b9~lm.j4O4P+5 OPGh0Wј1;<1x45`hbC)5 1툷;bgwG=m%g|4|4 loȚ&ϭ/\@E;ĵƣaRz%MLEhFǧk<ly}%M1.Hx=BvAŰ!gG]R:\ȃ`S ƣ5 )hX#J HGvZ6BR*iMk@=uV`Xx[U`٠&.yϚ&8e}kԀ4kHX3 #íJJRm[*kJ,f뢚;D,)i Z|]S`75%M>aN4+ 3Fђ PS0ϒs8rb;}kJf^5% F(HVה4%YvAu4X,ѪVbהGqȆ]`}jpZvA=Ąx*1ix'6֔4JJ,1i#VKLGرg(eIQfZ6Aqr3JL,ҵxl{.47~`xeMJ}OkR(e.jRK t,?Iio_oMJ:J5) CfMJQBoMJjgMJda[MJC5)M-FN%) 6,,IijoZIJ{t/^@^ڊˌc6|4uϨd$9ޒXg Jы{̠]g}S41Q3/Q `41M`qt41uI#$x9' [OB/-?KPns J5ǐĐ7;'Ivs.` J,Ai0-bȒoPHWe)( Fyk%(MmZ9( F p-ŒÅ%(M,ng!c i-Kk'~41`a?KN`s.9Ȓs`{gR uNݑs`iAib1J445+Ŀ5S=rNY9iBK,X$noZ +JajIJ{7.!2 Ʋ4ahI$:a2OP,ظUrPD|33rP;b\%(M({{ Juw8,Ʉ`Ow+4fZ +J$fmw=%( xgn7( wZ`e|4\x8&'.Г`lG}v4ڛ4ЃFM,-g9 ~N%( n4,%( }z[n3g&XJQy{9' mؒv\%'梘gJە̘-QijJ4KvOcvD;գ{JŤ.ޱ`)*&mը4Gmm9* )4٦KT,#vQ3Gk?ˇFV,nj-QiX`'֖]n(U`3R[4:6zI-Yi#n>y9+ R*KVUN4<6l4]v-yfш~ͧ9e8L`sVڮC j֟ %+m/B9+m&3G-Ʉ`l1=SVz)R K.6:ՂJXL`qC#pZJK?/֌*qiK~r\>Yv-Y`36bԼ4P TϒF` *}45u3/`D=`tB4K`._XVSݟ%ɱCIuJ`,o_I'&%0  ]ܱpVK\;f(UKdKq.OSd?n԰)3lr^{'/Mog}]el?itsS4سcr`1 ?K`;/4CLXʁiL[v_r90>P9X,isG%#zD;Eo`=x$u+J`=T;7K`}C×7 ;34@$J~r4@ygPpIL4FgIL􈻟=gILbz;LkqDh%0mW?wI年 4646/ۥ]kaЖBjF%9ŒZx wY62nF%5?BCƏL)Ki5n_y L]ͽl+(xILՐ.6$%1M=h?lhCa4F^,2ݞxq L 3%2>K`ڮn܌vITW*X6*:44{bPÍʲY&s~̬ lwI2TI_hq Mj/4L;BQ>Bf ͓&}V&;U&kVT!3lP&|BV&;Q[& @ѭY&&skS(~.${!!NmT&o&7 M6٪dD}}V!>,Cu6UvWdyaaȌ`dɎqh2Ðم?gul0dt%; MvdSOÐAtgulʪÐxdɦ: M: a)hע04Y|u2{ edd+V!%hbh)./CFtS2TZ?djY=1܊db1dfyV'V!3Fz Mz [C^j1dC2k*],&ڝWP-t_,Ę)Ol146j1d6^'b14樛j1dֱ#Cf1{*CfW5j1dvchi^_=h7e~0ːM].CflvmG/6Cf!>|QmǢj3djd>}͐ +CfX}Yɭ>Cf>Cf۴)6CB` s-ǂ3d; ϐ[au!3ԡ>CfnZ\}S3dsze!ܧ)P6+FCfqz52j4dvM#b4dѐYːY͐ٹ  Ѿnd3$1!21 )_ tlol3dYBX]MKb3d6% fȬK6CQT ݏ͐٩fȱA͐vFeȨ7eW!s&T!30eH &CFD!3WV!J x y [-L|hZ ]]Cf1EcL kckXb!}z q]c,>ǐئbȈ +e!m~d1dJCŐXl;;T-̮f^2bc-(c!YyCBqڬZ uZ 4b,;bH bȬ=m:d!n]1dz gd-J̿=Ěf?ǐ6Vcu.CX3~V!3[~V!W!1Nl0P<̤=Cb:!uc!_lfmqc I2}~3$K(gU!1}6T>Cf}`OyX}<뎨>CbԖ.{%!x^W}bVQ}MC<3 3$c>Cb\6&(>Cb}Ɋ,aw3$#Y;ғ}:_>gHljV!1Nm}N@3$ 0!B-YѐX{C y{W!g Q_K1ѐT[(!H,FCb۱ )/>C"_! 2VV!1V!>CbDO;f)jMaze!h,I̎\ϐ؍, ]1m : j3#YDfH.f{l3$uSmP]z/6Cb+~OQy+TǝfH,ƭ1?J?Bn ik3$VlĴCN#1mZ e!X̸y 덱-V!U2Iq66Cb!'Pcfb3S~_4Bw|V!f3$6dW!ϲhY|v>Cc 6\gH~ϐ7ӏE#qU!HiT\zNːX ƎW.C0UC.CbTeHlkb[]` ~V!X H?ːX3 R7SEBfHr},'Rlv9~E$tn0b3$ˑcZd!XyCxg 3Y[ٲ3v5>CbqnުH7}]ͯ` Hǡ8 ME&t2CMh 4kC<&; !`Fv4iDnob4"ގh+Z1 5^|V!2ͮ>C0Li>C{jNgfƩg6,VKC  { T`T㛳Z ӚgͲGY&D%3`U2rf!PLK}V!U!=5*ɛ 4-hH,>~`\ni-FCbN?b4$*l4$b4NϦ [6ȪFCb;Y~ҳ T n_1/܌]ĸ,vZNCM=A18 CٽNCbi0hމ=ǣ4$c]ӐX +Û4$NMNC">Zr<9-u, ]b/Bgqcش6,NC_>iHOrgb46gHaڝd!Iq'˄`ZgHm/_;3$FsY%kg"f!gHl (̽q6:e!.q%!1]#.FC4B϶$ +ަAQrR۳+nq;RA>:k1]q'iisBqRoMq]Xe>M(9 ;iHMRiH,~iveO4rl^!4kt Zfb4DwVi9-|NÃCl b40( 87;  +7 +Ɓ%{ hPk+o֡!}P$!5~ηLB;c/e!XrB+-`Ob1Ȅ;[%!$N?mQ1$ǎrmX"Dk01/%B ۟5Q,kmb6RHHJ,Ը\EMC]|,nq%BA5.Z;b6IbgB8DH7qY 8N; Gv.+#@~Y!D\shL( ! yX+K>H2+jbP@(OkXrIHjX܆eP<KaNi Ѳ Sj6)xo'(:W4]b<.[Eqg{xc'#A 5wem; `neVj>Y@hGNCV!zw7@hW?=?wER[!V/x;=vxo93=Tgu(|/FO Z79Oq$lgl~UVDΞѳ:wv,%*_ v+oò:КY啸su!lduB}C,4i2^z6F{cdq=alõ}AВ̋261կ:6w=em&X=.1 &mPs,Ɛ4ȇJrcUӓAy{?IԔ.T2`o7a26ܰ j:r[ j]2H&ʟ.c -kk:!愄lYg Ǔ "kiZ?MʠPrӲ0{N5=- s/WT/ 6 Or=ݯ˺ Eޠuʳg]tFY>ˢ$ Nƣ +Aߠгga[ {s h2ٳ.m_>qAbɭl771ОuAm-uAqv] R z +w]avAڍWr_l,l]L,6,!A:Aá_Ȳ qmGɲa#]Zv1j̲SXhYD5#yYē9fYҦ,,s+~Y[>g騋eV;9 +avi ˪ S qocI$S @Bعt%`f/r.q쪮o骴s?t:fd5BoRnt؄}}$` ɴV5V\axWմW +2[tXAH\}԰իg%۫hA5.^E :c)^=/wJի +)%z~Y묦W "F9UA93Vf V# +k b 3^OCq*yA{; q3Dݼ8CC"D=`7+m![@ #W65 +/!Q|)∱T C;ZCzjA<!7G +"& ZyZnfL-V5O "V;9^=/ D,[Q +"F;:zZI7ZfxvXNAG QE#9^n-|d Rb1b5gO "ʨ$7*Iv A1SG,Paըr ,J"02j,=vM#~H9YFRA.%3<tnfGohd tyS=@ W$"-`zAd@̊mr$#&̳t#W@=@*q6~''xks:"C4fyaK$?F9DLNvi&34l+qڄ㴁]j0N1/4c$m{8mƼqa4N1'4C8m`1=(Fin/Z0N1OyFRyYiƕ8mƼ,j]͘7NJ*rNةh6c^IXUi3FÜ,Ҁ 60y]De|y{0O)yh6a'ӄդh6"uh6amӄ@HF6ѕvh&H&}$C}&ا <ӄl,ڧ >t/ ꛘ>m`w?ۧ ,xO33F=>m`yLO?iJ٢}0c f:،iy%jh&2;ۜ}yiJi +;^= S3 ( ?MiK&K6o&nO5UR}3Ѽf4aSd>ͰYl6Sh&lG$6o6aӄ]#wOPhtOƓt9y⓰+j h&j SvNV@{iN)*F4L^& 7C&39MX=%ӄٲ եs Z\s09ͰRiHL:M0=ɰVZ[ Ciӄ=uGj g`& AQ9 ;T گFh&2މipwN3,QFXVf$lG4Atx4rn:IP}\=9)h&\iº)i:M:f4èȼNF +:0\ 'auam4 mfӄ<_~iv;BK9Mr B2scD4ÒEg4aOG>:MX:܈i!UKN3dM]8:Ͱwӄ-LvldX3rkN3L3;Mvf4mӺzfO4amx0D4:L&xOzwAv$1&܏aN2FB4O3Ξ<0iU} C`I$'brlf^%_ J +QN3,_>;ͰAe fP';0{h@xa$waӈQ^wA; d csMeIi^f4b2siiO^:Ͱԟ^ua$lO4bVsiN3 ygcHz`:0 ;RWy4ÆlfrdӈabS5[y4r>: T [fܧuagtN3_F}fX1Ѽsa"|f4pyx(8F}Q4úIͿfnMCj-DpN3hf-55qa<=_o!n؂oaGF4X%cM3]=s7Ͱ[1aU} C##`fi 6Ӡ1ѽmADF4êvoaXk抾iĒj-70v0W{t^tM#F[PE4mߚM3L7ͰNW]M#v㍾i!˘ۦt=G״n9F4.r6M3,C /:vZO pudM QS0M#FjE4tf4nmQ9xF=gb.ˠfXهTL3 V3S Dbs0 iȝ "NS#XvۖD4bL!- j iĘg `f1Ή4:};E:`F Ĉia=n;FLMLF FӴ2BF0M3'vPh߶0M3L'g!{ˍ+"uq%Ћ#9 eO4b;H/dSXy4bܟitR?Ziay<4bfa<aMa<ӈ!G4bfX =.c4O,Sm"MVk^0F4΀hFM4ZuIg>e24Ke1,2rH֥YT?i0ϖ^Vt*zfӴ&v0M Znj~hFll@^i1mx r.#48}=58ʱ*x0 i΍ z9D >=ӈ% +k2Pၗ|"- `F !ݾ[2XWA5[u2Z2hF"j2iĎtO2v4XTD˴N}JeZ,X+f$0D`25<że7(Z_Ծ-Bͼ"1lvq eÊ=/DMZHgɎ~]3-FwWE"v__~jDMxzzGweWtiI2mziĐŴ֭Aسg1ʾ7z1ep ih)Fջ>3xuSFw8z+XVDpidMe1-ӈ!tꁋi:Xe529aF۫M2i,2GeL#;<1MN%;Mn(6_a1.0 iP(si4v30X%P0ixK#D*JAKcvaҒd&dM钶 i/ Ӓ6v{0-:LEL"TD1{IcZ2-)37AU/;BF Rr0sH֞vvS؞c©iՆP6 FY|0-On8zǴd+L!c~X7鴑sg:+-[AF> Ӓ)i6 8oFt%4v1 bk2L#Vޣ~iKcos/'D`FR˚Kc;dioz4b9z1L4/~4BX٥Y`\]Z2!nkKc WC'a/-^^64viwr~iTOf Ds~i,nJU:Y!Mak2LcۡI20s B$"? ؑH#V#/P'GʗY"6[&e/,M!/1L"0ʈZȈgP+ۥ[BdF 3|d(Aq6L_{m㈏ _B>k/}%Ӄhњ;})9YsGlddWild$n0Lc#cŋ/ Ȉ{.WoNFo[1 1`nšZgNn0-\S!wLK$T)sa;t[miYc*=߆)1-;u4LtwsؗGӒQ|YX4ᱰƠsiii|m㊴![YZK#ôd +YzzaŪg.^Lueatu"mG}8U #1"&46q-9%,zm$;oXz6e8{ +iGoo[]Û DrIL#`.#"?unbbcbS9_vϑ/1P2o#\?rb ? _+/ }??.j/O y2}2rf3[#O· voL 'd7Z?1dÑ `?4hR̵>[Q]l )q;H΍X̯4 lL0[_g?3mַ)n/3o}j©m~Й5Du=׳lF1Vvct5L3̯4[b-o??3k4?3s4?hfhxEbB]o,' 9P6ΥC  :ߢr DIKt{"@b9"i MԂ%Iw.??434eCK>43^L14/ZQ*IVilhׇCvї ̩ 54/C-qRveCk>4=3_eC;yhl-1}Md}jh篯ld*1}~}58zlhmĸ~eCՀ]=Ƶ/گB~ ˆan!}~}58L&~eCՀ +6[XX#?ZC)[ ?ZШ]k۵}5~eCd&F/گg,5sQ-ˆkI}jG_6__ ;^bT ?Z@ɗ WڭNZї WbX?j`΍Se܂A\?ۯ/ WX%M׍WscfϾnt€\̥GW emO׍XH8lHJy_I5kA?X_}O**W#W+rCk, #!a%ٷd0l Mh_f8?2_榳>hs_=.˦_5Dk%k3Cx(2|ȷ c^Bg5z.?bj1+Yw w ïo1;(S gG3Ϡ~r- 'G3Ϡ~r=A j}0~v= g3Ϡ~rb=Y '2Ϡw 'oԏi3gP?|ˠ~FA{OgP:7 g3 eP?g|Ӱ~-aUM37 k >-Isҷ jnL{ePsKܥz4#I2 iLA HsOҷ jn=ePs܇-Z?~0]Os#Է jw[cPN[58mO2inxA}Msӷ jhcP^[5$cs#[{o<5S}ˠ涩;h{ePs=-澩o5wL}ˠloƣ?knAMYSַ iɚ۴cPfG knzf}ϰGS kztc}ϰ斫G kf>qIv=*]^h~g6N]L$c*uvʧ:!nzЏE;GCo}. [n/|o~p߹):+&WJʗ JOvQHA3?sKAKRӜOE;c{[_VԿvvZ-35;ύ9}@v0vЛžaF{Ri$]_zkfX4}/y3oǕ2/o;[['ܟWtz-<>:/gM_qLswfe5E[_M@w@4娋GؿCׯ@1 tNC 6@n?/ja8JI[~65AO^4*qW44*W8/nDTMSJ!i};K|kʿFі||/n[WiL_ʢ+|yY_Ia󜹖^~4lP/}?׽SsQ-_I-+U~]>$+K$W7oԆ}lߞ{lD -.2vLݷc)bF}5'Gzj{Yd[lHN=r$bm=Y~HQ[eyKI{ͫ;пm %"WOf[T|~8:b8ۉPJ/؏ZNj1r@ځY\&aG5rj{Zj5wa~l. qkxܛ.mC|둷/aǞݞa ȸ>6 SX>1 음*fӾ ;?:npUǹ5YְWX5lxݗ㒪bx7w/9yGmMCĠsƻܧv=3!b[V?7[#+[k60&xE ˊ0!akBQP6F7aȻ^Xo35̸z[p3;zNX$~SPNjAWXS + a"ڂlU]&-ӄbxKʑ3/kf3vzpQ65H|7 +fB SJM Çnʐ`h- p1:n9C;uz_1ϖ!6^Xx=!ÍlKC6L]LV \&ש 1Emb /f]Yo07@srlvf0dxx~1|؎N7gl ҕjطE_1V5l3{XuFwn91׼fs5guXc3̶*/a=k7|vS!{l7 CKuNHOֵۛC]A\ad4 +AMOi(_8+<ɏca,Il]Ѧ00jl]l;$qۄ]G!8a݁aKVð$g Uf)C),.:MY1'jH%2}lh>)\)\b7KCLm!n^H|ޅ?ȹQl5⁹WO׀A] >O3OU!|qv` SCF4ao֑ UfCd0FwhX;^O=l$aO؉:fg10np:Q3OfBb!@a[~p=dLp3{$Vq}bQz0]G~];#L6\draV5kwO 387>1THLUubXo,@~[H o s1vZh@-+=c3`N׽&$xVCok7Uӊ +F )nmG%[/.6L*\mGxY-:N&wicf1nW+#:6`1R:'vPB9\U$H;1.dLάvry†NJ%axrq1L$#>hb9YfB 3}gu-u(\CHi |+1Q+ +ßz9a/Y;;|Pav*R!7^.Z[)1,8D;T5`1̽*bX-`704\T}ST W}떑<V줺14fFVX IMK\m?*7y11aAkƩx`/V$MX_\yFmj v=1t2~k$h#2)\\7cŲCll>1v+g1tTtlfP?^W+f`c[sV +Co' r sb>Ģz@zDT:TZ`k!;W[LW[Lb+jIDo<2X0q-&1' 'V5z``='&1|jIҏŊW{Lbzu$GQ2Z *2CpTA遱b'׋KgŊI [Ӽcvc +YV{Lb hFXĐc$l=&!Q}#ᅻߗqfDľb/b#ia$ƣ폽jI =HE]m1 +NtWٷŊI Q+ ĪEyؿo=f9 +P&cBSP08]`ewWXk%6}XwXnbb؁U/V̾eqe.<\`H + Gd b$(WLbS]m2{>A*[K&!r+?1ӌCVY`ϬXe>XX1a=&1^A[-)5WKfb ދ'ff Y13ɠ+^ZT?lwd,BbfZ i:Yaz>PHv::i;``;j$71VLgkM=f'o$t;ݚ{W ++ OgQ +ՒIbg,[LL 6β&j$Txd#)wvJBjI&g9VN&mFIl_,kC\)O i,MMy@rnz(>;C]@X`z`)/X`Kܻwx߭m4g +ss{1aݱ䁹2XȼJdqi<0[N` ]fv/- ^ؽ?0,;qX`H8 +'y o؝=0O-+ [@w6c>[`՜e\vvvg %,{w+ib#{svн{`nkn˲Ys[vo}ؽe~`n-̕#VQhU.f<](Y`w偹9 hÛW (ӗ]z`̵j̕uO, VՂ髆 6.JtD]K}`X|/Ƽk]C_`5{;ZaW'̝,,Db'}& +Òi}sΓ}νݪs}t">0wSζX0)OW}*iO}z0ǭ\`7's\8 l-M9}@n1jE]@7w=W;^`7o~y C/Gzݼv/_.Zrlv͞`unYu,`u1,a]̺-7i,べv,e\;^):sѳN:y:!Ϊ:ȵo>~: }+s}x&gFz\؜_FöCE ˯zg3n3^dԿk!H<0I;8NGI!}?c%찿)gۤ+ImRI|R%|3Y]_*H=tvH*KQ:N ;4B-E֟ +İkLMk͗zuR3vSWw@|^d.u0S`g"M,G4Xɲ}g쳦!_gđ6g]1\?54FNN\9U +&Q]:U6K!ts Ix +Ě)hV|aE:ېMp $(W"e íl=4J'8@I=kN)kN߀j{UKE Y4J@%>^Xyt!j/JA>^(s +^gv a} +!jP,Ht-Qԫ A^FTGU3oB(ϨqX  v֠B[QSĞ5RVMMW1.dge-}I;AъB&* # ł~ v ۨEpll.a3\ u_ʒ<OǠ*q);kV#c*fa +IT8ICIm!aYv\.h1􇄤FI&hH W Ոs?56ԛ e׬O shm:xwtDic)^ocyCK3ʁ-ZJ]W*ܨ$kÍ:2t>t NW7)RTaDyf]nq}?əGGf4oCDZR ꒀO6D)7R7u ZdJyk`Üot4iPܸrJ,(ud`dvRY -%DIFruH )/-e)i='n7qnüF}VHp. +l,!AEYt%v)ϒЂpRݸLV6ۍITI!w3蝛e][L#(v?|lhn0L{܏º4QrAXxhԔaԱf>՛!! AA-: *0k3SO$Pn״&ot޹k&}mM-,60Zfnb=MNX֊5Ib3\F8wkX&HNL.+$ +0k:$;whHCDubAeKPj'.kމ^O(O b-=1 +NՆJP'.U|O& ׬O̙~bQ[1db2 䜁!Qy$:$k{HK?K}tI YEe +jѕyȠ$9+& AIU{s4Ϯ0~Ry +b&Ĵξfo B@#׌䍦dUA?0af/0ou`ۮLt !=5[1$J*ѝŇa]Ml egL3{1 +6fbF $ -wL ^/7#Vt{ J7MIC^ˆ[7zCľ6;ܐk;ĐUճ۾rdC݅\.KQ>N3g#"bear*:D#b[>ޯjXtf%ۀ+Q$vS,A].K銘a!h* Z.OɑKcIü1aE݆Jp#f;;W38Cbc% )1+$taEh]4M=)gWe/tv0ʮ&}㕁Ee=UN|Zaa0BVr~ <+egF'#1VN-) m׉ D}G)u$% +uWN;Iacj꺍f=!d,'U5hBK%rtrexaTEGj~S8bX$eNSuX00B^_U? +T}!-vLîum" ھʃk>ºvQnVUcnXAXC$?慩~]L_m-<&~a/PFin˯[v/O +9 =%O>.F%Si]/7Zy`C\Vz{M+1VhE-vLP+_aJLYIF4K+Rw;,ҕ"|1:1weL.;\)JwڈבmErGq$`^SQۮwiɂWە}=#iۗh \'ل6I};YmGɆ<]bYX.@DAbO޶8 A ~ k-T1/@bXlĠ]o!a^\kuЀ{ 7,5{unIob0:Riͦ@uTbFLƆ) O6^Fc`[uwa^ҴjD :ڕؑ1/o_v5y9~&Fw%w2֋SSUU/ YA;kN*߶ 5yK9G׈0;@m^v'ۅGMČl?6ؾH=~㬱'9Lo/a#K{"!U&-4< ֯y ۪iD b +'L.a1^'Bެю,َ֭m BB!EaU̦y'ݪ1|x͘AԅXOUVwL!vMĠ+3h!Fky]q{Y.] +j }daDK-X΀{b* +BlC$bxn +b!A2~ſq#ܱP)D,'d{Nxғl bxcc ;kCi?1Hqh0I%{b +"bϳa3kJ1% +ð^tJ ˂Fc<1{(, #1ZۨA(_*I <[֋aKsp\}%a;O bٽnJ~L$9v,j- 0Eu"1(j{AH护A\qV܁SIbq>n =A0n{Wvу5مs@@& nRWEB(k@l]+BbvhXK ;r*䮜oAܼ f}K.Ky{`T)vV~A`AkƱ1уq óRuXoZv6aM S#;%Aڰ*\KڌAUCT-gq<{j;G"a19vOLxv#Jo"NqbׅL=9h3EJM |b@rPf4ED(w{nٍ}'7wO$vs )[Ns֎ N> ICʁ9 3jP3C]bQ.B O1nuIG +a.LSԠ24( 7 i*~3H5-SW fˎaɺS' .1\^;c D 2I PoD031fpTDՐEL #Ó#ڮy^}xAK}5 f/`mnfsLCXy"bo^xAY|;d&т &K|470=xA!t|x^{[qhAx8W0D R o jƶ;;L%&Z Cފ,NiAҩ0iA(// +2Q#[[=+ xVn0 +c,C̱w-ȎaՁq][hA0,O s bDf $ +{NZ &:,4ç1ƔkWIe\ pzdfP/yw1ʷUY`jȴ|o zZCxaIYj{ÖX{%4}JaVi9SgF,,#O bKnR.0%D&58BZڞYMȱc,Y I=r]0 +4v&ĸIVW^@J!ō=b X!e{:Kmliq F4+16)ɕȂÚb}@bkv,VPx*>!Z/y7[`D0wgqz+<<~ +4KlX%Y(Ĩ//MY!ٱ9y* +gٞZrɈfQdŝ&%N|OlN$]${s4!m9O̞tS\Au.aH%smZ?QP" si,0E%PQ6Ư0&B6Qi[)[@sDkSE p&?! QMؚF^;Bfb+/0bK S61i[\ܸ]`4Rc +j)SXc[?: 7۶)SŝX\+iNƫF.,!.i1SlŃÚ߷'!iB6QnEuՓ%1. ƫ}`'AvHX1V? ԮO?y=fwawo]'pkc/_8=ej 잢 Sۈ ̅vvBCc4s!vݡy]`qcv/<-X ^ؽ@>0.0,}W-3v' N8ؕ< ,;-Z`w:\m1+ ?z-.;\`wr\Rdx!ލ\}{<_a䁹v@ 8=0Z`ww ؽ\`>tv{ؽ_~`nH,r5v:]#y`+2 <0WZ`whvWp-KF{8svW]{`bJ+U6]]`w%u|vݕvW|/¼svW]A`+̝,da'̝d,d''̝,f'<̝ -Di'QTNixՌd{'O(KqبNj E'sudDSC/Rs0H;?nf¹#%w%3WRrZ4O}IYݻ3RV^CYB|\;Xb^=>/uL3S_Mᰙ&3jic6uOlLx3­^"Nݡʯsgޕ1=wvk3bH}F@3CFc@]^.,Ƀ*eG T-4"eҷya* \OKR.q&1| ?̓j ^8%ب0+B_3jm:ې = wxkh +mAYMt#ՏDlm㻐2ЭSټ6160 ya#QJ|FKo;|%_dhWqr ]nPq<XU8}S]No)ϩVsa~?.ݴ >1O Y7ˬ7N3u +m{b70A0&5)$[f8Q^zM=Q|mm/h3- Q+X#U5&(70M'AwZ.Q/AlFb+ nרAlG3=hvC\!;"XEryEIdMWLP2IQMRˌ'%͢kM!Vt?ʭTfW>Ky$M>.ƒ r b֦>]t Q; [}Jpj$vaNtYDib("2H"H%;Us"FD a)"iǷxY#b.D9$:IQ29/Ӳm"垨0 ][(E jZ"nTJT6㸗ݠELWnwыgzdE-VlLDq(huY5"n[Xu_41NgbGF!2+̈IZ>#TÎia^hnIl3F qՎ*||bv݌sRY2ޟn1;1]֪N1ey=B |nGhh0%!*2Y18H,Q؎T8vv!Qep7);nH57ætةGBXFr">!,T&e6Y)e%!K-d%x$4 ]$Yyd; X(} +5zȣB(aESo>`T$% }W2MVIeI +^X$kVN%FW 3{ Jޞ]Ae99¥ _(&K +ZyHzZ墇ĜuՇv5L΅Yc1gm^bTojvpR{/ +Č/B9쩣{)Ch:'ti;D +=}SE tJP9a: z0Fzm;2{40VhU.`2bsMMHߩ{{(t hxaO*(Yg)0A+ 6 0?'c ѪO i؊F6 GL?'ؽ !/hc>} ~b ϛd-d lE9<>̨}!&_4=VNfIeyN%$ւ9%2xՓ_/_P nk2:u7&qZ_wn?_Mƍq1_6\4㶛Vm(xz%pQ9GCo0pѳ_EɆXLn;oE]xޑ_  ;XlTy~9.j +"l|lL)JކKO}K.).jPtY&WjU<`Gprr;;ӊK>&4|l~YF ~MNJ&IM~>AG){wnVZi}Т^% )6eU iHiV.,ݿ+)V5`i^?kfm4[r(ŅZPjR +G寴 ie4Ű_WÈb25[QfexO˾% fCiXo 75-9Ľ!bH9x!2^*!e#veSgˮ^3Db!2K{BFzK|^G!%rM0qiuY +7ECsԉUs=! Lqӹ!~B؄͋R&|RǼ15Kӫk- +dnLM3ܜ Ҽ3)d$Vյ0v^eaJ ӷo)s= + +kmFDy;Doﻰ",>T0!YT6.c b\iLAĸZBMd#Q2SP!yPET(V!aDNG2P|aj3> z H!h2!{( +} q`F)1 :`H)yNe>Z_ 2C,n̝9xʊ4,H&Rɘ}*&q0 OF0WM)-njQlZrf ؗ2e2Dn"Ld_ XbݾnM6԰nJc ʲurڳDFN潼=<aW9̏l #p`j sFphVЭ"FU^xB7#{(fj}.01KfF,}jnles"3TE?L.OࢩF_~:т,p .S9m3 N4?6S-2 [,XB& .\*M=lOx-X]H-ב;g>1ܶ]EfׂWy 6ʹ)oсK#p]Ɂkq%ݑӨ6f>yvWjbyE'.5w*6ypQ:P,XтӍBHّтxɂ &tEb,Zpq߶.-%Ej *-0Ewb O}r? ]]*iyWWઌ:$тwu ^nYf;Z<W" 77 eof3Z' .CW}+|NtNanjXAc>MyE]|ocHޭF7کpbƎTh %ltbbĈrYEY +w"{&<1,>R U۰Nuqj}#ĸ9DЀ bBƟS1Uİr_q34Xś3qs-@!`чR!G#b!;Kjp":Ϛ!FokZ"h ^Ď=vk'eN՜_sSn*|3w\Ȯ@Ghcn"ېvau>bB_ 1m BF m:}E eR:wS6G%wS$nߚ鱼N,Q%db)xJ 6b*F-u!FW1ca6ţqw +lWI5 Vw78Ivk(aذ6v)˶ +46EW*/ + _Č$=}7F/.r)n.t;`ƾt.̾vsAB{-߮Qް<%vZfP G8$?'bK|ao+z@vb a1vY Dq`؝E-bm$ B6}W f ́XaۻZ,]Z}jvN +h zA'̨bWgNaX\`_ψ`C(F`z%AځKBqψ0:C0vF2dYT&`)F% +DU*d}8*XmҊG>k׀ 0fxWh!AahCVo.7sim]lZD6zȨnѯ-?`h"+P6[T^lTi eװ&vA}D 0W/E;205N`F}ޒ)hȮSQ?EVKEmM4eW 0c zIuH +j-:"y*/2U oVixTDTQqF⥿7lPV\^+o#+\fY8x)ȗն{tda۷;Ȱ|'4zD6)g{d\0ƈ.م(FY!LY,Hd K#ya?$c~rA;QrLVnł]\<_ = obw$9>[tMP~TKT ΎœdkR*{QP7+RA66K}hqpqn/ M!E,hyrAJlRƢ0Ѓ9;eS 8C9't:c;j_٫t>6x]<{ +o)Y-ϱ&Euñ~o謭RTsm8 hё M3 E{NL\kl{Q{W :4~ {Ă[s7%=D yJ BY[ }bA8u2ƂȮ1ptc6c< :q*=$FcAeuDJJz ǘ +"cJL?Xs)32RA6mkE +:Jl9ӞRAvӓ_1q(T6mj1oW SAӾ.}Lٕ}W*Ȇ;yb*£ +ؕ +?M|+֍  =vV=v?v~6T&6= )0$D\w)dy0{4ؔ ŽLcym!јJbA}nv< +ƺ(xcAbTUB=DV0O;}\XKelT7AlL @="U@ +mm#;BAX40 P QjBAdPTPyfPؽcvA\{Oa)tYGŖ('9v_2|cEz2A`e3AD +)d륳SB0[l"A`zX1*tw0[齆D^Gΐf{U"73>&2"Aտ=B$Lf "k**ޫ"Aֿg%5dvٴg|2A:3L^+¥aLQt{c*u۩]L~n^납 ;nC*t~T.$S*m{+ĂF127vxDv +5X?` g)WcfصeXF>!ڹ?WÖ}2==~nMrz#ÚTxuQb+$v-ޅb͛^όw=$TG 14((#yt~.G5whHQTpAN|lV4z+g3GE#IÃLW|D|nVBMbBqV@ƹѾ& _f!b^1leC>ΖZ3LZzm0{pY?ک 3B^2n]} ww*]$ #Qw]=+1ǭ.[dd=Ivքֿ&lȁ],`ฑG&oCO ~`!CHn$ȺM)ַ&yM(U,n}gaVq ۷d&Y%=v1c|al +bM,vzv ';A7ouj|';S1nړ}{EaWeC2O +ՆC 2j`Fóg d ON8%\ +fԦ*(pq%x,D0~,(pvLO^/, gW \/J/"/q2m62~p +sd xGv7S<${6͢!EJxp?7sQ2q r4>N C\2UXbRCQ%R=nfd=/^А}Ȯ ПSǨӏC`\28pV d]dA Po]ibVUc\ j@bdz[&BfȺw f30[ 2fܿ0E݈+DŽudյ=Yw$r Z\(9A>`LQȮR${?jF0͡H2l2KaJ'b-7ɺT-> =ŎYQ&LWL%{%˜g=ؔt `HNѹӈ#D}`DTo#d఼of5&nZ2tc2I[]3 +Qi2nS5[t~LfAN@P tݯW 8}|1Xd?7W]cdx0{WՃ>X}*cm?8Sj;N1]ص;]'IYM% +誷( `v(D}XJvwIh ]X@:`X)l!zP b)W8zH$c\;lުJ텒'֮%)cU_}%V`g-HY`vP2o*NR00{3>%d`s<^J n@6zq`gmFH}`cc9]EsX=mhCP5di,6kSA jXvWu̡(bJ02y~(D\ c'u)Enj=Q(2k\ +6EBQ1xBc"Ђ}%-OĒ]0%\{@\;c5Qs]1JR TѯWE{U\h +;&;V'}SwIk0u*2:IcaӆK;  EX cո%TR8e +ݱؚ"rŃͣSw,j2t^$%ݱ +;V&U=`73ݱ +@ʺc{DXfo9AFݱo؏XXd S݅X',UVݱNLT;9 +ͦX؀vu9cbw[L-8:=?;XB{B7Imw;$jVքquR.nXxg`cM~jca8@1:!y?Cu~;0V>%Fc WQÄX0ܺ{ͱ0%ieLVAW ,bs,p^)Ml24Mq܋Ƶ9Lͱh9=~<5Ǣ{fǿ9oG ڔ1789XfꍅM~/>X0;זLͱomʟSs,߽ ?5^g5]=̝kk,lj5څX|{ 7H6{cٔ Sߴ7VNOXJ.K/ޓbO~7 TU<Ǣ7}j 7kUGJo ᜼7zcUvSsk=X|$*7wzp2zxsֽ;Óݱnswj`>[mX8]"S{,LicqjS!Xx--='-=ڐՑ~S,|~c:]h1I`c{,4Oݨ=E 4h+߬DO޳QT .ó7Q'zR*>;[MYy}W*z&w\E*HI>.ԫ+V5[֥W;^?wĢW*h11r0ZlA[Grb,ZsX]m/-#ȥhE?wc[]8Mpٞj$ąSGw!z@7;qԳ.<Yt,#6Z'5sƧ^4:c߮CMMx;Q4H8+ \-G5yp|`\<{ 豱9n~UT*6IOx#`t"XF]F9I6`Mz +=6 +WShe 'C,$6I~LMd0Ͼ~$Rrle} N͏u ;ÃA]U(/4dD,@ϯ8رOYFGX'thc8ݑ6'k։+ƞwX'z3?։֊&c,Fz\":YZPX' حx5A''A_{he [bAbeiڮ ٧ުAb,EZPhc-{<6Ⱥp Q[c!U#fc<Ë}"I XZd"_Y>E7Ȳ[Ԏ.,bExЅ6 +H[d]9&2ȺzGօHI/=0$|:#(PreÅ] ;N|qf (Y7μ:eY8~b,ԴNe-}7=ƿ_]s'i'Bjn\{՛jwl$C2sF!ƔX s,~CVqz3]A⁈Х:<ϗj>5XoaLM*la|^L&BӪh ~Si1_ܺZf[MMI b32X ';PX#̚];%XwJ/#q|~g?aT +T ;E>a/KȒ1)<ؐ1/LD8?~-ٷp~ bwogcs#wtqa؅y_.Q +24&~ǺmaϷ]rl\10 VOs6atcaXia}XYKVA/l\ CHe%a({(;auIV0>l v(c°Y 2w=͖/aB{@ϪA kO3xr҄Ֆ_^f _L,gUp~Hɀ2 ZA}rzO؋4 C|S;77cnmo?a)Ao˺/ $  ?M#)s"uI" +K kƚh9A'flyaXdy&a/ {pf†l]κ1L1Ĕd=cWnΓ3-4!k_oYJv)'z Cu%7a=5y.ܶ¨YVaݶa=ؘfVp-gcV5cEms{C5Mثz7 eK Sj) k u欌H c%g qɯ\= *˞zET `pX۩SЄH>1DPյI˦AlUX{'6mɺ0x|Ǧw[YV +c x)y63߃-d#qUO­ M3QN|X`=/OwVۉ,^uK*r'Ğ +x{4lǔdư?Am +ʱ٧8cJZ-aOSW, K,M3t&e}.Ӽ"D{{(JX7f/ g%$醍6cw(@Uez +6qo|AcM|xe_-:S%_ȳ!l3M5_nȘchM&ḽ-vQ‚VK㞫Gl&```Ì +D)| `x_.5NQ$?y flJ$=Ǟ. +N!tK69Kz CvS0{+0v%Sph0v{e;az@Yef+рDE-N*_ +m@BO̠, [Љ!ۄtzZ=y4gh@1c(BmٍM${6cja'%QTS&>|G4^O(/oM=%#[ ^異AÒ} ٶya'LLg(sϘ+3;Q;zzM^m[({w=c#yFo I F8G ልZ[5rA0-0Q* EʢƢ\ɏ! z<g-߆5% z׋faXhq[9y hDEzna]-Rz5a6vecP~t=c6MK.eAed{'R[ڠrQ?aY&arL>{n kMδ8ZKYy@Wk`@Q}G.י=g!j)v9-B$R30.Iͻ&Ttfa6 6`HKr9aMPM2vju\mf fyHXJ=@|a(, kғ| P*A.e #I&y}.N (_3x%W$YP |t)؋c$]*Oi OQr49XmT' -nוK$/J 7kv*)qa®͛%Kfm륚CKPr$REӌ݄$^]`Eod#ql&ZYsIl.لd8k' +U0~$^ +Vw`m@b[V?gɳ'RFAQd+L$^ +&d=yK⥨@ތ%yFCO {PAmny`yHλOـ"PʛlB?ٓ-wi}(k2yBK⺅a] $sUre뇓9w+TQ%X,ДC]*NQvê&o;VgfX[Gw(Ʒ5McU-FS[>sBfߕ־ WFpEaO]/l,nJ goQ lՑ>$> Өmh >D`/&d`X+M=tXX-lx%̽({Cgq u6ӽaΐ>H(ܑ_67wD sm_qpǃ94U|y0.LX.l&򊇌,iO~nz'O-[!$K%`-y B&a}0[8<_\<_LX[%˻Ń C]t} *4a aKNW/Oy kqm=|E#i'RƝ1%_6V^ 6l$o$>Ֆ s N F( eo%o-q˚Y{76l&LɃ7(Yذ0l>i% gԔ.l؀MX߸Mlqۑ}'~JX_NXߗ^w2vJBg̷Ѱwn?%',L +$k[x#a%y0謅5+h֎v$-'I 'P  ˈgIYۂx.3h*~ +0aW~Z3A8e8a̳%(6a7aޗz9?LH'5'Q/9   < m^z†@´J +&hXHX 9†FŠ)0D6Kca ,l$f$)y, 1tO%d?4KgSH 饙)TLX K%gl'.IX-l%^=3;_ Q\8KX% uٕba +Wl AŅ1fa C0&C٘\ؐL=S+c=]sw2Rօ q؄{A& ۚ1M=L"_/NX%'lw/a=>^'+$ )oV3'6fY~I) ]6 =c67yCH?a=ܟ0[†b"ⅅ׌Z2]92F\Ic% +չb%aeAC}Lʥ; 8 x (gKcQVͦG8VE%WS%Wa-[R^^-,ajr<Ǫ p &껅 U{ C% U  !ffi +b*ȄɄ! {ZfBzgzeTQ땨  ck0&.+MPW&W'W/l>NkjH'Ȟ~  C}PqV^߾0'KPN^?3WvMX/OX,l $ z{BºE!a{nυ`mHX=$[6%֭ 6т u[G``ńu;H[=2-& ֔)Г0HZ6]֥0 Tų(IX$l lK +'aMnY>jǗnJX7-l0%5y4t7Ro * +uS{FQ4.JXZ-H:,ʟ5Z QUټ-a] [gK 7 2uyZºt-a]ֶ0IPڔ.KX-l%`xw y 벽uI_º0a !LX&K&W$ѱf\tL\ Ʌ ɄAYqƺra!3A]09jf3a].] G< zӅI\L5a]ºAޚ0H_$X:b4(f̴ Bۄun ޭI4{6~zlAF.1NX/l&'˖% ܹ& NXIlP'˫֥ d u9wº ږh'їm̖-{"{&o +lGw[ZX* P 1H6] :`d6|n|W ;o хX]G,O&+f7nրU,Y9Fl9S%/krX:Cx20d ݍ.[/%Im=6 J̮t^o&}bX_ iF0S qھ8V +a&Og.>]FuRje`cnEgjFC8qdkꛯE5\=iBtK1s= W?ުdGFM=d7v}hɣ4[>2Z;_[`Vjo=;ukYԝy96}N+=MjXS8F{vl|0a7f bv{^Eā֭ô)`x;`7M?2jԯԮ?בo̮/1Nfyٚn î灩ҋ0dȖd('+d1;mq6{aiWTKg?N=x:c۞2Pܭή=^ɋg5sOsߨJ:'`/&3wv{FkGc#wnBĮ IRwLu[cO]ܷ;EBJ]ndToS EŘ&ЃY<v(ΫG=Tma`8YZ1By=$ lۃ*2vWzV!>uUOOtv}m*gn3me_]vpg?{qgc~T0JPaAJ8+JXȝ܍l?ۮɅm΁zqm8̷aKHC ,|_89Uhcb5L 0\nޝʣ3B͙Wlz*v( thp5~ŁDlSќ +oX~ i׃fl'q~9Ty?V5&l`6Pqu鍷r׃P)$hK*9b0n{EGNvE# Yu4Ϊl)`TXV:+,0O"ŦbgsbF*lM'/f`gF:F*px W `p!4{k86|FR^3L8yّ(p՜صHf#2O]).(*GP1{ hn!4Y:*3ΚN8 O7]ihө؍Ģ=}GWJ$ΝmrUp[TZzrzI<Q˙}7kم T`V1ZgPa^מи1*ZTW>i 7?ɿ:Iv{wc6;\V6J`GBhǹ41 Lz!rH Xq7p߀!ZSy"b;vylUsj?"8W}m~\ /Rei?{8dID/&I|AU}.[]񌫸xƫ]S@iL^Z7 Tƛ]b@3k=XCtjFUuU#G.Kp n1o6#f{clv)&.|o +V_m-x{lf꺅&m&a1XAmp}߾6|B^4#wvw.wf +O_i}~\ zC{/X+Ke"[Qgl0JfYi~}?B緮*Lw>ʟV=5I rٸww9ht4J*Njfiѽ6 Q@žqHgz!Z7ciGdvr;&y>?8mX5 ̆*M;^]`&e6Ww0qرmJA)֬o-d`P~bR`;߷]G/If ]sP +'Pa*miݣ2'XAG Oy]lür^7&XlrNN +}pٍr9*JAÒ=}vܾ{(X+;{oms?kND*un]ÉAỦ=[W3v}udpwQ0Њxl'?m^w_`m"n\<'+NUOmntT9l +:?c.:gv?\گ}86n6#dCg|qnaF>Ra5aAؕsGQȦraZ61lFqk?D+/=:ZbiB~*=`DwB&g检 n>(8)¤nl_;4tfS𜊬=zy'0 +9I.d {Ah냀4˴ oȮq6Y;Bnq}h F&w~"Nd-tʼn1QM5ٔ`6V) p|gbXuvuPѪ6$臮B 5b{"y- ن =O*::!c5K=Aq o}ԻMs+ZJ0Cfc}(0} /vRdݮ?::ȖSy=x卌בЩj&C:Y8>ZٟH˓p: V6U┬ vA13~b{Uu +!;cLw!v[o^\Ϧq=V8W?L{)qƪ7`>۫j|wQ)pweÎ>M3-D_)/ Ċ]UT 7En6=rl˟\՜-zqU?ou\0h%G頭ڂM -Ƴ*tu6D%c:.S:Ȟ<@M vAK*mLlӘ:_!$CDLpzRi3m4l$e)cϘk60l/aA|!1VhAd6 Q@32{LQN߾`ڨ[ƀ ZB؛f@v`؅e9! 80h}DŽF<ƄxgHէ:ϖO9_%vT)Y(6$ξEg"Tu'd+CW!>Dm3B`xƌJxVa.8_%BBl;wāֆה)#Pr'SHEgdAL!!ggK6Y aԓ~7BB/d($d)v+zb_"OeCB`jw-s‘Hw3dl !x;ϓaAv0!DKQs)!d*_SDu2KoN!#kuQb폏ý!2 !GdJDVm1!s [?z^laÞP@"Y) Ĺ8YbkG:b qݍ` +=z}( t <~r1 v$dXEv",[( D6tJ! tBKƀ>sՉd[?ʘʦ>]E !Vʅ'b-sy1"fF(!DAWN%DX}C@̆) @JJ{$ |O(!B#} ;9o6A3p |PafH~Ly/K¡=0L[.фx0Bglm^=ԒI:ߩ^XàbD`sP25_ٓ@_g@.E#k}0EÁ%R׭klB`=-r +!1"׭|$ؖ.u {L5;AG-l 90h!Ύ`c[D\U /](\3ăʔS5Qg eϭr)Q%xWdvq9A&mhAޘr#;poc>D4ܽ)DYǏ7O{_Z9y1֘0lo`1!SƄv]֮E1!勤-1!VBZB`>kcBHaq6.4*kyB+nQA+o~!>Y0wAhPӣ< 5}irLn>1T aAct,7 ^%~*SE@SAZF_E~*B`P[яJ@) T';]m%=!zt$^%.|I2B V,d+wT2B8+U! rz٬={D;BBf2WkB(Jd=B]n9%`D>bI0!ɄE+xHƄ~0Xz/"fOs 觵4}H@p̶n85?JG;%' ]{t+*_HE5\cFz[lmt '!7_cFg| )"4"˜/E8ǶjҞ/"d ')#]m֣~b2BۺYgkcp(ٯ:wG2^b61R62ތ);G}UQE6L!f04`="jy8\Pi>0Jz)Oڗ9}U?̪3V D|2wWG90)ޗe .ۢP{6?A|ŗbx*SՋqEQT=|f^Ko + +x$Uk^X =d^q e>{>j-Eғj⢩Y` !0w1)o=Xi;Dܜş{ƭ?n:ayEC#B`6i{~`.{*0ӼuzAWqKAjl~NH1]ȗwG2iyh?*{BfU^%`o=WMp,[@x=zGB7c ;{Bۣ_zx<{ȡ'^Fmry=] 4z :2bFwI)`y~^O !*)X>>oB,S>g){BRQ%Zp>V$T • + B;`}oQC6'MuyxPa"[O vU"W~ ! +J!ފxĝ_oB,sţ7b +_<ۛP{mQV:R} B0ccKOQlq?A$a_ +n%ӷ `B% ?C!Rlwƥn!0GaG$BFhX2oES2B0jpG0i?ˆ?+ q-󁎧?Ҷ )ϖKk(f:Ac_^~Enț_cײ£;ԉ)#D/w2B!*:8bs3\C9\-߮0/YzDLfKS!\M#ҩЁL"=a%=wOX!#ɘB j)-D*j0L+ep[}:dzGf|Y;rpL+"CBw?-c,9`{\gej >[1G}}laMV>9lŶ +n{γ0?6t`"lɋxЅuw.̿p } ;`@ni 2[\4 b5Y !.W˺l=V:XB7/SNE?ej 1" +ֆK??g:87W6$vyk c =gې6DV7ۆ~mHEې͟7|FېXE =lZ0ۆz)؆lUYFېmH׳6$mH9TmCddlCb8ۆJ!چ\{ UDې8m ^j7ۆUr UmEې:϶!2>~VېXVGې6$l66DOmHL'ې$"DbgVcmHHmKgېu(CmCb-mC`w;[!v6mCbZ6؆t;ۆ6FېX݈!lP6D{Wn.ԛD$އe 8J zɠ"ا";kю} uZ κ!0Ģ +!EQ7DtGYEP"ʿQ7D}.gӒQ7ߏṆnsܨ"k߬"{oDSɋ!.!2[ʼuCd׈tC@w?L!2%e!=nm9r "7M'g=w]A7DQ7DuC`bK}tCd᪇""OL'TQ7tU!r"{uC`v4I j1醈E&a۽An"[Q7DUQ7Vg zn = 2p:"^ɨ"\fŚy7D^|7DFh$ȼ` Q \?T}Cdv 1T2}C`^}Cd6!RI\ Oon&9}CD7i ث#:ľ; on۷f!=_on-oy'o̾"7ƪ>o"ov;K [)o"k yud7Dl}Cd*|C R~3ug }U7DYHoٛi a?K;7D7D({":0g8p2 "{06 +=Cd/&>G|%GQr&QF]gYoMC`g+!ݕQ8D? £pSC/(0ˬC` Fucl*C@OϦFYFvf!,:P‰MrQ8Dwp kEY/!C2,"2A8&("mQ8v7 $!0{U!2Y8~fDXϡ ")Q8aqLٜlS8Dm8dv>>`ۄq Hq`"WuH4Vu۔ +q[ q~Cd"C`ul:XvqL Z~q̾K5\8Dֳ8b8tp`"Ovg4R`^޿8DS !0J%8f~{]3ȼ l{&gbM !Kq)#C@[!^qCعXwC`J<75ȞL4eTqnL !n]h"{ϣ8FE.` +]f5rmr`Q +Dqb"`"qjDא( +r"Ơf]͝C`G7hW|0ٺGj8>q8ƫW8qY!^YC@8C`?`իWqT8tqqh.q8͆NDKzh)shT[C`f!7BBtk4}h;z%ahl8vKC`i[8tm6aHR0&[!0W +bDC`w?n!zv7ZP}{r!9!0FzтrlProR= +f{ÍB9=nUE''!cFPPA]sȱC`-?+ЕzZT&*.**GPC`_߮fyQ9S |rPqIoVHT_Piӂr@Xj'1*@!ՕQ9V1*fr6F8n!/Cӷ5r`6~aT|}mC`*iύ!V]h Z1( +ȣb4*.*+( + + [CƠ9u`C@ 4nlٵ*rQ9T/*dֺDPacQ96(Ղr "751!2+кOA9kP1 uA9ߡ3(ɑ~r]QC`jcB`@T!A9A9dpGM0*Piyr-6ƄQb>EƐMY^–c@9T$=2f鑸kăss7EPAu!0Oo !`Yka99̂speZ[s`ZSc9Zs_C #,!dJr~*mt*uYt=lB,јF琱oC@ʊ!!DRfCgC`:gTa>#|A92?עr T*!ڿ*]Cض狢r̞.CxY~F0+ uQ9T>;OG`}!d*'cL DPaFŒ9?C*xp[_sG;W^tCڹht*pBF ^sk73&K9j\t*-dfEhh ҡձ7V!eWR{taaijߵgătD0H쮰N{-tPM7J.{'H=w<Cvn1te3JpLpsV9*BBpҡsyXwaAǕ:aQLu!kۊoX8Y 4hr*O:]?J`:/`릟A:f>I:p(t\>Hsk t{ˮC0;C@uW7I A`S  +St|{ ҡJrA: n !0[.6C0!%rb>Wu5rr* 2)lN+ ʡD<Cvl9)je T/!F .9TaAz[CE6UCaeyƈɛmpUTAؠ&h9TΡ4/{6֝C˶_sEߟxC;`U whdwhfs}C3CbR zf61٘*ِ*(kIhX0l4l4lLlL9++Xp_lllhasU>4>41U4>4rר٘*٨"붏+Z+rgMh CCB#?|hfchf|hf|H=GFF3Ђ>PDA=$wzhfzhfCb٨٨.DTFX FT& ꡙꡕ}!٠*r{Q=4A=$$Q=4Q=4kڨ٨r扏٨oVl 9TCdBTlP }fQ=4rUVTlP AK,Ϙ)r !G Ě0f6)CBC+EbH3z5Ul br}ңxHLxHl{.9vxhfcșw!ޚ!0ĺ,,t;5JpltyoߨGT9+M!4z"GvyHyHF]y٦<$yl4-ACb!gMCb9!g^Cb)]4ƊhM!GMCbECb{Qÿ(<CdGTFʢfXECμUwAFʇy(+.rL{HUQ=$Nz'7zY$!VmCbRP ].!&_!]CBp4З)"UQ=$09nBCbH<ĺQ! +߬kf}6Q=Ǝ~lTUזG.WXkBCbǣiDijH SjR{H c1RDO{H$F^FI?h!]4yt~<$v1o0 F4m:!0yHŞyLs o65x4!}!1Tː4Ě4=r !nr !KY<$֤Q;$֚D1;$ƪ"^;D^;=4C"lICd_,hj}3(jĚ$jD`#zv^Au'\CdG[3ȶ^BC`՞PE*!ڰEݺ`EX+!1!d!M(J6EюGoV8D`"ɣqâpj ԣp,~lCd뤣o%cҨ"Awj qJy!Ţo%ZDu\>z3zP 7DfWD~pPpbozol^CdCd!(lpqGN/I$K|s}!9${ 3Jq!25;!>[o^ꆈ.κ!2!snGßo7!"OϺ!2̺!ny!EGƺ>~F%w¤":2:ȶn} !0 !2̺!2'*ɨ"m;&VuCdw 6DD{`"=ſ:Heͮ! 2ηقk>gct ukyt h6"wߝ!2OL̮!]CdPJ\Cd.@vmUC`DY5D֊iH04eʗ!o ! !i$>ZDY?ڊ!UC`_"OGn !^=UC`6Rܺih7\4rb"4}qz7K7j4D +cІI]^DC`xDy)z V"`<E4D!MC`ӎia6 5U!0Lw ]>A5D٨liKzj!!0}h ܖYeC`{ueC`goZeC`gpEB g{A5s/\!3FRFF|i-΢jhS[fFƮ ONōQ5D5Bۖpߑ3ghc⮉F5d(Lf}VO;kvԹ` (۵EC^=Gh1Aj 1}(B5{!X)m/My ֺh;!5.,B6c;Wѐ1 i xWCAHV>x5A }RiPK~LC@_36hPpKMCs{hN4Š=jMC%#! 14aCjh_oI +fӐa!MC`{oMC8*}9MCA{?ihc tf6 zYF6ܛi6 zc,lKՐ1 $A5KFІm&!q*㊢1M!:(֏ cF'Q5ejh+א=@^YvPt=p{ +mv m45& eFvk)ϭ7 !</MAl ^~lt vzkur]CFcX]C6_jEF)ODjlpUOh+L ڪl<6ؠDkp Abz]C``]Cdm5Vg! <]C@z%`Au=ۨ??|P ohTC`i)Q5ugC6VlZΠ5mMr5槕 !01P\C2hC7Hs]@4Gl?X"\C`zXp D`C\ŷFw6h#ܨQQʇI5f\!,ښolT eN tBC4 BNj=ڮtP +mLP a[EJ]DC@؃.ՕGC0lQ4D<ٯd6DCM ׇ3+D3viW3fVH6$Dc_`h Sނhv }hC(]h !+Z P~ AhFVDCxx<)&}έk0 ݌^^Q4b~.6LC`I{LCx4^JW![LCxX0 aZ]Ni&J20?Abs%!Lk^j3%[gP ae?y&ndzz80ޝ70oR aij΢Q~bjUSzCjs`x<`UC;5K46|\CX6ܟc3n +x# +[Q6䫩$>kK C+sƁI:?oح\pߌll5ffffsW +of6of6ofjMl53#VHL,of6of6ofjM,t՚qy쿙Yh5Vkbfb3VE>FƶZ +m49ܴ‰ Z7 cZ737de这VkAC[gGN@Q3Q#(o,t՚((kgfgfǙ2QOji3 pf6 +pf67 pf6 +pf6 +pĐ`y,՚(v`gfF3E>ѿI3UK-* QhEֶgbA#xz; +pf6 +pUmJFF[_Zb !EgĂ٣#( b,+1Q3Q7gfGm/F8'k[^n.73.BW3OGRffF6W }9WpE3o7bSFLGͳfe_*#fF-ƙDإmqK3rM[U߈Ú{%oze^8-#{Wq~;<7b#jƸ~F>q#m7b93oĞ[i#FoߐUfYU;kFmE3Ȉ{smΘvqt+7oD|7Bh4oJ#E ٳ= +DFEyF^߈kGftffXQ#o]s! +pZ> +pZ(i]SLvz(k(cb7 pg_A#&{ҳGlE݂<ًks]Hq7 pĞz3 +p1fyo(!&Ηt9MO$Ff ٌI֝6 +pu7 pZ> +pz~i8dfY#vz8 +p߶-q[B#eQ) #L"Uqn9n?$>6arREO_Gٙ8bL"eVb+QUp@ p5:UI+2 Qvd8٧(5J {{bQ6 p Fa2|!k 6rF&c}gc7̎=&rGٕ({?pj`Xeff F= +(>Cp}ǡ(Ҷ8 ز$8&b9hq8H8ʠΩNv<ep8p[f/WE2<5eDDpe +kfڶ8Ɓ209(Oϥ8^f8ad{<wQ2a,^fK +({y,8q&8^Bflpp#!8@/13A08NSU:l08&pMm -a/0d;lLatav}sfZ[F$Fq97d2+3tA~~f1lfqXf8fq90G:,>\*tٵ<pp_fpa=qpH_7AEI-8f 8f8= Fv8F8،z8fTyE`[fI>tY|EuY|_y&9"JvmpŐ&O4>aGAYpg,F;ilz0#Qhp=cR2cs3NA pk0'P;lN#I&@SFft=5c0B7fa`;EIK:+kaK4Y\3UgfeAr8:;|y av>;lAa}@ ApH 0T8f8 -:b[f/b}_3J + S +0^0+ ;悐8̞^`Nchr3)p]Cfu]=4A7 + LjDpJ=f?x sf\Vi* 0;AbEap/bYkN#[D&D>avdk:) ہ + ?n h^di,SpPF*,.$Y_2W'U9eAv$8MGVpA%8i$iidS= rpT84rd'cuA >d\Qo 8Dѕb 8vV3`+ Ng80نN#L55J v +IձGT5sYV1w Av5='p}@>bN Jvs[޵wi4ρN,ٝxQr} dhsxel+~SvٙCiimx'p T8U=>83~\7p^92VԹ81A\ dQ@N2͒!'pipߠ8< dl,tGhix{d3t'p8{@tpַUayMs9Jpd[d=12dO:SKR 8xIԵd'k{Ւ d@R]U* ! 8Fi[J 8{l9V@ij㮟sC'paFS$'pqF@5iN v:㜏m%p_'pP0+ZM- +BmN`aP(J 8ZX"J @n::DzjU2! Nd,#p))4ٻ+_'Zt@]8$ d(eӕ ^"F ?3o[ ;Z2Vy|gJ]PD`YrDo 8]% թeAf8(iGw*â" ]ƴ8$ķAk\IkA)R~[  =N`9 _D-;? A m2FDB.l+:ȴ2S38Wk(+ Fp L]0{\g58xx%[XA-NDߗ8sD|$sP:|%'p003N`#09N]:Nh}%p"^2:J;ŨꩥAhzx:'p7I#pimvZs Mײ)=LWޡ )2{QPA]2AO Ôm1p㏚f Ψ5٥m1p??Oi6YWA!0U֨uJsTP-j ;ړ#2 hsk dBN4 Dn++x8v6Ax@\^5peqhft"ޡo5p0AzTY>@6YACHLeQZx)A8H( dw3pH`ޓf w>/P'c Y`޹BixkZG?WV*i ߲Gϥ 8Ⱦ\!80-d="8ȧˆ{ ߯!8P2b3U wHz+AC7}* 7 8v7Yyo~LQdG +Œoz.޶Q΋6Y<ѬaZ)NgQm}*ӿLQxܿ,mTiJ'XrgApť# /_)NqJltPxCg +ӵEhɡ!8-t1MCpzG<xFK!81f?N5Ćt4+qEp:v-NpqREWltg(wNșM o,%Cp>+نtKMN-BS[_n ӱ{;ۂcq$+Qz "8XþsnApnt; C/: +endstream +endobj +116 0 obj +121010 +endobj +117 0 obj +[115 0 R] +endobj +118 0 obj +<< + /Resources 119 0 R + /Type /Page + /MediaBox [0 0 394 342] + /CropBox [0 0 394 342] + /BleedBox [0 0 394 342] + /TrimBox [0 0 394 342] + /Parent 120 0 R + /Contents 117 0 R +>> +endobj +121 0 obj +<< + /Type /FontDescriptor + /FontName /EAAAAA+mwa_cmmi10 + /FontBBox [-34 -250 1047 750] + /Flags 33 + /CapHeight 683 + /Ascent 750 + /Descent -250 + /ItalicAngle 0 + /StemV 0 + /MissingWidth 500 + /FontFile2 122 0 R + /CIDSet 123 0 R +>> +endobj +122 0 obj +<< + /Length1 2580 + /Length 124 0 R + /Filter /FlateDecode +>> +stream +xV}L[?w߳108Ϙ~@@ YBȨQH6[EiȢnʹEQ5M[ej7=PUYuRЦڦ-S&lZvàu[];{9{}@ + +<,*B^\+q%2*D̏PPq5DKӞDm6?E:Y8fŸоgMg1_.ʨ&&Hj&Ж0粹0sںZ6 2Y;[l]!E6܀5x.W"| .d`bp` ({ڠ}wK9BeΒbGVh-MxuHS^e[m ]sɽq9TU>=QrQ nlۣykRVU‰g~wB=JO99TPquɶ#0En]'UZ=uo~j'g<h"0Sk7z0X࿴]O+kqOרo>^6wl4% ɦ)?mڊ(w /R08 Яu|n47cL[[y,=9Ɂ< 1s^cV gތ KDcl$x8-'sx*pvT8ɦTv'iYXBu#nFrIdRq<Ѵ`s9F00zl">ߵ dOo,C6@Pޗ];[P]d7xضyQ[c Q .AlolY E +endstream +endobj +124 0 obj +1850 +endobj +123 0 obj +<< /Length 125 0 R /Filter /FlateDecode >> +stream +xk`FN +endstream +endobj +125 0 obj +16 +endobj +126 0 obj +<< + /Type /Font + /Subtype /Type0 + /BaseFont /EAAAAA+mwa_cmmi10 + /Encoding /Identity-H + /ToUnicode 127 0 R + /DescendantFonts [128 0 R] +>> +endobj +128 0 obj +<< /Type /Font +/BaseFont /EAAAAA+mwa_cmmi10 +/CIDToGIDMap /Identity +/Subtype /CIDFontType2 +/CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> +/FontDescriptor 121 0 R +/DW 0 +/W [ 0 [365 943 571 ] ] +>> +endobj +127 0 obj +<< /Length 129 0 R /Filter /FlateDecode >> +stream +x]Pj0 +t'Y,Rȡ[N m琿*cah❼1N~!0h]Qՠ;[M2"u8uxl, >gQ@7H֍pj/!.B=t_Ѿ*'>N'9k@W[5A*$F,eϩo~TQߒI0*mC5ەvM̻9(ep:z +endstream +endobj +129 0 obj +241 +endobj +130 0 obj +<< + /Type /FontDescriptor + /FontName /EAAAAB+mwb_cmsy10 + /FontBBox [11 -215 942 727] + /Flags 33 + /CapHeight 0 + /Ascent 727 + /Descent -215 + /ItalicAngle 0 + /StemV 0 + /MissingWidth 500 + /FontFile2 131 0 R + /CIDSet 132 0 R +>> +endobj +131 0 obj +<< + /Length1 1992 + /Length 133 0 R + /Filter /FlateDecode +>> +stream +xUmle=Ҏ{`3^wLz׭s%["AZC[خueAM/CD%:_r4!HBb  m >s/^:jxiZ |'T~lTvvSdg҆70$\qm#U7s3lxl~b{gUg +l;"9I=g,Q!_^~uK_2 +y'.zWJYN,1qPo~eev2EcQw)8fg33 uk5Uuen(H",͍!UYl3&񆞄Mzmb'LHU3vUYy1VMHi=iD%S˺\> 5'- JnML1DIO&^S|r]O>Rl͹-6Wl0ȹAсQMU%EƉRXɤ0Yk4+R%nH+0EYL2&'kQU􀪜EX􊰨$-p&L"aMXTTao BUrIU̺vua7YKn-&#*ĸ9 Ony}-4h"'\YxkC%B5nń`9U;[ֽq_.|[_ޮٰT]ɚ` +U;͞6c%Z!_FΈghyF'ʌ +hR}Bfp'ޥ.Kd km ѽwBxc[EwqrSaw0/;`l>pJv.BLXG uLr0*`-,`l^sMtFS 4ioh:F֠SO KxzGI;MJ$El-Z (;Iˎ9DHu<&*+qdlU;Aԡ٩L*=-m InEb&+ -R@feVbFј*@gKӇQ]'Igt&?H{U5JQ#TG*;Ixtld> +stream +xk +endstream +endobj +134 0 obj +9 +endobj +135 0 obj +<< + /Type /Font + /Subtype /Type0 + /BaseFont /EAAAAB+mwb_cmsy10 + /Encoding /Identity-H + /ToUnicode 136 0 R + /DescendantFonts [137 0 R] +>> +endobj +137 0 obj +<< /Type /Font +/BaseFont /EAAAAB+mwb_cmsy10 +/CIDToGIDMap /Identity +/Subtype /CIDFontType2 +/CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> +/FontDescriptor 130 0 R +/DW 0 +/W [ 0 [750 776 ] ] +>> +endobj +136 0 obj +<< /Length 138 0 R /Filter /FlateDecode >> +stream +x]Pj0+l CԒX}q z0h[lE^X gBpjV& +:G:g} +endstream +endobj +138 0 obj +234 +endobj +139 0 obj +<< + /Type /FontDescriptor + /FontName /EAAAAC+mwa_cmr10 + /FontBBox [-43 -250 1008 750] + /Flags 33 + /CapHeight 683 + /Ascent 750 + /Descent -250 + /ItalicAngle 0 + /StemV 0 + /MissingWidth 500 + /FontFile2 140 0 R + /CIDSet 141 0 R +>> +endobj +140 0 obj +<< + /Length1 7324 + /Length 142 0 R + /Filter /FlateDecode +>> +stream +xY T[畾mZIhAZhaB /`10lq;qxR㸮Ne|n9mJ3iN:LLNs2s8s7i;3wp^,}. cFv쟱t?IΩ F~H/wj<w ~vߥh e513w`ΠM`=sS4[vO .XH0OOMN> zNq~jN P R!А%o/Y~?;q898 p7L(삭k + P!BP VYB]^ν{5333\`&b&86&% +߆p.I\<gK(<'qs4LOďKB}NIKMQ +L9A\!5Z7z4vm쑚j+zبԐqI@ u4X-㬃ZKk[/;\kvφn]q?֬8߸'gcaV&Օg>PL^Ktm@8?=iY{dvsJ+4[$YDd9+ #qWex=]۠ -bk\f 874<n)x=>Sy!tUl=^<O&x襾9@I@uwRNRFci a*|*w:oD( e+2neWXH̊ü8|E&dJ_k:Zk$tb#ܫt$;v+I(CL +ȁB+CVX +kLqT5{%nc^OSOļ:b6LK'CN1(SzsX[II KʫkV8TR`HϏnz#9HDM<.di +%JVoWQy5+ɑ^Q0X?E]xp+4׆>L ѩıO6sm]Duv3; rъjgBG0*el4`5^' + .)K+H +ڎGl5n5}}.jqlC}8VPcjD]E0i5a , +JNet qJMFf6<",P\Ife A?]k(QT}MN3VǎkMGiV[^{k"/7nh8;q@K%k᫅<vf3iz)'-.˥`_M[Si=n _Ր`-Z0^6DgXCO֍OeT2!<.g6}/:ݛeJ*s拌țIۘ.@8ùa^QIG*et&TGq>$=Vmh$J }Bk4jX6-ifi34 s"xN$]`-l8ЬbE^6cvx(/`Nk2FbM|JZ[ +-z%P.* & `?Y1Y3|^z*ʒ]R + \+yf젡ls݃:ݞ6OֶEjk}sǧZZs+S_:[yͥg#?jf:]Q?ɖ如,k9^@X<0e eyX*)/~%䯒ڡ*\lKLbaNk{VnLex EtwXwXW +*Rӷ gO-,[H:e>m`܋'}Rį&O)̤0Rn$09rmB!=5E-\&YډxLZ=*^&D?$0/l޳21)=EynVnۊ)J Ccļd3`I(ɝGfr*`z4'C񁴇 2* SXcf@{E_j01xir˥<U%tVAS=K,w)MNqgdgHvH'r$ R-!3}LHeMbܓt=s{~~Ox_7N0-Xtn=R{xؚۚo \6]_k`݉iWkmlɞpɶv{@E?Q9Ą\6tcϖº2ls䡰!H[l AcRȼSB+KF I`ݪm MCug~EU(+>Tbjm|{f~ױ0s&_.,*§?^ϜK).[ +& "t5j*خpjP5zG1h9/՞ oq{EȤؓPG?4) +k[haZjWiZ-82o+Z20P úpCIq~Z +90CXrgT d*C%fZ(PPj!Ӑ *bI'yc)yrmC)#wĉά*?&JNwiRc͎?<=wJMIװEV;MWyx?=}HdcjMf5Q[W;w> K3ё|0X0.# do-ComK/ȓK/]Xno?KD']9}~T˃}R[qcޅp uBz+=PHaJ!4%y+4E߼Gԉk2=ĽXMl˩}K¥+R`PжD%^yHkK@㿡)wUJthYH% v-yh![ a` .*F(h%iZ3NZ#hq/"`Kc4"XmZ Q;DgAZYB{I{ŝ,L/Dĝ`H3"뤓hK_' 4ZJ++=qZ|~z~~|!.t M?4+)-k_;oiMC;fF&w{,{ %)qvL-%R0#~i:|V^u⑭V-m*˖R) m~jE@6[Y#Y>(/8tTy4ε%5E6"ķ[S l9n` +endstream +endobj +142 0 obj +5368 +endobj +141 0 obj +<< /Length 143 0 R /Filter /FlateDecode >> +stream +xk`3`X*^0_ +endstream +endobj +143 0 obj +20 +endobj +144 0 obj +<< + /Type /Font + /Subtype /Type0 + /BaseFont /EAAAAC+mwa_cmr10 + /Encoding /Identity-H + /ToUnicode 145 0 R + /DescendantFonts [146 0 R] +>> +endobj +146 0 obj +<< /Type /Font +/BaseFont /EAAAAC+mwa_cmr10 +/CIDToGIDMap /Identity +/Subtype /CIDFontType2 +/CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> +/FontDescriptor 139 0 R +/DW 0 +/W [ 0 [365 500 500 500 916 500 500 555 276 388 555 555 443 776 500 500 651 391 526 443 526 276 750 443 276 333 500 500 680 555 394 ] ] +>> +endobj +145 0 obj +<< /Length 147 0 R /Filter /FlateDecode >> +stream +x]n0E +/E )TĢ5{H ,_HgI.Seڑ%WWYh'tkFLjުv> +endobj +149 0 obj +<< + /Length1 2072 + /Length 151 0 R + /Filter /FlateDecode +>> +stream +xUmLSW~h|QprGP[(uRoe"^ִQi63%f13!8CBøȜKl˲m? !n?6?VK1ҝt(Wp6؄ +8`(O9ry*, @q.}h8zakMĵBdKL(pЫ+Yֳ֕ Yr[V X7())qp39}*lV{ &:1;anb΅Q8~.exLC¸8Ẕ ow\z;wXaM.gS{79~urϟ~!b:S]'f̪s,?ݍ6NBˡp4`g-i#@sNlv9mE3 뢵 LJc9lkX{ 446%t !sT5]K +fD( I˷<ևl i)G~hfqW[Md@h Te2%OĊ*vZt(K7Y|pt( +Kkk%_mmGRD$*5yf-:I-Zi UOCI[Vx&5(Gzp$>vI= C\IGH9bz{cC>B8Hz4Ujl!kalMi'H*BCq*b=J_O*5c9V?lOz^ΗfʻrϊF˝[r, +endstream +endobj +151 0 obj +1417 +endobj +150 0 obj +<< /Length 152 0 R /Filter /FlateDecode >> +stream +xk +endstream +endobj +152 0 obj +9 +endobj +153 0 obj +<< + /Type /Font + /Subtype /Type0 + /BaseFont /EAAAAD+mwb_cmr10 + /Encoding /Identity-H + /ToUnicode 154 0 R + /DescendantFonts [155 0 R] +>> +endobj +155 0 obj +<< /Type /Font +/BaseFont /EAAAAD+mwb_cmr10 +/CIDToGIDMap /Identity +/Subtype /CIDFontType2 +/CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> +/FontDescriptor 148 0 R +/DW 0 +/W [ 0 [750 833 ] ] +>> +endobj +154 0 obj +<< /Length 156 0 R /Filter /FlateDecode >> +stream +x]Pj0 +t'u B}дrFqJH?FK >(X V#NWt:zVY> +endobj +157 0 obj +<< + /Type /Catalog + /Pages 120 0 R + /Lang (x-unknown) +>> +endobj +119 0 obj +<< + /Font << + /F1361 126 0 R + /F1360 135 0 R + /F1358 144 0 R + /F1359 153 0 R +>> + /ProcSet [/PDF /ImageB /ImageC /Text] + /ExtGState << + /GS1 2 0 R + /GS2 3 0 R + /GS3 4 0 R + /GS4 5 0 R + /GS5 6 0 R + /GS6 7 0 R + /GS7 8 0 R + /GS8 9 0 R + /GS9 10 0 R + /GS10 11 0 R + /GS11 12 0 R + /GS12 13 0 R + /GS13 14 0 R + /GS14 15 0 R + /GS15 16 0 R + /GS16 17 0 R + /GS17 18 0 R + /GS18 19 0 R + /GS19 20 0 R + /GS20 21 0 R + /GS21 22 0 R + /GS22 23 0 R + /GS23 24 0 R + /GS24 25 0 R + /GS25 26 0 R + /GS26 27 0 R + /GS27 28 0 R + /GS28 29 0 R + /GS29 30 0 R + /GS30 31 0 R + /GS31 32 0 R + /GS32 33 0 R + /GS33 34 0 R + /GS34 35 0 R + /GS35 36 0 R + /GS36 37 0 R + /GS37 38 0 R + /GS38 39 0 R + /GS39 40 0 R + /GS40 41 0 R + /GS41 42 0 R + /GS42 43 0 R + /GS43 44 0 R + /GS44 45 0 R + /GS45 46 0 R + /GS46 47 0 R + /GS47 48 0 R + /GS48 49 0 R + /GS49 50 0 R + /GS50 51 0 R + /GS51 52 0 R + /GS52 53 0 R + /GS53 54 0 R + /GS54 55 0 R + /GS55 56 0 R + /GS56 57 0 R + /GS57 58 0 R + /GS58 59 0 R + /GS59 60 0 R + /GS60 61 0 R + /GS61 62 0 R + /GS62 63 0 R + /GS63 64 0 R + /GS64 65 0 R + /GS65 66 0 R + /GS66 67 0 R + /GS67 68 0 R + /GS68 69 0 R + /GS69 70 0 R + /GS70 71 0 R + /GS71 72 0 R + /GS72 73 0 R + /GS73 74 0 R + /GS74 75 0 R + /GS75 76 0 R + /GS76 77 0 R + /GS77 78 0 R + /GS78 79 0 R + /GS79 80 0 R + /GS80 81 0 R + /GS81 82 0 R + /GS82 83 0 R + /GS83 84 0 R + /GS84 85 0 R + /GS85 86 0 R + /GS86 87 0 R + /GS87 88 0 R + /GS88 89 0 R + /GS89 90 0 R + /GS90 91 0 R + /GS91 92 0 R + /GS92 93 0 R + /GS93 94 0 R + /GS94 95 0 R + /GS95 96 0 R + /GS96 97 0 R + /GS97 98 0 R + /GS98 99 0 R + /GS99 100 0 R + /GS100 101 0 R + /GS101 102 0 R + /GS102 103 0 R + /GS103 104 0 R + /GS104 105 0 R + /GS105 106 0 R + /GS106 107 0 R + /GS107 108 0 R + /GS108 109 0 R + /GS109 110 0 R + /GS110 111 0 R + /GS111 112 0 R + /GS112 113 0 R + /GS113 114 0 R +>> +>> +endobj +xref +0 158 +0000000000 65535 f +0000000015 00000 n +0000000145 00000 n +0000000197 00000 n +0000000249 00000 n +0000000301 00000 n +0000000353 00000 n +0000000405 00000 n +0000000457 00000 n +0000000509 00000 n +0000000561 00000 n +0000000614 00000 n +0000000667 00000 n +0000000720 00000 n +0000000773 00000 n +0000000826 00000 n +0000000879 00000 n +0000000932 00000 n +0000000985 00000 n +0000001038 00000 n +0000001091 00000 n +0000001144 00000 n +0000001197 00000 n +0000001250 00000 n +0000001303 00000 n +0000001356 00000 n +0000001409 00000 n +0000001462 00000 n +0000001515 00000 n +0000001568 00000 n +0000001621 00000 n +0000001674 00000 n +0000001727 00000 n +0000001780 00000 n +0000001833 00000 n +0000001887 00000 n +0000001941 00000 n +0000001995 00000 n +0000002049 00000 n +0000002103 00000 n +0000002156 00000 n +0000002209 00000 n +0000002262 00000 n +0000002315 00000 n +0000002368 00000 n +0000002421 00000 n +0000002474 00000 n +0000002527 00000 n +0000002580 00000 n +0000002633 00000 n +0000002686 00000 n +0000002739 00000 n +0000002792 00000 n +0000002845 00000 n +0000002898 00000 n +0000002951 00000 n +0000003004 00000 n +0000003057 00000 n +0000003110 00000 n +0000003163 00000 n +0000003216 00000 n +0000003269 00000 n +0000003322 00000 n +0000003375 00000 n +0000003429 00000 n +0000003483 00000 n +0000003537 00000 n +0000003591 00000 n +0000003644 00000 n +0000003697 00000 n +0000003750 00000 n +0000003803 00000 n +0000003856 00000 n +0000003909 00000 n +0000003962 00000 n +0000004015 00000 n +0000004068 00000 n +0000004121 00000 n +0000004174 00000 n +0000004227 00000 n +0000004280 00000 n +0000004333 00000 n +0000004386 00000 n +0000004439 00000 n +0000004492 00000 n +0000004545 00000 n +0000004598 00000 n +0000004651 00000 n +0000004704 00000 n +0000004757 00000 n +0000004810 00000 n +0000004863 00000 n +0000004916 00000 n +0000004969 00000 n +0000005022 00000 n +0000005075 00000 n +0000005128 00000 n +0000005181 00000 n +0000005234 00000 n +0000005287 00000 n +0000005340 00000 n +0000005394 00000 n +0000005448 00000 n +0000005502 00000 n +0000005557 00000 n +0000005612 00000 n +0000005667 00000 n +0000005722 00000 n +0000005777 00000 n +0000005832 00000 n +0000005887 00000 n +0000005942 00000 n +0000005997 00000 n +0000006052 00000 n +0000006106 00000 n +0000006160 00000 n +0000127248 00000 n +0000127272 00000 n +0000127299 00000 n +0000142686 00000 n +0000142547 00000 n +0000127497 00000 n +0000127753 00000 n +0000129723 00000 n +0000129701 00000 n +0000129817 00000 n +0000129837 00000 n +0000130232 00000 n +0000129997 00000 n +0000130551 00000 n +0000130572 00000 n +0000130824 00000 n +0000132268 00000 n +0000132246 00000 n +0000132355 00000 n +0000132374 00000 n +0000132765 00000 n +0000132534 00000 n +0000133077 00000 n +0000133098 00000 n +0000133353 00000 n +0000138841 00000 n +0000138819 00000 n +0000138939 00000 n +0000138959 00000 n +0000139464 00000 n +0000139118 00000 n +0000139909 00000 n +0000139930 00000 n +0000140182 00000 n +0000141719 00000 n +0000141697 00000 n +0000141806 00000 n +0000141825 00000 n +0000142214 00000 n +0000141984 00000 n +0000142526 00000 n +0000142609 00000 n +trailer +<< + /Root 157 0 R + /Info 1 0 R + /ID [ ] + /Size 158 +>> +startxref +144557 +%%EOF diff --git a/matlab/figs/super_sensor_dynamical_uncertainty_Hinf.png b/matlab/figs/super_sensor_dynamical_uncertainty_Hinf.png new file mode 100644 index 0000000..fc20d02 Binary files /dev/null and b/matlab/figs/super_sensor_dynamical_uncertainty_Hinf.png differ diff --git a/matlab/figs/weight_uncertainty_bounds_Wu.pdf b/matlab/figs/weight_uncertainty_bounds_Wu.pdf new file mode 100644 index 0000000..9c124d5 --- /dev/null +++ b/matlab/figs/weight_uncertainty_bounds_Wu.pdf @@ -0,0 +1,1736 @@ +%PDF-1.4 +% +1 0 obj +<< +/Producer (Apache FOP Version 2.4.0-SNAPSHOT: PDFDocumentGraphics2D) +/CreationDate (D:20201002174709+02'00') +>> +endobj +2 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +3 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +4 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +5 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +6 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +7 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +8 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +9 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +10 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +11 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +12 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +13 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +14 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +15 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +16 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +17 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +18 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +19 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +20 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +21 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +22 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +23 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +24 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +25 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +26 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +27 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +28 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +29 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +30 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +31 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +32 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +33 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +34 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +35 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +36 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +37 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +38 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +39 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +40 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +41 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +42 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +43 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +44 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +45 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +46 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +47 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +48 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +49 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +50 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +51 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +52 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +53 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +54 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +55 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +56 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +57 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +58 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +59 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +60 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +61 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +62 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +63 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +64 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +65 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +66 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +67 0 obj +<< +/Type /ExtGState +/ca 0.3019608 +>> +endobj +68 0 obj +<< +/Type /ExtGState +/ca 0.3019608 +>> +endobj +69 0 obj +<< +/Type /ExtGState +/ca 0.3019608 +>> +endobj +70 0 obj +<< +/Type /ExtGState +/ca 0.3019608 +>> +endobj +71 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +72 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +73 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +74 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +75 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +76 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +77 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +78 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +79 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +80 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +81 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +82 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +83 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +84 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +85 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +86 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +87 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +88 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +89 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +90 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +91 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +92 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +93 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +94 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +95 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +96 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +97 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +98 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +99 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +100 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +101 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +102 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +103 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +104 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +105 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +106 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +107 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +108 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +109 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +110 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +111 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +112 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +113 0 obj +<< +/Type /ExtGState +/ca 0.3019608 +>> +endobj +114 0 obj +<< +/Type /ExtGState +/ca 0.3019608 +>> +endobj +115 0 obj +<< /Length 116 0 R /Filter /FlateDecode >> +stream +xĽͮ$I笠/0 @$8;B+ $!,H-:?yK_\uT婌p777;v>.Jǿq}O?׬5kg]}Α6#^;>ǿ#QS'G?k~y+W_HUO#_R<TX\}6ŏ~h`[x<'q,~CXI󳥫qG?4|= ` -{`:&T5Ւŏ~h`ER+=X=0ÎYOCv|S#Y%;>}>t5 {dxu-;>}Y 1;>}IU|}'zbќؾW˫g?5Xe<?}'HhL1O *؞K/8gd+~se?H7GmCE(f+?Hwq/3}Wu9{|#c+6cHUJG?Q+6c6q/G?2b9?[jc@R0cG?2[¾[S~<я[s:-~#c]x [G}/^c}~&\}u۷=yb ~dlq_ȥ|εloG?2/+ZpcHB/ p|#cBge +c-~#cBZ|Ywz|#cBQcl_R9Wŏ~dlq_H}?[h#7J9o([q2ŷ 5A`fk9ؤoMK | vsxAA;paIoAN1I1D1?1:15101+1}u0ߑ2д12P2ߐ2б21Q21c[F[;;[[j[R[5QT1C:[F";{ +{F;{F;{F;{F;{Fb~ώ _j 'oыīF"+U>UP #zэxUxÈ^#^%$0W7E"U4 #za oы.ūR?W=W7EU #zџxUxÈ^t'^(0WD:oQ1_-^/[(]axk{BR=(Dqa%P+=sXoJ +[R=pa'h+ۗa#n<1^c=9~{-1_zKʻ/zC$ǠL1~!{!H +cy{NsbĘxqOpp?D ^~oGj3|i{ri/ΰTz ?e~1O~amYR/ |UJD>GD YJm)=W^_| 7x )у⃯g-=gyTp;aϡ0ք]ӟXqΆNih=5쿏կ/qTaijG yo j5_cm=ۼ֯F1Q9r06(rsɂ) /oaj9||`>kQ9E3F,_J0]f2ʦ1Y0fS#) z,c% EF +GQlgoX_;>|Zqalޚ2ZϭkWkuBSPjr}>vb!MDjҮ.HJa& Ӆ] W$?k=Z?/\g ^7W [e&/0<csXPfK)T+K`ލgaκD_Vsŷ& <*(\4<9nTQG2d*,/_&~TR]! 7`d gZnӿ7>]\ d*uK؎+79gdk̘^}[Xx9w`0i/*]CWmݏ ه61 ]$D`X3YG? ۏ :@1V pE S3ʵk=?Kx|'x? SZofZKNVrɣ|i-MrJ(8j<lqh.]yL-bx |MZV>qE\xfgvxԺ=LɴA#{N! eH́);o`O, a61 Wc+X0c7wqZ}FDc^pŁ[X'cT1fjy8Tf\Du U26>ᴦ9L [}a~m|Ʊ`tSX`.3` e簼Y<.9 +8ui (^ ,- %_x0V W\` 62XO1kp\±:…UЪRppWW 6ӆ0+?cWXLX7x" /+;Xrcվn)MX*Ocs»~,̴gb<w|M#,`e0 q|͉eSy~ML gapaj~j`7hha|ǃȜeb2cEs5CjL░31o +f*%Mj'3i\4pżZ{oLr-p%:6ml/sA:f&ߊ/=B1ބa{ Q!>YK^z{ـmWb1랹PMM}bx [Тgq4<5Y =9bXLQ7҉aa{.1!?g,RL6PXm1cm¥7k0 m & Nz[Xژ0q5aUi$0A\!wՄ?VU0<"l0(x%S#rJ:lhµ/LM. `0]`3ۺ$JOÃX0jR1(ׄ«(|%Cb) ^#F47I`U/\SL@8{Y} :.cXzusܤb<4^߫{pgT$}SS֩R)A# '#bt?Al1N[YhJU1mGSnϯoa D(q +_Ŷ6.v;,9Y`0X"1#cᇙ!r&6 TX. , ~ "M[S7`̆:H?ݿS7~$x'3?LXFra^!'0 +~OF!/<8Ż)jn +~xۆՐ~z/Lo~|llMC2=/T`$ {P1m6ԖfWcL㠼` +?$ +]yatʾI" t{Iwul .7)`nveP.c1;+y,/s[/11o#ARO,,RKӏa2j<+ +uy,8OcˋWƭܗ,C&@jyqbX-<9UCm bt`[#3p\n &n+c iq^@X1t4\x}M/XaTT76Nav7p'6 +rLOXeMG\Hl龅`=}1kxs.c;`c^jkc; ,a&sH&*؉畹`.aisk ãcT В0D0@ؕVV 裏#ʵh)\=a/f9#瞆`88.cLTM@}¢]]ڞK?E`\Jx ߜۼtM/7'fe0bRu-|7o8w[1P&|t'k&pU^ci>Ib{kfSc ?#P׍uM8v`p-~rq>&&K왉kΜc6cwNI)Z7˷kvОQ:afXK7=D C N Ld; ^wtArA0^d;*;PH gm~ظOz+ ms{xמb Em25A$6 2〹m#e CáFbd[^`Gg?tv03XC1l?zޠmD>ȆPH_fٛY;Y MA +{q5-:A^Oƃl-v%x>ڰOr1R[o [7&rhe`Χ" + cs{&ռ1;l &cr,}{f¡yҌ 6-{^d`5z)Av);;툶'}>bM=v^k;2i ғA;g`٫UUV~hLφCe >p՗49kqZ<=$>tFnHIܠBfecn03A>' Ҳ7`b%p8jE ۼ׽`A^_$nГ$l0(&U39gX:l@L bY^ !&}['9HX'?B[A2y(5-#9ˎj`mj` c5Ѓ'Y5=/ nOv^-D}p|I%"kxc^pj$ fr9ݫAưNi,M,~08,;[):v#1w0vmz V1'?HC;Ey,bH=R`/D|2~N"uyFE ~Ֆ)Oܣj C5ά~n8 A&~*OW6&zP#2Nk$Ѓ7'u7=!}{ aMFAp }<E"i֓̌2=H3AF"n态Aa` w B+i%X'5H R/yxp?H bdbOkAmWƓ +}/0EDH&erz@RX³;hq= KuB$ljNH10[$Rs%}1T&izM𾌕2Cz  #;TMxVI]:*܃$S[DcZ +3;tA0t9L *1j!;AK}du M (ťJ2p#7h0cܠktӬX-F3*Ԧ1*y4̓$@"rff7frְ7!DBİ mQ 2R:zWv8y𪗟e19sXnL7XYܠ1}A4 KZ{RSoYʫAkE+a=AY8SL;THAX"jOһI2Are`YHGFf{b,fc%LxDXT`==2KC B/ˤ=A"'fhteOUR6_'CSq}s\\)%ST#;HsRA̢fXvF5%MItaM*x0Ahyg6~AN@Qat~* #r&c)2,T!9ob $v0Kb DZ?+O! ǔX I"cJLa XCHEJ<<rrvN::]T e&6CHm%t!Hآך-*xdTC $[Qa#3蘁!D>QSOI"w ;Eʪd Sy1GLAa`xrTCK>nh{͇\l1 e\RWޘ5)B1qr]!Ģ%*UF!' +a + !OױKcʮ{akZ.jN +!yM!lP%P؊0sw`uޚ)BEٞWNG>~-a !ml ![UxGH(B< !a*-"g:Blɜ+CmBL%yAK*v$ !Ik&Xd ZjfP-\ώmAŜb Q='Auyh$4jTZdCAe,9(MXVצdPV!Mщ.9XSY B]8"o 94s"]:5s +< !V/ˣ ! |5(B$?U>)B,r^Cp1R*]}B,g9daMӃcf`B%pdYE[!VL4(B'LHBYOfGEiNm3#THG8Bҍb +0^LxKi7 ӓ#dՅZwm";?8BHy1^RԵJhjS Q^LCfi" ;F +oI*_^ "_fcƐ!Dm" +FĬ!i/B.pX3C(3*VJZq@bp|ޘvA|,% rMrtlb0Ųyk)bc3(G.3i5l5Z +ddҺTta9%ά@}3cMVڠs0/U2 ] fp“¥7 Id{kƘ)%``'*=׈[ng 7N<ln%p78'/i-"m"x:]=R( "We0_)[̋h{8 +`8')8{,!ؙykrZdt~jL? IZ:Wl¬먞-|ˎ2u6G$ƬH8a  iIJ[ȉNgEL0q1",&d{'P"o7‘VUTMPbjF . y6H_}O{]Qyx۶lU#65F`p,?{I}s 0‚ݖ((L\{EH 'Eld:[b31iB1Sù ʙV5 ~g,g]@NPb\S'x2^_th4rpܩS8{e?\4~{W \XT +v~'=͎݃bl ``]f)k=ؘ e6.xgե^3aIGv܆bA ÉdFDy\W_I-dX\xP~u*3r"I\|nAixM +ju]WLZҥUc#@eI=c[ӫLLa\SiY*/t*u̓6q^avJX\.v+\۲%gVaS +bkc&' W, dXRDD~H`D2p_%lH +Z YStMGIGx٭*;nU)wB8E}*XƜ*A_2VXM['tMj+鉯lYWNouFƞeBi% 0mnXbC@ÕcFMG*wQ0']µ LM-V#2/grlbnLP(fZs1kx0س䗡PX gW/,O\t,¾8cA39E\M6{,fȓNJafM8^5b60N4˼Dafcy8TN)bpW{$ץ SQYiC/kB4Ϯg;rI[jv?idIcX'$#7OՔ^Slljjs0ͷXs;H6XT4v_fD%.M%LEbWI쩼Bq]51ܷ,AqԃMՈ +1.ټ6M%*tmت/tbThVм s[ eYpŇCֺ%"0]z~*Pf~z>P:-x9y( +4EHJHAX%IѭT:w%>^+"x7 D.ĘbFsrɬI7:2ʡB bC?|i_^dGYQԊ$ $9E:uLT>wvW(*ĨbSP ! ;d_e6ʱ"!C1fyCfjɄS{{HR-qԲ%o"H& +>}U!47Ty➴"XүE{Ftw"䏏W9"b0}Ch2QxQ1o(D.nrKuJ!6i+#N^J+|B˻ëh~tPkSaW*b̶N?CUb,&hBW"x}"|e_1jz)9jC l%˂!r'\v*cX_G2tFlW{ +MSIOՈ+A6bG(FdY-Spa E.E+F9V1e-SJzM tl!G.;FIm|#FPvcTd [Ħb\47$cf=]E21ڶ`4j逧"P zK;ӰYTl$Ր_ d AlbCS* d b,%Ů;d,_2cws&$Ʀ?rlL|^$ {QޓP*zbյؓ5V#JEAVX$|GEi aVקЭ0pK 6M +^uu IJ4p$Ͼǫp8 ܰ0WbA>tucbԻߺՇ*GTS6tdk , r#%HPUeZQ+`:eEj-b؂ mA- b D32IA.2 A!d.LU]e'b c$( c*xw"+h_sY7ԓcفS~ܭ(z:| ca"慄^s5ǫ6+C-폴 χ\"yt1 <@[C9k0A6GvhtUaAyuw*9*xUn=#~ ^źgA l<%Ϯ9qwۄ0ѥBIbD^l7)θ^ĘD_=8lۖ>{w/w;;~z)D yF$ Sg<:AInArqݎ0R-鑓yh#pHF>$g|ة#(t.Vr9-z(I6G.7?,Em]w~LMMFP:H|i H Ug)\p~sa;wscT^X쏥\GZr4(8s0wǰËxڇ1n +;{Tg)>8)Zɂ";.gC4bV'>j(͸Q&ح,wm#6XEr{#Sx#MvWݣ`Ÿ}eқgG 3}F.xD.ʦzy乮AoV}SVM :;NYOdgCAb 5u<*Eh`HKpJbHL>^%*6(z}7k=賯# ^Zx~8H* ɖn{$VuѶX&vĨj&4NKwMB]9[rSʓXƋ;-@@^;7n>ZcuΖĘmw٪MڭC#5`l9EvgKUb'V +EcsGWљd)9ry7MeAΎfX:m&<Nҧh~K L<(=6v9z3=co_bս?^{c\6y E q;޽cbBiɨ )}5ʄ̻g[f¸Rݜ уvM,KhM;@gib7٪cIlq|05 +7u6S8Q=715p{ʅXӎiy 'VbqubrB0-(x:֞ ѕ:W1H])FkuYb}mWl.jG)^TXhf/6 P2FMd? BbZ`Y B,69uP.nY9 DLqL{Eu6AHE(:7B YUfD !aŽ,k !b d%E5̬;MA9RW8PX^͆!m˷yM/mDq,2ߊ\jGM"D,E'S$)Th}9Uc +x)M ƾ7\)qG<-J;/]o\됛 #\&bf[/!H=U Ffu.aFhrE1Ji4+.Q/d=eE8,fr=D2ֈ&^ Bbw 8jARqTv{.K KXAHŏ$wZ e9X@ݱ"A#LZe Ĝip*(o -,LAQF"7Y)=ئqrb|;HR1ZK^ɭ8af5/R, B;65L34 ׮6eFy*?a*iD*YF$EOk&i|HUF +_nX$Iڔi+H&kB$-2jvلb&b "?Dnf'ܙؓ P?3*͂YA,Sg=h#hm},=jn@wꘒ+=rBKܠmz5۟q^Tg6b/HW{āMJ JA,5ƞ 7j&M%Z5 G@b=EE ϊCJ !$t-l0nzl[nĞ !FϿ ^" ! $U0BLk ZP]b+y^UEUL@iKf˃b/kO`}f(V JK*95 ]j)fq[S]dBOoX"C/Of_ъ!#0WJz=)B2>l{WLRUJY@b)(.,IRc3b)ly2.c͑%G^rdSX$nn@ɢ2al!ۏJ6E(CbERRSYZ:XKY#CH5vCH|dLԊt%E+*۞*WRdQwdfdKkd͒ a Pvm-łR: fwd.F]p"A[nV)bAv++aZLI{QBTW~ ĺ%WR\i)$z -!(1dm"AzX`E̅ ֞3'$18rEPW8D!\PzqO7N:>KLM,aN]{ۇVW/ܼ,Hb~^Ѓ51 * WAvdkz҃ Z !ԩ>{ك4=H}:1zHbݚ[䍑0+[yMӃx^ތ -3=ÒdaĔ>4W JxL zD +0s"=%v=ӃDm%K% ].PDDrɿ~*voix݉U!i#;ry5arI$ncnKM)AZi 392( +*{XL2c>MAd)DZ7̷VI=@wuQAnåDr0%|s o+]16m`AawbULM=$JťSUf%Qk@X&-A±zؓD O[2( +m/҃ݦԀ+5M,^Sf3=DaL7f'=F[&7Ӄ*1bAp][ZX5Ɨq0O<'Me>z}nS< Hf~a0?ĚR|H QCt۰ɵ,¸n0&A#yWa;Kz*=TgHSѹt5?Hc Q@ǏTŮ l^43Aer<=fH1 /j$,O B +Μ-M~7$ %! ٳRAvCVX^Ktk{{(cߩP,NodX%%{!L0!: k0#+!$RS^Bl?!lRS{eShمT^#E͘ܠ4!l4ɲ)B"L[,ӓ!Gb(&T*ar؃!0 57J"FPVS@$8&;V$%}[U֓ :i7=ǟ!3zm]!x;ɽ3k_Q>;t Īu Nbz:A0Y-.C<އB]d!7-3.a&Һ] !-fBƾJ4ju㴒1Y$-vQnAYZJBz(3vXjI~{ %  D{+W6I:{qQ7d~W0jxF+XɻɱҍpsBg#wXcZbvZ2cp4ƀWi[Wibl=Yy7F;Ǯ` [1dMN%Ln˞gv( `ͱC~mSOlFWZЭ?~z>_=wc}N_;sI<)cWa \"Zr㌱fd5;iYl.c&ք[<<YǙR[y~E1Vg< +_ӧm8\X^8r#h0,(1~F`ZEgC؎FI;|DWm@O Zg0=A a,_G09 7 U[93% +~Ƅ=ȪGDܒg NXkłgO5tCa[o@YVgR b1}g@XH5+,o3nk.CDZJGX\=0ּy1Qiar_3 +.v L%vD݉50u Fa=°t#c9 + +<V8ِY a0~tGDؔm.{gX'S"&walX !ilC1$͑sꙸp6n3Q&̔?_k(9n虖D-;#',TbPCbGPcc^GQC U +Fm$)GjT98SX +=T0\kg +WXҭgWи ΌZ~& -V]wpH NG]w g^捻~a9ښIAcY $cEvx?c=ʛP9¦+O7oWϜa}" l^Hdxذ[sa'EX[f>$b3|쓛#E~bGX $y5s1 +MꑰB 쯔%aL{tɐ"%qdV #h}ed WpmXdr-ᄌq5-ƄYz7#F 0m.Z l-hY/#WtBں4OAu^PAT(K*0L?<)8F꫰ɍ+eMoT[aE~Wb)(my0al~MN daL_K]K/,. 8hK¹JbS#-;*f^Gi'{XQ׾:'&[],@,:/0 U/lN6>1n,~`l:|OlR1 sҀX&W KyHX}NAKnvPٵYz;XAl s܏Jbxqu3N +[,YR)Ğ˳&ԣ; +u3K~|D"",!ƤQDhr_k-ܺ) -VRS`\]"+ɔXD NS{Q+E2cQcE ulQE*׮<5]ĸpZð+__g>QFNRԌ]G#xK5ڷ0YGb,#  .3YjHAŠ^LZHl02ѣ r)*BŊwsLb85lIpa̯]D ͢8ku)0Y=ZJ>Yd9`ᶗKc,!D=v)Bk.SB']WK|Uuc`TwK艺\0|fbBt,}B<:JFg5!\q +Ei}XM('Dn.ЎuKÑճ⍮c:1lV9݉MVX(gk%]ҏ}GY>(4;Y  v DB=U~ba S^vj##SRaQ(@QX{vfSǵWj3m)Ab}! +ʷ.*[,BߋUW6 FڵQ~C{dWю*;>azj,1 tT/Ĩ9u2}x^䜉x;dc*U=1L:DݩC̽B뽘51!JjVfKRH'[?9K4|Q&FSTo,()#rP mr+CAٜ,Blxn00so{u,N!L[<(ybK?Ad&ޖ<1D"˵ =1x|2I.nq{4)T'ۑnO#]vs@ "F1;@Vf`v ]v" 6ټ- ȑTrTh}@" {4LGC?-#هb`G$+HUc?r$\z&Y-|['HسIrjI:FәģEٓ Wk@ +"{rVV[r=' 0 {Akz HG?!AYri=- + qj`,JXpBE"ӹGgr)d݊B#;8N,"4/6xA$4N: _HZT5؎1$u|+N3d> jH0dm"?;!SMF:dߕnU~'H3<дG]5\P,PscbcL?@@ɿ8b 3~#tĒAjo:T Pqw5bD > + bOWe^ȓ.|nmAGv  򐸿C+u<tD7Ȏ3~@]uk7萌@屛Nͻ1Ӵo3y7(M1} e]y3[q wҔ;6۽kO+is)e5J=AAP ~)6gYj廱[̚*|{)2=rps + x/){dJUW r-} 'm yMvw<ocGxv݀[ށsdE[Ԏ3f6°A, ^@0Ŷ|$O2evk5Eˆ.> t#$" X{vdSdľ<4#F:ɬF/ׯ:E{&{v=@e WT!iev& Fn@nh?l(6 OfQ 3xYJM}'}&^in{xEA&#b/37wEf@lW1W4|r3FXd XY)AA1pg>SD/l툰<Ükߋ}bVn?jlHupan jB2 +#WA+wO\ȠjkcdVcB Q=ޢrcͅb0sH;G{K{Vk.XZM$<.afתB1qg銀GXoU:t0ߪN^MXU}Ũ0+V˜ +j繴a WsPa^o 'V]j:پw; o%V9sLW\U _J!O hX%~U\u݇2۵[ ÁX5&uA\mg^,.J/h2;m7cgWMZ h";eu^)& {ˎKz?Av9-٘X_H,8bc]0u+0wD˅BfF.bKׇ7bxau$FJp+Ƴ߱R@J6TԹCX)%F [I!>bl6Y*d21Xzή\w ncR,=goj)'ƺQCBxbd47Wg+?+ƥb2ji)#^ +XX!M s)UbA6Ȉ& a^U ++F>] /es(0Wl2(ƞMYby;1xŲvs&Cg1WlO1vkI/Blvd +E`g.f +ǦRUmyعK@:bK}UQ5foK7|Hb܃;fC}LE'5=VwX}YMQ gvOLk,&Ü@i!{(%6{paUroPBF eL_jdXo&̗(B@l:KfqdUDZ\.CTA$l-UwZlP­R5 ]_ .b}/6quwեٰW=?9QBU/9'[m<"k쐂@RCvE/ s=gUV'a,뉛' )$l|C\i.D#gXR.6s$vzh26O6Nt\#dfN @ݦ٩L#;,蘑0IRua8E,";$r1roN$;璘+Rd>wzJ!k!jyFy@VT6o_Z!yŗ#)j^S҉pO@~l=ųlM{qd"(D M@䃍9XB.GY-^x G*5$89D8|yD} /~MRf(X\H?zJ"eٳ-s2"WzzSODILbgMy(tQ'Oܣjey@R>b!~)RF={jZ)ٓ)@MM.kOb4z&{o"XZ eP}g D*Tu􇄛z!x2*|@°dE=y單vz2lo?$c;i#rWؙ d.Yl|pztHF+7PCU?'rvbXԦ=9$L2A>%nc8 NFy(%_m8zP&zdZ`ys,EBA,rw\$Xg%ϣ`B:aYv0vB//0ZfD,`A$L&Ј &*3͜i@IUUڢ6:WC!D_.1kU !Lwz}ehHU1(6JױFX tR-|HLXee˄>ZU-xXGIIJ΋DUjջr~`4iCCr,zrGBYM8BB传T ٥S6A.b<6ewRM6]b:An*#IBTܙEۉ~<5(œ v,-AOO{FB& @˜RB,(Xĵ?vJeF{~PvQx?IMr0Ά$r B^wX]Ыx 2VfEU.Q!bj2fO 4)O ]gRoœd(J+}4F!Z:xRd%M( +[ +xR%. +:KS5]#qysr/؅a,ze/0 OlA!"  +du[}!~!%wf-msgTԣS`rRaC J! ZG `IUEϊ;xAYi<2]Y\ypgݬ9-,L0d]"OFf˶n'K 0K~> q)o|+&p A`֏5ZzJ`8e+1N:(_4$F}eKph2[s!h99(O(0(eAĐfT\PCQ@p9RZrbg"Esb,%A:k!;1FF+EB_}!I'~(#wSOJ +*q1+k|QKca+W +3PgSN':HD P0/R"A;f8W3aY`Z,yA fډ!e` yA}MHMA5E "f^yJ: 61fkhiAniAlVn>OтWO۶DE " OO "6aݢgbE;YA皚u9gF \$'[OD +Wю9<'X/qYO=AvPC/{R0TωDa6ɥ@" [xqFtkX~(] :[02x1AEMB/N]r "8R^.7$ nzoYPSIށKc͝@u A3 27usSA=D Bya,%R뺰bPD2\nGK$<$᠕k5/TR'IAUn B[j_CzaHX {yed.l"/uĀ*1`sGEZ6Dk(jPE#|DE{aNCTeڝ +"6V@ `8 +a^;HJ +ls bs1Hd/39$#-s4Vct=9d1E +HʅIX`HcȋcD̅٪#)Zy Srd٬ׯTA#A5 +WࡐA_)ZP׃F B +e4D += =XAĮS6iS/V1U6p kU! wAbD 2VPHcV + V+P3{ j2Dl L:mMw:;U}g :"`D +Pz\X=W)8$)dA9X2ǚHA,3XXVȈJG +"T +,ItF6 +}&R;y RbDN)U Luxasuquֿ"ND'<\$7*׿l_XvK~_@KzoQi {HbB +[Jj[oXxe^!B%#kˆܰ0uE AalXošbmF,N ˂(e[N6,,C/am[6,V oUر,fD(l=-kN' +۪Cva~ߠjyĠ!b1֥(Ba(V|6,RŠLX+$ +,R01B!!4`[4+V ˲wܢ Q0o:!; 8 aWN/*#1:Ï(LZlOS>)фVvtuZ 'Ba* +OA)͛s+:鹝w$ax˅zNĠoa.yIA:\,-A N)JԈR-"L*["FP[X^[HXazK4 [[JX)lKl&!&`%҄Y&',*!@Qn.5UoiBaEOҺII@S62zdlNdfH +c-U+ />ﳥ- +ŖQt2’ 6vݠ̷Ru悖ޖg'fk[^ع;aU`=D{ f +۽S}l=;080,W}$ű|p$vt`vlUŠ#{.aqu*x;د5uM.ɬ}/$0<3 +Cp;Iҫn5%oJ[U*__@$q% WPvEL |jZ!iaM61 57kz8'f]ڀŋzb_tpO'{nb(+c'/h,%`6D,,949:”XF!!fRl<$7 +3-pd+Y鹍!C⑦f ewc;z.庍C Z"1;ш?Fpa*R_MTƊ"S1XjR]XXĎS㍼Vbo>ň]NɌXFM#dQCK6b6ąT8bTM|d=G/Y/AOy~ĠҬ~ sdD"iImƃ>c1Iƴ$&$bRD$E>(0[hlotq`pIXĨpx# +x#6=!;Ch {b*q[d?b:nDcH8>7𦒁| z^VqA-;Rs|jbE*T\ +00WBW-±XYC,lXcC̲jsv 5= +rKB%=0 .}<"d K zXD 5*t +RĐ +!an +VDnƎތ%rթ;[qo#&{]0GU>:'JA.@[I,n;VK7:&(gmG rFb" sU"{$nKjc%1*>ު55*O`)jCVU +lߪQc[+1ՖP +,CNHUjƊ;beò^p\Vr WZb`-UC +d@6_U;.]AVLFjc40;'S|%e˗EV eJu7ba\%kՁu%e%aIJ Q͂WZm*m;dQ=$U7,Ku5F@[*.UŠMTEIFz](bb݈'0pmCPLܔVX F dBN/AG`MF9n 0[jJл.L@l^4As)M6g[(Q-ڟ7 ` a:(;NIԮ+ J^/"iSM H!kGۆԍ6PWTZOAZR?v'*'s/ө?vm)` J:#JR ee-G-eb#l]p -V-\XU0;;]0`KY}S3ĢK#+b+d)mgp҅YzYPK;h+>$JɁwel7u6%HlcI>5Xlz"wp{KkGG6jqwW DtYtdǮ; uK;K9%D}d`.Uؠ Ue30@ +Eja`.@M{G c%bljF^:#K/+wK(K9 RJ!rcWu7290_EuQDݨB2. +k@vkt<56w8UddA:wYyRJL=\RN'b7y h:#Hdy=n'R4HЌ1z)7P>{72u&eC[1S;Ì¢O0;U-:_}g Q^( +(h='Y-!2`6Άfsp|fq_O" 'HgI$_tfi2b) "` $F'y=0)!{)EN ++DcGDZXHŵr*G^~3 {-HG0*ΌN]{B+8M}/)`ϲM[, 啼R.op4 f>X iC֐E 3a>Ҹ1D +9)FN%cOym4J+>v0؍DSK H,Uyi/9 +09S`IE R[FU=iїּvKE0"%C0'Qc-erLg;ZV.+T:9o Nj-uQ`+a9E+^ec듭1-'e0([gVpbQ΢EqNf]>8# ]Eš%8<8)r@f|GE%`ؕ\5(md0iD~7mF/kp_ gFC?;>f։ya  NӤh} o nN0$-Q3l'[hEτv`a*(t+cL\! ZaѾZhEx9;ưT0ф +TZƎo=λlϷ;q +fBvNc +쀌IQPlr/D"mU7^6 U^H)U(sω*m5Ro +5E$e=!!?ybUJWC8BH zQP" ;#*5m#}^Jv=yPsq.0-)SY]m{3$:'B(䷡VDILB.=nP40B&$mvJtzŨ+BIjTL\_B|@YD_>M-s<7W6:i^ت,^^!Ol)CS˨m{҄@Ő=42 iBH$yڪ1UjcݟC:)` wV Vǀ,G[%28\l;OфT/X&i :!BHxW%2_FRS,!K4 ӓ@\ma|b XCܶ&#-0mS|==MdjX` 8Gbt%(~e%K5@{+&{/J;gMQ%Tq 4vJIfS~eIBgg!(W=IB)0S [*IB,r"G)Q$3dee5IBԑero$[M$d,0{WHBv4`O#InaHL$ +_~`b 52lBϡ9)' E;R:}BHBB'sbE!=UQ4!_o)t51EMA kO:f'AĦҫ(Pɺeg%:$%yxf!֗-_ B5_mN؋hhz&.[>Ht*U)9,b*~@b\>A4/09ybwg˞|&O YH$ ^aLlxAiήy^"ʫhf b; f֡V3W tf `xQ:ZPdʃ̞nt=gѱ%DkNx_b K1=/qpx a]K=ˋPdbOI=T6XoUтa)ƂMG YH}/>1"&Bm& "r*F.S‰jeUIH=TDiՓ\O%VW,nk"u#BC^_` E!<`%Emul#q/좆EiATyڡ,t#R!̩eP>T2p[ RS`LjO`ot2"7kV" >s0FmJ5OgNFbн"@ϩ͂#,"ڬHIFLgl8Ŭy2<݈ opJB\k k 5ޱIG`|?_wmrdNsЏ9mMMveID-LO[XN>MXwc>mas>mAMx=M<Ĕi cn&YhF 3F=>maLO[vMl>MY>maM>M O[XvO[*i -٧- g)&DcO[ڻ*5ڹܼu, [@>mA6dӄ>ma]h&ld1ݢ}Кn& zJ|y>mALi2>maCh&,Y$6o0Dy0O[X.k4O$ CLy†2<r CCmqiT{{[F4a+iTJ[ ;iP<sX9M I:8XE;=I2u +cN6Qٜ!8 ΐLpNVs0n+9S]*8 ȰC|uYuӈYzoFdMyO.ihFl]v4a( '=$'>v4b2yi,{O 6w4bEָ i`il8H&xo;/<ӄԖA:O`F nF?=y1iz4AU}pilaY$'`rnF,UD4BR!iӈ-*F A4b{0 U[<8;fP[wS԰F(@b; +0Om"V${j}ib'y94BpړGN#6حӈp[Ku1;D"y4b ,*Xk6üu%B[R u0ziE6KN#V#<):i.#Fh^ 9X5Ѽs1s1{e<ӈA_T|9ؤcwN,^Rk8s q!Xjj4b7 KS^l7GF4bHȒ1W\M#TiiA*ilZkGM#fG.Y6`cM0hMtoF\hFdVl,+}ӈAa7XCFh\tM[PE4bXmߚM#&yFlBU}Ӏxo1dy4BstMo7Z48^0Mo|"U` Ժieg+iۨ04bpݓ}VAH%YE4bgZP3iJ@U7zۗHLFD;M`Fi[-Ӏ!^L#% ig-`F EZ1ZZ$C]qV0Mf4dOBmM6vP}wi`Fƒ;@1M#3 F&ݰhH2șid}D"V^4 XiڤN`F#C0Mvv3 ʹ\?tkYk4`qg0PsXL#6CeAڛetl yܼj+" +cL#6*e nΠ2mR&a|ʜe iD4`xL^]D4` nFl@HAm^ pi8 G,6 bG#C{VLH> 茴 Ja4@WFns+=Ӧ3OOg0֣g}Cf;:=iDzv0o XǬzhl@i0mde9hlݾi:LX<Ӏu4Ɓa βĂi2Joą|-/`̖^[s2 ,Di2mB輜-e0(Bi ("h:7r4@*]h6acO]L3X4`' 5SS[{e|we~+"B ZkLNs^ F4!gڔ[3 '0^j^~jMC{:%Q4I +iP4`Y2 eTi,_i3mAػg0Ԁʾ7z!dr i`)]<&k@L+ =Ӏd,`;Epi`Le0-ӀҕT-ӀM\w4hpe ;^ i PLC21(e0; ݱ"F 29n1X1 EJ*8O}FlR +1 X"c1d92 i1- +1m&%oia1M1ސуἽe.fF9DT.,ӈpL$x(݋L]4b6\g 0iS<ӈ!4 s !p x4b˹̠g0.^LԦtHlT4`s91;Yd 3ă|i E iDYi8/jx"g1t١x4`|<Ӏ͌#Bg*9841H{}ņgl|H7xeU<ӈE<Ӏ~/3$4g0By[Asi`4)sD\GBԑ-x -3 XƢ̧gZs +|:gL5/xi>xH۾Cg/4 ׆cL\c64TN˪qa-W`,CoipV#™sMsoDˠ7O݄4iEDi0&,m0M̜Ɍi,ҐyLRzVKe0t%)e0Lm2 C^sLp"buL64`=GbGȫ$Ʊj旆G +%Pxx741"|o̱PVϚXOP"0%8Dp$j:H)1 ~3C{).';8eR|Xoiׂ>Myt![rgaZBDfrbcsLCU˺'Y9]#TF joi(Uӑc 4Ldw-P멚`y4#سo[n +zA4Y7a2 d†XFDP&=z7Ppz 0C ˿O >-/Hn'%kH֝֌|_ć?f/̧_./xX~b@fW#`/&@ҧTt$:a1A~ Tw)q%e8qM)`jl Cd#^SMdX\zN?k?k¿=N䟵M5'|Dp@B?B3\.,8@Sf7qEsZ$7\/&|f.?kLdqb? J?k`Mmwõ3&/\~Y^/Pux41_;qtWwue"^Gwx2b}ŎvRe*8!OZ$Zq{Gow Rn*SKßԸ7дAǫiO_ִ!|ݚ?}Yʧ (f0뢦?}Y7 j}f5˚V?4v|\M7 5m@0]M7M6eu5˚6>4nq] 7MM?}Uwϸ?}Y>Tl-jӗ5(g\Ÿi q] }~7,ZD4/kwF?}Y>4JQz/kw\x+[eM^СcH} Ÿi{ 4jO_ִi?}Y>r04sZӗ5{2jO_ִ=eM^0W5/kwXmZӗ5;}֎ſ}Y>k ߾qJ%5jW5.t" :kw:!F=:kݵ1M0ϵgIum9?Vn%T1PzmkK8YhIZRW4d] a4g=yjK15_9i.sNhs?˦}\jVwoiFL ȷ4cB5,u?90Ոь+YQw4<h҈mŬl5cMՕ4Ө_\K~u=4Ө_\O~q=쾡F[i/QF{[oiԯ翧Q ; r4紀i/Ө_PQ"|O~q=4WӨ<74WiOӤ_ Qf|S~-fUM+75kG#>+#矻Zx+O+Q{a^-K*h[1^-ːʤoi^$}Kң[uHҨoh[^-h[^-koi^ݴ<}K[W4ENѨZ[$ {!^[koi^}kĥP>>0W܁p9e)A,6>O&U?.O6l xx<`0&,=ք ۺooONoCѨ6rc}mFN?:<QLG[?>|E/'Ԋ7o\6]Ì3N=`~Fx"Dz7hYaZ7h}4~_׏j/ۓ//73\ ?׻pTOo ,'N^͖7yѐBoI5|/mߎi=4ߟS(|?+ԏn~'K "9790<`g:?{5)GVoY ~k:`..)4}y6?IqazktDhS:>Z)zZBwx޵?ɖՑΛ7ג>Lp>'["1]B践$3 \a]+{A<al# gIfa–XXEXϽ),$8͏ل9a Q |,b_Nu,lX,lc%b-֚A{ #Fcئ&̎wb3\T=_G/vXH@aghgMs6j.fb-g=zL{fȹH|'KF^|l_f=2Cv?칛 3h+,&t`Qe ++〙Xٔac<F#vVS'r${F}V{Wx:CXjOz#h'iӃع<ЁՏ3QŎZG9l'.xkM"D`v=5_ء,kz!i=ukz1BQDh PxPak>O{u~}Cca5aD p,zH7j 0gkaR~9fk-܁u$6ϴ0vp9>֪Y,%HCS 1zU~5AJ^dG~ܖ/=Cjsr!0p-+ZU8:א6I&%GkU`&aTma5GY-[]f}^&kafIn6 Čw̖*Gzb3`0f 1Vqb$(zCe%mE^vRU{aB(iJFh˧X7V>{Ԟ8mQ-y-4o9MܶJ4۰j+af-͜e= d/A+b +YlGlM+lUNlİu…=a>-0nUCj!b'9YF!a^s‘bkY|nA`]:c(FhXÂ"l6?,[,LhXXDYҙNZ䵀K]C-NΤdfa4}R>ٶEC Y+ُC{R63p;biEG{C9īF:boZmNpl*YSFZP_8>X@Y Y!v`شf?_`iqۂ80;k`:Wae Ǣ[ +1KCBmzA]-yŚڜ¬W:V`g`(HTX-Sv?qjNv$f{OmiVafgXIx :U<u˓'aͰ+a\baӂ(0yka}?fQͯa; l +g *0ll8>njpܴ06awr-H9 Cl}%Vrͺn gDžu +D θ&n;̓?y`u0C؇JQe:7Yaχ]MBd.a&ty8C/}&[Kqw#o0xjQ6(OY Lۤ27ih~BЂx[S;1;h0I VԷ- x\gic=sS9`VevÚ={|k[k!lZ0v7 -8 r~RjI6<-Xn 6 s۪aozĆx ɘ]0pbu{fDHXi[~(;7Xmim}(V:&N:A*n-LUvT8f3b +"( _Qvi]NHfQZѥ D<``͊!bUNlY\<]Gf.u_Xbǹ@~oja uaT:, )ir&$x ){SrsIf)4]hfn܎Mik=ؼm* 5 hm[+t6k"{qL9baPG8;4zHhn50 xN ! ʶr!8cm`{fնٱq`a˷\x*U m "gY!E+ +Q&?ͳ!M,:kՉ8$%0\bxbNvUÝK%l#ak^SӞ6cWF#l6 +؆4?0[m 4Tth6֧:`w8wMu[L$ϴ :c락 +Db]ӚVHyXYa;  ׼|Nkê(6w"oOVmw?WqlL-a9vn7MA2[Ii +3H< k`/s2g ܞ1gwܞ1 z0whnϘU혠Odޠ񺾾N[nϘ`]\7lJIz@̍#wGL`v#&0 %m7&04 ̀L Kf0`k>1wgL` ?nvL;JXMzw6WR :?)dTQn0[PzÐͣ#bMsSyd@ywݝ1' 5EǢ`$3Ǣ3&0~s93<@x}bNϻ3&6Ve*wGL` -19 TԻ#LȀFFff;)s2 sޝ1U73?wg̉{nvL`?]o$gU tY")R xar aT/<۟bٟg>9Uğddg%.Nmb/X+}Jm^X9yT@l7̘ω +H=& g6?hZXcˀrgAyNlbL0h fm2tV&D-e>ePOvއ0g=2(HD{L0kh +hє{0'2J Y5_+o&tK_S&8o&e Lv8&b=GQ < +c47f/iG4cBÛ6D3&ו=%̖9c>l +s(.blZ -0)ijƖ܀S/[OhN7hlol9<ؐ lhQ h [JMFrcc#`S)0آL TLMb.MM^gc'`S!+ТF +lx T?}٪ +T[l6vꮀMUXlcRE[L^ TmlQl4y-ZM a=آY :lj$7h+65Z΍-Ѐ_j5`SEQ! ~twtzMWkCl76uz-:M}y,}C=`SآTl7tlvlv#llb~-h6ihvll % Au%@%`S&`fcKgNfGOf'ƖΣ͎-NRU[:646llmlo 짃`<>4AٶWE~Axïz3oV"RpO]; W|_#Lr"&w=K%X|0N|&n rt;Ns.}â*~ug]RaXg\YaJCRd>XQԟ)}_S”<]cjr\[|W%(<|w0gT a{aW#N륃vuvz ҤadJUNv6ڇ:/gً#o? Ȗ~p5Y6r1-p+֫|Z݁v1nw}m^;\s=Xʵ)x6#ݭ&,@6@ 96Ejf_Ur1icO cd.Lwѧ\ćf^E,> `6j҇? _`srT Na9 +٨  ^&~`7hWe];*kx6'^`mu! ݮ9f褧9p,N&`fbIm +<Q(9F+i_ W`pu;ew[,0`>v2<ĉ]}Bm}>5`uk~\o=aqˁbZfyE?}FlqcBskk܇t#W\-G}ݎpQ_/%u +Οnt@jS`Y0n1/܄Ys|$͞8(c0c"x`'98G+UUVw GV-( z-f9.u,eɯ=Nl=؁?_72sW%_Ac~FN$^nL; kf0CFR=IÑ]0rria;SO=}Iwz +{9o>eΓX%?KY}V @>(mVe9A̖ru[ +x$q|d.]u 1"khn~_/yC9F?7|J6G7\m"q/k9wIC6 h'[L)Hl|yYBmP~i)[g(A[7l.lB}:{h +v [ >:O_|AD"aD!އXϭA)dxs_ꁜd?+d$ >gj~ yUnPEkMhg!hϒ=0M^6ɽ98EL}r*@9 G4#/d7'[|^?[{b4>$[}]0@6jM]ݘkc~up_sS곮saP)O) f lĞosƵvk#e^zfysj詒 ʉVOk0-YD{/a^=7yoT׳:C?z}CVZQ>@X,ݚLP҆s$sKXOl|E`V_v|uN?FefoЈlqNå< ~#x]L(fU8 y'z0\ث|fcc>~,PN`K(s)Rnoo=) +-@kQqM@$. mK;7O>%"H[U\rY\Oec&J\jv6)tbM"]>= c![*!`g@Ԁn4%VY`HbK3̊=1v2>-q)#`(*t0=(eM5e0+g9t*@%_m|W( K2[wLuY/Cf3:o ؅4x.^o k3pو=6>;\k;`>侍kO꓁ed,D!f~27^=Qkzt.MR.c yF5'3DždkXL?&A'A +EOIߌ ٚXf7j,+0- ք,U$sZ`#ȥ +lñ$ٚfolύ ``6=a%q &ףla'$<ր6Vk.P Ȇ^u1l@Y7 ֵu̷3"[\VND\Xtl:0 FݛifpYx=Caywk٣ƚOfXmv[4e~@%% =ڮ-HZ+d ˞w7K0{~t ȇK̰?rqJ;4FHVlZ7vV*u#wAT KrU.= `F>\^:e>b2/dgbubm4eQt_V +') u[`hG{Iԓr'y]],դJg|smnYwoA~)O^d Mvi:l t)}NF0TN-)V:1Nl>L);kHڦH{Kͬa(Էr^'dLꢻnCF`|xln$K6>D'Lx!d!+DC8`>-뻄IgѸa1:0* +Mb}C"F1+P_Mه)K{g#gv <{ ր~W/5nQ&VX:dץ*E(t14Yd f#1S>AzP0Z⫭afO/eSQ,_ٜ.hlǐ"G?nHqAVL~Eu ´rqgM+*I%5j v FTŐeKw6XKT ~zUz @`Uﲽ@v0c %c^8[>\=wŶW*c4i3]x|`18yH=׾b&ڗh TI6Fz,ͣdboy1}A?ţ Pn"VgoNNWS!4o#qͅ[ OE]+SԎ1pEk ,Fdsr`+3i+ C"l $k*[b=8)-1P,[^AMo4K[өʛШ u.F0,pheReAl&]+J$ ̆CfQTq$f`[.Ҹ=}RdAM% +ʂeyʂ(.hDYmGS?薗gYpw,gVY,1*j,u"2>ܗʂl`EY;bl(nhQf-J Qw T\X陧.BN1+tAӨG JlTDž t7C (8 $ 6*eQOE ~BUP=) B5ޤhwNk;Tli*R/N0F\ggt1 +oA0CS5S ;6iB \pL) ➓ G)O(Wa㾿1 P?n$ 8t&k~ɫ0Gข"aγlkJ0% +2/J^uA\x0{(L K^AT?h?UAvouTo_`6 +:Jj.i'PaƺOѷ)1&iQQgqul=QTg*27{RqUTJ8$u1vk%ak$ Ma*z^1)=4C)y ]3 `y]IizLѕ%?Zq6o]Y_8"KyySݿ=TS Yx,Ǫ5"lZԏ $+U'<xj ;(BmK3Ƀ=+sģQUtpzW9I'[A!*cUa<>}hQEl/۴p@1FJ7Agk#H$]}yXIٙUtV1L3!m28(c2EgAxOfjۓbE1ʁVmn͵}oip(frZA|>D2Ju)I/vm}n$[A0YH3oIprӤ 6& VM?* ͭ+2eG2ƧE,oXAEX08AP o.aĤ/&GCtAٝҚWV]aSqT e Xz墹 t +dA6`a,L^xʂmC;I#B2\WYZU.8֦/[PDSx ^* vuا*%,2`*z6/ʂx JdAd68"[dA`gDQd 3S|1^aP(?Ap8|KAv՘2v@..\"]+#l){K;Т bG3"., bsQZvׅ^sp+fWQlC7{_!;:gS jA}M& }eaɖ ux )Imo + jdҨwPf%^i1ce]cA%1h=hǢ :Aφ䧖65A`E|Ha"{ƯXAS|Pg 5[K@ oB6ߪgjDVuf!E)OWg6=ZG tF1=SĖڣ@AM6rq m7ZyA@ ^1P$S7W hvg'ETis&{@?- 0{K+݋ bϣ3 $F'UA\DXCcfKh$GKRiv:tlK5kZlژ oyEl>`x8 ǿPEאDz'9kQ)2bo j<x[vrLp4އއ롤/Fpq~ 8CQmpcY[I =lKX;b}BVZUt?c4"JxPޓ3#50[rq1%Gۅ& +TG@v#+XWx znI#:.wv]@)P QoZ {ĺrz0DNܿ / +Pw=0 kTnl -r # +Ujl¢-ܰ 1\6 504=wUwO0GvVN/wwޅ#Isz6EiK )xSl+< 'Qk˄6D5b Ia iڍ%R"6Sӿ B[ e +6~o(`Smlo!`Chy6oƖ#` +|78=o}4_-Z+0ll6!hc9 C%U[؀͡9`cD2 6'-VD9AnlXfsыL_.6 uʆM(`s9e| }%ȣ_ẀƖEmb8`>nز\l.7N#6$[2;͍Ɩ WfLnc˾0`s?1bs_زܟll7jk2UÆEf#`FY جlllV6+N-ULmpv- +^focK0`YR جlVRllVn6+[*Ɩvf%<`Yجol9!P0e>H9I)WJQIXrH_%嫘m=`vj^0GÛ^r +V1}_w '?n6J*ԩajmus#ʵq';HȆO4`Uc{uG6|p޶hw2u0X%uv0wŃԚ?_9}taKR }([6,d7dkl!" VvCkNa9FAoAI{.+6VS/Wŵr]93jYt2G =yzӖk jK}Ns.+,FFӵƷaB}eHv |ˆn1; _A1cdoN5fvױsvMG#cӷ_³=XH =D׻EC|g)K)W_[;Rэ*gɊɾv+;gf2pPJt3҈Xy y~bʞmmMݴ۽d}_回ѣ~;m+=qJlEMU"Z{?as7/#^O87v3Ϯ^ռGS}qof0̆o|}qc vOVč hL9/XW|ǻ0 KϮP{wo`Ξzj``h?~1fÎTӅ-װ^`Lv ,Ek7N<;ٸ>9=ENlj"` oIش>gIRj[?I(Y)`e. +8Sڴ`Z{",rp4`MO7wYk`?;z0tkqbމGQ2ޚ> pV@'},l?|?<`þSe˒Y vHHұ+&F);=?ciim;ʨ9z'8 b-yQΚK] fwuN LWoq5z*6 8伺Xማ;{=}``xUb}j)GZl5>K5]a{4~pB}?==D|iGFN;fK8ʲցHSѪ<0ڲ^#:Ƚ) +j{ua9H`iv{B~{ƅx_DpS3c0]J{7٦ǩ9G EsDc~n5K/zyOK .Ŝfl3 &}7d-ձc64fCBz\Y4]NzGR0lwNTT:]:-F;U2z9]hDN~\az7V -aþ`3/Q+LɅ?_]ڽ޼`To8ʯpR,u`C^ab;t zdб7V:ʨzCt3Y=dukiy=r|@HM&&ۯvbEW65m7YM;Q+&V}armlU#y9Q :4x: +rﶿVd\0Sd?_kx2t}.Yѓa9-OZߓEgy|z'zWgOǝ?Ć ĆI-ų| V+aRˠk)w9{!>>B>=B@I:;4|Xn|ȅ$%裬dmAL =OvAzl %Y;2 V& z2]8Q{& ߹:{P4tt=WȆNhgXͪh7ZY. `}e8D>Ahn`ِ仿Of }sн 䔇!G/:ͅ6_#Bn.Ps-?{ơ "Ҕ05{9͇% .Hl™G?$ľܟ_GrRYo~*Ncdq\lo?cNm7p#HsXߠBf3.xxd23.،gO  M;6SpFN?.zoJSrQ.>-HV-AL:ϣә%2=R4bXV {nǾ -9_ {lvϸ&6CS~ `OT0 :(6w0\3:h_5ؔUMh%M4ym2l`ݿW`^K9d;u $+˔+.FMUUe^Jq3s?3#Ú~;V +AP2 5ZQ8JBL4K[b!8'[c=ўnmᦦ.qح.ƪP`bvݮ[z^Å-jcR/YW`^Ig-+K"|qV`O[ +Fvu 0r+n"#CR|Duv?/cO&Q n ])t驪nk[ 2CMXƙE7g4TZnn׽ ?+6s[H ^].ozV {$+,L_ESZ}|@i{W.W#?h?N} +4Jlr[n@^PK70>5Du {3Oi]  [5Xʍ9}*>SJ1[.KHL Ul-LԃvgAmKsu0[h +!Ν3BW[8:Zwtr1[RVo-.fk'tNi *? .ȸ +2?>t|#1.`T9Ql ]W"+UkW`.T>fB' zoK%q\k[vm<\.d.ud_=}m$> F1f\Wy )o +vUs\`8I#+ Lz2F.1KowRn*' b9~2Zydpx(|"P> B?_ X{Ց>.cҲ]+W[|vr1U2DpTJFpt֧O.P[w'c.,='ŸR30nڨGp\b˔.c#n(V.ʑ#.Oj|gUh'zD>r擧0Sd`{>O=t(ˮO<3˵OGy]|3s<H NV~Ē1>wjt0)b$9_U`eHõtPy>?-iL@#&ٮ`v!k@qaoEƅs}T%lkūw`75{;ljBdhp] `6X<= u-ruv߭;R& b7SsR71˪L`\0- ľծ3ݟo =5zX ~ΪoߤV|Z̽lw 'Zn՜Mi`=Tf61}x~;<}mF?-݋'dط! ˤo{)V +PMfnmPѰ`kVں FtK_;Nq7uݩ+{}_:Ѱp'|{B{]GQ}]>9[X|?knaϛv~b!6uWLf Dwۙ,kS9ds tD6<FɅXAOwx}.HP1A5>3r}O㱐8Va VV#d4,JȠeQ6;uHIZ[( +٬{ B0jBG|!{ fOc{g2m5RV#>9d] -"[zhݢ_~4xw K +'{dP ka笏^gD603uk [>H&g#EvSd-f)o[EfK9iW+8)W9%䬵%Y"c[0?;Yː| cdS)f8#⥿:XӡY3b#vp޿,s}#!GVso>sdmT?ٓځH~xd>s6zD6Igȸaϭ] MQ[Ys\D]q$%@GxVޡ1$G' J3=Wj"{{4^,,q^*ɐQ<-_8Ȗ&[ЛiEQXi'GPAYS%|P_]<_R6 +U ͖.zN>YMy܎Cs2vRw EBt`]߃K %_x?3d0w+G}g3[6p:ȹ03Y׸Eev : v&XO|bi{gܢ2} +଍LРޖeI{:Qm6:EarLgss[tlk3~%)E{|NN>J.{lPH˒݃~ =s7M.lȳi@!HEgchW$4sdA8 kʂȮ"`z0[S&ɂ} dĄ 1ZQdwߞVG$Uǯl\ UDF~NRDRيvi+UP̘CTA)OO޺}JRw8")* uU$fOS  S@# +6RֿMDDNo=X?O" +tR4JuMOTA6ߨb٪ +"9Qib=n\Ep>)JtA !]$D:$ t(,nF*  TXhHS} mXuAbChEDfېB"UY1g[A| Ğ) +* Q(ՓL (ȆUjks -G 6XE(^lZO&fgf`NDy&Q5V %Q.r콤&VnwNޠtޫ&H ilT+ma@ISc#lHv 0Jأ6<Ț$Ags "[rVET0سI3NMrIȴns u6I06Dg$(U<-iNDvv)-{VM:&(_i<8#xVj +LJ v*nPRtv=Taw0XMpgu mTAd.% ?H&Umɂyz*H dRD +38X۱s~gRef1kbÖb %KÏ~춳Wdײب9/64{F=oT(ftPu{+Įn&ڽ[(6|3+63[Of+ 5eB !yetZ?+o~4$~K b#܏BiȏbwsٔElX)ID&ĆvϛdmVhXYZC6=߯ +ȸ6:Մ%*DuzCm!~$6Dn%4D~i19nE'm%(J֏bNժu[l3.ɔ]S yEu_oKx2IdO-؝mȻ 8E"{R߆- "}Rbò%M}XVof(]վqR)xYIM3lnYruݎт7b/)]|Kdol`ݗվA6h}DƙϷBfSҕgF/]慻rgTU$v,D4|J }hZTҸʚ=k\Abjk!Lv?2%uC"I+7`d/SҚ+oeQ+2_N%{g +6c\\-/b2fy T\yZlK6pol;YhO֊\lveC2]p'P ͧaXѰ l8"_T9 r=}\q;di Qs8`8PdOo,qgW 6g)܉=8AYg ?UaCh|H j@/y)Nn=$ۏGILpйX":1WaJX"F F;6_,HMVA;&kiM?L;g_?'C csȮc ПlzR{;X\yр dH !f؁PM]iaUAN9XwyYzJ{yNV8220g Ȝcj/!+RGۀaOt3v^ƟR'/SvO$h5 , tG0{UyZ"^JVI l[86{q6]K +ƾ>5הvjA#$1:Vص܀n +ת+ɧ'ֺ @[$Zqp.y'd{J+ +-|k4t- .j} 2ֳNײu`^ǁ6z\[r`ck;=Ykvv?SP6נPu KfCiRLtaH77U5E>& Lk5aTϷy e'O0{zQ7Uj{XWNqXbZzwZӱP6x}:7!c_KDzP$$s.ұ`q O:j.cdk|JZ$t,WceA:[*t#t^Q:BfFʶ1{F&' :ӱP7\t,ԧ2ru.j +>`FRt}ұ@I*<=1>4$xV>XO;?XB0=BұMFΧcD?_kVI*4[> ZF' $;P\OB=~<$ڼcI ~8͟tXx 8tq-Ǻޕ7.ˏ?X>Xc]ñwцeƂqR?7l,oɅc١\u{8>|±l|Ph,̇gNXv棱9ܹGc)Bvdh]蛍)G}xF_o6-ɰ {zec'{l,ѥB<\5l,"> u2rl~Vag'pwM|±ͧHυcy˨udƟt,8G7קc<^>fϻxpf;eI>XX\#cS2|<u{Tc=%!BjQAk ҷh~^}->չnpc!vκN%VERs6;}'2y˼ +lnlB>,3ی"Wf!IU\/v*oZP*ɻ.֫XK [̬uq;WԝlN̟1+ӺvX9]l#96̻–{cy]W^}w:B.5yw_䑿ie|݄3k6*Ùg.Nj{B ?_ccA/e9dcmO{,C3 +k|wtFߞC{MI:Ar‘w.\x:ë%Tկ uuƤ7=665x몝-auΌϝ!=aaw_ݿMp'{U6a-zz?uGqE!Ӭz+apϾ~>`UH5 h+ +1z\@TwȲtkiZA"fjv[&c:ct"&cÞPɒmt|,d8~*;kXc4M|,J\c6jU< +2>Xq#VqP" K@1|@demk|@1G7Ȓl,ky Ⱥp F0O2v5Vʃ.L^tϭYNJ`|e/GdA%'"^S'd]8X~g 6 +&Gd](a3.>cYed]6Z!YFg}F 48#[A5[1FgdUy62]Fv82v|F=gda_Yn?ߌÓ#.{VPlP#UHR^ܥ盐U$V7! ;7o'd5W~Qћ.vɾG5rDƩՅ::o >ثr\a|BBpTEŅO5Z mW?vs6x٪ +_ lo5@6togc8{\0-jAƆƀ~6vr2$b40[yvws`ưSa. VA;_̀Arb0:~ Z~lFl7Da ,CqæFhffx7[+a׀ĹjCٸD4`m7 B#ƍ/S*89ѝۀрҧMS+,0to||ct1[%h \Nz냟|R:AU (qlz0޾lwtSwdݍ]l硑e5(:eg +& +WU3n2N 6~8 -]p mS6.>bmo \0hX M5H.XE4Cj ~5\"<pX|ېӂóك{tc"2/ g0a3|ogύeY|?WC1LCeW3Zl  nuL doMaٰV{nnӂigh7C Ov}9NE6S,.WFl-ubʖ7MV<gpCآ XiTALAqS-++ +pw*x\Roc*HiWH.CjPmQ3GWf^D{նI7fߥ6#Xֈ!8yǚİ 18H (NoD"VhgoREvY6kј`pG)h$ =hoc:d˖A =r6Ƭ`bS O:k ;A)B Y= +j] 3f.*/zD0U-f {ڽmvXǛ,8p6`cc{}p`< cc"vFyt9`U?S0-_lԃ0n)U# +-5IĞ!AS^*Ujo'+yo +5ӂٳb=mЏ]O"F3x~e#G{Pc#ưźe.RJ}b~ к֕q?"蓘ˀ( c#Њ8*yx 4*J2`y +XDyZxVcn1n1laԷL 6X6vB^{B`b@#Pv'Ppd1\Cb? )U%& J*f,xz69668#]yxTIF n,9]v늍avĐAO߀!>%! +ႰTcpz*(!`OncC|: q _!wXßcO00:f+S/~c}`(%@]("ϱ} Ksz_Z6Do +:~D0i +YÈDI`] +$?fJ: `t +ɦQp_oc:*f{줻_%SRFw` A(`j@5<讓ݗ%G׀E1A w h) -YպCdy>}:ǔM%PڶE"{5jc&Q XMS`FK053*Altؓl76[Ia[MZk*WFGՀݭT|/;. {`F{GiMby fhTP +w6YfL h0~hiO &+uVA#  %(% %rm|cl?0[L 9a?*z ޲L-n14EnBs`h_ghw=xZ g|U0Cgf4 +sR_fdC@ +X0Gf2c7#fF/+K\=!_(wn5Ƙ9 krHjl@kL #6jm(Z8`4 +fEmM+vZ6) X_,oX,aŲrp "DSƔD +.{ /ˠuګN#fˤ3RFTrI2 ӧRG~uEՒnG:N*7!,dgM4Zw3P^Ā"S.mWYx`]:~M{^s.e;u)[u)~0Y%:~-,;=!`*?wmB(3Uq(!`.QrfLܗREhw\I py + +z,KNX*# Ps$耡=RGDs%`f@+x",/X"*`վ;P=8 ԥb4O9XZ fcG /Eߌm+ɼ(*{NZ"o NxEƅa]EЫ_jA[ /CK +h9!N-kwj /E[)2l۠|[x=56K -S: +0~@^ +N[`}k@-{ß>y)z`ޑkP +5.'K2y>y)N荘X9uc7:2hg>)I{~[ ha)?A1&. 0R~hd0CEu6U +]H `<*`xûVQ%0PS7^U ;?N V:J2bn3iЌo{Cǯ>`C˧F/ӷaC˗1}t + +ul -OFDa=2Bil2fu3`Gn:"6GgcX v +g %7:J,Bl4yV0th9Yml}Qkze.pVv@0JƖ5CZ#`X"1m*+k͵Ǝ8`8AE˴T|x0i4ز ;"3edUػC#e# +mNoL./l݃C){n² B%W]Sހr{cܛG3[;`1U0dY0LCGp{TXy($R ,̾ݖS:͂SP1PR]fa,`1kl6 F`bJq66 7ጚ[ +ۀ-H}`(*`Y'"V/ewkg]F?@p`c:TK2|ms01[?QDĠl9 8 $l@ 'Wjn'^%'elI%j*y +0`H<{ R 0ق}zyKo*667vԜ̓bU[Py࿱E(0iAAl +6!i݅ExE2Ep @dc$`xL ec&`DLvOt4=M~Nj"l6K_&SgX*@Sc1j Ha)"! }zxW -R \rR0)M!_TI8X`n^BōQਰAقlSnla&!fjEl>6Δ=>#*k" ֘0o[Vn7`6Ȋ|c8`S2hlʧ6e\0X!`Py9`SEU0&El7v2qǿ5,"Mql ̍-M cm\#6{%6Z,6 rDr9N/[;H֟֎F -1˗w4q6 :6؁#vѦÖ):]QT]XcR666tL!7 vml lh}k/` nfƖ€+i +_ 6'á7v^̀πЍck>3 }{s4-S667t?i\ ّ;`<`>=F/>Bv6/S~cnf] j !`E!`\66]7KlRlYl.ʍ tt0|0e1`dcHjUf\ĦIהeYװll1w 4 ء.VMp;a ذ t} y(`0m6x#ŊicSSQG4iPk!a9`F+`~kcj o ش +ش . +=6̾l5A 4O 4] 4kۘLii*Ō.`aml1 4 4bi +0 bBi^iz1y%>w0?ތ[<VdɀMˍƚ!'l5 4 4lhڛnL󰚩lnl1o L_@Xznh p 4 4b0@X {7PjHpuqqMMܹRg +i&e uyuMMs-fx NxiyMsMS-f&P kMKM+M -IZ +6r tmkykBfBflƖ͘t -a!oQfFfXތhH-Q$&'["S6V6#Z6DlFlFll 5k6#o6DlFlF|! +،, +،: +،H崱%*`3:*`Lj؛Tp%P+`3+`3kcKWF^Xft@6llml { ȈôA!_G(fNV옦D}S?=go?~?ѓ9?ŹK +j3<3dg 0ڢ lK|NdbU`Ѕ:@s5# 'FPڰ G{ ]v3Yc`Z_k:ec[\\w+k;l0m 2jq ~-&&p@>$|`Z OPe cw6b9 ◡M(xvT[SxBKٙ^y*"[aʅwdb/Bc߼? 6\:}C0볳DĘ  Hu)/ޘˍ؃Lإ؉֟Əyᙺ0Fy瀴0L\#+X04+?Bb{B0*}g7h 'dKEv$ŠE}00$l^gޡB{ QۼEm/ +5(v%xsM۝;TI@[Qe.]5` |vվ<5Xu&] )8/}~Y=T6lp'ٙJ`hE3/H`Ȁ+Oΐ0A 0 4q djfY L'^wB`49,z㐑ț`kCW.xc`2_p0vEbAm|gQZoiaA0k_| {}좪HdCwfBv;Ǯ ,"6ˮ~u2I#.#j}zzl{ֹ2GBaL'`6TT?ߧo\i>G Uj1X Ulq&s`TDΰAEg*6QZm|P,"Mxl9Ă U(N7XYzIPȎc XMbbޑdig(v{]-oJ*: ,tp3{-Rα"$bB&ףM vAcj2}[s6Jpt.yU;>C=S l5  /$۽;8T$Kw^:bxb0M`6Nٸ잨m]~8,ߏ``8_u!ĦFvv#ؚ^R,fSJdTl]~HuoA?P-Id#1ۤ}>C z^Xo]];j_n`՞a?2;bݽX^~7U#a^oM_&d\a5;3f =Zdy_P&XBSXֿf3uMb3`+z󠷣P f㔭m)ۿVȪ%GaCgl(_md T\{f-9>؟b^R]l@5":4t1ȝYj'V{ B1ulu  ڄz>-2mƻC좿֠ڵs;U3.VH KbKdd\RVwv'6Aoõ[D"vվ/;`7ǻs1wWi+g0,麟qG :h3^됢 wCVnZ`)rlA=\ȮF)_Kv`TWtf[o[ڟxm̆)xB0xؠ\sJdfLnz g$'i mŎ1l@7Db"o GKxӅ^Gp5M>,o=Ŗ8=Fqg 6v[6mZGZƌ[9t{wziW]s+vE/VX[^ݿM֪A!-mR;lͰh0غF`I `TWx\EV~Mc].4?<>;;Ʀ@/aMakuu`6X=M(VY{Ƃr4wQ)0DeWn α޲\lq$:Uh$Qe6bㆻn2̓q?ŏye5n6H/*fv懩rEoV*w;2dJ+yA1vy8XL٪ֳ`(ċI]`LAV\#h 2OL) S 2P̮:c*L0B(h ΁ +?Mݖz' 5%r4Nzb&H0d : c@fF, %d1DfOCWϣL'dL і}1!Dv8mr2A`<԰( `e&xaF_I덙 2.:ߘ *dӉv<+ ?5"A@#Ad4U$ho>i= ?MnK 0,^fT $ + \D/`l(L DY &3t̷p%S$fd6kAW2E;Ul"A@>mLEg{7HF˙2A("z{16%vƎ +oP,hB0l? +t̮_ؗRA;\㷗/H56$ G/lNTgb넩 >0le!:RAl@vs[FoO ɺ b>23k8aڇug S%d +FV@ƊC=ҁB.hW- x WFT.ebvq\Ѕu'v&S.7dރ (Ƃ.? bAOy +77{S,k79Lo1fûִ)/}nPw@&PXYcP7nT!6S*dK +lLdKpb*kS*nNFeT|7 0 6ѽ/LX_;zR&drJ ڟק`9b D lDv2nC{_`']"}cL'ctW@fD;ш=ޕHLu*b$l swyuE)jPCA'7Ⱦ3 +O!*BA,  +эi=w +YL.k +BFDޟ?PPkrwaBwj νp|3A|Rܺ~N Nlŭ2e8&&\6 + Ύ59exjMfC8Ɔ2A<"۽D,fx.n@~"kGvb_$&(-C3A`83f:";ϹC 32#n)!dZ<'mv=P7;Q d6Ա,i@AO3x;/GRCTn Udm0|1 0YXP-HF7.4@_X';IXLLO+ho;8E(o u;lU ՘#H9sa޵S !2[iOaE[ Ė )豳aKo*;z.ܗ!I+D٬N l8}h}n_N<{h t܀U#A`L q _"f +m~1唖)DW.w${1F׫! y>`B?ژ x/[d1f]3vjӱd1ަ{j{qSKMfmPvyk 8WuG=yP}1sU BAz6jŨU<y8 eT_Rbrpi .ƂӲ`RAEǓJT~ \q`.P;B~x!baVXͤk9ˏz~Nł" -L6l M]/)DA2x_*գXm c, !i[M˅NZł0}AX0Ă%#w~Xއ T& +J83/?KquhEf#4f cX!Kx,0J+T{?@tfYȗ ,l욃*_018@{ 8W`a ˙\gnj罉لNMhA428/Bꁹx d Ӄ =xr~aca@Z =J[ɠB [ݺo%l3{Ol.{H?d"Z g0+aBDR9Hx~5ey S{qFn&])KO&yTfTԑlvIG& +zڛ^i%G Zl# 8_`HhC,d(?[a&64+fw닅pԾX"Kp;u:^w KFw.ŷ6599½!d"$z%ij +fܚ)%Uoe`EhЋ@C +]=A2 huH}]i \1L0R üw0$J)!\[!tө:'Y3D]IjW.hnj9*#l>@Hcsw0p;W +q+z ;ɠ%!UUod]8BB"1=^ +Aav2jSګA m^A]vA)B'7c\;7ы n!cF(M&Ո=>G Rp&: T8=챮[PXbr^8eŃF3|?P}fƃS9+5|~顽_Bc-X?!OL!sV+?v[ZKB +9]& %ƙUBH!vʱN8lthXFZ-k𘶡25wC˲O %dž|Xgڥ/ + OPk^s)!Ŵېemx[Ӏ:ފdl]Z +mh$+=VLJ_`X0wB ޷o.af Hd{c¼S pf{Ϯz$!lU#63Y#V8bK8b6WA}=t;QCrJWج1y8b}w]Hqt="!Rb155{wSJ,!&Ηta9V8bY#D61"N-UCGp[͘}$Z8d]mGxquBQ#z]l8c]5J!ē8bj#Y8d؋8bCY#j`%wQ]G*!BCN$k0Kq Y͌R}51Y#I#6>C93F /ʘr!v`#f#60)oSXG~U0IC:GlfƳM,:,!zlpt,8,Y& +pĖ% p|18Dp|#8bJU-1XM$Ή=UgR5(!S8pO8BK 8d6-P< pn?kGLS*!WE-uNkOf8d[[5y8d!]z%ICv2U|>8dA +pȮFS%K~8b3Ó8dte"S8d,O8dh8D80ݪGljfl郳lhh) pvL'#*!,8Dޣ +pB, pU! pYC=*!,!zO_gbQCvfRP,!aPs,!),!cc+giR..0/ pȾ % p՜8dO<~8dog؍H#M\,!\$!UC6sYbWC~(ت^j$!{.|fE2ޟ_ur8 p-YC&QV8`6Gs:*!zJ, +pV8 p޹8Xvʔͷ8dSp\Fg;Yƚ5=̯*!RL3 +p8" pι8d} 9,ks18DtMnWXؠ0t'&=YMm0te٧]JYCjg)U ;x|Y8 $ pȐ8`/D2JhՑeΉ|5تӤ$A}~.hE†bQCνlpfX[BYCHς$9Y-1˷]©$̚8DH8`7Gk)Mn$!4UCƽ +pN:ZHH8`l/$!wlUvQY>eKdlTm?QAqs,!{3 pf*'*{v.k"!Zl f%L4R?8`6x" p>PNUYiHIsjњ8`s +p% 9NT,& ҆V8gDIδgfObqR.ʠ}F9OlsV8`睉 + *pl0F?)p(")pN^9)Z6VMw%GVolEsB5.+p|EP8@mdص^s)8@܊焷98@.٪҉Wf}(?8`Ϫh +9e2[U.S +˧UsRN.9x 8'R`Vԫ ;p{Ɂf0ف6fy]Vhd +ǵCR+ql. > + #6o<)p +0Ml>4YÖث0+pP}RWd_sI6;Wاb +ڻ]o} WmZ64':ld0& ^# 8ܖnd&LӠ1p g4p.f{b$ Z{kJ 8`pȹ+ppЎ+;+ـ%[5/wfW 8xS׆YM-fK +̤eԏSA];تIY 0Pe6e5&*p4o c|0V]~8P(/QOL)$OT42W )p7)TL +T6+p0jb,pElV!ʦ8+pP{ɖEzIfʼ*pweU6oUy8`v܏gB.,8@_3+p w/IR 2f[EIɸ8 p1f2sc_Y +*pPj#`gT ;~I)UN{mw +KÍ?LrV4#Kc8l(V8p@Nl9eiMeeH +FG̬ +&O3*p6ʻ88;F8lYm^21԰.V8Oq8Ó$)p ?)oV࠲믔8,X0K-8 ngVde}>8 EW14NAc +Tg#:U=1^8<±ו4Ii`? +ljgeVpGήIc׾pK +40)p̉~v8X +#TLVࠠdDVN6MAvj*'M!6Vqbv`Q]gN^jMCe8`-? ˝8`(VPсC2сd/ Ӕ8pPL߮IsrDg&BaرKsry*B$v):pG":pl}蒋f:Ä֏ G.Mp"ł̾y8`8[ct(8*a/:plX|D|S!4N0#:pl_j8`iv8T;@*9p 2sMpPRsj. +Mfxޭ&9pK̾o ;:$7x!9p6}|2Ip$b: +[\y5M >oY֣$8`7w2y$8pZ*Pq |ϖOQyƙ$8`w& ,6YV({G  z +0lg -9~ٜeZ$84oDQg2Bi|lw _t˟ICgN-$ Pɚ.(7iM:IpJBBXxJh+`c>NP{y $kow ΀3% !L {H=JpJg|*$8%tC$!"Ip'9K:].I3PDwq Az#q 7 ΀BRE#`jN' @ܵlI30|Hpƃ-Y$8vyv G^:1$6܊gv"=g ڦ;Jpe s"yP{ o\ +endstream +endobj +116 0 obj +95686 +endobj +117 0 obj +[115 0 R] +endobj +118 0 obj +<< + /Resources 119 0 R + /Type /Page + /MediaBox [0 0 394 342] + /CropBox [0 0 394 342] + /BleedBox [0 0 394 342] + /TrimBox [0 0 394 342] + /Parent 120 0 R + /Contents 117 0 R +>> +endobj +121 0 obj +<< + /Type /FontDescriptor + /FontName /EAAAAA+mwa_cmmi10 + /FontBBox [-34 -250 1047 750] + /Flags 33 + /CapHeight 683 + /Ascent 750 + /Descent -250 + /ItalicAngle 0 + /StemV 0 + /MissingWidth 500 + /FontFile2 122 0 R + /CIDSet 123 0 R +>> +endobj +122 0 obj +<< + /Length1 2580 + /Length 124 0 R + /Filter /FlateDecode +>> +stream +xV}L[?w߳108Ϙ~@@ YBȨQH6[EiȢnʹEQ5M[ej7=PUYuRЦڦ-S&lZvàu[];{9{}@ + +<,*B^\+q%2*D̏PPq5DKӞDm6?E:Y8fŸоgMg1_.ʨ&&Hj&Ж0粹0sںZ6 2Y;[l]!E6܀5x.W"| .d`bp` ({ڠ}wK9BeΒbGVh-MxuHS^e[m ]sɽq9TU>=QrQ nlۣykRVU‰g~wB=JO99TPquɶ#0En]'UZ=uo~j'g<h"0Sk7z0X࿴]O+kqOרo>^6wl4% ɦ)?mڊ(w /R08 Яu|n47cL[[y,=9Ɂ< 1s^cV gތ KDcl$x8-'sx*pvT8ɦTv'iYXBu#nFrIdRq<Ѵ`s9F00zl">ߵ dOo,C6@Pޗ];[P]d7xضyQ[c Q .AlolY E +endstream +endobj +124 0 obj +1850 +endobj +123 0 obj +<< /Length 125 0 R /Filter /FlateDecode >> +stream +xk`FN +endstream +endobj +125 0 obj +16 +endobj +126 0 obj +<< + /Type /Font + /Subtype /Type0 + /BaseFont /EAAAAA+mwa_cmmi10 + /Encoding /Identity-H + /ToUnicode 127 0 R + /DescendantFonts [128 0 R] +>> +endobj +128 0 obj +<< /Type /Font +/BaseFont /EAAAAA+mwa_cmmi10 +/CIDToGIDMap /Identity +/Subtype /CIDFontType2 +/CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> +/FontDescriptor 121 0 R +/DW 0 +/W [ 0 [365 943 571 ] ] +>> +endobj +127 0 obj +<< /Length 129 0 R /Filter /FlateDecode >> +stream +x]Pj0 +t'Y,Rȡ[N m琿*cah❼1N~!0h]Qՠ;[M2"u8uxl, >gQ@7H֍pj/!.B=t_Ѿ*'>N'9k@W[5A*$F,eϩo~TQߒI0*mC5ەvM̻9(ep:z +endstream +endobj +129 0 obj +241 +endobj +130 0 obj +<< + /Type /FontDescriptor + /FontName /EAAAAB+mwb_cmsy10 + /FontBBox [11 -215 942 727] + /Flags 33 + /CapHeight 0 + /Ascent 727 + /Descent -215 + /ItalicAngle 0 + /StemV 0 + /MissingWidth 500 + /FontFile2 131 0 R + /CIDSet 132 0 R +>> +endobj +131 0 obj +<< + /Length1 1992 + /Length 133 0 R + /Filter /FlateDecode +>> +stream +xUmle=Ҏ{`3^wLz׭s%["AZC[خueAM/CD%:_r4!HBb  m >s/^:jxiZ |'T~lTvvSdg҆70$\qm#U7s3lxl~b{gUg +l;"9I=g,Q!_^~uK_2 +y'.zWJYN,1qPo~eev2EcQw)8fg33 uk5Uuen(H",͍!UYl3&񆞄Mzmb'LHU3vUYy1VMHi=iD%S˺\> 5'- JnML1DIO&^S|r]O>Rl͹-6Wl0ȹAсQMU%EƉRXɤ0Yk4+R%nH+0EYL2&'kQU􀪜EX􊰨$-p&L"aMXTTao BUrIU̺vua7YKn-&#*ĸ9 Ony}-4h"'\YxkC%B5nń`9U;[ֽq_.|[_ޮٰT]ɚ` +U;͞6c%Z!_FΈghyF'ʌ +hR}Bfp'ޥ.Kd km ѽwBxc[EwqrSaw0/;`l>pJv.BLXG uLr0*`-,`l^sMtFS 4ioh:F֠SO KxzGI;MJ$El-Z (;Iˎ9DHu<&*+qdlU;Aԡ٩L*=-m InEb&+ -R@feVbFј*@gKӇQ]'Igt&?H{U5JQ#TG*;Ixtld> +stream +xk +endstream +endobj +134 0 obj +9 +endobj +135 0 obj +<< + /Type /Font + /Subtype /Type0 + /BaseFont /EAAAAB+mwb_cmsy10 + /Encoding /Identity-H + /ToUnicode 136 0 R + /DescendantFonts [137 0 R] +>> +endobj +137 0 obj +<< /Type /Font +/BaseFont /EAAAAB+mwb_cmsy10 +/CIDToGIDMap /Identity +/Subtype /CIDFontType2 +/CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> +/FontDescriptor 130 0 R +/DW 0 +/W [ 0 [750 776 ] ] +>> +endobj +136 0 obj +<< /Length 138 0 R /Filter /FlateDecode >> +stream +x]Pj0+l CԒX}q z0h[lE^X gBpjV& +:G:g} +endstream +endobj +138 0 obj +234 +endobj +139 0 obj +<< + /Type /FontDescriptor + /FontName /EAAAAC+mwa_cmr10 + /FontBBox [-43 -250 1008 750] + /Flags 33 + /CapHeight 683 + /Ascent 750 + /Descent -250 + /ItalicAngle 0 + /StemV 0 + /MissingWidth 500 + /FontFile2 140 0 R + /CIDSet 141 0 R +>> +endobj +140 0 obj +<< + /Length1 7324 + /Length 142 0 R + /Filter /FlateDecode +>> +stream +xY T[畾mZIhAZhaB /`10lq;qxR㸮Ne|n9mJ3iN:LLNs2s8s7i;3wp^,}. cFv쟱t?IΩ F~H/wj<w ~vߥh e513w`ΠM`=sS4[vO .XH0OOMN> zNq~jN P R!А%o/Y~?;q898 p7L(삭k + P!BP VYB]^ν{5333\`&b&86&% +߆p.I\<gK(<'qs4LOďKB}NIKMQ +L9A\!5Z7z4vm쑚j+zبԐqI@ u4X-㬃ZKk[/;\kvφn]q?֬8߸'gcaV&Օg>PL^Ktm@8?=iY{dvsJ+4[$YDd9+ #qWex=]۠ -bk\f 874<n)x=>Sy!tUl=^<O&x襾9@I@uwRNRFci a*|*w:oD( e+2neWXH̊ü8|E&dJ_k:Zk$tb#ܫt$;v+I(CL +ȁB+CVX +kLqT5{%nc^OSOļ:b6LK'CN1(SzsX[II KʫkV8TR`HϏnz#9HDM<.di +%JVoWQy5+ɑ^Q0X?E]xp+4׆>L ѩıO6sm]Duv3; rъjgBG0*el4`5^' + .)K+H +ڎGl5n5}}.jqlC}8VPcjD]E0i5a , +JNet qJMFf6<",P\Ife A?]k(QT}MN3VǎkMGiV[^{k"/7nh8;q@K%k᫅<vf3iz)'-.˥`_M[Si=n _Ր`-Z0^6DgXCO֍OeT2!<.g6}/:ݛeJ*s拌țIۘ.@8ùa^QIG*et&TGq>$=Vmh$J }Bk4jX6-ifi34 s"xN$]`-l8ЬbE^6cvx(/`Nk2FbM|JZ[ +-z%P.* & `?Y1Y3|^z*ʒ]R + \+yf젡ls݃:ݞ6OֶEjk}sǧZZs+S_:[yͥg#?jf:]Q?ɖ如,k9^@X<0e eyX*)/~%䯒ڡ*\lKLbaNk{VnLex EtwXwXW +*Rӷ gO-,[H:e>m`܋'}Rį&O)̤0Rn$09rmB!=5E-\&YډxLZ=*^&D?$0/l޳21)=EynVnۊ)J Ccļd3`I(ɝGfr*`z4'C񁴇 2* SXcf@{E_j01xir˥<U%tVAS=K,w)MNqgdgHvH'r$ R-!3}LHeMbܓt=s{~~Ox_7N0-Xtn=R{xؚۚo \6]_k`݉iWkmlɞpɶv{@E?Q9Ą\6tcϖº2ls䡰!H[l AcRȼSB+KF I`ݪm MCug~EU(+>Tbjm|{f~ױ0s&_.,*§?^ϜK).[ +& "t5j*خpjP5zG1h9/՞ oq{EȤؓPG?4) +k[haZjWiZ-82o+Z20P úpCIq~Z +90CXrgT d*C%fZ(PPj!Ӑ *bI'yc)yrmC)#wĉά*?&JNwiRc͎?<=wJMIװEV;MWyx?=}HdcjMf5Q[W;w> K3ё|0X0.# do-ComK/ȓK/]Xno?KD']9}~T˃}R[qcޅp uBz+=PHaJ!4%y+4E߼Gԉk2=ĽXMl˩}K¥+R`PжD%^yHkK@㿡)wUJthYH% v-yh![ a` .*F(h%iZ3NZ#hq/"`Kc4"XmZ Q;DgAZYB{I{ŝ,L/Dĝ`H3"뤓hK_' 4ZJ++=qZ|~z~~|!.t M?4+)-k_;oiMC;fF&w{,{ %)qvL-%R0#~i:|V^u⑭V-m*˖R) m~jE@6[Y#Y>(/8tTy4ε%5E6"ķ[S l9n` +endstream +endobj +142 0 obj +5368 +endobj +141 0 obj +<< /Length 143 0 R /Filter /FlateDecode >> +stream +xk`3`X*^0_ +endstream +endobj +143 0 obj +20 +endobj +144 0 obj +<< + /Type /Font + /Subtype /Type0 + /BaseFont /EAAAAC+mwa_cmr10 + /Encoding /Identity-H + /ToUnicode 145 0 R + /DescendantFonts [146 0 R] +>> +endobj +146 0 obj +<< /Type /Font +/BaseFont /EAAAAC+mwa_cmr10 +/CIDToGIDMap /Identity +/Subtype /CIDFontType2 +/CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> +/FontDescriptor 139 0 R +/DW 0 +/W [ 0 [365 500 500 500 916 500 500 555 276 388 555 555 443 776 500 500 651 391 526 443 526 276 750 443 276 333 500 500 680 555 394 ] ] +>> +endobj +145 0 obj +<< /Length 147 0 R /Filter /FlateDecode >> +stream +x]n0E +/E )TĢ5{H ,_HgI.Seڑ%WWYh'tkFLjުv> +endobj +149 0 obj +<< + /Length1 2072 + /Length 151 0 R + /Filter /FlateDecode +>> +stream +xUmLSW~h|QprGP[(uRoe"^ִQi63%f13!8CBøȜKl˲m? !n?6?VK1ҝt(Wp6؄ +8`(O9ry*, @q.}h8zakMĵBdKL(pЫ+Yֳ֕ Yr[V X7())qp39}*lV{ &:1;anb΅Q8~.exLC¸8Ẕ ow\z;wXaM.gS{79~urϟ~!b:S]'f̪s,?ݍ6NBˡp4`g-i#@sNlv9mE3 뢵 LJc9lkX{ 446%t !sT5]K +fD( I˷<ևl i)G~hfqW[Md@h Te2%OĊ*vZt(K7Y|pt( +Kkk%_mmGRD$*5yf-:I-Zi UOCI[Vx&5(Gzp$>vI= C\IGH9bz{cC>B8Hz4Ujl!kalMi'H*BCq*b=J_O*5c9V?lOz^ΗfʻrϊF˝[r, +endstream +endobj +151 0 obj +1417 +endobj +150 0 obj +<< /Length 152 0 R /Filter /FlateDecode >> +stream +xk +endstream +endobj +152 0 obj +9 +endobj +153 0 obj +<< + /Type /Font + /Subtype /Type0 + /BaseFont /EAAAAD+mwb_cmr10 + /Encoding /Identity-H + /ToUnicode 154 0 R + /DescendantFonts [155 0 R] +>> +endobj +155 0 obj +<< /Type /Font +/BaseFont /EAAAAD+mwb_cmr10 +/CIDToGIDMap /Identity +/Subtype /CIDFontType2 +/CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> +/FontDescriptor 148 0 R +/DW 0 +/W [ 0 [750 833 ] ] +>> +endobj +154 0 obj +<< /Length 156 0 R /Filter /FlateDecode >> +stream +x]Pj0 +t'u B}дrFqJH?FK >(X V#NWt:zVY> +endobj +157 0 obj +<< + /Type /Catalog + /Pages 120 0 R + /Lang (x-unknown) +>> +endobj +119 0 obj +<< + /Font << + /F1361 126 0 R + /F1360 135 0 R + /F1358 144 0 R + /F1359 153 0 R +>> + /ProcSet [/PDF /ImageB /ImageC /Text] + /ExtGState << + /GS1 2 0 R + /GS2 3 0 R + /GS3 4 0 R + /GS4 5 0 R + /GS5 6 0 R + /GS6 7 0 R + /GS7 8 0 R + /GS8 9 0 R + /GS9 10 0 R + /GS10 11 0 R + /GS11 12 0 R + /GS12 13 0 R + /GS13 14 0 R + /GS14 15 0 R + /GS15 16 0 R + /GS16 17 0 R + /GS17 18 0 R + /GS18 19 0 R + /GS19 20 0 R + /GS20 21 0 R + /GS21 22 0 R + /GS22 23 0 R + /GS23 24 0 R + /GS24 25 0 R + /GS25 26 0 R + /GS26 27 0 R + /GS27 28 0 R + /GS28 29 0 R + /GS29 30 0 R + /GS30 31 0 R + /GS31 32 0 R + /GS32 33 0 R + /GS33 34 0 R + /GS34 35 0 R + /GS35 36 0 R + /GS36 37 0 R + /GS37 38 0 R + /GS38 39 0 R + /GS39 40 0 R + /GS40 41 0 R + /GS41 42 0 R + /GS42 43 0 R + /GS43 44 0 R + /GS44 45 0 R + /GS45 46 0 R + /GS46 47 0 R + /GS47 48 0 R + /GS48 49 0 R + /GS49 50 0 R + /GS50 51 0 R + /GS51 52 0 R + /GS52 53 0 R + /GS53 54 0 R + /GS54 55 0 R + /GS55 56 0 R + /GS56 57 0 R + /GS57 58 0 R + /GS58 59 0 R + /GS59 60 0 R + /GS60 61 0 R + /GS61 62 0 R + /GS62 63 0 R + /GS63 64 0 R + /GS64 65 0 R + /GS65 66 0 R + /GS66 67 0 R + /GS67 68 0 R + /GS68 69 0 R + /GS69 70 0 R + /GS70 71 0 R + /GS71 72 0 R + /GS72 73 0 R + /GS73 74 0 R + /GS74 75 0 R + /GS75 76 0 R + /GS76 77 0 R + /GS77 78 0 R + /GS78 79 0 R + /GS79 80 0 R + /GS80 81 0 R + /GS81 82 0 R + /GS82 83 0 R + /GS83 84 0 R + /GS84 85 0 R + /GS85 86 0 R + /GS86 87 0 R + /GS87 88 0 R + /GS88 89 0 R + /GS89 90 0 R + /GS90 91 0 R + /GS91 92 0 R + /GS92 93 0 R + /GS93 94 0 R + /GS94 95 0 R + /GS95 96 0 R + /GS96 97 0 R + /GS97 98 0 R + /GS98 99 0 R + /GS99 100 0 R + /GS100 101 0 R + /GS101 102 0 R + /GS102 103 0 R + /GS103 104 0 R + /GS104 105 0 R + /GS105 106 0 R + /GS106 107 0 R + /GS107 108 0 R + /GS108 109 0 R + /GS109 110 0 R + /GS110 111 0 R + /GS111 112 0 R + /GS112 113 0 R + /GS113 114 0 R +>> +>> +endobj +xref +0 158 +0000000000 65535 f +0000000015 00000 n +0000000145 00000 n +0000000197 00000 n +0000000249 00000 n +0000000301 00000 n +0000000353 00000 n +0000000405 00000 n +0000000457 00000 n +0000000509 00000 n +0000000561 00000 n +0000000614 00000 n +0000000667 00000 n +0000000720 00000 n +0000000773 00000 n +0000000826 00000 n +0000000879 00000 n +0000000932 00000 n +0000000985 00000 n +0000001038 00000 n +0000001091 00000 n +0000001144 00000 n +0000001197 00000 n +0000001250 00000 n +0000001303 00000 n +0000001356 00000 n +0000001409 00000 n +0000001462 00000 n +0000001515 00000 n +0000001568 00000 n +0000001621 00000 n +0000001674 00000 n +0000001727 00000 n +0000001780 00000 n +0000001833 00000 n +0000001887 00000 n +0000001941 00000 n +0000001995 00000 n +0000002049 00000 n +0000002103 00000 n +0000002156 00000 n +0000002209 00000 n +0000002262 00000 n +0000002315 00000 n +0000002368 00000 n +0000002421 00000 n +0000002474 00000 n +0000002527 00000 n +0000002580 00000 n +0000002633 00000 n +0000002686 00000 n +0000002739 00000 n +0000002792 00000 n +0000002845 00000 n +0000002898 00000 n +0000002951 00000 n +0000003004 00000 n +0000003057 00000 n +0000003110 00000 n +0000003163 00000 n +0000003216 00000 n +0000003269 00000 n +0000003322 00000 n +0000003375 00000 n +0000003429 00000 n +0000003483 00000 n +0000003537 00000 n +0000003591 00000 n +0000003644 00000 n +0000003697 00000 n +0000003750 00000 n +0000003803 00000 n +0000003856 00000 n +0000003909 00000 n +0000003962 00000 n +0000004015 00000 n +0000004068 00000 n +0000004121 00000 n +0000004174 00000 n +0000004227 00000 n +0000004280 00000 n +0000004333 00000 n +0000004386 00000 n +0000004439 00000 n +0000004492 00000 n +0000004545 00000 n +0000004598 00000 n +0000004651 00000 n +0000004704 00000 n +0000004757 00000 n +0000004810 00000 n +0000004863 00000 n +0000004916 00000 n +0000004969 00000 n +0000005022 00000 n +0000005075 00000 n +0000005128 00000 n +0000005181 00000 n +0000005234 00000 n +0000005287 00000 n +0000005340 00000 n +0000005394 00000 n +0000005448 00000 n +0000005502 00000 n +0000005557 00000 n +0000005612 00000 n +0000005667 00000 n +0000005722 00000 n +0000005777 00000 n +0000005832 00000 n +0000005887 00000 n +0000005942 00000 n +0000005997 00000 n +0000006052 00000 n +0000006106 00000 n +0000006160 00000 n +0000101924 00000 n +0000101947 00000 n +0000101974 00000 n +0000117361 00000 n +0000117222 00000 n +0000102172 00000 n +0000102428 00000 n +0000104398 00000 n +0000104376 00000 n +0000104492 00000 n +0000104512 00000 n +0000104907 00000 n +0000104672 00000 n +0000105226 00000 n +0000105247 00000 n +0000105499 00000 n +0000106943 00000 n +0000106921 00000 n +0000107030 00000 n +0000107049 00000 n +0000107440 00000 n +0000107209 00000 n +0000107752 00000 n +0000107773 00000 n +0000108028 00000 n +0000113516 00000 n +0000113494 00000 n +0000113614 00000 n +0000113634 00000 n +0000114139 00000 n +0000113793 00000 n +0000114584 00000 n +0000114605 00000 n +0000114857 00000 n +0000116394 00000 n +0000116372 00000 n +0000116481 00000 n +0000116500 00000 n +0000116889 00000 n +0000116659 00000 n +0000117201 00000 n +0000117284 00000 n +trailer +<< + /Root 157 0 R + /Info 1 0 R + /ID [<9198A6BCFB8033DA03BA61EE4F0CA06C> <9198A6BCFB8033DA03BA61EE4F0CA06C>] + /Size 158 +>> +startxref +119232 +%%EOF diff --git a/matlab/figs/weight_uncertainty_bounds_Wu.png b/matlab/figs/weight_uncertainty_bounds_Wu.png new file mode 100644 index 0000000..00c83d2 Binary files /dev/null and b/matlab/figs/weight_uncertainty_bounds_Wu.png differ diff --git a/matlab/index.html b/matlab/index.html index b531faa..75270b8 100644 --- a/matlab/index.html +++ b/matlab/index.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + Robust and Optimal Sensor Fusion - Matlab Computation @@ -26,67 +26,60 @@

Robust and Optimal Sensor Fusion - Matlab Computation

Table of Contents

@@ -102,24 +95,24 @@ Two sensors are considered with both different noise characteristics and dynamic

    -
  • Section 3: the \(\mathcal{H}_2\) synthesis is used to design complementary filters such that the RMS value of the super sensor’s noise is minimized
  • -
  • Section 4: the \(\mathcal{H}_\infty\) synthesis is used to design complementary filters such that the super sensor’s uncertainty is bonded to acceptable values
  • -
  • Section 5: the mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) synthesis is used to both limit the super sensor’s uncertainty and to lower the RMS value of the super sensor’s noise
  • +
  • Section 3: the \(\mathcal{H}_2\) synthesis is used to design complementary filters such that the RMS value of the super sensor’s noise is minimized
  • +
  • Section 4: the \(\mathcal{H}_\infty\) synthesis is used to design complementary filters such that the super sensor’s uncertainty is bonded to acceptable values
  • +
  • Section 5: the mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) synthesis is used to both limit the super sensor’s uncertainty and to lower the RMS value of the super sensor’s noise
-
-

1 Sensor Description

+
+

1 Sensor Description

- +

-In Figure 1 is shown a schematic of a sensor model that is used in the following study. +In Figure 1 is shown a schematic of a sensor model that is used in the following study. In this example, the measured quantity \(x\) is the velocity of an object.

- - +
Table 1: Description of signals in Figure 1
+@@ -168,8 +161,8 @@ In this example, the measured quantity \(x\) is the velocity of an object.
Table 1: Description of signals in Figure 1
- - +
Table 2: Description of Systems in Figure 1
+@@ -213,18 +206,18 @@ In this example, the measured quantity \(x\) is the velocity of an object.
Table 2: Description of Systems in Figure 1
-
+

sensor_model_noise_uncertainty.png

Figure 1: Sensor Model

-
-

1.1 Sensor Dynamics

+
+

1.1 Sensor Dynamics

- + Let’s consider two sensors measuring the velocity of an object.

@@ -255,14 +248,14 @@ G2 = g_pos/s/(1 + s/w_pos); % Position Sensor Plant [V/(m/s)]

These nominal dynamics are also taken as the model of the sensor dynamics. -The true sensor dynamics has some uncertainty associated to it and described in section 1.2. +The true sensor dynamics has some uncertainty associated to it and described in section 1.2.

-Both sensor dynamics in \([\frac{V}{m/s}]\) are shown in Figure 2. +Both sensor dynamics in \([\frac{V}{m/s}]\) are shown in Figure 2.

-
+

sensors_nominal_dynamics.png

Figure 2: Sensor nominal dynamics from the velocity of the object to the output voltage

@@ -270,12 +263,12 @@ Both sensor dynamics in \([\frac{V}{m/s}]\) are shown in Figure -

1.2 Sensor Model Uncertainty

+
+

1.2 Sensor Model Uncertainty

- -The uncertainty on the sensor dynamics is described by multiplicative uncertainty (Figure 1). + +The uncertainty on the sensor dynamics is described by multiplicative uncertainty (Figure 1).

@@ -287,7 +280,7 @@ The true sensor dynamics \(G_i(s)\) is then described by \eqref{eq:sensor_dynami \end{equation}

-The weights \(W_i(s)\) representing the dynamical uncertainty are defined below and their magnitude is shown in Figure 3. +The weights \(W_i(s)\) representing the dynamical uncertainty are defined below and their magnitude is shown in Figure 3.

W1 = createWeight('n', 2, 'w0', 2*pi*3,   'G0', 2, 'G1', 0.1,     'Gc', 1) * ...
@@ -298,18 +291,18 @@ W2 = createWeight('n', 2, 'w0', 2*pi*1e2, 'G0', 0.05, 'G1', 4, 'Gc', 1);
 

-The bode plot of the sensors nominal dynamics as well as their defined dynamical spread are shown in Figure 4. +The bode plot of the sensors nominal dynamics as well as their defined dynamical spread are shown in Figure 4.

-
+

sensors_uncertainty_weights.png

Figure 3: Magnitude of the multiplicative uncertainty weights \(|W_i(j\omega)|\)

-
+

sensors_nominal_dynamics_and_uncertainty.png

Figure 4: Nominal Sensor Dynamics \(\hat{G}_i\) (solid lines) as well as the spread of the dynamical uncertainty (background color)

@@ -317,12 +310,12 @@ The bode plot of the sensors nominal dynamics as well as their defined dynamical
-
-

1.3 Sensor Noise

+
+

1.3 Sensor Noise

- -The noise of the sensors \(n_i\) are modelled by shaping a white noise with unitary PSD \(\tilde{n}_i\) \eqref{eq:unitary_noise_psd} with a LTI transfer function \(N_i(s)\) (Figure 1). + +The noise of the sensors \(n_i\) are modelled by shaping a white noise with unitary PSD \(\tilde{n}_i\) \eqref{eq:unitary_noise_psd} with a LTI transfer function \(N_i(s)\) (Figure 1).

\begin{equation} \Phi_{\tilde{n}_i}(\omega) = 1 \label{eq:unitary_noise_psd} @@ -336,7 +329,7 @@ The Power Spectral Density of the sensor noise \(\Phi_{n_i}(\omega)\) is then co \end{equation}

-The weights \(N_1\) and \(N_2\) representing the amplitude spectral density of the sensor noises are defined below and shown in Figure 5. +The weights \(N_1\) and \(N_2\) representing the amplitude spectral density of the sensor noises are defined below and shown in Figure 5.

omegac = 0.15*2*pi; G0 = 1e-1; Ginf = 1e-6;
@@ -348,7 +341,7 @@ N2 = (Ginf*s/omegac + G0)/(s/omegac + 1)/(1 + s/2/pi/1e4);
 
-
+

sensors_noise.png

Figure 5: Amplitude spectral density of the sensors \(\sqrt{\Phi_{n_i}(\omega)} = |N_i(j\omega)|\)

@@ -356,8 +349,8 @@ N2 = (Ginf*s/omegac + G0)/(s/omegac + 1)/(1 + s/2/pi/1e4);
-
-

1.4 Save Model

+
+

1.4 Save Model

All the dynamical systems representing the sensors are saved for further use. @@ -371,27 +364,27 @@ All the dynamical systems representing the sensors are saved for further use.

-
-

2 Introduction to Sensor Fusion

+
+

2 Introduction to Sensor Fusion

- +

-
-

2.1 Sensor Fusion Architecture

+
+

2.1 Sensor Fusion Architecture

- +

-The two sensors presented in Section 1 are now merged together using complementary filters \(H_1(s)\) and \(H_2(s)\) to form a super sensor (Figure 6). +The two sensors presented in Section 1 are now merged together using complementary filters \(H_1(s)\) and \(H_2(s)\) to form a super sensor (Figure 6).

-
+

sensor_fusion_noise_arch.png

Figure 6: Sensor Fusion Architecture

@@ -415,11 +408,11 @@ The super sensor estimate \(\hat{x}\) is given by \eqref{eq:super_sensor_estimat
-
-

2.2 Super Sensor Noise

+
+

2.2 Super Sensor Noise

- +

@@ -450,15 +443,15 @@ And the Root Mean Square (RMS) value of the super sensor noise \(\sigma_n\) is g

-
-

2.3 Super Sensor Dynamical Uncertainty

+
+

2.3 Super Sensor Dynamical Uncertainty

- +

-If we consider some dynamical uncertainty (the true system dynamics \(G_i\) not being perfectly equal to our model \(\hat{G}_i\)) that we model by the use of multiplicative uncertainty (Figure 7), the super sensor dynamics is then equals to: +If we consider some dynamical uncertainty (the true system dynamics \(G_i\) not being perfectly equal to our model \(\hat{G}_i\)) that we model by the use of multiplicative uncertainty (Figure 7), the super sensor dynamics is then equals to:

\begin{equation} @@ -470,18 +463,18 @@ If we consider some dynamical uncertainty (the true system dynamics \(G_i\) not \end{equation} -
+

sensor_model_uncertainty.png

Figure 7: Sensor Model including Dynamical Uncertainty

-The uncertainty set of the transfer function from \(\hat{x}\) to \(x\) at frequency \(\omega\) is bounded in the complex plane by a circle centered on 1 and with a radius equal to \(|W_1(j\omega) H_1(j\omega)| + |W_2(j\omega) H_2(j\omega)|\) as shown in Figure 8. +The uncertainty set of the transfer function from \(\hat{x}\) to \(x\) at frequency \(\omega\) is bounded in the complex plane by a circle centered on 1 and with a radius equal to \(|W_1(j\omega) H_1(j\omega)| + |W_2(j\omega) H_2(j\omega)|\) as shown in Figure 8.

-
+

uncertainty_set_super_sensor.png

Figure 8: Super Sensor model uncertainty displayed in the complex plane

@@ -490,18 +483,18 @@ The uncertainty set of the transfer function from \(\hat{x}\) to \(x\) at freque
-
-

3 Optimal Super Sensor Noise: \(\mathcal{H}_2\) Synthesis

+
+

3 Optimal Super Sensor Noise: \(\mathcal{H}_2\) Synthesis

- +

In this section, the complementary filters \(H_1(s)\) and \(H_2(s)\) are designed in order to minimize the RMS value of super sensor noise \(\sigma_n\).

-
+

sensor_fusion_noise_arch.png

Figure 9: Optimal Sensor Fusion Architecture

@@ -519,23 +512,23 @@ The RMS value of the super sensor noise is (neglecting the model uncertainty):

The goal is to design \(H_1(s)\) and \(H_2(s)\) such that \(H_1(s) + H_2(s) = 1\) (complementary property) and such that \(\left\| \begin{matrix} H_1 N_1 \\ H_2 N_2 \end{matrix} \right\|_2\) is minimized (minimized RMS value of the super sensor noise). -This is done using the \(\mathcal{H}_2\) synthesis in Section 3.1. +This is done using the \(\mathcal{H}_2\) synthesis in Section 3.1.

-
-

3.1 \(\mathcal{H}_2\) Synthesis

+
+

3.1 \(\mathcal{H}_2\) Synthesis

- +

-Consider the generalized plant \(P_{\mathcal{H}_2}\) shown in Figure 10 and described by Equation \eqref{eq:H2_generalized_plant}. +Consider the generalized plant \(P_{\mathcal{H}_2}\) shown in Figure 10 and described by Equation \eqref{eq:H2_generalized_plant}.

-
+

h_two_optimal_fusion.png

Figure 10: Architecture used for \(\mathcal{H}_\infty\) synthesis of complementary filters

@@ -591,10 +584,10 @@ Finally, \(H_1(s)\) is defined as follows

-The obtained complementary filters are shown in Figure 11. +The obtained complementary filters are shown in Figure 11.

-
+

htwo_comp_filters.png

Figure 11: Obtained complementary filters using the \(\mathcal{H}_2\) Synthesis

@@ -602,15 +595,15 @@ The obtained complementary filters are shown in Figure 11<
-
-

3.2 Super Sensor Noise

+
+

3.2 Super Sensor Noise

- +

-The Power Spectral Density of the individual sensors’ noise \(\Phi_{n_1}, \Phi_{n_2}\) and of the super sensor noise \(\Phi_{n_{\mathcal{H}_2}}\) are computed below and shown in Figure 12. +The Power Spectral Density of the individual sensors’ noise \(\Phi_{n_1}, \Phi_{n_2}\) and of the super sensor noise \(\Phi_{n_{\mathcal{H}_2}}\) are computed below and shown in Figure 12.

PSD_S1 = abs(squeeze(freqresp(N1,    freqs, 'Hz'))).^2;
@@ -621,7 +614,7 @@ PSD_H2 = abs(squeeze(freqresp(N1*H1, freqs, 'Hz'))).^2 + ...
 

-The corresponding Cumulative Power Spectrum \(\Gamma_{n_1}\), \(\Gamma_{n_2}\) and \(\Gamma_{n_{\mathcal{H}_2}}\) (cumulative integration of the PSD \eqref{eq:CPS_definition}) are computed below and shown in Figure 13. +The corresponding Cumulative Power Spectrum \(\Gamma_{n_1}\), \(\Gamma_{n_2}\) and \(\Gamma_{n_{\mathcal{H}_2}}\) (cumulative integration of the PSD \eqref{eq:CPS_definition}) are computed below and shown in Figure 13.

CPS_S1 = cumtrapz(freqs, PSD_S1);
@@ -635,9 +628,9 @@ CPS_H2 = cumtrapz(freqs, PSD_H2);
 \end{equation}
 
 

-The RMS value of the individual sensors and of the super sensor are listed in Table 3. +The RMS value of the individual sensors and of the super sensor are listed in Table 3.

- +
@@ -659,25 +652,25 @@ The RMS value of the individual sensors and of the super sensor are listed in Ta - + - +
Table 3: RMS value of the individual sensor noise and of the super sensor using the \(\mathcal{H}_2\) Synthesis
\(\sigma_{n_2}\)0.080.080
\(\sigma_{n_{\mathcal{H}_2}}\)0.00270.003
-
+

psd_sensors_htwo_synthesis.png

Figure 12: Power Spectral Density of the estimated \(\hat{x}\) using the two sensors alone and using the optimally fused signal

-
+

cps_h2_synthesis.png

Figure 13: Cumulative Power Spectrum of individual sensors and super sensor using the \(\mathcal{H}_2\) synthesis

@@ -686,34 +679,35 @@ The RMS value of the individual sensors and of the super sensor are listed in Ta

A time domain simulation is now performed. The measured velocity \(x\) is set to be a sweep sine with an amplitude of \(0.1\ [m/s]\). -The velocity estimates from the two sensors and from the super sensors are shown in Figure 14. -The resulting noises are displayed in Figure 15. +The velocity estimates from the two sensors and from the super sensors are shown in Figure 14. +The resulting noises are displayed in Figure 15.

-
+

super_sensor_time_domain_h2.png

Figure 14: Noise of individual sensors and noise of the super sensor

-
+

sensor_noise_H2_time_domain.png

+

Figure 15: Noise of the two sensors \(n_1, n_2\) and noise of the super sensor \(n\)

-
-

3.3 Discrepancy between sensor dynamics and model

+
+

3.3 Discrepancy between sensor dynamics and model

-If we consider sensor dynamical uncertainty as explained in Section 1.2, we can compute what would be the super sensor dynamical uncertainty when using the complementary filters obtained using the \(\mathcal{H}_2\) Synthesis. +If we consider sensor dynamical uncertainty as explained in Section 1.2, we can compute what would be the super sensor dynamical uncertainty when using the complementary filters obtained using the \(\mathcal{H}_2\) Synthesis.

-The super sensor dynamical uncertainty is shown in Figure 16. +The super sensor dynamical uncertainty is shown in Figure 16.

@@ -721,24 +715,20 @@ It is shown that the phase uncertainty is not bounded between 100Hz and 200Hz. As a result the super sensor signal can not be used for feedback applications about 100Hz.

-
+

super_sensor_dynamical_uncertainty_H2.png

Figure 16: Super sensor dynamical uncertainty when using the \(\mathcal{H}_2\) Synthesis

- -
-

3.4 Conclusion

-
-
-

4 Robust Sensor Fusion: \(\mathcal{H}_\infty\) Synthesis

+
+

4 Robust Sensor Fusion: \(\mathcal{H}_\infty\) Synthesis

- +

We initially considered perfectly known sensor dynamics so that it can be perfectly inverted. @@ -746,135 +736,79 @@ We initially considered perfectly known sensor dynamics so that it can be perfec

We now take into account the fact that the sensor dynamics is only partially known. -To do so, we model the uncertainty that we have on the sensor dynamics by multiplicative input uncertainty as shown in Figure 17. +To do so, we model the uncertainty that we have on the sensor dynamics by multiplicative input uncertainty as shown in Figure 17.

-
+

sensor_fusion_arch_uncertainty.png

Figure 17: Sensor fusion architecture with sensor dynamics uncertainty

-The objective here is to design complementary filters \(H_1(s)\) and \(H_2(s)\) in order to minimize the dynamical uncertainty of the super sensor. -

-
- -
-

4.1 Super Sensor Dynamical Uncertainty

-
-

-In practical systems, the sensor dynamics has always some level of uncertainty. +As explained in Section 1.2, at each frequency \(\omega\), the dynamical uncertainty of the super sensor can be represented in the complex plane by a circle with a radius equals to \(|H_1(j\omega) W_1(j\omega)| + |H_2(j\omega) W_2(j\omega)|\) and centered on 1.

-The dynamics of the super sensor is represented by -

-\begin{align*} - \frac{\hat{x}}{x} &= (1 + W_1 \Delta_1) H_1 + (1 + W_2 \Delta_2) H_2 \\ - &= 1 + W_1 H_1 \Delta_1 + W_2 H_2 \Delta_2 -\end{align*} -

-with \(\Delta_i\) is any transfer function satisfying \(\| \Delta_i \|_\infty < 1\). +In order to specify a wanted upper bound on the dynamical uncertainty, a weight \(W_u(s)\) is used where \(1/|W_u(j\omega)|\) represents the maximum allowed radius of the uncertainty circle corresponding to the super sensor dynamics at a frequency \(\omega\) \eqref{eq:upper_bound_uncertainty}.

+\begin{align} + & |H_1(j\omega) W_1(j\omega)| + |H_2(j\omega) W_2(j\omega)| < \frac{1}{|W_u(j\omega)|}, \quad \forall \omega \label{eq:upper_bound_uncertainty} \\ + \Leftrightarrow & |H_1(j\omega) W_1(j\omega) W_u(j\omega)| + |H_2(j\omega) W_2(j\omega) W_u(j\omega)| < 1, \quad \forall\omega \label{eq:upper_bound_uncertainty_bis} +\end{align} + +

-We see that as soon as we have some uncertainty in the sensor dynamics, we have that the complementary filters have some effect on the transfer function from \(x\) to \(\hat{x}\). +\(|W_u(j\omega)|\) is also linked to the gain uncertainty \(\Delta G\) \eqref{eq:gain_uncertainty_bound} and phase uncertainty \(\Delta\phi\) \eqref{eq:phase_uncertainty_bound} of the super sensor.

+\begin{align} + \Delta G (\omega) &\le \frac{1}{|W_u(j\omega)|}, \quad \forall\omega \label{eq:gain_uncertainty_bound} \\ + \Delta \phi (\omega) &\le \arcsin\left(\frac{1}{|W_u(j\omega)|}\right), \quad \forall\omega \label{eq:phase_uncertainty_bound} +\end{align}

-The uncertainty set of the transfer function from \(\hat{x}\) to \(x\) at frequency \(\omega\) is bounded in the complex plane by a circle centered on 1 and with a radius equal to \(|W_1(j\omega) H_1(j\omega)| + |W_2(j\omega) H_2(j\omega)|\) (figure 18). -

- -

-We then have that the angle introduced by the super sensor is bounded by \(\arcsin(\epsilon)\): -\[ \angle \frac{\hat{x}}{x}(j\omega) \le \arcsin \Big(|W_1(j\omega) H_1(j\omega)| + |W_2(j\omega) H_2(j\omega)|\Big) \] -

- - -
-

uncertainty_gain_phase_variation.png -

-

Figure 18: Maximum phase variation

-
-
-
- -
-

4.2 Synthesis objective

-
-

-The uncertainty region of the super sensor dynamics is represented by a circle in the complex plane as shown in Figure 18. -

- -

-At each frequency \(\omega\), the radius of the circle is \(|W_1(j\omega) H_1(j\omega)| + |W_2(j\omega) H_2(j\omega)|\). -

- -

-Thus, the phase shift \(\Delta\phi(\omega)\) due to the super sensor uncertainty is bounded by: -\[ |\Delta\phi(\omega)| \leq \arcsin\big( |W_1(j\omega) H_1(j\omega)| + |W_2(j\omega) H_2(j\omega)| \big) \] -

- -

-Let’s define some allowed frequency depend phase shift \(\Delta\phi_\text{max}(\omega) > 0\) such that: -\[ |\Delta\phi(\omega)| < \Delta\phi_\text{max}(\omega), \quad \forall\omega \] +The choice of \(W_u\) is presented in Section 4.1.

-If \(H_1(s)\) and \(H_2(s)\) are designed such that -\[ |W_1(j\omega) H_1(j\omega)| + |W_2(j\omega) H_2(j\omega)| < \sin\big( \Delta\phi_\text{max}(\omega) \big) \] -

- -

-The maximum phase shift due to dynamic uncertainty at frequency \(\omega\) will be \(\Delta\phi_\text{max}(\omega)\). -

-
-
- -
-

4.3 Requirements as an \(\mathcal{H}_\infty\) norm

-
-

-We now try to express this requirement in terms of an \(\mathcal{H}_\infty\) norm. -

- -

-Let’s define one weight \(W_\phi(s)\) that represents the maximum wanted phase uncertainty: -\[ |W_{\phi}(j\omega)|^{-1} \approx \sin(\Delta\phi_{\text{max}}(\omega)), \quad \forall\omega \] -

- -

-Then: -

-\begin{align*} - & |W_1(j\omega) H_1(j\omega)| + |W_2(j\omega) H_2(j\omega)| < \sin\big( \Delta\phi_\text{max}(\omega) \big), \quad \forall\omega \\ - \Longleftrightarrow & |W_1(j\omega) H_1(j\omega)| + |W_2(j\omega) H_2(j\omega)| < |W_\phi(j\omega)|^{-1}, \quad \forall\omega \\ - \Longleftrightarrow & \left| W_1(j\omega) H_1(j\omega) W_\phi(j\omega) \right| + \left| W_2(j\omega) H_2(j\omega) W_\phi(j\omega) \right| < 1, \quad \forall\omega -\end{align*} - -

-Which is approximately equivalent to (with an error of maximum \(\sqrt{2}\)): +Condition \eqref{eq:upper_bound_uncertainty_bis} can almost be represented by \eqref{eq:hinf_norm_uncertainty} (within a factor \(\sqrt{2}\)).

\begin{equation} -\label{org99994fc} - \left\| \begin{matrix} W_1(s) W_\phi(s) H_1(s) \\ W_2(s) W_\phi(s) H_2(s) \end{matrix} \right\|_\infty < 1 + \left\| \begin{matrix} H_1(s) W_1(s) W_u(s) \\ H_2(s) W_2(s) W_u(s) \end{matrix} \right\|_\infty < 1 \label{eq:hinf_norm_uncertainty} \end{equation} + +

-One should not forget that at frequency where both sensors has unknown dynamics (\(|W_1(j\omega)| > 1\) and \(|W_2(j\omega)| > 1\)), the super sensor dynamics will also be unknown and the phase uncertainty cannot be bounded. -Thus, at these frequencies, \(|W_\phi|\) should be smaller than \(1\). +The objective is to design \(H_1(s)\) and \(H_2(s)\) such that \(H_1(s) + H_2(s) = 1\) (complementary property) and such that \eqref{eq:hinf_norm_uncertainty} is verified (bounded dynamical uncertainty). +

+ +

+This is done using the \(\mathcal{H}_\infty\) synthesis in Section 4.2.

-
-
-

4.4 Weighting Function used to bound the super sensor uncertainty

-
+
+

4.1 Weighting Function used to bound the super sensor uncertainty

+

-Let’s define \(W_\phi(s)\) in order to bound the maximum allowed phase uncertainty \(\Delta\phi_\text{max}\) of the super sensor dynamics. + +

+ +

+\(W_u(s)\) is defined such that the super sensor phase uncertainty is less than 10 degrees below 100Hz \eqref{eq:phase_uncertainy_bound_low_freq} and is less than 180 degrees below 400Hz \eqref{eq:phase_uncertainty_max}. +

+ +\begin{align} + \frac{1}{|W_u(j\omega)|} &< \sin\left(10 \frac{\pi}{180}\right), \quad \omega < 100\,\text{Hz} \label{eq:phase_uncertainy_bound_low_freq} \\ + \frac{1}{|W_u(j 2 \pi 400)|} &< 1 \label{eq:phase_uncertainty_max} +\end{align} + +

+The uncertainty bounds of the two individual sensor as well as the wanted maximum uncertainty bounds of the super sensor are shown in Figure 18.

@@ -884,38 +818,45 @@ Wu = createWeight('n', 2, 'w0', 2*pi*4e2, 'G0', 1/sin(Dphi*pi/180), 'G1', 1/4, '
-
-
save('./mat/Wu.mat', 'Wu');
-
+ +
+

weight_uncertainty_bounds_Wu.png +

+

Figure 18: Uncertainty region of the two sensors as well as the wanted maximum uncertainty of the super sensor (dashed lines)

+
+
+ +
+

4.2 \(\mathcal{H}_\infty\) Synthesis

+
+

+ +

-The obtained upper bounds on the complementary filters in order to limit the phase uncertainty of the super sensor are represented in Figure 19. +The generalized plant \(P_{\mathcal{H}_\infty}\) used for the \(\mathcal{H}_\infty\) Synthesis of the complementary filters is shown in Figure 19 and is described by Equation \eqref{eq:Hinf_generalized_plant}.

-
-

upper_bounds_comp_filter_max_phase_uncertainty.png -

-

Figure 19: Upper bounds on the complementary filters set in order to limit the maximum phase uncertainty of the super sensor to 30 degrees until 500Hz

-
-
-
- -
-

4.5 \(\mathcal{H}_\infty\) Synthesis

-
-

-The \(\mathcal{H}_\infty\) synthesis architecture used for the complementary filters is shown in Figure 20. -

- - -
+

h_infinity_robust_fusion.png

-

Figure 20: Architecture used for \(\mathcal{H}_\infty\) synthesis of complementary filters

+

Figure 19: Architecture used for \(\mathcal{H}_\infty\) synthesis of complementary filters

+\begin{equation} \label{eq:Hinf_generalized_plant} +\begin{pmatrix} + z_1 \\ z_2 \\ v +\end{pmatrix} = \underbrace{\begin{bmatrix} + W_u W_1 & -W_u W_1 \\ + 0 & W_u W_2 \\ + 1 & 0 +\end{bmatrix}}_{P_{\mathcal{H}_\infty}} \begin{pmatrix} + w \\ u +\end{pmatrix} +\end{equation} +

The generalized plant is defined below.

@@ -927,35 +868,37 @@ The generalized plant is defined below.

-And we do the \(\mathcal{H}_\infty\) synthesis using the hinfsyn command. +And the \(\mathcal{H}_\infty\) synthesis is performed using the hinfsyn command.

-
[H2, ~, gamma, ~] = hinfsyn(P, 1, 1,'TOLGAM', 0.001, 'METHOD', 'ric', 'DISPLAY', 'on');
+
H2 = hinfsyn(P, 1, 1,'TOLGAM', 0.001, 'DISPLAY', 'on');
 
-[H2, ~, gamma, ~] = hinfsyn(P, 1, 1,'TOLGAM', 0.001, 'METHOD', 'ric', 'DISPLAY', 'on');
+Test bounds:  0.7071 <=  gamma  <=  1.291
 
-  Test bounds:  0.7071 <=  gamma  <=  1.291
+  gamma        X>=0        Y>=0       rho(XY)<1    p/f
+9.554e-01     0.0e+00     0.0e+00     3.529e-16     p
+8.219e-01     0.0e+00     0.0e+00     5.204e-16     p
+7.624e-01     3.8e-17     0.0e+00     1.955e-15     p
+7.342e-01     0.0e+00     0.0e+00     5.612e-16     p
+7.205e-01     0.0e+00     0.0e+00     7.184e-16     p
+7.138e-01     0.0e+00     0.0e+00     0.000e+00     p
+7.104e-01     4.1e-16     0.0e+00     6.749e-15     p
+7.088e-01     0.0e+00     0.0e+00     2.794e-15     p
+7.079e-01     0.0e+00     0.0e+00     6.503e-16     p
+7.075e-01     0.0e+00     0.0e+00     4.302e-15     p
 
-    gamma        X>=0        Y>=0       rho(XY)<1    p/f
-  9.554e-01     0.0e+00     0.0e+00     3.529e-16     p
-  8.219e-01     0.0e+00     0.0e+00     5.204e-16     p
-  7.624e-01     3.8e-17     0.0e+00     1.955e-15     p
-  7.342e-01     0.0e+00     0.0e+00     5.612e-16     p
-  7.205e-01     0.0e+00     0.0e+00     7.184e-16     p
-  7.138e-01     0.0e+00     0.0e+00     0.000e+00     p
-  7.104e-01     4.1e-16     0.0e+00     6.749e-15     p
-  7.088e-01     0.0e+00     0.0e+00     2.794e-15     p
-  7.079e-01     0.0e+00     0.0e+00     6.503e-16     p
-  7.075e-01     0.0e+00     0.0e+00     4.302e-15     p
-
-  Best performance (actual): 0.7071
+Best performance (actual): 0.7071
 

-And \(H_1(s)\) is defined as the complementary of \(H_2(s)\). +The \(\mathcal{H}_\infty\) is successful as the \(\mathcal{H}_\infty\) norm of the “closed loop” transfer function from \((w)\) to \((z_1,\ z_2)\) is less than one. +

+ +

+\(H_1(s)\) is then defined as the complementary of \(H_2(s)\).

H1 = 1 - H2;
@@ -963,81 +906,98 @@ And \(H_1(s)\) is defined as the complementary of \(H_2(s)\).
 

-The obtained complementary filters are shown in Figure 21. +The obtained complementary filters as well as the wanted upper bounds are shown in Figure 20.

-
-

comp_filter_hinf_uncertainty.png + +

+

hinf_comp_filters.png

-

Figure 21: Obtained complementary filters

+

Figure 20: Obtained complementary filters using the \(\mathcal{H}_\infty\) Synthesis

-
-

4.6 Super sensor uncertainty

-
-
-
H2_filters = load('./mat/H2_filters.mat', 'H2', 'H1');
-
-
- +
+

4.3 Super sensor uncertainty

+

-The uncertainty of the super sensor cannot be made smaller than both the individual sensor. Ideally, it would follow the minimum uncertainty of both sensors. +The super sensor dynamical uncertainty is displayed in Figure 21. +It is confirmed that the super sensor dynamical uncertainty is less than the maximum allowed uncertainty defined by the norm of \(W_u(s)\).

-We here just used very wimple weights. -For instance, we could improve the dynamical uncertainty of the super sensor by making \(|W_\phi(j\omega)|\) smaller bellow 2Hz where the dynamical uncertainty of the sensor 1 is small. +The frequency band where the super sensor has small dynamical uncertainty is larger than for the individual sensor.

+ + +
+

super_sensor_dynamical_uncertainty_Hinf.png +

+

Figure 21: Super sensor dynamical uncertainty (solid curve) when using the \(\mathcal{H}_\infty\) Synthesis

+
-
-

4.7 Super sensor noise

-
+
+

4.4 Super sensor noise

+

-We now compute the obtain Power Spectral Density of the super sensor’s noise. -The noise characteristics of both individual sensor are defined below. +We now compute the obtain Power Spectral Density of the super sensor’s noise (Figure 22).

-The PSD of both sensor and of the super sensor is shown in Figure 22. -The CPS of both sensor and of the super sensor is shown in Figure 23. +The obtained RMS of the super sensor noise in the \(\mathcal{H}_2\) and \(\mathcal{H}_\infty\) case are shown in Table 4. +As expected, the super sensor obtained from the \(\mathcal{H}_\infty\) synthesis is much noisier than the super sensor obtained from the \(\mathcal{H}_2\) synthesis.

-
PSD_S2   = abs(squeeze(freqresp(N2, freqs, 'Hz'))).^2;
-PSD_S1   = abs(squeeze(freqresp(N1, freqs, 'Hz'))).^2;
-PSD_Hinf = abs(squeeze(freqresp(N1*H1, freqs, 'Hz'))).^2+abs(squeeze(freqresp(N2*H2, freqs, 'Hz'))).^2;
-PSD_H2   = abs(squeeze(freqresp(N1*H2_filters.H1, freqs, 'Hz'))).^2+abs(squeeze(freqresp(N2*H2_filters.H2, freqs, 'Hz'))).^2;
-
-CPS_S2   = cumtrapz(freqs, PSD_S2);
-CPS_S1   = cumtrapz(freqs, PSD_S1);
-CPS_Hinf = cumtrapz(freqs, PSD_Hinf);
-CPS_H2   = cumtrapz(freqs, PSD_H2);
+
PSD_S2   = abs(squeeze(freqresp(N2,    freqs, 'Hz'))).^2;
+PSD_S1   = abs(squeeze(freqresp(N1,    freqs, 'Hz'))).^2;
+PSD_Hinf = abs(squeeze(freqresp(N1*H1, freqs, 'Hz'))).^2 + ...
+           abs(squeeze(freqresp(N2*H2, freqs, 'Hz'))).^2;
 
-
+

psd_sensors_hinf_synthesis.png

-

Figure 22: Power Spectral Density of the obtained super sensor using the \(\mathcal{H}_\infty\) synthesis

+

Figure 22: Power Spectral Density of the estimated \(\hat{x}\) using the two sensors alone and using the

+ + -
-

cps_sensors_hinf_synthesis.png -

-

Figure 23: Cumulative Power Spectrum of the obtained super sensor using the \(\mathcal{H}_\infty\) synthesis

-
+++ ++ + + + + + + + + + + + + + + + + + +
Table 4: Comparison of the obtained RMS noise of the super sensor
 RMS [m/s]
Optimal: \(\mathcal{H}_2\)0.0027
Robust: \(\mathcal{H}_\infty\)0.041
-
-

4.8 Conclusion

-
+
+

4.5 Conclusion

+

Using the \(\mathcal{H}_\infty\) synthesis, the dynamical uncertainty of the super sensor can be bounded to acceptable values.

@@ -1049,22 +1009,19 @@ However, the RMS of the super sensor noise is not optimized as it was the case w
-
-

5 Optimal and Robust Sensor Fusion: Mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) Synthesis

+
+

5 Optimal and Robust Sensor Fusion: Mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) Synthesis

- +

-
+

sensor_fusion_arch_full.png

-

Figure 24: Sensor fusion architecture with sensor dynamics uncertainty

+

Figure 23: Sensor fusion architecture with sensor dynamics uncertainty

-
-
-

5.1 Mixed \(\mathcal{H}_2\) / \(\mathcal{H}_\infty\) Synthesis - Introduction

-
+

The goal is to design complementary filters such that:

@@ -1081,39 +1038,11 @@ To do so, we can use the Mixed \(\mathcal{H}_2\) / \(\mathcal{H}_\infty\) Synthe The Matlab function for that is h2hinfsyn (doc).

-
- -
-

5.2 Noise characteristics and Uncertainty of the individual sensors

-
+
+

5.1 Mixed \(\mathcal{H}_2\) / \(\mathcal{H}_\infty\) Synthesis

+

-Both dynamical uncertainty and noise characteristics of the individual sensors are shown in Figure 25. -

- - -
-

mixed_synthesis_noise_uncertainty_sensors.png -

-

Figure 25: Noise characteristsics and Dynamical uncertainty of the individual sensors

-
-
-
- -
-

5.3 Weighting Functions on the uncertainty of the super sensor

-
-

-We design weights for the \(\mathcal{H}_\infty\) part of the synthesis in order to limit the dynamical uncertainty of the super sensor. -The maximum wanted multiplicative uncertainty is shown in Figure .The idea here is that we don’t really need low uncertainty at low frequency but only near the crossover frequency that is suppose to be around 300Hz here. -

-
-
- -
-

5.4 Mixed \(\mathcal{H}_2\) / \(\mathcal{H}_\infty\) Synthesis

-
-

-The synthesis architecture that is used here is shown in Figure 26. +The synthesis architecture that is used here is shown in Figure 24.

@@ -1126,10 +1055,10 @@ The controller \(K\) is synthesized such that it: -

+

mixed_h2_hinf_synthesis.png

-

Figure 26: Mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) Synthesis

+

Figure 24: Mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) Synthesis

@@ -1185,23 +1114,23 @@ H2 = 1 - H1;

-The obtained complementary filters are shown in Figure 27. +The obtained complementary filters are shown in Figure 25.

-
-

comp_filters_mixed_synthesis.png +

+

htwo_hinf_comp_filters.png

-

Figure 27: Obtained complementary filters after mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) synthesis

+

Figure 25: Obtained complementary filters after mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) synthesis

-
-

5.5 Obtained Super Sensor’s noise

-
+
+

5.2 Obtained Super Sensor’s noise

+

-The PSD and CPS of the super sensor’s noise are shown in Figure 28 and Figure 29 respectively. +The PSD and CPS of the super sensor’s noise are shown in Figure 26 and Figure 27 respectively.

@@ -1216,33 +1145,33 @@ CPS_H2Hinf = cumtrapz(freqs, PSD_H2Hinf);
-
-

psd_super_sensor_mixed_syn.png +

+

psd_sensors_htwo_hinf_synthesis.png

-

Figure 28: Power Spectral Density of the Super Sensor obtained with the mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) synthesis

+

Figure 26: Power Spectral Density of the Super Sensor obtained with the mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) synthesis

-
-

cps_super_sensor_mixed_syn.png +

+

cps_h2_hinf_synthesis.png

-

Figure 29: Cumulative Power Spectrum of the Super Sensor obtained with the mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) synthesis

+

Figure 27: Cumulative Power Spectrum of the Super Sensor obtained with the mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) synthesis

-
-

5.6 Obtained Super Sensor’s Uncertainty

-
+
+

5.3 Obtained Super Sensor’s Uncertainty

+

The uncertainty on the super sensor’s dynamics is shown in Figure

-
-

5.7 Comparison Hinf H2 H2/Hinf

-
+
+

5.4 Comparison Hinf H2 H2/Hinf

+
H2_filters      = load('./mat/H2_filters.mat',      'H2', 'H1');
 Hinf_filters    = load('./mat/Hinf_filters.mat',    'H2', 'H1');
@@ -1262,8 +1191,8 @@ CPS_H2Hinf = cumtrapz(freqs, PSD_H2Hinf);
 
- - +
+@@ -1296,9 +1225,9 @@ CPS_H2Hinf = cumtrapz(freqs, PSD_H2Hinf); -
-

5.8 Conclusion

-
+
+

5.5 Conclusion

+

This synthesis methods allows both to:

@@ -1310,18 +1239,18 @@ This synthesis methods allows both to:
-
-

6 Matlab Functions

+
+

6 Matlab Functions

- +

-
-

6.1 createWeight

+
+

6.1 createWeight

- +

@@ -1373,11 +1302,11 @@ This Matlab function is accessible here.

-
-

6.2 plotMagUncertainty

+
+

6.2 plotMagUncertainty

- +

@@ -1428,11 +1357,11 @@ end

-
-

6.3 plotPhaseUncertainty

+
+

6.3 plotPhaseUncertainty

- +

@@ -1496,7 +1425,7 @@ end

Author: Thomas Dehaeze

-

Created: 2020-10-01 jeu. 15:12

+

Created: 2020-10-02 ven. 17:57

diff --git a/matlab/index.org b/matlab/index.org index cf5d5ac..c452b6d 100644 --- a/matlab/index.org +++ b/matlab/index.org @@ -616,7 +616,7 @@ The corresponding Cumulative Power Spectrum $\Gamma_{n_1}$, $\Gamma_{n_2}$ and $ The RMS value of the individual sensors and of the super sensor are listed in Table [[tab:rms_noise_H2]]. #+begin_src matlab :exports results :results value table replace :tangle no :post addhdr(*this*) - data2orgtable([sqrt(CPS_S1(end)); sqrt(CPS_S2(end)); sqrt(CPS_H2(end))], {'$\sigma_{n_1}$', '$\sigma_{n_2}$', '$\sigma_{n_{\mathcal{H}_2}}$'}, {'RMS value $[m/s]$'}, ' %.1e '); + data2orgtable([sqrt(CPS_S1(end)); sqrt(CPS_S2(end)); sqrt(CPS_H2(end))], {'$\sigma_{n_1}$', '$\sigma_{n_2}$', '$\sigma_{n_{\mathcal{H}_2}}$'}, {'RMS value $[m/s]$'}, ' %.3f '); #+end_src #+name: tab:rms_noise_H2 @@ -627,8 +627,8 @@ The RMS value of the individual sensors and of the super sensor are listed in Ta | | RMS value $[m/s]$ | |------------------------------+-------------------| | $\sigma_{n_1}$ | 0.015 | -| $\sigma_{n_2}$ | 0.08 | -| $\sigma_{n_{\mathcal{H}_2}}$ | 0.0027 | +| $\sigma_{n_2}$ | 0.080 | +| $\sigma_{n_{\mathcal{H}_2}}$ | 0.003 | #+begin_src matlab :exports none figure; @@ -811,7 +811,35 @@ To do so, we model the uncertainty that we have on the sensor dynamics by multip #+caption: Sensor fusion architecture with sensor dynamics uncertainty [[file:figs-tikz/sensor_fusion_arch_uncertainty.png]] -The objective here is to design complementary filters $H_1(s)$ and $H_2(s)$ in order to bound the dynamical uncertainty of the super sensor to acceptable values. +As explained in Section [[sec:sensor_uncertainty]], at each frequency $\omega$, the dynamical uncertainty of the super sensor can be represented in the complex plane by a circle with a radius equals to $|H_1(j\omega) W_1(j\omega)| + |H_2(j\omega) W_2(j\omega)|$ and centered on 1. + +In order to specify a wanted upper bound on the dynamical uncertainty, a weight $W_u(s)$ is used where $1/|W_u(j\omega)|$ represents the maximum allowed radius of the uncertainty circle corresponding to the super sensor dynamics at a frequency $\omega$ eqref:eq:upper_bound_uncertainty. + +\begin{align} + & |H_1(j\omega) W_1(j\omega)| + |H_2(j\omega) W_2(j\omega)| < \frac{1}{|W_u(j\omega)|}, \quad \forall \omega \label{eq:upper_bound_uncertainty} \\ + \Leftrightarrow & |H_1(j\omega) W_1(j\omega) W_u(j\omega)| + |H_2(j\omega) W_2(j\omega) W_u(j\omega)| < 1, \quad \forall\omega \label{eq:upper_bound_uncertainty_bis} +\end{align} + + +$|W_u(j\omega)|$ is also linked to the gain uncertainty $\Delta G$ eqref:eq:gain_uncertainty_bound and phase uncertainty $\Delta\phi$ eqref:eq:phase_uncertainty_bound of the super sensor. +\begin{align} + \Delta G (\omega) &\le \frac{1}{|W_u(j\omega)|}, \quad \forall\omega \label{eq:gain_uncertainty_bound} \\ + \Delta \phi (\omega) &\le \arcsin\left(\frac{1}{|W_u(j\omega)|}\right), \quad \forall\omega \label{eq:phase_uncertainty_bound} +\end{align} + +The choice of $W_u$ is presented in Section [[sec:weight_uncertainty]]. + + +Condition eqref:eq:upper_bound_uncertainty_bis can almost be represented by eqref:eq:hinf_norm_uncertainty (within a factor $\sqrt{2}$). +\begin{equation} + \left\| \begin{matrix} H_1(s) W_1(s) W_u(s) \\ H_2(s) W_2(s) W_u(s) \end{matrix} \right\|_\infty < 1 \label{eq:hinf_norm_uncertainty} +\end{equation} + + + +The objective is to design $H_1(s)$ and $H_2(s)$ such that $H_1(s) + H_2(s) = 1$ (complementary property) and such that eqref:eq:hinf_norm_uncertainty is verified (bounded dynamical uncertainty). + +This is done using the $\mathcal{H}_\infty$ synthesis in Section [[sec:Hinfinity_synthesis]]. ** Matlab Init :noexport:ignore: #+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name) @@ -827,68 +855,17 @@ The objective here is to design complementary filters $H_1(s)$ and $H_2(s)$ in o load('./mat/model.mat', 'freqs', 'G1', 'G2', 'N2', 'N1', 'W2', 'W1'); #+end_src -** Super Sensor Dynamical Uncertainty -In practical systems, the sensor dynamics has always some level of uncertainty. - -The dynamics of the super sensor is represented by -\begin{align*} - \frac{\hat{x}}{x} &= (1 + W_1 \Delta_1) H_1 + (1 + W_2 \Delta_2) H_2 \\ - &= 1 + W_1 H_1 \Delta_1 + W_2 H_2 \Delta_2 -\end{align*} -with $\Delta_i$ is any transfer function satisfying $\| \Delta_i \|_\infty < 1$. - -We see that as soon as we have some uncertainty in the sensor dynamics, we have that the complementary filters have some effect on the transfer function from $x$ to $\hat{x}$. - -The uncertainty set of the transfer function from $\hat{x}$ to $x$ at frequency $\omega$ is bounded in the complex plane by a circle centered on 1 and with a radius equal to $|W_1(j\omega) H_1(j\omega)| + |W_2(j\omega) H_2(j\omega)|$ (figure [[fig:uncertainty_gain_phase_variation]]). - -We then have that the angle introduced by the super sensor is bounded by $\arcsin(\epsilon)$: -\[ \angle \frac{\hat{x}}{x}(j\omega) \le \arcsin \Big(|W_1(j\omega) H_1(j\omega)| + |W_2(j\omega) H_2(j\omega)|\Big) \] - -#+name: fig:uncertainty_gain_phase_variation -#+caption: Maximum phase variation -[[file:figs-tikz/uncertainty_gain_phase_variation.png]] - -** Synthesis objective -The uncertainty region of the super sensor dynamics is represented by a circle in the complex plane as shown in Figure [[fig:uncertainty_gain_phase_variation]]. - -At each frequency $\omega$, the radius of the circle is $|W_1(j\omega) H_1(j\omega)| + |W_2(j\omega) H_2(j\omega)|$. - -Thus, the phase shift $\Delta\phi(\omega)$ due to the super sensor uncertainty is bounded by: -\[ |\Delta\phi(\omega)| \leq \arcsin\big( |W_1(j\omega) H_1(j\omega)| + |W_2(j\omega) H_2(j\omega)| \big) \] - -Let's define some allowed frequency depend phase shift $\Delta\phi_\text{max}(\omega) > 0$ such that: -\[ |\Delta\phi(\omega)| < \Delta\phi_\text{max}(\omega), \quad \forall\omega \] - - -If $H_1(s)$ and $H_2(s)$ are designed such that -\[ |W_1(j\omega) H_1(j\omega)| + |W_2(j\omega) H_2(j\omega)| < \sin\big( \Delta\phi_\text{max}(\omega) \big) \] - -The maximum phase shift due to dynamic uncertainty at frequency $\omega$ will be $\Delta\phi_\text{max}(\omega)$. - -** Requirements as an $\mathcal{H}_\infty$ norm -We now try to express this requirement in terms of an $\mathcal{H}_\infty$ norm. - -Let's define one weight $W_\phi(s)$ that represents the maximum wanted phase uncertainty: -\[ |W_{\phi}(j\omega)|^{-1} \approx \sin(\Delta\phi_{\text{max}}(\omega)), \quad \forall\omega \] - -Then: -\begin{align*} - & |W_1(j\omega) H_1(j\omega)| + |W_2(j\omega) H_2(j\omega)| < \sin\big( \Delta\phi_\text{max}(\omega) \big), \quad \forall\omega \\ - \Longleftrightarrow & |W_1(j\omega) H_1(j\omega)| + |W_2(j\omega) H_2(j\omega)| < |W_\phi(j\omega)|^{-1}, \quad \forall\omega \\ - \Longleftrightarrow & \left| W_1(j\omega) H_1(j\omega) W_\phi(j\omega) \right| + \left| W_2(j\omega) H_2(j\omega) W_\phi(j\omega) \right| < 1, \quad \forall\omega -\end{align*} - -Which is approximately equivalent to (with an error of maximum $\sqrt{2}$): -#+name: eq:hinf_conf_phase_uncertainty -\begin{equation} - \left\| \begin{matrix} W_1(s) W_\phi(s) H_1(s) \\ W_2(s) W_\phi(s) H_2(s) \end{matrix} \right\|_\infty < 1 -\end{equation} - -One should not forget that at frequency where both sensors has unknown dynamics ($|W_1(j\omega)| > 1$ and $|W_2(j\omega)| > 1$), the super sensor dynamics will also be unknown and the phase uncertainty cannot be bounded. -Thus, at these frequencies, $|W_\phi|$ should be smaller than $1$. - ** Weighting Function used to bound the super sensor uncertainty -Let's define $W_\phi(s)$ in order to bound the maximum allowed phase uncertainty $\Delta\phi_\text{max}$ of the super sensor dynamics. +<> + +$W_u(s)$ is defined such that the super sensor phase uncertainty is less than 10 degrees below 100Hz eqref:eq:phase_uncertainy_bound_low_freq and is less than 180 degrees below 400Hz eqref:eq:phase_uncertainty_max. + +\begin{align} + \frac{1}{|W_u(j\omega)|} &< \sin\left(10 \frac{\pi}{180}\right), \quad \omega < 100\,\text{Hz} \label{eq:phase_uncertainy_bound_low_freq} \\ + \frac{1}{|W_u(j 2 \pi 400)|} &< 1 \label{eq:phase_uncertainty_max} +\end{align} + +The uncertainty bounds of the two individual sensor as well as the wanted maximum uncertainty bounds of the super sensor are shown in Figure [[fig:weight_uncertainty_bounds_Wu]]. #+begin_src matlab Dphi = 10; % [deg] @@ -896,23 +873,30 @@ Let's define $W_\phi(s)$ in order to bound the maximum allowed phase uncertainty Wu = createWeight('n', 2, 'w0', 2*pi*4e2, 'G0', 1/sin(Dphi*pi/180), 'G1', 1/4, 'Gc', 1); #+end_src -#+begin_src matlab +#+begin_src matlab :exports none + % Wu is saved for further use save('./mat/Wu.mat', 'Wu'); #+end_src #+begin_src matlab :exports none + Dphi_Wu = 180/pi*asin(abs(squeeze(freqresp(inv(Wu), freqs, 'Hz')))); + Dphi_Wu(abs(squeeze(freqresp(inv(Wu), freqs, 'Hz'))) > 1) = 360; + figure; % Magnitude ax1 = subplot(2,1,1); hold on; - plotMagUncertainty(W1, freqs, 'color_i', 1); - plotMagUncertainty(W2, freqs, 'color_i', 2); - p = plotMagUncertainty(inv(Wu), freqs, 'color_i', 3); - p.EdgeColor = 'black'; p.FaceAlpha = 0; + plotMagUncertainty(W1, freqs, 'color_i', 1, 'DisplayName', '$1 + W_1 \Delta_1$'); + plotMagUncertainty(W2, freqs, 'color_i', 2, 'DisplayName', '$1 + W_2 \Delta_2$'); + plot(freqs, 1 + abs(squeeze(freqresp(inv(Wu), freqs, 'Hz'))), 'k--', ... + 'DisplayName', '$1 + W_u^{-1} \Delta$') + plot(freqs, 1 - abs(squeeze(freqresp(inv(Wu), freqs, 'Hz'))), 'k--', ... + 'HandleVisibility', 'off') set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); set(gca, 'XTickLabel',[]); ylabel('Magnitude'); ylim([1e-2, 1e1]); + legend('location', 'southeast'); hold off; % Phase @@ -920,8 +904,8 @@ Let's define $W_\phi(s)$ in order to bound the maximum allowed phase uncertainty hold on; plotPhaseUncertainty(W1, freqs, 'color_i', 1); plotPhaseUncertainty(W2, freqs, 'color_i', 2); - p = plotPhaseUncertainty(inv(Wu), freqs); - p.EdgeColor = 'black'; p.FaceAlpha = 0; + plot(freqs, Dphi_Wu, 'k--'); + plot(freqs, -Dphi_Wu, 'k--'); set(gca,'xscale','log'); yticks(-180:90:180); ylim([-180 180]); @@ -931,36 +915,36 @@ Let's define $W_\phi(s)$ in order to bound the maximum allowed phase uncertainty xlim([freqs(1), freqs(end)]); #+end_src -The obtained upper bounds on the complementary filters in order to limit the phase uncertainty of the super sensor are represented in Figure [[fig:upper_bounds_comp_filter_max_phase_uncertainty]]. - -#+begin_src matlab :exports none - figure; - hold on; - plot(freqs, 1./abs(squeeze(freqresp(Wu*W1, freqs, 'Hz'))), '-', 'DisplayName', '$1/|W_1W_\phi|$'); - plot(freqs, 1./abs(squeeze(freqresp(Wu*W2, freqs, 'Hz'))), '-', 'DisplayName', '$1/|W_2W_\phi|$'); - set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); - xlabel('Frequency [Hz]'); ylabel('Magnitude'); - hold off; - xlim([freqs(1), freqs(end)]); - legend('location', 'northeast'); +#+begin_src matlab :tangle no :exports results :results file replace + exportFig('figs/weight_uncertainty_bounds_Wu.pdf', 'width', 'full', 'height', 'full'); #+end_src -#+HEADER: :tangle no :exports results :results none :noweb yes -#+begin_src matlab :var filepath="figs/upper_bounds_comp_filter_max_phase_uncertainty.pdf" :var figsize="full-normal" :post pdf2svg(file=*this*, ext="png") - <> -#+end_src - -#+NAME: fig:upper_bounds_comp_filter_max_phase_uncertainty -#+CAPTION: Upper bounds on the complementary filters set in order to limit the maximum phase uncertainty of the super sensor to 30 degrees until 500Hz -[[file:figs/upper_bounds_comp_filter_max_phase_uncertainty.png]] +#+name: fig:weight_uncertainty_bounds_Wu +#+caption: Uncertainty region of the two sensors as well as the wanted maximum uncertainty of the super sensor (dashed lines) +#+RESULTS: +[[file:figs/weight_uncertainty_bounds_Wu.png]] ** $\mathcal{H}_\infty$ Synthesis -The $\mathcal{H}_\infty$ synthesis architecture used for the complementary filters is shown in Figure [[fig:h_infinity_robust_fusion]]. +<> + +The generalized plant $P_{\mathcal{H}_\infty}$ used for the $\mathcal{H}_\infty$ Synthesis of the complementary filters is shown in Figure [[fig:h_infinity_robust_fusion]] and is described by Equation eqref:eq:Hinf_generalized_plant. #+name: fig:h_infinity_robust_fusion #+caption: Architecture used for $\mathcal{H}_\infty$ synthesis of complementary filters [[file:figs-tikz/h_infinity_robust_fusion.png]] +\begin{equation} \label{eq:Hinf_generalized_plant} +\begin{pmatrix} + z_1 \\ z_2 \\ v +\end{pmatrix} = \underbrace{\begin{bmatrix} + W_u W_1 & -W_u W_1 \\ + 0 & W_u W_2 \\ + 1 & 0 +\end{bmatrix}}_{P_{\mathcal{H}_\infty}} \begin{pmatrix} + w \\ u +\end{pmatrix} +\end{equation} + The generalized plant is defined below. #+begin_src matlab P = [Wu*W1 -Wu*W1; @@ -968,15 +952,13 @@ The generalized plant is defined below. 1 0]; #+end_src -And we do the $\mathcal{H}_\infty$ synthesis using the =hinfsyn= command. +And the $\mathcal{H}_\infty$ synthesis is performed using the =hinfsyn= command. #+begin_src matlab :results output replace :exports both - [H2, ~, gamma, ~] = hinfsyn(P, 1, 1,'TOLGAM', 0.001, 'METHOD', 'ric', 'DISPLAY', 'on'); + H2 = hinfsyn(P, 1, 1,'TOLGAM', 0.001, 'DISPLAY', 'on'); #+end_src #+RESULTS: #+begin_example -[H2, ~, gamma, ~] = hinfsyn(P, 1, 1,'TOLGAM', 0.001, 'METHOD', 'ric', 'DISPLAY', 'on'); - Test bounds: 0.7071 <= gamma <= 1.291 gamma X>=0 Y>=0 rho(XY)<1 p/f @@ -994,23 +976,27 @@ And we do the $\mathcal{H}_\infty$ synthesis using the =hinfsyn= command. Best performance (actual): 0.7071 #+end_example -And $H_1(s)$ is defined as the complementary of $H_2(s)$. +The $\mathcal{H}_\infty$ is successful as the $\mathcal{H}_\infty$ norm of the "closed loop" transfer function from $(w)$ to $(z_1,\ z_2)$ is less than one. + +$H_1(s)$ is then defined as the complementary of $H_2(s)$. #+begin_src matlab H1 = 1 - H2; #+end_src #+begin_src matlab :exports none + % Complementary filters are saved for further analysis save('./mat/Hinf_filters.mat', 'H2', 'H1'); #+end_src -The obtained complementary filters are shown in Figure [[fig:comp_filter_hinf_uncertainty]]. +The obtained complementary filters as well as the wanted upper bounds are shown in Figure [[fig:hinf_comp_filters]]. + #+begin_src matlab :exports none figure; ax1 = subplot(2,1,1); hold on; - plot(freqs, 1./abs(squeeze(freqresp(Wu*W1, freqs, 'Hz'))), '--', 'DisplayName', '$|WuW_1|$'); - plot(freqs, 1./abs(squeeze(freqresp(Wu*W2, freqs, 'Hz'))), '--', 'DisplayName', '$|WuW_2|$'); + plot(freqs, 1./abs(squeeze(freqresp(Wu*W1, freqs, 'Hz'))), '--', 'DisplayName', '$1/|W_uW_1|$'); + plot(freqs, 1./abs(squeeze(freqresp(Wu*W2, freqs, 'Hz'))), '--', 'DisplayName', '$1/|W_uW_2|$'); set(gca,'ColorOrderIndex',1) plot(freqs, abs(squeeze(freqresp(H1, freqs, 'Hz'))), '-', 'DisplayName', '$H_1$'); @@ -1033,44 +1019,49 @@ The obtained complementary filters are shown in Figure [[fig:comp_filter_hinf_un linkaxes([ax1,ax2],'x'); xlim([freqs(1), freqs(end)]); - xticks([0.1, 1, 10, 100, 1000]); #+end_src -#+HEADER: :tangle no :exports results :results none :noweb yes -#+begin_src matlab :var filepath="figs/comp_filter_hinf_uncertainty.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png") - <> +#+begin_src matlab :tangle no :exports results :results file replace + exportFig('figs/hinf_comp_filters.pdf', 'width', 'full', 'height', 'full'); #+end_src -#+NAME: fig:comp_filter_hinf_uncertainty -#+CAPTION: Obtained complementary filters -[[file:figs/comp_filter_hinf_uncertainty.png]] +#+name: fig:hinf_comp_filters +#+caption: Obtained complementary filters using the $\mathcal{H}_\infty$ Synthesis +#+RESULTS: +[[file:figs/hinf_comp_filters.png]] ** Super sensor uncertainty -#+begin_src matlab - H2_filters = load('./mat/H2_filters.mat', 'H2', 'H1'); -#+end_src +The super sensor dynamical uncertainty is displayed in Figure [[fig:super_sensor_dynamical_uncertainty_Hinf]]. +It is confirmed that the super sensor dynamical uncertainty is less than the maximum allowed uncertainty defined by the norm of $W_u(s)$. + +The $\mathcal{H}_\infty$ synthesis thus allows to design filters such that the super sensor has specified bounded uncertainty. #+begin_src matlab :exports none + Dphi_Wu = 180/pi*asin(abs(squeeze(freqresp(inv(Wu), freqs, 'Hz')))); + Dphi_Wu(abs(squeeze(freqresp(inv(Wu), freqs, 'Hz'))) > 1) = 360; + Dphi_ss = 180/pi*asin(abs(squeeze(freqresp(W2*H2, freqs, 'Hz'))) + abs(squeeze(freqresp(W1*H1, freqs, 'Hz')))); Dphi_ss(abs(squeeze(freqresp(W2*H2, freqs, 'Hz'))) + abs(squeeze(freqresp(W1*H1, freqs, 'Hz'))) > 1) = 360; - Dphi_ss_H2 = 180/pi*asin(abs(squeeze(freqresp(W2*H2_filters.H2, freqs, 'Hz'))) + abs(squeeze(freqresp(W1*H2_filters.H1, freqs, 'Hz')))); - Dphi_ss_H2(abs(squeeze(freqresp(W2*H2_filters.H2, freqs, 'Hz'))) + abs(squeeze(freqresp(W1*H2_filters.H1, freqs, 'Hz'))) > 1) = 360; - figure; % Magnitude ax1 = subplot(2,1,1); hold on; - plotMagUncertainty(W1, freqs, 'color_i', 1); - plotMagUncertainty(W2, freqs, 'color_i', 2); - p = patch([freqs flip(freqs)], [1 + abs(squeeze(freqresp(W2*H2, freqs, 'Hz')))+abs(squeeze(freqresp(W1*H1, freqs, 'Hz'))); flip(max(1 - abs(squeeze(freqresp(W2*H2, freqs, 'Hz')))-abs(squeeze(freqresp(W1*H1, freqs, 'Hz'))), 0.001))], 'w'); - p.EdgeColor = 'black'; p.FaceAlpha = 0; - p = patch([freqs flip(freqs)], [1 + abs(squeeze(freqresp(W2*H2_filters.H2, freqs, 'Hz')))+abs(squeeze(freqresp(W1*H2_filters.H1, freqs, 'Hz'))); flip(max(1 - abs(squeeze(freqresp(W2*H2_filters.H2, freqs, 'Hz')))-abs(squeeze(freqresp(W1*H2_filters.H1, freqs, 'Hz'))), 0.001))], 'w'); - p.EdgeColor = 'black'; p.FaceAlpha = 0; p.LineStyle = '--'; + plotMagUncertainty(W1, freqs, 'color_i', 1, 'DisplayName', '$1 + W_1 \Delta_1$'); + plotMagUncertainty(W2, freqs, 'color_i', 2, 'DisplayName', '$1 + W_2 \Delta_2$'); + plot(freqs, 1 + abs(squeeze(freqresp(W2*H2, freqs, 'Hz')))+abs(squeeze(freqresp(W1*H1, freqs, 'Hz'))), 'k-', ... + 'DisplayName', '$1 + W_1 \Delta_1 + W_2 \Delta_2$') + plot(freqs, max(1 - abs(squeeze(freqresp(W2*H2, freqs, 'Hz')))-abs(squeeze(freqresp(W1*H1, freqs, 'Hz'))), 0.001), 'k-', ... + 'HandleVisibility', 'off'); + plot(freqs, 1 + abs(squeeze(freqresp(inv(Wu), freqs, 'Hz'))), 'k--', ... + 'DisplayName', '$1 + W_u^{-1}\Delta$') + plot(freqs, 1 - abs(squeeze(freqresp(inv(Wu), freqs, 'Hz'))), 'k--', ... + 'HandleVisibility', 'off') set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); set(gca, 'XTickLabel',[]); ylabel('Magnitude'); ylim([1e-2, 1e1]); + legend('location', 'southeast'); hold off; % Phase @@ -1078,10 +1069,10 @@ The obtained complementary filters are shown in Figure [[fig:comp_filter_hinf_un hold on; plotPhaseUncertainty(W1, freqs, 'color_i', 1); plotPhaseUncertainty(W2, freqs, 'color_i', 2); - p = patch([freqs flip(freqs)], [Dphi_ss; flip(-Dphi_ss)], 'w'); - p.EdgeColor = 'black'; p.FaceAlpha = 0; - p = patch([freqs flip(freqs)], [Dphi_ss_H2; flip(-Dphi_ss_H2)], 'w'); - p.EdgeColor = 'black'; p.FaceAlpha = 0; p.LineStyle = '--'; + plot(freqs, Dphi_ss, 'k-'); + plot(freqs, -Dphi_ss, 'k-'); + plot(freqs, Dphi_Wu, 'k--'); + plot(freqs, -Dphi_Wu, 'k--'); set(gca,'xscale','log'); yticks(-180:90:180); ylim([-180 180]); @@ -1091,37 +1082,49 @@ The obtained complementary filters are shown in Figure [[fig:comp_filter_hinf_un xlim([freqs(1), freqs(end)]); #+end_src -The uncertainty of the super sensor cannot be made smaller than both the individual sensor. Ideally, it would follow the minimum uncertainty of both sensors. +#+begin_src matlab :tangle no :exports results :results file replace + exportFig('figs/super_sensor_dynamical_uncertainty_Hinf.pdf', 'width', 'full', 'height', 'full'); +#+end_src -We here just used very wimple weights. -For instance, we could improve the dynamical uncertainty of the super sensor by making $|W_\phi(j\omega)|$ smaller bellow 2Hz where the dynamical uncertainty of the sensor 1 is small. +#+name: fig:super_sensor_dynamical_uncertainty_Hinf +#+caption: Super sensor dynamical uncertainty (solid curve) when using the $\mathcal{H}_\infty$ Synthesis +#+RESULTS: +[[file:figs/super_sensor_dynamical_uncertainty_Hinf.png]] ** Super sensor noise -We now compute the obtain Power Spectral Density of the super sensor's noise. -The noise characteristics of both individual sensor are defined below. +We now compute the obtain Power Spectral Density of the super sensor's noise (Figure [[fig:psd_sensors_hinf_synthesis]]). -The PSD of both sensor and of the super sensor is shown in Figure [[fig:psd_sensors_hinf_synthesis]]. -The CPS of both sensor and of the super sensor is shown in Figure [[fig:cps_sensors_hinf_synthesis]]. +The obtained RMS of the super sensor noise in the $\mathcal{H}_2$ and $\mathcal{H}_\infty$ case are shown in Table [[tab:rms_noise_comp_H2_Hinf]]. +As expected, the super sensor obtained from the $\mathcal{H}_\infty$ synthesis is much noisier than the super sensor obtained from the $\mathcal{H}_2$ synthesis. #+begin_src matlab - PSD_S2 = abs(squeeze(freqresp(N2, freqs, 'Hz'))).^2; - PSD_S1 = abs(squeeze(freqresp(N1, freqs, 'Hz'))).^2; - PSD_Hinf = abs(squeeze(freqresp(N1*H1, freqs, 'Hz'))).^2+abs(squeeze(freqresp(N2*H2, freqs, 'Hz'))).^2; - PSD_H2 = abs(squeeze(freqresp(N1*H2_filters.H1, freqs, 'Hz'))).^2+abs(squeeze(freqresp(N2*H2_filters.H2, freqs, 'Hz'))).^2; + PSD_S2 = abs(squeeze(freqresp(N2, freqs, 'Hz'))).^2; + PSD_S1 = abs(squeeze(freqresp(N1, freqs, 'Hz'))).^2; + PSD_Hinf = abs(squeeze(freqresp(N1*H1, freqs, 'Hz'))).^2 + ... + abs(squeeze(freqresp(N2*H2, freqs, 'Hz'))).^2; +#+end_src +#+begin_src matlab :exports none + H2_filters = load('./mat/H2_filters.mat', 'H2', 'H1'); + + PSD_H2 = abs(squeeze(freqresp(N1*H2_filters.H1, freqs, 'Hz'))).^2 + ... + abs(squeeze(freqresp(N2*H2_filters.H2, freqs, 'Hz'))).^2; + CPS_H2 = cumtrapz(freqs, PSD_H2); +#+end_src + +#+begin_src matlab :exports none CPS_S2 = cumtrapz(freqs, PSD_S2); CPS_S1 = cumtrapz(freqs, PSD_S1); CPS_Hinf = cumtrapz(freqs, PSD_Hinf); - CPS_H2 = cumtrapz(freqs, PSD_H2); #+end_src #+begin_src matlab :exports none figure; hold on; - plot(freqs, PSD_S2, '-', 'DisplayName', '$\Phi_{\hat{x}_{pos}}$'); - plot(freqs, PSD_S1, '-', 'DisplayName', '$\Phi_{\hat{x}_{acc}}$'); - plot(freqs, PSD_Hinf, 'k-', 'DisplayName', '$\Phi_{\hat{x}_{\mathcal{H}_\infty}}$'); - plot(freqs, PSD_H2, 'k--', 'DisplayName', '$\Phi_{\hat{x}_{\mathcal{H}_2}}$'); + plot(freqs, PSD_S1, '-', 'DisplayName', '$\Phi_{n_1}$'); + plot(freqs, PSD_S2, '-', 'DisplayName', '$\Phi_{n_2}$'); + plot(freqs, PSD_H2, 'k-', 'DisplayName', '$\Phi_{n_{\mathcal{H}_2}}$'); + plot(freqs, PSD_Hinf, 'k--', 'DisplayName', '$\Phi_{n_{\mathcal{H}_\infty}}$'); set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); xlabel('Frequency [Hz]'); ylabel('Power Spectral Density [$(m/s)^2/Hz$]'); hold off; @@ -1129,37 +1132,28 @@ The CPS of both sensor and of the super sensor is shown in Figure [[fig:cps_sens legend('location', 'northeast'); #+end_src -#+HEADER: :tangle no :exports results :results none :noweb yes -#+begin_src matlab :var filepath="figs/psd_sensors_hinf_synthesis.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png") - <> +#+begin_src matlab :tangle no :exports results :results file replace + exportFig('figs/psd_sensors_hinf_synthesis.pdf', 'width', 'wide', 'height', 'normal'); #+end_src -#+NAME: fig:psd_sensors_hinf_synthesis -#+CAPTION: Power Spectral Density of the obtained super sensor using the $\mathcal{H}_\infty$ synthesis +#+name: fig:psd_sensors_hinf_synthesis +#+caption: Power Spectral Density of the estimated $\hat{x}$ using the two sensors alone and using the +#+RESULTS: [[file:figs/psd_sensors_hinf_synthesis.png]] -#+begin_src matlab :exports none - figure; - hold on; - plot(freqs, CPS_S2, '-', 'DisplayName', sprintf('$\\sigma_{\\hat{x}_{pos}} = %.1e$ [m/s rms]', sqrt(CPS_S2(end)))); - plot(freqs, CPS_S1, '-', 'DisplayName', sprintf('$\\sigma_{\\hat{x}_{acc}} = %.1e$ [m/s rms]', sqrt(CPS_S1(end)))); - plot(freqs, CPS_Hinf, 'k-', 'DisplayName', sprintf('$\\sigma_{\\hat{x}_{\\mathcal{H}_\\infty}} = %.1e$ [m/s rms]', sqrt(CPS_Hinf(end)))); - set(gca, 'YScale', 'log'); set(gca, 'XScale', 'log'); - xlabel('Frequency [Hz]'); ylabel('Cumulative Power Spectrum'); - hold off; - xlim([2*freqs(1), freqs(end)]); - % ylim([1e-10 1e-5]); - legend('location', 'southeast'); +#+begin_src matlab :exports results :results value table replace :tangle no :post addhdr(*this*) + data2orgtable([sqrt(CPS_H2(end)), sqrt(CPS_Hinf(end))]', {'Optimal: $\mathcal{H}_2$', 'Robust: $\mathcal{H}_\infty$'}, {'RMS [m/s]'}, ' %.1e '); #+end_src -#+HEADER: :tangle no :exports results :results none :noweb yes -#+begin_src matlab :var filepath="figs/cps_sensors_hinf_synthesis.cps" :var figsize="full-tall" :post cps2svg(file=*this*, ext="png") - <> -#+end_src - -#+NAME: fig:cps_sensors_hinf_synthesis -#+CAPTION: Cumulative Power Spectrum of the obtained super sensor using the $\mathcal{H}_\infty$ synthesis -[[file:figs/cps_sensors_hinf_synthesis.png]] +#+name: tab:rms_noise_comp_H2_Hinf +#+caption: Comparison of the obtained RMS noise of the super sensor +#+attr_latex: :environment tabular :align cc +#+attr_latex: :center t :booktabs t :float t +#+RESULTS: +| | RMS [m/s] | +|------------------------------+-----------| +| Optimal: $\mathcal{H}_2$ | 0.0027 | +| Robust: $\mathcal{H}_\infty$ | 0.041 | ** Conclusion Using the $\mathcal{H}_\infty$ synthesis, the dynamical uncertainty of the super sensor can be bounded to acceptable values. @@ -1178,7 +1172,6 @@ However, the RMS of the super sensor noise is not optimized as it was the case w #+caption: Sensor fusion architecture with sensor dynamics uncertainty [[file:figs-tikz/sensor_fusion_arch_full.png]] -** Mixed $\mathcal{H}_2$ / $\mathcal{H}_\infty$ Synthesis - Introduction The goal is to design complementary filters such that: - the maximum uncertainty of the super sensor is bounded - the RMS value of the super sensor noise is minimized @@ -1201,46 +1194,6 @@ The Matlab function for that is =h2hinfsyn= ([[https://fr.mathworks.com/help/rob load('./mat/Wu.mat', 'Wu'); #+end_src -** Noise characteristics and Uncertainty of the individual sensors -Both dynamical uncertainty and noise characteristics of the individual sensors are shown in Figure [[fig:mixed_synthesis_noise_uncertainty_sensors]]. - -#+begin_src matlab :exports none - figure; - ax1 = subplot(2, 1, 1); - hold on; - plot(freqs, abs(squeeze(freqresp(N2, freqs, 'Hz'))), '-', 'DisplayName', '$|N_{pos}(j\omega)|$'); - plot(freqs, abs(squeeze(freqresp(N1, freqs, 'Hz'))), '-', 'DisplayName', '$|N_{acc}(j\omega)|$'); - set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); - xlabel('Frequency [Hz]'); ylabel('Magnitude'); - hold off; - legend('location', 'northeast'); - - ax2 = subplot(2, 1, 2); - hold on; - plot(freqs, abs(squeeze(freqresp(W2, freqs, 'Hz'))), '-', 'DisplayName', '$|W_{pos}(j\omega)|$'); - plot(freqs, abs(squeeze(freqresp(W1, freqs, 'Hz'))), '-', 'DisplayName', '$|W_{acc}(j\omega)|$'); - set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); - xlabel('Frequency [Hz]'); ylabel('Magnitude'); - hold off; - legend('location', 'northeast'); - - linkaxes([ax1,ax2],'x'); - xlim([freqs(1), freqs(end)]); -#+end_src - -#+HEADER: :tangle no :exports results :results none :noweb yes -#+begin_src matlab :var filepath="figs/mixed_synthesis_noise_uncertainty_sensors.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png") - <> -#+end_src - -#+NAME: fig:mixed_synthesis_noise_uncertainty_sensors -#+CAPTION: Noise characteristsics and Dynamical uncertainty of the individual sensors -[[file:figs/mixed_synthesis_noise_uncertainty_sensors.png]] - -** Weighting Functions on the uncertainty of the super sensor -We design weights for the $\mathcal{H}_\infty$ part of the synthesis in order to limit the dynamical uncertainty of the super sensor. -The maximum wanted multiplicative uncertainty is shown in Figure .The idea here is that we don't really need low uncertainty at low frequency but only near the crossover frequency that is suppose to be around 300Hz here. - ** Mixed $\mathcal{H}_2$ / $\mathcal{H}_\infty$ Synthesis The synthesis architecture that is used here is shown in Figure [[fig:mixed_h2_hinf_synthesis]]. @@ -1292,10 +1245,11 @@ The mixed $\mathcal{H}_2/\mathcal{H}_\infty$ synthesis is performed below. #+end_src #+begin_src matlab :exports none + % The obtained filters are saved for further analysis save('./mat/H2_Hinf_filters.mat', 'H2', 'H1'); #+end_src -The obtained complementary filters are shown in Figure [[fig:comp_filters_mixed_synthesis]]. +The obtained complementary filters are shown in Figure [[fig:htwo_hinf_comp_filters]]. #+begin_src matlab :exports none figure; @@ -1335,17 +1289,39 @@ The obtained complementary filters are shown in Figure [[fig:comp_filters_mixed_ xticks([0.1, 1, 10, 100, 1000]); #+end_src -#+HEADER: :tangle no :exports results :results none :noweb yes -#+begin_src matlab :var filepath="figs/comp_filters_mixed_synthesis.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png") - <> +#+begin_src matlab :tangle no :exports results :results file replace + exportFig('figs/htwo_hinf_comp_filters.pdf', 'width', 'full', 'height', 'full'); #+end_src -#+NAME: fig:comp_filters_mixed_synthesis -#+CAPTION: Obtained complementary filters after mixed $\mathcal{H}_2/\mathcal{H}_\infty$ synthesis -[[file:figs/comp_filters_mixed_synthesis.png]] +#+name: fig:htwo_hinf_comp_filters +#+caption: Obtained complementary filters after mixed $\mathcal{H}_2/\mathcal{H}_\infty$ synthesis +#+RESULTS: +[[file:figs/htwo_hinf_comp_filters.png]] ** Obtained Super Sensor's noise -The PSD and CPS of the super sensor's noise are shown in Figure [[fig:psd_super_sensor_mixed_syn]] and Figure [[fig:cps_super_sensor_mixed_syn]] respectively. +The PSD and CPS of the super sensor's noise are shown in Figure [[fig:psd_sensors_htwo_hinf_synthesis]] and Figure [[fig:cps_h2_hinf_synthesis]] respectively. + +#+begin_src matlab :exports none + % The filters are loaded + H2_filters = load('./mat/H2_filters.mat', 'H2', 'H1'); + Hinf_filters = load('./mat/Hinf_filters.mat', 'H2', 'H1'); +#+end_src + +#+begin_src matlab :exports none + H2_filters = load('./mat/H2_filters.mat', 'H2', 'H1'); + + PSD_H2 = abs(squeeze(freqresp(N1*H2_filters.H1, freqs, 'Hz'))).^2 + ... + abs(squeeze(freqresp(N2*H2_filters.H2, freqs, 'Hz'))).^2; + CPS_H2 = cumtrapz(freqs, PSD_H2); +#+end_src + +#+begin_src matlab :exports none + Hinf_filters = load('./mat/Hinf_filters.mat', 'H2', 'H1'); + + PSD_Hinf = abs(squeeze(freqresp(N1*Hinf_filters.H1, freqs, 'Hz'))).^2 + ... + abs(squeeze(freqresp(N2*Hinf_filters.H2, freqs, 'Hz'))).^2; + CPS_Hinf = cumtrapz(freqs, PSD_Hinf); +#+end_src #+begin_src matlab PSD_S2 = abs(squeeze(freqresp(N2, freqs, 'Hz'))).^2; @@ -1360,9 +1336,11 @@ The PSD and CPS of the super sensor's noise are shown in Figure [[fig:psd_super_ #+begin_src matlab :exports none figure; hold on; - plot(freqs, PSD_S2, '-', 'DisplayName', '$\Phi_{\hat{x}_{pos}}$'); - plot(freqs, PSD_S1, '-', 'DisplayName', '$\Phi_{\hat{x}_{acc}}$'); - plot(freqs, PSD_H2Hinf, 'k-', 'DisplayName', '$\Phi_{\hat{x}_{\mathcal{H}_2/\mathcal{H}_\infty}}$'); + plot(freqs, PSD_S1, '-', 'DisplayName', '$\Phi_{n_1}$'); + plot(freqs, PSD_S2, '-', 'DisplayName', '$\Phi_{n_2}$'); + plot(freqs, PSD_H2, 'k-', 'DisplayName', '$\Phi_{n_{\mathcal{H}_2}}$'); + plot(freqs, PSD_Hinf, 'k--', 'DisplayName', '$\Phi_{n_{\mathcal{H}_\infty}}$'); + plot(freqs, PSD_H2Hinf, 'k-.', 'DisplayName', '$\Phi_{n_{\mathcal{H}_2/\mathcal{H}_\infty}}$'); set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); xlabel('Frequency [Hz]'); ylabel('Power Spectral Density [$(m/s)^2/Hz$]'); hold off; @@ -1370,42 +1348,46 @@ The PSD and CPS of the super sensor's noise are shown in Figure [[fig:psd_super_ legend('location', 'northeast'); #+end_src -#+HEADER: :tangle no :exports results :results none :noweb yes -#+begin_src matlab :var filepath="figs/psd_super_sensor_mixed_syn.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png") - <> +#+begin_src matlab :tangle no :exports results :results file replace + exportFig('figs/psd_sensors_htwo_hinf_synthesis.pdf', 'width', 'wide', 'height', 'normal'); #+end_src -#+NAME: fig:psd_super_sensor_mixed_syn +#+name: fig:psd_sensors_htwo_hinf_synthesis #+CAPTION: Power Spectral Density of the Super Sensor obtained with the mixed $\mathcal{H}_2/\mathcal{H}_\infty$ synthesis -[[file:figs/psd_super_sensor_mixed_syn.png]] +#+RESULTS: +[[file:figs/psd_sensors_htwo_hinf_synthesis.png]] #+begin_src matlab :exports none figure; hold on; - plot(freqs, CPS_S2, '-', 'DisplayName', sprintf('$\\sigma_{\\hat{x}_{pos}} = %.1e$ [m/s rms]', sqrt(CPS_S2(end)))); - plot(freqs, CPS_S1, '-', 'DisplayName', sprintf('$\\sigma_{\\hat{x}_{acc}} = %.1e$ [m/s rms]', sqrt(CPS_S1(end)))); - plot(freqs, CPS_H2Hinf, 'k-', 'DisplayName', sprintf('$\\sigma_{\\hat{x}_{\\mathcal{H}_\\infty/\\mathcal{H}_\\infty}} = %.1e$ [m/s rms]', sqrt(CPS_H2Hinf(end)))); + plot(freqs, CPS_S1, '-', 'DisplayName', '$\Gamma_{n_1}$'); + plot(freqs, CPS_S2, '-', 'DisplayName', '$\Gamma_{n_2}$'); + plot(freqs, CPS_H2, 'k-', 'DisplayName', '$\Gamma_{n_{\mathcal{H}_2}}$'); + plot(freqs, CPS_Hinf, 'k--', 'DisplayName', '$\Gamma_{n_{\mathcal{H}_\infty}}$'); + plot(freqs, CPS_H2Hinf, 'k-.', 'DisplayName', '$\Gamma_{n_{\mathcal{H}_2/\mathcal{H}_\infty}}$'); set(gca, 'YScale', 'log'); set(gca, 'XScale', 'log'); xlabel('Frequency [Hz]'); ylabel('Cumulative Power Spectrum'); hold off; xlim([2*freqs(1), freqs(end)]); - % ylim([1e-10 1e-5]); legend('location', 'southeast'); #+end_src -#+HEADER: :tangle no :exports results :results none :noweb yes -#+begin_src matlab :var filepath="figs/cps_super_sensor_mixed_syn.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png") - <> +#+begin_src matlab :tangle no :exports results :results file replace + exportFig('figs/cps_h2_hinf_synthesis.pdf', 'width', 'wide', 'height', 'normal'); #+end_src -#+NAME: fig:cps_super_sensor_mixed_syn +#+name: fig:cps_h2_hinf_synthesis #+CAPTION: Cumulative Power Spectrum of the Super Sensor obtained with the mixed $\mathcal{H}_2/\mathcal{H}_\infty$ synthesis -[[file:figs/cps_super_sensor_mixed_syn.png]] +#+RESULTS: +[[file:figs/cps_h2_hinf_synthesis.png]] ** Obtained Super Sensor's Uncertainty The uncertainty on the super sensor's dynamics is shown in Figure #+begin_src matlab :exports none + Dphi_Wu = 180/pi*asin(abs(squeeze(freqresp(inv(Wu), freqs, 'Hz')))); + Dphi_Wu(abs(squeeze(freqresp(inv(Wu), freqs, 'Hz'))) > 1) = 360; + Dphi_ss = 180/pi*asin(abs(squeeze(freqresp(W2*H2, freqs, 'Hz'))) + abs(squeeze(freqresp(W1*H1, freqs, 'Hz')))); Dphi_ss(abs(squeeze(freqresp(W2*H2, freqs, 'Hz'))) + abs(squeeze(freqresp(W1*H1, freqs, 'Hz'))) > 1) = 360; @@ -1417,6 +1399,10 @@ The uncertainty on the super sensor's dynamics is shown in Figure plotMagUncertainty(W2, freqs, 'color_i', 2); p = patch([freqs flip(freqs)], [1 + abs(squeeze(freqresp(W2*H2, freqs, 'Hz')))+abs(squeeze(freqresp(W1*H1, freqs, 'Hz'))); flip(max(1 - abs(squeeze(freqresp(W2*H2, freqs, 'Hz')))-abs(squeeze(freqresp(W1*H1, freqs, 'Hz'))), 0.001))], 'w'); p.EdgeColor = 'black'; p.FaceAlpha = 0; + plot(freqs, 1 + abs(squeeze(freqresp(inv(Wu), freqs, 'Hz'))), 'r--', ... + 'DisplayName', '$W_u$') + plot(freqs, 1 - abs(squeeze(freqresp(inv(Wu), freqs, 'Hz'))), 'r--', ... + 'HandleVisibility', 'off') set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); set(gca, 'XTickLabel',[]); ylabel('Magnitude'); @@ -1430,6 +1416,8 @@ The uncertainty on the super sensor's dynamics is shown in Figure plotPhaseUncertainty(W2, freqs, 'color_i', 2); p = patch([freqs flip(freqs)], [Dphi_ss; flip(-Dphi_ss)], 'w'); p.EdgeColor = 'black'; p.FaceAlpha = 0; + plot(freqs, Dphi_Wu, 'r--'); + plot(freqs, -Dphi_Wu, 'r--'); set(gca,'xscale','log'); yticks(-180:90:180); ylim([-180 180]);
Table 5: Comparison of the obtained RMS noise of the super sensor