Alphabet := "\_ABCDEFGHIJKLMNOPQRSTUVWXYZ.?'@abcdefghijklmnopqrstuvwxyz!/"; N:= 59; letterpad := function(letter) local j, y; for j in [1..Size(Alphabet)] do if Alphabet[j] = letter then y := j-1; fi; od; return y; end; unsum := function(paddedsum) local x,y,z; z := paddedsum mod N; paddedsum := (paddedsum -z)/N; y := paddedsum mod N; paddedsum := (paddedsum -y)/N; x := paddedsum; return [x,y,z]; end; unpad := function(paddedsum) local vectorOfThree, x,y,z; vectorOfThree := unsum(paddedsum); x := vectorOfThree[1]; y := vectorOfThree[2]; z := vectorOfThree[3]; return [Alphabet[x+1], Alphabet[y+1], Alphabet[z+1]]; end;