// Code generated by "go run msg_generate.go"; DO NOT EDIT.

package dns

// pack*() functions

func ( *A) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packDataA(.A, , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *AAAA) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packDataAAAA(.AAAA, , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *AFSDB) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packUint16(.Subtype, , )
	if  != nil {
		return , 
	}
	,  = packDomainName(.Hostname, , , , false)
	if  != nil {
		return , 
	}
	return , nil
}

func ( *AMTRELAY) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packUint8(.Precedence, , )
	if  != nil {
		return , 
	}
	,  = packUint8(.GatewayType, , )
	if  != nil {
		return , 
	}
	,  = packIPSECGateway(.GatewayAddr, .GatewayHost, , , .GatewayType, , false)
	if  != nil {
		return , 
	}
	return , nil
}

func ( *ANY) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	return , nil
}

func ( *APL) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packDataApl(.Prefixes, , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *AVC) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packStringTxt(.Txt, , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *CAA) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packUint8(.Flag, , )
	if  != nil {
		return , 
	}
	,  = packString(.Tag, , )
	if  != nil {
		return , 
	}
	,  = packStringOctet(.Value, , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *CDNSKEY) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packUint16(.Flags, , )
	if  != nil {
		return , 
	}
	,  = packUint8(.Protocol, , )
	if  != nil {
		return , 
	}
	,  = packUint8(.Algorithm, , )
	if  != nil {
		return , 
	}
	,  = packStringBase64(.PublicKey, , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *CDS) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packUint16(.KeyTag, , )
	if  != nil {
		return , 
	}
	,  = packUint8(.Algorithm, , )
	if  != nil {
		return , 
	}
	,  = packUint8(.DigestType, , )
	if  != nil {
		return , 
	}
	,  = packStringHex(.Digest, , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *CERT) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packUint16(.Type, , )
	if  != nil {
		return , 
	}
	,  = packUint16(.KeyTag, , )
	if  != nil {
		return , 
	}
	,  = packUint8(.Algorithm, , )
	if  != nil {
		return , 
	}
	,  = packStringBase64(.Certificate, , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *CNAME) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packDomainName(.Target, , , , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *CSYNC) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packUint32(.Serial, , )
	if  != nil {
		return , 
	}
	,  = packUint16(.Flags, , )
	if  != nil {
		return , 
	}
	,  = packDataNsec(.TypeBitMap, , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *DHCID) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packStringBase64(.Digest, , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *DLV) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packUint16(.KeyTag, , )
	if  != nil {
		return , 
	}
	,  = packUint8(.Algorithm, , )
	if  != nil {
		return , 
	}
	,  = packUint8(.DigestType, , )
	if  != nil {
		return , 
	}
	,  = packStringHex(.Digest, , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *DNAME) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packDomainName(.Target, , , , false)
	if  != nil {
		return , 
	}
	return , nil
}

func ( *DNSKEY) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packUint16(.Flags, , )
	if  != nil {
		return , 
	}
	,  = packUint8(.Protocol, , )
	if  != nil {
		return , 
	}
	,  = packUint8(.Algorithm, , )
	if  != nil {
		return , 
	}
	,  = packStringBase64(.PublicKey, , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *DS) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packUint16(.KeyTag, , )
	if  != nil {
		return , 
	}
	,  = packUint8(.Algorithm, , )
	if  != nil {
		return , 
	}
	,  = packUint8(.DigestType, , )
	if  != nil {
		return , 
	}
	,  = packStringHex(.Digest, , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *EID) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packStringHex(.Endpoint, , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *EUI48) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packUint48(.Address, , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *EUI64) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packUint64(.Address, , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *GID) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packUint32(.Gid, , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *GPOS) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packString(.Longitude, , )
	if  != nil {
		return , 
	}
	,  = packString(.Latitude, , )
	if  != nil {
		return , 
	}
	,  = packString(.Altitude, , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *HINFO) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packString(.Cpu, , )
	if  != nil {
		return , 
	}
	,  = packString(.Os, , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *HIP) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packUint8(.HitLength, , )
	if  != nil {
		return , 
	}
	,  = packUint8(.PublicKeyAlgorithm, , )
	if  != nil {
		return , 
	}
	,  = packUint16(.PublicKeyLength, , )
	if  != nil {
		return , 
	}
	,  = packStringHex(.Hit, , )
	if  != nil {
		return , 
	}
	,  = packStringBase64(.PublicKey, , )
	if  != nil {
		return , 
	}
	,  = packDataDomainNames(.RendezvousServers, , , , false)
	if  != nil {
		return , 
	}
	return , nil
}

