From 3e50fa9c4d20b743d01ebf240486b248ee8b21c7 Mon Sep 17 00:00:00 2001 From: kachelto100370 Date: Thu, 14 May 2026 16:23:33 +0200 Subject: [PATCH] =?UTF-8?q?alles=20funktioniert,=20refactoring=20noch=20m?= =?UTF-8?q?=C3=B6glich?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 6_Verkehrsmittel/Klassenplanung.md | 4 ++ 6_Verkehrsmittel/Luftfahrzeug.h | 5 ++- 6_Verkehrsmittel/PKW.h | 13 +++--- 6_Verkehrsmittel/Radfahrzeug.h | 13 +++--- 6_Verkehrsmittel/Verkehrsmittel.h | 4 +- 6_Verkehrsmittel/check.cpp | 3 +- 6_Verkehrsmittel/implementierung.cpp | 60 +++++++++++++++++++++++++++ 6_Verkehrsmittel/verkehrsmittel | Bin 0 -> 37488 bytes 8 files changed, 89 insertions(+), 13 deletions(-) create mode 100644 6_Verkehrsmittel/implementierung.cpp create mode 100755 6_Verkehrsmittel/verkehrsmittel diff --git a/6_Verkehrsmittel/Klassenplanung.md b/6_Verkehrsmittel/Klassenplanung.md index c1f4524..cf65638 100644 --- a/6_Verkehrsmittel/Klassenplanung.md +++ b/6_Verkehrsmittel/Klassenplanung.md @@ -2,10 +2,14 @@ - Verkehrsmittel - Posistion (int x, int y) - bewegen(neue Posistion) + - text() - Luftfahrzeuge - max. Flughöhe + - text() - Radfahrzeuge - Anzahl Räder + - text() - Pkw - Anzahl Türen + - text() diff --git a/6_Verkehrsmittel/Luftfahrzeug.h b/6_Verkehrsmittel/Luftfahrzeug.h index f99347b..4af94c3 100644 --- a/6_Verkehrsmittel/Luftfahrzeug.h +++ b/6_Verkehrsmittel/Luftfahrzeug.h @@ -1,8 +1,11 @@ #pragma once #include "Verkehrsmittel.h" -class Luftfahrzeug : Verkehrsmittel{ +class Luftfahrzeug : public Verkehrsmittel{ private: int maxFlughöhe; public: + Luftfahrzeug (int maxFlughöhe){ + this->maxFlughöhe = maxFlughöhe; + }; std::string text(); }; diff --git a/6_Verkehrsmittel/PKW.h b/6_Verkehrsmittel/PKW.h index 1240706..d88d209 100644 --- a/6_Verkehrsmittel/PKW.h +++ b/6_Verkehrsmittel/PKW.h @@ -1,9 +1,12 @@ #pragma once +#include "Radfahrzeug.h" #include "Verkehrsmittel.h" -class PKW{ - private: - int anzahlTüren; - public: - std::string text(); +class PKW : public Radfahrzeug { +private: + int anzahlTüren; + +public: + PKW(int raeder, int türen) : Radfahrzeug(raeder) { anzahlTüren = türen; } + std::string text(); }; diff --git a/6_Verkehrsmittel/Radfahrzeug.h b/6_Verkehrsmittel/Radfahrzeug.h index 96568cb..8931db5 100644 --- a/6_Verkehrsmittel/Radfahrzeug.h +++ b/6_Verkehrsmittel/Radfahrzeug.h @@ -1,9 +1,12 @@ #pragma once #include "Verkehrsmittel.h" -class Radfahrzeug : Verkehrsmittel{ - private: - int anzahlRäder; - public: - std::string text(); +class Radfahrzeug : public Verkehrsmittel { +private: + int anzahlRäder; + +public: + Radfahrzeug(int räder) { this->anzahlRäder = räder; } + std::string text(); + int getRäder(); }; diff --git a/6_Verkehrsmittel/Verkehrsmittel.h b/6_Verkehrsmittel/Verkehrsmittel.h index 1223a79..e4042d5 100644 --- a/6_Verkehrsmittel/Verkehrsmittel.h +++ b/6_Verkehrsmittel/Verkehrsmittel.h @@ -1,6 +1,6 @@ #pragma once - #include + class Verkehrsmittel{ private: int posX = 0; @@ -9,4 +9,6 @@ class Verkehrsmittel{ public: void bewege(int x, int y); virtual std::string text(); + int getX(); + int getY(); }; diff --git a/6_Verkehrsmittel/check.cpp b/6_Verkehrsmittel/check.cpp index cdd37ed..6eb025d 100644 --- a/6_Verkehrsmittel/check.cpp +++ b/6_Verkehrsmittel/check.cpp @@ -1,9 +1,10 @@ #include +#include #include "Verkehrsmittel.h" #include "Luftfahrzeug.h" #include "Radfahrzeug.h" #include "PKW.h" - +using namespace std; int main() { //Verkehrsmittel diff --git a/6_Verkehrsmittel/implementierung.cpp b/6_Verkehrsmittel/implementierung.cpp new file mode 100644 index 0000000..c085c81 --- /dev/null +++ b/6_Verkehrsmittel/implementierung.cpp @@ -0,0 +1,60 @@ +#include "Luftfahrzeug.h" +#include "PKW.h" +#include "Radfahrzeug.h" +#include "Verkehrsmittel.h" +#include +#include +// Verkehrsmittel - Position x: 0; Position y: 0 +int Verkehrsmittel::getX() { return posX; } +int Verkehrsmittel::getY() { return posY; } +int Radfahrzeug::getRäder() { return anzahlRäder; } + +void Verkehrsmittel::bewege(int x, int y) { + this->posX = x; + this->posY = y; +} + +std::string Verkehrsmittel::text() { + std::string Xstring = std::to_string(getX()); + std::string Ystring = std::to_string(getY()); + std::string Fahrzeug = "Verkehrsmittel"; + std::stringstream output; + output << Fahrzeug << " - " << "Position x: " << Xstring + << "; Position y: " << Ystring; + return output.str(); +} + +std::string Luftfahrzeug::text() { + std::string Xstring = std::to_string(getX()); + std::string Ystring = std::to_string(getY()); + std::string FlughöheString = std::to_string(maxFlughöhe); + std::string Fahrzeug = "Luftfahrzeug"; + std::stringstream output; + output << Fahrzeug << " - " << "Position x: " << Xstring + << "; Position y: " << Ystring << "; max. Höhe: " << FlughöheString; + return output.str(); +} + +std::string Radfahrzeug::text() { + std::string Xstring = std::to_string(getX()); + std::string Ystring = std::to_string(getY()); + std::string RäderString = std::to_string(anzahlRäder); + std::string Fahrzeug = "Radfahrzeug"; + std::stringstream output; + output << Fahrzeug << " - " << "Position x: " << Xstring + << "; Position y: " << Ystring << "; Anzahl Räder: " << RäderString; + return output.str(); +} + +std::string PKW::text() { + std::string Xstring = std::to_string(getX()); + std::string Ystring = std::to_string(getY()); + std::string Räderstring = std::to_string(getRäder()); + std::string TürenString = std::to_string(anzahlTüren); + std::string Fahrzeug = "PKW"; + std::stringstream output; + output << Fahrzeug << " - " << "Position x: " << Xstring + << "; Position y: " << Ystring << "; Anzahl Räder: " << Räderstring + << "; Anzahl Türen: " << TürenString; + return output.str(); +} diff --git a/6_Verkehrsmittel/verkehrsmittel b/6_Verkehrsmittel/verkehrsmittel new file mode 100755 index 0000000000000000000000000000000000000000..d62db59ade6b8b7fd93899dba58e25528ed67bd5 GIT binary patch literal 37488 zcmeHw3wTu3wf~+xcnKtcXna&h1OzQ{X7Y|&2a}@`b9xi-j|V&{5jGftAUlu@`kIw0a>1c)V?TCx#!|X)v#d6 za@Kfte${n5iht93{=~gMP29Y&_StVO{(H(L|8%#$GsfMPyuF4o_vY?kLZsK-`t+E? z$R$D~>l+|NW^BdZluMn6QM#IlCyqxDW_*p(RP2dfp58!d(&|JvPX{PXYMj`^(`zVA z>Ydoh)8&+=E^(rRr*EV*x#~m3NhMOX(7x&ZqP^N;`Sl zLFscSZR6=HDLtOjR-T?l=?Roh<>?D4J(1FkrzcZ7h0+6`0x@G8rKx&O9Ovl-N>8G6 zFVf^w`@2Pa!Wi)%){`Bb zI~ttKeI5M`PU$2Ls+O@&5+ZVZb;n_H!$Zm={{C+en z9KH%p?b?aagBa?N&=`8c*Pxo`9;Cv6OyxAAxId#-e?=`*QoD}3gqY>X2d`f6%Zc-y z>;Tn$*9C|@ISYTnYoO1jH-afjB#QktnirC!=>ck4UG#_a`6}{)U>j2Otp&IMH(M5#oQ)ln*{gA2XQM)=82qTUl zpKiod&4^ym!*6`78No%OoI>!USkm+Wb?h$sL*9515h4sJdW)zIPEeM-48fWuQ-vjh zp(p%DxJ0w0cZj$=Lv;|ftHmuWIfZ<>B^PLx90ff*NwpQ4AlB5w^G4{cT z0Z}TEWOY0zdj}De5fh9?lpvvULiiVqM$p)X&SnsIhoL%%+SO7djL3;H;!@3sZqUQU z|J163i$pn(3x!Ga0mx)s^oOd$iEaXYY(t8+2unCYSyBMOT6Nrmgvtp)WhgY1vrw3KTM zdiQo!7Yn`LM-E-@Ihx*`pod54diRp}0GRos>co2(uic@;aM=L&a!+^#XzoxSv3(2K zKy+<-GirFw)H!Me2eR9EH|YtVuM$65c%$>X%=zQ z+?#JXOcM)tXyc$e)HL93a}B2KXQ4xg3?PzwDCNFx$kUUGjLB=pIw(DDUpy?;0viF7<8Ol*B8mCRIXPUQK) zLo=uT2`cqHLk@5s;PWgpA(ToiJx=s$)E|$ISJAc-Oz2&Mp%Tv1Rx)0s&h5Z#j=NWu z9cnsB6w>S=SahI+CUG1gGA=(EDoHcxYsgbYd74L-C$yYbW*bEEdEO(Gca=HsK&a$m zy*w+gUsZd_+{;H?A3{aFYT8{NV(4;*UJFk_U9=8ZHgz|>N;YU-7E;<=r~{ZP&HXc& zJM@xxO(@!@(xK!QY7B}^Z<8>EJILL}+4Y|l)Jm<}%Pv|LFO(=99nEPUQ5Yv^A>s0H;Q>^Jc z(5QtfA><0s+FYlk7j)Ipok(@rnYN)bi55W|rCVR@OxE0XKi6K*F9F}%yu7&7jIFw)YX5!${SS-^@RgNnZj?x*Z`Z^XDBx$92e_wVYT zN(hK***KaCZ&6jtt)n%M7Khizn$M~>K*74*!JV_OE%kkon597g* zG2sam(b0h=w@n}ZjJ|K}M(gYeSA$J!(@r?_sGE;eq&SQqgLsLnz$bk&2uMw405Gg` zqp%QKRy#ClCkOC$cOf-Lw7b@@MQbzER-w7-HA0p)hR7D9wRkIyW^f5gqwdMODB_~G z4@4q{x`5n4RGn&RQc|09{18l<0fUjpFp7vF4t*k2GG6IKtI;(6WO*XYyVv8i>U6hl z<^WE-9o`BZg4x|duls3Eq?79ud8Z%;#gyr7@*lj`zWi-uZRu)R?1YQ4R^>|y7sx%~ z?I;Kw+LR^dJroRPcl&lei)lTSD#xi?Khn@(A@Lubs#{CAm-|@08@p zglXH%ZI$H+#m9nR)aIGLN^PL&SiVGXK}Jvb6F$jybyNI(#QRtBiI*_x5Js4e{>!7M zVs}AOf1==Op=<|)2rllY265k~xR|rOL8VJIwSG)>l`HD%sHm%MQCA#5@QX->40ZK3 ztufj*EAk;lmUVShC%2WPk?Vyk_7J|EEYj<6Gi@7nJtqBH$Cr%4<`>``a$GN0sVCg< zE;)|#qb504ugUvC)M|1UB~(p5NZEw)vZ|_xtZH(DMuyw?!^=(NgHoZJG%`HQ$+HR5 zwwXIBYP-Y=f>Gb&@96r%hhGr$cV1DGM4VStvWRz61%8CFufNJr@6V#tNF%=Xa`5&AfsQa`*pt#X$Nf}YVF{=lu+&9Udkqv zmo@1jvT6qbjSRo>igptDHK|aUMuv+y`7*-9Y6oc`81?P@i>@zfhtJ(*O^u~_e7lR+ z)F(9e#%Rd)whhpq2eH9AdWS~rGS z6V2}j`!B(qhUUna)4W7Z=5wP%G!?)7ZCInt&7uW>{|K8y0_38s&54D=VobxwrtE(o zu>rT`eX6n-!(XGBFr;ddY*3{y)bvW5>y@X%mu_)=+_Ldw795AkFoo!T|$##DeJUA!oe zYQYAKVU5x34n2`Z)4|8jrN7%#sXuqxY&N^iVasqIuw~k^Y}vLPyz{UUDYSi-;K;S* z*==^a`+(hH&#-6Ov%p~!9J!pso^8*u=i2k!2OKts-QjR#fJ3zR?QYKD$aG{mvK=|# z$aUmp*fQ+kC=oJNa*hl~Mn*z5c4R|G+Fo3~ z!`+#knVprLoek}>bF=euY&p=*wG*`6?#>)XPDV~<4)n^&&dJHi&4FIDAGEyF-I;64 zwdXo=p;2yTZdPt~E;OPi&vGnea&vR@^58i4fjk(T2gN|^1+CBBDG{VgUQQnP7-+u% z?GJ66scx`hK_@uTg1T&Lr)mlvb^E(7-Q53W_fui(Q{m)Wdn-dnXZKprY)`gr<{aJ8 z93hTHmuPoe+LoWfs7O_hU82y@l>M8Mse-p8P#Z>3*bP!tWYEd2wWktVpCIWKDPL~{ z5Q(vCza+|};?ZjcQG}AvUSf$Z0HeY-UYg|ClG=Z+$lcm)(@Mr@rPfl$bs`pTe1Iw) zBNtse&|wXnP8v=4jzkEaeU_Y$F3@_MjqMF#>Dacs7hM7je8IL`j73Od50I}rT!X7q z-s?`8%~zVh1JcBSXInfd_qRUclYX&K1dCWe=AkC}LbE5l0Dh6WtKJMz*d(D=&~^)! z$70}GM?*jeTOPEgRed>|p3AKpd$G&+B*V^8_)mX8CCTlSNBHCtHdr8x3a0hvVrdfJ zd%GRk`!A%2kSydFpJsCt^ZrPZsQZf@45MG=`a2ziqP8-IR#^H|vu<;BqCBB^8;l6y z86j5P1jzvdfNGd(TaH|&hfNr=jzeGkXtmAVe>L2H#1%n}5~?SB17AUb1sj*`E{rz( z37$@qRG|}jbCy=Y(!htvVM2*scb+Sp(n_6#yQV$LH7^TB(tx{T6|uFiq)iQ;ew}-Y zs^hpj^t!C;Rq`o8`aQ?jC)@;N;3i~?qKu8|I-vS3(c^3?l%}UDywwxF7-nid21aZE zLt*$(^P1Xapgf#XLL^adLuq3SG^nPU8rjA7HI4!fi1JOfg*ruZI!(EnM#k3C#$VQ_ zaEXY+sK?MU_1VEH*xLy`_MoNg1{WZ8KG$y22d<$8AEglOQVnzfDcTtJ#nxW$ZeL8P zPVuM|Tgwxv$A)O59O8Km?4!LWzTc#weg#zjSiyrv32GG$jn#L{8#So{~5(-^+Q{2 zcBp>%%aj3QdmIlVI)q5AHsr>su`&=xshuc?!d(L+ynn7JaBc5zdSqh>YBkcp(;Ms49o&98m`mrNvBx9MjL+O>vE1{sY3v&;DRt~5OTrb2(`Vh!lFply zFlHiaT1C8c0`YwO((t46`(MD%ir+N+rsFpQznS>aVJte>L~qBbv`qZ6@Vn_-PjAn> z@48J>AE|ialk6EyKU~d=z z+jrI%-MYV{{W~?jMf3mqkpH&(?#<6GKJMr^_I&1|fvFA8Ok1;i;ehp%lVgJoKWdqf zw`kzeM;8u^%NgDAr{Y}$=k6F^@STb${%h9bFYlcCSYN}R-k5#I$-;9|4!!iuoe|sp zi=oo6;aWImat!KhycdgwpEnHte#nT$f6*}f^Ra-8#sBX(GZ+hR8%_@1+r;888iqdy zip<(2A4`Xi%PVB{!GkzHTA)dEIbCul#KTJa_FP-G% zq&&$$Z^Q||Yr4SyP2!WF58+2i{6!M~E4=k4eEAiEzd+(2g}sDNnXGnErV0Ed;G;lClnMXMR3{}_2mi|$ov~f0 z21xw-Ww{qhe5;fbm?HRbHj#%HB>vmdKP3`h2R!+|A;~E*0=y#q`4`EbA*pmyjmlj! zS@2g%e3ImUN8(pY{LcW1zt^Pa(^3wT`2CW9K>GPw>7Oek{@hVQPR%qY$G9c_2Nr>U z^9usMM&f@9JlRDj=Z)bdS?{x@o{D;p#GA`~U6yN>f2C|E`=$vA^zwniov1IeciMC( zPm8~dJq!O#Viz$w(@!B4`cYUe>$k;Jzqd*GTc!V1Jx-SG>IJF4YFG3UBv!c>N`IRD zRweOo%ye=+7V^K0d8NHhSuQ<4c<^|tYU}GfjX`f9=)}isoj!-R>y& zHu@_-4fyM-iYm&2c6&v&H{b~dy#8QgQH86_i$AWMiu&3HZ@}j&SyU0Hi0m3)T~)B! zwHEoyf)1O<6RZx@uk#4B#}^3H2c+~k^z$tCRCs_^6 z#~Ro_oI^@M$Pm7(hx2^i+M;EiWj2qiEXPy2Xvwe&lx2F#vOLS|9+wMcRMwQNrLu~ko@>a!XoZUwC=|eH~qB7!eP)@+t=nJg%@yd)Ne;!njP1amRxyDW- zYkydu$%=|YgF*+d;w5GEHI1&4`K4v`WgcoZafpIL%TRHm57&}C%T_D_l12e8>HTKy3^^G3Xq0fU!c)%N24}1MVGAo|3F;^QlAi-1B z-0W%a1sdz?yfqj~JZo)ninV8>0ap2f!spbVL~Dp+^yY(`ztIDqdTV5xI^#zG`o6JN z?5LHcF)C%G4;1R)G+>Lz0fyS4BWzxlfN!Z<80OZ7MIE z`EZ)UJ7vRq2!TOyYDD8y1s*^_pR1Jj>^OQ{p?H|Yk<*@m;v3OQhZ!nI>egWz`0S~UXxqvZN{Ls!8fGGoYBB@7QW?AL4RXIeWTE!ESOnQ-xQ2B)YMmDI(l}KK~o>4kxD*4me;NG*HwB-eT_}EJ`C1) z-uW;qUhVbQFgzd7hJnO0fhNQ>U9R=|>sYO?wxYIygNF4C)W%?C#Z_0)R!ue~YqeNa z1u{~~PWTFeUr84MIL*4 zMtWWp&0&vDW*b&% z8SoPn60q8US8Hz~HyH5rj$Vak z1D@K83M~fwWeN$n#ekn|z+2E}jA4Z@aI3F6&{*pa27NWwIo6W;Mt{&>UuSL3x7x1J zlk1UW{<@%*2Af&4Sw*$4;@0$vh6W*RZIqn!pszVNYj(Pv%Fmj1M#W593F8`-C`|1&Bf zrXS{*y9q~(#23_*M&^%r%Q!Qi#9a#Ph<<)Cv=wH2LbK>T5j9+bW*iQUT?-_WBdH{;UEsY4eC zs7SpMf8hLR{Gi0|of?g|E*0rf=L*;%-*X(5{7PO1*@vL$VM$l{?RLY+W8h1b@-;q( z@ri`Fuq@9e`Rtjd8iOp$MTyr~G3_cq{NjC)NG0OMk4GZc0^R{w0_fNuiEPD$xUCBi z>7N2V3Rw4KB=S7qPQZ5n{{lE3e3x`bB3}e71uO>qCg486R{&oD90WWGcK0j zMNqJ8C}o!BRLe!nMj{R)y;jfvJn?{DWTYn)YWd#*{#DTV1Vxo!uji+)7X0Nj z^e=+`Dd^W4<*(E86WX$&q?mhhbRxZaPE`IRKhf{Idn1t>U~p2&jZV$Rg zfhe+b8_IbZ<;+K1<4KsS*|87wLC{H_M)wFktU!?;Pl0{~VA3B9<&^8X4njr*JXe87 zld)Qt(F^prCvYs6WV~gNk*{~_q}FfP+4yR^ExQP2Ohq{s3T<$n`&8}iRK=C9QACneznZWsrNSCju0ojx7( zUw}T>NWVj;7lPgg`a&Z;!NnP@z+H^;6MArm3-P2A#I-*6iG7z}7NpwBRtze?CR9k}DLf!f-m=r>948f>ig!}F~K-+nv;{Uq;t6W`4VTDdLY z+k-k-109lXGVoDSuxmWm-l$sz6A6FBmGXDeiZZo=u3?B1o^N4E)ub9wX8tHTr>H15|cq_n#w*H{~87pC}jMd7f9|&VBfSPznj2zTl~LCVBaQXz?If+NxnakJz`1z zWgYe_<;vE;GyGj3-c7D+(&=W{$H z`S*nrT39#XFzoSw_ZK{ksV5J3-w{P8-cwW|KWE^9hGZw_c1m~# zS^vLcRqcr0QBhE7k10*>$c%J)Cq`ks0PNaCCy%Lj8z-+2=?f%XeFvS7%fMlH;6a@y zO_S?q8ha=x`aeF6)Kl7Oa}r?G4=7Y;J2}K~%fl?Ylf!W$$xccAB;aSvi8NKx6`;OA zAzbg|kRHPn_DDyl^%#b19_YL}1#6*`Lxta6Aks?jW=^Fydm^Ms_-RDg(>Kq_F}RP% z?NfRT$aJNobEf~rKiYTaO=Yf?^?Q$m4@kI6!u=8+k?>Us|19AL5{^o8a>?gOI8(xG z3Fk|=Lc-M&u9ff}2}uZERp(o0VN{!KwP&T{Rkal#d&sug9U0bHrM^n5+Z&XGIXSc0 z+!gtm4R!}UZBV)*KhRWHhZCe$yaG4pW%E|#d+X}z%l&mR$qT-cZ)?t}%(i7^JFMyH zS2wP2tn@WBUX2?OSL1Bj9PEJk(kob5Nqz<^E6BIAg8BKmr(v95oNqe~dBI$WC@IR% zWM!^=ym>3bpC}dREEvk;rN}rJDdSPRI3^JESIi0caHK)#XtSDdT#gCH<(Y8sKecsw zw$PxlVD5BFhS#qB{~-3udWyyKUy`O^EFLwUl*)D!i${$yr{q`@i>FtXMIVKy5Q|62 zQ7~Q}rR!HtqqEZ0GE3;gm5T8PE@esV{fL=Fx>?v1X8!*!(7WAO{B);=&OInUD0wuu zBs?=czi2Oq@aE^58+Z%OmG|D}L`;89EaUO1OpV{1h(EXEM{?A2QsKXjhy}Y`>Up5> zyAX+`|DIv+PY;9tZ{RIxmBm;RnnNu4Z*Zm*Rw(yvRi3{hV!`bs^LY3n$6ug5FBJa- zRM<3F@a9A(M-@rJ42d`27x7E{mWu^HpNAvQc8Py+g1}!cr+THZ4fxC0M5gw)dA|n!5#UqVg=|}cli0L?*)y{O-(kY< z0skb(>2*0dFU>zGJPACtQFC|`c+#^x#mPy0FAy>MU^3~W_U+a4^Bg=ViQjzBrV;p9 z^69=sEIfTMn&g=8+58rGDp$QXQ1cDU+&O>C6rtyAt}T2611Cd{8eeEHk-}7t$9gf* z$@m#pEw@(isbta+6SSK424PmmL*P}R(?wZ zep13j)+g(Q6Y*yT@TC8LNW1uc4)9LkNzV_gPR^?AeM-u&Hp&0Bl=Ff~4()G{oI9oq zIahLN*k>3e@aB6VKau!y$*<;z(?`dy$1ed-^3C^bT7i#spK0GPauQK*vD(QO37?S6 z)U!dV&m6#0xtB~5c3mb3Hx46bo#d}b75rC8{`O(`>0QL+gd{BX1V7x!!$~Q}?4Mdp zG)bRbR|tN-?naL75^ugQ^_s++?_EtD7uye408jGG?SbB55dHz#Zm$(;vd1Ofd|&OK z!^p42z(sP>q<^L>ITF8Qnv-L&y61uB_tb9H`$5{bqj1r9A%|V=5W#D7UUp)-I6?p2u>V0F1)bjx;-|U~?Nxb>~ z)+}s3lRwS(|8AA|ms5m)=1ck8B>pP-JW}hhUr4<9zS{f1PfkeC)_qb8!xjw2nG4yD z1|eVJ6JZGHW4;$yB=P3)|Em&jzIXUt;A7oy+Xp<=uX>M6`?D0D1)jzMb)IphK(kM! z{FkM@A&E~zJ0U&yUgqSOha~>15`U9?o^Fx&%@S{J|Mvk;&rS35@q55i{i^raYJA?y z`7dI9a(*SnvtLO0Gi1N!`*9$S!$3`Xn&%tSB!0;yPA-D)D!~I2pW$f3$lix~~ zI5|rB?HKU*Z%7z3Md)L`ce_yH%cVaHWX}76Cpq+z&=`I$`Aeq=ywbB@;?4IXGq7P0 ztNpA8p4#U@DF<%kVH@ydmpX@l?!&__$$wn(&ye`1IbJ3V;0-B9oj*|W2Y@Gi%=dJ! z!A1z-t+JipD`oALc=J4@OX6#$IXS0W@}F~_kYgVAZjkuB69vCR@^1j1{GiTnsB!z- zz*{Ac5j+As`Dc%*-uFuU4imlyc(QAO?ALRpuoDt*o`-m_p+o%Ud&8_E5VWV))1muv zKff6WM7giZUk4+-s7ta2G+CH0dK9(Q`uBoyB=8#DSquMid8>+>!)IBA;9m$ z-bNKakPD4**^(PEzjW?mm&diFkgn8vuw~+Lxjh2uE-Yo9!W)*%U0hVaJPV4K&YN58 zSvr4ynF}{W=gup3@r!Kc^DOdWQao2G%-2MW7X5?5|wUxjq?YaQa!2HnevI_?CG{Xn9Ss6$Zk-QYa)tGD7t zi_j1kPw0w?xXTiSic6azm(G@z@q=JoSgdNd+bVth@+jR?LmOoLY7KcczWd8&zsGS= zEY{66d(A3Yh^9$y#CE1<@O}KWh-IhM%o2^5yVaDU?vrrxF ztOOqhKwB_eNIUyZ8rP+7r+)2>nxmm#ozbmFdI%UhN4g`M_oU%&`Wbl{e}q%%xE5Gd z*Cakw5&c;ThwnE2kfK}R<{NvO=WxG{dT$1raZxSU@udO>{dYEo(eulwY&ve^c`9qr z%ji~P&__21@k+qc;HT~!<-n2Ng+1euUh4yR;E0Aq<;EI@bG0$Jwqy}qgpTXNd-TQF zI4+Z_tEluiYFMw;7p_Le=d#aen3K1l=}AV9ZW{ZI9blyO_rL!sks%E-F1@2>N%7Cq zV%`*vdQc2`D#qdE=+Ao?+u#|EQ{uA_L;Y74jN_98MlonR_{e|>6NjCq%gn})VeqfV z7{+T{6Q%}h{91^q{AFe4*~e$lP}EmS&iJ|e8Ghly{C%R~9~|m4MA{c5%pW|;#xvMo zRp%Z%_62d5-=2xj3DkRN#(DRP5I6my23BcNlYcA(>uB8c? z<35A$KIsoGbI&#o5|{~XzcqXFtMI{v##pO1a%Wi9^$K`C=n5xH+fJRe} zZzN%k7og8@EL$O0y;vd+^HCvVhoY}K#MPiq^DU|o)@{tsqQv-E(U49%jC-&@Wb?%E z5U^xo9IY?rw860a7@?sBj-f+?xx3Mt`UbHaFN+#WNp&-GcDZkzugb?qjHvI2IMtUu z&<@JXx#D%gXZ9VOIH$zi15x9k+{B8fH%CnWEWL4kZO~f| z7z_wltz!HH9v0&1HvEO!DozEF4k(lB>#g-ypn!U4fj{Y79ia?{e@36* zpjQJdU7l;?1p}}7DBT;x_ch9!f_RVd*#tW0i=!4e113URqLW9`5=C0Q-xn!5`xPD1 zk+k49N}|l9eKYBNkfu>U{MqyWpVnK@@O|gzKsDtM{@u0#B}1<*W1B)!9HI zsPow(HB|p{5a?{Q%3nFp$yqDsalje`(DYY)3f6;8XRTFQowx3j`Fmx4(x3EH`b#vs z6A`Ktm0z9j-d!L#nkA#kr=YTbi_9;J)6R=q3q?kCzMS&W8F_R5`+zgnzdBFX>k|2I zBgG9N)exuXxA8OPSLYiGmkP$|$}o`}(*Jgw@>hS^$vLaPEHZ?Z!Xl~ZFOzI9BF6IR zdM$+#Y8VK!Wcw4Tq4obX2*&ZF8CR(&G~dJla|)pSHL1g11I3tMotN#D`K?+`5i$3_ zw}7U1@zgdbsPn3+w}`a4Je5}PeX!w(iI!iTk4+n4{!fsXT%^iZ-|4c-{GFf~gSr04 zAv2AgD!)3%+9&g?hOL^B(p$-)|GT}heDz(iK949>@hKfteg)G^`PKc3u*|<(Wt33m zQ}8lVeszwfW0lBYt}oKn7_I<fnr)?t3F&#}<*g(UifIWd9Fop%rrg literal 0 HcmV?d00001