WordPress.org

Plugin Directory

WP-SpamShield Anti-Spam

An extremely powerful WordPress anti-spam plugin that eliminates comment spam, trackback spam, contact form spam & registration spam.

1.9.4

released 07/1/15

  • Made various performance and speed optimization improvements.
  • Added gzip compression to both external JavaScript files, and far future Expires headers to the jscripts-ftr-min.js file (the external footer JavaScript) to further improve speed in loading.
  • Made some improvements to the Autoptimize compatibility fix.
  • Added a minor bug fix for Gravity Forms anti-spam.
  • Made various code improvements.
  • Updated the spam filters.

1.9.3

released 06/25/15

  • Added an option in the settings to disable email harvester protection if you choose.
  • Made a number of code improvements to further improve overall performance, efficiency, and speed of the plugin.
  • Updated the spam filters.

1.9.2

released 06/22/15

  • Added compatibility and anti-spam for JetPack Comments. Previously, due to JetPack modifying the core functionality of the WordPress comment system, the JetPack Comments module had to be deactivated, but now it only needs to be deactivated if you run Compatibility Mode.
  • Added improved compatibility and full anti-spam support for JetPack Contact Forms.
  • Made various logic and code improvements.
  • Improved some of the filters in the spam blocking algorithm.
  • Updated the spam filters.

1.9.1

released 06/18/15

  • Added 2 new Advanced Features: "Compatibility Mode" and "Disable Temporary Blacklist". The Advanced Features are something new that we'll be introducing over time, and are explained in the plugin documentation in more detail.
  • Added some improvements to the installation status detection.
  • Added automatic fixes for certain issues. During the installation status detection process the plugin will attempt to fix some uncommon issues by automatically switching the plugin into Compatibility Mode. (At the top of the Settings page it tells you if the plugin is installed correctly or not.)
  • Made various code improvements.
  • Improved some of the contact form filters for the built-in WP-SpamShield contact form, Contact Form 7, Gravity Forms, and miscellaneous forms.
  • Updated the spam filters.

1.9.0.6

released 06/15/15

  • Added several improvements to the integration with ecommerce plugins.
  • Pre-emptive security enhancement for the log file (formerly temp-comments-log.txt) - added a randomly generated 32 character long key to the filename to make it unique (now temp-comments-log-{random key}.txt). The log was already protected by an .htaccess file and restricted to the IP address of the admin.
  • Made various code improvements.
  • Improved some of the filters in the spam blocking algorithm.
  • Updated the spam filters.

1.9.0.5

