diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/readme.html /home/packages/qi/SOURCES/wordpress-3.7.4/readme.html
*** /home/packages/qi/SOURCES/wordpress-3.7.1/readme.html	2013-10-30 20:29:21.000000000 +0300
--- /home/packages/qi/SOURCES/wordpress-3.7.4/readme.html	2014-08-06 22:27:35.000000000 +0400
***************
*** 8,14 ****
  <body>
  <h1 id="logo">
  	<a href="http://wordpress.org/"><img alt="WordPress" src="wp-admin/images/wordpress-logo.png" /></a>
! 	<br /> Version 3.7
  </h1>
  <p style="text-align: center">Semantic Personal Publishing Platform</p>
  
--- 8,14 ----
  <body>
  <h1 id="logo">
  	<a href="http://wordpress.org/"><img alt="WordPress" src="wp-admin/images/wordpress-logo.png" /></a>
! 	<br /> Version 3.7.4
  </h1>
  <p style="text-align: center">Semantic Personal Publishing Platform</p>
  
diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-admin/about.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-admin/about.php
*** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-admin/about.php	2013-10-30 20:29:21.000000000 +0300
--- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-admin/about.php	2014-08-06 22:27:35.000000000 +0400
***************
*** 36,42 ****
  </h2>
  
  <div class="changelog point-releases">
! 	<h3><?php echo _n( 'Maintenance Release', 'Maintenance Releases', 1 ); ?></h3>
  	<p><?php printf( _n( '<strong>Version %1$s</strong> addressed %2$s bug.',
  		'<strong>Version %1$s</strong> addressed %2$s bugs.', 11 ), '3.7.1', number_format_i18n( 11 ) ); ?>
  		<?php printf( __( 'For more information, see <a href="%s">the release notes</a>.' ), 'http://codex.wordpress.org/Version_3.7.1' ); ?>
--- 36,54 ----
  </h2>
  
  <div class="changelog point-releases">
! 	<h3><?php echo _n( 'Maintenance and Security Release', 'Maintenance and Security Releases', 4 ); ?></h3>
! 	<p><?php printf( _n( '<strong>Version %1$s</strong> addressed a security issue.',
!          '<strong>Version %1$s</strong> addressed some security issues.', 5 ), '3.7.4', number_format_i18n( 5 ) ); ?>
! 		<?php printf( __( 'For more information, see <a href="%s">the release notes</a>.' ), 'http://codex.wordpress.org/Version_3.7.4' ); ?>
!  	</p>
! 	<p><?php printf( _n( '<strong>Version %1$s</strong> addressed %2$s bug.',
! 		'<strong>Version %1$s</strong> addressed %2$s bugs.', 2 ), '3.7.3', number_format_i18n( 2 ) ); ?>
! 		<?php printf( __( 'For more information, see <a href="%s">the release notes</a>.' ), 'http://codex.wordpress.org/Version_3.7.3' ); ?>
!  	</p>
! 	<p><?php printf( _n( '<strong>Version %1$s</strong> addressed some security issues and fixed %2$s bug.',
!          '<strong>Version %1$s</strong> addressed some security issues and fixed %2$s bugs.', 9 ), '3.7.2', number_format_i18n( 9 ) ); ?>
! 		<?php printf( __( 'For more information, see <a href="%s">the release notes</a>.' ), 'http://codex.wordpress.org/Version_3.7.2' ); ?>
!  	</p>
  	<p><?php printf( _n( '<strong>Version %1$s</strong> addressed %2$s bug.',
  		'<strong>Version %1$s</strong> addressed %2$s bugs.', 11 ), '3.7.1', number_format_i18n( 11 ) ); ?>
  		<?php printf( __( 'For more information, see <a href="%s">the release notes</a>.' ), 'http://codex.wordpress.org/Version_3.7.1' ); ?>
diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-admin/includes/class-wp-posts-list-table.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-admin/includes/class-wp-posts-list-table.php
*** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-admin/includes/class-wp-posts-list-table.php	2013-10-30 20:29:21.000000000 +0300
--- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-admin/includes/class-wp-posts-list-table.php	2014-04-07 02:17:10.000000000 +0400
***************
*** 832,838 ****
  	<?php if ( !$bulk ) echo $authors_dropdown;
  	endif; // post_type_supports author
  
! 	if ( !$bulk ) :
  	?>
  
  			<div class="inline-edit-group">
--- 832,838 ----
  	<?php if ( !$bulk ) echo $authors_dropdown;
  	endif; // post_type_supports author
  
! 	if ( !$bulk && $can_publish ) :
  	?>
  
  			<div class="inline-edit-group">
diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-admin/includes/class-wp-upgrader.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-admin/includes/class-wp-upgrader.php
*** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-admin/includes/class-wp-upgrader.php	2013-10-30 20:29:21.000000000 +0300
--- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-admin/includes/class-wp-upgrader.php	2014-04-03 08:03:09.000000000 +0400
***************
*** 1314,1320 ****
  	}
  
  	function upgrade( $current, $args = array() ) {
! 		global $wp_filesystem, $wp_version;
  
  		$start_time = time();
  
--- 1314,1322 ----
  	}
  
  	function upgrade( $current, $args = array() ) {
! 		global $wp_filesystem;
! 
! 		include ABSPATH . WPINC . '/version.php'; // $wp_version;
  
  		$start_time = time();
  
***************
*** 1333,1340 ****
  			return new WP_Error('up_to_date', $this->strings['up_to_date']);
  
  		$res = $this->fs_connect( array(ABSPATH, WP_CONTENT_DIR) );
! 		if ( is_wp_error($res) )
  			return $res;
  
  		$wp_dir = trailingslashit($wp_filesystem->abspath());
  
--- 1335,1343 ----
  			return new WP_Error('up_to_date', $this->strings['up_to_date']);
  
  		$res = $this->fs_connect( array(ABSPATH, WP_CONTENT_DIR) );
! 		if ( ! $res || is_wp_error( $res ) ) {
  			return $res;
+ 		}
  
  		$wp_dir = trailingslashit($wp_filesystem->abspath());
  
***************
*** 1421,1426 ****
--- 1424,1430 ----
  				'fs_method'        => $wp_filesystem->method,
  				'fs_method_forced' => defined( 'FS_METHOD' ) || has_filter( 'filesystem_method' ),
  				'time_taken'       => time() - $start_time,
+ 				'reported'         => $wp_version,
  				'attempted'        => $current->version,
  			);
  
