<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def upload(self, localfile: str, remotefile: str, overwrite: bool = True, permission: str = '', **kwargs):
 """ This method uploads a local file to the SAS servers file system. :param localfile: path to the local file :param remotefile: path to remote file to create or overwrite :param overwrite: overwrite the output file if it exists? :param permission: permissions to set on the new file. See SAS Filename Statement Doc for syntax :return: SAS Log """

        if self.nosub:
            print("too complicated to show the code, read the source :), sorry.")
            return None
        else:
            log = self._io.upload(localfile, remotefile, overwrite, permission, **kwargs)
     
        return log