func ( *HTTPS) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packUint16(.Priority, , )
	if  != nil {
		return , 
	}
	,  = packDomainName(.Target, , , , false)
	if  != nil {
		return , 
	}
	,  = packDataSVCB(.Value, , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *IPSECKEY) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packUint8(.Precedence, , )
	if  != nil {
		return , 
	}
	,  = packUint8(.GatewayType, , )
	if  != nil {
		return , 
	}
	,  = packUint8(.Algorithm, , )
	if  != nil {
		return , 
	}
	,  = packIPSECGateway(.GatewayAddr, .GatewayHost, , , .GatewayType, , false)
	if  != nil {
		return , 
	}
	,  = packStringBase64(.PublicKey, , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *ISDN) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packString(.Address, , )
	if  != nil {
		return , 
	}
	,  = packString(.SubAddress, , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *KEY) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packUint16(.Flags, , )
	if  != nil {
		return , 
	}
	,  = packUint8(.Protocol, , )
	if  != nil {
		return , 
	}
	,  = packUint8(.Algorithm, , )
	if  != nil {
		return , 
	}
	,  = packStringBase64(.PublicKey, , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *KX) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packUint16(.Preference, , )
	if  != nil {
		return , 
	}
	,  = packDomainName(.Exchanger, , , , false)
	if  != nil {
		return , 
	}
	return , nil
}

func ( *L32) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packUint16(.Preference, , )
	if  != nil {
		return , 
	}
	,  = packDataA(.Locator32, , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *L64) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packUint16(.Preference, , )
	if  != nil {
		return , 
	}
	,  = packUint64(.Locator64, , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *LOC) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packUint8(.Version, , )
	if  != nil {
		return , 
	}
	,  = packUint8(.Size, , )
	if  != nil {
		return , 
	}
	,  = packUint8(.HorizPre, , )
	if  != nil {
		return , 
	}
	,  = packUint8(.VertPre, , )
	if  != nil {
		return , 
	}
	,  = packUint32(.Latitude, , )
	if  != nil {
		return , 
	}
	,  = packUint32(.Longitude, , )
	if  != nil {
		return , 
	}
	,  = packUint32(.Altitude, , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *LP) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packUint16(.Preference, , )
	if  != nil {
		return , 
	}
	,  = packDomainName(.Fqdn, , , , false)
	if  != nil {
		return , 
	}
	return , nil
}

func ( *MB) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packDomainName(.Mb, , , , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *MD) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packDomainName(.Md, , , , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *MF) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packDomainName(.Mf, , , , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *MG) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packDomainName(.Mg, , , , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *MINFO) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packDomainName(.Rmail, , , , )
	if  != nil {
		return , 
	}
	,  = packDomainName(.Email, , , , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *MR) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packDomainName(.Mr, , , , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *MX) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packUint16(.Preference, , )
	if  != nil {
		return , 
	}
	,  = packDomainName(.Mx, , , , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *NAPTR) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packUint16(.Order, , )
	if  != nil {
		return , 
	}
	,  = packUint16(.Preference, , )
	if  != nil {
		return , 
	}
	,  = packString(.Flags, , )
	if  != nil {
		return , 
	}
	,  = packString(.Service, , )
	if  != nil {
		return , 
	}
	,  = packString(.Regexp, , )
	if  != nil {
		return , 
	}
	,  = packDomainName(.Replacement, , , , false)
	if  != nil {
		return , 
	}
	return , nil
}

func ( *NID) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packUint16(.Preference, , )
	if  != nil {
		return , 
	}
	,  = packUint64(.NodeID, , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *NIMLOC) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packStringHex(.Locator, , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *NINFO) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packStringTxt(.ZSData, , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *NS) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packDomainName(.Ns, , , , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *NSAPPTR) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packDomainName(.Ptr, , , , false)
	if  != nil {
		return , 
	}
	return , nil
}

