eval( ( %w{req ui re"io /co ns ol e";r=%q { "" """##..#))#90;;KCX2; ;K>U5z2k 0M F[:$ $$..#)+]1;;K=%$%%$X1;;K?##//1.91j.m.#+z2K: q3 i5 %x./.%#)n/;;K;"#$%)++)%$8/;;K=#[.$..#++i2y/*.K.;;K.$#k0;;K:"#$z.*%$80;;K=##'-#].[.%]0;.*o/s.z0K8#%%y.%..%$#m1 2.#'##9.;;KAL.j180;2*;9L.K4#'-*#$$%/.k0;/('#;8$K.$>.x.#%%%..;/n0###*-'o0K/l /;;K3#[ 2$%*y.W0[0;.<.j/[5k1'k0(h0 j. '# ## l/0/m0#(L .Y.L2"#*'& ''83)y.#h.M.)L3(''?.#i 2 '; .&&'(#..k0F .l.z3[/*(&R.&&l/# [5:0A.'J.*[2q/L.'&##' L 0 " #;.8/i0 l0'&(>/[1#'&''[.'<2o/(*##Z2w.##*(=/'(^2&=/ Y4 o.*'#(& U/i0[391a.&(#'*[3J.(*v.##'[1k.9.84l0G.&&l3' #7 .r.K4&( *&#&h3##&'(('Z.z3H.*(K3[/&x.&#('n1[3x1'([ /M / Z3,Y.#k .#=4L0K2#70(&&,,n1#'*#*q. [4l/,h4;1=/<5M 1 K4v0&k8[ 5B.H.M/h3Z.##(O.m3g.,L3x0w /1/k1('#''n.<2N1g 3^1&I.=9 M6v /,##;5[:F. M0X 2x.w.##&]3k.#m.@.Y1J/q 021S.(..L.D1>/52 k2;/==M4u. ,[9v.= ;M4###v0 #, l3= .,,,;6E1L0#v.&##''(&5. ^2Z.g3;2m.=:M7 [ <&#.. [Dz/o/z6# #. .o 451;1F2M2#};s=nil;f="";r. size.times{|i |i f!s ;s=nil ; el se;f+=r[i]<"."&&r[i]||f[s=43 +f.size-r[i] .or d,r[i + 1] .ord -43]end};s=[];5.times{|i|s.push([]);4.t im e s{s [i ].p ush("")}};24.times{|i|3.times{|j|3.times{ | k | s[k ][j ]+=f[(i*10+k*3+j)*16,16]+"T"};s[3][j]+=s[2 ][ j] [i *17 ,16].reverse+"T";s[4][j]+=f[i*160+144,16]+ " T "} };5.times{|k|s[k][3]=s[k][1]};p=[0,233,23,108,8 8 ,2 22, 173,98,230,177,136,17].map{|i|"\e[48;5; #{i}m"} ; s = s.map{|i|i.map{| j|d=p[0]+"\e[24A\e[1G";j.e ach_byte {|k|d+= k ==84&&p[0]+"\e [1B\e[1G"||p[k-34]+"!!"}; d}};prin t! p[0]+"\n"*24, "\e[?25l";d=f=0;t=Thread.ne w{whil e!d <4 ;k="jBkAhDlCq \3".index(STDIN.getch());d=k &&k/2 ||d ; end};w hile!d <4;p rint!s[d][f];f=-~ f% 4;sl eep! 0. 14;e nd; pr int!s[4][0]," \e [?2 5h \e[0m \n" ;t.join}* "" ) . gsub( "!" ," " ) )