<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def read(self, size=-1):
 """Read `size` bytes from the reader relative to the parsed output. This is generally acceptable in practice since VCF lines are condensed, but if the output line <<< record, this means the actual memory used will be much greater than `size`. """

        lines = []
        parsed_size = 0

        while True:
            line = self.readline()
            if not line:
                break
            lines.append(line)
            parsed_size += len(line)
            if size and size > 0 and parsed_size >= size:
                break

        return ''.join(lines)