func ( *NSEC) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packDomainName(.NextDomain, , , , false)
	if  != nil {
		return , 
	}
	,  = packDataNsec(.TypeBitMap, , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *NSEC3) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packUint8(.Hash, , )
	if  != nil {
		return , 
	}
	,  = packUint8(.Flags, , )
	if  != nil {
		return , 
	}
	,  = packUint16(.Iterations, , )
	if  != nil {
		return , 
	}
	,  = packUint8(.SaltLength, , )
	if  != nil {
		return , 
	}
	// Only pack salt if value is not "-", i.e. empty
	if .Salt != "-" {
		,  = packStringHex(.Salt, , )
		if  != nil {
			return , 
		}
	}
	,  = packUint8(.HashLength, , )
	if  != nil {
		return , 
	}
	,  = packStringBase32(.NextDomain, , )
	if  != nil {
		return , 
	}
	,  = packDataNsec(.TypeBitMap, , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *NSEC3PARAM) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packUint8(.Hash, , )
	if  != nil {
		return , 
	}
	,  = packUint8(.Flags, , )
	if  != nil {
		return , 
	}
	,  = packUint16(.Iterations, , )
	if  != nil {
		return , 
	}
	,  = packUint8(.SaltLength, , )
	if  != nil {
		return , 
	}
	// Only pack salt if value is not "-", i.e. empty
	if .Salt != "-" {
		,  = packStringHex(.Salt, , )
		if  != nil {
			return , 
		}
	}
	return , nil
}

func ( *NULL) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packStringAny(.Data, , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *NXNAME) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	return , nil
}

func ( *NXT) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packDomainName(.NextDomain, , , , false)
	if  != nil {
		return , 
	}
	,  = packDataNsec(.TypeBitMap, , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *OPENPGPKEY) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packStringBase64(.PublicKey, , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *OPT) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packDataOpt(.Option, , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *PTR) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packDomainName(.Ptr, , , , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *PX) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packUint16(.Preference, , )
	if  != nil {
		return , 
	}
	,  = packDomainName(.Map822, , , , false)
	if  != nil {
		return , 
	}
	,  = packDomainName(.Mapx400, , , , false)
	if  != nil {
		return , 
	}
	return , nil
}

func ( *RESINFO) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packStringTxt(.Txt, , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *RFC3597) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packStringHex(.Rdata, , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *RKEY) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packUint16(.Flags, , )
	if  != nil {
		return , 
	}
	,  = packUint8(.Protocol, , )
	if  != nil {
		return , 
	}
	,  = packUint8(.Algorithm, , )
	if  != nil {
		return , 
	}
	,  = packStringBase64(.PublicKey, , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *RP) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packDomainName(.Mbox, , , , false)
	if  != nil {
		return , 
	}
	,  = packDomainName(.Txt, , , , false)
	if  != nil {
		return , 
	}
	return , nil
}

func ( *RRSIG) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packUint16(.TypeCovered, , )
	if  != nil {
		return , 
	}
	,  = packUint8(.Algorithm, , )
	if  != nil {
		return , 
	}
	,  = packUint8(.Labels, , )
	if  != nil {
		return , 
	}
	,  = packUint32(.OrigTtl, , )
	if  != nil {
		return , 
	}
	,  = packUint32(.Expiration, , )
	if  != nil {
		return , 
	}
	,  = packUint32(.Inception, , )
	if  != nil {
		return , 
	}
	,  = packUint16(.KeyTag, , )
	if  != nil {
		return , 
	}
	,  = packDomainName(.SignerName, , , , false)
	if  != nil {
		return , 
	}
	,  = packStringBase64(.Signature, , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *RT) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packUint16(.Preference, , )
	if  != nil {
		return , 
	}
	,  = packDomainName(.Host, , , , false)
	if  != nil {
		return , 
	}
	return , nil
}

