code: func deserializeBlockLoc(serializedLoc []byte) blockLocation {
  	// The serialized block location format is:
  	//
  	//  [0:4]  Block file (4 bytes)
  	//  [4:8]  File offset (4 bytes)
  	//  [8:12] Block length (4 bytes)
  	return blockLocation{
  		blockFileNum: byteOrder.Uint32(serializedLoc[0:4]),
  		fileOffset:   byteOrder.Uint32(serializedLoc[4:8]),
  		blockLen:     byteOrder.Uint32(serializedLoc[8:12]),
  	}
  }
docs: // deserializeBlockLoc deserializes the passed serialized block location
  // information.  This is data stored into the block index metadata for each
  // block.  The serialized data passed to this function MUST be at least
  // blockLocSize bytes or it will panic.  The error check is avoided here because
  // this information will always be coming from the block index which includes a
  // checksum to detect corruption.  Thus it is safe to use this unchecked here.