<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _getOverlay(self, readDataInstance, sectionHdrsInstance):
 """ Returns the overlay data from the PE file. @type readDataInstance: L{ReadData} @param readDataInstance: A L{ReadData} instance containing the PE file data. @type sectionHdrsInstance: L{SectionHeaders} @param sectionHdrsInstance: A L{SectionHeaders} instance containing the information about the sections present in the PE file. @rtype: str @return: A string with the overlay data from the PE file. @raise InstanceErrorException: If the C{readDataInstance} or the C{sectionHdrsInstance} were not specified. """

        if readDataInstance is not None and sectionHdrsInstance is not None:            
            # adjust the offset in readDataInstance to the RawOffset + RawSize of the last section
            try:
                offset = sectionHdrsInstance[-1].pointerToRawData.value + sectionHdrsInstance[-1].sizeOfRawData.value
                readDataInstance.setOffset(offset)
            except excep.WrongOffsetValueException:
                if self._verbose:
                    print "It seems that the file has no overlay data."
        else:
            raise excep.InstanceErrorException("ReadData instance or SectionHeaders instance not specified.")
            
        return readDataInstance.data[readDataInstance.offset:]