func SetDigits(s string) error {
	if len(s) == 32 {
		digits = s
		return nil
	}
	return errors.New("crock32.SetDigits: character set can be anything but it must be 32 characters long")
}
SetDigits allows you to change the encoding alphabet (not the decoding alphabet).
The main purpose of this function is to allow upper-case encoding with crock32.SetDigits("0123456789ABCDEFGHJKMNPQRSTVWXYZ")
package crock32
import "errors"
const cutoff uint64 = (1<<64-1)/32 + 1
func Decode(s string) (uint64, error) {
	var n uint64
	for i := 0; i < len(s); i++ {
		var v byte
		d := s[i]
		switch {
		case d == 'O', d == 'o':
			v = '0'
		case d == 'L', d == 'l', d == 'I', d == 'i':
			v = '1'
		case '0' <= d && d <= '9':
			v = d - '0'
		case 'a' <= d && d <= 'h':
			v = d - 'a' + 10
		case 'A' <= d && d <= 'H':
			v = d - 'A' + 10
		case 'j' <= d && d <= 'k':
			v = d - 'a' + 9
		case 'J' <= d && d <= 'K':
			v = d - 'A' + 9
		case 'm' <= d && d <= 'n':
			v = d - 'a' + 8
		case 'M' <= d && d <= 'N':
			v = d - 'A' + 8
		case 'p' <= d && d <= 't':
			v = d - 'a' + 7
		case 'P' <= d && d <= 'T':
			v = d - 'A' + 7
		case 'v' <= d && d <= 'z':
			v = d - 'a' + 6
		case 'V' <= d && d <= 'Z':
			v = d - 'A' + 6
		default:
			return 0, errors.New("crock32.Decode: invalid character " + string(d))
		}
		if n >= cutoff {
			return 0, errors.New("crock32.Decode:" + s + " overflows uint64")
		}
		n = n*32 + uint64(v)
	}
	return n, nil
}
var digits = "0123456789abcdefghjkmnpqrstvwxyz"