code: func decodeCompressedScriptSize(serialized []byte) int {
  	scriptSize, bytesRead := deserializeVLQ(serialized)
  	if bytesRead == 0 {
  		return 0
  	}
  
  	switch scriptSize {
  	case cstPayToPubKeyHash:
  		return 21
  
  	case cstPayToScriptHash:
  		return 21
  
  	case cstPayToPubKeyComp2, cstPayToPubKeyComp3, cstPayToPubKeyUncomp4,
  		cstPayToPubKeyUncomp5:
  		return 33
  	}
  
  	scriptSize -= numSpecialScripts
  	scriptSize += uint64(bytesRead)
  	return int(scriptSize)
  }
docs: // decodeCompressedScriptSize treats the passed serialized bytes as a compressed
  // script, possibly followed by other data, and returns the number of bytes it
  // occupies taking into account the special encoding of the script size by the
  // domain specific compression algorithm described above.