!"#$"%"&'()*+&"%,-$./*)(%,0,12&3+%,4*$'2(5"%,*&/*&*'+%,"&,5(%, 6$.)'*)(%,3",!"#$"%&%'()*+,)$('%+-+./*'(#*%0, ! "#$%!&'()(#!*+,-+!.+/#! 012#3!4%!567#-'82(9+! :6(;%-$(4+4!4%!<;(%4#! =>3!??@@A!<;(%4#B!C1+(6! %D'+()E!!"#$"%!&'()*'+,'(-&! ! ! ! !"%27"&, ! &6! %)! %$FG%'+! 4%! 1-892(9+$! 4%! )+! +$(H6+2G-+! 4%! !"#$"%&%'()*+,)$('%+-+./*'(#*%,+$%!I+!(69#-1#-+4#!)+! H%6%-+9(J6! 4%! -%1-%$%62+9(#6%$! H-87(9+$! /! 4%! 0/%12"334+ /! #'2"334+ 1+-+! )+! %6$%K+6L+! 4%! )+$! 4(7%-%62%$! 9+-+92%-M$2(9+$! 4%! %$2%! 2(1#! 4%! )%6HG+N%$E! 7G69(#6%$! 4%! #-4%6! $G1%-(#-B! %;+)G+9(J6! 1%-%L#$+B! 1#)('#-7($'#B! ;+-(+,)%$! )JH(9+$B! $+2($7+99(J6! 4%! -%$2-(99(#6%$B! %293! *+! G2()(L+9(J6! 4%! ;#9+,G)+-(#$! OP*! %$2864+-E! CQ.! 1+-+! H-87(9#$! /! O?0! 1+-+! -%+)(4+4! ;(-2G+)! 1%-'(2%! 4($1#6%-! 4%! 6G'%-#$+$! I%--+'(%62+$! 4%! ;($G+)(L+9(J63! *+! (69#-1#-+9(J6! 4%! %$2%! 2(1#! 4%! %N%-9(9(#$! 1G%4%! 7+9()(2+-! )+! %6$%K+6L+! /! '#2(;+9(J6!4%!)#$!%$2G4(+62%$3!! 89! :&'$+32))*;&, *+! +$(H6+2G-+!5"#$"%&%'()*+6)$('%+-+7/*'(#*%,! $%! ('1+-2%! 9#'#! #12+2(;+! 4%! R! 9-S4(2#$! %6! )+$! 2(2G)+9(#6%$! 4%! 56H%6(%-#! TS96(9#! 4%! 567#-'82(9+! 4%! .%$2(J6! /! 4%! C($2%'+$! %6! )+! :6(;%-$(4+4! 4%! <;(%4#3! &)! -%$2#! 4%! +$(H6+2G-+$! 4%! 1-#H-+'+9(J6! 4%! 4(9I+! 2(2G)+9(J6!$%!9%62-+!%6!)%6HG+N%$!('1%-+2(;#$E!>+$9+)B! =B!=UU!/!"+;+3!&$2+!+$(H6+2G-+!%$B!1#-!2+62#B!%)!1-('%-! /! %6! 'G9I+$! #9+$(#6%$B! V6(9#! 9#62+92#! FG%! )#$! %$2G4(+62%$! 4%! %$2+$! 2(2G)+9(#6%$! 2(%6%6! 9#6! )#$! )%6HG+N%$!4%9)+-+2(;#$3!!0+4#!$G!9+-892%-!#12+2(;#B!)+! $G1%-;(;%69(+!4%!)+!+$(H6+2G-+!4%1%64%!4%)!6V'%-#!4%! +)G'6#$!'+2-(9G)+4#$3!W1+-2%!4%!)+!4(7(9G)2+4!4%!G6+! +$(H6+2G-+! 4%! 1-#H-+'+9(J6B! )+! %)%99(J6! 4%! )#$! %$2G4(+62%$! $%! ;%! 9#64(9(#6+4+! 1#-! #2-#$! +$1%92#$! -%)+9(#6+4#$! 9#6! %$2%! 2(1#! 4%! )%6HG+N%$E! %62#-6#$! 4%! 1-#H-+'+9(J6! -G4('%62+-(#$B! %$9+$%L! 4%! $($2%'+$! H-87(9#$! 4%! 4%1G-+9(J6! /! 2-+L+B! 9+-%69(+! 4%! )(,-%-M+$B! 4(7(9G)2+4! 1+-+! %6)+L+-! 9#6! )(,-%-M+$! %$9-(2+$! %6! #2-#$! )%6HG+N%$B!%293!=#6!%)!7(6!4%!+'1)(+-!)+!'#2(;+9(J6!4%! )#$!%$2G4(+62%$!/!%)!+)9+69%!4%!)+!+$(H6+2G-+B!4%$4%!%)! 9G-$#!X@@YZ@X!$%!I+!(69#-1#-+4#!+)!1-#/%92#!50&[5O! \Y_BY]^!FG%!1%-$(HG%!)+!%6$%K+6L+!+!2-+;S$!4%!562%-6%2! 4%!)%6HG+N%$!4%!1-#H-+'+9(J63!! *+! %;+)G+9(J6! 4%! )+! +$(H6+2G-+! $%! -%+)(L+! 7G64+'%62+)'%62%!'%4(+62%!)+!-%+)(L+9(J6!4%!2-+,+N#$! 4%! 1-#H-+'+9(J63! *#$! %6G69(+4#$! 4%! %$2#$! 2-+,+N#$! $(HG%6!G6!%$FG%'+!4%!1-%$%62+9(J6!H-+4G+)!,+$+4#!%6! )+!2+`#6#'M+!4%!#,N%2(;#$!9#H6(2(;#$!\YX^E!%6!1-('%-! )GH+-! $%! 1-%$%62+! G6! 1-#H-+'+! 9#--%92#! FG%! )#$! %$2G4(+62%$!4%,%6!9#'1()+-!/!%N%9G2+-3!C%HG(4+'%62%B! $%!)%$!1(4%!)+!-%+)(L+9(J6!4%!'#4(7(9+9(#6%$!1+-+!FG%! 4%'G%$2-%6!FG%!9#'1-%64%6!%)!1-#H-+'+!/!+4FG(%-+6! 1#-!('(2+9(J6!G6+!I+,()(4+4!,8$(9+!4%!9#6$2-G99(J6!4%! 1-#H-+'+$3! [(6+)'%62%B! $%! )%$! $#)(9(2+! +! )#$! %$2G4(+62%$! )+! 9-%+9(J6! 4%! 1-#H-+'+$! FG%! 4%,%6! 9#6$2-G(-!1#-!$G!9G%62+3!! &6! %$2%! +-2M9G)#! $%! 4%$9-(,%! %)! %$FG%'+! 4%! 1-892(9+$!G2()(L+4#!/!FG%!$%!,+$+!1-(69(1+)'%62%!%6!)+! H%6%-+9(J6! 4%! 7(9I%-#$! OP*! FG%! (69)G/%6! H-87(9#$! ,(4('%6$(#6+)%$!%6!CQ.!/!'G64#$!;(-2G+)%$!%6!O?03! &)!+-2M9G)#!9#'(%6L+!9#6!G6!-%1+$#!+!)#$!;#9+,G)+-(#$! OP*! G2()(L+4#$3! W! 9#62(6G+9(J6! $%! 1-%$%62+! %)! %N%-9(9(#! ,8$(9#! FG%! 9#6$($2%! %6! -%1-%$%62+9(#6%$! H-87(9+$! 4%! 7G69(#6%$! /! 1%-'(2%! '+6(1G)+-! %)! 9#69%12#! 4%! 7G69(#6%$! 4%! #-4%6! $G1%-(#-3! &6! )+! $%99(J6! _! $%! %$2G4(+! )+! %$2-G92G-+! -%9G-$(;+! 4%! 0/%12"333!&6!)+!$%99(J6!]!$%!1-%$%62+6!)#$!#'2"334+/!)+! $%99(J6! R! $%! 1-%$%62+! )+! H%6%-+9(J6! 4%! 'G64#$! ;(-2G+)%$! (67(6(2#$! '%4(+62%! %;+)G+9(J6! 1%-%L#$+3! &6! )+!$%99(J6!A!$%!4%$9-(,%!)+!9-%+9(J6!4%!2(1#$!4%!4+2#$! 1#)('J-7(9#$3! *+! $%99(J6! a! 4%$9-(,%! )+! G2()(L+9(J6! 4%! 9+-+92%-M$2(9+$! 1-#1(+$! 4%! )+! 1-#H-+'+9(J6! )JH(9+! b%$1%9(+)'%62%! )+! G2()(L+9(J6! 4%! ;+-(+,)%$! )JH(9+$! /! *#81323"&(*(4&#c! /! )+! $(HG(%62%!$%99(J6! $%! 9%62-+! %6! )+! G2()(L+9(J6! 4%! 1-#H-+'+9(J6! )JH(9+! 9#6! -%$2-(99(#6%$3! [(6+)'%62%! $%! -%$G'%6! )#$! 1-(69(1+)%$! 2-+,+N#$! -%)+9(#6+4#$! /! $%! 4%2+))+6! )+$! 1-(69(1+)%$! 9#69)G$(#6%$!/!)M6%+$!4%!(6;%$2(H+9(J6!7G2G-+$3!!! <=>, 6$+-$(7()*;&?,(5-+$*'7+%,0,"%'$2)'2$(%,3",3('+%, ! @+'()*;&9, W! )#! )+-H#! 4%)! +-2M9G)#! $%! G2()(L+6! 7-+H'%62#$! 4%! 9J4(H#! 9%4:3,,+ /! 5"#,#$;+ C%! $G1#6%! FG%! %)! )%92#-! 2(%6%! )(H%-#$! 9#6#9('(%62#$! 4%! )+! $(62+`($! 4%! +',#$! )%6HG+N%$3! T+',(S6! $%! $G1#6%! 9(%-2#!9#6#9('(%62#!4%!;#9+,G)+-(#$!OP*3!! 1%-'(2%! +)'+9%6+-! %6! G6! 7(9I%-#! CQ.! )+! -%1-%$%62+9(J6!H-87(9+!4%!G6+!7G69(J63! ! plotF ::(Double!.+)#!-/!01$'*2!3456/ plotF f fn = writeFile fn (plot f) 7!+1886.+)#!-!.+)#!-/!01$'*2 plot f = gen “svg” (plotPs ps) where plotPs = concat . map mkline &)! )%6HG+N%! OP*! \?^! $%! %$28! 9#6;(-2(%64#! %6! G6! mkline (x,x')= line (p x) (p x') c %$2864+-! 4%! (62%-9+',(#! /! -%1-%$%62+9(J6! 4%! ps = zip ls (tail ls) ls = [0..sizeX] (67#-'+9(J6!%6!562%-6%23!>G%$2#!FG%!%6!%)!+92G+)!1)+6! p x = (x0+x, sizeY - f x) A9! 4+)(B25($*+%,C1D, 4%!%$2G4(#$!6#!$%!('1+-2%!4(9I#!)%6HG+N%!%6!6(6HG6+! +$(H6+2G-+B! $%! I+! 9#6$(4%-+4#! FG%! )+! G2()(L+9(J6! 4%! ;#9+,G)+-(#$!OP*!1G%4%!$%-!G6+!,G%6+!#1#-2G6(4+4! 1+-+!FG%!)#$!%$2G4(+62%$!'+6%N%6!4(9I#!%$2864+-3!! :6#! 4%! )#$! 1-('%-#$! %N%-9(9(#$! 1)+62%+4#$! %$! )+! 9#6$2-G99(J6!4%!G6+!)(,-%-M+!4%!7G69(#6%$!FG%!1%-'(2+! H%6%-+-! 7(9I%-#$! OP*3! &$2+! )(,-%-M+B! FG%! )#$! %$2G4(+62%$! 9#6$2-G/%6B! 1%-'(2(-8! G2()(L+-! G6+! ,+$%! 9#'V6! %6! %)! -%$2#! 4%! 1-892(9+$! FG%! 7+9()(2+! )+! H%6%-+9(J6! 4%! 7(9I%-#$! 9#6! ;#9+,G)+-(#$! OP*! %$1%9M7(9#$3!! *+! )(,-%-M+! 9#62(%6%! )+$! $(HG(%62%$! 7G69(#6%$! ,8$(9+$E! !! vacio e as genera un %)%'%62#!;+9M#! e!9#6!+2-(,G2#$!as !! gen e es genera un %)%'%62#!e 9#6! $G,%)%'%62#$!es !! genAs e as es H%6%-+!G6!%)%'%62#!e 9#6!+2-(,G2#$!as /!$G,%)%'%62#$!es :6#!4%!)#$!;#9+,G)+-(#$!OP*!%$1%9M7(9#$!FG%!$%! G2()(L+-8! %$! %)! )%6HG+N%! CQ.! bC9+)+,)%! Q%92#-! .-+1I(9$c! FG%! $%! %$28! 9#6;(-2(%64#! %6! %)! 1-(69(1+)! %$2864+-! 4%! -%1-%$%62+9(J6! 4%! H-87(9#$! ,(4('%6$(#6+)%$!;%92#-(+)%$!%6!562%-6%23!! W$('($'#B! %)! )%6HG+N%! QdP*! b<("2/%,+ =3%,(2-+ >#13,,(*$+6%*$/%$3c!$%!1G%4%!9#6$(4%-+-!%)!1-(69(1+)! %$2864+-! 4%! -%1-%$%62+9(J6! 4%! 'G64#$! ;(-2G+)%$! %6! 562%-6%23! C(6! %',+-H#B! %$2%! )%6HG+N%! %$! +62%-(#-! +! OP*!/!6#!$(HG%B!1#-!2+62#B!$G!$(62+`($3!0%$4%!%)!+K#! X@@@B! %)! 9#6$#-9(#! e%,?0! I+! 4($%K+4#! %)! ;#9+,G)+-(#! O?0! FG%! 1G%4%! 9#6$(4%-+-$%! G6+! 6G%;+! ;%-$(J6!4%!QdP*!+4+12+4+!+!OP*3! E9! F2&)*+&"%,3",+$3"&,%2#"$*+$G, !"#$"%"&'()*+&"%,-$./*)(%, &)!$%HG64#!2-+,+N#!1-892(9#!FG%!$%!1)+62%+!9#6$($2%!%6! )+! -%1-%$%62+9(J6! H-87(9+! 4%! 7G69(#6%$3! W! )#$! %$2G4(+62%$! $%! )%$! 1-%$%62+! )+! 7G69(J6! 1)#2[, FG%! line (x,y) (x',y') c = vacio "line" [(“x1”,show x) ,(“y1”,show y), (“x2”,show x'),(“y2”,show y')] sizeX = 500; sizeY = 500; x0 = 10 <,$S-;%$%! FG%! 7!+19! -%+)(L+! +99(#6%$! 4%! &62-+4+ZC+)(4+3! T-+4(9(#6+)'%62%B! )#$! 9G-$#$! FG%! %6$%K+6! %)! )%6HG+N%! 9%4:3,,+ 2%64M+6! +! -%2-+$+-! )+! 1-%$%62+9(J6! 4%)! $($2%'+! 4%! &62-+4+ZC+)(4+! '%4(+62%! 'J6+4+$3! =-%%'#$! FG%! G6+! 1-%$%62+9(J6! H-+4G+)! 1%-'(2%! %;(2+-! '+)%62%64(4#$! 1#$2%-(#-%$B! /+! FG%! %6! 9+$#! 9#62-+-(#B! 'G9I#$! %$2G4(+62%$! 9#6$(4%-+,+6! %`2-+K+! )+! 1#$2%-(#-! (62-#4G99(J6! 4%! %7%92#$! )+2%-+)%$! %6!G6!)%6HG+N%!FG%!9#6$(4%-+,+6!!/"#;++ &)! 9J4(H#! 4%! )+! 7G69(J6! 7!+15 $(-;%! 9#'#! %N%'1)#! 4%! G2()(L+9(J6! 4%! )#$! 9#',(6+4#-%$! -%9G-$(;#$!:'7;5<"7;5=+!>$B!%293!9+-+92%-M$2(9#$! 4%)!)%6HG+N%!9%4:3,,3! &6! %$2%! 2-+,+N#! 1-892(9#B! )#$! %N%-9(9(#$! FG%! $%! 1-#1#6%6! +! )#$! %$2G4(+62%$! G2()(L+6! %)! 9#69%12#! 4%! 7G69(#6%$! 4%! #-4%6! $G1%-(#-B! 9)+;%! 4%)! 1+-+4(H'+! 7G69(#6+)3! W$MB! 1#-! %N%'1)#B! $%! $#)(9(2+! +)! %$2G4(+62%! FG%!9#6$2-G/+!G6+!7G69(J6!7!+1?->'"!FG%!%$9-(,+!%6! G6! 7(9I%-#! )+! -%1-%$%62+9(J6! 4%! 4#$! 7G69(#6%$! /! )+! 7G69(J6!'%4(+!4%!+',+$3!>#-!%N%'1)#B!%6!)+!7(HG-+!Y! $%! -%1-%$%62+! )+! '%4(+! 4%! )+$! 7G69(#6%$! 6@A5 BC5 DE5 F5&'*5A/!/!6@A5BC5DE5G5&H$15A/(!! *+!$#)G9(J6!4%)!%N%-9(9(#!%6!9%4:3,,+1G%4%!$%-E! ! media f g = plotF (\x!(f x + g x)/2) :C,H+$&(3(%,3",I&%"J(&K(,L&*M"$%*'($*(,3",5(,:&/+$7.'*)(, <=8 ! [(HG-+!Y3!d%1-%$%62+9(J6!4%!4#$!7G69(#6%$!/!$G!'%4(+! &)! %N%'1)#! +62%-(#-! 4%7(6%! G6! 0/%12"33+ 7#-'+4#! 1#-! )+! $G,4(;($(J6! %6! 9G+2-#! 9G+4-+62%$B! 4#$! -#N#$! /! 4#$! ;%-4%$! 4($1G%$2#$! %6! 4(+H#6+)3! &6! )+! 7(HG-+! X! 1G%4%! #,$%-;+-$%! G6+! -%1-%$%62+9(J6! 4%)! FG+42-%%! -IJK3!! *+!;($G+)(L+9(J6!4%!0/%12"334+$%!-%+)(L+!'%4(+62%! G6+!$%69())+!7G69(J6!FG%!H%6%-+!G6!7(9I%-#!%6!7#-'+2#! CQ.! G2()(L+64#! )+$! 7G69(#6%$! @%'(#B! $3*A+ /! $3*B4+ ('1)%'%62+4+$!1#-!)#$!%$2G4(+62%$!1+-+!)+!H%6%-+9(J6! 4%!4#9G'%62#$!OP*3! ! <9! N*#+%,3",3('+%,$")2$%*M+%G,1/%23"445, *+! $(HG(%62%! G6(4+4! 4(4892(9+! $%! 9%62-+! %6! )+! 1-%$%62+9(J6! 4%! 2S96(9+$! 4%! 4%7(6(9(J6! 4%! 2(1#$! -%9G-$(;#$! /! $G! '+6(1G)+9(J63! T-+4(9(#6+)'%62%B! )#$! 2-+,+N#$!1-892(9#$!%6!%$2+!$%99(J6!$%!-%+)(L+,+6!9#6!%)! 2(1#!1-%4%7(6(4#!)($2+!/!9#6!G6!2(1#!4%!4+2#$!4%7(6(4#! 1#-! )#$! +)G'6#$! 1+-+! -%1-%$%62+-! 8-,#)%$! ,(6+-(#$3! *#$! %$2G4(+62%$! 2(%6%6! $%-(+$! 4(7(9G)2+4%$! 1+-+! 9#'1-%64%-! )#$! 1-#9%$#$! -%9G-$(;#$! /! $%! $(%62%6! I+,(2G+)'%62%! 1#9#! '#2(;+4#$! 1#-! %$2%! 2(1#! 4%! %N%-9(9(#$! \fBYa^3! >+-+! (62%62+-! +G'%62+-! $G! '#2(;+9(J6! $%! 2-+,+N+-8! 9#6! 0/%12"334+ \YA^+ FG%! $#6! %$2-G92G-+$! -%9G-$(;+$! FG%! 1%-'(2%6! -%1-%$%62+-! ('8H%6%$! /! 2(%6%6! 6G'%-#$+$! +1)(9+9(#6%$! 1-892(9+$3! &6! G6! 0/%12"33+ )+$! 7(HG-+$! $%! -%1-%$%62+6! '%4(+62%! G6!V6(9#!9#)#-!#!)+!$G,4(;($(J6!4%!9G+2-#!9G+4-+62%$! FG%!$#6!+!$G!;%L!0/%12"3343!*+!H%6%-+)(L+9(J6!4%!)#$! 0/%12"334+ +)! %$1+9(#! 2-(4('%6$(#6+)! $%! 4%6#'(6+! #'2"33+ /+! FG%! 9+4+! $G,4(;($(J6! $%! -%+)(L+! %6! #9I#! #'2"3343!&$2+$!%$2-G92G-+$!$#6!+'1)(+'%62%!G2()(L+4+$! %6!%)!9+'1#!4%!)+!(67#-'82(9+!H-87(9+!/+!FG%!1%-'(2%6! #12('(L+-! )+! -%1-%$%62+9(J6! (62%-6+! 4%! %$9%6+$! /! )+$! ,+$%$! 4%! 4+2#$! 2-(4('%6$(#6+)%$! 1+-+! $($2%'+$! 4%! (67#-'+9(J6!H%#H-87(9+3!! &6! g+$h%))B! G6! FG+42-%%! 1G%4%! -%1-%$%62+-$%! '%4(+62%!%)!$(HG(%62%!2(1#!4%!4+2#$E! data Color = RGB Int Int Int data QT = B Color | D QT QT QT QT ! :6!%N%'1)#!4%!FG+42-%%!$%-M+! ejQT = D r g g (D r g g r) where r = B (RGB 255 0 0) g = B (RGB 0 255 0) ! ! [(HG-+!X3!&N%'1)#!4%!?/%12"33! type Punto = (Int,Int) type Dim = (Punto,Int) verqt::QT!IO () verqt q = writeFile “qtree.svg” (gen “svg” (ver ((0,0),500) q)) ver::Dim!QT!String ver ((x,y),d) (B c) = rect (x,y) (x+d+1,y+d+1) c ver ((x,y),d) (D ul ur dl dr) = let d2 = d `div` 2 in if d <= 0 then “” else ver ((x,y),d2) ul ++ ver ((x+d2,y),d2) ur ++ ver ((x,y+d2),d2) dl ++ ver ((x+d2,y+d2),d2) dr rect::Punto!Punto!Color!String rect (x,y) (x',y') (RGB r g b) = vacio "rect" [(“x”,show x),(“y”,show y), (“height”,show (abs (x - x'))), (“width”, show (abs (y - y'))), (“fill”, “rgb(”++show r++ “,”++ show g ++“,”++ show b ++“,”)] <=A, 6$+-$(7()*;&?,(5-+$*'7+%,0,"%'$2)'2$(%,3",3('+%, ! =9! 6'3"445+0,72&3+%,M*$'2(5"%, O9! IM(52()*;&,7/538(*+3(&49+12&3+%,*&/*&*'+%, :6!#'2""33+%$!G6+!H%6%-+)(L+9(J6!4%!G6!0/%12"33!1+-+! -%1-%$%62+9(#6%$! 2-(4('%6$(#6+)%$E! +)! $G,4(;(4(-! 9+4+! 9+-+! 4%! G6! 9G,#! %6! 9G+2-#! 1+-2%$! $%! #,2(%6%6! #9I#! 9G,#$3!*+!-%1-%$%62+9(J6!4%!#'2"334+%6!9%4:3,,!1#4-M+! $%-!)+!$(HG(%62%E! ! :6+! 4%! )+$! 1-(69(1+)%$! 9+-+92%-M$2(9+$! 4%)! )%6HG+N%! g+$h%))!%$!)+!%;+)G+9(J6!1%-%L#$+!FG%!1%-'(2%!4%7(6(-! +)H#-(2'#$!FG%!'+6(1G)+6!%$2-G92G-+$!1#2%69(+)'%62%! (67(6(2+$3! *+! %;+)G+9(J6! 1%-%L#$+! 1G%4%! 2+',(S6! 9#6$(4%-+-$%!G6!2(1#!4%!%;+)G+9(J6!C/428(*+2(&3!%6!)+! FG%! %)! $($2%'+! 6#! %;+)V+! )#$! +-HG'%62#$! 4%! G6+! 7G69(J6! I+$2+! FG%! -%+)'%62%! 6%9%$(2+! $G! ;+)#-3! &)! 1-#H-+'+4#-! 1G%4%! 4%7(6(-! /! '+6(1G)+-! 0/%12"334+ (67(6(2#$3!>#-!%N%'1)#B!%$!1#$(,)%!4%7(6(-E! data OT = | | | Vacio Cubo Color Esfera Color D OT OT OT OT OT OT OT OT where v e r g Vacio Esfera (RGB 0 0 255) Cubo (RGB 255 0 0) Cubo (RGB 0 255 0) ! inf :: OT *+! -%1-%$%62+9(J6! +62%-(#-! (64(9+! FG%! G6! #'2"33+ inf = D inf v s v v v r inf 1G%4%! %$2+-! ;+9M#B! $%-! G6! 9G,#! #! G6+! %$7%-+! 9#6! G6! where v = Vacio s = Esfera (RGB 0 0 255) 4%2%-'(6+4#!9#)#-B!#!G6+!4(;($(J6!%6!#9I#!#'2"3343! r = Cubo (RGB 255 0 0) :6!%N%'1)#!4%!#'2"33!$%-M+E! ! <,$S-;%$%!FG%!%)!#'2"33!$%!4%7(6%!%6!7G69(J6!4%!$M! ejOT :: OT ejOT = D v e e v r v v g '($'#3!CG!;($G+)(L+9(J6!$%!1-%$%62+!%6!)+!7(HG-+!_3!+ = = = = ! W!)#$!%$2G4(+62%$!$%!)%$!1-%$%62+!)+!7G69(J6! wOT :: OT ! FileName ! IO () ! FG%!2#'+!9#'#!+-HG'%62#$!G6!#'2"33A+G6!6#',-%! 4%! 7(9I%-#! /! %$9-(,%! %6! 4(9I#! 7(9I%-#! G6+! -%1-%$%62+9(J6! %6! O?0! 4%)! #'2"333! &6! )+! 7(HG-+! ?! $%! ! [(HG-+!_3!D'2"33!(67(6(2#! 1-%$%62+! G6+! 1+62+))+! 9+12G-+4+! 4%! )+! -%1-%$%62+9(J6! ! 4%)!#92"33! %N<T!%6!-%+)(4+4!;(-2G+)3!WG6FG%!%6!)+!7(HG-+! .-+9(+$! +! )+! %;+)G+9(J6! 1%-%L#$+B! %$! 1#$(,)%! $%! -%1-%$%62+! G6+! ;%-$(J6! ('1-%$+B! %)! $($2%'+! H%6%-+! G6! '#4%)#! ;(-2G+)! %6! %)! FG%! )#$! %$2G4(+62%$! 1G%4%6! 4%7(6(-! 7G69(#6%$! FG%! '+6(1G)%6! 'G64#$! ;(-2G+)%$! (67(6(2#$3! >#-! %N%'1)#B! )+! 7G69(J6! $-7'1-5 2#'+! 6+;%H+-3! 9#'#!+-HG'%62#!G6!#'2"33+/!H%6%-+!G6!6G%;#!#'2"33+ `!-%1(2(%64#!%6!9+4+!9G+4-+62%!%)!#'2"33!`3! !! repite :: OT ! OT repite x = D x x x x x x x W)! +1)(9+-! )+! 7G69(J6! -%1(2%! +)! #'2"33! (67! $%! #,2%64-M+!%)!-%$G)2+4#!4%!)+!7(HG-+!]3! ! [(HG-+!?3!&N%'1)#!4%!D'2"33+ ! ! ! ! :C,H+$&(3(%,3",I&%"J(&K(,L&*M"$%*'($*(,3",5(,:&/+$7.'*)(, <=E ! [(HG-+!R3!?/%12"33+4%!+)2G-+$! [(HG-+!]3!d%1%2(9(J6!4%!G6!D'2"33!(67(6(2#! ! ! P9! 6+5*7+$/*%7+,#($(7Q'$*)+G,1/%23"445,3", (5'2$(%, &)! $($2%'+! 4%! 2(1#$! 4%)! )%6HG+N%! 9%4:3,,! +4'(2%! )+! G2()(L+9(J6! 4%! 1#)('#-7($'#! 1+-+'S2-(9#3! *+$! )($2+$! $#6! %)! %N%'1)#! 2-+4(9(#6+)! 4%! 2(1#$! 4%! 4+2#$! 1#)('J-7(9#3! WG6FG%! )#$! 0/%12"334! 2-+4(9(#6+)%$! 9#62(%6%6! %6! 9+4+! 9G+4-+62%! (67#-'+9(J6! 4%)! 9#)#-B! 1#4-M+! %$2G4(+-$%! G6+! H%6%-+)(L+9(J6! FG%! 9#62G;(%$%! %6! 9+4+! 9G+4-+62%! (67#-'+9(J6! 4%! G6! 2(1#! %+ FG%! $%! 1+$+!9#'#!1+-8'%2-#3!*+!6G%;+!4%7(6(9(J6!$%-M+E! data QT a = B a | D (QT a) (QT a) (QT a) (QT a) ! ! &)! )%6HG+N%! 9%4:3,,+ 7+9()(2+! /! 1-#'G%;%! )+! G2()(L+9(J6! 4%! 7G69(#6%$! H%6S-(9+$3! *+! 7G69(J6! .#,1"+ %$! %N%'1)#! 4%! 7G69(J6! H%6S-(9+! 1-%4%7(6(4+! 1+-+! %)! 9+$#! 4%! )+$! )($2+$;+ &$2+! 7G69(J6! 1G%4%! 2+',(S6! 4%7(6(-$%!1+-+!%)!2(1#!4%!4+2#$!0/%12"33E! foldQT:: (b!b!b!b!b)!(a!b)!QT a! b foldQT f g (B x) = g x foldQT f g (D a b c d) = f (foldQT f g a) (foldQT f b) (foldQT f g c) (foldQT f d) ! &$!1#$(,)%!4%7(6(-!'V)2(1)%$!7G69(#6%$!+!1+-2(-!4%! .#,1?F3!>#-!%N%'1)#B!1+-+!9+)9G)+-!)+!)($2+!4%!;+)#-%$! 4%!G6!0/%12"33+1G%4%!4%7(6(-$%E! ! valores valores (\a *#$! 0/%12"334! 9#6! (67#-'+9(J6! 4%! 9#)#-! $%-M+6! (\x ;+)#-%$!4%!2(1#!JK5L+!+$3!! :: QT a ! [a] = foldQT b c d ! a ++ b ++ c ++ d) ! [x]) *+! H%6%-+)(L+9(J6! +62%-(#-! 1%-'(2%! 4%7(6(-! #2-#$! *+! 1-#7G64(4+4! 4%! G6! 0/%12"33! 1G%4%! 4%7(6(-$%! %N%'1)#$! 4%! 0/%12"334A+ 9#'#! )#$! FG%! 9#62(%6%6! %6! 9#'#E! 9+4+!9G+4-+62%!(67#-'+9(J6!4%!)+!+)2G-+!bG6!;+)#-!4%! 2(1#! 9!+"1c3! &$2#$! 0/%12"334+ 1G%4%6! G2()(L+-$%! 1+-+! profundidad :: QT a ! Int )+!-%1-%$%62+9(J6!4%!+)2G-+$!4%!2%--%6#$3!>#-!%N%'1)#! profundidad = foldQT (\a b c d ! 1 + maximum [a,b,c,d]) %)!$(HG(%62%!0/%12"33E! qta :: QT qta = D x where x a b c Float x x x = D b c a b = B 0 = B 10 = B 20 ! $%!-%1-%$%62+!%6!)+!7(HG-+!R3! (\_ ! 1) ! *++ 7G69()*+ .#,1?F+ 1%-2%6%9%! +)! 9#6NG62#! 4%! 7G69(#6%$! FG%! -%9#--%6! /! 2-+6$7#-'+6! G6+! %$2-G92G-+! -%9G-$(;+! %6!G6!;+)#-3!&$2+$! 7G69(#6%$!$%!4%6#'(6+6! 2+',(S6!'%2%&#".(4&#4+/!$#6!%$2G4(+4+$!%6!%)!9+'1#! 4%!)+!1-#H-+'+9(J6!H%6S-(9+!\X^3!! ! ! ! ! <=<, 6$+-$(7()*;&?,(5-+$*'7+%,0,"%'$2)'2$(%,3",3('+%, ! R9! @+,3"'"$7*&*%7+G,S"&"$()*;&,3", :/%23"445+"&,#$+-$(7()*;&,5;-*)(, :6+! 4%! )+$! 4(7(9G)2+4%$! 4%! )+! +$(H6+2G-+! %$! )+! (62-#4G99(J6!4%!)#$!1+-+4(H'+$!7G69(#6+)!/!)JH(9#!%6! G6! ,-%;%! %$1+9(#! 4%! 2(%'1#3! &6! )+! +92G+)(4+4! $%! %'1)%+6B!+4%'8$B!4#$!)%6HG+N%$!4(7%-%62%$E!9%4:3,,+/! 5"#,#$3! >+-+! 7+9()(2+-! %)! 9+',(#! %62-%! 1+-+4(H'+$! /! )%6HG+N%$B! $%! I+! #12+4#! 1#-! $#)(9(2+-! 1-892(9+$! 4%! 1-#H-+'+9(J6! 'G/! $('()+-%$! 4%! ! 7#-'+! FG%! )#$! +)G'6#$! 1G%4+6! #,$%-;+-! '8$! 9)+-+'%62%! )+$! 4(7%-%69(+$!%62-%!+',#$3! 0%!%$2+!7#-'+B!)#$!1-('%-#$!2-+,+N#$!1-892(9#$!%6! )+! 1+-2%! 4%! 1-#H-+'+9(J6! )JH(9+! ;G%);%6! +! %`+'(6+-!! $#,-%!%)!2%'+!4%!)#$!0/%12"334;!! :6+! 9+-+92%-M$2(9+! $#,-%$+)(%62%! 4%! )+! 1-#H-+'+9(J6! )JH(9+! %$! )+! 1#$(,()(4+4! 4%! 4%7(6(-! 1-%4(9+4#$! 6#D4%2%-'(6($2+$! FG%! +4'(2%6! ;+-(+$! $#)G9(#6%$!#,2%6(4+$!1#-!G%':2"%':(*$;!! &$! 1#$(,)%! 4%7(6(-! %)! 1-%4(9+4#! M+!6N&;JD;JO/! FG%!$%!9G'1)%!9G+64#! JO!%$!%)!0/%12"33+7#-'+4#!1#-! -%))%6+-!%)!0/%12"33+JD!9#6!)#$!9#)#-%$!4%!)+!)($2+!N&3! col(Xs,b(_),b(X)):-elem(X,Xs). col(Xs,d(A,B,C,D),d(E,F,G,H)):col(Xs,A,E),col(Xs,B,F), col(Xs,C,G),col(Xs,D,H). ! [(HG-+!A3!C#)G9(J6!4%)!1-#,)%'+!4%!9#)#-%+4#! ! :6+! $#)G9(J6! 4(-%92+! G2()(L+64#! 1-#H-+'+9(J6! )JH(9+! 9#6$($2%! $('1)%'%62%! %6! H%6%-+-! 2#4#$! )#$! 1#$(,)%$! FG+42-%%$! /! 9#'1-#,+-! )+! 9#64(9(J6! 4%! 6#! +4/+9%69(+!'%4(+62%!%)!1-%4(9+4#!*+L+!+$85 noColor(b(_)). noColor(d(A,B,C,D)):noColor(A), noColor(B), noColor(C), noColor(D), right(A,Ar),left(B,Bl),diff(Ar,Bl), right(C,Cr),left(D,Dl),diff(Cr,Dl), down(A,Ad),up(C,Cu),diff(Ad,Cu), down(B,Bd),up(D,Du),diff(Bd,Du). up(b(X),l(X)). up(d(A,B,_,_),f(X,Y)):-up(A,X), ! up(B,Y). 4#64%! -!-<6N;N&/! %$! G6! 1-%4(9+4#! 1-%4%7(6(4#! down(b(X),l(X)). FG%! $%! 9G'1)%! $(! O! %$! G6! %)%'%62#! 4%! )+! )($2+! O$3! <,$S-;%$%!FG%!+)!-%))%6+-!G6!FG+42-%%!9#6!4#$!9#)#-%$! down(d(_,_,C,D),f(X,Y)):-down(C,X), down(D,Y). $%!#,2(%6%6!;+-(+$!-%$1G%$2+$3! left(b(X),l(X)). ! ?-col([0,1],d(b(_),b(_),b(_),b(_)),V). V = d(b(0),b(0),b(0),b(0)) ; V = d(b(0),b(0),b(0),b(1)) ; V = d(b(0),b(0),b(1),b(0)) ; V = d(b(0),b(0),b(1),b(1)) ; . . . :6! 1-#,)%'+! 9)8$(9#! %6! %)! 9+'1#! +)H#-M2'(9#! %$! %)!4%!9#)#-%+-!G6!'+1+!4%!-%H(#6%$!9#6!G6+!$%-(%!4%! 9#)#-%$!4%!7#-'+!FG%!6(6HG6+!-%H(J6!+4/+9%62%!2%6H+! %)! '($'#! 9#)#-3! &)! 1-#,)%'+! 1G%4%! 1)+62%+-$%! 1+-+! 9#)#-%+-! 0/%12"334;+ &6! )+! 7(HG-+! A! $%! 1-%$%62+! G6+! 1#$(,)%! $#)G9(J6! +)! 9#)#-%+-! G6! 0/%12"33+ FG%! -%1-%$%62+!G6!-#',#3! left(d(A,_,C,_),f(X,Y)):-left(A,X), left(C,Y). right(b(X),l(X)). right(d(_,B,_,D),f(X,Y)):-right(B,X), right(D,Y). diff(l(X),l(Y)):-X\=Y. diff(l(X),f(A,B)):notElem(X,A), notElem(X,B). diff(f(A,B),l(X)):-notElem(X,A), notElem(X,B). diff(f(A,B),f(C,D)):-diff(A,C), diff(B,D). notElem(X,l(Y)):-X\=Y. notElem(X,f(A,B)):-notElem(X,A), notElem(X,B). T9! 6$+-$(7()*;&,)+&,$"%'$*))*+&"%, *#$! )%6HG+N%$! 4%9)+-+2(;#$! #7-%9%6! G6! '+-9#! (4%+)! 1+-+! )+! 1-#H-+'+9(J6! ,+$+4+! %6! -%$2-(99(#6%$! :C,H+$&(3(%,3",I&%"J(&K(,L&*M"$%*'($*(,3",5(,:&/+$7.'*)(, <== ! b'#*42"%(*2+ !"#$"%&&(*$c3! WG6FG%! G6+! 1-%$%62+9(J6! %6!1-#7G64(4+4!$%!$+)4-M+!4%)!8',(2#!4%!)+!+$(H6+2G-+B! I%'#$! 9#6$(4%-+4#! (62%-%$+62%! 1-%$%62+-! +! )#$! %$2G4(+62%$! G6+! ,-%;%! (62-#4G99(J6! +! %$2+! 4($9(1)(6+! /+! FG%! 1+-+! 'G9I#$! 4%! %))#$B! $%-8! %)! V6(9#! +9%-9+'(%62#! %6! 2#4+! $G! 9+--%-+! G6(;%-$(2+-(+3! =#62(6G+64#! 9#6! %)! 2%'+! 4%! )#$! 0/%12"334A+ $%! 1-%$%62+! G6+! $#)G9(J6! 4%)! 1-#,)%'+! 4%! 9#)#-%+-! G6! 0/%12"33+ G2()(L+64#! )+$! %`2%6$(#6%$! 4%! 1-#H-+'+9(J6! )JH(9+! 9#6! 4#'(6(#$! 7(6(2#$! $#1#-2+4+$! 1#-! +)HG6#$! $($2%'+$! >-#)#H3! &6! 9#69-%2#B! +! 9#62(6G+9(J6! $%! 1-%$%62+!G6!1-%4(9+4#! M+!L5 FG%!-%))%6+!G6!0/%12"33+ 9#6! )#$! ;+)#-%$! 2#'+4#$! 4%! G6! 4#'(6(#! \PBi^3! C%! G2()(L+!)+!$(62+`($!4%!=*>b[0c!('1)%'%62+4#!%6!.i:! >-#)#H!\]^3!! )+$! 9+1+9(4+4%$! 4%! %$2%! 2(1#! 4%! )%6HG+N%$3! =+,%! 4%$2+9+-!%)!)(,-#!4%!2%`2#!%$9-(2#!1#-!>3!gG4+h!\Y@^!%6! %)!FG%!$%!1-%$%62+!G6+!(62-#4G99(J6!+!)+!1-#H-+'+9(J6! 7G69(#6+)! (69)G/%64#! %N%'1)#! -%)+9(#6+4#$! 9#6! $($2%'+$! 'G)2('%4(+3! &6! %)! )(,-#! $%! G2()(L+6! ;+-(+$! )(,-%-M+$!%$1%9M7(9+$!FG%!1%-'(2%6!H%6%-+-!/!;($G+)(L+-! )#$! 4(;%-$#$! %N%-9(9(#$! 1-#1G%$2#$3! *+! %$2-+2%H(+! $%HG(4+!%6!%$2%!+-2M9G)#!%$!$('()+-!%6!%)!#,N%2(;#B!1%-#! 4(7(%-%! %6! )+! 7#-'+! 4%! ;($G+)(L+-! )+$! 9#6$2-G99(#6%$! H-87(9+$3!C%!I+!#12+4#!1#-!G2()(L+-!;#9+,G)+-(#$!OP*! FG%! $%! %$286! 9#6;(-2(%64#! %6! %$2864+-%$! %6! $G$! -%$1%92(;#$! 9+'1#$3! &$2+! 2S96(9+! $G1#6%! ;+-(+$! ;%62+N+$E! %`($2%69(+! 4%! '+/#-! 6V'%-#! 4%! I%--+'(%62+$! 4%! ;($G+)(L+9(J6B! 1#-2+,()(4+4! %62-%! 1)+2+7#-'+$! %! (64%1%64%69(+! 4%! )(,-%-M+$! %$1%9M7(9+$3! W4%'8$B! )#$! %$2G4(+62%$! %'1)%+6! 2%96#)#HM+$! OP*! colC(M,N,b(_),b(X)):-fd_domain(X,M,N). %$2864+-!FG%!1G%4%6!$%-!,%6%7(9(#$+$!%6!#2-#$!9+'1#$! colC(M,N,d(A,B,C,D),d(E,F,G,H)):4%!$G!2-+/%92#-(+!1-#7%$(#6+)3! col(M,N,A,E),col(M,N,B,F), col(M,N,C,G),col(M,N,D,H). *+$! -%1-%$%62+9(#6%$! 4%9)+-+2(;+$! 4%! 0/%12"334! *+! 6G%;+! ;%-$(J6! 4%! 6#=#)#-! G2()(L+64#! 7G%-#6! %$2G4(+4+$! %6! \_BaBYfBXY^3! d%9(%62%'%62%B! =3! -%$2-(99(#6%$!$%-M+E! <h+$+h(! \YR^! 2#'+! 9#'#! 1G62#! 4%! 1+-2(4+! )+! -%1-%$%62+9(J6! %6! g+$h%))! 4%! G6! 0/%12"33+ 1+-+!! noColorC(b(_)). 4%7(6(-! G6+! ('1)%'%62+9(J6! %7(9(%62%! 4%! '+2-(9%$! noColorC(d(A,B,C,D)):9G+4-+4+$! '%4(+62%! 2(1#$! +6(4+4#$3! CG! noColorC(A), noColorC(B), noColorC(C), noColorC(D), ('1)%'%62+9(J6! '+62(%6%! )+! 9#6$($2%69(+! 4%! )+! right(A,Ar),left(B,Bl),diffC(Ar,Bl), -%1-%$%62+9(J6!H-+9(+$!+)!$($2%'+!4%!2(1#$!4%!g+$h%))3!! right(C,Cr),left(D,Dl),diffC(Cr,Dl), &6! %)! 9+'1#! ('1%-+2(;#! %`($2%6! ;+-(#$! 2-+,+N#$! down(A,Ad),up(C,Cu),diffC(Ad,Cu), down(B,Bd),up(D,Du),diffC(Bd,Du). \ABYYBY?^! FG%! -%$+)2+6! )+! G2()(L+9(J6! 4%! 0/%12"334+ 9#'#!,G%6#$!%N%'1)#$!4%!1-892(9+$!4%!1-#H-+'+9(J6B! diffC(l(X),l(Y)):-X #\= Y. 9%62-864#$%! 7G64+'%62+)'%62%! %6! $G! +1)(9+9(J6! 1+-+! diffC(l(X),f(A,B)):-notElemC(X,A), 9#'1-('(-! ('8H%6%$3! &6! \R^! $%! 4%$9-(,%6! 4(;%-$#$! notElemC(X,B). diffC(f(A,B),l(X)):-notElemC(X,A), +)H#-(2'#$!4%!9#)#-%+4#!4%!0/%12"334+/!$G!+1)(9+9(J6! notElemC(X,B). 1-892(9+! %6! )+! 1)+6(7(9+9(J6! 4%! 9#'1G2+9(#6%$! diffC(f(A,B),f(C,D)):-diffC(A,C), 1+-+)%)+$3! diffC(B,D). notElemC(X,l(Y)):-X #\= Y. notElemC(X,f(A,B)):-notElemC(X,A), notElemC(X,B). ! <,$S-;%$%! FG%! )+! ('1)%'%62+9(J6! %$! 1-892(9+'%62%! (HG+)! +! )+! 1-%$%62+4+! %6! )+! $%99(J6! +62%-(#-! /+! FG%! $#)+'%62%! $%! I+! $G$2(2G(4#! %)! 1-%4(9+4#!j@Pk!1#-!%)!1-%4(9+4#!jQ@Pk3!C(6!%',+-H#B! %)! +)H#-(2'#! ,+$+4#! %6! -%$2-(99(#6%$! #,2(%6%! G6+! $#)G9(J6! 1+-+! il?! %6! @3@Y$H! '(%62-+$! FG%! %)! +)H#-(2'#!4%!)+!$%99(J6!+62%-(#-!2+-4+,+!A_3]$H3! 889!V+&)52%*;&,0,DW&"(%,3",'$(B(U+, &)! 1-%$%62%! +-2M9G)#!1-#1#6%! G6!%$FG%'+! 4%! 2-+,+N#$! 1-892(9#$! FG%! 1-%2%64%! 1#2%69(+-! )+! ;($G+)(L+9(J6! H-87(9+!4%!)#$!-%$G)2+4#$!+!)+!;%L!FG%!$%!%`1)#-+6!)+$! 4(;%-$+$!9+-+92%-M$2(9+$!4%!)#$!)%6HG+N%$!4%9)+-+2(;#$3! WG6FG%!6#!$%!I+!-%+)(L+4#!G6!%$2G4(#!$($2%'82(9#!4%! )+! -%+99(J6! 4%! )#$! %$2G4(+62%$! +62%! %$2%! %$FG%'+B! 1G%4%! +7(-'+-$%! FG%! )+$! 1-('%-+$! ('1-%$(#6%$! $#6! +)2+'%62%! 1#$(2(;+$B! 9#6! G6! 1#-9%62+N%! 4%! +,+64#6#! 4%! )+! +$(H6+2G-+! 6#2+,)%'%62%! (67%-(#-! +)! 4%! 9G-$#$! +62%-(#-%$3! C(6! %',+-H#B! %$2%! 2(1#! 4%! +7(-'+9(#6%$! 8>9!N$(B(U+,$"5()*+&(3+, 4%,%-M+! 9#62-+$2+-$%! 4%! G6+! 7#-'+! -(HG-#$+! *+! %`(HG+! G2()(L+9(J6! 4%! )#$! )%6HG+N%$! 4%9)+-+2(;#$! 9#'1-#,+64#B! 1#-! %N%'1)#B! FG%! )#$! %$2G4(+62%$! \X@^!I+!))%;+4#!+!;+-(#$!'(%',-#$!4%!%$2+!9#'G6(4+4! %`1G%$2#$! +! %$2%! 2(1#! 4%! %6$%K+6L+! -%+)'%62%! +!)+!,V$FG%4+!4%!+1)(9+9(#6%$!+2-+92(;+$!FG%!-%$+)2%6! -%$G%);%6!'%N#-!#2-#$!1-#,)%'+$!4%!1-#H-+'+9(J63!! <=O, 6$+-$(7()*;&?,(5-+$*'7+%,0,"%'$2)'2$(%,3",3('+%, ! *+! H%6%-+9(J6! 4%! 'G64#$! ;(-2G+)%$! I+! $G1G%$2#! \Y@^! >3! gG4+hB! FI3+ 9%4:3,,+ P'I##,+ #.+ QR!"344(#*E+ G6! +)(9(%62%! %6! )+! (6;%$2(H+9(J6! 4%)! H-G1#! 50&[5O! 63%"*(*$+ 7/*'2(#*%,+ 5"#$"%&&(*$+ 2I"#/$I+ \Y_BY]^3! &62-%! )+$! 7G2G-+$! )M6%+$! 4%! (6;%$2(H+9(J6! $%! >/,2(&31(%A+=+',-(4H%!:6(;3!>-%$$B!X@@@! %69G%62-+! %)! %$2G4(#! 4%! 9#'G6(4+4%$! ;(-2G+)%$! 2(1#! \YY^! d3! "('S6%LD>%-($B! C3! pIG-(B! P3! >+2(K#D B'2(@3H#",14+\Y^!4#64%!)#$!%$2G4(+62%$!1G%4+6!;($(2+-! P+-2M6%LB! B11(*$+ G"3%12I+ 2#+ VPW+ %*1+ VPN+ )+!9#'G6(4+4B!9-%+-!$G$!1-#1(#$!'G64#$!/!9#6;%-$+-! '#/"434+ 2I"#/$I+ @(4/%,+ %*1+ (*23"%'2(@3+ 9#6!#2-#$!%$2G4(+62%$!'%4(+62%!'I%2;! !"#$"%&&(*$+!"#X3'24A+W=P!C5.=C&!mG))%2(6! ?YbYcB!P+-L#B!Yfff! \YX^! "3! p++$,q))B! QR!,#"(*$+ 1(1%'2('+ &#13,4+ .#"+ !"/"$"&)*(%, !"#$"%&&(*$A+ i#-$h! 567#-'+2(hhDp#67%-+6$%B! gqH$h#)%6!5!WH4%-B!Yffa!! \Y^! W92(;%e#-)4$B!18H(6+!e%,E! \Y?^! C3! pIG-(B! g3! g$GB! L*23"%'2(@3+ 5%':%$34+ .#"+ !!!!!!!!!!!!R1178SSTTT("M1',-T+$!>&(M+<! ,3%"*(*$+ (&%$3+ '#&!"344(#*+ %,$#"(2I&4B! W=P! \X^! d3! m+9hI#G$%B! >3! "+6$$#6B! "3! "%G-(6HB! *3! C5.=C&!mG))%2(6!?Xb?cB!C%123!X@@@! P%%-2%6$B! J3*3"('+ 5"#$"%&&(*$+ K+ B*+ L*2"#1/'2(#*A+ W4;+69%4! [G692(#6+)! \Y_^! "3&3! *+,-+B! "3P3! P#-+)%$B! d3! TG--+4#B! 5,%2%.#"&%+ 13+ 3*43Y%*Z%+ 13+ ,3*$/%X34+ 13+ >-#H-+''(6HB! *%92G-%! i#2%$! (6! =#'1G2%-! !"#$"%&%'()*+ %+ 2"%@[4+ 13+ L*23"*32E+ 5"#-3'2#+ C9(%69%B!;#)!YR@aB!C3!Cn(%-$2-+B!>3!g%6-(FG%$B!"3! L13.(RA+ "#-6+4+$! 4%! &6$%K+6L+! :6(;%-$(2+-(+! 4%! i3!<)(;%(-+!b&4$cB!Yfff! 567#-'82(9+B!"&i:5DX@@XB!=89%-%$B!"G63!X@@X! \?^! T3! m-+/B! "3! >+#)(B! =3! P3! C1%-,%-HDP9oG%%6B! &`2%6$(,)%! '+-hG1! )+6HG+H%! bY3@cB! \Y]^! "3&3!*+,-+B!"3!P3!P#-+)%$B!W3!P3![%-6864%LB!g3! C+H+$2%HG(B!B+J3*3"('+3863%"*(*$+ R1178SSTTT(TU(+$2SKVSVWLBA<!B!<92!X@@@! >/,2(!%"%1($&+5"#$"%&&(*$+6%*$/%$3+ \_^! [3! e3! mG-2#6B! "3! .3! p#))(+$3! 7/*'2(#*%,+ P-423&E+LTQ7L\+5"#X3'2B!W=P!?_2I!C5.=C&! !"#$"%&&(*$+ M(2I+ 0/%12"334;+ 5&&&! C#72n+-%B! T%9I6(9+)!C/'1#$(G'!#6!=#'1G2%-!C9(%69%! RbYcEf@DfAB!&6%-#B!Yfaf! &4G9+2(#6B!d%6#B!i%;+4+B!:CWB![%,-%-#!X@@?! \]^! >3! =#4#H6%2! +64! 03! 0(+L3! =#'1()(6H! =#6$2-+(62$! (6! =*>b[0c3! C#/"*%,+ #.+ 6#$('+ \YR^!! =I-($! <h+$+h(B! 7"#&+ 7%42+ 3R!#*3*2(%2(#*+ 2#+ P0/%"3+>%2"('34E+B*+%1@3*2/"3+(*+F-!34B!W=P! 5"#$"%&&(*$B!Q#)3!XAB!i#3!?B!"G6%!YffR! C5.>*Wi! i#2(9%$! ?_bfcB! 562)3! =#67%-%69%! #6! \R^! 03! &11$2%(6B! P3! e3! m%-6B! m3! gG29I(6H$B! [G692(#6+)!>-#H-+''(6HB!113!XaD?]B!Yfff! B,$#"(2I&4+ .#"+ '#,#"(*$+ 0/%12"334A+ \YA^! g+6+6! C+'%2! FI3+ 0/%12"33+ %*1+ "3,%231+ W)H#-(2I'(9+B!?XbYcB!&6%3!NOON!! I(3"%"'I('%,+ 1%2%+ 42"/'2/"34;+ W=P! =#'1G2(6H! \A^! "3! m3! [%6n(9h! "-3B! =3! i#--($B! "3! e()h%$B! CG-;%/$B!YRbXcE!YaADXR@B!"G6(#!Yfa_3! P'(3*2(.('+ QR!3"(&3*2%2(#*+ @(%+ 2I3+ >%2'I(*$+ J%&3AC5.=C&! mG))%2(6! ?_bYcB! ??2I! C5.=C&! \Ya^! "3C%H+)B! Q&!("('%,+ 42/1(34+ #.+ ./*'2(#*%,+ !"#$"%&&(*$+ ,3%"*3"4+ 3@%,/%2(*$+ "3'/"4(@3+ T%9I6(9+)! C/'1#$(G'! #6! =#'1G2%-! C9(%69%! ./*'2(#*4A+ 56$2-G92(#6+)! C9(%69%! XXB! ?a]D_YYB! &4G9+2(#6B!P+-L#B!X@@X! Yff]! \a^! "3!03![-%6$B!03!C3!e($%B!P+2-(`!(6;%-$(#6!G$(6H! FG+42-%%$! ('1)%'%62%4! (6! H#7%-3! T%9I6(9+)! \Yf^! C3! &4%)'+6! +64! &3! CI+1(-#B! ?/%12"334+ (*+ '#*'/""3*2+ !"#,#$B! >-#93! 562)3! =#67%-%69%! #6! d%1#-2! _??B! =#'1G2%-! C9(%69%! 0%1+-2'%62B! >+-+))%)!>-#9%$$(6HB!Yfa]B!113!]__D]]Y! 564(+6+!:6(;%-$(2/B!P+/#!Yff]! \f^! "3! .##4B! >3! m-6+B! S#@('3+ T(..('/,2(34+ M(2I+ \X@^! >3! e+4)%-B! HI-+ *#+ #*3+ /434+ ./*'2(#*%,+ !"#$"%&&(*$+ ,%*$/%$34UA! W=P! C5.>*Wi! "3'/"4(#*E+ T#+ $"%!I('%,+ =3!"343*2%2(#*4+ 9#,1+ i#2(9%$!??bacE!X?DXAB!WH#$2#B!Yffa! 2I3+ 4#,/2(#*UB! &G-#1%+6! =#67%-%69%! #6! W-2(7(9(+)! 562%))(H%69%! (6! &4G9+2(#6B! *($,#+B! \XY^! 03! e($%B! >%2"(R+ %,$#"(2I&4+ /4(*$+ 0/%12"334;! T%9I6(9+)! d%1#-2! ?]AB! =#'1G2%-! C9(%69%! >#-2GH+)B!<923BYffR! 0%1+-2'%62B! 564(+6+! :6(;%-$(2/B! "G63B! YffX !