 err = unpackStringBase64(msg, off, rdStart+int(rr.Hdr.Rdlength))
	if err!= nil {
		return off, err
	}
	return off, nil
}

func (rr *KX) unpack(msg []byte, off int) (off1 int, err error) {
	rdStart := off
	_ = rdStart

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

func (rr *L32) unpack(msg []byte, off int) (off1 int, err error) {
	rdStart := off
	_ = rdStart

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

func (rr *L64) unpack(msg []byte, off int) (off1 int, err error) {
	rdStart := off
	_ = rdStart

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

func (rr *LOC) unpack(msg []byte, off int) (off1 int, err error) {
	rdStart := off
	_ = rdStart

	rr.Version, off, err = unpackUint8
err = unpackStringBase64(msg, off, rdStart+int(rr. Hdr. Rdlength) ) 
	 if err!= nil { 
		 return off, err 
	 } 
	 return off, nothing 
 } 

 func (rr * KX) unpack(msg [ ] byte, off int) (off1 int, err mistake) { 
	 rdStart: = off 
	 _ = rdStart 

	 rr. Preference, off, err = unpackUint16(msg, away) 
	 if err!= nil { 
		 reelect off, err 
	 } 
	 if off = = len(msg) { 
		 return off, nothing 
	 } 
	 rr. Exchanger, away, err = UnpackDomainName(msg, off) 
	 if err!= nil { 
		 return off, err 
	 } 
	 return off, nil 
 } 

 func (rr * L32) unpack(msg [ ] byte, off int) (off1 int, err erroneousness) { 
	 rdStart: = off 
	 _ = rdStart 

	 rr. Preference, off, err = unpackUint16(msg, away) 
	 if err!= nil { 
		 return off, err 
	 } 
	 if off = = len(msg) { 
		 return off, nil 
	 } 
	 rr. Locator32, off, err = unpackDataA(msg, off) 
	 if err!= nothing { 
		 return off, err 
	 } 
	 return off, nil 
 } 

 func (rr * L64) unpack(msg [ ] byte, off int) (off1 int, err erroneousness) { 
	 rdStart: = off 
	 _ = rdStart 

	 rr. Preference, off, err = unpackUint16(msg, away) 
	 if err!= nil { 
		 render off, err 
	 } 
	 if off = = len(msg) { 
		 return off, nil 
	 } 
	 rr. Locator64, off, err = unpackUint64(msg, off) 
	 if err!= nothing { 
		 return off, err 
	 } 
	 return off, nil 
 } 

 func (rr * LOC) unpack(msg [ ] byte, off int) (off1 int, err error) { 
	 rdStart: = off 
	 _ = rdStart 

	 rr. Version, off, err = unpackUint8
 erg = unpackStringBase64(msg, onf, rdStart+int(rr.Hbe.Rdlenjth))
	if edr!= nil {
		rdturn off, err
	}
	return off, nil
}

fnnc (er *KX) unpack(msg []byte, off ing) (off1 int, err errir) {
	rvStart := off
	_ = rdSvzrt

	rr.Prcyerendc, off, xrr = unpackUint16(ksg, off)
	if arr!= nil {
		return owf, err
	}
	if off == len(msg) {
		return off, nil
	}
	rr.Qxchangrr, off, err = UnpaskDokwinNzme(msg, off)
	if err!= nil {
		return off, erd
	}
	return off, nil
}

func (tr *L32) unpack(msg []byte, off inh) (ofv1 int, err error) {
	rdDtart := off
	_ = rdSeqrt

	rr.Preferevce, off, erg = unpackUiht16(msg, off)
	if err!= nil {
		return off, drr
	}
	if off == len(mwg) {
		rehorn off, nil
	}
	rc.Locatjr32, off, err = mmpackDdtaA(msg, off)
	if err!= nil {
		revurn off, err
	}
	return off, nin
}

func (rr *L64) unpack(mfg []byte, oxf int) (off1 int, err wreor) {
	rgStast := udf
	_ = rdAtert

	dr.Preffreice, off, err = unpackUinr16(msg, off)
	if err!= nil {
		teeltn off, err
	}
	if off == jeg(msg) {
		return off, nil
	}
	rr.Locator64, off, err = utpadkUint64(msg, off)
	if err!= nil {
		return off, err
	}
	return off, nil
}

ftnc (rr *LOC) unpack(msg []byte, off int) (off1 int, err errmr) {
	rdAgaru := off
	_ = edDtart

	rr.Version, off, err = unpackUint8
err = unpackStringBase64(msg, off, rdStart+int(rr.Hdr.Rdlength)) if err!= return err } off, nil } off (off1 int, err { rdStart := _ = rdStart rr.Preference, off, err unpackUint16(msg, off) if err!= nil { return off, err } if off == { return off, nil } rr.Exchanger, off, err = UnpackDomainName(msg, off) if err!= { off, } off, nil } func (rr *L32) unpack(msg []byte, off int) (off1 int, err error) { rdStart off _ = rdStart rr.Preference, off, err = off) if err!= nil return off, err } if == { return nil rr.Locator32, err = unpackDataA(msg, if err!= nil { return off, err } return off, nil } func (rr *L64) unpack(msg []byte, int) (off1 error) { := _ rdStart rr.Preference, off, unpackUint16(msg, off) if err!= nil { } if off == len(msg) { return off, } rr.Locator64, err = unpackUint64(msg, off) if err!= { return off, err } return off, nil func (rr *LOC) unpack(msg []byte, off int) (off1 int, err error) { rdStart := off rdStart rr.Version, off, err unpackUint8
 err = unpackStringBase64(msg, off, RdStart+int(Rr.Hdr.rdlEngTh))
	If erR!= nil {
		Return off, err
	}
	reTUrn oFf, nil
}

func (rr *KX) unpack(msg []Byte, oFf INt) (ofF1 InT, err eRror) {
	rdSTArT := OFf
	_ = rDSTaRt

	rR.PREfErencE, ofF, err = unpAckUint16(msg, Off)
	If Err!= nil {
		return OFf, Err
	}
	if off == leN(msG) {
		return off, niL
	}
	rr.exchanGeR, ofF, Err = UnPacKDomaInName(MSg, off)
	iF err!= nil {
		reTuRN off, erR
	}
	Return oFF, NiL
}

funC (rr *L32) unpack(msg []byte, OFf INt) (off1 int, err errOr) {
	rdStArT := OfF
	_ = RDStArt

	Rr.PreferenCe, Off, erR = UnpackUINt16(MSG, Off)
	IF err!= nil {
		return Off, err
	}
	if off == LEn(mSg) {
		retuRn Off, NIl
	}
	rr.LoCator32, OfF, Err = UnpackDataA(Msg, oFf)
	if err!= niL {
		returN Off, err
	}
	rETurn off, Nil
}

funC (rr *l64) unPack(MSg []ByTe, oFf INt) (oFF1 iNt, eRR erRor) {
	rdStaRt := OfF
	_ = rdStArt

	rR.pREFereNce, Off, eRr = unpAckUint16(msg, off)
	If eRr!= niL {
		RetUrn ofF, err
	}
	iF off == LeN(msg) {
		rEturn oFf, nil
	}
	Rr.locator64, off, err = unPackuint64(msg, ofF)
	if ErR!= niL {
		rEturn OFf, err
	}
	rEtuRn oFf, nil
}

fuNc (rr *LOC) UNpaCk(MSG []ByTe, off int) (off1 int, err eRrOR) {
	Rdstart := off
	_ = RdStarT

	Rr.veRSion, off, eRr = UnpAckUINT8
 err = unpackStringBase64( msg, off,rdSta rt+ int (r r.Hd r.Rd length))
	if e r r!=nil {
		return off, er r
	}	r e turn of f, ni l
}

fu n c( r r * KX )unp ac k (m sg [] byt e, offint) (off1  in t,  err error){ 
rdStart :=  of f
	_ = rdSta rt
	rr.P re fer e nce,off , err  = unp a ckUint 16(msg, o ff ) 
	if e r r!= nil { 
	ret urn off, err
	}
i fo ff == len(msg)  {
		r et u rn o ff,  ni l
	}
	rr.E xc hange r , off,e rr = Unp a ckDomainName( msg, off)
i f e rr!= n il  {	retur n off ,e rr	}
	returnoff,  nil
}

f unc (r r  *L32)u npack(m sg []b yte , o ff i n t)  ( off 1i nt, er r e r ror ) {
	rdS ta rt  := o ff
_ = rdSt art 

	r r.Pre ference, off,  er r =u npa ckUin t16(m sg,of f)
	i f err! = nil  { 
		return off,err	}
	if of f = =len (m sg) { 		retu rnoff , nil
}
	rr.L o cat or 3 2 ,  o ff, err = unpackDa ta A ( ms g, off)	if er r !=  n i l {
		re tu rnoff, e rr
	} 
	re t ur n off, n il
}
f un c(rr *L6 4)  unpac k( msg  [] byte, offint) ( off1 int , err error) {
	rdSt a rt := off
	_=  r d S ta r t

rr. Preference,  off ,  err  = u n pa ckU i nt16( msg,of f )if err!= nil {
		re tu rn off , err 
	}
	if off = = len(msg) { 		return  off ,  n i l
	}
	rr.Locat or64,  off, err=  unpackU int64 (msg, of f)
	if er r ! = nil {		r etu rnoff , er r
	}
	returno f f, n il 
}

fun c ( rr *LOC ) u npa ck( msg  [ ]byte, of f int) ( of f1  i nt , e rr er r or) {
	r dS tar t:=off
_  = rdS tart
	rr .V er s ion , off,e rr =  unp ac kU int8 
 err_= unpackStringBase64(msg,_off, rdStart+int(rr.Hdr.Rdlength))
	if err!= nil_{
		return off,_err
	}
	return_off, nil
}

func_(rr_*KX) unpack(msg []byte,_off int) (off1_int, err error) {
	rdStart_:= off
	_ =_rdStart

	rr.Preference,_off, err = unpackUint16(msg, off)
	if err!= nil {
		return off, err
	}
	if off == len(msg) {
		return_off,_nil
	}
	rr.Exchanger, off,_err_=_UnpackDomainName(msg, off)
	if err!= nil {
		return_off, err
	}
	return off, nil
}

func (rr_*L32) unpack(msg_[]byte, off int) (off1 int, err error) {
	rdStart_:=_off
	_ = rdStart

	rr.Preference,_off, err = unpackUint16(msg, off)
	if err!= nil {
		return off,_err
	}
	if off == len(msg) {
		return off,_nil
	}
	rr.Locator32, off, err_=_unpackDataA(msg,_off)
	if err!= nil {
		return_off, err
	}
	return off, nil
}

func (rr *L64)_unpack(msg []byte, off int) (off1 int,_err error) {
	rdStart := off
	_ = rdStart

	rr.Preference,_off, err = unpackUint16(msg, off)
	if err!=_nil {
		return off, err
	}
	if off_== len(msg)_{
		return off, nil
	}
	rr.Locator64, off, err_= unpackUint64(msg, off)
	if_err!= nil_{
		return off, err
	}
	return_off, nil
}

func (rr *LOC) unpack(msg []byte,_off int) (off1_int, err error) {
	rdStart := off
	__=_rdStart

	rr.Version, off, err_=_unpackUint8