<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, **kwargs):
 """Updates global configuration settings with given values. First checks if given configuration values differ from current values. If any of the configuration values changed, generates a change event. Currently we generate change event for any configuration change. Note: This method is idempotent. """

        # Update inherited configurations
        super(CommonConf, self).update(**kwargs)
        conf_changed = False

        # Validate given configurations and check if value changed
        for conf_name, conf_value in kwargs.items():
            rtconf.base.get_validator(conf_name)(conf_value)
            item1 = self._settings.get(conf_name, None)
            item2 = kwargs.get(conf_name, None)

            if item1 != item2:
                conf_changed = True

        # If any configuration changed, we update configuration value and
        # notify listeners
        if conf_changed:
            for conf_name, conf_value in kwargs.items():
                # Since all new values are already validated, we can use them
                self._settings[conf_name] = conf_value

            self._notify_listeners(CommonConf.CONF_CHANGED_EVT, self)