ࡱ>   @ \bjbj00 2RbRb6DDDD6 :"!"!"!"!$$$5555555$7R : 6])$$)) 6"!"!f6J.J.J.)n"!"!5J.)5J.J.}11"! (bD+1g3||6061:-j:11":1$u%J.%lg&#$$$ 6 6dD@. DMulti-resolutionTexture Synthesis on Cell/B.E Tong Wei, Deng Shien, Pan Gang, Che Ming, Zhang Jiawan, Yu Ce School of Computer Science and Technology, Tianjin University  HYPERLINK "mailto:Toonnw@gmail.com" Toonnw@gmail.com,  HYPERLINK "mailto:yuce@tju.edu.cn" yuce@tju.edu.cn Introduction Texture synthesis algorithm based on samples uses a smaller size of texture sample to synthesize large size of texture graphics. It can be used to resolve the problems include slot, distort and deformation that appear in the traditional texture synthesis algorithm such as texture mapping, process texture synthesis. This algorithm has wide application potential in mass scenes production, realistic graphics drawing, computer animation and synthesis of games background. In addition, texture synthesis algorithm based on samples can be used to repair and fill the texture graphics which have defects and loopholes, compress the mass texture graphics to samples, generate special effects texture-such as graded texture based on different texture samples, and texture synthesis of the three-dimensional surface. To synthesize a pixel, the algorithm of texture synthesis based on pixel searches every pixel of the sample image. So there is tremendous calculation and frequent memory access. In the code, we use double buffering to make the computation and data transfer run concurrently. The output picture has been divided into 8 blocks, each SPE  HYPERLINK "http://cb.kingsoft.com/?s=deal%20with" deal with one block independently. So the synthesized picture is not smooth at the boundary of two adjoining blocks. To solve this, we refer to the minimum error boundary, which is a concept of synthesis based on block [1]. Algorithm of Multi-resolutionTexture Synthesis The process of the serial texture synthesis algorithm: Get input texture sample image Iin and a white random noise Iout; Get point P0(x, y)s L-neighborhood N0(x, y) in a raster scan ordering from output image Iout; Find a pixel P1(x, y) from the input sample image ,whose L-neighborhood is most liked the L-neighborhood N0(x, y); Set P1(x, y) to P0(x, y) ; Repeat upper steps until Iout complete; The multi-resolution synthesis algorithm proceeds as follows. Two Gaussian pyramids, Gin and Gout, are first built from Iin and Iout, respectively. The algorithm then transforms Gout from lower to higher resolutions, such that each higher resolution level is constructed from the already synthesized lower resolution levels. This is similar to the sequence in which a picture is painted: long and thick strokes are placed first, and details are then added. Within each output pyramid level Gout (L), the pixels are synthesized in a way similar to the single resolution case where the pixels are assigned in a raster scan ordering. The only modification is that for the multi-resolution case, each neighborhood N(p) contains pixels in the current resolution as well as those in the lower resolutions. The similarity between two multi-resolution neighborhoods is measured by computing the sum of the squared distance of all pixels within them. These lower resolution pixels constrain the synthesis process so that the added high frequency details will be consistent with the already synthesized low frequency structures. Parallelized algorithm for Cell/B.E (1) Vector of color: The color of every pixel is 24 bit, the first byte is red, the second is green, and the last is blue. But in Cell one vector contains 128-bit, so we add one byte for every pixel. All bits of the additional byte are 0. Now every pixel consists of four bytes, and there are four pixels in one vector, as showed in figure 1.  Figure 1: Color vector of every pixel (2)PPE program: The process of program:  Read the sample picture; Initiate the output picture, the color of every pixel is random; Create the input and output multi-layer pyramid Create transfer block ctx, which contains the information for transfer between SPE and PPE; Create the spe thread; for(the layers of output pyramid) { Wait for the signal that all SPEs finished the current layer image; Send signal to all SPEs to start the synthesis of next layers ;} Wait for all SPEs finished the last layer; Synthesize the overlap area of every two blocks; Write the output picture to disk; End.  Firstly, PPE reads sample picture, creates the input multi-layer image pyramid. Secondly, PPE initiates the output picture (the color of every pixel is initiated randomly), and create the output pyramid. Thirdly, PPE creates 8 SPEs to synthesize every layers of the output pyramid parallel. The image of every layer in the output pyramid has been divided into 8 blocks, which are distributed to the 8 SPEs (figure 2). Every SPE synthesizes a part of the image, so PPE uses mbox to synchronize the 8 SPEs. When SPE finished its block, it sends a signal to PPE through mbox. When PPE receive all SPEs signals, it sends signal to SPEs to start the next layer synthesis. After SPEs finished the last layer image, PPE synthesizes the overlap area between every two adjoining blocks. Finally, PPE writes the output picture to disk.  Figure 2: The block of output picture for each SPE. Because every SPE synthesizes the block independently, there will be some gaps at the boundary area between two adjoining blocks. To resolve this, we refer to the minimum error boundary in image quilting algorithm [1]. First, every block SPE synthesizes two more blocks at the boundary to the adjoining blocks. Then PPE calculates a new boundary on the overlap area. If two pixels from the overlap areas of block B1 and B2 are at the same position of the minimum error path, the difference between them is the least. Finally, the overlap area which is at the B1 side of the minimum error path will be filled by block B1, and the other side of the minimum error path will be filled with the pixels from B2 (Figure 3).  Figure 3: adjoining blocks boundary area synthesis. (3) SPE program: The process of program:  Read the transfer block ctx from main storage; According to the data in the ctx, read the input and output pyramids which only contain the points of the images, not the data of colors of pixels; Calculate the start position and the size of the block which belongs to this SPE; Transfer the address of numLevels-1 layer image of output pyramid to output pyramid loop queue; L= numLevels-1; //L means the layer number, No. numLevels-1 layer is the smallest //image layer in the pyramid while(L is not 0 )//double buffering { Transfer the address of L-1 layer image of input pyramid to input pyramid loop queue; Transfer the address of L-1 layer image of output pyramid to output pyramid loop queue; Wait for the L layer transfer finish row=0; //row means the row of the pixels Transfer the No.0 row pixel of L layer in output pyramid to output pyramid loop queue(oCB); while (No. row row is not the last row of the image)//double buffering { Transfer the No.row+1 row pixel of L layer in output pyramid to output pyramid loop queue(oCB); Wait for transfer of the No. row row pixels finish; foreach( pixel"the pixels in the No.  row row) oCB(pixel)=FindBestMatch(oCB,L,pixel);//search the best march pixel in //the input pyramid; Transfer the row of best march pixels back to main storage } Synthesize the last row pixels; Send finish signal to PPE; L=L-1; } Synthesize the last layer of output pyramid; Return  The process of function FindBestMatch(oCB,L,pixel) is  row=0; // row means the row of the pixels NX=BuildNeighborHood(oCB,pixel); //to built the L-Neighborhood NBest=NULL; Load the No.0 row pixels of L layer in the input pyramid to input pyramid loop queue(iCB); while(row is not the last row of the image ) { Load the No.row+1 row pixels to input pyramid loop queue(iCB); wait for the transfer of the No. row row pixels finish; foreach( p"the No.  row row) { NZ=BuildNeighborHood(iCB,p);//to built the L-Neighborhood if(Match(NZ,NX)<Match(NBest,NX)) { NBest=NZ; Color=GetColor(p); } } } Synthesize the last row pixels; return Color;  In the SPE code, we use double buffering. In serial algorithm, to synthesize one pixel needs to search all the pixels of the input pyramid, and calculate the distance of two pixels. The data of pictures colors is tremendous, but the SPEs local storage is only 256 KB. SPE has to firstly transfer a part of the image by DMA, calculate it, and transfer the result back to the main storage. So we use double buffering in the code, let SPE calculates a part of the image, at the same time, MFC is transferring the next part. SPE firstly transfer the element of ctx--transfer block, according to the second parameter of the main function. Then SPE transfer the input and output pyramids which only contains the width, height and address of the image of every layer in the pyramid according to the ctx. The next step, SPE calculates the start position and size of the block to be synthesized of every layer image in the output pyramid. When the data is ready, from the top of the output pyramid (small picture to large one) SPE synthesizes image in every layer with double buffering and loop queue. Results and Performance Analysis (1) The speed contrast between serial and parallel Time (microseconds) Image SizeParallel without block edges smoothed (A)Parallel with block edges smoothed (B)Serial on x86 (C)Serial on PPE (D)*Serial with one SPE (E)128*128113,790,825164,216,5752,658,539,6123,711,235,764908,969,929144*144144,040,022200,724,4683,249,120,9154,841,895,6751,150,856,609160*160177,791,017241,013,8933,983,156,4755,496,580,2921,421,306,305176*176215,201,065284,627,8334,848,789,2566,572,517,9131,720,285,671192*192256,036,229332,016,9725,720,681,9722,047,720,120208*208300,508,022382,727,1636,690,790,6062,403,738,278224*224348,428,683437,211,1897,760,963,5852,788,222,763240*240400,156,322495,108,8478,870,850,7123,201,627,169256*256455,155,449556,749,03610,065,607,2323,571,553,194*When the image size exceeds 192*192, the running time of D is too long to time. Table 1: Running time of programs.  Chart 1: Curve of the running time. The time data of A, B, D and E measures from one node of the Cell BladeCenter QS20, the time of C measures from PC with 2.4GHz processor. In the data table and chart, parallel program is almost 30 times as the serial program, and the program using one SPE is 4 times as the serial program. There are two reasons for the phenomenon. Firstly, the serial programs whether x86 or PPE, do not use the vector. Because of the vector, PPE and SPE can process four pixels at one time. So the speed of serial program which uses one SPE is 3 times more then program on X86 or on PPE. Secondly, there are 8 SPEs are synthesizing the image parallel in the parallel program. So the speed of parallel program is almost 30 times more then the serial programs without vector, and nearly 8 times as the speed of the program using one SPE. The data B is more then A, because the program of B synthesizes some more overlap blocks, and at last the PPE has to synthesizes them. (2) The synthesized image contrast between serial and parallel.   Serial Parallel Figure 4: The serial and parallel results. The parallel algorithm on Cell is Suitable for the random sample, because it based on pixel not block. If the sample is more random, the picture been synthesized by parallel program almost is the same as serial. Because every SPE synthesizes a part of the image independently, there are some gaps at the area around the boundaries between two adjoining blocks. So we use a method in the Image Quilting algorithm to solve this [1]. (3) The images which have been smoothed the area of the boundary between two adjoining blocks and the images which are not. Sample Smoothed Without smoothed                   (a) (b) (c) Figure 5: The parallel results with block edges smoothed and without smoothed. (a) Original picture, (b) Synthesized picture with block edges smoothed, (c) Synthesized picture without smoothed. The modified code can improve the synthesis of the texture, but there are still a few gaps in the picture. So next step we want to improve the code to make the picture smoother. References [1] Alexei A. Efros and William T. Freeman. Image Quilting for Texture Synthesis and Transfer. In Proceedings of ACM SIGGRAPH 2001, 341-346. 2001. [2] IBM. Cell Broadband Engine Programming Tutorial. June 15, 2006 [3] IBM. C/C++ Language Extensions for Cell Broadband Engine Architecture, March 8, 2007 [4] IBM. Cell Broadband Engine Programming Handbook, April 19, 2006 [5] Alexei Efros and Thomas Leung. Texture synthesis by non-parametric sampling. In: International Conference on Computer Vision, 1999-09. Volume 2, 10331041 [6] Li-Yi Wei, Marc Levoy. Fast texture synthesis using tree-structured vector quantization. In: Proceedings of SIGGRAPH 2000, 2000. 479-488 [7] Michael Ashikhmin. Synthesizing natural textures. In: 2001 ACM Symposium on Interactive 3D Graphics, 2001. 217~216 [8] *+,-./MYgl    Ǿеwgw` h)aJo(jhdhD]UaJhdhD]0JaJo(hdhD]0JaJjhdhD]UaJ hD]aJo( hD]aJjhD]UaJh~6aJo(hK36aJo(hD]6aJo(huh~6aJo( h3CJ(o( h$x7$8$H$VD9WD^x`a$gd:8$ 7$8$H$WD` a$gd:8$7$8$H$`a$gd3wr $7$8$H$a$gd()agd3wr & Fgd3wr$a$gd^a\  + , - } ~ $ O V W X Y o p q ľʩě㋀wneYeYeYehW&hW&CJaJo(hW&CJaJo(h1CJaJo(h3wrCJaJo(h7,hrCJaJh7,hraJ h%[aJo( h3wraJo( hl(RaJo( hl(RaJh7,h%[B*KHaJph h%[aJ h3wraJh7,h3wrB*KHaJphh7,h3wraJo(h7,h3wraJhACJaJo(h~hD]aJo( & / 2 ^ j l p Semnrsz{ѵѬwngagagXgh'h()aaJ h()aaJ h()aaJo(h1CJaJo(h+CJaJo(h()aCJaJo(h-#Bh-#BCJaJjh-#Bh-#BCJUaJh-#BCJaJo(hVCJaJo(h`%h`%CJaJh`%CJaJo(h`%CJaJhV"CJaJo(hW&hW&CJaJo(haCJaJo(hW&CJaJo(hW&CJaJ" $%&'(+,@HJKVWdehjĸĬ|pbSbpbpbSbhc h3wr6H*KHaJo(hc h3wr6KHaJo(hc h3wr6KHaJhc h:86aJhc h3wr6aJo( h3wraJo(h7,h3wraJo(h7,h3wraJh Ah3wrCJaJo(hrPhrPCJaJo(hrPhrPCJaJhmICJaJo(hvmCJaJo(h7,h%[CJaJo(h()aCJaJo(h1CJaJo(jmuv|}56?BDEGHKLRSZ[]cwz峨h.T-h3wrH*KHaJo(h.T-h3wrKH^JaJo(h.T-h3wrKHaJo(h.T-h3wrKHaJh3wrCJKHo(hc h3wr6H*KHaJhc h3wr6KHaJhc h3wr6H*KHaJo(hc h3wr6KHaJo(hc h:86KHaJ2>\ `acB WD`gd3wr $7$8$H$a$gd3wr$a$gd3wrgd3wr & Fgd3wr 7$8$H$gd3wr$x,7$8$H$^x`,a$gd3wr 89<=JKUVpqtx"#()./LMNPQcd-.qrͿͿ͵͜hZCJaJo(h7,h3wrCJKHo(h.T-hUKH^JaJhUKH^JaJh.T-h3wrKH^JaJo(h.T-h3wrKHaJh.T-h3wrKH^JaJh.T-h3wrH*KHaJo(h.T-h3wrKHaJo(:  8Wbl39G]_`abckmnзǰТЕ~pepWh7,h3wrCJKHaJo(h}CJKHaJo(h7,h3wrCJKHaJo(h7,h3wrCJKHaJhirh3wraJo(jhirh?y#$%,-./0WXYZ[z h3wraJo(hCJaJo(h7,h3wrCJaJo(hirCJaJo(h%[CJaJo(h7,h3wrCJaJh+:h3wraJo(jy2h+:h+:UaJ hIaJo( h:8aJo( h|h$aJo( h%[aJo( h'B'D'F'f'''''((((5(9(:(;(y(((((((((((((()))+)* *(*:*B*******6+f++++++,,,,,кбЪ h3wraJo( h6aJhU6aJo(h'hU6aJh'h3wr6aJo(h'h3wr6aJ$jh7,h3wrUaJmHnHuh7,h3wraJo(h7,h3wraJ=+++++,,..P0q0000000$Ifgd+l0$IfWD`gd.l0$Ifgd3wrl0 VD^gd3wr & Fgd3wrgd3wr WD`gd3wr WD`gd3wr,,6,?,,,,,,,,,,,,,,,-Z-b-----...3.4.7.8.b.k.w.... /!/$/%/'/(//0P0\0h0i0p0q00000Ľ˝ hz1CJo(hFh3wraJo( h3wro(hBECJaJo(hSCJaJo(hr6CCJaJo( h9aJo( haJo( h3wraJo( hraJ hMOaJ hMOaJo(h7,h3wraJh7,h3wraJo( h3qaJo(700000000000000000 111 1,1-12131C1D1E1F1_111111111 333343333334Ľڳڮhhh+:CJaJo(hhhCJaJo( hK3h3wrh3wrCJOJQJ^J h3wro(hK3hCJo( hyCJo( hVCJo(hK3h3wrCJ h+CJhK3h3wrCJo( h.CJo( hz1CJo( hz1CJ h+CJo(/01.121@1E1_1 $Ifgd3wrl0$Ifgd3wrl0_1`1h1*$$Ifa$gd.l0kd1$$IfTlֈ|$ !T t0$44 l / aTh1t11111$$Ifa$gd3wrl0$G$IfUD"]Ga$gdRSl0$$IfWDL`a$gdRSl0$$Ifa$gd.l01116 $$Ifa$gd.l0kd$$IfTlֈ|$ !T t0$44 laT111111$G$IfUD"]Ga$gdRSl0$$Ifa$gd3wrl01116 $$Ifa$gd.l0kd$$IfTlֈ|$ !T t0$44 laT122"202>2$G$IfUD"]Ga$gdRSl0$$Ifa$gd3wrl0>2?2G26 $$Ifa$gd.l0kdF$$IfTlֈ|$ !T t0$44 laTG2S2_2m2{22$G$IfUD"]Ga$gdRSl0$$Ifa$gd3wrl02226 $$Ifa$gd.l0kd$$IfTlֈ|$ !T t0$44 laT222222$G$IfUD"]Ga$gdRSl0$$Ifa$gd3wrl02226 $$Ifa$gd.lkd$$IfTlֈ|$ !T t0$44 laT222223$G$IfUD"]Ga$gdRSl$$Ifa$gd3wrl3336 $$Ifa$gd.lkd)$$IfTlֈ|$ !T t0$44 laT33&34353C3$G$IfUD"]Ga$gdRSl$$Ifa$gd3wrlC3D3L36 $$Ifa$gd.lkd$$IfTlֈ|$ !T t0$44 laTL3X3d3r3s33$G$IfUD"]Ga$gdRSl$$Ifa$gd3wrl3336 $$Ifa$gd.lkdw$$IfTlֈ|$ !T t0$44 laT333333$G$IfUD"]Ga$gdRSl$$Ifa$gd3wrl3345464846....$a$gdhkd$$IfTlֈ|$ !T t0$44 laT4444445464748494@4A4B4F4M4[4\4]444444455555555Ƚ钇{vqjqeq`q\qWPq\q h>h3wr h"o(h3wr ho( hT=o( hh3wr h3wro( hOo(hhhOCJaJo(hhh}S|CJaJhhh}S|CJaJo(hhhz1CJaJo(hhhz1CJaJhho(jhhUhhhCJaJo(h+:CJaJo(hhhCJaJo(hhh+:CJaJo(hhh+:CJaJ84\4]44488^8d8{888X:Y::: ;;;(;2;<;F;$a$gdT=VDWDd^`gdT= ^`gdT=$a$gdOgd3wrgd$a$gdh555555667788!8"8\8]8^8_8b8c8d8e8k8{8|8888888888U9\9y9{99999::#:*:+:~yuh) h)o( hv0o( hhsh3wrhHh3wro( hHh3wr hho( hYo(h%[CJaJo(hCJaJo(h7,h%[CJaJ hOh3wrhOh3wro(j9ChOhOUjhOhOU ho(h9h3wro( hiro( h3wro(h3wr.+:9:::;:D:E:R:V:X:Y:x:~:::::::; ; ; ;;;;;;;;;;;;;;";#;&;跰yncjhNShNSUjxh h UhOh3wro(jhOh UjvhNSh U h o(jh h UhNSh3wro(j6;hNSh UjhOh UjKh h U h{bho( hAo(h3wr h o(h8hUoo( h)o( h3wro(h) h)h)%&;';(;);,;-;0;1;2;3;6;7;:;;;<;=;@;A;D;E;F;a;b;c;;;ܰܥ܏܄|wodXJhAh8CJKHaJo(hAhCJaJo(hAh%[CJaJh@hVo( hVo(hNSh3wro(jhNShNSUjhOhNSUjFh h Uj'hOhOUjihNShNSUjh h Uj}!hOhOUjhNShNSU h3wro(jh h UhOh3wro(j hOhOUF;b;$<%<<<u==>U>>??\ $7$8$H$a$gdWe $7$8$H$a$gd[ & Fgd'  WD` gdT= $7$8$H$a$gdAgdV;;;;;;;; <<#<$<%<&<;<B<<<<<<<<< =A=n=o=t=u=~=½½½xmbWh[CJKHaJo(h'CJKHaJo(h`CJKHaJo(h`h`CJKHaJhWjeCJKHaJo(hWjehWjeCJKHaJh'h'CJKHaJh'h'aJo(h'CJaJo( h3wro(h3wr h%[o(hAhCJaJo(hAh8CJKHaJo(hAhCJKHaJo(hAhCJKHaJ~=========>>>>/>0><>D>F>T>U>V>W>X>Y>>>>>????????K34yzøøøøøxxxhWehWeCJKHaJo(#h*vhWeCJKHaJmH o(sH  h*vhWeCJKHaJmH sH UhWehWeCJKHaJhWeCJKHaJo(hWeCJKHaJhOah[CJKHaJo(hOah[CJKHaJh[CJKHaJo(h[h[CJKHaJ/Vivek Kwatra, Irfan E A. Texture Optimization for Example-based Synthesis. In: ACM Transactions on Graphics, SIGGRAPH 2005, 2005-07. 24(3), 795-802 [9] J. S. De Bonet. Multiresolution sampling procedure for analysis and synthesis of texture images. In T. Whitted, editor, SIGGRAPH 97 Conference Proceedings, Annual Conference Series, pages 361368. ACM SIGGRAPH, AddisonWesley, Aug. 1997. [10] D. J. Heeger and J. R. Bergen. Pyramid-Based texture analysis/synthesis. In R. Cook, editor, SIGGRAPH 95 Conference Proceedings, Annual Conference Series, pages 229238. ACM SIGGRAPH, AddisonWesley, Aug. 1995. ե֥[\hWehOaCJKHaJo(hWeCJKHaJo(hWehWeCJKHaJhWehWeCJKHaJo( 0182P. A!"#$%S DyK Toonnw@gmail.comyK 0mailto:Toonnw@gmail.comDyK yuce@tju.edu.cnyK .mailto:yuce@tju.edu.cn0Ddh BC^  C :A"e^ Bitmap VP (2)R=09p ?ub(^0 F09p ?ub(^JFIF``C    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?(?kuuoƀF'7+;zEsgڣhQZuaXfXLG x'+Z ϱE5ɇhʹ|@Ec\Þբg>C"&Tf,3sšԞxmm常8` $Q@$ORմn5MBp%8'ƬA<7V\[J6 dGk?_H5h0ա/* N!CV?: Z "~̶i$ $r͎` =qhա/*N!CVj^u_'mW>V7m3U ?(Z?mxCTu?EV ׄ?jaG'^C_Uo@xCTu?EV`xC~xCTu?EUY,5-2KyFW9nci0`ܪ>0NqAauy4-tqg;A xCTu?EV ׄ?jaG'^C_Uo-W6ҀN!CV?: Z "~}ܞ]M4ϴ8zPG'^C_UxCU>M J73D6&J@ȥr6݊5h0fk^oVc-K9vF+J`w@QEu ZKMY,Vu1/@ZXyoI6:(񾅤|9hg_Emc6]Zeeqk2cc, m^BrJ˵<_@=2-l?ȴXPXۺ>9hѬHuWUEqZ<f,KFϚ0zߢ(((((((((((((((((((cZlX^TL6NwN\ߎDHzxBpJ 푟Q@"F&}|O6VXd0 庇*B%X EhX_[zueI4/8<:=o/5POXDq˄ +NFdu_6_ٷT72jF8ȉj#+ s8 @QUb亙'x@9@X8Ҽ"MO{Akz#F<-AH aZ?KâE,J+4%v )9ޜ:ӥ́$H"6\n,۔q$2qFYjhiH^i-Ps"m8`%Xq{8|*ܚzŧLImPo ,p0sToLqWI 6b.>ӂKyXdeC0@hr{R<ǸāɌnGKQNjmm4)74;a) P$7$(.C~leM0<{+ka<qsvug% YUO-s=j9k.^D*٥\i8ˮٕFCcjM}楨Z uAk*8d}7ʲ6 .dh=ߛ/GO-s=c:kBZ!fM69?P֙t_3H]BKBvD0мi}G8#ڟZzl5GDKַy -+tj9j;/xiw=jLx`^ol% d"<>v'aW+?r?͗#C~lj24zأP64/:G rv9#g6㻇\VncH灆 v2 T{S\6_G#ڟZzD 9jQF`f <ʸݱpc' 7tkyt"y)"=/ 27o^(#ڟZz˞Y6ZX.,n{F*bVՖVd⹶E8m*ӆU9/?h Ѷ=ߛ/GO-s=o?/n4kyw6|BA8<:j9k{S\6_Ul?iך}(,r[2+s?m\tC~lNkSK"YGVˍz޺:*FQ@SԴ7Y[}SO\:u ʡF@`FpHϹP{ =NK;H.dgHʞqkAKKDSOh"vL`y#J(> G(t㺉`D@%Wb>e x~a4}-'^H=+RˏZ :\\Z&|Ͼ[EAcIhZ>dV6v<ϲ[[ghO_SZP{ =2;; H--c`FIŽI'_隇ശU}O 6w e$OE`u?EV=\Yv?mg 20S]\as@EPĺQiqE>d &T;ʀ F|7$FUeNp+I%wgc˃vP9<mo hLnY>{=,9ծĺ8$I [Y[$RGmֻ(wC/L+_iN迴>/>ogguO-V^+99d"3#O%ҷygv#n;o> .3;gwϝ}k8?GW$?dW6D۷o}|gi ^%!ԝe_\.[ne=뻢8xÚ-l2}j<3i?jxH'J۟`.0N %׌,9nĺ94y[U[Rb}һ(ա/*~ ĺJ$KY]Hq3M׼5xN!.H] jr2,vfڸ5h0(ա/*Zx[ [MFeCyg#8 WWEQEQEQEQEQEQYe?DLI|Y1ڀ4(Lt?E{ƨL]sWj7Lt?E{ƨL]sWj7Lt?E{ƪ1b /7*!IV@%XiL]sWjLt?E{ƨ~L]sWjLt?E{ƨ~L]sWj4/K3[Dil/;U`OjLt?E{ƨL]sWj7Lt?E{ƨL]sWj7Lt?E{ƪ3nݢ/72VHpL]sWjLt?E{ƨ~L]sWjLt?E{ƨ~L]sWj~ {_,$wVs[W,") a5(+յb6N}[-x՗ T 03WêxEUXSO{6*4X")>Rݗ#%riV/dPk+ҠXxYY0 W;I(y.-u iOHnw2*e I?xnuL].F֮nwq$v"6؏*Ձ l,c掶SeŬp[\3ܘ?6TYT#A+Ӿx=K2麮-'b]#E9h -Sm<<+M6h[OOyeXcRYa(ABv@YV^q3CjF 9Kr6c+99,}yfxrCѱFr zvZ,5Ea%W4{p%F>?2hz+to'h߹FRH {-3no@:'aW+߬o" ˹&eqsouiOj#RT%=EjW)y7 &۫Ky[Q0~CHTX8 {hZ}[Avf\$QRk:z1=HA+Ywt'h #sw6oi:6?#yI h\Hq[7!;+ ).Q4tmd$$blvc;koRX𶑪\*,PH3bI85RJ`wRx6Z%Eo,.2(Br29Fpr*;?(Z?mIxG. .763*;F rI޼|5|w:)Imq4ǝ,v URHc) p53:yOBTzn$[Bym(L#{R*KM7Ik-<y{&K5c{rű;m2DBB!߄*EuYwwxaӕahH _) | -#fmOqG9ԘȑuV@b#=3(MZEl҆EUrq vdgGg#XA##cFrX3'X: WO&01YYV&m !A;.1fA&}icug [(%%WKp6Qn{mZׇW~kϕvnp38^yeloxz6nގkŔ,Me( ;U8>K /UM2\g4msW..CMˑw:u# XPo_J6a}ڿfȼ㱏xݝQ+r6i y% FU jPV w2G" ,̫@ d5#͚[` 㕕IB2@ r$I.,/RDXtrH%UH(xmJуxQ ᳸\'|%Xnm+J`w[g% YU ( ( ( ( ( ״M/`7(ۙ*II{V?sC4G_AUo@c4?KT}M/%V?sC4TмSs.ۺ]ciHIs+g  >h&~9_J~/i*  䪧yxO^\ొH=6njrҺ(~/i* ߢ0>h&9_J(~/i*ɡx]fTm{GES7\_G$: ߢ?!M?$Q Bn"7Hu?ue%cMGN[y.#k6E`<\Wn(*lsepKZ!pFܕ3#iXwV5u(:}żӰteSa%G,>5t] Yu]T.M7 }nQu]yba 5jJIuDVK~E?6b`+?ŖZƣcmmX˶ Ǔ4rc|FN1S񖁩xGgxT,*l@LD1\`ʀh/w 2[$V3 \D_g+̼˚z,VCk,Ie($єY[ 0)Եѵ cFZ[W1-#F|v#ҝ$?7Iz֝:fw Ԑ3Cp@6*Xnj֯icbzDy]AEq]^+W/-/K4iI4"0:'ҬkzjvגZgWiqh|؀b #)#:{'Mܳ7wMnX%rB$(Eu[WNk~[bz+, 3l hG[{I.!ic=yN21@p: >&[b-m&]HW*W,xWC-ahzכk#yr*LpF\sRӮ"?YAa:7;F$-W6ҧyxOI/;g0H]b U<1q2`*FPo?Ub~J˷)c~ʮ9#o9GkK'Y5|F-,+|cwXr'/u;+5IL ,m Ŏp.كmQjwo.lmL2,lD2!X1o1OzL|Mn)&4'Uݾ]`a$W[E]ʹ܏-buG8HLTk9;N(n-G.mDe*]pJ!3  6%K7V`I_+G$2ɆdCnju{6Øy{)EFCF۸\ kmn>LY,a-F8k`ew#` $ԇbfS:,vѲgg%7YPUv.AQV+E\.{IF 37O#uI[[tPҔ(ʱn_!Nӌܽ{k cdsbCX+kV]]dF++*D͵]('v3}H4o,n=!keĻJnz!;op S>Ombnٽmqg+,FmѻMyb%xL3Aw*'SVG5?Ia궐K据bw0r.Qdӫ?_H?MjO/"O=vvBDw`).7? ]PGO•eKr08"@"}~dp]˞ *FV`^Bѿm(~(((((%54Iq=b&nxYu( G?e=ߛ/G(O-s=j9k~{S\6_U7rj߷s RCv|#,1|rcOOE`=ߛ/GO-s=o@j9k{S\6_[P#ڟZzyB䑬f0ȇ~̪}@j9k{S\6_[P#ڟZz?r?͗#C~lxF{IvZJfvcchߟs G?e=ߛ/G(O-s=j9k~{S\6_RXxvK]f=R[uⷒ5XQddf#ˉ 9z޶((((((((총.@ I4{#_ad$_U氳 .my<`[kW#6u'tYDζCX\I:ڸYj7W7O4SǨqiG=ӈ*v'l+8f++k]N{T)o$V Ą eA.ājM3B4_7+J}"ߌ;@23@QEQEQEQEQEQEQEQEQEپDd z Z  C 6Ae^ Bitmap VP (R$ 5Ň#' FJ~<2 F$ 5Ň#' FJ~<JFIF``ExifII*C    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ? SSZ`GDO+w*Ė`0YQ[WNk7}u^?1\1\7}u^(7}u^?1\1\7}u^(7}u^?1\1\7}u^(7}u^?1\1\7}u^(7}u^?1\1\:na\[gDy#݂` I 5\-gV6: (9ºw]s0%t- (((+7Zɟ+>\cn_3f]wqҪkX@^& Hd! Ҁ8[r4kkSO֩obq&ނ=o 0$x(I.W ͆%GZC @NeS<ݏ}w 'zBIf+2!JF6v>/xzMuK.ӧXۣadԚ4Cyp}R`xd ԒAsO'=߬ KY Hf!x|p:(ƝQEQEQEBan렮~J`w@Q@ύ[n$Ԭ9yᔂGj7~)[:\iв_ Yo3?+$ Ep^JΉ%e!RX b]'*d뉁 KEPEPEP\-gV6 k? ѷtQE@ӿ+\u-&]KOI#C+A8K/?U_@ t?/?U_@ t?/?U_@ t?/?U_@ t?/?U_@ t?/?U_@ t?/?U_@ t?/?U_@ t?/?U_@ t?/?U_@sPXۺ?  j?5}2l]bRm QE@ӿ+-+l5PEPEPEPY֥O|"2{FQw0];#\fڡ1ZuCTţoV:2$>r8,22A^#vAP+MSLӴHmn]ɭِ椢_'^@.2 ^Q }Eszb_0dE!`_(simI.[Pkd7gV%t r_29nLa!,̢'ӼQ"i ɅgJp$8u}{TEbEX4nz.N2A<'yk+k4I+,e̅b* PEPEPEP\-gV6 k? ѷtQEL`8:#y}F{dgTd4?KTx@ӿ('9_J/i* ('9_J/i* ('9_J/i* ('9_J/i* iYw}ux4r@c ~4OsC4G<_AUJ+x2-d͖(6 0+pGZ:Zibl&=FЬNz`EOsC4G<_AU]5#Z2ej7V<ϲ$3gi8kN9x >h&9x >h&9x >h&9x 䪡ǩCiu+[lJ@|۾ IyqBan(-+l5W3Z/,p<,q ^C =H!M?$P Bn"Hu?ueE`CЛ/HOsYEoX&(S7\_@x[kg]Q$KuZ-ː(K'(2 ?!M?$Q Bn"9i,_]ִ[;;.,5-7 ,ќH̍ܲ)` ?5K](n^+XHk(c7 4aRX aYv&(S7\_@xjdo4H7:f2blvr]/MX&(S7\_@V$: ?!M?$P Bn"Hu?ueE`CЛ/HOsYEo?g% YUS7\_T4KˋkRiVmnZ&b<ۿynxTdA8`ah&[K[Ϸ|O\QNQѾV?{4'9_J/i* ('9_J/i* ('9_J/i* ('9_Jz>9֗R6ī[4 ͻHq_\-gV6: (9ºw]s1?yBgX!i_b]DB(,pOM]sWj: +M]sWjLt?E{ƨLt?E{ƨM]sWj: +M]sWjLt?E{ƨwĺ~+}/K-\o$RDG*90%HacϮ+5G&:o"TGM~0zjbO3p15 :İnۙ[4]K#ڡPHᛕ87}u^?1\ t S]߈P-,EACRэ;ucϮ+5G&:o"TQ\&:o"TcϮ+5@cϮ+5G&:o"TQ\&:o"TcϮ+5@sPXۺ?1\-ԼaAo}ipYMoK Iu((((((((((((((Dd\  C 8A e^ Bitmap VP (2RJd¼SIFc)&{Q Fd¼SIFc)JFIF``ExifII*C    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222f" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?_]\5 ڽޝKK#D XN?L/+}kgC_Zo;<|ri.ժB?e_PoxkVM\g>9~cSK}kgC_Zo;<|ri.ժB?e_PoxkVM\g>9~cSK}kgC_Zo;<|ri.ժB?e_PoxkVM\g>9~cSK}kgC_Zo;<|ri.ժB?e_PoxkVM\g>9~cSK}kgC_Zo;<|ri.ժB?e_PoxkVM\g>9~cSK}kgC_Zo;<|ri.ժB?e_PoxkVM\g>9~cSK}kgC_Zo;<|ri.ժB?e_PoxkVM\g>9~cSK}kgC_Zo;<|ri.ժB?e_PoxkVM\g>9~cSK}kgC_Zo;<|ri.ժB?e_PoxkVM\g>9~cSK}kgC_Zo;<|ri.ժB?e_PoxkVM\g>9~cSs-W+iR[VVXJh=?e_W0u :K<9gO]E-oOSӓр4!y/طxBL۟c_Lt^O_PZ\I -Ŭ;~vp.?G$u͵(4f>4𲈵Bc 1gX Q|7PѵA~V cY>hW,8?ޏ8:K:;+}WMB[lo)1~pOגw<h.-$͹qf?_uA{?©4?}|6>b{yz/lm(b|͏bגw<h.-$͹qf?_uAoyg߂]n&F%RVE~n 8ay?©4?}|6>m xOOoBOXw/u'7(7(7(7(7(7(7(7(7(7(7(7(7(7(7(7(7(7(7(7(7(7(7(7(7(7(7(7(7(7(7(7(7(7(7(7(7(7(7(7(.v3B&E*3ƮpǯZۮch0\˛oSֺz4?j!F2Z(\U܅˟5jOsƭWri.ժB?e_Q̹cV 4?j!F2Z(\U܅˟5jOsƭWri.ժB?e_Q̹cV 4?j!F2Z(\U܅˟5jOsƭWri.ժB?e_Q̹cV 4?j!F2Z(\U܅˟5jOsƭWri.ժB?e_Q̹cV 4?j!F2Z(\U܅˟5jOsƭWri.ժB?e_Q̹cV 4?j!\ke4?,K?udɼ>zNNOF?j!\ke4?,K?udɼ>zNNOFԵu49b{yz/lm(b|͏_|*^KCw?z?w8X3c׊|.t/_de[pJ+grXrz{?©4?}|6>m xOOoBOXw/u'7(7(7(7(7(7(7(7(7(7(7(7(7(7(7(7(7(7(7(7(7(7(7(7(7(7(7(7(7(7(7(7(7(7(7(7(7(7(7(7(ch0\˛oSֺz> ϙ_n1AOQ=kOsƭWri.ժB?e_Q̹cV 4?j!F2Z(\U܅˟5jOsƭWri.ժB?e_Q̹cV 4?j!F2Z(\U܅˟5jOsƭWri.ժB?e_Q̹cV 4?j!F2Z(\U܅˟5jOsƭWri.ժB?e_Q̹cV 4?j!F2Z(\U܅˟5jOsƭWri.ժB?e_Q̹cV 4?j!F2Z(\U܅˟5jOsƭWr6]CNYĺQfKlSTytnOsƭWr6]CNYĺQfKlSTyt` ٵH5=3O|iu]kR?u^+ǘ3cvI8n|exnZU0aw __+~#S ~hng['[nGl|:^%<] 淨_ ˰Ed*23pNӼZ{yz/lm(b|͏_|*^KCw?z?w8X3c,G+_ ޷O?'?©4?}|6>`{yz/lm(b|͏c^)4[P};em(|aqG+_ ޷O?'<5#K?>uu <cV?ܼ҇}_ }bsjیG.n;eSrx=OZ7<&'L>f~}rc[=G'8 ?e_Q̹cV 4?j!F2Z(\U܅˟5jOsƭWri.ժB ?e_Q̹cV 4?j!F2Z(\U܅˟5jOsƭWri.ժB ?e_Q̹cV 4?j!F2Z(\U܅˟5j4&4''tʤ]FOrzK#>_kmu}l3E|4?j!F2Z(Ӿh-(9KF~{++8 84i.ժB ?e_Q̹cV 4?j!F2Z(\U܅˟5jOsƭWri.ժB ?e_Q̹cV 4?j!F2Z(\U܅s PӠÖg.EY&n;8^]9=\U܅s PӠÖg.EY&n;8^]9=bkTB_[IV۾Q6}ft˫nYm5Q|nb('Am ?©4?}|6>f? #+Ðٙ'8X3Gh_ |޿HnGl|şbkTB_[IV۾Q5?kM|-fm xOOoBOXw/u'7(7(7(7(7(7(7(7(7(7(7(7(7(7(7+SMuvY4kʡ [3=e]Uݔ]Uݕ}M/%V=/4-/yKn 4_ }bsjیG.n;eSrx=OZ7<&'L>f~}rc[=G'8 ?e_Q̹cV 4?j!F2Z(\U܅˟5jOsƭWri.ժB ?e_Q̹cV 4?j!F2Z(\U܅˟5jOsƭWri.ժB ?e_Q̹cV 4?j!F2Z(w.+l՗xUrtbR?Hxu- ܡ3~nN sa]GKfhZfc:$fȝHMVI> pT ;Aw }įmŷFt$Vb@r7˟5jiZCIյv 5}©EAnk.ժB ?e_Q̹cV 4?j!F2Z(\U܅˟5jOsƭWri.ժB ?e_Q̹cV 4?j!F2Z(\U܅s PӠÖg.EY&n;8^]9=\U܅s PӠÖg.EY&n;8^]9=bkTB_[IV۾Q5;FWKl'aFu l·7 3ѝ͏埈bkTB_[IV۾Q5i|Z~ J֥rgq>(b|͏G23o_\I2311o!''Og=ؿZU<PV~նq>f́{gx u[OT8mQ>}?©4?}|6>`{yz/lm(b|͏c^)4[P};em(|aqG+_ ޷O?'<5#K?>uu <cV?ܼ҇}_OIVA {Rt0DU3!!FZ7+Sd/Va4{I- nZ(RfbscrqpxO4<5m@8GB̗"#`ayN o4_2(uo>Ҙnzm~ľuMjIto.Nv`G,b`b 7Slzfӯ4A$vHH7J@$ORO }bsjیG.n;eSrx=OZ7<&'L>f~}rc[=G'8 ?e_Q̹cV 4?j!F2Z(\U܅˟5jOsƭWri.ժB ?e_Q̹cV 4?j!F2Z(\U܅˟5jOsƭWri.ժB ?e_Q̹cV 4?j!F2Z(\U܅˟5jOsƭWri.ժB ?e_Q̹cV 4?j!F2Z(\U܅˟5jOsƭWri.ժB ?e_Q̹cV 4?j!F2Z(\U܅˟5jOsƭWri.ժB ?e_W0u :K<9gO]E-oOSӓѺ}?e_W0u :K<9gO]E-oOSӓр+o/VO/_%U퟽omOgIyu2lºf6d2<)!l_F{yz/lm(b|͏ UO ̿1@>5ņ93+۸񘶰{ # NcʼIx.-jɺ%.W<)߀8t5?©4?}|6>jo!4I|ao{{@ D[1܌[  G+_ ޷O?'<5#K?>uu <cV?ܼ҇}{yz/lm(b|͏c^)4[P};em(|a@5.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.7<&'L>f~}rc[=G'}bsjیG.n;eSrx=OZ\U܅˟5jOsƭWri.ժB ?e_Q̹cV 4?j!F2Z(\U܅˟5jOsƭWri.ժB ?e_Q̹cV 4?j!F2Z(\U܅˟5jOsƭWri.ժB ?e_Q̹cV 4?j!F2Z(\U܅˟5jOsƭWri.ժB ?e_Q̹cV 4?j!F2Z(\U܅˟5jOsƭWri.ժB ?e_Q̹cV 4?j!F2Z(\U܅s PӠÖg.EY&n;8^]9=\U܅s PӠÖg.EY&n;8^]9=T,_"b5yp$`BY:V6!\1T$olOC.m+E{!Ɉ.?>cݟbkTB_[IV۾Q0g=ؿZU<PV~նq>fBzV|+uscjS*-fH4?2U ' \7G+_ ޷O?'?©4?}|6>`{yz/lm(b|͏c^)4[P};em(|ayO xl4fYo/VO/_%U퟽omOf6 k {l,܅aZ%.NFŜ~n^)4[P};em(|aym ?NZmkR#DFԐ^pn6OZBh'f_2Rnd>ar 1o }bsjیG.n;eSrx=OZ7<&'L>f~}rc[=G'8 ?e_Q̹cV bkMwNH-5+F%4lC'|`/AGzơt9o;p??ty/'W\U܅˟5jCp}ot=BP:D7<~H|!8>ŷ:QqG"NdO{ ?j!F2Z*>b(P#Α'2Mn'=߅xm~Ǩ\jH&Gy}?e_Q̹cV ŷ:QqG"NdO{ ?j!F2Z*>b(P#Α'2Mn'=߅xm~Ǩ\jH&Gy}?e_Q̹cV ŷ:QqG"NdO{ ?j!\ke4?,K?udɼ>zNNOFGzơt9o;p??ty/'Cp}ot=BP:D7<~@8?©4?}|6>lgO;ZkCCwi ?d|@X-qFu}*]PW%32nOPɃ&>?b (P#Α'2Mn#=:rYxo/VO/_&U퟽mO~#S ~hng['[nGl|ݎmwJ-5% /&O0A(*>^f#[|Cy$I;rYo/VO/_%U퟽omON3_ uzg2CIVI 5sآLTxm~Ǩ\jH&Gy|!3MB9.eD㙧7',#aW7(7+CC·e[CIV :d`A?sC4@%QG%Q]_AUc4?KT]Uݔ]Uݕ}M/%Q?sC4@%QG%Q]_AUc4?KT]Uݔ]Uݕ}M/%Q?sC4@%QG%Q]_AUc4?KT]Uݔ]Uݕ}M/%Q?sC4@%QG%Q]_AUc4?KT]Uݔ]Uݕ}M/%Q?sC4@%QG%Q]_AUc4?KT_h0\˛oSֺz4t}')s;\Oq$cR|OJӠ(((((((((('mv[^wyi40rAyU4OJҤ2`] -APrb!NBM ++}:;[XB ,I$fcI$$I$@A6[Đ8*( ( (04xM-CPN`m@W&dv'QƥVE`с2FGoZO ռWJ6 dGhJ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (sƞ'šDwX% opacY+sR9\~!{>cnu )ݰg'  n ?tM}2M+q6 ݙ?T*1!5tOR-4Q%pIO$ WHPK/!}kꫤ$ {} ;*>$vڻ@ Ǘ3ǣ']:_Y̱Ng+( r:/MJ[HYyI-$fflWxkq$5Ė\Gtdfe{YxfPsW:$ڋ@xH1,:ƃ vg jQ\^-kObkYDGޭnr2FꚆ&o-7o$ &̖îvW {y`8R{k q0ܡDۇ1ga$ 1'bO Q\Ųk9\&ZW&̩06g=6m&Ȳ4cbNcmV.5Z6kO X5whUe%H&\;J-+e]UVLu-]7N]Y$6$=jU5,kBY4#t2F"cbn)jW9gg[F{=9tx%봪4̭[W𞫣M/lKft?*]$LBo\4Ra@p5szG!)y)Vg('/x` |7[Y(4]:+BEB̅(J:TzYK*JӈfGA#Yijzֹt=/EH[K&3&BsFa`eڤs}Xy?cҬm^M'e=7'ym"I I]H#TP]++k]N{T)o$V Ą eA.ājŞWZ}oHaTi$c''(. WVhtKpnKTey0\7uJ(<*:nFn&`ʌy!OYz-bn5MNP"uj\Xqhw-ދx."kH,1Tw:*s7Q^>:^gO])&E886o UcL,:mt4X!Ugp0rr1MWz\Z\.|/+FC7٭^b >#[H>Bg-Eyūkdn>٭^b >#[H>Bg-kdn>٭^b >#[H>Bg-Eyūkdn>٭^b >#[H>Bg-kdn>٭^b >#[H>Bg-Eyūkdn>٭^b >#[H>Bg-kdn>٭^b >#[H>Bg-Eyūkdn>٭^b >#[H>Bg-kdn>٭^b >#[H>Bg-Eyūkdn>٭^b >#[H>Bg-kdn>٭^b >#[H>Bg-Eyūkdn>٭^b >#[H>Bg-kdn>٭^b >#[H>Bg-Q7(xT0 O=A@5疭źf{Ɉ,m#x ܷźf{Ɉ,m#x ܷz=źf{Ɉ,m#x ܷźf{Ɉ,m#x ܷz=źf{Ɉ,m#x ܷźf{Ɉ,m#x ܷz=źf{Ɉ,m#x ܷfhu]F[yW'pR&+y%V@ :Q^qj;[kW|ψV?qp8milx7S]jO(uRm1Ŝ.@;@=fM/Qԍ_-[Ym<<0 XNݹ8Uq}e$^'nbG.ę2E+N 4x ??hGM8sh.oxm@iI<63Z ,<x|41G/o"2P+n%Iz5h'?}se'ٴtde68 N 4x C94h'? Cu#xQ $K꬧<\Ɠ{ZٗT_ [Qʗp9IK(܌V j627? ]P?̹cV 4?j!F2Z(\U܅˟5jOsƭWri.ժB?e_P̹cV 4?j!F2Z(\U܅˟5jOsƭWri.ժB?e_P̹cV wj\U܅`x;Cw???E5o.ժB?e_Q̹cV 4?j!@~x*K>+,upZ2FImd7pI SG?'Y+xKH#Ӵcq|8Y3s8kh'?&a-ցpg~!7fw}󷙜c>mlu9N 4x C94h'?h'?5*}k]Th$PYT߲}F7(ϷLjéAHZ ȪrH`A ZN 4x C94h'?P:*p(Av?Zoize֥u i==I.iܹ$d\^)JѬXgt=̓\ʊ:~=qArs8&2 UI?b ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (#n巸&T)$r(eu#x 1Ykto hvtŵY @ۀHU=(4氳 .my<`[kW#79q?TiO>8͐nöG;ryآ($$If!vh5555T55#v#v#vT#v:Vl t$555T5/  / aT$$If!vh5555T55#v#v#vT#v:Vl t$,555T5aT$$If!vh5555T55#v#v#vT#v:Vl t$,555T5aT$$If!vh5555T55#v#v#vT#v:Vl t$555T5aT$$If!vh5555T55#v#v#vT#v:Vl t$555T5aT$$If!vh5555T55#v#v#vT#v:Vl t$555T5aT$$If!vh5555T55#v#v#vT#v:Vl t$555T5aT$$If!vh5555T55#v#v#vT#v:Vl t$,,555T5aT$$If!vh5555T55#v#v#vT#v:Vl t$555T5aT$$If!vh5555T55#v#v#vT#v:Vl t$,555T5aT0Dd:g/d  C 2Ae^ Bitmap VP"`Rx(]4pmhT FL(]4pmhJFIF``C    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222)" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?( (qOjuI gC#Jq=ǹ-/K;u|Fl@XX#:[~(;u<7 Ψ0 OTZ Zj?y7 ˮ՜oU8l)Ҽu'|+6qbuBo*AL =Pi:\kZ$V3qh3lEjDQVfvĔ,ԟsHHZuQT{+iˋ ;c2$`A5v ( ( ( ( ( *%HcK7Hj-/R4mF͙cD̥K)py[((((((((((((((((((((((((((((((((((((((((((((((((((+[y.'!%/$0UE$x5">#"ʡQ1lIzP5rלc~gnmXEG"0eu#!#րrȠ[f%VCC3bz׉|H͊Hx1%HC=NF;]_u Y,M:_3HߘumlwDյfMMCyG41ߍs)kZHKh!4fт[-64PdԭeߧEg奛&2>|..:c $~|_v|?^6:Kar,4*$;j6Z)cZd.iZP$A 'f4=oMo5}>+E60ߥ=NSu[{X/eOoufgL-YnBdgt-:xXGYoYO ػ*W*$xVZ94mZq hNFrZ~Ե=.VS4V<e`AYW^1ZZO>֚o*2LaRGxJ\$Ι[ۋ*u F偛'{Y?/_1`IZIMb-VR!3ܢIJdU8bVyMFMr=GS#H+)fbICkSM2iPiRJ^|ḇɼ($9kRQTRPn^xL9I aOoy-bH I9"Bo u3ҭjkZ֑txDDKv42ă#/QEυ.t]^!mSUɞ #Pp@rrĒzTږ7 .1_a;(B7]+_4ȗTֵ}SQIk{=:k`]|7N8+E.^nkhRI:۩^ddL3(b:/ tV+K[|dY_hVh:$(?28 ,|3{sKreOY!WR:.ܮH=w|{<_w&w FdI_'r x7G.lKR{ۨ'6 vݙb2[96 )QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE >&^ '2Gj HJFas\"7A<1 rG"VS4PGjBNFq /]^)mh ~a3"Cx+EI-J!vLfiH2QcO<8YZGm_bݎqg^ww⎃WywMrf($T|Aϧi:>G|G/ϳw;sg`i/kOr[]DDe܌2pFF:կHu?ue}Z襮9H5?ue&+~ ɺ? M?$WAE`CЛ/HOsYEo@&(S7\_[P$: ?!M?$V Bn"Hu?ueE`CЛ/HOsYEo@׋o-n,ZIw1lGqT> _RK6HݒIFU$"rOa>w. Bn"Hu?ueE`CЛ/HOsYEo@&(S7\_[P$: ?!M?$V Bn"Hu?ueE`CЛ/HOsYEo@&(S7\_[PXPXۺߠ(((Q@{Z襭/ *E-oEPEPEPEPEPEPEPGJ((((((((Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Z( ( ( ( ( ( ( ( (QEQEQEQEQEQEQEQE`YBan~,k? ѷu@Q@Q@Q@Q@{Z襭/ *E-oEPEPEf>h%A)?ڤ7*?w66|zVQEW0/]GPq%)7%C7N H=;mzE}fɑ)VV+ =}CbQ@T7sIok$Zt2!wW"&M^=oO7imqlVi xn6oGG(f^&M{*%Ѧ/`y#Xnd1T*\QkE6F)29PHE[ducXkOa Q\cvR0ýjEPERMG~6+YbHدXc$cmS.NN2}(VncAm3Yp\lZ"E8@͒2à'J0 ( (k:((()~~3<րEfĐg83[=\YʥG;7Ҡ*YKa*~Pݵj*GhZQ7(a;mYـQE((((((((((((((((((((((((((((((((((*F`YBan~ ( ( ( (0< $_ K[_'UZߠ()I ѳ)S2Pj;mm֕P-1cqJ5]?WK]ݟ~g',~85q(UL 1 8ϗ۟|Z7Sh2irjw#7Hg@ {Rkݶ_<=T rN;NĞ\I}9'U=Ķ8[}rox+R#T̓ž '47KԦ72X|əH2\]:Wƕzԯn_PI$s!(۱IO(Y.пsjSzHue uSc;$ nywi: QI ks"Lj]lJZLTm#bnTzS .\iZ#,< YnI9pp0-7a[(z5?Рj7JJbX6JrIJ#}j=df`?G4iE5ks7U'A-2/ei%"S<)#{'ިxN;$fj_n!اȔbO=iAቡZȫmjʜBrzcHX{YOž8dnVSXA&v_>)0 Ǹ[0H}<T Kj}:WP1)xcUHۏx`jD:yLsb2"p[te~ pN*Y?ĖzKXZQݔݒUO >9__Kskކ|EmuymtFNՔ 9*8}?WԼKGs:X:4_cpQBAĄz[0M :mNмb,r1C"9WQ2jƧص mnۛ$xG Ȍ|zdm=iGM]Jz)rEl[C Nx.q>>oayN4o#0N (q"0<0+sF=7{ Ks uz@e"ԥrщ>RÎx8T5M-u8k Ml2^>c RrjZ &>lSj0R Vum\xu1iSP/prT|,_uj7W}D?* Ryi^,֨Eޜl@?v1ぇտ[nu/kvڜ]DbGMeWPrNy& ꫪ(]4G9A =| nkMex$@!-pzl'!A䎜TZyNfBq|6wyzv8BE$Դ-wM.uK]I 1DC"pA!Xt}A!*cI}^jڝ)HV4E qF=BSqlHVܬF2(ULP5ngW>2ᴽ6lHW} rCUXB4דɩ>pcIIA7PLd=mˠ!P5Z *-lч¶ɬWbB/,eBav"m w'Ky?ﱏ]x5kF[ tOXbBZ?&O0`櫐KR Zm:O6Q?ʪBq Tyu$u;x?[ݴlw*r7^i.|3Vڍݰk-0$m̤ J8iKUo߾ @t~q讆h5[>w٭* eiV'p;*\Š(((((((((((((((((((((((((((((((((((J`w[g% YU((((/ *E-okV)k~ ( G1RF d{KH;UQCmׇ=i]\\QMmjbʕĬKm`I)Oql"S8?^Msiko*-K )\iQ7.?6శRԭN ^`9T `gIjqlIoc{O~,8H1E=/¾#S(l:[Qm%@_藷0Zk}W("s($py|fڦ@fBܓ/=-W5żwVw0 % f%yv ײ1,Oۘݭ ve%Q~36kP7%߸kQZIo:F˻1H9zհVYӵK+ 8-C|ICҹkZ-DŽal.wUt*I.=椼4>'hk/1C^r?8Tanuj:57ZKm2ic!`Ðr祮7wmt;];\ Yʹ8_L:3>Ӧqo *6,dץdf[XSߋ;)n%} nAAj˛[g:&vOtHїp(y_ COtn/#xvE@= 5!-Pt}&haԵ[)fT7 I Fzw70YIsu4pAY\*>C;KKۻ|ݰSunF# Fps<e'qOD?Gc]Hբ& r=?JY_dk[)=N+SF]YkvVB`F%CHDaxHYEţBvΧ/?)8~}wG.5[ qp+*Yx^T-m䕕bYYrhIZ5 Wz4Y.[fc}#+} _ b׈5xɂY#9dRrC=յ4`,"\j Ҧ1GQw/I{ /%ʦ)8PEUu +>vcmT mPSAfAXz%oOj: zcbg[1Q֭\[ZuugO?䂊(EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP-gV6J`w[QEQEQEQE_'UZ߬=RQEQMFόnS]F-:Sa;i.eq!IzzUeu 2A"[j~Q+u77DLٳP;mo6  :rNkF(((((((((((((((((((((((((((((((((((((*F`YBan~ ( ( ( (0< $_ K[_'UZߠ();N P+il>4tmgĶĝPB$IޙܿRD-PH2û\ͯ.5k 6i6M2ch2'm!EP:mO>oG,6Q1`yEۤo=A*Y$8=2C4#]Ҏ4[# }s;=:sZ+:uo,mR] jrG\|J 뷌jsj5;=73O\;=Rp^ -|[M")mH%da-A v]um&vMo( 8<4f()RpF887V^ ֮R+EfO&jχtoi:&ldM6!.~ ?Rx öS$rBxI.c d3z[:ewngp%q]*A-wwQFđF0TzNCE"Q:ܕϢK<:5l.^cC"H(x wVnOS=QOLNG,20C Fτkq6[zn>lJ{imŤf6qS+JB; =,7K-,>{C2"$ p c'4wlL]Uceg=&l{4%g.10N1G𾙡O,nVq6q:1G}~{[(xnmEsy  cBqdV gOoE770ss(irѡfP7ϸm9ȫ:χ4|F# A}< CDn@ )Ӯۘ&Is+JC Ko ?>ts# ;&Xէb"I~!Y2uu?Р-j B ^+亂24]CI3jjQ ѐ{|_ѷln7'7,VFn`=B[dG1OZOҩMCi"Z1I3TzrN=x6um-@)V1HѰєS4{׷PZ<0u_hɨkzƟ-ӏpHWؿ=A"7.Wvh6 67}AbӴ;X$*=rN=QE>-~]m"w7r(:/[`$:zMIVwOs>, Ҽ uom=I`I) #nx+Ҵ.[fP+FB%u+hs=j}kBj+;,aLl{zfM-j]jWu8_'EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPIwS@ (H%u,XTc$AP隄Zo{ wkV^rWj)3kxZ[{9/VF[ +CJ`w[hZxZ/o`]6 ,KvHʒ38 ( ([6:jTCq_8dFe%O'5hrj[ Ggf#L=q4 rK#ҵf.o"hd3# xy#^a&y;BF̘Wi_/1~'"I6nPvG:$Y7(;X`#֝T%lq&O Ŗ_+a>6$1]  8 unn5{B{dD,qռQ=~(Teń2bVQ# ֿ-tGbp2rI$*18FI$ {w3[JӀMʃONbjqhQSfn'EC ȄQsJY_ӿK[_5M|5\j3[ol䪓 6-k=.dD!V,Kk7TfUoOx][3Kwc*D fB!AuQiw:[,u(඀<)cW{ꠃyi]ٯc#~+Z zVݿ6ІNx෈e䑰U;Zn4۵Nn%Mʒ* [Vw7v7нob1T\ #!TU3rK mB$e&MB{]+9.t8C%I `U_m\mXJȠ9ήZ]Z]$ 3htQ\"`mʼK?O],+yn|r( 'O RϪ)_țG^Bկ5- ['\˨pϹB TU_)“bBMX4H^"GXɦdBe+{z}kk,,b"b%]nO~gqkoˆ"vAN\ 1'4átQE ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (恞(8ɻ'wan $U X*%Cqri²Nm-#`TY8Q{ Z:ygߞq%6۱Җ įqz놕ƒTRHEp9;Wqb3Z](Վl4 Eii 6#X^P0Oҧ!FP-gV6J`w[QEQEQEQE_'UZ߬=RQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE94@Aw{manS+Jy$ި]J'1y|r(pҜqd88-4{Uړ)}H@8Io+K$?+Vy: ggmcl[™HW''p9$@9ϭ-aESQEQEg% YU*FQEQEQEQE`xIkO|5`_@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@ -Qխ<+,˟*= 76ddgX@Y@$±uO-_r1a10`WssJl;xKc=y rBvin]| 6sI$I$I$IIV:QE2(((( ?(Z?mo-gV6((((O|5`_X{Z襭(((((((((((((((((((((((((((((((((((((((((((((((((w[r؀*QKq:v yH2M;vǿ@2IQ3W袘op(QEQEQEQEQEQEQEQEQEg% YU*FQEQE9GG#FQim;>׏Z?HM>շ/WO=gy}x_~¢tI>}L?:ws^Š<=kHZ.ѿ{=8_'UZ߮ |I۹XPLJpeG<Wgaf<~I'.䞧Z((((((((((((((((((((((((((((((((((((((((((Q@G=6мʑƀ;&^+pʟ,q2<<JBQCIw:]k-ıh DFygp8Ue\"uV-naet߿w8 J(O5`_VkV)k~ ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ('ı=*!AlmgdQfQ@Q@sڨꚄ}=)nXzgnp1XM]jdǣ"cHqK،aeE]<[jqJ"yYKp`nIg7InԔN0(((((((((((((J`w[g% YU((((/ *E-okV)k~ ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (1fx73f=ؘ ~{O-4fɏ2i,ؖlv8ti%X#ftvC]NHr8 EUmTmҝEq01qK( ((((((((((((((J`w[g% YU((((/ *E-okV)k~ ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (=G?zZcn^*mc 4`;U'ڳS76go&oM)zW$RWut3+yrOmu aȼ`CsND2#1ˀpXִEm C iQTD\*mԀwHQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEg% YU*FQEQEQEQE`xIkO|5`_@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@H sI3OZǛYy{]&}4mY<бDêwpxU$q &55gYR8RUTu$65]]@Utm_8W"Xt6xu{6~PXaaё9;r 6j*maZX8yamd;W @+J){Q@((((((((((((((((( ?(Z?mo-gV6((((O|5`_X{Z襭(((((((((((((((((((((((]cnRۛKT&xgKuX9c6PI5R2@) BG;I8$z@QEQEQEQEQEQEQEQEQEQEQERg,(#}*iDN+6nʪ9f88q@%}i,ӣ["1898T0%&V q0 P2HcFTHv`@>_%s#j7{$&#8>F̤e T9ucHS~9qql+IrSf"!54P0œG(#ҴHrlZLJZ)(((((((((((((((((((*F`YBan~ ( ( ( (0< $_ K[_'UZߠ(((((((((((((((((((((YEYk3Α2`q0ӥgx4~H !R,Ưxx/ <.(2䌝p( ,AIԴɵ) ̑MX6UcAW OdѬ"ӑbKJ^=̑*Yc\䎹:PEPEPEPEPEPEPEPEPEPIO48#u1 ~u{;+yo.ԀF$doT2 "mܦo-21Jؾ^O틭DKrV tzCцFXk WeJ E'8qb3WM 8S$:QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEg% YU*FQEQEQQ\3PĥF dOhZ+?+Oh\ >8j2|1]:}<|K/p$p8aЏQ@^{Z襭/ *E-oEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPESԵ["gw$"(T{YQk??{СMw+ k:mٖPt@b!ar aTk>,e]mA@qD6^El M7KmDr