From 38a4fdefe310d69f3f31d46509bbe928d88f254b Mon Sep 17 00:00:00 2001 From: Rebecca Schofield Date: Tue, 15 Sep 2015 23:13:28 -0500 Subject: [PATCH] more testing --- Attribute.h | 1 + DBEngine.h | 27 ++++++++++++++------------- OUTPUT.txt | 45 +++++++++++++++++++++++++++++++++++++++++++++ Relation.h | 11 ++++------- a.out | Bin 72106 -> 76409 bytes test.cpp | 16 +++++++++++----- 6 files changed, 75 insertions(+), 25 deletions(-) create mode 100755 OUTPUT.txt diff --git a/Attribute.h b/Attribute.h index 4b60d4d..c38f0df 100755 --- a/Attribute.h +++ b/Attribute.h @@ -23,6 +23,7 @@ public: void addRow(string v) { values.push_back(v); + size++; } vector getValues() { return values; } diff --git a/DBEngine.h b/DBEngine.h index ecb9590..c720c03 100755 --- a/DBEngine.h +++ b/DBEngine.h @@ -18,9 +18,9 @@ public: tables.push_back(r); } - void createTable(Relation r) { - tables.push_back(r); - } + void createTable(Relation r) { tables.push_back(r); } + vector getRelations() { return tables; } + void showTable(Relation r) { r.display(); } Relation getTableFromName(string n) { //will return first occurence @@ -31,23 +31,24 @@ public: } } - void showTables(Relation r) { - r.display(); + void saveToFile(vector cmds) { + ofstream file; + file.open("savefile.txt"); + + for(int i = 0; i < cmds.size(); ++i){ + file << cmds[i] << endl; + } + + file.close(); } - void saveToFile() { /*Becca*/ } void insertTuple() { /*DONE*/ } void deleteTuple() { /*DONE*/ } - void selectTuples() { /*William*/ } - void project() { /*DONE*/ } + void selectTuples() { /*DONE*/ } + void project(Relation r, string n) { r.projectQuery(n); } void product() { /*Brandon*/ } bool unionComp(Relation r1, Relation r2) { return ((r1.getSize() == r2.getSize()) && (r1.getDomains() == r2.getDomains())); } - - - vector getRelations() { - return tables; - } }; diff --git a/OUTPUT.txt b/OUTPUT.txt new file mode 100755 index 0000000..526f77f --- /dev/null +++ b/OUTPUT.txt @@ -0,0 +1,45 @@ +Assuming previously defined Attribute, compiled in a vector known as 'vec' and with subsequent numbers added + +To create a table: + + engine.createTable("table1", vec); + +This creates a Relation object with the appropriate Attribute objects. It displays nothing. + +To display the table: + + engine.showTables(engine.getTableFromName("table1")); + +This results in such output: + + Display of relation-------------------------------- + Relation name: table1 + + Attribute name: name + Elements: Fry Bender Leela Zoidberg + Attribute name: age + Elements: 22 5 22 50 + +With table3 having an equal domain to table1, this: + + cout << engine.unionComp(engine.getTableFromName("table1"), engine.getTableFromName("table3")); + + +This will display: + + 1 + +To project a table's column: + + engine.project((engine.getTableFromName("table1")), "name"); + + +This will display: + + -----------Initiated Query Projection--------- + Column Title: name + Fry + Bender + Leela + Zoidberg + diff --git a/Relation.h b/Relation.h index 525a0d9..40084c8 100755 --- a/Relation.h +++ b/Relation.h @@ -59,11 +59,11 @@ public: return att; } + //assumes that all attribute titles are unique void projectQuery(string input) { cout << "-----------Initiated Query Projection---------" << endl; for(int i = 0; i < att.size(); i++) { if(att[i].getName() == input) { - cout << "Column Title: " << input << endl; for(int j = 0; j < att[i].getSize(); j++) { cout << att[i].getValues()[j] << endl; @@ -77,15 +77,12 @@ public: } void display() { - cout<<"\n\nDisplay of relation--------------------------------"<_31P}wF9xlN|BSr!kFL-hVq9I9>6AUU91uSVy zrD`l{RlL;NYL!~G(Uuq#1zW4pQr~!~M5VgZP@5{&cx(R8vu5UG=bW=S*!O+E@B96K z9XNZF^9O6Zg*M*>$VWZ*HCR38nex2+l5F(1(3qP!DS-bu~>x*y&^IyJ3jauA}gyz0{3ifBc5v$F_S2 zek1T3jh{QvP6o;*AIsDAm!gjGrAYC_Q|Dv8*)wEp)}L|@+AwU^ikvH+0?IS&2ZiXH z$Z#7Z#==wY)JSHe>CagBfQS52@W+y$>wzEZA?HR9{5Kx@*L(2ydX#&y2j20(f8PUt zg@-=B^uVw1z_0btf1?Ng4IcPO9(w-T1OIam{3jmxpogA!dGMzjJy)4|1Z)y&aAiAb z+dm*_dwCa;k?0AjTM7lGdw^0eAw~X85pop9pW0Aq$tkCB%$cHs!6nP8DucD5qMA@J zsDkG#56&xFQeGP>tC>|%R9jnCtAZEjhcZqJ21840s;&$c7nKH!Dk`cHC=Tw%5G#Bu-vof;s&MldDZhlct zNtUqI7UgFl&0^;Y7A#g|F*K_TmK23bmQwNh`e1cgO>I?WQAK%ZMR0jK^5lmmmsHh- zBzILsZB{X2l~*nkN=0oBEXgQYT2vDZ)fAP7YEfv`Jm4llwepf+Rc)xItY}$I$^2ke z{;5G|rX`kDmR97H>|5UX!TIUPJq5nh?kOz_6&d%?NSB8o)*54cp}k1G^XAOUugVY7 zC;1^L9;0;ePAv6}3a16($Kss)$wAmMKSN|`mmB})hbE@mYON@%ToPIuEUT%hs?l~w z)tat|i%To=ma`Qt(+vo*B_$=nTBb5oa6#pjL<_n!_Ka*}2Jw8RP==Q9GXJov;E^onPGz90TccKEQ0USC%`TzLX6`1-G)#D~l=%kx5?IozqhQIgOLbA!6Wp!ZM_FvAMoEL2v)mA7` z&dDsthEx~ch!)aV7oM_gNO$4g>zzy&-aYRJTzETgQ&zSM&$-%$JQtqp1RDxmc&;IA zD0JaDSKF}Eh37iKhH4j{>jWF>U3jilY*^*Oa~)yBIv1XGZo_&P-mXVT+u*`;Jhfq? z3(vKb4G+2ScCA9%CKsOTFB@81c&>SDXmjDYp0Q!O3vbtJq_w;7?loG63vbtYrAsLceP3ScT6WTy-Cu~G0i1r*G5S{!!(oM|@cu4+l&$26OASD~cuV46+1D^JolGtH*k6_E7znP!viN|*HYOtVRLrAqoL zrr8v`QY2l&G@D?TlJw*|#B#Z0rQb+t=+9@A`MU2T#+hv@^E z-X!UnOtVRKZItvhrrDIb)=PRK(`-Urt0a9g(`+JL)sjAzX*P|nLP?KinpNMGC+P#2 zW|emZB)uQgtm>|Gq%;1O)9~75*$wY!uin*@H$P`vTlMt;mA!4tDgoQlQUc1k5{!Em zuVNA!+ih@vXXmpE+f^I3#rlO#nhUZ_J(f0w{DRQl+Zcr_y zVdd8ib-k-se(kF}@w%10eSJ{#sAmJu6)I=tH+_B2axM0Z+ES=m1$R4eFFnu9tz>+ns_In%%TH<*U9v=eem8zlZT$xGuY?nQ@TU1GLUr1DD5Z=TlUZX=QWvNsWfWdQl&I$v0w1>$nc0~VOMG|0n!ZFA@G4n6>TD}EzIm(4$dg?VvFd1C&^8l zcapVF;?0Z$)eg{FMqAEiVexDcY3Ic%tgCaZ*g}EUmhBgbEkrrn(Tn2RBAjpDo=LV?znuM5N$qMWZW+{Lv; zI9~^6?0OOX6SXaU6uLy>&5WbW9)Q;G(3ZzoSUg)q+LN&g>&iY+6d!>e>*(^D8Allk zpmin7IF~t_npr5i7V#i&f^(n7z@?l$(?kUEj-op821((3<8z3KZ1OTliY|ktOfl4X z7_9p;NKz%I_;hF!B{$w6DP`UgOQonml5TKD#bT8~Qfe!Q(E zPp^LVPq-@HASou@L$Bi-=vXZz5AMcN*4M%!}c7_o%{tu0jx#1^8QDvFP1 zi*RPe5-+xh{>w>j+I$v;z9sQy#(_!)XlKE_Sy((JdbD|#=%oap8M$GJ)aQK%uMKv#Dlzw z!>X)3?>beAA>R2JSmU;0;k=eYqs9uZJw=yIQl=>C%tw4*hE=NM44ndPqU6RKR;A48 zu~dp0R_O+3%Rgdi&$Xv``xBCzHeXBDgUlN$LWXq>Np8Qi()4yL$Ga5{2^_a7Js!HIA6xO>)!bn<(^raY-}dEEAyh zVY=Z*EG%C46=`?HDy(Y(cG6%A1zKB1XTlzlU2U|p%KUQH~o3W#XdZ9pT%c{9z3sKH0ijQZDa4rOA>^3I) ze~;v*&CgP3x5S$n2Wk^Q>lWHFiG{^$VT*>j~5iE^Ip-iJyQ&Sr2%JDY=~nEoQkxDlk#lf@;? zj04pP(ArKn)UdF44Opbr$11GrBkT#n77Dbse0q-9LX`9AU-!Wl;d}|4v279kza+V7 zb039XCU!M54pa|-uF?ltSUg)q+9RpEQ9LV?zn6SXZwIVVzlyn#hHzv=R_Mf6Y8 zwv50gm~*qln;A!$3ZV6M*2`NE5!V)x))}j?uJf^Xi+Z6zYs)1$QZGa~mr#5>TZA(s zmUv`s+AR7PlZ-~pwP%4|yK~mJr~|RyjcbMoIxJQ>UF)zV4KvtBtjM-`8YQ>ln^S1b z@wsBzS&YvRg_;>hj&y+5KhdEL4iU}dhd|;%PNCX$dUK2@XBN2P`b9Voqr9krZY+d~ z8s|uHTD>o^Chsnfvk4}-4vHl-Y6zqa&QG||k1W4y1h({H9&ZJpNq~&WdT6O)e2i$- z%s9w}0Il!PITarf(M*2iCf+)yK<~B@<(vSnxXuyIuRnx@Naece98qJu6sOhu^SFI* zj^z40me45Y&<1B6ghrL$^~r(KOdcc0Xl*g$&}t)qZYISn1dD0GHxmzsNHcjt8rhSY zqFc_Z(#eF`X`~(TdK5D|MX{9YKEkNswEbltyiCQM+rSxRrL4uo#BC&FMkMPgVpcQb zKy3ohH)*vjEZ&eQ(pJPOtm_^;a)Q8DS%xmJnQ@@nSccr>jSxMWStxu-JjkhBzsOBq zi{5@C-r2fqA8Z%SJHQ!jyR2U*==UURL!Bzb_htP;m7Ei}u^H8JzH4ujeOT0dZyeHtR-u3yBYd^-4Bn3e@4Dp5H91kPy90uU;u4`S(9zfkDq5^rW4s7`>^kLZTSSy;RV zEYezH71q^^XRNS=0&LX^ z!}s>V7Lm3aoKcSJdI`^uVG9LXTb9g_dLhbLLhLKXp+IZPaBT}w&Txv4H?Roju6H0I%F6+(|H0ap zAcd}wcr)W5=K<&{-2xGDZ4qy5i&a?HC3tBEwost8W#)9L7owb*6d%tP;T#o9ywr>6 zpF=X%yA=8hi8nJ2R3SiXBJ1U|xA(yok@gihqa4?D6JAJyEfi>NSy;fg_;=$c|AbuU^?`Hw}@yaKm0;G$g+B0f1czf%DD_&as48klPNE%z4AUr z)F_kUw0Z}p?!$eI)edfZvgtH=scafQ|Bh$=DtUAH*2|1 zY6k7_zfHxPT2J+86~FEfiKIKluqm$hg)=jj^>U*`6`UVIXk00UNkEWoz zwRSYZ*@{hnJc8f*D^8MYX)K{p)hI%%_#`2!eBSY~CY)FPYaa{|&IiC5Ehqp%Qu}`* z84rqR)KoF5nQ@@<0CX3*j)ldW3q;!YVinf)I$o-Tz*LdjOu4o#+#*xL%6ptvQDeb9 z*-b0g>jpGTD^@7n3)b5lMUtag%X(5%b?bTTG*|0seM4*@-5GP_KC~X;{F09eqMUvh zm2xhH#O}pg|nU8xKVDTAlae# z<-Q0K&hL2&%H!f>J$CTpY9ySCxz`_4BY7Tk^uA~$oS$($6jRWuFQL&JAjj26I3Mv8 zR87;K#9m`uLBiR{UCEdlZK6iA_eCS&9PO!5Ck1_l*U95*B%H5-Gg>1KLMb$DI+|Gv zpJirWx0P==Uozv;m!98yyVe;K2ei-Z#?5>M*{OQ1uTNgWZdloy-B8z)-I&#*U!u-7 zn3tZ{Z)r2xnAO`D7#D>}jlg6#29mQIo+Ep9BaC@1`=l+|4cqyWxtmiL2bL6;n!TkH zub?L-7!JO%J_w+V))4m_a$G=gq= zg{w4a^nsLE?LSU?7^w9=rEKd!>w$uFKUT6ZU=-qx^RmS8y~gt+n%hjn4R?0Y6CYvp z`*2_UBt0A5x~UF76!&a|KiocL*LShr8fFda@c(9s-@Yw`4T@1|{r-(2VsQMn{`b<& zqaC{Chg&_`CdcxXy$<$p!+jNB;e_#61({E2_;F4cJ@0o>Xw+c$i1i}u53JwSS-lv| zQ0u2>_0)Z|K3pbyk)B{07NDVWqCxq;>@O$U0Npsk(*s)5)aPpVW9LM(a=M2|F^Hk` zEGJx$*0u@4U-_Cn;eXBpl(`Z71AD;mCAUse}2UGrM6y2UZ$f zQ6cSGlyR8uJ`(*%=8z8Oa?FD0$xbpZ9k?v(#dm%yd)2k?fG4XX?4kjZU(D)5rLqK+ z#Mx)1xXWrC&ZIl&|BaT?-w#?A=-`i`)w15$ZKJ<`+PaV3chDjtr2ZdlLvy7GjuQXR zl=xm}|Gkbs(uTr5i?HecUj13`Qv;3w>~Y%yxI+z(9pS;iw!Q2Ye4olND25fc|I=OH z;Vj|m=EtOVRTJ(+D?6MuxEsrEcpk3qbm|e$Y1k@muMj+LPTtCG_)vfHxO!`<+@?|Z zz<%Gr-iW^Pg)}+}>v8_38=&-5tl;ZuqrT}7<-SdaUcIc7-4}gWcghauCJa*l{SNKr zlWN@RTA!36ZhcZ9c2ww{KK1#!snUP4U6gkaw+*jd@V4P` zMq1leH{`{voxbkm_1(Vph~dFY)=pU1-yBVM4=-1{kGE4}uTumOt9yKF+Cqa~%=$=m zkJc+*sY9-4xa@rmVn6b&hun{1w~eT&@&-uNtdVBRl#S8m>~IZs%J+8GzzKTvGNVmY z&x#aBFV6e8--~k?hZm>Ai=ECi)VCF!z`BaR!&Kbxd@dk7Q`e-?2+17%EQ^$;k9oT-svWJT*!*l_e8Wwfrlz@iX8`9d> zC;IDB2MiSJ&LfZG9Qm0ksi}UHll|LpBGoy)KY^LOuG9G)Tqxx=)u#f{;XG{+Bc58Y zV_n`@(zXTg<|LNZw(CN-HjW3g8_O^zENZj)ot2c{u&7Or9w^)1jh(xgoTHrl_?)og z9xh$AJlNId><`_dY^SrJyrZmXtJ_A=nc}VP-{29!L?pLE;dUt84uzpK^0?Wyf(-?2 z*NV4yA1fTT3Pw>4m+{fEEa%7Hgyo?4?armp$;`AV`fdnK=ycR*xHD@sCzFUpU=~^Vd_3SjTr?Dq~`gFKAL=Jga?*9+;M0BU9 z{m+Q5c`XfOAH50|M-PGQ7`MuIAyGZ^ZdS0n(=Dc`cs+9lnOr@y>X`wplTLC(D)&Gu zMLBoBhR5O-F^){GB8H)esP@zV(ec|8d-Av6O3|y;@bm@u_BexE{!i3(#9ppfUC+T- z8@sOm#VIe&W+ewdDI4`KA)gwcBwM(>B156)S=N^h3_0)J1PRYSo z!T0dXKUu{#;l6>YTnNmXwh?Q&e2?(_?{KdK&krckc@m0X*bA3*FiMK+`S-uA=fgc9 z6AiT!9R|H)K|4Ir=^P^SguWrK{D8{5m3eOf8|I?KEQA5kgPobw-SQ6nHUTg-9zZI9!3GT zqx)v!p&{MD-W#p^a=PDaCfv6--H*1qU*pofI#Tx*e!3K)`?&*kPhyD!bpJ&B_w9B6 zx$AynkTf?Bzn5SmSG?5e(tSsy?q7ctt@~pGb(dZ;K=%`LzuAl5qgFUvbiB$sh9I<# z5l^+@1T{P-!>yg)=@nHuTuy(1%V_5`_}xCManG-^PC6WQ+$(o1bv@4r`}fglQ27p4 z)7!EfqQGJvQn>Ft!m|ul9azY3ltyPZQ1$(|Uiio+FL+WYC%YjpS)e34<;l6v@a3hr z7bxv|E^3F{9p_*@54G!gsNJcBk$T=+pmiD*?o+&Jd6ZvXNSo|%j_PFmMb;j=m2)c1 zV-LCpJaWgF)tTEk7N`#ArEukTI9(FQjpKW{4S(gm;{jh&4poI57{Pt58JEsj^b%fS z$Z{#$=?s^9&P8EmU&P33`%mQTmnq)HNHAcY>>qJkFivc0?Fc^~zv?k+u}wce{~Hpf zj=Cy+7>Ma$z9^8@A`imPGp09Tu>EN-?dD5XNG!xE2JT^WDrBsAyDqJ3e+Ymj8wZTV z>nLJN4j+|Uc1*XAvlkUMwIQ06IP?$`ABTb+RYZ!#S{IY-R|s?jtCupwv*Xk zgf8vQe{o%m2;Kd|cLlG@*rChNR)5X}*?X|=UY)hu*L_k9z1yAFKz5JnXF;Ec!pBMB z+nhK4+}C${*6tDapbL#yn~yqK-#xSSkg$zO?((lh0@Dp%w1Bg*fHKa0kP4fZEk>;6 z<21f&peKCRzOK{sfr}I@v$$Io`UOprzSHh}#hW@}?|;ZuO5LEc}t}_)gV)y4-Im}Q~G{f-HdKoJd#+Vu@?huoP*aH3aF_i7_Sty1gZt|!Z(tq8UPy`x^1?j#93mEyA*$fL zkSx%8gcp)!;_y0*k+_G?N3+!n$#kx2(&1C@h2&R17at5*uR0$-EM|tq&w+Sa7d?-- zR)_!ZEF>rCyOd4Rm>ST#xNaAB4}VLnb-5c%7@_>=G2-rlgO^>mcfBe82ruvcNvGL` z_aXtU77n1!gH87y1Hk{YS zX$+>dJHt8LV-_dE`JuG8E#_{3OxvAVpV0|mSiLnMHznZ4WV3)CZE^lc>qHh;sCAB$ zjMbsjgnI(ZX6}w!oO*G@q87bOZ*e-177Z89FmrP%wA_woqLC&SgWXaV# z#bFVjzhOm8Pt=Q^+=hQT_hY+`rqEy8lj;r#(0Kg?J(SCGS&H+L7K^@S5H1Ydh+Sz7A4#G~hhGqg zy^E*c7{CKY46w^O(xD`>p_`n^wb;M;#y|z~YOP|gkvp7s!i~7oX-C{Xt=KAf`<&+{ z(ZTgZC-y_v`O?bSVtSlxiHDzA)oTfS)6)z+{|zVUQL@81j$KTKM!Z%*xBXkMRYW?8 zilJ|zC)=lebHY8L-8pxsbyA0O7UH~1@p#(T!BJ%2p7srs$v}HfNj&VilK&0Qb$$K6 z;W-YeXy_14~r7J(PKOyK~qM za_Rf5uNZH{U_&2dVq)p!)K$4#)o6J_W{RpzC1m%%gQRVe?Ev+iCBfJ#HDk{(bX={e^v&Nv`IWCzD!=KI$y?fW(Y(`Z7A^VN6nvDzLgfDM9=T13zG3fl7J~$DalM<{ zQ1(#wXx=1Kw7dkr``Vjh+%Qw4jqio?K|_4+#HwhN9oz0EV~H?T)HtVBiEZA2H^ z@Z#F#&`rI#_DTW~@WWSRo1t;#2ImGu@vuG%x^F^dZ*cyC8AWID0oM-PM&~ubF+Xs! zRnhMJW2bp*p>EiVYw2QN_fUELK@xZaLg2c!A&^#Wma^;ScVB|fN(zC&;q^-a8rSmL zkhLbe(V*9I95ejbTV=PumqSLQ5Nz%ea4A{q z46_um$vIPs$XaLfm1Kc;GZl62y&I*&InHSCz$)58ZI1JebkhFKwu@l4-b0AFGkDIcw1(4vhqLEp#=|> ztdbo4ds2U(`gQ}W|E`teUCzqrxtugpRn=>3(koMFeJRPX(jJ8u^sV36xyBRDtQF;M)6NSmd0Don!^ zg1a8+pZ^E7}9H#I7w!_uiyN~5;q_={F z?+4@y@0(tP#*3gSkh8%|@PKB8xt;To5M(mPj6x=v@R4zwBTu~g z>FGk(E6jB;9N**ql{PRF1r!(ovclX5hV{$XtcLpCT)07I+_c@VO+@vU#$ZF=xXDU@>L7R-4z#qbb?ofOc4I z2EJs@0jtdo&WYl1t~S>@_j72I)h04z>XG$LCnvl@gq5-ef-AAwY@p?GcgLxEr}Q3- zby*wCYID7lFY+h|qp_?uzu|%%{g$dak4P4dfGEzm9Gfmr(Ln9d6usI6S;f0OH)2ph zkUW}q$Bhe+kHb@fi9!i3Ke28cFkgh%p|B3?&?_;`inALQ!0+0-U*1M}5d6ha-M=#3ftyVCN;5EEgmv!=4(g@WQf(d1XWN(hCFxi9z|`oq01col9n zow{2^Xp3uFJmT8d--j znd5#);%GY<#&}Z^xi2_GY-QWp?%o$X@J)!=%MB5ll*fBu5W^b22k8K>llbfbf<#U+h*cQy{ zNx#p8eu3JFcx{s_u4CXttS9X2nivJp#umX0EU~^|@tP)%dh=$p{v3EmYW6{Y4=Req zj)l1srT7ogdx_KwI@~pKUH9$wIHTTP3-57ak+ZC0EX?l|%Zo9^{7-G)rDBwE*9G1I zlBtlbveOxdxZUGSHB+Q(`_3*|y*Hsg2{-W`=R@7Z(Wx+45BRXejO!uFtX?wmHL4nc+M9eu*A$O2of2s)kYzL8*;sR-D2fGOHHAf%{@a zV9}A+p_!y{AmcV??jC6ymOfVKdeyQ4GyNuK^QUfx0wX|HE!Z)@DkGC4OnBAOgq5?P zClD>GmQBui>=zXF=$|lJyrK8S)XzJ_H)VV;~L{9&-M;g-EVcHafR+)R2`5GGyuse$(lr*)mPRXR=a(`>;|u zi`ME@JGPb@jT|`EtW-8SIUkz>+b@nD= zy>mC%u*M^kO9ao<*;~Fgr{^_yzU;=$WOrJr5b75et#?-Fj=0{L#xkzkO4pd@uzMB0 z-Wf7LDJ#4P!q$BdzRS^6=OPb8?G6HXKUjZpPs66o6ZOlG?b3%%mvZOZ3vC& z$!@rGOgrYQ%-oZ{nbGjCoQBV`w|tYB)3C#t^?fL}_HUshGT!Fjz0}VkXE%I4qwk=d z*{h%TWl!y{`D=FLrDKw_8!N`7Q4}h#svI9DsCkA_%TA>nR~G)I@^bve>eAE;>dIAF2`RdFICHtv#Ms=wBUKc^2*vW{IT_-x_Y&6#=KeC zGvip$HE z6;-O5vgKu!MU^2{jz6khR8z8ad3i;dqQBIfniXm${?2$=jmj;9wd&%k^3vk6nk6b{ z?)h-8gK*PSily**?=8@O96WU*8z^g0jakEW&*YY7685rSP!@xa0B3%fGvQ@ zzeRq)GXZ-6^8iQTu-FQ~Ou!9*1%S^1)&sr^xB+m#&BzZp8L$H|53m<71UPD#QnvtR z0^SQ)0JsUT94`P6x~coCa6`I1jKMupDp$;3~it zz()Z)0AB;_1>6ZZ3MWq=`YiGTP6R9foDNtII3I8W;1z%^fNKFe0DlYE3-}J;D4fFm zSHMibJ%9y(!!XCy10Dys0dOK<3t#}S1Mp(NUcfbgqf(Um0bnNJgMbBqoq+X#y?`44 zM_`6;0Xzz@18^c>FW@}DQTR*Bg@BoWs{jiCp98E1>;>EaI0|!E3*bqB9e}F=djTH> z9ED@>TL3cw+W`vz_rrpt9`IPe4S>@CTL9+*b^ula_5xl5I0}E6;5NWazy|;e0Jj3x z0}jH1Yy;qQz!tzu0XqOI0eb=K0Y~A0t@VJJfWHGQ0DK>?9`H-R4S+}BPOSy-WWWx< zGXZ-67XgmKNnck0W&%C~SP1wf;3~lRxa-^qcr9QX;46R*;BYLxlhHrZ0LKDWaVZXX zGvHFd-GJ)=58d9^_YmOKfIJ88H-PEr&+h}~0WQKGQ9ai?2Q0bU=pfBK$0Sf`I`ZMYg@Ls@&0AB{&4)_(I1Gwj16d_5pWM+8`E9T7jRlP{EO4RZv-3*_%dKN;L_dj zFW^CcLpucI-_mLW{2I^!eCuPBhl9_#kCF~J4lob!Qow4!^d95`?D+)w05AI#b^@wB zC=Y+3GxMLw2j~D60H%Eo{{Y?&xB+l0U<=@Zy~qbRA5dYwdk`=c@I$}=;JUBiAHaVC zt^+Lm2K^bZ8n6d2^IwpMd65C#TY~SZdCFIx;yZlU;NpdS&t|b=K(9Po6Xe7Hgi_sZ- zB#-=Cfo}&LO(UlKUBG_=`u&mgtksFsKMDT3?aY9h7D-21><7Ia^pid4vqAq7^o@~p zBfk{%JI)Fy3=J{$TLb!2pnH}70O&oSpW=~!E9gfAy#2om^pp2OPf9?W1D&=e;TKuI zV?dt|I=ezF`fSkaK|k7qUJCjK(7oEn8qgmE-P3;1JNJ@*E9f8Zg}w{)ulGVvO2k}0 z!&|>GppOE5N~C?JerJO|7j&=oT?%?3=wAL^1Nt?fd)4m)pg#nb8qmGk#~RS@2i>cEJOKJH_d?$a zdfQ&;yFh;hbg%kJ@}qr$?q%N?(7y)V%f8v5r_S=$zZCQ|(7noE19|{-+)BjkUk`wO z4(M1)#iVZqy?8J5U7)Yn3q1(~`FhaPJmil7y%ls%`$2yXbg%j=1^w@!XL`tA1Nw=x z0}4y7nD#vY`b^Nh{IeDGT+qGzvkUanz0i{|*Io^}SNUT=ZwB47|AYQA=&2t1mx8_< zbT9v`0sTwRz3h7c^rS3r`?i99#9rvTK%WG z1^rggz3f{9`rV*=)!zf4KLxti{IC`Dp1tJX1$y!vZ}~|>lsX!8FaL}IJq>iO#W0ja z&5yG|p9#9x_*M#f@m}Pw0lj)J`5yp%J?Jw%%HIn5>!5qJ&t0G=pY7c~lTa~ZLH8P; z#(+K*^ou>ppAGsgpnJ_PrJ%Qh4iM9SYe3izx@Y}^-U+&A{ewO_+dKa*&?oMNo-`EW zE9hSJI|lU2K=-QO*`R+Hbg%YP3i^$pd-b0+pg*{m{11Ts#9qqZ3i=Mvz1qhv&=1M+ zZXZe5L&^m`)uVpKfL;N*SNoU^`gcL!&m(^+=<7iDs^2xBZv@?|ejfn+t-a*m3i>B| zq3;5HzjFfWSP%V@um?5{bg%jw1Nt=3z1qiY(C32g)jmo=U*;iy40Kup`qiMHAF1Ej ztCMa_1QLO3lSjb!JMaY%Pr@&}PB-h&mqFj}TQ3nKZDrXIUMZw1}UA4%8==mP!x$o#HysLwd?Wu6~U z-`xuz%bO3rr@-gcA3~tN0eVKH9HgcGK~K&LsGJyd>hT2V^FXg7ecZ!nNZixFenf=6 z?|^SR_`V`vrZ-;_2DYsi1k@(-ogbTzdW{2LXrA{tmJ50#=xLOLUsx|hnZE+`r$P5> z*EfRx4(ML};t|k~%=ga!GUx%&z5Ko#^g_@xpi3pz_%5AUh~3_L4O-`FMs|P^dSqp{qYXy<3RWF$Je0eg6`#y zBd|CBUC_P!F&*>{(8V9CyzMLn-`s_?div`|Z#j>E?_KbXCm(*{_GQO^ z(1%?ZV;yejyFs4vcZpOF@q{-jE&w{T9$C zupIotb|6YUZUy~0(7!-D=?QN=eha?eT;#3CJD|T0x|bebgFgJ?fch=V!7r?b@z)Ut zW4_%BeLCnjT;iSoQqX5!8had*_7D1vpa&w$N1A^4G3YOY{zKB+WBY-8TfukPqJVmY ze1CTF<*fGKnA9XI2$r`SeEVG%yM0j3utV@{67(HD$oacVPQb z?6(NMOTkwSzURp|)|+n)%PlhP|4eVbN5J<8_@sU2#^$4)JHYq-V()gb2lQWp?$s_1 zIuzqD=w9t}GU!7~O#58wt;eO{ODgr&;~LOU0X>!;QvaYY1pPkPl(Z&xIa2@N>jhsg z>kYi&`Z#y>pd0;7Nk2dfkopH-&*Ff(obud!h?72Slu{Qj38*VP=;J_t0dy~Yb3yL` zeQ)asmJx-S*6#zLzYF^J5>Rg&W48n9^D_7r zFAJ#3NI6K8z8mx%pr^;6vz%e0A-^)9UM0Q5yPV13+X22h87EwP+4_0Pe9+IS_Fj*M zK>so50S`TH1^pe+?<76(7oOwGZ^2jp9W(BwxcFS-9_`u%zA-fcRZV%vy7(f-t6_&@ z?g3vt`6hbvO$OhvS~Cs>V)N18mxAxF;ET1sC;b}GM}}gzAJTse`gG7IP#^rl{Tfl) z^;^&@K;MCQ(xtKW5c|OwsKcpFY(Lep`B>gCUg~4FAIcdAdL`)hvAl<3%OT%<@TIK4 zelN>II;^*AJR;vU;LE-`pdLd!X=`kGROta+dcik`eE5asAxipIT+Y14yPxg?{b!(` z0^Z2{)FbIgv}e%IkEFZW2g?};zT;NLXt!p($OXL=^m&nTkY@f0(4UHxA2jN5Bk2DG z{XY7w!`mNEfN#Sp?|Rw+`k?Cqs+|2Z<qemXS)vpr$Tl{KEl7B~%`a=@q&-ndKgH_WY|HeV;_Cbu_FxdZQvU+o{fA?VZ z7m2@~?ElGr>L)||c+c^dLm0n%KmQ%W)%8RD+lHxohx(rws(vxlf8#K9{V@N|{Z+^Q z{tri}4~P4|7_L4U&iKv|{>MkE$5Z?-q^Q;u#vdN(|JMQPUnBiLJV1T_0LDK*!2iNQ z>URhF|9qf&<3Pq+4=QLZP){E0|Hmlx=E45E4^_Pf`x_5YYYy>$aEN;I5dTx7)MKOk zn@6k7hxywNQ!gFH_*0|(4M(Vk!~K})nh$6E`Xl^*I#T`V2)}cLdQal79O=LJXm#&V z{wI!7zc`BVJC63>cAWax(f;R;QFo>KH>IkdrTW($qyClZfBRUq<5>UuW7PY{`9C{O zeS93_Z;$amdV+fNc>k8;)icL4{?iluU!JJGJi*^|qPpQk#y>sLzvU$L;#mKiW7X?p z8Gq)aD>f}uTTk}Cc#3-WWdA=-R)3ZFv#0oh-#m`j_s01@7_Yt>=l{WY^}X?ozcZfr z?lk{<>1yo+|DFkI!vz1s6Vw9||JwxO-%9ttFtT|MrQhb)x^y z$?De0{`;n=`%d*gd8&H!RL1X|;{W(G_3;${b*HH>CH~QA{%5ADXEObN$W$+8GXATn z{u@qLH%#;2K26;`jq$!|{;$qdADr%g=nQrJbbs@7^@HjDzfD&kO!v2)sh&R5zb&A) zo#lV)EcM5;7;g*sZ<(oXnc;tMhPr14<2TOq@0_J}&h&pWQ*}$cW0wEHEcNhgf9q`Z z>)DLolXb+i`^51!}Wkf*ks=l|*Xs^dI=$6RcP z9&qzq)i{^&*X9zx@qF_9FpvCQc`R}31^&C{tDP74AIw*uUf_Rgp8DQA|BvRW_4642 z<2>T;$tTZk^Zj=(P(NDW|7d~gT)?{f*+Typ3)LqJ{m)&fesiH8t$Iy?e@B7(LxKOU zi_~ow`9Hfz?Ysyb_|c1T`A_(d2ma%M|9Id(9{7(3{^NoFc;G)C_>TwvLpX&P?N@^5eax?I3VCrk`8T!0!=ox(L}gk$S_y~dA85! z()|L0vG`1rP8KZo#|#`|pe-Mt!iYWFhXjNIKTF!`flqcMeZ8TZ?EmXvY-?f6GN$Yw z5d0hi7aF+Oz~u(sVBl>AK4{=m2EJ(E8wP%8;6Du(5k027lPyC8 z)cgtPKAOM!`halU9>Hgm#~_lRuEezwzbgEKIp+s!L#5@F!MfVAQXueh1bzvMLeufX zj;;y@E6R&Yf+e+e!Nuj3<*Ixj4yX_?`1}b!qds!tF{n|0^oRhHDlKh7?TXscvg+Ci z^_f$GQzlO+t5`gtHdIs-O3POh>S}8y)YgQB#CUA6MgqVWjRq0z#?da5cimcnXV4VIgusMp8$% z0rp_9s z1)eyJDg-Dp%@=_jf!btKLW)nH);2nw~gvabnduiNmK~@{4UZCmaWbMKu`rrj2uDp#(F#lh7>8AD`Bi1e z;=<$L47UuK0mu~$QT}q3Vw@E)5ED$Yjo)r?iR#KW6YU2!;{t>7sRcHAQy6twKfjJe z=bCSGeLtLwon%0W&UJy!wbn5D)TINmAYl<#hgtF?S@2ecgs}!%smo0|$3V`b3<0?+ zHOs&#kXE~58IB-PX|t^mY3CVJu)B>1dWHsFoTIzSA?oyZ zS$PS#s~{McG$~C>F0KW4N!2nQbrX)HaiNuVe%^daDl4vAf(BfKlVZZj>bhc{`w~u< zS1zs!vlbU)6=qWyj>>FYOt1;K+(s*^pqwtp6cbfv-xhH=GH|G}<4_cp)vOA&Bn3FjXaKnnMhnBN)feWXrl z88%K>jvw#gY<_#+cD<~=lnRgufj(xid=_$W;XR>E+xx=pCV#c$(t1-*tG_`j4teyY z&2R5RGqKQNNY@}-zRhp#=kV;#Z|`fDn*1A$VCs)GTey6ipVI>UYTTvleSPx&Kq6Q^ zor-RMw}Rl#pSpiQSW``YISayO2DGEUh4%pG&Tp4QJyaH+_J5BBoS^n=qbm!;iCk*3g7{c4OVs$cV{P;8Q%+I#T(7Uw;C@~4{ok^GVA9^|KqR)4z>GS=j`?a$`3(CWpz zBDem%&lUm$KRhcS++TF6zyDY{{{q3CU$qr#);0}#H3(mAJ_`pUvpavU$=_@8TRp7+ zo6n~Cw={{f_NQ(s6jJgQ%`uk3T_M#KXY>Hj$&wy{xA~_=;H@|d5BJDFV~frh(fp(= zQf&S-lRu&um1pu7Mi3(XafV0!O(s7#0NerW1HyS8`A0mb*(TbKZE{8CzsMv1jIBDu zq=*a=Nwvfyf9M6B|EP!z5lL0+k$=OBI)8!D+k(jUv&!U;tp6U9|KNxMZPLO z(7#>B*gxFC=CiolJn|>Lq&e~|qk)n6M*?r#zMD1QUgR_%tNab0>3r|m1&~gL+r3Hd6(oW?Ga(SglZe@7eoTC#3dO`HVLcd7 zks%Q)zfCdmgTnju?mUTDh1m7kKzuURTLCvp;)&S8vg;`~F%e&8+jY`F{7_}rKLhc@ z!u$0D@%x9@D+BSvm0gDn#E%GXgbu`~;Iz+x8zu2Xd|__a18!m>PM)&!{6PGH%Ff>d z@dsf(4!BVgPsEqFcD{8J6V)L&OR><6GW>@sJ3qRKiI}DByf+Yk80N7;H%j7({PN$- zGj3ucPK2`a&p`YU%FZhT@khFo;dr7tDjau566MQBH%7-3RcbU6m_#{2E1HxjU(UzE z9~X@jIb%HV$9v#U@W7uKh39yZr2f$tMex9L{D{SmeMa=^5#fz;D^FXLq6#9~XPSo` z&ey&e?doj7N4G0(lKAjcEV5k{15bSdX5$`73H7-8@by6YbA^(o{S4p3kN8Z3x8r0p z@RYMDLXMaI_llf@RdPi8e^l@Xs<9FM=(mE8)}PZ4%S~AwK&(G_`Tt$8#HyE%fTtXO zSI=;UT$MT$hST1Fu@^}RCm=$8`#knwgP#I?EcqnI!p{J|FGfGTPzpL&eZINSNY-Gf z2mWf26Fokx0X{WGf5%(j=v^b^J5)-he;J-Jczy@ZkRw-o7iI7~H-N$RkOWMsl*8{; z8LXTs246f&9FTf;C zefXU)gVpmogXi~M40p;E-(wm)zb|C4@;^3sp2NVPulU>~DYl+Pz_Z+$b2O(}PAHx+ zMm*1XVK_*x_`c8Jc^(DB47uVS$FKSMJsiWUa#iXWgXg&d3}4ArsnZOe--9#M$rayI z0)GI?t-d}W7`RIUzg3|=vu6e*eS}=Xp^Kwmm#z@TsPq3>T_WpBsFd!E^n`aMoZgpWpd26w4LoL>WBK zV`Ml+u1Z~D@cf>iAx*A$8f)-8ACke!zu(~beK*62az)?8fI`2Go*57f*NF_{4W8e@ zGVohihFpW^_t6ZG$QAk+JkRB0u>Svr!Sg&rhNI<*Zz~O+=aMiSCs#l$NK;MR4JLZv z=KxRrc^(df_5URX&+obzD&>mrm<^uiE-=`3^{Bz~dozZ4a>chLz{l#pJm;F_@|-{h zYwv9ATM^Imff%O972kFlJkN_@$dD^ObTW9J_rrjsgruQb4$p~Wu>LvG;CYS$!^LvN z8Q=!ba}60zma9_VF?gOg#9-UQGX~G^&KZ`-75go~V|5r_Puly{_Y6P3zhtoO=b&M+ z{gdW_&+))l0#Cp3TptG8U$z@O&*OCCzcF}zm&d?w^BAUJ-;Q#4jsSxlx62Kl=k_t! zc5ow2kSod=q4nW8oD5)-Pyl=^yJ`%7^4S65OO-43 z(G8yG2{Me9D<1x$VZ@Si9PsqRG*gduUbxWUi_ExW^9Bu`=hraUe(^(t=Q%PAo8*df zEe)RM7BFz#!|<8G^Sl)X+b>c_YJGUl41@LmnFhaRW`OAMxU|^ddHxuK^&7t161#XV z7{g4t;v7bU=Xt0MmVZ19q#yX5IRn2nXSf!4+TON*fXQ%p!0_|?c!n$Fit!l>Ys%qy ztPEEE41?$SH4Mke75*{!`)39OWBCW8B3N!@$OWGAd7dGI<*zq*o|DL6{nljg{EnJo zf?P458$8e7V9-~56AS!E{ImC=SRP0iiiIW1<#){t_IcGL;A81|j^TgG=rc`n;Vf>0 z=Xoy-T;DVN!r(h+2AB+w&z~DS&-G!j^U=gZv_1hdKG<>iLWBQhae(aM^}`(o&vR@U zrpOiFgaV%uV_nKKGH5T)X<*P-)EgX2JkMWXI7O~XU1ab)--yB1?^=WBxkwCYa>aRf z2G8&E8LH)qb+5tmdvAt0a>Zw!2G4VH8Em<`4W8%cG1&HSqWv5h+dr29&vJQ=DFd3N1b*{RJkJSXu=?=){*mbAcAtkYsWJT8@bkP_ z23udd44&tzG1zh7kfXGGo{z|2%MBPj&+TTg?P`(1^E`D1+n%oheq;iix}{L?_R?VZ zdA=`$)#p)z=Xn_n^>W2G*apw@%o%LGjD*7U1J9vmuztui`1^7-{$imj^+VuCCLE$h zwH6wT26qF``>9pe2L#ce(dtnnhvz^tSUp6AyyV0xACc&f(FH0{Ci?=g6u_rjpBI4AHJ%|F-p$I7|T z;CU`1!})Sms>$Ga-VTGs|K8viFVpx+p(^zcgXg)745@O(czmobm*-zHSUoQ`_*Z5I zhz{Fzufg-Y4TdY^insUBz*xUL=agZzT=52;!5_CWAQ*kc-=Z-1PBT8(cJh|N^PD1v z%jJr7i@|3G0)j#Jl)%5oz;b!+C4+50KQefp`^;eLx82}*P8x%4|9=BM1^qF3OQGQH zp;W<1Em2$=TH3r`q2nfcO>lpm|7is({ zhW|oD=m(xF%V7Py#^8DG7=z{SGkBge%wX&NuyL{VJQaA#f7h&It-a@Y@YfoCp4Y_i zh+MJ%XYf4thT*;h0qS#u=eb1;JiCZtJ_=&FJP(^;rd)Bpu)*^j9|mjh3kJ_~a~bp% z=K>l$&pTtdLaw+EPSf_T8Xhnh4Q>Zs{At?TXhZ$l@DE@{V)O*f&%YbOfNGL(ror=E zJcj4xioYRb@I1$w!S>Vd8vMo_jh`k|oFioLJO`DbPOkWyUchrbA32V782)RQ287ev zJ1sqS{muuT_VVw#Fxd9C$l!UtBLkX^gdZ6>nRB8yJ})wOo-4>;*C%%vJkK*{xLB?@XV>6)4m*Qw|A`Z|e4a1QVC&_0 zgXg*8ZhQ{#2MA{1rNr>_9DIiToAl5jroT#xY_ zDF&V;#V}v+(a(!7Hgfp)au_zs75jb$KQa^$jJ4}m2G4Wr7|?7a{NCWVn|ieMV&Bu} zE4zGE7q9G>6jf9Nmn^HQH1Bx_Ys!i$^yfS!HKE#29saB)-xZ%V|NMEu+?@RR!5~tz z2c*uK6>#y~{16BW-oiEQNLMzS@L^pTQW*+*ac3%G|AtP6m5Buo@Mv?!f3n#O%=qC5?)JCb16V}|0 zbgs&?<9B&|76)2)i_Ht?lSU}DI=A0_r=bz%+wOspE7oWduRVE*#!HaoLjcO6|26#ueqWS=xGyn!9wX)#Ny}=b^Bx-Me~ScqnnH=XP*B?|2Le=stQ- zn1_CcmYapSynivoHOM*3gY)2!TFel$DvD}r@%0dggQA@N8pUvJreEuhFwKq;Q>*K0 zmtxi~xq{wHH@(8L_csK~Z(Enkg%JZ~xQMJwGkTVBr9eeWEApa;WtXH_?LY2tpsR%= zjC*LQEW?!PQon!dbd6+L#q-Xcn;(od-(m^HF(ZGL@kswTAmfBfvR$7{!rG`5OH`RK zu&#kKWmV&{&(l+;qTKC;ch_gt4||CZ;&L(lA) zS(WITWv5l^zqOv#uM--je0nGAo>-$t{{Y0p7c33#?xu6t@7b3euCPUS7!LE;l8nI)XUtAnjD6VMON%x5m9V z#ML$X&T0Qbq=9EZn6dy0Z*1?ivc)m9-B8%S;(q z!b)XKLBo(rpHow{Y%V?qMdge8T%L&4OJghGT42a(7-M^FR7Z&;*`vjq<(Ix)2%>-O zYY&R8DLPPw?LbrD6Y2Em0QKde=%(b-IHFaA8-K*=yzAts3O>EMjnG=r`KubK_3FNA|qJpIR@so2FeXR$Zr!JN}ORdj$nY?wNTw zTqqo_n)5V!Csb1{y-U< zZY4;OYkDFpVVVyUwX@_*o^5e#l+_k96g3@Dc8N8{=LMgBa3w|fnUC;+Yn?Qpo)sT* z*3!=eoBUa+`8bCHEnLhjdOGZMG(~`$phS7nEq<2fO~|o6w(p~nZ;W!Zep}>*rPKDs zU3Rue`Pebo2Df>x+By@j6D*A0imG#}Ty)lbX^yuDF!S5MRrHIM(z{_S4s z9q{wmVG_~4%uoc7fnMA7epSt@D+u-<&np7Xd(R-q6Ycl*5&95HU;JAP5> z|LpLhC1F6rIsEWxfwPU3QE%x$(b!Zp^8gjXb6bQ@4re}>>P*E#;+{uRj3BT#vDwF- zOebHG5PY1B#J0D5f?_1mq{vGX29zpiDR&9E$f;gXtQTiL3bba~ZJQsU?`!;!SSef8 zoy$_9kq%cdg=(KVLB)&ew1b9TTtL6O%y|ZWL{_fs)hNZq{sObdBYF~KF4E#d%w9K) zRGFm5skZ){Ce0EjLNgXs3xMn`-Rawzy<8-1$3(R;d`|9?e=|?yPJm z*BggS_tF5O1#V0Ym37edPNtwPWHJ#HQm4aODI=GkvXr?Hs!eY)9hqj+%GjCcELHh_ zxtYAnnJ-Tjuy(9J8jAfn19#jW~a1;UOQ_)%oOBS9?r!Aa8L|suI}}hDx|pvVZtY6P)pMh z`gUg0U+4}z@;HUgDwLlQt0_;XxtDpOJee}Wv zh7;AC1s!;m5;&6n1vR6&%Ec1Qg33x?gJEJ(5@G_sxuyyS)(xg~*&w0hBt%UDKY9nd zY=ZKJJ7u&n0g(a1ZQ&Y|Q2*nu1%Ro+^`a3C}@3@Bt?vPx|ek}?~dWh4rFxmTSzk2xylZhi**(pN}xRjKq zNKfvXnnx$VXK9TpEu{q#dx)c*(ad9>dWW?ue1yPC&z7f3t%G2zv_W+^iBuiy9IHyR z4LVz(4v%GBWWWfMX8!c+i5Z>kORZySdsjX-tIcBbJUY-R)ied5V-&738<|f_dbEYDSauKZx zNVVow8Yf;3AY_pCWkX;tum_yY*`ORTBnu?UfIBBGuGm*pqWzJ*c^(KqHdw=3{7BaT z>=vTt-$?o)1q5#mILYefyv0f)ZDo|kIm0DFs7BD)^^FXW0U#iCe`3k@@TpU%AesZl z(DwyjZrp^sXGM*DZi6|7_ayZ<6XeWa8yY;Pq#cs>`Gt(lykB6@I16C2o)wtP2#L9B za_NM^-Se}lICaNT;1Ku$8JVs*B2JPZL!6h}${-(uNYugXnF3tqcnAX}o7hQZyIeZlvC9*dhrnO7{>lpsq7m5DrIt#&Uw*0h?GM X%Ll_MY+SX=<-_(Zc19_edHwBw#`Rsm literal 72106 zcmeFadtj8s)jvL)WFaa-P_%fdMny%1kU+$ssLN$B(SVTzOD%Q@NrY%fXtDvkpjgln zF_kK@+FFa2TH1O^Em~?NMu~#0ZK)z}yi}=0ebS(!rIxm6zMs#TncXM5&yx+l@B90H z|M(5;b7sytbLPyM+nISTxhY&cEiDjGHl(Qw6jOT#hXkdsO6`A2k_K0x4pAX>mKv!B z029P7Bosm&vv9u=ZDFS2O9#xruOLk$3erLnvG90}Ru)e=65^_*$S^Rr8)(ceN-T{Whr zdfxc_F*TK=YpQD-myTXqFn;v-{G5imoUu~xEGR19FWZl>w6QeI9~lDb z&@|$P;m4+6z8fyO{@)*7vaz-FC)?ktee$`le`EfF$WYL-@jC*)qwqTtzhm$_5kH3G z@cWX)lrpB0)L>k{jNf7S9g5#@{QLs-u=S*_rfUd0ZES5f2yxcy1pHWE>c((5euv=4 zzI!x&L-0EmKX+g~87P~4EKj#zmO3erCB+j@olp8~-ytKzuNDuxXV8>ui>`SRDBo}> z6rybs!`+bRg{R)xiOfjTo?iHnkNisTd&w{M!H@KjbGr}zGavnz`ta}fDfbE=yyJtv z%?E#tk3PTf!C&ixzr{!Ybw2#J`rya;==m!j{Lg&wpZMS-K6?JZhd^2$hgO-)_JVi0Cr zQreK;P<>rhSW=}8Q}Y;$R4grz)K^Ica+O94s_Pn%wV^7%sJ1$)xqxq&k{2$yq+;eJ zrR7BxVPS13FAXEjVrK{zELP+^XjU7kD34YwpyErHMiy1oH`LXZ*HlNZjV#VZp3-Q3 zMO|Z5a@W-~gy$hvyJVqIY8r}Ale~%r<@J$heR*}X0fmNV0yhq-RaZpn8lv@8iOMRolIT6@#UQua&1a&FP6It5i#=fP|vAMQcYpQDJM;An@>g((3 zb-j~XO*h09l{F=c*^3tH4ushJii$`BQ+X;ft9D5>sx`B!p>bgq*(z*5W1lFGRxPcL zs)bbxD;6$76OwNF-oowexw&Y1d+@3#$8pV<5fOMQ=Q| z8cS4$dMHLu1BcE}{#PEm21{SMdfeoRo^dCZy)?Di@b7Y*_BX(~q!Wl?%@{w_%M7Z~YO{?s4Hc zpW3j_g+J0F0XMkt)>k39)rF`3Wy2;Ho<5Ha?Jhk185_2_@YY`=ZMzHa_R%_Bc`<(}~RnMuraUF7E z2r;G?Fk9EI9)we0XPRBQYrCXhW}02Ot6kE+WjdYdR!Kj{G+oTDb&`IHX?F3hHIjau zX?E?d<&ypx)9lh+izNLZ)9lJ!b0z&frrCwNN+f+J)9kukAxYoHG`nn9uB5-oG`nP1 zwxq9Pnq9FgOVagBvkP`9Nng!0yI$Ac&w)5~9@Fe{UArWG1=H+mUE3u+lWBIbu69XZ z%=D2=w@P|4)9g}R>m+?H)9gxJYa~6EX?CHm<&r*=X?BsWMUp<5X?BgSxspDXX*PXV ziKLHUnoZsnlJucWv#GmskT~Z)uOF^=y|eaaGQc6IVhW9Qza1tiq;uOUbzW{9PzWHD0o5 zIJSs|tB-me$->cDOgy_ky|8(9PvL~u8%`Z^;&Ns!Y@Qq_YzjUBrk-KX3)kwSe!?sh zUax=Wh2UL?23XwJUfgokRq-Nc6|Ojc{{1KjYA=p|JO z(ZB~?B~j#Em?SA{SIl#R&D&Ui2J-631``6M@QK9Q`y zlXwf`KxF~6O`sW$WMLPiFoPKK7_Y**-Z)+ALV=Jgb$R-7sS8ogTJ*e>brH_1rN<_A z9M(nj|31mho5xUSkHlLT2Pzw&EyTK9#KKb5MWjvlDy(aWt_ua)y6nXAEn^G6CAAu`buMuvB#sX*YWn)-~lcX%`B#bs3@S zLX>j=(_PAT5zd#v>0KAmKV8@5QVN|f@fOBWW(c6In00xKg{7*CNPEJou&yPiN+U#A zhAyv#agEAxYNg`sOLpfvJmWNvC3_G$K*XdDJXbBMRqG zFYz)MrRtMOZr*$og+3(l7RG^E1kg60X87$31GZ^xRYea|z_mSTu^ehSuiytJIju^SI&czp z@Kq8;s=f5=x)-N0Xi4e>TbrH^!y~NA3 zD*Bg_j14D+{z~F4j03e7pzSW!rRT$b)J3EPy$b8vgJTBNg#v9|He4)qA<9`!@u}(} zoR@>syN`+f-y#{?JnU7SZi%-r4wM3DyN`7l$HG$eF_AXGtFW$YsmtaQS%xmJg>jUT z#WL2jj6Z%rL<B9xv@VNlI(|o@DIi$eJfLX<;0wY=E{6wCc6s zNjXVMm3}zpi&RMznd+ry*I776LrYQ@s3c{)e~~mIQO+~n{b)qtYyoGou|u}%FOZCl zAcdYOCTU?Ds9b=ypVJKWEG$(A7DF!eDy-{hoDrff6lm*moURK|&fovmkGcrwi{SLG zi|GGvlAAYQN}*qudbKbPR0u#f=|e0mRb52d!(N4TU5xWj)P(|VT`rv_?Lw4uI>o1& zScLPlF2A~n{yDlX5emIi;w_A$%o2dMN7yc}Lqy8Dh_qc^g>~I{l+=X+ZCzG`r7lD{ zU!(X`brH@yFY(BVO)3S=BN?5TzULxJT^HcUpZ3zmSwqHbJsh85 ze1vG#!Z;Ld1!(&fjZ^bJ5iR6LZsM(R7U|PAqMXyfmC`uEdEh-r@HCF7F_0nGa7m^Rx+K*xU8xn6}92Lq2Xlvt;{WV0S^k1Y(Z}Y77psOU^W~G;& zU9aIjC0dfYn3i--*LR7Ca(dqBM-`dMVH~Is zK--I~%X@$6M_okP9&jcZu514wsS5?#y4-QT)P*Q#KEu`DcAyNI-Gufn=U>AFy$t;?2)QWv6}@9*kIU4-)+;7l@=)J61v zkYpTFQ|JI)7si2_3!pc7Ggw%vx`?zgufn?K;yC~ayoqJ#@>&>Yy;z29^8WTV5iKkf zLyLHjL!2aKlXv3DB7%75hhR6eUp-Cg3lcebKkd!GEbuLD{Ka(U?a+;}4lH632 zq?9?q5ReFl&&Ies3 zQ6z#wlCpMPgNH-VlGFt%Nf~LpiJ{eVUjK7H8j+cuR&XYXmkumd{|m{@n}0~wFg0mz zVH~J60Bvv349zSoRRa zb`kxHNN(Qz423=-@fOB`Y6WO}i|z7{H~LW*k@g>OCK;})4G%1#T`17j<$nEC2vN>r ziceJ+;VkwNkE}-jWhA5H{s%%|5hwZydKMNnZBjord18osuX4KnDNnUL!7*Y*{yii$ zV~Ieuvo^E!==q58IigSt;~?(>XnThSUH>`}E#!w?hzD7`_YFnT#zZ+^2UkkF2xmU! zCG}Ts@B%2la!+-UoBEq>IoXLXDfuJ!I z^eV~C%N}zkN{wbchQvBOGHzoTsg?i{vc{{7F23P{Viuv8!sc1)V(l->z_O2=-%8Q5 zK0=ARbe9{hm1zb0F3Y}3*ju!eMv!!0d2O7luWa8bm1uRI$NiV?g1(z#S*vqDZ_^|h z_ZTYTL?J7sh+WQf7MUdCREYS^YuN|K^g|=z+yYJ?LH~xJ8&FQls;wjEOka(*lRU0J zf`s!BUqS7x+7bP!ns7S4##R*c01m}dR!umU@c7)**z(-o?EVN6&KyrcXW7}}UUaif z+!Ynx+`$K8zcy*ki(C5c*Ls?n+pB*TuHKwWlZRgE>5*r4o0jb_Y--$FxH`O7KXY4X zFs{_<@cz}I>=(D_r+i5Vrf_vAv#{wo9fb-0RCva-g-zS|0J57?%LaEAizs|{7amW} zNHZLKnt3=1+yxq@%h|)*R^4P5`1}9F5x%vs=`H84I@)$Gh|aA@w0%Fuwgkzo;eE7B zcg~vC;eCY_s0?Po>o{pQy`Y!k2aJS=C}AoRE5iE%!rUp$r;vHVmLYexuWWDpHJ--q z7>XhwiXaOj=8VbT$Km~>)?l><= z9M8jV8Pd{j8b3BVL{B{A9=BnC>?ETDqolbJKNR;&f<4?eU5(-6VqF_!jp^|JW{C&i z7h)CiXu`OClZb_@58D2Iy7}}&xBOVIN8jXJw`{+IGcvrAV0(HTk6F~bs=${YV(g!w zLnTN-3w94#Bf@^q_FWO)j~M~2eqMNQ?%C<^LjHPI3iw=ZHe6FsK|=2lZi_wE(`bLJ*s8<)lF}L zC)^n`Q7_3agnQ7aECD5P^;st7vRcP7=>htGqo>5j!KPU{1U9`<~d`5t|Hb-z(gN z_x~6Mc+}$FPu=Yu%MxpDzN}}xn%E#(*6FOohN`e>3%dF)XDQ-EO&!whYXlDm|MlXg z_w*}eD>|}eUqj)&$9)q=BgV?Vq|;H@Ugrbd0cE6Om#~!0s2z7v?qCM=iiNv4d@+Xg zpzL(Uyg+IH-2v@q6YkTkO)3$$HkmDWYm+;4jZ)d<-G5qPd!5%LzSYkrrp0|{MLS|K zHoK2o1IKm0vrnG#-|Bpcl8N{wwQ9yx&%`=Vv1Qtk%7M8bnPPpa*L2vgiS~gGl=(k6 z(du@g9-Wx*w`0QJhAy?u*(H6P-D|t^87i#XrPKM?m{s>xX%{$DumU$byPT)^Oggu) zD>`yhbl?s;TQVB=c!>m>>lH*2NXXtJ@Z^+ZjVZ4gHY`cn{0|FLp6#Ys&&L~HMw_PjP z&MZRtjpVqpT`Sq{yhf!HJ4LTHZQSdugt+AP^ltrZ=ki2uGub6<99)}+4&=~dFWyJs z*BI|(=QAu_PtU()e8QH-38;+YJnf>CK!%;9riuo3lA`x=OMBxXFNEI?bZ4&V4y-{8 zH$lR0CpJbe4ZBaZZq$CK93oci4XkXB4tOE_zUn?!?~Y`=)BEKX=}!>*eqasczVAJc zB)L_$LaKMQ#l6GIbev3Wy6Qs^w-rnmysco;EbL{)cjTF8Eovv@u;N5mahEd~J=+T2 ziQcVk?Kq!Gd}}d24}ifp%bMVz4T(bbIv;P2^=z{S$M=vcmhDy1VO;$=Dp%`{VRn=W zoBcyR~B(T64%E?1~Ym7MBXfb8k zp^I_VsmB#Y8y#@NbQzhNuI$uftJ7K5h5^scAD_&1uSWB(n$AhWaX!`)GiK?f!=0y} zHpMnC&2}D(C*TEQs=5H;q&!eL(w)%;G33cvJ64s9ByDSG6lcWPh~^Z)wPWh)s%@C4 zFb{B1fb@?kz3Iw!`3ykSwr&i0PtM`a*3_J+#}7Y`$wR%`otx3#Np-h{M{U(sv=65- zk)zXz0NFhj$!$=0I~3jyg`qSQcC!^|b+&26w|Ac`9JUFDQw=+vdCIb!AATkZQx1yX z=4^*tGf`#foin=7d1%qtVAg0l9tp=J=x$~XIGAG+4^QS$nVh#eQFbIcFW==5w4MxK z;yGwfrq`5)itcshKNTAd|2rem>ufY(Xx_vMa*WPEjgzN94vYnS0$)xo9QVk)pAF1D zVcYR4ib^#yCy~iDGXDx2xO%6V4`gU$I<=yltBB`+-H#&Hk;zrWauku&pPC>#b${YW zKKNrdy|anWs%-1)H~oLn)(PkSer$?gM?KC9j`Ig z5_)nj>FsHA62i&k61V`;5jJ7M-K2f4`SQdyCd(De+Ew%t&cx`-?M~!Zn7<|>+Xl>E zt(d=BF@J4fJ|Rz*Y*%j3^UVe)8)|`w&W*{Z0iC`3G;>D7(;B#qa4NPBx#fE3sg+pK zQ6iqZ^W>B4X}yba9zf~nelhU@h)?NveTKml>yEu=il*sU_*^bpYs_9rlZLP+uy2U5 z_hH_yRrK32(czp**5NQrmT2z%e8QM(Q_S38g1PrTVa&Y_=H38v!_-%FK9Gt?hL$)(w!#-e}k@&_;JnHWl@zgfLYl-Mgp8{de)!i$M`0U4_ zjj`asXK&p5l(651K?7Sl@F%y19iqTuZs{cMO7tcN6ChmKdg*j#!*_=W(aV7xiGwGL zatfPDG6hO3B2e<6zmqerYyp(z_(`;$J)6%Ll^_-eFJc>RBwoREEoC(?$~MSs zr_CUTJgN5zddskDb;&5QGy%BWsO^|uIx(waZNu>fZBMzsp$I6ao$pTBH6(Dt-gj|N zqq$(2?M@?Z`?$QVTv!`TiN=;5K#Op;z?lYKQdZ8ux0pNmOyi%JGQH0<-v6_d7dz7k zqCC_ke$ds&8kD%iiwY}6pnJ{HOMH|n_%HDhtw(GPK3@!OmiS+xUG);5%k?G~HuYcP zUwKq)(94r>+8&c?#>Afh@hKOY|96)7YdAMIB`on`?xWrmO41S^#1>7=z0Pxq-}{Ex zBeulj*j#40AYOZ;uX_$={XeMEHWRiZOhnj^l%uSYtiC9OG zeBvp+P?i%EUy{}JhSqbN^AkR2P5tlUBKZ{&GadTqL$htpwGw|`@ZXU*7Yx)%+DF&# zrxM4C@ClcL8@b#y@o25M=|iUyBcpo}H7Q=54FH1<7hyRpSRP2rPuKVYWN~idR)R*^ z1}p1T2ssyIlBHN1Cnlo1(~6jwu9u_Yrca$icz!5m^QbxH&~xKC^`t8&eLc2AfQ8MI zANHw_Zj4ZH!(EWY2M-cqk+}QkF(hk4WVUm&L7K&9zg~Ry>cwY27awrON=jHFcx#QT zzrE4zeZrvceB(wLCfJ3YXl-#PI-Lu+LVm#;Wi`mFwMtxnwfEBL40{XG&FOR|;`Su< zfOKfzBU-w{bUXH90HJ2AAy&@YrI)kE>~)q)Ja+G8snkNA`ZH6{f5S+6mh5y+;SiIl z5swGZY+vZ{fJ7rvF^nyYWP8`@#@I;M?yT5ljnwHZL7e`h&t0o5&LaK0Yc*9S9BsJ* ziN`F*jU2i&pO^ffvs~AK{|(D=N=0w5t`X+=Ct^Kfm-ADZTlBr@ADG_ZvYhqaSV`~h zHJbB@xwUta#A8NE=w5M;33DN4_@-H#&=8n3#Q_Jzbc@a9%BQu5PedjjLD;XE%>3N6 z)fp>O6*CGwQ|RKw<5;8_zTp`UNfR4}*+xJpv$%OKW))1LFYhEnf$1Xma48|WhiJKn zx7|4vk8+Bz;~}i;H(Y}fjz@(0`Hz_;enj$?6uoTQQ-|T+UmJ4iZ&TSN2lGd#lOf(X z&-cYmb!6JT>{SZdB6^Gy^)T76js;j)c5&(2fn^nPzz($B(}4M~+@8Xnh@3WX`aZ{>nb2jHBVyk~7+k%8cB_YiK3H_D+ZE;i8hVEl|+ZpxRq;DwS zbZ7S&u;@CBP1o@kG#bV+r}II>b5*CE9_KbhapN!y1tG8T9_L-GAUaC`xb48LbN(ba<_C_i6JeZJ{ngw- zZ5;H%Ei`GM`!Kl`D+%0<6}ak_C`ijUOWBQO-Cx7|19O4FN39nCtiFZUrtr$b)dqbF z=PkpJQ!bWt6vxyY2&SZiJ()S4irK@4ew@r;`rsVc>n(y|?6#O&`Z%Kr%fuEx_Lzif_i;vZ zC;FjY$vU0=e_%XzMspS`%9E7Sz>{!BQ~jrSwkC!oZ{~66E>|(An znziftKBJlXL#hO^eCAu9rDQrMik@Mdzho2F1YlQiv{U>BGu%SS@4B}%qE~sjy`2VG zs4)BDJY^);v|qhMWs}cSE}5*CW=1J zQ-)|gVh0`{+)p#w^Axm!K2I6R6?G(R=zpHF;s;^_Omgu%GfpkVx%`1YAZ;AP?AR(G z&$zqpgZyuwr?}P`w(B-b%bn1AyM5H@HZ*B$m4SbFuh>XG=5#*2Y;K^rusn){_$a%a zAZowzjmFcui_s5aPXv*v`#v#2?Bwisv=i>S+h?CpK!GWs>22p2ER--a`W6nHPv&YQ zd~C~3XXo!gG%qL(x#g?qTx*j1OviH6=^oT+4eGQCa_%t;I-v0=w{blZf-K%xQOG3Y z1{t?H8@ojbW}wHJD|GEqu0qAvIe+A>h?s!cMu2#f>%g$axtsGv%%iO1s3*EvrV&0B zw$3^1V?nNS&V3sm<=@4lG%L!i>ihQ z`49SB`alEf!@HDM>*Ypv%)7kDsiPsK<<>aezo!sg$GCU-)jcA|(N(7l4^zUsyq7hX z-5knwPB(I33gca_alS9|3XlV{v3Qq<$7CVPzTZ+XXTZ40amaEeE2u4+6(g%u+i@cX z%0u$EMZ_$KWliaBG72T=Zo*IOwO+*hPBb|D&Lvo8#n?@=V0UfZcfLoJAb1j0c6pyS zzNHBwmEPwtlez0Uzxc1y`V=YT(=J>2JjAO0Cu zy7C?oy2&+5ZgL96bn$b*4M=mAoYdDjU>aXb=L|n*tBAxP#7^Ny+mMK#18$L#4yIQ` ze|=8&cZs9#_?!b?Mj6sYx4F*&zlGTj#s$uM1B4t&??A@Hu#0YUxl)%lej)2?3C*0s_&P$Jt7?X z5i4qs2oHmDa=V%_2&!dS^8tWK2TePZ}iPjT+k!$;qzG#a~4 z^MDAR#B)U5v$?im^v4c59H+fSggUZs3d$7CXY??Fr+qh00Rqp}$vT9N|9J=2ILfp{alb)oBooT|!S=c#}_JDew&O9tJ|5L|x*$HidJD{=@ zvRC3;4T#$_%>`zOJg7sbb7P}>uahHjuR|w0$5I(gk$j$viI$tAC_uC9;yG9kt1ZhEY$oSmFdsaX3t3z3wc{x1mFKh^ zRNr_i>zwb1JPLA*r}E2~EM(!+|9bvLamLK>RJL~lt*wYb%b5XWmEfr)4Kl;WWnhC5 zF$?*ur@|uueQxh&Pz?;&+IQH`W=HxuRo{I3{Md;+miOc|!IK{oA--GE(AkzobMOHtv^v zf|)IT7v$zWYq;z+ErX_w%W*Wbl#|iwCj{^eGrX5+khsMtWUZQKwWEh({|i6+pZ_8P zlv+@_3*eS5VE!ig{0u(FvPh);K#*j+hyt1Xt zvVT(V@BC|buD^Fz*iePBCB|H<%r?Mh-DYAj*b{vy!wU_xJlGeu*Lk{K6|GD+`;yoY*n~o ze^2z7->66D;;#WtMITwwor%8_xH_GL#*dLz{(>Lodj5e)d?gJW9hp~dakkvi(*t)f zfWN8AFew_Xub$T!t;((~Us!eSA^0QZ;hL(2RkhKEbF)>p1o9nv=+x?lMK$HuX4hSn zU0+pG9<8pc9i1YmnTAmd&sK*f6^B9=S5-vo>d!qlGCfjV+faqSqg>v&R9!x4=9I!o zGe_p-o}n5RlrQ{B-4az_K3_E~s;iw}rIysy0Z~y?7hMoz9ShdVy1Iqxy1Iq)s;d^3 z*Q)xe#Z|TCwNX`#zn5EHU$J0ubxoCGRn@fmYt>}@3E`@GRa^x<)fIKsmGi3V=c}R_ zW#Nm$GgUdt89P>;t(eimURe2hWRbQ>Y3U#Zjt(vDM)gZIFsJ?1mWnJ}kDnDQ4 z<>J4|F;11k*2krvmy3_?y$d_$-`>+xjQC!3j~aaCWi*=OcEHJi8K)|>{;8gxji5gX zxC5{Qa3A1Kz+ssX@SC2Ve87_d%K%>hj1vEJPtRJwGXXaORs!w-Tm!fd@P5Ey_#orM zfcb#i0LuXP07d}^ZAN~;V*xh;mI3YnoCmlMa1r1z{B_S80rLTG2P^}84loM118^R1277>A8;+;m!3g>z*7Nt0OkYk1Dp&v z3|~Yo1I!0p1Xu>R7BC9a}?gZQi_yOQBeCal$9r*#r0+s>J0*nGy z0Imi6KHx^cCjoZ=wgc`1>;xQ!ul{}nm=Aae)|oQE5MUH=F5p_gTELBfO96KPt^wQ! z_!GckLm(G0AFu&gzmX@L6xZvY%NRH^#_^8p_LECU>f#Xkx-7H}=#M8J)JWq>;X zzYVw#@FBoq`0!yHU_Ri>fMtN607d~7oTIgX#{zBy90|Asun=$`;BA1z@M-pTzR6JQ43$L<6i1$a4J@iM^0fKk8=fNKFi0o(|<;E$*uVC8n?!1sn+vdL!U&z#V`&ufxuOwSdFEjCx?BIT7$-z)HYH zZ=$|{4&X+>7yb-=0Y3md066?D=!-8LUIaK1F!VO^0nP_p33w;qdcgc$&=+vjJ17tE zZopyq7G>bC&=+tNU>V@`fHwgC2Jk+>({{s7fR_Qj3HStHMz&J_02~20_g(zKSiseQ zm4L4U-VS)|d$1GWgAVEmnAL@H0doO|ourid8}tQSjKiimfZG6X0LHy;P#j{#f?m=CxHunh1Wz$oC!a7EVwcKiqS0UUb( z_5ob~8T#F+n709^0^aaB__5w$$Vv!YH&X?cW(AHLG%#~b0ObRV=2yE`_VjE=S`E&c zHhB2OLk?S#xm;a%?0IL78-ZGAo~evLKTLmcbOvYLnl^Rt@S?$zqzs0@btT18!oc*_ z!6B8NZptB@Wvw|cq%eKqFV-W7j46lHnXTW}YKtI!mJ_7Wk&-c$i74#C& z&+^G%3HlA7``KqD=(qJjUk~~{po^|3BhmgHpl<}7-7mv~z8myT&`o1pu(?^Mt;FZAy}m7tFW-B12X&}V?|Cx1QY*YzR41N8NM$lncmJLsqQ z)Gq^_W;f`5{bK~^=^_92oeKKUKIoO8XZJy033?9be(kd!^bqKN_UizB4(NXM+YS2i zKFZGs!oTaI{1Kq910C+W=lGfm`p-az`{GHj1pT=_=qo{gtq=No(D#C#<0HQV^b;oa zQGd`Uf$ldxGcb`~3VMN${1Kpk3v{?Sp7omw`h%eR*{2fphe7wV&q~lc`k=1|{f$1# z?*RQDp!<%0&__)UscawpGqBDUgYIXa5ujfIx?laKf?f%_U;QdUzo8HMO3?4>qx|)t zKiCJo1N2tV{n}?Y=)VQsZ+*?czIY$#e)Ssx`sbkg)o&{3M^EuzA1XmF0o^bEO3)Yd zL0=F0O`!X=PY3AV2A#eVhI-QaxEu5bLHC>AGO(|It`GSmK;Pa+{;8nv1%0wl`IVrL zo$B8|SAxC(^lYE}>p@=yy5IcR0s6h5U*VH~H|T!{-EV!#K*OI9?xX!d9|^i&`%MKs z1iGJpRSEiaedJ#W`kj5y*Mt5u(EZxC1N1h~{n~do=x>4U*MBk&gZ~G*-}o5;`haQv z`KN+D40ONpD?!f(-LHSF1bs2+e)HFQ&>sffuYYua{u1bZ{bM)iZ-EXoc#e+@oC`Ui z`?c=~(A7o$?K>6pb3ymZUkUomKIkh!zZ&$Dee_!o`t6|mwOQV{SDABP1NtA6&bgu1BpQ2q!@f>7KT&^@eKT8e!B5PYe2smbiZ+W zJLnytpOu&&Y3lJX=pTWeN)MjbT~Oq&2hZ_t1U=iM9M)qP41GW7lYHp;puY|JDL(Wv z(9RCg^Vt390iF=}5Dl2S7h2 zE2MC|)w{h6{dk-=j=ChIMkmrCpL$LN{R+^J2q6EQhhQ-7t+6jo(6bVJHN_!*c0Z{c z%2^5eD$tjb9`%>=F!zt)^`u+UjhAemV;kRUqq?LAe;!?2>SJi z_o64%Cm($O0^encd`PpLGSDxc;orVd&>KO&G%>%c9O`o)_&UIMV;_7huLFFOFZCba zyFs4^dS0R&q?tbh6X#mci#+JmV+81Lf!;{^@`pUznS90ID=P`9|B&x?f4(UAN-hhj zR`UJGn~!?k2R=2^e_nkW^e=&)Lpk`l+mrd<1U(G8-#9%0`U24X#`*C$@cC&U`6q(@ z66k*O>KxGbfS%{0-wmLjQ0hHT(4O~!z7%w^`zCKYk*@=MAA)Zl%jxjuqdoS3ucXZ1 zo`Z0{J|A>HdyWFV1#~}q7K6SCbU%C4fZhqZpFM5|{m@zd_IMcdO3=j~JN)a(`vtFq z&ucxVy?7ttW6|J_IUWn@A20WwFKEw+pnnRw*E~-89MDhtN=S`iIrzEzC-t}i z^b*kjMfw4MJ=TM-Xtuu|9iT4)-A|9*px+1j(<}$Sm>y={%s5J^*;RwimpR^itS9dWJ^pq7cB%pW zHPHRq>2}aFBL4m5VbI5cF8yVxzaBflH)^iG9=tzQ3c8mbv>)$V-3a=FwBK6qa>&Q~ zTG{0xwV&%h(y?~CWW|8ngUuP=MvF-MgKv06NL@{NZa&0GUkUm*LBGa_z8>@sK=;#^ z_s@n`_Pw66oIT*1557=hIc6LT8jkz3p!?~;`*BB9`Rh>(`uU(&Cdzm9JLST`wQrPdhotq@m2nM>;QcU=zaMY)Z+m7UI3q$9wR_M{uu20=7-d`($H?L-u-}b zrh@O=)ge`jcm{s4et;uEwxd(iW>~B3TzCwMU zgZDG%)%g2mywAB2^bpIz&#fo*;Qh~ipnsqABRBZYL;2uav(U^#*)G0>d1wy!Cf0`3 zBFY=<;&b%}sXzE02H#ThP4?$|7MH6M|0ANb}j38}{r&)DHDk9r-COV-kmnnphSV)97CZz3+2 zgYGv@=Yak!=w5cF9yfr#2lPu3?WKUmIsT+X}Jqu-i&s{`~KK%bc?2WjTtjmsar z@`FY_GQO0KXmhCSotXBkk4!R}BuW82Ih<=8W5eF-|N@FI1!iJuuPQj2u_$g_ek2UJ0DLqHWBeWUu+un+xG zaGV+yyh(inY(KX$T=@ol34i5rB#2ig%1l2dFyxZp%=B*s#^SHMzs9^U&oZjnL)zDZ z^U}W?I3Eh`>qYAc95O1n5V~uDgYy9w23G~tPYmXWer;aA2{n+8{}fQuf|sjH zgZBp1oq^z^X;_y*SewS^4;bCe3(WDIffIuNNJm%1fW9GkM?kF#1m6#+KL>(OrK?}2 z2cHe9XETC3GSu%g7=J1lY#ykZ2L#s*Q1=dC{MLcN*D}>>1A}`8s&^&+a%S+yhpHbR z65Mo%`o$rP-+yTEdxO^AE7=U8vM=?>b4^o|K}0G=ZC4^9vS@ek!t6W zjJFM&{ZyHH;;7)q!_{j?1@Hfo+J97V_0ekO(ZRnStzJ7i_~dZ)*zn-yW7Xzkg4>T# zFCN4Alg9>|j#o{`1@AjfwH(LzH;)g#`epU%@j>T!^%sf%;mbk%q1p#d2yQ$!+?lW1@`5YIsXylh_vWdtyx_L6s%>oW`}t~Ze(=HZ z>cO*vPn@kDJ)80Gj}Lx$j{0zX@aA*Wza{?uIl-qUsHX~ozb{ZP6fpkF3Bg;>Q@5TQ zy!Tvn=edmcoE!Yl1?sQo1vi|pzBw`2GEsedV(^2B>aP=n?H8zDUl80HQd=(!zJ8&4 z|C_; zWCUg&9+KGMCcWS$ofiKKxYjhC{>SG%bx5k^={jxOaMJ*t9zY_(CPP0|C)JClyu(Zy zTPz7UYUmZPHP)eZu0WGbtuqn&KMVskkh3gC7aSTAjKvq2bf#e85Eyuffwp`+PAB!* zc1TDlu(PDC9(e3e(%&?6ll^}kjC^#iXBp!U4+(ynftMS2m4S;5yw$+F4SdMJCk=eT zz?}xZXW*v>4j8PNrg~mQq@tlQa#eM0wSrgf#sL*& zM%93yQ6D++Sbrm>-Z zOhbLem__9k*Wj&8t@gQ)hN_EO+^qhsyt6Df^C^I4ErkJ zjO6q~m}%#Qf)PD3bjiWMzkmy@4A{(fn&wSgk~tvo1Zh_X))|}?46NFT-@sPVtGWA~ zz+@H*2~?B9W*_)-Ty*lsh-Lnj$?LjsJp?~>XtfGlpO45JOsT^%-<0b+xEdo2BK7bg z5K0{ft04i#vshdf3y}*lk~(xdE`jqtCkK{xh z7#cWr@R5h54?b=%DOs4T(?+Pn4!Zy-w2FzM!)NFyS|nek4?g#>^A0OI^1?xBn9K*9 zriyTzAeE@2W7%TD(jhmPqb?kz1)e^LDugI9Cy;;~5I_+FgE1LtP&6~H2~2rdU>0zP z0+*?^Bgcs14w^U!99QC(rfB{^ z;6H;8$29=UbBPUjjxP*LGr-8E4oS14GQC{|(z9|dIO&4o5$S`o8y7GA8U}qJfPEDT z_%dZC7N9uPb1EoD-HBhCJPnYe`B$#>y(C zFb9l|%f)0=S#?#;0_`&#l4kpU`iel{*z~V|l0NkQ^tzqtLo=i4braKvUX@;Var)qi zUwdThooS~)VNp%y0{SAT&eAONEI28{G&wdJ&2la0C?wgz)MWS)k0<&)Mb+T-w(Q2* zhU)pXRh8MCMj95>)knQhBqq$lv5XZ9%IlTLA{XbqDg9kps%jVWUAg%cNi(&}-Vwa3 zSB*FI>g&s|#WH|-ST$5%SA{GtJl?Kz%a9d-T#+c{FIHK`SRn(kz+~F^y#|-Amb9B_ z9N3Jr3@V^z+2|cH)Ys$uI+mQP%;vf+mWzX=S4hrvnay>JVGO7_y|N%-5!c69N)uU* zHHeW0TB(aoy2wDTqYNRrDmBHxB#_f^?Lxe#sB#*j^%^d)F?52e`b8?Iwk}$gGih?s z=qO&L)Tz?O(y)onuWihk*H~RsIl8)115)sh& zZYVRD*rJ-K%3+sKInk=6xJoC;sjsUnkCv;Pss)j&>hU&aWI-kJ+7yIVR79$lR#YvD zM&!*)mBV*L8=!&)S66@?rIatMt^ju(1mlt;rD@6Y8o*sqw~(*0#v(a%v~n&jDWjyS zd5!bYfy?naX)L*@aUNd|jisw=ud0i&&YK4>%%(6MRoS>y!6smG8?C8>a=IK-Oj4U2 zEaEt1;8bPjpMtayQh3kDAdZ(*{9>lH7=lwY_YgLJSy~7wockL@wxr@0yFaoR-otn2 zkEVr$6gBznzC)0>B<7z8oIC&RX(3>6R%`N)kW~DVn4hDFOTE>g;$yCY<|1XTb{1@xH>XWM+Tc;r|@1KB8TB;^V@ykCX-(o$b7WD&2Q~e z4jfrx`3HoM!hRC#JA>Uv>XepY(A-go!{XfKsT zSZWQZld=3JseX)zJHI`LSa6f(INCBAX#1^2i}#I$wZGj&EI0YDp>S8Q_P3~CB0?6M zf6wxekoGJWpz>|U(aEIo`z-M8{MoBQ!kN8FXW%=P?vPmi??80t=i`G6a~=|)R@;Wv z$)xiC3_SDO;kN&gxx%^s5dlfT^j_p=6|MgE9Au=)Z~LFkXQ9=LyCQe_`yZPN4BlgVOh9bB=u}*PE9Y|%-1$}O zT+Q05!F~;5SDVkmfynI6zu)BFZ}M9`tpJd=u`R67O676xmPySYuKa!B& zmTS?|eew@^Tyu=I1KVUs%>PxN{F6574C4|qBqY^*pZw7$bp8_(G9)BbgHQf@p49ng z8@(+^>_5v*{>1j*Yw{nJP@qj(xZ32m@+}N*(lL$?cd+>^?rxv_>A%(-C6>{^#QZ~n zw|(EuT59t1omY2ANJ>9UXkuaC^t{fs{6r1U1PJ42?Pu3TF7saH7rd+U)msNhCu9BI zB>M#E;4VlDCGn(VwJGz&r>m$ZJ_G(>NF|1Jcz&&(_yMu=dUu|5cp=t5>y6KZzZG($ zB%Y2VEbC9XiRpNQ#QI6S@rNnv|MbQWik;W@#vdN@S9;?IE9-~!#t(@dg!aZ~DeE`% z#t&82ALxxgLfLh`H~vUv*YDo=VOWntZj{8+@y38%Z{5Unb+oeUXm9+NlwBWt^%r8k~OQ^_G+B{(gHC0(9e^Wx7= zMgo&AZ|WzL(&Y^wFZ?OVNRczb2Y;#${xl!_=}CCbCmHJFo+N?~p7Vzn|B=9_sUfk0 zaw|{QC`&E9DP&Osb8z*N!}U7g(XTENd~(0yAxQvt#S;6~Jm9HMXh;aLcvy;P0R18N z@wtMu^Xaz?zQEw^JlO&~<+LWq@zehSk#m&FG=88If(zZbfI3pmP8df|3qD!@ZNRhK z+yuM%+5au@d)f1SBZu$*Fq|(}yf1-@(+;5oJDdhQ%eD7ok23t@f%lS6vKM}m$WI=p zUjbgBegFB$Tt;GHfe-$Ak&`?>tOP#WW4z-j7mThU@|-(`)4mK(89d)_VJMO--VHH$ zz7ND;M@SkLRm$P>@C;VYc!Pf~r15x^Si)5X&+kJpoGVwHZ3BOViMzpO!_W6o8P1Zc zQe6hm_r4e^<%;i8VUeajf4n>-7^~;a2G8eJ8NM%9rG8=Xd|sNt%Ky;d`Mwx~zT)w@ z3~xQlfoHi7PSKpkolq+cp6{bF43n!;zczTjH^(qZuGr%QwH!X*%kW3JDs_^<^L-(P z|HxITa}1vEc`!7}74HWCe+2Zghxss<1U|z@J^B3yhU4Xm@9h{o-?L+|c6i6gvHNu) z;?iaK`JO35wp^9U!$yGe`CLB37`fsZMuWd$a!4??KRj&k%R?GJSg82?jKT9e3k>xC z7%m*B<@5a=hIw+udm#qT@4hgcBv+-bF?hbG!;m9a+>JGOz9+(Px?J&msloI684UCX z8IH=-pKePQ`Cp=D>ICjE1qFCc)st&kSABA+6|uXA2T2+VUNM{yA=%9K0^-E z^7$SV!xeJH9aw|scUBnAlq=354W92mGuVFhAn-@v)XDmXSwhA4!wf&44`;Cb2@U#!#CuXqy{|A(n zezxIXV(|Qq2?JJW3EO?-{LS$5y>bRS&!2#fMEU$47K63zX$H^tOc`wdpKb7b-;<$L zu6PgJ;Q3w^1N|6=rwyL(MKaj_|GvTVeNYB#{~$U%_2Kt>7*3QczNcyM{O$pRwcE7@ z&+id1OqMIYpJ?#>4ikgr=Qj^2f53c==esZr(@=5Nz5VbIld*6OkmTq4I}F#zRjJ<@ zJii0QVC84RfhIrSGi9*zz|{tyZu+_9{{!$WH!&QE2BMt1CWnM%`7bp1N`tp{D>Hb$ z=fN;WuK2#4!Sj7R27Og(3-Ckn&+aQTgo@7x8h*Za!C>z{{Tp~MJ%_@vq@Mg<3d6Z_ zg}-3%d=H#~{yIa{;6ug^$7{4|Gx(Q`-E6!6%iz};emmcuaI`L$@82<;C0C`&4W8f6 zVzA@!QQ)&Y{LJ4Ne!fS>ps#pF+~E0s7=x9c4TH13d=Htywr{b)^ZjLp9J%5Ve}m_H zLkx@Ls?^N}&-YOnrpXoW;~G4_&&6QN{iVV4yB!R+KkPR62hBWS?K5<^)|20%U^rQ> zfCm5D$sxgF;25nB z-}hqRJ6{Z^8a%)6z@V>qAI{+Uo(qG%!fpo7?{hI&J3MOeH%{01>xGKVp_1m+7 zXT4e{Yknjp++pziZUuw2e}}>IyD|*c&L0~*zemPk>-(kSwER(XHU4y=Dz(Dk`F$-0 zG@pd;7(Bo0$8fG(;fEVMzsJX5^?B3a`Ti)wzvPPVs$xK~UL7++g1OP)n+=}t$1_Zl ztA3Zr%RYREh;lxk91>2e=Me_a_Z1neKGT373a`qZ&+y?ghAS=q1U?JnG&5mbJZJd% zT`~r1pZ5)(-#1~f_AfZqdtNQ|!9NTzUyG{{2myCwf`}vX@0&Z%J86E zmAb{?M@QdXERv)WR2AFAE?rJeZ_m+2G8#!FnmX@_&$-vPYwyjt}nke_)AUu78w3r z2G94?87k$9@8O`KSucLKfC1`BSPi^ay?$u;vqK@_v+dqx@cdp7!)UqUtnp0Ue+nO; zYcLuN0NzXf2;iv?-v?%>l`Ec0GI)MxmBE&Km%;P<7Yue@O+$oo_}wZ7Yv(Zr&+i{F zSpJ_GJilYcVB5C?crQJ78Ge3mh{4u(zYqTjqqIJJZ=B&_xx$Y#c)owj@L-w%^`OD? z{b>fiL(R}*@ciB$!(_SQyAV)-_2v7-47R?D44&WRV$fHmnhpM&W&!4%uDFkytM%b` zUl`Eb5+(yrIjsqHt1$fhUKGP+a)qB@@cd2`gO#(<$PuLLvegIwwvqE(!aSUrr}gCb zO&F|y5;k~#FOlI2xhnMogWqoC*#7^h!Iv1kZI|r^&+is8So}WVz3e%7tk!4W*AogEn}6Pl&ntpEWrp9Uc{7x(bx|4)s44&UJVR%rk_#UId z^SgKqR{oC-p5G~AKy@VS0-k;s-&<#xX9|8-@X7acyNw)vAB};}t1zVHYd!h>1qQ4C zRD~HZELvtt}@!W2zK0ZRVuu;fPJK7#ok5B9Hb;DbcD1yd zqT)*@Pb!W?iXsckt83ja3Ru#m)25Y%%OYiyCKrck59TwEv+Kv!T?qYrdt~ZYXH1%2 zG)3_NV{7XxW?WJl9k2g{O;Kq>X*n+8aNbz_F`J47RTbAnYN~3(3rj9R16(nqGz!Ay z^5JckWo4|vXES^A}7TDq7IAB zjeLQ!<2vDwf)0*^IMnOe6UbU)@UMsw%(XqLaNOVDc-4a%Jesn>ks=mIi9vX*2 z7Zn#xo-%uO1TVEoE9H%gL@MeQT^m_gx40@&UQ|3UH(Ub4LG`k{NLg+Kl`PFei=ajG z@_X@)73LWeA`v{A9;sNmH1C{9q_(bpA$n>xo^LNlrz|SD1j3SABpjXrsYNVlJd9+^ znj9&eWXdXNtYwo+N2{t79fh5WLq_-cgjW@j#Z^hKo)#}BE*niwsc6V>7^R~Rm}d0s_vowWk+w7D zM@q+`Zf3SgS^Oob%3rj|4o~#I-o4ulz7m%RtvF{8-Q7i-nHZDWc=1_6X09X~#_7Fg zk^iO%^I2GOm-`~EQEBAFG`BOItMTmoUA;8SiPqg?OJez?6WUhwnl)1O8^0M!x`K?* zNs-bCV)s60;j`ye&9AQ2*72xBc`3V}ZNH>7O7~7pPSHv}3cLEZYjnk?43~OtL#DEh z&(Oy((Sv^`#us{M7;ARi>7lQ2@#4r#7^DF!!IYZvh6cRF!(m@u6mL09%VwFi=7`bk zTrgo#W5WWh&K1|tdby_eTXxrYG0Uy(MJ^L2Oo*`}!UblQtfEIiMJj7blBZvnB(Hv+ za@gx;;Y{M5LTan9G`iG}FOjYpD?D%JB{NDRUh67cCC&|{Q;bF8<6Y(hmt^aQjDrtU z30G7W2KX;9rg$%|`uSSQG?csFaOu{4ATJW{10GIQ%-*(1t#joXOkSOI#w9MzzL4eh z6eDlAiTmO;ImG7?E)sgGHH$r5nsPYr;z)%;aGLOYV#(b2VilIlr4(;2YLV& zOr0FA#pG3$msf%9O0=qse_xS{b*x|Z?onJ&wH;y%N$rd->EU&|`w%-&Nf~=Ed{*B@ z5n8|vMK^{g?`j~u7HTg+)@a#VnC6J!n*up!8x0f2My#{-VGvi>OBfV!J0#B^Uehj{ zpL)bhY-gyXhKftJBPA~n7L1M9gwZN9h`WVi^$Pc6-k2=&Mog)^@#q-R=+o-!7S6ys zmuP%3pUVJD3T_Pm-OGYx*W#cS&6EYXmd^s3pfp<3P((BLKJ^LD1a2I<368(& zuw||)UszO8774>{9;Yg1ZgQ>eaWBJFpxFwz9pczv^Ir|)O>%HM#CS(dTvU30I7s@U zzkjWFF|ysld4*pu^_%KqcrzSjYV@B~vEomtsH@dyi#(RHqs5iQYf*~ZDBitXZnd5V zbRArh5~lQc-wEgC_Hvx_QaR4hyN{NXu~^<~EJC^1xt4gJ;!$IM;M5RTkxRbMGM0L$ zz=O3&ud`D2X;H==fhFkV_O@hfcpsX?4aGf$Jw35&jC)>iPe0(~2p{Vn;Xb_a9e(_n zNw=ZQTCvvFeN%8=dy8>6NY=hs+@g8@jgCDJy4ykY61%U7IaSv6^HQewk*%wZ6E#9# zO4_H+h@1SJO8s}>?MC|GJp^52D?|roIHbL^eT;3l0A>SIeLsF)N4TRpS(Aw-1<4zQC3PGZ#F&*OXS!CtE|0)r4=~nfgktrW&YPw zl=Xs=SGKrbwsHLTR&lrI930b>dfxW)oK4YJ<73;-9^v>Nx-_b9XSzmJ(lICwJ6+w; zs~GQ6D)kK>OrgDQF~=7qegBvaEgga0D^ki_F7qYNCa$SHHd=e%NRU1E7pj);`BS|8 zUBlTNHl!#i*7aPi<=U?pOPbXvd2R3SpzJ*@&nt>+>{@Yp9|jzhi{fgNc&~G>D6X?M zv)fMEfW%F~W|g~dc8%!Q7>Z5jy>^(fqcqnRAw`>bcWS-uFgy4EQ_IygwGG6;{v=BI z=zAue;h{53OrJd=c-qcjLK_0>D z*E&ze?qbS5Tc`*}GlI*89FRnr-yxptm+{o6)S=z`S!KEoqt*nYj~Xh~c>Okz^Q)n` z#8V>o@IWt;YdNnKDe2YQ@Kh)&Nh5VBa+F2e@OT6WEIFRi&9cB`=cLkw#d6}iWpGI0 zPbi&qZFw`)oeq?h%ue%}q-s@P;3~T6al8et@YraoCHL_+-fa+l z*KhjA(VbA~kjMjW zo#Z{Sk64PnNAc#FAM)73F}L}Zj{5BuBHuTp|BwuVw+5WVWqG@XdytG3rIAg26A&^H zv~+zV17rXQXxn%AVRzkMIAZsQfp}FyG@?#HAeBncG={!+_;6z%e1uli*xzmV#tWJx z_ZEVj+v|}fz>7No(*8l5%(7qL$XE+tbAMIfDkC)IqRsUaDtFJors~u!OMye+2V^Mq z%TyO+h_gSf4DvCEL@~^sDZphGhcZyg&FQzRXfY%vn1qsCYH5y0*N^h--PWeil8Jc7 zKP@eq%3DPWTlTdh;a{V@l_?5dJ1cOqj5Q*?Z#A75h*zJHAx!!bDcZ! cmds; + cmds.push_back("CREATE TABLE animals (name VARCHAR(20), kind VARCHAR(8), years INTEGER) PRIMARY KEY (name, kind);"); + cmds.push_back("SHOW animals"); }