released 06/12/15

  • Added a new feature to thwart email harvesting bots and keep them from scraping your site for email addresses. It automatically obfuscates plain text email addresses and mailto links in your website content by encoding them into HTML entities (hexadecimal and decimal character codes that look like gibberish to harvesters, but render the email addresses perfectly in a browser). It protects email addresses on pages, posts, comments, excerpts, and text widgets. (It's always best not to post email addresses on your site and use a contact form instead, but if you absolutely have to, they should be encoded.)
  • Compatibility fix for new users registering on a WooCommerce checkout page.
  • Made various code improvements.
  • Updated the spam filters.

1.9.0.4

released 06/09/15

  • Added improved compatibility and full support for WooCommerce to protect its registration form from spam.
  • Made various code improvements.
  • Improved some of the filters in the spam blocking algorithm.
  • Updated the spam filters.

1.9.0.3

released 06/08/15

  • Added compatibility for 2 additional caching plugins: ZenCache and ZenCache Pro. As of this release, the following 14 cache plugins are supported: Cachify, DB Cache Reloaded, DB Cache Reloaded Fix, Gator Cache, Hyper Cache, Hyper Cache Extended, Lite Cache, Quick Cache, W3 Total Cache, WP Fast Cache, WP Fastest Cache, WP Super Cache, ZenCache, and ZenCache Pro.
  • Added options to disable anti-spam protection for Contact Form 7, Gravity Forms, and miscellaneous forms if you wish.
  • Made various code improvements.
  • Updated the spam filters.

1.9.0.2

released 06/04/15

  • Fixed a couple bugs.
  • Added the option to set the minimum required comment length, from 1-30 characters. Previously, the minimum comment length was 15 characters.
  • Improved some of the filters in the spam blocking algorithm.
  • Updated the spam filters.

1.9.0.1

released 06/03/15

  • Fixed a bug that caused a conflict with the WP Remote plugin.

1.9

released 06/02/15

  • Fixed a bug that caused a conflict with certain AJAX calls.
  • Fixed a bug with registration protection on BuddyPress legacy themes.

1.8.9.9

released 06/02/15

  • Added support for Contact Form 7 and Gravity Forms to automatically protect their contact forms from spam.
  • Added support for BuddyPress to protect its registration form from spam.
  • Added improved compatibility and full support for s2Member and WP-Members to protect their registration forms from spam.
  • Added automatic anti-spam protection for almost all registration forms (even forms that we have not specifically coded the plugin for), and many other WordPress forms.
  • Modified the .htaccess file to the wp-spamshield directory to improve compatibility with certain branches of Apache, including IdeaWebServer.
  • Improvement to the Autoptimize compatibility fix.
  • Made various code improvements and optimizations.
  • Updated the spam filters.

1.8.9.8

released 05/30/15

  • Fixed a minor bug.

1.8.9.7

released 05/29/15

  • Added HTML 5 front-end validation to certain elements of the contact form and comments form.
  • Made various code improvements.
  • Updated the spam filters.

1.8.9.6

released 05/26/15

  • Increased minimum required WordPress version to 3.9. It's extremely important that users stay up to date with the most recent version of WordPress (currently 4.2.2) for security and functionality.
  • Made various code improvements.
  • Improved some of the filters in the spam blocking algorithm.
  • Updated the spam filters.

1.8.9.5

released 05/18/15

  • Added Italian Translation (it_IT). Thank you to Bakeneko for doing the Italian translation.
  • Fixed a minor bug in the translation files.
  • Fixed a compatibility issue with the Autoptimize plugin.
  • Updated the spam filters.

1.8.9.4

released 05/08/15

  • Updated the spam filters.

1.8.9.3

released 04/30/15

  • Made various minor code improvements.
  • Updated the spam filters.

1.8.9.2

released 04/23/15

  • Made various minor code improvements.
  • Updated the spam filters.

1.8.9.1

released 04/21/15

  • Added an .htaccess file to the wp-spamshield directory to control browser access to certain files.
  • Added a fix to ensure that certain security plugins could not inadvertently block browser access to the jscripts.php file. This fix will prevent most of the occurrences of the issue discussed in Troubleshooting Guide step 14.
  • Upgraded the .htaccess file in the data directory (that protects the log file) to be compatible with changes in Apache 2.4.
  • Modified the log file creation process so that WordFence (and any other security plugins that compare plugin files against the WordPress repository) will no longer give the following warning: "Modified plugin file: wp-content/plugins/wp-spamshield/data/temp-comments-log.txt" when Blocked Comment Logging Mode is turned on. This file is supposed to change, since it's the log file.
  • Removed inline CSS from the three registration fields that WP-SpamShield adds, in order to make it easier for users to configure the look and feel of the registration page.
  • Updated the spam filters.

1.8.9

released 04/19/15

  • Made various minor code improvements.
  • Updated the spam filters.

1.8.8

released 04/13/15

  • Fixed a bug in one of the comment spam filters. Previously, if WordPress Discussion settings have "Comment author must fill out name and e-mail" unchecked, and a user submitted a comment where the author name and author URL were both blank, it would incorrectly be blocked. (The comments would go through if there was a URL.) This is fixed in this version.
  • Updated the spam filters.

1.8.7

released 04/08/15

  • Updated the spam filters.

1.8.6

released 04/04/15

  • Fixed a minor bug in the new custom widget.
  • Updated the spam filters.

1.8.5

released 04/02/15

  • Updated the spam filters.

1.8.4

released 03/30/15

  • Added new widgets. Converted the spam stat counter graphics to widgets, so they are much easier to add to your site now. No more messing around with code. There are a number of new widget options to check out.
  • Added a new customizable widget that has a number of color and style options, including a custom color chooser.
  • Fixed a few potential issues with UTF-8 and multibyte support.
  • Made a small fix to the contact form thank you message that will help multi-language users.
  • Made the comment spam blocking process a little more efficient.
  • Added info to the settings page with info on how much time the plugin has saved you.
  • Made various code improvements.
  • Improved some of the filters in the spam blocking algorithm.
  • Updated the spam filters.

1.8.3

released 03/24/15

  • Added a contact form quicktag so users can just click a button in the editor to add a contact form to pages. No more manually inserting shortcodes.
  • Made various code improvements.
  • Improved some of the filters in the spam blocking algorithm.
  • Updated the spam filters.

1.8.2

released 03/16/15

  • Increased minimum required WordPress version to 3.8 and added a minimum required PHP version of 5.3, as we are no longer supporting PHP 5.2. The PHP team stopped supporting PHP 5.2 back in 2011, and even PHP 5.3 reached its end of life in August 2014. WordPress has a current minimum requirement of 5.2.4, but PHP 5.4 is recommended - see the WordPress requirements. It's extremely important that users stay up to date with the most recent version of WordPress (currently 4.1.1) and a reasonably up-to-date version of PHP for security, functionality, and website performance. (Not only are the newer versions more secure, but they are faster, so its a double win.) We recommend PHP 5.4 or higher. Also, see PHP Unsupported Branches for more info.
  • Fixed XHTML validation error in the hidden input fields on the forms.
  • Internationalized the formatting of numbers used throughout the plugin so users in different countries will see numbers formatted according to their local customs. This will show in the blocked spam stats on the dashboard, spam counter widgets, and in the blocked comments log.
  • Updated the spam filters.

1.8.1

released 03/11/15

  • Updated the French (fr_FR) translation.
  • Improved some of the filters in the spam blocking algorithm.
  • Updated the spam filters.

1.8

released 03/09/15

  • Made some improvements to the spam blocking algorithm.
  • Made a number of various code and performance improvements.
  • Improved some of the error messages.
  • Fixed a couple bugs introduced in 1.7.9, including a bug in the contact form that incorrectly detected spam servers, and a compatibility issue with the new registration anti-spam feature and certain multisite configurations. This feature was rolled back while we look into the compatibility issues.
  • Made a few improvements to the blocked comment logging functionality.
  • Updated the spam filters.

1.7.9

released 03/06/15

  • Improved the registration spam protection capabilities.
  • Made a few improvements to the blocked comment logging functionality.
  • Removed some unnecessary technical info from notification emails that had previously been added by the plugin.
  • Made various code improvements.
  • Added new filters to the spam blocking algorithm.
  • Improved some of the filters in the spam blocking algorithm.
  • Updated the spam filters.

1.7.8

released 02/27/15

  • Updated the Dutch (nl_NL) and German (de_DE) translations.
  • Made various code improvements.
  • Added new filters to the spam blocking algorithm.
  • Improved some of the filters in the spam blocking algorithm.
  • Updated the spam filters.

1.7.7

released 02/21/15

  • Added an uninstall function that completely uninstalls the plugin and removes all options, data, and traces of its existence when it is deleted through the dashboard.
  • Added a fix to prevent certain rare situations from triggering duplicate emails to be sent by the contact form.
  • Added a fix to ensure contact form is implemented properly, and strictly enforce not being used in widgets or sidebars. Please see the contact form documentation for more info and usage instructions.
  • Made various code improvements.
  • Improved some of the filters in the spam blocking algorithm.
  • Updated the spam filters.

1.7.6

released 02/15/15

  • Updated the spam filters.

1.7.5

released 02/11/15

  • Removed some deprecated filters from the spam blocking algorithm.
  • Updated the spam filters.

1.7.4

released 02/06/15

  • Added WP-Spamshield Whitelist, a feature that allows you to whitelist specific email addresses that you would like to let bypass spam filters in the comments and contact forms.
  • Added option to allow keywords in comment author "Name" fields. This option is useful for sites with users that go by pseudonyms, or for sites that simply want to allow business names and keywords to be used in the comment "Name" field.
  • Made some improvements to the UI of the settings page.
  • Improved some of the error messages to make them more helpful.
  • Made various code improvements.
  • Improved some of the filters in the spam blocking algorithm.
  • Updated the spam filters.

1.7.3

released 02/03/15

  • Improved the Yahoo fix for the contact forms (implemented in 1.4.3) and restored "Reply-To" functionality. In version 1.4.3, I had to modify how the plugin handles the email address of the contact form submitter, in order to fix an issue with contact form submissions for users with @yahoo.com email addresses not getting sent. (See info on 1.4.3 update.) The contact form emails will still come from an email address that looks like wpspamshield [dot] noreply [at] yourdomain [dot] com. The difference now is that the "Reply-To" field is set to the contact form submitter's email address, so you can just click "Reply" in your email app, like you could before version 1.4.3. This should still avoid any spam problems with properly configured SPF records on your domain (and Yahoo's DMARC policy), while allowing contact form submissions from @yahoo.com email addresses.
  • Updated the French (fr_FR) translation.
  • Made various code improvements.
  • Improved some of the filters in the spam blocking algorithm.
  • Updated the spam filters.

