my $state = uc($cgi->param('state'));
$state =~ /^[A-Z]{2}$/ or die "illegal state: $state";
my %part = map { $_ => 1 } grep { /^\w+$/ } $cgi->param('part');
my $type = $cgi->param('_type') || 'html';
my $state = uc($cgi->param('state'));
$state =~ /^[A-Z]{2}$/ or die "illegal state: $state";
my %part = map { $_ => 1 } grep { /^\w+$/ } $cgi->param('part');
my $type = $cgi->param('_type') || 'html';