func ( *SIG) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packUint16(.TypeCovered, , )
	if  != nil {
		return , 
	}
	,  = packUint8(.Algorithm, , )
	if  != nil {
		return , 
	}
	,  = packUint8(.Labels, , )
	if  != nil {
		return , 
	}
	,  = packUint32(.OrigTtl, , )
	if  != nil {
		return , 
	}
	,  = packUint32(.Expiration, , )
	if  != nil {
		return , 
	}
	,  = packUint32(.Inception, , )
	if  != nil {
		return , 
	}
	,  = packUint16(.KeyTag, , )
	if  != nil {
		return , 
	}
	,  = packDomainName(.SignerName, , , , false)
	if  != nil {
		return , 
	}
	,  = packStringBase64(.Signature, , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *SMIMEA) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packUint8(.Usage, , )
	if  != nil {
		return , 
	}
	,  = packUint8(.Selector, , )
	if  != nil {
		return , 
	}
	,  = packUint8(.MatchingType, , )
	if  != nil {
		return , 
	}
	,  = packStringHex(.Certificate, , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *SOA) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packDomainName(.Ns, , , , )
	if  != nil {
		return , 
	}
	,  = packDomainName(.Mbox, , , , )
	if  != nil {
		return , 
	}
	,  = packUint32(.Serial, , )
	if  != nil {
		return , 
	}
	,  = packUint32(.Refresh, , )
	if  != nil {
		return , 
	}
	,  = packUint32(.Retry, , )
	if  != nil {
		return , 
	}
	,  = packUint32(.Expire, , )
	if  != nil {
		return , 
	}
	,  = packUint32(.Minttl, , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *SPF) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packStringTxt(.Txt, , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *SRV) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packUint16(.Priority, , )
	if  != nil {
		return , 
	}
	,  = packUint16(.Weight, , )
	if  != nil {
		return , 
	}
	,  = packUint16(.Port, , )
	if  != nil {
		return , 
	}
	,  = packDomainName(.Target, , , , false)
	if  != nil {
		return , 
	}
	return , nil
}

func ( *SSHFP) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packUint8(.Algorithm, , )
	if  != nil {
		return , 
	}
	,  = packUint8(.Type, , )
	if  != nil {
		return , 
	}
	,  = packStringHex(.FingerPrint, , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *SVCB) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packUint16(.Priority, , )
	if  != nil {
		return , 
	}
	,  = packDomainName(.Target, , , , false)
	if  != nil {
		return , 
	}
	,  = packDataSVCB(.Value, , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *TA) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packUint16(.KeyTag, , )
	if  != nil {
		return , 
	}
	,  = packUint8(.Algorithm, , )
	if  != nil {
		return , 
	}
	,  = packUint8(.DigestType, , )
	if  != nil {
		return , 
	}
	,  = packStringHex(.Digest, , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *TALINK) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packDomainName(.PreviousName, , , , false)
	if  != nil {
		return , 
	}
	,  = packDomainName(.NextName, , , , false)
	if  != nil {
		return , 
	}
	return , nil
}