1.7.2

released 01/30/15

  • Added compatibility for 2 additional caching plugins: Cachify and Gator Cache. As of this release, the following 12 cache plugins are supported (in order of popularity): WP Super Cache, W3 Total Cache, Quick Cache, Hyper Cache, WP Fastest Cache, DB Cache Reloaded Fix, Cachify, DB Cache Reloaded, Hyper Cache Extended, WP Fast Cache, Lite Cache, and Gator Cache.
  • Updated the Dutch (nl_NL) and German (de_DE) translations.
  • Made various minor code improvements.
  • Updated the spam filters.

1.7.1

released 01/27/15

  • Made various code improvements.
  • Updated the translation files.
  • Improved some of the filters in the spam blocking algorithm.
  • Updated the spam filters.

1.7

released 01/22/15

  • Updated the spam filters.

1.6.9

released 01/19/15

  • Added option to disable registration anti-spam protection.
  • Made various code improvements.
  • Improved some of the filters in the spam blocking algorithm.
  • Updated the spam filters.

1.6.8

released 01/16/15

  • Updated the spam filters.

1.6.7

released 01/13/15

  • Minor bug fix and improvement to the JetPack compatibility fix.
  • Updated the spam filters.

1.6.6

released 01/09/15

  • Updated the spam filters.

