Plugin Directory

Changeset 2761248


Ignore:
Timestamp:
07/25/2022 03:38:47 PM (4 years ago)
Author:
seersco
Message:

design changes on this current version 7.0.0

Location:
seers-cookie-consent-banner-privacy-policy
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • seers-cookie-consent-banner-privacy-policy/trunk/css/cookie-style.css

    r2752081 r2761248  
    765765    padding: 10px 0px;
    766766    border-bottom: 0;
    767     background: #fff;
    768767    width: 100%;
    769768    text-align: center;
     
    771770    color: #999999;
    772771    font-weight: 500;
    773     padding-left: 20px;
    774     padding-right: 20px;
    775772}
    776773.pc-tab ul li label:hover {
    777774    /*background: #312a2a00;*/
    778     background: #FFF;
    779775}
    780776.pc-tab ul li label:active {
    781777    /*background: #312a2a00;*/
    782     background: #FFF;
    783 }
    784 .pc-tab ul li:not(:last-child) label {
    785     border-right-width: 0;
    786778}
    787779.pc-tab section {
    788780    clear: both;
    789781    margin-top:-5px;
    790     background: #FFF;
    791782}
    792783.pc-tab section div {
     
    812803    height: 2px;
    813804    width: 100%;
    814     background: #FFF;
     805    background: #4273f8;
    815806    left: 0;
    816807    bottom: -2px;
     
    12821273}
    12831274/*accordion*/
     1275
     1276.showmessrelative{
     1277    position:relative;
     1278}
  • seers-cookie-consent-banner-privacy-policy/trunk/readme.txt

    r2752082 r2761248  
    1717== Description ==
    1818
    19 Seers CMP (Cookie Consent Management Platform) enables you to implement Cookie Banner/ Cookie Notice on your website.
    20 Seers helps make websites compliant with GDPR (DSGVO), PECR and ePrivacy Directives.
    21 Cookie Consent Plugin is intended to supplement individuals’ privacy rights and protections provided under all the privacy regulations in the European Union's GDPR, California's CCPA, Singapore's PDPA, South Africa's POPIA, UK's GDPR, Brazil’s LGPD, Canadian PIPEDA, Australia’s OAIC, China PIPL and more.
    22 Obtain GDPR and ePrivacy Directive compliant consents, as well as services and cookies, and fill all your cookie banners with legal information.
     19Seers Cookie Consent Management Platform (CMP) enables you to implement Cookie Banner/ Cookie Notice on your website and helps businesses to achieve compliance with all the privacy regulations worldwide including European Union’s GDPR, California’s CCPA, Singapore’s PDPA, South Africa’s POPIA, UK’s GDPR, Brazil’s LGPD, Canadian PIPEDA, Australia’s OAIC, China PIPL and more.
     20Seers cookie plugin designed specifically for WordPress websites to simplify the setup and supports cookie compliance. It is a free and attractive way to get a Cookie Consent Banner, obtain consents, find cookies and trackers, record consent and fill all legal information in your cookie banner which is required to stay compliant.
    2321The Seers Plugin is one of the best for WordPress GDPR Compliance which has features stated below:
    2422
     
    2725== KEY FEATURES ==
    2826
    29 • Configure a Cookie Notice for specific regions like the EU, the UK, the USA, Australia, South Africa, Brazil, China or Canada.
    30 • Also, configure specific cookie consent for sub-regions such as the EU + GDPR/DSGVO/CNIL or the United States + CCPA.
    31 • Scan your Website Cookies so you can quickly enlist the cookies your website is using in the cookie and privacy policy.
    32 • Get Cookie Consent and Conditional Cookie Notice with Customisable Templates and Custom CSS. 
    33 • This cookie consent plugin adds a GDPR compliant cookie banner to your website at any position (header, footer, right, left, etc.) you would like.
    34 • Banner templates for UK/US/CA/AU with accept, reject and customisation buttons are included.
    35 • Automatically detects the requirement for a Cookie Banner or Cookie Notice and scans for updates in Plugins, Cookies, and third-party services regularly. 
    36 • With the support of this WordPress GDPR plugin, you can fully customise the cookie notice style so that it blends in with your existing website’s theme.
    37 • It can modify the colors, fonts, styles, the location on the page, and even how it behaves when you click "Accept" or "Allow".
    38 • Integrates with google consent mode and Interactive Advertising Bureau (IAB).
    39 • Implementation of Google Analytics, Google Tag Manager, Clicky, Matomo, etc. Use Tag Manager and automatically anonymises IP addresses for Google Analytics if needed.
    40 • Blocks third-party cookies (Google Maps, AdSense, Recaptcha, ActiveCampaign, HubSpot, Twitter, Facebook, Instagram, etc. ), iFrames ( YouTube, Dailymotion, Vimeo, etc. ) and social iFrames ( Facebook, Instagram, etc. ).
    41 • Cookie Audit report to prove compliance and showcase what cookie your website uses.
    42 • Explicit Consent. Accept, Reject & Setting. GDPR Article 7
    43 • Comes with the Admin Panel to control all the settings related to displayed cookies and their description. Cookie Banner settings, sizes, wordings, etc.
    44 • Cookie Database of 750,000 cookies pre-fill detected cookie data with clear and transparent cookie descriptions that are updated regularly.
    45 • Compatible with all browsers including Chrome, Firefox, Safari, Explorer & Edge.
    46 • Works with all the popular themes, including Divi, Elementor, and more.
    47 • Seamlessly integrates with local or other popular plugins, for example, Gutenberg Google Analytics, Google Maps Widgets, WP Forms, WP Google Maps, Easy Digital Downloads, Contact Form 7, WPBakery, Woocommerce, Gravity Forms, Divi, Elementor, Foeminator, Beehive, GADWP, and many more.   
    48 • Support Options – Documentation and Online support
    49 • Cookie compliance covers regional and sub-regional current and upcoming laws and regulations like,
    50 
    51 1. EU GDPR (DSGVO): The General Data Protection Regulation
    52 1. PECR: The Privacy and Electronic Communications Regulations
    53 1. ePrivacy directive
    54 1. France's CNIL: Commission Nationale Informatique & Libertiés
    55 1. Canadian PIPEDA: The Personal Information Protection and Electronic Documents Act
    56 1. California CCPA, USA: The California Consumer Privacy Act
    57 1. Brazilian LGPD: The Brazilian General Data Protection Law
    58 1. Australian OAIC: Australia’s Privacy Principles
    59 1. Chinese PIPL: Personal Information Protection Law
    60 1. Indian PDPB: Personal Data Protection Bill
    61 
    62 • If you want more cutting-edge features, You can visit [Seers Pricing Plan](https://seersco.com/price-plan) and choose the Premium package.
     27* Configure a Cookie Notice for specific regions like the EU, the UK, the USA, Australia, South Africa, Brazil, China or Canada.
     28* Also, configure specific cookie consent for sub-regions such as the EU + GDPR/DSGVO/CNIL or the United States + CCPA.
     29* Scan your Website Cookies so you can quickly enlist the cookies your website is using in the cookie and privacy policy.
     30* Get Cookie Consent and Conditional Cookie Notice with Customisable Templates and Custom CSS. 
     31* This cookie consent plugin adds a GDPR compliant cookie banner to your website at any position (header, footer, right, left, etc.) you would like.
     32* Banner templates for UK/US/CA/AU with accept, reject and customisation buttons are included.
     33* Automatically detects the requirement for a Cookie Banner or Cookie Notice and scans for updates in Plugins, Cookies, and third-party services regularly. 
     34* With the support of this WordPress GDPR plugin, you can fully customise the cookie notice style so that it blends in with your existing website’s theme.
     35* It can modify the colors, fonts, styles, the location on the page, and even how it behaves when you click "Accept" or "Allow".
     36* Integrates with google consent mode and Interactive Advertising Bureau (IAB).
     37* Implementation of Google Analytics, Google Tag Manager, Clicky, Matomo, etc. Use Tag Manager and automatically anonymises IP addresses for Google Analytics if needed.
     38* Blocks third-party cookies (Google Maps, AdSense, Recaptcha, ActiveCampaign, HubSpot, Twitter, Facebook, Instagram, etc. ), iFrames ( YouTube, Dailymotion, Vimeo, etc. ) and social iFrames ( Facebook, Instagram, etc. ).
     39* Cookie Audit report to prove compliance and showcase what cookie your website uses.
     40* Explicit Consent. Accept, Reject & Setting. GDPR Article 7
     41* Comes with the Admin Panel to control all the settings related to displayed cookies and their description. Cookie Banner settings, sizes, wordings, etc.
     42* Cookie Database of 750,000 cookies pre-fill detected cookie data with clear and transparent cookie descriptions that are updated regularly.
     43* Compatible with all browsers including Chrome, Firefox, Safari, Explorer & Edge.
     44* Works with all the popular themes, including Divi, Elementor, and more.
     45* Seamlessly integrates with local or other popular plugins, for example, Gutenberg Google Analytics, Google Maps Widgets, WP Forms, WP Google Maps, Easy Digital Downloads, Contact Form 7, WPBakery, Woocommerce, Gravity Forms, Divi, Elementor, Foeminator, Beehive, GADWP, and many more.   
     46* Support Options – Documentation and Online support
     47
     48**Cookie compliance covers regional and sub-regional current and upcoming laws and regulations like:**
     49
     50* EU GDPR (DSGVO): The General Data Protection Regulation
     51* PECR: The Privacy and Electronic Communications Regulations
     52* ePrivacy directive
     53* France's CNIL: Commission Nationale Informatique & Libertiés
     54* Canadian PIPEDA: The Personal Information Protection and Electronic Documents Act
     55* California CCPA, USA: The California Consumer Privacy Act
     56* Brazilian LGPD: The Brazilian General Data Protection Law
     57* Australian OAIC: Australia’s Privacy Principles
     58* Chinese PIPL: Personal Information Protection Law
     59* Indian PDPB: Personal Data Protection Bill
     60
     61**If you want more cutting-edge features, You can visit [Seers Pricing Plan](https://seersco.com/price-plan) and choose the Premium package.**
    6362
    6463
     
    6766FREE Features PLUS
    6867
    69  Manage multiple websites under one admin panel
    70  Google Consent Mode
    71  Child Privacy Consent Management
    72  Prior Consent. Cookies don’t fire till user consent. GDPR Article 5
    73  Cookie policy. Required by GDPR article 12
    74  5+ Banner Layouts & Preset Designs
    75  Scan Unlimited Subpages
    76  Manages Cookie Categories and list of cookies such as CookieID, Name, Description, Type, Category, Duration, Header & Footer Script.
    77  Full customisation of buttons, styles, colors, and fonts resembling your own website's theme and style.
    78  Displays the cookie banner in the header, footer, as a pop-up, or as a widget.
    79  Enables to display cookie notice settings popup where site visitors can give consent to cookie categories.
    80  Automatically scans and blocks scripts such as Google Analytics, Google Tag Manager, Pixel, Instagram, Facebook, etc.
    81  The consent analytics dashboard allows you to track how visitors' consents and make adjustments accordingly.
    82  Improve your cookie banner acceptance rate by monitoring progress via a consent activity graph.
    83  Enables users to have granular control over the cookies and scripts for websites.
    84  Auto-update cookie consents when there is a change in the cookie policy.
    85  Multi-Lingual Banners, automatically translate all banner text strings allowing custom translations – 30 languages
    86  Detect Geolocation
    87  Automatically generates cookie policy.
    88  Banner as seen on UK’s Information Commissioner’s Office website
    89  Branding – Own logo
    90  Compatible with qTranslate, Polylang, WPML, etc.
    91  Cookie declaration Table including cookies purpose. PECR – Reg 6
    92  Consent Log. Record users consent is required by GDPR Article 30
    93  Customise Cookie Policy Design
    94  Compatible with major caching plugins and servers such as WP Rocket, WP Engine, Bluehost, W3 Total Cache, SG Super Catcher, etc. 
    95  Pre-configured to prevent Dark Patterns through our unique Intentional Consent design.
    96  CCPA Banner – Opt-Out option
    97  World Class UK based Customer Support
    98  In line with the regulator’s age-appropriate design & code of practice.
     68* Manage multiple websites under one admin panel
     69* Google Consent Mode
     70* Child Privacy Consent Management
     71* Prior Consent. Cookies don’t fire till user consent. GDPR Article 5
     72* Cookie policy. Required by GDPR article 12
     73* 5+ Banner Layouts & Preset Designs
     74* Scan Unlimited Subpages
     75* Manages Cookie Categories and list of cookies such as CookieID, Name, Description, Type, Category, Duration, Header & Footer Script.
     76* Full customisation of buttons, styles, colors, and fonts resembling your own website's theme and style.
     77* Displays the cookie banner in the header, footer, as a pop-up, or as a widget.
     78* Enables to display cookie notice settings popup where site visitors can give consent to cookie categories.
     79* Automatically scans and blocks scripts such as Google Analytics, Google Tag Manager, Pixel, Instagram, Facebook, etc.
     80* The consent analytics dashboard allows you to track how visitors' consents and make adjustments accordingly.
     81* Improve your cookie banner acceptance rate by monitoring progress via a consent activity graph.
     82* Enables users to have granular control over the cookies and scripts for websites.
     83* Auto-update cookie consents when there is a change in the cookie policy.
     84* Multi-Lingual Banners, automatically translate all banner text strings allowing custom translations – 30 languages
     85* Detect Geolocation
     86* Automatically generates cookie policy.
     87* Banner as seen on UK’s Information Commissioner’s Office website
     88* Branding – Own logo
     89* Compatible with qTranslate, Polylang, WPML, etc.
     90* Cookie declaration Table including cookies purpose. PECR – Reg 6
     91* Consent Log. Record users consent is required by GDPR Article 30
     92* Customise Cookie Policy Design
     93* Compatible with major caching plugins and servers such as WP Rocket, WP Engine, Bluehost, W3 Total Cache, SG Super Catcher, etc. 
     94* Pre-configured to prevent Dark Patterns through our unique Intentional Consent design.
     95* CCPA Banner – Opt-Out option
     96* World Class UK based Customer Support
     97* In line with the regulator’s age-appropriate design & code of practice.
    9998
    10099
  • seers-cookie-consent-banner-privacy-policy/trunk/seers-cookie-consent-banner-privacy-policy.php

    r2752081 r2761248  
    5252        //public $apibaseurl = 'https://cmp.seersco.dev/api/';
    5353        //public $apibaseurl = 'https://seersco.backend/api/';
     54        //public $apibaseurl = 'https://seerscophp8.backend/api/';
    5455        public $defaultfontsize = 12;
    5556
     
    324325                                        update_option( 'SCCBPP_cookie_consent_lang', get_user_locale() );
    325326                                        update_option( 'SCCBPP_cookie_consent_show_badge', (($seerscosettings && !empty($seerscosettings->has_badge)) ? $seerscosettings->has_badge : get_option("SCCBPP_cookie_consent_show_badge", "") ) );
    326                                         update_option( 'SCCBPP_cookie_consent_agree_btn_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->agree_btn_color)) ? $seerscosettingsbanner->agree_btn_color : get_option("SCCBPP_cookie_consent_agree_btn_color", "#3B6EF8") ) );
    327                                         update_option( 'SCCBPP_cookie_consent_disagree_btn_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->disagree_btn_color)) ? $seerscosettingsbanner->disagree_btn_color : get_option("SCCBPP_cookie_consent_disagree_btn_color", '#3B6EF8') ) );
    328                                         update_option( 'SCCBPP_cookie_consent_preferences_btn_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->preferences_btn_color)) ? $seerscosettingsbanner->preferences_btn_color : get_option("SCCBPP_cookie_consent_preferences_btn_color", '#FFFFFF') ) );
    329                                         update_option( 'SCCBPP_cookie_consent_banner_bg_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->banner_bg_color)) ? $seerscosettingsbanner->banner_bg_color : get_option("SCCBPP_cookie_consent_banner_bg_color", '#FFFFFF') ) );
    330                                         update_option( 'SCCBPP_cookie_consent_body_text_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->body_text_color)) ? $seerscosettingsbanner->body_text_color : get_option("SCCBPP_cookie_consent_body_text_color", '#000000') ) );
    331                                         update_option( 'SCCBPP_cookie_consent_agree_text_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->agree_text_color)) ? $seerscosettingsbanner->agree_text_color : get_option("SCCBPP_cookie_consent_agree_text_color", '#FFFFFF') ) );
    332                                         update_option( 'SCCBPP_cookie_consent_disagree_text_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->disagree_text_color)) ? $seerscosettingsbanner->disagree_text_color : get_option("SCCBPP_cookie_consent_disagree_text_color", '#FFFFFF') ) );
    333                                         update_option( 'SCCBPP_cookie_consent_preferences_text_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->preferences_text_color)) ? $seerscosettingsbanner->preferences_text_color : get_option("SCCBPP_cookie_consent_preferences_text_color", '#000000') ) );
     327                                        update_option( 'SCCBPP_cookie_consent_agree_btn_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->agree_btn_color)) ? trim($seerscosettingsbanner->agree_btn_color) : get_option("SCCBPP_cookie_consent_agree_btn_color", "#3B6EF8") ) );
     328                                        update_option( 'SCCBPP_cookie_consent_disagree_btn_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->disagree_btn_color)) ? trim($seerscosettingsbanner->disagree_btn_color) : get_option("SCCBPP_cookie_consent_disagree_btn_color", '#3B6EF8') ) );
     329                                        update_option( 'SCCBPP_cookie_consent_preferences_btn_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->preferences_btn_color)) ? trim($seerscosettingsbanner->preferences_btn_color) : get_option("SCCBPP_cookie_consent_preferences_btn_color", '#FFFFFF') ) );
     330                                        update_option( 'SCCBPP_cookie_consent_banner_bg_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->banner_bg_color)) ? trim($seerscosettingsbanner->banner_bg_color) : get_option("SCCBPP_cookie_consent_banner_bg_color", '#FFFFFF') ) );
     331                                        update_option( 'SCCBPP_cookie_consent_body_text_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->body_text_color)) ? trim($seerscosettingsbanner->body_text_color) : get_option("SCCBPP_cookie_consent_body_text_color", '#000000') ) );
     332                                        update_option( 'SCCBPP_cookie_consent_agree_text_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->agree_text_color)) ? trim($seerscosettingsbanner->agree_text_color) : get_option("SCCBPP_cookie_consent_agree_text_color", '#FFFFFF') ) );
     333                                        update_option( 'SCCBPP_cookie_consent_disagree_text_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->disagree_text_color)) ? trim($seerscosettingsbanner->disagree_text_color) : get_option("SCCBPP_cookie_consent_disagree_text_color", '#FFFFFF') ) );
     334                                        update_option( 'SCCBPP_cookie_consent_preferences_text_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->preferences_text_color)) ? trim($seerscosettingsbanner->preferences_text_color) : get_option("SCCBPP_cookie_consent_preferences_text_color", '#000000') ) );
    334335                                        update_option( 'SCCBPP_cookie_consent_body_text', (($seerscosettings && !empty($seerscosettings->body)) ? $seerscosettings->body : get_option("SCCBPP_cookie_consent_body_text", '') ) );
    335336                                        update_option( 'SCCBPP_cookie_consent_accept_btn_text', (($seerscosettings && !empty($seerscosettings->btn_agree_title)) ? $seerscosettings->btn_agree_title : get_option("SCCBPP_cookie_consent_accept_btn_text", '') ) );
     
    353354                                            'platform' => 'wordpress',
    354355
    355                                             'agree_btn_color'=> ((!empty($seerscosettingsbanner) && !empty($seerscosettingsbanner->agree_btn_color)) ? $seerscosettingsbanner->agree_btn_color : get_option('SCCBPP_cookie_consent_agree_btn_color', '#3B6EF8' )),
    356                                             'disagree_btn_color'=> ((!empty($seerscosettingsbanner) && !empty($seerscosettingsbanner->disagree_btn_color)) ? $seerscosettingsbanner->disagree_btn_color : get_option('SCCBPP_cookie_consent_disagree_btn_color', '#3B6EF8' )),
    357                                             'preferences_btn_color'=> ((!empty($seerscosettingsbanner) && !empty($seerscosettingsbanner->preferences_btn_color)) ? $seerscosettingsbanner->preferences_btn_color : get_option('SCCBPP_cookie_consent_preferences_btn_color', '#FFFFFF' )),
    358                                             'banner_bg_color'=> ((!empty($seerscosettingsbanner) && !empty($seerscosettingsbanner->banner_bg_color)) ? $seerscosettingsbanner->banner_bg_color : get_option('SCCBPP_cookie_consent_banner_bg_color', '#FFFFFF' )),
    359 
    360                                             'body_text_color'=> ((!empty($seerscosettingsbanner) && !empty($seerscosettingsbanner->body_text_color)) ? $seerscosettingsbanner->body_text_color : get_option('SCCBPP_cookie_consent_body_text_color', '#000000' )),
    361                                             'agree_text_color'=> ((!empty($seerscosettingsbanner) && !empty($seerscosettingsbanner->agree_text_color)) ? $seerscosettingsbanner->agree_text_color : get_option('SCCBPP_cookie_consent_agree_text_color', '#FFFFFF' )),
    362                                             'disagree_text_color'=> ((!empty($seerscosettingsbanner) && !empty($seerscosettingsbanner->disagree_text_color)) ? $seerscosettingsbanner->disagree_text_color : get_option('SCCBPP_cookie_consent_disagree_text_color', '#FFFFFF' )),
    363                                             'preferences_text_color'=> ((!empty($seerscosettingsbanner) && !empty($seerscosettingsbanner->preferences_text_color)) ? $seerscosettingsbanner->preferences_text_color : get_option('SCCBPP_cookie_consent_preferences_text_color', '#000000' )),
     356                                            'agree_btn_color'=> ((!empty($seerscosettingsbanner) && !empty($seerscosettingsbanner->agree_btn_color)) ? trim($seerscosettingsbanner->agree_btn_color) : get_option('SCCBPP_cookie_consent_agree_btn_color', '#3B6EF8' )),
     357                                            'disagree_btn_color'=> ((!empty($seerscosettingsbanner) && !empty($seerscosettingsbanner->disagree_btn_color)) ? trim($seerscosettingsbanner->disagree_btn_color) : get_option('SCCBPP_cookie_consent_disagree_btn_color', '#3B6EF8' )),
     358                                            'preferences_btn_color'=> ((!empty($seerscosettingsbanner) && !empty($seerscosettingsbanner->preferences_btn_color)) ? trim($seerscosettingsbanner->preferences_btn_color) : get_option('SCCBPP_cookie_consent_preferences_btn_color', '#FFFFFF' )),
     359                                            'banner_bg_color'=> ((!empty($seerscosettingsbanner) && !empty($seerscosettingsbanner->banner_bg_color)) ? trim($seerscosettingsbanner->banner_bg_color) : get_option('SCCBPP_cookie_consent_banner_bg_color', '#FFFFFF' )),
     360
     361                                            'body_text_color'=> ((!empty($seerscosettingsbanner) && !empty($seerscosettingsbanner->body_text_color)) ? trim($seerscosettingsbanner->body_text_color) : get_option('SCCBPP_cookie_consent_body_text_color', '#000000' )),
     362                                            'agree_text_color'=> ((!empty($seerscosettingsbanner) && !empty($seerscosettingsbanner->agree_text_color)) ? trim($seerscosettingsbanner->agree_text_color) : get_option('SCCBPP_cookie_consent_agree_text_color', '#FFFFFF' )),
     363                                            'disagree_text_color'=> ((!empty($seerscosettingsbanner) && !empty($seerscosettingsbanner->disagree_text_color)) ? trim($seerscosettingsbanner->disagree_text_color) : get_option('SCCBPP_cookie_consent_disagree_text_color', '#FFFFFF' )),
     364                                            'preferences_text_color'=> ((!empty($seerscosettingsbanner) && !empty($seerscosettingsbanner->preferences_text_color)) ? trim($seerscosettingsbanner->preferences_text_color) : get_option('SCCBPP_cookie_consent_preferences_text_color', '#000000' )),
    364365
    365366                                            'font_style'=> ((!empty($seerscosettingsbanner) && !empty($seerscosettingsbanner->font_style)) ? $seerscosettingsbanner->font_style : get_option('SCCBPP_cookie_consent_font_style', '' )),
     
    498499
    499500
    500                         if ($existEnablePolicy != '') {
    501                             update_option('SCCBPP_cookie_consent_enable_policy', $enable_policy);
    502                         } else {
    503                             add_option('SCCBPP_cookie_consent_enable_policy', $enable_policy);
    504                         }
    505 
    506                         if($enable_policy == "true" || $enable_policy == true ){
    507 
    508                            $existUrl = get_option('SCCBPP_cookie_consent_policy_declaration_url');
    509                             if ($existUrl != '') {
    510                                 update_option('SCCBPP_cookie_consent_policy_declaration_url', $cookies_policy);
    511                             }else{
    512                                 add_option('SCCBPP_cookie_consent_policy_declaration_url', $cookies_policy);
    513                             }
    514 
    515                             echo __('Cookies policy added successfully.', $this->textdomain);
    516                         }
     501                       
     502                        update_option('SCCBPP_cookie_consent_enable_policy', $enable_policy);
     503
     504                        $existUrl = get_option('SCCBPP_cookie_consent_policy_declaration_url');
     505
     506                         update_option('SCCBPP_cookie_consent_policy_declaration_url', $cookies_policy);
     507
     508
     509                         echo __('Cookies policy added successfully.', $this->textdomain);
     510                       
    517511                    }else{
    518512                        echo __('Some thing went wrong. Please check url and try again', $this->textdomain);
     
    530524               
    531525                $existEnablePolicy = get_option('SCCBPP_cookie_consent_enable_policy');
    532                    
    533 
    534                 if ($existEnablePolicy != '') {
    535                     update_option('SCCBPP_cookie_consent_enable_policy', $enable_policy);
    536                 } else {
    537                     add_option('SCCBPP_cookie_consent_enable_policy', $enable_policy);
    538             }
     526               
     527                update_option('SCCBPP_cookie_consent_enable_policy', $enable_policy);
    539528
    540529                if($enable_policy == "true" || $enable_policy === true ){
    541530
    542531                   $existUrl = get_option('SCCBPP_cookie_consent_policy_declaration_url');
    543                     if ($existUrl != '') {
    544                         update_option('SCCBPP_cookie_consent_policy_declaration_url', $cookies_policy);
    545                     }else{
    546                         add_option('SCCBPP_cookie_consent_policy_declaration_url', $cookies_policy);
    547                     }
     532                   
     533                    update_option('SCCBPP_cookie_consent_policy_declaration_url', $cookies_policy);
    548534
    549535                    echo __('Cookies policy added successfully.', $this->textdomain);
    550536                } else {
    551537                    $existUrl = get_option('SCCBPP_cookie_consent_policy_declaration_url');
    552                     if ($existUrl != '') {
    553                         update_option('SCCBPP_cookie_consent_policy_declaration_url', '');
    554                     }
     538                    update_option('SCCBPP_cookie_consent_enable_policy', $enable_policy);
     539                   
    555540                    echo __('Cookies policy added successfully.', $this->textdomain);
    556541                }
     
    600585                if ( !is_wp_error( $result ) ) {
    601586                    $response = json_decode($result['body']);
     587                   
    602588
    603589                    if ( !empty($response->bannersettings) ) {
     
    661647                            )
    662648                        );
     649                       
    663650                        if ( !is_wp_error( $result ) ) {
    664651
     
    10511038                    $seers_Tag = '<script data-key="' . $cookie_consent_code . '" data-name="CookieXray" src="https://cdn.seersco.com/banners/' . $bannerid1 . '/' . $bannerid2 . '/cb.js" type="text/javascript"></script>';
    10521039                    //$seers_Tag = '<script data-key="' . $cookie_consent_code . '" data-name="CookieXray" src="https://seersco.backend/script/cb.js" type="text/javascript"></script>';
     1040                    //$seers_Tag = '<script data-key="' . $cookie_consent_code . '" data-name="CookieXray" src="https://seers-banners-local.s3.eu-west-2.amazonaws.com/banners/' . $bannerid1 . '/' . $bannerid2 . '/cb.js" type="text/javascript"></script>';
    10531041                } else {
    10541042                    $seers_Tag = '<script data-key="' . $cookie_consent_code . '" data-name="CookieXray" src="https://cmp.seersco.com/script/cb.js" type="text/javascript"></script>';
     
    10571045                    //$seers_Tag = '<script data-key="' . $cookie_consent_code . '" data-name="CookieXray" src="https://cmp.seersco.dev/script/cb.js" type="text/javascript"></script>';
    10581046                    //$seers_Tag = '<script data-key="' . $cookie_consent_code . '" data-name="CookieXray" src="https://seersco.backend/script/cb.js" type="text/javascript"></script>';
     1047                    //$seers_Tag = '<script data-key="' . $cookie_consent_code . '" data-name="CookieXray" src="https://seerscophp8.backend/script/cb.js" type="text/javascript"></script>';
    10591048                }
    10601049                       
     
    10831072
    10841073                        let isvalueset = localStorage.getItem(concentname);
     1074                        var params = "action=savecookie&save=n";
    10851075
    10861076                        if (!isvalueset) {
    10871077
    10881078
    1089                             var params = "action=savecookie&save=n";
     1079                           
    10901080                            httpRequest = new XMLHttpRequest()
    10911081                            httpRequest.open("POST", "'. admin_url( 'admin-ajax.php' ) . '")
     
    11021092                            }
    11031093
     1094                        } else {
     1095                            //now check if expry is empty then show popup again if there is expiry date then popup will shown after expiry.
     1096                            let isvalueset = localStorage.getItem(concentname);
     1097                            let storval = JSON.parse(isvalueset);
     1098                            let expirydat = storval.expiry.split("=");
     1099                            var expirydate = new Date(expirydat[1]);
     1100                            var todaydate = new Date();
     1101                           
     1102                            if (expirydat[1] === "" || todaydate.getTime() > expirydate.getTime()) {
     1103                           
     1104                                httpRequest = new XMLHttpRequest()
     1105                                httpRequest.open("POST", "'. admin_url( 'admin-ajax.php' ) . '")
     1106                                httpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
     1107                                httpRequest.send(params);
     1108                                // beforeSend:
     1109                                httpRequest.onreadystatechange = function() {
     1110                                    // Process the server response here.
     1111                                    if (httpRequest.readyState === XMLHttpRequest.DONE) {
     1112                                        // complete:
     1113                                        //let data = JSON.parse(httpRequest.response)
     1114                                        location.reload();
     1115                                    }
     1116                                }
     1117                               
     1118                            }
    11041119                        }
    11051120
     
    12381253                    update_option( 'SCCBPP_cookie_consent_lang', get_user_locale() );
    12391254                    update_option( 'SCCBPP_cookie_consent_show_badge', (($seerscosettings && !empty($seerscosettings->has_badge)) ? $seerscosettings->has_badge : get_option("SCCBPP_cookie_consent_show_badge", "") ) );
    1240                     update_option( 'SCCBPP_cookie_consent_agree_btn_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->agree_btn_color)) ? $seerscosettingsbanner->agree_btn_color : get_option("SCCBPP_cookie_consent_show_badge", "") ) );
    1241                     update_option( 'SCCBPP_cookie_consent_disagree_btn_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->disagree_btn_color)) ? $seerscosettingsbanner->disagree_btn_color : get_option("SCCBPP_cookie_consent_disagree_btn_color", '#3B6EF8') ) );
    1242                     update_option( 'SCCBPP_cookie_consent_preferences_btn_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->preferences_btn_color)) ? $seerscosettingsbanner->preferences_btn_color : get_option("SCCBPP_cookie_consent_preferences_btn_color", '#FFFFFF') ) );
    1243                     update_option( 'SCCBPP_cookie_consent_banner_bg_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->banner_bg_color)) ? $seerscosettingsbanner->banner_bg_color : get_option("SCCBPP_cookie_consent_banner_bg_color", '#FFFFFF') ) );
    1244                     update_option( 'SCCBPP_cookie_consent_body_text_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->body_text_color)) ? $seerscosettingsbanner->body_text_color : get_option("SCCBPP_cookie_consent_body_text_color", '#000000') ) );
    1245                     update_option( 'SCCBPP_cookie_consent_agree_text_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->agree_text_color)) ? $seerscosettingsbanner->agree_text_color : get_option("SCCBPP_cookie_consent_agree_text_color", '#FFFFFF') ) );
    1246                     update_option( 'SCCBPP_cookie_consent_disagree_text_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->disagree_text_color)) ? $seerscosettingsbanner->disagree_text_color : get_option("SCCBPP_cookie_consent_disagree_text_color", '#FFFFFF') ) );
    1247                     update_option( 'SCCBPP_cookie_consent_preferences_text_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->preferences_text_color)) ? $seerscosettingsbanner->preferences_text_color : get_option("SCCBPP_cookie_consent_preferences_text_color", '#000000') ) );
     1255                    update_option( 'SCCBPP_cookie_consent_agree_btn_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->agree_btn_color)) ? trim($seerscosettingsbanner->agree_btn_color) : get_option("SCCBPP_cookie_consent_show_badge", "") ) );
     1256                    update_option( 'SCCBPP_cookie_consent_disagree_btn_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->disagree_btn_color)) ? trim($seerscosettingsbanner->disagree_btn_color) : get_option("SCCBPP_cookie_consent_disagree_btn_color", '#3B6EF8') ) );
     1257                    update_option( 'SCCBPP_cookie_consent_preferences_btn_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->preferences_btn_color)) ? trim($seerscosettingsbanner->preferences_btn_color) : get_option("SCCBPP_cookie_consent_preferences_btn_color", '#FFFFFF') ) );
     1258                    update_option( 'SCCBPP_cookie_consent_banner_bg_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->banner_bg_color)) ? trim($seerscosettingsbanner->banner_bg_color) : get_option("SCCBPP_cookie_consent_banner_bg_color", '#FFFFFF') ) );
     1259                    update_option( 'SCCBPP_cookie_consent_body_text_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->body_text_color)) ? trim($seerscosettingsbanner->body_text_color) : get_option("SCCBPP_cookie_consent_body_text_color", '#000000') ) );
     1260                    update_option( 'SCCBPP_cookie_consent_agree_text_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->agree_text_color)) ? trim($seerscosettingsbanner->agree_text_color) : get_option("SCCBPP_cookie_consent_agree_text_color", '#FFFFFF') ) );
     1261                    update_option( 'SCCBPP_cookie_consent_disagree_text_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->disagree_text_color)) ? trim($seerscosettingsbanner->disagree_text_color) : get_option("SCCBPP_cookie_consent_disagree_text_color", '#FFFFFF') ) );
     1262                    update_option( 'SCCBPP_cookie_consent_preferences_text_color', (($seerscosettingsbanner && !empty($seerscosettingsbanner->preferences_text_color)) ? trim($seerscosettingsbanner->preferences_text_color) : get_option("SCCBPP_cookie_consent_preferences_text_color", '#000000') ) );
    12481263                    update_option( 'SCCBPP_cookie_consent_body_text', (($seerscosettings && !empty($seerscosettings->body)) ? $seerscosettings->body : get_option("SCCBPP_cookie_consent_body_text", '') ) );
    12491264                    update_option( 'SCCBPP_cookie_consent_accept_btn_text', (($seerscosettings && !empty($seerscosettings->btn_agree_title)) ? $seerscosettings->btn_agree_title : get_option("SCCBPP_cookie_consent_accept_btn_text", '') ) );
  • seers-cookie-consent-banner-privacy-policy/trunk/templates/admin.php

    r2752081 r2761248  
    6565    margin-top: 0px;
    6666    /*font-size:18px;*/
     67    position: absolute;
     68    left:220px;
    6769}
    6870
     
    7173    margin-top: 0px;
    7274    /*font-size:18px;*/
     75    position: absolute;
     76    left:220px;
    7377}
    7478
     
    230234                            <p><?php echo __('Trust worlds leading privacy and consent management platform to help companies comply
    231235                                with GDPR, PECR, CCPA and ePrivacy', $this->textdomain); ?></p> <a href="https://seersco.com/price-plan"
    232                                 class="btn btn-green-bg"><?php echo __('START PREMIUM TODAY', $this->textdomain); ?></a>
     236                                    class="btn btn-green-bg" target="_blank"><?php echo __('START PREMIUM TODAY', $this->textdomain); ?></a>
    233237                        </div>
    234238                        <div class="seers-content-col tile-style">
     
    244248                                <li class="text-white"><?php echo __('Banner Customisation', $this->textdomain); ?></li>
    245249                                <li class="text-white"><?php echo __('Cookie Declaration Table', $this->textdomain); ?></li>
    246                             </ul> <a href="https://seersco.com/price-plan" class="btn btn-green-bg"><?php echo __('START PREMIUM
     250                            </ul> <a href="https://seersco.com/price-plan" class="btn btn-green-bg" target="_blank"><?php echo __('START PREMIUM
    247251                                TODAY', $this->textdomain); ?></a>
    248252                        </div>
     
    517521                                <div class="seers-pr">
    518522                                    <textarea class="seers-textarea" rows="4" cols="50" name="body_text"
    519                                         id="body_text"><?php if(get_option('SCCBPP_cookie_consent_body_text') && get_option('SCCBPP_cookie_consent_body_text')!=''){ esc_html_e(get_option('SCCBPP_cookie_consent_body_text')); }else{ esc_html_e( "We use cookies to ensure you get the best experience");} ?></textarea>
     523                                        id="body_text"><?php if(get_option('SCCBPP_cookie_consent_body_text') && get_option('SCCBPP_cookie_consent_body_text')!=''){ esc_html_e(get_option('SCCBPP_cookie_consent_body_text')); }else{ esc_html_e( "We use cookies to ensure you get the best experience", $this->textdomain);} ?></textarea>
    520524                                </div>
    521525                            </div>
     
    723727
    724728                                <div class="seers-pl"></div>
    725                                 <div class="seers-pr ">
     729                                <div class="seers-pr showmessrelative">
    726730                                    <p id="setting_message_success"></p>
    727731                                    <p id="setting_message_error"></p>
  • seers-cookie-consent-banner-privacy-policy/trunk/templates/frontend-popup.php

    r2752081 r2761248  
    1818            <?php if(get_option('SCCBPP_cookie_consent_font_size') && get_option('SCCBPP_cookie_consent_font_size')!=''){ echo ("font-size: " . get_option('SCCBPP_cookie_consent_font_size') . "px !important;"); }else{ echo ("font-size: " . $this->defaultfontsize . "px !important;"); }?>
    1919        }
    20         a#seers-iagree, a#seers_allow_all {
     20        a#seers-iagree, a#seers_allow_all, a#savemychoice {
    2121            <?php if(get_option('SCCBPP_cookie_consent_agree_btn_color') && get_option('SCCBPP_cookie_consent_agree_btn_color')!=''){ echo("background: " . get_option('SCCBPP_cookie_consent_agree_btn_color') . ";"); }else{ echo ""; }?>
    2222            <?php if(get_option('SCCBPP_cookie_consent_agree_text_color') && get_option('SCCBPP_cookie_consent_agree_text_color')!=''){ echo("color: " . get_option('SCCBPP_cookie_consent_agree_text_color') . ";"); }else{ echo ""; }?>
     
    17951795                    <div class="seers-cmp-policy-banner-text-large-block">
    17961796                        <p class="seers-cmp-policy-banner-text"> <?php if(get_option('SCCBPP_cookie_consent_body_text') && get_option('SCCBPP_cookie_consent_body_text')!=''){ esc_html_e(get_option('SCCBPP_cookie_consent_body_text')); }else{ esc_html_e( "We use cookies to ensure you get the best experience", $this->textdomain);} ?> </p>
    1797                             <?php if(get_option('SCCBPP_cookie_consent_enable_policy') && get_option('SCCBPP_cookie_consent_enable_policy')=='true' ||  get_option('SCCBPP_cookie_consent_enable_policy')=== true){?><a href="<?php if(get_option('SCCBPP_cookie_consent_policy_declaration_url') && get_option('SCCBPP_cookie_consent_policy_declaration_url')!=''){ if (filter_var(get_option('SCCBPP_cookie_consent_policy_declaration_url'), FILTER_VALIDATE_URL)) {esc_html_e(get_option('SCCBPP_cookie_consent_policy_declaration_url'));} else {echo "#";} }else{ echo "#"; } ?>" target="_blank" class="seers-cmp-policy-banner-read-cookie"><?php echo __("Read Cookie Policy", $this->textdomain);?>&nbsp;<svg  viewBox="0 0 32 40" x="0px" y="0px"><path d="M32 0l-8 1 2.438 2.438-9.5 9.5-1.063 1.063 2.125 2.125 1.063-1.063 9.5-9.5 2.438 2.438 1-8zm-30 3c-.483 0-1.047.172-1.438.563-.391.391-.563.954-.563 1.438v25c0 .483.172 1.047.563 1.438.391.391.954.563 1.438.563h25c.483 0 1.047-.172 1.438-.563.391-.391.563-.954.563-1.438v-15h-3v14h-23v-23h15v-3h-16z"></path></svg>
     1797                            <?php if(get_option('SCCBPP_cookie_consent_enable_policy') && get_option('SCCBPP_cookie_consent_enable_policy')=='true' ||  get_option('SCCBPP_cookie_consent_enable_policy')=== true){?><a href="<?php if(get_option('SCCBPP_cookie_consent_policy_declaration_url') && get_option('SCCBPP_cookie_consent_policy_declaration_url')!=''){ if (filter_var(get_option('SCCBPP_cookie_consent_policy_declaration_url'), FILTER_VALIDATE_URL)) {esc_html_e(get_option('SCCBPP_cookie_consent_policy_declaration_url'));} else if (filter_var(gethostbyname(get_option('SCCBPP_cookie_consent_policy_declaration_url')), FILTER_VALIDATE_IP)) {echo "http://" . get_option('SCCBPP_cookie_consent_policy_declaration_url');} else {echo "#";} }else{ echo "#"; } ?>" target="_blank" class="seers-cmp-policy-banner-read-cookie"><?php echo __("Read Cookie Policy", $this->textdomain);?>&nbsp;<svg  viewBox="0 0 32 40" x="0px" y="0px"><path d="M32 0l-8 1 2.438 2.438-9.5 9.5-1.063 1.063 2.125 2.125 1.063-1.063 9.5-9.5 2.438 2.438 1-8zm-30 3c-.483 0-1.047.172-1.438.563-.391.391-.563.954-.563 1.438v25c0 .483.172 1.047.563 1.438.391.391.954.563 1.438.563h25c.483 0 1.047-.172 1.438-.563.391-.391.563-.954.563-1.438v-15h-3v14h-23v-23h15v-3h-16z"></path></svg>
    17981798
    17991799                        </a><?php } ?>
     
    19391939
    19401940                        if (days) {
     1941                            let expirindays = <?php echo ((get_option('SCCBPP_cookie_consent_cookies_expiry')) ? get_option('SCCBPP_cookie_consent_cookies_expiry') : 0 );?>;
    19411942                            var date = new Date();
    1942                             date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
    1943                             expires = "; expires=" + date.toGMTString();
     1943                            //date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
     1944                            //expires = "; expires=" + date.toGMTString();
     1945                           
     1946                            if (expirindays < 1) {
     1947                                expires = "; expires=";
     1948                            } else {
     1949                                days = expirindays;
     1950                                date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
     1951                                expires = "; expires=" + date.toGMTString();
     1952                            }
     1953                           
    19441954                        }
    19451955
  • seers-cookie-consent-banner-privacy-policy/tsvnsync.tsex

    r2752081 r2761248  
    1 c31bf1e6e2b2933092c3304c7734c12ed6cbe4ae0581be23b4ca97c52a7d76e11826407fd2896fe8dcc2894e8abb3fedc9a50ae67d52a0683f1a94eb2194d7507ecdc901a81b9e211937928f71fab0d05e01c0c420f38ec9eed8ec596858e1a75ac3a1471d67a276d965a39ca3a033810309359eabf3c1aa2643ce1f877bed59c1a076f2dcd9846d30ba2f1366e37c01280160939520632bd13936911fc82a70f981369ffe440005a999856cb93adde0d0f76533d262087745ddad43e895d87867a0e03fb670047ee52163412c60916b218bc1265535462c58bd2a3af82bdf21038a82384a211c43997a1908122e9afa1876c9431d0088837d4c3942863bf0dbdae5656f682d2fc49351a966eb70335aef43fae32a9292f10628f2abfe754c9455041dda46a8d84c67ea80788cfd990262b5370d9f09090e11ff9eb48f58ce5e4cb9097c246202aeba07df619ca114c1f8ab0166ee993e3d5e152dc7b9ad60ff72c9aa904f34c72d7ae8a37cba042863cc15fcd9fd12e4e89dc96ecdb95cc96d60fbdbb5a0efe363adaabf0568f266024116acdfebd1da96f43164dd53e393e311c7dcb09d4d9d644ed944f8d419aec720e02afbacafd165631cac54edce668db9bb6c18fe3cbb282094ea1980dfc94a9f48202067e9aa218fb43dc128e4a9b6be67f918433b01cf8a027a056f423e24a1edabf45e859aedb6445bd2df72711b1756062284fd53b16a98eb639ca54c511890ba45bde40d12ec928dc02f63283d32cb4cadc12a0f4c16dd0b472185f4818cb8a4809bcd8dda4d45f46e55eb45df3687694c33a9fc5db05ed987441f82db5b7115a8ca4445d2342dcef511e8ed02da7c933cce4bed7c933b07bc3b5c997b68c2cf2832a136dabfb202be443c9a9a27d758778db5bca1d6a7a8d8ec5768fb19bee8649889e1c25b5ac94ef9030d829c6015f31dce36ce4fd61ff3fdefb20e4b2c20b37aceeeecfe66b0559807558d0aef1f8b58874d66a480c819cc84a37396e373c697d02abee52dfd630ac4e9e6c7750669be112da2788ec1e4bb1d3ba1072e7b60ae979f2b9b94be56d5f36dd9ed7b87754868b6526270aeb29b6c0e5e7706b94bc7eabea6c2b654bb296146ff9b1dbebe76dfb0298be8fb64b3037537de17132f56eef405fb00e2defffbe84f28c5381bfeac6c50d17099ca4f7c0d7a41c980082d05745cdc8018281261060a4f369126bce480ea5b263585fe2be4f127d1feb751ed88cf07a4d5484ccbf84d67c9040fe2cc29ff38ea97fc5ee43f2d04cfb36ddc4329ad60533687fdfe30f10a10ae7ffe10a97cf9312c7489b7cb91b5a12e334595200d331079ee3f85dfcd9482f6c276deda145fc11404baa8e29658b68d454322b499261fa986c3456ed08af84614e612e019510fb5eb9511beee77d9114c6d8f923c3d488d3c3110d7b8600f38b457d4508f7a5da5fabd0a304ffdc48da9ba1375faae3e0d3099333572defaadd542bc7f11f0f3b543cc2f16dd04141f2fae54d8724dc3f49d6544b4be166f857b7a6bd72353509332b7ac4a35e781260a17aaa5a126a28eaacc853df80ab3d4cc42ef901ea0fbb87f870105e4d57aeb0d7cf880eef6c9e7e4688e948b0c5a7d8e51726ca8f28285ffafbb7bbeb7306c376bb27bcb2cab5d04ef81152324d6aed9a7c86f584fee32f38e61f38c7f7204962ac684014f2c0e48deedaedbf1a89cb040ed58fc89a7775a94f3bfa2c0e051deaf33f8d364529d4bfade83bbd18e5f9b6fa39490ca256db0a4f239881d2db068ec4b0725247f69480667d6b9c914063d931d2e0968945eea823c3897e5b1d740f3032945a20a414446dac626f925b882bbf78f2f85280af145b50ffbb1d697285d4a45916a45adbdff471723a3834120f54796795839f6aa7aba16e402260ba859f55483d7da37f0635e4432cd85dfb21fdecb8fae48bd2cd7e7f30b40ee9464d5fb1df25b5100a462e68b622a7921563c1efaebaf317923c3fdb3168427cdacc9e019fb3513c75578cfc00d0fd18736458c548e7732cc3fbc3168c168359356878762396de5ef3af2f17456af511b619d60fa48f24fdc6602f049e5b53b0e914ebb58b73331edb5c859cdfc4ecd60be58d7106317a58340cccddc5f66ff32443ec753fb466255eae8f42aefe796126251880d47edc496df1e18976d0bce5fe5bbe8dc0c40f460eb47b478f5d1c81897192ac8f635e7c6adb56924b8909cf00398f7f6c9cab55ac53098de4c859be748fc831e77054606ed556032af619fd57aed3ba536b45bc58a76fb4ac6912398219f22dce33d64e14186dda2df4c21262028f1cb6070cadbaa3299f8f3ee7753db746721cee1d2432ee7da3538ed9fddfb5c17215a7b81eb0f60f6eba677b91a746417692ebf111507de5d5075114320f0c028d7fbde30e24ed12544168895b9e67d0252dff804a8973a9b63e85d07ea54ae52e631dad1d99a53ce43191fa4e8e6a03298a48006c4d71ab16f3abbcc67af6d29378db2d3703ae9ad2444cbff83cd9925fd30de6939a9b596c0b21b47c96eb5c6b7512a7b633c795e77af989bfbf11985dfc540bc04a398801b15cd46e5c86e70722aefbc902a3d3ccfa52ec1d60c2954075c7a7f3f57e711fea4d5c7f020602517dab4baf82bb1b5c231cd62ff2f43099539ddfbb7daa5ca65364d2212edc699c0db8c0f26fd42100adfaa76eed10d8eff5fe804307152626c350719084664e8b48a5c78bcdd62ff5ba2b6878629936b4405626e6807b58d822f0f629b0a5bb2184a6c9ddf7d5d45f5f38531b51c346cbf66649cf05761dc5cacb653bf26e5434db0760b1b0fa205f90bcb6800815bc2da22a9a85c20d1c0b683dd0b5712e9e561d8999a3226d0ab2549d9b02bc4edbf94c50e4cd41d04f6e52ed9a09386548e560141b5e5990e55135c4ac1ce859acb0cf883a1f873aee8074df266f2c02fa2e534711533451124cb75bf6399ad6d57b03489c1a9c5757eb9320610570b6fed4e889ee380adaa5b8b628814e183247356f81b2ca812f925d1f2030223fb0534b564ebb005bb14510ff28e2d9b5e259c9267cd1d304ea86a48b99558d3fa103e0ae6bd579e93b57705276dd4777e5e7c564da13dde6f1c7de7d0a18fecc6c659e4c58bf996982829674b628708d760889a72425e756a3d22f98f243325b518364cea358b14124dca9d3614469f92e73fdb067dfba551449ac26dd682635d02eddd2bb1448e995b8966f66f119c40270f8a1972ded76395cac9795def19c4b28d9029e8c39d03ca3b2dc37861b5f58a4fb82321dfe424b3839db8b66d7b80075624cf400888731c60eb1b173bac99ffb8390f903625a6cdd41e0ea91a79363edc822c2752d5ca48b396a2590edd5239788760ebcdac81a1ccd21e6d27d440fb4bd8228aa817389ee397f7a6cd6139ec0aa94857a1c0b6c2036fe53cda46ca687537263d1478ca80441a1548479be4c55c4974b0925ab88034d9f6308d4cf21f1c62d600c49c69cf4a4e878d6dd52efe6f0e58ccf093affbc85c67fa55d3d679f03b4d4a108481d576d88e3a0bdf6b72400fc73fd5475fe7abc80fa888407a2fde575bdd7c9b08e99f777d6e7e8fd2c09107cf37d49e5c6fa562607eadd5837cd40e8ac755100ed308c4273e71b9e70e4bcc7fed7d46fe898dee537e177620af9afb6792757846a536d790b17adfe719a642d74dbaa34ff8ad66dd82ad3d9667151254b0cb788d1c421e4937f5751af9fbf4b89804a0792003fea7c3cba075748065d212ee364d6f1a5829088166eb79016728c972f025c67396841dd7626634d2be46a931241dc47d9c96d7084a2725de476f3d4a2614c61b3e24fc965aab92c8da3b269efc4b50f1c4a35a8800b224c3a21b0b038613f175d1f706937877955888b80329e4f75b353f42efa53ec2a9a668ef000dde1f5cfc8f3be9560a304b564c42f412e93a7a15750022dd1f206b19b5eb374d9f57b43d75fe5c92bf44da49d9a5efec61d7cd2508aaf8d35919ec9a475123e32593fbf873738c8520ac6fb14ce43238c15841eb29047c25a431deb7261228deacf564f6bd2498979c95bd3a94cc6d3cca805b4d87c073bbcdad58c0199e0868f5ee731495d398a0c7894f4c0d1d14b74e43d28ecbf6e94e8d4bcc248e5d5602160d5bb8fe4ca50b4954e15c0d790d28217f385362bf1f60f0253b308c6fd413c8e35bf713b43c8f603d0711954f24f0a2c65b2d691e3e531a8d5e626b51951ce432c3686f3ed47f66dacb92371fd64ef2f1a23dbc049382c851bd5a4ea34bf88d4c72f3d94ff214d7a8b741262077f6edc39fd08f336c323a09ea745b7e934e9f06a473e5a8cc75b6e841af757daaec8374b740c63c4fbca0db71ae3e581c766247e9081f34df4ab24d5c5f514b5a5bb56ac4b991588d9315a1717a592375acc4401992ffea62e1d25300f4b7958a032b5e3b768139ca054a8cca2b3d3996ed5067e4f4b20765f52cb849cab9fb4b7db0dc92644d21c1812a3e62653950b5b6af14819436989898e189d6777a0b8d41b069a35d2a20c9a2221c703a272b2c7f3c5b3c5a5059c1a20070684420161a15061bc2dd74193ad9fd2b9d640a0e8e997a0efd505b9b030d80dff24dd89bc4af98aa8a3075bfd41cc6abac755675b17bde7588baef4d07721eb7f3b4cf3b118441dae8e7e89980440f2391a297f61070b9cd9f9011585b7f970fb54f4cf6e8a41e99d2b671e91eee8cef97e36111b73add177c04628f0cedd56deecad4314a443111c0ccaef689c8c3adc521d7bfefc0a4b8547d0036be13ca93eeb11d47acd26277cd9d42e3e8c0509333cd0cb88ea413258ba355fd023cd767d2f1feb47ad18e10b2a61d2083b8bdc6a893ea0adf31392a5e73d30de9dc874bc4b5d0d179221bdfd7d30048920f53d0920529245b306b378bd932600846bcaff147953234f9a8ab7e6c5931184b0a440b221d1d9e17849ad62878256a57062aad960441bd972f72bac0306d0c7406cfceef47e621e279a8f4167d7cbfaa93ee5dd01379d2c96c1184d013e78da9ba5793abc552c7e7b0a16cb7b35e54c6eaa1e7b1124d6a6b948466585145b7be69c268c8e294c1afd4aa05b3fc09a75cf79e2cd93712c9c20d3c39c3bf4006008f630d89c8806e4c5efeea9d4f01c49d1a5a16f94666214e893545b26592cca3d8b4de1e722b3e16904e61030acedd4d542a47935ca60ab55ba29902b72e116f72a125bc25f7d60bcd169e9d369aeae8e931735090bec109b5a14d88209967e9f7f8053dbf37a52ca057a3d68dceb804a43b9c3ca85e31a59c98238fef1a1c879c76321a8201ff19a00b521eff2e6e14575672167a491128beb8a97b6a943f0c9da6f50388a66d5ab71c2a33be6a04fac3ef8fa7bd8577ef3a256de00dab51a2ea96712c33075269efd619f46cc5369731358fee8724d1335c4e1170bb75bf4705b9eb66d49da8203973b89ab8fb5e4d58cb8961d54e695b1bd2f341a80d2e67d10e261175d1840d3424d4e5f49862ca2d465ee61a699a73fd3e04e111e8a6b06b5ad27a6c6f9d1e30b0989bd3d956b0a3707d560a030f9d71c14d4b35ae2d3fe2b4ba8de9f327d3e63ce06c4cf693c2f580a190ec2ca865e5853c2f5a3342d78f64e6b3db5694075a70aeeb10253084201288e807ac90c744da4bcbfc69671ee9e8953c79a7a3befbee8b25ac3a6efdc140f4fe81ecf49936686b2e804c8aa3a6ed518ee19a08d31b5feccbafe2b96211714cb759aa3602cce4ac2508a40aa8063e0c21377dd8498e6012ccfd3943a528ca9118982a8b999dffc2078813aa67d76588a20aaef07066828c1e343d49cc0c9685a11e5b29de7fbb8f2b07760a067442204719306d8e09365e347975535139bcf27bd8855d1067d9c77cf2543fbc2d9734dee573c00defb100982f7e7b769652c77387cdd4db26a9670a22b0da85862e1442f876cbbcc5dc79a58091b0926fa93df0fdd8937b95330f453b83f52c43e25f20260221b5f3bbed163e74bd96be0b701487fc6d7a06f6f2774893fd05ddad526dda5bc5208fce127c7df9190412b7b864e939894c1bf8cc426ace767c8bdcabcc94ce8fac00c1889916ffef052db7f4a962c966218128dec51efed4baf7bed40211dfaceaf8864dbac8c9af813509f81da4d2c08e16a985b5081c2bf047bae17d9279c2df656a49acbfb06d1e1af949945d1b196b724afd1c073c9a216bf59342cda9ee469a72bd95dc0ce066fa2ef742281b3fa25b627ad30e7f1748b8d5288a31aa6317bd9a8a6924d0a006f1cb43143034181a40a6d7c6d6620336e6619cdc2c9760fdf261754ab770cbbf2e230019e8b56b8358515981e133a63d01caffc21050c7e791aaa530daa2157b995143ba58a892f75d252b80f796c29d911c82b7d5bdda120d6a6b7637ff2332e5b41b630be3b0b98ec47c95ae98fca1c27c1a30ed06a7d8d9b25e154131d57dca2e27bda4c08110b2a81e6d3c1dae545fc1efd83acf094624351c4fa7d194160f9275a7d977a3f955644724e79d33e3edcf39c5bff9e1846046346af0b463bfced1b0e524354b07b7d2be61bf4f9bc6b61cba6f6808034fd8716de2e766550c46ef21221e2e96e65e6f9ee16118cf769a635ac121a5b709e26daf78d8c5b6af074ca5b7532daa2e8cceb4f7035996509a62bea7302ef4b1880fe5d0e723796b721c485b1ca7addad6bcb3917bf8712c088559b99809a75b5640ab488421055b763df579028bd13def37093b67456ec8db05a2ccd852e76317d63cb1fe241ba6de3941375e8f2882307a950c546ececb0ffd90f369cd51a4fe1a3eff2d898951479904ac8b6c46fbf14a9216de69b8cf88580431dc83b1f96444f1b9e4c7b7e5c5027bd0ba572f0ed6eeb4b394109483b293ada4d786c3e56905c29a24b2f85a9efc1e0da3bca625f772e418fdd71c423d4d06223abd4d2374f0a45f67f3eb3acbee1e7dda637f7452de916f87c35fe6ef89ea6ad61fd687e4b32d8112ca199ecb22821e08896d70996cf34f27e6855f546183c102f56df7852e9741cbd911c2326fc7147b2e0a6240d1bd9ac80a953a73dcd7ae9ba8051c21e1f409a8f63afdc5d00fd85692bca009e5a06c54a566954d3feda9c2316456bc84a541b4fdfb0d13f7443a0b6160543ef4b63f778e7284a9be2b0643409151e456b60054bf7b36b58387c9bf9e30ccd6e28a4730a5d1e6a9a61682d9eea5095c4f26298b59515813b3649273dc7d9dfb77b6fe85b2ece2da34fcd71f79d9724d799809865b61a92923f5f29a5cc43cc620cddfb089e968101fbf7b8e7cbfb88452985f5e89fd59d930712b99424953a4a6f26ec4a5866568912e59b1137d58b602ff136c90f9fcf1dcab18f9adfdca80724217346123512b48951324fd3ba26e8039c5266975f36c854f09a5b3e20abcd351193501b56ab1c574c3d79f439396bf66d7f2283ffb35f81694c98ad020abe1401cf44b44cba7cc57c30ff80fa811fdfcad57316fafd83286c046e3e1d14949114fdff826842842f225d91d03057bf63152b47ea7c6544446ff6a57e610d65869873e465a5f3f132cf9bafaf2992a628bb651e6c5709cf2bcd3bde339ffca64263f7ed1c3e401a06ed9a06365b8f88aeecd7edcd4d1fc1b01c7ff1e7b1bd163a7a7f235704d97f97d814816e7ca8e183c75ce496817ecf7c610f80901162fe1319b2fb10b2ee6c34000e5de11769c50b65530edc204728b769c3e13efc7189c4c51b19f2f4556484406d5c7c4c6c3ee8d2dececf3f85fafe839bf17075800488ed9b5f439a246bf995a139c644f9b490019758f52a5e4c2372898e4ff2a8c74a6961fa0f3b24dd5e7769baaacc59bffd90be3ed7664cf3b22330550afaf00bd0904693fadf71a2fc2a7d925a179069577d5de55cc4135e04edbf540b4026bf11c0a33d10ffe8302c8efbf2fd9674f9ea7e4d3339ab4df21d03f5db78506bca2643cce54ad8cac1bdbcbb1c979b54e393d36b67c132d753f71146b46a632117d1c7021140c44604c2fc681a4a82211e494285c2791d91ad822b99af3f52af621c5893aea3cfcb04293a8793655c971b82871d9287fd23b05f8b88cdad3e82980ab1261eb3152fd7d3c820f4f8393283a69b6df481458d3f0214bde6d044e43efc11a00aee9c492c02b70b1f31215c0a87a698445a8e830018098486f8fda89046f5eeca8d20d2caa6a2a7eb315b294bc338247074c47362b1912ce01c6f93a715cdb2fd435489dc18e620544189629e81fbe7292221266445e0ed735281422c2d710b90df183ec2dafadeb4f7f9a67270a2cbdab2b32347cf40a271f44ee9d227bca93dba4365827c928580c147fbdefea65e8cc8b5cb24145cb22389615e3e893e125092adb9161e0d4a2c199b8a47cf97e8448209a933f7bf8fd868086c00a5525b2392bcdd5b8e042f599258cf35fda1168793d1f5f578d0e8510e61864a77764872aff351a23f1138e4444acee0bac05c48d8ccf8aadd58c72f104a33e55fb8593f932272d829f87a8c761b02e22328af6e93516911f09334b81b91bdea86d76711cb55e757aedf87b22ebbf873ceecc65adeb8c4cc0c1f606b22fcea897a56ce0b62dac4cfceb4cb2bfc7e8d1d401c8ed92f95ca8958f3f37e95ec1170340b4e0ea984428e22631580723b35b16792a22a07c7786c8ee845e67fa1075461c71d88f7a154375e929c59f5b66a39135af945093f1b3d6e931d2c53ade916e7415b6493c5e6b2d161a4268e0cbf52d6b42b9689429e2c84bdc2035fe6696187c13dba91277ceeef6f061834d9039801c1cc8457c76e57453e0f5f66837467c30d678a7eb63a747a647092713d1dd7fb83109f667ddbd92fc38ffe40d2e42514133180461f0597bfa9cfdd518c7a32e837b0bb5f6fe220fb45683fae4342e42df00aa3b4d55dc22b1da437988256a739b6c3dac2586df170058e1d950090871d0f8d25b1a663687ba3cdc1cfc45e1fb91d9d40b5f1cdbda1a84743bafeebc770021259c33cdc5b1c7363253cf35769c2bd86e257a198762a024aa7a4d92ed17af9b7adae30a830ce760897c7c9c3c95afd3d76b0d0bffaf30b919976f98cc366e2a6c3c02dbab1a90e1f769ff0ff6b4557e1cac3f864de48405313ecd3a5ffd114440ce15446605f40db18365b5842a00e8dc125ec29b35cc3f4faea1ba491c5d7bde2e61787baeb1f47c7cd11e66b7711e6001b8e4a2d6a1911673d5a5d988069371ffcf01afbf3d4b2b85217055a3fc47e643e2725a537fe23cc25e523e3e9c416a30de406fb2fd0c47785cadaddc3d3a981ae7aa1d46413b7ec2c690c5ae47aef17f8cd015cbe9519d877c86784d67bbb24d55c4f8fbf096ee5853be9207e9168bc09f3065bfe8c7081020f0f6028a519954f1217a0b39a1e926eb5333cf17f81dadf3d471beb9d3a12197088613a70c3f67ed5d96f9620e972a7e0208a59e4c4bfeb44ada55c3833e75ac70cd5c54659a6c279317a85dea530dc5d0f8a2ee32a3d30fad3e22e5221445edb3650cad5f40bcc7dddae0b76797155ae92fcfd980ecde7fc6dc08e0d0261421e5712f8c378166cf27ec92c0dd6e5f50697ab62cf50cc66fc1acb0d93ddbdf09d7e8e6e5d87714a4797d363e24b56d97428531ea8f09a937c134557982abd7d4756b0d600132797263f97e4c45633ccdb07103cab30175e4e15aa2e4dea4796d3149e0bd8b676311cd077c484a024d1f84b5194b9eae10e217dd77608224adfe30b749f1786c93b4417b52f09ea505a49691b721967f333731804d1e1e5a607133f3138ab4c1f6dec298baa263b46850c94b86a092c3010dad17d8fd21cf64330157c5c0084003030c328e41c659645785a093c022d1da8cf8c34153eed98cde7176e363d1947766235ef6001ee25e6f3ab8f48acc586547bcb9693ad312c61b0b860f8490bee12a7551f5905af220e31858fd5ddbce56b6a4d5349b2d88dd7eeff8284773c4f96b25e9d840bc05d75fde3e018b2fec8ae5a9fb67431f8424a56483dbfa440f4821f45917698a464b9f33428ce93115e5028915d8c2ba2943b69b1f92a95fba656bbc86d69e5db614d72ac1d42f1bc8492dacbe5030a3ab8596e6a81d0576493f7504bdcb5592457c85bb728801a0b9a306f896659bba6c99526991e12e3604fa72a710f8eeb5da80b396a0b0be4a0d69380ac5ee47bc4121290a6aecbc78bb1fde30633a81da71bb752ed38f95ee4f3ade3a7bd12160b40a8d1fe8c6a5917f4f2fd6fea0ac8fbd6c65d68b5c39d018de97979b610e4f2312f7c6393a630c2a6987f1ad02d45d8bf1b6c5ae11f24649c302a8a0a9f13ec6358734d50b3fe2c0b5b018b0d7e3acbfd2496f8e08a1fc0481e46b554b14744d992a7d27d02b36853cb58116d2efaa13b4934663d0fbc108143233942e3eb0f246440b270f27bb3de2c7df3eec565f8b19b401bfe4d76c951fdd1361662415f2ab9808e590a708f47b17dfd6b6a903af4591b6cc3be13609c20eaff345d2c75d398688563e7401d364befc8150944c89b3f88748592bf8c413197da26a8101b9d895f914979ffdc550e0a2d4cac90720417550d42e217f31d78fd0f40c0c422fe45c42141d2d2e1669cf10bfb541ffa8526661eefa86f25b0dbe08024e42a5046509338a56e4804618cd44d48d36e95f0f7061a46ae602ca249688667892c85941e6b7f844986d0e0ab95ec227bdf75989ad98043fe4b710ee4d63a30c6d34658350e0a0dfb38dd6f3ca9b13f28de64530cf8fc7fbaaa0511a362625507e04fb843b87a8d1e493ea37efea93c447c72c1552dfe5113a1013cc54ed9b228ce1547ec7964e586254ac2a24b8af6440a7afee7b2f8a1a35d579f4b0df24f9b76ee83887d59dd7a1d6e3b68a140dde994c6b354b4b9320fb6e7ef4b33c7de75f53439e8c207e68ebeed24bc760fda26b5cbaa3add7b8ed38888d8c534e138e94ddb512b478ac9dc9f801510cdf19da497919074a041f4b3659569e8abdbe5e482b0591a54958afb69c7aa7026e7e0e7de11d4114f23aa960fb68ca03ba51799468397db3bde27a545da47e56f86eb27b66e3d8c069f6ad62bb67fce5fd903c9387b51db55fd43ece10122429fd43d8f50e7c71568c7fc1d065c6e588130deee1a738860ae9648549d26852fad3fabb157ecb71cba59e1893ec00ab5529429c4ea2dcde72f9310638b9b1f797efc493640cfa29c1527758d3a709eee2b9b44521f9cf671f445f383f36bec539fe7f56a858d5e57071e28c8707ffda89a13a6695d13d8f75e7e6f6716c0de58f35ac24064b1ba41a7d11605c053f7211bdb1d5fc145caefb937fc745e9eebd38d3b959d29753acbfb2b4f3485fc88e11cac261405fe79d9126e2b96eeda8d5e9fc007c63e1e134cae7350c22f2cd9f8e2e087ef057b11505bf1b44b164b8051758299e7c89a238384822f54be09fcf6011fe8b092d12814a080bb76da6d83f6d60fcf76b0d5e5ac5b2971ea3a204828816fb02f0451cb5e4cd8bf20544a5a90e6fb91d8df748cac252d47abdd27af866eaff26239c102a688cf514a1e986a7eb3323b3bd9c17c61515e7acc3acef7cc80cab6cfdc5f08bb782ca19b2002e9c1716fd1e37eca781134e9c7eadd02d54655f98950ce25c8550c83322223e48f11e96ad3457bf5927a3e1db6223d1650ff98877a316e3f54fe16fe4886fcc8bd65a5849511923a14a8e82e1b36a0dc509122079b3980846bd3dd5f6e4f938acdadb4a86da3b0f3b39f4e025418e657758d87ae81325fd6b3aa8db26239fcc0550d14f39c746c57f7c8995673cda4faf3ea04ef5f8ad8809bfc341fb5eb7292383ddaf3325442d576c0fa06d535c15c8ee3ff7480042e844cb6b0ec0c22aced7d84738667210f009acdb37c60bc91018321f5d4b32d76c92c5e16e7795d415d96c8b601405da9975b0f296cac0bf3fae129fd1b14f1e276b287108c4b0a04f6c0b5634b18ff47d0ac2b491e9db3a00dcef77010cc5c460bd7b28e327627e36888f286f2c2b28483f03a2a7298fd14346c3d3b616815518d1a9725f17cd92b8f135a4f45c69c2edf359063be68f186e4a8d559d796bfc2ba54ea1ae11983c961529e27a63c94975ea1db7122a03b0bb0bcf2a8c9f9ec0810a195d4d22f6fcca82a31551d1085577f49021d0a163e63f6422569ca4e0263f586eed92b3a79bea9911f59a44c227a41114f8ec85504380caacafc5b5de694027ffdd25e6e38a99e8f134a168023217a28d87162004aea62f338e958a6b4bf2ccdf5857a6e1a9532ba6b1274e1350747cae04ea46e69440a41b4a1969324940b1137b0ca476ad1d19417ad8223aa56e665f12b054d55eedf4cb2e5536300427acddec633dc31804303d851784bc4925156d9c5b982a5a96f5700770acb9fc370716bdc7167f92fdf5d6aaf99415592cfc8fd51ebdcb8dd31af132343a74f261e3f782c0243b5ede4a945bac4a7df850558c7a53158b6407a78b33aa2af5bf5aca56fe7d325fa38899b3c0ba864f51eea939a5b57efbeea23e6197659cc3a80186577a8d23b164009ccdc4957474786795369d15e2f4ce8577410e087337a02ebe4e9028283f482b25fcd54e8cddec9c9211e1aec03d8a1abb71a6371425570947c868edb5bb8ef81355ec51bde0956f102f10c4e1e7a13e45eb3ff0a6e3f7b54fd0c1c625b3d24bfda95cf4795fd632abdeeee54be8ff9abc0190d1950e8d6e7c4d207425a157dacdee3f441df95f845383dd5cb9b89b352b04bfa3901e73e6d7e263975c3fcdea8926
     1c31bf1e6e2b2933092c3304c7734c12ed6cbe4ae0581be23b4ca97c52a7d76e11826407fd2896fe8dcc2894e8abb3fedc9a50ae67d52a0683f1a94eb2194d7507ecdc901a81b9e211937928f71fab0d05e01c0c420f38ec9eed8ec596858e1a75ac3a1471d67a276d965a39ca3a033810309359eabf3c1aa2643ce1f877bed59c1a076f2dcd9846d30ba2f1366e37c01280160939520632bd13936911fc82a70f981369ffe440005a999856cb93adde0d0f76533d262087745ddad43e895d87867a0e03fb670047ee52163412c60916b218bc1265535462c58bd2a3af82bdf21038a82384a211c43997a1908122e9afa1876c9431d0088837d4c3942863bf0dbdae5656f682d2fc49351a966eb70335aef43fae32a9292f10628f2abfe754c9455041dda46a8d84c67ea80788cfd990262b5370d9f09090e11ff9eb48f58ce5e4cb9097c246202aeba07df619ca114c1f8ab0166ee993e3d5e152dc7b9ad60ff72c9aa904f34c72d7ae8a37cba042863cc15fcd9fd12e4e89dc96ecdb95cc96d60fbdbb5a0efe363adaabf0568f266024116acdfebd1da96f43164dd53e393e311c7dcb09d4d9d644ed944f8d419aec720e02afbacafd165631cac54edce668db9bb6c18fe3cbb282094ea1980dfc94a9f48202067e9aa218fb43dc128e4a9b6be67f918433b01cf8a027a056f423e24a1edabf45e859aedb6445bd2df72711b1756062284fd53b16a98eb639ca54c511890ba45bde40d12ec928dc02f63283d32cb4cadc12a0f4c16dd0b472185f4818cb8a4809bcd8dda4d45f46e55eb45df3687694c33a9fc5db05ed987441f82db5b7115a8ca4445d2342dcef511e8ed02da7c933cce4bed7c933b07bc3b5c997b68c2cf2832a136dabfb202be443c9a9a27d758778db5bca1d6a7a8d8ec5768fb19bee8649889e1c25b5ac94ef9030d829c6015f31dce36ce4fd61ff3fdefb20e4b2c20b37aceeeecfe66b0559807558d0aef1f8b58874d66a480c819cc84a37396e373c697d02abee52dfd630ac4e9e6c7750669be112da2788ec1e4bb1d3ba1072e7b60ae979f2b9b94be56d5f36dd9ed7b87754868b6526270aeb29b6c0e5e7706b94bc7eabea6c2b654bb296146ff9b1dbebe76dfb0298be8fb64b3037537de17132f56eef405fb00e2defffbe84f28c5381bfeac6c50d17099ca4f7c0d7a41c980082d05745cdc8018281261060a4f369126bce480ea5b263585fe2be4f127d1feb751ed88cf07a4d5484ccbf84d67c9040fe2cc29ff38ea97fc5ee43f2d04cfb36ddc4329ad60533687fdfe30f10a10ae7ffe10a97cf9312c7489b7cb91b5a12e334595200d331079ee3f85dfcd9482f6c276deda145fc11404baa8e29658b68d454322b499261fa986c3456ed08af84614e612e019510fb5eb9511beee77d9114c6d8f923c3d488d3c3110d7b8600f38b457d4508f7a5da5fabd0a304ffdc48da9ba1375faae3e0d3099333572defaadd542bc7f11f0f3b543cc2f16dd04141f2fae54d8724dc3f49d6544b4be166f857b7a6bd72353509332b7ac4a35e781260a17aaa5a126a28eaacc853df80ab3d4cc42ef901ea0fbb87f870105e4d57aeb0d7cf880eef6c9e7e4688e948b0c5a7d8e51726ca8f28285ffafbb7bbeb7306c376bb27bcb2cab5d04ef81152324d6aed9a7c86f584fee32f38e61f38c7f7204962ac684014f2c0e48deedaedbf1a89cb040ed58fc89a7775a94f3bfa2c0e051deaf33f8d364529d4bfade83bbd18e5f9b6fa39490ca256db0a4f239881d2db068ec4b0725247f69480667d6b9c914063d931d2e0968945eea823c3897e5b1d740f3032945a20a414446dac626f925b882bbf78f2f85280af145b50ffbb1d697285d4a45916a45adbdff471723a3834120f54796795839f6aa7aba16e402260ba859f55483d7da37f0635e4432cd85dfb21fdecb8fae48bd2cd7e7f30b40ee9464d5fb1df25b5100a462e68b622a7921563c1efaebaf317923c3fdb3168427cdacc9e019fb3513c75578cfc00d0fd18736458c548e7732cc3fbc3168c168359356878762396de5ef3af2f17456af511b619d60fa48f24fdc6602f049e5b53b0e914ebb58b73331edb5c859cdfc4ecd60be58d7106317a58340cccddc5f66ff32443ec753fb466255eae8f42aefe796126251880d47edc496df1e18976d0bce5fe5bbe8dc0c40f460eb47b478f5d1c81897192ac8f635e7c6adb56924b8909cf00398f7f6c9cab55ac53098de4c859be748fc831e77054606ed556032af619fd57aed3ba536b45bc58a76fb4ac6912398219f22dce33d64e14186dda2df4c21262028f1cb6070cadbaa3299f8f3ee7753db746721cee1d2432ee7da3538ed9fddfb5c17215a7b81eb0f60f6eba677b91a746417692ebf111507de5d5075114320f0c028d7fbde30e24ed12544168895b9e67d0252dff804a8973a9b63e85d07ea54ae52e631dad1d99a53ce43191fa4e8e6a03298a48006c4d71ab16f3abbcc67af6d29378db2d3703ae9ad2444cbff83cd9925fd30de6939a9b596c0b21b47c96eb5c6b7512a7b633c795e77af989bfbf11985dfc540bc04a398801b15cd46e5c86e70722aefbc902a3d3ccfa52ec1d60c2954075c7a7f3f57e711fea4d5c7f020602517dab4baf82bb1b5c231cd62ff2f43099539ddfbb7daa5ca65364d2212edc699c0db8c0f26fd42100adfaa76eed10d8eff5fe804307152626c350719084664e8b48a5c78bcdd62ff5ba2b6878629936b4405626e6807b58d822f0f629b0a5bb2184a6c9ddf7d5d45f5f38531b51c346cbf66649cf05761dc5cacb653bf26e5434db0760b1b0fa205f90bcb6800815bc2da22a9a85c20d1c0b683dd0b5712e9e561d8999a3226d0ab2549d9b02bc4edbf94c50e4cd41d04f6e52ed9a09386548e560141b5e5990e55135c4ac1ce859acb0cf883a1f873aee8074df266f2c02fa2e534711533451124cb75bf6399ad6d57b03489c1a9c5757eb9320610570b6fed4e889ee380adaa5b8b628814e183247356f81b2ca812f925d1f2030223fb0534b564ebb005bb14510ff28e2d9b5e259c9267cd1d304ea86a48b99558d3fa103e0ae6bd579e93b57705276dd4777e5e7c564da13dde6f1c7de7d0a18fecc6c659e4c58bf996982829674b628708d760889a72425e756a3d22f98f243325b518364cea358b14124dca9d3614469f92e73fdb067dfba551449ac26dd682635d02eddd2bb1448e995b8966f66f119c40270f8a1972ded76395cac9795def19c4b28d9029e8c39d03ca3b2dc37861b5f58a4fb82321dfe424b3839db8b66d7b80075624cf400888731c60eb1b173bac99ffb8390f903625a6cdd41e0ea91a79363edc822c2752d5ca48b396a2590edd5239788760ebcdac81a1ccd21e6d27d440fb4bd8228aa817389ee397f7a6cd6139ec0aa94857a1c0b6c2036fe53cda46ca687537263d1478ca80441a1548479be4c55c4974b0925ab88034d9f6308d4cf21f1c62d600c49c69cf4a4e878d6dd52efe6f0e58ccf093affbc85c67fa55d3d679f03b4d4a108481d576d88e3a0bdf6b72400fc73fd5475fe7abc80fa888407a2fde575bdd7c9b08e99f777d6e7e8fd2c09107cf37d49e5c6fa562607eadd5837cd40e8ac755100ed308c4273e71b9e70e4bcc7fed7d46fe898dee537e177620af9afb6792757846a536d790b17adfe719a642d74dbaa34ff8ad66dd82ad3d9667151254b0cb788d1c421e4937f5751af9fbf4b89804a0792003fea7c3cba075748065d212ee364d6f1a5829088166eb79016728c972f025c67396841dd7626634d2be46a931241dc47d9c96d7084a2725de476f3d4a2614c61b3e24fc965aab92c8da3b269efc4b50f1c4a35a8800b224c3a21b0b038613f175d1f706937877955888b80329e4f75b353f42efa53ec2a9a668ef000dde1f5cfc8f3be9560a304b564c42f412e93a7a15750022dd1f206b19b5eb374d9f57b43d75fe5c92bf44da49d9a5efec61d7cd2508aaf8d35919ec9a475123e32593fbf873738c8520ac6fb14ce43238c15841eb29047c25a431deb7261228deacf564f6bd2498979c95bd3a94cc6d3cca805b4d87c073bbcdad58c0199e0868f5ee731495d398a0c7894f4c0d1d14b74e43d28ecbf6e94e8d4bcc248e5d5602160d5bb8fe4ca50b4954e15c0d790d28217f385362bf1f60f0253b308c6fd413c8e35bf713b43c8f603d0711954f24f0a2c65b2d691e3e531a8d5e626b51951ce432c3686f3ed47f66dacb92371fd64ef2f1a23dbc049382c851bd5a4ea34bf88d4c72f3d94ff214d7a8b741262077f6edc39fd08f336c323a09ea745b7e934e9f06a473e5a8cc75b6e841af757daaec8374b740c63c4fbca0db71ae3e581c766247e9081f34df4ab24d5c5f514b5a5bb56ac4b991588d9315a1717a592375acc4401992ffea62e1d25300f4b7958a032b5e3b768139ca054a8cca2b3d3996ed5067e4f4b20765f52cb849cab9fb4b7db0dc92644d21c1812a3e62653950b5b6af14819436989898e189d6777a0b8d41b069a35d2a20c9a2221c703a272b2c7f3c5b3c5a5059c1a20070684420161a15061bc2dd74193ad9fd2b9d640a0e8e997a0efd505b9b030d80dff24dd89bc4af98aa8a3075bfd41cc6abac755675b17bde7588baef4d07721eb7f3b4cf3b118441dae8e7e89980440f2391a297f61070b9cd9f9011585b7f970fb54f4cf6e8a41e99d2b671e91eee8cef97e36111b73add177c04628f0cedd56deecad4314a443111c0ccaef689c8c3adc521d7bfefc0a4b8547d0036be13ca93eeb11d47acd26277cd9d42e3e8c0509333cd0cb88ea413258ba355fd023cd767d2f1feb47ad18e10b2a61d2083b8bdc6a893ea0adf31392a5e73d30de9dc874bc4b5d0d179221bdfd7d30048920f53d0920529245b306b378bd932600846bcaff147953234f9a8ab7e6c5931184b0a440b221d1d9e17849ad62878256a57062aad960441bd972f72bac0306d0c7406cfceef47e621e279a8f4167d7cbfaa93ee5dd01379d2c96c1184d013e78da9ba5793abc552c7e7b0a16cb7b35e54c6eaa1e7b1124d6a6b948466585145b7be69c268c8e294c1afd4aa05b3fc09a75cf79e2cd93712c9c20d3c39c3bf4006008f630d89c8806e4c5efeea9d4f01c49d1a5a16f94666214e893545b26592cca3d8b4de1e722b3e16904e61030acedd4d542a47935ca60ab55ba29902b72e116f72a125bc25f7d60bcd169e9d369aeae8e931735090bec109b5a14d88209967e9f7f8053dbf37a52ca057a3d68dceb804a43b9c3ca85e31a59c98238fef1a1c879c76321a8201ff19a00b521eff2e6e14575672167a491128beb8a97b6a943f0c9da6f50388a66d5ab71c2a33be6a04fac3ef8fa7bd8577ef3a256de00dab51a2ea96712c33075269efd619f46cc5369731358fee8724d1335c4e1170bb75bf4705b9eb66d49da8203973b89ab8fb5e4d58cb8961d54e695b1bd2f341a80d2e67d10e261175d1840d3424d4e5f49862ca2d465ee61a699a73fd3e04e111e8a6b06b5ad27a6c6f9d1e30b0989bd3d956b0a3707d560a030f9d71c14d4b35ae2d3fe2b4ba8de9f327d3e63ce06c4cf693c2f580a190ec2ca865e5853c2f5a3342d78f64e6b3db5694075a70aeeb10253084201288e807ac90c744da4bcbfc69671ee9e8953c79a7a3befbee8b25ac3a6efdc140f4fe81ecf49936686b2e804c8aa3a6ed518ee19a08d31b5feccbafe2b96211714cb759aa3602cce4ac2508a40aa8063e0c21377dd8498e6012ccfd3943a528ca9118982a8b999dffc2078813aa67d76588a20aaef07066828c1e343d49cc0c9685a11e5b29de7fbb8f2b07760a067442204719306d8e09365e347975535139bcf27bd8855d1067d9c77cf2543fbc2d9734dee573c00defb100982f7e7b769652c77387cdd4db26a9670a22b0da85862e1442f876cbbcc5dc79a58091b0926fa93df0fdd8937b95330f453b83f52c43e25f20260221b5f3bbed163e74bd96be0b701487fc6d7a06f6f2774893fd05ddad526dda5bc5208fce127c7df9190412b7b864e939894c1bf8cc426ace767c8bdcabcc94ce8fac00c1889916ffef052db7f4a962c966218128dec51efed4baf7bed40211dfaceaf8864dbac8c9af813509f81da4d2c08e16a985b5081c2bf047bae17d9279c2df656a49acbfb06d1e1af949945d1b196b724afd1c073c9a216bf59342cda9ee469a72bd95dc0ce066fa2ef742281b3fa25b627ad30e7f1748b8d5288a31aa6317bd9a8a6924d0a006f1cb43143034181a40a6d7c6d6620336e6619cdc2c9760fdf261754ab770cbbf2e230019e8b56b8358515981e133a63d01caffc21050c7e791aaa530daa2157b995143ba58a892f75d252b80f796c29d911c82b7d5bdda120d6a6b7637ff2332e5b41b630be3b0b98ec47c95ae98fca1c27c1a30ed06a7d8d9b25e154131d57dca2e27bda4c08110b2a81e6d3c1dae545fc1efd83acf094624351c4fa7d194160f9275a7d977a3f955644724e79d33e3edcf39c5bff9e1846046346af0b463bfced1b0e524354b07b7d2be61bf4f9bc6b61cba6f6808034fd8716de2e766550c46ef21221e2e96e65e6f9ee16118cf769a635ac121a5b709e26daf78d8c5b6af074ca5b7532daa2e8cceb4f7035996509a62bea7302ef4b1880fe5d0e723794ca8840ee79ac52d96cd3d76d50577df12ccfcf3c0455236601ac8c2a168a95acb7c4f9d17a90b1ffd6d5e4f7917781c7379fa2699032d7732490fc381cddebb045005745c4955d8807e354447755abab86c30ffda45d90cb092f2a873fb45626f6fd41cd42123fdf085e71013714dfb1f6c810abddc59bcf23263d3dc20a9132f93a1dcab397344b549192e0fa3f1209be0bbd1a49b0c21907cda6dc243887ce9c0f98bb7e696c9e02a4f21224b0a204bb7cfcbc2e9419cbac752f010d0e2d2235ae497b14be1ca4737a4f4190a9b6ba31124ab5247de91fcd3301f0bef967fe7494857b1b7ebd35c051d524c67737c358b6a0948c570135eaaedbe02a8c3eae23ae2376f0a0f83b7e4506ec57571a75b1d576dba8884c5733a9e5e2fd63e6df554e0c1243b818e6265555dfaef9ce73b4f4542545053cb9eea704f85a91e84566209e6ef0d7fa9b0e4a62490d04af31174765e6f5ca7659ca106732077506597c7194e004e155c8a42347f87fb3dcc8047be4bfa49106eb5b5c5634c84808cdcf9844d955bb25f4fd362387e74b260e8211d01ae0ae32bfc3ac6e56bad269f15361c3d6091ccfcff47e8c7e5951ce60afd84416d4d44f007b86420d7a527ef511a493e56a1687088b4f4df98899d27088eb6935b5ccd684441ed11439ea923a70776a42f25c3dd91ccc6363ff5d304b616b3472c01cea6cf5174bc5a5f82ac31fdbf2fbd3887e22838203e0ee4a603572ec9205c509a2a44b5f27f47f9ead11db93cd45b0c9630c87e3da2bfe84febaada08936a8e5e3c5213cbeaaf42e34dcb75d86c946cbf12bf1a1b39a5578ec3889a7a7c7abbf3a81d40b533f3a180d36fd8b02e9b685bfdc89b658e939da711692c2add047f4c08e7634b4a0c340fa75a0b85af73c428db17f83eecc285d76a9a56cdbf1039acf873b39d3c7d631d7289dd9e65b13427a02021e9dc251e9c5c61622e0a3e3ae3602338da44da26a0fdae0e43c55cdccda66b08027a2b1adb7512b6be056d3071993439690f7f58b55141de7cad5aa233de93f21a1b4dfbb1374093cc1f6524e6ae7bab098b264e972e83b05b3a0ff6ca2f30b126dfecdf4318025508697b7e8b3c9bbd901c2f49f6c081a7f61d3b40a8d04c82f121143473e1a8b7ded940e1f9cfaca2400db6eb126f90da97937c268b8f9120937e7f84400b6e6ca8a740cd35ae685b0e76a72cd65f726849f74ce1371fd0cade9d8b1ccde3a55ddeef1dfc3eb3edf5ce6c33737a3fc0d4636b14527a264ae70958b4531c0c4a1614ff26d256905b41eb65d7316b9138712950819f9b9be6f20d33c61a1d5e5c2809547b91acf3552ea6a60bf877196cd04a9ab47d152c888b2e2c323915266510915ed1b6edb7fe2cfa35147e923503dd8b22280630dc8f882a66e083f25e3b6de1244a5ab80312554fd0ff91e7fbb4069223f724836b110afeac67501eca003914dfa6226d2613c9aa1653465e81af9f2374840a4cf1cea2a65e6b3d89bdbe035b74c1b6ea324343b61690e8713e577acff13977423324958650247fb7a1ecbbf27e5cc56ea830d1fb01f59a7cebf1c5b44506d2064cf72f41d368aee3a1f776654b93a3fb3369eaea2719fe3746c24ac7f6f709c231379cfa71762aa5682608412cec4f244017b1a223cb2f42c943787d5e8c6127de0dcab4deecf20ace59ea482810b485c19b185ad679eb70c10021ee32ebb348533f9737ff146e608ba6f30517f544a2e3f2e739b1379f7ed8e8ffe69271d6bb8ca65742b8e115638ea9c0609f0c4197495a714ac3b614fe413bebed369ee4f62f8f68dffcfd8404166a66d1945671701b42ac7846c44378ca37182da49a1734e177cb4e5a7786b4ce473654e3c5df61bf59a6c77d7d6c7c6f1830bf33861e93da523f03f8b419277b87f393e31b6da857214de034a684187c365da736bba563456acc94d8ff6deaeb6fe55c82c3da5267b16c4577e275536cf23ae44ffd1ddd814a0e9f8aac537cb01c42216b6d25ee8fe22fa990b5dc8800978a8d458d483b5ce4592e1973e108db814fc6f448c952523265885254522076149dee894ae15b87d7d8811d305c4acf08c605de8fc41c987d3b0fc79b310a93a63f35cb8c3673f2abc7cd95aea92d0724c6580543df618e6de725e763a4e40ab8709def08d9d57bacd3a74c028dec1455ce527a4491b13140b5d3e24e358cef4a00bc44b6ea9eeb0a630a7a9a146781b4a63d7c6284a796e1af33d55da330a73f12d934f41893ba15ca8f36fa00072e97542b3e3bdeb39d66f7f264034c1798666b457b3b0c674c06bf788b630e52ed95abd564dd8382008a39a63dc23e3680809f44667e8ecd861856587229fe20b398162cb3ef6ccb3fb3d39d95953b8c1585966b586d99d163dfb806b05d23c161e1601d8e461105b955787044a75e7821f6aaaaf665ecdf1971068a0dc532ace9f557634f47847d5334393db281889609770d45d8fae78d518e9748dc9a6679ab800ff83daa1858082efe853303b948e0c184c52bd59e32006f462b415f53887bd1b97734cd15cd0a6cf738327b398d1b7dd88faecd10766c4e139897a55a8b085b949f4b58f71acd57b7ef3803fc05b1a162a933295a906bda4efeecdee51f4bb1ec1db9ed50978485700fff8473f2f548bf40987656914fd8567d65cdd6d30696be0c6da04a4620443dd67097f6e6ba4ee9a497f0cd20f9b5e87f07419bf5fee8bf36446119fc076554ebe54c0f941c79e237130f35db80887f280ea2deae26b87d1aaa393c94ef9079617cd942ddb2efc1f9bcb1064e517108b84523d41060a7c9ec5a835e9e9b11938e44c9afd7ef44be581b9342d1f76d5c23708165b5b939112d7e015522e2a4adca68b7f61f8e389d6d90b4fe07dd7da5fb1596862b246c5ab34ed128e67b7511a74b37d039816119b3c6b4d978885581d1df6338ffd392f75d4d19f783a30f572524589421d07cf67094bd5ad818c9522a8c55d0cbdfd6818e4cbaf0bf42abfcd1ba237d15e4b14f3c3edf17ab9d4061c0a8839f25b620de4ec626a022bbc09247db40b72325dca629e213dbf6cab1f0d2c33d95297e6d4f845bd0cd9246b0361516cdd3e235314908ac593e9c10eb2dfa441e7d4a52d3b612a3e61d9b673604d5219a94105570cb1c3dc68636ac585bc08b47026388f5ac155826db5fdf5d25d583c1f1904590804d171c8d0ad9816e48022f2a2dabb2092aa410125d4522a46df28c78f1919753b4b54638ef2e7eae980bc0b3e804baad3a35b7eafee70408ab07165a61a75ef60ff61a6e620a2093b0926ba3056c59294eeb011fdc22a9936c24deb847bdfc8530e1796ca6827e1a9618f80a7ff8bf8457895caba4a15d9ff97727673b42873120be09c7e769470a0dbc804027a8abb963ec05be9315930f6a9e5e79fafd2bb4104fc1dfb832b3dd50712b22d57db904cafba27471bad2f92595f8abaabd309de82d316e69acff3ed9b4beeeb1973997d8225a84feb5892783e06258eafe564e04f8fbec3356d75b061001918d37851fde87b15c7e21b5774c5508325d1a6e0379fe985ad3978058c299494f5052d237bc8203126e033c00091a5ad6d1cf0f72d0f89066e8e0dc2d8fb37234b1b31049a908a25a1cf1e36519760718367e43f4dadcedaf7fb404b3571a40218744430016a283e2b5e97416d4379bb0bce7f808212b85afaeb9e33b2dc4db9c8ed93ecd776e67065e1842bbbaf6da3704055f931d702abd81b68c647348e22f1583a3fd4f75e503ad1cde5798851da347f5dcdd71c48630f23fcccc635978048489e67bcbf5d0d7904d57f6cd2ac38678cedc50c2bbeea33c657506a6046bcd699e0af748b7bc1e4fd892efd6bb675815967b4cc523bd4b80736b2fc5e82fc6b23886e545f9ce60000a0c65e43d16bcfd74fcb8cf119f83d84c66ad512511d405d7e518de25845956ec02e7fedc40d07783dd00bfc0de6ba05b306c074f542129c78a6317fdfea3f087e92ed7bc6b5f84265120b497cd963234f197edbf7e0083c0ed97da64bf8b2a809f74794175d3ebae639bea1df29900d6ae5d7b7389635063c7c0a1794bcdccc2dfe0c3ea1b7c312d4e54a1654197e42efe1723fe0968c28a5f16b4c7e572b55e806e1dfb3feb3e876f64da8e96054faaddc950076101ffdfc139316a9e5f5c49257f4e9e40c9cd71006a28219e3c51bdeaa46e5f8325150aa43894e3519e02fca4a90a079ebcc3f2ae070225bb41b9b3c54cd930302b59fb750fd8fc2791cb89f4f2374aa00923aef108415d8a116038dfb96c7c438029d7595ed3a303047a494d42b4eae62f652597add070132ffb7c445454bdbd64ed3bc1e9a33b4bcca9f6f043c3a4043235f69ffc3c79df8816b7448d4b81a30ace9c05665fbc8a067c33dd7f454637a7ef4c6ec1dddb4ac459345b7043e09d7c7c755bfa9e3750fef9e4fb113118e5754ae57282c911d343d80f3ba2180e0f587de82e43c172b57317a313faabadaa94c60430725075cacf716f98b9b3926f642eb9986ac83d76b1de28a3dd0901bdb0202c0dfc4d9edc4cfbef5d96e9a0ce3c03457e4282c1a75a441ef955d4a57fac9f4bf36f2554c73ac403bfb22b65ce8e0a163b434d721763bd88e70cd7e5dbfb4150514d45ecdb9014e2c33945c22814d5e5807340d3ebc827f118cd824f4ed1c8712594091af399218396cd7c33cecb4517e0fec72f587ef589cc7329936c386bc8ac104a1f4c94ff4ec704264e13636ca8332f61b097dcba340afe5d7bb63d43682a0ddb2e743a583ecb3a3259003ca58454d1a175fc31d50929fc2c251701a216be25f2633fd9b949b4c54bc5d3ae9f6d40e3a8e01111fc7e130865fdbd4176e1a4c568b75e344d25ab3d5dfceb75cdd0fd25030198a11eed9c79f9dad0b95f2a8bee5c413d3ef35dda6827e28095239e2c840e7a31fdd522d42c7d15efc4cc8dd847471ea77ab6a8c4bd880ba9590202267afe21e2e6696a8980a1e80fc0304af20cbd2346cf010c0eb49d51acf2b8caa97f614df92516668da83b36561af2ece46f111946ee4ec72a552c4826676f147bb2a7654edb2dbc673809d57c6737c2a6c57ba3e9598f3adcd11caaef4f6aa46b479699238c7735cf7a072e3d976a5a21857354313542504ac5c06e62faab94590d9e2908745793b2f59f8380936c779e4de674701d6cc1d8f95e1495b36f16fc772de0b0dd5e1e8d891ff6878171a58ec244aac75cf4f5333a160fe39f0215a5141c8e866b729ca1f1087795ff51348dbfd5186908ab80e72ea5a6cbb928d2829beac0468601a6766586ef82903ae7e0d039c5daf9f645f63ac7fe3f042484782d3934150f008c15fdde62857d8a4c7fb3311054363d84b6be5bb7116387527b64e033881e45db41c345970dca58b96f9ca64d9a35b025c7a886faf1f325958759cabfc4105e72a3428040630d606883ce54af3ae3e57dbd07cbd6a411f36a2992277c48e4a046796f0a9b927f28667e372d6c9817973d87c3fe3a2ec6e1489e460fc5adc4a5051ed09610bf16cacc8cb1c99a97badb693c3ffb22eab21d672fd3e4cc4c95bb2dd05fc048d3965879f7e594ac06bf6cef457f03cc384ada431ec0d85b55a7810ede033c607c78f15d00b13fa529aae1a481a354561f83125f5eb833ee97dc0569429b34f2e2e204686a2116130e3142bdae630900653a279fc85a82759a594fc092884f3226d3dcac7b37d02f3f31e095ec37441ad04b9c9d7d55ca8a0f060dcae5bb99dce24fe03f79008997dc0c08a4fd57858fb3d0f30fc94f2db90dcea6c605730d0c0fa1016820a41a259c5bb715e62ae9aa5e5150de1025ddb2b2955f571e8913b4e2327fef6a339eeca29f57b5ec0f1b08f5dc4a7a2f7fb4e15f4b28442334d1ec0c3d2021fb2667f95b6d12f745267ca76c9a942fd633c6b640d79d5e96c9e4b416da63adb33eb9ea54779076c6269bb294f9c6c5e038d97b0fa868985e6b457061ffb521fc6ec08a8ae7641e6aea6c58db6cf8cf2396bf17c8571f366b8e1a46e078de240ed3d0538fc1c8aeb6a287abdbd57865b97fe82c287d32af18f498e12fa483
Note: See TracChangeset for help on using the changeset viewer.