def decode (cls, bytes, cmddict=None):
    """Decodes sequence command attributes from an array of bytes and
    returns a new SeqCmdAttrs.
    """
    byte   = struct.unpack('B', bytes)[0]
    self   = cls()
    defval = self.default

    for bit, name, value0, value1, default in SeqCmdAttrs.Table:
      mask   = 1 << bit
      bitset = mask & byte
      defset = mask & defval
      if bitset != defset:
        if bitset:
          self.attrs[name] = value1
        else:
          self.attrs[name] = value0

    return self
Decodes sequence command attributes from an array of bytes and
    returns a new SeqCmdAttrs.