~~~~~~~~~~~}}}}}}}~}}}}||}~~~~~}}~}~|~|~{~{~{~|~||}}}}}|||}|||}~~}|{zyyyx~x~x~yz}w}v~v~v~vw~w~xyyyyyyyxxyy~y~x}w}w|w|v|v|v{u{v|v|v}v}v}v}u}u}u}u~v~v~w~xxxyzzyxwvutssrqpppt}vtttsttuuvvwwwwwxxxyxwwwwwwwxyywwwwwwxxyyz{{||~~}|{zyxwwwwwwx|zxxxxyyyz{||||}~~~~~~~~}}}~~~~~}}}}}}}}~}}}}~~~~~~~~