func baseHashes(data []byte) [4]uint64 {
	a1 := []byte{1}  
	hasher := murmur3.New128()
	hasher.Write(data)  
	v1, v2 := hasher.Sum128()
	hasher.Write(a1)  
	v3, v4 := hasher.Sum128()
	return [4]uint64{
		v1, v2, v3, v4,
	}
}
baseHashes returns the four hash values of data that are used to create k
hashes
package bloom
import (
	"bytes"
	"encoding/binary"
	"encoding/json"
	"fmt"
	"io"
	"math"
	"github.com/spaolacci/murmur3"
	"github.com/willf/bitset"
)
type BloomFilter struct {
	m uint
	k uint
	b *bitset.BitSet
}
func max(x, y uint) uint {
	if x > y {
		return x
	}
	return y
}
func New(m uint, k uint) *BloomFilter {
	return &BloomFilter{max(1, m), max(1, k), bitset.New(m)}
}
func From(data []uint64, k uint) *BloomFilter {
	m := uint(len(data) * 64)
	return &BloomFilter{m, k, bitset.From(data)}
}