| line | true | false | branch | 
 
| 44 | 7 | 36 | $dest eq 'e' ? : | 
 
| 51 | 118 | 23 | if ($c =~ /\A$COL_RE\z/) | 
 
| 58 | 18 | 5 | if ($dest_char eq 'h') | 
 
| 60 | 0 | 18 | if ($dest ne 'h') | 
 
| 72 | 75 | 8 | if (defined(my $src_col_idx = &$try_col($src_char))) { } | 
 
|  | 8 | 0 | elsif (defined(my $src_fc_idx = &$try_fc($src_char))) { } | 
 
| 74 | 22 | 53 | if (defined(my $dest_fc_idx = &$try_fc($dest_char))) | 
 
| 76 | 0 | 22 | if ($dest ne 'f') | 
 
| 80 | 0 | 22 | if ($src_card ne $self->_st->get_column($src_col_idx)->top->to_string) | 
 
| 93 | 38 | 15 | if (defined(my $dest_col_idx = &$try_col($dest_char))) | 
 
| 99 | 0 | 38 | unless (defined $idx) | 
 
| 103 | 0 | 38 | if (&$is_invalid_dest_col($dest_col_idx)) | 
 
| 117 | 15 | 0 | if (&$try_foundation()) | 
 
| 119 | 0 | 15 | if ($src_card ne $self->_st->get_column($src_col_idx)->top->to_string) | 
 
| 133 | 0 | 8 | if ($src_card ne $self->_st->get_freecell($src_fc_idx)->to_string) | 
 
| 137 | 3 | 5 | if (&$try_foundation()) | 
 
| 145 | 5 | 0 | if (defined(my $dest_col_idx = &$try_col($dest_char))) | 
 
| 147 | 0 | 5 | if (&$is_invalid_dest_col($dest_col_idx)) | 
 
| 169 | 0 | 83 | if (@fields != 5) | 
 
| 174 | 0 | 83 | if ($idx ne $self->_input_move_index) | 
 
| 182 | 0 | 83 | if (@src_dest != 2) | 
 
| 189 | 0 | 83 | unless $self->_move_was_performed | 
 
| 199 | 62 | 21 | unless length $found_moves | 
 
| 204 | 13 | 30 | if (length $s == 2) | 
 
| 208 | 0 | 30 | unless my($start, $end) = $s =~ /\A(\S\S)-(\S\S)\z/ | 
 
| 212 | 0 | 30 | if ($sc->suit ne $ec->suit) | 
 
| 216 | 0 | 30 | if (exists $suits{$sc->suit}) | 
 
| 220 | 0 | 30 | if ($sc->rank > $ec->rank) | 
 
| 243 | 86 | 43 | unless ($@) | 
 
| 247 | 30 | 56 | if ($rank == $rec->{'end'}->rank) { } | 
 
| 263 | 0 | 21 | if (%suits) | 
 
| 283 | 2 | 0 | if $l =~ /\|/ |