Changeset 2817418
- Timestamp:
- 11/14/2022 06:34:43 AM (3 years ago)
- Location:
- seers-cookie-consent-banner-privacy-policy
- Files:
-
- 176 added
- 7 edited
-
tags/8.0.2 (added)
-
tags/8.0.2/css (added)
-
tags/8.0.2/css/cookie-style.css (added)
-
tags/8.0.2/css/popup.css (added)
-
tags/8.0.2/css/seers-plugin-font-icons.css (added)
-
tags/8.0.2/fonts (added)
-
tags/8.0.2/fonts/seers-plugin-font-icons.eot (added)
-
tags/8.0.2/fonts/seers-plugin-font-icons.svg (added)
-
tags/8.0.2/fonts/seers-plugin-font-icons.ttf (added)
-
tags/8.0.2/fonts/seers-plugin-font-icons.woff (added)
-
tags/8.0.2/images (added)
-
tags/8.0.2/images/----seers-logo.svg (added)
-
tags/8.0.2/images/5 cookie consent banner design.svg (added)
-
tags/8.0.2/images/Choose your Covid-19.svg (added)
-
tags/8.0.2/images/Seers full customisable cookie banner.svg (added)
-
tags/8.0.2/images/Seers-logo.png (added)
-
tags/8.0.2/images/Seers-logo1.png (added)
-
tags/8.0.2/images/Settings-Visuals.png (added)
-
tags/8.0.2/images/Solid256dot32_2_navy.png (added)
-
tags/8.0.2/images/color-icon.png (added)
-
tags/8.0.2/images/cookie consent customer support.svg (added)
-
tags/8.0.2/images/cookie consent for branding.svg (added)
-
tags/8.0.2/images/cookie consent for subdomains.svg (added)
-
tags/8.0.2/images/cookie consent with consent log.svg (added)
-
tags/8.0.2/images/cookie consent with multi-lingual.svg (added)
-
tags/8.0.2/images/cookie consent with prior consent.svg (added)
-
tags/8.0.2/images/icon.gif (added)
-
tags/8.0.2/images/li-dote.svg (added)
-
tags/8.0.2/images/li-green-tick.svg (added)
-
tags/8.0.2/images/li-white-tick.svg (added)
-
tags/8.0.2/images/loader-2.gif (added)
-
tags/8.0.2/images/loader.gif (added)
-
tags/8.0.2/images/play.png (added)
-
tags/8.0.2/images/plugin-player.png (added)
-
tags/8.0.2/images/plugin-player1.png (added)
-
tags/8.0.2/images/plugin-player2.png (added)
-
tags/8.0.2/images/red-cross.svg (added)
-
tags/8.0.2/images/seers-cmp-badge.svg (added)
-
tags/8.0.2/images/seers-logo.svg (added)
-
tags/8.0.2/images/seers-plugin-logo.png (added)
-
tags/8.0.2/inc (added)
-
tags/8.0.2/inc/seers-cookie-consent-plugin-activate.php (added)
-
tags/8.0.2/inc/seers-cookie-consent-plugin-deactivate.php (added)
-
tags/8.0.2/inc/seers-cookie-consent-plugin-deactivate_old.php (added)
-
tags/8.0.2/index.php (added)
-
tags/8.0.2/js (added)
-
tags/8.0.2/js/admin.js (added)
-
tags/8.0.2/js/jquery.min.js (added)
-
tags/8.0.2/languages (added)
-
tags/8.0.2/languages/default.mo (added)
-
tags/8.0.2/languages/default.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-ar.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-ar.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-ary.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-ary.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-bg_BG.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-bg_BG.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-cs_CZ.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-cs_CZ.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-da_DK.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-da_DK.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-de_AT.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-de_AT.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-de_CH.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-de_CH.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-de_CH_informal.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-de_CH_informal.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-de_DE.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-de_DE.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-de_DE_formal.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-de_DE_formal.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-el.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-el.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-en_AU.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-en_AU.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-en_CA.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-en_CA.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-en_GB.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-en_GB.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-en_NZ.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-en_NZ.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-en_US.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-en_US.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-en_ZA.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-en_ZA.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-es_AR.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-es_AR.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-es_CL.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-es_CL.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-es_CO.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-es_CO.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-es_CR.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-es_CR.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-es_ES.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-es_ES.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-es_GT.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-es_GT.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-es_MX.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-es_MX.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-es_PE.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-es_PE.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-es_PR.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-es_PR.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-es_UY.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-es_UY.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-es_VE.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-es_VE.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-et.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-et.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-eu.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-eu.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-fi.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-fi.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-fr_BE.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-fr_BE.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-fr_CA.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-fr_CA.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-fr_FR.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-fr_FR.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-ga.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-ga.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-gd.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-gd.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-hr.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-hr.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-hu_HU.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-hu_HU.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-it_IT.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-it_IT.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-lt_LT.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-lt_LT.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-lv.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-lv.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-mt.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-mt.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-nl_NL.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-nl_NL.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-pl_PL.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-pl_PL.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-pt_AO.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-pt_AO.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-pt_BR.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-pt_BR.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-pt_PT.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-pt_PT.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-pt_PT_ao90.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-pt_PT_ao90.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-ro_RO.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-ro_RO.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-sk_SK.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-sk_SK.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-sl_SI.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-sl_SI.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-sq.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-sq.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-sv_SE.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-sv_SE.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-tr_TR.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-tr_TR.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-uk.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-uk.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-zh_CN.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-zh_CN.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-zh_HK.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-zh_HK.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-zh_TW.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy-zh_TW.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy.mo (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy.po (added)
-
tags/8.0.2/languages/seers-cookie-consent-banner-privacy-policy.pot (added)
-
tags/8.0.2/readme.txt (added)
-
tags/8.0.2/seers-cookie-consent-banner-privacy-policy.php (added)
-
tags/8.0.2/templates (added)
-
tags/8.0.2/templates/admin.php (added)
-
tags/8.0.2/templates/frontend-popup.php (added)
-
tags/8.0.2/uninstall.php (added)
-
tags/Development Versions/readme.txt (modified) (2 diffs)
-
tags/Development Versions/seers-cookie-consent-banner-privacy-policy.php (modified) (6 diffs)
-
tags/Development Versions/templates/frontend-popup.php (modified) (2 diffs)
-
trunk/readme.txt (modified) (2 diffs)
-
trunk/seers-cookie-consent-banner-privacy-policy.php (modified) (6 diffs)
-
trunk/templates/frontend-popup.php (modified) (2 diffs)
-
tsvnsync.tsex (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
seers-cookie-consent-banner-privacy-policy/tags/Development Versions/readme.txt
r2811087 r2817418 5 5 Requires at least: 3.8 or higher 6 6 Tested up to: 6.1.0 7 Stable tag: 8.0. 27 Stable tag: 8.0.3 8 8 Requires PHP: 5.3.3 9 9 Author URL: https://seersco.com … … 183 183 == Changelog == 184 184 185 VERSION 8.0.3 186 • Minor bugs fixing in Privacy Policy save 187 • Banner Layout position top and modal 188 185 189 VERSION 8.0.2 186 190 • Minor bugs fixing in Activate and Deactivate -
seers-cookie-consent-banner-privacy-policy/tags/Development Versions/seers-cookie-consent-banner-privacy-policy.php
r2811087 r2817418 11 11 * Plugin URI: https://seersco.com/wp-cookie-plugin 12 12 * Description: Seers cookie consent management platform is trusted by thousands of businesses. Become GDPR, CCPA, ePrivacy and LGPD compliant in three clicks. 13 * Version: 8.0. 213 * Version: 8.0.3 14 14 * Author: Seers 15 15 * Author URI: https://seersco.com/ … … 565 565 566 566 $url = $this->apibaseurl . "get-banner-settings"; 567 //$url = "https://seersco.here/api/get-banner-settings";568 567 $postdata = json_encode($postData); 569 568 $result = wp_remote_post( $url, array( … … 948 947 949 948 $accesstoken = get_option( 'SCCBPP_cookie_access_token' ); 949 950 //if (!$accesstoken) { 951 952 $filterurl = $this->removeProtocol($cookie_consent_url); 953 $loginresponse = $this->loginFromSeers($cookie_consent_email, $filterurl); 954 // if accesstoken is in response 955 if (!empty($loginresponse->access_token)) { 956 //echo $loginresponse->access_token; 957 $accesstoken = $loginresponse->access_token; 958 update_option( 'SCCBPP_cookie_access_token', $loginresponse->access_token ); 959 $showloginpopup = 'no'; 960 $alreadyexistinseers = 'yes'; 961 } else if (!empty($loginresponse->message)) { 962 //echo $loginresponse->message; 963 if (stripos($loginresponse->message, "Ask for password") !== false) { 964 // now check if we have already some password saved 965 $savedpassword = get_option( 'SCCBPP_cookie_userid_' . get_current_user_id() . '_pass'); 966 967 if ($savedpassword) { 968 $loginresponse = $this->loginFromSeers($cookie_consent_email, $savedpassword); 969 970 if (!empty($loginresponse->access_token)) { 971 //echo $loginresponse->access_token; 972 update_option( 'SCCBPP_cookie_access_token', $loginresponse->access_token ); 973 $accesstoken = $loginresponse->access_token; 974 $showloginpopup = 'no'; 975 $alreadyexistinseers = 'yes'; 976 } else if (!empty($loginresponse->message)) { 977 978 if (stripos($loginresponse->message, "Ask for password") !== false) { 979 $showloginpopup = 'yes'; 980 $alreadyexistinseers = 'yes'; 981 } else { 982 $showloginpopup = 'no'; 983 $alreadyexistinseers = 'no'; 984 } 985 986 987 } 988 989 } else { 990 $showloginpopup = 'yes'; 991 $alreadyexistinseers = 'yes'; 992 } 993 994 995 } else { 996 $showloginpopup = 'no'; 997 $alreadyexistinseers = 'no'; 998 } 999 1000 1001 } 1002 1003 //} 1004 1005 if ($accesstoken && $showloginpopup === 'no') { 1006 1007 global $wpdb; 1008 $prefix = $wpdb->prefix; 1009 $enable_policy = sanitize_text_field($_POST['enable_policy']); 1010 // $enable_policy = $enable_policy == "on"? true: false; 1011 $cookies_policy = sanitize_text_field($_POST['cookies_url']); 1012 1013 1014 1015 $postData = array( 1016 'domain' => $cookie_consent_url, 1017 'email' => $cookie_consent_email, 1018 'platform' => 'wordpress', 1019 'policy_url' => $cookies_policy, 1020 'enable_policy' => $enable_policy 1021 ); 1022 1023 $request_headers = array( 1024 'Content-Type' => 'application/json', 1025 'Accept' => 'application/json', 1026 'Referer' => $cookie_consent_url, 1027 ); 1028 1029 if ($accesstoken && $alreadyexistinseers == "yes") { 1030 $request_headers = array( 1031 'Content-Type' => 'application/json', 1032 'Accept' => 'application/json', 1033 'Referer' => $cookie_consent_url, 1034 'Authorization' => 'Bearer ' . $accesstoken 1035 ); 1036 } 1037 1038 $url = $this->apibaseurl . "update-policy-url"; 1039 $postdata = json_encode($postData); 1040 $result = wp_remote_post( $url, array( 1041 'method' => 'POST', 1042 'redirection' => 5, 1043 'httpversion' => '1.0', 1044 'timeout' => 45, 1045 'sslverify' => false, 1046 'headers' => $request_headers, 1047 'body' => $postdata, 1048 'cookies' => array() 1049 ) 1050 ); 1051 1052 1053 if ( !is_wp_error( $result ) ) { 1054 $response = json_decode($result['body']); 1055 1056 if ($response->message == 'Policy URL has been updated successfully') { 1057 1058 $existEnablePolicy = get_option('SCCBPP_cookie_consent_enable_policy'); 1059 1060 1061 1062 update_option('SCCBPP_cookie_consent_enable_policy', $enable_policy); 1063 1064 $existUrl = get_option('SCCBPP_cookie_consent_policy_declaration_url'); 1065 1066 update_option('SCCBPP_cookie_consent_policy_declaration_url', $cookies_policy); 1067 1068 // update policy url in cdn also by update banner customization 1069 $this->SCCBPP_policy_update((($enable_policy == "true" || $enable_policy === true) ? $cookies_policy : "" )); 1070 1071 if ($enable_policy == "true" || $enable_policy === true ) { 1072 echo __('Cookies policy added successfully.', $this->textdomain); 1073 } else { 1074 echo __('Cookies policy disabled successfully.', $this->textdomain); 1075 } 1076 1077 } else { 1078 1079 //if response is Unauthenticated then its mean to show login form again 1080 if (stripos($response->message, "Unauthenticated") !== false) { 1081 update_option( 'SCCBPP_cookie_consent_showloginpopup', 'show' ); 1082 echo __('Please login again.', $this->textdomain); 1083 } else { 1084 echo __('Some thing went wrong. Please check url and try again', $this->textdomain); 1085 } 1086 } 1087 1088 } else { 1089 echo __('Some thing went wrong. Please check url and try again', $this->textdomain); 1090 } 1091 1092 } else { 1093 update_option( 'SCCBPP_cookie_consent_showloginpopup', 'show' ); 1094 echo __('Please login again.', $this->textdomain); 1095 } 1096 1097 1098 } else { 1099 $enable_policy = sanitize_text_field($_POST['enable_policy']); 1100 // $enable_policy = $enable_policy == "on"? true: false; 1101 $cookies_policy = sanitize_text_field($_POST['cookies_url']); 1102 1103 $existEnablePolicy = get_option('SCCBPP_cookie_consent_enable_policy'); 1104 1105 update_option('SCCBPP_cookie_consent_enable_policy', $enable_policy); 1106 1107 if($enable_policy == "true" || $enable_policy === true ){ 1108 1109 $existUrl = get_option('SCCBPP_cookie_consent_policy_declaration_url'); 1110 1111 update_option('SCCBPP_cookie_consent_policy_declaration_url', $cookies_policy); 1112 1113 //now banner settings are updated 1114 update_option('SCCBPP_cookie_consent_defaultsettings', 'changed'); 1115 1116 echo __('Cookies policy added successfully.', $this->textdomain); 1117 } else { 1118 $existUrl = get_option('SCCBPP_cookie_consent_policy_declaration_url'); 1119 update_option('SCCBPP_cookie_consent_enable_policy', $enable_policy); 1120 1121 //now banner settings are updated 1122 update_option('SCCBPP_cookie_consent_defaultsettings', 'changed'); 1123 1124 echo __('Cookies policy disabled successfully.', $this->textdomain); 1125 } 1126 } 1127 exit; 1128 1129 } 1130 function cookies_setting() 1131 { 1132 1133 $cookie_consent_url = get_option('SCCBPP_cookie_consent_url'); 1134 $cookie_consent_email = get_option('SCCBPP_cookie_consent_email'); 1135 1136 $cookie_consent_code = get_option('SCCBPP_cookie_consent_id'); 1137 1138 if (!empty($cookie_consent_code)) { 1139 1140 $accesstoken = get_option( 'SCCBPP_cookie_access_token' ); 1141 $getseersbanner = true; 1142 $keepwpbanner = true; 1143 $alreadyexistinseers = 'no'; 1144 $showloginpopup = 'no'; 950 1145 951 1146 //if (!$accesstoken) { … … 1006 1201 global $wpdb; 1007 1202 $prefix = $wpdb->prefix; 1008 $enable_policy = sanitize_text_field($_POST['enable_policy']);1009 // $enable_policy = $enable_policy == "on"? true: false;1010 $cookies_policy = sanitize_text_field($_POST['cookies_url']);1011 1012 1013 1014 $postData = array(1015 'domain' => $cookie_consent_url,1016 'email' => $cookie_consent_email,1017 'platform' => 'wordpress',1018 'policy_url' => $cookies_policy,1019 'enable_policy' => $enable_policy1020 );1021 1022 $request_headers = array(1023 'Content-Type' => 'application/json',1024 'Accept' => 'application/json',1025 'Referer' => $cookie_consent_url,1026 );1027 1028 if ($accesstoken && $alreadyexistinseers == "yes") {1029 $request_headers = array(1030 'Content-Type' => 'application/json',1031 'Accept' => 'application/json',1032 'Referer' => $cookie_consent_url,1033 'Authorization' => 'Bearer ' . $accesstoken1034 );1035 }1036 1037 $url = $this->apibaseurl . "update-policy-url";1038 $postdata = json_encode($postData);1039 $result = wp_remote_post( $url, array(1040 'method' => 'POST',1041 'redirection' => 5,1042 'httpversion' => '1.0',1043 'timeout' => 45,1044 'sslverify' => false,1045 'headers' => $request_headers,1046 'body' => $postdata,1047 'cookies' => array()1048 )1049 );1050 1051 1052 if ( !is_wp_error( $result ) ) {1053 $response = json_decode($result['body']);1054 1055 if ($response->message == 'Policy URL has been updated successfully') {1056 1057 $existEnablePolicy = get_option('SCCBPP_cookie_consent_enable_policy');1058 1059 1060 1061 update_option('SCCBPP_cookie_consent_enable_policy', $enable_policy);1062 1063 $existUrl = get_option('SCCBPP_cookie_consent_policy_declaration_url');1064 1065 update_option('SCCBPP_cookie_consent_policy_declaration_url', $cookies_policy);1066 1067 // update policy url in cdn also by update banner customization1068 $this->SCCBPP_policy_update((($enable_policy == "true" || $enable_policy === true) ? $cookies_policy : "" ));1069 1070 if ($enable_policy == "true" || $enable_policy === true ) {1071 echo __('Cookies policy added successfully.', $this->textdomain);1072 } else {1073 echo __('Cookies policy disabled successfully.', $this->textdomain);1074 }1075 1076 } else {1077 1078 //if response is Unauthenticated then its mean to show login form again1079 if (stripos($response->message, "Unauthenticated") !== false) {1080 update_option( 'SCCBPP_cookie_consent_showloginpopup', 'show' );1081 echo __('Please login again.', $this->textdomain);1082 } else {1083 echo __('Some thing went wrong. Please check url and try again', $this->textdomain);1084 }1085 }1086 1087 } else {1088 echo __('Some thing went wrong. Please check url and try again', $this->textdomain);1089 }1090 1091 } else {1092 update_option( 'SCCBPP_cookie_consent_showloginpopup', 'show' );1093 echo __('Please login again.', $this->textdomain);1094 }1095 1096 1097 } else {1098 $enable_policy = sanitize_text_field($_POST['enable_policy']);1099 // $enable_policy = $enable_policy == "on"? true: false;1100 $cookies_policy = sanitize_text_field($_POST['cookies_url']);1101 1102 $existEnablePolicy = get_option('SCCBPP_cookie_consent_enable_policy');1103 1104 update_option('SCCBPP_cookie_consent_enable_policy', $enable_policy);1105 1106 if($enable_policy == "true" || $enable_policy === true ){1107 1108 $existUrl = get_option('SCCBPP_cookie_consent_policy_declaration_url');1109 1110 update_option('SCCBPP_cookie_consent_policy_declaration_url', $cookies_policy);1111 1112 //now banner settings are updated1113 update_option('SCCBPP_cookie_consent_defaultsettings', 'changed');1114 1115 echo __('Cookies policy added successfully.', $this->textdomain);1116 } else {1117 $existUrl = get_option('SCCBPP_cookie_consent_policy_declaration_url');1118 update_option('SCCBPP_cookie_consent_enable_policy', $enable_policy);1119 1120 //now banner settings are updated1121 update_option('SCCBPP_cookie_consent_defaultsettings', 'changed');1122 1123 echo __('Cookies policy disabled successfully.', $this->textdomain);1124 }1125 }1126 exit;1127 1128 }1129 function cookies_setting()1130 {1131 1132 $cookie_consent_url = get_option('SCCBPP_cookie_consent_url');1133 $cookie_consent_email = get_option('SCCBPP_cookie_consent_email');1134 1135 $cookie_consent_code = get_option('SCCBPP_cookie_consent_id');1136 1137 if (!empty($cookie_consent_code)) {1138 1139 $accesstoken = get_option( 'SCCBPP_cookie_access_token' );1140 $getseersbanner = true;1141 $keepwpbanner = true;1142 $alreadyexistinseers = 'no';1143 $showloginpopup = 'no';1144 1145 //if (!$accesstoken) {1146 1147 $filterurl = $this->removeProtocol($cookie_consent_url);1148 $loginresponse = $this->loginFromSeers($cookie_consent_email, $filterurl);1149 // if accesstoken is in response1150 if (!empty($loginresponse->access_token)) {1151 //echo $loginresponse->access_token;1152 $accesstoken = $loginresponse->access_token;1153 update_option( 'SCCBPP_cookie_access_token', $loginresponse->access_token );1154 } else if (!empty($loginresponse->message)) {1155 //echo $loginresponse->message;1156 if (stripos($loginresponse->message, "Ask for password") !== false) {1157 // now check if we have already some password saved1158 $savedpassword = get_option( 'SCCBPP_cookie_userid_' . get_current_user_id() . '_pass');1159 1160 if ($savedpassword) {1161 $loginresponse = $this->loginFromSeers($cookie_consent_email, $savedpassword);1162 1163 if (!empty($loginresponse->access_token)) {1164 //echo $loginresponse->access_token;1165 update_option( 'SCCBPP_cookie_access_token', $loginresponse->access_token );1166 $accesstoken = $loginresponse->access_token;1167 $showloginpopup = 'no';1168 $alreadyexistinseers = 'yes';1169 } else if (!empty($loginresponse->message)) {1170 1171 if (stripos($loginresponse->message, "Ask for password") !== false) {1172 $showloginpopup = 'yes';1173 $alreadyexistinseers = 'yes';1174 } else {1175 $showloginpopup = 'no';1176 $alreadyexistinseers = 'no';1177 }1178 1179 1180 }1181 1182 } else {1183 $showloginpopup = 'yes';1184 $alreadyexistinseers = 'yes';1185 }1186 1187 1188 } else {1189 $showloginpopup = 'no';1190 $alreadyexistinseers = 'no';1191 }1192 1193 1194 }1195 1196 //}1197 1198 if ($accesstoken && $showloginpopup === 'no') {1199 1200 global $wpdb;1201 $prefix = $wpdb->prefix;1202 1203 $result =''; 1203 1204 $postData = array( … … 1224 1225 1225 1226 $url = $this->apibaseurl . "get-banner-settings"; 1226 //$url = "https://seersco.here/api/get-banner-settings";1227 1227 $postdata = json_encode($postData); 1228 1228 $result = wp_remote_post( $url, array( … … 2477 2477 $accesstoken = $loginresponse->access_token; 2478 2478 update_option( 'SCCBPP_cookie_access_token', $loginresponse->access_token ); 2479 $showloginpopup = 'no'; 2480 $alreadyexistinseers = 'yes'; 2479 2481 } else if (!empty($loginresponse->message)) { 2480 2482 //echo $loginresponse->message; -
seers-cookie-consent-banner-privacy-policy/tags/Development Versions/templates/frontend-popup.php
r2811087 r2817418 287 287 @-ms-keyframes seers-cmp-slide-in-top-bar{from{-webkit-transform:translate3d(0,-100%,0);-moz-transform:translate3d(0,-100%,0);-ms-transform:translate3d(0,-100%,0);-o-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{-webkit-transform:translate3d(0,0%,0);-moz-transform:translate3d(0,0%,0);-ms-transform:translate3d(0,0%,0);-o-transform:translate3d(0,0%,0);transform:translate3d(0,0%,0)}} 288 288 @-o-keyframes seers-cmp-slide-in-top-bar{from{-webkit-transform:translate3d(0,-100%,0);-moz-transform:translate3d(0,-100%,0);-ms-transform:translate3d(0,-100%,0);-o-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{-webkit-transform:translate3d(0,0%,0);-moz-transform:translate3d(0,0%,0);-ms-transform:translate3d(0,0%,0);-o-transform:translate3d(0,0%,0);transform:translate3d(0,0%,0)}} 289 290 291 @keyframes seers-cmp-slide-out-top-bar{from{-webkit-transform:translate3d(0,1%,0);-moz-transform:translate3d(0,-100%,0);-ms-transform:translate3d(0,-100%,0);-o-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{-webkit-transform:translate3d(0,0%,0);-moz-transform:translate3d(0,0%,0);-ms-transform:translate3d(0,0%,0);-o-transform:translate3d(0,0%,0);transform:translate3d(0,0%,0)}} 292 @-webkit-keyframes seers-cmp-slide-out-top-bar{from{-webkit-transform:translate3d(0,1%,0);-moz-transform:translate3d(0,-100%,0);-ms-transform:translate3d(0,-100%,0);-o-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{-webkit-transform:translate3d(0,0%,0);-moz-transform:translate3d(0,0%,0);-ms-transform:translate3d(0,0%,0);-o-transform:translate3d(0,0%,0);transform:translate3d(0,0%,0)}} 293 @-moz-keyframes seers-cmp-slide-out-top-bar{from{-webkit-transform:translate3d(0,1%,0);-moz-transform:translate3d(0,-100%,0);-ms-transform:translate3d(0,-100%,0);-o-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{-webkit-transform:translate3d(0,0%,0);-moz-transform:translate3d(0,0%,0);-ms-transform:translate3d(0,0%,0);-o-transform:translate3d(0,0%,0);transform:translate3d(0,0%,0)}} 294 @-ms-keyframes seers-cmp-slide-out-top-bar{from{-webkit-transform:translate3d(0,1%,0);-moz-transform:translate3d(0,-100%,0);-ms-transform:translate3d(0,-100%,0);-o-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{-webkit-transform:translate3d(0,0%,0);-moz-transform:translate3d(0,0%,0);-ms-transform:translate3d(0,0%,0);-o-transform:translate3d(0,0%,0);transform:translate3d(0,0%,0)}} 295 @-o-keyframes seers-cmp-slide-out-top-bar{from{-webkit-transform:translate3d(0,1%,0);-moz-transform:translate3d(0,-100%,0);-ms-transform:translate3d(0,-100%,0);-o-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{-webkit-transform:translate3d(0,0%,0);-moz-transform:translate3d(0,0%,0);-ms-transform:translate3d(0,0%,0);-o-transform:translate3d(0,0%,0);transform:translate3d(0,0%,0)}} 289 296 290 297 … … 1823 1830 .seers-cmp-cookie-data-hol .seers-cmp-banner-bar-hide-noanimation { 1824 1831 display:none; 1832 } 1833 1834 .seers-cmp-banner-bar.seers-cmp-middle-bar.seers-cmp-banner-bar-hide { 1835 display: none; 1836 } 1837 1838 .seers-cmp-cookie-data-hol .seers-cmp-top-bar.seers-cmp-banner-bar-hide { 1839 display: none; 1825 1840 } 1826 1841 </style> -
seers-cookie-consent-banner-privacy-policy/trunk/readme.txt
r2811087 r2817418 5 5 Requires at least: 3.8 or higher 6 6 Tested up to: 6.1.0 7 Stable tag: 8.0. 27 Stable tag: 8.0.3 8 8 Requires PHP: 5.3.3 9 9 Author URL: https://seersco.com … … 183 183 == Changelog == 184 184 185 VERSION 8.0.3 186 • Minor bugs fixing in Privacy Policy save 187 • Banner Layout position top and modal 188 185 189 VERSION 8.0.2 186 190 • Minor bugs fixing in Activate and Deactivate -
seers-cookie-consent-banner-privacy-policy/trunk/seers-cookie-consent-banner-privacy-policy.php
r2811087 r2817418 11 11 * Plugin URI: https://seersco.com/wp-cookie-plugin 12 12 * Description: Seers cookie consent management platform is trusted by thousands of businesses. Become GDPR, CCPA, ePrivacy and LGPD compliant in three clicks. 13 * Version: 8.0. 213 * Version: 8.0.3 14 14 * Author: Seers 15 15 * Author URI: https://seersco.com/ … … 565 565 566 566 $url = $this->apibaseurl . "get-banner-settings"; 567 //$url = "https://seersco.here/api/get-banner-settings";568 567 $postdata = json_encode($postData); 569 568 $result = wp_remote_post( $url, array( … … 948 947 949 948 $accesstoken = get_option( 'SCCBPP_cookie_access_token' ); 949 950 //if (!$accesstoken) { 951 952 $filterurl = $this->removeProtocol($cookie_consent_url); 953 $loginresponse = $this->loginFromSeers($cookie_consent_email, $filterurl); 954 // if accesstoken is in response 955 if (!empty($loginresponse->access_token)) { 956 //echo $loginresponse->access_token; 957 $accesstoken = $loginresponse->access_token; 958 update_option( 'SCCBPP_cookie_access_token', $loginresponse->access_token ); 959 $showloginpopup = 'no'; 960 $alreadyexistinseers = 'yes'; 961 } else if (!empty($loginresponse->message)) { 962 //echo $loginresponse->message; 963 if (stripos($loginresponse->message, "Ask for password") !== false) { 964 // now check if we have already some password saved 965 $savedpassword = get_option( 'SCCBPP_cookie_userid_' . get_current_user_id() . '_pass'); 966 967 if ($savedpassword) { 968 $loginresponse = $this->loginFromSeers($cookie_consent_email, $savedpassword); 969 970 if (!empty($loginresponse->access_token)) { 971 //echo $loginresponse->access_token; 972 update_option( 'SCCBPP_cookie_access_token', $loginresponse->access_token ); 973 $accesstoken = $loginresponse->access_token; 974 $showloginpopup = 'no'; 975 $alreadyexistinseers = 'yes'; 976 } else if (!empty($loginresponse->message)) { 977 978 if (stripos($loginresponse->message, "Ask for password") !== false) { 979 $showloginpopup = 'yes'; 980 $alreadyexistinseers = 'yes'; 981 } else { 982 $showloginpopup = 'no'; 983 $alreadyexistinseers = 'no'; 984 } 985 986 987 } 988 989 } else { 990 $showloginpopup = 'yes'; 991 $alreadyexistinseers = 'yes'; 992 } 993 994 995 } else { 996 $showloginpopup = 'no'; 997 $alreadyexistinseers = 'no'; 998 } 999 1000 1001 } 1002 1003 //} 1004 1005 if ($accesstoken && $showloginpopup === 'no') { 1006 1007 global $wpdb; 1008 $prefix = $wpdb->prefix; 1009 $enable_policy = sanitize_text_field($_POST['enable_policy']); 1010 // $enable_policy = $enable_policy == "on"? true: false; 1011 $cookies_policy = sanitize_text_field($_POST['cookies_url']); 1012 1013 1014 1015 $postData = array( 1016 'domain' => $cookie_consent_url, 1017 'email' => $cookie_consent_email, 1018 'platform' => 'wordpress', 1019 'policy_url' => $cookies_policy, 1020 'enable_policy' => $enable_policy 1021 ); 1022 1023 $request_headers = array( 1024 'Content-Type' => 'application/json', 1025 'Accept' => 'application/json', 1026 'Referer' => $cookie_consent_url, 1027 ); 1028 1029 if ($accesstoken && $alreadyexistinseers == "yes") { 1030 $request_headers = array( 1031 'Content-Type' => 'application/json', 1032 'Accept' => 'application/json', 1033 'Referer' => $cookie_consent_url, 1034 'Authorization' => 'Bearer ' . $accesstoken 1035 ); 1036 } 1037 1038 $url = $this->apibaseurl . "update-policy-url"; 1039 $postdata = json_encode($postData); 1040 $result = wp_remote_post( $url, array( 1041 'method' => 'POST', 1042 'redirection' => 5, 1043 'httpversion' => '1.0', 1044 'timeout' => 45, 1045 'sslverify' => false, 1046 'headers' => $request_headers, 1047 'body' => $postdata, 1048 'cookies' => array() 1049 ) 1050 ); 1051 1052 1053 if ( !is_wp_error( $result ) ) { 1054 $response = json_decode($result['body']); 1055 1056 if ($response->message == 'Policy URL has been updated successfully') { 1057 1058 $existEnablePolicy = get_option('SCCBPP_cookie_consent_enable_policy'); 1059 1060 1061 1062 update_option('SCCBPP_cookie_consent_enable_policy', $enable_policy); 1063 1064 $existUrl = get_option('SCCBPP_cookie_consent_policy_declaration_url'); 1065 1066 update_option('SCCBPP_cookie_consent_policy_declaration_url', $cookies_policy); 1067 1068 // update policy url in cdn also by update banner customization 1069 $this->SCCBPP_policy_update((($enable_policy == "true" || $enable_policy === true) ? $cookies_policy : "" )); 1070 1071 if ($enable_policy == "true" || $enable_policy === true ) { 1072 echo __('Cookies policy added successfully.', $this->textdomain); 1073 } else { 1074 echo __('Cookies policy disabled successfully.', $this->textdomain); 1075 } 1076 1077 } else { 1078 1079 //if response is Unauthenticated then its mean to show login form again 1080 if (stripos($response->message, "Unauthenticated") !== false) { 1081 update_option( 'SCCBPP_cookie_consent_showloginpopup', 'show' ); 1082 echo __('Please login again.', $this->textdomain); 1083 } else { 1084 echo __('Some thing went wrong. Please check url and try again', $this->textdomain); 1085 } 1086 } 1087 1088 } else { 1089 echo __('Some thing went wrong. Please check url and try again', $this->textdomain); 1090 } 1091 1092 } else { 1093 update_option( 'SCCBPP_cookie_consent_showloginpopup', 'show' ); 1094 echo __('Please login again.', $this->textdomain); 1095 } 1096 1097 1098 } else { 1099 $enable_policy = sanitize_text_field($_POST['enable_policy']); 1100 // $enable_policy = $enable_policy == "on"? true: false; 1101 $cookies_policy = sanitize_text_field($_POST['cookies_url']); 1102 1103 $existEnablePolicy = get_option('SCCBPP_cookie_consent_enable_policy'); 1104 1105 update_option('SCCBPP_cookie_consent_enable_policy', $enable_policy); 1106 1107 if($enable_policy == "true" || $enable_policy === true ){ 1108 1109 $existUrl = get_option('SCCBPP_cookie_consent_policy_declaration_url'); 1110 1111 update_option('SCCBPP_cookie_consent_policy_declaration_url', $cookies_policy); 1112 1113 //now banner settings are updated 1114 update_option('SCCBPP_cookie_consent_defaultsettings', 'changed'); 1115 1116 echo __('Cookies policy added successfully.', $this->textdomain); 1117 } else { 1118 $existUrl = get_option('SCCBPP_cookie_consent_policy_declaration_url'); 1119 update_option('SCCBPP_cookie_consent_enable_policy', $enable_policy); 1120 1121 //now banner settings are updated 1122 update_option('SCCBPP_cookie_consent_defaultsettings', 'changed'); 1123 1124 echo __('Cookies policy disabled successfully.', $this->textdomain); 1125 } 1126 } 1127 exit; 1128 1129 } 1130 function cookies_setting() 1131 { 1132 1133 $cookie_consent_url = get_option('SCCBPP_cookie_consent_url'); 1134 $cookie_consent_email = get_option('SCCBPP_cookie_consent_email'); 1135 1136 $cookie_consent_code = get_option('SCCBPP_cookie_consent_id'); 1137 1138 if (!empty($cookie_consent_code)) { 1139 1140 $accesstoken = get_option( 'SCCBPP_cookie_access_token' ); 1141 $getseersbanner = true; 1142 $keepwpbanner = true; 1143 $alreadyexistinseers = 'no'; 1144 $showloginpopup = 'no'; 950 1145 951 1146 //if (!$accesstoken) { … … 1006 1201 global $wpdb; 1007 1202 $prefix = $wpdb->prefix; 1008 $enable_policy = sanitize_text_field($_POST['enable_policy']);1009 // $enable_policy = $enable_policy == "on"? true: false;1010 $cookies_policy = sanitize_text_field($_POST['cookies_url']);1011 1012 1013 1014 $postData = array(1015 'domain' => $cookie_consent_url,1016 'email' => $cookie_consent_email,1017 'platform' => 'wordpress',1018 'policy_url' => $cookies_policy,1019 'enable_policy' => $enable_policy1020 );1021 1022 $request_headers = array(1023 'Content-Type' => 'application/json',1024 'Accept' => 'application/json',1025 'Referer' => $cookie_consent_url,1026 );1027 1028 if ($accesstoken && $alreadyexistinseers == "yes") {1029 $request_headers = array(1030 'Content-Type' => 'application/json',1031 'Accept' => 'application/json',1032 'Referer' => $cookie_consent_url,1033 'Authorization' => 'Bearer ' . $accesstoken1034 );1035 }1036 1037 $url = $this->apibaseurl . "update-policy-url";1038 $postdata = json_encode($postData);1039 $result = wp_remote_post( $url, array(1040 'method' => 'POST',1041 'redirection' => 5,1042 'httpversion' => '1.0',1043 'timeout' => 45,1044 'sslverify' => false,1045 'headers' => $request_headers,1046 'body' => $postdata,1047 'cookies' => array()1048 )1049 );1050 1051 1052 if ( !is_wp_error( $result ) ) {1053 $response = json_decode($result['body']);1054 1055 if ($response->message == 'Policy URL has been updated successfully') {1056 1057 $existEnablePolicy = get_option('SCCBPP_cookie_consent_enable_policy');1058 1059 1060 1061 update_option('SCCBPP_cookie_consent_enable_policy', $enable_policy);1062 1063 $existUrl = get_option('SCCBPP_cookie_consent_policy_declaration_url');1064 1065 update_option('SCCBPP_cookie_consent_policy_declaration_url', $cookies_policy);1066 1067 // update policy url in cdn also by update banner customization1068 $this->SCCBPP_policy_update((($enable_policy == "true" || $enable_policy === true) ? $cookies_policy : "" ));1069 1070 if ($enable_policy == "true" || $enable_policy === true ) {1071 echo __('Cookies policy added successfully.', $this->textdomain);1072 } else {1073 echo __('Cookies policy disabled successfully.', $this->textdomain);1074 }1075 1076 } else {1077 1078 //if response is Unauthenticated then its mean to show login form again1079 if (stripos($response->message, "Unauthenticated") !== false) {1080 update_option( 'SCCBPP_cookie_consent_showloginpopup', 'show' );1081 echo __('Please login again.', $this->textdomain);1082 } else {1083 echo __('Some thing went wrong. Please check url and try again', $this->textdomain);1084 }1085 }1086 1087 } else {1088 echo __('Some thing went wrong. Please check url and try again', $this->textdomain);1089 }1090 1091 } else {1092 update_option( 'SCCBPP_cookie_consent_showloginpopup', 'show' );1093 echo __('Please login again.', $this->textdomain);1094 }1095 1096 1097 } else {1098 $enable_policy = sanitize_text_field($_POST['enable_policy']);1099 // $enable_policy = $enable_policy == "on"? true: false;1100 $cookies_policy = sanitize_text_field($_POST['cookies_url']);1101 1102 $existEnablePolicy = get_option('SCCBPP_cookie_consent_enable_policy');1103 1104 update_option('SCCBPP_cookie_consent_enable_policy', $enable_policy);1105 1106 if($enable_policy == "true" || $enable_policy === true ){1107 1108 $existUrl = get_option('SCCBPP_cookie_consent_policy_declaration_url');1109 1110 update_option('SCCBPP_cookie_consent_policy_declaration_url', $cookies_policy);1111 1112 //now banner settings are updated1113 update_option('SCCBPP_cookie_consent_defaultsettings', 'changed');1114 1115 echo __('Cookies policy added successfully.', $this->textdomain);1116 } else {1117 $existUrl = get_option('SCCBPP_cookie_consent_policy_declaration_url');1118 update_option('SCCBPP_cookie_consent_enable_policy', $enable_policy);1119 1120 //now banner settings are updated1121 update_option('SCCBPP_cookie_consent_defaultsettings', 'changed');1122 1123 echo __('Cookies policy disabled successfully.', $this->textdomain);1124 }1125 }1126 exit;1127 1128 }1129 function cookies_setting()1130 {1131 1132 $cookie_consent_url = get_option('SCCBPP_cookie_consent_url');1133 $cookie_consent_email = get_option('SCCBPP_cookie_consent_email');1134 1135 $cookie_consent_code = get_option('SCCBPP_cookie_consent_id');1136 1137 if (!empty($cookie_consent_code)) {1138 1139 $accesstoken = get_option( 'SCCBPP_cookie_access_token' );1140 $getseersbanner = true;1141 $keepwpbanner = true;1142 $alreadyexistinseers = 'no';1143 $showloginpopup = 'no';1144 1145 //if (!$accesstoken) {1146 1147 $filterurl = $this->removeProtocol($cookie_consent_url);1148 $loginresponse = $this->loginFromSeers($cookie_consent_email, $filterurl);1149 // if accesstoken is in response1150 if (!empty($loginresponse->access_token)) {1151 //echo $loginresponse->access_token;1152 $accesstoken = $loginresponse->access_token;1153 update_option( 'SCCBPP_cookie_access_token', $loginresponse->access_token );1154 } else if (!empty($loginresponse->message)) {1155 //echo $loginresponse->message;1156 if (stripos($loginresponse->message, "Ask for password") !== false) {1157 // now check if we have already some password saved1158 $savedpassword = get_option( 'SCCBPP_cookie_userid_' . get_current_user_id() . '_pass');1159 1160 if ($savedpassword) {1161 $loginresponse = $this->loginFromSeers($cookie_consent_email, $savedpassword);1162 1163 if (!empty($loginresponse->access_token)) {1164 //echo $loginresponse->access_token;1165 update_option( 'SCCBPP_cookie_access_token', $loginresponse->access_token );1166 $accesstoken = $loginresponse->access_token;1167 $showloginpopup = 'no';1168 $alreadyexistinseers = 'yes';1169 } else if (!empty($loginresponse->message)) {1170 1171 if (stripos($loginresponse->message, "Ask for password") !== false) {1172 $showloginpopup = 'yes';1173 $alreadyexistinseers = 'yes';1174 } else {1175 $showloginpopup = 'no';1176 $alreadyexistinseers = 'no';1177 }1178 1179 1180 }1181 1182 } else {1183 $showloginpopup = 'yes';1184 $alreadyexistinseers = 'yes';1185 }1186 1187 1188 } else {1189 $showloginpopup = 'no';1190 $alreadyexistinseers = 'no';1191 }1192 1193 1194 }1195 1196 //}1197 1198 if ($accesstoken && $showloginpopup === 'no') {1199 1200 global $wpdb;1201 $prefix = $wpdb->prefix;1202 1203 $result =''; 1203 1204 $postData = array( … … 1224 1225 1225 1226 $url = $this->apibaseurl . "get-banner-settings"; 1226 //$url = "https://seersco.here/api/get-banner-settings";1227 1227 $postdata = json_encode($postData); 1228 1228 $result = wp_remote_post( $url, array( … … 2477 2477 $accesstoken = $loginresponse->access_token; 2478 2478 update_option( 'SCCBPP_cookie_access_token', $loginresponse->access_token ); 2479 $showloginpopup = 'no'; 2480 $alreadyexistinseers = 'yes'; 2479 2481 } else if (!empty($loginresponse->message)) { 2480 2482 //echo $loginresponse->message; -
seers-cookie-consent-banner-privacy-policy/trunk/templates/frontend-popup.php
r2811087 r2817418 287 287 @-ms-keyframes seers-cmp-slide-in-top-bar{from{-webkit-transform:translate3d(0,-100%,0);-moz-transform:translate3d(0,-100%,0);-ms-transform:translate3d(0,-100%,0);-o-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{-webkit-transform:translate3d(0,0%,0);-moz-transform:translate3d(0,0%,0);-ms-transform:translate3d(0,0%,0);-o-transform:translate3d(0,0%,0);transform:translate3d(0,0%,0)}} 288 288 @-o-keyframes seers-cmp-slide-in-top-bar{from{-webkit-transform:translate3d(0,-100%,0);-moz-transform:translate3d(0,-100%,0);-ms-transform:translate3d(0,-100%,0);-o-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{-webkit-transform:translate3d(0,0%,0);-moz-transform:translate3d(0,0%,0);-ms-transform:translate3d(0,0%,0);-o-transform:translate3d(0,0%,0);transform:translate3d(0,0%,0)}} 289 290 291 @keyframes seers-cmp-slide-out-top-bar{from{-webkit-transform:translate3d(0,1%,0);-moz-transform:translate3d(0,-100%,0);-ms-transform:translate3d(0,-100%,0);-o-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{-webkit-transform:translate3d(0,0%,0);-moz-transform:translate3d(0,0%,0);-ms-transform:translate3d(0,0%,0);-o-transform:translate3d(0,0%,0);transform:translate3d(0,0%,0)}} 292 @-webkit-keyframes seers-cmp-slide-out-top-bar{from{-webkit-transform:translate3d(0,1%,0);-moz-transform:translate3d(0,-100%,0);-ms-transform:translate3d(0,-100%,0);-o-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{-webkit-transform:translate3d(0,0%,0);-moz-transform:translate3d(0,0%,0);-ms-transform:translate3d(0,0%,0);-o-transform:translate3d(0,0%,0);transform:translate3d(0,0%,0)}} 293 @-moz-keyframes seers-cmp-slide-out-top-bar{from{-webkit-transform:translate3d(0,1%,0);-moz-transform:translate3d(0,-100%,0);-ms-transform:translate3d(0,-100%,0);-o-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{-webkit-transform:translate3d(0,0%,0);-moz-transform:translate3d(0,0%,0);-ms-transform:translate3d(0,0%,0);-o-transform:translate3d(0,0%,0);transform:translate3d(0,0%,0)}} 294 @-ms-keyframes seers-cmp-slide-out-top-bar{from{-webkit-transform:translate3d(0,1%,0);-moz-transform:translate3d(0,-100%,0);-ms-transform:translate3d(0,-100%,0);-o-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{-webkit-transform:translate3d(0,0%,0);-moz-transform:translate3d(0,0%,0);-ms-transform:translate3d(0,0%,0);-o-transform:translate3d(0,0%,0);transform:translate3d(0,0%,0)}} 295 @-o-keyframes seers-cmp-slide-out-top-bar{from{-webkit-transform:translate3d(0,1%,0);-moz-transform:translate3d(0,-100%,0);-ms-transform:translate3d(0,-100%,0);-o-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{-webkit-transform:translate3d(0,0%,0);-moz-transform:translate3d(0,0%,0);-ms-transform:translate3d(0,0%,0);-o-transform:translate3d(0,0%,0);transform:translate3d(0,0%,0)}} 289 296 290 297 … … 1823 1830 .seers-cmp-cookie-data-hol .seers-cmp-banner-bar-hide-noanimation { 1824 1831 display:none; 1832 } 1833 1834 .seers-cmp-banner-bar.seers-cmp-middle-bar.seers-cmp-banner-bar-hide { 1835 display: none; 1836 } 1837 1838 .seers-cmp-cookie-data-hol .seers-cmp-top-bar.seers-cmp-banner-bar-hide { 1839 display: none; 1825 1840 } 1826 1841 </style> -
seers-cookie-consent-banner-privacy-policy/tsvnsync.tsex
r2811087 r2817418 1 c31bf1e6e2b2933092c3304c7734c12ed6cbe4ae0581be23b4ca97c52a7d76e11826407fd2896fe8dcc2894e8abb3fedc9a50ae67d52a0683f1a94eb2194d7507ecdc901a81b9e211937928f71fab0d05e01c0c420f38ec9eed8ec596858e1a75ac3a1471d67a276d965a39ca3a033810309359eabf3c1aa2643ce1f877bed59c1a076f2dcd9846d30ba2f1366e37c01280160939520632bd13936911fc82a70f981369ffe440005a999856cb93adde0d0f76533d262087745ddad43e895d87867a0e03fb670047ee52163412c60916b218bc1265535462c58bd2a3af82bdf21038a82384a211c43997a1908122e9afa1876c9431d0088837d4c3942863bf0dbdae5656f682d2fc49351a966eb70335aef43fae32a9292f10628f2abfe754c9455041dda46a8d84c67ea80788cfd990262b5370d9f09090e11ff9eb48f58ce5e4cb9097c246202aeba07df619ca114c1f8ab0166ee993e3d5e152dc7b9ad60ff72c9aa904f34c72d7ae8a37cba042863cc15fcd9fd12e4e89dc96ecdb95cc96d60fbdbb5a0efe363adaabf0568f266024116acdfebd1da96f43164dd53e393e311c7dcb09d4d9d644ed944f8d419aec720e02afbacafd165631cac54edce668db9bb6c18fe3cbb282094ea1980dfc94a9f48202067e9aa218fb43dc128e4a9b6be67f918433b01cf8a027a056f423e24a1edabf45e859aedb6445bd2df72711b1756062284fd53b16a98eb639ca54c511890ba45bde40d12ec928dc02f63283d32cb4cadc12a0f4c16dd0b472185f4818cb8a4809bcd8dda4d45f46e55eb45df3687694c33a9fc5db05ed987441f82db5b7115a8ca4445d2342dcef511e8ed02da7c933cce4bed7c933b07bc3b5c997b68c2cf2832a136dabfb202be443c9a9a27d758778db5bca1d6a7a8d8ec5768fb19bee8649889e1c25b5ac94ef9030d829c6015f31dce36ce4fd61ff3fdefb20e4b2c20b37aceeeecfe66b0559807558d0aef1f8b58874d66a480c819cc84a37396e373c697d02abee52dfd630ac4e9e6c7750669be112da2788ec1e4bb1d3ba1072e7b60ae979f2b9b94be56d5f36dd9ed7b87754868b6526270aeb29b6c0e5e7706b94bc7eabea6c2b654bb296146ff9b1dbebe76dfb0298be8fb64b3037537de17132f56eef405fb00e2defffbe84f28c5381bfeac6c50d17099ca4f7c0d7a41c980082d05745cdc8018281261060a4f369126bce480ea5b263585fe2be4f127d1feb751ed88cf07a4d5484ccbf84d67c9040fe2cc29ff38ea97fc5ee43f2d04cfb36ddc4329ad60533687fdfe30f10a10ae7ffe10a97cf9312c7489b7cb91b5a12e334595200d331079ee3f85dfcd9482f6c276deda145fc11404baa8e29658b68d454322b499261fa986c3456ed08af84614e612e019510fb5eb9511beee77d9114c6d8f923c3d488d3c3110d7b8600f38b457d4508f7a5da5fabd0a304ffdc48da9ba1375faae3e0d3099333572defaadd542bc7f11f0f3b543cc2f16dd04141f2fae54d8724dc3f49d6544b4be166f857b7a6bd72353509332b7ac4a35e781260a17aaa5a126a28eaacc853df80ab3d4cc42ef901ea0fbb87f870105e4d57aeb0d7cf880eef6c9e7e4688e948b0c5a7d8e51726ca8f28285ffafbb7bbeb7306c376bb27bcb2cab5d04ef81152324d6aed9a7c86f584fee32f38e61f38c7f7204962ac684014f2c0e48deedaedbf1a89cb040ed58fc89a7775a94f3bfa2c0e051deaf33f8d364529d4bfade83bbd18e5f9b6fa39490ca256db0a4f239881d2db068ec4b0725247f69480667d6b9c914063d931d2e0968945eea823c3897e5b1d740f3032945a20a414446dac626f925b882bbf78f2f85280af145b50ffbb1d697285d4a45916a45adbdff471723a3834120f54796795839f6aa7aba16e402260ba859f55483d7da37f0635e4432cd85dfb21fdecb8fae48bd2cd7e7f30b40ee9464d5fb1df25b5100a462e68b622a7921563c1efaebaf317923c3fdb3168427cdacc9e019fb3513c75578cfc00d0fd18736458c548e7732cc3fbc3168c168359356878762396de5ef3af2f17456af511b619d60fa48f24fdc6602f049e5b53b0e914ebb58b73331edb5c859cdfc4ecd60be58d7106317a58340cccddc5f66ff32443ec753fb466255eae8f42aefe796126251880d47edc496df1e18976d0bce5fe5bbe8dc0c40f460eb47b478f5d1c81897192ac8f635e7c6adb56924b8909cf00398f7f6c9cab55ac53098de4c859be748fc831e77054606ed556032af619fd57aed3ba536b45bc58a76fb4ac6912398219f22dce33d64e14186dda2df4c21262028f1cb6070cadbaa3299f8f3ee7753db746721cee1d2432ee7da3538ed9fddfb5c17215a7b81eb0f60f6eba677b91a746417692ebf111507de5d5075114320f0c028d7fbde30e24ed12544168895b9e67d0252dff804a8973a9b63e85d07ea54ae52e631dad1d99a53ce43191fa4e8e6a03298a48006c4d71ab16f3abbcc67af6d29378db2d3703ae9ad2444cbff83cd9925fd30de6939a9b596c0b21b47c96eb5c6b7512a7b633c795e77af989bfbf11985dfc540bc04a398801b15cd46e5c86e70722aefbc902a3d3ccfa52ec1d60c2954075c7a7f3f57e711fea4d5c7f020602517dab4baf82bb1b5c231cd62ff2f43099539ddfbb7daa5ca65364d2212edc699c0db8c0f26fd42100adfaa76eed10d8eff5fe804307152626c350719084664e8b48a5c78bcdd62ff5ba2b6878629936b4405626e6807b58d822f0f629b0a5bb2184a6c9ddf7d5d45f5f38531b51c346cbf66649cf05761dc5cacb653bf26e5434db0760b1b0fa205f90bcb6800815bc2da22a9a85c20d1c0b683dd0b5712e9e561d8999a3226d0ab2549d9b02bc4edbf94c50e4cd41d04f6e52ed9a09386548e560141b5e5990e55135c4ac1ce859acb0cf883a1f873aee8074df266f2c02fa2e534711533451124cb75bf6399ad6d57b03489c1a9c5757eb9320610570b6fed4e889ee380adaa5b8b628814e183247356f81b2ca812f925d1f2030223fb0534b564ebb005bb14510ff28e2d9b5e259c9267cd1d304ea86a48b99558d3fa103e0ae6bd579e93b57705276dd4777e5e7c564da13dde6f1c7de7d0a18fecc6c659e4c58bf996982829674b628708d760889a72425e756a3d22f98f243325b518364cea358b14124dca9d3614469f92e73fdb067dfba551449ac26dd682635d02eddd2bb1448e995b8966f66f119c40270f8a1972ded76395cac9795def19c4b28d9029e8c39d03ca3b2dc37861b5f58a4fb82321dfe424b3839db8b66d7b80075624cf400888731c60eb1b173bac99ffb8390f903625a6cdd41e0ea91a79363edc822c2752d5ca48b396a2590edd5239788760ebcdac81a1ccd21e6d27d440fb4bd8228aa817389ee397f7a6cd6139ec0aa94857a1c0b6c2036fe53cda46ca687537263d1478ca80441a1548479be4c55c4974b0925ab88034d9f6308d4cf21f1c62d600c49c69cf4a4e878d6dd52efe6f0e58ccf093affbc85c67fa55d3d679f03b4d4a108481d576d88e3a0bdf6b72400fc73fd5475fe7abc80fa888407a2fde575bdd7c9b08e99f777d6e7e8fd2c09107cf37d49e5c6fa562607eadd5837cd40e8ac755100ed308c4273e71b9e70e4bcc7fed7d46fe898dee537e177620af9afb6792757846a536d790b17adfe719a642d74dbaa34ff8ad66dd82ad3d9667151254b0cb788d1c421e4937f5751af9fbf4b89804a0792003fea7c3cba075748065d212ee364d6f1a5829088166eb79016728c972f025c67396841dd7626634d2be46a931241dc47d9c96d7084a2725de476f3d4a2614c61b3e24fc965aab92c8da3b269efc4b50f1c4a35a8800b224c3a21b0b038613f175d1f706937877955888b80329e4f75b353f42efa53ec2a9a668ef000dde1f5cfc8f3be9560a304b564c42f412e93a7a15750022dd1f206b19b5eb374d9f57b43d75fe5c92bf44da49d9a5efec61d7cd2508aaf8d35919ec9a475123e32593fbf873738c8520ac6fb14ce43238c15841eb29047c25a431deb7261228deacf564f6bd2498979c95bd3a94cc6d3cca805b4d87c073bbcdad58c0199e0868f5ee731495d398a0c7894f4c0d1d14b74e43d28ecbf6e94e8d4bcc248e5d5602160d5bb8fe4ca50b4954e15c0d790d28217f385362bf1f60f0253b308c6fd413c8e35bf713b43c8f603d0711954f24f0a2c65b2d691e3e531a8d5e626b51951ce432c3686f3ed47f66dacb92371fd64ef2f1a23dbc049382c851bd5a4ea34bf88d4c72f3d94ff214d7a8b741262077f6edc39fd08f336c323a09ea745b7e934e9f06a473e5a8cc75b6e841af757daaec8374b740c63c4fbca0db71ae3e581c766247e9081f34df4ab24d5c5f514b5a5bb56ac4b991588d9315a1717a592375acc4401992ffea62e1d25300f4b7958a032b5e3b768139ca054a8cca2b3d3996ed5067e4f4b20765f52cb849cab9fb4b7db0dc92644d21c1812a3e62653950b5b6af14819436989898e189d6777a0b8d41b069a35d2a20c9a2221c703a272b2c7f3c5b3c5a5059c1a20070684420161a15061bc2dd74193ad9fd2b9d640a0e8e997a0efd505b9b030d80dff24dd89bc4af98aa8a3075bfd41cc6abac755675b17bde7588baef4d07721eb7f3b4cf3b118441dae8e7e89980440f2391a297f61070b9cd9f9011585b7f970fb54f4cf6e8a41e99d2b671e91eee8cef97e36111b73add177c04628f0cedd56deecad4314a443111c0ccaef689c8c3adc521d7bfefc0a4b8547d0036be13ca93eeb11d47acd26277cd9d42e3e8c0509333cd0cb88ea413258ba355fd023cd767d2f1feb47ad18e10b2a61d2083b8bdc6a893ea0adf31392a5e73d30de9dc874bc4b5d0d179221bdfd7d30048920f53d0920529245b306b378bd932600846bcaff147953234f9a8ab7e6c5931184b0a440b221d1d9e17849ad62878256a57062aad960441bd972f72bac0306d0c7406cfceef47e621e279a8f4167d7cbfaa93ee5dd01379d2c96c1184d013e78da9ba5793abc552c7e7b0a16cb7b35e54c6eaa1e7b1124d6a6b948466585145b7be69c268c8e294c1afd4aa05b3fc09a75cf79e2cd93712c9c20d3c39c3bf4006008f630d89c8806e4c5efeea9d4f01c49d1a5a16f94666214e893545b26592cca3d8b4de1e722b3e16904e61030acedd4d542a47935ca60ab55ba29902b72e116f72a125bc25f7d60bcd169e9d369aeae8e931735090bec109b5a14d88209967e9f7f8053dbf37a52ca057a3d68dceb804a43b9c3ca85e31a59c98238fef1a1c879c76321a8201ff19a00b521eff2e6e14575672167a491128beb8a97b6a943f0c9da6f50388a66d5ab71c2a33be6a04fac3ef8fa7bd8577ef3a256de00dab51a2ea96712c33075269efd619f46cc5369731358fee8724d1335c4e1170bb75bf4705b9eb66d49da8203973b89ab8fb5e4d58cb8961d54e695b1bd2f341a80d2e67d10e261175d1840d3424d4e5f49862ca2d465ee61a699a73fd3e04e111e8a6b06b5ad27a6c6f9d1e30b0989bd3d956b0a3707d560a030f9d71c14d4b35ae2d3fe2b4ba8de9f327d3e63ce06c4cf693c2f580a190ec2ca865e5853c2f5a3342d78f64e6b3db5694075a70aeeb10253084201288e807ac90c744da4bcbfc69671ee9e8953c79a7a3befbee8b25ac3a6efdc140f4fe81ecf49936686b2e804c8aa3a6ed518ee19a08d31b5feccbafe2b96211714cb759aa3602cce4ac2508a40aa8063e0c21377dd8498e6012ccfd3943a528ca9118982a8b999dffc2078813aa67d76588a20aaef07066828c1e343d49cc0c9685a11e5b29de7fbb8f2b07760a067442204719306d8e09365e347975535139bcf27bd8855d1067d9c77cf2543fbc2d9734dee573c00defb100982f7e7b769652c77387cdd4db26a9670a22b0da85862e1442f876cbbcc5dc79a58091b0926fa93df0fdd8937b95330f453b83f52c43e25f20260221b5f3bbed163e74bd96be0b701487fc6d7a06f6f2774893fd05ddad526dda5bc5208fce127c7df9190412b7b864e939894c1bf8cc426ace767c8bdcabcc94ce8fac00c1889916ffef052db7f4a962c966218128dec51efed4baf7bed40211dfaceaf8864dbac8c9af813509f81da4d2c08e16a985b5081c2bf047bae17d9279c2df656a49acbfb06d1e1af949945d1b196b724afd1c073c9a216bf59342cda9ee469a72bd95dc0ce066fa2ef742281b3fa25b627ad30e7f1748b8d5288a31aa6317bd9a8a6924d0a006f1cb43143034181a40a6d7c6d6620336e6619cdc2c9760fdf261754ab770cbbf2e230019e8b56b8358515981e133a63d01caffc21050c7e791aaa530daa2157b995143ba58a892f75d252b80f796c29d911c82b7d5bdda120d6a6b7637ff006795a36db50287143bd0b17869d04244401f61eda1329dfdd96b48526ba93eed700f3583fbdc82e819c6f6554084d04298aea61bae8db30d1fd359827bfec1e61e628073f2032a529f584f6140996f0005528a850f8866517a1e2567c6667ca48d96ae6d269dc8c91f0bbc6b36985bc8f9d13fc9af774410f64f4fe13309aa763d3db6faa277e079c77810d9ad336c588c05477046cb62c34f2551d35672cd6d12d928aa99952ac3704d6e35d52a73b7f98be5e477c67c0703d38ee4f7033a1cf27fc663af8d047a436a0946c2ce19cba7ecc9307f0a452eca3fe1b51a921631ff0f9584551c7630f7b28052ad7bb3b1b83a9efcd6e80f4ba4c72411dcbca0b1a2be228d67be2d58d9603d7f7a7bbc 6902407106169d7838253c5897f2b0a8c0d4d5e40ef0cdf71640e4395b6dbdd99e6016917b9a568e498c92d98248c83497e606dd9fb453ad4fee606d091bbdf44e4cada4e6b12e36c78b8a9f3aef3e75c8ccb6daa555f61080a29845a204e523d3512fa492e547208d82471b39306ec7a129de0fb0328a2a9c10518bcbb6342bacc74bc1f08cd592216ecc9fdb275e1d509ed3fcdfb2c6f4ac6eef60a6839fd83d5664a931a9b083b2a0575731c9ae7bb9036138eb80eb1c217ef66fd51ba3f2b2c6849992038e8c2d937615e1079e91871e855c320235fa28d186179a07ecf26c0a717e5525828e9fcc6e8817e65a26de25b0d52d5c2b91a2da60ee20c18455e8627674740e7a04faf4618072ab16251b394fc06792bf04b5b93f562eb03908c8cb3bf019505f425eb54bc08a2e309f06162b69b4151893f02ddd48b16f7cf1311d174c2b00df8796574a462b24e0bd6d9c83a7b5a14f5a7000823f455b357b5ec6a95712058bf82c8c433c23dd77c2e6238d651f0d56dbf1fbcce3e95b3271372d0c95e6cd8d4d444600b690ae5a42db28c449f96420b0a2f0764639de48acca2d964910f60dd38f156f7ecc588249348cbb394dba03065204b6415de39515523a29f0c349718d3c57d985a5a2e17778fc0c9e2249e99df4b7fcc990a37a38fd024001fbeda7b6da0f0e67ee5e2311623e6d4f17d31f308ecf928cc40040be94ab1cee0fdcef83997f14d3850aca0d48c10101735456765c8da2d06ba86bd57cd4bb37ac3e70192a14fe292b10c9c396ff3ea604cd11102faf75fea36fdd9a639931437109c44eb7f74e02110b3bd85310f487af2b5d341599c283a78aae908b18956fe13362749d6d1149d4a12bfaf6d5ed199a40bead02c01e03890023fda34f3b134d082d908bee06d75929cb02b8c4e947c523a4df5e5da87274d298abb68e7f841d9b739d8f965a0329ebfeabe02fd4244f2b5582aa4e0d3af8bd571a5c71d674bee1646b1de31f559543797559b47bb1be61d0e8b641e515c1465c053eda1bedcafa4f06cb4e3121bd0148e5dbf4c5432a4aff5c2a98236f81667da09f797a2ff52c42240da463be0b3748967cc03198398e2203df5b4d29ed6a46837601c8be732cd0268fa6424eb083e20ce2dbce725296e989242234be58cf1882726dc600553db4ee856fafd305b4983bb1042ecc12abe55d70bc20d8efcb7da490902e4bae63dc2c2ef69bf4fb7b5e935319ac4cf4a26fd37b7a2c903d6151b60891d0821ed01d1f1ad052df279577aec03b633503de951ed6515f5acd3db49e04c69864578fbf6906bcaea3f6f7e15a6fef7d3d3d5ea4deb5e20552bc1d93acb1f7e5d2eafe73578accba7ea53c899f32674419b02f51d017f1534eefa9dd5be004018a8d31cc23582c7e4ba7a6a459e5302af3ffc09896a67914bc34e2274d7d9e549928e283f0d1cc8484be4ea801cd9b48ca7dd603459ed0bea8fedabcbfa8a590a61d18d96300fc2de60d38ec8e4fcf953a893037019deb6fa06fdf950dd85cb11130375e0dad6ae19e249b73d2d6a7d459028050f6fe08a94c9fb3dee511015fd93ad4ca798f38188b5009696c54f40e46c1486cf5c9819edef7f3cfa0b0a930ff44e7622ce7e200873ede20ca72e11b73464d93681b9b221bf4b7e4032f4263401aeab27ad60cb470a968b65159d0aa41a898fea6e4c27262e5fb69fb84e4071e4b8660211896b707fcaa869f8d4b95702a95726b9f23141710ea8989257768fa340ca5490936394ff53cc511de417a0d714d374beab1cbc74f713244c4ffdaef1444e106d24bfa3d9fdb22036f139ae0ba83bb911be5703590da708d8242fcab7aaed2102550a042106f920a1fb523c40e97ef3e3eb57965237b64a8e5168fecc7c72adaa801fd5135ebaf63dd2dc92e2f5305a50b06920adc843039aa4de60a14440a17d9453ce7051b98de3e9adcf2997afcfc3fb1843567c89e47eeeb1a9542dd8731f2c847add8d6f7703fff70052cb1eb5d9991d4b9476961b1643137a7e419fb6b320e22f054641d5e3d215ab6f4f1df150e4aa04d8b3c66e1343d60ef073ee01900a13d0c211170e4ead04c10adf2d056d538868606eeac343dc5546dee65531caf5d62c0c8a21bc9b5f114b5ee63a58eee7ed362c066e59caefc72b0d55de3ab4fe877eeef08b57ee8dda62e45030a0f0cbe23e52911de0954f15464028b47c88c43317c3173fcec1fa509eaef7247001f8110bee68d26f5a32f9961c4d3a6e9f89af6fa0827fe02be14f2000512a19fe3f7bfc53b4bddf3d4609155619571e821c6c699e1a66ee92e50b759843448c5a1a77956e5c38111139b045da0f2f203f4ba2fe3efad3560e83add6f8c29fc24c81ec62817e5a33f4ec4cc86dde1be09529d90f047e2639fc7027de2aaa3a1453aee773b453e4511efe8f0f882be3d541901c571b6d0619c0fd585b2a702ac68cf928d86dc7db8decdd284624ce9b94579500bd8274045ef7a149f3bf613401ad7c5add38a9a89a678cde344422cca3caeed34c5d4f1c8a18209484138698f3227319ac0d627d9b22f66af9518d6439b49210edc94069cddcf644c6c11b35cb9819f771a8466ca88088f02ead63755026464078cdb9f70d27190999b83fdf9728f92141531c93a972d5c824d4958f53305d80e39eb6b0717f5883a210a21e42abf5895223bfabc02e68ed478c310196de0d27e6fa31f2623574230d16cfc2bb670945a094cfbee374305592c8adda04a2dadae2111e04a3a2d37d58f4299ff58538c2f601f46bfadd41f08f5992cee6bcf4d498527c93c9aeff24b900bdd4f9ae4e345d0afb79c483baaabd3a5a1fdc499b22f31f323295390f0edcc633d45de6614ab2d8efccb9ea482a52de722cb1bbdc5e09445dcc998949bf9a83bb9ac68b90f4db5597d157e14bd73486b524c8c80f9b3221a552710f9cb64c451c775b0e44b867e9370e30db570435229f26618cdffcbd2cde35c3fbce45676e5ca0ef3207ed47ec803475656e4bd0e0b33197eb94f0ce4a3665c8054e46bf7a822c61b6e8e30994d3bdedce8d3bfd4a43bde15fa5cf48a8f8cb23381e68806b38f7697323030cf7a98a09e8db83b2fadd8c11397fb64f4932cde6bcbae3aaf922c23beaab917b622a1b73bbeeb603ba010512357ccf3a2fef35ffb455578bb27dc5aca24d1ca5f4e6a9488a76cabd2d8d030a8f8dc86bbe6490ee8d688d8ff33ea82a84a1a143d87b1e924066e5b31b2ab6826343cc61ddd06e0580c9bccff8235128c97833a39068967bf308e25665ea81a7bb6ff0486fc1f0ec1d0c30b87e4a7510df6e1e3870a3e5f2871ecbb63c159877d69f208f2968e7669529ad32c0b094372893dced805041b680fb7eb72214b606d5e6f0c94f6e6bfed3d172fbecbe2e50f3735b72a1c5fde7539812e9a77e9207f5c45e1c33d034090d5acb1f9cd5623e7860049a8085c4f0bccbb593dfd8d0ae8a07e7328df13db94e0165b9b13666971a7ad135f64ed77b4f3cf4eceb3a76f67dec408786cf3706990b0d4e7d6fccec5cb12af13130a11ab1192475e56777c52d0a008c8910830ef94c3accdf1b9e906bd53d04024e3c28d58cca1b4d8ded5148ed87800aaf072d8f33cf0981e33da2c3e52270a24604bf76dc4e242883c8ec74b1fc8216652d430c3c5caef15eee57653803fe39f8015e3bd4acf3ff7bb8d3007d8247523816ef45451b9facf71e853e35fe48d3211d3d50fcbbd431ccc24e2f4210433d35f034d50cc71bfc594b65a1e493b49c9e997940a7ca1bb71e3be0e4cd94e9b0ff213c5e518872a6b55c65a6868f7173cec13617921a21f7791a3b1eedd0c984723dff896eb25feecfbfdaf6952f01b7363f357c6e4f05be666859edee26e848f8c4660ee730bbae1f4b6de37fa5f775680cbc3f3b4d99e7f888f43f72c4b06bfbbbb6987a41fc37ffc8df48ec9a50e6775d66b10a9f5582ca0f4f3e48818280dc5aba440f4f8185d76214bd288d57d877635255f0cfea489250d61f4a0950284e566f5216ded85a6737eff4ca5511d38a94e9ff0bd40180c58e82012389539385697ff0b4f636c3e5e2fe210ff41d14e295b797df4e849f4e15e808e9e850531d88503968e9220054b684b22bf9e8200d16438de39380fe2c9ca4951ff8b261d8b30aaf44aaa3c6b8abff6ebb99ed324508311031f66657475ef3e3d67c4c61087117f3a2336ee849d5a5e4576e2b43c03ae499687f66bb45799589411650c3f224a8dceae65b689932ca32f46b26482e2b94024294bacf28cfbd608277655b922aefcb3bc6f53ce14591d90239e3178183b9fce390e32fedfeebe6a698146998fba5a8e0c4bf5f62885f662f3744dc31dd041db4fb6885f75b0f9617b561b381c59daf2184918c1bb596bfb58a5b46ee7f05be1e87a446f23dc106f4bdee1d488ed0f9d851a14bef3f3c15ba8b3eb30cb15f8b7cea4013e4381525949e7d6ba719676ae696cf4e10fcfe9b31e511c6831c2290b2cb8addacd0833b562ca9c5732058cd6cffde16ab504df0760567010a16156578bbf1b5412d16e6e6a2b49110b9949bcccdaa746f934b5256f774b7426c40085fad7b2f55894f3dff92182c8f8ffdeb15b48bf10fe67c57d94fda53dfcf9f0a1b82fd6a23d24d6ff84a9db9d6ae9009c9b11cd9020c442eacb59e1e15d5fdf7055eba4c546eb5c3873887066cc7e8a03529497256b59847fd10726b2495aa1702d3a5a61c00956df66d0072db7786ed634c37afd9cce1c1243f182e6f4da4d1a39ae81b5a824300c5a12cba9aec6581238406554b31b5ecb7b1021685ba2bbeaabaa65ee322a23fd53481cd643a06ee5edd7ad3f22f4ff6e6b6caf4e65d1e2e69964137af6364e331e11083d52ee90e957a7fd130229e543bcc65257360389b99ec86360a6d0ba80570e8e5963f04f7684b083ca4d872037f8fa2c14ef809f0544b0f0e5118da0b5e5194f07439a26d9b008a0a2308b6fe90d2ef25cb98c0280660bb4d2cf9c72742e7d9191bd87917d4a631324bd8dae5aa88515fca627387a8f23ca206d315470dc606100c2122047ad27024bce20f85360253482a28e0494af01ac52376b9606cd9f238ca61275f24fe35b6ef372f05bafbcd900e8f2ba940dfe52c52a2af26525b890648e569c6048780a9a8961309ca52fe83bc4294527a9e845a27f274dd772f17e4f009538c38c4bb8b20c466f5c039c13c496e1addd87e8ad99805c62a7602d0f2bb6c345254e6fdb166239d6b47ae44b3e8bd8c9ddb3af4a39266f5703d698be38d88885e064b9ff267b5db6cc4983089c5323819172cf4e3b93fc6304ebd6e2b6840712d89ccca59bc27ba44384589deeabd592433b8088f1ee7dbc3972fd3da546bb75edb07763d107ab5d72542aebac729603391e775a1d55dc6fede6928499bdbe6510d83eec351e341a1fec7af3a8ab46fe5b4bd4f9db79d8edb5600af5b4e6c8414dfd7791cf1dea839bddfa3cff85301bf07f13983f0a957d951b5e790871467a7f00c3d8e97c925f4ac41180bc827f088e96a0c5c985708b1a067f06df48ebf2c48a51f17c40351765413abf58fac0462ccf08828700a6b4068e0a7cef1f62408068251db7fe35f191385fa9c6c509cde3237ffed4e5868ad819549abd50a6e478014b4895102fa584eb8c1e50176f383e961eba7605e440545add0d8a2d8f5bd11be93f50846254ced4c661bda0500ec4720c5b5c943b9735cd58ef97f98ce4aa42a0447bb52ddd09ca5a5a6316af1e1579b8785fe2f875f82b35901737cabc86f0612ff876cde74fffea432b5d4dc98196346f669ae0bcfbac9d444a71ae5c13e6e5e6e58ff115885f4bb74f181efd3fec19c6474ee089458b6a890828736dee6492d830f16b38033877d6e07c27dc0890162ec61ac4c2258ae2975a11036783c81ef73cce27eb898d0e13499486fa4c8835147fcf79af7d79e495eff7fea48221beba9a32d77f45520e13aca93abdb9c66fa832efed0b7a14e6656cb92b134b23df013f4064b3a8aa97cadc84109f9a35b0db78b153ba5964fd638526278d32bf2464ffffd5ee35c47a4ed12fe662396087dcc68715d7891742b4452e7eedd18b394dd0b6a7d8aae4bbdcae2e64e9f51020df155d308a7c294219d6730954b4d3989a3a7cd77413f9987618f23db6e8d8599d4738613e6b6129fc525e4204d3aa2666cc9ee0da63ab2110082149c00be5d15f750914dd11df570349dfe3e587d8a7480a975b83f64723b9a633b51dbb2d4845de20a2df10aa088279add951a7a4533de3b0d3571e7d404512623c47260d2e8e644b767d47db550a30c6e87cf27926a4c66a17fd4b68286843b0148baaf1ecb926e9dd13abe44c6f280fd5f42961be359fdd11c0f46cb341c7530f1de45498d243331ef335aab0e83eee12a062044b0c7aaf8c9811c78ef14a490f2b30b95c3199484981e6273b95fd65cae71b638e88c07b510fe8864514167bb3b7c1e8163260376dfd3dfcdf7bb89fa84f53863bc1cb3dfe5e6b6763921dca810325f3701de5144d964df98819a48481d99d2451ab0af50e57bb46b4e96c39d348ad3bd31929b4aab8d6c53e15c74fb8ed55b7a6152ce6ea132e3f32e8d9d1ea67ffb10b178d82d7fd86e1b98085542e1df99e17ddedfae139efb2665ec1a13b89b7714ff73649a2cecb28ae097433ece3690cca1a4a8d1d4c86c998eda420d127404a73f2143aac8f6f889a47abe956b3e4243e46aff429d716537c72807c0c76888d45264b6a4593b742068af219892a1a43cc45fa3b9f999595cddd08b0208e1 c31bf1e6e2b2933092c3304c7734c12ed6cbe4ae0581be23b4ca97c52a7d76e11826407fd2896fe8dcc2894e8abb3fedc9a50ae67d52a0683f1a94eb2194d7507ecdc901a81b9e211937928f71fab0d05e01c0c420f38ec9eed8ec596858e1a75ac3a1471d67a276d965a39ca3a033810309359eabf3c1aa2643ce1f877bed59c1a076f2dcd9846d30ba2f1366e37c01280160939520632bd13936911fc82a70f981369ffe440005a999856cb93adde0d0f76533d262087745ddad43e895d87867a0e03fb670047ee52163412c60916b218bc1265535462c58bd2a3af82bdf21038a82384a211c43997a1908122e9afa1876c9431d0088837d4c3942863bf0dbdae5656f682d2fc49351a966eb70335aef43fae32a9292f10628f2abfe754c9455041dda46a8d84c67ea80788cfd990262b5370d9f09090e11ff9eb48f58ce5e4cb9097c246202aeba07df619ca114c1f8ab0166ee993e3d5e152dc7b9ad60ff72c9aa904f34c72d7ae8a37cba042863cc15fcd9fd12e4e89dc96ecdb95cc96d60fbdbb5a0efe363adaabf0568f266024116acdfebd1da96f43164dd53e393e311c7dcb09d4d9d644ed944f8d419aec720e02afbacafd165631cac54edce668db9bb6c18fe3cbb282094ea1980dfc94a9f48202067e9aa218fb43dc128e4a9b6be67f918433b01cf8a027a056f423e24a1edabf45e859aedb6445bd2df72711b1756062284fd53b16a98eb639ca54c511890ba45bde40d12ec928dc02f63283d32cb4cadc12a0f4c16dd0b472185f4818cb8a4809bcd8dda4d45f46e55eb45df3687694c33a9fc5db05ed987441f82db5b7115a8ca4445d2342dcef511e8ed02da7c933cce4bed7c933b07bc3b5c997b68c2cf2832a136dabfb202be443c9a9a27d758778db5bca1d6a7a8d8ec5768fb19bee8649889e1c25b5ac94ef9030d829c6015f31dce36ce4fd61ff3fdefb20e4b2c20b37aceeeecfe66b0559807558d0aef1f8b58874d66a480c819cc84a37396e373c697d02abee52dfd630ac4e9e6c7750669be112da2788ec1e4bb1d3ba1072e7b60ae979f2b9b94be56d5f36dd9ed7b87754868b6526270aeb29b6c0e5e7706b94bc7eabea6c2b654bb296146ff9b1dbebe76dfb0298be8fb64b3037537de17132f56eef405fb00e2defffbe84f28c5381bfeac6c50d17099ca4f7c0d7a41c980082d05745cdc8018281261060a4f369126bce480ea5b263585fe2be4f127d1feb751ed88cf07a4d5484ccbf84d67c9040fe2cc29ff38ea97fc5ee43f2d04cfb36ddc4329ad60533687fdfe30f10a10ae7ffe10a97cf9312c7489b7cb91b5a12e334595200d331079ee3f85dfcd9482f6c276deda145fc11404baa8e29658b68d454322b499261fa986c3456ed08af84614e612e019510fb5eb9511beee77d9114c6d8f923c3d488d3c3110d7b8600f38b457d4508f7a5da5fabd0a304ffdc48da9ba1375faae3e0d3099333572defaadd542bc7f11f0f3b543cc2f16dd04141f2fae54d8724dc3f49d6544b4be166f857b7a6bd72353509332b7ac4a35e781260a17aaa5a126a28eaacc853df80ab3d4cc42ef901ea0fbb87f870105e4d57aeb0d7cf880eef6c9e7e4688e948b0c5a7d8e51726ca8f28285ffafbb7bbeb7306c376bb27bcb2cab5d04ef81152324d6aed9a7c86f584fee32f38e61f38c7f7204962ac684014f2c0e48deedaedbf1a89cb040ed58fc89a7775a94f3bfa2c0e051deaf33f8d364529d4bfade83bbd18e5f9b6fa39490ca256db0a4f239881d2db068ec4b0725247f69480667d6b9c914063d931d2e0968945eea823c3897e5b1d740f3032945a20a414446dac626f925b882bbf78f2f85280af145b50ffbb1d697285d4a45916a45adbdff471723a3834120f54796795839f6aa7aba16e402260ba859f55483d7da37f0635e4432cd85dfb21fdecb8fae48bd2cd7e7f30b40ee9464d5fb1df25b5100a462e68b622a7921563c1efaebaf317923c3fdb3168427cdacc9e019fb3513c75578cfc00d0fd18736458c548e7732cc3fbc3168c168359356878762396de5ef3af2f17456af511b619d60fa48f24fdc6602f049e5b53b0e914ebb58b73331edb5c859cdfc4ecd60be58d7106317a58340cccddc5f66ff32443ec753fb466255eae8f42aefe796126251880d47edc496df1e18976d0bce5fe5bbe8dc0c40f460eb47b478f5d1c81897192ac8f635e7c6adb56924b8909cf00398f7f6c9cab55ac53098de4c859be748fc831e77054606ed556032af619fd57aed3ba536b45bc58a76fb4ac6912398219f22dce33d64e14186dda2df4c21262028f1cb6070cadbaa3299f8f3ee7753db746721cee1d2432ee7da3538ed9fddfb5c17215a7b81eb0f60f6eba677b91a746417692ebf111507de5d5075114320f0c028d7fbde30e24ed12544168895b9e67d0252dff804a8973a9b63e85d07ea54ae52e631dad1d99a53ce43191fa4e8e6a03298a48006c4d71ab16f3abbcc67af6d29378db2d3703ae9ad2444cbff83cd9925fd30de6939a9b596c0b21b47c96eb5c6b7512a7b633c795e77af989bfbf11985dfc540bc04a398801b15cd46e5c86e70722aefbc902a3d3ccfa52ec1d60c2954075c7a7f3f57e711fea4d5c7f020602517dab4baf82bb1b5c231cd62ff2f43099539ddfbb7daa5ca65364d2212edc699c0db8c0f26fd42100adfaa76eed10d8eff5fe804307152626c350719084664e8b48a5c78bcdd62ff5ba2b6878629936b4405626e6807b58d822f0f629b0a5bb2184a6c9ddf7d5d45f5f38531b51c346cbf66649cf05761dc5cacb653bf26e5434db0760b1b0fa205f90bcb6800815bc2da22a9a85c20d1c0b683dd0b5712e9e561d8999a3226d0ab2549d9b02bc4edbf94c50e4cd41d04f6e52ed9a09386548e560141b5e5990e55135c4ac1ce859acb0cf883a1f873aee8074df266f2c02fa2e534711533451124cb75bf6399ad6d57b03489c1a9c5757eb9320610570b6fed4e889ee380adaa5b8b628814e183247356f81b2ca812f925d1f2030223fb0534b564ebb005bb14510ff28e2d9b5e259c9267cd1d304ea86a48b99558d3fa103e0ae6bd579e93b57705276dd4777e5e7c564da13dde6f1c7de7d0a18fecc6c659e4c58bf996982829674b628708d760889a72425e756a3d22f98f243325b518364cea358b14124dca9d3614469f92e73fdb067dfba551449ac26dd682635d02eddd2bb1448e995b8966f66f119c40270f8a1972ded76395cac9795def19c4b28d9029e8c39d03ca3b2dc37861b5f58a4fb82321dfe424b3839db8b66d7b80075624cf400888731c60eb1b173bac99ffb8390f903625a6cdd41e0ea91a79363edc822c2752d5ca48b396a2590edd5239788760ebcdac81a1ccd21e6d27d440fb4bd8228aa817389ee397f7a6cd6139ec0aa94857a1c0b6c2036fe53cda46ca687537263d1478ca80441a1548479be4c55c4974b0925ab88034d9f6308d4cf21f1c62d600c49c69cf4a4e878d6dd52efe6f0e58ccf093affbc85c67fa55d3d679f03b4d4a108481d576d88e3a0bdf6b72400fc73fd5475fe7abc80fa888407a2fde575bdd7c9b08e99f777d6e7e8fd2c09107cf37d49e5c6fa562607eadd5837cd40e8ac755100ed308c4273e71b9e70e4bcc7fed7d46fe898dee537e177620af9afb6792757846a536d790b17adfe719a642d74dbaa34ff8ad66dd82ad3d9667151254b0cb788d1c421e4937f5751af9fbf4b89804a0792003fea7c3cba075748065d212ee364d6f1a5829088166eb79016728c972f025c67396841dd7626634d2be46a931241dc47d9c96d7084a2725de476f3d4a2614c61b3e24fc965aab92c8da3b269efc4b50f1c4a35a8800b224c3a21b0b038613f175d1f706937877955888b80329e4f75b353f42efa53ec2a9a668ef000dde1f5cfc8f3be9560a304b564c42f412e93a7a15750022dd1f206b19b5eb374d9f57b43d75fe5c92bf44da49d9a5efec61d7cd2508aaf8d35919ec9a475123e32593fbf873738c8520ac6fb14ce43238c15841eb29047c25a431deb7261228deacf564f6bd2498979c95bd3a94cc6d3cca805b4d87c073bbcdad58c0199e0868f5ee731495d398a0c7894f4c0d1d14b74e43d28ecbf6e94e8d4bcc248e5d5602160d5bb8fe4ca50b4954e15c0d790d28217f385362bf1f60f0253b308c6fd413c8e35bf713b43c8f603d0711954f24f0a2c65b2d691e3e531a8d5e626b51951ce432c3686f3ed47f66dacb92371fd64ef2f1a23dbc049382c851bd5a4ea34bf88d4c72f3d94ff214d7a8b741262077f6edc39fd08f336c323a09ea745b7e934e9f06a473e5a8cc75b6e841af757daaec8374b740c63c4fbca0db71ae3e581c766247e9081f34df4ab24d5c5f514b5a5bb56ac4b991588d9315a1717a592375acc4401992ffea62e1d25300f4b7958a032b5e3b768139ca054a8cca2b3d3996ed5067e4f4b20765f52cb849cab9fb4b7db0dc92644d21c1812a3e62653950b5b6af14819436989898e189d6777a0b8d41b069a35d2a20c9a2221c703a272b2c7f3c5b3c5a5059c1a20070684420161a15061bc2dd74193ad9fd2b9d640a0e8e997a0efd505b9b030d80dff24dd89bc4af98aa8a3075bfd41cc6abac755675b17bde7588baef4d07721eb7f3b4cf3b118441dae8e7e89980440f2391a297f61070b9cd9f9011585b7f970fb54f4cf6e8a41e99d2b671e91eee8cef97e36111b73add177c04628f0cedd56deecad4314a443111c0ccaef689c8c3adc521d7bfefc0a4b8547d0036be13ca93eeb11d47acd26277cd9d42e3e8c0509333cd0cb88ea413258ba355fd023cd767d2f1feb47ad18e10b2a61d2083b8bdc6a893ea0adf31392a5e73d30de9dc874bc4b5d0d179221bdfd7d30048920f53d0920529245b306b378bd932600846bcaff147953234f9a8ab7e6c5931184b0a440b221d1d9e17849ad62878256a57062aad960441bd972f72bac0306d0c7406cfceef47e621e279a8f4167d7cbfaa93ee5dd01379d2c96c1184d013e78da9ba5793abc552c7e7b0a16cb7b35e54c6eaa1e7b1124d6a6b948466585145b7be69c268c8e294c1afd4aa05b3fc09a75cf79e2cd93712c9c20d3c39c3bf4006008f630d89c8806e4c5efeea9d4f01c49d1a5a16f94666214e893545b26592cca3d8b4de1e722b3e16904e61030acedd4d542a47935ca60ab55ba29902b72e116f72a125bc25f7d60bcd169e9d369aeae8e931735090bec109b5a14d88209967e9f7f8053dbf37a52ca057a3d68dceb804a43b9c3ca85e31a59c98238fef1a1c879c76321a8201ff19a00b521eff2e6e14575672167a491128beb8a97b6a943f0c9da6f50388a66d5ab71c2a33be6a04fac3ef8fa7bd8577ef3a256de00dab51a2ea96712c33075269efd619f46cc5369731358fee8724d1335c4e1170bb75bf4705b9eb66d49da8203973b89ab8fb5e4d58cb8961d54e695b1bd2f341a80d2e67d10e261175d1840d3424d4e5f49862ca2d465ee61a699a73fd3e04e111e8a6b06b5ad27a6c6f9d1e30b0989bd3d956b0a3707d560a030f9d71c14d4b35ae2d3fe2b4ba8de9f327d3e63ce06c4cf693c2f580a190ec2ca865e5853c2f5a3342d78f64e6b3db5694075a70aeeb10253084201288e807ac90c744da4bcbfc69671ee9e8953c79a7a3befbee8b25ac3a6efdc140f4fe81ecf49936686b2e804c8aa3a6ed518ee19a08d31b5feccbafe2b96211714cb759aa3602cce4ac2508a40aa8063e0c21377dd8498e6012ccfd3943a528ca9118982a8b999dffc2078813aa67d76588a20aaef07066828c1e343d49cc0c9685a11e5b29de7fbb8f2b07760a067442204719306d8e09365e347975535139bcf27bd8855d1067d9c77cf2543fbc2d9734dee573c00defb100982f7e7b769652c77387cdd4db26a9670a22b0da85862e1442f876cbbcc5dc79a58091b0926fa93df0fdd8937b95330f453b83f52c43e25f20260221b5f3bbed163e74bd96be0b701487fc6d7a06f6f2774893fd05ddad526dda5bc5208fce127c7df9190412b7b864e939894c1bf8cc426ace767c8bdcabcc94ce8fac00c1889916ffef052db7f4a962c966218128dec51efed4baf7bed40211dfaceaf8864dbac8c9af813509f81da4d2c08e16a985b5081c2bf047bae17d9279c2df656a49acbfb06d1e1af949945d1b196b724afd1c073c9a216bf59342cda9ee469a72bd95dc0ce066fa2ef742281b3fa25b627ad30e7f1748b8d5288a31aa6317bd9a8a6924d0a006f1cb43143034181a40a6d7c6d6620336e6619cdc2c9760fdf261754ab770cbbf2e230019e8b56b8358515981e133a63d01caffc21050c7e791aaa530daa2157b995143ba58a892f75d252b80f796c29d911c82b7d5bdda120d6a6b7637ff006795a36db50287143bd0b17869d04244401f61eda1329dfdd96b48526ba93eed700f3583fbdc82e819c6f6554084d04298aea61bae8db30d1fd359827bfec1e61e628073f2032a529f584f6140996f0005528a850f8866517a1e2567c6667ca48d96ae6d269dc8c91f0bbc6b36985bc8f9d13fc9af774410f64f4fe13309aa763d3db6faa277e079c77810d9ad336c588c05477046cb62c34f2551d35672cd6d12d928aa99952ac3704d6e35d52a73b7f98be5e477c67c0703d38ee4f7033a1cf27fc663af8d047a436a0946c2ce19cba7ecc9307f0a452eca3fe1b51a921631ff0f9584551c7630f7b28052ad7bb3b1b83a9efcd6e80f4ba4c72411dcbca0b1a2be228d67be2d58d9603d7f7a7bbcccf28b9a9996f5f6c91a5d9c17892af9949b572af9c647670da94bfab5774987f4f22efca66c4d4e1d0571ac62364304bfb820c76784c52f07dc7e0f6494f336f3c57750295263cf2f2fb01e7266bab5f327847026558450e89b7645e58a243ae930cab42276fc1219d2273fc42d06eb6e662b475d7759a41479d31bc0511ed1004a594b931b9ab96c89fdea45d04baf66fa267c573bc7158d8215662f4a0d2391483053270686466d357b385df419dbb23d0541c99971f74e1bd0cebf2219a769fa3ff601f7a6e38f957bcafe15b567c37fecdc9806f3910ba325da98ada1ea74f2802fb33465649868524f806adf1c51082a89393d011286046025eb3d8967fb4c8e1fd8839baef080af4d59311fd58d6cad288a5949b62e6b0ee56c79b3c690bd4c39034f706a65e0cdd6d44fbcd845e11370524979072e4a608cb77110e87c3f4d97dcaf57621266ace513c628844f46282638b3b6d3b02008229241c3c03bf7c3466b469088fa78de5df0cc7d68e365338b991f05306cfa485086083f2303f39ed37edddf6c39d9e0cb6a7ec958f11a9d1bdff7d68fcd5a6cab9ca690906a3b36af8e9b8f0d0e8e43968e2d69954a4c0ba1a3544d7b4c025596c2736cac0a39e7a008e32baef3543e25c102c97e64222d17ed7961d974ac2bb155fd938689a80ff11029f7bde7d6532fc4944ed182ed704599b6efa64aa361cea0fa4fe37c3d4a6c2bf1afadb8f9a465abdf4aba240353981baef628bec52d6bdabf4666d34f9a396adefbcf7a43812a89f6e748dfaba19a0e44ed475241993786be9ff9f7de5e2386ca585187ead3b2031919edf6a557ab75b4139f00452a710aa8df334ddb261ef51d4ae03b8440126006f4972fd7136410a666dac51d59a4568f5adddfeda3461b7eb86c8a6c135e3d94947f5754c2fca5bb00f397272fdc32ca88f7420836781287366abcea7462567c9cca91ede69d00a87ce3b3489346e2f35fc4f095d93feee1d6871f9b8ee4752e0fce0f202058c02f29b56998808fd3c272a2845e276f0c27c054e59068668fefcbfa2a731ed147f63b1f134c358fc4a44605dfdbef32f8187e9963dfdd4d3b7306b05064a4dd17841f76c47858fd42af4cfe8729b6dc5561e3912f2018b06d3e678640521ec45bad84aa975a28256179b12d1355265086f7b7f393b3a5e2517fcdbb3c1bd5f3297ab3ac032e35d9642e85f540a2a7e604d5fac150870a74b739e32372d752ee1f778e20f704ca75082ee7ba12e8e65474a618c67b5fd0521fad35cb0fc218d30dda3d064558b9b4f9f2755591cb9ae18ec406713620543f76c7ca86928fb39909ec92c068ea313989ad3fe945fbeb353d790d500757027de13983f59cea23cec2a282b1289a6abb00227dc1c9f6d5cf17174843df70b8bb73897b9bab919de19e98cc4a408c4e5eacee2905dd664b0211e874c4159651edcb83fc48768149c6c96435c191c875190e302fc7c73cddc6948d5cb0371f4383dc5d3e1e4ea9846eae4aea2305d90e1705c33b03581c6309d2f68b14303a72e1087bccbff94f8af36ebe6fe652c6ddce31adbd6440e9bdbd68b590b894255b75339811eba4b8b4a3451e2ba7743afd9056240cd33d2d808386ddb718d08a5540a48b1ee4a3732a0a12fdc00bc89490942762f35e9f7b63b71c6e96d9a6f6dda725e90dd40863df58bd005b01ea63716c4098982b4b6943262dc21925f94433ad10d721aec58488a16ea9a4be275bc5ad57ab2bf7ea2f10d21be396074c8b8632003895ec8d49529bd603e238809ddbb5ebf1d7bfc40fdf678fd199c740cc7e90e9440204cd694e165d5e3c8d7aa3c777283a5cf615e5e246ff8db3c10282174bf70ff90066493d12a4cf52c538623aaee7d4bd762e47b1d8a8557d0af25d5f98d53b2b103d0795753ab05f005d61856f3bf4ad2873dc6e0e94bbb6e7cd47e87c7c3137128c110c7e347ed4945dca64718df8b115d885309781fd50cf331aa627f579fc9c69089bdac6109f12f3a2174b63914c2d389e09046b7497d1d624f854d14f67048cc534d2a48b8f7ff3754742d35892ea9f6d9dd40d8b02c4a957bff22e93b8831d5ed357ad6328cbbf16f4f1cb9b0dacb91b8335b3fafc6b8c0b8e346d7e4b509e998ec855393340769aea570f07de41b8d83af4ce38f92bac58d117eb9912bbee2f7c2ba4f2349c31448f7e6da39b38ddc963077a807e6c42690e30acbfe72a16b05f0d039923e575630b2c4820cb55e244e9c2d8dd7c8e5abf81da13c4b9527059e75cd769d4081ece9f7f3669ebf38fbfee36e6038e1ad067365b9d8a149527331130ed9455dd5aaddf964d800bf58a31b7fc6924bdc498f30a548230ddff0683fe0c3a36fc2a3a2d9f8edc8037d13213a448ecbb1200fbd19e6785546e4fe99f15a072eab98d8c7501d89d374c909f94b8fe011c6a2f3f9e236676a376ed025eae82c5429e706ac36f215a98c72748dd81f6721c980f22ad7c27407c1a489446f2a993ba9133bfeb65bde65fd4cacf3bd927d00ada32a8af8a617c1dbb10e7aeb374876dcd3fa803f85fea08b527e72ef8cc18df07249d7044b36b06bd983271982b6736c9981d62853909f98bd59e8c7dd144cf8089c984e5e6a6944e6abf345f51869a32900468427069d690634983dffa72057bdcba158783f5814f7a9c299389234c193c2c2d85738c3a455c37e2e3bbebf147793fabb07326c0163f357f2f75175a02c88486887085cd89d39089f026f0250bd12136c4c17f73a9faaa1ab88e7c9e96e1e8e4a7e1a2de7c2d7194bab43f1307d877460598c3fb37c2288b51684f4a7662f82f72a1f69428ac3cd63d46280b6131a8f8240dcb5d31f29ae29c7c6d0fc6d2acaab04a18c66aeb751578acc849e8ce6031d76d365d434276f7c291bcc15810330ebe2b048c30ad6c55e2ea5c9fd7fd7e2848ba8b91e89c26baf594719ceb187360634d382a78197143d954091fbf3e7331fb8626439c2a8c252224f0203b6f827dd6db4cf8dc711a9f2f4b5a9ad09ad4e93c3ce228a634af192fe3eb68c0e4bc07b04a23bb7c09fbf3e8c57b51d95fa292dc98da2dc939e11cd1a8cfccdec9890369592e99e456381796818f48bf6fc6e4142dcb682b6b7d5c54b5a381c640ac9f66c737c55b9c267e2096c81846f7615295a4f6919039b177aeda6609e33170f05553512125c6122e1fd01dd132f83abd9eef7e4d2b7cbff8b9594a4b4097c6792e9f733ebe9335f723e2d9b28a265becdf764105b9ebaeff985abf008e7277bb2ac0143d09c9fa0e1dd85897d801f18c9d9c77dd22d61f81b6ff5a6ad3a534c8102516c99794f2e0af3d5ea682a72892124ce7bc3eeb5135fdf6d79fd1cad62f5cac81dadb9f163c8f0d9fb75d1e45ae7308e8762f4a6db4dc0d3cf75ede8a10ec1709bed5bff7bb557f7398be2686781d4d486fc0eb2127191d7ee0ac1352c4bdf0da3a43da880df8f88d13f92625d846b0f8d56c2240d13a447b9512a0e498faeec2fb67a4173d86372a462c44e25776858b98c06a244b28299546d9ca838f574295a46049f43b71b970913027c5b5a497588c30e21ed6413b628af6e6250bc86b3d099ae9dd61f397d62f0d2039b7298554a09fc304509948e630802882e185b19829e6dbc394096c16bda325e4cfa1b176dcada132f008038cca428050b4ad5fb7729c87fcb25f61a9d51150316dfb180f344c05714133614d856a634a59decdcb0b1f7273cb5079693d9e79636a859a62f16822258f6c7550cf43e53931a77dc56ee0bd6afa905ce76221064e98be8e4b883bead9099f0b75c88990bc96aa2fe0ed32a15a2cb930cea2ec05b488a4720a75c0becea7cfeb5cf51d77dc2627f728fffe0fcb39055d208ad2adf2e1068986cebf6438364c1b59b1930383fef6a680dfe943d89a4afcc51a4e96a9315eff731b6c62d333c2bf3df32e88d14d567c78b398abfbd90bccaa486c6edb388450902d5dfce019e0728e0a1a10c6bd22d8ea212bd954f50a72a80af258b67ef82b637c8a751c91b18463475af11a4dd2c716ed060601c2279524aeb9ba768d42a753f6c7cbbe8d97f54a413b7a32f39c3189ca3eb2270134d4e6e588494f7ab600324268a7760e320131144b7f7b96b9ee608970966be41b60300b64a2b5536019f52e0744db3f20fb1c312300f04eac25ab327aefc5196970f3b6aeeb5764841cbadb814a612f3e626868cbd15635b098e2e3d8f2154a79658b625bb8bfaa70eb1fdd4273ab9dbfda42c2ef875e85fc79e09021982ff684ea3f339043284e66fc678a4e8be2a71299c84119bbc1ea8fc746f69dd575249dd8006aae744d550c10fbe8725c0beee051e79dbc87dc43de6a56530a5cf8fc5ee74d986b1a48566f26ee78a02e1db05c0439e4ae7bf7a5772412a903a62c809efbdb2d3d52992730c95a5e127abf60c80d8861e287efa0223509bbca815097a9ba40d9acc5b8bab091913f0f0c724f9a41296117860c0d20c6af2f632d0126578771d711804ee9b3011245cfa4fa0198a622bdcf4768f3a7ea5bd76675b9bebd89764f877381059046f4000cd694ec57f16320f76e533dd9ec52b3a39eda2693a24d09c70043020faff55d448066006d402f7b591021b8465f99d87fae3228665083258a5ea59eca34bfb12b25f96eb5239707a8f97900213ba5b3d7a4def1b20d33599a0b49a08302b8c9831965788524bb026f098a6ac433a443812470238a01d7e4e039e730aeb7ecc8802ea384cb5130045a28785a9704339910f4249bb378c4d4f9a5e088c3576de0283c51dcfc2b255aea289209124a35bb7dee2fdc6dd2d763fd9e80714cfecfcee2c72701df361b35d6c1d4c3183651f497a6a7df12877bebdb85ca6736d7922fbe43b9d31c66a37bc9be12d8f5bc491313917a55e72d6b237649dab05191f3dd11a45326291991e4e15415fd96716c2036cbc2862cf90078e7a90349591b456f437f17307014e7178c78266d20c5889d1722686b7999e51cf537fae88994581171c3a2fe95448221e3a7ffbe7aab4ad531d20066fff114d366d4ccf123bbc61f262797fc7ea23c0449e26c5bda075a806e7e26331e3fb33df60c2a75afd64cdbcfaf826c9946289931c9408f160fe59cbb39ba87506fa4bc7530efc3483f16e5a247780dccaed3f317d43bccfe03b843d60c28f2789f3710c7b9e671c2980412dff676c74eab6dbc18917d3edcdf3d02b74de81cf2a3599f1b90e841b9c1479476dfbcc52c4fbffff4a506a08bacb218d35ad2798dd823176985c2b8665acd1d6d88571035d83b55040c836d0fa3f5c265f15f8cb599a0b369df1bac659abae43d224e99c8d0c41e4581b079b88c03c6c8c7b57b10d480f17959cc3ade870f53803793f2fa962e0add3ba4084f3bbf7646e1529a8f1aa43f5029693aa76b915b874c3db91cbb98d831e89ff11cd9730160b64a08f786026cd6a9841674e225c648f5c78be6f7c3530cdc07599451a7cdc52f5549e29c8ed7a423cddc9cfa574d4ceb24a2b90bd4ab595e1ec72bd1172262f6574b17b9d4ff6446f2aed0161fcf462cc0f03aaf3bd6b6bad09d28a187558e21ae387f1eed75db0ef82962991ad5e39a1c91284fd997bda75ea0eebfb7d235457869d7ee7e68ab6e6364affaed913656c78860e52e336fe06ae90091311507fc648c239dfec03b065268a96408c82cd9869f86b72f45deed624ce0bf201ee64f28c0c31f1bf9f9f1ce16c5966567e1d85b914d67963ee6cb46e0753dfad3f242cf8b73a288911d5b32d8a56d2ccf218a37657158f4e2af5b7dde509a90151efeb67060b1fdc0fdf79e1be64057cc00bb15aa4e95ae34a7482b22ce2fbc107cb3e4d5f75d98bb6b92ec90c0906f180d7d2d641fc6388a959d7b770b31ba65f7aea169e3b0b678c3bf99a648a2b083e3b7a48e1b63eafc7bbedd7ba2c2dc9008d7ba6d493611e12a6ff4a5d64d987fd464f69dc0728cd0c81222ab7492e35f7424a18d4d8bfac20e11d8903af7f9d4e13ba1f1043b1b2557226b164bfd822ee11c70b3b28ab5331cf7b1a42f8b95ae1dfd6e20b0b7a789fac0b0de3bb575d5c594407c47735a7782889335866dbe0fa11dc66bf46e907d650bca226e7c6994ccdf5c98d6ca05f3bc0c8479019e674f130acf055ddf84c1f950063153c2ccadf81511d22fd39cfce1f6442768e2ea685eb0244685389eb30ec3f1593a2949283470e0baabf578a672f2d2637e33356334fb94288d97caf6a5381b6405e40bfeabcf7c6b3694c5aabe0b2c66c58fac95b27759c57f594cae87d9e03c1b599f4e361b22de4c1344bf45337308a6cb9db6a1265b9697844efeed110b7e743bc2efddee0882e58aa264466c5affff7b2fb51cd36f03725958de65b04fc8b383607a4c317c55b30471c8d9862ee0e8c62abdc987658904756a813010002d8d57f7febfb0523ab1c78fd20fc67c5d83f5b7677396e56d21211d97610cd0c5cadcafa0e3a0afd39ffece41f4baefa95b665811e28e12124ec30ee9201cb875feb86156887a4261074570ab9981c300f12d883435f35a5c2954d30e6a79010514b3194ba6fd5b8b09276674b66d54978f052f6bbad33eda881190a04960a74594c3de65d53adafae5607d64aee4cef4683a574dc92ccbccff4daa6599dc00f93bb51332de626eeb958aaea4f4c7580bac06d46fd461adb4d1b6fcdf2fe1c720a7bb9f9b133b2769f0409bba327e46aacee000291f8766e8d26c7a3dc700d6230011e961b0defe88744537a72e592da7500e9e5aabc2
Note: See TracChangeset
for help on using the changeset viewer.