1// Code generated by "go run msg_generate.go"; DO NOT EDIT.
2
3package dns
4
5// pack*() functions
6
7func (rr *A) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
8	off, err = packDataA(rr.A, msg, off)
9	if err != nil {
10		return off, err
11	}
12	return off, nil
13}
14
15func (rr *AAAA) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
16	off, err = packDataAAAA(rr.AAAA, msg, off)
17	if err != nil {
18		return off, err
19	}
20	return off, nil
21}
22
23func (rr *AFSDB) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
24	off, err = packUint16(rr.Subtype, msg, off)
25	if err != nil {
26		return off, err
27	}
28	off, err = packDomainName(rr.Hostname, msg, off, compression, false)
29	if err != nil {
30		return off, err
31	}
32	return off, nil
33}
34
35func (rr *ANY) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
36	return off, nil
37}
38
39func (rr *APL) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
40	off, err = packDataApl(rr.Prefixes, msg, off)
41	if err != nil {
42		return off, err
43	}
44	return off, nil
45}
46
47func (rr *AVC) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
48	off, err = packStringTxt(rr.Txt, msg, off)
49	if err != nil {
50		return off, err
51	}
52	return off, nil
53}
54
55func (rr *CAA) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
56	off, err = packUint8(rr.Flag, msg, off)
57	if err != nil {
58		return off, err
59	}
60	off, err = packString(rr.Tag, msg, off)
61	if err != nil {
62		return off, err
63	}
64	off, err = packStringOctet(rr.Value, msg, off)
65	if err != nil {
66		return off, err
67	}
68	return off, nil
69}
70
71func (rr *CDNSKEY) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
72	off, err = packUint16(rr.Flags, msg, off)
73	if err != nil {
74		return off, err
75	}
76	off, err = packUint8(rr.Protocol, msg, off)
77	if err != nil {
78		return off, err
79	}
80	off, err = packUint8(rr.Algorithm, msg, off)
81	if err != nil {
82		return off, err
83	}
84	off, err = packStringBase64(rr.PublicKey, msg, off)
85	if err != nil {
86		return off, err
87	}
88	return off, nil
89}
90
91func (rr *CDS) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
92	off, err = packUint16(rr.KeyTag, msg, off)
93	if err != nil {
94		return off, err
95	}
96	off, err = packUint8(rr.Algorithm, msg, off)
97	if err != nil {
98		return off, err
99	}
100	off, err = packUint8(rr.DigestType, msg, off)
101	if err != nil {
102		return off, err
103	}
104	off, err = packStringHex(rr.Digest, msg, off)
105	if err != nil {
106		return off, err
107	}
108	return off, nil
109}
110
111func (rr *CERT) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
112	off, err = packUint16(rr.Type, msg, off)
113	if err != nil {
114		return off, err
115	}
116	off, err = packUint16(rr.KeyTag, msg, off)
117	if err != nil {
118		return off, err
119	}
120	off, err = packUint8(rr.Algorithm, msg, off)
121	if err != nil {
122		return off, err
123	}
124	off, err = packStringBase64(rr.Certificate, msg, off)
125	if err != nil {
126		return off, err
127	}
128	return off, nil
129}
130
131func (rr *CNAME) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
132	off, err = packDomainName(rr.Target, msg, off, compression, compress)
133	if err != nil {
134		return off, err
135	}
136	return off, nil
137}
138
139func (rr *CSYNC) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
140	off, err = packUint32(rr.Serial, msg, off)
141	if err != nil {
142		return off, err
143	}
144	off, err = packUint16(rr.Flags, msg, off)
145	if err != nil {
146		return off, err
147	}
148	off, err = packDataNsec(rr.TypeBitMap, msg, off)
149	if err != nil {
150		return off, err
151	}
152	return off, nil
153}
154
155func (rr *DHCID) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
156	off, err = packStringBase64(rr.Digest, msg, off)
157	if err != nil {
158		return off, err
159	}
160	return off, nil
161}
162
163func (rr *DLV) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
164	off, err = packUint16(rr.KeyTag, msg, off)
165	if err != nil {
166		return off, err
167	}
168	off, err = packUint8(rr.Algorithm, msg, off)
169	if err != nil {
170		return off, err
171	}
172	off, err = packUint8(rr.DigestType, msg, off)
173	if err != nil {
174		return off, err
175	}
176	off, err = packStringHex(rr.Digest, msg, off)
177	if err != nil {
178		return off, err
179	}
180	return off, nil
181}
182
183func (rr *DNAME) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
184	off, err = packDomainName(rr.Target, msg, off, compression, false)
185	if err != nil {
186		return off, err
187	}
188	return off, nil
189}
190
191func (rr *DNSKEY) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
192	off, err = packUint16(rr.Flags, msg, off)
193	if err != nil {
194		return off, err
195	}
196	off, err = packUint8(rr.Protocol, msg, off)
197	if err != nil {
198		return off, err
199	}
200	off, err = packUint8(rr.Algorithm, msg, off)
201	if err != nil {
202		return off, err
203	}
204	off, err = packStringBase64(rr.PublicKey, msg, off)
205	if err != nil {
206		return off, err
207	}
208	return off, nil
209}
210
211func (rr *DS) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
212	off, err = packUint16(rr.KeyTag, msg, off)
213	if err != nil {
214		return off, err
215	}
216	off, err = packUint8(rr.Algorithm, msg, off)
217	if err != nil {
218		return off, err
219	}
220	off, err = packUint8(rr.DigestType, msg, off)
221	if err != nil {
222		return off, err
223	}
224	off, err = packStringHex(rr.Digest, msg, off)
225	if err != nil {
226		return off, err
227	}
228	return off, nil
229}
230
231func (rr *EID) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
232	off, err = packStringHex(rr.Endpoint, msg, off)
233	if err != nil {
234		return off, err
235	}
236	return off, nil
237}
238
239func (rr *EUI48) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
240	off, err = packUint48(rr.Address, msg, off)
241	if err != nil {
242		return off, err
243	}
244	return off, nil
245}
246
247func (rr *EUI64) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
248	off, err = packUint64(rr.Address, msg, off)
249	if err != nil {
250		return off, err
251	}
252	return off, nil
253}
254
255func (rr *GID) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
256	off, err = packUint32(rr.Gid, msg, off)
257	if err != nil {
258		return off, err
259	}
260	return off, nil
261}
262
263func (rr *GPOS) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
264	off, err = packString(rr.Longitude, msg, off)
265	if err != nil {
266		return off, err
267	}
268	off, err = packString(rr.Latitude, msg, off)
269	if err != nil {
270		return off, err
271	}
272	off, err = packString(rr.Altitude, msg, off)
273	if err != nil {
274		return off, err
275	}
276	return off, nil
277}
278
279func (rr *HINFO) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
280	off, err = packString(rr.Cpu, msg, off)
281	if err != nil {
282		return off, err
283	}
284	off, err = packString(rr.Os, msg, off)
285	if err != nil {
286		return off, err
287	}
288	return off, nil
289}
290
291func (rr *HIP) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
292	off, err = packUint8(rr.HitLength, msg, off)
293	if err != nil {
294		return off, err
295	}
296	off, err = packUint8(rr.PublicKeyAlgorithm, msg, off)
297	if err != nil {
298		return off, err
299	}
300	off, err = packUint16(rr.PublicKeyLength, msg, off)
301	if err != nil {
302		return off, err
303	}
304	off, err = packStringHex(rr.Hit, msg, off)
305	if err != nil {
306		return off, err
307	}
308	off, err = packStringBase64(rr.PublicKey, msg, off)
309	if err != nil {
310		return off, err
311	}
312	off, err = packDataDomainNames(rr.RendezvousServers, msg, off, compression, false)
313	if err != nil {
314		return off, err
315	}
316	return off, nil
317}
318
319func (rr *HTTPS) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
320	off, err = packUint16(rr.Priority, msg, off)
321	if err != nil {
322		return off, err
323	}
324	off, err = packDomainName(rr.Target, msg, off, compression, false)
325	if err != nil {
326		return off, err
327	}
328	off, err = packDataSVCB(rr.Value, msg, off)
329	if err != nil {
330		return off, err
331	}
332	return off, nil
333}
334
335func (rr *KEY) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
336	off, err = packUint16(rr.Flags, msg, off)
337	if err != nil {
338		return off, err
339	}
340	off, err = packUint8(rr.Protocol, msg, off)
341	if err != nil {
342		return off, err
343	}
344	off, err = packUint8(rr.Algorithm, msg, off)
345	if err != nil {
346		return off, err
347	}
348	off, err = packStringBase64(rr.PublicKey, msg, off)
349	if err != nil {
350		return off, err
351	}
352	return off, nil
353}
354
355func (rr *KX) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
356	off, err = packUint16(rr.Preference, msg, off)
357	if err != nil {
358		return off, err
359	}
360	off, err = packDomainName(rr.Exchanger, msg, off, compression, false)
361	if err != nil {
362		return off, err
363	}
364	return off, nil
365}
366
367func (rr *L32) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
368	off, err = packUint16(rr.Preference, msg, off)
369	if err != nil {
370		return off, err
371	}
372	off, err = packDataA(rr.Locator32, msg, off)
373	if err != nil {
374		return off, err
375	}
376	return off, nil
377}
378
379func (rr *L64) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
380	off, err = packUint16(rr.Preference, msg, off)
381	if err != nil {
382		return off, err
383	}
384	off, err = packUint64(rr.Locator64, msg, off)
385	if err != nil {
386		return off, err
387	}
388	return off, nil
389}
390
391func (rr *LOC) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
392	off, err = packUint8(rr.Version, msg, off)
393	if err != nil {
394		return off, err
395	}
396	off, err = packUint8(rr.Size, msg, off)
397	if err != nil {
398		return off, err
399	}
400	off, err = packUint8(rr.HorizPre, msg, off)
401	if err != nil {
402		return off, err
403	}
404	off, err = packUint8(rr.VertPre, msg, off)
405	if err != nil {
406		return off, err
407	}
408	off, err = packUint32(rr.Latitude, msg, off)
409	if err != nil {
410		return off, err
411	}
412	off, err = packUint32(rr.Longitude, msg, off)
413	if err != nil {
414		return off, err
415	}
416	off, err = packUint32(rr.Altitude, msg, off)
417	if err != nil {
418		return off, err
419	}
420	return off, nil
421}
422
423func (rr *LP) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
424	off, err = packUint16(rr.Preference, msg, off)
425	if err != nil {
426		return off, err
427	}
428	off, err = packDomainName(rr.Fqdn, msg, off, compression, false)
429	if err != nil {
430		return off, err
431	}
432	return off, nil
433}
434
435func (rr *MB) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
436	off, err = packDomainName(rr.Mb, msg, off, compression, compress)
437	if err != nil {
438		return off, err
439	}
440	return off, nil
441}
442
443func (rr *MD) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
444	off, err = packDomainName(rr.Md, msg, off, compression, compress)
445	if err != nil {
446		return off, err
447	}
448	return off, nil
449}
450
451func (rr *MF) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
452	off, err = packDomainName(rr.Mf, msg, off, compression, compress)
453	if err != nil {
454		return off, err
455	}
456	return off, nil
457}
458
459func (rr *MG) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
460	off, err = packDomainName(rr.Mg, msg, off, compression, compress)
461	if err != nil {
462		return off, err
463	}
464	return off, nil
465}
466
467func (rr *MINFO) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
468	off, err = packDomainName(rr.Rmail, msg, off, compression, compress)
469	if err != nil {
470		return off, err
471	}
472	off, err = packDomainName(rr.Email, msg, off, compression, compress)
473	if err != nil {
474		return off, err
475	}
476	return off, nil
477}
478
479func (rr *MR) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
480	off, err = packDomainName(rr.Mr, msg, off, compression, compress)
481	if err != nil {
482		return off, err
483	}
484	return off, nil
485}
486
487func (rr *MX) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
488	off, err = packUint16(rr.Preference, msg, off)
489	if err != nil {
490		return off, err
491	}
492	off, err = packDomainName(rr.Mx, msg, off, compression, compress)
493	if err != nil {
494		return off, err
495	}
496	return off, nil
497}
498
499func (rr *NAPTR) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
500	off, err = packUint16(rr.Order, msg, off)
501	if err != nil {
502		return off, err
503	}
504	off, err = packUint16(rr.Preference, msg, off)
505	if err != nil {
506		return off, err
507	}
508	off, err = packString(rr.Flags, msg, off)
509	if err != nil {
510		return off, err
511	}
512	off, err = packString(rr.Service, msg, off)
513	if err != nil {
514		return off, err
515	}
516	off, err = packString(rr.Regexp, msg, off)
517	if err != nil {
518		return off, err
519	}
520	off, err = packDomainName(rr.Replacement, msg, off, compression, false)
521	if err != nil {
522		return off, err
523	}
524	return off, nil
525}
526
527func (rr *NID) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
528	off, err = packUint16(rr.Preference, msg, off)
529	if err != nil {
530		return off, err
531	}
532	off, err = packUint64(rr.NodeID, msg, off)
533	if err != nil {
534		return off, err
535	}
536	return off, nil
537}
538
539func (rr *NIMLOC) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
540	off, err = packStringHex(rr.Locator, msg, off)
541	if err != nil {
542		return off, err
543	}
544	return off, nil
545}
546
547func (rr *NINFO) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
548	off, err = packStringTxt(rr.ZSData, msg, off)
549	if err != nil {
550		return off, err
551	}
552	return off, nil
553}
554
555func (rr *NS) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
556	off, err = packDomainName(rr.Ns, msg, off, compression, compress)
557	if err != nil {
558		return off, err
559	}
560	return off, nil
561}
562
563func (rr *NSAPPTR) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
564	off, err = packDomainName(rr.Ptr, msg, off, compression, false)
565	if err != nil {
566		return off, err
567	}
568	return off, nil
569}
570
571func (rr *NSEC) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
572	off, err = packDomainName(rr.NextDomain, msg, off, compression, false)
573	if err != nil {
574		return off, err
575	}
576	off, err = packDataNsec(rr.TypeBitMap, msg, off)
577	if err != nil {
578		return off, err
579	}
580	return off, nil
581}
582
583func (rr *NSEC3) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
584	off, err = packUint8(rr.Hash, msg, off)
585	if err != nil {
586		return off, err
587	}
588	off, err = packUint8(rr.Flags, msg, off)
589	if err != nil {
590		return off, err
591	}
592	off, err = packUint16(rr.Iterations, msg, off)
593	if err != nil {
594		return off, err
595	}
596	off, err = packUint8(rr.SaltLength, msg, off)
597	if err != nil {
598		return off, err
599	}
600	// Only pack salt if value is not "-", i.e. empty
601	if rr.Salt != "-" {
602		off, err = packStringHex(rr.Salt, msg, off)
603		if err != nil {
604			return off, err
605		}
606	}
607	off, err = packUint8(rr.HashLength, msg, off)
608	if err != nil {
609		return off, err
610	}
611	off, err = packStringBase32(rr.NextDomain, msg, off)
612	if err != nil {
613		return off, err
614	}
615	off, err = packDataNsec(rr.TypeBitMap, msg, off)
616	if err != nil {
617		return off, err
618	}
619	return off, nil
620}
621
622func (rr *NSEC3PARAM) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
623	off, err = packUint8(rr.Hash, msg, off)
624	if err != nil {
625		return off, err
626	}
627	off, err = packUint8(rr.Flags, msg, off)
628	if err != nil {
629		return off, err
630	}
631	off, err = packUint16(rr.Iterations, msg, off)
632	if err != nil {
633		return off, err
634	}
635	off, err = packUint8(rr.SaltLength, msg, off)
636	if err != nil {
637		return off, err
638	}
639	// Only pack salt if value is not "-", i.e. empty
640	if rr.Salt != "-" {
641		off, err = packStringHex(rr.Salt, msg, off)
642		if err != nil {
643			return off, err
644		}
645	}
646	return off, nil
647}
648
649func (rr *NULL) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
650	off, err = packStringAny(rr.Data, msg, off)
651	if err != nil {
652		return off, err
653	}
654	return off, nil
655}
656
657func (rr *OPENPGPKEY) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
658	off, err = packStringBase64(rr.PublicKey, msg, off)
659	if err != nil {
660		return off, err
661	}
662	return off, nil
663}
664
665func (rr *OPT) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
666	off, err = packDataOpt(rr.Option, msg, off)
667	if err != nil {
668		return off, err
669	}
670	return off, nil
671}
672
673func (rr *PTR) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
674	off, err = packDomainName(rr.Ptr, msg, off, compression, compress)
675	if err != nil {
676		return off, err
677	}
678	return off, nil
679}
680
681func (rr *PX) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
682	off, err = packUint16(rr.Preference, msg, off)
683	if err != nil {
684		return off, err
685	}
686	off, err = packDomainName(rr.Map822, msg, off, compression, false)
687	if err != nil {
688		return off, err
689	}
690	off, err = packDomainName(rr.Mapx400, msg, off, compression, false)
691	if err != nil {
692		return off, err
693	}
694	return off, nil
695}
696
697func (rr *RFC3597) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
698	off, err = packStringHex(rr.Rdata, msg, off)
699	if err != nil {
700		return off, err
701	}
702	return off, nil
703}
704
705func (rr *RKEY) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
706	off, err = packUint16(rr.Flags, msg, off)
707	if err != nil {
708		return off, err
709	}
710	off, err = packUint8(rr.Protocol, msg, off)
711	if err != nil {
712		return off, err
713	}
714	off, err = packUint8(rr.Algorithm, msg, off)
715	if err != nil {
716		return off, err
717	}
718	off, err = packStringBase64(rr.PublicKey, msg, off)
719	if err != nil {
720		return off, err
721	}
722	return off, nil
723}
724
725func (rr *RP) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
726	off, err = packDomainName(rr.Mbox, msg, off, compression, false)
727	if err != nil {
728		return off, err
729	}
730	off, err = packDomainName(rr.Txt, msg, off, compression, false)
731	if err != nil {
732		return off, err
733	}
734	return off, nil
735}
736
737func (rr *RRSIG) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
738	off, err = packUint16(rr.TypeCovered, msg, off)
739	if err != nil {
740		return off, err
741	}
742	off, err = packUint8(rr.Algorithm, msg, off)
743	if err != nil {
744		return off, err
745	}
746	off, err = packUint8(rr.Labels, msg, off)
747	if err != nil {
748		return off, err
749	}
750	off, err = packUint32(rr.OrigTtl, msg, off)
751	if err != nil {
752		return off, err
753	}
754	off, err = packUint32(rr.Expiration, msg, off)
755	if err != nil {
756		return off, err
757	}
758	off, err = packUint32(rr.Inception, msg, off)
759	if err != nil {
760		return off, err
761	}
762	off, err = packUint16(rr.KeyTag, msg, off)
763	if err != nil {
764		return off, err
765	}
766	off, err = packDomainName(rr.SignerName, msg, off, compression, false)
767	if err != nil {
768		return off, err
769	}
770	off, err = packStringBase64(rr.Signature, msg, off)
771	if err != nil {
772		return off, err
773	}
774	return off, nil
775}
776
777func (rr *RT) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
778	off, err = packUint16(rr.Preference, msg, off)
779	if err != nil {
780		return off, err
781	}
782	off, err = packDomainName(rr.Host, msg, off, compression, false)
783	if err != nil {
784		return off, err
785	}
786	return off, nil
787}
788
789func (rr *SIG) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
790	off, err = packUint16(rr.TypeCovered, msg, off)
791	if err != nil {
792		return off, err
793	}
794	off, err = packUint8(rr.Algorithm, msg, off)
795	if err != nil {
796		return off, err
797	}
798	off, err = packUint8(rr.Labels, msg, off)
799	if err != nil {
800		return off, err
801	}
802	off, err = packUint32(rr.OrigTtl, msg, off)
803	if err != nil {
804		return off, err
805	}
806	off, err = packUint32(rr.Expiration, msg, off)
807	if err != nil {
808		return off, err
809	}
810	off, err = packUint32(rr.Inception, msg, off)
811	if err != nil {
812		return off, err
813	}
814	off, err = packUint16(rr.KeyTag, msg, off)
815	if err != nil {
816		return off, err
817	}
818	off, err = packDomainName(rr.SignerName, msg, off, compression, false)
819	if err != nil {
820		return off, err
821	}
822	off, err = packStringBase64(rr.Signature, msg, off)
823	if err != nil {
824		return off, err
825	}
826	return off, nil
827}
828
829func (rr *SMIMEA) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
830	off, err = packUint8(rr.Usage, msg, off)
831	if err != nil {
832		return off, err
833	}
834	off, err = packUint8(rr.Selector, msg, off)
835	if err != nil {
836		return off, err
837	}
838	off, err = packUint8(rr.MatchingType, msg, off)
839	if err != nil {
840		return off, err
841	}
842	off, err = packStringHex(rr.Certificate, msg, off)
843	if err != nil {
844		return off, err
845	}
846	return off, nil
847}
848
849func (rr *SOA) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
850	off, err = packDomainName(rr.Ns, msg, off, compression, compress)
851	if err != nil {
852		return off, err
853	}
854	off, err = packDomainName(rr.Mbox, msg, off, compression, compress)
855	if err != nil {
856		return off, err
857	}
858	off, err = packUint32(rr.Serial, msg, off)
859	if err != nil {
860		return off, err
861	}
862	off, err = packUint32(rr.Refresh, msg, off)
863	if err != nil {
864		return off, err
865	}
866	off, err = packUint32(rr.Retry, msg, off)
867	if err != nil {
868		return off, err
869	}
870	off, err = packUint32(rr.Expire, msg, off)
871	if err != nil {
872		return off, err
873	}
874	off, err = packUint32(rr.Minttl, msg, off)
875	if err != nil {
876		return off, err
877	}
878	return off, nil
879}
880
881func (rr *SPF) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
882	off, err = packStringTxt(rr.Txt, msg, off)
883	if err != nil {
884		return off, err
885	}
886	return off, nil
887}
888
889func (rr *SRV) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
890	off, err = packUint16(rr.Priority, msg, off)
891	if err != nil {
892		return off, err
893	}
894	off, err = packUint16(rr.Weight, msg, off)
895	if err != nil {
896		return off, err
897	}
898	off, err = packUint16(rr.Port, msg, off)
899	if err != nil {
900		return off, err
901	}
902	off, err = packDomainName(rr.Target, msg, off, compression, false)
903	if err != nil {
904		return off, err
905	}
906	return off, nil
907}
908
909func (rr *SSHFP) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
910	off, err = packUint8(rr.Algorithm, msg, off)
911	if err != nil {
912		return off, err
913	}
914	off, err = packUint8(rr.Type, msg, off)
915	if err != nil {
916		return off, err
917	}
918	off, err = packStringHex(rr.FingerPrint, msg, off)
919	if err != nil {
920		return off, err
921	}
922	return off, nil
923}
924
925func (rr *SVCB) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
926	off, err = packUint16(rr.Priority, msg, off)
927	if err != nil {
928		return off, err
929	}
930	off, err = packDomainName(rr.Target, msg, off, compression, false)
931	if err != nil {
932		return off, err
933	}
934	off, err = packDataSVCB(rr.Value, msg, off)
935	if err != nil {
936		return off, err
937	}
938	return off, nil
939}
940
941func (rr *TA) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
942	off, err = packUint16(rr.KeyTag, msg, off)
943	if err != nil {
944		return off, err
945	}
946	off, err = packUint8(rr.Algorithm, msg, off)
947	if err != nil {
948		return off, err
949	}
950	off, err = packUint8(rr.DigestType, msg, off)
951	if err != nil {
952		return off, err
953	}
954	off, err = packStringHex(rr.Digest, msg, off)
955	if err != nil {
956		return off, err
957	}
958	return off, nil
959}
960
961func (rr *TALINK) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
962	off, err = packDomainName(rr.PreviousName, msg, off, compression, false)
963	if err != nil {
964		return off, err
965	}
966	off, err = packDomainName(rr.NextName, msg, off, compression, false)
967	if err != nil {
968		return off, err
969	}
970	return off, nil
971}
972
973func (rr *TKEY) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
974	off, err = packDomainName(rr.Algorithm, msg, off, compression, false)
975	if err != nil {
976		return off, err
977	}
978	off, err = packUint32(rr.Inception, msg, off)
979	if err != nil {
980		return off, err
981	}
982	off, err = packUint32(rr.Expiration, msg, off)
983	if err != nil {
984		return off, err
985	}
986	off, err = packUint16(rr.Mode, msg, off)
987	if err != nil {
988		return off, err
989	}
990	off, err = packUint16(rr.Error, msg, off)
991	if err != nil {
992		return off, err
993	}
994	off, err = packUint16(rr.KeySize, msg, off)
995	if err != nil {
996		return off, err
997	}
998	off, err = packStringHex(rr.Key, msg, off)
999	if err != nil {
1000		return off, err
1001	}
1002	off, err = packUint16(rr.OtherLen, msg, off)
1003	if err != nil {
1004		return off, err
1005	}
1006	off, err = packStringHex(rr.OtherData, msg, off)
1007	if err != nil {
1008		return off, err
1009	}
1010	return off, nil
1011}
1012
1013func (rr *TLSA) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
1014	off, err = packUint8(rr.Usage, msg, off)
1015	if err != nil {
1016		return off, err
1017	}
1018	off, err = packUint8(rr.Selector, msg, off)
1019	if err != nil {
1020		return off, err
1021	}
1022	off, err = packUint8(rr.MatchingType, msg, off)
1023	if err != nil {
1024		return off, err
1025	}
1026	off, err = packStringHex(rr.Certificate, msg, off)
1027	if err != nil {
1028		return off, err
1029	}
1030	return off, nil
1031}
1032
1033func (rr *TSIG) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
1034	off, err = packDomainName(rr.Algorithm, msg, off, compression, false)
1035	if err != nil {
1036		return off, err
1037	}
1038	off, err = packUint48(rr.TimeSigned, msg, off)
1039	if err != nil {
1040		return off, err
1041	}
1042	off, err = packUint16(rr.Fudge, msg, off)
1043	if err != nil {
1044		return off, err
1045	}
1046	off, err = packUint16(rr.MACSize, msg, off)
1047	if err != nil {
1048		return off, err
1049	}
1050	off, err = packStringHex(rr.MAC, msg, off)
1051	if err != nil {
1052		return off, err
1053	}
1054	off, err = packUint16(rr.OrigId, msg, off)
1055	if err != nil {
1056		return off, err
1057	}
1058	off, err = packUint16(rr.Error, msg, off)
1059	if err != nil {
1060		return off, err
1061	}
1062	off, err = packUint16(rr.OtherLen, msg, off)
1063	if err != nil {
1064		return off, err
1065	}
1066	off, err = packStringHex(rr.OtherData, msg, off)
1067	if err != nil {
1068		return off, err
1069	}
1070	return off, nil
1071}
1072
1073func (rr *TXT) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
1074	off, err = packStringTxt(rr.Txt, msg, off)
1075	if err != nil {
1076		return off, err
1077	}
1078	return off, nil
1079}
1080
1081func (rr *UID) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
1082	off, err = packUint32(rr.Uid, msg, off)
1083	if err != nil {
1084		return off, err
1085	}
1086	return off, nil
1087}
1088
1089func (rr *UINFO) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
1090	off, err = packString(rr.Uinfo, msg, off)
1091	if err != nil {
1092		return off, err
1093	}
1094	return off, nil
1095}
1096
1097func (rr *URI) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
1098	off, err = packUint16(rr.Priority, msg, off)
1099	if err != nil {
1100		return off, err
1101	}
1102	off, err = packUint16(rr.Weight, msg, off)
1103	if err != nil {
1104		return off, err
1105	}
1106	off, err = packStringOctet(rr.Target, msg, off)
1107	if err != nil {
1108		return off, err
1109	}
1110	return off, nil
1111}
1112
1113func (rr *X25) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
1114	off, err = packString(rr.PSDNAddress, msg, off)
1115	if err != nil {
1116		return off, err
1117	}
1118	return off, nil
1119}
1120
1121func (rr *ZONEMD) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
1122	off, err = packUint32(rr.Serial, msg, off)
1123	if err != nil {
1124		return off, err
1125	}
1126	off, err = packUint8(rr.Scheme, msg, off)
1127	if err != nil {
1128		return off, err
1129	}
1130	off, err = packUint8(rr.Hash, msg, off)
1131	if err != nil {
1132		return off, err
1133	}
1134	off, err = packStringHex(rr.Digest, msg, off)
1135	if err != nil {
1136		return off, err
1137	}
1138	return off, nil
1139}
1140
1141// unpack*() functions
1142
1143func (rr *A) unpack(msg []byte, off int) (off1 int, err error) {
1144	rdStart := off
1145	_ = rdStart
1146
1147	rr.A, off, err = unpackDataA(msg, off)
1148	if err != nil {
1149		return off, err
1150	}
1151	return off, nil
1152}
1153
1154func (rr *AAAA) unpack(msg []byte, off int) (off1 int, err error) {
1155	rdStart := off
1156	_ = rdStart
1157
1158	rr.AAAA, off, err = unpackDataAAAA(msg, off)
1159	if err != nil {
1160		return off, err
1161	}
1162	return off, nil
1163}
1164
1165func (rr *AFSDB) unpack(msg []byte, off int) (off1 int, err error) {
1166	rdStart := off
1167	_ = rdStart
1168
1169	rr.Subtype, off, err = unpackUint16(msg, off)
1170	if err != nil {
1171		return off, err
1172	}
1173	if off == len(msg) {
1174		return off, nil
1175	}
1176	rr.Hostname, off, err = UnpackDomainName(msg, off)
1177	if err != nil {
1178		return off, err
1179	}
1180	return off, nil
1181}
1182
1183func (rr *ANY) unpack(msg []byte, off int) (off1 int, err error) {
1184	rdStart := off
1185	_ = rdStart
1186
1187	return off, nil
1188}
1189
1190func (rr *APL) unpack(msg []byte, off int) (off1 int, err error) {
1191	rdStart := off
1192	_ = rdStart
1193
1194	rr.Prefixes, off, err = unpackDataApl(msg, off)
1195	if err != nil {
1196		return off, err
1197	}
1198	return off, nil
1199}
1200
1201func (rr *AVC) unpack(msg []byte, off int) (off1 int, err error) {
1202	rdStart := off
1203	_ = rdStart
1204
1205	rr.Txt, off, err = unpackStringTxt(msg, off)
1206	if err != nil {
1207		return off, err
1208	}
1209	return off, nil
1210}
1211
1212func (rr *CAA) unpack(msg []byte, off int) (off1 int, err error) {
1213	rdStart := off
1214	_ = rdStart
1215
1216	rr.Flag, off, err = unpackUint8(msg, off)
1217	if err != nil {
1218		return off, err
1219	}
1220	if off == len(msg) {
1221		return off, nil
1222	}
1223	rr.Tag, off, err = unpackString(msg, off)
1224	if err != nil {
1225		return off, err
1226	}
1227	if off == len(msg) {
1228		return off, nil
1229	}
1230	rr.Value, off, err = unpackStringOctet(msg, off)
1231	if err != nil {
1232		return off, err
1233	}
1234	return off, nil
1235}
1236
1237func (rr *CDNSKEY) unpack(msg []byte, off int) (off1 int, err error) {
1238	rdStart := off
1239	_ = rdStart
1240
1241	rr.Flags, off, err = unpackUint16(msg, off)
1242	if err != nil {
1243		return off, err
1244	}
1245	if off == len(msg) {
1246		return off, nil
1247	}
1248	rr.Protocol, off, err = unpackUint8(msg, off)
1249	if err != nil {
1250		return off, err
1251	}
1252	if off == len(msg) {
1253		return off, nil
1254	}
1255	rr.Algorithm, off, err = unpackUint8(msg, off)
1256	if err != nil {
1257		return off, err
1258	}
1259	if off == len(msg) {
1260		return off, nil
1261	}
1262	rr.PublicKey, off, err = unpackStringBase64(msg, off, rdStart+int(rr.Hdr.Rdlength))
1263	if err != nil {
1264		return off, err
1265	}
1266	return off, nil
1267}
1268
1269func (rr *CDS) unpack(msg []byte, off int) (off1 int, err error) {
1270	rdStart := off
1271	_ = rdStart
1272
1273	rr.KeyTag, off, err = unpackUint16(msg, off)
1274	if err != nil {
1275		return off, err
1276	}
1277	if off == len(msg) {
1278		return off, nil
1279	}
1280	rr.Algorithm, off, err = unpackUint8(msg, off)
1281	if err != nil {
1282		return off, err
1283	}
1284	if off == len(msg) {
1285		return off, nil
1286	}
1287	rr.DigestType, off, err = unpackUint8(msg, off)
1288	if err != nil {
1289		return off, err
1290	}
1291	if off == len(msg) {
1292		return off, nil
1293	}
1294	rr.Digest, off, err = unpackStringHex(msg, off, rdStart+int(rr.Hdr.Rdlength))
1295	if err != nil {
1296		return off, err
1297	}
1298	return off, nil
1299}
1300
1301func (rr *CERT) unpack(msg []byte, off int) (off1 int, err error) {
1302	rdStart := off
1303	_ = rdStart
1304
1305	rr.Type, off, err = unpackUint16(msg, off)
1306	if err != nil {
1307		return off, err
1308	}
1309	if off == len(msg) {
1310		return off, nil
1311	}
1312	rr.KeyTag, off, err = unpackUint16(msg, off)
1313	if err != nil {
1314		return off, err
1315	}
1316	if off == len(msg) {
1317		return off, nil
1318	}
1319	rr.Algorithm, off, err = unpackUint8(msg, off)
1320	if err != nil {
1321		return off, err
1322	}
1323	if off == len(msg) {
1324		return off, nil
1325	}
1326	rr.Certificate, off, err = unpackStringBase64(msg, off, rdStart+int(rr.Hdr.Rdlength))
1327	if err != nil {
1328		return off, err
1329	}
1330	return off, nil
1331}
1332
1333func (rr *CNAME) unpack(msg []byte, off int) (off1 int, err error) {
1334	rdStart := off
1335	_ = rdStart
1336
1337	rr.Target, off, err = UnpackDomainName(msg, off)
1338	if err != nil {
1339		return off, err
1340	}
1341	return off, nil
1342}
1343
1344func (rr *CSYNC) unpack(msg []byte, off int) (off1 int, err error) {
1345	rdStart := off
1346	_ = rdStart
1347
1348	rr.Serial, off, err = unpackUint32(msg, off)
1349	if err != nil {
1350		return off, err
1351	}
1352	if off == len(msg) {
1353		return off, nil
1354	}
1355	rr.Flags, off, err = unpackUint16(msg, off)
1356	if err != nil {
1357		return off, err
1358	}
1359	if off == len(msg) {
1360		return off, nil
1361	}
1362	rr.TypeBitMap, off, err = unpackDataNsec(msg, off)
1363	if err != nil {
1364		return off, err
1365	}
1366	return off, nil
1367}
1368
1369func (rr *DHCID) unpack(msg []byte, off int) (off1 int, err error) {
1370	rdStart := off
1371	_ = rdStart
1372
1373	rr.Digest, off, err = unpackStringBase64(msg, off, rdStart+int(rr.Hdr.Rdlength))
1374	if err != nil {
1375		return off, err
1376	}
1377	return off, nil
1378}
1379
1380func (rr *DLV) unpack(msg []byte, off int) (off1 int, err error) {
1381	rdStart := off
1382	_ = rdStart
1383
1384	rr.KeyTag, off, err = unpackUint16(msg, off)
1385	if err != nil {
1386		return off, err
1387	}
1388	if off == len(msg) {
1389		return off, nil
1390	}
1391	rr.Algorithm, off, err = unpackUint8(msg, off)
1392	if err != nil {
1393		return off, err
1394	}
1395	if off == len(msg) {
1396		return off, nil
1397	}
1398	rr.DigestType, off, err = unpackUint8(msg, off)
1399	if err != nil {
1400		return off, err
1401	}
1402	if off == len(msg) {
1403		return off, nil
1404	}
1405	rr.Digest, off, err = unpackStringHex(msg, off, rdStart+int(rr.Hdr.Rdlength))
1406	if err != nil {
1407		return off, err
1408	}
1409	return off, nil
1410}
1411
1412func (rr *DNAME) unpack(msg []byte, off int) (off1 int, err error) {
1413	rdStart := off
1414	_ = rdStart
1415
1416	rr.Target, off, err = UnpackDomainName(msg, off)
1417	if err != nil {
1418		return off, err
1419	}
1420	return off, nil
1421}
1422
1423func (rr *DNSKEY) unpack(msg []byte, off int) (off1 int, err error) {
1424	rdStart := off
1425	_ = rdStart
1426
1427	rr.Flags, off, err = unpackUint16(msg, off)
1428	if err != nil {
1429		return off, err
1430	}
1431	if off == len(msg) {
1432		return off, nil
1433	}
1434	rr.Protocol, off, err = unpackUint8(msg, off)
1435	if err != nil {
1436		return off, err
1437	}
1438	if off == len(msg) {
1439		return off, nil
1440	}
1441	rr.Algorithm, off, err = unpackUint8(msg, off)
1442	if err != nil {
1443		return off, err
1444	}
1445	if off == len(msg) {
1446		return off, nil
1447	}
1448	rr.PublicKey, off, err = unpackStringBase64(msg, off, rdStart+int(rr.Hdr.Rdlength))
1449	if err != nil {
1450		return off, err
1451	}
1452	return off, nil
1453}
1454
1455func (rr *DS) unpack(msg []byte, off int) (off1 int, err error) {
1456	rdStart := off
1457	_ = rdStart
1458
1459	rr.KeyTag, off, err = unpackUint16(msg, off)
1460	if err != nil {
1461		return off, err
1462	}
1463	if off == len(msg) {
1464		return off, nil
1465	}
1466	rr.Algorithm, off, err = unpackUint8(msg, off)
1467	if err != nil {
1468		return off, err
1469	}
1470	if off == len(msg) {
1471		return off, nil
1472	}
1473	rr.DigestType, off, err = unpackUint8(msg, off)
1474	if err != nil {
1475		return off, err
1476	}
1477	if off == len(msg) {
1478		return off, nil
1479	}
1480	rr.Digest, off, err = unpackStringHex(msg, off, rdStart+int(rr.Hdr.Rdlength))
1481	if err != nil {
1482		return off, err
1483	}
1484	return off, nil
1485}
1486
1487func (rr *EID) unpack(msg []byte, off int) (off1 int, err error) {
1488	rdStart := off
1489	_ = rdStart
1490
1491	rr.Endpoint, off, err = unpackStringHex(msg, off, rdStart+int(rr.Hdr.Rdlength))
1492	if err != nil {
1493		return off, err
1494	}
1495	return off, nil
1496}
1497
1498func (rr *EUI48) unpack(msg []byte, off int) (off1 int, err error) {
1499	rdStart := off
1500	_ = rdStart
1501
1502	rr.Address, off, err = unpackUint48(msg, off)
1503	if err != nil {
1504		return off, err
1505	}
1506	return off, nil
1507}
1508
1509func (rr *EUI64) unpack(msg []byte, off int) (off1 int, err error) {
1510	rdStart := off
1511	_ = rdStart
1512
1513	rr.Address, off, err = unpackUint64(msg, off)
1514	if err != nil {
1515		return off, err
1516	}
1517	return off, nil
1518}
1519
1520func (rr *GID) unpack(msg []byte, off int) (off1 int, err error) {
1521	rdStart := off
1522	_ = rdStart
1523
1524	rr.Gid, off, err = unpackUint32(msg, off)
1525	if err != nil {
1526		return off, err
1527	}
1528	return off, nil
1529}
1530
1531func (rr *GPOS) unpack(msg []byte, off int) (off1 int, err error) {
1532	rdStart := off
1533	_ = rdStart
1534
1535	rr.Longitude, off, err = unpackString(msg, off)
1536	if err != nil {
1537		return off, err
1538	}
1539	if off == len(msg) {
1540		return off, nil
1541	}
1542	rr.Latitude, off, err = unpackString(msg, off)
1543	if err != nil {
1544		return off, err
1545	}
1546	if off == len(msg) {
1547		return off, nil
1548	}
1549	rr.Altitude, off, err = unpackString(msg, off)
1550	if err != nil {
1551		return off, err
1552	}
1553	return off, nil
1554}
1555
1556func (rr *HINFO) unpack(msg []byte, off int) (off1 int, err error) {
1557	rdStart := off
1558	_ = rdStart
1559
1560	rr.Cpu, off, err = unpackString(msg, off)
1561	if err != nil {
1562		return off, err
1563	}
1564	if off == len(msg) {
1565		return off, nil
1566	}
1567	rr.Os, off, err = unpackString(msg, off)
1568	if err != nil {
1569		return off, err
1570	}
1571	return off, nil
1572}
1573
1574func (rr *HIP) unpack(msg []byte, off int) (off1 int, err error) {
1575	rdStart := off
1576	_ = rdStart
1577
1578	rr.HitLength, off, err = unpackUint8(msg, off)
1579	if err != nil {
1580		return off, err
1581	}
1582	if off == len(msg) {
1583		return off, nil
1584	}
1585	rr.PublicKeyAlgorithm, off, err = unpackUint8(msg, off)
1586	if err != nil {
1587		return off, err
1588	}
1589	if off == len(msg) {
1590		return off, nil
1591	}
1592	rr.PublicKeyLength, off, err = unpackUint16(msg, off)
1593	if err != nil {
1594		return off, err
1595	}
1596	if off == len(msg) {
1597		return off, nil
1598	}
1599	rr.Hit, off, err = unpackStringHex(msg, off, off+int(rr.HitLength))
1600	if err != nil {
1601		return off, err
1602	}
1603	rr.PublicKey, off, err = unpackStringBase64(msg, off, off+int(rr.PublicKeyLength))
1604	if err != nil {
1605		return off, err
1606	}
1607	rr.RendezvousServers, off, err = unpackDataDomainNames(msg, off, rdStart+int(rr.Hdr.Rdlength))
1608	if err != nil {
1609		return off, err
1610	}
1611	return off, nil
1612}
1613
1614func (rr *HTTPS) unpack(msg []byte, off int) (off1 int, err error) {
1615	rdStart := off
1616	_ = rdStart
1617
1618	rr.Priority, off, err = unpackUint16(msg, off)
1619	if err != nil {
1620		return off, err
1621	}
1622	if off == len(msg) {
1623		return off, nil
1624	}
1625	rr.Target, off, err = UnpackDomainName(msg, off)
1626	if err != nil {
1627		return off, err
1628	}
1629	if off == len(msg) {
1630		return off, nil
1631	}
1632	rr.Value, off, err = unpackDataSVCB(msg, off)
1633	if err != nil {
1634		return off, err
1635	}
1636	return off, nil
1637}
1638
1639func (rr *KEY) unpack(msg []byte, off int) (off1 int, err error) {
1640	rdStart := off
1641	_ = rdStart
1642
1643	rr.Flags, off, err = unpackUint16(msg, off)
1644	if err != nil {
1645		return off, err
1646	}
1647	if off == len(msg) {
1648		return off, nil
1649	}
1650	rr.Protocol, off, err = unpackUint8(msg, off)
1651	if err != nil {
1652		return off, err
1653	}
1654	if off == len(msg) {
1655		return off, nil
1656	}
1657	rr.Algorithm, off, err = unpackUint8(msg, off)
1658	if err != nil {
1659		return off, err
1660	}
1661	if off == len(msg) {
1662		return off, nil
1663	}
1664	rr.PublicKey, off, err = unpackStringBase64(msg, off, rdStart+int(rr.Hdr.Rdlength))
1665	if err != nil {
1666		return off, err
1667	}
1668	return off, nil
1669}
1670
1671func (rr *KX) unpack(msg []byte, off int) (off1 int, err error) {
1672	rdStart := off
1673	_ = rdStart
1674
1675	rr.Preference, off, err = unpackUint16(msg, off)
1676	if err != nil {
1677		return off, err
1678	}
1679	if off == len(msg) {
1680		return off, nil
1681	}
1682	rr.Exchanger, off, err = UnpackDomainName(msg, off)
1683	if err != nil {
1684		return off, err
1685	}
1686	return off, nil
1687}
1688
1689func (rr *L32) unpack(msg []byte, off int) (off1 int, err error) {
1690	rdStart := off
1691	_ = rdStart
1692
1693	rr.Preference, off, err = unpackUint16(msg, off)
1694	if err != nil {
1695		return off, err
1696	}
1697	if off == len(msg) {
1698		return off, nil
1699	}
1700	rr.Locator32, off, err = unpackDataA(msg, off)
1701	if err != nil {
1702		return off, err
1703	}
1704	return off, nil
1705}
1706
1707func (rr *L64) unpack(msg []byte, off int) (off1 int, err error) {
1708	rdStart := off
1709	_ = rdStart
1710
1711	rr.Preference, off, err = unpackUint16(msg, off)
1712	if err != nil {
1713		return off, err
1714	}
1715	if off == len(msg) {
1716		return off, nil
1717	}
1718	rr.Locator64, off, err = unpackUint64(msg, off)
1719	if err != nil {
1720		return off, err
1721	}
1722	return off, nil
1723}
1724
1725func (rr *LOC) unpack(msg []byte, off int) (off1 int, err error) {
1726	rdStart := off
1727	_ = rdStart
1728
1729	rr.Version, off, err = unpackUint8(msg, off)
1730	if err != nil {
1731		return off, err
1732	}
1733	if off == len(msg) {
1734		return off, nil
1735	}
1736	rr.Size, off, err = unpackUint8(msg, off)
1737	if err != nil {
1738		return off, err
1739	}
1740	if off == len(msg) {
1741		return off, nil
1742	}
1743	rr.HorizPre, off, err = unpackUint8(msg, off)
1744	if err != nil {
1745		return off, err
1746	}
1747	if off == len(msg) {
1748		return off, nil
1749	}
1750	rr.VertPre, off, err = unpackUint8(msg, off)
1751	if err != nil {
1752		return off, err
1753	}
1754	if off == len(msg) {
1755		return off, nil
1756	}
1757	rr.Latitude, off, err = unpackUint32(msg, off)
1758	if err != nil {
1759		return off, err
1760	}
1761	if off == len(msg) {
1762		return off, nil
1763	}
1764	rr.Longitude, off, err = unpackUint32(msg, off)
1765	if err != nil {
1766		return off, err
1767	}
1768	if off == len(msg) {
1769		return off, nil
1770	}
1771	rr.Altitude, off, err = unpackUint32(msg, off)
1772	if err != nil {
1773		return off, err
1774	}
1775	return off, nil
1776}
1777
1778func (rr *LP) unpack(msg []byte, off int) (off1 int, err error) {
1779	rdStart := off
1780	_ = rdStart
1781
1782	rr.Preference, off, err = unpackUint16(msg, off)
1783	if err != nil {
1784		return off, err
1785	}
1786	if off == len(msg) {
1787		return off, nil
1788	}
1789	rr.Fqdn, off, err = UnpackDomainName(msg, off)
1790	if err != nil {
1791		return off, err
1792	}
1793	return off, nil
1794}
1795
1796func (rr *MB) unpack(msg []byte, off int) (off1 int, err error) {
1797	rdStart := off
1798	_ = rdStart
1799
1800	rr.Mb, off, err = UnpackDomainName(msg, off)
1801	if err != nil {
1802		return off, err
1803	}
1804	return off, nil
1805}
1806
1807func (rr *MD) unpack(msg []byte, off int) (off1 int, err error) {
1808	rdStart := off
1809	_ = rdStart
1810
1811	rr.Md, off, err = UnpackDomainName(msg, off)
1812	if err != nil {
1813		return off, err
1814	}
1815	return off, nil
1816}
1817
1818func (rr *MF) unpack(msg []byte, off int) (off1 int, err error) {
1819	rdStart := off
1820	_ = rdStart
1821
1822	rr.Mf, off, err = UnpackDomainName(msg, off)
1823	if err != nil {
1824		return off, err
1825	}
1826	return off, nil
1827}
1828
1829func (rr *MG) unpack(msg []byte, off int) (off1 int, err error) {
1830	rdStart := off
1831	_ = rdStart
1832
1833	rr.Mg, off, err = UnpackDomainName(msg, off)
1834	if err != nil {
1835		return off, err
1836	}
1837	return off, nil
1838}
1839
1840func (rr *MINFO) unpack(msg []byte, off int) (off1 int, err error) {
1841	rdStart := off
1842	_ = rdStart
1843
1844	rr.Rmail, off, err = UnpackDomainName(msg, off)
1845	if err != nil {
1846		return off, err
1847	}
1848	if off == len(msg) {
1849		return off, nil
1850	}
1851	rr.Email, off, err = UnpackDomainName(msg, off)
1852	if err != nil {
1853		return off, err
1854	}
1855	return off, nil
1856}
1857
1858func (rr *MR) unpack(msg []byte, off int) (off1 int, err error) {
1859	rdStart := off
1860	_ = rdStart
1861
1862	rr.Mr, off, err = UnpackDomainName(msg, off)
1863	if err != nil {
1864		return off, err
1865	}
1866	return off, nil
1867}
1868
1869func (rr *MX) unpack(msg []byte, off int) (off1 int, err error) {
1870	rdStart := off
1871	_ = rdStart
1872
1873	rr.Preference, off, err = unpackUint16(msg, off)
1874	if err != nil {
1875		return off, err
1876	}
1877	if off == len(msg) {
1878		return off, nil
1879	}
1880	rr.Mx, off, err = UnpackDomainName(msg, off)
1881	if err != nil {
1882		return off, err
1883	}
1884	return off, nil
1885}
1886
1887func (rr *NAPTR) unpack(msg []byte, off int) (off1 int, err error) {
1888	rdStart := off
1889	_ = rdStart
1890
1891	rr.Order, off, err = unpackUint16(msg, off)
1892	if err != nil {
1893		return off, err
1894	}
1895	if off == len(msg) {
1896		return off, nil
1897	}
1898	rr.Preference, off, err = unpackUint16(msg, off)
1899	if err != nil {
1900		return off, err
1901	}
1902	if off == len(msg) {
1903		return off, nil
1904	}
1905	rr.Flags, off, err = unpackString(msg, off)
1906	if err != nil {
1907		return off, err
1908	}
1909	if off == len(msg) {
1910		return off, nil
1911	}
1912	rr.Service, off, err = unpackString(msg, off)
1913	if err != nil {
1914		return off, err
1915	}
1916	if off == len(msg) {
1917		return off, nil
1918	}
1919	rr.Regexp, off, err = unpackString(msg, off)
1920	if err != nil {
1921		return off, err
1922	}
1923	if off == len(msg) {
1924		return off, nil
1925	}
1926	rr.Replacement, off, err = UnpackDomainName(msg, off)
1927	if err != nil {
1928		return off, err
1929	}
1930	return off, nil
1931}
1932
1933func (rr *NID) unpack(msg []byte, off int) (off1 int, err error) {
1934	rdStart := off
1935	_ = rdStart
1936
1937	rr.Preference, off, err = unpackUint16(msg, off)
1938	if err != nil {
1939		return off, err
1940	}
1941	if off == len(msg) {
1942		return off, nil
1943	}
1944	rr.NodeID, off, err = unpackUint64(msg, off)
1945	if err != nil {
1946		return off, err
1947	}
1948	return off, nil
1949}
1950
1951func (rr *NIMLOC) unpack(msg []byte, off int) (off1 int, err error) {
1952	rdStart := off
1953	_ = rdStart
1954
1955	rr.Locator, off, err = unpackStringHex(msg, off, rdStart+int(rr.Hdr.Rdlength))
1956	if err != nil {
1957		return off, err
1958	}
1959	return off, nil
1960}
1961
1962func (rr *NINFO) unpack(msg []byte, off int) (off1 int, err error) {
1963	rdStart := off
1964	_ = rdStart
1965
1966	rr.ZSData, off, err = unpackStringTxt(msg, off)
1967	if err != nil {
1968		return off, err
1969	}
1970	return off, nil
1971}
1972
1973func (rr *NS) unpack(msg []byte, off int) (off1 int, err error) {
1974	rdStart := off
1975	_ = rdStart
1976
1977	rr.Ns, off, err = UnpackDomainName(msg, off)
1978	if err != nil {
1979		return off, err
1980	}
1981	return off, nil
1982}
1983
1984func (rr *NSAPPTR) unpack(msg []byte, off int) (off1 int, err error) {
1985	rdStart := off
1986	_ = rdStart
1987
1988	rr.Ptr, off, err = UnpackDomainName(msg, off)
1989	if err != nil {
1990		return off, err
1991	}
1992	return off, nil
1993}
1994
1995func (rr *NSEC) unpack(msg []byte, off int) (off1 int, err error) {
1996	rdStart := off
1997	_ = rdStart
1998
1999	rr.NextDomain, off, err = UnpackDomainName(msg, off)
2000	if err != nil {
2001		return off, err
2002	}
2003	if off == len(msg) {
2004		return off, nil
2005	}
2006	rr.TypeBitMap, off, err = unpackDataNsec(msg, off)
2007	if err != nil {
2008		return off, err
2009	}
2010	return off, nil
2011}
2012
2013func (rr *NSEC3) unpack(msg []byte, off int) (off1 int, err error) {
2014	rdStart := off
2015	_ = rdStart
2016
2017	rr.Hash, off, err = unpackUint8(msg, off)
2018	if err != nil {
2019		return off, err
2020	}
2021	if off == len(msg) {
2022		return off, nil
2023	}
2024	rr.Flags, off, err = unpackUint8(msg, off)
2025	if err != nil {
2026		return off, err
2027	}
2028	if off == len(msg) {
2029		return off, nil
2030	}
2031	rr.Iterations, off, err = unpackUint16(msg, off)
2032	if err != nil {
2033		return off, err
2034	}
2035	if off == len(msg) {
2036		return off, nil
2037	}
2038	rr.SaltLength, off, err = unpackUint8(msg, off)
2039	if err != nil {
2040		return off, err
2041	}
2042	if off == len(msg) {
2043		return off, nil
2044	}
2045	rr.Salt, off, err = unpackStringHex(msg, off, off+int(rr.SaltLength))
2046	if err != nil {
2047		return off, err
2048	}
2049	rr.HashLength, off, err = unpackUint8(msg, off)
2050	if err != nil {
2051		return off, err
2052	}
2053	if off == len(msg) {
2054		return off, nil
2055	}
2056	rr.NextDomain, off, err = unpackStringBase32(msg, off, off+int(rr.HashLength))
2057	if err != nil {
2058		return off, err
2059	}
2060	rr.TypeBitMap, off, err = unpackDataNsec(msg, off)
2061	if err != nil {
2062		return off, err
2063	}
2064	return off, nil
2065}
2066
2067func (rr *NSEC3PARAM) unpack(msg []byte, off int) (off1 int, err error) {
2068	rdStart := off
2069	_ = rdStart
2070
2071	rr.Hash, off, err = unpackUint8(msg, off)
2072	if err != nil {
2073		return off, err
2074	}
2075	if off == len(msg) {
2076		return off, nil
2077	}
2078	rr.Flags, off, err = unpackUint8(msg, off)
2079	if err != nil {
2080		return off, err
2081	}
2082	if off == len(msg) {
2083		return off, nil
2084	}
2085	rr.Iterations, off, err = unpackUint16(msg, off)
2086	if err != nil {
2087		return off, err
2088	}
2089	if off == len(msg) {
2090		return off, nil
2091	}
2092	rr.SaltLength, off, err = unpackUint8(msg, off)
2093	if err != nil {
2094		return off, err
2095	}
2096	if off == len(msg) {
2097		return off, nil
2098	}
2099	rr.Salt, off, err = unpackStringHex(msg, off, off+int(rr.SaltLength))
2100	if err != nil {
2101		return off, err
2102	}
2103	return off, nil
2104}
2105
2106func (rr *NULL) unpack(msg []byte, off int) (off1 int, err error) {
2107	rdStart := off
2108	_ = rdStart
2109
2110	rr.Data, off, err = unpackStringAny(msg, off, rdStart+int(rr.Hdr.Rdlength))
2111	if err != nil {
2112		return off, err
2113	}
2114	return off, nil
2115}
2116
2117func (rr *OPENPGPKEY) unpack(msg []byte, off int) (off1 int, err error) {
2118	rdStart := off
2119	_ = rdStart
2120
2121	rr.PublicKey, off, err = unpackStringBase64(msg, off, rdStart+int(rr.Hdr.Rdlength))
2122	if err != nil {
2123		return off, err
2124	}
2125	return off, nil
2126}
2127
2128func (rr *OPT) unpack(msg []byte, off int) (off1 int, err error) {
2129	rdStart := off
2130	_ = rdStart
2131
2132	rr.Option, off, err = unpackDataOpt(msg, off)
2133	if err != nil {
2134		return off, err
2135	}
2136	return off, nil
2137}
2138
2139func (rr *PTR) unpack(msg []byte, off int) (off1 int, err error) {
2140	rdStart := off
2141	_ = rdStart
2142
2143	rr.Ptr, off, err = UnpackDomainName(msg, off)
2144	if err != nil {
2145		return off, err
2146	}
2147	return off, nil
2148}
2149
2150func (rr *PX) unpack(msg []byte, off int) (off1 int, err error) {
2151	rdStart := off
2152	_ = rdStart
2153
2154	rr.Preference, off, err = unpackUint16(msg, off)
2155	if err != nil {
2156		return off, err
2157	}
2158	if off == len(msg) {
2159		return off, nil
2160	}
2161	rr.Map822, off, err = UnpackDomainName(msg, off)
2162	if err != nil {
2163		return off, err
2164	}
2165	if off == len(msg) {
2166		return off, nil
2167	}
2168	rr.Mapx400, off, err = UnpackDomainName(msg, off)
2169	if err != nil {
2170		return off, err
2171	}
2172	return off, nil
2173}
2174
2175func (rr *RFC3597) unpack(msg []byte, off int) (off1 int, err error) {
2176	rdStart := off
2177	_ = rdStart
2178
2179	rr.Rdata, off, err = unpackStringHex(msg, off, rdStart+int(rr.Hdr.Rdlength))
2180	if err != nil {
2181		return off, err
2182	}
2183	return off, nil
2184}
2185
2186func (rr *RKEY) unpack(msg []byte, off int) (off1 int, err error) {
2187	rdStart := off
2188	_ = rdStart
2189
2190	rr.Flags, off, err = unpackUint16(msg, off)
2191	if err != nil {
2192		return off, err
2193	}
2194	if off == len(msg) {
2195		return off, nil
2196	}
2197	rr.Protocol, off, err = unpackUint8(msg, off)
2198	if err != nil {
2199		return off, err
2200	}
2201	if off == len(msg) {
2202		return off, nil
2203	}
2204	rr.Algorithm, off, err = unpackUint8(msg, off)
2205	if err != nil {
2206		return off, err
2207	}
2208	if off == len(msg) {
2209		return off, nil
2210	}
2211	rr.PublicKey, off, err = unpackStringBase64(msg, off, rdStart+int(rr.Hdr.Rdlength))
2212	if err != nil {
2213		return off, err
2214	}
2215	return off, nil
2216}
2217
2218func (rr *RP) unpack(msg []byte, off int) (off1 int, err error) {
2219	rdStart := off
2220	_ = rdStart
2221
2222	rr.Mbox, off, err = UnpackDomainName(msg, off)
2223	if err != nil {
2224		return off, err
2225	}
2226	if off == len(msg) {
2227		return off, nil
2228	}
2229	rr.Txt, off, err = UnpackDomainName(msg, off)
2230	if err != nil {
2231		return off, err
2232	}
2233	return off, nil
2234}
2235
2236func (rr *RRSIG) unpack(msg []byte, off int) (off1 int, err error) {
2237	rdStart := off
2238	_ = rdStart
2239
2240	rr.TypeCovered, off, err = unpackUint16(msg, off)
2241	if err != nil {
2242		return off, err
2243	}
2244	if off == len(msg) {
2245		return off, nil
2246	}
2247	rr.Algorithm, off, err = unpackUint8(msg, off)
2248	if err != nil {
2249		return off, err
2250	}
2251	if off == len(msg) {
2252		return off, nil
2253	}
2254	rr.Labels, off, err = unpackUint8(msg, off)
2255	if err != nil {
2256		return off, err
2257	}
2258	if off == len(msg) {
2259		return off, nil
2260	}
2261	rr.OrigTtl, off, err = unpackUint32(msg, off)
2262	if err != nil {
2263		return off, err
2264	}
2265	if off == len(msg) {
2266		return off, nil
2267	}
2268	rr.Expiration, off, err = unpackUint32(msg, off)
2269	if err != nil {
2270		return off, err
2271	}
2272	if off == len(msg) {
2273		return off, nil
2274	}
2275	rr.Inception, off, err = unpackUint32(msg, off)
2276	if err != nil {
2277		return off, err
2278	}
2279	if off == len(msg) {
2280		return off, nil
2281	}
2282	rr.KeyTag, off, err = unpackUint16(msg, off)
2283	if err != nil {
2284		return off, err
2285	}
2286	if off == len(msg) {
2287		return off, nil
2288	}
2289	rr.SignerName, off, err = UnpackDomainName(msg, off)
2290	if err != nil {
2291		return off, err
2292	}
2293	if off == len(msg) {
2294		return off, nil
2295	}
2296	rr.Signature, off, err = unpackStringBase64(msg, off, rdStart+int(rr.Hdr.Rdlength))
2297	if err != nil {
2298		return off, err
2299	}
2300	return off, nil
2301}
2302
2303func (rr *RT) unpack(msg []byte, off int) (off1 int, err error) {
2304	rdStart := off
2305	_ = rdStart
2306
2307	rr.Preference, off, err = unpackUint16(msg, off)
2308	if err != nil {
2309		return off, err
2310	}
2311	if off == len(msg) {
2312		return off, nil
2313	}
2314	rr.Host, off, err = UnpackDomainName(msg, off)
2315	if err != nil {
2316		return off, err
2317	}
2318	return off, nil
2319}
2320
2321func (rr *SIG) unpack(msg []byte, off int) (off1 int, err error) {
2322	rdStart := off
2323	_ = rdStart
2324
2325	rr.TypeCovered, off, err = unpackUint16(msg, off)
2326	if err != nil {
2327		return off, err
2328	}
2329	if off == len(msg) {
2330		return off, nil
2331	}
2332	rr.Algorithm, off, err = unpackUint8(msg, off)
2333	if err != nil {
2334		return off, err
2335	}
2336	if off == len(msg) {
2337		return off, nil
2338	}
2339	rr.Labels, off, err = unpackUint8(msg, off)
2340	if err != nil {
2341		return off, err
2342	}
2343	if off == len(msg) {
2344		return off, nil
2345	}
2346	rr.OrigTtl, off, err = unpackUint32(msg, off)
2347	if err != nil {
2348		return off, err
2349	}
2350	if off == len(msg) {
2351		return off, nil
2352	}
2353	rr.Expiration, off, err = unpackUint32(msg, off)
2354	if err != nil {
2355		return off, err
2356	}
2357	if off == len(msg) {
2358		return off, nil
2359	}
2360	rr.Inception, off, err = unpackUint32(msg, off)
2361	if err != nil {
2362		return off, err
2363	}
2364	if off == len(msg) {
2365		return off, nil
2366	}
2367	rr.KeyTag, off, err = unpackUint16(msg, off)
2368	if err != nil {
2369		return off, err
2370	}
2371	if off == len(msg) {
2372		return off, nil
2373	}
2374	rr.SignerName, off, err = UnpackDomainName(msg, off)
2375	if err != nil {
2376		return off, err
2377	}
2378	if off == len(msg) {
2379		return off, nil
2380	}
2381	rr.Signature, off, err = unpackStringBase64(msg, off, rdStart+int(rr.Hdr.Rdlength))
2382	if err != nil {
2383		return off, err
2384	}
2385	return off, nil
2386}
2387
2388func (rr *SMIMEA) unpack(msg []byte, off int) (off1 int, err error) {
2389	rdStart := off
2390	_ = rdStart
2391
2392	rr.Usage, off, err = unpackUint8(msg, off)
2393	if err != nil {
2394		return off, err
2395	}
2396	if off == len(msg) {
2397		return off, nil
2398	}
2399	rr.Selector, off, err = unpackUint8(msg, off)
2400	if err != nil {
2401		return off, err
2402	}
2403	if off == len(msg) {
2404		return off, nil
2405	}
2406	rr.MatchingType, off, err = unpackUint8(msg, off)
2407	if err != nil {
2408		return off, err
2409	}
2410	if off == len(msg) {
2411		return off, nil
2412	}
2413	rr.Certificate, off, err = unpackStringHex(msg, off, rdStart+int(rr.Hdr.Rdlength))
2414	if err != nil {
2415		return off, err
2416	}
2417	return off, nil
2418}
2419
2420func (rr *SOA) unpack(msg []byte, off int) (off1 int, err error) {
2421	rdStart := off
2422	_ = rdStart
2423
2424	rr.Ns, off, err = UnpackDomainName(msg, off)
2425	if err != nil {
2426		return off, err
2427	}
2428	if off == len(msg) {
2429		return off, nil
2430	}
2431	rr.Mbox, off, err = UnpackDomainName(msg, off)
2432	if err != nil {
2433		return off, err
2434	}
2435	if off == len(msg) {
2436		return off, nil
2437	}
2438	rr.Serial, off, err = unpackUint32(msg, off)
2439	if err != nil {
2440		return off, err
2441	}
2442	if off == len(msg) {
2443		return off, nil
2444	}
2445	rr.Refresh, off, err = unpackUint32(msg, off)
2446	if err != nil {
2447		return off, err
2448	}
2449	if off == len(msg) {
2450		return off, nil
2451	}
2452	rr.Retry, off, err = unpackUint32(msg, off)
2453	if err != nil {
2454		return off, err
2455	}
2456	if off == len(msg) {
2457		return off, nil
2458	}
2459	rr.Expire, off, err = unpackUint32(msg, off)
2460	if err != nil {
2461		return off, err
2462	}
2463	if off == len(msg) {
2464		return off, nil
2465	}
2466	rr.Minttl, off, err = unpackUint32(msg, off)
2467	if err != nil {
2468		return off, err
2469	}
2470	return off, nil
2471}
2472
2473func (rr *SPF) unpack(msg []byte, off int) (off1 int, err error) {
2474	rdStart := off
2475	_ = rdStart
2476
2477	rr.Txt, off, err = unpackStringTxt(msg, off)
2478	if err != nil {
2479		return off, err
2480	}
2481	return off, nil
2482}
2483
2484func (rr *SRV) unpack(msg []byte, off int) (off1 int, err error) {
2485	rdStart := off
2486	_ = rdStart
2487
2488	rr.Priority, off, err = unpackUint16(msg, off)
2489	if err != nil {
2490		return off, err
2491	}
2492	if off == len(msg) {
2493		return off, nil
2494	}
2495	rr.Weight, off, err = unpackUint16(msg, off)
2496	if err != nil {
2497		return off, err
2498	}
2499	if off == len(msg) {
2500		return off, nil
2501	}
2502	rr.Port, off, err = unpackUint16(msg, off)
2503	if err != nil {
2504		return off, err
2505	}
2506	if off == len(msg) {
2507		return off, nil
2508	}
2509	rr.Target, off, err = UnpackDomainName(msg, off)
2510	if err != nil {
2511		return off, err
2512	}
2513	return off, nil
2514}
2515
2516func (rr *SSHFP) unpack(msg []byte, off int) (off1 int, err error) {
2517	rdStart := off
2518	_ = rdStart
2519
2520	rr.Algorithm, off, err = unpackUint8(msg, off)
2521	if err != nil {
2522		return off, err
2523	}
2524	if off == len(msg) {
2525		return off, nil
2526	}
2527	rr.Type, off, err = unpackUint8(msg, off)
2528	if err != nil {
2529		return off, err
2530	}
2531	if off == len(msg) {
2532		return off, nil
2533	}
2534	rr.FingerPrint, off, err = unpackStringHex(msg, off, rdStart+int(rr.Hdr.Rdlength))
2535	if err != nil {
2536		return off, err
2537	}
2538	return off, nil
2539}
2540
2541func (rr *SVCB) unpack(msg []byte, off int) (off1 int, err error) {
2542	rdStart := off
2543	_ = rdStart
2544
2545	rr.Priority, off, err = unpackUint16(msg, off)
2546	if err != nil {
2547		return off, err
2548	}
2549	if off == len(msg) {
2550		return off, nil
2551	}
2552	rr.Target, off, err = UnpackDomainName(msg, off)
2553	if err != nil {
2554		return off, err
2555	}
2556	if off == len(msg) {
2557		return off, nil
2558	}
2559	rr.Value, off, err = unpackDataSVCB(msg, off)
2560	if err != nil {
2561		return off, err
2562	}
2563	return off, nil
2564}
2565
2566func (rr *TA) unpack(msg []byte, off int) (off1 int, err error) {
2567	rdStart := off
2568	_ = rdStart
2569
2570	rr.KeyTag, off, err = unpackUint16(msg, off)
2571	if err != nil {
2572		return off, err
2573	}
2574	if off == len(msg) {
2575		return off, nil
2576	}
2577	rr.Algorithm, off, err = unpackUint8(msg, off)
2578	if err != nil {
2579		return off, err
2580	}
2581	if off == len(msg) {
2582		return off, nil
2583	}
2584	rr.DigestType, off, err = unpackUint8(msg, off)
2585	if err != nil {
2586		return off, err
2587	}
2588	if off == len(msg) {
2589		return off, nil
2590	}
2591	rr.Digest, off, err = unpackStringHex(msg, off, rdStart+int(rr.Hdr.Rdlength))
2592	if err != nil {
2593		return off, err
2594	}
2595	return off, nil
2596}
2597
2598func (rr *TALINK) unpack(msg []byte, off int) (off1 int, err error) {
2599	rdStart := off
2600	_ = rdStart
2601
2602	rr.PreviousName, off, err = UnpackDomainName(msg, off)
2603	if err != nil {
2604		return off, err
2605	}
2606	if off == len(msg) {
2607		return off, nil
2608	}
2609	rr.NextName, off, err = UnpackDomainName(msg, off)
2610	if err != nil {
2611		return off, err
2612	}
2613	return off, nil
2614}
2615
2616func (rr *TKEY) unpack(msg []byte, off int) (off1 int, err error) {
2617	rdStart := off
2618	_ = rdStart
2619
2620	rr.Algorithm, off, err = UnpackDomainName(msg, off)
2621	if err != nil {
2622		return off, err
2623	}
2624	if off == len(msg) {
2625		return off, nil
2626	}
2627	rr.Inception, off, err = unpackUint32(msg, off)
2628	if err != nil {
2629		return off, err
2630	}
2631	if off == len(msg) {
2632		return off, nil
2633	}
2634	rr.Expiration, off, err = unpackUint32(msg, off)
2635	if err != nil {
2636		return off, err
2637	}
2638	if off == len(msg) {
2639		return off, nil
2640	}
2641	rr.Mode, off, err = unpackUint16(msg, off)
2642	if err != nil {
2643		return off, err
2644	}
2645	if off == len(msg) {
2646		return off, nil
2647	}
2648	rr.Error, off, err = unpackUint16(msg, off)
2649	if err != nil {
2650		return off, err
2651	}
2652	if off == len(msg) {
2653		return off, nil
2654	}
2655	rr.KeySize, off, err = unpackUint16(msg, off)
2656	if err != nil {
2657		return off, err
2658	}
2659	if off == len(msg) {
2660		return off, nil
2661	}
2662	rr.Key, off, err = unpackStringHex(msg, off, off+int(rr.KeySize))
2663	if err != nil {
2664		return off, err
2665	}
2666	rr.OtherLen, off, err = unpackUint16(msg, off)
2667	if err != nil {
2668		return off, err
2669	}
2670	if off == len(msg) {
2671		return off, nil
2672	}
2673	rr.OtherData, off, err = unpackStringHex(msg, off, off+int(rr.OtherLen))
2674	if err != nil {
2675		return off, err
2676	}
2677	return off, nil
2678}
2679
2680func (rr *TLSA) unpack(msg []byte, off int) (off1 int, err error) {
2681	rdStart := off
2682	_ = rdStart
2683
2684	rr.Usage, off, err = unpackUint8(msg, off)
2685	if err != nil {
2686		return off, err
2687	}
2688	if off == len(msg) {
2689		return off, nil
2690	}
2691	rr.Selector, off, err = unpackUint8(msg, off)
2692	if err != nil {
2693		return off, err
2694	}
2695	if off == len(msg) {
2696		return off, nil
2697	}
2698	rr.MatchingType, off, err = unpackUint8(msg, off)
2699	if err != nil {
2700		return off, err
2701	}
2702	if off == len(msg) {
2703		return off, nil
2704	}
2705	rr.Certificate, off, err = unpackStringHex(msg, off, rdStart+int(rr.Hdr.Rdlength))
2706	if err != nil {
2707		return off, err
2708	}
2709	return off, nil
2710}
2711
2712func (rr *TSIG) unpack(msg []byte, off int) (off1 int, err error) {
2713	rdStart := off
2714	_ = rdStart
2715
2716	rr.Algorithm, off, err = UnpackDomainName(msg, off)
2717	if err != nil {
2718		return off, err
2719	}
2720	if off == len(msg) {
2721		return off, nil
2722	}
2723	rr.TimeSigned, off, err = unpackUint48(msg, off)
2724	if err != nil {
2725		return off, err
2726	}
2727	if off == len(msg) {
2728		return off, nil
2729	}
2730	rr.Fudge, off, err = unpackUint16(msg, off)
2731	if err != nil {
2732		return off, err
2733	}
2734	if off == len(msg) {
2735		return off, nil
2736	}
2737	rr.MACSize, off, err = unpackUint16(msg, off)
2738	if err != nil {
2739		return off, err
2740	}
2741	if off == len(msg) {
2742		return off, nil
2743	}
2744	rr.MAC, off, err = unpackStringHex(msg, off, off+int(rr.MACSize))
2745	if err != nil {
2746		return off, err
2747	}
2748	rr.OrigId, off, err = unpackUint16(msg, off)
2749	if err != nil {
2750		return off, err
2751	}
2752	if off == len(msg) {
2753		return off, nil
2754	}
2755	rr.Error, off, err = unpackUint16(msg, off)
2756	if err != nil {
2757		return off, err
2758	}
2759	if off == len(msg) {
2760		return off, nil
2761	}
2762	rr.OtherLen, off, err = unpackUint16(msg, off)
2763	if err != nil {
2764		return off, err
2765	}
2766	if off == len(msg) {
2767		return off, nil
2768	}
2769	rr.OtherData, off, err = unpackStringHex(msg, off, off+int(rr.OtherLen))
2770	if err != nil {
2771		return off, err
2772	}
2773	return off, nil
2774}
2775
2776func (rr *TXT) unpack(msg []byte, off int) (off1 int, err error) {
2777	rdStart := off
2778	_ = rdStart
2779
2780	rr.Txt, off, err = unpackStringTxt(msg, off)
2781	if err != nil {
2782		return off, err
2783	}
2784	return off, nil
2785}
2786
2787func (rr *UID) unpack(msg []byte, off int) (off1 int, err error) {
2788	rdStart := off
2789	_ = rdStart
2790
2791	rr.Uid, off, err = unpackUint32(msg, off)
2792	if err != nil {
2793		return off, err
2794	}
2795	return off, nil
2796}
2797
2798func (rr *UINFO) unpack(msg []byte, off int) (off1 int, err error) {
2799	rdStart := off
2800	_ = rdStart
2801
2802	rr.Uinfo, off, err = unpackString(msg, off)
2803	if err != nil {
2804		return off, err
2805	}
2806	return off, nil
2807}
2808
2809func (rr *URI) unpack(msg []byte, off int) (off1 int, err error) {
2810	rdStart := off
2811	_ = rdStart
2812
2813	rr.Priority, off, err = unpackUint16(msg, off)
2814	if err != nil {
2815		return off, err
2816	}
2817	if off == len(msg) {
2818		return off, nil
2819	}
2820	rr.Weight, off, err = unpackUint16(msg, off)
2821	if err != nil {
2822		return off, err
2823	}
2824	if off == len(msg) {
2825		return off, nil
2826	}
2827	rr.Target, off, err = unpackStringOctet(msg, off)
2828	if err != nil {
2829		return off, err
2830	}
2831	return off, nil
2832}
2833
2834func (rr *X25) unpack(msg []byte, off int) (off1 int, err error) {
2835	rdStart := off
2836	_ = rdStart
2837
2838	rr.PSDNAddress, off, err = unpackString(msg, off)
2839	if err != nil {
2840		return off, err
2841	}
2842	return off, nil
2843}
2844
2845func (rr *ZONEMD) unpack(msg []byte, off int) (off1 int, err error) {
2846	rdStart := off
2847	_ = rdStart
2848
2849	rr.Serial, off, err = unpackUint32(msg, off)
2850	if err != nil {
2851		return off, err
2852	}
2853	if off == len(msg) {
2854		return off, nil
2855	}
2856	rr.Scheme, off, err = unpackUint8(msg, off)
2857	if err != nil {
2858		return off, err
2859	}
2860	if off == len(msg) {
2861		return off, nil
2862	}
2863	rr.Hash, off, err = unpackUint8(msg, off)
2864	if err != nil {
2865		return off, err
2866	}
2867	if off == len(msg) {
2868		return off, nil
2869	}
2870	rr.Digest, off, err = unpackStringHex(msg, off, rdStart+int(rr.Hdr.Rdlength))
2871	if err != nil {
2872		return off, err
2873	}
2874	return off, nil
2875}
2876