namespace BioFS

[<AutoOpen>]
module SubstitutionMatrices =
    
    let SubstitutionMatrices: Map<SubsMatrixType, Map<(char * char), int>> =
        [ BLOSUM45,
          [| ('A', 'A'), 5
             ('A', 'R'), -2
             ('A', 'N'), -1
             ('A', 'D'), -2
             ('A', 'C'), -1
             ('A', 'Q'), -1
             ('A', 'E'), -1
             ('A', 'G'), 0
             ('A', 'H'), -2
             ('A', 'I'), -1
             ('A', 'L'), -1
             ('A', 'K'), -1
             ('A', 'M'), -1
             ('A', 'F'), -2
             ('A', 'P'), -1
             ('A', 'S'), 1
             ('A', 'T'), 0
             ('A', 'W'), -2
             ('A', 'Y'), -2
             ('A', 'V'), 0
             ('A', 'B'), -1
             ('A', 'Z'), -1
             ('A', 'X'), 0
             ('A', '*'), -5
             ('R', 'A'), -2
             ('R', 'R'), 7
             ('R', 'N'), 0
             ('R', 'D'), -1
             ('R', 'C'), -3
             ('R', 'Q'), 1
             ('R', 'E'), 0
             ('R', 'G'), -2
             ('R', 'H'), 0
             ('R', 'I'), -3
             ('R', 'L'), -2
             ('R', 'K'), 3
             ('R', 'M'), -1
             ('R', 'F'), -2
             ('R', 'P'), -2
             ('R', 'S'), -1
             ('R', 'T'), -1
             ('R', 'W'), -2
             ('R', 'Y'), -1
             ('R', 'V'), -2
             ('R', 'B'), -1
             ('R', 'Z'), 0
             ('R', 'X'), -1
             ('R', '*'), -5
             ('N', 'A'), -1
             ('N', 'R'), 0
             ('N', 'N'), 6
             ('N', 'D'), 2
             ('N', 'C'), -2
             ('N', 'Q'), 0
             ('N', 'E'), 0
             ('N', 'G'), 0
             ('N', 'H'), 1
             ('N', 'I'), -2
             ('N', 'L'), -3
             ('N', 'K'), 0
             ('N', 'M'), -2
             ('N', 'F'), -2
             ('N', 'P'), -2
             ('N', 'S'), 1
             ('N', 'T'), 0
             ('N', 'W'), -4
             ('N', 'Y'), -2
             ('N', 'V'), -3
             ('N', 'B'), 4
             ('N', 'Z'), 0
             ('N', 'X'), -1
             ('N', '*'), -5
             ('D', 'A'), -2
             ('D', 'R'), -1
             ('D', 'N'), 2
             ('D', 'D'), 7
             ('D', 'C'), -3
             ('D', 'Q'), 0
             ('D', 'E'), 2
             ('D', 'G'), -1
             ('D', 'H'), 0
             ('D', 'I'), -4
             ('D', 'L'), -3
             ('D', 'K'), 0
             ('D', 'M'), -3
             ('D', 'F'), -4
             ('D', 'P'), -1
             ('D', 'S'), 0
             ('D', 'T'), -1
             ('D', 'W'), -4
             ('D', 'Y'), -2
             ('D', 'V'), -3
             ('D', 'B'), 5
             ('D', 'Z'), 1
             ('D', 'X'), -1
             ('D', '*'), -5
             ('C', 'A'), -1
             ('C', 'R'), -3
             ('C', 'N'), -2
             ('C', 'D'), -3
             ('C', 'C'), 12
             ('C', 'Q'), -3
             ('C', 'E'), -3
             ('C', 'G'), -3
             ('C', 'H'), -3
             ('C', 'I'), -3
             ('C', 'L'), -2
             ('C', 'K'), -3
             ('C', 'M'), -2
             ('C', 'F'), -2
             ('C', 'P'), -4
             ('C', 'S'), -1
             ('C', 'T'), -1
             ('C', 'W'), -5
             ('C', 'Y'), -3
             ('C', 'V'), -1
             ('C', 'B'), -2
             ('C', 'Z'), -3
             ('C', 'X'), -2
             ('C', '*'), -5
             ('Q', 'A'), -1
             ('Q', 'R'), 1
             ('Q', 'N'), 0
             ('Q', 'D'), 0
             ('Q', 'C'), -3
             ('Q', 'Q'), 6
             ('Q', 'E'), 2
             ('Q', 'G'), -2
             ('Q', 'H'), 1
             ('Q', 'I'), -2
             ('Q', 'L'), -2
             ('Q', 'K'), 1
             ('Q', 'M'), 0
             ('Q', 'F'), -4
             ('Q', 'P'), -1
             ('Q', 'S'), 0
             ('Q', 'T'), -1
             ('Q', 'W'), -2
             ('Q', 'Y'), -1
             ('Q', 'V'), -3
             ('Q', 'B'), 0
             ('Q', 'Z'), 4
             ('Q', 'X'), -1
             ('Q', '*'), -5
             ('E', 'A'), -1
             ('E', 'R'), 0
             ('E', 'N'), 0
             ('E', 'D'), 2
             ('E', 'C'), -3
             ('E', 'Q'), 2
             ('E', 'E'), 6
             ('E', 'G'), -2
             ('E', 'H'), 0
             ('E', 'I'), -3
             ('E', 'L'), -2
             ('E', 'K'), 1
             ('E', 'M'), -2
             ('E', 'F'), -3
             ('E', 'P'), 0
             ('E', 'S'), 0
             ('E', 'T'), -1
             ('E', 'W'), -3
             ('E', 'Y'), -2
             ('E', 'V'), -3
             ('E', 'B'), 1
             ('E', 'Z'), 4
             ('E', 'X'), -1
             ('E', '*'), -5
             ('G', 'A'), 0
             ('G', 'R'), -2
             ('G', 'N'), 0
             ('G', 'D'), -1
             ('G', 'C'), -3
             ('G', 'Q'), -2
             ('G', 'E'), -2
             ('G', 'G'), 7
             ('G', 'H'), -2
             ('G', 'I'), -4
             ('G', 'L'), -3
             ('G', 'K'), -2
             ('G', 'M'), -2
             ('G', 'F'), -3
             ('G', 'P'), -2
             ('G', 'S'), 0
             ('G', 'T'), -2
             ('G', 'W'), -2
             ('G', 'Y'), -3
             ('G', 'V'), -3
             ('G', 'B'), -1
             ('G', 'Z'), -2
             ('G', 'X'), -1
             ('G', '*'), -5
             ('H', 'A'), -2
             ('H', 'R'), 0
             ('H', 'N'), 1
             ('H', 'D'), 0
             ('H', 'C'), -3
             ('H', 'Q'), 1
             ('H', 'E'), 0
             ('H', 'G'), -2
             ('H', 'H'), 10
             ('H', 'I'), -3
             ('H', 'L'), -2
             ('H', 'K'), -1
             ('H', 'M'), 0
             ('H', 'F'), -2
             ('H', 'P'), -2
             ('H', 'S'), -1
             ('H', 'T'), -2
             ('H', 'W'), -3
             ('H', 'Y'), 2
             ('H', 'V'), -3
             ('H', 'B'), 0
             ('H', 'Z'), 0
             ('H', 'X'), -1
             ('H', '*'), -5
             ('I', 'A'), -1
             ('I', 'R'), -3
             ('I', 'N'), -2
             ('I', 'D'), -4
             ('I', 'C'), -3
             ('I', 'Q'), -2
             ('I', 'E'), -3
             ('I', 'G'), -4
             ('I', 'H'), -3
             ('I', 'I'), 5
             ('I', 'L'), 2
             ('I', 'K'), -3
             ('I', 'M'), 2
             ('I', 'F'), 0
             ('I', 'P'), -2
             ('I', 'S'), -2
             ('I', 'T'), -1
             ('I', 'W'), -2
             ('I', 'Y'), 0
             ('I', 'V'), 3
             ('I', 'B'), -3
             ('I', 'Z'), -3
             ('I', 'X'), -1
             ('I', '*'), -5
             ('L', 'A'), -1
             ('L', 'R'), -2
             ('L', 'N'), -3
             ('L', 'D'), -3
             ('L', 'C'), -2
             ('L', 'Q'), -2
             ('L', 'E'), -2
             ('L', 'G'), -3
             ('L', 'H'), -2
             ('L', 'I'), 2
             ('L', 'L'), 5
             ('L', 'K'), -3
             ('L', 'M'), 2
             ('L', 'F'), 1
             ('L', 'P'), -3
             ('L', 'S'), -3
             ('L', 'T'), -1
             ('L', 'W'), -2
             ('L', 'Y'), 0
             ('L', 'V'), 1
             ('L', 'B'), -3
             ('L', 'Z'), -2
             ('L', 'X'), -1
             ('L', '*'), -5
             ('K', 'A'), -1
             ('K', 'R'), 3
             ('K', 'N'), 0
             ('K', 'D'), 0
             ('K', 'C'), -3
             ('K', 'Q'), 1
             ('K', 'E'), 1
             ('K', 'G'), -2
             ('K', 'H'), -1
             ('K', 'I'), -3
             ('K', 'L'), -3
             ('K', 'K'), 5
             ('K', 'M'), -1
             ('K', 'F'), -3
             ('K', 'P'), -1
             ('K', 'S'), -1
             ('K', 'T'), -1
             ('K', 'W'), -2
             ('K', 'Y'), -1
             ('K', 'V'), -2
             ('K', 'B'), 0
             ('K', 'Z'), 1
             ('K', 'X'), -1
             ('K', '*'), -5
             ('M', 'A'), -1
             ('M', 'R'), -1
             ('M', 'N'), -2
             ('M', 'D'), -3
             ('M', 'C'), -2
             ('M', 'Q'), 0
             ('M', 'E'), -2
             ('M', 'G'), -2
             ('M', 'H'), 0
             ('M', 'I'), 2
             ('M', 'L'), 2
             ('M', 'K'), -1
             ('M', 'M'), 6
             ('M', 'F'), 0
             ('M', 'P'), -2
             ('M', 'S'), -2
             ('M', 'T'), -1
             ('M', 'W'), -2
             ('M', 'Y'), 0
             ('M', 'V'), 1
             ('M', 'B'), -2
             ('M', 'Z'), -1
             ('M', 'X'), -1
             ('M', '*'), -5
             ('F', 'A'), -2
             ('F', 'R'), -2
             ('F', 'N'), -2
             ('F', 'D'), -4
             ('F', 'C'), -2
             ('F', 'Q'), -4
             ('F', 'E'), -3
             ('F', 'G'), -3
             ('F', 'H'), -2
             ('F', 'I'), 0
             ('F', 'L'), 1
             ('F', 'K'), -3
             ('F', 'M'), 0
             ('F', 'F'), 8
             ('F', 'P'), -3
             ('F', 'S'), -2
             ('F', 'T'), -1
             ('F', 'W'), 1
             ('F', 'Y'), 3
             ('F', 'V'), 0
             ('F', 'B'), -3
             ('F', 'Z'), -3
             ('F', 'X'), -1
             ('F', '*'), -5
             ('P', 'A'), -1
             ('P', 'R'), -2
             ('P', 'N'), -2
             ('P', 'D'), -1
             ('P', 'C'), -4
             ('P', 'Q'), -1
             ('P', 'E'), 0
             ('P', 'G'), -2
             ('P', 'H'), -2
             ('P', 'I'), -2
             ('P', 'L'), -3
             ('P', 'K'), -1
             ('P', 'M'), -2
             ('P', 'F'), -3
             ('P', 'P'), 9
             ('P', 'S'), -1
             ('P', 'T'), -1
             ('P', 'W'), -3
             ('P', 'Y'), -3
             ('P', 'V'), -3
             ('P', 'B'), -2
             ('P', 'Z'), -1
             ('P', 'X'), -1
             ('P', '*'), -5
             ('S', 'A'), 1
             ('S', 'R'), -1
             ('S', 'N'), 1
             ('S', 'D'), 0
             ('S', 'C'), -1
             ('S', 'Q'), 0
             ('S', 'E'), 0
             ('S', 'G'), 0
             ('S', 'H'), -1
             ('S', 'I'), -2
             ('S', 'L'), -3
             ('S', 'K'), -1
             ('S', 'M'), -2
             ('S', 'F'), -2
             ('S', 'P'), -1
             ('S', 'S'), 4
             ('S', 'T'), 2
             ('S', 'W'), -4
             ('S', 'Y'), -2
             ('S', 'V'), -1
             ('S', 'B'), 0
             ('S', 'Z'), 0
             ('S', 'X'), 0
             ('S', '*'), -5
             ('T', 'A'), 0
             ('T', 'R'), -1
             ('T', 'N'), 0
             ('T', 'D'), -1
             ('T', 'C'), -1
             ('T', 'Q'), -1
             ('T', 'E'), -1
             ('T', 'G'), -2
             ('T', 'H'), -2
             ('T', 'I'), -1
             ('T', 'L'), -1
             ('T', 'K'), -1
             ('T', 'M'), -1
             ('T', 'F'), -1
             ('T', 'P'), -1
             ('T', 'S'), 2
             ('T', 'T'), 5
             ('T', 'W'), -3
             ('T', 'Y'), -1
             ('T', 'V'), 0
             ('T', 'B'), 0
             ('T', 'Z'), -1
             ('T', 'X'), 0
             ('T', '*'), -5
             ('W', 'A'), -2
             ('W', 'R'), -2
             ('W', 'N'), -4
             ('W', 'D'), -4
             ('W', 'C'), -5
             ('W', 'Q'), -2
             ('W', 'E'), -3
             ('W', 'G'), -2
             ('W', 'H'), -3
             ('W', 'I'), -2
             ('W', 'L'), -2
             ('W', 'K'), -2
             ('W', 'M'), -2
             ('W', 'F'), 1
             ('W', 'P'), -3
             ('W', 'S'), -4
             ('W', 'T'), -3
             ('W', 'W'), 15
             ('W', 'Y'), 3
             ('W', 'V'), -3
             ('W', 'B'), -4
             ('W', 'Z'), -2
             ('W', 'X'), -2
             ('W', '*'), -5
             ('Y', 'A'), -2
             ('Y', 'R'), -1
             ('Y', 'N'), -2
             ('Y', 'D'), -2
             ('Y', 'C'), -3
             ('Y', 'Q'), -1
             ('Y', 'E'), -2
             ('Y', 'G'), -3
             ('Y', 'H'), 2
             ('Y', 'I'), 0
             ('Y', 'L'), 0
             ('Y', 'K'), -1
             ('Y', 'M'), 0
             ('Y', 'F'), 3
             ('Y', 'P'), -3
             ('Y', 'S'), -2
             ('Y', 'T'), -1
             ('Y', 'W'), 3
             ('Y', 'Y'), 8
             ('Y', 'V'), -1
             ('Y', 'B'), -2
             ('Y', 'Z'), -2
             ('Y', 'X'), -1
             ('Y', '*'), -5
             ('V', 'A'), 0
             ('V', 'R'), -2
             ('V', 'N'), -3
             ('V', 'D'), -3
             ('V', 'C'), -1
             ('V', 'Q'), -3
             ('V', 'E'), -3
             ('V', 'G'), -3
             ('V', 'H'), -3
             ('V', 'I'), 3
             ('V', 'L'), 1
             ('V', 'K'), -2
             ('V', 'M'), 1
             ('V', 'F'), 0
             ('V', 'P'), -3
             ('V', 'S'), -1
             ('V', 'T'), 0
             ('V', 'W'), -3
             ('V', 'Y'), -1
             ('V', 'V'), 5
             ('V', 'B'), -3
             ('V', 'Z'), -3
             ('V', 'X'), -1
             ('V', '*'), -5
             ('B', 'A'), -1
             ('B', 'R'), -1
             ('B', 'N'), 4
             ('B', 'D'), 5
             ('B', 'C'), -2
             ('B', 'Q'), 0
             ('B', 'E'), 1
             ('B', 'G'), -1
             ('B', 'H'), 0
             ('B', 'I'), -3
             ('B', 'L'), -3
             ('B', 'K'), 0
             ('B', 'M'), -2
             ('B', 'F'), -3
             ('B', 'P'), -2
             ('B', 'S'), 0
             ('B', 'T'), 0
             ('B', 'W'), -4
             ('B', 'Y'), -2
             ('B', 'V'), -3
             ('B', 'B'), 4
             ('B', 'Z'), 2
             ('B', 'X'), -1
             ('B', '*'), -5
             ('Z', 'A'), -1
             ('Z', 'R'), 0
             ('Z', 'N'), 0
             ('Z', 'D'), 1
             ('Z', 'C'), -3
             ('Z', 'Q'), 4
             ('Z', 'E'), 4
             ('Z', 'G'), -2
             ('Z', 'H'), 0
             ('Z', 'I'), -3
             ('Z', 'L'), -2
             ('Z', 'K'), 1
             ('Z', 'M'), -1
             ('Z', 'F'), -3
             ('Z', 'P'), -1
             ('Z', 'S'), 0
             ('Z', 'T'), -1
             ('Z', 'W'), -2
             ('Z', 'Y'), -2
             ('Z', 'V'), -3
             ('Z', 'B'), 2
             ('Z', 'Z'), 4
             ('Z', 'X'), -1
             ('Z', '*'), -5
             ('X', 'A'), 0
             ('X', 'R'), -1
             ('X', 'N'), -1
             ('X', 'D'), -1
             ('X', 'C'), -2
             ('X', 'Q'), -1
             ('X', 'E'), -1
             ('X', 'G'), -1
             ('X', 'H'), -1
             ('X', 'I'), -1
             ('X', 'L'), -1
             ('X', 'K'), -1
             ('X', 'M'), -1
             ('X', 'F'), -1
             ('X', 'P'), -1
             ('X', 'S'), 0
             ('X', 'T'), 0
             ('X', 'W'), -2
             ('X', 'Y'), -1
             ('X', 'V'), -1
             ('X', 'B'), -1
             ('X', 'Z'), -1
             ('X', 'X'), -1
             ('X', '*'), -5
             ('*', 'A'), -5
             ('*', 'R'), -5
             ('*', 'N'), -5
             ('*', 'D'), -5
             ('*', 'C'), -5
             ('*', 'Q'), -5
             ('*', 'E'), -5
             ('*', 'G'), -5
             ('*', 'H'), -5
             ('*', 'I'), -5
             ('*', 'L'), -5
             ('*', 'K'), -5
             ('*', 'M'), -5
             ('*', 'F'), -5
             ('*', 'P'), -5
             ('*', 'S'), -5
             ('*', 'T'), -5
             ('*', 'W'), -5
             ('*', 'Y'), -5
             ('*', 'V'), -5
             ('*', 'B'), -5
             ('*', 'Z'), -5
             ('*', 'X'), -5
             ('*', '*'), 1 |]
          |> Map.ofArray
          BLOSUM50,
          [| ('A', 'A'), 5
             ('A', 'R'), -2
             ('A', 'N'), -1
             ('A', 'D'), -2
             ('A', 'C'), -1
             ('A', 'Q'), -1
             ('A', 'E'), -1
             ('A', 'G'), 0
             ('A', 'H'), -2
             ('A', 'I'), -1
             ('A', 'L'), -2
             ('A', 'K'), -1
             ('A', 'M'), -1
             ('A', 'F'), -3
             ('A', 'P'), -1
             ('A', 'S'), 1
             ('A', 'T'), 0
             ('A', 'W'), -3
             ('A', 'Y'), -2
             ('A', 'V'), 0
             ('A', 'B'), -2
             ('A', 'Z'), -1
             ('A', 'X'), -1
             ('A', '*'), -5
             ('R', 'A'), -2
             ('R', 'R'), 7
             ('R', 'N'), -1
             ('R', 'D'), -2
             ('R', 'C'), -4
             ('R', 'Q'), 1
             ('R', 'E'), 0
             ('R', 'G'), -3
             ('R', 'H'), 0
             ('R', 'I'), -4
             ('R', 'L'), -3
             ('R', 'K'), 3
             ('R', 'M'), -2
             ('R', 'F'), -3
             ('R', 'P'), -3
             ('R', 'S'), -1
             ('R', 'T'), -1
             ('R', 'W'), -3
             ('R', 'Y'), -1
             ('R', 'V'), -3
             ('R', 'B'), -1
             ('R', 'Z'), 0
             ('R', 'X'), -1
             ('R', '*'), -5
             ('N', 'A'), -1
             ('N', 'R'), -1
             ('N', 'N'), 7
             ('N', 'D'), 2
             ('N', 'C'), -2
             ('N', 'Q'), 0
             ('N', 'E'), 0
             ('N', 'G'), 0
             ('N', 'H'), 1
             ('N', 'I'), -3
             ('N', 'L'), -4
             ('N', 'K'), 0
             ('N', 'M'), -2
             ('N', 'F'), -4
             ('N', 'P'), -2
             ('N', 'S'), 1
             ('N', 'T'), 0
             ('N', 'W'), -4
             ('N', 'Y'), -2
             ('N', 'V'), -3
             ('N', 'B'), 4
             ('N', 'Z'), 0
             ('N', 'X'), -1
             ('N', '*'), -5
             ('D', 'A'), -2
             ('D', 'R'), -2
             ('D', 'N'), 2
             ('D', 'D'), 8
             ('D', 'C'), -4
             ('D', 'Q'), 0
             ('D', 'E'), 2
             ('D', 'G'), -1
             ('D', 'H'), -1
             ('D', 'I'), -4
             ('D', 'L'), -4
             ('D', 'K'), -1
             ('D', 'M'), -4
             ('D', 'F'), -5
             ('D', 'P'), -1
             ('D', 'S'), 0
             ('D', 'T'), -1
             ('D', 'W'), -5
             ('D', 'Y'), -3
             ('D', 'V'), -4
             ('D', 'B'), 5
             ('D', 'Z'), 1
             ('D', 'X'), -1
             ('D', '*'), -5
             ('C', 'A'), -1
             ('C', 'R'), -4
             ('C', 'N'), -2
             ('C', 'D'), -4
             ('C', 'C'), 13
             ('C', 'Q'), -3
             ('C', 'E'), -3
             ('C', 'G'), -3
             ('C', 'H'), -3
             ('C', 'I'), -2
             ('C', 'L'), -2
             ('C', 'K'), -3
             ('C', 'M'), -2
             ('C', 'F'), -2
             ('C', 'P'), -4
             ('C', 'S'), -1
             ('C', 'T'), -1
             ('C', 'W'), -5
             ('C', 'Y'), -3
             ('C', 'V'), -1
             ('C', 'B'), -3
             ('C', 'Z'), -3
             ('C', 'X'), -2
             ('C', '*'), -5
             ('Q', 'A'), -1
             ('Q', 'R'), 1
             ('Q', 'N'), 0
             ('Q', 'D'), 0
             ('Q', 'C'), -3
             ('Q', 'Q'), 7
             ('Q', 'E'), 2
             ('Q', 'G'), -2
             ('Q', 'H'), 1
             ('Q', 'I'), -3
             ('Q', 'L'), -2
             ('Q', 'K'), 2
             ('Q', 'M'), 0
             ('Q', 'F'), -4
             ('Q', 'P'), -1
             ('Q', 'S'), 0
             ('Q', 'T'), -1
             ('Q', 'W'), -1
             ('Q', 'Y'), -1
             ('Q', 'V'), -3
             ('Q', 'B'), 0
             ('Q', 'Z'), 4
             ('Q', 'X'), -1
             ('Q', '*'), -5
             ('E', 'A'), -1
             ('E', 'R'), 0
             ('E', 'N'), 0
             ('E', 'D'), 2
             ('E', 'C'), -3
             ('E', 'Q'), 2
             ('E', 'E'), 6
             ('E', 'G'), -3
             ('E', 'H'), 0
             ('E', 'I'), -4
             ('E', 'L'), -3
             ('E', 'K'), 1
             ('E', 'M'), -2
             ('E', 'F'), -3
             ('E', 'P'), -1
             ('E', 'S'), -1
             ('E', 'T'), -1
             ('E', 'W'), -3
             ('E', 'Y'), -2
             ('E', 'V'), -3
             ('E', 'B'), 1
             ('E', 'Z'), 5
             ('E', 'X'), -1
             ('E', '*'), -5
             ('G', 'A'), 0
             ('G', 'R'), -3
             ('G', 'N'), 0
             ('G', 'D'), -1
             ('G', 'C'), -3
             ('G', 'Q'), -2
             ('G', 'E'), -3
             ('G', 'G'), 8
             ('G', 'H'), -2
             ('G', 'I'), -4
             ('G', 'L'), -4
             ('G', 'K'), -2
             ('G', 'M'), -3
             ('G', 'F'), -4
             ('G', 'P'), -2
             ('G', 'S'), 0
             ('G', 'T'), -2
             ('G', 'W'), -3
             ('G', 'Y'), -3
             ('G', 'V'), -4
             ('G', 'B'), -1
             ('G', 'Z'), -2
             ('G', 'X'), -2
             ('G', '*'), -5
             ('H', 'A'), -2
             ('H', 'R'), 0
             ('H', 'N'), 1
             ('H', 'D'), -1
             ('H', 'C'), -3
             ('H', 'Q'), 1
             ('H', 'E'), 0
             ('H', 'G'), -2
             ('H', 'H'), 10
             ('H', 'I'), -4
             ('H', 'L'), -3
             ('H', 'K'), 0
             ('H', 'M'), -1
             ('H', 'F'), -1
             ('H', 'P'), -2
             ('H', 'S'), -1
             ('H', 'T'), -2
             ('H', 'W'), -3
             ('H', 'Y'), 2
             ('H', 'V'), -4
             ('H', 'B'), 0
             ('H', 'Z'), 0
             ('H', 'X'), -1
             ('H', '*'), -5
             ('I', 'A'), -1
             ('I', 'R'), -4
             ('I', 'N'), -3
             ('I', 'D'), -4
             ('I', 'C'), -2
             ('I', 'Q'), -3
             ('I', 'E'), -4
             ('I', 'G'), -4
             ('I', 'H'), -4
             ('I', 'I'), 5
             ('I', 'L'), 2
             ('I', 'K'), -3
             ('I', 'M'), 2
             ('I', 'F'), 0
             ('I', 'P'), -3
             ('I', 'S'), -3
             ('I', 'T'), -1
             ('I', 'W'), -3
             ('I', 'Y'), -1
             ('I', 'V'), 4
             ('I', 'B'), -4
             ('I', 'Z'), -3
             ('I', 'X'), -1
             ('I', '*'), -5
             ('L', 'A'), -2
             ('L', 'R'), -3
             ('L', 'N'), -4
             ('L', 'D'), -4
             ('L', 'C'), -2
             ('L', 'Q'), -2
             ('L', 'E'), -3
             ('L', 'G'), -4
             ('L', 'H'), -3
             ('L', 'I'), 2
             ('L', 'L'), 5
             ('L', 'K'), -3
             ('L', 'M'), 3
             ('L', 'F'), 1
             ('L', 'P'), -4
             ('L', 'S'), -3
             ('L', 'T'), -1
             ('L', 'W'), -2
             ('L', 'Y'), -1
             ('L', 'V'), 1
             ('L', 'B'), -4
             ('L', 'Z'), -3
             ('L', 'X'), -1
             ('L', '*'), -5
             ('K', 'A'), -1
             ('K', 'R'), 3
             ('K', 'N'), 0
             ('K', 'D'), -1
             ('K', 'C'), -3
             ('K', 'Q'), 2
             ('K', 'E'), 1
             ('K', 'G'), -2
             ('K', 'H'), 0
             ('K', 'I'), -3
             ('K', 'L'), -3
             ('K', 'K'), 6
             ('K', 'M'), -2
             ('K', 'F'), -4
             ('K', 'P'), -1
             ('K', 'S'), 0
             ('K', 'T'), -1
             ('K', 'W'), -3
             ('K', 'Y'), -2
             ('K', 'V'), -3
             ('K', 'B'), 0
             ('K', 'Z'), 1
             ('K', 'X'), -1
             ('K', '*'), -5
             ('M', 'A'), -1
             ('M', 'R'), -2
             ('M', 'N'), -2
             ('M', 'D'), -4
             ('M', 'C'), -2
             ('M', 'Q'), 0
             ('M', 'E'), -2
             ('M', 'G'), -3
             ('M', 'H'), -1
             ('M', 'I'), 2
             ('M', 'L'), 3
             ('M', 'K'), -2
             ('M', 'M'), 7
             ('M', 'F'), 0
             ('M', 'P'), -3
             ('M', 'S'), -2
             ('M', 'T'), -1
             ('M', 'W'), -1
             ('M', 'Y'), 0
             ('M', 'V'), 1
             ('M', 'B'), -3
             ('M', 'Z'), -1
             ('M', 'X'), -1
             ('M', '*'), -5
             ('F', 'A'), -3
             ('F', 'R'), -3
             ('F', 'N'), -4
             ('F', 'D'), -5
             ('F', 'C'), -2
             ('F', 'Q'), -4
             ('F', 'E'), -3
             ('F', 'G'), -4
             ('F', 'H'), -1
             ('F', 'I'), 0
             ('F', 'L'), 1
             ('F', 'K'), -4
             ('F', 'M'), 0
             ('F', 'F'), 8
             ('F', 'P'), -4
             ('F', 'S'), -3
             ('F', 'T'), -2
             ('F', 'W'), 1
             ('F', 'Y'), 4
             ('F', 'V'), -1
             ('F', 'B'), -4
             ('F', 'Z'), -4
             ('F', 'X'), -2
             ('F', '*'), -5
             ('P', 'A'), -1
             ('P', 'R'), -3
             ('P', 'N'), -2
             ('P', 'D'), -1
             ('P', 'C'), -4
             ('P', 'Q'), -1
             ('P', 'E'), -1
             ('P', 'G'), -2
             ('P', 'H'), -2
             ('P', 'I'), -3
             ('P', 'L'), -4
             ('P', 'K'), -1
             ('P', 'M'), -3
             ('P', 'F'), -4
             ('P', 'P'), 10
             ('P', 'S'), -1
             ('P', 'T'), -1
             ('P', 'W'), -4
             ('P', 'Y'), -3
             ('P', 'V'), -3
             ('P', 'B'), -2
             ('P', 'Z'), -1
             ('P', 'X'), -2
             ('P', '*'), -5
             ('S', 'A'), 1
             ('S', 'R'), -1
             ('S', 'N'), 1
             ('S', 'D'), 0
             ('S', 'C'), -1
             ('S', 'Q'), 0
             ('S', 'E'), -1
             ('S', 'G'), 0
             ('S', 'H'), -1
             ('S', 'I'), -3
             ('S', 'L'), -3
             ('S', 'K'), 0
             ('S', 'M'), -2
             ('S', 'F'), -3
             ('S', 'P'), -1
             ('S', 'S'), 5
             ('S', 'T'), 2
             ('S', 'W'), -4
             ('S', 'Y'), -2
             ('S', 'V'), -2
             ('S', 'B'), 0
             ('S', 'Z'), 0
             ('S', 'X'), -1
             ('S', '*'), -5
             ('T', 'A'), 0
             ('T', 'R'), -1
             ('T', 'N'), 0
             ('T', 'D'), -1
             ('T', 'C'), -1
             ('T', 'Q'), -1
             ('T', 'E'), -1
             ('T', 'G'), -2
             ('T', 'H'), -2
             ('T', 'I'), -1
             ('T', 'L'), -1
             ('T', 'K'), -1
             ('T', 'M'), -1
             ('T', 'F'), -2
             ('T', 'P'), -1
             ('T', 'S'), 2
             ('T', 'T'), 5
             ('T', 'W'), -3
             ('T', 'Y'), -2
             ('T', 'V'), 0
             ('T', 'B'), 0
             ('T', 'Z'), -1
             ('T', 'X'), 0
             ('T', '*'), -5
             ('W', 'A'), -3
             ('W', 'R'), -3
             ('W', 'N'), -4
             ('W', 'D'), -5
             ('W', 'C'), -5
             ('W', 'Q'), -1
             ('W', 'E'), -3
             ('W', 'G'), -3
             ('W', 'H'), -3
             ('W', 'I'), -3
             ('W', 'L'), -2
             ('W', 'K'), -3
             ('W', 'M'), -1
             ('W', 'F'), 1
             ('W', 'P'), -4
             ('W', 'S'), -4
             ('W', 'T'), -3
             ('W', 'W'), 15
             ('W', 'Y'), 2
             ('W', 'V'), -3
             ('W', 'B'), -5
             ('W', 'Z'), -2
             ('W', 'X'), -3
             ('W', '*'), -5
             ('Y', 'A'), -2
             ('Y', 'R'), -1
             ('Y', 'N'), -2
             ('Y', 'D'), -3
             ('Y', 'C'), -3
             ('Y', 'Q'), -1
             ('Y', 'E'), -2
             ('Y', 'G'), -3
             ('Y', 'H'), 2
             ('Y', 'I'), -1
             ('Y', 'L'), -1
             ('Y', 'K'), -2
             ('Y', 'M'), 0
             ('Y', 'F'), 4
             ('Y', 'P'), -3
             ('Y', 'S'), -2
             ('Y', 'T'), -2
             ('Y', 'W'), 2
             ('Y', 'Y'), 8
             ('Y', 'V'), -1
             ('Y', 'B'), -3
             ('Y', 'Z'), -2
             ('Y', 'X'), -1
             ('Y', '*'), -5
             ('V', 'A'), 0
             ('V', 'R'), -3
             ('V', 'N'), -3
             ('V', 'D'), -4
             ('V', 'C'), -1
             ('V', 'Q'), -3
             ('V', 'E'), -3
             ('V', 'G'), -4
             ('V', 'H'), -4
             ('V', 'I'), 4
             ('V', 'L'), 1
             ('V', 'K'), -3
             ('V', 'M'), 1
             ('V', 'F'), -1
             ('V', 'P'), -3
             ('V', 'S'), -2
             ('V', 'T'), 0
             ('V', 'W'), -3
             ('V', 'Y'), -1
             ('V', 'V'), 5
             ('V', 'B'), -4
             ('V', 'Z'), -3
             ('V', 'X'), -1
             ('V', '*'), -5
             ('B', 'A'), -2
             ('B', 'R'), -1
             ('B', 'N'), 4
             ('B', 'D'), 5
             ('B', 'C'), -3
             ('B', 'Q'), 0
             ('B', 'E'), 1
             ('B', 'G'), -1
             ('B', 'H'), 0
             ('B', 'I'), -4
             ('B', 'L'), -4
             ('B', 'K'), 0
             ('B', 'M'), -3
             ('B', 'F'), -4
             ('B', 'P'), -2
             ('B', 'S'), 0
             ('B', 'T'), 0
             ('B', 'W'), -5
             ('B', 'Y'), -3
             ('B', 'V'), -4
             ('B', 'B'), 5
             ('B', 'Z'), 2
             ('B', 'X'), -1
             ('B', '*'), -5
             ('Z', 'A'), -1
             ('Z', 'R'), 0
             ('Z', 'N'), 0
             ('Z', 'D'), 1
             ('Z', 'C'), -3
             ('Z', 'Q'), 4
             ('Z', 'E'), 5
             ('Z', 'G'), -2
             ('Z', 'H'), 0
             ('Z', 'I'), -3
             ('Z', 'L'), -3
             ('Z', 'K'), 1
             ('Z', 'M'), -1
             ('Z', 'F'), -4
             ('Z', 'P'), -1
             ('Z', 'S'), 0
             ('Z', 'T'), -1
             ('Z', 'W'), -2
             ('Z', 'Y'), -2
             ('Z', 'V'), -3
             ('Z', 'B'), 2
             ('Z', 'Z'), 5
             ('Z', 'X'), -1
             ('Z', '*'), -5
             ('X', 'A'), -1
             ('X', 'R'), -1
             ('X', 'N'), -1
             ('X', 'D'), -1
             ('X', 'C'), -2
             ('X', 'Q'), -1
             ('X', 'E'), -1
             ('X', 'G'), -2
             ('X', 'H'), -1
             ('X', 'I'), -1
             ('X', 'L'), -1
             ('X', 'K'), -1
             ('X', 'M'), -1
             ('X', 'F'), -2
             ('X', 'P'), -2
             ('X', 'S'), -1
             ('X', 'T'), 0
             ('X', 'W'), -3
             ('X', 'Y'), -1
             ('X', 'V'), -1
             ('X', 'B'), -1
             ('X', 'Z'), -1
             ('X', 'X'), -1
             ('X', '*'), -5
             ('*', 'A'), -5
             ('*', 'R'), -5
             ('*', 'N'), -5
             ('*', 'D'), -5
             ('*', 'C'), -5
             ('*', 'Q'), -5
             ('*', 'E'), -5
             ('*', 'G'), -5
             ('*', 'H'), -5
             ('*', 'I'), -5
             ('*', 'L'), -5
             ('*', 'K'), -5
             ('*', 'M'), -5
             ('*', 'F'), -5
             ('*', 'P'), -5
             ('*', 'S'), -5
             ('*', 'T'), -5
             ('*', 'W'), -5
             ('*', 'Y'), -5
             ('*', 'V'), -5
             ('*', 'B'), -5
             ('*', 'Z'), -5
             ('*', 'X'), -5
             ('*', '*'), 1 |]
          |> Map.ofArray
          BLOSUM62,
          [| ('A', 'A'), 4
             ('A', 'R'), -1
             ('A', 'N'), -2
             ('A', 'D'), -2
             ('A', 'C'), 0
             ('A', 'Q'), -1
             ('A', 'E'), -1
             ('A', 'G'), 0
             ('A', 'H'), -2
             ('A', 'I'), -1
             ('A', 'L'), -1
             ('A', 'K'), -1
             ('A', 'M'), -1
             ('A', 'F'), -2
             ('A', 'P'), -1
             ('A', 'S'), 1
             ('A', 'T'), 0
             ('A', 'W'), -3
             ('A', 'Y'), -2
             ('A', 'V'), 0
             ('A', 'B'), -2
             ('A', 'Z'), -1
             ('A', 'X'), 0
             ('A', '*'), -4
             ('R', 'A'), -1
             ('R', 'R'), 5
             ('R', 'N'), 0
             ('R', 'D'), -2
             ('R', 'C'), -3
             ('R', 'Q'), 1
             ('R', 'E'), 0
             ('R', 'G'), -2
             ('R', 'H'), 0
             ('R', 'I'), -3
             ('R', 'L'), -2
             ('R', 'K'), 2
             ('R', 'M'), -1
             ('R', 'F'), -3
             ('R', 'P'), -2
             ('R', 'S'), -1
             ('R', 'T'), -1
             ('R', 'W'), -3
             ('R', 'Y'), -2
             ('R', 'V'), -3
             ('R', 'B'), -1
             ('R', 'Z'), 0
             ('R', 'X'), -1
             ('R', '*'), -4
             ('N', 'A'), -2
             ('N', 'R'), 0
             ('N', 'N'), 6
             ('N', 'D'), 1
             ('N', 'C'), -3
             ('N', 'Q'), 0
             ('N', 'E'), 0
             ('N', 'G'), 0
             ('N', 'H'), 1
             ('N', 'I'), -3
             ('N', 'L'), -3
             ('N', 'K'), 0
             ('N', 'M'), -2
             ('N', 'F'), -3
             ('N', 'P'), -2
             ('N', 'S'), 1
             ('N', 'T'), 0
             ('N', 'W'), -4
             ('N', 'Y'), -2
             ('N', 'V'), -3
             ('N', 'B'), 3
             ('N', 'Z'), 0
             ('N', 'X'), -1
             ('N', '*'), -4
             ('D', 'A'), -2
             ('D', 'R'), -2
             ('D', 'N'), 1
             ('D', 'D'), 6
             ('D', 'C'), -3
             ('D', 'Q'), 0
             ('D', 'E'), 2
             ('D', 'G'), -1
             ('D', 'H'), -1
             ('D', 'I'), -3
             ('D', 'L'), -4
             ('D', 'K'), -1
             ('D', 'M'), -3
             ('D', 'F'), -3
             ('D', 'P'), -1
             ('D', 'S'), 0
             ('D', 'T'), -1
             ('D', 'W'), -4
             ('D', 'Y'), -3
             ('D', 'V'), -3
             ('D', 'B'), 4
             ('D', 'Z'), 1
             ('D', 'X'), -1
             ('D', '*'), -4
             ('C', 'A'), 0
             ('C', 'R'), -3
             ('C', 'N'), -3
             ('C', 'D'), -3
             ('C', 'C'), 9
             ('C', 'Q'), -3
             ('C', 'E'), -4
             ('C', 'G'), -3
             ('C', 'H'), -3
             ('C', 'I'), -1
             ('C', 'L'), -1
             ('C', 'K'), -3
             ('C', 'M'), -1
             ('C', 'F'), -2
             ('C', 'P'), -3
             ('C', 'S'), -1
             ('C', 'T'), -1
             ('C', 'W'), -2
             ('C', 'Y'), -2
             ('C', 'V'), -1
             ('C', 'B'), -3
             ('C', 'Z'), -3
             ('C', 'X'), -2
             ('C', '*'), -4
             ('Q', 'A'), -1
             ('Q', 'R'), 1
             ('Q', 'N'), 0
             ('Q', 'D'), 0
             ('Q', 'C'), -3
             ('Q', 'Q'), 5
             ('Q', 'E'), 2
             ('Q', 'G'), -2
             ('Q', 'H'), 0
             ('Q', 'I'), -3
             ('Q', 'L'), -2
             ('Q', 'K'), 1
             ('Q', 'M'), 0
             ('Q', 'F'), -3
             ('Q', 'P'), -1
             ('Q', 'S'), 0
             ('Q', 'T'), -1
             ('Q', 'W'), -2
             ('Q', 'Y'), -1
             ('Q', 'V'), -2
             ('Q', 'B'), 0
             ('Q', 'Z'), 3
             ('Q', 'X'), -1
             ('Q', '*'), -4
             ('E', 'A'), -1
             ('E', 'R'), 0
             ('E', 'N'), 0
             ('E', 'D'), 2
             ('E', 'C'), -4
             ('E', 'Q'), 2
             ('E', 'E'), 5
             ('E', 'G'), -2
             ('E', 'H'), 0
             ('E', 'I'), -3
             ('E', 'L'), -3
             ('E', 'K'), 1
             ('E', 'M'), -2
             ('E', 'F'), -3
             ('E', 'P'), -1
             ('E', 'S'), 0
             ('E', 'T'), -1
             ('E', 'W'), -3
             ('E', 'Y'), -2
             ('E', 'V'), -2
             ('E', 'B'), 1
             ('E', 'Z'), 4
             ('E', 'X'), -1
             ('E', '*'), -4
             ('G', 'A'), 0
             ('G', 'R'), -2
             ('G', 'N'), 0
             ('G', 'D'), -1
             ('G', 'C'), -3
             ('G', 'Q'), -2
             ('G', 'E'), -2
             ('G', 'G'), 6
             ('G', 'H'), -2
             ('G', 'I'), -4
             ('G', 'L'), -4
             ('G', 'K'), -2
             ('G', 'M'), -3
             ('G', 'F'), -3
             ('G', 'P'), -2
             ('G', 'S'), 0
             ('G', 'T'), -2
             ('G', 'W'), -2
             ('G', 'Y'), -3
             ('G', 'V'), -3
             ('G', 'B'), -1
             ('G', 'Z'), -2
             ('G', 'X'), -1
             ('G', '*'), -4
             ('H', 'A'), -2
             ('H', 'R'), 0
             ('H', 'N'), 1
             ('H', 'D'), -1
             ('H', 'C'), -3
             ('H', 'Q'), 0
             ('H', 'E'), 0
             ('H', 'G'), -2
             ('H', 'H'), 8
             ('H', 'I'), -3
             ('H', 'L'), -3
             ('H', 'K'), -1
             ('H', 'M'), -2
             ('H', 'F'), -1
             ('H', 'P'), -2
             ('H', 'S'), -1
             ('H', 'T'), -2
             ('H', 'W'), -2
             ('H', 'Y'), 2
             ('H', 'V'), -3
             ('H', 'B'), 0
             ('H', 'Z'), 0
             ('H', 'X'), -1
             ('H', '*'), -4
             ('I', 'A'), -1
             ('I', 'R'), -3
             ('I', 'N'), -3
             ('I', 'D'), -3
             ('I', 'C'), -1
             ('I', 'Q'), -3
             ('I', 'E'), -3
             ('I', 'G'), -4
             ('I', 'H'), -3
             ('I', 'I'), 4
             ('I', 'L'), 2
             ('I', 'K'), -3
             ('I', 'M'), 1
             ('I', 'F'), 0
             ('I', 'P'), -3
             ('I', 'S'), -2
             ('I', 'T'), -1
             ('I', 'W'), -3
             ('I', 'Y'), -1
             ('I', 'V'), 3
             ('I', 'B'), -3
             ('I', 'Z'), -3
             ('I', 'X'), -1
             ('I', '*'), -4
             ('L', 'A'), -1
             ('L', 'R'), -2
             ('L', 'N'), -3
             ('L', 'D'), -4
             ('L', 'C'), -1
             ('L', 'Q'), -2
             ('L', 'E'), -3
             ('L', 'G'), -4
             ('L', 'H'), -3
             ('L', 'I'), 2
             ('L', 'L'), 4
             ('L', 'K'), -2
             ('L', 'M'), 2
             ('L', 'F'), 0
             ('L', 'P'), -3
             ('L', 'S'), -2
             ('L', 'T'), -1
             ('L', 'W'), -2
             ('L', 'Y'), -1
             ('L', 'V'), 1
             ('L', 'B'), -4
             ('L', 'Z'), -3
             ('L', 'X'), -1
             ('L', '*'), -4
             ('K', 'A'), -1
             ('K', 'R'), 2
             ('K', 'N'), 0
             ('K', 'D'), -1
             ('K', 'C'), -3
             ('K', 'Q'), 1
             ('K', 'E'), 1
             ('K', 'G'), -2
             ('K', 'H'), -1
             ('K', 'I'), -3
             ('K', 'L'), -2
             ('K', 'K'), 5
             ('K', 'M'), -1
             ('K', 'F'), -3
             ('K', 'P'), -1
             ('K', 'S'), 0
             ('K', 'T'), -1
             ('K', 'W'), -3
             ('K', 'Y'), -2
             ('K', 'V'), -2
             ('K', 'B'), 0
             ('K', 'Z'), 1
             ('K', 'X'), -1
             ('K', '*'), -4
             ('M', 'A'), -1
             ('M', 'R'), -1
             ('M', 'N'), -2
             ('M', 'D'), -3
             ('M', 'C'), -1
             ('M', 'Q'), 0
             ('M', 'E'), -2
             ('M', 'G'), -3
             ('M', 'H'), -2
             ('M', 'I'), 1
             ('M', 'L'), 2
             ('M', 'K'), -1
             ('M', 'M'), 5
             ('M', 'F'), 0
             ('M', 'P'), -2
             ('M', 'S'), -1
             ('M', 'T'), -1
             ('M', 'W'), -1
             ('M', 'Y'), -1
             ('M', 'V'), 1
             ('M', 'B'), -3
             ('M', 'Z'), -1
             ('M', 'X'), -1
             ('M', '*'), -4
             ('F', 'A'), -2
             ('F', 'R'), -3
             ('F', 'N'), -3
             ('F', 'D'), -3
             ('F', 'C'), -2
             ('F', 'Q'), -3
             ('F', 'E'), -3
             ('F', 'G'), -3
             ('F', 'H'), -1
             ('F', 'I'), 0
             ('F', 'L'), 0
             ('F', 'K'), -3
             ('F', 'M'), 0
             ('F', 'F'), 6
             ('F', 'P'), -4
             ('F', 'S'), -2
             ('F', 'T'), -2
             ('F', 'W'), 1
             ('F', 'Y'), 3
             ('F', 'V'), -1
             ('F', 'B'), -3
             ('F', 'Z'), -3
             ('F', 'X'), -1
             ('F', '*'), -4
             ('P', 'A'), -1
             ('P', 'R'), -2
             ('P', 'N'), -2
             ('P', 'D'), -1
             ('P', 'C'), -3
             ('P', 'Q'), -1
             ('P', 'E'), -1
             ('P', 'G'), -2
             ('P', 'H'), -2
             ('P', 'I'), -3
             ('P', 'L'), -3
             ('P', 'K'), -1
             ('P', 'M'), -2
             ('P', 'F'), -4
             ('P', 'P'), 7
             ('P', 'S'), -1
             ('P', 'T'), -1
             ('P', 'W'), -4
             ('P', 'Y'), -3
             ('P', 'V'), -2
             ('P', 'B'), -2
             ('P', 'Z'), -1
             ('P', 'X'), -2
             ('P', '*'), -4
             ('S', 'A'), 1
             ('S', 'R'), -1
             ('S', 'N'), 1
             ('S', 'D'), 0
             ('S', 'C'), -1
             ('S', 'Q'), 0
             ('S', 'E'), 0
             ('S', 'G'), 0
             ('S', 'H'), -1
             ('S', 'I'), -2
             ('S', 'L'), -2
             ('S', 'K'), 0
             ('S', 'M'), -1
             ('S', 'F'), -2
             ('S', 'P'), -1
             ('S', 'S'), 4
             ('S', 'T'), 1
             ('S', 'W'), -3
             ('S', 'Y'), -2
             ('S', 'V'), -2
             ('S', 'B'), 0
             ('S', 'Z'), 0
             ('S', 'X'), 0
             ('S', '*'), -4
             ('T', 'A'), 0
             ('T', 'R'), -1
             ('T', 'N'), 0
             ('T', 'D'), -1
             ('T', 'C'), -1
             ('T', 'Q'), -1
             ('T', 'E'), -1
             ('T', 'G'), -2
             ('T', 'H'), -2
             ('T', 'I'), -1
             ('T', 'L'), -1
             ('T', 'K'), -1
             ('T', 'M'), -1
             ('T', 'F'), -2
             ('T', 'P'), -1
             ('T', 'S'), 1
             ('T', 'T'), 5
             ('T', 'W'), -2
             ('T', 'Y'), -2
             ('T', 'V'), 0
             ('T', 'B'), -1
             ('T', 'Z'), -1
             ('T', 'X'), 0
             ('T', '*'), -4
             ('W', 'A'), -3
             ('W', 'R'), -3
             ('W', 'N'), -4
             ('W', 'D'), -4
             ('W', 'C'), -2
             ('W', 'Q'), -2
             ('W', 'E'), -3
             ('W', 'G'), -2
             ('W', 'H'), -2
             ('W', 'I'), -3
             ('W', 'L'), -2
             ('W', 'K'), -3
             ('W', 'M'), -1
             ('W', 'F'), 1
             ('W', 'P'), -4
             ('W', 'S'), -3
             ('W', 'T'), -2
             ('W', 'W'), 11
             ('W', 'Y'), 2
             ('W', 'V'), -3
             ('W', 'B'), -4
             ('W', 'Z'), -3
             ('W', 'X'), -2
             ('W', '*'), -4
             ('Y', 'A'), -2
             ('Y', 'R'), -2
             ('Y', 'N'), -2
             ('Y', 'D'), -3
             ('Y', 'C'), -2
             ('Y', 'Q'), -1
             ('Y', 'E'), -2
             ('Y', 'G'), -3
             ('Y', 'H'), 2
             ('Y', 'I'), -1
             ('Y', 'L'), -1
             ('Y', 'K'), -2
             ('Y', 'M'), -1
             ('Y', 'F'), 3
             ('Y', 'P'), -3
             ('Y', 'S'), -2
             ('Y', 'T'), -2
             ('Y', 'W'), 2
             ('Y', 'Y'), 7
             ('Y', 'V'), -1
             ('Y', 'B'), -3
             ('Y', 'Z'), -2
             ('Y', 'X'), -1
             ('Y', '*'), -4
             ('V', 'A'), 0
             ('V', 'R'), -3
             ('V', 'N'), -3
             ('V', 'D'), -3
             ('V', 'C'), -1
             ('V', 'Q'), -2
             ('V', 'E'), -2
             ('V', 'G'), -3
             ('V', 'H'), -3
             ('V', 'I'), 3
             ('V', 'L'), 1
             ('V', 'K'), -2
             ('V', 'M'), 1
             ('V', 'F'), -1
             ('V', 'P'), -2
             ('V', 'S'), -2
             ('V', 'T'), 0
             ('V', 'W'), -3
             ('V', 'Y'), -1
             ('V', 'V'), 4
             ('V', 'B'), -3
             ('V', 'Z'), -2
             ('V', 'X'), -1
             ('V', '*'), -4
             ('B', 'A'), -2
             ('B', 'R'), -1
             ('B', 'N'), 3
             ('B', 'D'), 4
             ('B', 'C'), -3
             ('B', 'Q'), 0
             ('B', 'E'), 1
             ('B', 'G'), -1
             ('B', 'H'), 0
             ('B', 'I'), -3
             ('B', 'L'), -4
             ('B', 'K'), 0
             ('B', 'M'), -3
             ('B', 'F'), -3
             ('B', 'P'), -2
             ('B', 'S'), 0
             ('B', 'T'), -1
             ('B', 'W'), -4
             ('B', 'Y'), -3
             ('B', 'V'), -3
             ('B', 'B'), 4
             ('B', 'Z'), 1
             ('B', 'X'), -1
             ('B', '*'), -4
             ('Z', 'A'), -1
             ('Z', 'R'), 0
             ('Z', 'N'), 0
             ('Z', 'D'), 1
             ('Z', 'C'), -3
             ('Z', 'Q'), 3
             ('Z', 'E'), 4
             ('Z', 'G'), -2
             ('Z', 'H'), 0
             ('Z', 'I'), -3
             ('Z', 'L'), -3
             ('Z', 'K'), 1
             ('Z', 'M'), -1
             ('Z', 'F'), -3
             ('Z', 'P'), -1
             ('Z', 'S'), 0
             ('Z', 'T'), -1
             ('Z', 'W'), -3
             ('Z', 'Y'), -2
             ('Z', 'V'), -2
             ('Z', 'B'), 1
             ('Z', 'Z'), 4
             ('Z', 'X'), -1
             ('Z', '*'), -4
             ('X', 'A'), 0
             ('X', 'R'), -1
             ('X', 'N'), -1
             ('X', 'D'), -1
             ('X', 'C'), -2
             ('X', 'Q'), -1
             ('X', 'E'), -1
             ('X', 'G'), -1
             ('X', 'H'), -1
             ('X', 'I'), -1
             ('X', 'L'), -1
             ('X', 'K'), -1
             ('X', 'M'), -1
             ('X', 'F'), -1
             ('X', 'P'), -2
             ('X', 'S'), 0
             ('X', 'T'), 0
             ('X', 'W'), -2
             ('X', 'Y'), -1
             ('X', 'V'), -1
             ('X', 'B'), -1
             ('X', 'Z'), -1
             ('X', 'X'), -1
             ('X', '*'), -4
             ('*', 'A'), -4
             ('*', 'R'), -4
             ('*', 'N'), -4
             ('*', 'D'), -4
             ('*', 'C'), -4
             ('*', 'Q'), -4
             ('*', 'E'), -4
             ('*', 'G'), -4
             ('*', 'H'), -4
             ('*', 'I'), -4
             ('*', 'L'), -4
             ('*', 'K'), -4
             ('*', 'M'), -4
             ('*', 'F'), -4
             ('*', 'P'), -4
             ('*', 'S'), -4
             ('*', 'T'), -4
             ('*', 'W'), -4
             ('*', 'Y'), -4
             ('*', 'V'), -4
             ('*', 'B'), -4
             ('*', 'Z'), -4
             ('*', 'X'), -4
             ('*', '*'), 1 |]
          |> Map.ofArray
          BLOSUM80,
          [| ('A', 'A'), 7
             ('A', 'R'), -3
             ('A', 'N'), -3
             ('A', 'D'), -3
             ('A', 'C'), -1
             ('A', 'Q'), -2
             ('A', 'E'), -2
             ('A', 'G'), 0
             ('A', 'H'), -3
             ('A', 'I'), -3
             ('A', 'L'), -3
             ('A', 'K'), -1
             ('A', 'M'), -2
             ('A', 'F'), -4
             ('A', 'P'), -1
             ('A', 'S'), 2
             ('A', 'T'), 0
             ('A', 'W'), -5
             ('A', 'Y'), -4
             ('A', 'V'), -1
             ('A', 'B'), -3
             ('A', 'Z'), -2
             ('A', 'X'), -1
             ('A', '*'), -8
             ('R', 'A'), -3
             ('R', 'R'), 9
             ('R', 'N'), -1
             ('R', 'D'), -3
             ('R', 'C'), -6
             ('R', 'Q'), 1
             ('R', 'E'), -1
             ('R', 'G'), -4
             ('R', 'H'), 0
             ('R', 'I'), -5
             ('R', 'L'), -4
             ('R', 'K'), 3
             ('R', 'M'), -3
             ('R', 'F'), -5
             ('R', 'P'), -3
             ('R', 'S'), -2
             ('R', 'T'), -2
             ('R', 'W'), -5
             ('R', 'Y'), -4
             ('R', 'V'), -4
             ('R', 'B'), -2
             ('R', 'Z'), 0
             ('R', 'X'), -2
             ('R', '*'), -8
             ('N', 'A'), -3
             ('N', 'R'), -1
             ('N', 'N'), 9
             ('N', 'D'), 2
             ('N', 'C'), -5
             ('N', 'Q'), 0
             ('N', 'E'), -1
             ('N', 'G'), -1
             ('N', 'H'), 1
             ('N', 'I'), -6
             ('N', 'L'), -6
             ('N', 'K'), 0
             ('N', 'M'), -4
             ('N', 'F'), -6
             ('N', 'P'), -4
             ('N', 'S'), 1
             ('N', 'T'), 0
             ('N', 'W'), -7
             ('N', 'Y'), -4
             ('N', 'V'), -5
             ('N', 'B'), 5
             ('N', 'Z'), -1
             ('N', 'X'), -2
             ('N', '*'), -8
             ('D', 'A'), -3
             ('D', 'R'), -3
             ('D', 'N'), 2
             ('D', 'D'), 10
             ('D', 'C'), -7
             ('D', 'Q'), -1
             ('D', 'E'), 2
             ('D', 'G'), -3
             ('D', 'H'), -2
             ('D', 'I'), -7
             ('D', 'L'), -7
             ('D', 'K'), -2
             ('D', 'M'), -6
             ('D', 'F'), -6
             ('D', 'P'), -3
             ('D', 'S'), -1
             ('D', 'T'), -2
             ('D', 'W'), -8
             ('D', 'Y'), -6
             ('D', 'V'), -6
             ('D', 'B'), 6
             ('D', 'Z'), 1
             ('D', 'X'), -3
             ('D', '*'), -8
             ('C', 'A'), -1
             ('C', 'R'), -6
             ('C', 'N'), -5
             ('C', 'D'), -7
             ('C', 'C'), 13
             ('C', 'Q'), -5
             ('C', 'E'), -7
             ('C', 'G'), -6
             ('C', 'H'), -7
             ('C', 'I'), -2
             ('C', 'L'), -3
             ('C', 'K'), -6
             ('C', 'M'), -3
             ('C', 'F'), -4
             ('C', 'P'), -6
             ('C', 'S'), -2
             ('C', 'T'), -2
             ('C', 'W'), -5
             ('C', 'Y'), -5
             ('C', 'V'), -2
             ('C', 'B'), -6
             ('C', 'Z'), -7
             ('C', 'X'), -4
             ('C', '*'), -8
             ('Q', 'A'), -2
             ('Q', 'R'), 1
             ('Q', 'N'), 0
             ('Q', 'D'), -1
             ('Q', 'C'), -5
             ('Q', 'Q'), 9
             ('Q', 'E'), 3
             ('Q', 'G'), -4
             ('Q', 'H'), 1
             ('Q', 'I'), -5
             ('Q', 'L'), -4
             ('Q', 'K'), 2
             ('Q', 'M'), -1
             ('Q', 'F'), -5
             ('Q', 'P'), -3
             ('Q', 'S'), -1
             ('Q', 'T'), -1
             ('Q', 'W'), -4
             ('Q', 'Y'), -3
             ('Q', 'V'), -4
             ('Q', 'B'), -1
             ('Q', 'Z'), 5
             ('Q', 'X'), -2
             ('Q', '*'), -8
             ('E', 'A'), -2
             ('E', 'R'), -1
             ('E', 'N'), -1
             ('E', 'D'), 2
             ('E', 'C'), -7
             ('E', 'Q'), 3
             ('E', 'E'), 8
             ('E', 'G'), -4
             ('E', 'H'), 0
             ('E', 'I'), -6
             ('E', 'L'), -6
             ('E', 'K'), 1
             ('E', 'M'), -4
             ('E', 'F'), -6
             ('E', 'P'), -2
             ('E', 'S'), -1
             ('E', 'T'), -2
             ('E', 'W'), -6
             ('E', 'Y'), -5
             ('E', 'V'), -4
             ('E', 'B'), 1
             ('E', 'Z'), 6
             ('E', 'X'), -2
             ('E', '*'), -8
             ('G', 'A'), 0
             ('G', 'R'), -4
             ('G', 'N'), -1
             ('G', 'D'), -3
             ('G', 'C'), -6
             ('G', 'Q'), -4
             ('G', 'E'), -4
             ('G', 'G'), 9
             ('G', 'H'), -4
             ('G', 'I'), -7
             ('G', 'L'), -7
             ('G', 'K'), -3
             ('G', 'M'), -5
             ('G', 'F'), -6
             ('G', 'P'), -5
             ('G', 'S'), -1
             ('G', 'T'), -3
             ('G', 'W'), -6
             ('G', 'Y'), -6
             ('G', 'V'), -6
             ('G', 'B'), -2
             ('G', 'Z'), -4
             ('G', 'X'), -3
             ('G', '*'), -8
             ('H', 'A'), -3
             ('H', 'R'), 0
             ('H', 'N'), 1
             ('H', 'D'), -2
             ('H', 'C'), -7
             ('H', 'Q'), 1
             ('H', 'E'), 0
             ('H', 'G'), -4
             ('H', 'H'), 12
             ('H', 'I'), -6
             ('H', 'L'), -5
             ('H', 'K'), -1
             ('H', 'M'), -4
             ('H', 'F'), -2
             ('H', 'P'), -4
             ('H', 'S'), -2
             ('H', 'T'), -3
             ('H', 'W'), -4
             ('H', 'Y'), 3
             ('H', 'V'), -5
             ('H', 'B'), -1
             ('H', 'Z'), 0
             ('H', 'X'), -2
             ('H', '*'), -8
             ('I', 'A'), -3
             ('I', 'R'), -5
             ('I', 'N'), -6
             ('I', 'D'), -7
             ('I', 'C'), -2
             ('I', 'Q'), -5
             ('I', 'E'), -6
             ('I', 'G'), -7
             ('I', 'H'), -6
             ('I', 'I'), 7
             ('I', 'L'), 2
             ('I', 'K'), -5
             ('I', 'M'), 2
             ('I', 'F'), -1
             ('I', 'P'), -5
             ('I', 'S'), -4
             ('I', 'T'), -2
             ('I', 'W'), -5
             ('I', 'Y'), -3
             ('I', 'V'), 4
             ('I', 'B'), -6
             ('I', 'Z'), -6
             ('I', 'X'), -2
             ('I', '*'), -8
             ('L', 'A'), -3
             ('L', 'R'), -4
             ('L', 'N'), -6
             ('L', 'D'), -7
             ('L', 'C'), -3
             ('L', 'Q'), -4
             ('L', 'E'), -6
             ('L', 'G'), -7
             ('L', 'H'), -5
             ('L', 'I'), 2
             ('L', 'L'), 6
             ('L', 'K'), -4
             ('L', 'M'), 3
             ('L', 'F'), 0
             ('L', 'P'), -5
             ('L', 'S'), -4
             ('L', 'T'), -3
             ('L', 'W'), -4
             ('L', 'Y'), -2
             ('L', 'V'), 1
             ('L', 'B'), -7
             ('L', 'Z'), -5
             ('L', 'X'), -2
             ('L', '*'), -8
             ('K', 'A'), -1
             ('K', 'R'), 3
             ('K', 'N'), 0
             ('K', 'D'), -2
             ('K', 'C'), -6
             ('K', 'Q'), 2
             ('K', 'E'), 1
             ('K', 'G'), -3
             ('K', 'H'), -1
             ('K', 'I'), -5
             ('K', 'L'), -4
             ('K', 'K'), 8
             ('K', 'M'), -3
             ('K', 'F'), -5
             ('K', 'P'), -2
             ('K', 'S'), -1
             ('K', 'T'), -1
             ('K', 'W'), -6
             ('K', 'Y'), -4
             ('K', 'V'), -4
             ('K', 'B'), -1
             ('K', 'Z'), 1
             ('K', 'X'), -2
             ('K', '*'), -8
             ('M', 'A'), -2
             ('M', 'R'), -3
             ('M', 'N'), -4
             ('M', 'D'), -6
             ('M', 'C'), -3
             ('M', 'Q'), -1
             ('M', 'E'), -4
             ('M', 'G'), -5
             ('M', 'H'), -4
             ('M', 'I'), 2
             ('M', 'L'), 3
             ('M', 'K'), -3
             ('M', 'M'), 9
             ('M', 'F'), 0
             ('M', 'P'), -4
             ('M', 'S'), -3
             ('M', 'T'), -1
             ('M', 'W'), -3
             ('M', 'Y'), -3
             ('M', 'V'), 1
             ('M', 'B'), -5
             ('M', 'Z'), -3
             ('M', 'X'), -2
             ('M', '*'), -8
             ('F', 'A'), -4
             ('F', 'R'), -5
             ('F', 'N'), -6
             ('F', 'D'), -6
             ('F', 'C'), -4
             ('F', 'Q'), -5
             ('F', 'E'), -6
             ('F', 'G'), -6
             ('F', 'H'), -2
             ('F', 'I'), -1
             ('F', 'L'), 0
             ('F', 'K'), -5
             ('F', 'M'), 0
             ('F', 'F'), 10
             ('F', 'P'), -6
             ('F', 'S'), -4
             ('F', 'T'), -4
             ('F', 'W'), 0
             ('F', 'Y'), 4
             ('F', 'V'), -2
             ('F', 'B'), -6
             ('F', 'Z'), -6
             ('F', 'X'), -3
             ('F', '*'), -8
             ('P', 'A'), -1
             ('P', 'R'), -3
             ('P', 'N'), -4
             ('P', 'D'), -3
             ('P', 'C'), -6
             ('P', 'Q'), -3
             ('P', 'E'), -2
             ('P', 'G'), -5
             ('P', 'H'), -4
             ('P', 'I'), -5
             ('P', 'L'), -5
             ('P', 'K'), -2
             ('P', 'M'), -4
             ('P', 'F'), -6
             ('P', 'P'), 12
             ('P', 'S'), -2
             ('P', 'T'), -3
             ('P', 'W'), -7
             ('P', 'Y'), -6
             ('P', 'V'), -4
             ('P', 'B'), -4
             ('P', 'Z'), -2
             ('P', 'X'), -3
             ('P', '*'), -8
             ('S', 'A'), 2
             ('S', 'R'), -2
             ('S', 'N'), 1
             ('S', 'D'), -1
             ('S', 'C'), -2
             ('S', 'Q'), -1
             ('S', 'E'), -1
             ('S', 'G'), -1
             ('S', 'H'), -2
             ('S', 'I'), -4
             ('S', 'L'), -4
             ('S', 'K'), -1
             ('S', 'M'), -3
             ('S', 'F'), -4
             ('S', 'P'), -2
             ('S', 'S'), 7
             ('S', 'T'), 2
             ('S', 'W'), -6
             ('S', 'Y'), -3
             ('S', 'V'), -3
             ('S', 'B'), 0
             ('S', 'Z'), -1
             ('S', 'X'), -1
             ('S', '*'), -8
             ('T', 'A'), 0
             ('T', 'R'), -2
             ('T', 'N'), 0
             ('T', 'D'), -2
             ('T', 'C'), -2
             ('T', 'Q'), -1
             ('T', 'E'), -2
             ('T', 'G'), -3
             ('T', 'H'), -3
             ('T', 'I'), -2
             ('T', 'L'), -3
             ('T', 'K'), -1
             ('T', 'M'), -1
             ('T', 'F'), -4
             ('T', 'P'), -3
             ('T', 'S'), 2
             ('T', 'T'), 8
             ('T', 'W'), -5
             ('T', 'Y'), -3
             ('T', 'V'), 0
             ('T', 'B'), -1
             ('T', 'Z'), -2
             ('T', 'X'), -1
             ('T', '*'), -8
             ('W', 'A'), -5
             ('W', 'R'), -5
             ('W', 'N'), -7
             ('W', 'D'), -8
             ('W', 'C'), -5
             ('W', 'Q'), -4
             ('W', 'E'), -6
             ('W', 'G'), -6
             ('W', 'H'), -4
             ('W', 'I'), -5
             ('W', 'L'), -4
             ('W', 'K'), -6
             ('W', 'M'), -3
             ('W', 'F'), 0
             ('W', 'P'), -7
             ('W', 'S'), -6
             ('W', 'T'), -5
             ('W', 'W'), 16
             ('W', 'Y'), 3
             ('W', 'V'), -5
             ('W', 'B'), -8
             ('W', 'Z'), -5
             ('W', 'X'), -5
             ('W', '*'), -8
             ('Y', 'A'), -4
             ('Y', 'R'), -4
             ('Y', 'N'), -4
             ('Y', 'D'), -6
             ('Y', 'C'), -5
             ('Y', 'Q'), -3
             ('Y', 'E'), -5
             ('Y', 'G'), -6
             ('Y', 'H'), 3
             ('Y', 'I'), -3
             ('Y', 'L'), -2
             ('Y', 'K'), -4
             ('Y', 'M'), -3
             ('Y', 'F'), 4
             ('Y', 'P'), -6
             ('Y', 'S'), -3
             ('Y', 'T'), -3
             ('Y', 'W'), 3
             ('Y', 'Y'), 11
             ('Y', 'V'), -3
             ('Y', 'B'), -5
             ('Y', 'Z'), -4
             ('Y', 'X'), -3
             ('Y', '*'), -8
             ('V', 'A'), -1
             ('V', 'R'), -4
             ('V', 'N'), -5
             ('V', 'D'), -6
             ('V', 'C'), -2
             ('V', 'Q'), -4
             ('V', 'E'), -4
             ('V', 'G'), -6
             ('V', 'H'), -5
             ('V', 'I'), 4
             ('V', 'L'), 1
             ('V', 'K'), -4
             ('V', 'M'), 1
             ('V', 'F'), -2
             ('V', 'P'), -4
             ('V', 'S'), -3
             ('V', 'T'), 0
             ('V', 'W'), -5
             ('V', 'Y'), -3
             ('V', 'V'), 7
             ('V', 'B'), -6
             ('V', 'Z'), -4
             ('V', 'X'), -2
             ('V', '*'), -8
             ('B', 'A'), -3
             ('B', 'R'), -2
             ('B', 'N'), 5
             ('B', 'D'), 6
             ('B', 'C'), -6
             ('B', 'Q'), -1
             ('B', 'E'), 1
             ('B', 'G'), -2
             ('B', 'H'), -1
             ('B', 'I'), -6
             ('B', 'L'), -7
             ('B', 'K'), -1
             ('B', 'M'), -5
             ('B', 'F'), -6
             ('B', 'P'), -4
             ('B', 'S'), 0
             ('B', 'T'), -1
             ('B', 'W'), -8
             ('B', 'Y'), -5
             ('B', 'V'), -6
             ('B', 'B'), 6
             ('B', 'Z'), 0
             ('B', 'X'), -3
             ('B', '*'), -8
             ('Z', 'A'), -2
             ('Z', 'R'), 0
             ('Z', 'N'), -1
             ('Z', 'D'), 1
             ('Z', 'C'), -7
             ('Z', 'Q'), 5
             ('Z', 'E'), 6
             ('Z', 'G'), -4
             ('Z', 'H'), 0
             ('Z', 'I'), -6
             ('Z', 'L'), -5
             ('Z', 'K'), 1
             ('Z', 'M'), -3
             ('Z', 'F'), -6
             ('Z', 'P'), -2
             ('Z', 'S'), -1
             ('Z', 'T'), -2
             ('Z', 'W'), -5
             ('Z', 'Y'), -4
             ('Z', 'V'), -4
             ('Z', 'B'), 0
             ('Z', 'Z'), 6
             ('Z', 'X'), -1
             ('Z', '*'), -8
             ('X', 'A'), -1
             ('X', 'R'), -2
             ('X', 'N'), -2
             ('X', 'D'), -3
             ('X', 'C'), -4
             ('X', 'Q'), -2
             ('X', 'E'), -2
             ('X', 'G'), -3
             ('X', 'H'), -2
             ('X', 'I'), -2
             ('X', 'L'), -2
             ('X', 'K'), -2
             ('X', 'M'), -2
             ('X', 'F'), -3
             ('X', 'P'), -3
             ('X', 'S'), -1
             ('X', 'T'), -1
             ('X', 'W'), -5
             ('X', 'Y'), -3
             ('X', 'V'), -2
             ('X', 'B'), -3
             ('X', 'Z'), -1
             ('X', 'X'), -2
             ('X', '*'), -8
             ('*', 'A'), -8
             ('*', 'R'), -8
             ('*', 'N'), -8
             ('*', 'D'), -8
             ('*', 'C'), -8
             ('*', 'Q'), -8
             ('*', 'E'), -8
             ('*', 'G'), -8
             ('*', 'H'), -8
             ('*', 'I'), -8
             ('*', 'L'), -8
             ('*', 'K'), -8
             ('*', 'M'), -8
             ('*', 'F'), -8
             ('*', 'P'), -8
             ('*', 'S'), -8
             ('*', 'T'), -8
             ('*', 'W'), -8
             ('*', 'Y'), -8
             ('*', 'V'), -8
             ('*', 'B'), -8
             ('*', 'Z'), -8
             ('*', 'X'), -8
             ('*', '*'), 1 |]
          |> Map.ofArray
          BLOSUM90,
          [| ('A', 'A'), 5
             ('A', 'R'), -2
             ('A', 'N'), -2
             ('A', 'D'), -3
             ('A', 'C'), -1
             ('A', 'Q'), -1
             ('A', 'E'), -1
             ('A', 'G'), 0
             ('A', 'H'), -2
             ('A', 'I'), -2
             ('A', 'L'), -2
             ('A', 'K'), -1
             ('A', 'M'), -2
             ('A', 'F'), -3
             ('A', 'P'), -1
             ('A', 'S'), 1
             ('A', 'T'), 0
             ('A', 'W'), -4
             ('A', 'Y'), -3
             ('A', 'V'), -1
             ('A', 'B'), -2
             ('A', 'Z'), -1
             ('A', 'X'), -1
             ('A', '*'), -6
             ('R', 'A'), -2
             ('R', 'R'), 6
             ('R', 'N'), -1
             ('R', 'D'), -3
             ('R', 'C'), -5
             ('R', 'Q'), 1
             ('R', 'E'), -1
             ('R', 'G'), -3
             ('R', 'H'), 0
             ('R', 'I'), -4
             ('R', 'L'), -3
             ('R', 'K'), 2
             ('R', 'M'), -2
             ('R', 'F'), -4
             ('R', 'P'), -3
             ('R', 'S'), -1
             ('R', 'T'), -2
             ('R', 'W'), -4
             ('R', 'Y'), -3
             ('R', 'V'), -3
             ('R', 'B'), -2
             ('R', 'Z'), 0
             ('R', 'X'), -2
             ('R', '*'), -6
             ('N', 'A'), -2
             ('N', 'R'), -1
             ('N', 'N'), 7
             ('N', 'D'), 1
             ('N', 'C'), -4
             ('N', 'Q'), 0
             ('N', 'E'), -1
             ('N', 'G'), -1
             ('N', 'H'), 0
             ('N', 'I'), -4
             ('N', 'L'), -4
             ('N', 'K'), 0
             ('N', 'M'), -3
             ('N', 'F'), -4
             ('N', 'P'), -3
             ('N', 'S'), 0
             ('N', 'T'), 0
             ('N', 'W'), -5
             ('N', 'Y'), -3
             ('N', 'V'), -4
             ('N', 'B'), 4
             ('N', 'Z'), -1
             ('N', 'X'), -2
             ('N', '*'), -6
             ('D', 'A'), -3
             ('D', 'R'), -3
             ('D', 'N'), 1
             ('D', 'D'), 7
             ('D', 'C'), -5
             ('D', 'Q'), -1
             ('D', 'E'), 1
             ('D', 'G'), -2
             ('D', 'H'), -2
             ('D', 'I'), -5
             ('D', 'L'), -5
             ('D', 'K'), -1
             ('D', 'M'), -4
             ('D', 'F'), -5
             ('D', 'P'), -3
             ('D', 'S'), -1
             ('D', 'T'), -2
             ('D', 'W'), -6
             ('D', 'Y'), -4
             ('D', 'V'), -5
             ('D', 'B'), 4
             ('D', 'Z'), 0
             ('D', 'X'), -2
             ('D', '*'), -6
             ('C', 'A'), -1
             ('C', 'R'), -5
             ('C', 'N'), -4
             ('C', 'D'), -5
             ('C', 'C'), 9
             ('C', 'Q'), -4
             ('C', 'E'), -6
             ('C', 'G'), -4
             ('C', 'H'), -5
             ('C', 'I'), -2
             ('C', 'L'), -2
             ('C', 'K'), -4
             ('C', 'M'), -2
             ('C', 'F'), -3
             ('C', 'P'), -4
             ('C', 'S'), -2
             ('C', 'T'), -2
             ('C', 'W'), -4
             ('C', 'Y'), -4
             ('C', 'V'), -2
             ('C', 'B'), -4
             ('C', 'Z'), -5
             ('C', 'X'), -3
             ('C', '*'), -6
             ('Q', 'A'), -1
             ('Q', 'R'), 1
             ('Q', 'N'), 0
             ('Q', 'D'), -1
             ('Q', 'C'), -4
             ('Q', 'Q'), 7
             ('Q', 'E'), 2
             ('Q', 'G'), -3
             ('Q', 'H'), 1
             ('Q', 'I'), -4
             ('Q', 'L'), -3
             ('Q', 'K'), 1
             ('Q', 'M'), 0
             ('Q', 'F'), -4
             ('Q', 'P'), -2
             ('Q', 'S'), -1
             ('Q', 'T'), -1
             ('Q', 'W'), -3
             ('Q', 'Y'), -3
             ('Q', 'V'), -3
             ('Q', 'B'), -1
             ('Q', 'Z'), 4
             ('Q', 'X'), -1
             ('Q', '*'), -6
             ('E', 'A'), -1
             ('E', 'R'), -1
             ('E', 'N'), -1
             ('E', 'D'), 1
             ('E', 'C'), -6
             ('E', 'Q'), 2
             ('E', 'E'), 6
             ('E', 'G'), -3
             ('E', 'H'), -1
             ('E', 'I'), -4
             ('E', 'L'), -4
             ('E', 'K'), 0
             ('E', 'M'), -3
             ('E', 'F'), -5
             ('E', 'P'), -2
             ('E', 'S'), -1
             ('E', 'T'), -1
             ('E', 'W'), -5
             ('E', 'Y'), -4
             ('E', 'V'), -3
             ('E', 'B'), 0
             ('E', 'Z'), 4
             ('E', 'X'), -2
             ('E', '*'), -6
             ('G', 'A'), 0
             ('G', 'R'), -3
             ('G', 'N'), -1
             ('G', 'D'), -2
             ('G', 'C'), -4
             ('G', 'Q'), -3
             ('G', 'E'), -3
             ('G', 'G'), 6
             ('G', 'H'), -3
             ('G', 'I'), -5
             ('G', 'L'), -5
             ('G', 'K'), -2
             ('G', 'M'), -4
             ('G', 'F'), -5
             ('G', 'P'), -3
             ('G', 'S'), -1
             ('G', 'T'), -3
             ('G', 'W'), -4
             ('G', 'Y'), -5
             ('G', 'V'), -5
             ('G', 'B'), -2
             ('G', 'Z'), -3
             ('G', 'X'), -2
             ('G', '*'), -6
             ('H', 'A'), -2
             ('H', 'R'), 0
             ('H', 'N'), 0
             ('H', 'D'), -2
             ('H', 'C'), -5
             ('H', 'Q'), 1
             ('H', 'E'), -1
             ('H', 'G'), -3
             ('H', 'H'), 8
             ('H', 'I'), -4
             ('H', 'L'), -4
             ('H', 'K'), -1
             ('H', 'M'), -3
             ('H', 'F'), -2
             ('H', 'P'), -3
             ('H', 'S'), -2
             ('H', 'T'), -2
             ('H', 'W'), -3
             ('H', 'Y'), 1
             ('H', 'V'), -4
             ('H', 'B'), -1
             ('H', 'Z'), 0
             ('H', 'X'), -2
             ('H', '*'), -6
             ('I', 'A'), -2
             ('I', 'R'), -4
             ('I', 'N'), -4
             ('I', 'D'), -5
             ('I', 'C'), -2
             ('I', 'Q'), -4
             ('I', 'E'), -4
             ('I', 'G'), -5
             ('I', 'H'), -4
             ('I', 'I'), 5
             ('I', 'L'), 1
             ('I', 'K'), -4
             ('I', 'M'), 1
             ('I', 'F'), -1
             ('I', 'P'), -4
             ('I', 'S'), -3
             ('I', 'T'), -1
             ('I', 'W'), -4
             ('I', 'Y'), -2
             ('I', 'V'), 3
             ('I', 'B'), -5
             ('I', 'Z'), -4
             ('I', 'X'), -2
             ('I', '*'), -6
             ('L', 'A'), -2
             ('L', 'R'), -3
             ('L', 'N'), -4
             ('L', 'D'), -5
             ('L', 'C'), -2
             ('L', 'Q'), -3
             ('L', 'E'), -4
             ('L', 'G'), -5
             ('L', 'H'), -4
             ('L', 'I'), 1
             ('L', 'L'), 5
             ('L', 'K'), -3
             ('L', 'M'), 2
             ('L', 'F'), 0
             ('L', 'P'), -4
             ('L', 'S'), -3
             ('L', 'T'), -2
             ('L', 'W'), -3
             ('L', 'Y'), -2
             ('L', 'V'), 0
             ('L', 'B'), -5
             ('L', 'Z'), -4
             ('L', 'X'), -2
             ('L', '*'), -6
             ('K', 'A'), -1
             ('K', 'R'), 2
             ('K', 'N'), 0
             ('K', 'D'), -1
             ('K', 'C'), -4
             ('K', 'Q'), 1
             ('K', 'E'), 0
             ('K', 'G'), -2
             ('K', 'H'), -1
             ('K', 'I'), -4
             ('K', 'L'), -3
             ('K', 'K'), 6
             ('K', 'M'), -2
             ('K', 'F'), -4
             ('K', 'P'), -2
             ('K', 'S'), -1
             ('K', 'T'), -1
             ('K', 'W'), -5
             ('K', 'Y'), -3
             ('K', 'V'), -3
             ('K', 'B'), -1
             ('K', 'Z'), 1
             ('K', 'X'), -1
             ('K', '*'), -6
             ('M', 'A'), -2
             ('M', 'R'), -2
             ('M', 'N'), -3
             ('M', 'D'), -4
             ('M', 'C'), -2
             ('M', 'Q'), 0
             ('M', 'E'), -3
             ('M', 'G'), -4
             ('M', 'H'), -3
             ('M', 'I'), 1
             ('M', 'L'), 2
             ('M', 'K'), -2
             ('M', 'M'), 7
             ('M', 'F'), -1
             ('M', 'P'), -3
             ('M', 'S'), -2
             ('M', 'T'), -1
             ('M', 'W'), -2
             ('M', 'Y'), -2
             ('M', 'V'), 0
             ('M', 'B'), -4
             ('M', 'Z'), -2
             ('M', 'X'), -1
             ('M', '*'), -6
             ('F', 'A'), -3
             ('F', 'R'), -4
             ('F', 'N'), -4
             ('F', 'D'), -5
             ('F', 'C'), -3
             ('F', 'Q'), -4
             ('F', 'E'), -5
             ('F', 'G'), -5
             ('F', 'H'), -2
             ('F', 'I'), -1
             ('F', 'L'), 0
             ('F', 'K'), -4
             ('F', 'M'), -1
             ('F', 'F'), 7
             ('F', 'P'), -4
             ('F', 'S'), -3
             ('F', 'T'), -3
             ('F', 'W'), 0
             ('F', 'Y'), 3
             ('F', 'V'), -2
             ('F', 'B'), -4
             ('F', 'Z'), -4
             ('F', 'X'), -2
             ('F', '*'), -6
             ('P', 'A'), -1
             ('P', 'R'), -3
             ('P', 'N'), -3
             ('P', 'D'), -3
             ('P', 'C'), -4
             ('P', 'Q'), -2
             ('P', 'E'), -2
             ('P', 'G'), -3
             ('P', 'H'), -3
             ('P', 'I'), -4
             ('P', 'L'), -4
             ('P', 'K'), -2
             ('P', 'M'), -3
             ('P', 'F'), -4
             ('P', 'P'), 8
             ('P', 'S'), -2
             ('P', 'T'), -2
             ('P', 'W'), -5
             ('P', 'Y'), -4
             ('P', 'V'), -3
             ('P', 'B'), -3
             ('P', 'Z'), -2
             ('P', 'X'), -2
             ('P', '*'), -6
             ('S', 'A'), 1
             ('S', 'R'), -1
             ('S', 'N'), 0
             ('S', 'D'), -1
             ('S', 'C'), -2
             ('S', 'Q'), -1
             ('S', 'E'), -1
             ('S', 'G'), -1
             ('S', 'H'), -2
             ('S', 'I'), -3
             ('S', 'L'), -3
             ('S', 'K'), -1
             ('S', 'M'), -2
             ('S', 'F'), -3
             ('S', 'P'), -2
             ('S', 'S'), 5
             ('S', 'T'), 1
             ('S', 'W'), -4
             ('S', 'Y'), -3
             ('S', 'V'), -2
             ('S', 'B'), 0
             ('S', 'Z'), -1
             ('S', 'X'), -1
             ('S', '*'), -6
             ('T', 'A'), 0
             ('T', 'R'), -2
             ('T', 'N'), 0
             ('T', 'D'), -2
             ('T', 'C'), -2
             ('T', 'Q'), -1
             ('T', 'E'), -1
             ('T', 'G'), -3
             ('T', 'H'), -2
             ('T', 'I'), -1
             ('T', 'L'), -2
             ('T', 'K'), -1
             ('T', 'M'), -1
             ('T', 'F'), -3
             ('T', 'P'), -2
             ('T', 'S'), 1
             ('T', 'T'), 6
             ('T', 'W'), -4
             ('T', 'Y'), -2
             ('T', 'V'), -1
             ('T', 'B'), -1
             ('T', 'Z'), -1
             ('T', 'X'), -1
             ('T', '*'), -6
             ('W', 'A'), -4
             ('W', 'R'), -4
             ('W', 'N'), -5
             ('W', 'D'), -6
             ('W', 'C'), -4
             ('W', 'Q'), -3
             ('W', 'E'), -5
             ('W', 'G'), -4
             ('W', 'H'), -3
             ('W', 'I'), -4
             ('W', 'L'), -3
             ('W', 'K'), -5
             ('W', 'M'), -2
             ('W', 'F'), 0
             ('W', 'P'), -5
             ('W', 'S'), -4
             ('W', 'T'), -4
             ('W', 'W'), 11
             ('W', 'Y'), 2
             ('W', 'V'), -3
             ('W', 'B'), -6
             ('W', 'Z'), -4
             ('W', 'X'), -3
             ('W', '*'), -6
             ('Y', 'A'), -3
             ('Y', 'R'), -3
             ('Y', 'N'), -3
             ('Y', 'D'), -4
             ('Y', 'C'), -4
             ('Y', 'Q'), -3
             ('Y', 'E'), -4
             ('Y', 'G'), -5
             ('Y', 'H'), 1
             ('Y', 'I'), -2
             ('Y', 'L'), -2
             ('Y', 'K'), -3
             ('Y', 'M'), -2
             ('Y', 'F'), 3
             ('Y', 'P'), -4
             ('Y', 'S'), -3
             ('Y', 'T'), -2
             ('Y', 'W'), 2
             ('Y', 'Y'), 8
             ('Y', 'V'), -3
             ('Y', 'B'), -4
             ('Y', 'Z'), -3
             ('Y', 'X'), -2
             ('Y', '*'), -6
             ('V', 'A'), -1
             ('V', 'R'), -3
             ('V', 'N'), -4
             ('V', 'D'), -5
             ('V', 'C'), -2
             ('V', 'Q'), -3
             ('V', 'E'), -3
             ('V', 'G'), -5
             ('V', 'H'), -4
             ('V', 'I'), 3
             ('V', 'L'), 0
             ('V', 'K'), -3
             ('V', 'M'), 0
             ('V', 'F'), -2
             ('V', 'P'), -3
             ('V', 'S'), -2
             ('V', 'T'), -1
             ('V', 'W'), -3
             ('V', 'Y'), -3
             ('V', 'V'), 5
             ('V', 'B'), -4
             ('V', 'Z'), -3
             ('V', 'X'), -2
             ('V', '*'), -6
             ('B', 'A'), -2
             ('B', 'R'), -2
             ('B', 'N'), 4
             ('B', 'D'), 4
             ('B', 'C'), -4
             ('B', 'Q'), -1
             ('B', 'E'), 0
             ('B', 'G'), -2
             ('B', 'H'), -1
             ('B', 'I'), -5
             ('B', 'L'), -5
             ('B', 'K'), -1
             ('B', 'M'), -4
             ('B', 'F'), -4
             ('B', 'P'), -3
             ('B', 'S'), 0
             ('B', 'T'), -1
             ('B', 'W'), -6
             ('B', 'Y'), -4
             ('B', 'V'), -4
             ('B', 'B'), 4
             ('B', 'Z'), 0
             ('B', 'X'), -2
             ('B', '*'), -6
             ('Z', 'A'), -1
             ('Z', 'R'), 0
             ('Z', 'N'), -1
             ('Z', 'D'), 0
             ('Z', 'C'), -5
             ('Z', 'Q'), 4
             ('Z', 'E'), 4
             ('Z', 'G'), -3
             ('Z', 'H'), 0
             ('Z', 'I'), -4
             ('Z', 'L'), -4
             ('Z', 'K'), 1
             ('Z', 'M'), -2
             ('Z', 'F'), -4
             ('Z', 'P'), -2
             ('Z', 'S'), -1
             ('Z', 'T'), -1
             ('Z', 'W'), -4
             ('Z', 'Y'), -3
             ('Z', 'V'), -3
             ('Z', 'B'), 0
             ('Z', 'Z'), 4
             ('Z', 'X'), -1
             ('Z', '*'), -6
             ('X', 'A'), -1
             ('X', 'R'), -2
             ('X', 'N'), -2
             ('X', 'D'), -2
             ('X', 'C'), -3
             ('X', 'Q'), -1
             ('X', 'E'), -2
             ('X', 'G'), -2
             ('X', 'H'), -2
             ('X', 'I'), -2
             ('X', 'L'), -2
             ('X', 'K'), -1
             ('X', 'M'), -1
             ('X', 'F'), -2
             ('X', 'P'), -2
             ('X', 'S'), -1
             ('X', 'T'), -1
             ('X', 'W'), -3
             ('X', 'Y'), -2
             ('X', 'V'), -2
             ('X', 'B'), -2
             ('X', 'Z'), -1
             ('X', 'X'), -2
             ('X', '*'), -6
             ('*', 'A'), -6
             ('*', 'R'), -6
             ('*', 'N'), -6
             ('*', 'D'), -6
             ('*', 'C'), -6
             ('*', 'Q'), -6
             ('*', 'E'), -6
             ('*', 'G'), -6
             ('*', 'H'), -6
             ('*', 'I'), -6
             ('*', 'L'), -6
             ('*', 'K'), -6
             ('*', 'M'), -6
             ('*', 'F'), -6
             ('*', 'P'), -6
             ('*', 'S'), -6
             ('*', 'T'), -6
             ('*', 'W'), -6
             ('*', 'Y'), -6
             ('*', 'V'), -6
             ('*', 'B'), -6
             ('*', 'Z'), -6
             ('*', 'X'), -6
             ('*', '*'), 1 |]
          |> Map.ofArray
          BLOSUM100,
          [| ('A', 'A'), 8
             ('A', 'R'), -3
             ('A', 'N'), -4
             ('A', 'D'), -5
             ('A', 'C'), -2
             ('A', 'Q'), -2
             ('A', 'E'), -3
             ('A', 'G'), -1
             ('A', 'H'), -4
             ('A', 'I'), -4
             ('A', 'L'), -4
             ('A', 'K'), -2
             ('A', 'M'), -3
             ('A', 'F'), -5
             ('A', 'P'), -2
             ('A', 'S'), 1
             ('A', 'T'), -1
             ('A', 'W'), -6
             ('A', 'Y'), -5
             ('A', 'V'), -2
             ('A', 'B'), -4
             ('A', 'Z'), -2
             ('A', 'X'), -2
             ('A', '*'), -10
             ('R', 'A'), -3
             ('R', 'R'), 10
             ('R', 'N'), -2
             ('R', 'D'), -5
             ('R', 'C'), -8
             ('R', 'Q'), 0
             ('R', 'E'), -2
             ('R', 'G'), -6
             ('R', 'H'), -1
             ('R', 'I'), -7
             ('R', 'L'), -6
             ('R', 'K'), 3
             ('R', 'M'), -4
             ('R', 'F'), -6
             ('R', 'P'), -5
             ('R', 'S'), -3
             ('R', 'T'), -3
             ('R', 'W'), -7
             ('R', 'Y'), -5
             ('R', 'V'), -6
             ('R', 'B'), -4
             ('R', 'Z'), -1
             ('R', 'X'), -3
             ('R', '*'), -10
             ('N', 'A'), -4
             ('N', 'R'), -2
             ('N', 'N'), 11
             ('N', 'D'), 1
             ('N', 'C'), -5
             ('N', 'Q'), -1
             ('N', 'E'), -2
             ('N', 'G'), -2
             ('N', 'H'), 0
             ('N', 'I'), -7
             ('N', 'L'), -7
             ('N', 'K'), -1
             ('N', 'M'), -5
             ('N', 'F'), -7
             ('N', 'P'), -5
             ('N', 'S'), 0
             ('N', 'T'), -1
             ('N', 'W'), -8
             ('N', 'Y'), -5
             ('N', 'V'), -7
             ('N', 'B'), 5
             ('N', 'Z'), -2
             ('N', 'X'), -3
             ('N', '*'), -10
             ('D', 'A'), -5
             ('D', 'R'), -5
             ('D', 'N'), 1
             ('D', 'D'), 10
             ('D', 'C'), -8
             ('D', 'Q'), -2
             ('D', 'E'), 2
             ('D', 'G'), -4
             ('D', 'H'), -3
             ('D', 'I'), -8
             ('D', 'L'), -8
             ('D', 'K'), -3
             ('D', 'M'), -8
             ('D', 'F'), -8
             ('D', 'P'), -5
             ('D', 'S'), -2
             ('D', 'T'), -4
             ('D', 'W'), -10
             ('D', 'Y'), -7
             ('D', 'V'), -8
             ('D', 'B'), 6
             ('D', 'Z'), 0
             ('D', 'X'), -4
             ('D', '*'), -10
             ('C', 'A'), -2
             ('C', 'R'), -8
             ('C', 'N'), -5
             ('C', 'D'), -8
             ('C', 'C'), 14
             ('C', 'Q'), -7
             ('C', 'E'), -9
             ('C', 'G'), -7
             ('C', 'H'), -8
             ('C', 'I'), -3
             ('C', 'L'), -5
             ('C', 'K'), -8
             ('C', 'M'), -4
             ('C', 'F'), -4
             ('C', 'P'), -8
             ('C', 'S'), -3
             ('C', 'T'), -3
             ('C', 'W'), -7
             ('C', 'Y'), -6
             ('C', 'V'), -3
             ('C', 'B'), -7
             ('C', 'Z'), -8
             ('C', 'X'), -5
             ('C', '*'), -10
             ('Q', 'A'), -2
             ('Q', 'R'), 0
             ('Q', 'N'), -1
             ('Q', 'D'), -2
             ('Q', 'C'), -7
             ('Q', 'Q'), 11
             ('Q', 'E'), 2
             ('Q', 'G'), -5
             ('Q', 'H'), 1
             ('Q', 'I'), -6
             ('Q', 'L'), -5
             ('Q', 'K'), 2
             ('Q', 'M'), -2
             ('Q', 'F'), -6
             ('Q', 'P'), -4
             ('Q', 'S'), -2
             ('Q', 'T'), -3
             ('Q', 'W'), -5
             ('Q', 'Y'), -4
             ('Q', 'V'), -5
             ('Q', 'B'), -2
             ('Q', 'Z'), 5
             ('Q', 'X'), -2
             ('Q', '*'), -10
             ('E', 'A'), -3
             ('E', 'R'), -2
             ('E', 'N'), -2
             ('E', 'D'), 2
             ('E', 'C'), -9
             ('E', 'Q'), 2
             ('E', 'E'), 10
             ('E', 'G'), -6
             ('E', 'H'), -2
             ('E', 'I'), -7
             ('E', 'L'), -7
             ('E', 'K'), 0
             ('E', 'M'), -5
             ('E', 'F'), -8
             ('E', 'P'), -4
             ('E', 'S'), -2
             ('E', 'T'), -3
             ('E', 'W'), -8
             ('E', 'Y'), -7
             ('E', 'V'), -5
             ('E', 'B'), 0
             ('E', 'Z'), 7
             ('E', 'X'), -3
             ('E', '*'), -10
             ('G', 'A'), -1
             ('G', 'R'), -6
             ('G', 'N'), -2
             ('G', 'D'), -4
             ('G', 'C'), -7
             ('G', 'Q'), -5
             ('G', 'E'), -6
             ('G', 'G'), 9
             ('G', 'H'), -6
             ('G', 'I'), -9
             ('G', 'L'), -8
             ('G', 'K'), -5
             ('G', 'M'), -7
             ('G', 'F'), -8
             ('G', 'P'), -6
             ('G', 'S'), -2
             ('G', 'T'), -5
             ('G', 'W'), -7
             ('G', 'Y'), -8
             ('G', 'V'), -8
             ('G', 'B'), -3
             ('G', 'Z'), -5
             ('G', 'X'), -4
             ('G', '*'), -10
             ('H', 'A'), -4
             ('H', 'R'), -1
             ('H', 'N'), 0
             ('H', 'D'), -3
             ('H', 'C'), -8
             ('H', 'Q'), 1
             ('H', 'E'), -2
             ('H', 'G'), -6
             ('H', 'H'), 13
             ('H', 'I'), -7
             ('H', 'L'), -6
             ('H', 'K'), -3
             ('H', 'M'), -5
             ('H', 'F'), -4
             ('H', 'P'), -5
             ('H', 'S'), -3
             ('H', 'T'), -4
             ('H', 'W'), -5
             ('H', 'Y'), 1
             ('H', 'V'), -7
             ('H', 'B'), -2
             ('H', 'Z'), -1
             ('H', 'X'), -4
             ('H', '*'), -10
             ('I', 'A'), -4
             ('I', 'R'), -7
             ('I', 'N'), -7
             ('I', 'D'), -8
             ('I', 'C'), -3
             ('I', 'Q'), -6
             ('I', 'E'), -7
             ('I', 'G'), -9
             ('I', 'H'), -7
             ('I', 'I'), 8
             ('I', 'L'), 2
             ('I', 'K'), -6
             ('I', 'M'), 1
             ('I', 'F'), -2
             ('I', 'P'), -7
             ('I', 'S'), -5
             ('I', 'T'), -3
             ('I', 'W'), -6
             ('I', 'Y'), -4
             ('I', 'V'), 4
             ('I', 'B'), -8
             ('I', 'Z'), -7
             ('I', 'X'), -3
             ('I', '*'), -10
             ('L', 'A'), -4
             ('L', 'R'), -6
             ('L', 'N'), -7
             ('L', 'D'), -8
             ('L', 'C'), -5
             ('L', 'Q'), -5
             ('L', 'E'), -7
             ('L', 'G'), -8
             ('L', 'H'), -6
             ('L', 'I'), 2
             ('L', 'L'), 8
             ('L', 'K'), -6
             ('L', 'M'), 3
             ('L', 'F'), 0
             ('L', 'P'), -7
             ('L', 'S'), -6
             ('L', 'T'), -4
             ('L', 'W'), -5
             ('L', 'Y'), -4
             ('L', 'V'), 0
             ('L', 'B'), -8
             ('L', 'Z'), -6
             ('L', 'X'), -3
             ('L', '*'), -10
             ('K', 'A'), -2
             ('K', 'R'), 3
             ('K', 'N'), -1
             ('K', 'D'), -3
             ('K', 'C'), -8
             ('K', 'Q'), 2
             ('K', 'E'), 0
             ('K', 'G'), -5
             ('K', 'H'), -3
             ('K', 'I'), -6
             ('K', 'L'), -6
             ('K', 'K'), 10
             ('K', 'M'), -4
             ('K', 'F'), -6
             ('K', 'P'), -3
             ('K', 'S'), -2
             ('K', 'T'), -3
             ('K', 'W'), -8
             ('K', 'Y'), -5
             ('K', 'V'), -5
             ('K', 'B'), -2
             ('K', 'Z'), 0
             ('K', 'X'), -3
             ('K', '*'), -10
             ('M', 'A'), -3
             ('M', 'R'), -4
             ('M', 'N'), -5
             ('M', 'D'), -8
             ('M', 'C'), -4
             ('M', 'Q'), -2
             ('M', 'E'), -5
             ('M', 'G'), -7
             ('M', 'H'), -5
             ('M', 'I'), 1
             ('M', 'L'), 3
             ('M', 'K'), -4
             ('M', 'M'), 12
             ('M', 'F'), -1
             ('M', 'P'), -5
             ('M', 'S'), -4
             ('M', 'T'), -2
             ('M', 'W'), -4
             ('M', 'Y'), -5
             ('M', 'V'), 0
             ('M', 'B'), -7
             ('M', 'Z'), -4
             ('M', 'X'), -3
             ('M', '*'), -10
             ('F', 'A'), -5
             ('F', 'R'), -6
             ('F', 'N'), -7
             ('F', 'D'), -8
             ('F', 'C'), -4
             ('F', 'Q'), -6
             ('F', 'E'), -8
             ('F', 'G'), -8
             ('F', 'H'), -4
             ('F', 'I'), -2
             ('F', 'L'), 0
             ('F', 'K'), -6
             ('F', 'M'), -1
             ('F', 'F'), 11
             ('F', 'P'), -7
             ('F', 'S'), -5
             ('F', 'T'), -5
             ('F', 'W'), 0
             ('F', 'Y'), 4
             ('F', 'V'), -3
             ('F', 'B'), -7
             ('F', 'Z'), -7
             ('F', 'X'), -4
             ('F', '*'), -10
             ('P', 'A'), -2
             ('P', 'R'), -5
             ('P', 'N'), -5
             ('P', 'D'), -5
             ('P', 'C'), -8
             ('P', 'Q'), -4
             ('P', 'E'), -4
             ('P', 'G'), -6
             ('P', 'H'), -5
             ('P', 'I'), -7
             ('P', 'L'), -7
             ('P', 'K'), -3
             ('P', 'M'), -5
             ('P', 'F'), -7
             ('P', 'P'), 12
             ('P', 'S'), -3
             ('P', 'T'), -4
             ('P', 'W'), -8
             ('P', 'Y'), -7
             ('P', 'V'), -6
             ('P', 'B'), -5
             ('P', 'Z'), -4
             ('P', 'X'), -4
             ('P', '*'), -10
             ('S', 'A'), 1
             ('S', 'R'), -3
             ('S', 'N'), 0
             ('S', 'D'), -2
             ('S', 'C'), -3
             ('S', 'Q'), -2
             ('S', 'E'), -2
             ('S', 'G'), -2
             ('S', 'H'), -3
             ('S', 'I'), -5
             ('S', 'L'), -6
             ('S', 'K'), -2
             ('S', 'M'), -4
             ('S', 'F'), -5
             ('S', 'P'), -3
             ('S', 'S'), 9
             ('S', 'T'), 2
             ('S', 'W'), -7
             ('S', 'Y'), -5
             ('S', 'V'), -4
             ('S', 'B'), -1
             ('S', 'Z'), -2
             ('S', 'X'), -2
             ('S', '*'), -10
             ('T', 'A'), -1
             ('T', 'R'), -3
             ('T', 'N'), -1
             ('T', 'D'), -4
             ('T', 'C'), -3
             ('T', 'Q'), -3
             ('T', 'E'), -3
             ('T', 'G'), -5
             ('T', 'H'), -4
             ('T', 'I'), -3
             ('T', 'L'), -4
             ('T', 'K'), -3
             ('T', 'M'), -2
             ('T', 'F'), -5
             ('T', 'P'), -4
             ('T', 'S'), 2
             ('T', 'T'), 9
             ('T', 'W'), -7
             ('T', 'Y'), -5
             ('T', 'V'), -1
             ('T', 'B'), -2
             ('T', 'Z'), -3
             ('T', 'X'), -2
             ('T', '*'), -10
             ('W', 'A'), -6
             ('W', 'R'), -7
             ('W', 'N'), -8
             ('W', 'D'), -10
             ('W', 'C'), -7
             ('W', 'Q'), -5
             ('W', 'E'), -8
             ('W', 'G'), -7
             ('W', 'H'), -5
             ('W', 'I'), -6
             ('W', 'L'), -5
             ('W', 'K'), -8
             ('W', 'M'), -4
             ('W', 'F'), 0
             ('W', 'P'), -8
             ('W', 'S'), -7
             ('W', 'T'), -7
             ('W', 'W'), 17
             ('W', 'Y'), 2
             ('W', 'V'), -5
             ('W', 'B'), -9
             ('W', 'Z'), -7
             ('W', 'X'), -6
             ('W', '*'), -10
             ('Y', 'A'), -5
             ('Y', 'R'), -5
             ('Y', 'N'), -5
             ('Y', 'D'), -7
             ('Y', 'C'), -6
             ('Y', 'Q'), -4
             ('Y', 'E'), -7
             ('Y', 'G'), -8
             ('Y', 'H'), 1
             ('Y', 'I'), -4
             ('Y', 'L'), -4
             ('Y', 'K'), -5
             ('Y', 'M'), -5
             ('Y', 'F'), 4
             ('Y', 'P'), -7
             ('Y', 'S'), -5
             ('Y', 'T'), -5
             ('Y', 'W'), 2
             ('Y', 'Y'), 12
             ('Y', 'V'), -5
             ('Y', 'B'), -6
             ('Y', 'Z'), -6
             ('Y', 'X'), -4
             ('Y', '*'), -10
             ('V', 'A'), -2
             ('V', 'R'), -6
             ('V', 'N'), -7
             ('V', 'D'), -8
             ('V', 'C'), -3
             ('V', 'Q'), -5
             ('V', 'E'), -5
             ('V', 'G'), -8
             ('V', 'H'), -7
             ('V', 'I'), 4
             ('V', 'L'), 0
             ('V', 'K'), -5
             ('V', 'M'), 0
             ('V', 'F'), -3
             ('V', 'P'), -6
             ('V', 'S'), -4
             ('V', 'T'), -1
             ('V', 'W'), -5
             ('V', 'Y'), -5
             ('V', 'V'), 8
             ('V', 'B'), -7
             ('V', 'Z'), -5
             ('V', 'X'), -3
             ('V', '*'), -10
             ('B', 'A'), -4
             ('B', 'R'), -4
             ('B', 'N'), 5
             ('B', 'D'), 6
             ('B', 'C'), -7
             ('B', 'Q'), -2
             ('B', 'E'), 0
             ('B', 'G'), -3
             ('B', 'H'), -2
             ('B', 'I'), -8
             ('B', 'L'), -8
             ('B', 'K'), -2
             ('B', 'M'), -7
             ('B', 'F'), -7
             ('B', 'P'), -5
             ('B', 'S'), -1
             ('B', 'T'), -2
             ('B', 'W'), -9
             ('B', 'Y'), -6
             ('B', 'V'), -7
             ('B', 'B'), 6
             ('B', 'Z'), 0
             ('B', 'X'), -4
             ('B', '*'), -10
             ('Z', 'A'), -2
             ('Z', 'R'), -1
             ('Z', 'N'), -2
             ('Z', 'D'), 0
             ('Z', 'C'), -8
             ('Z', 'Q'), 5
             ('Z', 'E'), 7
             ('Z', 'G'), -5
             ('Z', 'H'), -1
             ('Z', 'I'), -7
             ('Z', 'L'), -6
             ('Z', 'K'), 0
             ('Z', 'M'), -4
             ('Z', 'F'), -7
             ('Z', 'P'), -4
             ('Z', 'S'), -2
             ('Z', 'T'), -3
             ('Z', 'W'), -7
             ('Z', 'Y'), -6
             ('Z', 'V'), -5
             ('Z', 'B'), 0
             ('Z', 'Z'), 6
             ('Z', 'X'), -2
             ('Z', '*'), -10
             ('X', 'A'), -2
             ('X', 'R'), -3
             ('X', 'N'), -3
             ('X', 'D'), -4
             ('X', 'C'), -5
             ('X', 'Q'), -2
             ('X', 'E'), -3
             ('X', 'G'), -4
             ('X', 'H'), -4
             ('X', 'I'), -3
             ('X', 'L'), -3
             ('X', 'K'), -3
             ('X', 'M'), -3
             ('X', 'F'), -4
             ('X', 'P'), -4
             ('X', 'S'), -2
             ('X', 'T'), -2
             ('X', 'W'), -6
             ('X', 'Y'), -4
             ('X', 'V'), -3
             ('X', 'B'), -4
             ('X', 'Z'), -2
             ('X', 'X'), -3
             ('X', '*'), -10
             ('*', 'A'), -10
             ('*', 'R'), -10
             ('*', 'N'), -10
             ('*', 'D'), -10
             ('*', 'C'), -10
             ('*', 'Q'), -10
             ('*', 'E'), -10
             ('*', 'G'), -10
             ('*', 'H'), -10
             ('*', 'I'), -10
             ('*', 'L'), -10
             ('*', 'K'), -10
             ('*', 'M'), -10
             ('*', 'F'), -10
             ('*', 'P'), -10
             ('*', 'S'), -10
             ('*', 'T'), -10
             ('*', 'W'), -10
             ('*', 'Y'), -10
             ('*', 'V'), -10
             ('*', 'B'), -10
             ('*', 'Z'), -10
             ('*', 'X'), -10
             ('*', '*'), 1 |]
          |> Map.ofArray
          PAM30,
          [| ('A', 'A'), 6
             ('A', 'R'), -7
             ('A', 'N'), -4
             ('A', 'D'), -3
             ('A', 'C'), -6
             ('A', 'Q'), -4
             ('A', 'E'), -2
             ('A', 'G'), -2
             ('A', 'H'), -7
             ('A', 'I'), -5
             ('A', 'L'), -6
             ('A', 'K'), -7
             ('A', 'M'), -5
             ('A', 'F'), -8
             ('A', 'P'), -2
             ('A', 'S'), 0
             ('A', 'T'), -1
             ('A', 'W'), -13
             ('A', 'Y'), -8
             ('A', 'V'), -2
             ('A', 'B'), -3
             ('A', 'Z'), -3
             ('A', 'X'), -3
             ('A', '*'), -17
             ('R', 'A'), -7
             ('R', 'R'), 8
             ('R', 'N'), -6
             ('R', 'D'), -10
             ('R', 'C'), -8
             ('R', 'Q'), -2
             ('R', 'E'), -9
             ('R', 'G'), -9
             ('R', 'H'), -2
             ('R', 'I'), -5
             ('R', 'L'), -8
             ('R', 'K'), 0
             ('R', 'M'), -4
             ('R', 'F'), -9
             ('R', 'P'), -4
             ('R', 'S'), -3
             ('R', 'T'), -6
             ('R', 'W'), -2
             ('R', 'Y'), -10
             ('R', 'V'), -8
             ('R', 'B'), -7
             ('R', 'Z'), -4
             ('R', 'X'), -6
             ('R', '*'), -17
             ('N', 'A'), -4
             ('N', 'R'), -6
             ('N', 'N'), 8
             ('N', 'D'), 2
             ('N', 'C'), -11
             ('N', 'Q'), -3
             ('N', 'E'), -2
             ('N', 'G'), -3
             ('N', 'H'), 0
             ('N', 'I'), -5
             ('N', 'L'), -7
             ('N', 'K'), -1
             ('N', 'M'), -9
             ('N', 'F'), -9
             ('N', 'P'), -6
             ('N', 'S'), 0
             ('N', 'T'), -2
             ('N', 'W'), -8
             ('N', 'Y'), -4
             ('N', 'V'), -8
             ('N', 'B'), 6
             ('N', 'Z'), -3
             ('N', 'X'), -3
             ('N', '*'), -17
             ('D', 'A'), -3
             ('D', 'R'), -10
             ('D', 'N'), 2
             ('D', 'D'), 8
             ('D', 'C'), -14
             ('D', 'Q'), -2
             ('D', 'E'), 2
             ('D', 'G'), -3
             ('D', 'H'), -4
             ('D', 'I'), -7
             ('D', 'L'), -12
             ('D', 'K'), -4
             ('D', 'M'), -11
             ('D', 'F'), -15
             ('D', 'P'), -8
             ('D', 'S'), -4
             ('D', 'T'), -5
             ('D', 'W'), -15
             ('D', 'Y'), -11
             ('D', 'V'), -8
             ('D', 'B'), 6
             ('D', 'Z'), 1
             ('D', 'X'), -5
             ('D', '*'), -17
             ('C', 'A'), -6
             ('C', 'R'), -8
             ('C', 'N'), -11
             ('C', 'D'), -14
             ('C', 'C'), 10
             ('C', 'Q'), -14
             ('C', 'E'), -14
             ('C', 'G'), -9
             ('C', 'H'), -7
             ('C', 'I'), -6
             ('C', 'L'), -15
             ('C', 'K'), -14
             ('C', 'M'), -13
             ('C', 'F'), -13
             ('C', 'P'), -8
             ('C', 'S'), -3
             ('C', 'T'), -8
             ('C', 'W'), -15
             ('C', 'Y'), -4
             ('C', 'V'), -6
             ('C', 'B'), -12
             ('C', 'Z'), -14
             ('C', 'X'), -9
             ('C', '*'), -17
             ('Q', 'A'), -4
             ('Q', 'R'), -2
             ('Q', 'N'), -3
             ('Q', 'D'), -2
             ('Q', 'C'), -14
             ('Q', 'Q'), 8
             ('Q', 'E'), 1
             ('Q', 'G'), -7
             ('Q', 'H'), 1
             ('Q', 'I'), -8
             ('Q', 'L'), -5
             ('Q', 'K'), -3
             ('Q', 'M'), -4
             ('Q', 'F'), -13
             ('Q', 'P'), -3
             ('Q', 'S'), -5
             ('Q', 'T'), -5
             ('Q', 'W'), -13
             ('Q', 'Y'), -12
             ('Q', 'V'), -7
             ('Q', 'B'), -3
             ('Q', 'Z'), 6
             ('Q', 'X'), -5
             ('Q', '*'), -17
             ('E', 'A'), -2
             ('E', 'R'), -9
             ('E', 'N'), -2
             ('E', 'D'), 2
             ('E', 'C'), -14
             ('E', 'Q'), 1
             ('E', 'E'), 8
             ('E', 'G'), -4
             ('E', 'H'), -5
             ('E', 'I'), -5
             ('E', 'L'), -9
             ('E', 'K'), -4
             ('E', 'M'), -7
             ('E', 'F'), -14
             ('E', 'P'), -5
             ('E', 'S'), -4
             ('E', 'T'), -6
             ('E', 'W'), -17
             ('E', 'Y'), -8
             ('E', 'V'), -6
             ('E', 'B'), 1
             ('E', 'Z'), 6
             ('E', 'X'), -5
             ('E', '*'), -17
             ('G', 'A'), -2
             ('G', 'R'), -9
             ('G', 'N'), -3
             ('G', 'D'), -3
             ('G', 'C'), -9
             ('G', 'Q'), -7
             ('G', 'E'), -4
             ('G', 'G'), 6
             ('G', 'H'), -9
             ('G', 'I'), -11
             ('G', 'L'), -10
             ('G', 'K'), -7
             ('G', 'M'), -8
             ('G', 'F'), -9
             ('G', 'P'), -6
             ('G', 'S'), -2
             ('G', 'T'), -6
             ('G', 'W'), -15
             ('G', 'Y'), -14
             ('G', 'V'), -5
             ('G', 'B'), -3
             ('G', 'Z'), -5
             ('G', 'X'), -5
             ('G', '*'), -17
             ('H', 'A'), -7
             ('H', 'R'), -2
             ('H', 'N'), 0
             ('H', 'D'), -4
             ('H', 'C'), -7
             ('H', 'Q'), 1
             ('H', 'E'), -5
             ('H', 'G'), -9
             ('H', 'H'), 9
             ('H', 'I'), -9
             ('H', 'L'), -6
             ('H', 'K'), -6
             ('H', 'M'), -10
             ('H', 'F'), -6
             ('H', 'P'), -4
             ('H', 'S'), -6
             ('H', 'T'), -7
             ('H', 'W'), -7
             ('H', 'Y'), -3
             ('H', 'V'), -6
             ('H', 'B'), -1
             ('H', 'Z'), -1
             ('H', 'X'), -5
             ('H', '*'), -17
             ('I', 'A'), -5
             ('I', 'R'), -5
             ('I', 'N'), -5
             ('I', 'D'), -7
             ('I', 'C'), -6
             ('I', 'Q'), -8
             ('I', 'E'), -5
             ('I', 'G'), -11
             ('I', 'H'), -9
             ('I', 'I'), 8
             ('I', 'L'), -1
             ('I', 'K'), -6
             ('I', 'M'), -1
             ('I', 'F'), -2
             ('I', 'P'), -8
             ('I', 'S'), -7
             ('I', 'T'), -2
             ('I', 'W'), -14
             ('I', 'Y'), -6
             ('I', 'V'), 2
             ('I', 'B'), -6
             ('I', 'Z'), -6
             ('I', 'X'), -5
             ('I', '*'), -17
             ('L', 'A'), -6
             ('L', 'R'), -8
             ('L', 'N'), -7
             ('L', 'D'), -12
             ('L', 'C'), -15
             ('L', 'Q'), -5
             ('L', 'E'), -9
             ('L', 'G'), -10
             ('L', 'H'), -6
             ('L', 'I'), -1
             ('L', 'L'), 7
             ('L', 'K'), -8
             ('L', 'M'), 1
             ('L', 'F'), -3
             ('L', 'P'), -7
             ('L', 'S'), -8
             ('L', 'T'), -7
             ('L', 'W'), -6
             ('L', 'Y'), -7
             ('L', 'V'), -2
             ('L', 'B'), -9
             ('L', 'Z'), -7
             ('L', 'X'), -6
             ('L', '*'), -17
             ('K', 'A'), -7
             ('K', 'R'), 0
             ('K', 'N'), -1
             ('K', 'D'), -4
             ('K', 'C'), -14
             ('K', 'Q'), -3
             ('K', 'E'), -4
             ('K', 'G'), -7
             ('K', 'H'), -6
             ('K', 'I'), -6
             ('K', 'L'), -8
             ('K', 'K'), 7
             ('K', 'M'), -2
             ('K', 'F'), -14
             ('K', 'P'), -6
             ('K', 'S'), -4
             ('K', 'T'), -3
             ('K', 'W'), -12
             ('K', 'Y'), -9
             ('K', 'V'), -9
             ('K', 'B'), -2
             ('K', 'Z'), -4
             ('K', 'X'), -5
             ('K', '*'), -17
             ('M', 'A'), -5
             ('M', 'R'), -4
             ('M', 'N'), -9
             ('M', 'D'), -11
             ('M', 'C'), -13
             ('M', 'Q'), -4
             ('M', 'E'), -7
             ('M', 'G'), -8
             ('M', 'H'), -10
             ('M', 'I'), -1
             ('M', 'L'), 1
             ('M', 'K'), -2
             ('M', 'M'), 11
             ('M', 'F'), -4
             ('M', 'P'), -8
             ('M', 'S'), -5
             ('M', 'T'), -4
             ('M', 'W'), -13
             ('M', 'Y'), -11
             ('M', 'V'), -1
             ('M', 'B'), -10
             ('M', 'Z'), -5
             ('M', 'X'), -5
             ('M', '*'), -17
             ('F', 'A'), -8
             ('F', 'R'), -9
             ('F', 'N'), -9
             ('F', 'D'), -15
             ('F', 'C'), -13
             ('F', 'Q'), -13
             ('F', 'E'), -14
             ('F', 'G'), -9
             ('F', 'H'), -6
             ('F', 'I'), -2
             ('F', 'L'), -3
             ('F', 'K'), -14
             ('F', 'M'), -4
             ('F', 'F'), 9
             ('F', 'P'), -10
             ('F', 'S'), -6
             ('F', 'T'), -9
             ('F', 'W'), -4
             ('F', 'Y'), 2
             ('F', 'V'), -8
             ('F', 'B'), -10
             ('F', 'Z'), -13
             ('F', 'X'), -8
             ('F', '*'), -17
             ('P', 'A'), -2
             ('P', 'R'), -4
             ('P', 'N'), -6
             ('P', 'D'), -8
             ('P', 'C'), -8
             ('P', 'Q'), -3
             ('P', 'E'), -5
             ('P', 'G'), -6
             ('P', 'H'), -4
             ('P', 'I'), -8
             ('P', 'L'), -7
             ('P', 'K'), -6
             ('P', 'M'), -8
             ('P', 'F'), -10
             ('P', 'P'), 8
             ('P', 'S'), -2
             ('P', 'T'), -4
             ('P', 'W'), -14
             ('P', 'Y'), -13
             ('P', 'V'), -6
             ('P', 'B'), -7
             ('P', 'Z'), -4
             ('P', 'X'), -5
             ('P', '*'), -17
             ('S', 'A'), 0
             ('S', 'R'), -3
             ('S', 'N'), 0
             ('S', 'D'), -4
             ('S', 'C'), -3
             ('S', 'Q'), -5
             ('S', 'E'), -4
             ('S', 'G'), -2
             ('S', 'H'), -6
             ('S', 'I'), -7
             ('S', 'L'), -8
             ('S', 'K'), -4
             ('S', 'M'), -5
             ('S', 'F'), -6
             ('S', 'P'), -2
             ('S', 'S'), 6
             ('S', 'T'), 0
             ('S', 'W'), -5
             ('S', 'Y'), -7
             ('S', 'V'), -6
             ('S', 'B'), -1
             ('S', 'Z'), -5
             ('S', 'X'), -3
             ('S', '*'), -17
             ('T', 'A'), -1
             ('T', 'R'), -6
             ('T', 'N'), -2
             ('T', 'D'), -5
             ('T', 'C'), -8
             ('T', 'Q'), -5
             ('T', 'E'), -6
             ('T', 'G'), -6
             ('T', 'H'), -7
             ('T', 'I'), -2
             ('T', 'L'), -7
             ('T', 'K'), -3
             ('T', 'M'), -4
             ('T', 'F'), -9
             ('T', 'P'), -4
             ('T', 'S'), 0
             ('T', 'T'), 7
             ('T', 'W'), -13
             ('T', 'Y'), -6
             ('T', 'V'), -3
             ('T', 'B'), -3
             ('T', 'Z'), -6
             ('T', 'X'), -4
             ('T', '*'), -17
             ('W', 'A'), -13
             ('W', 'R'), -2
             ('W', 'N'), -8
             ('W', 'D'), -15
             ('W', 'C'), -15
             ('W', 'Q'), -13
             ('W', 'E'), -17
             ('W', 'G'), -15
             ('W', 'H'), -7
             ('W', 'I'), -14
             ('W', 'L'), -6
             ('W', 'K'), -12
             ('W', 'M'), -13
             ('W', 'F'), -4
             ('W', 'P'), -14
             ('W', 'S'), -5
             ('W', 'T'), -13
             ('W', 'W'), 13
             ('W', 'Y'), -5
             ('W', 'V'), -15
             ('W', 'B'), -10
             ('W', 'Z'), -14
             ('W', 'X'), -11
             ('W', '*'), -17
             ('Y', 'A'), -8
             ('Y', 'R'), -10
             ('Y', 'N'), -4
             ('Y', 'D'), -11
             ('Y', 'C'), -4
             ('Y', 'Q'), -12
             ('Y', 'E'), -8
             ('Y', 'G'), -14
             ('Y', 'H'), -3
             ('Y', 'I'), -6
             ('Y', 'L'), -7
             ('Y', 'K'), -9
             ('Y', 'M'), -11
             ('Y', 'F'), 2
             ('Y', 'P'), -13
             ('Y', 'S'), -7
             ('Y', 'T'), -6
             ('Y', 'W'), -5
             ('Y', 'Y'), 10
             ('Y', 'V'), -7
             ('Y', 'B'), -6
             ('Y', 'Z'), -9
             ('Y', 'X'), -7
             ('Y', '*'), -17
             ('V', 'A'), -2
             ('V', 'R'), -8
             ('V', 'N'), -8
             ('V', 'D'), -8
             ('V', 'C'), -6
             ('V', 'Q'), -7
             ('V', 'E'), -6
             ('V', 'G'), -5
             ('V', 'H'), -6
             ('V', 'I'), 2
             ('V', 'L'), -2
             ('V', 'K'), -9
             ('V', 'M'), -1
             ('V', 'F'), -8
             ('V', 'P'), -6
             ('V', 'S'), -6
             ('V', 'T'), -3
             ('V', 'W'), -15
             ('V', 'Y'), -7
             ('V', 'V'), 7
             ('V', 'B'), -8
             ('V', 'Z'), -6
             ('V', 'X'), -5
             ('V', '*'), -17
             ('B', 'A'), -3
             ('B', 'R'), -7
             ('B', 'N'), 6
             ('B', 'D'), 6
             ('B', 'C'), -12
             ('B', 'Q'), -3
             ('B', 'E'), 1
             ('B', 'G'), -3
             ('B', 'H'), -1
             ('B', 'I'), -6
             ('B', 'L'), -9
             ('B', 'K'), -2
             ('B', 'M'), -10
             ('B', 'F'), -10
             ('B', 'P'), -7
             ('B', 'S'), -1
             ('B', 'T'), -3
             ('B', 'W'), -10
             ('B', 'Y'), -6
             ('B', 'V'), -8
             ('B', 'B'), 6
             ('B', 'Z'), 0
             ('B', 'X'), -5
             ('B', '*'), -17
             ('Z', 'A'), -3
             ('Z', 'R'), -4
             ('Z', 'N'), -3
             ('Z', 'D'), 1
             ('Z', 'C'), -14
             ('Z', 'Q'), 6
             ('Z', 'E'), 6
             ('Z', 'G'), -5
             ('Z', 'H'), -1
             ('Z', 'I'), -6
             ('Z', 'L'), -7
             ('Z', 'K'), -4
             ('Z', 'M'), -5
             ('Z', 'F'), -13
             ('Z', 'P'), -4
             ('Z', 'S'), -5
             ('Z', 'T'), -6
             ('Z', 'W'), -14
             ('Z', 'Y'), -9
             ('Z', 'V'), -6
             ('Z', 'B'), 0
             ('Z', 'Z'), 6
             ('Z', 'X'), -5
             ('Z', '*'), -17
             ('X', 'A'), -3
             ('X', 'R'), -6
             ('X', 'N'), -3
             ('X', 'D'), -5
             ('X', 'C'), -9
             ('X', 'Q'), -5
             ('X', 'E'), -5
             ('X', 'G'), -5
             ('X', 'H'), -5
             ('X', 'I'), -5
             ('X', 'L'), -6
             ('X', 'K'), -5
             ('X', 'M'), -5
             ('X', 'F'), -8
             ('X', 'P'), -5
             ('X', 'S'), -3
             ('X', 'T'), -4
             ('X', 'W'), -11
             ('X', 'Y'), -7
             ('X', 'V'), -5
             ('X', 'B'), -5
             ('X', 'Z'), -5
             ('X', 'X'), -5
             ('X', '*'), -17
             ('*', 'A'), -17
             ('*', 'R'), -17
             ('*', 'N'), -17
             ('*', 'D'), -17
             ('*', 'C'), -17
             ('*', 'Q'), -17
             ('*', 'E'), -17
             ('*', 'G'), -17
             ('*', 'H'), -17
             ('*', 'I'), -17
             ('*', 'L'), -17
             ('*', 'K'), -17
             ('*', 'M'), -17
             ('*', 'F'), -17
             ('*', 'P'), -17
             ('*', 'S'), -17
             ('*', 'T'), -17
             ('*', 'W'), -17
             ('*', 'Y'), -17
             ('*', 'V'), -17
             ('*', 'B'), -17
             ('*', 'Z'), -17
             ('*', 'X'), -17
             ('*', '*'), 1 |]
          |> Map.ofArray
          PAM70,
          [| ('A', 'A'), 5
             ('A', 'R'), -4
             ('A', 'N'), -2
             ('A', 'D'), -1
             ('A', 'C'), -4
             ('A', 'Q'), -2
             ('A', 'E'), -1
             ('A', 'G'), 0
             ('A', 'H'), -4
             ('A', 'I'), -2
             ('A', 'L'), -4
             ('A', 'K'), -4
             ('A', 'M'), -3
             ('A', 'F'), -6
             ('A', 'P'), 0
             ('A', 'S'), 1
             ('A', 'T'), 1
             ('A', 'W'), -9
             ('A', 'Y'), -5
             ('A', 'V'), -1
             ('A', 'B'), -1
             ('A', 'Z'), -1
             ('A', 'X'), -2
             ('A', '*'), -11
             ('R', 'A'), -4
             ('R', 'R'), 8
             ('R', 'N'), -3
             ('R', 'D'), -6
             ('R', 'C'), -5
             ('R', 'Q'), 0
             ('R', 'E'), -5
             ('R', 'G'), -6
             ('R', 'H'), 0
             ('R', 'I'), -3
             ('R', 'L'), -6
             ('R', 'K'), 2
             ('R', 'M'), -2
             ('R', 'F'), -7
             ('R', 'P'), -2
             ('R', 'S'), -1
             ('R', 'T'), -4
             ('R', 'W'), 0
             ('R', 'Y'), -7
             ('R', 'V'), -5
             ('R', 'B'), -4
             ('R', 'Z'), -2
             ('R', 'X'), -3
             ('R', '*'), -11
             ('N', 'A'), -2
             ('N', 'R'), -3
             ('N', 'N'), 6
             ('N', 'D'), 3
             ('N', 'C'), -7
             ('N', 'Q'), -1
             ('N', 'E'), 0
             ('N', 'G'), -1
             ('N', 'H'), 1
             ('N', 'I'), -3
             ('N', 'L'), -5
             ('N', 'K'), 0
             ('N', 'M'), -5
             ('N', 'F'), -6
             ('N', 'P'), -3
             ('N', 'S'), 1
             ('N', 'T'), 0
             ('N', 'W'), -6
             ('N', 'Y'), -3
             ('N', 'V'), -5
             ('N', 'B'), 5
             ('N', 'Z'), -1
             ('N', 'X'), -2
             ('N', '*'), -11
             ('D', 'A'), -1
             ('D', 'R'), -6
             ('D', 'N'), 3
             ('D', 'D'), 6
             ('D', 'C'), -9
             ('D', 'Q'), 0
             ('D', 'E'), 3
             ('D', 'G'), -1
             ('D', 'H'), -1
             ('D', 'I'), -5
             ('D', 'L'), -8
             ('D', 'K'), -2
             ('D', 'M'), -7
             ('D', 'F'), -10
             ('D', 'P'), -4
             ('D', 'S'), -1
             ('D', 'T'), -2
             ('D', 'W'), -10
             ('D', 'Y'), -7
             ('D', 'V'), -5
             ('D', 'B'), 5
             ('D', 'Z'), 2
             ('D', 'X'), -3
             ('D', '*'), -11
             ('C', 'A'), -4
             ('C', 'R'), -5
             ('C', 'N'), -7
             ('C', 'D'), -9
             ('C', 'C'), 9
             ('C', 'Q'), -9
             ('C', 'E'), -9
             ('C', 'G'), -6
             ('C', 'H'), -5
             ('C', 'I'), -4
             ('C', 'L'), -10
             ('C', 'K'), -9
             ('C', 'M'), -9
             ('C', 'F'), -8
             ('C', 'P'), -5
             ('C', 'S'), -1
             ('C', 'T'), -5
             ('C', 'W'), -11
             ('C', 'Y'), -2
             ('C', 'V'), -4
             ('C', 'B'), -8
             ('C', 'Z'), -9
             ('C', 'X'), -6
             ('C', '*'), -11
             ('Q', 'A'), -2
             ('Q', 'R'), 0
             ('Q', 'N'), -1
             ('Q', 'D'), 0
             ('Q', 'C'), -9
             ('Q', 'Q'), 7
             ('Q', 'E'), 2
             ('Q', 'G'), -4
             ('Q', 'H'), 2
             ('Q', 'I'), -5
             ('Q', 'L'), -3
             ('Q', 'K'), -1
             ('Q', 'M'), -2
             ('Q', 'F'), -9
             ('Q', 'P'), -1
             ('Q', 'S'), -3
             ('Q', 'T'), -3
             ('Q', 'W'), -8
             ('Q', 'Y'), -8
             ('Q', 'V'), -4
             ('Q', 'B'), -1
             ('Q', 'Z'), 5
             ('Q', 'X'), -2
             ('Q', '*'), -11
             ('E', 'A'), -1
             ('E', 'R'), -5
             ('E', 'N'), 0
             ('E', 'D'), 3
             ('E', 'C'), -9
             ('E', 'Q'), 2
             ('E', 'E'), 6
             ('E', 'G'), -2
             ('E', 'H'), -2
             ('E', 'I'), -4
             ('E', 'L'), -6
             ('E', 'K'), -2
             ('E', 'M'), -4
             ('E', 'F'), -9
             ('E', 'P'), -3
             ('E', 'S'), -2
             ('E', 'T'), -3
             ('E', 'W'), -11
             ('E', 'Y'), -6
             ('E', 'V'), -4
             ('E', 'B'), 2
             ('E', 'Z'), 5
             ('E', 'X'), -3
             ('E', '*'), -11
             ('G', 'A'), 0
             ('G', 'R'), -6
             ('G', 'N'), -1
             ('G', 'D'), -1
             ('G', 'C'), -6
             ('G', 'Q'), -4
             ('G', 'E'), -2
             ('G', 'G'), 6
             ('G', 'H'), -6
             ('G', 'I'), -6
             ('G', 'L'), -7
             ('G', 'K'), -5
             ('G', 'M'), -6
             ('G', 'F'), -7
             ('G', 'P'), -3
             ('G', 'S'), 0
             ('G', 'T'), -3
             ('G', 'W'), -10
             ('G', 'Y'), -9
             ('G', 'V'), -3
             ('G', 'B'), -1
             ('G', 'Z'), -3
             ('G', 'X'), -3
             ('G', '*'), -11
             ('H', 'A'), -4
             ('H', 'R'), 0
             ('H', 'N'), 1
             ('H', 'D'), -1
             ('H', 'C'), -5
             ('H', 'Q'), 2
             ('H', 'E'), -2
             ('H', 'G'), -6
             ('H', 'H'), 8
             ('H', 'I'), -6
             ('H', 'L'), -4
             ('H', 'K'), -3
             ('H', 'M'), -6
             ('H', 'F'), -4
             ('H', 'P'), -2
             ('H', 'S'), -3
             ('H', 'T'), -4
             ('H', 'W'), -5
             ('H', 'Y'), -1
             ('H', 'V'), -4
             ('H', 'B'), 0
             ('H', 'Z'), 1
             ('H', 'X'), -3
             ('H', '*'), -11
             ('I', 'A'), -2
             ('I', 'R'), -3
             ('I', 'N'), -3
             ('I', 'D'), -5
             ('I', 'C'), -4
             ('I', 'Q'), -5
             ('I', 'E'), -4
             ('I', 'G'), -6
             ('I', 'H'), -6
             ('I', 'I'), 7
             ('I', 'L'), 1
             ('I', 'K'), -4
             ('I', 'M'), 1
             ('I', 'F'), 0
             ('I', 'P'), -5
             ('I', 'S'), -4
             ('I', 'T'), -1
             ('I', 'W'), -9
             ('I', 'Y'), -4
             ('I', 'V'), 3
             ('I', 'B'), -4
             ('I', 'Z'), -4
             ('I', 'X'), -3
             ('I', '*'), -11
             ('L', 'A'), -4
             ('L', 'R'), -6
             ('L', 'N'), -5
             ('L', 'D'), -8
             ('L', 'C'), -10
             ('L', 'Q'), -3
             ('L', 'E'), -6
             ('L', 'G'), -7
             ('L', 'H'), -4
             ('L', 'I'), 1
             ('L', 'L'), 6
             ('L', 'K'), -5
             ('L', 'M'), 2
             ('L', 'F'), -1
             ('L', 'P'), -5
             ('L', 'S'), -6
             ('L', 'T'), -4
             ('L', 'W'), -4
             ('L', 'Y'), -4
             ('L', 'V'), 0
             ('L', 'B'), -6
             ('L', 'Z'), -4
             ('L', 'X'), -4
             ('L', '*'), -11
             ('K', 'A'), -4
             ('K', 'R'), 2
             ('K', 'N'), 0
             ('K', 'D'), -2
             ('K', 'C'), -9
             ('K', 'Q'), -1
             ('K', 'E'), -2
             ('K', 'G'), -5
             ('K', 'H'), -3
             ('K', 'I'), -4
             ('K', 'L'), -5
             ('K', 'K'), 6
             ('K', 'M'), 0
             ('K', 'F'), -9
             ('K', 'P'), -4
             ('K', 'S'), -2
             ('K', 'T'), -1
             ('K', 'W'), -7
             ('K', 'Y'), -7
             ('K', 'V'), -6
             ('K', 'B'), -1
             ('K', 'Z'), -2
             ('K', 'X'), -3
             ('K', '*'), -11
             ('M', 'A'), -3
             ('M', 'R'), -2
             ('M', 'N'), -5
             ('M', 'D'), -7
             ('M', 'C'), -9
             ('M', 'Q'), -2
             ('M', 'E'), -4
             ('M', 'G'), -6
             ('M', 'H'), -6
             ('M', 'I'), 1
             ('M', 'L'), 2
             ('M', 'K'), 0
             ('M', 'M'), 10
             ('M', 'F'), -2
             ('M', 'P'), -5
             ('M', 'S'), -3
             ('M', 'T'), -2
             ('M', 'W'), -8
             ('M', 'Y'), -7
             ('M', 'V'), 0
             ('M', 'B'), -6
             ('M', 'Z'), -3
             ('M', 'X'), -3
             ('M', '*'), -11
             ('F', 'A'), -6
             ('F', 'R'), -7
             ('F', 'N'), -6
             ('F', 'D'), -10
             ('F', 'C'), -8
             ('F', 'Q'), -9
             ('F', 'E'), -9
             ('F', 'G'), -7
             ('F', 'H'), -4
             ('F', 'I'), 0
             ('F', 'L'), -1
             ('F', 'K'), -9
             ('F', 'M'), -2
             ('F', 'F'), 8
             ('F', 'P'), -7
             ('F', 'S'), -4
             ('F', 'T'), -6
             ('F', 'W'), -2
             ('F', 'Y'), 4
             ('F', 'V'), -5
             ('F', 'B'), -7
             ('F', 'Z'), -9
             ('F', 'X'), -5
             ('F', '*'), -11
             ('P', 'A'), 0
             ('P', 'R'), -2
             ('P', 'N'), -3
             ('P', 'D'), -4
             ('P', 'C'), -5
             ('P', 'Q'), -1
             ('P', 'E'), -3
             ('P', 'G'), -3
             ('P', 'H'), -2
             ('P', 'I'), -5
             ('P', 'L'), -5
             ('P', 'K'), -4
             ('P', 'M'), -5
             ('P', 'F'), -7
             ('P', 'P'), 7
             ('P', 'S'), 0
             ('P', 'T'), -2
             ('P', 'W'), -9
             ('P', 'Y'), -9
             ('P', 'V'), -3
             ('P', 'B'), -4
             ('P', 'Z'), -2
             ('P', 'X'), -3
             ('P', '*'), -11
             ('S', 'A'), 1
             ('S', 'R'), -1
             ('S', 'N'), 1
             ('S', 'D'), -1
             ('S', 'C'), -1
             ('S', 'Q'), -3
             ('S', 'E'), -2
             ('S', 'G'), 0
             ('S', 'H'), -3
             ('S', 'I'), -4
             ('S', 'L'), -6
             ('S', 'K'), -2
             ('S', 'M'), -3
             ('S', 'F'), -4
             ('S', 'P'), 0
             ('S', 'S'), 5
             ('S', 'T'), 2
             ('S', 'W'), -3
             ('S', 'Y'), -5
             ('S', 'V'), -3
             ('S', 'B'), 0
             ('S', 'Z'), -2
             ('S', 'X'), -1
             ('S', '*'), -11
             ('T', 'A'), 1
             ('T', 'R'), -4
             ('T', 'N'), 0
             ('T', 'D'), -2
             ('T', 'C'), -5
             ('T', 'Q'), -3
             ('T', 'E'), -3
             ('T', 'G'), -3
             ('T', 'H'), -4
             ('T', 'I'), -1
             ('T', 'L'), -4
             ('T', 'K'), -1
             ('T', 'M'), -2
             ('T', 'F'), -6
             ('T', 'P'), -2
             ('T', 'S'), 2
             ('T', 'T'), 6
             ('T', 'W'), -8
             ('T', 'Y'), -4
             ('T', 'V'), -1
             ('T', 'B'), -1
             ('T', 'Z'), -3
             ('T', 'X'), -2
             ('T', '*'), -11
             ('W', 'A'), -9
             ('W', 'R'), 0
             ('W', 'N'), -6
             ('W', 'D'), -10
             ('W', 'C'), -11
             ('W', 'Q'), -8
             ('W', 'E'), -11
             ('W', 'G'), -10
             ('W', 'H'), -5
             ('W', 'I'), -9
             ('W', 'L'), -4
             ('W', 'K'), -7
             ('W', 'M'), -8
             ('W', 'F'), -2
             ('W', 'P'), -9
             ('W', 'S'), -3
             ('W', 'T'), -8
             ('W', 'W'), 13
             ('W', 'Y'), -3
             ('W', 'V'), -10
             ('W', 'B'), -7
             ('W', 'Z'), -10
             ('W', 'X'), -7
             ('W', '*'), -11
             ('Y', 'A'), -5
             ('Y', 'R'), -7
             ('Y', 'N'), -3
             ('Y', 'D'), -7
             ('Y', 'C'), -2
             ('Y', 'Q'), -8
             ('Y', 'E'), -6
             ('Y', 'G'), -9
             ('Y', 'H'), -1
             ('Y', 'I'), -4
             ('Y', 'L'), -4
             ('Y', 'K'), -7
             ('Y', 'M'), -7
             ('Y', 'F'), 4
             ('Y', 'P'), -9
             ('Y', 'S'), -5
             ('Y', 'T'), -4
             ('Y', 'W'), -3
             ('Y', 'Y'), 9
             ('Y', 'V'), -5
             ('Y', 'B'), -4
             ('Y', 'Z'), -7
             ('Y', 'X'), -5
             ('Y', '*'), -11
             ('V', 'A'), -1
             ('V', 'R'), -5
             ('V', 'N'), -5
             ('V', 'D'), -5
             ('V', 'C'), -4
             ('V', 'Q'), -4
             ('V', 'E'), -4
             ('V', 'G'), -3
             ('V', 'H'), -4
             ('V', 'I'), 3
             ('V', 'L'), 0
             ('V', 'K'), -6
             ('V', 'M'), 0
             ('V', 'F'), -5
             ('V', 'P'), -3
             ('V', 'S'), -3
             ('V', 'T'), -1
             ('V', 'W'), -10
             ('V', 'Y'), -5
             ('V', 'V'), 6
             ('V', 'B'), -5
             ('V', 'Z'), -4
             ('V', 'X'), -2
             ('V', '*'), -11
             ('B', 'A'), -1
             ('B', 'R'), -4
             ('B', 'N'), 5
             ('B', 'D'), 5
             ('B', 'C'), -8
             ('B', 'Q'), -1
             ('B', 'E'), 2
             ('B', 'G'), -1
             ('B', 'H'), 0
             ('B', 'I'), -4
             ('B', 'L'), -6
             ('B', 'K'), -1
             ('B', 'M'), -6
             ('B', 'F'), -7
             ('B', 'P'), -4
             ('B', 'S'), 0
             ('B', 'T'), -1
             ('B', 'W'), -7
             ('B', 'Y'), -4
             ('B', 'V'), -5
             ('B', 'B'), 5
             ('B', 'Z'), 1
             ('B', 'X'), -2
             ('B', '*'), -11
             ('Z', 'A'), -1
             ('Z', 'R'), -2
             ('Z', 'N'), -1
             ('Z', 'D'), 2
             ('Z', 'C'), -9
             ('Z', 'Q'), 5
             ('Z', 'E'), 5
             ('Z', 'G'), -3
             ('Z', 'H'), 1
             ('Z', 'I'), -4
             ('Z', 'L'), -4
             ('Z', 'K'), -2
             ('Z', 'M'), -3
             ('Z', 'F'), -9
             ('Z', 'P'), -2
             ('Z', 'S'), -2
             ('Z', 'T'), -3
             ('Z', 'W'), -10
             ('Z', 'Y'), -7
             ('Z', 'V'), -4
             ('Z', 'B'), 1
             ('Z', 'Z'), 5
             ('Z', 'X'), -3
             ('Z', '*'), -11
             ('X', 'A'), -2
             ('X', 'R'), -3
             ('X', 'N'), -2
             ('X', 'D'), -3
             ('X', 'C'), -6
             ('X', 'Q'), -2
             ('X', 'E'), -3
             ('X', 'G'), -3
             ('X', 'H'), -3
             ('X', 'I'), -3
             ('X', 'L'), -4
             ('X', 'K'), -3
             ('X', 'M'), -3
             ('X', 'F'), -5
             ('X', 'P'), -3
             ('X', 'S'), -1
             ('X', 'T'), -2
             ('X', 'W'), -7
             ('X', 'Y'), -5
             ('X', 'V'), -2
             ('X', 'B'), -2
             ('X', 'Z'), -3
             ('X', 'X'), -3
             ('X', '*'), -11
             ('*', 'A'), -11
             ('*', 'R'), -11
             ('*', 'N'), -11
             ('*', 'D'), -11
             ('*', 'C'), -11
             ('*', 'Q'), -11
             ('*', 'E'), -11
             ('*', 'G'), -11
             ('*', 'H'), -11
             ('*', 'I'), -11
             ('*', 'L'), -11
             ('*', 'K'), -11
             ('*', 'M'), -11
             ('*', 'F'), -11
             ('*', 'P'), -11
             ('*', 'S'), -11
             ('*', 'T'), -11
             ('*', 'W'), -11
             ('*', 'Y'), -11
             ('*', 'V'), -11
             ('*', 'B'), -11
             ('*', 'Z'), -11
             ('*', 'X'), -11
             ('*', '*'), 1 |]
          |> Map.ofArray
          PAM250,
          [| ('A', 'A'), 2
             ('A', 'R'), -2
             ('A', 'N'), 0
             ('A', 'D'), 0
             ('A', 'C'), -2
             ('A', 'Q'), 0
             ('A', 'E'), 0
             ('A', 'G'), 1
             ('A', 'H'), -1
             ('A', 'I'), -1
             ('A', 'L'), -2
             ('A', 'K'), -1
             ('A', 'M'), -1
             ('A', 'F'), -3
             ('A', 'P'), 1
             ('A', 'S'), 1
             ('A', 'T'), 1
             ('A', 'W'), -6
             ('A', 'Y'), -3
             ('A', 'V'), 0
             ('A', 'B'), 0
             ('A', 'Z'), 0
             ('A', 'X'), 0
             ('A', '*'), -8
             ('R', 'A'), -2
             ('R', 'R'), 6
             ('R', 'N'), 0
             ('R', 'D'), -1
             ('R', 'C'), -4
             ('R', 'Q'), 1
             ('R', 'E'), -1
             ('R', 'G'), -3
             ('R', 'H'), 2
             ('R', 'I'), -2
             ('R', 'L'), -3
             ('R', 'K'), 3
             ('R', 'M'), 0
             ('R', 'F'), -4
             ('R', 'P'), 0
             ('R', 'S'), 0
             ('R', 'T'), -1
             ('R', 'W'), 2
             ('R', 'Y'), -4
             ('R', 'V'), -2
             ('R', 'B'), -1
             ('R', 'Z'), 0
             ('R', 'X'), -1
             ('R', '*'), -8
             ('N', 'A'), 0
             ('N', 'R'), 0
             ('N', 'N'), 2
             ('N', 'D'), 2
             ('N', 'C'), -4
             ('N', 'Q'), 1
             ('N', 'E'), 1
             ('N', 'G'), 0
             ('N', 'H'), 2
             ('N', 'I'), -2
             ('N', 'L'), -3
             ('N', 'K'), 1
             ('N', 'M'), -2
             ('N', 'F'), -3
             ('N', 'P'), 0
             ('N', 'S'), 1
             ('N', 'T'), 0
             ('N', 'W'), -4
             ('N', 'Y'), -2
             ('N', 'V'), -2
             ('N', 'B'), 2
             ('N', 'Z'), 1
             ('N', 'X'), 0
             ('N', '*'), -8
             ('D', 'A'), 0
             ('D', 'R'), -1
             ('D', 'N'), 2
             ('D', 'D'), 4
             ('D', 'C'), -5
             ('D', 'Q'), 2
             ('D', 'E'), 3
             ('D', 'G'), 1
             ('D', 'H'), 1
             ('D', 'I'), -2
             ('D', 'L'), -4
             ('D', 'K'), 0
             ('D', 'M'), -3
             ('D', 'F'), -6
             ('D', 'P'), -1
             ('D', 'S'), 0
             ('D', 'T'), 0
             ('D', 'W'), -7
             ('D', 'Y'), -4
             ('D', 'V'), -2
             ('D', 'B'), 3
             ('D', 'Z'), 3
             ('D', 'X'), -1
             ('D', '*'), -8
             ('C', 'A'), -2
             ('C', 'R'), -4
             ('C', 'N'), -4
             ('C', 'D'), -5
             ('C', 'C'), 12
             ('C', 'Q'), -5
             ('C', 'E'), -5
             ('C', 'G'), -3
             ('C', 'H'), -3
             ('C', 'I'), -2
             ('C', 'L'), -6
             ('C', 'K'), -5
             ('C', 'M'), -5
             ('C', 'F'), -4
             ('C', 'P'), -3
             ('C', 'S'), 0
             ('C', 'T'), -2
             ('C', 'W'), -8
             ('C', 'Y'), 0
             ('C', 'V'), -2
             ('C', 'B'), -4
             ('C', 'Z'), -5
             ('C', 'X'), -3
             ('C', '*'), -8
             ('Q', 'A'), 0
             ('Q', 'R'), 1
             ('Q', 'N'), 1
             ('Q', 'D'), 2
             ('Q', 'C'), -5
             ('Q', 'Q'), 4
             ('Q', 'E'), 2
             ('Q', 'G'), -1
             ('Q', 'H'), 3
             ('Q', 'I'), -2
             ('Q', 'L'), -2
             ('Q', 'K'), 1
             ('Q', 'M'), -1
             ('Q', 'F'), -5
             ('Q', 'P'), 0
             ('Q', 'S'), -1
             ('Q', 'T'), -1
             ('Q', 'W'), -5
             ('Q', 'Y'), -4
             ('Q', 'V'), -2
             ('Q', 'B'), 1
             ('Q', 'Z'), 3
             ('Q', 'X'), -1
             ('Q', '*'), -8
             ('E', 'A'), 0
             ('E', 'R'), -1
             ('E', 'N'), 1
             ('E', 'D'), 3
             ('E', 'C'), -5
             ('E', 'Q'), 2
             ('E', 'E'), 4
             ('E', 'G'), 0
             ('E', 'H'), 1
             ('E', 'I'), -2
             ('E', 'L'), -3
             ('E', 'K'), 0
             ('E', 'M'), -2
             ('E', 'F'), -5
             ('E', 'P'), -1
             ('E', 'S'), 0
             ('E', 'T'), 0
             ('E', 'W'), -7
             ('E', 'Y'), -4
             ('E', 'V'), -2
             ('E', 'B'), 3
             ('E', 'Z'), 3
             ('E', 'X'), -1
             ('E', '*'), -8
             ('G', 'A'), 1
             ('G', 'R'), -3
             ('G', 'N'), 0
             ('G', 'D'), 1
             ('G', 'C'), -3
             ('G', 'Q'), -1
             ('G', 'E'), 0
             ('G', 'G'), 5
             ('G', 'H'), -2
             ('G', 'I'), -3
             ('G', 'L'), -4
             ('G', 'K'), -2
             ('G', 'M'), -3
             ('G', 'F'), -5
             ('G', 'P'), 0
             ('G', 'S'), 1
             ('G', 'T'), 0
             ('G', 'W'), -7
             ('G', 'Y'), -5
             ('G', 'V'), -1
             ('G', 'B'), 0
             ('G', 'Z'), 0
             ('G', 'X'), -1
             ('G', '*'), -8
             ('H', 'A'), -1
             ('H', 'R'), 2
             ('H', 'N'), 2
             ('H', 'D'), 1
             ('H', 'C'), -3
             ('H', 'Q'), 3
             ('H', 'E'), 1
             ('H', 'G'), -2
             ('H', 'H'), 6
             ('H', 'I'), -2
             ('H', 'L'), -2
             ('H', 'K'), 0
             ('H', 'M'), -2
             ('H', 'F'), -2
             ('H', 'P'), 0
             ('H', 'S'), -1
             ('H', 'T'), -1
             ('H', 'W'), -3
             ('H', 'Y'), 0
             ('H', 'V'), -2
             ('H', 'B'), 1
             ('H', 'Z'), 2
             ('H', 'X'), -1
             ('H', '*'), -8
             ('I', 'A'), -1
             ('I', 'R'), -2
             ('I', 'N'), -2
             ('I', 'D'), -2
             ('I', 'C'), -2
             ('I', 'Q'), -2
             ('I', 'E'), -2
             ('I', 'G'), -3
             ('I', 'H'), -2
             ('I', 'I'), 5
             ('I', 'L'), 2
             ('I', 'K'), -2
             ('I', 'M'), 2
             ('I', 'F'), 1
             ('I', 'P'), -2
             ('I', 'S'), -1
             ('I', 'T'), 0
             ('I', 'W'), -5
             ('I', 'Y'), -1
             ('I', 'V'), 4
             ('I', 'B'), -2
             ('I', 'Z'), -2
             ('I', 'X'), -1
             ('I', '*'), -8
             ('L', 'A'), -2
             ('L', 'R'), -3
             ('L', 'N'), -3
             ('L', 'D'), -4
             ('L', 'C'), -6
             ('L', 'Q'), -2
             ('L', 'E'), -3
             ('L', 'G'), -4
             ('L', 'H'), -2
             ('L', 'I'), 2
             ('L', 'L'), 6
             ('L', 'K'), -3
             ('L', 'M'), 4
             ('L', 'F'), 2
             ('L', 'P'), -3
             ('L', 'S'), -3
             ('L', 'T'), -2
             ('L', 'W'), -2
             ('L', 'Y'), -1
             ('L', 'V'), 2
             ('L', 'B'), -3
             ('L', 'Z'), -3
             ('L', 'X'), -1
             ('L', '*'), -8
             ('K', 'A'), -1
             ('K', 'R'), 3
             ('K', 'N'), 1
             ('K', 'D'), 0
             ('K', 'C'), -5
             ('K', 'Q'), 1
             ('K', 'E'), 0
             ('K', 'G'), -2
             ('K', 'H'), 0
             ('K', 'I'), -2
             ('K', 'L'), -3
             ('K', 'K'), 5
             ('K', 'M'), 0
             ('K', 'F'), -5
             ('K', 'P'), -1
             ('K', 'S'), 0
             ('K', 'T'), 0
             ('K', 'W'), -3
             ('K', 'Y'), -4
             ('K', 'V'), -2
             ('K', 'B'), 1
             ('K', 'Z'), 0
             ('K', 'X'), -1
             ('K', '*'), -8
             ('M', 'A'), -1
             ('M', 'R'), 0
             ('M', 'N'), -2
             ('M', 'D'), -3
             ('M', 'C'), -5
             ('M', 'Q'), -1
             ('M', 'E'), -2
             ('M', 'G'), -3
             ('M', 'H'), -2
             ('M', 'I'), 2
             ('M', 'L'), 4
             ('M', 'K'), 0
             ('M', 'M'), 6
             ('M', 'F'), 0
             ('M', 'P'), -2
             ('M', 'S'), -2
             ('M', 'T'), -1
             ('M', 'W'), -4
             ('M', 'Y'), -2
             ('M', 'V'), 2
             ('M', 'B'), -2
             ('M', 'Z'), -2
             ('M', 'X'), -1
             ('M', '*'), -8
             ('F', 'A'), -3
             ('F', 'R'), -4
             ('F', 'N'), -3
             ('F', 'D'), -6
             ('F', 'C'), -4
             ('F', 'Q'), -5
             ('F', 'E'), -5
             ('F', 'G'), -5
             ('F', 'H'), -2
             ('F', 'I'), 1
             ('F', 'L'), 2
             ('F', 'K'), -5
             ('F', 'M'), 0
             ('F', 'F'), 9
             ('F', 'P'), -5
             ('F', 'S'), -3
             ('F', 'T'), -3
             ('F', 'W'), 0
             ('F', 'Y'), 7
             ('F', 'V'), -1
             ('F', 'B'), -4
             ('F', 'Z'), -5
             ('F', 'X'), -2
             ('F', '*'), -8
             ('P', 'A'), 1
             ('P', 'R'), 0
             ('P', 'N'), 0
             ('P', 'D'), -1
             ('P', 'C'), -3
             ('P', 'Q'), 0
             ('P', 'E'), -1
             ('P', 'G'), 0
             ('P', 'H'), 0
             ('P', 'I'), -2
             ('P', 'L'), -3
             ('P', 'K'), -1
             ('P', 'M'), -2
             ('P', 'F'), -5
             ('P', 'P'), 6
             ('P', 'S'), 1
             ('P', 'T'), 0
             ('P', 'W'), -6
             ('P', 'Y'), -5
             ('P', 'V'), -1
             ('P', 'B'), -1
             ('P', 'Z'), 0
             ('P', 'X'), -1
             ('P', '*'), -8
             ('S', 'A'), 1
             ('S', 'R'), 0
             ('S', 'N'), 1
             ('S', 'D'), 0
             ('S', 'C'), 0
             ('S', 'Q'), -1
             ('S', 'E'), 0
             ('S', 'G'), 1
             ('S', 'H'), -1
             ('S', 'I'), -1
             ('S', 'L'), -3
             ('S', 'K'), 0
             ('S', 'M'), -2
             ('S', 'F'), -3
             ('S', 'P'), 1
             ('S', 'S'), 2
             ('S', 'T'), 1
             ('S', 'W'), -2
             ('S', 'Y'), -3
             ('S', 'V'), -1
             ('S', 'B'), 0
             ('S', 'Z'), 0
             ('S', 'X'), 0
             ('S', '*'), -8
             ('T', 'A'), 1
             ('T', 'R'), -1
             ('T', 'N'), 0
             ('T', 'D'), 0
             ('T', 'C'), -2
             ('T', 'Q'), -1
             ('T', 'E'), 0
             ('T', 'G'), 0
             ('T', 'H'), -1
             ('T', 'I'), 0
             ('T', 'L'), -2
             ('T', 'K'), 0
             ('T', 'M'), -1
             ('T', 'F'), -3
             ('T', 'P'), 0
             ('T', 'S'), 1
             ('T', 'T'), 3
             ('T', 'W'), -5
             ('T', 'Y'), -3
             ('T', 'V'), 0
             ('T', 'B'), 0
             ('T', 'Z'), -1
             ('T', 'X'), 0
             ('T', '*'), -8
             ('W', 'A'), -6
             ('W', 'R'), 2
             ('W', 'N'), -4
             ('W', 'D'), -7
             ('W', 'C'), -8
             ('W', 'Q'), -5
             ('W', 'E'), -7
             ('W', 'G'), -7
             ('W', 'H'), -3
             ('W', 'I'), -5
             ('W', 'L'), -2
             ('W', 'K'), -3
             ('W', 'M'), -4
             ('W', 'F'), 0
             ('W', 'P'), -6
             ('W', 'S'), -2
             ('W', 'T'), -5
             ('W', 'W'), 17
             ('W', 'Y'), 0
             ('W', 'V'), -6
             ('W', 'B'), -5
             ('W', 'Z'), -6
             ('W', 'X'), -4
             ('W', '*'), -8
             ('Y', 'A'), -3
             ('Y', 'R'), -4
             ('Y', 'N'), -2
             ('Y', 'D'), -4
             ('Y', 'C'), 0
             ('Y', 'Q'), -4
             ('Y', 'E'), -4
             ('Y', 'G'), -5
             ('Y', 'H'), 0
             ('Y', 'I'), -1
             ('Y', 'L'), -1
             ('Y', 'K'), -4
             ('Y', 'M'), -2
             ('Y', 'F'), 7
             ('Y', 'P'), -5
             ('Y', 'S'), -3
             ('Y', 'T'), -3
             ('Y', 'W'), 0
             ('Y', 'Y'), 10
             ('Y', 'V'), -2
             ('Y', 'B'), -3
             ('Y', 'Z'), -4
             ('Y', 'X'), -2
             ('Y', '*'), -8
             ('V', 'A'), 0
             ('V', 'R'), -2
             ('V', 'N'), -2
             ('V', 'D'), -2
             ('V', 'C'), -2
             ('V', 'Q'), -2
             ('V', 'E'), -2
             ('V', 'G'), -1
             ('V', 'H'), -2
             ('V', 'I'), 4
             ('V', 'L'), 2
             ('V', 'K'), -2
             ('V', 'M'), 2
             ('V', 'F'), -1
             ('V', 'P'), -1
             ('V', 'S'), -1
             ('V', 'T'), 0
             ('V', 'W'), -6
             ('V', 'Y'), -2
             ('V', 'V'), 4
             ('V', 'B'), -2
             ('V', 'Z'), -2
             ('V', 'X'), -1
             ('V', '*'), -8
             ('B', 'A'), 0
             ('B', 'R'), -1
             ('B', 'N'), 2
             ('B', 'D'), 3
             ('B', 'C'), -4
             ('B', 'Q'), 1
             ('B', 'E'), 3
             ('B', 'G'), 0
             ('B', 'H'), 1
             ('B', 'I'), -2
             ('B', 'L'), -3
             ('B', 'K'), 1
             ('B', 'M'), -2
             ('B', 'F'), -4
             ('B', 'P'), -1
             ('B', 'S'), 0
             ('B', 'T'), 0
             ('B', 'W'), -5
             ('B', 'Y'), -3
             ('B', 'V'), -2
             ('B', 'B'), 3
             ('B', 'Z'), 2
             ('B', 'X'), -1
             ('B', '*'), -8
             ('Z', 'A'), 0
             ('Z', 'R'), 0
             ('Z', 'N'), 1
             ('Z', 'D'), 3
             ('Z', 'C'), -5
             ('Z', 'Q'), 3
             ('Z', 'E'), 3
             ('Z', 'G'), 0
             ('Z', 'H'), 2
             ('Z', 'I'), -2
             ('Z', 'L'), -3
             ('Z', 'K'), 0
             ('Z', 'M'), -2
             ('Z', 'F'), -5
             ('Z', 'P'), 0
             ('Z', 'S'), 0
             ('Z', 'T'), -1
             ('Z', 'W'), -6
             ('Z', 'Y'), -4
             ('Z', 'V'), -2
             ('Z', 'B'), 2
             ('Z', 'Z'), 3
             ('Z', 'X'), -1
             ('Z', '*'), -8
             ('X', 'A'), 0
             ('X', 'R'), -1
             ('X', 'N'), 0
             ('X', 'D'), -1
             ('X', 'C'), -3
             ('X', 'Q'), -1
             ('X', 'E'), -1
             ('X', 'G'), -1
             ('X', 'H'), -1
             ('X', 'I'), -1
             ('X', 'L'), -1
             ('X', 'K'), -1
             ('X', 'M'), -1
             ('X', 'F'), -2
             ('X', 'P'), -1
             ('X', 'S'), 0
             ('X', 'T'), 0
             ('X', 'W'), -4
             ('X', 'Y'), -2
             ('X', 'V'), -1
             ('X', 'B'), -1
             ('X', 'Z'), -1
             ('X', 'X'), -1
             ('X', '*'), -8
             ('*', 'A'), -8
             ('*', 'R'), -8
             ('*', 'N'), -8
             ('*', 'D'), -8
             ('*', 'C'), -8
             ('*', 'Q'), -8
             ('*', 'E'), -8
             ('*', 'G'), -8
             ('*', 'H'), -8
             ('*', 'I'), -8
             ('*', 'L'), -8
             ('*', 'K'), -8
             ('*', 'M'), -8
             ('*', 'F'), -8
             ('*', 'P'), -8
             ('*', 'S'), -8
             ('*', 'T'), -8
             ('*', 'W'), -8
             ('*', 'Y'), -8
             ('*', 'V'), -8
             ('*', 'B'), -8
             ('*', 'Z'), -8
             ('*', 'X'), -8
             ('*', '*'), 1 |]
          |> Map.ofArray ]
        |> Map.ofList
