code: def ReplyPacket(self):
          
          assert(self.authenticator)
          assert(self.secret is not None)
  
          attr = self._PktEncodeAttributes()
          header = struct.pack('!BBH', self.code, self.id, (20 + len(attr)))
  
          authenticator = md5_constructor(header[0:4] + self.authenticator
                                + attr + self.secret).digest()
          return header + authenticator + attr
docs: Create a ready-to-transmit authentication reply packet.
          Returns a RADIUS packet which can be directly transmitted
          to a RADIUS server. This differs with Packet() in how
          the authenticator is calculated.
  
          :return: raw packet
          :rtype:  string