+ map {
+ my @row = @{$_};
+ my $class = (
+ !defined $row[2] || $row[0] eq $row[2] ? 1 # identical
+ : $row[2] =~ /\A\p{Mn}+\z/ ? 8 # combining accent
+ : NFKD($row[2]) =~ $row[0] ? 2 # decomposed equivalent
+ : $row[2] =~ /^\p{Latin}/ ? 4 # latin script
+ : unidecode($row[2]) =~ /^\W*\Q$row[0]/ ? 5 # transliterated
+ : 7
+ );
+ $row[0] => "g$class"
+ } @usint