{VERSION 5 0 "IBM INTEL NT" "5.0" } {USTYLETAB {CSTYLE "Maple Input" -1 0 "Courier" 0 1 255 0 0 1 0 1 0 0 1 0 0 0 0 1 }{CSTYLE "2D Math" -1 2 "Times" 0 1 0 0 0 0 0 0 2 0 0 0 0 0 0 1 }{CSTYLE "2D Output" 2 20 "" 0 1 0 0 255 1 0 0 0 0 0 0 0 0 0 1 } {CSTYLE "" -1 256 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 257 "Helvetica" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 258 "C entury Gothic" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 259 "Cen tury Gothic" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 260 "Centu ry Gothic" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 261 "Century Gothic" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 262 "Century G othic" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 263 "Century Got hic" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 266 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 267 "Century Gothic" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 268 "Century Gothic" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 269 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 270 "Century Gothic" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 271 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 272 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 273 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 274 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 275 "Helvetica" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 276 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 277 "Helvetica" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 278 "Helvetica" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 279 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 280 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 282 "Helvetica" 1 10 0 0 0 0 0 2 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 283 "Helvetica" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 285 "Helvetica" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 286 "Helvetica" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 287 "Helvetica" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 288 "Helvetica" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 291 "Helvetica" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 292 "Helvetica" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 294 "Helvetica" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 295 "Helvetica" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 296 "Helvetica" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 297 "Helvetica" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 298 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 299 "Helvetica" 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 }{PSTYLE "Normal" -1 0 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Heading 2" -1 4 1 {CSTYLE "" -1 -1 "Ti mes" 1 14 0 0 0 1 2 1 2 2 2 2 1 1 1 1 }1 1 0 0 8 2 1 0 1 0 2 2 0 1 } {PSTYLE "Warning" -1 7 1 {CSTYLE "" -1 -1 "Courier" 1 10 0 0 255 1 2 2 2 2 2 1 1 1 3 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Maple Output " -1 11 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 } 3 3 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Maple Plot" -1 13 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }3 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Normal" -1 256 1 {CSTYLE "" -1 -1 "Helvetica" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Norma l" -1 257 1 {CSTYLE "" -1 -1 "Helvetica" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Normal" -1 258 1 {CSTYLE " " -1 -1 "Helvetica" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Normal" -1 259 1 {CSTYLE "" -1 -1 "Helvetica" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE " Normal" -1 261 1 {CSTYLE "" -1 -1 "Helvetica" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Normal" -1 262 1 {CSTYLE "" -1 -1 "Helvetica" 1 14 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Normal" -1 263 1 {CSTYLE "" -1 -1 "Hel vetica" 1 14 0 0 0 1 2 1 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Normal" -1 264 1 {CSTYLE "" -1 -1 "Helvetica" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Normal" -1 266 1 {CSTYLE "" -1 -1 "Helvetica" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 } 1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Heading 1" -1 267 1 {CSTYLE "" -1 -1 "Helvetica" 1 18 0 0 0 1 2 1 2 2 2 2 1 1 1 1 }1 1 0 0 8 4 1 0 1 0 2 2 0 1 }{PSTYLE "Heading 1" -1 268 1 {CSTYLE "" -1 -1 "Helvetica" 1 18 0 0 0 1 2 1 2 2 2 2 1 1 1 1 }1 1 0 0 8 4 1 0 1 0 2 2 0 1 } {PSTYLE "Normal" -1 269 1 {CSTYLE "" -1 -1 "Helvetica" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Heading 1" -1 270 1 {CSTYLE "" -1 -1 "Helvetica" 1 18 0 0 0 1 2 1 2 2 2 2 1 1 1 1 }1 1 0 0 8 4 1 0 1 0 2 2 0 1 }{PSTYLE "Normal" -1 271 1 {CSTYLE "" -1 -1 "Helvetica" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Normal" -1 272 1 {CSTYLE "" -1 -1 "Helvetica" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE " Heading 1" -1 273 1 {CSTYLE "" -1 -1 "Helvetica" 1 18 0 0 0 1 2 1 2 2 2 2 1 1 1 1 }1 1 0 0 8 4 1 0 1 0 2 2 0 1 }{PSTYLE "Normal" -1 274 1 {CSTYLE "" -1 -1 "Helvetica" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Heading 1" -1 275 1 {CSTYLE "" -1 -1 " Helvetica" 1 18 0 0 0 1 2 1 2 2 2 2 1 1 1 1 }1 1 0 0 8 4 1 0 1 0 2 2 0 1 }{PSTYLE "Normal" -1 276 1 {CSTYLE "" -1 -1 "Helvetica" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Normal " -1 277 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 } 3 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Normal" -1 278 1 {CSTYLE "" -1 -1 "Helvetica" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Heading 1" -1 279 1 {CSTYLE "" -1 -1 "Helvetica" 1 12 0 0 0 1 2 1 2 2 2 2 1 1 1 1 }1 1 0 0 8 4 1 0 1 0 2 2 0 1 }{PSTYLE " Normal" -1 280 1 {CSTYLE "" -1 -1 "Helvetica" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Normal" -1 281 1 {CSTYLE "" -1 -1 "Helvetica" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Normal" -1 282 1 {CSTYLE "" -1 -1 "Hel vetica" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Normal" -1 283 1 {CSTYLE "" -1 -1 "Helvetica" 1 10 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Normal" -1 284 1 {CSTYLE "" -1 -1 "Helvetica" 1 10 0 0 0 1 2 2 2 2 2 2 1 1 1 1 } 1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Normal" -1 285 1 {CSTYLE "" -1 -1 "Helvetica" 1 10 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Normal" -1 286 1 {CSTYLE "" -1 -1 "Helvetica" 1 10 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Nor mal" -1 287 1 {CSTYLE "" -1 -1 "Helvetica" 1 10 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Normal" -1 288 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }3 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Normal" -1 289 1 {CSTYLE "" -1 -1 "Helvetica" 1 10 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE " Normal" -1 290 1 {CSTYLE "" -1 -1 "Helvetica" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Normal" -1 291 1 {CSTYLE "" -1 -1 "Helvetica" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Normal" -1 292 1 {CSTYLE "" -1 -1 "Tim es" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }3 1 0 0 0 0 1 0 1 0 2 2 0 1 }} {SECT 0 {EXCHG {PARA 263 "" 0 "" {TEXT -1 12 "Dylan Doxey " }}{PARA 264 "" 0 "" {TEXT 256 54 " Math 107B Spring 2002\n\n Optical Character Recognition" }{TEXT -1 1 " " }{MPLTEXT 1 0 0 "" }}}{SECT 1 {PARA 267 "" 0 "" {TEXT -1 13 " Introduction" }}{PARA 259 "" 0 "" {TEXT -1 847 " This worksheet is a cursory study of optical character recognition (OC R). A typical application of OCR would be using a computer to translat e a paper text document into an equivalent electronic text document. T he process involves scanning the paper document to produce an image of the document. An OCR algorithm is then applied to that image to produ ce an electronic text document.\n\nThis worksheet explores the issues \+ involved with taking an image of a single text character and identifyi ng which character the image represents. This approach ignores the iss ues involved with distinguishing individual characters in the image an d skips right to the business of analyzing a single isolated character . Provided with this worksheet is a set sample data images representin g the upper case letters \"A\" through \"Z\" in Arial font, such as th e one below.\n" }}{EXCHG {PARA 277 "" 0 "" {OLE 1 543744 1 "[xm]Br=Wfo RrB:::wk;nyyI;G:;:j>j:J:ZJj?L:=:wyyyyyB:J?j?<:S:UJ:n;v;;JBB:]:yyyyyy:: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::uyyyyy wyyyq;J:c:e:g:i:k:m:o:q:s:u:w:y:;[:F>N>V>^ >f>n>v>>?F?N?V?^?f?n?v?>@:y;;\\:FBNBVB^B fBnBvB>CFCNCVC^CfCnCvC>DIFINIVI^IfInIvI>J>ELq^H_ mvJ::::::::gj::::::::N:;K>>:;j:vCSml>:;::::::::: N;?jyyiy=J:B:::::::c:;:?ja:[LsfFaMR>@>Z::::::::kJ;vYxI:;Z::::::j@L:?yE :;J>N\\TJb@pntPt:Jc:nIN:C:;:w=GJZ:nIv:C:CZ@ni]JF>:k :C]::Kj:F:;R:JyD>MJHi:>:=j:nIN:KB;>;>Z;B:;B:vYZ:ryZ:>Zyyy:vYyayE:[B>[B :kB@kJJar>A;DJ;D:KDLKLbhj?h:>j:@j:>mR@M;Gb ;G:[Gf[G:kGhkOZ=VZ=J^]V^?uRAU;Ir;I:KItKQr=Yr=J:\\JF>[B>?SB=;LB>D kJn>]R>j:^]V>m:>>;OLLLV?_b>SSCE;QR[R>;KBDKJ@\\J?^Z@> CChCKN\\VN^_Za?[Cv[KZxYZpyAp:>ryA r:>tyAt:>vyAv:>xyAx:>R;B:kB>bF^[:>dJ>\\:>gR>=;F@kB:kFAsJJ=LJsb>?;IESC:[IF[C:yIJ;ly=Ob>=KJN^;;D:[BN[D:kBTK]:@j:^]R@M;Cb;G:CKV?_BAS>V[Cv[QZx yy?dyyY;uyyQrxyy?jyyYkvyyQJyyy?pyyY;xyyQbyyy?vyyY[yyyQZ=JZ=JF\\JFB;D:[D>[D:KMn>Jn:>QkO^]L^?V;I:[IF[I:yIJyaJC:r:E:KK>>b:_[:>dJ?\\:>gb?=;FZkB:kF`sJ J=TJsBA?;IrSC:[Iv[C:xYZJbvY;E:yQr<:;F:>MyQJ=jy?p:vY;H:>t:vY[I:K B>kJ>\\KN^[Z>B[BD[LF\\Mn>]:?j:BLkNJbB@Y[D`aQj \\St?hZ@Y;FfkQF]uu?nx@Y[GlmQZ]wy?tZyY;ItyQr=yy=JB\\KN>]^>b:>^j>DKCJKMR \\N:=JVLOF?bZ?NKDUk_:@s:^e>HUKE`;Qtlsi?jbXVkFhKQF=vn_nFAX[GpYQXMXv?sjA YcHxkQjMyy?xryY;FN[D:KFR;MF]Pnn:@j:>pB@KwG`kF:KH`kNf=TJ=Jj=UR=J n]UV?d:@d:>fB@f:>gR@g:>hR@h:>jZ@j:>kj@KkfikNF]VF?nRAn:>pZAp:>qbAQ[IZ;B :;Fv;B:[I:;F:>I;BZ[a:>x:>a:>r:>jJ@OKDT;E:;EXKF:weJf:ku;WZIF];Vp;:SJ>S=kR:aW:?W:CrqiB=\\b>f[Qvu;Np;Nn;VZTv[:NKAr=Np;Fn;^ZYq \\Eb\\Lj@TkiAjRAjJAj;d;Sn;x:]W:R@^JCBD;Sb?uR:YW:yV:Ab@J= hJE@jEhZ?t:`[iH:F=B=UW:sV:CrqB[>;^JCR@:Sb?^o;^m;b@YRN;B[V;^j;rqR[>\\TF ZfHZUHZ>f]PV;R=mJ=Aj;\\;^ZFf\\SFZeH:F=j?Pk:Xr:Lj iQk?fJpJFVo;Nm;^ZYqoR:KV:CR@[Bk;rqeZ>L>JO AjFAJm;^:gr=B;S:KW:kV:hkA\\::SV:CR@:<;KW:iV:CZD:Q:SV:xwD:jM AjEAj;hkAfJ\\jAhk:tr:LjF<;JB`k:Xt:jF:Qb?nk;rqZ=Zad_=B;yh?Q:JBAj;\\;^:e Z`HZPH:q:jAd[JHZ>F=:[b@Tt:Ps:LjiG;E>gZJH:yX?:eZ_HZOHZ=V=Tb=f;Ds:H:J>F= EW:R@:YZLHZ>F=fJAJFfn;^l;^:gr\\TBc=r^=B;yh?MJ=Sx:AW:b @OJNW:Vn;Nl;jEdZbD;Qb?yPKAJCAj;h;MO<\\JBbb=R^=B;F;OO:ynAAj;lk @nJv`[YH:V]CZ=^[TFZXH:kZ@\\SraJF`Z@LAdk:tCmr=Tb>:wNAAj;hK@n J>]YIZXD;TK@:d[Xd]>]B>:HJ@d[Zt:kR=B;X;uV:UV:ABASj=WZHJJS@ZBR@ps:jG`:V[ RJJ_:hZ@t:`[W;G n;V];^n;VZSf;G>kJHAj?Aj;l;I^GV];^Nn;GN<\\:hs:hr:R<;b[V[Svu;^n;^:lZ@t:S ZU;rAj;pk?ZAL@Bdb=XBQR@`CpjHlJ?hJ?hJ?JGxw:\\ dGvuRf[CV[DV[DjAdk:`ChjiiKGhKGh;FZeHZFvuUN=o:vu;Fm;^v;^V::::JyD>?J>LZ: >[:>Z:>Z;Z:j:@j:NZ[B>;MRaJDLKDf\\Of]R>=mR@mB:ob@ ojGhkG^]V^=uRAuJItKIv]Yv=;CB;C:=SB=KKDLKV^]V>CCCCkLPlLn^`n>IsCIKN\\LNF _cF?OcDOkOhlO^_f^?USEUKQtLQv_iv_:>`j>`:F`kF@_cF_kSHmS^`n^@eSGeKUTMUarB:mSHmKWdMWVauVAsCIskXpmXnaxnAysIyKZcB?CMTLML_dN_VcEWCSDMSD:UTMULatNavcIwC[DN[D:]TN]LcDOcVdMWD cDOcD:eTOeLeTOeeR?EmTPmLgdOgVeUWEsDQsD:uTQuLitOiveYwE;ER;E:=UR= MkDPkVf]WFCESCmlPplnf`oFIuSIMn\\PnFgcGGOeTOmohpo^gf_GUUUUMqtPqvgiwG[EV [E:]UV]MsDQsir?i:FisGIoeXomwhqw^iv_IuUYuMyt QyviywI;FZ;F:=VZ=F:?fZ?F:AvZANk:B:MN:l:B:]F:;JC?:aN:^L;jD?:gN:vL;JF=J:Fm:JG?:qN:^M;jH?:wN:vm:>:;G:o:>:MO:No:jO?:SO:fOnO;jQ=J:>p:B:]G:;JS?:aO:^p :>:eO:nP;jU?:kG:;jV?:oO:Vq:JX?:u?wO:vQ;JZ=Z:Fr:J[?:AP:^R;j\\?:GP:vR;J^ =J:FS;J_=J:VS;J`=:UP:nSvs:>:[H:U;jf?:oP:Vu: >:sP:fu:Ji=J:vu:Jj=Z:FV;Jk=J:VV;Jl=J:fV;Jm?:IQ:>w:>:MQ:NW;jo?:SQ:fW;Jq =J:vw:>:[I:Y;jv?:oQ:VY;Jx?:uI:;Jy=J:vy:>:;R :;j:@J:NZ;>Z:VZ;>Z:^Z;>Z:fZ;>Z:nZ;>Z:vZ;>Z:>[;>Z:F[;J?@:QR:^[;j@@:WR:v [;JB@Z:F\\;JC@J:V\\;JD@:eR:;JE@:iR:>];jF@J:N];>:qR:;JH@:uR:n];jI@:;S:F ^;JK@:AS:;JL@:ES:n^;jM@:KS:F_;JO@J:V_;>:SS:f_;JQ@:YS:;JR@:]S:N`;jS@:cS :;jT@:gS:v`;JV@:mS:Na;jW@:sS:fa;JY@:yS:;JZ@:=T:Nb;j[@:CT:fb;>:GT:vb;J^ @:MT:Nc;j_@:ST:fc;Ja@:YT:;Jb@:]T:Nd;jc@:cT:fd;Je@J:vd;Jf@:mT:Ne;jg@:sT :fe;Ji@:yT:;Jj@J:Ff;Jk@:AU:^f;jl@:GU:vf;>:KU:Fg;Jo@:QU:^g;jp@J:ng;jq@J :>h;jr@:_U:Vh;Jt@:eU:nh;ju@:kU:;jv@:oU:Vi;Jx@:uU:;Jy@:yU:;J:A:=V:Nj;j; A:CV:fj;J=A:IV:>k;j>AJ:Nk;j?A:SV:;j@A:WV:vk;>:[V:Fl;JCAJ:Vl;JDAJ:fl;JE AJ:vl;>:kV:;jFA:oV:;jGAJ:^m;>:uV:;JIAJ:vm;>:;W:;jJAJ:Nn;>:AW:;JLAJ:fn; >:GW:;jMAJ:>o;>:MW:;JOA:QW:;JPAJ:fo;>:WW:;jQAJ:>p;>:]W:;JSAJ:Vp;>:cW:; jTAJ:np;>:iW:;JVAJ:Fq;>:oW:;jWA:sW:;jXAJ:nq;>:yW:;JZAJ:Fr;>:?X:;j[AJ:^ r;>:EX:;J]AJ:vr;>:KX:;j^AJ:Ns;j_AJ:^s;j`AJ:ns;jaA:[X:;jbA:_X:Vt;JdA:eX :nt;jeA:kX:Fu;>:oX:;jgAJ:^u;jhA:wX:;jiA:;Y:Fv;JkA:AY:^v;>:EY:nv;jmA:KY :;jnAJ:Nw;joAJ:^w;jpA:WY:vw;JrA:]Y:Nx;>:aY:^x;>:eY:nx;juA:kY:Fy;>:oY:; jwAJ:^y;>:uY:ny;jyA:;b:;B:=b:;J;DJ:VZ<>Z:^Z<>Z:fZ<>Z:nZ<>Z:vZ<>Z:>[<>: Mb:;J?DJ:V[<>:Sb:;j@DJ:n[<>:Yb:;JBDJ:F\\<>:_b:;jCDJ:^\\<>:eb:;JEDJ:v\\ <>:kb:;jFDJ:N]<>:qb:;JHDJ:f]<>:wb:v]<>:;c:;B:=c:N^:Qc:;JPD:Uc:n_:sc:fab:Id:>c:kd:Feg<>:Me:Ngh:oe:Vi:?f:;j;E:Cf:fjkE:Of:;j?E: Sf:fklm:uf:nm:Ug:no:_g:V puvw:oi:;jwEJ:^y<>:ui:nyZ:fZ=>Z:nZ=>Z:vZ=>Z:>[=>:Mr:;J?HJ:V[=>:Sr:;j@HJ:n[=>:Yr: ;JBH:]r:;JCH:ar:^\\=>:er:n\\=jEH:kr:F]=JGH:qr:^]=jHH:wr:v]=JJHJ:F^=>:? s:;jKHJ:^^=>:Es:;JMHJ:v^=>:Ks:;jNHJ:N_=>:Qs:;JPHJ:f_=>:Ws:v_=JRHZ:F`=> :_s:V`=JTH:es:n`=>:is:>a=jVH:os:;jWHJ:^a=jXH:ws:va=JZHJ:Fb=>:?t:Vb=J\\ H:Et:nb=j]HJ:>c=j^H:Ot:;j_HJ:^c=j`H:Wt:;jaH:[t:;jbHJ:Nd=jcH:ct:fd=JeH: it:>e=>:mt:Ne=jgH:st:fe=JiH:yt:>f=>:=u:;JkH:Au:^f=jlHJ:nf=jmH:Ku:Fg=>: Ou:Vg=JpH:Uu:ng=jqH:[u:;jrHJ:Nh=jsH:cu:fh=JuH:iu:>i=jvH:ou:;jwHJ:^i=jx H:wu:vi=J:IJ:Fj=>:?v:Vj=Jl= jBIJ:Nl=jCI:cv:fl=JEI:iv:>m=jFI:ov:Vm=JHIJ:fm=JII:yv:>n=>:=w:;JKI:Aw:^ n=jLI:Gw:vn=JNI:Mw:No=jOIJ:^o=jPIJ:no=jQI:[w:Fp=>:_w:Vp=JTI:ew:;JUI:iw :>q=jVI:ow:Vq=JXI:uw:nq=>:yw:>r=>:=x:;J[I:Ax:^r=j\\IJ:nr=j]I:Kx:Fs=J_I :Qx:^s=j`I:Wx:vs=>:[x:Ft=>:_x:Vt=JdI:ex:nt=jeI:kx:Fu=JgI:qx:^u=jhI:wx: vu=JjIJ:Fv=>:?y:Vv=JlI:Ey:nv=jmI:Ky:Fw=JoI:Qy:^w=jpI:Wy:vw=JrI:]y:;JsI :ay:^x=jtI:gy:vx=JvI:my:Ny=jwIJ:^y=>:uy:ny=jyI:;B;;B:=B;;J;LJ:VZ>>:CB; ;jLJ:F[>>:OB;;JyyyyyYy;n[>jALJ:>\\>jBLJ:N\\>jCL:cB; f\\>>:gB;v\\>JFL:mB;N]>>:qB;^]>jHL:wB;v]>JJL:=C;;JKL:AC;^^>Jyky;:::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::Jd=jdQwdotPqTixoi Pf]WfGuSIUohpopgiwg_uVau:fuWiUwhqwpiywi=Jj=Xj=jjAxjOv\\QVAyrAQlMXl=jlQ xl=JmUXm=jmYxm=Jn]h:FwcIw:NwdQw:VweYw:^wfaw:fwgiw:nwhqw:vwiyw:>xjE:]Yv ]QsEYsWxmYXcIwcqtQytoxpqXiywiQv]YvGysIYoixoI:qyxqI:sIysqxqyx=JyuYywyyy y:nihCB:AF:N[:Nb[Wfewflwgoog^G:>:BS>:B::L@ZyAZ;B:<::::: j:<:;Zyyy:>Zy=::::ZBZ;R:tAPZUA;ZEA;\\mO>:;Z^yy^yy^=::rbyiZwY\\yiZw Igyibyi;wYygyswHrCFrGbqGywsiyyifyibyqxQyXaNDxKcDyymxy[xyZBlYk:fZu^pniyyIpyAnyQj xEnSD:On;hNauY;tijxyZxy?fymApkb\\PjV@usqyy=uyAtyMJbqn:VKArLSxy]wyyvy?f yPvTVJGR:Wr@UR:Hb=vAjQyyIyykx>Z>T;oCfaYyyyeyiayiZwI;aXN? J<_ZGgnDC[NZK?txQ:ttyusyQjxgof>Z=D<=B=wTemt<=j;gZp^oliyyqoyymyaZMAd=>Z >d;UsduIfQC:CNB[;B;uSkwYyCRyyGILR:^ZQOtxQZxEeyIayY;u qOY\\=T;=R=_dlyiZyY;IHNSR:;rZV`bHxwyyfxyWxy>ftMg:CN?pLN]YyyYy]yOu\\>D; GROYxyUwyqvyEbyXvQ^J@jXTVyYJyyYyqYYm]?T;wCjuiyyydyy`yqxAyPmL:j:^dFyy>x y?>sL_[;>:n`d@xwyyexyTxy@nYixOGJD;lm]uY;ti<\\wqQJRPTrqyyetyisyMjeMo=VJ@:UxyGvyERlcT==:CBd;=bDAgwwyyCvytytEtNfJt=FoyImyMsqtNVJEZSgtxQZxE[DrxQj`ao@ @:^`b@xwyycxyRxy@nYmxOIJZ?t:sCjui:uyyIwyivyReGKd;\\ LKMYyyY?yixQxYH?E^dNnkiYGoEyYd;SrQcXywyyCwycvyEJtmtEf j:RDKwvwyyWvyEjrItQfJ\\lKEYyyYLglyaZVqcC>Z>D;=BHWhy?ZHdZuI;wgI=JV[LgtyQlyaZGAeER[PJW@vxui]xyMxYPYRAL:Pb>^_kXxyQlyevK wF;R[;R;WCd_qyIdLd;wQiyn>fJCrEOwj;h^;H;EXagC:EN=ljhHwxui\\xyLxy?jQMK:T b>v[mFbxNlx^ZaZ?d:=JHOZ;B[Pj:^dJyy[t]yY;wYygHAPb?FZEf_wNaR Pa?naeV[;R[n`=iyxuaxryswmGAPBIbJeGk?H`?X;ExdMt;PBScegiyyyatryUJyGv_thxxyyVxYuqOI]?d;QBN]XywQH_kyiZxuiYj<_Z;>`PqyswqyyYmyYkyMwQvE<:LjZDXyE:wN;uYrpiyyAnyiZwueckZ@t:UCpwi:wQJOJArjsK=gZ_Nquq yyQMQvyCbsYC;;R[Lj;hmgyYLyY\\CfbJyyUxyCxyR[NZo^uy qnyYZGQb:fJIR:KrJ]XywQF?kyiZxayIq;G^_>sqiyyanyiZwaxoh@GF:TL[qIFkyaZcA_ =b[HjNdWyEJy_N?fyABkoK=_ZBvaKyySxyCt:GY=TB=jhyYNWZGAb:vj:VZeVsyIM^Zda` ZN^>P^@n]hFtriyyqNGRyeIjuC@?C[?C;qrLcxymvyKNkNyY;GKFmyavyaV::::>Z:>Z:::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::JysyyA::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::=B:;b:;B:<::::::::::yqyyy;fZ:>:Qb:;Z:fZ:J@DJl^FEb:;ju=J:HJ:@Z:>Z:FZ;F:?b:?B:Ar:^Z>^:ER;EJ=TJ= v:IJ>>[:F[CF;Ob[B:]R>]JCDKCV\\MV\\:^\\N^\\:f< :i:kB@kjFJGjGB:s:uRAn=v=>^Z>^:F^[F>?cB?kKHlK^^^jLPlLbCv>>?F?N_dB:Q;S;U SEUC:W;Y;b:?b:Fb ;GB?dJ?l[Hn[^BCl\\fBGdKvB>CFCML_j_hn_^CfCULanCYtM>dJ?d:FdKGD_dN_lcHoc^ dNkdP_:nDgleX?kLfFENEVE^EfEj:@j:Fj;HJ?fZ?n;Ir;_j>lk>ab:NkDPk:r\\:UV]nkHpKYv] YF:dCqv`q>fMnmXD:yvayF:;Gb;G:= Wb=OKETKWn]XNC?EWcEG:GOMwN>OjNOO:lTPgObepj@p:FpkHp:NplPPawfaOTC :eWgZ:^`^:^s: B:CMl>:;Jl^F;J:>_:>Z:^F:=B:KJ:>:[rC;B:;B::@Z:>:B:FZ;F:?b:V:^:f:n:v:>;F [CJ?j?J@^;U:W:Y:[B>[B:]R>JCr>:::::::jIZZ>^:F>:AkKBCf>:::d<::W;Zj>`:F@N `l:JTRG:::::u;:BJ;D:=<::fBT>::ZEK`::B:::::K>M>dR?;ZG<:: :hsG;::Q:::puX;Z:Ar:FR:J\\k\\;:::::t VasmBn[H::VT^T:ZQ=::::rqy`ZAv::?a:Z:Z:Z:nV<:<:<:<:<:<:<:<:<:Z:ZcNuxqyymy;::::JyuY\\eM:Z:Z_>squyyqy;::::jxMyTC:;B:bC?XyvYyA::::nyxyve^:;B:;Z [=Kyky;::::tywmF;J:jO`Wyuyysy:::::tYyIvW:n^>yXry:::::pysAE>:F`DiYry:::::bsYC;;B:<:ArHqpy wY:::::nsAOZ:>:;j:`j\\vyyuy:::::JyiY]C:<:pLfuYyky;::::wiyAHI:TLZUiyyYyA::::fylyOZ:>:LjZDhxy YxI::::tYyIw`L:<:Ochoqyyiy=:::::tyxyWE:;:aCl uAxI:::::Z^i`@B:<:EbJoxyyyyyA::::nsFg:;J:rZ:j:Z:>:@jRP Wyuyysy:::Zxqy;iA;J:jTTvx[y=::::::@xXXZ:B:v^p`xw]y=:::picL:>:=B=[Dnyyy xI::::::Jy]yV?:;:IBM?Qyky;::JyuYdUo=J:BCUgwxyywY::::::JyqyjK:>:XLSiyxw YyA:::uYwG_:B:@ZOOtw=yA::::::byiYh>:;ZANbodj?hj?@:::ExdMt;Z:JUHvxuIxI:::::::xW\\\\Z:B:FZ: >:;::::j:J:FZF^dJyyyuy:::::::JyUyS?Z:B:::::::RCKWwwAyA:::::::wYyyXLKJ: >::::::Z;bPaXyjy;::::::Zxqxnp=;J:::::::f_e`Xxiy=:::::::tyxIWI::::: ::kcjuiyry::::::::pw^\\J:B:R:;Z:::::j:lJf;J:Z`fnmqyyyYyA:::::::JyqYi;;ZiNo=Ej:QrNaxyv Y::UxOS:;J@xOd;yA::::::::byaieAC:;J:FZsfSuyyvY:fywyqxB:;B:>`aHXyyyxI:: ::::::ZxiyGi^:>:;Zcvnm=yA:wivA?<:qSjuAxI:::::::::hwb\\J::dLKAIvY:::::::::n ywYuP?;;J:f[OGTyqy;j_YO@@::=bHOhyuAyAf YwWI;B:<:]sc[Yyxiy=:::::::::tyxiF;J:bDGGwwyyvYJyIYLuL:B:^a:iywyYxI:::: :::::ZSYdBB::plK= yxyIyA:::::::::Jyqyf;;jOTtt[y]xax`D:>:MbQaPyky;:::::::::by_YeM;;R:URPe PyyIyqxgsSg;B:cCd[Yyry::::::::::byuYlSK:>:=bDAgwwAyQyQYKa\\:B:na:iYry: :::::::::ZQadAB:::SsciiyyyyvxcD:;J:vZUWTjy;::::::::::pig `_:>:;R:UJ`wYyQ^EO@Z:n`d@xw]y=::::::::::byuyk:=RIGhywQyqYY[:JY:xI: ::::::::::PwcPZ:B:pLN]YyyYy]yO?Z:B:TjdxfyyY:::::::::::jxEyOY<:CrO_hywyyyqy;:::::::: ::Zwee:Wcdoiyma:>:;jUptrqIxI:::::::::::byTvS>:;R:SBOUp^K:B:yCjwiyy ay=:::::::::::rn[t:;B:Zp ^oliyyyYyA:::::::::::JyuycAO;J:fc_Pc:>:;J;@ObuYyky;:::::::::::Ry@uS>:; jY\\RYJ:NajXxwyyyuy::::::::::::byPvTJ:@JAhk@@::jY:xI::::::::::: ::pV_>:;:>cDyyyuy:::::::::::::jxQyXaNDv]Yv=_RKy_ymy;::::::::::::JyqYuC r;Ir;QiUxusyvY:::::::::::::bywyyvYJy[y=::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::V:;J::::nc;ocCC:<:::::5:" }{TEXT -1 1 " " }{MPLTEXT 1 0 0 "" }}}{PARA 259 "" 0 "" {TEXT -1 718 "\nThe b asic approach taken here is modeled after the \"feature vector\" conce pt outlined by Richard O. Duda of the Department of Electrical Enginee ring at San Jose State University. Duda's website at http://www-engr.s jsu.edu/~knapp/HCIRODPR/PR_home.htm provides some background on comput erized pattern recognition. \n\nThe feature vector model proposes that a given image has certain features that make it distinguishable as re presenting some distinct item. In this case we are interested in ident ifying features in an image that make it distinguishable as a certain \+ letter in the English alphabet. Identifying these key features is utte rly trivial to a human being. But to a computer identifying such featu res is complex.\n" }}}{SECT 1 {PARA 268 "" 0 "" {TEXT -1 22 " Procedur e Definitions" }}{EXCHG {PARA 278 "> " 0 "" {MPLTEXT 1 0 8 "restart:" }}{PARA 278 "> " 0 "" {MPLTEXT 1 0 83 "with(plots):\nwith(linalg):\nwi th(ListTools):\nwith(StringTools):\nwith(LinearAlgebra):" }}{PARA 7 " " 1 "" {TEXT -1 50 "Warning, the name changecoords has been redefined \n" }}{PARA 7 "" 1 "" {TEXT -1 80 "Warning, the protected names norm a nd trace have been redefined and unprotected\n" }}{PARA 7 "" 1 "" {TEXT -1 58 "Warning, the assigned name Group now has a global binding \n" }}{PARA 7 "" 1 "" {TEXT -1 68 "Warning, these names have been rebo und: Group, Join, Reverse, Split\n" }}{PARA 7 "" 1 "" {TEXT -1 67 "War ning, the names DotProduct, Map and Transpose have been rebound\n" }} {PARA 7 "" 1 "" {TEXT -1 64 "Warning, the assigned name GramSchmidt no w has a global binding\n" }}}{EXCHG {PARA 278 "" 0 "" {TEXT -1 28 "Glo bal constant declarations" }{MPLTEXT 1 0 0 "" }}{PARA 278 "> " 0 "" {MPLTEXT 1 0 0 "" }}{PARA 278 "> " 0 "" {MPLTEXT 1 0 20 "midintensity \+ := 128;" }}{PARA 278 "> " 0 "" {MPLTEXT 1 0 66 "alphabet := [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];" }}{PARA 278 "> " 0 "" {MPLTEXT 1 0 19 "alpha := [A,E,H,F];" }}{PARA 278 "> " 0 "" {MPLTEXT 1 0 14 "barwidth := 5;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "barlength := 30;" }}{PARA 0 "" 0 "" {TEXT 299 76 "The file path must reflect th e location of the sample character image files." }{MPLTEXT 1 0 0 "" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "file_path := \"C:\\\\characters\\\\ \";" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%-midintensityG\"$G\"" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%)alphabetG7<%\"AG%\"BG%\"CG%\"DG%\"E G%\"FG%\"GG%\"HG^#\"\"\"%\"JG%\"KG%\"LG%\"MG%\"NG%\"OG%\"PG%\"QG%\"RG% \"SG%\"TG%\"UG%\"VG%\"WG%\"XG%\"YG%\"ZG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%&alphaG7&%\"AG%\"EG%\"HG%\"FG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%)barwidthG\"\"&" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%*file_pathGQ /C:\\characters\\6\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%*barlengthG \"#I" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{SECT 1 {PARA 279 "" 0 "" {TEXT -1 18 " File Input/Output" }}{PARA 279 "" 0 "" {TEXT 257 17 "File Input/Output" }}{PARA 278 "" 0 "" {TEXT 258 156 "Th is section contains the procedures used to read portable graymap (pgm) image files and translate them into matrix objects that can be manipu lated in Maple" }{TEXT -1 1 "." }}{PARA 278 "" 0 "" {TEXT -1 0 "" }} {EXCHG {PARA 278 "" 0 "" {TEXT -1 0 "" }}{PARA 278 "" 0 "" {TEXT 271 8 "digitize" }{TEXT -1 252 " converts image pixel intensities to thier digital equivilence. 1 is returned for values above the midpoint of t he intesity range of the last image read and 0 otherwise.\nThe 'midint esity' global variable is set in the file reading procedure img2matrix ." }{MPLTEXT 1 0 1 "\n" }}{PARA 278 "> " 0 "" {MPLTEXT 1 0 104 "digiti ze := proc(val::string)\n if string2int(val) > 128 then return 0:\n \+ else return 1: fi:\nend proc:" }}}{EXCHG {PARA 278 "" 0 "" {TEXT -1 0 "" }}{PARA 278 "" 0 "" {TEXT 263 10 "string2int" }{TEXT 270 171 " ac cepts a string that is assumed to be one or more numeric characters, w hich together represent an integer. The return value is the integer va lue of the string passed in." }}{PARA 278 "" 0 "" {TEXT -1 0 "" }} {PARA 278 "> " 0 "" {MPLTEXT 1 0 296 "string2int := proc(instring::str ing)\n local number, asciiList, n, m ,i:\n number := 0;\n asciiL ist := convert(instring,'bytes'):\n n := vectdim(asciiList):\n for i from n by -1 to 1 do\n m := n - i:\n number := number + ( asciiList[i]-48)*10^m:\n end do:\n return number:\nend proc:" }}} {EXCHG {PARA 278 "" 0 "" {TEXT 266 1 "\n" }{TEXT 267 6 "invert" } {TEXT 268 68 " assumes the input is either 1 or 0 and returns 0 for 1 \+ and 1 for 0." }{MPLTEXT 1 0 1 "\n" }}{PARA 278 "> " 0 "" {MPLTEXT 1 0 91 "invert := proc(value)\n if value = 1 then return 0:\n else ret urn 1:\n end if:\nend proc:" }}}{EXCHG {PARA 278 "" 0 "" {TEXT -1 0 "" }}{PARA 278 "" 0 "" {TEXT 259 10 "imgConvert" }{TEXT 262 250 " acce pts a 1 by n array of strings, a column count int and a row count int. \nThe strings in the array are assumed to represent int values. The re turn is a cols by rows matrix populated with the int values of the str ing elements of the array passed in." }}{PARA 278 "" 0 "" {TEXT -1 0 " " }}{PARA 278 "> " 0 "" {MPLTEXT 1 0 251 "imgConvert := proc(cols::int eger,rows::integer,pixels)\n local size, pix, f:\n size := cols * \+ rows:\n pix := [seq(digitize(pixels[i]),i=1..size)]:\n f := (i,j) \+ -> pix[rows*(i-1) + ((j-1) mod cols)+1]:\n return Matrix(cols,rows,f ):\nend proc: " }}}{EXCHG {PARA 278 "" 0 "" {TEXT -1 0 "" }} {PARA 278 "" 0 "" {TEXT 260 10 "img2matrix" }{TEXT 261 256 " accepts a string representing the full name of a \"pgm\" type image file. The f ile is opened and read. The return value is a matrix representing the \+ image. The int elements of the matrix represent the grayscale intensit ies of each pixel in the source image." }}{PARA 278 "" 0 "" {TEXT -1 0 "" }}{PARA 278 "> " 0 "" {MPLTEXT 1 0 625 "img2matrix := proc(inputF ile::string)\n local fileHandle,comment,mNum,dimensions,cols,rows,sh ades,pixels:\n fileHandle := fopen(inputFile,READ,BINARY):\n mNum \+ := readline(fileHandle):\n comment := readline(fileHandle):\n dime nsions := readline(fileHandle):\n dimensions := StringTools[Split](d imensions, \" \"):\n cols := string2int(dimensions[2]):\n rows := \+ string2int(dimensions[1]):\n shades := readline(fileHandle):\n pix els := readbytes(fileHandle,infinity,TEXT):\n pixels := StringTools[ Split](Trim(SubstituteAll(pixels, \"\\n\",\"\")), \" \"):\n fclose(f ileHandle):\n return imgConvert(cols,rows,pixels):\nend proc:" }}} {EXCHG {PARA 278 "" 0 "" {TEXT 269 10 "\ngetLetter" }{TEXT -1 113 " ac cepts a letter as a string and returns a matrix the entries of which r epresent the pixels of the source image." }{MPLTEXT 1 0 1 "\n" }} {PARA 278 "> " 0 "" {MPLTEXT 1 0 150 "getLetter := proc(letter)\n lo cal file_name:\n file_name := cat(file_path, \"ari\", letter, \".pgm \"):\n return evalm(img2matrix(file_name)):\nend proc:" }}}{EXCHG {PARA 278 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 278 "" 0 "" {TEXT -1 0 "" }}}{SECT 1 {PARA 279 "" 0 "" {TEXT -1 20 "Point Grouping Rules" }} {EXCHG {PARA 278 "" 0 "" {TEXT -1 197 "This returns true the X coordin ate of the first point is larger than the X coordinate of the second. \nIf the X coordinates are equal then it returns true if the first of \+ the Y coordinates is larger." }}{PARA 278 "> " 0 "" {MPLTEXT 1 0 280 " largerX := proc(a, b)\n if (a[1] - b[1]) > 0 then\n return true :\n else\n if a[1] = b[1] then\n if a[2] = b[2] then\n \+ return false:\n else\n return largerY(a, b):\n fi:\n else\n return false:\n fi:\n \+ fi:\nend proc:" }}}{EXCHG {PARA 278 "" 0 "" {TEXT -1 197 "This returns true the y coordinate of the first point is larger than the y coordin ate of the second.\nIf the Y coordinates are equal then it returns tru e if the first of the X coordinates is larger." }}{PARA 278 "> " 0 "" {MPLTEXT 1 0 280 "largerY := proc(a, b)\n if (a[2] - b[2]) > 0 then \n return true:\n else\n if a[2] = b[2] then\n if \+ a[1] = b[1] then\n return false:\n else\n \+ return largerX(a, b):\n fi:\n else\n return fal se:\n fi:\n fi:\nend proc:" }}}{EXCHG {PARA 278 "" 0 "" {TEXT -1 85 " This returns true if the Y coordinates are within 'barwidth' \+ distance of each other" }{MPLTEXT 1 0 0 "" }}{PARA 278 "> " 0 "" {MPLTEXT 1 0 108 "YdiffY := proc(a, b)\n if abs(a[1] - b[1]) < barwi dth then return true:\n else return false: fi:\nend proc:" }}} {EXCHG {PARA 278 "" 0 "" {TEXT -1 84 " This returns true if the X coor dinates are within 'barwidth' distance of each other" }{MPLTEXT 1 0 0 "" }}{PARA 278 "> " 0 "" {MPLTEXT 1 0 108 "XdiffX := proc(a, b)\n if abs(a[2] - b[2]) < barwidth then return true:\n else return false: \+ fi:\nend proc:" }}}{EXCHG {PARA 278 "" 0 "" {TEXT -1 63 " This returns true if the X coordinates are equal to each other" }{MPLTEXT 1 0 0 " " }}{PARA 278 "> " 0 "" {MPLTEXT 1 0 93 "XequalX := proc(a, b)\n if \+ a[1] = b[1] then return true:\n else return false: fi:\nend proc:" } }}{EXCHG {PARA 278 "" 0 "" {TEXT -1 63 " This returns true if the X co ordinates are equal to each other" }{MPLTEXT 1 0 0 "" }}{PARA 278 "> \+ " 0 "" {MPLTEXT 1 0 93 "YequalY := proc(a, b)\n if a[2] = b[2] then \+ return true:\n else return false: fi:\nend proc:" }}}{EXCHG {PARA 278 "" 0 "" {TEXT -1 88 " This returns true if the two points are adja cent vertically, horizontally or diagonally" }{MPLTEXT 1 0 0 "" }} {PARA 278 "> " 0 "" {MPLTEXT 1 0 124 "adjPoints := proc(a, b)\n if a bs(a[1] - b[1]) < 2 and abs(a[2] - b[2]) < 2 then return true: fi:\n \+ return false:\nend proc:" }}}{EXCHG {PARA 278 "" 0 "" {TEXT -1 72 " T his returns true if the first list of points is larger than the second " }{MPLTEXT 1 0 0 "" }}{PARA 278 "> " 0 "" {MPLTEXT 1 0 382 "columComp are := proc(a, b)\n local span_a, span_b, mt_a, mt_b:\n span_a := \+ ranges2dims(ranges(a)):\n span_a := span_a[1]*span_a[2]:\n span_b \+ := ranges2dims(ranges(b)):\n span_b := span_b[1]*span_b[2]:\n mt_a := span_a - vectdim(a):\n mt_b := span_b - vectdim(b):\n if abs(m t_a - mt_b) < 4 and span_a > 30 and span_b > 30 then return true:\n \+ else return false: fi:\nend proc:" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 275 64 "This compares two lists and returns true if the first is large r." }{MPLTEXT 1 0 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 99 "bySize := \+ proc(a, b)\n if nops(a) > nops(b) then return true: \n else return false: fi:\nend proc:" }}}{EXCHG {PARA 278 "> " 0 "" {MPLTEXT 1 0 0 " " }}}{PARA 278 "" 0 "" {TEXT -1 0 "" }}}{SECT 0 {PARA 279 "" 0 "" {TEXT -1 31 "Point Group Handling Procedures" }}{EXCHG {PARA 291 "" 0 "" {TEXT 298 12 "\ntableLookup" }{TEXT -1 67 " determins which column \+ of a given matrix the given vector matches." }{MPLTEXT 1 0 1 "\n" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 471 "tableLookup := proc(A::Matrix, x:: vector)\n local i,C,s,min,index:\n if vectdim(x) <> rowdim(A)-1\n \+ then error(\"Dimension mismatch\") end if:\n s := A[2..rowdim(A ),2..coldim(A)]:\n index := A[1,2]:\n min := norm(col(s, 1) - x): \n for i from 2 by 1 to coldim(s) do\n C := col(s, i):\n i f evalb(evalf(norm(C - x)) < evalf(min))\n then\n m in := norm(C - x):\n index := A[1,i+1]:\n end if:\n \+ end do:\n return index:\nend proc:" }}}{EXCHG {PARA 278 "" 0 "" {TEXT -1 80 "\nThis determines the range of they X and Y coordinates s paned by a set of points" }}{PARA 278 "> " 0 "" {MPLTEXT 1 0 275 "rang es := proc(points) \n local s,d, x1,x2, y1,y2:\n d := vectdim(poin ts):\n s := sort(points, largerX);\n x1 := round(s[d][1]):\n x2 \+ := round(s[1][1]):\n s := sort(points, largerY):\n y1 := round(s[d ][2]):\n y2 := round(s[1][2]):\n return [x1..x2,y1..y2]:\nend proc :" }}}{EXCHG {PARA 280 "" 0 "" {TEXT 276 11 "ranges2dims" }{TEXT -1 105 " accepst a two item list of range type items and returns the dime nsions that are spanned by those ranges." }{MPLTEXT 1 0 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 232 "ranges2dims := proc(rngs::list)\n loca l v_span, h_span:\n h_span := 1+abs(($rngs[1])[vectdim([$rngs[1]])] \+ - ($rngs[1])[1]):\n v_span := 1+abs(($rngs[2])[vectdim([$rngs[2]])] \+ - ($rngs[2])[1]):\n return [h_span, v_span]:\nend proc:" }}}{EXCHG {PARA 278 "" 0 "" {TEXT -1 1 "\n" }{TEXT 274 13 "graphicGroups" } {TEXT -1 117 " takes a list of point lists and returns a corresponding list of graphic objects which can be displayed individually." } {MPLTEXT 1 0 1 "\n" }}{PARA 278 "> " 0 "" {MPLTEXT 1 0 377 "graphicGro ups := proc(point_groups::list) \n local i,graphic_objects,m,go:\n \+ graphic_objects := vector(nops(point_groups)):\n for i from 1 by 1 \+ to vectdim(point_groups) do\n m := categoryMatrix(point_groups[i] ):\n go := sparsematrixplot(m,'matrixview','scaling=CONSTRAINED') :\n graphic_objects[i] := go: \n od;\n return convert(graphic _objects,list):\nend proc:" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 272 1 "\n " }{TEXT 277 14 "categoryMatrix" }{TEXT 278 90 " accepts a list of poi nts and returns a matrix with 1 entries corresponding to the points." }{MPLTEXT 1 0 1 "\n" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 475 "categoryMat rix := proc(category_list::list)\n local rngs,dims,x_offset,y_offset ,cat_mat,i,x,y:\n rngs := ranges(category_list);\n dims := ranges2 dims(rngs);\n x_offset := 1-($rngs[1])[1];\n y_offset := 1-($rngs[ 2])[1];\n cat_mat := matrix(dims[1],dims[2],0):\n for i from 1 by \+ 1 to vectdim(category_list) do\n x := round(category_list[i][1]) \+ + x_offset;\n y := round(category_list[i][2]) + y_offset;\n \+ cat_mat[x,y] := 1;\n od:\n return cat_mat:\nend proc:" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 1 "\n" }{TEXT 273 9 "partition" }{TEXT -1 29 " partitions a list of points." }{MPLTEXT 1 0 1 "\n" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 823 "partition := proc(points::list, orientation::stri ng)\n local i, e, categorized:\n if orientation <> \"vertical\" an d orientation <> \"horizontal\" then\n error(\"orientation must b e either vertical or horizontal\"): fi:\n if orientation = \"horizon tal\" then\n # Get rows\n categorized := [ListTools[Categori ze](YequalY,points)]:\n else\n # Get columns\n categorized := [ListTools[Categorize](XequalX,points)]:\n fi:\n # Recategoriz e by col/row sets that are either col/row or not\n categorized := [L istTools[Categorize](columCompare,categorized)]:\n e := nops(categor ized);\n for i from 1 by 1 to e do\n # Convert the lists of col /row set to lists of points\n categorized[i] := FlattenOnce(categ orized[i]):\n od:\n if e > 3 then e := 3 fi:\n return sort(categ orized,bySize)[1..e]:\nend proc:" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 296 18 "generatePartitions" }{TEXT 297 121 " takes a list of characters and it will generate a list of featur e partitions from the reference set of character images." }{TEXT -1 1 "\n" }{MPLTEXT 1 0 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 635 "generate Partitions := proc(alphabet)\n local partitions, letter, the_plot, i ,j, points:\n partitions := matrix(3,nops(alphabet)):\n for i to n ops(alphabet) do\n letter := getLetter(convert(alphabet[i],string ),which):\n the_plot := sparsematrixplot(transpose(letter),'matri xview'):\n points := [op(1..nops(op(1,the_plot)),op(1,the_plot))] :\n partitions[1,i] := alphabet[i]:\n partitions[2,i] := par tition(points, \"vertical\"):\n partitions[3,i] := partition(poin ts, \"horizontal\"):\n printf(\"Vertical and horizonal partitions : %s.\\n\", convert(alphabet[i],string)):\n end do:\n return parti tions:\nend proc:" }}}{EXCHG {PARA 282 "" 0 "" {TEXT -1 0 "" }}{PARA 281 "" 0 "" {TEXT 279 9 "countBars" }{TEXT -1 93 " accepts a list of p oints and determines the number of components in the given oreientatio n.\n" }{MPLTEXT 1 0 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 1096 "countB ars := proc(points::list,orientation::string)\n local x,last_x,a,i,s canning,sorted_points,barcount,target,area:\n if orientation <> \"ve rtical\" and orientation <> \"horizontal\" then\n error(\"orienta tion must be either vertical or horizontal\"): fi:\n if orientation \+ = \"vertical\" then\n sorted_points := sort(points,largerX):\n \+ a := 1:\n else\n sorted_points := sort(points,largerY):\n \+ a := 2:\n fi:\n barcount := 0:\n target := sorted_points[1][a ] - barwidth:\n area := 0:\n scanning := true:\n for i to nops(s orted_points) do\n last_x := x:\n x := sorted_points[i][a]: \+ \n if scanning then\n area := area + 1:\n if x < \+ target then\n if area >= barwidth*barlength then\n \+ barcount := barcount + 1:\n scanning := false:\n \+ fi:\n target := sorted_points[i][a] - barwidth:\n area := 0:\n fi:\n else\n if abs(last _x - x) > 1 then\n area := area + 1:\n scanning \+ := true:\n fi: \n fi: \n od:\n return barcoun t:\nend proc: " }}}{EXCHG {PARA 278 "" 0 "" {TEXT -1 1 "\n" }{TEXT 280 10 "doBarCount" }{TEXT -1 153 " accepts a list of point groups whi ch are each analyzed for horizontal and vertical components. The large st count found in any of the groups is returned." }{MPLTEXT 1 0 1 "\n " }}{PARA 278 "> " 0 "" {MPLTEXT 1 0 271 "doBarCount := proc(point_gro ups::list,orientation::string)\n local i,c,s:\n c := vector(nops(p oint_groups)):\n for i to nops(point_groups) do\n c[i] := count Bars(point_groups[i],orientation):\n od:\n return ListTools[Revers e](sort(convert(c,list)))[1]:\nend proc:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 278 "" 0 "" {TEXT -1 0 "" }}}{PARA 269 "" 0 "" {TEXT -1 0 "" }}}{SECT 1 {PARA 270 "" 0 "" {TEXT -1 16 " Sample A nalysis" }}{PARA 271 "" 0 "" {TEXT -1 380 "Let's first consider that a given alphabetic character has certain significant horizontal and ver tical components that are unique relative to the other characters in t he alphabet. For example the letter \"E\" has a single vertical compon ent and three horizontal components. Again, making this observation is trivial to the human observer. But it is not so obvious to the comput er. \n" }}{EXCHG {PARA 288 "" 0 "" {OLE 1 543744 1 "[xm]Br=WfoRrB:::wk ;nyyI;G:;:j>j:J:ZJj?L:=:wyyyyyB:J?j?<:S:UJ:n;v;;JBB:]:yyyyyy:::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::uyyyyywyyyq;J< B:E:G:I:K:M:_:uyyyqx;:::jC>:c:e:g:i:k:m:o:q:s:u:w:y:;[:F>N>V>^>f>n>v>> ?F?N?V?^?f?n?v?>@:y;;\\:FBNBVB^BfBnBvB>C FCNCVC^CfCnCvC>DIFINIVI^IfInIvI>J>ELq^H_mvJ::::: :::gj::::::::N;;J:F:YLpfF;J::::::::::OJ;vyyuy: >:<::::::JDJ:J;vCJbNHEms>@[;;B:::::::JFN:yay=J:B::::::f[>Jky\\:B:v\\JW dJ?^MgflGg[_gcOi__fZ^biWfogg_ognW:;J:>;eh>>d[Ggh_hZVdbwgj?^JOhi?^Cgg[w f_?^@GgfgfDN=>:CZ:niweJQl:>Ani@_ C=J:nIn:C:=J:;;B:=Z:ni=;JFJlB:J>F:= J:@:niNoBJ>>Z:F:=JyJ;>[>J>J:@Z:>Z:jy;\\J>\\:>]R> =;CB;C:KCDKKV\\MV>b:?b:>cB?C[DN[D:;ER;E:KETKMrpj @p:>qr@Q;Hj;H:KHlKPf]Wf?vZAv:>wbAW[Iv[I:;B:;H:KB\\JN^[F>B[Jb>=KMF \\K:=JHlKF=JJ>NCCCkON\\L^__f>V[CF[QZfZwY[EVyQ:=ry?mRxY;GbyQR =uy?r:yY[HnyQj=xy?XyI:;Bj\\K>>[b>;SBJSJB]b?=kBZkB:sB`sJJKClKKP`jA@;ty;D:[ty[D:;uy;E:[uy[E:;vy;F:kvykNJyYJ=JRyYR=JZyYZ=Jby Yb=JjyYj=JryYr=JZ?Z:>]B>;KCjR>]:>mV^=;GB;C:kGCCK^ ]LN>vf^_:>xj>`:vy:?ByIN[D:yIR;E:yIV[my=R:wyR@MyIb;oy=URwy:ARyIn[py=Xjw yjAX;Bj;H:KJF>;KK@>b:>\\J?d:>]b?GkON\\V^Kj?`jAX;tyyQ bxyy?fyyY[uyyQ:yyy?myyY;wyyQRyyy?ryyY[xyyQjyyy?xyyY;H:;H:kB b:>dJ>d:>GKM:C:kFAkNJ=LJ=JV?QKHDKPj?v:>xj>x:vy:wY<_:BRyI:?KJZj:@]:>mR`=;Gb;C: kGhCK^]VN>vZa_:>xjA`:ry;<[ly?f:vY[E:>j:JFwY;G:yQR=jy?r:Jb=jy?x:>[J>=KB @KK@\\b>DkBHKMF_:?G[CL;F:kCOk NZkZ?FkFTKE:kFV[MJ=R:=JR]R>oqR@m:>sR@MkHb;G:;If[G:KIhkOb=U>?mx@MkFlkNJ]WJ=JR=XR=JV]XV?x:@Z:>jjAZ: >x:>j:Jv>Z:@Xfr?k:niB::`;:ZRj::>:j::XbaX[=v[SFZXZjxjF@JHWl;f`UN]UN]U:::::::: yX:sNlAJl;::::weJN:KB; \\J>F[CF;Ob[B:]R>]JCDKCV\\MVCCCC kLPlLn^`n>IsCIKN\\LNF_cF?OcDOkOhlO^_f^?USEUKQtLQv_iv?[CF[C:]SF]KSDMSV` mV@cCGckTPmTn`pn@isGiKV\\=mSHmKWdMWVauVAsCIskXpmXnaxnAysIyKZcB?CMTLML_dN_VcEWCSDMSl`pn`ncHoCYtMYLbeR?EmTPmLgdOgVeUWEsDQsD:uTQuLitOiv eYwE;ER;E:=UR=MkDPkVf]WFCESCmlPplnf`oFIuSIMn\\PnFgcGGOeTOmohpo^gf_GUUU UMqtPqvgiwG[EV[E:]UV]MsDQsVhmWHcEWcmtPqtnhpoHiuWiMv\\Qvj:@j:Fj;HJ?fZ?n;Ir;_j>`JEV[EN=UR=wjAxJKF\\Kn>ar>Ok DPKQv\\QN@mR@gkGhKWf]WnAyrA?lJ@l:FlKHL_f^_nCIsC_lN`LeV_eNEUSEwlQxLkF`k nFasFOmTPMqv`qNHmSHgmWhMwfawF:yvayNJ=TJ=jJAtJOn\\PNAwbAOLMTLgn_hNGgcGo MYtM?ob@OMWdMOOeTOWoeXOSGeSoPqtPoohpOYweYOR=UR=jRAuROplPPawfaOTMUTgpoh p:npppPiwgiOV]UVGqsHQoghooWiuW_qv`QuWiuOYuUYwqyxQ;Hj;H:=Xj=P[EV[Wr=YRC HkCp\\Qv\\or@qRIxkIP^]V^GsCISOhlOp_iv__sFaSUXmUPauVawsIyS[Hn[H:]Xn]PcE WcWtMYTcHocpdQwdotPqTixoiPf]WfGuSIUohpopgiwg_uVaUuXquPiuWiwuYyu:>vZAv: Fv[IV?ir?I:AyrAI:CIsCI:EYsEI:GisGI:IysII:KItAB:YS;ZJ>:;BZCZrJ:< J:BsyIsyIs:::@syERyAuyEbXxyKxy>nyvIvZioZiZXivpiyyimyQlyaZfa^Xv]fx]>f\\ ?GsyqmyQlyYZcIZ:NK;B:QN:^K;B:UN:l:B:]F:;JC?:aN:^L;jD?:gN:vL;JF=J:Fm:JG=J:VM;JH=J:fM;JI?:yN:>n: B:=G:;JK?:AO:^N;jL?:GO:vN;JN=J:FO;JO=:QG:^O;jP?:WO:vO;JR=Z:Fp:>:_O:VP; JT=J:fP;JU?:iO:>q:>:mO:NQ;jW=J:^q:>:uO:nQ;jY?:;H:s:>:MP:NS;j_?:SH:fs:>:WP:vs:>:[H:U;jf ?:oP:VU;Jh?:uH:nu:>:yH:;Jj=Z:Fv:>:?I:;jk?:CI:;jl?:GQ:vV;Jn=J:FW;Jo?:QQ :^W;jp?:WI:vw:Jr=Z:Fx:>:_Q:VX;Jt=J:fXnX;ju?:kAmQ:NY;jw?:sQ:fy:>:wI:;jy =J:>Z;j:@J:NZ;>Z:VZ;>Z:^Z;>:ER:;B:GR:;B:IR:;J>@J:@:OR:V[;J@@:UR:n[; jA@:[R:];jF@J:N];jG@:sR:f];JI@:yR:>^;jJ@:? S:V^;>:CS:f^;JM@:IS:>_;jN@J:N_;jO@:SS:f_;JQ@:YS:>`;jR@:_S:V`;JT@J:f`;J U@:iS:>a;jV@:oS:Va;JX@:uS:na;jY@:;T:Fb;J[@:AT:^b;j\\@J:nb;j]@:KT:;j^@: OT:Vc;J`@:UT:;Ja@:YT:>d;jb@:_T:Vd;Jd@:eT:nd;>:iT:>e;jf@:oT:Ve;Jh@:uT:n e;ji@:;U:;jj@:?U:Vf;Jl@:EU:nf;jm@J:>g;jn@:OU:Vg;Jp@:UU:ng;jq@:[U:Fh;Js @:aU:^h;jt@:gU:vh;Jv@J:Fi;Jw@:qU:^i;jx@:wU:vi;>:;V:Fj;J;A:AV:^j;jA:MV:;J?A:QV:;J@A:UV:nk;jAAJ:>l;jBA:_V:Vl;JDA:eV:nl;jEA:kV:Fm;JG AJ:Vm;>:sV:fm;JIA:yV:;JJA:=W:Nn;>:AW:;JLA:EW:nn;jMA:KW:Fo;JOA:QW:;JPAJ :fo;>:WW:;jQA:[W:Fp;>:_W:Vp;JTA:eW:np;jUA:kW:Fq;JWA:qW:^q;>:uW:nq;jYA: ;X:Fr;>:?X:Vr;J\\A:EX:nr;j]A:KX:;j^A:OX:Vs;J`A:UX:;JaA:YX:>t;>:]X:Nt;j cA:cX:ft;JeA:iX:>u;jfA:oX:Vu;>:sX:fu;JiAJ:vu;JjA:=Y:Nv;jkA:CY:;jlA:GY: vv;JnAJ:Fw;>:OY:;joA:SY:fw;JqA:YY:;JrA:]Y:Nx;>:aY:^x;>:eY:nx;juA:kY:Fy ;>:oY:;jwA:sY:;jxA:wY:vy;J:DJ:Z:^Z<>Z:fZ<>Z:nZ<>Z:vZ<> Z:>[<>:Mb:;J?DJ:V[<>:Sb:;j@DJ:n[<>:Yb:;JBD:]b:;JCDJ:V\\<>:cb:;jDDJ:n\\ <>:ib:;JFDJ:F]<>:ob:;jGDJ:^]<>:ub:;JIDJ:v]<>:;c:;B:=c:N^`ab:Id:>c:kd:Fe:Af:^jE:Mf:Nk<>: Qf:^k:af:^l:uf:nm< jIE:;g:Fn:Eg:nn:Ug:no:wg:vqsu<>:mh:Nu:Ai:^vZ:fZ=>Z:nZ=>Z:vZ=>Z:>[=>:Mr:;J?HJ:V[=>:Sr:;j@HJ:n[=>:Yr :;JBH:]r:N\\=jCH:cr:;jDH:gr:v\\=JFH:mr:N]=jGHJ:^]=jHH:wr:v]=>:;s:;jJH: ?s:;jKHJ:^^=>:Es:;JMHJ:v^=>:Ks:;jNHJ:N_=>:Qs:;JPHJ:f_=>:Ws:;jQHJ:>`=B: ]s:N`=jSH:cs:f`=JUHJ:v`=JVH:ms:Na=jWH:ss:fa=JYH:ys:>b=jZH:?t:Vb=J\\H:E t:nb=j]HJ:>c=j^H:Ot:;j_H:St:fc=>:Wt:vc=JbH:]t:Nd=jcH:ct:fd=JeH:it:>e=> :mt:Ne=jgH:st:fe=JiH:yt:>f=>:=u:Nf=jkH:Cu:ff=>:Gu:vf=JnH:Mu:;JoH:Qu:^g =jpH:Wu:vg=JrHJ:Fh=JsH:au:^h=jtH:gu:vh=JvH:mu:Ni=>:qu:;JxH:uu:ni=jyH:; v:Fj=J;I:Av:^j=j:Kv:Fk=J?I:Qv:;J@I:Uv:nk=jAI:[v:Fl=>:_v:Vl=J DI:ev:nl=jEI:kv:Fm=JGI:qv:^m=>:uv:nm=jII:;w:Fn=JKI:Aw:^n=jLI:Gw:vn=JNI :Mw:No=jOI:Sw:fo=>:Ww:vo=JRI:]w:Np=jSI:cw:fp=>:gw:vp=JVI:mw:Nq=jWI:sw: fq=JYIJ:vq=JZI:=x:Nr=j[I:Cx:fr=>:Gx:vr=J^I:Mx:Ns=>:Qx:^s=j`I:Wx:vs=>:[ x:Ft=JcI:ax:^t=jdI:gx:vt=JfI:mx:Nu=jgI:sx:fu=JiI:yx:>v=>:=y:Nv=jkI:Cy: fv=JmI:Iy:>w=jnI:Oy:Vw=JpI:Uy:nw=jqI:[y:Fx=>:_y:Vx=JtI:ey:nx=juI:ky:Fy =JwI:qy:^y=jxI:wy:vy=J:LJ:>Z:nZ>>:IB;;B:KB; ;j>LJ:N[>>:wyyyyywqy;WB;v[>>:[B;F\\>JCL:aB;^\\>jDLJ:n\\>jEL:kB;F]>JGLJ :V]>JHL:uB;n]>jILJ:>^>jJL:?C;V^>JLL:wAyA:::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::Abt]J=WZ<^YryAbt::::::::uyyAwyAbyuyy;wy_ vy:?b:=hb=X;wglYYyyIb:Xb>p:VZwvqyamy=ZxFryamy=::::::ZcI<[_w>ryamyM:;:::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::JywYyA::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :=Z<>Z:B::::::::::vyyuyAB:^Z:B:=B:;B:yayQ:>:ndDB:g<;wE;B:<:::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::vYxy;J>Z=>tQ>Z:F:OW?B:C:AR:Kj<>:Qb:;Z:fZ:J@DJl^FEb:;ju=Z=>Z;B:;B :=R:=J;DJ;VZ=J<^:ER;EJ=n:Ij=>;Kj>`j>N;Oj?V;SJ@f;UJAn;YjA>\\J>\\:F\\KF< _b>_jCHkC^=F=N=V=^=f=n=v=>^Z>^:F^[F>?cB?kKHlK^^^jLP?F?N _djOJPjPJQjQZj>`:F`kF@_cF_kSHmS^@ckTP=g;i;k;m;o;q;s;u;wKYI EFENEVE^E::BR;E:=UR=MkDPkVf]WFCMlfFnFvFIMn\\@M=O=Q=SEU::BV[E:]UV]MsDQs VhmWHcEWfHnHvH>Ikmv`qvNI:::vIk>[DPK:R]:xB< SB=jBAsBOlLPLav^aNDkDQCg>i>k>m>ZUXM::B:;Gb;G:=Wb=OKETKWn]XNC?E?G?I?KON ;:BeS?betJAt:FtKIT_hn_pcIwc_TfT:ixo::o@qPhkhKikiywi ?vZAv:Fv[IV?ir?I:AyrAI:Ca:fV<:Z:^`^:^s:B:CMl>:;Jl^F;J:>_:>Z:^F:=B:KJ:>:[rCLk>[DPK:R]:ZJ@l: :::PCjE;:ZUXM::ZZ@n::::JM;:M?:BeS?be:]DGSyyyyA::::::jnA[:>Z::::::::Zw>ryyYyA::::::JoA[:B::::::::bI=xyyyyyA ::::::Jo[::::::::Zx:yA::::::Jo[::::::::Zx:yA::::::Jo[::::::::Zx:yA:::: ::Jo[::::::::Zwvqyuy:::::::NWB:JQxlQxlQ::::::WCQGpyyyy;::::::NWB:b:Wxm YxmY@:::::^sQYXxiy=::::::NWB:b:wyyyqy;:::::nyx]y=::::::NWB:b:syyyyyyA: ::::::::::::Jo[:Z<:yA:::::::::::::Jo[:Z<:yA:::::::::::::Jo[:Z<:yA::::: ::::::::Jo[:Z<:yA:::::::::::::Jo[:Z<:yA:::::::::::::Jo[:Z<:yA::::::::: ::::Jo[:Z<:yA:::::::::::::Jo[:Z<:yA:::::::::::::Jo[:Z<:yA::::::::::::: Jo[:Z<:yA:::::::::::::Jo[:Z<:yA:::::::::::::Jo[:Z<:yA:::::::::::::Jo[: Z<:yA:::::::::::::Jo[:Z<:yA:::::::::::::Jo[:Z<:yA:::::::::::::Jo[:Z<:y A:::::::::::::Jo[:Z<:yA:::::::::::::Jo[:Z<:yA:::::::::::::Jo[:Z<:yA::: ::::::::::Jo[:Z " 0 "" {MPLTEXT 1 0 31 "sample := getLetter(\"sampleE\");" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%'letterG-%'matrixG6#7<76\"\"!F*F*F*F*F*F*F*F*F*F*F*F*F*F*F*F*F *F*F*76F*\"\"\"F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F*F+F+76F*F,F,F,F*F*F *F*F*F*F*F*F*F*F*F*F*F*F*F*F-F-F-F-F-F-76F*F,F,F,F,F,F,F,F,F,F,F,F,F,F ,F,F,F*F*F*F.F.F-F-F-F-F-F-F-F-F+F+F+F)" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 272 "" 0 "" {TEXT -1 263 "\nThis example sh ows the letter \"E\" read from a \"portable graymap\" type image and t hen translated onto a corresponding matrix. Although the image is now \+ in the form of a managable data structure, it is still not obvious to \+ the computer what this matrix represents." }}{SECT 1 {PARA 4 "" 0 "" {TEXT 282 39 "More on the provided sample input files" }}{PARA 289 "" 0 "" {TEXT -1 396 "The provided input files are in portable graymap fo rmat and have the \".pgm\" extension. It is convenient for us in the M aple programming environment because the image data is encoded as inte ger grayscale values in ascii format. The grayscale values are read as strings and converted to either 0 or 1 depending on wether or not the grayscale is above or below the assumed midpoint threshold of 128." } }{PARA 289 "" 0 "" {TEXT -1 0 "" }}{PARA 289 "" 0 "" {TEXT -1 163 "The portable graymap format is used in the UNIX programming environment f or manipulating images in various stages of enhancement. More informat ion is available at:" }}{PARA 289 "" 0 "" {TEXT -1 81 "http://seawifs. gsfc.nasa.gov/~norman/seawifs_image_cookbook/faux_shuttle/pgm.html" }} {PARA 289 "" 0 "" {TEXT -1 73 "http://seawifs.gsfc.nasa.gov/~norman/se awifs_image_cookbook/faux_shuttle/" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" } }{PARA 290 "" 0 "" {TEXT -1 278 "In accordance with Duda's feature vec tor concept, now is the time to use a feature extractor procedure to s tart calculating the distinguishing features of this character. The mo st obvious traits of the letter \"E\" are its horizontal and vertical \+ components. So let's start there." }}{PARA 0 "" 0 "" {TEXT 283 402 "\n To identify the vertical component, the computer could take the magnit ude of all the column vectors and pick out the ones that are more than a particular threshold. Then the computer is going to need to take me asures to notice that several adjacent column vectors above the set th reshold represent only a single vertical component. Otherwise the abov e matrix might register three vertical components.\n" }{TEXT -1 1 "\n " }{TEXT 285 294 "Using this method it seemed that the computer was ta king such a long time to complete the analysis. So let's consider an a lternate form of representation. Using the Maple \"sparsematrix\" plot procedure, the matrix can be plotted as a group of points. So, let's \+ bring up another character image.\n" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "letter := getLetter(\"E\"):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 80 "lplot := sparsematrixplot(transpose(letter),'mat rixview','scaling=CONSTRAINED'):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "display(lplot);" }}{PARA 13 "" 1 "" {GLPLOT2D 400 300 300 {PLOTDATA 2 "6&-%'POINTSG6b]q7$$\"#@\"\"!$!#xF)7$$\"#CF)$!#YF)7$$\"#FF)$!#\")F)7 $$\"#YF)$!#WF)7$$\"#EF)$!#yF)7$$\"#JF)$!#=F)7$$\"#dF)$!#;F)7$$\"#hF)F4 7$$\"#?F)$!#$)F)7$$\"#AF)F>7$$\"#BF)$!#\\F)7$$\"#GF)$!#fF)7$$\"#KF)$!# :F)7$FjnFX7$$\"#MF)F97$$\"#NF)$!#F)7$F'$!#oF)7$FAF*7 $$\"#TF)$!#zF)7$F`rF\\o7$FNFjr7$F'$!#hF)7$FSFbr7$FV$!#MF)7$F<$!#RF)7$F enF97$$\"#jF)F\\o7$Fen$!#FF)7$$\"#IF)$!#!)F)7$$\"#RF)$!#@F)7$F`r$!#[F) 7$FfpFP7$$\"#lF)FX7$F<$!#CF)7$$\"#^F)F`u7$$\"#fF)F\\o7$$\"#kF)$!#XF)7$ F'F/7$FS$!#KF)7$FSFcq7$FVFgr7$$\"#ZF)FP7$$\"#_F)Fhq7$F'$!#BF)7$F<$!#jF )7$$\"#HF)F`s7$FcoF97$F]vFho7$$\"#pF)F]r7$F-F[p7$F^p$!#sF)7$FfqFbr7$F[ qF/7$F<$!#NF)7$$\"#QF)F]q7$$\"#\\F)F47$F-Ffv7$FjnFht7$F`oF*7$$\"#XF)FX 7$F[wF>7$F`rFhp7$FFFP7$$\"#iF)F]u7$FNF\\t7$F^pFex7$F^pFX7$F2Fbr7$FfpFh o7$F`vFbr7$F'F47$F-F]q7$FgwFbv7$F[yFbv7$FayFht7$$\"#eF)F]r7$FKF>7$FSF] r7$F-Feo7$FenFdw7$FjnFgr7$F`oF`u7$$\"#OF)Fbr7$FfpFht7$$\"#[F)Feo7$F^wF \\o7$FerF*7$FNFgu7$FV$!#pF)7$F2Ffv7$F[yFH7$F`qFbr7$F`tF47$F2$!#qF)7$F^ sFP7$$\"#WF)Fbr7$F7F/7$F]vFP7$Fgy$!#^F)7$FcoF>7$FayF]u7$F^wFhp7$F[rFh \\l7$FNF`x7$F'F[p7$FSFh\\l7$FV$!#QF)7$F<$!#VF)7$FenF`u7$FAF>7$F^sF/7$F duFeo7$FV$!#aF)7$F^pFC7$Fen$!#JF)7$FgwF\\o7$F[uFho7$Fb[lF*7$FjuF>7$Fez FC7$F]vF]q7$FAF47$F`oF\\o7$$\"#mF)F>7$F^pFfv7$F7$FenF*7$FAF/7$FhxFX7$FKFh\\l7$F'Fex7$F`_lFH7$$\"#VF)FP 7$F[wF]r7$FFFht7$FgyFC7$FerFP7$FNFe]l7$F^pF\\t7$F^p$!#`F)7$Fb[lFho7$Fb [lFbv7$F`qFX7$F-F\\^l7$F 7$F[qFX7$F`tF97$F`tFht7$FezF`s7$FgyF`u7$F-F]u7$F7$FgyF]r7$F'F\\t7$FS$!#DF)7$F^p$!#LF)7$F2F^bl7$F`_lFho7$Fc\\lFbv 7$F`rF]q7$FKF]r7$FgyF\\o7$F[_lFH7$FNFbr7$F'FH7$F^pFf_l7$F<$!#cF)7$$\"# SF)F]q7$F[yF`s7$F-Fjel7$F^pF[p7$FhxFC7$FFF]r7$F`tF*7$F[_lFgr7$FftFbr7$ FealFbv7$FKFho7$F``lF47$F-Fghl7$FenF^el7$FFFbr7$F`qF>7$FduF]u7$FNFfv7$ FVF*7$F2Fagl7$$\"#PF)FX7$FNF^bl7$F'F`dl7$FSFhp7$FSFaw7$F-Fe]l7$F2F>7$F fpFbv7$FgflF]q7$F`qFP7$FAF\\o7$F`_lFP7$FhxF97$F^wF]r7$FNFht7$FSFegl7$F VF/7$F7$F[rFbv7$F2Fdw7$FfpFg r7$F`vF47$F\\xF47$F^sF\\o7$FfpF]q7$FealFH7$FNF[p7$F'Fjel7$FSF97$FVF`^l 7$Fen$!#TF)7$FjilFX7$F^sF47$FfpF/7$F[yF97$FfqF`u7$FfqF>7$F7$FVFH7$F-Fbr7$F-Fhq7$F2F]r7$FjilF>7$FfqF]q7$FfqFht7$F^wFP7$F gflFbr7$FFFX7$F`qFht7$FAFgr7$F`[mF>7$F[rFbr7$F`qFho7$FSF`s7$FenFa`m7$F jnFH7$FjnF]q7$F`oFbv7$FcoFX7$F[rFH7$FduFhp7$FNF]u7$FVFcq7$F^p$!#IF)7$F 2F`p7$F`[mFho7$F2Fd`l7$FjuF*7$FezFeo7$FezF/7$FNFX7$F2Fh\\l7$FjilFbr7$F c\\lF]u7$FNFh[l7$F'F[]m7$FSF`u7$FVFex7$F7$F`tFeo 7$F[_lF*7$F^[lF>7$F7$F[rFeo7$F[rFht7$F[rFP7$F]vF] r7$F`_lFhq7$FayFC7$F[yF/7$FNFicl7$FSFeel7$FSFjr7$FVF\\t7$F7$FAFbr7$F[qFbv7$F`vFhp7$ F'Fj_l7$F`_lFeo7$F7F]u7$F`vF>7$FerFeo7$FNF97$F^pFagl7$F^pF\\^l7$F^[lFH 7$F^[lF47$Fc\\lFgr7$F7FH7$F[qFh\\l7$FgyFho7$FduFC7$FduFhq7$F-F[el7$F^p F[]m7$F7$F7$F[wFbv7$F^wF`u7$FgflF`s7$FKF 97$F`tFH7$F[_lF47$FNF[]m7$F'F[el7$FSFa^m7$FVFcp7$F`[mF47$FealF]q7$F`rF X7$F7 $F2Fa^m7$FcoF/7$F`[mFbr7$FjilF\\o7$F'Fegl7$F-F97$F2F`s7$F[uFeo7$F^wFht 7$FerFhq7$FAFH7$F`rFP7$FNF47$FSFhq7$FVFbr7$F7$FFF]u7$FKFhp7$FNFC7$FVFdw7$F^pFct7$F2F^]m7$Fc \\lFH7$F2Fcfm7$F^sF]u7$F[yFgr7$FfqFP7$F[rF/7$FgflF]u7$F]vF/7$FduF47$F^ sFeo7$FfpFeo7$FgflFhq7$FgflFP7$FFF>7$FNFcq7$F'Fgn7$FSFho7$FSFbv7$FVFfv 7$F2Feel7$FenFael7$FfqFH7$FduF]q7$F7$F`vF\\o7$FduF bv7$Fa_mF*7$Fa_mF>7$F`oFhq7$FayF\\o7$F`qF\\o7$FerF47$F7$F[wFH7$F[yFP7$FKFgr7$F`vFP7$FduFht7$FNF`\\n7$FVF]r7$F^pFbr7$F 2Fbv7$FAFhp7$FcoFhq7$F[wF`s7$F`tF/7$F'F`s7$F-F`u7$F-Fht7$F-F]r7$F2FP7$ F[uFH7$Fc\\lFht7$FfpF*7$FgflFX7$FNFh\\l7$FSFht7$F-F\\o7$FenFes7$FjnFeo 7$FjnFh\\l7$F`oF/7$FjilF]r7$FealF>7$FjuF`s7$FFFC7$F`qFbv7$FNFhp7$FVFd` l7$F^pF`^l7$F2Fhcm7$F`rF47$FgyFX7$F-F*7$F2Fjr7$F[_lFP7$FcoFC7$F^sF>7$F [wF/7$FgflFht7$FezF`u7$FerFho7$FNF_\\l7$F'Fdw7$FSFX7$FVFj_l7$F7$F^[lF]r7$FayF>7$F'F_\\l7$FVFeel7$F^pFH7$FenF`p7$FftF]r7$F ^[lFht7$F[uF]q7$FgflF>7$F^[lFeo7$F^wF]q7$F[qFgr7$F\\xF*7$FSFd`l7$F7$F'Fghl7$FVFeo7$F7$F'FP7$F-Feel7$FgwFbr7$F`[mFC7$F2FH7$F^sFhp7$F gflF/7$F-Fgr7$FenF[p7$FjnF]u7$F`oF]q7$FjilF47$F7F`s7$FjuF\\o7$FjuFH7$F [qF]u7$FFF\\o7$FKFht7$FNF^]m7$FSFgn7$FVF^el7$F2Fis7$FcoFht7$Fc\\lFC7$F gflFh\\l7$F-Fj_l7$F2F`x7$FKF]u7$F`tFP7$F[_lF]u7$F`_lF*7$F`[mF]r7$F^sF* 7$F[rFhp7$FezFbv7$F[_lF]r7$Fa_mFhp7$FNF`dl7$FSF^bl7$FSFh[l7$FVFagl7$F< Fbv7$F2Ff_l7$FenF]q7$FftF\\o7$FealFX7$F[rFX7$FNF]q7$FVFgil7$F^pFho7$F2 Fgr7$FenFjhl7$FgwFeo7$F[uFX7$F\\xF`s7$FAFP7$F`oFeo7$F7FX7$F`_lF]q7$Fji lFgr7$F7F]r7$F[yFeo7$FNFgn7$F'Feel7$FSFb]l7$FVFghl7$FduF`s7$F'F`p7$F7 $FgwF>7$FayF`s7$F[wFh\\l7$F[qF`s7$FezFhq7$F]vFgr7$F`qFgr7$FgyFht7$F7$F'F`\\n7$F`_lFC7$FhxF hq7$FealF/7$FNFbv7$F^pFa^m7$F^pF[el7$FayF*7$F-Fgil7$F^pFdw7$FgwFh\\l7$ F[wFhp7$FfqFbv7$FjuFbv7$F[rF`u7$F`qFh\\l7$FKFC7$F`vFX7$F-F`s7$FftFbv7$ F^sFh\\l7$F^wF/7$F-Faw7$FenFh[l7$F[yF>7$FfqF*7$FfqF`s7$FezF47$FNFhcm7$ FVFegl7$F2Fb]l7$FenFagl7$FcoF47$FealFho7$FgflF`u7$F'F`x7$F-Fagl7$F2Fhq 7$F^wFeo7$F`_lF47$FhxFhp7$F[wF\\o7$F[rF`s7$F]vF47$F`vFho7$FNF>7$FSFicl 7$FVF97$F7$FjilFC7$F[wF47$Fb[lF]u7$F^wFbr7$FNFdw7$F'Fgil7$FSFa el7$FVF`p7$F`[mF]u7$F^sF]q7$F^sFht7$FfpF\\o7$FfpFh\\l7$Fb[lFgr7$F[yF*7 $FjuFeo7$F7$F[qFH7$F]vFH7$FgyF*7$F`vFh\\l7$F7$F'FC7$F^pFgn7$F7$FNF^el7$F'Fcfm7$FSF]q7$FV F`\\n7$F7$Fb[lF]r7$FfqF97 $F[rF\\o7$FFFhp7$FezFH7$FNFegl7$FSF\\^l7$FSF_\\l7$FVFa^m7$F7$F7Fgr7$FfqFh\\l7$F^wF>7$Fez FP7$FKF`s7$FNFeel7$F'Ficl7$F-Fa^m7$F-Fael7$F2F*7$F[wF]u7$F[_lFC7$FerF> 7$F`_lF]r7$F^sFH7$FealF\\o7$F7Fho7$F[wFeo7$F[yFh\\l7$FFFgr7$F`tF]r7$Fa _mFhq7$FNF`s7$FSF`dl7$FVFbv7$F " 0 "" {MPLTEXT 1 0 0 " " }}}{PARA 0 "" 0 "" {TEXT 286 335 "\nThis plot is a data structure th at can be dissected. The points plotted here can be pulled out as a li st and handled with list procedures provided in the Maple \"ListTools \" package. The greatest value in this is that the points can now be s orted and categorized with the list \"sort\" and ListTools \"Categoriz e\" procedures respectively.\n" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "lpoints := [op(1..nops(op(1,lplot)),op(1,lplot))]:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" } {TEXT 288 211 "\nBy selectively sorting and categorizing the points we can isolate key features of the character. For example, let's pull ou t the three major groups where the points are categorized by verticall y common traits.\n" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "cat_ve rtical := partition(lpoints, \"vertical\"):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 " " {TEXT 287 257 "For the sake of this study, this worksheet includes a procedure for translating a list of points back into a matrix data st ructure that can be plotted. Doing this gives us the ability to observ e what points were selected as having vertically common traits.\n" }} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 54 "vertical_bands := graphicGro ups(categorized_vertical):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 67 "for i to nops(vertical_bands) do\n display(vertical_bands[i]);\n od;" }}{PARA 13 "" 1 "" {GLPLOT2D 400 300 300 {PLOTDATA 2 "6&-%'POINTS G6ebn7$$\"#H\"\"!$!#mF)7$$\"#MF)$!#nF)7$$\"#5F)$!\"%F)7$$\"#EF)$!\")F) 7$$\"#GF)$!#PF)7$$\"#KF)$!\"(F)7$$\"\"$F)$!#RF)7$$\"\"'F)$!#kF)7$$\"\" (F)$!#oF)7$$\"#9F)$!\"&F)7$$\"#OF)F/7$$\"#7F)F*7$F<$!#pF)7$$\"\"\"F)$! #OF)7$$\"#F)FM7$$\"\")F)F]p7$FcpF]r7$FcuF]r7$$\"#PF)Fds7$F^vFbr7$F2F_o7$F \\tFfq7$FboF`p7$F'F47$F]oF^q7$F_sF47$F[pFC7$F[pF[q7$FfrF]r7$$\"#DF)Fbr 7$F[wF*7$F'F>7$FirF47$$\"#JF)Fcq7$F-Fho7$FcpFC7$FipF*7$FPFM7$FboFit7$F FF`p7$FPFW7$FfpFfq7$F-FW7$FZFho7$F`rF/7$FgnF>7$FfrFC7$FgsFR7$F7$FcuFit7$FFFcq7$F_sFet7$FfuFR7$FirF`p7$F7Fbr7$FgsF]r7 $F]oF[q7$FiuFC7$F`uFM7$FcpFho7$FfuF]p7$FcuFho7$F^vFit7$F^vF/7$F2F^q7$F boF>7$F'F97$F_sF97$FfpFM7$FirFit7$F[pF*7$F\\tF]r7$FfpF]r7$FfrFho7$F7Ff q7$FawF`p7$FawFjn7$FAF/7$F7$FiuF>7$F[pF`p7$ F[wF]r7$F^vFC7$F]oFit7$F\\sFbr7$FKF47$FPFet7$FaqF^q7$FgsFM7$FipFjn7$Ff uF]r7$FaqFds7$F`uF[q7$F_sFH7$FiqF]p7$FeoF>7$FirF>7$FhxFfq7$FhxFet7$F2F [q7$F7F/7$FgsFho7$FAFjn7$F]oF*7$F`uFR7$FUFcq7$FfuFC7$F'Fbr7$F-FM7$FfpF R7$F2Ffq7$F\\tFho7$F7FW7$F7$FaqF[q7$F[wFho7$FawF^q7$FAFcq7$F\\sF/7$FKF97$FPFH7$FirFM 7$F`rFH7$FfuFho7$FaqFit7$FcuF/7$FhxFR7$FcpFM7$FiqFC7$FhxFH7$FipF_o7$F2 F*7$F\\tFM7$F_tF_o7$FiqF_o7$F7F_o7$FgsFds7$F\\sF47$FgnF]p7$FUF`p7$FUFj n7$F'F/7$F-FR7$F2FW7$F7$F_sFfq7$FeoF97$FKFH7$F[pF47$F'F]r7$FawF[q7$F cpF47$FiqF]r7$FfpFH7$FipFbr7$FboF]p7$FaqF*7$FPFds7$FiqF/7$F-Fds7$FZFet 7$F`rFM7$FgnF]r7$FfrF47$FgsFcq7$FirFR7$F\\sFet7$F_sFcq7$FeoFbr7$FZFds7 $FFF]p7$FcpFR7$F`uFfq7$F\\tFR7$F_tF^q7$FiqF^q7$FaqF`p7$F7F^q7$FgsFit7$ FAF_o7$F\\sF97$FgnFC7$FUF>7$F_tF47$FfrFM7$F`rF]p7$F`uF]r7$FcuF]p7$FFF[ q7$FfuFcq7$FiuF47$FcpFet7$FcuFet7$F^vF]p7$F^vFM7$F2F>7$F`uFC7$F\\tFds7 $FboF]r7$F'FW7$F_sFW7$F-F`p7$F[pF97$F[pFbr7$FfrFet7$F[wFM7$F[wF/7$F'Fh o7$FawF*7$F-FH7$FcpF97$FipF/7$FPFcq7$FboFC7$FFF]r7$FPFit7$FfpFds7$F-Fi t7$FZFH7$F`rFR7$FiuF[q7$FgnFho7$FfrF97$FgsFjn7$FawF]p7$F\\sFH7$F_tF[q7 $F_sFjn7$FeoF/7$FZFit7$FhxFC7$FhxFcq7$FFFC7$F`rF]r7$FiuF]r7$FiqF[q7$F] oF]p7$FKFfq7$F`uFW7$FaqF>7$FAF^q7$F_tF97$FfrFR7$F`rFC7$F`uFho7$FcuFC7$ FFF*7$F_sF_o7$FfuFjn7$FeoF]r7$FirF]r7$F7FM7$FgsFet7$F]oFbr7$FiuF97$F2F it7$F`uFcq7$FUF[q7$FcpFH7$FfuF47$FcuFH7$F^vFR7$FboFho7$FfpFcq7$FirFC7$ F[pF/7$F\\tFet7$FfrFH7$F7Fds7$FawF]r7$FAFfq7$F7$FAF[q7$F^vF97$F]oFC7$F\\sFM7$FKFW7$FPF_o7$Ff uFet7$FaqF]p7$F_sF^q7$FiqF47$FeoFho7$FirFho7$FhxFds7$FhxF_o7$FipF`p7$F 2Fbr7$F_tF`p7$F7F`p7$F7FR7$FgsFH7$F\\sFfq7$FcuFM7$F]oF/7$F`uFjn7$FUFds 7$FUF*7$FfuF97$F'FM7$FirFfq7$F-Fcq7$FfpFjn7$F2Fds7$F\\tFH7$F7Fit7$F7$FKF[q7$FUF]p7$FZFcq7$FgnFM7$F7$F2F/7$F\\ tFcq7$F_tF>7$FiqF>7$F7F>7$FgsF]p7$FAF`p7$F\\sFW7$FgnF47$FUF]r7$F_tFfq7 $FFFjn7$F'FR7$F-Fjn7$FfuF[q7$F7$FgnF97$FUFho7$F_tFW7$Ff rFcq7$F`rF47$F`uFet7$FcuF47$FFFbr7$F_sF`p7$FfuF*7$FAFR7$FiuFW7$FcpF_o7 $FcuF_o7$F^vF47$F^vFcq7$F2Fho7$F`uF97$F\\tF]p7$FboFet7$F'Fit7$F_sFit7$ FfpF[q7$F-F]r7$F[pFM7$FfrF_o7$F[wFR7$F'FH7$FawF/7$F-F^q7$FipFR7$FPF*7$ FboF97$FFFet7$FPFC7$FfpF]p7$F-FC7$FZF^q7$F`rFjn7$FiuFbr7$FgnFH7$F\\tFW 7$F7$FiqFfq7$FeoFet7$FirFet7$FhxF`p7$F7Fcq7$FgsF_o7 $F]oFM7$F2FC7$F`uF*7$FUFbr7$FcpF^q7$FfuFW7$FcuF^q7$F^vFjn7$FboFH7$F-F[ q7$FfpF*7$FirF97$F[pFR7$F\\tF_o7$FfrF^q7$F7F]p7$FawFet7$FAFds7$FZF[q7$ F7$FirF[q7$FfuF_o7$FaqF47$FcuFcq7$FhxF*7$FcpF[q7$FiqFW 7$FeoFH7$FirFH7$FcuF[q7$FhxF]p7$FhxF>7$FipF]r7$F2FM7$F\\tF[q7$F_tF]r7$ F7F]r7$F7Fjn7$FgsF^q7$F\\sFds7$F]oFR7$FgnFfq7$FUF/7$F'Fcq7$FirFds7$F-F *7$FfrFfq7$FeoF`p7$F2F]p7$F\\tF^q7$F7FC7$F7$FFFho7$FK Fbr7$FPF/7$FUF47$FZF*7$FgnFcq7$F7$F[pFds7$FcpFds7$FfpF>7$F[wFC7$F[pFH7$FaqFM7$F[wF^q7$FKFjn7$ FiqFcq7$F\\sFjn7$F`rF[q7$FfrFds7$FirF*7$F\\sF`p7$F_sFbr7$FfuF^q7$FaqF9 7$FcuFjn7$FFFfq7$FgsF[q7$FcpF*7$FipFho7$F2FR7$F\\tF*7$F_tFho7$FiqFho7$ F7Fho7$FgsF47$FAF]r7$F\\sFit7$FgnFW7$FUFet7$F_tFds7$FfrF[q7$F`rFfq7$F' Fjn7$FcuFfq7$FfuFbr7$FaqF/7$FKF/7$FiuFds7$FUF97$FcpF`p7$FcuF`p7$F^vFfq 7$F^vF[q7$F2Fet7$FgnFjn7$F'F]p7$F]oFH7$F_sF]p7$F[pFit7$FfrF`p7$F[wF[q7 $F[wFcq7$F'F_o7$FirF]p7$FawFM7$FcpFit7$FipFcq7$FPFbr7$F2F97$FboFW7$FPF 47$FiqFjn7$F-F47$FZF>7$F`rF*7$FgnF_o7$FfrFit7$FgsF/7$FawFfq7$F\\sF>7$F _sF/7$FeoFcq7$FawF_o7$FZF47$FhxFW7$FhxFbr7$FFFW7$F]oFfq7$FKFR7$FboFfq7 $F`uF]p7$FUFfq7$FaqFet7$FgsF97$FAFho7$FUFH7$F_tFit7$FfrF*7$F`rFW7$F`uF _o7$FcuFW7$FFFM7$F_sF]r7$FfuF/7$F7F[q7$FgsF`p7$FiuFit7$F`uFbr7$FcpF>7$ FcuF>7$F^vFW7$F^vF*7$F2FH7$F\\tF47$FboF_o7$F'FC7$F_sFC7$FfpFbr7$FirFW7 $F-Fet7$F[pFcq7$F\\tF`p7$FfpF`p7$FfrF>7$F[wFjn7$F'F^q7$FawFR7$F-F_o7$F ^vF`p7$FPF97$FfpF47$FaqFR7$F-F97$FipFfq7$FiuFM7$FgnF^q7$F\\tFit7$F7$F]oFcq7$F`uF/ 7$FUFM7$FfuFit7$FboF^q7$F'F[q7$F-Fbr7$FfpF/7$F[pFjn7$F\\tF>7$F7F47$F7$FboFcq7$FfpF97$FeoF]p7$ FipFW7$FKF]r7$FiuFR7$F7$FawFH 7$FAFM7$F\\sF*7$FipF^q7$FKFC7$FPFho7$FirFbr7$F`rFho7$FfuF>7$FaqFW7$Fcu F*7$FhxF/7$FcpFbr7$FiqFit7$FeoF^q7$FirF^q7$FcuFbr7$FhxFho7$FipFet7$F2F cq7$F\\tFbr7$F_tFet7$FiqFet7$F7Fet7$FgsFfq7$F\\sF]p7$FgnFds7$FUFR-%&ST YLEG6#%&POINTG-%*AXESTICKSG6$7+F^oFjpF3F`tFjqF\\wFjrFduF_v7*/FgqF^o/!# 5F3/!#?Fjq/!#IFjr/F_q\"#S/!#]\"#]/!#g\"#g/F[o\"#p-%+AXESLABELSG6'Q'col umn6\"Q$rowFa\\o-%%FONTG6#%(DEFAULTG%+HORIZONTALG%)VERTICALG-%(SCALING G6#%,CONSTRAINEDG" 1 2 0 1 10 0 2 9 1 4 1 1.000000 45.000000 45.000000 0 0 "Curve 1" }}}{PARA 13 "" 1 "" {GLPLOT2D 400 300 300 {PLOTDATA 2 "6&-%'POINTSG6jam7$$\"\"\"\"\"!$!#UF)7$$\"\"#F)$!#VF)7$$\" \"'F)$!#gF)7$$\"\"&F)$!#RF)7$$\"\"$F)$!#EF)7$$\"\"%F)$!#lF)7$F2$!#=F)7 $$\"\"(F)$!#TF)7$$\"\"*F)$!\"*F)7$F<$!\"&F)7$F<$!#MF)7$$\"\")F)$!#NF)7 $F7$FI$!#XF)7$FY$!#jF)7$FNF_o7$FI$!#ZF)7$FY$!#?F) 7$F2$!\")F)7$FN$!#eF)7$FA$!#7F)7$FYFeo7$FN$!#AF)7$F'$!#BF)7$F-$!#GF)7$ F7Fho7$FIF[p7$F'$!#:F)7$F'$!#hF)7$FA$!\"#F)7$FI$!#dF)7$F-FF7$F<$!#>F)7 $F2F_o7$F'$!#YF)7$F-Fip7$F7Fip7$F2$!#kF)7$F<$!#IF)7$FA$!#pF)7$F2Fiq7$F N$!#8F)7$F7$F'F\\o7$F-$!#OF)7$F<$!#WF)7$F-$!#KF)7$F7F]u7$F'Fas7$FIFgr7$F- Fiq7$F7$FYF/7$F-Fdu7$F2$!#`F)7$F7F\\w7$FAFbq7$FIFV7$FNFjr7$FNFbp7$F7F S7$FYF_r7$F<$!#\\F)7$FNF]u7$F'Fjt7$FAF\\q7$F7$!#7$F7F47$FIF_q7$F'Fdt7$F'F[]l7$F'FC7$ F7$F-FS7$F-Fjs7$FAF av7$FIF_r7$FYFC7$FNF97$FYFiq7$FNF47$FAFgbl7$F7Ffy7$FYFS7$FIFdt7$FYF^p7 $FNFbo7$F'Fh]l7$F-FV7$F7$F7$FAFfv7$F7F\\r7$F-Fjr7$F-Fgr7$FAFP7$FAF]y7$FIFh]l7$FYFho7$FNF fv7$F'Ffv7$FYFas7$F2Fjt7$FNF]s7$FAFfy7$FYFjr7$FNFg\\l7$F'Fiq7$F-F\\o7$ F7Fgr7$FIFP7$F'Fgbl7$F'F47$F'F]u7$F7$F-Fen7$F " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 0 "" 0 "" {TEXT 291 268 "\nThese vertical category groupings present us with the point s that compose any significant vertical components of the character. K nowing this, the computer can now use list handling procedures to anal yze the points and count the number of vertical components present.\n " }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "v_count := doBarCount(ca t_vertical, \"vertical\");" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%(v_cou ntG\"\"\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 0 " " 0 "" {TEXT 292 97 "\nNow these same procedures can be applied to det ermine the number of horizontal compontents also." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "cat_horizont al := partition(lpoints, \"horizontal\"):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "h_count := doBarCount(cat_horizontal, \"horizontal\") ;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%(h_countG\"\"$" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" } }{PARA 0 "" 0 "" {TEXT 294 124 "Again for the human observer, here is \+ a graphic representation of the points determined to have horizontally common traits.\n" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "horizon tal_bands := graphicGroups(cat_horizontal):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 83 "for i from 1 by 1 to nops(horizontal_bands) do\n di splay(horizontal_bands[i]);\nod;" }}{PARA 13 "" 1 "" {GLPLOT2D 400 300 300 {PLOTDATA 2 "6&-%'POINTSG6]do7$$\"#:\"\"!$!#kF)7$$\"#GF)$!\"\" F)7$$\"#8F)F/7$$\"#=F)$!#PF)7$$\"#DF)$!#RF)7$$\"\"$F)$!\")F)7$$\"\"(F) $!\"$F)7$F'$!#nF)7$F-FI7$$\"#KF)$!\"&F)7$$\"#YF)$!\"'F)7$F5$!\"(F)7$$ \"#BF)$!\"#F)7$FZFI7$$\"#UF)Ffn7$$\"#AF)FA7$$\"#CF)$!#iF)7$$\"#QF)FF7$ FjnFA7$$\"#;F)$!#QF)7$$\"#7F)F[p7$$\"#@F)$!#OF)7$$\"#RF)F[p7$Fjn$!#lF) 7$$\"#ZF)Fip7$F?$!#jF)7$$\"\"&F)F[p7$Fjn$!#SF)7$$\"#VF)Fip7$$\"#EF)Feq 7$$\"#PF)Feq7$$\"#XF)F77$$\"#[F)FI7$$\"#^F)FF7$F?$!#pF)7$F2F_q7$FapFT7 $$\"#JF)Feq7$FeoFip7$$\"#SF)FW7$F\\qFT7$$\"\")F)FT7$$\"\"*F)F_q7$F5F[p 7$F5$!#oF)7$FapF*7$F[rFip7$F_sFcp7$$\"#OF)$!#LF)7$$\"#WF)Fip7$$\"\"%F) FO7$F2$!#MF)7$$\"#9F)FO7$$\"#F)Ffn7$$\"#IF)FF7$$\"#TF)FI7$F?F_u7$FjsFI7$F5F*7$F_vFA7$FeoF [p7$Feo$!#mF)7$FevF_q7$$\"\"\"F)FA7$FgsF[p7$F'Fft7$F5Fjr7$F:FT7$$\"#HF )Ffn7$FRF]w7$$\"\"#F)F^t7$F-FO7$F?FO7$F5FF7$Fiu$!\"%F)7$$\"#NF)F_u7$F \\qFfn7$FbqFO7$FDFW7$$\"#6F)$!#NF)7$FioFfn7$FRFO7$FbuFF7$$\"#5F)Fjr7$F \\qFA7$FgsF]w7$F]oF*7$FeoFcp7$FawFO7$FgsFbo7$F]oFW7$F\\xFO7$F^pF_q7$Fb uFjr7$F'F_u7$F]oF77$FZFO7$F:F*7$F^rF_u7$FfpF^t7$FDFbo7$FioFeq7$$\"#FF) FT7$$\"#LF)F^t7$FexF_q7$FDF^t7$FbuFft7$$\"#?F)Fcp7$F^rFfn7$F?F^t7$FioF bo7$F[rFO7$F[rF]y7$F_sF]w7$FiuF77$FcsFbx7$F[yF^t7$F^pFfn7$F'FA7$FhwFcp 7$FitF[p7$FioF*7$FhzFW7$F-Fbo7$FevFF7$FeuFbo7$FhwF[p7$FbvFfn7$FhqFeq7$ FarFfn7$FgrFT7$FbqF]w7$FcyFfn7$F[yFT7$F\\xF_q7$F`oFft7$F:Fbx7$F:F^t7$F hzF]y7$FMFft7$F[[lFF7$F^rF*7$FRFbo7$FdrFO7$FapFeq7$FfpFF7$FhqFfn7$$\"# \\F)FO7$$\"\"'F)Fip7$FdtFeq7$FdrFW7$F:FW7$FbvFip7$FitF]y7$FZF_u7$FbvFT 7$F\\uFbo7$FexF[p7$F]oFfn7$FZF*7$FbvF77$FMFI7$FevFT7$FioFft7$F[rF<7$Fd tF]y7$F^rFjr7$FDFft7$FfpF*7$FcyF]y7$Fa[lF]w7$FexFO7$FdtFO7$FevFeq7$FDF ]y7$F-Feq7$F^rF^t7$FeoFeq7$FgrF/7$F\\xFT7$FeuFI7$F_vF^t7$FhwF_q7$FRFft 7$FawF]y7$FgsFO7$FbuF[p7$F_sF]y7$FexFip7$FcsFjr7$FRF77$FbqFeq7$F_vFcp7 $F[^lFF7$FawF*7$F2FO7$FhzFbo7$F-Fft7$F[[lF_u7$FRFA7$F^^lF77$FioFW7$Feu FW7$FcsF]y7$FitFI7$F\\xF_u7$Fa[lFbo7$F]oF]y7$F`oFI7$FhqFA7$FgsFft7$Fjs FW7$FevFA7$FdrFF7$F?Feq7$F`oF77$F[rFF7$FMF<7$F'Feq7$Fa[lF^t7$FbvFbo7$F ^pFeq7$F`oF[p7$FfpFW7$FarFT7$FcyFW7$F'FO7$FhwF*7$F_sFfn7$FexFF7$F^pFI7 $F5F_u7$FMFF7$FevF]y7$FRFeq7$F\\uF^t7$F^pFT7$FMF_q7$FarF[p7$$\"#]F)FF7 $F^^lFbx7$FcyF_q7$F:F_u7$F[[lF<7$F[[lF*7$FitFW7$F\\xF/7$FbuFip7$F-F^t7 $F[[lFW7$FfpF]y7$FawFcp7$F^^lF*7$FjsF/7$FjsF[p7$FioF]y7$F_vF_q7$FhzFeq 7$FeoFA7$FfpFcp7$FbqFft7$FcyF<7$F`oF*7$FhqFcp7$FDFfn7$F2FA7$Fa[lFft7$F [yF*7$Fa[lFbx7$Fa[lF<7$F]oF_u7$F_sFjr7$FarFjr7$F[^lFjr7$FgrFbx7$F[yF77 $Fa[lFfn7$FhwFW7$FhqF^t7$FarF_u7$F[^lFI7$FgsFW7$F2F77$F_sF77$FiuF^t7$F eoFbo7$FcsF<7$F?Fft7$F[rFbo7$FhzFfn7$F_sFW7$FdtF]w7$FeuF_u7$F`oFO7$FMF ^t7$FdrFfn7$F[dlFT7$F\\xFeq7$F\\uF77$F]oFjr7$FevF*7$FjnFcp7$FgrFA7$Fcy FO7$FeoFT7$FjsFbx7$FjsF_u7$F'Fcp7$F[^lF_q7$F-Ffn7$F2Ffn7$F'Fip7$FeuFjr 7$F:Feq7$FiuF/7$FarFI7$FDFbx7$F[yF[p7$F'F^t7$FMFbo7$FRFfn7$F\\uF*7$F5F A7$FZF^t7$F_sFbx7$FjnFF7$FgsF_q7$FjnFO7$FcyF*7$F^pF<7$FapF77$FjnF]w7$F iuF_u7$F?F*7$FbqF<7$FbuFbo7$FZF<7$FMFeq7$F[^lFA7$FdrF^t7$F?Fip7$FapFW7 $FbvFft7$FcsFA7$FjsF*7$F5F<7$FapFip7$F[rFcp7$F[rF]w7$FhwFft7$FiuF*7$Fi tFF7$FitF]w7$F\\uFT7$FbqF^t7$F2F]y7$FbuFT7$F`oF/7$F[rFI7$FhzFft7$FiuFW 7$F2Fjr7$F_vFF7$FZFT7$FhwF^t7$FitF^t7$F?F]y7$FDF[p7$FjsF^t7$F[yFF7$F5F ip7$F_sFbo7$FeoFI7$FgsF<7$F`oFT7$F_sF_q7$F^rFO7$FRFI7$F\\xFjr7$F-FT7$F ?FT7$F\\uFjr7$F^^lFbo7$FexF]y7$F\\qFF7$FbqFT7$FbvFI7$FarFW7$FcyFI7$Fbu Fbx7$FZF[p7$F[yF/7$FdtFbo7$FgsFI7$F]oFip7$FbvF_u7$FMF*7$FeoF77$F^pFft7 $F_vFbo7$FeoFft7$FawFfn7$F^pF*7$F'F/7$F'F]y7$F]oF[p7$F:Fip7$F-Fcp7$Fbv Fbx7$FMFT7$F^rF]y7$FfpFjr7$F\\xFfn7$FDF_q7$F[[lFjr7$FexF*7$FdrFbo7$FDF jr7$FbuF_u7$Fa[lF77$F^rFF7$F[rFT7$FiuF[p7$FcsFO7$FgsFfn7$F[yFjr7$F^pFF 7$Fa[lFeq7$FhwF77$F^^lFft7$FioFip7$F-F_q7$FevFbx7$F2F[p7$FeuFA7$FeuF_q 7$FhwF<7$FbqFI7$F[yFW7$FeuFbx7$FgrFW7$F`oF_u7$F:FO7$F:Fjr7$FhzFcp7$FMF _u7$F[[lFbx7$F^rFip7$FcsFeq7$FRF_q7$F[[lF]w7$FfpFbx7$FhqFF7$F^^lF]w7$F hzF77$FMFcp7$F^rFI7$FarFip7$FdrFA7$F'F77$FapFF7$F`oF<7$F:FA7$FbvF]w7$F csFbo7$FitFcp7$FRF^t7$FZF]y7$F:F]w7$FbvFW7$FarFF7$F\\uF_q7$FbvF^t7$Fex F<7$F]oFF7$FcsF*7$FevFW7$F\\uFip7$FioF_u7$F[[lFO7$F^^lFT7$F[[lFcp7$Fiu Fjr7$FfpFip7$F[dlFA7$FawFI7$FcyFcp7$F[yFA7$F^pF]y7$Fa[lFI7$FexFT7$FdtF T7$FDFcp7$FjsF]y7$FMFW7$FcsFft7$FgrFfn7$F\\xFW7$FeuF^t7$F_vFjr7$F-F77$ FarFft7$FRF_u7$FbuF<7$FexF]w7$FRF[p7$FeuF<7$F_vF77$FevF[p7$FitFbo7$Faw Fip7$F2FT7$FhzF_q7$F-F_u7$F^^lF[p7$Fa[lFT7$FiuFip7$FcsFcp7$F\\qF]w7$F \\xF]y7$FbqF_q7$Fa[lF_q7$FapFft7$F]oFcp7$F`oF^t7$F[rF^t7$FbvF[p7$FgsF_ u7$FjsFA7$F\\qF^t7$F[^lFbx7$FbvFeq7$FjnF^t7$FeuF[p7$Fa[lFjr7$FbvF_q7$F ?Ffn7$FfpFA7$FcyFA7$F'Fbo7$FhwFip7$FexFbx7$FexFjr7$F^pF^t7$F5F]y7$FhwF I7$FevFft7$FhqFbx7$F^pFW7$F^rFA7$FarF<7$F[dlFbx7$F^^lFO7$F_vF<7$F:F]y7 $F[[lFeq7$FbuF]w7$F-Fjr7$F[[lFA7$FdtF_u7$FeoF/7$FjnFT7$FawF77$FjsFfn7$ FcyFip7$FioFcp7$FdtFfn7$FfpF77$FbqF_u7$FcyFeq7$F^pFcp7$FeuF*7$F`oFip7$ FfpF<7$FevF^t7$Fa[lF_u7$FiuFeq7$FbqFcp7$F[yFip7$Fa[lFO7$FMF/7$FjnF[p7$ FRF/7$F[dlF/7$FgrFO7$FhwFO7$F^rFcp7$FhqFjr7$FarF]y7$F\\uF/7$FgsFA7$F_s F[p7$FeoF_q7$F\\qFbx7$FbqFbo7$F^^lF]y7$F5F]w7$F[rF_q7$F_sFA7$FiuFO7$Fe uF]y7$FMFjr7$FjnFbo7$FhqFO7$F[dlFW7$F\\uF[p7$F^^lF<7$F2F]w7$F:F/7$FevF ip7$FjnF77$FjsFip7$F_vFT7$FhzFip7$FawFT7$FjsFO7$F[^lF*7$F^pFA7$F-FF7$F \\xFbo7$F?FF7$F2FF7$F5F/7$FhwFA7$FiuFfn7$FRFjr7$FbqFF7$FDFO7$F[yFft7$F [yF<7$F'Fjr7$FeuFfn7$FapFI7$FRFF7$F2F*7$F-Fip7$F_sFO7$FjnFbx7$FjnFft7$ FgsF*7$FhzFI7$FeoF_u7$FawFF7$F^^lFW7$FapF[p7$F]oFO7$FjnFI7$FawF<7$F\\x FF7$F:Fbo7$FiuF]y7$FZFeq7$FhzFbx7$FhqFbo7$Fa[lFF7$FdrFjr7$F?F]w7$FapFA 7$F[rFft7$F'FT7$F5Feq7$FapF]w7$F[rF77$FhwF_u7$FiuFA7$FitFbx7$FRFW7$F\\ qFbo7$F\\uFW7$FbqFjr7$F2Fcp7$FbuFW7$FapFbo7$F`oFfn7$FhzFA7$F\\uFF7$Fbu F/7$FeuF/7$F_vFbx7$FZFW7$FhwFjr7$FitFjr7$F\\xF77$F?Fcp7$FbqF*7$FjsFjr7 $F[yFbx7$FeoF^t7$F\\xF*7$FgsFeq7$F`oFW7$F:Ffn7$F_sF*7$F^rFT7$F^rFbo7$F ?F/7$FgsFcp7$FjnFjr7$FhqF77$F[^lFT7$F\\xF]w7$FbqF/7$FapFbx7$FhwFF7$Fdt FW7$FdtF[p7$F\\uFft7$FbqFW7$F_vFft7$FhqF[p7$FitFft7$FarFA7$FcyF^t7$FZF 77$F[yFfn7$FexFcp7$FdtF_q7$FgsF^t7$F]oF]w7$FZFbo7$FbvF]y7$FMFip7$FfpFf t7$F^pF_u7$F]oFbo7$F^pFip7$FbuF^t7$F]oF<7$F-F]y7$FbvFO7$FdtFcp7$FfpFbo 7$FhqFft7$FitF<7$FDF*7$FZFF7$FdtFF7$FfpF]w7$FdrF_q7$FgsF/7$FbuF]y7$F-F [p7$F^rFbx7$F[rFW7$FiuF<7$FcsFT7$FawFft7$FgsFF7$F^pFbx7$F_sFft7$FiuFbo 7$FcsFfn7$FcsFI7$F^^lF_u7$F[yF]w7$FioF]w7$F-F*7$FevFO7$FitFfn7$F[^lF/7 $F2F<7$FhwFeq7$FevF/7$F[yFeq7$FioFO7$FeuFO7$FevFcp7$FioFF7$F`oF]y7$F[r F/7$FMF]y7$FdtF^t7$F^rF]w7$FRF*7$F[[lFI7$FfpFO7$F^^lFI7$Fa[lF[p7$FhzF[ p7$FMF77$FfpF/7$FarF]w7$F'F[p7$F`oFeq7$FcsF_q7$FZFcp7$FbvFA7$FarFbx7$F 'FF7$F5Fbx7$FbvFjr7$FexFeq7$FbqFA7$F]oFbx7$F[rFA7$FcsFip7$F\\uF]w7$F^^ lFfn7$Fa[lFA7$F[[lF77$F[[lFbo7$FexF/7$FitFO7$FawF^t7$FcyF77$F-FA7$FexF W7$FDF77$FjsFcp7$FioFA7$F_vF*7$FMFA7$FawFeq7$F\\xFA7$Fa[lF/7$FhqF_u7$F RF]y7$F^^lFjr7$FbuFeq7$F_vF]w7$FexFI7$FRF<7$FdrFip7$F[yFbo7$FeuFeq7$F_ vF[p7$FevF<7$FitF_q7$FawF]w7$F2FW7$FhzF*7$Fa[lFW7$FiuF]w7$FcsF77$F\\qF I7$F\\xFcp7$Fa[lF*7$FapF_u7$FZFip7$F`oFjr7$F[rFjr7$FbvF<7$FdtF*7$F\\uF A7$FgsF]y7$F`oFF7$F\\qFjr7$F\\xF[p7$F\\uF]y7$FDF<7$F]oFI7$FdtFI7$FarFb o7$F?F[p7$F\\uF<7$FapF/7$FbvF*7$FeoFbx7$F^rF77$F'F_q7$FhzFjr7$FhwF]w7$ FdtF/7$F^pFjr7$F5Fcp7$F:F[p7$F?FW7$F'F]w7$FapFjr7$FMFbx7$FarFeq7$F[dlF O7$F5FT7$F_vFeq7$FZF/7$F:Fcp7$F[[lF]y7$FjnF/7$FawF/7$FbuFI7$FhwF/7$Feo Ffn7$FjnFW7$FawF[p7$FjsFF7$FcyF]w7$FbuF_q7$FioF77$FbqF]y7$F^pF77$FeuFi p7$FfpFeq7$FevFjr7$F\\qF*7$FDF]w7$F]oFeq7$F?Fbo7$FbqF77$FbuFcp7$FMFfn7 $FjnF<7$FhqF*7$F_sFI7$F^rF<7$FitF/7$FarFcp7$FdrF]w7$FawF_q7$F\\uFfn7$F 2Fbo7$F_sF<7$FeoF*7$FhqF]w7$F\\qFO7$FjsFbo7$FioF^t7$F5FI7$FapF_q7$F[rF *7$FitF*7$F\\uFbx7$F2Fft7$FeuFcp7$F[[lF/7$FjnF_q7$FhqFT7$F^^lFeq7$F2FI 7$FevF]w7$FjsF]w7$F5F_q7$F_vFW7$FhzF]w7$FawFW7$FgsF77$FcyFF7$FRFip7$F[ ^lFip7$F\\xFI7$F-Fbx7$FiuFft7$FcsF/7$F?Fbx7$F2Fbx7$F5Ffn7$FiuFF7$FexFf t7$F\\qF/7$FbqFbx7$FDFT7$F[yF_u7$FioF/7$FeuFF7$FapF^t7$F`oF]w7$FRFbx7$ F2Fip7$FbuFfn7$F-F]w7$F_sFT7$FDFA7$FZF]w7$FjnF_u7$F\\qFW7$FgsFip7$FcyF ft7$F]oF_q7$FhzF^t7$FeoF]y7$FawFbx7$F^^lFA7$FapF<7$F]oFT7$FhzFF7$F-FW7 $F\\xFbx7$F^pFbo7$F5Fbo7$FZFbx7$F:F_q7$FiuFcp7$F^rFft7$FfpFI7$FhzFO7$F exFbo7$FhqF_q7$FDFI7$Fa[lF]y7$FawFbo7$F?FI7$FjsF<7$F[rF_u7$FcsFF7$F[yF I7$F^pF/7$F'FW7$FhwF]y7$FitF77$F\\qF_q7$F^^lF/7$FbuFA7$FexFA7$FevFfn7$ FioFjr7$F_vFO7$FZFA7$FbvF/7$FarF/7$F?F77$FbqFip7$FcyF/7$F[yFO7$FeoFjr7 $F\\xFip7$F`oFA7$F:FF7$FhzF_u7$F_sFip7$F[[lFfn7$F^rFW7$F^rF_q7$FdrFbx7 $FfpFfn7$FhqF/7$F[^lFW7$FbqFfn7$FapFO7$FhwFbx7$FdtFA7$FdtF<7$FdrFT7$F \\uF_u7$F_vF_u7$FhqF<7$FitF_u7$F5FO7$FZFft7$F_sFF7$FexF77$F]oF/7$FZF_q 7$FbvFcp7$FMF]w7$F[rF[p7$FdtF77$FfpF_q7$FitFeq7$FDFip7$FcyF_u7$F5Fft7$ Fa[lFip7$FdtFbx7$FdrF*7$FDF_u7$F-F<7$FeoF<7$FeuF]w7$F_vFI7$FhwFbo7$F^r F/7$FawF_u7$FgsFbx7$FbuF77$F_sF_u7$FiuF_q7$FcsF^t7$FRFcp7$FioFI7$F_vF] y7$F[^lFfn7$F\\xFft7$F2Feq7$FioF_q7$F[[lFft7$FevFbo7$F^^lFcp7$FioFT7$F euFT7$FcsF_u7$FevF77$FioFbx7$F[rFfn7$FdtFjr7$FjsFT7$F:FI7$F[[lFip7$F?F <7$F\\uFeq7$F^^lF^t7$F`oFcp7$F[rFbx7$FhzF<7$FMF[p7$FarF*7$F'F<7$FfpFT7 $FarFO7$FcyFT7$F'Fbx7$F_sF/7$F^pF]w7$FcsF]w7$FevF_u7$F\\uFI7$F^pFO7$F[ dlFfn7$F^^lFF7$FcyFbo7$F:Fft7$F[[lF[p7$F[[lF_q7$FexFfn7$FitFT7$FawFjr7 $FcyF[p7$FbuF*7$F[[lFT7$FfpF_u7$F^^lF_q7$FgsFjr7$FjsF77$FioF<7$F_vFip7 $FeoFW7$F`oF_q7$FhqF]y7$FDF/7$F:F77$FexF^t7$F[yF_q7$F]oFft7$F_sF^t7$Fa rF^t7$F[^lF^t7$FjsFeq7$F[yFcp7$FhwFT7$FhqFI7$F[^lF]w7$FiuFI7$FcsF[p7$F _vF/7$FapF]y7$FhzF/7$FdtFip7$FeuFft7$F`oFbx7$FdrF/7$F\\xF<7$F\\uFcp7$F DFeq7$F]oF^t7$FjnF]y7$FitFA7$FarF_q7$FcyFbx7$F'Ffn7$FapFfn7$FeoFO7$Fjs Fft7$F^rF[p7$F[^lFbo-%&STYLEG6#%&POINTG-%*AXESTICKSG6$7)FbwFdyFb[lFcvF dsF\\dlFhr7*/F0Fbw/!#5Fdy/!#?Fb[l/!#IFcv/FfqFds/!#]F\\dl/!#g\"#g/F[s\" #p-%+AXESLABELSG6'Q'column6\"Q$rowFc_p-%%FONTG6#%(DEFAULTG%+HORIZONTAL G%)VERTICALG-%(SCALINGG6#%,CONSTRAINEDG" 1 2 0 1 10 0 2 9 1 4 1 1.000000 45.000000 45.000000 0 0 "Curve 1" }}}{PARA 13 "" 1 "" {GLPLOT2D 400 300 300 {PLOTDATA 2 "6&-%'POINTSG6,7$$\"\"#\"\"!$!\"\"F) 7$$\"\"*F)F*7$$\"\"%F)F*7$$\"\"$F)F*7$$\"\"&F)F*7$$\"\")F)F*7$$\"\"\"F )F*7$$\"\"'F)F*7$$\"\"(F)F*-%&STYLEG6#%&POINTG-%*AXESTICKSG6$7'F=F4F7F CF.7#/F+F=-%+AXESLABELSG6'Q'column6\"Q$rowFR-%%FONTG6#%(DEFAULTG%+HORI ZONTALG%)VERTICALG-%(SCALINGG6#%,CONSTRAINEDG" 1 2 0 1 10 0 2 9 1 4 1 1.000000 45.000000 45.000000 0 0 "Curve 1" }}}{PARA 13 "" 1 "" {GLPLOT2D 400 300 300 {PLOTDATA 2 "6&-%'POINTSG6,7$$\"\"#\"\"!$!\"\"F) 7$$\"\"*F)F*7$$\"\"%F)F*7$$\"\"$F)F*7$$\"\"&F)F*7$$\"\")F)F*7$$\"\"\"F )F*7$$\"\"'F)F*7$$\"\"(F)F*-%&STYLEG6#%&POINTG-%*AXESTICKSG6$7'F=F4F7F CF.7#/F+F=-%+AXESLABELSG6'Q'column6\"Q$rowFR-%%FONTG6#%(DEFAULTG%+HORI ZONTALG%)VERTICALG-%(SCALINGG6#%,CONSTRAINEDG" 1 2 0 1 10 0 2 9 1 4 1 1.000000 45.000000 45.000000 0 0 "Curve 1" }}}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 0 "" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 " " {TEXT 295 197 "This completes the feature extraction for the given s ample input. Note, as human observers it is obvious that we are examin ing the letter \"E\", but for the computer the input is still unidenti fied.\n" }}}{SECT 1 {PARA 273 "" 0 "" {TEXT -1 14 " Feature Space" }} {PARA 274 "" 0 "" {TEXT -1 232 "In accordance with the feature vector \+ procedure outlined by Duda, let's create the feature vector for this c haracter. This feature vector will be two dimensional vector which con tains the number of horizontal and vertical features.\n" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 38 "features := vector([v_count,h_count ]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%)featuresG-%'vectorG6#7$\"\" \"\"\"$" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 274 " " 0 "" {TEXT -1 457 "\nBy calculating a feature vector for all of the \+ characters in our alphabet and augmenting them to a matrix the compute r can construct a feature space matrix. The dimensions will be the num ber of features by the number of characters. For this study our featur e space will be a 2 by 26 matrix. Let's use the procedures demonstrate d above and the set of supplied reference character images to build a \+ feature space for the alphabet consisting of four letters.\n" }} {EXCHG {PARA 0 "" 0 "" {TEXT -1 57 "First generate partitions in our a lphabet called \"alpha.\"" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "p := g eneratePartitions(alpha);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 43 "Then create a feature space called \"space.\"" }{MPLTEXT 1 0 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 35 "space := Matrix(3,(nops(alpha)+1)):" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "space[1,1] := char:" }}{PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 19 "space[2,1] := vert:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "space[3,1] := horz:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 172 "for j from 2 by 1 to nops(alpha)+1 do\n space[1,j] := p[1,j-1 ]:\n space[2,j] := doBarCount(p[2,j-1], \"vertical\"):\n space[3,j ] := doBarCount(p[3,j-1], \"horizontal\"):\nod:" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 6 "space;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#-%'RT ABLEG6$\"()=nH-%'MATRIXG6#7%7'%%charG%\"AG%\"EG%\"HG%\"FG7'%%vertG\"\" !\"\"\"\"\"#F47'%%horzGF4\"\"$F4F5" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 274 "" 0 "" {TEXT -1 139 "\nUsing this feat ure space as a reference the computer now has the ability to make an i dentification of the letter we have been analyzing. \n" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "tableLookup(space, features);" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#%\"EG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 274 "" 0 "" {TEXT -1 0 "" }}{PARA 274 "" 0 "" {TEXT -1 231 "This is a demonstration of the feature vector concept . However, the computer will begin having problems with a correct iden tification when we expand the feature space to include all twety six o f the upper case alphabet characters.\n" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 199 "space := matrix([\n[char,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],\n[vert,0,1,1,2,1,1,1,2,1,1,1,1,2,2,2,1,2,1, 0,1,2,0,0,0,1,0],\n[horz,1,3,2,2,3,2,2,1,0,0,0,1,0,0,2,2,2,2,0,1,0,0,0 ,0,0,2]]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%&spaceG-%'matrixG6#7%7 =%%charG%\"AG%\"BG%\"CG%\"DG%\"EG%\"FG%\"GG%\"HG^#\"\"\"%\"JG%\"KG%\"L G%\"MG%\"NG%\"OG%\"PG%\"QG%\"RG%\"SG%\"TG%\"UG%\"VG%\"WG%\"XG%\"YG%\"Z G7=%%vertG\"\"!F4F4\"\"#F4F4F4FIF4F4F4F4FIFIFIF4FIF4FHF4FIFHFHFHF4FH7= %%horzGF4\"\"$FIFIFLFIFIF4FHFHFHF4FHFHFIFIFIFIFHF4FHFHFHFHFHFI" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 274 "" 0 "" {TEXT -1 368 "\nThe discrepancy is apparent by observing that the number of \+ horizontal and vertical components does not give us a unique feature v ector for every single character. For example the letter \"A\" is the \+ only one in this feature space with a single horizontal component and \+ no vertical components, but the \"I\", \"J\", and \"K\" characters are indistinguishable from each other." }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 1 {PARA 275 "" 0 "" {TEXT -1 20 " Addition al Features" }}{PARA 276 "" 0 "" {TEXT -1 503 "Duda mentions this issu e in his description of the feature space concept. The answer is to de fine more features to be analyzed.\n\nThe construction of a feature sp ace with twenty six (or more if we include punctuation and lower case \+ letters) unique columns is beyond the scope of this worksheet. However , let's consider some possibilities.\n\nSuppose we have the computer c heck for curvature in certain key regions of the character image. Here is a suggested set of divisions for any given character image.\n" }} {EXCHG {PARA 292 "" 0 "" {OLE 1 93184 1 "[xm]Br=WfoRrB:::wk;nyyI;G:;:J ;j:J:ZJJ;j:JyyyyyI<:^Fvyyyyy=::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::uyyyyywyyyAf>f:n:v:>;F;N;V;^;f;;JAjA>:[Z: F=F=N=V=^=f=n=v=>>:G;I;K;M;O;Q;S;U;W;Y;[[:F@ N@V@^@f@n@v@>AFANAVA^AfAnA;jYJZB:=EFENEVE^EfEnEvE>FGFGNGVG^GfGnGvG>HxmwgY?nMNr;^P>R<:F:YLpfF]KRnC=MtFGgml>:;::::::JGN:yyyxI:;Z ::::::J:wAwAyA:::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::Z^^^^N^\\N^ \\:::TLMTlyyyyyI:EBJyyyxI::::::::::::j::LL LLLF\\KFHocHO`mV`yyyyyy;:::::::::::::::::::::::::bywiyyyyxICIsCyXquXuS IusJAtJGdKGTKETKgdOgtUYuUgeWgUV]UV]=:::Z?>byIhkGhk;::::::::::LQtLqkHpk XoeXoBAsBQJZvYyAJjyo:NbGorYG:;J:n@>?^_;Jlj:>=>:[vQ=Z:>:::yay=::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::P:EBJ:::::::::::::jywyxMysyvY:::::::::::::::: :::::::::P:E::::::::::::::vYyA:::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::R;jy;::::::::::::P :vY::::::::::::::::::::::::::Z?:yA::::::::::::R;jy;::::::::::::::::::: ::::::::::::j byQ^\\N^\\::::::::::jEXkELN\\LnTQuTawfaWf]WfQJZxYj=XjyyywY:::::::::::: :::::::::::ZwiYmYxmiywiyrynYjy;::::::::::::::::MYtMy=Yr=B:::Z?>byA:<:: :::::::::r;Ir;sBAsbCGcCCCCCS;;tyKDLKDf[Gf;Ir;yyvY::::::::::::::::::::: ::JsEYsaj>`:<:::B=SB=]YvxyywYj[BZ:JN\\LNPJZnwhqwayvaIuSIuRmqyxqsysaxqYsAvYxI: ::::::::::::::::OitOy>ar>]R>UTMUdeWgey xqyxyxI::::::::::::::::::::::Js;B:::ZF:jy;EZyuy:::::::::::::E:xyXquX]N ^\\><:::R:=R:Qr:<:::::::::::::R;vfawfWgeWWcEWcxnaxn kHpksIysyyyeywqwiywuYyuyysynYjy;:::::::::::::::OAZ::::P:;Z:::::::::::: ::P:B:>[B>[MV\\MvcIwcghogxuYyUxI:::::::::::::::::::::Js;B:::ZF:jy;EZyu y:::::::::::::EZv`qv@cB?C>::::JR^ZF\\KF\\Z:B:::FZ;R;;L:>Z:j@pj@DLKDl J@lJpkHpkH::::BAsBAuRAurBAsBuRAub;Gb;;Z::::P:B::>>;sfawfyyyyyyZxmxcywq y;ry:::::::::::::::NWJ:B:::Z?:<:::::::::::::R;Z::J>B?cB?[DN[DisGiyyyxI :::::::::::::::::::::_aC:<:::B=:vYj:<:::CB;CR;;L:Bar>aqv`qeXoeXO::::dTOetPqtPUV]Uv OitOqmX>Z:B:NZ^Z>NZ:;Z?:<::bF_cFawfa?yaxmwCysIy:yay=::::::::: :::::Jo;B:::Z?:<:::::::::::::R;Z::::\\N^\\NYuUYyyywY:::::::::::::::::: ::Js;;Z::::l:ryvYjar>CCCCCGcCGESCEC`j>@j:@J::E::::::::vYyA:::::::::::::::::_A>:<:::B=:vYjEBJyI:>:::@:SB=SrJAtJiwgi?yA:::::::::::::::::::::::::::::: :Z?j<::::::::MWdMwyyqyCyVYtIry::::nYhIqavmvayv]Yv]YweYwKsCZ;FZMR:EZ:J:::?ZDN[DVdMWdEYsEyyyuy::f:x iy=::::::::::::::::::::::::::::Z?:yA:bw>nZ@nQv\\QZ::::P:]V^]vwiywyyytI wAZymy;::byZy=tIwAfYhIuaymxS;;lIxkIdJ?dJ:\\J>DJ;DJ :B:::VZ=VZPodPGtKITvYP:yqy;:::::::::::::::j::D:OZ:PlLPlHqsHUYuUyyyInYtIyay=:::::::::P:yqy;:Jo;B:::Z ?jf;yA:::::::::::Z?jywysHqsXb=WbF^[FFZ;F:>:::@mR@MN]TNAyrAIP:vY::::::: :::::::::f:ry_AZ::::l:]AvYjN:<:::R;fL:x I::::::::wax=xIsaumyS;fwguKItKB:::N:<:;:Vf]WfxqY:uax=xI:::::::::R;vYyA ::OAZ::::P:m@vY::::::::::::P:yqyKOeTOilOh<<:::B;^dN_dJAtJyyyU;jy;::::: ::::::::::j:<::R;ER;KF\\KvyyqyS;NYoYyuYyyay=:::::::::P:yq y;:Jo;B:::Z?>Bm@vY::::::::::::P:yqyk_iv_UOeTo@pj@@j:@:<:::sCIsSj=Xjyyy P:vY::::::::::::::::f:ry_AZ::::l::yAf:ry:::::::::bv^of`ob>_b>Z:B::f:<: ;ZJ\\LN\\lTPmtsIysQJZnYtIyay=: ::::::::P:yqy;:Jo;B:::Z?j<::::::::::::::yqy;TTMUtOhlOJ::::c[dPod@xjAx? >BvY::::::::::::::::f:ry_aC:<:::B=:vYj:?ZD:LUTMuyyyyyI::::EZyuy:::::::::::::::::::::::::::::R;jy;:TI:B::: Z?jD;ry::::::::::nYtIya?jvaiqyxqIocHo`n^`>:;B::::ZiJLMTLQJZvYyiynYxIyA ::::::::Z?:yA::OAZ::::P:m@vY::::::::::::P:yqy;lV`mVf\\Ofpj@pZ;:;::nZ@n ZPodP?tJAt?>BvY::::::::::::::::f:ry_AZ::::l::yAf:P::::::::::::::R:f;Pn \\PnTQuTyIyA::::f:xiy=::::::::::::::::::::::::::::Z?:yA:bwBb:<:::R;fLj ysy::::::::::ZxmxS;vYyAs`tNatZ:::J;B:>:T:oeXoU;;BvY:::::::::: ::::::f:ry_AZ::::l::yAf:ry::::::::BpkHpeTOeD:>:::jZy=::::::::::tI: waymayvaQmTP=<:::=Z:J:b>_b>EV[EV;;tyyqy;::::::::::P:vY::NW:<:::R;FUjy; :::::::::::R;vYyA:?hj?XJ=TJ;Z::::pmXpm[Iv[QJZjy;:::::::::::::::j:::j`jJ:::::TKETkAyrAQJZjy;:::::::: ::P:vY::NW:<:::R;FUjy;:::::::::::R;vYyA:w?>:<:::RIVR:yA::::::::::::::: :E:xYs;B:::ZF:jy;E:xI::::::JschoghNc:J::::=ZGj<<^nZy=:::::::::::P: yqyk\\;>::::ZP::yA::::::::::R;jy;:Jo;B:::Z?jf;yA:::::::::::Z?jywY:nQJ: B:::Zwj[;vY::::::::::::::::f:ry_AB:<:::B=:vYj:<:::CZZ:::J;bxI::::::j:Zy=:::::::JycyZyMxsxZ?jywy=M^\\N^DJ;>:<:::R;EJQ tLQ`r>aRpmXpQJZjyKy;yA::::::::Z?:yA::OAZ::::PJZFUjy;:::::::::::R;vYyAr nVeUWeCF[C>:<::R:f;XoeXoayvaQJZjy;:::::::::::::::jZy=::::::::JySyVYpyxwYP:eWgegHocHB:N :@:;B:<:=:>:juXquxyyyyyS;^yveyvYxI:::::::::R;vYyA::OAZ::::P:m@vY:::::: ::::::P:yqy;LTLW_eV_:J::::WcEWSdMWdya?:yA::::::::::::::::E:xYs;B::::V: AbHocHsGiswyf:ry:::::whqwhN_dNB::::F:\\LN\\lLQtLyyywYjqr@qCGcCG[CF[:J::::qsHqCj;@P:vY::::::::::::::::f:ry_AZ: ::::H:qsHqCisGiEBJry:::::WgeWw?ir?B:::ZB;B:<:=:>::::H<]V^]Vv]Yvya?JycyvYxI:::::::::R;vYyA::OAZ::::P:m@vY ::::::::::::P:yqyaECDKCD;CB;=R:=:;::ZGR=mTPmtmYxmyqyQ:vY:::::::::::::: ::f:ry_AZ:::::JcBs;Ir;;Z:::J;bZy=::::JycyZymycyfY \\Yv]yxqyxyIua_hn_`^^^^?J:B:N:@:B:F:Hj;HJ:B:V>tSIustQytmYxmyyS;vYyiynY xIyA::::::::Z?:yA::OAZ::::P:m@vY::::::::::::P:kGhPn\\PNCLJ:J;r:Z:jCHkCpr@qroixoyyywYtIsa?JysyvY::::::::::P:yqy;:Jo;; Z::::P:CIsxyywY:::::::::JrcmWhmywiyGcCohpohPJZxy>`j>@:B:::F:Pj: ::j:b:hkGhk@qr@[yeyNYtYyuYyS;nYxIyA:::::::::Z?jywY::NW:<:::R;nohDj; Hjwgiwgi::::::::Z=Yr=in_hnQwdQgawfaj>@Obqr@qymy;w_@ob@wZAv:>:::@:MZ< Obar>aAwbA?`j>`:B::=Z?>B;Z:::JNRauVa_iv_ yyyqyCy^YpyxwYP:wAvY::::::::::P:yqy;:Jo;B:::Z?jTP]yvAwcIwcI::::::::Z:@:Ir;IBJ;DJQwdQgKGdK>Z: :::j:RCESCOgdOwyyqy;:::EZyuy:::::::E:xI:::::::::::::::::::::::::::::P: vY:Zp]ZZ:B:::F:@:; B:P:USEUCasFauXquxpqxp;HjHv[IVoeXoyyygYtYy_YjysynYP:yqy;::::::::::P:vY ::NWH;B:::Z?J:B:::::::::::::Z?:<:=:^;lLPllghogXuUYuysy::Z?jywY:::::::: ::::::::f:ry_AZ::::::j:j:b:<:::::::: :::::R;;l<<>:::::::vYyA::::::::::R;jy;:Jo;B:::Z?J:B:::::::::::::Z?j<:: ::::::yqy;:::::::::::::::j\\JZ:j::::::j>rJAlWiuWky; ::::EZ?::::::::xiy=::::::::::::::::::::::::::::Z?Fj:J;=:AF:;J=J:FK;J?=:QF:^k:>:U>WF:vk:JB=Z:Fl:JCkC=:cF:fl:>:g>iN:>MFm:JG?:qF:^ m:jH?:wF:vM;JJ=Z:Fn:>:??AG:;JL=:EG:nn:jMKN=:MO:No:>:QG:;JP=J:fOnOvO>p: B:]?_?aO:nYyQyyIyA:::::::::::::::::::::::::::::::::::::::::::::::::>by yYyA:bwBb;w?Z::::PZyi?\\Of\\OitOitNatNbK:B:f:<:;:::::Z;jKHlKtTQutyyiy=::::j:P:ER;HkCHKItKIdJ?dJkDPk;EZ:J:::::: =ZB>[BncHoc`qv`yyyuy:::::f:xiy=::::::f:ry::::::::::::::::::::::::::::: R;jy;:TI:B:::Z?jOidymy;:::::::bencHoc[Gf[?cB?c=VZ=>Z:R:F:P:;Z::j>bYweY iywiyyvYtIqawiYyyyxIR;vYyA::::::::::R;jy;:Jo;B:::Z?jTrInaxbI::::::::Nb hj?hdQwdyYxIqAvYxIR;vYyA::::::::::R;jy;: Jos>Z::::PZyYpmXpZ::;Z: :@:IZ=Wb=?qr@QvY:::P:yqy;:::::::::::::::j:<:bS GeS[HnhywiIxIbynYP:yqy;::::::::::P:vY::NW:<:::R;Vv]uyyqy;::::::::Bv>tJ At:Ar:qn`pnWgeWG_cF_?ry;B:<::?ZAvZAZsHqs\\y=::P:yqy;:::::::::::::::jXLWdMwLQtL?BKB<<:;:Z<:LN\\fPewyvY::PJZvYyA:::::::::::::: ::E:xYs;B:::ZF:jy;EZ:ARG<Z:B:N:<:r:Z>J`lN`PxlQxyyivmwcyvYP:yqy;::::::::::P:vY::N W:<:::R;FUjy;:::::::::::R;^_f^_:J:::?ZBJf\\Of:<:::B=:vYjb:?bmXPry::::f:ry:::::::E:xI:::::::: :::::::::::::::::::::P:vY:Zp=:<:::R;fL:xI:::::::bynY:hIsIyxIoixPZyacF_ cSF]SFZ;FZ:J::b:F^[RUUUU=Xj=xwiywbyvYP:yqy;::::::::::P:vY::NW:<:::R;FU jy;:::::::::::R;Nn\\Pnhn_h>:<::R:f;TOeTo_ifymy;R;vYyA::::::::::::::::E :xYs;B:::ZF:jy;E:xIj`qv`UUUUU^\\N^<:;:::Z:;:F:D:=Z:JkDPk:::p=;Hj;xyvY:P:yqy;:::::::::::::::j::@ :B:fcGgcWiuWyyyuyZ?jywY::::::::::Z?:yA::OAZ::::P:m@vY::::::::::::P:[Iv \\TN]tSHmS<:;::ZiJOedymy;R;vYyA::::::::::::::::E:xYs;B:::ZF:jy;E:xI::< F:;:::Z<:JSEUSyIyA::f:ry:::::::E:xI:::::::::::::::::::::::::::::P:vY:Z p=:<:::R;fL:xI::::::::::waxmyS;FsCIsAwbA_Z>^:;J::::uTQuDsCIsryZ?jywY:: ::::::::Z?:yA::OAZ::::P:m@vY::::::::::::P:yqyEV[OB?D:>::j:R=^dN_dEYsE] y=P:vY::::::::::::::::f:ry_AZ::::l::yAf:ry:::;@Z::::J;r<>b:?bmZy=::::::::: tIryZ?J]UV]U^@_Z>^:;J::::ytQyDsCIsryZ?jywY::::::::::Z?:yA::OAZ::::P:m@ vY::::::::::::P:yqyyeypaxB:>:::jV`mVpuXquyyiy=P:vY::::::::::::::::f:ry _AZ::::l::yAf:ry:::Bj:>::::D::_?vY:j:;:::neXoe^av^]y=P:yq y;::::::::::P:vY::NW:<:::R;FUjy;:::::::::::R;vYyyixUY:;:::naxRj=Xjyay= P:vY::::::::::::::::f:ry_AZ::::l::yAf:ry::::;`DOcD?:<::::?:ZlZy=:::::::::Jy cyvYP:KHlXn]:;J::::w:::JYRjZy=P:vY::::::::::::::::f:ry_AZ::::l::yAf:ry::::Bj :>::::D::_?vYj:;:::nE:xIR;vYyA::::::::::R;jy; :Jo;B:::Z?jf;yA:::::::::::Z?jywy:::Jj:::::::: :::::Fn[Hnr>arVZ=:;:Z;J:B:fdOgdXqUyyyxIR;vYyA::::::::::R;jy;:Jo;B:::Z? j<::::::::::::::M`N_dN_[F^[;F:B:::NatNaxpqxxyyuyZ?jywY:::::::::::::::: f:ry_AZ::::l:]AvYjR:<::::?ZD:j<<>xI::::::jZy=:::::::JycyvYxI:CIsPJZF^[F^DN;;B:<: :::K\\WiuW]y=P:yqy;::::::::::P:vY::NW:<:::R;FUjy;:::::::::::R;FocDESCE B:::Z>Jd^dIysImy;P:yqy;:::::::::::::::j:::L=ddkIxk]y=P:yqy;:::::: :::::::::jB;Z:J;B:;:D:;Z:JUrfawfgiwgyynYtIya?jywY::::::::::Z?:yA::OAZ::::P: m@vY::::::::::::P:QsDQ;;:::V:PodPOb=Wbky;R;vYyA::::::::::::::::E:xYs;B :::ZF:jy;E:xI:::::::B;Z :::J?bF_cFcGgjysxNYtYy[?jywY::::::::::Z?:yA::OAZ::::P:m@vY:::::::::::L HSGeSW;;l?hZ;FZ;Z:::jTPmTlTPmTsEYsyyywY:P:yqy;:::::::::::::::jB;Z:::L:I tKItgXuysynYpIuaxmyyi?jywY::::::::::Z?:yA::OAZ::::P:ypiyiy=:::::::::NU XweYwQytQuNaN^\\N^?j:@:>:::D:atNaDn[Hnry:Z?jywY::::::::::::::::f:ry_AJ :<:::B=:vYjZ:> :^Z>^Z>J:;=R:=R;xY:B:::ZpjPqtPEYswYx I:R;vYyA::::::::::::::::E:xYsS:P:E::::::::vYyA::::::::::R;jy;:Jo ;B:::Z?JL^^eV?OcDOcD::::::::f_gf_\\N>KB::j:@:MZy:jy;:::EZyuy:::: ::::::::::::::::::::::byvYxIwAvYP:E::::::::>pj@pyyYyA::::::ZlMOedLPLQw dQwhqwhof`ovDQK:B:N:P:;Z::X=sDQsdPodP]V^]fsGiswiywAwaxmysy:::::::::::: Z?j<::::::::;Z::::::::::::::P:B:::FcCciwgiyyyxI::::::::::::::::::::EZy uy_aCJ:B:::ZF:jy;E:xI:::::::::JZSL>:<::EZ?::::::::xiy=:::::::::::::::: ::::::::::nYtIyay=:tIsavmysyVO`kF`K:Z::::P:B:::::::::::::Z?:<::RL>r:Arymy;::::: :::::::::::::::EZ?::::::::xiy=:::::::::Z:M_:;:f:<:;:Z;j>`ZxnaxfpotyvY: :::::::::::::::::::::::::::::jx;ry:::^Y@uRAU[DN[TJ=TJ:Z:B:::ZF:vYyAf:xiy=::::::::::>R`>;Z:j::j::w;Zy=:::: :::::::::::::::::::::::::JxSypywsthxiywiEXk_v^av]Yv]awfawgiwgyNIgCGcC; Z:::::P:KZJ>\\JF\\KF\\Iv[Iv;:::::DKCDKB\\J>\\GgCwgiw?yA::::::::::::::::::::::NXJ:B:::ZF:jy;EZyuy::: ::::::::Bj:f:<:;::Z;J>bIwcIggggwyvY:::::::::::::::::::::::::::::tIryvv ayvEXkEHdKGdUWeU?fZ?fWgEeUWeuUYuU?cB?C:;J:::::R;Z:::::::::::`=Gf[GV^]V ^AvZAF[CF[kEXkU;;tyM_xqYRyVYhIyay=tIwaymy;::::::::::::::::OAZ::::P:;Z: ::::::::::::j=R;;lF`kF\\N^\\NSEUSIxkIxysy:::::::::::::::::::::::NX:<:: :B=:vYj:::j:::ry:::::::::::::::::::::::::::: ::>uReKGdK;Z:::::::::P:B::::::::::>;KR[EV[WiuWyyyQySyfYPZyiYpIbywQy;yA nY:xIyA::::::::::::::::FwcIwJ>\\J>:;:::R;>:<:::::::::::IZSF]SV^]V^Of\\ Onb@S;;lgig^av^yYxI::::::::::::::::::::::::_AB:<:::B=:vYjByjI::::::::::HkCHkZ@nZdUWwuYyuWiUEYsEY;;lywY::::::::::::: ::::::::::::Z\\N>yrAyrA::Z]V^]vyyuy:f:ry:::::::::::::EZDOCcB?crAyrAy:: :F^[r?ir?YtMYdlOhlry::::::::::::::::::::::::::::^YpyxWYdXoeXiuWiEXkExk IxkMXlMxksrnv`qvdQwdawfaweYWQA::Z?>byYweYwe=:::::::lXpOwdQwayvaiwgiwtQ YqyxlYxwYxIR;vYyAuax=xI::::::::::::::::::::rr>vZAvZ=::PJZ>vZEr:::::::: :ZXquXqv`uyyqy;R;vYyA:::::::::::::::::::::::::Br;Qj;::Rr=YryyyxI:E:xI: :::::::::::j^A^[:>:;Jl@JTEjZwagFZJ>[: >tbXu>>^A^;=B:wyyAb:;`:Z@w:>d:;::v \\:>:kB:;jF>:oB:;B:qB:^]:jH<:wB:;jI<:;C::O C:V?^_:jP>:WC:v_:>:[[:F`:>Z:N`:jS:eC:;JU<:iC:>a:jV:GD:vB>c:>:MD:;J_<:Q:YD:;Jb :ge:jf>:o:YM:>H:mE:;Jw >:qE:;Jx>:uE:nIvI>j:B:_lq " 0 "" {MPLTEXT 1 0 512 "space := matrix([\n[char,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], [vert,0,1,1,2,1,1,1,2,1,1,1,1,2,2,2,1,2,1, 0,1,2,0,0,0,1,0],\n[horz,1,3,2,2,3,2,2,1,0,0,0,1,0,0,2,2,2,2,0,1,0,0,0 ,0,0,2],\n[crva,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0], \n[crvb,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0],\n[crvc,0 ,1,0,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0],\n[crvd,0,1,0,1,0, 0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0],\n[crve,0,0,0,0,0,0,0,0,0,1 ,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0]\n]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%&spaceG-%'matrixG6#7*7=%%charG%\"AG%\"BG%\"CG%\"DG%\"EG%\"FG% \"GG%\"HG^#\"\"\"%\"JG%\"KG%\"LG%\"MG%\"NG%\"OG%\"PG%\"QG%\"RG%\"SG%\" TG%\"UG%\"VG%\"WG%\"XG%\"YG%\"ZG7=%%vertG\"\"!F4F4\"\"#F4F4F4FIF4F4F4F 4FIFIFIF4FIF4FHF4FIFHFHFHF4FH7=%%horzGF4\"\"$FIFIFLFIFIF4FHFHFHF4FHFHF IFIFIFIFHF4FHFHFHFHFHFI7=%%crvaGFHFHF4FHFHFHF4FHFHFHFHFHFHFHF4FHF4FHF4 FHFHFHFHFHFHFH7=%%crvbGFHFHFHFHFHFHFHFHFHFHFHFHFHFHF4FHF4FHFHFHFHFHFHF HFHFH7=%%crvcGFHF4FHF4FHFHFHFHFHFHFHFHFHFHF4F4F4F4FHFHFHFHFHFHFHFH7=%% crvdGFHF4FHF4FHFHF4FHFHFHFHFHFHFHF4FHF4FHF4FHFHFHFHFHFHFH7=%%crveGFHFH FHFHFHFHFHFHFHF4FHFHFHFHF4FHF4FHFHFHF4FHFHFHFHFH" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{PARA 276 "" 0 "" {TEXT -1 1498 "\nAlthou gh this helps resolve the difference between \"J\" and \"I\", it does \+ nothing to help us distinguish between \"V\", \"W\", and \"X\". The co mputer needs more information.\n\nAnother feature to consider could be the something similar to the \"distance-versus-angle\" procedure desc ribed by Rafael Gonzalez and Paul Wintz in \"Digital Image Processing \". This would involve overlaying the character image onto a polar coo rdinate system and then taking a center to perimeter distance measurem ent for angles 0 through 2pi. Considering those distance values in Car tesian coordinate system, you could count the maxima as the corners of the character.\n\nGiven the letter \"A\", the resulting \"distance-ve rsus-angle\" curve in Cartesian coordinates aught to have three maxima .\n\nImplementing this feature analysis and incorporating it into our \+ reference feature space would give the computer the ability to disting uish between the letter \"V\" and the letter \"W\". But it would still fail to make the final distinction between the letter \"T\" and the l etter \"L\" which have the same features as defined so far.\n\nThe fea ture vector method of pattern recognition appeals to the intuitive sen se of how pattern recognition is done. However, the feature extractor \+ procedures are burdensome to the computer in times of execution time. \+ This means that the success of this method is entirely dependent on th e implementer's ability to carefully define features that will create \+ as many unique columns in the feature space as possible." }}}}{MARK "0 1 2" 0 }{VIEWOPTS 1 1 0 3 2 1804 1 1 1 1 }{PAGENUMBERS 0 1 2 33 1 1 } {RTABLE_HANDLES 2967188 }{RTABLE M7R0 I4RTABLE_SAVE/2967188X,%)anythingG6"6"[gl!"%!!!#0"$"&%%charG%%vertG%%horzG%"AG" "!"""%"EGF,""$%"HG""#F,%"FGF,F0F& }