***************
*** 1868,1885 ****
  		if ( ! $this->should_update( $type, $item, $context ) )
  			return false;
  
  		switch ( $type ) {
  			case 'core':
  				$skin->feedback( __( 'Updating to WordPress %s' ), $item->version );
  				$item_name = sprintf( __( 'WordPress %s' ), $item->version );
  				break;
  			case 'theme':
! 				$theme = wp_get_theme( $item );
  				$item_name = $theme->Get( 'Name' );
  				$skin->feedback( __( 'Updating theme: %s' ), $item_name );
  				break;
  			case 'plugin':
! 				$plugin_data = get_plugin_data( $context . '/' . $item );
  				$item_name = $plugin_data['Name'];
  				$skin->feedback( __( 'Updating plugin: %s' ), $item_name );
  				break;
--- 1872,1892 ----
  		if ( ! $this->should_update( $type, $item, $context ) )
  			return false;
  
+ 		$upgrader_item = $item;
  		switch ( $type ) {
  			case 'core':
  				$skin->feedback( __( 'Updating to WordPress %s' ), $item->version );
  				$item_name = sprintf( __( 'WordPress %s' ), $item->version );
  				break;
  			case 'theme':
! 				$upgrader_item = $item->theme;
! 				$theme = wp_get_theme( $upgrader_item );
  				$item_name = $theme->Get( 'Name' );
  				$skin->feedback( __( 'Updating theme: %s' ), $item_name );
  				break;
  			case 'plugin':
! 				$upgrader_item = $item->plugin;
! 				$plugin_data = get_plugin_data( $context . '/' . $upgrader_item );
  				$item_name = $plugin_data['Name'];
  				$skin->feedback( __( 'Updating plugin: %s' ), $item_name );
  				break;
***************
*** 1891,1902 ****
  		}
  
  		// Boom, This sites about to get a whole new splash of paint!
! 		$upgrade_result = $upgrader->upgrade( $item, array(
  			'clear_update_cache' => false,
  			'pre_check_md5'      => false, /* always use partial builds if possible for core updates */
  			'attempt_rollback'   => true, /* only available for core updates */
  		) );
  
  		// Core doesn't output this, so lets append it so we don't get confused
  		if ( 'core' == $type ) {
  			if ( is_wp_error( $upgrade_result ) ) {
--- 1898,1914 ----
  		}
  
  		// Boom, This sites about to get a whole new splash of paint!
! 		$upgrade_result = $upgrader->upgrade( $upgrader_item, array(
  			'clear_update_cache' => false,
  			'pre_check_md5'      => false, /* always use partial builds if possible for core updates */
  			'attempt_rollback'   => true, /* only available for core updates */
  		) );
  
+ 		// if the filesystem is unavailable, false is returned.
+ 		if ( false === $upgrade_result ) {
+ 			$upgrade_result = new WP_Error( 'fs_unavailable', __( 'Could not access filesystem.' ) );
+ 		}
+ 
  		// Core doesn't output this, so lets append it so we don't get confused
  		if ( 'core' == $type ) {
  			if ( is_wp_error( $upgrade_result ) ) {
***************
*** 1960,1966 ****
  		wp_update_plugins(); // Check for Plugin updates
  		$plugin_updates = get_site_transient( 'update_plugins' );
  		if ( $plugin_updates && !empty( $plugin_updates->response ) ) {
! 			foreach ( array_keys( $plugin_updates->response ) as $plugin ) {
  				$this->update( 'plugin', $plugin );
  			}
  			// Force refresh of plugin update information
--- 1972,1978 ----
  		wp_update_plugins(); // Check for Plugin updates
  		$plugin_updates = get_site_transient( 'update_plugins' );
  		if ( $plugin_updates && !empty( $plugin_updates->response ) ) {
! 			foreach ( $plugin_updates->response as $plugin ) {
  				$this->update( 'plugin', $plugin );
  			}
  			// Force refresh of plugin update information
***************
*** 1971,1978 ****
  		wp_update_themes();  // Check for Theme updates
  		$theme_updates = get_site_transient( 'update_themes' );
  		if ( $theme_updates && !empty( $theme_updates->response ) ) {
! 			foreach ( array_keys( $theme_updates->response ) as $theme ) {
! 				$this->update( 'theme', $theme );
  			}
  			// Force refresh of theme update information
  			wp_clean_themes_cache();
--- 1983,1990 ----
  		wp_update_themes();  // Check for Theme updates
  		$theme_updates = get_site_transient( 'update_themes' );
  		if ( $theme_updates && !empty( $theme_updates->response ) ) {
! 			foreach ( $theme_updates->response as $theme ) {
! 				$this->update( 'theme', (object) $theme );
  			}
  			// Force refresh of theme update information
  			wp_clean_themes_cache();
***************
*** 1987,1994 ****
  
  		// Clean up, and check for any pending translations
  		// (Core_Upgrader checks for core updates)
! 		wp_update_themes();  // Check for Theme updates
! 		wp_update_plugins(); // Check for Plugin updates
  
  		// Finally, Process any new translations
  		$language_updates = wp_get_translation_updates();
--- 1999,2019 ----
  
  		// Clean up, and check for any pending translations
  		// (Core_Upgrader checks for core updates)
! 		$theme_stats = array();
! 		if ( isset( $this->update_results['theme'] ) ) {
! 			foreach ( $this->update_results['theme'] as $upgrade ) {
! 				$theme_stats[ $upgrade->item->theme ] = ( true === $upgrade->result );
! 			}
! 		}
! 		wp_update_themes( $theme_stats );  // Check for Theme updates
! 
! 		$plugin_stats = array();
! 		if ( isset( $this->update_results['plugin'] ) ) {
! 			foreach ( $this->update_results['plugin'] as $upgrade ) {
! 				$plugin_stats[ $upgrade->item->plugin ] = ( true === $upgrade->result );
! 			}
! 		}
! 		wp_update_plugins( $plugin_stats ); // Check for Plugin updates
  
  		// Finally, Process any new translations
  		$language_updates = wp_get_translation_updates();
diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-admin/includes/post.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-admin/includes/post.php
*** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-admin/includes/post.php	2013-10-30 20:29:21.000000000 +0300
--- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-admin/includes/post.php	2014-04-14 12:13:10.000000000 +0400
***************
*** 100,105 ****
--- 100,109 ----
  		$post_id = false;
  	$previous_status = $post_id ? get_post_field( 'post_status', $post_id ) : false;
  
+ 	if ( isset( $post_data['post_status'] ) && 'private' == $post_data['post_status'] && ! current_user_can( $ptype->cap->publish_posts ) ) {
+ 		$post_data['post_status'] = $previous_status ? $previous_status : 'pending';
+ 	}
+ 
  	$published_statuses = array( 'publish', 'future' );
  
  	// Posts 'submitted for approval' present are submitted to $_POST the same as if they were being published.
***************
*** 111,116 ****
--- 115,124 ----
  	if ( ! isset($post_data['post_status']) )
  		$post_data['post_status'] = $previous_status;
  
+ 	if ( isset( $post_data['post_password'] ) && ! current_user_can( $ptype->cap->publish_posts ) ) {
+ 		unset( $post_data['post_password'] );
+ 	}
+ 
  	if (!isset( $post_data['comment_status'] ))
  		$post_data['comment_status'] = 'closed';
  
***************
*** 170,175 ****
--- 178,191 ----
  	$post_data['post_type'] = $post->post_type;
  	$post_data['post_mime_type'] = $post->post_mime_type;
  
+ 	if ( ! empty( $post_data['post_status'] ) ) {
+ 		$post_data['post_status'] = sanitize_key( $post_data['post_status'] );
+ 
+ 		if ( 'inherit' == $post_data['post_status'] ) {
+ 			unset( $post_data['post_status'] );
+ 		}
+ 	}
+ 
  	$ptype = get_post_type_object($post_data['post_type']);
  	if ( !current_user_can( 'edit_post', $post_ID ) ) {
  		if ( 'page' == $post_data['post_type'] )
***************
*** 187,199 ****
  			_wp_upgrade_revisions_of_post( $post, wp_get_post_revisions( $post_ID ) );
  	}
  
- 	$post_data = _wp_translate_postdata( true, $post_data );
- 	if ( is_wp_error($post_data) )
- 		wp_die( $post_data->get_error_message() );
- 	if ( ( empty( $post_data['action'] ) || 'autosave' != $post_data['action'] ) && 'auto-draft' == $post_data['post_status'] ) {
- 		$post_data['post_status'] = 'draft';
- 	}
- 
  	if ( isset($post_data['visibility']) ) {
  		switch ( $post_data['visibility'] ) {
  			case 'public' :
--- 203,208 ----
***************
*** 210,215 ****
--- 219,232 ----
  		}
  	}
  
+ 	$post_data = _wp_translate_postdata( true, $post_data );
+ 	if ( is_wp_error($post_data) )
+ 		wp_die( $post_data->get_error_message() );
+ 
+ 	if ( ( empty( $post_data['action'] ) || 'autosave' != $post_data['action'] ) && 'auto-draft' == $post_data['post_status'] ) {
+ 		$post_data['post_status'] = 'draft';
+ 	}
+ 
  	// Post Formats
  	if ( isset( $post_data['post_format'] ) )
  		set_post_format( $post_ID, $post_data['post_format'] );
***************
*** 332,337 ****
--- 349,362 ----
  	}
  	unset($post_data['_status']);
  
+ 	if ( ! empty( $post_data['post_status'] ) ) {
+ 		$post_data['post_status'] = sanitize_key( $post_data['post_status'] );
+ 
+ 		if ( 'inherit' == $post_data['post_status'] ) {
+ 			unset( $post_data['post_status'] );
+ 		}
+ 	}
+ 
  	$post_IDs = array_map( 'intval', (array) $post_data['post'] );
  
  	$reset = array(
***************
*** 386,392 ****
--- 411,422 ----
  	}
  
  	$updated = $skipped = $locked = array();
+ 	$shared_post_data = $post_data;
+ 
  	foreach ( $post_IDs as $post_ID ) {
+ 		// Start with fresh post data with each iteration.
+ 		$post_data = $shared_post_data;
+ 
  		$post_type_object = get_post_type_object( get_post_type( $post_ID ) );
  
  		if ( !isset( $post_type_object ) || ( isset($children) && in_array($post_ID, $children) ) || !current_user_can( 'edit_post', $post_ID ) ) {
***************
*** 422,431 ****
--- 452,476 ----
  			unset( $post_data['tax_input']['category'] );
  		}
  
+ 		$post_data['post_type'] = $post->post_type;
  		$post_data['post_mime_type'] = $post->post_mime_type;
  		$post_data['guid'] = $post->guid;
  
+ 		foreach ( array( 'comment_status', 'ping_status', 'post_author' ) as $field ) {
+ 			if ( ! isset( $post_data[ $field ] ) ) {
+ 				$post_data[ $field ] = $post->$field;
+ 			}
+ 		}
+ 
  		$post_data['ID'] = $post_ID;
+ 		$post_data['post_ID'] = $post_ID;
+ 
+ 		$post_data = _wp_translate_postdata( true, $post_data );
+ 		if ( is_wp_error( $post_data ) ) {
+ 			$skipped[] = $post_ID;
+ 			continue;
+ 		}
+ 
  		$updated[] = wp_update_post( $post_data );
  
  		if ( isset( $post_data['sticky'] ) && current_user_can( $ptype->cap->edit_others_posts ) ) {
***************
*** 569,578 ****
  	if ( isset( $_POST['post_ID'] ) )
  		return edit_post();
  
- 	$translated = _wp_translate_postdata( false );
- 	if ( is_wp_error($translated) )
- 		return $translated;
- 
  	if ( isset($_POST['visibility']) ) {
  		switch ( $_POST['visibility'] ) {
  			case 'public' :
--- 614,619 ----
***************
*** 589,594 ****
--- 630,639 ----
  		}
  	}
  
+ 	$translated = _wp_translate_postdata( false );
+ 	if ( is_wp_error($translated) )
+ 		return $translated;
+ 
  	// Create the post.
  	$post_ID = wp_insert_post( $_POST );
  	if ( is_wp_error( $post_ID ) )
diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-admin/includes/update-core.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-admin/includes/update-core.php
*** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-admin/includes/update-core.php	2013-10-30 20:29:21.000000000 +0300
--- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-admin/includes/update-core.php	2014-04-01 07:36:10.000000000 +0400
***************
*** 697,702 ****
--- 697,705 ----
  
  	// Check to see which files don't really need updating - only available for 3.7 and higher
  	if ( function_exists( 'get_core_checksums' ) ) {
+ 		// Find the local version of the working directory
+ 		$working_dir_local = WP_CONTENT_DIR . '/upgrade/' . basename( $from ) . $distro;
+ 
  		$checksums = get_core_checksums( $wp_version, isset( $wp_local_package ) ? $wp_local_package : 'en_US' );
  		if ( is_array( $checksums ) && isset( $checksums[ $wp_version ] ) )
  			$checksums = $checksums[ $wp_version ]; // Compat code for 3.7-beta2
***************
*** 706,711 ****
--- 709,716 ----
  					continue;
  				if ( ! file_exists( ABSPATH . $file ) )
  					continue;
+ 				if ( ! file_exists( $working_dir_local . $file ) )
+ 					continue;
  				if ( md5_file( ABSPATH . $file ) === $checksum )
  					$skip[] = $file;
  				else
***************
*** 752,760 ****
  	$failed = array();
  	if ( isset( $checksums ) && is_array( $checksums ) ) {
  		foreach ( $checksums as $file => $checksum ) {
! 			if ( 0 === strpos( $file, 'wp-content' ) )
  				continue;
- 
  			if ( file_exists( ABSPATH . $file ) && md5_file( ABSPATH . $file ) == $checksum )
  				$skip[] = $file;
  			else
--- 757,766 ----
  	$failed = array();
  	if ( isset( $checksums ) && is_array( $checksums ) ) {
  		foreach ( $checksums as $file => $checksum ) {
! 			if ( 'wp-content' == substr( $file, 0, 10 ) )
! 				continue;
! 			if ( ! file_exists( $working_dir_local . $file ) )
  				continue;
  			if ( file_exists( ABSPATH . $file ) && md5_file( ABSPATH . $file ) == $checksum )
  				$skip[] = $file;
  			else
***************
*** 765,772 ****
  	// Some files didn't copy properly
  	if ( ! empty( $failed ) ) {
  		$total_size = 0;
- 		// Find the local version of the working directory
- 		$working_dir_local = WP_CONTENT_DIR . '/upgrade/' . basename( $from ) . $distro;
  		foreach ( $failed as $file ) {
  			if ( file_exists( $working_dir_local . $file ) )
  				$total_size += filesize( $working_dir_local . $file );
--- 771,776 ----
***************
*** 882,887 ****
--- 886,896 ----
  	$db_upgrade_url = admin_url('upgrade.php?step=upgrade_db');
  	wp_remote_post($db_upgrade_url, array('timeout' => 60));
  
+ 	// Clear the cache to prevent an update_option() from saving a stale db_version to the cache
+ 	wp_cache_flush();
+ 	// (Not all cache backends listen to 'flush')
+ 	wp_cache_delete( 'alloptions', 'options' );
+ 
  	// Remove working directory
  	$wp_filesystem->delete($from, true);
  
diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-admin/includes/update.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-admin/includes/update.php
*** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-admin/includes/update.php	2013-10-30 20:29:21.000000000 +0300
--- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-admin/includes/update.php	2014-04-01 07:31:09.000000000 +0400
***************
*** 364,370 ****
  		 * This flag is cleared whenever a successful update occurs using Core_Upgrader.
  		 */
  		$comparison = ! empty( $failed['critical'] ) ? '>=' : '>';
! 		if ( version_compare( $failed['attempted'], $wp_version, '>=' ) )
  			$nag = true;
  	}
  
--- 364,370 ----
  		 * This flag is cleared whenever a successful update occurs using Core_Upgrader.
  		 */
  		$comparison = ! empty( $failed['critical'] ) ? '>=' : '>';
! 		if ( version_compare( $failed['attempted'], $wp_version, $comparison ) )
  			$nag = true;
  	}
  
diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-admin/includes/upgrade.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-admin/includes/upgrade.php
*** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-admin/includes/upgrade.php	2013-10-30 20:29:21.000000000 +0300
--- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-admin/includes/upgrade.php	2014-04-11 21:29:10.000000000 +0400
***************
*** 405,410 ****
--- 405,416 ----
  	if ( $wp_current_db_version < 25824 )
  		upgrade_370();
  
+ 	if ( $wp_current_db_version < 26148 )
+ 		upgrade_372();
+ 
+ 	if ( $wp_current_db_version < 26149 )
+ 		upgrade_373();
+ 
  	maybe_disable_link_manager();
  
  	maybe_disable_automattic_widgets();
***************
*** 1223,1228 ****
--- 1229,1275 ----
  }
  
  /**
+  * Execute changes made in WordPress 3.7.2.
+  *
+  * @since 3.7.2
+  * @since 3.8.0
+  */
+ function upgrade_372() {
+ 	global $wp_current_db_version;
+ 	if ( $wp_current_db_version < 26148 )
+ 		wp_clear_scheduled_hook( 'wp_maybe_auto_update' );
+ }
+ 
+ /**
+  * Execute changes made in WordPress 3.7.3.
+  *
+  * @since 3.7.3
+  */
+ function upgrade_373() {
+ 	global $wp_current_db_version, $wpdb;
+ 	if ( $wp_current_db_version < 26149 ) {
+ 		// Find all lost Quick Draft auto-drafts and promote them to proper drafts.
+ 		$posts = $wpdb->get_results( "SELECT ID, post_title, post_content FROM $wpdb->posts WHERE post_type = 'post'
+ 			AND post_status = 'auto-draft' AND post_date >= '2014-04-08 00:00:00'" );
+ 
+ 		foreach ( $posts as $post ) {
+ 			// A regular auto-draft should never have content as that would mean it should have been promoted.
+ 			// If an auto-draft has content, it's from Quick Draft and it should be recovered.
+ 			if ( '' === $post->post_content ) {
+ 				// If it does not have content, we must evaluate whether the title should be recovered.
+ 				if ( 'Auto Draft' === $post->post_title || __( 'Auto Draft' ) === $post->post_title ) {
+ 					// This a plain old auto draft. Ignore it.
+ 					continue;
+ 				}
+ 			}
+ 
+ 			$wpdb->update( $wpdb->posts, array( 'post_status' => 'draft' ), array( 'ID' => $post->ID ) );
+ 			clean_post_cache( $post->ID );
+ 		}
+ 	}
+ }
+ 
+ /**
   * Execute network level changes
   *
   * @since 3.0.0
diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/akismet/admin.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/akismet/admin.php
*** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/akismet/admin.php	2013-10-30 20:29:20.000000000 +0300
--- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/akismet/admin.php	2014-03-14 02:57:39.000000000 +0300
***************
*** 39,51 ****
  		'plugins_page_akismet-key-config', 
  		'jetpack_page_akismet-key-config',
  	) ) ) {
! 		wp_register_style( 'akismet.css', AKISMET_PLUGIN_URL . 'akismet.css', array(), '2.5.9' );
  		wp_enqueue_style( 'akismet.css');
  	
! 		wp_register_script( 'akismet.js', AKISMET_PLUGIN_URL . 'akismet.js', array('jquery'), '2.5.9' );
  		wp_enqueue_script( 'akismet.js' );
  		wp_localize_script( 'akismet.js', 'WPAkismet', array(
! 			'comment_author_url_nonce' => wp_create_nonce( 'comment_author_url_nonce' )
  		) );
  	}
  }
--- 39,58 ----
  		'plugins_page_akismet-key-config', 
  		'jetpack_page_akismet-key-config',
  	) ) ) {
! 		wp_register_style( 'akismet.css', AKISMET_PLUGIN_URL . 'akismet.css', array(), AKISMET_VERSION );
  		wp_enqueue_style( 'akismet.css');
  	
! 		wp_register_script( 'akismet.js', AKISMET_PLUGIN_URL . 'akismet.js', array('jquery'), AKISMET_VERSION );
  		wp_enqueue_script( 'akismet.js' );
  		wp_localize_script( 'akismet.js', 'WPAkismet', array(
! 			'comment_author_url_nonce' => wp_create_nonce( 'comment_author_url_nonce' ),
! 			'strings' => array(
! 				'Remove this URL' => __( 'Remove this URL' ),
! 				'Removing...' => __( 'Removing...' ),
! 				'URL removed' => __( 'URL removed' ),
! 				'(undo)' => __( '(undo)' ),
! 				'Re-adding...' => __( 'Re-adding...' ),
! 			)
  		) );
  	}
  }
***************
*** 335,345 ****
  	$path = plugin_basename(__FILE__);
  	echo '<h3>' . _x( 'Spam', 'comments' ) . '</h3>';
  	global $submenu;
! 	if ( isset( $submenu['edit-comments.php'] ) )
! 		$link = 'edit-comments.php';
! 	else
! 		$link = 'edit.php';
! 	echo '<p>'.sprintf( _n( '<a href="%1$s">Akismet</a> has protected your site from <a href="%2$s">%3$s spam comments</a>.', '<a href="%1$s">Akismet</a> has protected your site from <a href="%2$s">%3$s spam comments</a>.', $count ), 'http://akismet.com/?return=true', clean_url("$link?page=akismet-admin"), number_format_i18n($count) ).'</p>';
  }
  add_action('activity_box_end', 'akismet_stats');
  
--- 342,348 ----
  	$path = plugin_basename(__FILE__);
  	echo '<h3>' . _x( 'Spam', 'comments' ) . '</h3>';
  	global $submenu;
! 	echo '<p>'.sprintf( _n( '<a href="%1$s">Akismet</a> has protected your site from <a href="%2$s">%3$s spam comments</a>.', '<a href="%1$s">Akismet</a> has protected your site from <a href="%2$s">%3$s spam comments</a>.', $count ), 'http://akismet.com/?return=true', esc_url( add_query_arg( array( 'page' => 'akismet-admin' ), admin_url( isset( $submenu['edit-comments.php'] ) ? 'edit-comments.php' : 'edit.php' ) ) ), number_format_i18n($count) ).'</p>';
  }
  add_action('activity_box_end', 'akismet_stats');
  
***************
*** 546,556 ****
  	global $submenu, $wp_db_version;
  
  	if ( 8645 < $wp_db_version  ) // 2.7
! 		$link = 'edit-comments.php?comment_status=spam';
  	elseif ( isset( $submenu['edit-comments.php'] ) )
! 		$link = 'edit-comments.php?page=akismet-admin';
  	else
! 		$link = 'edit.php?page=akismet-admin';
  
  	if ( $count = get_option('akismet_spam_count') ) {
  		$intro = sprintf( _n(
--- 549,559 ----
  	global $submenu, $wp_db_version;
  
  	if ( 8645 < $wp_db_version  ) // 2.7
! 		$link = add_query_arg( array( 'comment_status' => 'spam' ), admin_url( 'edit-comments.php' ) );
  	elseif ( isset( $submenu['edit-comments.php'] ) )
! 		$link = add_query_arg( array( 'page' => 'akismet-admin' ), admin_url( 'edit-comments.php' ) );
  	else
! 		$link = add_query_arg( array( 'page' => 'akismet-admin' ), admin_url( 'edit.php' ) );
  
  	if ( $count = get_option('akismet_spam_count') ) {
  		$intro = sprintf( _n(
***************
*** 581,594 ****
  
  
  // For WP >= 2.5
! function akismet_check_for_spam_button($comment_status) {
  	if ( 'approved' == $comment_status )
  		return;
  	if ( function_exists('plugins_url') )
! 		$link = 'admin.php?action=akismet_recheck_queue';
  	else
! 		$link = 'edit-comments.php?page=akismet-admin&amp;recheckqueue=true&amp;noheader=true';
! 	echo "</div><div class='alignleft'><a class='button-secondary checkforspam' href='$link'>" . __('Check for Spam') . "</a>";
  }
  add_action('manage_comments_nav', 'akismet_check_for_spam_button');
  
--- 584,600 ----
  
  
  // For WP >= 2.5
! function akismet_check_for_spam_button( $comment_status ) {
  	if ( 'approved' == $comment_status )
  		return;
+ 		
  	if ( function_exists('plugins_url') )
! 		$link = add_query_arg( array( 'action' => 'akismet_recheck_queue' ), admin_url( 'admin.php' ) );
  	else
! 		$link = add_query_arg( array( 'page' => 'akismet-admin', 'recheckqueue' => 'true', 'noheader' => 'true' ), admin_url( 'edit-comments.php' ) );	
! 		
! 	echo '</div><div class="alignleft"><a class="button-secondary checkforspam" href="' . $link . '">' . esc_html__('Check for Spam') . '</a>';
! 	echo '<img src="' . esc_url( admin_url( 'images/wpspin_light.gif' ) ) . '" class="checkforspam-spinner" />';
  }
  add_action('manage_comments_nav', 'akismet_check_for_spam_button');
  
***************
*** 771,778 ****
  
  	if ( ! ( isset( $_GET['recheckqueue'] ) || ( isset( $_REQUEST['action'] ) && 'akismet_recheck_queue' == $_REQUEST['action'] ) ) )
  		return;
! 		
! 	$moderation = $wpdb->get_results( "SELECT * FROM $wpdb->comments WHERE comment_approved = '0'", ARRAY_A );
  	foreach ( (array) $moderation as $c ) {
  		$c['user_ip']    = $c['comment_author_IP'];
  		$c['user_agent'] = $c['comment_agent'];
--- 777,788 ----
  
  	if ( ! ( isset( $_GET['recheckqueue'] ) || ( isset( $_REQUEST['action'] ) && 'akismet_recheck_queue' == $_REQUEST['action'] ) ) )
  		return;
! 					
! 	$paginate = ''; 
! 	if ( isset( $_POST['limit'] ) && isset( $_POST['offset'] ) ) { 
! 		$paginate = $wpdb->prepare( " LIMIT %d OFFSET %d", array( $_POST['limit'], $_POST['offset'] ) ); 
!  	} 
!  	$moderation = $wpdb->get_results( "SELECT * FROM {$wpdb->comments} WHERE comment_approved = '0'{$paginate}", ARRAY_A );
  	foreach ( (array) $moderation as $c ) {
  		$c['user_ip']    = $c['comment_author_IP'];
  		$c['user_agent'] = $c['comment_agent'];
***************
*** 780,786 ****
  		$c['blog']       = get_bloginfo('url');
  		$c['blog_lang']  = get_locale();
  		$c['blog_charset'] = get_option('blog_charset');
! 		$c['permalink']  = get_permalink($c['comment_post_ID']);
  
  		$c['user_role'] = '';
  		if ( isset( $c['user_ID'] ) )
--- 790,796 ----
  		$c['blog']       = get_bloginfo('url');
  		$c['blog_lang']  = get_locale();
  		$c['blog_charset'] = get_option('blog_charset');
! 		$c['permalink']    = get_permalink($c['comment_post_ID']);
  
  		$c['user_role'] = '';
  		if ( isset( $c['user_ID'] ) )
***************
*** 815,826 ****
  
  		delete_comment_meta( $c['comment_ID'], 'akismet_rechecking' );
  	}
! 	$redirect_to = isset( $_SERVER['HTTP_REFERER'] ) ? $_SERVER['HTTP_REFERER'] : admin_url( 'edit-comments.php' );
! 	wp_safe_redirect( $redirect_to );
! 	exit;
  }
  
  add_action('admin_action_akismet_recheck_queue', 'akismet_recheck_queue');
  
  // Adds an 'x' link next to author URLs, clicking will remove the author URL and show an undo link
  function akismet_remove_comment_author_url() {
--- 825,844 ----
  
  		delete_comment_meta( $c['comment_ID'], 'akismet_rechecking' );
  	}
! 	if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) { 
!  		wp_send_json( array( 
!  			'processed' => count((array) $moderation), 
!  		)); 
!  	} 
!  	else { 
!  		$redirect_to = isset( $_SERVER['HTTP_REFERER'] ) ? $_SERVER['HTTP_REFERER'] : admin_url( 'edit-comments.php' ); 
!  		wp_safe_redirect( $redirect_to ); 
!  		exit; 
!  	}
  }
  
  add_action('admin_action_akismet_recheck_queue', 'akismet_recheck_queue');
+ add_action('wp_ajax_akismet_recheck_queue', 'akismet_recheck_queue');
  
  // Adds an 'x' link next to author URLs, clicking will remove the author URL and show an undo link
  function akismet_remove_comment_author_url() {
diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/akismet/akismet.css /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/akismet/akismet.css
*** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/akismet/akismet.css	2013-10-30 20:29:20.000000000 +0300
--- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/akismet/akismet.css	2014-03-14 02:57:39.000000000 +0300
***************
*** 1 ****
! #submitted-on{position:relative}#the-comment-list .author .akismet-user-comment-count{display:inline}#the-comment-list .author a span{text-decoration:none;color:#999}#the-comment-list .remove_url{margin-left:3px;color:#999;padding:2px 3px 2px 0}#the-comment-list .remove_url:hover{color:#A7301F;font-weight:bold;padding:2px 2px 2px 0}#dashboard_recent_comments .akismet-status{display:none}.akismet-status{float:right}.akismet-status a{color:#AAA;font-style:italic}span.comment-link a{text-decoration:underline}span.comment-link:after{content:" "attr(title) " ";color:#aaa;text-decoration:none}.mshot-arrow{width:0;height:0;border-top:10px solid transparent;border-bottom:10px solid transparent;border-right:10px solid #5C5C5C;position:absolute;left:-6px;top:91px}.mshot-container{background:#5C5C5C;position:absolute;top:-94px;padding:7px;width:450px;height:338px;z-index:20000;-moz-border-radius:6px;border-radius:6px;-webkit-border-radius:6px}h2.ak-header{padding-left:38px;background:url('img/logo.png') no-repeat 0 9px;margin-bottom:14px;line-height:32px}.key-status{padding:0.4em 1em;color:#fff;font-weight:bold;text-align:center;-webkit-border-radius:3px;border-radius:3px;border-width:1px;border-style:solid;max-width:23.3em}input#key{width:25.3em !important}input#key.valid{border-color:#4F800D}input#key.invalid,input#key.failed{border-color:#888}.key-status.under-input{margin-top:-5px;padding-bottom:0px}.key-status.invalid,.key-status.failed{background-color:#888}.key-status.valid{background-color:#4F800D}.key-status.some{background-color:#993300}.key-status.empty{display:none}table.network-status th,table.network-status td{padding:0.4em;margin:0;text-align:center}table.network-status{border-color:#dfdfdf;border-width:0 0 1px 1px;border-style:solid;border-spacing:0;width:25.6em}table.network-status th,table.network-status td{border-color:#dfdfdf;border-width:1px 1px 0 0;border-style:solid;margin:0;border-spacing:0}table.network-status td.key-status{border-radius:0px;-webkit-border-radius:0px}
\ No newline at end of file
--- 1 ----
! #submitted-on{position:relative}#the-comment-list .author .akismet-user-comment-count{display:inline}#the-comment-list .author a span{text-decoration:none;color:#999}#the-comment-list .remove_url{margin-left:3px;color:#999;padding:2px 3px 2px 0}#the-comment-list .remove_url:hover{color:#A7301F;font-weight:bold;padding:2px 2px 2px 0}#dashboard_recent_comments .akismet-status{display:none}.akismet-status{float:right}.akismet-status a{color:#AAA;font-style:italic}span.comment-link a{text-decoration:underline}span.comment-link:after{content:" "attr(title) " ";color:#aaa;text-decoration:none}.mshot-arrow{width:0;height:0;border-top:10px solid transparent;border-bottom:10px solid transparent;border-right:10px solid #5C5C5C;position:absolute;left:-6px;top:91px}.mshot-container{background:#5C5C5C;position:absolute;top:-94px;padding:7px;width:450px;height:338px;z-index:20000;-moz-border-radius:6px;border-radius:6px;-webkit-border-radius:6px}h2.ak-header{padding-left:38px;background:url('img/logo.png') no-repeat 0 9px;margin-bottom:14px;line-height:32px}.key-status{padding:0.4em 1em;color:#fff;font-weight:bold;text-align:center;-webkit-border-radius:3px;border-radius:3px;border-width:1px;border-style:solid;max-width:23.3em}input#key{width:25.3em !important}input#key.valid{border-color:#4F800D}input#key.invalid,input#key.failed{border-color:#888}.key-status.under-input{margin-top:-5px;padding-bottom:0px}.key-status.invalid,.key-status.failed{background-color:#888}.key-status.valid{background-color:#4F800D}.key-status.some{background-color:#993300}.key-status.empty{display:none}table.network-status th,table.network-status td{padding:0.4em;margin:0;text-align:center}table.network-status{border-color:#dfdfdf;border-width:0 0 1px 1px;border-style:solid;border-spacing:0;width:25.6em}table.network-status th,table.network-status td{border-color:#dfdfdf;border-width:1px 1px 0 0;border-style:solid;margin:0;border-spacing:0}table.network-status td.key-status{border-radius:0px;-webkit-border-radius:0px}.checkforspam{display:inline-block !important;}.checkforspam-spinner{display:none;margin-top:10px;}
\ No newline at end of file
diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/akismet/akismet.js /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/akismet/akismet.js
*** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/akismet/akismet.js	2013-10-30 20:29:20.000000000 +0300
--- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/akismet/akismet.js	2014-03-14 02:57:39.000000000 +0300
***************
*** 1,114 ****
! jQuery(document).ready(function () {
! 	jQuery( '.switch-have-key' ).click( function() {
! 		var no_key = jQuery( this ).parents().find('div.no-key');		
! 		var have_key = jQuery( this ).parents().find('div.have-key');
  		
  		no_key.addClass( 'hidden' );
  		have_key.removeClass( 'hidden' );		
  		
  		return false;
  	});
! 	jQuery( 'p.need-key a' ).click( function(){
  		document.akismet_activate.submit();
  	});
! 	jQuery('.akismet-status').each(function () {
! 		var thisId = jQuery(this).attr('commentid');
! 		jQuery(this).prependTo('#comment-' + thisId + ' .column-comment div:first-child');
! 	});
! 	jQuery('.akismet-user-comment-count').each(function () {
! 		var thisId = jQuery(this).attr('commentid');
! 		jQuery(this).insertAfter('#comment-' + thisId + ' .author strong:first').show();
! 	});
! 	jQuery('#the-comment-list tr.comment .column-author a[title ^= "http://"]').each(function () {
!  		var thisTitle = jQuery(this).attr('title');
!  		    thisCommentId = jQuery(this).parents('tr:first').attr('id').split("-");
   		
!  		jQuery(this).attr("id", "author_comment_url_"+ thisCommentId[1]);
   		
   		if (thisTitle) {
!  			jQuery(this).after(' <a href="#" class="remove_url" commentid="'+ thisCommentId[1] +'" title="Remove this URL">x</a>');
   		}
   	});
!  	jQuery('.remove_url').live('click', function () {
!  		var thisId = jQuery(this).attr('commentid');
   		var data = {
   			action: 'comment_author_deurl',
  			_wpnonce: WPAkismet.comment_author_url_nonce,
   			id: thisId
   		};
!  		jQuery.ajax({
  		    url: ajaxurl,
  		    type: 'POST',
  		    data: data,
  		    beforeSend: function () {
  		        // Removes "x" link
! 	 			jQuery("a[commentid='"+ thisId +"']").hide();
  	 			// Show temp status
! 		        jQuery("#author_comment_url_"+ thisId).html('<span>Removing...</span>');
  		    },
  		    success: function (response) {
  		        if (response) {
  	 				// Show status/undo link
! 	 				jQuery("#author_comment_url_"+ thisId).attr('cid', thisId).addClass('akismet_undo_link_removal').html('<span>URL removed (</span>undo<span>)</span>');
! 	 			}
  		    }
  		});
  
   		return false;
   	});
!  	jQuery('.akismet_undo_link_removal').live('click', function () {
!  		var thisId = jQuery(this).attr('cid');
! 		var thisUrl = jQuery(this).attr('href').replace("http://www.", "").replace("http://", "");
   		var data = {
   			action: 'comment_author_reurl',
  			_wpnonce: WPAkismet.comment_author_url_nonce,
   			id: thisId,
   			url: thisUrl
   		};
! 		jQuery.ajax({
  		    url: ajaxurl,
  		    type: 'POST',
  		    data: data,
  		    beforeSend: function () {
  	 			// Show temp status
! 		        jQuery("#author_comment_url_"+ thisId).html('<span>Re-adding…</span>');
  		    },
  		    success: function (response) {
  		        if (response) {
  	 				// Add "x" link
! 					jQuery("a[commentid='"+ thisId +"']").show();
  					// Show link
! 					jQuery("#author_comment_url_"+ thisId).removeClass('akismet_undo_link_removal').html(thisUrl);
  	 			}
  		    }
  		});
   		
   		return false;
   	});
!  	jQuery('a[id^="author_comment_url"]').mouseover(function () {
  		var wpcomProtocol = ( 'https:' === location.protocol ) ? 'https://' : 'http://';
  		// Need to determine size of author column
! 		var thisParentWidth = jQuery(this).parent().width();
  		// It changes based on if there is a gravatar present
! 		thisParentWidth = (jQuery(this).parent().find('.grav-hijack').length) ? thisParentWidth - 42 + 'px' : thisParentWidth + 'px';
! 		if (jQuery(this).find('.mShot').length == 0 && !jQuery(this).hasClass('akismet_undo_link_removal')) {
! 			var thisId = jQuery(this).attr('id').replace('author_comment_url_', '');
! 			jQuery('.widefat td').css('overflow', 'visible');
! 			jQuery(this).css('position', 'relative');
! 			var thisHref = jQuery.URLEncode(jQuery(this).attr('href'));
! 			jQuery(this).append('<div class="mShot mshot-container" style="left: '+thisParentWidth+'"><div class="mshot-arrow"></div><img src="'+wpcomProtocol+'s0.wordpress.com/mshots/v1/'+thisHref+'?w=450" width="450" class="mshot-image_'+thisId+'" style="margin: 0;" /></div>');
  			setTimeout(function () {
! 				jQuery('.mshot-image_'+thisId).attr('src', wpcomProtocol+'s0.wordpress.com/mshots/v1/'+thisHref+'?w=450&r=2');
  			}, 6000);
  			setTimeout(function () {
! 				jQuery('.mshot-image_'+thisId).attr('src', wpcomProtocol+'s0.wordpress.com/mshots/v1/'+thisHref+'?w=450&r=3');
  			}, 12000);
  		} else {
! 			jQuery(this).find('.mShot').css('left', thisParentWidth).show();
  		}
  	}).mouseout(function () {
! 		jQuery(this).find('.mShot').hide();
  	});
  });
  // URL encode plugin
  jQuery.extend({URLEncode:function(c){var o='';var x=0;c=c.toString();var r=/(^[a-zA-Z0-9_.]*)/;
--- 1,154 ----
! jQuery( function ( $ ) {
! 	$( '.switch-have-key' ).click( function() {
! 		var no_key = $( this ).parents().find('div.no-key');		
! 		var have_key = $( this ).parents().find('div.have-key');
  		
  		no_key.addClass( 'hidden' );
  		have_key.removeClass( 'hidden' );		
  		
  		return false;
  	});
! 	$( 'p.need-key a' ).click( function(){
  		document.akismet_activate.submit();
  	});
! 	$('.akismet-status').each(function () {
! 		var thisId = $(this).attr('commentid');
! 		$(this).prependTo('#comment-' + thisId + ' .column-comment div:first-child');
! 	});
! 	$('.akismet-user-comment-count').each(function () {
! 		var thisId = $(this).attr('commentid');
! 		$(this).insertAfter('#comment-' + thisId + ' .author strong:first').show();
! 	});
! 	$('#the-comment-list').find('tr.comment, tr[id ^= "comment-"]').find('.column-author a[title ^= "http://"]').each(function () {
!  		var thisTitle = $(this).attr('title');
!  		    thisCommentId = $(this).parents('tr:first').attr('id').split("-");
   		
!  		$(this).attr("id", "author_comment_url_"+ thisCommentId[1]);
   		
   		if (thisTitle) {
!  			$(this).after(
! 				$( '<a href="#" class="remove_url">x</a>' )
! 					.attr( 'commentid', thisCommentId[1] )
! 					.attr( 'title', WPAkismet.strings['Remove this URL'] )
! 			);
   		}
   	});
!  	$('.remove_url').live('click', function () {
!  		var thisId = $(this).attr('commentid');
   		var data = {
   			action: 'comment_author_deurl',
  			_wpnonce: WPAkismet.comment_author_url_nonce,
   			id: thisId
   		};
!  		$.ajax({
  		    url: ajaxurl,
  		    type: 'POST',
  		    data: data,
  		    beforeSend: function () {
  		        // Removes "x" link
! 	 			$("a[commentid='"+ thisId +"']").hide();
  	 			// Show temp status
! 		        $("#author_comment_url_"+ thisId).html( $( '<span/>' ).text( WPAkismet.strings['Removing...'] ) );
  		    },
  		    success: function (response) {
  		        if (response) {
  	 				// Show status/undo link
! 	 				$("#author_comment_url_"+ thisId)
! 						.attr('cid', thisId)
! 						.addClass('akismet_undo_link_removal')
! 						.html(
! 							$( '<span/>' ).text( WPAkismet.strings['URL removed'] )
! 						)
! 						.append( ' ' )
! 						.append(
! 							$( '<span/>' )
! 								.text( WPAkismet.strings['(undo)'] )
! 								.addClass( 'akismet-span-link' )
! 						);
! 				}
  		    }
  		});
  
   		return false;
   	});
!  	$('.akismet_undo_link_removal').live('click', function () {
!  		var thisId = $(this).attr('cid');
! 		var thisUrl = $(this).attr('href').replace("http://www.", "").replace("http://", "");
   		var data = {
   			action: 'comment_author_reurl',
  			_wpnonce: WPAkismet.comment_author_url_nonce,
   			id: thisId,
   			url: thisUrl
   		};
! 		$.ajax({
  		    url: ajaxurl,
  		    type: 'POST',
  		    data: data,
  		    beforeSend: function () {
  	 			// Show temp status
! 		        $("#author_comment_url_"+ thisId).html( $( '<span/>' ).text( WPAkismet.strings['Re-adding...'] ) );
  		    },
  		    success: function (response) {
  		        if (response) {
  	 				// Add "x" link
! 					$("a[commentid='"+ thisId +"']").show();
  					// Show link
! 					$("#author_comment_url_"+ thisId).removeClass('akismet_undo_link_removal').html(thisUrl);
  	 			}
  		    }
  		});
   		
   		return false;
   	});
! 	$('a[id^="author_comment_url"], tr.pingback td.column-author a:first-of-type').mouseover(function () {
  		var wpcomProtocol = ( 'https:' === location.protocol ) ? 'https://' : 'http://';
  		// Need to determine size of author column
! 		var thisParentWidth = $(this).parent().width();
  		// It changes based on if there is a gravatar present
! 		thisParentWidth = ($(this).parent().find('.grav-hijack').length) ? thisParentWidth - 42 + 'px' : thisParentWidth + 'px';
! 		if ($(this).find('.mShot').length == 0 && !$(this).hasClass('akismet_undo_link_removal')) {
! 			var self = $( this );
! 			$('.widefat td').css('overflow', 'visible');
! 			$(this).css('position', 'relative');
! 			var thisHref = $.URLEncode( $(this).attr('href') );
! 			$(this).append('<div class="mShot mshot-container" style="left: '+thisParentWidth+'"><div class="mshot-arrow"></div><img src="//s0.wordpress.com/mshots/v1/'+thisHref+'?w=450" width="450" class="mshot-image" style="margin: 0;" /></div>');
  			setTimeout(function () {
! 				self.find( '.mshot-image' ).attr('src', '//s0.wordpress.com/mshots/v1/'+thisHref+'?w=450&r=2');
  			}, 6000);
  			setTimeout(function () {
! 				self.find( '.mshot-image' ).attr('src', '//s0.wordpress.com/mshots/v1/'+thisHref+'?w=450&r=3');
  			}, 12000);
  		} else {
! 			$(this).find('.mShot').css('left', thisParentWidth).show();
  		}
  	}).mouseout(function () {
! 		$(this).find('.mShot').hide();
  	});
+ 	$('.checkforspam:not(.button-disabled)').click( function(e) { 
+  	    $('.checkforspam:not(.button-disabled)').addClass('button-disabled'); 
+  		$('.checkforspam-spinner').show(); 
+  		akismet_check_for_spam(0, 100); 
+  		e.preventDefault(); 
+  	});
+ 	
+ 	function akismet_check_for_spam(offset, limit) { 
+ 		$.post( 
+ 			ajaxurl, 
+ 			{ 
+ 				'action': 'akismet_recheck_queue', 
+ 				'offset': offset, 
+ 				'limit': limit 
+ 			}, 
+ 			function(result) { 
+ 				if (result.processed < limit) { 
+ 					window.location.reload(); 
+ 				} 
+ 				else { 
+ 					akismet_check_for_spam(offset + limit, limit); 
+ 				} 
+ 			} 
+ 		); 
+ 	}
  });
  // URL encode plugin
  jQuery.extend({URLEncode:function(c){var o='';var x=0;c=c.toString();var r=/(^[a-zA-Z0-9_.]*)/;
***************
*** 117,126 ****
      }else{if(c[x]==' ')o+='+';else{var d=c.charCodeAt(x);var h=d.toString(16);
      o+='%'+(h.length<2?'0':'')+h.toUpperCase();}x++;}}return o;}
  });
- // Preload mshot images after everything else has loaded
- jQuery(window).load(function() {
- 	var wpcomProtocol = ( 'https:' === location.protocol ) ? 'https://' : 'http://';
- 	jQuery('a[id^="author_comment_url"]').each(function () {
- 		jQuery.get(wpcomProtocol+'s0.wordpress.com/mshots/v1/'+jQuery.URLEncode(jQuery(this).attr('href'))+'?w=450');
- 	});
- });
--- 157,159 ----
diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/akismet/akismet.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/akismet/akismet.php
*** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/akismet/akismet.php	2013-10-30 20:29:20.000000000 +0300
--- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/akismet/akismet.php	2014-03-18 04:18:23.000000000 +0300
***************
*** 6,12 ****
  Plugin Name: Akismet
  Plugin URI: http://akismet.com/?return=true
  Description: Used by millions, Akismet is quite possibly the best way in the world to <strong>protect your blog from comment and trackback spam</strong>. It keeps your site protected from spam even while you sleep. To get started: 1) Click the "Activate" link to the left of this description, 2) <a href="http://akismet.com/get/?return=true">Sign up for an Akismet API key</a>, and 3) Go to your Akismet configuration page, and save your API key.
! Version: 2.5.9
  Author: Automattic
  Author URI: http://automattic.com/wordpress-plugins/
  License: GPLv2 or later
--- 6,12 ----
  Plugin Name: Akismet
  Plugin URI: http://akismet.com/?return=true
  Description: Used by millions, Akismet is quite possibly the best way in the world to <strong>protect your blog from comment and trackback spam</strong>. It keeps your site protected from spam even while you sleep. To get started: 1) Click the "Activate" link to the left of this description, 2) <a href="http://akismet.com/get/?return=true">Sign up for an Akismet API key</a>, and 3) Go to your Akismet configuration page, and save your API key.
! Version: 2.6.0
  Author: Automattic
  Author URI: http://automattic.com/wordpress-plugins/
  License: GPLv2 or later
***************
*** 34,41 ****
  	exit;
  }
  
! define('AKISMET_VERSION', '2.5.9');
  define('AKISMET_PLUGIN_URL', plugin_dir_url( __FILE__ ));
  
  /** If you hardcode a WP.com API key here, all key config screens will be hidden */
  if ( defined('WPCOM_API_KEY') )
--- 34,42 ----
  	exit;
  }
  
! define('AKISMET_VERSION', '2.6.0');
  define('AKISMET_PLUGIN_URL', plugin_dir_url( __FILE__ ));
+ define('AKISMET_DELETE_LIMIT', 10000);
  
  /** If you hardcode a WP.com API key here, all key config screens will be hidden */
  if ( defined('WPCOM_API_KEY') )
***************
*** 197,213 ****
  
  // filter handler used to return a spam result to pre_comment_approved
  function akismet_result_spam( $approved ) {
  	// bump the counter here instead of when the filter is added to reduce the possibility of overcounting
  	if ( $incr = apply_filters('akismet_spam_count_incr', 1) )
  		update_option( 'akismet_spam_count', get_option('akismet_spam_count') + $incr );
  	// this is a one-shot deal
! 	remove_filter( 'pre_comment_approved', 'akismet_result_spam' );
  	return 'spam';
  }
  
  function akismet_result_hold( $approved ) {
  	// once only
! 	remove_filter( 'pre_comment_approved', 'akismet_result_hold' );
  	return '0';
  }
  
--- 198,223 ----
  
  // filter handler used to return a spam result to pre_comment_approved
  function akismet_result_spam( $approved ) {
+ 	static $just_once = false;
+ 	if ( $just_once )
+ 		return $approved;
+ 		
  	// bump the counter here instead of when the filter is added to reduce the possibility of overcounting
  	if ( $incr = apply_filters('akismet_spam_count_incr', 1) )
  		update_option( 'akismet_spam_count', get_option('akismet_spam_count') + $incr );
+ 		
  	// this is a one-shot deal
! 	$just_once = true;
  	return 'spam';
  }
  
  function akismet_result_hold( $approved ) {
+ 	static $just_once = false;
+ 	if ( $just_once )
+ 		return $approved;
+ 		
  	// once only
! 	$just_once = true;
  	return '0';
  }
  
***************
*** 321,327 ****
  	global $akismet_api_host, $akismet_api_port, $akismet_last_comment;
  
  	$comment = $commentdata;
! 	$comment['user_ip']    = $_SERVER['REMOTE_ADDR'];
  	$comment['user_agent'] = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : null; 
  	$comment['referrer']   = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : null;
  	$comment['blog']       = get_option('home');
--- 331,337 ----
  	global $akismet_api_host, $akismet_api_port, $akismet_last_comment;
  
  	$comment = $commentdata;
! 	$comment['user_ip']    = akismet_get_ip_address();
  	$comment['user_agent'] = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : null; 
  	$comment['referrer']   = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : null;
  	$comment['blog']       = get_option('home');
***************
*** 422,479 ****
  
  add_action('preprocess_comment', 'akismet_auto_check_comment', 1);
  
  function akismet_delete_old() {
  	global $wpdb;
! 	$now_gmt = current_time('mysql', 1);
! 	$comment_ids = $wpdb->get_col("SELECT comment_id FROM $wpdb->comments WHERE DATE_SUB('$now_gmt', INTERVAL 15 DAY) > comment_date_gmt AND comment_approved = 'spam'");
! 	if ( empty( $comment_ids ) )
! 		return;
  		
! 	$comma_comment_ids = implode( ', ', array_map('intval', $comment_ids) );
  
! 	do_action( 'delete_comment', $comment_ids );
! 	$wpdb->query("DELETE FROM $wpdb->comments WHERE comment_id IN ( $comma_comment_ids )");
! 	$wpdb->query("DELETE FROM $wpdb->commentmeta WHERE comment_id IN ( $comma_comment_ids )");
! 	clean_comment_cache( $comment_ids );
! 	$n = mt_rand(1, 5000);
! 	if ( apply_filters('akismet_optimize_table', ($n == 11)) ) // lucky number
! 		$wpdb->query("OPTIMIZE TABLE $wpdb->comments");
  
  }
  
  function akismet_delete_old_metadata() { 
  	global $wpdb; 
  
- 	$now_gmt = current_time( 'mysql', 1 ); 
  	$interval = apply_filters( 'akismet_delete_commentmeta_interval', 15 );
  
  	# enfore a minimum of 1 day
  	$interval = absint( $interval );
! 	if ( $interval < 1 ) {
! 		return;
! 	}
  
  	// akismet_as_submitted meta values are large, so expire them 
  	// after $interval days regardless of the comment status 
! 	while ( TRUE ) {
! 		$comment_ids = $wpdb->get_col( "SELECT $wpdb->comments.comment_id FROM $wpdb->commentmeta INNER JOIN $wpdb->comments USING(comment_id) WHERE meta_key = 'akismet_as_submitted' AND DATE_SUB('$now_gmt', INTERVAL {$interval} DAY) > comment_date_gmt LIMIT 10000" ); 
! 
! 		if ( empty( $comment_ids ) ) {
! 			return; 
! 		}
! 
  		foreach ( $comment_ids as $comment_id ) {
  			delete_comment_meta( $comment_id, 'akismet_as_submitted' );
  		}
  	}
! 
! 	/*
! 	$n = mt_rand( 1, 5000 ); 
! 	if ( apply_filters( 'akismet_optimize_table', ( $n == 11 ), 'commentmeta' ) ) { // lucky number 
! 		$wpdb->query( "OPTIMIZE TABLE $wpdb->commentmeta" ); 
! 	}
! 	*/
! } 
  
  add_action('akismet_scheduled_delete', 'akismet_delete_old');
  add_action('akismet_scheduled_delete', 'akismet_delete_old_metadata'); 
--- 432,501 ----
  
  add_action('preprocess_comment', 'akismet_auto_check_comment', 1);
  
+ function akismet_get_ip_address() {
+ 	foreach( array( 'HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_X_CLUSTER_CLIENT_IP', 'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED', 'REMOTE_ADDR' ) as $key ) {
+ 		if ( array_key_exists( $key, $_SERVER ) === true ) {
+ 			foreach ( explode( ',', $_SERVER[$key] ) as $ip ) {
+ 				$ip = trim($ip); 
+ 	
+ 				if ( filter_var( $ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE) !== false ) {
+ 					return $ip;
+ 				}
+ 			}
+ 		}
+ 	}
+ 	return null;
+ }
+ 
  function akismet_delete_old() {
  	global $wpdb;
! 	
! 	while( $comment_ids = $wpdb->get_col( $wpdb->prepare( "SELECT comment_id FROM {$wpdb->comments} WHERE DATE_SUB(NOW(), INTERVAL 15 DAY) > comment_date_gmt AND comment_approved = 'spam' LIMIT %d", defined( 'AKISMET_DELETE_LIMIT' ) ? AKISMET_DELETE_LIMIT : 10000 ) ) ) {
! 		if ( empty( $comment_ids ) )
! 			return;
  		
! 		$wpdb->queries = array();
  
! 		do_action( 'delete_comment', $comment_ids );
! 		
! 		$comma_comment_ids = implode( ', ', array_map('intval', $comment_ids) );
! 	
! 		$wpdb->query("DELETE FROM {$wpdb->comments} WHERE comment_id IN ( $comma_comment_ids )");
! 		$wpdb->query("DELETE FROM {$wpdb->commentmeta} WHERE comment_id IN ( $comma_comment_ids )");
! 		
! 		clean_comment_cache( $comment_ids );
! 	}
  
+ 	if ( apply_filters( 'akismet_optimize_table', ( mt_rand(1, 5000) == 11) ) ) // lucky number
+ 		$wpdb->query("OPTIMIZE TABLE {$wpdb->comments}");
  }
  
  function akismet_delete_old_metadata() { 
  	global $wpdb; 
  
  	$interval = apply_filters( 'akismet_delete_commentmeta_interval', 15 );
  
  	# enfore a minimum of 1 day
  	$interval = absint( $interval );
! 	if ( $interval < 1 )
! 		$interval = 1;
  
  	// akismet_as_submitted meta values are large, so expire them 
  	// after $interval days regardless of the comment status 
! 	while ( $comment_ids = $wpdb->get_col( $wpdb->prepare( "SELECT m.comment_id FROM {$wpdb->commentmeta} as m INNER JOIN {$wpdb->comments} as c USING(comment_id) WHERE m.meta_key = 'akismet_as_submitted' AND DATE_SUB(NOW(), INTERVAL %d DAY) > c.comment_date_gmt LIMIT 10000", $interval ) ) ) {	
! 		if ( empty( $comment_ids ) )
! 			return;
! 		
! 		$wpdb->queries = array();
! 		
  		foreach ( $comment_ids as $comment_id ) {
  			delete_comment_meta( $comment_id, 'akismet_as_submitted' );
  		}
  	}
! 	
! 	if ( apply_filters( 'akismet_optimize_table', ( mt_rand(1, 5000) == 11) ) ) // lucky number
! 		$wpdb->query("OPTIMIZE TABLE {$wpdb->comments}");
! }
  
  add_action('akismet_scheduled_delete', 'akismet_delete_old');
  add_action('akismet_scheduled_delete', 'akismet_delete_old_metadata'); 
***************
*** 588,593 ****
--- 610,680 ----
  if ( $akismet_comment_nonce_option == 'true' || $akismet_comment_nonce_option == '' )
  	add_action( 'comment_form', 'akismet_add_comment_nonce' );
  
+ function akismet_pingback_forwarded_for( $r, $url ) {
+ 	static $urls = array();
+ 	
+ 	// Call this with $r == null to prime the callback to add headers on a specific URL
+ 	if ( is_null( $r ) && !in_array( $url, $urls ) ) {
+ 		$urls[] = $url;
+ 	}
+ 
+ 	// Add X-Pingback-Forwarded-For header, but only for requests to a specific URL (the apparent pingback source)
+ 	if ( is_array( $r ) && is_array( $r['headers'] ) && !isset( $r['headers']['X-Pingback-Forwarded-For'] ) && in_array( $url, $urls ) ) {
+ 		$remote_ip = preg_replace( '/[^a-fx0-9:.,]/i', '', $_SERVER['REMOTE_ADDR'] );
+ 		
+ 		// Note: this assumes REMOTE_ADDR is correct, and it may not be if a reverse proxy or CDN is in use
+ 		$r['headers']['X-Pingback-Forwarded-For'] = $remote_ip;
+ 
+ 		// Also identify the request as a pingback verification in the UA string so it appears in logs
+ 		$r['user-agent'] .= '; verifying pingback from ' . $remote_ip;
+ 	}
+ 
+ 	return $r;
+ }
+ 
+ function akismet_pre_check_pingback( $method ) {
+ 	
+ 	if ( $method !== 'pingback.ping' )
+ 		return;
+ 
+ 	global $wp_xmlrpc_server;
+ 	
+ 	if ( !is_object( $wp_xmlrpc_server ) )
+ 		return false;
+ 	
+ 	// Lame: tightly coupled with the IXR class.
+ 	$args = $wp_xmlrpc_server->message->params;
+ 	
+ 	if ( !empty( $args[1] ) ) {
+ 		$post_id = url_to_postid( $args[1] );
+ 
+ 		// If this gets through the pre-check, make sure we properly identify the outbound request as a pingback verification
+ 		akismet_pingback_forwarded_for( null, $args[0] );
+ 		add_filter( 'http_request_args', 'akismet_pingback_forwarded_for', 10, 2 );
+ 
+ 		$comment = array(
+ 			'comment_author_url' => $args[0],
+ 			'comment_post_ID' => $post_id,
+ 			'comment_author' => '',
+ 			'comment_author_email' => '',
+ 			'comment_content' => '',
+ 			'comment_type' => 'pingback',
+ 			'akismet_pre_check' => '1',
+ 			'comment_pingback_target' => $args[1],
+ 		);
+ 
+ 		$comment = akismet_auto_check_comment( $comment );
+ 
+ 		if ( isset( $comment['akismet_result'] ) && 'true' == $comment['akismet_result'] ) {
+ 			// Lame: tightly coupled with the IXR classes. Unfortunately the action provides no context and no way to return anything.
+ 			$wp_xmlrpc_server->error( new IXR_Error( 0, 'Invalid discovery target' ) );
+ 		}
+ 	}
+ }
+ 
+ // Run this early in the pingback call, before doing a remote fetch of the source uri
+ add_action( 'xmlrpc_call', 'akismet_pre_check_pingback' );
+ 
  global $wp_version;
  if ( '3.0.5' == $wp_version ) { 
  	remove_filter( 'comment_text', 'wp_kses_data' ); 
diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/akismet/readme.txt /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/akismet/readme.txt
*** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/akismet/readme.txt	2013-10-30 20:29:20.000000000 +0300
--- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/akismet/readme.txt	2014-03-18 01:15:43.000000000 +0300
***************
*** 2,9 ****
  Contributors: matt, ryan, andy, mdawaffe, tellyworth, josephscott, lessbloat, eoigal, automattic
  Tags: akismet, comments, spam
  Requires at least: 3.0
! Tested up to: 3.6
! Stable tag: 2.5.9
  License: GPLv2 or later
  
  Akismet checks your comments against the Akismet web service to see if they look like spam or not.
--- 2,9 ----
  Contributors: matt, ryan, andy, mdawaffe, tellyworth, josephscott, lessbloat, eoigal, automattic
  Tags: akismet, comments, spam
  Requires at least: 3.0
! Tested up to: 3.8.1
! Stable tag: 2.6.0
  License: GPLv2 or later
  
  Akismet checks your comments against the Akismet web service to see if they look like spam or not.
***************
*** 31,36 ****
--- 31,44 ----
  
  == Changelog ==
  
+ = 2.6.0 =
+ * Add ajax paging to the check for spam button to handle large volumes of comments
+ * Optimize javascript and add localization support 
+ * Fix bug in link to spam comments from right now dashboard widget
+ * Fix bug with deleting old comments to avoid timeouts dealing with large volumes of comments
+ * Include X-Pingback-Forwarded-For header in outbound WordPress pingback verifications
+ * Add pre-check for pingbacks, to stop spam before an outbound verification request is made
+ 
  = 2.5.9 =
  * Update 'Already have a key' link to redirect page rather than depend on javascript
  * Fix some non-translatable strings to be translatable
diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/advanced-cache.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/advanced-cache.php
*** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/advanced-cache.php	2013-10-30 20:29:20.000000000 +0300
--- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/advanced-cache.php	2014-08-08 20:30:29.000000000 +0400
***************
*** 1,6 ****
--- 1,10 ----
  <?php
  # WP SUPER CACHE 1.2
  function wpcache_broken_message() {
+ 	global $wp_cache_config_file;
+ 	if ( isset( $wp_cache_config_file ) == false )
+ 		return '';
+ 
  	if ( false == strpos( $_SERVER[ 'REQUEST_URI' ], 'wp-admin' ) )
  		echo "<!-- WP Super Cache is installed but broken. The constant WPCACHEHOME must be set in the file wp-config.php and point at the WP Super Cache plugin directory. -->";
  }
diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/Changelog.txt /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/Changelog.txt
*** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/Changelog.txt	2013-10-30 20:29:20.000000000 +0300
--- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/Changelog.txt	2014-08-08 20:30:29.000000000 +0400
***************
*** 1,3 ****
--- 1,106 ----
+ 2014-08-08 13:07  donncha
+ 
+ 	* wp-cache-phase1.php: Just in case the local modified time of a
+ 	  file is 0, disable the "last modified time" check.
+ 
+ 2014-08-08 11:32  donncha
+ 
+ 	* plugins/domain-mapping.php: Check if HTTPS exists before checking
+ 	  it's value to avoid warnings
+ 
+ 2014-08-08 11:24  donncha
+ 
+ 	* wp-cache.php: Replace wpdb->escape with esc_sql() as it's
+ 	  deprecated.
+ 
+ 2014-08-08 11:21  donncha
+ 
+ 	* wp-cache-phase2.php: Make sure $wp_cache_no_cache_for_get,
+ 	  $wp_cache_object_cache, $wp_cache_request_uri are visible to the
+ 	  OB callback to avoid warnings and fix functionality
+ 
+ 2014-08-07 14:00  donncha
+ 
+ 	* Changelog.txt, readme.txt, wp-cache.php: Updated changelog,
+ 	  documentation, bumped version number to 1.4.1 and tested version.
+ 
+ 2014-08-07 12:45  donncha
+ 
+ 	* wp-cache.php: Removed author information
+ 
+ 2014-08-06 12:41  kraftbj
+ 
+ 	* plugins/awaitingmoderation.php, plugins/badbehaviour.php,
+ 	  plugins/domain-mapping.php, plugins/jetpack.php,
+ 	  plugins/searchengine.php, plugins/wptouch.php, wp-cache.php: PR
+ 	  #13: Added .button-primary and .button-secondary classes to and
+ 	  removed &raquo's from buttons throughout the admin for
+ 	  consistency. Ref:
+ 	  https://github.com/Automattic/wp-super-cache/pull/13 Props:
+ 	  rcowles
+ 
+ 2014-08-05 20:00  kraftbj
+ 
+ 	* ossdl-cdn.php, readme.txt, wp-cache.php: Fix bad merge.
+ 
+ 2014-08-05 19:56  kraftbj
+ 
+ 	* readme.txt: Add Jetpack to mobile FAQ.
+ 
+ 2014-08-05 19:56  kraftbj
+ 
+ 	* wp-cache.php: Remove CDN Sync Tools. No longer in WP.org repo
+ 
+ 2014-08-05 19:55  kraftbj
+ 
+ 	* ossdl-cdn.php, readme.txt, wp-cache.php: Update
+ 	  wordpress.org/extend URLs
+ 
+ 2014-08-05 12:42  donncha
+ 
+ 	* wp-cache.php: Fix to avoid an XSS in the settings page. Props
+ 	  Simon Waters, Surevine Limited.
+ 
+ 2014-08-04 22:04  kraftbj
+ 
+ 	* ossdl-cdn.php: Remove reference to CDN Sync. Plugin no longer in
+ 	  repo.
+ 
+ 2014-07-31 21:09  kraftbj
+ 
+ 	* readme.txt: Add Jetpack to mobile FAQ.
+ 
+ 2014-07-31 21:09  kraftbj
+ 
+ 	* wp-cache.php: Remove CDN Sync Tools. No longer in WP.org repo
+ 
+ 2014-07-31 21:08  kraftbj
+ 
+ 	* ossdl-cdn.php, readme.txt, wp-cache-phase1.php, wp-cache.php:
+ 	  Update wordpress.org/extend URLs
+ 
+ 2014-07-31 21:08  kraftbj
+ 
+ 	* plugins/awaitingmoderation.php, plugins/badbehaviour.php,
+ 	  plugins/domain-mapping.php, plugins/dynamic-cache-test.php,
+ 	  plugins/jetpack.php, plugins/searchengine.php,
+ 	  plugins/wptouch.php: Trim whitespace
+ 
+ 2014-07-31 21:07  kraftbj
+ 
+ 	* wp-cache-config-sample.php, wp-cache-phase1.php, wp-cache.php:
+ 	  Trim whitespace
+ 
+ 2014-07-31 21:06  kraftbj
+ 
+ 	* wp-cache.php: Admin: Add clear to h3 to pretify Recommended Links
+ 	  title
+ 
+ 2014-07-31 20:51  donncha
+ 
+ 	* wp-cache-phase2.php: Make sure these are global so the function
+ 	  knows about them. Props JoHenton and richardmtl
+ 	  http://wordpress.org/support/topic/notices-appearing-above-site-pages-how-do-i-get-rid-of-them?replies=2
  2013-10-23 10:49  donncha
  
  	* wp-super-cache.pot: Updated translation file
diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/ossdl-cdn.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/ossdl-cdn.php
*** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/ossdl-cdn.php	2013-10-30 20:29:20.000000000 +0300
--- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/ossdl-cdn.php	2014-08-08 20:30:29.000000000 +0400
***************
*** 149,155 ****
  	$example_cdn_uri .= '/wp-includes/js/prototype.js';
  	?>
  		<p><?php _e( 'Your website probably uses lots of static files. Image, Javascript and CSS files are usually static files that could just as easily be served from another site or CDN. Therefore this plugin replaces any links in the <code>wp-content</code> and <code>wp-includes</code> directories (except for PHP files) on your site with the URL you provide below. That way you can either copy all the static content to a dedicated host or mirror the files to a CDN by <a href="http://knowledgelayer.softlayer.com/questions/365/How+does+Origin+Pull+work%3F" target="_blank">origin pull</a>.', 'wp-super-cache' ); ?></p>
- 		<p><?php printf( __( 'The <a href="%1$s">CDN Sync Tool</a> plugin will help upload files to Amazon S3/Cloudfront if you would rather not depend on origin pull. See the <a href="%2$s">plugin support forum</a> if you have any queries about this plugin.', 'wp-super-cache' ), 'http://wordpress.org/extend/plugins/cdn-sync-tool/', 'http://wordpress.org/tags/cdn-sync-tool?forum_id=10' ); ?></p>
  		<p><?php printf( __( '<strong style="color: red">WARNING:</strong> Test some static urls e.g., %s  to ensure your CDN service is fully working before saving changes.', 'wp-super-cache' ), '<code>' . $example_cdn_uri . '</code>' ); ?></p>
  		<p><?php _e( 'You can define different CDN URLs for each site on a multsite network.', 'wp-super-cache' ); ?></p>
  		<p><form method="post" action="">
--- 149,154 ----
***************
*** 196,202 ****
  		<input type="hidden" name="action" value="update_ossdl_off" />
  		<p class="submit"><input type="submit" class="button-primary" value="<?php _e('Save Changes') ?>" /></p>
  		</form></p>
! 		<p><?php _e( 'CDN functionality provided by <a href="http://wordpress.org/extend/plugins/ossdl-cdn-off-linker/">OSSDL CDN Off Linker</a> by <a href="http://mark.ossdl.de/">Mark Kubacki</a>', 'wp-super-cache' ); ?></p>
  	<?php
  }
  ?>
--- 195,201 ----
  		<input type="hidden" name="action" value="update_ossdl_off" />
  		<p class="submit"><input type="submit" class="button-primary" value="<?php _e('Save Changes') ?>" /></p>
  		</form></p>
! 		<p><?php _e( 'CDN functionality provided by <a href="http://wordpress.org/plugins/ossdl-cdn-off-linker/">OSSDL CDN Off Linker</a> by <a href="http://mark.ossdl.de/">Mark Kubacki</a>', 'wp-super-cache' ); ?></p>
  	<?php
  }
  ?>
diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/plugins/awaitingmoderation.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/plugins/awaitingmoderation.php
*** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/plugins/awaitingmoderation.php	2013-10-30 20:29:20.000000000 +0300
--- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/plugins/awaitingmoderation.php	2014-08-08 20:30:29.000000000 +0400
***************
*** 16,22 ****
  //Your comment is awaiting moderation.
  function wp_supercache_awaitingmoderation_admin() {
  	global $cache_awaitingmoderation, $wp_cache_config_file, $valid_nonce;
! 	
  	$cache_awaitingmoderation = $cache_awaitingmoderation == '' ? '0' : $cache_awaitingmoderation;
  
  	if(isset($_POST['cache_awaitingmoderation']) && $valid_nonce) {
--- 16,22 ----
  //Your comment is awaiting moderation.
  function wp_supercache_awaitingmoderation_admin() {
  	global $cache_awaitingmoderation, $wp_cache_config_file, $valid_nonce;
! 
  	$cache_awaitingmoderation = $cache_awaitingmoderation == '' ? '0' : $cache_awaitingmoderation;
  
  	if(isset($_POST['cache_awaitingmoderation']) && $valid_nonce) {
***************
*** 28,34 ****
  	}
  	$id = 'awaitingmoderation-section';
  	?>
! 		<fieldset id="<?php echo $id; ?>" class="options"> 
  		<h4><?php _e( 'Awaiting Moderation', 'wp-super-cache' ); ?></h4>
  		<form name="wp_manager" action="" method="post">
  		<label><input type="radio" name="cache_awaitingmoderation" value="1" <?php if( $cache_awaitingmoderation ) { echo 'checked="checked" '; } ?>/> <?php _e( 'Enabled', 'wp-super-cache' ); ?></label>
--- 28,34 ----
  	}
  	$id = 'awaitingmoderation-section';
  	?>
! 		<fieldset id="<?php echo $id; ?>" class="options">
  		<h4><?php _e( 'Awaiting Moderation', 'wp-super-cache' ); ?></h4>
  		<form name="wp_manager" action="" method="post">
  		<label><input type="radio" name="cache_awaitingmoderation" value="1" <?php if( $cache_awaitingmoderation ) { echo 'checked="checked" '; } ?>/> <?php _e( 'Enabled', 'wp-super-cache' ); ?></label>
***************
*** 42,48 ****
  				$status = __( "disabled" );
  			echo "<p><strong>" . sprintf( __( "Awaiting Moderation is now %s", 'wp-super-cache' ), $status ) . "</strong></p>";
  		}
! 	echo '<div class="submit"><input ' . SUBMITDISABLED . 'type="submit" value="' . __( 'Update', 'wp-super-cache' ) . '" /></div>';
  	wp_nonce_field('wp-cache');
  	?>
  	</form>
--- 42,48 ----
  				$status = __( "disabled" );
  			echo "<p><strong>" . sprintf( __( "Awaiting Moderation is now %s", 'wp-super-cache' ), $status ) . "</strong></p>";
  		}
! 	echo '<div class="submit"><input class="button-primary" ' . SUBMITDISABLED . 'type="submit" value="' . __( 'Update', 'wp-super-cache' ) . '" /></div>';
  	wp_nonce_field('wp-cache');
  	?>
  	</form>
diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/plugins/badbehaviour.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/plugins/badbehaviour.php
*** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/plugins/badbehaviour.php	2013-10-30 20:29:20.000000000 +0300
--- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/plugins/badbehaviour.php	2014-08-08 20:30:29.000000000 +0400
***************
*** 33,39 ****
  
  function wp_supercache_badbehaviour_admin() {
  	global $cache_badbehaviour, $wp_cache_config_file, $valid_nonce;
! 	
  	$cache_badbehaviour = $cache_badbehaviour == '' ? 0 : $cache_badbehaviour;
  	if ( $cache_badbehaviour == 'no' )
  		$cache_badbehaviour = 0;
--- 33,39 ----
  
  function wp_supercache_badbehaviour_admin() {
  	global $cache_badbehaviour, $wp_cache_config_file, $valid_nonce;
! 
  	$cache_badbehaviour = $cache_badbehaviour == '' ? 0 : $cache_badbehaviour;
  	if ( $cache_badbehaviour == 'no' )
  		$cache_badbehaviour = 0;
***************
*** 59,65 ****
  	}
  	$id = 'badbehavior-section';
  	?>
! 		<fieldset id="<?php echo $id; ?>" class="options"> 
  		<h4><?php _e( 'Bad Behavior', 'wp-super-cache' ); ?></h4>
  		<form name="wp_manager" action="" method="post">
  		<label><input type="radio" name="cache_badbehaviour" value="1" <?php if( $cache_badbehaviour ) { echo 'checked="checked" '; } ?>/> <?php _e( 'Enabled', 'wp-super-cache' ); ?></label>
--- 59,65 ----
  	}
  	$id = 'badbehavior-section';
  	?>
! 		<fieldset id="<?php echo $id; ?>" class="options">
  		<h4><?php _e( 'Bad Behavior', 'wp-super-cache' ); ?></h4>
  		<form name="wp_manager" action="" method="post">
  		<label><input type="radio" name="cache_badbehaviour" value="1" <?php if( $cache_badbehaviour ) { echo 'checked="checked" '; } ?>/> <?php _e( 'Enabled', 'wp-super-cache' ); ?></label>
***************
*** 73,79 ****
  				$status = __( "disabled" );
  			echo "<p><strong>" . sprintf( __( "Bad Behavior support is now %s", 'wp-super-cache' ), $status ) . "</strong></p>";
  		}
! 	echo '<div class="submit"><input ' . SUBMITDISABLED . 'type="submit" value="' . __( 'Update', 'wp-super-cache' ) . '" /></div>';
  	wp_nonce_field('wp-cache');
  	?>
  	</form>
--- 73,79 ----
  				$status = __( "disabled" );
  			echo "<p><strong>" . sprintf( __( "Bad Behavior support is now %s", 'wp-super-cache' ), $status ) . "</strong></p>";
  		}
! 	echo '<div class="submit"><input class="button-primary" ' . SUBMITDISABLED . 'type="submit" value="' . __( 'Update', 'wp-super-cache' ) . '" /></div>';
  	wp_nonce_field('wp-cache');
  	?>
  	</form>
diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/plugins/domain-mapping.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/plugins/domain-mapping.php
*** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/plugins/domain-mapping.php	2013-10-30 20:29:20.000000000 +0300
--- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/plugins/domain-mapping.php	2014-08-08 20:30:29.000000000 +0400
***************
*** 10,16 ****
  	if ( !$siteurl )
  		return false;
  
! 	$protocol = ( 'on' == strtolower( $_SERVER['HTTPS' ] ) ) ? 'https://' : 'http://';
  	$siteurl = trailingslashit( str_replace( $protocol, '', $siteurl ) );
  
  	if ( $directory == 'homepage' )
--- 10,16 ----
  	if ( !$siteurl )
  		return false;
  
! 	$protocol = ( isset( $_SERVER['HTTPS' ] ) && 'on' == strtolower( $_SERVER['HTTPS' ] ) ) ? 'https://' : 'http://';
  	$siteurl = trailingslashit( str_replace( $protocol, '', $siteurl ) );
  
  	if ( $directory == 'homepage' )
***************
*** 22,29 ****
  			@wp_cache_rebuild_or_delete( $cache_path . 'supercache/' . $siteurl . $directory . 'index.html.gz' );
  		break;
  		case "prune":
! 			prune_super_cache( $cache_path . 'supercache/' . $siteurl . $directory . 'index.html', true, true ); 
! 			prune_super_cache( $cache_path . 'supercache/' . $siteurl . $directory . 'index.html.gz', true, true ); 
  		break;
  	}
  
--- 22,29 ----
  			@wp_cache_rebuild_or_delete( $cache_path . 'supercache/' . $siteurl . $directory . 'index.html.gz' );
  		break;
  		case "prune":
! 			prune_super_cache( $cache_path . 'supercache/' . $siteurl . $directory . 'index.html', true, true );
! 			prune_super_cache( $cache_path . 'supercache/' . $siteurl . $directory . 'index.html.gz', true, true );
  		break;
  	}
  
***************
*** 39,45 ****
  	if ( !$siteurl )
  		return $dir;
  
! 	$protocol = ( 'on' == strtolower( $_SERVER['HTTPS' ] ) ) ? 'https://' : 'http://';
  	$siteurl = str_replace( $protocol, '', $siteurl );
  	return $cache_path . 'supercache/' . $siteurl;
  }
--- 39,45 ----
  	if ( !$siteurl )
  		return $dir;
  
! 	$protocol = ( isset( $_SERVER['HTTPS' ] ) && 'on' == strtolower( $_SERVER['HTTPS' ] ) ) ? 'https://' : 'http://';
  	$siteurl = str_replace( $protocol, '', $siteurl );
  	return $cache_path . 'supercache/' . $siteurl;
  }
***************
*** 55,61 ****
  
  function wp_supercache_domain_mapping_admin() {
  	global $cache_domain_mapping, $wp_cache_config_file, $valid_nonce;
! 	
  	$cache_domain_mapping = $cache_domain_mapping == '' ? '0' : $cache_domain_mapping;
  
  	if(isset($_POST['cache_domain_mapping']) && $valid_nonce) {
--- 55,61 ----
  
  function wp_supercache_domain_mapping_admin() {
  	global $cache_domain_mapping, $wp_cache_config_file, $valid_nonce;
! 
  	$cache_domain_mapping = $cache_domain_mapping == '' ? '0' : $cache_domain_mapping;
  
  	if(isset($_POST['cache_domain_mapping']) && $valid_nonce) {
***************
*** 69,75 ****
  	}
  	$id = 'domain_mapping-section';
  	?>
! 		<fieldset id="<?php echo $id; ?>" class="options"> 
  		<h4><?php _e( 'Domain Mapping', 'wp-super-cache' ); ?></h4>
  		<form name="wp_manager" action="" method="post">
  		<label><input type="radio" name="cache_domain_mapping" value="1" <?php if( $cache_domain_mapping ) { echo 'checked="checked" '; } ?>/> <?php _e( 'Enabled', 'wp-super-cache' ); ?></label>
--- 69,75 ----
  	}
  	$id = 'domain_mapping-section';
  	?>
! 		<fieldset id="<?php echo $id; ?>" class="options">
  		<h4><?php _e( 'Domain Mapping', 'wp-super-cache' ); ?></h4>
  		<form name="wp_manager" action="" method="post">
  		<label><input type="radio" name="cache_domain_mapping" value="1" <?php if( $cache_domain_mapping ) { echo 'checked="checked" '; } ?>/> <?php _e( 'Enabled', 'wp-super-cache' ); ?></label>
***************
*** 83,89 ****
  				$status = __( "disabled" );
  			echo "<p><strong>" . sprintf( __( "Domain Mapping support is now %s", 'wp-super-cache' ), $status ) . "</strong></p>";
  		}
! 	echo '<div class="submit"><input ' . SUBMITDISABLED . 'type="submit" value="' . __( 'Update', 'wp-super-cache' ) . '" /></div>';
  	wp_nonce_field('wp-cache');
  	?>
  	</form>
--- 83,89 ----
  				$status = __( "disabled" );
  			echo "<p><strong>" . sprintf( __( "Domain Mapping support is now %s", 'wp-super-cache' ), $status ) . "</strong></p>";
  		}
! 	echo '<div class="submit"><input class="button-primary" ' . SUBMITDISABLED . 'type="submit" value="' . __( 'Update', 'wp-super-cache' ) . '" /></div>';
  	wp_nonce_field('wp-cache');
  	?>
  	</form>
diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/plugins/dynamic-cache-test.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/plugins/dynamic-cache-test.php
*** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/plugins/dynamic-cache-test.php	2013-10-30 20:29:20.000000000 +0300
--- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/plugins/dynamic-cache-test.php	2014-08-08 20:30:29.000000000 +0400
***************
*** 1,113 ****
  <?php
  
  /*
!  * A function that uses the wpsc_cachedata filter to add a small message
!  * and the current server time to every web page. The time increments
!  * on every reload.
   *
!  * On the Advanced Settings page enable "Enable dynamic caching".
   *
   * dynamic_cache_test_init()
!  * This function is the first one to be called. This function hooks 
   * dynamic_cache_test_template() to the WordPress action, wp_footer.
!  * This script is loaded before WordPress is and the add_action() 
!  * function isn't defined at this time. 
   * This init function hooks onto the cache action "add_cacheaction"
   * that fires after WordPress (and add_action) is loaded.
   *
   *
   * dynamic_cache_test_template_tag()
!  * This function hooks on to wp_footer and displays the secret template 
   * tag that will be replaced by our dynamic content on each page view.
   *
   *
   * dynamic_cache_test_filter()
   * This function hooks on to the filter through which all the cached data
   * sent to visitors is sent.
!  * In this simple example the template tag is replaced by a html comment 
!  * containing the text "Hello world at " and the current server time. 
!  * If you want to use the output of a WordPress plugin or command you 
!  * must enable "late init" on the settings page. Each time you reload 
!  * the cached page this time will change. View the page source to examine 
   * this text.
   *
-  * Plugin authors: NEVER define the template tag for your users. Make them 
-  * choose one so it will be unique to their site.
-  *
-  * **** MAKE SURE YOU KEEP THE TEMPLATE TAG SECRET ****
-  *
   */
! 
  
  /*
!  * Uncomment the code below, enable dynamic caching on the Advanced Settings
!  * page and clear the cache. 
!  * Be sure to define DYNAMIC_CACHE_TEST_TAG too. Make it a random string
!  * that will never appear on your website. In your own application this
!  * tag can be whatever you like.
   */
  
! /*
! define( 'DYNAMIC_CACHE_TEST_TAG', '' ); // CHANGE THIS!
! define( 'DYNAMIC_OUTPUT_BUFFER_TAG', '' ); // CHANGE THIS!
! 
! if ( DYNAMIC_CACHE_TEST_TAG == '' )
! 	return false;
! 
! // To use an output buffer when generating the dynamic section of your web page
! // you must generate the HTML/JS/CSS and store it before the page is completed.
! // That stored text is used by the wpsc_cachedata filter later when the same
! // function is called again.
! // You must also create a safety function. This function checks that your newly
! // cached page is ready to be processed by the wpsc_cachedata filter. It's not
! // required for already cached pages.
! // See dynamic_output_buffer_test_safety() for an example. You must add this 
! // to avoid the following error:
! // "PHP Fatal error:  ob_start(): Cannot use output buffering in output buffering display handlers in..."
! //
! // Steps to run example plugin:
! // 1. Add the DYNAMIC_OUTPUT_BUFFER_TAG text (as defined above) to your theme where the dynamic content should be.
! // 2. Call dynamic_output_buffer_test() from your theme or an action like wp_footer
! // 3. Clear all cached files.
! 
! function dynamic_output_buffer_test( &$cachedata = 0 ) {
! 	if ( defined( 'DYNAMIC_OB_TEXT' ) )
! 		return str_replace( DYNAMIC_OUTPUT_BUFFER_TAG, DYNAMIC_OB_TEXT, $cachedata );
! 
! 	ob_start();
! 	// call the sidebar function, do something dynamic
! 	echo "<p>This is a test. The current time on the server is: " . date( 'H:i:s' ) . "</p>";
! 	$text = ob_get_contents();
! 	ob_end_clean();
! 
! 	if ( $cachedata === 0 ) // called directly from the theme so store the output
! 		define( 'DYNAMIC_OB_TEXT', $text );
! 	else // called via the wpsc_cachedata filter. We only get here in cached pages in wp-cache-phase1.php
! 		return str_replace( DYNAMIC_OUTPUT_BUFFER_TAG, $text, $cachedata );
! 
! }
! add_cacheaction( 'wpsc_cachedata', 'dynamic_output_buffer_test' );
! 
! function dynamic_output_buffer_test_safety( $safety ) {
! 	if ( defined( 'DYNAMIC_OB_TEXT' ) )
! 		return 1; // ready to replace tag with dynamic content.
! 	else
! 		return 0; // tag cannot be replaced.
! }
! add_cacheaction( 'wpsc_cachedata_safety', 'dynamic_output_buffer_test_safety' );
! 
! function dynamic_cache_test_filter( &$cachedata) {
! 	return str_replace( DYNAMIC_CACHE_TEST_TAG, "<!-- Hello world at " . date( 'H:i:s' ) . " -->", $cachedata );
! }
! add_cacheaction( 'wpsc_cachedata', 'dynamic_cache_test_filter' );
! 
! function dynamic_cache_test_template_tag() {
! 	echo DYNAMIC_CACHE_TEST_TAG; // This is the template tag
! }
  
! function dynamic_cache_test_init() {
! 	add_action( 'wp_footer', 'dynamic_cache_test_template_tag' );
  }
- add_cacheaction( 'add_cacheaction', 'dynamic_cache_test_init' );
- */
  ?>
--- 1,169 ----
  <?php
  
  /*
!  * On the Advanced Settings page enable "Enable dynamic caching" and clear
!  * the cache.
   *
!  * Plugin authors: NEVER define the template tag for your users. Make them
!  * choose one so it will be unique to their site.
!  *
!  * There are two examples in this file. Both use template tags that must be
!  * kept secret.
!  *
!  * GLOSSARY:
!  *
!  * Dynamic content: the text or widget you want to show visitors to your site
!  * that changes every time it's viewed.
!  * Placeholder/template tag: the string of random characters placed in your
!  * theme file or printed in an action where the dynamic content will go.
!  * Output buffer (ob): any text that is printed by PHP to be sent to the browser
!  * but captured by PHP for further manipulation.
!  * OB Callback function: A function that is called when the output buffer is
!  * filled with a html page. The contents of the page are passed to the function
!  * for processing.
!  *
!  * **** MAKE SURE YOU KEEP THE TEMPLATE TAG SECRET ****
!  */
! 
! /*
!  * EXAMPLE 1
!  * http://ocaoimh.ie/2013/10/21/shiny-new-dynamic-content-wp-super-cache/
!  * Replace a string in your theme with the dynamic content.
   *
   * dynamic_cache_test_init()
!  * This function is the first one to be called. This function hooks
   * dynamic_cache_test_template() to the WordPress action, wp_footer.
!  * This script is loaded before WordPress is and the add_action()
!  * function isn't defined at this time.
   * This init function hooks onto the cache action "add_cacheaction"
   * that fires after WordPress (and add_action) is loaded.
   *
   *
   * dynamic_cache_test_template_tag()
!  * This function hooks on to wp_footer and displays the secret template
   * tag that will be replaced by our dynamic content on each page view.
   *
   *
   * dynamic_cache_test_filter()
   * This function hooks on to the filter through which all the cached data
   * sent to visitors is sent.
!  * In this simple example the template tag is replaced by a html comment
!  * containing the text "Hello world at " and the current server time.
!  * If you want to use the output of a WordPress plugin or command you
!  * must enable "late init" on the settings page. Each time you reload
!  * the cached page this time will change. View the page source to examine
   * this text.
   *
   */
! define( 'DYNAMIC_CACHE_TEST_TAG', '' ); // Change this to a secret placeholder tag
! if ( DYNAMIC_CACHE_TEST_TAG != '' ) {
! 	function dynamic_cache_test_safety( $safety ) {
! 		return 1;
! 	}
! 	add_cacheaction( 'wpsc_cachedata_safety', 'dynamic_output_buffer_test_safety' );
! 
! 
! 	function dynamic_cache_test_filter( &$cachedata) {
! 		return str_replace( DYNAMIC_CACHE_TEST_TAG, "<!-- Hello world at " . date( 'H:i:s' ) . " -->", $cachedata );
! 	}
! 	add_cacheaction( 'wpsc_cachedata', 'dynamic_cache_test_filter' );
! 
! 	function dynamic_cache_test_template_tag() {
! 		echo DYNAMIC_CACHE_TEST_TAG; // This is the template tag
! 	}
! 
! 	function dynamic_cache_test_init() {
! 		add_action( 'wp_footer', 'dynamic_cache_test_template_tag' );
! 	}
! 	add_cacheaction( 'add_cacheaction', 'dynamic_cache_test_init' );
! }
  
  /*
!  * EXAMPLE 2
!  *
!  * This is going to be complicated. Hang on!
!  *
!  * When the cache file for a new page is generated the plugin uses an output
!  * buffer to capture the page. A callback function processes the buffer and
!  * writes to the cache file. The placeholder tag for any dynamic content has
!  * to be written to that cache file but also, it has to be replaced with
!  * dynamic content before the page is shown to the user.
!  * More on output buffers here: http://php.net/ob_start
!  *
!  * Unfortunately an extra output buffer is often required when capturing dynamic
!  * content such as sidebar widgets. Due to a quirk of the way PHP works it's
!  * not possible to have an output buffer run in an output buffer callback. That
!  * dynamic content has to be generated before the callback function is reached.
!  * The following error occurs when an output buffer is created in the
!  * callback function of another output buffer:
!  * "PHP Fatal error:  ob_start(): Cannot use output buffering in output buffering display handlers in..."
!  *
!  * In this example the function add_action() isn't available when this file is
!  * loaded so dynamic_output_buffer_init() is hooked on to the "add_cacheaction"
!  * cacheaction. That function then hooks dynamic_output_buffer_test() on to the
!  * familiar wp_footer action.
!  *
!  * The first time dynamic_output_buffer_test() runs it generates the dynamic
!  * content and captures it with ob_start() in the DYNAMIC_OB_TEXT constant.
!  *
!  * When the main WP Super Cache output buffer is ready the callback is called.
!  * This fires the wpsc_cachedata_safety filter. If the DYNAMIC_OB_TEXT constant
!  * is set, which means dynamic content is ready, then it returns 1, a signal
!  * that everything is ok.
!  * Finally, the wpsc_cachedata filter is run. The function
!  * dynamic_output_buffer_test() is hooked on to it. Since DYNAMIC_OB_TEXT is
!  * set it replaces the placeholder text with that constant.
!  * The resulting html is then sent to the browser.
!  *
!  * Already cached pages call the safety filter, and then the wpsc_cachedata
!  * filter so any hooked function must be ready to generate dynamic content. The
!  * very last line of dynamic_output_buffer_test() replaces the placeholder tag
!  * with the dynamic content in the cache file.
!  *
!  *
!  * Use an output buffer to capture dynamic content while the page is generated
!  * and insert into the right place:
!  * Remember to add the DYNAMIC_OUTPUT_BUFFER_TAG text (as defined below) to
!  * your theme where the dynamic content should be.
!  *
!  * dynamic_output_buffer_test() is a function that uses the wpsc_cachedata
!  * filter to add a small message and the current server time to every web
!  * page. The time increments on every reload.
!  *
   */
  
! define( 'DYNAMIC_OUTPUT_BUFFER_TAG', '' ); // Change this to a secret placeholder tag
  
! if ( DYNAMIC_OUTPUT_BUFFER_TAG != '' ) {
! 	function dynamic_output_buffer_test( &$cachedata = 0 ) {
! 		if ( defined( 'DYNAMIC_OB_TEXT' ) )
! 			return str_replace( DYNAMIC_OUTPUT_BUFFER_TAG, DYNAMIC_OB_TEXT, $cachedata );
! 
! 		ob_start();
! 		// call the sidebar function, do something dynamic
! 		echo "<p>This is a test. The current time on the server is: " . date( 'H:i:s' ) . "</p>";
! 		$text = ob_get_contents();
! 		ob_end_clean();
! 
! 		if ( $cachedata === 0 ) { // called directly from the theme so store the output
! 			define( 'DYNAMIC_OB_TEXT', $text );
! 		} else // called via the wpsc_cachedata filter. We only get here in cached pages in wp-cache-phase1.php
! 			return str_replace( DYNAMIC_OUTPUT_BUFFER_TAG, $text, $cachedata );
! 
! 	}
! 	add_cacheaction( 'wpsc_cachedata', 'dynamic_output_buffer_test' );
! 
! 	function dynamic_output_buffer_init() {
! 		add_action( 'wp_footer', 'dynamic_output_buffer_test' );
! 	}
! 	add_cacheaction( 'add_cacheaction', 'dynamic_output_buffer_init' );
! 
! 	function dynamic_output_buffer_test_safety( $safety ) {
! 		if ( defined( 'DYNAMIC_OB_TEXT' ) ) // this is set when you call dynamic_output_buffer_test() from the theme
! 			return 1; // ready to replace tag with dynamic content.
! 		else
! 			return 0; // tag cannot be replaced.
! 	}
! 	add_cacheaction( 'wpsc_cachedata_safety', 'dynamic_output_buffer_test_safety' );
  }
  ?>
diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/plugins/jetpack.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/plugins/jetpack.php
*** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/plugins/jetpack.php	2013-10-30 20:29:20.000000000 +0300
--- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/plugins/jetpack.php	2014-08-08 20:30:29.000000000 +0400
***************
*** 2,8 ****
  
  function wp_super_cache_jetpack_admin() {
  	global $cache_jetpack, $wp_cache_config_file, $valid_nonce;
! 	
  	$cache_jetpack = $cache_jetpack == '' ? '0' : $cache_jetpack;
  
  	if(isset($_POST['cache_jetpack']) && $valid_nonce) {
--- 2,8 ----
  
  function wp_super_cache_jetpack_admin() {
  	global $cache_jetpack, $wp_cache_config_file, $valid_nonce;
! 
  	$cache_jetpack = $cache_jetpack == '' ? '0' : $cache_jetpack;
  
  	if(isset($_POST['cache_jetpack']) && $valid_nonce) {
***************
*** 21,27 ****
  	}
  	$id = 'jetpack-section';
  	?>
! 	<fieldset id="<?php echo $id; ?>" class="options"> 
  	<h4><?php _e( 'Jetpack Mobile Theme', 'wp-super-cache' ); ?></h4>
  	<?php
  	if ( false == file_exists( dirname( WPCACHEHOME ) . '/jetpack/class.jetpack-user-agent.php' ) ) {
--- 21,27 ----
  	}
  	$id = 'jetpack-section';
  	?>
! 	<fieldset id="<?php echo $id; ?>" class="options">
  	<h4><?php _e( 'Jetpack Mobile Theme', 'wp-super-cache' ); ?></h4>
  	<?php
  	if ( false == file_exists( dirname( WPCACHEHOME ) . '/jetpack/class.jetpack-user-agent.php' ) ) {
***************
*** 39,45 ****
  				$status = __( "disabled" );
  			echo "<p><strong>" . sprintf( __( "Jetpack Mobile Theme support is now %s", 'wp-super-cache' ), $status ) . "</strong></p>";
  		}
! 		echo '<div class="submit"><input ' . SUBMITDISABLED . 'type="submit" value="' . __( 'Update', 'wp-super-cache' ) . '" /></div>';
  		wp_nonce_field('wp-cache');
  		?>
  		</form>
--- 39,45 ----
  				$status = __( "disabled" );
  			echo "<p><strong>" . sprintf( __( "Jetpack Mobile Theme support is now %s", 'wp-super-cache' ), $status ) . "</strong></p>";
  		}
! 		echo '<div class="submit"><input class="button-primary" ' . SUBMITDISABLED . 'type="submit" value="' . __( 'Update', 'wp-super-cache' ) . '" /></div>';
  		wp_nonce_field('wp-cache');
  		?>
  		</form>
diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/plugins/searchengine.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/plugins/searchengine.php
*** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/plugins/searchengine.php	2013-10-30 20:29:20.000000000 +0300
--- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/plugins/searchengine.php	2014-08-08 20:30:29.000000000 +0400
***************
*** 54,60 ****
  
  function wp_supercache_searchengine_admin() {
  	global $cache_no_adverts_for_friends, $wp_cache_config_file, $valid_nonce;
! 	
  	$cache_no_adverts_for_friends = $cache_no_adverts_for_friends == '' ? 'no' : $cache_no_adverts_for_friends;
  
  	if(isset($_POST['cache_no_adverts_for_friends']) && $valid_nonce) {
--- 54,60 ----
  
  function wp_supercache_searchengine_admin() {
  	global $cache_no_adverts_for_friends, $wp_cache_config_file, $valid_nonce;
! 
  	$cache_no_adverts_for_friends = $cache_no_adverts_for_friends == '' ? 'no' : $cache_no_adverts_for_friends;
  
  	if(isset($_POST['cache_no_adverts_for_friends']) && $valid_nonce) {
***************
*** 63,69 ****
  	}
  	$id = 'no_adverts_for_friends-section';
  	?>
! 		<fieldset id="<?php echo $id; ?>" class="options"> 
  		<h4><?php _e( 'No Adverts for Friends', 'wp-super-cache' ); ?></h4>
  		<form name="wp_manager" action="" method="post">
  		<label><input type="radio" name="cache_no_adverts_for_friends" value="1" <?php if( $cache_no_adverts_for_friends == 'yes' ) { echo 'checked="checked" '; } ?>/> <?php _e( 'Enabled', 'wp-super-cache' ); ?></label>
--- 63,69 ----
  	}
  	$id = 'no_adverts_for_friends-section';
  	?>
! 		<fieldset id="<?php echo $id; ?>" class="options">
  		<h4><?php _e( 'No Adverts for Friends', 'wp-super-cache' ); ?></h4>
  		<form name="wp_manager" action="" method="post">
  		<label><input type="radio" name="cache_no_adverts_for_friends" value="1" <?php if( $cache_no_adverts_for_friends == 'yes' ) { echo 'checked="checked" '; } ?>/> <?php _e( 'Enabled', 'wp-super-cache' ); ?></label>
***************
*** 77,83 ****
  				$status = __( "disabled" );
  			echo "<p><strong>" . sprintf( __( "No Adverts for Friends support is now %s", 'wp-super-cache' ), $status ) . "</strong></p>";
  		}
! 	echo '<div class="submit"><input ' . SUBMITDISABLED . 'type="submit" value="' . __( 'Update', 'wp-super-cache' ) . '" /></div>';
  	wp_nonce_field('wp-cache');
  	?>
  	</form>
--- 77,83 ----
  				$status = __( "disabled" );
  			echo "<p><strong>" . sprintf( __( "No Adverts for Friends support is now %s", 'wp-super-cache' ), $status ) . "</strong></p>";
  		}
! 	echo '<div class="submit"><input class="button-primary" ' . SUBMITDISABLED . 'type="submit" value="' . __( 'Update', 'wp-super-cache' ) . '" /></div>';
  	wp_nonce_field('wp-cache');
  	?>
  	</form>
diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/plugins/wptouch.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/plugins/wptouch.php
*** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/plugins/wptouch.php	2013-10-30 20:29:20.000000000 +0300
--- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/plugins/wptouch.php	2014-08-08 20:30:29.000000000 +0400
***************
*** 2,8 ****
  
  function wp_super_cache_wptouch_admin() {
  	global $cache_wptouch, $wp_cache_config_file, $valid_nonce;
! 	
  	$cache_wptouch = $cache_wptouch == '' ? '0' : $cache_wptouch;
  
  	if(isset($_POST['cache_wptouch']) && $valid_nonce) {
--- 2,8 ----
  
  function wp_super_cache_wptouch_admin() {
  	global $cache_wptouch, $wp_cache_config_file, $valid_nonce;
! 
  	$cache_wptouch = $cache_wptouch == '' ? '0' : $cache_wptouch;
  
  	if(isset($_POST['cache_wptouch']) && $valid_nonce) {
***************
*** 16,22 ****
  	}
  	$id = 'wptouch-section';
  	?>
! 		<fieldset id="<?php echo $id; ?>" class="options"> 
  		<h4><?php _e( 'WPTouch', 'wp-super-cache' ); ?></h4>
  		<form name="wp_manager" action="" method="post">
  		<label><input type="radio" name="cache_wptouch" value="1" <?php if( $cache_wptouch ) { echo 'checked="checked" '; } ?>/> <?php _e( 'Enabled', 'wp-super-cache' ); ?></label>
--- 16,22 ----
  	}
  	$id = 'wptouch-section';
  	?>
! 		<fieldset id="<?php echo $id; ?>" class="options">
  		<h4><?php _e( 'WPTouch', 'wp-super-cache' ); ?></h4>
  		<form name="wp_manager" action="" method="post">
  		<label><input type="radio" name="cache_wptouch" value="1" <?php if( $cache_wptouch ) { echo 'checked="checked" '; } ?>/> <?php _e( 'Enabled', 'wp-super-cache' ); ?></label>
***************
*** 30,36 ****
  				$status = __( "disabled" );
  			echo "<p><strong>" . sprintf( __( "WPTouch support is now %s", 'wp-super-cache' ), $status ) . "</strong></p>";
  		}
! 	echo '<div class="submit"><input ' . SUBMITDISABLED . 'type="submit" value="' . __( 'Update', 'wp-super-cache' ) . '" /></div>';
  	wp_nonce_field('wp-cache');
  	?>
  	</form>
--- 30,36 ----
  				$status = __( "disabled" );
  			echo "<p><strong>" . sprintf( __( "WPTouch support is now %s", 'wp-super-cache' ), $status ) . "</strong></p>";
  		}
! 	echo '<div class="submit"><input class="button-primary" ' . SUBMITDISABLED . 'type="submit" value="' . __( 'Update', 'wp-super-cache' ) . '" /></div>';
  	wp_nonce_field('wp-cache');
  	?>
  	</form>
***************
*** 57,63 ****
  	add_cacheaction( 'add_cacheaction', 'wp_super_cache_wptouch_exists' );
  }
  
! // disable mobile checking if 
  function wp_super_cache_maybe_disable_wptouch( $t ) {
  	global $cache_wptouch, $wptouch_exclude_ua;
  	if ( $cache_wptouch != 1 )
--- 57,63 ----
  	add_cacheaction( 'add_cacheaction', 'wp_super_cache_wptouch_exists' );
  }
  
! // disable mobile checking if
  function wp_super_cache_maybe_disable_wptouch( $t ) {
  	global $cache_wptouch, $wptouch_exclude_ua;
  	if ( $cache_wptouch != 1 )
***************
*** 96,102 ****
  
  function wp_super_cache_wptouch_prefixes( $prefixes ) {
  	return array(); // wptouch doesn't support UA prefixes
! } 
  
  function wp_super_cache_wptouch_cookie_check( $cache_key ) {
  	if ( false == isset( $_COOKIE[ 'wptouch_switch_toggle' ] ) )
--- 96,102 ----
  
  function wp_super_cache_wptouch_prefixes( $prefixes ) {
  	return array(); // wptouch doesn't support UA prefixes
! }
  
  function wp_super_cache_wptouch_cookie_check( $cache_key ) {
  	if ( false == isset( $_COOKIE[ 'wptouch_switch_toggle' ] ) )
diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/readme.txt /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/readme.txt
*** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/readme.txt	2013-10-30 20:29:20.000000000 +0300
--- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/readme.txt	2014-08-08 20:30:29.000000000 +0400
***************
*** 1,8 ****
  === WP Super Cache ===
  Contributors: donncha, automattic
  Tags: performance,caching,wp-cache,wp-super-cache,cache
! Tested up to: 3.6.1
! Stable tag: 1.4
  Requires at least: 3.0
  
  A very fast caching engine for WordPress that produces static html files.
--- 1,8 ----
  === WP Super Cache ===
  Contributors: donncha, automattic
  Tags: performance,caching,wp-cache,wp-super-cache,cache
! Tested up to: 3.9.2
! Stable tag: 1.4.2
  Requires at least: 3.0
  
  A very fast caching engine for WordPress that produces static html files.
***************
*** 56,65 ****
  
  == Upgrade Notice ==
  
! = 1.4 =
! Dynamic cached content now disabled by default. mfunc replaced by wpsc_cachedata filter. Read http://ocaoimh.ie/y/6j before updating if you use mfunc/mclude/dynamic-cached-content.
  
  == Changelog ==
  = 1.4 =
  * Replace legacy mfunc/mnclude/dynamic-cached-content functionality with a "wpsc_cachedata" cacheaction filter.
  * Added dynamic-cache-test.php plugin example wpsc_cachedata filter plugin.
--- 56,76 ----
  
  == Upgrade Notice ==
  
! = 1.4.2 =
! Fixed "acceptable file list" and no caching for GET queries bugs in last release.
  
  == Changelog ==
+ = 1.4.2 =
+ * Fixed "acceptable file list".
+ * Fixed "Don't cache GET requests" feature.
+ * Maybe fixed "304 not modified" problem for some users.
+ * Fixed some PHP warnings.
+ 
+ = 1.4.1 =
+ * Fixed XSS in settings page. Props Simon Waters, Surevine Limited.
+ * Fix to object cache so entries may now be deleted when posts updated. (object cache still experimental)
+ * Documentation updates and cleanup of settings page.
+ 
  = 1.4 =
  * Replace legacy mfunc/mnclude/dynamic-cached-content functionality with a "wpsc_cachedata" cacheaction filter.
  * Added dynamic-cache-test.php plugin example wpsc_cachedata filter plugin.
***************
*** 460,469 ****
  = How do I serve cached mobile pages to clients on small screens like phones and tablets? =
  
  You'll have to use a separate mobile plugin to render a page formatted for those visitors. The following plugins have been tested but YMMV depending on mobile client.
- * [WPTouch] (http://wordpress.org/extend/plugins/wptouch/)
- * [WordPress Mobile Edition] (http://wordpress.org/extend/plugins/wordpress-mobile-edition/)
- * [WordPress Mobile Pack] (http://wordpress.org/extend/plugins/wordpress-mobile-pack/) (can't have "Don't cache pages for known users." enabled)
  
  
  = Troubleshooting =
  
--- 471,481 ----
  = How do I serve cached mobile pages to clients on small screens like phones and tablets? =
  
  You'll have to use a separate mobile plugin to render a page formatted for those visitors. The following plugins have been tested but YMMV depending on mobile client.
  
+ * [Jetpack's Mobile Theme Module](http://wordpress.org/plugins/jetpack)
+ * [WPTouch](http://wordpress.org/plugins/wptouch/)
+ * [WordPress Mobile Edition](http://wordpress.org/plugins/wordpress-mobile-edition/)
+ * [WordPress Mobile Pack](http://wordpress.org/plugins/wordpress-mobile-pack/) (can't have "Don't cache pages for known users." enabled)
  
  = Troubleshooting =
  
***************
*** 508,514 ****
  26. If certain characters do not appear correctly on your website your server may not be configured correctly. You need to tell visitors what character set is used. Go to Settings->Reading and copy the 'Encoding for pages and feeds' value. Edit the .htaccess file with all your Supercache and WordPress rewrite rules and add this at the top, replacing CHARSET with the copied value. (for example, 'UTF-8')
  
  	`AddDefaultCharset CHARSET`
! 27. Use [Cron View](http://wordpress.org/extend/plugins/cron-view/) to help diagnose garbage collection and preload problems. Use the plugin to make sure jobs are scheduled and for what time. Look for the wp_cache_gc and wp_cache_full_preload_hook jobs.
  18. The error message, "WP Super Cache is installed but broken. The constant WPCACHEHOME must be set in the file wp-config.php and point at the WP Super Cache plugin directory." appears at the end of every page. You can delete wp-content/advanced-cache.php and reload the plugin settings page or edit wp-config.php and look for WPCACHEHOME and make sure it points at the wp-super-cache folder. This will normally be wp-content/plugins/wp-super-cache/ but you'll likely need the full path to that file (so it's easier to let the settings page fix it). If it is not correct the caching engine will not load.
  
  
--- 520,526 ----
  26. If certain characters do not appear correctly on your website your server may not be configured correctly. You need to tell visitors what character set is used. Go to Settings->Reading and copy the 'Encoding for pages and feeds' value. Edit the .htaccess file with all your Supercache and WordPress rewrite rules and add this at the top, replacing CHARSET with the copied value. (for example, 'UTF-8')
  
  	`AddDefaultCharset CHARSET`
! 27. Use [Cron View](http://wordpress.org/plugins/cron-view/) to help diagnose garbage collection and preload problems. Use the plugin to make sure jobs are scheduled and for what time. Look for the wp_cache_gc and wp_cache_full_preload_hook jobs.
  18. The error message, "WP Super Cache is installed but broken. The constant WPCACHEHOME must be set in the file wp-config.php and point at the WP Super Cache plugin directory." appears at the end of every page. You can delete wp-content/advanced-cache.php and reload the plugin settings page or edit wp-config.php and look for WPCACHEHOME and make sure it points at the wp-super-cache folder. This will normally be wp-content/plugins/wp-super-cache/ but you'll likely need the full path to that file (so it's easier to let the settings page fix it). If it is not correct the caching engine will not load.
  
  
***************
*** 516,522 ****
  
  A Content Delivery Network (CDN) is usually a network of computers situated around the world that will serve the content of your website faster by using servers close to you. Static files like images, Javascript and CSS files can be served through these networks to speed up how fast your site loads. You can also create a "poor man's CDN" by using a sub domain of your domain to serve static files too.
  
! [OSSDL CDN off-linker](http://wordpress.org/extend/plugins/ossdl-cdn-off-linker/) has been integrated into WP Super Cache to provide basic CDN support. It works by rewriting the URLs of files (excluding .php files) in wp-content and wp-includes on your server so they point at a different hostname. Many CDNs support [origin pull](http://www.google.com/search?hl=en&q=%22origin+pull%22). This means the CDN will download the file automatically from your server when it's first requested, and will continue to serve it for a configurable length of time before downloading it again from your server.
  
  Configure this on the "CDN" tab of the plugin settings page. This is an advanced technique and requires a basic understanding of how your webserver or CDNs work. Please be sure to clear the file cache after you configure the CDN.
  
--- 528,534 ----
  
  A Content Delivery Network (CDN) is usually a network of computers situated around the world that will serve the content of your website faster by using servers close to you. Static files like images, Javascript and CSS files can be served through these networks to speed up how fast your site loads. You can also create a "poor man's CDN" by using a sub domain of your domain to serve static files too.
  
! [OSSDL CDN off-linker](http://wordpress.org/plugins/ossdl-cdn-off-linker/) has been integrated into WP Super Cache to provide basic CDN support. It works by rewriting the URLs of files (excluding .php files) in wp-content and wp-includes on your server so they point at a different hostname. Many CDNs support [origin pull](http://www.google.com/search?hl=en&q=%22origin+pull%22). This means the CDN will download the file automatically from your server when it's first requested, and will continue to serve it for a configurable length of time before downloading it again from your server.
  
  Configure this on the "CDN" tab of the plugin settings page. This is an advanced technique and requires a basic understanding of how your webserver or CDNs work. Please be sure to clear the file cache after you configure the CDN.
  
***************
*** 536,542 ****
  See plugins/searchengine.php as an example I use for my [No Adverts for Friends](http://ocaoimh.ie/no-adverts-for-friends/) plugin.
  
  == Links ==
! [WP Widget Cache](http://wordpress.org/extend/plugins/wp-widget-cache/) is another caching plugin for WordPress. This plugin caches the output of widgets and may significantly speed up dynamic page generation times.
  
  == Updates ==
  Updates to the plugin will be posted here, to [Holy Shmoly!](http://ocaoimh.ie/) and the [WP Super Cache homepage](http://ocaoimh.ie/wp-super-cache/) will always link to the newest version.
--- 548,554 ----
  See plugins/searchengine.php as an example I use for my [No Adverts for Friends](http://ocaoimh.ie/no-adverts-for-friends/) plugin.
  
  == Links ==
! [WP Widget Cache](http://wordpress.org/plugins/wp-widget-cache/) is another caching plugin for WordPress. This plugin caches the output of widgets and may significantly speed up dynamic page generation times.
  
  == Updates ==
  Updates to the plugin will be posted here, to [Holy Shmoly!](http://ocaoimh.ie/) and the [WP Super Cache homepage](http://ocaoimh.ie/wp-super-cache/) will always link to the newest version.
diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/wp-cache-config-sample.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/wp-cache-config-sample.php
*** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/wp-cache-config-sample.php	2013-10-30 20:29:20.000000000 +0300
--- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/wp-cache-config-sample.php	2014-08-08 20:30:29.000000000 +0400
***************
*** 17,23 ****
  $file_prefix = 'wp-cache-';
  $ossdlcdn = 0;
  
! // Array of files that have 'wp-' but should still be cached 
  $cache_acceptable_files = array( 'wp-comments-popup.php', 'wp-links-opml.php', 'wp-locations.php' );
  
  $cache_rejected_uri = array('wp-.*\\.php', 'index\\.php');
--- 17,23 ----
  $file_prefix = 'wp-cache-';
  $ossdlcdn = 0;
  
! // Array of files that have 'wp-' but should still be cached
  $cache_acceptable_files = array( 'wp-comments-popup.php', 'wp-links-opml.php', 'wp-locations.php' );
  
  $cache_rejected_uri = array('wp-.*\\.php', 'index\\.php');
***************
*** 44,50 ****
  // change to relocate the supercache plugins directory
  $wp_cache_plugins_dir = WPCACHEHOME . 'plugins';
  // set to 1 to do garbage collection during normal process shutdown instead of wp-cron
! $wp_cache_shutdown_gc = 0; 
  $wp_super_cache_late_init = 0;
  
  // uncomment the next line to enable advanced debugging features
--- 44,50 ----
  // change to relocate the supercache plugins directory
  $wp_cache_plugins_dir = WPCACHEHOME . 'plugins';
  // set to 1 to do garbage collection during normal process shutdown instead of wp-cron
! $wp_cache_shutdown_gc = 0;
  $wp_super_cache_late_init = 0;
  
  // uncomment the next line to enable advanced debugging features
diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/wp-cache-phase1.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/wp-cache-phase1.php
*** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/wp-cache-phase1.php	2013-10-30 20:29:20.000000000 +0300
--- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/wp-cache-phase1.php	2014-08-08 20:30:29.000000000 +0400
***************
*** 47,53 ****
  
  do_cacheaction( 'cache_init' );
  
! if (!$cache_enabled || $_SERVER["REQUEST_METHOD"] == 'POST') 
  	return true;
  
  $file_expired = false;
--- 47,53 ----
  
  do_cacheaction( 'cache_init' );
  
! if (!$cache_enabled || $_SERVER["REQUEST_METHOD"] == 'POST')
  	return true;
  
  $file_expired = false;
***************
*** 77,85 ****
  if ( $wp_cache_object_cache ) {
  	if ( ! include_once( WP_CONTENT_DIR . '/object-cache.php' ) )
  		return;
! 	
  	wp_cache_init(); // Note: wp-settings.php calls wp_cache_init() which clobbers the object made here.
! 	
  	if ( ! is_object( $wp_object_cache ) )
  		return;
  }
--- 77,85 ----
  if ( $wp_cache_object_cache ) {
  	if ( ! include_once( WP_CONTENT_DIR . '/object-cache.php' ) )
  		return;
! 
  	wp_cache_init(); // Note: wp-settings.php calls wp_cache_init() which clobbers the object made here.
! 
  	if ( ! is_object( $wp_object_cache ) )
  		return;
  }
***************
*** 135,141 ****
  		return false;
  	}
  
! 	if ( $wp_cache_object_cache && wp_cache_get_cookies_values() == '' ) { 
  		if ( !empty( $_GET ) ) {
  			if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "Non empty GET request. Not serving request from object cache. " . print_r( $_GET, 1 ), 1 );
  			return false;
--- 135,141 ----
  		return false;
  	}
  
! 	if ( $wp_cache_object_cache && wp_cache_get_cookies_values() == '' ) {
  		if ( !empty( $_GET ) ) {
  			if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "Non empty GET request. Not serving request from object cache. " . print_r( $_GET, 1 ), 1 );
  			return false;
***************
*** 187,221 ****
  			$wp_cache_home_path = '/';
  
  		// make sure ending slashes are ok
! 		if ( $wp_cache_request_uri == $wp_cache_home_path || ( $wp_cache_slash_check && substr( $wp_cache_request_uri, -1 ) == '/' ) || ( $wp_cache_slash_check == 0 && substr( $wp_cache_request_uri, -1 ) != '/' ) ) { 
  
  			if ( $wp_cache_mfunc_enabled == 0 ) {
  				// get data from file
  				if ( $wp_cache_gzip_encoding ) {
  					if ( file_exists( $file . '.gz' ) ) {
  						$cachefiledata = file_get_contents( $file . '.gz' );
! 						if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "Fetched gzip static page data from supercache file using PHP. File: $file.gz" ); 
  					} else {
  						$cachefiledata = gzencode( file_get_contents( $file ), 6, FORCE_GZIP );
! 						if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "Fetched static page data from supercache file using PHP and gzipped it. File: $file" ); 
  					}
  				} else {
  					$cachefiledata = file_get_contents( $file );
! 					if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "Fetched static page data from supercache file using PHP. File: $file" ); 
  				}
  			} else {
  				// get dynamic data from filtered file
! 				$cachefiledata = do_cacheaction( 'wpsc_cachedata', file_get_contents( $file ) ); 
  				if ( $wp_cache_gzip_encoding ) {
  					$cachefiledata = gzencode( $cachefiledata, 6, FORCE_GZIP );
! 					if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "Fetched dynamic page data from supercache file using PHP and gzipped it. File: $file" ); 
  				} else {
! 					if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "Fetched dynamic page data from supercache file using PHP. File: $file" ); 
  				}
  			}
  
  			if ( isset( $wp_cache_disable_utf8 ) == false || $wp_cache_disable_utf8 == 0 )
! 				header( "Content-type: text/html; charset=UTF-8" ); 
  
  			header( "Vary: Accept-Encoding, Cookie" );
  			header( "Cache-Control: max-age=3, must-revalidate" );
--- 187,221 ----
  			$wp_cache_home_path = '/';
  
  		// make sure ending slashes are ok
! 		if ( $wp_cache_request_uri == $wp_cache_home_path || ( $wp_cache_slash_check && substr( $wp_cache_request_uri, -1 ) == '/' ) || ( $wp_cache_slash_check == 0 && substr( $wp_cache_request_uri, -1 ) != '/' ) ) {
  
  			if ( $wp_cache_mfunc_enabled == 0 ) {
  				// get data from file
  				if ( $wp_cache_gzip_encoding ) {
  					if ( file_exists( $file . '.gz' ) ) {
  						$cachefiledata = file_get_contents( $file . '.gz' );
! 						if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "Fetched gzip static page data from supercache file using PHP. File: $file.gz" );
  					} else {
  						$cachefiledata = gzencode( file_get_contents( $file ), 6, FORCE_GZIP );
! 						if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "Fetched static page data from supercache file using PHP and gzipped it. File: $file" );
  					}
  				} else {
  					$cachefiledata = file_get_contents( $file );
! 					if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "Fetched static page data from supercache file using PHP. File: $file" );
  				}
  			} else {
  				// get dynamic data from filtered file
! 				$cachefiledata = do_cacheaction( 'wpsc_cachedata', file_get_contents( $file ) );
  				if ( $wp_cache_gzip_encoding ) {
  					$cachefiledata = gzencode( $cachefiledata, 6, FORCE_GZIP );
! 					if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "Fetched dynamic page data from supercache file using PHP and gzipped it. File: $file" );
  				} else {
! 					if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "Fetched dynamic page data from supercache file using PHP. File: $file" );
  				}
  			}
  
  			if ( isset( $wp_cache_disable_utf8 ) == false || $wp_cache_disable_utf8 == 0 )
! 				header( "Content-type: text/html; charset=UTF-8" );
  
  			header( "Vary: Accept-Encoding, Cookie" );
  			header( "Cache-Control: max-age=3, must-revalidate" );
***************
*** 234,243 ****
  					$request = apache_request_headers();
  					$remote_mod_time = $request[ 'If-Modified-Since' ];
  				} else {
! 					$remote_mod_time = $_SERVER[ 'HTTP_IF_MODIFIED_SINCE' ];
  				}
  				$local_mod_time = gmdate("D, d M Y H:i:s",filemtime( $file )).' GMT';
! 				if ( $remote_mod_time == $local_mod_time ) {
  					header("HTTP/1.0 304 Not Modified");
  					exit();
  				}
--- 234,246 ----
  					$request = apache_request_headers();
  					$remote_mod_time = $request[ 'If-Modified-Since' ];
  				} else {
! 					if ( isset( $_SERVER[ 'HTTP_IF_MODIFIED_SINCE' ] ) )
! 						$remote_mod_time = $_SERVER[ 'HTTP_IF_MODIFIED_SINCE' ];
! 					else
! 						$remote_mod_time = 0;
  				}
  				$local_mod_time = gmdate("D, d M Y H:i:s",filemtime( $file )).' GMT';
! 				if ( $remote_mod_time != 0 && $remote_mod_time == $local_mod_time ) {
  					header("HTTP/1.0 304 Not Modified");
  					exit();
  				}
***************
*** 261,271 ****
  	}
  	foreach ($meta[ 'headers' ] as $t => $header) {
  		// godaddy fix, via http://blog.gneu.org/2008/05/wp-supercache-on-godaddy/ and http://www.littleredrails.com/blog/2007/09/08/using-wp-cache-on-godaddy-500-error/
! 		if( strpos( $header, 'Last-Modified:' ) === false ) 
  			header($header);
  	}
  	header( 'WP-Super-Cache: Served legacy cache file' );
! 	if ( $wp_cache_object_cache ) { 
  		if ( $cache ) {
  			if ( $ungzip ) {
  				// attempt to uncompress the cached file just in case it's gzipped
--- 264,274 ----
  	}
  	foreach ($meta[ 'headers' ] as $t => $header) {
  		// godaddy fix, via http://blog.gneu.org/2008/05/wp-supercache-on-godaddy/ and http://www.littleredrails.com/blog/2007/09/08/using-wp-cache-on-godaddy-500-error/
! 		if( strpos( $header, 'Last-Modified:' ) === false )
  			header($header);
  	}
  	header( 'WP-Super-Cache: Served legacy cache file' );
! 	if ( $wp_cache_object_cache ) {
  		if ( $cache ) {
  			if ( $ungzip ) {
  				// attempt to uncompress the cached file just in case it's gzipped
***************
*** 278,284 ****
  			}
  			if ( isset( $meta[ 'dynamic' ] ) && $meta[ 'dynamic' ] ) {
  				if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "Serving wp-cache dynamic file from object cache", 5 );
! 				echo do_cacheaction( 'wpsc_cachedata', $cache ); 
  			} else {
  				if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "Serving wp-cache static file from object cache", 5 );
  				echo $cache;
--- 281,287 ----
  			}
  			if ( isset( $meta[ 'dynamic' ] ) && $meta[ 'dynamic' ] ) {
  				if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "Serving wp-cache dynamic file from object cache", 5 );
! 				echo do_cacheaction( 'wpsc_cachedata', $cache );
  			} else {
  				if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "Serving wp-cache static file from object cache", 5 );
  				echo $cache;
***************
*** 296,307 ****
  				if ( $uncompressed ) {
  					if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "Uncompressed gzipped cache file from wp-cache", 1 );
  					unset( $cache );
! 					echo do_cacheaction( 'wpsc_cachedata', $uncompressed ); 
  				} else {
! 					echo do_cacheaction( 'wpsc_cachedata', $cache ); 
  				}
  			} else {
! 				echo do_cacheaction( 'wpsc_cachedata', file_get_contents( $cache_file ) ); 
  			}
  		} else {
  			if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "Serving wp-cache static file", 5 );
--- 299,310 ----
  				if ( $uncompressed ) {
  					if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "Uncompressed gzipped cache file from wp-cache", 1 );
  					unset( $cache );
! 					echo do_cacheaction( 'wpsc_cachedata', $uncompressed );
  				} else {
! 					echo do_cacheaction( 'wpsc_cachedata', $cache );
  				}
  			} else {
! 				echo do_cacheaction( 'wpsc_cachedata', file_get_contents( $cache_file ) );
  			}
  		} else {
  			if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "Serving wp-cache static file", 5 );
***************
*** 335,341 ****
  function wp_cache_postload() {
  	global $cache_enabled, $wp_super_cache_late_init, $wp_super_cache_debug;
  
! 	if ( !$cache_enabled || isset( $_GET[ 'preview' ] ) )
  		return true;
  
  	if ( isset( $wp_super_cache_late_init ) && true == $wp_super_cache_late_init ) {
--- 338,344 ----
  function wp_cache_postload() {
  	global $cache_enabled, $wp_super_cache_late_init, $wp_super_cache_debug;
  
! 	if ( !$cache_enabled )
  		return true;
  
  	if ( isset( $wp_super_cache_late_init ) && true == $wp_super_cache_late_init ) {
***************
*** 393,399 ****
  			if ( is_array( $func ) ) {
  				$value = $func[0]->{$func[1]}( $value );
  			} else {
! 				$value = $func( $value ); 
  			}
  		}
  	}
--- 396,402 ----
  			if ( is_array( $func ) ) {
  				$value = $func[0]->{$func[1]}( $value );
  			} else {
! 				$value = $func( $value );
  			}
  		}
  	}
***************
*** 414,420 ****
  	return "mobile";
  }
  
! // From http://wordpress.org/extend/plugins/wordpress-mobile-edition/ by Alex King
  function wp_cache_check_mobile( $cache_key ) {
  	global $wp_cache_mobile_enabled, $wp_cache_mobile_browsers, $wp_cache_mobile_prefixes;
  	if ( !isset( $wp_cache_mobile_enabled ) || false == $wp_cache_mobile_enabled )
--- 417,423 ----
  	return "mobile";
  }
  
! // From http://wordpress.org/plugins/wordpress-mobile-edition/ by Alex King
  function wp_cache_check_mobile( $cache_key ) {
  	global $wp_cache_mobile_enabled, $wp_cache_mobile_browsers, $wp_cache_mobile_prefixes;
  	if ( !isset( $wp_cache_mobile_enabled ) || false == $wp_cache_mobile_enabled )
***************
*** 451,457 ****
  			return $cache_key . '-' . wp_cache_mobile_group( $user_agent );
  		}
  	}
! 	if (isset($_SERVER['HTTP_X_WAP_PROFILE']) ) 
  		return $cache_key . '-' . $_SERVER['HTTP_X_WAP_PROFILE'];
  	if (isset($_SERVER['HTTP_PROFILE']) )
  		return $cache_key . '-' . $_SERVER['HTTP_PROFILE'];
--- 454,460 ----
  			return $cache_key . '-' . wp_cache_mobile_group( $user_agent );
  		}
  	}
! 	if (isset($_SERVER['HTTP_X_WAP_PROFILE']) )
  		return $cache_key . '-' . $_SERVER['HTTP_X_WAP_PROFILE'];
  	if (isset($_SERVER['HTTP_PROFILE']) )
  		return $cache_key . '-' . $_SERVER['HTTP_PROFILE'];
***************
*** 589,595 ****
  
  	if ( $dir != '' && isset( $wp_cache_mobile_enabled ) && $wp_cache_mobile_enabled ) {
  		// open directory and look for index-*.html files
! 		if ( is_dir( $dir ) && $dh = opendir( $dir ) ) {
  			while ( ( $file = readdir( $dh ) ) !== false ) {
  				if ( substr( $file, 0, 6 ) == 'index-' && strpos( $file, '.html' ) )
  					$filenames[] = $file;
--- 592,598 ----
  
  	if ( $dir != '' && isset( $wp_cache_mobile_enabled ) && $wp_cache_mobile_enabled ) {
  		// open directory and look for index-*.html files
! 		if ( is_dir( $dir ) && $dh = @opendir( $dir ) ) {
  			while ( ( $file = readdir( $dh ) ) !== false ) {
  				if ( substr( $file, 0, 6 ) == 'index-' && strpos( $file, '.html' ) )
  					$filenames[] = $file;
***************
*** 657,663 ****
  
  function wp_supercache_cache_for_admins() {
  	if ( isset( $_GET[ 'preview' ] ) || function_exists( "is_admin" ) && is_admin() )
! 		return $cookies;
  
  	if ( false == do_cacheaction( 'wp_supercache_remove_cookies', true ) )
  		return true;
--- 660,666 ----
  
  function wp_supercache_cache_for_admins() {
  	if ( isset( $_GET[ 'preview' ] ) || function_exists( "is_admin" ) && is_admin() )
! 		return true;
  
  	if ( false == do_cacheaction( 'wp_supercache_remove_cookies', true ) )
  		return true;
diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/wp-cache-phase2.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/wp-cache-phase2.php
*** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/wp-cache-phase2.php	2013-10-30 20:29:20.000000000 +0300
--- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/wp-cache-phase2.php	2014-08-08 20:30:29.000000000 +0400
***************
*** 2,8 ****
  
  function wp_cache_phase2() {
  	global $cache_filename, $cache_acceptable_files, $wp_cache_gzip_encoding, $super_cache_enabled, $cache_rebuild_files, $wp_cache_last_gc;
! 	global $cache_max_time, $wp_cache_request_uri, $super_cache_enabled, $wp_cache_object_cache, $cache_time_interval, $wp_cache_no_cache_for_get;
  	global $cache_enabled, $wp_cache_gmt_offset, $wp_cache_blog_charset, $cache_schedule_type, $cache_scheduled_time, $cache_schedule_interval;
  
  	if ( $cache_enabled == false ) {
--- 2,8 ----
  
  function wp_cache_phase2() {
  	global $cache_filename, $cache_acceptable_files, $wp_cache_gzip_encoding, $super_cache_enabled, $cache_rebuild_files, $wp_cache_last_gc;
! 	global $cache_max_time, $wp_cache_request_uri, $super_cache_enabled, $wp_cache_object_cache, $cache_time_interval;
  	global $cache_enabled, $wp_cache_gmt_offset, $wp_cache_blog_charset, $cache_schedule_type, $cache_scheduled_time, $cache_schedule_interval;
  
  	if ( $cache_enabled == false ) {
***************
*** 46,90 ****
  		do_cacheaction( 'add_cacheaction' );
  	}
  
- 	if ( $wp_cache_no_cache_for_get && false == empty( $_GET ) && false == defined( 'DOING_CRON' ) ) {
- 		if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "Non empty GET request. Caching disabled on settings page. " . print_r( $_GET, 1 ), 1 );
- 		return false;
- 	}
- 
  	if ( is_admin() ) {
  		if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Not caching wp-admin requests.', 5 );
  		return false;
  	}
  
- 	if ( $_SERVER["REQUEST_METHOD"] == 'POST' || !empty( $_POST ) || get_option( 'gzipcompression' ) ) {
- 		if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Not caching POST request.', 5 );
- 		return false;
- 	}
- 
- 	if ( $wp_cache_object_cache && !empty( $_GET ) ) {
- 		if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Not caching GET request while object cache storage enabled.', 5 );
- 		return false;
- 	}
- 
- 	if ( isset( $_GET[ 'preview' ] ) ) {
- 		if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Not caching preview post.', 2 );
- 		return false;
- 	}
- 
  	if ( !empty( $_GET ) ) {
  		if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Supercache caching disabled. Only using wp-cache. Non empty GET request. ' . print_r( $_GET, 1 ), 5 );
  		$super_cache_enabled = false;
  	}
  
- 	$script = basename($_SERVER['PHP_SELF']);
- 	if (!in_array($script, $cache_acceptable_files) && wp_cache_is_rejected($wp_cache_request_uri)) {
- 		if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'URI rejected. Not Caching', 2 );
- 		return false;
- 	}
- 	if (wp_cache_user_agent_is_rejected()) {
- 		if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( "USER AGENT ({$_SERVER[ 'HTTP_USER_AGENT' ]}) rejected. Not Caching", 4 );
- 		return;
- 	}
  	if($wp_cache_gzip_encoding)
  		header('Vary: Accept-Encoding, Cookie');
  	else
--- 46,61 ----
***************
*** 268,320 ****
  }
  
  function wp_cache_ob_callback( $buffer ) {
! 	global $wp_cache_pages, $wp_query, $wp_super_cache_query;
  	$buffer = apply_filters( 'wp_cache_ob_callback_filter', $buffer );
- 	if( defined( 'DONOTCACHEPAGE' ) ) {
- 		if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'DONOTCACHEPAGE defined. Caching disabled.', 2 );
- 		return $buffer;
- 	}
  
! 	if ( isset( $wp_cache_pages[ 'single' ] ) && $wp_cache_pages[ 'single' ] == 1 && isset( $wp_super_cache_query[ 'is_single' ] ) ) {
  		if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Not caching single post.', 2 );
! 		return $buffer;
  	} elseif ( isset( $wp_cache_pages[ 'pages' ] ) && $wp_cache_pages[ 'pages' ] == 1 && isset( $wp_super_cache_query[ 'is_page' ] ) ) {
  		if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Not caching single page.', 2 );
! 		return $buffer;
  	} elseif ( isset( $wp_cache_pages[ 'archives' ] ) && $wp_cache_pages[ 'archives' ] == 1 && isset( $wp_super_cache_query[ 'is_archive' ] ) ) {
  		if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Not caching archive page.', 2 );
! 		return $buffer;
  	} elseif ( isset( $wp_cache_pages[ 'tag' ] ) && $wp_cache_pages[ 'tag' ] == 1 && isset( $wp_super_cache_query[ 'is_tag' ] ) ) {
  		if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Not caching tag page.', 2 );
! 		return $buffer;
  	} elseif ( isset( $wp_cache_pages[ 'category' ] ) && $wp_cache_pages[ 'category' ] == 1 && isset( $wp_super_cache_query[ 'is_category' ] ) ) {
  		if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Not caching category page.', 2 );
! 		return $buffer;
  	} elseif ( isset( $wp_cache_pages[ 'frontpage' ] ) && $wp_cache_pages[ 'frontpage' ] == 1 && isset( $wp_super_cache_query[ 'is_front_page' ] ) ) {
  		if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Not caching front page.', 2 );
! 		return $buffer;
  	} elseif ( isset( $wp_cache_pages[ 'home' ] ) && $wp_cache_pages[ 'home' ] == 1 && isset( $wp_super_cache_query[ 'is_home' ] ) ) {
  		if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Not caching home page.', 2 );
! 		return $buffer;
  	} elseif ( isset( $wp_cache_pages[ 'search' ] ) && $wp_cache_pages[ 'search' ] == 1 && isset( $wp_super_cache_query[ 'is_search' ] ) ) {
  		if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Not caching search page.', 2 );
! 		return $buffer;
  	} elseif ( isset( $wp_cache_pages[ 'author' ] ) && $wp_cache_pages[ 'author' ] == 1 && isset( $wp_super_cache_query[ 'is_author' ] ) ) {
  		if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Not caching author page.', 2 );
! 		return $buffer;
  	} elseif ( isset( $wp_cache_pages[ 'feed' ] ) && $wp_cache_pages[ 'feed' ] == 1 && isset( $wp_super_cache_query[ 'is_feed' ] ) ) {
  		if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Not caching feed.', 2 );
! 		return $buffer;
  	}
  
  	if ( !isset( $wp_query ) )
  		if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'wp_cache_ob_callback: WARNING! $query not defined but the plugin has worked around that problem.', 4 );
  
! 	if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Output buffer callback', 4 );
  
! 	$buffer = wp_cache_get_ob( $buffer );
! 	wp_cache_shutdown_callback();
! 	return $buffer;
  }
  
  function wp_cache_append_tag( &$buffer ) {
--- 239,317 ----
  }
  
  function wp_cache_ob_callback( $buffer ) {
! 	global $wp_cache_pages, $wp_query, $wp_super_cache_query, $cache_acceptable_files, $wp_cache_no_cache_for_get, $wp_cache_object_cache, $wp_cache_request_uri;
  	$buffer = apply_filters( 'wp_cache_ob_callback_filter', $buffer );
  
! 	$script = basename($_SERVER['PHP_SELF']);
! 
! 	// All the things that can stop a page being cached
! 	$cache_this_page = true;
! 	if ( defined( 'DONOTCACHEPAGE' ) ) {
! 		if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'DONOTCACHEPAGE defined. Caching disabled.', 2 );
! 		$cache_this_page = false;
! 	} elseif ( $wp_cache_no_cache_for_get && false == empty( $_GET ) && false == defined( 'DOING_CRON' ) ) {
! 		if ( isset( $wp_super_cache_debug ) && $wp_super_cache_debug ) wp_cache_debug( "Non empty GET request. Caching disabled on settings page. " . print_r( $_GET, 1 ), 1 );
! 		$cache_this_page = false;
! 	} elseif ( $_SERVER["REQUEST_METHOD"] == 'POST' || !empty( $_POST ) || get_option( 'gzipcompression' ) ) {
! 		if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Not caching POST request.', 5 );
! 		$cache_this_page = false;
! 	} elseif ( $wp_cache_object_cache && !empty( $_GET ) ) {
! 		if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Not caching GET request while object cache storage enabled.', 5 );
! 		$cache_this_page = false;
! 	} elseif ( isset( $_GET[ 'preview' ] ) ) {
! 		if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Not caching preview post.', 2 );
! 		$cache_this_page = false;
! 	} elseif ( !in_array($script, $cache_acceptable_files) && wp_cache_is_rejected( $wp_cache_request_uri ) ) {
! 		if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'URI rejected. Not Caching', 2 );
! 		$cache_this_page = false;
! 	} elseif ( wp_cache_user_agent_is_rejected() ) {
! 		if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( "USER AGENT ({$_SERVER[ 'HTTP_USER_AGENT' ]}) rejected. Not Caching", 4 );
! 		$cache_this_page = false;
! 	} elseif ( isset( $wp_cache_pages[ 'single' ] ) && $wp_cache_pages[ 'single' ] == 1 && isset( $wp_super_cache_query[ 'is_single' ] ) ) {
  		if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Not caching single post.', 2 );
! 		$cache_this_page = false;
  	} elseif ( isset( $wp_cache_pages[ 'pages' ] ) && $wp_cache_pages[ 'pages' ] == 1 && isset( $wp_super_cache_query[ 'is_page' ] ) ) {
  		if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Not caching single page.', 2 );
! 		$cache_this_page = false;
  	} elseif ( isset( $wp_cache_pages[ 'archives' ] ) && $wp_cache_pages[ 'archives' ] == 1 && isset( $wp_super_cache_query[ 'is_archive' ] ) ) {
  		if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Not caching archive page.', 2 );
! 		$cache_this_page = false;
  	} elseif ( isset( $wp_cache_pages[ 'tag' ] ) && $wp_cache_pages[ 'tag' ] == 1 && isset( $wp_super_cache_query[ 'is_tag' ] ) ) {
  		if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Not caching tag page.', 2 );
! 		$cache_this_page = false;
  	} elseif ( isset( $wp_cache_pages[ 'category' ] ) && $wp_cache_pages[ 'category' ] == 1 && isset( $wp_super_cache_query[ 'is_category' ] ) ) {
  		if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Not caching category page.', 2 );
! 		$cache_this_page = false;
  	} elseif ( isset( $wp_cache_pages[ 'frontpage' ] ) && $wp_cache_pages[ 'frontpage' ] == 1 && isset( $wp_super_cache_query[ 'is_front_page' ] ) ) {
  		if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Not caching front page.', 2 );
! 		$cache_this_page = false;
  	} elseif ( isset( $wp_cache_pages[ 'home' ] ) && $wp_cache_pages[ 'home' ] == 1 && isset( $wp_super_cache_query[ 'is_home' ] ) ) {
  		if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Not caching home page.', 2 );
! 		$cache_this_page = false;
  	} elseif ( isset( $wp_cache_pages[ 'search' ] ) && $wp_cache_pages[ 'search' ] == 1 && isset( $wp_super_cache_query[ 'is_search' ] ) ) {
  		if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Not caching search page.', 2 );
! 		$cache_this_page = false;
  	} elseif ( isset( $wp_cache_pages[ 'author' ] ) && $wp_cache_pages[ 'author' ] == 1 && isset( $wp_super_cache_query[ 'is_author' ] ) ) {
  		if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Not caching author page.', 2 );
! 		$cache_this_page = false;
  	} elseif ( isset( $wp_cache_pages[ 'feed' ] ) && $wp_cache_pages[ 'feed' ] == 1 && isset( $wp_super_cache_query[ 'is_feed' ] ) ) {
  		if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Not caching feed.', 2 );
! 		$cache_this_page = false;
  	}
  
  	if ( !isset( $wp_query ) )
  		if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'wp_cache_ob_callback: WARNING! $query not defined but the plugin has worked around that problem.', 4 );
  
! 	if ( $cache_this_page ) {
  
! 		if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'Output buffer callback', 4 );
! 
! 		$buffer = wp_cache_get_ob( $buffer );
! 		wp_cache_shutdown_callback();
! 		return $buffer;
! 	} else {
! 		return wp_cache_maybe_dynamic( $buffer );
! 	}
  }
  
  function wp_cache_append_tag( &$buffer ) {
***************
*** 347,352 ****
--- 344,364 ----
  	$buffer .= "\n<!-- $text -->";
  }
  
+ /* 
+  * If dynamic caching is enabled then run buffer through wpsc_cachedata filter before returning it.
+  * or we'll return template tags to visitors.
+  */
+ function wp_cache_maybe_dynamic( &$buffer ) {
+ 	global $wp_cache_mfunc_enabled;
+ 	if ( $wp_cache_mfunc_enabled == 1 && do_cacheaction( 'wpsc_cachedata_safety', 0 ) === 1 ) {
+ 		if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'wp_cache_maybe_dynamic: filtered $buffer through wpsc_cachedata', 4 );
+ 		return do_cacheaction( 'wpsc_cachedata', $buffer ); // dynamic content for display
+ 	} else {
+ 		if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'wp_cache_maybe_dynamic: returned $buffer', 4 );
+ 		return $buffer;
+ 	}
+ }
+ 
  function wp_cache_get_ob(&$buffer) {
  	global $cache_enabled, $cache_path, $cache_filename, $meta_file, $wp_start_time, $supercachedir;
  	global $new_cache, $wp_cache_meta, $file_expired, $blog_id, $cache_compression;
***************
*** 393,399 ****
  	}
  	
  	if( !$new_cache )
! 		return $buffer;
  
  	$duration = wp_cache_microtime_diff($wp_start_time, microtime());
  	$duration = sprintf("%0.3f", $duration);
--- 405,411 ----
  	}
  	
  	if( !$new_cache )
! 		return wp_cache_maybe_dynamic( $buffer );
  
  	$duration = wp_cache_microtime_diff($wp_start_time, microtime());
  	$duration = sprintf("%0.3f", $duration);
***************
*** 402,408 ****
  	if( !wp_cache_writers_entry() ) {
  		wp_cache_add_to_buffer( $buffer, "Page not cached by WP Super Cache. Could not get mutex lock." );
  		if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( "Could not get mutex lock. Not caching.", 1 );
! 		return $buffer;
  	}
  
  	if ( $wp_cache_not_logged_in && is_feed() ) {
--- 414,420 ----
  	if( !wp_cache_writers_entry() ) {
  		wp_cache_add_to_buffer( $buffer, "Page not cached by WP Super Cache. Could not get mutex lock." );
  		if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( "Could not get mutex lock. Not caching.", 1 );
! 		return wp_cache_maybe_dynamic( $buffer );
  	}
  
  	if ( $wp_cache_not_logged_in && is_feed() ) {
***************
*** 455,465 ****
  			global $wp_super_cache_late_init;
  			if ( false == isset( $wp_super_cache_late_init ) || ( isset( $wp_super_cache_late_init ) && $wp_super_cache_late_init == 0 ) )
  				wp_cache_add_to_buffer( $buffer, 'Super Cache dynamic page detected but $wp_super_cache_late_init not set. See the readme.txt for further details.' );
- 			if ( do_cacheaction( 'wpsc_cachedata_safety', 0 ) === 1 )
- 				return do_cacheaction( 'wpsc_cachedata', $buffer ); // dynamic content for display
  		}
  
! 		return $buffer;
  	}
  
  	if( @is_dir( $dir ) == false )
--- 467,475 ----
  			global $wp_super_cache_late_init;
  			if ( false == isset( $wp_super_cache_late_init ) || ( isset( $wp_super_cache_late_init ) && $wp_super_cache_late_init == 0 ) )
  				wp_cache_add_to_buffer( $buffer, 'Super Cache dynamic page detected but $wp_super_cache_late_init not set. See the readme.txt for further details.' );
  		}
  
! 		return wp_cache_maybe_dynamic( $buffer );
  	}
  
  	if( @is_dir( $dir ) == false )
***************
*** 474,480 ****
  				if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( "Error. Supercache could not write to " . str_replace( ABSPATH, '', $cache_path ) . $cache_filename, 1 );
  				wp_cache_add_to_buffer( $buffer, "File not cached! Super Cache Couldn't write to: " . str_replace( ABSPATH, '', $cache_path ) . $cache_filename );
  				wp_cache_writers_exit();
! 				return $buffer;
  			}
  		} else {
  			$user_info = wp_cache_get_cookies_values();
--- 484,490 ----
  				if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( "Error. Supercache could not write to " . str_replace( ABSPATH, '', $cache_path ) . $cache_filename, 1 );
  				wp_cache_add_to_buffer( $buffer, "File not cached! Super Cache Couldn't write to: " . str_replace( ABSPATH, '', $cache_path ) . $cache_filename );
  				wp_cache_writers_exit();
! 				return wp_cache_maybe_dynamic( $buffer );
  			}
  		} else {
  			$user_info = wp_cache_get_cookies_values();
***************
*** 490,496 ****
  					@fclose( $fr );
  					@unlink( $tmp_wpcache_filename );
  					wp_cache_writers_exit();
! 					return $buffer;
  				} elseif ( ( !isset( $wp_cache_mfunc_enabled ) || $wp_cache_mfunc_enabled == 0 ) && $cache_compression ) { // don't want to store compressed files if using dynamic content
  					$gz = @fopen( $tmp_cache_filename . ".gz", 'w');
  					if (!$gz) {
--- 500,506 ----
  					@fclose( $fr );
  					@unlink( $tmp_wpcache_filename );
  					wp_cache_writers_exit();
! 					return wp_cache_maybe_dynamic( $buffer );
  				} elseif ( ( !isset( $wp_cache_mfunc_enabled ) || $wp_cache_mfunc_enabled == 0 ) && $cache_compression ) { // don't want to store compressed files if using dynamic content
  					$gz = @fopen( $tmp_cache_filename . ".gz", 'w');
  					if (!$gz) {
***************
*** 501,507 ****
  						@fclose( $fr2 );
  						@unlink( $tmp_cache_filename );
  						wp_cache_writers_exit();
! 						return $buffer;
  					}
  				}
  			}
