@staticmethod
def unpack(reader):
    (subtype,) = reader.peek('!L', 4)
    subclass = experimenter.subtypes.get(subtype)
    if subclass:
        return subclass.unpack(reader)
    obj = experimenter()
    _type = reader.read('!H')[0]
    assert (_type == 65535)
    _len = reader.read('!H')[0]
    orig_reader = reader
    reader = orig_reader.slice(_len, 4)
    obj.experimenter = reader.read('!L')[0]
    obj.data = str(reader.read_all())
    return obj
@staticmethod
def unpack(reader):
    (subtype,) = reader.peek('!L', 4)
    subclass = experimenter.subtypes.get(subtype)
    if subclass:
        return subclass.unpack(reader)
    obj = experimenter()
    _type = reader.read('!H')[0]
    assert (_type == 65535)
    _len = reader.read('!H')[0]
    orig_reader = reader
    reader = orig_reader.slice(_len, 4)
    obj.experimenter = reader.read('!L')[0]
    obj.data = str(reader.read_all())
    return obj