def _merge_args(qCmd, parsed_args, _extra_values, value_specs):
temp_values = _extra_values.copy()<EOL>for key, value in six.iteritems(temp_values):<EOL><INDENT>if hasattr(parsed_args, key):<EOL><INDENT>arg_value = getattr(parsed_args, key)<EOL>if arg_value is not None and value is not None:<EOL><INDENT>if isinstance(arg_value, list):<EOL><INDENT>if value and isinstance(value, list):<EOL><INDENT>if (not arg_value or<EOL>isinstance(arg_value[<NUM_LIT:0>], type(value[<NUM_LIT:0>]))):<EOL><INDENT>arg_value.extend(value)<EOL>_extra_values.pop(key)<EOL><DEDENT><DEDENT><DEDENT><DEDENT><DEDENT><DEDENT>
Merge arguments from _extra_values into parsed_args.

    If an argument value are provided in both and it is a list,
    the values in _extra_values will be merged into parsed_args.

    @param parsed_args: the parsed args from known options
    @param _extra_values: the other parsed arguments in unknown parts
    @param values_specs: the unparsed unknown parts