func QuarkHash(data []byte) Hash {
	bmw1 := bmw.New()
	blake1 := blake.New()
	groest1 := groest.New()
	jhash1 := jhash.New()
	keccak1 := keccak.New()
	skein1 := skein.New()

	var out1a [64]byte
	var out2a [64]byte
	out1 := out1a[:]
	out2 := out2a[:]

	blake1.Write(data)
	blake1.Close(out1, 0, 0)

	bmw1.Write(out1)
	bmw1.Close(out2, 0, 0)

	if out2[0]&8 != 0 {
		groest1.Write(out2)
		groest1.Close(out1, 0, 0)
	} else {
		skein1.Write(out2)
		skein1.Close(out1, 0, 0)
	}

	groest1.Reset()
	groest1.Write(out1)
	groest1.Close(out2, 0, 0)

	jhash1.Write(out2)
	jhash1.Close(out1, 0, 0)

	if out1[0]&8 != 0 {
		blake1.Reset()
		blake1.Write(out1)
		blake1.Close(out2, 0, 0)
	} else {
		bmw1.Reset()
		bmw1.Write(out1)
		bmw1.Close(out2, 0, 0)
	}

	keccak1.Write(out2)
	keccak1.Close(out1, 0, 0)

	skein1.Reset()
	skein1.Write(out1)
	skein1.Close(out2, 0, 0)

	if out2[0]&8 != 0 {
		keccak1.Reset()
		keccak1.Write(out2)
		keccak1.Close(out1, 0, 0)
	} else {
		jhash1.Reset()
		jhash1.Write(out2)
		jhash1.Close(out1, 0, 0)
	}

	var out [32]byte

	copy(out[:], out1)

	return Hash(out)
}
// QuarkHash calculates the quarkcoin hash of a specific value
QuarkHash calculates the quarkcoin hash of a specific value
// QuarkHash calculates the quarkcoin hash of a specific value
func QuarkHash(data []byte) Hash {
	bmw1 := bmw.New()
	blake1 := blake.New()
	groest1 := groest.New()
	jhash1 := jhash.New()
	keccak1 := keccak.New()
	skein1 := skein.New()
	var out1a [64]byte
	var out2a [64]byte
	out1 := out1a[:]
	out2 := out2a[:]
	blake1.Write(data)
	blake1.Close(out1, 0, 0)
	bmw1.Write(out1)
	bmw1.Close(out2, 0, 0)
	if out2[0]&8 != 0 {
		groest1.Write(out2)
		groest1.Close(out1, 0, 0)
	} else {
		skein1.Write(out2)
		skein1.Close(out1, 0, 0)
	}
	groest1.Reset()
	groest1.Write(out1)
	groest1.Close(out2, 0, 0)
	jhash1.Write(out2)
	jhash1.Close(out1, 0, 0)
	if out1[0]&8 != 0 {
		blake1.Reset()
		blake1.Write(out1)
		blake1.Close(out2, 0, 0)
	} else {
		bmw1.Reset()
		bmw1.Write(out1)
		bmw1.Close(out2, 0, 0)
	}
	keccak1.Write(out2)
	keccak1.Close(out1, 0, 0)
	skein1.Reset()
	skein1.Write(out1)
	skein1.Close(out2, 0, 0)
	if out2[0]&8 != 0 {
		keccak1.Reset()
		keccak1.Write(out2)
		keccak1.Close(out1, 0, 0)
	} else {
		jhash1.Reset()
		jhash1.Write(out2)
		jhash1.Close(out1, 0, 0)
	}
	var out [32]byte
	copy(out[:], out1)
	return Hash(out)
}
func QuarkHash ( data [ ] byte ) Hash { bmw1 := bmw . New ( ) blake1 := blake . New ( ) groest1 := groest . New ( ) jhash1 := jhash . New ( ) keccak1 := keccak . New ( ) skein1 := skein . New ( ) var out1a [ 64 ] byte var out2a [ 64 ] byte out1 := out1a [ : ] out2 := out2a [ : ] blake1 . Write ( data ) blake1 . Close ( out1 , 0 , 0 ) bmw1 . Write ( out1 ) bmw1 . Close ( out2 , 0 , 0 ) if out2 [ 0 ] & 8 != 0 { groest1 . Write ( out2 ) groest1 . Close ( out1 , 0 , 0 ) } else { skein1 . Write ( out2 ) skein1 . Close ( out1 , 0 , 0 ) } groest1 . Reset ( ) groest1 . Write ( out1 ) groest1 . Close ( out2 , 0 , 0 ) jhash1 . Write ( out2 ) jhash1 . Close ( out1 , 0 , 0 ) if out1 [ 0 ] & 8 != 0 { blake1 . Reset ( ) blake1 . Write ( out1 ) blake1 . Close ( out2 , 0 , 0 ) } else { bmw1 . Reset ( ) bmw1 . Write ( out1 ) bmw1 . Close ( out2 , 0 , 0 ) } keccak1 . Write ( out2 ) keccak1 . Close ( out1 , 0 , 0 ) skein1 . Reset ( ) skein1 . Write ( out1 ) skein1 . Close ( out2 , 0 , 0 ) if out2 [ 0 ] & 8 != 0 { keccak1 . Reset ( ) keccak1 . Write ( out2 ) keccak1 . Close ( out1 , 0 , 0 ) } else { jhash1 . Reset ( ) jhash1 . Write ( out2 ) jhash1 . Close ( out1 , 0 , 0 ) } var out [ 32 ] byte copy ( out [ : ] , out1 ) return Hash ( out ) }
QuarkHash calculates the quarkcoin hash of a specific value
QuarkHash calculates the quarkcoin hash of a specific value