def _fnv_1a_24(data, _ord=_ord):
    """FNV-1a 24 bit hash"""
    hash_size = 2 ** 32
    fnv_32_prime = 16777619
    fnv_1a_hash = 2166136261
    for elt in data:
        fnv_1a_hash = fnv_1a_hash ^ _ord(elt)
        fnv_1a_hash = fnv_1a_hash * fnv_32_prime % hash_size
    return fnv_1a_hash >> 24 ^ fnv_1a_hash & 16777215
