| 
					
				 | 
			
			
				@@ -24,23 +24,13 @@ function rsettings($_action, $_data = null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         );
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      try {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $stmt = $pdo->prepare("INSERT INTO `settingsmap` (`content`, `desc`, `active`)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          VALUES (:content, :desc, :active)");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $stmt->execute(array(
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          ':content' => $content,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          ':desc' => $desc,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          ':active' => $active
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ));
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      catch (PDOException $e) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $_SESSION['return'][] = array(
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'type' => 'danger',
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'log' => array(__FUNCTION__, $_action, $_data_log),
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'msg' => array('mysql_error', $e)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        );
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      $stmt = $pdo->prepare("INSERT INTO `settingsmap` (`content`, `desc`, `active`)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        VALUES (:content, :desc, :active)");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      $stmt->execute(array(
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ':content' => $content,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ':desc' => $desc,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ':active' => $active
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ));
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       $_SESSION['return'][] = array(
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         'type' => 'success',
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         'log' => array(__FUNCTION__, $_action, $_data_log),
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -73,27 +63,17 @@ function rsettings($_action, $_data = null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           continue;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         $content = trim($content);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        try {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          $stmt = $pdo->prepare("UPDATE `settingsmap` SET
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            `content` = :content,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            `desc` = :desc,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            `active` = :active
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              WHERE `id` = :id");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          $stmt->execute(array(
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            ':content' => $content,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            ':desc' => $desc,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            ':active' => $active,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            ':id' => $id
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          ));
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        catch (PDOException $e) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          $_SESSION['return'][] = array(
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            'type' => 'danger',
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            'log' => array(__FUNCTION__, $_action, $_data_log),
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            'msg' => array('mysql_error', $e)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          );
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          continue;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $stmt = $pdo->prepare("UPDATE `settingsmap` SET
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          `content` = :content,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          `desc` = :desc,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          `active` = :active
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            WHERE `id` = :id");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $stmt->execute(array(
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          ':content' => $content,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          ':desc' => $desc,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          ':active' => $active,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          ':id' => $id
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ));
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         $_SESSION['return'][] = array(
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           'type' => 'success',
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           'log' => array(__FUNCTION__, $_action, $_data_log),
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -112,18 +92,8 @@ function rsettings($_action, $_data = null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       $ids = (array)$_data['id'];
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       foreach ($ids as $id) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        try {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          $stmt = $pdo->prepare("DELETE FROM `settingsmap` WHERE `id`= :id");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          $stmt->execute(array(':id' => $id));
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        catch (PDOException $e) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          $_SESSION['return'][] = array(
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            'type' => 'danger',
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            'log' => array(__FUNCTION__, $_action, $_data_log),
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            'msg' => array('mysql_error', $e)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          );
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          return false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $stmt = $pdo->prepare("DELETE FROM `settingsmap` WHERE `id`= :id");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $stmt->execute(array(':id' => $id));
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         $_SESSION['return'][] = array(
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           'type' => 'success',
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           'log' => array(__FUNCTION__, $_action, $_data_log),
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -157,55 +127,12 @@ function rsettings($_action, $_data = null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     break;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-function rspamd($_action, $_data = null) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function rspamd_maps($_action, $_data = null) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	global $pdo;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	global $lang;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	global $RSPAMD_MAPS;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   $_data_log = $_data;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   switch ($_action) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    case 'add':
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      if ($_SESSION['mailcow_cc_role'] != "admin") {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $_SESSION['return'][] = array(
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'type' => 'danger',
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'log' => array(__FUNCTION__, $_action, $_data_log),
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'msg' => 'access_denied'
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        );
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $content = $_data['content'];
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $desc = $_data['desc'];
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $active = intval($_data['active']);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      if (empty($content)) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $_SESSION['return'][] = array(
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'type' => 'danger',
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'log' => array(__FUNCTION__, $_action, $_data_log),
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'msg' => 'map_content_empty'
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        );
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      try {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $stmt = $pdo->prepare("INSERT INTO `settingsmap` (`content`, `desc`, `active`)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          VALUES (:content, :desc, :active)");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $stmt->execute(array(
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          ':content' => $content,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          ':desc' => $desc,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          ':active' => $active
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ));
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      catch (PDOException $e) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $_SESSION['return'][] = array(
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'type' => 'danger',
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'log' => array(__FUNCTION__, $_action, $_data_log),
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'msg' => array('mysql_error', $e)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        );
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $_SESSION['return'][] = array(
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'type' => 'success',
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'log' => array(__FUNCTION__, $_action, $_data_log),
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'msg' => 'settings_map_added'
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      );
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    break;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     case 'edit':
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       if ($_SESSION['mailcow_cc_role'] != "admin") {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         $_SESSION['return'][] = array(
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -255,59 +182,30 @@ function rspamd($_action, $_data = null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         );
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     break;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    case 'delete':
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      if ($_SESSION['mailcow_cc_role'] != "admin") {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $_SESSION['return'][] = array(
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'type' => 'danger',
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'log' => array(__FUNCTION__, $_action, $_data_log),
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'msg' => 'access_denied'
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        );
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $ids = (array)$_data['id'];
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      foreach ($ids as $id) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        try {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          $stmt = $pdo->prepare("DELETE FROM `settingsmap` WHERE `id`= :id");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          $stmt->execute(array(':id' => $id));
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        catch (PDOException $e) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          $_SESSION['return'][] = array(
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            'type' => 'danger',
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            'log' => array(__FUNCTION__, $_action, $_data_log),
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            'msg' => array('mysql_error', $e)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          );
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          return false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $_SESSION['return'][] = array(
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'type' => 'success',
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'log' => array(__FUNCTION__, $_action, $_data_log),
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'msg' => array('settings_map_removed', htmlspecialchars($id))
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        );
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    break;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    case 'get':
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      if ($_SESSION['mailcow_cc_role'] != "admin") {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $settingsmaps = array();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $stmt = $pdo->query("SELECT `id`, `desc`, `active` FROM `settingsmap`");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $settingsmaps = $stmt->fetchAll(PDO::FETCH_ASSOC);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      return $settingsmaps;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    break;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    case 'details':
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      if ($_SESSION['mailcow_cc_role'] != "admin" || !isset($_data)) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $settingsmapdata = array();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $stmt = $pdo->prepare("SELECT `id`,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        `desc`,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        `content`,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        `active`
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          FROM `settingsmap`
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            WHERE `id` = :id");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $stmt->execute(array(':id' => $_data));
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $settingsmapdata = $stmt->fetch(PDO::FETCH_ASSOC);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      return $settingsmapdata;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    break;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function rspamd_actions() {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if (isset($_SESSION["mailcow_cc_role"]) && $_SESSION["mailcow_cc_role"] == "admin") {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $curl = curl_init();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    curl_setopt($curl, CURLOPT_UNIX_SOCKET_PATH, '/var/lib/rspamd/rspamd.sock');
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    curl_setopt($curl, CURLOPT_URL,"http://rspamd/stat");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $data = curl_exec($curl);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if ($data) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      $return = array();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      $stats_array = json_decode($data, true)['actions'];
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      $stats_array['soft reject'] = $stats_array['soft reject'] + $stats_array['greylist'];
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      unset($stats_array['greylist']);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      foreach ($stats_array as $action => $count) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $return[] = array($action, $count);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return $return;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    else {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  else {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}
 
			 |