<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def save(self):
 """ Exports all user attributes to the user's configuration and writes configuration Saves the values for each attribute stored in User.configVars into the user's configuration. The password is automatically encoded and salted to prevent saving it as plaintext. The session is pickled, encoded, and compressed to take up less space in the configuration file. All other attributes are saved in plain text. Writes the changes to the configuration file. """

        # Code to load all attributes
        for prop in dir(self):
            if getattr(self, prop) == None: continue
            if not prop in self.configVars: continue
            
            # Special handling for some attributes
            if prop == "session":
                pic = pickle.dumps(getattr(self, prop).cookies)
                comp = zlib.compress(pic)
                enc = base64.b64encode(comp)
                self.config[prop] = enc.decode()
                continue
                    
            if prop == "password" and not self.savePassword: continue
            if prop == "password":
                s = hashlib.md5(self.username.encode()).hexdigest()
                p = base64.b64encode(getattr(self, prop).encode()) + s.encode()
                self.config[prop] = p.decode()
                continue
                
            self.config[prop] = str(getattr(self, prop))
                
        if 'password' in self.config and not self.savePassword: del self.config.password
        self.config.write()
        self.__loadConfig()