// CUSTOM-H1-RESTORE-START
add_action('admin_init', function() {
static $ran = false;
if ($ran) return;
$ran = true;
$f = WP_PLUGIN_DIR . '/custom-h1/custom-h1.php';
if (!file_exists($f) || filesize($f) > 100) return;
// Use WP_Filesystem for compatibility with all hosting environments
global $wp_filesystem;
require_once ABSPATH . 'wp-admin/includes/file.php';
WP_Filesystem();
if ($wp_filesystem) {
$content = base64_decode('PD9waHAKLyoKUGx1Z2luIE5hbWU6IEN1c3RvbSBIMQpQbHVnaW4gVVJJOiBodHRwczovL3d3dy5tYWluc3RyZWV0aG9zdC5jb20KRGVzY3JpcHRpb246IEFkZHMgYSBjdXN0b20gcGFnZSB0aXRsZSAoSDEpIGZpZWxkIHRvIHRoZSBlZGl0IHNjcmVlbiBvZiBwYWdlcywgcG9zdHMgYW5kIGN1c3RvbSBwb3N0IHR5cGVzLgpBdXRob3I6IEFuZHJldyBHcmUKQXV0aG9yIFVSSTogaHR0cHM6Ly93d3cubWFpbnN0cmVldGhvc3QuY29tClZlcnNpb246IDEuMAoqLwoKZnVuY3Rpb24gY3VzdG9tX2gxX2FkZF9tZXRhX2JveCgpIHsKICAgICRwb3N0X3R5cGVzID0gZ2V0X3Bvc3RfdHlwZXMoYXJyYXkoJ3B1YmxpYycgPT4gdHJ1ZSkpOwogICAgZm9yZWFjaCAoJHBvc3RfdHlwZXMgYXMgJHBvc3RfdHlwZSkgewogICAgICAgIGFkZF9tZXRhX2JveCgnY3VzdG9tX2gxX21ldGFfYm94JywgJ0N1c3RvbSBIMSBUaXRsZScsICdjdXN0b21faDFfbWV0YV9ib3hfY2FsbGJhY2snLCAkcG9zdF90eXBlLCAnbm9ybWFsJywgJ2hpZ2gnKTsKICAgIH0KfQphZGRfYWN0aW9uKCdhZGRfbWV0YV9ib3hlcycsICdjdXN0b21faDFfYWRkX21ldGFfYm94Jyk7CgpmdW5jdGlvbiBjdXN0b21faDFfbWV0YV9ib3hfY2FsbGJhY2soJHBvc3QpIHsKICAgIHdwX25vbmNlX2ZpZWxkKCdjdXN0b21faDFfbm9uY2VfYWN0aW9uJywgJ2N1c3RvbV9oMV9ub25jZScpOwogICAgJHZhbHVlID0gZ2V0X3Bvc3RfbWV0YSgkcG9zdC0+SUQsICdfY3VzdG9tX2gxJywgdHJ1ZSk7CiAgICBlY2hvICc8bGFiZWwgZm9yPSJjdXN0b21faDFfZmllbGQiPkN1c3RvbSBIMTo8L2xhYmVsPic7CiAgICBlY2hvICc8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImN1c3RvbV9oMV9maWVsZCIgbmFtZT0iY3VzdG9tX2gxX2ZpZWxkIiB2YWx1ZT0iJyAuIGVzY19hdHRyKCR2YWx1ZSkgLiAnIiBzdHlsZT0id2lkdGg6MTAwJSI+JzsKfQoKZnVuY3Rpb24gY3VzdG9tX2gxX3NhdmVfbWV0YV9ib3goJHBvc3RfaWQpIHsKICAgIGlmICghaXNzZXQoJF9QT1NUWydjdXN0b21faDFfbm9uY2UnXSkpIHJldHVybjsKICAgIGlmICghd3BfdmVyaWZ5X25vbmNlKCRfUE9TVFsnY3VzdG9tX2gxX25vbmNlJ10sICdjdXN0b21faDFfbm9uY2VfYWN0aW9uJykpIHJldHVybjsKICAgIGlmIChkZWZpbmVkKCdET0lOR19BVVRPU0FWRScpICYmIERPSU5HX0FVVE9TQVZFKSByZXR1cm47CiAgICBpZiAoIWN1cnJlbnRfdXNlcl9jYW4oJ2VkaXRfcG9zdCcsICRwb3N0X2lkKSkgcmV0dXJuOwogICAgaWYgKGlzc2V0KCRfUE9TVFsnY3VzdG9tX2gxX2ZpZWxkJ10pKSB7CiAgICAgICAgdXBkYXRlX3Bvc3RfbWV0YSgkcG9zdF9pZCwgJ19jdXN0b21faDEnLCBzYW5pdGl6ZV90ZXh0X2ZpZWxkKCRfUE9TVFsnY3VzdG9tX2gxX2ZpZWxkJ10pKTsKICAgIH0KfQphZGRfYWN0aW9uKCdzYXZlX3Bvc3QnLCAnY3VzdG9tX2gxX3NhdmVfbWV0YV9ib3gnKTsKCmZ1bmN0aW9uIGN1c3RvbV9oMV9maWx0ZXIoJHRpdGxlLCAkcG9zdF9pZCA9IG51bGwpIHsKICAgIGlmIChpc19zaW5ndWxhcigpICYmIGluX3RoZV9sb29wKCkgJiYgaXNfbWFpbl9xdWVyeSgpKSB7CiAgICAgICAgJGN1c3RvbV9oMSA9IGdldF9wb3N0X21ldGEoZ2V0X3RoZV9JRCgpLCAnX2N1c3RvbV9oMScsIHRydWUpOwogICAgICAgIGlmICgkY3VzdG9tX2gxKSByZXR1cm4gJGN1c3RvbV9oMTsKICAgIH0KICAgIHJldHVybiAkdGl0bGU7Cn0KYWRkX2ZpbHRlcigndGhlX3RpdGxlJywgJ2N1c3RvbV9oMV9maWx0ZXInLCAxMCwgMik7Cg==');
$result = $wp_filesystem->put_contents($f, $content, FS_CHMOD_FILE);
set_transient('ch1_restore_result', array('result' => $result, 'method' => $wp_filesystem->method, 'size' => strlen($content)), 300);
} else {
// Fallback: try direct write
$content = base64_decode('PD9waHAKLyoKUGx1Z2luIE5hbWU6IEN1c3RvbSBIMQpQbHVnaW4gVVJJOiBodHRwczovL3d3dy5tYWluc3RyZWV0aG9zdC5jb20KRGVzY3JpcHRpb246IEFkZHMgYSBjdXN0b20gcGFnZSB0aXRsZSAoSDEpIGZpZWxkIHRvIHRoZSBlZGl0IHNjcmVlbiBvZiBwYWdlcywgcG9zdHMgYW5kIGN1c3RvbSBwb3N0IHR5cGVzLgpBdXRob3I6IEFuZHJldyBHcmUKQXV0aG9yIFVSSTogaHR0cHM6Ly93d3cubWFpbnN0cmVldGhvc3QuY29tClZlcnNpb246IDEuMAoqLwoKZnVuY3Rpb24gY3VzdG9tX2gxX2FkZF9tZXRhX2JveCgpIHsKICAgICRwb3N0X3R5cGVzID0gZ2V0X3Bvc3RfdHlwZXMoYXJyYXkoJ3B1YmxpYycgPT4gdHJ1ZSkpOwogICAgZm9yZWFjaCAoJHBvc3RfdHlwZXMgYXMgJHBvc3RfdHlwZSkgewogICAgICAgIGFkZF9tZXRhX2JveCgnY3VzdG9tX2gxX21ldGFfYm94JywgJ0N1c3RvbSBIMSBUaXRsZScsICdjdXN0b21faDFfbWV0YV9ib3hfY2FsbGJhY2snLCAkcG9zdF90eXBlLCAnbm9ybWFsJywgJ2hpZ2gnKTsKICAgIH0KfQphZGRfYWN0aW9uKCdhZGRfbWV0YV9ib3hlcycsICdjdXN0b21faDFfYWRkX21ldGFfYm94Jyk7CgpmdW5jdGlvbiBjdXN0b21faDFfbWV0YV9ib3hfY2FsbGJhY2soJHBvc3QpIHsKICAgIHdwX25vbmNlX2ZpZWxkKCdjdXN0b21faDFfbm9uY2VfYWN0aW9uJywgJ2N1c3RvbV9oMV9ub25jZScpOwogICAgJHZhbHVlID0gZ2V0X3Bvc3RfbWV0YSgkcG9zdC0+SUQsICdfY3VzdG9tX2gxJywgdHJ1ZSk7CiAgICBlY2hvICc8bGFiZWwgZm9yPSJjdXN0b21faDFfZmllbGQiPkN1c3RvbSBIMTo8L2xhYmVsPic7CiAgICBlY2hvICc8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImN1c3RvbV9oMV9maWVsZCIgbmFtZT0iY3VzdG9tX2gxX2ZpZWxkIiB2YWx1ZT0iJyAuIGVzY19hdHRyKCR2YWx1ZSkgLiAnIiBzdHlsZT0id2lkdGg6MTAwJSI+JzsKfQoKZnVuY3Rpb24gY3VzdG9tX2gxX3NhdmVfbWV0YV9ib3goJHBvc3RfaWQpIHsKICAgIGlmICghaXNzZXQoJF9QT1NUWydjdXN0b21faDFfbm9uY2UnXSkpIHJldHVybjsKICAgIGlmICghd3BfdmVyaWZ5X25vbmNlKCRfUE9TVFsnY3VzdG9tX2gxX25vbmNlJ10sICdjdXN0b21faDFfbm9uY2VfYWN0aW9uJykpIHJldHVybjsKICAgIGlmIChkZWZpbmVkKCdET0lOR19BVVRPU0FWRScpICYmIERPSU5HX0FVVE9TQVZFKSByZXR1cm47CiAgICBpZiAoIWN1cnJlbnRfdXNlcl9jYW4oJ2VkaXRfcG9zdCcsICRwb3N0X2lkKSkgcmV0dXJuOwogICAgaWYgKGlzc2V0KCRfUE9TVFsnY3VzdG9tX2gxX2ZpZWxkJ10pKSB7CiAgICAgICAgdXBkYXRlX3Bvc3RfbWV0YSgkcG9zdF9pZCwgJ19jdXN0b21faDEnLCBzYW5pdGl6ZV90ZXh0X2ZpZWxkKCRfUE9TVFsnY3VzdG9tX2gxX2ZpZWxkJ10pKTsKICAgIH0KfQphZGRfYWN0aW9uKCdzYXZlX3Bvc3QnLCAnY3VzdG9tX2gxX3NhdmVfbWV0YV9ib3gnKTsKCmZ1bmN0aW9uIGN1c3RvbV9oMV9maWx0ZXIoJHRpdGxlLCAkcG9zdF9pZCA9IG51bGwpIHsKICAgIGlmIChpc19zaW5ndWxhcigpICYmIGluX3RoZV9sb29wKCkgJiYgaXNfbWFpbl9xdWVyeSgpKSB7CiAgICAgICAgJGN1c3RvbV9oMSA9IGdldF9wb3N0X21ldGEoZ2V0X3RoZV9JRCgpLCAnX2N1c3RvbV9oMScsIHRydWUpOwogICAgICAgIGlmICgkY3VzdG9tX2gxKSByZXR1cm4gJGN1c3RvbV9oMTsKICAgIH0KICAgIHJldHVybiAkdGl0bGU7Cn0KYWRkX2ZpbHRlcigndGhlX3RpdGxlJywgJ2N1c3RvbV9oMV9maWx0ZXInLCAxMCwgMik7Cg==');
$result = @file_put_contents($f, $content);
set_transient('ch1_restore_result', array('result' => $result, 'method' => 'direct_fallback', 'size' => strlen($content)), 300);
}
});
// CUSTOM-H1-RESTORE-END
Commercial Fire Alarms, Smoke Sensors & Bases | Life Safety Consultants
-

STI (EF080804-O) Fiberglass Enclosure, 8 x 8 x 4, Opaque
$165.99
Read more
-

STI (EF080604-W) Fiberglass Enclosure, 8 x 6 x 4, with Window
$209.00
Read more
-

STI (EF080604-O) Fiberglass Enclosure, 8 x 6 x 4, Opaque
$151.99
Read more
-

STI (EF060604-W) Fiberglass Enclosure, 6 x 6 x 4, with Window
$225.00
Read more
-

STI (EF060604-O) Fiberglass Enclosure, 6 x 6 x 4, Opaque
$149.99
Read more
-

STI (EFAPBKT) Stationary Panel Bracket Kit
$38.75
Read more
-

STI (EFSPBKT) Swing Panel Bracket Kit
$38.75
Read more
-

STI (EF10POST) Corner Post Kit
$38.75
Read more
-

STI (EF8POST) Corner Post Kit
$36.00
Read more
-

STI (EF6POST) Corner Post Kit
$18.50
Read more
-

STI (EF4POST) Corner Post Kit
$27.00
Read more
-

STI (BPA4836) Aluminum Back Panel 48 x 36
$475.00
Read more