$z='$|=print"\ec";$z=~s#\s##g;$z="\$z=\x27$z\x27".q%;$z=~s#\s|\x4f##g;eval$z%;$ x = 4 0 ; $ w = 2 * $ x ; $Ow - - ; $ y = 1 6 ; $ | = 1 ; @ m = ( ( 3 1 , ( 1 5 ) x ( $ x - 1 ) ) x $ y , ( 3 1 ) x $ x ) ; * p = s u b { " \ e [ 7 m @ _ [ 0 ] \ e [ m " } ; * l = s u b { c h o p $ t } ; d o { $ t = r e v e r s e $ z ; $ m [ $ c ] | = 1 6 , ! ( @ a = g r e p / . $ / & ! ( $ m [ $ c + $ ` ] & 1 6 + $ s * $ & ) , - 1 8 , 1 1 , " $ { x } 4 " , " - $ { x } 2 " ) ? $ c = p o p @ p : $ { $ a [ r a n d @ a ] = ~ / . $ / ; $ m [ $ c ] & = ~ 8 / $ & ; p u s h @ p , $ c ; $ m [ $ c + = $ ` ] & = 1 5 - $ & ; + + $ u - ( $ x * $ y - $ y ) | | m a p $ _ & = 1 5 , @ m , $ c = $ s = 1 } , $ s & & ( p rint"\e[H",(map{p(&l)}(0..($w-1))),map$_%$x?($_-$c?$m[$_]&2?"\e[4m".$"."\e[0m": $":"\x4f").($m[$_]&8?(p(&l)):"\e[4m".$"."\e[m"):$/.p(&l),0..$x*$y-1)&&(($t=reve rse$t.$/)=~s#.{$w}#$&$/#g)&&print($t,$/)&&select$q,$q,$q,.2*$s}until$c>($x*$y-2 )&$s';$z=~s#\s|\x4f##g;eval$z