func ( *TKEY) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packDomainName(.Algorithm, , , , false)
	if  != nil {
		return , 
	}
	,  = packUint32(.Inception, , )
	if  != nil {
		return , 
	}
	,  = packUint32(.Expiration, , )
	if  != nil {
		return , 
	}
	,  = packUint16(.Mode, , )
	if  != nil {
		return , 
	}
	,  = packUint16(.Error, , )
	if  != nil {
		return , 
	}
	,  = packUint16(.KeySize, , )
	if  != nil {
		return , 
	}
	,  = packStringHex(.Key, , )
	if  != nil {
		return , 
	}
	,  = packUint16(.OtherLen, , )
	if  != nil {
		return , 
	}
	,  = packStringHex(.OtherData, , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *TLSA) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packUint8(.Usage, , )
	if  != nil {
		return , 
	}
	,  = packUint8(.Selector, , )
	if  != nil {
		return , 
	}
	,  = packUint8(.MatchingType, , )
	if  != nil {
		return , 
	}
	,  = packStringHex(.Certificate, , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *TSIG) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packDomainName(.Algorithm, , , , false)
	if  != nil {
		return , 
	}
	,  = packUint48(.TimeSigned, , )
	if  != nil {
		return , 
	}
	,  = packUint16(.Fudge, , )
	if  != nil {
		return , 
	}
	,  = packUint16(.MACSize, , )
	if  != nil {
		return , 
	}
	,  = packStringHex(.MAC, , )
	if  != nil {
		return , 
	}
	,  = packUint16(.OrigId, , )
	if  != nil {
		return , 
	}
	,  = packUint16(.Error, , )
	if  != nil {
		return , 
	}
	,  = packUint16(.OtherLen, , )
	if  != nil {
		return , 
	}
	,  = packStringHex(.OtherData, , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *TXT) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packStringTxt(.Txt, , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *UID) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packUint32(.Uid, , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *UINFO) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packString(.Uinfo, , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *URI) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packUint16(.Priority, , )
	if  != nil {
		return , 
	}
	,  = packUint16(.Weight, , )
	if  != nil {
		return , 
	}
	,  = packStringOctet(.Target, , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *X25) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packString(.PSDNAddress, , )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *ZONEMD) ( []byte,  int,  compressionMap,  bool) ( int,  error) {
	,  = packUint32(.Serial, , )
	if  != nil {
		return , 
	}
	,  = packUint8(.Scheme, , )
	if  != nil {
		return , 
	}
	,  = packUint8(.Hash, , )
	if  != nil {
		return , 
	}
	,  = packStringHex(.Digest, , )
	if  != nil {
		return , 
	}
	return , nil
}

// unpack*() functions

func ( *A) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.A, ,  = unpackDataA(, )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *AAAA) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.AAAA, ,  = unpackDataAAAA(, )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *AFSDB) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Subtype, ,  = unpackUint16(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Hostname, ,  = UnpackDomainName(, )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *AMTRELAY) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Precedence, ,  = unpackUint8(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.GatewayType, ,  = unpackUint8(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	if  == len() {
		return , nil
	}
	.GatewayAddr, .GatewayHost, ,  = unpackIPSECGateway(, , .GatewayType)
	if  != nil {
		return , 
	}
	return , nil
}

func ( *ANY) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	return , nil
}