1.6.5

released 01/04/15

  • Upgraded the code for the spam counter widget. The previous widget code was written prior to WordPress 2.8 and needed to be upgraded. (In WordPress 2.8 a better, more efficient widget API was added. After that, the old code still worked with minor modifications.) In WordPress version 4.1 a couple issues started appearing. (At least that's when they were first reported.) When using the Customizer feature in the Dashboard, PHP errors related to undefined indexes would appear in logs. After upgrading to this version, any previously placed WP-SpamShield widgets will disappear from your site and will need to be re-inserted. One benefit of the upgraded code is that now multiple instances of the widget can be inserted.
  • Made various minor code improvements.
  • Increased minimum required WordPress version to 3.7. It's extremely important that users stay up to date with the most recent version of WordPress (currently 4.1) for security and functionality.
  • Minor update to the translation files.
  • Added new filters to the spam blocking algorithm.
  • Improved some of the filters in the spam blocking algorithm.
  • Updated the spam filters.

1.6.4

released 12/30/14

  • Updated the spam filters.

1.6.3

released 12/21/14

  • Updated the spam filters.

1.6.2

released 12/18/14

  • Improved some of the filters in the spam blocking algorithm.
  • Increased minimum required WordPress version to 3.6. It's extremely important that users stay up to date with the most recent version of WordPress (currently 4.1) for security and functionality.
  • Updated the spam filters.

1.6.1

released 12/15/14

  • Updated the spam filters.

1.6

released 12/11/14

  • Added a compatibility fix to prevent certain conflicting plugins from triggering duplicate emails to be sent by the contact form.
  • Updated the spam filters.

1.5.9

released 11/23/14

  • Improved some of the filters in the spam blocking algorithm.
  • Updated the spam filters.

1.5.8

released 11/13/14

  • Updated the spam filters.

1.5.7

released 11/05/14

  • Updated the spam filters.

1.5.6

released 10/23/14

  • Fixed a bug that caused some legitimate comments to be rejected on comment sub-pages if the site was using the option to break comments into pages but not using permalinks.
  • Minor update to the Dutch Translation (nl_NL).
  • Updated the spam filters.

1.5.5

released 09/24/14

  • Made various minor code improvements.
  • Made some minor tweaks to the translation files and corresponding code.
  • Improved some of the filters in the spam blocking algorithm.
  • Updated the spam filters.

1.5.4

released 09/15/14

  • Added a new improved blacklist function for the Enhanced Comment Blacklist feature, so it no longer uses the built-in WordPress blacklist function - wp_blacklist_check() (which is very old and has some flaws). Enhanced Comment Blacklist feature now works on WP-SpamShield contact forms as well. Please see documentation for more information.
  • Added "Blacklist the IP Address" link to contact form emails.
  • Added a fix to prevent network activation when used in multisite, and added network admin notice to explain. The plugin can be used in multisite just fine, but will need to be activated individually per site for now. Once we can get time to adapt the plugin to multisite more specifically, we can remove this restriction.
  • Improved some of the filters in the spam blocking algorithm.
  • Updated the spam filters.

1.5.3

released 09/09/14

  • Added Dutch Translation (nl_NL). Thank you to Martin Teley for doing the Dutch translation.
  • Improved some of the filters in the spam blocking algorithm.
  • Updated the spam filters.

1.5.2

released 09/05/14

  • Improved some of the filters in the spam blocking algorithm.
  • Increased minimum required WordPress version to 3.5 (which is already almost 2 years old). It's extremely important that users stay up to date with the most recent version of WordPress (currently 4.0) for security and functionality.
  • Updated the spam filters.

1.5.1

released 09/01/14

  • Fixed a bug that caused some legitimate comments to be rejected on comment sub-pages if the site was using both the option to use permalinks and the option to break comments into pages.

1.5

released 08/31/14

  • Added several efficient new trackback spam filters to further improve speed in processing trackbacks and blocking spam, which means even lower server load and improved overall scalability.
  • Updated the text on the spam counter in the dashboard and settings page. Previously it said "spam comments", and now it just says "spam", since the plugin has evolved over time to block multiple types of spam. The counter includes all blocked spam types, not just comments: comment spam, trackback/pingback spam, contact form spam, and user registration spam.
  • Improved human spam protection.
  • Removed the M2 feature as it's an old feature that has been deprecated and is no longer needed.
  • Made several improvements to the filters in the spam blocking algorithm.
  • Updated the spam filters.

Changelog

For a complete list of changes to the plugin, view the Version History/Changelog.

Requires: 3.9 or higher
Compatible up to: 4.2.2
Last Updated: 2015-7-3
Active Installs: 90,000+

Ratings

4.7 out of 5 stars

Support

24 of 24 support threads in the last two months have been resolved.

Got something to say? Need help?

Compatibility

+
=
Works!

5 people say it works.
0 people say it's broken.

100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1
100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,4,4 100,2,2 100,3,3 100,1,1 100,1,1 100,2,2 100,2,2 100,2,2 100,2,2 100,1,1 100,1,1
100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,4,4 100,2,2 100,2,2 100,1,1 100,1,1 100,2,2 100,2,2 100,2,2 100,2,2 100,1,1 100,1,1
100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,4,4 100,2,2 100,2,2 100,1,1 100,1,1 100,2,2 100,2,2 100,2,2 100,2,2 100,1,1 100,1,1
100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,4,4 100,2,2 100,2,2 100,1,1 100,1,1 100,2,2 100,2,2 100,2,2 100,2,2 100,1,1 100,1,1
100,1,1 50,2,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,4,4 100,2,2 100,2,2 100,2,2 100,1,1 100,2,2 100,2,2 100,3,3 100,2,2 100,1,1 100,1,1 100,2,2 100,2,2 100,2,2 100,2,2 100,2,2 100,2,2 100,2,2 100,2,2 100,2,2 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1
100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,2,2 100,1,1 100,1,1 100,1,1 100,2,2 100,1,1 100,1,1 100,1,1 100,2,2 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 50,2,1 100,1,1 100,1,1 67,3,2 100,2,2 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,4,4 100,2,2 100,2,2 100,2,2 100,1,1 100,2,2 100,2,2 100,1,1 100,2,2 100,1,1 100,1,1 100,2,2 100,2,2 100,2,2 100,2,2 100,2,2 100,2,2 100,2,2 100,2,2 100,2,2 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1
100,3,3 100,1,1 100,1,1 100,1,1 100,2,2 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,4,4 100,2,2 100,2,2 100,2,2 100,1,1 100,2,2 100,2,2 100,2,2 100,2,2 100,1,1 100,2,2 100,2,2 100,2,2 100,2,2 100,2,2 100,2,2 100,2,2 100,2,2 100,2,2 100,2,2 100,1,1 100,1,1 100,2,2 100,1,1 100,1,1 100,1,1
100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,4,4 100,2,2 100,2,2 100,2,2 100,1,1 100,2,2 100,2,2 100,3,3 100,2,2 100,1,1 100,2,2 100,2,2 100,2,2 100,2,2 100,3,3 100,2,2 100,2,2 100,2,2 100,2,2 100,2,2 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1
100,2,2 100,2,2 100,2,2 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,2,2 100,2,2 100,2,2
100,2,2 100,2,2 100,2,2 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,3,3 100,4,4 100,4,4 100,4,4
100,4,4 100,2,2 100,1,1 100,1,1 100,3,3 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4
100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,2,2 100,2,2 100,3,3 100,3,3 100,2,2 100,1,1 100,1,1 100,1,1 50,2,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,4,4 100,4,4 100,4,4 100,4,4 100,1,1 100,2,2 100,2,2 100,4,4 100,2,2 100,2,2 100,3,3 100,2,2 100,2,2 100,2,2 100,4,4 100,2,2 100,2,2 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,3,3 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4
100,1,1 100,3,3 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,4,4 100,4,4 100,4,4 100,4,4 100,1,1 100,2,2 100,2,2 100,4,4 100,3,3 100,2,2 100,3,3 100,2,2 100,2,2 100,2,2 100,4,4 100,2,2 100,2,2 100,4,4 100,4,4 100,4,4 100,4,4 100,1,1 100,1,1 100,1,1 100,3,3 100,2,2 100,1,1 100,1,1 100,2,2 100,2,2 100,2,2 100,2,2 100,1,1 100,2,2
100,4,4 100,4,4 100,4,4 100,4,4 100,1,1 100,1,1 100,2,2 100,1,1 100,1,1 100,2,2 100,1,1 100,1,1 100,1,1 100,2,2
100,4,4 100,4,4 100,4,4 100,4,4 100,2,2 100,1,1 100,1,1 100,1,1 100,1,1 100,2,2 100,1,1 100,1,1 100,1,1 100,4,4 100,1,1 100,4,4
100,1,1 100,4,4 100,4,4 100,4,4 100,3,3 100,2,2 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4
100,4,4 100,4,4 100,4,4 100,4,4 100,3,3 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4
100,1,1 100,1,1 100,2,2 100,1,1 100,2,2 100,1,1 100,2,2 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,4,4 83,6,5 100,4,4 100,4,4 100,1,1 100,2,2 100,2,2 100,4,4 100,2,2 100,2,2 100,3,3 100,2,2 100,2,2 100,2,2 100,4,4 100,2,2 100,2,2 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4
100,2,2 100,6,6 100,4,4 100,2,2 100,2,2 100,2,2 100,4,4 100,2,2 100,3,3 100,4,4 100,2,2 100,2,2 100,2,2 100,5,5 100,2,2 100,2,2 100,4,4 100,4,4 100,4,4 100,4,4 100,2,2 100,1,1 100,1,1 100,2,2 100,2,2 100,2,2 100,1,1 100,1,1 100,2,2 100,1,1 100,2,2 100,1,1 100,2,2
100,2,2 100,4,4 100,4,4 100,4,4 100,4,4 100,2,2 100,1,1 100,1,1 100,1,1 100,4,4 100,1,1 100,1,1 100,1,1 100,1,1 100,2,2 100,1,1 100,2,2
100,1,1 100,4,4 100,4,4 100,4,4 100,4,4 100,3,3 100,1,1 100,1,1 100,2,2 100,1,1 100,3,3 100,2,2 100,1,1 100,2,2 100,3,3 100,1,1 100,4,4
100,1,1 100,4,4 100,4,4 100,4,4 100,4,4 100,2,2 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4
100,4,4 100,4,4 100,4,4 100,4,4 100,3,3 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4
100,1,1 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4
100,4,4 100,5,5 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4
100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,5,5 80,5,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,5,5 100,4,4 100,4,4 100,5,5