From 4430c9cd0192eb87aa7c71773689bb459e51b276 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=A6=E5=AE=87?= Date: Sat, 17 Oct 2020 14:48:31 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=8A=A0=E8=BD=BD=E5=9B=BE?= =?UTF-8?q?=E7=89=87=E7=A4=BA=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- L03LoadPhoto/CMakeLists.txt | 21 ++++++++++ L03LoadPhoto/cat.jpg | Bin 0 -> 30702 bytes L03LoadPhoto/main.c | 77 ++++++++++++++++++++++++++++++++++++ 3 files changed, 98 insertions(+) create mode 100644 L03LoadPhoto/CMakeLists.txt create mode 100644 L03LoadPhoto/cat.jpg create mode 100644 L03LoadPhoto/main.c diff --git a/L03LoadPhoto/CMakeLists.txt b/L03LoadPhoto/CMakeLists.txt new file mode 100644 index 0000000..ed2ecef --- /dev/null +++ b/L03LoadPhoto/CMakeLists.txt @@ -0,0 +1,21 @@ +cmake_minimum_required(VERSION 3.17) +project(L03LoadPhoto C) + +set(CMAKE_C_STANDARD 11) + +add_compile_definitions(THREAD_SAFE) + +include_directories( + /usr/local/include/SDL2 +) + +link_directories( + /usr/local/lib +) + +link_libraries( + SDL2 + SDL2_image +) + +add_executable(L03LoadPhoto main.c) \ No newline at end of file diff --git a/L03LoadPhoto/cat.jpg b/L03LoadPhoto/cat.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f1a8bc007d13e2ccf60d251f10b9698c02e38b83 GIT binary patch literal 30702 zcmbTdXHXLl^!K|VfdC>+P)dMkK&nbN0Ya5P=)H?n=}71VQ4$0(hR_u-hTgkURTPwt zbOfYmBowKNG{y3J_}_cyxik0Gz4z?yi=92Qv!B_W-E+R@yZ_DpM+dl#Fjx!#0)YUx zlLh$iAE2&hrLSXSZlwnI@w((6;_U;ERJbe;mx>7U3-*CyjSS#M7WxM8NR+&^92^(n z9_SYy14qM=s_g&G19|`i4E~?>B$$~Y%+OO%C<_aelbxOQ6gMXi4>u<_7cZaCS>7`O zXSle}ik%Y>78Vf^;W-PxAO^c21QUV%&q+Yc%*;?0=xHeQG>n&<7xw=-{_6yISV3)| zHZbS{z{CRr^ML;A2E+gW#C(GKKeYc>fSAA#W)>(b8~dq~gl2Al2?Pc+LBJ>14mrt= zJ2?(Oc$j(5E9kJCv2=%C!0{;((hFG;x{Y1@R^#8rl{`X;Z0u*x2?z>FT$GfOmQhww zy^2Js>0Q&u7#L!WtZi)V>>V7PJiWYc`uO_!hlNK(Mn%Wq6YeD@-A{f%%E-*he)Kpe zH?OF;q_nKOqO$7Q^QPvO*0%N+Z{KzI^!D`+3{Ff=eVCq^{W$k!iLt!0y7qN_WB142 z{=wnV&tJ#?!vzAs|0mY}Ci{PI@tklmK_FlV^nbWOOi?ErmyTRxO6CQ37=t}$~?WXQ9Y<=usG9QAwNf68Covtm}F4^Tju!fK{Y_64yJkI z$;W4~WrwF+Sginr)<~i)2LPe%m$)rQ!WbRuu(itlgDPmiS7kS!_|qr5Z>)9cPum4X zOQkzSUs(nOvYLRW!tyKt`W+S`fD+-lWn_WU@W|Ub`%D|dX+DwA-?wHK$gQ65Z+b7G zA2JaXA!OH{UTx6GA3wqw;-6)Lz1a^ITz7g=z;dat{LMr|kT=KmP}K^6XH>8rdgdJa zoS1&XW3+Hy19vBPcV0fAbcSkc918U5%}kP-x~q8dZ__?lWHyF6rF>3EAL8lS=jR9! z&ed7-U1rB$=5B;#S`Vnrck@SkuCLn{Gne%T4ZrRAoh&a9Vpw$w&|5_gMIcd?L`a_% zwwf(yHErTgGG_?%MybbA*|%AC%iM2XJl!Rf_C6gag?T;qq^E?mP;QEJs~Vv-Sudzr zM*#5Ddg?wh!7me^E3i!4-^pxh_U=JdU*egbzy51@h9~ovZIa1Vw7h%(buz>7-*;Jx zS@d7oBEp~kw?sBDY5ncAze@)vhpUK6#F!wCLfz{@M)iS3q*vHeT{yx_fg=r%4wWj6 zJI)Fv0CHFW^+(3EC=bKMQnf96y1G!6zS|dOpv#FYPZQ2ygGZFE5&A@%eggz;CNd>= z(@0){R$dE`X;8tULtj&MGD0%Sa*|I}DVMZ)EB9)zZhUDk}fLe?K5qWHF)cL6BF4q?<5flB# zZ!xUvt0`Q=v-!f42B095mc^@-*~1Q6D-_YcsA$*;o_?Ci*(zjaW?%&R54ey8B1aw+ z2Xn?omd3t>gmZ^r5y~af>z}ebp?TJy;hrK=*m7JWIj3ve1VKHjWQF76rAv5i@{L3~ zZ-pvkZfb+YK?!*l&Dl9&`X9tfMFfU(ODjWT}+Ea-?X^UuhlS2d9DZL<{ldIl<)+1*2l% zPYFYLp~diDRz+1Z2i@8lvd+x|MK1X^gtRO695-bMilc zTvmkZd72_$aqBJ|?9Zq+F5<}vEgKD``@xtO_ z_|c{;HEFQqLf)7iCl*@Jt2EtSIp8Sr?4e0EpfkGY;$~~8XD(N_z?m?g*VGk{JWWv= zR%4A1Vf$q`?BtuZWpt_Ye6E?cIM}9MQs#DN=pvs_ssDnMRH?yx7F12U8?*hb^X3-| z2PC|ZwZVFRz7rTxj6{xC=B(}g6c3O^*aG8XO%D%ucY&wCW}jgBFdz;n;#V^=0)w5t zdh49JpPoDWTvRdO&X7#PrG$7jTRryW+XZfW+Zgja#DM6p$`mt$xPgpSJJokA0LPhy zRjQ{oZ8^bFwXU=E695Z4sO3vrgCDAVHs+5A%ZT>sfpb(sm0tqAY7@b0t6HTfZy-Kq zf2k?D=>YYw;$^bMe?T~+1HvDikUnhU-PHxpoXGEBU8CvS;EXF3-@Zx3_Pv0RlmReG-9o|$d zm3VQXQ%riG&xjK{+H4pN4>_$|2q7~zo%Sv#1z+GaFZd7Gv{1z3wn-rZ3#KYb3TayG zQDbsx_x=N-!*mb=sEgT{=n^;i7|3rcrG|SHW-g+E$jOr$4`pCLfBY7z8xZjNuwi8) zz$h$V6YSMeyT#nTj@f?J3gk*^S z{(-*U1!)8SY!=g=1h_x_u0A2!Rt{>VEk~5VL~|jlnL@&3n2_``Q+uE0zIDUCVm}yi z06Vj3bk&P|yCkCUb)XyWGt~lsW*AHt`c>xH^E8fuKgBD2OP_dp^e{@W*LQxtwf>8l zQ(?0k7=aQqn<|bE(e6T)vc;EBsZq)WX<_mBU93SxAiH4v#S(-#yDt(R*15*_PcRgu zxmtNWSY^RaS5ccK>(0~DQk?=?6koB+X2?x=4oA>oxvo}O&U>MElXI41YWTKUeueQ}3iLwn0(8qK$ zI6*R?)xwBgR3Gk_wJ{&$s8?bU01a6Y(d3H~v)1`$qab!)1$s#F26#v-7pIK}Kf*ziG$o676_3+o*3kX@`O_|W zhT|5IFAYMjOf?`1MdD=Mer94FQIt(j+Ao}oQ4x2_yw8q_>EHab8NGC+7@s@%5I?)+ z*$xXko_g!j04J@&r`ST-`0=M!GZDcGy#|7{#n)B6*3nzH1Z}|SdHQa@`UGnFcZPN+ zr_NZHY?w>d!|bmGeEiy<%{N_IFV`q8O3dj5kC@{a=&Dm@dxaI#2qq1CPX#eZAz^b7oznQlG*tzaw^V`jLWrNR;>-IL>);H+$VC9#_mrGl_Dnj*gJgV!_tuSxlHQ5n6=)R%exzr$ZbRP zOZF)AuhG&gCYil>c29v&0|XOEfLq?TG(@SfSB-FN6{Nv`VU{%@f6U&l6zK{IKFgHOq$Uh1&fiVLBT+>qbZzyAlz*xnQAE zw*)A1;;pi+1Q^W#6Xr|)rjZQ*wWKKN`6=R)SwiuQcxl^^u+J0Zc%3b^Ns7(!cxVQ| z1}+d$GVJq}B+5sZO5VCn#@m>66EQ&7NX&4kef>a@TE)06%K-9jRvOz}p55$UEgT4!zSiWx&5F`8qFz4eTB96TI%F+y zY3$m4;ow#Z%bTXw&Y?7F>6GhbIR>*C z;C%#hd%NlnuvL$`L7Q%;H@ zTt*_QEwfL`+hNZK-igK~IyJrd%7!5C+1^Y%T&pkh7w~Y4x+D7vUq)3U~gd4)eM}e)Z&1pM$aoih$+l8@vMb zOjkW7JD@adr24+!S2&DkE-Uph>|k@)D~R+ZSQh@#ICmOE$g4()`p|# zJ|nhm9cW&)xaqw=3WhA^cSnfG;VYtTCAByLY%-KpgF&8*?}Dx7HgO!On3l)_f~6W0 zfcARAH{+%?@#Q>Pz*mJDP9=S5IIn%4^a5Vc-7GZrhaYrk60vFIjNBYWOWRY|%Fxn3 z=JnKPLy%pl<#Af5T6h6{A0m(T(-twf<-}iyJ~-F7-v^}PEj~(u2~(5ipip`9W~ou+ zj=8nDj-(r)fZW_%H%BCDJylBYL_kT=D5O^Gr!=%ag!isy6DY%6vu`?$7qy|bM1=|{ z0~}<4Q`-FdTA38I;M=w_m8dXf)jaEL{2-+~lVnZEVAC>EJwQrsVz_|)P2=24gQOte ziy^2@(#VT;`3!kOQHEH`ji;pIpx?7Kr^<4d;SAsYQQS#cDE=XR!_B=oh&QIpgdZ+S zr=505R`%}((U1pK)6<)Rg73WCG6{JxX@sWlP;;XnLMukbVUvrqIWKPgYLinS`i;9( zq^EIn;WlJd)~pLu-%g9`G8N!je#ud3DLddUvk5a)0?&U1xJ`F`hT zOIpmJB2`^FQjn0@KK?~1jM3M@%Oibg{3=v7lZHY2cVsBn{ZLr%6f>Hb+P9Msb`ct`(L5W)>25_hMW z@lW<=!s^1n=~vyDa*mH*)t6fFw`DC-BrSi5K8ab1CIlLSMzq+w+IF3d94)Av|C+yC z{mi{`M#GL!dIxhjD)!Xsez)3($wvVh36-q)*gILqTvkR$Q|n|uJ!9INs*NbCqzvS2 zM(AmS!mmeH_cV?iB~nF+uLd-3)P7`!$Q5gxqpJk{j9segi*7k4{eASM9hN~>i#VuC z;=Ocz$4{mbGmd^|(hy+SYXC0iZy=pj5#NhfaMXlNZy!YKJ^&%10DgM$JqOB#ha6EZ z6KU@(db?zPs!sBPi4O#}TAa6*kT8I*Djp2QZm`j<3}hbtdWLRvak|miWcOHkyEMHW z)n_!*8mfI#l^OLAK9ZRGU4G!4Eie#I8n8T_<@}mFSehsKnVbltG!+e(`AhO@(bAmK-ag1Ns0HJ|nv?LH1nV;#lc z&EgJ+{0GRiEvlCn@{$5@MuOyep=C68MF^=t3aWYk*tUX`GnK93UTs#o^OQ2RYW^+@z?*tzNptW7FgrN`gN zvX)%F$txeriz*d_<0xwRMz@CBsBWV4NfJ5V1!s|AG$Zb^%rkbT2XZE{udokqwuYc) zVwCz38WGzzIfr`pO?=AD{0wwvsFN1nI*5W*n%S2b!hEypZ|0obP9WqoHVx?2Iks{0 zqG-v4K&U>Y=XTC_e#hVwjO4KkvAZN))JUuqs25Zf z_Le6%8Hy4-tQ5M=0RDW+N_k}3ah#s_-G6xa>eL~EuSKfwM+VfFB`QGudXZr52Ffg zAzHBwjyAOWhy;_zhRGSWpwZhlH5!wvlwR75v9h;LOk>}B)$c6&0bOdDedr&uGC?wi z1dy3@j_xA3mS6ntv>*}t-cfggrxZesn+y*(gE`~Mlb|DdC$1|-mGVJRvy9mdr4=-U8(Y?o=6>nPiEGePqpl^UP zqqQ#Wzt6V&dL>J{oFRvnM2xBsY6H@K5@Vd;<9*Z$NcgC(fN6?~8`!JdF3fc;l-QTE`#jYqsh=KZMWLAyyng9Gn=| zdSccP?ZXJLju)P(qbvIEc(_fRXiKAN}bLjkwW!!K~#JW__)V`Wf7kEGtf`XeaZ)L`ODyJMQ8C^2k+Dv`>&?1Fg03$Co zr^o-gOAFx7c`U5CLA%q8UwjgbU8daoFc}$ykj8v{F1NM=P7-}8vslL__TDZaNwES3 z8qoTS?+BzfKwC?LPPOw$6js~=#jBCR+JN+5q#6kU0EU~IGC%q7^5o;U!k#HQJ-SCQ zgnU0~<0kKY88{U$D`QNM?nDN+k1`c!Y!%EUwnp{g2kdY&g+^Deatx6fS$`oyHr28ijqx4w)4hbsA0VbV<*U*+L;T%U<{n zw}!Ddz9!#J=NVCyxd=qi^PQT^2Mv(NwtjrnsMU^WY_sS4T46M+Ljsk
  • 4#{=QL+ zS?=gW+7~=$cJndphb}Kxa(6XP8{I!zii%&SPM&fToh^@YX8}->;>Rb23Q}afuij;n zMOzTOu$sK+FH1m*NR_2$X3mHx>D%VKpSY7V>aWPj!iL_}ria`$0_3=E3>K-iBzKH$ z{V)jJFX<8w)#hVNWO3%3q?;X%l~!>BD9zWomE0UYWY4@?W~vP3e?TW{Gq0lKaxWZ4 z;re0*;lzZQ_J8|{GXp#u(07uOG9`8pXOX{R`jo$P{(5}?Ngr6F;XY+i)I2|xR{O)D zjhYNnGy_psAjQ`kckfJ>*kEI=rJmg_45!(wek(`)aA4c9dCCKG?K1~O_xaYJy8r!^qPlwB>YpgVDd6IJUs?dO;&wORN|8J3EG5aCb@qq;hS6F%{;{RiVFrJv z8y6(jwkZO-!r=Q=J5&uCaR0n+rd(4)Bi98ef83Sqz8L;;$|mzMmB^*zDj}Ow=N*<| ze?;Ssqz}6z_A$vSdj= zH;2omC!E zQbYRJXaS5X_cdW{yLQh5d|-iAep&q?h8Al70hyaOVrOT|@=NC&-nJPsPIdMI{9hO@ zHWLP=i4ScKHXCiOk@dKZdCjCPp5+39XeCN^^jp2lNDE}wrs;elPhuBpbo!N1WAIww z_3T`TnIgZ<5C88LIYT%K#*cT_slr>(^K-p2J$~&yym3T(+nQgZc)=>l&FG$-`JH&% z9AUAj%uP~2QPJrFpN3JiOk(^*TU<`^8<8hxC*+BV$vXqXcwrmvjee8 zmYZ;9mo@TZ`XKBh3Kffo`Y$C4`9~j%6`~U*ni`2LpUl_Iek+a8rPe<+U259Dm$Hz5 z13#_2@O1j^3uD}vBxae?wqNUz1`~zeW=})_Oe{FUM9o{Kr|+YeJzlO)`cd~XyuK*5 zgHMzgzJZlG{O=FcgwC(HVcs$eSgd`ak*P98Z3r`-vrIkUdpA**jRgoZd5Hu`VKdW+ zg}udTh9Lvh%cVS-kouTxLl9U)fNPl*GR#<{%(|-&5MmQ~AzXv%hm{~;;&uUzi|<<* zv86;@> zi$Ce{%y0;JD*aQ|K8zkG9lBn@&Kc)BpWf%{X8>a)XrEr6-7`}Mzp?E6afe8lM6)T= zU%y%o=L-TTfM(XWAOc%cgg9ptT|QQ<-bt?)qo{T~5ziSLCnG*L)f}*a#IiDJ?RDD5gYcLsbc2Dwa#eupiD0`WRW z+(eaf?L|&(p_m!A9}dL%nqKu=KqANqJ&rtlmPsh6#z8e!+5+T~w1Gx%7Fs@Zsx>@J z;U8{ z$D*Ykbv%0D`z}9N>9p*lPnBf`cLT(EWwO%Tk_4f7zYO|ZK`*}dwuZ%eimrq`x-Z}e zot*hz8I|x%t)kgZBSq|LbVApp+{?)@RYTw}S{9@{lq`7Gb~XgnrEyG?{hZ#^VL21I z8Soy~cg4JOvgEtcLK~0FbDop_m9&-QEp^!``AhAii}Pip?4}oOg9b|dQ4%kB71~w@PrLi~O)e}@jVc8KPrglsF zp#=$v0;8~lqoeY_B^wuu9wf2I+gJU=h;@EWeD`)v(cgZ&%GKrcJnMkvY+S%>%Q@=- z3pF>7X5L{Pmx@zk9O2cv!w%#tDqU*9!QaB}cxANo3OTm``|Ig;R^7}J{iFPKEu{Nk z$VBofs$2G9B}GJ{f;y?-dZ8y-z_LfTVV=)p0oa#XSWBQC5M#-2^*`^USI`M*XNX z2`sb|G0+8^naCc?&!u3ZnaUKN9g$YwSXyLgoAHU3*E(CNfgV-3liTSHmNS2r>iW1{ zU~3oZ@?O8qd^Ux!1FMI~OkAKCt)|Os_nGVZdy7-US6{5>Ts_h3%M`341SF{xsjd+& zqbyKDpUGXBuf{g+mrT|>f0-@p{<5{|n`pYMEy(nIWk7>NXoFJmrLtX^my2PlaezX! z_|1xY5#tgiEvarFN^bT}VmrUh?3NxBq(Mzqlh<)P>HjX0I734)@~EQfW!a)ML9jr7 zF?eimI*S_@uSAAf@fwRNq&huOHp1?x0~D4MNs?P<*^*2JpY(fjeDuAEx*5ILq_ELo zt*5LZW(uR8M%tZF;rpe)S;0PpimF#5Dr8qVbpzF7Z`?np zttS;6ih_`%s&OV_MRXcsYLG_~J0(`jBrHu|o;laiE`&WKW) z+LSkk*&VyJ!al(&OYASU!Hu53n)IX}D}snZl`*GIawu^A#aeCHSc24PVl7Qe=2N4c z4KylPA1@I3Db<>W-Is{v=g=0D9_1VNY1o}>^5_C<c&2tOlSe{B4LZyoG?95(WZLcC3r~E_y)?BZ`Z`NkTYz5!&tt8B(Tr0j z#4)+gsFZ(QFY=W!R=7H>tx>$R()1_)5 z>#8r}lbYA3{)y@#@|!;DsIm#V6Sa7Tb&75y$EQ7L`tNyDb0ANNg#F>zoyG#?@^IOy zy>yosU!zoKymC(65)Oqf9@PoT41_xDdnQ|%)(&f(cJQ0iuhNJ3vy*wvu*Z2{Uk4;{ z03XNL2PeZ3LHA{5(K>Y*vL209+W>90_UqfyW~BeX)!2nvkvCwloq<3M+0kh3^&i?bXco zbkmtE3$rk|P`PmDTl4jlY0Js_T4eQ>Nt5g|qUI}`yEnlo3-jsvYzqUOyp&&GLZHol zL$$g2D(?qs6OzCJJr=(&zBRCR9zJU@9Ixd>ShA*a#+mBfSA20DRQ1F& zqx;NoP{)fi8HR^UX$9Jl^IVbpt$YtBI*#zVo-?Yy%{a{_kF3krL z=l521oNb_^o5O(|4nvFb2J~(ANBuq}{M2~_+vlX;i zA>ZTt56#i6xs}k8k?lU$GzcpXI8a#FH2ICHL)k`rN!Z1}6mRhl6xun+WqAXWqh9|3u%v)`3_x0~IZ%Qmp{9rm z{mVl0zl~l5pUCGIS`*Bzb9)wEh*%J7`v+E=3BiTh)wF-8iVr#`=d@}8JSizRWtORIfwfeL7h0i?<(agFBCR6_djOs3Sx%$mNfI>6%YaTQrF0|+Xgipn);~8e- zG%h2HH31m;Bny|hvYwznxybZlyH9ar|3&bRJWIc+ z5X-><>H>HdtJyrOI%-lFkFA}bzY(h8t?-IOz;?;8wlQ_vE4`}&0=;;9Hjkq-?HP`B zb?Ii>*H}}whr{i5Uh2eNB#Xws+3VxaYUG!>jd{o=;G5!e3eF)CNs&kOT>CCPu*b^J zYhw6!LM9x=sbkQoyx5!E9iWuRI24jd5NTO@f6uD)L*Y$KQd7}r3;oM5^(XO ztD}wKJZtYMQCU+_->l?0rS0uaTjsOPIl4D;M*@c`p{EV?&wb<4BjP%1U;Zr0lpF#z z&dywlOushTWjWwJu=G6T>N&5J;F22Ci;aBkAK~*0XQrQBK0sZtOFQf3!d-H}QaO4n zSR^;3SAl@#cbMYD3qlXJ)1lwC@d*hRWUyvzH!at(Mq((Rk>OzhTuS@=@iB@$``Hq`q$MkH2Z<4Z?&*xg1L|5GK`79!C zVBHL87?DQToNMro1?5Fzi-!OvwJ~iG{0IF-*|fzzCN^;ji{Dp8jG3B^WPIE@gA5wr z$2yoidpHu7>i=YjGe)dbn@XoOyW0@blx&*3o+S=9tWjQPr)XSb!X-?87#Zv2Ul=_?&`d|B>y#Xde^3tv@C4o656mIg{U|xqIMD{^NnO4 zywK1oe#AJ%WDNI!<|2d|f@-(2w(qLZ$&FiYoV;2e+utjZC5+Js7+hcZbk(1USCMJF zaW3q?4EXtKD-ZnEy&PgZ4FAl>k5rEX3{9%-Ls{dOHRkfZa3mXVJoY&CZM}oJm?->O`2S+TOcj~mJogyX@pu?J|Gp&R<;+6(d=ST^$6 zQC;j>{@$jUGD9-_bVu$)_sThcnQG~E8npa2dxr9Z2Y!@w11oCk`xyza%k^wKlCn!u zmpEV^HmX&7YhF3#^kKz7Kjgd|^rtP>(V?gOLmp?>8Gi*^fFYS~S!2b2lbM?Nw7qZH z|9OALE%qX978E)p)+U&~gYr#=^P0L>z3`SOENXcl-$Y0jfS+By!&H1u%7t}`h(sZW zZ*~k3`IHQ~gb9ojTd0+D527G4^krL@faHe%g~hF;A_`Hs7o4OW5|%lUaot0pi}$?% zV}{h@`?k@7&!=HcIY|JHim(e+N;O(9l{OWBkmb>O*|gF*OEPMhQd}E0M`;Zbx;>8? z!6H9taKeEfl!)7tF{XRot_Ts;76`k~c z^oR9{)A~^L7$oHB6O?35*}lR2Bh4$5bzv(my0)o+C^dG*p#1Y(e=bLgnDF=Uno(nF@-!JRfX)r!f8!lZEC{D2&uNI4(;}5pE94!D%aI(Z$ zKsRjGD4(5v4RwANSeiPFD~JgNK#=b`OC1dTUFO%t?0o5W!s0=7ekYzK3D5FuBaMMY zkq_B@J5#&;+xGX~K@s`(Frpf% z``k+=a(pb^X2M@8ePupgZ8{k1?{hS|MdRgXGRHI)h%OVXsR*!seT!%tn-MhVtCk?k*N;;WjT z4vWk3e&>tx&tCk*-$HG5lX*IPTnK-2GBLk8H@9>X?iPOh!KR`p;~GZ9F=l}HA@|8q z%0fiVlUxoXObl2qHq$=Xo3|IxxS~Pop7NQ!zu?8>@7+9%5N-_GF?sc^9|{ruFy`Rh zawNFva);E5oh1WGT{{6S4cZr&v9Q0ben<8MHe*Ci?S3zybKRc$omI8WnGKO7%&w^*M7t@n`Zt>un`gf#B=xyY zeb+{abog_j41nbcSzde|w(ecaBe`6V2(!FALY$!-&wY=Y2XK+lZ2s?_L0$J(;Ngsg zqY@e5V82HuO&*0T+j;sxlKeQ}etBi*N$JyYHD_kMoZ%n|+abY;PjVti(b_Uevp`&=8#d=my0^m~pQb82rPM}uV} z_-bff0xgsov#A}GfP^4_YH9L z4jhzD2}@IqL-8}eVqfzg=^0ROy($-~Mp=}ZeU?UKZ!lY-DE*wdAj!=R0JYJ<++_4 z_6gEvIP8=3Owb>6@q+8fP#XtB62gd=4R;=THLAq4keS{un!Oj*C&u5rJv&(__98*< zBXVGW>7}1OwxTp3v&dz%aQTzcZs3d6a$IbvqQjCr^wj#Nwwve9g{BjSGY^iJnhrqX z&njTgL1|oQ{ISh3F6qMxPd3PmRkCojHco|AN=H08CoiKK?V9L(AJ zW-Ma0L+jdKYV)l#zUQ1iWykP6Qsv35D~$vX>My6U4Rk^YfAvGYUpEll%q2aOW>@Ey zDJx#8eh{S-6crH=lqTqrRpCy%$Ejc+IoHx_Nw%87&GjV&H%ThK!-;H(oWkJpJwH|H zp0!zc#gS$c${a2f@zsW7;w)^r0n&oM>(nRpY{ME;`l?0!#5PF{Gcq>_j-PNU`gXsy ztD;2eHwU#F+c{bmdq?Hl9o{!n+pZsTKRU8FhNWTRs^9LLY8wBIHGh6DA!Jh86^oz+ zY&zfI#D1Bb8EQWBs?CM=QKc)j7J5=+Y`6s%&0z3cNe8&fc?9x&=km=Ln8;Ive%Q2R zQuw_VtBq2}B*PKyWBY5n4FdD&RGg#bG;0`EU7$6}gWHVr%Veg@VSBwmp^ShRl_Tsr zXSr7|bc98x^J|!^^HT0`6LTuFv!u!}>EX&VwT1^Me~FRiTfQc(R&uuw#P=Mmf6iQc zc|mF?{RvW1Wz`kEE6`2|qKCfk6VM~Lq$b@yUwOkw!q!cPPCh2>eIY))k2dg}jj-{` zut%4zE|-0*l{lZ{Lqv&w5Eqrp1xQ$V9Yp4~13vO;)m-^wWiunP7cuPTVRh=4`Jq2* zx{)NC2 z`i_X~tEL$%1|UDg<@BvM!c=_p+`0Q^#Q`>v9-gv0H|5xlKP2z)b5n3*yHhi$Ta`t` zSy{s7boswYT^-4lZ%$I{k)g=fy{{f4#2?Y=5n72}{;e{evh4@orylC7a)MvZ565F+@5u8J`hvHScU3K=>FD&u^| z)ZrqBu0F6Rb#i`9{N@uX0P2-4aXV06Olw-ecfW4mugr4e08Di`%|#TOMX`2%?RN#cl{tEW?pJ_ar%-j zD`c(NJWW2#wipS<9aeTO=Hpe`aus8L#QAN+9#t?PJn8$DQ0Vt6Cp6YGNpp88jmjwn zJ6K;g^z4<#mL2iHila4rW|Xaa&mo%m-u4Ym^Oig_TvNC40&mVARL!Mx>PipxDjaAw z+vwm*Q6z`it2rP8*xKv|-{78+rEcO!aZxU(?;;Z`kJf61uZHiCGUzPdC~>L3dcrfx zhDATUcfYpKZ{UrT+z0MNB!3sosq7U-@Af!<2>vKn>iZ_;cKWDHIsD(l<8jO-mrDQr zS;il|3X$Ngv-*aJx4H>w#btMeD$Cb5W7XyE#rQ|HuK|EU-+C&}O!d70cu3lAZH!yi z{$0AXcFk4eun@R41+Z+(+)%Xt(Q`{=YuL)~y3+Fpj7hm7uatYw;Tl|R@u3DY8l1}? z5apjYy2{(yRnIb#JI_;7Em%88+lQT|gI%W{r7)7E*+qW6tp_||w9kq9eixcRJHmlp zI~EJD@PSd69)3D9#H@E!!%>d(cJv$SkmfNdmmf(dgQ^D(#$hs}{j_am;w@j&b3ZZE~kQTM` z^Ai<6Z&soCajE5}I?SB_Ytf=+LKLNw#BxgUb2SdQU zc%`Gpe|MdZ<@f_GPS=W|A107@4liF{5Ka&`Zt5Iy;8q~a@Y}DRe|+9vfbr(1HNwt9 z`()BC@@7QIn$0FZJ5;;tq-QVo>)xYB*?+a39g?KN9XjrHj7%)Jn3nyB4Op^Imw?u_*AU z{=)9)y<5#zcSfc4g9{Q|=XNP;a4I2hq^;!vWvrM|l1EB6y`DEwLElNGHgOS8U+SXm zSbdt6f*uF*XZ0K<1CNw zJ-Lu3Bl}sK`r=uqdEN^aP-KtmnP)Nu3`D87zZxltr$q;y$V)Q5h8zif+ygTDCiuG%BfS~JO zUtv<+(nKumCTZq}F46c^C5&ZFWvq{RO`-&W6BI4x&n(l$GV9D?1;K49bAG!pDTKN< z;&?jUwANG>8=P+S4iiIqaO!k-C?>k@v+2ZAD=QyUci5(dLpLl@_BiXMd`{)J;U)nh z$YDb)*zMjQ7&+GaZuHY=R!-H&jP9&-n01b?&N0kXO zfkzZ$Cn33OrEs|5V{5_yeaa{-)$&uR zi)h@7$v2^aPz0@MD^2O!uSsk_VqQ5hi&J_*d$_NIZz5*d(xiBxe*a03j_R<`bGI+a z17ayLtL=34WYDA8TuY2LnAu>m1OEWv_{}i}g0JlydsbA{CYD>u)|#mytFoR>j(v}! zEX~}_Q>sPAe|a&E0udus$fsI-P&H^}bWD(4JK*<;g4}g3<85>NCRCw>7iK zbNr9}#BU*k;}rIXL#Eyio-#FeqN!0&97}sBTg#7oKN98(S8LZxB>rU!Wi#K)3{m5K z4`uuyQnO0L&1l8G$*NUxAZiv=#Ojb`6KOfIH#w(SvTu) zqwJ^d3Ejip;~k7l9;5N4Q_~m7dF7QG)*Z_sRf7{!T@IZR4f1T_$8P^r8u z-VP{mCQV)~VyPfkWbwpb^*}s*FJhaPkSF@cll07RZamMUvG2l_Jd9zCBK8RURZDGi z+atMK<86)M?*hH45tKNxPOJD~~;Kwu|7H{qr;Z|N5* zI%N*YNDJGDbX1{&7p__ASoJ}UCrjcRd$Exk+|hi`Wcpa$-{R0*oLhZ5`Nl0e%#`;Tb>x3taUsAHv6PQR&*#?t6^ek*g%ck0PC!IEv+jol}9cymFzy$f#m>j#RUcaVC|*O>SJ ztDSS_bM&TSY&4s)9GDM`q&WJ8!_4yo3R&7sml&gVnUm6~!c zhnzyv%E~b!QaXHp`~AD?+I8*lzV7?=dLACPf?`J-V0(NlZa&@w$M>nLhV%A?@E<~z zd19<&c`hi$>(1X$NYM}Ju{aRt*pDugxz<$m!?%(fzkU7it)X&9UUt;9DdokBW2bNW zi4nX%*WKnVi3RC7-x^D5rtUwMPrKsYWC{~uP=Iw!fy)o)M0RWM2Q;Ix5btNqCb|1r zRskLkDr!o{-vw~9BxwME6>!SoQiyN2s+P#=7pMb%f_XwBYZ5Mo*J*T zJpBm1MNbTC{rf*4kKSKQ$5oSki%Wgbc46S z2MY$Is*t>%ag^sX#ij#+wvs6%!T9>>v6DjQe^H&D4c~E&;O5QXZ&o)SIiEPjOHy)`$o| zZiEJ+5iSmV-2=KaBM=u_Y-!N3M`6=_SKzQiP)rp?#wb9~&67WBq0GwzGJd!J=|u;E z@`^noh1Z(8JSP<_AEy2J-30aCnJQsSjOAC+UnA%%@s+Vl7q5Zv~_Tf<8#OvcwJfEIfU-w^-tU@m~Qn zXkBYq7gR8Rr6LeCiYkjX^d0yvzYY-_K6wN?YGX=UY}fq)0x8TEFXP{lx~6DH81b6Y}iNb_2jn(fmXxkH@=p1WK6yB0Tq0>!=ysV9xqGRt@hGR|=T1(i{lBe<9x+EZVJ$Z-eqS_!f(5o5~M(-9?58 z55S!I!aXgUEIlIT`6ybx_THC_-7_uqI;X}k3s-iL#JNW?n5#JmrWMcCpM(}QB|Uq| zXBGD8j}>XvRJ}hl2L*ipQ$ugInVwuOt{;-6eSZF?P7|Ibtc*=a3~>?E0}>=F`DO zh55kWZ}mQEXvN;INnWy_GUvO#?@@AwDKdC;K;Chu?nJLfhMMa{uF@axt2+HH_2>c2 zitB$y@)hTbzWbl8=;Zv9ChDP0k=n!=1p$3~JAOgF_XA%ZKd?S_h4lM9G>DK!7I=A> zIeb9!Eh>L{;;Hn*kTc$Dp6(WXnwUSU?^az5C|<4-Y)E@m?MlR3ir2lL2!01lWv-`Q zbgN2&W$kR+9-~jBFGX(z*a+Pk;*+zS6+`B;ZCOpZ_eDy8*qXdO<G^MTyocE z57BR!3(VaRF@Tot)D(01n53dB^%kvQ?b^^64eE*E&T_d7K{=rkB(Ei48H*`9{8)B0 z(o8q4;3uT@ywCf~QOpk+o*f;BP(zWWF}0tBUk!90d9D{DKW6!M^5NykJ9kKD6z>hL zEUPY*GeV~`;&3dq;wwnoJuc{a~M zZ7unxXHV_R=*o6cyOqa}9NE^&{qrQoh(i1s{Aagn_jY=rOM6S^XZc8|CcvFM@~Cf% zQVo`1CYy2?|Hu>0pNePt?t>3 zs^nO{Zeqb1!xuw;90=uaTafbG&vvPQf8fjKDY?TEQhYj0!8l%8GOUNAK#}y)AL&!z z6P^9iUMJz-F8Azv0AtPjSnIvC&#@1Sl|3>NJM~1zVabbBi@QaL9c;Ds$Dw_)JN@Le zW$ZEhwkcdR+QjDhMQ)ak*GK*>8hp3cyL~8T8EQ#>18Z5opmH|9*tr@SX)uvz*54rQ zK^(CL2RtmfW+1ttcIH`Ho=m#s8L8`iP-}#npD?)HXQzBm?@+c~Wli48k94x4O=Bvg z!O88D&%UJlVy5xVR6%jzKn0bB=M5Cej*DH^)LF$PJ^PzEcAhlJEY;UeOos%9Jr!Y4 z$=`6g2pT_Z>^iG`#T!c1C~_+WDg3QQ0Q?2;jsCDVAwlo^vsdtM3xxa0=anHwWALT& zuag5JbAC8YSi~x?v%XO=Q=i&xNMIOP{yjDLCJ&ID2LPW&^NCnDZrZLsM&4z!`dHo zyS09|oa99bYv%vyEh|WU`;(WKJxuBdodhbXsf&7N4eSjztV^9SNO+`WT+Qb<`sT4G zfcVAnY`^oVEU{}z28_Fae!=^djIq?gvZ3UV*EPe&$9}!>Y~=D1=Z{5f1;HHFr^mJw zJ1eH37A3wuXuUDW=W2gu*mhIPbnWgpm&eUIn}G`E*HwW{mV#RPvwQUoZTQynE;BJd zM!RCjxB6V$K%|7XC|&c>?=p`-exkBlO9$ODeG90|tGZRQthz`1HQm85(8?KA)BDkn zbnmXECi`5vzE=9oJ6&ZS#KsO{*UXlj@=%^RRT^x0pyJpitLc6V;#DtcK&XV_B-e`b zB+YXa3cZ&uJo~NdkB93Jvss*g@yhc0_Kmb>N~;nM!u$D4p$omFlCpmjp|d%f3$vdS zM2_BvHqjtRQoJ5RVD9+WY7k(}{vRNcH~Suh`4Wr(Fe0kIJe>3bNM6&&g`XZdKjy|T zG!=3t4Ua)frxE|hv7;%Pr9}aOC(P&uS1|b@(PVn0BNk5lasrD3yBaKqd;0??4#!T zwDx?2^or{rJW=met)rGix>LUl=1aC0Yi`8?kV}ET zHJY=Zm9sQZi_zLynG5f-a=Kth7)smOfmOx`8&&#cI0(s%cCLA}{5-6oG#K}*=faID z)bZw+L)XT-NxV)X8FX5D-L+jO;~ryA2OeDYm95(}_uzkkmJDxIuc!-AyWW!qwTvHy zOePb=`8nJ}zXbjo-~H#xayI{R!BZ*AcZUc^%1rRl;fbi|7a?kYW!fHi~IGUyTFPb%~H zg#i?WZ>dWn_x(MM`FE%IKEI<|uaYMRYDq#L<45a)PTLw36mf#3>%{ru1_tzMY@;yx zw~LrXi(?bX2U6lkSIiQ}#C)R54J(i0SL604BKpF<=GjK_8Tlux(o&LS>%OErOMT9X z-L$g;XIWzU^$z7Sh!#0HOoE${OCQN9z-?MvPL;?rgAiwsEXgtdJ9_Vjnj-kJ`1Wbj zG;;vXct;&gli>Aw)GXl=tZUM>O0%N*y5OZkn`Ri>$SoQv(LTX)Ywg3X`FbQ|4f5XS zIuH+!))Rs6D%P1?!&W{zw(5D1IV-P105$0Gw?*|Y5e9XqOVLcxKsd>8oFcq5o|RdnXb+Bj}F4CI%9kFRz1&9E|EW`w=5982RgvP9n!Why=%Ny=9m$P>U5l; z0?R{x`!K18>B&v~kl$%*;dj{TWN(KIhApqsMIa1iewvRPhM{O#i5Uc(5{pY@V~Krg z_nu!?xupy;c@QIjAIh>;>ip`h#gw+x8LSuexhzj#SFc?sk?-o9923@f3xfR#zxVWD z1dV#CEgnJs{nqPB>4pefa-p$7pTR>>l--gvbWNtWmo4)|W)DzbVGs?YWy)2hdpMj+YzXbQNQicffb2cKuGJ30%skF=OyOrId&2t7t( zjDAgZ{k01&Y{;grwyoAmzZ%N>w#C#6zbzZLmP)@%lsJUfu)pnf?Tx{lr787f zV3IS0a4o#9F)~ZLobMXCUh%8uvaF|Q|0wa!;Nalb!l*OG@?FdyD#wESr2-1Q*V7&= z=i6*7zd4GWJnwTsDogmsNZ5^A6%y}Y(ox7XC|0;nbqB!y)-+j_tmx#)g;TaO_8S$4 zc({)L0YjZ%^4%@E*Q&5w{)HiR@ z=Wxck2)jpF9T90um>(4>54Sr621YDR<*TD1B7_FzaufLYXUQk?S50whEEXxL?4UT5 zD_VttPq-ekT;CRRc>cgHO}>vEi1-(cR0uYxyD$o~6|v z)-H~W8XP_|D~-HOjXQUr@pi7-r~P#aD4Q{iel7m7IkndUd7tffZDn(zIj5mm;P9zo zl)5Dp)9aPdlNK0*;e2-#Rk`?Mf0E+I zZI_xtAMA^(&;p`96jh%|Rb(l8J0|5?@-AA*i}a52pnkrrc&XIq6?KSf@x21S05>6* zkrS1#6egWWwecT8S(eav`Chapkok(*S;xNAYTNP72!qx;4HpGv#n+d&JT@w;TweGG}t7UPxdES(RwB75Tdd;GL9bdhUOrUMuGx*cxD63KP`7@LL z@eka()w$miDA>Ph5H}qyi4(6X;fvYJS|7UnOX_N4OlR)cKM(Kp*6W+>`z5?eChpdG zRz#By2smov;q4I*YJ^2rUanUcYF8qcX#1{N5-~9mwm_w=HN@emSOeJx`c~EX(#%4- z6F7Mw$RGWFQejGZHb~@vDE(}vGyY%B?Z}AFqP$V;I%NCL>TpX^$laDSp{xzRxIuXn zRb}vl9`5b^)3$K`PZn%AKY3ENy!w%jYFpqnU`M9*fs0o({;<+3sQ@O1`#->-;bWzo zb629-?hmhbq7Rl*=?{_&>YXeM&pvQ}a6us>{CGu7#@9>@O>OM|fc@QIYt&G-OXsVm zS0^xrxBlh6dX*TnC?Byfcko5G14$c4zz>Km!6LFIl%^J$NoX2hMJy{H+z?dPH#4nc}a7%!% zV)KYuHg_;xW`A$rt!x7(2r0teXy~kA3T=MMV9%ij;el$gisoKx%I^jO{K#3jm0na# zUl6NRm=u;VNb0?|!sW+T0g5UED0xHP{=-bPczJoQ zG>{)ZDt-P)E?D89{=8&5FQ?hUsOpCMeaEY%FZ}SV|AFuxk7S2!~%%# zq>u5;Ac!Uotl2NON={xHJV*;hm6^*)Ce5S_XY#1-v(6tL+ZlAVG zV~S9O6(87jn8~rUmgb6YXSe_EQk|0uZ#FVbyK@y(%*nhb#NWyT|A1rIt*aHqD+Ww_=*a zAf#Q-;2`g(bZl?DH7PM{qs3Sb6L+w}hJNgn@qxBhXbh@D0Et0Z83Y5W$5-+JnL~vI zXruAzPk~)pg>@$)g|Sg9jy3#N*f5+h4 z<351vQId2fXx;gZ&UUZgasF1MQi3@(hKJ;`(r*effEqcD@>{%#S zl*1+Vo`@OXY^#WGr5M1sY#u-3|bnTV&i+~3P(-)rexGg{d#_XYpL-{uFKN<{1P7a5Wx0qKj@3I-l`m$J76PA~t zcJeyxe8In)B-HOrPR=aznNs#uGV=^T?0@H_%*VZc`3A{9^Be`q3@)R8eBG&T9gf)8 zxU_Qfm2CBQwL@o~L+V0&3``>e-28DM#BRSg^^LcXH1!kSfuC;puj60q;qpEqq-u3w zpLSF?mN0#*K5g|q4X?!f)%&>ZLcX130if{oN{zv+d&}8Fvp4ceWo#nPyxX5zJ41XJ zY9Fh9Ve=T|m07&P{{Y{l-2c*cf}iJBbizDG@2M4j!bT=GdFhogYTa6crtbtCNpFcu z;hb9lfPbrtDc5qL<<@OyqA#{kP7>`CQY%;6JxH2|S9-#i4Md(iT-jdTr-i2njw(Ya z1_g;*Zdb-_{UsCHE_-?%R5ojGxtSV!)iVBf4Xtn>$>8kSv^~w!&sRBYfH(;H<==9Y zMyT{T%Yt2U?T7WtY$Vya2QsuG+2^0Wcx{+jcTR1*r~S%lNp)Nhj~x6?dfMwKbvBFS zF1Fs(G6Ewdtq zD7fRLgx@~*$0o@Z2G7;zvj1{TRQkd6DI@Fu0-T3$Ir=GXipG{sgyX!Q+*7>{FA>#R z$?sr1VAG;A+SW_P1yg=6fMXaRnlsHse%<1bP#X^|v!t*abgX;SrNFe3 zecY+ve7ekZa_2(nVvuM8Ct`%`=EX7)jbe$L$mV$<{)01qO(Cvi2_yVySNg(``QUn( zDjwBv+2)?yi37nhY~@zH$D(us><_x)OqQuTW)!3cuQNRS)xYPzJx^k4s<-BUuj4qu z+qE+}RfwGx?`d|fCVL=*9J?weKfdhSdg$vZH9SjcMtN6UpAaXH0c( z-%fYzA;r}Qk+c?SPUArNcePFei`dn1f{VVx4Y+Khkn)G=8j6rim1E|U1=b~^q@Rc{ z9zJ1Ov4|wj%buL(wx9uPU5+4mOotxHR|fDC>7f?-GuPn~sm`EeJ4ejob_ER(49gCk zy=~Pf3NI-1mVP8wr_173x&98ltTMO@b?WWdExs#914uw|p=Rxwt<0OB$5Xt|NGw@v zpLv|R;u|sEQg-jby<12oDeQm1&CP!wYTw&Hoz8@1;?y+H-yxz>PH<*G)DC|EBaU5m9hxLb7_Tx*Cne!sGWg41)@q^I<2E%&&U?6~q zODbc8&>(d~Mj2909#5v1z;|~m9yO*p0`TPhPsP#Sb^cC46f^J)T7aVOPDXCV9c+R^ zF7%Xz3YM;OcH-1M4_ebG>NXMfwqLHQhV(r&f9?7M;3yqKfSOao5gH`wCB zlMD~*cT%YVQvSj+%0$jTukQY$da|MZ5o`WDr#)*7q=4|#L&;$6WaD8nqsEAC~8CLveW#0 zZxs5yK*5<%#rRH4*^`|2KBKxrz`%AlS90bW5WKxx8{?g?)WN4TcVtuCy5D>zf#dP; zC;8oP9qaHmz{d`XhC`G@^f=?|y$$rukR?a1P&fI8&QYcJA@*S+~6rt zF&k>Ux#bgUFgEnT*bNz zL3G#J z3={^!3d6r!04ZYiKymd;qi;bT%*QU2)9i_-q4zYs4{2roYmMA^iII;} zmaiVUpLo15Ui$S#^P}M8dC)-p&p{1YBU{}}BK^dtn^v-_eI+7AkpjePh;Na39#0;f zD5c$<;RMgTwKcAhZe#o{>H)io3X-$OJaShb?{3r>>M|Q$-te*c+p=$ar@73R84oAVl{#QD1a zs;b?5eJgd($|$BPvuJU*2#7~O6I=&RJq+E&ba~j&!;>^zMOiF*>K~4WVq)=qjNM(s zyCmRa+=vPEc`iA%m=cv@%}r7r>1f2iAM936(b~%(Ii###aq2-Y$G5l_2ALm)1R^-W zOak(Mfa&h>=Hdz8gn`fZObZ-3mO}Jayy^6tX-fP@K&yn~kG@7H3%q7B`m|WF^&W6CZ+>ErwJH{5BEISid=r1oAw7}C+s2SevR z7Uhy004Zd?-1zHytKkkf1yK0cS_ORf)6AxcrX;wZ$JM?>_v6SSol?J#Ia})VB}A8& z6fIPyRazlwY4D{~mtGQobtkw@tI#H>RKKJ{`EqNpAw?>}naqPB9ne7>A`NL&J_>&@waC-b2Veq9iW(oZ# z$_+_k{%6w1_s`8=$+Z%*l)Y0CsMO0wy ze3ppVm3%)l>LJFg9ugMZ3G|GMEDN=f4^!ccWb?}S3&`SOkI zAC*7ZORV60*)d_;4G4>f%Z5io3RIg(7=&V!oi^j$c9q@Lc8xpT@=1Nv@?*$k7HG}F z@Pe8N=GTiTgB_D`>ClTD%(Z!ECov* z>Dp*(r}C9})S#kG97g`RY{G$@_^YD-q9waQWx8<2GK4HF(|1s0)Uk2*yk! zDMk)8Qiw7|!TJ@7c}KKoym5>1PI+yb65ppa0bi2prdXAkz>YTeml^UuH%+5Qz3tpB zyJbpBNVO&)cceHXH!v`ivWd-o>BH;hx@QKRqw?vW1n3B99Ew-@`&6gI<$NPxD!=$` zSUI8<=3UXp*E0h2X~Gxvx1|)c9Wcl@;pe~D9{$YsVcK8Ph5&H-Pd#-fp|7)SpdCaf zbVUtOJD(B{meMNEYtIiVM?*lr+%HYq?b%sFP%@)7s~W|^2UzF3EQ0RyD3M5R_U15@ zIbnV|f~hI1w^SE=(qYW_2Z<2Y43ao{k*_5(%3-k1{=cH% zmDGU_pLFD3Obxyp`HeUdCKs9)N^L>|K-A=3#psE^><}&ugg>s9F?mi+9Fi_Gnq<)d^24&%X1knnb_|AL?avx{B97DAGb zm(sgIE8dMMHhahzg%-<`bJ@plN1pH)^#O?9S%7N*1YNs~)8HM~*GU=Y+K|OuF3ru# zOeP8;jpivTcSX62V4@=@7m-cjtuZe_^p?$NC0Fob6T5;hT?TfXA>=H)GX4OCO90u~ zXM!KHzxLWbQC=uw&kJD&zobXXW!hYJ5<}J#=N)@Q75eM6&LI2($4SDgUo z3Hc%ZLc6_&RUk0;`&TEv^nR!5ihIzWr}{e9Tl_-(*wAwGbWp0z1@@0}X5){e(I7<| zm33FzZoeQkBZ0oz*`2z%?^?nFy=^@$1d!r62`;JPiE&)U*{>f0UeaIQ0!J16tODPI z$zuh~S@atS9)%)On3LLXDaCsskcSAM zxjR=#hR{$76AhQOTYM(`b&Wtgn~nKJ22Cim@M-{+g9uS>RCg%~95HH~!<;#}e~9-H zSYt~EG6~+auYf`neW#Ri1R1zf^`)u!xS6!q?Z8F;hYOb4e52%q?9Y7tA04+Xtyc*7 z`?uyJF-vsS*B_qHb;0xsJzrgLih<<7Fd=GCHICz-dqe(4`Qe!#$E(PqQTzFwT0N%3 ze)+I$28)}$Hsk!nVH*BmjHZ<$DAuJ}#GA;5)!@Me*kyHLbqH3=>>`Z(N!ABH?w(s!(U^c=1%S%1y?t|OPx^GQ_Hi? zbro>r!&S|BiXbT5PqP(dZz}13LJcW!D%b(H zMK|tvsHO%XakVbr^US;>^Cyfe-nw=y*GnOC=w14B7}6R!e6EQx+;@rxNfoN)}>Xm9vP$1T%e$&l3f38V~qaaC3F zKeUme&DlS}ja8(!m!_;h(64c(hzo9k3l&g{?tfS%H+Fq90K za_*s(A!}<+1r9tI4L3%2oeLUE?(cHHFZ`}b9i$C?>QZrWB!POV@z`E88yk8cTVL$j z?%`$?H6-4MMRAC7qno19qZeH&{E-lO0kbnqyo}WP9&QGRBu-QfA18KmmL8TfP1mw! zWy)FEtUdUbJ8G+Gp2)j*5L_}XwsL5@mhjPGbi-13#ZHFU{dL6R^kRAXPSAAfWd=)4 zviqyo2t~ffZ~AGsueyTuPVJ|A3hY>zUW&bZRhCU>CMug+?Q+ud%7*Gs%ef)Gl>%Nq zP6h%L7>w=e(rcVMfttX;-?HWs^Fpviun6lk(1-2|{fQ(FRK;#M&)*mpE%S;zTm#nP zAI@fE39q>8U%E;WmN%99f@w(E(bKRQzOEghT@QK#ts1d zosirg<;|>yj_!w0DaHs6U3wKLNwG$)I8TJ?;z5z?5Hpg>AxmD#6e=Y3#qbRBn`Rh- zXhcPWp#?jJO1FASdEkuD&x1a{-QwpV%0?>vfGa~YMn+eoMLxYlZE&A@*vt|bg;mMt zlpB2gRMVpwH9@_tm6x^uEhINZyvvj$i!*ia2JgF`{9?M2+V5~8A;i8OgPgNA@>|MR z6}EPUI@n9q4?V*0&%(Le+S;KYrqH@U;7<7l1R1zb9H(fTOQ!m!kVE25(<0L@p^RA0 z!H|ZJ_UhJsrt*WEmH-BWUTV;tZa1HaLpJb;vr);*SgSfMYvt6z-5s9uD*jZ=&aq`u zuIVWHpHh;D3r!HEkPAZ(qNtG=Uk=%Iwg`?l%BJnWxYmdem7J zKeMSk<0{Yr=LCPRZeBh-U-OZ#iuX zEk0b@DpwP?UM#4Px;b>5C4n)i%lzIArB>Tv&7b#3n&|6sL6O zNye&W+ebRC8y+xSLH!VGw9mIT>?wZXZ6&OKx=tOZ3Hu!P@az-BMbEl_SFiYz!eU_P z0Xb9TM9w;t0Oyf5?)D$Wp$~RfoS0>1M{rm5d2S*o-;1>=f9*%yzU)P>InVu=KcO<+ z>OFL5$P5MVm1$*Zl(u-O@WAW-UV-e31@p4E%3q}~N9x!Wm{9^#J6LY+ zITzhmBO$1Ta(n4ZC%xjm9?;3Gsml2V%wkBX{&`jMt6TlKz@kd_ZrPQM?l3PrKQ|aIOEZot=p5B^TIyGB_fFmrv~nmf zxo>+U@LWPND|&NS`pz*n_7{6e*EK3L7xo(WF(}CPC=SI~8U1Vrmdqr_shY}*`An8Rp%k6h=BZkO*6cq-JO4N~M7NY13G}ro?7QR3vd0^iZ*O($9we&C;F+I4@wNJ~or5zBQDi&dbibYUA>)u=9n38K(2P?yu-CaJ1xDiJT6pA3F(#w@7gQ`R8| zQ=eekcpCxWV@#K3;JEY$I?jvbwAN=OIAj1SBEF_F*)cF!kDtX_mPA7cEElVCYTv_stl8Yj&^uQyPr&?|46<&YY@P0~<2H zPW3H?AW;L5N5IiQ#6H&vR#qc(@i2|%$KmVmEc17A5OZZ%+%vLmzqCS_FA}iyivv zOhCaUEZpzrx}?q|e4>v0kk9%aLN$*Yb{Qv+XOn5wxKxm(p#yBZlmw-7N{zuI>;m+mn#kd?-nt&t$aC7 z7U2>xvNE^)9R$gaP}5?n&ueR)zJp+>&N%f1o% +#include + +#define WIDTH 550 +#define HEIGHT 400 +#define CAT_PHOTO_FILE "cat.jpg" + +SDL_Texture *photo; + +void drawBackground(SDL_Renderer *renderer) { + SDL_SetRenderDrawColor(renderer, 255, 255, 255, 255); + SDL_Rect rect = {0, 0, WIDTH, HEIGHT}; + SDL_RenderFillRect(renderer, &rect); +} + +void drawScreen(struct SDL_Renderer *renderer) { + if (photo != NULL) { + SDL_Rect dr = {0, 0, 300, 300}; + SDL_RenderCopy(renderer, photo, NULL, &dr); + } +} + +void draw(SDL_Renderer *renderer) { + drawBackground(renderer); + drawScreen(renderer); +} + +int main() { + SDL_Window *win; + SDL_Renderer *renderer; + if (SDL_Init(SDL_INIT_VIDEO)) { + SDL_Log("Unable to init SLD: %s", SDL_GetError()); + return 1; + } + win = SDL_CreateWindow( + "Hello World", + SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, + WIDTH, HEIGHT, + SDL_WINDOW_OPENGL + ); + if (win == NULL) { + SDL_Log("Unable to create window: %s", SDL_GetError()); + return 1; + } + + renderer = SDL_CreateRenderer(win, -1, SDL_RENDERER_ACCELERATED); + if (renderer == NULL) { + SDL_Log("Can not create renderer: %s", SDL_GetError()); + return 1; + } + + photo = IMG_LoadTexture(renderer, CAT_PHOTO_FILE); + if (photo == NULL) { + SDL_Log("Can not load %s", CAT_PHOTO_FILE); + } + + while (1) { + SDL_RenderClear(renderer); + draw(renderer); + SDL_RenderPresent(renderer); + + SDL_Event event; + if (SDL_PollEvent(&event)) { + if (event.type == SDL_QUIT) { + break; + } + } + } + + if (photo != NULL) { + SDL_DestroyTexture(photo); + } + SDL_DestroyRenderer(renderer); + SDL_DestroyWindow(win); + SDL_Quit(); + return 0; +}