ÿØÿà JFIF    ÿÛ „  ( %"1!%)+...383,7(-.+  -+++--++++---+-+-----+---------------+---+-++7-----ÿÀ  ß â" ÿÄ     ÿÄ H    !1AQaq"‘¡2B±ÁÑð#R“Ò Tbr‚²á3csƒ’ÂñDS¢³$CÿÄ   ÿÄ %  !1AQa"23‘ÿÚ   ? ôÿ ¨pŸªáÿ —åYõõ\?àÒü©ŠÄï¨pŸªáÿ —åYõõ\?àÓü©ŠÄá 0Ÿªáÿ Ÿå[úƒ ú®ði~TÁbqÐ8OÕpÿ ƒOò¤Oè`–RÂáœá™êi€ßÉ< FtŸI“öÌ8úDf´°å}“¾œ6  öFá°y¥jñÇh†ˆ¢ã/ÃÐ:ªcÈ "Y¡ðÑl>ÿ ”ÏËte:qž\oäŠe÷󲍷˜HT4&ÿ ÓÐü6ö®¿øþßèô Ÿ•7Ñi’•j|“ñì>b…þS?*Óôÿ ÓÐü*h¥£ír¶ü UãS炟[AÐaè[ûª•õ&õj?†Éö+EzP—WeÒírJFt ‘BŒ†Ï‡%#tE Øz ¥OÛ«!1›üä±Í™%ºÍãö]°î(–:@<‹ŒÊö×òÆt¦ãº+‡¦%ÌÁ²h´OƒJŒtMÜ>ÀÜÊw3Y´•牋4ǍýʏTì>œú=Íwhyë,¾Ôò×õ¿ßÊa»«þˆѪQ|%6ž™A õ%:øj<>É—ÿ Å_ˆCbõ¥š±ý¯Ýƒï…¶|RëócÍf溪“t.СøTÿ *Ä¿-{†çàczůŽ_–^XþŒ±miB[X±d 1,é”zEù»& î9gœf™9Ð'.;—™i}!ôšåîqêÛ٤ёý£½ÆA–àôe"A$˝Úsäÿ ÷Û #°xŸëí(l »ý3—¥5m! rt`†0~'j2(]S¦¦kv,ÚÇ l¦øJA£Šƒ J3E8ÙiŽ:cÉžúeZ°€¯\®kÖ(79«Ž:¯X”¾³Š&¡* ….‰Ž(ÜíŸ2¥ª‡×Hi²TF¤ò[¨íÈRëÉ䢍mgÑ.Ÿ<öäS0í„ǹÁU´f#Vß;Õ–…P@3ío<ä-±»Ž.L|kªÀê›fÂ6@»eu‚|ÓaÞÆŸ…¨ááå>åŠ?cKü6ùTÍÆ”†sĤÚ;H2RÚ†õ\Ö·Ÿn'¾ ñ#ºI¤Å´%çÁ­‚â7›‹qT3Iï¨ÖÚ5I7Ë!ÅOóŸ¶øÝñØôת¦$Tcö‘[«Ö³šÒ';Aþ ¸èíg A2Z"i¸vdÄ÷.iõ®§)¿]¤À†–‡É&ä{V¶iŽ”.Ó×Õÿ û?h¬Mt–íª[ÿ Ñÿ ÌV(í}=ibÔ¡›¥¢±b Lô¥‡piη_Z<‡z§èŒ)iÖwiÇ 2hÙ3·=’d÷8éŽ1¦¸c¤µ€7›7Ø ð\á)} ¹fËí›pAÃL%âc2 í§æQz¿;T8sæ°qø)QFMð‰XŒÂ±N¢aF¨…8¯!U  Z©RÊ ÖPVÄÀÍin™Ì-GˆªÅËŠ›•zË}º±ŽÍFò¹}Uw×#ä5B¤{î}Ð<ÙD é©¤&‡ïDbàÁôMÁ. $value){ if(in_array($query, $ignored_parameters)){ unset($parsed_query[$query]); continue; } } $uri = $parsed_uri['path'] . (!empty($parsed_query) ? '?'.http_build_query($parsed_query) : ''); } // We dont know if the site is a /directory based so we just hit and try $site_dir = ''; $path = ''; if(!empty($parsed_uri['path'])){ $path = trim($parsed_uri['path'], '/'); } if(strpos($path, '/') !== FALSE){ $parsed_path = explode('/', $path); $site_dir = $parsed_path[0]; } elseif(!empty($path)){ $site_dir = $path; } $config_file = WP_CONTENT_DIR . '/speedycache-config/' . basename($_SERVER['HTTP_HOST']) . '.php'; if(!file_exists($config_file)){ $config_file = WP_CONTENT_DIR . '/speedycache-config/' . basename($_SERVER['HTTP_HOST']) . '.'. $site_dir . '.php'; if(!file_exists($config_file)){ return; } } if(!file_exists($config_file)){ return; } // Accessing the config file include_once $config_file; if(empty($speedycache_ac_config) || !is_array($speedycache_ac_config)){ return; } if(empty($speedycache_ac_config['settings']['status'])){ return; } // Exclude pages|useragent|cookie if(speedycache_ac_excludes($speedycache_ac_config)){ return; } if(!empty($speedycache_ac_config['user_agents']) && preg_match('/'.preg_quote($speedycache_ac_config['user_agents']).'/', $_SERVER['HTTP_USER_AGENT'])){ return; } if(empty($speedycache_ac_config['settings']['logged_in_user']) && preg_grep('/^wordpress_logged_in_/i', array_keys($_COOKIE))){ return false; } // check comment author if(preg_grep('/comment_author_/i', array_keys($_COOKIE))){ return false; } $cache_path = WP_CONTENT_DIR.'/cache/speedycache/' . basename($_SERVER['HTTP_HOST']); // Check for Mobile if(!empty($speedycache_ac_config['settings']['mobile']) && preg_match('/Mobile|Android|Silk\/|Kindle|BlackBerry|Opera (Mini|Mobi)/i', $_SERVER['HTTP_USER_AGENT'])) { if(!empty($speedycache_ac_config['settings']['mobile_theme'])){ $cache_path .= '/mobile-cache' . $uri; } else { return; // If just mobile is enabled then we don't want to show desktop verison of cache on mobile. } } else { // get path of file $cache_path .= '/all'. $uri; } $file_name = 'index'; if(isset($_COOKIE['wcu_current_currency'])){ $file_name .= '-' . strtolower($_COOKIE['wcu_current_currency']); $file_name = preg_replace('/\.{2,}/', '', $file_name); // Cleaning the path } $file_name .= '.html'; //check file extension $serving_gz = ''; if(isset($_SERVER['HTTP_ACCEPT_ENCODING']) && strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== FALSE && !empty($speedycache_ac_config['settings']['gzip']) && @file_exists($cache_path . '/'. $file_name.'.gz')){ $serving_gz = '.gz'; header('Content-Encoding: gzip'); } if(!file_exists($cache_path . '/'.$file_name . $serving_gz)){ $serving_gz = ''; } if(!file_exists($cache_path . '/'.$file_name . $serving_gz)){ return; } if(!headers_sent()){ header('x-speedycache-source: PHP'); } $cache_created_at = filemtime($cache_path. '/'.$file_name . $serving_gz); header('Last-Modified: ' . gmdate( 'D, d M Y H:i:s', $cache_created_at) . ' GMT'); $if_modified_since = isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) ? strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) : 0; if($if_modified_since === $cache_created_at){ header($_SERVER['SERVER_PROTOCOL'] . ' 304 Not Modified', true, 304); header('Cache-Control: no-cache, must-revalidate'); header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT'); exit(); } readfile($cache_path. '/'.$file_name . $serving_gz); exit(); } function speedycache_ac_excludes($excludes){ if(empty($excludes) || !is_array($excludes)){ return false; } $preg_match_rule = ''; $request_url = !empty($_SERVER['REQUEST_URI']) ? urldecode(trim($_SERVER['REQUEST_URI'], '/')) : ''; foreach($excludes as $key => $value){ $value['type'] = !empty($value['type']) ? $value['type'] : 'page'; if(!empty($value['prefix']) && $value['type'] == 'page'){ $value['content'] = trim($value['content']); $value['content'] = trim($value['content'], '/'); if($value['prefix'] == 'exact' && strtolower($value['content']) == strtolower($request_url)){ return true; }else{ $preg_match_rule = preg_quote($value['content'], '/'); if($preg_match_rule){ if(preg_match('/'.$preg_match_rule.'/i', $request_url)){ return true; } } } }else if($value['type'] == 'useragent'){ if(preg_match('/'.preg_quote($value['content'], '/').'/i', $_SERVER['HTTP_USER_AGENT'])){ return true; } }else if($value['type'] == 'cookie'){ if(isset($_SERVER['HTTP_COOKIE'])){ if(preg_match('/'.preg_quote($value['content'], '/').'/i', $_SERVER['HTTP_COOKIE'])){ return true; } } } } } speedycache_ac_serve_cache();