From a585e07897e3cb486d8f953f7795c53ee0a5f4e7 Mon Sep 17 00:00:00 2001 From: Travis Date: Thu, 27 Jun 2019 15:51:47 +0200 Subject: [PATCH] V4.2019.06.1650 [ci skip] --- .../bots.d/blacklist-ips.conf | 2 +- .../bots.d/whitelist-ips.conf | 2 +- .../conf.d/globalblacklist.conf | 6 +- .../bots.d/blacklist-ips.conf | 2 +- .../bots.d/whitelist-ips.conf | 2 +- .../conf.d/globalblacklist.conf | 6 +- .../bots.d/whitelist-ips.conf | 2 +- .../conf.d/botblocker-nginx-settings.conf | 4 +- .../conf.d/globalblacklist.conf | 643 ++++--- .../bots.d/blacklist-user-agents.conf | 17 +- .../bots.d/whitelist-ips.conf | 1 - .../conf.d/botblocker-nginx-settings.conf | 4 +- .../conf.d/globalblacklist.conf | 6 +- .../bots.d/blacklist-ips.conf | 2 +- .../bots.d/blacklist-user-agents.conf | 17 +- .../bots.d/whitelist-ips.conf | 2 +- .../conf.d/globalblacklist.conf | 6 +- .../bots.d/blacklist-ips.conf | 2 +- .../bots.d/whitelist-ips.conf | 2 +- .../conf.d/globalblacklist.conf | 6 +- .../bots.d/blacklist-ips.conf | 2 +- .../bots.d/whitelist-ips.conf | 2 +- .../conf.d/globalblacklist.conf | 6 +- .../bots.d/blacklist-ips.conf | 2 +- .../bots.d/whitelist-ips.conf | 2 +- .../conf.d/globalblacklist.conf | 6 +- .dev-tools/globalblacklist-testing.template | 4 +- .dev-tools/globalblacklist.template | 4 +- .dev-tools/test-blocker-badwords.sh | 0 .dev-tools/test-blocker-rate-limiting.sh | 0 .dev-tools/test-blocker-whitelist-domains.sh | 0 .dev-tools/test-blocker-whitelist-ips.sh | 0 .dev-tools/test-blocker-whitelist.sh | 0 .dev-tools/test_units/blacklist-ips.conf | 2 +- .../random-bots-for-test-quick.list | 92 +- .../test_units/random-bots-for-test.list | 274 +-- .../random-bots-for-whitelist-test.list | 268 +-- .../random-referrers-for-test-quick.list | 198 +- .../test_units/random-referrers-for-test.list | 1714 ++++++++--------- .../random-referrers-for-whitelist-test.list | 474 ++--- .dev-tools/test_units/ratelimittest-beta.txt | 59 + .../test_units/ratelimittest-master.txt | 122 ++ .dev-tools/test_units/whitelist-ips.conf | 2 +- .latest_release/bots.d.tar.gz | Bin 5554 -> 5556 bytes .latest_release/conf.d.tar.gz | Bin 247177 -> 247836 bytes AUTO-CONFIGURATION.md | 2 +- MANUAL-CONFIGURATION.md | 2 +- README.md | 2 +- _google_analytics_ghost_spam/README.md | 2 +- .../etc/nginx/conf.d/globalblacklist.conf | 643 ++++--- conf.d/globalblacklist-testing-version.conf | 6 +- conf.d/globalblacklist.conf | 643 ++++--- robots.txt/robots.txt | 4 +- 53 files changed, 2857 insertions(+), 2414 deletions(-) mode change 100644 => 100755 .dev-tools/test-blocker-badwords.sh mode change 100644 => 100755 .dev-tools/test-blocker-rate-limiting.sh mode change 100644 => 100755 .dev-tools/test-blocker-whitelist-domains.sh mode change 100644 => 100755 .dev-tools/test-blocker-whitelist-ips.sh mode change 100644 => 100755 .dev-tools/test-blocker-whitelist.sh create mode 100644 .dev-tools/test_units/ratelimittest-beta.txt diff --git a/.dev-tools/_conf_files_ip_whitelist/bots.d/blacklist-ips.conf b/.dev-tools/_conf_files_ip_whitelist/bots.d/blacklist-ips.conf index 90fe4f9d3..6893ce0fc 100644 --- a/.dev-tools/_conf_files_ip_whitelist/bots.d/blacklist-ips.conf +++ b/.dev-tools/_conf_files_ip_whitelist/bots.d/blacklist-ips.conf @@ -1,2 +1,2 @@ -104.154.120.187 1; +35.192.136.167 1; 127.0.0.1 1; diff --git a/.dev-tools/_conf_files_ip_whitelist/bots.d/whitelist-ips.conf b/.dev-tools/_conf_files_ip_whitelist/bots.d/whitelist-ips.conf index 95fbc95fc..c5da765af 100644 --- a/.dev-tools/_conf_files_ip_whitelist/bots.d/whitelist-ips.conf +++ b/.dev-tools/_conf_files_ip_whitelist/bots.d/whitelist-ips.conf @@ -1,4 +1,4 @@ -104.154.120.187 0; +35.192.136.167 0; 127.0.0.1 1; 127.0.0.1 1; 127.0.0.1 1; diff --git a/.dev-tools/_conf_files_ip_whitelist/conf.d/globalblacklist.conf b/.dev-tools/_conf_files_ip_whitelist/conf.d/globalblacklist.conf index 5206f0e14..51994daac 100644 --- a/.dev-tools/_conf_files_ip_whitelist/conf.d/globalblacklist.conf +++ b/.dev-tools/_conf_files_ip_whitelist/conf.d/globalblacklist.conf @@ -4,8 +4,8 @@ ### VERSION INFORMATION # ################################################### -### Version: V3.2019.06.1647 -### Updated: Thu Jun 27 14:46:42 SAST 2019 +### Version: V4.2019.06.1650 +### Updated: Thu Jun 27 15:45:51 SAST 2019 ### Bad Referrer Count: 6713 ### Bad Bot Count: 556 ################################################### @@ -17992,7 +17992,7 @@ geo $ratelimited { # Rate limiting will only take effect if on any User-Agents with a value of 2 limit_conn_zone $bot_iplimit zone=bot2_connlimit:16m; - limit_req_zone $bot_iplimit zone=bot2_reqlimitip:16m rate=6r/m; + limit_req_zone $bot_iplimit zone=bot2_reqlimitip:16m rate=12r/m; # ========================================== # END SECTION 4 - ACTIVATE BLOCKER FUNCTIONS diff --git a/.dev-tools/_conf_files_ratelimiting/bots.d/blacklist-ips.conf b/.dev-tools/_conf_files_ratelimiting/bots.d/blacklist-ips.conf index 90fe4f9d3..6893ce0fc 100644 --- a/.dev-tools/_conf_files_ratelimiting/bots.d/blacklist-ips.conf +++ b/.dev-tools/_conf_files_ratelimiting/bots.d/blacklist-ips.conf @@ -1,2 +1,2 @@ -104.154.120.187 1; +35.192.136.167 1; 127.0.0.1 1; diff --git a/.dev-tools/_conf_files_ratelimiting/bots.d/whitelist-ips.conf b/.dev-tools/_conf_files_ratelimiting/bots.d/whitelist-ips.conf index 95fbc95fc..c5da765af 100644 --- a/.dev-tools/_conf_files_ratelimiting/bots.d/whitelist-ips.conf +++ b/.dev-tools/_conf_files_ratelimiting/bots.d/whitelist-ips.conf @@ -1,4 +1,4 @@ -104.154.120.187 0; +35.192.136.167 0; 127.0.0.1 1; 127.0.0.1 1; 127.0.0.1 1; diff --git a/.dev-tools/_conf_files_ratelimiting/conf.d/globalblacklist.conf b/.dev-tools/_conf_files_ratelimiting/conf.d/globalblacklist.conf index 5206f0e14..51994daac 100644 --- a/.dev-tools/_conf_files_ratelimiting/conf.d/globalblacklist.conf +++ b/.dev-tools/_conf_files_ratelimiting/conf.d/globalblacklist.conf @@ -4,8 +4,8 @@ ### VERSION INFORMATION # ################################################### -### Version: V3.2019.06.1647 -### Updated: Thu Jun 27 14:46:42 SAST 2019 +### Version: V4.2019.06.1650 +### Updated: Thu Jun 27 15:45:51 SAST 2019 ### Bad Referrer Count: 6713 ### Bad Bot Count: 556 ################################################### @@ -17992,7 +17992,7 @@ geo $ratelimited { # Rate limiting will only take effect if on any User-Agents with a value of 2 limit_conn_zone $bot_iplimit zone=bot2_connlimit:16m; - limit_req_zone $bot_iplimit zone=bot2_reqlimitip:16m rate=6r/m; + limit_req_zone $bot_iplimit zone=bot2_reqlimitip:16m rate=12r/m; # ========================================== # END SECTION 4 - ACTIVATE BLOCKER FUNCTIONS diff --git a/.dev-tools/_conf_files_test1/bots.d/whitelist-ips.conf b/.dev-tools/_conf_files_test1/bots.d/whitelist-ips.conf index a3ba41a5b..d46456898 100644 --- a/.dev-tools/_conf_files_test1/bots.d/whitelist-ips.conf +++ b/.dev-tools/_conf_files_test1/bots.d/whitelist-ips.conf @@ -33,4 +33,4 @@ # 111.111.111.111 0; -35.224.112.202 0; +104.154.113.151 0; diff --git a/.dev-tools/_conf_files_test1/conf.d/botblocker-nginx-settings.conf b/.dev-tools/_conf_files_test1/conf.d/botblocker-nginx-settings.conf index ba536c503..883bc7688 100644 --- a/.dev-tools/_conf_files_test1/conf.d/botblocker-nginx-settings.conf +++ b/.dev-tools/_conf_files_test1/conf.d/botblocker-nginx-settings.conf @@ -13,8 +13,10 @@ # Version 1.1 # ! new directives also to be added to include_filelist.txt ! # -server_names_hash_bucket_size 128; +server_names_hash_bucket_size 256; server_names_hash_max_size 4096; +variables_hash_max_size 4096; +variables_hash_bucket_size 4096; limit_req_zone $binary_remote_addr zone=flood:50m rate=90r/s; limit_conn_zone $binary_remote_addr zone=addr:50m; diff --git a/.dev-tools/_conf_files_test1/conf.d/globalblacklist.conf b/.dev-tools/_conf_files_test1/conf.d/globalblacklist.conf index 0c518d221..51994daac 100644 --- a/.dev-tools/_conf_files_test1/conf.d/globalblacklist.conf +++ b/.dev-tools/_conf_files_test1/conf.d/globalblacklist.conf @@ -1,16 +1,21 @@ -### ********************************** -### THE ULTIMATE NGINX BAD BOT BLOCKER -### ********************************** +### ----------------------------------------------------------- +### THE NGINX ULTIMATE BAD BOT, BAD IP AND BAD REFERRER BLOCKER +### ----------------------------------------------------------- ### VERSION INFORMATION # ################################################### -### Version: V4.2019.06.1647 -### Updated: Thu Jun 27 14:46:41 SAST 2019 +### Version: V4.2019.06.1650 +### Updated: Thu Jun 27 15:45:51 SAST 2019 ### Bad Referrer Count: 6713 ### Bad Bot Count: 556 ################################################### ### VERSION INFORMATION ## +### -------------------------------------------- +### HELP SUPPORT THIS PROJECT - Send Me a Coffee +### https://ko-fi.com/mitchellkrog +### -------------------------------------------- + ############################################################################## # _ __ _ # # / |/ /__ _(_)__ __ __ # @@ -28,12 +33,16 @@ ### and also has rate limiting functionality for bad bots who you only want to rate limit ### and not actually block out entirely. It is very powerful and also very flexible. +### -------------------------------------------------------------------------- ### Created By: https://github.com/mitchellkrogza/ ### Repo Url: https://github.com/mitchellkrogza/nginx-ultimate-bad-bot-blocker ### Copyright Mitchell Krog - ### Contributors: Stuart Cardall - https://github.com/itoffshore +### -------------------------------------------------------------------------- +### -------------------------------------------------------------------------- ### Tested on: nginx/1.10.3 up to latest Mainstream Version (Ubuntu 16.04) +### -------------------------------------------------------------------------- ### This list was developed and is in use on a live Nginx server running some very busy web sites. ### It was built from the ground up using real data from daily logs and is updated almost daily. @@ -41,9 +50,9 @@ ### spam referrers, rogue IP address, scanners, scrapers and domain hijacking sites are extensively checked ### before they are added. It is monitored extensively for any false positives. -### ********* +### --------- ### Features: -### ********* +### --------- ### Clear formatting for Ease of Maintenance. ### Alphabetically ordered lists for Ease of Maintenance. ### Extensive Commenting for Ease of Reference. @@ -54,40 +63,38 @@ ### IP range blocking / whitelisting. ### Rate Limiting Functions. -### ************ +### ------------ ### INSTALLATION -### ************ +### ------------ ### PLEASE use the install, setup and update scripts provided for you to ease your installation. ### This Auto Installation procedure is documented in the README.md and AUTO-CONFIGURATION.md files. ### Installation, Setup and Update Scripts Contributed by Stuart Cardall - https://github.com/itoffshore ### There are also manual configuration instructions provided for those not wishing to do an auto install. -### *********************************************** +### ----------------------------------------------- ### !!!!! PLEASE READ INLINE NOTES ON TESTING !!!!! -### *********************************************** +### ----------------------------------------------- -### Note that: +### SETTINGS: +### --------------------------------------------- ### 0 = allowed - no limits ### 1 = allowed or rate limited less restrictive ### 2 = rate limited more ### 3 = block completely +### --------------------------------------------- -### ************************************************************ +### ------------------------------------------------------------ ### CONTRIBUTING / PULL REQUESTS / ADDING YOUR OWN BAD REFERRERS -### ************************************************************ +### ------------------------------------------------------------ ### For contributing, corrections or adding bots or referrers to this repo, ### Send a Pull Request (PR) on any of the .list files in the _generator_lists folder ### All Pull Requests will be checked for accuracy before being merged. -# ********************************* -# FIRST BLOCK BY USER-AGENT STRINGS -# ********************************* - -# *********************** +# ----------------------- # !!!!! PLEASE TEST !!!!! -# *********************** +# ----------------------- # ALWAYS test any User-Agent Strings you add here to make sure you have it right # Use a Chrome Extension called "User-Agent Switcher for Chrome" where you can create your @@ -98,36 +105,46 @@ # curl -I http://www.yourdomain.com -A "GoogleBot" ---- GIVES YOU: HTTP/1.1 200 OK (Meaning web page was served to Client) # curl -I http://www.yourdomain.com -A "80legs" ---- GIVES YOU: curl: (52) Empty reply from server (Meaning Nginx gave a 444 Dropped Connection) -# In this section we allow/disallow specific User Agents / Bots. -# ********************************************************************* -# Now we map all good and bad user agents to a variable called $bad_bot -# ********************************************************************* +# ======================= +# START BLOCKER FUNCTIONS +# ======================= + +# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +# DO NOT EDIT ANYTHING BELOW THIS LINE !!! +# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +# ============================= +# BEGIN SECTION 1 - USER-AGENTS +# ============================= + +# ALLOW / BLOCK User Agents / Bots + +# ------------------------------------------------------------------- +# Map all GOOD and BAD UA (User Agents) to a variable called $bad_bot +# ------------------------------------------------------------------- map $http_user_agent $bad_bot { - default 0; -# *********************************************** -# Include your Own Custom List of Bad User Agents -# *********************************************** - -# Use the include file below to further customize your own list of additional user-agents you wish to permanently block -# This include file allows whitelisting and blacklisting of anything specified below it, meaning you can over-ride anything in this blocker to your liking. - -# *********************************************************************************** +# ----------------------------------------------------------------------------------- # START CUSTOM BLACKLISTED USER AGENTS ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### -# *********************************************************************************** +# ----------------------------------------------------------------------------------- + +# Include your Own Custom List of Bad User Agents +# Use the include file below to further customize your own list of additional user-agents you wish to permanently block +# This include file allows whitelisting and blacklisting of anything specified below it. +# This include file alows you to over-ride any Bad / Good UA (Bot) declared in this blocker to your liking. include /etc/nginx/bots.d/blacklist-user-agents.conf; -# ********************************************************************************* +# --------------------------------------------------------------------------------- # END CUSTOM BLACKLISTED USER AGENTS ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### -# ********************************************************************************* +# --------------------------------------------------------------------------------- -# ********************************************* -# Bad User-Agent Strings That We Block Outright -# ********************************************* +# -------------------------------------------------- +# BAD UA (User-Agent) Strings That We Block Outright +# -------------------------------------------------- # START BAD BOTS ### DO NOT EDIT THIS LINE AT ALL ### "~*(?:\b)360Spider(?:\b|)" 3; @@ -688,9 +705,16 @@ map $http_user_agent $bad_bot { "~*(?:\b)ZyBorg(?:\b|)" 3; # END BAD BOTS ### DO NOT EDIT THIS LINE AT ALL ### -# *********************************************** -# Allow Good User-Agent Strings We Know and Trust -# *********************************************** +# -------------------------------------------- +# GOOD UA User-Agent Strings We Know and Trust +# -------------------------------------------- + +# ----------------------------------------------------------------------- +# You can over-ride these in /etc/nginx/bots.d/blacklist-user-agents.conf +# by adding the same UA line there and chaning its value of 1 +# If you think GoogleBot is bad you would simply add them to +# blacklist-user-agents.conf with a value of 1 +# ----------------------------------------------------------------------- # START GOOD BOTS ### DO NOT EDIT THIS LINE AT ALL ### "~*(?:\b)adidxbot(?:\b|)" 0; @@ -727,12 +751,13 @@ map $http_user_agent $bad_bot { "~*(?:\b)yahoo(?:\b|)" 0; # END GOOD BOTS ### DO NOT EDIT THIS LINE AT ALL ### -# *************************************************** -# User-Agent Strings Allowed Through but Rate Limited -# *************************************************** +# -------------------------------------------------------- +# GOOD UA User-Agent Rate Limiting 1 - Disabled by Default +# -------------------------------------------------------- -# Some people block libwww-perl, it used widely in many valid (non rogue) agents -# I allow libwww-perl as I use it for monitoring systems with Munin but it is rate limited + # TO ACTIVATE THIS RATE LIMITING Uncomment these two lines in blockbots.conf + #limit_conn bot1_connlimit 100; + #limit_req zone=bot1_reqlimitip burst=50; # START ALLOWED BOTS ### DO NOT EDIT THIS LINE AT ALL ### "~*(?:\b)jetmon(?:\b|)" 1; @@ -743,9 +768,14 @@ map $http_user_agent $bad_bot { "~*(?:\b)Wget/1.15(?:\b|)" 1; # END ALLOWED BOTS ### DO NOT EDIT THIS LINE AT ALL ### -# ************************************************************** -# Rate Limited User-Agents who get a bit aggressive on bandwidth -# ************************************************************** +# ------------------------------------------------------- +# GOOD UA User-Agent Rate Limiting 2 - Enabled by Default +# ------------------------------------------------------- + +# ----------------------------------------------------------------------- +# You can over-ride these in /etc/nginx/bots.d/blacklist-user-agents.conf +# by adding the same UA line there and chaning its value of 1 +# ----------------------------------------------------------------------- # START LIMITED BOTS ### DO NOT EDIT THIS LINE AT ALL ### "~*(?:\b)Alexa(?:\b|)" 2; @@ -768,163 +798,186 @@ map $http_user_agent $bad_bot { # END LIMITED BOTS ### DO NOT EDIT THIS LINE AT ALL ### } - -# ***************************************** -# SECOND BLOCK BY REFERRER STRINGS AND URLS -# ***************************************** +# =========================== +# END SECTION 1 - USER-AGENTS +# =========================== -# ***************** +# ======================================= +# BEGIN SECTION 2 - REFERRERS AND DOMAINS +# ======================================= + +# ---------------- # PLEASE TEST !!!! -# ***************** - +# ---------------- +# ------------------------------------------------------------------------------------------------------------------------------ # ALWAYS test referrers that you add. This is done manually as follows - +# ------------------------------------------------------------------------------------------------------------------------------ # curl -I http://www.yourdomain.com -e http://anything.adcash.com --- GIVES YOU: curl: (52) Empty reply from server # curl -I http://www.yourdomain.com -e http://www.goodwebsite.com/not-adcash --- GIVES YOU: curl: (52) Empty reply from server # curl -I http://www.yourdomain.com -e http://www.betterwebsite.com/not/adcash --- GIVES YOU: curl: (52) Empty reply from server - +# ------------------------------------------------------------------------------------------------------------------------------ # curl -I http://www.yourdomain.com -e http://www.google.com --- GIVES YOU: full html output of the web page # curl -I http://www.yourdomain.com -e http://www.microsoft.com --- GIVES YOU: full html output of the web page - +# ------------------------------------------------------------------------------------------------------------------------------ # Because of case-insensitive matching any combination of capitilization in the names will all produce a positive hit # make sure you always test thoroughly and monitor logs. This section below also does NOT check for a preceding www. # and it also does not care if the referrer request was sent with http https or even ftp. +# ------------------------------------------------------------------------------------------------------------------------------ -# *********************************************************************** -# Now we map all bad referrer words below to a variable called $bad_words -# *********************************************************************** +# ---------------------------------------------------------------- +# Map all BAD referrer words below to a variable called $bad_words +# ---------------------------------------------------------------- + +# -------------------------------- +# START Bad Referrer Word Scanning +# -------------------------------- map $http_referer $bad_words { default 0; -# ************************** -# Bad Referrer Word Scanning -# ************************** - +# ------------------------------------------------------------------------------------------- # These are Words and Terms often found tagged onto domains or within url query strings. # Create and Customize Your Own Bad Referrer Words Here using the new Include File Method # New Method Uses the include file below so that when pulling future updates your # customized list of bad referrer words are automatically now included for you # Read Comments inside bad-referrer-words.conf for customization tips. # Updating the main globalblacklist.conf file will not touch your custom include files - # BE VERY CAREFUL using the bad-referrer-words.conf file - please read the comment and + # BE VERY CAREFUL using this bad-referrer-words.conf file - please read the comments and # examples inside the include file for detailed explanations into how seriously this can # affect your own site from serving assets or other innocent sites from accessing your site - # For safety sake the whitelist-domains.conf file is also loaded here before the bad-referrer-words.conf file. + # For safety sake the whitelist-domains.conf file is also loaded here before the + # bad-referrer-words.conf file is loaded. +# ------------------------------------------------------------------------------------------- -# ************************************************************************ +# ------------------------------------------------------------------------ # START WHITELISTED DOMAINS ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### -# ************************************************************************ +# ------------------------------------------------------------------------ include /etc/nginx/bots.d/whitelist-domains.conf; -# ********************************************************************** +# ---------------------------------------------------------------------- # END WHITELISTED DOMAINS ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### -# ********************************************************************** +# ---------------------------------------------------------------------- -# ****************************************************************************** +# ------------------------------------------------------------------------------ # START CUSTOM BAD REFERRER WORDS ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### -# ****************************************************************************** +# ------------------------------------------------------------------------------ include /etc/nginx/bots.d/bad-referrer-words.conf; -# **************************************************************************** +# ---------------------------------------------------------------------------- # END CUSTOM BAD REFERRER WORDS ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### -# **************************************************************************** +# ---------------------------------------------------------------------------- } +# -------------------------------- +# END Bad Referrer Word Scanning +# -------------------------------- -# ************************* -# Bad Referrer Domain Names -# ************************* -# Now a list of bad referrer urls these domains or any combination of them ie .com .net -# will be blocked out. Doesn't matter if the protocol is http, https or even ftp +# ---------------------------------------- +# START Good and Bad Referrer Domain Names +# ---------------------------------------- +# ------------------------------------------------------------------------------------- +# Good and Bad referrer urls Doesn't matter if the protocol is http, https or even ftp +# ------------------------------------------------------------------------------------- + +# ---------------------- # This section includes: -# ********************** +# ---------------------- +# -------------------------------------------------------------------------------- # Blocking of SEO company Semalt.com (now merged into this one section) # MIRAI Botnet Domains Used for Mass Attacks # Other known bad SEO companies and Ad Hijacking Sites # Sites linked to malware, adware, clickjacking and ransomware +# Domain names and referrers used in referrer spam and seo hijacking +# Whitelisting of your own GOOD domains / referrers +# Whitelisting of any other GOOD domains / referrers you want explicitly NOT block +# -------------------------------------------------------------------------------- -# ***************** +# ---------------- # PLEASE TEST !!!! -# ***************** - +# ---------------- +# ------------------------------------------------------------------------------------------------------------------------------------ # ALWAYS test referrers that you add. This is done manually as follows - +# ------------------------------------------------------------------------------------------------------------------------------------ # curl -I http://www.yourdomain.com -e http://8gold.com --- GIVES YOU: curl: (52) Empty reply from server - +# ------------------------------------------------------------------------------------------------------------------------------------ # Because of case-insensitive matching any combination of capitilization will all produce a positive hit - make sure you always test. - +# ------------------------------------------------------------------------------------------------------------------------------------ # For Example any of the following variations below of 8gold.com will be detected and blocked - +# ------------------------------------------------------------------------------------------------------------------------------------ # curl -I http://www.yourdomain.com -e http://NOT-8gold.com --- GIVES YOU: curl: (52) Empty reply from server # curl -I http://www.yourdomain.com -e http://this.is.not8gOlD.net --- GIVES YOU: curl: (52) Empty reply from server # curl -I http://www.yourdomain.com -e ftp://8gold.com --- GIVES YOU: curl: (52) Empty reply from server # curl -I http://www.yourdomain.com -e ftp://www.weare8gold.NET --- GIVES YOU: curl: (52) Empty reply from server # curl -I http://www.yourdomain.com -e https://subdomain.8gold.com --- GIVES YOU: curl: (52) Empty reply from server # curl -I http://www.yourdomain.com -e https://NOT8GolD.org --- GIVES YOU: curl: (52) Empty reply from server - +# ------------------------------------------------------------------------------------------------------------------------------------ # So if you see a bad referrer from wearegoogle.com and you want to block them just add # them as "~*wearegoogle.com" don't ever go and do something like "~*google(-|.)" you will # kill all your SEO in a week. - +# ------------------------------------------------------------------------------------------------------------------------------------ # To add your own custom bad referrers use the custom include file # /etc/nginx/bots.d/custom-bad-referrers.conf # Or send a Pull Request to add it to the global blacklist for other users. - # In the bad referrers section I also include sites that hotlink images without permission. +# ------------------------------------------------------------------------------------------------------------------------------------ -# *********************************************************************** -# Now we map all good & bad referrer urls to variable called #bad_referer -# *********************************************************************** +# -------------------------------------------------------------------- +# Map all good & bad referrer DOMAINS to a variable called bad_referer +# -------------------------------------------------------------------- map $http_referer $bad_referer { hostnames; default 0; -# ************************************* -# GOOD REFERRERS - Spared from Checking -# ************************************* +# -------------------------------------------- +# GOOD REFERRER DOMAINS - Spared from Checking +# -------------------------------------------- +# --------------------------------------------------------------------------------------- # Add all your own web site domain names and server names in this section - # WHITELIST Your Own Domain Names Here using the new Include File Method # New Method Uses the include file below so that when pulling future updates your # whitelisted domain names are automatically now included for you. # Read Comments inside whitelist-domains.conf for customization tips. # Updating the main globalblacklist.conf file will not touch your custom include files +# --------------------------------------------------------------------------------------- -# ************************************************************************ +# ------------------------------------------------------------------------ # START WHITELISTED DOMAINS ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### -# ************************************************************************ +# ------------------------------------------------------------------------ include /etc/nginx/bots.d/whitelist-domains.conf; -# ********************************************************************** +# ---------------------------------------------------------------------- # END WHITELISTED DOMAINS ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### -# ********************************************************************** +# ---------------------------------------------------------------------- -# *********************************** +# ----------------------------------- # CUSTOM BAD REFERRERS - Add your Own -# *********************************** +# ----------------------------------- # Add any extra bad referrers in the following include file to have them # permanently included and blocked - avoid duplicates in your custom file +# custom-bad-referrers.conf is BOTH a BLACKLIST AND WHITELIST +# custom-bad-referrers.conf ALLOWS complete over-riding of anything +# If you think google.com is bad you would simply add them to +# custom-bad-referrers.conf with a value of 1 -# ************************************************************************* +# ------------------------------------------------------------------------- # START CUSTOM BAD REFERRERS ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### -# ************************************************************************* +# ------------------------------------------------------------------------- include /etc/nginx/bots.d/custom-bad-referrers.conf; -# *********************************************************************** +# ----------------------------------------------------------------------- # END CUSTOM BAD REFERRERS ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### -# *********************************************************************** +# ----------------------------------------------------------------------- # START BAD REFERRERS ### DO NOT EDIT THIS LINE AT ALL ### "~*(?:\b)000free\.us(?:\b|)" 1; @@ -7644,137 +7697,49 @@ map $http_referer $bad_referer { # END BAD REFERRERS ### DO NOT EDIT THIS LINE AT ALL ### } +# ===================================== +# END SECTION 2 - REFERRERS AND DOMAINS +# ===================================== -# *********************************************** -# WHITELISTING AND BLACKLISTING IP ADDRESS RANGES -# *********************************************** +# ======================================================================== +# BEGIN SECTION 3 - WHITELISTING AND BLACKLISTING IP ADDRESSESE AND RANGES +# ======================================================================== -# Geo directive to deny and also whitelist certain ip addresses +# -------------------------------------------------------------------------------------- +# Map all GOOD and BAD IP Addresses and Ranges to a variable called geo $validate_client +# -------------------------------------------------------------------------------------- geo $validate_client { - -# ******************** -# First Our Safety Net -# ******************** - -# Anything not matching our rules is allowed through with default 0; - default 0; -# *********************************** -# Whitelist all your OWN IP addresses -# *********************************** +# ---------------------------------------------- +# Whitelist all your OWN IP addresses and Ranges +# ---------------------------------------------- +# -------------------------------------------------------------------------------------- # WHITELIST all your own IP addresses using the include file below. # New Method Uses the include file below so that when pulling future updates your # whitelisted IP addresses are automatically now included for you. # Read Comments inside whitelist-ips.conf for customization tips. # Updating the main globalblacklist.conf file will not touch your custom include files + # whitelist-ips.conf reigns supreme !!! + # Whatever you add to whitelist-ips.conf will be whitelisted FULL STOP + # Anything blacklisted above this line will be over-ridden by whitelist-ips.conf +# -------------------------------------------------------------------------------------- -# ************************************************************************** +# -------------------------------------------------------------------------- # START WHITELISTED IP RANGES ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### -# ************************************************************************** +# -------------------------------------------------------------------------- include /etc/nginx/bots.d/whitelist-ips.conf; -# ************************************************************************ +# ------------------------------------------------------------------------ # END WHITELISTED IP RANGES ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### -# ************************************************************************ +# ------------------------------------------------------------------------ -# **************** -# Google IP Ranges -# **************** - -# For Safety Sake all Google's Known IP Ranges are all white listed - -# START GOOGLE IP RANGES ### DO NOT EDIT THIS LINE AT ALL ### - 108.177.0.0/17 0; - 172.217.0.0/16 0; - 173.194.0.0/16 0; - 2001:4860:4000::/36 0; - 203.208.60.0/24 0; - 207.126.144.0/20 0; - 209.85.128.0/17 0; - 216.239.32.0/19 0; - 216.58.192.0/19 0; - 2404:6800:4000::/36 0; - 2607:f8b0:4000::/36 0; - 2800:3f0:4000::/36 0; - 2a00:1450:4000::/36 0; - 2c0f:fb50:4000::/36 0; - 35.192.0.0/12 0; - 64.18.0.0/20 0; - 64.233.160.0/19 0; - 64.68.80.0/21 0; - 65.52.0.0/14 0; - 66.102.0.0/20 0; - 66.249.64.0/19 0; - 72.14.192.0/18 0; - 74.125.0.0/16 0; -# END GOOGLE IP RANGES ### DO NOT EDIT THIS LINE AT ALL ### - -# ************** -# Bing IP Ranges -# ************** - -# For Safety Sake all Bing's Known IP Ranges are all white listed - -# START BING IP RANGES ### DO NOT EDIT THIS LINE AT ALL ### - 131.253.21.0/24 0; - 131.253.22.0/23 0; - 131.253.24.0/21 0; - 131.253.24.0/22 0; - 131.253.32.0/20 0; - 157.54.0.0/15 0; - 157.56.0.0/14 0; - 157.60.0.0/16 0; - 199.30.16.0/24 0; - 199.30.27.0/24 0; - 207.46.0.0/16 0; - 40.112.0.0/13 0; - 40.120.0.0/14 0; - 40.124.0.0/16 0; - 40.125.0.0/17 0; - 40.74.0.0/15 0; - 40.76.0.0/14 0; - 40.80.0.0/12 0; - 40.96.0.0/12 0; -# END BING IP RANGES ### DO NOT EDIT THIS LINE AT ALL ### - -# ******************** -# Cloudflare IP Ranges -# ******************** - -# For Safety Sake all Cloudflare's Known IP Ranges are all white listed - -# START CLOUDFLARE IP RANGES ### DO NOT EDIT THIS LINE AT ALL ### - 103.21.244.0/22 0; - 103.22.200.0/22 0; - 103.31.4.0/22 0; - 104.16.0.0/12 0; - 108.162.192.0/18 0; - 131.0.72.0/22 0; - 141.101.64.0/18 0; - 162.158.0.0/15 0; - 172.64.0.0/13 0; - 173.245.48.0/20 0; - 188.114.96.0/20 0; - 190.93.240.0/20 0; - 197.234.240.0/22 0; - 198.41.128.0/17 0; - 199.27.128.0/21 0; - 2400:cb00::/32 0; - 2405:8100::/32 0; - 2405:b500::/32 0; - 2606:4700::/32 0; - 2803:f800::/32 0; - 2a06:98c0::/29 0; - 2c0f:f248::/32 0; -# END CLOUDFLARE IP RANGES ### DO NOT EDIT THIS LINE AT ALL ### - -# ************************* -# Wordpress Theme Detectors -# ************************* +# ------------------------------------- +# BLOCK known Wordpress Theme Detectors +# ------------------------------------- # START WP THEME DETECTORS ### DO NOT EDIT THIS LINE AT ALL ### @@ -7818,10 +7783,11 @@ geo $validate_client { 89.36.223.188 1; #www.cuteseotools.net/wordpress-theme-detector # END WP THEME DETECTORS ### DO NOT EDIT THIS LINE AT ALL ### -# **************************************** -# NIBBLER - SEO testing and reporting tool -# **************************************** +# ---------------------------------------------- +# BLOCK NIBBLER - SEO testing and reporting tool +# ---------------------------------------------- # See - http://nibbler.silktide.com/ +# ---------------------------------------------- # START NIBBLER ### DO NOT EDIT THIS LINE AT ALL ### 52.201.238.175 1; @@ -7834,33 +7800,10 @@ geo $validate_client { # END NIBBLER ### DO NOT EDIT THIS LINE AT ALL ### -# **************************** -# Known Bad IP's and IP Ranges -# ************************************************* -# Blacklist IP addresses and IP Ranges Customizable -# ************************************************* - -# BLACKLIST all your IP addresses and Ranges using the new include file below. - # New Method Uses the include file below so that when pulling future updates your - # Custom Blacklisted IP addresses are automatically now included for you. - # Read Comments inside blacklist-ips.conf for customization tips. - # Updating the main globalblacklist.conf file will not touch your custom include files - -# ******************************************************************** -# START BLACKLISTED IPS ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### -# ******************************************************************** - - include /etc/nginx/bots.d/blacklist-ips.conf; - -# ****************************************************************** -# END BLACKLISTED IPS ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### -# ****************************************************************** - -# ********************************************************************************************* -# KNOWN BAD IP ADDRESSES -# Source: https://github.com/mitchellkrogza/Suspicious.Snooping.Sniffing.Hacking.IP.Addresses -# A Reliable Daily Updated List Included Below of Known Bad IP Addresses, Snoopers and Sniffers -# ********************************************************************************************* +# ----------------------------------------- +# BLOCK KNOWN BAD IP ADDRESSES +# Top known bad IP Adresses from abuseIPDB +# ----------------------------------------- # START KNOWN BAD IP ADDRESSES ### DO NOT EDIT THIS LINE AT ALL ### 193.32.163.89 1; @@ -17864,33 +17807,176 @@ geo $validate_client { 46.101.115.65 1; # END KNOWN BAD IP ADDRESSES ### DO NOT EDIT THIS LINE AT ALL ### +# -------------------------- +# WHITELIST Google IP Ranges +# -------------------------- + +# START GOOGLE IP RANGES ### DO NOT EDIT THIS LINE AT ALL ### + 108.177.0.0/17 0; + 172.217.0.0/16 0; + 173.194.0.0/16 0; + 2001:4860:4000::/36 0; + 203.208.60.0/24 0; + 207.126.144.0/20 0; + 209.85.128.0/17 0; + 216.239.32.0/19 0; + 216.58.192.0/19 0; + 2404:6800:4000::/36 0; + 2607:f8b0:4000::/36 0; + 2800:3f0:4000::/36 0; + 2a00:1450:4000::/36 0; + 2c0f:fb50:4000::/36 0; + 35.192.0.0/12 0; + 64.18.0.0/20 0; + 64.233.160.0/19 0; + 64.68.80.0/21 0; + 65.52.0.0/14 0; + 66.102.0.0/20 0; + 66.249.64.0/19 0; + 72.14.192.0/18 0; + 74.125.0.0/16 0; +# END GOOGLE IP RANGES ### DO NOT EDIT THIS LINE AT ALL ### + +# ------------------------ +# WHITELIST Bing IP Ranges +# ------------------------ + +# START BING IP RANGES ### DO NOT EDIT THIS LINE AT ALL ### + 131.253.21.0/24 0; + 131.253.22.0/23 0; + 131.253.24.0/21 0; + 131.253.24.0/22 0; + 131.253.32.0/20 0; + 157.54.0.0/15 0; + 157.56.0.0/14 0; + 157.60.0.0/16 0; + 199.30.16.0/24 0; + 199.30.27.0/24 0; + 207.46.0.0/16 0; + 40.112.0.0/13 0; + 40.120.0.0/14 0; + 40.124.0.0/16 0; + 40.125.0.0/17 0; + 40.74.0.0/15 0; + 40.76.0.0/14 0; + 40.80.0.0/12 0; + 40.96.0.0/12 0; +# END BING IP RANGES ### DO NOT EDIT THIS LINE AT ALL ### + +# ------------------------------ +# WHITELIST Cloudflare IP Ranges +# ------------------------------ + +# START CLOUDFLARE IP RANGES ### DO NOT EDIT THIS LINE AT ALL ### + 103.21.244.0/22 0; + 103.22.200.0/22 0; + 103.31.4.0/22 0; + 104.16.0.0/12 0; + 108.162.192.0/18 0; + 131.0.72.0/22 0; + 141.101.64.0/18 0; + 162.158.0.0/15 0; + 172.64.0.0/13 0; + 173.245.48.0/20 0; + 188.114.96.0/20 0; + 190.93.240.0/20 0; + 197.234.240.0/22 0; + 198.41.128.0/17 0; + 199.27.128.0/21 0; + 2400:cb00::/32 0; + 2405:8100::/32 0; + 2405:b500::/32 0; + 2606:4700::/32 0; + 2803:f800::/32 0; + 2a06:98c0::/29 0; + 2c0f:f248::/32 0; +# END CLOUDFLARE IP RANGES ### DO NOT EDIT THIS LINE AT ALL ### + +# ------------------------------------------------- +# BLACKLIST IP addresses and IP Ranges Customizable +# ------------------------------------------------- + +# -------------------------------------------------------------------------------------- +# BLACKLIST all your IP addresses and Ranges using the new include file below. + # New Method Uses the include file below so that when pulling future updates your + # Custom Blacklisted IP addresses are automatically now included for you. + # Read Comments inside blacklist-ips.conf for customization tips. + # Updating the main globalblacklist.conf file will not touch your custom include files + # Anything added to blacklist-ips.conf will over-ride anything whitelisted above +# -------------------------------------------------------------------------------------- + +# -------------------------------------------------------------------- +# START BLACKLISTED IPS ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### +# -------------------------------------------------------------------- + + include /etc/nginx/bots.d/blacklist-ips.conf; + +# ------------------------------------------------------------------ +# END BLACKLISTED IPS ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### +# ------------------------------------------------------------------ + +# ---------------------------------------------- +# Whitelist all your OWN IP addresses and Ranges +# ---------------------------------------------- + +# -------------------------------------------------------------------------------------- +# WHITELIST all your own IP addresses using the include file below. + # New Method Uses the include file below so that when pulling future updates your + # whitelisted IP addresses are automatically now included for you. + # Read Comments inside whitelist-ips.conf for customization tips. + # Updating the main globalblacklist.conf file will not touch your custom include files + # whitelist-ips.conf reigns supreme !!! + # Whatever you add to whitelist-ips.conf will be whitelisted FULL STOP + # Anything blacklisted above this line will be over-ridden by whitelist-ips.conf +# -------------------------------------------------------------------------------------- + +# -------------------------------------------------------------------------- +# START WHITELISTED IP RANGES ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### +# -------------------------------------------------------------------------- + + include /etc/nginx/bots.d/whitelist-ips.conf; + +# ------------------------------------------------------------------------ +# END WHITELISTED IP RANGES ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### +# ------------------------------------------------------------------------ } +# -------------------------------------------------------------------------------------- # WHITELIST your own IPs from the DDOS Filter # Add your own IP addresses and ranges into the custom include file whitelist-ips.conf # to spare them from the rate limiting DDOS filter. # This section includes the same / single whitelist-ips.conf file so you only # need to edit that include file and have it include here for you too. +# -------------------------------------------------------------------------------------- geo $ratelimited { default 1; -# *************************************************************************** +# --------------------------------------------------------------------------- # START WHITELISTED IP RANGES2 ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### -# *************************************************************************** +# --------------------------------------------------------------------------- include /etc/nginx/bots.d/whitelist-ips.conf; -# ************************************************************************* +# ------------------------------------------------------------------------- # END WHITELISTED IP RANGES2 ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### -# ************************************************************************* +# ------------------------------------------------------------------------- } -# ***************************************** -# MAP BAD BOTS TO OUR RATE LIMITER FUNCTION -# ***************************************** +# ====================================================================== +# END SECTION 3 - WHITELISTING AND BLACKLISTING IP ADDRESSESE AND RANGES +# ====================================================================== + + +# ============================================ +# BEGIN SECTION 4 - ACTIVATE BLOCKER FUNCTIONS +# ============================================ + +# -------------------------------------------- +# 1. MAP BAD BOTS TO OUR RATE LIMITER FUNCTION +# -------------------------------------------- map $bad_bot $bot_iplimit { 0 ""; @@ -17898,30 +17984,31 @@ geo $ratelimited { 2 $binary_remote_addr; } -# *********************** -# SET RATE LIMITING ZONES -# *********************** +# -------------------------- +# 2. SET RATE LIMITING ZONES +# -------------------------- # BAD BOT RATE LIMITING ZONE -# limits for Zone $bad_bot = 1 -# Nothing Set - you can set a different zone limiter here if you like -# We issue a 444 response instead to all bad bots. +# Rate limiting will only take effect if on any User-Agents with a value of 2 -# limits for Zone $bad_bot = 2 -# this rate limiting will only take effect if you change any of the bots and change -# their block value from 1 to 2. limit_conn_zone $bot_iplimit zone=bot2_connlimit:16m; - limit_req_zone $bot_iplimit zone=bot2_reqlimitip:16m rate=2r/s; + limit_req_zone $bot_iplimit zone=bot2_reqlimitip:16m rate=12r/m; -### *** MAKE SURE TO ADD to your nginx.conf *** -### server_names_hash_bucket_size 64; -### server_names_hash_max_size 4096; -### limit_req_zone $binary_remote_addr zone=flood:50m rate=90r/s; -### limit_conn_zone $binary_remote_addr zone=addr:50m; -### to allow it to load this large set of domains into memory and to set the rate limiting zones for the DDOS filter. +# ========================================== +# END SECTION 4 - ACTIVATE BLOCKER FUNCTIONS +# ========================================== -### THE END of the Long and Winding Road +# ===================== +# END BLOCKER FUNCTIONS +# ===================== -### Also check out my Ultimate Apache Bad Bot Blocker on Github -### https://github.com/mitchellkrogza/apache-ultimate-bad-bot-blocker +### -------------------------------------------- +### HELP SUPPORT THIS PROJECT - Send Me a Coffee +### https://ko-fi.com/mitchellkrog +### -------------------------------------------- + +### FOR APACHE SERVERS +### --------------------------------------------- +### Check out the Ultimate Apache Bad Bot Blocker +### --------------------------------------------- diff --git a/.dev-tools/_conf_files_testing_changes/bots.d/blacklist-user-agents.conf b/.dev-tools/_conf_files_testing_changes/bots.d/blacklist-user-agents.conf index e24a6428b..94c7e22bd 100644 --- a/.dev-tools/_conf_files_testing_changes/bots.d/blacklist-user-agents.conf +++ b/.dev-tools/_conf_files_testing_changes/bots.d/blacklist-user-agents.conf @@ -3,8 +3,8 @@ ### VERSION INFORMATION # ################################################### -### Version: V3.2018.05 -### Updated: 2018-08-21 +### Version: V4.2019.06 +### Updated: 2019-06-24 ################################################### ### VERSION INFORMATION ## @@ -47,15 +47,14 @@ # --------------------- # WHITELISTING EXAMPLES # --------------------- -# "~*\bsomeverygooduseragentname1\b" 0; -# "~*\bsomeverygooduseragentname2\b" 0; -# "~*\bsome\-very\-good\-useragentname2\b" 0; +# "~*(?:\b)someverygooduseragentname1(?:\b|)" 0; +# "~*(?:\b)someverygooduseragentname2(?:\b|)" 0; +# "~*(?:\b)some\-very\-good\-useragentname2(?:\b|)" 0; # --------------------- # BLACKLISTING EXAMPLES # --------------------- -# "~*\bsomeverybaduseragentname1\b" 3; -# "~*\bsomeverybaduseragentname2\b" 3; -# "~*\bsome\-very\-bad\-useragentname2\b" 3; - +# "~*(?:\b)someverybaduseragentname1(?:\b|)" 3; +# "~*(?:\b)someverybaduseragentname2(?:\b|)" 3; +# "~*(?:\b)some\-very\-bad\-useragentname2(?:\b|)" 3; diff --git a/.dev-tools/_conf_files_testing_changes/bots.d/whitelist-ips.conf b/.dev-tools/_conf_files_testing_changes/bots.d/whitelist-ips.conf index a3ba41a5b..f415804df 100644 --- a/.dev-tools/_conf_files_testing_changes/bots.d/whitelist-ips.conf +++ b/.dev-tools/_conf_files_testing_changes/bots.d/whitelist-ips.conf @@ -33,4 +33,3 @@ # 111.111.111.111 0; -35.224.112.202 0; diff --git a/.dev-tools/_conf_files_testing_changes/conf.d/botblocker-nginx-settings.conf b/.dev-tools/_conf_files_testing_changes/conf.d/botblocker-nginx-settings.conf index ba536c503..883bc7688 100644 --- a/.dev-tools/_conf_files_testing_changes/conf.d/botblocker-nginx-settings.conf +++ b/.dev-tools/_conf_files_testing_changes/conf.d/botblocker-nginx-settings.conf @@ -13,8 +13,10 @@ # Version 1.1 # ! new directives also to be added to include_filelist.txt ! # -server_names_hash_bucket_size 128; +server_names_hash_bucket_size 256; server_names_hash_max_size 4096; +variables_hash_max_size 4096; +variables_hash_bucket_size 4096; limit_req_zone $binary_remote_addr zone=flood:50m rate=90r/s; limit_conn_zone $binary_remote_addr zone=addr:50m; diff --git a/.dev-tools/_conf_files_testing_changes/conf.d/globalblacklist.conf b/.dev-tools/_conf_files_testing_changes/conf.d/globalblacklist.conf index 5206f0e14..0c17cf784 100644 --- a/.dev-tools/_conf_files_testing_changes/conf.d/globalblacklist.conf +++ b/.dev-tools/_conf_files_testing_changes/conf.d/globalblacklist.conf @@ -4,8 +4,8 @@ ### VERSION INFORMATION # ################################################### -### Version: V3.2019.06.1647 -### Updated: Thu Jun 27 14:46:42 SAST 2019 +### Version: V3.2019.06.1650 +### Updated: Thu Jun 27 15:45:52 SAST 2019 ### Bad Referrer Count: 6713 ### Bad Bot Count: 556 ################################################### @@ -17992,7 +17992,7 @@ geo $ratelimited { # Rate limiting will only take effect if on any User-Agents with a value of 2 limit_conn_zone $bot_iplimit zone=bot2_connlimit:16m; - limit_req_zone $bot_iplimit zone=bot2_reqlimitip:16m rate=6r/m; + limit_req_zone $bot_iplimit zone=bot2_reqlimitip:16m rate=12r/m; # ========================================== # END SECTION 4 - ACTIVATE BLOCKER FUNCTIONS diff --git a/.dev-tools/_conf_files_testing_changes_ip_whitelist/bots.d/blacklist-ips.conf b/.dev-tools/_conf_files_testing_changes_ip_whitelist/bots.d/blacklist-ips.conf index 90fe4f9d3..0f27f0dd9 100644 --- a/.dev-tools/_conf_files_testing_changes_ip_whitelist/bots.d/blacklist-ips.conf +++ b/.dev-tools/_conf_files_testing_changes_ip_whitelist/bots.d/blacklist-ips.conf @@ -1,2 +1,2 @@ -104.154.120.187 1; +104.154.113.151 1; 127.0.0.1 1; diff --git a/.dev-tools/_conf_files_testing_changes_ip_whitelist/bots.d/blacklist-user-agents.conf b/.dev-tools/_conf_files_testing_changes_ip_whitelist/bots.d/blacklist-user-agents.conf index e24a6428b..94c7e22bd 100644 --- a/.dev-tools/_conf_files_testing_changes_ip_whitelist/bots.d/blacklist-user-agents.conf +++ b/.dev-tools/_conf_files_testing_changes_ip_whitelist/bots.d/blacklist-user-agents.conf @@ -3,8 +3,8 @@ ### VERSION INFORMATION # ################################################### -### Version: V3.2018.05 -### Updated: 2018-08-21 +### Version: V4.2019.06 +### Updated: 2019-06-24 ################################################### ### VERSION INFORMATION ## @@ -47,15 +47,14 @@ # --------------------- # WHITELISTING EXAMPLES # --------------------- -# "~*\bsomeverygooduseragentname1\b" 0; -# "~*\bsomeverygooduseragentname2\b" 0; -# "~*\bsome\-very\-good\-useragentname2\b" 0; +# "~*(?:\b)someverygooduseragentname1(?:\b|)" 0; +# "~*(?:\b)someverygooduseragentname2(?:\b|)" 0; +# "~*(?:\b)some\-very\-good\-useragentname2(?:\b|)" 0; # --------------------- # BLACKLISTING EXAMPLES # --------------------- -# "~*\bsomeverybaduseragentname1\b" 3; -# "~*\bsomeverybaduseragentname2\b" 3; -# "~*\bsome\-very\-bad\-useragentname2\b" 3; - +# "~*(?:\b)someverybaduseragentname1(?:\b|)" 3; +# "~*(?:\b)someverybaduseragentname2(?:\b|)" 3; +# "~*(?:\b)some\-very\-bad\-useragentname2(?:\b|)" 3; diff --git a/.dev-tools/_conf_files_testing_changes_ip_whitelist/bots.d/whitelist-ips.conf b/.dev-tools/_conf_files_testing_changes_ip_whitelist/bots.d/whitelist-ips.conf index 95fbc95fc..0d35fed1e 100644 --- a/.dev-tools/_conf_files_testing_changes_ip_whitelist/bots.d/whitelist-ips.conf +++ b/.dev-tools/_conf_files_testing_changes_ip_whitelist/bots.d/whitelist-ips.conf @@ -1,4 +1,4 @@ -104.154.120.187 0; +104.154.113.151 0; 127.0.0.1 1; 127.0.0.1 1; 127.0.0.1 1; diff --git a/.dev-tools/_conf_files_testing_changes_ip_whitelist/conf.d/globalblacklist.conf b/.dev-tools/_conf_files_testing_changes_ip_whitelist/conf.d/globalblacklist.conf index 5206f0e14..0c17cf784 100644 --- a/.dev-tools/_conf_files_testing_changes_ip_whitelist/conf.d/globalblacklist.conf +++ b/.dev-tools/_conf_files_testing_changes_ip_whitelist/conf.d/globalblacklist.conf @@ -4,8 +4,8 @@ ### VERSION INFORMATION # ################################################### -### Version: V3.2019.06.1647 -### Updated: Thu Jun 27 14:46:42 SAST 2019 +### Version: V3.2019.06.1650 +### Updated: Thu Jun 27 15:45:52 SAST 2019 ### Bad Referrer Count: 6713 ### Bad Bot Count: 556 ################################################### @@ -17992,7 +17992,7 @@ geo $ratelimited { # Rate limiting will only take effect if on any User-Agents with a value of 2 limit_conn_zone $bot_iplimit zone=bot2_connlimit:16m; - limit_req_zone $bot_iplimit zone=bot2_reqlimitip:16m rate=6r/m; + limit_req_zone $bot_iplimit zone=bot2_reqlimitip:16m rate=12r/m; # ========================================== # END SECTION 4 - ACTIVATE BLOCKER FUNCTIONS diff --git a/.dev-tools/_conf_files_testing_changes_ratelimiting/bots.d/blacklist-ips.conf b/.dev-tools/_conf_files_testing_changes_ratelimiting/bots.d/blacklist-ips.conf index 90fe4f9d3..0f27f0dd9 100644 --- a/.dev-tools/_conf_files_testing_changes_ratelimiting/bots.d/blacklist-ips.conf +++ b/.dev-tools/_conf_files_testing_changes_ratelimiting/bots.d/blacklist-ips.conf @@ -1,2 +1,2 @@ -104.154.120.187 1; +104.154.113.151 1; 127.0.0.1 1; diff --git a/.dev-tools/_conf_files_testing_changes_ratelimiting/bots.d/whitelist-ips.conf b/.dev-tools/_conf_files_testing_changes_ratelimiting/bots.d/whitelist-ips.conf index 95fbc95fc..0d35fed1e 100644 --- a/.dev-tools/_conf_files_testing_changes_ratelimiting/bots.d/whitelist-ips.conf +++ b/.dev-tools/_conf_files_testing_changes_ratelimiting/bots.d/whitelist-ips.conf @@ -1,4 +1,4 @@ -104.154.120.187 0; +104.154.113.151 0; 127.0.0.1 1; 127.0.0.1 1; 127.0.0.1 1; diff --git a/.dev-tools/_conf_files_testing_changes_ratelimiting/conf.d/globalblacklist.conf b/.dev-tools/_conf_files_testing_changes_ratelimiting/conf.d/globalblacklist.conf index 5206f0e14..0c17cf784 100644 --- a/.dev-tools/_conf_files_testing_changes_ratelimiting/conf.d/globalblacklist.conf +++ b/.dev-tools/_conf_files_testing_changes_ratelimiting/conf.d/globalblacklist.conf @@ -4,8 +4,8 @@ ### VERSION INFORMATION # ################################################### -### Version: V3.2019.06.1647 -### Updated: Thu Jun 27 14:46:42 SAST 2019 +### Version: V3.2019.06.1650 +### Updated: Thu Jun 27 15:45:52 SAST 2019 ### Bad Referrer Count: 6713 ### Bad Bot Count: 556 ################################################### @@ -17992,7 +17992,7 @@ geo $ratelimited { # Rate limiting will only take effect if on any User-Agents with a value of 2 limit_conn_zone $bot_iplimit zone=bot2_connlimit:16m; - limit_req_zone $bot_iplimit zone=bot2_reqlimitip:16m rate=6r/m; + limit_req_zone $bot_iplimit zone=bot2_reqlimitip:16m rate=12r/m; # ========================================== # END SECTION 4 - ACTIVATE BLOCKER FUNCTIONS diff --git a/.dev-tools/_conf_files_testing_changes_whitelist/bots.d/blacklist-ips.conf b/.dev-tools/_conf_files_testing_changes_whitelist/bots.d/blacklist-ips.conf index 90fe4f9d3..0f27f0dd9 100644 --- a/.dev-tools/_conf_files_testing_changes_whitelist/bots.d/blacklist-ips.conf +++ b/.dev-tools/_conf_files_testing_changes_whitelist/bots.d/blacklist-ips.conf @@ -1,2 +1,2 @@ -104.154.120.187 1; +104.154.113.151 1; 127.0.0.1 1; diff --git a/.dev-tools/_conf_files_testing_changes_whitelist/bots.d/whitelist-ips.conf b/.dev-tools/_conf_files_testing_changes_whitelist/bots.d/whitelist-ips.conf index 95fbc95fc..0d35fed1e 100644 --- a/.dev-tools/_conf_files_testing_changes_whitelist/bots.d/whitelist-ips.conf +++ b/.dev-tools/_conf_files_testing_changes_whitelist/bots.d/whitelist-ips.conf @@ -1,4 +1,4 @@ -104.154.120.187 0; +104.154.113.151 0; 127.0.0.1 1; 127.0.0.1 1; 127.0.0.1 1; diff --git a/.dev-tools/_conf_files_testing_changes_whitelist/conf.d/globalblacklist.conf b/.dev-tools/_conf_files_testing_changes_whitelist/conf.d/globalblacklist.conf index 5206f0e14..0c17cf784 100644 --- a/.dev-tools/_conf_files_testing_changes_whitelist/conf.d/globalblacklist.conf +++ b/.dev-tools/_conf_files_testing_changes_whitelist/conf.d/globalblacklist.conf @@ -4,8 +4,8 @@ ### VERSION INFORMATION # ################################################### -### Version: V3.2019.06.1647 -### Updated: Thu Jun 27 14:46:42 SAST 2019 +### Version: V3.2019.06.1650 +### Updated: Thu Jun 27 15:45:52 SAST 2019 ### Bad Referrer Count: 6713 ### Bad Bot Count: 556 ################################################### @@ -17992,7 +17992,7 @@ geo $ratelimited { # Rate limiting will only take effect if on any User-Agents with a value of 2 limit_conn_zone $bot_iplimit zone=bot2_connlimit:16m; - limit_req_zone $bot_iplimit zone=bot2_reqlimitip:16m rate=6r/m; + limit_req_zone $bot_iplimit zone=bot2_reqlimitip:16m rate=12r/m; # ========================================== # END SECTION 4 - ACTIVATE BLOCKER FUNCTIONS diff --git a/.dev-tools/_conf_files_whitelist/bots.d/blacklist-ips.conf b/.dev-tools/_conf_files_whitelist/bots.d/blacklist-ips.conf index 90fe4f9d3..6893ce0fc 100644 --- a/.dev-tools/_conf_files_whitelist/bots.d/blacklist-ips.conf +++ b/.dev-tools/_conf_files_whitelist/bots.d/blacklist-ips.conf @@ -1,2 +1,2 @@ -104.154.120.187 1; +35.192.136.167 1; 127.0.0.1 1; diff --git a/.dev-tools/_conf_files_whitelist/bots.d/whitelist-ips.conf b/.dev-tools/_conf_files_whitelist/bots.d/whitelist-ips.conf index 95fbc95fc..c5da765af 100644 --- a/.dev-tools/_conf_files_whitelist/bots.d/whitelist-ips.conf +++ b/.dev-tools/_conf_files_whitelist/bots.d/whitelist-ips.conf @@ -1,4 +1,4 @@ -104.154.120.187 0; +35.192.136.167 0; 127.0.0.1 1; 127.0.0.1 1; 127.0.0.1 1; diff --git a/.dev-tools/_conf_files_whitelist/conf.d/globalblacklist.conf b/.dev-tools/_conf_files_whitelist/conf.d/globalblacklist.conf index 5206f0e14..51994daac 100644 --- a/.dev-tools/_conf_files_whitelist/conf.d/globalblacklist.conf +++ b/.dev-tools/_conf_files_whitelist/conf.d/globalblacklist.conf @@ -4,8 +4,8 @@ ### VERSION INFORMATION # ################################################### -### Version: V3.2019.06.1647 -### Updated: Thu Jun 27 14:46:42 SAST 2019 +### Version: V4.2019.06.1650 +### Updated: Thu Jun 27 15:45:51 SAST 2019 ### Bad Referrer Count: 6713 ### Bad Bot Count: 556 ################################################### @@ -17992,7 +17992,7 @@ geo $ratelimited { # Rate limiting will only take effect if on any User-Agents with a value of 2 limit_conn_zone $bot_iplimit zone=bot2_connlimit:16m; - limit_req_zone $bot_iplimit zone=bot2_reqlimitip:16m rate=6r/m; + limit_req_zone $bot_iplimit zone=bot2_reqlimitip:16m rate=12r/m; # ========================================== # END SECTION 4 - ACTIVATE BLOCKER FUNCTIONS diff --git a/.dev-tools/globalblacklist-testing.template b/.dev-tools/globalblacklist-testing.template index 23cfacae0..0c17cf784 100644 --- a/.dev-tools/globalblacklist-testing.template +++ b/.dev-tools/globalblacklist-testing.template @@ -4,8 +4,8 @@ ### VERSION INFORMATION # ################################################### -### Version: V3.2019.06.1647 -### Updated: Thu Jun 27 14:46:42 SAST 2019 +### Version: V3.2019.06.1650 +### Updated: Thu Jun 27 15:45:52 SAST 2019 ### Bad Referrer Count: 6713 ### Bad Bot Count: 556 ################################################### diff --git a/.dev-tools/globalblacklist.template b/.dev-tools/globalblacklist.template index 23cfacae0..51994daac 100755 --- a/.dev-tools/globalblacklist.template +++ b/.dev-tools/globalblacklist.template @@ -4,8 +4,8 @@ ### VERSION INFORMATION # ################################################### -### Version: V3.2019.06.1647 -### Updated: Thu Jun 27 14:46:42 SAST 2019 +### Version: V4.2019.06.1650 +### Updated: Thu Jun 27 15:45:51 SAST 2019 ### Bad Referrer Count: 6713 ### Bad Bot Count: 556 ################################################### diff --git a/.dev-tools/test-blocker-badwords.sh b/.dev-tools/test-blocker-badwords.sh old mode 100644 new mode 100755 diff --git a/.dev-tools/test-blocker-rate-limiting.sh b/.dev-tools/test-blocker-rate-limiting.sh old mode 100644 new mode 100755 diff --git a/.dev-tools/test-blocker-whitelist-domains.sh b/.dev-tools/test-blocker-whitelist-domains.sh old mode 100644 new mode 100755 diff --git a/.dev-tools/test-blocker-whitelist-ips.sh b/.dev-tools/test-blocker-whitelist-ips.sh old mode 100644 new mode 100755 diff --git a/.dev-tools/test-blocker-whitelist.sh b/.dev-tools/test-blocker-whitelist.sh old mode 100644 new mode 100755 diff --git a/.dev-tools/test_units/blacklist-ips.conf b/.dev-tools/test_units/blacklist-ips.conf index 90fe4f9d3..0f27f0dd9 100644 --- a/.dev-tools/test_units/blacklist-ips.conf +++ b/.dev-tools/test_units/blacklist-ips.conf @@ -1,2 +1,2 @@ -104.154.120.187 1; +104.154.113.151 1; 127.0.0.1 1; diff --git a/.dev-tools/test_units/random-bots-for-test-quick.list b/.dev-tools/test_units/random-bots-for-test-quick.list index 776daf920..309f43011 100644 --- a/.dev-tools/test_units/random-bots-for-test-quick.list +++ b/.dev-tools/test_units/random-bots-for-test-quick.list @@ -1,50 +1,50 @@ -Anarchie -Bigfoot -BLEXBot -Blow -Bullseye -CATExplorador -CheTeam -com.plumanalytics +360Spider +Aboundex +Alexibot +Battleztar Bazinga +CrunchBot demandbase-bot -Disco -Drip -EirGrabber +evc-batch Evil -FlashGet -Foobot -GetRight +ExtractorPro +FHscan Go-Ahead-Got-It -Haansoft -Iblog -IDBot -InternetSeer -JamesBOT -LinkScan -Lipperhey Spider -Mediatoolkitbot -mediawords -NPbot -Picscout -plumanalytics -POE-Component-Client-HTTP -PxBroker -Searchestate -seoscanners -SISTRIX -SputnikBot -spyfu -Sqlworm -SurveyBot -Suzuran +Grabber +HMView +HTMLparser +HybridBot +InfoNaviRobot +InterGET +Iskanie +JikeSpider +Jorgee +JustView +LNSpiderguy +Ltx71 +meanpathbot +MFC_Tear_Sample +Nibbler +Nikto +PictureFinder +ProWebWalker +PyCurl +Reaper +RepoMonkey +Ripper +SEOkicks +SEOprofiler +SiteSucker +SpankBot +Sqworm +Sucker Trendictionbot -WebAuto -Web Fetch -WebLeacher -Web Sauger -WebSucker -Who.is Bot -WiseGuys Robot -WWW::Mechanize -xpymep1.exe -zauba.io +Turingos +VeriCiteCrawler +WallpapersHD +Web Collage +WebImageCollector +WebSauger +Whack +Wprecon +WWW-Mechanize +zgrab diff --git a/.dev-tools/test_units/random-bots-for-test.list b/.dev-tools/test_units/random-bots-for-test.list index 8cf4664f7..8fd5fa6f8 100644 --- a/.dev-tools/test_units/random-bots-for-test.list +++ b/.dev-tools/test_units/random-bots-for-test.list @@ -1,250 +1,250 @@ -360Spider 80legs +Aboundex Acunetix -ADmantX -AhrefsBot -AIBOT +AfD-Verbotsverfahren +Aipbot Alligator +AllSubmitter +AlphaBot +Anarchie +Apexoo +archive.org_bot ASPSeek Backlink-Ceck -backlink-check -Bandit -BatchFTP +BacklinkCrawler +Barkrowler BBBike BDCbot BetaBot -Bigfoot -BlackWidow +Bitacle +Black Hole Blow BlowFish Boardreader -BotALot -BunnySlippers +Buddy +BuiltWith +Bullseye +Calculon +CATExplorador CazoodleBot CCBot -CherryPicker -CheTeam -Cliqzbot -Cloud mapping +Claritybot Cogentbot -com.plumanalytics +cognitiveseo +Copier +CopyRightCheck Copyscape Cosmos Craftbot -crawl.sogou.com -CrazyWebCrawler -Crescent +crawler4j +crawler.feedback CrunchBot +CSHttp +Curious +DatabaseDriverMysqli Deusu -Devil +Digincore DigitalPebble -Dirbuster -Disco -Discobot -Dispatch +Discoverybot DittoSpyder DnyzBot DomainCrawler DomainSigmaCrawler +Dotbot +Download Wonder Dragonfly -DTS Agent EasyDL +ECCP/1.0 Ecxi -Evil +EMail Siphon +EMail Wolf +Express WebPictures ExtLinksBot -Extreme Picture Finder -EyeNetIE -FDM -FHscan -Firefox/7.0 -Flunky -FrontPage +ExtractorPro +FemtosearchBot +Fimap +FyberSpider +Fyrebot +GalaxyBot Genieo -Getintent -GetRight -Go-Ahead-Got-It +GetWeb GoZilla -Go!Zilla -Grabber +Grafula GrapeshotCrawler -GridBot -Havij +HaosouSpider +Harvest +Heritrix +Hloader HMView -HTMLparser HTTP::Lite -Iblog -IDBot +HTTrack Id-search -IlseBot -Image Fetch -Image Sucker -Indy Library -InfoNaviRobot +IndeedBot instabid Intelliseek InterGET Internet Ninja InternetSeer +ips-agent Iria -IRLbot -Iskanie IstellaBot -JamesBOT -JennyBot Jetty JOC Web Spider -Joomla +Jorgee +Jyxobot Kenjin Spider -Lanshanbot -Larbin -Lftp -LibWeb +Keyword Density +Kozmosbot +LeechFTP +LeechGet Lightspeedsystems +Likse +Linkdexbot LinkextractorPro -LinkWalker -Litemage_walker -lwp-request -LWP::Simple +LinkScan +LinqiaRSSBot +LinqiaScrapeBot +Lmspider +LNSpiderguy Magnet -Mail.RU_Bot -Majestic12 +Mag-Net +Majestic SEO MarkMonitor -Mata Hari +Masscan +MauiBot meanpathbot -Meanpathbot MeanPath Bot Mediatoolkitbot +mediawords MegaIndex.ru -Metauri -MFC_Tear_Sample Microsoft Data Access Microsoft URL Control -MIDown tool MIIxpc Mister PiX -MJ12bot MSFrontPage +MSIECrawler Musobot +Name Intelligence Nameprotect +Navroad +NearSite +Needle Nessus +NetAnts +netEstate NE Crawler NetLyzer NetMechanic -Nettrack Netvibes NICErsPRO -Niki-bot -Nikto NimbleCrawler NPbot -Nutch -oBot -Offline Navigator -OnCrawl +Octopus OpenLinkProfiler Openvas -OrangeSpider -OutclicksBot -PageAnalyzer Page Analyzer -PageGrabber page scorer -Panscient +PageScorer +Pandalytics +Papa Foto +pcBrowser PECL::HTTP -Picscout -Picsearch +PeoplePal +PHPCrawl +PictureFinder Pimonster -Pixray +PleaseCrawl POE-Component-Client-HTTP -ProPowerBot -Pump -PxBroker +Psbot PyCurl +QueryN Metasearch Quick-Crawler RankActive -RankActiveLinkBot -RankingBot +RankFlex RankingBot2 +Rankivabot +RealDownload +RebelMouse Recorder -RedesScrapy Ripper -SalesIntelligent +Rogerbot SBIder -ScoutJet +ScanAlert Screaming -Semrush SemrushBot +SEOkicks +SEOkicks-Robot SEOlyticsCrawler +Seomoz +seoscanners SEOstats -serpstatbot -Shodan -Siphon SISTRIX -Siteimprove -SiteSucker -Snake -Snoopy -SocialRankIOBot +SiteLockSpider +SiteSnagger +Snapbot sogouspider -Sottopop +SpaceBison Spammen -Spanner +sp_auditbot Spinn3r +SputnikBot spyfu Sqlmap -Sqlworm -Sqworm +Steeler Stripper -Sucker SuperHTTP -Surfbot Swiftbot -sysscan -T0PHackTeam +T8Abot tAkeOut +Teleport +TeleportPro Telesoft -Telesphoreo Telesphorep +TheNomad Titan -Trendiction -TurnitinBot -UnisterBot -Upflow +Toata +Toweyabot +Trendictionbot +trendiction.de +Turingos +Turnitin +URLy Warning URLy.Warning -Vacuum -Vagabondo -VeriCiteCrawler +VCI +VidibleScraper Voil Voltron Wallpapers/3.0 +WallpapersHD +WASALive-Bot +Webalta WebAuto -WebCollage +WebBandit Web Collage -WebCopier -Web Enhancer Web Fetch -WebFuck -WebLeacher -WebmasterWorldForumBot -webmeup-crawler -WebPix +WebGo IS Web Pix -WebReaper WebSauger -Webster -WebSucker +Web Sauger +Webshag +WebsiteExtractor +WebsiteQuester +WebStripper Web Sucker -WebZIP -Who.is Bot -WiseGuys Robot -WISENutbot +WebWhacker +WeSEE +WinHTTrack +Wonderbot Woobot Wotbox -Wprecon -WPScan +WWW-Collector-E +WWW-Mechanize WWW::Mechanize x09Mozilla -YoudaoBot -Zade +Xaldon WebSpider +Xenu +xpymep1.exe Zauba -zauba.io Zermelo +zgrab +Zitebot +ZyBorg diff --git a/.dev-tools/test_units/random-bots-for-whitelist-test.list b/.dev-tools/test_units/random-bots-for-whitelist-test.list index f65e12ce8..dc8aeaf45 100644 --- a/.dev-tools/test_units/random-bots-for-whitelist-test.list +++ b/.dev-tools/test_units/random-bots-for-whitelist-test.list @@ -1,250 +1,250 @@ 360Spider -404checker 80legs -AfD-Verbotsverfahren +Abonti +ADmantX AhrefsBot +AIBOT AiHitBot Aipbot -ASPSeek +Alligator +AllSubmitter +archive.org_bot +Asterias +Attach BackDoorBot +backlink-check BackWeb Bandit -BatchFTP -Battleztar Bazinga +Barkrowler BDCbot -BDFetch -Bigfoot +Blackboard +Black Hole BlackWidow Blow BlowFish Bolt +Brandprotect Brandwatch -Buddy -BunnySlippers -Calculon -CATExplorador -CazoodleBot +BuiltBotTough +BuzzSumo CCBot -Cegbfeieh +CherryPicker CheTeam -Chlooe +ChinaClaw Cliqzbot -coccocbot-web +cognitiveseo com.plumanalytics -Copier -Craftbot -crawl.sogou.com -CrazyWebCrawler +crawler.feedback Crescent -Curious Custo DataCha0s -Demon -Digincore -Disco +DBLBot +Deusu +DIIbot +Dirbuster +Discoverybot +Dispatch +DittoSpyder DnyzBot DomainAppender -DomainCrawler +DomainStatsBot +Dotbot +Download Wonder Dragonfly -Drip -DSearch +DTS Agent EasyDL -ECCP/1.0 -Ecxi EirGrabber EMail Wolf -Evil +EroCrawler +evc-batch Exabot Express WebPictures -Ezooms -facebookscraper +ExtLinksBot +Extractor +ExtractorPro FDM FemtosearchBot FHscan -FlashGet Flunky +Foobot FrontPage -GalaxyBot -Genieo -Getintent -GetRight -Gigablast -G-i-g-a-b-o-t +Fyrebot +Gigabot Go-Ahead-Got-It -GoZilla -GrabNet +Gotit +GrapeFX GridBot +Harvest HEADMasterSEO -Heritrix +HMView HTTP::Lite -Humanlinks +HybridBot +Iblog +IDBot +Id-search +IlseBot +IndeedBot InfoNaviRobot +instabid Intelliseek Internet Ninja -Iria -JamesBOT -JennyBot -JetCar -JOC Web Spider -Joomla +InternetSeer +internetVista monitor +ips-agent +Jbrofuzz +JikeSpider +Keyword Density Kozmosbot -Larbin -LeechFTP -Lftp -Lightspeedsystems +Libwhisker Linkdexbot LinkextractorPro -LinkScan -LinqiaMetadataDownloaderBot +LinkpadBot +LinksManager LinqiaRSSBot -Lipperhey Spider +LinqiaScrapeBot +Litemage_walker +Lmspider LNSpiderguy -Ltx71 lwp-request Magnet +Mag-Net Majestic12 Majestic-SEO -Mass Downloader +MarkMonitor +MarkWatch +Masscan +Mata Hari +meanpathbot MeanPath Bot -Mediatoolkitbot MegaIndex.ru Metauri MFC_Tear_Sample -Microsoft Data Access -MIDown tool -MIIxpc -Mister PiX MJ12bot -Morfeus Fucking Scanner -Mr.4x3 -MSFrontPage MSIECrawler +MS Web Services Client Protocol +Musobot Nameprotect Navroad -NearSite +Needle +Nessus NetAnts +Netcraft +netEstate NE Crawler NetLyzer NetMechanic Nettrack -Net Vampire -Nikto +Netvibes +NetZIP +NextGenSearchBot +NICErsPRO +Niki-bot Nimbostratus NPbot -Nutch Octopus -Offline Explorer +Offline Navigator OnCrawl Openfind OpenLinkProfiler Openvas -PageAnalyzer +OpenVAS +OrangeBot +OrangeSpider +OutclicksBot +Page Analyzer PageGrabber -PageScorer -Papa Foto pcBrowser +PeoplePal +Picscout Picsearch +PictureFinder Pimonster +Pi-Monster Pixray -plumanalytics -Pockey -Probethenet ProPowerBot -Psbot -PxBroker +ProWebWalker +PyCurl +Quick-Crawler RankActive -RankActiveLinkBot -RankingBot2 -RankurBot +RankFlex +Rankivabot RealDownload Reaper +Recorder +RepoMonkey RocketCrawler -ScoutJet +Rogerbot +SBIder Scrapy -Searchestate Semrush -SEOlyticsCrawler -SEOprofiler -sexsearcher -Shodan -SISTRIX -Sitebeam -SiteExplorer +SeoSiteCheckup +serpstatbot +Siteimprove +SiteLockSpider SiteSnagger SiteSucker Site Sucker -Sitevigil -SlySearch -Snoopy -Sociscraper +SmartDownload +Snake sogouspider -Sottopop -SpaceBison -SpankBot +Sogou web spider +Sosospider +sp_auditbot +Spbot SputnikBot -spyfu -Steeler +Sqlmap +Sqlworm +Sqworm Stripper -Sucker -Sucuri -SuperBot -SuperHTTP -SurveyBot -T0PHackTeam -tAkeOut +Suzuran +sysscan +Szukacz +T8Abot Teleport Telesoft +Telesphorep The Intraformant -Thumbor TightTwatBot -Toata -Tracemyfile -Trendiction +Titan +Toweyabot Trendictionbot -trendiction.com Turnitin -TurnitinBot TwengaBot -Twice Typhoeus -Upflow -URLy Warning URLy.Warning -Vacuum -VB Project VCI +VoidEYE +Voil Voltron WallpapersHD -WASALive-Bot WBSearchBot Webalta -WebAuto -Web Auto +WebBandit WebCollage -WebCopier -WebEnhancer -WebFuck +WebFetch WebGo IS -WebLeacher -Web Sauger +WebImageCollector +webmeup-crawler +WebPix WebsiteExtractor WebsiteQuester Website Quester WebStripper -WebSucker WebZIP -WeSEE +Whack +Whacker +Who.is Bot +Widow WinHTTrack +WiseGuys Robot +WISENutbot +Wonderbot Woobot Wprecon -WPScan -WWW-Collector-E WWW-Mechanize -WWW::Mechanize x09Mozilla -Xaldon_WebSpider +Xaldon WebSpider Xenu -YoudaoBot Zade -zauba.io -ZmEu +Zeus +ZumBot ZyBorg diff --git a/.dev-tools/test_units/random-referrers-for-test-quick.list b/.dev-tools/test_units/random-referrers-for-test-quick.list index 9862a4e43..dd6a7960c 100644 --- a/.dev-tools/test_units/random-referrers-for-test-quick.list +++ b/.dev-tools/test_units/random-referrers-for-test-quick.list @@ -1,100 +1,100 @@ -100dollars-seo.com -178evakuator178.ru -4inn.ru -5elementov.ru -aa8780bb28a1de4eb5bff33c28a218a930.com -agapovdg.ru -allpdfmags.net -avon-novosib.ru -avtolombard-krasnodar.com -bankiem.pl -big-cash.net -bloke.com -bonux.nextview.ru -bus-offer.com -checkhit.com -dev33.dioniqlabb.se -dfwu1019.info -divci-hry.info -diy-handmade-ideas.com -djonwatch.ru -domainroam.win -erotik0049.com -ez8motelseaworldsandiego.com -familienzahnaerzte.com -fba-mexico.com -fidelityfunding.com -footballfarrago.com -foto-sisek.porngalleries.top -foto-telok.net -frvo.alptandem.ru -fungirlsgames.net -girlsfuckdick.com -gk-atlant.info -gktt.ru -gyffu.com -hdimagegallery.net -hkladys.com -hptwaakw.blog.fc2.com -imperiafilm.ru -jav-way.site -jimmychoosale.online -kinky-fetishes.com -kinopolet.net -life.biz.ua -locationdesaison.com -macdamaged.tech -mac-shield.com -malwareremovalcenter.com -marketland.ml -mecash.ru -medictube.ru -meget.co.za -member-quiz.com -metabar.ru -misswell.net -moroccosurfadventures.com -mygameplus.com -myperiod.club -npoet.ru -o00.in -offf.info -orhonit.com -perso.wanadoo.es -physfunc.ru -picsforkeywordsuggestion.com -pills24h.com -powenlite24.ru -pricheskaonline.ru -purchasepillsnorx.com -qcstrtvt.bloger.index.hr -realting-moscow.ru -renecaovillasale.online -ricorsogiustizia.org -rimedia.org -risparmiocasa.bz.it -search.xtconnect.com -se.bnt-team.com -seeresultshub-a.akamaihd.net -seofied.com -soft-terminal.ru -staticfs.host -sugarlyflex.pw -superstarfloraluk.com -svnuppsalaorebro.se -tizanidinevssoma.blogspot.com -tongkatmadura.info -trichizobswiv.agddns.net -tt-ipd.info -tuckpointingmasonrysystems.com -uptime-delta.net -vepad.com +12u.info +2ads.co.uk +absolute-s.ru +acgs.tk +allmarketsnewdayli.gdn +amazingninja.com +apibetweenlinesn-a.akamaihd.net +apidiamondatanet-a.akamaihd.net +bestadbid.com +best-games.today +bestwaystogetpaid.us +bizlist.com.de +brandehk.dk +b-styles.xyz +burkesales.com +buy-meds24.com +cercacamion.it +chocoslim.pro +cometorussia.net +compliance-alex.xyz +compliance-julianna.top +coolingoods.com +customcatchcan.com +davebestdeals.com +design-lands.ru +deutschehobbyhuren.net +directrev.com +dmmspy.com +dogsrun.net +domaincheck.io +ebooknovel.club +e-buyeasy.com +efnor-ac.com +ezigaretteshop.webs.com +fanrto.com +forex-indextop20.ru +freenode.info +funtoonez.com +getoutofdebtfree.org +gkvector.ru +hexpilot.com +homik.pw +hotel-mkad.ru +husky-shop.cz +hyiphunter.org +imagine-ex.co +isotoner.com +istanbulit.com +kino-filmi.com +kletkimehan.ru +labafydjxa.su +lion.snapmap.us +lsp-awak-perikanan.com +m0r0zk0-krava.ru +maglid.ru +marcoislandvacations.net +meetingrainstorm.bid +metaxalonevstizanidine.blogspot.com +monarhs.info +moscow-clining.ru +naperehresti.info +news-readers.ru +nhl09.ru +online-hit.info +openstat.com +optibuymac.com +osagonline.ru +pcimforum.com +pixell.club +pk-services.ru +porndroids.com +portside.cc +productarium.com +promoheads.com +psoriasis-file.trade +qexyfu.bugs3.com +queerspace.com +radiogambling.com +remont-mobile-phones.ru +royal-betting.net +rvi.biz +scanner-josh.top +sc-specialhost.com +sex-tracker.com +sitebeam.net +solitaire-game.ru +spymac.net +tizanidine4mg.blogspot.com +traffic100.com +tubeline.biz +tvand.ru +ukkelberg.no +unblocksit.es +uptime-alpha.net +uroki.net vucms.com -websites-reviews.com -whatistizanidine2mg.blogspot.com -wineration.com -w-journal.ru -x-diesel.info -xn--80aaagvmjabrs1aoc9luc.xn--p1ai -ypmuseum.ru -zaapplesales.blogspot.com +x-true.info +zakazfutbolki.com +zixizop.net.ru +zoolubimets.ru diff --git a/.dev-tools/test_units/random-referrers-for-test.list b/.dev-tools/test_units/random-referrers-for-test.list index 825879806..2bacf10db 100644 --- a/.dev-tools/test_units/random-referrers-for-test.list +++ b/.dev-tools/test_units/random-referrers-for-test.list @@ -1,1000 +1,1000 @@ 00it.com -101billion.com -101lesbian.xyz -11235813.webzdarma.cz -1688.com -24x7-server-support.site -3rbseyes.com -3w24.com -3weekdiet.com -4istoshop.com +08800.top +0912701309f8ce.com +0n-line.tv +108shot.com +12u.info +1stat.ru +24videos.tv +273-fz.ru +2drittel.de +2kata.ru +2rich4bitches.com +3-letter-domains.net +4inn.ru +55wmz.ru +57883.net +5i2.net +5kstore.com +5ws.dating-app.ru 6hopping.com -888.com -91abcw.com -9med.net -a96527gi.beget.tech -aa08daf7e13b6345e09e92f771507fa5f4.com -aa625d84f1587749c1ab011d6f269f7d64.com -aa8780bb28a1de4eb5bff33c28a218a930.com -aa9bd78f328a6a41279d0fad0a88df1901.com -aa9d046aab36af4ff182f097f840430d51.com +7search.com +7wind.ru +7xc4n.com aasoldes.fr -abcguru.xyz -above.com -absolutelyanalog.com -absugars.com +abcdefh.xyz +abiente.ru abtasty.com -acmebtn.ml -activepr.ru -adbetclickin.pink -adcash.com -addbin.men -addtoadd.men -adf.ly -adimmix.com +abusora.com +academiacsmendoza.org +academia-nsk.org +actionnooz.com +adanih.com +adclickthru.net +adhome.biz +adloads.com +admanaerofoil.com +adman.gr admatic.com.tr -adrunnr.com -ads-cool.pro -ads.tremorhub.com -adultwebhosting.info -adviceforum.info -advokateg.ru -agardomains.com -aghanyna.com -agreda.pluto.ro -akuhni.by -alkoravto.ru -all4wap.ru -allbizne.co.ua -allknow.info -alloysteel.ru -all-streaming-media.com -allwomen.info -alot.com -amazingninja.com -amehdaily.com -am-se.com +adminshop.com +adsland.men +adultactioncam.com +adultgalls.com +adultmeetonline.info +advancedcleaner.com +advancedmassagebysara.com +advertex.info +advertisingtag.net +affordablewebsitesandmobileapps.com +agadelha.com.br +aibolita.com +aihelen.net +akusherok.ru +alert.scansafe.net +alessandraleone.com +alfa9.com +aliexpress.com +alif-ba-ta.com +allfinweb.com +allforminecraft.ru +allkrim.com +all-number.com +alltheviews.com +allwidewallpapers.com +amateurlivechat.org +amazon-adsystem.com +amoi.tn +ampower.me +amung.us +anal-acrobats.com anal-acrobats.hol.es -androids-store.com -android-style.com -animalia-life.club -animalrank.com -animaltoplist.com -anniemation.com -apelsinnik.website +andpolice.com +angigreene.com +anonymizeme.pro +antons-transporte.de +apccargo.com apibrowsesmartne-a.akamaihd.net -apiitsthirteende-a.akamaihd.net -apimountainbikei-a.akamaihd.net -apioutoboxnet-a.akamaihd.net +apidiamondatanet-a.akamaihd.net +apioasisspacenet-a.akamaihd.net apiqualitinknet-a.akamaihd.net -apple.com-webbrowsing-security.science -applyneedy.xyz -arabgirls.adultgalls.com -arabseyes.com -arenanews.com.ua -arenda-yeisk.ru -arendovalka.xyz -arraty.altervista.org -artavenuegardenstudios.com -artel116.ru -articlesdirectoryme.info -asacopaco.tk -ascat.porn -asdfg.pro -asiavirtualsolutions.com +appearance-cool.com +apple.com-webbrowsing-security.review +appleid-verification.com +a.pr-cy.ru +arendakvartir.kz +artdeko.info +arvut.org +as5000.com +asia-forum.ru asociatia-tipografilor-transilvania.ro -asscenihotosidea.blogspot.co.za -asseenontvonline.ru -atley.eu.pn -audiofree.ru -australia-opening-times.com -autoblogger24.info -autogrep.ru +atelielembrancaqueencanta.com.br +atlant-auto.info +atofilms.com +audiobangout.com autonew.biz -autoplate.info -autotop.com.ua +autorn.ru autotrends.today -aviav.co -aviav.ru -aviav.ru.com -avtoarenda.by -avtointeres.ru -awency.com -ayodhya.co +auto-zapchasti.org +availit.weebly.com +avitocars.ru +avkzarabotok.info +ayeartoforget.com +azbukafree.com +azte.ch babs.com.ua -baksman.com -balook.com -baltgem.com +babyfactory.fr +baersaratov.ru +bag77.ru +bagcionderlab.com bambi.ck.ua -bangla-chat-uk-paralud.ga -barbourjackets.online -beachpics.com -beatifullandscape.co -beauty-bracelet.com -bestbrainprod.win -best-coupon-offer.com -bestdraws.com -bestempresas.es -best-games.today -best-mam.ru -betonka.pro -betterhdporn.com -betteroffers.review -betune.onlinewebshop.net -bif-ru.info +banki76.ru +bankmib.ru +bannerconnect.net +bannertesting.com +basedecor.ru +battle.net +bcmp.org +beauty-b0x.pl +becuo.com +bedandbreakfast.com +beetpics.pw +begalka.xyz +beget.tech +berdasovivan.ru +besthoro.ru +bestpriceninja.com +best-seo-offer.com +bestserials.com +bestssaker.com +best-way.men +bestwebsiteawards.com +bigames.online +big-boards.info bigcareer.info -bigcities.org -bigpictures.club -bildsuche.ru -bioca.org -bio-japan.net +bin-brokers.com +bio-market.kz birzha-truda.eu -bitcoinpile.com -bitcoinremote.com -bitnote.co -bizfly.info -bizru.info -bjorkbacken.nu -blackle.com -bloggerads.net -blog-hits.com -blogig.org -blogqpot.com -blogsfunky672.weebly.com -bloke.com -bmsco.co -bmw.afora.ru -bocoarchives.org -boleznikogi.com -bonkers.name -bonzbuddy.com -bookmaker-bet.com -bookmark4you.com.biz -boole.onlinewebshop.net -bosefux.esy.es -bracketsmackdown.com -brainboosting.club +bkns.vn +blackplanet.com +blacktwhite.com +blackwitchcraft.ru +blavia.00author.com +bloggedporn.com +blog.koreadaily.com +blogs.rediff.com +blpmovies.com +bonzybuddy.com brakehawk.com -brandehk.dk -brendbutik.ru -brg8.com -brus-vsem.ru -bscodecs.com -btc4u.ru -btnativenav.com -btvn.ru -buigas.00it.com -buketeg.xyz -bukleteg.xyz -bum.com.ru -bumskontakte.org +bristolhotel.com.ua +builtwith.com burger-imperia.com -buron.pw -buy-cheap-pills-order-online.com -buyessaynow.biz -buynorxx.com -bvlgaribracelet.xyz -bvlgariwallet.xyz -bycontext.com -cacheimages.com -calstaterealty.us -candytiner.com -canrioloadm.gq -canrole.com -canvas.gloverid.site -capture-room.com -cartierreplica.pw -casinos4dummies.co.uk +burger-tycoon.com +business-suggested.tk +buyantiviralwp.com +buy-meds24.com +buzz-porno.info +byme.se +cakesplus.com.au +callmd5map.com +call-of-duty.info +camsex.xxx-cam.webcam +candy-glam-hp.com +canzoni.ru +carapics.com +cardsharp1.ru +cartierlove2u.com +cartierring.xyz +cartiertrinity.xyz +casinorewards.info +caveavins.fr +cdn.walkme.com cejewelry.xyz -centraletermice.us -cezartabac.ro -chatroulette.online -chcu.net -cheapjerseysfootballshop.com -cheap-trusted-backlinks.com +centrumcoachingu.com +cete.ru +chatroulette.life +cheapbelstaff.online +cheapjerseysap.com +cheapmoncler.win +cheapmoncler.xyz +cheatcode-lita12.rhcloud.com +checkpagerank.net cherrypointplace.ca -cialisovercounteratwalmartusa.com -ciproandtizanidine.blogspot.com -civilwartheater.com -cjmc.info -cjs.com.ru -classicakuhni.ru -clickcash.com -clickintext.net +cherubinimobili.it +chocolateslim-en-france.com +chorus.terakeet.com +chuckguilford.com +cialischstgerts.com +ciceros.co +cityadspix.com +claytransformations.info +cleanallspyware.com clickprotects.com +clicksor.net +clicksotrk.com clippingphotoindia.com +cl.s7.exct.net clubfashionista.com -coinsspb.com +cognitiveseo.com +colehaanoutlet.store +com-cleaner.systems community.allhiphop.com -compliance-alex.top compliance-alex.xyz -compliance-barak.top compliance-barak.xyz -compliance-george.xyz -compliance-julianna.top -compliance-margo.top -compliance-willy.top -compucelunlock.net -com-supportcenter.website -connectingsingles.com -connectionstrenth.com -constantaservice.net -coolyarddecorations.com -counterbot.com -country-chic.ru -crd.clan.su +compliance-elena.top +compliance-george.top +compliance-walter.top +construmac.com.mx +cookingmeat.ru +coolingoods.com +coop-gamers.ru +cosmeticswomens-womensports.rhcloud.com +counciltally.com +countbertwistdisp26.soup.io +cowblog.fr +cpabegins.ru +cracksplanet.com +crackzplanet.com creativehutindia.com -crest3d.ru -crystalslot.com -customcollegeessays.net -dairyindia.in -danashop.ru -daretodonate.co -data1.scopich.com -dataloading.net -d-black.bz -ddsoldes.fr -deadlinkchecker.com -decenttools.com -degerlund.net -demenageur.com +creditmoney.com.ua +cscwtalkto.site +csgo4.win +customchocolate.business-for-home.com +customerguru.in +cvety24.by +d2jsp.org +dailyfinancefix.com +dame-ns.kz +daooda.com +darkages.info +darodar.com +data-mining.tk +dating-app.ru +davidovic.info +day-news.info +ddlmega.net +ddospanel.com +decoratinghomes.ga +dekorkeramik.ru +dengi-pod-zalog-nedvizhimosti.ru +dentalpearls.com.au +design-lands.ru +detalizaciya-tut.biz +detskie-zabavi.ru +deutschehobbyhuren.net +deutschland123.de dev78.dioniqlabb.se -dfwu1013.info -dichvuvesinhhanoi.com -dieswaene.com -digitalassetmanagement.site -dinkolove.ya.ru -dirtpics.pw -discovertreasure-a.akamaihd.net +dfwu1019.info +diamond-necklace.info +diegolopezcastan.com +digest-project.ru +digitalfaq.com +dildofotzen.net +djstools.com dkvorota.ru -dnsrsearch.com -dogbreedspicture.net -dogsrun.net -dojki-hd.com -dollartree.info -domain2008.com -domcran.net -domznaniy.ru -donvito.unas.cz -dostavka-v-krym.com -dotmass.top -downloaddy.net -downloadkakaotalk.com -download-wallpaper.net -downtuptv.gq -dpihatinh.gov.vn -drev.biz -drugstoreforyou.com -drunkenstepfather.com +domaincheck.io +domainroam.win +dorratex.tn +dotnetdotcom.org +doxysexy.com +drillsaw.ru +drivotracker.com druzhbany.ru -duplicashapp.com -dvr.biz.ua -earl-brown.info -earthmagic.info -easyukraine.com +dynainbox.com +dyt.net +e-buyeasy.com +econom.co ecxtracking.com +edelstahlschornstein-123.de +ednorxmed.com +educatemetv.com +edudocs.net edwinkonijn.com.au -efkt.jp -ege-essay.ru -electricwheelchairsarea.com -eleimgo.pw -elektrozigarette1.dreamwidth.org -elitepcgames.com -elite-sex-finders.com -eloconcream.blogspot.com +egvar.net +ekn-art.se +eldiariodeguadalajara.com +elektrozigarette2.webs.com +elektrozigaretten1.postbit.com +elmacho.xyz elstal.com.pl -eluxer.net -elvel.com.ua -embedle.com -emergencyneeds.org +elvenmachine.com +emailaccountlogin.co +emediate.eu +empis.magix.net +en.altezza.travel +enbersoft.com +energydiet24.ru enews.tech -e-poker-2005.com -erectile.bid -erotik0049.com -erotikstories.ru -ertelecom.ru +eralph.tk +erot.co escort-russian.com -essay-edu.biz -essay-writing.work +esfchat.tk +essayservicewriting.org estelight.ru estibot.com -eupornstar.info -euromasterclass.ru -europeanwatches.ru -evaashop.ru -exhibitionplus.eu -exoneration-project.us -expertblog.info -eywords-monitoring-your-success.com -ezaz.info -ezigarettenshop1.yolasite.com -falopicm.pw +etm-consult.de +euronis-free.com +europages.com.ru +evidencecleanergold.com +evogarage.com +excaliburfilms.com +exdocsfiles.com +exonline.info +extener.org +extlabs.io +eyelike.com.ua +eyessurgery.ru +ezigarettekaufen2.yolasite.com +ezigarettekaufen.myblog.de +ezrvrentals.com +falllow.gq +familyholiday.ml +fanpagerobot.com +fashionavenuegame.com +fashion.stellaconstance.co fatmaelgarny.com -faz99.com -fbdownloader.com +feel-planet.com +feeriaclub.ru fefo.gdn -fellowshipoftheminds.com -fermersovet.ru -fetlifeblog.com -fetroshok.ru -fettefrauen.net -filesdatabase.net -filesmonster.porn -filunika.com.ru -fireads.men -fiuxy.com -flagcounter.me -flash4fun.com -f-loaded.de -food.dtu.dk -forex21.ru -forex-indextop20.ru -formularz-konkurs.tk -forodvd.com -forpackningsutveckling.se -fortevidyoze.net +fickluder69.com +fidelityfunding.com +fifa-coins.online +filkhbr.com +filmfanatic.com +filmi-v.online +finansov.info +findacheaplawyers.com +findclan.org +findthe.pet +finejewelryshop.ru +fitness-video.net +flashlarevista.com +flirt4free.com +flowwwers.com +flprog.com +fodelsedagspresenter.nu +footbalive.org +forexunion.net +forsex.info +fortwosmartcar.pw +forum.poker4life.ru +forums.toucharcade.com forum.tvmir.org -foto-sisek.porngalleries.top -foto-telok.net -fototravel.eu -frighteningremain.cf +foto-basa.com +fotopop.club +fotoxxxru.com +frbizlist.com +freewlan.info +frequiry.com fr.netlog.com -fungamelands.com +ftns.ru +fuel-gas.com fun-mobi.pl -fxtips.ru -galaxys6manual.info -gambarxkata.co +funnel.co.za +funnymama.com +funnypica.com +fym.com.ru +gagrasector.ru +galleryawesome.com game300.ru -gate5.co.za -gay-file.com -gayxperience.com -geileweiber.tk -getoutofdebtfree.org -getprismatic.com -gettpromos.com -ghernnqr.skyrock.com -gifspics.com -given2.com -glavtral.ru -glcomputers.ru -globalscam.ga -gobongo.info -golaya.pw -goldadpremium.com -goldandcard.ru -golden-praga.ru -golmau.host.sk +gamezblox.com +gaytube.com +gearcraft.us +generalporn.org +genetworx.com +getlamborghini.ga +getmyads24.com +getresponse.com +gg-arena.ru +gk170.ru +gktt.ru +gkvector.ru +glogow.pl +go2mike.ru +gojiberriess.apishops.ru +golden-catalog.pro +gomusix.com +good-mummy.ru +goodwinmetals.co googst2.ru -gosarhivrt.ru -gotwebsite1.com -gpirate.com -gratis-sexkontakte.com -greatzip.com -groupmoney.ru -gsasearchengineranker.pw -gwebtools.com -gwebtools.com.br -haikuware.com -hamilton.ca -hao123.com -havepussy.com -hd-film.pl -headpress.ru -healing-dysplasia.ru -helpmymacfaster.trade -hermesbirkinhandbagoutlets.com -hifidesign.ru +grand-chlen.ru +greenzaim.ru +growmyfunds.ca +gwhwpxbw.bloger.index.hr +gyffu.com +handicapbathtubarea.com +handicapvansarea.com +hanink.biz.ly +hannasolution.ru +hatdc.org +hauleddes.com +hd720kino.ru +hdpixion.com +healgastro.com +health-medical-portal.info +heartofpayne.xyz +helicalpile.us +histats.com hobbyhuren-datenbank.com -homeart.space -homedo.fabpage.com -hostnow.men +hollywoodactress.info +homeandhealth.ru +homeinns.com +homelygarden.com +homemade.gq +horoshieokna.com +hostcritique.com host-tracker.com -hotblognetwork.com -hotdl.in -hotgirlhdwallpaper.com -housediz.com -hoverboardforsaledirect.com +hotelcrocenzi.sm +hotsocialz.com +hotxnights.info +hoverboard360.es https-legalrc.biz -huimin764128.com -humanorightswatch.org +hubbble.com humbmosquina.tk -hydropump.su +husky-shop.cz +hyhj.info ibmdatamanagement.co -icaseclub.ru -idc.com.ua -idealtits.net -ido3.com -igithab.com -iinstalll-fii1leis.jus0wil.pp.ua -ikritikimou.gr +iboss.com +ideashome.id +ideibiznesa2015.ru ilbe.club -ilmexico.com +ilovevitaly.xyz +imagecoolpub.com +imagine-ex.co imgarit.pw -imitex-plus.ru -immobiliaremassaro.com -impisr.ru -incanto.in.ua -indetiske.ya.ru -indo-export.ru -infazavr.ru -infobabki.ru -infostatsvc.com -inmate-locator.us -innodgfdriverhm.aircus.com -intelhdgraphicsgtdrive6w.metroblog.com +importchinacoach-teach.com +import-sales.com +incomekey.net +infospot.pt +insta-add.pro +insurple.com +in-tandem.co +integritylandscapeservices.com intellego.info -ip-guide.com -iplusbit.blogspot.co.za -ipostroika.ru +interfucks.net +internet-apteka.ru +internetartfair.com +intim-uslugi.info +investingclub.ru +investyb.com iptool.xyz -iqoption-bin.com -iqs.biz.ua -iradiology.ru -isitpaleo.info -istizanidineacontrolledsubstance.blogspot.com +iqbazar.ru +iqoption.com +islamtoday.co.za +istizanidinelikexanax.blogspot.com istripper.com itag.pw -itch.io -ivearchenceinflu.cf -iwantedmoney.com -iwantmyfreecash.com +itrevolution.cf +ivoiretechnocom.ci ixora.pro -izoll.ru -jabimgo.pw -jackpotchances.com -jackwolfskinoutlet.online -jamiembrown.com -javitas.info +jagg.info +jasonpartington.com +jav-fetish.com +jaxcube.info +jerseyswholesalechinalimited.com jerseywholesalechinabiz.com +jillepille.com jimmychoosale.online -jongose.ninja -justdating.online -kerwinandcariza.com -ketrzyn.pl -kevblog.top -keywordhut.com +joessmogtestonly.com +jose.mulinohouse.co +j-times.ru +junglenet-a.akamaihd.net +kaac.ru +kabbalah-red-bracelets.com +kaidalibor.de +kalandranis.gr +kam-dom.ru +karadene.com +karpun-iris.ru +karusel-market.ru +kashubadesign.ru +katjimej.blog.fc2.com +kazan.zrus.org +kazinogames.lv keywordsdoctor.com -keywords-monitoring-success.com keywordsuggest.org -kicknights.gq -kinobest.pl -kinoflux.net -kinoplen.ru -kinostorm.net -kiwi237au.tk -kleine-titten.biz -klin3952.ru -kmgamex.cf -kochanelli.com -komputers-best.ru -konica.kz -konkursov.net +keywordsuggests.com +khafre.us +kinoduh.ru +kino-fun.ru +klejonka.info +kndxbkdx.bloger.index.hr +kol-energo.ru konkursowo-24.pl -koversite.info -kraljeva-sutjeska.com -krassh.ru -kreativperlen.ch +konpax.com +kostenlos-sexvideos.com +kriokomora.info +ks1234.com +kumuk.info +kunstaktien.info +kuzinsp.ru +kvartiry-remont.ucoz.ru labelwater.se -labplus.ru -labvis.host.sk -lacave.ntic.fr +ladov.ru laexotic.com -lanadelreyfans.us -landinez.co -larchik.net -law-check-nine.xyz -law-check-seven.xyz +lakomka.com.ua +landoftracking.com +languagecode.com +laserpen.club +layola.biz.tc lazy-z.com -lechenie-gemorroya.com -le-clos-des-alouettes.com +lecbter-relationships.ga +lechtaczka.net ledpolice.ru -lernur.net -letmacworkfaster.site -letslowbefast.site -letslowbefast.today -libertybilisim.com -lida-ru.com -life.biz.ua -lifeinsurancekb.com -likesdesign.com -linerdrilling.com -linkpulse.com -liumimgx.pw -live-sexcam.tk +legionalpha.com +lego4x4.ru +lennatin.info +lerporn.info +li-er.ru +lightinghomes.net +limads.men +lineshops.biz +lion.bolegapakistan.com +littleberry.ru +live-cam6.info livetsomudvekslingstudent.bloggersdelight.dk -lkbennettoutlet.online +livingcanarias.com +lizace.com +ljusihus.se loftdigital.eu -lollypopgaming.com -lolnex.us -lombia.co -lonely-mature.com -lostfilm-online.ru +lost-alpha.ru lotto6888.com -lovasszovetseg.hu -lovelycraftyhome.com +louboutinreplica.xyz lovi-moment.com.ua lowephotos.info -low-format.ru -luckyshop.net.ua -luxup.ru -lyngdalhudterapi.no -lyrics.home-task.com -m1media.net -macfix.life -mactechinfo.info -magda-gadalka.ru -mail.allnews24.in -makemoneyonline.com -malls.com -malwareremovalcenter.com -map028.com -mature.free-websites.com +lsp-awak-perikanan.com +macotool.com +madot.onlinewebshop.net +magicalfind-a.akamaihd.net +magicdiet.gq +magnetpress.sk +makis.nu +manipulyator-peterburg.ru +mantramusic.ru +manualterap.roleforum.ru +maridan.com.ua +martlinker.com +massage-info.nl +master-muznachas.ru max-eclat.men -mcadamssupplyco.com +max-p.men +mazda-roadsters.com mearns-tractors.co.uk -medicineseasybuy.com -medosmotr-ufa.ru +mebel-vstroika.ru +meble-bogart.info +medanestesia.ru +medispainstitute.com.au meds-online24.com -med-zdorovie.com.ua +medtherapy.ru +meetlocalchicks.com megakino.net -meget.co.za +mejoresfotos.eu me-ke.com -mere.host.sk -methodsmarketing.com -millionare.com -minecraft-neo.ru +members.ghanaweb.com +message-warning.net +mesto-x.com +metarip.ru +m-google.xyz +militarysale.pro minecraft-rus.org -minharevisao.com -minneapoliscopiers.com -mir-betting.ru -mixed-wrestling.ru -mobile.ok.ru -mobstarr.com -moesen-ficken.com -moesonce.com -mojpregled.com -mole.pluto.ro -monclerboots.xyz -moncleroutletonline.pw -montazhnic.ru -monthlywinners.com -moonci.ru +mobile-appster.ru +mobilierland.com +moetomnenie.com +monarchfind-a.akamaihd.net +moneyzzz.ru +morefastermac.trade morf.snn.gr -morocco-nomad-excursions.com -moscow-clining.ru -mouselink.co -mowser.com +moscow.online-podarki.com +moviemail-online.co.uk +moviezbonkerssk.cf mrpornogratis.xxx -msk.afora.ru -mug-na-chas-moscow.ru -musflashtv.com -mustat.com -muzaporn.com -muz-baza.net -muztops.ru +msk-diplomat.com +musicktab.com +musicstock.me +muycerdas.xxx mvpicton.co.uk -my-aladin.com myanyone.net -mycaf.it -mydirtyhobby.com -mydownlodablefiles.com -myhydros.org -mylesosibirsk.ru -myonlinepayday.co -myperiod.club -mypornfree.ru -nalogovyy-kodeks.ru -nero-us.com -net-profits.xyz -new-post.tk -newstudio.tv -newtechspb.ru -next-dentists.tk +myfreetutorials.com +myindospace.com +myiptest.com +myseoconsultant.com +mysexpics.ru +mystats.xyz +myxdate.info +myyour.eu +nailsimg.com +naphukete.ru +narkologiya-belgorod.ru +nash-krym.info +nastroyke.net +naturalpharm.com.ua +naughtyconnect.com +netfacet.net +nevansk.ru +new-apps.ru +news-readers.ru +newstaffadsshop.club nhl17coins.exblog.jp -nikkiewart.ru +nikitsyringedrivelg.pen.io noclegonline.info -notaria-desalas.com -notfastfood.ru -nowtorrents.com +norththeface.store +nottyu.xyz +novosti-hi-tech.ru npoet.ru -nullrefer.com -nvssf.com -o00.in -obnal.org -officedocuments.net -okuos.com -omoikiri-japan.ru -omsk.xrus.org -onclkads.com +nsatc.net +nuker.com +odoratus.net +offtopic.biz +oklogistic.ru +okmedia.sk +okout.ru +oktube.ru +oneclickfiles.com onefilms.net one-gear.com -onemantrip.com -online-hit.info -ontargetseo.us -o-o-8-o-o.ru +onemactrckr.com +onlainbesplatno.ru +onlinadverts.com +onlinefilmz.net +online.ktc45.ru +online-x.ru +o-o-11-o-o.com oops-cinema.ru -openfrost.net -optitrade24.com -oren-cats.ru -origin-my.ru -orion-v.com -ororodnik.goodbb.ru +opinionreelle.com +orgasmus-virtual.com +orion-code-access.net +osb.se11.ru otbelivanie-zubov.com -ovirus.ru -owohho.com -oyster-green.com -ozoz.it pacificair.com -panchro.xyz -paparazzistudios.com.au +page2rss.com +pandroid.co +parajumpersjakkesalgnorge.info +partnerads.men partner-host.men partnerworkroom.men pattersonsweb.com pawli.eu -pb-dv.ru pdn-4.com pdns.download -pendelprognos.se -pepperstyle.ru -perfectpracticeweb.com -petsblogroll.com -photokitchendesign.com -picture-group.com -pigrafix.at +pelfind.me +percin.biz.ly +phobia.us +phormchina.com +physfunc.ru +picsearch.com +pics-group.com +pictures-and-images.com +picturesboss.com +pijoto.net +pillscheap24h.com +piluli.info piratecams.com -piulatte.cz -pixell.club -pizda.lol +pixshark.com pizdeishn.com +pizdopletka.club +pizza-imperia.com +pk-pomosch.ru +pkr1hand.com pk-services.ru -platesauto.com -playlott.com -play-movie.pl -pl.id-forex.com -pl-top.pl +plastweb.ru +platezhka.net +playboyfiles.xblog.in +plohaya-kreditnaya-istoriya.ru pochtovyi-index.ru -poisk-zakona.ru -popcash.net -popugaychiki.com -porndl.org -pornhub-ru.com -porno-dojki.net +poem-paying.gq +pokerniydom.ru +polcin.de +popup-hgd.xyz +popup-jdh.xyz +porndairy.in +pornoblood.com +pornodojd.ru +pornogratisdiario.com +pornokajf.com pornoklad.ru +pornokorol.com pornosee.info -pornosexrolik.com -porn-w.org -pornzone.tv -portal-eu.ru -poshiv-chehol.ru -powc.r.ca.d.sendibm2.com -powenlite24.ru +pornowarp.info +pornstartits.xblog.in +posible.net +pozdravleniya-c.ru +pozdrawleniya.com +pozvonim.com +pravoholding.ru +prchecker.info +predmety.in.ua preparevideosafesystem4unow.space -priscilarodrigues.com.br -privatefx.all4invest.info -privat-girl.net +pricheskaonline.ru +princeadvantagesales.com +privatbank46.ru +privhosting.com +prizefestival.mobi +produkto.net +proekt-gaz.ru profitkode.com -profit-opportunity.com -promalp-universal.ru +profitwithalex.info +proftests.net +promgirldresses.xyz promodj.com +promoforum.ru +pronekut.com +pronorm.fr +prospekt-st.ru prostitutki-kharkova.org -prostitutki-novgoroda.org -pr-ten.de -quality-traffic.com +prpops.com +puzzleweb.ru +qld10000.net quangcaons.com -quebec-bin.com -questionmarque.ch -rabotaetvse.ru -radiogambling.com +quickbuck.com +quickcashlimited.com +quick-offer.com +randalljhoward.com +rangoman.date +ranking2017.ga +rankingchart.de ranksonic.info -ratemodels.net -razorweb-a.akamaihd.net -realitykings.com -recordpage-a.akamaihd.net -redirectme.net -registrysweeper.com -reklama1.ru -relax.ru -remontbiz.ru -remont-comp-pomosh.ru -remont-fridge-tv.ru -rentaremotecomputer.com -replicalouboutin.xyz -rewardit.com -rightenergysolutions.com.au -rocketchange.ru -roma-kukareku.livejournal.com -rootandroid.org -rostov.xrus.org -royalcar-ufa.ru -ruclicks.com -rucrypt.com -ruf777.com -runtnc.net -russkie-gorki.ru -rustic-quiver.win -rutor.group -s1z.ru -sabizonline.com -sad-torg.com.ua -salutmontreal.com +rapevideosmovies.com +rapidsites.pro +real-time-analytics.com +reimageplus.com +remote-dba.de +replica-watch.ru +research.ifmo.ru +respublica-otel.ru +restorator-msk.ru +rezeptiblud.ru +rialp.getenjoyment.net +ribieiendom.no +rimedia.org +rique.host.sk +rome2rio.com +roofers.org.uk +rozalli.com +rubbed.us +rus-pornuha.com +rusprostitute.com +rvzr-a.akamaihd.net +saletool.ru +saltspray.ru +salut-camp.ru +sampleletters.net saneitconsulting.com sanidumps.com -sawin.beth.webd.pl -sax-sex.com -sbricur.com -sbtdesign.co.uk -scanner-andrew.top +satellite.maps.ilovevitaly.com +savefrom.com +sbetodiodnye-lampy.ru +scanmarine.info +scanmyphones.com +scanner-alexa.top scanner-barak.top -scanner-marwin.top -scanner-viktor.top -school-diplomat.ru -schoolfiles.net -sdelatmebel.ru -seansonline24.pl -search.alot.com -seasonvar.ru -seemoreresultshu-a.akamaihd.net -seinterface.com -seksvideoonlain.com -sell-fb-group-here.com -semp.net -sendearnings.com -senger.atspace.co.uk -seomarketings.online -seorankinglinks.com -serialsway.ucoz.ru -servicecenter.co.ua +scanner-fred.top +scanner-jack.top +scanner-jane.top +scansafe.net +scenicmissouri.us +scrnet.biz.ua +sdi-pme.com +security60-e.com +seeresultshub-a.akamaihd.net +segol.tv +seo-2-0.com +seofied.com +seoholding.com +seolab.top +sergiorossistore.online +servethis.com +service.adtech.fr servingnotice.com -sexblog.pw -sexcamamateurchat.com -sex.hotblog.top -sexkrasivo.net +sex-foto.pw +sexiporno.net +sexkontakteao.info sexobzor.info -sex-pr.net sexsaoy.com -sexs-foto.com +sexs-foto.top +sexspornotub.com sexstream.pl -sexy-pings.com -sexyteens.hol.es -sfd-chess.ru -shell-pmr.ru -shijian.ac.cn +sharebutton.to +shemalegalls.blogporn.in shikiso.info -shinikiev.com.ua +shisha-swag.de +shivafurnishings.com +shohanb.com shopcheermakeup.info shopvilleroyboch.com.ua +shtaketniki.ru +sibdevice.ru sideeffectsoftizanidine.blogspot.com -silvercash.com -similardeals.net -simpoed.ufop.br -site-analyzer.com +signx.info +silktide.com +silvermature.net +sims-sims.ru +simul.co +sindragosa.comxa.com +sinel.info +siteheart.net siteripz.net -sitevaluation.com -sitopreferito.it -skatestick.bid -sky-mine.ru -slavia.info -slomm.ru -smailik.org -smartshoppymac.com -smokewithrabbits.com -snowplanes.com -socas.pluto.ro -socialbuttons.xyz -social-fun.ru -socialsignals24.com -solitaire-game.ru -songoo.wz.cz +site.ru +sitevaluation.org +sizeplus.work +skachat-besplatno-obrazcy.ru +s.lollypopgaming.com +slowmacfaster.trade +smstraf.ru +snow.nvr163.com +soblaznu.net +social-buttons.com +social-button.xyz +socialtrade.biz +soda.media +soft1.ru +softwaretrend.net +solmarket.by sophang8.com -soserfis.com -souvenirua.com -spbchampionat.ru +souvenir.cc +spasswelt.net +splendorsearch-a.akamaihd.net sport-video-obzor.ru -spravka-medosmotr.ru -sps-shop.com -sptslmtrafms.com spylog.com -spywareit.com -spywarespy.com -stair.registrydomainservices.com -stard.shop -startufa.ru -statoutlook.info -stats-collector.org -steame.ru -stpolice.com -strana-krasoty.ru -strigkaomsk.ru -stroiminsk.org -strongsignal-a.akamaihd.net -studiokamyk.com.pl -sugarkun.com -sukirgenk.dvrlists.com -superfish.com -superiends.org -supermesta.ru -suralink.com -surgut.zrus.org +squidoo.com +sribno.net +sr-rekneskap.no +star61.de +start.myplaycity.com +startwp.org +starwars.wikia.com +staticfs.host +stats-public.grammarly.io +stauga.altervista.org +stillmiracle.com +stop-gepatit.te.ua +stretchmate.net +strv.se +superlist.biz survival.betteroffers.review -susanholtphotography.com -svetodiodoff.ru -swimpool.ca -swingerseiten.com -swinginwithme.ru -sygraem.com +swsociety.se syndicate.fun -tabakur77.com -taboola.com -taihouse.ru -takeflyte.com -tanieaukcje.com.pl +szucs.ru +tabletkinaodchudzanie.com.pl +talant-factory.ru +tandvardshuset.net +tattooreligion.ru taximytishi.ru -tds-advert005.info -tech4master.com -template-kid.com -templates.radiodigital.co -testingads.pro -thedownloadfreeonlinegames.blogspot.com -thegioixekhach.com +taxi-v-eisk.ru +t-bygg.com +td-l-market.ru +tedxrj.com +telemetryverification.net +telsis.com +terrafootwear.us +thebitcoincode.com +thebluenoodle.com +theheroes.ru thejournal.ru -thetattoohut.com -thewomenlife.com -thin.me.pn -threecolumnblogger.com -tiandeural.ru -timer4web.com -timetorelax.biz +theprofitsmaker.net +the-torrent-tracker.blogspot.com +the-usa-games.blogspot.com +thexart.club +thfox.com +thruport.com +timeallnews.ru timhost.ru -titan-cloud.life -titslove.yopoint.in -tizanidine4mg.blogspot.com -tizanidine4mgprice.blogspot.com -tizanidinedosageforsleep.blogspot.com -tizanidinepain.blogspot.com -tizanidineshowupondrugtest.blogspot.com -tizanidinestreetvalue.blogspot.com +tizanidinefibromyalgia.blogspot.com +tizanidineformigraines.blogspot.com +tizanidinehcl2mg.blogspot.com +tizanidineinteractions.blogspot.com +tizanidineoral.blogspot.com +tizanidinesideeffectsweightloss.blogspot.com +tizanidinestreetprice.blogspot.com +tizanidinevscyclobenzaprine.blogspot.com +tizanidinevsvalium.blogspot.com +tk-assortiment.ru +tmearegion26.com tnctrx.com -toloka.hurtom.com -toonfamilies.net -top1-seo-service.com -top250movies.ru -topads.men -topappspro.com -topcar-krasnodar.ru +token-lab.org +topbestgames.com +topclickguru.com +topkarkas.com +topvidos.ru +torrentdownloadhub.com torrent-to-magnet.com -totu.info -totu.us -toyota.7zap.com -toy-shop.top -tracfone.com +tovaroboom.vast.ru +toxicwap.com +tozup.com +track-rankings.online tracksz.co -traderzplanet.in -trafficfactory.biz +tradedeals.biz +traffic2money.com trafficjunky.com -trion.od.ua -tripper.de -tri-slona.org -trumpetedextremes.com -trustedhealthtips.com -trustl.life -tsan.net -tubeoffline.com -tula.howotorg.ru -turbodsp.com -turizmus.us -twinderbella.com -twodollarshows.com -tx41tclega.ru -u17795.netangels.ru -uac.net.au -ua-company.ru -ufa.xrus.org -ukrobstep.com -uni.me -unmaroll.ya.ru -unrealcommander.com -urccvfmc.bloger.index.hr +tramadolandtizanidine.blogspot.com +triumf-realty.ru +trk-4.net +trkdf.com +try-rx.com +tuckermktg.com +tvand.ru +tzritel.tk +u555u.info +ua.tc +uggsale.online +uhdtv.website +uhodzalijami.ru +ukkelberg.no +unionmarkt.de +unpredictable.ga +uptimebot.net +urengoy.pro usiad.net -usswrite.com -uvozdeckych.info -uzungil.com v24s.net -v720hd.ru -vacuumscleaner.com -vapsy.com -vavilone.com -vduplo.ru -veopornogratis.xxx -versaut.xxx-cam.webcam -via-gra.webstarts.com +validccseller.com +validdomain.xyz +vedomstvo.net +vektorpress.ru +via-energy-order.com +viagroid.ru video-camer.com -videochat.bz -videochat.world -videospornogratisx.net -vigrx-original.ru -viktoria-center.ru -vinsit.ru -vinylvault.co.uk -vip-parfumeria.ru -vitanail.ru -vizitki.net -volgograd.xrus.org -voloo.ru -vonradio.com -voronezh.xrus.org +video-chat.love +videochat.mx +videokrik.net +videos-for-your-business.com +vielporno.net +vietimgy.pw +villacoloniale.com +visitcambridge.org +vkontarkte.com +vostoktrade.info +vpnmouse.com vremya.eu -vucms.com -vvon.co.uk -vzlom-na-zakaz.com -wapsite.me -watchmyfb.pl +vrotike.ru +vykupavto-krasnodar.ru +wait3sec.org +wareseeker.com +watchinf.com +watch-movies.ru waterefficiency.co -wdfdocando.com -webcamdevochka.com -webix.biz -weblo.com -website-datenbank.de -websitevaluebot.com -webtherapy.ru -wellcome2slovenia.ru -westsextube.com -whatsupinfoley.com +wdrake.com +webextract.profound.net +webjam.com +webmasters.stackexchange.com +webradiology.ru +webs.com +webshoppermac.com +website-audit.com.ua +weekes.biz.tc +whatsappdownload10.com +whereverdesperate.gq while.cheapwebsitehoster.com -wingsofrefuge.net -wleuaprpxuvr.ga -womama.ru -woman-h.ru -womensplay.net -worldinternetauthority.com -worldtraveler.world -wrona.it -wttavern.com -www.timer4web.com -xaylapdiendanang.com -xbaboon.com -xclicks.net -x-diesel.com -x-diesel.info -xev.ru -xfire.com -x-mix.info -xmladserver.com -xn------7cdbapdecfd4ak1bn0amjffj7afu3y.xn--p1ai -xn--80ahdheogk5l.xn--p1ai -xn----8sbarihbihxpxqgaf0g1e.xn--80adxhks -xn--90acenikpebbdd4f6d.xn--p1ai +white-truck.life +wholesalejerseyscheapjerseys.us.com +wieseversa.no +wildcattube.com +wineitudes.wordpress.com +wingsoffury2.com +wordpresscore.com +wordpress-crew.net +worldlovers.ru +world-mmo.com +worldmusicfests.com +wormix-cheats.ru +wstroika.ru +xblog.in +xblognetwork.com +x-diesel.org +xitjw.info +xjlottery.com +xlolitka.com +xn--80ajbshivpvn2i.xn--p1ai +xn----9sbubg3ambdfl1j.xn--p1ai xn----btbdvdh4aafrfciljm6k.xn--p1ai xn--hxazdsfy.blogspot.com -xn--q1a.xn--b1aube0e.xn--c1acygb.xn--p1ai -xnxxandxvideos.com +xn----itbeirbjbi7bc6bh2d.xn--p1ai +x-porno.video xpresscare.ru -xtube.com -xvideosporn.biz -xwatt.ru -xxxguitars.com -xxxkaz.org +xxlargepop.com +xxx-treker.ru +yadro.ru yaminecraft.ru -yatrk.xyz -yellowstonesafaritours.com +yeartwit.com yes-com.com -yougotanewdomain.com -youresponsive.com +yginekologa.com +youtuhe.com +ytmnd.com yubikk.info -yunque.pluto.ro -zaapplesales.blogspot.com +zahvat.ru +zajm-pod-zalog-nedvizhimosti.ru zakazvzloma.com zakonobosago.ru -zambini.ru -zapiszto.pl -zarabotok--doma.ru -zastenchivosti.net -zeg-distribution.com -zeikopay.com -zeroredirect1.com -zeroredirect6.com -zeroredirect9.com -zolotoy-lis.ru -zoogdisany.com -zryydi.com -zverokruh-shop.cz -zzbroya.com.ua +zaloro.com +za-music.mymobiplanet.com +zapatosenventa.info +zeroredirect12.com +zeroredirect5.com +zeroredirect7.com +zigarettenonl.canalblog.com +zkjovpdgxivg.ga +zmoda.hostreo.com +znaturaloriginal.com +zocaparj.kz +zona-aqua.ru +zooggames.com +zoolubimets.ru +zoompegs.com +zophim.me diff --git a/.dev-tools/test_units/random-referrers-for-whitelist-test.list b/.dev-tools/test_units/random-referrers-for-whitelist-test.list index d1ff63734..c0b579c0b 100644 --- a/.dev-tools/test_units/random-referrers-for-whitelist-test.list +++ b/.dev-tools/test_units/random-referrers-for-whitelist-test.list @@ -1,250 +1,250 @@ -01apple.com -100searchengines.com -1j7740kd.website -20pascals.nl -8gold.com -acgs.tk -adidas.frwebs.fr -adult-shop.com.ua -alfabot.xyz -alf-img.com -alibestsale.com -app5.letmacworkfaster.world -arewater.com +0lovespells0.blogspot.com +11pikachu.ru +2nt.ru +4istoshop.com +4pp13.com +7minuteworkout.com +7yue.org +883zy.com +adman.gr +adviceforum.info +advokateg.xyz +afftrack001.com +allnews24.in +amt-k.ru +apartment.ru +apidigidocketnet-a.akamaihd.net +apifasterlightin-a.akamaihd.net +apimegabrowsebiz-a.akamaihd.net +apps-analytics.net +arendakvartir.kz +arendovalka.xyz arius.tech -asscenihotosidea.blogspot.co.za -auto.rusvile.lt -batanga.net -battlecarnival.su -bedandbreakfast.com -bestdraws.com -best-games.today -bestimagecoollibrary.com +azartclub.org +azartmix.com bestprofits-there.com -bingo8888.com -blacktwhite.com -bloke.com -bonvillan.com -boostmyppc.com -brandehk.dk -bumascloset.com -butstrap.space -cacheimages.com -cakemediahq.com.au -carloans.com -cayado.snn.gr -cdncash.net -c-english.ru -cenoval.ru -cfcl.co.uk -chee-by.biz -cl.s7.exct.net -colehaanoutlet.store -communisave.co.za -compliance-jess.top -compliance-viktor.top -compucelunlock.net -continent-e.tv -cranly.net -cubs-jerseys.us -daisye.top -dandiyabeats.in -dating-time-now.com -daymusam.com -ddospanel.com -delta-line.men -depositfiles-porn.ga -dfiles.me -djstools.com -doctissimo.fr -dogclothing.store -domashneeruporno.com +bidbuy.co.kr +blog.axant.it +brandbucket.com +buntube.net +buyhoverboard.com +buypillsorderonline.com +capacitacionyaprendizaje.com +carina-sy.de +cartierreplica.pw +casinorewards.info +casite-513049.cloudaccess.net +cejewelry.xyz +cheap-trusted-backlinks.com +chelnytruck.ru +cindymatches.com +cjs.com.ru +cleanallvirus.com +collegeessay19.blogspot.ru +com-cleaner.systems +compliance-jane.top +compliance-margo.top +consorzioilmosaico.org +contentsexpress.com +cosmetic.donna7753191.ru +customerguru.in +cypernhuset.se +data.vtc.pw +dengi-pod-zalog-nedvizhimosti.ru +dev33.dioniqlabb.se +de.zapmeta.com +dfwu1013.info +doeco.ru +domainanalyzing.xyz dosugrostov.site +dotmass.top doxyporno.com -dyshagi.ru -eaplay.ru -eladkarako.com -elektrischezigarette1.onsugar.com -evogarage.com -extractorandburner.com -extremal-blog.com -favorcosmetics.com -filefilter.weebly.com -flytourisme.org -food.dtu.dk -forexgb.ru -free-fbook-traffic.com -fun2cell.net -game-mmorpg.net -gay-site.store -gilbertbanda.net -go2album.com -goforexvps.com -goldandcard.ru -goldenggames.com -gonextmedia.com -good-mummy.ru -goodwinmetals.co -gotwebsite1.com -gribkovye-zabolevaniya.com -growshop.es -gwebtools.com.br -heroz.fr -hitcpm.com -hledejvshopech.cz -hobbyhuren24.net -hotblognetwork.com -hothor.se -hotsocialz.com -houseofgaga.ru -images-free.net -impotentik.com -inbabes.sexushost.com -integritylandscapeservices.com -investzalog.ru +e-buyeasy.com +editors.choice6912650.hulfingtonpost.com +ekobata.ru +elektrozigaretten2.yn.lt +enhand.se +f1nder.org +falllow.gq +fanpagerobot.com +felizporno.com +financehint.eu +financetip.eu +finuse.com +flex4launch.ru +formularz-konkurs.tk +forpostlock.ru +foxjuegos.com +freelifetimefuckbook.com +freshwallpapers.info +frighteningremain.cf +frvo.alptandem.ru +fuckmill.com +funcrushgames.com +fun-mobi.pl +gateway.zscalerone.net +gdebestkupit.ru +generalporn.org +gg.zzyjxs.com +globalsurfari.com +glogow.pl +golmau.host.sk +google-liar.ru +greatdealshop.com +gsbs.com.ua +guigyverpo.cf +hasfun.com +hd720kino.ru +hdhc.ru +hopeonthestreet.co.uk +hotloans.ru +housekuba.org +hyiphunter.org +ibb.com.ua +igrovyeavtomaty777.ru +iideaidekonkatu.info +images-graphics-pics.com +imgata.com +inome.com.ua +internetartfair.com +io9.com +iptool.xyz +iqupdatetmz.win +i-service.kz itronics.ca -ivanstroi.ru -jennyfire.ru -jongose.ninja -jpcycles.com -juliaworld.net -kakadu-interior.com.ua -kaliningrad.zrus.org -keywordhouse.com +jbl-charge.info +kalb.ru +kanimage.com +kareliatobacco.ru kiinomaniak.pl -kinohit1.ru -kndxbkdx.bloger.index.hr -knowyournextmove.com -labplus.ru -lacapilla.info -letmacwork.world -li-er.ru -linksharingt.com -lion.misba.us -liver-chintai.org -lmrauction.com -lollypopgaming.com -lonerangergames.com -lostfilm-online.ru -lotto6888.com -ltvperf.com -magento-crew.net -magicplayer-s.acestream.net -master-muznachas.ru -meendo-free-traffic.ga -michaelkorsoutlet.store -mmog-play.ru -musflashtv.com -myfreemp3.eu -myindospace.com -mystats.xyz -natali-forex.com -naughtyconnect.com -nelc.edu.eg -nextrent-crimea.ru -nonews.co +kinky-fetishes.com +kinomaniatv.pl +klosetkitten.com +klumba55.ru +krynica.info +kung-fu-ru.com +kw21.org +lalalove.ru +landinez.co +lankarns.com +levaquin750mg.blogspot.com +linkrr.com +liumimgx.pw +liveu.infoteka.hu +loginduepunti.it +masturbate.co.uk +medicines-choice.com +medkletki.ru +minharevisao.com +mixtapetorrent.com +monclercoats.xyz +monetizationking.net +moxo.com +mrpornogratis.xxx +muzaporn.com +myfreecams.com +myperiod.club +myseoconsultant.com +nalogovyykodeks.ru +net-profits.xyz +nfvsz.com +nhl09.ru +normalegal.ru +nrv.co.za +offtime.ru of-ireland.info -onlinetvseries.me -oops-cinema.ru -optom-deshevo.ru +okel.co +onemantrip.com +onlinadverts.com +onlinebay.ru +onlythegames.com +openlibrary.org +optibuymac.com +ordernorxx.com orenburg-gsm.ru -oyster-green.com -patol01.pw -pavlodar.xkaz.org -pelfind.me -perso.wanadoo.es -petitions.whitehouse.gov -picturesify.com +paramountmarble.co.uk +partner-high.men +perm-profnastil.ru plugingeorgia.com -pobeiranie.pl -pochtovyi-index.ru -polybuild.ru -pooleroadmedicalcentre.co.uk -potolokelekor.ru -pozvonim.com -priora-2.com -privatbank46.ru +poem-paying.gq +pornmania.pl +pornotubexxx.name +pourvous.info +pravoholding.ru privhosting.com -prlog.ru -pronorm.fr -prostitutki-tolyatti.org -pst2017.onlinewebshop.net -pussyspace.net -putitin.me +produkto.net +profolan.pl +promodj.com +proprostatit.com +prostitutki-astana.org puzo2arbuza.ru -rangjued.com -r-control.ru -redbottomheels.xyz -remont-komputerov-notebook.ru -rniaeba.ga -robertefuller.com -roznica.com.ua -rus-pornuha.com -russkoe-zdorovie.ru -sale-japan.com -saneyes.com -santechnik.jimdo.com -scanner-jane.top -seogadget.ru -service.adtech.us -service-core.ru -sexkontakte-seite.com -sexsearch.com -sexvporno.ru -sex-watch.com -sfj-ror.no -shinikiev.com.ua -shodanhq.com -sims-sims.ru -socialbutton.xyz -socialsignals24.com -solnplast.ru -souvenirua.com -spacash.com -staff.prairiesouth.ca -sugarkun.com -sukirgenk.dvrlists.com -sundrugstore.com -svarbit.com -symphonyintegratedhealthcare.com -tabletkinaodchudzanie.com.pl -thedownloadfromwarez.blogspot.com -thewebsitetemplate.info -tilido.com -tizanidineandcipro.blogspot.com -tizanidineforopiatewithdrawal.blogspot.com -tizanidinehydrochloride2mg.blogspot.com -tizanidineoral.blogspot.com -tjkckpytpnje.com -tkanorganizma.ru -torture.ml -touchmods.fr -tourcroatia.co.uk -trafficgenius.xyz -trafficnetzwerk.de -tripper.de -tupper-posuda.ru -uptime-as.net -ural-buldozer.ru -vchulkax.com -velobikestock.com -venta-prom.ru -videochat.tv.br -video-hollywood.ru -videospornogratisx.net -vietimgy.pw -vigrx-original.ru -vilingstore.net -vkak.ru -vladimir.zrus.org -wesharepics.info -whatistizanidinehclusedfor.blogspot.com -whatzmyip.net +qld10000.net +razleton.com +reversing.cc +ringtonepartner.com +rubbed.us +runtnc.net +s1z.ru +sammlungfotos.online +sax-sex.com +sbtdesign.co.uk +searchinquire.com +semaltmedia.com +seoanalyses.com +seolab.top +servethis.com +shakhtar-doneck.ru +shmetall.com.ua +shtaketniki.kz +sibecoprom.ru +simplepooltips.com +siteimprove.com +small-game.com +smichovbike.cz +stauga.altervista.org +sugarlyflex.pw +surcentro.com +surgut.zrus.org +surintech.ac.th +tattomedia.com +td-l-market.ru +tecspb.ru +testingads.pro +thefarmergame.com +thefds.net +titangel-vietnam.com +top-l2.com +torrentdownloadhub.com +trkdf.com +try-rx.com +twitlinks.com +unitexindia.com +unrealcommander.org +uptimebot.net +urll.eu +usacasino.com +vadimkravtcov.ru +via-energy-order.com +video-woman.com +vipromoffers.com +vucms.com +waysbetter.cn +weekes.biz.tc +while.cheapwebsitehoster.com +word-vorlagen.xyz ws.ampower.me -xmronta.com -xn--80ab4aa2g.xn--p1ai -xxlargepop.com -yaderenergy.ru +wwwadultcheck.com +xcombear.ru +x-diesel.info +xfire.com +xmladserver.com +xn--80aafb2a.xn--p1ai +xn--b1agm2d.net yopoint.in -zeroredirect10.com -zootoplist.com +zacreditom.ru +zajm-pod-zalog-nedvizhimosti.ru +zona-aqua.ru +zoogdisany.com +zoominfo.com +zoompegs.com +zs2vm.top diff --git a/.dev-tools/test_units/ratelimittest-beta.txt b/.dev-tools/test_units/ratelimittest-beta.txt new file mode 100644 index 000000000..51069b440 --- /dev/null +++ b/.dev-tools/test_units/ratelimittest-beta.txt @@ -0,0 +1,59 @@ + +503 Service Temporarily Unavailable + +

503 Service Temporarily Unavailable

+
nginx/1.14.2
+ + + +503 Service Temporarily Unavailable + +

503 Service Temporarily Unavailable

+
nginx/1.14.2
+ + + +503 Service Temporarily Unavailable + +

503 Service Temporarily Unavailable

+
nginx/1.14.2
+ + + +503 Service Temporarily Unavailable + +

503 Service Temporarily Unavailable

+
nginx/1.14.2
+ + + + + +Welcome to the Nginx + + +
+

Welcome to the Nginx Ultimate Bad Bot Blocker

+

This is merely used for testing !!!

+ + + + +Welcome to the Nginx + + +
+

Welcome to the Nginx Ultimate Bad Bot Blocker

+

This is merely used for testing !!!

+ + + + +Welcome to the Nginx + + +
+

Welcome to the Nginx Ultimate Bad Bot Blocker

+

This is merely used for testing !!!

+ + \ No newline at end of file diff --git a/.dev-tools/test_units/ratelimittest-master.txt b/.dev-tools/test_units/ratelimittest-master.txt index e69de29bb..cffebcf28 100644 --- a/.dev-tools/test_units/ratelimittest-master.txt +++ b/.dev-tools/test_units/ratelimittest-master.txt @@ -0,0 +1,122 @@ + +503 Service Temporarily Unavailable + +

503 Service Temporarily Unavailable

+
nginx/1.14.2
+ + + +503 Service Temporarily Unavailable + +

503 Service Temporarily Unavailable

+
nginx/1.14.2
+ + + +503 Service Temporarily Unavailable + +

503 Service Temporarily Unavailable

+
nginx/1.14.2
+ + + + + +Welcome to the Nginx + + +
+

Welcome to the Nginx Ultimate Bad Bot Blocker

+

This is merely used for testing !!!

+ + + + +Welcome to the Nginx + + +
+

Welcome to the Nginx Ultimate Bad Bot Blocker

+

This is merely used for testing !!!

+ + + + +Welcome to the Nginx + + +
+

Welcome to the Nginx Ultimate Bad Bot Blocker

+

This is merely used for testing !!!

+ + + + +Welcome to the Nginx + + +
+

Welcome to the Nginx Ultimate Bad Bot Blocker

+

This is merely used for testing !!!

+ + + + +Welcome to the Nginx + + +
+

Welcome to the Nginx Ultimate Bad Bot Blocker

+

This is merely used for testing !!!

+ + + + +Welcome to the Nginx + + +
+

Welcome to the Nginx Ultimate Bad Bot Blocker

+

This is merely used for testing !!!

+ + + + +Welcome to the Nginx + + +
+

Welcome to the Nginx Ultimate Bad Bot Blocker

+

This is merely used for testing !!!

+ + + + +Welcome to the Nginx + + +
+

Welcome to the Nginx Ultimate Bad Bot Blocker

+

This is merely used for testing !!!

+ + + + +Welcome to the Nginx + + +
+

Welcome to the Nginx Ultimate Bad Bot Blocker

+

This is merely used for testing !!!

+ + + + +Welcome to the Nginx + + +
+

Welcome to the Nginx Ultimate Bad Bot Blocker

+

This is merely used for testing !!!

+ + \ No newline at end of file diff --git a/.dev-tools/test_units/whitelist-ips.conf b/.dev-tools/test_units/whitelist-ips.conf index 95fbc95fc..0d35fed1e 100644 --- a/.dev-tools/test_units/whitelist-ips.conf +++ b/.dev-tools/test_units/whitelist-ips.conf @@ -1,4 +1,4 @@ -104.154.120.187 0; +104.154.113.151 0; 127.0.0.1 1; 127.0.0.1 1; 127.0.0.1 1; diff --git a/.latest_release/bots.d.tar.gz b/.latest_release/bots.d.tar.gz index aaed778f6fa546bc982649d7afd0b5c20158135b..f3d02c4914dab80b215513c76b2d0c89458ce691 100644 GIT binary patch literal 5556 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 CGVVzL literal 5554 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 z zSj#KW6HDXU#eZh#Jp{ZYuUdfRR=Q-*2IPOXC=}TR9CaZ==aFN`uEc8`atp0mL&yCA zRc^X+E-lwnKql|ex^e*vKVl-_Q86enq5Z|uO?K%+)NbD*bxK!9MQgGLm^C8h>`f;4 zZvTj7?+uV!-tu8bZ+j7}m)##x)JTLA8B*bkWJI`-kALv(RdNkryCvV$LhAd9Ls88i z<5|>Y=+*%0fgu9v*)A4KbQ z061b#(gzxS9sw|DDl+W){5GXBQsh;&TGA(d{YI^QevapT6oXIzU-~2t?_c(9PW#{N zU2SvQMt_q29RCVdQgyd`wUi0)4cx2yAlq`RtZgYGZCz5VN)0dr5+;B_@FI%Z+xzX; zJp=GXQa2<=j^vKkuMw&CZJ-E07^wey6z*>FU_L zhHM3(+@$*oaj#?Y{xc?n2FrhM0hFa^5Lb-;iGYe3&I={t#)6|E^ugza@>Tp!SEQTg zLVpG3c{`abRbhM_)Fi)9wEGKValjI#SIC9&eo%?Hwpz}KF7(1&At#ax=Z3cPrXp6w zPXDIzn7%lr`v;AiW2heaalm;V(RMhBNfTp=0`>>8ciCZ?;v>m~zL1CM_$rm2dR7}% zMn`8MiNe>(%*H=eNnVlnW9wAr^OLg`YJV0j$zASD1wdAg^V4anbfPI=KID<{I#{7} z6D@--08KG-bFiW$Efj>kPUQiceunAHyi(Uz%F+#8YDwCy>@}F_>2!8+N_h^jaXx)f z6_Z<(YJ@}y1`;4=9U$I3YEDq-ygy_i{aozB#oNu% zrN~oSIY-F6!(%>*psJ`L`hO_!dSWW6HTCg@Ip6q1A1Qo%c}k_IJbH;bEUQU>j3kDI zoU-b{#|SikN#4!*s3Upu6Ll>ZQYp3TqmIj*Tnd*Wjx!U;?s=cQm%9VKc|}2vr^j!j zE7heZ!sUxLpZ=xtMNCQtNX1}cbn3jrr?W3k@l}tGWBPQ>6wnG`AAd_-p1gQ<{E`0n zBwb?kJo0m_K|6-K+Gnz80pMXJ`#GEby@u_F@~uO7~wN z`C8{yLQgBurxR6WEq5Wza{+~*f(OvYjF)P9LP=ATEtf_YxfCV+sPl5EkD`LR z*ulNYzKl}-M)GA;sPC%{6u{{km#5Q{_Z6dl+qYC)I+r`X*CLlmmaBl?iq4svZ3CC>|Tp=YI(UE$u}K+y#&-m#Vol~Xtd>!_>TJUXVxUa&LeB9!ors=zrS&ATUD57{Xf;$@Z-(RRE@f zY`;3V0)K#brC;iInn;we&Ex+U6rg$7h|#d~RK&}Os>y4mWT;HgOuoG~k#5p9y=yeq zR@6J~N9~1m->Y@e26{d_xK&K#1V*Kz`pcrs@p|_MaV6^Wb_$JzOXcR!=XQWt6ymP- ze1P~ttbas~cRMlEw@#@x{w)_Pl|JtsIRwC5q?f0MzKjEex%-+yVR*8{k8x6@^Z?t$ zuDK*jK&Hp&8JXHQoau=I)a-E^^x$nR@02gtUXGB`5bVAi|wl)E^=-vYR zNSgQ1MEXW7_2DeCJKG~g(QlB3_iuBD;m$EA=zpuIz<8P_eD^CG+w!-R`s|zUIw%8vQX z{9DKAVV8fmH&f{AQ;@_Bp0CsiKA*l_lTJ&yeK zdVk#o^DHJ1Z#U^Rk(5+vL}h%A@wqjTc)3s|#_Am&q}vJi_@;jT=s#r2xiIBU(x;no z|C;*NQ?+P2d_e1GQ8 ztw8;Iz%AGAAE6x&2u!b<#3tVJk&uBXmL~P!r~BBD z^^dFoCL&kc+PaMmb4m(YudUDTQ~_V17JRD;&+96DP6hs{=0H6JUAI{=F#4LHGg<~@n60BU#LJ-mZU1cNOn_e1aP6aXz50ciR(|T5QV% zK+ruH)Kk>r0eS2~v+t83qxo+iox+GeB$qv23Da1}W7m|<-=E=nZb;(47_r1&n`XwW z!O3{JWpkUUJV9og5@(vB8GkJCZYwe{8d5F8^@ej1rzcVzf-L(LA6;|`>paJ~Y1uSQ zelNHD4L>!^5O+GU=)6H=$dVbFHLccLLW$Q%r0`C`B9+iV-*w(Yn*A%BDae|E7KXqOngIfFH?Y8r+H~;>6Vjh1uOORyT~18qCGmj&gI#~tFO-X!t>+YzaXD{yS>GW^9SpsXV3oeFuli| z#Q!#}=Mh!koz@~Tk|6=xFWW{n?qHmX$Ebc^Op`)i_kKmU3WH&&eFge{`tK#$G$rmt zR^i{0)PnFwRe$g=ch&nZR$VgVhP|pWbn4}U49D~rPhP$6ERRynwlzIDGvuOZ2~Jfa zVr&2Y36(BONNLptqadKisc4w~z^*vGI6lRzV5utWSyQ08XtgwqSJW|-GAo=$XGT$2 zrKnJ#+P5n>s_CweW#`S7etK#Y2{i8PZ?QR5wak=YRe$E{FC8K6pC(X2^BrcCW5Cb^ z6Oj_o&Sq=Cn$)ddttu=F*mgo0_H4uyO7Ez!A(P8}(lQ9z6}I+pg|{^|UK_UGx` zR4tw&(zm<^Vpwf)-*b?cHKS)v7M#Z5ynSjjW}z717bG~8meKi`ano4S<@@x zyLr#8NAN!|^1a1b{OSm|w=Y&`cxx^HE+-%1Hf^n7o3y3B zKbd{;?nQ$7qVns6-zLExRVd6P?|Th{sq@8e>3`m@xp;S{PutU<5mXW;_eB0wn9$mg*N#~-2p{Q zS-RFZ0s#x(*-!q|{hy;he_PYU#xZ2QYDBbAo>2V*)k{D<)yg>Wzjm+U4{GSz+^OAa zcz?BTZ@+_$=4icgcO8F_#a(mQ;=21*@%H-4S&kl$N?g{kjvGO9sa2tgF)S`bGsZyZ>SK$S11D z-k}Jd{C58BZ~-+QrF+js@GPM|Sa_=1P=7}j&0qfh?3<-7N@K(P=av`yGfpp>Yhzm{ zNz>A9XPOyOWFtFFJQG~gU++f#JvBdu<*=0>xHR#&)%d36Z5ywquDAct@I2S+08O*T zd$>C;*>`$;?Sqo7A63a)O?%MU$Ps-wLiyQ$@3WCFH%;2N6{`tTMOmrRYzJFhON-@Hnw|vc0gqGz_cGpv$w9tnvU$19&_pSN* zv|PCE^?G5h)ck1oRxdVc2d8uU@ zmM9D9LvoacnoQ65bkFPc=11i&G}mpw#Bs+xr{9}|Ucgr+7>q-2;JUIOvVS-!HVNos z!F>Pr`)yDRQmM#P92ZbMWTq-I&G%?J@0y6uN97d(abSX^&U`QGanb-X`Z>xvz4r|0;fb%D;-f(m1?VB6t*R#`i26D;f&@YA0&%%Mvmof4@_WQA? zuEeUspzH8EH;nV{WYV^Ngaq@LMYQ#-T`d6=b3-oZdDmDAj(%uKUDFkE)RD!pCTeTsFUg`X>cH zEEwgK%VXVy#DONo1jq$}ykatOd(Lp7CAU$yJ-3Hs)fi5fowWcA*oEQtGEsmb4uhVO z6?O)nKxJKn&73LR<$ppFxOCb6bNhoKpT1giJu{eh1>1FlD}0b$Fx#O!xE|y7h29nT zv&t}7;QWZ0s_t;);~e!j6kzOnp+D)5!XDeWaUa&(4Oe|Hbr*4e9d7&{2NSZeD|;7= z|272F4I33NU8HKwE@@Zh_gTbWyR%y#~U)@cboooh~dAW zCn-rZ=miTdhkwCPaRV`kQa%}sNKn}_wuqI=qJZtL!O9|Xy%*m54rboXVzEIXpHVUs zGHQin8ES`2Wpc$Xg#n)KMS-Z5cY2}>@Ir!}ClsPWZ4YlD(EyxkI*r-wf3V#E`EK5a z(c9b*cFK7-(B($nM2a;JhG5~ul%6wmDvScabmefkPJcMbJREyopX=hGiWT~)QIVx{ z!7Ja_93XPpLRK)#b5{BeVNWYn1{PYW@mB$x8|ZZf8e!~^3`?~c4@SmZQ9eJ)!-`GC z?Z$fCVY|*UroAJ_^~Tu{@$9VAvwjj09sWtYQ27pRfm1?c?m9AKk zJ+=lq3t30F@6i>z4hHP19B(ScE%5P;U?sNKN7Cn`Pt->54Tm1+EuXZ{Zj`WgZ`cX# z@wT10TdpA**8vsJrloW6|&TC&8dM8u)S| z)PE=xay*y}{UPgH6k_BKr8fwjp$FFYB!Cg_IgT8K?r0K@<*21>&+)_l#Bqj>=M97m zMPJI%c&r9aI2riLY598W^?cv;gd^2J`9nVp`~3j^?mC{B^jVV#zV=6+({p6s^MV0v zKii7&@q*oVSKVt?Sc9t_!_Ie`~cz;mj zK=ohIjFqn`o&RBOkD+aq#6W3bv6;RpQ%OvB*W3^F9L+B+4&S#tA9{or7^w<$th96=i9Q zpfn7~Y)N?8C)N6<4Rxggkz~RsBNC~|@IG3Looc_!INco}Rg9s!*=#Bp#^`#!J>h22 zQY5-|@iCY*Vs&>RePszyBWN(#M&!Vn04;o0mPpkSQa=D$E>V;*Ggk&0nMifj(ntx~ zH2mjij|J&2#>WQoh`3TZ41ZhoJt=bmvLYj$Sb!*XYmHQl=Ce;OG^wt$yliPY)HbFZ z&O$DA0t4Yk*Z<*ae)`ai>$Jwu-BD*A7bK8|`qIK{# zO@lHy0_)Ah$yo(8JGXv007=NVV2j)AS{p3ng4?$&qGzH&mElz zF}}n0=J>nE2C;o5jE%G}jD4MSGlQ*y| zJN~LpW~4>V%;}TNBG%_pUEVAU->Y4h25>kO5N-(?e<(hxZr-xnf4EfYiuHOuDiFoZ zM3uk}$JV&`X>vij{%4qof7{ZVjRsXo#>H znLiOgM>+b)Cigaqf9=W#!Vhjj?3IWxKbymZ{yBKw67;mzu{f+?pg?73xG?l-HV-+! z;QEjSOCyM8G@S5g#xe%i(>LZAwuC{w?)bR+9o#<=hN2t9d;axB3a>mVy1Go$Xr5F9 zAGaZRCWyx^4`n1z+zdmZ|Ka&&CmSQFCdY9G0$?@zr>8B6746Py&{)W-E?uJF? z1!4WO?jb4}Cx~?sK*|c5%6$Z~N1{bq4VkN{5oN=}e>;?q{p2!e5_?!w7iBzf7q$qXCYer|Db(1~rhH7E>&4R~C)4QG9NfJ% z2hNMWz23qTxIqYOkZnFy{?L5s|B*Fu3)^fJLuQ&{f@U06MGjB#$ZHV@Y`B)Tn@z9H zk%&*LEd}1DDf>w@$AAC!uT$n-25I2-R1)m<R1F^dmA^RBI;{T=bS#w`^n>zW)IH(3E9Rj_UpY^CUX z>Qq2NX%jVVQ3g(FW?#klWl@0XaCwB&N%J_(u=>f6&Z4QwC@ix3MHpS4Ftd!$mUORR z#o@GV2IQrX4OpS`cbeZd?unEEA3pj1thfb#u@U;c&lnKH%MfFHeVkZ0s&B7^8fPcc zjBo?tcqlnWycOR^yQu>WLfm?JF3d46GFgVHZAd$pk+_#Fd|P9SNaM8&d_KKlmx)nk z#xU_-%PykE+q}V}OFD6M@zMEJ;|`l(;79;*9zNx3)RNZaxGmGy*a-0%zFDW?$l@t>aKAQ9rva&<$K+h~#J#@DmE; zp%^6J$g(~82cOVAJ02)Rruna+M-wGA^uABdDfVjU#YDi-A|2Z=H(%(}A=WtxJ$>B% z{NwlEKYlT38%=JexQP<%uh*KN&Gb8e_Z=0C%ylxTfuXEOV8QGWJIQf-t3qKEn7%|- z{9;O(DrO#*hf+DKv|g-nK?M~J=xltb5g_2Cr%@EW9Ji4>*a5B&kfrn~-#!}6s7A_$ zD=fazyPfuMKC(u^3BkL$R0iU(7!F+UfG;3%=K=$LTDQ2YYOS4W<7H|Prd~D<5_P)x)`QD`;>rz~?>;EUrcLpl9k%~F&$;z3qPyI|8s2)ayiGI! z+#3AOgJLTp0n><@{@$RrzV|Ik8LV$U*cBJ~giIj+);Ee4f|T3&z#UreJm}ZF4qkS! z3+-DEqUvG3`)+OCn*C{O#sk63H%Df6y{Qvv{qwB{W6mH!zPU<8$cn^&^1=Gi`F9?S zCi`4c#@_tGxUEr+#W$aV^fl8gs@a>{>90)=Lm8HL1%~X~^jAn2jp6kKcRAeZzwWhNLQRmV6uFX+i1g%`i++bUxGYirJ2q@3U`NPPzucd zCH7{t{u*(b6Ucl#DL$v=@WLZ9;YDy12jJf+SgCmV{{PSC#=F42N=`yn)X3^N9yO9$$&MPdxnnMys2?ON1^ngj9C2oHqPB`y`Uqgk z!YNF-F_|12hEL2xQgD3d7RaiQzs`Oh&T}3IaIiOFmJ>OZ+}&vWNZC%A z=gOwhR0bvK&p7%$PAdXrYz$z#onGC?3dvBwI*?lbK4kQ(l$*wwm3A z&4HpOn#sDgJ}O&lZQZB{C1CPe`MK97wTxkBM#c3Ypy^i-q{vvyAu+jJ{TLCfF|BtC z#?w*5TR?L3aKk&H7;LezcvLd&8;@?}QYnNrkxdgt`-$vi$_*4(1ZOT0ZP!!3kN}<> z0RNyG@)Oj5F2>-7YWLH&dZj3v;8AB$3)AOW1nX+rlC6oPDdSV4ocuX9xUL1953zBO z`sXK*+=|P|PrC^?kjVGOWr!+=5u#}~jN9Nubtf2S{5tV@sYLuqpJBHxcb z#T37soeMFn`&SkKSwLS<3R(?Fu%e@A)Wf`{D93z2GxEiPvfZeIV`1TlW+i=SOjvcM z@H!b-Po{8fndlK<-p4J|GCP8DBGO7IoPL(zj+z#`TyA+W8c%j3dEXp&m;M<77Jt^b z52(EfgW*=wQF!w>nXC!DQWmD*w2U#_*3qZU4zc6&wdL6@^#qkYMcR8IP`2faaaodo zD%$HN>$OH=;^IOv7+0^Q0m<6?c}C30hp&Z0)4NoeLgdQ@DN2>hW@IrPz_xZlc1m%! zlbDe}n<4r~US#u63jI~Ut+JN{(tkrb^3R>3Q4XI1nk~3)uj#;F*FUILgo`}5%{V`9 zB3DL{LZJqZF7-TlLiBgaYugYUD`t{1I*Ao!sUbrO&0q>p5;b*?S+Ka9hY?<+14hhGV;J2lXe!T~s1gQLW-KF7S%7v982YC%O@A^lc8F*vCn>_UMInp z*&u4)-0BQSH;p>mEpzWhT)P+u<-wygW@C;8CEjlbyBJ0)#})0Hl?70DmU<c}Jt=?ktioRlH0k1sS z3Y9!cp;qNfM6-c+pIW}w^dR1`-y0ucD^7-HYX~sM@PZrO8d1o_d{t)e8dSb$?j^9Eh3fyFkQl9o*eLsPX||PMy*eIo#xD*};VyeMvZ|nA#9~kARve zfAeBN6{r?{sIbCZcma0j<)3Oquovv;U8OMKW*vLfM%9eX$gfJNih0> znnJgw;Bm%*h{JoE-I)qQ<|Pj+C+1pErplEGw>vz@iGNSuDw~UD8VO{bL`9LWC`{H% zzCr~eDstY`N$=yRX#V0YgT5mF4l&58jalYzP+nkH?bCfB)z=kIz9ty)&p+SSpt z8QaVY?Ms{IlYc-Oai$qcs7FisE6A=I2@Im$olrn$V$1dTIG8nkTx%WE%iI&etsdo* zPz|Cni+|(2+pO}^ZH0mJNB;jl_4wVeW&>I1S%ujA|;Q<4yXF-Z z;3lIq2jve6DjhRYZ`mtlh+6AujWU2N+-OU}wN&@Zl#Rmw`MzypRz6l5-C#UjPjg-y zgWKi)u_M{55gjR7!qxp$1r!naZW{UtP23iE4^{GKX>sGXnA9e*&2nLxwOhke+iY3d zynmu?!6d`eqXBX=>N>!}zf6t;Ob*{Q87+udKjkc`$3hPPqDJWq8d*%Cl+e;z9wMdS z0aDyXAkI!+7DeK=x8O(ID%?I=Wl@M-Y8W8{7?BRiYs9$%1k=o~N0xq~!0>q_@`uVw z6ZLf(=cA1X(!$AolqdVY=!2&tM1RA!)PJ%N#1RkRGRba3Sn@y#lm_AZ&pU~5m1ks* zH-7VEfh7;_gOXfak+>KTxlN)csNZ&`4ZpNqzfz3PLW2Cn`Ukx7aJ1Gl#*8yVE9`OT zdYRy|Q7+;HN)9+&6*UImVYXgyOO+41V{u*A1O-SSvU23yUJT9%qORrj%$+(@oPU+K zf0xyJ4V^?Un2_;c=Hky}@b&jUXze{g7~~7DqdSy0ud%2j*L*Hq!U>t)2Tfe#R=1(m zoaYr+g@MA2uh3J-C~a=xTLHqr7hWM#S5`UWU&z6??!Xye10MNWOL{i5dr*g#drp4# zD}rHcJ3f)+82BOa1mQZ3+vJ|~m46`WU9$vi|3{{bLfcdRqwQ;@{ANfr`eFw-bz9dV ziD5LmQ9RJzDr?raRjZOg8ZRwS-=B&a zD7rpMn;9i&VIiBE}x+938K!$ zrI=k!$xx%yA7H1)QPWq&=#KxT-0oFCr(B_^IKPCrB=uV#8}9x0VAw8$Ke&G6#fAxS zKdb0mqdsn*;JWZV0*2Me=zn272bT`Kt%@WIEXwpH7XL?MzZ7Fb`o|9&@~h zyFpZ%`w%CG&|QP_yZk$zrPdYQY0vLM5-c=;!g+bx9(*(ag7-T_T7Rpr0&^{D#FocX zJDNUC$OGlF+E2HBa)I{QZ+#6QGXeG)(})0Zsg-;Awy{qvW;X^_>%@v>Ha1&ICal9Y z`_^~9NI>Q-$1^gJcQNp}Y5}0KK>!i+FeuJZz}EYql;kL|J1%L~Dgp|!k9)P#9peoN za7RAEj~`}(JAuDGT7N_9aR>rIorCR8K+Z5R=@kq;^8m-41S1Nn`|)FxqdBm>RtU(t zDN$euf$)Zsa@op>%H)Fh()HWm6}Oh4L~Y{(E&wq=&cDBpv9QIJ;T$8fYPI@az)psn z*#bez*7e~hfI8UMj!%L7rR05-qM@SdX(~(ky7LUW32xa|ng(97N4kG4jK?3ibnpe^ z9}nOaB0lK7lC>)bzZ642qq5DHIqq7Ze%jop5!2>&9%9VbAlMX3`C%sd1(i)L1kWJF zOMNY`1@dvrND`*^E!jCYk-ciZiv&5+9Ft&%?d@0@Xbu9{+ z>*%&|;`c9EQNeoAy+U9S z+bc1c@T>`q)yG7((p2i!aN&q&PDP6d3!w6EbP5Z^gx2-Y zKVHd|EsxaeF-X)Ipa<0$fROWx2d@S6m3noVsVbn+4d%|7k_ilqtr?Yl0+?$jQDb{# zeX6x->H`D#(U-nO=Zq}H!IzTwYrS@X zZ9pH91DW`{rOl~aY0F6=U%+>9ObHW}^_DnYw)kp$PtD{c=bl5H@zn%;c>>{K6vYM4 z#ZmraDO!KGY*T){qFH?=eciIimET%J$*-4`h*H+Gmd_=1DmtbJ%okd%q^E#bb>oBt1I-E*USM48iN{ue6!aKg; zVe2|nt2Kn6=RiLmg%20bR03@gBoPZIMHGKjVpwif*exxE!fk)JKpdO1m+c^bMnm^_ z=N$~&j)IssYG`k$Ovd7sfhY^c{s@NzB!+KQ;po@J^l@ZAnOq~#QlGV88;7=nm+{9| z_pVIKpMG=`$hMNuS{X!#MPcc!-u^jz?=oMLfRZdQ$9xxYDGbw4uBpLejh<&sfSG@6 zqoPLi_h!F7c$LbwFJ^YNd_SEUm?lO1YOdRqM0t2+h=4Ke^v2FtiwjgHlWvQJ24a>NNGH|SqWAk9g$PXW|+h~7Q@R*kL zFlwk4$|`U#Ue8<|c#WpoyV*N0UilVvPSJhq#|zH%m;hg^oF`e10Eu}zH+Ee7)03bi zkW=&L#5*2qm0lB1<ZylOv9*#_EtR0q*5; z?De{ZK85r7{l%K;MtrWm3|*{O=J4!3t*BUHEvO;%QYXU9Z(@utsvdusUqJKfK$r$S z;cQ?4D9`I`1ad>{pu_iD5i}zOJ^~g$qq7l-Vexyu+a%}g3AtYE2^PGojkriI8c;{< zWLROM-twx!whtsBF|pKt)16!Ax7*j=X=n2GKD}OPnPoLSPKTRH7^x zN-K7meDedtKKvoVxk zu3+Zq0ljW=*lsga%1)rM6MUrU)L($7?)ZA#6Aaq_an(sU?D&7*`+=gw-M_J??t21u z`b)n9^EupKk@?)?ugLOa7JQ=v76qp&8Aas5eZ+CwRn9~7JF&ocZGyNXAOM~Oy%utO zHCVSB?fd3iOy~y}Wyd(3yul@YHoUn^Ku#Xg-iv)H2^l`inK2#3Y@{ih`S$6< zXAt>9i_p}yruu*AGb1x!pjeST)@ThM*lc+HM{TyT0g;h!29VK~jOLp)H%;Sa*(++Z z8!*cT&=ho8R8_sHeh`Ys-#%ghT%8@Pst)=E=(APwd6piMcif&(NyB^A;;sC%=X*6fJ1HMIp(rKwC!O0en{((9{7p268KH1b`y^;p`+Tg0&WO~U%( zED|@WzMI140saKpVnG^3>(cAa$-X&*{&jAAdd|G3E*oP97yVCK$5Mk5|Dd{M9|Dxk zv$w^jICSW&ejCw>jLd4AT~nCfzSD4pe?1|5iZ=&=FNiXp@WvR^ZwnqTKYVdgyu0jAB3l8F=IXu&J;i z3gmklp>VI18zP1jS`9B1Ejt&?IPWs?+ zZuZ;*&ql#N?jOY~{?%ryWKqTItQH`190-4K zO^S9X{^q4~b&tAPXJ*;v!~_t#@Rdqr=fSVnoCreYulb!H!t{NWJdnfnKQGhw`d=>Y zJ+DZud)XVi&7nA&9~I81XnH7|i~<9%>2wZu@@^r@0xbkz6p9FF4Haut_=|UdsK{2Z zmGnYc5@uQo^?wP9`cWBN)A(BJ#L0g-=BfqCU`qt?a67{F%W>h=GM@&jzbFX1CcVQf z!VX5JB<_>XRysSQz$zbfg5|rIP#B82*(by?OG7qWgP`NYI75M&jH+?%VrsC`t^{pI zP^cc(Q5Gp1mzkU2&e6FQ3XOb6m7k4;q9D-WJgr!s;Sd4*Qp{<(xSJ*{Ttj~XsPB@@ z*>2j}v6zIrx$!QG17>64?7L0{59s=;H_3mr(a6*GtDkoHet&-WFmZ2uL=X+EIaI#j zVAV0h*7KCA;=XNG&O8;{VaQ#@7SZtgVkKp-F8G`BK?m0Xn=PkRx>-0%%U-I;e?f1q zpcH-Rf~Nwa0&LoObDn~hy1;+;rl?m~kL*;5TNgSD+-FF*^rDx^l%7x)(Oh^{S(6_Z z!&~?iWn5F3_dr!8Pvr$V*sSPW5oj^S3{bx>g$W`ccNEVRo^3H)aVLRN&rM;nL6MS& zYZ9b9s-bXfCQK<13e@w-s4@hCq>XCS(Hkv`xB#l1ijZz;z);2jsW*Sj*L*U69Au>w zzT;4;Rj^L~q231cDp)05-bYaW0@1`s1U)9JS-0WD`w~qk-*NcqX zlkWu{0v`)y;H`bVf5U%W?uovO{xZ0PW2tPzH{S|R)$F0FzVVxMvqOtoDRiqVX;oQ@ zyuAZ@=u5A(Ui?-eEVMaR+}j4CuXH?7U1#2XM6G4WV@KOr?O-_ByKr2xYDFI3N&V<6 z$7_CNY{zY?n5{1c*X6JP%dX*6= z5oi9v>sbB`Cf@rm;NQ9N>HE&jiUaiIoe%W6dsk+KQqs9wAK;UBUbT<#eogU=_eDcn>^Yb)e&)xT`+J5Kmdo}aval2aexqkO z*lIg&Ggu-EhKbVrX&Kfkj%Kk7QZ0xi{*0pe`;4{&icNL~Dt|OR&Eu4Q67#J<^I7}3 z^0WcS%Q(q^_It1+Wf}z1S=sy`?Mbz-fJCF{!$()2vTWxTk#5&g?bk!E4y;J>uM~4X zz<$=6b54KVAYfnPYz}5NRe>Eqz`?Ii=f!XE!MNHN#sche(Y#ajvl)hm-ChB$uYXKA zHev07oa0LllB0rsEQ!B{z7*m@n;Ca!N1o9UDB5VFoZqa1($5fj$INeva%;7`i2Sa( zCpt@6U(Ja}#x-9rausr*h*D?;p%{||n<96eEu4Srx$96F^uJu!^I~pXH+PdY+<)|= zQsk0stH;hgS=67+oKZ-jtC>3Q3pLpS1SR_k7>ex{qdn%DqTy&zF*K>zfGre1?q+RN zPw~477`g9~6p>aMBl1g?4gt2D7fm#9fFSKHz7I89xQo#u*GG%p?52)~Q zo+3{m6Y^*{RmDL2^5xG@Z~xHtuj7Jn_aG0FNv8je!#13&c=9nCvHe@fg%l3`t!oQh zG#Jj>f!&j{0PC<}KQaxEy=!k28pzRrhf!#lsg<+0OAa z@;xfkQu^Bm^duIo}ocJcVmxwNZj^#q?WMdiWOAB#|*H3uqoW!2*Bg zo-$(6V-6^!q)@cPp9)J|sbaHgx5`K&?*=y2gIOluOR`#JU+YmhQ%VCJSh=-nDjScS zoV=Ht^Pd-0Qj=`N`(YR6^YaRwkN!?FfBZeo;OyD8?o0GZXqtcQ2kRc-nv8`FFw}SOFoRW=xnrU8pXs@$yU>DWyrGS1w-vLym{{2`XHJoOOR(9ePSO z7Y$Ey>osCuuKphTBRg~If-R}66kxJFiqCq!J@a^lLl6}{OjT-6)Jwuv6bP<2m_Nub zmkP<{)ZRgll@$@LZ`$=X_D8-m2Ycx27qXq;N~`SrG|MWJ;}(9q3~Zl}q&5Fb1=)@@ z-)~C&nD2g*Lv9OT*jmLISz~|6fY@P<=WT~4+{-)VDS6t|r$H8e^MRcr&Btq?5u?Vm za%QcxvRLV@TQ?)H*YZ*~g_gPn6r{nSF4ERZ0j~RTvS(MAfWl6r;f*4{) zAmjL88xT9q9enw{a6?3SnQ%&DW|O`yxr>bWHoGI7!*Gq;4OHO+9Vvg=b9)<2@f=a;}&aTU^E!d3u>hKA>5=s z&Wl<2luan`yrC_N7IJ?HSRA9mRE%MpkqG6en^nzkTL^dy&^7+%c!6wV?xUSuVL0|i z$rCRjZjEDpw?LgNxxyRl(-t@vBMiJt;%Q?K|MjA+NpkXKx1MSm+Wy;+4#$+|Zct#* z=Unfm0u`*a4I&_2ligwJt2`m|Aev^JY)9)*n#Q9Mr?49|sq=r2LWx@VVBlBE>Hy%~wfx*g8L(FZ7nj|Gt?WD(IU!e8uHRT>wxaii5j&!~ zbElx*!HkR4zLCp6*+IW!s3}Uu#h)~#1?c2Q#APaDwsFh=H{NgyiTCv334e2 z_`m+~R#hB^^Qi7WGR2I<&$q~;8jGBq4SLG>hHV!gTx@?GQl^*G{YjRTc=?qD&4N>4r+-Q-efRUKK*$*sZA*jKro-YR-wqZ7qDUhJ)#~~$` zQI^5?=mUQbfw&u=@q&aYV5&XZp)m4Wgk(eSt7`AJ)l&Ak1C7u0_VE*;v69L034cd9 z`M1$v_QB+x$`)V0vZ3aoKZ4*bc>i6+ar9#Vf-JG-Np2hJN*hnQ~T?v2Z(_c}Rt$ zQWKSB*`Nz_KMR?;#&s#GzWOVV;tSGYHNmzVU1gD<%aRHJEZdn0L3S5|Q#G+alGyig zNo#*-55R#!m5tKAvZqy?62|EJfs-xirm?%va#={uW`1eA;oB%?(Ztzx1oogVh8r8- z`uHsDWNtEpDf|-rXE_#|n;AFj(YMoa`T@CQa5FtS#hdVnO_2wPK$mAWZ5X8AcL|Z} zFsG&sIn@>}N0xBPGDSf#5s&5L1umrQ_$hxHpBH*`h2ITG5<~9G1ZBoO87Tkt!cxS+ z$#%ugH5b-x!FDDeXtwKOieX;4B;KgFR^zs?o4eB@&a6X-0Ww+7!`%=oX;RI$$r_2Jm|`~y51o`z>VaqpAUc5 zPI9MEc8P~bKkaZ6Yno=+n-Qid+AO@IM8VB8g@vZ@nhCTAOpLXe?IM1GxkaBe!U}FB z;Bq3z)!)FSGs#?*%OCVHaZR|{B8hY}hxOHZOy0@Y;d6l%4j5P&@bk%5AgJj1`tY(- z%7KPz*L+Y&X(DiZ$f(dS>+20CbftfFSMN{K#8>yN_kG71+L-*ResSTNQuAl1!{i>YDILL zhiepwPDQ0EE<;zZk`MXJlcE9$&jPos6Yxkrm2jxruT%$}ezXLQsu_IZy|w&*usctV z0~`9;TCo>OM390-treevh$&t)2sG1Np8$~p(=Kz_D)KwU(1kcKZ3UbI?dG7@?q=Hxz89=6tv2X5hZ4xhZi4|w}J^oCbayg z+5v2GY}IHN$EjjpZ8{CDNPM9z*Kc@-txBwzAB+SWuTj4H8E%owhY&ft<(Zg8muT@&yDD^03%LA z;aGm`C-%a}9_)kLxqkQCFryO7q9f(&r5(3v@^rsjT#wY17@HlY_AR@dmo;)nd4UXf z9}DSlnF0>+M>6l#*(QJS==DgmF$l7phMN4VcxtdA28W-^o8yA>XAVL5DXG7SeCky{ zbjmv<-KQ*a>y)7N>jl(t?4Sm6@ptWgC^(&f0wky4?kUxZKanQhS~1%+r6p-I`@IY-J$#3Wf)N=dCDKzqxZ%_vaW>k=q^pv#((|u_VKSjKYab8-%wrCML#cvn1gM=9zXHIF0jC3Nzu{) z+ic=V+sS`Mn(Rn0c;=UyRXG8N?r_fIE+|Ak3lJ=Y5_g@z&@0cK1>1nH*3a%bmkMO8 z{qltq>e+UPM7P7XkjT0ew!98}HfRcALkUp1zsYvcrLinYYrC7_12ll3RStM<<14Y# z+hNvYi6l<#;44E@41z$H?S9Y^ljOD?0y-B;lU;vMs}1T<@m*AVvuyUszg~vBGqp48 zlReZ34}3KP-v)m`bq*bn?8F>X%|m0m&7l7ODp&HmC(a7Iu6({0yl^$m>b<&)?!C2R z-5a-}gP{B)E8=|SX6KDB4aGt;$Gm9yieSyy(}u%6<&Ohw?I|VQ)7p- z8LNK+>)KD(APr~(6EqO|GLjC7eehyp53-$l&%8xkCZavSgXD<97 ze{wKeYi9_<6`P{}>+<;+B27#E&LH6@D{GfiUsLAh5OAe2^PtO%?G&#|ejTAnW3T)n zf4wXX&)e@k>wn*2+SB;v4Hj~}Jbv7!YCM1Oecx~Jn^WKaIDxg{;O-jUHTCO-9}}O^ z@BG%sADCeF;zINP9@eu9=GRLwK6<0c$ntq3jEP_9E=L;(G!0~ z+}hr=45vU`YgP!k(UL?I4ZhM|4CPS_nFjn!*i9~YP{Bg=gkG&;WW8*Uf_XjO${l9_ z&81UCAd~VNb2DQyZZvhO(eho28fLMTZFpGD!eP@8UzW7NqG=ig&NJ#1=teeay`~!O zZ0M)Oh%d?6MFb>P)Zz=lZ@`p%qCW(COVoo&TkHN^yZDlP*9A<{xH z`OqqDoSOD#-P^U`kERQhu&RLjdKve%Akk`P6uvRnZUzxDIwhkCJXSl00jhr$-!>C^ zPO=OA8Gn*s2-SroLlUvcw5YPa32l^HHC-U=BFmjGwlzfueF0QTwWTsLyYMF7T zY}2Df2afUpfBb;BH@VYl#-%5_p#_1o9Zq`sn~|LY@@IcHd`QCG?56|;$xs<@nm{2QXvxs-ymR@QJ&wer??&70)eV;$(pl-Z?D_v4PLW0Oq!3 zbX;8~!F~vHm7qas^~qp|RzDzF2ndOO-dG4PG2$2_%Lq> z2`+4FXKCZV-4Sbto}!%gFkx{(?P#sMgsrX%ER6Q~H<_1=@8<-!~gwKI&=Or?*Cw+(|=zvfi=9-^jba^^6$%bFLqa{6ylf5&LoPy$NPUw zgE&YKtbBiZ{>PPzPDGho*}UJc7kxaPANqbJ_O-X)9TC0i6#O1ou_ZL7AIsKvgdj`p}Nt2_%I|E3$NRXc*?VpoczVt0pyc!vU?2g)sXRfTevbTR#8ZgUecz~@zFP4u5wn}ty*isK- zBDH#I?Qi zMCvxQX4-*1wV#b$pL{hddVkXxNdDsi(~GU7%);5ui-cSHJ-C{eR{=?7>{=O8o{trT zuQ-1zi9m4ttiE8~2yW$FhONrSh{LnEhe~8n>=MPV;CdLXIAbX3TX8R!+u8*+L2rPJ z;|l**&U}eOt3-$*BS)(}=dum4S z`F>}7mVwKP2sUcBYvGmRD~?N2T!2Bm;w68N^U}&@H;%YSpr7OPEFdRiM>&jUn)h$b z&9Co*8bzcW=m&K@8KE1*M(%~1J^!Jx{jpM5yaTh>ZK!7<)Bl6>8m4v9M+aS2rnRL>Sn;{vSXSQj@NqH9g=L98Z1=Klw8+$AJ0B3() zYVD*xcD%b+&?}FW(P(5Jkkwtd=j?Y`Rh5ags>PBeZsE`{cf6IM6C+`C-B5|$+T@HY z!D&5!GEcC(iAh(=w*%#)=cKYNl5VJViD5NO=WYlg!WGCm8?7u%`7(2GT>e>bqib!+ zsBOW^A+{;wnrvaewyW7V9a7tV`tX;wNCF&xn#FBpqg8pPH_B-Mn4PO_3WY~e+_Hkv zhB~1D4suwUA^t>P#~HXcH_9wu|Kj_aQ`*hF-R7ncylY)+kXKOQ8A^!Mx^9Du zuUoU<_%wBc30|2?vne=4Am!g7TUaU`1A3KDiPP)jKYyRSB&4l_eN+K~0IbA?qQD7% z2R$AbyB!1G3ZVx94SmH=6E}{N1-&&I6y011ryyiq`N1xwsWDEqW1=`fSk#9H6Sy)B zkYZ_?$hn;WqqLm>xW?URU!j6jU0XXu>GD(LtvH`YRqJM)6@uY^-DWqux{?S^6$oU1 zjm-5+C^0h_lkb6AWWh!jYd>(&EhSKYK+`!L&bfJO<*1u!#s)A`_u3_S-wSbj1<$*d zb8u7&H?SRXZWhP=eOMay(QT!}O>p2h_+ufPz-+JfZpU>mB>RAz(4@zi(OXDeX*_b$hmrHU0)=s&j`w`Bk_vJo_VTLG+syy#k>K2+pr z(8L`$*R3Gs6_9}_1%(B9(;*>$?`j{PaX-q$*N$#kxDK^I*7&(p3DL^Bf`i$x@TVYB z6@a#(qUAWof{>|Pqlp=n)Embm4Qd;)WFpTMp)$ZVrr)65+Z`(q6@4@K*-Af(OQ#;C z&1COBU>aeSe`Dp%T5t-}B`5C>3rHx9-QJE*NI0x>2FP&JUSWMi1k{?2AZXqb^)C= zj%r#f_Akx`e`uhdVlGYCOX{GoT1Y_05I5GE_|FJOm9R%Dfoxd?Mg-c!Ilsb!ahC8K*3bBcPARW2IDCM+46#MdA(jy0NOaOXuAA*ReTRUM zb!ivMm?0=R1Pf^c|Jb3bL@}$G>_KHqCemuuTxF|LAhMb9%o=nMWxIn%$TC_h>KYAJ zD;>?Xa?i0)wcf7v$n>tnd^W?5@B-(tf|>pK?XB233S4b}rW3uWYPeqxeYV!Pm`$`P zuuWA1Cn(Qf_}>A)I{;@af4M}*A<2uuo~_yy3+r=~kmzWGjJO^xdrd zpcOneafn2^f4zU%h5RfRpu&on8X{vPwgkXEc!?#-KDQ)yqm9BoCFyBU`VX(Q@-1~c>s z!Enrf$TdOQI8)OI=iSycJ0xH`H@5tnZ`#pg?lu%;=Ya$fX$b?FD%bpb>n7XJhPslj z@YY}saxJMZZ?|zop41ep#DVPGO4A72{IRwpmDmtWEpw$W8;08q%%S(kaq?K1LcS)SB^v543SXTgHXxnpRue4hkSS_3kNsdgX0g!(JYw-hT=;7;^9Em-%%={2 zOo!A&17da1<87{%I#x&QgIAIq^X$aVdm!QN77B0P=k99fx#S)LoOE&MrX-tD1r>Qz zv+#(?cjT}U7eB!sgGqTefWnL4j1NTVeuNb3?5(qq)M5yPf-vojCY zLMouf(z>EfOx8aO=RGiYc#Y3cV>{DIB{nmEhQ~WCL+H$Hqb#8v?q!;7jM#jC3R7x- z5m!^taU=FnI|9?OP?I6Bl4Btdbk;h16y@h}PhZ)nt-&RqP_eJ@H^&u=p#>vuH)>=X z_6@YHDF5e1`RV9HYb<<=VOt#YvpW01QQ!0ckWZHY#B$NfcGJ>@BbZ>C05Vul6CItc z2QM~yTi8mh%*x(up3tRUcsQbBk2tpw(3vDrXWHrH~{Iu98ZyY}DYm)u%&MxWybvZ$Z}^Sx@I zc*V`B_31|0Kn=E(^6SXauGy2{83Ry;@sk71kdu?W-tM+p{cmPqljQrP;~$|M*Td@N2lAtt{0W&(GKnl=hZ({dAo(h3Oz3#PhjdAN*B&^Rz6i z)%A9r=WpN$81~ikDh~l;M+UR!dX!0$?}kQXh$KhOfZNGrI5uv7pG_Tht_@3}tFLpN zsYX+9)daLyUf|ieu>!4%ocxCF@oo%$u6td$`Di90cc_+M1Qys{nFZJ3!F+7Z0j3@f|nrorpz+qdgzc9AETs>>f~5 zYp5n@H(S~Q*v*^OPHqbFAI(^8w4XyT*KOjCkpDO-r%(QWmAr|811hhav1}=Nt?IlL zqCx&QVw=8OSjBwjuW*Y{NQR?maR^1zPlrmG0V|PvW_|=eR=#o(WO4@W?UO5g9Rbcw ztQ+5gB7hl59294oPvU zU?;OB1`#rc&GwaVLkaq1G9s*ODS3o>^AweU}K}C{4#CR zL{k!iQihc?aY4Z@pc$l@V4&`979Z<@&0tXB}hqD3W1rsc`4JHNQc_jX_Q zRA9%woZtfNP<4Q)1y#E0P;#EcxMkzMh)Y>S7ild!AI#dj+e$4H&~C8C0|Bg77N42w zp8p!?R96tK#;!4`F-7+Odo0*~CemIe`1uh*J4+Yqdw2)I^OD`7W-+X2#)SZVa6vX!* z6ejYj}HJgQY+;0-p~j;tF|`ni^~XJqsar zlz%qst6`YUC?K7@vg?@YiNa8_ZwN21f}X~IvEqhqb=BZ+yBr};Q~A-}#N62V(v?d* z=y%1A1%igFzL(T^kp)F_-?Z zDVNM#lCLGsTtH$zp$f$X7N*g#PIv)CRO{vESx|BJT&X1*$)Z^&Pl*LP(8F5F4bVmN z;snn>OEgD>$0Jetcs#ODM1r$~!QJMJY=q)< z8uQ%v9raLl!viS8wa)+u8(I z$SL1VH}G9q%&D?p`4dQt>FjoO@9)c_I^+wiiU%}kZtSyH>}|`-lAhqxtpeO-)(+Hv zoXRQ1-c*|Q;{Hr;5*y#8UXTBkPwN63{idf8Sxvp^P3S3=cW>OVmFP8lu|8^lv+x?C z9tC)*l|Q$g31kt3Hv>ELzzXW*=PDEXxK$-d*cV)Efuelu57=TS1hAlj9xd%E6PRu? zm6N44=8R@R%|>R^7CB>y;O^ED*QPgK<-yr=FNZ`x1tY@?VJGAiP#&Cz z$yDDvwdcv>g#s&wAVOc5ZLz6;*kVeO>So`x;&jS7_<$zUK?E z`SS6@pyx<_Ei^Kd-#&c!`?L$xH(LJ1DwAIjJ_Zf);)hAVV0}%WU(?5b@Ab9pMv5FA zrCIKq#XT%Hz!g(y8|x9!aawUnhUtg?pQ3tBLeqYYzIn`#N2-=%yNor>g005Xd;wW= z(8!YU7dN|dbcP9{GvK`{{MMMHZ+5h>YOILfa@wP8Cle1}0~lqo$xEQZ@B|hNu{ga( z-K}GxHoeEz@7v0{>%WD6e)u(u*=Onxp!<129X%ZgunJCl)6AGbqoWyq@e%Q6i=&iU zKtb$p&cF1yOuI~;_ArPe=xqpC5X(m2V!YYtUd(z~N3BN>*CI!o;rymO%DG%`S6?`j z6bHk8MxKVSJj%UnkH$r(?qtrN=(R$tvSZ}SG{M{|d-K80?zcF9TJDe?S0VP4prs#J z?J{arSJuh@1$WPK?qV#5O-_o!1NtX3<00~fBAEP!Xrp`!kOuR&d&m?nEwa6HjT)ci zq;`!xl#z%XB%odzudW;#xp zvxmGJY>KpSls4sm_e|NOms9sy;P4boXTa{ApQ)}GumD8srsxl;CTEQgP$FyWU96W9 z;_IbkUjZ|zGE0_=Q81zMoF}MvcUSH5HL9%(+%>rx?-y@a9IYQ3=X~!@Rh#w0XyjC; z5ODzP^@b>_#gwVDOKzGb`se+A_uX#<8NM?vBUenO>UU;;W~l4gxiUPo)q|&wuMrQ? zi9zW|^RU*+*tM)ZRW6N$kYT5t{n@}0@T>r zAEcdyp9OMVQtuiwF#rWal&MMzOn{~io6+C6wE~VB{C3lO-v*LLPuVdj>ZQfNUSqL-jyS`pXlS_TzHNo+6qIwlmc7vxep#D3Q?z}|ziMjz zObVR5ej8Y=Z6_xI3K}k2fl`-V=2A`UxaGT~Iq!_XmTUfY*LVK zJ6>@Vcc5fXDa=f5AP&xoXWNvHlr3mSm%v*B6@Sk4&p2Xb{DjNW!v2CI6Z?e&!=(}9 zuh@ap`}^qUuJO?Cewx`e&^U-@ce64$@3JpXCj%({K5cdX^R4Ps3U=;tInDT7x{D_P z>EeQAC$PI1@8IIKu~+RS=C}H1MAgs5FLYBt_{*+W8<*6C_xBEx`kCZK`z79u84j~q z?0>47mjCx)hvy3*)FIS9s=G>YOEE7Or?K`WQPw`jB`Ddv8P}RR?ORn8xzLX$;8YcP{pZ<`-SJqPEi9q8Imf|MKMv z{o!@{dU{u&_R>^=6~c>X!Hg; zTC}kVfRgs4LwnotQ~8eo(3uDN0e0?YWVFY~qknEHHd#1C)MR&6Q;>`kvhA`RE^^fmG6Di-rzLTqEyLF)uN<$7< z&V3UOvY%`bBz%QJafm>o%5aPu3);A8C|V7ZYUMZsF4qtWJOpk61Csf~Y~TZvs&^R5 z1zA(J*=E{T{Q@$8n3Hucen{<&I4x*Ts43G|xD33Tot| zH`jhlT4LmU6wqV`Ub!xyRm@v^zu(_kVc4D{yLxm1ebYOO=Lyc4l!0ZxEui@*>p4W5 zN}WM^O+c#|S|lU!zkdYj@img;M4r^fQ;aw=D&}c!bXm=<9b#~_BL$-?vl=8o>_)!v zb$C@e@w+9}_1R=g*8zH$1F`!=6{tnt3&u?nw?2hhb>~I zx6(Hbi(69>o(*zR7%H=%=Ka@;X_~@gh~0&d3Q?_B&`{_#QIKrVdnphkz-?W4h|r-` z?qCHcyJ)nXST(!yL&KNUCf&MlFv(S8-@I(YF6tclOY?p*-OEo8Y6@H6dpJ--q&j5p zsG~bSn{WV7&VR|-L3YFpkyYy{wiURXF?^Q-F7<=6%~?>+gV`y%qa%agaeE+jFZ!X(b~994PU;U|c$kWZY+&-_%zF`0Hg0bIsHebvYRLm&71HBnrzLLq{iZ}x{2IeBW}3V*rD1Oh|-#D@#8Q=qUNZ1W^! zrNEtgnTmO)Mr`(zV)eHs^d(P2fDk3<^LKi()Rgm7@7wvwJ8ldi_l250zpbHA$Ke(+ z-AfuW z-wx@~{C_>Z`6UUmR-8TW9e4^u&fag~Xqn0z65qB3bsBMcQddT4|7FPO_OuRL#GY|9 z>s=P#n3eOQzF+fPH@;R^44f8=v3+md#C+x(d8pG7%p;-4Nl&P`9C9vZAE5-f^7>Yg z?=7IQFQ5i94m1!QMl-$l)UjzFV6uqer-GKtf`8!N-LJ214mLVI`a-T&Feulj&$%Sd zfD6*{2Dv*k*K~aeY_7JEchR{Y68=W)Xj!&m-ZWvWa5=u#sf5jscbVn9^I~~G!2Ex? z+%GQmgZ<`}2r571*B_@ZEs)3@)z6p7R+MN`aOKHs+q^*)@2HQR#R7HQ;Jv`PAIW56^J&A`o&%CeRJ$rk@ zne`}rtQWBORi7?Q1x9`M^pq;|`sou*yFiN7gt0fU~)|$_{GYW_#TPChqCb`%$U% z@=t#+7I!qL9pN#StC5rOl#r?*TWT*~jrgDF%}!-W9C|Y`1&m2?fuL$%pzRfmc&doa z(xv?qjO6A7=Nj161xz$NMIl z{%RhzcJs1#uSQUSnYCaWU!lj6jb~nE+uMJW1aN*z+SN|GHOFkrqk`Qv=_9_!U6zhb z$}{9ObC;0E#TDU4G~|M5O#is%fA|>*R+ke*nKszn-Fy(P6jr)#I>F4blxN)!yIs__qvdxzOJ?F z3d!H=x=dy;kw!_bUoQ~Mrsjf-nrU32hg?xd85=p`wrPoly>!DwOHuZ79mUseHCHhQ z3*&#PK1@*JftrHK8&FMBP%o^10S>aEz>so;nhUrWH+()22-H>^z1^peAK!o8-adZ% z{O4a^{{Dv~)2?@o%VbTL{pJ_mC^Q(ucv1#aRc16jq&6D}Z@$wAuv<2WXs7-vii6qf zDkMy^2f-kdBn95`a|D=X`+9j#3Kh1=!63}Fn%MxyskCi+%OmsnZ zcH9EhqyTUX;CJ97H&swLpf-QEfK+pZz5|L6FYEvlh#dBX?>IMNju+;{{L*V77@1w- z`ifbqEwAL6z#PK+M}X;)0?1=9PyTV_1)Z3um8okMM-|`#p&brxBGmpS$~(3I zo-pJ}F_HsTUUyG<*TWDQbM&@?qFEfBKiPo3{B^yR>I9V!Y6Is>ntOK83-eng(RY2t(-n_7#t zpRKwcdec(ki@_l-Z)k^^V1`!%c9wl&a45T4?KaDB9Swox?VNvn{%tM<&<6)Xn6AnB zxPwD&8nj0Swq)H@Z|k_;!o)}1&FBG4K|=0FA%^_%gGS172J#P(e5EQtl_{)fV02!Q zH=KQ4*EEs{OtUfe6|Gvm*m|XH?Lf7L7P+Szp{ASqkb0+aqn$*@t+vt=b&!)TVw4<} zVtTIrr4UEEI@5m>YwqLX6YNcHl z!)UcKCAz3GRQWb@L0-Kk0@=KhnIQX}?fDuW-B9_N7YBa>6bzSH5X}7PpFf#+jzFR| z$>hBOS-N=YGyv?!Ht|jWWPPE-1Ww~fJ*^2g`-7yQhq-xFL-ROK`GwQb%fjfn{~=ot z4>rvH9?(a@1Ypxz$>SS$vD5}2WOscMJa zZdCa&hVXyUjlN|{2ZNs$6n0HM)bw;a#1Cgo>4XQhs$Aviq42Jmcu9vaLC&4u#>hE; zfm%1iCpwBk4D$<9O9Qq>`b!GB%hr#NmOo`YP8k=_8P8Wcvb!{;4|yHzX9bxwz_xW* zP4GM#$B}X=sm2aIDuo-n)i%rAA6;A6 zkZ$0HDD>_E6~c4F32fq>R3{5^wX8TGDW&)lMHrE++}C#G+ATyY9h45WRB z77e%+@&JXO-5`%jvoHf>uH0?0s~XMO?jFH4umvk#L;r#;5Oqui_m^{HWaHxMmf1Y3 z^K!Ik0T^2c>zfWyw!z@x{sz6Cu9O0fa5hgf<*3=EveDSVi<~i`=gQn zQ5<|nr;Tt!2GP6yG>b8cw3d=2D9>T`3U`M zS0ecl8|)3EbPgQvz5v~|;kTAS;uvhd?7$n%qk*hwVOBmoZT1|^?s2|oDP_#%8b&NtL_vDIPMdE{hI{3 z+C{ktvi^>M5Oc5cH@O*bzkd1i!&wf?(LRhgfE}XJFjT>9l!ZPkw~OIHovE=M4Gl4j z4)w=7_^pDYSt$r)lpKHEQQ1%~&)$q1xZ(?~iKCMflEoB8XQSagX({x^yQ_hz_R(6N zDFduG_5b_76Tf%?4a&}I-vLw-6trm#{KRuDcRP|DQ6R`vl#&W)T$4--*Ui2~2NxN$ z!G`Z@=lKU0Sh=`FU~6IOyW!}jCXX~3g!1yb4T4ZM%+fH;wI6>`h;9lpwWu0f)u1VP z9$--yk15deNSSp^)}C?jA`00EfGV7#MbOqXu5e;2?7>HBXe`?4>_+vy0bI7Rw7zBy zE+&q8K2B?43C=_4wRf*DspjGCV$XRVM(tNdq`VU+ZO|V0GQRe6<#*;rD{OKB6@dj5 zbZNBIzkmy~S*CviPR^XkgAI+o0_t5Z#lpG~Ob)b4R?ZF8dZ|o2A~|H&iBT+IyRIz# zl~9LBPcD|7Kw+C#<3ee>-X=G7jLuRZ1r-{!MvF;oroXspCNSAnOAiEH-GdzIk8B_G zFR=V@-R#wbsWiovyB!T`kXmFms#CRgG=p}*x8BD}Q}aZnu?hB3qi8Q%74jX{^YDz| zR7XYJ%>r8ypfUJqYi@Q3*rO2^(AwcDk=Q`(J{_G6d#)pmnrN!BSvNs~W(iys%2E20 zCX6wE^uf@{5W=ELT#YsJ&{kJ6+DG2pm^T)4m^$%MV3592@%)KC8V@;GEXdSl`pGWQ zUR3eS{QiiK_Y>H&4Um1WWTRJQ|QeMCD!!HNeHmYV09tzFaQ_{QCT9dHQMyq z8&jpK)eB^1#FUb)sx?Es>{OQRQ~}&qs=!1DE0A{E+RMJ%WH$8rT^sduvz=Wg`Ervqx<}{WL_4&$i@vZoGd@ z6F*t3$)Z|1I$ujy7H$(jp5)QUtON*^pns)^-m$U7dNp3Q!K2WDLN7*kQUAi27v)WV z0E;mEkn|1FG@LS z_f{jbV8K!zo_Z=YZx?QM9YYG7G(%u2*|Bi5NQorb*b{Uj{Rec@Q_jtd0=q z%zMYq}wn4hLWzGAecT$xLoEVzqE< z;U_*@&v_3QsFT`N{X|#F#(c}k(MyPx|;q2saPJVjDkxa7dg&2fVk(aIJ?yI!#HA*^ufRb7w$m)UXx zAb-;aK>^6suK$h2p@BY#KdZ%6iy8e5P5bhiMmwJy*0Rjb42eVWf^HkC&#Q+okXE%9 zK!()#44oevOVa7;RWWxC{K(izGq{eJ{@h|FRU#+TH`!;4{iiL>e#2xH{1OzgKVQG| zT)tQ~M5E$i(GVKhgyx%xVD%EacK+Oa$$xN*+46b_4=@w-&@Eie^yN*K$IaS~vlyWm z>#Sw|B`A)xe+=hyA%wSAXKT&@t}I$GJemdEn&(}G9mH0Juw{;{B3Z83G=efm7w97L zatOz5GQ7!Ha4DK4Z;mmw2r8?1D8lVA%vMbF%py*>VC$npt6jBLQ$SbV1%Q$k*?%SS zoIpSEANIlZjZ3Er;-3r>brLUG#Gde7EQc5mYypZ0C!LYlp=U(%qzu)EOU$$oRzZbM z`D#i;jb=C%FQ;qpdl(+hKIA``02HhU~P_;*wDny{ei8K;fkrvmiIf zl2MNp0zgRUwf4q%vpnK1o9Aq`r?gtAu0mfIP4nYRs48^>XIq-vOR1STE&1W)Y&YCY zP#IZkseg8$Mtg49=vxx&(jN5yd_1%Yq_(-7y03;tFg1+6%9?w9=SmhjM1NC508cRE zWnYeO)YNAXRu(Hn6GU`(IcP__G!DbG4GqrBXBbuu^b_oP*C><&llIB>Gr~RfQU*ae zl$j?(v!x0H`>dDsur|I7$l*2aDeI;25#H~b^{7Vq#naP5A#v4pkU|N!ht;o&&1Cx0H2m|KfAvEQU!P$U7Q;~Kz%cw)qgxtGPU0_i!VNL z8*=`^H7xQc*qUwEOm72=7|`+fGq{xLDlFzKw{CO)Xs@jVw+pP;2+3NxDAeT zwYgYug))LaV9_mZEGKbs14|hSBy3^^$@!mYiJt(sr)$d_$pwihvsvlEV2AurE zf+K&N9z%elR#WkAv42*D7Rzz>X$e=$(*>UdjXeC1(~||1{WP_LqrP*cN$ILQ>A-5@ zUe%HK`C%`nsX_)2wk*H@IDL70|IXZnPv{H4aZvFi{_$VTLAOC4uO+cro(om>O~oNV zuVGHDG>hPDOWkR)@(tMSTvA#4>Ax zQ)BN#ypQi{egsVdw|A}IK%_a-tSC^)dha%kJ2aLzEYL>Z=7PGrPqrXxglt_-jkJP2 z{G*%LH~LMp-wR646QyuiEL6eyJ_?GMu$hm6^EoN7kag1^AcnPL$u%Ih-mYU~#U^vd z{p|G@RiPKNM}JnV?P2@${Wj_;`Mu>OpaKp_lE#^&u)M*^+6plh z$Ifm64F=^i5Fi{L4Nx*r=xb9!F4H5v*lL ziGX-dDG=hdB#+g~7WB5=?A+Kp5w7}3Vup0hg?~{3x-BId;G$YS?9mb!!Lp~RW_O2^ zb_2Wl+*)e)WLEq6GTGDJxlQ&VhZ?Aa`SZ_bn4S^Y+d4PQGGF^|kH@W1CbL}rVLxpN za66weC^R^;fVK!Je?Fcn=2EkBfhw(=sMWvV$fZ;1`zYr(r`B9Rtls6xoGE9_Qg~k* zMt_)`k>~7{UFLgG6L=~6s{d3)9tB-X)iW>S{SPH5Q;=-IC6~n?PQz>|@(z6g z2HpWIh@%RG&F@bTd-hG~dFe1H5ayn2=%>799!v{^EQ;j#R1OyPi(GM3P(@fir!LIA zZ+Hn7A+*!EsXGm1Xr=sv>_>}NngR+Fr+?rwn+HE~gPeM*cb%&u%w7saN#xv-bN;%HQLL}g~$qOn=(oz8Z$OUv!j58bMh@gjoUdZNo;-7 zfC}&U-^#CW&DcoX$@&m~1GVTpkfLt3F%uC}z0~2jxhv!$VZvX$`aL( zv9Za^V&+Fhw1u!l8%YyXjtCTdT8XFM1hs}6KKfTiJfmUT6S`c%Xc>UknO)I%PEG9) z0|b>$V9}Q?+TQydx0X)Fan+XN`Ln~Tb;0U-8~I+T4AQ5*Xm-&lD_qmZ)_(+AQ4?E- zcNsh?f6ohJw>Vh^H=sX+22R5^p^pK25&S#fqGQzD0@%bsY5l@vJh(9V=7gBr1wjB; zEp66jwL?~j%>Xin2l>>sl@AU{PHH#Je8h}aa{nx(UaBR9NI4Yhi+bfIQjc29{7Y>w zOHly7p*riwNohQE>tP$M;C~-oK=Ih7tuM8fnUS-(E}W=2W}B|!8k(unH%H5QHQMgeQ=TtW<}+gp`TvLYch+qrMlPLKWe zB+0Dj{^i*=H>jv?%TJ&2t}YywlnT-v~;%o zkJEFtH%1@KF!0V4pr&MaQ2;>O>e}_o3M_K;{71>5mSRvY6gtzcmrtBJ27-ya20b^! zl7bM!-4;f8hTFv+91P!O^1~GFLN?F?-PjMlvwoIIpEg*S(S z2pR94^G5cyRa-G)iM>+1EHYU1aL0N^6twKUITLyiJf+r*o{oFg#|e2A|M_7XJVMJp zSQC#T0)|PWrhhLQW4Q<(0d0+I;HE{lv;NZRcRR2Hdep_{YgkJN zzRV#s3!-DJV$m4De0!rGYcze5pgbDfL4l6qIl zQ2N+72pf7N%f85l(WvIykHi#A@`GTC{Y2RmE-^GZ&W_&E)$B)%vI+#@Mi?4zan=6d zDqE}oKozpOwebp(oI2R?7)nm!(lbsbR*Pe{zL4^;(KZ{7I%3l>v;}%^^_MHXN9p=$ zY|AiUcz>9Bzlp=N8tsK8Wdi$sFb(ykWml=(`o`qVJ5%BF(8b_?uEa^Pd|m{184UZb zym9lU;)3<5^X3C*0U-ntL{TfmST%{};I3kNw*PSBS&e2P0|fmWMJ#DF37*!R(tN zx&Y}*M2FHoQEM0=F@@&Y@U(?D$$+T(EOSniD&BB!9ASlI(ML`dPrc^c%-lt5CYWlC zdw=G5VACi^+GX6LeU_9quUkhGpAD5&)9%1-qtc<1#GV2ZPLoX&2#j*o8+p_u7P|M1 z?pbfHD0=-s^S5y{9Hh{jn;M^Zx2-XJ=xysO&DtS_&CaqxYSDZljVJfEm(aVgiI>df z1_Y>bi>++D*Zq7w9CJ2ZL#DX^fk1J=(1h~=I+UB(Q(cXx#=W<~*qWE4XwHXah8s8zOD9zz8%ne*8Uhk6$A z2NbI<7c(tTP+T6sds5BQAEa5^+VO#QdG+FB*cttZc5dx1_tcqwf}iAvW5rY%mVkzb zU>)U}01TQkJ~^#FA#d=WW=Otj$Fte;{=ti5lv0^?iYXq46`MU83xUAbdn}BhC`F14YTMx)+95jG7a$(5^k3C4)J>DKH!hEZ z>J0Si?dZm?`zvl;!4de1d+K7~IW+$On0ZLW+(ntNIX!O&#=l+Y~U@mHRNDzEwFdI#V%?XC>}y(+Md!jrOeZP}b^) zxq_cUU-#BWvqG7yv!g4;>UFH`qir$+`+)9Kqw;EI=2`;4io=4Y;eW<+CadiAFgxi? zCipVvz@rTzr9D#{F=UW#@JGKM3@O)I`KmyUcJA45?>bzM2uZ8jOORo3m&T-Ce@3uh z84z)!6Pi}b?;-PcJ6dn}{ntQMJ$(FlHc?bHaecg&qp{jTC`%^w)F0rgyFT~sDZ@C| z0@pqdb_M4Xy-`*@nt$qp=Ch&YNj|IGbxde3YcMkT+_Ka2JgZDB2W2id?5}WGRGz*5 z8n4?%vwMC&i*c##6IC`h|3H?mpF(Amum;*FX4V&av)l!hq>z5?a}T!FmIGsuC^Uu{}AJ4pa@ei8e6qcb;OO=Ewa_hq$PA2n42zF{H*@%;;12(IC1b9?`ll{o6#xxI93kW>; zv7g#7Xn#D@3Jjo}&*1da+&y`+&mx9e0ywBXXBrwgx}fa7h`yjPyfJ69ab9eebvDV< z)r4IMy*H6N1yAm`@5C4^nD6ped!&wbzZc99K;}+Q7sX+DJoxe`{XHWS==cOVP73+7 zJEzotV}YN7n`k|C!5qYL9@X4!?1lTH|Dl)ZsDB|U1aQp0IELIhGk??a_J2$Jx`^X4(PnCf|$ad$=l$4UA_O-Ivj*3)HRx z^MA&mX}mmh|J76SB!9oZ>%X|$rjS4XGq66cR*!A zhJD*?^X9EK192(5c;a$G&pdLYHTuY`_kU{oGGKCD-W&CUKuzthUr^e|%Ui$&hTe8D z3PyXSYZA3G_KpLS)*l5(GnyuCV~B&5!y|I89<2vEfwg#|y%mD24I8@nF zNgG)eW-Das{Mi75Ce+o%lzF-*#1S3u9O5o${9Ney7m=AcX>-NN9QyQZUKGwP?th5* zvqohuAq*W$aDh6I>o$kYd?uR+r~`-AJIm~b4Po}L6cHX?sYFg%x(8BYDt&|wW-})m z+Yf~VoT}U@=9^?oSbN{RE_J7VL=* zvihC1l9C%onkr8YVh!?c8sFPAC4z>`r_put3${(t$nY;s91^7#z4&8%!sdw0$rcrkJq+@ZoGI+L-*ecKr4 z!O%~Bc|qr`Z^g4{1B7h51pQWCu)}S1sJlGP)tTLO8DZD2?sh{3z843p=i9|^zj{$a z(QNZ?_#-U~fGed&)yy(iU&fH8Y;hCe-WSw)sl2wkJe-2TTz?aJy?;$$gR7dy`=xkDkl#yP%)2CooB1WPXWU4 zJtUsxCka8}gl^Gz-_zhmJ_`=+yKxg0#W4xHzoC99kTy(Kla-*(;ty$(B8fdM3uT?z z;0dZ@vaBuJ<$sY3>=N^_y#zKo&w{bJz&bS*YL+?$6^r%!#PCW$Dh^i6otH2UGso6o@Kul!46^h{ zMSatk6wkfuS!Q0rw}3gZUj+5W1!SKzSm(zqdS15p6r}-{b|_eVG3k;zf7f(41^ql# z@fdo67-zPJ{L^Ixr8R4QNuhl^^X5Z=w4LLbLtx6qpvDl8(tAd>xI|-K zN>65%9Djf@$7%sOTiG38#J~3I1O4+$-(x79t8VJF;mM?|0PJBsR+Y#&bgar0dV*hY z(jF|n9RL3x&^Mz$XrhtE+HmJ=IItTooUNCwFpz6o>vYLVXhT+@&)Lgb?l%1x9^;2T zyEBR@qkjS_-7s;Ta04olq2lO^_#a1EiF{4RQZ-es(^Ti?Mk; zyO^MN>Wo`|LNGKSXK7hRMS{M;*tal^6v3j&W@geY|F{?`AUM*IAYIjxzBt-x zto=g!yJSTvF&jP9Sge=2&LD-_513@VhVB5lOd0|z)#Q?+pRQrv+SA=rT%0d4dVltU z>l;teBk$r?&5iHUF97zc-0kOZ zP~zt4%h<epn)H*qFI#cah5X3KP$ zRlmeIVH%A5e?3-q<>sC=AOkRagBwOs#any6f<}X|af5wAH^F{t7_%A^H*t`B`}`l}&AL{D1We!mNozrFSeHe~Glh z59*x3_+Cnw<(qn=d8$|vNEqCM?(=0vw%J(wv-m|GUEcet7QqbQ0PtLOEn#{fE}XR@ z#Yd}2{8mTamA?;sbKC=7H`Kj2~$=+%gSJ~|Bkbl z5OZD)#2o|3iS)#i($?ki=N<36#iFv+fXWt`AL3Lkl<{nz^)CpX#;9I|t+xE#p zkOtae?(7TZC&u?hhoZ@BGXEXXb4P|?@M{|fG;_md@PDs3`*~iqr-3`BaxEUCt`0Og zUPtwfHyK*beN;hQytqE*NY)D(URy0cs^%zok|c+zm0JNP1xn_YeqF`ic`6(o$z90u z)Wy>utb_{CTxhyNrapORbU=uIFJ8cjTf!Vl8wMx)ZVvt8U#ZJxx4e+U-L)(D7E6_& zU|)`4XMYEMiN)wKQ6vWL!3oOVIB4w7sM`<2J3jHk2a~>j0fkEI$Ujeg$UJeQxOhjN zG=)O_I&g>11!PqQ3f=Nn$8`=*|IQmw0r8js*0-3U7f){EDb`O;tDK)K%?4ztV`MxC zRNx#@KGdlRQr^s5XC}#NeEa_6Z+^Gn)1p4TAb*yYCVv$H{zs!N8MvF#?ID)ZoS7J3MyR0vMutbi2|HYs4Km~d#M+SnFMjhXuu@(Tk8FFeB z_45={(h8*2@>nU{Q)L2Ts|z@B-7aFkIiV<^QG18?9Xx@|Rid4~{60>3v0DH$l-Fe0 zo`06)ZrZC#!LSUbZxm%i*uoON^saRiqKYaCJHJvxbR&p2&^;KhY8%n=))?s#D&R)&(x&1i!Zj5bc} z_f}-(HQAqCf`CN41;fgqafCA5fYmS-4S%;y%{ySTLuzh#{|@D(FRNqx2(NwSd;|cE z!QkxyD5-rd#-|G90z=MLFDuN;3@_9TqvN{qf5PEF9f!Y!iH`r`hOVY~{}(?9{(czz zq5(dBc-^s&!}0fjbM>>VQa2;lcJv1;xF3(>SEwfq678?nMJYM)&u=$kaXwd68-J)2 zw4zK!l9ZFxo{p(QPpjO;z5l~LhH`7ewQG;_jiv(8NC^^D+6+lQO!@7C%hEa{^;~B0 z3IFHid7z_4SrW*uT<%)V*}tng?Nz%a`%%}KN6_;c|6m&VA5$~b9T!!zPa2iR6kBo&%qlliI2xx){dtR zJ}=#)@R(@*0e0*C(}>|3LnkKg5-X!GKbnSfp`T3FgO9e%dA`rbP0@${Tz}7t;FrG8 zKEjVMGmqe7=;WSp*ZT|O15q0#H2sMAKYxFxmyy=g(y#Voaq?i-8gA5@iV4JAw z?9{g|PV{YkEWYuO(Bwkc0uz_sQoi8T-sp+>P%8d1##`-4+zW*S_k0FJ7vSUJ za(j!0`~LCpg;}8N9CEQ=U-B-liL+DMN_sTa6*qX<;33h2bO9<9VRnpkT4B8#o59$> zz%Erg&lo05O?+s+nOs;XzAHR&ok3kQ4A%=v#B{X+2`{zq_GNJ0U4Iw8@PVo9nqcYO z2i>$pS<5#xAq1@d#59ASxH$llHz_M(>Z>!jyXH5Pe7#5)?RuUYOh@H@NgMKW7q{A& z)`8u~gvn=O(3vR=EaeA5#Do3~wI94>m$vefw&okxmO@uko~P>HlGh>7cx&)sn1|e2 z<@Xa88AQ4e7T7fINPij#tWR5U_AYPv8OMgD<1xN9iYqeEd|!4?acV|Hsqvu1 zEt~m(j$mSj>voi}PJXa9(J~5c^W!_?ECl;coaRj1404-B*w}D$Q|$-aPo`zB?#9g; ztXA9;l?Mw2)==t=12nB(w$}N%-nl+Ku-QXDy$pdf!)E0VRDYp{gVsTQpoJV{?pu^( z_n#=BD~@d(vGH>MhJ2==vJP$Sl2!nic^u+; zZ0xo4<+U+)Ak#bkmH1A4h&hfIuOBsAxZNerkalY}yGNSXF`|Q-uDor|xcdTf2HF=& z(KTk+JYj9$M7g~OXFb|tj!~d_1 zA(WZD80~*mDq?}kkWIDJ20kgR+x5f9fCZ}lsY*Xqxr3+L>4*Xz24W@Di)d4x`9O{qmMb-(jrG?>g z8(L7^w?TJNVh5oB{qxje%!|FhwE@>NXQZVq_fJ?{(nKi=Z2QY5yA|{CuSvsWP8db_CZ!bcm`U~ zmK|Pa_Vzb1FsaENk^8m8VcAIgcpaxU=9_@p#*H{=7N6k7!b_oAX0VdZ zp~$hu5L<_Yc*FSUbC?H%_%Vl1Fx8MXJO$_BBkZTxCbU5OJT;sNBge+)Swf&;Fn^vy zMDqQ`he2W*1fZu@8I{?B!#6X(sww;TDKO-1H$4b;dF^dv#IyjQ-_G>0QANCmd+=HA zwOC1yIC!fM44jfb-e{>2eQyxDy@~4r(KJlGUE`7`BR3;1<(o0LDVU3EZ+z||$5=%c zS5B{y7br)~ter70FnIOD*uCTBY<~zp=H;f( zpRA{4bYsIEuw~Lz$H^Fl5nSA4Lm5Wax%mXAd7?t~@{zO=379&2ftbrpyLo4T)A~z= zW*_FKd&qGbHSROc?>|=>AuTGucB+jLC!{J&i7vn9JUwwjn^H@p=NU|lJ z_~0}~6)bzYqp{fw6~Q|A8h?c1@Cmt^eV{K}9wmQLl%vuih>1Q2$}}m+aagAQT&b*SP88Vn;hlNEV+_7y;#z>H ziqWn~1_D}An|2_*fi%c^QmGWaL^VmL>ysR9>MrOaKJwL1KFqDe{mWp@G6K8uq7fK! zyJh5U?E<>S;+3RgF`*dvfbu|A(ampD>=wSd#1ScdfR5`fCx0D4VxzPJ_!`EJy4wO? zmu(8mxY$Hh%22XABaG(XaCV2Hnt}|UuBu(v8}^_k@V2t}bKlD5^M7Q!;WcqVF>0#f z%Ek5BZ`HBgghz3+ALp!9imVvwsT^Mz;(>b(0SIAH_XX-NYj&{qPM_hcE8aY$PmhU85Y#|2f0OZm-SI{~%QmZv5$$vV9t*U4SJRN&T=j@N2T1kERZt;Q!Oy(Rz-VZ*b ztNQwffYY&yykb7RJ@$~U8n7Gz#>>I`(UylJz-5qibns;=_z+UQOjMMQA&)(I0X`1C z_EFXC4}SnBKa_(@J`Vk{Tfc{!hUy2P4>5{dG2##CF`&4)=FL~tNV3BMlh%iJhfo-V zqGWU01&E!1YkvBHU3i*T*JR9`E;-(Um72t_Lpz32RDzbcb?pV4EXZ#qhB}`)E1{qf zHJ-YVhB!Kw!l=-Vfu22w5pO&UpDn3Zmo~S79<4@V%X#LG2N1vSr&yhEdp zq_k*NpZW`LiBQ-|{cqKSLPUP!g?0gkWK1jxMp+=V(~GPSl*9f1lJ>3Jk>XghPn5lE zSJ|$57yl6;K*>cE5|HH6pB)?0cK3G(W!B8B>7KP5C_xBmUn5YOv}HNTfQ4<1Q@y!B z+ke^=7(3J}QxwMPxGM?925`&MwNr$1BBdIvDMnNIUWUpNvQvWXcP|%>n#XqWUNG}4 z#tFAQ6^IxXx1aX$Ov?!nHk|E~>5Ur@Gz{8wBeQ75HApI_O(LjbQFUrRYtDk0hK295n0K3Hsapyz&*I?Z*+8HeX zeBNcEr8w9o_&D)3)&z~S$floYNekNKl`Ae07EsgKvnv zkcz^bSd{B70rUEsMb&m}1A908et-JO;-9wTi4gfa*tmE}jiAPf_tSy}LUyD+)l?=p zr35hXv+tY*SU}JG@^MP6Ij_xMA@!a5%wLk293*jcU3%@PodzCzQy6Eo7tGdji^L3# zq*-}I3A+-Iu|w^sT|$D9SHP7iDoTVV7|0qXe)FC@q4j6qBpeMZZj%;19Df$r3#2s} zbpWmZ-WzsVaj>!-A=s2y){}MGZ7X2 zFZ9^q{4bI|%B@&}E+Wt$bcAS0AaJdM*rR=(Z~?&D1gvK0UFWXprT0auaoV3OF{@)C z-nq?uoAC9l?9(2#YbpSi>VMA&kO^$Vf~@M4ds-e~$6@QUq`y9F-7qwa4LuyR&?SbN zl?A~R$ds`h=YNr887UHCL)$`UuI@hSNu7WGF#7gPk=dw~X0Qq%n#!-}eN3DrsdcOlOFWyTt1tFBM%q_dpFw||abI`0BRW;W0w zxd7|hrbxmAgwy$L?EpeRy}$Ydhaz2q$i=ALsEDD+!0+nvaVpF$k9~|PTQ|m3ahr}- zDk%`VJv1KwOXT4gdY7n>X76erw~3*++v=nf+=!QD8ga>dVvGAkB6gW*RRwx9!Of{( z_u18R9#jFLxPJxbXJQRsb~$GkLbMK$N`0g_!1e78JXU2dqitQnH@F1j69?2KEqkuF zbNdHX!oqO3b$K6(uAy*KMoEo^a-EKb*e-IWZv8bGc|Cgc<_U(R?}H^K?Gs0A#LHcv zNxQ1(df265QWiLV zApmZVqgiRbn|~iW9!`#+RB!b>n$eSi5s^9Cjpy+MU&-f%1EP{DU$(A#utICYX#nmnhvsgbwBU{9CIX zI^XS_wCZX%Xr6esZOZT#f5)Jf*DFp5BPI}7?EIX%z1fu0*zd)r9NVs@RV-!@glJAC9#n#5E@_FQy}& zZgf_3^8Bz@{oXNuLp!%KbLDENua2%>0$H?D+hvI!K|#ze(xbrTIM)8j@`=?S zh^dC+h&-aJ$X!vHf2`$m_Yl_yr~ORpxbgQLqsGygA+efV)lD$T!7PtSd(x^UFUoLo*vN9+`!P~jxM#Ff3{)&W9g-?pxg~Wclhomy>Tugcy7A1}cX5Zw4p zaaVT7%aLklfRq%J?b%}nxAun5L>O%HXmrv3fQM%veEHGxc!B_ooOCJ7&ZT%wxa1ph zDmI=A9{m<gIn z(QIGzaYS*43o>hMlpBQ_hiu(T>w{;Cx1m|v$j^%gDw(`FUoglLQlGC`7qjwtk!flC z9nC?lf0-TE##TrUN4|1Qu@<<-%Oafm#iJxZM^3sLYb$P*e znikG4d@ju&O8=!_(%K!-5QNhUru(hU}9 zNENtS#y>G26vQ=y&CL)Mz&&N+h4i^yz#*K3-@txs`QZlez^i1opWiCK(@(U8F;XFn z&gHeAGuL3wkEhZ%76qN7$ugJv?eKDWp^p(v9#uG%`r}>L_Q_*JZ%wmii9A_vD}R-* ze`>teh7$&c9>Pt>k?QTwhe_Lh>wjW9tw5r3X;{cK`dM!MB%28T3VRTTGP2sBde8kl zsxTFs3crZqkZR)VgLtVf$+Q`id+5F>dk?cF@vG}LHQRK63mLg4h?DY44R0F!k3uq= zpXX`05f?FJYp(r74G6o%axajssew1FHg_EX>}1mKc}J4$kK8B^$nxz;~3S;x_*ZV~(I=e_4L4dxIRi5_RUb2KnGdJe>2h*F~LGqey0qr`T z`5)vY8BL;@cfj*#!36`w&~^x0bctoX?zDk_%=j2or zRtas{9hhil*+6&ff{McpGSr{R6^SPFu^4Cm+BPMz#QlubVlzZBWj+s2fYD`%+W8Ue zX^nUY4I18#i$(+J^Wr$=w=CNsFphrxNs|Sr+Ksh|ki+G#I-0VCP?vn*PMnxY6)O&Z z_avCUtt(@Y7sYLpPoz8%Uqey%mdBN)0?e7yIJLZB4Fu+9EK~{9f>-HAX-`M)W9|DD zR4q09hPZV$_~N>^lVERs^LRzF7zkQhB`kBxo)y?lzy?&sVlJ8yMKq2L4`r5wpbC_3kdRd_Bvo`t+{X$>lUMJ6Z-IJo z0C;Q{bPy|k@0Q$Z4?F#%Eg_iQ_<*k4<2*GU&M-$Q+8N}EAwgb*RJWy@sv=~6Ri186 zJDCR8wtHnM|IsrtRy%PLUs5t-AyJ(M?)E>ES83eE`vm!oGQAI7miS%IGZ7J0!Id54 z^8t^RWtC^>Q>{0tQVxug`{3+ z?l_J!Js_q+olR7+nL+ECSiDBy&X*=nm>r7hxC@~mc?oN?XBm&nh{R|r<)uN~4;qy_ z74Y%M>qsj>r#wd;<0&L6fhI74fuMMb%JtXtJws*^d?At7`is>uHWNQ>foa!LnO=`$ zc6)m6)Yx_LVaiA#iX3Ex4kEWgYsj-7o3u!=2 zQiycFo(7Gd{nPuwqBP;S03Cc1u20<92quk0;r29I4Fw$wdJCk?rWLP~M=J$aB2Ti{ z2p>mQ1gJbQcWBlNwgQ3QHJ8w@0u=&qiGzzTxssBtlbxRJr&oN(+=? z`~*sCYptV!78JR!e-#b=#Ny+`9}mjdcf?Pl_#!7$U_*X-df`jwJM=XL8 z9&b}(8UDNlugOeUO(yXw%Uu{srIVmiM(<3ZV#~Lx0#+S$ZVHUoTF8-k8PEKtij|!9 zAkxV)@u5~fc!zsFtfLWVC`^mJSWfm9EqeH2(vmKx`c(5*e`xEzVuot85MS;=S;n98 z25Y>$%f5w}+o9al7y9Gm>)t;7etM$&<0n4&QvEPGbfql~hZTT3q$~W=qxI&QlF>%h z3XCJH8CSyUah&c47l`?sX|*hy*T4(l4x7mMKzOIGCmkA3B6 zQGF87-pmKPWaet<>baztsbhI@l)@%f8{Z|x)W!wVHJs^CQD{Vxg-kt|2+O_&Q=b`g z!UxzP{?f2UMXem)8Y;0kCPx<2>Gd(GO( z_F`4=)ZhjzOTLzBi#}rIeV|Ev1&-!MXmr^6uehmCoo=KC98%W=l+mXzUTft4@5+v%Q1yw-z9L%X~mfQw)whu2)&#YcJy4G>MURl}2XnC6nR=-#>x^J-G>SW6UGy(dQ@205n zXF~Z3AS4f4b79Fhfo%jv%mKw0z$X=gqD<^H>C;KwsK^EeuSL0 zvahvD!*hqv`pMq*v#aj>sJ~w_jJnl7e|+6myz{?ZtzSxYfc($H*HtEyv!ahGYy9ZN;y;dF40?Yrm*3abxf#OLK0Z6Ser=CkQ~0ee z@NcdX11hxE4i8^FPL&n|n0)VOef;{ZP3FPtke!vU%vNX?S|7c^LX0!tAv8(@fZEj(Yhp!qR|MvZeLODCShp!yW<0s!9?RxB@ z5gxn7nq{qphi3(Dyd0Nu7F9^rk4hZ%*bt%ii+B?K-ySXh!&m$5(yyT5!-L=)HVBlDo#LV`>T;#e*E*9L-5_hXZIZBA)Tr%JapaPAJ<=3 zqG%=h?&0+y|2A8F>|NKLo4gs;IP_;8D`-sb$4Y+V+EHJ#5vMMIPeH{2DKb!ZRD4=A z?)m=Zjow(-eVm$Uq+W6t$3zyQ|Ao@p;~Y(I+-=_`)d78%1GfSg0h5;;w*pCjg(KlS z@3-DJI#l$YaKS}CJU@M$_T_bp3$g(Pf9q)#`^EIBT)_4NOX@y{=dJMni$9y9UtXU& z5P;Ax&kw02q9BGL47^HMP)M!aGdDSeZ_sho`+|x=1B>irHI1~}RXf!{w!SC9j%$|u za7#}m=A=PsZR$bfDRvkeN;ZLQm&8D5C`>^9Omfa?H_;KVgyu<&7)fB4NYu;tA=H*t z=mOy)BqhCF$jNh+G9CFg5-vZsl zB3W;YCCA+~(O(na%fOg~u{z5HD~PV(=jRt%daj@s%5Nqk^UK3>pt}mHRZ_%U`~`pj%Jr-M?_Oxe-M1` zLK3QCU*tyZ-D?OW%aUFUIhdF`$~3yYiOlBy`U zs4j=B`J36_Di0w{dtmFk~O)&!BBN!^ztHWz@p zQa+US{P9oq=NQ!uHp(e@kp-GEy~jx@uF{}ezgbE+YX^5G-`)BoxJ^v(nqowW!SE{Y z5Mu7fAuo!#SVEm;#fUw;1R10o^ND{y(63|GZorgT z$^;9*o}M{A=>;RZXPe;L0!%*B77ypnmP>&&b{*}IXcC#m{^JCO(ybJb zZ57ivSAL{7J{u}=9U;6u^OZiMo-J>6A7o$q>_>mCdvi7)C-H4;Bd(R%j+BA_fH<_u zB}W$u6d?v>WTH2L7ME>`kB5I+Y&+Z8L0>^#oz<7Q2Wvy31aNV;D(YiIpUe4eLoTN9 z9TC|Dd@N&T+eGi};-Zotq(CsOQ`UpRHeyEt@?u4{@({9jB!1POZKf=F$3fO*+T*at z2HoZ7bIhT{&0gH)!Vkt(Z9;$S#;=3x@Ds=7*3kX!`O8=*C3(K2+Lsxxqf^0|!*6|h zet-Y{szMBAAF*Tz& zve8oeLqI&HDsy?d)^>VfCFxTe9f4IXTi^BS#MP(SmfoT?S#EuWVc zy#h4>UYAY10#y|`Td}PWbEUTz?Pb?zVUH=3hAr_2m$$tFDFMfq;k^PkD)|KRSEZ=T z)84@i^eL9iZeM>hjW`un)ne1PUx5ai1E+xl#!ZN=E&P?2LcRheIhQZN`eRT&F~3a! zGN<^EX^22zA18-;YPd|tpqBIz$)CM!ivOpPklEH>m#}+N?zqIQDGf7w+gF#Mz5*x# z7njMt0x*BIkX>iZIUCBf#v2vQ@mSZXS7xo_hnio0(#>*ye|f4|#Ar5|30nKN?0G!$ zW3mK$$Tpm2zizYz_9TTaFtoHgZWank%$A87L8yP~PQ0<$TvEzG9EFA_*1jUQRK#wUFcbFYQo@Clb*Z3=^ zYuZ7D=kGbxTkw<(6vQ_5@OEZZhab&KH)UzB_U5GOk#hI-geTu1hwiWt{LDI(J?0|*b2l)gYC1sp#BZjEh z=OKZTWiax6#;W^4YL^7jZe>Pn1GKG&5Vxu|@R{hf{Ht;+^`Qg@5lFGinA;1KZF^50 zsM&h3OZXcl%H?u7L?*=akYe)0a#2SOh9G~Uy{8;);fu}kLyk0!|RRzg->c_3Az%eU^G0D4cI7$eO29qlhbG*j{6Qesd_D$bUcWTh5+LyQz?J_ zY44~-1jdRXaSS*)n(iZYo5d1YJtsKcrSfu<;Dk|Ju9``QsmpJe+#Kc_Z@;+Vj$FZi zp$;9!Z@);goBtXMUqO1b?r=}~!VE{uG~X}?KOfR&eZwtYJkk`51vwR@_2Ov~qrv>nvqxOD9C?9FeaUt-)~P(o8n8fE&+c49JDowKXXtuw~y1R zMc$dXioKrhsiDEKonQ^yfZxtQD#@*Atr1DxGE`+dPPqk~j1@?Rb#}JZd*e5SY~=A_ zs+C#&4m-8%|E@|%gU_yU$$C%$ZT0#mXbvRiO6{jDa>yRBZ4Gkyy)%EDb5D_t zhYpHH>5hN6*Em19Gf;nR#w#=KT)(!nncA4>WtiRYk}!l3AOV4Ldwdq6{Rvhd*@Ojx zxOw82I%*ta5HTIf2>~J&9}?tni@kS8{FO79U%Ip^u;7Bdlv+EH1j@HPIx0apyD?4% z{F8hvFn~cDi$5n&g9(Wml&ydIWU=k7LyerN@(6O$XQL}Bn)umB>UFfka4s;d;q-^I zl6W}&c}H*}Oc4IOUXjlwgW(g;O_p#l+>9jDMnQEbVKTd`sXqQ`YBM%)$%r+0b&-cr z=f+U)zS*c9xmnz(9y9$$nvYXQN%QB%_glD<{ElofrinNCXF66ysxE&qTreo=Kbe-k zWmze;`=rS}9IZt>4yvuG(u6N$iu-?VqoD;8bJutCHFT&H*GEZd)y=*zz7TVOzffPK zGK2y_T~Cyiuio47^!Y*-sil^hZ!6dn#T|1erJ6-#PEX{wc6!F_WOQ#{`%toGa zUXwjfw_M`!49%NE#LUEbVD;Sd+MtHm%;*Wer?Xx!cmy6?MMGEDs$C5l59GK${H(66 z%)_bIieZ)UAk%i8GQ;g+LC{ZO`B9k7L^=eV&1^z01|tpUEbr_*U(g_y+0y(-i<~UR z#UJARv(0BQZNq<^Q$e&!lq(K!rhG{EVC696+SXrCckh^6==%8ESxm157Kh>c#SB{o z)M0rDD8z%ci8>7>8aJCXW(w9=o9M(9Sg&=}ph0SmjO!h>&@X2PT|;g(D_PsoSl*JO zaz2Hx!X$B3oh?yQ*xBcGLk;bXw0JuU$=%z&HTg|> z${c=p0=$2~#Ee>nq=J(4joZxiLA=~}N0SD?lsS0^9B)`QJ9BblK{R&d>Vkr4`RcOS zRv}U=qu%jKzTuFvgkYP!szBiTX5Kr;nW`x z?~nOnNcJRtE#!WR$)`h-cSy>b?#1hJ{ybsWeo2XTL;Cbu!+pzvV7txYaBXO4gY=M@xru>=nn>`ef z=-X`-_M(@;#sVXMZ!o&Se8bUi9wKm1L1fwI8|s=yjhHdhpZ!ETwVA-@ha0=wLTahUu+d*yRi>r+rWl=;VKe&y5TiYIKrBKPsYH3lFKu3sj z+J4s?N#m#mUH(v}E<#RYB(OBv&6Ijce-;W_=ViKo8?S}3ysSQDjnb6un z>`ZiDBbOU_&R;Lt%L9@)(By%?gnp~FECKX7>O-C(t-S{H$??(mi#EJw|F*u$N3Ys= z5bnMvY)!C#Ln@f_pR2w<8-gs4Tw9sMV&36>**@?K=vt3H5x%OC8#LX7L+3a$Bq-l^ zEB3s^!gMxREh8kYoQu^ zoQ;w13$903$gb9P601Ccwk}QuZdGok*y~{V1*1uSmFnoBR3$MmYj$I9bv9b0U!zkHlFR^j6l*7;!je*HLQ zpfrAd1uY&K5@x$Nz^|_#|JbHAiB=Qf5z&BQE1SR=7c+J#WAt44p3m9GDXrwU>{;Ex ztd=i-j@C|Q7>CO=kEBaz>CDH87KAQ+eKvDj+v~s%wH|%@$KI>>PLvmYE6h68X$V-> z154=aIOwy}>VMUM3*RQ4EO~`)Yc7R?tgTB3(Jvn5H09KmtzR@aL?T|^7i%@eT9q%4 zjaAuKXeUm;ZHt)7HB*gTht;yf+UWk9~;<7oSOhB_$nof zvta-KtgT=(EjZn{KoTM|?njq62K0)+B5**!6{H0G+X;2*Iv#WcN{doTcsNO@91UBq zHve65rO{L|@*3L(GEJ8|=t2ajJWm?ENd(t?5U=%AsH*BMI=oetYRH;wCyNQl_$BCn zLIk%pW`1fD_(K!L-=zK6N*aRAr)^av*5#lIsfCRe%&3V3v-U@hK?${Ae?95oa{lD} zSl`$SZ*J-H`*)}AcuGd4+&QcvThuxnur0A=9g;pS+OS+h_xu=kYJy{DCPoxb@sn;U z4G)t|;KZA~YiaZCvONF(`Gei>@?sW$Q1U1{j}^16lX$eXyl{ieNt2p8kd zbgRFZwKW42zY5bE{u(ct$vpQIE}KDnIE(uCJCv|5nZG3ZqAz)lID(|Sqa}j~u{`=PC2B&3NPw#nX+IQ2;zORrEJNAX^W#I=ysfjJCL8Uu{Oc*t+m})f zmgoE5zYY{KBk#{xCnNka=hy7~l=ZniUmhN&J{Lc-*xPA&K0mmOaQRSQV*v)xvb4^Z zZx4@#Mmt%X$jW#^=A=>HZg>SD&*Y zD~jd(V%p{GtaUG@9Dm%uuyv3o{E&$=S(Q0CDU0!?e(3r#d%1u4)Pq($A9Vr7Dhv)j`{@K)FWJ@1i zow@olT>ez1e5#&5N5I0o)Xh}HqTk}>vJWl0rn;)*w5K^*;{@V`=^)F)ci1I@A~`A zpWja=x8lSP^4S!{&+_g5y9V41pYOk6c_oF|Smkqe zedwaYCst39 z{XgdZuGf<5ND>8~tA0f`Y93}Dv=wW`*9u+CgQ~?_Ep)Zikkq$cE^v_)Q&g5nCYwx3 zBnR`~C)~_GEMg}Qslshwgc1rmxz9fFv6e4)b2Ia=-~9RS+-T?TzWwxzxAW_NUw--v z`=q_I8|<6(fAXF%-Eq2ZmIHEzbHV=q*n8IIHf|*I)%q2PovO9BOi~Y8a+u5QQG7_W zNl8aiRTav97Wo^S}97ANkE2pZ|kOcE9ExwyU+zMss03J{oBe z$0BAt9If=1)zUaoGkL?kKs;-m=S+GW<@Fu#e;{BBmFl}&$@Y=P=-rd4V4;{Z8Tvsw z5^O9XQ}INg=EW_>-mnvZbwn~%BX*7i5dSVNixoh4!sb&EvM3D#q&-fP6ih#jMm&M3 z$c>?CCCCl~?q3EnPQ>UIlQ4;=fWi~$!#)-)R7(y=Y^*fWvix-gAF-O6%|w{QfD=n# zf6U7%7i1I{eHD()BtJj7M5>S_2s1R!k-=OTGcH3m36#f!C7Fx_Zg(z0uAxd;qEdfq zC2Z+#h$S|JtKlMiHCcD@a^>Gg($C*fLse3 zm{{Mn+0!oTHae$Y8uwf83vsjcDnF5ue@OgNIFaFX$x}&O9F^{#!%r_Gg*>+Y`4V{g zelT|DO1JVKSRoNUaE2Q<0xTwe==rp zB4SA<_pc*3EpKtpg5ORt8GBLMODDTjcjIEH^ym+9wHaqFhkIAzFXV8uwXNIz7n8}> z)_?y&9&gRt#cZs>M$y9S_0t|}${-Qe4^_e3?)Qu6)3wbDWtb>4`yOMz&r%I#m=Z_m z&0yke#efD|2Sc1m<8%x=W5bShe@A_^(^&Y%OJ(a=j~jDv86}3^`uNSI z7XMPr@s^T}yvL-^YA5bJlBEafDwqA|In5RL) zc3#vR3J>{--9OV&{HdP8=_>wAv1HET=NI{8o9s1e{nqIT+hc{*hOzBae_hW}vp&$W z|J^WPE0LGu=&75-YPNCII$3U_44bIJk6)_&1~7kG``qY4PH(cC}f2XPHEn9m*H6{62 zR+*2a4usx3Ro`L4aie|4dgo_nr`@d4cGf-p1p9<7_5?)J4g^)GN#I|ZPyJYGLdQ@i zRoEANp|bO1(flvl%LfK%8arZCfs!g^pVE-+9uU}tX$L?@VyfB3Nfe17lS{hO`l&~tp)Kl$0pDGcGiVgA!|KW}n!CH8xX zm4M*z?eHCbe;el1pF^%>zYN)bmCU!nfDP>6bI6s3rQe68!SFr)G%Vql!Eo?oYOBq{ z)?ll{QvQqiGGuGNW&>*?xGRk{*$vsdp^+F8Ev=0(6l#uQ1)O8yH#=pM9HQp3Ge50H z1|?>=&IZpc#m;r`mFwF`020;2Qs)O$!q(y);oe zuCN}+L_;9rdW6?Gh5J~O36vi3RB4eZoG_OF7$j{=X~#SrW@&`d5Aae3c;YgQ6A;oY z52@_!xd-7cW%%f${BBKojb_f_+(+U{1S-NC29UkPE-C7zDP#fbN@NNc8|7m<4MS9r ze^||gJtQxUK@UJZW6;F7XqISM+FmMyWYsgBXo$Td?2u)Fo?xKnI6+}dqsF`G$X6U-+Co-21@ zuWEsSR2ry(?k{~wgU6<0fr$pWoG0R%MIZv9 zL*tv`G-hCsQ2<*-&6>fHFK*#kPE8FSBM1yT05seUnl=OjW8o~-0Ss!ZbR7NR*qmLY zRibZMfe_XxAGCiqw?z5Yj&%Sf``T4g_di`pYpOXp^YwGJ?Yf-mm1^jjp+*K*^gpl+8DnwZ)b5se&hD ztu+{u@x=(Qm;pReeu}CARKb9dk8Yz{?=*@t>!hmZ{nJA2^rYE3I`5j@e;~wM*=F8h zjr4m6n>p{cmSDY%_oZ8gg}lX6{j%K+Ua}Zd#h^9gA%r`IRk)m_nrF8^;FD8(GMnN` zrV0dwadIwWbKwhO87W}ZT%G6AyXQC`@i7YWJ$~{-MInL?m`4A}X}{59P`AK0)8#an z&sxVUbfOYr?xiZs{Jzb8e@15uVSNOG43*6dOxp2kXAK5YSfvi=LC|i%MZvlF=*Y~3 zU6``Kq*G#NcthW9{O38ys|UYV>vaVD zihc6@rG2;2Y;?PM7w@0q!1`-^?~v;#sK~^!{yi9F`A`+8 zt&@zG&l0k*X5*9ZgE9DvJid7Xxt<9HsYMk_0 z56h3{1l`0XI8bzU z2+8klO%1{# zL3a1OOnTODD$qxojhMS`aO0Se@rg+*twYx-YDV^`2q^xVf30KOA4Uy0>0p)dfmP0s zsClu1N{PfV#VX`g54c2OBcizGXu=uw3Q{-33N7P^!4J>p^CEI#BRBeER;aSq_K#2w zRq~pdwl+IzeF5hNrdeUf{r(x|%4~Ogo1K1UZ##mU{1p?{2$(Q=s>yB5{dz5sz}LG+ zul;d55R>?|e<=-buZl6=6~i zF)FkckJ&p!Hfz}V(}KCMuCz3gvH1b=RpHCA^v%Jt>|jgS`idWCYmfN=ofBAVj!&&3 zlU1AY5|8?JT?<0RyDu&ARdKGx`E}rn@v~(v8S$)!f4KP2EWWyR{KwYvJ%V|K{q%K> z?Cr(AeLD!Il)d(Cqss(K!Vcq_(4VnJX8pv&Jdor#)d?DW{t8a4%KaeYA}?$1lR^M0$BAR6O}YD z4M*bo0Whd6h2f{6NF+(14h}2%g@TUjg)c&*L4bQ1^Qjggg$l57d`R=rf`g%8@>nL0 zsWNix&vY^!;6P3=#irrC)Pv$DADcgC~zdMl_G#<=9MTaJsCRo&^zl1 ze{o4cV_;o!QoE9b`%`LtD24@gRAZO+AA%pOE2U`}92!pVBf>U{zfn4t4V0@Nd&113JO)9j>x{6 z6{8@9w1fwXMEaD*)l?+uvry5Ze~YMJ})T*d+)Xz{+3U@ZwmA z5k^KAS}|4=m11Xv=H+Gq@y;DJYg)uUoE`~ILx1Y9fZlPEL=-U9Ql+GO~7Wvev`J z4Sj5N(-o{j=m{Mp43b;>Ely8PX8ciz2~Ql=OkFu_zpmzCpg1_(3+3Wk^N9+_0TtQ7 zA}DjK_XL&>6tv$P*j5>Vf6(CZqTZ%}9)t)eNvSX)YL4S>)N0rj-lo9*HD%llsgE@G zJW^bZ4%8_F)|1hcw9yRbLIqbi75YHc&%@$`r+Hk&~jUQ$NfR1Wvr zgc3H5&{fb<(JD;N_=JiK%>`JDvv<{8XhE}Z!~=f4pv8J5LP@4_M?%ls)&x>B&s1pg ziAmFFFkQwU$qD!1e`v_b2&XqzkcCNs7rcThkT|MPokCSuID(|OMPnso!{A8$T?PSF zV>tyDF%Uz z>9#In=%WVJe=;}VP$UC(BEzqgo#$9RK}t+!C|@KnJjmZdQpizk@4=|`v?N*SwjJV( zFL_9|&|5JI%h9&{#AhO=uNOXfT8-128wxDK&=CPYiKNCUfdDX}^yrhk6iyfR>9l6j zLC|R@8l+aFC;z1ML{NhJ1ZAPa6@6MC$2*1kke*xY;iv_;>9I!e*rXfY~S>4Q3 zOt003XfWlW3qeC!LIH(vHQf!EPT$(%TGFTA9+N!}@FH|_0>JrH#x8-F_oiA1i&dWbU5D(V^h!$~&+eCyOonD)2rNcvT4fJ-y%L^X3v5*f3$F1I@uZBUhg54o~b)rSlHQ~3QBvI@CS?mV>ZU9;oP~=ne(!(ePY*`q$E4Z z^}!AS3+7Ql+ZTh>>)?4xW44aj}2B&Q194xfaiJpr&l=cOQ@NQ#2*%q+2rFLuv| z^pSP=SJN9nOhLGPNW`3ndz0Q-kF6uvH&ulFcm@1Yh&r`Kw@ zE6Gl*9hG{gmuE>r|1W#j+T6CWWItd33RZ5_Zthmd0N@MEev)n3R<8AkC|esBt5O5Z zfP@KP5IjUtcXxmLcFzD5DXAN_<0N-$e>asxmiu7dGu=Ip(>F16(W1Fb3eD5J@1RCn zy@Cn8?sF5cE*Tr>OyCY#W2`Un?F<9t4|&0(C}4_HQW&js+T}X~Gl3k(XE12VqZe3- zkFtu9hIo!eh+&aG2CtxkHaI(mR%bgA(t5kSJ{V_3zR zCVWgDwE*NM4oII3#2-#5EAkBNsMji+cWgtR#dwTER^jBuaZz4eQtIX`UdPPw6o|=l zw6i#cj61prFuH_BtmyH=c#~)JChFM*Q|g-5j+$=CbFf)+vYh8pgje4eJ$r9}tnvccDBRrU=C;ElirTGL9zrC58WXh1~TTEom12V~9A^=1g#`K29g~-7$ zc%{i{cOh4e}}pz>jq+O z!>&0PVvmI`;#6nM+4Du*KkWeA7J~A0F3eL?u8N;>QRD(|zmr*F5NrY&zp-xmG|~HmB#$}3Ee*E+#Esi$d5yA=MjB}e?daJ7;{`;edeMOa(x8 z9p{JBT^jq0$F!K|9xl8RFV1MNT`l2d|JB(_C#3{bGCr2G1-oo0z+M@`XXJSe38XE+6 z-iLsWBSD0K=}+F;nI~KJHq|^8Mb)vs&rh$IxseI-CO^oSw=MHbYkKw2VJs3S(RbNqhEqGMBCFt>4xI7ez0HUWd62I|$yZlo5%Fd>na z9N^A$N-nflt2zzHJ)A2%Q@z><<}Kk>T#;RPrA0;UeO-Y|w`H6Jypp5REm|HVLS-^G zc)m=^*2C`p&7R=;o-*;S3tbjc?WAjZcYWOW)b(|;Kol`WZj9ao!}+;P9! z!gy2U{@}aJoS@KYzsn=~x!AkQx7)$BC^FhON64bbW8RCfuBk41FYtO|CaF2~{<%5d z_(&fqynk^*NmLQPKpU2|q~FI9IRNLZdGJ04%U_arbKdJ%9{)^T3kE4=cD>h0RghER zS|mws7~j4hl7IJd??G=~Qjnwh(cAb&_343d{k&^W|5^niAy)>FBI_0{UG#W4`{EQ| z_2?v_PuENaoe=i1)b;W6mq+jEkB_qz(#(;cV+p!3+|@plLPavO* zns&eJscQ$KTnTFZL#gp5`PT{!>?gdn!scY0y>1vQ?J#T+!P&O9NjebME5QTkW5#PW zKc-ewlPo8rvs{Uae$;ur(u26;rDO(SH?5kEvGrz$uUq;OQ2JYi|?d<+EsT zzKF8x$WWra*7`|apKI0oJ4U5MRx9u_$}gZJyC?N|eSZFBtUf}<^6+x3v)_D268FRV zmgJ7W2%R9+vLwXzsU(#FN?~caIk3{s)*=tH_X<(@ITX7$&bbOnm@3ZeeAArlG zE^*70C3` z3+k$O&r*#v=U%V!6awgiP@;4g#bxie?Iqatv<;H@Wj&45 zaC=LHcc9qsnb!!!a}mp$lD!M!{T1*)_$ooZI#I}rLf>u)P%M6Fick;;yf(e)9lT2S z4o8%}g$@b{@#W-~CJw;m1753#Ffu2L9l!kErDPXZMx#E|r3aug!hcL`K|syT z2-rMl+WcK!#i=qbA?KOr~9OL+jXv+eVT+q3`r%d@|H)||t!ef;9Q zjm3zZ+bzF&%eZZVslK~>`$^Q>`;+FW%pTHiKM8xlx4lPrjuf2@&-S1pv&BFHnQBP+ zk;vLmmm{g|Cvr=xR@idY4u6CUMY%H4gMU7o`S~*ofI?(g-q`IW6N(@M^Td|t4=O;Q z&|G;?gzuXoe0~AGtO>wieBAs`^+ANR^s6dOFzQfVS1rSROZ@!>*{AK}nx{(ex!EJ# ztO`YKqn?Dw_!MWQd7p}kD#gcImU4NEH0l@)*D!t?a1Nj(zH0+aG=K3;Qq}P9BO!NQ zXmHDrPP`2Y(_3M5rU&fvBH4&-*|NTCW3}O2$z*H%n20=s!-(dV;MtJAOAWc=;$sLi zE#H3+x2lwhO@Qr&q3BFRpK9+D40{n`X3r{XahX6WHjE17pl(#w zi>mx#c1-Z|s_m5{d^4dV_UA*Sc9z;k) z_rkuZf{x<9Gz8(Qw4qL}cOi7HRFPs3feL%W#CEFio)pHZGLcM7fF0~F>_Uty1@rA! zyujNlt-pXV>1|XmlirIRt@+O_$NHlZm%TR_;J`+ZGUHxtc7N3DuaLO>RKY-&&@|AY zAhW-sd00}+>ZP^{WV3>b2sFG`-o(2pZ3qQSbH}|dcbw}_3=|U+rUsyBgCyZj zQE&4URS%5^}JYNRN)u$J!+OCP~BTZ9Z&EV5fhD!Q@RsCcI7CEGGEWQ}JPK z#mzc_bFk8NxPP*Y>rH5g{RS#c!q1N}=H<`57e`d zr7_qYCcKOJ(A4@-|6p~cszjWaxL0{1>@tX7zz|zu=P5(#hrz#aiGuNLk`^{3_l_SQ zmDaufF)M3XDjPUO8&dr^%QP|%Hi5bfR+z_@4TF7QB!4D#49!xCNP%W6aXmFld&`vH zZ$|!JQ$WGY(r4b!HjzN?qkXZ>_*EJ3cOJ|28?Yc7;`W#4r$;Aeeur&pD@$g{PMAPTH$A;gtHe^X_kv2mHV;d6n!$xU?=|LIi$LA(! z7#4r7Qju7z{##VjHZ+x0F-EDNA6d3xc>dZuJ%718I>Cczs9MvwB^nr3uOnMR&k)+L zv9-^Qa~IN3!>37bS9Tln81>4eJo+mGH`u~2JMh`~LAF?SE z?PMDTbIs;{c6{}_H!lXGEbE{V{FeFhnVG^!@?UG{OkFI$ym`$j4leRIZ%Tzz>p;I4 ztZCA{jUF8TCU{j7Y1*Fs7!C8W#+Z8&4}X=+@38cI^WXpWAc1dieF7DuFy7iyH=$om z{9+q_Dv4n_!*}+RZ~Ol__}e#4xU3|Bq}T0&U_1a^y<-fGyisaB=ovkvO?1DVr_s1k zhk?A?h^kNcSdheHL&xI!`}U4Cbx@-exH0l5oMUCn5m#+sW9$7rh(vCE9gG!a;G?Ev;pYD3Df2`> z+L-z4E-|PfiduyOj5%8HZ~dy1NZnZGZO>ahfzi3hiIShmi*{shzWQzg@F$Y5v(8H9NOa z$p>}&q`jE|y*Wd9`hWD^%>Qo;{GZ(z_@u;eclEIci_6GStFUm=eqv(n;sHjjVQYM# zGn!+FdqekN{^DjGMmI%84GHaspxjNoJyREoC~kBN6SrQK8ggaDQjEcX;u|ai+*xl$4A8w``9< zpi)-4;4w?h%j1fdgR%}q$``~HIXIszWC-Foi!>?EdAaX9&SFsAKaqY2n7Q86afi+< z@e1!8j5$P~sD)qFnS##f}7kHoOZs*A?60uHyz^F@U|%fr=8b zWb5IAQ4z!f(z)H<(WpX%p~l>pqmM zT-98uydfwrHcxLDu0#i7U8h|T8_Ku?l2QNZUh@qPCDsjqItx<>Ll_%qjyi~elZHGhNzXNyI2wXB^jA!Kt$PUuD7 zsE&TQ0-s{h59+GY8GqkQs|`N_KTfA3XD!XBFZZ}MAL7}dmIK2AZHBiIKEsBVq*kJl6E3+FMq|Zw#3;^qF@HFbV6x?G7HgHqA=_M|wM7(q zk7n%=X3@_RvBgC`r`AkJs1uUsXdN47rBlSDgCC`66c9-hb2 z032#MOIYVMBXwA1yesa#t@y- z)LZnsbm4Ro6i9DmeNjfiPN!f+gh?GRwVMjB$bV|Jb*s%x6dW*Oz0oP2*n)O)U9zXvL1!VG81)`qu-kCN&dTYwR@?-i-U)Wa_JqJIz*Z!G;${6C)24KxzTJCD7WM5sqX}V=L=V=kqX8^6b*+V{O-BFm;&{GsnT{$%J*Cu+)nJqzU2kA{%hM2uW-I+G4GnIn8(Mt|x_nu9Cv&zpvYrS`Tj(NBN4e`7)H@77)?VFOu!}N zzYb=jXflJcPbU5-91BQFcq)SLlrwaLfd4uK%P5!%cN}<=(PTF9qe&qBa58kp{$wUQ zS}h!Vjx$lA4_S_s16?qI@hJl@7=JtNFzWbPy3t64fg^^~;mC93EO0{j=|LAts1&=k z2wxXE=4Y|UFd6{8{0LD5HM=(n2%U)lJz5S_!lI4~aa2%{AP`xhq-1pmtfo>$D{kw_ zK$abdWnI)AkVMoOJ|OKVPKCCRjeX6wbbxP371z{(zG1Bm1HcP8_`)^|d4DLhH&`ag z79$C0)>3P+V8F7aE9<4;9Sspw;AV96UtQ{gAGW~;G&Jw8v-RFRu zXj0wgMb%MtC~ZP*I19PbDRe{-{|{x?x+JZQET5C3X>yn&Y?s6V4xv)5m0JjhnDVX83XaEq6CQz!f+4xyAbPu% zNW$8Ji+?C0&bM$;9=xM!Uaah4Xfy&NsVd&Fh?s9*@^&uOUMi9+pIN{Mubq>y# zZ^|)j36pyM;#2WExPKxHMK_4I{OgMpUU^bQds{R$G<7xNMeb+ZXltR0Sc;rHY!*=LI76(908)0) zT+5Tn8HpBYHDs;kPLvG~k6|r!6+)nI>0qaJSw(a9<4l`4OJM4MJFh9Dnn< z@rRaE|Bvj6OV}2x7&7x56Ex#c6gfOclx=oY^O)zgzbu5Ry4J8=mjRg5coPRxEUjdDAM^_e;6vrX3HPMLe1i|bcH4c;=v-;pO zf3+go-y=Rt+){`@=B<2aU#tKHxQ18nq$OA@k6wmI?*7+mD77+iFuX9 zGE8klK_!`qTRp;;5_?1%&t2fl;SD=Yj4}(RiNCd+B5J%X8$7z?B_7v!zxtwahfOeW zB!D;%pYl0s%8O#y2hqzfrhk*G$|w=i|3Z$DYR!VKUC--gq;^ZCA6ZbXavr% zmBYTqS=+~nu-sCOi+{6GMf9{5M*QfAIdIw03Kruoafg$FO3RwAdnqWKh;W!=W@gOp zKE+VXRJcniW~A-Quuf4H&X< zJ}B3wP4Si;j{iH)xpEWHjW~1;Z#`IlO*8od=`IKG&47H@`4$CCat<=2MWqW?o`?_c;Bv z$z>?h@~*&;bDLbrX6s}n-g;0pbgJnIWUbu|-ao0L|BG#3ZBZ&BMa;@SgDY=N)-A>! zsjOyx@4;2f^4XQebV!W59s#f$+DD&1BL=@{e(`!$oPT*hmYVztm3u>x2}54RnFJ=w z7rBiN?5N*(UGXKzGggMV`g`T>unbCp`M<>8jMkqc4s!yTj|au)upC}^L>9aXj_LsX zI|b`MJ9obSeD1sp?5pHvgxTVfzoHPErU0(3UYo#%-*^m6kdNRTvO|bDxvtggrJ_>Y zT|dXJ#ebzp(UvbP3l@N)a{1fl;4gpYh%=KDwN=E@M*vecPG!nX$>b1wn(5u1n|8S|d}1DwisL7@ zLW)BEI^Of)Jm+x$2YVA{IgwMz-HgVMl;f0nu53cTURnr2Ad}zYTo52*a{$}zD1*UY zTz}5_>cp%}o#KH^a)d-UnYm^=<)WOoVs;lc2a1|#CS~h=RE}2Z-J}R5U~*~v+;fv! z=J0AJ#q}Vd`BxC6$Xv@MF}vLS7!j;7?d?{~r=y0qfaL1ohIc}7)M{h#sASqV9^J^b zQV1I&n=Xp>6WPs_J1DLQ&YU9p>p=ZN0)KdN0Q`e$$WKta7=s(Cm(N@AN>Mh!qt2oh zrq7EA)?)gat%;;5<5Q>H{5f{$_5jX@*f>c2^D{_p)#c>p-2_}n)r}Rq};`cSv7bu5C7oSM~VB0+M6&KE-f8} z509J4nlLD3VJc3`7(@GoA#HYySAV`WV{ywWn0demo@pPqP=diUt1(5 zt}axA5nYXyhf4f;M9j#Cm&&0TTxv`q^5udQrAk&avX~BFTfZVZr8?V5%t)Z!82vr3 za`=O5ifAaY7H$Kp?vMukni@|Y;w)Qmy? zmgic~?#)_hIBXcvzwjFT?|*SN9sd zUgE}+z4z$}w}ot09*h1D96N10s6Qd@q7t!+Y7Ljs3n|LhGORdR!)_vxl#*#?PiBFJ zLtRp0=pV*3$-vklqTM*tG!1|%-xtL`hlzTf1Y48u9bdQqUjnmFet%bHgQ$IxJ6h~q zR@)UgG20`(Rc_{CeWGi36U~teg1e2~lOFVkLG5S-5=>q>)9vBJmW^Vv4ZH*@s(o7d zxjRy2nMw4B{rE6UygW@G;8CDICnu}40)#})0Hl?704Dgy$Hk(CwgQz?SMNm*VpZ(T z(~8t;eYfc1Jnc3a6n~zjd%vQzn#2tSRe}yR!zZd{t)hhz? zby@%%h=uCAK*Vbq-Ob&p@&RB@S7j)2xyhg91XphKDSzRhVcJ0KcLdZ$`8O{X)PQQy zhX$+6g%@BqUVf^f5TjN?4%WoGdGyC8%Z$wg_^>3OTpug z0}+S6ZFWa03|W^v7Ea8ypiI@436~o@$cZmsk;6qZjRaC=QBmY8DwFk;uh4*qiX2@g zX+MsJ=6^rDWzcs-hS(?ZzF9EW#56R6B=kCZ$fJFw1`w)&?T#a8T9g*>1a(Y6k1xKU*zU`Y4wYgFmX(IPNWtFPBr z7$Vk%Zd_`esAbv0!2r{`?8sAD1ofabYOyZ$CP%o}_}V7W2p=M;CvMk)n~c&Nls_n_ z^nX~8ddq%Nrl_}`)+htW!i}~jw57V8rfgLH&v&Dfs8PCrMix`3CA74W$4Du7fK;~;h_kbo zO_8|mE%*stcKds;YznbU4I^X#Bhn#xjW}0dBObtYmeYo?okTB~ zk?~-b>d$2G^7|jO_MRXN@`cOf9)HR&msr)2b3PZEa6+aJK@->L>NfV8^St4jFi^Ph z4SEO}Wy~#nD?pg|$}42*N|8JMg&chA9=PLMz$2e)NzZO^ck0k`&)F}&AQ;Au;}cnq zfnO3&5U$g-&F)Em5=6aomVh1p$dplN2g-l6L#veEjfqBI>l_o&_#K}hq#mTTwdy11{zyNGu8-1YMhP1E zxzC%})ofd$Rc>`cbu$vqzkf=bpW9mUvz6jr)nZwg_P_KsPM@H^6GWYhYc;#NnxRIQ zKfq3plcukV(H;M#boZ*DL#|L%TwX$)lKQQW9rylwFl^V+Ke&G6#fAxSKdR`QqdqR5 z;JWZL0*2MW=wWXTE**GV4M{dwl;uk-{*S?asm6x9AHRrv>RIP{`G5O!1T{Hr;ANch zanK1?rfl`R9L51d<~=VaZ~!y7GCMzRN||K=gs3cIIre70pF*B;>dpEor$JPj+Zbnu z&|Qb}yZk$zwbm6qY0vLM5-c=;!g+b#?tC@?g7-T_TC1-Cb1Q1Zw#QSunm$d)BjvK% zPgg#HlFp#_kc0Dt?8X+nUw*2+EowP{E!W;X>^>%@v>Hg#J{CX{hoeDANmNwv)Sc zPT)Tut)cZe1c9K=gPl%5jxaHKD;Rp_4vsqsMpV@G$B#*_=6}G>S|uRsrbLAy1i}YO zO0$&%l}Us6`s$a_D{d`8iQ2{|T>d`A$`)6qbBf5S)#`fzI~#6h3j`@!=a-)V+GL+Q zJ_YiZlJ`-IhKj1EsVw#DjyvcgxOFQu4ZLQLT(>Yi{y@{g7mR;AfS(ZYLHkO!S9$QJ z7y_DQp(sBBsxcm}Cn>T`K5kdI47k}&PJ zWS87U_EXDEB!E(>AE1jUSR69?VO(88F;#6VA*ZG|W&K)_T9G?F+hoz`{TXbuR=%%) z8q3v=2vwQ;OTeRDylytcj-A}t#hRbID>h*4A9nM#bbrfNTNJX^(QVVr`!88h!3NR2 zCnS(^F)hev@KYQ(ORT}<8%*F7FjVv(*S3wn2V5YihT3=AFR`k7*qSy<8Rf-T@rC2Kcd4QJNa2v4YzCV^EJj(-vD}PeD6;g8SRyc{I_Myxwf?B zq>wM*yEvwViOPCOoGx2^wS%W-a*}(`Ad-~w(_~;EgzCd!u&>A@3*wOzR!n(*0!VI<^FZ zCdi>>M4tXu*(uv+6ZsI}j1z04h26Sj($cckkv#RJpru&}~FE zfdU(n>qc5m)oufl-^m;L0j!%JKRmw$#O^5n%h{JE%ZX%5uPDoOB~__vFZvTe0DqAT zffzEAT-jT|x3KT{3G!;F3O}grnY#Pgbw~(eIHUVL7_qrc&JycwyWYkON{hT02h%2o zzqUGgHyvrQB$jPlbqqC`1;g^4ftF0}ZA`3LWNB{T2n*T{DxdA`&kyqL7@2voeRKQ% z;p-m=*t`P8SnUlFI&@~TCE}kJqP;nFh1OJ zrV?mdK@u@>Qba)|hUHp?-O^GpZu`Rp;@F(MYzO%>8oK*C?_k(=6vVtyLw|ciWil48 z41_Hh`y(6@kQlyMg`-~=)5nqhWC)c&tv+kPRsn4VFXNA`?p>LdKmF(?kZmQQwK9kf zi^9@dz5R3c-Zo#8fRZdQ$9xxYF@~wLYijUVedJjaU53dXnFn^|<-ucv&o5XWX0pS$sbj0&u1LVK9t-E6`vvnEsJg}`JJ?M zomVQ-_S<3dWvQJ2U8a6pY+zp=$L7I~ksm%_x8BX*F}3tCN~jjfDhMxL&s-gNiKg1S z+nXp}`L^nuqWjj57k`}TF#*0*IZv`20TT0ctb9MkXCy&MAcyMDfpc=J4!3t*F&vEhr)MQYOO8Z(@v2svekMK;s-hm~6LP)S6D)XFI&qQ0>OdW_y9psz`Hidb3X?XaT;>?5 z`Bj1-%J;9PzbZet;;k7Ss3nM=qblK8Q6E5;O6*hfh6q_rtO^mJjWyW`pmwItlAuto zcR?m98+8(pNysOdVXNz&_ivXVI!0+p@T5ctjA58clz#<7X~ix>tbSnFr$4*^ah8(< z_=B&HzVnhO@jiZdqun1R7?I1CckKcc#8*3v)$a_`*%-<%S1@z*fL=E_Y_}0AWhcMy`kcYHnW2?p)|xauSvcKq-CfGKhJZ|tf2o`9YH((k~04)<4NKKJ-5(tb?C zH#%Ue;D1yl!$cn3M;y0Z_f8ce5`gA(zi`W(-F$8|e%O8ufdBzJ2=e8AQI&B6MY`sXqG5$jloQ zE3(Hrt>FWk4X^(w-PTtiGKy6PGFr=MzIk`kG=FZEy`prx1GDS`nt~>aDvCGN4?^+y z+eZvQD6@lAl#6}=`fP=Ko~ec89k(Y`((s_ufY z{vgdlR$Miv4kz*?F9?}ZF9=y&mCTIw4*DnhG%~E{Pv)cN-=iAjUUGUAOEk?nfn7su zw0|rMs@F6FkuEB=%moV09`%6CF8~8KI>H#srFb{7i;Tt&2<5zC2#{2Z5i}3lW|?== zfUJD6(U3@TxGq6#bI2WP33cAq1bQ39=|qo6!|e(m*O`Y{{9K~6kIR<|3M!uTOH%Ec z(u1ke6|N*DSY-|A^*JKX5d0S!`7Z0Sw}1BW8Zm5slVyH!7Ks~G-kq^|fImUDSdd21 zy7aOMvTu%{e;uoso-^;M%f{HiMgNo5v6P_1Kd5fmhX7^s7`@pPhYp=NZarF&ky)*? z%jzc}50m`_U9wC1Czz60pF%RxHy{m4^0F-{m!#&=4o)!hMFBlXYR+Iwu%@r>rqM{$CKen7k?r=e|U`i7Wu;^b&M+r63vhjt`QSuh-RQyk;u8grOrDBKf#Ex z{}Ya!l0T(nk)tzT2eJ$yV)qMY-bp(rHR*nNaiH=8`L_x}fL>9hgf_|5!3vz)LzJ6d zRdy|}nNbV~AQv7v0BkTeM1g!yBN+Eexglamq1EtG(6V#E^nc?n<6cq|Ur@U%g4TjP zj9M^Ism=QYrf}tMA$d_iH@R(+LksM~%%(KK^c9HtF1-gYAR+@! z+b;Nq7KU&$C;_zFHEm)t-Tb)+9-V@J+&|1K{?%ryWKrgIUJDNg|Kw#q0-e?kBV(Iq>n3JwG~Cq+9HfAiA0vPIo&aHDK7Em0`kBZ<_G=F_DPDX)&*K{}sJ9)Qdl?7@9 zUlfW6XbBZ-RQQW`fT+l3*h+e#ED1MEM*UxcqJC5c*Hy99I&pH2g<^s-*tCLpxbETl z<+$)lnNJqbLY;I8QH@=W>Vu zelc^JVclJ|Ok6_(sPB@@*>2i0u$V-+h5jy!17@Rf_FV_V1G>KIP4XYDck;CD9EV-L z-=7~o4BQ*<5kv!P4wWxBSan>twLGP&xNn=6Gk;ITb{KM3u|+iezF0}ws|)_7e9%j1 zfX$ZED%~s`rD?Y+@?X$fFqEPXUGP*uWWa`S|+!&J$ij+KDlOXn}F2=E$FjgQGsOOVWWe5aG8`Y?zH<~7K0aQB`Azf?0 zP{shMH_X?3GQaO+r5N9_vuf4LevqxmKRk~b_o_cgwl%bFVNj|J) zv6g$u4w-7r*ey56@N8YY(h$AERI!Bb`G0_ktrjcacY(D*l|x173d#Xp*z)YVYb^b% z64`^B?~Q%?2=ITs$hbZEUJxPhF;NEIGM4){+~uC=yXY^2OL(=)He&V7c&ch&isBo; zNiznts9B*~T}iXbQsnI&&_iEZrS;;sT9%16$BKJfLG+c5C#vh*yN{@~40&wt8-K4I z3@3XRj!R~($m2U{>|+sl&997YzYPVm^~K=292S7Q%ntJDtY0WIJ&sj00zZOU;eA6k zo2~sg1i>V>Rtf{T`{L5qWn~EonS|i`HcVD98Lyt4VYJn20UE-SzX4}%Lmbe40b!0K z_isGQ6byxVV9=|KNQpS}4_?ReZ+|fH-hToA&W%sscdTX{peOHqpwHdAa5I#W&fWR| zpS<&|eS|0PoWSSqtifqCY<)TX(O;LG#aB`6|LW`mRq^zTD)ii4eecK96ZHU}yK_Bj z}5lixv~#)iH(hhr;!zl~stGz=4^`O`A2SsYEX3sNnJB>s$|`TK~r1By*{1}c9v zJsBhb3edw)S7cn-5}st;%r{r=n8`!K)_3!pCO9h5EmE9Xp9BeLw7&i^mg;o%XF=^Nox$C@fuIH{pWzhd} zUCWEPaoyMq-f{mi_DYdUvaJz2_ux@~HgZNGh0bnhVl-;91qe#^6EGCpO-_5vHATbG zpkk;}u>o5svESWXsehj0cNH*l-zg~~%``?7ry?B!Y&lPwZsPkCgmKV)NbiFvPCj=W zr+sn@A~Q+y>G`5`&S#G0k~uW(TJ|msyck8+*TJljPb|iHRAHo1DQ-14x<;cF3$=)Y zTPPKrfL5lgj`9H&KF(9*31mPX4X3IYXkWhk`RVN++WvK1uz%bm$b)2(>3`#}UCvcJ z#dURJ``3^QF%JE$sSPd~3}+d@?#Wqzb=V6T_j_2@DlF5-zfi%7)0YItwq!k+q`wEU zFw&X{RnG2dKP!HBca;&K6yU6MCcM8ZZt`{7Fg3wQRK=UC+847Ti;ms=ItDJsUdH1L zB4^dTAFO!zC6~_GMMU~Vb8}WYFh57uvLVw4jzmp8P)?Ho1#F{kJZXoZT z3RDVcSwGS0i&=#Mrr5`&qdE6Eq)0M<{5{R!?AbN%(;Ab|G}#a4eSvGz8ynzK-oe8R zR$1nbElvDP&pqu0(+D^#v)KwY>ctg=t9hr#IF{cDGIsEA@Y8MUhk)9Oygjn@XcfN& zgBb(j(0}}x*r2r-{Eco201ZWa_~mnNxdDnTQBqWL_U8lnDr%Ie@y=|flqQK@*}VRT z91rgkRJaB?%XJRuDcQp6c$!wm3pk9=ni_R!ZivYp^cEByF$(=3zY zw)}P(*ghah>;9JtvK?!_-IV$<-~A?s+_r#WYZhl@UM&M+hdG|N9iDJ6@06$H=~JHu zS@_ilc8XLVuM3SBRj!sZYo?XON^f0<5rMs$m%1s`>K0It28WuJwq6Qw-j9<#yTSyt z?0+;GUb#c~CO=HFA{QqQrS&3|EES zK^1sMC9`^<5Hy=Y-hz`0Q-6wAamZ3Jw{=F z+}4s97!}6zf*NUl2v@0(^Wr8xWfKZKZ)nS+g#~hVgmTo)tLC>i0^R}) zRlEgWAX~Y6@5f*a$6hIU;$>O4DlorWph1?L@do>_Eu4!H2Hqv{w6TZ(dePP-Ie+=G zTTd}`b^EPLhhxffS12%ObFOz)fC|?83K5W|%I+}bRi2P}5LML=zM*v}RTa^QW9$Z1 z>inY+Gx{y_r9xldd%mCCO{NxNe4g6#idr=o_?5Cc0C*2IKX*|E9F@Q&WcOe%JI_T< z$eESvS00(IHAZ8^j;QX~XsI0`O@IC&{yTA+f`oiRA%?>$Y-n+gP|SIXjr^qVQ+t`Q z^JA6mBb2QRw1Jz=j~=Jonv0}K`sRW|JOg>ih{#%9+mA!rkIiV`6gLZy~)X0p{I;**nWyjSnGh4 z=_Pf4k|iZxzF#n}OMX=NrF3(Hb+6U8@-Z7sUFs88u>5XOhgB9CO{1jdh|1r>!jC}3 zeZ2(Pgp4!kK=z<< zo-YR-wqZ7qDUe0ek6lVGqb!5((FYy^aW_8W1qoBY75nNtW8}9Lk_~MvioM-tPub@V zG(OYY$4`XDN+!oA{2k@w-+G6Ymvx&3`{nQR*sp(_>D3aTtYt(riGSZGH@j%rGt8VU z2!*cG;CWGel@{?ISw*#~zHe_I-ahfKkwE`&P*X!6YhjIpa^Me9PBdB0WtY0z*&W3^ z2+^TB#5Eg#Pw`J~o9shjY+E-*ZlIv;LvwjzGMFjpD)=V$aq>?PdGUy$U>7jdDuvg_ zzu96CeoT`cak;J}_OKL}Z01gzYY?StuJ+0!DFh<`GoNP%qjop2e%a-J9=9hNp zzV%`j4V+y^U=QkIguaS(T%X2H76#WjEIyK)Sy?Km@uxw`s#5{l3$(avkQ>v>~V3#O25mPFbcXXidap`FKHCQg-|ljn50+ z2jh1aB#9ySZ1D-E(y!F5a_s|sikf01Or zY(;XvtM49k5Fp@2@->bJYbUwWV!OoMNI z;Z*}@511HhHTp^X0(V_7p3jMON+;Bn{T6aYsOmV4q zl;NsgTkD39HBO>Bhvbo(V)h=C1f?>J)1Pa!&or^~k>)x9Mis~4L)*yK$wAl^&-r)=}>}WaJThA?oC`Z=#@xup7td&s8 zbNV#6iW5}%MNN|IY6`IS%a7j^2yCU=cwI7PWs?dc+nuxNOOGxL<&s1 z%w?;{?-WCLl_PNwTs+5~3)O`oaw9YjabK)-W*nX}=>v^|oGUA>AUcjIvW;p^9{Wc7d z?srpYk-8FNv%%E9Wta0buiR0dAj93RMmk)kKtTMF%zJgVNj!Q!(rgTZET^L;|16#w zY=|!4=kn&b;NqD>5PnMPZz7+1)(@TX4oUYZi`*I|X#IKtbsRgWft=!9dmjv^6HtKU z6x@F!rCJf_*!gi;{Zu>XVVmF~8rG+r_&kO>Z_l=HBR%JULHUNifuwK$>(j}d;NYju z$M9B^Bur|@klUSKwzu zCBYOy21o{4fVV-8@EbikZ?i5#wtj9iOrz6-mXz2gfP~{;M5V!E`J^Ttes0aZAHM~Wn~>V0APPx z%Qz+_R(8`3P$3` zS4z*{_6taWam2#U=80opA&dmoI7ol;@u5fWjfZ5Ng^K7dP1MGJ{qy$muRlM0{iEGb zUDK>_oQ#-*ufQHZ@WL*zz+*|#(g9y>;z|3#uQb__VDQW@C984*4&C9L$6Zi}d>Rle z1&g~*VCa?S&VsMNR~yH09jyWx@4tNEgnGX2R-)VCYe-~Wj4iJLpADKq*ie50WcN4u z2D&t!C24(gb9{h05VXnxuWfu5JH78lJ(ft~)OWFPG{qnYblL6)9WhC6`))z!f;HI% zHTy*!D!z+qZ>f^}h?ETZ8f9oxBCAik=!f99>@+tZP4AgFGlga@V-c1`+-**QvhCTk@3Xg!<2` z;<#)LFVz39D?j2myR|&Kp1JUU{K?L3wI3l2XEsIu*X83eM4FcRok4%XPZr)!r@p4l z&2GV!&W)WeFSb*>F8OtY293S)hy3-jG(2y=_pJYYhhb0Sn>Sd<_44@ZHWdAd@B4m( z-<SU+<@@es?tSR=anc0dh|pQx3-Ne!zqwZyBR`mv?LKlgRis~Lq!xrrU5?_c9RPp zRIpGzp;xOISufkeFt7WY-EjucXq_qo8I<3cn;C-(y(?3VR&0M#)G&)Je8t0Z9uAv^ z__Cx89!=9Aa2`>oKsT~M>owJIXG1?sPJBtuE+QbYqNZpBzX4P7i3WYHDCmNV!;Wf5?%UPYPA z3Xs)1`hvS^idlc;skjUbgh-8G@}X5)1vTy6yw|hgkERQhu*$%Fz4ZHRNVNJ9g>THY z8$pDOPRZ3RJXSj{9aJm6ZEk6mQ=Q#4ktH(EY+TXpuD|%3+=_mLfCjib(67ipQ5+}3 z$T@mZ@=0btg|ZNk8?0#5G~!O#rbmws9OVK2_yKWma;JaU^;1h~HN95cVzm|_M=R;U z-*SyN;~<)SM^`AEI)@y_8mu~O!A>oAp#_1o9Zq`sn=3m7LZV2DHy3gt;(hE5X1=cb&X$VTN02k&A~9dfElY*9ree9PuzKqa~&S3 zcy1CCCkuaE;hoc>5Wn#GxPZBB>H}AoNw6QnTo!auT75FuORXP}EChr^KW{9Am+}xp zc9|?AADK9%3MKL`82vDcy@P47SOI-R3PA>B1cf!Ac=6T7(({T^K0)J72M6hW4v8y` z7(MBS-;vmrvrw5@snwVa;Obw^o`zAmtikAe@v?t1kh4zm7THclj}$a0RX5ND=RNCH zj*yA&e(Ofvh7CXSo#XSICI9P1Y;V}aQ1v$_?}07HsDSla2$m(&O6MKJY#!=+Ez>9_JXiu~Zwnd8KZ@%?IvIc(o z;4FU=ar4TQae2{GBnygtrJEAPo=Sts>0I}5rV)C<>{FyAA&N;wXjyJwuZH1J?^HIo6e)^%(>>iPuZ0XqxBnzS7 z^ofEDt1CIv#sNBF{p=<9;rKw-?dS?+zvh3-E$Km9)9BHLBEV6ZdK~n52l|1)kMg+5 z2T9>epKBcQkF?hq4;k%Zkw+Z;!I1F1@i9x40C+le=on9xk*|0lU6tOE-$-DiL#ItF zy$aprr||CV>9lE_PC9 zTR^)<;O9j6aK~nZg`mZUc|%BW%QiQjHvan^v3BSw%4rW176;Uh*2>GWm8HSL=%0Us zS+8HbliT#w0xmG$@GbD^xZIh4%ISZ2I)wP|@P9j5XU>1d{U0oJ`tK_Su!c99UdzWq z{(adV#qP37A%3~+Orq#}y#L2ENPq;v%%|snTsi4Pl)077`~7;+$J6+^B4Npzu*33e}7Aa1oGrG^&lovt*6#LCQ^Q$h^$?Jpu*thIiO7FlowgM&Lg&4xQ42= z*RC(4r5`MyzDM7B)&v#=m;-+YQn#Ts(*g9U?dbgco+&(3B7A0+jU{~#SHC}0b#c@fB3owXRyyS6STG{Nz zD=re~=XH1*$iewu4x^Fg{cCrN^ShviiIfBVpspt)bc5K)-MHEF9~$eg3sCp@N8r3= zb@9C`kK(E)q)*uK1iPDDqDXe>4sXDb(vk&gd0ML za0Rl?MlB0dzRb7;F8?gJKGfbaYHRRvh;7QaCTrNQ_3SoIhg8>}K79Q2S5^7??ekxM z)_?!~=jSi}%U>V<`SPjy@_}Y?YuRX3p6QKp8UW_UVjC9YQ4}}LV6>r5D1e@qH~Q?dD!@V`T*I>QFo66;ybJ5+c>1+2G>q)*LrJO+)9F zsLZ9=6dWRu^6!u>v`WW-p5;^G^!oVE-)Apb($>K~s(?TMW^th?aKJ&22gYv4fHx!b zAfT=-_-PXQe(<2TMuTD)jc^J=))(%m+{1kaJ=X0-W-HfwBF#NCE7`j(i62Ykgf$Xmbi)K5I+@_<}UKlsd zcw2|rYXCpbn+(W;%`zLw6vO}mX5VnFD8Vf&I^73HMW7Ui@ZE_|1M8%@i%;(p6(m_8 zOS`&lCs%@Eg-XTcswAB zsbauiFIw}%pTBp_yBuGZDppWS`?=n@Ed!8~jiBP&3Sb4~MQ4NhP?5bu6ZgWoZUrf? zfDD8c6c*%7hlISVe|*OMC=*}ZhiT$E)B>5;&sHTwE$a#nX2rsvf=E>W+J=gj<8?KJ zOyz$XP0XmIUf&;SP+y59v+`UKDg#30+6~&h&9MSe(Kmvh&H7PXIx<}S!zoOcpbSKe(Pf}3tyfBp!aaG#IdJ#8bz=2mF>y<}-;amlCcGFO+tj2=r2M>! zs6-g~xrVxx#aFJ;rpH48e9YgnBfTkggmZsxts1qzbkEFB(ikfhaa=4l@>(gbs&!+& zbBt@@61gB5(}e14H_wh|5Nl*C<2bl$q3s{pEmn>Mafi!k*~>P#l_o-!((EH^uvSDv zgDgsmc2PYO*-SouFtLBcB^EoMMS4%LA@lPPI5A}-_kSaTw_ZQ45x*3q!4060ua|#e zrG~SBw%&;u6}EyGh91!QskHUohUd$>o^g)gYvK2sT-hlh#kSr+R-P(m^RszIk}#=3 zvo}(smmQ38UQsQz$0v741-FSgYGu0wc8|;8=CxGO?`$3hnx&X_3p#58)wEXZUz`p8 z&_F%KT$-?#)Is63kbsUMZmc!&pAmnKvam-gfoxdpK?ak~Q1+H|%iC$DS+%JbdTkXP{O|&VnPE`XZD9>N` z-vPfn0B0L@}$nJ5(lygGfg9GAam!zW8#nmEWIi=uI;18V5OaVY zZ*}$5u{vTOyprUYXD4>v0||H6D7<-}yR#oh%RL4->EeITO-VMR0xI&TX5kT&@5pW= zE`EYNI+yZp1cm76=(($hz4Frs7T5-&aAmg}P9t#DnQr(4*hV8iuJyy0VGwtYwq5`i zN2@RfsHxX}O=DgOZVrRvdziAiXiJ-k0zCrPJw6UBX#FiIl}^9LGR^8+XY-_K_qzKc;u)wck8rp_x0(rC#E(z*nN^cZz*#IPyD7~F%kkP4{sw63TT zll4#Iya(nEukpE**v_<4iOtNP;p?52AvEr`QI^mK_j1+Nuh@KyDYd_dt10NX5qqc| zf$7z#$q<<3SO^52wZR`n`FY$k7Jk*%V9O^|>??o#&2eTiv|z;TMvZL6zJazC<^NnM zKOLQDm4|Q9ZBt-=R^vYe>YE+_^63(QST0)G?rOSl1hcqm0U2zhiH^pXT@)L=HntKk zv$A#DViy`K6va(FZkbJ8DD3Wo#`LoR$Hw>m+0ka7M%-~@L-#`wjC0TrVyqRXMMuF3 z0*-$u6?A9cN?@TBn+-%|V<`u1h>&6NbNfwxDa<8j^f_)IiwY_*->U}9D{eup&(O;T z>aeBQuOmmhW>0=+3_uyiPYyIg4ng*Mzx!&A)5*|j<5ld4A}0UjP0Wo9vm7BUgyd_yvTn>6}0H4vK|aD?;+U}nT{W>dZ8~yftXy< zYaHY8c(gIfW@i&m>or3mYoJw{rfjG}fJ5L!Nr3F~**RU9pyIa1T6W|$RfDkwxK44} zMkB}z7z&Q83T(m6AU+)pBN%1hRje05uVpLyQ%7ko^;4nF*gTHF)o}PuZn%2+b_zfHZ z-9ATNr&#;5ITDj*UBJQ-@8cm&xerYeM6S-Wjf%fF{oi zJe$xLpjDBR-_boj^h+GeRu^tQnu&i1p1MtyvmyY3Os8i4dm$X?R;x2lVF7CDX2z9zUNbI#Ut&#ogBs-~ zy9^7BvSBj%@;l8F*c$TKn^q9fHxrN?SNzG#gR+!Pk3N*h!gbj>+s6Xi-LZeLR*PQ;?Z(Vh=z_Ah!kb`L13Ra6tS89i+Q zY{t!NCpQJfkFGB^+Rq`F>o#ylD1IE2(2*;0&J)p;|bLGd?Yo3WW# z#e5U5aEnk#hNEZ-2u0IRhf05$4l9v+X0Zo9R=#o(WO5Ge?L)A>jsVB1)aW94EO;L> zf8FYmTt~K7ErCN5&YEBwGo!LsFb7*uiayfrQY& zG*LXxmFr;$W?KSxp2S*sr~;O;o?@ke+0OgPik1Vr4RJPXY?PE=hHZZsXi7p*%CK@K zE-2UuG=nq~4Aec0;$s~QIt+(^>bxAuF#5|))AROyV0vHsjYkO-1u|7fw{L|F2Iosc zP0-{DMmdf`m#yTjQ$Q^%6FU|J_6I`ND~QFTMI}k5<;ks^IEBaec3<{XV8^|j-~wz= zb%3Y^Rk~_Wa-PJvW#fOoh)ZdrO(_-gxEkeD?d& z%to=2Y$w}faRPq{=w3vb4hCjWUJT5a`~ZWf2G5>%Gv{^Z{?fcnkQuK*E`&Jv(S#_o zDp%y*EOID0&|7OC465+`T!lp&bLnsW*M+U``QZQ8Ma;_nZ#?t5GFOmt$;>7BTH?$F zB<8aei@Cs-p?9nkUH~hq_44y3~sjIWFr)>)4Auy_mC|# z`_0cF?$3W1bQSpG$(v{d1+x50VyNbCs^x?Wt)go-WP$U3^)_#@F5ME0obuf@9p9D3 zoU;AOpFn?NOlP;NdwZWA#UWqdRXm_Vb7PymVy|mnmh=RlZn3~!X6-=j$H7i1wyw~$ z7x!mcm)Q6&<$V0Fd|DUSHEwzuk=4|?)-5fi@@`$|Hj7@f73-sP6R#m^QGl0P`E%Qu zKqf&%*Rewnte`=Du5fF+ZiOWY`+|!tV9Lk-fHi+RA%F!Hbnj_bnZR_DDS|AmK4&xw zYIHK2wv{uM2=49!acx=`RUVu@_cZBNE$d;I6KTD3x?p5@A?$>l0?LE)Fq!ImqxL*` zyv1PU5X90Nvu&+PwwJZ2vquqtn+yiY)@{A744eFWS%&xpoT06CHy=jY7X!$&spu!W z&)t88@X|j%6lg3sV&fdOt9zFh+iAf-QFZhnZ%e~RY)g1KT%n~c+mdVIuot`84 zwNS}Se*5s@@6#?&TWR?ht4w}D_!v~kiytNdgS91neoY_0*VnQeDY6fgX1T4V@bKIK zSB%j%)*_%2wBnKs(+~YWrg~07(|(P%dW?UMN2-=%yNq|$gssMvd;xiP(8!YU7dN{I zbcP9{ap1i&eydN?H#=HbHC9A#Iqa)!Cj$>(1Gvg!lb1k+;R!4lVsU!)x?8VCZF-BX zKh}j0*MAHB@M|WwkJKMP_w$50dO8qb6&&`e8Zm?VKr{T}BjU}bKq<9=g4o}ff9ZdI z8g`jH^I%+L?xF$K;9OpM}QO*@wKS$$CQXCBX5qTQI z@+kN6EgBbtx|2D7qSXqm!uKm*rU@2i*_#h`_PDLR=MLF%6=F{bYW=|Mr(UbNvQGXl zxOVDf((qF?1(fHauD-9x6ZwaE4+RBC*ZlR8xXP(~tl zkbs8W@xHY-)bA0x{4^H}q}PBgv{a4zHL?>ellRpdJ<|lIs6S1V%ygVGXAk+%`4nm4 zC~eAbnX*YMr|#3>@Dxnr!0w%&slg0b0HSqM^oLZFv&09m$Qs+QmXn3}da-}(D_{my zX326f3T7!H=Lu@VJruiqjbdvS?wVX(j8k+hj@EWn2(b;Ps?FN2cXBFIh&TZLdP5Y| zW6G4-B{vKM{qugm$L2SJ4Br`-kt-%s^*b{&)b;#WI3C(+!BfZANQCG_r*x$G+Qk<2 zJ=wtWAzP73>c}P(`+mPi@uq*vH5p`Vs>tM)ZRW6N$kYT5t{n@}0#x}j9;BVd&jLA5 zsdtT;7=VHy$`zIZ6QHTXrjIx7?FcfAJVy;ozo+|IxFM;B=5lWdl3tX}5mea>J6Kt) z{;+cj+k(Q3%kPwN+_lYbcWsRILh|S-I|fC)v>4cHOg@e)PH@m+q*8yhEgLwCW=Bjb z05KsC$xe!kVh{M(jmF1^hDKP!x6PPNi*l})vNs0fm$j)gMce!QtESe^q`=ARw}I8# zc5)J+py8qwD5XVA0_hVAUG(*UlR!Yh1w*PF?V*!jIFg z^d$6Fsd}EKCj|A-aw+SO*;KEC?HSu5uC(!ECULM^?}gf{esIo*FS&bh?VgZE=vph3yw_e z7Y+=UPK-aZ1E-DmK8{Tlq2K*^BDpM)gxy$7= z<8$dQo&=L--@E( z&ByK5j%N$R+AR!W{PNf5w~st2vGujq>5i%BkRtoj^=a)kxKT{fYUb=Gii=9`w5Za# zanoXm%ePGxjq>?TbevtenWh}^MU1PZ7XxG)l$3c`!P9@lA5h#*5D}>Xn*Y)ZIBDcY zvIuOo-ga9VCv$tNl>5y{!tRB37vyiVqd!!O{<8!K?cQGb;kk#YJ?QtzC<#iwx;y;f zEJ}5=Lkh*_-z@Q0ni~mqznADSjQ24)tl8eFP!BAI7aD(8HC{H}GzR4Ho3OTy<`+XVqqfrB z)+p}p{^iRT`or_~_43fzAQ_MM?vcE$6529-WU?y-1f~n>umns%`3KT<2P%JdyF-Mc zM=m(L^&bBAbz45%A+v;3LVmq;-pw1AtPNeiFUWsq*)BtefIt@p6+h1f5Yc1GhYp(T zw;+G7LZdg((V~q_09e|S0qt$aPvt)XKxZE42iUork3%(>foL}ax*6Ry@F5zm5qN(0>Rt81+mR;c<`Hi{o{MlM9TND?-WYe zZo^`P(vSm|bKflo*-y3z625{_93qfaWjOkc1#QC6nO4J~S~N-)jJFo7Fkoi+D6(}{Q@$8n3H8Ien=UeI4x*TC@Irdxt6>g6c-~wMPEdd7 znrs}Z3qp3Dj0Lz95%G9zOKUiIf`-^7%AOaNGzac+f^$BMB`PHijrsr`K*5~bAHY{G zqsVCi1=aJ>8_U=yEirOF3TW^huUr?#MelU6M0grPBhNMsXe>6E!5o5B<`CRR;-&}0o~XtHq00>TG=7LBjQe7YGxyLo?R&FT<7 z8OGoe)nScT>CO7a%M|8Rgy$DIDIAqqQ1kxl#Z{H@7-DxJq(W5d71SBMCJK@bdba{W z0^H__hX?~&h0wmAzbL@+z8;poWV zw;cRJi;@(iyRDm6Px~@nP}$*Y$7?5F&18g7i%RW0=!V-dBKEq7|FPgGQX*> z2JqL*w)9&Qtmy$`Ce?2ZJNl}R|A#*A_iI*hy^KPHFy8zRDRT1Ez!`tJ$pivJ{lJF{ zuv4IAJJ{w)$V!1b_c9gpOpVy=C&lWo-O^f~h5#W-(B|*-WT~kTsor;pLk!#)LhcJS zdvTi=qmCm?V!B%zTS2C-spuP~7A7vOrVEpdal=F60bW%Re#!K)$evcBJXp_RKtgAZ zf$tPkl1m{Gl5dCfX#Rg5-{O=6Sqsjd_YORTA!qNmQwiSEE(X4lwV&!Jei~4@ebKdw`oiT7)EXMY|c@y)QZ{$mvj$j@MJx+Q;%@vSy zaeEIX$eGu-f_!fRjlF^DT;I_^^wPWGy{C>%`voS87=9{fIZb~E?%m`3>gHgh6W3_u zY6XLGefpeJ;taSTE$@)Kb7M)@m%zqi>vhy42E^rZ%g%u)S(8GJ#BCIvSiD%RxZR@bmF+*-(K z-UWYSTZ?9?vo(JULHzsAd*lHM)J{8-b0w^^zrDA8=F@*NUB(or&EILMCZ3^MUp~Ov zIxUtHZ`OK^ZCTcu?rt}kNw5pdZ4eE(IIY+hz8w?^rI+2NXUqg*i-g(3GaI9hahdBG z3wJrdRY=_PtOIbvo)i}sZg2v+Le?5SG)MX(iDt0v^Fe=Al*1!p{gBfVyw`(xnB&O% z>cg}3H=J1y>tnru=2v}&WiS}^!!uH<%POxN|g| zU?A_YuNMU8w71EqAGx}QpUGDcE4+Q0=D-^z1Q+~J%tzKY|A3>rg~E4g-e!B<1Salj z*T!C{^zwgCFBbReP&>k7ELSHd<0&CkLDtk>zB=(g(VLyhk~s9{))X)%#RY;Yqe0s% z81YmQo25(pCm6}i2`*Hys}0QRc#cXieJJLntdi676wu6N4FsXR5Ef=NI%f3sRi1;t zmpCQ775?fTrFQeOcQ1NSfVtVQjjzyS$;LCUvh9EENdh=OCH?G&-MeG9@?Ot>*l{y*NpTsvb1RLKT)$o*m`%+E88uf0qla8kM;RMA;m`@#B+) zf){_{#2bY==NL~)=ZeDhu7%WQ1>wzi8Uc383K8wpUqx{+dqaVQY4#xKWRj%7TYioJ zQ*B=_?@1wJo9rCIT(cX)LMr?O#qtv!h)1B9jP^0hQ^Q0TWaIm7p_&u`_6ztO_{a?f z6b`7(Eg;ogq3?j=!wWmW1R{sM@g2uX%yEBXPK+(@iivuXpg*##m7lfRy9AVTeLqP$}Z;0Z&{ijf>Jd)+IMxrFAc;z#6}nevZ>Wr``N1Nu5~pfzUTtt@{V?x z38s5BU}xDUx`48)*>9r^*U=D2-Y&@J-$o;V-USfCG*!;W?E-4kpgq#DB^!T+a+~}4 zwhVm4!-yWh6eQ$+6k^C9KWL;ZXCVIo$ycfZR5)Wr1Ecebyx|zjvZRqjV5*I=uV~fk z#g{W}YX_=!w8%Z(2sPc*htxau8|@@IZnarY)Id(!#3(r`#k5@gOCf=Fb*3lQ;$u3q zkBPh9jPE*eB?W~A*vW8Vkw~z%15L|ec$t)IEojjTr_m#5U7ub02YgZpaiBXL#o4bj=wW?ed>7nqhnRrQuFhPz@-1?Ps{sJ{`j!$$Hg*fIHrj`b5 zjr5lkbeF9kA1!~%M4U2VL1#Q)?a1!Zls@Eju%8(+X@G5WH@hYBXiSV#=y~l!Cy+K= z9dG^ZP@4$zZw;)Hyo;)#na!%p-y|ZE>O$z+;9TB z^-ijj1v&dMvZlZ;KHD*P2nRh!z7L`qhlVU=dR)DHE^!Ult6z+%2_^Ykl+(SX>DHfd zWJN0uGDwxbA>4lzEcA$aSFvYqt8Armc)};9Z+BdA3S$P+zC%p|ZiYO7@v|G`QE3*Y zgUnU9O@3CRIosVMxC*vl!E5MWunD4$so?%{ZjAgog|cQg&m5v0Em{D^*1^1|qkv%+ zq;u%}TI0HL2Vwh*-e4OxPGc*+d;>qtYVcH_-*s#7Jf(l$ZId_%?^+$~n+p;-zsiqv zXW!<+O_Mk1({W<%Vhc5N7ue=IC8zE-RR7}H^GEo$qOyRm;O&VHIQAqr#QNv7A4Swm z(!oz?B-|jANS%!Y-M?eE5>(pxC%L2Vi>&bbvu5wwJA=!+cZI9>>iS?oWdZsA?v#cl zdx#6jXoY_lgeqSea`MpHBrw4T#GASo){V`kEGWFKN^qTsA@FX1V#sEyx|I zxD|i5(0jMR>S6aoJrwwFW2pud*=g@61jXXG_@s7}uTuFDJO-{r@*{TfH;mFb@OqC1 zbk~O8QU-}*u>Gyp*}FaBe9=M*tH;mO`re zAmt+%?<$re#ozC4chnHnC3PgC_sakI(d}#t~@*ZhrXjhMF$6I{Z9td^7fT7h@028pjvEU&=6k<8O^#aBY8_ zI^=^$QNq8$TD)kYO8ow@%61o7<$9v%u?Js|cACcO>NuaZzl#3wi?+6Gn_ac9j zn*;ajmp?z8<*@Ai!-)gfASw+*72HNy=(7mB7#`G_>g(Ro5JMkOf4qa=Y6&ze1%V99 z(e0HDXie;coRBQ0&#U%op zjj12HqnnyM(%=xv%j-4>LfJ5_VH(TWqY&L0GPS50o7JGPJP)v_i^sIk^GJW0bzIh- z3GgC}Yy?0BPEixIRaG!fY=u4eNOhG*JDuOCzBho=)?4dq)Zk*`sORG}8%uEPmR5WB zj7c?i_pr8{=b_hrWkkvwand^Nfw%Ex9E-R!H(FssSWppYprA{mrTzwP8QnA(I5~5M z2sSkO3aEFvn1yvcm>g)8tek%vs`XO1^@!w zZP(inhKA8u3dB&ML2I;_#BTVDn`Q!&ZT0_CcKzFKn_BaUeAhWi+O+SIe~^SNjwH|( zU|W9ryJsVxB>g@Hx2vmNZAM5&2=>pJ)&oIT_aI05Pqh#FAF%p#UG0B|iA!sVD|b5@ z)F8FUY*eRe?PvzQ#BdHFb()%Q%}uoT9z}cAs*sD)LSh58`*L&+?75CKYN4sBX59n{nk8^mC`T!MFmy76u&5GOW6eCY)s>9) zk)s=PWHE=S6CVWz=_?Tx&!6a{@sNYXf=peepX{=klbDP!e{ME?_Qq7HYV`t{88M|~ zt7^?qFFTcGJ5>NT8xLk+PhT7)=c`@y~KMhgi6PLW58}DD!#7`D$vZ$7h&ezhF zh1&#>CwVk7e=7k(CFox%qIYa8v0jarZSW{`pwNqvUDUrY=0$lEz#5$$Xv_r|@Q$z%SqhLo$X&x! z6qM3DpAIrEHlXa@fBy9sB_dEzT({<2=T1%nFdv7ce|sM>-JjUDPVxVRzA&tu<;@3h z@tVb=3rEAwaV!x_GF;`AKfr$#?S&oL2rr#F)4`amKfqPKDCMNxTaCZ#DY zUAWnG3@LEZ41uX+$HL7bErKGm7*|=eH#5n84XPBeQuxYDs2Dj@NbYPAv1gdx$?<9~ zsF2p$f8lz(Ecer{wGA{V2vkWvs^MFo-8@_H-sVZe%s|R~=g#0$9{A>+eLp@$ zdaIZ;f|S&#G#0V4^L;TFG}Bp9lPjo9ld!wL3}znlAZ~(L9U;(}_f6lW^$tutA$$&Kk?am&U?5(oz$-C zC)y&4MUt?;po^ILpWnay`S&01U;czS_Tyv`WIw%&If$-r`SFk7Ra>0Srnk3bc@veO ze?lPvrI^hY+V~@;So8jXgx^P(L=TNLXSwK*z>+e+oLkd8gii+zjKI&mu8KdKrxXgi z`?+rvIvyL&QzWH@OAfr;95-kYt!zQG>jeuR!V0He)%DmP9FR^Rq&&`(%x0smMLwJChf1rnM z;cBKYZ?ZgY)^?o52*p@uE%PryaismXa6T78czboW<{aS4q6NdFS-`D%-c{H^Y*h$b z=8aV(%N0>0DD&n5T|{0E;Vn*vHyH~qZDz^QF{TzlWfc!axP1$=6%#$Ph!ZY|{pQeW zSFP0)(3N)qprl21i99FJPyCC0e{g-{(y4;@Zw84viI*&5Pxx*thZqlR0g4DGosq3W z&xqzp8LAJLEz?3+1r<8wt0@sRn&DKuoUXy|VR$(EkpEzoqXA{4Z+Ucp$vxZZF@;q`K}N`uQI8b@KuGAd_QvgIdBj~d&)I5EX|+&Yg}yGD=Es*%Rq6)L zwluewQZsW}^25v7Zn&ACGP2fE|Lj1G_S~@1V-oAq9`yixJhTd=wz-_TuZBi2HH^N> zntOfcN)|dqQ$qkxFym!ke~xd|)MpS@7Ar&(#OCgD(2jO#9EK?l4bIGG7*-AR6YP1{ zD3k+}_R01$!aem;20=NLnI}WDr3wT4te5q$HogqV;Wh3l>!tA#-tU_As7Cq4)6+sB zan*H^($VC6d3&3%1#w*W{*94JFP*9)u*%}47e8f*g@vE1e+qPKf2hDMy*D@jo6f4$ zx^M`Nfgh%&^ifFTPhxS>T4aUEO;>0NwQx|0Z8EqWH*QoZ9jI$tr$dmaA??EDP;IM! z)dxR08LF38mzR~F_g0Q?F*R(YRpA0FVw?=&z#fBV;%63sPs_NUU0;8x0=$iGn;Sns zeKVfbJWw*V-!h9YG(K?=Isf1q7WorwP24rp+rT0Q-oli?G5sN6OF?%~HF^(_SoA2h zb7Ga)=GHIx2eK0`!jtfl7k?;bkevUSmiP%UK3!YhNG?c3naxTM20P@3Dt~zR5*+#C z^cVsZwVH}|i?u4WSdP0-OSoE|F8Cy9PaZ={r}Nl&;E?4y-2bRUL_+ zANFFJDr5j*%kuk=)0emR@628JguVbA2Ngf!AOFQ1bQ|>XS`wS(xqnb)-&7m|^cv>W zO0x*gw$z;#E8l>P=aTBGTLu;sLHs?<>1bqRprwO3{ol-)whIou6Ql7)EVDK^HTFKl z`}nTrN6;j2d)N91BF&j*MS)7zdlxnC&{*EEKpTCV3+nDZ*@CDM61$ulX$5=uM>nx= z^qXeC7nGbQO5w0rsDFa#m4YatjRgmBlNVkzOh?6IkFMlJP ztXPPtICgdmXfPM|LYEJJjhT63prfMIQ^piQJ%UFM7{kE2IZ8{b^*Dlx zMX;6~B?96-r9g<+k~~%`ThKAy?A+Kp5w7}3Vup0hg;4^!EhQS@Hnn`%qa`qcWlvMh z?hYsI26pqgwbbs(toHL|vZuRqn}6&>4mD5-^XH$>Fg-V9Z|mGJ%Y5y>Js!74napze zFZ*drfZO?$L7~B!1++y-`SbBqF_)U13sh;{M6Lb>M=qU8-*0k$b85{6#Oht1%$ah= zEQR;AVT8#UdCp$hWnM`73L4=$ftRwc`cGBlQP8ziJ@Yc&e<(qjf@BLWxqmGFa2jSy z8}HB;VBj6Vf;g%`*!=zkv1gA;&r63vfiU-ELqFv;^I%#SWKkr?r*g2UU*w9Tf-1uD zIdx&?eZxzz2%(+MP2FiALo4MUWItNG(iBjbI0cv4Jou3tH&BbtLmmZp2*|Z@!MrpcG%(R7c6ff(>h}L1PR_J~ zf4X_i=lI<#Y(2*B==M|m25&ygwGi=BoJBkXg%(pQz*DeC)b7XW?Mc0{3u_SoyHRE`J~ zd|HX8-vqUW8$SA1Mm(co+Y`E6!DtzP)|p+=cur02umuPzoxq|mTeQ9Rd5bNbj^nDB zxASL*SL=e+^>*WXr7}pL`l8uIr>t;IA6pY>Ma|YayvyL5^7p(jc8il$e{ci(LulYM z#0h;2(2L;TdE6YM<`zH{2c`83lkwofZWjarT(z`Wo7E0kAvOcZ7#`$P*H%6_ zBsr6e8tNs4wc3n@BxsG4n6Ay(~omd_;BDkCW1P=+?tFTERcM zfa0;JtuM8fn(X#_;l0u30pic-2YN%i3}EZ-lzC>5T7X%N-ldIa#bX zZ&b)Tz95vaWcQ#HuS=el@Z?wf+)@rLxgt?TiY5CY7>sIK8I=r`?P%|vn}^1(CY$sl z&<5q7ka~4{j!HO&e|Jmo<@)c8140p~lkJSV8!eqJ|Ks#r?Tyg~GYq^l1*j<*UK9XO zTwS|*W)tj)7n{UW1;SVM#%V;cg2fJj3l`4-SU!GWlT& zcOe_-fo|*v-&sG)q)!o6F(r)D5swyg21?4!#fQ=DrV$*xe~M{*2v0Kmm`P}-ZtHA2RF=e&`9ZPiwct;Aj_UKSZF zdbndfBMMsf-kb?N2%b`FMo-5*>*IvHivRqu4IZIoAFSDqA_9gW9j?T%Cr8`>UTS^1A5fO=4)6>2)@iAGz+44q-J{4C{$9E7?P}% zKrtypz_Qh;xS!LS*U}ZvU`QDi_WRdRWTG!43IQ4x@Qy05H1@4(fnDq}oeh>p-^YE} z0(WqCCpN(gYtyZ%RV%Y2gcX_Zze5o#y3TF9l6qIle^C0^I0zehB+I_YhS8|z+K`)><^Kbt#~czx7&pkX#w<8n7D2U z2u{^b`hhAV2<$9YGOcoyKMCMfsh^#ybVn_6RL7oVnVlUsU=+8Rp>fRFbPbv20t5oZ z1w#|g2k204Vo!B7o*MVw-oA4Y7s!rlMHwFjyNWVIpwC5){4a0sG!?JIu9_LEe?}0% zhO?r;o$tqjLXuGorLFOh2t}>3#qt;`fXSTCW;oQdh(DlMZMm3ffr8@l0N#^op8g=s zifhLQ+U3=Yk6~x@BigyOyWCS}`U!rLAC47MWmp0l9)fk0YXUH6%J}58{)D{2dz$_9 z{-rgV7P+4K%`KMNIOq8Tvbh|lpK$HdNCo6$P%b)*Zmc@uHXoK#XWUf z;5jt^F)a`8>1On?;^a>U;}xBl`TX&beMepIQrO?fV)$jFCtB#C1a*`ju-_L3Z9zP( zCPpn#sc&PAViKC!Ce}Ydi@!}eq}(!jZSDuDa`U@18P@b1iV~^I%tSKG7Rx)uX9CXg(WS zp5(L2U2h4^Wer9qf1g`+dY)&MiRGZo<%azg4vWgO*I(l`Mw;F8`&o=jZJ(&Jx%mgO zbp0Ii@QURU-rfigX!!c|E8WzCnP$5eO8xje4XdWIpf@)_d6JIV6+fRByM@k1H;6Z8 z=8M^`^c{!J8+yQnP97hp^Ez%O@_Y~)B!8TWq&j&#l+vULf2!jtOtdo-$r2jJ4A?hK zby89L4B9|uu80w0mInd{nEPtdBFG6N=fT?Iwg^KI6F$=_$}sG=^&{O1yFnq@Q_hmH zwt)oO`$lt!wsv7_SZc<*B93%jYaq?AX+hYXM(d8d-c~uU^QPIfqr|>`!MSyNaag`I zXhsTZ2z_44e-S}uTcJNrH>7rN%p?~iDj&sH{^LqgIRZ5jI%RGY| z2>sQjg|m|cFy|MsuQxh#^VKx==XqaN8~eanP{R_$ZQsNy{4lFwoeE)j#n41=mUw{c zrjzfXAb)@Br#1{4&$I#qDCaXc{WNz^p6s)Tp_Tv+s?V8*Mvg8hyDy?IXbf-6*=(E_ zn`NC%@^m#}S3>X2#+`yE_uF@33>M6H`KvurN4wt(W(Xj2r>BeJusj}od6fR1kqLBs zf*dD>eA=B;>c6qTPr*&Jp1NQTVmXg$?l$(qeSgt^(aUty5ETMAW?vjb#?E-UYb!2V z)W)^nZk$6}42r;cP2ltH$u3yU&mc?df^@}$P&L0p<^oKL{_-JKIq33!l4CWVU%4|F zrs%=clFVQML)splhkTqpjcukK;BNB0c)o|L!q~ugcF}#gnN@{f^R~+7ypBrYR(IQc zGJo3zYFB}IW6(5Sp1J?(DS48=-{19L+-+0HpZ^+IpJ+w=_3D6swFe9VY-6b~S2EaQ z!CJ!y3bUuy6iUcXAWB`R8@pP6-U6={_yt6^Q~}Md+mr#CtT=(GRSJ%<)=kk};$+3; zjYi!8l?fU47;W?Btu_O3DZF^%azf8Ma(|;W`pB&JYWgx@a$VjV^@Bi7?XO=@+Q-XV zzy*fhb})qife zsVmDTa#m*c>~r^dm;4bRV~qi6B(MiR{q1VundGiZHTzFivQicxM61;wRVTOU)3bR| zIQO_S;?EkD>0|5~mf!+)AlGe<#eF542&e&v)(gw*#)2^WUlb7^lTwMCv~&-o##H(U z9n5Z+X>31M5^$<=r(nS6emTYq$3+NWq)-WG)ne}kQ*TphJ zhdNrCNrKC+_i-r*Umhlake}5`k^M)JZ-#ax#Jj_$Z+I^EX{$)t>wEq}>@$tTd%Rru zw*4vIR)@ZvO+=Z6H$LOcEx|fDi|PGqF7$@A5kj_Sy5}Yry6v!F30HuL9d5iF5x8wj;6S|? z}1%tl+Ch~ln zzy?<}kM~mpn+%NxCHD`%8%lgLRO%kUT|$3322@Yl1XiExz<4QAwVZEUY}Rc#-VGoOcS>PayT5k5vNXW_O9Fw3UonT z?iW8K=5h)s4j>@g4Sxy=LcE4ak9;yQ+;ga4@&AgE*h}t)mRhk;pI7(bcX%HH$=D{h zzK%?*t~MkN(M?6=FZgW%TP=^;bpmbVbjz~Z={E{vf@OlOM$duvWlz(bryd} zgA_^ZX;~=i%zp+?P#u$HZP_l5U|^S+kL~4Pqx~#sn+vQ`Q=w+6Q&6#3^CyN^4y57$ zb|^XadtvW{e8q@W$NV=x`%Wyu7&+ar;KHUZs;o(yVoD$Px-aAhIo?ngWNQth2V8kD z;=s+eUwR+W*q{{YY#Q%@@${wh;6JV17fpb!UBhIxm4Az0-k|tlHvu7lJZis$G0YrW zgTYrpN-)U6BNg>SUs62xu4j>X1z!XD#J&jXjT^{5>0zCZS@gPW@hM6VSX!ZA)y1Ss z>ikW^;S}`iRK;WH4WgadZt_o;6_nPj_$7t*^~{S81=4noM-G807lRr@KuYf!+2Rgu zomjdhhky2C(W5H8n3-|_#%!wv=xjxIfD!-NuXohXFMW@ubgsIo-G(QVvI4NXHLWU< zacHc{6ncVRaMBtqz8wGmAJ8|WKWL&6#@cY_Y&ftRE}X5GtuT;lTkCYmN@zn?pwHRM zTJARe7=FeNeRgLgOLirbQ$WMfzC#n<)!wm5MSnr^{@Fo1pz``=EMmcE=bH^&2HtC( z!gTExZ5`ZoEy7ebx;AzxWEr`5oM2`-u0>vOCa6P{A%EgXlnV(0F0x8u+}3vo*DYD}k%%rl8c@rXv`Z z0e^>Vc8UoLjvc|;Rz6?fK51E$KvV>V^yMlf(^gA?^x8Z_A+-{ULa+()fNp@4@{b|z zf6kB2hjKACk4G01^iG}e=nn{n2E;5a%cw}uHyHaCx{)GSG+EC~y5^UQp#p-DjvUhE z?K)TDpv8N;jV*F?>uRosj07E)6J_EQOn;fhrca3bOeTsxA3*QR@EmP_3jk0LbnLcf zU!2lQ&@0aVVblu%6sBcFRNos%-$Ys(Hkf|oO9R2hj=6|g` z-95y``4*#RFF0NtczmuXI-V!}J4}4$%{mE%`-nZ0J6d`)AB*WXtjVyHjhKSNKsL09 zV`Aj*V&i2)ocJ4-^QRxz)>{4oo8xT_pc?1$yeW2w+SiV7&YkfmbY^wqDSE_R+^Vth zUHS#Uo|(J-7!Fe0JbW4Z*iGx|-G9yH5a#Ayz$mF*a9HAa3_b$_?N6AWzB z2*DfIsm{C`S`S?jD`OgyhQZk4M`rYK}tQ#$I+k+4+6xb6_(T87z#d*Je%Bm zn`q5eLV;qW3Wow&dbdy+jEY$i>*wJ)!PVK~*PFP!9w14!ziy;wtctqy-2v1)xcx2E zj}aZqqs8cx;>Qw8qy^uo?SKFK@4xvldFouqEAxqfp)IY7K%t27b>yknc3UmXCkHtJ zUX+KNUlMgZr!9%Le~7QZ4YtdN@ikuN*%g6p;Td9s@)X6-G!9~lLVZi^4c)I@&<+jI z{%d_dHB^G^WTTSG3 zOyGI@Z^L<5`Zt=%g=v)np>?PukM}p*H_TMSP=i)K8kd_m zlc8d^AAkxA zhHR#ZdZ6zv^PYM|eQvD>vT5#VKPc{TahV_V1XY>)=q?CKp}Eo~T5$x(O`Pu54pv1= zcIopH%KBZ2jk7-6+34$1h#XTrYc&E$46v9jY+Y8Q{f01W zBB#UED0nG?oRjlG9%h-to>R1B9AKX{ZNZw25e;P(Lu^T&tUgye)0%dc0pWmszfT7Ta?AyaZSRM zmCv#=nC!pf?B$3#uZHpkU~vSC&x|P1O^amrJzymsDzd~p-?OvtaY{jUUmoTbTJF>d zT<_pVzmUiF$w80?+F|bO3;HLa8UbUuy zJEn3k9<8npG&x>d^^G?fTF-q{L0r7JK4weS6B(XcEgw~56g)_h!_>;7fRh3#b4$Oj z;%__@j*8?iWSMpG^am@T0yGzzu8^ru-We4T;@^uGaN?FQhth_@$-bLIzxZe9ve`{9 z=vNsMIyEF3k!|;Yryzs`P?_WTn(i-{K zsSlY4ZWI@9h?AyJs9y)}(7AxD%0Qu7-m19H;o;wS0V*IK9l-h)GxXxgV?4zA$z_%E zlZDxUEVYe{9|9FPN2Cw6Yl5UVGuN3(vKn81zJL6OKP~vQs8275rKQ1NMS%a&C`$(J zYE*j&<`#OV&0=JSivEga=9r+|6E#NT`OcMC&B-q7iythJqu+n=XFpJZp30GiAf-{q z_h+mHz^;azT1EXj#gsGyX_Y)y3ini*fY|B+PF%N(*l$iK3TV{Y;e7{BAaj*yr!T*c zQ-5CU62J`QHCeW&CAq8Cs!}j4gXtSZ*$}p43152ebrYhBDhfM4Lql{Uh*!`(7_V%6 zW&O|qxIuhWdHXlC<wLi+Goy30MHl=-X4IG+Sg)ys!%R4D*EYO&?Qy=*R3I8DhXj>2L(mUh ze!JkZw9W`Umsxzm|9N^IsHjnv1hOlao2GO2pK8|V)6KBgb9wm>-NcqNXU|K^)zsrn z%TWAZ{4#>rcnSGP8Irx)VpTv_V}F2;kX~)DssYGGQ-9Jp$}CV0Gm=??sm%)r=joFh z@Uor<&q*m2RU1SsP?hf_OAAzp7nzWopRD|mK*i7Fk;Vm`P7~|1TORS%F$M}iPjgeTkl^+4A&SsF>#kz8GZR^dYlXWWU?N7w0~vJ^KCwE ziaz}3dR_#-^o7x-`2HhP-_xZ=H06Z4@|{AG;ST9deU z6cXIy5e!{`kGsq5H5%^w$K4lZfwFUm#eRRuySOIKPH8LYXsRo2@Up=}qJwk+DimRM zjC5LIy&Ids*uTIoRV&XJCQMDdYrL7>kYJUY1UTWdx%iy|u zU--fYrm|~-rFS26)f8n--_U>%u>KR>41VI~07zb>tca>lFW zv^iF4B+RKXQR0@(yg^4WF~fB`%2+2qSes}Wg|>P5$v6wa{u8G;(=vnHrV%zaT-{Xb z!S;h`*{i#8wHm7x_dw>sLV-1udgB01tCy{HeylgHPY-PN(0@-aL*UG?S@{E1sNtY> zkRNCw2a)?0DcSuQ1$4#O#)yrV=Qrdt1(mgFYnQY_5Vd$^E7azrwPAXMfLk;!+lGW@ zN8=H`QDi#A_1M^J>C0C93;tq^y>lJ3L!cX{FRmWtX zWQ1iEjDI#XaVlAI<~izBZep3mCf$%|*yI%LpKVHgr*whJ$bla$$iY<3pxPiuokRW6 zt;jk-w6ri>ZbJ*I`!?tIFq%p~0>=2Q-*5q!(eI*0)L9Ev)FEn#=5q=XcnQ%Ue>>((NBSR z2bEikoK}E?I9!!Hid_+?Audf^G!V?(6vh5J-K)|g8MHV`w=aN=Mkky{J|RWL(d$#N zSt;m843je`lb^tww~73KU7GsH&`Rg`IlDz%Vfj!BWbBNi1$wLN>2;)C!rOU4+ocY> zoqw|n1By`iEr<&;UGMdbYAo|v9P-%+jd&DM)cDn2xDwT)GEHIX#P%8N5*eD-9nZN} zOfqQHD(ctCF1O8o^~1}5|M^?929wqh5tH}u5TFFP zID;bqK6f=Ud$542mLI*B_xc{!O4m!CIe*BJBlt;sm8bnd!RLmO#}UE|#wTV4gJgTk zCH6s9L3jk3(3Txud-nD>F)*pg9+CUC#9`S;`*pkXlPAtLzxGrO5Mm9fIj;k9C>H@`}R%@;m-3GD+d;D^yXU#g|X80|sT1DS{@5KKpmf?&K zHw@fIiVw&gm@hW{mp#GKI8*CEKn;>oyG>(xIbai(Hm{ssBQH>nnprtxUVmWl>W8uW z#LL+be$2~N=bx;nWprc19k6B6P{+w=g%MobWJ4K7*10)@(>zh3dihA&hyYCOy}+5v zO}lYtfYbV=LbDI^(=FsUje71guJ1ordO})Me(h8XBglM|)bZpA*u&vkEEnS~m9IKM zzIiOA1O(ZVc6@LeqY9Qi-G9-u*%KAPI{0ja;_wNvnth*IAXg|r^)d5s2!Ih%QC-Z2 z?w?Mj9K6w7og;PD7ZrX!eJnNpy|03l7xjUaKb1pnVHbet0`YBbJgjwlw<4DaiO1{z_9jnZ*5Tmlqp%V8`x%BoNtRG2RjuGIk`lG65jGRKxpyMK*>Bmg-GE1Nvma^?#pv+>;F+7f^?wRlheB$#<|J6Bu=SZmC6Bw+ zIiApJ>!{KC9eE5mbz*c5K^rl4*JH?x^Vbn%r+w8&p@(p?F;B-P>74zsODm}_-z}cd zfXz$(7PB#t{CwL^cYawT=U_pY9!fV zfl2FKt3xOZLQ%3g?E=J3z%@U;U>Ba|)ioJCr%R64V1*{}>(Gv&6qTSQZe4r%U(&vH zJ5n5L_KC8W?Xt^N@8UlK1Sq+PLIRR}`m05AC5p&iI;1l z3M$4--eIDSB;+Vn@2i@ZL?~>f_P6Rm!6R>YqFsP)NOUX-Mp+=V(u=GRq{A&rleR1; z8Go>_t#PV17ie3X0%M1IWs1UB9d{+c*Z^*Mx^{|iPNY-%rveef;`Y-%o@qG&!iKYbGQDvFf`&nxZe$j%xCV&_I@xjL^#nIy z<+*F3uurP1$Tl`ms@8f#b*r4XgWCS;NF{-jgS^{(tP7gri}_ZPLPr!vcGOv?iktp!J^|u*uwz z^^j3=*F<-wEMbbyP z6-&@X1p0%H5G@G=u2m3ww9gYR09c!V)eODs+%>)QzDPAr`;#SRbu7d?x0!DfzJH#T zecGdTO$ESG{TTr=fo)ijRh@EA%LD8f`nNMtSpGd?m6RoO1k0!V|_3J*ndd`C?Ab%A1ui*Sl ztl`Tp=R%0q0aB@t6bHDz-GRrd>}9mAOZWztV0_|$x};^#^>%Lmph{R6?zS%PL(w%9 zZptXB(NM0_(Gc53&eW~HCL^y$kKR1Nko0}9#H4-Vh>du;3p8n06f^!4n@!;C!nI>F!8q%H_U|XO(|8vDK2lw;e~)PG8LOO`-qk&-j#1-i z%#c`3uIeV3WO58oMQTMWv)~h#4WsCXUgQ$ zPOUbvS7q;kkC)&G2yXnQxGTHk<(IFf0v0NNz{9f-zWiu;JV5|PPP!Ck=Tf{TT=ES$ z6&ue5kA4d_)1U%dN#Z14K9}#N0vsM|>i6i2*J#^dZSjqfmxZ_f&jm^NY}!dl=u*$} z4VNjW0xA@jTsB}HCUV!E=Wg-i;r`JW4OO3)XQu)lBjcaS<2Xi$Q-u@Auev_R@lKbq zN_(HE7J_1Cs*e_$Dcbznm#C)#IDd}jpw`TeYhx=Uha+D(rdSJH<7E*}edF0;Zp~`P z)|LF@YHblB+Qd(@ZF%WJ>$<$)J53Ac7rvP3>DSOUyyX)#l5M*VeyB{B%J{avql2{w z<<&fG+WJMj%+hSiZcG+uhYH9ZiXMb^s*Lv3Go@=moij6KiH?4O#nzi5*?;`onZngR zQOAq2Q*=g>Q=mf_<|GrJ8tDcLG^7gLE#sdU5DMa&!RBU&3gDhH@k09CF5nPO!f#+d zw)}7dc;Hns+s|*6-{~jX!WgL#M(6U{&zWm5=f_j&8;gR@(PWuR{dRb{ywJx8CXXtd zO8xOJZ2ROfqPM15vqYY(w||wt%2zdBYr_cxLl5Dm<4E=P=fk9Jzx6+{omL=Gxil8M@IRymRTG7tyMOzDV1()^y>kHnRGsRN! zbHcuibT5{_YYy|POPj2YGWyQ(r2i*|&5&R~%*K@qHySL}98NS+C{XNClz!6#Q-BHL zQ9#fEx#!yXLtKnTD#-8E*33zobb-m~S|rLYeCu)*gk)!&fFSykMH5lFY0!$ao2}&D z+nXMAcEpb+m|hNOp2*l2)+>`h$CiKVG!z?YN)@0DCWOVdJm&lbA}2Oj^^JUvGz2kZc@27W>=_(~_5>GsK!Xzb z?|sIl94z7#tM(!P(l-1}P>cd?uKk9Nn{EhlquUBmcoyRxT(PB;*{Z%_bbSXLqk37_ zKjo8L$kSh6X|e!SyRkMAa=83eM^ly%>XHxKi4!xaV#VQ}1k<;5WeoD7xNY)@lqceA zDC*wwxUy7$IddAPmKUsnz}$?5DuG(?D%~jU>BxPoeZPXLrH0>-*ONN_+>_;i>5B|-uhyks-5_O;RX#{C!QAlHMTD}3Am!brvMcbm*CR}xRJ?DJjGzg zO$n4_4go@2K8*n@$ObCOtDqiy!HK8znZLCU9h)ftra2B2CEiTg`q8u#KQ(r6Y9S4% zNeYqf*VCZ!vwwO&Sd=Cl7odYr!u5$88^NT1ktp1rMysKqV?l3$l-ac6b@FJX;7a64 z_8Q^i$cg}!C*}^#dcjs8@VlnS?k8R4O1X%-y2Glv35sy|%}livZgK040O|0eU}Ohq zqtXkAuQza!^e}BbB*#9TVybj33=-u5O>z3F)7qzDLBk8o)8mNQ z;*^qXlcuI;&W2RZ41T-<=z3J=ad%yC_`+DyV{rpKiDP4KL2-xbr5(Q>=nPq2V6b+X zX%kV~wFBY&iVqYWGq$Le{ysN}V{q+%u|L4>E2qP>-zq*+M3mr!x{>1`?A6E{?MIc7 zU?$yl%9(*1e}Jj8=ZTwW(3Qoe5NI`BqiHs-w@kIWjNfncq~glG7eUI$0(@)anQCaL5OX_}oBBe3 zf1G^X+o#`8Pjr9$#0OuhA4Z3+w58#&0&s_Pg+NfHAafCJFN?1LP)BWHA zF`qN7mSyuAcmbRoqUb=B1F7M@#to<>Ql@WEPU)zZ^X&@R{>5*Qoi7^J(JimE^7UGP zMV!q2hzw0Clb|p;2I68d++oRz+@IW}e^wvz;UMfNak(cB1)4qN{fH}$F0t+uz#2qXbp>;0|w?hekAe_ii8l=NKhzS4>>H_LH2 z!goqgFABUgV`s-y{~&-|wjBtpn;TODTRoL3t=SYv?hEpKsV7h%dXv#GmBKpjF1D!+ z4{!tN+j2XS*>NklNnC-|g(k7U*pGMw1AfVQZb-ODuB!08ADANhtRnh%8 z`pBb$0_(xsUDEi2qLy%z(oW3WAl{zuhY^j9Nuqh+Ta(-9ze}B|lUY z$re*`Q`&vuZtJ$7^SL#W?rlyKi9#h5)#%1RchBAL;R-9jc_$X|V20##f2-#6XjLTS zlPvVU9Y(JxlJoF!njm}n*uJ+bVSE}(i8Zu{SJ|i9<^^}r8ZE+t0o@f^QW0xsD-CL5 zoi2w)P7Ts)Y^KAZIZ?}*ko$J(dQ3`{dR61J{H#3rE*FuGcFoyBIBRA2Y$~7fVL>4fb1|Y}{`Ib>~O@{gPqSt^VQbw&I=t?P?{< z`HQQ!;PAa$*!L@^aQDvldD+j$=T$!b+zrV8JbYbcGC3>ysItb7UM&9O=*6J-_j37t zU7edDOzq>dlk3;^*foXU>H`1fDlwo!Yk%$V@YUl~X)%Dw_m0-buix5a9=s0OS^3Ir zg=V4k(aTGhiNCQLaV*Wl*ZQ$@V*PJq#1CKV2Pfw}GIGUe7R?(!G(?@ZFOPpZ+g0BP zD*tYPZHxGeYh{yg0b9CQi;%(iyCEVffdBHs&8Gj$i~sJS|Cj03EvIfhJj1_v-+$k) z|KCoAznM7sHb+~yt+(sZOaFd1>86m2#|>*nE5IJR`fu0f7WR1fs`2q}-;XGiv!i?X z%E3H-^6k;C$1WP-v1_bZ)>?RYR^Z0VaVcj}g=GDx#8Hn85o*7PC(-}y(egihwcjrN z3K~8<2+m=H(D{Sc{k`e}d8u_8i=8&)A1Z1|q8oA}iKc6`S-#vVG&p{s2 zsoKIr*Zuu*{dFaZR-*47UJvqbv(?Amb=|qin_-PZf9A1*#`J!yH_!_ zR2+~Z19eBmr$ytQ?_Yk>8|%7{Q!|a!OYY*B$U^kLP+EJOqv?&i?c1a}pnuOJZ$OE% zgjexp5d}PE5{TkE)I9p((Q|ZCVL@^~zV+x{sHZV>|JCi8X(R8kLi3ETkzi=d+=l$0EMu&>t z6E3*uhv%n{)4sfJaX~hq;D2vDtzy5JK9vjDeqc%6=kUB0{(tdjQ}oN*QwIVN`sMi{ zl|&T8Foc0u2@49TwR`3!hwu$Lu6kckF=$|sovfyjcDrh)8pzi7B-nAyk{@pAsl=Q# zD6LIBh&;s(V?)U%@RAq^4TTBFpGnR+?It?nmC!t?5hDrg5{Y^lKYxVUvI<=wT!b93 zn180^ClsC$Eio%)G{%sr^*y`7^XY^*m3+}tC;nfxX(`hoHB)eV={1)q+tHeq<9o`U ze-LZnjs>q^V2-$!KOy(Xntdfdyt4QzMH7ejhF5@yEuh8d$N6<1r^JE+;P`O%Q(kwz z2t)%kLaj&^aC9b>QGXMp3!Q9$a_5P{JQXS5tOE8v#X9K>*G!0hHfSKh1~YTkuIMi= zU%0|?^s7ge@%uH2Lr!}1TcDd*Bo&lU7S znGO^pM?kADi|wR|cubbnBRM~0BsoJws9?83A0 zNM7!uA|$n=DbDMSz3q6#2(Cg^@TWO>Smh6n8_@c_Gv1M14f*+rSFvrVmyIEeSjIap z*)h2TKWne)!~j{@-c6M2bO)ZNK4H`T3rCkJaGm&OsimYi2#C8YcVu=b|C%?DjCNft zDohUfNp|FDbARhLT5OVV-moh0d&jTu45BPEs6drxNX_9T`3aRJ7$IV+EFHjo-KQR+ zrabuo%!#td(d@G9h-ixI4}#CVT!38Cqwx%FyT`}!h;{;x=H5respQg2LFtj9)r!`? zee1ll>pYGwuie#WVR5ruQWXVPm6i*X_qZU6zn`UNEwIwh6v1z~nP+5s~FxE1y74aVI_A13ZX z?!e6fA+RwsnNyt+9Dz1#xq&5k@fx|20}RL~Lqc#Q!fS-01_*j+-;@Ba$S52yF90US zaw(9;uA?0iO(N6Sf1JQjx|IU5tzsJI%8&HMXG0~fBZRkSzS3vZv*oSsgY0Xc{phcC zZ-36_<0QU~ZN#-Q+mSNx9}tIDx#Z|Vfg;49j7;<<(BiU9@$pcLZD%_>=qsqJv-&dk zU~Nd0050xUMSYCub2-0l$i)=CBO<$ik7dkko9Mk=TvYOd6bPnu%6d@PM(jvHUaZJg z9zynx#IO3Z&6FkYILNw8dmQ%Ipu4<2$A273-0a0&F8p9z)h6`EZu~m94nJ{RZVlbv zp1+KBQj+IOs(tx7Iu)Eb{MM)E_xIm#dX#G+B#U!SZ*Olr;x_F}uX4yA4r0Jm*bQ7H zYcgHr-3ODQ>{Q?>k4IMB1dSEe#5`^6O_9!qATl${KWoSKKj7k|lXBSRC>Tz~Fn{Hq z>Ca7h@T^!FnL{({0YhfA2wUF@4MQp0W@_C{RVCkJ1bHiJJ)u^Ad@2ceL-60ND)8AP zF!HxXw$X}yJyYc?u4X^gg>3c-cX+COaW$YuhFUn^)p|}sahf4 z@@Xs{Zhcd$(SwmvG)-cAT6%QI=GcH2kvv&fsmP}_uNhr9{sK(vQn7EX4gqfpT-2M;$H~$wd`^Q@6DCASc~`pB`vFCgxz?9{{8JtO zDk4yFXC1mlP9(P9FKLKdS%u+eyI87m2Q^v`^!_! zB1W^xOwiiDWzXZ0ACo26L$={G`*ou&AWtahY3jlqVf5J)u4_g!$J{fDViW=wc@A0V z)PMrqq$XGvSYVAqeaR`ZnC}e5$vA@4vL`8YfuW_{akEfRVt=+w)CfXVcOrJBh2KeH z5AjlE`mJ~mL#yBWp|gOvB4`gzV%reb&e;sMG#UguP9F=%iyhxx~a@&c5R}fX3mV9^)xv? z=k?S!hK9@L8-E`T8Ai+)pOZ?K89oG~r=I1g>O!2UD9&u{=u=G1v#roq43ah$X9q0g zKFBBNC@JG?8!<%1J`V|$EQ68nGgjRXQoAIGb}KVt8=!4Hgt%3$fzL#*JUBcfeQ7)IuAu=JRhZK`1mVb*nYA^&5?LFma3tw!OABq%$ z4h|Z3v{)WSqvnRm?r!Cv@J;Kf`mmsS18Oq9-F`!np{~>H7z5i}X^~&%TWS!_IFhg? zD#(iEVnHFF!ncs`m*i777+!DuFMLufOVE`#1*74KY`{i2?5pY?08v1$znq*#199AU z&`H&6$)w{!bToei7(bax=}&t{Eg~>h42fgF$JFn;?*lHL5*SojLkqjiUS(idhpVy5|qLHPNQHtQR1 z@#2xDU@XX~AgvcqlOXN$QTw)C7f&@_6?(?T8IL5F6w-f;yh=ww9)dCH#Qc7HdfF6U zqIC)Q1K^;oN&K0Es=0lfRxR?*#8vF|bWaTpj_m|%*arM|22x3GMQe>n>XxA@+i}V* z;AE^oGOV++t==2IDP$v$4;v>IQ&+9b>UY?wW&d|oLK=K_jZ4;p3TUg>KS6UKF;{9o zZIMIvh;4sskjw9#;hcMlY&>*OG)i~;!@b7&$(@1vYcpP%ap(HAoz2w7L@&eahL?mP zi~tD;l-uL85baN}`p70M5X8+BztmCV7=wuEP)-OCvG|Z6hgZyjpnOqEBFlRg_= zQPITDMpCb%9fos(X$_}8oR!4G@y|Pg6Jdhz=k=6h4F=$1N?>hB9$Q&2oIK(0Cxn_2FlAZDk%#y;cmXj0c&v>y#O87Yl-Z3d@heY$nnn;B00SaxoZb zIA?ih=lOyLvCNj{M_S}$F)scP@1GoPK8tA^?wksuRia#RfHUPox(6$VA=kG4g1UQ` zgv0_n0UDRU!~%(b6DEnP>THRc!p=Ug8)|58q{Z7=NbcVDt;ui7Q|9o)6W|3VX4EPq z6_liJ+-9y1;^oFWnlu2W%*i|8c*C;UnUfm}qOmJi7Zgm(SC`GU3XxhF^^RBa4TqE^ z1l#N-uhD;y8hmd;r$i`%>s1zm&4x$en~aoN-x>|tg2RS?45$8pcz?_nL$W9FYa#bj zOgq7RIlE)!!|zSIZb@reY5(sFu8GF>FZ6WNuO!axCt55e z+h?X{905DnUItXM+<6;eu;LP*K1(f0k^leqnuo4{?e!r1m@8#R2lTW-_%*qpwxMMi z=t194rJ>S)JNqSCs*~|%{VjJH!>wkC7>_oKFfoS2*Kt?*qT;yf&jK~Hcwee>K}FJF zxFEn{3$(O7&9n%vxY)Zs85m(zFqQ8l`ARbl)xZTwFg+ z;6^&Ot89y9?sHj+T!#xt+3cZ+MBi?!uon&d^fXR?zt~N%Paos3hDuOYW-ze@4kK-i zUTmnv)){oeW8-{-(GBJsj(+nHfrAPn%Rb*w*EDLxjG6xICpu$6Y>i7yd8h(Ij|v?J zsVf^jbbojAWj6z_$GiHChVS@oz|^myvkR^Oll&@crQg4~STHgGA3?UPfI1OqybazQ@2vW?1)(&E4 zqWc=T+{knOddXfMki>x|5Bw$cTdidYpx04a$ga6P(0cD1gPSmg<{b#W?it8z2NUI)uB7)`2FM-L@mmeaUWiqjo8+H$IBuw8)i zyYKH1J*Oxb@u~Td4Q+3yt-W|3>*qSAS1mqP9&hW|VsriF*#yS8n6XP4qvy)^e9k^jX(hj9&*~0l zwR~~3b~3{_T&8&>T|!G|K2EeCbm{A}ncLc42X?6S=-WT`Ud4B!yy#nD)~QZIz_K1# zLTAT8pPg3!s|H;7HtA%^D|B0PDHLRFT|$U{@hGP$r?zbUqQM~&@$$Y{t0~rhs(g8D ztjfM3Us-M2RCxWi0p*^TEr0D)r+l;vfAXBa?;5Sej5y2LS{R|FP;0|KrfCE(vqs8iSRpd(OPlv2XONkZjl*m|}3 z?}{sprizi**e;N1y4*n*B0%MTdD7@jBDm&*c&(>GRaI}%;jOAvL)K(FSxi92FF_X~ zxUDhsQ=7mankfDz?Z;Nq5Ntket0J*32USQdY_woTO(dALKXMF8sQvcqNe7qnC+Eld z#$I@HOP}ArJ9WoXGAiZHVGY@$*5QC{i7o4p^l{OKrrJ>`?+ZMJXZ{qUvH|<5Z79|pODcgxlnOwG$<@7|GhA&ka`*w`?lWSa1 z2;!iB8xnr?#l`c&XX^|(^#nJ@!|-ez zy;8QaQ`P3yR3`dA@A-@Q>CmHn=jGdfe>SwNk1 z;Sn-ZWq;m(v*OLvwv1)l`q%F9F>3SYcb2`GvT}dQ*3FNPQTrEh|Ff)?s~=k;a+U zv7BE_yPTc1?!}bjkNX$44$_1lGI1uWGAAcxF}~D)4_#koFZVBhTu>E7UNu?%Co{#n z>Dsop=jvy%J~m2k#BoB^YMtBeRd&(zt}U0zS8HCXM}8=)&OgkX$zAcYsspPq`Mjhs zRV5o~QMaX7nPuV5ufu!x$d6i6S9L6Znf%Q?bX}I^Szg$#Z0gLsW~;Hax99p-aW#)E zi@K5i(u3zq-O&vzI^wHIs zt1rXlPi4xd>iKg7EX+&Y93|-fHA<14tL)i-4DaT5{+eI2?>oY=A^&{@IS!2MhVtE% zh4KAc{ zc{#v>lqd~nBvFy58HtPi?^|E>g`_xYX$)h}1_+XARp07f)y?W{Q5Kab9@|awvW-#C zT`>>xWig#C{L2?iB$<+rHS>%1MV;o+WOlh9h7L<%y@K0qrD%%jglFj*48(uanLR+UGSu*pz!_u<8G^-zDbFdwktea#?XtTpG@;hjV+K7kAf-lNV+*5J0SW=XaCJe7>+h zoV@32R`w5I&)#rkfU~7a_B(vLe|l%CB8>f_+`g;XVojd*O1s!!72ZGPjg>X`xwYuS ze!s{!bK1T2X3m9W&j@Uq z1YpmcB){OZjRRJRvoos(&=!wT+QYXt_N~WX`&JfeJq>Y4RTlW%rNINNU2cCL{g6-Y z8otG_tG0HLI^gk6ReJ3-y6~;7?GpGQ@4eh?fvV@bd^Mlm+c(G`>7TwQao`I`_V1Yv zWl^86P&|aPTyZ{>3lfBXMU6_S#i=7=26{U4y14|J)pfJpR4e=Gp@iKw^-A#|KOB5v z53cM&X6k&GEkE00g}LnYjl*5VpU9D+I|Z>iELTs(^72EB11gy1xZRE`iq_fd#csdb z9QZugzU3OPjoYQ{?5*QNy}f%tmHzyEy^%xRG_P$hXrtL-`4NPzmA za_j19+-g1d#0dbU*LEIeZubEJrfx)^zBwd;a70*b@m?x|eOt$S|se7%<6 zgKRI$yR^A~w4K(%H+ZRQw!@8T`AmjwxOqNBkZ8@PwfWs+ZZp?yUh!?ey(~O;60HQc z#64#FP)k+}RtRJ-_(?L{e!8gCPMhB!^;(tF$Ev-nmarRVd%kEYiUDW4rl=PW)^Lge zxq6S)-6Sx4>QEQ>cayg@p24%Pm^#!&z0K#gUdtdCT#W_pU;^HVjEpb|30%mQ$Xw#yA#cFa_ zJxUROunop9%{^G3fp7EXez|My?`yXC(*f6%Ey@N;iLW4ArXsHk#p?OJ<OY-Imfj?!emwK&V2&bmeoVOw!39*iI=nMqHL_Wq_*7D zzQrlQ@3Okj(s~OSa4ofOfcMUg=UmrmCwsU&(mnLblktVpZMMhspE8i zvs>p2`f-Xc;aNGUTN$esFN3qcZsCw>U$ymGJ-K{(sE7OdaXp>y ztH-$|2hmcjxXSO#t^EtimOPTP+`S|(PgYXi*rT#`MeY_Hm8xj?L-W&PGUT>-giBO! zA0Bgjk9z?)k%n_U7md8e7e`5Ihh9~GhkRWxTC4fwPqEO%DvB#;GJ=bL*=+KidS z@?u|G-&dR6_O3Dy8rYI5ZM`6`>cF3USi#_=<$vz18^udeZy(CX1fN>jlu2DrH~G`K zv=D*KasB^Hm0=0Cx(sZa+rKdelyaM_Knse*m*pAM)=MDa%t$&@W%1GoXkDIv#nral zpQ)2VKux_~oT;A)DE{Kn4z#9_&yvP!H{~Kf*j{aGH&y%CY*uT29N}aorE|&hc5^sP z?Y`+&JT7e)QB3(ui-MIP{1)0-sOHIfp4>jtKo6VU9g=8#{CZN>A4{$qf11Z0%XXU2 z%c#sAY|wTt=wnYy`eoSV-docHfOIA3pm zzWMs~=IgEV=FJ=D!x!iCmv7F^hmYT!Z@+%Lbv}LkeB-?P=Dhp#2>`GE=k;sq{O>RO zhkE?|*N@+BK7G9X_VM#C&O6Ng>D^C%)eRqiciw&Y@b%{Q*7^GG^Dj4lx8E@bb@`>N z9qCF|kEPSlALZ)c^1mjF ziUM@!zfbL#nt!e~G}xEj#<|UBWpi*om(3|?YJaynGSVsTJ^*nxI2!_y&-_n)s{zfym^dWF9(!V<7=c1{yG$WS|9{{9(g z@3w#0Sbb7imHo z&%-)Iw&pHx98^zZz+)N$69xy%Ay?6VL7lWEPElyp2O`0f zo^I+;NRC0|!oHUI)cL7iE^$oh-~kv~ks0}Iwce66t!CV5vO{^Bs^!WkPJ`cgj6c@$ zb_VYX=UvWxQ5W#wDfYlHY6$ETrCyjLntC_6llYY54)C$1fnP2acDA_v_U`Mqj-EFk zfHf(ABW>{IE2)Zq-@g3q=6SvFLs$0tmEQSP*-Wlh1WP2ncnI z3cYG-j8iv%WjJ3oMQ)_VQuvAqRh}3QMra8$Hx7Ga5v}}CV)F7fht)%RHACHW9 zmm1zfg`Vc_Q@o9CFXrs`$`5%NUkAP`B4R_o$AYF2$P&R(W7s3duu%*fnJqO<{3vlF zB^ObzDIO3LO<;k(L}kR_9&tv0fwD~`M{*O!gRUWeb@LUs1YMKx26J*#IO?bwBQZ_M zaQSG7k4H+q0i#n(7WZ3}+xi`(I_<>$gll871-QeeNNo()4e?^O`{~n{KR*2Y>D|}w zQL4;%A{=m!$Baix^Qe)yY6urHQ}nRSN;(!tQVw<`Qi*=w&?lwgD-EIH&@)PhEK1$t zaKJ%-(C{LR+%WBPcS48X80C%7z~piO8C!s=awX$L2H`TOZ_cL(98 z>x)^=H&p&{KB&?^R##sRs~p4MY37^XZk!K)H{Wi4`u6407*TN-kt*^@$X`*w>AYEz zu;jYB=&nFSdc_rq-s+M>SDFQhXerriUv@-oR^A4pVSr>Vc!(5Cnn(y5W?R-xT`w5s z>S_IUI5M~xwov%QBzjzV4A9_CHr(+g_*#&R2(qohQ$RS?#9h`qKsf(aREy%^4jZq3 z9DK7dZf#H`XFF{E3!&F>d{VTqyI4)+JNyr?sA<;Q>#M7$rziKQToa=UE6kwt1MFWe z5Z94q2AoiUtj(3Vk2gjFiD#S<1_;5)a~m`u0#1-ZKP_f?7%!$bEF_|rk4|& zv;#@JpN4LvNJ0p}{@2Ib2EhZ#79vo8z_j1DlIFmH4EyWNLDy;Lt`=Ni$cR?#ld%ed zZm-)(zIs|KY`|yCB6wSb7^hn#Q|Yd*wi5D6f|6Q;la$7qaSZ^p5g{oK*yAOqQ*A-c zCHWcv7{m>|j`0;6kkOz&x{+v2f(U8GQQY5f9C~i&=ue#!H_4u5@*1DP9P=%I>sV5! zU=Hzozu96pn;o9*2#=bagz!bW0Q#G>y5PPFC3;swek8Vs=PulYzypH!6!Wg}vMhy) zl23S*f7>lk%9JFzf(a)I(4T){?H*qHDJg9~NW5!&1wG)&lQUnbFdz!Z3Q&|HCTVef z-S7J%@{siqWMya}!L@&VJst3W+;&Nx1O%POvy4K*B0?BHQZbs$&!`jzB#%-0u#tva z)b-lBOh)JxE3?4Od^aF54iZQI^W2gR2~G}5h$IP$rKXO&P9!J0=19Sx+&2x7uwanf zYWqQu6N&cMuOj%gG4qLctaRQUX&nVi>d6lkKS>CMNHwBhT~5eOqF2v<66>O!(=brW z#KYt|ckZObFwAS54J)q-u$(LO`*n-$M(P zNcmnL;_~DPfqwq@{{5$$ug+WN_U4NNkw@f+#P0^5o5@rhE%^nbN8kVO^%^dJbKWEP=t^5j#^E;dc`3dUeym#Hr2A5o!>$c}jDV?0lCBND zZbtu&MAt?R4Kf@`1$1o@reUL}$n>JcpCbgO|#w{X1Koht<(reA zsvOW|h3cn^#lxnaxB1oWZo94~RlVD~w=438h_~r~s@V+x^Q)|7>VEv)eb+lcdq<+Q zsGxhC4|zp0$5KIm;`WKvmKMJEEbjGepd}qM(0@2QVY!j2h9@oUQTq=;n-P=ev3F@! zD&y28Vx3f39S)-qz9HZh(KC%f{2Zh4Er}u89JZS(X@iJl|Kd0`CZ{eGiR#V)8P`sYc#GMW?(x9G<{E(B459u@`}0Kt)j0 z7IUf(k)IliPyrHW9W^jjnsLG>RNXKeAq<;~!Vwu25c=R>@=9Vox)&kBXUAJaJ-qoz z%-K9YJt6^rbBbz9Qcm|F0*E#5kw=ZF8o_lo1WS9|2y7G5i8nNUn6`;bmKbD2ZUj=% zM$9qGBq4el~2+6VTROocfaQt-KH9j6c4M#w! zXZV5;%%@o-K7&mr;8=}QoP$B$aF!89t_ocDuPn@9W@rBF>A-~aEKOu*e z(J?or>Ct?cL%ZGrVK-J!HcDe^8jz3&2rf0@RN4y}6^$N>N+Klq@$ZPuhe$<|(r~aD zIyw4Viy6Wlgf~f~QjSLF_%w2u9kGNMvKKD^;CfM-HIX6>djgM+K1sL1Xv+GEG-cSI zHR6M@o_@uwGHvX2gC(3T(MeQrVgfl%&=d}Tns5%Iu^jo#VTi$nMxwD~e%2{rAC|@q z3`c|8I2Gn=b4Subx)1s~cusd`Lp;JRnLYIgIkuhRXjQ^9+mYjEJ#9$J5vN{nrY zu&pH(21RwIN4G)QI~C*dR`O1+*irnmMI^PYwWXFGR_Z*?cyL!BBCiHP8^aKSDi?5R!mo zY}Hf$*cO1MLqigThX0L9GGv~NSk6w{HGkH?4DB_ zn`ezz#)*hIj8d19nn zMDj?2Xfd|&n(w7<vILTrVSZHV1GjPn+U9ga`Vv9tlDdEYI!2pvPH70qV zR6rV!_MPdmv^0cqv-G@ zBt<&Y)j@?rC;?m!0<4%FO5@=uI8Y!8k69x!aTE8YemJ<+B0#2qTSI++mdq+k07ZT$ zosc*fM-WDL?LrYlI)x5)9*$KT2JP7@$XJ4d_hZ$fX{U5Bu8SGxLB)q8W5%lVBM<+` zglIBpg-4CU*V0bMopfG*sM0Zh=R7dw!a$ky z_^7L=kGOg{V3+;z0E@tO!6jOFSf<{r6brFl< zVr`*2hbK95oG|>rg5s8JsM#35dN|q(yJQ)sCwzHustM3JmiR$>&4mi5h%%;)$WS7fZdOv)mK zzQe+38AFyJO&&f&p5&MmQFKHwNT-hEdXi*R)*wtvOq+7iqJHjD`;Etm2AmxBV{p#m z(cJMd)r=tZh^rlOUm81(3{AWRrVKd5%ZBE|PdaU?Lf^N-`yakO54#EmQ$22r;bb}v9n!$ zZsC*OE@_~DRaV$ps@^Kbsl9NN2kr7v9;X(WRr(H(_BZ_@CZnKpZ`eT*oZd1)ZOFPc zFcj`dgzybVd3;7KQ^?P3AU@te*yBZZy5Q-H5$hSdr`Bd07-vWX6?`aUIf!x0fB6Wc1X3!EY}I;m6OMWf)UsQetVB{bznp zRZ2urG?L#lfD^P&21gHhE^NYJj&lmoh{o^y-}e5k=e8s{4g}{_^(zjVdTM~1D`H(D z78`n?hSd_$QnA4*jeve3lB_INLRFQV%B0lPVE+4TH}i|d+D8He=wTl6K!nIIzi;n# ziSTfLH#ai}H?ETf-agQVfPpF+wo05U;^YHoBsnYKVC|0=WgPx%;374W?(RoW24CV) zGvBZC6LrrTt0HS=nm4&hUE-c@pAQ)Esy>w5`ZFQ4noNtmoix(+)eRGY6j?9>!Lo(e z<2mHFthhKoKPfTP0ud9g@G8aL%C$bRO7&uYEnC(WMJTVzj`goK(kh{{(+FIpSAhdq z|1aZJM#aNjV7s{&AZSJZJ6p?h4LAf&@0O7@*6}-BWJdem(s!rMB^GV&fg#r`4al$D zLLGP2{AkbT7{S*5t7E;n&W!46og36AA4gzh1c%kQhLu(zwRLDE0Z@RrfvBkxW4RlD zPY?@Wk9Az@Q{l3cQ&(jo>QlFQqJMgo%+ct>B(5}RyRRE<B}h)}tG-1^5}3UnNhH1mS_EPOL8$WNXm0mJ7%pLCv+fp%DNl7ZhaZ^vk#e;FY@ zUha@B5=9x|u6m51&P$ii4m?YLQjh1Nt{kV5i{xl@ax2G_UT|j$^*HMI~A_*|Q&0(g#*kh5%?L7!T*rpyvI7xU@XzzVcD$ z^I0iWZ*oB3h8apW0Nv<~WDZl|_tFouqaj}71hNdCagVROtk-M5sHIQ7YfZ)dGVUxn zI)FzjIePXHK@ZAg~I+$Pu3zj^e~zkO^RTOAl55BWJMVI!b_>Ri(Y=M7*NobM&tq zE5|2#mg!8rh*J)?&V4#82aE@)ccS$zJCRRf1IB?I8*T(9h_SbTtC|EfoG>))@{L2mf*aXfB|p*otBV# zj{cdU#R>7w*e5tN?YX7jH~YCSb2C{^hh#ZBK&b73R~1vm9|a(SkCSMZdzmpGGID{}77VK;LQVgWRo1Al@r4 zVPxA!h>Y(j_~f)*LXLZ{8-IeGs#m~?V*JWaeW*?5fy_`18Dhy$$uDt+CDEeIW;?* zkV76(bm8rP`UiS+tK;WE#syYXG&PA)tVp>LV+nduwE5*IK(5W?4Fmvi|U@uq}S;;og zjd$rB$eW6mz+_kQ{Ya)V!g*k^`-t5N3gqCK)7EMW=eaNl!F78l3D;cTJO2NKdl`Pw zipY;UDIdnhP1OqI9Ly5d&VYSS6iGod>v=ApQ1u%l>4TR^?E)Wv;k*&FVOudswDm{RncVp4p-bmcd4ca)OcqS*fL-dc5*pqaF>-E{fD5!55 z=w)Y4;%9N}X%<#2pI_W+9TmU$F#_>0wIlcm^M zBNUO<{*J{)@h(oRXOXZO4bpnhx&5QQ)S1C?wF3bPJ@Lbfm8S9QA$Lp6z_uGxi=izvN;Ie9El$IUR8 zs}v0(=^PDza7WRtKR(ll{L=T8I+${Q4NOjEIm;N7GF9~Z$V80zA4tO7jP6?6#Kk+D++8(i}i);cB40mzm5lBKIS}qzZ8o<>exf1T$ zd!fY$raVv=43-FWu1%CY_5&;DMK<(aO?LcFMd;3d(_4L?xKy5<6Vd~#y^^ys;Gc8| z+>M-hC)SgzvfHoNR-dwMtZ)Ndv`H}b!~TO7a3>N5>qk<4<61pFSv1IMcymjrrkqL( z^TjFQZk{ubcvcXEu(I|ZRE3%=POed=a!Zi15P}?{+EzE&a3J2sWn~qYX94X9=Sy+{ z%Vg|-w{rh?xCrt5)=n7;`CeG4%bmKk3~@6q)5|Qm1OMy7s&6MW+heNW4}WS!axbJU zU_0$23~Z+2)B+F&Zjuq(gFhbQ<3O+)JwDA)nhnTmy@Ggg!rO4J&b>UN8(HT5%IA;V z7p&U+_|BfhDYBK!{Ov!cz|zTGN7d=}c?~vyGb1T*Fr`9=AXBZo(XDq=`C4!%_9x5Z zY*lP`)Ff8ToWcRKSPfMC*5YVmCKiQCG$5uP8cvwBVP)OF!fyVddTQxOCKcR#(C6T3V+HqSQ)X?nkk|_g}+_VpyC1^h5e#gYiL>JYIZz- zy+4ZF#JEeIptmqYaKhqr%(p)GuyhdOi>H1lmm>l=^l}P}X^cwx2gmd9TQYm9`M3kA zY~3#a{nt9QPN$(Ka|lGQ#*-__k!_=#0_CD?KXfauDpdF^-!DI}wo%E8E?ZVnC=H>^ z$mTI*E{3pO)zY4u^JEW^t_PX`bEklRuN%dfd;Q3=+}$97{bT)Q`OrXDNBrCb!RY;R z6i5^ywvMKNtOOYFjgQcStyJpYQbqJcWk98W0p#&C#xaJbbY)iupa7|k<&FcNS>K~= zfQmEWp$#NjC|O0TFqnQmy9;FC%K^MWZFM}#Xh5}s;=zJJWG2{|jn)iF>wJHIhvnjT zHOMcPB*>{0itoO(b4@tY<{fg+XN#l@Xdj&6JL@f!%$E05?cnwv_T8y%_B*ZK<8;BY zMb_~FG~^59+lTNV15l8M&OCUW1G!CUx-}+*&?20&avCM@neGvgp0kcDkL~a4PZi_*BAh7wDY4QSI0>Ac`$?^gr0z})F?D7Ice@`^R zVlI0V*VG-`d4dDwp>JcLd~6voOS%-%KtoEtaG&(s(Xs><7ZxhAkXS?r4|eIM-Yxdj z4FO5g5c$lrwhVid{#e(;SKq)}5s_@65h>ZkNPOwxYgk4p_pXo4zXc zMHwob1qXwYx)9q5)lRuPzp!hRW&H%7n&dtO(37A#3#nYs|sBn!!K21x!fJn(Bd2d6wPkp@t!P)DlI3s z(xpyPjndqrC&ls5w7W3?pWr)vRRJA8tRz-e<9#50-<3#O(T}_%@o9D^CawGw}RBrBca=G_DIWrlc6NhuljWU=Pp|A!P94iv#Na zCM~pX3*i<@+H`nyuj-vh%7Lh@RP&ug+St{0u6M?k;?8psLzEE6dGu}%MHXF9f7hWD z89z={>GZQqk&+lq*OQ&Uc$TpCdW`}W?H-OvCHko6fkOxQwp=jNe^|-;JV&x5@6a-t zJ;ba}ojle`tx|cJrVk*=G(tSGmSJEe!nW#;@0Htlj|N$8b{PWtws7hfV<8MKQFm$c zN`jOPBugS~S%Wk7Q0%=QUiWwqP?X#^a5_CtiPe z@OA|OL^o^c+1>0te<0&}hTZ%yA@&yYh;IIO|Ek|iVM%_#!0=(UJGjdhA_Czh^ks;Z z0I*bqMmj+uR&E|g$lFW2V@^;lDs|$k>%ysbxdiG$N%41oHJKWQsO5f%h7_HsY7O`a zyjKGmGQgA4#R!7kAM>o+&Z5Gy#cU0`!~u?L+E$@$My#Tne`^vL!!GIXaQlgjU99Q4 z5TyC|cR3NT(!8?BKoBX)6lI@_A&%Dv>!fe%3#KxlN%rp)SaUxYS!VcG>{#&{nLSu ztM%61DA8J`&+t%sRufh3z{D50C=jXy)MG)CGyId#>$BZvovi^M9+^&BH-sdIJXov>xJ?089#@2FMS0bEn>Z_S z@e?@1O~rd_>=E19AWb%aP#MWR;eTIL=KGEF-RuG7T9=Xc0u_H6Oe|~~s9~<`;Q7!g z+iq*@wS^q3;v^J(U-gvJ`fZcO5I!5w#v-T&QS%hwZ61D$B~78}Lw7J@&@&6AEXyP`(WUsZ4p91j!$v4eu4-|ELT=>R0y z{ElX3J&Hzoz*)Mlh$0e@ING9%KrL~?`<2AZ+mr0~8>yG>sR!^Yr92%xnna<^xN(-d zmvuKlcdYUaVV|}fi6aLQxvv5t;Mag7mA|)v$19c6@rr*uM|nxM`R`iK_Qb667^SvP~8xv3$%!?xzAx=k-Ql<^kbKAef_}U9;AO{ zrE=7JN?m`p50F8z9(%G|QRh?|V$ITB9j0!8hw5zX1mU^NFoC%^lxf%B!Rj!*=Wy?x9!~)|G>%uTcUd>U|Z1$CZ8kW z*r+yc*~{-Gb;LPXi-jrnS-Xm84OLO%2wp@&&zH*^srdVD@5ga(l|e6L1lrZJG63vM4`$hNwWVj@ zIx6zS1>a5N-HX4wa9(Mk{8F3nM(s|WUjc9qwT@&P9sT-jV|kf6Dtw@KapBJs*FSkW z8a98Oy{On|XLWITyxhXtiuJwMVHN(ud(lg#_b=r%3?qagjwRXE(>j|ZEJm`#yGZRC z;tSCs>OXbixJmP+%nO1!hZy!U6oD3-2WOf1mTO_qr*JVzi*{26G4AFCpG*Mq-CXEV zp>ME!FDst;dG=@C+!2U(^+V<8z`G95n?ZjKHCIaKHqu(&OLJeJxkZ`}4oDTgk>4RN z$>W8MZ%tjiIkF2;AzhHRI@iTMGY@Cs4z{HcW^c5b9u@{V$$6P^P{9L)GIeY2j12-n zEPS$w?yuBruwFQq2M7CB|A`0zN{n-}Lard|_54se8Elt2qFidA(RxCnubC&3Q$c?e zU2S}n52^QcngWrxg9D?Gm+($LWiN-EG!@B6WvsnjJK16m8oUJ?UQF(8A=Xo_4b->j z%>H}|l`H>=yV7J*%#fy(wF-{f#lm5NPHSPYz&j-UJR9Wwjh0uT{cCmyG ztGIHStTZSqe6XePt@%DJVY7f@*kXS?rH%kY-Brc1=A@W_wQ>=)thfn*pqCO!;6XTo z_TGBzul_0w6JTjR3iF}~c-eU_t)Yx1cfEki3g0M>cW|Wa|BD|<|Es!FMD1p!+u+bN zk~B^METc;nq0st2H>Hr-Kb@WQ_*!@l{x-4CVy^xEw4A3#{;>eHUjADYi3@)St<*~o z?7_piQ1oij#abm_!8L!J|difHLQe7Inu z*y?9!pcMj>VRDq(D?5XCZ6mf06MJv^_{lDKL?2+!{qwkr?dAaw zIILi`q?kxi;CiSo(pu#i=1PAXWVuxjF1V9Zo}6PY;wfj!Gwg)|)Fb*^11yO}bT}r{ z=`;RB&EbvjOZ*}7NE5vwJCqyKRJWJba_hhsX;OHi630ZFi zjKR*qSWc@U(Jl|G@l+}HlA${`YHf%J1~>SZL&np10~8?J8Xd%Q$Mb)#U9gWrXCM3s zP(Vh#f1VEo)yJMTmhMx5-D+&n?xeJQqNqtH&L1rj>Fk|&RKuA1CPo!_MmJAq_2LE| z@_Lk|KFKLQY$4oJoD9bXfbWdl!}){qxb7D`nbkJ&Vv9G)uu1Qo8-z@M8 zmX=P*0W+2B85L1pE>wR>$0(9x>Xq!i9Qh|{e0 z&!U~7Kv>pmYb*6ttbS-rFb~8 zi}V{LYO@S1+fZKAQ4Yly%e-pD7~hTnQmf>x6WlfGT|E_ha&&*)eZ+B{^b&0G;!sl_ zHDBB631Foo4w3bcF?z---ebE&x`inFZBWPXD7<&D|EPkkQQf$IWHj6l;CC&Pe&>3iARXFlaZz-AqH<0_(9}2`DCx7x3q>2vWQnZ;C_*<)ha<}y*x;l zMjinqfA9ZvFKeiair$~c=+!*+mtf%817w0_^|Oy|voQpr0N=mTK)bF!c$_{Gqb6Q0 z%+S&Ps?00YXhPpONIkQpLEb$1_0o2ZbN~gon1AjZkR7W5ke25lL)IX(rK8Lw8X+eP zwR-B?#7LYeuNhaZqD#1Hlsg{@k$X<{u2k0Af1&Fbuw5z_x*P!s?d$79i}2W=e^~*x z`9hOFwPVP!jcDAmL(H07XV1l~r?$c;$YSNFyQ$o*MyC^3(6m^WpskdWKd?W2DbVn~ zsm;N-_&m ze+c3TS^79Y{m#0k0u69*70szyb*{wpW7l*bPRGm#*q=n>KdEEjp^Za(2DHs*_=sN% zaHA^XzLVtyBkNqu9-RwqBi(Tqt=z$6$_5}MSz?d6{b?Gt6?zQD?Fn!L;q z=g>nj=DVngA9CKayK{}Q9yxfB8Tg+Gm6ZcQ1X_LZVYS->g#iH-w_ySUashul+Do(S z-SaHJEShXg0c>3zc9h=D#mR_jQL!UPdd>h>K&Zc#A%2;IQmXAile6rq-y7S?HSG_5 zH4Agen52uyCHne+Mz>7YeYxN2AHmZN`Fa-47S0+OH#saD^+p#uOpFTx6Y8-O&!Z4% z8{`2 zQbi>25Kdt=d5i)U5O@_M^r3D+8?X$?N;afCd%55Gdxh**0Mr}qEOnd&^`|Lh*1XTT zSJ#ex>ibkMV({VgrT2Ee=yNB}6^UcLO3(1gD3Kob4U5pq{x)X5n@o3c%77T1M*zQv z5`>tem6kf0nrHSX&}(!p=_cTRG<8p9KM`>IzCTHm@H0;E=jNFtj1q4R;f?oa71&=o zPXe}QLmY@hETjOI3v$Yq*Hxxy)jk=K2!&zO3X40wn=I{a(ywgMte6(u#s#3kfb$+? zgvi;@Fiqg~VB=yFD%ZxVhi#Zfsdg|UOTHgHUTsoEo-p3y#On~PEM3-rMZD?f`B_l( z^poy9vaRY16|`wlz1-{xcKJ@;MVUne2D(c{?8Z@2D>`?26NJVc-`-ItIsQ9O?y~)M zCzUH1TRGY3*rkWiz%`YW(i`u4t8f<1n@xO?0=plj4+&xDahH0@PpdRnN+5KTU^oxg#3Vm>JOO<>z4#S^wqpPj`)x+;{UU$g53@9`#(!er~I(;vle2 zU01AB(hc|8oq_gBw54eu^=s)`9bn>7KqV{bV}4vKDy!|0WSt`Gw*%V1Bx~c$taaH% zv@Gcy=z zMar~{IXC^Vdy_6*L{dxQM>!%eW#Z9rKva2x!>t@`TvbTrXgoFAOV6q|SgQ(>jf5E1 zu;cmRw{VbnZVbf-_#;c)t3|+_2Svh4UpaRZ1^C?QZoJ~}R;Rdy4 z_RoEzc6qg;Q;rC2^_tniHnFCt{4X!RBcR@LfFWIfx4V2*R)+=3;`uLcXi>SdKROMCmrgpMVD|( zud~a4jq6aUoYhw9l;@7M=>QdVAk;K5vsEj>qjN6EirwD2H2vw=5u7w^FJ61~{nI=_ z9Y}qsCUt11{Lu0iyPm3!!F(-Nu0MVZ;XRjYqhL+1!`5d`@$jSLd5G4g|;X-c^g_82CVtOy$%R0Sq~ z9k4Ikr#F%7Dud>dAVa`GQQT(OSloPx3UJr~= z^ZaT~o-OHR`DgZ5*#vdk9Mu~=frP_?FAJ+ddjBS^sEcULDbp*&O04U!+;E;PO`+qt zV?Gcqd(rXo+)-iIF0jGaJASL&YpCLXL5o_6+w--KwZ458njwW5oHi;Ru2K-Vo)n%U z4_DB$1d9Apqk%sRj_<90RI%bd!F zG>2m4TvDt(6h`wTeKsvNh zC(IN#*n8v7>yqJ@qNymf0Z52{BnW?JHPL)6Ru;$v&gwSBS{ij;IYFTf%~=R#z)P}ayrE`gL|CIYS89T%#cLVHF-L{K6dzjeHSWpuo^ps z{oSbS0GS~*E5_u**Am5o8B?o1YoTIvE4xb=HbYG@Z;@{ocxN-AJQPzSqlE^JjEMb!f4=DU0sU~9AtB^c@y+&K*l8lqpg+I z>a4hdW?Cv(poh0AM0p-?7c6id6JGE?k9g6FbpqeRcOhv!zGs5nYV+Yz!I^pKP(1R) zgneyZP>+|+44ePj6cIrTZL&!7G?*A4G)I)(akkMD#O(gWj)|=N{(!{o&nr;6|L(}- zB420Ay*+N1UP)CO$$wjTOT%&O;{h~**7JZ{=l<*y+9nO+;((XtQ5v?GV1nb+gDK}0 z+A)!x?=Wc36x^dp=F*(vSiC{ox5uH3-M-{cP)g_dJIK`Dv;ID*h)O137?j^nl@xOS z0$?1)8nP+?x!U`v?A0ks)q0?EZ{va59>@u{&4>T-*Oz830VWdG;WIsEbmT}|r-U97 zf;Ji^PM4l70Tx*~Wf@q)kM^IkXghY?lyl~Cwnwp58wpl-Y5T$+Wr4Y%KDkmb?n?Bg zF5B)8G79Fl7r#@>SE6a3XtfJq1_{g{zggZuC!JDURTz9PsVky6a@SJugzM-Zm#_{4 z83A9H$_@kUf6vZf6pU`zhcA7YjE_2|lg*i_YOF8#g9_Qk5^3!QZyTV=`C7EToT()3 zpxCXI6m7{z7jGiEPIfuCZ%$%(xQrUht9-g{I$H}_#^*h5Qe=51$l(I(@4fF~uVe^k z3E+{H{sgjnW&sye${2tAu-$KJY}|;Hq0bi2CknK?e}Fbr!W&5yhk&V#kXhP7%tTOK*_fjvzdgb^R)>_f2p~mj*QNB<#xX=t#5?3u{u83mgw6B1WNkR_$~}KT;AK*LJ>htzFBT zf5YMWN7jO>D~mxUABUKJCMtJVJ8O4B`7X|CVdYX*w9(M9;PgCdtW0^VH~3{GClA@_ zRT3l|!5g6K$3RlhJI?h6fEH})s<~9ISOc}H687|0wbB+{FM^c0maI#EoNEQh2~{PO zvG8$_gqPXaaPFA}m2Aeb#hi+=3Brwif0`EF#{WA-odV(@>c3nY9*Bff2JfIrv!h2K z1yYwSHq`SVZ0x50f9YDf^Ks3>YFN2-C^nIJFV%VAH7^Wp?^W@BX)tB0?qFBW*NME29%g7TXP+-;3LC;-bUJ3 zJK^z&839~lovnz!==*iDX3^E4NvyeAP$V}J`^7>K>%`*u(>B@iN0laICZ5aZ_LHHg zd8v^-DxW3@j#w**CJ7O<9Ega7nK{A&rPxVOTqo9-P;S;EgH%UYWs`m)e-@D+Zn4nw zi=@FK{H+F6ZpYE35{-t|A#E6M?n=MHGlx?rNO)(Wmp2V_hn;#6X_($;)xGPE= zJhT;UoKCaEALy!2iCl=vO&Z|jotz)6F)SiQD6x*frl>Z7Wh*9iC`+3Q62~fYIbs}x zBXT`X+^2=58bIxyIcEK~f4ENCDgW@Mo$6N`{pxcUPojwdUc1n8tz#&m~+__;x&ZukiymU zH;4V-%eZo4r;b$plpcq`s2==PddmyN8PeuMqnC$cv;Z?recvTxe{FOU$j7$ds$;@C z(5*(qo9PZ!sCh!By_=e@Oj5BdPd`_96(`YNIUs<%L*_YBQKE9kfEg_g#BZV2HRPo$ zV#iW&>fyJ6_*c1*PtdU?T5JPwex*&|f|8>u4)DC~tuK0iKs|Ei(}|hZ!>bFhCVT#l z?bum?7#F}Ob@nEOe>6_%fGVdLJD)FDug3p12%L!am8#EiiCoAaS-L!(k`V@pD9vcV zd}2l(w{syD3kC|(F-R&!E8&RnQX*MSO67!F6-@Z?r7FP2#-FdgfEB@*9wO$1jOgN` z&Hyq29M76ynbW~r{T9Mc4+*8( zo!kF$5y&ZYf6#5W+O`(SrjOag9>B+*iP=s(q;1#PJDBw|i^}2&AIXLaH6pa!uVpBq zy|QD9@(XIyn*XY{D_PzHa70Ze+#v4t$K1yEb`RvAzzv`xQ3E< z*ps*Qft^)cfe=C>YH3Eusyi343DF)QV1Xhrsd|W-5z;vVl_}m%fT@Nu4IBc1-z(Yy z)o8_l;2$=vk^GF=N9C7k)ou?XH6u5LH|2rrD)Uxn2eQ5$Hde3FgL)k5S<)Q<2Q4hF zel#2tfBqnHk!u^@$-Wv8;pKc+GeFV{fPF14jR(nA)%@BJR)^qpaZ^JawT71qCSJ%@ z280+>p#uzJxegnW2hs?uEg^w94xN;rgHE!Rr`O7+s;)~WchY_evt$zjArtKu7Z04U z(^H&0ZM@6V#6m7;0?YI@C>;jyf?JEbzV_xZf3@1;Uv5S#fQ*kTAs*k>oM@IbN#@CW z83FJonzMNV+>~<{yX6)sbC_}o0EhgvgT3<*_}*g7>bE2`0(7&WPS0uT?lf_Vw;Bm3 zhg4HyCqvp)EK)9TYf6_8g!L6%m$Sk=h=dK%;abIm*xnwNK%)lYbQVXu>>DV4Hc*B>u{db&&-_VmUzRGe`3gjN-Cn-y~a3dp*BW|juGG?2cmC|5XfVg zvslWt!_9|9SXpk8`EuQ=OJ60GgjUH*_`wX+gzu6sdz2M~t153HPzRW~y;ObyzUAvd z5ws-ksn)$^%LKBr%aEiA<4Qb9h0cJBRf7kR6LaR(>wj(wcp`{V6c8`+<=Q|DgGx zdph-o{{roq?Gaqdt%B#hn5w}$e|537r!47~l;4dyv+3a|$yHhgaZ`#rRrU3#YsDC- zeVI}O^T8p+;f-{escj*4z|rK8oE_ZUCUzYj4i1^F>UN=5MXtdqJ>at^^_x%=vcjI% zVOI>cneP-foKWm%4Rg4!fN*jEi&1hDE5<9VAzsqPSwH;NAFVX>*)i%uL*C`hW3I+OF_VHUFX9=*CH9C)65y(I zj!;+^kYyk0_7JGAn#DLhrJB|`*+HX;$l5#t@9VfL`T{oqQOGldLn$X~mRF0_mx@`hO40Ae( z_T%GcoNP*fB;DjT%&Sz3^M1IfM;eWHe2fL^++JY7v*zD9>7r^rNN3Mfl|T&+s!*1#>~?k_eY;ijFICv>046t9?I)lN2`T zpLq}SI4U-U+VUuR&KxdEt08R@O6zMRI5s!V*=ka#gu19$x%q{)UOXib7U~9szZG$7 z(9*{ye)~FaY~&d#PURFuc&x4zczdHdmlzI)r!W~~M_hS(){?yF)|KfP!QrMO0d5|E zZ1iOoc)FL2h~&eNw^t2q(Cg->;*;KFN#vSXo#OS<*kx{_IdDr&$}krEFhx%O!`*k7 zu$I&9`4nT@17yk+KK1gt70YH?8a*q6~+j z{vfJbwlCzHOT`fZXPLJBULgb(MH5e!gY<5%Mwp~W{flJr;()iUb6SN4&^gdJ6$^`umij0MDdO{VD6~sE>7 zROz0W2AVH zW`A3PR!o>H$DGN23tWF~A_fey+HMiJ!snv7lvVn?vpE=>DpfbJuwyn8bQ^6+T~r3y z3F^bu7MqYks8et7~WJ|~H>3}NS8cmq@C zA$t*Ls9ID6WQAgj^yMA2UC7jMY`GD)w#R8HC3I+EHZkmQG;4nf{s;U5+{8G^>F!IK zbVLEPdZ5qB1Q*H+`YLA{)_i?#0w{YY#6sDjIhP|z4=frHFU^2GE!d>H7G5Hth)UxL z=GSEtNk-8wTwJTzCp-bQtO3hQL~c2_p(s~Dw1F})Zgoczc59Z$V-&OLgyxMpX%;fz zgKmXGN#B28qz)fjkB{_;|Nhy$5QQZoN&@=$u}F4!(lOJ9GHZLS8TyNonJ27!4an%u_n#l_NW1TQY&b-Pj1*D z@?@!ds>R`aU8KlQw}nx{GY4QGd#VH%O6(!-#rU+a9#I|~;J&L=z}Uio1>egx@I6i4 z)v9{3SyP}F3=L?@_q0#}OrCn1?xxGYZU3i7vOz7tOY5?J|VkHQhOQa3{p zOhsF+!<-y=%k)1+`Yy;t0@mV`V4;~GmOzxd@pTacrwj499tMDSACh=T852dImiyG% z&SZa_Bd4vW28*sC8d$obse=f;QO>2J6qQnmz!3_dN|DYW?izLp87_C{+GYO)!c&fd z&#t@IEqCr{w8DTNWQJ8E2ZU;PxcoZdb&#tm&#Jcg@ZMlCWxN##GW{ygA~-LY%JlwE zAPJ0=$VaL!8d&r1CsH#~qoNS9dQkp0G5vo9!l1E%}We?rZXV&feLJ z@dfZ@15-RNi|+)y8g1L`{@`+R!}aQXaZtqSjcGK}yKd7i0)G9{xy68639>C)w>p10 zIzp!~KZg70?&=OkVhkwF>1!&ZQ?l2@n$?c=CoL2f;n`rkUopx;waV8?cHiUR-K&b4 zY|CSu&0_)s?aS(d2gkmr?;#0+TgmQz--Hx&D8t1$F`~c|p-=l|R6S=NEAI6SY7lBzF zWq}2y1nL%PC}FQ}uO=KHoE zgiUHiw$n={8zv!_Ncsd_&C(7MglPXKhT>5CE|}(m<@jYlPXbf+;?YIrEDd`4W;M(@ z_@E|?mF)#Xo*}G*bea;Q3)=jVhn8km4m%!&W5$53qa3tcq1Mzt2>k;J~pJt+lsevn&Cre zu$Lf10Vscmj2Sw@T<}3Z+N%S7y7kjt0lU*;bCyZ{WUCVnIhE#k@1jfdba0Fnr2FE? z)lpT~j`k>ciwQ~Dq~+-%V9+?1Cyr!j<*A{umc5ZtV_&6paXZ<+4o+ud?Zv#yz0k_5 zundky)s8^;0S{zP=A?P+Rnk420PqNu_<0%|vZjAB`u7=@_2_L#q8X{PvC{Ihm{Z-7 z@r9qTnp!2z?i5zL$2%Nz@q0nr>jf2pREJKHU>%&8CSIb{$xP)2xhMsh#&YKGVodL5 zNr!~b$ZxtzoA{TfXo;g>8bV}>hj!Fo299BH?;|xp5xur3X;vnpl1^XCtnggja*01L zst>5FO)lY3cX_^WEH>JU@1offmVN$OGVZa;WRAuQcS6*hE^B`uDkpoD*$ZpLiojSj4VXA!S^$zcvnPQ1jrrQH{- zucJJ`27CqXnhImn)ZmI&Xzz`Y5Qh|!Omfu9FmezRlJE7v4yGF=G_l>uKg`=E&xi!4 z3e4}vg(P1@cPE(_x8xQ3O@v>>P*f4-H-bjnK*_B&+NelA^>Lj{9j)c@HCj|wsjhz! zQW(((u9qu4&fZ4nsw!|j)3C3}A-C2ew~REsraX&1iiI0zInMmZ0NJr`VgWPh0%Whf z9tO^ahSu=s(N)8!7>taduSO^okBiuKIQ6nslNs!Ttvd4z9bo5GqU2TEC9bfALgyDm zO1M>I2AE~tda*R1VOJMkL|6+>@uhzN2OjO?YMGI|%a4%Fc~M0Xb$6#!eag`lA?>Vl zH@vV$c8Cl|0a_$pq@c5m3Q1{I*K6h3DyFt;E6nY7*QyfwP@y%|0SU=FM_a67QP^z7 zyPf1wVH?)!oZxvSyUM+RNnF<~hv2W4Ei}DXnz5huvlvD0v1LzHvOv!s1#5rz)bOr3 zj0Dn<6~tM20rTwAFM{KbJ>D`(2Em=PG}ORsr^YcsF~Ih4x9?`&{al$ha%J{GuM8F7kD%UDE}~OQbiutcNV%y2Vl>wIYJz zz`V&E5FWI5dox*@aFDakL+pRyi&hgsCq{!463h5WVFJ*T+q3;^rAw8_b7k6*!n~^wP}@1%|Le*r&1$Bp=T{sMr96%$kI` zc$wae-^I}(is-EfIFo>s6^vUwZyZCr3WQBzF;z~1atSbPBywQ8xfVk~?3bV-vTQ64 zeA_6d(_VJDTA%u)PfQqEiPXemAGEk3g>!V~H|gnnk_c1a)i^*7ZnkVL(AFaqnC%T& zQx65|y?wV9C<8wNe~)Bn7yhCbORWZ3#+nEA7xo)2m+k_UK*w^kRIfQ3Tl@2){d)WJ zZ~pu@-}dv*|6C+RfMh^giCaFL*SJ+L-WB$uOeqr4(v|d$iE+sBB?q(qThjTPnoV1e zv0B(|F||l_;fU=_Dd8Np>tk_HjbAH{rMJzD<}Xw=NLpTEe_(e}#ClccYaZ}IqGi_! z=jNjW@V>>2?LKbj5W>rFpLm(S2m`}GtAhATRu4yEvY9X=%gwTT^8`u=21rLNRV>|7 zV7x<3p#pQAHQd1+mv8a^xL8TqJ)F6bcAkkdK{p{T4b5tIYP~Xx$N|E_A$FV-AXmYw z=+|B^Ij-4Me=XYU?IK!u0&TSpC|67VSBz$dW5y%lldOb<7dTod0qS(czq*JuKb@8B zP04hog>k9_3|Nje)N<9aU>-h2ArQ>}y((+$8uCUH;z9e^j<5v$kJsV;N{dMuhukLm z>ZH+G7HTj*rw;llO}9!iiXui>)Y;d^OV66i6HG!ne-E0m*>?B(Qi~&()U)x-x_XEB zOt7w>b`#|*ZnihX?Y~@WcLM3wBmZh@UKFVtSa{Lyqz(ntva*P8Ac*zyd%M}7#_ZvI zPbbRITh1YLO=aGn3;LPx#SKWyE1?0DnwYyTs}@TcEkEAz|w)(8F1)0fi|290R{+CbmzuND{0j^ z+0sNX%IyyC+2O1Qfv({)DW_kMOu@T-`aRcvBs5|OWnfy?WLqY;Ip@C@RD~~xVz6X? zsM{x>My#sd-4|zz10oR1#b+^uBA0rd=p&NEf6Ds;Q-MZKEw45bWo3dUF_faMwnQ~9 zh9U@?gq+xBgs^m5G=4w=U3JJ+-@#4bZ=sdIBn?|A6AI2aTHLLyE3m`tP88%5iMZu~ z`Hr17I*Q#Fl*M*d?ANs$zZa&$T{s`Ms3u$!A6j`k<0Xkl`~9esJ5fHF4%*!IO8GzF ze;aY;oqD;Vh22$y#p6+pPlLWJNGL_7w!9yalkVs7guE4N4^+(a-3L!phd@9tDIemb zvPCSee@6ML%+Jj^&U1MI_EAle47A3Hm!_hEi`IxEVxecA&e;8| z(-`tT_=?{TGzPz%*d`_07>W{T!bJnHDKwpU<*@2iI55n@l5gXqU^tddLm$$I^h6_< z*p4(6g&!QHcdW(#ENjg0>X(zIvR9b|+(<3C<#}U5Y{v$@>b=7caVt>U%QkhHf0%TX zQPDF^3K%vXmP^3ia^SFM)1worg*-JoziI!j~x;v55|OzIKUf%SDwOk02WX z8(U-!E*RRg_fg zTZxr?1@;VgvEy(AVU&m9IK#&wi~g*iD6vXgTe=)ga{M9v!+?ySDHvlI2Xrpe`#7Po0bf5#Repp-;m zrZbgxX>xWtKTo-9o-JL7`VzMCh4fCD)-IiBe-=#`alN~qUGyknOI;4vQT_rsYL$qh z<+X_&$_;>i9s)?f+lrWnU`9kTisqhb%Ts(9I;7;IY~f;1hP6W@-v&YiOQg1zy7T_D z3&6s9l$b!Zo}HLDM&qoVe=nUl3ShkgB?`a|;k5`kF{JNY3sZIp3LNw71T$F^W1%k} zG$raSg^@}6i?qapCx^D#=!qoVTn-!WW$1v?6lmE;sXL1&N9KYLkX+aDAryfcUb9yj zLwv^;5$D{+!8>Gd>j>irWOD4}mchczas`ZBH-8)%!1IO#wf)nCkq zE>BU5`^qqNp5`8w$ltFImt-&l!GF;yqp`7UA{=rhe779~o5J{Lx(9TvEF#twhRz0s z*>`^cu)QQ3GzN-dSAjU!Sv(|gP1yVBEm1dAwQlK|%9kU+d$eiD>& zZfFt>17G5n3ubW#Fdy9gcps#=piqn#d|WJ#01Zhc#}s>)P2wr4VNwqa5Pw~b2iLZZ za?l6mlcw0ZaVSY^sweEkFJg75$4{(Vblik%*S9tqDX&ZYkl`evLOyXaM5SAuG;@Kp7xIyN|u3kkg zrx32f+5eEn1-b4z@4!d&?0;qb+a0oLGU6t=?t2k={4b}-g8h*}-L_Xmq7+grSV3~x zbxXr+jZ>N)#uY*@iLnk)Fvic!02k%XF4;6HloCKi@pKg>aVJ&9@`t#e#;tFp$K#Qw zfkN=K551-T9tz6+^)XJoX?$}xJ6KmO5+!$-^Oa6>TXe=UI|uFvaesD-Y`jNyiM+!j z=qwKjJX+dqJ;oxNd0YGdGj`bB3HY>3SmM#T5$RU4%fVAt?OZG?VO?@nbw-)fC02Hh z)0f@q9ZoJ?l%&&nid%(tpE+Vz5oOjzMb}nSz%N=J4n+kCK+!2$P$RoiIF=M81>*|~ zxe9w*D?^I*Kfska7JsW1Z&uB{{Fu!|gt=6uCXHL9;uyg_^l%cg@TAGy{Z|6iP$B+s zL94YN{MMNQqBp**&LMj+`wUmPV&xcA5&uJTFk$jm$M)qU<}JlR0HLgR zF3~`H#(2u1N(DR0tg8@IRCbFz&kk(Z`acMAfCYrTJ^ZC_Rkqs!D)^)4I3Ug~j|buo z3B&AEW^>99g6huH)4Js2qvFN5Kkas-Ld?}E8CotU6n{UrH{Ig*oYHV+eyW*6CXYcS zv%D#N-y`}TRX3)r{U{c25K!cm@HOeRMPQ$jziXhXd0PJhuaNYrH#ZzHV1$M?o zq_NBoxAJIw993JT&5F)Wn#3G?Sr2jI!sQ$?Jw0%>!j*jiWGPQSXNvApN;DoYL5kaDDR@IodHPZv-;%u!vZa%VAPwG(h=kH=(g{bl4?jXl9y~6quV_+u&ytttDmVlvy4-KB ztACH)fcgYpLu5p;W(($pXSk`}{R9t#9#i^+XZRCBXw)@nH4C&LWM#DA4%jROYO9crhhr9^?3MJ8Ag4bxG8eb`tDsG_KMcy-= z#$jkyQl=eHDjpaBKPxttcFQm@xDq_a?SBN=OqWhc5pWhwQfb%z5ly2635T^wb$9JK zpAK=?05$KopM@g(s6;dn@-}JJ(5v=Pd(1GHA}*Q4MEKXFID$BV85BH(%<|kO zPs<_pBv&xXwg8HDrbMLi*3=Yg#v%C6<_{z#{&>; zlC%R0x2>0Za}S67%%@UwTGD^3fgDT+g4(*Y=J0beK5 zrEP|+Gf|Cj0mFr>S<=o_%IGmDBQ$tLic%kF>RUG%VdMw7^M zEl&6a?=G+yMi>M6NS2qAlOiWY)!tbAN)CB>4>05I;bf~J zuW1rd>5`{TnqXVzP^|)CE{m0}~HOgyGu|XW-!RY#f7?l!T>` zv8ef^MJeu@|LGX7h1O<(-7P)H#^P%){3GBdAt$5PZ>U#xBD{ZfP$qIrqIOd31)gJ! z%bZ)X094^>(5bf)x6?7(t+bc%q)v6Eipn&#tFuR$XCF>=KHuEcuMPQ3@r=2VJ z7U@y3*T-v_vqgV`>m?LhC!M1%6&CE(mEKy%#VKov82r%8*V(^KJAr9rmUe~?g&rkU zVK2w*#~vyfL~goWlBCPbt7jeOye_a?1cdH{dn40GkLBxCQ`P}W;4P@U zcQ^xC1XXDbCe7VMu`(p(bG(%**iqA4GfQQ~c%fqNF6Dn@CD%4Ka3{Yg@EVeW(JJ$M zrMT`|&|U-&>t*CS$ZHcFGy>+1-e@jsEThY_1mdhBK-tIx~pTW)TYjF7^YFC%Z zsSI#;$&G(H0GktV6=NW>ZHhQNux1jy^uaW;Q-5=~;oz1S3@s>jJuE^wfw+Q-91;2?vY^G!%m;XVkT@{R>BtI!WSMQe7NF!gzWcZSn)MyHk_b%a>J(G;a3_yy-hU1>q-e16URsv_=QiFhNw_=uXMVxjt@s=BWEVV|7gljEsB=gpxfe zvBZd%wb!XTCp{Z3;T%KJKr`Iul*l1&Gf+Y?C#tSahu7iIsG=~_hb(k|t??L{c4qm^ zuIzQ?y6kLW8!&S#Qf#Qn)L&|Z@vnb^9=Yz1m$LdHlg&E(rZNnE2@fYoVDnPyLR(^- zAgONXrJJ?1$3OT#CJ}|+G1z~t+4c$&MEt?pS{O;34IyOJ=5w6-)5v~ECR>)BPcM%u zHq4B5C;MyBLJU7i^eZP&sC-YCyHM>a9Y00OL3@% zYO%05hOmi`Ge&g^!TXih;!$@#rpATn>K@x2PDh!?w#b zgoqVq4eG`|KRIk7f7D!-mtPt~U3U?Ac`SiBj=V7^c8EWUfyl>enISxVrs7I+oMOfr z!$O7(jdf8Ws%)XD;^9tJZwD{vkk)6M%C&G{y1t^Du7QB}(~N$X$OqZTXtn70i zgy$9He#!tm-P16NO+t`I8NU_p@Q`2YnA5olkt{f{QVQs4Ql@_(8x_7*6D)p6Y+IM0 z^l+OXW#?eWz_K9Y*>nR>{BE@98Yx?vpT*RqT^BhKvQy4PmlRlUNN^*2(UKB&0!tPb zB%~ZS3#29&aZ&;se|WntA^9A>N&#{`RFmp|>+$5c1)>GS!<@c+_MOFe=`Tw0QW(+Q zX}q~td(BG~%tn7wp9NdP@0EQomp8jMaG7CMbiNRaE{RxdR>4|kp~wvsUuyW}E~<%8 zdh5$hqDyO@-I+_V6P(G5d9@lAkSUb|c?Th@mx*{5i}0$;>-8?5>5k&$e6`Ijj531L zpKO#=FU)uZ$DeeuwwIFP#)AdCrFH?kVuUIV;Y7U%Xjp%65S<%GThtKHz-wz{F-PKY zT6KD0q3H-$CROfl2M6Dz+Izm7U9hY(4_9?4cL%4%2+z$?s<*s)l3sOfCkEw-(lgFz zQG}o%*+I`-yC_F_rX>;fc%}u12soR!+^{m@Pb1Y6Ya&kLgtgTnUjQGaDXgsU`W{7G zBWZw{+(UnK#2Rz2zs30i&cnkXPku;f! zVVnls4&y#|meyrGYh9Maan@WHeG(pa^$h|V?-5AUfX*u3&=+iOBGzc!ARWpcSxq7`_{$(9VKtJE$z zMMb2%F+p~SHgCe$ibt$I8|_E7eQ^McN*3D|5v4jr|K-P<6?r}$FMsm;QF z^gM$XB_?h+Y~6|nbwYE6JV`tzhL20ioiSK|o7Oc?a-2}wFXD_$3g7xecWHmr8PVvW z@pBiu*J8MNrKtC&(5?gPMnj4e>Ue67obM9i$Z;N4Q~+5?_3aAlvDDs z+Z{G9G0vdE6{$@zcL=75;eb!eSTd=GBS;%OWU`Pe8OseR`>`d6!S@UJ^sa|``HY#k zo8|}mD7?apW%WM~pT+_eVZeXVsPxKpg6grWtP)CA)AFxS#jQa?I#cOviN|@>W50MJ zDV?rtZHlT9hZJ;W@$pF6fR~)r)xca?g;nG#rdGc@J&woY*RU}a6{E&Txbj(6&4O&9 zt;7t!tfK6X(P*E-;%DLczMIJ5$!VA>hYs?NedK(g$@U;JBGP9HOGtmJCad z&-?NA#hQbwpEH}zk9DZ(k;e9i!D$s>$rOK@<=twymV0g!4Zc{QWb$lZV1tH);^t)( zZ1Urm$cluZSyPvTAC^h>M0mRe>@l|iC`^V1oX%Fw!)ytD{dIqGU0y3DszA?GAiz>& z+SzW4vV3|ua~;s1f}YKx+{Kgx`G4dZ>?n0sX)6*1H_@#8BT!jTim4TLJOa%u^cDKA z{iQB1uoR>B@~1UTmu}Do*h%a-ujY%gKia?Ofg*fJ+!4#XBQajDv3c# zRvD>OCB#FYIprn?20Fs@rqryHER17^1h3zRFb4t&zn zCd^ch))JzmuL2I=UBmqbt?uBMyn2(Ed?5HBWlfUVO^AOt4jIEyQK8_4c;f2h6-mJ+ zeHvk$R>z2K`=cgV*pN~rW2L&cpn%d=7&DH3$z;hGR9`*Pcx?14)?K@Ekor*zjo`&C z&CRe9GN-PsUMu_V@do`xqj>;VK&Zbh^2^SiWf5>;r8b0bl9p(?-Gd`{D!v}HOt7G$ z(%n4g5~~_Y%aL_|)nSdrCG&twR#OsP`nKFELUC}+Dv}!S+^DoKvMgmcO|}&J*v>uA zRviA1`Fi-9QZsR>fY>3BDQ79pGWgxsgnN{`O(au(;_7T=_d#tsF@dqjd0~A8MFe6e zM*>8ONX|Q7x(S0M@4m>dC@ayJ4=5t6)Cs`1C=6uIaYY|Tmn5F@SnNmOT#~*sT2lz z#_5uq+=3_H=~+W01Gl$TS2NdNXtmeP#{70{@*)kfFQE3np5Kc~3tA6|#w*>hC~|>G zsDkpl(8RM!VGI#Q=5)*r9*Q9Up zhr8WbxVx5o{UN}{TKsT7)42puL|=k$Ik;n)hVaM$@-`9Aa*q8i*vLUnC~eUmHZ?fS z`{PESuTxbTMi1rY^!C&FT3rZ`TDFhsNQk~-+gEAE{t6NOTu*KQQc1YLcbZwMh-wYY zyp5~1424~zH7usoDJd4%QTyy7AfLJ-49Jc&^?hyED}-R0D>b8wBi zP)IFWnWD9b2o$z!`4M2Hm3#z+?c(0vk;^3(6L9EJn+UDOzQO{|yTRb`br4`uFNfW(`xEGAVyNV)Kl2)L9g;fRt zSeOvE{2)L?Dt*mMt@DG=6dKQkEe)58G9AhS13K)CRH3Rk3Inl`pC<)drEGRi>lDkg zT$k!9<^0u6NavZkEx<2iAiGR}`> zHuvw$O`fhLcabm9SQ=DtMW`Ns?gT5)VUjNqbfl~&g*Ue<3?5E*sEXf$wUeFjV zZUGp7IF>R+RHd53m}RmsZlkxn$*BYQ7^Yk5#W4{n&(i!W-#@ASImY^`XSb7F3#nSh z%EphkA>^Ui95|cKdQPT(Fn{}x$Jy8AqG!AG+KpW`Q2TA;=W+@Y@}$v!`Pe z70V&xF(Rf>eN`mj&2hw2EcL=-;wZ|gY?PsYIMIo*mUR@m>ryY%l$*dd-|MlyWP3z8 zi2z+e9&=fCHg^4x{ybcS?M%$2Iyey*)aA@A8e%%4N5nAlhy~$J;hJRgIx*&B4#q9A zQ-zkt3de(BlJ}9Xx<;Q|wAfQKBCoXe+B63{{O4zyd#d&!R7?G7jo<2o^lT2+i4iRe z5Q>h9SlGBDeAPd<#!mzG0R^=Q>*9@s!#r&jJM<~V-gtqk7t^#+UnCx_mhz+p>$VP z_nrm7Djy`L`QjLkMytaepi~QG%k~^jzs$8lCtt(Qh-xXx-WSwtFEPcR;SVaJB#!Xq ze~|O%=GPoO%@qWlEAzlpk)pH-0#=2xA@u!ziUxIVd z%U8tq3_eY1z2XI{4wIo?N$gk#g^T|&e{w-2{%P7{tA};lt_^`5ME(dA)LV~JP?65s z%Mi!xwGQTaW?~$PPlM&$AsLgsD>O8+9nfyllKVqSaLH^vTV%WU@pAj}5QG6l$tQfw zpg83^kqX{9Qk&Y;PswS(a%y0Cq=u%EfY$PUBCu?la(GirEMa5@uO90c5Nhe&e?wNH zlbKk5qr#6xfTS63Ly_%ZqCQB?Te(=e(YoPkdD9%7d}?y;xvJ3&KSOpz9p6j1-qQBu zJ!Tyee)QY9ircr>qKMh6rEs?6`v-@X=-QjaF>v)A|S9m zW^_+P$hOY?IA#ywB2spTPZS~?e`JW&$o5lr$^ce}u~EFlk<0$oLg;s13(~SYhiF^B zmpEjww~dx$vVUAu6fEtS(sCx9zYmgk1j)-GcxO@6Y4-sjJ?#3ZF~NZoSLGuesTP0a z5PLmABdrZ8R32vL9H6(BBZTI~C?1C^TxlOi_a@@OaKq~A%JCW6@|n0e9;U$imjDZV%W*%}<{!7XRzs z?XMd6$Dbg3i?40$NnBEdc`krK*2(_K3C`nsyfhBbTwdDyiIkb|?YMmFl0{+21)!=3 zu=mSd(hf~#PM6-KN%KYYe^`6{Ucp^z+UTRu_X@Beo%UDim(kh?(b20yQWaw$$gur@c>Qe>if!@3e3lup^O3iQsO4Pxr|-t0UWsy`dhr7|q^ZLUFg~ zK7!#cG^*~CqaVF!OZxUo_L(UbEazGcK>kHS$H*~z9#hV}ojpDgXTXOP)PZGZ&?H3K zju&jwCCeuD$`PBdelIQh=yxplgm4(=NE!0QzHVYQ zHApc5U1w3DKp#_=cXJM`q`hgGbm*{aN}loVb$`NKS)|2>f6p8+Red%!n#=c^!~jTV|q7H}96{hB3@(=xLSz&c#^H$e(TlTiV#o_TP~I#ep_VRSUXWL>>Dsd#44F z>1+AmREt}kYa&j?hfv)DZ}@2NTq5OG6eW>s1yE%04y0Bp{*e z6HIT23gt#XfAmK-c1ZghB5;geEEvhpyRG1CT6Yr9(Gd@JWs3~Kk|gxog~V)6=_G_Z z^*c_cO6h>hG6}m}=cU-wRPQ&}>|bT=YllzAw8bPRcgz$s#%lb494t%WWewT+qdp^@ zi~(DW3uw2uI@zIm;(1($AUY9Kyb5yG-mUtuy%jKhBoTBg-J9m;~ToZpcOpE|?X5=;vpl)%L=x}TDT z(I})Ex92I&1evpm{>UPGb5{OCS7Qy1Y^F1*-&iI;PG_BKH((0COA;6EDC%IPyHpQF zFjkMs5-t)ex?Za=vB93F_~m$*sB=G;BUuBef6tVudWl4#?U2>=47zrW?AqY6atT-S zBx?wx0E6Ln0vNc&MFWBp+))V+Hm1%;C21^2okJXl)nM}6#R=LU*{pUrIbXH{YK}7+ zVNZFU3+D;d)JRMm$7Y#wlOf`S_q~J)?3>&Xb9 ze|=NM->B_tq98x$19Z>gV>#N?BqtOaQ7b>ZP@xoGfDKSCpHJQM5dS_H*1>sFxZ_rL z-PITF&fBs@y13tgXBWQ~LyecYvfhY6vpZ3P>FvY4f5mu!{+4lTF65mmG~irYHEAQrGhWPUuY^!<9k5ily<2tSc8< zs8ptSqdRJ073s>3xeDkSchtY>mBpSV1fsH8?X-g2@HtasBw-LK#-s=$f*VqXf7g8M za)2@A`~^-|6OHsDcvCBpX_KAmapC}KpBnc=RH5R^QsXq5yT__VvvZ`7fdqN(C#$Z; z`-CsiUMxM%Lpxpkaz9>)K?!@sB^sj64}kO5&qG0Ib8|AKYp8q_NXp}KFQ!mwt}8hT zuWGZ|7dpC-In5M*+I_{OL zj>oeLIL(Pr3fSYjU&|nA;EChKfqN<4_r^w(Cp5jQj<=dA6dworIMV3tjzA>r)Y0cf zAs}~pUze|Y0T+Ka$svMACZw)KnVROQ*cvpK6%OP@y>@vhI>-(sx+;;U%Pjks`X@lA%^%?WZ_&e1a82vLp~#jR?(WY4F#CAE=MTOj+^X?Ko)`;+F4*^4+F}>2?cJ5R8AaFu6GQZ#dpwo6)hCn)DYcxKXDMMFzhs(yt zA;yj|8(>qfb8iaHBGB6Nvs)CeXXjPX^J;mUWd3}Yfn5XG0j-x>UIS7A8n>-p1Hl0S zWtVSY14w_Aeo)fP>*>?dkTS2N{~oDdH$*Wg8jlxxT3rVLPDGD zDxU#p3%(3cPGCyLsdzwOHX8Yf+EB|9Z)I}sfLO}885`((*@UrXBRpZtums={4$^WM z;R%k~qCjEK5id!A_06Y%i1>F`11e{<9#^%u!%cr!oTZ`w#;C#-7c?^($q>WsxJ-hy zQmH(d=CpiT>*GUYS-5`(S)A$7XmE>j)LXftbx-wndH6xKemw_9IQK)&xSLo~kxiP5 zEL9*qVU61$hL5jcs7H$OOua^(3L&$+isDjA@~a58ZpU=yVQy{;!-;o^i|?+Cd_DA; zO@)6DSIhnMKva;oWU^o=Aev=yz#E;B(+BrQHff-8*&^%|_eh&OPMlF50M$AVWP@`f z)DNgeDb}eUdDLvH9N67HRt7abE&>T4dN-WP>1cy9HF|Zl)Au@YBpGyCirKghND)*a z0XS}x4sJS|WR^B^SaLXVgZmLAxpB?O(y*>jlTq zy)K;X>1x$c!rXYrT@9T8IFmk-TN1yp)8=bE`Da2UmW|y&Sc(hb-Va66sDa-32pzb> zEWWrbpVz5=`Z29z3Z=*FeCUi=Q$ZWzeG@V0`tz(TE5)l)tWV4sXf&m+UySkaig#=|_lNe`fKqlrf`vXNqTqnqo z-?E(&gYZNf98E%@R4Xh{roX;CFFB1}047kmGDTy>j!xmnq4oNKA!4_jRfL>u!Nzy0 zfU3B0M{qXd<6)}^d*fJ4lm^(J$DiHAwaqB+sagK;<{xn46KmtsL5@6QFryfx%hF_j zkPS@x#tOyOnwWCmL5&b`yhl_FOw%8oe8r%5%LW=LE0IjCF0tiF4F zD0CuQ!__XXfeum7m}y;^=O*MvPil@z(l~D7x{Kh(*_z-`+*-4R+hXoppJYn@tN(DP zB{-aL9{m;WfTP}{;ZYFbt_tq1SO&ZcDB>=GJo@QZ%?C}R+^v+RZ89G{?m|a@gMDW5 zM86Dhkw8I?T{#Yd7E0=k>D#UP<~h5f5bB)VTr<&4EsRAI$6Z)Nx3a}L;U)vUN972e zlWyw7a9GnG?p#k;Do^FyYRngtvgy4acnju-af)bwWoe`~^~|)K43$~b+W{-_JLPGf?#QfhOsJfKI3Np#3scQ+ zyorNYDwEvhlkF6{-&Bsp5Hpa7>Q;OdL(!rl)7!+umY^=@iq{G;50jT_93fGWRm7lz zrf7d8BmHTZOv8NfF+>tvz(HU|^Ys`_01Vl1W`)N1N`*SZfaOc&udae5m=lpD08G#tx_x6)-*$IYDsV0u%=RW|Sr z#rv!`Z;xY0N>07xwXfhM;hUKmnw`Pj14H5i^Y-@J6iOm}D5r+hI4Gu^F^y(OS9v=^ z;k8e;mE_}wJ6p#3a|`KzuCRjGNY%h%5*l}*`(y%!Oiu_Y%~9A`igp8qZ?hXuPqZBDONhShmu z@)FCf>C_KDgkg@j-Zs#;Rel24s^?9xg6apY-f)^}#^C5#oYfvDAsq!7k?F{?cg%EO(4!4VK*g8lwUNEWIcfrpbagMfDk?6ebDQuTOVB z;FJ&i9OC|Xj5`=+FgOqd+V=G!dg19R6_$B7MVID~(H%z3d1aXmYwMV(P6UZrnn zV4D!k_@lFbR1|g^-;cFI|FB14ZXxt>W}z{^_DgM>q@siJKU+gWF4M1j5S~qZE#_zVs@M_&SWljqqEDXn*5hmXao5IzM_{=X#*O6{kf2wsN@RvrE=ET zrNQl?)qQ%wwP{7PJMUI%L)VCu8zcwg0)bzBX|2T0MA_2|alY`n-Fn{Jaup`&Sf<;6 zyW6w021S79teWg|wCZ?0OuIPYNOm(&e%LmBUyQ&odv~&|9@Nh4sK;&-nNa*wwb@m`D^C;?5Tml^fBB-;>99@j$ytZ1* ze-6^NaXFHaQ^6skSn?PwZq`g0e-=ZC?D1%iF6~_!Q@!6!wj8{@b1akK=Do_5qV~2n zotw5ie?~4$Ddte}p%Yl^4kYW6zql;v zkRQdS8v;p&K93!TXPb8Rs^h_rQ>A zwgs_o?egp{9ufl^FfH*kk4Fk_2kAD@j+zoe`=0$OJ40-3q)9<{ zXT7tP#M;X+P%4CCP1s8s_&zrcXIGp_2NDmV9+@Nc8LLdQBk+jcW&A67Tg-en_iBfv4JD3o^_;}>x4 z`J@`0zwXypT&zUrkyFMc3qB!3S+ASeZq(Q`d6g^)XkpT$->>0}5@FL14!k7(PZ?>d<}ohpT4 z-D(7y2VV|$sNz@C;bkGIz=XvlG;)TH(+*-eNP(`N-?d|kk?JGag)5aPk3TtA*HpN*0tF@N?%HHi)Mq-kQhmI}QO z9ZOZdN<$bAPEj06jEM5NNxoXd*h*ogfn6S2uBbY-Y=d8sriJjWihW@Iby!6SiAB5e z5HFRJ%T9d*7;4pHr2cVMi^UQV zU_$W#+~K8Xjej0qoVP%huV~ZC0EFS*$zmu8i)17~V(&s7vSgY(IhqXd?QAB%igc{c z=2-OH9H(?jI&_mddYv*A1Z>11^52kC;pn*~j8H{?NN{cJ(n!egO;YNoa@~}HH4a(4 zBS}_+LV7rLgLy`gN3i(ar9ug^YE~M1<=!-K5l8Nrz<(rS3XUS7i$Xq2ml%m4`er1j zSW*x}r(&y5A&pM43|FHQnvdvgJrJb|mEWDIFpAqsL#)Q>fWmHr7<~!+egF+Q(cD9> zmviuRf1NX*ds50bXe%YPueGg4h5eu{nr5}t?WXcsngqdul3nZowtLF!myBlPLSt||5rnOEkUQ5mH5 zRYbZ2HZ%R9N|*`1FjA7VCl0`{i(-PbAmA4{nuuvFj?kbAHllLp6Gt5IYOTd_xqV}e zSU8yQ*XuO6zBL!2%OT(b$K2qJ(j(3WS-9(P)_;l3cKZnj;5!QxHuUzwhi#jhO~WO1 z60^Zm@d$q&cj!}YPgM4^fW@7l@JJ0;A6^pn%D1M+F^k06ROQmUi$>u61{{+5m(c~y zZA|9Ese)qLHVEVMgFk!ZJBdoz>Wkp|+)S5-IQ^2jb+1`G{j^%0^JI5zuO~Hk`#cTy zA%Am|nF>sm+b%NukIxC=@yjO*lF}T<(yp?1jwQxYI%R{Rn3m(q#ea2s`6U8#-~_xvu);S-d;`N0^Hd;YkckD1 z^wI1Fzirl1g1**bO;J9fnXy~TScJOkc24`s^Ti%~VDYv$Z+)}y`_I0CH_Amlkgwv9 z03LBnTfu^XKUDaJ$dtni3c*velAIF)@zA=x(5+hRpUm%dD^K6ct&v_$hl%0zf`4LS z*>qx-20VRd8GcKCOlsMp8_R)p5xcxVL*4gme1U%`Q&I3z-~Ur4l%0|*o5u7ZYddS> z&97v^*2x`|^;S+tM;4>|m3LTE8}# zp5MZ++MQW^e3!p*1Mh#BTiL=AXHLlHr!YdnkwN++sPh5APDz&OqzOLIM@OJ%(yFsE zBAx+~h1^&~x$fsJDj{!^V&F@5NjBywdy_7)Z}x2n0WT0GOezVKlpwu{a2~C&qx`s( zkr=3HNOA$!thNh?#7}?6tqYP7hj&x9Ay1pD$q|f0S^bhh1E+tXdH#&ud-c#dxHy{F zROQT`d!^Ey82=LO!!QgO1r&sNs1m@-lCXy4u=Kp@^f6nHi`imfGc2Yz5$EBQL|BM= z>|$1L`hvxC;X+dRAyTnf3yG2Nlh9VI=WpgRH824$k?p)P9V=D)2NzpR-)MzRaYP*s zR(>^v^ny5{oVkBUHqicH^I0NyF4PTqm#M5*ewTfDZoaIgj^cb#W{VtCCx?N~UG7gg zWF0!LT$KIgy5<^#y}{?HMgd_^D*39(tGMWpZFlgTer|cJ=y>7gRc)-DwWo=I7aq|M{{v8&z5=W*S07h@sQyxehO}1N$^&}>DS1jVJ%{*%9!3Gv$g-*&z zE-5!d%3<~h!6NF;R=H)Xp=LprD~9-2XN(!liWZyN@le?K{Jq#4ZYcr7he+?8^f}T1npPGY5snOk{L zi70bkuH0Xe_sLLGk%#2TCbMx#flV9pRiH5Syq4UKuU zYlJGtS?%Z3XNg6A)HlPud5c?=&c>zq@ThW^#h6oVPsO>16CD)|PS?Y(7qL_#I#Y+MJmw)YCYv*B;HN5YXAI9h#ms zRsnyrNn=p@sY64|_PPp4OK#NhsOK@7A>&ZwQ|ixR6G`+MZM7x zYEF#fshES2%(_M|rA@Z<&4T)>hKmfqDbsuq^oHA8@MpvEE15`o(<`eEHJco6M2v+A z=6kfunR6lTHUZ!VC!jnuO^dA8>9aMCEQt}I+b`a!-1wv~zCT!_4d3PrOY>!=TiYG>| z!#oMPQ<&ZJB&dzqxD~JQyO#|72>sc6GYc6sC1mRD1-X?n3)1BI{xFz9KGwB1yhy|n z`BeB!NFOsGzAkbzLs2d^-(q`ULVp*@3T+L7;NUF`HiWj+pv91wLuJ{)PLumR2tJzb zpmH+2k>Vh@!x~b};;KT=J~W*{sm}~DZuB}ZtD>&;;GR88PMUdVL0d>lc0wy5m%C{h zr-!hCRo!DsvX*J|x7GGI8TakgNXOwMH!8QSPk3x9Sfn}poru`*gA4H`b$^)CsSNVU zPxe@*j-11wBjjh*G9*j}UzplhlXEMpj1||zLVl;)Kwly#aS9+v9hwE&E)=+u0|dzQ zEI$h$_IxV!gpC7haov&|0_Ja(rlEPv8GFJF!43v?7k>#J6|qC#_=K}zm?5w%`3_4z zz$yI_Xfcz1cX_$u5#HgKpnrsSfzwUOaeL5W)Bz*FM*AA!b-_`*QU)IdH(p{_FhfY3 z6^B!)iYFbhLWqt2PA?Iqy7qsnt%w zX1()$I_X|^2MsuiG?WmGFmnenaI}yGm_0ipLBeb=7ZzkPcDh74K{oc1<|Zjz?1@7x zQ!kk64y{0(31O4t7tRyycay4!0YV^>2(uS2U{6viEToYcS1#|3+%CznkNXuijw|2W zzI4M4ewZSm&6H3*QhyAJa-LkTrUYKU?$tJ3U|d+J&;Gaz3jhzzx7&l>X&YzA4ZPR6 zJ9KR=(*bCUFkOaO&?etPqGaR9GyCPd+9>3z)YVUdAqqnG8N7w|h>dVKII^lI zRl*6Vl3B(nmZQNYL5ifROZP; zD~p5SkbD{sX;gC__9l}qj#0H8ccPUTb4El+4+ z9+cpzF1ZEy^U}j2E%%b2fh_Hidz00N0;9`{jAY;t@^j35y^1q^xYR^8ozcG+bH?yE z>IIWDZUPisiD6XdQWKm;T8o(S*!#sMOBPPm&^6aB5PwgRbU~xCyAm^hkLo!1t1A$5 zfF_^8@BM3Nh&72YIYC15zL0G8Q~9Z2RPALI$I(adjukqFVPE?pd0;S9Te-8_@^#we z+ERi}R1$ z8=A?%EA~uj-+jEC?Vr(<6xdzL@!>}ei1S5;Mt>1_*FIBzv?S9^L|-zUo~`XuG^j`c zKv|7l7Os1noV)?;_O=)%QUYJ6`0iSZY>PL}S)sqyN_ioXFlt*@>UZ(-7IjEz?>tD> z1Q`P`2GxE=N%YIbgbUG35t=9je`n=(3b|*yDM7RO^ZH@@t*5;!XNra*U|2l7O8;~- zv41_pM|<1Jxa|v20sq%pW#KPzXf+DKIRS_qLy5)?P@MJDe&19!s4eyNHe8YfbNX{D zFV~n6u}#T7*|Skp0-c2pZc=_8(3q3wO%_b=edrSy7B8IcjpjV3$t)-{9GYtmCM3^} z4Bm3q*q$NcF=r~^td~`UkSSLfnTo3kip^Rcp$V|7@zk{ZrXGLnO*x|u(ihlyM zwU--EF6L=nerg8 zJTcSx7H)C6P3_W7Nrl~fJ;r|^bIQCOcp9WpYmtv0b}mpSvCVvS_MZtHpAz?g;~gq1 z@@mv<82sV8wiO$|ztYr=WLC?3Ab%HdDo4rtS%7BQFt z?&nfjTU^>IE)SAP(EMncj(<;PJF$i!Ja-LAB}tr}cUA3vLCSA!=$aG7LBZlU=NThg zb(O)q10UW*WB_#R?MbS#^y#2Rra-D_@>H@9(8K5kWs`E#`&UMEgo}^}<%h3nP}38` zW4oaVr`HXXu2YPbc1jM&Q;3*D)xZ>sudIFS>+Aj60tD+zat@3E7JnoZYPU@k zeQS@(0c5<-dT^1sR^6T=Ct+LMv}V4R`5HVSECL9e4hxP`CEXlb^bneZONzEvHH`-6 z5+AaKOeFtW=LR%?>eV!&oODQX>S1^`!2}A z4`L^bkdL}NFP4P?I0?mN=O8t4wyhi{Z8~=*MCNLoS++-pvwxs=m>+>5lW(fw^_oFo z)=j~g=_#)&YGqVY?0--J=TxEyHhY5*YTBiI*K=@1zDw9ia4u@dEBmYR8aay^!Sp#SILBsNpOcsTJ&2u`7_5oBD7gGFP3L5Cy zA)I9J2!?hdIkpn^ZtP29$4Dvhbx0dSx%MM8-TjUyjZ&<&mz=nd3(a>8s^wP)Q{ z3v3cK+_>3!J)Yr4=x@-!P0o496nrBo7~gv6-wp^qV!dE?$c}wguQQ79d%?O6(!Nrs z3FD!Q4mE{;l)@|vj&Yf8zOn@-9%nulx`t4(m%ht>1ao#0Bgmz@K@MfSnMkI1WZWu+ za&hvROBphEcGAlm@J`iCK3$LR0M$gkU`U1Ir!eI@#b{7BYmd5r86EguGsL}?A0h5*$VQ2&yR^=c zXXZ4@2*FkcZ}g^V&w;mIC;Kn5_N4+$+(sr-n5Z%)sKsa3Ha2^M!eR}K8|uo+On})? zf+^7zO!%X=8matvOagG&jnc0?wvbyMH|b;m0OF5^pyu51Ro5^`!ewvE2W+s;ESgMU zPNVF9z-WYyygz@|aqLdz(jdf`R=LK|(l&b28Ra)^ifnM)a;&W7HWc-z1o#+!*2>2e zW}AbYJC6NISir-W>vE2G|4UOcv$VEkZF`o$+(85Ki+0IEGe&Ld=6w01-Z( z%soo~w)3ooy+eZWgTpYTkfYr6%o>YRDu9P%SmQ{Ltq^wK++wyw%>Ce~@Ku>aKO>=w zz;1aH{w$TyZ0CH%>$oez3#HNhWC z56!i`r(l)y;-J+%^8h!SstzCeC?HjpxGJabC^ZbWzizvibTQ1lfc5VO1EXkW)YJB5 zD2m%lw(|J!QAUJB7z{dByWctRtg=|w*f~To}mNf_J>~>)2UCE@KPOQF&)m+)kJ~FZCaKn)% z$`wqUyEqz-9&bvRc6#2ashQiInDgFhCI)fqIudo(a=9sZV;Q`d&oYV_*$^2eNcDU0Y<=0PP z8hjljIQonvu)BOUA|=KLKBypc==bNwZ8^RojuNLe_dA2oNn}I@q;BHo#ZwH@@vOkw z%cti=EW7FRE8sqrKw>*ai$auzi}w$`<=5`}EjM$5tEJA{QPmzfca9!^EAVlVK|_I! z-m2h&Bz@G1YQQ?MO=~_xM1BD?oJxdX842=0Gp;Gk>A=+cR&sE4NUOvb`36#(UFyz@ zeliIpxuT#+gYM!xYcgkdzE`G5tU{akKwvRv0lvBBsvZRt;EiowG3UR%+q@jnmIP^EhgK@_>E=6sBNNW44Zb7PEpelF zv0B?x5Y*C|$v21zh1c)Duk}sac;LG>YWKl}=sT=D04tt{BwGgB-nARN>#!F%zr=zGvYj7wO#Wm1&I|$NP7ZqU}KdeqIJ>lXJI)9`~VDa_djDj+~CU* z;Uwp_t99k=P8zHIHb`})rUdm-KoC5IhFUTwiJ}jB5@|_)NM>?s#3mL21KIs1;N4CK z)}HC{>|P)Xrw07PlU6WNy$%Xp^YYU&R{88Yt}@Ba5YqeoKbp^=2Co3ply)?^qZ_(x zqEICDt0r>Yx0~?oFBJytnEV&@!i72&JqiEGWZ^MNIOaj&5UDNsjJ>#{gWY!U%4O`+ zfgPEUWuWMPXrm^h2B~ZfR_GX!LyvUfRhhE4$Qt^pN)^C(~rw+Vw~`Uc$V8v^j!tMYV#Gbd9& z6md=bp74GE1IgL8d)iW@YY&~?vZ>$0bnL4_#>CvnTPzD*$JI1Ru_t8HOcpmz7m(-U za6UinVe(~yB0FV&fgZt`)Xue5s0IfK;cs;4L+%faM- zVertZu|!9<3%OSrjm6P*zw#;4(rA%(kZNqNxw3xt|1Pc8>0vVRQr!snm{nX25~sUf zSXg4Hnmo?v^Cf8>TC&yaPM_rKwfZSj0&!`UbGnjEG}_SpU?4-}RfMMw88ObR;}FVx z8Wj|x*?dk1n3Bbgh6=h%JN+V7%vmCTdANg{x{HgcJ3<$=7P%_gUx~ELnJB}2)L68P z6{$Nd4u!VQCuHMHN(Bj+NTq3PE`%H=5f9MR5HLf00P7=a{e`+>?^*1AoNGK^wb~s} z;do9t7#cDAOa>=&Ye~V_oI~1o)$827WLJC&%*DHkRh`Ne1o&(7(xX=ei#=g~nen!E zx8P&+ob7s)as@N#XgBh(2-_2YMC-QmfNV;Fq}$J|TNt1Q+OZ$o0;SsRO{=I6u9r`9 z+9hC~!0*%7hWMMk;OtK^%>c)0y;4cvZt6fz2?k!KGUC)#9aNHOOW$GRs<<}dy7@>+ z!0E!SiD8zTxBxM&GL&xW3Wi62%vI0j=uAV(?KQG|b>Hz5MC|NG7y+KJ@b#APANV_0d zHB%61XsvG>RVc*^M*W6L$?BRuF{a_Hl6L0&X9P6XJxq?-t|Rbw?8thvH!l(kbQI6?c7+KtAAI(H!m1+P_9 z(Mny6cRtUgRW?a0FLXO!`2`I-V5-SabBWcRdpoBH?FDvnrZ)SmnWLJ;^x-^S4GXla ze2l~zGNa6mHMFx7@Rp2JJ711>=E>V)!o`2oBDu);DORC(+9{r)7$rR@QRsS4%}~+g zm>fh`ZR9{kD=50~oiYlT{FS?O!sg|;5d#s|mCKnSI_3(Nl6#H@s=4z+@+gs}WHJ{M z7g11WO~Zt1ipHvA{1ql*Wu57~NAU*Eb%bP0U91iwSUM#%kWDT8cC3g@U2YiCZ~8e6 zKAp}E?`p^J3+$mMc@Taexc?0GHvym_9x72036-F9P>VG;OlHcDe!fRd? zr@I;LmkzT57JqHR=Q8ES#kHVD7wl{#nijq**5^ugXEf3d*f>- zPYg~bFKWFAY_6l~;>{G${a!T4+c~(ln=%ry zRey=yA2;C0!zuJyD1wOQWX11okgIT^@W|b_s^6^53d>2^a~tKL8Ri>v_aU}xgZX85+FtbYYiflOyU>)n&_VlRC1^-SuV2h@^ z;iDso7ivwl4t&ywAO|j2-tUqyF;lZ4&0_I{d%Kmg8OhL;hTYA^icOUla2d&waHG>? zrb~~o#E?bN<~o&q^;gu-`?hqaAgLgsl%x_0EGYsKf`H`G5|SbfFG5T`8@x@^V^(zX3m*&-Erp3+~>OVUNtt6gT1=g(^6G)Kaw-#Oa1vZ z6ALaD8?30wJn}_0%trxJwIAK$`B<&=HR=`Q28Ob~eFYmR`0*=+qSHG12A-i&gi<-^ z3C+o%9jV7*>4vg3;ev~rnKA!W0;+MF#`g)Awf8~@$#SkEhtwrT-cX5~XpE)(cy8WE zO#I*@mAIFA(17ndAz`MaaYljOOfaD)S?<9**3z+dNbh#|xTFeTM+?P2QU7VA-k8>X z^cvFW?daWqckyJ1y#M1*QxB4Z`3DhuW_2|~^5u6&)mu#nP9`orV!PVom(m_PkUTAR z%NT5?Qg(mH{eTHm-2AO`JaN@4lV9aAO}Eg|mf9POHKS7%sx(H&es0YXkKVCf-4$aG z>O9=g()0TgL)2^$K-c$@q&WUz1%w)p_T!AL_Jb-_1Io$y&46bFlzW}xI#8#9eg>D zrzDByqA6;IILip@K1IF}9N)9^FRdlvdLCD%<8<5RjZYd8)*M(<3N0=d%-HTOU1yS5 z`Fycj9oJ0iCqXKsajpEDo3Pm)hbX%cIwnv9rJc-A84TQ>ir&Cg2Z2JIY#&% z8vnG+RJEPx@&}SM(&AsueIf95#N^gbE^0TB%O!(=@cgFYQpQQ3i_D$!Dr{M!G1iB)G_#4WQ_Drx3npC&+Eyb)-3X1aRELc`A_CTKTX zbg5EVKDeBA4sApL5|~@&hH>2gQ>*K!Tgv>+#Ft4N_g zv=P1ytId(BnR{vsT?(1H+C3*c75`oJ5G^LK>sx*(q3t?wm+aG3?m3(&HGT8PCH9fe zJ-4#Y=0@27{fB7|LyOwt!^Mn%un7WSL;fclLw)LkpKrUmk!(JeO33QLjOg0(J+g{_ zZuJL0n)K}FjndnV*YVGC=n+vq3p;$Od^)$Eoc{OT1|bwJeCCoOKt(dD+UIFIQY9Cj z(=0P|Dm|oZALETEc6&YjhZs-A*MyJH!}>5!*tA1Q}A z|1eAKjCf%73FX6Amsc#WD0jD!V)~!&!=ie6$(|p}sqvv-w1`vc{sjl`)>r8g$nu1Y z9&8DPaTmwyA*5IvP8-7aiPVh=v$Vr4KV=S#cLS9H3Hhhg0`Jvm+Voz=a2EXzX3c-1 zwd`fX3tZn7@{2HYevi_fUjb54m zsxbO!wV*FmdZs4aEJ2827UEdVM*G^KclG6LgcVk$h-WQM##V7T-n{y=7u~OLgG-Qu ztkIeYz8p348q)ftb~-Tur#W3<-Niq@#TC>+ARbT}fncy(Ak51A*SsYfHf1fyAiVaf zT1*r4@0p^d82hrnxVXn}-CYwiimOrCisVMxJfe02;M!FZCsOJ|Q$+TkXn6~Z`3OhE zsmrGiNiv-Kbh!(&rSN3Yz?ly}XPA}`nQjKhE$b2%L`IQ!6khES_vpqrUgn-<)I3+P zvYIN10?vqb7;mDlT;PTA`S&QjDp}}=MZnGlZxH2n+LbtixhfLoCH`%@73Z&BJ6jTz zhW#TKz%yJBqNJ1IY@O$KI%gHs&y&r-XrEJ6SnG6HN!*P%{%(Tjn{G?ZG72GSGy1n5 zS-}33{h&!kW$$#?Q2JNR@P)>k><>$X90X#2>2;?KddJV{@ojc_(EjkiuP{ zA}WvwD(#ioXi1d8f7-3NIGy$PSFGf%i4GO_fY)2Coew6-5sZSdMcng=Sd9$|P1@>D zjk1z`q@9Unofh$aFu&d24+V`mrh3Qwx@^Zrmlj?k)9&?f^vKX2$yAj<8|C2`o6n$R znun61I^w9(;@dm_oAYFQ_a!+M(m?l#{JhV9T_dFZ-xA0{!EH`Z1F2!#I$4!?4ZXBY z;FoN+20Sq5i^Trs!w#W!xi2Ul$18V2#)Q0LG8-$Oxy$3I3=6mVl|Sc;0|a*rIWAu7 zKl91#@>jRB;}@=sfa&j#PhWwHbMp&j>LaIGKX*Lu6!vJfArdkgy0>rHDKNZ@u-zy0mQ~>Ms}<7&ZosTrk~E$~E4X#tygFwT0tO8Vc}(}-uL za7S~K^(D<?TN{pCuSsd8WDd!AOK&T9o92@*r8%46 z#t&?8e&;i>*Ac|K?l|#3t&i0tml;wbH6SoQ8d}0|9fncg$rrpK1U3c-a_3Q(TRm1) zInSX7<(&s%_oI#27F>N_Dp7Cp#siI~snVlF8I2VaXxhhXUvzTy1cVrBL`%Le+NS$;Wx+(?{%^nz_aWdoQe|5wo1MB)z}yQ9jf> z%D>;Y_)Hy@{Wr}v@7e2b%qzq9aGF$hZqi}=ac64v-PLzS!WmVGldX(xr{%r`-JP_S z@zd^4U->Am{apR5LXCMp^4S3vDEVpKws=qiW6CPK7F2B3rj=R^Qju}|Df8#`mv&Y8 z_q;0?;2-f8!vgf6ohe{{YL6&zHoNl zQAyBu*sSF*?x8&Li|Z?cQ+~*<4sB$Qq7ESf|UXd^RwO$E}1fon2HTVMZPl^?VmiPdT-e_X+~dy?V4noC`p&hZ_SROUfq z9qtz0={H4prLzbhO}89qP`AD5wNgu$O*a#%4u0oc5zZ!*;lM}CPv8Bt|JOWugptw* zu_+i=?t|y0H6r~KjRh3RSF&s_*7L=bwcFEDX`X z%qerKcev^zl)OX}v{SSX73AO2YkZsF$n+p~_&fe`A}3nW1Su3-Kt&FPbL;#>FFbk8 z$gtnv>bs;O)k2Y-SqiSitaV7 zWcXnbB*Y==*7aKv`1n_IIb+|Zj*QwMwsj?zd5x-?Q0Fqm7{m;@Tb5K8tAB-8R^M`=?{A7#QxElQPg#HJzwqwc%b~bb;3SibQg$OUBFbM3>#jRPW*51pUW83>>CjZ2``xdPjpI_p#Ji z$!2R|#&m}bfaCf7?^LH9L%W1hd{(8}^Cg0Qg)YiZUuR#Bt#bFyzHVBpuD8;)yVjz6 zBvlgOR8xbbZOahnEz}VowEsf0($eD8VE>l|zBF}i@J#a1<@wuxrK1l97mFaDP(tap zK4>eZoKERn>z2Kzk%15GwW-)?ABOzJ*u`sUQqPafzaQBvX`atn05r$Niv6AD+2@ONAU|N8mZDK#aB(a2 zW}#``bT54RlDz4a{9eg|Y_m+~^eL1v4e?#Ibgi~LG&L8J=_@`v9`p3BZ&|hNijyg< z;J6vu=Xn;9-Q8IuDe5?jfB1ef!s&hF*XvP^*0Ak?_koBO?K^VY{)p7GwrSCpex@4HE4 z%GnS5c3LHU+S|UV#P7A*eWaplxEy?^UEHDRCigR&2k0)4<=69-r%Z}66Xbu!7vis# ziXA;3*<(K7pia>JB=Y{DUxF!5lTxG1cPXGWh0c5DIR5BCYs?aAvFbYAzHdQ=U`QJs zCrxLfX;9Su=$|n{BBn^UUiv(M^B;?5PI$|0UGkTai~ppUlG!RxvCm3d+(;hZ(UzcP z!(XWIikIhembe;=iK*B5*!JJFtK5UZzn+pbN{n{dIrl6@>AM8#50ca01NXk_DGCAY z4=O~H6Q?G%(Bi*{q{+J*+!X^|=cQjZl_b{BQvk)7i01S}{f0pM?uS7Ev`a?XlS#Ub z^ku1#=}l3o+|l!+h%X;J*7Er8Yfshx>~x1aHGUyU!p(j-t}cGhpJqQGD0lQIEZ_Vn zc+#jYmdU-;YV|e68pF{xbghf^w`aN*%>qY+R~5VEl@TG>q}-B8Fw(33rT_~@l1 zU*mDVVsKKV!@Si)YL5$9P429d$P!Za68*uUL#;T9in>zp>ezJDL;l2(6WNcICi#Am z;%x2le3C6)N7(w7%X0VMrVxaZG96p+U8_o2F`|HzeKR{Z{b{e_6;6tu|CDC|UN-k# zpCM7@Djx0wB>eP#F0lol>*WujzyN{(6A$DDYYGZ!)Hr47Jcdx(d(SGy{~aBv6{ht_ zv_Wmcx{~ONopMVP@9K-p#({=Hn?{z*Z))MnVakiMlO&aJ!l!xau>Bav?EW3cY%ka_ zacOgZ$jpfrYb~!@#zn?sIdLCgglKtyz9-0-Yr816C@rzzC2_>;r>Qm_aUL3p)1lgL zAyrihy-cy68Fy4_*OdnS?c)Ki5Rd-cls_*^Buc;ZiJxz5fxPuq^1UVCgfbLq>vr*E% zcuvSmWko)#sjS?jDd3K`M%Z{49aI&JE8GE0uN{T`K6C1u7$G4x$c09=h zu&oA1Um7ZE*(U^Q4&N-qB?KPEeW}c-l4B}Lb&jl)V4>A<3vZYI;^!!5Z~aELtl|%; z69-wq(Ql_}c{vp-PT}BjH=v*4`A8?F+QqbI-XeImrR8T|yy3?hKdO+?v@$v~fXsZB z&C@bx`?AG`=Z~8q%Fz7BNo2lRP+6R{&JOFgO+lWaPe`5W)PB)qM+C8>ecXxr24%{0 zG2OHMFouVHPY;$}>U*%nQpQW#P|eL>W^>c}M^XJ`&>Rr`Fc!^QZUS&%3uUM|76RVY zl&^025775gx%|4)Whsu|eED`QCDH_EZOXipH~->?bZLLIr%0Atxp|WBnKgqB$kgaD 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 Tnn0&WJXz{`F6_=A-JSmfTGh7~ diff --git a/AUTO-CONFIGURATION.md b/AUTO-CONFIGURATION.md index cef585cef..4e0498b75 100755 --- a/AUTO-CONFIGURATION.md +++ b/AUTO-CONFIGURATION.md @@ -4,7 +4,7 @@ ### PLEASE READ CONFIGURATION INSTRUCTIONS BELOW THOROUGHLY :exclamation: _______________ -#### Version: V4.2019.06.1647 +#### Version: V4.2019.06.1650 #### Bad Referrer Count: 6713 #### Bad Bot Count: 556 ____________________ diff --git a/MANUAL-CONFIGURATION.md b/MANUAL-CONFIGURATION.md index f4939417f..67171bc16 100755 --- a/MANUAL-CONFIGURATION.md +++ b/MANUAL-CONFIGURATION.md @@ -4,7 +4,7 @@ ### PLEASE READ CONFIGURATION INSTRUCTIONS BELOW THOROUGHLY :exclamation: _______________ -#### Version: V4.2019.06.1647 +#### Version: V4.2019.06.1650 #### Bad Referrer Count: 6713 #### Bad Bot Count: 556 ____________________ diff --git a/README.md b/README.md index c14c6fcba..e2a804e4b 100755 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ ##### The Ultimate Nginx Bad Bot, User-Agent, Spam Referrer Blocker, Adware, Malware and Ransomware Blocker, Clickjacking Blocker, Click Re-Directing Blocker, SEO Companies and Bad IP Blocker with Anti DDOS System, Nginx Rate Limiting and Wordpress Theme Detector Blocking. Stop and Block all kinds of bad internet traffic from ever reaching your web sites. [PLEASE SEE: Definition of Bad Bots](#define-bad-bots) _______________ -#### Version: V4.2019.06.1647 +#### Version: V4.2019.06.1650 #### Bad Referrer Count: 6713 #### Bad Bot Count: 556 ____________________ diff --git a/_google_analytics_ghost_spam/README.md b/_google_analytics_ghost_spam/README.md index b8f0157e4..93e484232 100644 --- a/_google_analytics_ghost_spam/README.md +++ b/_google_analytics_ghost_spam/README.md @@ -3,7 +3,7 @@ # EASY CONFIGURATION INSTRUCTIONS FOR STOPPING GOOGLE ANALYTICS "GHOST" SPAM _______________ -#### Version: V4.2019.06.1647 +#### Version: V4.2019.06.1650 #### Bad Referrer Count: 6713 #### Bad Bot Count: 556 ____________________ diff --git a/_sample_config_files/Engintron_for_cPanel_WHM_Configuration_Example/etc/nginx/conf.d/globalblacklist.conf b/_sample_config_files/Engintron_for_cPanel_WHM_Configuration_Example/etc/nginx/conf.d/globalblacklist.conf index 0c518d221..51994daac 100755 --- a/_sample_config_files/Engintron_for_cPanel_WHM_Configuration_Example/etc/nginx/conf.d/globalblacklist.conf +++ b/_sample_config_files/Engintron_for_cPanel_WHM_Configuration_Example/etc/nginx/conf.d/globalblacklist.conf @@ -1,16 +1,21 @@ -### ********************************** -### THE ULTIMATE NGINX BAD BOT BLOCKER -### ********************************** +### ----------------------------------------------------------- +### THE NGINX ULTIMATE BAD BOT, BAD IP AND BAD REFERRER BLOCKER +### ----------------------------------------------------------- ### VERSION INFORMATION # ################################################### -### Version: V4.2019.06.1647 -### Updated: Thu Jun 27 14:46:41 SAST 2019 +### Version: V4.2019.06.1650 +### Updated: Thu Jun 27 15:45:51 SAST 2019 ### Bad Referrer Count: 6713 ### Bad Bot Count: 556 ################################################### ### VERSION INFORMATION ## +### -------------------------------------------- +### HELP SUPPORT THIS PROJECT - Send Me a Coffee +### https://ko-fi.com/mitchellkrog +### -------------------------------------------- + ############################################################################## # _ __ _ # # / |/ /__ _(_)__ __ __ # @@ -28,12 +33,16 @@ ### and also has rate limiting functionality for bad bots who you only want to rate limit ### and not actually block out entirely. It is very powerful and also very flexible. +### -------------------------------------------------------------------------- ### Created By: https://github.com/mitchellkrogza/ ### Repo Url: https://github.com/mitchellkrogza/nginx-ultimate-bad-bot-blocker ### Copyright Mitchell Krog - ### Contributors: Stuart Cardall - https://github.com/itoffshore +### -------------------------------------------------------------------------- +### -------------------------------------------------------------------------- ### Tested on: nginx/1.10.3 up to latest Mainstream Version (Ubuntu 16.04) +### -------------------------------------------------------------------------- ### This list was developed and is in use on a live Nginx server running some very busy web sites. ### It was built from the ground up using real data from daily logs and is updated almost daily. @@ -41,9 +50,9 @@ ### spam referrers, rogue IP address, scanners, scrapers and domain hijacking sites are extensively checked ### before they are added. It is monitored extensively for any false positives. -### ********* +### --------- ### Features: -### ********* +### --------- ### Clear formatting for Ease of Maintenance. ### Alphabetically ordered lists for Ease of Maintenance. ### Extensive Commenting for Ease of Reference. @@ -54,40 +63,38 @@ ### IP range blocking / whitelisting. ### Rate Limiting Functions. -### ************ +### ------------ ### INSTALLATION -### ************ +### ------------ ### PLEASE use the install, setup and update scripts provided for you to ease your installation. ### This Auto Installation procedure is documented in the README.md and AUTO-CONFIGURATION.md files. ### Installation, Setup and Update Scripts Contributed by Stuart Cardall - https://github.com/itoffshore ### There are also manual configuration instructions provided for those not wishing to do an auto install. -### *********************************************** +### ----------------------------------------------- ### !!!!! PLEASE READ INLINE NOTES ON TESTING !!!!! -### *********************************************** +### ----------------------------------------------- -### Note that: +### SETTINGS: +### --------------------------------------------- ### 0 = allowed - no limits ### 1 = allowed or rate limited less restrictive ### 2 = rate limited more ### 3 = block completely +### --------------------------------------------- -### ************************************************************ +### ------------------------------------------------------------ ### CONTRIBUTING / PULL REQUESTS / ADDING YOUR OWN BAD REFERRERS -### ************************************************************ +### ------------------------------------------------------------ ### For contributing, corrections or adding bots or referrers to this repo, ### Send a Pull Request (PR) on any of the .list files in the _generator_lists folder ### All Pull Requests will be checked for accuracy before being merged. -# ********************************* -# FIRST BLOCK BY USER-AGENT STRINGS -# ********************************* - -# *********************** +# ----------------------- # !!!!! PLEASE TEST !!!!! -# *********************** +# ----------------------- # ALWAYS test any User-Agent Strings you add here to make sure you have it right # Use a Chrome Extension called "User-Agent Switcher for Chrome" where you can create your @@ -98,36 +105,46 @@ # curl -I http://www.yourdomain.com -A "GoogleBot" ---- GIVES YOU: HTTP/1.1 200 OK (Meaning web page was served to Client) # curl -I http://www.yourdomain.com -A "80legs" ---- GIVES YOU: curl: (52) Empty reply from server (Meaning Nginx gave a 444 Dropped Connection) -# In this section we allow/disallow specific User Agents / Bots. -# ********************************************************************* -# Now we map all good and bad user agents to a variable called $bad_bot -# ********************************************************************* +# ======================= +# START BLOCKER FUNCTIONS +# ======================= + +# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +# DO NOT EDIT ANYTHING BELOW THIS LINE !!! +# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +# ============================= +# BEGIN SECTION 1 - USER-AGENTS +# ============================= + +# ALLOW / BLOCK User Agents / Bots + +# ------------------------------------------------------------------- +# Map all GOOD and BAD UA (User Agents) to a variable called $bad_bot +# ------------------------------------------------------------------- map $http_user_agent $bad_bot { - default 0; -# *********************************************** -# Include your Own Custom List of Bad User Agents -# *********************************************** - -# Use the include file below to further customize your own list of additional user-agents you wish to permanently block -# This include file allows whitelisting and blacklisting of anything specified below it, meaning you can over-ride anything in this blocker to your liking. - -# *********************************************************************************** +# ----------------------------------------------------------------------------------- # START CUSTOM BLACKLISTED USER AGENTS ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### -# *********************************************************************************** +# ----------------------------------------------------------------------------------- + +# Include your Own Custom List of Bad User Agents +# Use the include file below to further customize your own list of additional user-agents you wish to permanently block +# This include file allows whitelisting and blacklisting of anything specified below it. +# This include file alows you to over-ride any Bad / Good UA (Bot) declared in this blocker to your liking. include /etc/nginx/bots.d/blacklist-user-agents.conf; -# ********************************************************************************* +# --------------------------------------------------------------------------------- # END CUSTOM BLACKLISTED USER AGENTS ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### -# ********************************************************************************* +# --------------------------------------------------------------------------------- -# ********************************************* -# Bad User-Agent Strings That We Block Outright -# ********************************************* +# -------------------------------------------------- +# BAD UA (User-Agent) Strings That We Block Outright +# -------------------------------------------------- # START BAD BOTS ### DO NOT EDIT THIS LINE AT ALL ### "~*(?:\b)360Spider(?:\b|)" 3; @@ -688,9 +705,16 @@ map $http_user_agent $bad_bot { "~*(?:\b)ZyBorg(?:\b|)" 3; # END BAD BOTS ### DO NOT EDIT THIS LINE AT ALL ### -# *********************************************** -# Allow Good User-Agent Strings We Know and Trust -# *********************************************** +# -------------------------------------------- +# GOOD UA User-Agent Strings We Know and Trust +# -------------------------------------------- + +# ----------------------------------------------------------------------- +# You can over-ride these in /etc/nginx/bots.d/blacklist-user-agents.conf +# by adding the same UA line there and chaning its value of 1 +# If you think GoogleBot is bad you would simply add them to +# blacklist-user-agents.conf with a value of 1 +# ----------------------------------------------------------------------- # START GOOD BOTS ### DO NOT EDIT THIS LINE AT ALL ### "~*(?:\b)adidxbot(?:\b|)" 0; @@ -727,12 +751,13 @@ map $http_user_agent $bad_bot { "~*(?:\b)yahoo(?:\b|)" 0; # END GOOD BOTS ### DO NOT EDIT THIS LINE AT ALL ### -# *************************************************** -# User-Agent Strings Allowed Through but Rate Limited -# *************************************************** +# -------------------------------------------------------- +# GOOD UA User-Agent Rate Limiting 1 - Disabled by Default +# -------------------------------------------------------- -# Some people block libwww-perl, it used widely in many valid (non rogue) agents -# I allow libwww-perl as I use it for monitoring systems with Munin but it is rate limited + # TO ACTIVATE THIS RATE LIMITING Uncomment these two lines in blockbots.conf + #limit_conn bot1_connlimit 100; + #limit_req zone=bot1_reqlimitip burst=50; # START ALLOWED BOTS ### DO NOT EDIT THIS LINE AT ALL ### "~*(?:\b)jetmon(?:\b|)" 1; @@ -743,9 +768,14 @@ map $http_user_agent $bad_bot { "~*(?:\b)Wget/1.15(?:\b|)" 1; # END ALLOWED BOTS ### DO NOT EDIT THIS LINE AT ALL ### -# ************************************************************** -# Rate Limited User-Agents who get a bit aggressive on bandwidth -# ************************************************************** +# ------------------------------------------------------- +# GOOD UA User-Agent Rate Limiting 2 - Enabled by Default +# ------------------------------------------------------- + +# ----------------------------------------------------------------------- +# You can over-ride these in /etc/nginx/bots.d/blacklist-user-agents.conf +# by adding the same UA line there and chaning its value of 1 +# ----------------------------------------------------------------------- # START LIMITED BOTS ### DO NOT EDIT THIS LINE AT ALL ### "~*(?:\b)Alexa(?:\b|)" 2; @@ -768,163 +798,186 @@ map $http_user_agent $bad_bot { # END LIMITED BOTS ### DO NOT EDIT THIS LINE AT ALL ### } - -# ***************************************** -# SECOND BLOCK BY REFERRER STRINGS AND URLS -# ***************************************** +# =========================== +# END SECTION 1 - USER-AGENTS +# =========================== -# ***************** +# ======================================= +# BEGIN SECTION 2 - REFERRERS AND DOMAINS +# ======================================= + +# ---------------- # PLEASE TEST !!!! -# ***************** - +# ---------------- +# ------------------------------------------------------------------------------------------------------------------------------ # ALWAYS test referrers that you add. This is done manually as follows - +# ------------------------------------------------------------------------------------------------------------------------------ # curl -I http://www.yourdomain.com -e http://anything.adcash.com --- GIVES YOU: curl: (52) Empty reply from server # curl -I http://www.yourdomain.com -e http://www.goodwebsite.com/not-adcash --- GIVES YOU: curl: (52) Empty reply from server # curl -I http://www.yourdomain.com -e http://www.betterwebsite.com/not/adcash --- GIVES YOU: curl: (52) Empty reply from server - +# ------------------------------------------------------------------------------------------------------------------------------ # curl -I http://www.yourdomain.com -e http://www.google.com --- GIVES YOU: full html output of the web page # curl -I http://www.yourdomain.com -e http://www.microsoft.com --- GIVES YOU: full html output of the web page - +# ------------------------------------------------------------------------------------------------------------------------------ # Because of case-insensitive matching any combination of capitilization in the names will all produce a positive hit # make sure you always test thoroughly and monitor logs. This section below also does NOT check for a preceding www. # and it also does not care if the referrer request was sent with http https or even ftp. +# ------------------------------------------------------------------------------------------------------------------------------ -# *********************************************************************** -# Now we map all bad referrer words below to a variable called $bad_words -# *********************************************************************** +# ---------------------------------------------------------------- +# Map all BAD referrer words below to a variable called $bad_words +# ---------------------------------------------------------------- + +# -------------------------------- +# START Bad Referrer Word Scanning +# -------------------------------- map $http_referer $bad_words { default 0; -# ************************** -# Bad Referrer Word Scanning -# ************************** - +# ------------------------------------------------------------------------------------------- # These are Words and Terms often found tagged onto domains or within url query strings. # Create and Customize Your Own Bad Referrer Words Here using the new Include File Method # New Method Uses the include file below so that when pulling future updates your # customized list of bad referrer words are automatically now included for you # Read Comments inside bad-referrer-words.conf for customization tips. # Updating the main globalblacklist.conf file will not touch your custom include files - # BE VERY CAREFUL using the bad-referrer-words.conf file - please read the comment and + # BE VERY CAREFUL using this bad-referrer-words.conf file - please read the comments and # examples inside the include file for detailed explanations into how seriously this can # affect your own site from serving assets or other innocent sites from accessing your site - # For safety sake the whitelist-domains.conf file is also loaded here before the bad-referrer-words.conf file. + # For safety sake the whitelist-domains.conf file is also loaded here before the + # bad-referrer-words.conf file is loaded. +# ------------------------------------------------------------------------------------------- -# ************************************************************************ +# ------------------------------------------------------------------------ # START WHITELISTED DOMAINS ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### -# ************************************************************************ +# ------------------------------------------------------------------------ include /etc/nginx/bots.d/whitelist-domains.conf; -# ********************************************************************** +# ---------------------------------------------------------------------- # END WHITELISTED DOMAINS ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### -# ********************************************************************** +# ---------------------------------------------------------------------- -# ****************************************************************************** +# ------------------------------------------------------------------------------ # START CUSTOM BAD REFERRER WORDS ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### -# ****************************************************************************** +# ------------------------------------------------------------------------------ include /etc/nginx/bots.d/bad-referrer-words.conf; -# **************************************************************************** +# ---------------------------------------------------------------------------- # END CUSTOM BAD REFERRER WORDS ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### -# **************************************************************************** +# ---------------------------------------------------------------------------- } +# -------------------------------- +# END Bad Referrer Word Scanning +# -------------------------------- -# ************************* -# Bad Referrer Domain Names -# ************************* -# Now a list of bad referrer urls these domains or any combination of them ie .com .net -# will be blocked out. Doesn't matter if the protocol is http, https or even ftp +# ---------------------------------------- +# START Good and Bad Referrer Domain Names +# ---------------------------------------- +# ------------------------------------------------------------------------------------- +# Good and Bad referrer urls Doesn't matter if the protocol is http, https or even ftp +# ------------------------------------------------------------------------------------- + +# ---------------------- # This section includes: -# ********************** +# ---------------------- +# -------------------------------------------------------------------------------- # Blocking of SEO company Semalt.com (now merged into this one section) # MIRAI Botnet Domains Used for Mass Attacks # Other known bad SEO companies and Ad Hijacking Sites # Sites linked to malware, adware, clickjacking and ransomware +# Domain names and referrers used in referrer spam and seo hijacking +# Whitelisting of your own GOOD domains / referrers +# Whitelisting of any other GOOD domains / referrers you want explicitly NOT block +# -------------------------------------------------------------------------------- -# ***************** +# ---------------- # PLEASE TEST !!!! -# ***************** - +# ---------------- +# ------------------------------------------------------------------------------------------------------------------------------------ # ALWAYS test referrers that you add. This is done manually as follows - +# ------------------------------------------------------------------------------------------------------------------------------------ # curl -I http://www.yourdomain.com -e http://8gold.com --- GIVES YOU: curl: (52) Empty reply from server - +# ------------------------------------------------------------------------------------------------------------------------------------ # Because of case-insensitive matching any combination of capitilization will all produce a positive hit - make sure you always test. - +# ------------------------------------------------------------------------------------------------------------------------------------ # For Example any of the following variations below of 8gold.com will be detected and blocked - +# ------------------------------------------------------------------------------------------------------------------------------------ # curl -I http://www.yourdomain.com -e http://NOT-8gold.com --- GIVES YOU: curl: (52) Empty reply from server # curl -I http://www.yourdomain.com -e http://this.is.not8gOlD.net --- GIVES YOU: curl: (52) Empty reply from server # curl -I http://www.yourdomain.com -e ftp://8gold.com --- GIVES YOU: curl: (52) Empty reply from server # curl -I http://www.yourdomain.com -e ftp://www.weare8gold.NET --- GIVES YOU: curl: (52) Empty reply from server # curl -I http://www.yourdomain.com -e https://subdomain.8gold.com --- GIVES YOU: curl: (52) Empty reply from server # curl -I http://www.yourdomain.com -e https://NOT8GolD.org --- GIVES YOU: curl: (52) Empty reply from server - +# ------------------------------------------------------------------------------------------------------------------------------------ # So if you see a bad referrer from wearegoogle.com and you want to block them just add # them as "~*wearegoogle.com" don't ever go and do something like "~*google(-|.)" you will # kill all your SEO in a week. - +# ------------------------------------------------------------------------------------------------------------------------------------ # To add your own custom bad referrers use the custom include file # /etc/nginx/bots.d/custom-bad-referrers.conf # Or send a Pull Request to add it to the global blacklist for other users. - # In the bad referrers section I also include sites that hotlink images without permission. +# ------------------------------------------------------------------------------------------------------------------------------------ -# *********************************************************************** -# Now we map all good & bad referrer urls to variable called #bad_referer -# *********************************************************************** +# -------------------------------------------------------------------- +# Map all good & bad referrer DOMAINS to a variable called bad_referer +# -------------------------------------------------------------------- map $http_referer $bad_referer { hostnames; default 0; -# ************************************* -# GOOD REFERRERS - Spared from Checking -# ************************************* +# -------------------------------------------- +# GOOD REFERRER DOMAINS - Spared from Checking +# -------------------------------------------- +# --------------------------------------------------------------------------------------- # Add all your own web site domain names and server names in this section - # WHITELIST Your Own Domain Names Here using the new Include File Method # New Method Uses the include file below so that when pulling future updates your # whitelisted domain names are automatically now included for you. # Read Comments inside whitelist-domains.conf for customization tips. # Updating the main globalblacklist.conf file will not touch your custom include files +# --------------------------------------------------------------------------------------- -# ************************************************************************ +# ------------------------------------------------------------------------ # START WHITELISTED DOMAINS ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### -# ************************************************************************ +# ------------------------------------------------------------------------ include /etc/nginx/bots.d/whitelist-domains.conf; -# ********************************************************************** +# ---------------------------------------------------------------------- # END WHITELISTED DOMAINS ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### -# ********************************************************************** +# ---------------------------------------------------------------------- -# *********************************** +# ----------------------------------- # CUSTOM BAD REFERRERS - Add your Own -# *********************************** +# ----------------------------------- # Add any extra bad referrers in the following include file to have them # permanently included and blocked - avoid duplicates in your custom file +# custom-bad-referrers.conf is BOTH a BLACKLIST AND WHITELIST +# custom-bad-referrers.conf ALLOWS complete over-riding of anything +# If you think google.com is bad you would simply add them to +# custom-bad-referrers.conf with a value of 1 -# ************************************************************************* +# ------------------------------------------------------------------------- # START CUSTOM BAD REFERRERS ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### -# ************************************************************************* +# ------------------------------------------------------------------------- include /etc/nginx/bots.d/custom-bad-referrers.conf; -# *********************************************************************** +# ----------------------------------------------------------------------- # END CUSTOM BAD REFERRERS ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### -# *********************************************************************** +# ----------------------------------------------------------------------- # START BAD REFERRERS ### DO NOT EDIT THIS LINE AT ALL ### "~*(?:\b)000free\.us(?:\b|)" 1; @@ -7644,137 +7697,49 @@ map $http_referer $bad_referer { # END BAD REFERRERS ### DO NOT EDIT THIS LINE AT ALL ### } +# ===================================== +# END SECTION 2 - REFERRERS AND DOMAINS +# ===================================== -# *********************************************** -# WHITELISTING AND BLACKLISTING IP ADDRESS RANGES -# *********************************************** +# ======================================================================== +# BEGIN SECTION 3 - WHITELISTING AND BLACKLISTING IP ADDRESSESE AND RANGES +# ======================================================================== -# Geo directive to deny and also whitelist certain ip addresses +# -------------------------------------------------------------------------------------- +# Map all GOOD and BAD IP Addresses and Ranges to a variable called geo $validate_client +# -------------------------------------------------------------------------------------- geo $validate_client { - -# ******************** -# First Our Safety Net -# ******************** - -# Anything not matching our rules is allowed through with default 0; - default 0; -# *********************************** -# Whitelist all your OWN IP addresses -# *********************************** +# ---------------------------------------------- +# Whitelist all your OWN IP addresses and Ranges +# ---------------------------------------------- +# -------------------------------------------------------------------------------------- # WHITELIST all your own IP addresses using the include file below. # New Method Uses the include file below so that when pulling future updates your # whitelisted IP addresses are automatically now included for you. # Read Comments inside whitelist-ips.conf for customization tips. # Updating the main globalblacklist.conf file will not touch your custom include files + # whitelist-ips.conf reigns supreme !!! + # Whatever you add to whitelist-ips.conf will be whitelisted FULL STOP + # Anything blacklisted above this line will be over-ridden by whitelist-ips.conf +# -------------------------------------------------------------------------------------- -# ************************************************************************** +# -------------------------------------------------------------------------- # START WHITELISTED IP RANGES ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### -# ************************************************************************** +# -------------------------------------------------------------------------- include /etc/nginx/bots.d/whitelist-ips.conf; -# ************************************************************************ +# ------------------------------------------------------------------------ # END WHITELISTED IP RANGES ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### -# ************************************************************************ +# ------------------------------------------------------------------------ -# **************** -# Google IP Ranges -# **************** - -# For Safety Sake all Google's Known IP Ranges are all white listed - -# START GOOGLE IP RANGES ### DO NOT EDIT THIS LINE AT ALL ### - 108.177.0.0/17 0; - 172.217.0.0/16 0; - 173.194.0.0/16 0; - 2001:4860:4000::/36 0; - 203.208.60.0/24 0; - 207.126.144.0/20 0; - 209.85.128.0/17 0; - 216.239.32.0/19 0; - 216.58.192.0/19 0; - 2404:6800:4000::/36 0; - 2607:f8b0:4000::/36 0; - 2800:3f0:4000::/36 0; - 2a00:1450:4000::/36 0; - 2c0f:fb50:4000::/36 0; - 35.192.0.0/12 0; - 64.18.0.0/20 0; - 64.233.160.0/19 0; - 64.68.80.0/21 0; - 65.52.0.0/14 0; - 66.102.0.0/20 0; - 66.249.64.0/19 0; - 72.14.192.0/18 0; - 74.125.0.0/16 0; -# END GOOGLE IP RANGES ### DO NOT EDIT THIS LINE AT ALL ### - -# ************** -# Bing IP Ranges -# ************** - -# For Safety Sake all Bing's Known IP Ranges are all white listed - -# START BING IP RANGES ### DO NOT EDIT THIS LINE AT ALL ### - 131.253.21.0/24 0; - 131.253.22.0/23 0; - 131.253.24.0/21 0; - 131.253.24.0/22 0; - 131.253.32.0/20 0; - 157.54.0.0/15 0; - 157.56.0.0/14 0; - 157.60.0.0/16 0; - 199.30.16.0/24 0; - 199.30.27.0/24 0; - 207.46.0.0/16 0; - 40.112.0.0/13 0; - 40.120.0.0/14 0; - 40.124.0.0/16 0; - 40.125.0.0/17 0; - 40.74.0.0/15 0; - 40.76.0.0/14 0; - 40.80.0.0/12 0; - 40.96.0.0/12 0; -# END BING IP RANGES ### DO NOT EDIT THIS LINE AT ALL ### - -# ******************** -# Cloudflare IP Ranges -# ******************** - -# For Safety Sake all Cloudflare's Known IP Ranges are all white listed - -# START CLOUDFLARE IP RANGES ### DO NOT EDIT THIS LINE AT ALL ### - 103.21.244.0/22 0; - 103.22.200.0/22 0; - 103.31.4.0/22 0; - 104.16.0.0/12 0; - 108.162.192.0/18 0; - 131.0.72.0/22 0; - 141.101.64.0/18 0; - 162.158.0.0/15 0; - 172.64.0.0/13 0; - 173.245.48.0/20 0; - 188.114.96.0/20 0; - 190.93.240.0/20 0; - 197.234.240.0/22 0; - 198.41.128.0/17 0; - 199.27.128.0/21 0; - 2400:cb00::/32 0; - 2405:8100::/32 0; - 2405:b500::/32 0; - 2606:4700::/32 0; - 2803:f800::/32 0; - 2a06:98c0::/29 0; - 2c0f:f248::/32 0; -# END CLOUDFLARE IP RANGES ### DO NOT EDIT THIS LINE AT ALL ### - -# ************************* -# Wordpress Theme Detectors -# ************************* +# ------------------------------------- +# BLOCK known Wordpress Theme Detectors +# ------------------------------------- # START WP THEME DETECTORS ### DO NOT EDIT THIS LINE AT ALL ### @@ -7818,10 +7783,11 @@ geo $validate_client { 89.36.223.188 1; #www.cuteseotools.net/wordpress-theme-detector # END WP THEME DETECTORS ### DO NOT EDIT THIS LINE AT ALL ### -# **************************************** -# NIBBLER - SEO testing and reporting tool -# **************************************** +# ---------------------------------------------- +# BLOCK NIBBLER - SEO testing and reporting tool +# ---------------------------------------------- # See - http://nibbler.silktide.com/ +# ---------------------------------------------- # START NIBBLER ### DO NOT EDIT THIS LINE AT ALL ### 52.201.238.175 1; @@ -7834,33 +7800,10 @@ geo $validate_client { # END NIBBLER ### DO NOT EDIT THIS LINE AT ALL ### -# **************************** -# Known Bad IP's and IP Ranges -# ************************************************* -# Blacklist IP addresses and IP Ranges Customizable -# ************************************************* - -# BLACKLIST all your IP addresses and Ranges using the new include file below. - # New Method Uses the include file below so that when pulling future updates your - # Custom Blacklisted IP addresses are automatically now included for you. - # Read Comments inside blacklist-ips.conf for customization tips. - # Updating the main globalblacklist.conf file will not touch your custom include files - -# ******************************************************************** -# START BLACKLISTED IPS ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### -# ******************************************************************** - - include /etc/nginx/bots.d/blacklist-ips.conf; - -# ****************************************************************** -# END BLACKLISTED IPS ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### -# ****************************************************************** - -# ********************************************************************************************* -# KNOWN BAD IP ADDRESSES -# Source: https://github.com/mitchellkrogza/Suspicious.Snooping.Sniffing.Hacking.IP.Addresses -# A Reliable Daily Updated List Included Below of Known Bad IP Addresses, Snoopers and Sniffers -# ********************************************************************************************* +# ----------------------------------------- +# BLOCK KNOWN BAD IP ADDRESSES +# Top known bad IP Adresses from abuseIPDB +# ----------------------------------------- # START KNOWN BAD IP ADDRESSES ### DO NOT EDIT THIS LINE AT ALL ### 193.32.163.89 1; @@ -17864,33 +17807,176 @@ geo $validate_client { 46.101.115.65 1; # END KNOWN BAD IP ADDRESSES ### DO NOT EDIT THIS LINE AT ALL ### +# -------------------------- +# WHITELIST Google IP Ranges +# -------------------------- + +# START GOOGLE IP RANGES ### DO NOT EDIT THIS LINE AT ALL ### + 108.177.0.0/17 0; + 172.217.0.0/16 0; + 173.194.0.0/16 0; + 2001:4860:4000::/36 0; + 203.208.60.0/24 0; + 207.126.144.0/20 0; + 209.85.128.0/17 0; + 216.239.32.0/19 0; + 216.58.192.0/19 0; + 2404:6800:4000::/36 0; + 2607:f8b0:4000::/36 0; + 2800:3f0:4000::/36 0; + 2a00:1450:4000::/36 0; + 2c0f:fb50:4000::/36 0; + 35.192.0.0/12 0; + 64.18.0.0/20 0; + 64.233.160.0/19 0; + 64.68.80.0/21 0; + 65.52.0.0/14 0; + 66.102.0.0/20 0; + 66.249.64.0/19 0; + 72.14.192.0/18 0; + 74.125.0.0/16 0; +# END GOOGLE IP RANGES ### DO NOT EDIT THIS LINE AT ALL ### + +# ------------------------ +# WHITELIST Bing IP Ranges +# ------------------------ + +# START BING IP RANGES ### DO NOT EDIT THIS LINE AT ALL ### + 131.253.21.0/24 0; + 131.253.22.0/23 0; + 131.253.24.0/21 0; + 131.253.24.0/22 0; + 131.253.32.0/20 0; + 157.54.0.0/15 0; + 157.56.0.0/14 0; + 157.60.0.0/16 0; + 199.30.16.0/24 0; + 199.30.27.0/24 0; + 207.46.0.0/16 0; + 40.112.0.0/13 0; + 40.120.0.0/14 0; + 40.124.0.0/16 0; + 40.125.0.0/17 0; + 40.74.0.0/15 0; + 40.76.0.0/14 0; + 40.80.0.0/12 0; + 40.96.0.0/12 0; +# END BING IP RANGES ### DO NOT EDIT THIS LINE AT ALL ### + +# ------------------------------ +# WHITELIST Cloudflare IP Ranges +# ------------------------------ + +# START CLOUDFLARE IP RANGES ### DO NOT EDIT THIS LINE AT ALL ### + 103.21.244.0/22 0; + 103.22.200.0/22 0; + 103.31.4.0/22 0; + 104.16.0.0/12 0; + 108.162.192.0/18 0; + 131.0.72.0/22 0; + 141.101.64.0/18 0; + 162.158.0.0/15 0; + 172.64.0.0/13 0; + 173.245.48.0/20 0; + 188.114.96.0/20 0; + 190.93.240.0/20 0; + 197.234.240.0/22 0; + 198.41.128.0/17 0; + 199.27.128.0/21 0; + 2400:cb00::/32 0; + 2405:8100::/32 0; + 2405:b500::/32 0; + 2606:4700::/32 0; + 2803:f800::/32 0; + 2a06:98c0::/29 0; + 2c0f:f248::/32 0; +# END CLOUDFLARE IP RANGES ### DO NOT EDIT THIS LINE AT ALL ### + +# ------------------------------------------------- +# BLACKLIST IP addresses and IP Ranges Customizable +# ------------------------------------------------- + +# -------------------------------------------------------------------------------------- +# BLACKLIST all your IP addresses and Ranges using the new include file below. + # New Method Uses the include file below so that when pulling future updates your + # Custom Blacklisted IP addresses are automatically now included for you. + # Read Comments inside blacklist-ips.conf for customization tips. + # Updating the main globalblacklist.conf file will not touch your custom include files + # Anything added to blacklist-ips.conf will over-ride anything whitelisted above +# -------------------------------------------------------------------------------------- + +# -------------------------------------------------------------------- +# START BLACKLISTED IPS ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### +# -------------------------------------------------------------------- + + include /etc/nginx/bots.d/blacklist-ips.conf; + +# ------------------------------------------------------------------ +# END BLACKLISTED IPS ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### +# ------------------------------------------------------------------ + +# ---------------------------------------------- +# Whitelist all your OWN IP addresses and Ranges +# ---------------------------------------------- + +# -------------------------------------------------------------------------------------- +# WHITELIST all your own IP addresses using the include file below. + # New Method Uses the include file below so that when pulling future updates your + # whitelisted IP addresses are automatically now included for you. + # Read Comments inside whitelist-ips.conf for customization tips. + # Updating the main globalblacklist.conf file will not touch your custom include files + # whitelist-ips.conf reigns supreme !!! + # Whatever you add to whitelist-ips.conf will be whitelisted FULL STOP + # Anything blacklisted above this line will be over-ridden by whitelist-ips.conf +# -------------------------------------------------------------------------------------- + +# -------------------------------------------------------------------------- +# START WHITELISTED IP RANGES ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### +# -------------------------------------------------------------------------- + + include /etc/nginx/bots.d/whitelist-ips.conf; + +# ------------------------------------------------------------------------ +# END WHITELISTED IP RANGES ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### +# ------------------------------------------------------------------------ } +# -------------------------------------------------------------------------------------- # WHITELIST your own IPs from the DDOS Filter # Add your own IP addresses and ranges into the custom include file whitelist-ips.conf # to spare them from the rate limiting DDOS filter. # This section includes the same / single whitelist-ips.conf file so you only # need to edit that include file and have it include here for you too. +# -------------------------------------------------------------------------------------- geo $ratelimited { default 1; -# *************************************************************************** +# --------------------------------------------------------------------------- # START WHITELISTED IP RANGES2 ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### -# *************************************************************************** +# --------------------------------------------------------------------------- include /etc/nginx/bots.d/whitelist-ips.conf; -# ************************************************************************* +# ------------------------------------------------------------------------- # END WHITELISTED IP RANGES2 ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### -# ************************************************************************* +# ------------------------------------------------------------------------- } -# ***************************************** -# MAP BAD BOTS TO OUR RATE LIMITER FUNCTION -# ***************************************** +# ====================================================================== +# END SECTION 3 - WHITELISTING AND BLACKLISTING IP ADDRESSESE AND RANGES +# ====================================================================== + + +# ============================================ +# BEGIN SECTION 4 - ACTIVATE BLOCKER FUNCTIONS +# ============================================ + +# -------------------------------------------- +# 1. MAP BAD BOTS TO OUR RATE LIMITER FUNCTION +# -------------------------------------------- map $bad_bot $bot_iplimit { 0 ""; @@ -17898,30 +17984,31 @@ geo $ratelimited { 2 $binary_remote_addr; } -# *********************** -# SET RATE LIMITING ZONES -# *********************** +# -------------------------- +# 2. SET RATE LIMITING ZONES +# -------------------------- # BAD BOT RATE LIMITING ZONE -# limits for Zone $bad_bot = 1 -# Nothing Set - you can set a different zone limiter here if you like -# We issue a 444 response instead to all bad bots. +# Rate limiting will only take effect if on any User-Agents with a value of 2 -# limits for Zone $bad_bot = 2 -# this rate limiting will only take effect if you change any of the bots and change -# their block value from 1 to 2. limit_conn_zone $bot_iplimit zone=bot2_connlimit:16m; - limit_req_zone $bot_iplimit zone=bot2_reqlimitip:16m rate=2r/s; + limit_req_zone $bot_iplimit zone=bot2_reqlimitip:16m rate=12r/m; -### *** MAKE SURE TO ADD to your nginx.conf *** -### server_names_hash_bucket_size 64; -### server_names_hash_max_size 4096; -### limit_req_zone $binary_remote_addr zone=flood:50m rate=90r/s; -### limit_conn_zone $binary_remote_addr zone=addr:50m; -### to allow it to load this large set of domains into memory and to set the rate limiting zones for the DDOS filter. +# ========================================== +# END SECTION 4 - ACTIVATE BLOCKER FUNCTIONS +# ========================================== -### THE END of the Long and Winding Road +# ===================== +# END BLOCKER FUNCTIONS +# ===================== -### Also check out my Ultimate Apache Bad Bot Blocker on Github -### https://github.com/mitchellkrogza/apache-ultimate-bad-bot-blocker +### -------------------------------------------- +### HELP SUPPORT THIS PROJECT - Send Me a Coffee +### https://ko-fi.com/mitchellkrog +### -------------------------------------------- + +### FOR APACHE SERVERS +### --------------------------------------------- +### Check out the Ultimate Apache Bad Bot Blocker +### --------------------------------------------- diff --git a/conf.d/globalblacklist-testing-version.conf b/conf.d/globalblacklist-testing-version.conf index 5206f0e14..0c17cf784 100644 --- a/conf.d/globalblacklist-testing-version.conf +++ b/conf.d/globalblacklist-testing-version.conf @@ -4,8 +4,8 @@ ### VERSION INFORMATION # ################################################### -### Version: V3.2019.06.1647 -### Updated: Thu Jun 27 14:46:42 SAST 2019 +### Version: V3.2019.06.1650 +### Updated: Thu Jun 27 15:45:52 SAST 2019 ### Bad Referrer Count: 6713 ### Bad Bot Count: 556 ################################################### @@ -17992,7 +17992,7 @@ geo $ratelimited { # Rate limiting will only take effect if on any User-Agents with a value of 2 limit_conn_zone $bot_iplimit zone=bot2_connlimit:16m; - limit_req_zone $bot_iplimit zone=bot2_reqlimitip:16m rate=6r/m; + limit_req_zone $bot_iplimit zone=bot2_reqlimitip:16m rate=12r/m; # ========================================== # END SECTION 4 - ACTIVATE BLOCKER FUNCTIONS diff --git a/conf.d/globalblacklist.conf b/conf.d/globalblacklist.conf index 0c518d221..51994daac 100644 --- a/conf.d/globalblacklist.conf +++ b/conf.d/globalblacklist.conf @@ -1,16 +1,21 @@ -### ********************************** -### THE ULTIMATE NGINX BAD BOT BLOCKER -### ********************************** +### ----------------------------------------------------------- +### THE NGINX ULTIMATE BAD BOT, BAD IP AND BAD REFERRER BLOCKER +### ----------------------------------------------------------- ### VERSION INFORMATION # ################################################### -### Version: V4.2019.06.1647 -### Updated: Thu Jun 27 14:46:41 SAST 2019 +### Version: V4.2019.06.1650 +### Updated: Thu Jun 27 15:45:51 SAST 2019 ### Bad Referrer Count: 6713 ### Bad Bot Count: 556 ################################################### ### VERSION INFORMATION ## +### -------------------------------------------- +### HELP SUPPORT THIS PROJECT - Send Me a Coffee +### https://ko-fi.com/mitchellkrog +### -------------------------------------------- + ############################################################################## # _ __ _ # # / |/ /__ _(_)__ __ __ # @@ -28,12 +33,16 @@ ### and also has rate limiting functionality for bad bots who you only want to rate limit ### and not actually block out entirely. It is very powerful and also very flexible. +### -------------------------------------------------------------------------- ### Created By: https://github.com/mitchellkrogza/ ### Repo Url: https://github.com/mitchellkrogza/nginx-ultimate-bad-bot-blocker ### Copyright Mitchell Krog - ### Contributors: Stuart Cardall - https://github.com/itoffshore +### -------------------------------------------------------------------------- +### -------------------------------------------------------------------------- ### Tested on: nginx/1.10.3 up to latest Mainstream Version (Ubuntu 16.04) +### -------------------------------------------------------------------------- ### This list was developed and is in use on a live Nginx server running some very busy web sites. ### It was built from the ground up using real data from daily logs and is updated almost daily. @@ -41,9 +50,9 @@ ### spam referrers, rogue IP address, scanners, scrapers and domain hijacking sites are extensively checked ### before they are added. It is monitored extensively for any false positives. -### ********* +### --------- ### Features: -### ********* +### --------- ### Clear formatting for Ease of Maintenance. ### Alphabetically ordered lists for Ease of Maintenance. ### Extensive Commenting for Ease of Reference. @@ -54,40 +63,38 @@ ### IP range blocking / whitelisting. ### Rate Limiting Functions. -### ************ +### ------------ ### INSTALLATION -### ************ +### ------------ ### PLEASE use the install, setup and update scripts provided for you to ease your installation. ### This Auto Installation procedure is documented in the README.md and AUTO-CONFIGURATION.md files. ### Installation, Setup and Update Scripts Contributed by Stuart Cardall - https://github.com/itoffshore ### There are also manual configuration instructions provided for those not wishing to do an auto install. -### *********************************************** +### ----------------------------------------------- ### !!!!! PLEASE READ INLINE NOTES ON TESTING !!!!! -### *********************************************** +### ----------------------------------------------- -### Note that: +### SETTINGS: +### --------------------------------------------- ### 0 = allowed - no limits ### 1 = allowed or rate limited less restrictive ### 2 = rate limited more ### 3 = block completely +### --------------------------------------------- -### ************************************************************ +### ------------------------------------------------------------ ### CONTRIBUTING / PULL REQUESTS / ADDING YOUR OWN BAD REFERRERS -### ************************************************************ +### ------------------------------------------------------------ ### For contributing, corrections or adding bots or referrers to this repo, ### Send a Pull Request (PR) on any of the .list files in the _generator_lists folder ### All Pull Requests will be checked for accuracy before being merged. -# ********************************* -# FIRST BLOCK BY USER-AGENT STRINGS -# ********************************* - -# *********************** +# ----------------------- # !!!!! PLEASE TEST !!!!! -# *********************** +# ----------------------- # ALWAYS test any User-Agent Strings you add here to make sure you have it right # Use a Chrome Extension called "User-Agent Switcher for Chrome" where you can create your @@ -98,36 +105,46 @@ # curl -I http://www.yourdomain.com -A "GoogleBot" ---- GIVES YOU: HTTP/1.1 200 OK (Meaning web page was served to Client) # curl -I http://www.yourdomain.com -A "80legs" ---- GIVES YOU: curl: (52) Empty reply from server (Meaning Nginx gave a 444 Dropped Connection) -# In this section we allow/disallow specific User Agents / Bots. -# ********************************************************************* -# Now we map all good and bad user agents to a variable called $bad_bot -# ********************************************************************* +# ======================= +# START BLOCKER FUNCTIONS +# ======================= + +# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +# DO NOT EDIT ANYTHING BELOW THIS LINE !!! +# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +# ============================= +# BEGIN SECTION 1 - USER-AGENTS +# ============================= + +# ALLOW / BLOCK User Agents / Bots + +# ------------------------------------------------------------------- +# Map all GOOD and BAD UA (User Agents) to a variable called $bad_bot +# ------------------------------------------------------------------- map $http_user_agent $bad_bot { - default 0; -# *********************************************** -# Include your Own Custom List of Bad User Agents -# *********************************************** - -# Use the include file below to further customize your own list of additional user-agents you wish to permanently block -# This include file allows whitelisting and blacklisting of anything specified below it, meaning you can over-ride anything in this blocker to your liking. - -# *********************************************************************************** +# ----------------------------------------------------------------------------------- # START CUSTOM BLACKLISTED USER AGENTS ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### -# *********************************************************************************** +# ----------------------------------------------------------------------------------- + +# Include your Own Custom List of Bad User Agents +# Use the include file below to further customize your own list of additional user-agents you wish to permanently block +# This include file allows whitelisting and blacklisting of anything specified below it. +# This include file alows you to over-ride any Bad / Good UA (Bot) declared in this blocker to your liking. include /etc/nginx/bots.d/blacklist-user-agents.conf; -# ********************************************************************************* +# --------------------------------------------------------------------------------- # END CUSTOM BLACKLISTED USER AGENTS ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### -# ********************************************************************************* +# --------------------------------------------------------------------------------- -# ********************************************* -# Bad User-Agent Strings That We Block Outright -# ********************************************* +# -------------------------------------------------- +# BAD UA (User-Agent) Strings That We Block Outright +# -------------------------------------------------- # START BAD BOTS ### DO NOT EDIT THIS LINE AT ALL ### "~*(?:\b)360Spider(?:\b|)" 3; @@ -688,9 +705,16 @@ map $http_user_agent $bad_bot { "~*(?:\b)ZyBorg(?:\b|)" 3; # END BAD BOTS ### DO NOT EDIT THIS LINE AT ALL ### -# *********************************************** -# Allow Good User-Agent Strings We Know and Trust -# *********************************************** +# -------------------------------------------- +# GOOD UA User-Agent Strings We Know and Trust +# -------------------------------------------- + +# ----------------------------------------------------------------------- +# You can over-ride these in /etc/nginx/bots.d/blacklist-user-agents.conf +# by adding the same UA line there and chaning its value of 1 +# If you think GoogleBot is bad you would simply add them to +# blacklist-user-agents.conf with a value of 1 +# ----------------------------------------------------------------------- # START GOOD BOTS ### DO NOT EDIT THIS LINE AT ALL ### "~*(?:\b)adidxbot(?:\b|)" 0; @@ -727,12 +751,13 @@ map $http_user_agent $bad_bot { "~*(?:\b)yahoo(?:\b|)" 0; # END GOOD BOTS ### DO NOT EDIT THIS LINE AT ALL ### -# *************************************************** -# User-Agent Strings Allowed Through but Rate Limited -# *************************************************** +# -------------------------------------------------------- +# GOOD UA User-Agent Rate Limiting 1 - Disabled by Default +# -------------------------------------------------------- -# Some people block libwww-perl, it used widely in many valid (non rogue) agents -# I allow libwww-perl as I use it for monitoring systems with Munin but it is rate limited + # TO ACTIVATE THIS RATE LIMITING Uncomment these two lines in blockbots.conf + #limit_conn bot1_connlimit 100; + #limit_req zone=bot1_reqlimitip burst=50; # START ALLOWED BOTS ### DO NOT EDIT THIS LINE AT ALL ### "~*(?:\b)jetmon(?:\b|)" 1; @@ -743,9 +768,14 @@ map $http_user_agent $bad_bot { "~*(?:\b)Wget/1.15(?:\b|)" 1; # END ALLOWED BOTS ### DO NOT EDIT THIS LINE AT ALL ### -# ************************************************************** -# Rate Limited User-Agents who get a bit aggressive on bandwidth -# ************************************************************** +# ------------------------------------------------------- +# GOOD UA User-Agent Rate Limiting 2 - Enabled by Default +# ------------------------------------------------------- + +# ----------------------------------------------------------------------- +# You can over-ride these in /etc/nginx/bots.d/blacklist-user-agents.conf +# by adding the same UA line there and chaning its value of 1 +# ----------------------------------------------------------------------- # START LIMITED BOTS ### DO NOT EDIT THIS LINE AT ALL ### "~*(?:\b)Alexa(?:\b|)" 2; @@ -768,163 +798,186 @@ map $http_user_agent $bad_bot { # END LIMITED BOTS ### DO NOT EDIT THIS LINE AT ALL ### } - -# ***************************************** -# SECOND BLOCK BY REFERRER STRINGS AND URLS -# ***************************************** +# =========================== +# END SECTION 1 - USER-AGENTS +# =========================== -# ***************** +# ======================================= +# BEGIN SECTION 2 - REFERRERS AND DOMAINS +# ======================================= + +# ---------------- # PLEASE TEST !!!! -# ***************** - +# ---------------- +# ------------------------------------------------------------------------------------------------------------------------------ # ALWAYS test referrers that you add. This is done manually as follows - +# ------------------------------------------------------------------------------------------------------------------------------ # curl -I http://www.yourdomain.com -e http://anything.adcash.com --- GIVES YOU: curl: (52) Empty reply from server # curl -I http://www.yourdomain.com -e http://www.goodwebsite.com/not-adcash --- GIVES YOU: curl: (52) Empty reply from server # curl -I http://www.yourdomain.com -e http://www.betterwebsite.com/not/adcash --- GIVES YOU: curl: (52) Empty reply from server - +# ------------------------------------------------------------------------------------------------------------------------------ # curl -I http://www.yourdomain.com -e http://www.google.com --- GIVES YOU: full html output of the web page # curl -I http://www.yourdomain.com -e http://www.microsoft.com --- GIVES YOU: full html output of the web page - +# ------------------------------------------------------------------------------------------------------------------------------ # Because of case-insensitive matching any combination of capitilization in the names will all produce a positive hit # make sure you always test thoroughly and monitor logs. This section below also does NOT check for a preceding www. # and it also does not care if the referrer request was sent with http https or even ftp. +# ------------------------------------------------------------------------------------------------------------------------------ -# *********************************************************************** -# Now we map all bad referrer words below to a variable called $bad_words -# *********************************************************************** +# ---------------------------------------------------------------- +# Map all BAD referrer words below to a variable called $bad_words +# ---------------------------------------------------------------- + +# -------------------------------- +# START Bad Referrer Word Scanning +# -------------------------------- map $http_referer $bad_words { default 0; -# ************************** -# Bad Referrer Word Scanning -# ************************** - +# ------------------------------------------------------------------------------------------- # These are Words and Terms often found tagged onto domains or within url query strings. # Create and Customize Your Own Bad Referrer Words Here using the new Include File Method # New Method Uses the include file below so that when pulling future updates your # customized list of bad referrer words are automatically now included for you # Read Comments inside bad-referrer-words.conf for customization tips. # Updating the main globalblacklist.conf file will not touch your custom include files - # BE VERY CAREFUL using the bad-referrer-words.conf file - please read the comment and + # BE VERY CAREFUL using this bad-referrer-words.conf file - please read the comments and # examples inside the include file for detailed explanations into how seriously this can # affect your own site from serving assets or other innocent sites from accessing your site - # For safety sake the whitelist-domains.conf file is also loaded here before the bad-referrer-words.conf file. + # For safety sake the whitelist-domains.conf file is also loaded here before the + # bad-referrer-words.conf file is loaded. +# ------------------------------------------------------------------------------------------- -# ************************************************************************ +# ------------------------------------------------------------------------ # START WHITELISTED DOMAINS ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### -# ************************************************************************ +# ------------------------------------------------------------------------ include /etc/nginx/bots.d/whitelist-domains.conf; -# ********************************************************************** +# ---------------------------------------------------------------------- # END WHITELISTED DOMAINS ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### -# ********************************************************************** +# ---------------------------------------------------------------------- -# ****************************************************************************** +# ------------------------------------------------------------------------------ # START CUSTOM BAD REFERRER WORDS ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### -# ****************************************************************************** +# ------------------------------------------------------------------------------ include /etc/nginx/bots.d/bad-referrer-words.conf; -# **************************************************************************** +# ---------------------------------------------------------------------------- # END CUSTOM BAD REFERRER WORDS ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### -# **************************************************************************** +# ---------------------------------------------------------------------------- } +# -------------------------------- +# END Bad Referrer Word Scanning +# -------------------------------- -# ************************* -# Bad Referrer Domain Names -# ************************* -# Now a list of bad referrer urls these domains or any combination of them ie .com .net -# will be blocked out. Doesn't matter if the protocol is http, https or even ftp +# ---------------------------------------- +# START Good and Bad Referrer Domain Names +# ---------------------------------------- +# ------------------------------------------------------------------------------------- +# Good and Bad referrer urls Doesn't matter if the protocol is http, https or even ftp +# ------------------------------------------------------------------------------------- + +# ---------------------- # This section includes: -# ********************** +# ---------------------- +# -------------------------------------------------------------------------------- # Blocking of SEO company Semalt.com (now merged into this one section) # MIRAI Botnet Domains Used for Mass Attacks # Other known bad SEO companies and Ad Hijacking Sites # Sites linked to malware, adware, clickjacking and ransomware +# Domain names and referrers used in referrer spam and seo hijacking +# Whitelisting of your own GOOD domains / referrers +# Whitelisting of any other GOOD domains / referrers you want explicitly NOT block +# -------------------------------------------------------------------------------- -# ***************** +# ---------------- # PLEASE TEST !!!! -# ***************** - +# ---------------- +# ------------------------------------------------------------------------------------------------------------------------------------ # ALWAYS test referrers that you add. This is done manually as follows - +# ------------------------------------------------------------------------------------------------------------------------------------ # curl -I http://www.yourdomain.com -e http://8gold.com --- GIVES YOU: curl: (52) Empty reply from server - +# ------------------------------------------------------------------------------------------------------------------------------------ # Because of case-insensitive matching any combination of capitilization will all produce a positive hit - make sure you always test. - +# ------------------------------------------------------------------------------------------------------------------------------------ # For Example any of the following variations below of 8gold.com will be detected and blocked - +# ------------------------------------------------------------------------------------------------------------------------------------ # curl -I http://www.yourdomain.com -e http://NOT-8gold.com --- GIVES YOU: curl: (52) Empty reply from server # curl -I http://www.yourdomain.com -e http://this.is.not8gOlD.net --- GIVES YOU: curl: (52) Empty reply from server # curl -I http://www.yourdomain.com -e ftp://8gold.com --- GIVES YOU: curl: (52) Empty reply from server # curl -I http://www.yourdomain.com -e ftp://www.weare8gold.NET --- GIVES YOU: curl: (52) Empty reply from server # curl -I http://www.yourdomain.com -e https://subdomain.8gold.com --- GIVES YOU: curl: (52) Empty reply from server # curl -I http://www.yourdomain.com -e https://NOT8GolD.org --- GIVES YOU: curl: (52) Empty reply from server - +# ------------------------------------------------------------------------------------------------------------------------------------ # So if you see a bad referrer from wearegoogle.com and you want to block them just add # them as "~*wearegoogle.com" don't ever go and do something like "~*google(-|.)" you will # kill all your SEO in a week. - +# ------------------------------------------------------------------------------------------------------------------------------------ # To add your own custom bad referrers use the custom include file # /etc/nginx/bots.d/custom-bad-referrers.conf # Or send a Pull Request to add it to the global blacklist for other users. - # In the bad referrers section I also include sites that hotlink images without permission. +# ------------------------------------------------------------------------------------------------------------------------------------ -# *********************************************************************** -# Now we map all good & bad referrer urls to variable called #bad_referer -# *********************************************************************** +# -------------------------------------------------------------------- +# Map all good & bad referrer DOMAINS to a variable called bad_referer +# -------------------------------------------------------------------- map $http_referer $bad_referer { hostnames; default 0; -# ************************************* -# GOOD REFERRERS - Spared from Checking -# ************************************* +# -------------------------------------------- +# GOOD REFERRER DOMAINS - Spared from Checking +# -------------------------------------------- +# --------------------------------------------------------------------------------------- # Add all your own web site domain names and server names in this section - # WHITELIST Your Own Domain Names Here using the new Include File Method # New Method Uses the include file below so that when pulling future updates your # whitelisted domain names are automatically now included for you. # Read Comments inside whitelist-domains.conf for customization tips. # Updating the main globalblacklist.conf file will not touch your custom include files +# --------------------------------------------------------------------------------------- -# ************************************************************************ +# ------------------------------------------------------------------------ # START WHITELISTED DOMAINS ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### -# ************************************************************************ +# ------------------------------------------------------------------------ include /etc/nginx/bots.d/whitelist-domains.conf; -# ********************************************************************** +# ---------------------------------------------------------------------- # END WHITELISTED DOMAINS ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### -# ********************************************************************** +# ---------------------------------------------------------------------- -# *********************************** +# ----------------------------------- # CUSTOM BAD REFERRERS - Add your Own -# *********************************** +# ----------------------------------- # Add any extra bad referrers in the following include file to have them # permanently included and blocked - avoid duplicates in your custom file +# custom-bad-referrers.conf is BOTH a BLACKLIST AND WHITELIST +# custom-bad-referrers.conf ALLOWS complete over-riding of anything +# If you think google.com is bad you would simply add them to +# custom-bad-referrers.conf with a value of 1 -# ************************************************************************* +# ------------------------------------------------------------------------- # START CUSTOM BAD REFERRERS ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### -# ************************************************************************* +# ------------------------------------------------------------------------- include /etc/nginx/bots.d/custom-bad-referrers.conf; -# *********************************************************************** +# ----------------------------------------------------------------------- # END CUSTOM BAD REFERRERS ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### -# *********************************************************************** +# ----------------------------------------------------------------------- # START BAD REFERRERS ### DO NOT EDIT THIS LINE AT ALL ### "~*(?:\b)000free\.us(?:\b|)" 1; @@ -7644,137 +7697,49 @@ map $http_referer $bad_referer { # END BAD REFERRERS ### DO NOT EDIT THIS LINE AT ALL ### } +# ===================================== +# END SECTION 2 - REFERRERS AND DOMAINS +# ===================================== -# *********************************************** -# WHITELISTING AND BLACKLISTING IP ADDRESS RANGES -# *********************************************** +# ======================================================================== +# BEGIN SECTION 3 - WHITELISTING AND BLACKLISTING IP ADDRESSESE AND RANGES +# ======================================================================== -# Geo directive to deny and also whitelist certain ip addresses +# -------------------------------------------------------------------------------------- +# Map all GOOD and BAD IP Addresses and Ranges to a variable called geo $validate_client +# -------------------------------------------------------------------------------------- geo $validate_client { - -# ******************** -# First Our Safety Net -# ******************** - -# Anything not matching our rules is allowed through with default 0; - default 0; -# *********************************** -# Whitelist all your OWN IP addresses -# *********************************** +# ---------------------------------------------- +# Whitelist all your OWN IP addresses and Ranges +# ---------------------------------------------- +# -------------------------------------------------------------------------------------- # WHITELIST all your own IP addresses using the include file below. # New Method Uses the include file below so that when pulling future updates your # whitelisted IP addresses are automatically now included for you. # Read Comments inside whitelist-ips.conf for customization tips. # Updating the main globalblacklist.conf file will not touch your custom include files + # whitelist-ips.conf reigns supreme !!! + # Whatever you add to whitelist-ips.conf will be whitelisted FULL STOP + # Anything blacklisted above this line will be over-ridden by whitelist-ips.conf +# -------------------------------------------------------------------------------------- -# ************************************************************************** +# -------------------------------------------------------------------------- # START WHITELISTED IP RANGES ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### -# ************************************************************************** +# -------------------------------------------------------------------------- include /etc/nginx/bots.d/whitelist-ips.conf; -# ************************************************************************ +# ------------------------------------------------------------------------ # END WHITELISTED IP RANGES ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### -# ************************************************************************ +# ------------------------------------------------------------------------ -# **************** -# Google IP Ranges -# **************** - -# For Safety Sake all Google's Known IP Ranges are all white listed - -# START GOOGLE IP RANGES ### DO NOT EDIT THIS LINE AT ALL ### - 108.177.0.0/17 0; - 172.217.0.0/16 0; - 173.194.0.0/16 0; - 2001:4860:4000::/36 0; - 203.208.60.0/24 0; - 207.126.144.0/20 0; - 209.85.128.0/17 0; - 216.239.32.0/19 0; - 216.58.192.0/19 0; - 2404:6800:4000::/36 0; - 2607:f8b0:4000::/36 0; - 2800:3f0:4000::/36 0; - 2a00:1450:4000::/36 0; - 2c0f:fb50:4000::/36 0; - 35.192.0.0/12 0; - 64.18.0.0/20 0; - 64.233.160.0/19 0; - 64.68.80.0/21 0; - 65.52.0.0/14 0; - 66.102.0.0/20 0; - 66.249.64.0/19 0; - 72.14.192.0/18 0; - 74.125.0.0/16 0; -# END GOOGLE IP RANGES ### DO NOT EDIT THIS LINE AT ALL ### - -# ************** -# Bing IP Ranges -# ************** - -# For Safety Sake all Bing's Known IP Ranges are all white listed - -# START BING IP RANGES ### DO NOT EDIT THIS LINE AT ALL ### - 131.253.21.0/24 0; - 131.253.22.0/23 0; - 131.253.24.0/21 0; - 131.253.24.0/22 0; - 131.253.32.0/20 0; - 157.54.0.0/15 0; - 157.56.0.0/14 0; - 157.60.0.0/16 0; - 199.30.16.0/24 0; - 199.30.27.0/24 0; - 207.46.0.0/16 0; - 40.112.0.0/13 0; - 40.120.0.0/14 0; - 40.124.0.0/16 0; - 40.125.0.0/17 0; - 40.74.0.0/15 0; - 40.76.0.0/14 0; - 40.80.0.0/12 0; - 40.96.0.0/12 0; -# END BING IP RANGES ### DO NOT EDIT THIS LINE AT ALL ### - -# ******************** -# Cloudflare IP Ranges -# ******************** - -# For Safety Sake all Cloudflare's Known IP Ranges are all white listed - -# START CLOUDFLARE IP RANGES ### DO NOT EDIT THIS LINE AT ALL ### - 103.21.244.0/22 0; - 103.22.200.0/22 0; - 103.31.4.0/22 0; - 104.16.0.0/12 0; - 108.162.192.0/18 0; - 131.0.72.0/22 0; - 141.101.64.0/18 0; - 162.158.0.0/15 0; - 172.64.0.0/13 0; - 173.245.48.0/20 0; - 188.114.96.0/20 0; - 190.93.240.0/20 0; - 197.234.240.0/22 0; - 198.41.128.0/17 0; - 199.27.128.0/21 0; - 2400:cb00::/32 0; - 2405:8100::/32 0; - 2405:b500::/32 0; - 2606:4700::/32 0; - 2803:f800::/32 0; - 2a06:98c0::/29 0; - 2c0f:f248::/32 0; -# END CLOUDFLARE IP RANGES ### DO NOT EDIT THIS LINE AT ALL ### - -# ************************* -# Wordpress Theme Detectors -# ************************* +# ------------------------------------- +# BLOCK known Wordpress Theme Detectors +# ------------------------------------- # START WP THEME DETECTORS ### DO NOT EDIT THIS LINE AT ALL ### @@ -7818,10 +7783,11 @@ geo $validate_client { 89.36.223.188 1; #www.cuteseotools.net/wordpress-theme-detector # END WP THEME DETECTORS ### DO NOT EDIT THIS LINE AT ALL ### -# **************************************** -# NIBBLER - SEO testing and reporting tool -# **************************************** +# ---------------------------------------------- +# BLOCK NIBBLER - SEO testing and reporting tool +# ---------------------------------------------- # See - http://nibbler.silktide.com/ +# ---------------------------------------------- # START NIBBLER ### DO NOT EDIT THIS LINE AT ALL ### 52.201.238.175 1; @@ -7834,33 +7800,10 @@ geo $validate_client { # END NIBBLER ### DO NOT EDIT THIS LINE AT ALL ### -# **************************** -# Known Bad IP's and IP Ranges -# ************************************************* -# Blacklist IP addresses and IP Ranges Customizable -# ************************************************* - -# BLACKLIST all your IP addresses and Ranges using the new include file below. - # New Method Uses the include file below so that when pulling future updates your - # Custom Blacklisted IP addresses are automatically now included for you. - # Read Comments inside blacklist-ips.conf for customization tips. - # Updating the main globalblacklist.conf file will not touch your custom include files - -# ******************************************************************** -# START BLACKLISTED IPS ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### -# ******************************************************************** - - include /etc/nginx/bots.d/blacklist-ips.conf; - -# ****************************************************************** -# END BLACKLISTED IPS ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### -# ****************************************************************** - -# ********************************************************************************************* -# KNOWN BAD IP ADDRESSES -# Source: https://github.com/mitchellkrogza/Suspicious.Snooping.Sniffing.Hacking.IP.Addresses -# A Reliable Daily Updated List Included Below of Known Bad IP Addresses, Snoopers and Sniffers -# ********************************************************************************************* +# ----------------------------------------- +# BLOCK KNOWN BAD IP ADDRESSES +# Top known bad IP Adresses from abuseIPDB +# ----------------------------------------- # START KNOWN BAD IP ADDRESSES ### DO NOT EDIT THIS LINE AT ALL ### 193.32.163.89 1; @@ -17864,33 +17807,176 @@ geo $validate_client { 46.101.115.65 1; # END KNOWN BAD IP ADDRESSES ### DO NOT EDIT THIS LINE AT ALL ### +# -------------------------- +# WHITELIST Google IP Ranges +# -------------------------- + +# START GOOGLE IP RANGES ### DO NOT EDIT THIS LINE AT ALL ### + 108.177.0.0/17 0; + 172.217.0.0/16 0; + 173.194.0.0/16 0; + 2001:4860:4000::/36 0; + 203.208.60.0/24 0; + 207.126.144.0/20 0; + 209.85.128.0/17 0; + 216.239.32.0/19 0; + 216.58.192.0/19 0; + 2404:6800:4000::/36 0; + 2607:f8b0:4000::/36 0; + 2800:3f0:4000::/36 0; + 2a00:1450:4000::/36 0; + 2c0f:fb50:4000::/36 0; + 35.192.0.0/12 0; + 64.18.0.0/20 0; + 64.233.160.0/19 0; + 64.68.80.0/21 0; + 65.52.0.0/14 0; + 66.102.0.0/20 0; + 66.249.64.0/19 0; + 72.14.192.0/18 0; + 74.125.0.0/16 0; +# END GOOGLE IP RANGES ### DO NOT EDIT THIS LINE AT ALL ### + +# ------------------------ +# WHITELIST Bing IP Ranges +# ------------------------ + +# START BING IP RANGES ### DO NOT EDIT THIS LINE AT ALL ### + 131.253.21.0/24 0; + 131.253.22.0/23 0; + 131.253.24.0/21 0; + 131.253.24.0/22 0; + 131.253.32.0/20 0; + 157.54.0.0/15 0; + 157.56.0.0/14 0; + 157.60.0.0/16 0; + 199.30.16.0/24 0; + 199.30.27.0/24 0; + 207.46.0.0/16 0; + 40.112.0.0/13 0; + 40.120.0.0/14 0; + 40.124.0.0/16 0; + 40.125.0.0/17 0; + 40.74.0.0/15 0; + 40.76.0.0/14 0; + 40.80.0.0/12 0; + 40.96.0.0/12 0; +# END BING IP RANGES ### DO NOT EDIT THIS LINE AT ALL ### + +# ------------------------------ +# WHITELIST Cloudflare IP Ranges +# ------------------------------ + +# START CLOUDFLARE IP RANGES ### DO NOT EDIT THIS LINE AT ALL ### + 103.21.244.0/22 0; + 103.22.200.0/22 0; + 103.31.4.0/22 0; + 104.16.0.0/12 0; + 108.162.192.0/18 0; + 131.0.72.0/22 0; + 141.101.64.0/18 0; + 162.158.0.0/15 0; + 172.64.0.0/13 0; + 173.245.48.0/20 0; + 188.114.96.0/20 0; + 190.93.240.0/20 0; + 197.234.240.0/22 0; + 198.41.128.0/17 0; + 199.27.128.0/21 0; + 2400:cb00::/32 0; + 2405:8100::/32 0; + 2405:b500::/32 0; + 2606:4700::/32 0; + 2803:f800::/32 0; + 2a06:98c0::/29 0; + 2c0f:f248::/32 0; +# END CLOUDFLARE IP RANGES ### DO NOT EDIT THIS LINE AT ALL ### + +# ------------------------------------------------- +# BLACKLIST IP addresses and IP Ranges Customizable +# ------------------------------------------------- + +# -------------------------------------------------------------------------------------- +# BLACKLIST all your IP addresses and Ranges using the new include file below. + # New Method Uses the include file below so that when pulling future updates your + # Custom Blacklisted IP addresses are automatically now included for you. + # Read Comments inside blacklist-ips.conf for customization tips. + # Updating the main globalblacklist.conf file will not touch your custom include files + # Anything added to blacklist-ips.conf will over-ride anything whitelisted above +# -------------------------------------------------------------------------------------- + +# -------------------------------------------------------------------- +# START BLACKLISTED IPS ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### +# -------------------------------------------------------------------- + + include /etc/nginx/bots.d/blacklist-ips.conf; + +# ------------------------------------------------------------------ +# END BLACKLISTED IPS ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### +# ------------------------------------------------------------------ + +# ---------------------------------------------- +# Whitelist all your OWN IP addresses and Ranges +# ---------------------------------------------- + +# -------------------------------------------------------------------------------------- +# WHITELIST all your own IP addresses using the include file below. + # New Method Uses the include file below so that when pulling future updates your + # whitelisted IP addresses are automatically now included for you. + # Read Comments inside whitelist-ips.conf for customization tips. + # Updating the main globalblacklist.conf file will not touch your custom include files + # whitelist-ips.conf reigns supreme !!! + # Whatever you add to whitelist-ips.conf will be whitelisted FULL STOP + # Anything blacklisted above this line will be over-ridden by whitelist-ips.conf +# -------------------------------------------------------------------------------------- + +# -------------------------------------------------------------------------- +# START WHITELISTED IP RANGES ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### +# -------------------------------------------------------------------------- + + include /etc/nginx/bots.d/whitelist-ips.conf; + +# ------------------------------------------------------------------------ +# END WHITELISTED IP RANGES ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### +# ------------------------------------------------------------------------ } +# -------------------------------------------------------------------------------------- # WHITELIST your own IPs from the DDOS Filter # Add your own IP addresses and ranges into the custom include file whitelist-ips.conf # to spare them from the rate limiting DDOS filter. # This section includes the same / single whitelist-ips.conf file so you only # need to edit that include file and have it include here for you too. +# -------------------------------------------------------------------------------------- geo $ratelimited { default 1; -# *************************************************************************** +# --------------------------------------------------------------------------- # START WHITELISTED IP RANGES2 ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### -# *************************************************************************** +# --------------------------------------------------------------------------- include /etc/nginx/bots.d/whitelist-ips.conf; -# ************************************************************************* +# ------------------------------------------------------------------------- # END WHITELISTED IP RANGES2 ### DO NOT EDIT OR REMOVE THIS LINE AT ALL ### -# ************************************************************************* +# ------------------------------------------------------------------------- } -# ***************************************** -# MAP BAD BOTS TO OUR RATE LIMITER FUNCTION -# ***************************************** +# ====================================================================== +# END SECTION 3 - WHITELISTING AND BLACKLISTING IP ADDRESSESE AND RANGES +# ====================================================================== + + +# ============================================ +# BEGIN SECTION 4 - ACTIVATE BLOCKER FUNCTIONS +# ============================================ + +# -------------------------------------------- +# 1. MAP BAD BOTS TO OUR RATE LIMITER FUNCTION +# -------------------------------------------- map $bad_bot $bot_iplimit { 0 ""; @@ -17898,30 +17984,31 @@ geo $ratelimited { 2 $binary_remote_addr; } -# *********************** -# SET RATE LIMITING ZONES -# *********************** +# -------------------------- +# 2. SET RATE LIMITING ZONES +# -------------------------- # BAD BOT RATE LIMITING ZONE -# limits for Zone $bad_bot = 1 -# Nothing Set - you can set a different zone limiter here if you like -# We issue a 444 response instead to all bad bots. +# Rate limiting will only take effect if on any User-Agents with a value of 2 -# limits for Zone $bad_bot = 2 -# this rate limiting will only take effect if you change any of the bots and change -# their block value from 1 to 2. limit_conn_zone $bot_iplimit zone=bot2_connlimit:16m; - limit_req_zone $bot_iplimit zone=bot2_reqlimitip:16m rate=2r/s; + limit_req_zone $bot_iplimit zone=bot2_reqlimitip:16m rate=12r/m; -### *** MAKE SURE TO ADD to your nginx.conf *** -### server_names_hash_bucket_size 64; -### server_names_hash_max_size 4096; -### limit_req_zone $binary_remote_addr zone=flood:50m rate=90r/s; -### limit_conn_zone $binary_remote_addr zone=addr:50m; -### to allow it to load this large set of domains into memory and to set the rate limiting zones for the DDOS filter. +# ========================================== +# END SECTION 4 - ACTIVATE BLOCKER FUNCTIONS +# ========================================== -### THE END of the Long and Winding Road +# ===================== +# END BLOCKER FUNCTIONS +# ===================== -### Also check out my Ultimate Apache Bad Bot Blocker on Github -### https://github.com/mitchellkrogza/apache-ultimate-bad-bot-blocker +### -------------------------------------------- +### HELP SUPPORT THIS PROJECT - Send Me a Coffee +### https://ko-fi.com/mitchellkrog +### -------------------------------------------- + +### FOR APACHE SERVERS +### --------------------------------------------- +### Check out the Ultimate Apache Bad Bot Blocker +### --------------------------------------------- diff --git a/robots.txt/robots.txt b/robots.txt/robots.txt index 137ef5cf9..986af0e15 100644 --- a/robots.txt/robots.txt +++ b/robots.txt/robots.txt @@ -6,8 +6,8 @@ ### Version Information # ################################################### -### Version: V4.2019.06.1647 -### Updated: Thu Jun 27 14:46:43 SAST 2019 +### Version: V4.2019.06.1650 +### Updated: Thu Jun 27 15:45:54 SAST 2019 ### Bad Bot Count: 556 ################################################### ### Version Information ##