--- 511,517 ----
  						@fclose( $fr2 );
  						@unlink( $tmp_cache_filename );
  						wp_cache_writers_exit();
! 						return wp_cache_maybe_dynamic( $buffer );
  					}
  				}
  			}
***************
*** 1021,1027 ****
  
  /* check if we want to clear out all cached files on post updates, otherwise call standard wp_cache_post_change() */
  function wp_cache_post_edit($post_id) {
! 	global $wp_cache_clear_on_post_edit, $cache_path, $blog_cache_dir;
  	static $last_post_edited = -1;
  
  	if ( $post_id == $last_post_edited ) {
--- 1031,1037 ----
  
  /* check if we want to clear out all cached files on post updates, otherwise call standard wp_cache_post_change() */
  function wp_cache_post_edit($post_id) {
! 	global $wp_cache_clear_on_post_edit, $cache_path, $blog_cache_dir, $wp_cache_object_cache;
  	static $last_post_edited = -1;
  
  	if ( $post_id == $last_post_edited ) {
***************
*** 1097,1103 ****
  	$post = get_post( $post_id );
  	// Some users are inexplicibly seeing this error on scheduled posts. 
  	// define this constant to disable the post status check.
! 	if ( false == defined( 'WPSCFORCEUPDATE' ) && $post->post_status != 'publish' ) {
  		if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( "wp_cache_post_change: draft post, not deleting any cache files.", 4 );
  		return $post_id;
  	}
--- 1107,1113 ----
  	$post = get_post( $post_id );
  	// Some users are inexplicibly seeing this error on scheduled posts. 
  	// define this constant to disable the post status check.
! 	if ( false == defined( 'WPSCFORCEUPDATE' ) && is_object( $post ) && $post->post_status != 'publish' ) {
  		if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( "wp_cache_post_change: draft post, not deleting any cache files.", 4 );
  		return $post_id;
  	}
diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/wp-cache.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/wp-cache.php
*** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/wp-cache.php	2013-10-30 20:29:20.000000000 +0300
--- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/wp-cache.php	2014-08-08 20:30:29.000000000 +0400
***************
*** 1,15 ****
  <?php
  /*
  Plugin Name: WP Super Cache
! Plugin URI: http://ocaoimh.ie/wp-super-cache/
  Description: Very fast caching plugin for WordPress.
! Version: 1.4
! Author: Donncha O Caoimh
! Author URI: http://ocaoimh.ie/
  */
  
! /*  Copyright 2005-2006  Ricardo Galli Granada  (email : gallir@uib.es)
!     Copyright 2007-2013 Donncha Ó Caoimh (http://ocaoimh.ie/) and many others.
  
      This program is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published by
--- 1,17 ----
  <?php
  /*
  Plugin Name: WP Super Cache
! Plugin URI: http://wordpress.org/plugins/wp-super-cache/
  Description: Very fast caching plugin for WordPress.
! Version: 1.4.2
! Author: Automattic
! Author URI: http://automattic.com/
! License: GPL2+
! Text Domain: wp-super-cache
  */
  
! /*
!     Copyright Automattic and many other contributors.
  
      This program is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published by
***************
*** 76,89 ****
  add_action( 'template_redirect', 'wp_cache_set_home' );
  
  
! // OSSDL CDN plugin (http://wordpress.org/extend/plugins/ossdl-cdn-off-linker/)
  include_once( WPCACHEHOME . 'ossdl-cdn.php' );
  
  // from legolas558 d0t users dot sf dot net at http://www.php.net/is_writable
  function is_writeable_ACLSafe($path) {
  
  	// PHP's is_writable does not work with Win32 NTFS
! 		 
  	if ($path{strlen($path)-1}=='/') // recursively return a temporary file path
  		return is_writeable_ACLSafe($path.uniqid(mt_rand()).'.tmp');
  	else if (is_dir($path))
--- 78,91 ----
  add_action( 'template_redirect', 'wp_cache_set_home' );
  
  
! // OSSDL CDN plugin (http://wordpress.org/plugins/ossdl-cdn-off-linker/)
  include_once( WPCACHEHOME . 'ossdl-cdn.php' );
  
  // from legolas558 d0t users dot sf dot net at http://www.php.net/is_writable
  function is_writeable_ACLSafe($path) {
  
  	// PHP's is_writable does not work with Win32 NTFS
! 
  	if ($path{strlen($path)-1}=='/') // recursively return a temporary file path
  		return is_writeable_ACLSafe($path.uniqid(mt_rand()).'.tmp');
  	else if (is_dir($path))
***************
*** 170,181 ****
  
  	if ( !wpsupercache_site_admin() )
  		return false;
! 	
  	if ( version_compare( PHP_VERSION, '5.3.0', '<' ) && ( 1 == ini_get( 'safe_mode' ) || "on" == strtolower( ini_get( 'safe_mode' ) ) ) ) {
  		echo '<div id="message" class="updated fade"><h3>' . __( 'Warning! PHP Safe Mode Enabled!', 'wp-super-cache' ) . '</h3><p>' .
  			__( 'You may experience problems running this plugin because SAFE MODE is enabled.', 'wp-super-cache' ) . ' ';
! 		
! 		
  		if( !ini_get( 'safe_mode_gid' ) ) {
  			_e( 'Your server is set up to check the owner of PHP scripts before allowing them to read and write files.', 'wp-super-cache' ) . " ";
  			printf( __( 'You or an administrator may be able to make it work by changing the group owner of the plugin scripts to match that of the web server user. The group owner of the %s/cache/ directory must also be changed. See the <a href="http://php.net/features.safe-mode">safe mode manual page</a> for further details.', 'wp-super-cache' ), WP_CONTENT_DIR );
--- 172,183 ----
  
  	if ( !wpsupercache_site_admin() )
  		return false;
! 
  	if ( version_compare( PHP_VERSION, '5.3.0', '<' ) && ( 1 == ini_get( 'safe_mode' ) || "on" == strtolower( ini_get( 'safe_mode' ) ) ) ) {
  		echo '<div id="message" class="updated fade"><h3>' . __( 'Warning! PHP Safe Mode Enabled!', 'wp-super-cache' ) . '</h3><p>' .
  			__( 'You may experience problems running this plugin because SAFE MODE is enabled.', 'wp-super-cache' ) . ' ';
! 
! 
  		if( !ini_get( 'safe_mode_gid' ) ) {
  			_e( 'Your server is set up to check the owner of PHP scripts before allowing them to read and write files.', 'wp-super-cache' ) . " ";
  			printf( __( 'You or an administrator may be able to make it work by changing the group owner of the plugin scripts to match that of the web server user. The group owner of the %s/cache/ directory must also be changed. See the <a href="http://php.net/features.safe-mode">safe mode manual page</a> for further details.', 'wp-super-cache' ), WP_CONTENT_DIR );
***************
*** 201,207 ****
  			if( substr( $ip, 0, 3 ) == '127' || substr( $ip, 0, 7 ) == '192.168' ) {
  				?><div id="message" class="updated fade"><h3><?php printf( __( 'Warning! Your hostname "%s" resolves to %s', 'wp-super-cache' ), $hostname, $ip ); ?></h3>
  					<p><?php printf( __( 'Your server thinks your hostname resolves to %s. Some services such as garbage collection by this plugin, and WordPress scheduled posts may not operate correctly.', 'wp-super-cache' ), $ip ); ?></p>
! 					<p><?php printf( __( 'Please see entry 16 in the <a href="%s">Troubleshooting section</a> of the readme.txt', 'wp-super-cache' ), 'http://wordpress.org/extend/plugins/wp-super-cache/faq/' ); ?></p>
  					</div>
  					<?php
  					return false;
--- 203,209 ----
  			if( substr( $ip, 0, 3 ) == '127' || substr( $ip, 0, 7 ) == '192.168' ) {
  				?><div id="message" class="updated fade"><h3><?php printf( __( 'Warning! Your hostname "%s" resolves to %s', 'wp-super-cache' ), $hostname, $ip ); ?></h3>
  					<p><?php printf( __( 'Your server thinks your hostname resolves to %s. Some services such as garbage collection by this plugin, and WordPress scheduled posts may not operate correctly.', 'wp-super-cache' ), $ip ); ?></p>
! 					<p><?php printf( __( 'Please see entry 16 in the <a href="%s">Troubleshooting section</a> of the readme.txt', 'wp-super-cache' ), 'http://wordpress.org/plugins/wp-super-cache/faq/' ); ?></p>
  					</div>
  					<?php
  					return false;
***************
*** 215,221 ****
  				if( $cron[ 'response' ][ 'code' ] == '404' ) {
  					?><div id="message" class="updated fade"><h3>Warning! wp-cron.php not found!</h3>
  					<p><?php _e( 'Unfortunately WordPress cannot find the file wp-cron.php. This script is required for the the correct operation of garbage collection by this plugin, WordPress scheduled posts as well as other critical activities.', 'wp-super-cache' ); ?></p>
! 					<p><?php printf( __( 'Please see entry 16 in the <a href="%s">Troubleshooting section</a> of the readme.txt', 'wp-super-cache' ), 'http://wordpress.org/extend/plugins/wp-super-cache/faq/' ); ?></p>
  					</div>
  					<?php
  				} else {
--- 217,223 ----
  				if( $cron[ 'response' ][ 'code' ] == '404' ) {
  					?><div id="message" class="updated fade"><h3>Warning! wp-cron.php not found!</h3>
  					<p><?php _e( 'Unfortunately WordPress cannot find the file wp-cron.php. This script is required for the the correct operation of garbage collection by this plugin, WordPress scheduled posts as well as other critical activities.', 'wp-super-cache' ); ?></p>
! 					<p><?php printf( __( 'Please see entry 16 in the <a href="%s">Troubleshooting section</a> of the readme.txt', 'wp-super-cache' ), 'http://wordpress.org/plugins/wp-super-cache/faq/' ); ?></p>
  					</div>
  					<?php
  				} else {
***************
*** 236,242 ****
  		return false;
  	}
  
! 	if ( 1 == ini_get( 'zlib.output_compression' ) || "on" == strtolower( ini_get( 'zlib.output_compression' ) ) ) { 
  		?><div id="message" class="updated fade"><h3><?php _e( 'Zlib Output Compression Enabled!', 'wp-super-cache' ); ?></h3>
  		<p><?php _e( 'PHP is compressing the data sent to the visitors of your site. Disabling this is recommended as the plugin caches the compressed output once instead of compressing the same page over and over again. Also see #21 in the Troubleshooting section. See <a href="http://php.net/manual/en/zlib.configuration.php">this page</a> for instructions on modifying your php.ini.', 'wp-super-cache' ); ?></p></div><?php
  	}
--- 238,244 ----
  		return false;
  	}
  
! 	if ( 1 == ini_get( 'zlib.output_compression' ) || "on" == strtolower( ini_get( 'zlib.output_compression' ) ) ) {
  		?><div id="message" class="updated fade"><h3><?php _e( 'Zlib Output Compression Enabled!', 'wp-super-cache' ); ?></h3>
  		<p><?php _e( 'PHP is compressing the data sent to the visitors of your site. Disabling this is recommended as the plugin caches the compressed output once instead of compressing the same page over and over again. Also see #21 in the Troubleshooting section. See <a href="http://php.net/manual/en/zlib.configuration.php">this page</a> for instructions on modifying your php.ini.', 'wp-super-cache' ); ?></p></div><?php
  	}
***************
*** 278,284 ****
  				<input type="hidden" name="action" value="dismiss_gc_warning" />
  				<input type="hidden" name="page" value="wpsupercache" />
  				<?php wp_nonce_field( 'wp-cache' ); ?>
! 				<input type='submit' value='<?php _e( 'Dismiss', 'wp-super-cache' ); ?>' />
  				</form>
  				<br />
  				</div>
--- 280,286 ----
  				<input type="hidden" name="action" value="dismiss_gc_warning" />
  				<input type="hidden" name="page" value="wpsupercache" />
  				<?php wp_nonce_field( 'wp-cache' ); ?>
! 				<input class='button-secondary' type='submit' value='<?php _e( 'Dismiss', 'wp-super-cache' ); ?>' />
  				</form>
  				<br />
  				</div>
***************
*** 306,312 ****
  			<input type="hidden" name="action" value="dismiss_readable_warning" />
  			<input type="hidden" name="page" value="wpsupercache" />
  			<?php wp_nonce_field( 'wp-cache' ); ?>
! 			<input type='submit' value='<?php _e( 'Dismiss', 'wp-super-cache' ); ?>' />
  			</form>
  			<br />
  			</div>
--- 308,314 ----
  			<input type="hidden" name="action" value="dismiss_readable_warning" />
  			<input type="hidden" name="page" value="wpsupercache" />
  			<?php wp_nonce_field( 'wp-cache' ); ?>
! 			<input class='button-secondary' type='submit' value='<?php _e( 'Dismiss', 'wp-super-cache' ); ?>' />
  			</form>
  			<br />
  			</div>
***************
*** 320,326 ****
  	if ( $cache_enabled && $wp_cache_mod_rewrite && !$wp_cache_mobile_enabled && strpos( $scrules, addcslashes( implode( '|', $wp_cache_mobile_browsers ), ' ' ) ) ) {
  		echo '<div id="message" class="updated fade"><h3>' . __( 'Mobile rewrite rules detected', 'wp-super-cache' ) . "</h3>";
  		echo "<p>" . __( 'For best performance you should enable "Mobile device support" or delete the mobile rewrite rules in your .htaccess. Look for the 2 lines with the text "2.0\ MMP|240x320" and delete those.', 'wp-super-cache' ) . "</p><p>" . __( 'This will have no affect on ordinary users but mobile users will see uncached pages.', 'wp-super-cache' ) . "</p></div>";
! 	} elseif ( $wp_cache_mod_rewrite && $cache_enabled && $wp_cache_mobile_enabled && $scrules != '' && ( 
  		( false == empty( $wp_cache_mobile_prefixes ) && false === strpos( $scrules, addcslashes( implode( '|', $wp_cache_mobile_prefixes ), ' ' ) ) ) ||
  		( false == empty( $wp_cache_mobile_browsers ) && false === strpos( $scrules, addcslashes( implode( '|', $wp_cache_mobile_browsers ), ' ' ) ) ) )
  		) {
--- 322,328 ----
  	if ( $cache_enabled && $wp_cache_mod_rewrite && !$wp_cache_mobile_enabled && strpos( $scrules, addcslashes( implode( '|', $wp_cache_mobile_browsers ), ' ' ) ) ) {
  		echo '<div id="message" class="updated fade"><h3>' . __( 'Mobile rewrite rules detected', 'wp-super-cache' ) . "</h3>";
  		echo "<p>" . __( 'For best performance you should enable "Mobile device support" or delete the mobile rewrite rules in your .htaccess. Look for the 2 lines with the text "2.0\ MMP|240x320" and delete those.', 'wp-super-cache' ) . "</p><p>" . __( 'This will have no affect on ordinary users but mobile users will see uncached pages.', 'wp-super-cache' ) . "</p></div>";
! 	} elseif ( $wp_cache_mod_rewrite && $cache_enabled && $wp_cache_mobile_enabled && $scrules != '' && (
  		( false == empty( $wp_cache_mobile_prefixes ) && false === strpos( $scrules, addcslashes( implode( '|', $wp_cache_mobile_prefixes ), ' ' ) ) ) ||
  		( false == empty( $wp_cache_mobile_browsers ) && false === strpos( $scrules, addcslashes( implode( '|', $wp_cache_mobile_browsers ), ' ' ) ) ) )
  		) {
***************
*** 332,338 ****
  			<li> <?php _e( 'Scroll down the Advanced Settings page and click the <strong>Update Mod_Rewrite Rules</strong> button.', 'wp-super-cache' ); ?></li>
  			<li> <?php printf( __( 'Delete the plugin mod_rewrite rules in %s.htaccess enclosed by <code># BEGIN WPSuperCache</code> and <code># END WPSuperCache</code> and let the plugin regenerate them by reloading this page.', 'wp-super-cache' ), $home_path ); ?></li>
  			<li> <?php printf( __( 'Add the rules yourself. Edit %s.htaccess and find the block of code enclosed by the lines <code># BEGIN WPSuperCache</code> and <code># END WPSuperCache</code>. There are two sections that look very similar. Just below the line <code>%%{HTTP:Cookie} !^.*(comment_author_|%s|wp-postpass_).*$</code> add these lines: (do it twice, once for each section)', 'wp-super-cache' ), $home_path, wpsc_get_logged_in_cookie() ); ?></p>
! 			<div style='padding: 2px; margin: 2px; border: 1px solid #333; width:400px; overflow: scroll'><pre><?php echo "RewriteCond %{HTTP_user_agent} !^.*(" . addcslashes( implode( '|', $wp_cache_mobile_browsers ), ' ' ) . ").*\nRewriteCond %{HTTP_user_agent} !^(" . addcslashes( implode( '|', $wp_cache_mobile_prefixes ), ' ' ) . ").*"; ?></pre></div></li></ol></div><?php 
  	}
  
  	if ( $cache_enabled && $super_cache_enabled && $wp_cache_mod_rewrite && $scrules == '' ) {
--- 334,340 ----
  			<li> <?php _e( 'Scroll down the Advanced Settings page and click the <strong>Update Mod_Rewrite Rules</strong> button.', 'wp-super-cache' ); ?></li>
  			<li> <?php printf( __( 'Delete the plugin mod_rewrite rules in %s.htaccess enclosed by <code># BEGIN WPSuperCache</code> and <code># END WPSuperCache</code> and let the plugin regenerate them by reloading this page.', 'wp-super-cache' ), $home_path ); ?></li>
  			<li> <?php printf( __( 'Add the rules yourself. Edit %s.htaccess and find the block of code enclosed by the lines <code># BEGIN WPSuperCache</code> and <code># END WPSuperCache</code>. There are two sections that look very similar. Just below the line <code>%%{HTTP:Cookie} !^.*(comment_author_|%s|wp-postpass_).*$</code> add these lines: (do it twice, once for each section)', 'wp-super-cache' ), $home_path, wpsc_get_logged_in_cookie() ); ?></p>
! 			<div style='padding: 2px; margin: 2px; border: 1px solid #333; width:400px; overflow: scroll'><pre><?php echo "RewriteCond %{HTTP_user_agent} !^.*(" . addcslashes( implode( '|', $wp_cache_mobile_browsers ), ' ' ) . ").*\nRewriteCond %{HTTP_user_agent} !^(" . addcslashes( implode( '|', $wp_cache_mobile_prefixes ), ' ' ) . ").*"; ?></pre></div></li></ol></div><?php
  	}
  
  	if ( $cache_enabled && $super_cache_enabled && $wp_cache_mod_rewrite && $scrules == '' ) {
***************
*** 378,386 ****
  		<input type="hidden" name="action" value="dismiss_htaccess_warning" />
  		<input type="hidden" name="page" value="wpsupercache" />
  		<?php wp_nonce_field( 'wp-cache' ); ?>
! 		<input type='submit' value='<?php _e( 'Dismiss', 'wp-super-cache' ); ?>' />
  		</form>
! 		<br />	
  		</div><?php
  	}
  
--- 380,388 ----
  		<input type="hidden" name="action" value="dismiss_htaccess_warning" />
  		<input type="hidden" name="page" value="wpsupercache" />
  		<?php wp_nonce_field( 'wp-cache' ); ?>
! 		<input class='button-secondary' type='submit' value='<?php _e( 'Dismiss', 'wp-super-cache' ); ?>' />
  		</form>
! 		<br />
  		</div><?php
  	}
  
***************
*** 397,403 ****
  		$path = trailingslashit( get_supercache_dir() . preg_replace( '/:.*$/', '', $_GET[ 'path' ] ) );
  		$files = get_all_supercache_filenames( $path );
  		foreach( $files as $cache_file )
! 			prune_super_cache( $path . $cache_file, true ); 
  
  		wp_redirect( preg_replace( '/[ <>\'\"\r\n\t\(\)]/', '', $_GET[ 'path' ] ) );
  		die();
--- 399,405 ----
  		$path = trailingslashit( get_supercache_dir() . preg_replace( '/:.*$/', '', $_GET[ 'path' ] ) );
  		$files = get_all_supercache_filenames( $path );
  		foreach( $files as $cache_file )
! 			prune_super_cache( $path . $cache_file, true );
  
  		wp_redirect( preg_replace( '/[ <>\'\"\r\n\t\(\)]/', '', $_GET[ 'path' ] ) );
  		die();
***************
*** 595,601 ****
  			$wp_cache_refresh_single_only = 0;
  		}
  		wp_cache_replace_line('^ *\$wp_cache_refresh_single_only', "\$wp_cache_refresh_single_only = '" . $wp_cache_refresh_single_only . "';", $wp_cache_config_file);
! 	
  		if ( defined( 'WPSC_DISABLE_COMPRESSION' ) ) {
  			$cache_compression = 0;
  			wp_cache_replace_line('^ *\$cache_compression', "\$cache_compression = " . $cache_compression . ";", $wp_cache_config_file);
--- 597,603 ----
  			$wp_cache_refresh_single_only = 0;
  		}
  		wp_cache_replace_line('^ *\$wp_cache_refresh_single_only', "\$wp_cache_refresh_single_only = '" . $wp_cache_refresh_single_only . "';", $wp_cache_config_file);
! 
  		if ( defined( 'WPSC_DISABLE_COMPRESSION' ) ) {
  			$cache_compression = 0;
  			wp_cache_replace_line('^ *\$cache_compression', "\$cache_compression = " . $cache_compression . ";", $wp_cache_config_file);
***************
*** 605,611 ****
  			} else {
  				$new_cache_compression = 0;
  			}
! 			if ( 1 == ini_get( 'zlib.output_compression' ) || "on" == strtolower( ini_get( 'zlib.output_compression' ) ) ) { 
  				echo '<div id="message" class="updated fade">' . __( "<strong>Warning!</strong> You attempted to enable compression but <code>zlib.output_compression</code> is enabled. See #21 in the Troubleshooting section of the readme file.", 'wp-super-cache' ) . '</div>';
  			} else {
  				if ( $new_cache_compression != $cache_compression ) {
--- 607,613 ----
  			} else {
  				$new_cache_compression = 0;
  			}
! 			if ( 1 == ini_get( 'zlib.output_compression' ) || "on" == strtolower( ini_get( 'zlib.output_compression' ) ) ) {
  				echo '<div id="message" class="updated fade">' . __( "<strong>Warning!</strong> You attempted to enable compression but <code>zlib.output_compression</code> is enabled. See #21 in the Troubleshooting section of the readme file.", 'wp-super-cache' ) . '</div>';
  			} else {
  				if ( $new_cache_compression != $cache_compression ) {
***************
*** 650,656 ****
  	$wp_cache_mobile_prefixes = apply_filters( 'cached_mobile_prefixes', $wp_cache_mobile_prefixes ); // Allow mobile plugins access to modify the mobile UA prefix list
  	if ( function_exists( 'do_cacheaction' ) ) {
  		$wp_cache_mobile_browsers = do_cacheaction( 'wp_super_cache_mobile_browsers', $wp_cache_mobile_browsers );
! 		$wp_cache_mobile_prefixes = do_cacheaction( 'wp_super_cache_mobile_prefixes', $wp_cache_mobile_prefixes ); 
  	}
  	$mobile_groups = apply_filters( 'cached_mobile_groups', array() ); // Group mobile user agents by capabilities. Lump them all together by default
  	// mobile_groups = array( 'apple' => array( 'ipod', 'iphone' ), 'nokia' => array( 'nokia5800', 'symbianos' ) );
--- 652,658 ----
  	$wp_cache_mobile_prefixes = apply_filters( 'cached_mobile_prefixes', $wp_cache_mobile_prefixes ); // Allow mobile plugins access to modify the mobile UA prefix list
  	if ( function_exists( 'do_cacheaction' ) ) {
  		$wp_cache_mobile_browsers = do_cacheaction( 'wp_super_cache_mobile_browsers', $wp_cache_mobile_browsers );
! 		$wp_cache_mobile_prefixes = do_cacheaction( 'wp_super_cache_mobile_prefixes', $wp_cache_mobile_prefixes );
  	}
  	$mobile_groups = apply_filters( 'cached_mobile_groups', array() ); // Group mobile user agents by capabilities. Lump them all together by default
  	// mobile_groups = array( 'apple' => array( 'ipod', 'iphone' ), 'nokia' => array( 'nokia5800', 'symbianos' ) );
***************
*** 738,747 ****
  	$home_path = parse_url( site_url() );
  	$home_path = trailingslashit( array_key_exists( 'path', $home_path ) ? $home_path[ 'path' ] : '' );
  	if (! isset( $wp_cache_home_path ) )
! 		$wp_cache_home_path = '/'; 
  	if ( "$home_path" != "$wp_cache_home_path" )
  		wp_cache_replace_line('^ *\$wp_cache_home_path', "\$wp_cache_home_path = '$home_path';", $wp_cache_config_file);
! 	
  
  	if( $wp_cache_mobile_enabled == 1 ) {
  		update_cached_mobile_ua_list( $wp_cache_mobile_browsers, $wp_cache_mobile_prefixes, $mobile_groups );
--- 740,749 ----
  	$home_path = parse_url( site_url() );
  	$home_path = trailingslashit( array_key_exists( 'path', $home_path ) ? $home_path[ 'path' ] : '' );
  	if (! isset( $wp_cache_home_path ) )
! 		$wp_cache_home_path = '/';
  	if ( "$home_path" != "$wp_cache_home_path" )
  		wp_cache_replace_line('^ *\$wp_cache_home_path', "\$wp_cache_home_path = '$home_path';", $wp_cache_config_file);
! 
  
  	if( $wp_cache_mobile_enabled == 1 ) {
  		update_cached_mobile_ua_list( $wp_cache_mobile_browsers, $wp_cache_mobile_prefixes, $mobile_groups );
***************
*** 797,803 ****
  							wp_unschedule_event( $next_preload, 'wp_cache_full_preload_hook' );
  							if ( $wp_cache_preload_interval == 0 ) {
  								echo "<p><strong>" . __( 'Scheduled preloading of cache cancelled.', 'wp-super-cache' ) . "</strong></p>";
! 							} 
  						}
  						if ( $_POST[ 'custom_preload_interval' ] != 0 )
  							wp_schedule_single_event( time() + ( $_POST[ 'custom_preload_interval' ] * 60 ), 'wp_cache_full_preload_hook' );
--- 799,805 ----
  							wp_unschedule_event( $next_preload, 'wp_cache_full_preload_hook' );
  							if ( $wp_cache_preload_interval == 0 ) {
  								echo "<p><strong>" . __( 'Scheduled preloading of cache cancelled.', 'wp-super-cache' ) . "</strong></p>";
! 							}
  						}
  						if ( $_POST[ 'custom_preload_interval' ] != 0 )
  							wp_schedule_single_event( time() + ( $_POST[ 'custom_preload_interval' ] * 60 ), 'wp_cache_full_preload_hook' );
***************
*** 915,923 ****
  					echo "<p>" . sprintf( __( "<strong>Page last cached:</strong> %s", 'wp-super-cache' ), $url ) . "</p>";
  				}
  			}
! 			echo '<div class="submit"><input type="submit" name="preload" value="' . __( 'Update Settings', 'wp-super-cache' ) . '" />&nbsp;<input type="submit" name="preload" value="' . __( 'Preload Cache Now', 'wp-super-cache' ) . '" />';
  			if ( $currently_preloading ) {
! 				echo '&nbsp;<input type="submit" name="preload" value="' . __( 'Cancel Cache Preload', 'wp-super-cache' ) . '" />';
  			}
  			echo '</div>';
  			wp_nonce_field('wp-cache');
--- 917,925 ----
  					echo "<p>" . sprintf( __( "<strong>Page last cached:</strong> %s", 'wp-super-cache' ), $url ) . "</p>";
  				}
  			}
! 			echo '<div class="submit"><input class="button-primary" type="submit" name="preload" value="' . __( 'Update Settings', 'wp-super-cache' ) . '" />&nbsp;<input class="button-secondary" type="submit" name="preload" value="' . __( 'Preload Cache Now', 'wp-super-cache' ) . '" />';
  			if ( $currently_preloading ) {
! 				echo '&nbsp;<input class="button-primary" type="submit" name="preload" value="' . __( 'Cancel Cache Preload', 'wp-super-cache' ) . '" />';
  			}
  			echo '</div>';
  			wp_nonce_field('wp-cache');
***************
*** 935,941 ****
  		case 'settings':
  		if ( isset( $wp_cache_front_page_checks ) == false )
  			$wp_cache_front_page_checks = true;
! 		echo '<form name="wp_manager" action="' . add_query_arg( array( 'page' => 'wpsupercache', 'tab' => 'settings' ) ) . '" method="post">';
  		wp_nonce_field('wp-cache');
  		echo '<input type="hidden" name="action" value="scupdates" />';
  		?><table class="form-table">
--- 937,943 ----
  		case 'settings':
  		if ( isset( $wp_cache_front_page_checks ) == false )
  			$wp_cache_front_page_checks = true;
! 		echo '<form name="wp_manager" action="' . esc_url( add_query_arg( array( 'page' => 'wpsupercache', 'tab' => 'settings' ) ) ) . '" method="post">';
  		wp_nonce_field('wp-cache');
  		echo '<input type="hidden" name="action" value="scupdates" />';
  		?><table class="form-table">
***************
*** 945,952 ****
  				<fieldset>
  				<legend class="hidden">Caching</legend>
  				<label><input type='checkbox' name='wp_cache_status' value='all' <?php if ( $cache_enabled == true ) { echo 'checked=checked'; } ?>> <?php _e( 'Cache hits to this website for quick access.', 'wp-super-cache' ); echo " <em>(" . __( "Recommended", "wp-super-cache" ) . ")</em>"; ?></label><br /><br />
! 				<label><input type='radio' name='super_cache_enabled' <?php if( $super_cache_enabled ) echo "checked"; ?> value='1'> <?php printf( __( 'Use mod_rewrite to serve cache files.', 'wp-super-cache' ), 'http://wordpress.org/extend/plugins/wordpress-mobile-edition/' ); echo " <em>(" . __( "Recommended", "wp-super-cache" ) . ")</em>"; ?></label><br />
! 				<label><input type='radio' name='super_cache_enabled' <?php if( $wp_cache_mod_rewrite == 0 ) echo "checked"; ?> value='2'> <?php printf( __( 'Use PHP to serve cache files.', 'wp-super-cache' ), 'http://wordpress.org/extend/plugins/wordpress-mobile-edition/' ); ?></label><br />
  				<label><input type='radio' name='super_cache_enabled' <?php if( $super_cache_enabled == false ) echo "checked"; ?> value='0'> <?php _e( 'Legacy page caching.', 'wp-super-cache' ); ?></label><br />
  				<em><?php _e( 'Mod_rewrite is fastest, PHP is almost as fast and easier to get working, while legacy caching is slower again, but more flexible and also easy to get working. New users should use PHP caching.', 'wp-super-cache' ); ?></em><br />
  				</legend>
--- 947,954 ----
  				<fieldset>
  				<legend class="hidden">Caching</legend>
  				<label><input type='checkbox' name='wp_cache_status' value='all' <?php if ( $cache_enabled == true ) { echo 'checked=checked'; } ?>> <?php _e( 'Cache hits to this website for quick access.', 'wp-super-cache' ); echo " <em>(" . __( "Recommended", "wp-super-cache" ) . ")</em>"; ?></label><br /><br />
! 				<label><input type='radio' name='super_cache_enabled' <?php if( $super_cache_enabled ) echo "checked"; ?> value='1'> <?php printf( __( 'Use mod_rewrite to serve cache files.', 'wp-super-cache' ), 'http://wordpress.org/plugins/wordpress-mobile-edition/' ); echo " <em>(" . __( "Recommended", "wp-super-cache" ) . ")</em>"; ?></label><br />
! 				<label><input type='radio' name='super_cache_enabled' <?php if( $wp_cache_mod_rewrite == 0 ) echo "checked"; ?> value='2'> <?php printf( __( 'Use PHP to serve cache files.', 'wp-super-cache' ), 'http://wordpress.org/plugins/wordpress-mobile-edition/' ); ?></label><br />
  				<label><input type='radio' name='super_cache_enabled' <?php if( $super_cache_enabled == false ) echo "checked"; ?> value='0'> <?php _e( 'Legacy page caching.', 'wp-super-cache' ); ?></label><br />
  				<em><?php _e( 'Mod_rewrite is fastest, PHP is almost as fast and easier to get working, while legacy caching is slower again, but more flexible and also easy to get working. New users should use PHP caching.', 'wp-super-cache' ); ?></em><br />
  				</legend>
***************
*** 992,999 ****
  			<td>
  				<fieldset>
  				<legend class="hidden">Advanced</legend>
! 				<label><input type='checkbox' name='wp_cache_mfunc_enabled' <?php if( $wp_cache_mfunc_enabled ) echo "checked"; ?> value='1' <?php if ( $wp_cache_mod_rewrite ) { echo "disabled='disabled'"; } ?>> <?php _e( 'Enable dynamic caching. Requires PHP or legacy caching. (See <a href="http://wordpress.org/extend/plugins/wp-super-cache/faq/">FAQ</a> or wp-super-cache/plugins/dynamic-cache-test.php for example code.)', 'wp-super-cache' ); ?></label><br />
! 				<label><input type='checkbox' name='wp_cache_mobile_enabled' <?php if( $wp_cache_mobile_enabled ) echo "checked"; ?> value='1'> <?php _e( 'Mobile device support. (External plugin or theme required. See the <a href="http://wordpress.org/extend/plugins/wp-super-cache/faq/">FAQ</a> for further details.)', 'wp-super-cache' ); ?></label><br />
  				<?php if ( $wp_cache_mobile_enabled ) {
  					echo '<blockquote><h4>' . __( 'Mobile Browsers', 'wp-super-cache' ) . '</h4>' . implode( ', ', $wp_cache_mobile_browsers ) . "<br /><h4>" . __( 'Mobile Prefixes', 'wp-super-cache' ) . "</h4>" . implode( ', ', $wp_cache_mobile_prefixes ) . "<br /></blockquote>";
  				} ?>
--- 994,1001 ----
  			<td>
  				<fieldset>
  				<legend class="hidden">Advanced</legend>
! 				<label><input type='checkbox' name='wp_cache_mfunc_enabled' <?php if( $wp_cache_mfunc_enabled ) echo "checked"; ?> value='1' <?php if ( $wp_cache_mod_rewrite ) { echo "disabled='disabled'"; } ?>> <?php _e( 'Enable dynamic caching. Requires PHP or legacy caching. (See <a href="http://wordpress.org/plugins/wp-super-cache/faq/">FAQ</a> or wp-super-cache/plugins/dynamic-cache-test.php for example code.)', 'wp-super-cache' ); ?></label><br />
! 				<label><input type='checkbox' name='wp_cache_mobile_enabled' <?php if( $wp_cache_mobile_enabled ) echo "checked"; ?> value='1'> <?php _e( 'Mobile device support. (External plugin or theme required. See the <a href="http://wordpress.org/plugins/wp-super-cache/faq/">FAQ</a> for further details.)', 'wp-super-cache' ); ?></label><br />
  				<?php if ( $wp_cache_mobile_enabled ) {
  					echo '<blockquote><h4>' . __( 'Mobile Browsers', 'wp-super-cache' ) . '</h4>' . implode( ', ', $wp_cache_mobile_browsers ) . "<br /><h4>" . __( 'Mobile Prefixes', 'wp-super-cache' ) . "</h4>" . implode( ', ', $wp_cache_mobile_prefixes ) . "<br /></blockquote>";
  				} ?>
***************
*** 1006,1013 ****
  				<label><input type='checkbox' name='wp_cache_mutex_disabled' <?php if( !$wp_cache_mutex_disabled ) echo "checked"; ?> value='0'> <?php _e( 'Coarse file locking. You probably don&#8217;t need this but it may help if your server is underpowered. Warning! <em>May cause your server to lock up in very rare cases!</em>', 'wp-super-cache' ); ?></label><br />
  			<?php } ?>
  				<label><input type='checkbox' name='wp_super_cache_late_init' <?php if( $wp_super_cache_late_init ) echo "checked"; ?> value='1'> <?php _e( 'Late init. Display cached files after WordPress has loaded. Most useful in legacy mode.', 'wp-super-cache' ); ?></label><br />
! 			<?php if ( $_wp_using_ext_object_cache ) { 
! 				?><label><input type='checkbox' name='wp_cache_object_cache' <?php if( $wp_cache_object_cache ) echo "checked"; ?> value='1'> <?php echo __( 'Use object cache to store cached files.', 'wp-super-cache' ) . ' ' . __( '(Experimental)', 'wp-super-cache' ); ?></label><?php 
  			}?>
  			<?php printf( __( '<strong>DO NOT CACHE PAGE</strong> secret key: <a href="%s">%s</a>', 'wp-super-cache' ), trailingslashit( get_bloginfo( 'url' ) ) . "?donotcachepage={$cache_page_secret}", $cache_page_secret ); ?>
  				</legend>
--- 1008,1015 ----
  				<label><input type='checkbox' name='wp_cache_mutex_disabled' <?php if( !$wp_cache_mutex_disabled ) echo "checked"; ?> value='0'> <?php _e( 'Coarse file locking. You probably don&#8217;t need this but it may help if your server is underpowered. Warning! <em>May cause your server to lock up in very rare cases!</em>', 'wp-super-cache' ); ?></label><br />
  			<?php } ?>
  				<label><input type='checkbox' name='wp_super_cache_late_init' <?php if( $wp_super_cache_late_init ) echo "checked"; ?> value='1'> <?php _e( 'Late init. Display cached files after WordPress has loaded. Most useful in legacy mode.', 'wp-super-cache' ); ?></label><br />
! 			<?php if ( $_wp_using_ext_object_cache ) {
! 				?><label><input type='checkbox' name='wp_cache_object_cache' <?php if( $wp_cache_object_cache ) echo "checked"; ?> value='1'> <?php echo __( 'Use object cache to store cached files.', 'wp-super-cache' ) . ' ' . __( '(Experimental)', 'wp-super-cache' ); ?></label><?php
  			}?>
  			<?php printf( __( '<strong>DO NOT CACHE PAGE</strong> secret key: <a href="%s">%s</a>', 'wp-super-cache' ), trailingslashit( get_bloginfo( 'url' ) ) . "?donotcachepage={$cache_page_secret}", $cache_page_secret ); ?>
  				</legend>
***************
*** 1020,1029 ****
  		<li><?php _e( 'Uninstall this plugin on the plugins page. It will automatically clean up after itself. If manual intervention is required then simple instructions are provided.', 'wp-super-cache' ); ?></li>
  		<li><?php printf( __( 'If uninstalling this plugin, make sure the directory <em>%s</em> is writeable by the webserver so the files <em>advanced-cache.php</em> and <em>cache-config.php</em> can be deleted automatically. (Making sure those files are writeable too is probably a good idea!)', 'wp-super-cache' ), WP_CONTENT_DIR ); ?></li>
  		<li><?php printf( __( 'Please see the <a href="%1$s/wp-super-cache/readme.txt">readme.txt</a> for instructions on uninstalling this script. Look for the heading, "How to uninstall WP Super Cache".', 'wp-super-cache' ), WP_PLUGIN_URL ); ?></li><?php
! 		echo "<li><em>" . sprintf( __( 'Need help? Check the <a href="%1$s">Super Cache readme file</a>. It includes installation documentation, a FAQ and Troubleshooting tips. The <a href="%2$s">support forum</a> is also available. Your question may already have been answered.', 'wp-super-cache' ), 'http://wordpress.org/extend/plugins/wp-super-cache/', 'http://wordpress.org/tags/wp-super-cache?forum_id=10' ) . "</em></li>";
  		echo "</ol>";
! 	
! 		echo "<div class='submit'><input class='button-primary' type='submit' " . SUBMITDISABLED . " value='" . __( 'Update Status', 'wp-super-cache' ) . " &raquo;' /></div>";
  		wp_nonce_field('wp-cache');
  		?> </form> <?php
  		wsc_mod_rewrite();
--- 1022,1031 ----
  		<li><?php _e( 'Uninstall this plugin on the plugins page. It will automatically clean up after itself. If manual intervention is required then simple instructions are provided.', 'wp-super-cache' ); ?></li>
  		<li><?php printf( __( 'If uninstalling this plugin, make sure the directory <em>%s</em> is writeable by the webserver so the files <em>advanced-cache.php</em> and <em>cache-config.php</em> can be deleted automatically. (Making sure those files are writeable too is probably a good idea!)', 'wp-super-cache' ), WP_CONTENT_DIR ); ?></li>
  		<li><?php printf( __( 'Please see the <a href="%1$s/wp-super-cache/readme.txt">readme.txt</a> for instructions on uninstalling this script. Look for the heading, "How to uninstall WP Super Cache".', 'wp-super-cache' ), WP_PLUGIN_URL ); ?></li><?php
! 		echo "<li><em>" . sprintf( __( 'Need help? Check the <a href="%1$s">Super Cache readme file</a>. It includes installation documentation, a FAQ and Troubleshooting tips. The <a href="%2$s">support forum</a> is also available. Your question may already have been answered.', 'wp-super-cache' ), 'http://wordpress.org/plugins/wp-super-cache/', 'http://wordpress.org/tags/wp-super-cache?forum_id=10' ) . "</em></li>";
  		echo "</ol>";
! 
! 		echo "<div class='submit'><input class='button-primary' type='submit' " . SUBMITDISABLED . " value='" . __( 'Update Status', 'wp-super-cache' ) . "' /></div>";
  		wp_nonce_field('wp-cache');
  		?> </form> <?php
  		wsc_mod_rewrite();
***************
*** 1070,1076 ****
  					echo "<p><strong>" . __( 'Notice: PHP caching enabled but Supercache mod_rewrite rules detected. Cached files will be served using those rules. If your site is working ok please ignore this message or you can edit the .htaccess file in the root of your install and remove the SuperCache rules.', 'wp-super-cache' ) . '</strong></p>';
  				}
  			}
! 			echo "<div class='submit'><input class='button-primary' type='submit' " . SUBMITDISABLED . " value='" . __( 'Update Status', 'wp-super-cache' ) . " &raquo;' /></div></form>";
  			if ( $cache_enabled ) {
  				echo "<h3>" . __( 'Cache Tester', 'wp-super-cache' ) . "</h3>";
  				echo '<p>' . __( 'Test your cached website by clicking the test button below.', 'wp-super-cache' ) . '</p>';
--- 1072,1078 ----
  					echo "<p><strong>" . __( 'Notice: PHP caching enabled but Supercache mod_rewrite rules detected. Cached files will be served using those rules. If your site is working ok please ignore this message or you can edit the .htaccess file in the root of your install and remove the SuperCache rules.', 'wp-super-cache' ) . '</strong></p>';
  				}
  			}
! 			echo "<div class='submit'><input class='button-primary' type='submit' " . SUBMITDISABLED . " value='" . __( 'Update Status', 'wp-super-cache' ) . "' /></div></form>";
  			if ( $cache_enabled ) {
  				echo "<h3>" . __( 'Cache Tester', 'wp-super-cache' ) . "</h3>";
  				echo '<p>' . __( 'Test your cached website by clicking the test button below.', 'wp-super-cache' ) . '</p>';
***************
*** 1151,1157 ****
  				echo '<input type="hidden" name="action" value="test" />';
  				if ( isset( $_SERVER['HTTPS' ] ) && 'on' == strtolower( $_SERVER['HTTPS' ] ) )
  					echo "<input type='checkbox' name='httponly' checked='checked' value='1' /> " . __( 'Send non-secure (non https) request for homepage', 'wp-super-cache' );
! 				echo '<div class="submit"><input type="submit" name="test" value="' . __( 'Test Cache', 'wp-super-cache' ) . '" /></div>';
  				wp_nonce_field('wp-cache');
  				echo '</form>';
  			}
--- 1153,1159 ----
  				echo '<input type="hidden" name="action" value="test" />';
  				if ( isset( $_SERVER['HTTPS' ] ) && 'on' == strtolower( $_SERVER['HTTPS' ] ) )
  					echo "<input type='checkbox' name='httponly' checked='checked' value='1' /> " . __( 'Send non-secure (non https) request for homepage', 'wp-super-cache' );
! 				echo '<div class="submit"><input class="button-secondary" type="submit" name="test" value="' . __( 'Test Cache', 'wp-super-cache' ) . '" /></div>';
  				wp_nonce_field('wp-cache');
  				echo '</form>';
  			}
***************
*** 1159,1187 ****
  			echo "<p>" . __( "Cached pages are stored on your server as html and PHP files. If you need to delete them use the button below.", 'wp-super-cache' ) . "</p>";
  			echo '<form name="wp_cache_content_delete" action="?page=wpsupercache&tab=contents" method="post">';
  			echo '<input type="hidden" name="wp_delete_cache" />';
! 			echo '<div class="submit" style="float:left;margin-left:10px"><input id="deletepost" type="submit" ' . SUBMITDISABLED . 'value="' . __( 'Delete Cache', 'wp-super-cache' ) . ' &raquo;" /></div>';
  			wp_nonce_field('wp-cache');
  			echo "</form>\n";
  
  			if ( ( defined( 'VHOST' ) || ( defined( 'WP_ALLOW_MULTISITE' ) && constant( 'WP_ALLOW_MULTISITE' ) == true ) ) && wpsupercache_site_admin() ) {
  				echo '<form name="wp_cache_content_delete" action="#listfiles" method="post">';
  				echo '<input type="hidden" name="wp_delete_all_cache" />';
! 				echo '<div class="submit" style="float:left;margin-left:10px"><input id="deleteallpost" type="submit" ' . SUBMITDISABLED . 'value="' . __( 'Delete Cache On All Blogs', 'wp-super-cache' ) . ' &raquo;" />';
  				wp_nonce_field('wp-cache');
  				echo "</form><br />\n";
  			}
  			?>
! 			<h3><?php _e( 'Recommended Links and Plugins', 'wp-super-cache' ); ?></h3>
  			<p><?php _e( 'Caching is only one part of making a website faster. Here are some other plugins that will help:', 'wp-super-cache' ); ?></p>
- 			<ol><li><?php printf( __( '<a href="%s">WPSCMin</a>, a Supercache plugin that minifies cached pages by removing whitespaces and extra characters ', 'wp-super-cache' ), 'http://lyncd.com/wpscmin/' ); ?></li>
  			<li><?php printf( __( '<a href="%s">Yahoo! Yslow</a> is an extension for the Firefox add-on Firebug. It analyzes web pages and suggests ways to improve their performance based on a set of rules for high performance web pages. Also try the performance tools online at <a href="%s">GTMetrix</a>.', 'wp-super-cache' ), 'http://developer.yahoo.com/yslow/', 'http://gtmetrix.com/' ); ?></li>
! 			<li><?php printf( __( '<a href="%s">Use Google Libraries</a> allows you to load some commonly used Javascript libraries from Google webservers. Ironically it may reduce your Yslow score.', 'wp-super-cache' ), 'http://wordpress.org/extend/plugins/use-google-libraries/' ); ?></li>
! 			<li><?php printf( __( 'The <a href="%1$s">CDN Sync Tool</a> plugin will help upload files to Amazon S3/Cloudfront if you would rather not depend on origin pull. See the <a href="%2$s">plugin support forum</a> if you have any queries about this plugin.', 'wp-super-cache' ), 'http://wordpress.org/extend/plugins/cdn-sync-tool/', 'http://wordpress.org/tags/cdn-sync-tool?forum_id=10' ); ?></li>
  			<li><?php printf( __( '<strong>Advanced users only:</strong> <a href="%s">Speed up your site with Caching and cache-control</a> explains how to make your site more cacheable with .htaccess rules.', 'wp-super-cache' ), 'http://www.askapache.com/htaccess/speed-up-your-site-with-caching-and-cache-control.html' ); ?></li>
! 			<li><?php printf( __( '<strong>Advanced users only:</strong> Install an object cache. Choose from <a href="%s">Memcached</a>, <a href="%s">XCache</a>, <a href="%s">eAcccelerator</a> and others.', 'wp-super-cache' ), 'http://wordpress.org/extend/plugins/memcached/', 'http://neosmart.net/dl.php?id=12', 'http://neosmart.net/dl.php?id=13' ); ?></li>
! 			<li><?php printf( __( '<a href="%s">Cron View</a> is a useful plugin to use when trying to debug garbage collection and preload problems.', 'wp-super-cache' ), 'http://wordpress.org/extend/plugins/cron-view/' ); ?></li>
  			</ol>
! 			
  			<?php
  		break;
  	}
--- 1161,1187 ----
  			echo "<p>" . __( "Cached pages are stored on your server as html and PHP files. If you need to delete them use the button below.", 'wp-super-cache' ) . "</p>";
  			echo '<form name="wp_cache_content_delete" action="?page=wpsupercache&tab=contents" method="post">';
  			echo '<input type="hidden" name="wp_delete_cache" />';
! 			echo '<div class="submit"><input id="deletepost" class="button-secondary" type="submit" ' . SUBMITDISABLED . 'value="' . __( 'Delete Cache', 'wp-super-cache' ) . ' " /></div>';
  			wp_nonce_field('wp-cache');
  			echo "</form>\n";
  
  			if ( ( defined( 'VHOST' ) || ( defined( 'WP_ALLOW_MULTISITE' ) && constant( 'WP_ALLOW_MULTISITE' ) == true ) ) && wpsupercache_site_admin() ) {
  				echo '<form name="wp_cache_content_delete" action="#listfiles" method="post">';
  				echo '<input type="hidden" name="wp_delete_all_cache" />';
! 				echo '<div class="submit" style="float:left;margin-left:10px"><input id="deleteallpost" class="button-secondary" type="submit" ' . SUBMITDISABLED . 'value="' . __( 'Delete Cache On All Blogs', 'wp-super-cache' ) . '" />';
  				wp_nonce_field('wp-cache');
  				echo "</form><br />\n";
  			}
  			?>
! 			<h3 class="clear"><?php _e( 'Recommended Links and Plugins', 'wp-super-cache' ); ?></h3>
  			<p><?php _e( 'Caching is only one part of making a website faster. Here are some other plugins that will help:', 'wp-super-cache' ); ?></p>
  			<li><?php printf( __( '<a href="%s">Yahoo! Yslow</a> is an extension for the Firefox add-on Firebug. It analyzes web pages and suggests ways to improve their performance based on a set of rules for high performance web pages. Also try the performance tools online at <a href="%s">GTMetrix</a>.', 'wp-super-cache' ), 'http://developer.yahoo.com/yslow/', 'http://gtmetrix.com/' ); ?></li>
! 			<li><?php printf( __( '<a href="%s">Use Google Libraries</a> allows you to load some commonly used Javascript libraries from Google webservers. Ironically it may reduce your Yslow score.', 'wp-super-cache' ), 'http://wordpress.org/plugins/use-google-libraries/' ); ?></li>
  			<li><?php printf( __( '<strong>Advanced users only:</strong> <a href="%s">Speed up your site with Caching and cache-control</a> explains how to make your site more cacheable with .htaccess rules.', 'wp-super-cache' ), 'http://www.askapache.com/htaccess/speed-up-your-site-with-caching-and-cache-control.html' ); ?></li>
! 			<li><?php printf( __( '<strong>Advanced users only:</strong> Install an object cache. Choose from <a href="%s">Memcached</a>, <a href="%s">XCache</a>, <a href="%s">eAcccelerator</a> and others.', 'wp-super-cache' ), 'http://wordpress.org/plugins/memcached/', 'http://neosmart.net/dl.php?id=12', 'http://neosmart.net/dl.php?id=13' ); ?></li>
! 			<li><?php printf( __( '<a href="%s">Cron View</a> is a useful plugin to use when trying to debug garbage collection and preload problems.', 'wp-super-cache' ), 'http://wordpress.org/plugins/cron-view/' ); ?></li>
  			</ol>
! 
  			<?php
  		break;
  	}
***************
*** 1190,1212 ****
  	</fieldset>
  	</td><td valign='top' style='width: 300px'>
  	<div style='background: #ffc; border: 1px solid #333; margin: 2px; padding: 5px'>
- 	<h3 align='center'><?php _e( 'Make WordPress Faster', 'wp-super-cache' ); ?></h3>
- 	<p><?php printf( __( '%1$s is maintained and developed by %2$s with contributions from many others.', 'wp-super-cache' ), '<a href="http://ocaoimh.ie/y/34">WP Super Cache</a>', '<a href="http://ocaoimh.ie/y/35">Donncha O Caoimh</a>' ); ?></p>
- 	<p><?php printf( __( 'He blogs at %1$s and posts photos at %2$s.', 'wp-super-cache' ), '<a href="http://ocaoimh.ie/y/35">Holy Shmoly</a>', '<a href="http://ocaoimh.ie/y/2m">In Photos.org</a>' ); ?></p>
- 	<p><?php printf( __( 'Please say hi to him on %s too!', 'wp-super-cache' ), '<a href="http://twitter.com/donncha/">Twitter</a>' ); ?></p>
  	<h3 align='center'><?php _e( 'Need Help?', 'wp-super-cache' ); ?></h3>
  	<ol>
  	<li><?php _e( 'Use the debug system in the Debug tab above. It will tell you what the plugin is doing.', 'wp-super-cache' ); ?></li>
! 	<li><?php printf( __( '<a href="%1$s">Installation Help</a>', 'wp-super-cache' ), 'http://wordpress.org/extend/plugins/wp-super-cache/installation/' ); ?></li>
! 	<li><?php printf( __( '<a href="%1$s">Frequently Asked Questions</a>', 'wp-super-cache' ), 'http://wordpress.org/extend/plugins/wp-super-cache/faq/' ); ?></li>
  	<li><?php printf( __( '<a href="%1$s">Support Forum</a>', 'wp-super-cache' ), 'http://wordpress.org/tags/wp-super-cache' ); ?></li>
  	<li><?php printf( __( '<a href="%1$s">Development Version</a>', 'wp-super-cache' ), 'http://ocaoimh.ie/y/2o' ); ?></li>
  	</ol>
  	<h3 align='center'><?php _e( 'Rate This Plugin!', 'wp-super-cache' ); ?></h3>
! 	<p><?php printf( __( 'Please <a href="%s">rate</a> this plugin and tell me if it works for you or not. It really helps development.', 'wp-super-cache' ), 'http://wordpress.org/extend/plugins/wp-super-cache/' ); ?></p>
  
! 	<?php 
! 	if ( isset( $wp_supercache_cache_list ) && $wp_supercache_cache_list ) { 
  		$start_date = get_option( 'wpsupercache_start' );
  		if ( !$start_date ) {
  			$start_date = time();
--- 1190,1208 ----
  	</fieldset>
  	</td><td valign='top' style='width: 300px'>
  	<div style='background: #ffc; border: 1px solid #333; margin: 2px; padding: 5px'>
  	<h3 align='center'><?php _e( 'Need Help?', 'wp-super-cache' ); ?></h3>
  	<ol>
  	<li><?php _e( 'Use the debug system in the Debug tab above. It will tell you what the plugin is doing.', 'wp-super-cache' ); ?></li>
! 	<li><?php printf( __( '<a href="%1$s">Installation Help</a>', 'wp-super-cache' ), 'http://wordpress.org/plugins/wp-super-cache/installation/' ); ?></li>
! 	<li><?php printf( __( '<a href="%1$s">Frequently Asked Questions</a>', 'wp-super-cache' ), 'http://wordpress.org/plugins/wp-super-cache/faq/' ); ?></li>
  	<li><?php printf( __( '<a href="%1$s">Support Forum</a>', 'wp-super-cache' ), 'http://wordpress.org/tags/wp-super-cache' ); ?></li>
  	<li><?php printf( __( '<a href="%1$s">Development Version</a>', 'wp-super-cache' ), 'http://ocaoimh.ie/y/2o' ); ?></li>
  	</ol>
  	<h3 align='center'><?php _e( 'Rate This Plugin!', 'wp-super-cache' ); ?></h3>
! 	<p><?php printf( __( 'Please <a href="%s">rate</a> this plugin and tell me if it works for you or not. It really helps development.', 'wp-super-cache' ), 'http://wordpress.org/plugins/wp-super-cache/' ); ?></p>
  
! 	<?php
! 	if ( isset( $wp_supercache_cache_list ) && $wp_supercache_cache_list ) {
  		$start_date = get_option( 'wpsupercache_start' );
  		if ( !$start_date ) {
  			$start_date = time();
***************
*** 1221,1227 ****
  		}
  		?></ol>
  		<small><?php _e( '(may not always be accurate on busy sites)', 'wp-super-cache' ); ?></small>
! 		</p><?php 
  	} elseif ( false == get_option( 'wpsupercache_start' ) ) {
  			update_option( 'wpsupercache_start', time() );
  			update_option( 'wpsupercache_count', 0 );
--- 1217,1223 ----
  		}
  		?></ol>
  		<small><?php _e( '(may not always be accurate on busy sites)', 'wp-super-cache' ); ?></small>
! 		</p><?php
  	} elseif ( false == get_option( 'wpsupercache_start' ) ) {
  			update_option( 'wpsupercache_start', time() );
  			update_option( 'wpsupercache_count', 0 );
***************
*** 1311,1317 ****
  	if ( function_exists( "is_main_site" ) && false == is_main_site() )
  		return true;
  	?>
! 	<a name="modrewrite"></a><fieldset class="options"> 
  	<h3><?php _e( 'Mod Rewrite Rules', 'wp-super-cache' ); ?></h3><?php
  
  	extract( wpsc_get_htaccess_info() );
--- 1307,1313 ----
  	if ( function_exists( "is_main_site" ) && false == is_main_site() )
  		return true;
  	?>
! 	<a name="modrewrite"></a><fieldset class="options">
  	<h3><?php _e( 'Mod Rewrite Rules', 'wp-super-cache' ); ?></h3><?php
  
  	extract( wpsc_get_htaccess_info() );
***************
*** 1338,1350 ****
  	} elseif( strpos( $scrules, 'supercache' ) || strpos( $wprules, 'supercache' ) ) { // only write the rules once
  		$dohtaccess = false;
  	}
! 	if( $dohtaccess && !$_POST[ 'updatehtaccess' ] ) {
  		if ( $scrules == '' ) {
  			wpsc_update_htaccess_form( 0 ); // don't hide the update htaccess form
  		} else {
  			wpsc_update_htaccess_form();
  		}
! 	} elseif( $valid_nonce && $_POST[ 'updatehtaccess' ] ) {
  		echo "<div style='padding:0 8px;color:#4f8a10;background-color:#dff2bf;border:1px solid #4f8a10;'>";
  		if( wpsc_update_htaccess() ) {
  			echo "<h4>" . __( 'Mod Rewrite rules updated!', 'wp-super-cache' ) . "</h4>";
--- 1334,1346 ----
  	} elseif( strpos( $scrules, 'supercache' ) || strpos( $wprules, 'supercache' ) ) { // only write the rules once
  		$dohtaccess = false;
  	}
! 	if ( $dohtaccess && !isset( $_POST[ 'updatehtaccess' ] ) ){
  		if ( $scrules == '' ) {
  			wpsc_update_htaccess_form( 0 ); // don't hide the update htaccess form
  		} else {
  			wpsc_update_htaccess_form();
  		}
! 	} elseif ( $valid_nonce && isset( $_POST[ 'updatehtaccess' ] ) ) {
  		echo "<div style='padding:0 8px;color:#4f8a10;background-color:#dff2bf;border:1px solid #4f8a10;'>";
  		if( wpsc_update_htaccess() ) {
  			echo "<h4>" . __( 'Mod Rewrite rules updated!', 'wp-super-cache' ) . "</h4>";
***************
*** 1366,1372 ****
  		echo "<div id='rewriterules' style='display: none;'>";
  		if ( $rules != $scrules )
  			echo '<div style="background: #fff; border: 1px solid #333; margin: 2px;">' . wp_text_diff( $scrules, $rules, array( 'title' => 'Rewrite Rules', 'title_left' => 'Current Rules', 'title_right' => 'New Rules' ) ) . "</div>";
! 		echo "<p><pre># BEGIN WPSuperCache\n" . esc_html( $rules ) . "# END WPSuperCache</pre></p>\n"; 
  		echo "<p>" . sprintf( __( 'Rules must be added to %s too:', 'wp-super-cache' ), WP_CONTENT_DIR . "/cache/.htaccess" ) . "</p>";
  		echo "<pre># BEGIN supercache\n" . esc_html( $gziprules ) . "# END supercache</pre></p>";
  		echo '</div>';
--- 1362,1368 ----
  		echo "<div id='rewriterules' style='display: none;'>";
  		if ( $rules != $scrules )
  			echo '<div style="background: #fff; border: 1px solid #333; margin: 2px;">' . wp_text_diff( $scrules, $rules, array( 'title' => 'Rewrite Rules', 'title_left' => 'Current Rules', 'title_right' => 'New Rules' ) ) . "</div>";
! 		echo "<p><pre># BEGIN WPSuperCache\n" . esc_html( $rules ) . "# END WPSuperCache</pre></p>\n";
  		echo "<p>" . sprintf( __( 'Rules must be added to %s too:', 'wp-super-cache' ), WP_CONTENT_DIR . "/cache/.htaccess" ) . "</p>";
  		echo "<pre># BEGIN supercache\n" . esc_html( $gziprules ) . "# END supercache</pre></p>";
  		echo '</div>';
***************
*** 1384,1390 ****
  	echo '<fieldset class="options"><h3>' . __( 'Fix Configuration', 'wp-super-cache' ) . '</h3>';
  	echo '<form name="wp_restore" action="#top" method="post">';
  	echo '<input type="hidden" name="wp_restore_config" />';
! 	echo '<div class="submit"><input type="submit" ' . SUBMITDISABLED . 'id="deletepost" value="' . __( 'Restore Default Configuration', 'wp-super-cache' ) . ' &raquo;" /></div>';
  	wp_nonce_field('wp-cache');
  	echo "</form>\n";
  	echo '</fieldset>';
--- 1380,1386 ----
  	echo '<fieldset class="options"><h3>' . __( 'Fix Configuration', 'wp-super-cache' ) . '</h3>';
  	echo '<form name="wp_restore" action="#top" method="post">';
  	echo '<input type="hidden" name="wp_restore_config" />';
! 	echo '<div class="submit"><input class="button-secondary" type="submit" ' . SUBMITDISABLED . 'id="deletepost" value="' . __( 'Restore Default Configuration', 'wp-super-cache' ) . '" /></div>';
  	wp_nonce_field('wp-cache');
  	echo "</form>\n";
  	echo '</fieldset>';
***************
*** 1416,1426 ****
  		}
  	}
  	?><a name='lockdown'></a>
! 	<fieldset class="options"> 
  	<h3><?php _e( 'Lock Down:', 'wp-super-cache' ); ?> <?php echo $wp_lock_down == '0' ? '<span style="color:red">' . __( 'Disabled', 'wp-super-cache' ) . '</span>' : '<span style="color:green">' . __( 'Enabled', 'wp-super-cache' ) . '</span>'; ?></h3>
  	<p><?php _e( 'Prepare your server for an expected spike in traffic by enabling the lock down. When this is enabled, new comments on a post will not refresh the cached static files.', 'wp-super-cache' ); ?></p>
  	<p><?php _e( 'Developers: Make your plugin lock down compatible by checking the "WPLOCKDOWN" constant. The following code will make sure your plugin respects the WPLOCKDOWN setting.', 'wp-super-cache' ); ?>
! 	<blockquote><code>if( defined( 'WPLOCKDOWN' ) && constant( 'WPLOCKDOWN' ) ) { 
  		&nbsp;&nbsp;&nbsp;&nbsp;echo "<?php _e( 'Sorry. My blog is locked down. Updates will appear shortly', 'wp-super-cache' ); ?>";
  		}</code></blockquote>
  	<?php
--- 1412,1422 ----
  		}
  	}
  	?><a name='lockdown'></a>
! 	<fieldset class="options">
  	<h3><?php _e( 'Lock Down:', 'wp-super-cache' ); ?> <?php echo $wp_lock_down == '0' ? '<span style="color:red">' . __( 'Disabled', 'wp-super-cache' ) . '</span>' : '<span style="color:green">' . __( 'Enabled', 'wp-super-cache' ) . '</span>'; ?></h3>
  	<p><?php _e( 'Prepare your server for an expected spike in traffic by enabling the lock down. When this is enabled, new comments on a post will not refresh the cached static files.', 'wp-super-cache' ); ?></p>
  	<p><?php _e( 'Developers: Make your plugin lock down compatible by checking the "WPLOCKDOWN" constant. The following code will make sure your plugin respects the WPLOCKDOWN setting.', 'wp-super-cache' ); ?>
! 	<blockquote><code>if( defined( 'WPLOCKDOWN' ) && constant( 'WPLOCKDOWN' ) ) {
  		&nbsp;&nbsp;&nbsp;&nbsp;echo "<?php _e( 'Sorry. My blog is locked down. Updates will appear shortly', 'wp-super-cache' ); ?>";
  		}</code></blockquote>
  	<?php
***************
*** 1433,1446 ****
  	$new_lockdown_desc =  $wp_lock_down == '1' ? __( 'Disable', 'wp-super-cache' ) : __( 'Enable', 'wp-super-cache' );
  	echo '<form name="wp_lock_down" action="#lockdown" method="post">';
  	echo "<input type='hidden' name='wp_lock_down' value='{$new_lockdown}' />";
! 	echo "<div class='submit'><input type='submit' " . SUBMITDISABLED . " value='{$new_lockdown_desc} " . __( 'Lock Down', 'wp-super-cache' ) . " &raquo;' /></div>";
  	wp_nonce_field('wp-cache');
  	echo "</form>\n";
  
  	?></fieldset><?php
  	if( $cache_enabled == true && $super_cache_enabled == true ) {
  		?><a name='direct'></a>
! 	<fieldset class="options"> 
  	<h3><?php _e( 'Directly Cached Files', 'wp-super-cache' ); ?></h3><?php
  
  	$out = '';
--- 1429,1442 ----
  	$new_lockdown_desc =  $wp_lock_down == '1' ? __( 'Disable', 'wp-super-cache' ) : __( 'Enable', 'wp-super-cache' );
  	echo '<form name="wp_lock_down" action="#lockdown" method="post">';
  	echo "<input type='hidden' name='wp_lock_down' value='{$new_lockdown}' />";
! 	echo "<div class='submit'><input class='button-primary' type='submit' " . SUBMITDISABLED . " value='{$new_lockdown_desc} " . __( 'Lock Down', 'wp-super-cache' ) . "' /></div>";
  	wp_nonce_field('wp-cache');
  	echo "</form>\n";
  
  	?></fieldset><?php
  	if( $cache_enabled == true && $super_cache_enabled == true ) {
  		?><a name='direct'></a>
! 	<fieldset class="options">
  	<h3><?php _e( 'Directly Cached Files', 'wp-super-cache' ); ?></h3><?php
  
  	$out = '';
***************
*** 1448,1454 ****
  		$expiredfiles = array_diff( $cached_direct_pages, $_POST[ 'direct_pages' ] );
  		unset( $cached_direct_pages );
  		foreach( $_POST[ 'direct_pages' ] as $page ) {
! 			$page = $wpdb->escape( $page );
  			if( $page != '' ) {
  				$cached_direct_pages[] = $page;
  				$out .= "'$page', ";
--- 1444,1450 ----
  		$expiredfiles = array_diff( $cached_direct_pages, $_POST[ 'direct_pages' ] );
  		unset( $cached_direct_pages );
  		foreach( $_POST[ 'direct_pages' ] as $page ) {
! 			$page = esc_sql( $page );
  			if( $page != '' ) {
  				$cached_direct_pages[] = $page;
  				$out .= "'$page', ";
***************
*** 1462,1468 ****
  		$page = str_replace( get_option( 'siteurl' ), '', $_POST[ 'new_direct_page' ] );
  		if( substr( $page, 0, 1 ) != '/' )
  			$page = '/' . $page;
! 		$page = $wpdb->escape( $page );
  		if( in_array( $page, $cached_direct_pages ) == false ) {
  			$cached_direct_pages[] = $page;
  			$out .= "'$page', ";
--- 1458,1464 ----
  		$page = str_replace( get_option( 'siteurl' ), '', $_POST[ 'new_direct_page' ] );
  		if( substr( $page, 0, 1 ) != '/' )
  			$page = '/' . $page;
! 		$page = esc_sql( $page );
  		if( in_array( $page, $cached_direct_pages ) == false ) {
  			$cached_direct_pages[] = $page;
  			$out .= "'$page', ";
***************
*** 1523,1529 ****
  				continue;
  			$generated = '';
  			if( is_file( ABSPATH . $page . '/index.html' ) )
! 				$generated = '<input type="Submit" name="deletepage" value="' . $page . '">';
  			$out .= "<tr><td><input type='text' $readonly name='direct_pages[]' size='30' value='$page' /></td><td>$generated</td></tr>";
  		}
  		if( $out != '' ) {
--- 1519,1525 ----
  				continue;
  			$generated = '';
  			if( is_file( ABSPATH . $page . '/index.html' ) )
! 				$generated = '<input class="button-secondary" type="Submit" name="deletepage" value="' . $page . '">';
  			$out .= "<tr><td><input type='text' $readonly name='direct_pages[]' size='30' value='$page' /></td><td>$generated</td></tr>";
  		}
  		if( $out != '' ) {
***************
*** 1542,1548 ****
  
  	wp_nonce_field('wp-cache');
  	if( $readonly != 'READONLY' )
! 		echo "<div class='submit'><input type='submit' ' . SUBMITDISABLED . 'value='" . __( 'Update Direct Pages', 'wp-super-cache' ) . " &raquo;' /></div>";
  	echo "</form>\n";
  	?></fieldset><?php
  	} // if $super_cache_enabled
--- 1538,1544 ----
  
  	wp_nonce_field('wp-cache');
  	if( $readonly != 'READONLY' )
! 		echo "<div class='submit'><input class='button-primary' type='submit' ' . SUBMITDISABLED . 'value='" . __( 'Update Direct Pages', 'wp-super-cache' ) . "' /></div>";
  	echo "</form>\n";
  	?></fieldset><?php
  	} // if $super_cache_enabled
***************
*** 1555,1561 ****
  		$dh  = @opendir($folderPath);
  		while (false !== ($value = @readdir($dh))) {
  			if ( $value != "." && $value != ".." ) {
! 				$value = $folderPath . "/" . $value; 
  				if ( @is_dir ( $value ) ) {
  					RecursiveFolderDelete ( $value );
  				}
--- 1551,1557 ----
  		$dh  = @opendir($folderPath);
  		while (false !== ($value = @readdir($dh))) {
  			if ( $value != "." && $value != ".." ) {
! 				$value = $folderPath . "/" . $value;
  				if ( @is_dir ( $value ) ) {
  					RecursiveFolderDelete ( $value );
  				}
***************
*** 1602,1611 ****
  
  	if ( isset( $_POST[ 'cache_gc_email_me' ] ) && $valid_nonce ) {
  		$cache_gc_email_me = 1;
! 		wp_cache_replace_line('^ *\$cache_gc_email_me', "\$cache_gc_email_me = $cache_gc_email_me;", $wp_cache_config_file); 
  	} elseif ( $valid_nonce ) {
  		$cache_gc_email_me = 0;
! 		wp_cache_replace_line('^ *\$cache_gc_email_me', "\$cache_gc_email_me = $cache_gc_email_me;", $wp_cache_config_file); 
  	}
  	if ( isset( $_POST[ 'cache_schedule_type' ] ) && $_POST[ 'cache_schedule_type' ] == 'interval' && isset( $_POST['cache_time_interval'] ) && $valid_nonce ) {
  		wp_clear_scheduled_hook( 'wp_cache_gc' );
--- 1598,1607 ----
  
  	if ( isset( $_POST[ 'cache_gc_email_me' ] ) && $valid_nonce ) {
  		$cache_gc_email_me = 1;
! 		wp_cache_replace_line('^ *\$cache_gc_email_me', "\$cache_gc_email_me = $cache_gc_email_me;", $wp_cache_config_file);
  	} elseif ( $valid_nonce ) {
  		$cache_gc_email_me = 0;
! 		wp_cache_replace_line('^ *\$cache_gc_email_me', "\$cache_gc_email_me = $cache_gc_email_me;", $wp_cache_config_file);
  	}
  	if ( isset( $_POST[ 'cache_schedule_type' ] ) && $_POST[ 'cache_schedule_type' ] == 'interval' && isset( $_POST['cache_time_interval'] ) && $valid_nonce ) {
  		wp_clear_scheduled_hook( 'wp_cache_gc' );
***************
*** 1619,1628 ****
  	} elseif ( $valid_nonce ) { // clock
  		wp_clear_scheduled_hook( 'wp_cache_gc' );
  		$cache_schedule_type = 'time';
! 		if ( $_POST[ 'cache_scheduled_time' ] == '' )
  			$_POST[ 'cache_scheduled_time' ] = '00:00';
  		$cache_scheduled_time = $_POST[ 'cache_scheduled_time' ];
  		$schedules = wp_get_schedules();
  		if ( isset( $schedules[ $_POST[ 'cache_schedule_interval' ] ] ) )
  			$cache_schedule_interval = $_POST[ 'cache_schedule_interval' ];
  		wp_cache_replace_line('^ *\$cache_schedule_type', "\$cache_schedule_type = '$cache_schedule_type';", $wp_cache_config_file);
--- 1615,1626 ----
  	} elseif ( $valid_nonce ) { // clock
  		wp_clear_scheduled_hook( 'wp_cache_gc' );
  		$cache_schedule_type = 'time';
! 		if ( !isset( $_POST[ 'cache_scheduled_time' ] ) || $_POST[ 'cache_scheduled_time' ] == '' )
  			$_POST[ 'cache_scheduled_time' ] = '00:00';
  		$cache_scheduled_time = $_POST[ 'cache_scheduled_time' ];
  		$schedules = wp_get_schedules();
+ 		if ( !isset( $cache_schedule_interval ) )
+ 			$cache_schedule_interval = 'daily';
  		if ( isset( $schedules[ $_POST[ 'cache_schedule_interval' ] ] ) )
  			$cache_schedule_interval = $_POST[ 'cache_schedule_interval' ];
  		wp_cache_replace_line('^ *\$cache_schedule_type', "\$cache_schedule_type = '$cache_schedule_type';", $wp_cache_config_file);
***************
*** 1630,1636 ****
  		wp_cache_replace_line('^ *\$cache_scheduled_time', "\$cache_scheduled_time = '$cache_scheduled_time';", $wp_cache_config_file);
  		wp_schedule_event( strtotime( $cache_scheduled_time ), $cache_schedule_interval, 'wp_cache_gc' );
  	}
! 	?><fieldset class="options"> 
  	<a name='expirytime'></a>
  	<h3><?php _e( 'Expiry Time &amp; Garbage Collection', 'wp-super-cache' ); ?></h3><?php
  
--- 1628,1634 ----
  		wp_cache_replace_line('^ *\$cache_scheduled_time', "\$cache_scheduled_time = '$cache_scheduled_time';", $wp_cache_config_file);
  		wp_schedule_event( strtotime( $cache_scheduled_time ), $cache_schedule_interval, 'wp_cache_gc' );
  	}
! 	?><fieldset class="options">
  	<a name='expirytime'></a>
  	<h3><?php _e( 'Expiry Time &amp; Garbage Collection', 'wp-super-cache' ); ?></h3><?php
  
***************
*** 1696,1702 ****
  	echo "</ol>";
  	echo "<p>" . __( 'Checking for and deleting expired files is expensive, but it&#8217;s expensive leaving them there too. On a very busy site you should set the expiry time to <em>600 seconds</em>. Experiment with different values and visit this page to see how many expired files remain at different times during the day. If you are using legacy caching aim to have less than 500 cached files if possible. You can have many times more cached files when using mod_rewrite or PHP caching.', 'wp-super-cache' ) . "</p>";
  	echo "<p>" . __( 'Set the expiry time to 0 seconds to disable garbage collection.', 'wp-super-cache' ) . "</p>";
! 	echo '<div class="submit"><input type="submit" ' . SUBMITDISABLED . 'value="' . __( 'Change Expiration', 'wp-super-cache' ) . ' &raquo;" /></div>';
  	wp_nonce_field('wp-cache');
  	echo "</form>\n";
  	?></fieldset><?php
--- 1694,1700 ----
  	echo "</ol>";
  	echo "<p>" . __( 'Checking for and deleting expired files is expensive, but it&#8217;s expensive leaving them there too. On a very busy site you should set the expiry time to <em>600 seconds</em>. Experiment with different values and visit this page to see how many expired files remain at different times during the day. If you are using legacy caching aim to have less than 500 cached files if possible. You can have many times more cached files when using mod_rewrite or PHP caching.', 'wp-super-cache' ) . "</p>";
  	echo "<p>" . __( 'Set the expiry time to 0 seconds to disable garbage collection.', 'wp-super-cache' ) . "</p>";
! 	echo '<div class="submit"><input class="button-primary" type="submit" ' . SUBMITDISABLED . 'value="' . __( 'Change Expiration', 'wp-super-cache' ) . '" /></div>';
  	wp_nonce_field('wp-cache');
  	echo "</form>\n";
  	?></fieldset><?php
***************
*** 1748,1754 ****
  		echo esc_html( $ua ) . "\n";
  	}
  	echo '</textarea> ';
! 	echo '<div class="submit"><input type="submit" ' . SUBMITDISABLED . 'value="' . __( 'Save UA Strings', 'wp-super-cache' ) . ' &raquo;" /></div>';
  	wp_nonce_field('wp-cache');
  	echo '</form>';
  	echo "</fieldset>\n";
--- 1746,1752 ----
  		echo esc_html( $ua ) . "\n";
  	}
  	echo '</textarea> ';
! 	echo '<div class="submit"><input class="button-primary" type="submit" ' . SUBMITDISABLED . 'value="' . __( 'Save UA Strings', 'wp-super-cache' ) . '" /></div>';
  	wp_nonce_field('wp-cache');
  	echo '</form>';
  	echo "</fieldset>\n";
***************
*** 1785,1791 ****
  	echo '<label><input type="checkbox" value="1" name="wp_cache_pages[search]" ' . checked( 1, $wp_cache_pages[ 'search' ], false ) . ' /> ' . __( 'Search Pages', 'wp-super-cache' ) . ' (is_search)</label><br />';
  	echo '<label><input type="checkbox" value="1" name="wp_cache_pages[author]" ' . checked( 1, $wp_cache_pages[ 'author' ], false ) . ' /> ' . __( 'Author Pages', 'wp-super-cache' ) . ' (is_author)</label><br />';
  
! 	echo '<div class="submit"><input type="submit" ' . SUBMITDISABLED . 'value="' . __( 'Save' ) . ' &raquo;" /></div>';
  	wp_nonce_field('wp-cache');
  	echo "</form>\n";
  
--- 1783,1789 ----
  	echo '<label><input type="checkbox" value="1" name="wp_cache_pages[search]" ' . checked( 1, $wp_cache_pages[ 'search' ], false ) . ' /> ' . __( 'Search Pages', 'wp-super-cache' ) . ' (is_search)</label><br />';
  	echo '<label><input type="checkbox" value="1" name="wp_cache_pages[author]" ' . checked( 1, $wp_cache_pages[ 'author' ], false ) . ' /> ' . __( 'Author Pages', 'wp-super-cache' ) . ' (is_author)</label><br />';
  
! 	echo '<div class="submit"><input class="button-primary" type="submit" ' . SUBMITDISABLED . 'value="' . __( 'Save' ) . '" /></div>';
  	wp_nonce_field('wp-cache');
  	echo "</form>\n";
  
***************
*** 1808,1814 ****
  		echo esc_html( $file ) . "\n";
  	}
  	echo '</textarea> ';
! 	echo '<div class="submit"><input type="submit" ' . SUBMITDISABLED . 'value="' . __( 'Save Strings', 'wp-super-cache' ) . ' &raquo;" /></div>';
  	wp_nonce_field('wp-cache');
  	echo "</form>\n";
  }
--- 1806,1812 ----
  		echo esc_html( $file ) . "\n";
  	}
  	echo '</textarea> ';
! 	echo '<div class="submit"><input class="button-primary" type="submit" ' . SUBMITDISABLED . 'value="' . __( 'Save Strings', 'wp-super-cache' ) . '" /></div>';
  	wp_nonce_field('wp-cache');
  	echo "</form>\n";
  }
***************
*** 1830,1836 ****
  		echo esc_html($file) . "\n";
  	}
  	echo '</textarea> ';
! 	echo '<div class="submit"><input type="submit" ' . SUBMITDISABLED . 'value="' . __( 'Save Files', 'wp-super-cache' ) . ' &raquo;" /></div>';
  	wp_nonce_field('wp-cache');
  	echo "</form>\n";
  }
--- 1828,1834 ----
  		echo esc_html($file) . "\n";
  	}
  	echo '</textarea> ';
! 	echo '<div class="submit"><input class="button-primary" type="submit" ' . SUBMITDISABLED . 'value="' . __( 'Save Files', 'wp-super-cache' ) . '" /></div>';
  	wp_nonce_field('wp-cache');
  	echo "</form>\n";
  }
***************
*** 1842,1847 ****
--- 1840,1847 ----
  	if ( false == isset( $wp_super_cache_comments ) )
  		$wp_super_cache_comments = 1;
  	if ( isset( $_POST[ 'wp_cache_debug' ] ) && $valid_nonce ) {
+ 		if ( !isset( $_POST[ 'wp_super_cache_debug' ] ) )
+ 			$_POST[ 'wp_super_cache_debug' ] = 0;
  		$wp_super_cache_debug = intval( $_POST[ 'wp_super_cache_debug' ] );
  		wp_cache_replace_line('^ *\$wp_super_cache_debug', "\$wp_super_cache_debug = '$wp_super_cache_debug';", $wp_cache_config_file);
  		if ( $wp_super_cache_debug && ( ( isset( $wp_cache_debug_log ) && $wp_cache_debug_log == '' ) || !isset( $wp_cache_debug_log ) ) ) {
***************
*** 1850,1868 ****
  			$wp_cache_debug_log = "";
  		}
  		wp_cache_replace_line('^ *\$wp_cache_debug_log', "\$wp_cache_debug_log = '$wp_cache_debug_log';", $wp_cache_config_file);
! 		$wp_super_cache_comments = (int)$_POST[ 'wp_super_cache_comments' ];
  		wp_cache_replace_line('^ *\$wp_super_cache_comments', "\$wp_super_cache_comments = '$wp_super_cache_comments';", $wp_cache_config_file);
  		$wp_cache_debug_ip = esc_html( $_POST[ 'wp_cache_debug_ip' ] );
  		wp_cache_replace_line('^ *\$wp_cache_debug_ip', "\$wp_cache_debug_ip = '$wp_cache_debug_ip';", $wp_cache_config_file);
! 		$wp_super_cache_front_page_check = (int)$_POST[ 'wp_super_cache_front_page_check' ];
  		wp_cache_replace_line('^ *\$wp_super_cache_front_page_check', "\$wp_super_cache_front_page_check = '$wp_super_cache_front_page_check';", $wp_cache_config_file);
! 		$wp_super_cache_front_page_clear = (int)$_POST[ 'wp_super_cache_front_page_clear' ];
  		wp_cache_replace_line('^ *\$wp_super_cache_front_page_clear', "\$wp_super_cache_front_page_clear = '$wp_super_cache_front_page_clear';", $wp_cache_config_file);
  		$wp_super_cache_front_page_text = esc_html( $_POST[ 'wp_super_cache_front_page_text' ] );
  		wp_cache_replace_line('^ *\$wp_super_cache_front_page_text', "\$wp_super_cache_front_page_text = '$wp_super_cache_front_page_text';", $wp_cache_config_file);
! 		$wp_super_cache_front_page_notification = (int)$_POST[ 'wp_super_cache_front_page_notification' ];
  		wp_cache_replace_line('^ *\$wp_super_cache_front_page_notification', "\$wp_super_cache_front_page_notification = '$wp_super_cache_front_page_notification';", $wp_cache_config_file);
! 		if ( isset( $wp_super_cache_front_page_check ) && $wp_super_cache_front_page_check == 1 && !wp_next_scheduled( 'wp_cache_check_site_hook' ) ) {
  			wp_schedule_single_event( time() + 360 , 'wp_cache_check_site_hook' );
  			if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'scheduled wp_cache_check_site_hook for 360 seconds time.', 2 );
  		}
--- 1850,1868 ----
  			$wp_cache_debug_log = "";
  		}
  		wp_cache_replace_line('^ *\$wp_cache_debug_log', "\$wp_cache_debug_log = '$wp_cache_debug_log';", $wp_cache_config_file);
! 		$wp_super_cache_comments = isset( $_POST[ 'wp_super_cache_comments' ] ) ? 1 : 0;
  		wp_cache_replace_line('^ *\$wp_super_cache_comments', "\$wp_super_cache_comments = '$wp_super_cache_comments';", $wp_cache_config_file);
  		$wp_cache_debug_ip = esc_html( $_POST[ 'wp_cache_debug_ip' ] );
  		wp_cache_replace_line('^ *\$wp_cache_debug_ip', "\$wp_cache_debug_ip = '$wp_cache_debug_ip';", $wp_cache_config_file);
! 		$wp_super_cache_front_page_check = isset( $_POST[ 'wp_super_cache_front_page_check' ] ) ? 1 : 0;
  		wp_cache_replace_line('^ *\$wp_super_cache_front_page_check', "\$wp_super_cache_front_page_check = '$wp_super_cache_front_page_check';", $wp_cache_config_file);
! 		$wp_super_cache_front_page_clear = isset( $_POST[ 'wp_super_cache_front_page_clear' ] ) ? 1 : 0;
  		wp_cache_replace_line('^ *\$wp_super_cache_front_page_clear', "\$wp_super_cache_front_page_clear = '$wp_super_cache_front_page_clear';", $wp_cache_config_file);
  		$wp_super_cache_front_page_text = esc_html( $_POST[ 'wp_super_cache_front_page_text' ] );
  		wp_cache_replace_line('^ *\$wp_super_cache_front_page_text', "\$wp_super_cache_front_page_text = '$wp_super_cache_front_page_text';", $wp_cache_config_file);
! 		$wp_super_cache_front_page_notification = isset( $_POST[ 'wp_super_cache_front_page_notification' ] ) ? 1 : 0;
  		wp_cache_replace_line('^ *\$wp_super_cache_front_page_notification', "\$wp_super_cache_front_page_notification = '$wp_super_cache_front_page_notification';", $wp_cache_config_file);
! 		if ( $wp_super_cache_front_page_check == 1 && !wp_next_scheduled( 'wp_cache_check_site_hook' ) ) {
  			wp_schedule_single_event( time() + 360 , 'wp_cache_check_site_hook' );
  			if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( 'scheduled wp_cache_check_site_hook for 360 seconds time.', 2 );
  		}
***************
*** 1894,1903 ****
  	echo "<tr><td valign='top'>" . __( 'Front page text', 'wp-super-cache' ) . "</td><td> <input type='text' size='30' name='wp_super_cache_front_page_text' value='{$wp_super_cache_front_page_text}' /> (" . __( 'Text to search for on your front page. If this text is missing the cache will be cleared. Leave blank to disable.', 'wp-super-cache' ) . ")</td></tr>";
  	echo "<tr><td valign='top' colspan='2'><input type='checkbox' name='wp_super_cache_front_page_clear' value='1' " . checked( 1, $wp_super_cache_front_page_clear, false ) . " /> " . __( 'Clear cache on error.', 'wp-super-cache' ) . "</td></tr>";
  	echo "<tr><td valign='top' colspan='2'><input type='checkbox' name='wp_super_cache_front_page_notification' value='1' " . checked( 1, $wp_super_cache_front_page_notification, false ) . " /> " . __( 'Email the blog admin when checks are made. (useful for testing)', 'wp-super-cache' ) . "</td></tr>";
! 	
  	echo "</table>\n";
  	}
! 	echo '<div class="submit"><input type="submit" ' . SUBMITDISABLED . 'value="' . __( 'Save', 'wp-super-cache' ) . ' &raquo;" /></div>';
  	wp_nonce_field('wp-cache');
  	echo "</form>\n";
  	echo '</fieldset>';
--- 1894,1903 ----
  	echo "<tr><td valign='top'>" . __( 'Front page text', 'wp-super-cache' ) . "</td><td> <input type='text' size='30' name='wp_super_cache_front_page_text' value='{$wp_super_cache_front_page_text}' /> (" . __( 'Text to search for on your front page. If this text is missing the cache will be cleared. Leave blank to disable.', 'wp-super-cache' ) . ")</td></tr>";
  	echo "<tr><td valign='top' colspan='2'><input type='checkbox' name='wp_super_cache_front_page_clear' value='1' " . checked( 1, $wp_super_cache_front_page_clear, false ) . " /> " . __( 'Clear cache on error.', 'wp-super-cache' ) . "</td></tr>";
  	echo "<tr><td valign='top' colspan='2'><input type='checkbox' name='wp_super_cache_front_page_notification' value='1' " . checked( 1, $wp_super_cache_front_page_notification, false ) . " /> " . __( 'Email the blog admin when checks are made. (useful for testing)', 'wp-super-cache' ) . "</td></tr>";
! 
  	echo "</table>\n";
  	}
! 	echo '<div class="submit"><input class="button-primary" type="submit" ' . SUBMITDISABLED . 'value="' . __( 'Save', 'wp-super-cache' ) . '" /></div>';
  	wp_nonce_field('wp-cache');
  	echo "</form>\n";
  	echo '</fieldset>';
***************
*** 2116,2122 ****
  
  function wp_cache_check_link() {
  	global $wp_cache_link, $wp_cache_file;
!  
   	$ret = true;
  	if( file_exists($wp_cache_link) ) {
  		$file = file_get_contents( $wp_cache_link );
--- 2116,2122 ----
  
  function wp_cache_check_link() {
  	global $wp_cache_link, $wp_cache_file;
! 
   	$ret = true;
  	if( file_exists($wp_cache_link) ) {
  		$file = file_get_contents( $wp_cache_link );
***************
*** 2169,2175 ****
  		}
  		return false;
  	}  else {
! 		echo "<div style='border: 1px solid #333; background: #ffffaa; padding: 2px;'>" . __( '<h3>WP_CACHE constant added to wp-config.php</h3><p>If you continue to see this warning message please see point 5 of the <a href="http://wordpress.org/extend/plugins/wp-super-cache/faq/">Troubleshooting Guide</a>. The WP_CACHE line must be moved up.', 'wp-super-cache' ) . "</p></div>";
  	}
  	return true;
  }
--- 2169,2175 ----
  		}
  		return false;
  	}  else {
! 		echo "<div style='border: 1px solid #333; background: #ffffaa; padding: 2px;'>" . __( '<h3>WP_CACHE constant added to wp-config.php</h3><p>If you continue to see this warning message please see point 5 of the <a href="http://wordpress.org/plugins/wp-super-cache/faq/">Troubleshooting Guide</a>. The WP_CACHE line must be moved up.', 'wp-super-cache' ) . "</p></div>";
  	}
  	return true;
  }
***************
*** 2212,2218 ****
  	$count = 0;
  	$expired = 0;
  	$now = time();
! 	if ( ($handle = @opendir( $blog_cache_dir . 'meta/' )) ) { 
  		$wp_cache_fsize = 0;
  		if ( $valid_nonce && isset( $_GET[ 'action' ] ) && $_GET[ 'action' ] == 'deletewpcache' ) {
  			$deleteuri = preg_replace( '/[ <>\'\"\r\n\t\(\)]/', '', str_replace( '/index.php', '/', str_replace( '..', '', preg_replace("/(\?.*)?$/", '', base64_decode( $_GET[ 'uri' ] ) ) ) ) );
--- 2212,2218 ----
  	$count = 0;
  	$expired = 0;
  	$now = time();
! 	if ( ($handle = @opendir( $blog_cache_dir . 'meta/' )) ) {
  		$wp_cache_fsize = 0;
  		if ( $valid_nonce && isset( $_GET[ 'action' ] ) && $_GET[ 'action' ] == 'deletewpcache' ) {
  			$deleteuri = preg_replace( '/[ <>\'\"\r\n\t\(\)]/', '', str_replace( '/index.php', '/', str_replace( '..', '', preg_replace("/(\?.*)?$/", '', base64_decode( $_GET[ 'uri' ] ) ) ) ) );
***************
*** 2234,2244 ****
  			if ( preg_match("/^$file_prefix.*\.meta/", $file) ) {
  				$content_file = preg_replace("/meta$/", "html", $file);
  				$mtime = filemtime( $blog_cache_dir . 'meta/' . $file );
! 				if ( ! ( $fsize = @filesize( $blog_cache_dir . $content_file ) ) ) 
  					continue; // .meta does not exists
  
  				$age = $now - $mtime;
! 				if ( $valid_nonce && $_GET[ 'listfiles' ] ) {
  					$meta = unserialize( file_get_contents( $blog_cache_dir . 'meta/' . $file ) );
  					if ( $deleteuri != '' && $meta[ 'uri' ] == $deleteuri ) {
  						printf( __( "Deleting wp-cache file: <strong>%s</strong><br />", 'wp-super-cache' ), $deleteuri );
--- 2234,2244 ----
  			if ( preg_match("/^$file_prefix.*\.meta/", $file) ) {
  				$content_file = preg_replace("/meta$/", "html", $file);
  				$mtime = filemtime( $blog_cache_dir . 'meta/' . $file );
! 				if ( ! ( $fsize = @filesize( $blog_cache_dir . $content_file ) ) )
  					continue; // .meta does not exists
  
  				$age = $now - $mtime;
! 				if ( $valid_nonce && isset( $_GET[ 'listfiles' ] ) ) {
  					$meta = unserialize( file_get_contents( $blog_cache_dir . 'meta/' . $file ) );
  					if ( $deleteuri != '' && $meta[ 'uri' ] == $deleteuri ) {
  						printf( __( "Deleting wp-cache file: <strong>%s</strong><br />", 'wp-super-cache' ), $deleteuri );
***************
*** 2301,2307 ****
  			if ( $valid_nonce && $_GET[ 'listfiles' ] && $filem )
  				$sizes[ 'cached_list' ][ str_replace( $cache_path . 'supercache/' , '', $supercachedir ) ] = $now - $filem;
  		}
! 	} 
  	$sizes[ 'ts' ] = time();
  	$cache_stats = array( 'generated' => time(), 'supercache' => $sizes, 'wpcache' => array( 'cached' => $count, 'expired' => $expired, 'fsize' => $wp_cache_fsize ) );
  	update_option( 'supercache_stats', $cache_stats );
--- 2301,2307 ----
  			if ( $valid_nonce && $_GET[ 'listfiles' ] && $filem )
  				$sizes[ 'cached_list' ][ str_replace( $cache_path . 'supercache/' , '', $supercachedir ) ] = $now - $filem;
  		}
! 	}
  	$sizes[ 'ts' ] = time();
  	$cache_stats = array( 'generated' => time(), 'supercache' => $sizes, 'wpcache' => array( 'cached' => $count, 'expired' => $expired, 'fsize' => $wp_cache_fsize ) );
  	update_option( 'supercache_stats', $cache_stats );
***************
*** 2339,2345 ****
  		echo "<li>" . sprintf( __( '%s Expired Pages', 'wp-super-cache' ), intval( $cache_stats[ 'supercache' ][ 'expired' ] / $divisor ) ) . "</li></ul>";
  		if ( $valid_nonce && array_key_exists('listfiles', $_GET) && $_GET[ 'listfiles' ] ) {
  			echo "<div style='padding: 10px; border: 1px solid #333; height: 400px; width: 90%; overflow: auto'>";
! 			if ( is_array( $cached_list ) && !empty( $cached_list ) ) {
  				echo "<h4>" . __( 'Fresh WP-Cached Files', 'wp-super-cache' ) . "</h4>";
  				echo "<table class='widefat'><tr><th>#</th><th>" . __( 'URI', 'wp-super-cache' ) . "</th><th>" . __( 'Key', 'wp-super-cache' ) . "</th><th>" . __( 'Age', 'wp-super-cache' ) . "</th><th>" . __( 'Delete', 'wp-super-cache' ) . "</th></tr>";
  				$c = 1;
--- 2339,2345 ----
  		echo "<li>" . sprintf( __( '%s Expired Pages', 'wp-super-cache' ), intval( $cache_stats[ 'supercache' ][ 'expired' ] / $divisor ) ) . "</li></ul>";
  		if ( $valid_nonce && array_key_exists('listfiles', $_GET) && $_GET[ 'listfiles' ] ) {
  			echo "<div style='padding: 10px; border: 1px solid #333; height: 400px; width: 90%; overflow: auto'>";
! 			if ( isset( $cached_list ) && is_array( $cached_list ) && !empty( $cached_list ) ) {
  				echo "<h4>" . __( 'Fresh WP-Cached Files', 'wp-super-cache' ) . "</h4>";
  				echo "<table class='widefat'><tr><th>#</th><th>" . __( 'URI', 'wp-super-cache' ) . "</th><th>" . __( 'Key', 'wp-super-cache' ) . "</th><th>" . __( 'Age', 'wp-super-cache' ) . "</th><th>" . __( 'Delete', 'wp-super-cache' ) . "</th></tr>";
  				$c = 1;
***************
*** 2355,2361 ****
  				}
  				echo "</table>";
  			}
! 			if ( is_array( $expired_list ) && !empty( $expired_list ) ) {
  				echo "<h4>" . __( 'Stale WP-Cached Files', 'wp-super-cache' ) . "</h4>";
  				echo "<table class='widefat'><tr><th>#</th><th>" . __( 'URI', 'wp-super-cache' ) . "</th><th>" . __( 'Key', 'wp-super-cache' ) . "</th><th>" . __( 'Age', 'wp-super-cache' ) . "</th><th>" . __( 'Delete', 'wp-super-cache' ) . "</th></tr>";
  				$c = 1;
--- 2355,2361 ----
  				}
  				echo "</table>";
  			}
! 			if ( isset( $expired_list ) && is_array( $expired_list ) && !empty( $expired_list ) ) {
  				echo "<h4>" . __( 'Stale WP-Cached Files', 'wp-super-cache' ) . "</h4>";
  				echo "<table class='widefat'><tr><th>#</th><th>" . __( 'URI', 'wp-super-cache' ) . "</th><th>" . __( 'Key', 'wp-super-cache' ) . "</th><th>" . __( 'Age', 'wp-super-cache' ) . "</th><th>" . __( 'Delete', 'wp-super-cache' ) . "</th></tr>";
  				$c = 1;
***************
*** 2422,2440 ****
  
  	echo '<form name="wp_cache_content_expired" action="#listfiles" method="post">';
  	echo '<input type="hidden" name="wp_delete_expired" />';
! 	echo '<div class="submit" style="float:left"><input type="submit" ' . SUBMITDISABLED . 'value="' . __( 'Delete Expired', 'wp-super-cache' ) . ' &raquo;" /></div>';
  	wp_nonce_field('wp-cache');
  	echo "</form>\n";
  
  	echo '<form name="wp_cache_content_delete" action="#listfiles" method="post">';
  	echo '<input type="hidden" name="wp_delete_cache" />';
! 	echo '<div class="submit" style="float:left;margin-left:10px"><input id="deletepost" type="submit" ' . SUBMITDISABLED . 'value="' . __( 'Delete Cache', 'wp-super-cache' ) . ' &raquo;" /></div>';
  	wp_nonce_field('wp-cache');
  	echo "</form>\n";
  	if ( ( defined( 'VHOST' ) || ( defined( 'WP_ALLOW_MULTISITE' ) && constant( 'WP_ALLOW_MULTISITE' ) == true ) ) && wpsupercache_site_admin() ) {
  		echo '<form name="wp_cache_content_delete" action="#listfiles" method="post">';
  		echo '<input type="hidden" name="wp_delete_all_cache" />';
! 		echo '<div class="submit" style="float:left;margin-left:10px"><input id="deleteallpost" type="submit" ' . SUBMITDISABLED . 'value="' . __( 'Delete Cache On All Blogs', 'wp-super-cache' ) . ' &raquo;" />';
  		wp_nonce_field('wp-cache');
  		echo "</form>\n";
  	}
--- 2422,2440 ----
  
  	echo '<form name="wp_cache_content_expired" action="#listfiles" method="post">';
  	echo '<input type="hidden" name="wp_delete_expired" />';
! 	echo '<div class="submit" style="float:left"><input class="button-primary" type="submit" ' . SUBMITDISABLED . 'value="' . __( 'Delete Expired', 'wp-super-cache' ) . '" /></div>';
  	wp_nonce_field('wp-cache');
  	echo "</form>\n";
  
  	echo '<form name="wp_cache_content_delete" action="#listfiles" method="post">';
  	echo '<input type="hidden" name="wp_delete_cache" />';
! 	echo '<div class="submit" style="float:left;margin-left:10px"><input id="deletepost" class="button-secondary" type="submit" ' . SUBMITDISABLED . 'value="' . __( 'Delete Cache', 'wp-super-cache' ) . '" /></div>';
  	wp_nonce_field('wp-cache');
  	echo "</form>\n";
  	if ( ( defined( 'VHOST' ) || ( defined( 'WP_ALLOW_MULTISITE' ) && constant( 'WP_ALLOW_MULTISITE' ) == true ) ) && wpsupercache_site_admin() ) {
  		echo '<form name="wp_cache_content_delete" action="#listfiles" method="post">';
  		echo '<input type="hidden" name="wp_delete_all_cache" />';
! 		echo '<div class="submit" style="float:left;margin-left:10px"><input id="deleteallpost" class="button-secondary" type="submit" ' . SUBMITDISABLED . 'value="' . __( 'Delete Cache On All Blogs', 'wp-super-cache' ) . '" />';
  		wp_nonce_field('wp-cache');
  		echo "</form>\n";
  	}
***************
*** 2512,2518 ****
  
  function wp_cache_clean_legacy_files( $dir, $file_prefix ) {
  	global $wpdb;
! 	if ( $handle = @opendir( $dir . 'meta/' ) ) { 
  		while ( false !== ($file = readdir($handle))) {
  			if ( preg_match( "/^$file_prefix/", $file ) ) {
  				$meta = unserialize( file_get_contents( $dir . 'meta/' . $file ) );
--- 2512,2518 ----
  
  function wp_cache_clean_legacy_files( $dir, $file_prefix ) {
  	global $wpdb;
! 	if ( $handle = @opendir( $dir . 'meta/' ) ) {
  		while ( false !== ($file = readdir($handle))) {
  			if ( preg_match( "/^$file_prefix/", $file ) ) {
  				$meta = unserialize( file_get_contents( $dir . 'meta/' . $file ) );
***************
*** 2549,2555 ****
  
  	$expr = "/^$file_prefix/";
  	$now = time();
! 	if ( ($handle = @opendir( $blog_cache_dir )) ) { 
  		while ( false !== ($file = readdir($handle))) {
  			if ( preg_match( $expr, $file )  &&
  				( filemtime( $blog_cache_dir . $file ) + $cache_max_time ) <= $now ) {
--- 2549,2555 ----
  
  	$expr = "/^$file_prefix/";
  	$now = time();
! 	if ( ($handle = @opendir( $blog_cache_dir )) ) {
  		while ( false !== ($file = readdir($handle))) {
  			if ( preg_match( $expr, $file )  &&
  				( filemtime( $blog_cache_dir . $file ) + $cache_max_time ) <= $now ) {
***************
*** 2669,2675 ****
                          if ( !isset( $wp_super_cache_front_page_clear ) || ( isset( $wp_super_cache_front_page_clear ) && $wp_super_cache_front_page_clear == 0 ) ) {
                                  wp_mail( get_option( 'admin_email' ), sprintf( __( '[%s] Front page is gzipped! Please clear cache!', 'wp-super-cache' ), site_url() ), sprintf( __( "Please visit %s to clear the cache as the front page of your site is now downloading!", 'wp-super-cache' ), trailingslashit( site_url() ) . "wp-admin/options-general.php?page=wpsupercache" ) );
                          } else {
!                                 wp_cache_clear_cache();
                                  wp_mail( get_option( 'admin_email' ), sprintf( __( '[%s] Front page is gzipped! Cache Cleared!', 'wp-super-cache' ), site_url() ), sprintf( __( "The cache on your blog has been cleared because the front page of your site is now downloading. Please visit %s to verify the cache has been cleared.", 'wp-super-cache' ), trailingslashit( site_url() ) . "wp-admin/options-general.php?page=wpsupercache" ) );
                          }
                  }
--- 2669,2675 ----
                          if ( !isset( $wp_super_cache_front_page_clear ) || ( isset( $wp_super_cache_front_page_clear ) && $wp_super_cache_front_page_clear == 0 ) ) {
                                  wp_mail( get_option( 'admin_email' ), sprintf( __( '[%s] Front page is gzipped! Please clear cache!', 'wp-super-cache' ), site_url() ), sprintf( __( "Please visit %s to clear the cache as the front page of your site is now downloading!", 'wp-super-cache' ), trailingslashit( site_url() ) . "wp-admin/options-general.php?page=wpsupercache" ) );
                          } else {
!                                 wp_cache_clear_cache( get_current_blog_id() );
                                  wp_mail( get_option( 'admin_email' ), sprintf( __( '[%s] Front page is gzipped! Cache Cleared!', 'wp-super-cache' ), site_url() ), sprintf( __( "The cache on your blog has been cleared because the front page of your site is now downloading. Please visit %s to verify the cache has been cleared.", 'wp-super-cache' ), trailingslashit( site_url() ) . "wp-admin/options-general.php?page=wpsupercache" ) );
                          }
                  }
***************
*** 2679,2685 ****
  			if ( !isset( $wp_super_cache_front_page_clear ) || ( isset( $wp_super_cache_front_page_clear ) && $wp_super_cache_front_page_clear == 0 ) ) {
                                  wp_mail( get_option( 'admin_email' ), sprintf( __( '[%s] Front page is not correct! Please clear cache!', 'wp-super-cache' ), site_url() ), sprintf( __( 'Please visit %1$s to clear the cache as the front page of your site is not correct and missing the text, "%2$s"!', 'wp-super-cache' ), trailingslashit( site_url() ) . "wp-admin/options-general.php?page=wpsupercache", $wp_super_cache_front_page_text ) );
                          } else {
!                                 wp_cache_clear_cache();
                                  wp_mail( get_option( 'admin_email' ), sprintf( __( '[%s] Front page is not correct! Cache Cleared!', 'wp-super-cache' ), site_url() ), sprintf( __( 'The cache on your blog has been cleared because the front page of your site is missing the text "%2$s". Please visit %1$s to verify the cache has been cleared.', 'wp-super-cache' ), trailingslashit( site_url() ) . "wp-admin/options-general.php?page=wpsupercache", $wp_super_cache_front_page_text ) );
  			}
  		}
--- 2679,2685 ----
  			if ( !isset( $wp_super_cache_front_page_clear ) || ( isset( $wp_super_cache_front_page_clear ) && $wp_super_cache_front_page_clear == 0 ) ) {
                                  wp_mail( get_option( 'admin_email' ), sprintf( __( '[%s] Front page is not correct! Please clear cache!', 'wp-super-cache' ), site_url() ), sprintf( __( 'Please visit %1$s to clear the cache as the front page of your site is not correct and missing the text, "%2$s"!', 'wp-super-cache' ), trailingslashit( site_url() ) . "wp-admin/options-general.php?page=wpsupercache", $wp_super_cache_front_page_text ) );
                          } else {
!                                 wp_cache_clear_cache( get_current_blog_id() );
                                  wp_mail( get_option( 'admin_email' ), sprintf( __( '[%s] Front page is not correct! Cache Cleared!', 'wp-super-cache' ), site_url() ), sprintf( __( 'The cache on your blog has been cleared because the front page of your site is missing the text "%2$s". Please visit %1$s to verify the cache has been cleared.', 'wp-super-cache' ), trailingslashit( site_url() ) . "wp-admin/options-general.php?page=wpsupercache", $wp_super_cache_front_page_text ) );
  			}
  		}
***************
*** 2709,2715 ****
  		$wp_cache_mobile_groups = $mobile_groups;
  		wp_cache_replace_line('^ *\$wp_cache_mobile_groups', "\$wp_cache_mobile_groups = '" . implode( ', ', $mobile_groups ) . "';", $wp_cache_config_file);
  	}
! 	
  	return true;
  }
  
--- 2709,2715 ----
  		$wp_cache_mobile_groups = $mobile_groups;
  		wp_cache_replace_line('^ *\$wp_cache_mobile_groups', "\$wp_cache_mobile_groups = '" . implode( ', ', $mobile_groups ) . "';", $wp_cache_config_file);
  	}
! 
  	return true;
  }
  
***************
*** 2742,2761 ****
  		if ( !isset( $wpmu_version ) || $wpmu_version == '' ) {
  			echo '<form name="updatehtaccess" action="#modrewrite" method="post">';
  			echo '<input type="hidden" name="updatehtaccess" value="1" />';
! 			echo '<div class="submit"><input type="submit" ' . SUBMITDISABLED . 'id="updatehtaccess" value="' . __( 'Update Mod_Rewrite Rules', 'wp-super-cache' ) . ' &raquo;" /></div>';
  			wp_nonce_field('wp-cache');
  			echo "</form></div>\n";
  		}
  	}
  }
  
! /* 
   * Return LOGGED_IN_COOKIE if it doesn't begin with wordpress_logged_in
   * to avoid having people update their .htaccess file
   */
  function wpsc_get_logged_in_cookie() {
  	$logged_in_cookie = 'wordpress_logged_in';
! 	if ( defined( 'LOGGED_IN_COOKIE' ) && substr( constant( 'LOGGED_IN_COOKIE' ), 0, 19 ) != 'wordpress_logged_in' ) 
  		$logged_in_cookie = constant( 'LOGGED_IN_COOKIE' );
  	return $logged_in_cookie;
  }
--- 2742,2761 ----
  		if ( !isset( $wpmu_version ) || $wpmu_version == '' ) {
  			echo '<form name="updatehtaccess" action="#modrewrite" method="post">';
  			echo '<input type="hidden" name="updatehtaccess" value="1" />';
! 			echo '<div class="submit"><input class="button-primary" type="submit" ' . SUBMITDISABLED . 'id="updatehtaccess" value="' . __( 'Update Mod_Rewrite Rules', 'wp-super-cache' ) . '" /></div>';
  			wp_nonce_field('wp-cache');
  			echo "</form></div>\n";
  		}
  	}
  }
  
! /*
   * Return LOGGED_IN_COOKIE if it doesn't begin with wordpress_logged_in
   * to avoid having people update their .htaccess file
   */
  function wpsc_get_logged_in_cookie() {
  	$logged_in_cookie = 'wordpress_logged_in';
! 	if ( defined( 'LOGGED_IN_COOKIE' ) && substr( constant( 'LOGGED_IN_COOKIE' ), 0, 19 ) != 'wordpress_logged_in' )
  		$logged_in_cookie = constant( 'LOGGED_IN_COOKIE' );
  	return $logged_in_cookie;
  }
***************
*** 2807,2815 ****
  	$condition_rules[] = "RewriteCond %{HTTP:X-Wap-Profile} !^[a-z0-9\\\"]+ [NC]";
  	$condition_rules[] = "RewriteCond %{HTTP:Profile} !^[a-z0-9\\\"]+ [NC]";
  	if ( $wp_cache_mobile_enabled ) {
! 		if ( false == empty( $wp_cache_mobile_browsers ) ) 
  			$condition_rules[] = "RewriteCond %{HTTP_USER_AGENT} !^.*(" . addcslashes( implode( '|', $wp_cache_mobile_browsers ), ' ' ) . ").* [NC]";
! 		if ( false == empty( $wp_cache_mobile_prefixes ) ) 
  			$condition_rules[] = "RewriteCond %{HTTP_user_agent} !^(" . addcslashes( implode( '|', $wp_cache_mobile_prefixes ), ' ' ) . ").* [NC]";
  	}
  	$condition_rules = apply_filters( 'supercacherewriteconditions', $condition_rules );
--- 2807,2815 ----
  	$condition_rules[] = "RewriteCond %{HTTP:X-Wap-Profile} !^[a-z0-9\\\"]+ [NC]";
  	$condition_rules[] = "RewriteCond %{HTTP:Profile} !^[a-z0-9\\\"]+ [NC]";
  	if ( $wp_cache_mobile_enabled ) {
! 		if ( false == empty( $wp_cache_mobile_browsers ) )
  			$condition_rules[] = "RewriteCond %{HTTP_USER_AGENT} !^.*(" . addcslashes( implode( '|', $wp_cache_mobile_browsers ), ' ' ) . ").* [NC]";
! 		if ( false == empty( $wp_cache_mobile_prefixes ) )
  			$condition_rules[] = "RewriteCond %{HTTP_user_agent} !^(" . addcslashes( implode( '|', $wp_cache_mobile_prefixes ), ' ' ) . ").* [NC]";
  	}
  	$condition_rules = apply_filters( 'supercacherewriteconditions', $condition_rules );
***************
*** 2867,2873 ****
  	if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( "clear_post_supercache: deleting $dir/index*.html files", 2 );
  	$files_to_check = get_all_supercache_filenames( $dir );
  	foreach( $files_to_check as $cache_file ) {
! 		prune_super_cache( $dir . $cache_file, true ); 
  	}
  }
  
--- 2867,2873 ----
  	if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( "clear_post_supercache: deleting $dir/index*.html files", 2 );
  	$files_to_check = get_all_supercache_filenames( $dir );
  	foreach( $files_to_check as $cache_file ) {
! 		prune_super_cache( $dir . $cache_file, true );
  	}
  }
  