func ( *APL) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Prefixes, ,  = unpackDataApl(, )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *AVC) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Txt, ,  = unpackStringTxt(, )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *CAA) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Flag, ,  = unpackUint8(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Tag, ,  = unpackString(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Value, ,  = unpackStringOctet(, )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *CDNSKEY) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Flags, ,  = unpackUint16(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Protocol, ,  = unpackUint8(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Algorithm, ,  = unpackUint8(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.PublicKey, ,  = unpackStringBase64(, , +int(.Hdr.Rdlength))
	if  != nil {
		return , 
	}
	return , nil
}

func ( *CDS) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.KeyTag, ,  = unpackUint16(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Algorithm, ,  = unpackUint8(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.DigestType, ,  = unpackUint8(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Digest, ,  = unpackStringHex(, , +int(.Hdr.Rdlength))
	if  != nil {
		return , 
	}
	return , nil
}

func ( *CERT) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Type, ,  = unpackUint16(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.KeyTag, ,  = unpackUint16(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Algorithm, ,  = unpackUint8(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Certificate, ,  = unpackStringBase64(, , +int(.Hdr.Rdlength))
	if  != nil {
		return , 
	}
	return , nil
}

func ( *CNAME) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Target, ,  = UnpackDomainName(, )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *CSYNC) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Serial, ,  = unpackUint32(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Flags, ,  = unpackUint16(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.TypeBitMap, ,  = unpackDataNsec(, )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *DHCID) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Digest, ,  = unpackStringBase64(, , +int(.Hdr.Rdlength))
	if  != nil {
		return , 
	}
	return , nil
}

func ( *DLV) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.KeyTag, ,  = unpackUint16(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Algorithm, ,  = unpackUint8(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.DigestType, ,  = unpackUint8(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Digest, ,  = unpackStringHex(, , +int(.Hdr.Rdlength))
	if  != nil {
		return , 
	}
	return , nil
}

func ( *DNAME) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Target, ,  = UnpackDomainName(, )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *DNSKEY) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Flags, ,  = unpackUint16(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Protocol, ,  = unpackUint8(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Algorithm, ,  = unpackUint8(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.PublicKey, ,  = unpackStringBase64(, , +int(.Hdr.Rdlength))
	if  != nil {
		return , 
	}
	return , nil
}

func ( *DS) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.KeyTag, ,  = unpackUint16(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Algorithm, ,  = unpackUint8(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.DigestType, ,  = unpackUint8(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Digest, ,  = unpackStringHex(, , +int(.Hdr.Rdlength))
	if  != nil {
		return , 
	}
	return , nil
}

func ( *EID) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Endpoint, ,  = unpackStringHex(, , +int(.Hdr.Rdlength))
	if  != nil {
		return , 
	}
	return , nil
}

func ( *EUI48) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Address, ,  = unpackUint48(, )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *EUI64) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Address, ,  = unpackUint64(, )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *GID) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Gid, ,  = unpackUint32(, )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *GPOS) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Longitude, ,  = unpackString(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Latitude, ,  = unpackString(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Altitude, ,  = unpackString(, )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *HINFO) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Cpu, ,  = unpackString(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Os, ,  = unpackString(, )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *HIP) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.HitLength, ,  = unpackUint8(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.PublicKeyAlgorithm, ,  = unpackUint8(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.PublicKeyLength, ,  = unpackUint16(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Hit, ,  = unpackStringHex(, , +int(.HitLength))
	if  != nil {
		return , 
	}
	.PublicKey, ,  = unpackStringBase64(, , +int(.PublicKeyLength))
	if  != nil {
		return , 
	}
	.RendezvousServers, ,  = unpackDataDomainNames(, , +int(.Hdr.Rdlength))
	if  != nil {
		return , 
	}
	return , nil
}

func ( *HTTPS) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Priority, ,  = unpackUint16(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Target, ,  = UnpackDomainName(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Value, ,  = unpackDataSVCB(, )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *IPSECKEY) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Precedence, ,  = unpackUint8(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.GatewayType, ,  = unpackUint8(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Algorithm, ,  = unpackUint8(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	if  == len() {
		return , nil
	}
	.GatewayAddr, .GatewayHost, ,  = unpackIPSECGateway(, , .GatewayType)
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.PublicKey, ,  = unpackStringBase64(, , +int(.Hdr.Rdlength))
	if  != nil {
		return , 
	}
	return , nil
}

func ( *ISDN) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Address, ,  = unpackString(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.SubAddress, ,  = unpackString(, )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *KEY) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Flags, ,  = unpackUint16(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Protocol, ,  = unpackUint8(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Algorithm, ,  = unpackUint8(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.PublicKey, ,  = unpackStringBase64(, , +int(.Hdr.Rdlength))
	if  != nil {
		return , 
	}
	return , nil
}

func ( *KX) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Preference, ,  = unpackUint16(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Exchanger, ,  = UnpackDomainName(, )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *L32) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Preference, ,  = unpackUint16(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Locator32, ,  = unpackDataA(, )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *L64) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Preference, ,  = unpackUint16(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Locator64, ,  = unpackUint64(, )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *LOC) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Version, ,  = unpackUint8(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Size, ,  = unpackUint8(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.HorizPre, ,  = unpackUint8(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.VertPre, ,  = unpackUint8(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Latitude, ,  = unpackUint32(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Longitude, ,  = unpackUint32(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Altitude, ,  = unpackUint32(, )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *LP) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Preference, ,  = unpackUint16(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Fqdn, ,  = UnpackDomainName(, )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *MB) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Mb, ,  = UnpackDomainName(, )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *MD) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Md, ,  = UnpackDomainName(, )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *MF) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Mf, ,  = UnpackDomainName(, )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *MG) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Mg, ,  = UnpackDomainName(, )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *MINFO) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Rmail, ,  = UnpackDomainName(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Email, ,  = UnpackDomainName(, )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *MR) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Mr, ,  = UnpackDomainName(, )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *MX) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Preference, ,  = unpackUint16(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Mx, ,  = UnpackDomainName(, )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *NAPTR) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Order, ,  = unpackUint16(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Preference, ,  = unpackUint16(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Flags, ,  = unpackString(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Service, ,  = unpackString(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Regexp, ,  = unpackString(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Replacement, ,  = UnpackDomainName(, )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *NID) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Preference, ,  = unpackUint16(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.NodeID, ,  = unpackUint64(, )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *NIMLOC) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Locator, ,  = unpackStringHex(, , +int(.Hdr.Rdlength))
	if  != nil {
		return , 
	}
	return , nil
}

func ( *NINFO) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.ZSData, ,  = unpackStringTxt(, )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *NS) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Ns, ,  = UnpackDomainName(, )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *NSAPPTR) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Ptr, ,  = UnpackDomainName(, )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *NSEC) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.NextDomain, ,  = UnpackDomainName(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.TypeBitMap, ,  = unpackDataNsec(, )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *NSEC3) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Hash, ,  = unpackUint8(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Flags, ,  = unpackUint8(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Iterations, ,  = unpackUint16(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.SaltLength, ,  = unpackUint8(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Salt, ,  = unpackStringHex(, , +int(.SaltLength))
	if  != nil {
		return , 
	}
	.HashLength, ,  = unpackUint8(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.NextDomain, ,  = unpackStringBase32(, , +int(.HashLength))
	if  != nil {
		return , 
	}
	.TypeBitMap, ,  = unpackDataNsec(, )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *NSEC3PARAM) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Hash, ,  = unpackUint8(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Flags, ,  = unpackUint8(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Iterations, ,  = unpackUint16(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.SaltLength, ,  = unpackUint8(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Salt, ,  = unpackStringHex(, , +int(.SaltLength))
	if  != nil {
		return , 
	}
	return , nil
}

func ( *NULL) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Data, ,  = unpackStringAny(, , +int(.Hdr.Rdlength))
	if  != nil {
		return , 
	}
	return , nil
}

func ( *NXNAME) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	return , nil
}

func ( *NXT) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.NextDomain, ,  = UnpackDomainName(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.TypeBitMap, ,  = unpackDataNsec(, )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *OPENPGPKEY) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.PublicKey, ,  = unpackStringBase64(, , +int(.Hdr.Rdlength))
	if  != nil {
		return , 
	}
	return , nil
}

func ( *OPT) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Option, ,  = unpackDataOpt(, )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *PTR) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Ptr, ,  = UnpackDomainName(, )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *PX) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Preference, ,  = unpackUint16(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Map822, ,  = UnpackDomainName(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Mapx400, ,  = UnpackDomainName(, )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *RESINFO) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Txt, ,  = unpackStringTxt(, )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *RFC3597) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Rdata, ,  = unpackStringHex(, , +int(.Hdr.Rdlength))
	if  != nil {
		return , 
	}
	return , nil
}

func ( *RKEY) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Flags, ,  = unpackUint16(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Protocol, ,  = unpackUint8(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Algorithm, ,  = unpackUint8(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.PublicKey, ,  = unpackStringBase64(, , +int(.Hdr.Rdlength))
	if  != nil {
		return , 
	}
	return , nil
}

func ( *RP) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Mbox, ,  = UnpackDomainName(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Txt, ,  = UnpackDomainName(, )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *RRSIG) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.TypeCovered, ,  = unpackUint16(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Algorithm, ,  = unpackUint8(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Labels, ,  = unpackUint8(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.OrigTtl, ,  = unpackUint32(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Expiration, ,  = unpackUint32(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Inception, ,  = unpackUint32(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.KeyTag, ,  = unpackUint16(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.SignerName, ,  = UnpackDomainName(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Signature, ,  = unpackStringBase64(, , +int(.Hdr.Rdlength))
	if  != nil {
		return , 
	}
	return , nil
}

func ( *RT) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Preference, ,  = unpackUint16(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Host, ,  = UnpackDomainName(, )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *SIG) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.TypeCovered, ,  = unpackUint16(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Algorithm, ,  = unpackUint8(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Labels, ,  = unpackUint8(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.OrigTtl, ,  = unpackUint32(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Expiration, ,  = unpackUint32(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Inception, ,  = unpackUint32(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.KeyTag, ,  = unpackUint16(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.SignerName, ,  = UnpackDomainName(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Signature, ,  = unpackStringBase64(, , +int(.Hdr.Rdlength))
	if  != nil {
		return , 
	}
	return , nil
}

func ( *SMIMEA) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Usage, ,  = unpackUint8(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Selector, ,  = unpackUint8(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.MatchingType, ,  = unpackUint8(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Certificate, ,  = unpackStringHex(, , +int(.Hdr.Rdlength))
	if  != nil {
		return , 
	}
	return , nil
}

func ( *SOA) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Ns, ,  = UnpackDomainName(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Mbox, ,  = UnpackDomainName(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Serial, ,  = unpackUint32(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Refresh, ,  = unpackUint32(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Retry, ,  = unpackUint32(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Expire, ,  = unpackUint32(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Minttl, ,  = unpackUint32(, )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *SPF) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Txt, ,  = unpackStringTxt(, )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *SRV) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Priority, ,  = unpackUint16(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Weight, ,  = unpackUint16(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Port, ,  = unpackUint16(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Target, ,  = UnpackDomainName(, )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *SSHFP) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Algorithm, ,  = unpackUint8(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Type, ,  = unpackUint8(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.FingerPrint, ,  = unpackStringHex(, , +int(.Hdr.Rdlength))
	if  != nil {
		return , 
	}
	return , nil
}

func ( *SVCB) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Priority, ,  = unpackUint16(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Target, ,  = UnpackDomainName(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Value, ,  = unpackDataSVCB(, )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *TA) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.KeyTag, ,  = unpackUint16(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Algorithm, ,  = unpackUint8(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.DigestType, ,  = unpackUint8(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Digest, ,  = unpackStringHex(, , +int(.Hdr.Rdlength))
	if  != nil {
		return , 
	}
	return , nil
}

func ( *TALINK) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.PreviousName, ,  = UnpackDomainName(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.NextName, ,  = UnpackDomainName(, )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *TKEY) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Algorithm, ,  = UnpackDomainName(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Inception, ,  = unpackUint32(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Expiration, ,  = unpackUint32(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Mode, ,  = unpackUint16(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Error, ,  = unpackUint16(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.KeySize, ,  = unpackUint16(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Key, ,  = unpackStringHex(, , +int(.KeySize))
	if  != nil {
		return , 
	}
	.OtherLen, ,  = unpackUint16(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.OtherData, ,  = unpackStringHex(, , +int(.OtherLen))
	if  != nil {
		return , 
	}
	return , nil
}

func ( *TLSA) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Usage, ,  = unpackUint8(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Selector, ,  = unpackUint8(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.MatchingType, ,  = unpackUint8(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Certificate, ,  = unpackStringHex(, , +int(.Hdr.Rdlength))
	if  != nil {
		return , 
	}
	return , nil
}

func ( *TSIG) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Algorithm, ,  = UnpackDomainName(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.TimeSigned, ,  = unpackUint48(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Fudge, ,  = unpackUint16(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.MACSize, ,  = unpackUint16(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.MAC, ,  = unpackStringHex(, , +int(.MACSize))
	if  != nil {
		return , 
	}
	.OrigId, ,  = unpackUint16(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Error, ,  = unpackUint16(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.OtherLen, ,  = unpackUint16(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.OtherData, ,  = unpackStringHex(, , +int(.OtherLen))
	if  != nil {
		return , 
	}
	return , nil
}

func ( *TXT) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Txt, ,  = unpackStringTxt(, )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *UID) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Uid, ,  = unpackUint32(, )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *UINFO) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Uinfo, ,  = unpackString(, )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *URI) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Priority, ,  = unpackUint16(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Weight, ,  = unpackUint16(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Target, ,  = unpackStringOctet(, )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *X25) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.PSDNAddress, ,  = unpackString(, )
	if  != nil {
		return , 
	}
	return , nil
}

func ( *ZONEMD) ( []byte,  int) ( int,  error) {
	 := 
	_ = 

	.Serial, ,  = unpackUint32(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Scheme, ,  = unpackUint8(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Hash, ,  = unpackUint8(, )
	if  != nil {
		return , 
	}
	if  == len() {
		return , nil
	}
	.Digest, ,  = unpackStringHex(, , +int(.Hdr.Rdlength))
	if  != nil {
		return , 
	}
	return , nil
}