<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:

def get_mmax(self, mfd_conf, msr, rake, area):
        '''
        Gets the mmax for the fault - reading directly from the config file
        or using the msr otherwise

        :param dict mfd_config:
            Configuration file (see setUp for paramters)

        :param msr:
            Instance of :class:`nhlib.scalerel`

        :param float rake:
            Rake of the fault (in range -180 to 180)

        :param float area:
            Area of the fault surface (km^2)
        '''
        if mfd_conf['Maximum_Magnitude']:
            self.mmax = mfd_conf['Maximum_Magnitude']
        else:
            self.mmax = msr.get_median_mag(area, rake)

        if ('Maximum_Magnitude_Uncertainty' in mfd_conf and
                mfd_conf['Maximum_Magnitude_Uncertainty']):
            self.mmax_sigma = mfd_conf['Maximum_Magnitude_Uncertainty']
        else:
            self.mmax_sigma = msr.get_std_dev_mag(rake)