code: func deserializeUtxoEntry(serialized []byte) (*UtxoEntry, error) {
  	// Deserialize the header code.
  	code, offset := deserializeVLQ(serialized)
  	if offset >= len(serialized) {
  		return nil, errDeserialize("unexpected end of data after header")
  	}
  
  	// Decode the header code.
  	//
  	// Bit 0 indicates whether the containing transaction is a coinbase.
  	// Bits 1-x encode height of containing transaction.
  	isCoinBase := code&0x01 != 0
  	blockHeight := int32(code >> 1)
  
  	// Decode the compressed unspent transaction output.
  	amount, pkScript, _, err := decodeCompressedTxOut(serialized[offset:])
  	if err != nil {
  		return nil, errDeserialize(fmt.Sprintf("unable to decode "+
  			"utxo: %v", err))
  	}
  
  	entry := &UtxoEntry{
  		amount:      int64(amount),
  		pkScript:    pkScript,
  		blockHeight: blockHeight,
  		packedFlags: 0,
  	}
  	if isCoinBase {
  		entry.packedFlags |= tfCoinBase
  	}
  
  	return entry, nil
  }
docs: // deserializeUtxoEntry decodes a utxo entry from the passed serialized byte
  // slice into a new UtxoEntry using a format that is suitable for long-term
  // storage.  The format is described in detail above.