<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def gnpool(name, start, room, lenout=_default_len_out):
 """ Return names of kernel variables matching a specified template. http://naif.jpl.nasa.gov/pub/naif/toolkit_docs/C/cspice/gnpool_c.html :param name: Template that names should match. :type name: str :param start: Index of first matching name to retrieve. :type start: int :param room: The largest number of values to return. :type room: int :param lenout: Length of strings in output array kvars. :type lenout: int :return: Kernel pool variables whose names match name. :rtype: list of str """

    name = stypes.stringToCharP(name)
    start = ctypes.c_int(start)
    kvars = stypes.emptyCharArray(yLen=room, xLen=lenout)
    room = ctypes.c_int(room)
    lenout = ctypes.c_int(lenout)
    n = ctypes.c_int()
    found = ctypes.c_int()
    libspice.gnpool_c(name, start, room, lenout, ctypes.byref(n), kvars,
                      ctypes.byref(found))
    return stypes.cVectorToPython(kvars)[0:n.value], bool(found.value)