commit fd1dc69fa55148d21b00294ea60cf745b3793aa8 Author: Gitea Date: Mon Aug 1 15:41:34 2022 +0300 Initial commit; Some rng implementations; PPM read/write; endianness swap for 16, 32, 64 bit integers diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..056fe5b --- /dev/null +++ b/LICENSE @@ -0,0 +1,9 @@ +The MIT License (MIT) + +Copyright © 2022 Kasyanov Nikolay Alexeyevich (Unbewohnte) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..cf1128b --- /dev/null +++ b/Makefile @@ -0,0 +1,24 @@ +CC=gcc +DEFAULTCFLAGS=-Wall -Werror -O2 +SRCDIR=src +LIBNAME=auxlib +BUILDDIR=build +BINDIR=bin +TESTDIR=testing +TESTBIN=test + +lib: + $(CC) $(DEFAULTCFLAGS) -c $(SRCDIR)/*/*.c + + mkdir -p $(BUILDDIR) + mv *.o $(BUILDDIR) + + mkdir -p $(BINDIR) + ar rcs $(BINDIR)/$(LIBNAME).a $(BUILDDIR)/*.o + + +test: + $(CC) $(DEFAULTCFLAGS) $(TESTDIR)/*.c -o $(TESTDIR)/$(TESTBIN) && cd $(TESTDIR) && ./$(TESTBIN) + +clear: + rm -rf $(BUILDDIR) $(BINDIR) \ No newline at end of file diff --git a/bin/auxlib.a b/bin/auxlib.a new file mode 100644 index 0000000..dafff49 Binary files /dev/null and b/bin/auxlib.a differ diff --git a/build/bbs.o b/build/bbs.o new file mode 100644 index 0000000..217c597 Binary files /dev/null and b/build/bbs.o differ diff --git a/build/endian.o b/build/endian.o new file mode 100644 index 0000000..0633588 Binary files /dev/null and b/build/endian.o differ diff --git a/build/lcg.o b/build/lcg.o new file mode 100644 index 0000000..33ad7ab Binary files /dev/null and b/build/lcg.o differ diff --git a/build/ppm.o b/build/ppm.o new file mode 100644 index 0000000..e217f0f Binary files /dev/null and b/build/ppm.o differ diff --git a/build/xorshift.o b/build/xorshift.o new file mode 100644 index 0000000..a27e668 Binary files /dev/null and b/build/xorshift.o differ diff --git a/src/endian/endian.c b/src/endian/endian.c new file mode 100644 index 0000000..e8738f3 --- /dev/null +++ b/src/endian/endian.c @@ -0,0 +1,46 @@ +/* +The MIT License (MIT) + +Copyright © 2022 Kasyanov Nikolay Alexeyevich (Unbewohnte) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + +#include + +uint16_t swap_endian16(uint16_t num) { + return (uint16_t) + ( + ((num >> 8) & 0x00FF) | + ((num << 8) & 0xFF00) + ); +} + +uint32_t swap_endian32(uint32_t num) { + return (uint32_t) + ( + ((num << 24) & 0xFF000000) | + ((num << 8) & 0x00FF0000) | + ((num >> 8) & 0x0000FF00) | + ((num >> 24) & 0x000000FF) + ); +} + +// 00000000 01101110 11101110 11110101 00000000 01101110 11101110 11110101 +uint64_t swap_endian64(uint64_t num) { + return (uint64_t) + ( + ((num << 56) & 0xFF00000000000000) | + ((num << 40) & 0x00FF000000000000) | + ((num << 24) & 0x0000FF0000000000) | + ((num << 8) & 0x000000FF00000000) | + ((num >> 8) & 0x00000000FF000000) | + ((num >> 24) & 0x0000000000FF0000) | + ((num >> 40) & 0x000000000000FF00) | + ((num >> 56) & 0x00000000000000FF) + ); +} \ No newline at end of file diff --git a/src/img/ppm.c b/src/img/ppm.c new file mode 100644 index 0000000..fc90310 --- /dev/null +++ b/src/img/ppm.c @@ -0,0 +1,170 @@ +/* +The MIT License (MIT) + +Copyright © 2022 Kasyanov Nikolay Alexeyevich (Unbewohnte) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + +#include +#include +#include +#include +#include + +typedef struct rgb8 { + uint8_t r; + uint8_t g; + uint8_t b; +} rgb8; + +// minimal ppm image structure +typedef struct ppm_image { + unsigned int width; + unsigned int height; + rgb8* pixels; +} ppm_image; + +// Read ppm image from file on the disk. Returns NULL if something went wrong +ppm_image* read_ppm(const char* path) { + ppm_image* ppm; + FILE* file; + char magic_number[2]; + int read_bytes; + int character; + unsigned int max_rgb_value; + rgb8* pixels; + + // open file + file = fopen(path, "r"); + if (file == NULL) { + return NULL; + } + + // check if the magic number is in place + read_bytes = fread(magic_number, 1, 2, file); + if (read_bytes != 2 || magic_number[0] != 'P' || magic_number[1] != '6') { + return NULL; + } + + // skip until width, height and color information + character = getc(file); + while (character == '#') { + while (getc(file) != '\n') { + character = getc(file); + } + } + ungetc(character, file); + + ppm = (ppm_image*) malloc(sizeof(ppm_image)); + if (!ppm) { + free(ppm); + return NULL; + } + + // scan width, height, max color value + if (fscanf(file, "%d %d %d", &ppm->width, &ppm->height, &max_rgb_value) != 3) { + return NULL; + } + + if (max_rgb_value > 255 || max_rgb_value == 0) { + // can't read that one ! + return NULL; + } + + // skip last newline before matrix of pixels + getc(file); + + // read pixels + pixels = (rgb8*) malloc(sizeof(rgb8) * ppm->width * ppm->height); + if (!pixels) { + free(pixels); + return NULL; + } + + read_bytes = fread(pixels, sizeof(rgb8) * ppm->width, ppm->height, file); + if (read_bytes != ppm->height) { + // here read_bytes is not actually bytes read, but + // rather rows read + return NULL; + } + ppm->pixels = pixels; + + // close file + fclose(file); + + return ppm; +} + +// Write ppm image to the disk. Returns 0 if everything is alright, 1 otherwise +int write_ppm(const ppm_image* ppm, const char* path) { + FILE* file; + + file = fopen(path, "w"); + if (!file) { + return 1; + } + + fprintf(file, "P6\n"); + fprintf(file, "%d %d %d\n", ppm->width, ppm->height, 255); + fwrite(ppm->pixels, sizeof(rgb8) * ppm->width , ppm->height, file); + + fclose(file); + + return 0; +} + +// Put pixel with specified rgb8 color at x,y coordinates. Returns 0 if pixel has been replaced, 1 if +// coordinates are out of bounds +int put_pixel_at(const unsigned int x, const unsigned int y, const rgb8 color, ppm_image* ppm) { + unsigned int index = ppm->width * y + x; + if (index >= ppm->width*ppm->height) { + // out of bounds ! + return 1; + } + + ppm->pixels[index] = color; + + return 0; +} + +// Get pixel color at specified coordinates. Returns a const pointer to that pixel color if +// it is present, NULL if coordinates are out of bounds +const rgb8* get_pixel_at(const unsigned int x, const unsigned int y, ppm_image* ppm) { + unsigned int index = ppm->width * y + x; + if (index >= ppm->width*ppm->height) { + // out of bounds ! + return NULL; + } + + const rgb8* pixel_color = &ppm->pixels[index]; + + return pixel_color; +} + +// Create a new ppm image with specified dimensions. All pixels are {0, 0, 0} (black) by default +ppm_image* new_ppm_image(const unsigned int width, const unsigned int height) { + ppm_image* ppm; + rgb8* pixels; + const rgb8 default_pixel_color = {0, 0, 0}; + + ppm = (ppm_image*) malloc(sizeof(ppm_image)); + pixels = (rgb8*) malloc(sizeof(rgb8) * width * height); + + ppm->width = width; + ppm->height = height; + + + for (unsigned int y = 0; y < height; y++) { + for (unsigned int x = 0; x < width; x++) { + pixels[width * y + x] = default_pixel_color; + } + } + ppm->pixels = pixels; + + return ppm; +} \ No newline at end of file diff --git a/src/rng/bbs.c b/src/rng/bbs.c new file mode 100644 index 0000000..b6e4393 --- /dev/null +++ b/src/rng/bbs.c @@ -0,0 +1,17 @@ +/* +The MIT License (MIT) + +Copyright © 2022 Kasyanov Nikolay Alexeyevich (Unbewohnte) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + +#include + +int64_t bbs(int64_t seed) { + return seed * seed % (2503 * 3571); +} \ No newline at end of file diff --git a/src/rng/lcg.c b/src/rng/lcg.c new file mode 100644 index 0000000..1918aa3 --- /dev/null +++ b/src/rng/lcg.c @@ -0,0 +1,17 @@ +/* +The MIT License (MIT) + +Copyright © 2022 Kasyanov Nikolay Alexeyevich (Unbewohnte) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + +#include + +int64_t lcg(int64_t seed) { + return (8121 * seed + 28411) % 134456; +} \ No newline at end of file diff --git a/src/rng/xorshift.c b/src/rng/xorshift.c new file mode 100644 index 0000000..65d8a37 --- /dev/null +++ b/src/rng/xorshift.c @@ -0,0 +1,29 @@ +/* +The MIT License (MIT) + +Copyright © 2022 Kasyanov Nikolay Alexeyevich (Unbewohnte) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + +#include + +uint32_t xorshift32(uint32_t seed) { + seed ^= seed << 13; + seed ^= seed >> 17; + seed ^= seed << 5; + + return seed; +} + +uint64_t xorshift64(uint64_t seed) { + seed ^= seed << 13; + seed ^= seed >> 7; + seed ^= seed << 17; + + return seed; +} \ No newline at end of file diff --git a/testing/result_image.ppm b/testing/result_image.ppm new file mode 100644 index 0000000..3656d3e --- /dev/null +++ b/testing/result_image.ppm @@ -0,0 +1,403 @@ +P6 +200 200 255 + + +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/ +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +7: +7; +7< +7= +7> +7? +7@ +7A +7B +7C +7D +7E +7F +7G +7H +7I +7J +7K +7L +7M +7N +7O +7P +7Q +7R +7S +7T +7U +7V +7W +7X +7Y +7Z +7[ +7\ +7] +7^ +7_ +7` +7a +7b +7c +7d +7e +7f +7g +7h +7i +7j +7k +7l +7m +7n +7o +7p +7q +7r +7s +7t +7u +7v +7w +7x +7y +7z +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 +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 +7 +7 +7 +7 +7 +7 +7 +7 + 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8! 8" 8# 8$ 8% 8& 8' 8( 8) 8* 8+ 8, 8- 8. 8/ 80 81 82 83 84 85 86 87 88 89 8: 8; 8< 8= 8> 8? 8@ 8A 8B 8C 8D 8E 8F 8G 8H 8I 8J 8K 8L 8M 8N 8O 8P 8Q 8R 8S 8T 8U 8V 8W 8X 8Y 8Z 8[ 8\ 8] 8^ 8_ 8` 8a 8b 8c 8d 8e 8f 8g 8h 8i 8j 8k 8l 8m 8n 8o 8p 8q 8r 8s 8t 8u 8v 8w 8x 8y 8z 8{ 8| 8} 8~ 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 + 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9! 9" 9# 9$ 9% 9& 9' 9( 9) 9* 9+ 9, 9- 9. 9/ 90 91 92 93 94 95 96 97 98 99 9: 9; 9< 9= 9> 9? 9@ 9A 9B 9C 9D 9E 9F 9G 9H 9I 9J 9K 9L 9M 9N 9O 9P 9Q 9R 9S 9T 9U 9V 9W 9X 9Y 9Z 9[ 9\ 9] 9^ 9_ 9` 9a 9b 9c 9d 9e 9f 9g 9h 9i 9j 9k 9l 9m 9n 9o 9p 9q 9r 9s 9t 9u 9v 9w 9x 9y 9z 9{ 9| 9} 9~ 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 + : : : : : : : : : : : : : : : : : : : : : : :! :" :# :$ :% :& :' :( :) :* :+ :, :- :. :/ :0 :1 :2 :3 :4 :5 :6 :7 :8 :9 :: :; :< := :> :? :@ :A :B :C :D :E :F :G :H :I :J :K :L :M :N :O :P :Q :R :S :T :U :V :W :X :Y :Z :[ :\ :] :^ :_ :` :a :b :c :d :e :f :g :h :i :j :k :l :m :n :o :p :q :r :s :t :u :v :w :x :y :z :{ :| :} :~ : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : +; ; ; ;;;;;;;;;;;;;;;;;;; ;!;";#;$;%;&;';(;);*;+;,;-;.;/;0;1;2;3;4;5;6;7;8;9;:;;;<;=;>;?;@;A;B;C;D;E;F;G;H;I;J;K;L;M;N;O;P;Q;R;S;T;U;V;W;X;Y;Z;[;\;];^;_;`;a;b;c;d;e;f;g;h;i;j;k;l;m;n;o;p;q;r;s;t;u;v;w;x;y;z;{;|;};~;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +< < < <<<<<<<<<<<<<<<<<<< =?=@=A=B=C=D=E=F=G=H=I=J=K=L=M=N=O=P=Q=R=S=T=U=V=W=X=Y=Z=[=\=]=^=_=`=a=b=c=d=e=f=g=h=i=j=k=l=m=n=o=p=q=r=s=t=u=v=w=x=y=z={=|=}=~==================================================================================== +> > > >>>>>>>>>>>>>>>>>>> >!>">#>$>%>&>'>(>)>*>+>,>->.>/>0>1>2>3>4>5>6>7>8>9>:>;><>=>>>?>@>A>B>C>D>E>F>G>H>I>J>K>L>M>N>O>P>Q>R>S>T>U>V>W>X>Y>Z>[>\>]>^>_>`>a>b>c>d>e>f>g>h>i>j>k>l>m>n>o>p>q>r>s>t>u>v>w>x>y>z>{>|>}>~>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> +? ? ? ??????????????????? ?!?"?#?$?%?&?'?(?)?*?+?,?-?.?/?0?1?2?3?4?5?6?7?8?9?:?;?<?=?>???@?A?B?C?D?E?F?G?H?I?J?K?L?M?N?O?P?Q?R?S?T?U?V?W?X?Y?Z?[?\?]?^?_?`?a?b?c?d?e?f?g?h?i?j?k?l?m?n?o?p?q?r?s?t?u?v?w?x?y?z?{?|?}?~???????????????????????????????????????????????????????????????????????????????????? +@ @ @ @@@@@@@@@@@@@@@@@@@ @!@"@#@$@%@&@'@(@)@*@+@,@-@.@/@0@1@2@3@4@5@6@7@8@9@:@;@<@=@>@?@@@A@B@C@D@E@F@G@H@I@J@K@L@M@N@O@P@Q@R@S@T@U@V@W@X@Y@Z@[@\@]@^@_@`@a@b@c@d@e@f@g@h@i@j@k@l@m@n@o@p@q@r@s@t@u@v@w@x@y@z@{@|@}@~@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +A A A AAAAAAAAAAAAAAAAAAA A!A"A#A$A%A&A'A(A)A*A+A,A-A.A/A0A1A2A3A4A5A6A7A8A9A:A;A<A=A>A?A@AAABACADAEAFAGAHAIAJAKALAMANAOAPAQARASATAUAVAWAXAYAZA[A\A]A^A_A`AaAbAcAdAeAfAgAhAiAjAkAlAmAnAoApAqArAsAtAuAvAwAxAyAzA{A|A}A~AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +B B B BBBBBBBBBBBBBBBBBBB B!B"B#B$B%B&B'B(B)B*B+B,B-B.B/B0B1B2B3B4B5B6B7B8B9B:B;B<B=B>B?B@BABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBWBXBYBZB[B\B]B^B_B`BaBbBcBdBeBfBgBhBiBjBkBlBmBnBoBpBqBrBsBtBuBvBwBxByBzB{B|B}B~BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB +C C C CCCCCCCCCCCCCCCCCCC C!C"C#C$C%C&C'C(C)C*C+C,C-C.C/C0C1C2C3C4C5C6C7C8C9C:C;C<C=C>C?C@CACBCCCDCECFCGCHCICJCKCLCMCNCOCPCQCRCSCTCUCVCWCXCYCZC[C\C]C^C_C`CaCbCcCdCeCfCgChCiCjCkClCmCnCoCpCqCrCsCtCuCvCwCxCyCzC{C|C}C~CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC +D D D DDDDDDDDDDDDDDDDDDD D!D"D#D$D%D&D'D(D)D*D+D,D-D.D/D0D1D2D3D4D5D6D7D8D9D:D;D<D=D>D?D@DADBDCDDDEDFDGDHDIDJDKDLDMDNDODPDQDRDSDTDUDVDWDXDYDZD[D\D]D^D_D`DaDbDcDdDeDfDgDhDiDjDkDlDmDnDoDpDqDrDsDtDuDvDwDxDyDzD{D|D}D~DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD +E E E EEEEEEEEEEEEEEEEEEE E!E"E#E$E%E&E'E(E)E*E+E,E-E.E/E0E1E2E3E4E5E6E7E8E9E:E;E<E=E>E?E@EAEBECEDEEEFEGEHEIEJEKELEMENEOEPEQERESETEUEVEWEXEYEZE[E\E]E^E_E`EaEbEcEdEeEfEgEhEiEjEkElEmEnEoEpEqErEsEtEuEvEwExEyEzE{E|E}E~EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE +F F F FFFFFFFFFFFFFFFFFFF F!F"F#F$F%F&F'F(F)F*F+F,F-F.F/F0F1F2F3F4F5F6F7F8F9F:F;F<F=F>F?F@FAFBFCFDFEFFFGFHFIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZF[F\F]F^F_F`FaFbFcFdFeFfFgFhFiFjFkFlFmFnFoFpFqFrFsFtFuFvFwFxFyFzF{F|F}F~FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +G G G GGGGGGGGGGGGGGGGGGG G!G"G#G$G%G&G'G(G)G*G+G,G-G.G/G0G1G2G3G4G5G6G7G8G9G:G;G<G=G>G?G@GAGBGCGDGEGFGGGHGIGJGKGLGMGNGOGPGQGRGSGTGUGVGWGXGYGZG[G\G]G^G_G`GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}G~GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG +H H H HHHHHHHHHHHHHHHHHHH H!H"H#H$H%H&H'H(H)H*H+H,H-H.H/H0H1H2H3H4H5H6H7H8H9H:H;H<H=H>H?H@HAHBHCHDHEHFHGHHHIHJHKHLHMHNHOHPHQHRHSHTHUHVHWHXHYHZH[H\H]H^H_H`HaHbHcHdHeHfHgHhHiHjHkHlHmHnHoHpHqHrHsHtHuHvHwHxHyHzH{H|H}H~HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH +I I I IIIIIIIIIIIIIIIIIII I!I"I#I$I%I&I'I(I)I*I+I,I-I.I/I0I1I2I3I4I5I6I7I8I9I:I;I<I=I>I?I@IAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZI[I\I]I^I_I`IaIbIcIdIeIfIgIhIiIjIkIlImInIoIpIqIrIsItIuIvIwIxIyIzI{I|I}I~IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII +J J J JJJJJJJJJJJJJJJJJJJ J!J"J#J$J%J&J'J(J)J*J+J,J-J.J/J0J1J2J3J4J5J6J7J8J9J:J;J<J=J>J?J@JAJBJCJDJEJFJGJHJIJJJKJLJMJNJOJPJQJRJSJTJUJVJWJXJYJZJ[J\J]J^J_J`JaJbJcJdJeJfJgJhJiJjJkJlJmJnJoJpJqJrJsJtJuJvJwJxJyJzJ{J|J}J~JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ +K K K KKKKKKKKKKKKKKKKKKK K!K"K#K$K%K&K'K(K)K*K+K,K-K.K/K0K1K2K3K4K5K6K7K8K9K:K;K<K=K>K?K@KAKBKCKDKEKFKGKHKIKJKKKLKMKNKOKPKQKRKSKTKUKVKWKXKYKZK[K\K]K^K_K`KaKbKcKdKeKfKgKhKiKjKkKlKmKnKoKpKqKrKsKtKuKvKwKxKyKzK{K|K}K~KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK +L L L LLLLLLLLLLLLLLLLLLL L!L"L#L$L%L&L'L(L)L*L+L,L-L.L/L0L1L2L3L4L5L6L7L8L9L:L;L<L=L>L?L@LALBLCLDLELFLGLHLILJLKLLLMLNLOLPLQLRLSLTLULVLWLXLYLZL[L\L]L^L_L`LaLbLcLdLeLfLgLhLiLjLkLlLmLnLoLpLqLrLsLtLuLvLwLxLyLzL{L|L}L~LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL + M M M M M M M M M M M M M M M M M M M M M M M! M" M# M$ M% M& M' M( M) M* M+ M, M- M. M/ M0 M1 M2 M3 M4 M5 M6 M7 M8 M9 M: M; M< M= M> M? M@ MA MB MC MD ME MF MG MH MI MJ MK ML MM MN MO MP MQ MR MS MT MU MV MW MX MY MZ M[ M\ M] M^ M_ M` Ma Mb Mc Md Me Mf Mg Mh Mi Mj Mk Ml Mm Mn Mo Mp Mq Mr Ms Mt Mu Mv Mw Mx My Mz M{ M| M} M~ M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M +!N !N !N !N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N !N!!N"!N#!N$!N%!N&!N'!N(!N)!N*!N+!N,!N-!N.!N/!N0!N1!N2!N3!N4!N5!N6!N7!N8!N9!N:!N;!N!N?!N@!NA!NB!NC!ND!NE!NF!NG!NH!NI!NJ!NK!NL!NM!NN!NO!NP!NQ!NR!NS!NT!NU!NV!NW!NX!NY!NZ!N[!N\!N]!N^!N_!N`!Na!Nb!Nc!Nd!Ne!Nf!Ng!Nh!Ni!Nj!Nk!Nl!Nm!Nn!No!Np!Nq!Nr!Ns!Nt!Nu!Nv!Nw!Nx!Ny!Nz!N{!N|!N}!N~!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N!N +"O "O "O "O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O "O!"O""O#"O$"O%"O&"O'"O("O)"O*"O+"O,"O-"O."O/"O0"O1"O2"O3"O4"O5"O6"O7"O8"O9"O:"O;"O<"O="O>"O?"O@"OA"OB"OC"OD"OE"OF"OG"OH"OI"OJ"OK"OL"OM"ON"OO"OP"OQ"OR"OS"OT"OU"OV"OW"OX"OY"OZ"O["O\"O]"O^"O_"O`"Oa"Ob"Oc"Od"Oe"Of"Og"Oh"Oi"Oj"Ok"Ol"Om"On"Oo"Op"Oq"Or"Os"Ot"Ou"Ov"Ow"Ox"Oy"Oz"O{"O|"O}"O~"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O"O +#P #P #P #P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P #P!#P"#P##P$#P%#P&#P'#P(#P)#P*#P+#P,#P-#P.#P/#P0#P1#P2#P3#P4#P5#P6#P7#P8#P9#P:#P;#P<#P=#P>#P?#P@#PA#PB#PC#PD#PE#PF#PG#PH#PI#PJ#PK#PL#PM#PN#PO#PP#PQ#PR#PS#PT#PU#PV#PW#PX#PY#PZ#P[#P\#P]#P^#P_#P`#Pa#Pb#Pc#Pd#Pe#Pf#Pg#Ph#Pi#Pj#Pk#Pl#Pm#Pn#Po#Pp#Pq#Pr#Ps#Pt#Pu#Pv#Pw#Px#Py#Pz#P{#P|#P}#P~#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P#P +$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/$Q0$Q1$Q2$Q3$Q4$Q5$Q6$Q7$Q8$Q9$Q:$Q;$Q<$Q=$Q>$Q?$Q@$QA$QB$QC$QD$QE$QF$QG$QH$QI$QJ$QK$QL$QM$QN$QO$QP$QQ$QR$QS$QT$QU$QV$QW$QX$QY$QZ$Q[$Q\$Q]$Q^$Q_$Q`$Qa$Qb$Qc$Qd$Qe$Qf$Qg$Qh$Qi$Qj$Qk$Ql$Qm$Qn$Qo$Qp$Qq$Qr$Qs$Qt$Qu$Qv$Qw$Qx$Qy$Qz$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$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 +%R %R %R %R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R %R!%R"%R#%R$%R%%R&%R'%R(%R)%R*%R+%R,%R-%R.%R/%R0%R1%R2%R3%R4%R5%R6%R7%R8%R9%R:%R;%R<%R=%R>%R?%R@%RA%RB%RC%RD%RE%RF%RG%RH%RI%RJ%RK%RL%RM%RN%RO%RP%RQ%RR%RS%RT%RU%RV%RW%RX%RY%RZ%R[%R\%R]%R^%R_%R`%Ra%Rb%Rc%Rd%Re%Rf%Rg%Rh%Ri%Rj%Rk%Rl%Rm%Rn%Ro%Rp%Rq%Rr%Rs%Rt%Ru%Rv%Rw%Rx%Ry%Rz%R{%R|%R}%R~%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R%R +&S &S &S &S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S &S!&S"&S#&S$&S%&S&&S'&S(&S)&S*&S+&S,&S-&S.&S/&S0&S1&S2&S3&S4&S5&S6&S7&S8&S9&S:&S;&S<&S=&S>&S?&S@&SA&SB&SC&SD&SE&SF&SG&SH&SI&SJ&SK&SL&SM&SN&SO&SP&SQ&SR&SS&ST&SU&SV&SW&SX&SY&SZ&S[&S\&S]&S^&S_&S`&Sa&Sb&Sc&Sd&Se&Sf&Sg&Sh&Si&Sj&Sk&Sl&Sm&Sn&So&Sp&Sq&Sr&Ss&St&Su&Sv&Sw&Sx&Sy&Sz&S{&S|&S}&S~&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S&S +'T 'T 'T 'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T 'T!'T"'T#'T$'T%'T&'T''T('T)'T*'T+'T,'T-'T.'T/'T0'T1'T2'T3'T4'T5'T6'T7'T8'T9'T:'T;'T<'T='T>'T?'T@'TA'TB'TC'TD'TE'TF'TG'TH'TI'TJ'TK'TL'TM'TN'TO'TP'TQ'TR'TS'TT'TU'TV'TW'TX'TY'TZ'T['T\'T]'T^'T_'T`'Ta'Tb'Tc'Td'Te'Tf'Tg'Th'Ti'Tj'Tk'Tl'Tm'Tn'To'Tp'Tq'Tr'Ts'Tt'Tu'Tv'Tw'Tx'Ty'Tz'T{'T|'T}'T~'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T'T +(U (U (U (U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U (U!(U"(U#(U$(U%(U&(U'(U((U)(U*(U+(U,(U-(U.(U/(U0(U1(U2(U3(U4(U5(U6(U7(U8(U9(U:(U;(U<(U=(U>(U?(U@(UA(UB(UC(UD(UE(UF(UG(UH(UI(UJ(UK(UL(UM(UN(UO(UP(UQ(UR(US(UT(UU(UV(UW(UX(UY(UZ(U[(U\(U](U^(U_(U`(Ua(Ub(Uc(Ud(Ue(Uf(Ug(Uh(Ui(Uj(Uk(Ul(Um(Un(Uo(Up(Uq(Ur(Us(Ut(Uu(Uv(Uw(Ux(Uy(Uz(U{(U|(U}(U~(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U +)V )V )V )V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V )V!)V")V#)V$)V%)V&)V')V()V))V*)V+)V,)V-)V.)V/)V0)V1)V2)V3)V4)V5)V6)V7)V8)V9)V:)V;)V<)V=)V>)V?)V@)VA)VB)VC)VD)VE)VF)VG)VH)VI)VJ)VK)VL)VM)VN)VO)VP)VQ)VR)VS)VT)VU)VV)VW)VX)VY)VZ)V[)V\)V])V^)V_)V`)Va)Vb)Vc)Vd)Ve)Vf)Vg)Vh)Vi)Vj)Vk)Vl)Vm)Vn)Vo)Vp)Vq)Vr)Vs)Vt)Vu)Vv)Vw)Vx)Vy)Vz)V{)V|)V})V~)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V)V +*W *W *W *W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W *W!*W"*W#*W$*W%*W&*W'*W(*W)*W**W+*W,*W-*W.*W/*W0*W1*W2*W3*W4*W5*W6*W7*W8*W9*W:*W;*W<*W=*W>*W?*W@*WA*WB*WC*WD*WE*WF*WG*WH*WI*WJ*WK*WL*WM*WN*WO*WP*WQ*WR*WS*WT*WU*WV*WW*WX*WY*WZ*W[*W\*W]*W^*W_*W`*Wa*Wb*Wc*Wd*We*Wf*Wg*Wh*Wi*Wj*Wk*Wl*Wm*Wn*Wo*Wp*Wq*Wr*Ws*Wt*Wu*Wv*Ww*Wx*Wy*Wz*W{*W|*W}*W~*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W*W ++X +X +X +X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X +X!+X"+X#+X$+X%+X&+X'+X(+X)+X*+X++X,+X-+X.+X/+X0+X1+X2+X3+X4+X5+X6+X7+X8+X9+X:+X;+X<+X=+X>+X?+X@+XA+XB+XC+XD+XE+XF+XG+XH+XI+XJ+XK+XL+XM+XN+XO+XP+XQ+XR+XS+XT+XU+XV+XW+XX+XY+XZ+X[+X\+X]+X^+X_+X`+Xa+Xb+Xc+Xd+Xe+Xf+Xg+Xh+Xi+Xj+Xk+Xl+Xm+Xn+Xo+Xp+Xq+Xr+Xs+Xt+Xu+Xv+Xw+Xx+Xy+Xz+X{+X|+X}+X~+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X +,Y ,Y ,Y ,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y ,Y!,Y",Y#,Y$,Y%,Y&,Y',Y(,Y),Y*,Y+,Y,,Y-,Y.,Y/,Y0,Y1,Y2,Y3,Y4,Y5,Y6,Y7,Y8,Y9,Y:,Y;,Y<,Y=,Y>,Y?,Y@,YA,YB,YC,YD,YE,YF,YG,YH,YI,YJ,YK,YL,YM,YN,YO,YP,YQ,YR,YS,YT,YU,YV,YW,YX,YY,YZ,Y[,Y\,Y],Y^,Y_,Y`,Ya,Yb,Yc,Yd,Ye,Yf,Yg,Yh,Yi,Yj,Yk,Yl,Ym,Yn,Yo,Yp,Yq,Yr,Ys,Yt,Yu,Yv,Yw,Yx,Yy,Yz,Y{,Y|,Y},Y~,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y +-Z -Z -Z -Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z -Z!-Z"-Z#-Z$-Z%-Z&-Z'-Z(-Z)-Z*-Z+-Z,-Z--Z.-Z/-Z0-Z1-Z2-Z3-Z4-Z5-Z6-Z7-Z8-Z9-Z:-Z;-Z<-Z=-Z>-Z?-Z@-ZA-ZB-ZC-ZD-ZE-ZF-ZG-ZH-ZI-ZJ-ZK-ZL-ZM-ZN-ZO-ZP-ZQ-ZR-ZS-ZT-ZU-ZV-ZW-ZX-ZY-ZZ-Z[-Z\-Z]-Z^-Z_-Z`-Za-Zb-Zc-Zd-Ze-Zf-Zg-Zh-Zi-Zj-Zk-Zl-Zm-Zn-Zo-Zp-Zq-Zr-Zs-Zt-Zu-Zv-Zw-Zx-Zy-Zz-Z{-Z|-Z}-Z~-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z-Z +.[ .[ .[ .[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[ .[!.[".[#.[$.[%.[&.['.[(.[).[*.[+.[,.[-.[..[/.[0.[1.[2.[3.[4.[5.[6.[7.[8.[9.[:.[;.[<.[=.[>.[?.[@.[A.[B.[C.[D.[E.[F.[G.[H.[I.[J.[K.[L.[M.[N.[O.[P.[Q.[R.[S.[T.[U.[V.[W.[X.[Y.[Z.[[.[\.[].[^.[_.[`.[a.[b.[c.[d.[e.[f.[g.[h.[i.[j.[k.[l.[m.[n.[o.[p.[q.[r.[s.[t.[u.[v.[w.[x.[y.[z.[{.[|.[}.[~.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[.[ +/\ /\ /\ /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\ /\!/\"/\#/\$/\%/\&/\'/\(/\)/\*/\+/\,/\-/\./\//\0/\1/\2/\3/\4/\5/\6/\7/\8/\9/\:/\;/\/\?/\@/\A/\B/\C/\D/\E/\F/\G/\H/\I/\J/\K/\L/\M/\N/\O/\P/\Q/\R/\S/\T/\U/\V/\W/\X/\Y/\Z/\[/\\/\]/\^/\_/\`/\a/\b/\c/\d/\e/\f/\g/\h/\i/\j/\k/\l/\m/\n/\o/\p/\q/\r/\s/\t/\u/\v/\w/\x/\y/\z/\{/\|/\}/\~/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\ +0] 0] 0] 0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0] 0]!0]"0]#0]$0]%0]&0]'0](0])0]*0]+0],0]-0].0]/0]00]10]20]30]40]50]60]70]80]90]:0];0]<0]=0]>0]?0]@0]A0]B0]C0]D0]E0]F0]G0]H0]I0]J0]K0]L0]M0]N0]O0]P0]Q0]R0]S0]T0]U0]V0]W0]X0]Y0]Z0][0]\0]]0]^0]_0]`0]a0]b0]c0]d0]e0]f0]g0]h0]i0]j0]k0]l0]m0]n0]o0]p0]q0]r0]s0]t0]u0]v0]w0]x0]y0]z0]{0]|0]}0]~0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0]0] +1^ 1^ 1^ 1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^ 1^!1^"1^#1^$1^%1^&1^'1^(1^)1^*1^+1^,1^-1^.1^/1^01^11^21^31^41^51^61^71^81^91^:1^;1^<1^=1^>1^?1^@1^A1^B1^C1^D1^E1^F1^G1^H1^I1^J1^K1^L1^M1^N1^O1^P1^Q1^R1^S1^T1^U1^V1^W1^X1^Y1^Z1^[1^\1^]1^^1^_1^`1^a1^b1^c1^d1^e1^f1^g1^h1^i1^j1^k1^l1^m1^n1^o1^p1^q1^r1^s1^t1^u1^v1^w1^x1^y1^z1^{1^|1^}1^~1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^1^ +2_ 2_ 2_ 2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_ 2_!2_"2_#2_$2_%2_&2_'2_(2_)2_*2_+2_,2_-2_.2_/2_02_12_22_32_42_52_62_72_82_92_:2_;2_<2_=2_>2_?2_@2_A2_B2_C2_D2_E2_F2_G2_H2_I2_J2_K2_L2_M2_N2_O2_P2_Q2_R2_S2_T2_U2_V2_W2_X2_Y2_Z2_[2_\2_]2_^2__2_`2_a2_b2_c2_d2_e2_f2_g2_h2_i2_j2_k2_l2_m2_n2_o2_p2_q2_r2_s2_t2_u2_v2_w2_x2_y2_z2_{2_|2_}2_~2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_2_ +3` 3` 3` 3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3` 3`!3`"3`#3`$3`%3`&3`'3`(3`)3`*3`+3`,3`-3`.3`/3`03`13`23`33`43`53`63`73`83`93`:3`;3`<3`=3`>3`?3`@3`A3`B3`C3`D3`E3`F3`G3`H3`I3`J3`K3`L3`M3`N3`O3`P3`Q3`R3`S3`T3`U3`V3`W3`X3`Y3`Z3`[3`\3`]3`^3`_3``3`a3`b3`c3`d3`e3`f3`g3`h3`i3`j3`k3`l3`m3`n3`o3`p3`q3`r3`s3`t3`u3`v3`w3`x3`y3`z3`{3`|3`}3`~3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3`3` +4a 4a 4a 4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a 4a!4a"4a#4a$4a%4a&4a'4a(4a)4a*4a+4a,4a-4a.4a/4a04a14a24a34a44a54a64a74a84a94a:4a;4a<4a=4a>4a?4a@4aA4aB4aC4aD4aE4aF4aG4aH4aI4aJ4aK4aL4aM4aN4aO4aP4aQ4aR4aS4aT4aU4aV4aW4aX4aY4aZ4a[4a\4a]4a^4a_4a`4aa4ab4ac4ad4ae4af4ag4ah4ai4aj4ak4al4am4an4ao4ap4aq4ar4as4at4au4av4aw4ax4ay4az4a{4a|4a}4a~4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a +5b 5b 5b 5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b 5b!5b"5b#5b$5b%5b&5b'5b(5b)5b*5b+5b,5b-5b.5b/5b05b15b25b35b45b55b65b75b85b95b:5b;5b<5b=5b>5b?5b@5bA5bB5bC5bD5bE5bF5bG5bH5bI5bJ5bK5bL5bM5bN5bO5bP5bQ5bR5bS5bT5bU5bV5bW5bX5bY5bZ5b[5b\5b]5b^5b_5b`5ba5bb5bc5bd5be5bf5bg5bh5bi5bj5bk5bl5bm5bn5bo5bp5bq5br5bs5bt5bu5bv5bw5bx5by5bz5b{5b|5b}5b~5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b +6c 6c 6c 6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c 6c!6c"6c#6c$6c%6c&6c'6c(6c)6c*6c+6c,6c-6c.6c/6c06c16c26c36c46c56c66c76c86c96c:6c;6c<6c=6c>6c?6c@6cA6cB6cC6cD6cE6cF6cG6cH6cI6cJ6cK6cL6cM6cN6cO6cP6cQ6cR6cS6cT6cU6cV6cW6cX6cY6cZ6c[6c\6c]6c^6c_6c`6ca6cb6cc6cd6ce6cf6cg6ch6ci6cj6ck6cl6cm6cn6co6cp6cq6cr6cs6ct6cu6cv6cw6cx6cy6cz6c{6c|6c}6c~6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c +7d 7d 7d 7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d 7d!7d"7d#7d$7d%7d&7d'7d(7d)7d*7d+7d,7d-7d.7d/7d07d17d27d37d47d57d67d77d87d97d:7d;7d<7d=7d>7d?7d@7dA7dB7dC7dD7dE7dF7dG7dH7dI7dJ7dK7dL7dM7dN7dO7dP7dQ7dR7dS7dT7dU7dV7dW7dX7dY7dZ7d[7d\7d]7d^7d_7d`7da7db7dc7dd7de7df7dg7dh7di7dj7dk7dl7dm7dn7do7dp7dq7dr7ds7dt7du7dv7dw7dx7dy7dz7d{7d|7d}7d~7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d +8e 8e 8e 8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e 8e!8e"8e#8e$8e%8e&8e'8e(8e)8e*8e+8e,8e-8e.8e/8e08e18e28e38e48e58e68e78e88e98e:8e;8e<8e=8e>8e?8e@8eA8eB8eC8eD8eE8eF8eG8eH8eI8eJ8eK8eL8eM8eN8eO8eP8eQ8eR8eS8eT8eU8eV8eW8eX8eY8eZ8e[8e\8e]8e^8e_8e`8ea8eb8ec8ed8ee8ef8eg8eh8ei8ej8ek8el8em8en8eo8ep8eq8er8es8et8eu8ev8ew8ex8ey8ez8e{8e|8e}8e~8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e +9f 9f 9f 9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f 9f!9f"9f#9f$9f%9f&9f'9f(9f)9f*9f+9f,9f-9f.9f/9f09f19f29f39f49f59f69f79f89f99f:9f;9f<9f=9f>9f?9f@9fA9fB9fC9fD9fE9fF9fG9fH9fI9fJ9fK9fL9fM9fN9fO9fP9fQ9fR9fS9fT9fU9fV9fW9fX9fY9fZ9f[9f\9f]9f^9f_9f`9fa9fb9fc9fd9fe9ff9fg9fh9fi9fj9fk9fl9fm9fn9fo9fp9fq9fr9fs9ft9fu9fv9fw9fx9fy9fz9f{9f|9f}9f~9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f +:g :g :g :g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g :g!:g":g#:g$:g%:g&:g':g(:g):g*:g+:g,:g-:g.:g/:g0:g1:g2:g3:g4:g5:g6:g7:g8:g9:g::g;:g<:g=:g>:g?:g@:gA:gB:gC:gD:gE:gF:gG:gH:gI:gJ:gK:gL:gM:gN:gO:gP:gQ:gR:gS:gT:gU:gV:gW:gX:gY:gZ:g[:g\:g]:g^:g_:g`:ga:gb:gc:gd:ge:gf:gg:gh:gi:gj:gk:gl:gm:gn:go:gp:gq:gr:gs:gt:gu:gv:gw:gx:gy:gz:g{:g|:g}:g~:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g:g +;h ;h ;h ;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h ;h!;h";h#;h$;h%;h&;h';h(;h);h*;h+;h,;h-;h.;h/;h0;h1;h2;h3;h4;h5;h6;h7;h8;h9;h:;h;;h<;h=;h>;h?;h@;hA;hB;hC;hD;hE;hF;hG;hH;hI;hJ;hK;hL;hM;hN;hO;hP;hQ;hR;hS;hT;hU;hV;hW;hX;hY;hZ;h[;h\;h];h^;h_;h`;ha;hb;hc;hd;he;hf;hg;hh;hi;hj;hk;hl;hm;hn;ho;hp;hq;hr;hs;ht;hu;hv;hw;hx;hy;hz;h{;h|;h};h~;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h;h +=j?=j@=jA=jB=jC=jD=jE=jF=jG=jH=jI=jJ=jK=jL=jM=jN=jO=jP=jQ=jR=jS=jT=jU=jV=jW=jX=jY=jZ=j[=j\=j]=j^=j_=j`=ja=jb=jc=jd=je=jf=jg=jh=ji=jj=jk=jl=jm=jn=jo=jp=jq=jr=js=jt=ju=jv=jw=jx=jy=jz=j{=j|=j}=j~=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j=j +>k >k >k >k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k >k!>k">k#>k$>k%>k&>k'>k(>k)>k*>k+>k,>k->k.>k/>k0>k1>k2>k3>k4>k5>k6>k7>k8>k9>k:>k;>k<>k=>k>>k?>k@>kA>kB>kC>kD>kE>kF>kG>kH>kI>kJ>kK>kL>kM>kN>kO>kP>kQ>kR>kS>kT>kU>kV>kW>kX>kY>kZ>k[>k\>k]>k^>k_>k`>ka>kb>kc>kd>ke>kf>kg>kh>ki>kj>kk>kl>km>kn>ko>kp>kq>kr>ks>kt>ku>kv>kw>kx>ky>kz>k{>k|>k}>k~>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k>k +?l ?l ?l ?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l ?l!?l"?l#?l$?l%?l&?l'?l(?l)?l*?l+?l,?l-?l.?l/?l0?l1?l2?l3?l4?l5?l6?l7?l8?l9?l:?l;?l?l??l@?lA?lB?lC?lD?lE?lF?lG?lH?lI?lJ?lK?lL?lM?lN?lO?lP?lQ?lR?lS?lT?lU?lV?lW?lX?lY?lZ?l[?l\?l]?l^?l_?l`?la?lb?lc?ld?le?lf?lg?lh?li?lj?lk?ll?lm?ln?lo?lp?lq?lr?ls?lt?lu?lv?lw?lx?ly?lz?l{?l|?l}?l~?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l?l +@m @m @m @m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m @m!@m"@m#@m$@m%@m&@m'@m(@m)@m*@m+@m,@m-@m.@m/@m0@m1@m2@m3@m4@m5@m6@m7@m8@m9@m:@m;@m<@m=@m>@m?@m@@mA@mB@mC@mD@mE@mF@mG@mH@mI@mJ@mK@mL@mM@mN@mO@mP@mQ@mR@mS@mT@mU@mV@mW@mX@mY@mZ@m[@m\@m]@m^@m_@m`@ma@mb@mc@md@me@mf@mg@mh@mi@mj@mk@ml@mm@mn@mo@mp@mq@mr@ms@mt@mu@mv@mw@mx@my@mz@m{@m|@m}@m~@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m@m +An An An AnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAn An!An"An#An$An%An&An'An(An)An*An+An,An-An.An/An0An1An2An3An4An5An6An7An8An9An:An;AnAn?An@AnAAnBAnCAnDAnEAnFAnGAnHAnIAnJAnKAnLAnMAnNAnOAnPAnQAnRAnSAnTAnUAnVAnWAnXAnYAnZAn[An\An]An^An_An`AnaAnbAncAndAneAnfAngAnhAniAnjAnkAnlAnmAnnAnoAnpAnqAnrAnsAntAnuAnvAnwAnxAnyAnzAn{An|An}An~AnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAnAn +Bo Bo Bo BoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBo Bo!Bo"Bo#Bo$Bo%Bo&Bo'Bo(Bo)Bo*Bo+Bo,Bo-Bo.Bo/Bo0Bo1Bo2Bo3Bo4Bo5Bo6Bo7Bo8Bo9Bo:Bo;BoBo?Bo@BoABoBBoCBoDBoEBoFBoGBoHBoIBoJBoKBoLBoMBoNBoOBoPBoQBoRBoSBoTBoUBoVBoWBoXBoYBoZBo[Bo\Bo]Bo^Bo_Bo`BoaBobBocBodBoeBofBogBohBoiBojBokBolBomBonBooBopBoqBorBosBotBouBovBowBoxBoyBozBo{Bo|Bo}Bo~BoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBoBo +Cp Cp Cp CpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCp Cp!Cp"Cp#Cp$Cp%Cp&Cp'Cp(Cp)Cp*Cp+Cp,Cp-Cp.Cp/Cp0Cp1Cp2Cp3Cp4Cp5Cp6Cp7Cp8Cp9Cp:Cp;CpCp?Cp@CpACpBCpCCpDCpECpFCpGCpHCpICpJCpKCpLCpMCpNCpOCpPCpQCpRCpSCpTCpUCpVCpWCpXCpYCpZCp[Cp\Cp]Cp^Cp_Cp`CpaCpbCpcCpdCpeCpfCpgCphCpiCpjCpkCplCpmCpnCpoCppCpqCprCpsCptCpuCpvCpwCpxCpyCpzCp{Cp|Cp}Cp~CpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCpCp +Dq Dq Dq DqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDq Dq!Dq"Dq#Dq$Dq%Dq&Dq'Dq(Dq)Dq*Dq+Dq,Dq-Dq.Dq/Dq0Dq1Dq2Dq3Dq4Dq5Dq6Dq7Dq8Dq9Dq:Dq;DqDq?Dq@DqADqBDqCDqDDqEDqFDqGDqHDqIDqJDqKDqLDqMDqNDqODqPDqQDqRDqSDqTDqUDqVDqWDqXDqYDqZDq[Dq\Dq]Dq^Dq_Dq`DqaDqbDqcDqdDqeDqfDqgDqhDqiDqjDqkDqlDqmDqnDqoDqpDqqDqrDqsDqtDquDqvDqwDqxDqyDqzDq{Dq|Dq}Dq~DqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDqDq +Er Er Er ErErErErErErErErErErErErErErErErErErEr Er!Er"Er#Er$Er%Er&Er'Er(Er)Er*Er+Er,Er-Er.Er/Er0Er1Er2Er3Er4Er5Er6Er7Er8Er9Er:Er;ErEr?Er@ErAErBErCErDErEErFErGErHErIErJErKErLErMErNErOErPErQErRErSErTErUErVErWErXErYErZEr[Er\Er]Er^Er_Er`EraErbErcErdEreErfErgErhEriErjErkErlErmErnEroErpErqErrErsErtEruErvErwErxEryErzEr{Er|Er}Er~ErErErErErErErErErErErErErErErErErErErErErErErErErErErErErErErErErErErErErErErErErErErErErErErErErErErErErErErErErErErErErErErErErErErErErErErErErErErErErErErErErErErEr +Fs Fs Fs FsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFs Fs!Fs"Fs#Fs$Fs%Fs&Fs'Fs(Fs)Fs*Fs+Fs,Fs-Fs.Fs/Fs0Fs1Fs2Fs3Fs4Fs5Fs6Fs7Fs8Fs9Fs:Fs;FsFs?Fs@FsAFsBFsCFsDFsEFsFFsGFsHFsIFsJFsKFsLFsMFsNFsOFsPFsQFsRFsSFsTFsUFsVFsWFsXFsYFsZFs[Fs\Fs]Fs^Fs_Fs`FsaFsbFscFsdFseFsfFsgFshFsiFsjFskFslFsmFsnFsoFspFsqFsrFssFstFsuFsvFswFsxFsyFszFs{Fs|Fs}Fs~FsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFsFs +Gt Gt Gt GtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGt Gt!Gt"Gt#Gt$Gt%Gt&Gt'Gt(Gt)Gt*Gt+Gt,Gt-Gt.Gt/Gt0Gt1Gt2Gt3Gt4Gt5Gt6Gt7Gt8Gt9Gt:Gt;GtGt?Gt@GtAGtBGtCGtDGtEGtFGtGGtHGtIGtJGtKGtLGtMGtNGtOGtPGtQGtRGtSGtTGtUGtVGtWGtXGtYGtZGt[Gt\Gt]Gt^Gt_Gt`GtaGtbGtcGtdGteGtfGtgGthGtiGtjGtkGtlGtmGtnGtoGtpGtqGtrGtsGttGtuGtvGtwGtxGtyGtzGt{Gt|Gt}Gt~GtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGtGt +Hu Hu Hu HuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHu Hu!Hu"Hu#Hu$Hu%Hu&Hu'Hu(Hu)Hu*Hu+Hu,Hu-Hu.Hu/Hu0Hu1Hu2Hu3Hu4Hu5Hu6Hu7Hu8Hu9Hu:Hu;HuHu?Hu@HuAHuBHuCHuDHuEHuFHuGHuHHuIHuJHuKHuLHuMHuNHuOHuPHuQHuRHuSHuTHuUHuVHuWHuXHuYHuZHu[Hu\Hu]Hu^Hu_Hu`HuaHubHucHudHueHufHugHuhHuiHujHukHulHumHunHuoHupHuqHurHusHutHuuHuvHuwHuxHuyHuzHu{Hu|Hu}Hu~HuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHuHu +Iv Iv Iv IvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIv Iv!Iv"Iv#Iv$Iv%Iv&Iv'Iv(Iv)Iv*Iv+Iv,Iv-Iv.Iv/Iv0Iv1Iv2Iv3Iv4Iv5Iv6Iv7Iv8Iv9Iv:Iv;IvIv?Iv@IvAIvBIvCIvDIvEIvFIvGIvHIvIIvJIvKIvLIvMIvNIvOIvPIvQIvRIvSIvTIvUIvVIvWIvXIvYIvZIv[Iv\Iv]Iv^Iv_Iv`IvaIvbIvcIvdIveIvfIvgIvhIviIvjIvkIvlIvmIvnIvoIvpIvqIvrIvsIvtIvuIvvIvwIvxIvyIvzIv{Iv|Iv}Iv~IvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIvIv +Jw Jw Jw JwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJw Jw!Jw"Jw#Jw$Jw%Jw&Jw'Jw(Jw)Jw*Jw+Jw,Jw-Jw.Jw/Jw0Jw1Jw2Jw3Jw4Jw5Jw6Jw7Jw8Jw9Jw:Jw;JwJw?Jw@JwAJwBJwCJwDJwEJwFJwGJwHJwIJwJJwKJwLJwMJwNJwOJwPJwQJwRJwSJwTJwUJwVJwWJwXJwYJwZJw[Jw\Jw]Jw^Jw_Jw`JwaJwbJwcJwdJweJwfJwgJwhJwiJwjJwkJwlJwmJwnJwoJwpJwqJwrJwsJwtJwuJwvJwwJwxJwyJwzJw{Jw|Jw}Jw~JwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJwJw +Kx Kx Kx KxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKx Kx!Kx"Kx#Kx$Kx%Kx&Kx'Kx(Kx)Kx*Kx+Kx,Kx-Kx.Kx/Kx0Kx1Kx2Kx3Kx4Kx5Kx6Kx7Kx8Kx9Kx:Kx;KxKx?Kx@KxAKxBKxCKxDKxEKxFKxGKxHKxIKxJKxKKxLKxMKxNKxOKxPKxQKxRKxSKxTKxUKxVKxWKxXKxYKxZKx[Kx\Kx]Kx^Kx_Kx`KxaKxbKxcKxdKxeKxfKxgKxhKxiKxjKxkKxlKxmKxnKxoKxpKxqKxrKxsKxtKxuKxvKxwKxxKxyKxzKx{Kx|Kx}Kx~KxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKxKx +Ly Ly Ly LyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLy Ly!Ly"Ly#Ly$Ly%Ly&Ly'Ly(Ly)Ly*Ly+Ly,Ly-Ly.Ly/Ly0Ly1Ly2Ly3Ly4Ly5Ly6Ly7Ly8Ly9Ly:Ly;LyLy?Ly@LyALyBLyCLyDLyELyFLyGLyHLyILyJLyKLyLLyMLyNLyOLyPLyQLyRLySLyTLyULyVLyWLyXLyYLyZLy[Ly\Ly]Ly^Ly_Ly`LyaLybLycLydLyeLyfLygLyhLyiLyjLykLylLymLynLyoLypLyqLyrLysLytLyuLyvLywLyxLyyLyzLy{Ly|Ly}Ly~LyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLyLy +Mz Mz Mz MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMz Mz!Mz"Mz#Mz$Mz%Mz&Mz'Mz(Mz)Mz*Mz+Mz,Mz-Mz.Mz/Mz0Mz1Mz2Mz3Mz4Mz5Mz6Mz7Mz8Mz9Mz:Mz;MzMz?Mz@MzAMzBMzCMzDMzEMzFMzGMzHMzIMzJMzKMzLMzMMzNMzOMzPMzQMzRMzSMzTMzUMzVMzWMzXMzYMzZMz[Mz\Mz]Mz^Mz_Mz`MzaMzbMzcMzdMzeMzfMzgMzhMziMzjMzkMzlMzmMznMzoMzpMzqMzrMzsMztMzuMzvMzwMzxMzyMzzMz{Mz|Mz}Mz~MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMz +N{ N{ N{ N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{ N{!N{"N{#N{$N{%N{&N{'N{(N{)N{*N{+N{,N{-N{.N{/N{0N{1N{2N{3N{4N{5N{6N{7N{8N{9N{:N{;N{N{?N{@N{AN{BN{CN{DN{EN{FN{GN{HN{IN{JN{KN{LN{MN{NN{ON{PN{QN{RN{SN{TN{UN{VN{WN{XN{YN{ZN{[N{\N{]N{^N{_N{`N{aN{bN{cN{dN{eN{fN{gN{hN{iN{jN{kN{lN{mN{nN{oN{pN{qN{rN{sN{tN{uN{vN{wN{xN{yN{zN{{N{|N{}N{~N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{ +O| O| O| O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O| O|!O|"O|#O|$O|%O|&O|'O|(O|)O|*O|+O|,O|-O|.O|/O|0O|1O|2O|3O|4O|5O|6O|7O|8O|9O|:O|;O|O|?O|@O|AO|BO|CO|DO|EO|FO|GO|HO|IO|JO|KO|LO|MO|NO|OO|PO|QO|RO|SO|TO|UO|VO|WO|XO|YO|ZO|[O|\O|]O|^O|_O|`O|aO|bO|cO|dO|eO|fO|gO|hO|iO|jO|kO|lO|mO|nO|oO|pO|qO|rO|sO|tO|uO|vO|wO|xO|yO|zO|{O||O|}O|~O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O|O| +P} P} P} P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P} P}!P}"P}#P}$P}%P}&P}'P}(P})P}*P}+P},P}-P}.P}/P}0P}1P}2P}3P}4P}5P}6P}7P}8P}9P}:P};P}P}?P}@P}AP}BP}CP}DP}EP}FP}GP}HP}IP}JP}KP}LP}MP}NP}OP}PP}QP}RP}SP}TP}UP}VP}WP}XP}YP}ZP}[P}\P}]P}^P}_P}`P}aP}bP}cP}dP}eP}fP}gP}hP}iP}jP}kP}lP}mP}nP}oP}pP}qP}rP}sP}tP}uP}vP}wP}xP}yP}zP}{P}|P}}P}~P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P}P} +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~0Q~1Q~2Q~3Q~4Q~5Q~6Q~7Q~8Q~9Q~:Q~;Q~Q~?Q~@Q~AQ~BQ~CQ~DQ~EQ~FQ~GQ~HQ~IQ~JQ~KQ~LQ~MQ~NQ~OQ~PQ~QQ~RQ~SQ~TQ~UQ~VQ~WQ~XQ~YQ~ZQ~[Q~\Q~]Q~^Q~_Q~`Q~aQ~bQ~cQ~dQ~eQ~fQ~gQ~hQ~iQ~jQ~kQ~lQ~mQ~nQ~oQ~pQ~qQ~rQ~sQ~tQ~uQ~vQ~wQ~xQ~yQ~zQ~{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~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~ +R R R RRRRRRRRRRRRRRRRRRR R!R"R#R$R%R&R'R(R)R*R+R,R-R.R/R0R1R2R3R4R5R6R7R8R9R:R;RR?R@RARBRCRDRERFRGRHRIRJRKRLRMRNRORPRQRRRSRTRURVRWRXRYRZR[R\R]R^R_R`RaRbRcRdReRfRgRhRiRjRkRlRmRnRoRpRqRrRsRtRuRvRwRxRyRzR{R|R}R~RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR +S S S SSSSSSSSSSSSSSSSSSS S!S"S#S$S%S&S'S(S)S*S+S,S-S.S/S0S1S2S3S4S5S6S7S8S9S:S;SS?S@SASBSCSDSESFSGSHSISJSKSLSMSNSOSPSQSRSSSTSUSVSWSXSYSZS[S\S]S^S_S`SaSbScSdSeSfSgShSiSjSkSlSmSnSoSpSqSrSsStSuSvSwSxSySzS{S|S}S~SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS +T T T TTTTTTTTTTTTTTTTTTT T!T"T#T$T%T&T'T(T)T*T+T,T-T.T/T0T1T2T3T4T5T6T7T8T9T:T;TT?T@TATBTCTDTETFTGTHTITJTKTLTMTNTOTPTQTRTSTTTUTVTWTXTYTZT[T\T]T^T_T`TaTbTcTdTeTfTgThTiTjTkTlTmTnToTpTqTrTsTtTuTvTwTxTyTzT{T|T}T~TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT +U U U UUUUUUUUUUUUUUUUUUU U!U"U#U$U%U&U'U(U)U*U+U,U-U.U/U0U1U2U3U4U5U6U7U8U9U:U;UU?U@UAUBUCUDUEUFUGUHUIUJUKULUMUNUOUPUQURUSUTUUUVUWUXUYUZU[U\U]U^U_U`UaUbUcUdUeUfUgUhUiUjUkUlUmUnUoUpUqUrUsUtUuUvUwUxUyUzU{U|U}U~UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU +V V V VVVVVVVVVVVVVVVVVVV V!V"V#V$V%V&V'V(V)V*V+V,V-V.V/V0V1V2V3V4V5V6V7V8V9V:V;VV?V@VAVBVCVDVEVFVGVHVIVJVKVLVMVNVOVPVQVRVSVTVUVVVWVXVYVZV[V\V]V^V_V`VaVbVcVdVeVfVgVhViVjVkVlVmVnVoVpVqVrVsVtVuVvVwVxVyVzV{V|V}V~VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV +W W W WWWWWWWWWWWWWWWWWWW W!W"W#W$W%W&W'W(W)W*W+W,W-W.W/W0W1W2W3W4W5W6W7W8W9W:W;WW?W@WAWBWCWDWEWFWGWHWIWJWKWLWMWNWOWPWQWRWSWTWUWVWWWXWYWZW[W\W]W^W_W`WaWbWcWdWeWfWgWhWiWjWkWlWmWnWoWpWqWrWsWtWuWvWwWxWyWzW{W|W}W~WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW +X X X XXXXXXXXXXXXXXXXXXX X!X"X#X$X%X&X'X(X)X*X+X,X-X.X/X0X1X2X3X4X5X6X7X8X9X:X;XX?X@XAXBXCXDXEXFXGXHXIXJXKXLXMXNXOXPXQXRXSXTXUXVXWXXXYXZX[X\X]X^X_X`XaXbXcXdXeXfXgXhXiXjXkXlXmXnXoXpXqXrXsXtXuXvXwXxXyXzX{X|X}X~XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +Y Y Y YYYYYYYYYYYYYYYYYYY Y!Y"Y#Y$Y%Y&Y'Y(Y)Y*Y+Y,Y-Y.Y/Y0Y1Y2Y3Y4Y5Y6Y7Y8Y9Y:Y;YY?Y@YAYBYCYDYEYFYGYHYIYJYKYLYMYNYOYPYQYRYSYTYUYVYWYXYYYZY[Y\Y]Y^Y_Y`YaYbYcYdYeYfYgYhYiYjYkYlYmYnYoYpYqYrYsYtYuYvYwYxYyYzY{Y|Y}Y~YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY +Z Z Z ZZZZZZZZZZZZZZZZZZZ Z!Z"Z#Z$Z%Z&Z'Z(Z)Z*Z+Z,Z-Z.Z/Z0Z1Z2Z3Z4Z5Z6Z7Z8Z9Z:Z;ZZ?Z@ZAZBZCZDZEZFZGZHZIZJZKZLZMZNZOZPZQZRZSZTZUZVZWZXZYZZZ[Z\Z]Z^Z_Z`ZaZbZcZdZeZfZgZhZiZjZkZlZmZnZoZpZqZrZsZtZuZvZwZxZyZzZ{Z|Z}Z~ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ +[ [ [ [[[[[[[[[[[[[[[[[[[ [!["[#[$[%[&['[([)[*[+[,[-[.[/[0[1[2[3[4[5[6[7[8[9[:[;[<[=[>[?[@[A[B[C[D[E[F[G[H[I[J[K[L[M[N[O[P[Q[R[S[T[U[V[W[X[Y[Z[[[\[][^[_[`[a[b[c[d[e[f[g[h[i[j[k[l[m[n[o[p[q[r[s[t[u[v[w[x[y[z[{[|[}[~[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[ +\ \ \ \\\\\\\\\\\\\\\\\\\ \!\"\#\$\%\&\'\(\)\*\+\,\-\.\/\0\1\2\3\4\5\6\7\8\9\:\;\<\=\>\?\@\A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z\[\\\]\^\_\`\a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z\{\|\}\~\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ +] ] ] ]]]]]]]]]]]]]]]]]]] ]!]"]#]$]%]&]'](])]*]+],]-].]/]0]1]2]3]4]5]6]7]8]9]:];]<]=]>]?]@]A]B]C]D]E]F]G]H]I]J]K]L]M]N]O]P]Q]R]S]T]U]V]W]X]Y]Z][]\]]]^]_]`]a]b]c]d]e]f]g]h]i]j]k]l]m]n]o]p]q]r]s]t]u]v]w]x]y]z]{]|]}]~]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] +^ ^ ^ ^^^^^^^^^^^^^^^^^^^ ^!^"^#^$^%^&^'^(^)^*^+^,^-^.^/^0^1^2^3^4^5^6^7^8^9^:^;^<^=^>^?^@^A^B^C^D^E^F^G^H^I^J^K^L^M^N^O^P^Q^R^S^T^U^V^W^X^Y^Z^[^\^]^^^_^`^a^b^c^d^e^f^g^h^i^j^k^l^m^n^o^p^q^r^s^t^u^v^w^x^y^z^{^|^}^~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +_ _ _ ___________________ _!_"_#_$_%_&_'_(_)_*_+_,_-_._/_0_1_2_3_4_5_6_7_8_9_:_;_<_=_>_?_@_A_B_C_D_E_F_G_H_I_J_K_L_M_N_O_P_Q_R_S_T_U_V_W_X_Y_Z_[_\_]_^___`_a_b_c_d_e_f_g_h_i_j_k_l_m_n_o_p_q_r_s_t_u_v_w_x_y_z_{_|_}_~____________________________________________________________________________________ +` ` ` ``````````````````` `!`"`#`$`%`&`'`(`)`*`+`,`-`.`/`0`1`2`3`4`5`6`7`8`9`:`;`<`=`>`?`@`A`B`C`D`E`F`G`H`I`J`K`L`M`N`O`P`Q`R`S`T`U`V`W`X`Y`Z`[`\`]`^`_```a`b`c`d`e`f`g`h`i`j`k`l`m`n`o`p`q`r`s`t`u`v`w`x`y`z`{`|`}`~```````````````````````````````````````````````````````````````````````````````````` +a a a aaaaaaaaaaaaaaaaaaa a!a"a#a$a%a&a'a(a)a*a+a,a-a.a/a0a1a2a3a4a5a6a7a8a9a:a;aa?a@aAaBaCaDaEaFaGaHaIaJaKaLaMaNaOaPaQaRaSaTaUaVaWaXaYaZa[a\a]a^a_a`aaabacadaeafagahaiajakalamanaoapaqarasatauavawaxayaza{a|a}a~aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +b b b bbbbbbbbbbbbbbbbbbb b!b"b#b$b%b&b'b(b)b*b+b,b-b.b/b0b1b2b3b4b5b6b7b8b9b:b;bb?b@bAbBbCbDbEbFbGbHbIbJbKbLbMbNbObPbQbRbSbTbUbVbWbXbYbZb[b\b]b^b_b`babbbcbdbebfbgbhbibjbkblbmbnbobpbqbrbsbtbubvbwbxbybzb{b|b}b~bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +c c c ccccccccccccccccccc c!c"c#c$c%c&c'c(c)c*c+c,c-c.c/c0c1c2c3c4c5c6c7c8c9c:c;cc?c@cAcBcCcDcEcFcGcHcIcJcKcLcMcNcOcPcQcRcScTcUcVcWcXcYcZc[c\c]c^c_c`cacbcccdcecfcgchcicjckclcmcncocpcqcrcsctcucvcwcxcyczc{c|c}c~cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +d d d ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;dd?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd +e e e eeeeeeeeeeeeeeeeeee e!e"e#e$e%e&e'e(e)e*e+e,e-e.e/e0e1e2e3e4e5e6e7e8e9e:e;ee?e@eAeBeCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZe[e\e]e^e_e`eaebecedeeefegeheiejekelemeneoepeqereseteuevewexeyeze{e|e}e~eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +f f f fffffffffffffffffff f!f"f#f$f%f&f'f(f)f*f+f,f-f.f/f0f1f2f3f4f5f6f7f8f9f:f;ff?f@fAfBfCfDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfXfYfZf[f\f]f^f_f`fafbfcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufvfwfxfyfzf{f|f}f~ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +g g g ggggggggggggggggggg g!g"g#g$g%g&g'g(g)g*g+g,g-g.g/g0g1g2g3g4g5g6g7g8g9g:g;gg?g@gAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg[g\g]g^g_g`gagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzg{g|g}g~gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg +h h h hhhhhhhhhhhhhhhhhhh h!h"h#h$h%h&h'h(h)h*h+h,h-h.h/h0h1h2h3h4h5h6h7h8h9h:h;hh?h@hAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh[h\h]h^h_h`hahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzh{h|h}h~hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh +i i i iiiiiiiiiiiiiiiiiii i!i"i#i$i%i&i'i(i)i*i+i,i-i.i/i0i1i2i3i4i5i6i7i8i9i:i;ii?i@iAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi[i\i]i^i_i`iaibicidieifigihiiijikiliminioipiqirisitiuiviwixiyizi{i|i}i~iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii +j j j jjjjjjjjjjjjjjjjjjj j!j"j#j$j%j&j'j(j)j*j+j,j-j.j/j0j1j2j3j4j5j6j7j8j9j:j;jj?j@jAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj[j\j]j^j_j`jajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzj{j|j}j~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj +k k k kkkkkkkkkkkkkkkkkkk k!k"k#k$k%k&k'k(k)k*k+k,k-k.k/k0k1k2k3k4k5k6k7k8k9k:k;kk?k@kAkBkCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk[k\k]k^k_k`kakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzk{k|k}k~kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk +l l l lllllllllllllllllll l!l"l#l$l%l&l'l(l)l*l+l,l-l.l/l0l1l2l3l4l5l6l7l8l9l:l;ll?l@lAlBlClDlElFlGlHlIlJlKlLlMlNlOlPlQlRlSlTlUlVlWlXlYlZl[l\l]l^l_l`lalblcldlelflglhliljlklllmlnlolplqlrlsltlulvlwlxlylzl{l|l}l~llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll +m m m mmmmmmmmmmmmmmmmmmm m!m"m#m$m%m&m'm(m)m*m+m,m-m.m/m0m1m2m3m4m5m6m7m8m9m:m;mm?m@mAmBmCmDmEmFmGmHmImJmKmLmMmNmOmPmQmRmSmTmUmVmWmXmYmZm[m\m]m^m_m`mambmcmdmemfmgmhmimjmkmlmmmnmompmqmrmsmtmumvmwmxmymzm{m|m}m~mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm +n n n nnnnnnnnnnnnnnnnnnn n!n"n#n$n%n&n'n(n)n*n+n,n-n.n/n0n1n2n3n4n5n6n7n8n9n:n;nn?n@nAnBnCnDnEnFnGnHnInJnKnLnMnNnOnPnQnRnSnTnUnVnWnXnYnZn[n\n]n^n_n`nanbncndnenfngnhninjnknlnmnnnonpnqnrnsntnunvnwnxnynzn{n|n}n~nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +o o o ooooooooooooooooooo o!o"o#o$o%o&o'o(o)o*o+o,o-o.o/o0o1o2o3o4o5o6o7o8o9o:o;oo?o@oAoBoCoDoEoFoGoHoIoJoKoLoMoNoOoPoQoRoSoToUoVoWoXoYoZo[o\o]o^o_o`oaobocodoeofogohoiojokolomonooopoqorosotouovowoxoyozo{o|o}o~oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo +p p p ppppppppppppppppppp p!p"p#p$p%p&p'p(p)p*p+p,p-p.p/p0p1p2p3p4p5p6p7p8p9p:p;pp?p@pApBpCpDpEpFpGpHpIpJpKpLpMpNpOpPpQpRpSpTpUpVpWpXpYpZp[p\p]p^p_p`papbpcpdpepfpgphpipjpkplpmpnpopppqprpsptpupvpwpxpypzp{p|p}p~pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp +q q q qqqqqqqqqqqqqqqqqqq q!q"q#q$q%q&q'q(q)q*q+q,q-q.q/q0q1q2q3q4q5q6q7q8q9q:q;qq?q@qAqBqCqDqEqFqGqHqIqJqKqLqMqNqOqPqQqRqSqTqUqVqWqXqYqZq[q\q]q^q_q`qaqbqcqdqeqfqgqhqiqjqkqlqmqnqoqpqqqrqsqtquqvqwqxqyqzq{q|q}q~qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq +r r r rrrrrrrrrrrrrrrrrrr r!r"r#r$r%r&r'r(r)r*r+r,r-r.r/r0r1r2r3r4r5r6r7r8r9r:r;rr?r@rArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr[r\r]r^r_r`rarbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzr{r|r}r~rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr +s s s sssssssssssssssssss s!s"s#s$s%s&s's(s)s*s+s,s-s.s/s0s1s2s3s4s5s6s7s8s9s:s;ss?s@sAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTsUsVsWsXsYsZs[s\s]s^s_s`sasbscsdsesfsgshsisjskslsmsnsospsqsrssstsusvswsxsyszs{s|s}s~ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss +t t t ttttttttttttttttttt t!t"t#t$t%t&t't(t)t*t+t,t-t.t/t0t1t2t3t4t5t6t7t8t9t:t;tt?t@tAtBtCtDtEtFtGtHtItJtKtLtMtNtOtPtQtRtStTtUtVtWtXtYtZt[t\t]t^t_t`tatbtctdtetftgthtitjtktltmtntotptqtrtstttutvtwtxtytzt{t|t}t~tttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt +u u u uuuuuuuuuuuuuuuuuuu u!u"u#u$u%u&u'u(u)u*u+u,u-u.u/u0u1u2u3u4u5u6u7u8u9u:u;uu?u@uAuBuCuDuEuFuGuHuIuJuKuLuMuNuOuPuQuRuSuTuUuVuWuXuYuZu[u\u]u^u_u`uaubucudueufuguhuiujukulumunuoupuqurusutuuuvuwuxuyuzu{u|u}u~uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu +v v v vvvvvvvvvvvvvvvvvvv v!v"v#v$v%v&v'v(v)v*v+v,v-v.v/v0v1v2v3v4v5v6v7v8v9v:v;vv?v@vAvBvCvDvEvFvGvHvIvJvKvLvMvNvOvPvQvRvSvTvUvVvWvXvYvZv[v\v]v^v_v`vavbvcvdvevfvgvhvivjvkvlvmvnvovpvqvrvsvtvuvvvwvxvyvzv{v|v}v~vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv +w w w wwwwwwwwwwwwwwwwwww w!w"w#w$w%w&w'w(w)w*w+w,w-w.w/w0w1w2w3w4w5w6w7w8w9w:w;ww?w@wAwBwCwDwEwFwGwHwIwJwKwLwMwNwOwPwQwRwSwTwUwVwWwXwYwZw[w\w]w^w_w`wawbwcwdwewfwgwhwiwjwkwlwmwnwowpwqwrwswtwuwvwwwxwywzw{w|w}w~wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww +x x x xxxxxxxxxxxxxxxxxxx x!x"x#x$x%x&x'x(x)x*x+x,x-x.x/x0x1x2x3x4x5x6x7x8x9x:x;xx?x@xAxBxCxDxExFxGxHxIxJxKxLxMxNxOxPxQxRxSxTxUxVxWxXxYxZx[x\x]x^x_x`xaxbxcxdxexfxgxhxixjxkxlxmxnxoxpxqxrxsxtxuxvxwxxxyxzx{x|x}x~xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx +y y y yyyyyyyyyyyyyyyyyyy y!y"y#y$y%y&y'y(y)y*y+y,y-y.y/y0y1y2y3y4y5y6y7y8y9y:y;yy?y@yAyByCyDyEyFyGyHyIyJyKyLyMyNyOyPyQyRySyTyUyVyWyXyYyZy[y\y]y^y_y`yaybycydyeyfygyhyiyjykylymynyoypyqyrysytyuyvywyxyyyzy{y|y}y~yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy +z z z zzzzzzzzzzzzzzzzzzz z!z"z#z$z%z&z'z(z)z*z+z,z-z.z/z0z1z2z3z4z5z6z7z8z9z:z;zz?z@zAzBzCzDzEzFzGzHzIzJzKzLzMzNzOzPzQzRzSzTzUzVzWzXzYzZz[z\z]z^z_z`zazbzczdzezfzgzhzizjzkzlzmznzozpzqzrzsztzuzvzwzxzyzzz{z|z}z~zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz +{ { { {{{{{{{{{{{{{{{{{{{ {!{"{#{${%{&{'{({){*{+{,{-{.{/{0{1{2{3{4{5{6{7{8{9{:{;{<{={>{?{@{A{B{C{D{E{F{G{H{I{J{K{L{M{N{O{P{Q{R{S{T{U{V{W{X{Y{Z{[{\{]{^{_{`{a{b{c{d{e{f{g{h{i{j{k{l{m{n{o{p{q{r{s{t{u{v{w{x{y{z{{{|{}{~{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{ +| | | ||||||||||||||||||| |!|"|#|$|%|&|'|(|)|*|+|,|-|.|/|0|1|2|3|4|5|6|7|8|9|:|;|<|=|>|?|@|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|[|\|]|^|_|`|a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z|{|||}|~|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| +} } } }}}}}}}}}}}}}}}}}}} }!}"}#}$}%}&}'}(})}*}+},}-}.}/}0}1}2}3}4}5}6}7}8}9}:};}<}=}>}?}@}A}B}C}D}E}F}G}H}I}J}K}L}M}N}O}P}Q}R}S}T}U}V}W}X}Y}Z}[}\}]}^}_}`}a}b}c}d}e}f}g}h}i}j}k}l}m}n}o}p}q}r}s}t}u}v}w}x}y}z}{}|}}}~}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} +~ ~ ~ ~~~~~~~~~~~~~~~~~~~ ~!~"~#~$~%~&~'~(~)~*~+~,~-~.~/~0~1~2~3~4~5~6~7~8~9~:~;~<~=~>~?~@~A~B~C~D~E~F~G~H~I~J~K~L~M~N~O~P~Q~R~S~T~U~V~W~X~Y~Z~[~\~]~^~_~`~a~b~c~d~e~f~g~h~i~j~k~l~m~n~o~p~q~r~s~t~u~v~w~x~y~z~{~|~}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€ÀĀŀƀǀȀɀʀˀ̀̀΀πЀр +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÁāŁƁǁȁɁʁˁ́́΁ρЁс +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~‚ÂĂłƂǂȂɂʂ˂̂͂΂ςЂт +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ƒÃăŃƃǃȃɃʃ˃̃̓΃σЃу +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~„ÄĄńƄDŽȄɄʄ˄̄̈́΄τЄф +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~…ÅąŅƅDžȅɅʅ˅̅ͅ΅υЅх +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~†ÆĆņƆdžȆɆʆˆ̆͆ΆφІц +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~‡ÇćŇƇLJȇɇʇˇ͇̇·χЇч +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ˆÈĈňƈLjȈɈʈˈ͈̈ΈψЈш +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~‰ÉĉʼnƉljȉɉʉˉ͉̉ΉωЉщ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ŠÊĊŊƊNJȊɊʊˊ̊͊ΊϊЊъ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~‹ËċŋƋNjȋɋʋˋ̋͋΋ϋЋы +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ŒÌČŌƌnjȌɌʌˌ̌͌ΌόЌь +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÍčōƍǍȍɍʍˍ͍̍΍ύЍэ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ŽÎĎŎƎǎȎɎʎˎ͎̎ΎώЎю +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÏďŏƏǏȏɏʏˏ̏͏ΏϏЏя +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÐĐŐƐǐȐɐʐː̐͐ΐϐАѐ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~‘ÑđőƑǑȑɑʑˑ̑͑ΑϑБё +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~’ÒĒŒƒǒȒɒʒ˒̒͒ΒϒВђ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~“ÓēœƓǓȓɓʓ˓͓̓ΓϓГѓ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~”ÔĔŔƔǔȔɔʔ˔͔̔ΔϔДє +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿•ÕĕŕƕǕȕɕʕ˕͕̕ΕϕЕѕ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ–ÖĖŖƖǖȖɖʖ˖̖͖ΖϖЖі +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿ—×ėŗƗǗȗɗʗ˗̗͗ΗϗЗї +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſ˜ØĘŘƘǘȘɘʘ˘̘͘ΘϘИј +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿ™ÙęřƙǙșəʙ˙̙͙ΙϙЙљ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴǵǶǷǸǹǺǻǼǽǾǿšÚĚŚƚǚȚɚʚ˚͚̚ΚϚКњ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ȀȁȂȃȄȅȆȇȈȉȊȋȌȍȎȏȐȑȒȓȔȕȖȗȘșȚțȜȝȞȟȠȡȢȣȤȥȦȧȨȩȪȫȬȭȮȯȰȱȲȳȴȵȶȷȸȹȺȻȼȽȾȿ›ÛěśƛǛțɛʛ˛̛͛ΛϛЛћ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ɀɁɂɃɄɅɆɇɈɉɊɋɌɍɎɏɐɑɒɓɔɕɖɗɘəɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿœÜĜŜƜǜȜɜʜ˜̜͜ΜϜМќ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼʽʾʿÝĝŝƝǝȝɝʝ˝̝͝ΝϝНѝ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ˀˁ˂˃˄˅ˆˇˈˉˊˋˌˍˎˏːˑ˒˓˔˕˖˗˘˙˚˛˜˝˞˟ˠˡˢˣˤ˥˦˧˨˩˪˫ˬ˭ˮ˯˰˱˲˳˴˵˶˷˸˹˺˻˼˽˾˿žÞĞŞƞǞȞɞʞ˞̞͞ΞϞОў +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~̴̵̶̷̸̡̢̧̨̛̖̗̘̙̜̝̞̟̠̣̤̥̦̩̪̫̬̭̮̯̰̱̲̳̹̺̻̼̀́̂̃̄̅̆̇̈̉̊̋̌̍̎̏̐̑̒̓̔̽̾̿̕̚ŸßğşƟǟȟɟʟ˟̟͟ΟϟПџ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~͇͈͉͍͎̀́͂̓̈́͆͊͋͌ͅ͏͓͔͕͖͙͚͐͑͒͗͛ͣͤͥͦͧͨͩͪͫͬͭͮͯ͘͜͟͢͝͞͠͡ͰͱͲͳʹ͵Ͷͷ͸͹ͺͻͼͽ;Ϳ àĠŠƠǠȠɠʠˠ̠͠ΠϠРѠ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~΀΁΂΃΄΅Ά·ΈΉΊ΋Ό΍ΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξο¡áġšơǡȡɡʡˡ̡͡ΡϡСѡ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~πρςστυφχψωϊϋόύώϏϐϑϒϓϔϕϖϗϘϙϚϛϜϝϞϟϠϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳϴϵ϶ϷϸϹϺϻϼϽϾϿ¢âĢŢƢǢȢɢʢˢ̢͢΢ϢТѢ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп£ãģţƣǣȣɣʣˣ̣ͣΣϣУѣ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~рстуфхцчшщъыьэюяѐёђѓєѕіїјљњћќѝўџѠѡѢѣѤѥѦѧѨѩѪѫѬѭѮѯѰѱѲѳѴѵѶѷѸѹѺѻѼѽѾѿ¤äĤŤƤǤȤɤʤˤ̤ͤΤϤФѤ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Ҁҁ҂҃҄҅҆҇҈҉ҊҋҌҍҎҏҐґҒғҔҕҖҗҘҙҚқҜҝҞҟҠҡҢңҤҥҦҧҨҩҪҫҬҭҮүҰұҲҳҴҵҶҷҸҹҺһҼҽҾҿ¥åĥťƥǥȥɥʥ˥̥ͥΥϥХѥ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ӀӁӂӃӄӅӆӇӈӉӊӋӌӍӎӏӐӑӒӓӔӕӖӗӘәӚӛӜӝӞӟӠӡӢӣӤӥӦӧӨөӪӫӬӭӮӯӰӱӲӳӴӵӶӷӸӹӺӻӼӽӾӿ¦æĦŦƦǦȦɦʦ˦̦ͦΦϦЦѦ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ԀԁԂԃԄԅԆԇԈԉԊԋԌԍԎԏԐԑԒԓԔԕԖԗԘԙԚԛԜԝԞԟԠԡԢԣԤԥԦԧԨԩԪԫԬԭԮԯ԰ԱԲԳԴԵԶԷԸԹԺԻԼԽԾԿ§çħŧƧǧȧɧʧ˧̧ͧΧϧЧѧ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ՀՁՂՃՄՅՆՇՈՉՊՋՌՍՎՏՐՑՒՓՔՕՖ՗՘ՙ՚՛՜՝՞՟ՠաբգդեզէըթժիլխծկհձղճմյնշոչպջռսվտ¨èĨŨƨǨȨɨʨ˨̨ͨΨϨШѨ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~րցւփքօֆևֈ։֊֋֌֍֎֏֐ְֱֲֳִֵֶַָֹֺֻּֽ֑֖֛֢֣֤֥֦֧֪֚֭֮֒֓֔֕֗֘֙֜֝֞֟֠֡֨֩֫֬֯־ֿ©éĩũƩǩȩɩʩ˩̩ͩΩϩЩѩ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~׀ׁׂ׃ׅׄ׆ׇ׈׉׊׋׌׍׎׏אבגדהוזחטיךכלםמןנסעףפץצקרשת׫׬׭׮ׯװױײ׳״׵׶׷׸׹׺׻׼׽׾׿ªêĪŪƪǪȪɪʪ˪̪ͪΪϪЪѪ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~؀؁؂؃؄؅؆؇؈؉؊؋،؍؎؏ؘؙؚؐؑؒؓؔؕؖؗ؛؜؝؞؟ؠءآأؤإئابةتثجحخدذرزسشصضطظعغػؼؽؾؿ«ëīūƫǫȫɫʫ˫̫ͫΫϫЫѫ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ـفقكلمنهوىيًٌٍَُِّْٕٖٜٟٓٔٗ٘ٙٚٛٝٞ٠١٢٣٤٥٦٧٨٩٪٫٬٭ٮٯٰٱٲٳٴٵٶٷٸٹٺٻټٽپٿ¬ìĬŬƬǬȬɬʬˬ̬ͬάϬЬѬ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ڀځڂڃڄڅچڇڈډڊڋڌڍڎڏڐڑڒړڔڕږڗژڙښڛڜڝڞڟڠڡڢڣڤڥڦڧڨکڪګڬڭڮگڰڱڲڳڴڵڶڷڸڹںڻڼڽھڿ­íĭŭƭǭȭɭʭ˭̭ͭέϭЭѭ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ۀہۂۃۄۅۆۇۈۉۊۋیۍێۏېۑےۓ۔ەۖۗۘۙۚۛۜ۝۞ۣ۟۠ۡۢۤۥۦۧۨ۩۪ۭ۫۬ۮۯ۰۱۲۳۴۵۶۷۸۹ۺۻۼ۽۾ۿ®îĮŮƮǮȮɮʮˮ̮ͮήϮЮѮ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~܀܁܂܃܄܅܆܇܈܉܊܋܌܍܎܏ܐܑܒܓܔܕܖܗܘܙܚܛܜܝܞܟܠܡܢܣܤܥܦܧܨܩܪܫܬܭܮܯܱܴܷܸܹܻܼܾܰܲܳܵܶܺܽܿ¯ïįůƯǯȯɯʯ˯̯ͯίϯЯѯ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~݂݄݆݈݀݁݃݅݇݉݊݋݌ݍݎݏݐݑݒݓݔݕݖݗݘݙݚݛݜݝݞݟݠݡݢݣݤݥݦݧݨݩݪݫݬݭݮݯݰݱݲݳݴݵݶݷݸݹݺݻݼݽݾݿ°ðİŰưǰȰɰʰ˰̰ͰΰϰаѰ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ހށނރބޅކއވމފދތލގޏސޑޒޓޔޕޖޗޘޙޚޛޜޝޞޟޠޡޢޣޤޥަާިީުޫެޭޮޯްޱ޲޳޴޵޶޷޸޹޺޻޼޽޾޿±ñıűƱDZȱɱʱ˱̱ͱαϱбѱ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~߀߁߂߃߄߅߆߇߈߉ߊߋߌߍߎߏߐߑߒߓߔߕߖߗߘߙߚߛߜߝߞߟߠߡߢߣߤߥߦߧߨߩߪ߲߫߬߭߮߯߰߱߳ߴߵ߶߷߸߹ߺ߻߼߽߾߿²òIJŲƲDzȲɲʲ˲̲ͲβϲвѲ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~࠳ࡳࢳࣳळॳ঳৳ਲ਼ੳળ૳ଳ୳ள௳ళ౳ಳೳള൳ඳෳำ๳ຳ໳༳ཱིླ࿳³óijųƳdzȳɳʳ˳̳ͳγϳгѳ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ဴၴႴჴᄴᅴᆴᇴሴቴኴዴጴ፴ᎴᏴᐴᑴᒴᓴᔴᕴᖴᗴᘴᙴᚴᛴ᜴᝴឴៴ᠴᡴᢴᣴᤴᥴᦴ᧴ᨴᩴ᪴᫴᬴᭴᮴᯴ᰴᱴᲴ᳴ᴴᵴᶴᷴḴṴẴỴἴὴᾴῴ´ôĴŴƴǴȴɴʴ˴̴ʹδϴдѴ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~‵⁵₵⃵ℵⅵ↵⇵∵≵⊵⋵⌵⍵⎵⏵␵⑵⒵⓵┵╵▵◵☵♵⚵⛵✵❵➵⟵⠵⡵⢵⣵⤵⥵⦵⧵⨵⩵⪵⫵⬵⭵⮵⯵ⰵⱵⲵ⳵ⴵ⵵ⶵⷵ⸵⹵⺵⻵⼵⽵⾵⿵µõĵŵƵǵȵɵʵ˵̵͵εϵеѵ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~〶ぶザヶㄶㅶㆶㇶ㈶㉶㊶㋶㌶㍶㎶㏶㐶㑶㒶㓶㔶㕶㖶㗶㘶㙶㚶㛶㜶㝶㞶㟶㠶㡶㢶㣶㤶㥶㦶㧶㨶㩶㪶㫶㬶㭶㮶㯶㰶㱶㲶㳶㴶㵶㶶㷶㸶㹶㺶㻶㼶㽶㾶㿶¶öĶŶƶǶȶɶʶ˶̶Ͷζ϶жѶ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~䀷䁷䂷䃷䄷䅷䆷䇷䈷䉷䊷䋷䌷䍷䎷䏷䐷䑷䒷䓷䔷䕷䖷䗷䘷䙷䚷䛷䜷䝷䞷䟷䠷䡷䢷䣷䤷䥷䦷䧷䨷䩷䪷䫷䬷䭷䮷䯷䰷䱷䲷䳷䴷䵷䶷䷷丷乷亷价伷佷侷俷·÷ķŷƷǷȷɷʷ˷̷ͷηϷзѷ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~倸偸傸僸儸典冸凸券剸劸勸匸卸厸司吸呸咸哸唸啸喸嗸嘸噸嚸囸圸坸垸埸堸塸墸壸夸奸妸姸娸婸媸嫸嬸學宸寸尸屸岸峸崸嵸嶸巸常幸庸廸弸彸徸忸¸øĸŸƸǸȸɸʸ˸̸͸θϸиѸ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~怹恹悹惹愹慹憹懹戹批抹拹挹捹掹揹搹摹撹擹改敹方旹昹晹暹曹朹杹枹柹根桹梹棹椹楹榹槹樹橹檹櫹欹歹殹毹氹汹油泹洹浹涹淹渹湹溹滹漹潹澹濹¹ùĹŹƹǹȹɹʹ˹̹͹ιϹйѹ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~瀺灺為烺焺煺熺燺爺牺犺狺猺獺玺珺琺瑺璺瓺町畺疺痺瘺発皺盺眺睺瞺矺砺硺確磺示祺禺秺稺空窺竺笺筺箺篺簺籺粺糺紺絺綺緺縺繺纺绺缺罺羺翺ºúĺźƺǺȺɺʺ˺̺ͺκϺкѺ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~耻聻肻胻脻腻膻臻舻艻芻苻茻荻莻菻萻葻蒻蓻蔻蕻薻藻蘻虻蚻蛻蜻蝻螻蟻蠻衻袻裻褻襻覻觻註詻誻諻謻譻讻读谻豻費賻贻赻趻跻踻蹻躻軻輻轻辻迻»ûĻŻƻǻȻɻʻ˻̻ͻλϻлѻ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~逼遼邼郼鄼酼醼釼鈼鉼銼鋼錼鍼鎼鏼鐼鑼钼铼锼镼閼闼阼陼隼雼霼靼鞼韼頼顼颼飼餼饼馼駼騼驼骼髼鬼魼鮼鯼鰼鱼鲼鳼鴼鵼鶼鷼鸼鹼麼黼鼼齼龼鿼¼üļżƼǼȼɼʼ˼̼ͼμϼмѼ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ꀽꁽꂽꃽꄽꅽꆽꇽꈽꉽꊽꋽꌽꍽꎽꏽꐽꑽ꒽ꓽꔽꕽꖽꗽ꘽꙽ꚽ꛽ꜽꝽꞽꟽ꠽꡽ꢽꣽꤽ꥽ꦽꧽ꨽ꩽꪽ꫽ꬽꭽꮽ꯽갽걽경곽괽굽궽귽긽깽꺽껽꼽꽽꾽꿽½ýĽŽƽǽȽɽʽ˽̽ͽνϽнѽ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~뀾끾낾냾넾녾놾뇾눾뉾늾닾댾덾뎾돾됾둾뒾듾딾땾떾뗾똾뙾뚾뛾뜾띾랾럾렾롾뢾룾뤾륾릾맾먾멾몾뫾묾뭾뮾믾밾뱾벾볾봾뵾붾뷾븾빾뺾뻾뼾뽾뾾뿾¾þľžƾǾȾɾʾ˾̾;ξϾоѾ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~쀿쁿삿샿섿셿솿쇿숿쉿슿싿쌿썿쎿쏿쐿쑿쒿쓿씿앿얿엿옿왿욿웿윿읿잿쟿젿졿좿죿줿쥿즿짿쨿쩿쪿쫿쬿쭿쮿쯿찿챿첿쳿촿쵿춿췿츿칿캿컿켿콿쾿쿿¿ÿĿſƿǿȿɿʿ˿̿ͿοϿпѿ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ \ No newline at end of file diff --git a/testing/test b/testing/test new file mode 100755 index 0000000..76f94ca Binary files /dev/null and b/testing/test differ diff --git a/testing/test.c b/testing/test.c new file mode 100644 index 0000000..0ca8632 --- /dev/null +++ b/testing/test.c @@ -0,0 +1,140 @@ +/* +The MIT License (MIT) + +Copyright © 2022 Kasyanov Nikolay Alexeyevich (Unbewohnte) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + +#include +#include +#include +#include +#include +#include + +#include "../src/rng/lcg.c" +#include "../src/rng/xorshift.c" +#include "../src/rng/bbs.c" + +#include "../src/img/ppm.c" + +#include "../src/endian/endian.c" + +int test_rng() { + lcg(76); + xorshift32(753); + bbs(11241); + + return EXIT_SUCCESS; +} + +int test_ppm() { + ppm_image* ppm = read_ppm("test_img512x512.ppm"); + if (ppm == NULL) { + printf("[ERROR] failled to read test PPM image\n"); + return EXIT_FAILURE; + } + + if (write_ppm(ppm, "result_image.ppm") != 0) { + printf("[ERROR] failed to write new ppm image\n"); + return EXIT_FAILURE; + } + + free(ppm); + + ppm_image* new_ppm = new_ppm_image(200, 200); + for(int y = 0; y < 200; y++) { + for(int x = 0; x < 200; x++) { + rgb8 pixel = {x + 10, y + 10, 55 + y}; + put_pixel_at(x, y, pixel, new_ppm); + } + } + + if (write_ppm(new_ppm, "result_image.ppm") != 0) { + printf("[ERROR] failed to write new changed ppm image\n"); + return EXIT_FAILURE; + } + + free(new_ppm); + + return EXIT_SUCCESS; +} + +int test_img() { + if (test_ppm() == EXIT_FAILURE) { + printf("[INFO] PPM test failed\n"); + return EXIT_FAILURE; + } + + return EXIT_SUCCESS; +} + +int test_endian() { + // 01100001 10101000 + const uint16_t test_num16 = 25000; + // 10101000 01100001 + const uint16_t test_num16_swapped = 43105; + if (swap_endian16(test_num16) != test_num16_swapped) { + printf("[INFO] Failed to swap endianness for 16bit integer: %u -> %u; supposed to get %u\n", + test_num16, swap_endian16(test_num16), test_num16_swapped + ); + return EXIT_FAILURE; + } + + // 00000000 01101110 11101110 11110101 + const uint32_t test_num32 = 7270133; + // 11110101 11101110 01101110 00000000 + const uint32_t test_num32_swapped = 4126043648; + if ((swap_endian32(test_num32)) != test_num32_swapped) { + printf("[INFO] Failed to swap endianness for 32bit integer: %u -> %u; supposed to get %u\n", + test_num32, swap_endian32(test_num32), test_num32_swapped + ); + return EXIT_FAILURE; + } + + // 00000000 00000000 11010110 00000000 10010111 10001111 00000000 00000000 + const uint64_t test_num64 = 235298031075328; + + // 11110101 10011110 10001111 00000000 00000000 00000000 00000000 00000000 + const uint64_t test_num64_swapped = 157878716858368; + + if (swap_endian64(test_num64) != test_num64_swapped) { + printf("[INFO] Failed to swap endianness for 64bit integer: %lu -> %lu; supposed to get %lu\n", + test_num64, swap_endian64(test_num64), test_num64_swapped + ); + return EXIT_FAILURE; + } + + return EXIT_SUCCESS; +} + +int main() { + // rng + printf("[INFO] Testing rng...\n"); + if (test_rng() == EXIT_FAILURE) { + printf("[INFO] RNG test failed\n\n"); + } else { + printf("[INFO] RNG test passed\n\n"); + } + + // img + printf("[INFO] Testing img...\n"); + if (test_img() == EXIT_FAILURE) { + printf("[INFO] IMG test failed\n\n"); + } else { + printf("[INFO] IMG test passed\n\n"); + } + + // endianness + printf("[INFO] Testing endian...\n"); + if (test_endian() == EXIT_FAILURE) { + printf("[INFO] Endian test failed\n\n"); + } else { + printf("[INFO] Endian test passed\n\n"); + } +} \ No newline at end of file diff --git a/testing/test_img512x512.ppm b/testing/test_img512x512.ppm new file mode 100644 index 0000000..3ad1882 Binary files /dev/null and b/testing/test_img512x512.ppm differ