	_addFiles: function(files) {
		var self = this, file_html, html = '';

		file_html = '<li class="plupload_file ui-state-default plupload_delete" id="{id}" style="width:{thumb_width}px;">' +
			'<div class="plupload_file_thumb plupload_thumb_toload" style="width: {thumb_width}px; height: {thumb_height}px;">' +
				'<div class="plupload_file_dummy ui-widget-content" style="line-height: {thumb_height}px;"><span class="ui-state-disabled">{ext} </span></div>' +
			'</div>' +
			'<div class="plupload_file_status">' +
				'<div class="plupload_file_progress ui-widget-header" style="width: 0%"> </div>' +
				'<span class="plupload_file_percent">{percent} </span>' +
			'</div>' +
			'<div class="plupload_file_name" title="{name}">' +
				'<span class="plupload_file_name_wrapper">{name} </span>' +
			'</div>' +
			'<div class="plupload_file_action">' +
				'<div class="plupload_action_icon ui-icon ui-icon-circle-minus"> </div>' +
			'</div>' +
			'<div class="plupload_file_size">{size} </div>' +
			'<div class="plupload_file_fields"> </div>' +
		'</li>';

		if (plupload.typeOf(files) !== 'array') {
			files = [files];
		}

		$.each(files, function(i, file) {
			var ext = o.core.utils.Mime.getFileExtension(file.name) || 'none';

			html += file_html.replace(/\{(\w+)\}/g, function($0, $1) {
				switch ($1) {
					case 'thumb_width':
					case 'thumb_height':
						return self.options[$1];

					case 'size':
						return plupload.formatSize(file.size);

					case 'ext':
						return ext;

					default:
						return plupload.xmlEncode(file[$1] || '');
				}
			});
		});

		self.filelist.append(html);
	},
The software allows the attacker to upload or transfer files of dangerous types that can be automatically processed within the product's environment.