***************
*** 3111,3117 ****
  			$code .= "<li><code>chmod 666 " . WP_CONTENT_DIR . "/{$filename}</code></li>\n";
  		}
  		$code .= "</ul>\n";
! 		
  		$msg .= "</ol>\n<p>First try fixing the directory permissions with this command and refresh this page:<br /><br /><code>chmod 777 " . WP_CONTENT_DIR . "</code><br /><br />If you still see this error, you have to fix the permissions on the files themselves and refresh this page again:</p> {$code}\n<p>Don't forgot to fix things later:<br /><code>chmod 755 " . WP_CONTENT_DIR . "</code></p><p>If you don't know what <strong>chmod</strong> is use <a href='http://www.google.ie/search?hl=en&q=ftp+chmod+777'>this Google search</a> to find out all about it.</p><p>Please refresh this page when the permissions have been modified.</p>";
  		wp_die( $msg );
  	}
--- 3111,3117 ----
  			$code .= "<li><code>chmod 666 " . WP_CONTENT_DIR . "/{$filename}</code></li>\n";
  		}
  		$code .= "</ul>\n";
! 
  		$msg .= "</ol>\n<p>First try fixing the directory permissions with this command and refresh this page:<br /><br /><code>chmod 777 " . WP_CONTENT_DIR . "</code><br /><br />If you still see this error, you have to fix the permissions on the files themselves and refresh this page again:</p> {$code}\n<p>Don't forgot to fix things later:<br /><code>chmod 755 " . WP_CONTENT_DIR . "</code></p><p>If you don't know what <strong>chmod</strong> is use <a href='http://www.google.ie/search?hl=en&q=ftp+chmod+777'>this Google search</a> to find out all about it.</p><p>Please refresh this page when the permissions have been modified.</p>";
  		wp_die( $msg );
  	}
