<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def update(self, ages=None, single=None, near_me=None, kinds=None, gentation=None):
 """Update the looking for attributes of the logged in user. :param ages: The ages that the logged in user is interested in. :type ages: tuple :param single: Whether or not the user is only interested in people that are single. :type single: bool :param near_me: Whether or not the user is only interested in people that are near them. :type near_me: bool :param kinds: What kinds of relationships the user should be updated to be interested in. :type kinds: list :param gentation: The sex/orientation of people the user is interested in. :type gentation: str """

        ages = ages or self.ages
        single = single if single is not None else self.single
        near_me = near_me if near_me is not None else self.near_me
        kinds = kinds or self.kinds
        gentation = gentation or self.gentation
        data = {
            'okc_api': '1',
            'searchprefs.submit': '1',
            'update_prefs': '1',
            'lquery': '',
            'locid': '0',
            'filter5': '1, 1' # TODO(@IvanMalison) Do this better...
        }
        if kinds:
            kinds_numbers = self._build_kinds_numbers(kinds)
            if kinds_numbers:
                data['lookingfor'] = kinds_numbers
        age_min, age_max = ages
        data.update(looking_for_filters.legacy_build(
            status=single, gentation=gentation, radius=25 if near_me else 0,
            age_min=age_min, age_max=age_max
        ))
        log.info(simplejson.dumps({'looking_for_update': data}))
        util.cached_property.bust_caches(self)
        response = self._profile.authcode_post('profileedit2', data=data)
        self._profile.refresh(reload=False)
        return response.content