+ printf qq{<tbody class="row row%d">\n}, $row+1;
+ for my $basemode (@modes) {
+ my @moderows = split /\s+/,
+ $row < 0 ? "0" :
+ defined $moderows{$basemode} ? $moderows{$basemode} : $moderows{-DEFAULT};
+
+ for my $submode (@moderows ? @moderows : '') {
+ my $mode = $basemode . $submode;
+ my @caserows = $mode =~ s/(\d+)(?:-(\d+))?$//
+ ? (map {$_ - 1} split //, $row == 0 && $2 || $1) # user override
+ : @$defrows; # default
+ my $modekeys = $self->{def}{$mode};
+
+ for my $case (@caserows) {