zmsg.go raw

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