***************
*** 3119,3125 ****
  	if ( $scrules != '' && insert_with_markers( $home_path.'.htaccess', 'WPSuperCache', array() ) ) {
  		$wp_rewrite->flush_rules();
  	} elseif( $scrules != '' ) {
! 		wp_mail( get_option( 'admin_email' ), __( 'Supercache Uninstall Problems', 'wp-super-cache' ), sprintf( __( "Dear User,\n\nWP Super Cache was removed from your blog but the mod_rewrite rules\nin your .htaccess were not.\n\nPlease edit the following file and remove the code\nbetween 'BEGIN WPSuperCache' and 'END WPSuperCache'. Please backup the file first!\n\n%s\n\nRegards,\nWP Super Cache Plugin\nhttp://wordpress.org/extend/plugins/wp-super-cache/", 'wp-super-cache' ), ABSPATH . '/.htaccess' ) );
  	}
  }
  
--- 3119,3125 ----
  	if ( $scrules != '' && insert_with_markers( $home_path.'.htaccess', 'WPSuperCache', array() ) ) {
  		$wp_rewrite->flush_rules();
  	} elseif( $scrules != '' ) {
! 		wp_mail( get_option( 'admin_email' ), __( 'Supercache Uninstall Problems', 'wp-super-cache' ), sprintf( __( "Dear User,\n\nWP Super Cache was removed from your blog but the mod_rewrite rules\nin your .htaccess were not.\n\nPlease edit the following file and remove the code\nbetween 'BEGIN WPSuperCache' and 'END WPSuperCache'. Please backup the file first!\n\n%s\n\nRegards,\nWP Super Cache Plugin\nhttp://wordpress.org/plugins/wp-super-cache/", 'wp-super-cache' ), ABSPATH . '/.htaccess' ) );
  	}
  }
  
