<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def merge_from_dict(self, dct, lists_only=False):
 """ Merges a dictionary into this configuration object. See :meth:`ConfigurationObject.merge` for details. :param dct: Values to update the ConfigurationObject with. :type dct: dict :param lists_only: Ignore single-value attributes and update dictionary options. :type lists_only: bool """

        if not dct:
            return
        self.clean()
        all_props = self.__class__.CONFIG_PROPERTIES
        for key, value in six.iteritems(dct):
            attr_config = all_props.get(key)
            if attr_config:
                attr_type, default, input_func, merge_func = attr_config[:4]
                if (merge_func is not False and value != default and
                        (not lists_only or (attr_type and issubclass(attr_type, list)))):
                    if input_func:
                        value = input_func(value)
                    self._merge_value(attr_type, merge_func, key, value)
            else:
                self.merge_default_from_dict(key, value, lists_only=lists_only)