func UintFromBytes(b []byte) uint {
	if len(b) < BytesPerUint {
		panic("too small buffer")
	}
	return *(*uint)(unsafe.Pointer(&b[0]))
}
UintFromBytes extracts 64-bit unsigned integer from bytes in processor byte order
package md
import (
	"encoding/binary"
	"time"
	"unsafe"
)
const UintSizeShift = 5 + (^uint(0) >> 63)
const BitsPerUint = (1 << UintSizeShift)
const BytesPerUint = BitsPerUint / 8
const UintSizeMask = BitsPerUint - 1
const BitsPerInt = BitsPerUint
const BytesPerInt = BytesPerUint
const IntSizeMask = UintSizeMask
const MaxInt = int(1 << (UintSizeShift - 1))
const MinInt = MaxInt+1
const MinExactFloat64Int = -18014398509481984  
const MaxExactFloat64Int = 18014398509481984   
var (
	NativeEndian   binary.ByteOrder
)
func UintToBytes(v uint, b []byte) {
	if len(b) < BytesPerUint {
		panic("too small buffer")
	}
	*(*uint)(unsafe.Pointer(&b[0])) = v
}