***************
*** 3130,3136 ****
  		$dh  = @opendir($folderPath);
  		while( false !== ( $value = @readdir( $dh ) ) ) {
  			if ( $value != "." && $value != ".." ) {
! 				$value = $folderPath . "/" . $value; 
  				if ( @is_dir ( $value ) ) {
  					uninstall_supercache( $value );
  				} else {
--- 3130,3136 ----
  		$dh  = @opendir($folderPath);
  		while( false !== ( $value = @readdir( $dh ) ) ) {
  			if ( $value != "." && $value != ".." ) {
! 				$value = $folderPath . "/" . $value;
  				if ( @is_dir ( $value ) ) {
  					uninstall_supercache( $value );
  				} else {
***************
*** 3146,3152 ****
  
  function supercache_admin_bar_render() {
  	global $wp_admin_bar, $wp_cache_not_logged_in;
! 	if ( !is_user_logged_in() || !$wp_cache_not_logged_in ) 
  		return false;
  
  	if ( function_exists('current_user_can') && false == current_user_can('delete_others_posts') )
--- 3146,3152 ----
  
  function supercache_admin_bar_render() {
  	global $wp_admin_bar, $wp_cache_not_logged_in;
! 	if ( !is_user_logged_in() || !$wp_cache_not_logged_in )
  		return false;
  
  	if ( function_exists('current_user_can') && false == current_user_can('delete_others_posts') )
diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/themes/twentythirteen/languages/twentythirteen.pot /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/themes/twentythirteen/languages/twentythirteen.pot
*** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/themes/twentythirteen/languages/twentythirteen.pot	2013-10-30 20:29:20.000000000 +0300
--- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/themes/twentythirteen/languages/twentythirteen.pot	2014-03-18 22:20:11.000000000 +0300
***************
*** 1,14 ****
! # Copyright (C) 2013 the WordPress team
  # This file is distributed under the GNU General Public License v2 or later.
  msgid ""
  msgstr ""
  "Project-Id-Version: Twenty Thirteen 1.1\n"
  "Report-Msgid-Bugs-To: http://wordpress.org/tags/twentythirteen\n"
! "POT-Creation-Date: 2013-10-24 20:32:07+00:00\n"
  "MIME-Version: 1.0\n"
  "Content-Type: text/plain; charset=UTF-8\n"
  "Content-Transfer-Encoding: 8bit\n"
! "PO-Revision-Date: 2013-MO-DA HO:MI+ZONE\n"
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
  "Language-Team: LANGUAGE <LL@li.org>\n"
  
--- 1,14 ----
! # Copyright (C) 2014 the WordPress team
  # This file is distributed under the GNU General Public License v2 or later.
  msgid ""
  msgstr ""
  "Project-Id-Version: Twenty Thirteen 1.1\n"
  "Report-Msgid-Bugs-To: http://wordpress.org/tags/twentythirteen\n"
! "POT-Creation-Date: 2014-03-18 19:16:26+00:00\n"
  "MIME-Version: 1.0\n"
  "Content-Type: text/plain; charset=UTF-8\n"
  "Content-Transfer-Encoding: 8bit\n"
! "PO-Revision-Date: 2014-MO-DA HO:MI+ZONE\n"
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
  "Language-Team: LANGUAGE <LL@li.org>\n"
  
diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/themes/twentytwelve/languages/twentytwelve.pot /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/themes/twentytwelve/languages/twentytwelve.pot
*** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/themes/twentytwelve/languages/twentytwelve.pot	2013-10-30 20:29:20.000000000 +0300
--- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/themes/twentytwelve/languages/twentytwelve.pot	2014-03-18 22:20:11.000000000 +0300
***************
*** 1,14 ****
! # Copyright (C) 2013 the WordPress team
  # This file is distributed under the GNU General Public License v2 or later.
  msgid ""
  msgstr ""
  "Project-Id-Version: Twenty Twelve 1.3\n"
  "Report-Msgid-Bugs-To: http://wordpress.org/tags/twentytwelve\n"
! "POT-Creation-Date: 2013-10-24 20:32:05+00:00\n"
  "MIME-Version: 1.0\n"
  "Content-Type: text/plain; charset=UTF-8\n"
  "Content-Transfer-Encoding: 8bit\n"
! "PO-Revision-Date: 2013-MO-DA HO:MI+ZONE\n"
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
  "Language-Team: LANGUAGE <LL@li.org>\n"
  
--- 1,14 ----
! # Copyright (C) 2014 the WordPress team
  # This file is distributed under the GNU General Public License v2 or later.
  msgid ""
  msgstr ""
  "Project-Id-Version: Twenty Twelve 1.3\n"
  "Report-Msgid-Bugs-To: http://wordpress.org/tags/twentytwelve\n"
! "POT-Creation-Date: 2014-03-18 19:16:25+00:00\n"
  "MIME-Version: 1.0\n"
  "Content-Type: text/plain; charset=UTF-8\n"
  "Content-Transfer-Encoding: 8bit\n"
! "PO-Revision-Date: 2014-MO-DA HO:MI+ZONE\n"
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
  "Language-Team: LANGUAGE <LL@li.org>\n"
  
diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-includes/bookmark.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-includes/bookmark.php
*** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-includes/bookmark.php	2013-10-30 20:29:22.000000000 +0300
--- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-includes/bookmark.php	2014-04-03 07:23:10.000000000 +0400
***************
*** 208,215 ****
  		$join = " INNER JOIN $wpdb->term_relationships AS tr ON ($wpdb->links.link_id = tr.object_id) INNER JOIN $wpdb->term_taxonomy as tt ON tt.term_taxonomy_id = tr.term_taxonomy_id";
  	}
  
! 	if ( $show_updated && get_option('links_recently_updated_time') ) {
! 		$recently_updated_test = ", IF (DATE_ADD(link_updated, INTERVAL " . get_option('links_recently_updated_time') . " MINUTE) >= NOW(), 1,0) as recently_updated ";
  	} else {
  		$recently_updated_test = '';
  	}
--- 208,215 ----
  		$join = " INNER JOIN $wpdb->term_relationships AS tr ON ($wpdb->links.link_id = tr.object_id) INNER JOIN $wpdb->term_taxonomy as tt ON tt.term_taxonomy_id = tr.term_taxonomy_id";
  	}
  
! 	if ( $show_updated ) {
! 		$recently_updated_test = ", IF (DATE_ADD(link_updated, INTERVAL 120 MINUTE) >= NOW(), 1,0) as recently_updated ";
  	} else {
  		$recently_updated_test = '';
  	}
diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-includes/class-IXR.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-includes/class-IXR.php
*** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-includes/class-IXR.php	2013-10-30 20:29:22.000000000 +0300
--- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-includes/class-IXR.php	2014-08-06 21:51:19.000000000 +0400
***************
*** 203,213 ****
      {
          // first remove the XML declaration
          // merged from WP #10698 - this method avoids the RAM usage of preg_replace on very large messages
!         $header = preg_replace( '/<\?xml.*?\?'.'>/', '', substr($this->message, 0, 100), 1);
!         $this->message = substr_replace($this->message, $header, 0, 100);
!         if (trim($this->message) == '') {
              return false;
          }
          $this->_parser = xml_parser_create();
          // Set XML parser to take the case of tags in to account
          xml_parser_set_option($this->_parser, XML_OPTION_CASE_FOLDING, false);
--- 203,239 ----
      {
          // first remove the XML declaration
          // merged from WP #10698 - this method avoids the RAM usage of preg_replace on very large messages
!         $header = preg_replace( '/<\?xml.*?\?'.'>/s', '', substr( $this->message, 0, 100 ), 1 );
!         $this->message = trim( substr_replace( $this->message, $header, 0, 100 ) );
!         if ( '' == $this->message ) {
              return false;
          }
+ 
+         // Then remove the DOCTYPE
+         $header = preg_replace( '/^<!DOCTYPE[^>]*+>/i', '', substr( $this->message, 0, 200 ), 1 );
+         $this->message = trim( substr_replace( $this->message, $header, 0, 200 ) );
+         if ( '' == $this->message ) {
+             return false;
+         }
+ 
+         // Check that the root tag is valid
+         $root_tag = substr( $this->message, 0, strcspn( substr( $this->message, 0, 20 ), "> \t\r\n" ) );
+         if ( '<!DOCTYPE' === strtoupper( $root_tag ) ) {
+             return false;
+         }
+         if ( ! in_array( $root_tag, array( '<methodCall', '<methodResponse', '<fault' ) ) ) {
+             return false;
+         }
+ 
+         // Bail if there are too many elements to parse
+         $element_limit = 30000;
+         if ( function_exists( 'apply_filters' ) ) {
+             $element_limit = apply_filters( 'xmlrpc_element_limit', $element_limit );
+         }
+         if ( $element_limit && 2 * $element_limit < substr_count( $this->message, '<' ) ) {
+             return false;
+         }
+ 
          $this->_parser = xml_parser_create();
          // Set XML parser to take the case of tags in to account
          xml_parser_set_option($this->_parser, XML_OPTION_CASE_FOLDING, false);
diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-includes/class-wp-xmlrpc-server.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-includes/class-wp-xmlrpc-server.php
*** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-includes/class-wp-xmlrpc-server.php	2013-10-30 20:29:22.000000000 +0300
--- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-includes/class-wp-xmlrpc-server.php	2014-04-01 01:36:11.000000000 +0400
***************
*** 5391,5401 ****
--- 5391,5408 ----
  		// very stupid, but gives time to the 'from' server to publish !
  		sleep(1);
  
+ 		$remote_ip = preg_replace( '/[^0-9a-fA-F:., ]/', '', $_SERVER['REMOTE_ADDR'] );
+ 		$user_agent = apply_filters( 'http_headers_useragent', 'WordPress/' . $GLOBALS['wp_version'] . '; ' . get_bloginfo( 'url' ) );
+ 
  		// Let's check the remote site
  		$http_api_args = array(
  			'timeout' => 10,
  			'redirection' => 0,
  			'limit_response_size' => 153600, // 150 KB
+ 			'user-agent' => "$user_agent; verifying pingback from $remote_ip",
+ 			'headers' => array(
+ 				'X-Pingback-Forwarded-For' => $remote_ip,
+ 			),
  		);
  		$linea = wp_remote_retrieve_body( wp_safe_remote_get( $pagelinkedfrom, $http_api_args ) );
  
diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-includes/compat.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-includes/compat.php
*** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-includes/compat.php	2013-10-30 20:29:21.000000000 +0300
--- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-includes/compat.php	2014-08-06 09:45:10.000000000 +0400
***************
*** 94,96 ****
--- 94,125 ----
  		return is_array($data) ? array_map(__FUNCTION__, $data) : $data;
  	}
  }
+ 
+ if ( ! function_exists( 'hash_equals' ) ) :
+ /**
+  * Compare two strings in constant time.
+  *
+  * This function was added in PHP 5.6.
+  * It can leak the length of a string.
+  *
+  * @since 3.9.2
+  *
+  * @param string $a Expected string.
+  * @param string $b Actual string.
+  * @return bool Whether strings are equal.
+  */
+ function hash_equals( $a, $b ) {
+ 	$a_length = strlen( $a );
+ 	if ( $a_length !== strlen( $b ) ) {
+ 		return false;
+ 	}
+ 	$result = 0;
+ 
+ 	// Do not attempt to "optimize" this.
+ 	for ( $i = 0; $i < $a_length; $i++ ) {
+ 		$result |= ord( $a[ $i ] ) ^ ord( $b[ $i ] );
+ 	}
+ 
+ 	return $result === 0;
+ }
+ endif;
\ No newline at end of file
diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-includes/cron.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-includes/cron.php
*** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-includes/cron.php	2013-10-30 20:29:22.000000000 +0300
--- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-includes/cron.php	2014-04-01 07:40:10.000000000 +0400
***************
*** 160,167 ****
  		$args = array_slice( func_get_args(), 1 );
  	}
  
! 	while ( $timestamp = wp_next_scheduled( $hook, $args ) )
! 		wp_unschedule_event( $timestamp, $hook, $args );
  }
  
  /**
--- 160,178 ----
  		$args = array_slice( func_get_args(), 1 );
  	}
  
! 	// This logic duplicates wp_next_scheduled()
! 	// It's required due to a scenario where wp_unschedule_event() fails due to update_option() failing,
! 	// and, wp_next_scheduled() returns the same schedule in an infinite loop.
! 	$crons = _get_cron_array();
! 	if ( empty( $crons ) )
! 		return;
! 
! 	$key = md5( serialize( $args ) );
! 	foreach ( $crons as $timestamp => $cron ) {
! 		if ( isset( $cron[ $hook ][ $key ] ) ) {
! 			wp_unschedule_event( $timestamp, $hook, $args );
! 		}
! 	}
  }
  
  /**
diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-includes/functions.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-includes/functions.php
*** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-includes/functions.php	2013-10-30 20:29:21.000000000 +0300
--- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-includes/functions.php	2014-04-01 08:02:10.000000000 +0400
***************
*** 1372,1385 ****
  	}
  
  	// Get the permission bits.
! 	if ( $target_parent && '.' != $target_parent ) {
! 		$stat = @stat( $target_parent );
  		$dir_perms = $stat['mode'] & 0007777;
  	} else {
  		$dir_perms = 0777;
  	}
  
  	if ( @mkdir( $target, $dir_perms, true ) ) {
  		return true;
  	}
  
--- 1372,1394 ----
  	}
  
  	// Get the permission bits.
! 	$dir_perms = false;
! 	if ( $stat = @stat( $target_parent ) ) {
  		$dir_perms = $stat['mode'] & 0007777;
  	} else {
  		$dir_perms = 0777;
  	}
  
  	if ( @mkdir( $target, $dir_perms, true ) ) {
+ 
+ 		// If a umask is set that modifies $dir_perms, we'll have to re-set the $dir_perms correctly with chmod()
+ 		if ( $dir_perms != ( $dir_perms & ~umask() ) ) {
+ 			$folder_parts = explode( '/', substr( $target, strlen( $target_parent ) + 1 ) );
+ 			for ( $i = 1; $i <= count( $folder_parts ); $i++ ) {
+ 				@chmod( $target_parent . '/' . implode( '/', array_slice( $folder_parts, 0, $i ) ), $dir_perms );
+ 			}
+ 		}
+ 
  		return true;
  	}
  
diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-includes/ID3/getid3.lib.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-includes/ID3/getid3.lib.php
*** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-includes/ID3/getid3.lib.php	2013-10-30 20:29:22.000000000 +0300
--- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-includes/ID3/getid3.lib.php	2014-08-06 09:58:19.000000000 +0400
***************
*** 519,529 ****
  	}
  
  	public static function XML2array($XMLstring) {
! 		if (function_exists('simplexml_load_string')) {
! 			if (function_exists('get_object_vars')) {
! 				$XMLobject = simplexml_load_string($XMLstring);
! 				return self::SimpleXMLelement2array($XMLobject);
! 			}
  		}
  		return false;
  	}
--- 519,530 ----
  	}
  
  	public static function XML2array($XMLstring) {
! 		if ( function_exists( 'simplexml_load_string' ) && function_exists( 'libxml_disable_entity_loader' ) ) {
! 			$loader = libxml_disable_entity_loader( true );
! 			$XMLobject = simplexml_load_string( $XMLstring, 'SimpleXMLElement', LIBXML_NOENT );
! 			$return = self::SimpleXMLelement2array( $XMLobject );
! 			libxml_disable_entity_loader( $loader );
! 			return $return;
  		}
  		return false;
  	}
Binary files /home/packages/qi/SOURCES/wordpress-3.7.1/wp-includes/js/plupload/plupload.silverlight.xap and /home/packages/qi/SOURCES/wordpress-3.7.4/wp-includes/js/plupload/plupload.silverlight.xap differ
diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-includes/option.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-includes/option.php
*** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-includes/option.php	2013-10-30 20:29:22.000000000 +0300
--- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-includes/option.php	2014-04-01 08:07:09.000000000 +0400
***************
*** 757,763 ****
   		return $pre;
  
  	// prevent non-existent options from triggering multiple queries
! 	$notoptions = wp_cache_get( 'notoptions', 'site-options' );
  	if ( isset( $notoptions[$option] ) )
  		return apply_filters( 'default_site_option_' . $option, $default );
  
--- 757,764 ----
   		return $pre;
  
  	// prevent non-existent options from triggering multiple queries
! 	$notoptions_key = "{$wpdb->siteid}:notoptions";
! 	$notoptions = wp_cache_get( $notoptions_key, 'site-options' );
  	if ( isset( $notoptions[$option] ) )
  		return apply_filters( 'default_site_option_' . $option, $default );
  
***************
*** 779,785 ****
  				wp_cache_set( $cache_key, $value, 'site-options' );
  			} else {
  				$notoptions[$option] = true;
! 				wp_cache_set( 'notoptions', $notoptions, 'site-options' );
  				$value = apply_filters( 'default_site_option_' . $option, $default );
  			}
  		}
--- 780,786 ----
  				wp_cache_set( $cache_key, $value, 'site-options' );
  			} else {
  				$notoptions[$option] = true;
! 				wp_cache_set( $notoptions_key, $notoptions, 'site-options' );
  				$value = apply_filters( 'default_site_option_' . $option, $default );
  			}
  		}
***************
*** 812,817 ****
--- 813,819 ----
  	wp_protect_special_option( $option );
  
  	$value = apply_filters( 'pre_add_site_option_' . $option, $value );
+ 	$notoptions_key = "{$wpdb->siteid}:notoptions";
  
  	if ( !is_multisite() ) {
  		$result = add_option( $option, $value );
***************
*** 819,825 ****
  		$cache_key = "{$wpdb->siteid}:$option";
  
  		// Make sure the option doesn't already exist. We can check the 'notoptions' cache before we ask for a db query
! 		$notoptions = wp_cache_get( 'notoptions', 'site-options' );
  		if ( ! is_array( $notoptions ) || ! isset( $notoptions[$option] ) )
  			if ( false !== get_site_option( $option ) )
  				return false;
--- 821,827 ----
  		$cache_key = "{$wpdb->siteid}:$option";
  
  		// Make sure the option doesn't already exist. We can check the 'notoptions' cache before we ask for a db query
! 		$notoptions = wp_cache_get( $notoptions_key, 'site-options' );
  		if ( ! is_array( $notoptions ) || ! isset( $notoptions[$option] ) )
  			if ( false !== get_site_option( $option ) )
  				return false;
***************
*** 835,844 ****
  		wp_cache_set( $cache_key, $value, 'site-options' );
  
  		// This option exists now
! 		$notoptions = wp_cache_get( 'notoptions', 'site-options' ); // yes, again... we need it to be fresh
  		if ( is_array( $notoptions ) && isset( $notoptions[$option] ) ) {
  			unset( $notoptions[$option] );
! 			wp_cache_set( 'notoptions', $notoptions, 'site-options' );
  		}
  	}
  
--- 837,846 ----
  		wp_cache_set( $cache_key, $value, 'site-options' );
  
  		// This option exists now
! 		$notoptions = wp_cache_get( $notoptions_key, 'site-options' ); // yes, again... we need it to be fresh
  		if ( is_array( $notoptions ) && isset( $notoptions[$option] ) ) {
  			unset( $notoptions[$option] );
! 			wp_cache_set( $notoptions_key, $notoptions, 'site-options' );
  		}
  	}
  
***************
*** 922,931 ****
  	if ( false === $old_value )
  		return add_site_option( $option, $value );
  
! 	$notoptions = wp_cache_get( 'notoptions', 'site-options' );
  	if ( is_array( $notoptions ) && isset( $notoptions[$option] ) ) {
  		unset( $notoptions[$option] );
! 		wp_cache_set( 'notoptions', $notoptions, 'site-options' );
  	}
  
  	if ( !is_multisite() ) {
--- 924,934 ----
  	if ( false === $old_value )
  		return add_site_option( $option, $value );
  
! 	$notoptions_key = "{$wpdb->siteid}:notoptions";
! 	$notoptions = wp_cache_get( $notoptions_key, 'site-options' );
  	if ( is_array( $notoptions ) && isset( $notoptions[$option] ) ) {
  		unset( $notoptions[$option] );
! 		wp_cache_set( $notoptions_key, $notoptions, 'site-options' );
  	}
  
  	if ( !is_multisite() ) {
diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-includes/pluggable.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-includes/pluggable.php
*** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-includes/pluggable.php	2013-10-30 20:29:22.000000000 +0300
--- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-includes/pluggable.php	2014-08-06 21:59:09.000000000 +0400
***************
*** 546,552 ****
  	$key = wp_hash($username . $pass_frag . '|' . $expiration, $scheme);
  	$hash = hash_hmac('md5', $username . '|' . $expiration, $key);
  
! 	if ( $hmac != $hash ) {
  		do_action('auth_cookie_bad_hash', $cookie_elements);
  		return false;
  	}
--- 546,552 ----
  	$key = wp_hash($username . $pass_frag . '|' . $expiration, $scheme);
  	$hash = hash_hmac('md5', $username . '|' . $expiration, $key);
  
! 	if ( ! hash_equals( $hash, $hmac ) ) {
  		do_action('auth_cookie_bad_hash', $cookie_elements);
  		return false;
  	}
***************
*** 1297,1307 ****
  	$i = wp_nonce_tick();
  
  	// Nonce generated 0-12 hours ago
! 	if ( substr(wp_hash($i . $action . $uid, 'nonce'), -12, 10) === $nonce )
  		return 1;
  	// Nonce generated 12-24 hours ago
! 	if ( substr(wp_hash(($i - 1) . $action . $uid, 'nonce'), -12, 10) === $nonce )
  		return 2;
  	// Invalid nonce
  	return false;
  }
--- 1297,1313 ----
  	$i = wp_nonce_tick();
  
  	// Nonce generated 0-12 hours ago
! 	$expected = substr( wp_hash( $i . '|' . $action . '|' . $uid, 'nonce'), -12, 10 );
! 	if ( hash_equals( $expected, $nonce ) ) {
  		return 1;
+ 	}
+ 
  	// Nonce generated 12-24 hours ago
! 	$expected = substr( wp_hash( ( $i - 1 ) . '|' . $action . '|' . $uid, 'nonce' ), -12, 10 );
! 	if ( hash_equals( $expected, $nonce ) ) {
  		return 2;
+ 	}
+ 
  	// Invalid nonce
  	return false;
  }
***************
*** 1324,1330 ****
  
  	$i = wp_nonce_tick();
  
! 	return substr(wp_hash($i . $action . $uid, 'nonce'), -12, 10);
  }
  endif;
  
--- 1330,1336 ----
  
  	$i = wp_nonce_tick();
  
! 	return substr(wp_hash($i . '|' . $action . '|' . $uid, 'nonce'), -12, 10);
  }
  endif;
  
***************
*** 1703,1709 ****
  		$out = str_replace( '&#038;', '&amp;', esc_url( $out ) );
  		$avatar = "<img alt='{$safe_alt}' src='{$out}' class='avatar avatar-{$size} photo' height='{$size}' width='{$size}' />";
  	} else {
! 		$avatar = "<img alt='{$safe_alt}' src='{$default}' class='avatar avatar-{$size} photo avatar-default' height='{$size}' width='{$size}' />";
  	}
  
  	return apply_filters('get_avatar', $avatar, $id_or_email, $size, $default, $alt);
--- 1709,1716 ----
  		$out = str_replace( '&#038;', '&amp;', esc_url( $out ) );
  		$avatar = "<img alt='{$safe_alt}' src='{$out}' class='avatar avatar-{$size} photo' height='{$size}' width='{$size}' />";
  	} else {
! 		$out = esc_url( $default );
! 		$avatar = "<img alt='{$safe_alt}' src='{$out}' class='avatar avatar-{$size} photo avatar-default' height='{$size}' width='{$size}' />";
  	}
  
  	return apply_filters('get_avatar', $avatar, $id_or_email, $size, $default, $alt);
***************
*** 1784,1786 ****
--- 1791,1825 ----
  }
  endif;
  
+ if ( ! function_exists( 'hash_equals' ) ) :
+ /**
+  * Compare two strings in constant time.
+  *
+  * This function is NOT pluggable. It is in this file (in addition to
+  * compat.php) to prevent errors if, during an update, pluggable.php
+  * copies over but compat.php does not.
+  *
+  * This function was added in PHP 5.6.
+  * It can leak the length of a string.
+  *
+  * @since 3.9.2
+  *
+  * @param string $a Expected string.
+  * @param string $b Actual string.
+  * @return bool Whether strings are equal.
+  */
+ function hash_equals( $a, $b ) {
+ 	$a_length = strlen( $a );
+ 	if ( $a_length !== strlen( $b ) ) {
+ 		return false;
+ 	}
+ 	$result = 0;
+ 
+ 	// Do not attempt to "optimize" this.
+ 	for ( $i = 0; $i < $a_length; $i++ ) {
+ 		$result |= ord( $a[ $i ] ) ^ ord( $b[ $i ] );
+ 	}
+ 
+ 	return $result === 0;
+ }
+ endif;
diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-includes/update.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-includes/update.php
*** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-includes/update.php	2013-10-30 20:29:22.000000000 +0300
--- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-includes/update.php	2014-04-03 09:47:09.000000000 +0400
***************
*** 160,168 ****
   * @since 2.3.0
   * @uses $wp_version Used to notify the WordPress version.
   *
   * @return mixed Returns null if update is unsupported. Returns false if check is too soon.
   */
! function wp_update_plugins() {
  	include ABSPATH . WPINC . '/version.php'; // include an unmodified $wp_version
  
  	if ( defined('WP_INSTALLING') )
--- 160,169 ----
   * @since 2.3.0
   * @uses $wp_version Used to notify the WordPress version.
   *
+  * @param array $extra_stats Extra statistics to report to the WordPress.org API.
   * @return mixed Returns null if update is unsupported. Returns false if check is too soon.
   */
! function wp_update_plugins( $extra_stats = array() ) {
  	include ABSPATH . WPINC . '/version.php'; // include an unmodified $wp_version
  
  	if ( defined('WP_INSTALLING') )
***************
*** 201,207 ****
  
  	$time_not_changed = isset( $current->last_checked ) && $timeout > ( time() - $current->last_checked );
  
! 	if ( $time_not_changed ) {
  		$plugin_changed = false;
  		foreach ( $plugins as $file => $p ) {
  			$new_option->checked[ $file ] = $p['Version'];
--- 202,208 ----
  
  	$time_not_changed = isset( $current->last_checked ) && $timeout > ( time() - $current->last_checked );
  
! 	if ( $time_not_changed && ! $extra_stats ) {
  		$plugin_changed = false;
  		foreach ( $plugins as $file => $p ) {
  			$new_option->checked[ $file ] = $p['Version'];
***************
*** 250,255 ****
--- 251,260 ----
  		'user-agent' => 'WordPress/' . $wp_version . '; ' . get_bloginfo( 'url' )
  	);
  
+ 	if ( $extra_stats ) {
+ 		$options['body']['update_stats'] = json_encode( $extra_stats );
+ 	}
+ 
  	$url = $http_url = 'http://api.wordpress.org/plugins/update-check/1.1/';
  	if ( $ssl = wp_http_supports( array( 'ssl' ) ) )
  		$url = set_url_scheme( $url, 'https' );
***************
*** 291,299 ****
   * @since 2.7.0
   * @uses $wp_version Used to notify the WordPress version.
   *
   * @return mixed Returns null if update is unsupported. Returns false if check is too soon.
   */
! function wp_update_themes() {
  	include ABSPATH . WPINC . '/version.php'; // include an unmodified $wp_version
  
  	if ( defined( 'WP_INSTALLING' ) )
--- 296,305 ----
   * @since 2.7.0
   * @uses $wp_version Used to notify the WordPress version.
   *
+  * @param array $extra_stats Extra statistics to report to the WordPress.org API.
   * @return mixed Returns null if update is unsupported. Returns false if check is too soon.
   */
! function wp_update_themes( $extra_stats = array() ) {
  	include ABSPATH . WPINC . '/version.php'; // include an unmodified $wp_version
  
  	if ( defined( 'WP_INSTALLING' ) )
***************
*** 343,349 ****
  
  	$time_not_changed = isset( $last_update->last_checked ) && $timeout > ( time() - $last_update->last_checked );
  
! 	if ( $time_not_changed ) {
  		$theme_changed = false;
  		foreach ( $checked as $slug => $v ) {
  			if ( !isset( $last_update->checked[ $slug ] ) || strval($last_update->checked[ $slug ]) !== strval($v) )
--- 349,355 ----
  
  	$time_not_changed = isset( $last_update->last_checked ) && $timeout > ( time() - $last_update->last_checked );
  
! 	if ( $time_not_changed && ! $extra_stats ) {
  		$theme_changed = false;
  		foreach ( $checked as $slug => $v ) {
  			if ( !isset( $last_update->checked[ $slug ] ) || strval($last_update->checked[ $slug ]) !== strval($v) )
***************
*** 390,395 ****
--- 396,405 ----
  		'user-agent'	=> 'WordPress/' . $wp_version . '; ' . get_bloginfo( 'url' )
  	);
  
+ 	if ( $extra_stats ) {
+ 		$options['body']['update_stats'] = json_encode( $extra_stats );
+ 	}
+ 
  	$url = $http_url = 'http://api.wordpress.org/themes/update-check/1.1/';
  	if ( $ssl = wp_http_supports( array( 'ssl' ) ) )
  		$url = set_url_scheme( $url, 'https' );
***************
*** 584,589 ****
--- 594,601 ----
  			$next += 12 * HOUR_IN_SECONDS;
  		}
  		$next = $next - get_option( 'gmt_offset' ) * HOUR_IN_SECONDS;
+ 		// Add a random number of minutes, so we don't have all sites trying to update exactly on the hour
+ 		$next = $next + rand( 0, 59 ) * MINUTE_IN_SECONDS;
  		wp_schedule_event( $next, 'twicedaily', 'wp_maybe_auto_update' );
  	}
  }
***************
*** 600,613 ****
  add_action( 'load-update-core.php', 'wp_update_plugins' );
  add_action( 'admin_init', '_maybe_update_plugins' );
  add_action( 'wp_update_plugins', 'wp_update_plugins' );
! add_action( 'upgrader_process_complete', 'wp_update_plugins' );
  
  add_action( 'load-themes.php', 'wp_update_themes' );
  add_action( 'load-update.php', 'wp_update_themes' );
  add_action( 'load-update-core.php', 'wp_update_themes' );
  add_action( 'admin_init', '_maybe_update_themes' );
  add_action( 'wp_update_themes', 'wp_update_themes' );
! add_action( 'upgrader_process_complete', 'wp_update_themes' );
  
  add_action( 'wp_maybe_auto_update', 'wp_maybe_auto_update' );
  
--- 612,625 ----
  add_action( 'load-update-core.php', 'wp_update_plugins' );
  add_action( 'admin_init', '_maybe_update_plugins' );
  add_action( 'wp_update_plugins', 'wp_update_plugins' );
! add_action( 'upgrader_process_complete', 'wp_update_plugins', 10, 0 );
  
  add_action( 'load-themes.php', 'wp_update_themes' );
  add_action( 'load-update.php', 'wp_update_themes' );
  add_action( 'load-update-core.php', 'wp_update_themes' );
  add_action( 'admin_init', '_maybe_update_themes' );
  add_action( 'wp_update_themes', 'wp_update_themes' );
! add_action( 'upgrader_process_complete', 'wp_update_themes', 10, 0 );
  
  add_action( 'wp_maybe_auto_update', 'wp_maybe_auto_update' );
  
diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-includes/version.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-includes/version.php
*** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-includes/version.php	2013-10-30 20:29:21.000000000 +0300
--- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-includes/version.php	2014-08-06 22:27:35.000000000 +0400
***************
*** 4,17 ****
   *
   * @global string $wp_version
   */
! $wp_version = '3.7.1';
  
  /**
   * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.
   *
   * @global int $wp_db_version
   */
! $wp_db_version = 25824;
  
  /**
   * Holds the TinyMCE version
--- 4,17 ----
   *
   * @global string $wp_version
   */
! $wp_version = '3.7.4';
  
  /**
   * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.
   *
   * @global int $wp_db_version
   */
! $wp_db_version = 26149;
  
  /**
   * Holds the TinyMCE version
diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-login.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-login.php
*** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-login.php	2013-10-30 20:29:21.000000000 +0300
--- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-login.php	2014-08-06 10:40:11.000000000 +0400
***************
*** 557,566 ****
  
  case 'resetpass' :
  case 'rp' :
! 	$user = check_password_reset_key($_GET['key'], $_GET['login']);
  
! 	if ( is_wp_error($user) ) {
! 		if ( $user->get_error_code() === 'expired_key' )
  			wp_redirect( site_url( 'wp-login.php?action=lostpassword&error=expiredkey' ) );
  		else
  			wp_redirect( site_url( 'wp-login.php?action=lostpassword&error=invalidkey' ) );
--- 557,581 ----
  
  case 'resetpass' :
  case 'rp' :
! 	list( $rp_path ) = explode( '?', wp_unslash( $_SERVER['REQUEST_URI'] ) );
! 	$rp_cookie = 'wp-resetpass-' . COOKIEHASH;
! 	if ( isset( $_GET['key'] ) ) {
! 		$value = sprintf( '%s:%s', wp_unslash( $_GET['login'] ), wp_unslash( $_GET['key'] ) );
! 		setcookie( $rp_cookie, $value, 0, $rp_path, COOKIE_DOMAIN, is_ssl(), true );
! 		wp_safe_redirect( remove_query_arg( array( 'key', 'login' ) ) );
! 		exit;
! 	}
! 
! 	if ( isset( $_COOKIE[ $rp_cookie ] ) && 0 < strpos( $_COOKIE[ $rp_cookie ], ':' ) ) {
! 		list( $rp_login, $rp_key ) = explode( ':', wp_unslash( $_COOKIE[ $rp_cookie ] ), 2 );
! 		$user = check_password_reset_key( $rp_key, $rp_login );
! 	} else {
! 		$user = false;
! 	}
  
! 	if ( ! $user || is_wp_error( $user ) ) {
! 		setcookie( $rp_cookie, ' ', time() - YEAR_IN_SECONDS, $rp_path, COOKIE_DOMAIN, is_ssl(), true );
! 		if ( $user && $user->get_error_code() === 'expired_key' )
  			wp_redirect( site_url( 'wp-login.php?action=lostpassword&error=expiredkey' ) );
  		else
  			wp_redirect( site_url( 'wp-login.php?action=lostpassword&error=invalidkey' ) );
***************
*** 584,589 ****
--- 599,605 ----
  
  	if ( ( ! $errors->get_error_code() ) && isset( $_POST['pass1'] ) && !empty( $_POST['pass1'] ) ) {
  		reset_password($user, $_POST['pass1']);
+ 		setcookie( $rp_cookie, ' ', time() - YEAR_IN_SECONDS, $rp_path, COOKIE_DOMAIN, is_ssl(), true );
  		login_header( __( 'Password Reset' ), '<p class="message reset-pass">' . __( 'Your password has been reset.' ) . ' <a href="' . esc_url( wp_login_url() ) . '">' . __( 'Log in' ) . '</a></p>' );
  		login_footer();
  		exit;
***************
*** 595,602 ****
  	login_header(__('Reset Password'), '<p class="message reset-pass">' . __('Enter your new password below.') . '</p>', $errors );
  
  ?>
! <form name="resetpassform" id="resetpassform" action="<?php echo esc_url( site_url( 'wp-login.php?action=resetpass&key=' . urlencode( $_GET['key'] ) . '&login=' . urlencode( $_GET['login'] ), 'login_post' ) ); ?>" method="post" autocomplete="off">
! 	<input type="hidden" id="user_login" value="<?php echo esc_attr( $_GET['login'] ); ?>" autocomplete="off" />
  
  	<p>
  		<label for="pass1"><?php _e('New password') ?><br />
--- 611,618 ----
  	login_header(__('Reset Password'), '<p class="message reset-pass">' . __('Enter your new password below.') . '</p>', $errors );
  
  ?>
! <form name="resetpassform" id="resetpassform" action="<?php echo esc_url( site_url( 'wp-login.php?action=resetpass', 'login_post' ) ); ?>" method="post" autocomplete="off">
! 	<input type="hidden" id="user_login" value="<?php echo esc_attr( $rp_login ); ?>" autocomplete="off" />
  
  	<p>
  		<label for="pass1"><?php _e('New password') ?><br />
