<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def interactive_update_stack(self, fqn, template, old_parameters, parameters, stack_policy, tags, **kwargs):
 """Update a Cloudformation stack in interactive mode. Args: fqn (str):
 The fully qualified name of the Cloudformation stack. template (:class:`stacker.providers.base.Template`):
 A Template object to use when updating the stack. old_parameters (list):
 A list of dictionaries that defines the parameter list on the existing Cloudformation stack. parameters (list):
 A list of dictionaries that defines the parameter list to be applied to the Cloudformation stack. stack_policy (:class:`stacker.providers.base.Template`):
 A template object representing a stack policy. tags (list):
 A list of dictionaries that defines the tags that should be applied to the Cloudformation stack. """

        logger.debug("Using interactive provider mode for %s.", fqn)
        changes, change_set_id = create_change_set(
            self.cloudformation, fqn, template, parameters, tags,
            'UPDATE', service_role=self.service_role, **kwargs
        )
        old_parameters_as_dict = self.params_as_dict(old_parameters)
        new_parameters_as_dict = self.params_as_dict(
            [x
             if 'ParameterValue' in x
             else {'ParameterKey': x['ParameterKey'],
                   'ParameterValue': old_parameters_as_dict[x['ParameterKey']]}
             for x in parameters]
        )
        params_diff = diff_parameters(
            old_parameters_as_dict,
            new_parameters_as_dict)

        action = "replacements" if self.replacements_only else "changes"
        full_changeset = changes
        if self.replacements_only:
            changes = requires_replacement(changes)

        if changes or params_diff:
            ui.lock()
            try:
                output_summary(fqn, action, changes, params_diff,
                               replacements_only=self.replacements_only)
                ask_for_approval(
                    full_changeset=full_changeset,
                    params_diff=params_diff,
                    include_verbose=True,
                )
            finally:
                ui.unlock()

        self.deal_with_changeset_stack_policy(fqn, stack_policy)

        self.cloudformation.execute_change_set(
            ChangeSetName=change_set_id,
        )