diff --git a/civicrm.php b/civicrm.php
index 7823dd0fb3fa147fbaed6ea81c3a2ec66b35a6f8..f9f170e6bfb517a0d063ed3ba41b7c699c05de57 100644
--- a/civicrm.php
+++ b/civicrm.php
@@ -2,7 +2,7 @@
 /**
  * Plugin Name: CiviCRM
  * Description: CiviCRM - Growing and Sustaining Relationships
- * Version: 5.60.0
+ * Version: 5.61.0
  * Requires at least: 4.9
  * Requires PHP:      7.3
  * Author: CiviCRM LLC
@@ -36,7 +36,7 @@ if (!defined('ABSPATH')) {
 }
 
 // Set version here: changing it forces Javascript and CSS to reload.
-define('CIVICRM_PLUGIN_VERSION', '5.60.0');
+define('CIVICRM_PLUGIN_VERSION', '5.61.0');
 
 // Store reference to this file.
 if (!defined('CIVICRM_PLUGIN_FILE')) {
diff --git a/civicrm/CRM/ACL/API.php b/civicrm/CRM/ACL/API.php
index 1bafc8b8b615cc9d3c20ae51c83350926b33ef11..d9739d48d78120e77e6fe1f88d967684d6b3a696 100644
--- a/civicrm/CRM/ACL/API.php
+++ b/civicrm/CRM/ACL/API.php
@@ -196,7 +196,7 @@ class CRM_ACL_API {
 
     $key = "{$tableName}_{$type}_{$contactID}";
     if (!array_key_exists($key, Civi::$statics[__CLASS__]['group_permission'])) {
-      Civi::$statics[__CLASS__]['group_permission'][$key] = self::group($type, $contactID, $tableName, $allGroups, $includedGroups);
+      Civi::$statics[__CLASS__]['group_permission'][$key] = self::group($type, $contactID, $tableName, $allGroups, $includedGroups ?? []);
     }
 
     return in_array($groupID, Civi::$statics[__CLASS__]['group_permission'][$key]);
diff --git a/civicrm/CRM/ACL/BAO/ACL.php b/civicrm/CRM/ACL/BAO/ACL.php
index 89067de60a4c7a86268dfebe954fe87cf9da331c..2e78ea666fbbab92a19cbb666e909a99bb2dab16 100644
--- a/civicrm/CRM/ACL/BAO/ACL.php
+++ b/civicrm/CRM/ACL/BAO/ACL.php
@@ -146,15 +146,13 @@ SELECT acl.*
   }
 
   /**
+   * @deprecated
    * @param array $params
-   *
    * @return CRM_ACL_DAO_ACL
    */
   public static function create($params) {
-    $dao = new CRM_ACL_DAO_ACL();
-    $dao->copyValues($params);
-    $dao->save();
-    return $dao;
+    CRM_Core_Error::deprecatedFunctionWarning('writeRecord');
+    return self::writeRecord($params);
   }
 
   /**
@@ -175,21 +173,13 @@ SELECT acl.*
   }
 
   /**
-   * Update the is_active flag in the db.
-   *
+   * @deprecated - this bypasses hooks.
    * @param int $id
-   *   Id of the database record.
    * @param bool $is_active
-   *   Value we want to set the is_active field.
-   *
    * @return bool
-   *   true if we found and updated the object, else false
    */
   public static function setIsActive($id, $is_active) {
-    Civi::cache('fields')->flush();
-    // reset ACL and system caches.
-    CRM_Core_BAO_Cache::resetCaches();
-
+    CRM_Core_Error::deprecatedFunctionWarning('writeRecord');
     return CRM_Core_DAO::setFieldValue('CRM_ACL_DAO_ACL', $id, 'is_active', $is_active);
   }
 
diff --git a/civicrm/CRM/ACL/BAO/ACLEntityRole.php b/civicrm/CRM/ACL/BAO/ACLEntityRole.php
index a892cf4ac70dac8d3cd1f8ad8dc021b1ea7755ac..26ae773ad1c28479570a474bd01bf1c299655c4f 100644
--- a/civicrm/CRM/ACL/BAO/ACLEntityRole.php
+++ b/civicrm/CRM/ACL/BAO/ACLEntityRole.php
@@ -61,17 +61,13 @@ class CRM_ACL_BAO_ACLEntityRole extends CRM_ACL_DAO_ACLEntityRole {
   }
 
   /**
-   * Update the is_active flag in the db.
-   *
+   * @deprecated - this bypasses hooks.
    * @param int $id
-   *   Id of the database record.
    * @param bool $is_active
-   *   Value we want to set the is_active field.
-   *
    * @return bool
-   *   true if we found and updated the object, else false
    */
   public static function setIsActive($id, $is_active) {
+    CRM_Core_Error::deprecatedFunctionWarning('writeRecord');
     return CRM_Core_DAO::setFieldValue(__CLASS__, $id, 'is_active', $is_active);
   }
 
diff --git a/civicrm/CRM/ACL/DAO/ACL.php b/civicrm/CRM/ACL/DAO/ACL.php
index d599eefa8a31cab6d6cfb8ea43cc38c7a6dbfd03..16e184652ae700cde9b01f0679fb7687b031d2c2 100644
--- a/civicrm/CRM/ACL/DAO/ACL.php
+++ b/civicrm/CRM/ACL/DAO/ACL.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/ACL/ACL.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:0a9aa9a0e10b02045039a404518261e2)
+ * (GenCodeChecksum:f21ef3073d6247d130341cd182793ea6)
  */
 
 /**
@@ -176,6 +176,12 @@ class CRM_ACL_DAO_ACL extends CRM_Core_DAO {
           'title' => ts('ACL ID'),
           'description' => ts('Unique table ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_acl.id',
           'table_name' => 'civicrm_acl',
           'entity' => 'ACL',
@@ -194,6 +200,12 @@ class CRM_ACL_DAO_ACL extends CRM_Core_DAO {
           'description' => ts('ACL Name.'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_acl.name',
           'table_name' => 'civicrm_acl',
           'entity' => 'ACL',
@@ -210,6 +222,12 @@ class CRM_ACL_DAO_ACL extends CRM_Core_DAO {
           'title' => ts('Deny ACL?'),
           'description' => ts('Is this ACL entry Allow  (0) or Deny (1) ?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_acl.deny',
           'default' => '0',
           'table_name' => 'civicrm_acl',
@@ -229,6 +247,12 @@ class CRM_ACL_DAO_ACL extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_acl.entity_table',
           'table_name' => 'civicrm_acl',
           'entity' => 'ACL',
@@ -241,6 +265,12 @@ class CRM_ACL_DAO_ACL extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Entity ID'),
           'description' => ts('ID of the object possessing this ACL'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_acl.entity_id',
           'table_name' => 'civicrm_acl',
           'entity' => 'ACL',
@@ -256,6 +286,12 @@ class CRM_ACL_DAO_ACL extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 8,
           'size' => CRM_Utils_Type::EIGHT,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_acl.operation',
           'table_name' => 'civicrm_acl',
           'entity' => 'ACL',
@@ -276,6 +312,12 @@ class CRM_ACL_DAO_ACL extends CRM_Core_DAO {
           'description' => ts('The table of the object controlled by this ACL entry'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_acl.object_table',
           'table_name' => 'civicrm_acl',
           'entity' => 'ACL',
@@ -288,6 +330,12 @@ class CRM_ACL_DAO_ACL extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('ACL Object ID'),
           'description' => ts('The ID of the object controlled by this ACL entry'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_acl.object_id',
           'table_name' => 'civicrm_acl',
           'entity' => 'ACL',
@@ -302,6 +350,12 @@ class CRM_ACL_DAO_ACL extends CRM_Core_DAO {
           'description' => ts('If this is a grant/revoke entry, what table are we granting?'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_acl.acl_table',
           'table_name' => 'civicrm_acl',
           'entity' => 'ACL',
@@ -314,6 +368,12 @@ class CRM_ACL_DAO_ACL extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('ACL Group ID'),
           'description' => ts('ID of the ACL or ACL group being granted/revoked'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_acl.acl_id',
           'table_name' => 'civicrm_acl',
           'entity' => 'ACL',
@@ -326,6 +386,12 @@ class CRM_ACL_DAO_ACL extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_BOOLEAN,
           'title' => ts('ACL Is Active?'),
           'description' => ts('Is this property active?'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_acl.is_active',
           'table_name' => 'civicrm_acl',
           'entity' => 'ACL',
diff --git a/civicrm/CRM/ACL/DAO/ACLCache.php b/civicrm/CRM/ACL/DAO/ACLCache.php
index 6b488907a637ae2d1e51393f37893df6abac7105..f49215ecb06bdf4c6266b2de281ff5e0ba767550 100644
--- a/civicrm/CRM/ACL/DAO/ACLCache.php
+++ b/civicrm/CRM/ACL/DAO/ACLCache.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/ACL/ACLCache.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:d7c69e5c465c096d3a8af87dbf2ae013)
+ * (GenCodeChecksum:9c12474c5ca5cb7ebdd2863c0d196fdd)
  */
 
 /**
@@ -113,6 +113,12 @@ class CRM_ACL_DAO_ACLCache extends CRM_Core_DAO {
           'title' => ts('Cache ID'),
           'description' => ts('Unique table ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_acl_cache.id',
           'table_name' => 'civicrm_acl_cache',
           'entity' => 'ACLCache',
@@ -129,6 +135,12 @@ class CRM_ACL_DAO_ACLCache extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Contact ID'),
           'description' => ts('Foreign Key to Contact'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_acl_cache.contact_id',
           'table_name' => 'civicrm_acl_cache',
           'entity' => 'ACLCache',
@@ -146,6 +158,12 @@ class CRM_ACL_DAO_ACLCache extends CRM_Core_DAO {
           'title' => ts('ACL ID'),
           'description' => ts('Foreign Key to ACL'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_acl_cache.acl_id',
           'table_name' => 'civicrm_acl_cache',
           'entity' => 'ACLCache',
@@ -168,6 +186,12 @@ class CRM_ACL_DAO_ACLCache extends CRM_Core_DAO {
           'title' => ts('Cache Modified Date'),
           'description' => ts('When was this cache entry last modified'),
           'required' => FALSE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_acl_cache.modified_date',
           'table_name' => 'civicrm_acl_cache',
           'entity' => 'ACLCache',
diff --git a/civicrm/CRM/ACL/DAO/ACLEntityRole.php b/civicrm/CRM/ACL/DAO/ACLEntityRole.php
index 7fce4ac390033ad9f9559a728e83613b97ca5ecd..bc2b657cee0d110ba07120b60337d8a66ad4a004 100644
--- a/civicrm/CRM/ACL/DAO/ACLEntityRole.php
+++ b/civicrm/CRM/ACL/DAO/ACLEntityRole.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/ACL/ACLEntityRole.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:0003d41a7094d44c70b9879d954f8317)
+ * (GenCodeChecksum:aef394216d8ee905ec5ab98cdee3209e)
  */
 
 /**
@@ -122,6 +122,12 @@ class CRM_ACL_DAO_ACLEntityRole extends CRM_Core_DAO {
           'title' => ts('Entity Role'),
           'description' => ts('Unique table ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_acl_entity_role.id',
           'table_name' => 'civicrm_acl_entity_role',
           'entity' => 'ACLEntityRole',
@@ -139,6 +145,12 @@ class CRM_ACL_DAO_ACLEntityRole extends CRM_Core_DAO {
           'title' => ts('ACL Role ID'),
           'description' => ts('Foreign Key to ACL Role (which is an option value pair and hence an implicit FK)'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_acl_entity_role.acl_role_id',
           'table_name' => 'civicrm_acl_entity_role',
           'entity' => 'ACLEntityRole',
@@ -158,6 +170,12 @@ class CRM_ACL_DAO_ACLEntityRole extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_acl_entity_role.entity_table',
           'table_name' => 'civicrm_acl_entity_role',
           'entity' => 'ACLEntityRole',
@@ -174,6 +192,12 @@ class CRM_ACL_DAO_ACLEntityRole extends CRM_Core_DAO {
           'title' => ts('ACL Entity ID'),
           'description' => ts('ID of the group/contact object being joined'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_acl_entity_role.entity_id',
           'table_name' => 'civicrm_acl_entity_role',
           'entity' => 'ACLEntityRole',
@@ -187,6 +211,12 @@ class CRM_ACL_DAO_ACLEntityRole extends CRM_Core_DAO {
           'title' => ts('ACL Entity Role is Active'),
           'description' => ts('Is this property active?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_acl_entity_role.is_active',
           'default' => '1',
           'table_name' => 'civicrm_acl_entity_role',
diff --git a/civicrm/CRM/ACL/Form/ACL.php b/civicrm/CRM/ACL/Form/ACL.php
index 61138975ce3e0845e305cf2fbee6e30ebd411f11..809793014a01e64a793234f11aeaab1767a2a8fe 100644
--- a/civicrm/CRM/ACL/Form/ACL.php
+++ b/civicrm/CRM/ACL/Form/ACL.php
@@ -283,7 +283,7 @@ class CRM_ACL_Form_ACL extends CRM_Admin_Form {
         $params['id'] = $this->_id;
       }
 
-      CRM_ACL_BAO_ACL::create($params);
+      CRM_ACL_BAO_ACL::writeRecord($params);
     }
   }
 
diff --git a/civicrm/CRM/ACL/Form/ACLBasic.php b/civicrm/CRM/ACL/Form/ACLBasic.php
index 401e279d6ac712c5e0e39822701a66b3245b01a1..f6df1a4a195012bf2371bfadbb2e10b792ecf9c5 100644
--- a/civicrm/CRM/ACL/Form/ACLBasic.php
+++ b/civicrm/CRM/ACL/Form/ACLBasic.php
@@ -132,7 +132,7 @@ DELETE
         $newParams = $params;
         unset($newParams['object_table']);
         $newParams['object_table'] = $object_table;
-        CRM_ACL_BAO_ACL::create($newParams);
+        CRM_ACL_BAO_ACL::writeRecord($newParams);
       }
     }
   }
diff --git a/civicrm/CRM/Activity/BAO/ActivityAssignment.php b/civicrm/CRM/Activity/BAO/ActivityAssignment.php
index 95dde5bc0d3c23f61f9dcfafcb939b4b5cb784ae..de463a195515530c644c2332b0ef29caa98c8fed 100644
--- a/civicrm/CRM/Activity/BAO/ActivityAssignment.php
+++ b/civicrm/CRM/Activity/BAO/ActivityAssignment.php
@@ -20,63 +20,6 @@
  */
 class CRM_Activity_BAO_ActivityAssignment extends CRM_Activity_DAO_ActivityContact {
 
-  /**
-   * Add activity assignment.
-   *
-   * @param array $params
-   *   (reference ) an assoc array of name/value pairs.
-   *
-   * @return object
-   *   activity type of object that is added
-   */
-  public static function create(&$params) {
-    $assignment = new CRM_Activity_BAO_ActivityContact();
-    $activityContacts = CRM_Activity_BAO_ActivityContact::buildOptions('record_type_id', 'validate');
-    $assigneeID = CRM_Utils_Array::key('Activity Assignees', $activityContacts);
-
-    $assignment->copyValues($params);
-    $assignment->record_type_id = $assigneeID;
-
-    return $assignment->save();
-  }
-
-  /**
-   * Retrieve assignee_id by activity_id.
-   *
-   * @param int $activity_id
-   *
-   * @return array
-   */
-  public static function retrieveAssigneeIdsByActivityId($activity_id) {
-    $assigneeArray = [];
-    if (!CRM_Utils_Rule::positiveInteger($activity_id)) {
-      return $assigneeArray;
-    }
-
-    $activityContacts = CRM_Activity_BAO_ActivityContact::buildOptions('record_type_id', 'validate');
-    $assigneeID = CRM_Utils_Array::key('Activity Assignees', $activityContacts);
-
-    $sql = "
-SELECT     contact_id
-FROM       civicrm_activity_contact
-INNER JOIN civicrm_contact ON contact_id = civicrm_contact.id
-WHERE      activity_id = %1
-AND        record_type_id = $assigneeID
-AND        civicrm_contact.is_deleted = 0
-";
-    $assignment = CRM_Core_DAO::executeQuery($sql, [
-      1 => [
-        $activity_id,
-        'Integer',
-      ],
-    ]);
-    while ($assignment->fetch()) {
-      $assigneeArray[] = $assignment->contact_id;
-    }
-
-    return $assigneeArray;
-  }
-
   /**
    * Retrieve assignee names by activity_id.
    *
diff --git a/civicrm/CRM/Activity/BAO/ActivityTarget.php b/civicrm/CRM/Activity/BAO/ActivityTarget.php
deleted file mode 100644
index d20c3b581b71666d97f66e83b9442c726ec3d19d..0000000000000000000000000000000000000000
--- a/civicrm/CRM/Activity/BAO/ActivityTarget.php
+++ /dev/null
@@ -1,111 +0,0 @@
-<?php
-/*
- +--------------------------------------------------------------------+
- | Copyright CiviCRM LLC. All rights reserved.                        |
- |                                                                    |
- | This work is published under the GNU AGPLv3 license with some      |
- | permitted exceptions and without any warranty. For full license    |
- | and copyright information, see https://civicrm.org/licensing       |
- +--------------------------------------------------------------------+
- */
-
-/**
- *
- * @package CRM
- * @copyright CiviCRM LLC https://civicrm.org/licensing
- */
-
-/**
- * This class is for activity assignment functions.
- */
-class CRM_Activity_BAO_ActivityTarget extends CRM_Activity_DAO_ActivityContact {
-
-  /**
-   * Add activity target.
-   *
-   * @param array $params
-   *
-   * @return object
-   *   activity type of object that is added
-   */
-  public static function create(&$params) {
-    $target = new CRM_Activity_BAO_ActivityContact();
-    $activityContacts = CRM_Activity_BAO_ActivityContact::buildOptions('record_type_id', 'validate');
-    $targetID = CRM_Utils_Array::key('Activity Targets', $activityContacts);
-
-    $target->copyValues($params);
-    $target->record_type_id = $targetID;
-    return $target->save();
-  }
-
-  /**
-   * Retrieve id of target contact by activity_id.
-   *
-   * @param int $activity_id
-   *
-   * @return mixed
-   */
-  public static function retrieveTargetIdsByActivityId($activity_id) {
-    $targetArray = [];
-    if (!CRM_Utils_Rule::positiveInteger($activity_id)) {
-      return $targetArray;
-    }
-
-    $activityContacts = CRM_Activity_BAO_ActivityContact::buildOptions('record_type_id', 'validate');
-    $targetID = CRM_Utils_Array::key('Activity Targets', $activityContacts);
-
-    $sql = "
-SELECT     contact_id
-FROM       civicrm_activity_contact
-INNER JOIN civicrm_contact ON contact_id = civicrm_contact.id
-WHERE      activity_id = %1
-AND        record_type_id = $targetID
-AND        civicrm_contact.is_deleted = 0
-";
-    $target = CRM_Core_DAO::executeQuery($sql, [
-      1 => [
-        $activity_id,
-        'Integer',
-      ],
-    ]);
-    while ($target->fetch()) {
-      $targetArray[] = $target->contact_id;
-    }
-    return $targetArray;
-  }
-
-  /**
-   * Retrieve names of target contact by activity_id.
-   *
-   * @param int $activityID
-   *
-   * @return array
-   */
-  public static function getTargetNames($activityID) {
-    $targetNames = [];
-
-    if (empty($activityID)) {
-      return $targetNames;
-    }
-    $activityContacts = CRM_Activity_BAO_ActivityContact::buildOptions('record_type_id', 'validate');
-    $targetID = CRM_Utils_Array::key('Activity Targets', $activityContacts);
-
-    $query = "
-SELECT     contact_a.id, contact_a.sort_name
-FROM       civicrm_contact contact_a
-INNER JOIN civicrm_activity_contact ON civicrm_activity_contact.contact_id = contact_a.id
-WHERE      civicrm_activity_contact.activity_id = %1
-AND        civicrm_activity_contact.record_type_id = $targetID
-AND        contact_a.is_deleted = 0
-";
-    $queryParam = [1 => [$activityID, 'Integer']];
-
-    $dao = CRM_Core_DAO::executeQuery($query, $queryParam);
-    while ($dao->fetch()) {
-      $targetNames[$dao->id] = $dao->sort_name;
-    }
-
-    return $targetNames;
-  }
-
-}
diff --git a/civicrm/CRM/Activity/DAO/Activity.php b/civicrm/CRM/Activity/DAO/Activity.php
index e94b512627fdf5e35740a8da44de5ac3591ad13b..bf375175615145d6d9698d24224006fff2861fa1 100644
--- a/civicrm/CRM/Activity/DAO/Activity.php
+++ b/civicrm/CRM/Activity/DAO/Activity.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Activity/Activity.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:da92f18bd933a14d180cfccfdb3fdb03)
+ * (GenCodeChecksum:e1adbd9104050ebb0d274cf885a2de67)
  */
 
 /**
@@ -356,6 +356,12 @@ class CRM_Activity_DAO_Activity extends CRM_Core_DAO {
           'title' => ts('Activity ID'),
           'description' => ts('Unique  Other Activity ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_activity.id',
           'export' => TRUE,
@@ -374,6 +380,12 @@ class CRM_Activity_DAO_Activity extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Source Record'),
           'description' => ts('Artificial FK to original transaction (e.g. contribution) IF it is not an Activity. Entity table is discovered by filtering by the appropriate activity_type_id.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_activity.source_record_id',
           'table_name' => 'civicrm_activity',
           'entity' => 'Activity',
@@ -388,6 +400,12 @@ class CRM_Activity_DAO_Activity extends CRM_Core_DAO {
           'title' => ts('Activity Type ID'),
           'description' => ts('FK to civicrm_option_value.id, that has to be valid, registered activity type.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_activity.activity_type_id',
           'headerPattern' => '/(activity.)?type(.id$)/i',
@@ -414,6 +432,12 @@ class CRM_Activity_DAO_Activity extends CRM_Core_DAO {
           'description' => ts('The subject/purpose/short description of the activity.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_activity.subject',
           'headerPattern' => '/(activity.)?subject/i',
@@ -433,6 +457,12 @@ class CRM_Activity_DAO_Activity extends CRM_Core_DAO {
           'title' => ts('Activity Date'),
           'description' => ts('Date and time this activity is scheduled to occur. Formerly named scheduled_date_time.'),
           'required' => FALSE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_activity.activity_date_time',
           'headerPattern' => '/(activity.)?date(.time$)?/i',
@@ -453,6 +483,12 @@ class CRM_Activity_DAO_Activity extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Duration'),
           'description' => ts('Planned or actual duration of activity expressed in minutes. Conglomerate of former duration_hours and duration_minutes.'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_activity.duration',
           'headerPattern' => '/(activity.)?duration(s)?$/i',
@@ -473,6 +509,12 @@ class CRM_Activity_DAO_Activity extends CRM_Core_DAO {
           'description' => ts('Location of the activity (optional, open text).'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_activity.location',
           'headerPattern' => '/(activity.)?location$/i',
@@ -491,6 +533,12 @@ class CRM_Activity_DAO_Activity extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Phone ID (called)'),
           'description' => ts('Phone ID of the number called (optional - used if an existing phone number is selected).'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_activity.phone_id',
           'table_name' => 'civicrm_activity',
           'entity' => 'Activity',
@@ -511,6 +559,12 @@ class CRM_Activity_DAO_Activity extends CRM_Core_DAO {
           'description' => ts('Phone number in case the number does not exist in the civicrm_phone table.'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_activity.phone_number',
           'table_name' => 'civicrm_activity',
           'entity' => 'Activity',
@@ -527,6 +581,12 @@ class CRM_Activity_DAO_Activity extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_LONGTEXT,
           'title' => ts('Details'),
           'description' => ts('Details about the activity (agenda, notes, etc).'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_activity.details',
           'headerPattern' => '/(activity.)?detail(s)?$/i',
@@ -545,6 +605,12 @@ class CRM_Activity_DAO_Activity extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Activity Status'),
           'description' => ts('ID of the status this activity is currently in. Foreign key to civicrm_option_value.'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_activity.status_id',
           'headerPattern' => '/(activity.)?status(.label$)?/i',
@@ -567,6 +633,12 @@ class CRM_Activity_DAO_Activity extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Priority'),
           'description' => ts('ID of the priority given to this activity. Foreign key to civicrm_option_value.'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_activity.priority_id',
           'export' => TRUE,
@@ -588,6 +660,12 @@ class CRM_Activity_DAO_Activity extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Parent Activity ID'),
           'description' => ts('Parent meeting ID (if this is a follow-up item).'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_activity.parent_id',
           'table_name' => 'civicrm_activity',
           'entity' => 'Activity',
@@ -605,6 +683,12 @@ class CRM_Activity_DAO_Activity extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_BOOLEAN,
           'title' => ts('Test'),
           'required' => TRUE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_activity.is_test',
           'headerPattern' => '/(is.)?test(.activity)?/i',
@@ -624,6 +708,12 @@ class CRM_Activity_DAO_Activity extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Activity Medium'),
           'description' => ts('Activity Medium, Implicit FK to civicrm_option_value where option_group = encounter_medium.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_activity.medium_id',
           'default' => NULL,
           'table_name' => 'civicrm_activity',
@@ -644,6 +734,12 @@ class CRM_Activity_DAO_Activity extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_BOOLEAN,
           'title' => ts('Auto'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_activity.is_auto',
           'default' => '0',
           'table_name' => 'civicrm_activity',
@@ -657,6 +753,12 @@ class CRM_Activity_DAO_Activity extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Relationship ID'),
           'description' => ts('FK to Relationship ID'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_activity.relationship_id',
           'default' => NULL,
           'table_name' => 'civicrm_activity',
@@ -676,6 +778,12 @@ class CRM_Activity_DAO_Activity extends CRM_Core_DAO {
           'title' => ts('Is current (unused)'),
           'description' => ts('Unused deprecated column.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_activity.is_current_revision',
           'default' => '1',
           'table_name' => 'civicrm_activity',
@@ -690,6 +798,12 @@ class CRM_Activity_DAO_Activity extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Original ID (unused)'),
           'description' => ts('Unused deprecated column.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_activity.original_id',
           'table_name' => 'civicrm_activity',
           'entity' => 'Activity',
@@ -710,6 +824,12 @@ class CRM_Activity_DAO_Activity extends CRM_Core_DAO {
           'description' => ts('Currently being used to store result id for survey activity, FK to option value.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_activity.result',
           'table_name' => 'civicrm_activity',
           'entity' => 'Activity',
@@ -722,6 +842,12 @@ class CRM_Activity_DAO_Activity extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_BOOLEAN,
           'title' => ts('Activity is in the Trash'),
           'required' => TRUE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_activity.is_deleted',
           'headerPattern' => '/(activity.)?(trash|deleted)/i',
@@ -741,6 +867,12 @@ class CRM_Activity_DAO_Activity extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Campaign ID'),
           'description' => ts('The campaign for which this activity has been triggered.'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_activity.campaign_id',
           'export' => TRUE,
@@ -767,6 +899,12 @@ class CRM_Activity_DAO_Activity extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Engagement Index'),
           'description' => ts('Assign a specific level of engagement to this activity. Used for tracking constituents in ladder of engagement.'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_activity.engagement_level',
           'export' => TRUE,
@@ -787,6 +925,12 @@ class CRM_Activity_DAO_Activity extends CRM_Core_DAO {
           'name' => 'weight',
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Order'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_activity.weight',
           'table_name' => 'civicrm_activity',
           'entity' => 'Activity',
@@ -800,6 +944,12 @@ class CRM_Activity_DAO_Activity extends CRM_Core_DAO {
           'title' => ts('Is Starred'),
           'description' => ts('Activity marked as favorite.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_activity.is_star',
           'headerPattern' => '/(activity.)?(star|favorite)/i',
@@ -820,6 +970,12 @@ class CRM_Activity_DAO_Activity extends CRM_Core_DAO {
           'title' => ts('Created Date'),
           'description' => ts('When was the activity was created.'),
           'required' => FALSE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => TRUE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_activity.created_date',
           'export' => TRUE,
           'default' => 'CURRENT_TIMESTAMP',
@@ -839,6 +995,12 @@ class CRM_Activity_DAO_Activity extends CRM_Core_DAO {
           'title' => ts('Modified Date'),
           'description' => ts('When was the activity (or closely related entity) was created or modified or deleted.'),
           'required' => FALSE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => TRUE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_activity.modified_date',
           'export' => TRUE,
           'default' => 'CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP',
diff --git a/civicrm/CRM/Activity/DAO/ActivityContact.php b/civicrm/CRM/Activity/DAO/ActivityContact.php
index d8c9b9b306e4e750374d0d8b279f616d1b9999a8..5f59d35b65c0951919af1c92713cccbe3db44999 100644
--- a/civicrm/CRM/Activity/DAO/ActivityContact.php
+++ b/civicrm/CRM/Activity/DAO/ActivityContact.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Activity/ActivityContact.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:a9da0f47b1a82c3cdd7e7aa311f07191)
+ * (GenCodeChecksum:fd1feb6c83534a381e35804ae722914d)
  */
 
 /**
@@ -114,6 +114,12 @@ class CRM_Activity_DAO_ActivityContact extends CRM_Core_DAO {
           'title' => ts('Activity Contact ID'),
           'description' => ts('Activity contact id'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_activity_contact.id',
           'table_name' => 'civicrm_activity_contact',
           'entity' => 'ActivityContact',
@@ -131,6 +137,12 @@ class CRM_Activity_DAO_ActivityContact extends CRM_Core_DAO {
           'title' => ts('Activity ID'),
           'description' => ts('Foreign key to the activity for this record.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_activity_contact.activity_id',
           'table_name' => 'civicrm_activity_contact',
           'entity' => 'ActivityContact',
@@ -148,6 +160,12 @@ class CRM_Activity_DAO_ActivityContact extends CRM_Core_DAO {
           'title' => ts('Contact ID'),
           'description' => ts('Foreign key to the contact for this record.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_activity_contact.contact_id',
           'export' => TRUE,
@@ -166,6 +184,12 @@ class CRM_Activity_DAO_ActivityContact extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Activity Contact Type'),
           'description' => ts('Determines the contact\'s role in the activity (source, target, or assignee).'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_activity_contact.record_type_id',
           'table_name' => 'civicrm_activity_contact',
           'entity' => 'ActivityContact',
diff --git a/civicrm/CRM/Activity/Form/Activity.php b/civicrm/CRM/Activity/Form/Activity.php
index c2e24fdcdb5280d799aa737a9862487070aedc33..849264a1772eebd95a387ee2821c0233eb4070c6 100644
--- a/civicrm/CRM/Activity/Form/Activity.php
+++ b/civicrm/CRM/Activity/Form/Activity.php
@@ -928,7 +928,10 @@ class CRM_Activity_Form_Activity extends CRM_Contact_Form_Task {
 
     // store the submitted values in an array
     if (!$params) {
-      $params = $this->controller->exportValues($this->_name);
+      $params = $this->getSubmittedValues();
+    }
+    else {
+      CRM_Core_Error::deprecatedWarning('passing params into postProcess is deprecated. Match parent function');
     }
 
     // Set activity type id.
diff --git a/civicrm/CRM/Activity/Form/Task/Batch.php b/civicrm/CRM/Activity/Form/Task/Batch.php
index db778bf1d173c6b61c719329033e85de7401cc24..1dff4f66cbcb8471af3f453475ad30ca511dedd1 100644
--- a/civicrm/CRM/Activity/Form/Task/Batch.php
+++ b/civicrm/CRM/Activity/Form/Task/Batch.php
@@ -68,11 +68,7 @@ class CRM_Activity_Form_Task_Batch extends CRM_Activity_Form_Task {
     $readOnlyFields['assignee_display_name'] = ts('Assigned to');
     if (!empty($contactDetails)) {
       foreach ($contactDetails as $key => $value) {
-        $assignee = CRM_Activity_BAO_ActivityAssignment::retrieveAssigneeIdsByActivityId($key);
-        $assigneeContact = [];
-        foreach ($assignee as $values) {
-          $assigneeContact[] = CRM_Contact_BAO_Contact::displayName($values);
-        }
+        $assigneeContact = CRM_Activity_BAO_ActivityAssignment::getAssigneeNames([$key], TRUE);
         $contactDetails[$key]['assignee_display_name'] = !empty($assigneeContact) ? implode(';', $assigneeContact) : NULL;
       }
     }
diff --git a/civicrm/CRM/Activity/Import/Form/MapField.php b/civicrm/CRM/Activity/Import/Form/MapField.php
index 6597972c63c966cc1dc8b7761c0d97a637efc6cf..2d79f4b5556641040af018631c6990461b96217f 100644
--- a/civicrm/CRM/Activity/Import/Form/MapField.php
+++ b/civicrm/CRM/Activity/Import/Form/MapField.php
@@ -20,6 +20,15 @@
  */
 class CRM_Activity_Import_Form_MapField extends CRM_Import_Form_MapField {
 
+  /**
+   * Get the name of the type to be stored in civicrm_user_job.type_id.
+   *
+   * @return string
+   */
+  public function getUserJobType(): string {
+    return 'activity_import';
+  }
+
   /**
    * @var bool
    */
diff --git a/civicrm/CRM/Activity/Import/Parser/Activity.php b/civicrm/CRM/Activity/Import/Parser/Activity.php
index 4f31f50c7e1c57b451bce124ef4a57f4df037abd..0517dd1abbf513e36dd8238766f26a4d215de943 100644
--- a/civicrm/CRM/Activity/Import/Parser/Activity.php
+++ b/civicrm/CRM/Activity/Import/Parser/Activity.php
@@ -40,6 +40,7 @@ class CRM_Activity_Import_Parser_Activity extends CRM_Import_Parser {
         'name' => 'activity_import',
         'label' => ts('Activity Import'),
         'entity' => 'Activity',
+        'url' => 'civicrm/import/activity',
       ],
     ];
   }
diff --git a/civicrm/CRM/Admin/Form/ContactType.php b/civicrm/CRM/Admin/Form/ContactType.php
index 20bedf59c5ccdb7034aeb893922449a3bffb318e..77b92cb89a5510ba84644c05b14b0f61313b65a5 100644
--- a/civicrm/CRM/Admin/Form/ContactType.php
+++ b/civicrm/CRM/Admin/Form/ContactType.php
@@ -117,11 +117,11 @@ class CRM_Admin_Form_ContactType extends CRM_Admin_Form {
     CRM_Utils_System::flushCache();
 
     if ($this->_action & CRM_Core_Action::DELETE) {
-      $isDelete = CRM_Contact_BAO_ContactType::del($this->_id);
-      if ($isDelete) {
+      try {
+        CRM_Contact_BAO_ContactType::deleteRecord(['id' => $this->_id]);
         CRM_Core_Session::setStatus(ts('Selected contact type has been deleted.'), ts('Record Deleted'), 'success');
       }
-      else {
+      catch (CRM_Core_Exception $e) {
         CRM_Core_Session::setStatus(ts("Selected contact type can not be deleted. Make sure contact type doesn't have any associated custom data or group."), ts('Sorry'), 'error');
       }
       return;
diff --git a/civicrm/CRM/Admin/Form/Job.php b/civicrm/CRM/Admin/Form/Job.php
index 3f11c76ac37769e9c37148ff089515f0129eddc4..d156f3a33dda92f78675a04362a2b148049e57cd 100644
--- a/civicrm/CRM/Admin/Form/Job.php
+++ b/civicrm/CRM/Admin/Form/Job.php
@@ -189,7 +189,7 @@ class CRM_Admin_Form_Job extends CRM_Admin_Form {
     CRM_Utils_System::flushCache();
 
     if ($this->_action & CRM_Core_Action::DELETE) {
-      CRM_Core_BAO_Job::del($this->_id);
+      CRM_Core_BAO_Job::deleteRecord(['id' => $this->_id]);
       CRM_Core_Session::setStatus("", ts('Scheduled Job Deleted.'), "success");
       return;
     }
diff --git a/civicrm/CRM/Admin/Form/LocationType.php b/civicrm/CRM/Admin/Form/LocationType.php
index bfbc0efa2202ee8a6cdb8d5660d2aba53c6e1569..e9a687b17c73608d2a03db90e49804bde0ebf799 100644
--- a/civicrm/CRM/Admin/Form/LocationType.php
+++ b/civicrm/CRM/Admin/Form/LocationType.php
@@ -85,7 +85,7 @@ class CRM_Admin_Form_LocationType extends CRM_Admin_Form {
     CRM_Utils_System::flushCache();
 
     if ($this->_action & CRM_Core_Action::DELETE) {
-      CRM_Core_BAO_LocationType::del($this->_id);
+      CRM_Core_BAO_LocationType::deleteRecord(['id' => $this->_id]);
       CRM_Core_Session::setStatus(ts('Selected Location type has been deleted.'), ts('Record Deleted'), 'success');
       return;
     }
diff --git a/civicrm/CRM/Admin/Form/Mapping.php b/civicrm/CRM/Admin/Form/Mapping.php
index b924ab1acfcec1cef34c21f2a6d971432b63e739..bf72f47c1d2a1d2088b49d728939909d99993c15 100644
--- a/civicrm/CRM/Admin/Form/Mapping.php
+++ b/civicrm/CRM/Admin/Form/Mapping.php
@@ -83,7 +83,7 @@ class CRM_Admin_Form_Mapping extends CRM_Admin_Form {
 
     if ($this->_action == CRM_Core_Action::DELETE) {
       if ($this->_id) {
-        CRM_Core_BAO_Mapping::del($this->_id);
+        CRM_Core_BAO_Mapping::deleteRecord(['id' => $this->_id]);
         CRM_Core_Session::setStatus(ts('Selected mapping has been deleted successfully.'), ts('Deleted'), 'success');
       }
     }
diff --git a/civicrm/CRM/Admin/Form/MessageTemplates.php b/civicrm/CRM/Admin/Form/MessageTemplates.php
index d4be6aaa9bbb9d52faa9387c7e3b553aa4d95d98..b38f1ff5a2b5b7e62754ecab06283c6fffd99cde 100644
--- a/civicrm/CRM/Admin/Form/MessageTemplates.php
+++ b/civicrm/CRM/Admin/Form/MessageTemplates.php
@@ -272,7 +272,8 @@ class CRM_Admin_Form_MessageTemplates extends CRM_Core_Form {
    */
   public function postProcess() {
     if ($this->_action & CRM_Core_Action::DELETE) {
-      CRM_Core_BAO_MessageTemplate::del($this->_id);
+      CRM_Core_BAO_MessageTemplate::deleteRecord(['id' => $this->_id]);
+      CRM_Core_Session::setStatus(ts('Selected message template has been deleted.'), ts('Deleted'), 'success');
 
       $this->postProcessHook();
     }
diff --git a/civicrm/CRM/Admin/Form/PaymentProcessor.php b/civicrm/CRM/Admin/Form/PaymentProcessor.php
index 014727e76b03fee3636478b829f2ae325a915f04..d247be00305c496ce2527cca5cdd9d23e0d9038a 100644
--- a/civicrm/CRM/Admin/Form/PaymentProcessor.php
+++ b/civicrm/CRM/Admin/Form/PaymentProcessor.php
@@ -40,39 +40,26 @@ class CRM_Admin_Form_PaymentProcessor extends CRM_Admin_Form {
   protected $_paymentProcessorType;
 
   /**
-   * Fields for the entity to be assigned to the template.
-   *
-   * Fields may have keys
-   *  - name (required to show in tpl from the array)
-   *  - description (optional, will appear below the field)
-   *     Auto-added by setEntityFieldsMetadata unless specified here (use description => '' to hide)
-   *  - not-auto-addable - this class will not attempt to add the field using addField.
-   *    (this will be automatically set if the field does not have html in it's metadata
-   *    or is not a core field on the form's entity).
-   *  - help (option) add help to the field - e.g ['id' => 'id-source', 'file' => 'CRM/Contact/Form/Contact']]
-   *  - template - use a field specific template to render this field
-   *  - required
-   *  - is_freeze (field should be frozen).
-   *
-   * @var array
+   * @var array|array[]
    */
-  protected $entityFields = [];
+  private $_fields;
 
   /**
    * Set entity fields to be assigned to the form.
    */
-  protected function setEntityFields() {
+  protected function setEntityFields(): void {
     $this->entityFields = [
       'payment_processor_type_id' => [
         'name' => 'payment_processor_type_id',
         'required' => TRUE,
       ],
-      'name' => [
-        'name' => 'name',
-        'required' => TRUE,
-      ],
       'title' => [
         'name' => 'title',
+        'required' => TRUE,
+      ],
+      'frontend_title' => [
+        'name' => 'frontend_title',
+        'required' => TRUE,
       ],
       'description' => [
         'name' => 'description',
@@ -107,34 +94,14 @@ class CRM_Admin_Form_PaymentProcessor extends CRM_Admin_Form {
    */
   public function preProcess() {
     parent::preProcess();
+    CRM_Core_Session::singleton()->pushUserContext('civicrm/admin/paymentProcessor?reset=1');
 
     $this->setPaymentProcessorTypeID();
     $this->setPaymentProcessor();
     $this->assign('ppType', $this->_paymentProcessorType);
     $this->assign('ppTypeName', $this->_paymentProcessorDAO->name);
 
-    if ($this->_id) {
-      $refreshURL = CRM_Utils_System::url('civicrm/admin/paymentProcessor/edit',
-        "reset=1&action=update&id={$this->_id}",
-        FALSE, NULL, FALSE
-      );
-    }
-    else {
-      $refreshURL = CRM_Utils_System::url('civicrm/admin/paymentProcessor/edit',
-        "reset=1&action=add",
-        FALSE, NULL, FALSE
-      );
-    }
-
-    //CRM-4129
-    $destination = CRM_Utils_Request::retrieve('civicrmDestination', 'String', $this);
-    if ($destination) {
-      $destination = urlencode($destination);
-      $refreshURL .= "&civicrmDestination=$destination";
-    }
-
-    $this->refreshURL = $refreshURL;
-    $this->assign('refreshURL', $refreshURL);
+    $this->assign('refreshURL', $this->getRefreshURL());
 
     $this->assign('is_recur', $this->_paymentProcessorDAO->is_recur);
 
@@ -195,6 +162,8 @@ class CRM_Admin_Form_PaymentProcessor extends CRM_Admin_Form {
    * Build the form object.
    *
    * @param bool $check
+   *
+   * @throws \CRM_Core_Exception
    */
   public function buildQuickForm($check = FALSE) {
     $this->buildQuickEntityForm();
@@ -205,13 +174,6 @@ class CRM_Admin_Form_PaymentProcessor extends CRM_Admin_Form {
 
     $attributes = CRM_Core_DAO::getAttribute('CRM_Financial_DAO_PaymentProcessor');
 
-    $this->addRule('name', ts('Name already exists in Database.'), 'objectExists', [
-      'CRM_Financial_DAO_PaymentProcessor',
-      $this->_id,
-      'name',
-      CRM_Core_Config::domainID(),
-    ]);
-
     // @todo - remove this & let the entityForm do it - need to make sure we are handling the js though.
     $this->add('select',
       'payment_processor_type_id',
@@ -407,7 +369,7 @@ class CRM_Admin_Form_PaymentProcessor extends CRM_Admin_Form {
   public function postProcess() {
 
     if ($this->_action & CRM_Core_Action::DELETE) {
-      CRM_Financial_BAO_PaymentProcessor::del($this->_id);
+      CRM_Financial_BAO_PaymentProcessor::deleteRecord(['id' => $this->_id]);
       CRM_Core_Session::setStatus("", ts('Payment Processor Deleted.'), "success");
       return NULL;
     }
@@ -427,18 +389,19 @@ class CRM_Admin_Form_PaymentProcessor extends CRM_Admin_Form {
       $this->_paymentProcessorDAO->id = $values['payment_processor_type_id'];
       $this->_paymentProcessorDAO->find(TRUE);
     }
-    $this->updatePaymentProcessor($values, $domainID, FALSE);
     $this->updatePaymentProcessor($values, $domainID, TRUE);
-
-    $processor = civicrm_api3('payment_processor', 'getsingle', ['name' => $values['name'], 'is_test' => 0]);
-    $errors = Civi\Payment\System::singleton()->checkProcessorConfig($processor);
+    $paymentProcessorID = $this->updatePaymentProcessor($values, $domainID, FALSE);
+    // Set the ID so that if it fails checkConfig the refreshUrl takes it into account.
+    $this->_id = $paymentProcessorID;
+    $processor = Civi\Payment\System::singleton()->getById($paymentProcessorID);
+    $errors = $processor->checkConfig();
     if ($errors) {
       CRM_Core_Session::setStatus($errors, ts('Payment processor configuration invalid'), 'error');
       Civi::log()->error('Payment processor configuration invalid: ' . $errors);
-      CRM_Core_Session::singleton()->pushUserContext($this->refreshURL);
+      CRM_Core_Session::singleton()->pushUserContext($this->getRefreshURL());
     }
     else {
-      CRM_Core_Session::setStatus(ts('Payment processor %1 has been saved.', [1 => "<em>{$values['name']}</em>"]), ts('Saved'), 'success');
+      CRM_Core_Session::setStatus(ts('Payment processor %1 has been saved.', [1 => "<em>{$values['title']}</em>"]), ts('Saved'), 'success');
     }
   }
 
@@ -451,7 +414,7 @@ class CRM_Admin_Form_PaymentProcessor extends CRM_Admin_Form {
    *
    * @throws \CRM_Core_Exception
    */
-  public function updatePaymentProcessor(&$values, $domainID, $test) {
+  public function updatePaymentProcessor($values, $domainID, $test) {
     if ($test) {
       foreach (['user_name', 'password', 'signature', 'url_site', 'url_recur', 'url_api', 'url_button', 'subject'] as $field) {
         $values[$field] = empty($values["test_{$field}"]) ? CRM_Utils_Array::value($field, $values) : $values["test_{$field}"];
@@ -468,9 +431,7 @@ class CRM_Admin_Form_PaymentProcessor extends CRM_Admin_Form {
       }
       $creditCards = json_encode($creditCards);
     }
-    else {
-      $creditCards = "NULL";
-    }
+
     $params = array_merge([
       'id' => $test ? $this->_testID : $this->_id,
       'domain_id' => $domainID,
@@ -483,10 +444,12 @@ class CRM_Admin_Form_PaymentProcessor extends CRM_Admin_Form {
       'payment_type' => $this->_paymentProcessorDAO->payment_type,
       'payment_instrument_id' => $this->_paymentProcessorDAO->payment_instrument_id,
       'financial_account_id' => $values['financial_account_id'],
-      'accepted_credit_cards' => $creditCards,
+      'accepted_credit_cards' => $creditCards ?? NULL,
     ], $values);
 
-    civicrm_api3('PaymentProcessor', 'create', $params);
+    return civicrm_api4('PaymentProcessor', 'save', [
+      'records' => [$params],
+    ])->first()['id'];
   }
 
   /**
@@ -532,4 +495,31 @@ class CRM_Admin_Form_PaymentProcessor extends CRM_Admin_Form {
     $this->_paymentProcessorDAO->find(TRUE);
   }
 
+  /**
+   * @return string
+   * @throws \CRM_Core_Exception
+   */
+  private function getRefreshURL(): string {
+    if ($this->_id) {
+      $refreshURL = CRM_Utils_System::url('civicrm/admin/paymentProcessor/edit',
+        "reset=1&action=update&id={$this->_id}",
+        FALSE, NULL, FALSE
+      );
+    }
+    else {
+      $refreshURL = CRM_Utils_System::url('civicrm/admin/paymentProcessor/edit',
+        'reset=1&action=add',
+        FALSE, NULL, FALSE
+      );
+    }
+
+    //CRM-4129
+    $destination = CRM_Utils_Request::retrieve('civicrmDestination', 'String', $this);
+    if ($destination) {
+      $destination = urlencode($destination);
+      $refreshURL .= "&civicrmDestination=$destination";
+    }
+    return $refreshURL;
+  }
+
 }
diff --git a/civicrm/CRM/Admin/Form/RelationshipType.php b/civicrm/CRM/Admin/Form/RelationshipType.php
index 544807eb504ec304dcf2e3c63a84453455d809b4..a44d987eb3da1b7c352bed9b5bed0b6a535ac4cf 100644
--- a/civicrm/CRM/Admin/Form/RelationshipType.php
+++ b/civicrm/CRM/Admin/Form/RelationshipType.php
@@ -24,25 +24,6 @@ class CRM_Admin_Form_RelationshipType extends CRM_Admin_Form {
 
   protected $_BAOName = 'CRM_Contact_BAO_RelationshipType';
 
-  /**
-   * Fields for the entity to be assigned to the template.
-   *
-   * Fields may have keys
-   *  - name (required to show in tpl from the array)
-   *  - description (optional, will appear below the field)
-   *     Auto-added by setEntityFieldsMetadata unless specified here (use description => '' to hide)
-   *  - not-auto-addable - this class will not attempt to add the field using addField.
-   *    (this will be automatically set if the field does not have html in it's metadata
-   *    or is not a core field on the form's entity).
-   *  - help (option) add help to the field - e.g ['id' => 'id-source', 'file' => 'CRM/Contact/Form/Contact']]
-   *  - template - use a field specific template to render this field
-   *  - required
-   *  - is_freeze (field should be frozen).
-   *
-   * @var array
-   */
-  protected $entityFields = [];
-
   /**
    * Set entity fields to be assigned to the form.
    */
@@ -69,13 +50,6 @@ class CRM_Admin_Form_RelationshipType extends CRM_Admin_Form {
     self::setEntityFieldsMetadata();
   }
 
-  /**
-   * Deletion message to be assigned to the form.
-   *
-   * @var string
-   */
-  protected $deleteMessage;
-
   /**
    * Explicitly declare the entity api name.
    */
@@ -161,7 +135,7 @@ class CRM_Admin_Form_RelationshipType extends CRM_Admin_Form {
    */
   public function postProcess() {
     if ($this->_action & CRM_Core_Action::DELETE) {
-      CRM_Contact_BAO_RelationshipType::del($this->_id);
+      CRM_Contact_BAO_RelationshipType::deleteRecord(['id' => $this->_id]);
       CRM_Core_Session::setStatus(ts('Selected Relationship type has been deleted.'), ts('Record Deleted'), 'success');
     }
     else {
diff --git a/civicrm/CRM/Admin/Form/ScheduleReminders.php b/civicrm/CRM/Admin/Form/ScheduleReminders.php
index 67e9bef5276661dc6ebf24ab0fd7b3b2ee038266..e042bae1d6fdf498755e2db511d3e95b1be25ea4 100644
--- a/civicrm/CRM/Admin/Form/ScheduleReminders.php
+++ b/civicrm/CRM/Admin/Form/ScheduleReminders.php
@@ -439,7 +439,7 @@ class CRM_Admin_Form_ScheduleReminders extends CRM_Admin_Form {
   public function postProcess() {
     if ($this->_action & CRM_Core_Action::DELETE) {
       // delete reminder
-      CRM_Core_BAO_ActionSchedule::del($this->_id);
+      CRM_Core_BAO_ActionSchedule::deleteRecord(['id' => $this->_id]);
       CRM_Core_Session::setStatus(ts('Selected Reminder has been deleted.'), ts('Record Deleted'), 'success');
       if ($this->getContext() === 'event' && $this->getComponentID()) {
         $url = CRM_Utils_System::url('civicrm/event/manage/reminder',
diff --git a/civicrm/CRM/Admin/Form/Setting/UpdateConfigBackend.php b/civicrm/CRM/Admin/Form/Setting/UpdateConfigBackend.php
index a1f2683b2bf5ae9b6861b5a0bb82fd48a54fc294..aa7231649c759259da7640af0df58cfc4de38c19 100644
--- a/civicrm/CRM/Admin/Form/Setting/UpdateConfigBackend.php
+++ b/civicrm/CRM/Admin/Form/Setting/UpdateConfigBackend.php
@@ -45,25 +45,11 @@ class CRM_Admin_Form_Setting_UpdateConfigBackend extends CRM_Admin_Form_Setting
 
   public function postProcess() {
     if (isset($_REQUEST['_qf_UpdateConfigBackend_next_cleanup'])) {
-      $config = CRM_Core_Config::singleton();
-
-      // cleanup templates_c directory
-      $config->cleanup(1, FALSE);
-
-      // clear all caches
-      CRM_Core_Config::clearDBCache();
-      Civi::cache('session')->clear();
-      CRM_Utils_System::flushCache();
-
-      parent::rebuildMenu();
-
-      CRM_Core_BAO_WordReplacement::rebuild();
-
+      \Civi\Api4\System::flush(FALSE)->execute();
       CRM_Core_Session::setStatus(ts('Cache has been cleared and menu has been rebuilt successfully.'), ts("Success"), "success");
     }
     elseif (isset($_REQUEST['_qf_UpdateConfigBackend_next_resetpaths'])) {
       $msg = CRM_Core_BAO_ConfigSetting::doSiteMove();
-
       CRM_Core_Session::setStatus($msg, ts("Success"), "success");
     }
 
diff --git a/civicrm/CRM/Api4/Page/Api4Explorer.php b/civicrm/CRM/Api4/Page/Api4Explorer.php
index 167db8777a4b8a6bf2d6176a746ca7327e51aac1..0b03bc97258030c3ae189cc9cafbfc427b8e441e 100644
--- a/civicrm/CRM/Api4/Page/Api4Explorer.php
+++ b/civicrm/CRM/Api4/Page/Api4Explorer.php
@@ -28,7 +28,7 @@ class CRM_Api4_Page_Api4Explorer extends CRM_Core_Page {
       'basePath' => Civi::resources()->getUrl('civicrm'),
       'schema' => (array) \Civi\Api4\Entity::get()->setChain(['fields' => ['$name', 'getFields']])->execute(),
       'docs' => \Civi\Api4\Utils\ReflectionUtils::parseDocBlock($apiDoc->getDocComment()),
-      'functions' => self::getSqlFunctions(),
+      'functions' => CoreUtil::getSqlFunctions(),
       'authxEnabled' => $extensions->isActiveModule('authx'),
       'restUrl' => rtrim(CRM_Utils_System::url('civicrm/ajax/api4/CRMAPI4ENTITY/CRMAPI4ACTION', NULL, TRUE, NULL, FALSE, TRUE), '/'),
     ];
@@ -46,29 +46,4 @@ class CRM_Api4_Page_Api4Explorer extends CRM_Core_Page {
     parent::run();
   }
 
-  /**
-   * Gets info about all available sql functions
-   * @return array
-   */
-  public static function getSqlFunctions() {
-    $fns = [];
-    foreach (glob(Civi::paths()->getPath('[civicrm.root]/Civi/Api4/Query/SqlFunction*.php')) as $file) {
-      $matches = [];
-      if (preg_match('/(SqlFunction[A-Z_]+)\.php$/', $file, $matches)) {
-        $className = '\Civi\Api4\Query\\' . $matches[1];
-        if (is_subclass_of($className, '\Civi\Api4\Query\SqlFunction')) {
-          $fns[] = [
-            'name' => $className::getName(),
-            'title' => $className::getTitle(),
-            'description' => $className::getDescription(),
-            'params' => $className::getParams(),
-            'category' => $className::getCategory(),
-            'dataType' => $className::getDataType(),
-          ];
-        }
-      }
-    }
-    return $fns;
-  }
-
 }
diff --git a/civicrm/CRM/Badge/BAO/Layout.php b/civicrm/CRM/Badge/BAO/Layout.php
index dd34add77a4f53a18cc21196fc3ee618e751233b..c146c3a49c18a95def1ab0aefb261cfaaf559d9c 100644
--- a/civicrm/CRM/Badge/BAO/Layout.php
+++ b/civicrm/CRM/Badge/BAO/Layout.php
@@ -30,17 +30,13 @@ class CRM_Badge_BAO_Layout extends CRM_Core_DAO_PrintLabel {
   }
 
   /**
-   * Update the is_active flag in the db.
-   *
+   * @deprecated - this bypasses hooks.
    * @param int $id
-   *   Id of the database record.
    * @param bool $is_active
-   *   Value we want to set the is_active field.
-   *
    * @return bool
-   *   true if we found and updated the object, else false
    */
   public static function setIsActive($id, $is_active) {
+    CRM_Core_Error::deprecatedFunctionWarning('writeRecord');
     return CRM_Core_DAO::setFieldValue('CRM_Core_DAO_PrintLabel', $id, 'is_active', $is_active);
   }
 
diff --git a/civicrm/CRM/Batch/BAO/Batch.php b/civicrm/CRM/Batch/BAO/Batch.php
index 34d20ec6f9a26c905b5f6eb3822069199db667e5..100a4e93761444006486446eee4740d72e3ced13 100644
--- a/civicrm/CRM/Batch/BAO/Batch.php
+++ b/civicrm/CRM/Batch/BAO/Batch.php
@@ -18,7 +18,7 @@
 /**
  * Batch BAO class.
  */
-class CRM_Batch_BAO_Batch extends CRM_Batch_DAO_Batch {
+class CRM_Batch_BAO_Batch extends CRM_Batch_DAO_Batch implements \Civi\Core\HookInterface {
 
   /**
    * Cache for the current batch object.
@@ -34,21 +34,31 @@ class CRM_Batch_BAO_Batch extends CRM_Batch_DAO_Batch {
   public static $_exportFormat = NULL;
 
   /**
-   * Create a new batch.
-   *
+   * @deprecated
    * @param array $params
-   *
-   * @return object
-   *   $batch batch object
-   * @throws \Exception
+   * @return CRM_Batch_DAO_Batch
    */
   public static function create(&$params) {
-    if (empty($params['id']) && empty($params['name'])) {
-      $params['name'] = CRM_Utils_String::titleToVar($params['title'] ?? 'batch_ref_' . random_int(0, 100000));
-    }
+    CRM_Core_Error::deprecatedFunctionWarning('writeRecord');
     return self::writeRecord($params);
   }
 
+  /**
+   * Callback for hook_civicrm_pre().
+   *
+   * @param \Civi\Core\Event\PreEvent $event
+   *
+   * @throws \CRM_Core_Exception
+   */
+  public static function self_hook_civicrm_pre(\Civi\Core\Event\PreEvent $event): void {
+    if ($event->action === 'create') {
+      // Supply defaults for `title`
+      if (empty($event->params['title'])) {
+        $event->params['title'] = $event->params['name'] ?? self::generateBatchName();
+      }
+    }
+  }
+
   /**
    * Retrieve DB object and copy to defaults array.
    *
@@ -611,9 +621,9 @@ class CRM_Batch_BAO_Batch extends CRM_Batch_DAO_Batch {
     $session = CRM_Core_Session::singleton();
     $params['modified_date'] = date('YmdHis');
     $params['modified_id'] = $session->get('userID');
-    foreach ($batchIds as $key => $value) {
-      $params['id'] = $ids['batchID'] = $value;
-      self::create($params, $ids);
+    foreach ($batchIds as $id) {
+      $params['id'] = $id;
+      self::writeRecord($params);
     }
     $url = CRM_Utils_System::url('civicrm/financial/financialbatches', "reset=1&batchStatus={$params['status_id']}");
     CRM_Utils_System::redirect($url);
diff --git a/civicrm/CRM/Batch/DAO/Batch.php b/civicrm/CRM/Batch/DAO/Batch.php
index 612f9c9abf43b008be9c46f5e0c5b756dca8591e..318a13e733c48a985d9edb865e0177195ca271a4 100644
--- a/civicrm/CRM/Batch/DAO/Batch.php
+++ b/civicrm/CRM/Batch/DAO/Batch.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Batch/Batch.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:96f70ada6034206619d6ae81d689e126)
+ * (GenCodeChecksum:b4f4971d181f79d33d8cd13fb54ea14b)
  */
 
 /**
@@ -237,6 +237,12 @@ class CRM_Batch_DAO_Batch extends CRM_Core_DAO {
           'title' => ts('Batch ID'),
           'description' => ts('Unique Address ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_batch.id',
           'table_name' => 'civicrm_batch',
           'entity' => 'Batch',
@@ -255,6 +261,12 @@ class CRM_Batch_DAO_Batch extends CRM_Core_DAO {
           'description' => ts('Variable name/programmatic handle for this batch.'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_batch.name',
           'table_name' => 'civicrm_batch',
           'entity' => 'Batch',
@@ -272,6 +284,12 @@ class CRM_Batch_DAO_Batch extends CRM_Core_DAO {
           'description' => ts('Friendly Name.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_batch.title',
           'table_name' => 'civicrm_batch',
           'entity' => 'Batch',
@@ -289,6 +307,12 @@ class CRM_Batch_DAO_Batch extends CRM_Core_DAO {
           'description' => ts('Description of this batch set.'),
           'rows' => 4,
           'cols' => 80,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_batch.description',
           'table_name' => 'civicrm_batch',
           'entity' => 'Batch',
@@ -304,6 +328,12 @@ class CRM_Batch_DAO_Batch extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Created By Contact ID'),
           'description' => ts('FK to Contact ID'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_batch.created_id',
           'table_name' => 'civicrm_batch',
           'entity' => 'Batch',
@@ -320,6 +350,12 @@ class CRM_Batch_DAO_Batch extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME,
           'title' => ts('Batch Created Date'),
           'description' => ts('When was this item created'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_batch.created_date',
           'table_name' => 'civicrm_batch',
           'entity' => 'Batch',
@@ -336,6 +372,12 @@ class CRM_Batch_DAO_Batch extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Modified By Contact ID'),
           'description' => ts('FK to Contact ID'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_batch.modified_id',
           'table_name' => 'civicrm_batch',
           'entity' => 'Batch',
@@ -352,6 +394,12 @@ class CRM_Batch_DAO_Batch extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME,
           'title' => ts('Batch Modified Date'),
           'description' => ts('When was this item modified'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_batch.modified_date',
           'table_name' => 'civicrm_batch',
           'entity' => 'Batch',
@@ -365,6 +413,12 @@ class CRM_Batch_DAO_Batch extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Smart Group ID'),
           'description' => ts('FK to Saved Search ID'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_batch.saved_search_id',
           'table_name' => 'civicrm_batch',
           'entity' => 'Batch',
@@ -383,6 +437,12 @@ class CRM_Batch_DAO_Batch extends CRM_Core_DAO {
           'title' => ts('Batch Status'),
           'description' => ts('fk to Batch Status options in civicrm_option_values'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_batch.status_id',
           'table_name' => 'civicrm_batch',
           'entity' => 'Batch',
@@ -402,6 +462,12 @@ class CRM_Batch_DAO_Batch extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Batch Type'),
           'description' => ts('fk to Batch Type options in civicrm_option_values'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_batch.type_id',
           'table_name' => 'civicrm_batch',
           'entity' => 'Batch',
@@ -421,6 +487,12 @@ class CRM_Batch_DAO_Batch extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Batch Mode'),
           'description' => ts('fk to Batch mode options in civicrm_option_values'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_batch.mode_id',
           'table_name' => 'civicrm_batch',
           'entity' => 'Batch',
@@ -444,6 +516,12 @@ class CRM_Batch_DAO_Batch extends CRM_Core_DAO {
             20,
             2,
           ],
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_batch.total',
           'table_name' => 'civicrm_batch',
           'entity' => 'Batch',
@@ -459,6 +537,12 @@ class CRM_Batch_DAO_Batch extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Batch Number of Items'),
           'description' => ts('Number of items in a batch.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_batch.item_count',
           'table_name' => 'civicrm_batch',
           'entity' => 'Batch',
@@ -474,6 +558,12 @@ class CRM_Batch_DAO_Batch extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Batch Payment Method'),
           'description' => ts('fk to Payment Instrument options in civicrm_option_values'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_batch.payment_instrument_id',
           'table_name' => 'civicrm_batch',
           'entity' => 'Batch',
@@ -492,6 +582,12 @@ class CRM_Batch_DAO_Batch extends CRM_Core_DAO {
           'name' => 'exported_date',
           'type' => CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME,
           'title' => ts('Batch Exported Date'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_batch.exported_date',
           'table_name' => 'civicrm_batch',
           'entity' => 'Batch',
@@ -504,6 +600,12 @@ class CRM_Batch_DAO_Batch extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_LONGTEXT,
           'title' => ts('Batch Data'),
           'description' => ts('cache entered data'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_batch.data',
           'table_name' => 'civicrm_batch',
           'entity' => 'Batch',
diff --git a/civicrm/CRM/Batch/DAO/EntityBatch.php b/civicrm/CRM/Batch/DAO/EntityBatch.php
index 4f13bcb5ac0fccf7cab4aad038cf9ff621c8aa23..8407bae6edb12c572aa2c519140661bf740909b9 100644
--- a/civicrm/CRM/Batch/DAO/EntityBatch.php
+++ b/civicrm/CRM/Batch/DAO/EntityBatch.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Batch/EntityBatch.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:a090bcea16be870a70e62f7101f31ad6)
+ * (GenCodeChecksum:3aeab19bbe2e645ffa8a149e2819d3a7)
  */
 
 /**
@@ -114,6 +114,12 @@ class CRM_Batch_DAO_EntityBatch extends CRM_Core_DAO {
           'title' => ts('EntityBatch ID'),
           'description' => ts('primary key'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_entity_batch.id',
           'table_name' => 'civicrm_entity_batch',
           'entity' => 'EntityBatch',
@@ -132,6 +138,12 @@ class CRM_Batch_DAO_EntityBatch extends CRM_Core_DAO {
           'description' => ts('physical tablename for entity being joined to file, e.g. civicrm_contact'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_entity_batch.entity_table',
           'table_name' => 'civicrm_entity_batch',
           'entity' => 'EntityBatch',
@@ -149,6 +161,12 @@ class CRM_Batch_DAO_EntityBatch extends CRM_Core_DAO {
           'title' => ts('Entity ID'),
           'description' => ts('FK to entity table specified in entity_table column.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_entity_batch.entity_id',
           'table_name' => 'civicrm_entity_batch',
           'entity' => 'EntityBatch',
@@ -162,6 +180,12 @@ class CRM_Batch_DAO_EntityBatch extends CRM_Core_DAO {
           'title' => ts('Batch ID'),
           'description' => ts('FK to civicrm_batch'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_entity_batch.batch_id',
           'table_name' => 'civicrm_entity_batch',
           'entity' => 'EntityBatch',
diff --git a/civicrm/CRM/Batch/Form/Entry.php b/civicrm/CRM/Batch/Form/Entry.php
index 6058c004649b998b680e1e07301096ac4302641d..7a4a7fe715494976c4201fca52ae3308e90fe262 100644
--- a/civicrm/CRM/Batch/Form/Entry.php
+++ b/civicrm/CRM/Batch/Form/Entry.php
@@ -543,7 +543,7 @@ class CRM_Batch_Form_Entry extends CRM_Core_Form {
       'total' => $params['actualBatchTotal'],
     ];
 
-    CRM_Batch_BAO_Batch::create($paramValues);
+    CRM_Batch_BAO_Batch::writeRecord($paramValues);
 
     // set success status
     CRM_Core_Session::setStatus("", ts("Batch Processed."), "success");
@@ -927,7 +927,7 @@ class CRM_Batch_Form_Entry extends CRM_Core_Form {
   protected function emailReceipt($form, &$formValues): bool {
     $membership = new CRM_Member_BAO_Membership();
     $membership->id = $this->getCurrentRowMembershipID();
-    $membership->fetch();
+    $membership->find(TRUE);
     // @todo figure out how much of the stuff below is genuinely shared with the batch form & a logical shared place.
     if (!empty($formValues['payment_instrument_id'])) {
       $paymentInstrument = CRM_Contribute_PseudoConstant::paymentInstrument();
diff --git a/civicrm/CRM/Campaign/BAO/Campaign.php b/civicrm/CRM/Campaign/BAO/Campaign.php
index 2314942c10c7cd6dbe050120ab07c91c1c45626f..13bf0f6f50de1455f3b118affd5581b97868a227 100644
--- a/civicrm/CRM/Campaign/BAO/Campaign.php
+++ b/civicrm/CRM/Campaign/BAO/Campaign.php
@@ -42,10 +42,6 @@ class CRM_Campaign_BAO_Campaign extends CRM_Campaign_DAO_Campaign {
       if (empty($params['created_date'])) {
         $params['created_date'] = date('YmdHis');
       }
-
-      if (empty($params['name'])) {
-        $params['name'] = CRM_Utils_String::titleToVar($params['title'], 64);
-      }
     }
 
     /** @var \CRM_Campaign_DAO_Campaign $campaign */
@@ -77,6 +73,7 @@ class CRM_Campaign_BAO_Campaign extends CRM_Campaign_DAO_Campaign {
    * @return bool|int
    */
   public static function del($id) {
+    CRM_Core_Error::deprecatedFunctionWarning('deleteRecord');
     try {
       self::deleteRecord(['id' => $id]);
     }
@@ -480,17 +477,13 @@ INNER JOIN  civicrm_group grp ON ( grp.id = campgrp.entity_id )
   }
 
   /**
-   * Update the is_active flag in the db.
-   *
+   * @deprecated - this bypasses hooks.
    * @param int $id
-   *   Id of the database record.
    * @param bool $is_active
-   *   Value we want to set the is_active field.
-   *
    * @return bool
-   *   true if we found and updated the object, else false
    */
   public static function setIsActive($id, $is_active) {
+    CRM_Core_Error::deprecatedFunctionWarning('writeRecord');
     return CRM_Core_DAO::setFieldValue('CRM_Campaign_DAO_Campaign', $id, 'is_active', $is_active);
   }
 
diff --git a/civicrm/CRM/Campaign/BAO/Survey.php b/civicrm/CRM/Campaign/BAO/Survey.php
index 136d81b8af368465b08ea227cbf2d47a35c80f83..3f42995ee092e33eac2ec982848fec935a05cde4 100644
--- a/civicrm/CRM/Campaign/BAO/Survey.php
+++ b/civicrm/CRM/Campaign/BAO/Survey.php
@@ -341,17 +341,13 @@ SELECT  survey.id    as id,
   }
 
   /**
-   * Update the is_active flag in the db.
-   *
+   * @deprecated - this bypasses hooks.
    * @param int $id
-   *   Id of the database record.
    * @param bool $is_active
-   *   Value we want to set the is_active field.
-   *
    * @return bool
-   *   true if we found and updated the object, else false
    */
   public static function setIsActive($id, $is_active) {
+    CRM_Core_Error::deprecatedFunctionWarning('writeRecord');
     return CRM_Core_DAO::setFieldValue('CRM_Campaign_DAO_Survey', $id, 'is_active', $is_active);
   }
 
@@ -363,6 +359,7 @@ SELECT  survey.id    as id,
    * @return mixed|null
    */
   public static function del($id) {
+    CRM_Core_Error::deprecatedFunctionWarning('deleteRecord');
     if (!$id) {
       return NULL;
     }
diff --git a/civicrm/CRM/Campaign/DAO/Campaign.php b/civicrm/CRM/Campaign/DAO/Campaign.php
index 2e421a2bccad26011913e599d0c37f84c14f2c10..758be195be595b404f6005afc28d3a9366eb29ec 100644
--- a/civicrm/CRM/Campaign/DAO/Campaign.php
+++ b/civicrm/CRM/Campaign/DAO/Campaign.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Campaign/Campaign.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:0db877ff95e04216a2c4553e5e1f0594)
+ * (GenCodeChecksum:75a9a33157dcd3411e3072a2b3740b0f)
  */
 
 /**
@@ -267,6 +267,12 @@ class CRM_Campaign_DAO_Campaign extends CRM_Core_DAO {
           'title' => ts('Campaign ID'),
           'description' => ts('Unique Campaign ID.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_campaign.id',
           'export' => TRUE,
@@ -289,6 +295,12 @@ class CRM_Campaign_DAO_Campaign extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_campaign.name',
           'export' => TRUE,
@@ -309,6 +321,12 @@ class CRM_Campaign_DAO_Campaign extends CRM_Core_DAO {
           'description' => ts('Title of the Campaign.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_campaign.title',
           'export' => TRUE,
@@ -329,6 +347,12 @@ class CRM_Campaign_DAO_Campaign extends CRM_Core_DAO {
           'description' => ts('Full description of Campaign.'),
           'rows' => 8,
           'cols' => 60,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_campaign.description',
           'table_name' => 'civicrm_campaign',
           'entity' => 'Campaign',
@@ -345,6 +369,12 @@ class CRM_Campaign_DAO_Campaign extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME,
           'title' => ts('Campaign Start Date'),
           'description' => ts('Date and time that Campaign starts.'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_campaign.start_date',
           'headerPattern' => '/^start|(s(tart\s)?date)$/i',
@@ -365,6 +395,12 @@ class CRM_Campaign_DAO_Campaign extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME,
           'title' => ts('Campaign End Date'),
           'description' => ts('Date and time that Campaign ends.'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_campaign.end_date',
           'headerPattern' => '/^end|(e(nd\s)?date)$/i',
@@ -385,6 +421,12 @@ class CRM_Campaign_DAO_Campaign extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Campaign Type'),
           'description' => ts('Campaign Type ID.Implicit FK to civicrm_option_value where option_group = campaign_type'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_campaign.campaign_type_id',
           'export' => TRUE,
@@ -408,6 +450,12 @@ class CRM_Campaign_DAO_Campaign extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Campaign Status'),
           'description' => ts('Campaign status ID.Implicit FK to civicrm_option_value where option_group = campaign_status'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_campaign.status_id',
           'export' => TRUE,
@@ -433,6 +481,12 @@ class CRM_Campaign_DAO_Campaign extends CRM_Core_DAO {
           'description' => ts('Unique trusted external ID (generally from a legacy app/datasource). Particularly useful for deduping operations.'),
           'maxlength' => 32,
           'size' => CRM_Utils_Type::MEDIUM,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_campaign.external_identifier',
           'headerPattern' => '/external\s?id/i',
@@ -453,6 +507,12 @@ class CRM_Campaign_DAO_Campaign extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Parent Campaign ID'),
           'description' => ts('Optional parent id for this Campaign.'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_campaign.parent_id',
           'export' => TRUE,
@@ -474,6 +534,12 @@ class CRM_Campaign_DAO_Campaign extends CRM_Core_DAO {
           'title' => ts('Is Campaign Active?'),
           'description' => ts('Is this Campaign enabled or disabled/cancelled?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_campaign.is_active',
           'default' => '1',
           'table_name' => 'civicrm_campaign',
@@ -491,6 +557,12 @@ class CRM_Campaign_DAO_Campaign extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Created By Contact ID'),
           'description' => ts('FK to civicrm_contact, who created this Campaign.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_campaign.created_id',
           'table_name' => 'civicrm_campaign',
           'entity' => 'Campaign',
@@ -507,6 +579,12 @@ class CRM_Campaign_DAO_Campaign extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME,
           'title' => ts('Campaign Created Date'),
           'description' => ts('Date and time that Campaign was created.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_campaign.created_date',
           'table_name' => 'civicrm_campaign',
           'entity' => 'Campaign',
@@ -523,6 +601,12 @@ class CRM_Campaign_DAO_Campaign extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Modified By Contact ID'),
           'description' => ts('FK to civicrm_contact, who recently edited this Campaign.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_campaign.last_modified_id',
           'table_name' => 'civicrm_campaign',
           'entity' => 'Campaign',
@@ -539,6 +623,12 @@ class CRM_Campaign_DAO_Campaign extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME,
           'title' => ts('Campaign Modified Date'),
           'description' => ts('Date and time that Campaign was edited last time.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_campaign.last_modified_date',
           'table_name' => 'civicrm_campaign',
           'entity' => 'Campaign',
@@ -551,6 +641,12 @@ class CRM_Campaign_DAO_Campaign extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Campaign Goals'),
           'description' => ts('General goals for Campaign.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_campaign.goal_general',
           'table_name' => 'civicrm_campaign',
           'entity' => 'Campaign',
@@ -570,6 +666,12 @@ class CRM_Campaign_DAO_Campaign extends CRM_Core_DAO {
             20,
             2,
           ],
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_campaign.goal_revenue',
           'table_name' => 'civicrm_campaign',
           'entity' => 'Campaign',
@@ -651,13 +753,14 @@ class CRM_Campaign_DAO_Campaign extends CRM_Core_DAO {
    */
   public static function indices($localize = TRUE) {
     $indices = [
-      'UI_campaign_name' => [
-        'name' => 'UI_campaign_name',
+      'UI_name' => [
+        'name' => 'UI_name',
         'field' => [
           0 => 'name',
         ],
         'localizable' => FALSE,
-        'sig' => 'civicrm_campaign::0::name',
+        'unique' => TRUE,
+        'sig' => 'civicrm_campaign::1::name',
       ],
       'UI_campaign_type_id' => [
         'name' => 'UI_campaign_type_id',
diff --git a/civicrm/CRM/Campaign/DAO/CampaignGroup.php b/civicrm/CRM/Campaign/DAO/CampaignGroup.php
index 6b59d2100498a4d859502ad0a831e895f90a696c..a5482ebce115b4fc4b9d9070ca493e8c331ccd2e 100644
--- a/civicrm/CRM/Campaign/DAO/CampaignGroup.php
+++ b/civicrm/CRM/Campaign/DAO/CampaignGroup.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Campaign/CampaignGroup.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:888e22b2d65bc717c633ef88371fe72a)
+ * (GenCodeChecksum:5d72f04bf39ff20651ca6e1f59a3fd26)
  */
 
 /**
@@ -124,6 +124,12 @@ class CRM_Campaign_DAO_CampaignGroup extends CRM_Core_DAO {
           'title' => ts('Campaign Group ID'),
           'description' => ts('Campaign Group id.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_campaign_group.id',
           'table_name' => 'civicrm_campaign_group',
           'entity' => 'CampaignGroup',
@@ -141,6 +147,12 @@ class CRM_Campaign_DAO_CampaignGroup extends CRM_Core_DAO {
           'title' => ts('Campaign ID'),
           'description' => ts('Foreign key to the activity Campaign.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_campaign_group.campaign_id',
           'table_name' => 'civicrm_campaign_group',
           'entity' => 'CampaignGroup',
@@ -166,6 +178,12 @@ class CRM_Campaign_DAO_CampaignGroup extends CRM_Core_DAO {
           'description' => ts('Type of Group.'),
           'maxlength' => 8,
           'size' => CRM_Utils_Type::EIGHT,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_campaign_group.group_type',
           'default' => NULL,
           'table_name' => 'civicrm_campaign_group',
@@ -187,6 +205,12 @@ class CRM_Campaign_DAO_CampaignGroup extends CRM_Core_DAO {
           'description' => ts('Name of table where item being referenced is stored.'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_campaign_group.entity_table',
           'default' => NULL,
           'table_name' => 'civicrm_campaign_group',
@@ -200,6 +224,12 @@ class CRM_Campaign_DAO_CampaignGroup extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Entity ID'),
           'description' => ts('Entity id of referenced table.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_campaign_group.entity_id',
           'default' => NULL,
           'table_name' => 'civicrm_campaign_group',
diff --git a/civicrm/CRM/Campaign/DAO/Survey.php b/civicrm/CRM/Campaign/DAO/Survey.php
index 04bfce502c1bb12bfe4c6c8d3829d28d2ad74fc6..dd319d57726e4139e4ea6b49ff60d9d62dc633b5 100644
--- a/civicrm/CRM/Campaign/DAO/Survey.php
+++ b/civicrm/CRM/Campaign/DAO/Survey.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Campaign/Survey.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:2fdaa178153dac258858d6d865ecfdcf)
+ * (GenCodeChecksum:4b2846e419f4a7d5dcc44b80df895caf)
  */
 
 /**
@@ -274,6 +274,12 @@ class CRM_Campaign_DAO_Survey extends CRM_Core_DAO {
           'title' => ts('Survey ID'),
           'description' => ts('Survey id.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_survey.id',
           'table_name' => 'civicrm_survey',
           'entity' => 'Survey',
@@ -293,6 +299,12 @@ class CRM_Campaign_DAO_Survey extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_survey.title',
           'export' => TRUE,
@@ -310,6 +322,12 @@ class CRM_Campaign_DAO_Survey extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Campaign ID'),
           'description' => ts('Foreign key to the Campaign.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_survey.campaign_id',
           'default' => NULL,
           'table_name' => 'civicrm_survey',
@@ -334,6 +352,12 @@ class CRM_Campaign_DAO_Survey extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Activity Type'),
           'description' => ts('Implicit FK to civicrm_option_value where option_group = activity_type'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_survey.activity_type_id',
           'export' => TRUE,
@@ -358,6 +382,12 @@ class CRM_Campaign_DAO_Survey extends CRM_Core_DAO {
           'description' => ts('Recontact intervals for each status.'),
           'rows' => 20,
           'cols' => 80,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_survey.recontact_interval',
           'table_name' => 'civicrm_survey',
           'entity' => 'Survey',
@@ -375,6 +405,12 @@ class CRM_Campaign_DAO_Survey extends CRM_Core_DAO {
           'description' => ts('Script instructions for volunteers to use for the survey.'),
           'rows' => 20,
           'cols' => 80,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_survey.instructions',
           'table_name' => 'civicrm_survey',
           'entity' => 'Survey',
@@ -390,6 +426,12 @@ class CRM_Campaign_DAO_Survey extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Survey Hold Duration'),
           'description' => ts('Number of days for recurrence of release.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_survey.release_frequency',
           'default' => NULL,
           'table_name' => 'civicrm_survey',
@@ -403,6 +445,12 @@ class CRM_Campaign_DAO_Survey extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Maximum number of contacts'),
           'description' => ts('Maximum number of contacts to allow for survey.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_survey.max_number_of_contacts',
           'default' => NULL,
           'table_name' => 'civicrm_survey',
@@ -416,6 +464,12 @@ class CRM_Campaign_DAO_Survey extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Default number of contacts'),
           'description' => ts('Default number of contacts to allow for survey.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_survey.default_number_of_contacts',
           'default' => NULL,
           'table_name' => 'civicrm_survey',
@@ -430,6 +484,12 @@ class CRM_Campaign_DAO_Survey extends CRM_Core_DAO {
           'title' => ts('Survey Is Active'),
           'description' => ts('Is this survey enabled or disabled/cancelled?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_survey.is_active',
           'default' => '1',
           'table_name' => 'civicrm_survey',
@@ -448,6 +508,12 @@ class CRM_Campaign_DAO_Survey extends CRM_Core_DAO {
           'title' => ts('Is Default Survey'),
           'description' => ts('Is this default survey?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_survey.is_default',
           'default' => '0',
           'table_name' => 'civicrm_survey',
@@ -465,6 +531,12 @@ class CRM_Campaign_DAO_Survey extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Created By Contact ID'),
           'description' => ts('FK to civicrm_contact, who created this Survey.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_survey.created_id',
           'table_name' => 'civicrm_survey',
           'entity' => 'Survey',
@@ -481,6 +553,12 @@ class CRM_Campaign_DAO_Survey extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME,
           'title' => ts('Campaign Created Date'),
           'description' => ts('Date and time that Survey was created.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_survey.created_date',
           'table_name' => 'civicrm_survey',
           'entity' => 'Survey',
@@ -493,6 +571,12 @@ class CRM_Campaign_DAO_Survey extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Modified By Contact ID'),
           'description' => ts('FK to civicrm_contact, who recently edited this Survey.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_survey.last_modified_id',
           'table_name' => 'civicrm_survey',
           'entity' => 'Survey',
@@ -509,6 +593,12 @@ class CRM_Campaign_DAO_Survey extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME,
           'title' => ts('Survey Modified On'),
           'description' => ts('Date and time that Survey was edited last time.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_survey.last_modified_date',
           'table_name' => 'civicrm_survey',
           'entity' => 'Survey',
@@ -521,6 +611,12 @@ class CRM_Campaign_DAO_Survey extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Survey Result'),
           'description' => ts('Used to store option group id.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_survey.result_id',
           'default' => NULL,
           'table_name' => 'civicrm_survey',
@@ -542,6 +638,12 @@ class CRM_Campaign_DAO_Survey extends CRM_Core_DAO {
           'title' => ts('No Email Verification'),
           'description' => ts('Bypass the email verification.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_survey.bypass_confirm',
           'default' => '0',
           'table_name' => 'civicrm_survey',
@@ -557,6 +659,12 @@ class CRM_Campaign_DAO_Survey extends CRM_Core_DAO {
           'description' => ts('Title for Thank-you page (header title tag, and display at the top of the page).'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_survey.thankyou_title',
           'table_name' => 'civicrm_survey',
           'entity' => 'Survey',
@@ -571,6 +679,12 @@ class CRM_Campaign_DAO_Survey extends CRM_Core_DAO {
           'description' => ts('text and html allowed. displayed above result on success page'),
           'rows' => 8,
           'cols' => 60,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_survey.thankyou_text',
           'table_name' => 'civicrm_survey',
           'entity' => 'Survey',
@@ -587,6 +701,12 @@ class CRM_Campaign_DAO_Survey extends CRM_Core_DAO {
           'title' => ts('Is shared through social media'),
           'description' => ts('Can people share the petition through social media?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_survey.is_share',
           'default' => '1',
           'table_name' => 'civicrm_survey',
diff --git a/civicrm/CRM/Campaign/Form/Campaign.php b/civicrm/CRM/Campaign/Form/Campaign.php
index 838405521b4f2e45f88c2a07d79506442805706a..6a3931a1e9941c55a1fe8887ffc5c3ba3104ef4e 100644
--- a/civicrm/CRM/Campaign/Form/Campaign.php
+++ b/civicrm/CRM/Campaign/Form/Campaign.php
@@ -287,7 +287,7 @@ class CRM_Campaign_Form_Campaign extends CRM_Core_Form {
     }
     if (!empty($params['id'])) {
       if ($this->_action & CRM_Core_Action::DELETE) {
-        CRM_Campaign_BAO_Campaign::del($params['id']);
+        CRM_Campaign_BAO_Campaign::deleteRecord(['id' => $params['id']]);
         CRM_Core_Session::setStatus(ts('Campaign has been deleted.'), ts('Record Deleted'), 'success');
         $session->replaceUserContext(CRM_Utils_System::url('civicrm/campaign', 'reset=1&subPage=campaign'));
         return;
diff --git a/civicrm/CRM/Campaign/Form/Petition.php b/civicrm/CRM/Campaign/Form/Petition.php
index 934779f7ed8f4296755624119840a8517b75e042..d52c50e1f5ab1fc30400b392cc8b781ab7039869 100644
--- a/civicrm/CRM/Campaign/Form/Petition.php
+++ b/civicrm/CRM/Campaign/Form/Petition.php
@@ -296,7 +296,7 @@ WHERE  $whereClause
     if ($this->_surveyId) {
 
       if ($this->_action & CRM_Core_Action::DELETE) {
-        CRM_Campaign_BAO_Survey::del($this->_surveyId);
+        CRM_Campaign_BAO_Survey::deleteRecord(['id' => $this->_surveyId]);
         CRM_Core_Session::setStatus(ts(' Petition has been deleted.'), ts('Record Deleted'), 'success');
         $session->replaceUserContext(CRM_Utils_System::url('civicrm/campaign', 'reset=1&subPage=petition'));
         return;
diff --git a/civicrm/CRM/Campaign/Form/Search.php b/civicrm/CRM/Campaign/Form/Search.php
index 5244c8b904d31abe43ec1a101fdbadfcaf22c5ab..ce473654a59bfa2b89ba41faa1714baf520760c5 100644
--- a/civicrm/CRM/Campaign/Form/Search.php
+++ b/civicrm/CRM/Campaign/Form/Search.php
@@ -58,7 +58,6 @@ class CRM_Campaign_Form_Search extends CRM_Core_Form_Search {
     $this->_defaults = [];
 
     //set the button name.
-    $this->_printButtonName = $this->getButtonName('next', 'print');
     $this->_actionButtonName = $this->getButtonName('next', 'action');
 
     $this->loadStandardSearchOptionsFromUrl();
diff --git a/civicrm/CRM/Campaign/Form/Survey/Delete.php b/civicrm/CRM/Campaign/Form/Survey/Delete.php
index 16715221eaae2f2fb1e414b6ffc98aa6575effbd..53a7d0c50e0a6024780fc8801cc6d28ac69bd271 100644
--- a/civicrm/CRM/Campaign/Form/Survey/Delete.php
+++ b/civicrm/CRM/Campaign/Form/Survey/Delete.php
@@ -72,7 +72,7 @@ class CRM_Campaign_Form_Survey_Delete extends CRM_Core_Form {
    */
   public function postProcess() {
     if ($this->_surveyId) {
-      CRM_Campaign_BAO_Survey::del($this->_surveyId);
+      CRM_Campaign_BAO_Survey::deleteRecord(['id' => $this->_surveyId]);
       CRM_Core_Session::setStatus('', ts("'%1' survey has been deleted.", [1 => $this->_surveyTitle]), 'success');
       CRM_Utils_System::redirect(CRM_Utils_System::url('civicrm/campaign', 'reset=1&subPage=survey'));
     }
diff --git a/civicrm/CRM/Case/BAO/Case.php b/civicrm/CRM/Case/BAO/Case.php
index e255c72a38f747d9aa1c06521b19fbbd13787751..43e6435dc60e3f527f7c9c228a057e4140a8039f 100644
--- a/civicrm/CRM/Case/BAO/Case.php
+++ b/civicrm/CRM/Case/BAO/Case.php
@@ -15,6 +15,7 @@
  * @copyright CiviCRM LLC https://civicrm.org/licensing
  */
 
+use Civi\Api4\Activity;
 
 /**
  * This class contains the functions for Case Management.
@@ -587,12 +588,13 @@ HERESQL;
       return $getCount ? 0 : $casesList;
     }
 
+    $type = $params['type'] ?? 'upcoming';
+
     // Return cached value instead of re-running query
-    if (isset(Civi::$statics[__CLASS__]['totalCount']) && $getCount) {
-      return Civi::$statics[__CLASS__]['totalCount'];
+    if (isset(Civi::$statics[__CLASS__]['totalCount'][$type]) && $getCount) {
+      return Civi::$statics[__CLASS__]['totalCount'][$type];
     }
 
-    $type = CRM_Utils_Array::value('type', $params, 'upcoming');
     $userID = CRM_Core_Session::getLoggedInContactID();
 
     // validate access for all cases.
@@ -617,7 +619,7 @@ HERESQL;
     }
     $condition = implode(' AND ', $whereClauses);
 
-    Civi::$statics[__CLASS__]['totalCount'] = $totalCount = CRM_Core_DAO::singleValueQuery(self::getCaseActivityCountQuery($type, $userID, $condition));
+    Civi::$statics[__CLASS__]['totalCount'][$type] = $totalCount = CRM_Core_DAO::singleValueQuery(self::getCaseActivityCountQuery($type, $userID, $condition));
     if ($getCount) {
       return $totalCount;
     }
@@ -1738,44 +1740,34 @@ HERESQL;
       // The assignee is not the client.
       if ($dao->rel_contact_id != $contactId) {
         $caseRelationship = $dao->relation_a_b;
-        $assigneContactName = $dao->clientName;
-        $assigneContactIds[$dao->rel_contact_id] = $dao->rel_contact_id;
+        $assigneeContactName = $dao->clientName;
+        $assigneeContactIds[$dao->rel_contact_id] = $dao->rel_contact_id;
       }
       else {
         $caseRelationship = $dao->relation_b_a;
-        $assigneContactName = $dao->assigneeContactName;
-        $assigneContactIds[$dao->assign_contact_id] = $dao->assign_contact_id;
+        $assigneeContactName = $dao->assigneeContactName;
+        $assigneeContactIds[$dao->assign_contact_id] = $dao->assign_contact_id;
       }
     }
 
-    $session = CRM_Core_Session::singleton();
-    $activityParams = [
-      'source_contact_id' => $session->get('userID'),
-      'subject' => $caseRelationship . ' : ' . $assigneContactName,
-      'activity_date_time' => date('YmdHis'),
-      'status_id' => CRM_Core_PseudoConstant::getKey('CRM_Activity_BAO_Activity', 'activity_status_id', 'Completed'),
-    ];
+    $assignCaseRoleActivity = Activity::create(FALSE)
+      ->addValue('source_contact_id', 'user_contact_id')
+      ->addValue('subject', $caseRelationship . ' : ' . $assigneeContactName)
+      ->addValue('activity_date_time', 'now')
+      ->addValue('status_id:name', 'Completed')
+      ->addValue('case_id', $caseId);
 
     //if $relContactId is passed, role is added or modified.
     if (!empty($relContactId)) {
-      $activityParams['assignee_contact_id'] = $assigneContactIds;
-      $activityTypeID = CRM_Core_PseudoConstant::getKey('CRM_Activity_BAO_Activity', 'activity_type_id', 'Assign Case Role');
+      $assignCaseRoleActivity
+        ->addValue('assignee_contact_id', $assigneeContactIds)
+        ->addValue('activity_type_id:name', 'Assign Case Role');
     }
     else {
-      $activityTypeID = CRM_Core_PseudoConstant::getKey('CRM_Activity_BAO_Activity', 'activity_type_id', 'Remove Case Role');
+      $assignCaseRoleActivity->addValue('activity_type_id:name', 'Remove Case Role');
     }
 
-    $activityParams['activity_type_id'] = $activityTypeID;
-
-    $activity = CRM_Activity_BAO_Activity::create($activityParams);
-
-    //create case_activity record.
-    $caseParams = [
-      'activity_id' => $activity->id,
-      'case_id' => $caseId,
-    ];
-
-    CRM_Case_BAO_Case::processCaseActivity($caseParams);
+    $assignCaseRoleActivity->execute();
   }
 
   /**
diff --git a/civicrm/CRM/Case/BAO/CaseContact.php b/civicrm/CRM/Case/BAO/CaseContact.php
index 3b409bb65cd4ad2a01271f35d582e1249fb735fe..af7086c7c28b2c6d5a777a9602380ed3bdb94362 100644
--- a/civicrm/CRM/Case/BAO/CaseContact.php
+++ b/civicrm/CRM/Case/BAO/CaseContact.php
@@ -18,45 +18,56 @@
 /**
  * This class contains the functions for Case Contact management.
  */
-class CRM_Case_BAO_CaseContact extends CRM_Case_DAO_CaseContact {
+class CRM_Case_BAO_CaseContact extends CRM_Case_DAO_CaseContact implements \Civi\Core\HookInterface {
 
   /**
    * Create case contact record.
    *
    * @param array $params
-   *   case_id, contact_id
    *
+   * @deprecated
    * @return CRM_Case_BAO_CaseContact
    */
   public static function create($params) {
-    $caseContact = self::writeRecord($params);
+    CRM_Core_Error::deprecatedFunctionWarning('writeRecord');
+    return self::writeRecord($params);
+  }
 
-    // add to recently viewed
-    $caseType = CRM_Case_BAO_Case::getCaseType($caseContact->case_id);
-    $url = CRM_Utils_System::url('civicrm/contact/view/case',
-      "action=view&reset=1&id={$caseContact->case_id}&cid={$caseContact->contact_id}&context=home"
-    );
+  /**
+   * Callback for hook_civicrm_post().
+   * @param \Civi\Core\Event\PostEvent $event
+   */
+  public static function self_hook_civicrm_post(\Civi\Core\Event\PostEvent $event) {
+    if ($event->action === 'create' || $event->action === 'edit') {
+      $caseContact = $event->object;
 
-    $title = CRM_Contact_BAO_Contact::displayName($caseContact->contact_id) . ' - ' . $caseType;
+      // Add case to recentl items for logged-in users
+      if ($caseContact->case_id && $caseContact->contact_id && CRM_Core_Session::getLoggedInContactID()) {
+        $caseType = CRM_Case_BAO_Case::getCaseType($caseContact->case_id);
+        $url = CRM_Utils_System::url('civicrm/contact/view/case',
+          "action=view&reset=1&id={$caseContact->case_id}&cid={$caseContact->contact_id}&context=home"
+        );
 
-    $recentOther = [];
-    if (CRM_Core_Permission::checkActionPermission('CiviCase', CRM_Core_Action::DELETE)) {
-      $recentOther['deleteUrl'] = CRM_Utils_System::url('civicrm/contact/view/case',
-        "action=delete&reset=1&id={$caseContact->case_id}&cid={$caseContact->contact_id}&context=home"
-      );
-    }
+        $title = CRM_Contact_BAO_Contact::displayName($caseContact->contact_id) . ' - ' . $caseType;
 
-    // add the recently created case
-    CRM_Utils_Recent::add($title,
-      $url,
-      $caseContact->case_id,
-      'Case',
-      $caseContact->contact_id,
-      NULL,
-      $recentOther
-    );
+        $recentOther = [];
+        if (CRM_Core_Permission::checkActionPermission('CiviCase', CRM_Core_Action::DELETE)) {
+          $recentOther['deleteUrl'] = CRM_Utils_System::url('civicrm/contact/view/case',
+            "action=delete&reset=1&id={$caseContact->case_id}&cid={$caseContact->contact_id}&context=home"
+          );
+        }
 
-    return $caseContact;
+        // add the recently affected case
+        CRM_Utils_Recent::add($title,
+          $url,
+          $caseContact->case_id,
+          'Case',
+          $caseContact->contact_id,
+          NULL,
+          $recentOther
+        );
+      }
+    }
   }
 
   /**
diff --git a/civicrm/CRM/Case/DAO/Case.php b/civicrm/CRM/Case/DAO/Case.php
index d361768e8bafe4a4df00afec57f765c9bdaa9af4..70afd42baef1019c1e04b3f3d40a251f03c03e51 100644
--- a/civicrm/CRM/Case/DAO/Case.php
+++ b/civicrm/CRM/Case/DAO/Case.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Case/Case.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:c319c7a1e16e3a2dadb8b2049bd00398)
+ * (GenCodeChecksum:64f4fa789f0b49013001698acf6c7463)
  */
 
 /**
@@ -189,6 +189,12 @@ class CRM_Case_DAO_Case extends CRM_Core_DAO {
           'title' => ts('Case ID'),
           'description' => ts('Unique Case ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_case.id',
           'export' => TRUE,
@@ -208,6 +214,12 @@ class CRM_Case_DAO_Case extends CRM_Core_DAO {
           'title' => ts('Case Type ID'),
           'description' => ts('FK to civicrm_case_type.id'),
           'required' => TRUE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => FALSE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_case.case_type_id',
           'export' => FALSE,
@@ -234,6 +246,12 @@ class CRM_Case_DAO_Case extends CRM_Core_DAO {
           'description' => ts('Short name of the case.'),
           'maxlength' => 128,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_case.subject',
           'export' => TRUE,
@@ -251,6 +269,12 @@ class CRM_Case_DAO_Case extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE,
           'title' => ts('Case Start Date'),
           'description' => ts('Date on which given case starts.'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_case.start_date',
           'export' => TRUE,
@@ -260,7 +284,7 @@ class CRM_Case_DAO_Case extends CRM_Core_DAO {
           'localizable' => 0,
           'html' => [
             'type' => 'Select Date',
-            'formatType' => 'activityDateTime',
+            'formatType' => 'activityDate',
           ],
           'add' => '1.8',
         ],
@@ -269,6 +293,12 @@ class CRM_Case_DAO_Case extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE,
           'title' => ts('Case End Date'),
           'description' => ts('Date on which given case ends.'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_case.end_date',
           'export' => TRUE,
@@ -278,7 +308,7 @@ class CRM_Case_DAO_Case extends CRM_Core_DAO {
           'localizable' => 0,
           'html' => [
             'type' => 'Select Date',
-            'formatType' => 'activityDateTime',
+            'formatType' => 'activityDate',
           ],
           'add' => '1.8',
         ],
@@ -289,6 +319,12 @@ class CRM_Case_DAO_Case extends CRM_Core_DAO {
           'description' => ts('Details populated from Open Case. Only used in the CiviCase extension.'),
           'rows' => 8,
           'cols' => 60,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_case.details',
           'table_name' => 'civicrm_case',
           'entity' => 'Case',
@@ -306,6 +342,12 @@ class CRM_Case_DAO_Case extends CRM_Core_DAO {
           'title' => ts('Case Status'),
           'description' => ts('ID of case status.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => FALSE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_case.status_id',
           'export' => FALSE,
@@ -327,6 +369,12 @@ class CRM_Case_DAO_Case extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_BOOLEAN,
           'title' => ts('Case is in the Trash'),
           'required' => TRUE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_case.is_deleted',
           'export' => TRUE,
@@ -346,6 +394,12 @@ class CRM_Case_DAO_Case extends CRM_Core_DAO {
           'title' => ts('Created Date'),
           'description' => ts('When was the case was created.'),
           'required' => FALSE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => TRUE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_case.created_date',
           'export' => TRUE,
           'default' => NULL,
@@ -365,6 +419,12 @@ class CRM_Case_DAO_Case extends CRM_Core_DAO {
           'title' => ts('Modified Date'),
           'description' => ts('When was the case (or closely related entity) was created or modified or deleted.'),
           'required' => FALSE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => TRUE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_case.modified_date',
           'export' => TRUE,
           'default' => 'CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP',
diff --git a/civicrm/CRM/Case/DAO/CaseActivity.php b/civicrm/CRM/Case/DAO/CaseActivity.php
index 7536a7d3ef346dd907f0686753e54c8aa8ce97d8..12af3d8f61a2c864dbc71783ea5415aead17ba18 100644
--- a/civicrm/CRM/Case/DAO/CaseActivity.php
+++ b/civicrm/CRM/Case/DAO/CaseActivity.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Case/CaseActivity.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:02a39b6a4bf7478c67f79af913ba41c6)
+ * (GenCodeChecksum:f23fb40d45733dd00663de2b580911b5)
  */
 
 /**
@@ -106,6 +106,12 @@ class CRM_Case_DAO_CaseActivity extends CRM_Core_DAO {
           'title' => ts('Case Activity ID'),
           'description' => ts('Unique case-activity association id'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_case_activity.id',
           'table_name' => 'civicrm_case_activity',
           'entity' => 'CaseActivity',
@@ -123,6 +129,12 @@ class CRM_Case_DAO_CaseActivity extends CRM_Core_DAO {
           'title' => ts('Case ID'),
           'description' => ts('Case ID of case-activity association.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_case_activity.case_id',
           'table_name' => 'civicrm_case_activity',
           'entity' => 'CaseActivity',
@@ -140,6 +152,12 @@ class CRM_Case_DAO_CaseActivity extends CRM_Core_DAO {
           'title' => ts('Activity ID'),
           'description' => ts('Activity ID of case-activity association.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_case_activity.activity_id',
           'table_name' => 'civicrm_case_activity',
           'entity' => 'CaseActivity',
diff --git a/civicrm/CRM/Case/DAO/CaseContact.php b/civicrm/CRM/Case/DAO/CaseContact.php
index d74da96f19a532fd2b68be84967880c5652814e2..518c5954f766f985488414d356b9f1bfef2c32f3 100644
--- a/civicrm/CRM/Case/DAO/CaseContact.php
+++ b/civicrm/CRM/Case/DAO/CaseContact.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Case/CaseContact.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:4f8e7ac63bb770f81fc83288904ded4d)
+ * (GenCodeChecksum:61369f10107baa2a4c95d6cd83045a00)
  */
 
 /**
@@ -106,6 +106,12 @@ class CRM_Case_DAO_CaseContact extends CRM_Core_DAO {
           'title' => ts('Case Contact ID'),
           'description' => ts('Unique case-contact association id'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_case_contact.id',
           'table_name' => 'civicrm_case_contact',
           'entity' => 'CaseContact',
@@ -123,6 +129,12 @@ class CRM_Case_DAO_CaseContact extends CRM_Core_DAO {
           'title' => ts('Case ID'),
           'description' => ts('Case ID of case-contact association.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_case_contact.case_id',
           'table_name' => 'civicrm_case_contact',
           'entity' => 'CaseContact',
@@ -140,6 +152,12 @@ class CRM_Case_DAO_CaseContact extends CRM_Core_DAO {
           'title' => ts('Contact ID'),
           'description' => ts('Contact ID of contact record given case belongs to.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_case_contact.contact_id',
           'table_name' => 'civicrm_case_contact',
           'entity' => 'CaseContact',
diff --git a/civicrm/CRM/Case/DAO/CaseType.php b/civicrm/CRM/Case/DAO/CaseType.php
index 686e4bf31491622b518f9530a3aaf39a094c3f33..6ec213c0e87dd32f6c1ab6b34c6ef34a33c0a2fc 100644
--- a/civicrm/CRM/Case/DAO/CaseType.php
+++ b/civicrm/CRM/Case/DAO/CaseType.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Case/CaseType.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:83dbb9b5c17d5c9d78f8abbe28c525bb)
+ * (GenCodeChecksum:942b11d00fab3506535e81984187a767)
  */
 
 /**
@@ -142,6 +142,12 @@ class CRM_Case_DAO_CaseType extends CRM_Core_DAO {
           'title' => ts('Case Type ID'),
           'description' => ts('Autoincremented type id'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_case_type.id',
           'table_name' => 'civicrm_case_type',
           'entity' => 'CaseType',
@@ -161,6 +167,12 @@ class CRM_Case_DAO_CaseType extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_case_type.name',
           'table_name' => 'civicrm_case_type',
           'entity' => 'CaseType',
@@ -179,6 +191,12 @@ class CRM_Case_DAO_CaseType extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_case_type.title',
           'table_name' => 'civicrm_case_type',
           'entity' => 'CaseType',
@@ -196,6 +214,12 @@ class CRM_Case_DAO_CaseType extends CRM_Core_DAO {
           'description' => ts('Description of the Case Type'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_case_type.description',
           'table_name' => 'civicrm_case_type',
           'entity' => 'CaseType',
@@ -212,6 +236,12 @@ class CRM_Case_DAO_CaseType extends CRM_Core_DAO {
           'title' => ts('Case Type Is Active'),
           'description' => ts('Is this case type enabled?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_case_type.is_active',
           'default' => '1',
           'table_name' => 'civicrm_case_type',
@@ -230,6 +260,12 @@ class CRM_Case_DAO_CaseType extends CRM_Core_DAO {
           'title' => ts('Case Type Is Reserved'),
           'description' => ts('Is this case type a predefined system type?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_case_type.is_reserved',
           'default' => '0',
           'table_name' => 'civicrm_case_type',
@@ -247,6 +283,12 @@ class CRM_Case_DAO_CaseType extends CRM_Core_DAO {
           'title' => ts('Order'),
           'description' => ts('Ordering of the case types'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_case_type.weight',
           'default' => '1',
           'table_name' => 'civicrm_case_type',
@@ -263,6 +305,12 @@ class CRM_Case_DAO_CaseType extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_BLOB,
           'title' => ts('Case Type Definition'),
           'description' => ts('xml definition of case type'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_case_type.definition',
           'table_name' => 'civicrm_case_type',
           'entity' => 'CaseType',
diff --git a/civicrm/CRM/Case/Form/Activity/OpenCase.php b/civicrm/CRM/Case/Form/Activity/OpenCase.php
index 740e7cdb579695e64e7ffdae808c8892049b3486..1c3092f0bc19fb24ac6e0f8d937d75e5e1f7c6a3 100644
--- a/civicrm/CRM/Case/Form/Activity/OpenCase.php
+++ b/civicrm/CRM/Case/Form/Activity/OpenCase.php
@@ -276,7 +276,7 @@ class CRM_Case_Form_Activity_OpenCase {
           'case_id' => $params['case_id'],
           'contact_id' => $cliId,
         ];
-        CRM_Case_BAO_CaseContact::create($contactParams);
+        CRM_Case_BAO_CaseContact::writeRecord($contactParams);
       }
     }
     else {
@@ -284,7 +284,7 @@ class CRM_Case_Form_Activity_OpenCase {
         'case_id' => $params['case_id'],
         'contact_id' => $form->_currentlyViewedContactId,
       ];
-      CRM_Case_BAO_CaseContact::create($contactParams);
+      CRM_Case_BAO_CaseContact::writeRecord($contactParams);
     }
 
     // 2. initiate xml processor
diff --git a/civicrm/CRM/Case/Form/Case.php b/civicrm/CRM/Case/Form/Case.php
index 76800a435858fd1dfcadb0e4fd72819b39cb85e9..da3c6cda7be5d0e8e98c786b58ec33f96fc3d494 100644
--- a/civicrm/CRM/Case/Form/Case.php
+++ b/civicrm/CRM/Case/Form/Case.php
@@ -198,7 +198,7 @@ class CRM_Case_Form_Case extends CRM_Core_Form {
   /**
    * Set default values for the form.
    */
-  public function setDefaultValues() {
+  public function setDefaultValues(): array {
     if ($this->_action & CRM_Core_Action::DELETE || $this->_action & CRM_Core_Action::RENEW) {
       return [];
     }
diff --git a/civicrm/CRM/Case/Form/Task/PDF.php b/civicrm/CRM/Case/Form/Task/PDF.php
index c8ad1631617798ef0f801bcd096e4997979b9584..9b5da6ee495fc4cd03cefcc4ee92651e6c0aa97e 100644
--- a/civicrm/CRM/Case/Form/Task/PDF.php
+++ b/civicrm/CRM/Case/Form/Task/PDF.php
@@ -38,7 +38,6 @@ class CRM_Case_Form_Task_PDF extends CRM_Case_Form_Task {
    */
   public function preProcess() {
     $this->preProcessPDF();
-    $this->skipOnHold = $this->skipDeceased = FALSE;
     parent::preProcess();
     $this->setContactIDs();
   }
diff --git a/civicrm/CRM/Case/Page/AJAX.php b/civicrm/CRM/Case/Page/AJAX.php
index ba333b9e7325c4e8067f36bfb61e07aa9a4fbd0e..a309da8b2dd875784c78aaa7f69278c9e362c1f7 100644
--- a/civicrm/CRM/Case/Page/AJAX.php
+++ b/civicrm/CRM/Case/Page/AJAX.php
@@ -117,7 +117,7 @@ class CRM_Case_Page_AJAX {
       'contact_id' => $contactId,
     ];
 
-    CRM_Case_BAO_CaseContact::create($params);
+    CRM_Case_BAO_CaseContact::writeRecord($params);
 
     // add case relationships
     CRM_Case_BAO_Case::addCaseRelationships($caseId, $contactId);
diff --git a/civicrm/CRM/Contact/BAO/Contact/Utils.php b/civicrm/CRM/Contact/BAO/Contact/Utils.php
index d76ea928e66541825f6011794b02c6c864b6b3f5..c771a8aef8d166b6168ad5104280cf01fc35f8a1 100644
--- a/civicrm/CRM/Contact/BAO/Contact/Utils.php
+++ b/civicrm/CRM/Contact/BAO/Contact/Utils.php
@@ -284,13 +284,16 @@ WHERE  id IN ( $idString )
         ['relationship_type_id', '=', $relationshipTypeID],
         ['is_active', 'IN', [0, 1]],
       ])
-      ->setSelect(['id', 'is_active', 'start_date', 'end_date', 'contact_id_a.employer_id'])
+      ->setSelect(['id', 'is_active', 'start_date', 'end_date', 'contact_id_a.employer_id', 'contact_id_a.organization_name', 'contact_id_b.organization_name'])
       ->addOrderBy('is_active', 'DESC')
       ->setLimit(1)
       ->execute()->first();
 
     if (!empty($existingRelationship)) {
       if ($existingRelationship['is_active']) {
+        if ($existingRelationship['contact_id_a.organization_name'] !== $existingRelationship['contact_id_b.organization_name']) {
+          self::setCurrentEmployer([$contactID => $employerID]);
+        }
         // My work here is done.
         return;
       }
diff --git a/civicrm/CRM/Contact/BAO/ContactType.php b/civicrm/CRM/Contact/BAO/ContactType.php
index d02752fe9d353111ee316c31accde0464ee21f42..77eaa894070a747a216275b15459322b6839598a 100644
--- a/civicrm/CRM/Contact/BAO/ContactType.php
+++ b/civicrm/CRM/Contact/BAO/ContactType.php
@@ -459,6 +459,7 @@ WHERE  subtype.name IN ('" . implode("','", $subType) . "' )";
    * @return bool
    */
   public static function del($contactTypeId) {
+    CRM_Core_Error::deprecatedFunctionWarning('deleteRecord');
     if (!$contactTypeId) {
       return FALSE;
     }
@@ -587,17 +588,13 @@ WHERE contact_sub_type LIKE '%{$subType}%'";
   }
 
   /**
-   * Update the is_active flag in the db.
-   *
+   * @deprecated - this bypasses hooks.
    * @param int $id
-   *   Id of the database record.
    * @param bool $is_active
-   *   Value we want to set the is_active field.
-   *
    * @return bool
-   *   true if we found and updated the object, else false
    */
   public static function setIsActive($id, $is_active) {
+    CRM_Core_Error::deprecatedFunctionWarning('writeRecord');
     $params = ['id' => $id];
     self::retrieve($params, $contactinfo);
     $params = ['name' => "New $contactinfo[name]"];
diff --git a/civicrm/CRM/Contact/BAO/Group.php b/civicrm/CRM/Contact/BAO/Group.php
index 15ce4f712845b372faba775acb383511f6725b8b..27c5a65f2fd72ed7e4c1da90fbe63633db20aa63 100644
--- a/civicrm/CRM/Contact/BAO/Group.php
+++ b/civicrm/CRM/Contact/BAO/Group.php
@@ -493,9 +493,9 @@ class CRM_Contact_BAO_Group extends CRM_Contact_DAO_Group {
 
     $recentOther = [];
     if (CRM_Core_Permission::check('edit groups')) {
-      $recentOther['editUrl'] = CRM_Utils_System::url('civicrm/group', 'reset=1&action=update&id=' . $group->id);
+      $recentOther['editUrl'] = CRM_Utils_System::url('civicrm/group/edit', 'reset=1&action=update&id=' . $group->id);
       // currently same permission we are using for delete a group
-      $recentOther['deleteUrl'] = CRM_Utils_System::url('civicrm/group', 'reset=1&action=delete&id=' . $group->id);
+      $recentOther['deleteUrl'] = CRM_Utils_System::url('civicrm/group/edit', 'reset=1&action=delete&id=' . $group->id);
     }
 
     // add the recently added group (unless hidden: CRM-6432)
@@ -541,15 +541,10 @@ class CRM_Contact_BAO_Group extends CRM_Contact_DAO_Group {
   }
 
   /**
-   * Update the is_active flag in the db.
-   *
+   * @deprecated - this bypasses hooks.
    * @param int $id
-   *   Id of the database record.
    * @param bool $isActive
-   *   Value we want to set the is_active field.
-   *
    * @return bool
-   *   true if we found and updated the object, else false
    */
   public static function setIsActive($id, $isActive) {
     return CRM_Core_DAO::setFieldValue('CRM_Contact_DAO_Group', $id, 'is_active', $isActive);
@@ -1304,7 +1299,7 @@ WHERE {$whereClause}";
       ],
       CRM_Core_Action::UPDATE => [
         'name' => ts('Settings'),
-        'url' => 'civicrm/group',
+        'url' => 'civicrm/group/edit',
         'qs' => 'reset=1&action=update&id=%%id%%',
         'title' => ts('Edit Group'),
       ],
@@ -1320,7 +1315,7 @@ WHERE {$whereClause}";
       ],
       CRM_Core_Action::DELETE => [
         'name' => ts('Delete'),
-        'url' => 'civicrm/group',
+        'url' => 'civicrm/group/edit',
         'qs' => 'reset=1&action=delete&id=%%id%%',
         'title' => ts('Delete Group'),
       ],
diff --git a/civicrm/CRM/Contact/BAO/Individual.php b/civicrm/CRM/Contact/BAO/Individual.php
index 43ea780a7ade8996b1e23c8ff18422cf72113743..9c23f979236aedce8e155be46baffaecced7c6ad 100644
--- a/civicrm/CRM/Contact/BAO/Individual.php
+++ b/civicrm/CRM/Contact/BAO/Individual.php
@@ -248,98 +248,6 @@ class CRM_Contact_BAO_Individual extends CRM_Contact_DAO_Contact {
       }
     }
 
-    $format = CRM_Utils_Date::getDateFormat('birth');
-    if ($date = CRM_Utils_Array::value('birth_date', $params)) {
-      if (in_array($format, [
-        'dd-mm',
-        'mm/dd',
-      ])) {
-        $separator = '/';
-        if ($format == 'dd-mm') {
-          $separator = '-';
-        }
-        $date = $date . $separator . '1902';
-      }
-      elseif (in_array($format, [
-        'yy-mm',
-      ])) {
-        $date = $date . '-01';
-      }
-      elseif (in_array($format, [
-        'M yy',
-      ])) {
-        $date = $date . '-01';
-      }
-      elseif (in_array($format, [
-        'yy',
-      ])) {
-        $date = $date . '-01-01';
-      }
-      $processedDate = CRM_Utils_Date::processDate($date);
-      $existing = substr(str_replace('-', '', $contact->birth_date), 0, 8) . '000000';
-      // By adding this check here we can rip out this whole routine in a few
-      // months after confirming it actually does nothing, ever.
-      if ($existing !== $processedDate) {
-        CRM_Core_Error::deprecatedWarning('birth_date formatting should happen before BAO is hit');
-        $contact->birth_date = $processedDate;
-      }
-    }
-    elseif ($contact->birth_date) {
-      if ($contact->birth_date !== CRM_Utils_Date::isoToMysql($contact->birth_date)) {
-        CRM_Core_Error::deprecatedWarning('birth date formatting should happen before BAO is hit');
-      }
-      $contact->birth_date = CRM_Utils_Date::isoToMysql($contact->birth_date);
-    }
-
-    if ($date = CRM_Utils_Array::value('deceased_date', $params)) {
-      if (in_array($format, [
-        'dd-mm',
-        'mm/dd',
-      ])) {
-        $separator = '/';
-        if ($format == 'dd-mm') {
-          $separator = '-';
-        }
-        $date = $date . $separator . '1902';
-      }
-      elseif (in_array($format, [
-        'yy-mm',
-      ])) {
-        $date = $date . '-01';
-      }
-      elseif (in_array($format, [
-        'M yy',
-      ])) {
-        $date = $date . '-01';
-      }
-      elseif (in_array($format, [
-        'yy',
-      ])) {
-        $date = $date . '-01-01';
-      }
-      $processedDate = CRM_Utils_Date::processDate($date);
-      $existing = substr(str_replace('-', '', $contact->deceased_date), 0, 8) . '000000';
-      // By adding this check here we can rip out this whole routine in a few
-      // months after confirming it actually does nothing, ever.
-      if ($existing !== $processedDate) {
-        CRM_Core_Error::deprecatedWarning('deceased formatting should happen before BAO is hit');
-      }
-      $contact->deceased_date = CRM_Utils_Date::processDate($date);
-    }
-    elseif ($contact->deceased_date) {
-      if ($contact->deceased_date !== CRM_Utils_Date::isoToMysql($contact->deceased_date)) {
-        CRM_Core_Error::deprecatedWarning('deceased date formatting should happen before BAO is hit');
-      }
-      $contact->deceased_date = CRM_Utils_Date::isoToMysql($contact->deceased_date);
-    }
-
-    if ($middle_name = CRM_Utils_Array::value('middle_name', $params)) {
-      if ($middle_name !== $contact->middle_name) {
-        CRM_Core_Error::deprecatedWarning('random magic is deprecated - how could this be true');
-      }
-      $contact->middle_name = $middle_name;
-    }
-
     return $contact;
   }
 
diff --git a/civicrm/CRM/Contact/BAO/Relationship.php b/civicrm/CRM/Contact/BAO/Relationship.php
index f4c97866f82820fd699079381f2ecb7e31d11638..29066d14ab301a3b89eaefa37e745c6234f5bb2e 100644
--- a/civicrm/CRM/Contact/BAO/Relationship.php
+++ b/civicrm/CRM/Contact/BAO/Relationship.php
@@ -9,6 +9,9 @@
  +--------------------------------------------------------------------+
  */
 
+use Civi\Api4\MembershipType;
+use Civi\Api4\Relationship;
+
 /**
  * Class CRM_Contact_BAO_Relationship.
  */
@@ -49,14 +52,14 @@ class CRM_Contact_BAO_Relationship extends CRM_Contact_DAO_Relationship implemen
   public static function create(&$params) {
 
     $extendedParams = self::loadExistingRelationshipDetails($params);
-    // When id is specified we always wan't to update, so we don't need to
-    // check for duplicate relations.
+    // When id is specified we always want to update, so we don't need to check for duplicate relations.
     if (!isset($params['id']) && self::checkDuplicateRelationship($extendedParams, (int) $extendedParams['contact_id_a'], (int) $extendedParams['contact_id_b'], CRM_Utils_Array::value('id', $extendedParams, 0))) {
       throw new CRM_Core_Exception('Duplicate Relationship');
     }
     $params = $extendedParams;
-    if (!CRM_Contact_BAO_Relationship::checkRelationshipType($params['contact_id_a'], $params['contact_id_b'],
-      $params['relationship_type_id'])) {
+    // Check if this is a "simple" disable relationship. If it is don't check the relationshipType
+    $disableRelationship = !empty($params['id']) && array_key_exists('is_active', $params) && empty($params['is_active']);
+    if (!$disableRelationship && !CRM_Contact_BAO_Relationship::checkRelationshipType($params['contact_id_a'], $params['contact_id_b'], $params['relationship_type_id'])) {
       throw new CRM_Core_Exception('Invalid Relationship');
     }
     $relationship = self::add($params);
@@ -606,37 +609,8 @@ class CRM_Contact_BAO_Relationship extends CRM_Contact_DAO_Relationship implemen
   public static function disableEnableRelationship($id, $action, $params = [], $ids = [], $active = FALSE) {
     $relationship = self::clearCurrentEmployer($id, $action);
 
-    if ($id) {
-      // create $params array which is required to delete memberships
-      // of the related contacts.
-      if (empty($params)) {
-        $params = [
-          'relationship_type_id' => "{$relationship->relationship_type_id}_a_b",
-          'contact_check' => [$relationship->contact_id_b => 1],
-        ];
-      }
-      $contact_id_a = empty($params['contact_id_a']) ? $relationship->contact_id_a : $params['contact_id_a'];
-      // calling relatedMemberships to delete/add the memberships of
-      // related contacts.
-      if ($action & CRM_Core_Action::DISABLE) {
-        // @todo this could call a subset of the function that just relates to
-        // cleaning up no-longer-inherited relationships
-        CRM_Contact_BAO_Relationship::relatedMemberships($contact_id_a,
-          $params,
-          $ids,
-          CRM_Core_Action::DELETE,
-          $active
-        );
-      }
-      elseif ($action & CRM_Core_Action::ENABLE) {
-        $ids['contact'] = empty($ids['contact']) ? $contact_id_a : $ids['contact'];
-        CRM_Contact_BAO_Relationship::relatedMemberships($contact_id_a,
-          $params,
-          $ids,
-          empty($params['id']) ? CRM_Core_Action::ADD : CRM_Core_Action::UPDATE,
-          $active
-        );
-      }
+    if ($id && CRM_Core_Component::isEnabled('CiviMember')) {
+      self::updateMembershipsByRelationship($params, $relationship, $action, $ids, $active);
     }
   }
 
@@ -1377,10 +1351,9 @@ LEFT JOIN  civicrm_country ON (civicrm_address.country_id = civicrm_country.id)
    * @throws \CRM_Core_Exception
    */
   public static function relatedMemberships($contactId, $params, $ids, $action = CRM_Core_Action::ADD, $active = TRUE) {
-    // Check the end date and set the status of the relationship
-    // accordingly.
+    // Check the end date and set the status of the relationship accordingly.
     $status = self::CURRENT;
-    $targetContact = $targetContact = CRM_Utils_Array::value('contact_check', $params, []);
+    $targetContact = $params['contact_check'] ?? [];
     $today = date('Ymd');
 
     // If a relationship hasn't yet started, just return for now
@@ -1430,8 +1403,7 @@ LEFT JOIN  civicrm_country ON (civicrm_address.country_id = civicrm_country.id)
     // Build the 'values' array for
     // 1. ContactA
     // 2. ContactB
-    // This will allow us to check if either of the contacts in
-    // relationship have active memberships.
+    // This will allow us to check if either of the contacts in relationship have active memberships.
 
     $values = [];
 
@@ -1490,8 +1462,7 @@ LEFT JOIN  civicrm_country ON (civicrm_address.country_id = civicrm_country.id)
           ($status & self::PAST) &&
           ($membershipValues['owner_membership_id'])
         ) {
-          // If relationship is PAST and action is UPDATE
-          // then delete the RELATED membership
+          // If relationship is PAST and action is UPDATE then delete the RELATED membership
           CRM_Member_BAO_Membership::deleteRelatedMemberships($membershipValues['owner_membership_id'],
             $membershipValues['contact_id']
           );
@@ -1517,9 +1488,7 @@ LEFT JOIN  civicrm_country ON (civicrm_address.country_id = civicrm_country.id)
         }
         $relTypeDir = $details['relationshipTypeId'] . $details['relationshipTypeDirection'];
         if (in_array($relTypeDir, $relTypeDirs)) {
-          // Check if relationship being created/updated is
-          // similar to that of membership type's
-          // relationship.
+          // Check if relationship being created/updated is similar to that of membership type's relationship.
 
           $membershipValues['owner_membership_id'] = $membershipId;
           unset($membershipValues['id']);
@@ -1542,11 +1511,10 @@ LEFT JOIN  civicrm_country ON (civicrm_address.country_id = civicrm_country.id)
                 continue;
               }
 
-              //delete the membership record for related
-              //contact before creating new membership record.
+              // delete the membership record for related contact before creating new membership record.
               CRM_Member_BAO_Membership::deleteRelatedMemberships($membershipId, $relatedContactId);
             }
-            //skip status calculation for pay later memberships.
+            // skip status calculation for pay later memberships.
             if ('Pending' === CRM_Core_PseudoConstant::getName('CRM_Member_BAO_Membership', 'status_id', $membershipValues['status_id'])) {
               $membershipValues['skipStatusCal'] = TRUE;
             }
@@ -2152,13 +2120,14 @@ AND cc.sort_name LIKE '%$name%'";
    */
   private static function isContactHasValidRelationshipToInheritMembershipType(int $contactID, int $membershipTypeID, int $parentMembershipID): bool {
     $membershipType = CRM_Member_BAO_MembershipType::getMembershipType($membershipTypeID);
-    $existingRelationships = civicrm_api3('Relationship', 'get', [
-      'contact_id_a' => $contactID,
-      'contact_id_b' => $contactID,
-      'relationship_type_id' => ['IN' => $membershipType['relationship_type_id']],
-      'options' => ['or' => [['contact_id_a', 'contact_id_b']], 'limit' => 0],
-      'is_active' => 1,
-    ])['values'];
+
+    $existingRelationships = Relationship::get(FALSE)
+      ->addWhere('relationship_type_id', 'IN', $membershipType['relationship_type_id'])
+      ->addClause('OR', ['contact_id_a', '=', $contactID], ['contact_id_b', '=', $contactID])
+      ->addWhere('is_active', '=', TRUE)
+      ->execute()
+      ->indexBy('id')
+      ->getArrayCopy();
 
     if (empty($existingRelationships)) {
       return FALSE;
@@ -2244,4 +2213,64 @@ SELECT count(*)
     return $membershipValues;
   }
 
+  /**
+   * @param array $params
+   * @param \CRM_Contact_DAO_Relationship $relationship
+   * @param int $action
+   * @param array $ids
+   * @param bool $active
+   *
+   * @throws \CRM_Core_Exception
+   * @throws \Civi\API\Exception\UnauthorizedException
+   */
+  protected static function updateMembershipsByRelationship(array $params, CRM_Contact_DAO_Relationship $relationship, int $action, array $ids, bool $active): void {
+    // create $params array which is required to delete memberships
+    // of the related contacts.
+    if (empty($params)) {
+      $params = [
+        'relationship_type_id' => "{$relationship->relationship_type_id}_a_b",
+        'contact_check' => [$relationship->contact_id_b => 1],
+      ];
+    }
+    $contact_id_a = empty($params['contact_id_a']) ? $relationship->contact_id_a : $params['contact_id_a'];
+
+    // Check if relationship can be used for related memberships
+    $membershipTypes = MembershipType::get(FALSE)
+      ->addSelect('relationship_type_id')
+      ->addGroupBy('relationship_type_id')
+      ->addWhere('relationship_type_id', 'IS NOT EMPTY')
+      ->execute();
+    foreach ($membershipTypes as $membershipType) {
+      // We have to loop through them because relationship_type_id is an array and we can't filter by a single
+      // relationship id using API.
+      if (in_array($relationship->relationship_type_id, $membershipType['relationship_type_id'])) {
+        $relationshipIsUsedForRelatedMemberships = TRUE;
+      }
+    }
+    if (empty($relationshipIsUsedForRelatedMemberships)) {
+      // This relationship is not configured for any related membership types
+      return;
+    }
+    // Call relatedMemberships to delete/add the memberships of related contacts.
+    if ($action & CRM_Core_Action::DISABLE) {
+      // @todo this could call a subset of the function that just relates to
+      // cleaning up no-longer-inherited relationships
+      CRM_Contact_BAO_Relationship::relatedMemberships($contact_id_a,
+        $params,
+        $ids,
+        CRM_Core_Action::DELETE,
+        $active
+      );
+    }
+    elseif ($action & CRM_Core_Action::ENABLE) {
+      $ids['contact'] = empty($ids['contact']) ? $contact_id_a : $ids['contact'];
+      CRM_Contact_BAO_Relationship::relatedMemberships($contact_id_a,
+        $params,
+        $ids,
+        empty($params['id']) ? CRM_Core_Action::ADD : CRM_Core_Action::UPDATE,
+        $active
+      );
+    }
+  }
+
 }
diff --git a/civicrm/CRM/Contact/BAO/RelationshipType.php b/civicrm/CRM/Contact/BAO/RelationshipType.php
index 3daef9e626b0b78c8c52a9699d8d9d3793ff5f64..e74b475c3d112f70137aa7b78d7332dc7d8f33b8 100644
--- a/civicrm/CRM/Contact/BAO/RelationshipType.php
+++ b/civicrm/CRM/Contact/BAO/RelationshipType.php
@@ -38,17 +38,13 @@ class CRM_Contact_BAO_RelationshipType extends CRM_Contact_DAO_RelationshipType
   }
 
   /**
-   * Update the is_active flag in the db.
-   *
+   * @deprecated - this bypasses hooks.
    * @param int $id
-   *   Id of the database record.
    * @param bool $is_active
-   *   Value we want to set the is_active field.
-   *
    * @return bool
-   *   true if we found and updated the object, else false
    */
   public static function setIsActive($id, $is_active) {
+    CRM_Core_Error::deprecatedFunctionWarning('writeRecord');
     return CRM_Core_DAO::setFieldValue('CRM_Contact_DAO_RelationshipType', $id, 'is_active', $is_active);
   }
 
@@ -98,12 +94,8 @@ class CRM_Contact_BAO_RelationshipType extends CRM_Contact_DAO_RelationshipType
    * @return mixed
    */
   public static function del($relationshipTypeId) {
-    // make sure relationshipTypeId is an integer
-    // @todo review this as most delete functions rely on the api & form layer for this
-    // or do a find first & throw error if no find
-    if (!CRM_Utils_Rule::positiveInteger($relationshipTypeId)) {
-      throw new CRM_Core_Exception(ts('Invalid relationship type'));
-    }
+    CRM_Core_Error::deprecatedFunctionWarning('deleteRecord');
+
     return static::deleteRecord(['id' => $relationshipTypeId]);
   }
 
diff --git a/civicrm/CRM/Contact/BAO/SavedSearch.php b/civicrm/CRM/Contact/BAO/SavedSearch.php
index f12f4f576bc3f9afda4fd281edbcbd16d6ec75f3..372a185193515f2749f9fa32314f60f590bc1d68 100644
--- a/civicrm/CRM/Contact/BAO/SavedSearch.php
+++ b/civicrm/CRM/Contact/BAO/SavedSearch.php
@@ -18,7 +18,7 @@
 /**
  * Business object for Saved searches.
  */
-class CRM_Contact_BAO_SavedSearch extends CRM_Contact_DAO_SavedSearch {
+class CRM_Contact_BAO_SavedSearch extends CRM_Contact_DAO_SavedSearch implements \Civi\Core\HookInterface {
 
   /**
    * Retrieve DB object and copy to defaults array.
@@ -263,28 +263,38 @@ WHERE  $where";
   }
 
   /**
-   * Create or update SavedSearch record.
-   *
+   * @deprecated
    * @param array $params
-   *
-   * @return \CRM_Contact_DAO_SavedSearch
+   * @return CRM_Contact_DAO_SavedSearch
    */
   public static function create(&$params) {
-    $loggedInContactID = CRM_Core_Session::getLoggedInContactID();
-    if ($loggedInContactID) {
-      if (empty($params['id'])) {
-        $params['created_id'] = $loggedInContactID;
+    return self::writeRecord($params);
+  }
+
+  /**
+   * Callback for hook_civicrm_pre().
+   *
+   * @param \Civi\Core\Event\PreEvent $event
+   *
+   * @throws \CRM_Core_Exception
+   */
+  public static function self_hook_civicrm_pre(\Civi\Core\Event\PreEvent $event): void {
+    if ($event->action === 'create' || $event->action === 'edit') {
+      $loggedInContactID = CRM_Core_Session::getLoggedInContactID();
+      if ($loggedInContactID) {
+        if ($event->action === 'create') {
+          $event->params['created_id'] = $event->params['created_id'] ?? $loggedInContactID;
+        }
+        $event->params['modified_id'] = $event->params['modified_id'] ?? $loggedInContactID;
       }
-      $params['modified_id'] = $loggedInContactID;
-    }
-    // Set by mysql
-    unset($params['modified_date']);
+      // Set by mysql
+      unset($event->params['modified_date']);
 
-    // Flush angular caches to refresh search displays
-    if (isset($params['api_params'])) {
-      Civi::container()->get('angular')->clear();
+      // Flush angular caches to refresh search displays
+      if (isset($event->params['api_params'])) {
+        Civi::container()->get('angular')->clear();
+      }
     }
-    return self::writeRecord($params);
   }
 
   /**
diff --git a/civicrm/CRM/Contact/BAO/SubscriptionHistory.php b/civicrm/CRM/Contact/BAO/SubscriptionHistory.php
index 5deb2c729f440e2b6c1adbdba5630a41d800b395..10caeffe3840823eeaf58aa978417a3e494f97cf 100644
--- a/civicrm/CRM/Contact/BAO/SubscriptionHistory.php
+++ b/civicrm/CRM/Contact/BAO/SubscriptionHistory.php
@@ -16,25 +16,30 @@
  */
 
 /**
- * BAO object for crm_email table.
+ * BAO object for civicrm_subscription_history table.
  */
-class CRM_Contact_BAO_SubscriptionHistory extends CRM_Contact_DAO_SubscriptionHistory {
+class CRM_Contact_BAO_SubscriptionHistory extends CRM_Contact_DAO_SubscriptionHistory implements \Civi\Core\HookInterface {
 
   /**
-   * Create a new subscription history record.
-   *
+   * @deprecated
    * @param array $params
-   *   Values for the new history record.
-   *
-   * @return object
-   *   $history  The new history object
+   * @return CRM_Contact_DAO_SubscriptionHistory
    */
   public static function create($params) {
-    $history = new CRM_Contact_BAO_SubscriptionHistory();
-    $history->date = date('YmdHis');
-    $history->copyValues($params);
-    $history->save();
-    return $history;
+    return self::writeRecord($params);
+  }
+
+  /**
+   * Callback for hook_civicrm_pre().
+   *
+   * @param \Civi\Core\Event\PreEvent $event
+   *
+   * @throws \CRM_Core_Exception
+   */
+  public static function self_hook_civicrm_pre(\Civi\Core\Event\PreEvent $event): void {
+    if ($event->action === 'create' || $event->action === 'edit') {
+      $event->params['date'] = date('YmdHis');
+    }
   }
 
   /**
diff --git a/civicrm/CRM/Contact/DAO/ACLContactCache.php b/civicrm/CRM/Contact/DAO/ACLContactCache.php
index 8a8b0717cd829e946737e9763b5bb8b8bc306804..bb23bd500f63cd10713ba62502f010f5f9af4ca1 100644
--- a/civicrm/CRM/Contact/DAO/ACLContactCache.php
+++ b/civicrm/CRM/Contact/DAO/ACLContactCache.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Contact/ACLContactCache.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:eb8442b2c3e45f1312675606b362b18c)
+ * (GenCodeChecksum:4c2e841e02a874dc937ee986f0346baa)
  */
 
 /**
@@ -98,6 +98,12 @@ class CRM_Contact_DAO_ACLContactCache extends CRM_Core_DAO {
           'title' => ts('ACL Contact Cache ID'),
           'description' => ts('primary key'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_acl_contact_cache.id',
           'table_name' => 'civicrm_acl_contact_cache',
           'entity' => 'ACLContactCache',
@@ -114,6 +120,12 @@ class CRM_Contact_DAO_ACLContactCache extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Contact ID'),
           'description' => ts('FK to civicrm_contact (could be null for anon user)'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_acl_contact_cache.user_id',
           'table_name' => 'civicrm_acl_contact_cache',
           'entity' => 'ACLContactCache',
@@ -127,6 +139,12 @@ class CRM_Contact_DAO_ACLContactCache extends CRM_Core_DAO {
           'title' => ts('Contact ID'),
           'description' => ts('FK to civicrm_contact'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_acl_contact_cache.contact_id',
           'table_name' => 'civicrm_acl_contact_cache',
           'entity' => 'ACLContactCache',
@@ -145,6 +163,12 @@ class CRM_Contact_DAO_ACLContactCache extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 8,
           'size' => CRM_Utils_Type::EIGHT,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_acl_contact_cache.operation',
           'table_name' => 'civicrm_acl_contact_cache',
           'entity' => 'ACLContactCache',
diff --git a/civicrm/CRM/Contact/DAO/Contact.php b/civicrm/CRM/Contact/DAO/Contact.php
index ebdba06ed2e8a59458b8212ae46f60edd5271787..9353b0ce2cb34c3caa249204e3a6bbba6ec4d4c9 100644
--- a/civicrm/CRM/Contact/DAO/Contact.php
+++ b/civicrm/CRM/Contact/DAO/Contact.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Contact/Contact.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:44f607f6289003a3b6715c7b9103359b)
+ * (GenCodeChecksum:4df1e184c1090db6287b82aa8eee7048)
  */
 
 /**
@@ -569,6 +569,12 @@ class CRM_Contact_DAO_Contact extends CRM_Core_DAO {
           'title' => ts('Contact ID'),
           'description' => ts('Unique Contact ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contact.id',
           'headerPattern' => '/internal|contact?|id$/i',
@@ -590,6 +596,12 @@ class CRM_Contact_DAO_Contact extends CRM_Core_DAO {
           'description' => ts('Type of Contact.'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => TRUE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contact.contact_type',
           'export' => TRUE,
           'contactType' => NULL,
@@ -617,6 +629,12 @@ class CRM_Contact_DAO_Contact extends CRM_Core_DAO {
           'description' => ts('May be used to over-ride contact view and edit templates.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contact.contact_sub_type',
           'headerPattern' => '/C(ontact )?(subtype|sub-type|sub type)/i',
@@ -643,6 +661,12 @@ class CRM_Contact_DAO_Contact extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_BOOLEAN,
           'title' => ts('Do Not Email'),
           'required' => TRUE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contact.do_not_email',
           'headerPattern' => '/d(o )?(not )?(email)/i',
@@ -664,6 +688,12 @@ class CRM_Contact_DAO_Contact extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_BOOLEAN,
           'title' => ts('Do Not Phone'),
           'required' => TRUE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contact.do_not_phone',
           'headerPattern' => '/d(o )?(not )?(call|phone)/i',
@@ -685,6 +715,12 @@ class CRM_Contact_DAO_Contact extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_BOOLEAN,
           'title' => ts('Do Not Mail'),
           'required' => TRUE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contact.do_not_mail',
           'headerPattern' => '/^(d(o\s)?n(ot\s)?mail)|(\w*)?bulk\s?(\w*)$/i',
@@ -706,6 +742,12 @@ class CRM_Contact_DAO_Contact extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_BOOLEAN,
           'title' => ts('Do Not Sms'),
           'required' => TRUE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contact.do_not_sms',
           'headerPattern' => '/d(o )?(not )?(sms)/i',
@@ -727,6 +769,12 @@ class CRM_Contact_DAO_Contact extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_BOOLEAN,
           'title' => ts('Do Not Trade'),
           'required' => TRUE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contact.do_not_trade',
           'headerPattern' => '/d(o )?(not )?(trade)/i',
@@ -749,6 +797,12 @@ class CRM_Contact_DAO_Contact extends CRM_Core_DAO {
           'title' => ts('No Bulk Emails (User Opt Out)'),
           'description' => ts('Has the contact opted out from receiving all bulk email from the organization or site domain?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contact.is_opt_out',
           'export' => TRUE,
@@ -770,6 +824,12 @@ class CRM_Contact_DAO_Contact extends CRM_Core_DAO {
           'description' => ts('May be used for SSN, EIN/TIN, Household ID (census) or other applicable unique legal/government ID.'),
           'maxlength' => 32,
           'size' => CRM_Utils_Type::MEDIUM,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contact.legal_identifier',
           'headerPattern' => '/legal\s?id/i',
@@ -792,6 +852,12 @@ class CRM_Contact_DAO_Contact extends CRM_Core_DAO {
           'description' => ts('Unique trusted external ID (generally from a legacy app/datasource). Particularly useful for deduping operations.'),
           'maxlength' => 64,
           'size' => 8,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contact.external_identifier',
           'headerPattern' => '/external\s?id/i',
@@ -814,6 +880,12 @@ class CRM_Contact_DAO_Contact extends CRM_Core_DAO {
           'description' => ts('Name used for sorting different contact types'),
           'maxlength' => 128,
           'size' => 30,
+          'usage' => [
+            'import' => FALSE,
+            'export' => TRUE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contact.sort_name',
           'export' => TRUE,
           'table_name' => 'civicrm_contact',
@@ -833,6 +905,12 @@ class CRM_Contact_DAO_Contact extends CRM_Core_DAO {
           'description' => ts('Formatted name representing preferred format for display/print/other output.'),
           'maxlength' => 128,
           'size' => 30,
+          'usage' => [
+            'import' => FALSE,
+            'export' => TRUE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contact.display_name',
           'export' => TRUE,
           'table_name' => 'civicrm_contact',
@@ -852,6 +930,12 @@ class CRM_Contact_DAO_Contact extends CRM_Core_DAO {
           'description' => ts('Nickname.'),
           'maxlength' => 128,
           'size' => 30,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contact.nick_name',
           'headerPattern' => '/n(ick\s)name|nick$/i',
@@ -873,6 +957,12 @@ class CRM_Contact_DAO_Contact extends CRM_Core_DAO {
           'description' => ts('Legal Name.'),
           'maxlength' => 128,
           'size' => 30,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contact.legal_name',
           'headerPattern' => '/^legal|(l(egal\s)?name)$/i',
@@ -893,6 +983,12 @@ class CRM_Contact_DAO_Contact extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Image Url'),
           'description' => ts('optional URL for preferred image (photo, logo, etc.) to display for this contact.'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contact.image_URL',
           'export' => TRUE,
@@ -913,6 +1009,12 @@ class CRM_Contact_DAO_Contact extends CRM_Core_DAO {
           'description' => ts('What is the preferred mode of communication.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contact.preferred_communication_method',
           'headerPattern' => '/^p(ref\w*\s)?c(omm\w*)|( meth\w*)$/i',
@@ -939,6 +1041,12 @@ class CRM_Contact_DAO_Contact extends CRM_Core_DAO {
           'description' => ts('Which language is preferred for communication. FK to languages in civicrm_option_value.'),
           'maxlength' => 5,
           'size' => CRM_Utils_Type::SIX,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contact.preferred_language',
           'headerPattern' => '/^lang/i',
@@ -964,10 +1072,14 @@ class CRM_Contact_DAO_Contact extends CRM_Core_DAO {
           'description' => ts('Deprecated setting for text vs html mailings'),
           'maxlength' => 8,
           'size' => CRM_Utils_Type::EIGHT,
-          'import' => FALSE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contact.preferred_mail_format',
           'headerPattern' => '/^p(ref\w*\s)?m(ail\s)?f(orm\w*)$/i',
-          'export' => FALSE,
           'default' => 'Both',
           'table_name' => 'civicrm_contact',
           'entity' => 'Contact',
@@ -990,6 +1102,12 @@ class CRM_Contact_DAO_Contact extends CRM_Core_DAO {
           'description' => ts('Key for validating requests related to this contact.'),
           'maxlength' => 32,
           'size' => CRM_Utils_Type::MEDIUM,
+          'usage' => [
+            'import' => FALSE,
+            'export' => TRUE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contact.hash',
           'export' => TRUE,
           'table_name' => 'civicrm_contact',
@@ -1006,6 +1124,12 @@ class CRM_Contact_DAO_Contact extends CRM_Core_DAO {
           'description' => ts('API Key for validating requests related to this contact.'),
           'maxlength' => 32,
           'size' => CRM_Utils_Type::MEDIUM,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contact.api_key',
           'permission' => [
             [
@@ -1030,6 +1154,12 @@ class CRM_Contact_DAO_Contact extends CRM_Core_DAO {
           'description' => ts('where contact come from, e.g. import, donate module insert...'),
           'maxlength' => 255,
           'size' => 30,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contact.source',
           'headerPattern' => '/(C(ontact\s)?Source)$/i',
@@ -1050,6 +1180,12 @@ class CRM_Contact_DAO_Contact extends CRM_Core_DAO {
           'description' => ts('First Name.'),
           'maxlength' => 64,
           'size' => 30,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contact.first_name',
           'headerPattern' => '/^first|(f(irst\s)?name)$/i',
@@ -1073,6 +1209,12 @@ class CRM_Contact_DAO_Contact extends CRM_Core_DAO {
           'description' => ts('Middle Name.'),
           'maxlength' => 64,
           'size' => 30,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contact.middle_name',
           'headerPattern' => '/^middle|(m(iddle\s)?name)$/i',
@@ -1096,6 +1238,12 @@ class CRM_Contact_DAO_Contact extends CRM_Core_DAO {
           'description' => ts('Last Name.'),
           'maxlength' => 64,
           'size' => 30,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contact.last_name',
           'headerPattern' => '/^last|(l(ast\s)?name)$/i',
@@ -1117,6 +1265,12 @@ class CRM_Contact_DAO_Contact extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Individual Prefix'),
           'description' => ts('Prefix or Title for name (Ms, Mr...). FK to prefix ID'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contact.prefix_id',
           'headerPattern' => '/^(prefix|title)/i',
@@ -1141,6 +1295,12 @@ class CRM_Contact_DAO_Contact extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Individual Suffix'),
           'description' => ts('Suffix for name (Jr, Sr...). FK to suffix ID'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contact.suffix_id',
           'headerPattern' => '/^suffix$/i',
@@ -1167,6 +1327,12 @@ class CRM_Contact_DAO_Contact extends CRM_Core_DAO {
           'description' => ts('Formal (academic or similar) title in front of name. (Prof., Dr. etc.)'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contact.formal_title',
           'headerPattern' => '/^title/i',
@@ -1187,6 +1353,12 @@ class CRM_Contact_DAO_Contact extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Communication Style'),
           'description' => ts('Communication style (e.g. formal vs. familiar) to use with this contact. FK to communication styles in civicrm_option_value.'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contact.communication_style_id',
           'headerPattern' => '/style/i',
@@ -1209,6 +1381,12 @@ class CRM_Contact_DAO_Contact extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Email Greeting ID'),
           'description' => ts('FK to civicrm_option_value.id, that has to be valid registered Email Greeting.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => TRUE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contact.email_greeting_id',
           'export' => TRUE,
           'table_name' => 'civicrm_contact',
@@ -1231,6 +1409,12 @@ class CRM_Contact_DAO_Contact extends CRM_Core_DAO {
           'description' => ts('Custom Email Greeting.'),
           'maxlength' => 128,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => FALSE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contact.email_greeting_custom',
           'export' => FALSE,
@@ -1251,6 +1435,12 @@ class CRM_Contact_DAO_Contact extends CRM_Core_DAO {
           'description' => ts('Cache Email Greeting.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contact.email_greeting_display',
           'table_name' => 'civicrm_contact',
           'entity' => 'Contact',
@@ -1264,6 +1454,12 @@ class CRM_Contact_DAO_Contact extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Postal Greeting ID'),
           'description' => ts('FK to civicrm_option_value.id, that has to be valid registered Postal Greeting.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => TRUE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contact.postal_greeting_id',
           'export' => TRUE,
           'table_name' => 'civicrm_contact',
@@ -1286,6 +1482,12 @@ class CRM_Contact_DAO_Contact extends CRM_Core_DAO {
           'description' => ts('Custom Postal greeting.'),
           'maxlength' => 128,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => FALSE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contact.postal_greeting_custom',
           'export' => FALSE,
@@ -1306,6 +1508,12 @@ class CRM_Contact_DAO_Contact extends CRM_Core_DAO {
           'description' => ts('Cache Postal greeting.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contact.postal_greeting_display',
           'table_name' => 'civicrm_contact',
           'entity' => 'Contact',
@@ -1319,6 +1527,12 @@ class CRM_Contact_DAO_Contact extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Addressee ID'),
           'description' => ts('FK to civicrm_option_value.id, that has to be valid registered Addressee.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => TRUE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contact.addressee_id',
           'export' => TRUE,
           'table_name' => 'civicrm_contact',
@@ -1341,6 +1555,12 @@ class CRM_Contact_DAO_Contact extends CRM_Core_DAO {
           'description' => ts('Custom Addressee.'),
           'maxlength' => 128,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => FALSE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contact.addressee_custom',
           'export' => FALSE,
@@ -1361,6 +1581,12 @@ class CRM_Contact_DAO_Contact extends CRM_Core_DAO {
           'description' => ts('Cache Addressee.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contact.addressee_display',
           'table_name' => 'civicrm_contact',
           'entity' => 'Contact',
@@ -1376,6 +1602,12 @@ class CRM_Contact_DAO_Contact extends CRM_Core_DAO {
           'description' => ts('Job Title'),
           'maxlength' => 255,
           'size' => 30,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contact.job_title',
           'headerPattern' => '/^job|(j(ob\s)?title)$/i',
@@ -1397,6 +1629,12 @@ class CRM_Contact_DAO_Contact extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Gender ID'),
           'description' => ts('FK to gender ID'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contact.gender_id',
           'headerPattern' => '/^gender$/i',
@@ -1421,6 +1659,12 @@ class CRM_Contact_DAO_Contact extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE,
           'title' => ts('Birth Date'),
           'description' => ts('Date of birth'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contact.birth_date',
           'headerPattern' => '/^birth|(b(irth\s)?date)|D(\W*)O(\W*)B(\W*)$/i',
@@ -1443,6 +1687,12 @@ class CRM_Contact_DAO_Contact extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_BOOLEAN,
           'title' => ts('Deceased'),
           'required' => TRUE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contact.is_deceased',
           'headerPattern' => '/i(s\s)?d(eceased)$/i',
@@ -1464,6 +1714,12 @@ class CRM_Contact_DAO_Contact extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE,
           'title' => ts('Deceased Date'),
           'description' => ts('Date of deceased'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contact.deceased_date',
           'headerPattern' => '/^deceased|(d(eceased\s)?date)$/i',
@@ -1487,6 +1743,12 @@ class CRM_Contact_DAO_Contact extends CRM_Core_DAO {
           'description' => ts('Household Name.'),
           'maxlength' => 128,
           'size' => 30,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contact.household_name',
           'headerPattern' => '/^household|(h(ousehold\s)?name)$/i',
@@ -1508,6 +1770,12 @@ class CRM_Contact_DAO_Contact extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Household Primary Contact ID'),
           'description' => ts('Optional FK to Primary Contact for this household.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contact.primary_contact_id',
           'contactType' => 'Household',
           'table_name' => 'civicrm_contact',
@@ -1528,6 +1796,12 @@ class CRM_Contact_DAO_Contact extends CRM_Core_DAO {
           'description' => ts('Organization Name.'),
           'maxlength' => 128,
           'size' => 30,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contact.organization_name',
           'headerPattern' => '/^organization|(o(rganization\s)?name)$/i',
@@ -1551,6 +1825,12 @@ class CRM_Contact_DAO_Contact extends CRM_Core_DAO {
           'description' => ts('Standard Industry Classification Code.'),
           'maxlength' => 8,
           'size' => CRM_Utils_Type::EIGHT,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contact.sic_code',
           'headerPattern' => '/^sic|(s(ic\s)?code)$/i',
@@ -1573,6 +1853,12 @@ class CRM_Contact_DAO_Contact extends CRM_Core_DAO {
           'description' => ts('the OpenID (or OpenID-style http://username.domain/) unique identifier for this contact mainly used for logging in to CiviCRM'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contact.user_unique_id',
           'headerPattern' => '/^Open\s?ID|u(niq\w*)?\s?ID/i',
@@ -1594,6 +1880,12 @@ class CRM_Contact_DAO_Contact extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Current Employer ID'),
           'description' => ts('OPTIONAL FK to civicrm_contact record.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => TRUE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contact.employer_id',
           'export' => TRUE,
           'contactType' => 'Individual',
@@ -1616,6 +1908,12 @@ class CRM_Contact_DAO_Contact extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_BOOLEAN,
           'title' => ts('Contact is in Trash'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => TRUE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contact.is_deleted',
           'export' => TRUE,
           'default' => '0',
@@ -1634,6 +1932,12 @@ class CRM_Contact_DAO_Contact extends CRM_Core_DAO {
           'title' => ts('Created Date'),
           'description' => ts('When was the contact was created.'),
           'required' => FALSE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => TRUE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contact.created_date',
           'export' => TRUE,
           'default' => NULL,
@@ -1642,6 +1946,8 @@ class CRM_Contact_DAO_Contact extends CRM_Core_DAO {
           'bao' => 'CRM_Contact_BAO_Contact',
           'localizable' => 0,
           'html' => [
+            'type' => 'Select Date',
+            'formatType' => 'activityDateTime',
             'label' => ts("Created Date"),
           ],
           'readonly' => TRUE,
@@ -1653,6 +1959,12 @@ class CRM_Contact_DAO_Contact extends CRM_Core_DAO {
           'title' => ts('Modified Date'),
           'description' => ts('When was the contact (or closely related entity) was created or modified or deleted.'),
           'required' => FALSE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => TRUE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contact.modified_date',
           'export' => TRUE,
           'default' => 'CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP',
@@ -1661,6 +1973,8 @@ class CRM_Contact_DAO_Contact extends CRM_Core_DAO {
           'bao' => 'CRM_Contact_BAO_Contact',
           'localizable' => 0,
           'html' => [
+            'type' => 'Select Date',
+            'formatType' => 'activityDateTime',
             'label' => ts("Modified Date"),
           ],
           'readonly' => TRUE,
diff --git a/civicrm/CRM/Contact/DAO/ContactType.php b/civicrm/CRM/Contact/DAO/ContactType.php
index 5f178714b4b21532f8ace6e3336b754910c97ec3..d0b753fdc91a899547f42544ed29c0a42f350606 100644
--- a/civicrm/CRM/Contact/DAO/ContactType.php
+++ b/civicrm/CRM/Contact/DAO/ContactType.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Contact/ContactType.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:b306637543b9795d650fbe7af63ab00b)
+ * (GenCodeChecksum:7e48bb315c81d45e3d4ddb582396615d)
  */
 
 /**
@@ -176,6 +176,12 @@ class CRM_Contact_DAO_ContactType extends CRM_Core_DAO {
           'title' => ts('Contact Type ID'),
           'description' => ts('Contact Type ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contact_type.id',
           'table_name' => 'civicrm_contact_type',
           'entity' => 'ContactType',
@@ -195,6 +201,12 @@ class CRM_Contact_DAO_ContactType extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contact_type.name',
           'table_name' => 'civicrm_contact_type',
           'entity' => 'ContactType',
@@ -213,6 +225,12 @@ class CRM_Contact_DAO_ContactType extends CRM_Core_DAO {
           'description' => ts('localized Name of Contact Type.'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contact_type.label',
           'table_name' => 'civicrm_contact_type',
           'entity' => 'ContactType',
@@ -231,6 +249,12 @@ class CRM_Contact_DAO_ContactType extends CRM_Core_DAO {
           'description' => ts('localized Optional verbose description of the type.'),
           'rows' => 2,
           'cols' => 60,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contact_type.description',
           'table_name' => 'civicrm_contact_type',
           'entity' => 'ContactType',
@@ -248,6 +272,12 @@ class CRM_Contact_DAO_ContactType extends CRM_Core_DAO {
           'description' => ts('URL of image if any.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contact_type.image_URL',
           'table_name' => 'civicrm_contact_type',
           'entity' => 'ContactType',
@@ -262,6 +292,12 @@ class CRM_Contact_DAO_ContactType extends CRM_Core_DAO {
           'description' => ts('crm-i icon class representing this contact type'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contact_type.icon',
           'default' => NULL,
           'table_name' => 'civicrm_contact_type',
@@ -275,6 +311,12 @@ class CRM_Contact_DAO_ContactType extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Parent ID'),
           'description' => ts('Optional FK to parent contact type.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contact_type.parent_id',
           'table_name' => 'civicrm_contact_type',
           'entity' => 'ContactType',
@@ -299,6 +341,12 @@ class CRM_Contact_DAO_ContactType extends CRM_Core_DAO {
           'title' => ts('Contact Type Enabled'),
           'description' => ts('Is this entry active?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contact_type.is_active',
           'default' => '1',
           'table_name' => 'civicrm_contact_type',
@@ -317,6 +365,12 @@ class CRM_Contact_DAO_ContactType extends CRM_Core_DAO {
           'title' => ts('Contact Type is Reserved'),
           'description' => ts('Is this contact type a predefined system type'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contact_type.is_reserved',
           'default' => '0',
           'table_name' => 'civicrm_contact_type',
diff --git a/civicrm/CRM/Contact/DAO/DashboardContact.php b/civicrm/CRM/Contact/DAO/DashboardContact.php
index 3e835b13a87612cff1cb6aae036dd46ee0ecb543..3e298084bb587a4375379df524bd95f42957333a 100644
--- a/civicrm/CRM/Contact/DAO/DashboardContact.php
+++ b/civicrm/CRM/Contact/DAO/DashboardContact.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Contact/DashboardContact.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:894de8329339be619c21486df2d12bb6)
+ * (GenCodeChecksum:73ab6a9a4f5d372c85b888aae2abe826)
  */
 
 /**
@@ -129,6 +129,12 @@ class CRM_Contact_DAO_DashboardContact extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Dashboard Contact ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_dashboard_contact.id',
           'table_name' => 'civicrm_dashboard_contact',
           'entity' => 'DashboardContact',
@@ -146,6 +152,12 @@ class CRM_Contact_DAO_DashboardContact extends CRM_Core_DAO {
           'title' => ts('Dashboard ID'),
           'description' => ts('Dashboard ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_dashboard_contact.dashboard_id',
           'table_name' => 'civicrm_dashboard_contact',
           'entity' => 'DashboardContact',
@@ -163,6 +175,12 @@ class CRM_Contact_DAO_DashboardContact extends CRM_Core_DAO {
           'title' => ts('Contact ID'),
           'description' => ts('Contact ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_dashboard_contact.contact_id',
           'table_name' => 'civicrm_dashboard_contact',
           'entity' => 'DashboardContact',
@@ -179,6 +197,12 @@ class CRM_Contact_DAO_DashboardContact extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Column No'),
           'description' => ts('column no for this widget'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_dashboard_contact.column_no',
           'default' => '0',
           'table_name' => 'civicrm_dashboard_contact',
@@ -195,6 +219,12 @@ class CRM_Contact_DAO_DashboardContact extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_BOOLEAN,
           'title' => ts('Dashlet is Active?'),
           'description' => ts('Is this widget active?'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_dashboard_contact.is_active',
           'default' => '0',
           'table_name' => 'civicrm_dashboard_contact',
@@ -212,6 +242,12 @@ class CRM_Contact_DAO_DashboardContact extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Order'),
           'description' => ts('Ordering of the widgets.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_dashboard_contact.weight',
           'default' => '0',
           'table_name' => 'civicrm_dashboard_contact',
diff --git a/civicrm/CRM/Contact/DAO/Factory.php b/civicrm/CRM/Contact/DAO/Factory.php
deleted file mode 100644
index ef11dad723c04871c8781a5816ccae53203ba325..0000000000000000000000000000000000000000
--- a/civicrm/CRM/Contact/DAO/Factory.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-
-/**
- * Class CRM_Contact_DAO_Factory
- */
-class CRM_Contact_DAO_Factory {
-
-  public static $_classes = [
-    'Address' => 'data',
-    'Contact' => 'data',
-    'Email' => 'data',
-    'Household' => 'data',
-    'IM' => 'data',
-    'Individual' => 'data',
-    'Location' => 'data',
-    'LocationType' => 'data',
-    'Organization' => 'data',
-    'Phone' => 'data',
-    'Relationship' => 'data',
-  ];
-
-  public static $_prefix = [
-    'business' => 'CRM_Contact_BAO_',
-    'data' => 'CRM_Contact_DAO_',
-  ];
-
-  /**
-   * @param string $className
-   *
-   * @return mixed
-   */
-  public static function create($className) {
-    $type = self::$_classes[$className] ?? NULL;
-    if (!$type) {
-      return CRM_Core_DAO_Factory::create($className);
-    }
-
-    $class = self::$_prefix[$type] . $className;
-
-    if ($type == 'singleton') {
-      $newObj = $class::singleton();
-    }
-    else {
-      // this is either 'business' or 'data'
-      $newObj = new $class();
-    }
-
-    return $newObj;
-  }
-
-}
diff --git a/civicrm/CRM/Contact/DAO/Group.php b/civicrm/CRM/Contact/DAO/Group.php
index e21639f0f2322216815fac47c7346bc48506789c..2481edfcfd986ab15ff46fb95ccb984f79056d8e 100644
--- a/civicrm/CRM/Contact/DAO/Group.php
+++ b/civicrm/CRM/Contact/DAO/Group.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Contact/Group.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:80ec0ea67f3be1f20d4e054d35c3e465)
+ * (GenCodeChecksum:d9453f2a948783a20abc574cc0ba860a)
  */
 
 /**
@@ -52,8 +52,8 @@ class CRM_Contact_DAO_Group extends CRM_Core_DAO {
   protected static $_paths = [
     'add' => 'civicrm/group/add?reset=1',
     'view' => 'civicrm/group/search?force=1&context=smog&gid=[id]&component_mode=1',
-    'update' => 'civicrm/group?reset=1&action=update&id=[id]',
-    'delete' => 'civicrm/group?reset=1&action=delete&id=[id]',
+    'update' => 'civicrm/group/edit?reset=1&action=update&id=[id]',
+    'delete' => 'civicrm/group/edit?reset=1&action=delete&id=[id]',
   ];
 
   /**
@@ -301,6 +301,12 @@ class CRM_Contact_DAO_Group extends CRM_Core_DAO {
           'title' => ts('Group ID'),
           'description' => ts('Group ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_group.id',
           'table_name' => 'civicrm_group',
           'entity' => 'Group',
@@ -319,6 +325,12 @@ class CRM_Contact_DAO_Group extends CRM_Core_DAO {
           'description' => ts('Internal name of Group.'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_group.name',
           'table_name' => 'civicrm_group',
           'entity' => 'Group',
@@ -333,6 +345,12 @@ class CRM_Contact_DAO_Group extends CRM_Core_DAO {
           'description' => ts('Name of Group.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_group.title',
           'table_name' => 'civicrm_group',
           'entity' => 'Group',
@@ -350,6 +368,12 @@ class CRM_Contact_DAO_Group extends CRM_Core_DAO {
           'description' => ts('Optional verbose description of the group.'),
           'rows' => 2,
           'cols' => 60,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_group.description',
           'table_name' => 'civicrm_group',
           'entity' => 'Group',
@@ -367,6 +391,12 @@ class CRM_Contact_DAO_Group extends CRM_Core_DAO {
           'description' => ts('Module or process which created this group.'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_group.source',
           'table_name' => 'civicrm_group',
           'entity' => 'Group',
@@ -379,6 +409,12 @@ class CRM_Contact_DAO_Group extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Saved Search ID'),
           'description' => ts('FK to saved search table.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_group.saved_search_id',
           'table_name' => 'civicrm_group',
           'entity' => 'Group',
@@ -396,6 +432,12 @@ class CRM_Contact_DAO_Group extends CRM_Core_DAO {
           'title' => ts('Group Enabled'),
           'description' => ts('Is this group active?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_group.is_active',
           'default' => '1',
           'table_name' => 'civicrm_group',
@@ -415,6 +457,12 @@ class CRM_Contact_DAO_Group extends CRM_Core_DAO {
           'description' => ts('In what context(s) is this field visible.'),
           'maxlength' => 24,
           'size' => CRM_Utils_Type::MEDIUM,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_group.visibility',
           'default' => 'User and User Admin Only',
           'table_name' => 'civicrm_group',
@@ -434,6 +482,12 @@ class CRM_Contact_DAO_Group extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Group Where Clause'),
           'description' => ts('the sql where clause if a saved search acl'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_group.where_clause',
           'table_name' => 'civicrm_group',
           'entity' => 'Group',
@@ -447,6 +501,12 @@ class CRM_Contact_DAO_Group extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Tables For Select Clause'),
           'description' => ts('the tables to be included in a select data'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_group.select_tables',
           'table_name' => 'civicrm_group',
           'entity' => 'Group',
@@ -461,6 +521,12 @@ class CRM_Contact_DAO_Group extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Tables For Where Clause'),
           'description' => ts('the tables to be included in the count statement'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_group.where_tables',
           'table_name' => 'civicrm_group',
           'entity' => 'Group',
@@ -477,6 +543,12 @@ class CRM_Contact_DAO_Group extends CRM_Core_DAO {
           'description' => ts('FK to group type'),
           'maxlength' => 128,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_group.group_type',
           'table_name' => 'civicrm_group',
           'entity' => 'Group',
@@ -495,6 +567,12 @@ class CRM_Contact_DAO_Group extends CRM_Core_DAO {
           'title' => ts('Group Cache Date'),
           'description' => ts('Date when we created the cache for a smart group'),
           'required' => FALSE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_group.cache_date',
           'table_name' => 'civicrm_group',
           'entity' => 'Group',
@@ -509,6 +587,12 @@ class CRM_Contact_DAO_Group extends CRM_Core_DAO {
           'title' => ts('Next Group Refresh Time'),
           'description' => ts('Date and time when we need to refresh the cache next.'),
           'required' => FALSE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_group.refresh_date',
           'table_name' => 'civicrm_group',
           'entity' => 'Group',
@@ -522,6 +606,12 @@ class CRM_Contact_DAO_Group extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Group Parents'),
           'description' => ts('IDs of the parent(s)'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_group.parents',
           'table_name' => 'civicrm_group',
           'entity' => 'Group',
@@ -538,6 +628,12 @@ class CRM_Contact_DAO_Group extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Group Children'),
           'description' => ts('IDs of the child(ren)'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_group.children',
           'table_name' => 'civicrm_group',
           'entity' => 'Group',
@@ -551,6 +647,12 @@ class CRM_Contact_DAO_Group extends CRM_Core_DAO {
           'title' => ts('Group is Hidden'),
           'description' => ts('Is this group hidden?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_group.is_hidden',
           'default' => '0',
           'table_name' => 'civicrm_group',
@@ -564,6 +666,12 @@ class CRM_Contact_DAO_Group extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_BOOLEAN,
           'title' => ts('Group is Reserved'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_group.is_reserved',
           'default' => '0',
           'table_name' => 'civicrm_group',
@@ -577,6 +685,12 @@ class CRM_Contact_DAO_Group extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Created By Contact ID'),
           'description' => ts('FK to contact table.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_group.created_id',
           'table_name' => 'civicrm_group',
           'entity' => 'Group',
@@ -593,6 +707,12 @@ class CRM_Contact_DAO_Group extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Modified By Contact ID'),
           'description' => ts('FK to contact table.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_group.modified_id',
           'table_name' => 'civicrm_group',
           'entity' => 'Group',
@@ -612,6 +732,12 @@ class CRM_Contact_DAO_Group extends CRM_Core_DAO {
           'description' => ts('Alternative public title for this Group.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_group.frontend_title',
           'default' => NULL,
           'table_name' => 'civicrm_group',
@@ -630,6 +756,12 @@ class CRM_Contact_DAO_Group extends CRM_Core_DAO {
           'description' => ts('Alternative public description of the group.'),
           'rows' => 2,
           'cols' => 60,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_group.frontend_description',
           'default' => NULL,
           'table_name' => 'civicrm_group',
diff --git a/civicrm/CRM/Contact/DAO/GroupContact.php b/civicrm/CRM/Contact/DAO/GroupContact.php
index babf7493028362334f9d9b8e452f2bd18e71d1c5..a57efe34bec139fec1109c3c0ed04f4b853551e8 100644
--- a/civicrm/CRM/Contact/DAO/GroupContact.php
+++ b/civicrm/CRM/Contact/DAO/GroupContact.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Contact/GroupContact.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:d4b46670649effbeca66bba75801f34c)
+ * (GenCodeChecksum:7a06dd829a0206d8af74a2773b8957db)
  */
 
 /**
@@ -134,6 +134,12 @@ class CRM_Contact_DAO_GroupContact extends CRM_Core_DAO {
           'title' => ts('Group Contact ID'),
           'description' => ts('primary key'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_group_contact.id',
           'table_name' => 'civicrm_group_contact',
           'entity' => 'GroupContact',
@@ -151,6 +157,12 @@ class CRM_Contact_DAO_GroupContact extends CRM_Core_DAO {
           'title' => ts('Group ID'),
           'description' => ts('FK to civicrm_group'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_group_contact.group_id',
           'table_name' => 'civicrm_group_contact',
           'entity' => 'GroupContact',
@@ -174,6 +186,12 @@ class CRM_Contact_DAO_GroupContact extends CRM_Core_DAO {
           'title' => ts('Contact ID'),
           'description' => ts('FK to civicrm_contact'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_group_contact.contact_id',
           'table_name' => 'civicrm_group_contact',
           'entity' => 'GroupContact',
@@ -192,6 +210,12 @@ class CRM_Contact_DAO_GroupContact extends CRM_Core_DAO {
           'description' => ts('status of contact relative to membership in group'),
           'maxlength' => 8,
           'size' => CRM_Utils_Type::EIGHT,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_group_contact.status',
           'table_name' => 'civicrm_group_contact',
           'entity' => 'GroupContact',
@@ -210,6 +234,12 @@ class CRM_Contact_DAO_GroupContact extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Location ID'),
           'description' => ts('Optional location to associate with this membership'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_group_contact.location_id',
           'table_name' => 'civicrm_group_contact',
           'entity' => 'GroupContact',
@@ -226,6 +256,12 @@ class CRM_Contact_DAO_GroupContact extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Email ID'),
           'description' => ts('Optional email to associate with this membership'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_group_contact.email_id',
           'table_name' => 'civicrm_group_contact',
           'entity' => 'GroupContact',
diff --git a/civicrm/CRM/Contact/DAO/GroupContactCache.php b/civicrm/CRM/Contact/DAO/GroupContactCache.php
index b1c12af9b64ea2b1f6a8063bdffb152ec102c7b9..e85f9c816c651cb58542cf262d6df867d297aaf0 100644
--- a/civicrm/CRM/Contact/DAO/GroupContactCache.php
+++ b/civicrm/CRM/Contact/DAO/GroupContactCache.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Contact/GroupContactCache.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:abfe1f6d7cf6304a37d55830b42f7568)
+ * (GenCodeChecksum:0f806c2e812e87a837b693f1ba442cae)
  */
 
 /**
@@ -105,6 +105,12 @@ class CRM_Contact_DAO_GroupContactCache extends CRM_Core_DAO {
           'title' => ts('Group Contact Cache ID'),
           'description' => ts('primary key'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_group_contact_cache.id',
           'table_name' => 'civicrm_group_contact_cache',
           'entity' => 'GroupContactCache',
@@ -122,6 +128,12 @@ class CRM_Contact_DAO_GroupContactCache extends CRM_Core_DAO {
           'title' => ts('Group ID'),
           'description' => ts('FK to civicrm_group'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_group_contact_cache.group_id',
           'table_name' => 'civicrm_group_contact_cache',
           'entity' => 'GroupContactCache',
@@ -145,6 +157,12 @@ class CRM_Contact_DAO_GroupContactCache extends CRM_Core_DAO {
           'title' => ts('Contact ID'),
           'description' => ts('FK to civicrm_contact'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_group_contact_cache.contact_id',
           'table_name' => 'civicrm_group_contact_cache',
           'entity' => 'GroupContactCache',
diff --git a/civicrm/CRM/Contact/DAO/GroupNesting.php b/civicrm/CRM/Contact/DAO/GroupNesting.php
index 91aac95120e08f0047a524086890bffe47d0ed4a..9f9de79110f08c52f8eb86beaa0d0792c56368e3 100644
--- a/civicrm/CRM/Contact/DAO/GroupNesting.php
+++ b/civicrm/CRM/Contact/DAO/GroupNesting.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Contact/GroupNesting.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:249c9ae9496b3b49a431b6d1ebdc782a)
+ * (GenCodeChecksum:c87d24cc1ea2c257dc344001e0516a42)
  */
 
 /**
@@ -105,6 +105,12 @@ class CRM_Contact_DAO_GroupNesting extends CRM_Core_DAO {
           'title' => ts('Group Nesting ID'),
           'description' => ts('Relationship ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_group_nesting.id',
           'table_name' => 'civicrm_group_nesting',
           'entity' => 'GroupNesting',
@@ -122,6 +128,12 @@ class CRM_Contact_DAO_GroupNesting extends CRM_Core_DAO {
           'title' => ts('Child Group ID'),
           'description' => ts('ID of the child group'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_group_nesting.child_group_id',
           'table_name' => 'civicrm_group_nesting',
           'entity' => 'GroupNesting',
@@ -139,6 +151,12 @@ class CRM_Contact_DAO_GroupNesting extends CRM_Core_DAO {
           'title' => ts('Parent Group ID'),
           'description' => ts('ID of the parent group'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_group_nesting.parent_group_id',
           'table_name' => 'civicrm_group_nesting',
           'entity' => 'GroupNesting',
diff --git a/civicrm/CRM/Contact/DAO/GroupOrganization.php b/civicrm/CRM/Contact/DAO/GroupOrganization.php
index af54612700ed7d37355fa99767779290c67f57cf..3703a0100a177c7ad4eceffd89b6f4ba44ff6616 100644
--- a/civicrm/CRM/Contact/DAO/GroupOrganization.php
+++ b/civicrm/CRM/Contact/DAO/GroupOrganization.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Contact/GroupOrganization.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:eeb960d8967f2b21967fd64d2e4e52ab)
+ * (GenCodeChecksum:aff10fe04b6becadd6b1de47a34e52c1)
  */
 
 /**
@@ -105,6 +105,12 @@ class CRM_Contact_DAO_GroupOrganization extends CRM_Core_DAO {
           'title' => ts('Group Organization ID'),
           'description' => ts('Relationship ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_group_organization.id',
           'table_name' => 'civicrm_group_organization',
           'entity' => 'GroupOrganization',
@@ -122,6 +128,12 @@ class CRM_Contact_DAO_GroupOrganization extends CRM_Core_DAO {
           'title' => ts('Group ID'),
           'description' => ts('ID of the group'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_group_organization.group_id',
           'table_name' => 'civicrm_group_organization',
           'entity' => 'GroupOrganization',
@@ -145,6 +157,12 @@ class CRM_Contact_DAO_GroupOrganization extends CRM_Core_DAO {
           'title' => ts('Organization ID'),
           'description' => ts('ID of the Organization Contact'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_group_organization.organization_id',
           'table_name' => 'civicrm_group_organization',
           'entity' => 'GroupOrganization',
diff --git a/civicrm/CRM/Contact/DAO/Relationship.php b/civicrm/CRM/Contact/DAO/Relationship.php
index cdacc83527f80ead5fed3a315edeec7894823851..32b8f3e61be2e622b73a277c824ca4f809891259 100644
--- a/civicrm/CRM/Contact/DAO/Relationship.php
+++ b/civicrm/CRM/Contact/DAO/Relationship.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Contact/Relationship.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:ea043ab2b1943a9fe5e86ec6a68fedf4)
+ * (GenCodeChecksum:053ca157abcac8e7f4c8ab55425df5ff)
  */
 
 /**
@@ -214,6 +214,12 @@ class CRM_Contact_DAO_Relationship extends CRM_Core_DAO {
           'title' => ts('Relationship ID'),
           'description' => ts('Relationship ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_relationship.id',
           'table_name' => 'civicrm_relationship',
           'entity' => 'Relationship',
@@ -231,6 +237,12 @@ class CRM_Contact_DAO_Relationship extends CRM_Core_DAO {
           'title' => ts('Contact A ID'),
           'description' => ts('id of the first contact'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_relationship.contact_id_a',
           'table_name' => 'civicrm_relationship',
           'entity' => 'Relationship',
@@ -249,6 +261,12 @@ class CRM_Contact_DAO_Relationship extends CRM_Core_DAO {
           'title' => ts('Contact B ID'),
           'description' => ts('id of the second contact'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_relationship.contact_id_b',
           'table_name' => 'civicrm_relationship',
           'entity' => 'Relationship',
@@ -267,6 +285,12 @@ class CRM_Contact_DAO_Relationship extends CRM_Core_DAO {
           'title' => ts('Relationship Type ID'),
           'description' => ts('Type of relationship'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_relationship.relationship_type_id',
           'table_name' => 'civicrm_relationship',
           'entity' => 'Relationship',
@@ -290,6 +314,12 @@ class CRM_Contact_DAO_Relationship extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE,
           'title' => ts('Relationship Start Date'),
           'description' => ts('date when the relationship started'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_relationship.start_date',
           'table_name' => 'civicrm_relationship',
           'entity' => 'Relationship',
@@ -306,6 +336,12 @@ class CRM_Contact_DAO_Relationship extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE,
           'title' => ts('Relationship End Date'),
           'description' => ts('date when the relationship ended'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_relationship.end_date',
           'table_name' => 'civicrm_relationship',
           'entity' => 'Relationship',
@@ -323,6 +359,12 @@ class CRM_Contact_DAO_Relationship extends CRM_Core_DAO {
           'title' => ts('Relationship Is Active'),
           'description' => ts('is the relationship active ?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_relationship.is_active',
           'default' => '1',
           'table_name' => 'civicrm_relationship',
@@ -342,6 +384,12 @@ class CRM_Contact_DAO_Relationship extends CRM_Core_DAO {
           'description' => ts('Optional verbose description for the relationship.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_relationship.description',
           'table_name' => 'civicrm_relationship',
           'entity' => 'Relationship',
@@ -358,6 +406,12 @@ class CRM_Contact_DAO_Relationship extends CRM_Core_DAO {
           'title' => ts('Contact A has Permission Over Contact B'),
           'description' => ts('Permission that Contact A has to view/update Contact B'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_relationship.is_permission_a_b',
           'default' => '0',
           'table_name' => 'civicrm_relationship',
@@ -378,6 +432,12 @@ class CRM_Contact_DAO_Relationship extends CRM_Core_DAO {
           'title' => ts('Contact B has Permission Over Contact A'),
           'description' => ts('Permission that Contact B has to view/update Contact A'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_relationship.is_permission_b_a',
           'default' => '0',
           'table_name' => 'civicrm_relationship',
@@ -397,6 +457,12 @@ class CRM_Contact_DAO_Relationship extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Case ID'),
           'description' => ts('FK to civicrm_case'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_relationship.case_id',
           'default' => NULL,
           'table_name' => 'civicrm_relationship',
@@ -417,6 +483,12 @@ class CRM_Contact_DAO_Relationship extends CRM_Core_DAO {
           'title' => ts('Created Date'),
           'description' => ts('Relationship created date.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_relationship.created_date',
           'default' => 'CURRENT_TIMESTAMP',
           'table_name' => 'civicrm_relationship',
@@ -431,6 +503,12 @@ class CRM_Contact_DAO_Relationship extends CRM_Core_DAO {
           'title' => ts('Relationship Modified Date'),
           'description' => ts('Relationship last modified.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_relationship.modified_date',
           'default' => 'CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP',
           'table_name' => 'civicrm_relationship',
diff --git a/civicrm/CRM/Contact/DAO/RelationshipCache.php b/civicrm/CRM/Contact/DAO/RelationshipCache.php
index 638346b3029aca63b631cdaef15a131e80a8a10e..060f18063798450975aeef4100659f7f25a5e36f 100644
--- a/civicrm/CRM/Contact/DAO/RelationshipCache.php
+++ b/civicrm/CRM/Contact/DAO/RelationshipCache.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Contact/RelationshipCache.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:9f16f118d8f9337260a05d6ccd374b94)
+ * (GenCodeChecksum:422520600ff998c1a9203004ae958e8c)
  */
 
 /**
@@ -207,6 +207,12 @@ class CRM_Contact_DAO_RelationshipCache extends CRM_Core_DAO {
           'title' => ts('Relationship Cache ID'),
           'description' => ts('Relationship Cache ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_relationship_cache.id',
           'table_name' => 'civicrm_relationship_cache',
           'entity' => 'RelationshipCache',
@@ -224,6 +230,12 @@ class CRM_Contact_DAO_RelationshipCache extends CRM_Core_DAO {
           'title' => ts('Relationship ID'),
           'description' => ts('id of the relationship (FK to civicrm_relationship.id)'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_relationship_cache.relationship_id',
           'table_name' => 'civicrm_relationship_cache',
           'entity' => 'RelationshipCache',
@@ -242,6 +254,12 @@ class CRM_Contact_DAO_RelationshipCache extends CRM_Core_DAO {
           'title' => ts('Relationship Type ID'),
           'description' => ts('id of the relationship type'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_relationship_cache.relationship_type_id',
           'table_name' => 'civicrm_relationship_cache',
           'entity' => 'RelationshipCache',
@@ -262,6 +280,12 @@ class CRM_Contact_DAO_RelationshipCache extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 3,
           'size' => CRM_Utils_Type::FOUR,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_relationship_cache.orientation',
           'table_name' => 'civicrm_relationship_cache',
           'entity' => 'RelationshipCache',
@@ -279,6 +303,12 @@ class CRM_Contact_DAO_RelationshipCache extends CRM_Core_DAO {
           'title' => ts('Contact ID (Near side)'),
           'description' => ts('id of the first contact'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_relationship_cache.near_contact_id',
           'table_name' => 'civicrm_relationship_cache',
           'entity' => 'RelationshipCache',
@@ -299,6 +329,12 @@ class CRM_Contact_DAO_RelationshipCache extends CRM_Core_DAO {
           'description' => ts('name for relationship of near_contact to far_contact.'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_relationship_cache.near_relation',
           'table_name' => 'civicrm_relationship_cache',
           'entity' => 'RelationshipCache',
@@ -320,6 +356,12 @@ class CRM_Contact_DAO_RelationshipCache extends CRM_Core_DAO {
           'title' => ts('Contact ID (Far side)'),
           'description' => ts('id of the second contact'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_relationship_cache.far_contact_id',
           'table_name' => 'civicrm_relationship_cache',
           'entity' => 'RelationshipCache',
@@ -340,6 +382,12 @@ class CRM_Contact_DAO_RelationshipCache extends CRM_Core_DAO {
           'description' => ts('name for relationship of far_contact to near_contact.'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_relationship_cache.far_relation',
           'table_name' => 'civicrm_relationship_cache',
           'entity' => 'RelationshipCache',
@@ -361,6 +409,12 @@ class CRM_Contact_DAO_RelationshipCache extends CRM_Core_DAO {
           'title' => ts('Relationship Is Active'),
           'description' => ts('is the relationship active ?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_relationship_cache.is_active',
           'default' => '1',
           'table_name' => 'civicrm_relationship_cache',
@@ -379,6 +433,12 @@ class CRM_Contact_DAO_RelationshipCache extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE,
           'title' => ts('Relationship Start Date'),
           'description' => ts('date when the relationship started'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_relationship_cache.start_date',
           'table_name' => 'civicrm_relationship_cache',
           'entity' => 'RelationshipCache',
@@ -396,6 +456,12 @@ class CRM_Contact_DAO_RelationshipCache extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE,
           'title' => ts('Relationship End Date'),
           'description' => ts('date when the relationship ended'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_relationship_cache.end_date',
           'table_name' => 'civicrm_relationship_cache',
           'entity' => 'RelationshipCache',
@@ -413,6 +479,12 @@ class CRM_Contact_DAO_RelationshipCache extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Case ID'),
           'description' => ts('FK to civicrm_case'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_relationship_cache.case_id',
           'default' => NULL,
           'table_name' => 'civicrm_relationship_cache',
diff --git a/civicrm/CRM/Contact/DAO/RelationshipType.php b/civicrm/CRM/Contact/DAO/RelationshipType.php
index 468c4075217fb811dc5b3e86e5da4c9ce757d0b5..82e11a69a65b6ae4c90e5fd1e5d9da9fba0b3d06 100644
--- a/civicrm/CRM/Contact/DAO/RelationshipType.php
+++ b/civicrm/CRM/Contact/DAO/RelationshipType.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Contact/RelationshipType.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:94465b186c3015c6aa8c725c44b9c103)
+ * (GenCodeChecksum:0428f0893ca456c68bb6121eb047b0f7)
  */
 
 /**
@@ -189,6 +189,12 @@ class CRM_Contact_DAO_RelationshipType extends CRM_Core_DAO {
           'title' => ts('Relationship Type ID'),
           'description' => ts('Primary key'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_relationship_type.id',
           'table_name' => 'civicrm_relationship_type',
           'entity' => 'RelationshipType',
@@ -207,6 +213,12 @@ class CRM_Contact_DAO_RelationshipType extends CRM_Core_DAO {
           'description' => ts('name for relationship of contact_a to contact_b.'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_relationship_type.name_a_b',
           'table_name' => 'civicrm_relationship_type',
           'entity' => 'RelationshipType',
@@ -221,6 +233,12 @@ class CRM_Contact_DAO_RelationshipType extends CRM_Core_DAO {
           'description' => ts('label for relationship of contact_a to contact_b.'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_relationship_type.label_a_b',
           'table_name' => 'civicrm_relationship_type',
           'entity' => 'RelationshipType',
@@ -238,6 +256,12 @@ class CRM_Contact_DAO_RelationshipType extends CRM_Core_DAO {
           'description' => ts('Optional name for relationship of contact_b to contact_a.'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_relationship_type.name_b_a',
           'table_name' => 'civicrm_relationship_type',
           'entity' => 'RelationshipType',
@@ -252,6 +276,12 @@ class CRM_Contact_DAO_RelationshipType extends CRM_Core_DAO {
           'description' => ts('Optional label for relationship of contact_b to contact_a.'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_relationship_type.label_b_a',
           'table_name' => 'civicrm_relationship_type',
           'entity' => 'RelationshipType',
@@ -269,6 +299,12 @@ class CRM_Contact_DAO_RelationshipType extends CRM_Core_DAO {
           'description' => ts('Optional verbose description of the relationship type.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_relationship_type.description',
           'table_name' => 'civicrm_relationship_type',
           'entity' => 'RelationshipType',
@@ -286,6 +322,12 @@ class CRM_Contact_DAO_RelationshipType extends CRM_Core_DAO {
           'description' => ts('If defined, contact_a in a relationship of this type must be a specific contact_type.'),
           'maxlength' => 12,
           'size' => CRM_Utils_Type::TWELVE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_relationship_type.contact_type_a',
           'table_name' => 'civicrm_relationship_type',
           'entity' => 'RelationshipType',
@@ -309,6 +351,12 @@ class CRM_Contact_DAO_RelationshipType extends CRM_Core_DAO {
           'description' => ts('If defined, contact_b in a relationship of this type must be a specific contact_type.'),
           'maxlength' => 12,
           'size' => CRM_Utils_Type::TWELVE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_relationship_type.contact_type_b',
           'table_name' => 'civicrm_relationship_type',
           'entity' => 'RelationshipType',
@@ -332,6 +380,12 @@ class CRM_Contact_DAO_RelationshipType extends CRM_Core_DAO {
           'description' => ts('If defined, contact_sub_type_a in a relationship of this type must be a specific contact_sub_type.'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_relationship_type.contact_sub_type_a',
           'table_name' => 'civicrm_relationship_type',
           'entity' => 'RelationshipType',
@@ -355,6 +409,12 @@ class CRM_Contact_DAO_RelationshipType extends CRM_Core_DAO {
           'description' => ts('If defined, contact_sub_type_b in a relationship of this type must be a specific contact_sub_type.'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_relationship_type.contact_sub_type_b',
           'table_name' => 'civicrm_relationship_type',
           'entity' => 'RelationshipType',
@@ -377,6 +437,12 @@ class CRM_Contact_DAO_RelationshipType extends CRM_Core_DAO {
           'title' => ts('Relationship Type is Reserved'),
           'description' => ts('Is this relationship type a predefined system type (can not be changed or de-activated)?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_relationship_type.is_reserved',
           'default' => '0',
           'table_name' => 'civicrm_relationship_type',
@@ -394,6 +460,12 @@ class CRM_Contact_DAO_RelationshipType extends CRM_Core_DAO {
           'title' => ts('Relationship Type is Active'),
           'description' => ts('Is this relationship type currently active (i.e. can be used when creating or editing relationships)?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_relationship_type.is_active',
           'default' => '1',
           'table_name' => 'civicrm_relationship_type',
diff --git a/civicrm/CRM/Contact/DAO/SavedSearch.php b/civicrm/CRM/Contact/DAO/SavedSearch.php
index 21b934322763aa8fd052be6ba1708ecb53fb4b66..6cca30adfb2d3da5962e9a3cbd40570cede8fae0 100644
--- a/civicrm/CRM/Contact/DAO/SavedSearch.php
+++ b/civicrm/CRM/Contact/DAO/SavedSearch.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Contact/SavedSearch.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:d27c4dd8f8baa98d833e4b2b4d60d350)
+ * (GenCodeChecksum:0207c460a525db5da9ceb5b20708d77a)
  */
 
 /**
@@ -217,6 +217,12 @@ class CRM_Contact_DAO_SavedSearch extends CRM_Core_DAO {
           'title' => ts('Saved Search ID'),
           'description' => ts('Saved Search ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_saved_search.id',
           'table_name' => 'civicrm_saved_search',
           'entity' => 'SavedSearch',
@@ -236,6 +242,12 @@ class CRM_Contact_DAO_SavedSearch extends CRM_Core_DAO {
           'description' => ts('Unique name of saved search'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_saved_search.name',
           'default' => NULL,
           'table_name' => 'civicrm_saved_search',
@@ -255,6 +267,12 @@ class CRM_Contact_DAO_SavedSearch extends CRM_Core_DAO {
           'description' => ts('Administrative label for search'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_saved_search.label',
           'default' => NULL,
           'table_name' => 'civicrm_saved_search',
@@ -272,6 +290,12 @@ class CRM_Contact_DAO_SavedSearch extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Submitted Form Values'),
           'description' => ts('Submitted form values for this search'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_saved_search.form_values',
           'export' => TRUE,
@@ -287,6 +311,12 @@ class CRM_Contact_DAO_SavedSearch extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Mapping ID'),
           'description' => ts('Foreign key to civicrm_mapping used for saved search-builder searches.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_saved_search.mapping_id',
           'table_name' => 'civicrm_saved_search',
           'entity' => 'SavedSearch',
@@ -303,6 +333,12 @@ class CRM_Contact_DAO_SavedSearch extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Option Value ID'),
           'description' => ts('Foreign key to civicrm_option value table used for saved custom searches.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_saved_search.search_custom_id',
           'table_name' => 'civicrm_saved_search',
           'entity' => 'SavedSearch',
@@ -317,6 +353,12 @@ class CRM_Contact_DAO_SavedSearch extends CRM_Core_DAO {
           'description' => ts('Entity name for API based search'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_saved_search.api_entity',
           'table_name' => 'civicrm_saved_search',
           'entity' => 'SavedSearch',
@@ -336,6 +378,12 @@ class CRM_Contact_DAO_SavedSearch extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('API Parameters'),
           'description' => ts('Parameters for API based search'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_saved_search.api_params',
           'table_name' => 'civicrm_saved_search',
           'entity' => 'SavedSearch',
@@ -349,6 +397,12 @@ class CRM_Contact_DAO_SavedSearch extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Created By Contact ID'),
           'description' => ts('FK to contact table.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_saved_search.created_id',
           'table_name' => 'civicrm_saved_search',
           'entity' => 'SavedSearch',
@@ -366,6 +420,12 @@ class CRM_Contact_DAO_SavedSearch extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Modified By Contact ID'),
           'description' => ts('FK to contact table.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_saved_search.modified_id',
           'table_name' => 'civicrm_saved_search',
           'entity' => 'SavedSearch',
@@ -384,6 +444,12 @@ class CRM_Contact_DAO_SavedSearch extends CRM_Core_DAO {
           'title' => ts('Search Expiry Date'),
           'description' => ts('Optional date after which the search is not needed'),
           'required' => FALSE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_saved_search.expires_date',
           'table_name' => 'civicrm_saved_search',
           'entity' => 'SavedSearch',
@@ -397,6 +463,12 @@ class CRM_Contact_DAO_SavedSearch extends CRM_Core_DAO {
           'title' => ts('Created Date'),
           'description' => ts('When the search was created.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_saved_search.created_date',
           'default' => 'CURRENT_TIMESTAMP',
           'table_name' => 'civicrm_saved_search',
@@ -412,6 +484,12 @@ class CRM_Contact_DAO_SavedSearch extends CRM_Core_DAO {
           'title' => ts('Modified Date'),
           'description' => ts('When the search was last modified.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_saved_search.modified_date',
           'default' => 'CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP',
           'table_name' => 'civicrm_saved_search',
@@ -427,6 +505,12 @@ class CRM_Contact_DAO_SavedSearch extends CRM_Core_DAO {
           'title' => ts('Saved Search Description'),
           'rows' => 2,
           'cols' => 60,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_saved_search.description',
           'table_name' => 'civicrm_saved_search',
           'entity' => 'SavedSearch',
diff --git a/civicrm/CRM/Contact/DAO/SubscriptionHistory.php b/civicrm/CRM/Contact/DAO/SubscriptionHistory.php
index 18492d6e1ea0ed91b06d119e5c39b7bbcb2b5403..b80c21358153dd93d8fa76db6d7f3a292627a390 100644
--- a/civicrm/CRM/Contact/DAO/SubscriptionHistory.php
+++ b/civicrm/CRM/Contact/DAO/SubscriptionHistory.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Contact/SubscriptionHistory.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:30b144a6f844fb0fb38b1bdbeee72ecf)
+ * (GenCodeChecksum:447fef069f8e4e0b537c30f43e61226f)
  */
 
 /**
@@ -141,6 +141,12 @@ class CRM_Contact_DAO_SubscriptionHistory extends CRM_Core_DAO {
           'title' => ts('Group Membership History ID'),
           'description' => ts('Internal ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_subscription_history.id',
           'table_name' => 'civicrm_subscription_history',
           'entity' => 'SubscriptionHistory',
@@ -158,6 +164,12 @@ class CRM_Contact_DAO_SubscriptionHistory extends CRM_Core_DAO {
           'title' => ts('Contact ID'),
           'description' => ts('Contact ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_subscription_history.contact_id',
           'table_name' => 'civicrm_subscription_history',
           'entity' => 'SubscriptionHistory',
@@ -174,6 +186,12 @@ class CRM_Contact_DAO_SubscriptionHistory extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Group ID'),
           'description' => ts('Group ID'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_subscription_history.group_id',
           'table_name' => 'civicrm_subscription_history',
           'entity' => 'SubscriptionHistory',
@@ -197,6 +215,12 @@ class CRM_Contact_DAO_SubscriptionHistory extends CRM_Core_DAO {
           'title' => ts('Group Membership Action Date'),
           'description' => ts('Date of the (un)subscription'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_subscription_history.date',
           'default' => 'CURRENT_TIMESTAMP',
           'table_name' => 'civicrm_subscription_history',
@@ -217,6 +241,12 @@ class CRM_Contact_DAO_SubscriptionHistory extends CRM_Core_DAO {
           'description' => ts('How the (un)subscription was triggered'),
           'maxlength' => 8,
           'size' => CRM_Utils_Type::EIGHT,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_subscription_history.method',
           'table_name' => 'civicrm_subscription_history',
           'entity' => 'SubscriptionHistory',
@@ -237,6 +267,12 @@ class CRM_Contact_DAO_SubscriptionHistory extends CRM_Core_DAO {
           'description' => ts('The state of the contact within the group'),
           'maxlength' => 8,
           'size' => CRM_Utils_Type::EIGHT,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_subscription_history.status',
           'table_name' => 'civicrm_subscription_history',
           'entity' => 'SubscriptionHistory',
@@ -254,6 +290,12 @@ class CRM_Contact_DAO_SubscriptionHistory extends CRM_Core_DAO {
           'description' => ts('IP address or other tracking info'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_subscription_history.tracking',
           'table_name' => 'civicrm_subscription_history',
           'entity' => 'SubscriptionHistory',
diff --git a/civicrm/CRM/Contact/Form/DedupeFind.php b/civicrm/CRM/Contact/Form/DedupeFind.php
index 04a5351161ec30c0e8e073e21b87092b0ecd38d6..fa00c1c7c0251455c327c19c9f9cccd39ec0aec8 100644
--- a/civicrm/CRM/Contact/Form/DedupeFind.php
+++ b/civicrm/CRM/Contact/Form/DedupeFind.php
@@ -21,22 +21,33 @@
 class CRM_Contact_Form_DedupeFind extends CRM_Admin_Form {
 
   /**
-   *  Indicate if this form should warn users of unsaved changes
+   * Indicate if this form should warn users of unsaved changes
    * @var bool
    */
   protected $unsavedChangesWarn = FALSE;
 
+  /**
+   * Dedupe rule group ID.
+   *
+   * @var int
+   */
+  protected $dedupeRuleGroupID;
+
   /**
    * Pre processing.
+   *
+   * @throws \CRM_Core_Exception
    */
-  public function preProcess() {
-    $this->rgid = CRM_Utils_Request::retrieve('rgid', 'Positive', $this, FALSE, 0);
+  public function preProcess(): void {
+    $this->dedupeRuleGroupID = CRM_Utils_Request::retrieve('rgid', 'Positive', $this, FALSE, 0);
   }
 
   /**
    * Build the form object.
+   *
+   * @throws \CRM_Core_Exception
    */
-  public function buildQuickForm() {
+  public function buildQuickForm(): void {
 
     $groupList = ['' => ts('- All Contacts -')] + CRM_Core_PseudoConstant::nestedGroup();
 
@@ -67,7 +78,7 @@ class CRM_Contact_Form_DedupeFind extends CRM_Admin_Form {
    *
    * @return array
    */
-  public function setDefaultValues() {
+  public function setDefaultValues(): array {
     $this->_defaults['limit'] = Civi::settings()->get('dedupe_default_limit');
     return $this->_defaults;
   }
@@ -75,14 +86,14 @@ class CRM_Contact_Form_DedupeFind extends CRM_Admin_Form {
   /**
    * Process the form submission.
    */
-  public function postProcess() {
+  public function postProcess(): void {
     $values = $this->exportValues();
     if (!empty($_POST['_qf_DedupeFind_submit'])) {
       //used for cancel button
       CRM_Utils_System::redirect(CRM_Utils_System::url('civicrm/contact/deduperules', 'reset=1'));
       return;
     }
-    $url = CRM_Utils_System::url('civicrm/contact/dedupefind', "reset=1&action=update&rgid={$this->rgid}");
+    $url = CRM_Utils_System::url('civicrm/contact/dedupefind', 'reset=1&action=update&rgid=' . $this->getDedupeRuleGroupID());
     if ($values['group_id']) {
       $url .= "&gid={$values['group_id']}";
     }
@@ -94,4 +105,16 @@ class CRM_Contact_Form_DedupeFind extends CRM_Admin_Form {
     CRM_Utils_System::redirect($url);
   }
 
+  /**
+   * Get the rule group ID passed in by the url.
+   *
+   * @todo  - could this ever really be NULL - the retrieveValue does not
+   * use $abort so maybe.
+   *
+   * @return int|null
+   */
+  public function getDedupeRuleGroupID(): ?int {
+    return $this->dedupeRuleGroupID;
+  }
+
 }
diff --git a/civicrm/CRM/Contact/Form/Merge.php b/civicrm/CRM/Contact/Form/Merge.php
index ef27927a44349d2cba5738cfe6e9cb995aa0181e..c59df6e82f6f2ebb2ac9a27687a20b2467e8d9b1 100644
--- a/civicrm/CRM/Contact/Form/Merge.php
+++ b/civicrm/CRM/Contact/Form/Merge.php
@@ -161,15 +161,15 @@ class CRM_Contact_Form_Merge extends CRM_Core_Form {
       $cmsUser = $mainUfId && $otherUfId;
       $this->assign('user', $cmsUser);
 
-      $rowsElementsAndInfo = CRM_Dedupe_Merger::getRowsElementsAndInfo($this->_cid, $this->_oid);
+      $rowsElementsAndInfo = CRM_Dedupe_Merger::getRowsElementsAndInfo((int) $this->_cid, (int) $this->_oid);
       $main = $this->_mainDetails = $rowsElementsAndInfo['main_details'];
       $other = $this->_otherDetails = $rowsElementsAndInfo['other_details'];
 
       $this->assign('contact_type', $main['contact_type']);
       $this->assign('main_name', $main['display_name']);
       $this->assign('other_name', $other['display_name']);
-      $this->assign('main_cid', $main['contact_id']);
-      $this->assign('other_cid', $other['contact_id']);
+      $this->assign('main_cid', $main['id']);
+      $this->assign('other_cid', $other['id']);
       $this->assign('rgid', $this->_rgid);
       $this->assignSummaryRowsToTemplate($contacts);
 
@@ -311,7 +311,7 @@ class CRM_Contact_Form_Merge extends CRM_Core_Form {
     $formValues['other_details'] = $this->_otherDetails;
 
     // Check if any rel_tables checkboxes have been de-selected
-    $rowsElementsAndInfo = CRM_Dedupe_Merger::getRowsElementsAndInfo($this->_cid, $this->_oid);
+    $rowsElementsAndInfo = CRM_Dedupe_Merger::getRowsElementsAndInfo((int) $this->_cid, (int) $this->_oid);
     // If rel_tables is not set then initialise with 0 value, required for the check which calls removeContactBelongings in moveAllBelongings
     foreach (array_keys($rowsElementsAndInfo['rel_tables']) as $relTableElement) {
       if (!array_key_exists($relTableElement, $formValues)) {
diff --git a/civicrm/CRM/Contact/Form/Relationship.php b/civicrm/CRM/Contact/Form/Relationship.php
index 41c11d221ad8bbd0d3ed46b4adad5cc2caf0e7cd..47116d7d17592d1fafa632cdb103052aced48c7b 100644
--- a/civicrm/CRM/Contact/Form/Relationship.php
+++ b/civicrm/CRM/Contact/Form/Relationship.php
@@ -508,7 +508,7 @@ class CRM_Contact_Form_Relationship extends CRM_Core_Form {
    *   Relationship ID
    */
   private function deleteAction($id) {
-    CRM_Contact_BAO_Relationship::del($id);
+    CRM_Contact_BAO_Relationship::deleteRecord(['id' => $id]);
     CRM_Core_Session::setStatus(ts('Selected relationship has been deleted successfully.'), ts('Record Deleted'), 'success');
 
     // reload all blocks to reflect this change on the user interface.
diff --git a/civicrm/CRM/Contact/Form/Task/PDF.php b/civicrm/CRM/Contact/Form/Task/PDF.php
index 8c916851135111d41662e9f683d4d09594d6bd4a..1c9902004f753fec43a2321d4b8d54ba7decbb36 100644
--- a/civicrm/CRM/Contact/Form/Task/PDF.php
+++ b/civicrm/CRM/Contact/Form/Task/PDF.php
@@ -39,8 +39,6 @@ class CRM_Contact_Form_Task_PDF extends CRM_Contact_Form_Task {
    * Build all the data structures needed to build the form.
    */
   public function preProcess() {
-
-    $this->skipOnHold = $this->skipDeceased = FALSE;
     $this->preProcessPDF();
 
     // store case id if present
diff --git a/civicrm/CRM/Contact/Form/Task/PDFLetterCommon.php b/civicrm/CRM/Contact/Form/Task/PDFLetterCommon.php
index b4df6126da00c3191d726b0592f5aee9a4cc5013..926ce85f862623d481a2a973e306e5bc1c4e11ca 100644
--- a/civicrm/CRM/Contact/Form/Task/PDFLetterCommon.php
+++ b/civicrm/CRM/Contact/Form/Task/PDFLetterCommon.php
@@ -75,40 +75,6 @@ class CRM_Contact_Form_Task_PDFLetterCommon extends CRM_Core_Form_Task_PDFLetter
     }
   }
 
-  /**
-   * Part of the post process which prepare and extract information from the template.
-   *
-   *
-   * @param array $formValues
-   *
-   * @return array
-   *   [$categories, $html_message, $messageToken, $returnProperties]
-   *
-   * @deprecated
-   */
-  public static function processMessageTemplate($formValues) {
-    CRM_Core_Error::deprecatedFunctionWarning('no alternative');
-
-    $html_message = self::processTemplate($formValues);
-
-    $categories = self::getTokenCategories();
-
-    //time being hack to strip '&nbsp;'
-    //from particular letter line, CRM-6798
-    self::formatMessage($html_message);
-
-    $messageToken = CRM_Utils_Token::getTokens($html_message);
-
-    $returnProperties = [];
-    if (isset($messageToken['contact'])) {
-      foreach ($messageToken['contact'] as $key => $value) {
-        $returnProperties[$value] = 1;
-      }
-    }
-
-    return [$formValues, $categories, $html_message, $messageToken, $returnProperties];
-  }
-
   /**
    * Get the categories required for rendering tokens.
    *
diff --git a/civicrm/CRM/Contact/Form/Task/SMSCommon.php b/civicrm/CRM/Contact/Form/Task/SMSCommon.php
index 91f752eb19dc68574a332008d872e690c1f00786..95cd3b627adbdc74a642edde4d571fada04e05cc 100644
--- a/civicrm/CRM/Contact/Form/Task/SMSCommon.php
+++ b/civicrm/CRM/Contact/Form/Task/SMSCommon.php
@@ -314,7 +314,6 @@ class CRM_Contact_Form_Task_SMSCommon {
    */
   public static function postProcess(&$form) {
 
-    // check and ensure that
     $thisValues = $form->controller->exportValues($form->getName());
 
     $fromSmsProviderId = $thisValues['sms_provider_id'];
diff --git a/civicrm/CRM/Contact/Import/Form/DataSource.php b/civicrm/CRM/Contact/Import/Form/DataSource.php
index 3c65435a907a2c3d1841adeb10d768e0b07b78a9..f8755c029ea137c769f69c9dcb2c667b4e234efb 100644
--- a/civicrm/CRM/Contact/Import/Form/DataSource.php
+++ b/civicrm/CRM/Contact/Import/Form/DataSource.php
@@ -29,32 +29,13 @@ class CRM_Contact_Import_Form_DataSource extends CRM_Import_Form_DataSource {
     return 'contact_import';
   }
 
-  /**
-   * Get any smarty elements that may not be present in the form.
-   *
-   * To make life simpler for smarty we ensure they are set to null
-   * rather than unset. This is done at the last minute when $this
-   * is converted to an array to be assigned to the form.
-   *
-   * @return array
-   */
-  public function getOptionalQuickFormElements(): array {
-    return ['disableUSPS'];
-  }
-
   /**
    * Build the form object.
    *
    * @throws \CRM_Core_Exception
    */
-  public function buildQuickForm() {
-
-    $this->assign('urlPath', 'civicrm/import/datasource');
-    $this->assign('urlPathVar', 'snippet=4&user_job_id=' . $this->get('user_job_id'));
-
-    $this->add('select', 'dataSource', ts('Data Source'), $this->getDataSources(), TRUE,
-      ['onchange' => 'buildDataSourceFormBlock(this.value);']
-    );
+  public function buildQuickForm(): void {
+    parent::buildQuickForm();
 
     // duplicate handling options
     $this->addRadio('onDuplicate', ts('For Duplicate Contacts'), [
@@ -64,9 +45,6 @@ class CRM_Contact_Import_Form_DataSource extends CRM_Import_Form_DataSource {
       CRM_Import_Parser::DUPLICATE_NOCHECK => ts('No Duplicate Checking'),
     ]);
 
-    $mappingArray = CRM_Core_BAO_Mapping::getMappings('Import Contact');
-    $this->addElement('select', 'savedMapping', ts('Saved Field Mapping'), ['' => ts('- select -')] + $mappingArray);
-
     $js = ['onClick' => "buildSubTypes();buildDedupeRules();"];
     // contact types option
     $contactTypeOptions = $contactTypeAttributes = [];
@@ -87,8 +65,6 @@ class CRM_Contact_Import_Form_DataSource extends CRM_Import_Form_DataSource {
     $this->addElement('select', 'contactSubType', ts('Subtype'));
     $this->addElement('select', 'dedupe_rule_id', ts('Dedupe Rule'));
 
-    CRM_Core_Form_Date::buildAllowedDateFormats($this);
-
     if (CRM_Utils_GeocodeProvider::getUsableClassName()) {
       $this->addElement('checkbox', 'doGeocodeAddress', ts('Geocode addresses during import?'));
     }
@@ -96,20 +72,6 @@ class CRM_Contact_Import_Form_DataSource extends CRM_Import_Form_DataSource {
     if (Civi::settings()->get('address_standardization_provider') === 'USPS') {
       $this->addElement('checkbox', 'disableUSPS', ts('Disable USPS address validation during import?'));
     }
-    $this->buildDataSourceFields();
-
-    $this->addButtons([
-      [
-        'type' => 'upload',
-        'name' => ts('Continue'),
-        'spacing' => '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;',
-        'isDefault' => TRUE,
-      ],
-      [
-        'type' => 'cancel',
-        'name' => ts('Cancel'),
-      ],
-    ]);
   }
 
   /**
@@ -118,61 +80,11 @@ class CRM_Contact_Import_Form_DataSource extends CRM_Import_Form_DataSource {
    * @return array
    *   reference to the array of default values
    */
-  public function setDefaultValues() {
-    $defaults = parent::setDefaultValues();
-    $defaults['contactType'] = 'Individual';
-    $defaults['disableUSPS'] = TRUE;
-
-    if ($this->get('loadedMapping')) {
-      $defaults['savedMapping'] = $this->get('loadedMapping');
-    }
-
-    return $defaults;
-  }
-
-  /**
-   * Call the DataSource's postProcess method.
-   *
-   * @throws \CRM_Core_Exception
-   */
-  public function postProcess() {
-    $this->controller->resetPage('MapField');
-    $this->processDatasource();
-    // @todo - this params are being set here because they were / possibly still
-    // are in some places being accessed by forms later in the flow
-    // ie CRM_Contact_Import_Form_MapField, CRM_Contact_Import_Form_Preview
-    // which was the old way of saving values submitted on this form such that
-    // the other forms could access them. Now they should use
-    // `getSubmittedValue` or simply not get them if the only
-    // reason is to pass to the Parser which can itself
-    // call 'getSubmittedValue'
-    // Once the mentioned forms no longer call $this->get() all this 'setting'
-    // is obsolete.
-    $storeParams = [
-      'dateFormats' => $this->getSubmittedValue('dateFormats'),
-      'savedMapping' => $this->getSubmittedValue('savedMapping'),
-    ];
-
-    foreach ($storeParams as $storeName => $value) {
-      $this->set($storeName, $value);
-    }
-    CRM_Core_Session::singleton()->set('dateTypes', $storeParams['dateFormats']);
-
-  }
-
-  /**
-   * General function for handling invalid configuration.
-   *
-   * I was going to statusBounce them all but when I tested I was 'bouncing' to weird places
-   * whereas throwing an exception gave no behaviour change. So, I decided to centralise
-   * and we can 'flip the switch' later.
-   *
-   * @param $message
-   *
-   * @throws \CRM_Core_Exception
-   */
-  protected function invalidConfig($message) {
-    throw new CRM_Core_Exception($message);
+  public function setDefaultValues(): array {
+    return array_merge([
+      'contactType' => 'Individual',
+      'disableUSPS' => TRUE,
+    ], parent::setDefaultValues());
   }
 
   /**
diff --git a/civicrm/CRM/Contact/Import/Form/MapField.php b/civicrm/CRM/Contact/Import/Form/MapField.php
index 26d8eb6c35e88a7c8a15369dfcb71cb4b4cc2646..79778edf739dd660b025a9e3b42c7ae200f2af8b 100644
--- a/civicrm/CRM/Contact/Import/Form/MapField.php
+++ b/civicrm/CRM/Contact/Import/Form/MapField.php
@@ -24,6 +24,15 @@ class CRM_Contact_Import_Form_MapField extends CRM_Import_Form_MapField {
 
   use CRM_Contact_Import_MetadataTrait;
 
+  /**
+   * Get the name of the type to be stored in civicrm_user_job.type_id.
+   *
+   * @return string
+   */
+  public function getUserJobType(): string {
+    return 'contact_import';
+  }
+
   /**
    * An array of all contact fields with
    * formatted custom field names.
@@ -73,7 +82,7 @@ class CRM_Contact_Import_Form_MapField extends CRM_Import_Form_MapField {
    * @throws \Civi\API\Exception\UnauthorizedException
    */
   public function preProcess(): void {
-    $this->_mapperFields = $this->getAvailableFields();
+    parent::preProcess();
     //format custom field names, CRM-2676
     $contactType = $this->getContactType();
 
@@ -100,7 +109,6 @@ class CRM_Contact_Import_Form_MapField extends CRM_Import_Form_MapField {
     $formattedFieldNames = $this->formatCustomFieldName($this->_mapperFields);
 
     $this->_formattedFieldNames[$contactType] = $this->_mapperFields = array_merge($this->_mapperFields, $formattedFieldNames);
-    $this->assignMapFieldVariables();
   }
 
   /**
@@ -111,8 +119,6 @@ class CRM_Contact_Import_Form_MapField extends CRM_Import_Form_MapField {
   public function buildQuickForm(): void {
     $this->addSavedMappingFields();
 
-    $this->addFormRule(['CRM_Contact_Import_Form_MapField', 'formRule']);
-
     //-------- end of saved mapping stuff ---------
 
     $defaults = [];
@@ -303,24 +309,6 @@ class CRM_Contact_Import_Form_MapField extends CRM_Import_Form_MapField {
     $this->addFormButtons();
   }
 
-  /**
-   * Global validation rules for the form.
-   *
-   * @param array $fields
-   *   Posted values of the form.
-   *
-   * @return bool
-   *   list of errors to be posted back to the form
-   */
-  public static function formRule(array $fields): bool {
-    if (!empty($fields['saveMapping'])) {
-      // todo - this is nonsensical - sane js is better. PR to fix got stale but
-      // is here https://github.com/civicrm/civicrm-core/pull/23950
-      CRM_Core_Smarty::singleton()->assign('isCheked', TRUE);
-    }
-    return TRUE;
-  }
-
   /**
    * Process the mapped fields and map it into the uploaded file.
    *
@@ -381,7 +369,7 @@ class CRM_Contact_Import_Form_MapField extends CRM_Import_Form_MapField {
     //Updating Mapping Records
     if (!empty($params['updateMapping'])) {
       foreach (array_keys($this->getColumnHeaders()) as $i) {
-        $this->saveMappingField($params['mappingId'], $i, TRUE);
+        $this->saveMappingField($this->getSavedMappingID(), $i, TRUE);
       }
     }
 
@@ -394,6 +382,7 @@ class CRM_Contact_Import_Form_MapField extends CRM_Import_Form_MapField {
       ];
 
       $saveMapping = civicrm_api3('Mapping', 'create', $mappingParams);
+      $this->updateUserJobMetadata('MapField', ['mapping_id' => $saveMapping['id']]);
 
       foreach (array_keys($this->getColumnHeaders()) as $i) {
         $this->saveMappingField($saveMapping['id'], $i);
diff --git a/civicrm/CRM/Contact/Import/Form/Preview.php b/civicrm/CRM/Contact/Import/Form/Preview.php
index cfc55e5c03c4e557578553af8a22742271d9ac37..2789484483f611bb0d1a922b05e5dc88a0467c61 100644
--- a/civicrm/CRM/Contact/Import/Form/Preview.php
+++ b/civicrm/CRM/Contact/Import/Form/Preview.php
@@ -23,6 +23,15 @@ use Civi\Api4\Tag;
  */
 class CRM_Contact_Import_Form_Preview extends CRM_Import_Form_Preview {
 
+  /**
+   * Get the name of the type to be stored in civicrm_user_job.type_id.
+   *
+   * @return string
+   */
+  public function getUserJobType(): string {
+    return 'contact_import';
+  }
+
   /**
    * Build the form object.
    */
diff --git a/civicrm/CRM/Contact/Import/Form/Summary.php b/civicrm/CRM/Contact/Import/Form/Summary.php
index 2b606fc9de8b2186525fa5b5acfc02667a5863e4..15460d4be0a48981bb03842caf8ce59864f3a35b 100644
--- a/civicrm/CRM/Contact/Import/Form/Summary.php
+++ b/civicrm/CRM/Contact/Import/Form/Summary.php
@@ -33,6 +33,13 @@ class CRM_Contact_Import_Form_Summary extends CRM_Import_Forms {
     $this->setTitle($userJob['job_type:label']);
     $onDuplicate = $userJob['metadata']['submitted_values']['onDuplicate'];
     $this->assign('dupeError', FALSE);
+    $importBaseURL = $this->getUserJobInfo()['url'] ?? NULL;
+    $this->assign('templateURL', ($importBaseURL && $this->getTemplateID()) ? CRM_Utils_System::url($importBaseURL, ['template_id' => $this->getTemplateID(), 'reset' => 1]) : '');
+    // This can be overridden by Civi-Import so that the Download url
+    // links that go to SearchKit open in a new tab.
+    $this->assign('isOpenResultsInNewTab');
+    $this->assign('allRowsUrl');
+    $this->assign('importedRowsUrl');
 
     if ($onDuplicate === CRM_Import_Parser::DUPLICATE_UPDATE) {
       $this->assign('dupeActionString', ts('These records have been updated with the imported data.'));
diff --git a/civicrm/CRM/Contact/Import/Parser/Contact.php b/civicrm/CRM/Contact/Import/Parser/Contact.php
index e86e99c39ad64ebfba1fc80cf30efba63cee7c5d..868efc3336cf709c740f332a0c9fc18155971abc 100644
--- a/civicrm/CRM/Contact/Import/Parser/Contact.php
+++ b/civicrm/CRM/Contact/Import/Parser/Contact.php
@@ -91,6 +91,7 @@ class CRM_Contact_Import_Parser_Contact extends CRM_Import_Parser {
         'name' => 'contact_import',
         'label' => ts('Contact Import'),
         'entity' => 'Contact',
+        'url' => 'civicrm/import/contact',
       ],
     ];
   }
@@ -300,27 +301,16 @@ class CRM_Contact_Import_Parser_Contact extends CRM_Import_Parser {
     $addressCustomFields = CRM_Core_BAO_CustomField::getFields('Address');
     $customFields = $customFields + $addressCustomFields;
 
-    //format date first
-    $session = CRM_Core_Session::singleton();
-    $dateType = $session->get("dateTypes");
     foreach ($params as $key => $val) {
       $customFieldID = CRM_Core_BAO_CustomField::getKeyID($key);
       if ($customFieldID &&
         !array_key_exists($customFieldID, $addressCustomFields)
       ) {
-        //we should not update Date to null, CRM-4062
-        if ($val && ($customFields[$customFieldID]['data_type'] == 'Date')) {
-          //CRM-21267
-          $this->formatCustomDate($params, $formatted, $dateType, $key);
-        }
-        elseif ($customFields[$customFieldID]['data_type'] == 'Boolean') {
+        if ($customFields[$customFieldID]['data_type'] == 'Boolean') {
           if (empty($val) && !is_numeric($val) && $this->isFillDuplicates()) {
             //retain earlier value when Import mode is `Fill`
             unset($params[$key]);
           }
-          else {
-            $params[$key] = CRM_Utils_String::strtoboolstr($val);
-          }
         }
       }
     }
@@ -880,6 +870,8 @@ class CRM_Contact_Import_Parser_Contact extends CRM_Import_Parser {
 
     $contactParams = [
       'contact_id' => $cid,
+      // core#4269 - Don't check relationships for values.
+      'noRelationships' => TRUE,
     ];
 
     $defaults = [];
@@ -1036,24 +1028,6 @@ class CRM_Contact_Import_Parser_Contact extends CRM_Import_Parser {
       _civicrm_api3_store_values($fields[$values['contact_type']], $values, $params);
       return TRUE;
     }
-
-    // Check for custom field values
-    $customFields = CRM_Core_BAO_CustomField::getFields(CRM_Utils_Array::value('contact_type', $values),
-      FALSE, FALSE, NULL, NULL, FALSE, FALSE, FALSE
-    );
-
-    foreach ($values as $key => $value) {
-      if ($customFieldID = CRM_Core_BAO_CustomField::getKeyID($key)) {
-        // check if it's a valid custom field id
-
-        if (!array_key_exists($customFieldID, $customFields)) {
-          return civicrm_api3_create_error('Invalid custom field ID');
-        }
-        else {
-          $params[$key] = $value;
-        }
-      }
-    }
     return TRUE;
   }
 
diff --git a/civicrm/CRM/Contact/Page/View/Relationship.php b/civicrm/CRM/Contact/Page/View/Relationship.php
index 1b5ce208283dc33182881800ad8a35c518c8e46e..1740059051e3117d6bd3005197fdf65ae2f0384c 100644
--- a/civicrm/CRM/Contact/Page/View/Relationship.php
+++ b/civicrm/CRM/Contact/Page/View/Relationship.php
@@ -181,7 +181,7 @@ class CRM_Contact_Page_View_Relationship extends CRM_Core_Page {
       }
 
       // delete relationship
-      CRM_Contact_BAO_Relationship::del($this->getEntityId());
+      CRM_Contact_BAO_Relationship::deleteRecord(['id' => $this->getEntityId()]);
       CRM_Core_Session::setStatus(ts('Selected relationship has been deleted successfully.'), ts('Record Deleted'), 'success');
 
       CRM_Utils_System::redirect($url);
@@ -240,7 +240,7 @@ class CRM_Contact_Page_View_Relationship extends CRM_Core_Page {
    */
   public function delete() {
     // calls a function to delete relationship
-    CRM_Contact_BAO_Relationship::del($this->getEntityId());
+    CRM_Contact_BAO_Relationship::deleteRecord(['id' => $this->getEntityId()]);
     CRM_Core_Session::setStatus(ts('Selected relationship has been deleted successfully.'), ts('Record Deleted'), 'success');
   }
 
diff --git a/civicrm/CRM/Contact/Page/View/Summary.php b/civicrm/CRM/Contact/Page/View/Summary.php
index 0389b5b244285e642b0695e1e23bc37c8a1d1113..170ad5692adb10e198f97ada17d672f38f17a053 100644
--- a/civicrm/CRM/Contact/Page/View/Summary.php
+++ b/civicrm/CRM/Contact/Page/View/Summary.php
@@ -208,12 +208,12 @@ class CRM_Contact_Page_View_Summary extends CRM_Contact_Page_View {
     $defaults['privacy_values'] = CRM_Core_SelectValues::privacy();
 
     //Show blocks only if they are visible in edit form
-    $this->_editOptions = CRM_Core_BAO_Setting::valueOptions(
+    $editOptions = CRM_Core_BAO_Setting::valueOptions(
       CRM_Core_BAO_Setting::SYSTEM_PREFERENCES_NAME,
       'contact_edit_options'
     );
 
-    foreach ($this->_editOptions as $blockName => $value) {
+    foreach ($editOptions as $blockName => $value) {
       $varName = '_show' . $blockName;
       $this->$varName = $value;
       $this->assign(substr($varName, 1), $this->$varName);
diff --git a/civicrm/CRM/Contact/Tokens.php b/civicrm/CRM/Contact/Tokens.php
index 01c1e358a30c5b1774f4227e28b09aa224f462b4..de25925709ffda0730fc668f3906ec511f4db5be 100644
--- a/civicrm/CRM/Contact/Tokens.php
+++ b/civicrm/CRM/Contact/Tokens.php
@@ -156,7 +156,6 @@ class CRM_Contact_Tokens extends CRM_Core_EntityTokens {
       'image_URL',
       'preferred_communication_method',
       'preferred_language',
-      'preferred_mail_format',
       'hash',
       'source',
       'first_name',
diff --git a/civicrm/CRM/Contribute/BAO/Contribution.php b/civicrm/CRM/Contribute/BAO/Contribution.php
index d1d7afe8774400c169a1858735b2eb8ff303b42b..15cca651f5f885601b50a9e64cbb244ba6493b83 100644
--- a/civicrm/CRM/Contribute/BAO/Contribution.php
+++ b/civicrm/CRM/Contribute/BAO/Contribution.php
@@ -17,6 +17,7 @@ use Civi\Api4\ContributionRecur;
 use Civi\Api4\LineItem;
 use Civi\Api4\ContributionSoft;
 use Civi\Api4\PaymentProcessor;
+use Civi\Core\Event\PostEvent;
 
 /**
  *
@@ -604,9 +605,12 @@ class CRM_Contribute_BAO_Contribution extends CRM_Contribute_DAO_Contribution im
 
   /**
    * Event fired after modifying a contribution.
+   *
    * @param \Civi\Core\Event\PostEvent $event
+   *
+   * @throws \CRM_Core_Exception
    */
-  public static function self_hook_civicrm_post(\Civi\Core\Event\PostEvent $event) {
+  public static function self_hook_civicrm_post(PostEvent $event): void {
     if ($event->action === 'edit') {
       CRM_Contribute_BAO_ContributionRecur::updateOnTemplateUpdated($event->object);
     }
@@ -1659,7 +1663,7 @@ LEFT JOIN civicrm_option_value contribution_status ON (civicrm_contribution.cont
   public static function createAddress($params, $billingLocationTypeID) {
     [$hasBillingField, $addressParams] = self::getBillingAddressParams($params, $billingLocationTypeID);
     if ($hasBillingField) {
-      $address = CRM_Core_BAO_Address::add($addressParams, FALSE);
+      $address = CRM_Core_BAO_Address::writeRecord($addressParams);
       return $address->id;
     }
     return NULL;
@@ -2162,20 +2166,29 @@ LEFT JOIN  civicrm_contribution contribution ON ( componentPayment.contribution_
    * Gaps in the above (
    *
    * @param array $input
-   *    Keys are all optional, if not supplied the template contribution's values are used.
-   *    The template contribution is either the actual template or the latest added contribution
-   *    for the ContributionRecur specified in $contributionParams['contribution_recur_id'].
    *    - total_amount
    *    - financial_type_id
    *    - campaign_id
    *
+   *    These keys are all optional, and are combined with the values from the contribution_recur
+   *    record to override values from the template contribution. Overrides are
+   *    subject to the following limitations
+   *    1) the campaign id & is_test always apply (is_test is available on the recurring but not as input)
+   *    2) the total amount & financial type ID overrides ONLY apply if the contribution has
+   *    only one line item.
+   *
+   *    The template contribution is derived from a contribution linked to
+   *    the recurring contribution record. A true template contribution is only used
+   *    as a template and is_template is set to TRUE. If this cannot be found the latest added contribution
+   *    is used.
+   *
    * @param array $contributionParams
    *
    * @return bool|array
    * @throws \CRM_Core_Exception
    * @throws \Civi\API\Exception\UnauthorizedException
    * @todo
-   *  1) many processors still call repeattransaction with contribution_status_id = Completed
+   *
    *  2) repeattransaction code is current munged into completeTransaction code for historical bad coding reasons
    *  3) Repeat transaction duplicates rather than calls Order.create
    *  4) Use of payment.create still limited - completetransaction is more common.
@@ -2192,7 +2205,7 @@ LEFT JOIN  civicrm_contribution contribution ON ( componentPayment.contribution_
     $contributionParams['line_item'] = $templateContribution['line_item'];
     $contributionParams['status_id'] = 'Pending';
 
-    foreach (['contact_id', 'campaign_id', 'financial_type_id', 'currency', 'source', 'amount_level', 'address_id', 'on_behalf', 'source_contact_id', 'tax_amount', 'contribution_page_id', 'total_amount'] as $fieldName) {
+    foreach (['contact_id', 'campaign_id', 'financial_type_id', 'currency', 'source', 'amount_level', 'address_id', 'on_behalf', 'source_contact_id', 'contribution_page_id', 'total_amount'] as $fieldName) {
       if (isset($templateContribution[$fieldName])) {
         $contributionParams[$fieldName] = $templateContribution[$fieldName];
       }
@@ -3509,7 +3522,7 @@ INNER JOIN civicrm_activity ON civicrm_activity_contact.activity_id = civicrm_ac
    */
   public static function addActivityForPayment($targetCid, $activityType, $title, $contributionId, $totalAmount, $currency, $trxn_date) {
     $paymentAmount = CRM_Utils_Money::format($totalAmount, $currency);
-    $subject = "{$paymentAmount} - Offline {$activityType} for {$title}";
+    $subject = "{$paymentAmount} - {$activityType} for {$title}";
     $date = CRM_Utils_Date::isoToMysql($trxn_date);
     // source record id would be the contribution id
     $srcRecId = $contributionId;
diff --git a/civicrm/CRM/Contribute/BAO/ContributionPage.php b/civicrm/CRM/Contribute/BAO/ContributionPage.php
index 9945d10286a0dee6d5f2bcb1668700aab2926609..43a401bdf0afa01126a42be158e4e631352f4fff 100644
--- a/civicrm/CRM/Contribute/BAO/ContributionPage.php
+++ b/civicrm/CRM/Contribute/BAO/ContributionPage.php
@@ -53,19 +53,13 @@ class CRM_Contribute_BAO_ContributionPage extends CRM_Contribute_DAO_Contributio
   }
 
   /**
-   * Update the is_active flag in the db.
-   *
    * @deprecated - this bypasses hooks.
-   *
    * @param int $id
-   *   Id of the database record.
    * @param bool $is_active
-   *   Value we want to set the is_active field.
-   *
    * @return bool
-   *   true if we found and updated the object, else false
    */
   public static function setIsActive($id, $is_active) {
+    CRM_Core_Error::deprecatedFunctionWarning('writeRecord');
     return CRM_Core_DAO::setFieldValue('CRM_Contribute_DAO_ContributionPage', $id, 'is_active', $is_active);
   }
 
diff --git a/civicrm/CRM/Contribute/BAO/ContributionRecur.php b/civicrm/CRM/Contribute/BAO/ContributionRecur.php
index 732ce892f5918d767cb5e8eaecc356939a04ef9b..3f7731ef280e0c8e1109fd427ba5e95be42c09e8 100644
--- a/civicrm/CRM/Contribute/BAO/ContributionRecur.php
+++ b/civicrm/CRM/Contribute/BAO/ContributionRecur.php
@@ -996,21 +996,24 @@ INNER JOIN civicrm_contribution       con ON ( con.id = mp.contribution_id )
    * @param \CRM_Contribute_DAO_Contribution $contribution
    *
    * @throws \CRM_Core_Exception
-   * @throws \Civi\API\Exception\UnauthorizedException
    */
-  public static function updateOnTemplateUpdated(CRM_Contribute_DAO_Contribution $contribution) {
-    if (empty($contribution->contribution_recur_id)) {
+  public static function updateOnTemplateUpdated(CRM_Contribute_DAO_Contribution $contribution): void {
+    if ($contribution->is_template === '0' || empty($contribution->contribution_recur_id)) {
       return;
     }
-    $contributionRecur = ContributionRecur::get(FALSE)
-      ->addWhere('id', '=', $contribution->contribution_recur_id)
-      ->execute()
-      ->first();
 
-    if ($contribution->total_amount === NULL || $contribution->currency === NULL) {
+    if ($contribution->total_amount === NULL || $contribution->currency === NULL || $contribution->is_template === NULL) {
       // The contribution has not been fully loaded, so fetch a full copy now.
       $contribution->find(TRUE);
     }
+    if (!$contribution->is_template) {
+      return;
+    }
+
+    $contributionRecur = ContributionRecur::get(FALSE)
+      ->addWhere('id', '=', $contribution->contribution_recur_id)
+      ->execute()
+      ->first();
 
     if ($contribution->currency !== $contributionRecur['currency'] || !CRM_Utils_Money::equals($contributionRecur['amount'], $contribution->total_amount, $contribution->currency)) {
       ContributionRecur::update(FALSE)
diff --git a/civicrm/CRM/Contribute/BAO/ManagePremiums.php b/civicrm/CRM/Contribute/BAO/ManagePremiums.php
deleted file mode 100644
index a8e6033e70ab84e68314085657ff0da50649c968..0000000000000000000000000000000000000000
--- a/civicrm/CRM/Contribute/BAO/ManagePremiums.php
+++ /dev/null
@@ -1,92 +0,0 @@
-<?php
-/*
- +--------------------------------------------------------------------+
- | Copyright CiviCRM LLC. All rights reserved.                        |
- |                                                                    |
- | This work is published under the GNU AGPLv3 license with some      |
- | permitted exceptions and without any warranty. For full license    |
- | and copyright information, see https://civicrm.org/licensing       |
- +--------------------------------------------------------------------+
- */
-
-/**
- *
- * @package CRM
- * @copyright CiviCRM LLC https://civicrm.org/licensing
- * @deprecated
- */
-class CRM_Contribute_BAO_ManagePremiums extends CRM_Contribute_BAO_Product {
-
-  /**
-   * Class constructor.
-   */
-  public function __construct() {
-    CRM_Core_Error::deprecatedFunctionWarning('CRM_Contribute_BAO_Product::construct');
-    parent::__construct();
-  }
-
-  /**
-   * Fetch object based on array of properties.
-   *
-   * @deprecated
-   * @param array $params
-   * @param array $defaults
-   *
-   * @return CRM_Contribute_BAO_Product
-   */
-  public static function retrieve(&$params, &$defaults) {
-    CRM_Core_Error::deprecatedFunctionWarning('CRM_Contribute_BAO_Product::retrieve');
-    return parent::retrieve($params, $defaults);
-  }
-
-  /**
-   * Update the is_active flag in the db.
-   *
-   * @deprecated
-   * @param int $id
-   *   Id of the database record.
-   * @param bool $is_active
-   *   Value we want to set the is_active field.
-   *
-   * @return bool
-   */
-  public static function setIsActive($id, $is_active) {
-    CRM_Core_Error::deprecatedFunctionWarning('CRM_Contribute_BAO_Product::setIsActive');
-    return parent::setIsActive($id, $is_active);
-  }
-
-  /**
-   * Add a premium product to the database, and return it.
-   *
-   * @deprecated
-   * @param array $params
-   *   Reference array contains the values submitted by the form.
-   * @param array $ids (deprecated)
-   *   Reference array contains the id.
-   *
-   * @return CRM_Contribute_DAO_Product
-   */
-  public static function add(&$params, $ids) {
-    CRM_Core_Error::deprecatedFunctionWarning('CRM_Contribute_BAO_Product::create');
-    $id = $params['id'] ?? $ids['premium'] ?? NULL;
-    if ($id) {
-      $params['id'] = $id;
-    }
-    return parent::create($params);
-  }
-
-  /**
-   * Delete premium Types.
-   *
-   * @deprecated
-   * @param int $productID
-   *
-   * @throws \CRM_Core_Exception
-   */
-  public static function del($productID) {
-    CRM_Core_Error::deprecatedFunctionWarning('CRM_Contribute_BAO_Product::del');
-    return parent::del($productID);
-    // Stop this showing up when we're looking for undeprecated del's by keeping this: static::deleteRecord(
-  }
-
-}
diff --git a/civicrm/CRM/Contribute/BAO/Premium.php b/civicrm/CRM/Contribute/BAO/Premium.php
index 8b577b7bc6aeea0c88f30949d3f6dc66eda0b56d..2f648474de4b119f8248242d5a89f454ff622aab 100644
--- a/civicrm/CRM/Contribute/BAO/Premium.php
+++ b/civicrm/CRM/Contribute/BAO/Premium.php
@@ -37,17 +37,13 @@ class CRM_Contribute_BAO_Premium extends CRM_Contribute_DAO_Premium {
   }
 
   /**
-   * Update the is_active flag in the db.
-   *
+   * @deprecated - this bypasses hooks.
    * @param int $id
-   *   Id of the database record.
    * @param bool $is_active
-   *   Value we want to set the is_active field.
-   *
    * @return bool
-   *   true if we found and updated the object, else false
    */
   public static function setIsActive($id, $is_active) {
+    CRM_Core_Error::deprecatedFunctionWarning('writeRecord');
     return CRM_Core_DAO::setFieldValue('CRM_Contribute_DAO_Premium', $id, 'premiums_active ', $is_active);
   }
 
@@ -59,6 +55,7 @@ class CRM_Contribute_BAO_Premium extends CRM_Contribute_DAO_Premium {
    * @deprecated
    */
   public static function del($premiumID) {
+    CRM_Core_Error::deprecatedFunctionWarning('deleteRecord');
     return static::deleteRecord(['id' => $premiumID]);
   }
 
diff --git a/civicrm/CRM/Contribute/BAO/Product.php b/civicrm/CRM/Contribute/BAO/Product.php
index 7c7f9ff164a3457502e22b30974dedb374e9d876..f4f6f5f4dcbc618c177e734dad9cb242ba139f10 100644
--- a/civicrm/CRM/Contribute/BAO/Product.php
+++ b/civicrm/CRM/Contribute/BAO/Product.php
@@ -44,16 +44,13 @@ class CRM_Contribute_BAO_Product extends CRM_Contribute_DAO_Product {
   }
 
   /**
-   * Update the is_active flag in the db.
-   *
+   * @deprecated - this bypasses hooks.
    * @param int $id
-   *   Id of the database record.
    * @param bool $is_active
-   *   Value we want to set the is_active field.
-   *
    * @return bool
    */
   public static function setIsActive($id, $is_active) {
+    CRM_Core_Error::deprecatedFunctionWarning('writeRecord');
     if (!$is_active) {
       $dao = new CRM_Contribute_DAO_PremiumsProduct();
       $dao->product_id = $id;
@@ -110,6 +107,7 @@ class CRM_Contribute_BAO_Product extends CRM_Contribute_DAO_Product {
    * @throws \CRM_Core_Exception
    */
   public static function del($productID) {
+    CRM_Core_Error::deprecatedFunctionWarning('deleteRecord');
     static::deleteRecord(['id' => $productID]);
   }
 
diff --git a/civicrm/CRM/Contribute/DAO/Contribution.php b/civicrm/CRM/Contribute/DAO/Contribution.php
index fba625f9a2c2502944060c18cfc7f14a96c3f693..9dc635a8659765df559dfb7aee5835a83ab061ca 100644
--- a/civicrm/CRM/Contribute/DAO/Contribution.php
+++ b/civicrm/CRM/Contribute/DAO/Contribution.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Contribute/Contribution.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:919cb2c352b7004cf0dbb421e2e2d62f)
+ * (GenCodeChecksum:7d2bdf2a0e9b14874e40ba3475e7d2cb)
  */
 
 /**
@@ -378,6 +378,12 @@ class CRM_Contribute_DAO_Contribution extends CRM_Core_DAO {
           'title' => ts('Contribution ID'),
           'description' => ts('Contribution ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contribution.id',
           'export' => TRUE,
@@ -397,6 +403,12 @@ class CRM_Contribute_DAO_Contribution extends CRM_Core_DAO {
           'title' => ts('Contact ID'),
           'description' => ts('FK to Contact ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contribution.contact_id',
           'headerPattern' => '/contact(.?id)?/i',
@@ -418,6 +430,12 @@ class CRM_Contribute_DAO_Contribution extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Financial Type ID'),
           'description' => ts('FK to Financial Type for (total_amount - non_deductible_amount).'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contribution.financial_type_id',
           'export' => TRUE,
@@ -442,6 +460,12 @@ class CRM_Contribute_DAO_Contribution extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Contribution Page ID'),
           'description' => ts('The Contribution Page which triggered this contribution'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contribution.contribution_page_id',
           'export' => TRUE,
@@ -466,6 +490,12 @@ class CRM_Contribute_DAO_Contribution extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Payment Method ID'),
           'description' => ts('FK to Payment Instrument'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contribution.payment_instrument_id',
           'headerPattern' => '/^payment|(p(ayment\s)?instrument)$/i',
@@ -489,6 +519,12 @@ class CRM_Contribute_DAO_Contribution extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME,
           'title' => ts('Date Received'),
           'description' => ts('Date contribution was received - not necessarily the creation date of the record'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contribution.receive_date',
           'headerPattern' => '/receive(.?date)?/i',
@@ -513,6 +549,12 @@ class CRM_Contribute_DAO_Contribution extends CRM_Core_DAO {
             20,
             2,
           ],
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contribution.non_deductible_amount',
           'headerPattern' => '/non?.?deduct/i',
@@ -538,6 +580,12 @@ class CRM_Contribute_DAO_Contribution extends CRM_Core_DAO {
             20,
             2,
           ],
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contribution.total_amount',
           'headerPattern' => '/^total|(.?^am(ou)?nt)/i',
@@ -562,6 +610,12 @@ class CRM_Contribute_DAO_Contribution extends CRM_Core_DAO {
             20,
             2,
           ],
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contribution.fee_amount',
           'headerPattern' => '/fee(.?am(ou)?nt)?/i',
@@ -586,6 +640,12 @@ class CRM_Contribute_DAO_Contribution extends CRM_Core_DAO {
             20,
             2,
           ],
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contribution.net_amount',
           'headerPattern' => '/net(.?am(ou)?nt)?/i',
@@ -608,6 +668,12 @@ class CRM_Contribute_DAO_Contribution extends CRM_Core_DAO {
           'description' => ts('unique transaction id. may be processor id, bank id + trans id, or account number + check number... depending on payment_method'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contribution.trxn_id',
           'headerPattern' => '/tr(ansactio|x)n(.?id)?/i',
@@ -629,6 +695,12 @@ class CRM_Contribute_DAO_Contribution extends CRM_Core_DAO {
           'description' => ts('unique invoice id, system generated or passed in'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contribution.invoice_id',
           'headerPattern' => '/invoice(.?id)?/i',
@@ -650,6 +722,12 @@ class CRM_Contribute_DAO_Contribution extends CRM_Core_DAO {
           'description' => ts('Human readable invoice number'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contribution.invoice_number',
           'headerPattern' => '/invoice(.?number)?/i',
@@ -670,6 +748,12 @@ class CRM_Contribute_DAO_Contribution extends CRM_Core_DAO {
           'description' => ts('3 character string, value from config setting or input via user.'),
           'maxlength' => 3,
           'size' => CRM_Utils_Type::FOUR,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contribution.currency',
           'headerPattern' => '/cur(rency)?/i',
@@ -698,6 +782,12 @@ class CRM_Contribute_DAO_Contribution extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME,
           'title' => ts('Cancelled / Refunded Date'),
           'description' => ts('when was gift cancelled'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contribution.cancel_date',
           'headerPattern' => '/cancel(.?date)?/i',
@@ -717,6 +807,12 @@ class CRM_Contribute_DAO_Contribution extends CRM_Core_DAO {
           'name' => 'cancel_reason',
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Cancellation / Refund Reason'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contribution.cancel_reason',
           'headerPattern' => '/(cancel.?)?reason/i',
@@ -735,6 +831,12 @@ class CRM_Contribute_DAO_Contribution extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME,
           'title' => ts('Receipt Date'),
           'description' => ts('when (if) receipt was sent. populated automatically for online donations w/ automatic receipting'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contribution.receipt_date',
           'headerPattern' => '/receipt(.?date)?/i',
@@ -756,6 +858,12 @@ class CRM_Contribute_DAO_Contribution extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME,
           'title' => ts('Thank-you Date'),
           'description' => ts('when (if) was donor thanked'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contribution.thankyou_date',
           'headerPattern' => '/thank(s|(.?you))?(.?date)?/i',
@@ -778,6 +886,12 @@ class CRM_Contribute_DAO_Contribution extends CRM_Core_DAO {
           'description' => ts('Origin of this Contribution.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contribution.source',
           'headerPattern' => '/source/i',
@@ -795,6 +909,12 @@ class CRM_Contribute_DAO_Contribution extends CRM_Core_DAO {
           'name' => 'amount_level',
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Amount Label'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contribution.amount_level',
           'export' => TRUE,
@@ -812,6 +932,12 @@ class CRM_Contribute_DAO_Contribution extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Recurring Contribution ID'),
           'description' => ts('Conditional foreign key to civicrm_contribution_recur id. Each contribution made in connection with a recurring contribution carries a foreign key to the recurring contribution record. This assumes we can track these processor initiated events.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => TRUE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution.contribution_recur_id',
           'export' => TRUE,
           'table_name' => 'civicrm_contribution',
@@ -830,6 +956,12 @@ class CRM_Contribute_DAO_Contribution extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_BOOLEAN,
           'title' => ts('Test'),
           'required' => TRUE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contribution.is_test',
           'export' => TRUE,
@@ -848,6 +980,12 @@ class CRM_Contribute_DAO_Contribution extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_BOOLEAN,
           'title' => ts('Is Pay Later'),
           'required' => TRUE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contribution.is_pay_later',
           'export' => TRUE,
@@ -865,6 +1003,12 @@ class CRM_Contribute_DAO_Contribution extends CRM_Core_DAO {
           'name' => 'contribution_status_id',
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Contribution Status ID'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contribution.contribution_status_id',
           'headerPattern' => '/status/i',
@@ -889,6 +1033,12 @@ class CRM_Contribute_DAO_Contribution extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Address ID'),
           'description' => ts('Conditional foreign key to civicrm_address.id. We insert an address record for each contribution when we have associated billing name and address data.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => TRUE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution.address_id',
           'export' => TRUE,
           'table_name' => 'civicrm_contribution',
@@ -907,6 +1057,12 @@ class CRM_Contribute_DAO_Contribution extends CRM_Core_DAO {
           'title' => ts('Check Number'),
           'maxlength' => 255,
           'size' => 6,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contribution.check_number',
           'headerPattern' => '/check(.?number)?/i',
@@ -925,6 +1081,12 @@ class CRM_Contribute_DAO_Contribution extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Campaign ID'),
           'description' => ts('The campaign for which this contribution has been triggered.'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contribution.campaign_id',
           'export' => TRUE,
@@ -953,6 +1115,12 @@ class CRM_Contribute_DAO_Contribution extends CRM_Core_DAO {
           'description' => ts('unique credit note id, system generated or passed in'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contribution.creditnote_id',
           'headerPattern' => '/creditnote(.?id)?/i',
@@ -975,6 +1143,12 @@ class CRM_Contribute_DAO_Contribution extends CRM_Core_DAO {
             20,
             2,
           ],
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contribution.tax_amount',
           'headerPattern' => '/tax(.?am(ou)?nt)?/i',
@@ -994,6 +1168,12 @@ class CRM_Contribute_DAO_Contribution extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME,
           'title' => ts('Revenue Recognition Date'),
           'description' => ts('Stores the date when revenue should be recognized.'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contribution.revenue_recognition_date',
           'headerPattern' => '/revenue(.?date)?/i',
@@ -1016,6 +1196,12 @@ class CRM_Contribute_DAO_Contribution extends CRM_Core_DAO {
           'title' => ts('Is a Template Contribution'),
           'description' => ts('Shows this is a template for recurring contributions.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contribution.is_template',
           'export' => TRUE,
diff --git a/civicrm/CRM/Contribute/DAO/ContributionPage.php b/civicrm/CRM/Contribute/DAO/ContributionPage.php
index 3dd4d9fea98246041cc3e59a80a2441a0f0a0314..c3744c8dfe1251624db12c34ddc54b351d22521a 100644
--- a/civicrm/CRM/Contribute/DAO/ContributionPage.php
+++ b/civicrm/CRM/Contribute/DAO/ContributionPage.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Contribute/ContributionPage.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:6dd221632f9a193d41f95ef6c6fb3095)
+ * (GenCodeChecksum:fce845eb898447e06ebfa547ae8fa37c)
  */
 
 /**
@@ -501,6 +501,12 @@ class CRM_Contribute_DAO_ContributionPage extends CRM_Core_DAO {
           'title' => ts('Contribution Page ID'),
           'description' => ts('Contribution ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_page.id',
           'table_name' => 'civicrm_contribution_page',
           'entity' => 'ContributionPage',
@@ -519,6 +525,12 @@ class CRM_Contribute_DAO_ContributionPage extends CRM_Core_DAO {
           'description' => ts('Contribution Page title. For top of page display'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_page.title',
           'table_name' => 'civicrm_contribution_page',
           'entity' => 'ContributionPage',
@@ -533,6 +545,12 @@ class CRM_Contribute_DAO_ContributionPage extends CRM_Core_DAO {
           'description' => ts('Text and html allowed. Displayed below title.'),
           'rows' => 6,
           'cols' => 50,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_page.intro_text',
           'table_name' => 'civicrm_contribution_page',
           'entity' => 'ContributionPage',
@@ -548,6 +566,12 @@ class CRM_Contribute_DAO_ContributionPage extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Financial Type ID'),
           'description' => ts('default financial type assigned to contributions submitted via this page, e.g. Contribution, Campaign Contribution'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_page.financial_type_id',
           'table_name' => 'civicrm_contribution_page',
           'entity' => 'ContributionPage',
@@ -572,6 +596,12 @@ class CRM_Contribute_DAO_ContributionPage extends CRM_Core_DAO {
           'description' => ts('Payment Processors configured for this contribution Page'),
           'maxlength' => 128,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_page.payment_processor',
           'table_name' => 'civicrm_contribution_page',
           'entity' => 'ContributionPage',
@@ -595,6 +625,12 @@ class CRM_Contribute_DAO_ContributionPage extends CRM_Core_DAO {
           'title' => ts('Is Credit Card Only?'),
           'description' => ts('if true - processing logic must reject transaction at confirmation stage if pay method != credit card'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_page.is_credit_card_only',
           'default' => '0',
           'table_name' => 'civicrm_contribution_page',
@@ -609,6 +645,12 @@ class CRM_Contribute_DAO_ContributionPage extends CRM_Core_DAO {
           'title' => ts('Is Monetary'),
           'description' => ts('if true - allows real-time monetary transactions otherwise non-monetary transactions'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_page.is_monetary',
           'default' => '1',
           'table_name' => 'civicrm_contribution_page',
@@ -623,6 +665,12 @@ class CRM_Contribute_DAO_ContributionPage extends CRM_Core_DAO {
           'title' => ts('Is Recurring'),
           'description' => ts('if true - allows recurring contributions, valid only for PayPal_Standard'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_page.is_recur',
           'default' => '0',
           'table_name' => 'civicrm_contribution_page',
@@ -637,6 +685,12 @@ class CRM_Contribute_DAO_ContributionPage extends CRM_Core_DAO {
           'title' => ts('Confirmation Page?'),
           'description' => ts('if false, the confirm page in contribution pages gets skipped'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_page.is_confirm_enabled',
           'default' => '1',
           'table_name' => 'civicrm_contribution_page',
@@ -652,6 +706,12 @@ class CRM_Contribute_DAO_ContributionPage extends CRM_Core_DAO {
           'description' => ts('Supported recurring frequency units.'),
           'maxlength' => 128,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_page.recur_frequency_unit',
           'table_name' => 'civicrm_contribution_page',
           'entity' => 'ContributionPage',
@@ -674,6 +734,12 @@ class CRM_Contribute_DAO_ContributionPage extends CRM_Core_DAO {
           'title' => ts('Support Recurring Intervals'),
           'description' => ts('if true - supports recurring intervals'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_page.is_recur_interval',
           'default' => '0',
           'table_name' => 'civicrm_contribution_page',
@@ -688,6 +754,12 @@ class CRM_Contribute_DAO_ContributionPage extends CRM_Core_DAO {
           'title' => ts('Recurring Installments?'),
           'description' => ts('if true - asks user for recurring installments'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_page.is_recur_installments',
           'default' => '0',
           'table_name' => 'civicrm_contribution_page',
@@ -702,6 +774,12 @@ class CRM_Contribute_DAO_ContributionPage extends CRM_Core_DAO {
           'title' => ts('Adjust Recurring Start Date'),
           'description' => ts('if true - user is able to adjust payment start date'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_page.adjust_recur_start_date',
           'default' => '0',
           'table_name' => 'civicrm_contribution_page',
@@ -716,6 +794,12 @@ class CRM_Contribute_DAO_ContributionPage extends CRM_Core_DAO {
           'title' => ts('Pay Later'),
           'description' => ts('if true - allows the user to send payment directly to the org later'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_page.is_pay_later',
           'default' => '0',
           'table_name' => 'civicrm_contribution_page',
@@ -729,6 +813,12 @@ class CRM_Contribute_DAO_ContributionPage extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Pay Later Text'),
           'description' => ts('The text displayed to the user in the main form'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_page.pay_later_text',
           'table_name' => 'civicrm_contribution_page',
           'entity' => 'ContributionPage',
@@ -741,6 +831,12 @@ class CRM_Contribute_DAO_ContributionPage extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Pay Later Receipt'),
           'description' => ts('The receipt sent to the user instead of the normal receipt text'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_page.pay_later_receipt',
           'table_name' => 'civicrm_contribution_page',
           'entity' => 'ContributionPage',
@@ -753,6 +849,12 @@ class CRM_Contribute_DAO_ContributionPage extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_BOOLEAN,
           'title' => ts('Allow Partial Payment'),
           'description' => ts('is partial payment enabled for this online contribution page'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_page.is_partial_payment',
           'default' => '0',
           'table_name' => 'civicrm_contribution_page',
@@ -768,6 +870,12 @@ class CRM_Contribute_DAO_ContributionPage extends CRM_Core_DAO {
           'description' => ts('Initial amount label for partial payment'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_page.initial_amount_label',
           'table_name' => 'civicrm_contribution_page',
           'entity' => 'ContributionPage',
@@ -783,6 +891,12 @@ class CRM_Contribute_DAO_ContributionPage extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Initial Amount Help Text'),
           'description' => ts('Initial amount help text for partial payment'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_page.initial_amount_help_text',
           'table_name' => 'civicrm_contribution_page',
           'entity' => 'ContributionPage',
@@ -802,6 +916,12 @@ class CRM_Contribute_DAO_ContributionPage extends CRM_Core_DAO {
             20,
             2,
           ],
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_page.min_initial_amount',
           'table_name' => 'civicrm_contribution_page',
           'entity' => 'ContributionPage',
@@ -818,6 +938,12 @@ class CRM_Contribute_DAO_ContributionPage extends CRM_Core_DAO {
           'title' => ts('Allow Other Amounts'),
           'description' => ts('if true, page will include an input text field where user can enter their own amount'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_page.is_allow_other_amount',
           'default' => '0',
           'table_name' => 'civicrm_contribution_page',
@@ -831,6 +957,12 @@ class CRM_Contribute_DAO_ContributionPage extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Default Amount'),
           'description' => ts('FK to civicrm_option_value.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_page.default_amount_id',
           'table_name' => 'civicrm_contribution_page',
           'entity' => 'ContributionPage',
@@ -847,6 +979,12 @@ class CRM_Contribute_DAO_ContributionPage extends CRM_Core_DAO {
             20,
             2,
           ],
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_page.min_amount',
           'table_name' => 'civicrm_contribution_page',
           'entity' => 'ContributionPage',
@@ -863,6 +1001,12 @@ class CRM_Contribute_DAO_ContributionPage extends CRM_Core_DAO {
             20,
             2,
           ],
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_page.max_amount',
           'table_name' => 'civicrm_contribution_page',
           'entity' => 'ContributionPage',
@@ -879,6 +1023,12 @@ class CRM_Contribute_DAO_ContributionPage extends CRM_Core_DAO {
             20,
             2,
           ],
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_page.goal_amount',
           'table_name' => 'civicrm_contribution_page',
           'entity' => 'ContributionPage',
@@ -896,6 +1046,12 @@ class CRM_Contribute_DAO_ContributionPage extends CRM_Core_DAO {
           'description' => ts('Title for Thank-you page (header title tag, and display at the top of the page).'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_page.thankyou_title',
           'table_name' => 'civicrm_contribution_page',
           'entity' => 'ContributionPage',
@@ -910,6 +1066,12 @@ class CRM_Contribute_DAO_ContributionPage extends CRM_Core_DAO {
           'description' => ts('text and html allowed. displayed above result on success page'),
           'rows' => 8,
           'cols' => 60,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_page.thankyou_text',
           'table_name' => 'civicrm_contribution_page',
           'entity' => 'ContributionPage',
@@ -927,6 +1089,12 @@ class CRM_Contribute_DAO_ContributionPage extends CRM_Core_DAO {
           'description' => ts('Text and html allowed. displayed at the bottom of the success page. Common usage is to include link(s) to other pages such as tell-a-friend, etc.'),
           'rows' => 8,
           'cols' => 60,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_page.thankyou_footer',
           'table_name' => 'civicrm_contribution_page',
           'entity' => 'ContributionPage',
@@ -943,6 +1111,12 @@ class CRM_Contribute_DAO_ContributionPage extends CRM_Core_DAO {
           'title' => ts('Send email Receipt'),
           'description' => ts('if true, receipt is automatically emailed to contact on success'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_page.is_email_receipt',
           'default' => '0',
           'table_name' => 'civicrm_contribution_page',
@@ -958,6 +1132,12 @@ class CRM_Contribute_DAO_ContributionPage extends CRM_Core_DAO {
           'description' => ts('FROM email name used for receipts generated by contributions to this contribution page.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_page.receipt_from_name',
           'table_name' => 'civicrm_contribution_page',
           'entity' => 'ContributionPage',
@@ -972,6 +1152,12 @@ class CRM_Contribute_DAO_ContributionPage extends CRM_Core_DAO {
           'description' => ts('FROM email address used for receipts generated by contributions to this contribution page.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_page.receipt_from_email',
           'table_name' => 'civicrm_contribution_page',
           'entity' => 'ContributionPage',
@@ -986,6 +1172,12 @@ class CRM_Contribute_DAO_ContributionPage extends CRM_Core_DAO {
           'description' => ts('comma-separated list of email addresses to cc each time a receipt is sent'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_page.cc_receipt',
           'table_name' => 'civicrm_contribution_page',
           'entity' => 'ContributionPage',
@@ -1000,6 +1192,12 @@ class CRM_Contribute_DAO_ContributionPage extends CRM_Core_DAO {
           'description' => ts('comma-separated list of email addresses to bcc each time a receipt is sent'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_page.bcc_receipt',
           'table_name' => 'civicrm_contribution_page',
           'entity' => 'ContributionPage',
@@ -1014,6 +1212,12 @@ class CRM_Contribute_DAO_ContributionPage extends CRM_Core_DAO {
           'description' => ts('text to include above standard receipt info on receipt email. emails are text-only, so do not allow html for now'),
           'rows' => 6,
           'cols' => 50,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_page.receipt_text',
           'table_name' => 'civicrm_contribution_page',
           'entity' => 'ContributionPage',
@@ -1030,6 +1234,12 @@ class CRM_Contribute_DAO_ContributionPage extends CRM_Core_DAO {
           'title' => ts('Is Page Active?'),
           'description' => ts('Is this page active?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_page.is_active',
           'default' => '1',
           'table_name' => 'civicrm_contribution_page',
@@ -1049,6 +1259,12 @@ class CRM_Contribute_DAO_ContributionPage extends CRM_Core_DAO {
           'description' => ts('Text and html allowed. Displayed at the bottom of the first page of the contribution wizard.'),
           'rows' => 6,
           'cols' => 50,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_page.footer_text',
           'table_name' => 'civicrm_contribution_page',
           'entity' => 'ContributionPage',
@@ -1065,6 +1281,12 @@ class CRM_Contribute_DAO_ContributionPage extends CRM_Core_DAO {
           'title' => ts('Is Amount Block Active?'),
           'description' => ts('Is this property active?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_page.amount_block_is_active',
           'default' => '1',
           'table_name' => 'civicrm_contribution_page',
@@ -1078,6 +1300,12 @@ class CRM_Contribute_DAO_ContributionPage extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME,
           'title' => ts('Contribution Page Start Date'),
           'description' => ts('Date and time that this page starts.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_page.start_date',
           'table_name' => 'civicrm_contribution_page',
           'entity' => 'ContributionPage',
@@ -1090,6 +1318,12 @@ class CRM_Contribute_DAO_ContributionPage extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME,
           'title' => ts('Contribution Page End Date'),
           'description' => ts('Date and time that this page ends. May be NULL if no defined end date/time'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_page.end_date',
           'table_name' => 'civicrm_contribution_page',
           'entity' => 'ContributionPage',
@@ -1102,6 +1336,12 @@ class CRM_Contribute_DAO_ContributionPage extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Created By Contact ID'),
           'description' => ts('FK to civicrm_contact, who created this contribution page'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_page.created_id',
           'table_name' => 'civicrm_contribution_page',
           'entity' => 'ContributionPage',
@@ -1118,6 +1358,12 @@ class CRM_Contribute_DAO_ContributionPage extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME,
           'title' => ts('Contribution Page Created Date'),
           'description' => ts('Date and time that contribution page was created.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_page.created_date',
           'table_name' => 'civicrm_contribution_page',
           'entity' => 'ContributionPage',
@@ -1132,6 +1378,12 @@ class CRM_Contribute_DAO_ContributionPage extends CRM_Core_DAO {
           'description' => ts('3 character string, value from config setting or input via user.'),
           'maxlength' => 3,
           'size' => CRM_Utils_Type::FOUR,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_page.currency',
           'headerPattern' => '/cur(rency)?/i',
           'dataPattern' => '/^[A-Z]{3}$/i',
@@ -1157,6 +1409,12 @@ class CRM_Contribute_DAO_ContributionPage extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Campaign ID'),
           'description' => ts('The campaign for which we are collecting contributions with this page.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_page.campaign_id',
           'table_name' => 'civicrm_contribution_page',
           'entity' => 'ContributionPage',
@@ -1182,6 +1440,12 @@ class CRM_Contribute_DAO_ContributionPage extends CRM_Core_DAO {
           'title' => ts('Is Contribution Page Shared?'),
           'description' => ts('Can people share the contribution page through social media?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_page.is_share',
           'default' => '1',
           'table_name' => 'civicrm_contribution_page',
@@ -1196,6 +1460,12 @@ class CRM_Contribute_DAO_ContributionPage extends CRM_Core_DAO {
           'title' => ts('Is billing block required'),
           'description' => ts('if true - billing block is required for online contribution page'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_page.is_billing_required',
           'default' => '0',
           'table_name' => 'civicrm_contribution_page',
@@ -1211,6 +1481,12 @@ class CRM_Contribute_DAO_ContributionPage extends CRM_Core_DAO {
           'description' => ts('Contribution Page Public title'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_page.frontend_title',
           'default' => NULL,
           'table_name' => 'civicrm_contribution_page',
diff --git a/civicrm/CRM/Contribute/DAO/ContributionProduct.php b/civicrm/CRM/Contribute/DAO/ContributionProduct.php
index 1b86bc3ebc550c4934782da8c781069239673f5f..50a6d61861fd269222976d4063ea6e7c7b4cafd1 100644
--- a/civicrm/CRM/Contribute/DAO/ContributionProduct.php
+++ b/civicrm/CRM/Contribute/DAO/ContributionProduct.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Contribute/ContributionProduct.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:bac613347143b990a5f73567acd845e0)
+ * (GenCodeChecksum:20ccf80c5280f4b58e393bf82835115a)
  */
 
 /**
@@ -159,6 +159,12 @@ class CRM_Contribute_DAO_ContributionProduct extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Contribution Product ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_product.id',
           'table_name' => 'civicrm_contribution_product',
           'entity' => 'ContributionProduct',
@@ -175,6 +181,12 @@ class CRM_Contribute_DAO_ContributionProduct extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Product ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_product.product_id',
           'table_name' => 'civicrm_contribution_product',
           'entity' => 'ContributionProduct',
@@ -188,6 +200,12 @@ class CRM_Contribute_DAO_ContributionProduct extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Contribution ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_product.contribution_id',
           'table_name' => 'civicrm_contribution_product',
           'entity' => 'ContributionProduct',
@@ -206,6 +224,12 @@ class CRM_Contribute_DAO_ContributionProduct extends CRM_Core_DAO {
           'description' => ts('Option value selected if applicable - e.g. color, size etc.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => TRUE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_product.product_option',
           'export' => TRUE,
           'table_name' => 'civicrm_contribution_product',
@@ -218,6 +242,12 @@ class CRM_Contribute_DAO_ContributionProduct extends CRM_Core_DAO {
           'name' => 'quantity',
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Quantity'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => TRUE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_product.quantity',
           'export' => TRUE,
           'table_name' => 'civicrm_contribution_product',
@@ -231,6 +261,12 @@ class CRM_Contribute_DAO_ContributionProduct extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE,
           'title' => ts('Fulfilled Date'),
           'description' => ts('Optional. Can be used to record the date this product was fulfilled or shipped.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => TRUE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_product.fulfilled_date',
           'export' => TRUE,
           'table_name' => 'civicrm_contribution_product',
@@ -248,6 +284,12 @@ class CRM_Contribute_DAO_ContributionProduct extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE,
           'title' => ts('Start date for premium'),
           'description' => ts('Actual start date for a time-delimited premium (subscription, service or membership)'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => TRUE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_product.start_date',
           'export' => TRUE,
           'table_name' => 'civicrm_contribution_product',
@@ -261,6 +303,12 @@ class CRM_Contribute_DAO_ContributionProduct extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE,
           'title' => ts('End date for premium'),
           'description' => ts('Actual end date for a time-delimited premium (subscription, service or membership)'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => TRUE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_product.end_date',
           'export' => TRUE,
           'table_name' => 'civicrm_contribution_product',
@@ -273,6 +321,12 @@ class CRM_Contribute_DAO_ContributionProduct extends CRM_Core_DAO {
           'name' => 'comment',
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Premium comment'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_product.comment',
           'table_name' => 'civicrm_contribution_product',
           'entity' => 'ContributionProduct',
@@ -285,6 +339,12 @@ class CRM_Contribute_DAO_ContributionProduct extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Financial Type ID'),
           'description' => ts('FK to Financial Type(for membership price sets only).'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_product.financial_type_id',
           'default' => NULL,
           'table_name' => 'civicrm_contribution_product',
diff --git a/civicrm/CRM/Contribute/DAO/ContributionRecur.php b/civicrm/CRM/Contribute/DAO/ContributionRecur.php
index 6b2d79edae7bf567249cdcd733322855eec0b50b..21d7c21f09eaad0604f3d603386c9260e029cc51 100644
--- a/civicrm/CRM/Contribute/DAO/ContributionRecur.php
+++ b/civicrm/CRM/Contribute/DAO/ContributionRecur.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Contribute/ContributionRecur.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:50c44d12fc9c64c4dcd9c78df1d314cd)
+ * (GenCodeChecksum:f633ecacb25c131d5a07f8c30a169204)
  */
 
 /**
@@ -339,6 +339,12 @@ class CRM_Contribute_DAO_ContributionRecur extends CRM_Core_DAO {
           'title' => ts('Recurring Contribution ID'),
           'description' => ts('Contribution Recur ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_recur.id',
           'table_name' => 'civicrm_contribution_recur',
           'entity' => 'ContributionRecur',
@@ -356,6 +362,12 @@ class CRM_Contribute_DAO_ContributionRecur extends CRM_Core_DAO {
           'title' => ts('Contact ID'),
           'description' => ts('Foreign key to civicrm_contact.id.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_recur.contact_id',
           'table_name' => 'civicrm_contribution_recur',
           'entity' => 'ContributionRecur',
@@ -378,6 +390,12 @@ class CRM_Contribute_DAO_ContributionRecur extends CRM_Core_DAO {
             20,
             2,
           ],
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_recur.amount',
           'table_name' => 'civicrm_contribution_recur',
           'entity' => 'ContributionRecur',
@@ -395,6 +413,12 @@ class CRM_Contribute_DAO_ContributionRecur extends CRM_Core_DAO {
           'description' => ts('3 character string, value from config setting or input via user.'),
           'maxlength' => 3,
           'size' => CRM_Utils_Type::FOUR,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_recur.currency',
           'default' => NULL,
           'table_name' => 'civicrm_contribution_recur',
@@ -420,6 +444,12 @@ class CRM_Contribute_DAO_ContributionRecur extends CRM_Core_DAO {
           'description' => ts('Time units for recurrence of payment.'),
           'maxlength' => 8,
           'size' => CRM_Utils_Type::EIGHT,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_recur.frequency_unit',
           'default' => 'month',
           'table_name' => 'civicrm_contribution_recur',
@@ -442,6 +472,12 @@ class CRM_Contribute_DAO_ContributionRecur extends CRM_Core_DAO {
           'title' => ts('Interval (number of units)'),
           'description' => ts('Number of time units for recurrence of payment.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_recur.frequency_interval',
           'default' => '1',
           'table_name' => 'civicrm_contribution_recur',
@@ -458,6 +494,12 @@ class CRM_Contribute_DAO_ContributionRecur extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Number of Installments'),
           'description' => ts('Total number of payments to be made. Set this to 0 if this is an open-ended commitment i.e. no set end date.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_recur.installments',
           'table_name' => 'civicrm_contribution_recur',
           'entity' => 'ContributionRecur',
@@ -474,6 +516,12 @@ class CRM_Contribute_DAO_ContributionRecur extends CRM_Core_DAO {
           'title' => ts('Start Date'),
           'description' => ts('The date the first scheduled recurring contribution occurs.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_recur.start_date',
           'default' => 'CURRENT_TIMESTAMP',
           'table_name' => 'civicrm_contribution_recur',
@@ -493,6 +541,12 @@ class CRM_Contribute_DAO_ContributionRecur extends CRM_Core_DAO {
           'title' => ts('Created Date'),
           'description' => ts('When this recurring contribution record was created.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_recur.create_date',
           'default' => 'CURRENT_TIMESTAMP',
           'table_name' => 'civicrm_contribution_recur',
@@ -511,6 +565,12 @@ class CRM_Contribute_DAO_ContributionRecur extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TIMESTAMP,
           'title' => ts('Modified Date'),
           'description' => ts('Last updated date for this record. mostly the last time a payment was received'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_recur.modified_date',
           'default' => 'CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP',
           'table_name' => 'civicrm_contribution_recur',
@@ -530,6 +590,12 @@ class CRM_Contribute_DAO_ContributionRecur extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME,
           'title' => ts('Cancel Date'),
           'description' => ts('Date this recurring contribution was cancelled by contributor- if we can get access to it'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_recur.cancel_date',
           'table_name' => 'civicrm_contribution_recur',
           'entity' => 'ContributionRecur',
@@ -547,6 +613,12 @@ class CRM_Contribute_DAO_ContributionRecur extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Cancellation Reason'),
           'description' => ts('Free text field for a reason for cancelling'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_recur.cancel_reason',
           'table_name' => 'civicrm_contribution_recur',
           'entity' => 'ContributionRecur',
@@ -563,6 +635,12 @@ class CRM_Contribute_DAO_ContributionRecur extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME,
           'title' => ts('Recurring Contribution End Date'),
           'description' => ts('Date this recurring contribution finished successfully'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_recur.end_date',
           'table_name' => 'civicrm_contribution_recur',
           'entity' => 'ContributionRecur',
@@ -582,6 +660,12 @@ class CRM_Contribute_DAO_ContributionRecur extends CRM_Core_DAO {
           'description' => ts('Possibly needed to store a unique identifier for this recurring payment order - if this is available from the processor??'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_recur.processor_id',
           'table_name' => 'civicrm_contribution_recur',
           'entity' => 'ContributionRecur',
@@ -597,6 +681,12 @@ class CRM_Contribute_DAO_ContributionRecur extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Payment Token ID'),
           'description' => ts('Optionally used to store a link to a payment token used for this recurring contribution.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_recur.payment_token_id',
           'table_name' => 'civicrm_contribution_recur',
           'entity' => 'ContributionRecur',
@@ -615,6 +705,12 @@ class CRM_Contribute_DAO_ContributionRecur extends CRM_Core_DAO {
           'description' => ts('unique transaction id (deprecated - use processor_id)'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_recur.trxn_id',
           'table_name' => 'civicrm_contribution_recur',
           'entity' => 'ContributionRecur',
@@ -632,6 +728,12 @@ class CRM_Contribute_DAO_ContributionRecur extends CRM_Core_DAO {
           'description' => ts('unique invoice id, system generated or passed in'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_recur.invoice_id',
           'table_name' => 'civicrm_contribution_recur',
           'entity' => 'ContributionRecur',
@@ -646,6 +748,12 @@ class CRM_Contribute_DAO_ContributionRecur extends CRM_Core_DAO {
           'name' => 'contribution_status_id',
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Status'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contribution_recur.contribution_status_id',
           'export' => TRUE,
@@ -668,6 +776,12 @@ class CRM_Contribute_DAO_ContributionRecur extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_BOOLEAN,
           'title' => ts('Test'),
           'required' => TRUE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contribution_recur.is_test',
           'export' => TRUE,
@@ -687,6 +801,12 @@ class CRM_Contribute_DAO_ContributionRecur extends CRM_Core_DAO {
           'title' => ts('Cycle Day'),
           'description' => ts('Day in the period when the payment should be charged e.g. 1st of month, 15th etc.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_recur.cycle_day',
           'default' => '1',
           'table_name' => 'civicrm_contribution_recur',
@@ -703,6 +823,12 @@ class CRM_Contribute_DAO_ContributionRecur extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME,
           'title' => ts('Next Scheduled Contribution Date'),
           'description' => ts('Next scheduled date'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_recur.next_sched_contribution_date',
           'table_name' => 'civicrm_contribution_recur',
           'entity' => 'ContributionRecur',
@@ -720,6 +846,12 @@ class CRM_Contribute_DAO_ContributionRecur extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Number of Failures'),
           'description' => ts('Number of failed charge attempts since last success. Business rule could be set to deactivate on more than x failures.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_recur.failure_count',
           'default' => '0',
           'table_name' => 'civicrm_contribution_recur',
@@ -736,6 +868,12 @@ class CRM_Contribute_DAO_ContributionRecur extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME,
           'title' => ts('Retry Failed Attempt Date'),
           'description' => ts('Date to retry failed attempt'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_recur.failure_retry_date',
           'table_name' => 'civicrm_contribution_recur',
           'entity' => 'ContributionRecur',
@@ -754,6 +892,12 @@ class CRM_Contribute_DAO_ContributionRecur extends CRM_Core_DAO {
           'title' => ts('Auto Renew'),
           'description' => ts('Some systems allow contributor to set a number of installments - but then auto-renew the subscription or commitment if they do not cancel.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_recur.auto_renew',
           'default' => '0',
           'table_name' => 'civicrm_contribution_recur',
@@ -770,6 +914,12 @@ class CRM_Contribute_DAO_ContributionRecur extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Payment Processor ID'),
           'description' => ts('Foreign key to civicrm_payment_processor.id'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_recur.payment_processor_id',
           'table_name' => 'civicrm_contribution_recur',
           'entity' => 'ContributionRecur',
@@ -792,8 +942,13 @@ class CRM_Contribute_DAO_ContributionRecur extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Financial Type ID'),
           'description' => ts('FK to Financial Type'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_recur.financial_type_id',
-          'export' => FALSE,
           'table_name' => 'civicrm_contribution_recur',
           'entity' => 'ContributionRecur',
           'bao' => 'CRM_Contribute_BAO_ContributionRecur',
@@ -815,6 +970,12 @@ class CRM_Contribute_DAO_ContributionRecur extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Payment Method'),
           'description' => ts('FK to Payment Instrument'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_recur.payment_instrument_id',
           'table_name' => 'civicrm_contribution_recur',
           'entity' => 'ContributionRecur',
@@ -834,6 +995,12 @@ class CRM_Contribute_DAO_ContributionRecur extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Campaign ID'),
           'description' => ts('The campaign for which this contribution has been triggered.'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contribution_recur.campaign_id',
           'export' => TRUE,
@@ -861,6 +1028,12 @@ class CRM_Contribute_DAO_ContributionRecur extends CRM_Core_DAO {
           'title' => ts('Send email Receipt?'),
           'description' => ts('if true, receipt is automatically emailed to contact on each successful payment'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_recur.is_email_receipt',
           'default' => '1',
           'table_name' => 'civicrm_contribution_recur',
diff --git a/civicrm/CRM/Contribute/DAO/ContributionSoft.php b/civicrm/CRM/Contribute/DAO/ContributionSoft.php
index a6b14055e2a8b931dac8f9a4904774f1a651d4b6..2c08459852515bce19e62bac75451079835a9ede 100644
--- a/civicrm/CRM/Contribute/DAO/ContributionSoft.php
+++ b/civicrm/CRM/Contribute/DAO/ContributionSoft.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Contribute/ContributionSoft.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:f5efcd2fc648f295e9c9f8ce6dbc5994)
+ * (GenCodeChecksum:e51d55bf4217e9a9a49be631ff630366)
  */
 
 /**
@@ -164,6 +164,12 @@ class CRM_Contribute_DAO_ContributionSoft extends CRM_Core_DAO {
           'title' => ts('Soft Credit ID'),
           'description' => ts('Soft Credit ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contribution_soft.id',
           'export' => TRUE,
@@ -183,6 +189,12 @@ class CRM_Contribute_DAO_ContributionSoft extends CRM_Core_DAO {
           'title' => ts('Contribution ID'),
           'description' => ts('FK to contribution table.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_soft.contribution_id',
           'table_name' => 'civicrm_contribution_soft',
           'entity' => 'ContributionSoft',
@@ -200,6 +212,12 @@ class CRM_Contribute_DAO_ContributionSoft extends CRM_Core_DAO {
           'title' => ts('Contact ID'),
           'description' => ts('FK to Contact ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contribution_soft.contact_id',
           'headerPattern' => '/contact(.?id)?/i',
@@ -225,6 +243,12 @@ class CRM_Contribute_DAO_ContributionSoft extends CRM_Core_DAO {
             20,
             2,
           ],
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_contribution_soft.amount',
           'headerPattern' => '/total(.?am(ou)?nt)?/i',
@@ -243,6 +267,12 @@ class CRM_Contribute_DAO_ContributionSoft extends CRM_Core_DAO {
           'description' => ts('3 character string, value from config setting or input via user.'),
           'maxlength' => 3,
           'size' => CRM_Utils_Type::FOUR,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_soft.currency',
           'default' => NULL,
           'table_name' => 'civicrm_contribution_soft',
@@ -266,6 +296,12 @@ class CRM_Contribute_DAO_ContributionSoft extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('PCP ID'),
           'description' => ts('FK to civicrm_pcp.id'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_soft.pcp_id',
           'default' => NULL,
           'table_name' => 'civicrm_contribution_soft',
@@ -288,6 +324,12 @@ class CRM_Contribute_DAO_ContributionSoft extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_BOOLEAN,
           'title' => ts('Soft Contribution Display on PCP'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_soft.pcp_display_in_roll',
           'default' => '0',
           'table_name' => 'civicrm_contribution_soft',
@@ -302,6 +344,12 @@ class CRM_Contribute_DAO_ContributionSoft extends CRM_Core_DAO {
           'title' => ts('Soft Contribution PCP Nickname'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_soft.pcp_roll_nickname',
           'default' => NULL,
           'table_name' => 'civicrm_contribution_soft',
@@ -316,6 +364,12 @@ class CRM_Contribute_DAO_ContributionSoft extends CRM_Core_DAO {
           'title' => ts('Soft Contribution PCP Note'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_soft.pcp_personal_note',
           'default' => NULL,
           'table_name' => 'civicrm_contribution_soft',
@@ -332,6 +386,12 @@ class CRM_Contribute_DAO_ContributionSoft extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Soft Credit Type'),
           'description' => ts('Soft Credit Type ID.Implicit FK to civicrm_option_value where option_group = soft_credit_type.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_soft.soft_credit_type_id',
           'default' => NULL,
           'table_name' => 'civicrm_contribution_soft',
diff --git a/civicrm/CRM/Contribute/DAO/Premium.php b/civicrm/CRM/Contribute/DAO/Premium.php
index 9084c436a7c92bc5fbd0a1b818e9a65c1a1b3b90..bf3b18a2fde4bfa1b686c32ae0f0c2fb7238ea14 100644
--- a/civicrm/CRM/Contribute/DAO/Premium.php
+++ b/civicrm/CRM/Contribute/DAO/Premium.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Contribute/Premium.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:b9ad8bd1ae2ab323070563a87ada3037)
+ * (GenCodeChecksum:adb794a4061201b488eb8149f61553d5)
  */
 
 /**
@@ -170,6 +170,12 @@ class CRM_Contribute_DAO_Premium extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Premium ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_premiums.id',
           'table_name' => 'civicrm_premiums',
           'entity' => 'Premium',
@@ -189,6 +195,12 @@ class CRM_Contribute_DAO_Premium extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_premiums.entity_table',
           'table_name' => 'civicrm_premiums',
           'entity' => 'Premium',
@@ -201,6 +213,12 @@ class CRM_Contribute_DAO_Premium extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Premium entity ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_premiums.entity_id',
           'table_name' => 'civicrm_premiums',
           'entity' => 'Premium',
@@ -214,6 +232,12 @@ class CRM_Contribute_DAO_Premium extends CRM_Core_DAO {
           'title' => ts('Is Premium Active?'),
           'description' => ts('Is the Premiums feature enabled for this page?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_premiums.premiums_active',
           'default' => '0',
           'table_name' => 'civicrm_premiums',
@@ -229,6 +253,12 @@ class CRM_Contribute_DAO_Premium extends CRM_Core_DAO {
           'description' => ts('Title for Premiums section.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_premiums.premiums_intro_title',
           'table_name' => 'civicrm_premiums',
           'entity' => 'Premium',
@@ -241,6 +271,12 @@ class CRM_Contribute_DAO_Premium extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Premium Introductory Text'),
           'description' => ts('Displayed in <div> at top of Premiums section of page. Text and HTML allowed.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_premiums.premiums_intro_text',
           'table_name' => 'civicrm_premiums',
           'entity' => 'Premium',
@@ -255,6 +291,12 @@ class CRM_Contribute_DAO_Premium extends CRM_Core_DAO {
           'description' => ts('This email address is included in receipts if it is populated and a premium has been selected.'),
           'maxlength' => 100,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_premiums.premiums_contact_email',
           'table_name' => 'civicrm_premiums',
           'entity' => 'Premium',
@@ -269,6 +311,12 @@ class CRM_Contribute_DAO_Premium extends CRM_Core_DAO {
           'description' => ts('This phone number is included in receipts if it is populated and a premium has been selected.'),
           'maxlength' => 50,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_premiums.premiums_contact_phone',
           'table_name' => 'civicrm_premiums',
           'entity' => 'Premium',
@@ -282,6 +330,12 @@ class CRM_Contribute_DAO_Premium extends CRM_Core_DAO {
           'title' => ts('Display Minimum Contribution?'),
           'description' => ts('Boolean. Should we automatically display minimum contribution amount text after the premium descriptions.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_premiums.premiums_display_min_contribution',
           'default' => '0',
           'table_name' => 'civicrm_premiums',
@@ -297,6 +351,12 @@ class CRM_Contribute_DAO_Premium extends CRM_Core_DAO {
           'description' => ts('Label displayed for No Thank-you option in premiums block (e.g. No thank you)'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_premiums.premiums_nothankyou_label',
           'table_name' => 'civicrm_premiums',
           'entity' => 'Premium',
@@ -308,6 +368,12 @@ class CRM_Contribute_DAO_Premium extends CRM_Core_DAO {
           'name' => 'premiums_nothankyou_position',
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('No Thank-you Position'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_premiums.premiums_nothankyou_position',
           'default' => '1',
           'table_name' => 'civicrm_premiums',
diff --git a/civicrm/CRM/Contribute/DAO/PremiumsProduct.php b/civicrm/CRM/Contribute/DAO/PremiumsProduct.php
index 84e4e2e41693212e82059da397d9bae533fde4d6..4b0ff8384e306c50d29bf11d15a715ebb58e6120 100644
--- a/civicrm/CRM/Contribute/DAO/PremiumsProduct.php
+++ b/civicrm/CRM/Contribute/DAO/PremiumsProduct.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Contribute/PremiumsProduct.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:d7eaac6f5bee5c01e31825ff68bf8a26)
+ * (GenCodeChecksum:01fc05143613e3855c45143ed3518bc5)
  */
 
 /**
@@ -123,6 +123,12 @@ class CRM_Contribute_DAO_PremiumsProduct extends CRM_Core_DAO {
           'title' => ts('Premium Product ID'),
           'description' => ts('Contribution ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_premiums_product.id',
           'table_name' => 'civicrm_premiums_product',
           'entity' => 'PremiumsProduct',
@@ -140,6 +146,12 @@ class CRM_Contribute_DAO_PremiumsProduct extends CRM_Core_DAO {
           'title' => ts('Premium ID'),
           'description' => ts('Foreign key to premiums settings record.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_premiums_product.premiums_id',
           'table_name' => 'civicrm_premiums_product',
           'entity' => 'PremiumsProduct',
@@ -157,6 +169,12 @@ class CRM_Contribute_DAO_PremiumsProduct extends CRM_Core_DAO {
           'title' => ts('Product ID'),
           'description' => ts('Foreign key to each product object.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_premiums_product.product_id',
           'table_name' => 'civicrm_premiums_product',
           'entity' => 'PremiumsProduct',
@@ -173,6 +191,12 @@ class CRM_Contribute_DAO_PremiumsProduct extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Order'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_premiums_product.weight',
           'table_name' => 'civicrm_premiums_product',
           'entity' => 'PremiumsProduct',
@@ -185,6 +209,12 @@ class CRM_Contribute_DAO_PremiumsProduct extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Financial Type ID'),
           'description' => ts('FK to Financial Type.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_premiums_product.financial_type_id',
           'default' => NULL,
           'table_name' => 'civicrm_premiums_product',
diff --git a/civicrm/CRM/Contribute/DAO/Product.php b/civicrm/CRM/Contribute/DAO/Product.php
index 042572c2b9443920a45621bc9b8afe4634030a29..460a15467cd32648627242b51add634882e0aac3 100644
--- a/civicrm/CRM/Contribute/DAO/Product.php
+++ b/civicrm/CRM/Contribute/DAO/Product.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Contribute/Product.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:f96bcd7024216cd8047a0b48d5872280)
+ * (GenCodeChecksum:b75121858ccfcc711d4904ed7f4ef6d1)
  */
 
 /**
@@ -252,6 +252,12 @@ class CRM_Contribute_DAO_Product extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Product ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_product.id',
           'table_name' => 'civicrm_product',
           'entity' => 'Product',
@@ -271,6 +277,12 @@ class CRM_Contribute_DAO_Product extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => TRUE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_product.name',
           'export' => TRUE,
           'table_name' => 'civicrm_product',
@@ -284,6 +296,12 @@ class CRM_Contribute_DAO_Product extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Description'),
           'description' => ts('Optional description of the product/premium.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_product.description',
           'table_name' => 'civicrm_product',
           'entity' => 'Product',
@@ -298,6 +316,12 @@ class CRM_Contribute_DAO_Product extends CRM_Core_DAO {
           'description' => ts('Optional product sku or code.'),
           'maxlength' => 50,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => TRUE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_product.sku',
           'export' => TRUE,
           'table_name' => 'civicrm_product',
@@ -311,6 +335,12 @@ class CRM_Contribute_DAO_Product extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Options'),
           'description' => ts('Store comma-delimited list of color, size, etc. options for the product.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_product.options',
           'table_name' => 'civicrm_product',
           'entity' => 'Product',
@@ -325,6 +355,12 @@ class CRM_Contribute_DAO_Product extends CRM_Core_DAO {
           'description' => ts('Full or relative URL to uploaded image - fullsize.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_product.image',
           'table_name' => 'civicrm_product',
           'entity' => 'Product',
@@ -339,6 +375,12 @@ class CRM_Contribute_DAO_Product extends CRM_Core_DAO {
           'description' => ts('Full or relative URL to image thumbnail.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_product.thumbnail',
           'table_name' => 'civicrm_product',
           'entity' => 'Product',
@@ -355,6 +397,12 @@ class CRM_Contribute_DAO_Product extends CRM_Core_DAO {
             20,
             2,
           ],
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_product.price',
           'table_name' => 'civicrm_product',
           'entity' => 'Product',
@@ -369,6 +417,12 @@ class CRM_Contribute_DAO_Product extends CRM_Core_DAO {
           'description' => ts('3 character string, value from config setting or input via user.'),
           'maxlength' => 3,
           'size' => CRM_Utils_Type::FOUR,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_product.currency',
           'default' => NULL,
           'table_name' => 'civicrm_product',
@@ -393,6 +447,12 @@ class CRM_Contribute_DAO_Product extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Financial Type ID'),
           'description' => ts('FK to Financial Type.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_product.financial_type_id',
           'default' => NULL,
           'table_name' => 'civicrm_product',
@@ -419,6 +479,12 @@ class CRM_Contribute_DAO_Product extends CRM_Core_DAO {
             20,
             2,
           ],
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_product.min_contribution',
           'table_name' => 'civicrm_product',
           'entity' => 'Product',
@@ -435,6 +501,12 @@ class CRM_Contribute_DAO_Product extends CRM_Core_DAO {
             20,
             2,
           ],
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_product.cost',
           'table_name' => 'civicrm_product',
           'entity' => 'Product',
@@ -448,6 +520,12 @@ class CRM_Contribute_DAO_Product extends CRM_Core_DAO {
           'title' => ts('Is Active'),
           'description' => ts('Disabling premium removes it from the premiums_premium join table below.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_product.is_active',
           'default' => '1',
           'table_name' => 'civicrm_product',
@@ -468,6 +546,12 @@ class CRM_Contribute_DAO_Product extends CRM_Core_DAO {
       (e.g. 1 year + fixed -> we would set start/end for 1/1/06 thru 12/31/06 for any premium chosen in 2006) '),
           'maxlength' => 8,
           'size' => CRM_Utils_Type::EIGHT,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_product.period_type',
           'default' => 'rolling',
           'table_name' => 'civicrm_product',
@@ -487,6 +571,12 @@ class CRM_Contribute_DAO_Product extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Fixed Period Start Day'),
           'description' => ts('Month and day (MMDD) that fixed period type subscription or membership starts.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_product.fixed_period_start_day',
           'default' => '0101',
           'table_name' => 'civicrm_product',
@@ -501,6 +591,12 @@ class CRM_Contribute_DAO_Product extends CRM_Core_DAO {
           'title' => ts('Duration Unit'),
           'maxlength' => 8,
           'size' => CRM_Utils_Type::EIGHT,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_product.duration_unit',
           'default' => 'year',
           'table_name' => 'civicrm_product',
@@ -520,6 +616,12 @@ class CRM_Contribute_DAO_Product extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Duration Interval'),
           'description' => ts('Number of units for total duration of subscription, service, membership (e.g. 12 Months).'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_product.duration_interval',
           'table_name' => 'civicrm_product',
           'entity' => 'Product',
@@ -534,6 +636,12 @@ class CRM_Contribute_DAO_Product extends CRM_Core_DAO {
           'description' => ts('Frequency unit and interval allow option to store actual delivery frequency for a subscription or service.'),
           'maxlength' => 8,
           'size' => CRM_Utils_Type::EIGHT,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_product.frequency_unit',
           'default' => 'month',
           'table_name' => 'civicrm_product',
@@ -553,6 +661,12 @@ class CRM_Contribute_DAO_Product extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Frequency Interval'),
           'description' => ts('Number of units for delivery frequency of subscription, service, membership (e.g. every 3 Months).'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_product.frequency_interval',
           'table_name' => 'civicrm_product',
           'entity' => 'Product',
diff --git a/civicrm/CRM/Contribute/DAO/Widget.php b/civicrm/CRM/Contribute/DAO/Widget.php
index 09151cf1726eac9f506b174f11f2e11162bf1261..7a4ca37edf66da3b9da1e96464d3c4e3824bedfb 100644
--- a/civicrm/CRM/Contribute/DAO/Widget.php
+++ b/civicrm/CRM/Contribute/DAO/Widget.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Contribute/Widget.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:7001d44be37f9d78263b115a257bd794)
+ * (GenCodeChecksum:3f38f90af537cdb630a2b0b09cd2c718)
  */
 
 /**
@@ -220,6 +220,12 @@ class CRM_Contribute_DAO_Widget extends CRM_Core_DAO {
           'title' => ts('Widget ID'),
           'description' => ts('Contribution ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_widget.id',
           'table_name' => 'civicrm_contribution_widget',
           'entity' => 'Widget',
@@ -236,6 +242,12 @@ class CRM_Contribute_DAO_Widget extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Contribution Page ID'),
           'description' => ts('The Contribution Page which triggered this contribution'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_widget.contribution_page_id',
           'table_name' => 'civicrm_contribution_widget',
           'entity' => 'Widget',
@@ -253,6 +265,12 @@ class CRM_Contribute_DAO_Widget extends CRM_Core_DAO {
           'title' => ts('Enabled?'),
           'description' => ts('Is this property active?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_widget.is_active',
           'default' => '1',
           'table_name' => 'civicrm_contribution_widget',
@@ -272,6 +290,12 @@ class CRM_Contribute_DAO_Widget extends CRM_Core_DAO {
           'description' => ts('Widget title.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_widget.title',
           'table_name' => 'civicrm_contribution_widget',
           'entity' => 'Widget',
@@ -286,6 +310,12 @@ class CRM_Contribute_DAO_Widget extends CRM_Core_DAO {
           'description' => ts('URL to Widget logo'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_widget.url_logo',
           'table_name' => 'civicrm_contribution_widget',
           'entity' => 'Widget',
@@ -300,6 +330,12 @@ class CRM_Contribute_DAO_Widget extends CRM_Core_DAO {
           'description' => ts('Button title.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_widget.button_title',
           'table_name' => 'civicrm_contribution_widget',
           'entity' => 'Widget',
@@ -312,6 +348,12 @@ class CRM_Contribute_DAO_Widget extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Description'),
           'description' => ts('About description.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_widget.about',
           'table_name' => 'civicrm_contribution_widget',
           'entity' => 'Widget',
@@ -326,6 +368,12 @@ class CRM_Contribute_DAO_Widget extends CRM_Core_DAO {
           'description' => ts('URL to Homepage.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_widget.url_homepage',
           'table_name' => 'civicrm_contribution_widget',
           'entity' => 'Widget',
@@ -339,6 +387,12 @@ class CRM_Contribute_DAO_Widget extends CRM_Core_DAO {
           'title' => ts('Title Color'),
           'maxlength' => 10,
           'size' => CRM_Utils_Type::TWELVE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_widget.color_title',
           'table_name' => 'civicrm_contribution_widget',
           'entity' => 'Widget',
@@ -352,6 +406,12 @@ class CRM_Contribute_DAO_Widget extends CRM_Core_DAO {
           'title' => ts('Button Color'),
           'maxlength' => 10,
           'size' => CRM_Utils_Type::TWELVE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_widget.color_button',
           'table_name' => 'civicrm_contribution_widget',
           'entity' => 'Widget',
@@ -365,6 +425,12 @@ class CRM_Contribute_DAO_Widget extends CRM_Core_DAO {
           'title' => ts('Bar Color'),
           'maxlength' => 10,
           'size' => CRM_Utils_Type::TWELVE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_widget.color_bar',
           'table_name' => 'civicrm_contribution_widget',
           'entity' => 'Widget',
@@ -378,6 +444,12 @@ class CRM_Contribute_DAO_Widget extends CRM_Core_DAO {
           'title' => ts('Main Text Color'),
           'maxlength' => 10,
           'size' => CRM_Utils_Type::TWELVE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_widget.color_main_text',
           'table_name' => 'civicrm_contribution_widget',
           'entity' => 'Widget',
@@ -391,6 +463,12 @@ class CRM_Contribute_DAO_Widget extends CRM_Core_DAO {
           'title' => ts('Main Color'),
           'maxlength' => 10,
           'size' => CRM_Utils_Type::TWELVE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_widget.color_main',
           'table_name' => 'civicrm_contribution_widget',
           'entity' => 'Widget',
@@ -404,6 +482,12 @@ class CRM_Contribute_DAO_Widget extends CRM_Core_DAO {
           'title' => ts('Background Color'),
           'maxlength' => 10,
           'size' => CRM_Utils_Type::TWELVE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_widget.color_main_bg',
           'table_name' => 'civicrm_contribution_widget',
           'entity' => 'Widget',
@@ -417,6 +501,12 @@ class CRM_Contribute_DAO_Widget extends CRM_Core_DAO {
           'title' => ts('Other Background Color'),
           'maxlength' => 10,
           'size' => CRM_Utils_Type::TWELVE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_widget.color_bg',
           'table_name' => 'civicrm_contribution_widget',
           'entity' => 'Widget',
@@ -430,6 +520,12 @@ class CRM_Contribute_DAO_Widget extends CRM_Core_DAO {
           'title' => ts('About Link Color'),
           'maxlength' => 10,
           'size' => CRM_Utils_Type::TWELVE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_widget.color_about_link',
           'table_name' => 'civicrm_contribution_widget',
           'entity' => 'Widget',
@@ -443,6 +539,12 @@ class CRM_Contribute_DAO_Widget extends CRM_Core_DAO {
           'title' => ts('Homepage Link Color'),
           'maxlength' => 10,
           'size' => CRM_Utils_Type::TWELVE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_contribution_widget.color_homepage_link',
           'table_name' => 'civicrm_contribution_widget',
           'entity' => 'Widget',
diff --git a/civicrm/CRM/Contribute/Form/Contribution/Confirm.php b/civicrm/CRM/Contribute/Form/Contribution/Confirm.php
index e93b6ae706bbc0eb5b88e356031065084f3a962a..1828aa6aa023e0bc9c311106a92a5b4238914a85 100644
--- a/civicrm/CRM/Contribute/Form/Contribution/Confirm.php
+++ b/civicrm/CRM/Contribute/Form/Contribution/Confirm.php
@@ -280,10 +280,6 @@ class CRM_Contribute_Form_Contribution_Confirm extends CRM_Contribute_Form_Contr
       $this->setFormAmountFields($this->_params['priceSetId']);
     }
 
-    if (!empty($this->get('tax_amount'))) {
-      CRM_Core_Error::deprecatedWarning('tax_amount should be not passed in');
-      $this->_params['tax_amount'] = $this->get('tax_amount');
-    }
     $this->_useForMember = $this->get('useForMember');
 
     CRM_Contribute_Form_AbstractEditPayment::formatCreditCardDetails($this->_params);
@@ -702,9 +698,9 @@ class CRM_Contribute_Form_Contribution_Confirm extends CRM_Contribute_Form_Contr
 
       if (!empty($membershipTypeIds)) {
         //set status message if wrong membershipType is included in membershipBlock
-        if (isset($this->_mid) && !$membershipPriceset) {
+        if ($this->getRenewalMembershipID() && !$membershipPriceset) {
           $membershipTypeID = CRM_Core_DAO::getFieldValue('CRM_Member_DAO_Membership',
-            $this->_mid,
+            $this->getRenewalMembershipID(),
             'membership_type_id'
           );
           if (!in_array($membershipTypeID, $membershipTypeIds)) {
diff --git a/civicrm/CRM/Contribute/Form/Contribution/Main.php b/civicrm/CRM/Contribute/Form/Contribution/Main.php
index d09ea9c2533d20c0b3ab9992a2c2cc7f22258495..9819e8276c08a261535ceaaf09498406a88a83a1 100644
--- a/civicrm/CRM/Contribute/Form/Contribution/Main.php
+++ b/civicrm/CRM/Contribute/Form/Contribution/Main.php
@@ -30,8 +30,6 @@ class CRM_Contribute_Form_Contribution_Main extends CRM_Contribute_Form_Contribu
 
   public $_membershipTypeValues;
 
-  public $_useForMember;
-
   /**
    * Array of payment related fields to potentially display on this form (generally credit card or debit card fields). This is rendered via billingBlock.tpl
    * @var array
@@ -237,7 +235,7 @@ class CRM_Contribute_Form_Contribution_Main extends CRM_Contribute_Form_Contribu
 
     $entityId = $memtypeID = NULL;
     if ($this->_priceSetId) {
-      if (($this->_useForMember && !empty($this->_currentMemberships)) || $this->_defaultMemTypeId) {
+      if (($this->isMembershipPriceSet() && !empty($this->_currentMemberships)) || $this->_defaultMemTypeId) {
         $selectedCurrentMemTypes = [];
         foreach ($this->_priceSet['fields'] as $key => $val) {
           foreach ($val['options'] as $keys => $values) {
@@ -357,24 +355,16 @@ class CRM_Contribute_Form_Contribution_Main extends CRM_Contribute_Form_Contribu
     }
 
     //build pledge block.
-    $this->_useForMember = 0;
     //don't build membership block when pledge_id is passed
     if (empty($this->_values['pledge_id']) && empty($this->_ccid)) {
       $this->_separateMembershipPayment = FALSE;
       if (CRM_Core_Component::isEnabled('CiviMember')) {
-
-        if ($this->_priceSetId &&
-          (CRM_Core_Component::getComponentID('CiviMember') == CRM_Utils_Array::value('extends', $this->_priceSet))
-        ) {
-          $this->_useForMember = 1;
-          $this->set('useForMember', $this->_useForMember);
-        }
-
         $this->_separateMembershipPayment = $this->buildMembershipBlock();
       }
       $this->set('separateMembershipPayment', $this->_separateMembershipPayment);
     }
-    $this->assign('useForMember', $this->_useForMember);
+
+    $this->assign('useForMember', (int) $this->isMembershipPriceSet());
     // If we configured price set for contribution page
     // we are not allow membership signup as well as any
     // other contribution amount field, CRM-5095
@@ -392,21 +382,13 @@ class CRM_Contribute_Form_Contribution_Main extends CRM_Contribute_Form_Contribu
       }
     }
 
-    if ($this->_priceSetId && empty($this->_ccid)) {
-      $is_quick_config = CRM_Core_DAO::getFieldValue('CRM_Price_DAO_PriceSet', $this->_priceSetId, 'is_quick_config');
-      if ($is_quick_config) {
-        $this->_useForMember = 0;
-        $this->set('useForMember', $this->_useForMember);
-      }
-    }
-
     //we allow premium for pledge during pledge creation only.
     if (empty($this->_values['pledge_id']) && empty($this->_ccid)) {
       CRM_Contribute_BAO_Premium::buildPremiumBlock($this, $this->_id, TRUE);
     }
 
     //don't build pledge block when mid is passed
-    if (!$this->_mid && empty($this->_ccid)) {
+    if (!$this->getRenewalMembershipID() && empty($this->_ccid)) {
       if (CRM_Core_Component::isEnabled('CiviPledge') && !empty($this->_values['pledge_block_id'])) {
         CRM_Pledge_BAO_PledgeBlock::buildPledgeBlock($this);
       }
@@ -530,7 +512,7 @@ class CRM_Contribute_Form_Contribution_Main extends CRM_Contribute_Form_Contribu
       $this->_currentMemberships = [];
 
       $membershipTypeIds = $membershipTypes = $radio = $radioOptAttrs = [];
-      $membershipPriceset = (!empty($this->_priceSetId) && $this->_useForMember);
+      $membershipPriceset = (!empty($this->_priceSetId) && $this->isMembershipPriceSet());
 
       $allowAutoRenewMembership = $autoRenewOption = FALSE;
       $autoRenewMembershipTypeOptions = [];
@@ -556,9 +538,9 @@ class CRM_Contribute_Form_Contribution_Main extends CRM_Contribute_Form_Contribu
 
       if (!empty($membershipTypeIds)) {
         //set status message if wrong membershipType is included in membershipBlock
-        if (isset($this->_mid) && !$membershipPriceset) {
+        if ($this->getRenewalMembershipID() && !$membershipPriceset) {
           $membershipTypeID = CRM_Core_DAO::getFieldValue('CRM_Member_DAO_Membership',
-            $this->_mid,
+            $this->getRenewalMembershipID(),
             'membership_type_id'
           );
           if (!in_array($membershipTypeID, $membershipTypeIds)) {
@@ -899,7 +881,7 @@ class CRM_Contribute_Form_Contribution_Main extends CRM_Contribute_Form_Contribu
         $errors["price_{$otherAmount}"] = ts('Amount is required field.');
       }
 
-      if ($self->_useForMember == 1 && !empty($check) && $membershipIsActive) {
+      if ($self->isMembershipPriceSet() && !empty($check) && $membershipIsActive) {
         $priceFieldIDS = [];
         $priceFieldMemTypes = [];
 
@@ -1433,7 +1415,6 @@ class CRM_Contribute_Form_Contribution_Main extends CRM_Contribute_Form_Contribu
     }
 
     if ($taxAmount = CRM_Core_DAO::getFieldValue('CRM_Contribute_DAO_Contribution', $this->_ccid, 'tax_amount')) {
-      $this->set('tax_amount', $taxAmount);
       $this->assign('taxAmount', $taxAmount);
     }
 
diff --git a/civicrm/CRM/Contribute/Form/Contribution/ThankYou.php b/civicrm/CRM/Contribute/Form/Contribution/ThankYou.php
index c5a510f6210adbe9feeb600482d58e9ec96ae062..aa93b81f66d778567fb6d9cdd4544492831327b3 100644
--- a/civicrm/CRM/Contribute/Form/Contribution/ThankYou.php
+++ b/civicrm/CRM/Contribute/Form/Contribution/ThankYou.php
@@ -335,9 +335,9 @@ class CRM_Contribute_Form_Contribution_ThankYou extends CRM_Contribute_Form_Cont
 
       if (!empty($membershipTypeIds)) {
         //set status message if wrong membershipType is included in membershipBlock
-        if (isset($this->_mid) && !$membershipPriceset) {
+        if ($this->getRenewalMembershipID() && !$membershipPriceset) {
           $membershipTypeID = CRM_Core_DAO::getFieldValue('CRM_Member_DAO_Membership',
-            $this->_mid,
+            $this->getRenewalMembershipID(),
             'membership_type_id'
           );
           if (!in_array($membershipTypeID, $membershipTypeIds)) {
diff --git a/civicrm/CRM/Contribute/Form/ContributionBase.php b/civicrm/CRM/Contribute/Form/ContributionBase.php
index 6b3b3b99f49ab72774ac3af128cdfc58cd612b46..8ea9c95123aa736cc032e203cfaeba0a4f62815a 100644
--- a/civicrm/CRM/Contribute/Form/ContributionBase.php
+++ b/civicrm/CRM/Contribute/Form/ContributionBase.php
@@ -59,6 +59,13 @@ class CRM_Contribute_Form_ContributionBase extends CRM_Core_Form {
 
   public $_paymentObject = NULL;
 
+  /**
+   * Order object, used to calculate amounts, line items etc.
+   *
+   * @var \CRM_Financial_BAO_Order
+   */
+  protected $order;
+
   /**
    * The membership block for this page
    *
@@ -218,12 +225,44 @@ class CRM_Contribute_Form_ContributionBase extends CRM_Core_Form {
    */
   public $_ccid;
 
+  /**
+   * ID of a membership to be renewed (pass in by url)
+   *
+   * @var int
+   */
+  protected $renewalMembershipID;
+
   /**
    * Is the price set quick config.
+   *
    * @return bool
    */
-  public function isQuickConfig() {
-    return self::$_quickConfig ?? FALSE;
+  public function isQuickConfig(): bool {
+    return $this->getPriceSetID() && CRM_Price_BAO_PriceSet::isQuickConfig($this->getPriceSetID());
+  }
+
+  /**
+   * Get the price set for the contribution page.
+   *
+   * Note that we use the `get` from the form as a legacy method but
+   * ideally we would just load from the BAO method & not pass using the
+   * form. It does not confer meaningful performance benefits & adds confusion.
+   *
+   * Out of caution we still allow `get`, `set` to take precedence.
+   *
+   * @return int|null
+   */
+  public function getPriceSetID(): ?int {
+    if ($this->_priceSetId === NULL) {
+      if ($this->get('priceSetId')) {
+        $this->_priceSetId = $this->get('priceSetId');
+      }
+      else {
+        $this->_priceSetId = CRM_Price_BAO_PriceSet::getFor('civicrm_contribution_page', $this->_id);
+      }
+      $this->set('priceSetId', $this->_priceSetId);
+    }
+    return $this->_priceSetId ?: NULL;
   }
 
   /**
@@ -248,48 +287,48 @@ class CRM_Contribute_Form_ContributionBase extends CRM_Core_Form {
     $this->_userID = CRM_Core_Session::getLoggedInContactID();
 
     $this->_contactID = $this->_membershipContactID = $this->getContactID();
-    $this->_mid = NULL;
-    if ($this->_contactID) {
-      $this->_mid = CRM_Utils_Request::retrieve('mid', 'Positive', $this);
-      if ($this->_mid) {
-        $membership = new CRM_Member_DAO_Membership();
-        $membership->id = $this->_mid;
-
-        if ($membership->find(TRUE)) {
-          $this->_defaultMemTypeId = $membership->membership_type_id;
-          if ($membership->contact_id != $this->_contactID) {
-            $validMembership = FALSE;
-            $organizations = CRM_Contact_BAO_Relationship::getPermissionedContacts($this->_userID, NULL, NULL, 'Organization');
-            if (!empty($organizations) && array_key_exists($membership->contact_id, $organizations)) {
-              $this->_membershipContactID = $membership->contact_id;
-              $this->assign('membershipContactID', $this->_membershipContactID);
-              $this->assign('membershipContactName', $organizations[$this->_membershipContactID]['name']);
-              $validMembership = TRUE;
-            }
-            else {
-              $membershipType = new CRM_Member_BAO_MembershipType();
-              $membershipType->id = $membership->membership_type_id;
-              if ($membershipType->find(TRUE)) {
-                // CRM-14051 - membership_type.relationship_type_id is a CTRL-A padded string w one or more ID values.
-                // Convert to comma separated list.
-                $inheritedRelTypes = implode(CRM_Utils_Array::explodePadded($membershipType->relationship_type_id), ',');
-                $permContacts = CRM_Contact_BAO_Relationship::getPermissionedContacts($this->_userID, $membershipType->relationship_type_id);
-                if (array_key_exists($membership->contact_id, $permContacts)) {
-                  $this->_membershipContactID = $membership->contact_id;
-                  $validMembership = TRUE;
-                }
+    $this->getRenewalMembershipID();
+
+    // @todo - this mid needs to go - just making sure references are updated first.
+    $this->_mid = $this->getRenewalMembershipID();
+    if ($this->getRenewalMembershipID()) {
+      $membership = new CRM_Member_DAO_Membership();
+      $membership->id = $this->getRenewalMembershipID();
+
+      if ($membership->find(TRUE)) {
+        $this->_defaultMemTypeId = $membership->membership_type_id;
+        if ($membership->contact_id != $this->_contactID) {
+          $validMembership = FALSE;
+          $organizations = CRM_Contact_BAO_Relationship::getPermissionedContacts($this->_userID, NULL, NULL, 'Organization');
+          if (!empty($organizations) && array_key_exists($membership->contact_id, $organizations)) {
+            $this->_membershipContactID = $membership->contact_id;
+            $this->assign('membershipContactID', $this->_membershipContactID);
+            $this->assign('membershipContactName', $organizations[$this->_membershipContactID]['name']);
+            $validMembership = TRUE;
+          }
+          else {
+            $membershipType = new CRM_Member_BAO_MembershipType();
+            $membershipType->id = $membership->membership_type_id;
+            if ($membershipType->find(TRUE)) {
+              // CRM-14051 - membership_type.relationship_type_id is a CTRL-A padded string w one or more ID values.
+              // Convert to comma separated list.
+              $inheritedRelTypes = implode(CRM_Utils_Array::explodePadded($membershipType->relationship_type_id), ',');
+              $permContacts = CRM_Contact_BAO_Relationship::getPermissionedContacts($this->_userID, $membershipType->relationship_type_id);
+              if (array_key_exists($membership->contact_id, $permContacts)) {
+                $this->_membershipContactID = $membership->contact_id;
+                $validMembership = TRUE;
               }
             }
-            if (!$validMembership) {
-              CRM_Core_Session::setStatus(ts("Oops. The membership you're trying to renew appears to be invalid. Contact your site administrator if you need assistance. If you continue, you will be issued a new membership."), ts('Membership Invalid'), 'alert');
-            }
+          }
+          if (!$validMembership) {
+            CRM_Core_Session::setStatus(ts("Oops. The membership you're trying to renew appears to be invalid. Contact your site administrator if you need assistance. If you continue, you will be issued a new membership."), ts('Membership Invalid'), 'alert');
           }
         }
-        else {
-          CRM_Core_Session::setStatus(ts("Oops. The membership you're trying to renew appears to be invalid. Contact your site administrator if you need assistance. If you continue, you will be issued a new membership."), ts('Membership Invalid'), 'alert');
-        }
-        unset($membership);
       }
+      else {
+        CRM_Core_Session::setStatus(ts("Oops. The membership you're trying to renew appears to be invalid. Contact your site administrator if you need assistance. If you continue, you will be issued a new membership."), ts('Membership Invalid'), 'alert');
+      }
+      unset($membership);
     }
 
     // we do not want to display recently viewed items, so turn off
@@ -307,7 +346,12 @@ class CRM_Contribute_Form_ContributionBase extends CRM_Core_Form {
     $this->_bltID = $this->get('bltID');
     $this->_paymentProcessor = $this->get('paymentProcessor');
 
-    $this->_priceSetId = $this->get('priceSetId');
+    // In tests price set id is not always set - it is unclear if this is just
+    // poor test set up or it is possible in 'the real world'
+    if ($this->getPriceSetID()) {
+      $this->order = new CRM_Financial_BAO_Order();
+      $this->order->setPriceSetID($this->getPriceSetID());
+    }
     $this->_priceSet = $this->get('priceSet');
 
     if (!$this->_values) {
@@ -360,7 +404,7 @@ class CRM_Contribute_Form_ContributionBase extends CRM_Core_Form {
       ));
 
       $this->assignPaymentProcessor($isPayLater);
-
+      $this->assign('quickConfig', $this->isQuickConfig());
       // get price info
       // CRM-5095
       $this->initSet($this);
@@ -431,7 +475,7 @@ class CRM_Contribute_Form_ContributionBase extends CRM_Core_Form {
     // @todo - move this check to `getMembershipBlock`
     if (!$this->isFormSupportsNonMembershipContributions() &&
       !$this->_membershipBlock['is_active'] &&
-      !$this->_priceSetId
+      !$this->getPriceSetID()
     ) {
       CRM_Core_Error::statusBounce(ts('The requested online contribution page is missing a required Contribution Amount section or Membership section or Price Set. Please check with the site administrator for assistance.'));
     }
@@ -488,13 +532,7 @@ class CRM_Contribute_Form_ContributionBase extends CRM_Core_Form {
    * @todo - removed unneeded code from previously-shared function
    */
   private function initSet($form) {
-    $priceSetId = CRM_Price_BAO_PriceSet::getFor('civicrm_contribution_page', $this->_id);
-    //check if price set is is_config
-    if (is_numeric($priceSetId)) {
-      if (CRM_Core_DAO::getFieldValue('CRM_Price_DAO_PriceSet', $priceSetId, 'is_quick_config') && $form->getVar('_name') != 'Participant') {
-        $form->assign('quickConfig', 1);
-      }
-    }
+    $priceSetId = $this->getPriceSetID();
     // get price info
     if ($priceSetId) {
       if ($form->_action & CRM_Core_Action::UPDATE) {
@@ -505,12 +543,9 @@ class CRM_Contribute_Form_ContributionBase extends CRM_Core_Form {
         $required = TRUE;
       }
 
-      $form->_priceSetId = $priceSetId;
       $priceSet = CRM_Price_BAO_PriceSet::getSetDetail($priceSetId, $required);
       $form->_priceSet = $priceSet[$priceSetId] ?? NULL;
       $form->_values['fee'] = $form->_priceSet['fields'] ?? NULL;
-
-      $form->set('priceSetId', $form->_priceSetId);
       $form->set('priceSet', $form->_priceSet);
     }
   }
@@ -1131,7 +1166,7 @@ class CRM_Contribute_Form_ContributionBase extends CRM_Core_Form {
     // Check if membership the selected membership is automatically opted into auto renew or give user the option.
     // In the 2nd case we check that the user has in deed opted in (auto renew as at June 22 is the field name for the membership auto renew checkbox)
     // Also check that the payment Processor used can support recurring contributions.
-    $membershipTypes = CRM_Price_BAO_PriceSet::getMembershipTypesFromPriceSet($this->_priceSetId);
+    $membershipTypes = CRM_Price_BAO_PriceSet::getMembershipTypesFromPriceSet($this->getPriceSetID());
     if (in_array($selectedMembershipTypeID, $membershipTypes['autorenew_required'])
       || (in_array($selectedMembershipTypeID, $membershipTypes['autorenew_optional']) &&
         !empty($this->_params['auto_renew']))
@@ -1262,6 +1297,26 @@ class CRM_Contribute_Form_ContributionBase extends CRM_Core_Form {
     return $this->_membershipBlock;
   }
 
+  /**
+   * Is a (non-quick-config) membership price set in use.
+   *
+   * @return bool
+   */
+  protected function isMembershipPriceSet(): bool {
+    if ($this->_useForMember === NULL) {
+      if (CRM_Core_Component::isEnabled('CiviMember') &&
+        (!$this->isQuickConfig() || !empty($this->_ccid)) &&
+        (int) CRM_Core_Component::getComponentID('CiviMember') === (int) $this->order->getPriceSetMetadata()['extends']) {
+        $this->_useForMember = 1;
+      }
+      else {
+        $this->_useForMember = 0;
+      }
+      $this->set('useForMember', $this->_useForMember);
+    }
+    return (bool) $this->_useForMember;
+  }
+
   /**
    * Is the contribution page configured for 2 payments, one being membership & one not.
    *
@@ -1271,4 +1326,22 @@ class CRM_Contribute_Form_ContributionBase extends CRM_Core_Form {
     return $this->getMembershipBlock() && $this->getMembershipBlock()['is_separate_payment'];
   }
 
+  /**
+   * Get the id of the membership the contact is trying to renew.
+   *
+   * @return bool|int
+   * @throws \CRM_Core_Exception
+   */
+  protected function getRenewalMembershipID() {
+    if ($this->renewalMembershipID === NULL) {
+      if (!$this->getContactID()) {
+        $this->renewalMembershipID = FALSE;
+      }
+      else {
+        $this->renewalMembershipID = CRM_Utils_Request::retrieve('mid', 'Positive', $this) ?: FALSE;
+      }
+    }
+    return $this->renewalMembershipID ?: FALSE;
+  }
+
 }
diff --git a/civicrm/CRM/Contribute/Form/ContributionRecur.php b/civicrm/CRM/Contribute/Form/ContributionRecur.php
index ccf86182b1953dadbd83ecbb68d0397ccc605e76..7402e94cad2bf0f027d76c9daeaa39c0a650df14 100644
--- a/civicrm/CRM/Contribute/Form/ContributionRecur.php
+++ b/civicrm/CRM/Contribute/Form/ContributionRecur.php
@@ -69,21 +69,6 @@ class CRM_Contribute_Form_ContributionRecur extends CRM_Core_Form {
    */
   public $_paymentProcessor = [];
 
-  /**
-   * Fields for the entity to be assigned to the template.
-   *
-   * Fields may have keys
-   *  - name (required to show in tpl from the array)
-   *  - description (optional, will appear below the field)
-   *  - not-auto-addable - this class will not attempt to add the field using addField.
-   *    (this will be automatically set if the field does not have html in it's metadata
-   *    or is not a core field on the form's entity).
-   *  - help (option) add help to the field - e.g ['id' => 'id-source', 'file' => 'CRM/Contact/Form/Contact']]
-   *  - template - use a field specific template to render this field
-   * @var array
-   */
-  protected $entityFields = [];
-
   /**
    * Details of the subscription (recurring contribution) to be altered.
    *
diff --git a/civicrm/CRM/Contribute/Form/ManagePremiums.php b/civicrm/CRM/Contribute/Form/ManagePremiums.php
index ab930809a85b3def1f096f032f4c926c1b145127..965c67f4ae379505e99ed9fae505fe2f166f3a72 100644
--- a/civicrm/CRM/Contribute/Form/ManagePremiums.php
+++ b/civicrm/CRM/Contribute/Form/ManagePremiums.php
@@ -259,7 +259,7 @@ class CRM_Contribute_Form_ManagePremiums extends CRM_Contribute_Form {
     // If deleting, then only delete and skip the rest of the post-processing
     if ($this->_action & CRM_Core_Action::DELETE) {
       try {
-        CRM_Contribute_BAO_Product::del($this->_id);
+        CRM_Contribute_BAO_Product::deleteRecord(['id' => $this->_id]);
       }
       catch (CRM_Core_Exception $e) {
         $message = ts("This Premium is linked to an <a href='%1'>Online Contribution page</a>. Please remove it before deleting this Premium.", [1 => CRM_Utils_System::url('civicrm/admin/contribute', 'reset=1')]);
diff --git a/civicrm/CRM/Contribute/Form/SoftCredit.php b/civicrm/CRM/Contribute/Form/SoftCredit.php
index 648235a5d7272050c6501dc4c80448867820a13b..5ec45a8ba755fdaaa0768b8b26a4e7a7228e44cc 100644
--- a/civicrm/CRM/Contribute/Form/SoftCredit.php
+++ b/civicrm/CRM/Contribute/Form/SoftCredit.php
@@ -108,16 +108,15 @@ class CRM_Contribute_Form_SoftCredit {
   /**
    * Add PCP fields for the new contribution form and others.
    *
-   * @param CRM_Core_Form &$form
+   * @param CRM_Core_Form $form
    *   The form being built.
    * @param string $suffix
    *   A suffix to add to field names.
    */
-  public static function addPCPFields(&$form, $suffix = '') {
+  public static function addPCPFields($form, $suffix = '') {
     // CRM-7368 allow user to set or edit PCP link for contributions
     $siteHasPCPs = CRM_Contribute_PseudoConstant::pcPage();
     if (!CRM_Utils_Array::crmIsEmptyArray($siteHasPCPs)) {
-      $form->assign('siteHasPCPs', 1);
       // Fixme: Not a true entityRef field. Relies on PCP.js.tpl
       $form->add('text', "pcp_made_through_id$suffix", ts('Credit to a Personal Campaign Page'), ['class' => 'twenty', 'placeholder' => ts('- select -')]);
       // stores the label
diff --git a/civicrm/CRM/Contribute/Form/Task/PDFLetter.php b/civicrm/CRM/Contribute/Form/Task/PDFLetter.php
index 63afe986a4d33cb98896093b09408966ae510d7f..833bc44be9a455eb38a604d20932e965804d317f 100644
--- a/civicrm/CRM/Contribute/Form/Task/PDFLetter.php
+++ b/civicrm/CRM/Contribute/Form/Task/PDFLetter.php
@@ -39,7 +39,6 @@ class CRM_Contribute_Form_Task_PDFLetter extends CRM_Contribute_Form_Task {
    * Build all the data structures needed to build the form.
    */
   public function preProcess() {
-    $this->skipOnHold = $this->skipDeceased = FALSE;
     $this->preProcessPDF();
     parent::preProcess();
     $this->assign('single', $this->isSingle());
@@ -168,7 +167,6 @@ class CRM_Contribute_Form_Task_PDFLetter extends CRM_Contribute_Form_Task {
     $nowDate = date('YmdHis');
     $receipts = $thanks = $emailed = 0;
     $updateStatus = '';
-    $task = 'CRM_Contribution_Form_Task_PDFLetterCommon';
     $realSeparator = ', ';
     $tableSeparators = [
       'td' => '</td><td>',
@@ -188,9 +186,6 @@ class CRM_Contribute_Form_Task_PDFLetter extends CRM_Contribute_Form_Task {
     $separator = '****~~~~';
     $groupBy = $this->getSubmittedValue('group_by');
 
-    // skip some contacts ?
-    $skipOnHold = $this->skipOnHold ?? FALSE;
-    $skipDeceased = $this->skipDeceased ?? TRUE;
     $contributionIDs = $this->getIDs();
     if ($this->isQueryIncludesSoftCredits()) {
       $contributionIDs = [];
@@ -200,7 +195,7 @@ class CRM_Contribute_Form_Task_PDFLetter extends CRM_Contribute_Form_Task {
         $contributionIDs["{$result->contact_id}-{$result->contribution_id}"] = $result->contribution_id;
       }
     }
-    [$contributions, $contacts] = $this->buildContributionArray($groupBy, $contributionIDs, $returnProperties, $skipOnHold, $skipDeceased, $messageToken, $task, $separator, $this->isQueryIncludesSoftCredits());
+    [$contributions, $contacts] = $this->buildContributionArray($groupBy, $contributionIDs, $returnProperties, $messageToken, $separator, $this->isQueryIncludesSoftCredits());
     $html = [];
     $contactHtml = $emailedHtml = [];
     foreach ($contributions as $contributionId => $contribution) {
@@ -307,17 +302,14 @@ class CRM_Contribute_Form_Task_PDFLetter extends CRM_Contribute_Form_Task {
    * @param string $groupBy
    * @param array $contributionIDs
    * @param array $returnProperties
-   * @param bool $skipOnHold
-   * @param bool $skipDeceased
    * @param array $messageToken
-   * @param string $task
    * @param string $separator
    * @param bool $isIncludeSoftCredits
    *
    * @return array
    * @throws \CRM_Core_Exception
    */
-  public function buildContributionArray($groupBy, $contributionIDs, $returnProperties, $skipOnHold, $skipDeceased, $messageToken, $task, $separator, $isIncludeSoftCredits) {
+  public function buildContributionArray($groupBy, $contributionIDs, $returnProperties, $messageToken, $separator, $isIncludeSoftCredits) {
     $contributions = $contacts = [];
     foreach ($contributionIDs as $item => $contributionId) {
       $contribution = CRM_Contribute_BAO_Contribution::getContributionTokenValues($contributionId, $messageToken)['values'][$contributionId];
diff --git a/civicrm/CRM/Contribute/Import/Form/DataSource.php b/civicrm/CRM/Contribute/Import/Form/DataSource.php
index 41d9e8e80e8a63650955d300157a043fd7362538..93b873c0e49521cc601e9578e89eeafab54891b9 100644
--- a/civicrm/CRM/Contribute/Import/Form/DataSource.php
+++ b/civicrm/CRM/Contribute/Import/Form/DataSource.php
@@ -39,12 +39,6 @@ class CRM_Contribute_Import_Form_DataSource extends CRM_Import_Form_DataSource {
       CRM_Import_Parser::DUPLICATE_SKIP => ts('Insert new contributions'),
       CRM_Import_Parser::DUPLICATE_UPDATE => ts('Update existing contributions'),
     ]);
-
-    $this->addElement('xbutton', 'loadMapping', ts('Load Mapping'), [
-      'type' => 'submit',
-      'onclick' => 'checkSelect()',
-    ]);
-
     $this->addContactTypeSelector();
   }
 
diff --git a/civicrm/CRM/Contribute/Import/Form/MapField.php b/civicrm/CRM/Contribute/Import/Form/MapField.php
index abc42a05b2be35df6f626ac4bfc384fd7e05dc5d..5e73a7cd30e0363947472602ffb8ab4a88d52ecc 100644
--- a/civicrm/CRM/Contribute/Import/Form/MapField.php
+++ b/civicrm/CRM/Contribute/Import/Form/MapField.php
@@ -21,38 +21,12 @@
 class CRM_Contribute_Import_Form_MapField extends CRM_Import_Form_MapField {
 
   /**
-   * Set variables up before form is built.
+   * Get the name of the type to be stored in civicrm_user_job.type_id.
+   *
+   * @return string
    */
-  public function preProcess() {
-    parent::preProcess();
-
-    $highlightedFields = ['financial_type_id', 'total_amount'];
-    //CRM-2219 removing other required fields since for updation only
-    //invoice id or trxn id or contribution id is required.
-    if ($this->isUpdateExisting()) {
-      //modify field title only for update mode. CRM-3245
-      foreach ([
-        'contribution_id',
-        'invoice_id',
-        'trxn_id',
-      ] as $key) {
-        $highlightedFields[] = $key;
-      }
-    }
-    elseif ($this->isSkipExisting()) {
-      $highlightedFieldsArray = [
-        'contribution_contact_id',
-        'email',
-        'first_name',
-        'last_name',
-        'external_identifier',
-      ];
-      foreach ($highlightedFieldsArray as $name) {
-        $highlightedFields[] = $name;
-      }
-    }
-
-    $this->assign('highlightedFields', $highlightedFields);
+  public function getUserJobType(): string {
+    return 'contribution_import';
   }
 
   /**
@@ -267,4 +241,32 @@ class CRM_Contribute_Import_Form_MapField extends CRM_Import_Form_MapField {
     return NULL;
   }
 
+  /**
+   * @return string[]
+   */
+  protected function getHighlightedFields(): array {
+    $highlightedFields = ['financial_type_id', 'total_amount'];
+    //CRM-2219 removing other required fields since for updating only
+    //invoice id or trxn id or contribution id is required.
+    if ($this->isUpdateExisting()) {
+      //modify field title only for update mode. CRM-3245
+      foreach (['contribution_id', 'invoice_id', 'trxn_id'] as $key) {
+        $highlightedFields[] = $key;
+      }
+    }
+    elseif ($this->isSkipExisting()) {
+      $highlightedFieldsArray = [
+        'contribution_contact_id',
+        'email',
+        'first_name',
+        'last_name',
+        'external_identifier',
+      ];
+      foreach ($highlightedFieldsArray as $name) {
+        $highlightedFields[] = $name;
+      }
+    }
+    return $highlightedFields;
+  }
+
 }
diff --git a/civicrm/CRM/Contribute/Import/Parser/Contribution.php b/civicrm/CRM/Contribute/Import/Parser/Contribution.php
index 0a4705ff79933d8d14591c82489f6712d0a87628..f5bb954fc4481761baba03e9b73bfc714405bfbf 100644
--- a/civicrm/CRM/Contribute/Import/Parser/Contribution.php
+++ b/civicrm/CRM/Contribute/Import/Parser/Contribution.php
@@ -52,6 +52,7 @@ class CRM_Contribute_Import_Parser_Contribution extends CRM_Import_Parser {
         'name' => 'contribution_import',
         'label' => ts('Contribution Import'),
         'entity' => 'Contribution',
+        'url' => 'civicrm/import/contribution',
       ],
     ];
   }
@@ -68,56 +69,12 @@ class CRM_Contribute_Import_Parser_Contribution extends CRM_Import_Parser {
    */
   protected $_separator;
 
-  /**
-   * Running total number of valid soft credit rows
-   * @var int
-   */
-  protected $_validSoftCreditRowCount;
-
-  /**
-   * Running total number of invalid soft credit rows
-   * @var int
-   */
-  protected $_invalidSoftCreditRowCount;
-
-  /**
-   * Running total number of valid pledge payment rows
-   * @var int
-   */
-  protected $_validPledgePaymentRowCount;
-
-  /**
-   * Running total number of invalid pledge payment rows
-   * @var int
-   */
-  protected $_invalidPledgePaymentRowCount;
-
   /**
    * Array of pledge payment error lines, bounded by MAX_ERROR
    * @var array
    */
   protected $_pledgePaymentErrors;
 
-  /**
-   * Array of pledge payment error lines, bounded by MAX_ERROR
-   * @var array
-   */
-  protected $_softCreditErrors;
-
-  /**
-   * Filename of pledge payment error data
-   *
-   * @var string
-   */
-  protected $_pledgePaymentErrorsFileName;
-
-  /**
-   * Filename of soft credit error data
-   *
-   * @var string
-   */
-  protected $_softCreditErrorsFileName;
-
   /**
    * Get the field mappings for the import.
    *
@@ -247,6 +204,25 @@ class CRM_Contribute_Import_Parser_Contribution extends CRM_Import_Parser {
     return $array;
   }
 
+  /**
+   * Validate the import values.
+   *
+   * This overrides the parent to call the hook - cos the other imports are not
+   * yet stable enough to add the hook to. If we add the hook to them now and then
+   * later switch them to APIv4 style keys we will have to worry about hook consumers.
+   *
+   * The values array represents a row in the datasource.
+   *
+   * @param array $values
+   *
+   * @throws \CRM_Core_Exception
+   */
+  public function validateValues(array $values): void {
+    $params = $this->getMappedRow($values);
+    CRM_Utils_Hook::importAlterMappedRow('validate', 'contribution_import', $params, $values, $this->getUserJobID());
+    $this->validateParams($params);
+  }
+
   /**
    * Override parent to cope with params being separated by entity already.
    *
@@ -290,14 +266,27 @@ class CRM_Contribute_Import_Parser_Contribution extends CRM_Import_Parser {
 
       $note = CRM_Core_DAO_Note::import();
       $tmpFields = CRM_Contribute_DAO_Contribution::import();
+      // Unravel the unique fields - once more metadata work is done on apiv4 we
+      // will use that instead to get them.
+      foreach (['contribution_cancel_date', 'contribution_check_number', 'contribution_campaign_id'] as $uniqueField) {
+        $realField = substr($uniqueField, 13);
+        $tmpFields[$realField] = $tmpFields[$uniqueField];
+        unset($tmpFields[$uniqueField]);
+      }
       $tmpContactField = $this->getContactFields($this->getContactType());
+      // I haven't un-done this unique field yet cos it's more complex.
       $tmpFields['contribution_contact_id']['title'] = $tmpFields['contribution_contact_id']['html']['label'] = $tmpFields['contribution_contact_id']['title'] . ' ' . ts('(match to contact)');
       $tmpFields['contribution_contact_id']['contact_type'] = ['Individual' => 'Individual', 'Household' => 'Household', 'Organization' => 'Organization'];
       $tmpFields['contribution_contact_id']['match_rule'] = '*';
       $fields = array_merge($fields, $tmpContactField);
       $fields = array_merge($fields, $tmpFields);
       $fields = array_merge($fields, $note);
-      $fields = array_merge($fields, CRM_Core_BAO_CustomField::getFieldsForImport('Contribution'));
+      $apiv4 = Contribution::getFields(TRUE)->addWhere('custom_field_id', '>', 0)->execute();
+      $customFields = [];
+      foreach ($apiv4 as $apiv4Field) {
+        $customFields[$apiv4Field['name']] = $apiv4Field;
+      }
+      $fields = array_merge($fields, $customFields);
 
       $fields['soft_credit.contact.id'] = [
         'title' => ts('Soft Credit Contact ID'),
@@ -349,12 +338,16 @@ class CRM_Contribute_Import_Parser_Contribution extends CRM_Import_Parser {
    * @throws \CRM_Core_Exception
    */
   public function getImportEntities() : array {
-    $softCreditTypes = ContributionSoft::getFields()
-      ->setLoadOptions(['id', 'name', 'label', 'description'])
+    $softCreditTypes = ContributionSoft::getFields(FALSE)
+      ->setLoadOptions(['id', 'name', 'label', 'description', 'is_default'])
       ->addWhere('name', '=', 'soft_credit_type_id')
       ->selectRowCount()
       ->addSelect('options')->execute()->first()['options'];
+    $defaultSoftCreditTypeID = NULL;
     foreach ($softCreditTypes as &$softCreditType) {
+      if (empty($defaultSoftCreditTypeID) || $softCreditType['is_default']) {
+        $defaultSoftCreditTypeID = $softCreditType['id'];
+      }
       $softCreditType['text'] = $softCreditType['label'];
     }
 
@@ -400,7 +393,12 @@ class CRM_Contribute_Import_Parser_Contribution extends CRM_Import_Parser {
         'is_contact' => TRUE,
         'is_required' => FALSE,
         'actions' => array_merge([['id' => 'ignore', 'text' => ts('Do not import')]], $this->getActions(['select', 'update', 'save'])),
-        'selected' => ['contact_type' => '', 'soft_credit_type_id' => reset($softCreditTypes)['id'], 'action' => 'ignore'],
+        'selected' => [
+          'contact_type' => 'Individual',
+          'soft_credit_type_id' => $defaultSoftCreditTypeID,
+          'action' => 'ignore',
+          'dedupe_rule' => $this->getDedupeRule('Individual')['name'],
+        ],
         'default_action' => 'ignore',
         'entity_name' => 'SoftCreditContact',
         'entity_field_prefix' => 'soft_credit.contact.',
@@ -427,7 +425,9 @@ class CRM_Contribute_Import_Parser_Contribution extends CRM_Import_Parser {
     $rowNumber = (int) ($values[array_key_last($values)]);
     try {
       $params = $this->getMappedRow($values);
-      $contributionParams = array_merge(['version' => 3, 'skipRecentView' => TRUE, 'skipCleanMoney' => TRUE], $params['Contribution']);
+      CRM_Utils_Hook::importAlterMappedRow('import', 'contribution_import', $params, $values, $this->getUserJobID());
+
+      $contributionParams = $params['Contribution'];
       //CRM-10994
       if (isset($contributionParams['total_amount']) && $contributionParams['total_amount'] == 0) {
         $contributionParams['total_amount'] = '0.00';
@@ -467,7 +467,12 @@ class CRM_Contribute_Import_Parser_Contribution extends CRM_Import_Parser {
         $this->deleteExistingSoftCredit($contributionParams['id']);
       }
 
-      $contributionID = civicrm_api3('contribution', 'create', $contributionParams)['id'];
+      if ($contributionParams['id']) {
+        $contributionID = Contribution::update()->setValues($contributionParams)->execute()->first()['id'];
+      }
+      else {
+        $contributionID = Contribution::create()->setValues($contributionParams)->execute()->first()['id'];
+      }
 
       if (!empty($softCreditParams)) {
         if (empty($contributionParams['total_amount']) || empty($contributionParams['currency'])) {
@@ -573,15 +578,6 @@ class CRM_Contribute_Import_Parser_Contribution extends CRM_Import_Parser {
     return FALSE;
   }
 
-  /**
-   * Get the array of successfully imported contribution id's
-   *
-   * @return array
-   */
-  public function &getImportedContributions() {
-    return $this->_newContributions;
-  }
-
   /**
    * take the input parameter list as specified in the data model and
    * convert it into the same format that we use in QF and BAO object
@@ -591,67 +587,54 @@ class CRM_Contribute_Import_Parser_Contribution extends CRM_Import_Parser {
    *   pairs to insert in new contact.
    * @param array $values
    *   The reformatted properties that we can use internally.
-   * @param bool $create
    *
    * @throws \CRM_Core_Exception
    */
-  private function deprecatedFormatParams($params, &$values, $create = FALSE): void {
+  private function deprecatedFormatParams($params, &$values): void {
     // copy all the contribution fields as is
-    require_once 'api/v3/utils.php';
-
-    foreach ($params as $key => $value) {
-      // ignore empty values or empty arrays etc
-      if (CRM_Utils_System::isNull($value)) {
-        continue;
+    if (empty($params['pledge_id'])) {
+      return;
+    }
+    // get total amount of from import fields
+    $totalAmount = $params['total_amount'] ?? NULL;
+    $contributionContactID = $params['contact_id'];
+    // we need to get contact id $contributionContactID to
+    // retrieve pledge details as well as to validate pledge ID
+
+    // first need to check for update mode
+    if (!empty($params['id'])) {
+      $contribution = new CRM_Contribute_DAO_Contribution();
+      if ($params['id']) {
+        $contribution->id = $params['id'];
       }
 
-      switch ($key) {
-
-        case 'pledge_id':
-          // get total amount of from import fields
-          $totalAmount = $params['total_amount'] ?? NULL;
-          $contributionContactID = $params['contact_id'];
-          // we need to get contact id $contributionContactID to
-          // retrieve pledge details as well as to validate pledge ID
-
-          // first need to check for update mode
-          if (!empty($params['id'])) {
-            $contribution = new CRM_Contribute_DAO_Contribution();
-            if ($params['id']) {
-              $contribution->id = $params['id'];
-            }
-
-            if ($contribution->find(TRUE)) {
-              if (!$totalAmount) {
-                $totalAmount = $contribution->total_amount;
-              }
-            }
-            else {
-              throw new CRM_Core_Exception('No match found for specified contact in pledge payment data. Row was skipped.', CRM_Import_Parser::ERROR);
-            }
-          }
-
-          if (!empty($params['pledge_id'])) {
-            if (CRM_Core_DAO::getFieldValue('CRM_Pledge_DAO_Pledge', $params['pledge_id'], 'contact_id') != $contributionContactID) {
-              throw new CRM_Core_Exception('Invalid Pledge ID provided. Contribution row was skipped.', CRM_Import_Parser::ERROR);
-            }
-            $values['pledge_id'] = $params['pledge_id'];
-          }
-
-          // we need to check if oldest payment amount equal to contribution amount
-          require_once 'CRM/Pledge/BAO/PledgePayment.php';
-          $pledgePaymentDetails = CRM_Pledge_BAO_PledgePayment::getOldestPledgePayment($values['pledge_id']);
-
-          if ($pledgePaymentDetails['amount'] == $totalAmount) {
-            $values['pledge_payment_id'] = $pledgePaymentDetails['id'];
-          }
-          else {
-            throw new CRM_Core_Exception('Contribution and Pledge Payment amount mismatch for this record. Contribution row was skipped.', CRM_Import_Parser::ERROR);
-          }
-          break;
+      if ($contribution->find(TRUE)) {
+        if (!$totalAmount) {
+          $totalAmount = $contribution->total_amount;
+        }
+      }
+      else {
+        throw new CRM_Core_Exception('No match found for specified contact in pledge payment data. Row was skipped.', CRM_Import_Parser::ERROR);
+      }
+    }
 
+    if (!empty($params['pledge_id'])) {
+      if (CRM_Core_DAO::getFieldValue('CRM_Pledge_DAO_Pledge', $params['pledge_id'], 'contact_id') != $contributionContactID) {
+        throw new CRM_Core_Exception('Invalid Pledge ID provided. Contribution row was skipped.', CRM_Import_Parser::ERROR);
       }
+      $values['pledge_id'] = $params['pledge_id'];
+    }
+
+    // we need to check if oldest payment amount equal to contribution amount
+    $pledgePaymentDetails = CRM_Pledge_BAO_PledgePayment::getOldestPledgePayment($values['pledge_id']);
+
+    if ($pledgePaymentDetails['amount'] == $totalAmount) {
+      $values['pledge_payment_id'] = $pledgePaymentDetails['id'];
     }
+    else {
+      throw new CRM_Core_Exception('Contribution and Pledge Payment amount mismatch for this record. Contribution row was skipped.', CRM_Import_Parser::ERROR);
+    }
+
   }
 
   /**
@@ -797,7 +780,7 @@ class CRM_Contribute_Import_Parser_Contribution extends CRM_Import_Parser {
    * @return string[]
    */
   protected function getOddlyMappedMetadataFields(): array {
-    $uniqueNames = ['contribution_id', 'contribution_contact_id', 'contribution_cancel_date', 'contribution_source', 'contribution_check_number'];
+    $uniqueNames = ['contribution_id', 'contribution_contact_id', 'contribution_source'];
     $fields = [];
     foreach ($uniqueNames as $name) {
       $fields[$this->importableFieldsMetadata[$name]['name']] = $name;
diff --git a/civicrm/CRM/Contribute/xml/Menu/Contribute.xml b/civicrm/CRM/Contribute/xml/Menu/Contribute.xml
index 011535753f9ee4cec8375d9576586f93be6234e9..77b12723e4f1464dfcbb8ded590993d373b1e41a 100644
--- a/civicrm/CRM/Contribute/xml/Menu/Contribute.xml
+++ b/civicrm/CRM/Contribute/xml/Menu/Contribute.xml
@@ -200,14 +200,6 @@
     <page_type>1</page_type>
     <weight>588</weight>
   </item>
-  <item>
-    <path>civicrm/contribute/import</path>
-    <title>Import Contributions</title>
-    <page_callback>CRM_Contribute_Import_Controller</page_callback>
-    <access_arguments>access CiviContribute,edit contributions</access_arguments>
-    <page_type>1</page_type>
-    <weight>520</weight>
-  </item>
   <item>
     <path>civicrm/contribute/manage</path>
     <title>Manage Contribution Pages</title>
diff --git a/civicrm/CRM/Core/BAO/ActionSchedule.php b/civicrm/CRM/Core/BAO/ActionSchedule.php
index 8307501bb60d56d50d0fb6c7e92884b0b6bbb2de..d22b86c2c2675e35937059bc34800e320254d4cf 100644
--- a/civicrm/CRM/Core/BAO/ActionSchedule.php
+++ b/civicrm/CRM/Core/BAO/ActionSchedule.php
@@ -179,6 +179,7 @@ FROM civicrm_action_schedule cas
    * @throws \CRM_Core_Exception
    */
   public static function add(array $params): CRM_Core_DAO_ActionSchedule {
+    CRM_Core_Error::deprecatedFunctionWarning('writeRecord');
     return self::writeRecord($params);
   }
 
@@ -210,21 +211,18 @@ FROM civicrm_action_schedule cas
    * @throws CRM_Core_Exception
    */
   public static function del($id) {
+    CRM_Core_Error::deprecatedFunctionWarning('deleteRecord');
     self::deleteRecord(['id' => $id]);
   }
 
   /**
-   * Update the is_active flag in the db.
-   *
+   * @deprecated - this bypasses hooks.
    * @param int $id
-   *   Id of the database record.
    * @param bool $is_active
-   *   Value we want to set the is_active field.
-   *
    * @return bool
-   *   true if we found and updated the object, else false
    */
   public static function setIsActive($id, $is_active) {
+    CRM_Core_Error::deprecatedFunctionWarning('writeRecord');
     return CRM_Core_DAO::setFieldValue('CRM_Core_DAO_ActionSchedule', $id, 'is_active', $is_active);
   }
 
@@ -250,6 +248,10 @@ FROM civicrm_action_schedule cas
         [1 => [$actionSchedule->id, 'Integer']]
       );
 
+      if ($dao->N > 0) {
+        Civi::log()->info("Sending Scheduled Reminder {$actionSchedule->id} to {$dao->N} recipients");
+      }
+
       $multilingual = CRM_Core_I18n::isMultilingual();
       $tokenProcessor = self::createTokenProcessor($actionSchedule, $mapping);
       while ($dao->fetch()) {
@@ -638,10 +640,8 @@ FROM civicrm_action_schedule cas
     $tp->addMessage('body_html', $schedule->body_html, 'text/html');
     $tp->addMessage('sms_body_text', $schedule->sms_body_text, 'text/plain');
     $tp->addMessage('subject', $schedule->subject, 'text/plain');
-    // These 2 are not 'real' tokens - but it tells the processor to load them.
+    // These is not a 'real' token - but it tells the processor to load them.
     $tp->addMessage('toName', '{contact.display_name}', 'text/plain');
-    $tp->addMessage('preferred_mail_format', '{contact.preferred_mail_format}', 'text/plain');
-
     return $tp;
   }
 
diff --git a/civicrm/CRM/Core/BAO/Address.php b/civicrm/CRM/Core/BAO/Address.php
index 004922b0d345ca5d9867c4ac187c1e8b8fda877a..909b4e607fb87ece0dd6ad129d13bbb436ab6188 100644
--- a/civicrm/CRM/Core/BAO/Address.php
+++ b/civicrm/CRM/Core/BAO/Address.php
@@ -20,96 +20,70 @@ use Civi\Api4\Address;
 /**
  * This is class to handle address related functions.
  */
-class CRM_Core_BAO_Address extends CRM_Core_DAO_Address {
+class CRM_Core_BAO_Address extends CRM_Core_DAO_Address implements Civi\Core\HookInterface {
   use CRM_Contact_AccessTrait;
 
   /**
-   * Takes an associative array and creates a address.
+   * @deprecated
    *
    * @param array $params
-   *   (reference ) an assoc array of name/value pairs.
    * @param bool $fixAddress
-   *   True if you need to fix (format) address values.
-   *                               before inserting in db
-   *
-   * @return array|NULL|self
-   *   array of created address
+   * @return CRM_Core_BAO_Address
+   * @throws CRM_Core_Exception
    */
   public static function create(array &$params, $fixAddress = TRUE) {
-    return self::add($params, $fixAddress);
+    CRM_Core_Error::deprecatedFunctionWarning('writeRecord');
+    if ($fixAddress) {
+      CRM_Core_BAO_Address::fixAddress($params);
+    }
+    return self::writeRecord($params);
   }
 
   /**
-   * Takes an associative array and adds address.
+   * @deprecated
    *
    * @param array $params
-   *   (reference ) an assoc array of name/value pairs.
    * @param bool $fixAddress
-   *   True if you need to fix (format) address values.
-   *                               before inserting in db
-   *
-   * @return CRM_Core_BAO_Address|null
+   * @return CRM_Core_BAO_Address
+   * @throws CRM_Core_Exception
    */
   public static function add(&$params, $fixAddress = FALSE) {
+    return self::create($params, $fixAddress);
+  }
 
-    $address = new CRM_Core_DAO_Address();
-    $checkPermissions = $params['check_permissions'] ?? TRUE;
-
-    // fixAddress mode to be done
-    if ($fixAddress) {
-      CRM_Core_BAO_Address::fixAddress($params);
-    }
-
-    $hook = empty($params['id']) ? 'create' : 'edit';
-    CRM_Utils_Hook::pre($hook, 'Address', CRM_Utils_Array::value('id', $params), $params);
-
-    CRM_Core_BAO_Block::handlePrimary($params, get_class());
-    CRM_Core_BAO_Block::handleBilling($params, get_class());
-
-    // (prevent chaining 1 and 3) CRM-21214
-    if (isset($params['master_id']) && !CRM_Utils_System::isNull($params['master_id'])) {
-      self::fixSharedAddress($params);
-    }
-
-    $address->copyValues($params);
-    $address->save();
-
-    if ($address->id) {
-      // first get custom field from master address if any
-      if (isset($params['master_id']) && !CRM_Utils_System::isNull($params['master_id'])) {
-        $address->copyCustomFields($params['master_id'], $address->id, $hook);
+  /**
+   * Event fired before modifying an Address.
+   * @param \Civi\Core\Event\PreEvent $event
+   */
+  public static function self_hook_civicrm_pre(\Civi\Core\Event\PreEvent $event) {
+    if (in_array($event->action, ['create', 'edit'])) {
+      CRM_Core_BAO_Block::handlePrimary($event->params, __CLASS__);
+      CRM_Core_BAO_Block::handleBilling($event->params, __CLASS__);
+
+      // (prevent chaining 1 and 3) CRM-21214
+      if (isset($event->params['master_id']) && !CRM_Utils_System::isNull($event->params['master_id'])) {
+        self::fixSharedAddress($event->params);
       }
+    }
+  }
 
-      if (isset($params['custom'])) {
-        $addressCustom = $params['custom'];
-      }
-      else {
-        $customFields = CRM_Core_BAO_CustomField::getFields('Address', FALSE, TRUE, NULL, NULL,
-          FALSE, FALSE, $checkPermissions ? CRM_Core_Permission::EDIT : FALSE);
-
-        if (!empty($customFields)) {
-          $addressCustom = CRM_Core_BAO_CustomField::postProcess($params,
-            $address->id,
-            'Address',
-            FALSE,
-            $checkPermissions
-          );
-        }
-      }
-      if (!empty($addressCustom)) {
-        CRM_Core_BAO_CustomValueTable::store($addressCustom, 'civicrm_address', $address->id, $hook);
+  /**
+   * Event fired after modifying an Address.
+   * @param \Civi\Core\Event\PostEvent $event
+   */
+  public static function self_hook_civicrm_post(\Civi\Core\Event\PostEvent $event) {
+    // Copy custom data from master address if not supplied
+    if ($event->action === 'create' && !isset($event->params['custom'])) {
+      if (isset($event->params['master_id']) && !CRM_Utils_System::isNull($event->params['master_id'])) {
+        $event->object->copyCustomFields($event->params['master_id'], $event->id, $event->action);
       }
-
+    }
+    if (in_array($event->action, ['create', 'edit'])) {
       // call the function to sync shared address and create relationships
       // if address is already shared, share master_id with all children and update relationships accordingly
       // (prevent chaining 2) CRM-21214
-      self::processSharedAddress($address->id, $params, $hook);
-
-      // lets call the post hook only after we've done all the follow on processing
-      CRM_Utils_Hook::post($hook, 'Address', $address->id, $address);
+      self::processSharedAddress($event->id, $event->params, $event->action);
     }
-
-    return $address;
   }
 
   /**
@@ -1336,7 +1310,6 @@ SELECT is_primary,
       return NULL;
     }
     CRM_Core_BAO_Block::sortPrimaryFirst($params['address']);
-    $contactId = NULL;
 
     $updateBlankLocInfo = CRM_Utils_Array::value('updateBlankLocInfo', $params, FALSE);
     $contactId = $params['contact_id'];
@@ -1386,7 +1359,17 @@ SELECT is_primary,
         $value['manual_geo_code'] = 0;
       }
       $value['contact_id'] = $contactId;
-      $blocks[] = self::add($value, $fixAddress);
+
+      if ($fixAddress) {
+        self::fixAddress($value);
+      }
+
+      // Format custom data
+      if (!isset($value['custom'])) {
+        $value['custom'] = CRM_Core_BAO_CustomField::postProcess($value, $value['id'] ?? NULL, 'Address');
+      }
+
+      $blocks[] = self::writeRecord($value);
     }
     return $blocks;
   }
diff --git a/civicrm/CRM/Core/BAO/Block.php b/civicrm/CRM/Core/BAO/Block.php
index 506e9515763b24fae9b0dcfe9c3e31b83351201d..a5abbe73c827d5667d5195414c27979ca29fb239 100644
--- a/civicrm/CRM/Core/BAO/Block.php
+++ b/civicrm/CRM/Core/BAO/Block.php
@@ -282,7 +282,10 @@ class CRM_Core_BAO_Block {
       }
 
       $blockFields = array_merge($value, $contactFields);
-      $blocks[] = $baoString::create($blockFields);
+      if ($baoString === 'CRM_Core_BAO_Address') {
+        CRM_Core_BAO_Address::fixAddress($blockFields);
+      }
+      $blocks[] = $baoString::writeRecord($blockFields);
     }
 
     return $blocks;
diff --git a/civicrm/CRM/Core/BAO/CustomField.php b/civicrm/CRM/Core/BAO/CustomField.php
index cf05c109b2e9c0700f6e1a073e8eabe792da7873..5da3581da90d8736618e9f3e298d72bc085c030d 100644
--- a/civicrm/CRM/Core/BAO/CustomField.php
+++ b/civicrm/CRM/Core/BAO/CustomField.php
@@ -263,18 +263,13 @@ class CRM_Core_BAO_CustomField extends CRM_Core_DAO_CustomField {
   }
 
   /**
-   * Update the is_active flag in the db.
-   *
+   * @deprecated - this bypasses hooks.
    * @param int $id
-   *   Id of the database record.
    * @param bool $is_active
-   *   Value we want to set the is_active field.
-   *
    * @return bool
-   *   true if we found and updated the object, else false
    */
   public static function setIsActive($id, $is_active) {
-
+    CRM_Core_Error::deprecatedFunctionWarning('writeRecord');
     CRM_Utils_System::flushCache();
 
     //enable-disable CustomField
diff --git a/civicrm/CRM/Core/BAO/CustomGroup.php b/civicrm/CRM/Core/BAO/CustomGroup.php
index 3615f2271f827daaade82d95099d909043d026d9..a4a33744a60c749ccb82fd8efb264ee62ad1da01 100644
--- a/civicrm/CRM/Core/BAO/CustomGroup.php
+++ b/civicrm/CRM/Core/BAO/CustomGroup.php
@@ -251,17 +251,13 @@ class CRM_Core_BAO_CustomGroup extends CRM_Core_DAO_CustomGroup implements \Civi
   }
 
   /**
-   * Update the is_active flag in the db.
-   *
+   * @deprecated - this bypasses hooks.
    * @param int $id
-   *   Id of the database record.
    * @param bool $is_active
-   *   Value we want to set the is_active field.
-   *
    * @return bool
-   *   true if we found and updated the object, else false
    */
   public static function setIsActive($id, $is_active) {
+    CRM_Core_Error::deprecatedFunctionWarning('writeRecord');
     // reset the cache
     Civi::cache('fields')->flush();
     // reset ACL and system caches.
@@ -1431,11 +1427,17 @@ ORDER BY civicrm_custom_group.weight,
             }
           }
           else {
-            if ($field['data_type'] == "Float") {
-              $defaults[$elementName] = (float) $value;
+            if ($field['data_type'] === 'Float') {
+              if ($field['html_type'] === 'Text') {
+                $defaults[$elementName] = CRM_Utils_Number::formatLocaleNumeric($value);
+              }
+              else {
+                // This casting came in from svn & may not be right.
+                $defaults[$elementName] = (float) $value;
+              }
             }
-            elseif ($field['data_type'] == 'Money' &&
-              $field['html_type'] == 'Text'
+            elseif ($field['data_type'] === 'Money' &&
+              $field['html_type'] === 'Text'
             ) {
               $defaults[$elementName] = CRM_Utils_Money::formatLocaleNumericRoundedForDefaultCurrency($value);
             }
diff --git a/civicrm/CRM/Core/BAO/CustomValue.php b/civicrm/CRM/Core/BAO/CustomValue.php
index c88c62bfebd78922f3335cc67ff9d3ce8f073856..88024d0b86caac75f475f1cb7716eaed0481e355 100644
--- a/civicrm/CRM/Core/BAO/CustomValue.php
+++ b/civicrm/CRM/Core/BAO/CustomValue.php
@@ -57,7 +57,8 @@ class CRM_Core_BAO_CustomValue extends CRM_Core_DAO {
         return CRM_Utils_Rule::boolean($value);
 
       case 'ContactReference':
-        return CRM_Utils_Rule::validContact($value);
+      case 'EntityReference':
+        return CRM_Utils_Rule::positiveInteger($value);
 
       case 'StateProvince':
 
diff --git a/civicrm/CRM/Core/BAO/CustomValueTable.php b/civicrm/CRM/Core/BAO/CustomValueTable.php
index 2312c81847053fd2353411e76d993a3213f3a785..00ca79c55b1c78651712893393115e4c1e9672a5 100644
--- a/civicrm/CRM/Core/BAO/CustomValueTable.php
+++ b/civicrm/CRM/Core/BAO/CustomValueTable.php
@@ -205,6 +205,10 @@ class CRM_Core_BAO_CustomValueTable {
 
             case 'EntityReference':
               $type = 'Integer';
+              if ($value == NULL || $value === '') {
+                $type = 'Timestamp';
+                $value = NULL;
+              }
               break;
 
             case 'RichTextEditor':
diff --git a/civicrm/CRM/Core/BAO/Domain.php b/civicrm/CRM/Core/BAO/Domain.php
index a7bb9a9ace2dac6b99fe690f19865ff63f651764..c3642ccbab09b96fd56fc453803a8f3802e00267 100644
--- a/civicrm/CRM/Core/BAO/Domain.php
+++ b/civicrm/CRM/Core/BAO/Domain.php
@@ -166,6 +166,7 @@ class CRM_Core_BAO_Domain extends CRM_Core_DAO_Domain {
    * @return CRM_Core_DAO_Domain
    */
   public static function create($params) {
+    CRM_Core_Error::deprecatedFunctionWarning('writeRecord');
     return self::writeRecord($params);
   }
 
diff --git a/civicrm/CRM/Core/BAO/Email.php b/civicrm/CRM/Core/BAO/Email.php
index e7e4eb9a1dc3e3d3ab159b94aa83de7289ef9e26..c35b34d77d717e981e42f87ceda0f18723ba0a44 100644
--- a/civicrm/CRM/Core/BAO/Email.php
+++ b/civicrm/CRM/Core/BAO/Email.php
@@ -24,64 +24,56 @@ class CRM_Core_BAO_Email extends CRM_Core_DAO_Email implements Civi\Core\HookInt
   use CRM_Contact_AccessTrait;
 
   /**
-   * Create email address.
-   *
-   * Note that the create function calls 'add' but  has more business logic.
+   * @deprecated
    *
    * @param array $params
-   *   Input parameters.
-   *
-   * @return object
+   * @return CRM_Core_BAO_Email
+   * @throws CRM_Core_Exception
    */
   public static function create($params) {
-    CRM_Core_BAO_Block::handlePrimary($params, get_class());
+    // FIXME: switch CRM_Core_BAO_Block::create to call writeRecord (once Address, IM, Phone create functions go through it)
+    // then this can be uncommented:
+    CRM_Core_Error::deprecatedFunctionWarning('writeRecord');
+    return self::writeRecord($params);
+  }
 
-    $hook = empty($params['id']) ? 'create' : 'edit';
-    CRM_Utils_Hook::pre($hook, 'Email', CRM_Utils_Array::value('id', $params), $params);
+  /**
+   * Event fired before modifying an Email.
+   * @param \Civi\Core\Event\PreEvent $event
+   */
+  public static function self_hook_civicrm_pre(\Civi\Core\Event\PreEvent $event) {
+    if (in_array($event->action, ['create', 'edit'])) {
+      CRM_Core_BAO_Block::handlePrimary($event->params, __CLASS__);
 
-    $email = new CRM_Core_DAO_Email();
-    $email->copyValues($params);
-    if (!empty($email->email)) {
-      // lower case email field to optimize queries
-      $strtolower = function_exists('mb_strtolower') ? 'mb_strtolower' : 'strtolower';
-      $email->email = $strtolower($email->email);
-    }
+      if (!empty($event->params['email'])) {
+        // lower case email field to optimize queries
+        $event->params['email'] = mb_strtolower($event->params['email']);
+      }
 
-    //
-    // Since we're setting bulkmail for 1 of this contact's emails, first reset
-    // all their other emails to is_bulkmail false. We shouldn't set the current
-    // email to false even though we are about to reset it to avoid
-    // contaminating the changelog if logging is enabled.  (only 1 email
-    // address can have is_bulkmail = true)
-    //
-    // Note setting a the is_bulkmail to '' in $params results in $email->is_bulkmail === 'null'.
-    // @see https://lab.civicrm.org/dev/core/-/issues/2254
-    //
-    if ($email->is_bulkmail == 1 && !empty($params['contact_id']) && !self::isMultipleBulkMail()) {
-      $sql = "
+      // Since we're setting bulkmail for 1 of this contact's emails, first reset
+      // all their other emails to is_bulkmail false. We shouldn't set the current
+      // email to false even though we are about to reset it to avoid
+      // contaminating the changelog if logging is enabled.  (only 1 email
+      // address can have is_bulkmail = true)
+      //
+      // Note setting a the is_bulkmail to '' in $params results in $email->is_bulkmail === 'null'.
+      // @see https://lab.civicrm.org/dev/core/-/issues/2254
+      //
+      if (!empty($event->params['is_bulkmail']) && !empty($event->params['contact_id']) && !self::isMultipleBulkMail()) {
+        $sql = "
 UPDATE civicrm_email
 SET    is_bulkmail = 0
-WHERE  contact_id = {$params['contact_id']}
+WHERE  contact_id = {$event->params['contact_id']}
 ";
-      if ($hook === 'edit') {
-        $sql .= " AND id <> {$params['id']}";
+        if ($event->action === 'edit') {
+          $sql .= " AND id <> {$event->params['id']}";
+        }
+        CRM_Core_DAO::executeQuery($sql);
       }
-      CRM_Core_DAO::executeQuery($sql);
-    }
-
-    // handle if email is on hold
-    self::holdEmail($email);
-
-    $email->save();
 
-    $contactId = (int) ($email->contact_id ?? CRM_Core_DAO::getFieldValue(__CLASS__, $email->id, 'contact_id'));
-    if ($contactId && $email->is_primary) {
-      $address = $email->email ?? CRM_Core_DAO::getFieldValue(__CLASS__, $email->id, 'email');
-      self::updateContactName($contactId, $address);
+      // handle if email is on hold
+      self::holdEmail($event->params);
     }
-
-    CRM_Utils_Hook::post($hook, 'Email', $email->id, $email);
-    return $email;
   }
 
   /**
@@ -89,24 +81,31 @@ WHERE  contact_id = {$params['contact_id']}
    * @param \Civi\Core\Event\PostEvent $event
    */
   public static function self_hook_civicrm_post(\Civi\Core\Event\PostEvent $event) {
-    if ($event->action !== 'delete' && !empty($event->object->is_primary) && !empty($event->object->contact_id)) {
+    $email = $event->object;
+    if ($event->action !== 'delete' && !empty($email->is_primary) && !empty($email->contact_id)) {
       // update the UF user email if that has changed
-      CRM_Core_BAO_UFMatch::updateUFName($event->object->contact_id);
+      CRM_Core_BAO_UFMatch::updateUFName($email->contact_id);
+    }
+    if (in_array($event->action, ['create', 'edit'])) {
+      $contactId = (int) ($email->contact_id ?? CRM_Core_DAO::getFieldValue(__CLASS__, $email->id, 'contact_id'));
+      $isPrimary = ($email->is_primary ?? CRM_Core_DAO::getFieldValue(__CLASS__, $email->id, 'is_primary'));
+      if ($contactId && $isPrimary) {
+        $address = $email->email ?? CRM_Core_DAO::getFieldValue(__CLASS__, $email->id, 'email');
+        self::updateContactName($contactId, $address);
+      }
     }
   }
 
   /**
-   * Takes an associative array and adds email.
+   * @deprecated
    *
    * @param array $params
-   *   (reference ) an assoc array of name/value pairs.
-   *
-   * @return object
-   *   CRM_Core_BAO_Email object on success, null otherwise
+   * @return CRM_Core_BAO_Email
+   * @throws CRM_Core_Exception
    */
-  public static function add(&$params) {
-    CRM_Core_Error::deprecatedFunctionWarning('apiv4 create');
-    return self::create($params);
+  public static function add($params) {
+    CRM_Core_Error::deprecatedFunctionWarning('writeRecord');
+    return self::writeRecord($params);
   }
 
   /**
@@ -230,26 +229,26 @@ ORDER BY e.is_primary DESC, email_id ASC ";
   }
 
   /**
-   * Set / reset hold status for an email
+   * Set / reset hold status for an email prior to saving
    *
-   * @param object $email
-   *   Email object.
+   * @param array $email
+   *   Email params to be saved.
    */
-  public static function holdEmail(&$email) {
-    if ($email->id && $email->on_hold === NULL) {
+  public static function holdEmail(array &$email) {
+    if (!empty($email['id']) && !isset($email['on_hold'])) {
       // email is being updated but no change to on_hold.
       return;
     }
-    if ($email->on_hold === 'null' || $email->on_hold === NULL) {
+    if (!isset($email['on_hold']) || $email['on_hold'] === 'null') {
       // legacy handling, deprecated.
-      $email->on_hold = 0;
+      $email['on_hold'] = 0;
     }
-    $email->on_hold = (int) $email->on_hold;
+    $email['on_hold'] = (int) $email['on_hold'];
 
     //check for update mode
-    if ($email->id) {
-      $params = [1 => [$email->id, 'Integer']];
-      if ($email->on_hold) {
+    if (!empty($email['id'])) {
+      $params = [1 => [$email['id'], 'Integer']];
+      if ($email['on_hold']) {
         $sql = "
 SELECT id
 FROM   civicrm_email
@@ -257,11 +256,11 @@ WHERE  id = %1
 AND    hold_date IS NULL
 ";
         if (CRM_Core_DAO::singleValueQuery($sql, $params)) {
-          $email->hold_date = date('YmdHis');
-          $email->reset_date = 'null';
+          $email['hold_date'] = date('YmdHis');
+          $email['reset_date'] = 'null';
         }
       }
-      elseif ($email->on_hold === 0) {
+      elseif ($email['on_hold'] === 0) {
         // we do this lookup to see if reset_date should be changed.
         $sql = "
 SELECT id
@@ -272,16 +271,14 @@ AND    reset_date IS NULL
 ";
         if (CRM_Core_DAO::singleValueQuery($sql, $params)) {
           //set reset date only if it is not set and if hold date is set
-          $email->on_hold = FALSE;
-          $email->hold_date = 'null';
-          $email->reset_date = date('YmdHis');
+          $email['on_hold'] = FALSE;
+          $email['hold_date'] = 'null';
+          $email['reset_date'] = date('YmdHis');
         }
       }
     }
-    else {
-      if ($email->on_hold) {
-        $email->hold_date = date('YmdHis');
-      }
+    elseif ($email['on_hold']) {
+      $email['hold_date'] = date('YmdHis');
     }
   }
 
diff --git a/civicrm/CRM/Core/BAO/EntityTag.php b/civicrm/CRM/Core/BAO/EntityTag.php
index 606f5fad939853eea0baac00388b418b95e798f0..c48246775db47cd33537292d58696fc3fc65fe43 100644
--- a/civicrm/CRM/Core/BAO/EntityTag.php
+++ b/civicrm/CRM/Core/BAO/EntityTag.php
@@ -46,13 +46,9 @@ class CRM_Core_BAO_EntityTag extends CRM_Core_DAO_EntityTag {
   /**
    * Takes an associative array and creates a entityTag object.
    *
-   * the function extract all the params it needs to initialize the create a
-   * group object. the params array could contain additional unused name/value
-   * pairs
-   *
    * @param array $params
-   *   (reference ) an assoc array of name/value pairs.
    *
+   * @deprecated
    * @return CRM_Core_BAO_EntityTag
    */
   public static function add(&$params) {
@@ -89,7 +85,7 @@ class CRM_Core_BAO_EntityTag extends CRM_Core_DAO_EntityTag {
    * @return bool
    */
   public static function dataExists($params) {
-    return !($params['tag_id'] == 0);
+    return !empty($params['tag_id']);
   }
 
   /**
@@ -252,8 +248,10 @@ class CRM_Core_BAO_EntityTag extends CRM_Core_DAO_EntityTag {
   /**
    * Takes an associative array and creates tag entity record for all tag entities.
    *
+   * Nonstandard function
+   * @deprecated
+   *
    * @param array $params
-   *   (reference) an assoc array of name/value pairs.
    * @param string $entityTable
    * @param int $entityID
    */
diff --git a/civicrm/CRM/Core/BAO/Extension.php b/civicrm/CRM/Core/BAO/Extension.php
index 351db0f8b18c5ba4078b88df3c2d376103ba9dd5..4bb87024ed957187ec04f92572e807d56bd66990 100644
--- a/civicrm/CRM/Core/BAO/Extension.php
+++ b/civicrm/CRM/Core/BAO/Extension.php
@@ -48,6 +48,7 @@ class CRM_Core_BAO_Extension extends CRM_Core_DAO_Extension {
    * @deprecated
    */
   public static function del($id) {
+    CRM_Core_Error::deprecatedFunctionWarning('deleteRecord');
     return (bool) static::deleteRecord(['id' => $id]);
   }
 
diff --git a/civicrm/CRM/Core/BAO/IM.php b/civicrm/CRM/Core/BAO/IM.php
index b1a916c374d3d42982d76f51e12c20cb18d41c0c..a305dab03b7448c4c9fdcbfc430375a6e899dba7 100644
--- a/civicrm/CRM/Core/BAO/IM.php
+++ b/civicrm/CRM/Core/BAO/IM.php
@@ -18,34 +18,39 @@
 /**
  * This class contain function for IM handling
  */
-class CRM_Core_BAO_IM extends CRM_Core_DAO_IM {
+class CRM_Core_BAO_IM extends CRM_Core_DAO_IM implements Civi\Core\HookInterface {
   use CRM_Contact_AccessTrait;
 
   /**
-   * Create or update IM record.
+   * @deprecated
    *
    * @param array $params
-   *
-   * @return \CRM_Core_DAO|\CRM_Core_DAO_IM
-   * @throws \CRM_Core_Exception
+   * @return CRM_Core_DAO_IM
+   * @throws CRM_Core_Exception
    */
   public static function create($params) {
-    CRM_Core_BAO_Block::handlePrimary($params, __CLASS__);
+    CRM_Core_Error::deprecatedFunctionWarning('writeRecord');
     return self::writeRecord($params);
   }
 
   /**
-   * Create or update IM record.
-   *
+   * Event fired before modifying an IM.
+   * @param \Civi\Core\Event\PreEvent $event
+   */
+  public static function self_hook_civicrm_pre(\Civi\Core\Event\PreEvent $event) {
+    if (in_array($event->action, ['create', 'edit'])) {
+      CRM_Core_BAO_Block::handlePrimary($event->params, __CLASS__);
+    }
+  }
+
+  /**
    * @deprecated
    *
    * @param array $params
-   *
-   * @return \CRM_Core_DAO|\CRM_Core_DAO_IM
-   * @throws \CRM_Core_Exception
+   * @return CRM_Core_DAO_IM
+   * @throws CRM_Core_Exception
    */
   public static function add($params) {
-    CRM_Core_Error::deprecatedFunctionWarning('use the v4 api');
     return self::create($params);
   }
 
diff --git a/civicrm/CRM/Core/BAO/Job.php b/civicrm/CRM/Core/BAO/Job.php
index aecf92d79dba7268b67a24144d4f243b93dda639..1f8fd506fbaac79d509a66a0da3ce8f4c8f8d6bb 100644
--- a/civicrm/CRM/Core/BAO/Job.php
+++ b/civicrm/CRM/Core/BAO/Job.php
@@ -52,17 +52,13 @@ class CRM_Core_BAO_Job extends CRM_Core_DAO_Job {
   }
 
   /**
-   * Update the is_active flag in the db.
-   *
+   * @deprecated - this bypasses hooks.
    * @param int $id
-   *   Id of the database record.
    * @param bool $is_active
-   *   Value we want to set the is_active field.
-   *
    * @return bool
-   *   true if we found and updated the object, else false
    */
   public static function setIsActive($id, $is_active) {
+    CRM_Core_Error::deprecatedFunctionWarning('writeRecord');
     return CRM_Core_DAO::setFieldValue('CRM_Core_DAO_Job', $id, 'is_active', $is_active);
   }
 
@@ -76,6 +72,7 @@ class CRM_Core_BAO_Job extends CRM_Core_DAO_Job {
    * @throws CRM_Core_Exception
    */
   public static function del($jobID) {
+    CRM_Core_Error::deprecatedFunctionWarning('deleteRecord');
     self::deleteRecord(['id' => $jobID]);
     return TRUE;
   }
diff --git a/civicrm/CRM/Core/BAO/LocationType.php b/civicrm/CRM/Core/BAO/LocationType.php
index 6d119d7091645f6bc4d04d7f21ffd2fe837b09c8..6493470d3db97857245aac9dcffd5716923de152 100644
--- a/civicrm/CRM/Core/BAO/LocationType.php
+++ b/civicrm/CRM/Core/BAO/LocationType.php
@@ -44,17 +44,13 @@ class CRM_Core_BAO_LocationType extends CRM_Core_DAO_LocationType implements \Ci
   }
 
   /**
-   * Update the is_active flag in the db.
-   *
+   * @deprecated - this bypasses hooks.
    * @param int $id
-   *   Id of the database record.
    * @param bool $is_active
-   *   Value we want to set the is_active field.
-   *
    * @return bool
-   *   true if we found and updated the object, else false
    */
   public static function setIsActive($id, $is_active) {
+    CRM_Core_Error::deprecatedFunctionWarning('writeRecord');
     return CRM_Core_DAO::setFieldValue('CRM_Core_DAO_LocationType', $id, 'is_active', $is_active);
   }
 
@@ -121,6 +117,7 @@ class CRM_Core_BAO_LocationType extends CRM_Core_DAO_LocationType implements \Ci
    * @deprecated
    */
   public static function del($locationTypeId) {
+    CRM_Core_Error::deprecatedFunctionWarning('deleteRecord');
     static::deleteRecord(['id' => $locationTypeId]);
   }
 
diff --git a/civicrm/CRM/Core/BAO/Mapping.php b/civicrm/CRM/Core/BAO/Mapping.php
index a64a2176ab8d4e066cfdb42a54f52196a0b123e9..f184420c330618837a28bfd2231493202527737e 100644
--- a/civicrm/CRM/Core/BAO/Mapping.php
+++ b/civicrm/CRM/Core/BAO/Mapping.php
@@ -42,6 +42,7 @@ class CRM_Core_BAO_Mapping extends CRM_Core_DAO_Mapping implements \Civi\Core\Ho
    * @return bool
    */
   public static function del($id) {
+    CRM_Core_Error::deprecatedFunctionWarning('deleteRecord');
     return (bool) static::deleteRecord(['id' => $id]);
   }
 
diff --git a/civicrm/CRM/Core/BAO/MessageTemplate.php b/civicrm/CRM/Core/BAO/MessageTemplate.php
index 12fe6914c7dc560eb627a97cd1082baedfd3905d..9b70920b2d8a619e9ff2a032b2c5a3b424ffe42f 100644
--- a/civicrm/CRM/Core/BAO/MessageTemplate.php
+++ b/civicrm/CRM/Core/BAO/MessageTemplate.php
@@ -43,17 +43,13 @@ class CRM_Core_BAO_MessageTemplate extends CRM_Core_DAO_MessageTemplate implemen
   }
 
   /**
-   * Update the is_active flag in the db.
-   *
+   * @deprecated - this bypasses hooks.
    * @param int $id
-   *   Id of the database record.
    * @param bool $is_active
-   *   Value we want to set the is_active field.
-   *
    * @return bool
-   *   true if we found and updated the object, else false
    */
   public static function setIsActive($id, $is_active) {
+    CRM_Core_Error::deprecatedFunctionWarning('writeRecord');
     return CRM_Core_DAO::setFieldValue('CRM_Core_DAO_MessageTemplate', $id, 'is_active', $is_active);
   }
 
@@ -165,14 +161,8 @@ class CRM_Core_BAO_MessageTemplate extends CRM_Core_DAO_MessageTemplate implemen
    * @throws \CRM_Core_Exception
    */
   public static function del($messageTemplatesID) {
-    // make sure messageTemplatesID is an integer
-    if (!CRM_Utils_Rule::positiveInteger($messageTemplatesID)) {
-      throw new CRM_Core_Exception(ts('Invalid Message template'));
-    }
-
+    CRM_Core_Error::deprecatedFunctionWarning('deleteRecord');
     static::deleteRecord(['id' => $messageTemplatesID]);
-    // Yikes - bad idea setting status messages in BAO CRUD functions. Don't do this.
-    CRM_Core_Session::setStatus(ts('Selected message template has been deleted.'), ts('Deleted'), 'success');
   }
 
   /**
diff --git a/civicrm/CRM/Core/BAO/Navigation.php b/civicrm/CRM/Core/BAO/Navigation.php
index 1f4345fbeeb55795d8b35ef86cdbcaec6cb3b945..ae9a0e318067c2bc144cb697e76249283c9fbeb9 100644
--- a/civicrm/CRM/Core/BAO/Navigation.php
+++ b/civicrm/CRM/Core/BAO/Navigation.php
@@ -56,17 +56,13 @@ class CRM_Core_BAO_Navigation extends CRM_Core_DAO_Navigation {
   }
 
   /**
-   * Update the is_active flag in the db.
-   *
+   * @deprecated - this bypasses hooks.
    * @param int $id
-   *   Id of the database record.
    * @param bool $is_active
-   *   Value we want to set the is_active field.
-   *
    * @return bool
-   *   true if we found and updated the object, else false
    */
   public static function setIsActive($id, $is_active) {
+    CRM_Core_Error::deprecatedFunctionWarning('writeRecord');
     return CRM_Core_DAO::setFieldValue('CRM_Core_DAO_Navigation', $id, 'is_active', $is_active);
   }
 
diff --git a/civicrm/CRM/Core/BAO/Note.php b/civicrm/CRM/Core/BAO/Note.php
index b8abef965f65c9b9a2751801f71d190a39955652..02be74e66a899b1e2c6503a3bed3265092bf0f13 100644
--- a/civicrm/CRM/Core/BAO/Note.php
+++ b/civicrm/CRM/Core/BAO/Note.php
@@ -105,8 +105,7 @@ class CRM_Core_BAO_Note extends CRM_Core_DAO_Note implements \Civi\Core\HookInte
    *   (reference) an assoc array of name/value pairs.
    * @param array $ids
    *   (deprecated) associated array with note id - preferably set $params['id'].
-   * @return null|object
-   *   $note CRM_Core_BAO_Note object
+   * @return CRM_Core_BAO_Note|null
    * @throws \CRM_Core_Exception
    */
   public static function add(&$params, $ids = []) {
@@ -121,23 +120,28 @@ class CRM_Core_BAO_Note extends CRM_Core_DAO_Note implements \Civi\Core\HookInte
       }
     }
 
-    $note = new CRM_Core_BAO_Note();
-
-    if (!isset($params['privacy'])) {
-      $params['privacy'] = 0;
-    }
+    $loggedInContactID = CRM_Core_Session::getLoggedInContactID();
 
-    $note->copyValues($params);
-    if (empty($params['contact_id'])) {
-      if (CRM_Utils_Array::value('entity_table', $params) == 'civicrm_contact') {
-        $note->contact_id = $params['entity_id'];
-      }
-    }
     $id = $params['id'] ?? $ids['id'] ?? NULL;
+
+    // Ugly legacy support for deprecated $ids param
     if ($id) {
-      $note->id = $id;
+      $params['id'] = $id;
+    }
+    // Set defaults for create mode
+    else {
+      $params += [
+        'privacy' => 0,
+        'contact_id' => $loggedInContactID,
+      ];
+      // If not created by a user, guess the note was self-created
+      if (empty($params['contact_id']) && $params['entity_table'] == 'civicrm_contact') {
+        $params['contact_id'] = $params['entity_id'];
+      }
     }
 
+    $note = new CRM_Core_BAO_Note();
+    $note->copyValues($params);
     $note->save();
 
     // check and attach and files as needed
@@ -152,7 +156,6 @@ class CRM_Core_BAO_Note extends CRM_Core_DAO_Note implements \Civi\Core\HookInte
 
       $noteActions = FALSE;
 
-      $loggedInContactID = CRM_Core_Session::getLoggedInContactID();
       if ($loggedInContactID) {
         if ($loggedInContactID == $note->entity_id) {
           $noteActions = TRUE;
@@ -276,7 +279,7 @@ class CRM_Core_BAO_Note extends CRM_Core_DAO_Note implements \Civi\Core\HookInte
    * @return int
    */
   public static function del($id) {
-    // CRM_Core_Error::deprecatedFunctionWarning('deleteRecord');
+    CRM_Core_Error::deprecatedFunctionWarning('deleteRecord');
     self::deleteRecord(['id' => $id]);
 
     return 1;
diff --git a/civicrm/CRM/Core/BAO/OpenID.php b/civicrm/CRM/Core/BAO/OpenID.php
index 2e1e1576a192da0b53a587097a10167be19b8535..df2a04705bf5ccd69ce87404daa87a5d7cc1487c 100644
--- a/civicrm/CRM/Core/BAO/OpenID.php
+++ b/civicrm/CRM/Core/BAO/OpenID.php
@@ -18,35 +18,39 @@
 /**
  * This class contains function for Open Id
  */
-class CRM_Core_BAO_OpenID extends CRM_Core_DAO_OpenID {
+class CRM_Core_BAO_OpenID extends CRM_Core_DAO_OpenID implements Civi\Core\HookInterface {
   use CRM_Contact_AccessTrait;
 
   /**
-   * Create or update OpenID record.
+   * @deprecated
    *
    * @param array $params
-   *
    * @return CRM_Core_DAO_OpenID
-   *
-   * @throws \CRM_Core_Exception
+   * @throws CRM_Core_Exception
    */
   public static function create($params) {
-    CRM_Core_BAO_Block::handlePrimary($params, __CLASS__);
+    CRM_Core_Error::deprecatedFunctionWarning('writeRecord');
     return self::writeRecord($params);
   }
 
   /**
-   * Create or update OpenID record.
-   *
+   * Event fired before modifying an OpenID.
+   * @param \Civi\Core\Event\PreEvent $event
+   */
+  public static function self_hook_civicrm_pre(\Civi\Core\Event\PreEvent $event) {
+    if (in_array($event->action, ['create', 'edit'])) {
+      CRM_Core_BAO_Block::handlePrimary($event->params, __CLASS__);
+    }
+  }
+
+  /**
    * @deprecated
    *
    * @param array $params
-   *
-   * @return \CRM_Core_DAO|\CRM_Core_DAO_IM
-   * @throws \CRM_Core_Exception
+   * @return CRM_Core_DAO_OpenID
+   * @throws CRM_Core_Exception
    */
   public static function add($params) {
-    CRM_Core_Error::deprecatedFunctionWarning('use the v4 api');
     return self::create($params);
   }
 
@@ -126,6 +130,7 @@ ORDER BY
    * @return bool
    */
   public static function del($id) {
+    CRM_Core_Error::deprecatedFunctionWarning('deleteRecord');
     return (bool) self::deleteRecord(['id' => $id]);
   }
 
diff --git a/civicrm/CRM/Core/BAO/OptionGroup.php b/civicrm/CRM/Core/BAO/OptionGroup.php
index c7de6d7eea0550ad6364dccacd8017bdc5530b57..bd3ffe9c3368b13c7965d07223158e6d6204e809 100644
--- a/civicrm/CRM/Core/BAO/OptionGroup.php
+++ b/civicrm/CRM/Core/BAO/OptionGroup.php
@@ -34,17 +34,13 @@ class CRM_Core_BAO_OptionGroup extends CRM_Core_DAO_OptionGroup implements \Civi
   }
 
   /**
-   * Update the is_active flag in the db.
-   *
+   * @deprecated - this bypasses hooks.
    * @param int $id
-   *   Id of the database record.
    * @param bool $is_active
-   *   Value we want to set the is_active field.
-   *
    * @return bool
-   *   true if we found and updated the object, else false
    */
   public static function setIsActive($id, $is_active) {
+    CRM_Core_Error::deprecatedFunctionWarning('writeRecord');
     return CRM_Core_DAO::setFieldValue('CRM_Core_DAO_OptionGroup', $id, 'is_active', $is_active);
   }
 
@@ -82,6 +78,7 @@ class CRM_Core_BAO_OptionGroup extends CRM_Core_DAO_OptionGroup implements \Civi
    * @param int $optionGroupId
    */
   public static function del($optionGroupId) {
+    CRM_Core_Error::deprecatedFunctionWarning('deleteRecord');
     static::deleteRecord(['id' => $optionGroupId]);
   }
 
diff --git a/civicrm/CRM/Core/BAO/OptionValue.php b/civicrm/CRM/Core/BAO/OptionValue.php
index aeff6e50a4080a14bc2a9ab7e80df3987e9d97cd..622fca1c20de5709110ddb275cc98ea94adc6f47 100644
--- a/civicrm/CRM/Core/BAO/OptionValue.php
+++ b/civicrm/CRM/Core/BAO/OptionValue.php
@@ -107,15 +107,10 @@ class CRM_Core_BAO_OptionValue extends CRM_Core_DAO_OptionValue implements \Civi
   }
 
   /**
-   * Update the is_active flag in the db.
-   *
+   * @deprecated - this bypasses hooks.
    * @param int $id
-   *   Id of the database record.
    * @param bool $is_active
-   *   Value we want to set the is_active field.
-   *
    * @return bool
-   *   true if we found and updated the object, else false
    */
   public static function setIsActive($id, $is_active) {
     return CRM_Core_DAO::setFieldValue('CRM_Core_DAO_OptionValue', $id, 'is_active', $is_active);
@@ -230,6 +225,7 @@ class CRM_Core_BAO_OptionValue extends CRM_Core_DAO_OptionValue implements \Civi
    * @deprecated
    */
   public static function del($optionValueId) {
+    CRM_Core_Error::deprecatedFunctionWarning('deleteRecord');
     return (bool) static::deleteRecord(['id' => $optionValueId]);
   }
 
diff --git a/civicrm/CRM/Core/BAO/Phone.php b/civicrm/CRM/Core/BAO/Phone.php
index cf095fa29a6d9c127f7474211b74b5c2e2a23fd6..1c1b005588fd7e1a8e760dabe43f8a1781856fba 100644
--- a/civicrm/CRM/Core/BAO/Phone.php
+++ b/civicrm/CRM/Core/BAO/Phone.php
@@ -18,39 +18,39 @@
 /**
  * Class contains functions for phone.
  */
-class CRM_Core_BAO_Phone extends CRM_Core_DAO_Phone {
+class CRM_Core_BAO_Phone extends CRM_Core_DAO_Phone implements Civi\Core\HookInterface {
   use CRM_Contact_AccessTrait;
 
   /**
-   * Create phone object - note that the create function calls 'add' but
-   * has more business logic
+   * @deprecated
    *
    * @param array $params
-   *
-   * @return \CRM_Core_DAO_Phone
-   *
-   * @throws \CRM_Core_Exception
+   * @return CRM_Core_DAO_Phone
+   * @throws CRM_Core_Exception
    */
   public static function create($params) {
-    CRM_Core_BAO_Block::handlePrimary($params, get_class());
+    CRM_Core_Error::deprecatedFunctionWarning('writeRecord');
     return self::writeRecord($params);
   }
 
   /**
-   * Takes an associative array and adds phone.
-   *
-   * @deprecated use create.
+   * Event fired before modifying a Phone.
+   * @param \Civi\Core\Event\PreEvent $event
+   */
+  public static function self_hook_civicrm_pre(\Civi\Core\Event\PreEvent $event) {
+    if (in_array($event->action, ['create', 'edit'])) {
+      CRM_Core_BAO_Block::handlePrimary($event->params, __CLASS__);
+    }
+  }
+
+  /**
+   * @deprecated
    *
    * @param array $params
-   *   (reference ) an assoc array of name/value pairs.
-   *
-   * @return object
-   *   CRM_Core_BAO_Phone object on success, null otherwise
-   *
+   * @return CRM_Core_DAO_Phone
    * @throws \CRM_Core_Exception
    */
   public static function add($params) {
-    CRM_Core_Error::deprecatedFunctionWarning('Use the v4 api');
     return self::create($params);
   }
 
diff --git a/civicrm/CRM/Core/BAO/RecurringEntity.php b/civicrm/CRM/Core/BAO/RecurringEntity.php
index 5e3e4c2d4be6a03c4482e9bfd2a442ee3b350399..c34c25bdafa6ea5e986be2629e9904f613a4e593 100644
--- a/civicrm/CRM/Core/BAO/RecurringEntity.php
+++ b/civicrm/CRM/Core/BAO/RecurringEntity.php
@@ -149,6 +149,7 @@ class CRM_Core_BAO_RecurringEntity extends CRM_Core_DAO_RecurringEntity implemen
    * @return CRM_Core_DAO_RecurringEntity
    */
   public static function add($params) {
+    CRM_Core_Error::deprecatedFunctionWarning('writeRecord');
     return self::writeRecord($params);
   }
 
diff --git a/civicrm/CRM/Core/BAO/SchemaHandler.php b/civicrm/CRM/Core/BAO/SchemaHandler.php
index a58dd8c4821df6983eab09439cd57c3f533ce224..62fe656602a83bc6519facd957cb3ca088770c2d 100644
--- a/civicrm/CRM/Core/BAO/SchemaHandler.php
+++ b/civicrm/CRM/Core/BAO/SchemaHandler.php
@@ -268,13 +268,13 @@ ALTER TABLE {$tableName}
   }
 
   /**
-   * Delete a CiviCRM-table.
+   * Drop a table if it exists.
    *
    * @param string $tableName
-   *   Name of the table to be created.
+   * @throws \Civi\Core\Exception\DBQueryException
    */
-  public static function dropTable($tableName) {
-    $sql = "DROP TABLE $tableName";
+  public static function dropTable(string $tableName): void {
+    $sql = "DROP TABLE IF EXISTS $tableName";
     CRM_Core_DAO::executeQuery($sql);
   }
 
@@ -906,6 +906,49 @@ MODIFY      {$columnName} varchar( $length )
     return \Civi::$statics[__CLASS__][__FUNCTION__];
   }
 
+  /**
+   * Get estimated number of rows in the given tables.
+   *
+   * Note that this query is less precise than SELECT(*) - especially on
+   * larger tables but performs significantly better.
+   * See https://dba.stackexchange.com/questions/184685/why-is-count-slow-when-explain-knows-the-answer
+   *
+   * @param array $tables
+   *   e.g ['civicrm_contact', 'civicrm_activity']
+   *
+   * @return array
+   *   e.g ['civicrm_contact' => 200000, 'civicrm_activity' => 100000]
+   */
+  public static function getRowCountForTables(array $tables): array {
+    $cachedResults = Civi::$statics[__CLASS__][__FUNCTION__] ?? [];
+    // Compile list of tables not already cached.
+    $tablesToCheck = array_keys(array_diff_key(array_flip($tables), $cachedResults));
+    $result = CRM_Core_DAO::executeQuery('
+      SELECT TABLE_ROWS as row_count, TABLE_NAME as table_name FROM information_schema.TABLES WHERE
+      TABLE_NAME IN("' . implode('","', $tablesToCheck) . '")
+      AND TABLE_SCHEMA = DATABASE()'
+    );
+    while ($result->fetch()) {
+      $cachedResults[$result->table_name] = (int) $result->row_count;
+    }
+    Civi::$statics[__CLASS__][__FUNCTION__] = $cachedResults;
+    return array_intersect_key($cachedResults, array_fill_keys($tables, TRUE));
+  }
+
+  /**
+   * Get estimated number of rows in the given table.
+   *
+   * @see self::getRowCountForTables
+   *
+   * @param string $tableName
+   *
+   * @return int
+   *   The approximate number of rows in the table. This is also 0 if the table does not exist.
+   */
+  public static function getRowCountForTable(string $tableName): int {
+    return self::getRowCountForTables([$tableName])[$tableName] ?? 0;
+  }
+
   /**
    * Does the database support utf8mb4.
    *
diff --git a/civicrm/CRM/Core/BAO/Tag.php b/civicrm/CRM/Core/BAO/Tag.php
index e2c8422f19ae6ae7b93661c22c355ed8a56dc856..7991e8cb73d145862dd6969bdfc304c7942733a3 100644
--- a/civicrm/CRM/Core/BAO/Tag.php
+++ b/civicrm/CRM/Core/BAO/Tag.php
@@ -350,6 +350,7 @@ class CRM_Core_BAO_Tag extends CRM_Core_DAO_Tag {
    * @return bool
    */
   public static function del($id) {
+    CRM_Core_Error::deprecatedFunctionWarning('deleteRecord');
     return (bool) static::deleteRecord(['id' => $id]);
   }
 
diff --git a/civicrm/CRM/Core/BAO/UFField.php b/civicrm/CRM/Core/BAO/UFField.php
index ae8a9dd907544f44821c9e3df3c70b62d218eaf5..5ade83e12f2b2f945adf0cc5c91fabb60771af78 100644
--- a/civicrm/CRM/Core/BAO/UFField.php
+++ b/civicrm/CRM/Core/BAO/UFField.php
@@ -131,15 +131,10 @@ class CRM_Core_BAO_UFField extends CRM_Core_DAO_UFField {
   }
 
   /**
-   * Update the is_active flag in the db.
-   *
+   * @deprecated - this bypasses hooks.
    * @param int $id
-   *   Id of the database record.
    * @param bool $is_active
-   *   Value we want to set the is_active field.
-   *
    * @return bool
-   *   true if we found and updated the object, else false
    */
   public static function setIsActive($id, $is_active) {
     //check if custom data profile field is disabled
@@ -164,6 +159,7 @@ class CRM_Core_BAO_UFField extends CRM_Core_DAO_UFField {
    * @return bool
    */
   public static function del($id) {
+    CRM_Core_Error::deprecatedFunctionWarning('deleteRecord');
     return (bool) self::deleteRecord(['id' => $id]);
   }
 
@@ -319,7 +315,7 @@ WHERE cf.id IN (" . $customFieldIds . ") AND is_multiple = 1 LIMIT 0,1";
     $ufField->find();
     while ($ufField->fetch()) {
       //enable/ disable profile
-      CRM_Core_BAO_UFField::del($ufField->id);
+      CRM_Core_BAO_UFField::deleteRecord(['id' => $ufField->id]);
     }
   }
 
diff --git a/civicrm/CRM/Core/BAO/UFGroup.php b/civicrm/CRM/Core/BAO/UFGroup.php
index 44ea26425c1fd16d719f8ff01fee235269e008c0..aa471362cea8bc558fc1150f14ca968d3d6bff6c 100644
--- a/civicrm/CRM/Core/BAO/UFGroup.php
+++ b/civicrm/CRM/Core/BAO/UFGroup.php
@@ -94,15 +94,10 @@ class CRM_Core_BAO_UFGroup extends CRM_Core_DAO_UFGroup implements \Civi\Core\Ho
   }
 
   /**
-   * Update the is_active flag in the db.
-   *
+   * @deprecated - this bypasses hooks.
    * @param int $id
-   *   Id of the database record.
    * @param bool $is_active
-   *   Value we want to set the is_active field.
-   *
    * @return bool
-   *   true if we found and updated the object, else false
    */
   public static function setIsActive($id, $is_active) {
     return CRM_Core_DAO::setFieldValue('CRM_Core_DAO_UFGroup', $id, 'is_active', $is_active);
@@ -1404,6 +1399,7 @@ class CRM_Core_BAO_UFGroup extends CRM_Core_DAO_UFGroup implements \Civi\Core\Ho
    * @deprecated
    */
   public static function del($id) {
+    CRM_Core_Error::deprecatedFunctionWarning('deleteRecord');
     return (bool) static::deleteRecord(['id' => $id]);
   }
 
@@ -1931,8 +1927,9 @@ AND    ( entity_id IS NULL OR entity_id <= 0 )
         // we only have one org - so we should default to it. Not sure about defaulting to first type
         // as it could be missed - so adding a select
         // however, possibly that is more similar to the membership form
-        if (count($types[1]) > 1) {
-          $types[1] = $select + $types[1];
+        $orgId = array_key_first($orgInfo);
+        if (!empty($types[$orgId])) {
+          $types[$orgId] = $select + $types[$orgId];
         }
       }
       else {
@@ -2174,7 +2171,7 @@ AND    ( entity_id IS NULL OR entity_id <= 0 )
       if (CRM_Campaign_BAO_Campaign::isComponentEnabled()) {
         $campaigns = CRM_Campaign_BAO_Campaign::getCampaigns(CRM_Utils_Array::value($contactId,
           $form->_componentCampaigns
-        ));
+        ), NULL, TRUE, FALSE);
         $form->add('select', $name, $title,
           $campaigns, $required,
           [
diff --git a/civicrm/CRM/Core/BAO/UFJoin.php b/civicrm/CRM/Core/BAO/UFJoin.php
index df3643984d50f4a0d373d99a1fe11e14ea0ce988..493594176dc7f49687c54106ea54e186abd2d1f6 100644
--- a/civicrm/CRM/Core/BAO/UFJoin.php
+++ b/civicrm/CRM/Core/BAO/UFJoin.php
@@ -21,11 +21,11 @@
 class CRM_Core_BAO_UFJoin extends CRM_Core_DAO_UFJoin {
 
   /**
-   * Takes an associative array and creates a uf join object.
+   * This deprecated "create" function alarmingly will DELETE records if you don't pass them in just right!
    *
    * @param array $params
-   *   (reference) an assoc array of name/value pairs.
    *
+   * @deprecated
    * @return CRM_Core_DAO_UFJoin
    */
   public static function &create($params) {
diff --git a/civicrm/CRM/Core/BAO/UserJob.php b/civicrm/CRM/Core/BAO/UserJob.php
index 036a4b4b9cb2e16281f2b5f3948b2304446300d9..9979e6c73efc36d75215f6b45177837aba003f4c 100644
--- a/civicrm/CRM/Core/BAO/UserJob.php
+++ b/civicrm/CRM/Core/BAO/UserJob.php
@@ -15,14 +15,17 @@
  * @copyright CiviCRM LLC https://civicrm.org/licensing
  */
 
+use Civi\Api4\Mapping;
 use Civi\Api4\UserJob;
 use Civi\Core\ClassScanner;
+use Civi\Core\Event\PreEvent;
+use Civi\Core\HookInterface;
 use Civi\UserJob\UserJobInterface;
 
 /**
  * This class contains user jobs functionality.
  */
-class CRM_Core_BAO_UserJob extends CRM_Core_DAO_UserJob implements \Civi\Core\HookInterface {
+class CRM_Core_BAO_UserJob extends CRM_Core_DAO_UserJob implements HookInterface {
 
   /**
    * Check on the status of a queue.
@@ -63,6 +66,58 @@ class CRM_Core_BAO_UserJob extends CRM_Core_DAO_UserJob implements \Civi\Core\Ho
     }
   }
 
+  /**
+   * Enforce template expectations by unsetting non-template variables.
+   *
+   * Also delete the template if the Mapping is deleted.
+   *
+   * @param \Civi\Core\Event\PreEvent $event
+   *
+   * @noinspection PhpUnused
+   * @throws \CRM_Core_Exception
+   */
+  public static function on_hook_civicrm_pre(PreEvent $event): void {
+    if ($event->entity === 'UserJob' &&
+      (!empty($event->params['is_template'])
+      || ($event->action === 'edit' && self::isTemplate($event->params['id']))
+    )) {
+      $params = &$event->params;
+      if (empty($params['name']) && empty($params['id'])) {
+        throw new CRM_Core_Exception('Name is required for template user job');
+      }
+      if ($params['metadata']['submitted_values']['dataSource'] ?? NULL === 'CRM_Import_DataSource_SQL') {
+        // This contains path information that we are better to ditch at this point.
+        // Ideally we wouldn't save this in submitted values - but just use it.
+        unset($params['metadata']['submitted_values']['uploadFile']);
+      }
+      // This contains information about the import-specific data table.
+      unset($params['metadata']['DataSource']['table_name']);
+      // Do not keep values about updating the Mapping/UserJob template.
+      unset($params['metadata']['MapField']['saveMapping'], $params['metadata']['MapField']['updateMapping']);
+    }
+
+    // If the related mapping is deleted then delete the UserJob template
+    // This almost never happens in practice...
+    if ($event->entity === 'Mapping' && $event->action === 'delete') {
+      $mappingName = Mapping::get(FALSE)->addWhere('id', '=', $event->id)->addSelect('name')->execute()->first()['name'];
+      UserJob::delete(FALSE)->addWhere('name', '=', 'import_' . $mappingName)->execute();
+    }
+  }
+
+  /**
+   * Is this id a Template.
+   *
+   * @param int $id
+   *
+   * @return bool
+   * @throws \CRM_Core_Exception
+   */
+  private static function isTemplate(int $id) : bool {
+    return (bool) UserJob::get(FALSE)->addWhere('id', '=', $id)
+      ->addWhere('is_template', '=', 1)
+      ->selectRowCount()->execute()->rowCount;
+  }
+
   private static function findUserJobId(string $queueName): ?int {
     if (CRM_Core_Config::isUpgradeMode()) {
       return NULL;
@@ -97,7 +152,9 @@ class CRM_Core_BAO_UserJob extends CRM_Core_DAO_UserJob implements \Civi\Core\Ho
   public function addSelectWhereClause(): array {
     $clauses = [];
     if (!\CRM_Core_Permission::check('administer queues')) {
-      $clauses['created_id'] = '= ' . (int) CRM_Core_Session::getLoggedInContactID();
+      // @todo - the is_template should really be prefixed. We need to add support
+      // for that in the compiler & then this would be `{table}.is_template`
+      $clauses['created_id'] = '= ' . (int) CRM_Core_Session::getLoggedInContactID() . ' OR is_template = 1';
     }
     CRM_Utils_Hook::selectWhereClause($this, $clauses);
     return $clauses;
@@ -142,11 +199,12 @@ class CRM_Core_BAO_UserJob extends CRM_Core_DAO_UserJob implements \Civi\Core\Ho
    *   -label
    *   -class
    *   -entity
+   *   -url
    *
    * @return array
    */
   public static function getTypes(): array {
-    $types = Civi::cache()->get('UserJobTypes');
+    $types = Civi::cache('metadata')->get('UserJobTypes');
     if ($types === NULL) {
       $types = [];
       $classes = ClassScanner::get(['interface' => UserJobInterface::class]);
@@ -158,7 +216,7 @@ class CRM_Core_BAO_UserJob extends CRM_Core_DAO_UserJob implements \Civi\Core\Ho
         }
         $types = array_merge($types, $declaredTypes);
       }
-      Civi::cache()->set('UserJobTypes', $types);
+      Civi::cache('metadata')->set('UserJobTypes', $types);
     }
     // Rekey to numeric to prevent https://lab.civicrm.org/dev/core/-/issues/3719
     return array_values($types);
diff --git a/civicrm/CRM/Core/BAO/Website.php b/civicrm/CRM/Core/BAO/Website.php
index 14c740d694fb596c6945408f09bee875db04a917..ab53574edb25684cf7816639be332db6460feeef 100644
--- a/civicrm/CRM/Core/BAO/Website.php
+++ b/civicrm/CRM/Core/BAO/Website.php
@@ -22,13 +22,11 @@ class CRM_Core_BAO_Website extends CRM_Core_DAO_Website {
   use CRM_Contact_AccessTrait;
 
   /**
-   * Create or update Website record.
+   * @deprecated
    *
    * @param array $params
-   *
-   * @deprecated
    * @return CRM_Core_DAO_Website
-   * @throws \CRM_Core_Exception
+   * @throws CRM_Core_Exception
    */
   public static function create($params) {
     CRM_Core_Error::deprecatedFunctionWarning('writeRecord');
@@ -36,16 +34,14 @@ class CRM_Core_BAO_Website extends CRM_Core_DAO_Website {
   }
 
   /**
-   * Create website.
+   * @deprecated
    *
    * @param array $params
-   *
    * @return CRM_Core_DAO_Website
-   * @throws \CRM_Core_Exception
-   * @deprecated
+   * @throws CRM_Core_Exception
    */
   public static function add($params) {
-    CRM_Core_Error::deprecatedFunctionWarning('use apiv4');
+    CRM_Core_Error::deprecatedFunctionWarning('writeRecord');
     return self::writeRecord($params);
   }
 
diff --git a/civicrm/CRM/Core/BAO/WordReplacement.php b/civicrm/CRM/Core/BAO/WordReplacement.php
index 0cf4af17a4f0441acd9d5fdba3455fc44175a83c..e3429a12b082bfbf301dc48abce2be43e9067d70 100644
--- a/civicrm/CRM/Core/BAO/WordReplacement.php
+++ b/civicrm/CRM/Core/BAO/WordReplacement.php
@@ -65,6 +65,7 @@ class CRM_Core_BAO_WordReplacement extends CRM_Core_DAO_WordReplacement implemen
    * @return array
    */
   public static function create($params) {
+    CRM_Core_Error::deprecatedFunctionWarning('writeRecord');
     if (array_key_exists("domain_id", $params) === FALSE) {
       $params["domain_id"] = CRM_Core_Config::domainID();
     }
@@ -85,6 +86,7 @@ class CRM_Core_BAO_WordReplacement extends CRM_Core_DAO_WordReplacement implemen
    * @return CRM_Core_DAO_WordReplacement
    */
   public static function del($id) {
+    CRM_Core_Error::deprecatedFunctionWarning('deleteRecord');
     return static::deleteRecord(['id' => $id]);
   }
 
diff --git a/civicrm/CRM/Core/Base.php b/civicrm/CRM/Core/Base.php
deleted file mode 100644
index cd1657d675e303bd86c910768ca202e29be3da9a..0000000000000000000000000000000000000000
--- a/civicrm/CRM/Core/Base.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-/*
- +--------------------------------------------------------------------+
- | Copyright CiviCRM LLC. All rights reserved.                        |
- |                                                                    |
- | This work is published under the GNU AGPLv3 license with some      |
- | permitted exceptions and without any warranty. For full license    |
- | and copyright information, see https://civicrm.org/licensing       |
- +--------------------------------------------------------------------+
- */
-
-/**
- * The Base class of the CRM hierarchy. Currently does not provide
- * any useful functionality. As such we dont require anyone to derive
- * from this class. However it includes a few common files
- *
- * @package CRM
- * @copyright CiviCRM LLC https://civicrm.org/licensing
- */
-
-require_once 'CRM/Core/I18n.php';
-
-/**
- * Class CRM_Core_Base
- */
-class CRM_Core_Base {
-
-  /**
-   * Constructor.
-   */
-  public function __construct() {
-  }
-
-}
diff --git a/civicrm/CRM/Core/CodeGen/Specification.php b/civicrm/CRM/Core/CodeGen/Specification.php
index 9f3aaea73769fb602c8bd2b6cfdcde240613bd3c..c26671270e1c32e81d692948f3133585beef2766 100644
--- a/civicrm/CRM/Core/CodeGen/Specification.php
+++ b/civicrm/CRM/Core/CodeGen/Specification.php
@@ -23,7 +23,7 @@ class CRM_Core_CodeGen_Specification {
     $this->buildVersion = $buildVersion;
 
     if ($verbose) {
-      echo "Parsing schema description " . $schemaPath . "\n";
+      echo 'Parsing schema description ' . $schemaPath . "\n";
     }
     $dbXML = CRM_Core_CodeGen_Util_Xml::parse($schemaPath);
 
@@ -45,13 +45,13 @@ class CRM_Core_CodeGen_Specification {
 
     // add archive tables here
     foreach ($this->tables as $name => $table) {
-      if ($table['archive'] == 'true') {
+      if ($table['archive'] === 'true') {
         $name = 'archive_' . $table['name'];
         $table['name'] = $name;
         $table['archive'] = 'false';
         if (isset($table['foreignKey'])) {
           foreach ($table['foreignKey'] as $fkName => $fkValue) {
-            if ($this->tables[$fkValue['table']]['archive'] == 'true') {
+            if ($this->tables[$fkValue['table']]['archive'] === 'true') {
               $table['foreignKey'][$fkName]['table'] = 'archive_' . $table['foreignKey'][$fkName]['table'];
               $table['foreignKey'][$fkName]['uniqName']
                 = str_replace('FK_', 'FK_archive_', $table['foreignKey'][$fkName]['uniqName']);
@@ -355,7 +355,7 @@ class CRM_Core_CodeGen_Specification {
 
       default:
         $field['sqlType'] = $type;
-        if ($type == 'int unsigned' || $type == 'tinyint') {
+        if ($type === 'int unsigned' || $type === 'tinyint') {
           $field['crmType'] = 'CRM_Utils_Type::T_INT';
         }
         else {
@@ -372,13 +372,28 @@ class CRM_Core_CodeGen_Specification {
     $field['comment'] = $this->value('comment', $fieldXML);
     $field['deprecated'] = $this->value('deprecated', $fieldXML, FALSE);
     $field['default'] = $this->value('default', $fieldXML);
-    $field['import'] = $this->value('import', $fieldXML);
-    if ($this->value('export', $fieldXML)) {
-      $field['export'] = $this->value('export', $fieldXML);
+    $import = $this->value('import', $fieldXML) ? strtoupper($this->value('import', $fieldXML)) : 'FALSE';
+    $export = $this->value('export', $fieldXML) ? strtoupper($this->value('export', $fieldXML)) : NULL;
+    if (!isset($fieldXML->usage)) {
+      $usage = [
+        'import' => $import,
+        'export' => $export ?? $import,
+      ];
     }
     else {
-      $field['export'] = $this->value('import', $fieldXML);
-    }
+      $usage = [];
+      foreach ($fieldXML->usage->children() as $usedFor => $isUsed) {
+        $usage[$usedFor] = strtoupper((string) $isUsed);
+      }
+      $import = $usage['import'] ?? $import;
+    }
+    // Ensure all keys are populated. Import is the historical de-facto default.
+    $field['usage'] = array_merge(array_fill_keys(['import', 'export', 'duplicate_matching'], $import), $usage);
+    // Usage for tokens has not historically been in the metadata so we can default to FALSE.
+    // historically hard-coded lists have been used.
+    $field['usage']['token'] = $field['usage']['token'] ?? 'FALSE';
+    $field['import'] = $field['usage']['import'];
+    $field['export'] = $export ?? $import;
     $field['rule'] = $this->value('rule', $fieldXML);
     $field['title'] = $this->value('title', $fieldXML);
     if (!$field['title']) {
@@ -730,7 +745,7 @@ class CRM_Core_CodeGen_Specification {
    * @param $object
    * @param null $default
    *
-   * @return null|string
+   * @return null|string|\SimpleXMLElement
    */
   protected function value($key, &$object, $default = NULL) {
     if (isset($object->$key)) {
diff --git a/civicrm/CRM/Core/Config.php b/civicrm/CRM/Core/Config.php
index 415762ce4afbd2aeb9d4bf23819626178ceffe73..2aa80a0cfe1473424b653cb59cc4dcfb916c35ec 100644
--- a/civicrm/CRM/Core/Config.php
+++ b/civicrm/CRM/Core/Config.php
@@ -66,7 +66,7 @@ class CRM_Core_Config extends CRM_Core_Config_MagicMerge {
    *
    * @var CRM_Core_Config
    */
-  private static $_singleton = NULL;
+  private static $_singleton;
 
   /**
    * Singleton function used to manage this object.
diff --git a/civicrm/CRM/Core/DAO.php b/civicrm/CRM/Core/DAO.php
index f63391c46d2821ba820e314d128c5c39093b0edc..46a9026eaf69cd7844c5be6c89fa96b5588eb857 100644
--- a/civicrm/CRM/Core/DAO.php
+++ b/civicrm/CRM/Core/DAO.php
@@ -134,11 +134,6 @@ class CRM_Core_DAO extends DB_DataObject {
    * @var array
    */
   public static $_testEntitiesToSkip = [];
-  /**
-   * The factory class for this application.
-   * @var object
-   */
-  public static $_factory = NULL;
 
   /**
    * https://issues.civicrm.org/jira/browse/CRM-17748
@@ -231,8 +226,6 @@ class CRM_Core_DAO extends DB_DataObject {
     if (defined('CIVICRM_DAO_DEBUG')) {
       self::DebugLevel(CIVICRM_DAO_DEBUG);
     }
-    $factory = new CRM_Contact_DAO_Factory();
-    CRM_Core_DAO::setFactory($factory);
     CRM_Core_DAO::executeQuery('SET NAMES utf8mb4');
     CRM_Core_DAO::executeQuery('SET @uniqueID = %1', [1 => [CRM_Utils_Request::id(), 'String']]);
   }
@@ -497,30 +490,6 @@ class CRM_Core_DAO extends DB_DataObject {
     return $ret;
   }
 
-  /**
-   * Static function to set the factory instance for this class.
-   *
-   * @param object $factory
-   *   The factory application object.
-   */
-  public static function setFactory(&$factory) {
-    self::$_factory = &$factory;
-  }
-
-  /**
-   * Factory method to instantiate a new object from a table name.
-   *
-   * @param string $table
-   * @return \DataObject|\PEAR_Error
-   */
-  public function factory($table = '') {
-    if (!isset(self::$_factory)) {
-      return parent::factory($table);
-    }
-
-    return self::$_factory->create($table);
-  }
-
   /**
    * Initialization for all DAO objects. Since we access DB_DO programatically
    * we need to set the links manually.
@@ -974,7 +943,7 @@ class CRM_Core_DAO extends DB_DataObject {
       CRM_Core_BAO_CustomValueTable::store($record['custom'], static::$_tableName, $instance->$idField, $op);
     }
 
-    \CRM_Utils_Hook::post($op, $entityName, $instance->$idField, $instance);
+    \CRM_Utils_Hook::post($op, $entityName, $instance->$idField, $instance, $record);
 
     return $instance;
   }
@@ -1026,7 +995,7 @@ class CRM_Core_DAO extends DB_DataObject {
     // For other operations this hook is passed an incomplete object and hook listeners can load if needed.
     // But that's not possible with delete because it's gone from the database by the time this hook is called.
     // So in this case the object has been pre-loaded so hook listeners have access to the complete record.
-    CRM_Utils_Hook::post('delete', $entityName, $record[$idField], $instance);
+    CRM_Utils_Hook::post('delete', $entityName, $record[$idField], $instance, $record);
 
     return $instance;
   }
@@ -1081,9 +1050,11 @@ class CRM_Core_DAO extends DB_DataObject {
   }
 
   /**
-   * Scans all the tables using a slow query and table name.
+   * Gets the names of all the tables in the schema.
    *
    * @return array
+   *
+   * @throws \CRM_Core_Exception
    */
   public static function getTableNames(): array {
     $dao = CRM_Core_DAO::executeQuery(
@@ -1625,6 +1596,8 @@ LIKE %1
    *   object that holds the results of the query
    *   NB - if this is defined as just returning a DAO phpstorm keeps pointing
    *   out all the properties that are not part of the DAO
+   *
+   * @throws \Civi\Core\Exception\DBQueryException
    */
   public static function &executeQuery(
     $query,
@@ -3075,9 +3048,11 @@ SELECT contact_id
   public function addSelectWhereClause() {
     $clauses = [];
     $fields = $this->fields();
+    // Notes should check permissions on the entity_id field, not the contact_id field
+    $skipContactCheckFor = ['Note'];
     foreach ($fields as $fieldName => $field) {
       // Clause for contact-related entities like Email, Relationship, etc.
-      if (strpos($field['name'], 'contact_id') === 0 && CRM_Utils_Array::value('FKClassName', $field) == 'CRM_Contact_DAO_Contact') {
+      if (strpos($field['name'], 'contact_id') === 0 && !in_array($field['entity'], $skipContactCheckFor) && CRM_Utils_Array::value('FKClassName', $field) == 'CRM_Contact_DAO_Contact') {
         $contactClause = CRM_Utils_SQL::mergeSubquery('Contact');
         if (!empty($contactClause)) {
           $clauses[$field['name']] = $contactClause;
diff --git a/civicrm/CRM/Core/DAO/ActionLog.php b/civicrm/CRM/Core/DAO/ActionLog.php
index 7e37d4a32378148c2877f140f6d543fe1927daae..8884e1650ae845d124c8cffb57a414caf0797380 100644
--- a/civicrm/CRM/Core/DAO/ActionLog.php
+++ b/civicrm/CRM/Core/DAO/ActionLog.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/ActionLog.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:b100fbb1e074e3c74ab83f463d7c5a19)
+ * (GenCodeChecksum:f26b6a45f88673909bc79f0dc47ec95e)
  */
 
 /**
@@ -166,6 +166,12 @@ class CRM_Core_DAO_ActionLog extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Action Schedule ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_log.id',
           'table_name' => 'civicrm_action_log',
           'entity' => 'ActionLog',
@@ -182,6 +188,12 @@ class CRM_Core_DAO_ActionLog extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Contact ID'),
           'description' => ts('FK to Contact ID'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_log.contact_id',
           'table_name' => 'civicrm_action_log',
           'entity' => 'ActionLog',
@@ -199,6 +211,12 @@ class CRM_Core_DAO_ActionLog extends CRM_Core_DAO {
           'title' => ts('Entity ID'),
           'description' => ts('FK to id of the entity that the action was performed on. Pseudo - FK.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_log.entity_id',
           'table_name' => 'civicrm_action_log',
           'entity' => 'ActionLog',
@@ -213,6 +231,12 @@ class CRM_Core_DAO_ActionLog extends CRM_Core_DAO {
           'description' => ts('name of the entity table for the above id, e.g. civicrm_activity, civicrm_participant'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_log.entity_table',
           'table_name' => 'civicrm_action_log',
           'entity' => 'ActionLog',
@@ -226,6 +250,12 @@ class CRM_Core_DAO_ActionLog extends CRM_Core_DAO {
           'title' => ts('Schedule ID'),
           'description' => ts('FK to the action schedule that this action originated from.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_log.action_schedule_id',
           'table_name' => 'civicrm_action_log',
           'entity' => 'ActionLog',
@@ -242,6 +272,12 @@ class CRM_Core_DAO_ActionLog extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME,
           'title' => ts('Action Date And Time'),
           'description' => ts('date time that the action was performed on.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_log.action_date_time',
           'table_name' => 'civicrm_action_log',
           'entity' => 'ActionLog',
@@ -255,6 +291,12 @@ class CRM_Core_DAO_ActionLog extends CRM_Core_DAO {
           'title' => ts('Error?'),
           'description' => ts('Was there any error sending the reminder?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_log.is_error',
           'default' => '0',
           'table_name' => 'civicrm_action_log',
@@ -268,6 +310,12 @@ class CRM_Core_DAO_ActionLog extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Message'),
           'description' => ts('Description / text in case there was an error encountered.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_log.message',
           'table_name' => 'civicrm_action_log',
           'entity' => 'ActionLog',
@@ -280,6 +328,12 @@ class CRM_Core_DAO_ActionLog extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Repetition Number'),
           'description' => ts('Keeps track of the sequence number of this repetition.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_log.repetition_number',
           'table_name' => 'civicrm_action_log',
           'entity' => 'ActionLog',
@@ -292,6 +346,12 @@ class CRM_Core_DAO_ActionLog extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME,
           'title' => ts('Reference Date'),
           'description' => ts('Stores the date from the entity which triggered this reminder action (e.g. membership.end_date for most membership renewal reminders)'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_log.reference_date',
           'default' => NULL,
           'table_name' => 'civicrm_action_log',
diff --git a/civicrm/CRM/Core/DAO/ActionMapping.php b/civicrm/CRM/Core/DAO/ActionMapping.php
index 3a4fb8586581d82b33fc92162ca46c5446ecad96..335dfc2b11eaedb004f3561a62b5d99999348ad3 100644
--- a/civicrm/CRM/Core/DAO/ActionMapping.php
+++ b/civicrm/CRM/Core/DAO/ActionMapping.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/ActionMapping.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:61d3614c11a560fd945d943065dab22b)
+ * (GenCodeChecksum:c36bae34fd3c6552c1738bde5b70d441)
  */
 
 /**
@@ -140,6 +140,12 @@ class CRM_Core_DAO_ActionMapping extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Action Mapping ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_mapping.id',
           'table_name' => 'civicrm_action_mapping',
           'entity' => 'ActionMapping',
@@ -158,6 +164,12 @@ class CRM_Core_DAO_ActionMapping extends CRM_Core_DAO {
           'description' => ts('Entity for which the reminder is created'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_mapping.entity',
           'table_name' => 'civicrm_action_mapping',
           'entity' => 'ActionMapping',
@@ -172,6 +184,12 @@ class CRM_Core_DAO_ActionMapping extends CRM_Core_DAO {
           'description' => ts('Entity value'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_mapping.entity_value',
           'table_name' => 'civicrm_action_mapping',
           'entity' => 'ActionMapping',
@@ -186,6 +204,12 @@ class CRM_Core_DAO_ActionMapping extends CRM_Core_DAO {
           'description' => ts('Entity value label'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_mapping.entity_value_label',
           'table_name' => 'civicrm_action_mapping',
           'entity' => 'ActionMapping',
@@ -200,6 +224,12 @@ class CRM_Core_DAO_ActionMapping extends CRM_Core_DAO {
           'description' => ts('Entity status'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_mapping.entity_status',
           'table_name' => 'civicrm_action_mapping',
           'entity' => 'ActionMapping',
@@ -214,6 +244,12 @@ class CRM_Core_DAO_ActionMapping extends CRM_Core_DAO {
           'description' => ts('Entity status label'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_mapping.entity_status_label',
           'table_name' => 'civicrm_action_mapping',
           'entity' => 'ActionMapping',
@@ -228,6 +264,12 @@ class CRM_Core_DAO_ActionMapping extends CRM_Core_DAO {
           'description' => ts('Entity date'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_mapping.entity_date_start',
           'table_name' => 'civicrm_action_mapping',
           'entity' => 'ActionMapping',
@@ -242,6 +284,12 @@ class CRM_Core_DAO_ActionMapping extends CRM_Core_DAO {
           'description' => ts('Entity date'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_mapping.entity_date_end',
           'table_name' => 'civicrm_action_mapping',
           'entity' => 'ActionMapping',
@@ -256,6 +304,12 @@ class CRM_Core_DAO_ActionMapping extends CRM_Core_DAO {
           'description' => ts('Entity recipient'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_mapping.entity_recipient',
           'table_name' => 'civicrm_action_mapping',
           'entity' => 'ActionMapping',
diff --git a/civicrm/CRM/Core/DAO/ActionSchedule.php b/civicrm/CRM/Core/DAO/ActionSchedule.php
index bccb443c786f2e3f145a277dfcac7b173696b30e..4a7b0184f8c463b7a9506a59e09cecf46949b632 100644
--- a/civicrm/CRM/Core/DAO/ActionSchedule.php
+++ b/civicrm/CRM/Core/DAO/ActionSchedule.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/ActionSchedule.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:4ab5f20424a3fe5d8b6938822ca65472)
+ * (GenCodeChecksum:8098f787ce516453231c9dd5c11e2185)
  */
 
 /**
@@ -458,6 +458,12 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Action Schedule ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_schedule.id',
           'table_name' => 'civicrm_action_schedule',
           'entity' => 'ActionSchedule',
@@ -476,6 +482,12 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO {
           'description' => ts('Name of the action(reminder)'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_schedule.name',
           'table_name' => 'civicrm_action_schedule',
           'entity' => 'ActionSchedule',
@@ -490,6 +502,12 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO {
           'description' => ts('Title of the action(reminder)'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_schedule.title',
           'table_name' => 'civicrm_action_schedule',
           'entity' => 'ActionSchedule',
@@ -504,6 +522,12 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO {
           'description' => ts('Recipient'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_schedule.recipient',
           'table_name' => 'civicrm_action_schedule',
           'entity' => 'ActionSchedule',
@@ -519,6 +543,12 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_BOOLEAN,
           'title' => ts('Limit To'),
           'description' => ts('Is this the recipient criteria limited to OR in addition to?'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_schedule.limit_to',
           'table_name' => 'civicrm_action_schedule',
           'entity' => 'ActionSchedule',
@@ -536,6 +566,12 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO {
           'description' => ts('Entity value'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_schedule.entity_value',
           'table_name' => 'civicrm_action_schedule',
           'entity' => 'ActionSchedule',
@@ -554,6 +590,12 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO {
           'description' => ts('Entity status'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_schedule.entity_status',
           'table_name' => 'civicrm_action_schedule',
           'entity' => 'ActionSchedule',
@@ -570,6 +612,12 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Start Action Offset'),
           'description' => ts('Reminder Interval.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_schedule.start_action_offset',
           'default' => '0',
           'table_name' => 'civicrm_action_schedule',
@@ -588,6 +636,12 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO {
           'description' => ts('Time units for reminder.'),
           'maxlength' => 8,
           'size' => CRM_Utils_Type::EIGHT,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_schedule.start_action_unit',
           'table_name' => 'civicrm_action_schedule',
           'entity' => 'ActionSchedule',
@@ -609,6 +663,12 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO {
           'description' => ts('Reminder Action'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_schedule.start_action_condition',
           'table_name' => 'civicrm_action_schedule',
           'entity' => 'ActionSchedule',
@@ -626,6 +686,12 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO {
           'description' => ts('Entity date'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_schedule.start_action_date',
           'table_name' => 'civicrm_action_schedule',
           'entity' => 'ActionSchedule',
@@ -641,6 +707,12 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_BOOLEAN,
           'title' => ts('Repeat?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_schedule.is_repeat',
           'default' => '0',
           'table_name' => 'civicrm_action_schedule',
@@ -656,6 +728,12 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO {
           'description' => ts('Time units for repetition of reminder.'),
           'maxlength' => 8,
           'size' => CRM_Utils_Type::EIGHT,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_schedule.repetition_frequency_unit',
           'table_name' => 'civicrm_action_schedule',
           'entity' => 'ActionSchedule',
@@ -675,6 +753,12 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Repetition Frequency Interval'),
           'description' => ts('Time interval for repeating the reminder.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_schedule.repetition_frequency_interval',
           'default' => '0',
           'table_name' => 'civicrm_action_schedule',
@@ -693,6 +777,12 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO {
           'description' => ts('Time units till repetition of reminder.'),
           'maxlength' => 8,
           'size' => CRM_Utils_Type::EIGHT,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_schedule.end_frequency_unit',
           'table_name' => 'civicrm_action_schedule',
           'entity' => 'ActionSchedule',
@@ -712,6 +802,12 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('End Frequency Interval'),
           'description' => ts('Time interval till repeating the reminder.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_schedule.end_frequency_interval',
           'default' => '0',
           'table_name' => 'civicrm_action_schedule',
@@ -730,6 +826,12 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO {
           'description' => ts('Reminder Action till repeating the reminder.'),
           'maxlength' => 32,
           'size' => CRM_Utils_Type::MEDIUM,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_schedule.end_action',
           'table_name' => 'civicrm_action_schedule',
           'entity' => 'ActionSchedule',
@@ -747,6 +849,12 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO {
           'description' => ts('Entity end date'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_schedule.end_date',
           'table_name' => 'civicrm_action_schedule',
           'entity' => 'ActionSchedule',
@@ -763,6 +871,12 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO {
           'title' => ts('Schedule is Active?'),
           'description' => ts('Is this option active?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_schedule.is_active',
           'default' => '1',
           'table_name' => 'civicrm_action_schedule',
@@ -782,6 +896,12 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO {
           'description' => ts('Contact IDs to which reminder should be sent.'),
           'maxlength' => 128,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_schedule.recipient_manual',
           'table_name' => 'civicrm_action_schedule',
           'entity' => 'ActionSchedule',
@@ -797,6 +917,12 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO {
           'description' => ts('listing based on recipient field.'),
           'maxlength' => 128,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_schedule.recipient_listing',
           'table_name' => 'civicrm_action_schedule',
           'entity' => 'ActionSchedule',
@@ -809,6 +935,12 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_LONGTEXT,
           'title' => ts('Reminder Text'),
           'description' => ts('Body of the mailing in text format.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_schedule.body_text',
           'table_name' => 'civicrm_action_schedule',
           'entity' => 'ActionSchedule',
@@ -821,6 +953,12 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_LONGTEXT,
           'title' => ts('Reminder HTML'),
           'description' => ts('Body of the mailing in html format.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_schedule.body_html',
           'table_name' => 'civicrm_action_schedule',
           'entity' => 'ActionSchedule',
@@ -833,6 +971,12 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_LONGTEXT,
           'title' => ts('SMS Reminder Text'),
           'description' => ts('Content of the SMS text.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_schedule.sms_body_text',
           'table_name' => 'civicrm_action_schedule',
           'entity' => 'ActionSchedule',
@@ -847,6 +991,12 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO {
           'description' => ts('Subject of mailing'),
           'maxlength' => 128,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_schedule.subject',
           'table_name' => 'civicrm_action_schedule',
           'entity' => 'ActionSchedule',
@@ -860,6 +1010,12 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO {
           'title' => ts('Record Activity for Reminder?'),
           'description' => ts('Record Activity for this reminder?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_schedule.record_activity',
           'default' => '0',
           'table_name' => 'civicrm_action_schedule',
@@ -875,6 +1031,12 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO {
           'description' => ts('Name/ID of the mapping to use on this table'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_schedule.mapping_id',
           'table_name' => 'civicrm_action_schedule',
           'entity' => 'ActionSchedule',
@@ -887,6 +1049,12 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Group ID'),
           'description' => ts('FK to Group'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_schedule.group_id',
           'table_name' => 'civicrm_action_schedule',
           'entity' => 'ActionSchedule',
@@ -909,6 +1077,12 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Message Template ID'),
           'description' => ts('FK to the message template.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_schedule.msg_template_id',
           'table_name' => 'civicrm_action_schedule',
           'entity' => 'ActionSchedule',
@@ -925,6 +1099,12 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('SMS Template ID'),
           'description' => ts('FK to the message template.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_schedule.sms_template_id',
           'table_name' => 'civicrm_action_schedule',
           'entity' => 'ActionSchedule',
@@ -941,6 +1121,12 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE,
           'title' => ts('Fixed Date for Reminder'),
           'description' => ts('Date on which the reminder be sent.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_schedule.absolute_date',
           'table_name' => 'civicrm_action_schedule',
           'entity' => 'ActionSchedule',
@@ -955,6 +1141,12 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO {
           'description' => ts('Name in "from" field'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_schedule.from_name',
           'table_name' => 'civicrm_action_schedule',
           'entity' => 'ActionSchedule',
@@ -969,6 +1161,12 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO {
           'description' => ts('Email address in "from" field'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_schedule.from_email',
           'table_name' => 'civicrm_action_schedule',
           'entity' => 'ActionSchedule',
@@ -983,6 +1181,12 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO {
           'description' => ts('Send the message as email or sms or both.'),
           'maxlength' => 128,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_schedule.mode',
           'default' => 'Email',
           'table_name' => 'civicrm_action_schedule',
@@ -1002,6 +1206,12 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO {
           'name' => 'sms_provider_id',
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('SMS Provider ID'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_schedule.sms_provider_id',
           'table_name' => 'civicrm_action_schedule',
           'entity' => 'ActionSchedule',
@@ -1021,6 +1231,12 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO {
           'description' => ts('Used for repeating entity'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_schedule.used_for',
           'table_name' => 'civicrm_action_schedule',
           'entity' => 'ActionSchedule',
@@ -1038,6 +1254,12 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO {
           'description' => ts('Used for multilingual installation'),
           'maxlength' => 128,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_schedule.filter_contact_language',
           'table_name' => 'civicrm_action_schedule',
           'entity' => 'ActionSchedule',
@@ -1055,6 +1277,12 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO {
           'description' => ts('Used for multilingual installation'),
           'maxlength' => 8,
           'size' => CRM_Utils_Type::EIGHT,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_schedule.communication_language',
           'table_name' => 'civicrm_action_schedule',
           'entity' => 'ActionSchedule',
@@ -1071,6 +1299,12 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO {
           'title' => ts('Created Date'),
           'description' => ts('When was the scheduled reminder created.'),
           'required' => FALSE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => TRUE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_schedule.created_date',
           'export' => TRUE,
           'default' => 'CURRENT_TIMESTAMP',
@@ -1086,6 +1320,12 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO {
           'title' => ts('Modified Date'),
           'description' => ts('When the reminder was created or modified.'),
           'required' => FALSE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_schedule.modified_date',
           'default' => 'CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP',
           'table_name' => 'civicrm_action_schedule',
@@ -1104,6 +1344,12 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO {
           'title' => ts('Effective start date'),
           'description' => ts('Earliest date to consider start events from.'),
           'required' => FALSE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => TRUE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_schedule.effective_start_date',
           'export' => TRUE,
           'table_name' => 'civicrm_action_schedule',
@@ -1118,6 +1364,12 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO {
           'title' => ts('Effective end date'),
           'description' => ts('Latest date to consider end events from.'),
           'required' => FALSE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => TRUE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_action_schedule.effective_end_date',
           'export' => TRUE,
           'table_name' => 'civicrm_action_schedule',
diff --git a/civicrm/CRM/Core/DAO/Address.php b/civicrm/CRM/Core/DAO/Address.php
index 66269a9a8dbaa8e7d64d7d1990ff748b50a9256e..d6daae72270248c4c85feb113280e198bcecad3f 100644
--- a/civicrm/CRM/Core/DAO/Address.php
+++ b/civicrm/CRM/Core/DAO/Address.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/Address.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:3f05cd897f3208750db1ea19adb784e7)
+ * (GenCodeChecksum:93cff77485ca748e88906bcb5d61bf22)
  */
 
 /**
@@ -350,6 +350,12 @@ class CRM_Core_DAO_Address extends CRM_Core_DAO {
           'title' => ts('Address ID'),
           'description' => ts('Unique Address ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => TRUE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_address.id',
           'export' => TRUE,
           'table_name' => 'civicrm_address',
@@ -367,6 +373,12 @@ class CRM_Core_DAO_Address extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Contact ID'),
           'description' => ts('FK to Contact ID'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_address.contact_id',
           'table_name' => 'civicrm_address',
           'entity' => 'Address',
@@ -383,6 +395,12 @@ class CRM_Core_DAO_Address extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Address Location Type'),
           'description' => ts('Which Location does this address belong to.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_address.location_type_id',
           'table_name' => 'civicrm_address',
           'entity' => 'Address',
@@ -401,9 +419,15 @@ class CRM_Core_DAO_Address extends CRM_Core_DAO {
         'is_primary' => [
           'name' => 'is_primary',
           'type' => CRM_Utils_Type::T_BOOLEAN,
-          'title' => ts('Primary address'),
+          'title' => ts('Is Primary'),
           'description' => ts('Is this the primary address.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_address.is_primary',
           'default' => '0',
           'table_name' => 'civicrm_address',
@@ -421,6 +445,12 @@ class CRM_Core_DAO_Address extends CRM_Core_DAO {
           'title' => ts('Is Billing Address'),
           'description' => ts('Is this the billing address.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_address.is_billing',
           'default' => '0',
           'table_name' => 'civicrm_address',
@@ -441,6 +471,12 @@ class CRM_Core_DAO_Address extends CRM_Core_DAO {
       delivery, etc.).'),
           'maxlength' => 96,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_address.street_address',
           'headerPattern' => '/(street|address)/i',
@@ -460,6 +496,12 @@ class CRM_Core_DAO_Address extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Street Number'),
           'description' => ts('Numeric portion of address number on the street, e.g. For 112A Main St, the street_number = 112.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => TRUE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_address.street_number',
           'export' => TRUE,
           'table_name' => 'civicrm_address',
@@ -478,6 +520,12 @@ class CRM_Core_DAO_Address extends CRM_Core_DAO {
           'description' => ts('Non-numeric portion of address number on the street, e.g. For 112A Main St, the street_number_suffix = A'),
           'maxlength' => 8,
           'size' => CRM_Utils_Type::EIGHT,
+          'usage' => [
+            'import' => FALSE,
+            'export' => TRUE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_address.street_number_suffix',
           'export' => TRUE,
           'table_name' => 'civicrm_address',
@@ -496,6 +544,12 @@ class CRM_Core_DAO_Address extends CRM_Core_DAO {
           'description' => ts('Directional prefix, e.g. SE Main St, SE is the prefix.'),
           'maxlength' => 8,
           'size' => CRM_Utils_Type::EIGHT,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_address.street_number_predirectional',
           'table_name' => 'civicrm_address',
           'entity' => 'Address',
@@ -513,6 +567,12 @@ class CRM_Core_DAO_Address extends CRM_Core_DAO {
           'description' => ts('Actual street name, excluding St, Dr, Rd, Ave, e.g. For 112 Main St, the street_name = Main.'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => TRUE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_address.street_name',
           'export' => TRUE,
           'table_name' => 'civicrm_address',
@@ -531,6 +591,12 @@ class CRM_Core_DAO_Address extends CRM_Core_DAO {
           'description' => ts('St, Rd, Dr, etc.'),
           'maxlength' => 8,
           'size' => CRM_Utils_Type::EIGHT,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_address.street_type',
           'table_name' => 'civicrm_address',
           'entity' => 'Address',
@@ -548,6 +614,12 @@ class CRM_Core_DAO_Address extends CRM_Core_DAO {
           'description' => ts('Directional prefix, e.g. Main St S, S is the suffix.'),
           'maxlength' => 8,
           'size' => CRM_Utils_Type::EIGHT,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_address.street_number_postdirectional',
           'table_name' => 'civicrm_address',
           'entity' => 'Address',
@@ -565,6 +637,12 @@ class CRM_Core_DAO_Address extends CRM_Core_DAO {
           'description' => ts('Secondary unit designator, e.g. Apt 3 or Unit # 14, or Bldg 1200'),
           'maxlength' => 16,
           'size' => CRM_Utils_Type::TWELVE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => TRUE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_address.street_unit',
           'export' => TRUE,
           'table_name' => 'civicrm_address',
@@ -583,6 +661,12 @@ class CRM_Core_DAO_Address extends CRM_Core_DAO {
           'description' => ts('Supplemental Address Information, Line 1'),
           'maxlength' => 96,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_address.supplemental_address_1',
           'headerPattern' => '/(supplemental(\s)?)?address(\s\d+)?/i',
@@ -604,6 +688,12 @@ class CRM_Core_DAO_Address extends CRM_Core_DAO {
           'description' => ts('Supplemental Address Information, Line 2'),
           'maxlength' => 96,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_address.supplemental_address_2',
           'headerPattern' => '/(supplemental(\s)?)?address(\s\d+)?/i',
@@ -625,6 +715,12 @@ class CRM_Core_DAO_Address extends CRM_Core_DAO {
           'description' => ts('Supplemental Address Information, Line 3'),
           'maxlength' => 96,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_address.supplemental_address_3',
           'headerPattern' => '/(supplemental(\s)?)?address(\s\d+)?/i',
@@ -646,6 +742,12 @@ class CRM_Core_DAO_Address extends CRM_Core_DAO {
           'description' => ts('City, Town or Village Name.'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_address.city',
           'headerPattern' => '/city/i',
@@ -665,6 +767,12 @@ class CRM_Core_DAO_Address extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('County ID'),
           'description' => ts('Which County does this address belong to.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_address.county_id',
           'table_name' => 'civicrm_address',
           'entity' => 'Address',
@@ -689,6 +797,12 @@ class CRM_Core_DAO_Address extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('State/Province ID'),
           'description' => ts('Which State_Province does this address belong to.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_address.state_province_id',
           'table_name' => 'civicrm_address',
           'entity' => 'Address',
@@ -716,6 +830,12 @@ class CRM_Core_DAO_Address extends CRM_Core_DAO {
           'description' => ts('Store the suffix, like the +4 part in the USPS system.'),
           'maxlength' => 12,
           'size' => 3,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_address.postal_code_suffix',
           'headerPattern' => '/p(ostal)\sc(ode)\ss(uffix)/i',
@@ -737,6 +857,12 @@ class CRM_Core_DAO_Address extends CRM_Core_DAO {
           'description' => ts('Store both US (zip5) AND international postal codes. App is responsible for country/region appropriate validation.'),
           'maxlength' => 64,
           'size' => 6,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_address.postal_code',
           'headerPattern' => '/postal|zip/i',
@@ -758,6 +884,12 @@ class CRM_Core_DAO_Address extends CRM_Core_DAO {
           'description' => ts('USPS Bulk mailing code.'),
           'maxlength' => 32,
           'size' => CRM_Utils_Type::MEDIUM,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_address.usps_adc',
           'table_name' => 'civicrm_address',
           'entity' => 'Address',
@@ -771,6 +903,12 @@ class CRM_Core_DAO_Address extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Country ID'),
           'description' => ts('Which Country does this address belong to.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_address.country_id',
           'table_name' => 'civicrm_address',
           'entity' => 'Address',
@@ -796,6 +934,12 @@ class CRM_Core_DAO_Address extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_FLOAT,
           'title' => ts('Latitude'),
           'description' => ts('Latitude'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_address.geo_code_1',
           'headerPattern' => '/geo/i',
@@ -814,6 +958,12 @@ class CRM_Core_DAO_Address extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_FLOAT,
           'title' => ts('Longitude'),
           'description' => ts('Longitude'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_address.geo_code_2',
           'headerPattern' => '/geo/i',
@@ -833,6 +983,12 @@ class CRM_Core_DAO_Address extends CRM_Core_DAO {
           'title' => ts('Is Manually Geocoded'),
           'description' => ts('Is this a manually entered geo code'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => TRUE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_address.manual_geo_code',
           'export' => TRUE,
           'default' => '0',
@@ -852,6 +1008,12 @@ class CRM_Core_DAO_Address extends CRM_Core_DAO {
           'description' => ts('Timezone expressed as a UTC offset - e.g. United States CST would be written as "UTC-6".'),
           'maxlength' => 8,
           'size' => CRM_Utils_Type::EIGHT,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_address.timezone',
           'table_name' => 'civicrm_address',
           'entity' => 'Address',
@@ -868,6 +1030,12 @@ class CRM_Core_DAO_Address extends CRM_Core_DAO {
           'title' => ts('Address Name'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_address.name',
           'headerPattern' => '/^location|(l(ocation\s)?name)$/i',
@@ -887,6 +1055,12 @@ class CRM_Core_DAO_Address extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Master Address ID'),
           'description' => ts('FK to Address ID'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_address.master_id',
           'export' => TRUE,
diff --git a/civicrm/CRM/Core/DAO/AddressFormat.php b/civicrm/CRM/Core/DAO/AddressFormat.php
index 35364181baf01ad8e7fd4e75959ff9c8479767a8..91d8a06b210412958f0a69c39697e76b4ef5d2f7 100644
--- a/civicrm/CRM/Core/DAO/AddressFormat.php
+++ b/civicrm/CRM/Core/DAO/AddressFormat.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/AddressFormat.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:2f9eea94452bfc5ecfdd44741f576190)
+ * (GenCodeChecksum:688ab6fa7cf9ccd7cddaab899d4abcda)
  */
 
 /**
@@ -80,6 +80,12 @@ class CRM_Core_DAO_AddressFormat extends CRM_Core_DAO {
           'title' => ts('Address Format ID'),
           'description' => ts('Address Format ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_address_format.id',
           'table_name' => 'civicrm_address_format',
           'entity' => 'AddressFormat',
@@ -96,6 +102,12 @@ class CRM_Core_DAO_AddressFormat extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Address Format'),
           'description' => ts('The format of an address'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_address_format.format',
           'table_name' => 'civicrm_address_format',
           'entity' => 'AddressFormat',
diff --git a/civicrm/CRM/Core/DAO/Cache.php b/civicrm/CRM/Core/DAO/Cache.php
index 09ee3bd4dad5b310269539b2a58a2f99d0506b83..c57efa00de703443272ab3fd2b0da584f7df18f4 100644
--- a/civicrm/CRM/Core/DAO/Cache.php
+++ b/civicrm/CRM/Core/DAO/Cache.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/Cache.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:8b1e9626632c80aadce6cae1fda86687)
+ * (GenCodeChecksum:7bc573038c1e40396686f8340a38bda1)
  */
 
 /**
@@ -140,6 +140,12 @@ class CRM_Core_DAO_Cache extends CRM_Core_DAO {
           'title' => ts('Cache ID'),
           'description' => ts('Unique table ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_cache.id',
           'table_name' => 'civicrm_cache',
           'entity' => 'Cache',
@@ -159,6 +165,12 @@ class CRM_Core_DAO_Cache extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 32,
           'size' => CRM_Utils_Type::MEDIUM,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_cache.group_name',
           'table_name' => 'civicrm_cache',
           'entity' => 'Cache',
@@ -173,6 +185,12 @@ class CRM_Core_DAO_Cache extends CRM_Core_DAO {
           'description' => ts('Unique path name for cache element'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_cache.path',
           'table_name' => 'civicrm_cache',
           'entity' => 'Cache',
@@ -185,6 +203,12 @@ class CRM_Core_DAO_Cache extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_LONGTEXT,
           'title' => ts('Data'),
           'description' => ts('data associated with this path'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_cache.data',
           'table_name' => 'civicrm_cache',
           'entity' => 'Cache',
@@ -197,6 +221,12 @@ class CRM_Core_DAO_Cache extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Component ID'),
           'description' => ts('Component that this menu item belongs to'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_cache.component_id',
           'table_name' => 'civicrm_cache',
           'entity' => 'Cache',
@@ -219,6 +249,12 @@ class CRM_Core_DAO_Cache extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TIMESTAMP,
           'title' => ts('Created Date'),
           'description' => ts('When was the cache item created'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_cache.created_date',
           'default' => 'CURRENT_TIMESTAMP',
           'table_name' => 'civicrm_cache',
@@ -233,6 +269,12 @@ class CRM_Core_DAO_Cache extends CRM_Core_DAO {
           'title' => ts('Expired Date'),
           'description' => ts('When should the cache item expire'),
           'required' => FALSE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_cache.expired_date',
           'default' => NULL,
           'table_name' => 'civicrm_cache',
@@ -311,16 +353,23 @@ class CRM_Core_DAO_Cache extends CRM_Core_DAO {
    */
   public static function indices($localize = TRUE) {
     $indices = [
-      'UI_group_path_date' => [
-        'name' => 'UI_group_path_date',
+      'UI_group_name_path' => [
+        'name' => 'UI_group_name_path',
         'field' => [
           0 => 'group_name',
           1 => 'path',
-          2 => 'created_date',
         ],
         'localizable' => FALSE,
         'unique' => TRUE,
-        'sig' => 'civicrm_cache::1::group_name::path::created_date',
+        'sig' => 'civicrm_cache::1::group_name::path',
+      ],
+      'index_expired_date' => [
+        'name' => 'index_expired_date',
+        'field' => [
+          0 => 'expired_date',
+        ],
+        'localizable' => FALSE,
+        'sig' => 'civicrm_cache::0::expired_date',
       ],
     ];
     return ($localize && !empty($indices)) ? CRM_Core_DAO_AllCoreTables::multilingualize(__CLASS__, $indices) : $indices;
diff --git a/civicrm/CRM/Core/DAO/Component.php b/civicrm/CRM/Core/DAO/Component.php
index a8088e52c420277918394928a867336564ea2366..f41a81148ace0aaf9c64cd5f284d4d4ad14a7bbe 100644
--- a/civicrm/CRM/Core/DAO/Component.php
+++ b/civicrm/CRM/Core/DAO/Component.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/Component.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:14adbacc5eb565c130dafde580998d69)
+ * (GenCodeChecksum:fdf9249dc62d2c5495f09af4695d8820)
  */
 
 /**
@@ -89,6 +89,12 @@ class CRM_Core_DAO_Component extends CRM_Core_DAO {
           'title' => ts('Component ID'),
           'description' => ts('Component ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_component.id',
           'table_name' => 'civicrm_component',
           'entity' => 'Component',
@@ -108,6 +114,12 @@ class CRM_Core_DAO_Component extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_component.name',
           'table_name' => 'civicrm_component',
           'entity' => 'Component',
@@ -122,6 +134,12 @@ class CRM_Core_DAO_Component extends CRM_Core_DAO {
           'description' => ts('Path to components main directory in a form of a class namespace.'),
           'maxlength' => 128,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_component.namespace',
           'table_name' => 'civicrm_component',
           'entity' => 'Component',
diff --git a/civicrm/CRM/Core/DAO/Country.php b/civicrm/CRM/Core/DAO/Country.php
index 9edd1fd2ac6d7320c1af0c2d822a07402cf66406..c5c1788471785df58ec53c7135791345c33da66e 100644
--- a/civicrm/CRM/Core/DAO/Country.php
+++ b/civicrm/CRM/Core/DAO/Country.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/Country.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:aea8b50402876e0d62a31de7639839d6)
+ * (GenCodeChecksum:87bbe6fcf59d26d4fc8250c8dcb647ca)
  */
 
 /**
@@ -191,6 +191,12 @@ class CRM_Core_DAO_Country extends CRM_Core_DAO {
           'title' => ts('Country ID'),
           'description' => ts('Country ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_country.id',
           'table_name' => 'civicrm_country',
           'entity' => 'Country',
@@ -209,6 +215,12 @@ class CRM_Core_DAO_Country extends CRM_Core_DAO {
           'description' => ts('Country Name'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_country.name',
           'headerPattern' => '/country/i',
@@ -227,6 +239,12 @@ class CRM_Core_DAO_Country extends CRM_Core_DAO {
           'description' => ts('ISO Code'),
           'maxlength' => 2,
           'size' => CRM_Utils_Type::TWO,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_country.iso_code',
           'table_name' => 'civicrm_country',
           'entity' => 'Country',
@@ -241,6 +259,12 @@ class CRM_Core_DAO_Country extends CRM_Core_DAO {
           'description' => ts('National prefix to be used when dialing TO this country.'),
           'maxlength' => 4,
           'size' => CRM_Utils_Type::FOUR,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_country.country_code',
           'table_name' => 'civicrm_country',
           'entity' => 'Country',
@@ -253,6 +277,12 @@ class CRM_Core_DAO_Country extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Address Format ID'),
           'description' => ts('Foreign key to civicrm_address_format.id.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_country.address_format_id',
           'table_name' => 'civicrm_country',
           'entity' => 'Country',
@@ -271,6 +301,12 @@ class CRM_Core_DAO_Country extends CRM_Core_DAO {
           'description' => ts('International direct dialing prefix from within the country TO another country'),
           'maxlength' => 4,
           'size' => CRM_Utils_Type::FOUR,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_country.idd_prefix',
           'table_name' => 'civicrm_country',
           'entity' => 'Country',
@@ -285,6 +321,12 @@ class CRM_Core_DAO_Country extends CRM_Core_DAO {
           'description' => ts('Access prefix to call within a country to a different area'),
           'maxlength' => 4,
           'size' => CRM_Utils_Type::FOUR,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_country.ndd_prefix',
           'table_name' => 'civicrm_country',
           'entity' => 'Country',
@@ -298,6 +340,12 @@ class CRM_Core_DAO_Country extends CRM_Core_DAO {
           'title' => ts('World Region ID'),
           'description' => ts('Foreign key to civicrm_worldregion.id.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_country.region_id',
           'table_name' => 'civicrm_country',
           'entity' => 'Country',
@@ -321,6 +369,12 @@ class CRM_Core_DAO_Country extends CRM_Core_DAO {
           'title' => ts('Abbreviate Province?'),
           'description' => ts('Should state/province be displayed as abbreviation for contacts from this country?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_country.is_province_abbreviated',
           'default' => '0',
           'table_name' => 'civicrm_country',
@@ -335,6 +389,12 @@ class CRM_Core_DAO_Country extends CRM_Core_DAO {
           'title' => ts('Country Is Active'),
           'description' => ts('Is this Country active?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_country.is_active',
           'default' => '1',
           'table_name' => 'civicrm_country',
diff --git a/civicrm/CRM/Core/DAO/County.php b/civicrm/CRM/Core/DAO/County.php
index c2935066283493964086aa9eb08771deb506d3ab..aba33127425aacc4c9ad930d04eb1c32d2c3b313 100644
--- a/civicrm/CRM/Core/DAO/County.php
+++ b/civicrm/CRM/Core/DAO/County.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/County.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:fac3566a84ce222c10465dbee9c5fbc5)
+ * (GenCodeChecksum:a79e59728f1c68d4ecc4dbd789decab2)
  */
 
 /**
@@ -129,6 +129,12 @@ class CRM_Core_DAO_County extends CRM_Core_DAO {
           'title' => ts('County ID'),
           'description' => ts('County ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_county.id',
           'table_name' => 'civicrm_county',
           'entity' => 'County',
@@ -147,6 +153,12 @@ class CRM_Core_DAO_County extends CRM_Core_DAO {
           'description' => ts('Name of County'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_county.name',
           'headerPattern' => '/county/i',
@@ -165,6 +177,12 @@ class CRM_Core_DAO_County extends CRM_Core_DAO {
           'description' => ts('2-4 Character Abbreviation of County'),
           'maxlength' => 4,
           'size' => CRM_Utils_Type::FOUR,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_county.abbreviation',
           'table_name' => 'civicrm_county',
           'entity' => 'County',
@@ -178,6 +196,12 @@ class CRM_Core_DAO_County extends CRM_Core_DAO {
           'title' => ts('State ID'),
           'description' => ts('ID of State/Province that County belongs'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_county.state_province_id',
           'table_name' => 'civicrm_county',
           'entity' => 'County',
@@ -201,6 +225,12 @@ class CRM_Core_DAO_County extends CRM_Core_DAO {
           'title' => ts('County Is Active'),
           'description' => ts('Is this County active?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_county.is_active',
           'default' => '1',
           'table_name' => 'civicrm_county',
diff --git a/civicrm/CRM/Core/DAO/CustomField.php b/civicrm/CRM/Core/DAO/CustomField.php
index 0fd63f551b9aa8f79c857cba125c93d6fb61552e..5ca56b5531ac632fa1d13437f7e77aa055b4b2e8 100644
--- a/civicrm/CRM/Core/DAO/CustomField.php
+++ b/civicrm/CRM/Core/DAO/CustomField.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/CustomField.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:74a1b749ab865c09722b5e8904c382a9)
+ * (GenCodeChecksum:c3376c499386c62d1a00eaa6e18d0874)
  */
 
 /**
@@ -176,15 +176,6 @@ class CRM_Core_DAO_CustomField extends CRM_Core_DAO {
    */
   public $attributes;
 
-  /**
-   * Optional scripting attributes for field.
-   *
-   * @var string|null
-   *   (SQL type: varchar(255))
-   *   Note that values will be retrieved from the database as a string.
-   */
-  public $javascript;
-
   /**
    * Is this property active?
    *
@@ -377,6 +368,12 @@ class CRM_Core_DAO_CustomField extends CRM_Core_DAO {
           'title' => ts('Custom Field ID'),
           'description' => ts('Unique Custom Field ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_custom_field.id',
           'table_name' => 'civicrm_custom_field',
           'entity' => 'CustomField',
@@ -394,6 +391,12 @@ class CRM_Core_DAO_CustomField extends CRM_Core_DAO {
           'title' => ts('Custom Group ID'),
           'description' => ts('FK to civicrm_custom_group.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_custom_field.custom_group_id',
           'table_name' => 'civicrm_custom_field',
           'entity' => 'CustomField',
@@ -418,6 +421,12 @@ class CRM_Core_DAO_CustomField extends CRM_Core_DAO {
           'description' => ts('Variable name/programmatic handle for this field.'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_custom_field.name',
           'table_name' => 'civicrm_custom_field',
           'entity' => 'CustomField',
@@ -433,6 +442,12 @@ class CRM_Core_DAO_CustomField extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_custom_field.label',
           'table_name' => 'civicrm_custom_field',
           'entity' => 'CustomField',
@@ -448,6 +463,12 @@ class CRM_Core_DAO_CustomField extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 16,
           'size' => CRM_Utils_Type::TWELVE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_custom_field.data_type',
           'table_name' => 'civicrm_custom_field',
           'entity' => 'CustomField',
@@ -470,6 +491,12 @@ class CRM_Core_DAO_CustomField extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 32,
           'size' => CRM_Utils_Type::MEDIUM,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_custom_field.html_type',
           'table_name' => 'civicrm_custom_field',
           'entity' => 'CustomField',
@@ -491,6 +518,12 @@ class CRM_Core_DAO_CustomField extends CRM_Core_DAO {
           'description' => ts('Use form_options.is_default for field_types which use options.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_custom_field.default_value',
           'table_name' => 'civicrm_custom_field',
           'entity' => 'CustomField',
@@ -504,6 +537,12 @@ class CRM_Core_DAO_CustomField extends CRM_Core_DAO {
           'title' => ts('Custom Field Is Required?'),
           'description' => ts('Is a value required for this property.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_custom_field.is_required',
           'default' => '0',
           'table_name' => 'civicrm_custom_field',
@@ -518,6 +557,12 @@ class CRM_Core_DAO_CustomField extends CRM_Core_DAO {
           'title' => ts('Allow Searching on Field?'),
           'description' => ts('Is this property searchable.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_custom_field.is_searchable',
           'default' => '0',
           'table_name' => 'civicrm_custom_field',
@@ -532,6 +577,12 @@ class CRM_Core_DAO_CustomField extends CRM_Core_DAO {
           'title' => ts('Search as a Range'),
           'description' => ts('Is this property range searchable.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_custom_field.is_search_range',
           'default' => '0',
           'table_name' => 'civicrm_custom_field',
@@ -546,6 +597,12 @@ class CRM_Core_DAO_CustomField extends CRM_Core_DAO {
           'title' => ts('Order'),
           'description' => ts('Controls field display order within an extended property group.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_custom_field.weight',
           'default' => '1',
           'table_name' => 'civicrm_custom_field',
@@ -559,6 +616,12 @@ class CRM_Core_DAO_CustomField extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Custom Field Pre Text'),
           'description' => ts('Description and/or help text to display before this field.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_custom_field.help_pre',
           'table_name' => 'civicrm_custom_field',
           'entity' => 'CustomField',
@@ -571,6 +634,12 @@ class CRM_Core_DAO_CustomField extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Custom Field Post Text'),
           'description' => ts('Description and/or help text to display after this field.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_custom_field.help_post',
           'table_name' => 'civicrm_custom_field',
           'entity' => 'CustomField',
@@ -585,6 +654,12 @@ class CRM_Core_DAO_CustomField extends CRM_Core_DAO {
           'description' => ts('Store collection of type-appropriate attributes, e.g. textarea  needs rows/cols attributes'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_custom_field.attributes',
           'table_name' => 'civicrm_custom_field',
           'entity' => 'CustomField',
@@ -592,25 +667,17 @@ class CRM_Core_DAO_CustomField extends CRM_Core_DAO {
           'localizable' => 0,
           'add' => '1.1',
         ],
-        'javascript' => [
-          'name' => 'javascript',
-          'type' => CRM_Utils_Type::T_STRING,
-          'title' => ts('Custom Field Javascript'),
-          'description' => ts('Optional scripting attributes for field.'),
-          'maxlength' => 255,
-          'size' => CRM_Utils_Type::HUGE,
-          'where' => 'civicrm_custom_field.javascript',
-          'table_name' => 'civicrm_custom_field',
-          'entity' => 'CustomField',
-          'bao' => 'CRM_Core_BAO_CustomField',
-          'localizable' => 0,
-          'add' => '1.1',
-        ],
         'is_active' => [
           'name' => 'is_active',
           'type' => CRM_Utils_Type::T_BOOLEAN,
           'title' => ts('Custom Field Is Active?'),
           'description' => ts('Is this property active?'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_custom_field.is_active',
           'default' => '1',
           'table_name' => 'civicrm_custom_field',
@@ -629,6 +696,12 @@ class CRM_Core_DAO_CustomField extends CRM_Core_DAO {
           'title' => ts('Field is Viewable'),
           'description' => ts('Is this property set by PHP Code? A code field is viewable but not editable'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_custom_field.is_view',
           'default' => '0',
           'table_name' => 'civicrm_custom_field',
@@ -642,6 +715,12 @@ class CRM_Core_DAO_CustomField extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Field Options Per Line'),
           'description' => ts('number of options per line for checkbox and radio'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_custom_field.options_per_line',
           'table_name' => 'civicrm_custom_field',
           'entity' => 'CustomField',
@@ -654,6 +733,12 @@ class CRM_Core_DAO_CustomField extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Field Length'),
           'description' => ts('field length if alphanumeric'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_custom_field.text_length',
           'table_name' => 'civicrm_custom_field',
           'entity' => 'CustomField',
@@ -666,6 +751,12 @@ class CRM_Core_DAO_CustomField extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Field Start Date'),
           'description' => ts('Date may be up to start_date_years years prior to the current date.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_custom_field.start_date_years',
           'table_name' => 'civicrm_custom_field',
           'entity' => 'CustomField',
@@ -678,6 +769,12 @@ class CRM_Core_DAO_CustomField extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Field End Date'),
           'description' => ts('Date may be up to end_date_years years after the current date.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_custom_field.end_date_years',
           'table_name' => 'civicrm_custom_field',
           'entity' => 'CustomField',
@@ -692,6 +789,12 @@ class CRM_Core_DAO_CustomField extends CRM_Core_DAO {
           'description' => ts('date format for custom date'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_custom_field.date_format',
           'table_name' => 'civicrm_custom_field',
           'entity' => 'CustomField',
@@ -707,6 +810,12 @@ class CRM_Core_DAO_CustomField extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Field Time Format'),
           'description' => ts('time format for custom date'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_custom_field.time_format',
           'table_name' => 'civicrm_custom_field',
           'entity' => 'CustomField',
@@ -722,6 +831,12 @@ class CRM_Core_DAO_CustomField extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Field Note Columns'),
           'description' => ts('Number of columns in Note Field'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_custom_field.note_columns',
           'table_name' => 'civicrm_custom_field',
           'entity' => 'CustomField',
@@ -734,6 +849,12 @@ class CRM_Core_DAO_CustomField extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Field Note Rows'),
           'description' => ts('Number of rows in Note Field'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_custom_field.note_rows',
           'table_name' => 'civicrm_custom_field',
           'entity' => 'CustomField',
@@ -748,6 +869,12 @@ class CRM_Core_DAO_CustomField extends CRM_Core_DAO {
           'description' => ts('Name of the column that holds the values for this field.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_custom_field.column_name',
           'table_name' => 'civicrm_custom_field',
           'entity' => 'CustomField',
@@ -760,6 +887,12 @@ class CRM_Core_DAO_CustomField extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Field Option Group ID'),
           'description' => ts('For elements with options, the option group id that is used'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_custom_field.option_group_id',
           'table_name' => 'civicrm_custom_field',
           'entity' => 'CustomField',
@@ -782,6 +915,12 @@ class CRM_Core_DAO_CustomField extends CRM_Core_DAO {
           'title' => ts('Serialize'),
           'description' => ts('Serialization method - a non-zero value indicates a multi-valued field.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_custom_field.serialize',
           'default' => '0',
           'table_name' => 'civicrm_custom_field',
@@ -800,6 +939,12 @@ class CRM_Core_DAO_CustomField extends CRM_Core_DAO {
           'description' => ts('Stores Contact Get API params contact reference custom fields. May be used for other filters in the future.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_custom_field.filter',
           'table_name' => 'civicrm_custom_field',
           'entity' => 'CustomField',
@@ -813,6 +958,12 @@ class CRM_Core_DAO_CustomField extends CRM_Core_DAO {
           'title' => ts('Field Display'),
           'description' => ts('Should the multi-record custom field values be displayed in tab table listing'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_custom_field.in_selector',
           'default' => '0',
           'table_name' => 'civicrm_custom_field',
@@ -828,6 +979,12 @@ class CRM_Core_DAO_CustomField extends CRM_Core_DAO {
           'description' => ts('Name of entity being referenced.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_custom_field.fk_entity',
           'default' => NULL,
           'table_name' => 'civicrm_custom_field',
diff --git a/civicrm/CRM/Core/DAO/CustomGroup.php b/civicrm/CRM/Core/DAO/CustomGroup.php
index f0af5ba3f8be21b5a34f210ff4214469d80c615e..b0fa07c602d6fc19f652039296cac2310b34c2c3 100644
--- a/civicrm/CRM/Core/DAO/CustomGroup.php
+++ b/civicrm/CRM/Core/DAO/CustomGroup.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/CustomGroup.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:64869869e8646f55089df23e3bf3249c)
+ * (GenCodeChecksum:d5980a5eff21bfadd1eba6083dc99ebf)
  */
 
 /**
@@ -294,6 +294,12 @@ class CRM_Core_DAO_CustomGroup extends CRM_Core_DAO {
           'title' => ts('Custom Group ID'),
           'description' => ts('Unique Custom Group ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_custom_group.id',
           'table_name' => 'civicrm_custom_group',
           'entity' => 'CustomGroup',
@@ -312,6 +318,12 @@ class CRM_Core_DAO_CustomGroup extends CRM_Core_DAO {
           'description' => ts('Variable name/programmatic handle for this group.'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_custom_group.name',
           'table_name' => 'civicrm_custom_group',
           'entity' => 'CustomGroup',
@@ -327,6 +339,12 @@ class CRM_Core_DAO_CustomGroup extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_custom_group.title',
           'table_name' => 'civicrm_custom_group',
           'entity' => 'CustomGroup',
@@ -341,6 +359,12 @@ class CRM_Core_DAO_CustomGroup extends CRM_Core_DAO {
           'description' => ts('Type of object this group extends (can add other options later e.g. contact_address, etc.).'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_custom_group.extends',
           'default' => 'Contact',
           'table_name' => 'civicrm_custom_group',
@@ -357,6 +381,12 @@ class CRM_Core_DAO_CustomGroup extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Custom Group Subtype List'),
           'description' => ts('FK to civicrm_option_value.id (for option group custom_data_type.)'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_custom_group.extends_entity_column_id',
           'default' => NULL,
           'table_name' => 'civicrm_custom_group',
@@ -380,6 +410,12 @@ class CRM_Core_DAO_CustomGroup extends CRM_Core_DAO {
           'description' => ts('linking custom group for dynamic object'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_custom_group.extends_entity_column_value',
           'table_name' => 'civicrm_custom_group',
           'entity' => 'CustomGroup',
@@ -402,6 +438,12 @@ class CRM_Core_DAO_CustomGroup extends CRM_Core_DAO {
           'description' => ts('Visual relationship between this form and its parent.'),
           'maxlength' => 15,
           'size' => CRM_Utils_Type::TWELVE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_custom_group.style',
           'table_name' => 'civicrm_custom_group',
           'entity' => 'CustomGroup',
@@ -421,6 +463,12 @@ class CRM_Core_DAO_CustomGroup extends CRM_Core_DAO {
           'title' => ts('Collapse Custom Group?'),
           'description' => ts('Will this group be in collapsed or expanded mode on initial display ?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_custom_group.collapse_display',
           'default' => '0',
           'table_name' => 'civicrm_custom_group',
@@ -436,6 +484,12 @@ class CRM_Core_DAO_CustomGroup extends CRM_Core_DAO {
           'description' => ts('Description and/or help text to display before fields in form.'),
           'rows' => 4,
           'cols' => 80,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_custom_group.help_pre',
           'table_name' => 'civicrm_custom_group',
           'entity' => 'CustomGroup',
@@ -453,6 +507,12 @@ class CRM_Core_DAO_CustomGroup extends CRM_Core_DAO {
           'description' => ts('Description and/or help text to display after fields in form.'),
           'rows' => 4,
           'cols' => 80,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_custom_group.help_post',
           'table_name' => 'civicrm_custom_group',
           'entity' => 'CustomGroup',
@@ -469,6 +529,12 @@ class CRM_Core_DAO_CustomGroup extends CRM_Core_DAO {
           'title' => ts('Order'),
           'description' => ts('Controls display order when multiple extended property groups are setup for the same class.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_custom_group.weight',
           'default' => '1',
           'table_name' => 'civicrm_custom_group',
@@ -483,6 +549,12 @@ class CRM_Core_DAO_CustomGroup extends CRM_Core_DAO {
           'title' => ts('Custom Group Is Active?'),
           'description' => ts('Is this property active?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_custom_group.is_active',
           'default' => '1',
           'table_name' => 'civicrm_custom_group',
@@ -502,6 +574,12 @@ class CRM_Core_DAO_CustomGroup extends CRM_Core_DAO {
           'description' => ts('Name of the table that holds the values for this group.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_custom_group.table_name',
           'table_name' => 'civicrm_custom_group',
           'entity' => 'CustomGroup',
@@ -519,6 +597,12 @@ class CRM_Core_DAO_CustomGroup extends CRM_Core_DAO {
           'title' => ts('Supports Multiple Records'),
           'description' => ts('Does this group hold multiple values?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_custom_group.is_multiple',
           'default' => '0',
           'table_name' => 'civicrm_custom_group',
@@ -532,6 +616,12 @@ class CRM_Core_DAO_CustomGroup extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Minimum Multiple Records'),
           'description' => ts('minimum number of multiple records (typically 0?)'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_custom_group.min_multiple',
           'table_name' => 'civicrm_custom_group',
           'entity' => 'CustomGroup',
@@ -544,6 +634,12 @@ class CRM_Core_DAO_CustomGroup extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Maximum Multiple Records'),
           'description' => ts('maximum number of multiple records, if 0 - no max'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_custom_group.max_multiple',
           'table_name' => 'civicrm_custom_group',
           'entity' => 'CustomGroup',
@@ -557,6 +653,12 @@ class CRM_Core_DAO_CustomGroup extends CRM_Core_DAO {
           'title' => ts('Collapse Group Display'),
           'description' => ts('Will this group be in collapsed or expanded mode on advanced search display ?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_custom_group.collapse_adv_display',
           'default' => '0',
           'table_name' => 'civicrm_custom_group',
@@ -570,6 +672,12 @@ class CRM_Core_DAO_CustomGroup extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Created By Contact ID'),
           'description' => ts('FK to civicrm_contact, who created this custom group'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_custom_group.created_id',
           'table_name' => 'civicrm_custom_group',
           'entity' => 'CustomGroup',
@@ -586,6 +694,12 @@ class CRM_Core_DAO_CustomGroup extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME,
           'title' => ts('Custom Group Created Date'),
           'description' => ts('Date and time this custom group was created.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_custom_group.created_date',
           'table_name' => 'civicrm_custom_group',
           'entity' => 'CustomGroup',
@@ -599,6 +713,12 @@ class CRM_Core_DAO_CustomGroup extends CRM_Core_DAO {
           'title' => ts('Reserved Group?'),
           'description' => ts('Is this a reserved Custom Group?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_custom_group.is_reserved',
           'default' => '0',
           'table_name' => 'civicrm_custom_group',
@@ -613,6 +733,12 @@ class CRM_Core_DAO_CustomGroup extends CRM_Core_DAO {
           'title' => ts('Custom Group Is Public?'),
           'description' => ts('Is this property public?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_custom_group.is_public',
           'default' => '1',
           'table_name' => 'civicrm_custom_group',
@@ -628,6 +754,12 @@ class CRM_Core_DAO_CustomGroup extends CRM_Core_DAO {
           'description' => ts('crm-i icon class'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_custom_group.icon',
           'default' => NULL,
           'table_name' => 'civicrm_custom_group',
diff --git a/civicrm/CRM/Core/DAO/Dashboard.php b/civicrm/CRM/Core/DAO/Dashboard.php
index 9578d7918493fc2dc8f48c18779118bdae10729e..26929dadca2931df916db0698915e78aefee453e 100644
--- a/civicrm/CRM/Core/DAO/Dashboard.php
+++ b/civicrm/CRM/Core/DAO/Dashboard.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/Dashboard.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:d312724abec4984c66243b7c10793a96)
+ * (GenCodeChecksum:8ae82bee366f48ef26b35caf23b89398)
  */
 
 /**
@@ -189,6 +189,12 @@ class CRM_Core_DAO_Dashboard extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('DashletID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_dashboard.id',
           'table_name' => 'civicrm_dashboard',
           'entity' => 'Dashboard',
@@ -206,6 +212,12 @@ class CRM_Core_DAO_Dashboard extends CRM_Core_DAO {
           'title' => ts('Domain ID'),
           'description' => ts('Domain for dashboard'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_dashboard.domain_id',
           'table_name' => 'civicrm_dashboard',
           'entity' => 'Dashboard',
@@ -229,6 +241,12 @@ class CRM_Core_DAO_Dashboard extends CRM_Core_DAO {
           'description' => ts('Internal name of dashlet.'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_dashboard.name',
           'table_name' => 'civicrm_dashboard',
           'entity' => 'Dashboard',
@@ -243,6 +261,12 @@ class CRM_Core_DAO_Dashboard extends CRM_Core_DAO {
           'description' => ts('dashlet title'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_dashboard.label',
           'table_name' => 'civicrm_dashboard',
           'entity' => 'Dashboard',
@@ -257,6 +281,12 @@ class CRM_Core_DAO_Dashboard extends CRM_Core_DAO {
           'description' => ts('url in case of external dashlet'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_dashboard.url',
           'table_name' => 'civicrm_dashboard',
           'entity' => 'Dashboard',
@@ -271,6 +301,12 @@ class CRM_Core_DAO_Dashboard extends CRM_Core_DAO {
           'description' => ts('Permission for the dashlet'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_dashboard.permission',
           'table_name' => 'civicrm_dashboard',
           'entity' => 'Dashboard',
@@ -286,6 +322,12 @@ class CRM_Core_DAO_Dashboard extends CRM_Core_DAO {
           'description' => ts('Permission Operator'),
           'maxlength' => 3,
           'size' => CRM_Utils_Type::FOUR,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_dashboard.permission_operator',
           'table_name' => 'civicrm_dashboard',
           'entity' => 'Dashboard',
@@ -303,6 +345,12 @@ class CRM_Core_DAO_Dashboard extends CRM_Core_DAO {
           'description' => ts('fullscreen url for dashlet'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_dashboard.fullscreen_url',
           'table_name' => 'civicrm_dashboard',
           'entity' => 'Dashboard',
@@ -316,6 +364,12 @@ class CRM_Core_DAO_Dashboard extends CRM_Core_DAO {
           'title' => ts('Is Dashlet Active?'),
           'description' => ts('Is this dashlet active?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_dashboard.is_active',
           'default' => '0',
           'table_name' => 'civicrm_dashboard',
@@ -334,6 +388,12 @@ class CRM_Core_DAO_Dashboard extends CRM_Core_DAO {
           'title' => ts('Is Dashlet Reserved?'),
           'description' => ts('Is this dashlet reserved?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_dashboard.is_reserved',
           'default' => '0',
           'table_name' => 'civicrm_dashboard',
@@ -348,6 +408,12 @@ class CRM_Core_DAO_Dashboard extends CRM_Core_DAO {
           'title' => ts('Cache Minutes'),
           'description' => ts('Number of minutes to cache dashlet content in browser localStorage.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_dashboard.cache_minutes',
           'default' => '60',
           'table_name' => 'civicrm_dashboard',
@@ -363,6 +429,12 @@ class CRM_Core_DAO_Dashboard extends CRM_Core_DAO {
           'description' => ts('Element name of angular directive to invoke (lowercase hyphenated format)'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_dashboard.directive',
           'table_name' => 'civicrm_dashboard',
           'entity' => 'Dashboard',
diff --git a/civicrm/CRM/Core/DAO/Discount.php b/civicrm/CRM/Core/DAO/Discount.php
index 919a45ee21cafb73a77ea6b7c7f993482ea23445..d56564cfd124e560c0e304247ea75cfd71e15cf8 100644
--- a/civicrm/CRM/Core/DAO/Discount.php
+++ b/civicrm/CRM/Core/DAO/Discount.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/Discount.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:39f48abf39ca4618fa51b61514053042)
+ * (GenCodeChecksum:b5b246e07e19dc11978ab693b60e27d6)
  */
 
 /**
@@ -132,6 +132,12 @@ class CRM_Core_DAO_Discount extends CRM_Core_DAO {
           'title' => ts('Discount ID'),
           'description' => ts('primary key'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_discount.id',
           'table_name' => 'civicrm_discount',
           'entity' => 'Discount',
@@ -150,6 +156,12 @@ class CRM_Core_DAO_Discount extends CRM_Core_DAO {
           'description' => ts('physical tablename for entity being joined to discount, e.g. civicrm_event'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_discount.entity_table',
           'table_name' => 'civicrm_discount',
           'entity' => 'Discount',
@@ -163,6 +175,12 @@ class CRM_Core_DAO_Discount extends CRM_Core_DAO {
           'title' => ts('Entity ID'),
           'description' => ts('FK to entity table specified in entity_table column.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_discount.entity_id',
           'table_name' => 'civicrm_discount',
           'entity' => 'Discount',
@@ -176,6 +194,12 @@ class CRM_Core_DAO_Discount extends CRM_Core_DAO {
           'title' => ts('Price Set ID'),
           'description' => ts('FK to civicrm_price_set'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => TRUE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_discount.price_set_id',
           'export' => TRUE,
           'table_name' => 'civicrm_discount',
@@ -198,6 +222,12 @@ class CRM_Core_DAO_Discount extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE,
           'title' => ts('Discount Start Date'),
           'description' => ts('Date when discount starts.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_discount.start_date',
           'table_name' => 'civicrm_discount',
           'entity' => 'Discount',
@@ -210,6 +240,12 @@ class CRM_Core_DAO_Discount extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE,
           'title' => ts('Discount End Date'),
           'description' => ts('Date when discount ends.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_discount.end_date',
           'table_name' => 'civicrm_discount',
           'entity' => 'Discount',
diff --git a/civicrm/CRM/Core/DAO/Domain.php b/civicrm/CRM/Core/DAO/Domain.php
index 1d8073157a830655d74f0cd2cc7b1ab821e099a6..4cc994922dad9fe44f9cb938e568bdb3b6ebe72f 100644
--- a/civicrm/CRM/Core/DAO/Domain.php
+++ b/civicrm/CRM/Core/DAO/Domain.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/Domain.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:ff3b7bab0ceab58d5d01c228e80569cc)
+ * (GenCodeChecksum:62b9169ac4b8697ec80e752d06ee1bce)
  */
 
 /**
@@ -140,6 +140,12 @@ class CRM_Core_DAO_Domain extends CRM_Core_DAO {
           'title' => ts('Domain ID'),
           'description' => ts('Domain ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_domain.id',
           'table_name' => 'civicrm_domain',
           'entity' => 'Domain',
@@ -158,6 +164,12 @@ class CRM_Core_DAO_Domain extends CRM_Core_DAO {
           'description' => ts('Name of Domain / Organization'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_domain.name',
           'table_name' => 'civicrm_domain',
           'entity' => 'Domain',
@@ -175,6 +187,12 @@ class CRM_Core_DAO_Domain extends CRM_Core_DAO {
           'description' => ts('Description of Domain.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_domain.description',
           'table_name' => 'civicrm_domain',
           'entity' => 'Domain',
@@ -192,6 +210,12 @@ class CRM_Core_DAO_Domain extends CRM_Core_DAO {
           'description' => ts('The civicrm version this instance is running'),
           'maxlength' => 32,
           'size' => CRM_Utils_Type::MEDIUM,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_domain.version',
           'table_name' => 'civicrm_domain',
           'entity' => 'Domain',
@@ -204,6 +228,12 @@ class CRM_Core_DAO_Domain extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Contact ID'),
           'description' => ts('FK to Contact ID. This is specifically not an FK to avoid circular constraints'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_domain.contact_id',
           'table_name' => 'civicrm_domain',
           'entity' => 'Domain',
@@ -220,6 +250,12 @@ class CRM_Core_DAO_Domain extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Supported Languages'),
           'description' => ts('list of locales supported by the current db state (NULL for single-lang install)'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_domain.locales',
           'table_name' => 'civicrm_domain',
           'entity' => 'Domain',
@@ -233,6 +269,12 @@ class CRM_Core_DAO_Domain extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Language Customizations'),
           'description' => ts('Locale specific string overrides'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_domain.locale_custom_strings',
           'table_name' => 'civicrm_domain',
           'entity' => 'Domain',
diff --git a/civicrm/CRM/Core/DAO/Email.php b/civicrm/CRM/Core/DAO/Email.php
index dfb27ff5e63bbce6a514ef203fefb4c979099155..8fa3121e6b3dd26e2abd5fd5b84d83765d589fa8 100644
--- a/civicrm/CRM/Core/DAO/Email.php
+++ b/civicrm/CRM/Core/DAO/Email.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/Email.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:9a78bc3d5abc98068f2615a4f6836141)
+ * (GenCodeChecksum:466e1cb583d12b018b7deb2c946c2d44)
  */
 
 /**
@@ -199,6 +199,12 @@ class CRM_Core_DAO_Email extends CRM_Core_DAO {
           'title' => ts('Email ID'),
           'description' => ts('Unique Email ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_email.id',
           'table_name' => 'civicrm_email',
           'entity' => 'Email',
@@ -215,6 +221,12 @@ class CRM_Core_DAO_Email extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Contact ID'),
           'description' => ts('FK to Contact ID'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_email.contact_id',
           'table_name' => 'civicrm_email',
           'entity' => 'Email',
@@ -231,6 +243,12 @@ class CRM_Core_DAO_Email extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Email Location Type'),
           'description' => ts('Which Location does this email belong to.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_email.location_type_id',
           'table_name' => 'civicrm_email',
           'entity' => 'Email',
@@ -253,6 +271,12 @@ class CRM_Core_DAO_Email extends CRM_Core_DAO {
           'description' => ts('Email address'),
           'maxlength' => 254,
           'size' => 30,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_email.email',
           'headerPattern' => '/e.?mail/i',
@@ -274,6 +298,12 @@ class CRM_Core_DAO_Email extends CRM_Core_DAO {
           'title' => ts('Is Primary'),
           'description' => ts('Is this the primary email address'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_email.is_primary',
           'default' => '0',
           'table_name' => 'civicrm_email',
@@ -291,6 +321,12 @@ class CRM_Core_DAO_Email extends CRM_Core_DAO {
           'title' => ts('Is Billing Email?'),
           'description' => ts('Is this the billing?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_email.is_billing',
           'default' => '0',
           'table_name' => 'civicrm_email',
@@ -305,6 +341,12 @@ class CRM_Core_DAO_Email extends CRM_Core_DAO {
           'title' => ts('On Hold'),
           'description' => ts('Implicit FK to civicrm_option_value where option_group = email_on_hold.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => TRUE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_email.on_hold',
           'export' => TRUE,
           'default' => '0',
@@ -326,6 +368,12 @@ class CRM_Core_DAO_Email extends CRM_Core_DAO {
           'title' => ts('Use for Bulk Mail'),
           'description' => ts('Is this address for bulk mail ?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => TRUE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_email.is_bulkmail',
           'export' => TRUE,
           'default' => '0',
@@ -340,6 +388,12 @@ class CRM_Core_DAO_Email extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME,
           'title' => ts('Hold Date'),
           'description' => ts('When the address went on bounce hold'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_email.hold_date',
           'table_name' => 'civicrm_email',
           'entity' => 'Email',
@@ -358,6 +412,12 @@ class CRM_Core_DAO_Email extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME,
           'title' => ts('Reset Date'),
           'description' => ts('When the address bounce status was last reset'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_email.reset_date',
           'table_name' => 'civicrm_email',
           'entity' => 'Email',
@@ -375,6 +435,12 @@ class CRM_Core_DAO_Email extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Signature Text'),
           'description' => ts('Text formatted signature for the email.'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_email.signature_text',
           'export' => TRUE,
@@ -393,6 +459,12 @@ class CRM_Core_DAO_Email extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Signature Html'),
           'description' => ts('HTML formatted signature for the email.'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_email.signature_html',
           'export' => TRUE,
diff --git a/civicrm/CRM/Core/DAO/EntityFile.php b/civicrm/CRM/Core/DAO/EntityFile.php
index 185cee0296929450b2c3811407ee9f86d8090118..21383d0788bdf347939700042cc6f2051f9255ae 100644
--- a/civicrm/CRM/Core/DAO/EntityFile.php
+++ b/civicrm/CRM/Core/DAO/EntityFile.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/EntityFile.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:7a12c1131215b6f149f9c37227739a4f)
+ * (GenCodeChecksum:abc8d2d096560e9cf5e96f385bb6c4a6)
  */
 
 /**
@@ -114,6 +114,12 @@ class CRM_Core_DAO_EntityFile extends CRM_Core_DAO {
           'title' => ts('Entity File ID'),
           'description' => ts('primary key'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_entity_file.id',
           'table_name' => 'civicrm_entity_file',
           'entity' => 'EntityFile',
@@ -132,6 +138,12 @@ class CRM_Core_DAO_EntityFile extends CRM_Core_DAO {
           'description' => ts('physical tablename for entity being joined to file, e.g. civicrm_contact'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_entity_file.entity_table',
           'table_name' => 'civicrm_entity_file',
           'entity' => 'EntityFile',
@@ -145,6 +157,12 @@ class CRM_Core_DAO_EntityFile extends CRM_Core_DAO {
           'title' => ts('Entity ID'),
           'description' => ts('FK to entity table specified in entity_table column.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_entity_file.entity_id',
           'table_name' => 'civicrm_entity_file',
           'entity' => 'EntityFile',
@@ -158,6 +176,12 @@ class CRM_Core_DAO_EntityFile extends CRM_Core_DAO {
           'title' => ts('File ID'),
           'description' => ts('FK to civicrm_file'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_entity_file.file_id',
           'table_name' => 'civicrm_entity_file',
           'entity' => 'EntityFile',
diff --git a/civicrm/CRM/Core/DAO/EntityTag.php b/civicrm/CRM/Core/DAO/EntityTag.php
index 570886031087e1c383fafc176f116cb0786f5f23..c099f7b3832e358a131ffed2772de0f85ac57b45 100644
--- a/civicrm/CRM/Core/DAO/EntityTag.php
+++ b/civicrm/CRM/Core/DAO/EntityTag.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/EntityTag.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:34d286015dc73849f21721ca37eb2266)
+ * (GenCodeChecksum:abace77d8add308d67ba45fa73c2f249)
  */
 
 /**
@@ -114,6 +114,12 @@ class CRM_Core_DAO_EntityTag extends CRM_Core_DAO {
           'title' => ts('Entity Tag ID'),
           'description' => ts('primary key'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_entity_tag.id',
           'table_name' => 'civicrm_entity_tag',
           'entity' => 'EntityTag',
@@ -132,6 +138,12 @@ class CRM_Core_DAO_EntityTag extends CRM_Core_DAO {
           'description' => ts('physical tablename for entity being joined to file, e.g. civicrm_contact'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_entity_tag.entity_table',
           'table_name' => 'civicrm_entity_tag',
           'entity' => 'EntityTag',
@@ -149,6 +161,12 @@ class CRM_Core_DAO_EntityTag extends CRM_Core_DAO {
           'title' => ts('Entity ID'),
           'description' => ts('FK to entity table specified in entity_table column.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_entity_tag.entity_id',
           'table_name' => 'civicrm_entity_tag',
           'entity' => 'EntityTag',
@@ -162,6 +180,12 @@ class CRM_Core_DAO_EntityTag extends CRM_Core_DAO {
           'title' => ts('Tag ID'),
           'description' => ts('FK to civicrm_tag'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_entity_tag.tag_id',
           'table_name' => 'civicrm_entity_tag',
           'entity' => 'EntityTag',
diff --git a/civicrm/CRM/Core/DAO/Extension.php b/civicrm/CRM/Core/DAO/Extension.php
index 8a291238ffbbe4d475778dc26bd30ba20631b946..bddb71c0a2d1aafddaddd3117a2fd35a31cddbe5 100644
--- a/civicrm/CRM/Core/DAO/Extension.php
+++ b/civicrm/CRM/Core/DAO/Extension.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/Extension.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:ea1fbfda1b143df90ea7a9f61f27c652)
+ * (GenCodeChecksum:ed9e7b26e41992fa8f4e81e942eedf14)
  */
 
 /**
@@ -139,6 +139,12 @@ class CRM_Core_DAO_Extension extends CRM_Core_DAO {
           'title' => ts('Extension ID'),
           'description' => ts('Local Extension ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_extension.id',
           'table_name' => 'civicrm_extension',
           'entity' => 'Extension',
@@ -157,6 +163,12 @@ class CRM_Core_DAO_Extension extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 8,
           'size' => CRM_Utils_Type::EIGHT,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_extension.type',
           'table_name' => 'civicrm_extension',
           'entity' => 'Extension',
@@ -178,6 +190,12 @@ class CRM_Core_DAO_Extension extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_extension.full_name',
           'table_name' => 'civicrm_extension',
           'entity' => 'Extension',
@@ -192,6 +210,12 @@ class CRM_Core_DAO_Extension extends CRM_Core_DAO {
           'description' => ts('Short name'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_extension.name',
           'export' => TRUE,
@@ -208,6 +232,12 @@ class CRM_Core_DAO_Extension extends CRM_Core_DAO {
           'description' => ts('Short, printable name'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_extension.label',
           'export' => TRUE,
@@ -224,6 +254,12 @@ class CRM_Core_DAO_Extension extends CRM_Core_DAO {
           'description' => ts('Primary PHP file'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_extension.file',
           'export' => TRUE,
@@ -240,6 +276,12 @@ class CRM_Core_DAO_Extension extends CRM_Core_DAO {
           'description' => ts('Revision code of the database schema; the format is module-defined'),
           'maxlength' => 63,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_extension.schema_version',
           'export' => TRUE,
@@ -254,6 +296,12 @@ class CRM_Core_DAO_Extension extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_BOOLEAN,
           'title' => ts('Extension is Active?'),
           'description' => ts('Is this extension active?'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_extension.is_active',
           'default' => '1',
           'table_name' => 'civicrm_extension',
diff --git a/civicrm/CRM/Core/DAO/File.php b/civicrm/CRM/Core/DAO/File.php
index f5ec0276999e087580b9b666e280095e9c6de64f..91b27a3b0fa2555c02771724016cf76e603717c5 100644
--- a/civicrm/CRM/Core/DAO/File.php
+++ b/civicrm/CRM/Core/DAO/File.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/File.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:a9fc8f7aec1f4ea752f908ab1845b7ea)
+ * (GenCodeChecksum:1f553579f32db40c6a3708c56d8cf58f)
  */
 
 /**
@@ -149,6 +149,12 @@ class CRM_Core_DAO_File extends CRM_Core_DAO {
           'title' => ts('File ID'),
           'description' => ts('Unique ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_file.id',
           'table_name' => 'civicrm_file',
           'entity' => 'File',
@@ -165,6 +171,12 @@ class CRM_Core_DAO_File extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('File Type'),
           'description' => ts('Type of file (e.g. Transcript, Income Tax Return, etc). FK to civicrm_option_value.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_file.file_type_id',
           'table_name' => 'civicrm_file',
           'entity' => 'File',
@@ -179,6 +191,12 @@ class CRM_Core_DAO_File extends CRM_Core_DAO {
           'description' => ts('mime type of the document'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_file.mime_type',
           'table_name' => 'civicrm_file',
           'entity' => 'File',
@@ -193,6 +211,12 @@ class CRM_Core_DAO_File extends CRM_Core_DAO {
           'description' => ts('uri of the file on disk'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_file.uri',
           'table_name' => 'civicrm_file',
           'entity' => 'File',
@@ -205,6 +229,12 @@ class CRM_Core_DAO_File extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_MEDIUMBLOB,
           'title' => ts('File Contents'),
           'description' => ts('contents of the document'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_file.document',
           'table_name' => 'civicrm_file',
           'entity' => 'File',
@@ -219,6 +249,12 @@ class CRM_Core_DAO_File extends CRM_Core_DAO {
           'description' => ts('Additional descriptive text regarding this attachment (optional).'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_file.description',
           'table_name' => 'civicrm_file',
           'entity' => 'File',
@@ -231,6 +267,12 @@ class CRM_Core_DAO_File extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME,
           'title' => ts('File Upload Date'),
           'description' => ts('Date and time that this attachment was uploaded or written to server.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_file.upload_date',
           'table_name' => 'civicrm_file',
           'entity' => 'File',
@@ -243,6 +285,12 @@ class CRM_Core_DAO_File extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Created By Contact ID'),
           'description' => ts('FK to civicrm_contact, who uploaded this file'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_file.created_id',
           'table_name' => 'civicrm_file',
           'entity' => 'File',
diff --git a/civicrm/CRM/Core/DAO/IM.php b/civicrm/CRM/Core/DAO/IM.php
index 64abf247e1586344e17e0e7091c94f55904c4f68..495c6161616cd0c2f806f00c7cdbcab6f8215f61 100644
--- a/civicrm/CRM/Core/DAO/IM.php
+++ b/civicrm/CRM/Core/DAO/IM.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/IM.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:612781b041b64c2af06afb83381f0950)
+ * (GenCodeChecksum:950d37fd8d509c34689d6d40dca59c1d)
  */
 
 /**
@@ -154,6 +154,12 @@ class CRM_Core_DAO_IM extends CRM_Core_DAO {
           'title' => ts('Instant Messenger ID'),
           'description' => ts('Unique IM ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_im.id',
           'table_name' => 'civicrm_im',
           'entity' => 'IM',
@@ -170,6 +176,12 @@ class CRM_Core_DAO_IM extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Contact ID'),
           'description' => ts('FK to Contact ID'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_im.contact_id',
           'table_name' => 'civicrm_im',
           'entity' => 'IM',
@@ -186,6 +198,12 @@ class CRM_Core_DAO_IM extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('IM Location Type'),
           'description' => ts('Which Location does this email belong to.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_im.location_type_id',
           'table_name' => 'civicrm_im',
           'entity' => 'IM',
@@ -208,6 +226,12 @@ class CRM_Core_DAO_IM extends CRM_Core_DAO {
           'description' => ts('IM screen name'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_im.name',
           'headerPattern' => '/I(nstant )?M(ess.*)?|screen(\s+)?name/i',
@@ -227,6 +251,12 @@ class CRM_Core_DAO_IM extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('IM Provider'),
           'description' => ts('Which IM Provider does this screen name belong to.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_im.provider_id',
           'table_name' => 'civicrm_im',
           'entity' => 'IM',
@@ -244,9 +274,15 @@ class CRM_Core_DAO_IM extends CRM_Core_DAO {
         'is_primary' => [
           'name' => 'is_primary',
           'type' => CRM_Utils_Type::T_BOOLEAN,
-          'title' => ts('Primary IM'),
+          'title' => ts('Is Primary'),
           'description' => ts('Is this the primary IM for this contact and location.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_im.is_primary',
           'default' => '0',
           'table_name' => 'civicrm_im',
@@ -264,6 +300,12 @@ class CRM_Core_DAO_IM extends CRM_Core_DAO {
           'title' => ts('Is IM Billing?'),
           'description' => ts('Is this the billing?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_im.is_billing',
           'default' => '0',
           'table_name' => 'civicrm_im',
diff --git a/civicrm/CRM/Core/DAO/Job.php b/civicrm/CRM/Core/DAO/Job.php
index 1c08d6cb91d468606f984a8fcc1e59db05dbf22a..3520d7afab900dab629f307cb2d9b15ec748ca1c 100644
--- a/civicrm/CRM/Core/DAO/Job.php
+++ b/civicrm/CRM/Core/DAO/Job.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/Job.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:456abe8785f3b44c4b9db93b93ace489)
+ * (GenCodeChecksum:512bc14536dfd40680e4de831c8991e9)
  */
 
 /**
@@ -176,6 +176,12 @@ class CRM_Core_DAO_Job extends CRM_Core_DAO {
           'title' => ts('Job ID'),
           'description' => ts('Job ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_job.id',
           'table_name' => 'civicrm_job',
           'entity' => 'Job',
@@ -193,6 +199,12 @@ class CRM_Core_DAO_Job extends CRM_Core_DAO {
           'title' => ts('Domain ID'),
           'description' => ts('Which Domain is this scheduled job for'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_job.domain_id',
           'table_name' => 'civicrm_job',
           'entity' => 'Job',
@@ -216,6 +228,12 @@ class CRM_Core_DAO_Job extends CRM_Core_DAO {
           'description' => ts('Scheduled job run frequency.'),
           'maxlength' => 8,
           'size' => CRM_Utils_Type::EIGHT,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_job.run_frequency',
           'default' => 'Daily',
           'table_name' => 'civicrm_job',
@@ -236,6 +254,12 @@ class CRM_Core_DAO_Job extends CRM_Core_DAO {
           'title' => ts('Last Run'),
           'description' => ts('When was this cron entry last run'),
           'required' => FALSE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_job.last_run',
           'default' => NULL,
           'table_name' => 'civicrm_job',
@@ -253,6 +277,12 @@ class CRM_Core_DAO_Job extends CRM_Core_DAO {
           'title' => ts('Scheduled Run Date'),
           'description' => ts('When is this cron entry scheduled to run'),
           'required' => FALSE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_job.scheduled_run_date',
           'default' => NULL,
           'table_name' => 'civicrm_job',
@@ -271,6 +301,12 @@ class CRM_Core_DAO_Job extends CRM_Core_DAO {
           'description' => ts('Title of the job'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_job.name',
           'table_name' => 'civicrm_job',
           'entity' => 'Job',
@@ -285,6 +321,12 @@ class CRM_Core_DAO_Job extends CRM_Core_DAO {
           'description' => ts('Description of the job'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_job.description',
           'table_name' => 'civicrm_job',
           'entity' => 'Job',
@@ -299,6 +341,12 @@ class CRM_Core_DAO_Job extends CRM_Core_DAO {
           'description' => ts('Entity of the job api call'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_job.api_entity',
           'table_name' => 'civicrm_job',
           'entity' => 'Job',
@@ -313,6 +361,12 @@ class CRM_Core_DAO_Job extends CRM_Core_DAO {
           'description' => ts('Action of the job api call'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_job.api_action',
           'table_name' => 'civicrm_job',
           'entity' => 'Job',
@@ -327,6 +381,12 @@ class CRM_Core_DAO_Job extends CRM_Core_DAO {
           'description' => ts('List of parameters to the command.'),
           'rows' => 4,
           'cols' => 60,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_job.parameters',
           'table_name' => 'civicrm_job',
           'entity' => 'Job',
@@ -343,6 +403,12 @@ class CRM_Core_DAO_Job extends CRM_Core_DAO {
           'title' => ts('Job Is Active?'),
           'description' => ts('Is this job active?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_job.is_active',
           'default' => '1',
           'table_name' => 'civicrm_job',
diff --git a/civicrm/CRM/Core/DAO/JobLog.php b/civicrm/CRM/Core/DAO/JobLog.php
index c38d1e777042ebf1b53f439183c5c43978bd1c9c..575e590bceeb351be555e13c07aae8081ea3a20d 100644
--- a/civicrm/CRM/Core/DAO/JobLog.php
+++ b/civicrm/CRM/Core/DAO/JobLog.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/JobLog.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:98cdc7ac1580bf4029404b0e69fa401c)
+ * (GenCodeChecksum:fd30c815442ad1c13c530d3e697670e0)
  */
 
 /**
@@ -150,6 +150,12 @@ class CRM_Core_DAO_JobLog extends CRM_Core_DAO {
           'title' => ts('Job Log ID'),
           'description' => ts('Job log entry ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_job_log.id',
           'table_name' => 'civicrm_job_log',
           'entity' => 'JobLog',
@@ -167,6 +173,12 @@ class CRM_Core_DAO_JobLog extends CRM_Core_DAO {
           'title' => ts('Domain ID'),
           'description' => ts('Which Domain is this scheduled job for'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_job_log.domain_id',
           'table_name' => 'civicrm_job_log',
           'entity' => 'JobLog',
@@ -188,6 +200,12 @@ class CRM_Core_DAO_JobLog extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TIMESTAMP,
           'title' => ts('Timestamp'),
           'description' => ts('Log entry date'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_job_log.run_time',
           'table_name' => 'civicrm_job_log',
           'entity' => 'JobLog',
@@ -200,6 +218,12 @@ class CRM_Core_DAO_JobLog extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Job ID'),
           'description' => ts('Pointer to job id'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_job_log.job_id',
           'table_name' => 'civicrm_job_log',
           'entity' => 'JobLog',
@@ -218,6 +242,12 @@ class CRM_Core_DAO_JobLog extends CRM_Core_DAO {
           'description' => ts('Title of the job'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_job_log.name',
           'table_name' => 'civicrm_job_log',
           'entity' => 'JobLog',
@@ -232,6 +262,12 @@ class CRM_Core_DAO_JobLog extends CRM_Core_DAO {
           'description' => ts('Full path to file containing job script'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_job_log.command',
           'table_name' => 'civicrm_job_log',
           'entity' => 'JobLog',
@@ -246,6 +282,12 @@ class CRM_Core_DAO_JobLog extends CRM_Core_DAO {
           'description' => ts('Title line of log entry'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_job_log.description',
           'table_name' => 'civicrm_job_log',
           'entity' => 'JobLog',
@@ -258,6 +300,12 @@ class CRM_Core_DAO_JobLog extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_LONGTEXT,
           'title' => ts('Extended Data'),
           'description' => ts('Potential extended data for specific job run (e.g. tracebacks).'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_job_log.data',
           'table_name' => 'civicrm_job_log',
           'entity' => 'JobLog',
diff --git a/civicrm/CRM/Core/DAO/LocBlock.php b/civicrm/CRM/Core/DAO/LocBlock.php
index b48facb2aae3f765d270a51f7302bce6665480d3..7a0c69b25e4c7f662d550a21308d019d204bcfc0 100644
--- a/civicrm/CRM/Core/DAO/LocBlock.php
+++ b/civicrm/CRM/Core/DAO/LocBlock.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/LocBlock.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:58abf1030f09b72bd670906899d1ff7a)
+ * (GenCodeChecksum:2d97c9b9682d113cff88a2e34ef6f954)
  */
 
 /**
@@ -156,6 +156,12 @@ class CRM_Core_DAO_LocBlock extends CRM_Core_DAO {
           'title' => ts('Location Block ID'),
           'description' => ts('Unique ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_loc_block.id',
           'table_name' => 'civicrm_loc_block',
           'entity' => 'LocBlock',
@@ -171,6 +177,12 @@ class CRM_Core_DAO_LocBlock extends CRM_Core_DAO {
           'name' => 'address_id',
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Address ID'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_loc_block.address_id',
           'table_name' => 'civicrm_loc_block',
           'entity' => 'LocBlock',
@@ -186,6 +198,12 @@ class CRM_Core_DAO_LocBlock extends CRM_Core_DAO {
           'name' => 'email_id',
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Email ID'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_loc_block.email_id',
           'table_name' => 'civicrm_loc_block',
           'entity' => 'LocBlock',
@@ -201,6 +219,12 @@ class CRM_Core_DAO_LocBlock extends CRM_Core_DAO {
           'name' => 'phone_id',
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Phone ID'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_loc_block.phone_id',
           'table_name' => 'civicrm_loc_block',
           'entity' => 'LocBlock',
@@ -216,6 +240,12 @@ class CRM_Core_DAO_LocBlock extends CRM_Core_DAO {
           'name' => 'im_id',
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('IM ID'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_loc_block.im_id',
           'table_name' => 'civicrm_loc_block',
           'entity' => 'LocBlock',
@@ -231,6 +261,12 @@ class CRM_Core_DAO_LocBlock extends CRM_Core_DAO {
           'name' => 'address_2_id',
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Address 2 ID'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_loc_block.address_2_id',
           'table_name' => 'civicrm_loc_block',
           'entity' => 'LocBlock',
@@ -246,6 +282,12 @@ class CRM_Core_DAO_LocBlock extends CRM_Core_DAO {
           'name' => 'email_2_id',
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Email 2 ID'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_loc_block.email_2_id',
           'table_name' => 'civicrm_loc_block',
           'entity' => 'LocBlock',
@@ -261,6 +303,12 @@ class CRM_Core_DAO_LocBlock extends CRM_Core_DAO {
           'name' => 'phone_2_id',
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Phone 2 ID'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_loc_block.phone_2_id',
           'table_name' => 'civicrm_loc_block',
           'entity' => 'LocBlock',
@@ -276,6 +324,12 @@ class CRM_Core_DAO_LocBlock extends CRM_Core_DAO {
           'name' => 'im_2_id',
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('IM 2 ID'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_loc_block.im_2_id',
           'table_name' => 'civicrm_loc_block',
           'entity' => 'LocBlock',
diff --git a/civicrm/CRM/Core/DAO/LocationType.php b/civicrm/CRM/Core/DAO/LocationType.php
index 43bafcda01c7cd32e5cdd3a98421b0f3d67fcf26..0c3db7375b77827aad9b5fbf5e279e0e527678f9 100644
--- a/civicrm/CRM/Core/DAO/LocationType.php
+++ b/civicrm/CRM/Core/DAO/LocationType.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/LocationType.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:9780d1d53d5475a316f3df1c371e903a)
+ * (GenCodeChecksum:035ebc0bafa88ffbc21d969b983399ef)
  */
 
 /**
@@ -145,6 +145,12 @@ class CRM_Core_DAO_LocationType extends CRM_Core_DAO {
           'title' => ts('Location Type ID'),
           'description' => ts('Location Type ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_location_type.id',
           'table_name' => 'civicrm_location_type',
           'entity' => 'LocationType',
@@ -163,6 +169,12 @@ class CRM_Core_DAO_LocationType extends CRM_Core_DAO {
           'description' => ts('Location Type Name.'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_location_type.name',
           'table_name' => 'civicrm_location_type',
           'entity' => 'LocationType',
@@ -177,6 +189,12 @@ class CRM_Core_DAO_LocationType extends CRM_Core_DAO {
           'description' => ts('Location Type Display Name.'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_location_type.display_name',
           'table_name' => 'civicrm_location_type',
           'entity' => 'LocationType',
@@ -191,6 +209,12 @@ class CRM_Core_DAO_LocationType extends CRM_Core_DAO {
           'description' => ts('vCard Location Type Name.'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_location_type.vcard_name',
           'table_name' => 'civicrm_location_type',
           'entity' => 'LocationType',
@@ -205,6 +229,12 @@ class CRM_Core_DAO_LocationType extends CRM_Core_DAO {
           'description' => ts('Location Type Description.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_location_type.description',
           'table_name' => 'civicrm_location_type',
           'entity' => 'LocationType',
@@ -220,6 +250,12 @@ class CRM_Core_DAO_LocationType extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_BOOLEAN,
           'title' => ts('Location Type is Reserved?'),
           'description' => ts('Is this location type a predefined system location?'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_location_type.is_reserved',
           'table_name' => 'civicrm_location_type',
           'entity' => 'LocationType',
@@ -232,6 +268,12 @@ class CRM_Core_DAO_LocationType extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_BOOLEAN,
           'title' => ts('Location Type is Active?'),
           'description' => ts('Is this property active?'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_location_type.is_active',
           'table_name' => 'civicrm_location_type',
           'entity' => 'LocationType',
@@ -248,6 +290,12 @@ class CRM_Core_DAO_LocationType extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_BOOLEAN,
           'title' => ts('Default Location Type?'),
           'description' => ts('Is this location type the default?'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_location_type.is_default',
           'table_name' => 'civicrm_location_type',
           'entity' => 'LocationType',
diff --git a/civicrm/CRM/Core/DAO/Log.php b/civicrm/CRM/Core/DAO/Log.php
index 6ea56c8f2c74e55bd5d61a3723ab253978ef52cc..e4e519d1ab89ec949a42a53d4cc4ab93acbcae74 100644
--- a/civicrm/CRM/Core/DAO/Log.php
+++ b/civicrm/CRM/Core/DAO/Log.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/Log.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:5187eb1975f03b74aa53fa0ad5755d45)
+ * (GenCodeChecksum:e61044339c5186502e8f949e0cf21085)
  */
 
 /**
@@ -132,6 +132,12 @@ class CRM_Core_DAO_Log extends CRM_Core_DAO {
           'title' => ts('Log ID'),
           'description' => ts('Log ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_log.id',
           'table_name' => 'civicrm_log',
           'entity' => 'Log',
@@ -151,6 +157,12 @@ class CRM_Core_DAO_Log extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_log.entity_table',
           'table_name' => 'civicrm_log',
           'entity' => 'Log',
@@ -164,6 +176,12 @@ class CRM_Core_DAO_Log extends CRM_Core_DAO {
           'title' => ts('Entity ID '),
           'description' => ts('Foreign key to the referenced item.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_log.entity_id',
           'table_name' => 'civicrm_log',
           'entity' => 'Log',
@@ -176,6 +194,12 @@ class CRM_Core_DAO_Log extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Data'),
           'description' => ts('Updates does to this object if any.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_log.data',
           'table_name' => 'civicrm_log',
           'entity' => 'Log',
@@ -188,6 +212,12 @@ class CRM_Core_DAO_Log extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Modified By Contact ID'),
           'description' => ts('FK to Contact ID of person under whose credentials this data modification was made.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_log.modified_id',
           'table_name' => 'civicrm_log',
           'entity' => 'Log',
@@ -204,6 +234,12 @@ class CRM_Core_DAO_Log extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME,
           'title' => ts('Modified Date'),
           'description' => ts('When was the referenced entity created or modified or deleted.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_log.modified_date',
           'table_name' => 'civicrm_log',
           'entity' => 'Log',
diff --git a/civicrm/CRM/Core/DAO/MailSettings.php b/civicrm/CRM/Core/DAO/MailSettings.php
index b8c6033d9c02eb17832bb4a71b1f93a5a63df0b5..b933a5d07d7e92bd30651a2315ef8e958f54d802 100644
--- a/civicrm/CRM/Core/DAO/MailSettings.php
+++ b/civicrm/CRM/Core/DAO/MailSettings.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/MailSettings.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:3524f24617ad5e625d5c79d1291f369e)
+ * (GenCodeChecksum:7b41fb2c318a3f0200a697026fcede90)
  */
 
 /**
@@ -228,6 +228,12 @@ class CRM_Core_DAO_MailSettings extends CRM_Core_DAO {
           'title' => ts('Mail Settings ID'),
           'description' => ts('primary key'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mail_settings.id',
           'table_name' => 'civicrm_mail_settings',
           'entity' => 'MailSettings',
@@ -245,6 +251,12 @@ class CRM_Core_DAO_MailSettings extends CRM_Core_DAO {
           'title' => ts('Domain ID'),
           'description' => ts('Which Domain is this match entry for'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mail_settings.domain_id',
           'table_name' => 'civicrm_mail_settings',
           'entity' => 'MailSettings',
@@ -268,6 +280,12 @@ class CRM_Core_DAO_MailSettings extends CRM_Core_DAO {
           'description' => ts('name of this group of settings'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mail_settings.name',
           'table_name' => 'civicrm_mail_settings',
           'entity' => 'MailSettings',
@@ -281,6 +299,12 @@ class CRM_Core_DAO_MailSettings extends CRM_Core_DAO {
           'title' => ts('Is Default Mail Settings?'),
           'description' => ts('whether this is the default set of settings for this domain'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mail_settings.is_default',
           'default' => '0',
           'table_name' => 'civicrm_mail_settings',
@@ -300,6 +324,12 @@ class CRM_Core_DAO_MailSettings extends CRM_Core_DAO {
           'description' => ts('email address domain (the part after @)'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mail_settings.domain',
           'table_name' => 'civicrm_mail_settings',
           'entity' => 'MailSettings',
@@ -314,6 +344,12 @@ class CRM_Core_DAO_MailSettings extends CRM_Core_DAO {
           'description' => ts('optional local part (like civimail+ for addresses like civimail+s.1.2@example.com)'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mail_settings.localpart',
           'table_name' => 'civicrm_mail_settings',
           'entity' => 'MailSettings',
@@ -328,6 +364,12 @@ class CRM_Core_DAO_MailSettings extends CRM_Core_DAO {
           'description' => ts('contents of the Return-Path header'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mail_settings.return_path',
           'table_name' => 'civicrm_mail_settings',
           'entity' => 'MailSettings',
@@ -342,6 +384,12 @@ class CRM_Core_DAO_MailSettings extends CRM_Core_DAO {
           'description' => ts('name of the protocol to use for polling (like IMAP, POP3 or Maildir)'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mail_settings.protocol',
           'table_name' => 'civicrm_mail_settings',
           'entity' => 'MailSettings',
@@ -363,6 +411,12 @@ class CRM_Core_DAO_MailSettings extends CRM_Core_DAO {
           'description' => ts('server to use when polling'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mail_settings.server',
           'table_name' => 'civicrm_mail_settings',
           'entity' => 'MailSettings',
@@ -375,6 +429,12 @@ class CRM_Core_DAO_MailSettings extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Mail Port'),
           'description' => ts('port to use when polling'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mail_settings.port',
           'table_name' => 'civicrm_mail_settings',
           'entity' => 'MailSettings',
@@ -389,6 +449,12 @@ class CRM_Core_DAO_MailSettings extends CRM_Core_DAO {
           'description' => ts('username to use when polling'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mail_settings.username',
           'table_name' => 'civicrm_mail_settings',
           'entity' => 'MailSettings',
@@ -403,6 +469,12 @@ class CRM_Core_DAO_MailSettings extends CRM_Core_DAO {
           'description' => ts('password to use when polling'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mail_settings.password',
           'table_name' => 'civicrm_mail_settings',
           'entity' => 'MailSettings',
@@ -416,6 +488,12 @@ class CRM_Core_DAO_MailSettings extends CRM_Core_DAO {
           'title' => ts('Mail Account Uses SSL'),
           'description' => ts('whether to use SSL or not'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mail_settings.is_ssl',
           'default' => '0',
           'table_name' => 'civicrm_mail_settings',
@@ -431,6 +509,12 @@ class CRM_Core_DAO_MailSettings extends CRM_Core_DAO {
           'description' => ts('folder to poll from when using IMAP, path to poll from when using Maildir, etc.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mail_settings.source',
           'table_name' => 'civicrm_mail_settings',
           'entity' => 'MailSettings',
@@ -445,6 +529,12 @@ class CRM_Core_DAO_MailSettings extends CRM_Core_DAO {
           'description' => ts('Name of status to use when creating email to activity.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mail_settings.activity_status',
           'table_name' => 'civicrm_mail_settings',
           'entity' => 'MailSettings',
@@ -466,6 +556,12 @@ class CRM_Core_DAO_MailSettings extends CRM_Core_DAO {
           'title' => ts('Skip emails which do not have a Case ID or Case hash'),
           'description' => ts('Enabling this option will have CiviCRM skip any emails that do not have the Case ID or Case Hash so that the system will only process emails that can be placed on case records. Any emails that are not processed will be moved to the ignored folder.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mail_settings.is_non_case_email_skipped',
           'default' => '0',
           'table_name' => 'civicrm_mail_settings',
@@ -482,6 +578,12 @@ class CRM_Core_DAO_MailSettings extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_BOOLEAN,
           'title' => ts('Do not create new contacts when filing emails'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mail_settings.is_contact_creation_disabled_if_no_match',
           'default' => '0',
           'table_name' => 'civicrm_mail_settings',
diff --git a/civicrm/CRM/Core/DAO/Managed.php b/civicrm/CRM/Core/DAO/Managed.php
index 9c0796789a860c108b7ba38f596d3b73b1643461..a82a5cae361932593e10237dcc9b91bf3ad09abb 100644
--- a/civicrm/CRM/Core/DAO/Managed.php
+++ b/civicrm/CRM/Core/DAO/Managed.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/Managed.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:79d376974a9dcce07c8ee483a32b2bc1)
+ * (GenCodeChecksum:1f1273f734c559351767e25b05b3925e)
  */
 
 /**
@@ -125,6 +125,12 @@ class CRM_Core_DAO_Managed extends CRM_Core_DAO {
           'title' => ts('Managed ID'),
           'description' => ts('Surrogate Key'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_managed.id',
           'table_name' => 'civicrm_managed',
           'entity' => 'Managed',
@@ -144,6 +150,12 @@ class CRM_Core_DAO_Managed extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 127,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_managed.module',
           'table_name' => 'civicrm_managed',
           'entity' => 'Managed',
@@ -158,6 +170,12 @@ class CRM_Core_DAO_Managed extends CRM_Core_DAO {
           'description' => ts('Symbolic name used by the module to identify the object'),
           'maxlength' => 127,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_managed.name',
           'table_name' => 'civicrm_managed',
           'entity' => 'Managed',
@@ -173,6 +191,12 @@ class CRM_Core_DAO_Managed extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_managed.entity_type',
           'table_name' => 'civicrm_managed',
           'entity' => 'Managed',
@@ -186,6 +210,12 @@ class CRM_Core_DAO_Managed extends CRM_Core_DAO {
           'title' => ts('Entity ID'),
           'description' => ts('Foreign key to the referenced item.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_managed.entity_id',
           'table_name' => 'civicrm_managed',
           'entity' => 'Managed',
@@ -200,6 +230,12 @@ class CRM_Core_DAO_Managed extends CRM_Core_DAO {
           'description' => ts('Policy on when to cleanup entity (always, never, unused)'),
           'maxlength' => 32,
           'size' => CRM_Utils_Type::MEDIUM,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_managed.cleanup',
           'table_name' => 'civicrm_managed',
           'entity' => 'Managed',
@@ -219,6 +255,12 @@ class CRM_Core_DAO_Managed extends CRM_Core_DAO {
           'title' => ts('Entity Modified Date'),
           'description' => ts('When the managed entity was changed from its original settings.'),
           'required' => FALSE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_managed.entity_modified_date',
           'default' => NULL,
           'table_name' => 'civicrm_managed',
diff --git a/civicrm/CRM/Core/DAO/Mapping.php b/civicrm/CRM/Core/DAO/Mapping.php
index b55d7732a9a2a8fd67727350b722912ab0771ac2..9a4e3ad6365ee26159e1aa27c24f143a844a18ab 100644
--- a/civicrm/CRM/Core/DAO/Mapping.php
+++ b/civicrm/CRM/Core/DAO/Mapping.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/Mapping.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:90ff3242f5dd3eba825a4f32ce7ffc85)
+ * (GenCodeChecksum:b25f314a77515ccdcff0c3bbf8e07fd2)
  */
 
 /**
@@ -98,6 +98,12 @@ class CRM_Core_DAO_Mapping extends CRM_Core_DAO {
           'title' => ts('Mapping ID'),
           'description' => ts('Mapping ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mapping.id',
           'table_name' => 'civicrm_mapping',
           'entity' => 'Mapping',
@@ -116,6 +122,12 @@ class CRM_Core_DAO_Mapping extends CRM_Core_DAO {
           'description' => ts('Name of Mapping'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mapping.name',
           'table_name' => 'civicrm_mapping',
           'entity' => 'Mapping',
@@ -130,6 +142,12 @@ class CRM_Core_DAO_Mapping extends CRM_Core_DAO {
           'description' => ts('Description of Mapping.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mapping.description',
           'table_name' => 'civicrm_mapping',
           'entity' => 'Mapping',
@@ -142,6 +160,12 @@ class CRM_Core_DAO_Mapping extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Mapping Type'),
           'description' => ts('Mapping Type'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mapping.mapping_type_id',
           'table_name' => 'civicrm_mapping',
           'entity' => 'Mapping',
diff --git a/civicrm/CRM/Core/DAO/MappingField.php b/civicrm/CRM/Core/DAO/MappingField.php
index a2906eaa11ee9b4d4ef7bc0da1f0869f7d03ddc0..d004323ec0a1f11f5e53c7372948aa2af58e2210 100644
--- a/civicrm/CRM/Core/DAO/MappingField.php
+++ b/civicrm/CRM/Core/DAO/MappingField.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/MappingField.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:3c9eaee238a7c77cd5c95fb4cbaa7c5a)
+ * (GenCodeChecksum:3df2e91108cdb428e82485a6640e1721)
  */
 
 /**
@@ -204,6 +204,12 @@ class CRM_Core_DAO_MappingField extends CRM_Core_DAO {
           'title' => ts('Mapping Field ID'),
           'description' => ts('Mapping Field ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mapping_field.id',
           'table_name' => 'civicrm_mapping_field',
           'entity' => 'MappingField',
@@ -221,6 +227,12 @@ class CRM_Core_DAO_MappingField extends CRM_Core_DAO {
           'title' => ts('Mapping ID'),
           'description' => ts('Mapping to which this field belongs'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mapping_field.mapping_id',
           'table_name' => 'civicrm_mapping_field',
           'entity' => 'MappingField',
@@ -239,6 +251,12 @@ class CRM_Core_DAO_MappingField extends CRM_Core_DAO {
           'description' => ts('Mapping field key'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mapping_field.name',
           'table_name' => 'civicrm_mapping_field',
           'entity' => 'MappingField',
@@ -253,6 +271,12 @@ class CRM_Core_DAO_MappingField extends CRM_Core_DAO {
           'description' => ts('Contact Type in mapping'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mapping_field.contact_type',
           'table_name' => 'civicrm_mapping_field',
           'entity' => 'MappingField',
@@ -269,6 +293,12 @@ class CRM_Core_DAO_MappingField extends CRM_Core_DAO {
           'title' => ts('Column Number to map to'),
           'description' => ts('Column number for mapping set'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mapping_field.column_number',
           'table_name' => 'civicrm_mapping_field',
           'entity' => 'MappingField',
@@ -281,6 +311,12 @@ class CRM_Core_DAO_MappingField extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Location type ID'),
           'description' => ts('Location type of this mapping, if required'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mapping_field.location_type_id',
           'table_name' => 'civicrm_mapping_field',
           'entity' => 'MappingField',
@@ -302,6 +338,12 @@ class CRM_Core_DAO_MappingField extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Phone type ID'),
           'description' => ts('Which type of phone does this number belongs.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mapping_field.phone_type_id',
           'table_name' => 'civicrm_mapping_field',
           'entity' => 'MappingField',
@@ -314,6 +356,12 @@ class CRM_Core_DAO_MappingField extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('IM provider ID'),
           'description' => ts('Which type of IM Provider does this name belong.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mapping_field.im_provider_id',
           'table_name' => 'civicrm_mapping_field',
           'entity' => 'MappingField',
@@ -333,6 +381,12 @@ class CRM_Core_DAO_MappingField extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Website type ID'),
           'description' => ts('Which type of website does this site belong'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mapping_field.website_type_id',
           'table_name' => 'civicrm_mapping_field',
           'entity' => 'MappingField',
@@ -352,6 +406,12 @@ class CRM_Core_DAO_MappingField extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Relationship type ID'),
           'description' => ts('Relationship type, if required'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mapping_field.relationship_type_id',
           'table_name' => 'civicrm_mapping_field',
           'entity' => 'MappingField',
@@ -369,6 +429,12 @@ class CRM_Core_DAO_MappingField extends CRM_Core_DAO {
           'title' => ts('Relationship Direction'),
           'maxlength' => 6,
           'size' => CRM_Utils_Type::SIX,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mapping_field.relationship_direction',
           'table_name' => 'civicrm_mapping_field',
           'entity' => 'MappingField',
@@ -382,6 +448,12 @@ class CRM_Core_DAO_MappingField extends CRM_Core_DAO {
           'title' => ts('Field Grouping'),
           'description' => ts('Used to group mapping_field records into related sets (e.g. for criteria sets in search builder
       mappings).'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mapping_field.grouping',
           'default' => '1',
           'table_name' => 'civicrm_mapping_field',
@@ -397,6 +469,12 @@ class CRM_Core_DAO_MappingField extends CRM_Core_DAO {
           'description' => ts('SQL WHERE operator for search-builder mapping fields (search criteria).'),
           'maxlength' => 16,
           'size' => CRM_Utils_Type::TWELVE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mapping_field.operator',
           'table_name' => 'civicrm_mapping_field',
           'entity' => 'MappingField',
@@ -417,6 +495,12 @@ class CRM_Core_DAO_MappingField extends CRM_Core_DAO {
           'description' => ts('SQL WHERE value for search-builder mapping fields.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mapping_field.value',
           'table_name' => 'civicrm_mapping_field',
           'entity' => 'MappingField',
diff --git a/civicrm/CRM/Core/DAO/Menu.php b/civicrm/CRM/Core/DAO/Menu.php
index d6216a79876e28905d6e2b19a604a241c6a71696..1d8531821ce42ffc110d6faee61b5babf89e74d4 100644
--- a/civicrm/CRM/Core/DAO/Menu.php
+++ b/civicrm/CRM/Core/DAO/Menu.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/Menu.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:c383a75ee8d3af6ecc1ed78b0dbb4f3a)
+ * (GenCodeChecksum:002201c07590192edf274b05b8b42886)
  */
 
 /**
@@ -278,6 +278,12 @@ class CRM_Core_DAO_Menu extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Menu ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_menu.id',
           'table_name' => 'civicrm_menu',
           'entity' => 'Menu',
@@ -295,6 +301,12 @@ class CRM_Core_DAO_Menu extends CRM_Core_DAO {
           'title' => ts('Domain ID'),
           'description' => ts('Which Domain is this menu item for'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_menu.domain_id',
           'table_name' => 'civicrm_menu',
           'entity' => 'Menu',
@@ -318,6 +330,12 @@ class CRM_Core_DAO_Menu extends CRM_Core_DAO {
           'description' => ts('Path Name'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_menu.path',
           'table_name' => 'civicrm_menu',
           'entity' => 'Menu',
@@ -330,6 +348,12 @@ class CRM_Core_DAO_Menu extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Arguments'),
           'description' => ts('Arguments to pass to the url'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_menu.path_arguments',
           'table_name' => 'civicrm_menu',
           'entity' => 'Menu',
@@ -343,6 +367,12 @@ class CRM_Core_DAO_Menu extends CRM_Core_DAO {
           'title' => ts('Menu Title'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_menu.title',
           'table_name' => 'civicrm_menu',
           'entity' => 'Menu',
@@ -357,6 +387,12 @@ class CRM_Core_DAO_Menu extends CRM_Core_DAO {
           'description' => ts('Function to call to check access permissions'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_menu.access_callback',
           'table_name' => 'civicrm_menu',
           'entity' => 'Menu',
@@ -369,6 +405,12 @@ class CRM_Core_DAO_Menu extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Access Arguments'),
           'description' => ts('Arguments to pass to access callback'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_menu.access_arguments',
           'table_name' => 'civicrm_menu',
           'entity' => 'Menu',
@@ -383,6 +425,12 @@ class CRM_Core_DAO_Menu extends CRM_Core_DAO {
           'description' => ts('function to call for this url'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_menu.page_callback',
           'table_name' => 'civicrm_menu',
           'entity' => 'Menu',
@@ -395,6 +443,12 @@ class CRM_Core_DAO_Menu extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Page Arguments'),
           'description' => ts('Arguments to pass to page callback'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_menu.page_arguments',
           'table_name' => 'civicrm_menu',
           'entity' => 'Menu',
@@ -407,6 +461,12 @@ class CRM_Core_DAO_Menu extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Breadcrumb'),
           'description' => ts('Breadcrumb for the path.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_menu.breadcrumb',
           'table_name' => 'civicrm_menu',
           'entity' => 'Menu',
@@ -421,6 +481,12 @@ class CRM_Core_DAO_Menu extends CRM_Core_DAO {
           'description' => ts('Url where a page should redirected to, if next url not known.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_menu.return_url',
           'table_name' => 'civicrm_menu',
           'entity' => 'Menu',
@@ -438,6 +504,12 @@ class CRM_Core_DAO_Menu extends CRM_Core_DAO {
           'description' => ts('Arguments to pass to return_url'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_menu.return_url_args',
           'table_name' => 'civicrm_menu',
           'entity' => 'Menu',
@@ -453,6 +525,12 @@ class CRM_Core_DAO_Menu extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Component ID'),
           'description' => ts('Component that this menu item belongs to'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_menu.component_id',
           'table_name' => 'civicrm_menu',
           'entity' => 'Menu',
@@ -476,6 +554,12 @@ class CRM_Core_DAO_Menu extends CRM_Core_DAO {
           'title' => ts('Enabled?'),
           'description' => ts('Is this menu item active?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_menu.is_active',
           'default' => '1',
           'table_name' => 'civicrm_menu',
@@ -494,6 +578,12 @@ class CRM_Core_DAO_Menu extends CRM_Core_DAO {
           'title' => ts('Public?'),
           'description' => ts('Is this menu accessible to the public?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_menu.is_public',
           'default' => '0',
           'table_name' => 'civicrm_menu',
@@ -508,6 +598,12 @@ class CRM_Core_DAO_Menu extends CRM_Core_DAO {
           'title' => ts('Exposed?'),
           'description' => ts('Is this menu exposed to the navigation system?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_menu.is_exposed',
           'default' => '1',
           'table_name' => 'civicrm_menu',
@@ -522,6 +618,12 @@ class CRM_Core_DAO_Menu extends CRM_Core_DAO {
           'title' => ts('Use SSL?'),
           'description' => ts('Should this menu be exposed via SSL if enabled?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_menu.is_ssl',
           'default' => '1',
           'table_name' => 'civicrm_menu',
@@ -536,6 +638,12 @@ class CRM_Core_DAO_Menu extends CRM_Core_DAO {
           'title' => ts('Order'),
           'description' => ts('Ordering of the menu items in various blocks.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_menu.weight',
           'default' => '1',
           'table_name' => 'civicrm_menu',
@@ -550,6 +658,12 @@ class CRM_Core_DAO_Menu extends CRM_Core_DAO {
           'title' => ts('Type'),
           'description' => ts('Drupal menu type.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_menu.type',
           'default' => '1',
           'table_name' => 'civicrm_menu',
@@ -564,6 +678,12 @@ class CRM_Core_DAO_Menu extends CRM_Core_DAO {
           'title' => ts('Page Type'),
           'description' => ts('CiviCRM menu type.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_menu.page_type',
           'default' => '1',
           'table_name' => 'civicrm_menu',
@@ -578,6 +698,12 @@ class CRM_Core_DAO_Menu extends CRM_Core_DAO {
           'title' => ts('Hide Breadcrumb?'),
           'description' => ts('skip this url being exposed to breadcrumb'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_menu.skipBreadcrumb',
           'default' => '0',
           'table_name' => 'civicrm_menu',
@@ -591,6 +717,12 @@ class CRM_Core_DAO_Menu extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Other menu data'),
           'description' => ts('All other menu metadata not stored in other fields'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_menu.module_data',
           'table_name' => 'civicrm_menu',
           'entity' => 'Menu',
diff --git a/civicrm/CRM/Core/DAO/MessageTemplate.php b/civicrm/CRM/Core/DAO/MessageTemplate.php
index 681773f007725e844995375d8877c656d7fedc94..5b10cda292a36b7d42992878988ca0adf5ac2e2d 100644
--- a/civicrm/CRM/Core/DAO/MessageTemplate.php
+++ b/civicrm/CRM/Core/DAO/MessageTemplate.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/MessageTemplate.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:040de739ab34019bd6532bc05214ba32)
+ * (GenCodeChecksum:5787b720061fdeb38bca35e2e6c35730)
  */
 
 /**
@@ -178,6 +178,12 @@ class CRM_Core_DAO_MessageTemplate extends CRM_Core_DAO {
           'title' => ts('Message Template ID'),
           'description' => ts('Message Template ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_msg_template.id',
           'table_name' => 'civicrm_msg_template',
           'entity' => 'MessageTemplate',
@@ -196,6 +202,12 @@ class CRM_Core_DAO_MessageTemplate extends CRM_Core_DAO {
           'description' => ts('Descriptive title of message'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_msg_template.msg_title',
           'table_name' => 'civicrm_msg_template',
           'entity' => 'MessageTemplate',
@@ -211,6 +223,12 @@ class CRM_Core_DAO_MessageTemplate extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Message Template Subject'),
           'description' => ts('Subject for email message.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_msg_template.msg_subject',
           'table_name' => 'civicrm_msg_template',
           'entity' => 'MessageTemplate',
@@ -226,6 +244,12 @@ class CRM_Core_DAO_MessageTemplate extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_LONGTEXT,
           'title' => ts('Message Template Text'),
           'description' => ts('Text formatted message'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_msg_template.msg_text',
           'table_name' => 'civicrm_msg_template',
           'entity' => 'MessageTemplate',
@@ -241,6 +265,12 @@ class CRM_Core_DAO_MessageTemplate extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_LONGTEXT,
           'title' => ts('Message Template HTML'),
           'description' => ts('HTML formatted message'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_msg_template.msg_html',
           'table_name' => 'civicrm_msg_template',
           'entity' => 'MessageTemplate',
@@ -256,6 +286,12 @@ class CRM_Core_DAO_MessageTemplate extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_BOOLEAN,
           'title' => ts('Is Active'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_msg_template.is_active',
           'default' => '1',
           'table_name' => 'civicrm_msg_template',
@@ -273,6 +309,12 @@ class CRM_Core_DAO_MessageTemplate extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Deprecated field for Message Template Workflow.'),
           'description' => ts('a pseudo-FK to civicrm_option_value'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_msg_template.workflow_id',
           'table_name' => 'civicrm_msg_template',
           'entity' => 'MessageTemplate',
@@ -286,6 +328,12 @@ class CRM_Core_DAO_MessageTemplate extends CRM_Core_DAO {
           'title' => ts('Message Template Workflow Name'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_msg_template.workflow_name',
           'table_name' => 'civicrm_msg_template',
           'entity' => 'MessageTemplate',
@@ -299,6 +347,12 @@ class CRM_Core_DAO_MessageTemplate extends CRM_Core_DAO {
           'title' => ts('Message Template Is Default?'),
           'description' => ts('is this the default message template for the workflow referenced by workflow_id?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_msg_template.is_default',
           'default' => '1',
           'table_name' => 'civicrm_msg_template',
@@ -317,6 +371,12 @@ class CRM_Core_DAO_MessageTemplate extends CRM_Core_DAO {
           'title' => ts('Message Template Is Reserved?'),
           'description' => ts('is this the reserved message template which we ship for the workflow referenced by workflow_id?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_msg_template.is_reserved',
           'default' => '0',
           'table_name' => 'civicrm_msg_template',
@@ -331,6 +391,12 @@ class CRM_Core_DAO_MessageTemplate extends CRM_Core_DAO {
           'title' => ts('Message Template is used for SMS?'),
           'description' => ts('Is this message template used for sms?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_msg_template.is_sms',
           'default' => '0',
           'table_name' => 'civicrm_msg_template',
@@ -344,6 +410,12 @@ class CRM_Core_DAO_MessageTemplate extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Message Template Format'),
           'description' => ts('a pseudo-FK to civicrm_option_value containing PDF Page Format.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_msg_template.pdf_format_id',
           'table_name' => 'civicrm_msg_template',
           'entity' => 'MessageTemplate',
diff --git a/civicrm/CRM/Core/DAO/Navigation.php b/civicrm/CRM/Core/DAO/Navigation.php
index 003b0f89911fb3460f558df33e48653b1ac870b8..dacb1bc34f1f4d7de51fbf15b50d7640ea5d0253 100644
--- a/civicrm/CRM/Core/DAO/Navigation.php
+++ b/civicrm/CRM/Core/DAO/Navigation.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/Navigation.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:4cd4cb4579333b609189a98ed5a236a3)
+ * (GenCodeChecksum:3629ca1a8d13a6a1311e887aecbece7d)
  */
 
 /**
@@ -190,6 +190,12 @@ class CRM_Core_DAO_Navigation extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Navigation ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_navigation.id',
           'table_name' => 'civicrm_navigation',
           'entity' => 'Navigation',
@@ -207,6 +213,12 @@ class CRM_Core_DAO_Navigation extends CRM_Core_DAO {
           'title' => ts('Domain ID'),
           'description' => ts('Which Domain is this navigation item for'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_navigation.domain_id',
           'table_name' => 'civicrm_navigation',
           'entity' => 'Navigation',
@@ -230,6 +242,12 @@ class CRM_Core_DAO_Navigation extends CRM_Core_DAO {
           'description' => ts('Navigation Title'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_navigation.label',
           'table_name' => 'civicrm_navigation',
           'entity' => 'Navigation',
@@ -244,6 +262,12 @@ class CRM_Core_DAO_Navigation extends CRM_Core_DAO {
           'description' => ts('Internal Name'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_navigation.name',
           'table_name' => 'civicrm_navigation',
           'entity' => 'Navigation',
@@ -258,6 +282,12 @@ class CRM_Core_DAO_Navigation extends CRM_Core_DAO {
           'description' => ts('url in case of custom navigation link'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_navigation.url',
           'table_name' => 'civicrm_navigation',
           'entity' => 'Navigation',
@@ -273,6 +303,12 @@ class CRM_Core_DAO_Navigation extends CRM_Core_DAO {
           'required' => FALSE,
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_navigation.icon',
           'default' => NULL,
           'table_name' => 'civicrm_navigation',
@@ -288,6 +324,12 @@ class CRM_Core_DAO_Navigation extends CRM_Core_DAO {
           'description' => ts('Permission(s) needed to access menu item'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_navigation.permission',
           'table_name' => 'civicrm_navigation',
           'entity' => 'Navigation',
@@ -303,6 +345,12 @@ class CRM_Core_DAO_Navigation extends CRM_Core_DAO {
           'description' => ts('Operator to use if item has more than one permission'),
           'maxlength' => 3,
           'size' => CRM_Utils_Type::FOUR,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_navigation.permission_operator',
           'table_name' => 'civicrm_navigation',
           'entity' => 'Navigation',
@@ -318,6 +366,12 @@ class CRM_Core_DAO_Navigation extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('parent ID'),
           'description' => ts('Parent navigation item, used for grouping'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_navigation.parent_id',
           'table_name' => 'civicrm_navigation',
           'entity' => 'Navigation',
@@ -341,6 +395,12 @@ class CRM_Core_DAO_Navigation extends CRM_Core_DAO {
           'title' => ts('Is Active'),
           'description' => ts('Is this navigation item active?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_navigation.is_active',
           'default' => '1',
           'table_name' => 'civicrm_navigation',
@@ -358,6 +418,12 @@ class CRM_Core_DAO_Navigation extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Separator'),
           'description' => ts('Place a separator either before or after this menu item.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_navigation.has_separator',
           'default' => '0',
           'table_name' => 'civicrm_navigation',
@@ -375,6 +441,12 @@ class CRM_Core_DAO_Navigation extends CRM_Core_DAO {
           'title' => ts('Order'),
           'description' => ts('Ordering of the navigation items in various blocks.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_navigation.weight',
           'default' => '0',
           'table_name' => 'civicrm_navigation',
diff --git a/civicrm/CRM/Core/DAO/Note.php b/civicrm/CRM/Core/DAO/Note.php
index c1acb75861fff293c5009843ebbcdb7fb9c7d0bd..c126f61b2e096a57381b3ea9221833487a214b79 100644
--- a/civicrm/CRM/Core/DAO/Note.php
+++ b/civicrm/CRM/Core/DAO/Note.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/Note.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:0b0a6889926ac01eebf63c0588bb3561)
+ * (GenCodeChecksum:5b5ae6f3bd3ed46257a0b0f3e9b9075b)
  */
 
 /**
@@ -175,6 +175,12 @@ class CRM_Core_DAO_Note extends CRM_Core_DAO {
           'title' => ts('Note ID'),
           'description' => ts('Note ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_note.id',
           'table_name' => 'civicrm_note',
           'entity' => 'Note',
@@ -194,6 +200,12 @@ class CRM_Core_DAO_Note extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_note.entity_table',
           'table_name' => 'civicrm_note',
           'entity' => 'Note',
@@ -211,6 +223,12 @@ class CRM_Core_DAO_Note extends CRM_Core_DAO {
           'title' => ts('Note Entity ID'),
           'description' => ts('Foreign key to the referenced item.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_note.entity_id',
           'table_name' => 'civicrm_note',
           'entity' => 'Note',
@@ -225,6 +243,12 @@ class CRM_Core_DAO_Note extends CRM_Core_DAO {
           'description' => ts('Note and/or Comment.'),
           'rows' => 4,
           'cols' => 60,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_note.note',
           'headerPattern' => '/Note|Comment/i',
@@ -244,6 +268,12 @@ class CRM_Core_DAO_Note extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Created By Contact ID'),
           'description' => ts('FK to Contact ID creator'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_note.contact_id',
           'table_name' => 'civicrm_note',
           'entity' => 'Note',
@@ -260,6 +290,12 @@ class CRM_Core_DAO_Note extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TIMESTAMP,
           'title' => ts('Note Date'),
           'description' => ts('Date attached to the note'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_note.note_date',
           'default' => 'CURRENT_TIMESTAMP',
           'table_name' => 'civicrm_note',
@@ -278,6 +314,12 @@ class CRM_Core_DAO_Note extends CRM_Core_DAO {
           'title' => ts('Created Date'),
           'description' => ts('When the note was created.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_note.created_date',
           'default' => 'CURRENT_TIMESTAMP',
           'table_name' => 'civicrm_note',
@@ -291,6 +333,12 @@ class CRM_Core_DAO_Note extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TIMESTAMP,
           'title' => ts('Note Modified By'),
           'description' => ts('When was this note last modified/edited'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_note.modified_date',
           'default' => 'CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP',
           'table_name' => 'civicrm_note',
@@ -307,6 +355,12 @@ class CRM_Core_DAO_Note extends CRM_Core_DAO {
           'description' => ts('subject of note description'),
           'maxlength' => 255,
           'size' => 60,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_note.subject',
           'table_name' => 'civicrm_note',
           'entity' => 'Note',
@@ -324,6 +378,12 @@ class CRM_Core_DAO_Note extends CRM_Core_DAO {
           'description' => ts('Foreign Key to Note Privacy Level (which is an option value pair and hence an implicit FK)'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_note.privacy',
           'table_name' => 'civicrm_note',
           'entity' => 'Note',
diff --git a/civicrm/CRM/Core/DAO/OpenID.php b/civicrm/CRM/Core/DAO/OpenID.php
index c4607333b954433a57d9297f935f0c83580371dc..be0e6f009aba7251397799dcab3d359a392055fe 100644
--- a/civicrm/CRM/Core/DAO/OpenID.php
+++ b/civicrm/CRM/Core/DAO/OpenID.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/OpenID.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:f36b03b8dd6517692620f0c0b71f1ff1)
+ * (GenCodeChecksum:046f25d8355b0276f8e43f34915bf5e4)
  */
 
 /**
@@ -131,6 +131,12 @@ class CRM_Core_DAO_OpenID extends CRM_Core_DAO {
           'title' => ts('Open ID identifier'),
           'description' => ts('Unique OpenID ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_openid.id',
           'table_name' => 'civicrm_openid',
           'entity' => 'OpenID',
@@ -147,6 +153,12 @@ class CRM_Core_DAO_OpenID extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Contact ID'),
           'description' => ts('FK to Contact ID'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_openid.contact_id',
           'table_name' => 'civicrm_openid',
           'entity' => 'OpenID',
@@ -163,6 +175,12 @@ class CRM_Core_DAO_OpenID extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('OpenID Location Type'),
           'description' => ts('Which Location does this email belong to.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_openid.location_type_id',
           'table_name' => 'civicrm_openid',
           'entity' => 'OpenID',
@@ -182,6 +200,12 @@ class CRM_Core_DAO_OpenID extends CRM_Core_DAO {
           'description' => ts('the OpenID (or OpenID-style http://username.domain/) unique identifier for this contact mainly used for logging in to CiviCRM'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_openid.openid',
           'headerPattern' => '/^Open.?ID|u(niq\w*)?.?ID/i',
@@ -200,6 +224,12 @@ class CRM_Core_DAO_OpenID extends CRM_Core_DAO {
           'title' => ts('Allowed to login?'),
           'description' => ts('Whether or not this user is allowed to login'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_openid.allowed_to_login',
           'default' => '0',
           'table_name' => 'civicrm_openid',
@@ -211,9 +241,15 @@ class CRM_Core_DAO_OpenID extends CRM_Core_DAO {
         'is_primary' => [
           'name' => 'is_primary',
           'type' => CRM_Utils_Type::T_BOOLEAN,
-          'title' => ts('Primary ID'),
+          'title' => ts('Is Primary'),
           'description' => ts('Is this the primary email for this contact and location.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_openid.is_primary',
           'default' => '0',
           'table_name' => 'civicrm_openid',
diff --git a/civicrm/CRM/Core/DAO/OptionGroup.php b/civicrm/CRM/Core/DAO/OptionGroup.php
index 8d1e0b423ad3dc861c84a0e84f18ffd3158a8bc1..c7ff1dbcfb364032c96914548cd2c53c667b0a3c 100644
--- a/civicrm/CRM/Core/DAO/OptionGroup.php
+++ b/civicrm/CRM/Core/DAO/OptionGroup.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/OptionGroup.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:cccb007e18d25b34d3af8fd583ade04b)
+ * (GenCodeChecksum:264ddf7a9c772b66c6e472d8642fc9bb)
  */
 
 /**
@@ -160,6 +160,12 @@ class CRM_Core_DAO_OptionGroup extends CRM_Core_DAO {
           'title' => ts('Option Group ID'),
           'description' => ts('Option Group ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_option_group.id',
           'table_name' => 'civicrm_option_group',
           'entity' => 'OptionGroup',
@@ -179,6 +185,12 @@ class CRM_Core_DAO_OptionGroup extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_option_group.name',
           'table_name' => 'civicrm_option_group',
           'entity' => 'OptionGroup',
@@ -196,6 +208,12 @@ class CRM_Core_DAO_OptionGroup extends CRM_Core_DAO {
           'description' => ts('Option Group title.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_option_group.title',
           'table_name' => 'civicrm_option_group',
           'entity' => 'OptionGroup',
@@ -211,6 +229,12 @@ class CRM_Core_DAO_OptionGroup extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Option Group Description'),
           'description' => ts('Option group description.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_option_group.description',
           'table_name' => 'civicrm_option_group',
           'entity' => 'OptionGroup',
@@ -228,6 +252,12 @@ class CRM_Core_DAO_OptionGroup extends CRM_Core_DAO {
           'description' => ts('Type of data stored by this option group.'),
           'maxlength' => 128,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_option_group.data_type',
           'table_name' => 'civicrm_option_group',
           'entity' => 'OptionGroup',
@@ -244,6 +274,12 @@ class CRM_Core_DAO_OptionGroup extends CRM_Core_DAO {
           'title' => ts('Option Group Is Reserved'),
           'description' => ts('Is this a predefined system option group (i.e. it can not be deleted)?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_option_group.is_reserved',
           'default' => '1',
           'table_name' => 'civicrm_option_group',
@@ -262,6 +298,12 @@ class CRM_Core_DAO_OptionGroup extends CRM_Core_DAO {
           'title' => ts('Enabled'),
           'description' => ts('Is this option group active?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_option_group.is_active',
           'default' => '1',
           'table_name' => 'civicrm_option_group',
@@ -280,6 +322,12 @@ class CRM_Core_DAO_OptionGroup extends CRM_Core_DAO {
           'title' => ts('Option Group Is Locked'),
           'description' => ts('A lock to remove the ability to add new options via the UI.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_option_group.is_locked',
           'default' => '0',
           'table_name' => 'civicrm_option_group',
@@ -299,6 +347,12 @@ class CRM_Core_DAO_OptionGroup extends CRM_Core_DAO {
           'description' => ts('Which optional columns from the option_value table are in use by this group.'),
           'maxlength' => 128,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_option_group.option_value_fields',
           'default' => 'name,label,description',
           'table_name' => 'civicrm_option_group',
diff --git a/civicrm/CRM/Core/DAO/OptionValue.php b/civicrm/CRM/Core/DAO/OptionValue.php
index ed6294c9cbd2728958581b80377a700466ceabda..204287fbfe437fabd33818442be1b707a5498738 100644
--- a/civicrm/CRM/Core/DAO/OptionValue.php
+++ b/civicrm/CRM/Core/DAO/OptionValue.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/OptionValue.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:fc83389f44b98da86dba941de3611fad)
+ * (GenCodeChecksum:7c23d52de169c1ef27cc3a24c3de132e)
  */
 
 /**
@@ -256,6 +256,12 @@ class CRM_Core_DAO_OptionValue extends CRM_Core_DAO {
           'title' => ts('Option Value ID'),
           'description' => ts('Option ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_option_value.id',
           'table_name' => 'civicrm_option_value',
           'entity' => 'OptionValue',
@@ -270,6 +276,12 @@ class CRM_Core_DAO_OptionValue extends CRM_Core_DAO {
           'title' => ts('Option Group ID'),
           'description' => ts('Group which this option belongs to.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_option_value.option_group_id',
           'table_name' => 'civicrm_option_value',
           'entity' => 'OptionValue',
@@ -296,6 +308,12 @@ class CRM_Core_DAO_OptionValue extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 512,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_option_value.label',
           'table_name' => 'civicrm_option_value',
           'entity' => 'OptionValue',
@@ -311,6 +329,12 @@ class CRM_Core_DAO_OptionValue extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 512,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_option_value.value',
           'table_name' => 'civicrm_option_value',
           'entity' => 'OptionValue',
@@ -325,6 +349,12 @@ class CRM_Core_DAO_OptionValue extends CRM_Core_DAO {
           'description' => ts('Stores a fixed (non-translated) name for this option value. Lookup functions should use the name as the key for the option value row.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_option_value.name',
           'export' => TRUE,
@@ -341,6 +371,12 @@ class CRM_Core_DAO_OptionValue extends CRM_Core_DAO {
           'description' => ts('Use to sort and/or set display properties for sub-set(s) of options within an option group. EXAMPLE: Use for college_interest field, to differentiate partners from non-partners.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_option_value.grouping',
           'table_name' => 'civicrm_option_value',
           'entity' => 'OptionValue',
@@ -353,6 +389,12 @@ class CRM_Core_DAO_OptionValue extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Filter'),
           'description' => ts('Bitwise logic can be used to create subsets of options within an option_group for different uses.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_option_value.filter',
           'default' => '0',
           'table_name' => 'civicrm_option_value',
@@ -369,6 +411,12 @@ class CRM_Core_DAO_OptionValue extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_BOOLEAN,
           'title' => ts('Option is Default?'),
           'description' => ts('Is this the default option for the group?'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_option_value.is_default',
           'default' => '0',
           'table_name' => 'civicrm_option_value',
@@ -387,6 +435,12 @@ class CRM_Core_DAO_OptionValue extends CRM_Core_DAO {
           'title' => ts('Order'),
           'description' => ts('Controls display sort order.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_option_value.weight',
           'table_name' => 'civicrm_option_value',
           'entity' => 'OptionValue',
@@ -401,6 +455,12 @@ class CRM_Core_DAO_OptionValue extends CRM_Core_DAO {
           'description' => ts('Optional description.'),
           'rows' => 8,
           'cols' => 60,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_option_value.description',
           'table_name' => 'civicrm_option_value',
           'entity' => 'OptionValue',
@@ -416,6 +476,12 @@ class CRM_Core_DAO_OptionValue extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_BOOLEAN,
           'title' => ts('Option is Header?'),
           'description' => ts('Is this row simply a display header? Expected usage is to render these as OPTGROUP tags within a SELECT field list of options?'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_option_value.is_optgroup',
           'default' => '0',
           'table_name' => 'civicrm_option_value',
@@ -429,6 +495,12 @@ class CRM_Core_DAO_OptionValue extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_BOOLEAN,
           'title' => ts('Option Is Reserved?'),
           'description' => ts('Is this a predefined system object?'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_option_value.is_reserved',
           'default' => '0',
           'table_name' => 'civicrm_option_value',
@@ -442,6 +514,12 @@ class CRM_Core_DAO_OptionValue extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_BOOLEAN,
           'title' => ts('Option Is Active'),
           'description' => ts('Is this option active?'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_option_value.is_active',
           'default' => '1',
           'table_name' => 'civicrm_option_value',
@@ -459,6 +537,12 @@ class CRM_Core_DAO_OptionValue extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Component ID'),
           'description' => ts('Component that this option value belongs/caters to.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_option_value.component_id',
           'table_name' => 'civicrm_option_value',
           'entity' => 'OptionValue',
@@ -481,6 +565,12 @@ class CRM_Core_DAO_OptionValue extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Domain ID'),
           'description' => ts('Which Domain is this option value for'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_option_value.domain_id',
           'table_name' => 'civicrm_option_value',
           'entity' => 'OptionValue',
@@ -501,6 +591,12 @@ class CRM_Core_DAO_OptionValue extends CRM_Core_DAO {
           'name' => 'visibility_id',
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Option Visibility'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_option_value.visibility_id',
           'default' => NULL,
           'table_name' => 'civicrm_option_value',
@@ -520,6 +616,12 @@ class CRM_Core_DAO_OptionValue extends CRM_Core_DAO {
           'description' => ts('crm-i icon class'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_option_value.icon',
           'default' => NULL,
           'table_name' => 'civicrm_option_value',
@@ -535,6 +637,12 @@ class CRM_Core_DAO_OptionValue extends CRM_Core_DAO {
           'description' => ts('Hex color value e.g. #ffffff'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_option_value.color',
           'default' => NULL,
           'table_name' => 'civicrm_option_value',
diff --git a/civicrm/CRM/Core/DAO/Phone.php b/civicrm/CRM/Core/DAO/Phone.php
index 743801083b32d12b884add91d04f2ab2a467bc29..6eaa27fb75350c62f0401c68b3bd27c21b750745 100644
--- a/civicrm/CRM/Core/DAO/Phone.php
+++ b/civicrm/CRM/Core/DAO/Phone.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/Phone.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:ca5a231db08deaad7f4098886a7852c8)
+ * (GenCodeChecksum:4d8d0c7b49e69a754ef6ae5865537c7f)
  */
 
 /**
@@ -182,6 +182,12 @@ class CRM_Core_DAO_Phone extends CRM_Core_DAO {
           'title' => ts('Phone ID'),
           'description' => ts('Unique Phone ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_phone.id',
           'table_name' => 'civicrm_phone',
           'entity' => 'Phone',
@@ -198,6 +204,12 @@ class CRM_Core_DAO_Phone extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Contact ID'),
           'description' => ts('FK to Contact ID'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_phone.contact_id',
           'table_name' => 'civicrm_phone',
           'entity' => 'Phone',
@@ -214,6 +226,12 @@ class CRM_Core_DAO_Phone extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Location Type ID'),
           'description' => ts('Which Location does this phone belong to.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_phone.location_type_id',
           'table_name' => 'civicrm_phone',
           'entity' => 'Phone',
@@ -233,9 +251,15 @@ class CRM_Core_DAO_Phone extends CRM_Core_DAO {
         'is_primary' => [
           'name' => 'is_primary',
           'type' => CRM_Utils_Type::T_BOOLEAN,
-          'title' => ts('Primary phone'),
+          'title' => ts('Is Primary'),
           'description' => ts('Is this the primary phone for this contact and location.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_phone.is_primary',
           'default' => '0',
           'table_name' => 'civicrm_phone',
@@ -253,6 +277,12 @@ class CRM_Core_DAO_Phone extends CRM_Core_DAO {
           'title' => ts('Is Billing Phone'),
           'description' => ts('Is this the billing?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_phone.is_billing',
           'default' => '0',
           'table_name' => 'civicrm_phone',
@@ -266,6 +296,12 @@ class CRM_Core_DAO_Phone extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Mobile Provider'),
           'description' => ts('Which Mobile Provider does this phone belong to.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_phone.mobile_provider_id',
           'table_name' => 'civicrm_phone',
           'entity' => 'Phone',
@@ -281,6 +317,12 @@ class CRM_Core_DAO_Phone extends CRM_Core_DAO {
           'description' => ts('Complete phone number.'),
           'maxlength' => 32,
           'size' => CRM_Utils_Type::MEDIUM,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_phone.phone',
           'headerPattern' => '/phone/i',
@@ -303,6 +345,12 @@ class CRM_Core_DAO_Phone extends CRM_Core_DAO {
           'description' => ts('Optional extension for a phone number.'),
           'maxlength' => 16,
           'size' => 4,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_phone.phone_ext',
           'headerPattern' => '/extension/i',
@@ -324,6 +372,12 @@ class CRM_Core_DAO_Phone extends CRM_Core_DAO {
           'description' => ts('Phone number stripped of all whitespace, letters, and punctuation.'),
           'maxlength' => 32,
           'size' => CRM_Utils_Type::MEDIUM,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_phone.phone_numeric',
           'table_name' => 'civicrm_phone',
           'entity' => 'Phone',
@@ -340,6 +394,12 @@ class CRM_Core_DAO_Phone extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Phone Type ID'),
           'description' => ts('Which type of phone does this number belongs.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => TRUE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_phone.phone_type_id',
           'export' => TRUE,
           'table_name' => 'civicrm_phone',
diff --git a/civicrm/CRM/Core/DAO/PreferencesDate.php b/civicrm/CRM/Core/DAO/PreferencesDate.php
index abb65dd28be84472b8df43ea7f43301d9452fc41..e0d6bdb528e655472700806029b46db26ab1a97b 100644
--- a/civicrm/CRM/Core/DAO/PreferencesDate.php
+++ b/civicrm/CRM/Core/DAO/PreferencesDate.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/PreferencesDate.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:282c9c954f6e68eb42eeb8a40eaeb8f1)
+ * (GenCodeChecksum:3f9c7b68e9dc1f9a677731328ffa5947)
  */
 
 /**
@@ -122,6 +122,12 @@ class CRM_Core_DAO_PreferencesDate extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Date Preference ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_preferences_date.id',
           'table_name' => 'civicrm_preferences_date',
           'entity' => 'PreferencesDate',
@@ -141,6 +147,12 @@ class CRM_Core_DAO_PreferencesDate extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_preferences_date.name',
           'table_name' => 'civicrm_preferences_date',
           'entity' => 'PreferencesDate',
@@ -155,6 +167,12 @@ class CRM_Core_DAO_PreferencesDate extends CRM_Core_DAO {
           'description' => ts('Description of this date type.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_preferences_date.description',
           'table_name' => 'civicrm_preferences_date',
           'entity' => 'PreferencesDate',
@@ -171,6 +189,12 @@ class CRM_Core_DAO_PreferencesDate extends CRM_Core_DAO {
           'title' => ts('Start'),
           'description' => ts('The start offset relative to current year'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_preferences_date.start',
           'table_name' => 'civicrm_preferences_date',
           'entity' => 'PreferencesDate',
@@ -187,6 +211,12 @@ class CRM_Core_DAO_PreferencesDate extends CRM_Core_DAO {
           'title' => ts('End Offset'),
           'description' => ts('The end offset relative to current year, can be negative'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_preferences_date.end',
           'table_name' => 'civicrm_preferences_date',
           'entity' => 'PreferencesDate',
@@ -201,6 +231,12 @@ class CRM_Core_DAO_PreferencesDate extends CRM_Core_DAO {
           'description' => ts('The date type'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_preferences_date.date_format',
           'table_name' => 'civicrm_preferences_date',
           'entity' => 'PreferencesDate',
@@ -218,6 +254,12 @@ class CRM_Core_DAO_PreferencesDate extends CRM_Core_DAO {
           'description' => ts('time format'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_preferences_date.time_format',
           'table_name' => 'civicrm_preferences_date',
           'entity' => 'PreferencesDate',
diff --git a/civicrm/CRM/Core/DAO/PrevNextCache.php b/civicrm/CRM/Core/DAO/PrevNextCache.php
index 3cae44c970954ffd4c0789f603680669553d1d38..3ee6cfafb1ca89d8bb9effbd7ec9a720caf1d3ce 100644
--- a/civicrm/CRM/Core/DAO/PrevNextCache.php
+++ b/civicrm/CRM/Core/DAO/PrevNextCache.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/PrevNextCache.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:379e37f9e5bef48eb1d96a363f260e76)
+ * (GenCodeChecksum:2f3c2dc512edf7aabe12fdaeba209662)
  */
 
 /**
@@ -120,6 +120,12 @@ class CRM_Core_DAO_PrevNextCache extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Prev Next Cache ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_prevnext_cache.id',
           'table_name' => 'civicrm_prevnext_cache',
           'entity' => 'PrevNextCache',
@@ -138,6 +144,12 @@ class CRM_Core_DAO_PrevNextCache extends CRM_Core_DAO {
           'description' => ts('physical tablename for entity being joined to discount, e.g. civicrm_event'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_prevnext_cache.entity_table',
           'table_name' => 'civicrm_prevnext_cache',
           'entity' => 'PrevNextCache',
@@ -151,6 +163,12 @@ class CRM_Core_DAO_PrevNextCache extends CRM_Core_DAO {
           'title' => ts('Prev Next Entity ID 1'),
           'description' => ts('FK to entity table specified in entity_table column.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_prevnext_cache.entity_id1',
           'table_name' => 'civicrm_prevnext_cache',
           'entity' => 'PrevNextCache',
@@ -164,6 +182,12 @@ class CRM_Core_DAO_PrevNextCache extends CRM_Core_DAO {
           'title' => ts('Prev Next Entity ID 2'),
           'description' => ts('FK to entity table specified in entity_table column.'),
           'required' => FALSE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_prevnext_cache.entity_id2',
           'table_name' => 'civicrm_prevnext_cache',
           'entity' => 'PrevNextCache',
@@ -178,6 +202,12 @@ class CRM_Core_DAO_PrevNextCache extends CRM_Core_DAO {
           'description' => ts('Unique path name for cache element of the searched item'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_prevnext_cache.cachekey',
           'table_name' => 'civicrm_prevnext_cache',
           'entity' => 'PrevNextCache',
@@ -190,6 +220,12 @@ class CRM_Core_DAO_PrevNextCache extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_LONGTEXT,
           'title' => ts('Prev Next Data'),
           'description' => ts('cached snapshot of the serialized data'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_prevnext_cache.data',
           'table_name' => 'civicrm_prevnext_cache',
           'entity' => 'PrevNextCache',
@@ -203,6 +239,12 @@ class CRM_Core_DAO_PrevNextCache extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_BOOLEAN,
           'title' => ts('Is Selected'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_prevnext_cache.is_selected',
           'default' => '0',
           'table_name' => 'civicrm_prevnext_cache',
diff --git a/civicrm/CRM/Core/DAO/PrintLabel.php b/civicrm/CRM/Core/DAO/PrintLabel.php
index 37f65c5a0ba38b82934226c534ab909bed9f50b3..2b7a8f5c96054232c2f2a40d8e8db71e35b17fea 100644
--- a/civicrm/CRM/Core/DAO/PrintLabel.php
+++ b/civicrm/CRM/Core/DAO/PrintLabel.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/PrintLabel.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:e26229ab6799aa43ab16eb3cacc532b6)
+ * (GenCodeChecksum:53efa9e6a15294d0acdc98f16923d6c7)
  */
 
 /**
@@ -180,6 +180,12 @@ class CRM_Core_DAO_PrintLabel extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Print Label ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_print_label.id',
           'table_name' => 'civicrm_print_label',
           'entity' => 'PrintLabel',
@@ -198,6 +204,12 @@ class CRM_Core_DAO_PrintLabel extends CRM_Core_DAO {
           'description' => ts('User title for this label layout'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_print_label.title',
           'table_name' => 'civicrm_print_label',
           'entity' => 'PrintLabel',
@@ -212,6 +224,12 @@ class CRM_Core_DAO_PrintLabel extends CRM_Core_DAO {
           'description' => ts('variable name/programmatic handle for this field.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_print_label.name',
           'table_name' => 'civicrm_print_label',
           'entity' => 'PrintLabel',
@@ -224,6 +242,12 @@ class CRM_Core_DAO_PrintLabel extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Description'),
           'description' => ts('Description of this label layout'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_print_label.description',
           'table_name' => 'civicrm_print_label',
           'entity' => 'PrintLabel',
@@ -241,6 +265,12 @@ class CRM_Core_DAO_PrintLabel extends CRM_Core_DAO {
           'description' => ts('This refers to name column of civicrm_option_value row in name_badge option group'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_print_label.label_format_name',
           'table_name' => 'civicrm_print_label',
           'entity' => 'PrintLabel',
@@ -260,6 +290,12 @@ class CRM_Core_DAO_PrintLabel extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Label Type'),
           'description' => ts('Implicit FK to civicrm_option_value row in NEW label_type option group'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_print_label.label_type_id',
           'table_name' => 'civicrm_print_label',
           'entity' => 'PrintLabel',
@@ -279,6 +315,12 @@ class CRM_Core_DAO_PrintLabel extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_LONGTEXT,
           'title' => ts('Data'),
           'description' => ts('contains json encode configurations options'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_print_label.data',
           'table_name' => 'civicrm_print_label',
           'entity' => 'PrintLabel',
@@ -296,6 +338,12 @@ class CRM_Core_DAO_PrintLabel extends CRM_Core_DAO {
           'title' => ts('Label is Default?'),
           'description' => ts('Is this default?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_print_label.is_default',
           'default' => '1',
           'table_name' => 'civicrm_print_label',
@@ -314,6 +362,12 @@ class CRM_Core_DAO_PrintLabel extends CRM_Core_DAO {
           'title' => ts('Label Is Active?'),
           'description' => ts('Is this option active?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_print_label.is_active',
           'default' => '1',
           'table_name' => 'civicrm_print_label',
@@ -332,6 +386,12 @@ class CRM_Core_DAO_PrintLabel extends CRM_Core_DAO {
           'title' => ts('Is Label Reserved?'),
           'description' => ts('Is this reserved label?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_print_label.is_reserved',
           'default' => '1',
           'table_name' => 'civicrm_print_label',
@@ -345,6 +405,12 @@ class CRM_Core_DAO_PrintLabel extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Created By Contact ID'),
           'description' => ts('FK to civicrm_contact, who created this label layout'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_print_label.created_id',
           'table_name' => 'civicrm_print_label',
           'entity' => 'PrintLabel',
diff --git a/civicrm/CRM/Core/DAO/RecurringEntity.php b/civicrm/CRM/Core/DAO/RecurringEntity.php
index b1ec7347bb1300e6d30b6f06f9fddb6253256142..4c18f661611f27f58c408f987df3b8f38b7f07bf 100644
--- a/civicrm/CRM/Core/DAO/RecurringEntity.php
+++ b/civicrm/CRM/Core/DAO/RecurringEntity.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/RecurringEntity.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:21c9191bbc343187f1061299d0d3c355)
+ * (GenCodeChecksum:5788a8f2b88586d6c98107e54253abd8)
  */
 
 /**
@@ -104,6 +104,12 @@ class CRM_Core_DAO_RecurringEntity extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_recurring_entity.id',
           'table_name' => 'civicrm_recurring_entity',
           'entity' => 'RecurringEntity',
@@ -121,6 +127,12 @@ class CRM_Core_DAO_RecurringEntity extends CRM_Core_DAO {
           'title' => ts('Parent ID'),
           'description' => ts('Recurring Entity Parent ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_recurring_entity.parent_id',
           'table_name' => 'civicrm_recurring_entity',
           'entity' => 'RecurringEntity',
@@ -133,6 +145,12 @@ class CRM_Core_DAO_RecurringEntity extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Entity ID'),
           'description' => ts('Recurring Entity Child ID'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_recurring_entity.entity_id',
           'table_name' => 'civicrm_recurring_entity',
           'entity' => 'RecurringEntity',
@@ -148,6 +166,12 @@ class CRM_Core_DAO_RecurringEntity extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_recurring_entity.entity_table',
           'table_name' => 'civicrm_recurring_entity',
           'entity' => 'RecurringEntity',
@@ -161,6 +185,12 @@ class CRM_Core_DAO_RecurringEntity extends CRM_Core_DAO {
           'title' => ts('Cascade Type'),
           'description' => ts('1-this entity, 2-this and the following entities, 3-all the entities'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_recurring_entity.mode',
           'default' => '1',
           'table_name' => 'civicrm_recurring_entity',
diff --git a/civicrm/CRM/Core/DAO/Setting.php b/civicrm/CRM/Core/DAO/Setting.php
index aab5bf8c561f588339dfbe793fda7dcc1c627e30..0225a8ccc3ef1172de8ae0aa09e445b6710a9053 100644
--- a/civicrm/CRM/Core/DAO/Setting.php
+++ b/civicrm/CRM/Core/DAO/Setting.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/Setting.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:5506eb417e5f27229a4185eccffab1cd)
+ * (GenCodeChecksum:a7dacfe60f4c9deebde197ae1595db04)
  */
 
 /**
@@ -158,6 +158,12 @@ class CRM_Core_DAO_Setting extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Setting ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_setting.id',
           'table_name' => 'civicrm_setting',
           'entity' => 'Setting',
@@ -176,6 +182,12 @@ class CRM_Core_DAO_Setting extends CRM_Core_DAO {
           'description' => ts('Unique name for setting'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_setting.name',
           'table_name' => 'civicrm_setting',
           'entity' => 'Setting',
@@ -188,6 +200,12 @@ class CRM_Core_DAO_Setting extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Value'),
           'description' => ts('data associated with this group / name combo'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_setting.value',
           'table_name' => 'civicrm_setting',
           'entity' => 'Setting',
@@ -205,6 +223,12 @@ class CRM_Core_DAO_Setting extends CRM_Core_DAO {
           'title' => ts('Domain ID'),
           'description' => ts('Which Domain is this menu item for'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_setting.domain_id',
           'table_name' => 'civicrm_setting',
           'entity' => 'Setting',
@@ -226,6 +250,12 @@ class CRM_Core_DAO_Setting extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Contact ID'),
           'description' => ts('FK to Contact ID if the setting is localized to a contact'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_setting.contact_id',
           'table_name' => 'civicrm_setting',
           'entity' => 'Setting',
@@ -243,6 +273,12 @@ class CRM_Core_DAO_Setting extends CRM_Core_DAO {
           'title' => ts('Is Domain Setting?'),
           'description' => ts('Is this setting a contact specific or site wide setting?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_setting.is_domain',
           'default' => '0',
           'table_name' => 'civicrm_setting',
@@ -256,6 +292,12 @@ class CRM_Core_DAO_Setting extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Component ID'),
           'description' => ts('Component that this menu item belongs to'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_setting.component_id',
           'table_name' => 'civicrm_setting',
           'entity' => 'Setting',
@@ -278,6 +320,12 @@ class CRM_Core_DAO_Setting extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME,
           'title' => ts('Setting Created Date'),
           'description' => ts('When was the setting created'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_setting.created_date',
           'table_name' => 'civicrm_setting',
           'entity' => 'Setting',
@@ -290,6 +338,12 @@ class CRM_Core_DAO_Setting extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Created By Contact ID'),
           'description' => ts('FK to civicrm_contact, who created this setting'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_setting.created_id',
           'table_name' => 'civicrm_setting',
           'entity' => 'Setting',
diff --git a/civicrm/CRM/Core/DAO/StateProvince.php b/civicrm/CRM/Core/DAO/StateProvince.php
index 8bbac38170b70c4ddd77cb7f6fc01aaf517baea1..7d0665ea5f058d6367cecc070e4847fb4f744d2e 100644
--- a/civicrm/CRM/Core/DAO/StateProvince.php
+++ b/civicrm/CRM/Core/DAO/StateProvince.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/StateProvince.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:904b8f2a8b321709d6ac3a563c78cd37)
+ * (GenCodeChecksum:2dea7ed65c9904a80de16e8d48f35a59)
  */
 
 /**
@@ -129,6 +129,12 @@ class CRM_Core_DAO_StateProvince extends CRM_Core_DAO {
           'title' => ts('State ID'),
           'description' => ts('State/Province ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_state_province.id',
           'table_name' => 'civicrm_state_province',
           'entity' => 'StateProvince',
@@ -147,6 +153,12 @@ class CRM_Core_DAO_StateProvince extends CRM_Core_DAO {
           'description' => ts('Name of State/Province'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_state_province.name',
           'headerPattern' => '/state|prov(ince)?/i',
@@ -165,6 +177,12 @@ class CRM_Core_DAO_StateProvince extends CRM_Core_DAO {
           'description' => ts('2-4 Character Abbreviation of State/Province'),
           'maxlength' => 4,
           'size' => CRM_Utils_Type::FOUR,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_state_province.abbreviation',
           'table_name' => 'civicrm_state_province',
           'entity' => 'StateProvince',
@@ -178,6 +196,12 @@ class CRM_Core_DAO_StateProvince extends CRM_Core_DAO {
           'title' => ts('Country ID'),
           'description' => ts('ID of Country that State/Province belong'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_state_province.country_id',
           'table_name' => 'civicrm_state_province',
           'entity' => 'StateProvince',
@@ -195,6 +219,12 @@ class CRM_Core_DAO_StateProvince extends CRM_Core_DAO {
           'title' => ts('StateProvince Is Active'),
           'description' => ts('Is this StateProvince active?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_state_province.is_active',
           'default' => '1',
           'table_name' => 'civicrm_state_province',
diff --git a/civicrm/CRM/Core/DAO/StatusPreference.php b/civicrm/CRM/Core/DAO/StatusPreference.php
index 21e176d9214ca55c3aed3b3bd096646fe239732f..a1a79396f105700610a2445ebf6d79f63ee3d25a 100644
--- a/civicrm/CRM/Core/DAO/StatusPreference.php
+++ b/civicrm/CRM/Core/DAO/StatusPreference.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/StatusPreference.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:3f3779d5b3b8806a28af779b48d6d03e)
+ * (GenCodeChecksum:279691bc3c75b9e09c2a7b18847348d8)
  */
 
 /**
@@ -149,6 +149,12 @@ class CRM_Core_DAO_StatusPreference extends CRM_Core_DAO {
           'title' => ts('Status Preference ID'),
           'description' => ts('Unique Status Preference ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_status_pref.id',
           'table_name' => 'civicrm_status_pref',
           'entity' => 'StatusPreference',
@@ -166,6 +172,12 @@ class CRM_Core_DAO_StatusPreference extends CRM_Core_DAO {
           'title' => ts('Domain ID'),
           'description' => ts('Which Domain is this Status Preference for'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_status_pref.domain_id',
           'table_name' => 'civicrm_status_pref',
           'entity' => 'StatusPreference',
@@ -190,6 +202,12 @@ class CRM_Core_DAO_StatusPreference extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_status_pref.name',
           'export' => TRUE,
@@ -204,6 +222,12 @@ class CRM_Core_DAO_StatusPreference extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE,
           'title' => ts('Snooze Status Notifications Until'),
           'description' => ts('expires ignore_severity.  NULL never hushes.'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_status_pref.hush_until',
           'export' => TRUE,
@@ -219,6 +243,12 @@ class CRM_Core_DAO_StatusPreference extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Ignore Severity'),
           'description' => ts('Hush messages up to and including this severity.'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_status_pref.ignore_severity',
           'export' => TRUE,
@@ -239,6 +269,12 @@ class CRM_Core_DAO_StatusPreference extends CRM_Core_DAO {
           'description' => ts('These settings are per-check, and can\'t be compared across checks.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_status_pref.prefs',
           'table_name' => 'civicrm_status_pref',
           'entity' => 'StatusPreference',
@@ -253,6 +289,12 @@ class CRM_Core_DAO_StatusPreference extends CRM_Core_DAO {
           'description' => ts('These values are per-check, and can\'t be compared across checks.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_status_pref.check_info',
           'table_name' => 'civicrm_status_pref',
           'entity' => 'StatusPreference',
@@ -266,6 +308,12 @@ class CRM_Core_DAO_StatusPreference extends CRM_Core_DAO {
           'title' => ts('Check Is Active'),
           'description' => ts('Is this status check active?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_status_pref.is_active',
           'default' => '1',
           'table_name' => 'civicrm_status_pref',
diff --git a/civicrm/CRM/Core/DAO/SystemLog.php b/civicrm/CRM/Core/DAO/SystemLog.php
index f4b0f70cbfe38be948969fcc3a5094ac99cea2fe..69b7ed0a4ee98c1bd833715f2456cd42c4566f4f 100644
--- a/civicrm/CRM/Core/DAO/SystemLog.php
+++ b/civicrm/CRM/Core/DAO/SystemLog.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/SystemLog.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:8b83e36b05cbe502b6a2d2311ed36f4c)
+ * (GenCodeChecksum:9439e784389ce4eb9d4b45366948ceb8)
  */
 
 /**
@@ -125,6 +125,12 @@ class CRM_Core_DAO_SystemLog extends CRM_Core_DAO {
           'title' => ts('System Log ID'),
           'description' => ts('Primary key ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_system_log.id',
           'table_name' => 'civicrm_system_log',
           'entity' => 'SystemLog',
@@ -144,6 +150,12 @@ class CRM_Core_DAO_SystemLog extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 128,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_system_log.message',
           'table_name' => 'civicrm_system_log',
           'entity' => 'SystemLog',
@@ -156,6 +168,12 @@ class CRM_Core_DAO_SystemLog extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_LONGTEXT,
           'title' => ts('Detailed Log Data'),
           'description' => ts('JSON encoded data'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_system_log.context',
           'table_name' => 'civicrm_system_log',
           'entity' => 'SystemLog',
@@ -170,6 +188,12 @@ class CRM_Core_DAO_SystemLog extends CRM_Core_DAO {
           'description' => ts('error level per PSR3'),
           'maxlength' => 9,
           'size' => CRM_Utils_Type::TWELVE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_system_log.level',
           'default' => 'info',
           'table_name' => 'civicrm_system_log',
@@ -183,6 +207,12 @@ class CRM_Core_DAO_SystemLog extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TIMESTAMP,
           'title' => ts('Log Timestamp'),
           'description' => ts('Timestamp of when event occurred.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_system_log.timestamp',
           'default' => 'CURRENT_TIMESTAMP',
           'table_name' => 'civicrm_system_log',
@@ -196,6 +226,12 @@ class CRM_Core_DAO_SystemLog extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Log Contact ID'),
           'description' => ts('Optional Contact ID that created the log. Not an FK as we keep this regardless'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_system_log.contact_id',
           'table_name' => 'civicrm_system_log',
           'entity' => 'SystemLog',
@@ -210,6 +246,12 @@ class CRM_Core_DAO_SystemLog extends CRM_Core_DAO {
           'description' => ts('Optional Name of logging host'),
           'maxlength' => 128,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_system_log.hostname',
           'table_name' => 'civicrm_system_log',
           'entity' => 'SystemLog',
diff --git a/civicrm/CRM/Core/DAO/Tag.php b/civicrm/CRM/Core/DAO/Tag.php
index c082125860cd226796cba31d493a171a8ed203cb..b84fa0d5e4e102adf00864000ea304c105ba6944 100644
--- a/civicrm/CRM/Core/DAO/Tag.php
+++ b/civicrm/CRM/Core/DAO/Tag.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/Tag.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:dbe043813226361244630b2e34e9152a)
+ * (GenCodeChecksum:f8d8698f48fbd60b8d8e0bf8eff40c47)
  */
 
 /**
@@ -185,6 +185,12 @@ class CRM_Core_DAO_Tag extends CRM_Core_DAO {
           'title' => ts('Tag ID'),
           'description' => ts('Tag ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_tag.id',
           'table_name' => 'civicrm_tag',
           'entity' => 'Tag',
@@ -204,6 +210,12 @@ class CRM_Core_DAO_Tag extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_tag.name',
           'table_name' => 'civicrm_tag',
           'entity' => 'Tag',
@@ -218,6 +230,12 @@ class CRM_Core_DAO_Tag extends CRM_Core_DAO {
           'description' => ts('Optional verbose description of the tag.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_tag.description',
           'table_name' => 'civicrm_tag',
           'entity' => 'Tag',
@@ -230,6 +248,12 @@ class CRM_Core_DAO_Tag extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Parent Tag ID'),
           'description' => ts('Optional parent id for this tag.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_tag.parent_id',
           'default' => NULL,
           'table_name' => 'civicrm_tag',
@@ -253,6 +277,12 @@ class CRM_Core_DAO_Tag extends CRM_Core_DAO {
           'title' => ts('Display Tag?'),
           'description' => ts('Is this tag selectable / displayed'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_tag.is_selectable',
           'default' => '1',
           'table_name' => 'civicrm_tag',
@@ -266,6 +296,12 @@ class CRM_Core_DAO_Tag extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_BOOLEAN,
           'title' => ts('Reserved'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_tag.is_reserved',
           'default' => '0',
           'table_name' => 'civicrm_tag',
@@ -279,6 +315,12 @@ class CRM_Core_DAO_Tag extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_BOOLEAN,
           'title' => ts('Tagset'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_tag.is_tagset',
           'default' => '0',
           'table_name' => 'civicrm_tag',
@@ -293,6 +335,12 @@ class CRM_Core_DAO_Tag extends CRM_Core_DAO {
           'title' => ts('Used For'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_tag.used_for',
           'default' => NULL,
           'table_name' => 'civicrm_tag',
@@ -314,6 +362,12 @@ class CRM_Core_DAO_Tag extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Created By Contact ID'),
           'description' => ts('FK to civicrm_contact, who created this tag'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_tag.created_id',
           'table_name' => 'civicrm_tag',
           'entity' => 'Tag',
@@ -332,6 +386,12 @@ class CRM_Core_DAO_Tag extends CRM_Core_DAO {
           'description' => ts('Hex color value e.g. #ffffff'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_tag.color',
           'default' => NULL,
           'table_name' => 'civicrm_tag',
@@ -345,6 +405,12 @@ class CRM_Core_DAO_Tag extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME,
           'title' => ts('Tag Created Date'),
           'description' => ts('Date and time that tag was created.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_tag.created_date',
           'table_name' => 'civicrm_tag',
           'entity' => 'Tag',
diff --git a/civicrm/CRM/Core/DAO/Timezone.php b/civicrm/CRM/Core/DAO/Timezone.php
index 0a45c8e815b4b70de6029bbe74e749fcaec5936a..774f40f8d0e70640de8982cab3c6bef3de15dd03 100644
--- a/civicrm/CRM/Core/DAO/Timezone.php
+++ b/civicrm/CRM/Core/DAO/Timezone.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/Timezone.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:97f74eb17d2467a62ca263414e7bb6d5)
+ * (GenCodeChecksum:90f0271d09bd3cadf02286f30b926eb6)
  */
 
 /**
@@ -129,6 +129,12 @@ class CRM_Core_DAO_Timezone extends CRM_Core_DAO {
           'title' => ts('Timezone ID'),
           'description' => ts('Timezone ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_timezone.id',
           'table_name' => 'civicrm_timezone',
           'entity' => 'Timezone',
@@ -147,6 +153,12 @@ class CRM_Core_DAO_Timezone extends CRM_Core_DAO {
           'description' => ts('Timezone full name'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_timezone.name',
           'table_name' => 'civicrm_timezone',
           'entity' => 'Timezone',
@@ -161,6 +173,12 @@ class CRM_Core_DAO_Timezone extends CRM_Core_DAO {
           'description' => ts('ISO Code for timezone abbreviation'),
           'maxlength' => 3,
           'size' => CRM_Utils_Type::FOUR,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_timezone.abbreviation',
           'table_name' => 'civicrm_timezone',
           'entity' => 'Timezone',
@@ -175,6 +193,12 @@ class CRM_Core_DAO_Timezone extends CRM_Core_DAO {
           'description' => ts('GMT name of the timezone'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_timezone.gmt',
           'table_name' => 'civicrm_timezone',
           'entity' => 'Timezone',
@@ -186,6 +210,12 @@ class CRM_Core_DAO_Timezone extends CRM_Core_DAO {
           'name' => 'offset',
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('GMT Offset'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_timezone.offset',
           'table_name' => 'civicrm_timezone',
           'entity' => 'Timezone',
@@ -199,6 +229,12 @@ class CRM_Core_DAO_Timezone extends CRM_Core_DAO {
           'title' => ts('Country ID'),
           'description' => ts('Country ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_timezone.country_id',
           'table_name' => 'civicrm_timezone',
           'entity' => 'Timezone',
diff --git a/civicrm/CRM/Core/DAO/Translation.php b/civicrm/CRM/Core/DAO/Translation.php
index 1c4529f57c825b0c55a5780e5c7472428ea5370f..116837a5d42be4bf65a9c67d1985455c58ebc9f7 100644
--- a/civicrm/CRM/Core/DAO/Translation.php
+++ b/civicrm/CRM/Core/DAO/Translation.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/Translation.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:e8417b87a34f51f88c56480567d5fc64)
+ * (GenCodeChecksum:50d8cca3198bc1c9d4616308f2e5c462)
  */
 
 /**
@@ -140,6 +140,12 @@ class CRM_Core_DAO_Translation extends CRM_Core_DAO {
           'title' => ts('Translated String ID'),
           'description' => ts('Unique String ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_translation.id',
           'table_name' => 'civicrm_translation',
           'entity' => 'Translation',
@@ -156,6 +162,12 @@ class CRM_Core_DAO_Translation extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_translation.entity_table',
           'table_name' => 'civicrm_translation',
           'entity' => 'Translation',
@@ -174,6 +186,12 @@ class CRM_Core_DAO_Translation extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_translation.entity_field',
           'table_name' => 'civicrm_translation',
           'entity' => 'Translation',
@@ -190,6 +208,12 @@ class CRM_Core_DAO_Translation extends CRM_Core_DAO {
           'title' => ts('Translated Entity ID'),
           'description' => ts('ID of the relevant entity.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_translation.entity_id',
           'table_name' => 'civicrm_translation',
           'entity' => 'Translation',
@@ -205,6 +229,12 @@ class CRM_Core_DAO_Translation extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 5,
           'size' => CRM_Utils_Type::SIX,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_translation.language',
           'table_name' => 'civicrm_translation',
           'entity' => 'Translation',
@@ -226,6 +256,12 @@ class CRM_Core_DAO_Translation extends CRM_Core_DAO {
           'title' => ts('Status'),
           'description' => ts('Specify whether the string is active, draft, etc'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_translation.status_id',
           'default' => '1',
           'table_name' => 'civicrm_translation',
@@ -243,6 +279,12 @@ class CRM_Core_DAO_Translation extends CRM_Core_DAO {
           'title' => ts('Translated String'),
           'description' => ts('Translated string'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_translation.string',
           'table_name' => 'civicrm_translation',
           'entity' => 'Translation',
diff --git a/civicrm/CRM/Core/DAO/UFField.php b/civicrm/CRM/Core/DAO/UFField.php
index 82703fd15957f72a0f4847735466df33f5bc104b..1cde34488f27d28be4fdea4d69ed5a557ea8e6d6 100644
--- a/civicrm/CRM/Core/DAO/UFField.php
+++ b/civicrm/CRM/Core/DAO/UFField.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/UFField.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:ef69bec1679ad1fefdfe67722980cf7a)
+ * (GenCodeChecksum:20802d4a0ef8e7729efdc58ecfec264e)
  */
 
 /**
@@ -268,6 +268,12 @@ class CRM_Core_DAO_UFField extends CRM_Core_DAO {
           'title' => ts('Profile Field ID'),
           'description' => ts('Unique table ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_field.id',
           'table_name' => 'civicrm_uf_field',
           'entity' => 'UFField',
@@ -285,6 +291,12 @@ class CRM_Core_DAO_UFField extends CRM_Core_DAO {
           'title' => ts('Profile ID'),
           'description' => ts('Which form does this field belong to.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_field.uf_group_id',
           'table_name' => 'civicrm_uf_field',
           'entity' => 'UFField',
@@ -310,6 +322,12 @@ class CRM_Core_DAO_UFField extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_field.field_name',
           'table_name' => 'civicrm_uf_field',
           'entity' => 'UFField',
@@ -326,6 +344,12 @@ class CRM_Core_DAO_UFField extends CRM_Core_DAO {
           'title' => ts('Profile Field Is Active'),
           'description' => ts('Is this field currently shareable? If false, hide the field for all sharing contexts.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_field.is_active',
           'default' => '1',
           'table_name' => 'civicrm_uf_field',
@@ -344,6 +368,12 @@ class CRM_Core_DAO_UFField extends CRM_Core_DAO {
           'title' => ts('Profile Is View Only'),
           'description' => ts('the field is view only and not editable in user forms.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_field.is_view',
           'default' => '0',
           'table_name' => 'civicrm_uf_field',
@@ -358,6 +388,12 @@ class CRM_Core_DAO_UFField extends CRM_Core_DAO {
           'title' => ts('Profile Field Is Required'),
           'description' => ts('Is this field required when included in a user or registration form?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_field.is_required',
           'default' => '0',
           'table_name' => 'civicrm_uf_field',
@@ -372,6 +408,12 @@ class CRM_Core_DAO_UFField extends CRM_Core_DAO {
           'title' => ts('Order'),
           'description' => ts('Controls field display order when user framework fields are displayed in registration and account editing forms.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_field.weight',
           'default' => '1',
           'table_name' => 'civicrm_uf_field',
@@ -385,6 +427,12 @@ class CRM_Core_DAO_UFField extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Profile Field Post Help'),
           'description' => ts('Description and/or help text to display after this field.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_field.help_post',
           'table_name' => 'civicrm_uf_field',
           'entity' => 'UFField',
@@ -397,6 +445,12 @@ class CRM_Core_DAO_UFField extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Profile Field Pre Help'),
           'description' => ts('Description and/or help text to display before this field.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_field.help_pre',
           'table_name' => 'civicrm_uf_field',
           'entity' => 'UFField',
@@ -411,6 +465,12 @@ class CRM_Core_DAO_UFField extends CRM_Core_DAO {
           'description' => ts('In what context(s) is this field visible.'),
           'maxlength' => 32,
           'size' => CRM_Utils_Type::MEDIUM,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_field.visibility',
           'default' => 'User and User Admin Only',
           'table_name' => 'civicrm_uf_field',
@@ -431,6 +491,12 @@ class CRM_Core_DAO_UFField extends CRM_Core_DAO {
           'title' => ts('Profile Field Is a Filter'),
           'description' => ts('Is this field included as a column in the selector table?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_field.in_selector',
           'default' => '0',
           'table_name' => 'civicrm_uf_field',
@@ -445,6 +511,12 @@ class CRM_Core_DAO_UFField extends CRM_Core_DAO {
           'title' => ts('Profile Field Is Searchable'),
           'description' => ts('Is this field included search form of profile?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_field.is_searchable',
           'default' => '0',
           'table_name' => 'civicrm_uf_field',
@@ -458,6 +530,12 @@ class CRM_Core_DAO_UFField extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Location Type ID'),
           'description' => ts('Location type of this mapping, if required'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_field.location_type_id',
           'table_name' => 'civicrm_uf_field',
           'entity' => 'UFField',
@@ -474,6 +552,12 @@ class CRM_Core_DAO_UFField extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Profile Field Phone Type'),
           'description' => ts('Phone Type ID, if required'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_field.phone_type_id',
           'table_name' => 'civicrm_uf_field',
           'entity' => 'UFField',
@@ -490,6 +574,12 @@ class CRM_Core_DAO_UFField extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Profile Field Website Type'),
           'description' => ts('Website Type ID, if required'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_field.website_type_id',
           'table_name' => 'civicrm_uf_field',
           'entity' => 'UFField',
@@ -509,6 +599,12 @@ class CRM_Core_DAO_UFField extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_field.label',
           'table_name' => 'civicrm_uf_field',
           'entity' => 'UFField',
@@ -523,6 +619,12 @@ class CRM_Core_DAO_UFField extends CRM_Core_DAO {
           'description' => ts('This field saves field type (ie individual,household.. field etc).'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_field.field_type',
           'table_name' => 'civicrm_uf_field',
           'entity' => 'UFField',
@@ -536,6 +638,12 @@ class CRM_Core_DAO_UFField extends CRM_Core_DAO {
           'title' => ts('Profile Field Is Reserved'),
           'description' => ts('Is this field reserved for use by some other CiviCRM functionality?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_field.is_reserved',
           'default' => '0',
           'table_name' => 'civicrm_uf_field',
@@ -550,6 +658,12 @@ class CRM_Core_DAO_UFField extends CRM_Core_DAO {
           'title' => ts('Profile Field Supports Multiple'),
           'description' => ts('Include in multi-record listing?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_field.is_multi_summary',
           'default' => '0',
           'table_name' => 'civicrm_uf_field',
diff --git a/civicrm/CRM/Core/DAO/UFGroup.php b/civicrm/CRM/Core/DAO/UFGroup.php
index b0d07227ff29c8458d52960419ef6cf5e6cd0262..ae54985a33482864335db7476c6ac33a94a4ceb5 100644
--- a/civicrm/CRM/Core/DAO/UFGroup.php
+++ b/civicrm/CRM/Core/DAO/UFGroup.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/UFGroup.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:ede8c05e576822fdbcaaad0405bf7f81)
+ * (GenCodeChecksum:c8d65a421dc23cef070b148a190b37b0)
  */
 
 /**
@@ -339,6 +339,12 @@ class CRM_Core_DAO_UFGroup extends CRM_Core_DAO {
           'title' => ts('Profile ID'),
           'description' => ts('Unique table ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_group.id',
           'table_name' => 'civicrm_uf_group',
           'entity' => 'UFGroup',
@@ -356,6 +362,12 @@ class CRM_Core_DAO_UFGroup extends CRM_Core_DAO {
           'title' => ts('Profile Is Active'),
           'description' => ts('Is this profile currently active? If false, hide all related fields for all sharing contexts.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_group.is_active',
           'default' => '1',
           'table_name' => 'civicrm_uf_group',
@@ -375,6 +387,12 @@ class CRM_Core_DAO_UFGroup extends CRM_Core_DAO {
           'description' => ts('Comma separated list of the type(s) of profile fields.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_uf_group.group_type',
           'export' => TRUE,
@@ -393,6 +411,12 @@ class CRM_Core_DAO_UFGroup extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_group.title',
           'table_name' => 'civicrm_uf_group',
           'entity' => 'UFGroup',
@@ -410,6 +434,12 @@ class CRM_Core_DAO_UFGroup extends CRM_Core_DAO {
           'description' => ts('Profile Form Public title'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_group.frontend_title',
           'table_name' => 'civicrm_uf_group',
           'entity' => 'UFGroup',
@@ -427,6 +457,12 @@ class CRM_Core_DAO_UFGroup extends CRM_Core_DAO {
           'description' => ts('Optional verbose description of the profile.'),
           'rows' => 2,
           'cols' => 60,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_group.description',
           'table_name' => 'civicrm_uf_group',
           'entity' => 'UFGroup',
@@ -444,6 +480,12 @@ class CRM_Core_DAO_UFGroup extends CRM_Core_DAO {
           'description' => ts('Description and/or help text to display before fields in form.'),
           'rows' => 4,
           'cols' => 80,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_group.help_pre',
           'table_name' => 'civicrm_uf_group',
           'entity' => 'UFGroup',
@@ -462,6 +504,12 @@ class CRM_Core_DAO_UFGroup extends CRM_Core_DAO {
           'description' => ts('Description and/or help text to display after fields in form.'),
           'rows' => 4,
           'cols' => 80,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_group.help_post',
           'table_name' => 'civicrm_uf_group',
           'entity' => 'UFGroup',
@@ -477,6 +525,12 @@ class CRM_Core_DAO_UFGroup extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Search Limit Group ID'),
           'description' => ts('Group id, foreign key from civicrm_group'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_group.limit_listings_group_id',
           'table_name' => 'civicrm_uf_group',
           'entity' => 'UFGroup',
@@ -495,6 +549,12 @@ class CRM_Core_DAO_UFGroup extends CRM_Core_DAO {
           'description' => ts('Redirect to URL.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_group.post_URL',
           'table_name' => 'civicrm_uf_group',
           'entity' => 'UFGroup',
@@ -510,6 +570,12 @@ class CRM_Core_DAO_UFGroup extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Add Contact To Group ID'),
           'description' => ts('foreign key to civicrm_group_id'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_group.add_to_group_id',
           'table_name' => 'civicrm_uf_group',
           'entity' => 'UFGroup',
@@ -527,6 +593,12 @@ class CRM_Core_DAO_UFGroup extends CRM_Core_DAO {
           'title' => ts('Show Captcha On Profile'),
           'description' => ts('Should a CAPTCHA widget be included this Profile form.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_group.add_captcha',
           'default' => '0',
           'table_name' => 'civicrm_uf_group',
@@ -541,6 +613,12 @@ class CRM_Core_DAO_UFGroup extends CRM_Core_DAO {
           'title' => ts('Map Profile'),
           'description' => ts('Do we want to map results from this profile.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_group.is_map',
           'default' => '0',
           'table_name' => 'civicrm_uf_group',
@@ -555,6 +633,12 @@ class CRM_Core_DAO_UFGroup extends CRM_Core_DAO {
           'title' => ts('Show Edit Link?'),
           'description' => ts('Should edit link display in profile selector'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_group.is_edit_link',
           'default' => '0',
           'table_name' => 'civicrm_uf_group',
@@ -569,6 +653,12 @@ class CRM_Core_DAO_UFGroup extends CRM_Core_DAO {
           'title' => ts('Show Link to CMS User'),
           'description' => ts('Should we display a link to the website profile in profile selector'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_group.is_uf_link',
           'default' => '0',
           'table_name' => 'civicrm_uf_group',
@@ -583,6 +673,12 @@ class CRM_Core_DAO_UFGroup extends CRM_Core_DAO {
           'title' => ts('Update on Duplicate'),
           'description' => ts('Should we update the contact record if we find a duplicate'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_group.is_update_dupe',
           'default' => '0',
           'table_name' => 'civicrm_uf_group',
@@ -598,6 +694,12 @@ class CRM_Core_DAO_UFGroup extends CRM_Core_DAO {
           'description' => ts('Redirect to URL when Cancle button clik .'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_group.cancel_URL',
           'table_name' => 'civicrm_uf_group',
           'entity' => 'UFGroup',
@@ -611,6 +713,12 @@ class CRM_Core_DAO_UFGroup extends CRM_Core_DAO {
           'title' => ts('Create CMS User?'),
           'description' => ts('Should we create a cms user for this profile '),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_group.is_cms_user',
           'default' => '0',
           'table_name' => 'civicrm_uf_group',
@@ -623,6 +731,12 @@ class CRM_Core_DAO_UFGroup extends CRM_Core_DAO {
           'name' => 'notify',
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Notify on Profile Submit'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_group.notify',
           'table_name' => 'civicrm_uf_group',
           'entity' => 'UFGroup',
@@ -636,6 +750,12 @@ class CRM_Core_DAO_UFGroup extends CRM_Core_DAO {
           'title' => ts('Profile Is Reserved'),
           'description' => ts('Is this group reserved for use by some other CiviCRM functionality?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_group.is_reserved',
           'default' => '0',
           'table_name' => 'civicrm_uf_group',
@@ -654,6 +774,12 @@ class CRM_Core_DAO_UFGroup extends CRM_Core_DAO {
           'description' => ts('Name of the UF group for directly addressing it in the codebase'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_group.name',
           'table_name' => 'civicrm_uf_group',
           'entity' => 'UFGroup',
@@ -666,6 +792,12 @@ class CRM_Core_DAO_UFGroup extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Created By Contact ID'),
           'description' => ts('FK to civicrm_contact, who created this UF group'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_group.created_id',
           'table_name' => 'civicrm_uf_group',
           'entity' => 'UFGroup',
@@ -682,6 +814,12 @@ class CRM_Core_DAO_UFGroup extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME,
           'title' => ts('UF Group Created Date'),
           'description' => ts('Date and time this UF group was created.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_group.created_date',
           'table_name' => 'civicrm_uf_group',
           'entity' => 'UFGroup',
@@ -695,6 +833,12 @@ class CRM_Core_DAO_UFGroup extends CRM_Core_DAO {
           'title' => ts('Include Proximity Search?'),
           'description' => ts('Should we include proximity search feature in this profile search form?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_group.is_proximity_search',
           'default' => '0',
           'table_name' => 'civicrm_uf_group',
@@ -710,6 +854,12 @@ class CRM_Core_DAO_UFGroup extends CRM_Core_DAO {
           'description' => ts('Custom Text to display on the Cancel button when used in create or edit mode'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_group.cancel_button_text',
           'default' => NULL,
           'table_name' => 'civicrm_uf_group',
@@ -728,6 +878,12 @@ class CRM_Core_DAO_UFGroup extends CRM_Core_DAO {
           'description' => ts('Custom Text to display on the submit button on profile edit/create screens'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_group.submit_button_text',
           'default' => NULL,
           'table_name' => 'civicrm_uf_group',
@@ -745,6 +901,12 @@ class CRM_Core_DAO_UFGroup extends CRM_Core_DAO {
           'title' => ts('Include Cancel Button'),
           'description' => ts('Should a Cancel button be included in this Profile form.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_group.add_cancel_button',
           'default' => '1',
           'table_name' => 'civicrm_uf_group',
diff --git a/civicrm/CRM/Core/DAO/UFJoin.php b/civicrm/CRM/Core/DAO/UFJoin.php
index 15f9a3bdf9cb184d4ac9454cbca72993afdcf13c..753b721f3c818f66b64d5770eb739d741ba44936 100644
--- a/civicrm/CRM/Core/DAO/UFJoin.php
+++ b/civicrm/CRM/Core/DAO/UFJoin.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/UFJoin.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:c4969a7857fae31dfa340b462c6b8c45)
+ * (GenCodeChecksum:e11a1e64ca03c7ba82294c75de0dc4c4)
  */
 
 /**
@@ -150,6 +150,12 @@ class CRM_Core_DAO_UFJoin extends CRM_Core_DAO {
           'title' => ts('UF Join ID'),
           'description' => ts('Unique table ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_join.id',
           'table_name' => 'civicrm_uf_join',
           'entity' => 'UFJoin',
@@ -167,6 +173,12 @@ class CRM_Core_DAO_UFJoin extends CRM_Core_DAO {
           'title' => ts('Profile Use is active'),
           'description' => ts('Is this join currently active?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_join.is_active',
           'default' => '1',
           'table_name' => 'civicrm_uf_join',
@@ -187,6 +199,12 @@ class CRM_Core_DAO_UFJoin extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_join.module',
           'table_name' => 'civicrm_uf_join',
           'entity' => 'UFJoin',
@@ -201,6 +219,12 @@ class CRM_Core_DAO_UFJoin extends CRM_Core_DAO {
           'description' => ts('Name of table where item being referenced is stored. Modules which only need a single collection of uf_join instances may choose not to populate entity_table and entity_id.'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_join.entity_table',
           'table_name' => 'civicrm_uf_join',
           'entity' => 'UFJoin',
@@ -216,6 +240,12 @@ class CRM_Core_DAO_UFJoin extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Profile Entity ID'),
           'description' => ts('Foreign key to the referenced item.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_join.entity_id',
           'table_name' => 'civicrm_uf_join',
           'entity' => 'UFJoin',
@@ -229,6 +259,12 @@ class CRM_Core_DAO_UFJoin extends CRM_Core_DAO {
           'title' => ts('Order'),
           'description' => ts('Controls display order when multiple user framework groups are setup for concurrent display.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_join.weight',
           'default' => '1',
           'table_name' => 'civicrm_uf_join',
@@ -243,6 +279,12 @@ class CRM_Core_DAO_UFJoin extends CRM_Core_DAO {
           'title' => ts('Profile ID'),
           'description' => ts('Which form does this field belong to.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_join.uf_group_id',
           'table_name' => 'civicrm_uf_join',
           'entity' => 'UFJoin',
@@ -265,6 +307,12 @@ class CRM_Core_DAO_UFJoin extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_LONGTEXT,
           'title' => ts('Profile Use Data'),
           'description' => ts('Json serialized array of data used by the ufjoin.module'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_join.module_data',
           'table_name' => 'civicrm_uf_join',
           'entity' => 'UFJoin',
diff --git a/civicrm/CRM/Core/DAO/UFMatch.php b/civicrm/CRM/Core/DAO/UFMatch.php
index e4b512deb97024aaaabcc39ee3f46d555bc4b1cc..38744177fa9ab555838c6f3cac9fa3c2da3a3bbe 100644
--- a/civicrm/CRM/Core/DAO/UFMatch.php
+++ b/civicrm/CRM/Core/DAO/UFMatch.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/UFMatch.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:7b871668581fb64a83a1995ed5c58101)
+ * (GenCodeChecksum:03d955dcec4176dec67ec9fbc818e490)
  */
 
 /**
@@ -132,6 +132,12 @@ class CRM_Core_DAO_UFMatch extends CRM_Core_DAO {
           'title' => ts('UF Match ID'),
           'description' => ts('System generated ID.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_match.id',
           'table_name' => 'civicrm_uf_match',
           'entity' => 'UFMatch',
@@ -149,6 +155,12 @@ class CRM_Core_DAO_UFMatch extends CRM_Core_DAO {
           'title' => ts('Domain ID'),
           'description' => ts('Which Domain is this match entry for'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_match.domain_id',
           'table_name' => 'civicrm_uf_match',
           'entity' => 'UFMatch',
@@ -171,6 +183,12 @@ class CRM_Core_DAO_UFMatch extends CRM_Core_DAO {
           'title' => ts('CMS ID'),
           'description' => ts('UF ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_match.uf_id',
           'table_name' => 'civicrm_uf_match',
           'entity' => 'UFMatch',
@@ -185,6 +203,12 @@ class CRM_Core_DAO_UFMatch extends CRM_Core_DAO {
           'description' => ts('UF Name'),
           'maxlength' => 128,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_match.uf_name',
           'table_name' => 'civicrm_uf_match',
           'entity' => 'UFMatch',
@@ -197,6 +221,12 @@ class CRM_Core_DAO_UFMatch extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Contact ID'),
           'description' => ts('FK to Contact ID'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_match.contact_id',
           'table_name' => 'civicrm_uf_match',
           'entity' => 'UFMatch',
@@ -215,6 +245,12 @@ class CRM_Core_DAO_UFMatch extends CRM_Core_DAO {
           'description' => ts('UI language preferred by the given user/contact'),
           'maxlength' => 5,
           'size' => CRM_Utils_Type::SIX,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_uf_match.language',
           'table_name' => 'civicrm_uf_match',
           'entity' => 'UFMatch',
diff --git a/civicrm/CRM/Core/DAO/UserJob.php b/civicrm/CRM/Core/DAO/UserJob.php
index 3e68111f32321ae9fa42d34b6482df47044033bd..9917b6b120c0a40a1603a5d375845d5939efa9e5 100644
--- a/civicrm/CRM/Core/DAO/UserJob.php
+++ b/civicrm/CRM/Core/DAO/UserJob.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/UserJob.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:db60d8d1390d79a41a01ae28347dd770)
+ * (GenCodeChecksum:290ce6f8908a1dfc1590534029171f41)
  */
 
 /**
@@ -193,6 +193,12 @@ class CRM_Core_DAO_UserJob extends CRM_Core_DAO {
           'title' => ts('User Job ID'),
           'description' => ts('Job ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_user_job.id',
           'table_name' => 'civicrm_user_job',
           'entity' => 'UserJob',
@@ -211,6 +217,12 @@ class CRM_Core_DAO_UserJob extends CRM_Core_DAO {
           'description' => ts('Unique name for job.'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_user_job.name',
           'table_name' => 'civicrm_user_job',
           'entity' => 'UserJob',
@@ -223,6 +235,12 @@ class CRM_Core_DAO_UserJob extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Created By Contact ID'),
           'description' => ts('FK to contact table.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_user_job.created_id',
           'table_name' => 'civicrm_user_job',
           'entity' => 'UserJob',
@@ -240,6 +258,12 @@ class CRM_Core_DAO_UserJob extends CRM_Core_DAO {
           'title' => ts('Import Job Created Date'),
           'description' => ts('Date and time this job was created.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_user_job.created_date',
           'default' => 'CURRENT_TIMESTAMP',
           'table_name' => 'civicrm_user_job',
@@ -259,6 +283,12 @@ class CRM_Core_DAO_UserJob extends CRM_Core_DAO {
           'title' => ts('Import Job Started Date'),
           'description' => ts('Date and time this import job started.'),
           'required' => FALSE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_user_job.start_date',
           'table_name' => 'civicrm_user_job',
           'entity' => 'UserJob',
@@ -277,6 +307,12 @@ class CRM_Core_DAO_UserJob extends CRM_Core_DAO {
           'title' => ts('Job Ended Date'),
           'description' => ts('Date and time this import job ended.'),
           'required' => FALSE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_user_job.end_date',
           'table_name' => 'civicrm_user_job',
           'entity' => 'UserJob',
@@ -294,6 +330,12 @@ class CRM_Core_DAO_UserJob extends CRM_Core_DAO {
           'title' => ts('Import Job Expires Date'),
           'description' => ts('Date and time to clean up after this import job (temp table deletion date).'),
           'required' => FALSE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_user_job.expires_date',
           'table_name' => 'civicrm_user_job',
           'entity' => 'UserJob',
@@ -310,6 +352,12 @@ class CRM_Core_DAO_UserJob extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('User Job Status ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_user_job.status_id',
           'table_name' => 'civicrm_user_job',
           'entity' => 'UserJob',
@@ -331,6 +379,12 @@ class CRM_Core_DAO_UserJob extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_user_job.job_type',
           'table_name' => 'civicrm_user_job',
           'entity' => 'UserJob',
@@ -349,6 +403,12 @@ class CRM_Core_DAO_UserJob extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Queue ID'),
           'description' => ts('FK to Queue'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_user_job.queue_id',
           'table_name' => 'civicrm_user_job',
           'entity' => 'UserJob',
@@ -365,6 +425,12 @@ class CRM_Core_DAO_UserJob extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Job metadata'),
           'description' => ts('Data pertaining to job configuration'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_user_job.metadata',
           'table_name' => 'civicrm_user_job',
           'entity' => 'UserJob',
@@ -379,6 +445,12 @@ class CRM_Core_DAO_UserJob extends CRM_Core_DAO {
           'title' => ts('Is Template'),
           'description' => ts('Is this a template configuration (for use by other/future jobs)?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_user_job.is_template',
           'default' => '0',
           'table_name' => 'civicrm_user_job',
diff --git a/civicrm/CRM/Core/DAO/Website.php b/civicrm/CRM/Core/DAO/Website.php
index c5be8fc4d32191fafb89d16d1d4064c4b06407b7..11059d5fc10a350e5e868c7f66473ed37e285c64 100644
--- a/civicrm/CRM/Core/DAO/Website.php
+++ b/civicrm/CRM/Core/DAO/Website.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/Website.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:10ede950a86d91b845864f15e7cd9052)
+ * (GenCodeChecksum:782dd40595dfdc4b4a836c4f1c394929)
  */
 
 /**
@@ -127,6 +127,12 @@ class CRM_Core_DAO_Website extends CRM_Core_DAO {
           'title' => ts('Website ID'),
           'description' => ts('Unique Website ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_website.id',
           'table_name' => 'civicrm_website',
           'entity' => 'Website',
@@ -143,6 +149,12 @@ class CRM_Core_DAO_Website extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Contact ID'),
           'description' => ts('FK to Contact ID'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_website.contact_id',
           'table_name' => 'civicrm_website',
           'entity' => 'Website',
@@ -161,6 +173,12 @@ class CRM_Core_DAO_Website extends CRM_Core_DAO {
           'description' => ts('Website'),
           'maxlength' => 255,
           'size' => 45,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_website.url',
           'headerPattern' => '/Website/i',
@@ -180,6 +198,12 @@ class CRM_Core_DAO_Website extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Website Type'),
           'description' => ts('Which Website type does this website belong to.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_website.website_type_id',
           'table_name' => 'civicrm_website',
           'entity' => 'Website',
diff --git a/civicrm/CRM/Core/DAO/WordReplacement.php b/civicrm/CRM/Core/DAO/WordReplacement.php
index a6219a1a9e146263770a996f8d8ad4fb703d61f2..8366bd52abfad5fe4d1297a953b75b0df91b56d1 100644
--- a/civicrm/CRM/Core/DAO/WordReplacement.php
+++ b/civicrm/CRM/Core/DAO/WordReplacement.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/WordReplacement.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:568affd02a58c354e7596c2a4eeb691b)
+ * (GenCodeChecksum:f212963034ccdf6c73970466b31552f3)
  */
 
 /**
@@ -129,6 +129,12 @@ class CRM_Core_DAO_WordReplacement extends CRM_Core_DAO {
           'title' => ts('Word Replacement ID'),
           'description' => ts('Word replacement ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_word_replacement.id',
           'table_name' => 'civicrm_word_replacement',
           'entity' => 'WordReplacement',
@@ -147,6 +153,12 @@ class CRM_Core_DAO_WordReplacement extends CRM_Core_DAO {
           'description' => ts('Word which need to be replaced'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_word_replacement.find_word',
           'table_name' => 'civicrm_word_replacement',
           'entity' => 'WordReplacement',
@@ -161,6 +173,12 @@ class CRM_Core_DAO_WordReplacement extends CRM_Core_DAO {
           'description' => ts('Word which will replace the word in find'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_word_replacement.replace_word',
           'table_name' => 'civicrm_word_replacement',
           'entity' => 'WordReplacement',
@@ -174,6 +192,12 @@ class CRM_Core_DAO_WordReplacement extends CRM_Core_DAO {
           'title' => ts('Word Replacement is Active'),
           'description' => ts('Is this entry active?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_word_replacement.is_active',
           'default' => '1',
           'table_name' => 'civicrm_word_replacement',
@@ -192,6 +216,12 @@ class CRM_Core_DAO_WordReplacement extends CRM_Core_DAO {
           'title' => ts('Word Replacement Match Type'),
           'maxlength' => 16,
           'size' => CRM_Utils_Type::TWELVE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_word_replacement.match_type',
           'default' => 'wildcardMatch',
           'table_name' => 'civicrm_word_replacement',
@@ -211,6 +241,12 @@ class CRM_Core_DAO_WordReplacement extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Domain ID'),
           'description' => ts('FK to Domain ID. This is for Domain specific word replacement'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_word_replacement.domain_id',
           'table_name' => 'civicrm_word_replacement',
           'entity' => 'WordReplacement',
diff --git a/civicrm/CRM/Core/DAO/Worldregion.php b/civicrm/CRM/Core/DAO/Worldregion.php
index 375beb1d00f917f16279b65893fa5848926fdcce..c6fdbce66bf0e84c49485890552f3944f9d784ec 100644
--- a/civicrm/CRM/Core/DAO/Worldregion.php
+++ b/civicrm/CRM/Core/DAO/Worldregion.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Core/Worldregion.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:2604f3d61e573a996ee6f5d7bf4d04dc)
+ * (GenCodeChecksum:5a8bc073b156890e271f35afd867be85)
  */
 
 /**
@@ -80,6 +80,12 @@ class CRM_Core_DAO_Worldregion extends CRM_Core_DAO {
           'title' => ts('World Region ID'),
           'description' => ts('Country ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_worldregion.id',
           'table_name' => 'civicrm_worldregion',
           'entity' => 'WorldRegion',
@@ -98,6 +104,12 @@ class CRM_Core_DAO_Worldregion extends CRM_Core_DAO {
           'description' => ts('Region name to be associated with countries'),
           'maxlength' => 128,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => TRUE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_worldregion.name',
           'export' => TRUE,
           'table_name' => 'civicrm_worldregion',
diff --git a/civicrm/CRM/Core/Error.php b/civicrm/CRM/Core/Error.php
index 92f14f1d9a62a8bbb83826fc56c37158c2444ea2..9a50144288b413170d3ee9a39cd5d6540ddaaf08 100644
--- a/civicrm/CRM/Core/Error.php
+++ b/civicrm/CRM/Core/Error.php
@@ -17,6 +17,8 @@
  * @copyright CiviCRM LLC https://civicrm.org/licensing
  */
 
+use Civi\Core\Exception\DBQueryException;
+
 require_once 'PEAR/ErrorStack.php';
 require_once 'PEAR/Exception.php';
 require_once 'CRM/Core/Exception.php';
@@ -948,9 +950,10 @@ class CRM_Core_Error extends PEAR_ErrorStack {
    * @throws PEAR_Exception
    */
   public static function exceptionHandler($pearError) {
-    CRM_Core_Error::debug_var('Fatal Error Details', self::getErrorDetails($pearError), TRUE, TRUE, '', PEAR_LOG_ERR);
-    CRM_Core_Error::backtrace('backTrace', TRUE);
-    throw new PEAR_Exception($pearError->getMessage(), $pearError);
+    if ($pearError instanceof DB_Error) {
+      throw new DBQueryException($pearError->getMessage(), $pearError->getCode(), ['exception' => $pearError]);
+    }
+    throw new CRM_Core_Exception($pearError->getMessage(), $pearError->getCode(), ['exception' => $pearError]);
   }
 
   /**
diff --git a/civicrm/CRM/Core/Exception.php b/civicrm/CRM/Core/Exception.php
index 5591885acc773445eac29a28ca026b731138bc50..aa9faa26e97354cfc7f569b79071e7730ccb799b 100644
--- a/civicrm/CRM/Core/Exception.php
+++ b/civicrm/CRM/Core/Exception.php
@@ -39,8 +39,13 @@ class CRM_Core_Exception extends PEAR_Exception {
    *   A previous exception which caused this new exception.
    */
   public function __construct($message, $error_code = 0, $errorData = [], $previous = NULL) {
-    // Using int for error code "old way") ?
-    if (is_numeric($error_code)) {
+
+    if (($errorData['exception'] ?? NULL) instanceof DB_Error) {
+      // Pass the exception to the PEAR_Exception parent as the code for it to handle.
+      $code = $errorData['exception'];
+    }
+    elseif (is_numeric($error_code)) {
+      // Using int for error code "old way") ?
       $code = $error_code;
     }
     else {
@@ -99,6 +104,15 @@ class CRM_Core_Exception extends PEAR_Exception {
     return $this->errorData;
   }
 
+  /**
+   * Get a message suitable to be presented to the user.
+   *
+   * @return string
+   */
+  public function getUserMessage(): string {
+    return $this->getMessage();
+  }
+
   /**
    * Get error codes.
    *
diff --git a/civicrm/CRM/Core/Form.php b/civicrm/CRM/Core/Form.php
index c3682d97b43185a5ddb52ee95aaa98d6bd3c4775..326fdb45f1f4674076949b3f17c11ce634f393ae 100644
--- a/civicrm/CRM/Core/Form.php
+++ b/civicrm/CRM/Core/Form.php
@@ -205,6 +205,40 @@ class CRM_Core_Form extends HTML_QuickForm_Page {
     return $this->context;
   }
 
+  /**
+   * Get values submitted by the user.
+   *
+   * Compared with $this->controller->exportValues this has a couple of changes
+   * 1) any fields declared in $this->submittableMoneyFields will be de-formatted first.
+   * 2) it is possible to store access fields from related forms if they
+   * are declared in `getSubmittableFields()`. This is notably used in imports
+   * to combine fields from the various screens & save the resulting 'submitted_values'
+   * to the UserJob.
+   *
+   * @return array
+   */
+  public function getSubmittedValues(): array {
+    $values = [];
+    foreach (array_keys($this->getSubmittableFields()) as $key) {
+      $values[$key] = $this->getSubmittedValue($key);
+    }
+    return $values;
+  }
+
+  /**
+   * Get the fields that can be submitted in this form flow.
+   *
+   * To make fields in related forms (ie within the same wizard like
+   * Contribution_Main and Contribution_Confirm) accessible you can override
+   * this function as CRM_Import_Forms does.
+   *
+   * @return string[]
+   */
+  protected function getSubmittableFields(): array {
+    $fieldNames = array_keys($this->controller->exportValues($this->_name));
+    return array_fill_keys($fieldNames, $this->_name);
+  }
+
   /**
    * Set context variable.
    */
@@ -694,7 +728,9 @@ class CRM_Core_Form extends HTML_QuickForm_Page {
     $this->buildQuickForm();
 
     $defaults = $this->setDefaultValues();
-    unset($defaults['qfKey']);
+    if (isset($defaults['qfKey'])) {
+      unset($defaults['qfKey']);
+    }
 
     if (!empty($defaults)) {
       $this->setDefaults($defaults);
diff --git a/civicrm/CRM/Core/Form/Date.php b/civicrm/CRM/Core/Form/Date.php
index db4ac7019c1009ccf8fc2620a6ca6c897d3e6ad5..847f2e4f8e199485a0cb76e2698e0e07b350b294 100644
--- a/civicrm/CRM/Core/Form/Date.php
+++ b/civicrm/CRM/Core/Form/Date.php
@@ -49,48 +49,6 @@ class CRM_Core_Form_Date {
     $form->setDefaults(['dateFormats' => self::DATE_yyyy_mm_dd]);
   }
 
-  /**
-   * Retrieve the date range - relative or absolute and assign it to the form.
-   *
-   * @deprecated
-   *
-   * @param CRM_Core_Form $form
-   *   The form the dates should be added to.
-   * @param string $fieldName
-   * @param int $count
-   * @param string $from
-   * @param string $to
-   * @param string $fromLabel
-   * @param bool $required
-   * @param array $operators
-   *   Additional value pairs to add.
-   * @param string $dateFormat
-   * @param bool|string $displayTime
-   * @param array $attributes
-   */
-  public static function buildDateRange(
-    &$form, $fieldName, $count = 1,
-    $from = '_from', $to = '_to', $fromLabel = 'From:',
-    $required = FALSE, $operators = [],
-    $dateFormat = 'searchDate', $displayTime = FALSE,
-    $attributes = ['class' => 'crm-select2']
-  ) {
-    CRM_Core_Error::deprecatedFunctionWarning('function will be removed');
-    $selector
-      = CRM_Core_Form_Date::returnDateRangeSelector(
-        $form, $fieldName, $count,
-        $from, $to, $fromLabel,
-        $required, $operators,
-        $dateFormat, $displayTime
-      );
-    CRM_Core_Form_Date::addDateRangeToForm(
-      $form, $fieldName, $selector,
-      $from, $to, $fromLabel,
-      $required, $dateFormat, $displayTime,
-      $attributes
-    );
-  }
-
   /**
    * Build the date range array that will provide the form option values.
    *
diff --git a/civicrm/CRM/Core/Form/EntityFormTrait.php b/civicrm/CRM/Core/Form/EntityFormTrait.php
index ccf5522788446357b8b28da2f4759aef602f5180..2d09fa550ab9daa368d59bf217c5e7bd20e23a09 100644
--- a/civicrm/CRM/Core/Form/EntityFormTrait.php
+++ b/civicrm/CRM/Core/Form/EntityFormTrait.php
@@ -30,6 +30,41 @@ trait CRM_Core_Form_EntityFormTrait {
    */
   protected $_entitySubTypeId = NULL;
 
+  /**
+   * Deletion message to be assigned to the form.
+   *
+   * Depending on the screen, the deletionMessage may be plain-text (`{$deletionMessage|escape}`)
+   * or HTML (`{$deletionMessage|smarty:nodefaults}`). Be sure your controller+template agree.
+   *
+   * @var string
+   */
+  protected $deleteMessage;
+
+  /**
+   * Fields for the entity to be assigned to the template.
+   *
+   * Fields may have keys
+   *  - name (required to show in tpl from the array)
+   *  - description (optional, will appear below the field)
+   *  - not-auto-addable - this class will not attempt to add the field using addField.
+   *    (this will be automatically set if the field does not have html in it's metadata
+   *    or is not a core field on the form's entity).
+   *  - help (option) add help to the field - e.g ['id' => 'id-source', 'file' => 'CRM/Contact/Form/Contact']]
+   *  - template - use a field specific template to render this field
+   *  - required
+   *  - is_freeze (field should be frozen).
+   *
+   * @var array
+   */
+  protected $entityFields = [];
+
+  /**
+   * Metadata from getfields API call for the current entity.
+   *
+   * @var array
+   */
+  protected $metadata = [];
+
   /**
    * Get entity fields for the entity to be added to the form.
    *
diff --git a/civicrm/CRM/Core/Form/RecurringEntity.php b/civicrm/CRM/Core/Form/RecurringEntity.php
index 05435a6aa857a1639384775d32019832f13c4094..52ba505fdcb1bf5df791b422e396cb0493767e60 100644
--- a/civicrm/CRM/Core/Form/RecurringEntity.php
+++ b/civicrm/CRM/Core/Form/RecurringEntity.php
@@ -346,10 +346,10 @@ class CRM_Core_Form_RecurringEntity {
 
         //Delete repeat configuration and rebuild
         if (!empty($params['id'])) {
-          CRM_Core_BAO_ActionSchedule::del($params['id']);
+          CRM_Core_BAO_ActionSchedule::deleteRecord($params);
           unset($params['id']);
         }
-        $actionScheduleObj = CRM_Core_BAO_ActionSchedule::add($dbParams);
+        $actionScheduleObj = CRM_Core_BAO_ActionSchedule::writeRecord($dbParams);
 
         //exclude dates
         $excludeDateList = [];
@@ -364,7 +364,7 @@ class CRM_Core_Form_RecurringEntity {
             'name'
           );
           if ($optionGroupIdExists) {
-            CRM_Core_BAO_OptionGroup::del($optionGroupIdExists);
+            CRM_Core_BAO_OptionGroup::deleteRecord(['id' => $optionGroupIdExists]);
           }
           $optionGroupParams = [
             'name' => $type . '_repeat_exclude_dates_' . $actionScheduleObj->entity_value,
diff --git a/civicrm/CRM/Core/I18n/SchemaStructure.php b/civicrm/CRM/Core/I18n/SchemaStructure.php
index 1303857cc07bbdf23562c1e189e22f70e7adf541..f8bd1e27dd07f5bf49fc671a9309f1e110c09ead 100644
--- a/civicrm/CRM/Core/I18n/SchemaStructure.php
+++ b/civicrm/CRM/Core/I18n/SchemaStructure.php
@@ -117,7 +117,8 @@ class CRM_Core_I18n_SchemaStructure {
           'options' => "text COMMENT 'Store comma-delimited list of color, size, etc. options for the product.'",
         ],
         'civicrm_payment_processor' => [
-          'title' => "varchar(127) COMMENT 'Payment Processor Descriptive Name.'",
+          'title' => "varchar(255) NOT NULL COMMENT 'Name of processor when shown to CiviCRM administrators.'",
+          'frontend_title' => "varchar(255) NOT NULL COMMENT 'Name of processor when shown to users making a payment.'",
         ],
         'civicrm_membership_type' => [
           'name' => "varchar(128) NOT NULL COMMENT 'Name of Membership Type'",
@@ -490,7 +491,14 @@ class CRM_Core_I18n_SchemaStructure {
         ],
         'civicrm_payment_processor' => [
           'title' => [
+            'label' => "Backend Title",
             'type' => "Text",
+            'required' => "true",
+          ],
+          'frontend_title' => [
+            'label' => "Frontend Title",
+            'type' => "Text",
+            'required' => "true",
           ],
         ],
         'civicrm_membership_type' => [
diff --git a/civicrm/CRM/Core/I18n/SchemaStructure_5_61_alpha1.php b/civicrm/CRM/Core/I18n/SchemaStructure_5_61_alpha1.php
new file mode 100644
index 0000000000000000000000000000000000000000..1ed39b5169cdd162dc61d9d7314676e8d7f3ee2e
--- /dev/null
+++ b/civicrm/CRM/Core/I18n/SchemaStructure_5_61_alpha1.php
@@ -0,0 +1,740 @@
+<?php
+/*
+ +--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC. All rights reserved.                        |
+ |                                                                    |
+ | This work is published under the GNU AGPLv3 license with some      |
+ | permitted exceptions and without any warranty. For full license    |
+ | and copyright information, see https://civicrm.org/licensing       |
+ +--------------------------------------------------------------------+
+ */
+
+/**
+ *
+ * @package CRM
+ * @copyright CiviCRM LLC https://civicrm.org/licensing
+ *
+ * Generated from schema_structure.tpl
+ * DO NOT EDIT.  Generated by CRM_Core_CodeGen
+ */
+class CRM_Core_I18n_SchemaStructure_5_61_alpha1 {
+
+  /**
+   * Get translatable columns.
+   *
+   * @return array
+   *   A table-indexed array of translatable columns.
+   */
+  public static function &columns() {
+    static $result = NULL;
+    if (!$result) {
+      $result = [
+        'civicrm_location_type' => [
+          'display_name' => "varchar(64) COMMENT 'Location Type Display Name.'",
+        ],
+        'civicrm_option_group' => [
+          'title' => "varchar(255) COMMENT 'Option Group title.'",
+          'description' => "text COMMENT 'Option group description.'",
+        ],
+        'civicrm_relationship_type' => [
+          'label_a_b' => "varchar(64) COMMENT 'label for relationship of contact_a to contact_b.'",
+          'label_b_a' => "varchar(64) COMMENT 'Optional label for relationship of contact_b to contact_a.'",
+          'description' => "varchar(255) COMMENT 'Optional verbose description of the relationship type.'",
+        ],
+        'civicrm_contact_type' => [
+          'label' => "varchar(64) COMMENT 'localized Name of Contact Type.'",
+          'description' => "text COMMENT 'localized Optional verbose description of the type.'",
+        ],
+        'civicrm_batch' => [
+          'title' => "varchar(255) COMMENT 'Friendly Name.'",
+          'description' => "text COMMENT 'Description of this batch set.'",
+        ],
+        'civicrm_premiums' => [
+          'premiums_intro_title' => "varchar(255) COMMENT 'Title for Premiums section.'",
+          'premiums_intro_text' => "text COMMENT 'Displayed in <div> at top of Premiums section of page. Text and HTML allowed.'",
+          'premiums_nothankyou_label' => "varchar(255) COMMENT 'Label displayed for No Thank-you option in premiums block (e.g. No thank you)'",
+        ],
+        'civicrm_membership_status' => [
+          'label' => "varchar(128) COMMENT 'Label for Membership Status'",
+        ],
+        'civicrm_survey' => [
+          'title' => "varchar(255) NOT NULL COMMENT 'Title of the Survey.'",
+          'instructions' => "text COMMENT 'Script instructions for volunteers to use for the survey.'",
+          'thankyou_title' => "varchar(255) COMMENT 'Title for Thank-you page (header title tag, and display at the top of the page).'",
+          'thankyou_text' => "text COMMENT 'text and html allowed. displayed above result on success page'",
+        ],
+        'civicrm_participant_status_type' => [
+          'label' => "varchar(255) COMMENT 'localized label for display of this status type'",
+        ],
+        'civicrm_case_type' => [
+          'title' => "varchar(64) NOT NULL COMMENT 'Natural language name for Case Type'",
+          'description' => "varchar(255) COMMENT 'Description of the Case Type'",
+        ],
+        'civicrm_tell_friend' => [
+          'title' => "varchar(255)",
+          'intro' => "text COMMENT 'Introductory message to contributor or participant displayed on the Tell a Friend form.'",
+          'suggested_message' => "text COMMENT 'Suggested message to friends, provided as default on the Tell A Friend form.'",
+          'thankyou_title' => "varchar(255) COMMENT 'Text for Tell a Friend thank you page header and HTML title.'",
+          'thankyou_text' => "text COMMENT 'Thank you message displayed on success page.'",
+        ],
+        'civicrm_custom_group' => [
+          'title' => "varchar(64) NOT NULL COMMENT 'Friendly Name.'",
+          'help_pre' => "text COMMENT 'Description and/or help text to display before fields in form.'",
+          'help_post' => "text COMMENT 'Description and/or help text to display after fields in form.'",
+        ],
+        'civicrm_custom_field' => [
+          'label' => "varchar(255) NOT NULL COMMENT 'Text for form field label (also friendly name for administering this custom property).'",
+          'help_pre' => "text COMMENT 'Description and/or help text to display before this field.'",
+          'help_post' => "text COMMENT 'Description and/or help text to display after this field.'",
+        ],
+        'civicrm_option_value' => [
+          'label' => "varchar(512) NOT NULL COMMENT 'Option string as displayed to users - e.g. the label in an HTML OPTION tag.'",
+          'description' => "text COMMENT 'Optional description.'",
+        ],
+        'civicrm_group' => [
+          'title' => "varchar(255) COMMENT 'Name of Group.'",
+          'frontend_title' => "varchar(255) DEFAULT NULL COMMENT 'Alternative public title for this Group.'",
+          'frontend_description' => "text DEFAULT NULL COMMENT 'Alternative public description of the group.'",
+        ],
+        'civicrm_contribution_page' => [
+          'title' => "varchar(255) COMMENT 'Contribution Page title. For top of page display'",
+          'intro_text' => "text COMMENT 'Text and html allowed. Displayed below title.'",
+          'pay_later_text' => "text COMMENT 'The text displayed to the user in the main form'",
+          'pay_later_receipt' => "text COMMENT 'The receipt sent to the user instead of the normal receipt text'",
+          'initial_amount_label' => "varchar(255) COMMENT 'Initial amount label for partial payment'",
+          'initial_amount_help_text' => "text COMMENT 'Initial amount help text for partial payment'",
+          'thankyou_title' => "varchar(255) COMMENT 'Title for Thank-you page (header title tag, and display at the top of the page).'",
+          'thankyou_text' => "text COMMENT 'text and html allowed. displayed above result on success page'",
+          'thankyou_footer' => "text COMMENT 'Text and html allowed. displayed at the bottom of the success page. Common usage is to include link(s) to other pages such as tell-a-friend, etc.'",
+          'receipt_from_name' => "varchar(255) COMMENT 'FROM email name used for receipts generated by contributions to this contribution page.'",
+          'receipt_text' => "text COMMENT 'text to include above standard receipt info on receipt email. emails are text-only, so do not allow html for now'",
+          'footer_text' => "text COMMENT 'Text and html allowed. Displayed at the bottom of the first page of the contribution wizard.'",
+          'frontend_title' => "varchar(255) DEFAULT NULL COMMENT 'Contribution Page Public title'",
+        ],
+        'civicrm_product' => [
+          'name' => "varchar(255) NOT NULL COMMENT 'Required product/premium name'",
+          'description' => "text COMMENT 'Optional description of the product/premium.'",
+          'options' => "text COMMENT 'Store comma-delimited list of color, size, etc. options for the product.'",
+        ],
+        'civicrm_payment_processor' => [
+          'title' => "varchar(255) NOT NULL COMMENT 'Name of processor when shown to CiviCRM administrators.'",
+          'frontend_title' => "varchar(255) NOT NULL COMMENT 'Name of processor when shown to users making a payment.'",
+        ],
+        'civicrm_membership_type' => [
+          'name' => "varchar(128) NOT NULL COMMENT 'Name of Membership Type'",
+          'description' => "varchar(255) COMMENT 'Description of Membership Type'",
+        ],
+        'civicrm_membership_block' => [
+          'new_title' => "varchar(255) COMMENT 'Title to display at top of block'",
+          'new_text' => "text COMMENT 'Text to display below title'",
+          'renewal_title' => "varchar(255) COMMENT 'Title for renewal'",
+          'renewal_text' => "text COMMENT 'Text to display for member renewal'",
+        ],
+        'civicrm_price_set' => [
+          'title' => "varchar(255) NOT NULL COMMENT 'Displayed title for the Price Set.'",
+          'help_pre' => "text COMMENT 'Description and/or help text to display before fields in form.'",
+          'help_post' => "text COMMENT 'Description and/or help text to display after fields in form.'",
+        ],
+        'civicrm_dashboard' => [
+          'label' => "varchar(255) COMMENT 'dashlet title'",
+        ],
+        'civicrm_uf_group' => [
+          'title' => "varchar(64) NOT NULL COMMENT 'Form title.'",
+          'frontend_title' => "varchar(64) COMMENT 'Profile Form Public title'",
+          'help_pre' => "text COMMENT 'Description and/or help text to display before fields in form.'",
+          'help_post' => "text COMMENT 'Description and/or help text to display after fields in form.'",
+          'cancel_button_text' => "varchar(64) DEFAULT NULL COMMENT 'Custom Text to display on the Cancel button when used in create or edit mode'",
+          'submit_button_text' => "varchar(64) DEFAULT NULL COMMENT 'Custom Text to display on the submit button on profile edit/create screens'",
+        ],
+        'civicrm_uf_field' => [
+          'help_post' => "text COMMENT 'Description and/or help text to display after this field.'",
+          'help_pre' => "text COMMENT 'Description and/or help text to display before this field.'",
+          'label' => "varchar(255) NOT NULL COMMENT 'To save label for fields.'",
+        ],
+        'civicrm_price_field' => [
+          'label' => "varchar(255) NOT NULL COMMENT 'Text for form field label (also friendly name for administering this field).'",
+          'help_pre' => "text COMMENT 'Description and/or help text to display before this field.'",
+          'help_post' => "text COMMENT 'Description and/or help text to display after this field.'",
+        ],
+        'civicrm_price_field_value' => [
+          'label' => "varchar(255) DEFAULT NULL COMMENT 'Price field option label'",
+          'description' => "text DEFAULT NULL COMMENT 'Price field option description.'",
+          'help_pre' => "text DEFAULT NULL COMMENT 'Price field option pre help text.'",
+          'help_post' => "text DEFAULT NULL COMMENT 'Price field option post field help.'",
+        ],
+        'civicrm_pcp_block' => [
+          'link_text' => "varchar(255) DEFAULT NULL COMMENT 'Link text for PCP.'",
+        ],
+        'civicrm_event' => [
+          'title' => "varchar(255) COMMENT 'Event Title (e.g. Fall Fundraiser Dinner)'",
+          'summary' => "text COMMENT 'Brief summary of event. Text and html allowed. Displayed on Event Registration form and can be used on other CMS pages which need an event summary.'",
+          'description' => "text COMMENT 'Full description of event. Text and html allowed. Displayed on built-in Event Information screens.'",
+          'registration_link_text' => "varchar(255) COMMENT 'Text for link to Event Registration form which is displayed on Event Information screen when is_online_registration is true.'",
+          'event_full_text' => "text COMMENT 'Message to display on Event Information page and INSTEAD OF Event Registration form if maximum participants are signed up. Can include email address/info about getting on a waiting list, etc. Text and html allowed.'",
+          'fee_label' => "varchar(255)",
+          'intro_text' => "text COMMENT 'Introductory message for Event Registration page. Text and html allowed. Displayed at the top of Event Registration form.'",
+          'footer_text' => "text COMMENT 'Footer message for Event Registration page. Text and html allowed. Displayed at the bottom of Event Registration form.'",
+          'confirm_title' => "varchar(255) DEFAULT NULL COMMENT 'Title for Confirmation page.'",
+          'confirm_text' => "text COMMENT 'Introductory message for Event Registration page. Text and html allowed. Displayed at the top of Event Registration form.'",
+          'confirm_footer_text' => "text COMMENT 'Footer message for Event Registration page. Text and html allowed. Displayed at the bottom of Event Registration form.'",
+          'confirm_email_text' => "text COMMENT 'text to include above standard event info on confirmation email. emails are text-only, so do not allow html for now'",
+          'confirm_from_name' => "varchar(255) COMMENT 'FROM email name used for confirmation emails.'",
+          'thankyou_title' => "varchar(255) DEFAULT NULL COMMENT 'Title for ThankYou page.'",
+          'thankyou_text' => "text COMMENT 'ThankYou Text.'",
+          'thankyou_footer_text' => "text COMMENT 'Footer message.'",
+          'pay_later_text' => "text COMMENT 'The text displayed to the user in the main form'",
+          'pay_later_receipt' => "text COMMENT 'The receipt sent to the user instead of the normal receipt text'",
+          'initial_amount_label' => "varchar(255) COMMENT 'Initial amount label for partial payment'",
+          'initial_amount_help_text' => "text COMMENT 'Initial amount help text for partial payment'",
+          'waitlist_text' => "text COMMENT 'Text to display when the event is full, but participants can signup for a waitlist.'",
+          'approval_req_text' => "text COMMENT 'Text to display when the approval is required to complete registration for an event.'",
+          'template_title' => "varchar(255) COMMENT 'Event Template Title'",
+        ],
+      ];
+    }
+    return $result;
+  }
+
+  /**
+   * Get a table indexed array of the indices for translatable fields.
+   *
+   * @return array
+   *   Indices for translatable fields.
+   */
+  public static function &indices() {
+    static $result = NULL;
+    if (!$result) {
+      $result = [
+        'civicrm_custom_group' => [
+          'UI_title_extends' => [
+            'name' => 'UI_title_extends',
+            'field' => [
+              'title',
+              'extends',
+            ],
+            'unique' => 1,
+          ],
+        ],
+        'civicrm_custom_field' => [
+          'UI_label_custom_group_id' => [
+            'name' => 'UI_label_custom_group_id',
+            'field' => [
+              'label',
+              'custom_group_id',
+            ],
+            'unique' => 1,
+          ],
+        ],
+        'civicrm_group' => [
+          'UI_title' => [
+            'name' => 'UI_title',
+            'field' => [
+              'title',
+            ],
+            'unique' => 1,
+          ],
+        ],
+      ];
+    }
+    return $result;
+  }
+
+  /**
+   * Get tables with translatable fields.
+   *
+   * @return array
+   *   Array of names of tables with fields that can be translated.
+   */
+  public static function &tables() {
+    static $result = NULL;
+    if (!$result) {
+      $result = array_keys(self::columns());
+    }
+    return $result;
+  }
+
+  /**
+   * Get a list of widgets for editing translatable fields.
+   *
+   * @return array
+   *   Array of the widgets for editing translatable fields.
+   */
+  public static function &widgets() {
+    static $result = NULL;
+    if (!$result) {
+      $result = [
+        'civicrm_location_type' => [
+          'display_name' => [
+            'type' => "Text",
+          ],
+        ],
+        'civicrm_option_group' => [
+          'title' => [
+            'type' => "Text",
+          ],
+          'description' => [
+            'type' => "Text",
+          ],
+        ],
+        'civicrm_relationship_type' => [
+          'label_a_b' => [
+            'type' => "Text",
+          ],
+          'label_b_a' => [
+            'type' => "Text",
+          ],
+          'description' => [
+            'type' => "Text",
+          ],
+        ],
+        'civicrm_contact_type' => [
+          'label' => [
+            'label' => "Label",
+            'type' => "Text",
+          ],
+          'description' => [
+            'type' => "TextArea",
+            'rows' => "2",
+            'cols' => "60",
+          ],
+        ],
+        'civicrm_batch' => [
+          'title' => [
+            'type' => "Text",
+          ],
+          'description' => [
+            'type' => "TextArea",
+            'rows' => "4",
+            'cols' => "80",
+          ],
+        ],
+        'civicrm_premiums' => [
+          'premiums_intro_title' => [
+            'type' => "Text",
+          ],
+          'premiums_intro_text' => [
+            'type' => "Text",
+          ],
+          'premiums_nothankyou_label' => [
+            'type' => "Text",
+          ],
+        ],
+        'civicrm_membership_status' => [
+          'label' => [
+            'type' => "Text",
+          ],
+        ],
+        'civicrm_survey' => [
+          'title' => [
+            'type' => "Text",
+            'required' => "true",
+          ],
+          'instructions' => [
+            'type' => "TextArea",
+            'rows' => "20",
+            'cols' => "80",
+          ],
+          'thankyou_title' => [
+            'type' => "Text",
+          ],
+          'thankyou_text' => [
+            'type' => "TextArea",
+            'rows' => "8",
+            'cols' => "60",
+          ],
+        ],
+        'civicrm_participant_status_type' => [
+          'label' => [
+            'type' => "Text",
+          ],
+        ],
+        'civicrm_case_type' => [
+          'title' => [
+            'type' => "Text",
+            'required' => "true",
+          ],
+          'description' => [
+            'type' => "Text",
+          ],
+        ],
+        'civicrm_tell_friend' => [
+          'title' => [
+            'type' => "Text",
+          ],
+          'intro' => [
+            'type' => "Text",
+          ],
+          'suggested_message' => [
+            'type' => "Text",
+          ],
+          'thankyou_title' => [
+            'type' => "Text",
+          ],
+          'thankyou_text' => [
+            'type' => "Text",
+          ],
+        ],
+        'civicrm_custom_group' => [
+          'title' => [
+            'type' => "Text",
+            'required' => "true",
+          ],
+          'help_pre' => [
+            'type' => "TextArea",
+            'rows' => "4",
+            'cols' => "80",
+          ],
+          'help_post' => [
+            'type' => "TextArea",
+            'rows' => "4",
+            'cols' => "80",
+          ],
+        ],
+        'civicrm_custom_field' => [
+          'label' => [
+            'type' => "Text",
+            'required' => "true",
+          ],
+          'help_pre' => [
+            'type' => "Text",
+          ],
+          'help_post' => [
+            'type' => "Text",
+          ],
+        ],
+        'civicrm_option_value' => [
+          'label' => [
+            'type' => "Text",
+            'required' => "true",
+          ],
+          'description' => [
+            'type' => "TextArea",
+            'rows' => "8",
+            'cols' => "60",
+          ],
+        ],
+        'civicrm_group' => [
+          'title' => [
+            'type' => "Text",
+          ],
+          'frontend_title' => [
+            'type' => "Text",
+          ],
+          'frontend_description' => [
+            'type' => "TextArea",
+            'rows' => "2",
+            'cols' => "60",
+          ],
+        ],
+        'civicrm_contribution_page' => [
+          'title' => [
+            'type' => "Text",
+          ],
+          'intro_text' => [
+            'type' => "RichTextEditor",
+            'rows' => "6",
+            'cols' => "50",
+          ],
+          'pay_later_text' => [
+            'type' => "Text",
+          ],
+          'pay_later_receipt' => [
+            'type' => "Text",
+          ],
+          'initial_amount_label' => [
+            'label' => "Initial Amount Label",
+          ],
+          'initial_amount_help_text' => [
+            'label' => "Initial Amount Help Text",
+          ],
+          'thankyou_title' => [
+            'type' => "Text",
+          ],
+          'thankyou_text' => [
+            'type' => "RichTextEditor",
+            'rows' => "8",
+            'cols' => "60",
+          ],
+          'thankyou_footer' => [
+            'type' => "RichTextEditor",
+            'rows' => "8",
+            'cols' => "60",
+          ],
+          'receipt_from_name' => [
+            'type' => "Text",
+          ],
+          'receipt_text' => [
+            'type' => "TextArea",
+            'rows' => "6",
+            'cols' => "50",
+          ],
+          'footer_text' => [
+            'type' => "RichTextEditor",
+            'rows' => "6",
+            'cols' => "50",
+          ],
+          'frontend_title' => [
+            'type' => "Text",
+          ],
+        ],
+        'civicrm_product' => [
+          'name' => [
+            'type' => "Text",
+            'required' => "true",
+          ],
+          'description' => [
+            'type' => "Text",
+          ],
+          'options' => [
+            'type' => "Text",
+          ],
+        ],
+        'civicrm_payment_processor' => [
+          'title' => [
+            'label' => "Backend Title",
+            'type' => "Text",
+            'required' => "true",
+          ],
+          'frontend_title' => [
+            'label' => "Frontend Title",
+            'type' => "Text",
+            'required' => "true",
+          ],
+        ],
+        'civicrm_membership_type' => [
+          'name' => [
+            'type' => "Text",
+            'label' => "Name",
+            'required' => "true",
+          ],
+          'description' => [
+            'type' => "TextArea",
+            'rows' => "6",
+            'cols' => "50",
+            'label' => "Description",
+          ],
+        ],
+        'civicrm_membership_block' => [
+          'new_title' => [
+            'type' => "Text",
+          ],
+          'new_text' => [
+            'type' => "Text",
+          ],
+          'renewal_title' => [
+            'type' => "Text",
+          ],
+          'renewal_text' => [
+            'type' => "Text",
+          ],
+        ],
+        'civicrm_price_set' => [
+          'title' => [
+            'type' => "Text",
+            'required' => "true",
+          ],
+          'help_pre' => [
+            'type' => "TextArea",
+            'rows' => "4",
+            'cols' => "80",
+          ],
+          'help_post' => [
+            'type' => "TextArea",
+            'rows' => "4",
+            'cols' => "80",
+          ],
+        ],
+        'civicrm_dashboard' => [
+          'label' => [
+            'type' => "Text",
+          ],
+        ],
+        'civicrm_uf_group' => [
+          'title' => [
+            'type' => "Text",
+            'required' => "true",
+          ],
+          'frontend_title' => [
+            'type' => "Text",
+          ],
+          'help_pre' => [
+            'type' => "TextArea",
+            'rows' => "4",
+            'cols' => "80",
+            'label' => "Pre Help",
+          ],
+          'help_post' => [
+            'type' => "TextArea",
+            'rows' => "4",
+            'cols' => "80",
+          ],
+          'cancel_button_text' => [
+            'type' => "Text",
+          ],
+          'submit_button_text' => [
+            'type' => "Text",
+          ],
+        ],
+        'civicrm_uf_field' => [
+          'help_post' => [
+            'type' => "Text",
+          ],
+          'help_pre' => [
+            'type' => "Text",
+          ],
+          'label' => [
+            'type' => "Text",
+            'required' => "true",
+          ],
+        ],
+        'civicrm_price_field' => [
+          'label' => [
+            'type' => "Text",
+            'required' => "true",
+          ],
+          'help_pre' => [
+            'type' => "TextArea",
+            'rows' => "4",
+            'cols' => "80",
+          ],
+          'help_post' => [
+            'type' => "TextArea",
+            'rows' => "4",
+            'cols' => "80",
+          ],
+        ],
+        'civicrm_price_field_value' => [
+          'label' => [
+            'type' => "Text",
+          ],
+          'description' => [
+            'type' => "TextArea",
+            'rows' => "2",
+            'cols' => "60",
+            'label' => "Description",
+          ],
+          'help_pre' => [
+            'type' => "TextArea",
+            'rows' => "2",
+            'cols' => "60",
+            'label' => "Pre Help",
+          ],
+          'help_post' => [
+            'type' => "TextArea",
+            'rows' => "2",
+            'cols' => "60",
+            'label' => "Post Help",
+          ],
+        ],
+        'civicrm_pcp_block' => [
+          'link_text' => [
+            'type' => "Text",
+          ],
+        ],
+        'civicrm_event' => [
+          'title' => [
+            'label' => "Title",
+            'type' => "Text",
+          ],
+          'summary' => [
+            'label' => "Summary",
+            'type' => "TextArea",
+            'rows' => "4",
+            'cols' => "60",
+          ],
+          'description' => [
+            'label' => "Description",
+            'type' => "RichTextEditor",
+            'rows' => "8",
+            'cols' => "60",
+          ],
+          'registration_link_text' => [
+            'type' => "Text",
+          ],
+          'event_full_text' => [
+            'label' => "Event Full Message",
+            'type' => "TextArea",
+            'rows' => "4",
+            'cols' => "60",
+          ],
+          'fee_label' => [
+            'type' => "Text",
+          ],
+          'intro_text' => [
+            'type' => "RichTextEditor",
+            'rows' => "6",
+            'cols' => "50",
+          ],
+          'footer_text' => [
+            'type' => "RichTextEditor",
+            'rows' => "6",
+            'cols' => "50",
+          ],
+          'confirm_title' => [
+            'type' => "Text",
+          ],
+          'confirm_text' => [
+            'type' => "RichTextEditor",
+            'rows' => "6",
+            'cols' => "50",
+          ],
+          'confirm_footer_text' => [
+            'type' => "RichTextEditor",
+            'rows' => "6",
+            'cols' => "50",
+          ],
+          'confirm_email_text' => [
+            'type' => "TextArea",
+            'rows' => "4",
+            'cols' => "50",
+          ],
+          'confirm_from_name' => [
+            'type' => "Text",
+          ],
+          'thankyou_title' => [
+            'type' => "Text",
+          ],
+          'thankyou_text' => [
+            'type' => "RichTextEditor",
+            'rows' => "6",
+            'cols' => "50",
+          ],
+          'thankyou_footer_text' => [
+            'type' => "RichTextEditor",
+            'rows' => "6",
+            'cols' => "50",
+          ],
+          'pay_later_text' => [
+            'type' => "RichTextEditor",
+          ],
+          'pay_later_receipt' => [
+            'type' => "Text",
+          ],
+          'initial_amount_label' => [
+            'type' => "Text",
+          ],
+          'initial_amount_help_text' => [
+            'type' => "Text",
+          ],
+          'waitlist_text' => [
+            'type' => "TextArea",
+            'rows' => "4",
+            'cols' => "60",
+            'label' => "Waitlist Text",
+          ],
+          'approval_req_text' => [
+            'type' => "TextArea",
+            'rows' => "4",
+            'cols' => "60",
+            'label' => "Approval Required Text",
+          ],
+          'template_title' => [
+            'type' => "Text",
+          ],
+        ],
+      ];
+    }
+    return $result;
+  }
+
+}
diff --git a/civicrm/CRM/Core/Lock.php b/civicrm/CRM/Core/Lock.php
index 67adc99c022363231e74c0f0cfea07e1c371dfcd..f72c655d59ff88a5cfc0afef3603539392e4292f 100644
--- a/civicrm/CRM/Core/Lock.php
+++ b/civicrm/CRM/Core/Lock.php
@@ -212,7 +212,17 @@ class CRM_Core_Lock implements \Civi\Core\Lock\LockInterface {
 
       $query = "SELECT RELEASE_LOCK( %1 )";
       $params = [1 => [$this->_id, 'String']];
-      return CRM_Core_DAO::singleValueQuery($query, $params);
+      if (CRM_Core_Transaction::isActive()) {
+        CRM_Core_Transaction::addCallback(CRM_Core_Transaction::PHASE_POST_COMMIT, function ($query, $params) {
+          return CRM_Core_DAO::singleValueQuery($query, $params);
+        }, [$query, $params]);
+        CRM_Core_Transaction::addCallback(CRM_Core_Transaction::PHASE_POST_ROLLBACK, function ($query, $params) {
+          return CRM_Core_DAO::singleValueQuery($query, $params);
+        }, [$query, $params]);
+      }
+      else {
+        return CRM_Core_DAO::singleValueQuery($query, $params);
+      }
     }
   }
 
diff --git a/civicrm/CRM/Core/Page.php b/civicrm/CRM/Core/Page.php
index 0507bd2dc153408d921706b4b4fff39356262751..36c93702e34faf12cdf3869916dd4c7b39861c9f 100644
--- a/civicrm/CRM/Core/Page.php
+++ b/civicrm/CRM/Core/Page.php
@@ -505,7 +505,7 @@ class CRM_Core_Page {
 
     $standardAttribs = ['aria-hidden' => 'true'];
     if ($text === NULL || $text === '') {
-      $title = $sr = '';
+      $sr = '';
     }
     else {
       $standardAttribs['title'] = $text;
diff --git a/civicrm/CRM/Core/Payment.php b/civicrm/CRM/Core/Payment.php
index 10afed4e59dcc2543c65413a3762ac5ecd0495b1..b8f80dd8a95f0ffd51f6aa77875f75e53cc4a1af 100644
--- a/civicrm/CRM/Core/Payment.php
+++ b/civicrm/CRM/Core/Payment.php
@@ -1511,7 +1511,7 @@ abstract class CRM_Core_Payment {
    * @return string
    *   the error message if any
    */
-  abstract protected function checkConfig();
+  abstract public function checkConfig();
 
   /**
    * Redirect for paypal.
diff --git a/civicrm/CRM/Core/Payment/PayPalIPN.php b/civicrm/CRM/Core/Payment/PayPalIPN.php
index 6dd2acae1b084dc18045b6972195f9e2349022dd..6b1c86aaff380559e58cd908dfe77ddfb8a3b6e9 100644
--- a/civicrm/CRM/Core/Payment/PayPalIPN.php
+++ b/civicrm/CRM/Core/Payment/PayPalIPN.php
@@ -445,7 +445,7 @@ class CRM_Core_Payment_PayPalIPN extends CRM_Core_Payment_BaseIPN {
     if (!$contribution->find(TRUE)) {
       throw new CRM_Core_Exception('Failure: Could not find contribution record for ' . (int) $contribution->id, NULL, ['context' => "Could not find contribution record: {$contribution->id} in IPN request: "]);
     }
-    if ($contribution->contact_id !== $this->getContactID()) {
+    if ((int) $contribution->contact_id !== $this->getContactID()) {
       CRM_Core_Error::debug_log_message("Contact ID in IPN not found but contact_id found in contribution.");
     }
     return $contribution;
diff --git a/civicrm/CRM/Core/Payment/PayPalProIPN.php b/civicrm/CRM/Core/Payment/PayPalProIPN.php
index 6f9fdeb59b827aced6e32caf241c213067ef02f9..5b039d3b41360f47031426c631fbe5a859832ae0 100644
--- a/civicrm/CRM/Core/Payment/PayPalProIPN.php
+++ b/civicrm/CRM/Core/Payment/PayPalProIPN.php
@@ -197,22 +197,20 @@ class CRM_Core_Payment_PayPalProIPN extends CRM_Core_Payment_BaseIPN {
    *   Data type.
    *   - String
    *   - Integer
-   * @param string $location
-   *   Deprecated.
    * @param bool $abort
    *   Abort if empty.
    *
    * @throws CRM_Core_Exception
    * @return mixed
    */
-  public function retrieve($name, $type, $location = 'POST', $abort = TRUE) {
+  public function retrieve($name, $type, $abort = TRUE) {
     $value = CRM_Utils_Type::validate(
       CRM_Utils_Array::value($name, $this->_inputParameters),
       $type,
       FALSE
     );
     if ($abort && $value === NULL) {
-      throw new CRM_Core_Exception("Could not find an entry for $name in $location");
+      throw new CRM_Core_Exception("Could not find an entry for $name");
     }
     return $value;
   }
@@ -465,15 +463,15 @@ class CRM_Core_Payment_PayPalProIPN extends CRM_Core_Payment_BaseIPN {
   public function getInput(&$input) {
     $billingID = CRM_Core_BAO_LocationType::getBilling();
 
-    $input['txnType'] = self::retrieve('txn_type', 'String', 'POST', FALSE);
-    $input['paymentStatus'] = self::retrieve('payment_status', 'String', 'POST', FALSE);
+    $input['txnType'] = $this->retrieve('txn_type', 'String', FALSE);
+    $input['paymentStatus'] = $this->retrieve('payment_status', 'String', FALSE);
 
-    $input['amount'] = self::retrieve('mc_gross', 'Money', 'POST', FALSE);
-    $input['reasonCode'] = self::retrieve('ReasonCode', 'String', 'POST', FALSE);
+    $input['amount'] = $this->retrieve('mc_gross', 'Money', FALSE);
+    $input['reasonCode'] = $this->retrieve('ReasonCode', 'String', FALSE);
 
     $lookup = [
-      "first_name" => 'first_name',
-      "last_name" => 'last_name',
+      'first_name' => 'first_name',
+      'last_name' => 'last_name',
       "street_address-{$billingID}" => 'address_street',
       "city-{$billingID}" => 'address_city',
       "state-{$billingID}" => 'address_state',
@@ -481,15 +479,15 @@ class CRM_Core_Payment_PayPalProIPN extends CRM_Core_Payment_BaseIPN {
       "country-{$billingID}" => 'address_country_code',
     ];
     foreach ($lookup as $name => $paypalName) {
-      $value = self::retrieve($paypalName, 'String', 'POST', FALSE);
+      $value = $this->retrieve($paypalName, 'String', FALSE);
       $input[$name] = $value ? $value : NULL;
     }
 
-    $input['is_test'] = self::retrieve('test_ipn', 'Integer', 'POST', FALSE);
-    $input['fee_amount'] = self::retrieve('mc_fee', 'Money', 'POST', FALSE);
-    $input['net_amount'] = self::retrieve('settle_amount', 'Money', 'POST', FALSE);
-    $input['trxn_id'] = self::retrieve('txn_id', 'String', 'POST', FALSE);
-    $input['payment_date'] = $input['receive_date'] = self::retrieve('payment_date', 'String', 'POST', FALSE);
+    $input['is_test'] = $this->retrieve('test_ipn', 'Integer', FALSE);
+    $input['fee_amount'] = $this->retrieve('mc_fee', 'Money', FALSE);
+    $input['net_amount'] = $this->retrieve('settle_amount', 'Money', FALSE);
+    $input['trxn_id'] = $this->retrieve('txn_id', 'String', FALSE);
+    $input['payment_date'] = $input['receive_date'] = $this->retrieve('payment_date', 'String', FALSE);
     $input['total_amount'] = $input['amount'];
   }
 
diff --git a/civicrm/CRM/Core/Payment/ProcessorForm.php b/civicrm/CRM/Core/Payment/ProcessorForm.php
index a4062aef44b042db5c227928e5aa075d36135f57..e62763f7d3e9ee55748b081943b60efd7a0c0ad1 100644
--- a/civicrm/CRM/Core/Payment/ProcessorForm.php
+++ b/civicrm/CRM/Core/Payment/ProcessorForm.php
@@ -62,6 +62,9 @@ class CRM_Core_Payment_ProcessorForm {
 
     $form->assign('currency', $form->getCurrency());
 
+    $form->assign('paymentAgreementTitle', $form->_paymentProcessor['object']->getText('agreementTitle', []));
+    $form->assign('paymentAgreementText', $form->_paymentProcessor['object']->getText('agreementText', []));
+
     // also set cancel subscription url
     if (!empty($form->_paymentProcessor['is_recur']) && !empty($form->_values['is_recur'])) {
       $form->_values['cancelSubscriptionUrl'] = $form->_paymentObject->subscriptionURL(NULL, NULL, 'cancel');
diff --git a/civicrm/CRM/Core/SelectValues.php b/civicrm/CRM/Core/SelectValues.php
index 43383eda42cc247b609dc76a5d2a0927c68ed5f6..3b7c2427817efa02693e93df16e8d9b316385724 100644
--- a/civicrm/CRM/Core/SelectValues.php
+++ b/civicrm/CRM/Core/SelectValues.php
@@ -156,9 +156,9 @@ class CRM_Core_SelectValues {
    */
   public static function eventDate() {
     return [
-      'start_date' => ts('start date'),
-      'end_date' => ts('end date'),
-      'join_date' => ts('member since'),
+      'start_date' => ts('Membership Start Date'),
+      'end_date' => ts('Membership Expiration Date'),
+      'join_date' => ts('Member Since'),
     ];
   }
 
diff --git a/civicrm/CRM/Core/Smarty/plugins/modifier.crmMoney.php b/civicrm/CRM/Core/Smarty/plugins/modifier.crmMoney.php
index 4a764b9669baf62df3bd23987b75fdc02500a245..9d49c143c2dee6aac30e55cc9771b9b5dc2aefc5 100644
--- a/civicrm/CRM/Core/Smarty/plugins/modifier.crmMoney.php
+++ b/civicrm/CRM/Core/Smarty/plugins/modifier.crmMoney.php
@@ -22,13 +22,15 @@
  *   The monetary amount up for display.
  * @param string|null $currency
  *   The (optional) currency.
+ * @param string|null $locale
+ *   The (optional) locale.
  *
  * @return string
  *   formatted monetary amount
  */
-function smarty_modifier_crmMoney($amount, ?string $currency = NULL): string {
+function smarty_modifier_crmMoney($amount, ?string $currency = NULL, ?string $locale = NULL): string {
   try {
-    return Civi::format()->money($amount, $currency);
+    return Civi::format()->money($amount, $currency, $locale);
   }
   catch (CRM_Core_Exception $e) {
     // @todo escalate this to a deprecation notice. It turns out to be depressingly
diff --git a/civicrm/CRM/Core/xml/Menu/Group.xml b/civicrm/CRM/Core/xml/Menu/Group.xml
index 1e5c262ab5185b0c9a49344f831a75a9f891aa70..4bbc5d1c6737973d5746ab9431025c13398e717d 100644
--- a/civicrm/CRM/Core/xml/Menu/Group.xml
+++ b/civicrm/CRM/Core/xml/Menu/Group.xml
@@ -23,6 +23,12 @@
      <access_arguments>edit groups</access_arguments>
      <page_callback>CRM_Group_Controller</page_callback>
   </item>
+  <item>
+    <path>civicrm/group/edit</path>
+    <title>Edit Group</title>
+    <access_arguments>edit groups</access_arguments>
+    <page_callback>CRM_Group_Form_Edit</page_callback>
+  </item>
   <item>
      <path>civicrm/ajax/grouplist</path>
      <page_callback>CRM_Group_Page_AJAX::getGroupList</page_callback>
diff --git a/civicrm/CRM/Core/xml/Menu/Import.xml b/civicrm/CRM/Core/xml/Menu/Import.xml
index a4474414bbb9a5ddbe199673428c6d099686bd8f..da0202ec740baffee905d8efbdf9c9eecb85db1f 100644
--- a/civicrm/CRM/Core/xml/Menu/Import.xml
+++ b/civicrm/CRM/Core/xml/Menu/Import.xml
@@ -39,6 +39,14 @@
      <page_callback>CRM_Activity_Import_Controller</page_callback>
      <weight>420</weight>
   </item>
+  <item>
+    <path>civicrm/import/contribution</path>
+    <title>Import Contributions</title>
+    <page_callback>CRM_Contribute_Import_Controller</page_callback>
+    <access_arguments>access CiviContribute,edit contributions</access_arguments>
+    <page_type>1</page_type>
+    <weight>520</weight>
+  </item>
   <item>
      <path>civicrm/import/custom</path>
      <path_arguments>id=%%id%%</path_arguments>
diff --git a/civicrm/CRM/Custom/Import/Form/DataSource.php b/civicrm/CRM/Custom/Import/Form/DataSource.php
index 90f5174e42e993b608d96437ab0484638b1b6344..b50b382f2055a8035fb0e21c8a55e2b4b5a509c2 100644
--- a/civicrm/CRM/Custom/Import/Form/DataSource.php
+++ b/civicrm/CRM/Custom/Import/Form/DataSource.php
@@ -95,17 +95,11 @@ class CRM_Custom_Import_Form_DataSource extends CRM_Import_Form_DataSource {
    * @throws \CRM_Core_Exception
    */
   public function setDefaultValues(): array {
-    parent::setDefaultValues();
-    $defaults['contactType'] = 'Individual';
-    // Perhaps never used, but permits url passing of the group.
-    $defaults['multipleCustomData'] = CRM_Utils_Request::retrieve('id', 'Positive', $this);
-
-    $loadedMapping = $this->get('loadedMapping');
-    if ($loadedMapping) {
-      $defaults['savedMapping'] = $loadedMapping;
-    }
-
-    return $defaults;
+    return array_merge(parent::setDefaultValues(), [
+      'contactType' => 'Individual',
+      // Perhaps never used, but permits url passing of the group.
+      'multipleCustomData' => CRM_Utils_Request::retrieve('id', 'Positive', $this),
+    ]);
   }
 
   /**
diff --git a/civicrm/CRM/Custom/Import/Form/MapField.php b/civicrm/CRM/Custom/Import/Form/MapField.php
index 7a7b8726c62ab42a710aa0ff46b769ab49d9c8a3..df9e5a83a640feeaa8ad7a0d99853a3d22d9b1f5 100644
--- a/civicrm/CRM/Custom/Import/Form/MapField.php
+++ b/civicrm/CRM/Custom/Import/Form/MapField.php
@@ -5,6 +5,15 @@
  */
 class CRM_Custom_Import_Form_MapField extends CRM_Import_Form_MapField {
 
+  /**
+   * Get the name of the type to be stored in civicrm_user_job.type_id.
+   *
+   * @return string
+   */
+  public function getUserJobType(): string {
+    return 'custom_field_import';
+  }
+
   /**
    * Build the form object.
    *
diff --git a/civicrm/CRM/Custom/Import/Parser/Api.php b/civicrm/CRM/Custom/Import/Parser/Api.php
index 721113fc2eec06595314907f43b5ed0fc0ba02ff..2b2cbbcba293c867ae1460a9e8da7f856fa4b2f1 100644
--- a/civicrm/CRM/Custom/Import/Parser/Api.php
+++ b/civicrm/CRM/Custom/Import/Parser/Api.php
@@ -26,6 +26,7 @@ class CRM_Custom_Import_Parser_Api extends CRM_Import_Parser {
         'name' => 'custom_field_import',
         'label' => ts('Multiple Value Custom Field Import'),
         'entity' => 'Contact',
+        'url' => 'civicrm/import/custom',
       ],
     ];
   }
diff --git a/civicrm/CRM/Cxn/DAO/Cxn.php b/civicrm/CRM/Cxn/DAO/Cxn.php
index f73c021fbc4f140c2ffcf40976e70906337ce7f2..db5f3316b6800c55e5c369471a09f1300bc6a157 100644
--- a/civicrm/CRM/Cxn/DAO/Cxn.php
+++ b/civicrm/CRM/Cxn/DAO/Cxn.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Cxn/Cxn.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:be1b572a489e06abb0c14dcea6c68999)
+ * (GenCodeChecksum:8bca70c8807aff7f6421ddc9502e4c34)
  */
 
 /**
@@ -161,6 +161,12 @@ class CRM_Cxn_DAO_Cxn extends CRM_Core_DAO {
           'title' => ts('Connection ID'),
           'description' => ts('Connection ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_cxn.id',
           'table_name' => 'civicrm_cxn',
           'entity' => 'Cxn',
@@ -179,6 +185,12 @@ class CRM_Cxn_DAO_Cxn extends CRM_Core_DAO {
           'description' => ts('Application GUID'),
           'maxlength' => 128,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_cxn.app_guid',
           'table_name' => 'civicrm_cxn',
           'entity' => 'Cxn',
@@ -191,6 +203,12 @@ class CRM_Cxn_DAO_Cxn extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Application Metadata (JSON)'),
           'description' => ts('Application Metadata (JSON)'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_cxn.app_meta',
           'table_name' => 'civicrm_cxn',
           'entity' => 'Cxn',
@@ -205,6 +223,12 @@ class CRM_Cxn_DAO_Cxn extends CRM_Core_DAO {
           'description' => ts('Connection GUID'),
           'maxlength' => 128,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_cxn.cxn_guid',
           'table_name' => 'civicrm_cxn',
           'entity' => 'Cxn',
@@ -217,6 +241,12 @@ class CRM_Cxn_DAO_Cxn extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Secret'),
           'description' => ts('Shared secret'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_cxn.secret',
           'table_name' => 'civicrm_cxn',
           'entity' => 'Cxn',
@@ -232,6 +262,12 @@ class CRM_Cxn_DAO_Cxn extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Perm'),
           'description' => ts('Permissions approved for the service (JSON)'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_cxn.perm',
           'table_name' => 'civicrm_cxn',
           'entity' => 'Cxn',
@@ -247,6 +283,12 @@ class CRM_Cxn_DAO_Cxn extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Options'),
           'description' => ts('Options for the service (JSON)'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_cxn.options',
           'table_name' => 'civicrm_cxn',
           'entity' => 'Cxn',
@@ -264,6 +306,12 @@ class CRM_Cxn_DAO_Cxn extends CRM_Core_DAO {
           'title' => ts('Is Active'),
           'description' => ts('Is connection currently enabled?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_cxn.is_active',
           'default' => '1',
           'table_name' => 'civicrm_cxn',
@@ -282,6 +330,12 @@ class CRM_Cxn_DAO_Cxn extends CRM_Core_DAO {
           'title' => ts('Created Date'),
           'description' => ts('When was the connection was created.'),
           'required' => FALSE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_cxn.created_date',
           'default' => NULL,
           'table_name' => 'civicrm_cxn',
@@ -299,6 +353,12 @@ class CRM_Cxn_DAO_Cxn extends CRM_Core_DAO {
           'title' => ts('Modified Date'),
           'description' => ts('When the connection was created or modified.'),
           'required' => FALSE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_cxn.modified_date',
           'default' => 'CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP',
           'table_name' => 'civicrm_cxn',
@@ -317,6 +377,12 @@ class CRM_Cxn_DAO_Cxn extends CRM_Core_DAO {
           'title' => ts('Fetched Date'),
           'description' => ts('The last time the application metadata was fetched.'),
           'required' => FALSE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_cxn.fetched_date',
           'default' => NULL,
           'table_name' => 'civicrm_cxn',
diff --git a/civicrm/CRM/Dedupe/BAO/DedupeRuleGroup.php b/civicrm/CRM/Dedupe/BAO/DedupeRuleGroup.php
index 5e6f1d80b7ffa1ea1420dbf7edf7c8c3a6587fcc..b15000917cff02ebe76052629c227c3f39398b8a 100644
--- a/civicrm/CRM/Dedupe/BAO/DedupeRuleGroup.php
+++ b/civicrm/CRM/Dedupe/BAO/DedupeRuleGroup.php
@@ -88,7 +88,7 @@ class CRM_Dedupe_BAO_DedupeRuleGroup extends CRM_Dedupe_DAO_DedupeRuleGroup {
 
       foreach (CRM_Contact_BAO_ContactType::basicTypes() as $ctype) {
         // take the table.field pairs and their titles from importableFields() if the table is supported
-        foreach (CRM_Contact_BAO_Contact::importableFields($ctype) as $iField) {
+        foreach (self::importableFields($ctype) as $iField) {
           if (isset($iField['where'])) {
             $where = $iField['where'];
             if (isset($replacements[$where])) {
@@ -128,6 +128,82 @@ class CRM_Dedupe_BAO_DedupeRuleGroup extends CRM_Dedupe_DAO_DedupeRuleGroup {
 
   }
 
+  /**
+   * Combine all the importable fields from the lower levels object.
+   *
+   * @deprecated - copy of importableFields to unravel.
+   *
+   * The ordering is important, since currently we do not have a weight
+   * scheme. Adding weight is super important
+   *
+   * @param int|string $contactType contact Type
+   *
+   * @return array
+   *   array of importable Fields
+   */
+  private static function importableFields($contactType): array {
+
+    $fields = CRM_Contact_DAO_Contact::import();
+
+    // get the fields thar are meant for contact types
+    if (in_array($contactType, [
+      'Individual',
+      'Household',
+      'Organization',
+      'All',
+    ])) {
+      $fields = array_merge($fields, CRM_Core_OptionValue::getFields('', $contactType));
+    }
+
+    $locationFields = array_merge(CRM_Core_DAO_Address::import(),
+      CRM_Core_DAO_Phone::import(),
+      CRM_Core_DAO_Email::import(),
+      CRM_Core_DAO_IM::import(TRUE),
+      CRM_Core_DAO_OpenID::import()
+    );
+
+    $locationFields = array_merge($locationFields,
+      CRM_Core_BAO_CustomField::getFieldsForImport('Address',
+        FALSE,
+        FALSE,
+        FALSE,
+        FALSE
+      )
+    );
+
+    foreach ($locationFields as $key => $field) {
+      $locationFields[$key]['hasLocationType'] = TRUE;
+    }
+
+    $fields = array_merge($fields, $locationFields);
+
+    $fields = array_merge($fields, CRM_Contact_DAO_Contact::import());
+    $fields = array_merge($fields, CRM_Core_DAO_Note::import());
+
+    //website fields
+    $fields = array_merge($fields, CRM_Core_DAO_Website::import());
+    $fields['url']['hasWebsiteType'] = TRUE;
+
+    $fields = array_merge($fields,
+      CRM_Core_BAO_CustomField::getFieldsForImport($contactType,
+        FALSE,
+        TRUE,
+        FALSE,
+        FALSE,
+        FALSE
+      )
+    );
+    // Unset the fields which are not related to their contact type.
+    foreach (CRM_Contact_DAO_Contact::import() as $name => $value) {
+      if (!empty($value['contactType']) && $value['contactType'] !== $contactType) {
+        unset($fields[$name]);
+      }
+    }
+
+    //Sorting fields in alphabetical order(CRM-1507)
+    return CRM_Utils_Array::crmArraySortByField($fields, 'title');
+  }
+
   /**
    * Return the SQL query for dropping the temporary table.
    */
@@ -139,7 +215,7 @@ class CRM_Dedupe_BAO_DedupeRuleGroup extends CRM_Dedupe_DAO_DedupeRuleGroup {
    * Return a set of SQL queries whose cummulative weights will mark matched
    * records for the RuleGroup::threasholdQuery() to retrieve.
    */
-  public function tableQuery() {
+  private function tableQuery() {
     // make sure we've got a fetched dbrecord, not sure if this is enforced
     if (!$this->name == NULL || $this->is_reserved == NULL) {
       $this->find(TRUE);
@@ -263,7 +339,7 @@ class CRM_Dedupe_BAO_DedupeRuleGroup extends CRM_Dedupe_DAO_DedupeRuleGroup {
           $query = "{$insertClause} {$query} {$groupByClause} ON DUPLICATE KEY UPDATE weight = weight + VALUES(weight)";
           $dao = CRM_Core_DAO::executeQuery($query);
 
-          // FIXME: we need to be more acurate with affected rows, especially for insert vs duplicate insert.
+          // FIXME: we need to be more accurate with affected rows, especially for insert vs duplicate insert.
           // And that will help optimize further.
           $affectedRows = $dao->affectedRows();
 
@@ -337,28 +413,31 @@ class CRM_Dedupe_BAO_DedupeRuleGroup extends CRM_Dedupe_DAO_DedupeRuleGroup {
   }
 
   /**
-   * sort queries by number of records for the table associated with them.
-   * @param $tableQueries
+   * Sort queries by number of records for the table associated with them.
+   *
+   * @param array $tableQueries
    */
-  public static function orderByTableCount(&$tableQueries) {
-    static $tableCount = [];
-
-    $tempArray = [];
-    foreach ($tableQueries as $key => $query) {
-      $table = explode(".", $key);
-      $table = $table[0];
-      if (!array_key_exists($table, $tableCount)) {
-        $query = "SELECT COUNT(*) FROM {$table}";
-        $tableCount[$table] = CRM_Core_DAO::singleValueQuery($query);
-      }
-      $tempArray[$key] = $tableCount[$table];
-    }
+  public static function orderByTableCount(array &$tableQueries): void {
+    uksort($tableQueries, [__CLASS__, 'isTableBigger']);
+  }
 
-    asort($tempArray);
-    foreach ($tempArray as $key => $count) {
-      $tempArray[$key] = $tableQueries[$key];
+  /**
+   * Is the table extracted from the first string larger than the second string.
+   *
+   * @param string $a
+   *   e.g civicrm_contact.first_name
+   * @param string $b
+   *   e.g civicrm_address.street_address
+   *
+   * @return int
+   */
+  private static function isTableBigger(string $a, string $b): int {
+    $tableA = explode('.', $a)[0];
+    $tableB = explode('.', $b)[0];
+    if ($tableA === $tableB) {
+      return 0;
     }
-    $tableQueries = $tempArray;
+    return CRM_Core_BAO_SchemaHandler::getRowCountForTable($tableA) <=> CRM_Core_BAO_SchemaHandler::getRowCountForTable($tableB);
   }
 
   /**
diff --git a/civicrm/CRM/Dedupe/DAO/DedupeException.php b/civicrm/CRM/Dedupe/DAO/DedupeException.php
index c6b8a14820c327261065c9cc2f34263ba62c6e65..ff398b23c81298d224353c73191e0e35a33ff519 100644
--- a/civicrm/CRM/Dedupe/DAO/DedupeException.php
+++ b/civicrm/CRM/Dedupe/DAO/DedupeException.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Dedupe/DedupeException.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:e8e238da9d12806c52ba8614e7e5cfee)
+ * (GenCodeChecksum:1c0e7ffb2de1859052fd27537b100eb6)
  */
 
 /**
@@ -105,6 +105,12 @@ class CRM_Dedupe_DAO_DedupeException extends CRM_Core_DAO {
           'title' => ts('Dedupe Exception ID'),
           'description' => ts('Unique dedupe exception id'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_dedupe_exception.id',
           'table_name' => 'civicrm_dedupe_exception',
           'entity' => 'DedupeException',
@@ -122,6 +128,12 @@ class CRM_Dedupe_DAO_DedupeException extends CRM_Core_DAO {
           'title' => ts('First Dupe Contact ID'),
           'description' => ts('FK to Contact ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_dedupe_exception.contact_id1',
           'table_name' => 'civicrm_dedupe_exception',
           'entity' => 'DedupeException',
@@ -139,6 +151,12 @@ class CRM_Dedupe_DAO_DedupeException extends CRM_Core_DAO {
           'title' => ts('Second Dupe Contact ID'),
           'description' => ts('FK to Contact ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_dedupe_exception.contact_id2',
           'table_name' => 'civicrm_dedupe_exception',
           'entity' => 'DedupeException',
diff --git a/civicrm/CRM/Dedupe/DAO/DedupeRule.php b/civicrm/CRM/Dedupe/DAO/DedupeRule.php
index f137b465c4012ef6349414e86ee58e3de2682fc4..a3785284228703c58bc57604c5261828c7d7da97 100644
--- a/civicrm/CRM/Dedupe/DAO/DedupeRule.php
+++ b/civicrm/CRM/Dedupe/DAO/DedupeRule.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Dedupe/DedupeRule.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:edacd3caba0f47c874b16f02a7b446ef)
+ * (GenCodeChecksum:61dda939bb4ad3a9ff3e07c06ec3712d)
  */
 
 /**
@@ -131,6 +131,12 @@ class CRM_Dedupe_DAO_DedupeRule extends CRM_Core_DAO {
           'title' => ts('Dedupe Rule ID'),
           'description' => ts('Unique dedupe rule id'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_dedupe_rule.id',
           'table_name' => 'civicrm_dedupe_rule',
           'entity' => 'DedupeRule',
@@ -148,6 +154,12 @@ class CRM_Dedupe_DAO_DedupeRule extends CRM_Core_DAO {
           'title' => ts('Group ID'),
           'description' => ts('The id of the rule group this rule belongs to'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_dedupe_rule.dedupe_rule_group_id',
           'table_name' => 'civicrm_dedupe_rule',
           'entity' => 'DedupeRule',
@@ -167,6 +179,12 @@ class CRM_Dedupe_DAO_DedupeRule extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_dedupe_rule.rule_table',
           'table_name' => 'civicrm_dedupe_rule',
           'entity' => 'DedupeRule',
@@ -182,6 +200,12 @@ class CRM_Dedupe_DAO_DedupeRule extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_dedupe_rule.rule_field',
           'table_name' => 'civicrm_dedupe_rule',
           'entity' => 'DedupeRule',
@@ -194,6 +218,12 @@ class CRM_Dedupe_DAO_DedupeRule extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Rule Length'),
           'description' => ts('The length of the matching substring'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_dedupe_rule.rule_length',
           'table_name' => 'civicrm_dedupe_rule',
           'entity' => 'DedupeRule',
@@ -210,6 +240,12 @@ class CRM_Dedupe_DAO_DedupeRule extends CRM_Core_DAO {
           'title' => ts('Order'),
           'description' => ts('The weight of the rule'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_dedupe_rule.rule_weight',
           'table_name' => 'civicrm_dedupe_rule',
           'entity' => 'DedupeRule',
diff --git a/civicrm/CRM/Dedupe/DAO/DedupeRuleGroup.php b/civicrm/CRM/Dedupe/DAO/DedupeRuleGroup.php
index 701576f9bb8244f0d763b68ac52e448121142760..aa7ae800b1a7abd72c847193aa03f6b48115f815 100644
--- a/civicrm/CRM/Dedupe/DAO/DedupeRuleGroup.php
+++ b/civicrm/CRM/Dedupe/DAO/DedupeRuleGroup.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Dedupe/DedupeRuleGroup.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:f284352850b87d32288b0f332e44eb41)
+ * (GenCodeChecksum:3df551f805f32bd24ae567e40237cac4)
  */
 
 /**
@@ -132,6 +132,12 @@ class CRM_Dedupe_DAO_DedupeRuleGroup extends CRM_Core_DAO {
           'title' => ts('Rule Group ID'),
           'description' => ts('Unique dedupe rule group id'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_dedupe_rule_group.id',
           'table_name' => 'civicrm_dedupe_rule_group',
           'entity' => 'DedupeRuleGroup',
@@ -150,6 +156,12 @@ class CRM_Dedupe_DAO_DedupeRuleGroup extends CRM_Core_DAO {
           'description' => ts('The type of contacts this group applies to'),
           'maxlength' => 12,
           'size' => CRM_Utils_Type::TWELVE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_dedupe_rule_group.contact_type',
           'table_name' => 'civicrm_dedupe_rule_group',
           'entity' => 'DedupeRuleGroup',
@@ -172,6 +184,12 @@ class CRM_Dedupe_DAO_DedupeRuleGroup extends CRM_Core_DAO {
           'title' => ts('Threshold'),
           'description' => ts('The weight threshold the sum of the rule weights has to cross to consider two contacts the same'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_dedupe_rule_group.threshold',
           'table_name' => 'civicrm_dedupe_rule_group',
           'entity' => 'DedupeRuleGroup',
@@ -190,6 +208,12 @@ class CRM_Dedupe_DAO_DedupeRuleGroup extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 12,
           'size' => CRM_Utils_Type::TWELVE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_dedupe_rule_group.used',
           'table_name' => 'civicrm_dedupe_rule_group',
           'entity' => 'DedupeRuleGroup',
@@ -210,6 +234,12 @@ class CRM_Dedupe_DAO_DedupeRuleGroup extends CRM_Core_DAO {
           'description' => ts('Unique name of rule group'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_dedupe_rule_group.name',
           'table_name' => 'civicrm_dedupe_rule_group',
           'entity' => 'DedupeRuleGroup',
@@ -224,6 +254,12 @@ class CRM_Dedupe_DAO_DedupeRuleGroup extends CRM_Core_DAO {
           'description' => ts('Label of the rule group'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_dedupe_rule_group.title',
           'table_name' => 'civicrm_dedupe_rule_group',
           'entity' => 'DedupeRuleGroup',
@@ -240,6 +276,12 @@ class CRM_Dedupe_DAO_DedupeRuleGroup extends CRM_Core_DAO {
           'title' => ts('Reserved?'),
           'description' => ts('Is this a reserved rule - a rule group that has been optimized and cannot be changed by the admin'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_dedupe_rule_group.is_reserved',
           'default' => '0',
           'table_name' => 'civicrm_dedupe_rule_group',
diff --git a/civicrm/CRM/Dedupe/Finder.php b/civicrm/CRM/Dedupe/Finder.php
index b86f9207214c17832dbbfe8891b7d70291d9f65c..77fe3d185c21c01adea407bfd4b77a24b09c78fb 100644
--- a/civicrm/CRM/Dedupe/Finder.php
+++ b/civicrm/CRM/Dedupe/Finder.php
@@ -52,7 +52,7 @@ class CRM_Dedupe_Finder {
     while ($dao->fetch()) {
       $dupes[] = [$dao->id1, $dao->id2, $dao->weight];
     }
-    CRM_Core_DAO::executeQuery(($rgBao->tableDropQuery()));
+    CRM_Core_DAO::executeQuery($rgBao->tableDropQuery());
 
     return $dupes;
   }
@@ -122,15 +122,15 @@ class CRM_Dedupe_Finder {
     }
     $rgBao->params = $params;
     $rgBao->fillTable();
-    $dao = new CRM_Core_DAO();
-    $dao->query($rgBao->thresholdQuery($checkPermission));
+
+    $dao = CRM_Core_DAO::executeQuery($rgBao->thresholdQuery($checkPermission));
     $dupes = [];
     while ($dao->fetch()) {
       if (isset($dao->id) && $dao->id) {
         $dupes[] = $dao->id;
       }
     }
-    $dao->query($rgBao->tableDropQuery());
+    CRM_Core_DAO::executeQuery($rgBao->tableDropQuery());
     return array_diff($dupes, $except);
   }
 
diff --git a/civicrm/CRM/Dedupe/Merger.php b/civicrm/CRM/Dedupe/Merger.php
index 4071797bdf784a15d46ff2d094f2662793d201e9..edd8c6e3eecc2f2cad4c8ee861dfd45abd0cdaca 100644
--- a/civicrm/CRM/Dedupe/Merger.php
+++ b/civicrm/CRM/Dedupe/Merger.php
@@ -736,6 +736,7 @@ INNER JOIN  civicrm_membership membership2 ON membership1.membership_type_id = m
     elseif (array_key_exists('contact_sub_type_hidden', $params) &&
       !empty($params['contact_sub_type_hidden'])
     ) {
+      CRM_Core_Error::deprecatedWarning('code should be unreachable, slated for removal');
       // if profile was used, and had any subtype, we obtain it from there
       //CRM-13596 - add to existing contact types, rather than overwriting
       if (empty($data['contact_sub_type'])) {
@@ -770,6 +771,7 @@ INNER JOIN  civicrm_membership membership2 ON membership1.membership_type_id = m
       if (array_key_exists($blk, $params) &&
         !is_array($params[$blk])
       ) {
+        CRM_Core_Error::deprecatedWarning('code should be unreachable, slated for removal');
         unset($params[$blk]);
       }
     }
@@ -780,6 +782,7 @@ INNER JOIN  civicrm_membership membership2 ON membership1.membership_type_id = m
       [$fieldName, $locTypeId, $typeId] = CRM_Utils_System::explode('-', $key, 3);
 
       if ($locTypeId == 'Primary') {
+        CRM_Core_Error::deprecatedWarning('code should be unreachable, slated for removal');
         if (in_array($fieldName, $blocks)) {
           $locTypeId = CRM_Contact_BAO_Contact::getPrimaryLocationType($contactID, FALSE, $fieldName);
         }
@@ -793,6 +796,7 @@ INNER JOIN  civicrm_membership membership2 ON membership1.membership_type_id = m
         !in_array($fieldName, $multiplFields) &&
         substr($fieldName, 0, 7) != 'custom_'
       ) {
+        CRM_Core_Error::deprecatedWarning('code should be unreachable, slated for removal');
         $index = $locTypeId;
 
         if (is_numeric($typeId)) {
@@ -905,11 +909,13 @@ INNER JOIN  civicrm_membership membership2 ON membership1.membership_type_id = m
       }
       else {
         if (substr($key, 0, 4) === 'url-') {
+          CRM_Core_Error::deprecatedWarning('code should be unreachable, slated for removal');
           $websiteField = explode('-', $key);
           $data['website'][$websiteField[1]]['website_type_id'] = $websiteField[1];
           $data['website'][$websiteField[1]]['url'] = $value;
         }
         elseif (in_array($key, CRM_Contact_BAO_Contact::$_greetingTypes, TRUE)) {
+          CRM_Core_Error::deprecatedWarning('code should be unreachable, slated for removal');
           //save email/postal greeting and addressee values if any, CRM-4575
           $data[$key . '_id'] = $value;
         }
@@ -933,6 +939,7 @@ INNER JOIN  civicrm_membership membership2 ON membership1.membership_type_id = m
 
           $valueId = NULL;
           if (!empty($params['customRecordValues'])) {
+            CRM_Core_Error::deprecatedWarning('code should be unreachable, slated for removal');
             if (is_array($params['customRecordValues']) && !empty($params['customRecordValues'])) {
               foreach ($params['customRecordValues'] as $recId => $customFields) {
                 if (is_array($customFields) && !empty($customFields)) {
@@ -949,6 +956,7 @@ INNER JOIN  civicrm_membership membership2 ON membership1.membership_type_id = m
 
           //CRM-13596 - check for contact_sub_type_hidden first
           if (array_key_exists('contact_sub_type_hidden', $params)) {
+            CRM_Core_Error::deprecatedWarning('code should be unreachable, slated for removal');
             $type = $params['contact_sub_type_hidden'];
           }
           else {
@@ -969,10 +977,12 @@ INNER JOIN  civicrm_membership membership2 ON membership1.membership_type_id = m
           );
         }
         elseif ($key === 'edit') {
+          CRM_Core_Error::deprecatedWarning('code should be unreachable, slated for removal');
           continue;
         }
         else {
           if ($key === 'location') {
+            CRM_Core_Error::deprecatedWarning('code should be unreachable, slated for removal');
             foreach ($value as $locationTypeId => $field) {
               foreach ($field as $block => $val) {
                 if ($block === 'address' && array_key_exists('address_name', $val)) {
@@ -982,6 +992,7 @@ INNER JOIN  civicrm_membership membership2 ON membership1.membership_type_id = m
             }
           }
           if ($key === 'phone' && isset($params['phone_ext'])) {
+            CRM_Core_Error::deprecatedWarning('code should be unreachable, slated for removal');
             $data[$key] = $value;
             foreach ($value as $cnt => $phoneBlock) {
               if ($params[$key][$cnt]['location_type_id'] == $params['phone_ext'][$cnt]['location_type_id']) {
@@ -995,6 +1006,7 @@ INNER JOIN  civicrm_membership membership2 ON membership1.membership_type_id = m
             ($key === 'current_employer' && empty($params['current_employer']))) {
             // CRM-10128: if auth source is not checksum / login && $value is blank, do not fill $data with empty value
             // to avoid update with empty values
+            CRM_Core_Error::deprecatedWarning('code should be unreachable, slated for removal');
             continue;
           }
           else {
@@ -1472,9 +1484,9 @@ INNER JOIN  civicrm_membership membership2 ON membership1.membership_type_id = m
   /**
    * A function to build an array of information required by merge function and the merge UI.
    *
-   * @param int $mainId
+   * @param int $mainID
    *   Main contact with whom merge has to happen.
-   * @param int $otherId
+   * @param int $otherID
    *   Duplicate contact which would be deleted after merge operation.
    * @param bool $checkPermissions
    *   Should the logged in user's permissions be ignore. Setting this to false is
@@ -1512,13 +1524,15 @@ INNER JOIN  civicrm_membership membership2 ON membership1.membership_type_id = m
    *     though the form had been submitted with those options.
    *
    * @throws \CRM_Core_Exception
+   * @todo review permissions issue!
+   *
    */
-  public static function getRowsElementsAndInfo($mainId, $otherId, $checkPermissions = TRUE) {
+  public static function getRowsElementsAndInfo(int $mainID, int $otherID, bool $checkPermissions = TRUE) {
     $qfZeroBug = 'e8cddb72-a257-11dc-b9cc-0016d3330ee9';
-    $fields = self::getMergeFieldsMetadata();
+    $fields = self::getMergeFieldsMetadata($checkPermissions);
 
-    $main = self::getMergeContactDetails($mainId);
-    $other = self::getMergeContactDetails($otherId);
+    $main = self::getMergeContactDetails($mainID);
+    $other = self::getMergeContactDetails($otherID);
 
     $compareFields = self::retrieveFields($main, $other);
 
@@ -1532,15 +1546,17 @@ INNER JOIN  civicrm_membership membership2 ON membership1.membership_type_id = m
       $rows["move_$field"] = [
         'main' => self::getFieldValueAndLabel($field, $main)['label'],
         'other' => self::getFieldValueAndLabel($field, $other)['label'],
-        'title' => $fields[$field]['html']['label'] ?? $fields[$field]['title'],
+        'title' => $fields[$field]['label'],
       ];
 
       $value = self::getFieldValueAndLabel($field, $other)['value'];
       //CRM-14334
-      if ($value === NULL || $value == '') {
+      if ($value === NULL || $value === '') {
         $value = 'null';
       }
-      if ($value === 0 or $value === '0') {
+      if ($value === 0 || $value === '0' || $value === FALSE) {
+        // We swap out the value for the form to a weird string in order to
+        // swap it back later. This QuickForm wrangling should be left to the form layer.
         $value = $qfZeroBug;
       }
       if (is_array($value) && empty($value[1])) {
@@ -1572,28 +1588,30 @@ INNER JOIN  civicrm_membership membership2 ON membership1.membership_type_id = m
     $locations = ['main' => [], 'other' => []];
 
     foreach ($locationBlocks as $blockName => $blockInfo) {
-      [$locations, $rows, $elements, $migrationInfo] = self::addLocationFieldInfo($mainId, $otherId, $blockInfo, $blockName, $locations, $rows, $elements, $migrationInfo);
+      [$locations, $rows, $elements, $migrationInfo] = self::addLocationFieldInfo($mainID, $otherID, $blockInfo, $blockName, $locations, $rows, $elements, $migrationInfo);
     } // End loop through each location block entity
 
     // add the related tables and unset the ones that don't sport any of the duplicate contact's info
-    $mergeHandler = new CRM_Dedupe_MergeHandler((int) $mainId, (int) $otherId);
+    $mergeHandler = new CRM_Dedupe_MergeHandler((int) $mainID, (int) $otherID);
     $relTables = $mergeHandler->getTablesRelatedToTheMergePair();
     foreach ($relTables as $name => $null) {
       $migrationInfo["move_$name"] = 1;
 
-      $relTables[$name]['main_url'] = str_replace('$cid', $mainId, $relTables[$name]['url']);
-      $relTables[$name]['other_url'] = str_replace('$cid', $otherId, $relTables[$name]['url']);
+      $relTables[$name]['main_url'] = str_replace('$cid', $mainID, $relTables[$name]['url']);
+      $relTables[$name]['other_url'] = str_replace('$cid', $otherID, $relTables[$name]['url']);
+      $relTables[$name]['has_operation'] = 0;
+
       if ($name === 'rel_table_users') {
         // @todo - this user url stuff is only needed for the form layer - move to CRM_Contact_Form_Merge
-        $relTables[$name]['main_url'] = str_replace('%ufid', CRM_Core_BAO_UFMatch::getUFId($mainId), $relTables[$name]['url']);
-        $relTables[$name]['other_url'] = str_replace('%ufid', CRM_Core_BAO_UFMatch::getUFId($otherId), $relTables[$name]['url']);
+        $relTables[$name]['main_url'] = str_replace('%ufid', CRM_Core_BAO_UFMatch::getUFId($mainID), $relTables[$name]['url']);
+        $relTables[$name]['other_url'] = str_replace('%ufid', CRM_Core_BAO_UFMatch::getUFId($otherID), $relTables[$name]['url']);
       }
       if ($name === 'rel_table_memberships') {
         //Enable 'add new' checkbox if main contact does not contain any membership similar to duplicate contact.
         $attributes = ['checked' => 'checked'];
-        $otherContactMemberships = CRM_Member_BAO_Membership::getAllContactMembership($otherId);
+        $otherContactMemberships = CRM_Member_BAO_Membership::getAllContactMembership($otherID);
         foreach ($otherContactMemberships as $membership) {
-          $mainMembership = CRM_Member_BAO_Membership::getContactMembership($mainId, $membership['membership_type_id'], FALSE);
+          $mainMembership = CRM_Member_BAO_Membership::getContactMembership($mainID, $membership['membership_type_id'], FALSE);
           if ($mainMembership) {
             $attributes = [];
           }
@@ -1606,6 +1624,7 @@ INNER JOIN  civicrm_membership membership2 ON membership1.membership_type_id = m
           $attributes,
         ];
         $migrationInfo["operation"]["move_{$name}"]['add'] = 1;
+        $relTables[$name]['has_operation'] = 1;
       }
     }
     foreach ($relTables as $name => $null) {
@@ -1614,12 +1633,12 @@ INNER JOIN  civicrm_membership membership2 ON membership1.membership_type_id = m
     }
 
     // handle custom fields
-    $mainTree = self::getTree($main['contact_type'], NULL, $mainId, -1,
-      CRM_Utils_Array::value('contact_sub_type', $main), NULL, TRUE, NULL, TRUE,
+    $mainTree = self::getTree($main['contact_type'], $mainID,
+      $main['contact_sub_type'] ?? NULL,
       $checkPermissions ? CRM_Core_Permission::EDIT : FALSE
     );
-    $otherTree = self::getTree($main['contact_type'], NULL, $otherId, -1,
-      CRM_Utils_Array::value('contact_sub_type', $other), NULL, TRUE, NULL, TRUE,
+    $otherTree = self::getTree($main['contact_type'], $otherID,
+      $other['contact_sub_type'] ?? NULL,
       $checkPermissions ? CRM_Core_Permission::EDIT : FALSE
     );
 
@@ -1692,18 +1711,8 @@ INNER JOIN  civicrm_membership membership2 ON membership1.membership_type_id = m
    *
    * @param string $entityType
    *   Of the contact whose contact type is needed.
-   * @param array $toReturn
-   *   What data should be returned. ['custom_group' => ['id', 'name', etc.], 'custom_field' => ['id', 'label', etc.]]
    * @param int $entityID
-   * @param int $groupID
    * @param array $subTypes
-   * @param string $subName
-   * @param bool $fromCache
-   * @param bool $onlySubType
-   *   Only return specified subtype or return specified subtype + unrestricted fields.
-   * @param bool $returnAll
-   *   Do not restrict by subtype at all. (The parameter feels a bit cludgey but is only used from the
-   *   api - through which it is properly tested - so can be refactored with some comfort.)
    * @param bool|int $checkPermission
    *   Either a CRM_Core_Permission constant or FALSE to disable checks
    *
@@ -1711,7 +1720,7 @@ INNER JOIN  civicrm_membership membership2 ON membership1.membership_type_id = m
    *   Custom field 'tree'.
    *
    *   The returned array is keyed by group id and has the custom group table fields
-   *   and a subkey 'fields' holding the specific custom fields.
+   *   and a sub-key 'fields' holding the specific custom fields.
    *   If entityId is passed in the fields keys have a subkey 'customValue' which holds custom data
    *   if set for the given entity. This is structured as an array of values with each one having the keys 'id', 'data'
    *
@@ -1723,23 +1732,11 @@ INNER JOIN  civicrm_membership membership2 ON membership1.membership_type_id = m
    */
   private static function getTree(
     $entityType,
-    $toReturn = [],
-    $entityID = NULL,
-    $groupID = NULL,
-    $subTypes = [],
-    $subName = NULL,
-    $fromCache = TRUE,
-    $onlySubType = NULL,
-    $returnAll = FALSE,
-    $checkPermission = CRM_Core_Permission::EDIT
+    int $entityID,
+    $subTypes,
+    $checkPermission
   ) {
-    if ($checkPermission === TRUE) {
-      CRM_Core_Error::deprecatedWarning('Unexpected TRUE passed to CustomGroup::getTree $checkPermission param.');
-      $checkPermission = CRM_Core_Permission::EDIT;
-    }
-    if ($entityID) {
-      $entityID = CRM_Utils_Type::escape($entityID, 'Integer');
-    }
+
     if (!is_array($subTypes)) {
       if (empty($subTypes)) {
         $subTypes = [];
@@ -1757,7 +1754,7 @@ INNER JOIN  civicrm_membership membership2 ON membership1.membership_type_id = m
     // create a new tree
 
     // legacy hardcoded list of data to return
-    $tableData = [
+    $toReturn = [
       'custom_field' => [
         'id',
         'name',
@@ -1778,6 +1775,7 @@ INNER JOIN  civicrm_membership membership2 ON membership1.membership_type_id = m
         'time_format',
         'option_group_id',
         'in_selector',
+        'serialize',
       ],
       'custom_group' => [
         'id',
@@ -1793,30 +1791,9 @@ INNER JOIN  civicrm_membership membership2 ON membership1.membership_type_id = m
         'extends_entity_column_id',
         'extends_entity_column_value',
         'max_multiple',
+        'is_public',
       ],
     ];
-    $current_db_version = CRM_Core_BAO_Domain::version();
-    $is_public_version = version_compare($current_db_version, '4.7.19', '>=');
-    $serialize_version = version_compare($current_db_version, '5.27.alpha1', '>=');
-    if ($is_public_version) {
-      $tableData['custom_group'][] = 'is_public';
-    }
-    if ($serialize_version) {
-      $tableData['custom_field'][] = 'serialize';
-    }
-    if (!$toReturn || !is_array($toReturn)) {
-      $toReturn = $tableData;
-    }
-    else {
-      // Supply defaults and remove unknown array keys
-      $toReturn = array_intersect_key(array_filter($toReturn) + $tableData, $tableData);
-      // Merge in required fields that we must have
-      $toReturn['custom_field'] = array_unique(array_merge($toReturn['custom_field'], ['id', 'column_name', 'data_type']));
-      $toReturn['custom_group'] = array_unique(array_merge($toReturn['custom_group'], ['id', 'is_multiple', 'table_name', 'name']));
-      // Validate return fields
-      $toReturn['custom_field'] = array_intersect($toReturn['custom_field'], array_keys(CRM_Core_DAO_CustomField::fieldKeys()));
-      $toReturn['custom_group'] = array_intersect($toReturn['custom_group'], array_keys(CRM_Core_DAO_CustomGroup::fieldKeys()));
-    }
 
     // create select
     $select = [];
@@ -1825,17 +1802,17 @@ INNER JOIN  civicrm_membership membership2 ON membership1.membership_type_id = m
         $select[] = "civicrm_{$tableName}.{$columnName} as civicrm_{$tableName}_{$columnName}";
       }
     }
-    $strSelect = "SELECT " . implode(', ', $select);
+    $strSelect = 'SELECT ' . implode(', ', $select);
 
     // from, where, order by
-    $strFrom = "
+    $strFrom = '
 FROM     civicrm_custom_group
 LEFT JOIN civicrm_custom_field ON (civicrm_custom_field.custom_group_id = civicrm_custom_group.id)
-";
+';
 
     // if entity is either individual, organization or household pls get custom groups for 'contact' too.
-    if ($entityType == "Individual" || $entityType == 'Organization' ||
-      $entityType == 'Household'
+    if ($entityType === 'Individual' || $entityType === 'Organization' ||
+      $entityType === 'Household'
     ) {
       $in = "'$entityType', 'Contact'";
     }
@@ -1856,9 +1833,7 @@ LEFT JOIN civicrm_custom_field ON (civicrm_custom_field.custom_group_id = civicr
         $subTypeClauses[] = self::whereListHas("civicrm_custom_group.extends_entity_column_value", CRM_Core_BAO_CustomGroup::validateSubTypeByEntity($entityType, $subType));
       }
       $subTypeClause = '(' . implode(' OR ', $subTypeClauses) . ')';
-      if (!$onlySubType) {
-        $subTypeClause = '(' . $subTypeClause . '  OR civicrm_custom_group.extends_entity_column_value IS NULL )';
-      }
+      $subTypeClause = '(' . $subTypeClause . '  OR civicrm_custom_group.extends_entity_column_value IS NULL )';
 
       $strWhere = "
 WHERE civicrm_custom_group.is_active = 1
@@ -1866,11 +1841,6 @@ WHERE civicrm_custom_group.is_active = 1
   AND civicrm_custom_group.extends IN ($in)
   AND $subTypeClause
 ";
-      if ($subName) {
-        $strWhere .= " AND civicrm_custom_group.extends_entity_column_id = %{$sqlParamKey}";
-        $params[$sqlParamKey] = [$subName, 'String'];
-        $sqlParamKey = $sqlParamKey + 1;
-      }
     }
     else {
       $strWhere = "
@@ -1878,20 +1848,8 @@ WHERE civicrm_custom_group.is_active = 1
   AND civicrm_custom_field.is_active = 1
   AND civicrm_custom_group.extends IN ($in)
 ";
-      if (!$returnAll) {
-        $strWhere .= "AND civicrm_custom_group.extends_entity_column_value IS NULL";
-      }
     }
 
-    if ($groupID > 0) {
-      // since we want a specific group id we add it to the where clause
-      $strWhere .= " AND civicrm_custom_group.id = %{$sqlParamKey}";
-      $params[$sqlParamKey] = [$groupID, 'Integer'];
-    }
-    elseif (!$groupID) {
-      // since groupID is false we need to show all Inline groups
-      $strWhere .= " AND civicrm_custom_group.style = 'Inline'";
-    }
     if ($checkPermission) {
       // ensure that the user has access to these custom groups
       $strWhere .= " AND " .
@@ -1911,21 +1869,13 @@ ORDER BY civicrm_custom_group.weight,
     $queryString = "$strSelect $strFrom $strWhere $orderBy";
 
     // lets see if we can retrieve the groupTree from cache
-    $cacheString = $queryString;
-    if ($groupID > 0) {
-      $cacheString .= "_{$groupID}";
-    }
-    else {
-      $cacheString .= "_Inline";
-    }
+    $cacheString = $queryString . '_Inline';;
 
     $cacheKey = "CRM_Core_DAO_CustomGroup_Query " . md5($cacheString);
     $multipleFieldGroupCacheKey = "CRM_Core_DAO_CustomGroup_QueryMultipleFields " . md5($cacheString);
     $cache = CRM_Utils_Cache::singleton();
-    if ($fromCache) {
-      $groupTree = $cache->get($cacheKey);
-      $multipleFieldGroups = $cache->get($multipleFieldGroupCacheKey);
-    }
+    $groupTree = $cache->get($cacheKey);
+    $multipleFieldGroups = $cache->get($multipleFieldGroupCacheKey);
 
     if (empty($groupTree)) {
       [$multipleFieldGroups, $groupTree] = CRM_Core_BAO_CustomGroup::buildGroupTree($entityType, $toReturn, $subTypes, $queryString, $params, $subType);
@@ -2076,34 +2026,6 @@ ORDER BY civicrm_custom_group.weight,
       $removeTables = [];
     }
 
-    // FIXME: fix gender, prefix and postfix, so they're edible by createProfileContact()
-    $names['gender'] = ['newName' => 'gender_id', 'groupName' => 'gender'];
-    $names['individual_prefix'] = [
-      'newName' => 'prefix_id',
-      'groupName' => 'individual_prefix',
-    ];
-    $names['individual_suffix'] = [
-      'newName' => 'suffix_id',
-      'groupName' => 'individual_suffix',
-    ];
-    $names['communication_style'] = [
-      'newName' => 'communication_style_id',
-      'groupName' => 'communication_style',
-    ];
-    $names['addressee'] = [
-      'newName' => 'addressee_id',
-      'groupName' => 'addressee',
-    ];
-    $names['email_greeting'] = [
-      'newName' => 'email_greeting_id',
-      'groupName' => 'email_greeting',
-    ];
-    $names['postal_greeting'] = [
-      'newName' => 'postal_greeting_id',
-      'groupName' => 'postal_greeting',
-    ];
-    CRM_Core_OptionGroup::lookupValues($submitted, $names, TRUE);
-
     if (!isset($submitted)) {
       $submitted = [];
     }
@@ -2171,26 +2093,7 @@ ORDER BY civicrm_custom_group.weight,
 
     // **** Update contact related info for the main contact
     if (!empty($submitted)) {
-      $submitted['contact_id'] = $mainId;
-
-      //update current employer field
-      if ($currentEmloyerId = CRM_Utils_Array::value('current_employer_id', $submitted)) {
-        if (!CRM_Utils_System::isNull($currentEmloyerId)) {
-          $submitted['current_employer'] = $submitted['current_employer_id'];
-        }
-        else {
-          $submitted['current_employer'] = '';
-        }
-        unset($submitted['current_employer_id']);
-      }
-
-      //CRM-14312 include prefix/suffix from mainId if not overridden for proper construction of display/sort name
-      if (!isset($submitted['prefix_id']) && !empty($migrationInfo['main_details']['prefix_id'])) {
-        $submitted['prefix_id'] = $migrationInfo['main_details']['prefix_id'];
-      }
-      if (!isset($submitted['suffix_id']) && !empty($migrationInfo['main_details']['suffix_id'])) {
-        $submitted['suffix_id'] = $migrationInfo['main_details']['suffix_id'];
-      }
+      $submitted['id'] = $mainId;
       self::updateContact($mainId, $submitted);
     }
     $transaction->commit();
@@ -2205,26 +2108,11 @@ ORDER BY civicrm_custom_group.weight,
    *
    * @return array
    *   Array of field names to be potentially merged.
+   * @throws \CRM_Core_Exception
+   * @throws \Civi\API\Exception\UnauthorizedException
    */
-  public static function getContactFields() {
-    $contactFields = CRM_Contact_DAO_Contact::fields();
-    $invalidFields = [
-      'api_key',
-      'created_date',
-      'display_name',
-      'hash',
-      'id',
-      'modified_date',
-      'primary_contact_id',
-      'sort_name',
-      'user_unique_id',
-    ];
-    foreach ($contactFields as $field => $value) {
-      if (in_array($field, $invalidFields)) {
-        unset($contactFields[$field]);
-      }
-    }
-    return array_keys($contactFields);
+  public static function getContactFields(): array {
+    return array_keys(self::getMergeFieldsMetadata(FALSE));
   }
 
   /**
@@ -2383,49 +2271,57 @@ ORDER BY civicrm_custom_group.weight,
    * This is basically the contact metadata, augmented with fields to
    * represent email greeting, postal greeting & addressee.
    *
+   * @param bool $checkPermissions
+   *
    * @return array
+   * @throws \CRM_Core_Exception
+   * @throws \Civi\API\Exception\UnauthorizedException
    */
-  public static function getMergeFieldsMetadata() {
-    if (isset(\Civi::$statics[__CLASS__]) && isset(\Civi::$statics[__CLASS__]['merge_fields_metadata'])) {
-      return \Civi::$statics[__CLASS__]['merge_fields_metadata'];
-    }
-    $fields = CRM_Contact_DAO_Contact::fields();
-    static $optionValueFields = [];
-    if (empty($optionValueFields)) {
+  public static function getMergeFieldsMetadata(bool $checkPermissions = TRUE): array {
+    if (!isset(\Civi::$statics[__CLASS__]['merge_fields_metadata'][(int) $checkPermissions])) {
+      $contactFields = (array) Contact::getFields($checkPermissions)
+        ->execute()
+        ->indexBy('name');
+      $invalidFields = self::ignoredFields('contact');
+      foreach ($contactFields as $field => $value) {
+        if (in_array($field, $invalidFields, TRUE)) {
+          unset($contactFields[$field]);
+        }
+      }
       $optionValueFields = CRM_Core_OptionValue::getFields();
+      foreach ($optionValueFields as $field => $params) {
+        $contactFields[$field]['title'] = $params['title'];
+      }
+      \Civi::$statics[__CLASS__]['merge_fields_metadata'][(int) $checkPermissions] = $contactFields;
     }
-    foreach ($optionValueFields as $field => $params) {
-      $fields[$field]['title'] = $params['title'];
-    }
-    \Civi::$statics[__CLASS__]['merge_fields_metadata'] = $fields;
-    return \Civi::$statics[__CLASS__]['merge_fields_metadata'];
+    return \Civi::$statics[__CLASS__]['merge_fields_metadata'][(int) $checkPermissions];
   }
 
   /**
    * Get the details of the contact to be merged.
    *
-   * @param int $contact_id
+   * @param int $contactID
    *
    * @return array
    *
    * @throws CRM_Core_Exception
    */
-  public static function getMergeContactDetails($contact_id) {
+  public static function getMergeContactDetails($contactID): array {
     $params = [
-      'contact_id' => $contact_id,
+      'contact_id' => $contactID,
       'version' => 3,
       'return' => array_merge(['display_name'], self::getContactFields()),
     ];
-    $result = civicrm_api('contact', 'get', $params);
+    $result = Contact::get(FALSE)->addWhere('id', '=', $contactID)->execute()->first();
 
     // CRM-18480: Cancel the process if the contact is already deleted
-    if (isset($result['values'][$contact_id]['contact_is_deleted']) && !empty($result['values'][$contact_id]['contact_is_deleted'])) {
+    if (isset($result['is_deleted']) && !empty($result['is_deleted'])) {
       throw new CRM_Core_Exception(ts('Cannot merge because one contact (ID %1) has been deleted.', [
-        1 => $contact_id,
+        1 => $contactID,
       ]));
     }
 
-    return $result['values'][$contact_id];
+    return $result;
   }
 
   /**
@@ -2628,7 +2524,7 @@ ORDER BY civicrm_custom_group.weight,
     $conflicts = [];
     // Generate var $migrationInfo. The variable structure is exactly same as
     // $formValues submitted during a UI merge for a pair of contacts.
-    $rowsElementsAndInfo = CRM_Dedupe_Merger::getRowsElementsAndInfo($mainId, $otherId, FALSE);
+    $rowsElementsAndInfo = CRM_Dedupe_Merger::getRowsElementsAndInfo((int) $mainId, (int) $otherId, FALSE);
     // add additional details that we might need to resolve conflicts
     $migrationInfo = $rowsElementsAndInfo['migration_info'];
     $migrationInfo['main_details'] = &$rowsElementsAndInfo['main_details'];
@@ -2637,24 +2533,25 @@ ORDER BY civicrm_custom_group.weight,
     // go ahead with merge if there is no conflict
     $originalMigrationInfo = $migrationInfo;
     foreach ($migrationInfo as $key => $val) {
-      if ($val === "null") {
+      if ($val === 'null') {
         // Rule: Never overwrite with an empty value (in any mode)
+        // This is probably unreachable.
         unset($migrationInfo[$key]);
         continue;
       }
-      elseif ((in_array(substr($key, 5), CRM_Dedupe_Merger::getContactFields()) or
+      elseif ((in_array(substr($key, 5), CRM_Dedupe_Merger::getContactFields()) ||
           strpos($key, 'move_custom_') === 0
         ) and $val !== NULL
       ) {
         // Rule: If both main-contact, and other-contact have a field with a
         // different value, then let $mode decide if to merge it or not
         if (
-          (!empty($migrationInfo['rows'][$key]['main'])
+          ((!empty($migrationInfo['rows'][$key]['main'])
+              // Since we now load with v4 then FALSE would be right for a boolean.
+            || $migrationInfo['rows'][$key]['main'] === FALSE)
             // For custom fields a 0 (e.g in an int field) could be a true conflict. This
-            // is probably true for other fields too - e.g. 'do_not_email' but
-            // leaving that investigation as a @todo - until tests can be written.
-            // Note the handling of this has test coverage - although the data-typing
-            // of '0' feels flakey we have insurance.
+            // is probably true for other fields too - e.g. 'do_not_email'.
+            // There should be pretty solid test cover here now.
             || ($migrationInfo['rows'][$key]['main'] === '0' && substr($key, 0, 12) === 'move_custom_')
           )
           && $migrationInfo['rows'][$key]['main'] != $migrationInfo['rows'][$key]['other']
@@ -2829,19 +2726,42 @@ ORDER BY civicrm_custom_group.weight,
   }
 
   /**
+   * Get fields that should not be transferred.
+   *
+   * This is primarily because they are calculated.
+   *
+   * @param string $type
+   *
    * @return array
    */
-  protected static function ignoredFields(): array {
+  protected static function ignoredFields(string $type = 'location'): array {
     $keysToIgnore = [
-      'id',
-      'is_primary',
-      'is_billing',
-      'manual_geo_code',
-      'contact_id',
-      'reset_date',
-      'hold_date',
+      'location' => [
+        'id',
+        'is_primary',
+        'is_billing',
+        'manual_geo_code',
+        'contact_id',
+        'reset_date',
+        'hold_date',
+      ],
+      'contact' => [
+        'api_key',
+        'created_date',
+        'display_name',
+        'hash',
+        'id',
+        'modified_date',
+        'primary_contact_id',
+        'user_unique_id',
+        // These are effectively cached / calculated fields
+        'sort_name',
+        'email_greeting_display',
+        'postal_greeting_display',
+        'addressee_display',
+      ],
     ];
-    return $keysToIgnore;
+    return $keysToIgnore[$type];
   }
 
   /**
@@ -2886,11 +2806,11 @@ ORDER BY civicrm_custom_group.weight,
         $label = ts('[x]');
       }
     }
-    elseif (!empty($fieldSpec['pseudoconstant'])) {
+    elseif (!empty($fieldSpec['options'])) {
       $label = CRM_Core_PseudoConstant::getLabel('CRM_Contact_BAO_Contact', $field, $value);
     }
-    elseif ($field == 'current_employer_id' && !empty($value)) {
-      $label = "$value (" . CRM_Contact_BAO_Contact::displayName($value) . ")";
+    elseif ($field === 'employer_id' && !empty($value)) {
+      $label = "$value (" . CRM_Contact_BAO_Contact::displayName($value) . ')';
     }
     return ['label' => $label, 'value' => $value];
   }
diff --git a/civicrm/CRM/Event/BAO/Event.php b/civicrm/CRM/Event/BAO/Event.php
index 55503aad232d2bca1253b28b5d22addf2e1a2086..6b9154a1734577355a0d0090513ca4c4a61032b2 100644
--- a/civicrm/CRM/Event/BAO/Event.php
+++ b/civicrm/CRM/Event/BAO/Event.php
@@ -34,17 +34,13 @@ class CRM_Event_BAO_Event extends CRM_Event_DAO_Event implements \Civi\Core\Hook
   }
 
   /**
-   * Update the is_active flag in the db.
-   *
+   * @deprecated - this bypasses hooks.
    * @param int $id
-   *   Id of the database record.
    * @param bool $is_active
-   *   Value we want to set the is_active field.
-   *
    * @return bool
-   *   true if we found and updated the object, else false
    */
   public static function setIsActive($id, $is_active) {
+    CRM_Core_Error::deprecatedFunctionWarning('writeRecord');
     return CRM_Core_DAO::setFieldValue('CRM_Event_DAO_Event', $id, 'is_active', $is_active);
   }
 
diff --git a/civicrm/CRM/Event/BAO/Participant.php b/civicrm/CRM/Event/BAO/Participant.php
index 97869fe7f812ed4fa19f7259a9a4d367ea1c0704..7d3758ea32647b5f4e04c48a6b44b57782f6e1eb 100644
--- a/civicrm/CRM/Event/BAO/Participant.php
+++ b/civicrm/CRM/Event/BAO/Participant.php
@@ -552,23 +552,6 @@ INNER JOIN  civicrm_price_field field       ON ( value.price_field_id = field.id
     return $optionsCount;
   }
 
-  /**
-   * Get the empty spaces for event those we can allocate
-   * to pending participant to become confirm.
-   *
-   * @deprecated
-   *
-   * @param int $eventId
-   *   Event id.
-   *
-   * @return int
-   *   $spaces  Number of Empty Seats/null.
-   */
-  public static function pendingToConfirmSpaces($eventId) {
-    CRM_Core_Error::deprecatedFunctionWarning('CRM_Event_BAO_Participant::eventFull');
-    return CRM_Event_BAO_Participant::eventFull($eventId, TRUE, FALSE, TRUE, FALSE, TRUE);
-  }
-
   /**
    * Combine all the importable fields from the lower levels object.
    *
diff --git a/civicrm/CRM/Event/BAO/ParticipantStatusType.php b/civicrm/CRM/Event/BAO/ParticipantStatusType.php
index bd773993e51f0778556eb7bd1440317a6038a34e..4c0941166fb70a7abfa5f107fab568ec241935eb 100644
--- a/civicrm/CRM/Event/BAO/ParticipantStatusType.php
+++ b/civicrm/CRM/Event/BAO/ParticipantStatusType.php
@@ -88,12 +88,13 @@ class CRM_Event_BAO_ParticipantStatusType extends CRM_Event_DAO_ParticipantStatu
   }
 
   /**
+   * @deprecated - this bypasses hooks.
    * @param int $id
-   * @param $isActive
-   *
+   * @param bool $isActive
    * @return bool
    */
   public static function setIsActive($id, $isActive) {
+    CRM_Core_Error::deprecatedFunctionWarning('writeRecord');
     return CRM_Core_DAO::setFieldValue('CRM_Event_BAO_ParticipantStatusType', $id, 'is_active', $isActive);
   }
 
diff --git a/civicrm/CRM/Event/BAO/Query.php b/civicrm/CRM/Event/BAO/Query.php
index 4b5e7c18f1645b489a324abf54d6ca73bb871e5c..5dbb6952a49fe0c396cfa4bb489bf33ee81f5c0c 100644
--- a/civicrm/CRM/Event/BAO/Query.php
+++ b/civicrm/CRM/Event/BAO/Query.php
@@ -639,6 +639,7 @@ class CRM_Event_BAO_Query extends CRM_Core_BAO_Query {
 
     $form->addRule('participant_fee_amount_low', ts('Please enter a valid money value.'), 'money');
     $form->addRule('participant_fee_amount_high', ts('Please enter a valid money value.'), 'money');
+    $form->add('number', 'participant_id', ts('Participant ID'), ['class' => 'four', 'min' => 1]);
 
     self::addCustomFormFields($form, ['Participant', 'Event']);
 
diff --git a/civicrm/CRM/Event/Cart/DAO/Cart.php b/civicrm/CRM/Event/Cart/DAO/Cart.php
index 9f737277aae212ff043851e22fa62ceb951a21c6..635ce13679aeddab4f9b4d8a6a41b5f219b0771f 100644
--- a/civicrm/CRM/Event/Cart/DAO/Cart.php
+++ b/civicrm/CRM/Event/Cart/DAO/Cart.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Event/Cart/Cart.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:41ef745cc916f417dcb6ef34c8d5effd)
+ * (GenCodeChecksum:cb3e9b057ebe0f648e9efb2cf9bc800b)
  */
 
 /**
@@ -103,6 +103,12 @@ class CRM_Event_Cart_DAO_Cart extends CRM_Core_DAO {
           'title' => ts('Cart ID'),
           'description' => ts('Cart ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event_carts.id',
           'table_name' => 'civicrm_event_carts',
           'entity' => 'Cart',
@@ -119,6 +125,12 @@ class CRM_Event_Cart_DAO_Cart extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Created By Contact ID'),
           'description' => ts('FK to civicrm_contact who created this cart'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event_carts.user_id',
           'table_name' => 'civicrm_event_carts',
           'entity' => 'Cart',
@@ -135,6 +147,12 @@ class CRM_Event_Cart_DAO_Cart extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_BOOLEAN,
           'title' => ts('Complete?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event_carts.completed',
           'default' => '0',
           'table_name' => 'civicrm_event_carts',
diff --git a/civicrm/CRM/Event/Cart/DAO/EventInCart.php b/civicrm/CRM/Event/Cart/DAO/EventInCart.php
index 6a8d1816e7a3359ffe362bdf30cec90a50d9ebf1..3ba453b505e6e29ce4273d5ca3e4e9d53fda6ccb 100644
--- a/civicrm/CRM/Event/Cart/DAO/EventInCart.php
+++ b/civicrm/CRM/Event/Cart/DAO/EventInCart.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Event/Cart/EventInCart.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:81cd95c42078a304bf1a70ea35268a9a)
+ * (GenCodeChecksum:1e58760fd44de010b38a2c59924fe99f)
  */
 
 /**
@@ -106,6 +106,12 @@ class CRM_Event_Cart_DAO_EventInCart extends CRM_Core_DAO {
           'title' => ts('Event In Cart'),
           'description' => ts('Event In Cart ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_events_in_carts.id',
           'table_name' => 'civicrm_events_in_carts',
           'entity' => 'EventInCart',
@@ -122,6 +128,12 @@ class CRM_Event_Cart_DAO_EventInCart extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Event ID'),
           'description' => ts('FK to Event ID'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_events_in_carts.event_id',
           'table_name' => 'civicrm_events_in_carts',
           'entity' => 'EventInCart',
@@ -138,6 +150,12 @@ class CRM_Event_Cart_DAO_EventInCart extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Event Cart ID'),
           'description' => ts('FK to Event Cart ID'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_events_in_carts.event_cart_id',
           'table_name' => 'civicrm_events_in_carts',
           'entity' => 'EventInCart',
diff --git a/civicrm/CRM/Event/DAO/Event.php b/civicrm/CRM/Event/DAO/Event.php
index 08fa02f4f01a7f035b7a85aa2d4e2ab61650c8bf..25bfe86c1b1f8b82c340d49874a06fd0dc066d41 100644
--- a/civicrm/CRM/Event/DAO/Event.php
+++ b/civicrm/CRM/Event/DAO/Event.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Event/Event.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:82ed6a487ce2639e83cada1ac876c895)
+ * (GenCodeChecksum:de7f278485ab58cbd37475fd20b4246d)
  */
 
 /**
@@ -733,6 +733,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'title' => ts('Event ID'),
           'description' => ts('Event'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.id',
           'table_name' => 'civicrm_event',
           'entity' => 'Event',
@@ -752,6 +758,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'description' => ts('Event Title (e.g. Fall Fundraiser Dinner)'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_event.title',
           'headerPattern' => '/(event.)?title$/i',
@@ -773,6 +785,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'description' => ts('Brief summary of event. Text and html allowed. Displayed on Event Registration form and can be used on other CMS pages which need an event summary.'),
           'rows' => 4,
           'cols' => 60,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.summary',
           'table_name' => 'civicrm_event',
           'entity' => 'Event',
@@ -791,6 +809,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'description' => ts('Full description of event. Text and html allowed. Displayed on built-in Event Information screens.'),
           'rows' => 8,
           'cols' => 60,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.description',
           'table_name' => 'civicrm_event',
           'entity' => 'Event',
@@ -807,6 +831,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Event Type'),
           'description' => ts('Event Type ID.Implicit FK to civicrm_option_value where option_group = event_type.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.event_type_id',
           'default' => '0',
           'table_name' => 'civicrm_event',
@@ -828,6 +858,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Participant Listing'),
           'description' => ts('Should we expose the participant list? Implicit FK to civicrm_option_value where option_group = participant_listing.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.participant_listing_id',
           'default' => NULL,
           'table_name' => 'civicrm_event',
@@ -849,6 +885,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'title' => ts('Is Event Public'),
           'description' => ts('Public events will be included in the iCal feeds. Access to private event information may be limited using ACLs.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.is_public',
           'default' => '1',
           'table_name' => 'civicrm_event',
@@ -866,6 +908,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME,
           'title' => ts('Event Start Date'),
           'description' => ts('Date and time that event starts.'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_event.start_date',
           'headerPattern' => '/^start|(s(tart\s)?date)$/i',
@@ -886,6 +934,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME,
           'title' => ts('Event End Date'),
           'description' => ts('Date and time that event ends. May be NULL if no defined end date/time'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_event.end_date',
           'headerPattern' => '/^end|(e(nd\s)?date)$/i',
@@ -907,6 +961,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'title' => ts('Is Online Registration'),
           'description' => ts('If true, include registration link on Event Info page.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.is_online_registration',
           'default' => '0',
           'table_name' => 'civicrm_event',
@@ -926,6 +986,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'description' => ts('Text for link to Event Registration form which is displayed on Event Information screen when is_online_registration is true.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.registration_link_text',
           'table_name' => 'civicrm_event',
           'entity' => 'Event',
@@ -941,6 +1007,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME,
           'title' => ts('Registration Start Date'),
           'description' => ts('Date and time that online registration starts.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.registration_start_date',
           'table_name' => 'civicrm_event',
           'entity' => 'Event',
@@ -958,6 +1030,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME,
           'title' => ts('Registration End Date'),
           'description' => ts('Date and time that online registration ends.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.registration_end_date',
           'table_name' => 'civicrm_event',
           'entity' => 'Event',
@@ -975,6 +1053,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Max Participants'),
           'description' => ts('Maximum number of registered participants to allow. After max is reached, a custom Event Full message is displayed. If NULL, allow unlimited number of participants.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.max_participants',
           'default' => NULL,
           'table_name' => 'civicrm_event',
@@ -993,6 +1077,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'description' => ts('Message to display on Event Information page and INSTEAD OF Event Registration form if maximum participants are signed up. Can include email address/info about getting on a waiting list, etc. Text and html allowed.'),
           'rows' => 4,
           'cols' => 60,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.event_full_text',
           'table_name' => 'civicrm_event',
           'entity' => 'Event',
@@ -1010,6 +1100,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'title' => ts('Is this a PAID event?'),
           'description' => ts('If true, one or more fee amounts must be set and a Payment Processor must be configured for Online Event Registration.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.is_monetary',
           'default' => '0',
           'table_name' => 'civicrm_event',
@@ -1027,6 +1123,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Financial Type'),
           'description' => ts('Financial type assigned to paid event registrations for this event. Required if is_monetary is true.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.financial_type_id',
           'default' => NULL,
           'table_name' => 'civicrm_event',
@@ -1050,6 +1152,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'description' => ts('Payment Processors configured for this Event (if is_monetary is true)'),
           'maxlength' => 128,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.payment_processor',
           'table_name' => 'civicrm_event',
           'entity' => 'Event',
@@ -1073,6 +1181,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'title' => ts('Map Enabled'),
           'description' => ts('Include a map block on the Event Information page when geocode info is available and a mapping provider has been specified?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.is_map',
           'default' => '0',
           'table_name' => 'civicrm_event',
@@ -1090,6 +1204,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'title' => ts('Is Active'),
           'description' => ts('Is this Event enabled or disabled/cancelled?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.is_active',
           'default' => '0',
           'table_name' => 'civicrm_event',
@@ -1108,6 +1228,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'title' => ts('Fee Label'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_event.fee_label',
           'headerPattern' => '/^fee|(f(ee\s)?label)$/i',
@@ -1127,6 +1253,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'title' => ts('Show Location'),
           'description' => ts('If true, show event location.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.is_show_location',
           'default' => '1',
           'table_name' => 'civicrm_event',
@@ -1143,6 +1275,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Location Block ID'),
           'description' => ts('FK to Location Block ID'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.loc_block_id',
           'table_name' => 'civicrm_event',
           'entity' => 'Event',
@@ -1159,6 +1297,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Default Role'),
           'description' => ts('Participant role ID. Implicit FK to civicrm_option_value where option_group = participant_role.'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_event.default_role_id',
           'export' => TRUE,
@@ -1183,6 +1327,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'description' => ts('Introductory message for Event Registration page. Text and html allowed. Displayed at the top of Event Registration form.'),
           'rows' => 6,
           'cols' => 50,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.intro_text',
           'table_name' => 'civicrm_event',
           'entity' => 'Event',
@@ -1200,6 +1350,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'description' => ts('Footer message for Event Registration page. Text and html allowed. Displayed at the bottom of Event Registration form.'),
           'rows' => 6,
           'cols' => 50,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.footer_text',
           'table_name' => 'civicrm_event',
           'entity' => 'Event',
@@ -1217,6 +1373,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'description' => ts('Title for Confirmation page.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.confirm_title',
           'default' => NULL,
           'table_name' => 'civicrm_event',
@@ -1235,6 +1397,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'description' => ts('Introductory message for Event Registration page. Text and html allowed. Displayed at the top of Event Registration form.'),
           'rows' => 6,
           'cols' => 50,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.confirm_text',
           'table_name' => 'civicrm_event',
           'entity' => 'Event',
@@ -1252,6 +1420,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'description' => ts('Footer message for Event Registration page. Text and html allowed. Displayed at the bottom of Event Registration form.'),
           'rows' => 6,
           'cols' => 50,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.confirm_footer_text',
           'table_name' => 'civicrm_event',
           'entity' => 'Event',
@@ -1268,6 +1442,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'title' => ts('Is confirm email'),
           'description' => ts('If true, confirmation is automatically emailed to contact on successful registration.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.is_email_confirm',
           'default' => '0',
           'table_name' => 'civicrm_event',
@@ -1286,6 +1466,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'description' => ts('text to include above standard event info on confirmation email. emails are text-only, so do not allow html for now'),
           'rows' => 4,
           'cols' => 50,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.confirm_email_text',
           'table_name' => 'civicrm_event',
           'entity' => 'Event',
@@ -1303,6 +1489,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'description' => ts('FROM email name used for confirmation emails.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.confirm_from_name',
           'table_name' => 'civicrm_event',
           'entity' => 'Event',
@@ -1320,6 +1512,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'description' => ts('FROM email address used for confirmation emails.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.confirm_from_email',
           'table_name' => 'civicrm_event',
           'entity' => 'Event',
@@ -1337,6 +1535,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'description' => ts('comma-separated list of email addresses to cc each time a confirmation is sent'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.cc_confirm',
           'table_name' => 'civicrm_event',
           'entity' => 'Event',
@@ -1355,6 +1559,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'description' => ts('comma-separated list of email addresses to bcc each time a confirmation is sent'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.bcc_confirm',
           'table_name' => 'civicrm_event',
           'entity' => 'Event',
@@ -1371,6 +1581,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Default Fee ID'),
           'description' => ts('FK to civicrm_option_value.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.default_fee_id',
           'table_name' => 'civicrm_event',
           'entity' => 'Event',
@@ -1383,6 +1599,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Default Discount Fee ID'),
           'description' => ts('FK to civicrm_option_value.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.default_discount_fee_id',
           'table_name' => 'civicrm_event',
           'entity' => 'Event',
@@ -1397,6 +1619,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'description' => ts('Title for ThankYou page.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.thankyou_title',
           'default' => NULL,
           'table_name' => 'civicrm_event',
@@ -1415,6 +1643,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'description' => ts('ThankYou Text.'),
           'rows' => 6,
           'cols' => 50,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.thankyou_text',
           'table_name' => 'civicrm_event',
           'entity' => 'Event',
@@ -1432,6 +1666,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'description' => ts('Footer message.'),
           'rows' => 6,
           'cols' => 50,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.thankyou_footer_text',
           'table_name' => 'civicrm_event',
           'entity' => 'Event',
@@ -1448,6 +1688,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'title' => ts('Pay Later Allowed'),
           'description' => ts('if true - allows the user to send payment directly to the org later'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.is_pay_later',
           'default' => '0',
           'table_name' => 'civicrm_event',
@@ -1464,6 +1710,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Pay Later Text'),
           'description' => ts('The text displayed to the user in the main form'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.pay_later_text',
           'table_name' => 'civicrm_event',
           'entity' => 'Event',
@@ -1479,6 +1731,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Pay Later Receipt Text'),
           'description' => ts('The receipt sent to the user instead of the normal receipt text'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.pay_later_receipt',
           'table_name' => 'civicrm_event',
           'entity' => 'Event',
@@ -1495,6 +1753,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'title' => ts('Partial Payments Enabled'),
           'description' => ts('is partial payment enabled for this event'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.is_partial_payment',
           'default' => '0',
           'table_name' => 'civicrm_event',
@@ -1513,6 +1777,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'description' => ts('Initial amount label for partial payment'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.initial_amount_label',
           'table_name' => 'civicrm_event',
           'entity' => 'Event',
@@ -1528,6 +1798,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Initial Amount Help Text'),
           'description' => ts('Initial amount help text for partial payment'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.initial_amount_help_text',
           'table_name' => 'civicrm_event',
           'entity' => 'Event',
@@ -1547,6 +1823,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
             20,
             2,
           ],
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.min_initial_amount',
           'table_name' => 'civicrm_event',
           'entity' => 'Event',
@@ -1563,6 +1845,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'title' => ts('Allow Multiple Registrations'),
           'description' => ts('if true - allows the user to register multiple participants for event'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.is_multiple_registrations',
           'default' => '0',
           'table_name' => 'civicrm_event',
@@ -1579,6 +1867,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Maximum number of additional participants per registration'),
           'description' => ts('Maximum number of additional participants that can be registered on a single booking'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.max_additional_participants',
           'default' => '0',
           'table_name' => 'civicrm_event',
@@ -1593,6 +1887,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'title' => ts('Does Event allow multiple registrations from same email address?'),
           'description' => ts('if true - allows the user to register multiple registrations from same email address.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.allow_same_participant_emails',
           'default' => '0',
           'table_name' => 'civicrm_event',
@@ -1610,6 +1910,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'title' => ts('Waitlist Enabled'),
           'description' => ts('Whether the event has waitlist support.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.has_waitlist',
           'default' => '0',
           'table_name' => 'civicrm_event',
@@ -1627,6 +1933,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'title' => ts('Requires Approval'),
           'description' => ts('Whether participants require approval before they can finish registering.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.requires_approval',
           'default' => '0',
           'table_name' => 'civicrm_event',
@@ -1644,6 +1956,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Expiration Time'),
           'description' => ts('Expire pending but unconfirmed registrations after this many hours.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.expiration_time',
           'table_name' => 'civicrm_event',
           'entity' => 'Event',
@@ -1661,6 +1979,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'title' => ts('Allow Self-service Cancellation or Transfer'),
           'description' => ts('Allow self service cancellation or transfer for event?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.allow_selfcancelxfer',
           'default' => '0',
           'table_name' => 'civicrm_event',
@@ -1677,6 +2001,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Self-service Cancellation or Transfer Time'),
           'description' => ts('Number of hours prior to event start date to allow self-service cancellation or transfer.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.selfcancelxfer_time',
           'default' => '0',
           'table_name' => 'civicrm_event',
@@ -1695,6 +2025,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'description' => ts('Text to display when the event is full, but participants can signup for a waitlist.'),
           'rows' => 4,
           'cols' => 60,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.waitlist_text',
           'table_name' => 'civicrm_event',
           'entity' => 'Event',
@@ -1713,6 +2049,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'description' => ts('Text to display when the approval is required to complete registration for an event.'),
           'rows' => 4,
           'cols' => 60,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.approval_req_text',
           'table_name' => 'civicrm_event',
           'entity' => 'Event',
@@ -1730,6 +2072,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'title' => ts('Is an Event Template'),
           'description' => ts('whether the event has template'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.is_template',
           'default' => '0',
           'table_name' => 'civicrm_event',
@@ -1748,6 +2096,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'description' => ts('Event Template Title'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_event.template_title',
           'headerPattern' => '/(template.)?title$/i',
@@ -1766,6 +2120,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Created By Contact ID'),
           'description' => ts('FK to civicrm_contact, who created this event'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.created_id',
           'table_name' => 'civicrm_event',
           'entity' => 'Event',
@@ -1782,6 +2142,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME,
           'title' => ts('Event Created Date'),
           'description' => ts('Date and time that event was created.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.created_date',
           'table_name' => 'civicrm_event',
           'entity' => 'Event',
@@ -1796,6 +2162,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'description' => ts('3 character string, value from config setting or input via user.'),
           'maxlength' => 3,
           'size' => CRM_Utils_Type::FOUR,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_event.currency',
           'headerPattern' => '/cur(rency)?/i',
@@ -1823,6 +2195,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Campaign ID'),
           'description' => ts('The campaign for which this event has been created.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.campaign_id',
           'table_name' => 'civicrm_event',
           'entity' => 'Event',
@@ -1848,6 +2226,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'title' => ts('Is shared through social media'),
           'description' => ts('Can people share the event through social media?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.is_share',
           'default' => '1',
           'table_name' => 'civicrm_event',
@@ -1865,6 +2249,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'title' => ts('Is the booking confirmation screen enabled?'),
           'description' => ts('If false, the event booking confirmation screen gets skipped'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.is_confirm_enabled',
           'default' => '1',
           'table_name' => 'civicrm_event',
@@ -1881,6 +2271,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Parent Event ID'),
           'description' => ts('Implicit FK to civicrm_event: parent event'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.parent_event_id',
           'default' => NULL,
           'table_name' => 'civicrm_event',
@@ -1897,6 +2293,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Subevent Slot Label ID'),
           'description' => ts('Subevent slot label. Implicit FK to civicrm_option_value where option_group = conference_slot.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.slot_label_id',
           'default' => NULL,
           'table_name' => 'civicrm_event',
@@ -1913,6 +2315,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Dedupe Rule ID'),
           'description' => ts('Rule to use when matching registrations for this event'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.dedupe_rule_group_id',
           'default' => NULL,
           'table_name' => 'civicrm_event',
@@ -1938,6 +2346,12 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO {
           'title' => ts('Is billing block required'),
           'description' => ts('if true than billing block is required this event'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_event.is_billing_required',
           'default' => '0',
           'table_name' => 'civicrm_event',
diff --git a/civicrm/CRM/Event/DAO/Participant.php b/civicrm/CRM/Event/DAO/Participant.php
index 5d46185fc297192e4c50c53ae8a53c1546919244..e25c471dd3fbea23ac0fc0ac8a6c5aa287b02ff3 100644
--- a/civicrm/CRM/Event/DAO/Participant.php
+++ b/civicrm/CRM/Event/DAO/Participant.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Event/Participant.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:7a087d50a97bfd0967025cc09eb138f5)
+ * (GenCodeChecksum:2cc6fce620624d08af9f5f0739a81392)
  */
 
 /**
@@ -291,6 +291,12 @@ class CRM_Event_DAO_Participant extends CRM_Core_DAO {
           'title' => ts('Participant ID'),
           'description' => ts('Participant ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_participant.id',
           'headerPattern' => '/(^(participant(.)?)?id$)/i',
@@ -311,6 +317,12 @@ class CRM_Event_DAO_Participant extends CRM_Core_DAO {
           'title' => ts('Contact ID'),
           'description' => ts('FK to Contact ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_participant.contact_id',
           'headerPattern' => '/contact(.?id)?/i',
@@ -332,6 +344,12 @@ class CRM_Event_DAO_Participant extends CRM_Core_DAO {
           'title' => ts('Event ID'),
           'description' => ts('FK to Event ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_participant.event_id',
           'headerPattern' => '/event id$/i',
@@ -353,6 +371,12 @@ class CRM_Event_DAO_Participant extends CRM_Core_DAO {
           'title' => ts('Status ID'),
           'description' => ts('Participant status ID. FK to civicrm_participant_status_type. Default of 1 should map to status = Registered.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_participant.status_id',
           'headerPattern' => '/(participant.)?(status)$/i',
@@ -381,6 +405,12 @@ class CRM_Event_DAO_Participant extends CRM_Core_DAO {
           'description' => ts('Participant role ID. Implicit FK to civicrm_option_value where option_group = participant_role.'),
           'maxlength' => 128,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_participant.role_id',
           'headerPattern' => '/(participant.)?(role)$/i',
@@ -406,6 +436,12 @@ class CRM_Event_DAO_Participant extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME,
           'title' => ts('Register date'),
           'description' => ts('When did contact register for event?'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_participant.register_date',
           'headerPattern' => '/^(r(egister\s)?date)$/i',
@@ -427,6 +463,12 @@ class CRM_Event_DAO_Participant extends CRM_Core_DAO {
           'description' => ts('Source of this event registration.'),
           'maxlength' => 128,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_participant.source',
           'headerPattern' => '/(participant.)?(source)$/i',
@@ -446,6 +488,12 @@ class CRM_Event_DAO_Participant extends CRM_Core_DAO {
           'title' => ts('Fee level'),
           'description' => ts('Populate with the label (text) associated with a fee level for paid events with multiple levels. Note that
       we store the label value and not the key'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_participant.fee_level',
           'headerPattern' => '/^(f(ee\s)?level)$/i',
@@ -462,6 +510,12 @@ class CRM_Event_DAO_Participant extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_BOOLEAN,
           'title' => ts('Test'),
           'required' => TRUE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_participant.is_test',
           'export' => TRUE,
@@ -477,6 +531,12 @@ class CRM_Event_DAO_Participant extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_BOOLEAN,
           'title' => ts('Is Pay Later'),
           'required' => TRUE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_participant.is_pay_later',
           'headerPattern' => '/(is.)?(pay(.)?later)$/i',
@@ -497,6 +557,12 @@ class CRM_Event_DAO_Participant extends CRM_Core_DAO {
             20,
             2,
           ],
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_participant.fee_amount',
           'headerPattern' => '/fee(.?am(ou)?nt)?/i',
@@ -513,6 +579,12 @@ class CRM_Event_DAO_Participant extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Registered By Participant ID'),
           'description' => ts('FK to Participant ID'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_participant.registered_by_id',
           'export' => TRUE,
@@ -532,6 +604,12 @@ class CRM_Event_DAO_Participant extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Discount ID'),
           'description' => ts('FK to Discount ID'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_participant.discount_id',
           'default' => NULL,
           'table_name' => 'civicrm_participant',
@@ -551,6 +629,12 @@ class CRM_Event_DAO_Participant extends CRM_Core_DAO {
           'description' => ts('3 character string, value derived from config setting.'),
           'maxlength' => 3,
           'size' => CRM_Utils_Type::FOUR,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_participant.fee_currency',
           'headerPattern' => '/(fee)?.?cur(rency)?/i',
@@ -578,6 +662,12 @@ class CRM_Event_DAO_Participant extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Campaign ID'),
           'description' => ts('The campaign for which this participant has been registered.'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_participant.campaign_id',
           'export' => TRUE,
@@ -604,6 +694,12 @@ class CRM_Event_DAO_Participant extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Discount Amount'),
           'description' => ts('Discount Amount'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_participant.discount_amount',
           'table_name' => 'civicrm_participant',
           'entity' => 'Participant',
@@ -616,6 +712,12 @@ class CRM_Event_DAO_Participant extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Event Cart ID'),
           'description' => ts('FK to civicrm_event_carts'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_participant.cart_id',
           'table_name' => 'civicrm_participant',
           'entity' => 'Participant',
@@ -632,6 +734,12 @@ class CRM_Event_DAO_Participant extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Must Wait on List'),
           'description' => ts('On Waiting List'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_participant.must_wait',
           'table_name' => 'civicrm_participant',
           'entity' => 'Participant',
@@ -644,6 +752,12 @@ class CRM_Event_DAO_Participant extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Transferred to Contact ID'),
           'description' => ts('FK to Contact ID'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_participant.transferred_to_contact_id',
           'headerPattern' => '/transfer(.?id)?/i',
@@ -664,6 +778,12 @@ class CRM_Event_DAO_Participant extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Created by Contact ID'),
           'description' => ts('Contact responsible for registering this participant'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_participant.created_id',
           'table_name' => 'civicrm_participant',
           'entity' => 'Participant',
diff --git a/civicrm/CRM/Event/DAO/ParticipantPayment.php b/civicrm/CRM/Event/DAO/ParticipantPayment.php
index 425337980aa5e26b98a588f963b34f5fee3d4e2a..7f8e48b4b386f00b9cd61609d90a4e9c1269db21 100644
--- a/civicrm/CRM/Event/DAO/ParticipantPayment.php
+++ b/civicrm/CRM/Event/DAO/ParticipantPayment.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Event/ParticipantPayment.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:11c4258beb32c5f802488d8db20efd1f)
+ * (GenCodeChecksum:9d5ff543a681f5ab73283c304b62316f)
  */
 
 /**
@@ -106,6 +106,12 @@ class CRM_Event_DAO_ParticipantPayment extends CRM_Core_DAO {
           'title' => ts('Payment ID'),
           'description' => ts('Participant Payment ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_participant_payment.id',
           'table_name' => 'civicrm_participant_payment',
           'entity' => 'ParticipantPayment',
@@ -123,6 +129,12 @@ class CRM_Event_DAO_ParticipantPayment extends CRM_Core_DAO {
           'title' => ts('Participant ID'),
           'description' => ts('Participant ID (FK)'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_participant_payment.participant_id',
           'table_name' => 'civicrm_participant_payment',
           'entity' => 'ParticipantPayment',
@@ -140,6 +152,12 @@ class CRM_Event_DAO_ParticipantPayment extends CRM_Core_DAO {
           'title' => ts('Contribution ID'),
           'description' => ts('FK to contribution table.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_participant_payment.contribution_id',
           'table_name' => 'civicrm_participant_payment',
           'entity' => 'ParticipantPayment',
diff --git a/civicrm/CRM/Event/DAO/ParticipantStatusType.php b/civicrm/CRM/Event/DAO/ParticipantStatusType.php
index e8ec700c876f844d6b93c893d78c7e8de026ae0c..c8f90aa306d6ecfcab8751d468fb6c2bc241b4cd 100644
--- a/civicrm/CRM/Event/DAO/ParticipantStatusType.php
+++ b/civicrm/CRM/Event/DAO/ParticipantStatusType.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Event/ParticipantStatusType.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:199d17e543696db3968d8c6770fb20ff)
+ * (GenCodeChecksum:8f6c30f03f591fc2069d17cd7152d5e0)
  */
 
 /**
@@ -151,6 +151,12 @@ class CRM_Event_DAO_ParticipantStatusType extends CRM_Core_DAO {
           'title' => ts('Participant Status Type ID'),
           'description' => ts('unique participant status type id'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_participant_status_type.id',
           'table_name' => 'civicrm_participant_status_type',
           'entity' => 'ParticipantStatusType',
@@ -169,6 +175,12 @@ class CRM_Event_DAO_ParticipantStatusType extends CRM_Core_DAO {
           'description' => ts('non-localized name of the status type'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_participant_status_type.name',
           'export' => TRUE,
@@ -185,6 +197,12 @@ class CRM_Event_DAO_ParticipantStatusType extends CRM_Core_DAO {
           'description' => ts('localized label for display of this status type'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_participant_status_type.label',
           'table_name' => 'civicrm_participant_status_type',
           'entity' => 'ParticipantStatusType',
@@ -199,6 +217,12 @@ class CRM_Event_DAO_ParticipantStatusType extends CRM_Core_DAO {
           'description' => ts('the general group of status type this one belongs to'),
           'maxlength' => 8,
           'size' => CRM_Utils_Type::EIGHT,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_participant_status_type.class',
           'table_name' => 'civicrm_participant_status_type',
           'entity' => 'ParticipantStatusType',
@@ -218,6 +242,12 @@ class CRM_Event_DAO_ParticipantStatusType extends CRM_Core_DAO {
           'title' => ts('Participant Status Is Reserved?>'),
           'description' => ts('whether this is a status type required by the system'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_participant_status_type.is_reserved',
           'default' => '0',
           'table_name' => 'civicrm_participant_status_type',
@@ -232,6 +262,12 @@ class CRM_Event_DAO_ParticipantStatusType extends CRM_Core_DAO {
           'title' => ts('Participant Status is Active'),
           'description' => ts('whether this status type is active'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_participant_status_type.is_active',
           'default' => '1',
           'table_name' => 'civicrm_participant_status_type',
@@ -250,6 +286,12 @@ class CRM_Event_DAO_ParticipantStatusType extends CRM_Core_DAO {
           'title' => ts('Participant Status Counts?'),
           'description' => ts('whether this status type is counted against event size limit'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_participant_status_type.is_counted',
           'default' => '0',
           'table_name' => 'civicrm_participant_status_type',
@@ -264,6 +306,12 @@ class CRM_Event_DAO_ParticipantStatusType extends CRM_Core_DAO {
           'title' => ts('Order'),
           'description' => ts('controls sort order'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_participant_status_type.weight',
           'table_name' => 'civicrm_participant_status_type',
           'entity' => 'ParticipantStatusType',
@@ -276,6 +324,12 @@ class CRM_Event_DAO_ParticipantStatusType extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Participant Status Visibility'),
           'description' => ts('whether the status type is visible to the public, an implicit foreign key to option_value.value related to the `visibility` option_group'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_participant_status_type.visibility_id',
           'table_name' => 'civicrm_participant_status_type',
           'entity' => 'ParticipantStatusType',
diff --git a/civicrm/CRM/Event/Form/ManageEvent/Location.php b/civicrm/CRM/Event/Form/ManageEvent/Location.php
index 5d7be182ea925f1eb939071680b5903f44c6fef5..cc41a4447fbcb930282f98ace1329fcae95f5042 100644
--- a/civicrm/CRM/Event/Form/ManageEvent/Location.php
+++ b/civicrm/CRM/Event/Form/ManageEvent/Location.php
@@ -13,7 +13,6 @@ use Civi\Api4\Event;
 use Civi\Api4\LocBlock;
 use Civi\Api4\Email;
 use Civi\Api4\Phone;
-use Civi\Api4\Address;
 
 /**
  *
@@ -331,8 +330,15 @@ class CRM_Event_Form_ManageEvent_Location extends CRM_Event_Form_ManageEvent {
 
     }
 
-    // Update the Blocks.
-    $addresses = empty($params['address']) ? [] : Address::save(FALSE)->setRecords($params['address'])->execute();
+    // Update location Blocks.
+    $addresses = [];
+    // Don't use APIv4 for address because it doesn't handle custom fields in the format used by this form (custom_xx)
+    foreach ($params['address'] ?? [] as $address) {
+      CRM_Core_BAO_Address::fixAddress($address);
+      $address['custom'] = CRM_Core_BAO_CustomField::postProcess($address, $address['id'] ?? NULL, 'Address');
+      $addresses[] = (array) CRM_Core_BAO_Address::writeRecord($address);
+    }
+    // Using APIv4 for email & phone, the form doesn't support custom data for them anyway
     $emails = empty($params['email']) ? [] : Email::save(FALSE)->setRecords($params['email'])->execute();
     $phones = empty($params['phone']) ? [] : Phone::save(FALSE)->setRecords($params['phone'])->execute();
 
diff --git a/civicrm/CRM/Event/Form/Participant.php b/civicrm/CRM/Event/Form/Participant.php
index 335d1088415a857ab1f73a3d9765ef019cd833ef..cfd7a5b2c2277e1f2b010f4ef91ed211bf173114 100644
--- a/civicrm/CRM/Event/Form/Participant.php
+++ b/civicrm/CRM/Event/Form/Participant.php
@@ -979,9 +979,6 @@ class CRM_Event_Form_Participant extends CRM_Contribute_Form_AbstractEditPayment
     if (!empty($params['contact_id'])) {
       $this->_contactID = $this->_contactId = $params['contact_id'];
     }
-    if (!$this->_priceSetId && $this->_isPaidEvent) {
-      CRM_Core_Error::deprecatedFunctionWarning('this should never be true, handling to be removed');
-    }
     if ($this->_priceSetId && $isQuickConfig = CRM_Core_DAO::getFieldValue('CRM_Price_DAO_PriceSet', $this->_priceSetId, 'is_quick_config')) {
       $this->_quickConfig = $isQuickConfig;
     }
@@ -1797,10 +1794,7 @@ class CRM_Event_Form_Participant extends CRM_Contribute_Form_AbstractEditPayment
       //re-enter the values for UPDATE mode
       $params['fee_level'] = $params['amount_level'] = $this->getParticipantValue('fee_level');
       $params['fee_amount'] = $this->getParticipantValue('fee_amount');
-      if (isset($params['priceSetId'])) {
-        CRM_Core_Error::deprecatedFunctionWarning('It seems this line is never hit & can go.');
-        $lineItem[0] = CRM_Price_BAO_LineItem::getLineItems($this->_id);
-      }
+
       //also add additional participant's fee level/priceset
       if (CRM_Event_BAO_Participant::isPrimaryParticipant($this->_id)) {
         $additionalIds = CRM_Event_BAO_Participant::getAdditionalParticipantIds($this->_id);
diff --git a/civicrm/CRM/Event/Import/Form/MapField.php b/civicrm/CRM/Event/Import/Form/MapField.php
index 16dbef549ba1162be3414ea82ead916d58c8d903..fe1c4dd2cdc464aed9c44b6a08f349da450173c3 100644
--- a/civicrm/CRM/Event/Import/Form/MapField.php
+++ b/civicrm/CRM/Event/Import/Form/MapField.php
@@ -20,6 +20,15 @@
  */
 class CRM_Event_Import_Form_MapField extends CRM_Import_Form_MapField {
 
+  /**
+   * Get the name of the type to be stored in civicrm_user_job.type_id.
+   *
+   * @return string
+   */
+  public function getUserJobType(): string {
+    return 'participant_import';
+  }
+
   /**
    * Set variables up before form is built.
    *
diff --git a/civicrm/CRM/Event/Import/Parser/Participant.php b/civicrm/CRM/Event/Import/Parser/Participant.php
index 923143d14c47233f38f6977bcccd14cdd91211d2..3c50b9ced0669be91eff5e9d01d74eda81a5d210 100644
--- a/civicrm/CRM/Event/Import/Parser/Participant.php
+++ b/civicrm/CRM/Event/Import/Parser/Participant.php
@@ -77,6 +77,7 @@ class CRM_Event_Import_Parser_Participant extends CRM_Import_Parser {
         'name' => 'participant_import',
         'label' => ts('Participant Import'),
         'entity' => 'Participant',
+        'url' => 'civicrm/import/participant',
       ],
     ];
   }
diff --git a/civicrm/CRM/Event/Tokens.php b/civicrm/CRM/Event/Tokens.php
index 3ac471ad17da9ac61e3fd6b2dae94368e0165e80..5e00e521dd25d998a6eb3595805212fedeb3a8a6 100644
--- a/civicrm/CRM/Event/Tokens.php
+++ b/civicrm/CRM/Event/Tokens.php
@@ -17,13 +17,6 @@ use Civi\Token\TokenRow;
  * Class CRM_Event_Tokens
  *
  * Generate "event.*" tokens.
- *
- * This TokenSubscriber was produced by refactoring the code from the
- * scheduled-reminder system with the goal of making that system
- * more flexible. The current implementation is still coupled to
- * scheduled-reminders. It would be good to figure out a more generic
- * implementation which is not tied to scheduled reminders, although
- * that is outside the current scope.
  */
 class CRM_Event_Tokens extends CRM_Core_EntityTokens {
 
diff --git a/civicrm/CRM/Extension/Manager.php b/civicrm/CRM/Extension/Manager.php
index b64bcc23f129bf9921add2fbd97f439db6ca4741..6b1f1cfb598ff8a2c3415c9d438b9b5ab77b7942 100644
--- a/civicrm/CRM/Extension/Manager.php
+++ b/civicrm/CRM/Extension/Manager.php
@@ -700,11 +700,12 @@ class CRM_Extension_Manager {
     $dao = new CRM_Core_DAO_Extension();
     $dao->full_name = $info->key;
     if ($dao->find(TRUE)) {
-      if (CRM_Core_BAO_Extension::del($dao->id)) {
+      try {
+        CRM_Core_BAO_Extension::deleteRecord(['id' => $dao->id]);
         CRM_Core_Session::setStatus(ts('Selected option value has been deleted.'), ts('Deleted'), 'success');
       }
-      else {
-        throw new CRM_Extension_Exception("Failed to remove extension entry");
+      catch (CRM_Core_Exception $e) {
+        throw new CRM_Extension_Exception("Failed to remove extension entry $dao->id");
       }
     } // else: post-condition already satisified
   }
diff --git a/civicrm/CRM/Extension/Manager/Report.php b/civicrm/CRM/Extension/Manager/Report.php
index 06160d34fb3360911b1ac2f0f8ae64f5620ce38c..45f1adae1c60e99fb173055bdbdb93a4ba39a41a 100644
--- a/civicrm/CRM/Extension/Manager/Report.php
+++ b/civicrm/CRM/Extension/Manager/Report.php
@@ -79,7 +79,7 @@ class CRM_Extension_Manager_Report extends CRM_Extension_Manager_Base {
     $customReports = $this->getCustomReportsByName();
     $cr = $this->getCustomReportsById();
     $id = $cr[$customReports[$info->key]];
-    $optionValue = CRM_Core_BAO_OptionValue::del($id);
+    $optionValue = CRM_Core_BAO_OptionValue::deleteRecord(['id' => $id]);
 
     return $optionValue ? TRUE : FALSE;
   }
diff --git a/civicrm/CRM/Extension/Manager/Search.php b/civicrm/CRM/Extension/Manager/Search.php
index 2f3910896c32c1b8292ab87fb118c55e28cffbac..c251555bcaecc25f6b4ff68d2b68b6c76dbd29cf 100644
--- a/civicrm/CRM/Extension/Manager/Search.php
+++ b/civicrm/CRM/Extension/Manager/Search.php
@@ -77,7 +77,7 @@ class CRM_Extension_Manager_Search extends CRM_Extension_Manager_Base {
 
     $cs = $this->getCustomSearchesById();
     $id = $cs[$customSearchesByName[$info->key]];
-    CRM_Core_BAO_OptionValue::del($id);
+    CRM_Core_BAO_OptionValue::deleteRecord(['id' => $id]);
 
     return TRUE;
   }
diff --git a/civicrm/CRM/Financial/BAO/EntityFinancialAccount.php b/civicrm/CRM/Financial/BAO/EntityFinancialAccount.php
index c2d8839d5d6706347afaf705dab923907c401ce4..283247a516833050db3d411e6a595089fc61ee16 100644
--- a/civicrm/CRM/Financial/BAO/EntityFinancialAccount.php
+++ b/civicrm/CRM/Financial/BAO/EntityFinancialAccount.php
@@ -205,7 +205,7 @@ class CRM_Financial_BAO_EntityFinancialAccount extends CRM_Financial_DAO_EntityF
         'account_type_code' => 'INC',
         'is_active' => 1,
       ];
-      $financialAccount = CRM_Financial_BAO_FinancialAccount::add($params);
+      $financialAccount = CRM_Financial_BAO_FinancialAccount::writeRecord($params);
     }
     else {
       $existingFinancialAccount[$dao->financial_account_type_id] = $dao->id;
diff --git a/civicrm/CRM/Financial/BAO/FinancialAccount.php b/civicrm/CRM/Financial/BAO/FinancialAccount.php
index 77f65011ace504d318791a413ee8c7b62842384b..88b9b879b98566f7af146ad9c6307c2562d37bc3 100644
--- a/civicrm/CRM/Financial/BAO/FinancialAccount.php
+++ b/civicrm/CRM/Financial/BAO/FinancialAccount.php
@@ -34,17 +34,13 @@ class CRM_Financial_BAO_FinancialAccount extends CRM_Financial_DAO_FinancialAcco
   }
 
   /**
-   * Update the is_active flag in the db.
-   *
+   * @deprecated - this bypasses hooks.
    * @param int $id
-   *   Id of the database record.
    * @param bool $is_active
-   *   Value we want to set the is_active field.
-   *
    * @return bool
-   *   true if we found and updated the object, else false
    */
   public static function setIsActive($id, $is_active) {
+    CRM_Core_Error::deprecatedFunctionWarning('writeRecord');
     return CRM_Core_DAO::setFieldValue('CRM_Financial_DAO_FinancialAccount', $id, 'is_active', $is_active);
   }
 
@@ -57,6 +53,7 @@ class CRM_Financial_BAO_FinancialAccount extends CRM_Financial_DAO_FinancialAcco
    * @return CRM_Financial_DAO_FinancialAccount
    */
   public static function add($params) {
+    CRM_Core_Error::deprecatedFunctionWarning('writeRecord');
     return self::writeRecord($params);
   }
 
diff --git a/civicrm/CRM/Financial/BAO/FinancialType.php b/civicrm/CRM/Financial/BAO/FinancialType.php
index e832df68ae051c6fb0cf87ebe6505c0587d474b2..bb2cc98d7f0f041d110e330ec2a111f930161c82 100644
--- a/civicrm/CRM/Financial/BAO/FinancialType.php
+++ b/civicrm/CRM/Financial/BAO/FinancialType.php
@@ -49,16 +49,13 @@ class CRM_Financial_BAO_FinancialType extends CRM_Financial_DAO_FinancialType im
   }
 
   /**
-   * Update the is_active flag in the db.
-   *
+   * @deprecated - this bypasses hooks.
    * @param int $id
-   *   Id of the database record.
    * @param bool $is_active
-   *   Value we want to set the is_active field.
-   *
    * @return bool
    */
   public static function setIsActive($id, $is_active) {
+    CRM_Core_Error::deprecatedFunctionWarning('writeRecord');
     return CRM_Core_DAO::setFieldValue('CRM_Financial_DAO_FinancialType', $id, 'is_active', $is_active);
   }
 
@@ -71,6 +68,7 @@ class CRM_Financial_BAO_FinancialType extends CRM_Financial_DAO_FinancialType im
    * @deprecated
    */
   public static function create(array $params) {
+    CRM_Core_Error::deprecatedFunctionWarning('writeRecord');
     return self::writeRecord($params);
   }
 
@@ -88,6 +86,7 @@ class CRM_Financial_BAO_FinancialType extends CRM_Financial_DAO_FinancialType im
    * @deprecated
    */
   public static function add(array $params, $ids = []) {
+    CRM_Core_Error::deprecatedFunctionWarning('deleteRecord');
     return self::writeRecord($params);
   }
 
@@ -99,6 +98,7 @@ class CRM_Financial_BAO_FinancialType extends CRM_Financial_DAO_FinancialType im
    * @return array|bool
    */
   public static function del($financialTypeId) {
+    CRM_Core_Error::deprecatedFunctionWarning('deleteRecord');
     try {
       static::deleteRecord(['id' => $financialTypeId]);
       return TRUE;
diff --git a/civicrm/CRM/Financial/BAO/PaymentProcessor.php b/civicrm/CRM/Financial/BAO/PaymentProcessor.php
index 99ad17f8cffb52777ee77cf33c837d8bb38b9f12..986adf5573222904bcfc80d4e94d779b6beaa070 100644
--- a/civicrm/CRM/Financial/BAO/PaymentProcessor.php
+++ b/civicrm/CRM/Financial/BAO/PaymentProcessor.php
@@ -26,67 +26,14 @@ class CRM_Financial_BAO_PaymentProcessor extends CRM_Financial_DAO_PaymentProces
   public static $_defaultPaymentProcessor = NULL;
 
   /**
-   * Create Payment Processor.
+   * @deprecated
    *
    * @param array $params
-   *   Parameters for Processor entity.
    *
    * @return CRM_Financial_DAO_PaymentProcessor
-   *
-   * @throws \CRM_Core_Exception
    */
   public static function create(array $params): CRM_Financial_DAO_PaymentProcessor {
-    // If we are creating a new PaymentProcessor and have not specified the payment instrument to use, get the default from the Payment Processor Type.
-    if (empty($params['id']) && empty($params['payment_instrument_id'])) {
-      $params['payment_instrument_id'] = civicrm_api3('PaymentProcessorType', 'getvalue', [
-        'id' => $params['payment_processor_type_id'],
-        'return' => 'payment_instrument_id',
-      ]);
-    }
-    $processor = new CRM_Financial_DAO_PaymentProcessor();
-    $processor->copyValues($params);
-
-    if (empty($params['id'])) {
-      $ppTypeDAO = new CRM_Financial_DAO_PaymentProcessorType();
-      $ppTypeDAO->id = $params['payment_processor_type_id'];
-      if (!$ppTypeDAO->find(TRUE)) {
-        throw new CRM_Core_Exception(ts('Could not find payment processor meta information'));
-      }
-
-      // also copy meta fields from the info DAO
-      $processor->is_recur = $ppTypeDAO->is_recur;
-      $processor->billing_mode = $ppTypeDAO->billing_mode;
-      $processor->class_name = $ppTypeDAO->class_name;
-      $processor->payment_type = $ppTypeDAO->payment_type;
-    }
-
-    $processor->save();
-    // CRM-11826, add entry in civicrm_entity_financial_account
-    // if financial_account_id is not NULL
-    if (!empty($params['financial_account_id'])) {
-      $relationTypeId = key(CRM_Core_PseudoConstant::accountOptionValues('account_relationship', NULL, " AND v.name LIKE 'Asset Account is' "));
-      $values = [
-        'entity_table' => 'civicrm_payment_processor',
-        'entity_id' => $processor->id,
-        'account_relationship' => $relationTypeId,
-        'financial_account_id' => $params['financial_account_id'],
-      ];
-      CRM_Financial_BAO_EntityFinancialAccount::add($values);
-    }
-
-    if (isset($params['id']) && isset($params['is_active']) && !isset($params['is_test'])) {
-      // check if is_active has changed & if so update test instance is_active too.
-      $test_id = self::getTestProcessorId($params['id']);
-      $testDAO = new CRM_Financial_DAO_PaymentProcessor();
-      $testDAO->id = $test_id;
-      if ($testDAO->find(TRUE)) {
-        $testDAO->is_active = $params['is_active'];
-        $testDAO->save();
-      }
-    }
-
-    Civi\Payment\System::singleton()->flushProcessors();
-    return $processor;
+    return self::writeRecord($params);
   }
 
   /**
@@ -143,17 +90,13 @@ class CRM_Financial_BAO_PaymentProcessor extends CRM_Financial_DAO_PaymentProces
   }
 
   /**
-   * Update the is_active flag in the db.
-   *
+   * @deprecated - this bypasses hooks.
    * @param int $id
-   *   Id of the database record.
    * @param bool $is_active
-   *   Value we want to set the is_active field.
-   *
    * @return bool
-   *   true if we found and updated the object, else false
    */
   public static function setIsActive($id, $is_active) {
+    CRM_Core_Error::deprecatedFunctionWarning('writeRecord');
     return CRM_Core_DAO::setFieldValue('CRM_Financial_DAO_PaymentProcessor', $id, 'is_active', $is_active);
   }
 
@@ -180,26 +123,83 @@ class CRM_Financial_BAO_PaymentProcessor extends CRM_Financial_DAO_PaymentProces
    * @deprecated
    */
   public static function del($paymentProcessorID) {
-    if (!$paymentProcessorID) {
-      throw new CRM_Core_Exception(ts('Invalid value passed to delete function.'));
-    }
+    CRM_Core_Error::deprecatedFunctionWarning('deleteRecord');
     static::deleteRecord(['id' => $paymentProcessorID]);
   }
 
+  /**
+   * Callback for hook_civicrm_pre().
+   *
+   * @param \Civi\Core\Event\PreEvent $event
+   *
+   * @throws \CRM_Core_Exception
+   */
+  public static function self_hook_civicrm_pre(\Civi\Core\Event\PreEvent $event): void {
+    if ($event->action === 'create') {
+      // Supply defaults for `title` and `frontend_title`
+      if (!isset($event->params['title'])) {
+        $event->params['title'] = $event->params['name'];
+      }
+      if (!isset($event->params['frontend_title'])) {
+        $event->params['frontend_title'] = $event->params['title'];
+      }
+
+      // also copy meta fields from the ppType DAO
+      $paymentProcessorType = new CRM_Financial_DAO_PaymentProcessorType();
+      $paymentProcessorType->id = $event->params['payment_processor_type_id'];
+      if (!$paymentProcessorType->find(TRUE)) {
+        throw new CRM_Core_Exception(ts('Could not find payment processor meta information'));
+      }
+      // If we are creating a new PaymentProcessor and have not specified the payment instrument to use, get the default from the Payment Processor Type.
+      if (empty($event->params['payment_instrument_id'])) {
+        $event->params['payment_instrument_id'] = $paymentProcessorType->payment_instrument_id;
+      }
+      $event->params['is_recur'] = $paymentProcessorType->is_recur;
+      $event->params['billing_mode'] = $paymentProcessorType->billing_mode;
+      $event->params['class_name'] = $paymentProcessorType->class_name;
+      $event->params['payment_type'] = $paymentProcessorType->payment_type;
+    }
+  }
+
   /**
    * Callback for hook_civicrm_post().
    * @param \Civi\Core\Event\PostEvent $event
    */
   public static function self_hook_civicrm_post(\Civi\Core\Event\PostEvent $event) {
+    if ($event->action === 'create' || $event->action === 'edit') {
+      // CRM-11826, add entry in civicrm_entity_financial_account
+      // if financial_account_id is not NULL
+      if (!empty($event->params['financial_account_id'])) {
+        $relationTypeId = key(CRM_Core_PseudoConstant::accountOptionValues('account_relationship', NULL, " AND v.name LIKE 'Asset Account is' "));
+        $values = [
+          'entity_table' => 'civicrm_payment_processor',
+          'entity_id' => $event->id,
+          'account_relationship' => $relationTypeId,
+          'financial_account_id' => $event->params['financial_account_id'],
+        ];
+        CRM_Financial_BAO_EntityFinancialAccount::add($values);
+      }
+    }
+    if ($event->action === 'edit') {
+      // check if is_active has changed & if so update test instance is_active too.
+      if (isset($event->object->is_active) && empty($event->object->is_test)) {
+        $test_id = self::getTestProcessorId($event->id);
+        $testDAO = new CRM_Financial_DAO_PaymentProcessor();
+        $testDAO->id = $test_id;
+        if ($testDAO->find(TRUE)) {
+          $testDAO->is_active = $event->object->is_active;
+          $testDAO->save();
+        }
+      }
+    }
     if ($event->action === 'delete') {
       // When a paymentProcessor is deleted, delete the associated test processor
       $testDAO = new CRM_Financial_DAO_PaymentProcessor();
       $testDAO->name = $event->object->name;
       $testDAO->is_test = 1;
       $testDAO->delete();
-
-      Civi\Payment\System::singleton()->flushProcessors();
     }
+    Civi\Payment\System::singleton()->flushProcessors();
   }
 
   /**
diff --git a/civicrm/CRM/Financial/BAO/PaymentProcessorType.php b/civicrm/CRM/Financial/BAO/PaymentProcessorType.php
index 83f0a4491f6ba8737b671569e8a16ff5f691a379..356dc2bb59ed8ccf9f3da972f641573fa93f30cc 100644
--- a/civicrm/CRM/Financial/BAO/PaymentProcessorType.php
+++ b/civicrm/CRM/Financial/BAO/PaymentProcessorType.php
@@ -40,15 +40,10 @@ class CRM_Financial_BAO_PaymentProcessorType extends CRM_Financial_DAO_PaymentPr
   }
 
   /**
-   * Update the is_active flag in the db.
-   *
+   * @deprecated - this bypasses hooks.
    * @param int $id
-   *   Id of the database record.
    * @param bool $is_active
-   *   Value we want to set the is_active field.
-   *
    * @return bool
-   *   true if we found and updated the object, else false
    */
   public static function setIsActive($id, $is_active) {
     return CRM_Core_DAO::setFieldValue('CRM_Financial_DAO_PaymentProcessorType', $id, 'is_active', $is_active);
diff --git a/civicrm/CRM/Financial/DAO/Currency.php b/civicrm/CRM/Financial/DAO/Currency.php
index 38ceb2e8f9c3317b94c029a536c2436104099325..d61cb48bf902baf7167b6d0ebf966843c1cad76d 100644
--- a/civicrm/CRM/Financial/DAO/Currency.php
+++ b/civicrm/CRM/Financial/DAO/Currency.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Financial/Currency.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:dc894e5adc99bc05b408993a46dcaa62)
+ * (GenCodeChecksum:89ee3480af0f7086aa26de7937953b86)
  */
 
 /**
@@ -108,6 +108,12 @@ class CRM_Financial_DAO_Currency extends CRM_Core_DAO {
           'title' => ts('Currency ID'),
           'description' => ts('Currency ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_currency.id',
           'table_name' => 'civicrm_currency',
           'entity' => 'Currency',
@@ -126,6 +132,12 @@ class CRM_Financial_DAO_Currency extends CRM_Core_DAO {
           'description' => ts('Currency Name'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_currency.name',
           'export' => TRUE,
@@ -145,6 +157,12 @@ class CRM_Financial_DAO_Currency extends CRM_Core_DAO {
           'description' => ts('Currency Symbol'),
           'maxlength' => 8,
           'size' => CRM_Utils_Type::EIGHT,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_currency.symbol',
           'table_name' => 'civicrm_currency',
           'entity' => 'Currency',
@@ -162,6 +180,12 @@ class CRM_Financial_DAO_Currency extends CRM_Core_DAO {
           'description' => ts('Numeric currency code'),
           'maxlength' => 3,
           'size' => CRM_Utils_Type::FOUR,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_currency.numeric_code',
           'export' => TRUE,
@@ -178,6 +202,12 @@ class CRM_Financial_DAO_Currency extends CRM_Core_DAO {
           'description' => ts('Full currency name'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_currency.full_name',
           'table_name' => 'civicrm_currency',
           'entity' => 'Currency',
diff --git a/civicrm/CRM/Financial/DAO/EntityFinancialAccount.php b/civicrm/CRM/Financial/DAO/EntityFinancialAccount.php
index 360c446ada8db53bd3bd0afe9ca837d3f1fa42ef..9e7d4dfe6de566307053fb8d6785ff580f089b16 100644
--- a/civicrm/CRM/Financial/DAO/EntityFinancialAccount.php
+++ b/civicrm/CRM/Financial/DAO/EntityFinancialAccount.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Financial/EntityFinancialAccount.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:7a29bf464501ce9292e409ae68d80782)
+ * (GenCodeChecksum:56a06273eec47f43f5671cb6152b7747)
  */
 
 /**
@@ -124,6 +124,12 @@ class CRM_Financial_DAO_EntityFinancialAccount extends CRM_Core_DAO {
           'title' => ts('Entity Financial Account ID'),
           'description' => ts('ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_entity_financial_account.id',
           'table_name' => 'civicrm_entity_financial_account',
           'entity' => 'EntityFinancialAccount',
@@ -143,6 +149,12 @@ class CRM_Financial_DAO_EntityFinancialAccount extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_entity_financial_account.entity_table',
           'export' => TRUE,
@@ -165,6 +177,12 @@ class CRM_Financial_DAO_EntityFinancialAccount extends CRM_Core_DAO {
           'title' => ts('Entity ID'),
           'description' => ts('Links to an id in the entity_table, such as vid in civicrm_financial_type'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_entity_financial_account.entity_id',
           'table_name' => 'civicrm_entity_financial_account',
           'entity' => 'EntityFinancialAccount',
@@ -182,6 +200,12 @@ class CRM_Financial_DAO_EntityFinancialAccount extends CRM_Core_DAO {
           'title' => ts('Account Relationship'),
           'description' => ts('FK to a new civicrm_option_value (account_relationship)'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_entity_financial_account.account_relationship',
           'table_name' => 'civicrm_entity_financial_account',
           'entity' => 'EntityFinancialAccount',
@@ -202,6 +226,12 @@ class CRM_Financial_DAO_EntityFinancialAccount extends CRM_Core_DAO {
           'title' => ts('Financial Account ID'),
           'description' => ts('FK to the financial_account_id'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_entity_financial_account.financial_account_id',
           'table_name' => 'civicrm_entity_financial_account',
           'entity' => 'EntityFinancialAccount',
diff --git a/civicrm/CRM/Financial/DAO/EntityFinancialTrxn.php b/civicrm/CRM/Financial/DAO/EntityFinancialTrxn.php
index 678f3716c1bb38a3cde66e578b2d0387905365d7..2f088348b9b0ddb6ff14822cc3049bd364f27956 100644
--- a/civicrm/CRM/Financial/DAO/EntityFinancialTrxn.php
+++ b/civicrm/CRM/Financial/DAO/EntityFinancialTrxn.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Financial/EntityFinancialTrxn.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:5a1cad86c4717915abc00763d986fad5)
+ * (GenCodeChecksum:9147404f8b46a55b3a5a2f1351418b82)
  */
 
 /**
@@ -120,6 +120,12 @@ class CRM_Financial_DAO_EntityFinancialTrxn extends CRM_Core_DAO {
           'title' => ts('Entity Financial Transaction ID'),
           'description' => ts('ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_entity_financial_trxn.id',
           'table_name' => 'civicrm_entity_financial_trxn',
           'entity' => 'EntityFinancialTrxn',
@@ -139,6 +145,12 @@ class CRM_Financial_DAO_EntityFinancialTrxn extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_entity_financial_trxn.entity_table',
           'export' => TRUE,
@@ -156,6 +168,12 @@ class CRM_Financial_DAO_EntityFinancialTrxn extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Entity ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_entity_financial_trxn.entity_id',
           'table_name' => 'civicrm_entity_financial_trxn',
           'entity' => 'EntityFinancialTrxn',
@@ -167,6 +185,12 @@ class CRM_Financial_DAO_EntityFinancialTrxn extends CRM_Core_DAO {
           'name' => 'financial_trxn_id',
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Financial Transaction ID'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_entity_financial_trxn.financial_trxn_id',
           'table_name' => 'civicrm_entity_financial_trxn',
           'entity' => 'EntityFinancialTrxn',
@@ -188,6 +212,12 @@ class CRM_Financial_DAO_EntityFinancialTrxn extends CRM_Core_DAO {
             20,
             2,
           ],
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_entity_financial_trxn.amount',
           'headerPattern' => '/amount/i',
diff --git a/civicrm/CRM/Financial/DAO/FinancialAccount.php b/civicrm/CRM/Financial/DAO/FinancialAccount.php
index 13c63f43a0b7874283594210d7bb51c13a55a30f..e03b07ac2b97849f6399649ea6d3534a5875f8fd 100644
--- a/civicrm/CRM/Financial/DAO/FinancialAccount.php
+++ b/civicrm/CRM/Financial/DAO/FinancialAccount.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Financial/FinancialAccount.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:14cbe56e8b5423d99325732364487c48)
+ * (GenCodeChecksum:c45c99d990c6bd6f7e29fe0fa5cd761d)
  */
 
 /**
@@ -225,6 +225,12 @@ class CRM_Financial_DAO_FinancialAccount extends CRM_Core_DAO {
           'title' => ts('Financial Account ID'),
           'description' => ts('ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_financial_account.id',
           'table_name' => 'civicrm_financial_account',
           'entity' => 'FinancialAccount',
@@ -244,6 +250,12 @@ class CRM_Financial_DAO_FinancialAccount extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_financial_account.name',
           'table_name' => 'civicrm_financial_account',
           'entity' => 'FinancialAccount',
@@ -256,6 +268,12 @@ class CRM_Financial_DAO_FinancialAccount extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Contact ID'),
           'description' => ts('FK to Contact ID that is responsible for the funds in this account'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_financial_account.contact_id',
           'table_name' => 'civicrm_financial_account',
           'entity' => 'FinancialAccount',
@@ -273,6 +291,12 @@ class CRM_Financial_DAO_FinancialAccount extends CRM_Core_DAO {
           'title' => ts('Financial Account Type'),
           'description' => ts('pseudo FK into civicrm_option_value.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_financial_account.financial_account_type_id',
           'default' => '3',
           'table_name' => 'civicrm_financial_account',
@@ -295,6 +319,12 @@ class CRM_Financial_DAO_FinancialAccount extends CRM_Core_DAO {
           'description' => ts('Optional value for mapping monies owed and received to accounting system codes.'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => TRUE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_financial_account.accounting_code',
           'export' => TRUE,
           'table_name' => 'civicrm_financial_account',
@@ -310,6 +340,12 @@ class CRM_Financial_DAO_FinancialAccount extends CRM_Core_DAO {
           'description' => ts('Optional value for mapping account types to accounting system account categories (QuickBooks Account Type Codes for example).'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => TRUE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_financial_account.account_type_code',
           'export' => TRUE,
           'table_name' => 'civicrm_financial_account',
@@ -325,6 +361,12 @@ class CRM_Financial_DAO_FinancialAccount extends CRM_Core_DAO {
           'description' => ts('Financial Type Description.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_financial_account.description',
           'table_name' => 'civicrm_financial_account',
           'entity' => 'FinancialAccount',
@@ -337,6 +379,12 @@ class CRM_Financial_DAO_FinancialAccount extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Parent ID'),
           'description' => ts('Parent ID in account hierarchy'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_financial_account.parent_id',
           'table_name' => 'civicrm_financial_account',
           'entity' => 'FinancialAccount',
@@ -354,6 +402,12 @@ class CRM_Financial_DAO_FinancialAccount extends CRM_Core_DAO {
           'title' => ts('Header Financial Account?'),
           'description' => ts('Is this a header account which does not allow transactions to be posted against it directly, but only to its sub-accounts?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_financial_account.is_header_account',
           'default' => '0',
           'table_name' => 'civicrm_financial_account',
@@ -368,6 +422,12 @@ class CRM_Financial_DAO_FinancialAccount extends CRM_Core_DAO {
           'title' => ts('Deductible Financial Account?'),
           'description' => ts('Is this account tax-deductible?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_financial_account.is_deductible',
           'default' => '0',
           'table_name' => 'civicrm_financial_account',
@@ -382,6 +442,12 @@ class CRM_Financial_DAO_FinancialAccount extends CRM_Core_DAO {
           'title' => ts('Tax Financial Account?'),
           'description' => ts('Is this account for taxes?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_financial_account.is_tax',
           'default' => '0',
           'table_name' => 'civicrm_financial_account',
@@ -399,6 +465,12 @@ class CRM_Financial_DAO_FinancialAccount extends CRM_Core_DAO {
             10,
             8,
           ],
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_financial_account.tax_rate',
           'table_name' => 'civicrm_financial_account',
           'entity' => 'FinancialAccount',
@@ -412,6 +484,12 @@ class CRM_Financial_DAO_FinancialAccount extends CRM_Core_DAO {
           'title' => ts('Reserved Financial Account?'),
           'description' => ts('Is this a predefined system object?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_financial_account.is_reserved',
           'default' => '0',
           'table_name' => 'civicrm_financial_account',
@@ -426,6 +504,12 @@ class CRM_Financial_DAO_FinancialAccount extends CRM_Core_DAO {
           'title' => ts('Financial Account is Active'),
           'description' => ts('Is this property active?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_financial_account.is_active',
           'default' => '1',
           'table_name' => 'civicrm_financial_account',
@@ -444,6 +528,12 @@ class CRM_Financial_DAO_FinancialAccount extends CRM_Core_DAO {
           'title' => ts('Default Financial Account'),
           'description' => ts('Is this account the default one (or default tax one) for its financial_account_type?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_financial_account.is_default',
           'default' => '0',
           'table_name' => 'civicrm_financial_account',
diff --git a/civicrm/CRM/Financial/DAO/FinancialItem.php b/civicrm/CRM/Financial/DAO/FinancialItem.php
index 8ce9e0aaee8f45ce4ed3c01fa5fcec194d0108ae..02ab29e8a5949394282d81bf0a59923ef3b6212f 100644
--- a/civicrm/CRM/Financial/DAO/FinancialItem.php
+++ b/civicrm/CRM/Financial/DAO/FinancialItem.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Financial/FinancialItem.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:3666c7ad0445c04b66871e747ec691c2)
+ * (GenCodeChecksum:87f954efec21c5b1d861f797e01a2838)
  */
 
 /**
@@ -176,6 +176,12 @@ class CRM_Financial_DAO_FinancialItem extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Financial Item ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_financial_item.id',
           'table_name' => 'civicrm_financial_item',
           'entity' => 'FinancialItem',
@@ -193,6 +199,12 @@ class CRM_Financial_DAO_FinancialItem extends CRM_Core_DAO {
           'title' => ts('Financial Item Created Date'),
           'description' => ts('Date and time the item was created'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_financial_item.created_date',
           'default' => 'CURRENT_TIMESTAMP',
           'table_name' => 'civicrm_financial_item',
@@ -207,6 +219,12 @@ class CRM_Financial_DAO_FinancialItem extends CRM_Core_DAO {
           'title' => ts('Financial Item Transaction Date'),
           'description' => ts('Date and time of the source transaction'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_financial_item.transaction_date',
           'table_name' => 'civicrm_financial_item',
           'entity' => 'FinancialItem',
@@ -220,6 +238,12 @@ class CRM_Financial_DAO_FinancialItem extends CRM_Core_DAO {
           'title' => ts('Contact ID'),
           'description' => ts('FK to Contact ID of contact the item is from'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => TRUE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_financial_item.contact_id',
           'export' => TRUE,
           'table_name' => 'civicrm_financial_item',
@@ -239,6 +263,12 @@ class CRM_Financial_DAO_FinancialItem extends CRM_Core_DAO {
           'description' => ts('Human readable description of this item, to ease display without lookup of source item.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_financial_item.description',
           'table_name' => 'civicrm_financial_item',
           'entity' => 'FinancialItem',
@@ -256,6 +286,12 @@ class CRM_Financial_DAO_FinancialItem extends CRM_Core_DAO {
             20,
             2,
           ],
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_financial_item.amount',
           'headerPattern' => '/unit?.?amoun/i',
           'dataPattern' => '/^\d+(\.\d{2})?$/',
@@ -273,6 +309,12 @@ class CRM_Financial_DAO_FinancialItem extends CRM_Core_DAO {
           'description' => ts('Currency for the amount'),
           'maxlength' => 3,
           'size' => CRM_Utils_Type::FOUR,
+          'usage' => [
+            'import' => FALSE,
+            'export' => TRUE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_financial_item.currency',
           'export' => TRUE,
           'table_name' => 'civicrm_financial_item',
@@ -296,6 +338,12 @@ class CRM_Financial_DAO_FinancialItem extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Financial Account ID'),
           'description' => ts('FK to civicrm_financial_account'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_financial_item.financial_account_id',
           'table_name' => 'civicrm_financial_item',
           'entity' => 'FinancialItem',
@@ -318,6 +366,12 @@ class CRM_Financial_DAO_FinancialItem extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Financial Item Status ID'),
           'description' => ts('Payment status: test, paid, part_paid, unpaid (if empty assume unpaid)'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => TRUE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_financial_item.status_id',
           'export' => TRUE,
           'table_name' => 'civicrm_financial_item',
@@ -340,6 +394,12 @@ class CRM_Financial_DAO_FinancialItem extends CRM_Core_DAO {
           'description' => ts('May contain civicrm_line_item, civicrm_financial_trxn etc'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_financial_item.entity_table',
           'table_name' => 'civicrm_financial_item',
           'entity' => 'FinancialItem',
@@ -355,6 +415,12 @@ class CRM_Financial_DAO_FinancialItem extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Entity ID'),
           'description' => ts('The specific source item that is responsible for the creation of this financial_item'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_financial_item.entity_id',
           'table_name' => 'civicrm_financial_item',
           'entity' => 'FinancialItem',
diff --git a/civicrm/CRM/Financial/DAO/FinancialTrxn.php b/civicrm/CRM/Financial/DAO/FinancialTrxn.php
index 6ef952849c1a0ccacc548cfccb6b4aa225b88749..7e2d808f4e00e456eee9825dd9455848241280b6 100644
--- a/civicrm/CRM/Financial/DAO/FinancialTrxn.php
+++ b/civicrm/CRM/Financial/DAO/FinancialTrxn.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Financial/FinancialTrxn.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:da37002e77c72be14122e605922cf021)
+ * (GenCodeChecksum:41175dc63ab7c3cc6ea7f66021c5607a)
  */
 
 /**
@@ -239,6 +239,12 @@ class CRM_Financial_DAO_FinancialTrxn extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Financial Transaction ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_financial_trxn.id',
           'table_name' => 'civicrm_financial_trxn',
           'entity' => 'FinancialTrxn',
@@ -255,6 +261,12 @@ class CRM_Financial_DAO_FinancialTrxn extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('From Account ID'),
           'description' => ts('FK to financial_account table.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_financial_trxn.from_financial_account_id',
           'table_name' => 'civicrm_financial_trxn',
           'entity' => 'FinancialTrxn',
@@ -277,6 +289,12 @@ class CRM_Financial_DAO_FinancialTrxn extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('To Account ID'),
           'description' => ts('FK to financial_financial_account table.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_financial_trxn.to_financial_account_id',
           'table_name' => 'civicrm_financial_trxn',
           'entity' => 'FinancialTrxn',
@@ -299,6 +317,12 @@ class CRM_Financial_DAO_FinancialTrxn extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME,
           'title' => ts('Financial Transaction Date'),
           'description' => ts('date transaction occurred'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_financial_trxn.trxn_date',
           'default' => NULL,
           'table_name' => 'civicrm_financial_trxn',
@@ -321,6 +345,12 @@ class CRM_Financial_DAO_FinancialTrxn extends CRM_Core_DAO {
             20,
             2,
           ],
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_financial_trxn.total_amount',
           'table_name' => 'civicrm_financial_trxn',
           'entity' => 'FinancialTrxn',
@@ -337,6 +367,12 @@ class CRM_Financial_DAO_FinancialTrxn extends CRM_Core_DAO {
             20,
             2,
           ],
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_financial_trxn.fee_amount',
           'table_name' => 'civicrm_financial_trxn',
           'entity' => 'FinancialTrxn',
@@ -353,6 +389,12 @@ class CRM_Financial_DAO_FinancialTrxn extends CRM_Core_DAO {
             20,
             2,
           ],
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_financial_trxn.net_amount',
           'table_name' => 'civicrm_financial_trxn',
           'entity' => 'FinancialTrxn',
@@ -367,6 +409,12 @@ class CRM_Financial_DAO_FinancialTrxn extends CRM_Core_DAO {
           'description' => ts('3 character string, value from config setting or input via user.'),
           'maxlength' => 3,
           'size' => CRM_Utils_Type::FOUR,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_financial_trxn.currency',
           'headerPattern' => '/cur(rency)?/i',
@@ -395,6 +443,12 @@ class CRM_Financial_DAO_FinancialTrxn extends CRM_Core_DAO {
           'title' => ts('Is Payment?'),
           'description' => ts('Is this entry either a payment or a reversal of a payment?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_financial_trxn.is_payment',
           'export' => TRUE,
@@ -412,6 +466,12 @@ class CRM_Financial_DAO_FinancialTrxn extends CRM_Core_DAO {
           'description' => ts('Transaction id supplied by external processor. This may not be unique.'),
           'maxlength' => 255,
           'size' => 10,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_financial_trxn.trxn_id',
           'table_name' => 'civicrm_financial_trxn',
           'entity' => 'FinancialTrxn',
@@ -429,6 +489,12 @@ class CRM_Financial_DAO_FinancialTrxn extends CRM_Core_DAO {
           'description' => ts('processor result code'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_financial_trxn.trxn_result_code',
           'table_name' => 'civicrm_financial_trxn',
           'entity' => 'FinancialTrxn',
@@ -441,6 +507,12 @@ class CRM_Financial_DAO_FinancialTrxn extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Financial Transaction Status ID'),
           'description' => ts('pseudo FK to civicrm_option_value of contribution_status_id option_group'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_financial_trxn.status_id',
           'headerPattern' => '/status/i',
@@ -460,6 +532,12 @@ class CRM_Financial_DAO_FinancialTrxn extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Payment Processor ID'),
           'description' => ts('Payment Processor for this financial transaction'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_financial_trxn.payment_processor_id',
           'table_name' => 'civicrm_financial_trxn',
           'entity' => 'FinancialTrxn',
@@ -482,6 +560,12 @@ class CRM_Financial_DAO_FinancialTrxn extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Payment Method'),
           'description' => ts('FK to payment_instrument option group values'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_financial_trxn.payment_instrument_id',
           'table_name' => 'civicrm_financial_trxn',
           'entity' => 'FinancialTrxn',
@@ -501,6 +585,12 @@ class CRM_Financial_DAO_FinancialTrxn extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Card Type ID'),
           'description' => ts('FK to accept_creditcard option group values'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_financial_trxn.card_type_id',
           'table_name' => 'civicrm_financial_trxn',
           'entity' => 'FinancialTrxn',
@@ -522,6 +612,12 @@ class CRM_Financial_DAO_FinancialTrxn extends CRM_Core_DAO {
           'description' => ts('Check number'),
           'maxlength' => 255,
           'size' => 6,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_financial_trxn.check_number',
           'table_name' => 'civicrm_financial_trxn',
           'entity' => 'FinancialTrxn',
@@ -539,6 +635,12 @@ class CRM_Financial_DAO_FinancialTrxn extends CRM_Core_DAO {
           'description' => ts('Last 4 digits of credit card'),
           'maxlength' => 4,
           'size' => 4,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_financial_trxn.pan_truncation',
           'table_name' => 'civicrm_financial_trxn',
           'entity' => 'FinancialTrxn',
@@ -556,6 +658,12 @@ class CRM_Financial_DAO_FinancialTrxn extends CRM_Core_DAO {
           'description' => ts('Payment Processor external order reference'),
           'maxlength' => 255,
           'size' => 25,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_financial_trxn.order_reference',
           'table_name' => 'civicrm_financial_trxn',
           'entity' => 'FinancialTrxn',
diff --git a/civicrm/CRM/Financial/DAO/FinancialType.php b/civicrm/CRM/Financial/DAO/FinancialType.php
index 4961a95abd8a6704dda35a9d1bc1a91fe5b348ae..bb741df5ca22020f4be87b700528a54d6db8bcf6 100644
--- a/civicrm/CRM/Financial/DAO/FinancialType.php
+++ b/civicrm/CRM/Financial/DAO/FinancialType.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Financial/FinancialType.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:9bef54686de637392deaf107625ff5ea)
+ * (GenCodeChecksum:97ab5fc26c36616ca7805c5578ed5657)
  */
 
 /**
@@ -135,6 +135,12 @@ class CRM_Financial_DAO_FinancialType extends CRM_Core_DAO {
           'title' => ts('Financial Type ID'),
           'description' => ts('ID of original financial_type so you can search this table by the financial_type.id and then select the relevant version based on the timestamp'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_financial_type.id',
           'table_name' => 'civicrm_financial_type',
           'entity' => 'FinancialType',
@@ -154,6 +160,12 @@ class CRM_Financial_DAO_FinancialType extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_financial_type.name',
           'headerPattern' => '/(finan(cial)?)?type/i',
@@ -176,6 +188,12 @@ class CRM_Financial_DAO_FinancialType extends CRM_Core_DAO {
           'description' => ts('Financial Type Description.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_financial_type.description',
           'table_name' => 'civicrm_financial_type',
           'entity' => 'FinancialType',
@@ -193,6 +211,12 @@ class CRM_Financial_DAO_FinancialType extends CRM_Core_DAO {
           'title' => ts('Is Tax Deductible?'),
           'description' => ts('Is this financial type tax-deductible? If true, contributions of this type may be fully OR partially deductible - non-deductible amount is stored in the Contribution record.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_financial_type.is_deductible',
           'default' => '0',
           'table_name' => 'civicrm_financial_type',
@@ -211,6 +235,12 @@ class CRM_Financial_DAO_FinancialType extends CRM_Core_DAO {
           'title' => ts('Financial Type is Reserved?'),
           'description' => ts('Is this a predefined system object?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_financial_type.is_reserved',
           'default' => '0',
           'table_name' => 'civicrm_financial_type',
@@ -229,6 +259,12 @@ class CRM_Financial_DAO_FinancialType extends CRM_Core_DAO {
           'title' => ts('Financial Type Is Active?'),
           'description' => ts('Is this property active?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_financial_type.is_active',
           'default' => '1',
           'table_name' => 'civicrm_financial_type',
diff --git a/civicrm/CRM/Financial/DAO/PaymentProcessor.php b/civicrm/CRM/Financial/DAO/PaymentProcessor.php
index 990b1c9a8756b088a8dc0d6b2ada1a13d5edae55..f2ccc2ff791074fc2baa8b547d0842b5ccee849b 100644
--- a/civicrm/CRM/Financial/DAO/PaymentProcessor.php
+++ b/civicrm/CRM/Financial/DAO/PaymentProcessor.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Financial/PaymentProcessor.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:a98733540fdf85dcd843078f0d925659)
+ * (GenCodeChecksum:beafb7d7c0f62e3e4ba0367d7b7f58af)
  */
 
 /**
@@ -70,23 +70,32 @@ class CRM_Financial_DAO_PaymentProcessor extends CRM_Core_DAO {
   /**
    * Payment Processor Name.
    *
-   * @var string|null
+   * @var string
    *   (SQL type: varchar(64))
    *   Note that values will be retrieved from the database as a string.
    */
   public $name;
 
   /**
-   * Payment Processor Descriptive Name.
+   * Name of processor when shown to CiviCRM administrators.
    *
-   * @var string|null
-   *   (SQL type: varchar(127))
+   * @var string
+   *   (SQL type: varchar(255))
    *   Note that values will be retrieved from the database as a string.
    */
   public $title;
 
   /**
-   * Payment Processor Description.
+   * Name of processor when shown to users making a payment.
+   *
+   * @var string
+   *   (SQL type: varchar(255))
+   *   Note that values will be retrieved from the database as a string.
+   */
+  public $frontend_title;
+
+  /**
+   * Additional processor information shown to administrators.
    *
    * @var string|null
    *   (SQL type: varchar(255))
@@ -284,6 +293,12 @@ class CRM_Financial_DAO_PaymentProcessor extends CRM_Core_DAO {
           'title' => ts('Payment Processor ID'),
           'description' => ts('Payment Processor ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_processor.id',
           'table_name' => 'civicrm_payment_processor',
           'entity' => 'PaymentProcessor',
@@ -301,6 +316,12 @@ class CRM_Financial_DAO_PaymentProcessor extends CRM_Core_DAO {
           'title' => ts('Domain ID'),
           'description' => ts('Which Domain is this match entry for'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_processor.domain_id',
           'table_name' => 'civicrm_payment_processor',
           'entity' => 'PaymentProcessor',
@@ -320,10 +341,17 @@ class CRM_Financial_DAO_PaymentProcessor extends CRM_Core_DAO {
         'name' => [
           'name' => 'name',
           'type' => CRM_Utils_Type::T_STRING,
-          'title' => ts('Payment Processor'),
+          'title' => ts('Payment Processor Name'),
           'description' => ts('Payment Processor Name.'),
+          'required' => TRUE,
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_processor.name',
           'table_name' => 'civicrm_payment_processor',
           'entity' => 'PaymentProcessor',
@@ -331,6 +359,7 @@ class CRM_Financial_DAO_PaymentProcessor extends CRM_Core_DAO {
           'localizable' => 0,
           'html' => [
             'type' => 'Text',
+            'label' => ts("Machine Name"),
           ],
           'add' => '1.8',
         ],
@@ -338,9 +367,16 @@ class CRM_Financial_DAO_PaymentProcessor extends CRM_Core_DAO {
           'name' => 'title',
           'type' => CRM_Utils_Type::T_STRING,
           'title' => ts('Payment Processor Title'),
-          'description' => ts('Payment Processor Descriptive Name.'),
-          'maxlength' => 127,
+          'description' => ts('Name of processor when shown to CiviCRM administrators.'),
+          'required' => TRUE,
+          'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_processor.title',
           'table_name' => 'civicrm_payment_processor',
           'entity' => 'PaymentProcessor',
@@ -348,16 +384,48 @@ class CRM_Financial_DAO_PaymentProcessor extends CRM_Core_DAO {
           'localizable' => 1,
           'html' => [
             'type' => 'Text',
+            'label' => ts("Backend Title"),
           ],
           'add' => '5.13',
         ],
+        'frontend_title' => [
+          'name' => 'frontend_title',
+          'type' => CRM_Utils_Type::T_STRING,
+          'title' => ts('Payment Processor Frontend Title'),
+          'description' => ts('Name of processor when shown to users making a payment.'),
+          'required' => TRUE,
+          'maxlength' => 255,
+          'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
+          'where' => 'civicrm_payment_processor.frontend_title',
+          'table_name' => 'civicrm_payment_processor',
+          'entity' => 'PaymentProcessor',
+          'bao' => 'CRM_Financial_BAO_PaymentProcessor',
+          'localizable' => 1,
+          'html' => [
+            'type' => 'Text',
+            'label' => ts("Frontend Title"),
+          ],
+          'add' => '5.61',
+        ],
         'description' => [
           'name' => 'description',
           'type' => CRM_Utils_Type::T_STRING,
           'title' => ts('Processor Description'),
-          'description' => ts('Payment Processor Description.'),
+          'description' => ts('Additional processor information shown to administrators.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_processor.description',
           'table_name' => 'civicrm_payment_processor',
           'entity' => 'PaymentProcessor',
@@ -365,6 +433,7 @@ class CRM_Financial_DAO_PaymentProcessor extends CRM_Core_DAO {
           'localizable' => 0,
           'html' => [
             'type' => 'Text',
+            'label' => ts("Description"),
           ],
           'add' => '1.8',
         ],
@@ -373,6 +442,12 @@ class CRM_Financial_DAO_PaymentProcessor extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Type ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_processor.payment_processor_type_id',
           'table_name' => 'civicrm_payment_processor',
           'entity' => 'PaymentProcessor',
@@ -395,6 +470,12 @@ class CRM_Financial_DAO_PaymentProcessor extends CRM_Core_DAO {
           'title' => ts('Processor is Active?'),
           'description' => ts('Is this processor active?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_processor.is_active',
           'default' => '1',
           'table_name' => 'civicrm_payment_processor',
@@ -413,6 +494,12 @@ class CRM_Financial_DAO_PaymentProcessor extends CRM_Core_DAO {
           'title' => ts('Processor Is Default?'),
           'description' => ts('Is this processor the default?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_processor.is_default',
           'default' => '0',
           'table_name' => 'civicrm_payment_processor',
@@ -431,6 +518,12 @@ class CRM_Financial_DAO_PaymentProcessor extends CRM_Core_DAO {
           'title' => ts('Is Test Processor?'),
           'description' => ts('Is this processor for a test site?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_processor.is_test',
           'default' => '0',
           'table_name' => 'civicrm_payment_processor',
@@ -445,6 +538,12 @@ class CRM_Financial_DAO_PaymentProcessor extends CRM_Core_DAO {
           'title' => ts('User Name'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_processor.user_name',
           'table_name' => 'civicrm_payment_processor',
           'entity' => 'PaymentProcessor',
@@ -461,6 +560,12 @@ class CRM_Financial_DAO_PaymentProcessor extends CRM_Core_DAO {
           'title' => ts('Password'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_processor.password',
           'table_name' => 'civicrm_payment_processor',
           'entity' => 'PaymentProcessor',
@@ -477,6 +582,12 @@ class CRM_Financial_DAO_PaymentProcessor extends CRM_Core_DAO {
           'title' => ts('Signature'),
           'rows' => 4,
           'cols' => 40,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_processor.signature',
           'table_name' => 'civicrm_payment_processor',
           'entity' => 'PaymentProcessor',
@@ -493,6 +604,12 @@ class CRM_Financial_DAO_PaymentProcessor extends CRM_Core_DAO {
           'title' => ts('Site URL'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_processor.url_site',
           'table_name' => 'civicrm_payment_processor',
           'entity' => 'PaymentProcessor',
@@ -509,6 +626,12 @@ class CRM_Financial_DAO_PaymentProcessor extends CRM_Core_DAO {
           'title' => ts('API URL'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_processor.url_api',
           'table_name' => 'civicrm_payment_processor',
           'entity' => 'PaymentProcessor',
@@ -525,6 +648,12 @@ class CRM_Financial_DAO_PaymentProcessor extends CRM_Core_DAO {
           'title' => ts('Recurring Payments URL'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_processor.url_recur',
           'table_name' => 'civicrm_payment_processor',
           'entity' => 'PaymentProcessor',
@@ -541,6 +670,12 @@ class CRM_Financial_DAO_PaymentProcessor extends CRM_Core_DAO {
           'title' => ts('Button URL'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_processor.url_button',
           'table_name' => 'civicrm_payment_processor',
           'entity' => 'PaymentProcessor',
@@ -557,6 +692,12 @@ class CRM_Financial_DAO_PaymentProcessor extends CRM_Core_DAO {
           'title' => ts('Subject'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_processor.subject',
           'table_name' => 'civicrm_payment_processor',
           'entity' => 'PaymentProcessor',
@@ -573,6 +714,12 @@ class CRM_Financial_DAO_PaymentProcessor extends CRM_Core_DAO {
           'title' => ts('Suffix for PHP class name implementation'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_processor.class_name',
           'table_name' => 'civicrm_payment_processor',
           'entity' => 'PaymentProcessor',
@@ -586,6 +733,12 @@ class CRM_Financial_DAO_PaymentProcessor extends CRM_Core_DAO {
           'title' => ts('Processor Billing Mode'),
           'description' => ts('Billing Mode (deprecated)'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_processor.billing_mode',
           'table_name' => 'civicrm_payment_processor',
           'entity' => 'PaymentProcessor',
@@ -599,6 +752,12 @@ class CRM_Financial_DAO_PaymentProcessor extends CRM_Core_DAO {
           'title' => ts('Processor Supports Recurring?'),
           'description' => ts('Can process recurring contributions'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_processor.is_recur',
           'default' => '0',
           'table_name' => 'civicrm_payment_processor',
@@ -612,6 +771,12 @@ class CRM_Financial_DAO_PaymentProcessor extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Payment Type'),
           'description' => ts('Payment Type: Credit or Debit (deprecated)'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_processor.payment_type',
           'default' => '1',
           'table_name' => 'civicrm_payment_processor',
@@ -625,6 +790,12 @@ class CRM_Financial_DAO_PaymentProcessor extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Payment Method'),
           'description' => ts('Payment Instrument ID'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_processor.payment_instrument_id',
           'default' => '1',
           'table_name' => 'civicrm_payment_processor',
@@ -642,6 +813,12 @@ class CRM_Financial_DAO_PaymentProcessor extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Accepted Credit Cards'),
           'description' => ts('array of accepted credit card types'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_processor.accepted_credit_cards',
           'default' => NULL,
           'table_name' => 'civicrm_payment_processor',
diff --git a/civicrm/CRM/Financial/DAO/PaymentProcessorType.php b/civicrm/CRM/Financial/DAO/PaymentProcessorType.php
index 4f6588c3477ce3e00b4f32f6d67c2b3e460e8469..6cd9a6a7b473d1fd3884cd88ac7f5955d691b551 100644
--- a/civicrm/CRM/Financial/DAO/PaymentProcessorType.php
+++ b/civicrm/CRM/Financial/DAO/PaymentProcessorType.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Financial/PaymentProcessorType.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:b928d1023a411536c1aa09fc58d30091)
+ * (GenCodeChecksum:4ce6f72edd24847c4ec8fe29c9530363)
  */
 
 /**
@@ -251,6 +251,12 @@ class CRM_Financial_DAO_PaymentProcessorType extends CRM_Core_DAO {
           'title' => ts('Payment Processor Type ID'),
           'description' => ts('Payment Processor Type ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_processor_type.id',
           'table_name' => 'civicrm_payment_processor_type',
           'entity' => 'PaymentProcessorType',
@@ -270,6 +276,12 @@ class CRM_Financial_DAO_PaymentProcessorType extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_processor_type.name',
           'table_name' => 'civicrm_payment_processor_type',
           'entity' => 'PaymentProcessorType',
@@ -285,6 +297,12 @@ class CRM_Financial_DAO_PaymentProcessorType extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 127,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_processor_type.title',
           'table_name' => 'civicrm_payment_processor_type',
           'entity' => 'PaymentProcessorType',
@@ -299,6 +317,12 @@ class CRM_Financial_DAO_PaymentProcessorType extends CRM_Core_DAO {
           'description' => ts('Payment Processor Description.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_processor_type.description',
           'table_name' => 'civicrm_payment_processor_type',
           'entity' => 'PaymentProcessorType',
@@ -312,6 +336,12 @@ class CRM_Financial_DAO_PaymentProcessorType extends CRM_Core_DAO {
           'title' => ts('Processor Type Is Active?'),
           'description' => ts('Is this processor active?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_processor_type.is_active',
           'default' => '1',
           'table_name' => 'civicrm_payment_processor_type',
@@ -330,6 +360,12 @@ class CRM_Financial_DAO_PaymentProcessorType extends CRM_Core_DAO {
           'title' => ts('Processor Type is Default?'),
           'description' => ts('Is this processor the default?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_processor_type.is_default',
           'default' => '0',
           'table_name' => 'civicrm_payment_processor_type',
@@ -348,6 +384,12 @@ class CRM_Financial_DAO_PaymentProcessorType extends CRM_Core_DAO {
           'title' => ts('Label for User Name if used'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_processor_type.user_name_label',
           'table_name' => 'civicrm_payment_processor_type',
           'entity' => 'PaymentProcessorType',
@@ -361,6 +403,12 @@ class CRM_Financial_DAO_PaymentProcessorType extends CRM_Core_DAO {
           'title' => ts('Label for password'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_processor_type.password_label',
           'table_name' => 'civicrm_payment_processor_type',
           'entity' => 'PaymentProcessorType',
@@ -374,6 +422,12 @@ class CRM_Financial_DAO_PaymentProcessorType extends CRM_Core_DAO {
           'title' => ts('Label for Signature'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_processor_type.signature_label',
           'table_name' => 'civicrm_payment_processor_type',
           'entity' => 'PaymentProcessorType',
@@ -387,6 +441,12 @@ class CRM_Financial_DAO_PaymentProcessorType extends CRM_Core_DAO {
           'title' => ts('Label for Subject'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_processor_type.subject_label',
           'table_name' => 'civicrm_payment_processor_type',
           'entity' => 'PaymentProcessorType',
@@ -401,6 +461,12 @@ class CRM_Financial_DAO_PaymentProcessorType extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_processor_type.class_name',
           'table_name' => 'civicrm_payment_processor_type',
           'entity' => 'PaymentProcessorType',
@@ -414,6 +480,12 @@ class CRM_Financial_DAO_PaymentProcessorType extends CRM_Core_DAO {
           'title' => ts('Default Live Site URL'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_processor_type.url_site_default',
           'table_name' => 'civicrm_payment_processor_type',
           'entity' => 'PaymentProcessorType',
@@ -427,6 +499,12 @@ class CRM_Financial_DAO_PaymentProcessorType extends CRM_Core_DAO {
           'title' => ts('Default API Site URL'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_processor_type.url_api_default',
           'table_name' => 'civicrm_payment_processor_type',
           'entity' => 'PaymentProcessorType',
@@ -440,6 +518,12 @@ class CRM_Financial_DAO_PaymentProcessorType extends CRM_Core_DAO {
           'title' => ts('Default Live Recurring Payments URL'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_processor_type.url_recur_default',
           'table_name' => 'civicrm_payment_processor_type',
           'entity' => 'PaymentProcessorType',
@@ -453,6 +537,12 @@ class CRM_Financial_DAO_PaymentProcessorType extends CRM_Core_DAO {
           'title' => ts('Default Live Button URL'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_processor_type.url_button_default',
           'table_name' => 'civicrm_payment_processor_type',
           'entity' => 'PaymentProcessorType',
@@ -466,6 +556,12 @@ class CRM_Financial_DAO_PaymentProcessorType extends CRM_Core_DAO {
           'title' => ts('Default Test Site URL'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_processor_type.url_site_test_default',
           'table_name' => 'civicrm_payment_processor_type',
           'entity' => 'PaymentProcessorType',
@@ -479,6 +575,12 @@ class CRM_Financial_DAO_PaymentProcessorType extends CRM_Core_DAO {
           'title' => ts('Default Test API URL'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_processor_type.url_api_test_default',
           'table_name' => 'civicrm_payment_processor_type',
           'entity' => 'PaymentProcessorType',
@@ -492,6 +594,12 @@ class CRM_Financial_DAO_PaymentProcessorType extends CRM_Core_DAO {
           'title' => ts('Default Test Recurring Payment URL'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_processor_type.url_recur_test_default',
           'table_name' => 'civicrm_payment_processor_type',
           'entity' => 'PaymentProcessorType',
@@ -505,6 +613,12 @@ class CRM_Financial_DAO_PaymentProcessorType extends CRM_Core_DAO {
           'title' => ts('Default Test Button URL'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_processor_type.url_button_test_default',
           'table_name' => 'civicrm_payment_processor_type',
           'entity' => 'PaymentProcessorType',
@@ -518,6 +632,12 @@ class CRM_Financial_DAO_PaymentProcessorType extends CRM_Core_DAO {
           'title' => ts('Billing Mode'),
           'description' => ts('Billing Mode (deprecated)'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_processor_type.billing_mode',
           'table_name' => 'civicrm_payment_processor_type',
           'entity' => 'PaymentProcessorType',
@@ -538,6 +658,12 @@ class CRM_Financial_DAO_PaymentProcessorType extends CRM_Core_DAO {
           'title' => ts('Processor Type Supports Recurring?'),
           'description' => ts('Can process recurring contributions'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_processor_type.is_recur',
           'default' => '0',
           'table_name' => 'civicrm_payment_processor_type',
@@ -551,6 +677,12 @@ class CRM_Financial_DAO_PaymentProcessorType extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Processor Type Payment Type'),
           'description' => ts('Payment Type: Credit or Debit (deprecated)'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_processor_type.payment_type',
           'default' => '1',
           'table_name' => 'civicrm_payment_processor_type',
@@ -564,6 +696,12 @@ class CRM_Financial_DAO_PaymentProcessorType extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Payment Method'),
           'description' => ts('Payment Instrument ID'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_processor_type.payment_instrument_id',
           'default' => '1',
           'table_name' => 'civicrm_payment_processor_type',
diff --git a/civicrm/CRM/Financial/DAO/PaymentToken.php b/civicrm/CRM/Financial/DAO/PaymentToken.php
index 16990058a194a986dee0bbf01662fd2f3484d300..3fdcfd7c44414767089259f26698b644a655ba47 100644
--- a/civicrm/CRM/Financial/DAO/PaymentToken.php
+++ b/civicrm/CRM/Financial/DAO/PaymentToken.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Financial/PaymentToken.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:f1bd96d72b08fc23f96e7fc00b102de0)
+ * (GenCodeChecksum:24d43ecaed37e1b06affc775b7786b06)
  */
 
 /**
@@ -195,6 +195,12 @@ class CRM_Financial_DAO_PaymentToken extends CRM_Core_DAO {
           'title' => ts('Payment Token ID'),
           'description' => ts('Payment Token ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_token.id',
           'table_name' => 'civicrm_payment_token',
           'entity' => 'PaymentToken',
@@ -212,6 +218,12 @@ class CRM_Financial_DAO_PaymentToken extends CRM_Core_DAO {
           'title' => ts('Contact ID'),
           'description' => ts('FK to Contact ID for the owner of the token'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_token.contact_id',
           'table_name' => 'civicrm_payment_token',
           'entity' => 'PaymentToken',
@@ -228,6 +240,12 @@ class CRM_Financial_DAO_PaymentToken extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Payment Processor ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_token.payment_processor_id',
           'table_name' => 'civicrm_payment_token',
           'entity' => 'PaymentToken',
@@ -247,6 +265,12 @@ class CRM_Financial_DAO_PaymentToken extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_token.token',
           'table_name' => 'civicrm_payment_token',
           'entity' => 'PaymentToken',
@@ -259,6 +283,12 @@ class CRM_Financial_DAO_PaymentToken extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TIMESTAMP,
           'title' => ts('Created Date'),
           'description' => ts('Date created'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_token.created_date',
           'default' => 'CURRENT_TIMESTAMP',
           'table_name' => 'civicrm_payment_token',
@@ -272,6 +302,12 @@ class CRM_Financial_DAO_PaymentToken extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Created ID'),
           'description' => ts('Contact ID of token creator'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_token.created_id',
           'table_name' => 'civicrm_payment_token',
           'entity' => 'PaymentToken',
@@ -288,6 +324,12 @@ class CRM_Financial_DAO_PaymentToken extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME,
           'title' => ts('Expiry Date'),
           'description' => ts('Date this token expires'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_token.expiry_date',
           'table_name' => 'civicrm_payment_token',
           'entity' => 'PaymentToken',
@@ -302,6 +344,12 @@ class CRM_Financial_DAO_PaymentToken extends CRM_Core_DAO {
           'description' => ts('Email at the time of token creation. Useful for fraud forensics'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_token.email',
           'table_name' => 'civicrm_payment_token',
           'entity' => 'PaymentToken',
@@ -316,6 +364,12 @@ class CRM_Financial_DAO_PaymentToken extends CRM_Core_DAO {
           'description' => ts('Billing first name at the time of token creation. Useful for fraud forensics'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_token.billing_first_name',
           'table_name' => 'civicrm_payment_token',
           'entity' => 'PaymentToken',
@@ -330,6 +384,12 @@ class CRM_Financial_DAO_PaymentToken extends CRM_Core_DAO {
           'description' => ts('Billing middle name at the time of token creation. Useful for fraud forensics'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_token.billing_middle_name',
           'table_name' => 'civicrm_payment_token',
           'entity' => 'PaymentToken',
@@ -344,6 +404,12 @@ class CRM_Financial_DAO_PaymentToken extends CRM_Core_DAO {
           'description' => ts('Billing last name at the time of token creation. Useful for fraud forensics'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_token.billing_last_name',
           'table_name' => 'civicrm_payment_token',
           'entity' => 'PaymentToken',
@@ -358,6 +424,12 @@ class CRM_Financial_DAO_PaymentToken extends CRM_Core_DAO {
           'description' => ts('Holds the part of the card number or account details that may be retained or displayed'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_token.masked_account_number',
           'table_name' => 'civicrm_payment_token',
           'entity' => 'PaymentToken',
@@ -372,6 +444,12 @@ class CRM_Financial_DAO_PaymentToken extends CRM_Core_DAO {
           'description' => ts('IP used when creating the token. Useful for fraud forensics'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_payment_token.ip_address',
           'table_name' => 'civicrm_payment_token',
           'entity' => 'PaymentToken',
diff --git a/civicrm/CRM/Financial/Form/Export.php b/civicrm/CRM/Financial/Form/Export.php
index 07ba0153bb6a43611a04dd75258100b8890c68d2..161e562ae5c5a5e978232d9540e8a3390fee64b6 100644
--- a/civicrm/CRM/Financial/Form/Export.php
+++ b/civicrm/CRM/Financial/Form/Export.php
@@ -166,7 +166,7 @@ class CRM_Financial_Form_Export extends CRM_Core_Form {
       $batchParams['id'] = $batchId;
       // Update totals
       $batchParams = array_merge($batchParams, $totals[$batchId]);
-      CRM_Batch_BAO_Batch::create($batchParams);
+      CRM_Batch_BAO_Batch::writeRecord($batchParams);
     }
 
     CRM_Batch_BAO_Batch::exportFinancialBatch($batchIds, $this->_exportFormat, $this->_downloadFile);
diff --git a/civicrm/CRM/Financial/Form/FinancialAccount.php b/civicrm/CRM/Financial/Form/FinancialAccount.php
index 8c52ce6fc2e0dc6392f0918c343a863d40c5c3b0..c90572a3264435c6d4b46ad9827f5360e52095cb 100644
--- a/civicrm/CRM/Financial/Form/FinancialAccount.php
+++ b/civicrm/CRM/Financial/Form/FinancialAccount.php
@@ -209,7 +209,7 @@ class CRM_Financial_Form_FinancialAccount extends CRM_Contribute_Form {
       ] as $field) {
         $params[$field] = CRM_Utils_Array::value($field, $params, FALSE);
       }
-      $financialAccount = CRM_Financial_BAO_FinancialAccount::add($params);
+      $financialAccount = CRM_Financial_BAO_FinancialAccount::writeRecord($params);
       CRM_Core_Session::setStatus(ts('The Financial Account \'%1\' has been saved.', [1 => $financialAccount->name]), ts('Saved'), 'success');
     }
   }
diff --git a/civicrm/CRM/Financial/Form/FinancialBatch.php b/civicrm/CRM/Financial/Form/FinancialBatch.php
index a417ab8a2180d4f9582a8ff39455f084dfd69fd3..30f573cf1b643131bc9bbe5f64bcc3fe05406975 100644
--- a/civicrm/CRM/Financial/Form/FinancialBatch.php
+++ b/civicrm/CRM/Financial/Form/FinancialBatch.php
@@ -207,7 +207,7 @@ class CRM_Financial_Form_FinancialBatch extends CRM_Contribute_Form {
 
     // FIXME: What happens if we get to here and no activityType is defined?
 
-    $batch = CRM_Batch_BAO_Batch::create($params);
+    $batch = CRM_Batch_BAO_Batch::writeRecord($params);
 
     //set batch id
     $this->_id = $batch->id;
diff --git a/civicrm/CRM/Financial/Form/FinancialType.php b/civicrm/CRM/Financial/Form/FinancialType.php
index 9d1c0fdfb664f8a4ee1b4d9409fb691575b25f90..47021552532c67ab6064c72d85674da1a33b4346 100644
--- a/civicrm/CRM/Financial/Form/FinancialType.php
+++ b/civicrm/CRM/Financial/Form/FinancialType.php
@@ -24,20 +24,6 @@ class CRM_Financial_Form_FinancialType extends CRM_Core_Form {
 
   protected $_BAOName = 'CRM_Financial_BAO_FinancialType';
 
-  /**
-   * Fields for the entity to be assigned to the template.
-   *
-   * @var array
-   */
-  protected $entityFields = [];
-
-  /**
-   * Deletion message to be assigned to the form.
-   *
-   * @var string
-   */
-  protected $deleteMessage;
-
   /**
    * Set variables up before form is built.
    *
@@ -117,9 +103,11 @@ class CRM_Financial_Form_FinancialType extends CRM_Core_Form {
    */
   public function postProcess() {
     if ($this->_action & CRM_Core_Action::DELETE) {
-      $errors = CRM_Financial_BAO_FinancialType::del($this->_id);
-      if (is_array($errors) && !empty($errors)) {
-        CRM_Core_Error::statusBounce($errors['error_message'], CRM_Utils_System::url('civicrm/admin/financial/financialType', "reset=1&action=browse"), ts('Cannot Delete'));
+      try {
+        CRM_Financial_BAO_FinancialType::deleteRecord(['id' => $this->_id]);
+      }
+      catch (CRM_Core_Exception $e) {
+        CRM_Core_Error::statusBounce($e->getMessage(), CRM_Utils_System::url('civicrm/admin/financial/financialType', "reset=1&action=browse"), ts('Cannot Delete'));
       }
       CRM_Core_Session::setStatus(ts('Selected financial type has been deleted.'), ts('Record Deleted'), 'success');
     }
diff --git a/civicrm/CRM/Financial/Form/FrontEndPaymentFormTrait.php b/civicrm/CRM/Financial/Form/FrontEndPaymentFormTrait.php
index 678aeb238ee08b2be078a95a3c327e43b6c9760e..19db6f15af0a2a9bb174fe57cea86d3d324ad817 100644
--- a/civicrm/CRM/Financial/Form/FrontEndPaymentFormTrait.php
+++ b/civicrm/CRM/Financial/Form/FrontEndPaymentFormTrait.php
@@ -174,7 +174,7 @@ trait CRM_Financial_Form_FrontEndPaymentFormTrait {
    * @return string
    */
   protected function getPaymentProcessorTitle($processor) {
-    return $processor['title'] ?? $processor['name'];
+    return $processor['frontend_title'];
   }
 
   /**
diff --git a/civicrm/CRM/Friend/DAO/Friend.php b/civicrm/CRM/Friend/DAO/Friend.php
index f1459c8748a9eda0086e39df5f61e24a570cac2f..a616f52085b444a4a54f263e509e4e087adb9ebb 100644
--- a/civicrm/CRM/Friend/DAO/Friend.php
+++ b/civicrm/CRM/Friend/DAO/Friend.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Friend/Friend.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:b3d0e681c43b6878835d5dd5a36c0d08)
+ * (GenCodeChecksum:b837e6691ca658a0ba6bb86119518f13)
  */
 
 /**
@@ -170,6 +170,12 @@ class CRM_Friend_DAO_Friend extends CRM_Core_DAO {
           'title' => ts('Friend ID'),
           'description' => ts('Friend ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_tell_friend.id',
           'table_name' => 'civicrm_tell_friend',
           'entity' => 'Friend',
@@ -189,6 +195,12 @@ class CRM_Friend_DAO_Friend extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_tell_friend.entity_table',
           'table_name' => 'civicrm_tell_friend',
           'entity' => 'Friend',
@@ -202,6 +214,12 @@ class CRM_Friend_DAO_Friend extends CRM_Core_DAO {
           'title' => ts('Entity ID'),
           'description' => ts('Foreign key to the referenced item.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_tell_friend.entity_id',
           'table_name' => 'civicrm_tell_friend',
           'entity' => 'Friend',
@@ -215,6 +233,12 @@ class CRM_Friend_DAO_Friend extends CRM_Core_DAO {
           'title' => ts('Title'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_tell_friend.title',
           'table_name' => 'civicrm_tell_friend',
           'entity' => 'Friend',
@@ -230,6 +254,12 @@ class CRM_Friend_DAO_Friend extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Intro'),
           'description' => ts('Introductory message to contributor or participant displayed on the Tell a Friend form.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_tell_friend.intro',
           'table_name' => 'civicrm_tell_friend',
           'entity' => 'Friend',
@@ -245,6 +275,12 @@ class CRM_Friend_DAO_Friend extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Suggested Message'),
           'description' => ts('Suggested message to friends, provided as default on the Tell A Friend form.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_tell_friend.suggested_message',
           'table_name' => 'civicrm_tell_friend',
           'entity' => 'Friend',
@@ -262,6 +298,12 @@ class CRM_Friend_DAO_Friend extends CRM_Core_DAO {
           'description' => ts('URL for general info about the organization - included in the email sent to friends.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_tell_friend.general_link',
           'export' => TRUE,
@@ -281,6 +323,12 @@ class CRM_Friend_DAO_Friend extends CRM_Core_DAO {
           'description' => ts('Text for Tell a Friend thank you page header and HTML title.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_tell_friend.thankyou_title',
           'table_name' => 'civicrm_tell_friend',
           'entity' => 'Friend',
@@ -296,6 +344,12 @@ class CRM_Friend_DAO_Friend extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Thank You Text'),
           'description' => ts('Thank you message displayed on success page.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_tell_friend.thankyou_text',
           'table_name' => 'civicrm_tell_friend',
           'entity' => 'Friend',
@@ -311,6 +365,12 @@ class CRM_Friend_DAO_Friend extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_BOOLEAN,
           'title' => ts('Enabled?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_tell_friend.is_active',
           'default' => '1',
           'table_name' => 'civicrm_tell_friend',
diff --git a/civicrm/CRM/Group/Form/Edit.php b/civicrm/CRM/Group/Form/Edit.php
index 735a19d3c64cf9bb7f4574b07b96bb62dc80822d..28d07afd9ded18a15f71cfddd285eb7259a89a84 100644
--- a/civicrm/CRM/Group/Form/Edit.php
+++ b/civicrm/CRM/Group/Form/Edit.php
@@ -99,7 +99,8 @@ class CRM_Group_Form_Edit extends CRM_Core_Form {
       'parent_groups',
       'editSmartGroupURL',
     ]);
-    $this->_id = $this->get('id');
+    // current set id
+    $this->_id = CRM_Utils_Request::retrieve('id', 'Positive', $this);
     if ($this->_id) {
       $breadCrumb = array(
         array(
@@ -156,6 +157,7 @@ class CRM_Group_Form_Edit extends CRM_Core_Form {
       $session = CRM_Core_Session::singleton();
       $session->pushUserContext(CRM_Utils_System::url('civicrm/group', 'reset=1'));
     }
+    $this->addExpectedSmartyVariables(['freezeMailingList', 'hideMailingList']);
 
     //build custom data
     CRM_Custom_Form_CustomData::preProcess($this, NULL, NULL, 1, 'Group', $this->_id);
diff --git a/civicrm/CRM/Import/DataSource.php b/civicrm/CRM/Import/DataSource.php
index b6b1f00777aa4fc0bd18efde834e3bd8a86cbbce..b44933274adf28d0dd2b66b79159f8228d59cf9b 100644
--- a/civicrm/CRM/Import/DataSource.php
+++ b/civicrm/CRM/Import/DataSource.php
@@ -375,7 +375,7 @@ abstract class CRM_Import_DataSource {
    */
   protected function getTableName(): ?string {
     // The old name is still stored...
-    $tableName = $this->getDataSourceMetadata()['table_name'];
+    $tableName = $this->getDataSourceMetadata()['table_name'] ?? NULL;
     if (!$tableName) {
       return NULL;
     }
diff --git a/civicrm/CRM/Import/DataSource/CSV.php b/civicrm/CRM/Import/DataSource/CSV.php
index b1f5edf7f55d8840c506ed0758690f7f091ea39e..9885ceab93737c7080bd47ca4bf2143f80e2a129 100644
--- a/civicrm/CRM/Import/DataSource/CSV.php
+++ b/civicrm/CRM/Import/DataSource/CSV.php
@@ -23,7 +23,7 @@ class CRM_Import_DataSource_CSV extends CRM_Import_DataSource {
    *
    * @var string[]
    */
-  protected $submittableFields = ['skipColumnHeader', 'uploadField', 'fieldSeparator'];
+  protected $submittableFields = ['skipColumnHeader', 'uploadFile', 'fieldSeparator'];
 
   /**
    * Provides information about the data source.
@@ -56,7 +56,7 @@ class CRM_Import_DataSource_CSV extends CRM_Import_DataSource {
     $uploadSize = round(($uploadFileSize / (1024 * 1024)), 2);
     $form->assign('uploadSize', $uploadSize);
     $form->add('File', 'uploadFile', ts('Import Data File'), NULL, TRUE);
-    $form->addElement('text', 'fieldSeparator', ts('Import Field Separator'), ['size' => 2]);
+    $form->add('text', 'fieldSeparator', ts('Import Field Separator'), ['size' => 2], TRUE);
     $form->setMaxFileSize($uploadFileSize);
     $form->addRule('uploadFile', ts('File size should be less than %1 MBytes (%2 bytes)', [
       1 => $uploadSize,
diff --git a/civicrm/CRM/Import/DataSource/SQL.php b/civicrm/CRM/Import/DataSource/SQL.php
index d9fa015d90b2da4ac282b564a5b20db7c253e176..ad6ac14ea095b091336fb28a0cc025f84e4a5632 100644
--- a/civicrm/CRM/Import/DataSource/SQL.php
+++ b/civicrm/CRM/Import/DataSource/SQL.php
@@ -81,12 +81,7 @@ class CRM_Import_DataSource_SQL extends CRM_Import_DataSource {
   public function initialize(): void {
     $table = CRM_Utils_SQL_TempTable::build()->setDurable();
     $tableName = $table->getName();
-    try {
-      $table->createWithQuery($this->getSubmittedValue('sqlQuery'));
-    }
-    catch (PEAR_Exception $e) {
-      throw new CRM_Core_Exception($e->getMessage(), 0, ['exception' => $e]);
-    }
+    $table->createWithQuery($this->getSubmittedValue('sqlQuery'));
 
     // Get the names of the fields to be imported.
     $columnsResult = CRM_Core_DAO::executeQuery(
diff --git a/civicrm/CRM/Import/Form/DataSource.php b/civicrm/CRM/Import/Form/DataSource.php
index 95b1bf21ad2b2f72de9c3d2a862ce631aa05547e..48c8046a3ee8d6ab27e0a7fd5244ad5f37f6c9c9 100644
--- a/civicrm/CRM/Import/Form/DataSource.php
+++ b/civicrm/CRM/Import/Form/DataSource.php
@@ -14,13 +14,24 @@
  * @copyright CiviCRM LLC https://civicrm.org/licensing
  */
 
+use Civi\Api4\Mapping;
 use Civi\Api4\Utils\CoreUtil;
+use Civi\Api4\UserJob;
 
 /**
  * Base class for upload-only import forms (all but Contact import).
  */
 abstract class CRM_Import_Form_DataSource extends CRM_Import_Forms {
 
+  /**
+   * Values loaded from a saved UserJob template.
+   *
+   * Within Civi-Import it is possible to save a UserJob with is_template = 1.
+   *
+   * @var array
+   */
+  protected $templateValues = [];
+
   /**
    * Set variables up before form is built.
    */
@@ -43,6 +54,16 @@ abstract class CRM_Import_Form_DataSource extends CRM_Import_Forms {
     return (string) CoreUtil::getInfoItem($this->getBaseEntity(), 'title');
   }
 
+  /**
+   * Get the mapping ID that is being loaded.
+   *
+   * @return int|null
+   * @throws \CRM_Core_Exception
+   */
+  public function getSavedMappingID(): ?int {
+    return $this->getSubmittedValue('savedMapping') ?: NULL;
+  }
+
   /**
    * Get the import entity plural (translated).
    *
@@ -61,27 +82,43 @@ abstract class CRM_Import_Form_DataSource extends CRM_Import_Forms {
    */
   public function buildQuickForm() {
     $this->assign('errorMessage', $this->getErrorMessage());
-    $config = CRM_Core_Config::singleton();
 
     $this->assign('urlPath', 'civicrm/import/datasource');
     $this->assign('urlPathVar', 'snippet=4&user_job_id=' . $this->get('user_job_id'));
+    if ($this->isImportDataUploaded()) {
+      $this->add('checkbox', 'use_existing_upload', ts('Use data already uploaded'), NULL, FALSE, [
+        'onChange' => "
+          CRM.$('.crm-import-datasource-form-block-dataSource').toggle();
+          CRM.$('#data-source-form-block').toggle()",
+      ]);
+    }
+    if ($this->getTemplateID()) {
+      $this->setTemplateDefaults();
+    }
 
     $this->add('select', 'dataSource', ts('Data Source'), $this->getDataSources(), TRUE,
       ['onchange' => 'buildDataSourceFormBlock(this.value);']
     );
 
     $mappingArray = CRM_Core_BAO_Mapping::getCreateMappingValues('Import ' . $this->getBaseEntity());
-    $this->add('select', 'savedMapping', ts('Saved Field Mapping'), ['' => ts('- select -')] + $mappingArray);
 
-    if ($loadedMapping = $this->get('loadedMapping')) {
-      $this->setDefaults(['savedMapping' => $loadedMapping]);
+    $savedMappingElement = $this->add('select', 'savedMapping', ts('Saved Field Mapping'), ['' => ts('- select -')] + $mappingArray);
+    if ($this->getTemplateID()) {
+      $savedMappingElement->freeze();
     }
 
     //build date formats
     CRM_Core_Form_Date::buildAllowedDateFormats($this);
-
-    $this->buildDataSourceFields();
-
+    // When we call buildDataSourceFields we add them to the form both for purposes of
+    // initial display, but also so they are available during `postProcess`. Hence
+    // we need to add them to the form when first displaying it, or when a csv has been
+    // uploaded or csv described but NOT when the existing file is used. We have
+    // to check `_POST` for this because we want them to be not-added BEFORE validation
+    // as `buildDataSourceFields` also adds rules, which will run before `use_existing_upload`
+    // is treated as submitted.
+    if (empty($_POST['use_existing_upload'])) {
+      $this->buildDataSourceFields();
+    }
     $this->addButtons([
         [
           'type' => 'upload',
@@ -100,8 +137,7 @@ abstract class CRM_Import_Form_DataSource extends CRM_Import_Forms {
     return array_merge($this->dataSourceDefaults, [
       'dataSource' => $this->getDefaultDataSource(),
       'onDuplicate' => CRM_Import_Parser::DUPLICATE_SKIP,
-    ]);
-
+    ], $this->templateValues);
   }
 
   /**
@@ -140,7 +176,7 @@ abstract class CRM_Import_Form_DataSource extends CRM_Import_Forms {
    *
    * @param array $names
    */
-  protected function storeFormValues($names) {
+  protected function storeFormValues(array $names): void {
     foreach ($names as $name) {
       $this->set($name, $this->controller->exportValue($this->_name, $name));
     }
@@ -165,23 +201,66 @@ abstract class CRM_Import_Form_DataSource extends CRM_Import_Forms {
   }
 
   /**
-   * Process the datasource submission - setting up the job and data source.
+   * Load default values from the relevant template if one is passed in via the url.
    *
-   * @throws \CRM_Core_Exception
+   * We need to create and UserJob at this point as the relevant values
+   * go beyond the first DataSource screen.
+   *
+   * @return array
+   * @noinspection PhpUnhandledExceptionInspection
+   * @noinspection PhpDocMissingThrowsInspection
    */
-  protected function processDatasource(): void {
-    if (!$this->getUserJobID()) {
-      $this->createUserJob();
-    }
-    else {
-      $this->flushDataSource();
-      $this->updateUserJobMetadata('submitted_values', $this->getSubmittedValues());
+  public function setTemplateDefaults(): array {
+    $templateID = $this->getTemplateID();
+    if ($templateID && !$this->getUserJobID()) {
+      $userJob = UserJob::get(FALSE)->addWhere('id', '=', $templateID)->execute()->first();
+      $userJobName = $userJob['name'];
+      // Strip off import_ prefix from UserJob.name
+      $mappingName = substr($userJobName, 7);
+      $mappingID = Mapping::get(FALSE)->addWhere('name', '=', $mappingName)->addSelect('id')->execute()->first()['id'];
+      // Unset fields that should not be copied over.
+      unset($userJob['id'], $userJob['name'], $userJob['created_date'], $userJob['is_template'], $userJob['queue_id'], $userJob['start_date'], $userJob['end_date']);
+      $userJob['metadata']['template_id'] = $templateID;
+      $userJob['metadata']['Template']['mapping_id'] = $mappingID;
+      $userJob['created_id'] = CRM_Core_Session::getLoggedInContactID();
+      $userJob['expires_date'] = '+1 week';
+      $userJobID = UserJob::create(FALSE)->setValues($userJob)->execute()->first()['id'];
+      $this->set('user_job_id', $userJobID);
+      $userJob['metadata']['submitted_values']['savedMapping'] = $mappingID;
+      $this->templateValues = $userJob['metadata']['submitted_values'];
     }
+    return [];
+  }
+
+  /**
+   * Process the datasource submission - setting up the job and data source.
+   */
+  protected function processDatasource(): void {
     try {
-      $this->instantiateDataSource();
+      if (!$this->getUserJobID()) {
+        $this->createUserJob();
+        $this->instantiateDataSource();
+      }
+      else {
+        $submittedValues = $this->getSubmittedValues();
+        $fieldsToCopyOver = array_keys(array_diff_key($submittedValues, $this->submittableFields));
+        if ($submittedValues['use_existing_upload']) {
+          // Use the already saved value.
+          $fieldsToCopyOver[] = 'dataSource';
+          foreach ($fieldsToCopyOver as $field) {
+            $submittedValues[$field] = $this->getUserJobSubmittedValues()[$field];
+          }
+          $this->updateUserJobMetadata('submitted_values', $submittedValues);
+        }
+        else {
+          $this->flushDataSource();
+          $this->updateUserJobMetadata('submitted_values', $submittedValues);
+          $this->instantiateDataSource();
+        }
+      }
     }
     catch (CRM_Core_Exception $e) {
-      CRM_Core_Error::statusBounce($e->getMessage());
+      CRM_Core_Error::statusBounce($e->getUserMessage());
     }
   }
 
diff --git a/civicrm/CRM/Import/Form/MapField.php b/civicrm/CRM/Import/Form/MapField.php
index 3ab882d2d110597517d638d9a0d4bb3e6e644de6..0ddea9ae84fba0c99c40048766f1bc9bae906e30 100644
--- a/civicrm/CRM/Import/Form/MapField.php
+++ b/civicrm/CRM/Import/Form/MapField.php
@@ -57,9 +57,15 @@ abstract class CRM_Import_Form_MapField extends CRM_Import_Forms {
 
   /**
    * Shared preProcess code.
+   *
+   * @throws \CRM_Core_Exception
    */
   public function preProcess() {
-    $this->assignMapFieldVariables();
+    $this->addExpectedSmartyVariables(['highlightedRelFields', 'initHideBoxes']);
+    $this->assign('columnNames', $this->getColumnHeaders());
+    $this->assign('showColumnNames', $this->getSubmittedValue('skipColumnHeader') || $this->getSubmittedValue('dataSource') !== 'CRM_Import_DataSource');
+    $this->assign('highlightedFields', $this->getHighlightedFields());
+    $this->assign('dataValues', array_values($this->getDataRows([], 2)));
     $this->_mapperFields = $this->getAvailableFields();
     asort($this->_mapperFields);
     parent::preProcess();
@@ -74,8 +80,11 @@ abstract class CRM_Import_Form_MapField extends CRM_Import_Forms {
    * @noinspection PhpUnhandledExceptionInspection
    */
   public function postProcess() {
-    $this->updateUserJobMetadata('submitted_values', $this->getSubmittedValues());
+    // This savedMappingID is the one selected on DataSource. It will be overwritten in saveMapping if any
+    // action was taken on it.
+    $this->savedMappingID = $this->getSubmittedValue('savedMapping') ?: NULL;
     $this->saveMapping();
+    $this->updateUserJobMetadata('submitted_values', $this->getSubmittedValues());
     $parser = $this->getParser();
     $parser->init();
     $parser->validate();
@@ -136,6 +145,7 @@ abstract class CRM_Import_Form_MapField extends CRM_Import_Forms {
    * @throws \CRM_Core_Exception
    */
   protected function buildSavedMappingFields($savedMappingID) {
+    CRM_Core_Error::deprecatedFunctionWarning('addSavedMappingFields');
     //to save the current mappings
     if (!$savedMappingID) {
       $saveDetailsName = ts('Save this field mapping');
@@ -144,11 +154,10 @@ abstract class CRM_Import_Form_MapField extends CRM_Import_Forms {
       $this->add('text', 'saveMappingDesc', ts('Description'));
     }
     else {
+      // @todo we should stop doing this - the passed in value should be fine, confirmed OK in contact import.
       $savedMapping = $this->get('savedMapping');
-
       $mappingName = (string) civicrm_api3('Mapping', 'getvalue', ['id' => $savedMappingID, 'return' => 'name']);
-      $this->set('loadedMapping', $savedMapping);
-      $this->add('hidden', 'mappingId', $savedMappingID);
+      $this->add('hidden', 'mappingId', $savedMapping);
 
       $this->addElement('checkbox', 'updateMapping', ts('Update this field mapping'), NULL);
       $saveDetailsName = ts('Save as a new field mapping');
@@ -156,7 +165,7 @@ abstract class CRM_Import_Form_MapField extends CRM_Import_Forms {
       $this->add('text', 'saveMappingDesc', ts('Description'));
     }
     $this->assign('savedMappingName', $mappingName ?? NULL);
-    $this->addElement('checkbox', 'saveMapping', $saveDetailsName, NULL, ['onclick' => "showSaveDetails(this)"]);
+    $this->addElement('checkbox', 'saveMapping', $saveDetailsName, NULL);
   }
 
   /**
@@ -215,8 +224,19 @@ abstract class CRM_Import_Form_MapField extends CRM_Import_Forms {
    * @throws \CRM_Core_Exception
    */
   protected function saveMappingField(int $mappingID, int $columnNumber, bool $isUpdate = FALSE): void {
-    $fieldMapping = (array) $this->getSubmittedValue('mapper')[$columnNumber];
-    $mappedField = $this->getMappedField($fieldMapping, $mappingID, $columnNumber);
+    if (!empty($this->userJob['metadata']['import_mappings'])) {
+      // In this case Civi-Import has already saved the mapping to civicrm_user_job.metadata
+      // and the code here is just keeping civicrm_mapping_field in sync.
+      // Eventually we hope to phase out the use of the civicrm_mapping data &
+      // just use UserJob and Import Templates (UserJob records with 'is_template' = 1
+      $mappedFieldData = $this->userJob['metadata']['import_mappings'][$columnNumber];
+      $mappedField = array_intersect_key(array_fill_keys(['name', 'column_number', 'entity_data'], TRUE), $mappedFieldData);
+      $mappedField['mapping_id'] = $mappingID;
+    }
+    else {
+      $fieldMapping = (array) $this->getSubmittedValue('mapper')[$columnNumber];
+      $mappedField = $this->getMappedField($fieldMapping, $mappingID, $columnNumber);
+    }
     if (empty($mappedField['name'])) {
       $mappedField['name'] = 'do_not_import';
     }
@@ -243,10 +263,12 @@ abstract class CRM_Import_Form_MapField extends CRM_Import_Forms {
   protected function saveMapping(): void {
     //Updating Mapping Records
     if ($this->getSubmittedValue('updateMapping')) {
+      $savedMappingID = (int) $this->getSubmittedValue('mappingId');
       foreach (array_keys($this->getColumnHeaders()) as $i) {
-        $this->saveMappingField((int) $this->getSubmittedValue('mappingId'), $i, TRUE);
+        $this->saveMappingField($savedMappingID, $i, TRUE);
       }
-      $this->updateUserJobMetadata('mapping', ['id' => (int) $this->getSubmittedValue('mappingId')]);
+      $this->setSavedMappingID($savedMappingID);
+      $this->updateUserJobMetadata('Template', ['mapping_id' => (int) $this->getSubmittedValue('mappingId')]);
     }
     //Saving Mapping Details and Records
     if ($this->getSubmittedValue('saveMapping')) {
@@ -255,12 +277,12 @@ abstract class CRM_Import_Form_MapField extends CRM_Import_Forms {
         'description' => $this->getSubmittedValue('saveMappingDesc'),
         'mapping_type_id:name' => $this->getMappingTypeName(),
       ])->execute()->first()['id'];
-
+      $this->setSavedMappingID($savedMappingID);
+      $this->updateUserJobMetadata('Template', ['mapping_id' => $savedMappingID]);
       foreach (array_keys($this->getColumnHeaders()) as $i) {
         $this->saveMappingField($savedMappingID, $i, FALSE);
       }
       $this->set('savedMapping', $savedMappingID);
-      $this->updateUserJobMetadata('mapping', ['id' => $savedMappingID]);
     }
   }
 
@@ -362,8 +384,24 @@ abstract class CRM_Import_Form_MapField extends CRM_Import_Forms {
    * @throws \CRM_Core_Exception
    */
   protected function addSavedMappingFields(): void {
-    $savedMappingID = (int) $this->getSubmittedValue('savedMapping');
-    $this->buildSavedMappingFields($savedMappingID);
+    $savedMappingID = $this->getSavedMappingID();
+    //to save the current mappings
+    if (!$savedMappingID) {
+      $saveDetailsName = ts('Save this field mapping');
+      $this->applyFilter('saveMappingName', 'trim');
+      $this->add('text', 'saveMappingName', ts('Name'));
+      $this->add('text', 'saveMappingDesc', ts('Description'));
+    }
+    else {
+      $this->add('hidden', 'mappingId', $savedMappingID);
+
+      $this->addElement('checkbox', 'updateMapping', ts('Update this field mapping'), NULL);
+      $saveDetailsName = ts('Save as a new field mapping');
+      $this->add('text', 'saveMappingName', ts('Name'));
+      $this->add('text', 'saveMappingDesc', ts('Description'));
+    }
+    $this->assign('savedMappingName', $this->getMappingName());
+    $this->addElement('checkbox', 'saveMapping', $saveDetailsName, NULL);
     $this->addFormRule(['CRM_Import_Form_MapField', 'mappingRule']);
   }
 
@@ -419,7 +457,7 @@ abstract class CRM_Import_Form_MapField extends CRM_Import_Forms {
         continue;
       }
       $childField = [
-        'text' => $field['title'],
+        'text' => $field['label'] ?? ($field['html']['label'] ?? $field['title']),
         'id' => $fieldName,
         'has_location' => !empty($field['hasLocationType']),
         'default_value' => $field['default_value'] ?? '',
diff --git a/civicrm/CRM/Import/Form/Preview.php b/civicrm/CRM/Import/Form/Preview.php
index d0994b0fe99791570e4754dd008a12c8350e4568..7bf16cd0495470b2f15210445979b8cfd609ce3e 100644
--- a/civicrm/CRM/Import/Form/Preview.php
+++ b/civicrm/CRM/Import/Form/Preview.php
@@ -72,6 +72,10 @@ abstract class CRM_Import_Form_Preview extends CRM_Import_Forms {
     $this->assign('mapper', $this->getMappedFieldLabels());
     $this->assign('dataValues', $this->getDataRows([], 2));
     $this->assign('columnNames', $this->getColumnHeaders());
+    // This can be overridden by Civi-Import so that the Download url
+    // links that go to SearchKit open in a new tab.
+    $this->assign('isOpenResultsInNewTab');
+    $this->assign('allRowsUrl');
     //get the mapping name displayed if the mappingId is set
     $mappingId = $this->get('loadMappingId');
     if ($mappingId) {
diff --git a/civicrm/CRM/Import/Forms.php b/civicrm/CRM/Import/Forms.php
index 4c024ba2346a32126a08446152623f56dd17ea0b..31df4826e3c71c3400762adad838013149140a5f 100644
--- a/civicrm/CRM/Import/Forms.php
+++ b/civicrm/CRM/Import/Forms.php
@@ -15,6 +15,7 @@
  * @copyright CiviCRM LLC https://civicrm.org/licensing
  */
 
+use Civi\Api4\Mapping;
 use Civi\Api4\UserJob;
 use League\Csv\Writer;
 
@@ -23,6 +24,12 @@ use League\Csv\Writer;
  */
 class CRM_Import_Forms extends CRM_Core_Form {
 
+
+  /**
+   * @var int
+   */
+  protected $templateID;
+
   /**
    * User job id.
    *
@@ -33,6 +40,46 @@ class CRM_Import_Forms extends CRM_Core_Form {
    */
   protected $userJobID;
 
+  /**
+   * Name of the import mapping (civicrm_mapping).
+   *
+   * @var string
+   */
+  protected $mappingName;
+
+  /**
+   * The id of the saved mapping being updated.
+   *
+   * Note this may not be the same as the saved mapping being used to
+   * load data. Use the `getSavedMappingID` function to access & any
+   * extra logic can be added in there.
+   *
+   * @var int
+   */
+  protected $savedMappingID;
+
+  /**
+   * @param int $savedMappingID
+   *
+   * @return CRM_Import_Forms
+   */
+  public function setSavedMappingID(int $savedMappingID): CRM_Import_Forms {
+    $this->savedMappingID = $savedMappingID;
+    return $this;
+  }
+
+  /**
+   * Get the name of the type to be stored in civicrm_user_job.type_id.
+   *
+   * This should be overridden.
+   *
+   * @return string
+   */
+  public function getUserJobType(): string {
+    CRM_Core_Error::deprecatedWarning('this function should be overridden');
+    return '';
+  }
+
   /**
    * @return int|null
    */
@@ -113,17 +160,12 @@ class CRM_Import_Forms extends CRM_Core_Form {
    * @var string[]
    */
   protected $submittableFields = [
-    // Skip column header is actually a field that would be added from the
-    // datasource - but currently only in contact, it is always there for
-    // other imports, ditto uploadFile.
-    'skipColumnHeader' => 'DataSource',
-    'fieldSeparator' => 'DataSource',
-    'uploadFile' => 'DataSource',
     'contactType' => 'DataSource',
     'contactSubType' => 'DataSource',
     'dateFormats' => 'DataSource',
     'savedMapping' => 'DataSource',
     'dataSource' => 'DataSource',
+    'use_existing_upload' => 'DataSource',
     'dedupe_rule_id' => 'DataSource',
     'onDuplicate' => 'DataSource',
     'disableUSPS' => 'DataSource',
@@ -142,6 +184,7 @@ class CRM_Import_Forms extends CRM_Core_Form {
    * @param string $fieldName
    *
    * @return mixed|null
+   * @throws \CRM_Core_Exception
    */
   public function getSubmittedValue(string $fieldName) {
     if ($fieldName === 'dataSource') {
@@ -161,16 +204,54 @@ class CRM_Import_Forms extends CRM_Core_Form {
   }
 
   /**
-   * Get values submitted on any form in the multi-page import flow.
+   * Get the template ID from the url, if available.
    *
-   * @return array
+   * Otherwise there are other possibilities...
+   *  - it could already be saved to our UserJob.
+   *  - on the DataSource form we could determine if from the savedMapping field
+   *  (which will hold an ID that can be used to load it). We want to check this is
+   *  coming from the POST (ie fresh)
+   *  - on the MapField form it could be derived from the new mapping created from
+   *   saveMapping + saveMappingName.
+   *
+   * @return int|null
+   * @noinspection PhpUnhandledExceptionInspection
+   * @noinspection PhpDocMissingThrowsInspection
+   */
+  public function getTemplateID(): ?int {
+    if ($this->templateID === NULL) {
+      $this->templateID = CRM_Utils_Request::retrieve('template_id', 'Int', $this);
+      if ($this->templateID && $this->getTemplateJob()) {
+        return $this->templateID;
+      }
+      if ($this->getUserJobID()) {
+        $this->templateID = $this->getUserJob()['metadata']['template_id'] ?? NULL;
+      }
+      elseif (!empty($this->getSubmittedValue('savedMapping'))) {
+        if (!$this->getTemplateJob()) {
+          $this->createTemplateJob();
+        }
+      }
+    }
+    return $this->templateID ?? NULL;
+  }
+
+  /**
+   * @return string
+   *
+   * @throws \CRM_Core_Exception
    */
-  public function getSubmittedValues(): array {
-    $values = [];
-    foreach (array_keys($this->getSubmittableFields()) as $key) {
-      $values[$key] = $this->getSubmittedValue($key);
+  protected function getMappingName(): string {
+    if ($this->mappingName === NULL) {
+      $savedMappingID = $this->getSavedMappingID();
+      if ($savedMappingID) {
+        $this->mappingName = Mapping::get(FALSE)
+          ->addWhere('id', '=', $savedMappingID)
+          ->execute()
+          ->first()['name'];
+      }
     }
-    return $values;
+    return $this->mappingName ?? '';
   }
 
   /**
@@ -211,7 +292,7 @@ class CRM_Import_Forms extends CRM_Core_Form {
    * 2) User changes the source to SQL - the ajax updates the html but the
    * form was built with the expectation that the csv-specific fields would be
    * required.
-   * 3) When the user submits Quickform calls preProcess and buildForm and THEN
+   * 3) When the user submits QuickForm calls preProcess and buildForm and THEN
    * retrieves the submitted values based on what has been added in buildForm.
    * Only the submitted values for fields added in buildForm are available - but
    * these have to be added BEFORE the submitted values are determined. Hence
@@ -281,10 +362,27 @@ class CRM_Import_Forms extends CRM_Core_Form {
     // We give the datasource a chance to clean up any tables it might have
     // created. If we are still using the same type of datasource (e.g still
     // an sql query
-    $oldDataSource = $this->getUserJobSubmittedValues()['dataSource'];
-    $oldDataSourceObject = new $oldDataSource($this->getUserJobID());
-    $newParams = $this->getSubmittedValue('dataSource') === $oldDataSource ? $this->getSubmittedValues() : [];
-    $oldDataSourceObject->purge($newParams);
+    $oldDataSource = $this->getUserJobSubmittedValues()['dataSource'] ?? NULL;
+    if ($oldDataSource) {
+      // Absence of an old data source likely means a template has been used (hence
+      // the user job exists) - but templates don't have data sources - so nothing to flush.
+      $oldDataSourceObject = new $oldDataSource($this->getUserJobID());
+      $newParams = $this->getSubmittedValue('dataSource') === $oldDataSource ? $this->getSubmittedValues() : [];
+      $oldDataSourceObject->purge($newParams);
+    }
+    $this->updateUserJobMetadata('DataSource', []);
+  }
+
+  /**
+   * Is the data already uploaded.
+   *
+   * This would be true on the DataSource screen when using the back button
+   * and ideally we can re-use that data rather than make them upload anew.
+   *
+   * @throws \CRM_Core_Exception
+   */
+  protected function isImportDataUploaded(): bool {
+    return $this->getUserJobID() && !empty($this->getUserJob()['metadata']['DataSource']['table_name']);
   }
 
   /**
@@ -308,6 +406,8 @@ class CRM_Import_Forms extends CRM_Core_Form {
    * This is called as a snippet in DataSourceConfig and
    * also from DataSource::buildForm to add the fields such
    * that quick form picks them up.
+   *
+   * @throws \CRM_Core_Exception
    */
   protected function getDataSourceFields(): array {
     $className = $this->getDataSourceClassName();
@@ -335,6 +435,7 @@ class CRM_Import_Forms extends CRM_Core_Form {
    * all forms.
    *
    * @return string[]
+   * @throws \CRM_Core_Exception
    */
   protected function getSubmittableFields(): array {
     $dataSourceFields = array_fill_keys($this->getDataSourceFields(), 'DataSource');
@@ -382,6 +483,8 @@ class CRM_Import_Forms extends CRM_Core_Form {
         'expires_date' => '+ 1 week',
         'metadata' => [
           'submitted_values' => $this->getSubmittedValues(),
+          'template_id' => $this->getTemplateID(),
+          'Template' => ['mapping_id' => $this->getSavedMappingID()],
         ],
       ])
       ->execute()
@@ -390,6 +493,22 @@ class CRM_Import_Forms extends CRM_Core_Form {
     return $id;
   }
 
+  protected function createTemplateJob(): void {
+    if (!$this->getUserJobType()) {
+      // This could be hit in extensions while they transition.
+      CRM_Core_Error::deprecatedWarning('Classes should implement getUserJobType');
+      return;
+    }
+    $this->templateID = UserJob::create(FALSE)->setValues([
+      'is_template' => 1,
+      'created_id' => CRM_Core_Session::getLoggedInContactID(),
+      'job_type' => $this->getUserJobType(),
+      'status_id:name' => 'draft',
+      'name' => 'import_' . $this->getMappingName(),
+      'metadata' => ['submitted_values' => $this->getSubmittedValues()],
+    ])->execute()->first()['id'];
+  }
+
   /**
    * @param string $key
    * @param array $data
@@ -402,6 +521,14 @@ class CRM_Import_Forms extends CRM_Core_Form {
       $this->getUserJob()['metadata'],
       [$key => $data]
     );
+    $this->getUserJob()['metadata'] = $metaData;
+    if ($this->isUpdateTemplateJob()) {
+      $this->updateTemplateUserJob($metaData);
+    }
+    // We likely don't need the empty check. A precaution against nulling it out by accident.
+    if (empty($metaData['template_id'])) {
+      $metaData['template_id'] = $this->templateID;
+    }
     UserJob::update(FALSE)
       ->addWhere('id', '=', $this->getUserJobID())
       ->setValues(['metadata' => $metaData])
@@ -409,6 +536,17 @@ class CRM_Import_Forms extends CRM_Core_Form {
     $this->userJob['metadata'] = $metaData;
   }
 
+  /**
+   * Is the user wanting to update the template / mapping.
+   *
+   * @return bool
+   *
+   * @throws \CRM_Core_Exception
+   */
+  protected function isUpdateTemplateJob(): bool {
+    return $this->getSubmittedValue('updateMapping') || $this->getSubmittedValue('saveMapping');
+  }
+
   /**
    * Get column headers for the datasource or empty array if none apply.
    *
@@ -568,6 +706,18 @@ class CRM_Import_Forms extends CRM_Core_Form {
     return $summary;
   }
 
+  /**
+   * Get information about the user job parser.
+   *
+   * This is as per `CRM_Core_BAO_UserJob::getTypes()`
+   *
+   * @return array
+   */
+  protected function getUserJobInfo(): array {
+    $importInformation = $this->getParser()->getUserJobInfo();
+    return reset($importInformation);
+  }
+
   /**
    * Get the fields available for import selection.
    *
@@ -634,6 +784,7 @@ class CRM_Import_Forms extends CRM_Core_Form {
    * Get an instance of the parser class.
    *
    * @return \CRM_Contact_Import_Parser_Contact|\CRM_Contribute_Import_Parser_Contribution
+   * @throws \CRM_Core_Exception
    */
   protected function getParser() {
     foreach (CRM_Core_BAO_UserJob::getTypes() as $jobType) {
@@ -671,19 +822,6 @@ class CRM_Import_Forms extends CRM_Core_Form {
     return $mapper;
   }
 
-  /**
-   * Assign variables required for the MapField form.
-   *
-   * @throws \CRM_Core_Exception
-   */
-  protected function assignMapFieldVariables(): void {
-    $this->addExpectedSmartyVariables(['highlightedRelFields', 'initHideBoxes']);
-    $this->assign('columnNames', $this->getColumnHeaders());
-    $this->assign('showColumnNames', $this->getSubmittedValue('skipColumnHeader') || $this->getSubmittedValue('dataSource') !== 'CRM_Import_DataSource');
-    $this->assign('highlightedFields', $this->getHighlightedFields());
-    $this->assign('dataValues', array_values($this->getDataRows([], 2)));
-  }
-
   /**
    * Get the fields to be highlighted in the UI.
    *
@@ -793,4 +931,56 @@ class CRM_Import_Forms extends CRM_Core_Form {
     ]);
   }
 
+  /**
+   * Get the UserJob Template, if it exists.
+   *
+   * @return array|null
+   *
+   * @throws \CRM_Core_Exception
+   */
+  protected function getTemplateJob(): ?array {
+    $mappingName = $this->getMappingName();
+    if (!$mappingName) {
+      return NULL;
+    }
+    $templateJob = UserJob::get(FALSE)
+      ->addWhere('name', '=', 'import_' . $mappingName)
+      ->addWhere('is_template', '=', TRUE)
+      ->execute()->first();
+    $this->templateID = $templateJob['id'];
+    return $templateJob ?? NULL;
+  }
+
+  /**
+   * @param array $metaData
+   *
+   * @throws \CRM_Core_Exception
+   * @throws \Civi\API\Exception\UnauthorizedException
+   */
+  protected function updateTemplateUserJob(array $metaData): void {
+    if ($this->getTemplateID()) {
+      UserJob::update(FALSE)
+        ->addWhere('id', '=', $this->getTemplateID())
+        ->setValues(['metadata' => $metaData, 'is_template' => TRUE])
+        ->execute();
+    }
+    elseif ($this->getMappingName()) {
+      $this->createTemplateJob();
+    }
+  }
+
+  /**
+   * Get the saved mapping ID being updated.
+   *
+   * @return int|null
+   */
+  public function getSavedMappingID(): ?int {
+    if (!$this->savedMappingID) {
+      if (!empty($this->getUserJob()['metadata']['Template']['mapping_id'])) {
+        $this->savedMappingID = $this->getUserJob()['metadata']['Template']['mapping_id'];
+      }
+    }
+    return $this->savedMappingID;
+  }
+
 }
diff --git a/civicrm/CRM/Import/Parser.php b/civicrm/CRM/Import/Parser.php
index 6ad0e41dddf9b47d3822b65ef895b327c2e4580d..05a6c65aed61b10cc2bfbb85f1ecfc4a794d30ef 100644
--- a/civicrm/CRM/Import/Parser.php
+++ b/civicrm/CRM/Import/Parser.php
@@ -1055,7 +1055,6 @@ abstract class CRM_Import_Parser implements UserJobInterface {
     }
 
     // first add core contact values since for other Civi modules they are not added
-    require_once 'CRM/Contact/BAO/Contact.php';
     $contactFields = CRM_Contact_DAO_Contact::fields();
     _civicrm_api3_store_values($contactFields, $values, $params);
 
@@ -1595,20 +1594,34 @@ abstract class CRM_Import_Parser implements UserJobInterface {
       return CRM_Utils_Rule::email($importedValue) ? $importedValue : 'invalid_import_value';
     }
 
-    if ($fieldMetadata['type'] === CRM_Utils_Type::T_FLOAT) {
+    // DataType is defined on apiv4 metadata - ie what we are moving to.
+    $typeMap = [
+      CRM_Utils_Type::T_FLOAT => 'Float',
+      CRM_Utils_Type::T_MONEY => 'Money',
+      CRM_Utils_Type::T_BOOLEAN => 'Boolean',
+      CRM_Utils_Type::T_DATE => 'Date',
+      (CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME) => 'Timestamp',
+      CRM_Utils_Type::T_TIMESTAMP => 'Timestamp',
+      CRM_Utils_Type::T_INT => 'Integer',
+      CRM_Utils_Type::T_TEXT => 'String',
+      CRM_Utils_Type::T_STRING => 'String',
+    ];
+    $dataType = $fieldMetadata['data_type'] ?? $typeMap[$fieldMetadata['type']];
+
+    if ($dataType === 'Float') {
       return CRM_Utils_Rule::numeric($importedValue) ? $importedValue : 'invalid_import_value';
     }
-    if ($fieldMetadata['type'] === CRM_Utils_Type::T_MONEY) {
+    if ($dataType === 'Money') {
       return CRM_Utils_Rule::money($importedValue, TRUE) ? CRM_Utils_Rule::cleanMoney($importedValue) : 'invalid_import_value';
     }
-    if ($fieldMetadata['type'] === CRM_Utils_Type::T_BOOLEAN) {
+    if ($dataType === 'Boolean') {
       $value = CRM_Utils_String::strtoboolstr($importedValue);
       if ($value !== FALSE) {
-        return (bool) $value;
+        return (int) $value;
       }
       return 'invalid_import_value';
     }
-    if ($fieldMetadata['type'] === CRM_Utils_Type::T_DATE || $fieldMetadata['type'] === (CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME) || $fieldMetadata['type'] === CRM_Utils_Type::T_TIMESTAMP) {
+    if (in_array($dataType, ['Date', 'Timestamp'], TRUE)) {
       $value = CRM_Utils_Date::formatDate($importedValue, (int) $this->getSubmittedValue('dateFormats'));
       return $value ?: 'invalid_import_value';
     }
@@ -1638,10 +1651,10 @@ abstract class CRM_Import_Parser implements UserJobInterface {
           $campaign = Campaign::get()->addClause('OR', ['title', '=', $importedValue], ['name', '=', $importedValue], ['id', '=', $importedValue])->addSelect('id')->execute()->first();
           Civi::$statics[__CLASS__][$fieldName][$importedValue] = $campaign['id'] ?? FALSE;
         }
-        return Civi::$statics[__CLASS__][$fieldName][$importedValue] ?? 'invalid_import_value';
+        return Civi::$statics[__CLASS__][$fieldName][$importedValue] ?: 'invalid_import_value';
       }
     }
-    if ($fieldMetadata['type'] === CRM_Utils_Type::T_INT) {
+    if ($dataType === 'Integer') {
       // We have resolved the options now so any remaining ones should be integers.
       return CRM_Utils_Rule::numeric($importedValue) ? $importedValue : 'invalid_import_value';
     }
@@ -1686,7 +1699,7 @@ abstract class CRM_Import_Parser implements UserJobInterface {
     }
 
     $fieldMetadata = $this->getImportableFieldsMetadata()[$fieldMapName];
-    if ($loadOptions && !isset($fieldMetadata['options'])) {
+    if ($loadOptions && (!isset($fieldMetadata['options']) || $fieldMetadata['options'] === TRUE)) {
       if (($fieldMetadata['data_type'] ?? '') === 'StateProvince') {
         // Probably already loaded and also supports abbreviations - eg. NSW.
         // Supporting for core AND custom state fields is more consistent.
@@ -2140,26 +2153,6 @@ abstract class CRM_Import_Parser implements UserJobInterface {
     $this->getDataSourceObject()->updateStatus($id, $status, $message, $entityID, $additionalFields);
   }
 
-  /**
-   * Convert any given date string to default date array.
-   *
-   * @param array $params
-   *   Has given date-format.
-   * @param array $formatted
-   *   Store formatted date in this array.
-   * @param int $dateType
-   *   Type of date.
-   * @param string $dateParam
-   *   Index of params.
-   *
-   * @deprecated
-   */
-  public static function formatCustomDate(&$params, &$formatted, $dateType, $dateParam) {
-    //fix for CRM-2687
-    CRM_Utils_Date::convertToDefaultDate($params, $dateType, $dateParam);
-    $formatted[$dateParam] = CRM_Utils_Date::processDate($params[$dateParam]);
-  }
-
   /**
    * Get the value to use for option comparison purposes.
    *
diff --git a/civicrm/CRM/Logging/ReportDetail.php b/civicrm/CRM/Logging/ReportDetail.php
index f69d6f5cd1c8b59f19d3dffba57bfa00761569e1..a87ee1edc89411a1bf9515266280a03aa70fcdd7 100644
--- a/civicrm/CRM/Logging/ReportDetail.php
+++ b/civicrm/CRM/Logging/ReportDetail.php
@@ -80,7 +80,7 @@ class CRM_Logging_ReportDetail extends CRM_Report_Form {
     CRM_Utils_System::resetBreadCrumb();
     $breadcrumb = [
       [
-        'title' => ts('Home'),
+        'title' => ts('Home', ['context' => 'menu']),
         'url' => CRM_Utils_System::url(),
       ],
       [
diff --git a/civicrm/CRM/Mailing/BAO/MailingComponent.php b/civicrm/CRM/Mailing/BAO/MailingComponent.php
index 96d3c8e6240bb9eac41e0ce84e76546ac1601404..72c75cb63a0b0cbf90fac0070c9ce51c9a01fa3a 100644
--- a/civicrm/CRM/Mailing/BAO/MailingComponent.php
+++ b/civicrm/CRM/Mailing/BAO/MailingComponent.php
@@ -34,17 +34,13 @@ class CRM_Mailing_BAO_MailingComponent extends CRM_Mailing_DAO_MailingComponent
   }
 
   /**
-   * Update the is_active flag in the db.
-   *
+   * @deprecated - this bypasses hooks.
    * @param int $id
-   *   Id of the database record.
    * @param bool $is_active
-   *   Value we want to set the is_active field.
-   *
    * @return bool
-   *   true if we found and updated the object, else false
    */
   public static function setIsActive($id, $is_active) {
+    CRM_Core_Error::deprecatedFunctionWarning('writeRecord');
     return CRM_Core_DAO::setFieldValue('CRM_Mailing_DAO_MailingComponent', $id, 'is_active', $is_active);
   }
 
diff --git a/civicrm/CRM/Mailing/DAO/BouncePattern.php b/civicrm/CRM/Mailing/DAO/BouncePattern.php
index 71d5601bf39194f89dddeae0d57a1cf25eb731be..ac7d39939a0706c399cbca2dcc9719e1bd9f57e7 100644
--- a/civicrm/CRM/Mailing/DAO/BouncePattern.php
+++ b/civicrm/CRM/Mailing/DAO/BouncePattern.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Mailing/BouncePattern.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:476fdbcc7717943843964cb65cb3572e)
+ * (GenCodeChecksum:23e0fd111536ca0e0ea158bf8cbb9b2c)
  */
 
 /**
@@ -102,6 +102,12 @@ class CRM_Mailing_DAO_BouncePattern extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Bounce Pattern ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_bounce_pattern.id',
           'table_name' => 'civicrm_mailing_bounce_pattern',
           'entity' => 'BouncePattern',
@@ -119,6 +125,12 @@ class CRM_Mailing_DAO_BouncePattern extends CRM_Core_DAO {
           'title' => ts('Bounce Type ID'),
           'description' => ts('Type of bounce'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_bounce_pattern.bounce_type_id',
           'table_name' => 'civicrm_mailing_bounce_pattern',
           'entity' => 'BouncePattern',
@@ -142,6 +154,12 @@ class CRM_Mailing_DAO_BouncePattern extends CRM_Core_DAO {
           'description' => ts('A regexp to match a message to a bounce type'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_bounce_pattern.pattern',
           'table_name' => 'civicrm_mailing_bounce_pattern',
           'entity' => 'BouncePattern',
diff --git a/civicrm/CRM/Mailing/DAO/BounceType.php b/civicrm/CRM/Mailing/DAO/BounceType.php
index de1ef329c67b3d3e6319cb578a86f6e24d5f87db..fb53691122702de5daf63fafbd1652e3ba13d7e3 100644
--- a/civicrm/CRM/Mailing/DAO/BounceType.php
+++ b/civicrm/CRM/Mailing/DAO/BounceType.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Mailing/BounceType.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:d98766824f0e79f32733f360ea96ff87)
+ * (GenCodeChecksum:54fc337778d1208a78ef9eac006ce1b5)
  */
 
 /**
@@ -96,6 +96,12 @@ class CRM_Mailing_DAO_BounceType extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Bounce Type ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_bounce_type.id',
           'table_name' => 'civicrm_mailing_bounce_type',
           'entity' => 'BounceType',
@@ -115,6 +121,12 @@ class CRM_Mailing_DAO_BounceType extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_bounce_type.name',
           'table_name' => 'civicrm_mailing_bounce_type',
           'entity' => 'BounceType',
@@ -129,6 +141,12 @@ class CRM_Mailing_DAO_BounceType extends CRM_Core_DAO {
           'description' => ts('A description of this bounce type'),
           'maxlength' => 2048,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_bounce_type.description',
           'table_name' => 'civicrm_mailing_bounce_type',
           'entity' => 'BounceType',
@@ -142,6 +160,12 @@ class CRM_Mailing_DAO_BounceType extends CRM_Core_DAO {
           'title' => ts('Hold Threshold'),
           'description' => ts('Number of bounces of this type required before the email address is put on bounce hold'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_bounce_type.hold_threshold',
           'table_name' => 'civicrm_mailing_bounce_type',
           'entity' => 'BounceType',
diff --git a/civicrm/CRM/Mailing/DAO/Mailing.php b/civicrm/CRM/Mailing/DAO/Mailing.php
index 2545211b606e70524ee736e26586d507909ed718..d9d8caa9fcbdcf37b789408e85f3328213d1a10a 100644
--- a/civicrm/CRM/Mailing/DAO/Mailing.php
+++ b/civicrm/CRM/Mailing/DAO/Mailing.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Mailing/Mailing.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:13cad136a69b399a6df4d54a5239bafd)
+ * (GenCodeChecksum:d4641638461a78c3dc0a5090556bb79f)
  */
 
 /**
@@ -503,6 +503,12 @@ class CRM_Mailing_DAO_Mailing extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Mailing ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing.id',
           'table_name' => 'civicrm_mailing',
           'entity' => 'Mailing',
@@ -519,6 +525,12 @@ class CRM_Mailing_DAO_Mailing extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Domain ID'),
           'description' => ts('Which site is this mailing for'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing.domain_id',
           'table_name' => 'civicrm_mailing',
           'entity' => 'Mailing',
@@ -540,6 +552,12 @@ class CRM_Mailing_DAO_Mailing extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Header ID'),
           'description' => ts('FK to the header component.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing.header_id',
           'table_name' => 'civicrm_mailing',
           'entity' => 'Mailing',
@@ -562,6 +580,12 @@ class CRM_Mailing_DAO_Mailing extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Footer ID'),
           'description' => ts('FK to the footer component.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing.footer_id',
           'table_name' => 'civicrm_mailing',
           'entity' => 'Mailing',
@@ -584,6 +608,12 @@ class CRM_Mailing_DAO_Mailing extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Reply ID'),
           'description' => ts('FK to the auto-responder component.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing.reply_id',
           'table_name' => 'civicrm_mailing',
           'entity' => 'Mailing',
@@ -600,6 +630,12 @@ class CRM_Mailing_DAO_Mailing extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Unsubscribe ID'),
           'description' => ts('FK to the unsubscribe component.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing.unsubscribe_id',
           'table_name' => 'civicrm_mailing',
           'entity' => 'Mailing',
@@ -615,6 +651,12 @@ class CRM_Mailing_DAO_Mailing extends CRM_Core_DAO {
           'name' => 'resubscribe_id',
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Mailing Resubscribe'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing.resubscribe_id',
           'table_name' => 'civicrm_mailing',
           'entity' => 'Mailing',
@@ -627,6 +669,12 @@ class CRM_Mailing_DAO_Mailing extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Opt Out ID'),
           'description' => ts('FK to the opt-out component.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing.optout_id',
           'table_name' => 'civicrm_mailing',
           'entity' => 'Mailing',
@@ -645,6 +693,12 @@ class CRM_Mailing_DAO_Mailing extends CRM_Core_DAO {
           'description' => ts('Mailing Name.'),
           'maxlength' => 128,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing.name',
           'table_name' => 'civicrm_mailing',
           'entity' => 'Mailing',
@@ -662,6 +716,12 @@ class CRM_Mailing_DAO_Mailing extends CRM_Core_DAO {
           'description' => ts('differentiate between standalone mailings, A/B tests, and A/B final-winner'),
           'maxlength' => 32,
           'size' => CRM_Utils_Type::MEDIUM,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing.mailing_type',
           'table_name' => 'civicrm_mailing',
           'entity' => 'Mailing',
@@ -682,6 +742,12 @@ class CRM_Mailing_DAO_Mailing extends CRM_Core_DAO {
           'description' => ts('From Header of mailing'),
           'maxlength' => 128,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing.from_name',
           'table_name' => 'civicrm_mailing',
           'entity' => 'Mailing',
@@ -699,6 +765,12 @@ class CRM_Mailing_DAO_Mailing extends CRM_Core_DAO {
           'description' => ts('From Email of mailing'),
           'maxlength' => 128,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing.from_email',
           'table_name' => 'civicrm_mailing',
           'entity' => 'Mailing',
@@ -716,6 +788,12 @@ class CRM_Mailing_DAO_Mailing extends CRM_Core_DAO {
           'description' => ts('Reply-To Email of mailing'),
           'maxlength' => 128,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing.replyto_email',
           'table_name' => 'civicrm_mailing',
           'entity' => 'Mailing',
@@ -735,6 +813,12 @@ class CRM_Mailing_DAO_Mailing extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing.template_type',
           'default' => 'traditional',
           'table_name' => 'civicrm_mailing',
@@ -751,6 +835,12 @@ class CRM_Mailing_DAO_Mailing extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_LONGTEXT,
           'title' => ts('Template Options (JSON)'),
           'description' => ts('Advanced options used by the email templating system. (JSON encoded)'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing.template_options',
           'table_name' => 'civicrm_mailing',
           'entity' => 'Mailing',
@@ -766,6 +856,12 @@ class CRM_Mailing_DAO_Mailing extends CRM_Core_DAO {
           'description' => ts('Subject of mailing'),
           'maxlength' => 128,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing.subject',
           'table_name' => 'civicrm_mailing',
           'entity' => 'Mailing',
@@ -782,6 +878,12 @@ class CRM_Mailing_DAO_Mailing extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_LONGTEXT,
           'title' => ts('Body Text'),
           'description' => ts('Body of the mailing in text format.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing.body_text',
           'table_name' => 'civicrm_mailing',
           'entity' => 'Mailing',
@@ -797,6 +899,12 @@ class CRM_Mailing_DAO_Mailing extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_LONGTEXT,
           'title' => ts('Body Html'),
           'description' => ts('Body of the mailing in html format.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing.body_html',
           'table_name' => 'civicrm_mailing',
           'entity' => 'Mailing',
@@ -813,6 +921,12 @@ class CRM_Mailing_DAO_Mailing extends CRM_Core_DAO {
           'title' => ts('Url Tracking'),
           'description' => ts('Should we track URL click-throughs for this mailing?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing.url_tracking',
           'default' => '0',
           'table_name' => 'civicrm_mailing',
@@ -831,6 +945,12 @@ class CRM_Mailing_DAO_Mailing extends CRM_Core_DAO {
           'title' => ts('Forward Replies'),
           'description' => ts('Should we forward replies back to the author?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing.forward_replies',
           'default' => '0',
           'table_name' => 'civicrm_mailing',
@@ -849,6 +969,12 @@ class CRM_Mailing_DAO_Mailing extends CRM_Core_DAO {
           'title' => ts('Auto Responder'),
           'description' => ts('Should we enable the auto-responder?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing.auto_responder',
           'default' => '0',
           'table_name' => 'civicrm_mailing',
@@ -867,6 +993,12 @@ class CRM_Mailing_DAO_Mailing extends CRM_Core_DAO {
           'title' => ts('Track Mailing?'),
           'description' => ts('Should we track when recipients open/read this mailing?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing.open_tracking',
           'default' => '0',
           'table_name' => 'civicrm_mailing',
@@ -881,6 +1013,12 @@ class CRM_Mailing_DAO_Mailing extends CRM_Core_DAO {
           'title' => ts('Mailing Completed'),
           'description' => ts('Has at least one job associated with this mailing finished?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing.is_completed',
           'default' => '0',
           'table_name' => 'civicrm_mailing',
@@ -897,6 +1035,12 @@ class CRM_Mailing_DAO_Mailing extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Message Template ID'),
           'description' => ts('FK to the message template.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing.msg_template_id',
           'table_name' => 'civicrm_mailing',
           'entity' => 'Mailing',
@@ -914,6 +1058,12 @@ class CRM_Mailing_DAO_Mailing extends CRM_Core_DAO {
           'title' => ts('Override Verp'),
           'description' => ts('Overwrite the VERP address in Reply-To'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing.override_verp',
           'default' => '0',
           'table_name' => 'civicrm_mailing',
@@ -931,6 +1081,12 @@ class CRM_Mailing_DAO_Mailing extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Created By Contact ID'),
           'description' => ts('FK to Contact ID who first created this mailing'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing.created_id',
           'table_name' => 'civicrm_mailing',
           'entity' => 'Mailing',
@@ -948,6 +1104,12 @@ class CRM_Mailing_DAO_Mailing extends CRM_Core_DAO {
           'title' => ts('Mailing Created Date'),
           'description' => ts('Date and time this mailing was created.'),
           'required' => FALSE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing.created_date',
           'default' => 'CURRENT_TIMESTAMP',
           'table_name' => 'civicrm_mailing',
@@ -966,6 +1128,12 @@ class CRM_Mailing_DAO_Mailing extends CRM_Core_DAO {
           'title' => ts('Modified Date'),
           'description' => ts('When the mailing (or closely related entity) was created or modified or deleted.'),
           'required' => FALSE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => TRUE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing.modified_date',
           'export' => TRUE,
           'default' => 'CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP',
@@ -984,6 +1152,12 @@ class CRM_Mailing_DAO_Mailing extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Scheduled By Contact ID'),
           'description' => ts('FK to Contact ID who scheduled this mailing'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing.scheduled_id',
           'table_name' => 'civicrm_mailing',
           'entity' => 'Mailing',
@@ -1001,6 +1175,12 @@ class CRM_Mailing_DAO_Mailing extends CRM_Core_DAO {
           'title' => ts('Mailing Scheduled Date'),
           'description' => ts('Date and time this mailing was scheduled.'),
           'required' => FALSE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing.scheduled_date',
           'default' => NULL,
           'table_name' => 'civicrm_mailing',
@@ -1018,6 +1198,12 @@ class CRM_Mailing_DAO_Mailing extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Approved By Contact ID'),
           'description' => ts('FK to Contact ID who approved this mailing'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing.approver_id',
           'table_name' => 'civicrm_mailing',
           'entity' => 'Mailing',
@@ -1035,6 +1221,12 @@ class CRM_Mailing_DAO_Mailing extends CRM_Core_DAO {
           'title' => ts('Mailing Approved Date'),
           'description' => ts('Date and time this mailing was approved.'),
           'required' => FALSE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing.approval_date',
           'default' => NULL,
           'table_name' => 'civicrm_mailing',
@@ -1052,6 +1244,12 @@ class CRM_Mailing_DAO_Mailing extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Approval Status'),
           'description' => ts('The status of this mailing. Values: none, approved, rejected'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing.approval_status_id',
           'table_name' => 'civicrm_mailing',
           'entity' => 'Mailing',
@@ -1071,6 +1269,12 @@ class CRM_Mailing_DAO_Mailing extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_LONGTEXT,
           'title' => ts('Approval Note'),
           'description' => ts('Note behind the decision.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing.approval_note',
           'table_name' => 'civicrm_mailing',
           'entity' => 'Mailing',
@@ -1087,6 +1291,12 @@ class CRM_Mailing_DAO_Mailing extends CRM_Core_DAO {
           'title' => ts('Is Mailing Archived?'),
           'description' => ts('Is this mailing archived?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing.is_archived',
           'default' => '0',
           'table_name' => 'civicrm_mailing',
@@ -1105,6 +1315,12 @@ class CRM_Mailing_DAO_Mailing extends CRM_Core_DAO {
           'description' => ts('In what context(s) is the mailing contents visible (online viewing)'),
           'maxlength' => 40,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing.visibility',
           'default' => 'Public Pages',
           'table_name' => 'civicrm_mailing',
@@ -1124,6 +1340,12 @@ class CRM_Mailing_DAO_Mailing extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Campaign ID'),
           'description' => ts('The campaign for which this mailing has been initiated.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing.campaign_id',
           'table_name' => 'civicrm_mailing',
           'entity' => 'Mailing',
@@ -1149,6 +1371,12 @@ class CRM_Mailing_DAO_Mailing extends CRM_Core_DAO {
           'title' => ts('No Duplicate emails?'),
           'description' => ts('Remove duplicate emails?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing.dedupe_email',
           'default' => '0',
           'table_name' => 'civicrm_mailing',
@@ -1164,6 +1392,12 @@ class CRM_Mailing_DAO_Mailing extends CRM_Core_DAO {
           'name' => 'sms_provider_id',
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('SMS Provider ID'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing.sms_provider_id',
           'table_name' => 'civicrm_mailing',
           'entity' => 'Mailing',
@@ -1183,6 +1417,12 @@ class CRM_Mailing_DAO_Mailing extends CRM_Core_DAO {
           'description' => ts('Key for validating requests related to this mailing.'),
           'maxlength' => 16,
           'size' => CRM_Utils_Type::TWELVE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing.hash',
           'table_name' => 'civicrm_mailing',
           'entity' => 'Mailing',
@@ -1196,6 +1436,12 @@ class CRM_Mailing_DAO_Mailing extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Location Type ID'),
           'description' => ts('With email_selection_method, determines which email address to use'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing.location_type_id',
           'table_name' => 'civicrm_mailing',
           'entity' => 'Mailing',
@@ -1219,6 +1465,12 @@ class CRM_Mailing_DAO_Mailing extends CRM_Core_DAO {
           'description' => ts('With location_type_id, determine how to choose the email address to use.'),
           'maxlength' => 20,
           'size' => CRM_Utils_Type::MEDIUM,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing.email_selection_method',
           'default' => 'automatic',
           'table_name' => 'civicrm_mailing',
@@ -1240,6 +1492,12 @@ class CRM_Mailing_DAO_Mailing extends CRM_Core_DAO {
           'description' => ts('Language of the content of the mailing. Useful for tokens.'),
           'maxlength' => 5,
           'size' => CRM_Utils_Type::SIX,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing.language',
           'table_name' => 'civicrm_mailing',
           'entity' => 'Mailing',
diff --git a/civicrm/CRM/Mailing/DAO/MailingAB.php b/civicrm/CRM/Mailing/DAO/MailingAB.php
index ad4b7feb341329d64fda812f5b92f0a918a6fdc9..d829a4c9c5c1c6f328d72aa0cd663bbd778649e6 100644
--- a/civicrm/CRM/Mailing/DAO/MailingAB.php
+++ b/civicrm/CRM/Mailing/DAO/MailingAB.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Mailing/MailingAB.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:5c8a0967e3c97a0b382448924e364bf7)
+ * (GenCodeChecksum:d76d742acfe6647f447373ccf4380ecf)
  */
 
 /**
@@ -195,6 +195,12 @@ class CRM_Mailing_DAO_MailingAB extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('MailingAB ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_abtest.id',
           'table_name' => 'civicrm_mailing_abtest',
           'entity' => 'MailingAB',
@@ -213,6 +219,12 @@ class CRM_Mailing_DAO_MailingAB extends CRM_Core_DAO {
           'description' => ts('Name of the A/B test'),
           'maxlength' => 128,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_abtest.name',
           'table_name' => 'civicrm_mailing_abtest',
           'entity' => 'MailingAB',
@@ -227,6 +239,12 @@ class CRM_Mailing_DAO_MailingAB extends CRM_Core_DAO {
           'description' => ts('Status'),
           'maxlength' => 32,
           'size' => CRM_Utils_Type::MEDIUM,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_abtest.status',
           'table_name' => 'civicrm_mailing_abtest',
           'entity' => 'MailingAB',
@@ -242,6 +260,12 @@ class CRM_Mailing_DAO_MailingAB extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Mailing ID (A)'),
           'description' => ts('The first experimental mailing ("A" condition)'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_abtest.mailing_id_a',
           'table_name' => 'civicrm_mailing_abtest',
           'entity' => 'MailingAB',
@@ -254,6 +278,12 @@ class CRM_Mailing_DAO_MailingAB extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Mailing ID (B)'),
           'description' => ts('The second experimental mailing ("B" condition)'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_abtest.mailing_id_b',
           'table_name' => 'civicrm_mailing_abtest',
           'entity' => 'MailingAB',
@@ -266,6 +296,12 @@ class CRM_Mailing_DAO_MailingAB extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Mailing ID (C)'),
           'description' => ts('The final, general mailing (derived from A or B)'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_abtest.mailing_id_c',
           'table_name' => 'civicrm_mailing_abtest',
           'entity' => 'MailingAB',
@@ -279,6 +315,12 @@ class CRM_Mailing_DAO_MailingAB extends CRM_Core_DAO {
           'title' => ts('Domain ID'),
           'description' => ts('Which site is this mailing for'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_abtest.domain_id',
           'table_name' => 'civicrm_mailing_abtest',
           'entity' => 'MailingAB',
@@ -292,6 +334,12 @@ class CRM_Mailing_DAO_MailingAB extends CRM_Core_DAO {
           'title' => ts('Testing Criteria'),
           'maxlength' => 32,
           'size' => CRM_Utils_Type::MEDIUM,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_abtest.testing_criteria',
           'table_name' => 'civicrm_mailing_abtest',
           'entity' => 'MailingAB',
@@ -308,6 +356,12 @@ class CRM_Mailing_DAO_MailingAB extends CRM_Core_DAO {
           'title' => ts('Winner Criteria'),
           'maxlength' => 32,
           'size' => CRM_Utils_Type::MEDIUM,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_abtest.winner_criteria',
           'table_name' => 'civicrm_mailing_abtest',
           'entity' => 'MailingAB',
@@ -325,6 +379,12 @@ class CRM_Mailing_DAO_MailingAB extends CRM_Core_DAO {
           'description' => ts('What specific url to track'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_abtest.specific_url',
           'table_name' => 'civicrm_mailing_abtest',
           'entity' => 'MailingAB',
@@ -337,6 +397,12 @@ class CRM_Mailing_DAO_MailingAB extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME,
           'title' => ts('Declaration Time'),
           'description' => ts('In how much time to declare winner'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_abtest.declare_winning_time',
           'table_name' => 'civicrm_mailing_abtest',
           'entity' => 'MailingAB',
@@ -348,6 +414,12 @@ class CRM_Mailing_DAO_MailingAB extends CRM_Core_DAO {
           'name' => 'group_percentage',
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Group Percentage'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_abtest.group_percentage',
           'table_name' => 'civicrm_mailing_abtest',
           'entity' => 'MailingAB',
@@ -360,6 +432,12 @@ class CRM_Mailing_DAO_MailingAB extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Created By Contact ID'),
           'description' => ts('FK to Contact ID'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_abtest.created_id',
           'table_name' => 'civicrm_mailing_abtest',
           'entity' => 'MailingAB',
@@ -377,6 +455,12 @@ class CRM_Mailing_DAO_MailingAB extends CRM_Core_DAO {
           'title' => ts('AB Test Created Date'),
           'description' => ts('When was this item created'),
           'required' => FALSE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_abtest.created_date',
           'default' => 'CURRENT_TIMESTAMP',
           'table_name' => 'civicrm_mailing_abtest',
diff --git a/civicrm/CRM/Mailing/DAO/MailingComponent.php b/civicrm/CRM/Mailing/DAO/MailingComponent.php
index 88bac6717365cf7b4b9f423f1209ec7b57c9f91f..6d548f30587266fcfafe6769ad152d478d597f60 100644
--- a/civicrm/CRM/Mailing/DAO/MailingComponent.php
+++ b/civicrm/CRM/Mailing/DAO/MailingComponent.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Mailing/MailingComponent.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:4b39480899450fd3b99a2f673b2db1ac)
+ * (GenCodeChecksum:aa24935c1369d294b00f00cec1dd9623)
  */
 
 /**
@@ -130,6 +130,12 @@ class CRM_Mailing_DAO_MailingComponent extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Mailing Component ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_component.id',
           'table_name' => 'civicrm_mailing_component',
           'entity' => 'MailingComponent',
@@ -148,6 +154,12 @@ class CRM_Mailing_DAO_MailingComponent extends CRM_Core_DAO {
           'description' => ts('The name of this component'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_component.name',
           'table_name' => 'civicrm_mailing_component',
           'entity' => 'MailingComponent',
@@ -162,6 +174,12 @@ class CRM_Mailing_DAO_MailingComponent extends CRM_Core_DAO {
           'description' => ts('Type of Component.'),
           'maxlength' => 12,
           'size' => CRM_Utils_Type::TWELVE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_component.component_type',
           'table_name' => 'civicrm_mailing_component',
           'entity' => 'MailingComponent',
@@ -181,6 +199,12 @@ class CRM_Mailing_DAO_MailingComponent extends CRM_Core_DAO {
           'title' => ts('Subject'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_component.subject',
           'table_name' => 'civicrm_mailing_component',
           'entity' => 'MailingComponent',
@@ -198,6 +222,12 @@ class CRM_Mailing_DAO_MailingComponent extends CRM_Core_DAO {
           'description' => ts('Body of the component in html format.'),
           'rows' => 8,
           'cols' => 80,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_component.body_html',
           'table_name' => 'civicrm_mailing_component',
           'entity' => 'MailingComponent',
@@ -215,6 +245,12 @@ class CRM_Mailing_DAO_MailingComponent extends CRM_Core_DAO {
           'description' => ts('Body of the component in text format.'),
           'rows' => 8,
           'cols' => 80,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_component.body_text',
           'table_name' => 'civicrm_mailing_component',
           'entity' => 'MailingComponent',
@@ -232,6 +268,12 @@ class CRM_Mailing_DAO_MailingComponent extends CRM_Core_DAO {
           'title' => ts('Mailing Component is Default?'),
           'description' => ts('Is this the default component for this component_type?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_component.is_default',
           'default' => '0',
           'table_name' => 'civicrm_mailing_component',
@@ -250,6 +292,12 @@ class CRM_Mailing_DAO_MailingComponent extends CRM_Core_DAO {
           'title' => ts('Mailing Component Is Active?'),
           'description' => ts('Is this property active?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_component.is_active',
           'default' => '1',
           'table_name' => 'civicrm_mailing_component',
diff --git a/civicrm/CRM/Mailing/DAO/MailingGroup.php b/civicrm/CRM/Mailing/DAO/MailingGroup.php
index 157e40813312e4d0a9aebfa03ba7b87ea212b230..2eb7402cbef3d1b1e40ce826154ee925db02cf47 100644
--- a/civicrm/CRM/Mailing/DAO/MailingGroup.php
+++ b/civicrm/CRM/Mailing/DAO/MailingGroup.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Mailing/MailingGroup.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:963f8f1a909497c71cbe4d165e1797b5)
+ * (GenCodeChecksum:e274523a6e48c8b26fc29735e528ecdf)
  */
 
 /**
@@ -139,6 +139,12 @@ class CRM_Mailing_DAO_MailingGroup extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Mailing Group ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_group.id',
           'table_name' => 'civicrm_mailing_group',
           'entity' => 'MailingGroup',
@@ -156,6 +162,12 @@ class CRM_Mailing_DAO_MailingGroup extends CRM_Core_DAO {
           'title' => ts('Mailing ID'),
           'description' => ts('The ID of a previous mailing to include/exclude recipients.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_group.mailing_id',
           'table_name' => 'civicrm_mailing_group',
           'entity' => 'MailingGroup',
@@ -174,6 +186,12 @@ class CRM_Mailing_DAO_MailingGroup extends CRM_Core_DAO {
           'description' => ts('Are the members of the group included or excluded?.'),
           'maxlength' => 8,
           'size' => CRM_Utils_Type::EIGHT,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_group.group_type',
           'table_name' => 'civicrm_mailing_group',
           'entity' => 'MailingGroup',
@@ -195,6 +213,12 @@ class CRM_Mailing_DAO_MailingGroup extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_group.entity_table',
           'table_name' => 'civicrm_mailing_group',
           'entity' => 'MailingGroup',
@@ -211,6 +235,12 @@ class CRM_Mailing_DAO_MailingGroup extends CRM_Core_DAO {
           'title' => ts('Mailing Group Entity'),
           'description' => ts('Foreign key to the referenced item.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_group.entity_id',
           'table_name' => 'civicrm_mailing_group',
           'entity' => 'MailingGroup',
@@ -223,6 +253,12 @@ class CRM_Mailing_DAO_MailingGroup extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Mailing Group Search'),
           'description' => ts('The filtering search. custom search id or -1 for civicrm api search'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_group.search_id',
           'table_name' => 'civicrm_mailing_group',
           'entity' => 'MailingGroup',
@@ -235,6 +271,12 @@ class CRM_Mailing_DAO_MailingGroup extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Mailing Group Search Arguments'),
           'description' => ts('The arguments to be sent to the search function'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_group.search_args',
           'table_name' => 'civicrm_mailing_group',
           'entity' => 'MailingGroup',
diff --git a/civicrm/CRM/Mailing/DAO/MailingJob.php b/civicrm/CRM/Mailing/DAO/MailingJob.php
index ffedad169c5a25b1efb9413d6685422f31f3fe4a..e2dc1a5883a2ec3bf22c7cbb979bf273f1d7531e 100644
--- a/civicrm/CRM/Mailing/DAO/MailingJob.php
+++ b/civicrm/CRM/Mailing/DAO/MailingJob.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Mailing/MailingJob.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:d26651120224f019936fd62a44626441)
+ * (GenCodeChecksum:234cdededd082922f889dc386c46ed60)
  */
 
 /**
@@ -184,6 +184,12 @@ class CRM_Mailing_DAO_MailingJob extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Mailing Job ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_job.id',
           'table_name' => 'civicrm_mailing_job',
           'entity' => 'MailingJob',
@@ -202,6 +208,12 @@ class CRM_Mailing_DAO_MailingJob extends CRM_Core_DAO {
           'title' => ts('Mailing ID'),
           'description' => ts('The ID of the mailing this Job will send.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_job.mailing_id',
           'table_name' => 'civicrm_mailing_job',
           'entity' => 'MailingJob',
@@ -219,6 +231,12 @@ class CRM_Mailing_DAO_MailingJob extends CRM_Core_DAO {
           'title' => ts('Mailing Scheduled Date'),
           'description' => ts('date on which this job was scheduled.'),
           'required' => FALSE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_job.scheduled_date',
           'default' => NULL,
           'table_name' => 'civicrm_mailing_job',
@@ -237,6 +255,12 @@ class CRM_Mailing_DAO_MailingJob extends CRM_Core_DAO {
           'title' => ts('Mailing Job Start Date'),
           'description' => ts('date on which this job was started.'),
           'required' => FALSE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_job.start_date',
           'default' => NULL,
           'table_name' => 'civicrm_mailing_job',
@@ -256,6 +280,12 @@ class CRM_Mailing_DAO_MailingJob extends CRM_Core_DAO {
           'title' => ts('Mailing Job End Date'),
           'description' => ts('date on which this job ended.'),
           'required' => FALSE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_job.end_date',
           'default' => NULL,
           'table_name' => 'civicrm_mailing_job',
@@ -275,6 +305,12 @@ class CRM_Mailing_DAO_MailingJob extends CRM_Core_DAO {
           'description' => ts('The state of this job'),
           'maxlength' => 12,
           'size' => CRM_Utils_Type::TWELVE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_job.status',
           'table_name' => 'civicrm_mailing_job',
           'entity' => 'MailingJob',
@@ -294,6 +330,12 @@ class CRM_Mailing_DAO_MailingJob extends CRM_Core_DAO {
           'title' => ts('Mailing Job Is Test?'),
           'description' => ts('Is this job for a test mail?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_job.is_test',
           'default' => '0',
           'table_name' => 'civicrm_mailing_job',
@@ -309,6 +351,12 @@ class CRM_Mailing_DAO_MailingJob extends CRM_Core_DAO {
           'description' => ts('Type of mailling job: null | child '),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_job.job_type',
           'table_name' => 'civicrm_mailing_job',
           'entity' => 'MailingJob',
@@ -321,6 +369,12 @@ class CRM_Mailing_DAO_MailingJob extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Parent ID'),
           'description' => ts('Parent job id'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_job.parent_id',
           'default' => NULL,
           'table_name' => 'civicrm_mailing_job',
@@ -338,6 +392,12 @@ class CRM_Mailing_DAO_MailingJob extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Mailing Job Offset'),
           'description' => ts('Offset of the child job'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_job.job_offset',
           'default' => '0',
           'table_name' => 'civicrm_mailing_job',
@@ -351,6 +411,12 @@ class CRM_Mailing_DAO_MailingJob extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Mailing Job Limit'),
           'description' => ts('Queue size limit for each child job'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_job.job_limit',
           'default' => '0',
           'table_name' => 'civicrm_mailing_job',
diff --git a/civicrm/CRM/Mailing/DAO/MailingRecipients.php b/civicrm/CRM/Mailing/DAO/MailingRecipients.php
index ddb89125e6a485e85f3c52c3c9f75668d1cead72..254205f5c980f7e2c4f5e6584eec06ba238675f1 100644
--- a/civicrm/CRM/Mailing/DAO/MailingRecipients.php
+++ b/civicrm/CRM/Mailing/DAO/MailingRecipients.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Mailing/MailingRecipients.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:005811eac899a17b224838bcdd95f38d)
+ * (GenCodeChecksum:ed447baf02cd4238bdf58c200d40bc22)
  */
 
 /**
@@ -123,6 +123,12 @@ class CRM_Mailing_DAO_MailingRecipients extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Mailing Recipients ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_recipients.id',
           'table_name' => 'civicrm_mailing_recipients',
           'entity' => 'MailingRecipients',
@@ -140,6 +146,12 @@ class CRM_Mailing_DAO_MailingRecipients extends CRM_Core_DAO {
           'title' => ts('Mailing ID'),
           'description' => ts('The ID of the mailing this Job will send.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_recipients.mailing_id',
           'table_name' => 'civicrm_mailing_recipients',
           'entity' => 'MailingRecipients',
@@ -157,6 +169,12 @@ class CRM_Mailing_DAO_MailingRecipients extends CRM_Core_DAO {
           'title' => ts('Recipient ID'),
           'description' => ts('FK to Contact'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_recipients.contact_id',
           'table_name' => 'civicrm_mailing_recipients',
           'entity' => 'MailingRecipients',
@@ -173,6 +191,12 @@ class CRM_Mailing_DAO_MailingRecipients extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Email ID'),
           'description' => ts('FK to Email'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_recipients.email_id',
           'default' => NULL,
           'table_name' => 'civicrm_mailing_recipients',
@@ -190,6 +214,12 @@ class CRM_Mailing_DAO_MailingRecipients extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Phone ID'),
           'description' => ts('FK to Phone'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_recipients.phone_id',
           'default' => NULL,
           'table_name' => 'civicrm_mailing_recipients',
diff --git a/civicrm/CRM/Mailing/DAO/Spool.php b/civicrm/CRM/Mailing/DAO/Spool.php
index 1c4f6d070ed3537be79383251a6675f28b8b3adf..53e590491e9e51d34219ad75dd4c0e9769a3e78b 100644
--- a/civicrm/CRM/Mailing/DAO/Spool.php
+++ b/civicrm/CRM/Mailing/DAO/Spool.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Mailing/Spool.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:5ef6d1661cb18eb1fd2de817d056c5d8)
+ * (GenCodeChecksum:96425332a4c99c7776ca872198de0fd6)
  */
 
 /**
@@ -138,6 +138,12 @@ class CRM_Mailing_DAO_Spool extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Spool ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_spool.id',
           'table_name' => 'civicrm_mailing_spool',
           'entity' => 'Spool',
@@ -155,6 +161,12 @@ class CRM_Mailing_DAO_Spool extends CRM_Core_DAO {
           'title' => ts('Job ID'),
           'description' => ts('The ID of the Job .'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_spool.job_id',
           'table_name' => 'civicrm_mailing_spool',
           'entity' => 'Spool',
@@ -171,6 +183,12 @@ class CRM_Mailing_DAO_Spool extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Recipient Email'),
           'description' => ts('The email of the recipients this mail is to be sent.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_spool.recipient_email',
           'table_name' => 'civicrm_mailing_spool',
           'entity' => 'Spool',
@@ -183,6 +201,12 @@ class CRM_Mailing_DAO_Spool extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Headers'),
           'description' => ts('The header information of this mailing .'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_spool.headers',
           'table_name' => 'civicrm_mailing_spool',
           'entity' => 'Spool',
@@ -195,6 +219,12 @@ class CRM_Mailing_DAO_Spool extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Body'),
           'description' => ts('The body of this mailing.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_spool.body',
           'table_name' => 'civicrm_mailing_spool',
           'entity' => 'Spool',
@@ -208,6 +238,12 @@ class CRM_Mailing_DAO_Spool extends CRM_Core_DAO {
           'title' => ts('Added'),
           'description' => ts('date on which this job was added.'),
           'required' => FALSE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_spool.added_at',
           'default' => NULL,
           'table_name' => 'civicrm_mailing_spool',
@@ -222,6 +258,12 @@ class CRM_Mailing_DAO_Spool extends CRM_Core_DAO {
           'title' => ts('Removed'),
           'description' => ts('date on which this job was removed.'),
           'required' => FALSE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_spool.removed_at',
           'default' => NULL,
           'table_name' => 'civicrm_mailing_spool',
diff --git a/civicrm/CRM/Mailing/DAO/TrackableURL.php b/civicrm/CRM/Mailing/DAO/TrackableURL.php
index 2c781d0494e430df4279edf2805a93bc22c78a19..bd67cc8182870480fd0892e6f3920ce79af351aa 100644
--- a/civicrm/CRM/Mailing/DAO/TrackableURL.php
+++ b/civicrm/CRM/Mailing/DAO/TrackableURL.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Mailing/TrackableURL.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:fe60c1aedeb870074d0da0e26f4427a8)
+ * (GenCodeChecksum:f43da49ddd6befd1cebeb8044c43618b)
  */
 
 /**
@@ -102,6 +102,12 @@ class CRM_Mailing_DAO_TrackableURL extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Trackable URL ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_trackable_url.id',
           'table_name' => 'civicrm_mailing_trackable_url',
           'entity' => 'TrackableURL',
@@ -119,6 +125,12 @@ class CRM_Mailing_DAO_TrackableURL extends CRM_Core_DAO {
           'title' => ts('Url'),
           'description' => ts('The URL to be tracked.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_trackable_url.url',
           'table_name' => 'civicrm_mailing_trackable_url',
           'entity' => 'TrackableURL',
@@ -132,6 +144,12 @@ class CRM_Mailing_DAO_TrackableURL extends CRM_Core_DAO {
           'title' => ts('Mailing ID'),
           'description' => ts('FK to the mailing'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_trackable_url.mailing_id',
           'table_name' => 'civicrm_mailing_trackable_url',
           'entity' => 'TrackableURL',
diff --git a/civicrm/CRM/Mailing/Event/DAO/MailingEventBounce.php b/civicrm/CRM/Mailing/Event/DAO/MailingEventBounce.php
index 46b40553ed9bcc75b9a37e1b2e15a9e362bab188..9d5f55ce9731d24e6b74ca3ad1a9b0066f115a70 100644
--- a/civicrm/CRM/Mailing/Event/DAO/MailingEventBounce.php
+++ b/civicrm/CRM/Mailing/Event/DAO/MailingEventBounce.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Mailing/Event/MailingEventBounce.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:87faf01b97e5e2330d938880f59f5cf9)
+ * (GenCodeChecksum:b96900b12aa4dc97acf0b9aa873de1f5)
  */
 
 /**
@@ -129,6 +129,12 @@ class CRM_Mailing_Event_DAO_MailingEventBounce extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Bounce ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_event_bounce.id',
           'table_name' => 'civicrm_mailing_event_bounce',
           'entity' => 'MailingEventBounce',
@@ -147,6 +153,12 @@ class CRM_Mailing_Event_DAO_MailingEventBounce extends CRM_Core_DAO {
           'title' => ts('Event Queue ID'),
           'description' => ts('FK to EventQueue'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_event_bounce.event_queue_id',
           'table_name' => 'civicrm_mailing_event_bounce',
           'entity' => 'MailingEventBounce',
@@ -163,6 +175,12 @@ class CRM_Mailing_Event_DAO_MailingEventBounce extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Bounce Type ID'),
           'description' => ts('What type of bounce was it?'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_event_bounce.bounce_type_id',
           'table_name' => 'civicrm_mailing_event_bounce',
           'entity' => 'MailingEventBounce',
@@ -186,6 +204,12 @@ class CRM_Mailing_Event_DAO_MailingEventBounce extends CRM_Core_DAO {
           'description' => ts('The reason the email bounced.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_event_bounce.bounce_reason',
           'table_name' => 'civicrm_mailing_event_bounce',
           'entity' => 'MailingEventBounce',
@@ -199,6 +223,12 @@ class CRM_Mailing_Event_DAO_MailingEventBounce extends CRM_Core_DAO {
           'title' => ts('Timestamp'),
           'description' => ts('When this bounce event occurred.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_event_bounce.time_stamp',
           'default' => 'CURRENT_TIMESTAMP',
           'table_name' => 'civicrm_mailing_event_bounce',
diff --git a/civicrm/CRM/Mailing/Event/DAO/MailingEventClickThrough.php b/civicrm/CRM/Mailing/Event/DAO/MailingEventClickThrough.php
index 3e7c1a73ccb55e9014485214ca7b9bf3ee7d25ce..7bcd641d581e6843fa16d38b5cf2a0d7b1f2a44f 100644
--- a/civicrm/CRM/Mailing/Event/DAO/MailingEventClickThrough.php
+++ b/civicrm/CRM/Mailing/Event/DAO/MailingEventClickThrough.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Mailing/Event/MailingEventClickThrough.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:ae4ae010b4a8e988ee7ba1deaaa20497)
+ * (GenCodeChecksum:11c64e5e8108784fe8e844616abc997e)
  */
 
 /**
@@ -112,6 +112,12 @@ class CRM_Mailing_Event_DAO_MailingEventClickThrough extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Trackable URL Open ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_event_trackable_url_open.id',
           'table_name' => 'civicrm_mailing_event_trackable_url_open',
           'entity' => 'MailingEventClickThrough',
@@ -130,6 +136,12 @@ class CRM_Mailing_Event_DAO_MailingEventClickThrough extends CRM_Core_DAO {
           'title' => ts('Event Queue ID'),
           'description' => ts('FK to EventQueue'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_event_trackable_url_open.event_queue_id',
           'table_name' => 'civicrm_mailing_event_trackable_url_open',
           'entity' => 'MailingEventClickThrough',
@@ -147,6 +159,12 @@ class CRM_Mailing_Event_DAO_MailingEventClickThrough extends CRM_Core_DAO {
           'title' => ts('Trackable Url ID'),
           'description' => ts('FK to TrackableURL'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_event_trackable_url_open.trackable_url_id',
           'table_name' => 'civicrm_mailing_event_trackable_url_open',
           'entity' => 'MailingEventClickThrough',
@@ -164,6 +182,12 @@ class CRM_Mailing_Event_DAO_MailingEventClickThrough extends CRM_Core_DAO {
           'title' => ts('Timestamp'),
           'description' => ts('When this trackable URL open occurred.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_event_trackable_url_open.time_stamp',
           'default' => 'CURRENT_TIMESTAMP',
           'table_name' => 'civicrm_mailing_event_trackable_url_open',
diff --git a/civicrm/CRM/Mailing/Event/DAO/MailingEventConfirm.php b/civicrm/CRM/Mailing/Event/DAO/MailingEventConfirm.php
index 26ee2df59a28b6ad03a3cb042c6b8ba96d981ff5..b986a5ea918f245f1730f0c2f61b3e1d56b1a615 100644
--- a/civicrm/CRM/Mailing/Event/DAO/MailingEventConfirm.php
+++ b/civicrm/CRM/Mailing/Event/DAO/MailingEventConfirm.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Mailing/Event/MailingEventConfirm.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:1010da753b182ef9d13074309a165d5b)
+ * (GenCodeChecksum:6dfb0a8830b5a314a417b6f0f2b51e2b)
  */
 
 /**
@@ -102,6 +102,12 @@ class CRM_Mailing_Event_DAO_MailingEventConfirm extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Mailing Confirmation ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_event_confirm.id',
           'table_name' => 'civicrm_mailing_event_confirm',
           'entity' => 'MailingEventConfirm',
@@ -120,6 +126,12 @@ class CRM_Mailing_Event_DAO_MailingEventConfirm extends CRM_Core_DAO {
           'title' => ts('Mailing Subscribe ID'),
           'description' => ts('FK to civicrm_mailing_event_subscribe'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_event_confirm.event_subscribe_id',
           'table_name' => 'civicrm_mailing_event_confirm',
           'entity' => 'MailingEventConfirm',
@@ -137,6 +149,12 @@ class CRM_Mailing_Event_DAO_MailingEventConfirm extends CRM_Core_DAO {
           'title' => ts('Confirm Timestamp'),
           'description' => ts('When this confirmation event occurred.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_event_confirm.time_stamp',
           'default' => 'CURRENT_TIMESTAMP',
           'table_name' => 'civicrm_mailing_event_confirm',
diff --git a/civicrm/CRM/Mailing/Event/DAO/MailingEventDelivered.php b/civicrm/CRM/Mailing/Event/DAO/MailingEventDelivered.php
index 990e06bde1435a0cdcd2227fd72eab7dd1842920..48ce4be5d23abd06c4ba37d31c64cbd5fa185b4f 100644
--- a/civicrm/CRM/Mailing/Event/DAO/MailingEventDelivered.php
+++ b/civicrm/CRM/Mailing/Event/DAO/MailingEventDelivered.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Mailing/Event/MailingEventDelivered.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:f0ba3fb4021c36006b5d70108daf975d)
+ * (GenCodeChecksum:622f5bc6672f5fce5606f72f98661fc4)
  */
 
 /**
@@ -102,6 +102,12 @@ class CRM_Mailing_Event_DAO_MailingEventDelivered extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Delivered ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_event_delivered.id',
           'table_name' => 'civicrm_mailing_event_delivered',
           'entity' => 'MailingEventDelivered',
@@ -120,6 +126,12 @@ class CRM_Mailing_Event_DAO_MailingEventDelivered extends CRM_Core_DAO {
           'title' => ts('Event Queue ID'),
           'description' => ts('FK to EventQueue'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_event_delivered.event_queue_id',
           'table_name' => 'civicrm_mailing_event_delivered',
           'entity' => 'MailingEventDelivered',
@@ -137,6 +149,12 @@ class CRM_Mailing_Event_DAO_MailingEventDelivered extends CRM_Core_DAO {
           'title' => ts('Timestamp'),
           'description' => ts('When this delivery event occurred.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_event_delivered.time_stamp',
           'default' => 'CURRENT_TIMESTAMP',
           'table_name' => 'civicrm_mailing_event_delivered',
diff --git a/civicrm/CRM/Mailing/Event/DAO/MailingEventForward.php b/civicrm/CRM/Mailing/Event/DAO/MailingEventForward.php
index ef24c6a6d43730d55498c9da333745abc63ba249..fcd256ebdb68b3ded53839e3444a186a9e34b205 100644
--- a/civicrm/CRM/Mailing/Event/DAO/MailingEventForward.php
+++ b/civicrm/CRM/Mailing/Event/DAO/MailingEventForward.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Mailing/Event/MailingEventForward.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:5b597c882095d9552d1fa79c3a178ab9)
+ * (GenCodeChecksum:3e671ceef92366fa2bfd6121ec9dee4f)
  */
 
 /**
@@ -112,6 +112,12 @@ class CRM_Mailing_Event_DAO_MailingEventForward extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Forward ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_event_forward.id',
           'table_name' => 'civicrm_mailing_event_forward',
           'entity' => 'MailingEventForward',
@@ -130,6 +136,12 @@ class CRM_Mailing_Event_DAO_MailingEventForward extends CRM_Core_DAO {
           'title' => ts('Event Queue ID'),
           'description' => ts('FK to EventQueue'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_event_forward.event_queue_id',
           'table_name' => 'civicrm_mailing_event_forward',
           'entity' => 'MailingEventForward',
@@ -146,6 +158,12 @@ class CRM_Mailing_Event_DAO_MailingEventForward extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Destination Queue ID'),
           'description' => ts('FK to EventQueue for destination'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_event_forward.dest_queue_id',
           'table_name' => 'civicrm_mailing_event_forward',
           'entity' => 'MailingEventForward',
@@ -163,6 +181,12 @@ class CRM_Mailing_Event_DAO_MailingEventForward extends CRM_Core_DAO {
           'title' => ts('Timestamp'),
           'description' => ts('When this forward event occurred.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_event_forward.time_stamp',
           'default' => 'CURRENT_TIMESTAMP',
           'table_name' => 'civicrm_mailing_event_forward',
diff --git a/civicrm/CRM/Mailing/Event/DAO/MailingEventOpened.php b/civicrm/CRM/Mailing/Event/DAO/MailingEventOpened.php
index 4414a43b9a9b261457384f94d240de7c054b83a5..81b78486bfbdc96b3f0bfafa5f5731ee05db196a 100644
--- a/civicrm/CRM/Mailing/Event/DAO/MailingEventOpened.php
+++ b/civicrm/CRM/Mailing/Event/DAO/MailingEventOpened.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Mailing/Event/MailingEventOpened.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:0a8097cec7e3dbd5c0ca4e2fd7748fe4)
+ * (GenCodeChecksum:af41b13d1cdb6968bedac3813c47f396)
  */
 
 /**
@@ -102,6 +102,12 @@ class CRM_Mailing_Event_DAO_MailingEventOpened extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Mailing Opened ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_event_opened.id',
           'table_name' => 'civicrm_mailing_event_opened',
           'entity' => 'MailingEventOpened',
@@ -120,6 +126,12 @@ class CRM_Mailing_Event_DAO_MailingEventOpened extends CRM_Core_DAO {
           'title' => ts('Event Queue ID'),
           'description' => ts('FK to EventQueue'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_event_opened.event_queue_id',
           'table_name' => 'civicrm_mailing_event_opened',
           'entity' => 'MailingEventOpened',
@@ -137,6 +149,12 @@ class CRM_Mailing_Event_DAO_MailingEventOpened extends CRM_Core_DAO {
           'title' => ts('Timestamp'),
           'description' => ts('When this open event occurred.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_event_opened.time_stamp',
           'default' => 'CURRENT_TIMESTAMP',
           'table_name' => 'civicrm_mailing_event_opened',
diff --git a/civicrm/CRM/Mailing/Event/DAO/MailingEventQueue.php b/civicrm/CRM/Mailing/Event/DAO/MailingEventQueue.php
index 3079ff620b57f63a20c0797f03b44280d4a0e985..3e167d44a9436b84d24f996287714c096f18e5f3 100644
--- a/civicrm/CRM/Mailing/Event/DAO/MailingEventQueue.php
+++ b/civicrm/CRM/Mailing/Event/DAO/MailingEventQueue.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Mailing/Event/MailingEventQueue.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:7d90419e2a81c33d1c420b935fa72621)
+ * (GenCodeChecksum:3c06e884d0685ead323cbef1cf143706)
  */
 
 /**
@@ -141,6 +141,12 @@ class CRM_Mailing_Event_DAO_MailingEventQueue extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Mailing Event Queue ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_event_queue.id',
           'table_name' => 'civicrm_mailing_event_queue',
           'entity' => 'MailingEventQueue',
@@ -159,6 +165,12 @@ class CRM_Mailing_Event_DAO_MailingEventQueue extends CRM_Core_DAO {
           'title' => ts('Job ID'),
           'description' => ts('Mailing Job'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_event_queue.job_id',
           'table_name' => 'civicrm_mailing_event_queue',
           'entity' => 'MailingEventQueue',
@@ -175,6 +187,12 @@ class CRM_Mailing_Event_DAO_MailingEventQueue extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Email ID'),
           'description' => ts('FK to Email'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_event_queue.email_id',
           'default' => NULL,
           'table_name' => 'civicrm_mailing_event_queue',
@@ -193,6 +211,12 @@ class CRM_Mailing_Event_DAO_MailingEventQueue extends CRM_Core_DAO {
           'title' => ts('Contact ID'),
           'description' => ts('FK to Contact'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_event_queue.contact_id',
           'table_name' => 'civicrm_mailing_event_queue',
           'entity' => 'MailingEventQueue',
@@ -212,6 +236,12 @@ class CRM_Mailing_Event_DAO_MailingEventQueue extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_event_queue.hash',
           'table_name' => 'civicrm_mailing_event_queue',
           'entity' => 'MailingEventQueue',
@@ -224,6 +254,12 @@ class CRM_Mailing_Event_DAO_MailingEventQueue extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Phone ID'),
           'description' => ts('FK to Phone'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_event_queue.phone_id',
           'default' => NULL,
           'table_name' => 'civicrm_mailing_event_queue',
diff --git a/civicrm/CRM/Mailing/Event/DAO/MailingEventReply.php b/civicrm/CRM/Mailing/Event/DAO/MailingEventReply.php
index a4e9de852dd2e4d41ee82ba7a6b0771d719f8c56..9974441a46cd6178b8f8eb373d751f33ba5af566 100644
--- a/civicrm/CRM/Mailing/Event/DAO/MailingEventReply.php
+++ b/civicrm/CRM/Mailing/Event/DAO/MailingEventReply.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Mailing/Event/MailingEventReply.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:0b96aff101cae7ec818922a30da1671d)
+ * (GenCodeChecksum:3fb550581dbc39a87b575fa6b969126a)
  */
 
 /**
@@ -102,6 +102,12 @@ class CRM_Mailing_Event_DAO_MailingEventReply extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Reply ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_event_reply.id',
           'table_name' => 'civicrm_mailing_event_reply',
           'entity' => 'MailingEventReply',
@@ -120,6 +126,12 @@ class CRM_Mailing_Event_DAO_MailingEventReply extends CRM_Core_DAO {
           'title' => ts('Event Queue ID'),
           'description' => ts('FK to EventQueue'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_event_reply.event_queue_id',
           'table_name' => 'civicrm_mailing_event_reply',
           'entity' => 'MailingEventReply',
@@ -137,6 +149,12 @@ class CRM_Mailing_Event_DAO_MailingEventReply extends CRM_Core_DAO {
           'title' => ts('Reply Timestamp'),
           'description' => ts('When this reply event occurred.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_event_reply.time_stamp',
           'default' => 'CURRENT_TIMESTAMP',
           'table_name' => 'civicrm_mailing_event_reply',
diff --git a/civicrm/CRM/Mailing/Event/DAO/MailingEventSubscribe.php b/civicrm/CRM/Mailing/Event/DAO/MailingEventSubscribe.php
index 8db99dc8cb08f8a1cb19a38c5d83db4405f51649..1eb0fa68fc2d9d355c03740db29a4e2b7a498c78 100644
--- a/civicrm/CRM/Mailing/Event/DAO/MailingEventSubscribe.php
+++ b/civicrm/CRM/Mailing/Event/DAO/MailingEventSubscribe.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Mailing/Event/MailingEventSubscribe.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:b3e466587c1eef86822a99252e693773)
+ * (GenCodeChecksum:36347f06a659937f286ada4125b4bff8)
  */
 
 /**
@@ -121,6 +121,12 @@ class CRM_Mailing_Event_DAO_MailingEventSubscribe extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Mailing Subscribe ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_event_subscribe.id',
           'table_name' => 'civicrm_mailing_event_subscribe',
           'entity' => 'MailingEventSubscribe',
@@ -139,6 +145,12 @@ class CRM_Mailing_Event_DAO_MailingEventSubscribe extends CRM_Core_DAO {
           'title' => ts('Group ID'),
           'description' => ts('FK to Group'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_event_subscribe.group_id',
           'table_name' => 'civicrm_mailing_event_subscribe',
           'entity' => 'MailingEventSubscribe',
@@ -162,6 +174,12 @@ class CRM_Mailing_Event_DAO_MailingEventSubscribe extends CRM_Core_DAO {
           'title' => ts('Contact ID'),
           'description' => ts('FK to Contact'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_event_subscribe.contact_id',
           'table_name' => 'civicrm_mailing_event_subscribe',
           'entity' => 'MailingEventSubscribe',
@@ -181,6 +199,12 @@ class CRM_Mailing_Event_DAO_MailingEventSubscribe extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_event_subscribe.hash',
           'table_name' => 'civicrm_mailing_event_subscribe',
           'entity' => 'MailingEventSubscribe',
@@ -194,6 +218,12 @@ class CRM_Mailing_Event_DAO_MailingEventSubscribe extends CRM_Core_DAO {
           'title' => ts('Mailing Subscribe Timestamp'),
           'description' => ts('When this subscription event occurred.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_event_subscribe.time_stamp',
           'default' => 'CURRENT_TIMESTAMP',
           'table_name' => 'civicrm_mailing_event_subscribe',
diff --git a/civicrm/CRM/Mailing/Event/DAO/MailingEventUnsubscribe.php b/civicrm/CRM/Mailing/Event/DAO/MailingEventUnsubscribe.php
index 87176a200cbd348ec3aa0b3b592f13f55b104462..25d25681f27c65b8bab0fb1e63b912ec7172b138 100644
--- a/civicrm/CRM/Mailing/Event/DAO/MailingEventUnsubscribe.php
+++ b/civicrm/CRM/Mailing/Event/DAO/MailingEventUnsubscribe.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Mailing/Event/MailingEventUnsubscribe.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:d77759d3365fa86ab182b4b096ce15e0)
+ * (GenCodeChecksum:cf2ca57c500dd6c00c7011f82a74c360)
  */
 
 /**
@@ -111,6 +111,12 @@ class CRM_Mailing_Event_DAO_MailingEventUnsubscribe extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Unsubscribe ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_event_unsubscribe.id',
           'table_name' => 'civicrm_mailing_event_unsubscribe',
           'entity' => 'MailingEventUnsubscribe',
@@ -129,6 +135,12 @@ class CRM_Mailing_Event_DAO_MailingEventUnsubscribe extends CRM_Core_DAO {
           'title' => ts('Event Queue ID'),
           'description' => ts('FK to EventQueue'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_event_unsubscribe.event_queue_id',
           'table_name' => 'civicrm_mailing_event_unsubscribe',
           'entity' => 'MailingEventUnsubscribe',
@@ -146,6 +158,12 @@ class CRM_Mailing_Event_DAO_MailingEventUnsubscribe extends CRM_Core_DAO {
           'title' => ts('Unsubscribe is for Organization?'),
           'description' => ts('Unsubscribe at org- or group-level'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_event_unsubscribe.org_unsubscribe',
           'table_name' => 'civicrm_mailing_event_unsubscribe',
           'entity' => 'MailingEventUnsubscribe',
@@ -159,6 +177,12 @@ class CRM_Mailing_Event_DAO_MailingEventUnsubscribe extends CRM_Core_DAO {
           'title' => ts('Unsubscribe Timestamp'),
           'description' => ts('When this delivery event occurred.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_mailing_event_unsubscribe.time_stamp',
           'default' => 'CURRENT_TIMESTAMP',
           'table_name' => 'civicrm_mailing_event_unsubscribe',
diff --git a/civicrm/CRM/Member/ActionMapping.php b/civicrm/CRM/Member/ActionMapping.php
index 24977439d943b973e49bee8315cac51ccc75773a..aa40f00bb7c2f3aaa94ac89f69d1ab6a5115e21b 100644
--- a/civicrm/CRM/Member/ActionMapping.php
+++ b/civicrm/CRM/Member/ActionMapping.php
@@ -52,9 +52,9 @@ class CRM_Member_ActionMapping extends \Civi\ActionSchedule\Mapping {
    */
   public function getDateFields() {
     return [
-      'join_date' => ts('Membership Join Date'),
+      'join_date' => ts('Member Since'),
       'start_date' => ts('Membership Start Date'),
-      'end_date' => ts('Membership End Date'),
+      'end_date' => ts('Membership Expiration Date'),
     ];
   }
 
diff --git a/civicrm/CRM/Member/BAO/MembershipStatus.php b/civicrm/CRM/Member/BAO/MembershipStatus.php
index 7c791d5812fa630421cc314ddda8cf3dc8d13eaa..a2e889541258281398f02408549053fae31a7a83 100644
--- a/civicrm/CRM/Member/BAO/MembershipStatus.php
+++ b/civicrm/CRM/Member/BAO/MembershipStatus.php
@@ -34,17 +34,13 @@ class CRM_Member_BAO_MembershipStatus extends CRM_Member_DAO_MembershipStatus im
   }
 
   /**
-   * Update the is_active flag in the db.
-   *
+   * @deprecated - this bypasses hooks.
    * @param int $id
-   *   Id of the database record.
    * @param bool $is_active
-   *   Value we want to set the is_active field.
-   *
    * @return bool
-   *   true if we found and updated the object, else false
    */
   public static function setIsActive($id, $is_active) {
+    CRM_Core_Error::deprecatedFunctionWarning('writeRecord');
     return CRM_Core_DAO::setFieldValue('CRM_Member_DAO_MembershipStatus', $id, 'is_active', $is_active);
   }
 
diff --git a/civicrm/CRM/Member/BAO/MembershipType.php b/civicrm/CRM/Member/BAO/MembershipType.php
index 789eebe74dd1ecc83d50bc03abe32c962b6be380..d51f768d7ff558f86eb58a7d711a717dd1560a1e 100644
--- a/civicrm/CRM/Member/BAO/MembershipType.php
+++ b/civicrm/CRM/Member/BAO/MembershipType.php
@@ -42,17 +42,13 @@ class CRM_Member_BAO_MembershipType extends CRM_Member_DAO_MembershipType implem
   }
 
   /**
-   * Update the is_active flag in the db.
-   *
+   * @deprecated - this bypasses hooks.
    * @param int $id
-   *   Id of the database record.
    * @param bool $is_active
-   *   Value we want to set the is_active field.
-   *
    * @return bool
-   *   true if we found and updated the object, else false
    */
   public static function setIsActive($id, $is_active) {
+    CRM_Core_Error::deprecatedFunctionWarning('writeRecord');
     return CRM_Core_DAO::setFieldValue('CRM_Member_DAO_MembershipType', $id, 'is_active', $is_active);
   }
 
diff --git a/civicrm/CRM/Member/DAO/Membership.php b/civicrm/CRM/Member/DAO/Membership.php
index 1d5af2d3ab0c8608b416063421e567f747224e0d..0285ecd29113ce14d5d21936119592977f897506 100644
--- a/civicrm/CRM/Member/DAO/Membership.php
+++ b/civicrm/CRM/Member/DAO/Membership.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Member/Membership.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:9e0cdfecdacffeddfd0a04e783f4be31)
+ * (GenCodeChecksum:8388aa398d713ed54fba4f1a157d4ec4)
  */
 
 /**
@@ -249,6 +249,12 @@ class CRM_Member_DAO_Membership extends CRM_Core_DAO {
           'title' => ts('Membership ID'),
           'description' => ts('Membership ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_membership.id',
           'headerPattern' => '/^(m(embership\s)?id)$/i',
@@ -269,6 +275,12 @@ class CRM_Member_DAO_Membership extends CRM_Core_DAO {
           'title' => ts('Contact ID'),
           'description' => ts('FK to Contact ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_membership.contact_id',
           'headerPattern' => '/contact(.?id)?/i',
@@ -291,6 +303,12 @@ class CRM_Member_DAO_Membership extends CRM_Core_DAO {
           'title' => ts('Membership Type ID'),
           'description' => ts('FK to Membership Type'),
           'required' => TRUE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => FALSE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_membership.membership_type_id',
           'headerPattern' => '/^(m(embership\s)?type)$/i',
@@ -316,6 +334,12 @@ class CRM_Member_DAO_Membership extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE,
           'title' => ts('Member Since'),
           'description' => ts('Beginning of initial membership period (member since...).'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_membership.join_date',
           'headerPattern' => '/^join|(j(oin\s)?date)$/i',
@@ -336,6 +360,12 @@ class CRM_Member_DAO_Membership extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE,
           'title' => ts('Membership Start Date'),
           'description' => ts('Beginning of current uninterrupted membership period.'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_membership.start_date',
           'headerPattern' => '/(member(ship)?.)?start(s)?(.date$)?/i',
@@ -356,6 +386,12 @@ class CRM_Member_DAO_Membership extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE,
           'title' => ts('Membership Expiration Date'),
           'description' => ts('Current membership period expire date.'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_membership.end_date',
           'headerPattern' => '/(member(ship)?.)?end(s)?(.date$)?/i',
@@ -377,6 +413,12 @@ class CRM_Member_DAO_Membership extends CRM_Core_DAO {
           'title' => ts('Source'),
           'maxlength' => 128,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_membership.source',
           'headerPattern' => '/^(member(ship?))?source$/i',
@@ -396,6 +438,12 @@ class CRM_Member_DAO_Membership extends CRM_Core_DAO {
           'title' => ts('Status ID'),
           'description' => ts('FK to Membership Status'),
           'required' => TRUE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => FALSE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_membership.status_id',
           'headerPattern' => '/(member(ship|).)?(status)$/i',
@@ -422,6 +470,12 @@ class CRM_Member_DAO_Membership extends CRM_Core_DAO {
           'title' => ts('Status Override'),
           'description' => ts('Admin users may set a manual status which overrides the calculated status. When this flag is true, automated status update scripts should NOT modify status for the record.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_membership.is_override',
           'headerPattern' => '/override$/i',
@@ -441,6 +495,12 @@ class CRM_Member_DAO_Membership extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE,
           'title' => ts('Status Override End Date'),
           'description' => ts('Then end date of membership status override if \'Override until selected date\' override type is selected.'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_membership.status_override_end_date',
           'export' => TRUE,
@@ -460,6 +520,12 @@ class CRM_Member_DAO_Membership extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Primary Member ID'),
           'description' => ts('Optional FK to Parent Membership.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => TRUE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership.owner_membership_id',
           'export' => TRUE,
           'table_name' => 'civicrm_membership',
@@ -477,6 +543,12 @@ class CRM_Member_DAO_Membership extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Max Related'),
           'description' => ts('Maximum number of related memberships (membership_type override).'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => TRUE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership.max_related',
           'export' => TRUE,
           'table_name' => 'civicrm_membership',
@@ -494,6 +566,12 @@ class CRM_Member_DAO_Membership extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_BOOLEAN,
           'title' => ts('Test'),
           'required' => TRUE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_membership.is_test',
           'headerPattern' => '/(is.)?test(.member(ship)?)?/i',
@@ -513,6 +591,12 @@ class CRM_Member_DAO_Membership extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_BOOLEAN,
           'title' => ts('Is Pay Later'),
           'required' => TRUE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_membership.is_pay_later',
           'headerPattern' => '/(is.)?(pay(.)?later)$/i',
@@ -532,6 +616,12 @@ class CRM_Member_DAO_Membership extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Recurring Contribution ID'),
           'description' => ts('Conditional foreign key to civicrm_contribution_recur id. Each membership in connection with a recurring contribution carries a foreign key to the recurring contribution record. This assumes we can track these processor initiated events.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => TRUE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership.contribution_recur_id',
           'export' => TRUE,
           'table_name' => 'civicrm_membership',
@@ -549,6 +639,12 @@ class CRM_Member_DAO_Membership extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Campaign ID'),
           'description' => ts('The campaign for which this membership is attached.'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_membership.campaign_id',
           'export' => TRUE,
diff --git a/civicrm/CRM/Member/DAO/MembershipBlock.php b/civicrm/CRM/Member/DAO/MembershipBlock.php
index d1faf10544f8687b1325349fd6f3a4e723be3a4b..1f7e62f712113492dae00d7a691acb6a28bb3a67 100644
--- a/civicrm/CRM/Member/DAO/MembershipBlock.php
+++ b/civicrm/CRM/Member/DAO/MembershipBlock.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Member/MembershipBlock.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:1a1d170885d74e0ae4d0e7e744733a0b)
+ * (GenCodeChecksum:a79f50e3b6f6922604ad809e6791f816)
  */
 
 /**
@@ -196,6 +196,12 @@ class CRM_Member_DAO_MembershipBlock extends CRM_Core_DAO {
           'title' => ts('Membership Block ID'),
           'description' => ts('Membership ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_block.id',
           'table_name' => 'civicrm_membership_block',
           'entity' => 'MembershipBlock',
@@ -214,6 +220,12 @@ class CRM_Member_DAO_MembershipBlock extends CRM_Core_DAO {
           'description' => ts('Name for Membership Status'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_block.entity_table',
           'table_name' => 'civicrm_membership_block',
           'entity' => 'MembershipBlock',
@@ -227,6 +239,12 @@ class CRM_Member_DAO_MembershipBlock extends CRM_Core_DAO {
           'title' => ts('Entity ID'),
           'description' => ts('FK to civicrm_contribution_page.id'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_block.entity_id',
           'table_name' => 'civicrm_membership_block',
           'entity' => 'MembershipBlock',
@@ -245,6 +263,12 @@ class CRM_Member_DAO_MembershipBlock extends CRM_Core_DAO {
           'description' => ts('Membership types to be exposed by this block'),
           'maxlength' => 1024,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_block.membership_types',
           'table_name' => 'civicrm_membership_block',
           'entity' => 'MembershipBlock',
@@ -258,6 +282,12 @@ class CRM_Member_DAO_MembershipBlock extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Default Type ID'),
           'description' => ts('Optional foreign key to membership_type'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_block.membership_type_default',
           'table_name' => 'civicrm_membership_block',
           'entity' => 'MembershipBlock',
@@ -275,6 +305,12 @@ class CRM_Member_DAO_MembershipBlock extends CRM_Core_DAO {
           'title' => ts('Membership Block Display Minimum Fee'),
           'description' => ts('Display minimum membership fee'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_block.display_min_fee',
           'default' => '1',
           'table_name' => 'civicrm_membership_block',
@@ -289,6 +325,12 @@ class CRM_Member_DAO_MembershipBlock extends CRM_Core_DAO {
           'title' => ts('Membership Block Is Separate Payment'),
           'description' => ts('Should membership transactions be processed separately'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_block.is_separate_payment',
           'default' => '1',
           'table_name' => 'civicrm_membership_block',
@@ -304,6 +346,12 @@ class CRM_Member_DAO_MembershipBlock extends CRM_Core_DAO {
           'description' => ts('Title to display at top of block'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_block.new_title',
           'table_name' => 'civicrm_membership_block',
           'entity' => 'MembershipBlock',
@@ -316,6 +364,12 @@ class CRM_Member_DAO_MembershipBlock extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Membership Block New Text'),
           'description' => ts('Text to display below title'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_block.new_text',
           'table_name' => 'civicrm_membership_block',
           'entity' => 'MembershipBlock',
@@ -330,6 +384,12 @@ class CRM_Member_DAO_MembershipBlock extends CRM_Core_DAO {
           'description' => ts('Title for renewal'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_block.renewal_title',
           'table_name' => 'civicrm_membership_block',
           'entity' => 'MembershipBlock',
@@ -342,6 +402,12 @@ class CRM_Member_DAO_MembershipBlock extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Membership Block Renewal Text'),
           'description' => ts('Text to display for member renewal'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_block.renewal_text',
           'table_name' => 'civicrm_membership_block',
           'entity' => 'MembershipBlock',
@@ -355,6 +421,12 @@ class CRM_Member_DAO_MembershipBlock extends CRM_Core_DAO {
           'title' => ts('Is Required'),
           'description' => ts('Is membership sign up optional'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_block.is_required',
           'default' => '0',
           'table_name' => 'civicrm_membership_block',
@@ -369,6 +441,12 @@ class CRM_Member_DAO_MembershipBlock extends CRM_Core_DAO {
           'title' => ts('Is Active'),
           'description' => ts('Is this membership_block enabled'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_block.is_active',
           'default' => '1',
           'table_name' => 'civicrm_membership_block',
diff --git a/civicrm/CRM/Member/DAO/MembershipLog.php b/civicrm/CRM/Member/DAO/MembershipLog.php
index 5fb5c9d960c38a5f56849f2fd894e8a7d078a650..e7f153fbfadf01394c3aa6ddc52c120c8d71f8d1 100644
--- a/civicrm/CRM/Member/DAO/MembershipLog.php
+++ b/civicrm/CRM/Member/DAO/MembershipLog.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Member/MembershipLog.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:2074f42ef8e122ffb1f44a1fe1967998)
+ * (GenCodeChecksum:7623425db0f4b365b48211d621abb084)
  */
 
 /**
@@ -159,6 +159,12 @@ class CRM_Member_DAO_MembershipLog extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Membership Log ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_log.id',
           'table_name' => 'civicrm_membership_log',
           'entity' => 'MembershipLog',
@@ -176,6 +182,12 @@ class CRM_Member_DAO_MembershipLog extends CRM_Core_DAO {
           'title' => ts('Membership ID'),
           'description' => ts('FK to Membership table'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_log.membership_id',
           'table_name' => 'civicrm_membership_log',
           'entity' => 'MembershipLog',
@@ -193,6 +205,12 @@ class CRM_Member_DAO_MembershipLog extends CRM_Core_DAO {
           'title' => ts('Membership Status ID'),
           'description' => ts('New status assigned to membership by this action. FK to Membership Status'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_log.status_id',
           'table_name' => 'civicrm_membership_log',
           'entity' => 'MembershipLog',
@@ -209,6 +227,12 @@ class CRM_Member_DAO_MembershipLog extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE,
           'title' => ts('Membership Log Start Date'),
           'description' => ts('New membership period start date'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_log.start_date',
           'dataPattern' => '/\d{4}-?\d{2}-?\d{2}/',
           'table_name' => 'civicrm_membership_log',
@@ -222,6 +246,12 @@ class CRM_Member_DAO_MembershipLog extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE,
           'title' => ts('Membership Log End Date'),
           'description' => ts('New membership period expiration date.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_log.end_date',
           'dataPattern' => '/\d{4}-?\d{2}-?\d{2}/',
           'table_name' => 'civicrm_membership_log',
@@ -235,6 +265,12 @@ class CRM_Member_DAO_MembershipLog extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Modified By Contact ID'),
           'description' => ts('FK to Contact ID of person under whose credentials this data modification was made.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_log.modified_id',
           'table_name' => 'civicrm_membership_log',
           'entity' => 'MembershipLog',
@@ -252,6 +288,12 @@ class CRM_Member_DAO_MembershipLog extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE,
           'title' => ts('Membership Change Date'),
           'description' => ts('Date this membership modification action was logged.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_log.modified_date',
           'dataPattern' => '/\d{4}-?\d{2}-?\d{2}/',
           'table_name' => 'civicrm_membership_log',
@@ -265,6 +307,12 @@ class CRM_Member_DAO_MembershipLog extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Membership Type ID'),
           'description' => ts('FK to Membership Type.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_log.membership_type_id',
           'table_name' => 'civicrm_membership_log',
           'entity' => 'MembershipLog',
@@ -281,6 +329,12 @@ class CRM_Member_DAO_MembershipLog extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Maximum Related Memberships'),
           'description' => ts('Maximum number of related memberships.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_log.max_related',
           'table_name' => 'civicrm_membership_log',
           'entity' => 'MembershipLog',
diff --git a/civicrm/CRM/Member/DAO/MembershipPayment.php b/civicrm/CRM/Member/DAO/MembershipPayment.php
index f6fc5e289b3ca138b3d1fc169a426d2279ad2dc7..5281ba51ba11ac72c24b9e7d45a247bdc3e72e31 100644
--- a/civicrm/CRM/Member/DAO/MembershipPayment.php
+++ b/civicrm/CRM/Member/DAO/MembershipPayment.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Member/MembershipPayment.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:35abcb8b1a0c13be21265b7db9381211)
+ * (GenCodeChecksum:022f6af50f08516e1e086faddcdf7fff)
  */
 
 /**
@@ -103,6 +103,12 @@ class CRM_Member_DAO_MembershipPayment extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Membership Payment ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_payment.id',
           'table_name' => 'civicrm_membership_payment',
           'entity' => 'MembershipPayment',
@@ -120,6 +126,12 @@ class CRM_Member_DAO_MembershipPayment extends CRM_Core_DAO {
           'title' => ts('Membership ID'),
           'description' => ts('FK to Membership table'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_payment.membership_id',
           'table_name' => 'civicrm_membership_payment',
           'entity' => 'MembershipPayment',
@@ -136,6 +148,12 @@ class CRM_Member_DAO_MembershipPayment extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Contribution ID'),
           'description' => ts('FK to contribution table.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_payment.contribution_id',
           'table_name' => 'civicrm_membership_payment',
           'entity' => 'MembershipPayment',
diff --git a/civicrm/CRM/Member/DAO/MembershipStatus.php b/civicrm/CRM/Member/DAO/MembershipStatus.php
index ec5cfd6604fa5b99ff0ef1e8280575edb0f038aa..1079d2e20afacd3ff8e3997a6bf2f50b82a227bf 100644
--- a/civicrm/CRM/Member/DAO/MembershipStatus.php
+++ b/civicrm/CRM/Member/DAO/MembershipStatus.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Member/MembershipStatus.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:e164135becb212e8efe223ed47c83dce)
+ * (GenCodeChecksum:284a64d31c739244c653daab8bebfe97)
  */
 
 /**
@@ -203,6 +203,12 @@ class CRM_Member_DAO_MembershipStatus extends CRM_Core_DAO {
           'title' => ts('Membership Status ID'),
           'description' => ts('Membership ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_status.id',
           'table_name' => 'civicrm_membership_status',
           'entity' => 'MembershipStatus',
@@ -222,6 +228,12 @@ class CRM_Member_DAO_MembershipStatus extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 128,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_membership_status.name',
           'export' => TRUE,
@@ -238,6 +250,12 @@ class CRM_Member_DAO_MembershipStatus extends CRM_Core_DAO {
           'description' => ts('Label for Membership Status'),
           'maxlength' => 128,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_status.label',
           'table_name' => 'civicrm_membership_status',
           'entity' => 'MembershipStatus',
@@ -255,6 +273,12 @@ class CRM_Member_DAO_MembershipStatus extends CRM_Core_DAO {
           'description' => ts('Event when this status starts.'),
           'maxlength' => 12,
           'size' => CRM_Utils_Type::TWELVE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_status.start_event',
           'table_name' => 'civicrm_membership_status',
           'entity' => 'MembershipStatus',
@@ -276,6 +300,12 @@ class CRM_Member_DAO_MembershipStatus extends CRM_Core_DAO {
           'description' => ts('Unit used for adjusting from start_event.'),
           'maxlength' => 8,
           'size' => CRM_Utils_Type::EIGHT,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_status.start_event_adjust_unit',
           'table_name' => 'civicrm_membership_status',
           'entity' => 'MembershipStatus',
@@ -295,6 +325,12 @@ class CRM_Member_DAO_MembershipStatus extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Start Event Adjust Interval'),
           'description' => ts('Status range begins this many units from start_event.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_status.start_event_adjust_interval',
           'table_name' => 'civicrm_membership_status',
           'entity' => 'MembershipStatus',
@@ -312,6 +348,12 @@ class CRM_Member_DAO_MembershipStatus extends CRM_Core_DAO {
           'description' => ts('Event after which this status ends.'),
           'maxlength' => 12,
           'size' => CRM_Utils_Type::TWELVE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_status.end_event',
           'table_name' => 'civicrm_membership_status',
           'entity' => 'MembershipStatus',
@@ -333,6 +375,12 @@ class CRM_Member_DAO_MembershipStatus extends CRM_Core_DAO {
           'description' => ts('Unit used for adjusting from the ending event.'),
           'maxlength' => 8,
           'size' => CRM_Utils_Type::EIGHT,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_status.end_event_adjust_unit',
           'table_name' => 'civicrm_membership_status',
           'entity' => 'MembershipStatus',
@@ -352,6 +400,12 @@ class CRM_Member_DAO_MembershipStatus extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('End Event Adjust Interval'),
           'description' => ts('Status range ends this many units from end_event.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_status.end_event_adjust_interval',
           'table_name' => 'civicrm_membership_status',
           'entity' => 'MembershipStatus',
@@ -368,6 +422,12 @@ class CRM_Member_DAO_MembershipStatus extends CRM_Core_DAO {
           'title' => ts('Current Membership?'),
           'description' => ts('Does this status aggregate to current members (e.g. New, Renewed, Grace might all be TRUE... while Unrenewed, Lapsed, Inactive would be FALSE).'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_status.is_current_member',
           'default' => '0',
           'table_name' => 'civicrm_membership_status',
@@ -382,6 +442,12 @@ class CRM_Member_DAO_MembershipStatus extends CRM_Core_DAO {
           'title' => ts('Administrator Only?'),
           'description' => ts('Is this status for admin/manual assignment only.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_status.is_admin',
           'default' => '0',
           'table_name' => 'civicrm_membership_status',
@@ -397,6 +463,12 @@ class CRM_Member_DAO_MembershipStatus extends CRM_Core_DAO {
           'name' => 'weight',
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Order'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_status.weight',
           'table_name' => 'civicrm_membership_status',
           'entity' => 'MembershipStatus',
@@ -410,6 +482,12 @@ class CRM_Member_DAO_MembershipStatus extends CRM_Core_DAO {
           'title' => ts('Default Status?'),
           'description' => ts('Assign this status to a membership record if no other status match is found.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_status.is_default',
           'default' => '0',
           'table_name' => 'civicrm_membership_status',
@@ -428,6 +506,12 @@ class CRM_Member_DAO_MembershipStatus extends CRM_Core_DAO {
           'title' => ts('Is Active'),
           'description' => ts('Is this membership_status enabled.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_status.is_active',
           'default' => '1',
           'table_name' => 'civicrm_membership_status',
@@ -446,6 +530,12 @@ class CRM_Member_DAO_MembershipStatus extends CRM_Core_DAO {
           'title' => ts('Is Reserved'),
           'description' => ts('Is this membership_status reserved.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_status.is_reserved',
           'default' => '0',
           'table_name' => 'civicrm_membership_status',
diff --git a/civicrm/CRM/Member/DAO/MembershipType.php b/civicrm/CRM/Member/DAO/MembershipType.php
index 2117a0499f42961b8748e37cc4dcdedca0225430..6ee98adb4638a7fa2259d361a6ec0204161b83e0 100644
--- a/civicrm/CRM/Member/DAO/MembershipType.php
+++ b/civicrm/CRM/Member/DAO/MembershipType.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Member/MembershipType.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:f8c48f7a5a134a067c5f8d56dc88b4ab)
+ * (GenCodeChecksum:8a9c8c3f1c06a6a9bdae9ca67a05a77d)
  */
 
 /**
@@ -270,6 +270,12 @@ class CRM_Member_DAO_MembershipType extends CRM_Core_DAO {
           'title' => ts('Membership Type ID'),
           'description' => ts('Membership ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_type.id',
           'table_name' => 'civicrm_membership_type',
           'entity' => 'MembershipType',
@@ -287,6 +293,12 @@ class CRM_Member_DAO_MembershipType extends CRM_Core_DAO {
           'title' => ts('Domain ID'),
           'description' => ts('Which Domain is this match entry for'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_type.domain_id',
           'table_name' => 'civicrm_membership_type',
           'entity' => 'MembershipType',
@@ -311,6 +323,12 @@ class CRM_Member_DAO_MembershipType extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 128,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_membership_type.name',
           'export' => TRUE,
@@ -331,6 +349,12 @@ class CRM_Member_DAO_MembershipType extends CRM_Core_DAO {
           'description' => ts('Description of Membership Type'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_type.description',
           'table_name' => 'civicrm_membership_type',
           'entity' => 'MembershipType',
@@ -348,6 +372,12 @@ class CRM_Member_DAO_MembershipType extends CRM_Core_DAO {
           'title' => ts('Organization ID'),
           'description' => ts('Owner organization for this membership type. FK to Contact ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_type.member_of_contact_id',
           'table_name' => 'civicrm_membership_type',
           'entity' => 'MembershipType',
@@ -365,6 +395,12 @@ class CRM_Member_DAO_MembershipType extends CRM_Core_DAO {
           'title' => ts('Financial Type ID'),
           'description' => ts('If membership is paid by a contribution - what financial type should be used. FK to civicrm_financial_type.id'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_type.financial_type_id',
           'table_name' => 'civicrm_membership_type',
           'entity' => 'MembershipType',
@@ -390,6 +426,12 @@ class CRM_Member_DAO_MembershipType extends CRM_Core_DAO {
             18,
             9,
           ],
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_type.minimum_fee',
           'default' => '0',
           'table_name' => 'civicrm_membership_type',
@@ -410,6 +452,12 @@ class CRM_Member_DAO_MembershipType extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 8,
           'size' => CRM_Utils_Type::EIGHT,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_type.duration_unit',
           'table_name' => 'civicrm_membership_type',
           'entity' => 'MembershipType',
@@ -428,6 +476,12 @@ class CRM_Member_DAO_MembershipType extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Membership Type Duration Interval'),
           'description' => ts('Number of duration units in membership period (e.g. 1 year, 12 months).'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_type.duration_interval',
           'table_name' => 'civicrm_membership_type',
           'entity' => 'MembershipType',
@@ -446,6 +500,12 @@ class CRM_Member_DAO_MembershipType extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 8,
           'size' => CRM_Utils_Type::EIGHT,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_type.period_type',
           'table_name' => 'civicrm_membership_type',
           'entity' => 'MembershipType',
@@ -464,6 +524,12 @@ class CRM_Member_DAO_MembershipType extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Fixed Period Start Day'),
           'description' => ts('For fixed period memberships, month and day (mmdd) on which subscription/membership will start. Period start is back-dated unless after rollover day.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_type.fixed_period_start_day',
           'table_name' => 'civicrm_membership_type',
           'entity' => 'MembershipType',
@@ -476,6 +542,12 @@ class CRM_Member_DAO_MembershipType extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Fixed Period Rollover Day'),
           'description' => ts('For fixed period memberships, signups after this day (mmdd) rollover to next period.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_type.fixed_period_rollover_day',
           'table_name' => 'civicrm_membership_type',
           'entity' => 'MembershipType',
@@ -490,6 +562,12 @@ class CRM_Member_DAO_MembershipType extends CRM_Core_DAO {
           'description' => ts('FK to Relationship Type ID'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_type.relationship_type_id',
           'table_name' => 'civicrm_membership_type',
           'entity' => 'MembershipType',
@@ -504,6 +582,12 @@ class CRM_Member_DAO_MembershipType extends CRM_Core_DAO {
           'title' => ts('Relationship Direction'),
           'maxlength' => 128,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_type.relationship_direction',
           'table_name' => 'civicrm_membership_type',
           'entity' => 'MembershipType',
@@ -520,6 +604,12 @@ class CRM_Member_DAO_MembershipType extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Max Related Members for Type'),
           'description' => ts('Maximum number of related memberships.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_type.max_related',
           'table_name' => 'civicrm_membership_type',
           'entity' => 'MembershipType',
@@ -537,6 +627,12 @@ class CRM_Member_DAO_MembershipType extends CRM_Core_DAO {
           'title' => ts('Visible'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_type.visibility',
           'table_name' => 'civicrm_membership_type',
           'entity' => 'MembershipType',
@@ -554,6 +650,12 @@ class CRM_Member_DAO_MembershipType extends CRM_Core_DAO {
           'name' => 'weight',
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Order'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_type.weight',
           'table_name' => 'civicrm_membership_type',
           'entity' => 'MembershipType',
@@ -571,6 +673,12 @@ class CRM_Member_DAO_MembershipType extends CRM_Core_DAO {
           'description' => ts('Receipt Text for membership signup'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_type.receipt_text_signup',
           'table_name' => 'civicrm_membership_type',
           'entity' => 'MembershipType',
@@ -588,6 +696,12 @@ class CRM_Member_DAO_MembershipType extends CRM_Core_DAO {
           'description' => ts('Receipt Text for membership renewal'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_type.receipt_text_renewal',
           'table_name' => 'civicrm_membership_type',
           'entity' => 'MembershipType',
@@ -603,6 +717,12 @@ class CRM_Member_DAO_MembershipType extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Auto Renew'),
           'description' => ts('0 = No auto-renew option; 1 = Give option, but not required; 2 = Auto-renew required;'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_type.auto_renew',
           'default' => '0',
           'table_name' => 'civicrm_membership_type',
@@ -623,6 +743,12 @@ class CRM_Member_DAO_MembershipType extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_BOOLEAN,
           'title' => ts('Is Active'),
           'description' => ts('Is this membership_type enabled'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_membership_type.is_active',
           'default' => '1',
           'table_name' => 'civicrm_membership_type',
diff --git a/civicrm/CRM/Member/Form.php b/civicrm/CRM/Member/Form.php
index e52bccbea90a704924378626744dacc7ec2fb3a8..b50799354ce0f6d7115828173c96059a064890da 100644
--- a/civicrm/CRM/Member/Form.php
+++ b/civicrm/CRM/Member/Form.php
@@ -121,24 +121,6 @@ class CRM_Member_Form extends CRM_Contribute_Form_AbstractEditPayment {
    */
   protected $_params = [];
 
-  /**
-   * Fields for the entity to be assigned to the template.
-   *
-   * Fields may have keys
-   *  - name (required to show in tpl from the array)
-   *  - description (optional, will appear below the field)
-   *  - not-auto-addable - this class will not attempt to add the field using addField.
-   *    (this will be automatically set if the field does not have html in it's metadata
-   *    or is not a core field on the form's entity).
-   *  - help (option) add help to the field - e.g ['id' => 'id-source', 'file' => 'CRM/Contact/Form/Contact']]
-   *  - template - use a field specific template to render this field
-   *  - required
-   *  - is_freeze (field should be frozen).
-   *
-   * @var array
-   */
-  protected $entityFields = [];
-
   public function preProcess() {
     // Check for edit permission.
     if (!CRM_Core_Permission::checkActionPermission('CiviMember', $this->_action)) {
diff --git a/civicrm/CRM/Member/Form/Membership.php b/civicrm/CRM/Member/Form/Membership.php
index f4a4e7462a13d2523cd52f8365a8a2beb45d8a79..e0e362a8508f78991558a31148ff8a639b157177 100644
--- a/civicrm/CRM/Member/Form/Membership.php
+++ b/civicrm/CRM/Member/Form/Membership.php
@@ -908,12 +908,8 @@ DESC limit 1");
   /**
    * Send email receipt.
    *
-   * @param CRM_Core_Form $form
-   *   Form object.
    * @param array $formValues
    *
-   * @return bool
-   *   true if mail was sent successfully
    * @throws \CRM_Core_Exception
    *
    * @deprecated
@@ -921,7 +917,7 @@ DESC limit 1");
    *   & needs rationalising.
    *
    */
-  protected function emailReceipt($form, &$formValues) {
+  protected function emailReceipt($formValues) {
     $membership = $this->getMembership();
     // retrieve 'from email id' for acknowledgement
     $receiptFrom = $formValues['from_email_address'] ?? NULL;
@@ -932,45 +928,45 @@ DESC limit 1");
       $formValues['paidBy'] = $paymentInstrument[$formValues['payment_instrument_id']];
     }
 
-    $form->assign('module', 'Membership');
+    $this->assign('module', 'Membership');
 
     if (!empty($formValues['contribution_id'])) {
-      $form->assign('currency', CRM_Core_DAO::getFieldValue('CRM_Contribute_DAO_Contribution', $formValues['contribution_id'], 'currency'));
+      $this->assign('currency', CRM_Core_DAO::getFieldValue('CRM_Contribute_DAO_Contribution', $formValues['contribution_id'], 'currency'));
     }
     else {
-      $form->assign('currency', CRM_Core_Config::singleton()->defaultCurrency);
+      $this->assign('currency', CRM_Core_Config::singleton()->defaultCurrency);
     }
 
     if (!empty($formValues['contribution_status_id'])) {
-      $form->assign('contributionStatusID', $formValues['contribution_status_id']);
-      $form->assign('contributionStatus', CRM_Contribute_PseudoConstant::contributionStatus($formValues['contribution_status_id'], 'name'));
+      $this->assign('contributionStatusID', $formValues['contribution_status_id']);
+      $this->assign('contributionStatus', CRM_Contribute_PseudoConstant::contributionStatus($formValues['contribution_status_id'], 'name'));
     }
 
     if (!empty($formValues['is_renew'])) {
-      $form->assign('receiptType', 'membership renewal');
+      $this->assign('receiptType', 'membership renewal');
     }
     else {
-      $form->assign('receiptType', 'membership signup');
+      $this->assign('receiptType', 'membership signup');
     }
-    $form->assign('receive_date', CRM_Utils_Array::value('receive_date', $formValues));
-    $form->assign('formValues', $formValues);
+    $this->assign('receive_date', CRM_Utils_Array::value('receive_date', $formValues));
+    $this->assign('formValues', $formValues);
 
-    $form->assign('mem_start_date', CRM_Utils_Date::formatDateOnlyLong($membership['start_date']));
+    $this->assign('mem_start_date', CRM_Utils_Date::formatDateOnlyLong($membership['start_date']));
     if (!CRM_Utils_System::isNull($membership['end_date'])) {
-      $form->assign('mem_end_date', CRM_Utils_Date::formatDateOnlyLong($membership['end_date']));
+      $this->assign('mem_end_date', CRM_Utils_Date::formatDateOnlyLong($membership['end_date']));
     }
-    $form->assign('membership_name', CRM_Member_PseudoConstant::membershipType($membership['membership_type_id']));
+    $this->assign('membership_name', CRM_Member_PseudoConstant::membershipType($membership['membership_type_id']));
 
-    if ((empty($form->_contributorDisplayName) || empty($form->_contributorEmail))) {
+    if ((empty($this->_contributorDisplayName) || empty($this->_contributorEmail))) {
       // in this case the form is being called statically from the batch editing screen
       // having one class in the form layer call another statically is not greate
       // & we should aim to move this function to the BAO layer in future.
       // however, we can assume that the contact_id passed in by the batch
       // function will be the recipient
-      [$form->_contributorDisplayName, $form->_contributorEmail]
+      [$this->_contributorDisplayName, $this->_contributorEmail]
         = CRM_Contact_BAO_Contact_Location::getEmailDetails($formValues['contact_id']);
-      if (empty($form->_receiptContactId)) {
-        $form->_receiptContactId = $formValues['contact_id'];
+      if (empty($this->_receiptContactId)) {
+        $this->_receiptContactId = $formValues['contact_id'];
       }
     }
 
@@ -978,21 +974,19 @@ DESC limit 1");
       [
         'workflow' => 'membership_offline_receipt',
         'from' => $receiptFrom,
-        'toName' => $form->_contributorDisplayName,
-        'toEmail' => $form->_contributorEmail,
+        'toName' => $this->_contributorDisplayName,
+        'toEmail' => $this->_contributorEmail,
         'PDFFilename' => ts('receipt') . '.pdf',
         'isEmailPdf' => Civi::settings()->get('invoice_is_email_pdf'),
-        'isTest' => (bool) ($form->_action & CRM_Core_Action::PREVIEW),
+        'isTest' => (bool) ($this->_action & CRM_Core_Action::PREVIEW),
         'modelProps' => [
           'receiptText' => $this->getSubmittedValue('receipt_text'),
           'contributionId' => $formValues['contribution_id'],
-          'contactId' => $form->_receiptContactId,
+          'contactId' => $this->_receiptContactId,
           'membershipId' => $this->getMembershipID(),
         ],
       ]
     );
-
-    return TRUE;
   }
 
   /**
@@ -1342,32 +1336,23 @@ DESC limit 1");
     $receiptSend = FALSE;
     $contributionId = $this->ids['Contribution'] ?? CRM_Member_BAO_Membership::getMembershipContributionId($this->getMembershipID());
     $membershipIds = $this->_membershipIDs;
-    if ($contributionId && !empty($membershipIds)) {
+    if ($this->getSubmittedValue('send_receipt') && $contributionId && !empty($membershipIds)) {
       $contributionDetails = CRM_Contribute_BAO_Contribution::getContributionDetails(
         CRM_Export_Form_Select::MEMBER_EXPORT, $this->_membershipIDs);
       if ($contributionDetails[$this->getMembershipID()]['contribution_status'] === 'Completed') {
-        $receiptSend = TRUE;
+        $formValues['contact_id'] = $this->_contactID;
+        $formValues['contribution_id'] = $contributionId;
+        // receipt_text_signup is no longer used in receipts from 5.47
+        // but may linger in some sites that have not updated their
+        // templates.
+        $formValues['receipt_text_signup'] = $this->getSubmittedValue('receipt_text');
+        // send email receipt
+        $this->assignBillingName();
+        $this->emailMembershipReceipt($formValues);
+        $this->addStatusMessage(ts('A membership confirmation and receipt has been sent to %1.', [1 => $this->_contributorEmail]));
       }
     }
 
-    $receiptSent = FALSE;
-    if ($this->getSubmittedValue('send_receipt') && $receiptSend) {
-      $formValues['contact_id'] = $this->_contactID;
-      $formValues['contribution_id'] = $contributionId;
-      // receipt_text_signup is no longer used in receipts from 5.47
-      // but may linger in some sites that have not updated their
-      // templates.
-      $formValues['receipt_text_signup'] = $formValues['receipt_text'];
-      // send email receipt
-      $this->assignBillingName();
-      $mailSend = $this->emailMembershipReceipt($formValues);
-      $receiptSent = TRUE;
-    }
-
-    if ($receiptSent && $mailSend) {
-      $this->addStatusMessage(ts('A membership confirmation and receipt has been sent to %1.', [1 => $this->_contributorEmail]));
-    }
-
     CRM_Core_Session::setStatus($this->getStatusMessage(), ts('Complete'), 'success');
     $this->setStatusMessage();
 
@@ -1499,7 +1484,7 @@ DESC limit 1");
     $statusMsg = ts('Membership for %1 has been updated.', [1 => $this->_memberDisplayName]);
     if ($endDate) {
       $endDate = CRM_Utils_Date::customFormat($endDate);
-      $statusMsg .= ' ' . ts('The membership End Date is %1.', [1 => $endDate]);
+      $statusMsg .= ' ' . ts('The Membership Expiration Date is %1.', [1 => $endDate]);
     }
     return $statusMsg;
   }
@@ -1521,7 +1506,7 @@ DESC limit 1");
 
       if ($memEndDate) {
         $memEndDate = CRM_Utils_Date::formatDateOnlyLong($memEndDate);
-        $statusMsg[$membership['membership_type_id']] .= ' ' . ts('The new membership End Date is %1.', [1 => $memEndDate]);
+        $statusMsg[$membership['membership_type_id']] .= ' ' . ts('The new Membership Expiration Date is %1.', [1 => $memEndDate]);
       }
     }
     $statusMsg = implode('<br/>', $statusMsg);
@@ -1600,7 +1585,8 @@ DESC limit 1");
     $formValues['contributionType_name'] = CRM_Core_DAO::getFieldValue('CRM_Financial_DAO_FinancialType',
       $this->getFinancialTypeID()
     );
-    return $this->emailReceipt($this, $formValues);
+    $this->emailReceipt($formValues);
+    return TRUE;
   }
 
   /**
diff --git a/civicrm/CRM/Member/Form/MembershipRenewal.php b/civicrm/CRM/Member/Form/MembershipRenewal.php
index 433e563ab6857565bb83ea8a0a781fd44b7718ec..82dd22d5b690e951573292e3f5af3c7900764af0 100644
--- a/civicrm/CRM/Member/Form/MembershipRenewal.php
+++ b/civicrm/CRM/Member/Form/MembershipRenewal.php
@@ -431,7 +431,7 @@ class CRM_Member_Form_MembershipRenewal extends CRM_Member_Form {
     // We process both the dates before comparison using CRM utils so that they are in same date format
     if (isset($params['renewal_date'])) {
       if ($params['renewal_date'] < $joinDate) {
-        $errors['renewal_date'] = ts('Renewal date must be the same or later than Member since (Join Date).');
+        $errors['renewal_date'] = ts('Renewal date must be the same or later than Member Since.');
       }
     }
 
diff --git a/civicrm/CRM/Member/Form/MembershipStatus.php b/civicrm/CRM/Member/Form/MembershipStatus.php
index 967e81bfd268f481d4f05e64144b72add2ffbe2c..af276795fc418f94bf542bfcb3dfe9b9b759fcf3 100644
--- a/civicrm/CRM/Member/Form/MembershipStatus.php
+++ b/civicrm/CRM/Member/Form/MembershipStatus.php
@@ -36,22 +36,6 @@ class CRM_Member_Form_MembershipStatus extends CRM_Core_Form {
     return 'create';
   }
 
-  /**
-   * Fields for the entity to be assigned to the template.
-   *
-   * Fields may have keys
-   *  - name (required to show in tpl from the array)
-   *  - description (optional, will appear below the field)
-   *  - not-auto-addable - this class will not attempt to add the field using addField.
-   *    (this will be automatically set if the field does not have html in it's metadata
-   *    or is not a core field on the form's entity).
-   *  - help (optional) add help to the field - e.g ['id' => 'id-source', 'file' => 'CRM/Contact/Form/Contact']]
-   *  - template - use a field specific template to render this field
-   *  - required
-   * @var array
-   */
-  protected $entityFields = [];
-
   /**
    * Set entity fields to be assigned to the form.
    */
diff --git a/civicrm/CRM/Member/Form/MembershipType.php b/civicrm/CRM/Member/Form/MembershipType.php
index 686e2f36f9cf6064a24a50663d4703ccf7f64bf3..e8992363fc451373fac1271076c2b04a5d8fc685 100644
--- a/civicrm/CRM/Member/Form/MembershipType.php
+++ b/civicrm/CRM/Member/Form/MembershipType.php
@@ -23,24 +23,6 @@ class CRM_Member_Form_MembershipType extends CRM_Member_Form_MembershipConfig {
 
   use CRM_Core_Form_EntityFormTrait;
 
-  /**
-   * Fields for the entity to be assigned to the template.
-   *
-   * Fields may have keys
-   *  - name (required to show in tpl from the array)
-   *  - description (optional, will appear below the field)
-   *  - not-auto-addable - this class will not attempt to add the field using addField.
-   *    (this will be automatically set if the field does not have html in it's metadata
-   *    or is not a core field on the form's entity).
-   *  - help (option) add help to the field - e.g ['id' => 'id-source', 'file' => 'CRM/Contact/Form/Contact']]
-   *  - template - use a field specific template to render this field
-   *  - required
-   *  - is_freeze (field should be frozen).
-   *
-   * @var array
-   */
-  protected $entityFields = [];
-
   /**
    * Set entity fields to be assigned to the form.
    */
@@ -121,13 +103,6 @@ class CRM_Member_Form_MembershipType extends CRM_Member_Form_MembershipConfig {
     }
   }
 
-  /**
-   * Deletion message to be assigned to the form.
-   *
-   * @var string
-   */
-  protected $deleteMessage;
-
   /**
    * Explicitly declare the entity api name.
    */
diff --git a/civicrm/CRM/Member/Form/Task/PDFLetter.php b/civicrm/CRM/Member/Form/Task/PDFLetter.php
index fdc9ad6cadefedcf2c29b7560d1f59fb312cc880..d0c1696d03129a2708574eb170a63124eb194e7e 100644
--- a/civicrm/CRM/Member/Form/Task/PDFLetter.php
+++ b/civicrm/CRM/Member/Form/Task/PDFLetter.php
@@ -39,10 +39,9 @@ class CRM_Member_Form_Task_PDFLetter extends CRM_Member_Form_Task {
   /**
    * Build all the data structures needed to build the form.
    *
-   * @return void
+   * @throws \CRM_Core_Exception
    */
   public function preProcess() {
-    $this->skipOnHold = $this->skipDeceased = FALSE;
     parent::preProcess();
     $this->setContactIDs();
     $this->preProcessPDF();
@@ -66,21 +65,17 @@ class CRM_Member_Form_Task_PDFLetter extends CRM_Member_Form_Task {
    *
    *
    * @return void
+   * @throws \CRM_Core_Exception
    */
   public function postProcess() {
-    // TODO: rewrite using contribution token and one letter by contribution
     $this->setContactIDs();
-    $skipOnHold = $this->skipOnHold ?? FALSE;
-    $skipDeceased = $this->skipDeceased ?? TRUE;
-    $this->postProcessMembers($this->_memberIds, $skipOnHold, $skipDeceased, $this->_contactIds);
+    $this->postProcessMembers($this->_memberIds, $this->_contactIds);
   }
 
   /**
    * Process the form after the input has been submitted and validated.
    *
    * @param $membershipIDs
-   * @param $skipOnHold
-   * @param $skipDeceased
    * @param $contactIDs
    *
    * @throws \CRM_Core_Exception
@@ -88,10 +83,10 @@ class CRM_Member_Form_Task_PDFLetter extends CRM_Member_Form_Task {
    * in fixing the existing pdfLetter classes to be suitably generic
    *
    */
-  public function postProcessMembers($membershipIDs, $skipOnHold, $skipDeceased, $contactIDs) {
+  public function postProcessMembers($membershipIDs, $contactIDs) {
     $form = $this;
     $formValues = $form->controller->exportValues($form->getName());
-    [$formValues, $html_message, $messageToken, $returnProperties] = $this->processMessageTemplate($formValues);
+    [$formValues, $html_message, $messageToken] = $this->processMessageTemplate($formValues);
 
     $html
       = $this->generateHTML(
diff --git a/civicrm/CRM/Member/Import/Parser/Membership.php b/civicrm/CRM/Member/Import/Parser/Membership.php
index 944119a186f42e12d2a91ae7ecf9a67d17f3ea1b..84b6edb72977efcf1650f8b9e876bd75e9f9a0a5 100644
--- a/civicrm/CRM/Member/Import/Parser/Membership.php
+++ b/civicrm/CRM/Member/Import/Parser/Membership.php
@@ -65,6 +65,8 @@ class CRM_Member_Import_Parser_Membership extends CRM_Import_Parser {
         'name' => 'membership_import',
         'label' => ts('Membership Import'),
         'entity' => 'Membership',
+        'url' => 'civicrm/import/membership',
+
       ],
     ];
   }
diff --git a/civicrm/CRM/Member/Selector/Search.php b/civicrm/CRM/Member/Selector/Search.php
index 3505c836bbc9f9bffb37a876c0ba1a919678860a..e12e1e551989290e0cf7f323a844993b83ba2f25 100644
--- a/civicrm/CRM/Member/Selector/Search.php
+++ b/civicrm/CRM/Member/Selector/Search.php
@@ -477,12 +477,12 @@ class CRM_Member_Selector_Search extends CRM_Core_Selector_Base implements CRM_C
           'direction' => CRM_Utils_Sort::DESCENDING,
         ],
         [
-          'name' => ts('Start Date'),
+          'name' => ts('Membership Start Date'),
           'sort' => 'membership_start_date',
           'direction' => CRM_Utils_Sort::DONTCARE,
         ],
         [
-          'name' => ts('End Date'),
+          'name' => ts('Membership Expiration Date'),
           'sort' => 'membership_end_date',
           'direction' => CRM_Utils_Sort::DONTCARE,
         ],
diff --git a/civicrm/CRM/PCP/DAO/PCP.php b/civicrm/CRM/PCP/DAO/PCP.php
index 1ba885ffde779007db922399cefb94ff0ec6f400..6fe89c38a6206bc86452aec3099a91af03d937c0 100644
--- a/civicrm/CRM/PCP/DAO/PCP.php
+++ b/civicrm/CRM/PCP/DAO/PCP.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/PCP/PCP.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:20f0557134b6884e42816b3d622ee09b)
+ * (GenCodeChecksum:0266b37c32174bdf3957a1b4104b03bc)
  */
 
 /**
@@ -215,6 +215,12 @@ class CRM_PCP_DAO_PCP extends CRM_Core_DAO {
           'title' => ts('Personal Campaign Page ID'),
           'description' => ts('Personal Campaign Page ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pcp.id',
           'table_name' => 'civicrm_pcp',
           'entity' => 'PCP',
@@ -232,6 +238,12 @@ class CRM_PCP_DAO_PCP extends CRM_Core_DAO {
           'title' => ts('Contact ID'),
           'description' => ts('FK to Contact ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pcp.contact_id',
           'table_name' => 'civicrm_pcp',
           'entity' => 'PCP',
@@ -249,6 +261,12 @@ class CRM_PCP_DAO_PCP extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Personal Campaign Page Status'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pcp.status_id',
           'table_name' => 'civicrm_pcp',
           'entity' => 'PCP',
@@ -269,6 +287,12 @@ class CRM_PCP_DAO_PCP extends CRM_Core_DAO {
           'title' => ts('Personal Campaign Page Title'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pcp.title',
           'default' => NULL,
           'table_name' => 'civicrm_pcp',
@@ -284,6 +308,12 @@ class CRM_PCP_DAO_PCP extends CRM_Core_DAO {
           'name' => 'intro_text',
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Intro Text'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pcp.intro_text',
           'default' => NULL,
           'table_name' => 'civicrm_pcp',
@@ -300,6 +330,12 @@ class CRM_PCP_DAO_PCP extends CRM_Core_DAO {
           'name' => 'page_text',
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Page Text'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pcp.page_text',
           'default' => NULL,
           'table_name' => 'civicrm_pcp',
@@ -318,6 +354,12 @@ class CRM_PCP_DAO_PCP extends CRM_Core_DAO {
           'title' => ts('Donate Link Text'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pcp.donate_link_text',
           'default' => NULL,
           'table_name' => 'civicrm_pcp',
@@ -335,6 +377,12 @@ class CRM_PCP_DAO_PCP extends CRM_Core_DAO {
           'title' => ts('Contribution Page'),
           'description' => ts('The Contribution or Event Page which triggered this pcp'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pcp.page_id',
           'table_name' => 'civicrm_pcp',
           'entity' => 'PCP',
@@ -349,6 +397,12 @@ class CRM_PCP_DAO_PCP extends CRM_Core_DAO {
           'description' => ts('The type of PCP this is: contribute or event'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pcp.page_type',
           'default' => 'contribute',
           'table_name' => 'civicrm_pcp',
@@ -366,6 +420,12 @@ class CRM_PCP_DAO_PCP extends CRM_Core_DAO {
           'title' => ts('PCP Block'),
           'description' => ts('The pcp block that this pcp page was created from'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pcp.pcp_block_id',
           'table_name' => 'civicrm_pcp',
           'entity' => 'PCP',
@@ -377,6 +437,12 @@ class CRM_PCP_DAO_PCP extends CRM_Core_DAO {
           'name' => 'is_thermometer',
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Use Thermometer?'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pcp.is_thermometer',
           'default' => '0',
           'table_name' => 'civicrm_pcp',
@@ -392,6 +458,12 @@ class CRM_PCP_DAO_PCP extends CRM_Core_DAO {
           'name' => 'is_honor_roll',
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Show Honor Roll?'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pcp.is_honor_roll',
           'default' => '0',
           'table_name' => 'civicrm_pcp',
@@ -412,6 +484,12 @@ class CRM_PCP_DAO_PCP extends CRM_Core_DAO {
             20,
             2,
           ],
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pcp.goal_amount',
           'table_name' => 'civicrm_pcp',
           'entity' => 'PCP',
@@ -429,6 +507,12 @@ class CRM_PCP_DAO_PCP extends CRM_Core_DAO {
           'description' => ts('3 character string, value from config setting or input via user.'),
           'maxlength' => 3,
           'size' => CRM_Utils_Type::FOUR,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pcp.currency',
           'default' => NULL,
           'table_name' => 'civicrm_pcp',
@@ -453,6 +537,12 @@ class CRM_PCP_DAO_PCP extends CRM_Core_DAO {
           'title' => ts('Enabled?'),
           'description' => ts('Is Personal Campaign Page enabled/active?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pcp.is_active',
           'default' => '1',
           'table_name' => 'civicrm_pcp',
@@ -471,6 +561,12 @@ class CRM_PCP_DAO_PCP extends CRM_Core_DAO {
           'title' => ts('Notify Owner?'),
           'description' => ts('Notify owner via email when someone donates to page?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pcp.is_notify',
           'default' => '0',
           'table_name' => 'civicrm_pcp',
diff --git a/civicrm/CRM/PCP/DAO/PCPBlock.php b/civicrm/CRM/PCP/DAO/PCPBlock.php
index 9754aec3ff63eb1ae7fc900be29218c288bbd6a2..ac5cef5229f49afdf101bdbe4d714438000d937f 100644
--- a/civicrm/CRM/PCP/DAO/PCPBlock.php
+++ b/civicrm/CRM/PCP/DAO/PCPBlock.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/PCP/PCPBlock.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:da87c869b048e33aa9be86aaf06caaed)
+ * (GenCodeChecksum:59afb1ccb33634e9177906f142c87ddd)
  */
 
 /**
@@ -195,6 +195,12 @@ class CRM_PCP_DAO_PCPBlock extends CRM_Core_DAO {
           'title' => ts('PCP Block ID'),
           'description' => ts('PCP block ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pcp_block.id',
           'table_name' => 'civicrm_pcp_block',
           'entity' => 'PCPBlock',
@@ -212,6 +218,12 @@ class CRM_PCP_DAO_PCPBlock extends CRM_Core_DAO {
           'title' => ts('Entity Table'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pcp_block.entity_table',
           'table_name' => 'civicrm_pcp_block',
           'entity' => 'PCPBlock',
@@ -225,6 +237,12 @@ class CRM_PCP_DAO_PCPBlock extends CRM_Core_DAO {
           'title' => ts('Entity'),
           'description' => ts('FK to civicrm_contribution_page.id OR civicrm_event.id'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pcp_block.entity_id',
           'table_name' => 'civicrm_pcp_block',
           'entity' => 'PCPBlock',
@@ -240,6 +258,12 @@ class CRM_PCP_DAO_PCPBlock extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pcp_block.target_entity_type',
           'default' => 'contribute',
           'table_name' => 'civicrm_pcp_block',
@@ -254,6 +278,12 @@ class CRM_PCP_DAO_PCPBlock extends CRM_Core_DAO {
           'title' => ts('Target Entity ID'),
           'description' => ts('The entity that this pcp targets'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pcp_block.target_entity_id',
           'table_name' => 'civicrm_pcp_block',
           'entity' => 'PCPBlock',
@@ -266,6 +296,12 @@ class CRM_PCP_DAO_PCPBlock extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Supporter Profile ID'),
           'description' => ts('FK to civicrm_uf_group.id. Does Personal Campaign Page require manual activation by administrator? (is inactive by default after setup)?'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pcp_block.supporter_profile_id',
           'default' => NULL,
           'table_name' => 'civicrm_pcp_block',
@@ -283,6 +319,12 @@ class CRM_PCP_DAO_PCPBlock extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Owner Notification'),
           'description' => ts('FK to civicrm_option_group with name = PCP owner notifications'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pcp_block.owner_notify_id',
           'default' => '0',
           'table_name' => 'civicrm_pcp_block',
@@ -304,6 +346,12 @@ class CRM_PCP_DAO_PCPBlock extends CRM_Core_DAO {
           'title' => ts('Approval Required?'),
           'description' => ts('Does Personal Campaign Page require manual activation by administrator? (is inactive by default after setup)?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pcp_block.is_approval_needed',
           'default' => '0',
           'table_name' => 'civicrm_pcp_block',
@@ -318,6 +366,12 @@ class CRM_PCP_DAO_PCPBlock extends CRM_Core_DAO {
           'title' => ts('Tell a Friend Enabled?'),
           'description' => ts('Does Personal Campaign Page allow using tell a friend?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pcp_block.is_tellfriend_enabled',
           'default' => '0',
           'table_name' => 'civicrm_pcp_block',
@@ -331,6 +385,12 @@ class CRM_PCP_DAO_PCPBlock extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Tell A Friend Limit'),
           'description' => ts('Maximum recipient fields allowed in tell a friend'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pcp_block.tellfriend_limit',
           'default' => NULL,
           'table_name' => 'civicrm_pcp_block',
@@ -346,6 +406,12 @@ class CRM_PCP_DAO_PCPBlock extends CRM_Core_DAO {
           'description' => ts('Link text for PCP.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pcp_block.link_text',
           'default' => NULL,
           'table_name' => 'civicrm_pcp_block',
@@ -360,6 +426,12 @@ class CRM_PCP_DAO_PCPBlock extends CRM_Core_DAO {
           'title' => ts('Enabled?'),
           'description' => ts('Is Personal Campaign Page Block enabled/active?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pcp_block.is_active',
           'default' => '1',
           'table_name' => 'civicrm_pcp_block',
@@ -379,6 +451,12 @@ class CRM_PCP_DAO_PCPBlock extends CRM_Core_DAO {
           'description' => ts('If set, notification is automatically emailed to this email-address on create/update Personal Campaign Page'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pcp_block.notify_email',
           'default' => NULL,
           'table_name' => 'civicrm_pcp_block',
diff --git a/civicrm/CRM/Pledge/BAO/PledgePayment.php b/civicrm/CRM/Pledge/BAO/PledgePayment.php
index 4c9e98bbf709e35b3c3c14a3054a0750895a2662..fc00d8f7ac33edade25590954e50fec82e426b40 100644
--- a/civicrm/CRM/Pledge/BAO/PledgePayment.php
+++ b/civicrm/CRM/Pledge/BAO/PledgePayment.php
@@ -201,6 +201,7 @@ WHERE     pledge_id = %1
    * @return bool
    */
   public static function del($id) {
+    CRM_Core_Error::deprecatedFunctionWarning('deleteRecord');
     return (bool) self::deleteRecord(['id' => $id]);
   }
 
@@ -228,7 +229,7 @@ WHERE     pledge_id = %1
         if ($payment->contribution_id) {
           CRM_Contribute_BAO_Contribution::deleteContribution($payment->contribution_id);
         }
-        self::del($payment->id);
+        self::deleteRecord(['id' => $payment->id]);
       }
     }
 
diff --git a/civicrm/CRM/Pledge/DAO/Pledge.php b/civicrm/CRM/Pledge/DAO/Pledge.php
index 690c2de74c2dbb2c3a436019099e49bf1c29e655..024d82db913f3f5776ff0488ec60d40f00a391a4 100644
--- a/civicrm/CRM/Pledge/DAO/Pledge.php
+++ b/civicrm/CRM/Pledge/DAO/Pledge.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Pledge/Pledge.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:b6e9ead03c5edee7d6fa4c16a5a479a4)
+ * (GenCodeChecksum:5a6d7ca8c7749e190b667bf47b1d024a)
  */
 
 /**
@@ -314,6 +314,12 @@ class CRM_Pledge_DAO_Pledge extends CRM_Core_DAO {
           'title' => ts('Pledge ID'),
           'description' => ts('Pledge ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_pledge.id',
           'export' => TRUE,
@@ -333,6 +339,12 @@ class CRM_Pledge_DAO_Pledge extends CRM_Core_DAO {
           'title' => ts('Contact ID'),
           'description' => ts('Foreign key to civicrm_contact.id .'),
           'required' => TRUE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_pledge.contact_id',
           'export' => TRUE,
@@ -352,6 +364,12 @@ class CRM_Pledge_DAO_Pledge extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Financial Type ID'),
           'description' => ts('FK to Financial Type'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pledge.financial_type_id',
           'table_name' => 'civicrm_pledge',
           'entity' => 'Pledge',
@@ -374,6 +392,12 @@ class CRM_Pledge_DAO_Pledge extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Contribution Page ID'),
           'description' => ts('The Contribution Page which triggered this contribution'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pledge.contribution_page_id',
           'table_name' => 'civicrm_pledge',
           'entity' => 'Pledge',
@@ -395,6 +419,12 @@ class CRM_Pledge_DAO_Pledge extends CRM_Core_DAO {
             20,
             2,
           ],
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_pledge.amount',
           'export' => TRUE,
@@ -417,6 +447,12 @@ class CRM_Pledge_DAO_Pledge extends CRM_Core_DAO {
             20,
             2,
           ],
+          'usage' => [
+            'import' => FALSE,
+            'export' => TRUE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pledge.original_installment_amount',
           'export' => TRUE,
           'table_name' => 'civicrm_pledge',
@@ -435,6 +471,12 @@ class CRM_Pledge_DAO_Pledge extends CRM_Core_DAO {
           'description' => ts('3 character string, value from config setting or input via user.'),
           'maxlength' => 3,
           'size' => CRM_Utils_Type::FOUR,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pledge.currency',
           'default' => NULL,
           'table_name' => 'civicrm_pledge',
@@ -461,6 +503,12 @@ class CRM_Pledge_DAO_Pledge extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 8,
           'size' => CRM_Utils_Type::EIGHT,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pledge.frequency_unit',
           'default' => 'month',
           'table_name' => 'civicrm_pledge',
@@ -483,6 +531,12 @@ class CRM_Pledge_DAO_Pledge extends CRM_Core_DAO {
           'title' => ts('Pledge Frequency Interval'),
           'description' => ts('Number of time units for recurrence of pledge payments.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pledge.frequency_interval',
           'default' => '1',
           'table_name' => 'civicrm_pledge',
@@ -500,6 +554,12 @@ class CRM_Pledge_DAO_Pledge extends CRM_Core_DAO {
           'title' => ts('Pledge day'),
           'description' => ts('Day in the period when the pledge payment is due e.g. 1st of month, 15th etc. Use this to set the scheduled dates for pledge payments.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pledge.frequency_day',
           'default' => '3',
           'table_name' => 'civicrm_pledge',
@@ -517,6 +577,12 @@ class CRM_Pledge_DAO_Pledge extends CRM_Core_DAO {
           'title' => ts('Pledge Number of Installments'),
           'description' => ts('Total number of payments to be made.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => TRUE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pledge.installments',
           'export' => TRUE,
           'default' => '1',
@@ -535,6 +601,12 @@ class CRM_Pledge_DAO_Pledge extends CRM_Core_DAO {
           'title' => ts('Pledge Start Date'),
           'description' => ts('The date the first scheduled pledge occurs.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => TRUE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pledge.start_date',
           'export' => TRUE,
           'table_name' => 'civicrm_pledge',
@@ -554,6 +626,12 @@ class CRM_Pledge_DAO_Pledge extends CRM_Core_DAO {
           'title' => ts('Pledge Made'),
           'description' => ts('When this pledge record was created.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_pledge.create_date',
           'export' => TRUE,
@@ -572,6 +650,12 @@ class CRM_Pledge_DAO_Pledge extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME,
           'title' => ts('Pledge Acknowledged'),
           'description' => ts('When a pledge acknowledgement message was sent to the contributor.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pledge.acknowledge_date',
           'table_name' => 'civicrm_pledge',
           'entity' => 'Pledge',
@@ -588,6 +672,12 @@ class CRM_Pledge_DAO_Pledge extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME,
           'title' => ts('Pledge Modified Date'),
           'description' => ts('Last updated date for this pledge record.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pledge.modified_date',
           'table_name' => 'civicrm_pledge',
           'entity' => 'Pledge',
@@ -601,6 +691,12 @@ class CRM_Pledge_DAO_Pledge extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME,
           'title' => ts('Pledge Cancelled Date'),
           'description' => ts('Date this pledge was cancelled by contributor.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pledge.cancel_date',
           'table_name' => 'civicrm_pledge',
           'entity' => 'Pledge',
@@ -617,6 +713,12 @@ class CRM_Pledge_DAO_Pledge extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME,
           'title' => ts('Pledge End Date'),
           'description' => ts('Date this pledge finished successfully (total pledge payments equal to or greater than pledged amount).'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => TRUE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pledge.end_date',
           'export' => TRUE,
           'table_name' => 'civicrm_pledge',
@@ -635,6 +737,12 @@ class CRM_Pledge_DAO_Pledge extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Maximum Number of Reminders'),
           'description' => ts('The maximum number of payment reminders to send for any given payment.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pledge.max_reminders',
           'default' => '1',
           'table_name' => 'civicrm_pledge',
@@ -651,6 +759,12 @@ class CRM_Pledge_DAO_Pledge extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Initial Reminder Day'),
           'description' => ts('Send initial reminder this many days prior to the payment due date.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pledge.initial_reminder_day',
           'default' => '5',
           'table_name' => 'civicrm_pledge',
@@ -667,6 +781,12 @@ class CRM_Pledge_DAO_Pledge extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Additional Reminder Days'),
           'description' => ts('Send additional reminder this many days after last one sent, up to maximum number of reminders.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pledge.additional_reminder_day',
           'default' => '5',
           'table_name' => 'civicrm_pledge',
@@ -684,6 +804,12 @@ class CRM_Pledge_DAO_Pledge extends CRM_Core_DAO {
           'title' => ts('Pledge Status ID'),
           'description' => ts('Implicit foreign key to civicrm_option_values in the pledge_status option group.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => FALSE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_pledge.status_id',
           'export' => FALSE,
@@ -705,6 +831,12 @@ class CRM_Pledge_DAO_Pledge extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_BOOLEAN,
           'title' => ts('Test'),
           'required' => TRUE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_pledge.is_test',
           'export' => TRUE,
@@ -723,6 +855,12 @@ class CRM_Pledge_DAO_Pledge extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Campaign ID'),
           'description' => ts('The campaign for which this pledge has been initiated.'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_pledge.campaign_id',
           'export' => TRUE,
diff --git a/civicrm/CRM/Pledge/DAO/PledgeBlock.php b/civicrm/CRM/Pledge/DAO/PledgeBlock.php
index ab9c295cfa2c2703ee463b7e37a3ecdf9b4687c3..5ddb54963874b5efb0747fbac2351bb6aafc1741 100644
--- a/civicrm/CRM/Pledge/DAO/PledgeBlock.php
+++ b/civicrm/CRM/Pledge/DAO/PledgeBlock.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Pledge/PledgeBlock.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:a15cb74527739ed1a01e365ced4bba4a)
+ * (GenCodeChecksum:10d706ed0732ee50f39b79dc2a1c52f1)
  */
 
 /**
@@ -177,6 +177,12 @@ class CRM_Pledge_DAO_PledgeBlock extends CRM_Core_DAO {
           'title' => ts('Pledge Block ID'),
           'description' => ts('Pledge ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pledge_block.id',
           'table_name' => 'civicrm_pledge_block',
           'entity' => 'PledgeBlock',
@@ -195,6 +201,12 @@ class CRM_Pledge_DAO_PledgeBlock extends CRM_Core_DAO {
           'description' => ts('physical tablename for entity being joined to pledge, e.g. civicrm_contact'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pledge_block.entity_table',
           'table_name' => 'civicrm_pledge_block',
           'entity' => 'PledgeBlock',
@@ -208,6 +220,12 @@ class CRM_Pledge_DAO_PledgeBlock extends CRM_Core_DAO {
           'title' => ts('Entity ID'),
           'description' => ts('FK to entity table specified in entity_table column.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pledge_block.entity_id',
           'table_name' => 'civicrm_pledge_block',
           'entity' => 'PledgeBlock',
@@ -222,6 +240,12 @@ class CRM_Pledge_DAO_PledgeBlock extends CRM_Core_DAO {
           'description' => ts('Delimited list of supported frequency units'),
           'maxlength' => 128,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pledge_block.pledge_frequency_unit',
           'table_name' => 'civicrm_pledge_block',
           'entity' => 'PledgeBlock',
@@ -236,6 +260,12 @@ class CRM_Pledge_DAO_PledgeBlock extends CRM_Core_DAO {
           'title' => ts('Expose Frequency Interval?'),
           'description' => ts('Is frequency interval exposed on the contribution form.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pledge_block.is_pledge_interval',
           'default' => '0',
           'table_name' => 'civicrm_pledge_block',
@@ -249,6 +279,12 @@ class CRM_Pledge_DAO_PledgeBlock extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Maximum Number of Reminders'),
           'description' => ts('The maximum number of payment reminders to send for any given payment.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pledge_block.max_reminders',
           'default' => '1',
           'table_name' => 'civicrm_pledge_block',
@@ -262,6 +298,12 @@ class CRM_Pledge_DAO_PledgeBlock extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Initial Reminder Day'),
           'description' => ts('Send initial reminder this many days prior to the payment due date.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pledge_block.initial_reminder_day',
           'default' => '5',
           'table_name' => 'civicrm_pledge_block',
@@ -275,6 +317,12 @@ class CRM_Pledge_DAO_PledgeBlock extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Additional Reminder Days'),
           'description' => ts('Send additional reminder this many days after last one sent, up to maximum number of reminders.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pledge_block.additional_reminder_day',
           'default' => '5',
           'table_name' => 'civicrm_pledge_block',
@@ -290,6 +338,12 @@ class CRM_Pledge_DAO_PledgeBlock extends CRM_Core_DAO {
           'description' => ts('The date the first scheduled pledge occurs.'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pledge_block.pledge_start_date',
           'table_name' => 'civicrm_pledge_block',
           'entity' => 'PledgeBlock',
@@ -303,6 +357,12 @@ class CRM_Pledge_DAO_PledgeBlock extends CRM_Core_DAO {
           'title' => ts('Show Recurring Donation Start Date?'),
           'description' => ts('If true - recurring start date is shown.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pledge_block.is_pledge_start_date_visible',
           'default' => '0',
           'table_name' => 'civicrm_pledge_block',
@@ -317,6 +377,12 @@ class CRM_Pledge_DAO_PledgeBlock extends CRM_Core_DAO {
           'title' => ts('Allow Edits to Recurring Donation Start Date?'),
           'description' => ts('If true - recurring start date is editable.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pledge_block.is_pledge_start_date_editable',
           'default' => '0',
           'table_name' => 'civicrm_pledge_block',
diff --git a/civicrm/CRM/Pledge/DAO/PledgePayment.php b/civicrm/CRM/Pledge/DAO/PledgePayment.php
index 4ece7808e9e7cae406c9205e68cbd680f5dcf59a..406be7328a5ead5cf02efdd56ce6a7718a2989e0 100644
--- a/civicrm/CRM/Pledge/DAO/PledgePayment.php
+++ b/civicrm/CRM/Pledge/DAO/PledgePayment.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Pledge/PledgePayment.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:92568aec1e6e00476a86d15476e2ab29)
+ * (GenCodeChecksum:6c0d4b7b1f908753ce551410a1357243)
  */
 
 /**
@@ -164,6 +164,12 @@ class CRM_Pledge_DAO_PledgePayment extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Payment ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_pledge_payment.id',
           'export' => TRUE,
@@ -183,6 +189,12 @@ class CRM_Pledge_DAO_PledgePayment extends CRM_Core_DAO {
           'title' => ts('Pledge ID'),
           'description' => ts('FK to Pledge table'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pledge_payment.pledge_id',
           'table_name' => 'civicrm_pledge_payment',
           'entity' => 'PledgePayment',
@@ -199,6 +211,12 @@ class CRM_Pledge_DAO_PledgePayment extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Contribution ID'),
           'description' => ts('FK to contribution table.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pledge_payment.contribution_id',
           'table_name' => 'civicrm_pledge_payment',
           'entity' => 'PledgePayment',
@@ -220,6 +238,12 @@ class CRM_Pledge_DAO_PledgePayment extends CRM_Core_DAO {
             20,
             2,
           ],
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_pledge_payment.scheduled_amount',
           'export' => TRUE,
@@ -238,6 +262,12 @@ class CRM_Pledge_DAO_PledgePayment extends CRM_Core_DAO {
             20,
             2,
           ],
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_pledge_payment.actual_amount',
           'export' => TRUE,
@@ -254,6 +284,12 @@ class CRM_Pledge_DAO_PledgePayment extends CRM_Core_DAO {
           'description' => ts('3 character string, value from config setting or input via user.'),
           'maxlength' => 3,
           'size' => CRM_Utils_Type::FOUR,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_pledge_payment.currency',
           'default' => NULL,
           'table_name' => 'civicrm_pledge_payment',
@@ -278,6 +314,12 @@ class CRM_Pledge_DAO_PledgePayment extends CRM_Core_DAO {
           'title' => ts('Scheduled Date'),
           'description' => ts('The date the pledge payment is supposed to happen.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_pledge_payment.scheduled_date',
           'export' => TRUE,
@@ -297,6 +339,12 @@ class CRM_Pledge_DAO_PledgePayment extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME,
           'title' => ts('Last Reminder'),
           'description' => ts('The date that the most recent payment reminder was sent.'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_pledge_payment.reminder_date',
           'export' => TRUE,
@@ -311,6 +359,12 @@ class CRM_Pledge_DAO_PledgePayment extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Reminders Sent'),
           'description' => ts('The number of payment reminders sent.'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_pledge_payment.reminder_count',
           'export' => TRUE,
@@ -325,6 +379,12 @@ class CRM_Pledge_DAO_PledgePayment extends CRM_Core_DAO {
           'name' => 'status_id',
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Payment Status'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => FALSE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_pledge_payment.status_id',
           'export' => FALSE,
diff --git a/civicrm/CRM/Pledge/Tokens.php b/civicrm/CRM/Pledge/Tokens.php
new file mode 100644
index 0000000000000000000000000000000000000000..c2961487355cf7a7461f57bafdf828e8e86db623
--- /dev/null
+++ b/civicrm/CRM/Pledge/Tokens.php
@@ -0,0 +1,57 @@
+<?php
+
+/*
+ +--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC. All rights reserved.                        |
+ |                                                                    |
+ | This work is published under the GNU AGPLv3 license with some      |
+ | permitted exceptions and without any warranty. For full license    |
+ | and copyright information, see https://civicrm.org/licensing       |
+ +--------------------------------------------------------------------+
+ */
+
+/**
+ * Class CRM_Pledge_Tokens
+ *
+ * Generate "pledge.*" tokens.
+ *
+ * @noinspection PhpUnused
+ */
+class CRM_Pledge_Tokens extends CRM_Core_EntityTokens {
+
+  /**
+   * Get the entity name for api v4 calls.
+   *
+   * @return string
+   */
+  protected function getApiEntityName(): string {
+    return 'Pledge';
+  }
+
+  /**
+   * Get entity fields that should be exposed as tokens.
+   *
+   * These are the fields that seem most likely to be useful as tokens.
+   *
+   * @todo - add more pseudo-fields like 'paid_amount', 'balance_amount'
+   * to v4 api - see the ContributionGetSpecProvider for how.
+   *
+   * @return string[]
+   *
+   */
+  protected function getExposedFields(): array {
+    return [
+      'amount',
+      'currency',
+      'frequency_unit',
+      'frequency_interval',
+      'frequency_day',
+      'installments',
+      'start_date',
+      'create_date',
+      'cancel_date',
+      'end_date',
+    ];
+  }
+
+}
diff --git a/civicrm/CRM/Price/BAO/LineItem.php b/civicrm/CRM/Price/BAO/LineItem.php
index 29521089c4595bea4235db3693db3e75cdd72037..1c2a7d0f0cab0908833fac34832850e006a261dd 100644
--- a/civicrm/CRM/Price/BAO/LineItem.php
+++ b/civicrm/CRM/Price/BAO/LineItem.php
@@ -141,6 +141,12 @@ WHERE li.contribution_id = %1";
    * Given a participant id/contribution id,
    * return contribution/fee line items
    *
+   * Try to use the `BAO_Order` in internal code rather than accessing this
+   * directly (external code should use the api). We aim to deprecate this
+   * over time.
+   *
+   * @internal
+   *
    * @param int $entityId
    *   participant/contribution id.
    * @param string $entity
@@ -190,8 +196,8 @@ WHERE li.contribution_id = %1";
     $orderByClause = " ORDER BY pf.weight, pfv.weight";
 
     if ($isQuick) {
-      $fromClause .= " LEFT JOIN civicrm_price_set cps on cps.id = pf.price_set_id ";
-      $whereClause .= " and cps.is_quick_config = 0";
+      $fromClause .= ' LEFT JOIN civicrm_price_set cps on cps.id = pf.price_set_id ';
+      $whereClause .= ' and cps.is_quick_config = 0';
     }
 
     if (!$isQtyZero) {
diff --git a/civicrm/CRM/Price/BAO/PriceField.php b/civicrm/CRM/Price/BAO/PriceField.php
index 163f553eab37158a2d1b47587300d4f5b1cbd4bf..f0163d150fe6483c2bf7ce3332106e7564505823 100644
--- a/civicrm/CRM/Price/BAO/PriceField.php
+++ b/civicrm/CRM/Price/BAO/PriceField.php
@@ -187,15 +187,10 @@ class CRM_Price_BAO_PriceField extends CRM_Price_DAO_PriceField {
   }
 
   /**
-   * Update the is_active flag in the db.
-   *
+   * @deprecated - this bypasses hooks.
    * @param int $id
-   *   Id of the database record.
    * @param bool $is_active
-   *   Value we want to set the is_active field.
-   *
    * @return bool
-   *   true if we found and updated the object, else false
    */
   public static function setIsActive($id, $is_active) {
     return CRM_Core_DAO::setFieldValue('CRM_Price_DAO_PriceField', $id, 'is_active', $is_active);
@@ -268,6 +263,7 @@ class CRM_Price_BAO_PriceField extends CRM_Price_DAO_PriceField {
     }
 
     $is_pay_later = 0;
+    $isQuickConfig = CRM_Price_BAO_PriceSet::isQuickConfig($field->price_set_id);
     if (isset($qf->_mode) && empty($qf->_mode)) {
       $is_pay_later = 1;
     }
@@ -324,13 +320,13 @@ class CRM_Price_BAO_PriceField extends CRM_Price_DAO_PriceField {
         ]);
 
         $extra = [];
-        if (!empty($qf->_membershipBlock) && !empty($qf->_quickConfig) && $field->name == 'other_amount' && empty($qf->_contributionAmount)) {
+        if (!empty($qf->_membershipBlock) && $isQuickConfig && $field->name == 'other_amount' && empty($qf->_contributionAmount)) {
           $useRequired = 0;
         }
         elseif (!empty($fieldOptions[$optionKey]['label'])) {
           //check for label.
           $label = $fieldOptions[$optionKey]['label'];
-          if (!empty($qf->_quickConfig) && !empty($qf->_contributionAmount) && strtolower($fieldOptions[$optionKey]['name']) == 'other_amount') {
+          if ($isQuickConfig && !empty($qf->_contributionAmount) && strtolower($fieldOptions[$optionKey]['name']) == 'other_amount') {
             $label .= '  ' . $currencySymbol;
             $qf->assign('priceset', $elementName);
             $extra = [
@@ -361,7 +357,7 @@ class CRM_Price_BAO_PriceField extends CRM_Price_DAO_PriceField {
         }
 
         //CRM-10117
-        if (!empty($qf->_quickConfig)) {
+        if ($isQuickConfig) {
           $message = ts('Please enter a valid amount.');
           $type = 'money';
         }
@@ -376,7 +372,7 @@ class CRM_Price_BAO_PriceField extends CRM_Price_DAO_PriceField {
       case 'Radio':
         $choice = [];
 
-        if (!empty($qf->_quickConfig) && !empty($qf->_contributionAmount)) {
+        if ($isQuickConfig && !empty($qf->_contributionAmount)) {
           $qf->assign('contriPriceset', $elementName);
         }
 
@@ -418,7 +414,7 @@ class CRM_Price_BAO_PriceField extends CRM_Price_DAO_PriceField {
             'data-price-field-values' => json_encode($customOption),
             'visibility' => $visibility_id,
           ];
-          if (!empty($qf->_quickConfig) && $field->name == 'contribution_amount') {
+          if ($isQuickConfig && $field->name == 'contribution_amount') {
             $extra += ['onclick' => 'clearAmountOther();'];
           }
           if ($field->name == 'membership_amount') {
diff --git a/civicrm/CRM/Price/BAO/PriceFieldValue.php b/civicrm/CRM/Price/BAO/PriceFieldValue.php
index ae00626f9f036f8843527030bf26e2495d0bd684..70e150d5001fbae27f558842d2840ed41e299915 100644
--- a/civicrm/CRM/Price/BAO/PriceFieldValue.php
+++ b/civicrm/CRM/Price/BAO/PriceFieldValue.php
@@ -182,15 +182,10 @@ class CRM_Price_BAO_PriceFieldValue extends CRM_Price_DAO_PriceFieldValue {
   }
 
   /**
-   * Update the is_active flag in the db.
-   *
+   * @deprecated - this bypasses hooks.
    * @param int $id
-   *   Id of the database record.
    * @param bool $is_active
-   *   Value we want to set the is_active field.
-   *
    * @return bool
-   *   true if we found and updated the object, else false
    */
   public static function setIsActive($id, $is_active) {
     return CRM_Core_DAO::setFieldValue('CRM_Price_DAO_PriceFieldValue', $id, 'is_active', $is_active);
@@ -223,6 +218,7 @@ class CRM_Price_BAO_PriceFieldValue extends CRM_Price_DAO_PriceFieldValue {
    * @return bool
    */
   public static function del($id) {
+    CRM_Core_Error::deprecatedFunctionWarning('deleteRecord');
     return (bool) self::deleteRecord(['id' => $id]);
   }
 
diff --git a/civicrm/CRM/Price/BAO/PriceSet.php b/civicrm/CRM/Price/BAO/PriceSet.php
index 30de2eaf3686ed0b943f2712d6281966e266115c..a5840caee43215d660565cf13d18294a4fa98714 100644
--- a/civicrm/CRM/Price/BAO/PriceSet.php
+++ b/civicrm/CRM/Price/BAO/PriceSet.php
@@ -86,16 +86,13 @@ class CRM_Price_BAO_PriceSet extends CRM_Price_DAO_PriceSet {
   }
 
   /**
-   * Update the is_active flag in the db.
-   *
+   * @deprecated - this bypasses hooks.
    * @param int $id
-   *   Id of the database record.
-   * @param $isActive
-   *
+   * @param bool $isActive
    * @return bool
-   *   true if we found and updated the object, else false
    */
   public static function setIsActive($id, $isActive) {
+    CRM_Core_Error::deprecatedFunctionWarning('writeRecord');
     return CRM_Core_DAO::setFieldValue('CRM_Price_DAO_PriceSet', $id, 'is_active', $isActive);
   }
 
@@ -509,6 +506,20 @@ WHERE  id = %1";
     return $setTree;
   }
 
+  /**
+   * Is the price set 'quick config'.
+   *
+   * Quick config price sets have a simplified configuration on
+   * contribution and event pages.
+   *
+   * @param int $priceSetID
+   *
+   * @return bool
+   */
+  public static function isQuickConfig(int $priceSetID): bool {
+    return (bool) self::getCachedPriceSetDetail($priceSetID)['is_quick_config'];
+  }
+
   /**
    * Get the Price Field ID.
    *
@@ -1320,8 +1331,7 @@ WHERE       ps.id = %1
   public static function copyPriceSet($baoName, $id, $newId) {
     $priceSetId = CRM_Price_BAO_PriceSet::getFor($baoName, $id);
     if ($priceSetId) {
-      $isQuickConfig = CRM_Core_DAO::getFieldValue('CRM_Price_DAO_PriceSet', $priceSetId, 'is_quick_config');
-      if ($isQuickConfig) {
+      if (self::isQuickConfig($priceSetId)) {
         $copyPriceSet = CRM_Price_BAO_PriceSet::copy($priceSetId);
         CRM_Price_BAO_PriceSet::addTo($baoName, $newId, $copyPriceSet->id);
       }
diff --git a/civicrm/CRM/Price/DAO/LineItem.php b/civicrm/CRM/Price/DAO/LineItem.php
index 31e1b16743f898b2824d4632fe5a0c17dc5dcc23..891dbc2bf2fd52317e54e028d7f601488adea58a 100644
--- a/civicrm/CRM/Price/DAO/LineItem.php
+++ b/civicrm/CRM/Price/DAO/LineItem.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Price/LineItem.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:3c95298c47cf10d40e3dcf445563cd04)
+ * (GenCodeChecksum:90371022fa535bab6d13f1b6e3fc9b7c)
  */
 
 /**
@@ -224,6 +224,12 @@ class CRM_Price_DAO_LineItem extends CRM_Core_DAO {
           'title' => ts('Line Item ID'),
           'description' => ts('Line Item'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_line_item.id',
           'table_name' => 'civicrm_line_item',
           'entity' => 'LineItem',
@@ -243,6 +249,12 @@ class CRM_Price_DAO_LineItem extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_line_item.entity_table',
           'table_name' => 'civicrm_line_item',
           'entity' => 'LineItem',
@@ -259,6 +271,12 @@ class CRM_Price_DAO_LineItem extends CRM_Core_DAO {
           'title' => ts('Line Item Entity'),
           'description' => ts('entry in table'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_line_item.entity_id',
           'table_name' => 'civicrm_line_item',
           'entity' => 'LineItem',
@@ -271,6 +289,12 @@ class CRM_Price_DAO_LineItem extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Contribution ID'),
           'description' => ts('FK to civicrm_contribution'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_line_item.contribution_id',
           'table_name' => 'civicrm_line_item',
           'entity' => 'LineItem',
@@ -287,6 +311,12 @@ class CRM_Price_DAO_LineItem extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Price Field ID'),
           'description' => ts('FK to civicrm_price_field'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_line_item.price_field_id',
           'table_name' => 'civicrm_line_item',
           'entity' => 'LineItem',
@@ -311,6 +341,12 @@ class CRM_Price_DAO_LineItem extends CRM_Core_DAO {
           'description' => ts('descriptive label for item - from price_field_value.label'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_line_item.label',
           'default' => NULL,
           'table_name' => 'civicrm_line_item',
@@ -332,6 +368,12 @@ class CRM_Price_DAO_LineItem extends CRM_Core_DAO {
             20,
             2,
           ],
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_line_item.qty',
           'table_name' => 'civicrm_line_item',
           'entity' => 'LineItem',
@@ -352,6 +394,12 @@ class CRM_Price_DAO_LineItem extends CRM_Core_DAO {
             20,
             2,
           ],
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_line_item.unit_price',
           'table_name' => 'civicrm_line_item',
           'entity' => 'LineItem',
@@ -373,6 +421,12 @@ class CRM_Price_DAO_LineItem extends CRM_Core_DAO {
             20,
             2,
           ],
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_line_item.line_total',
           'table_name' => 'civicrm_line_item',
           'entity' => 'LineItem',
@@ -385,6 +439,12 @@ class CRM_Price_DAO_LineItem extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Line Item Participant Count'),
           'description' => ts('Participant count for field'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_line_item.participant_count',
           'default' => NULL,
           'table_name' => 'civicrm_line_item',
@@ -401,6 +461,12 @@ class CRM_Price_DAO_LineItem extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Option ID'),
           'description' => ts('FK to civicrm_price_field_value'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_line_item.price_field_value_id',
           'default' => NULL,
           'table_name' => 'civicrm_line_item',
@@ -424,6 +490,12 @@ class CRM_Price_DAO_LineItem extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Financial Type ID'),
           'description' => ts('FK to Financial Type.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_line_item.financial_type_id',
           'default' => NULL,
           'table_name' => 'civicrm_line_item',
@@ -452,6 +524,12 @@ class CRM_Price_DAO_LineItem extends CRM_Core_DAO {
             20,
             2,
           ],
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_line_item.non_deductible_amount',
           'headerPattern' => '/non?.?deduct/i',
           'dataPattern' => '/^\d+(\.\d{2})?$/',
@@ -474,6 +552,12 @@ class CRM_Price_DAO_LineItem extends CRM_Core_DAO {
             20,
             2,
           ],
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_line_item.tax_amount',
           'headerPattern' => '/tax(.?am(ou)?nt)?/i',
@@ -493,6 +577,12 @@ class CRM_Price_DAO_LineItem extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Number of membership terms purchased'),
           'description' => ts('Number of terms for this membership (only supported in Order->Payment flow). If the field is NULL it means unknown and it will be assumed to be 1 during payment.create if entity_table is civicrm_membership'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_line_item.membership_num_terms',
           'default' => NULL,
           'table_name' => 'civicrm_line_item',
diff --git a/civicrm/CRM/Price/DAO/PriceField.php b/civicrm/CRM/Price/DAO/PriceField.php
index 6fcdb528a6262e677c17e160970eaf45f3185fb4..dd5f5ac21640d6655fc170fa6a54d77f80403046 100644
--- a/civicrm/CRM/Price/DAO/PriceField.php
+++ b/civicrm/CRM/Price/DAO/PriceField.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Price/PriceField.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:8d2fd9fc79d9f0b6a9aaac8c08eb4016)
+ * (GenCodeChecksum:8791160a4bdcda4cedad46724fceedda)
  */
 
 /**
@@ -236,6 +236,12 @@ class CRM_Price_DAO_PriceField extends CRM_Core_DAO {
           'title' => ts('Price Field ID'),
           'description' => ts('Price Field'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_price_field.id',
           'table_name' => 'civicrm_price_field',
           'entity' => 'PriceField',
@@ -253,6 +259,12 @@ class CRM_Price_DAO_PriceField extends CRM_Core_DAO {
           'title' => ts('Price Set ID'),
           'description' => ts('FK to civicrm_price_set'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_price_field.price_set_id',
           'table_name' => 'civicrm_price_field',
           'entity' => 'PriceField',
@@ -279,6 +291,12 @@ class CRM_Price_DAO_PriceField extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_price_field.name',
           'table_name' => 'civicrm_price_field',
           'entity' => 'PriceField',
@@ -297,6 +315,12 @@ class CRM_Price_DAO_PriceField extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_price_field.label',
           'table_name' => 'civicrm_price_field',
           'entity' => 'PriceField',
@@ -314,6 +338,12 @@ class CRM_Price_DAO_PriceField extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 12,
           'size' => CRM_Utils_Type::TWELVE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_price_field.html_type',
           'table_name' => 'civicrm_price_field',
           'entity' => 'PriceField',
@@ -334,6 +364,12 @@ class CRM_Price_DAO_PriceField extends CRM_Core_DAO {
           'title' => ts('Price Field Quantity Required?'),
           'description' => ts('Enter a quantity for this field?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_price_field.is_enter_qty',
           'default' => '0',
           'table_name' => 'civicrm_price_field',
@@ -352,6 +388,12 @@ class CRM_Price_DAO_PriceField extends CRM_Core_DAO {
           'description' => ts('Description and/or help text to display before this field.'),
           'rows' => 4,
           'cols' => 80,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_price_field.help_pre',
           'table_name' => 'civicrm_price_field',
           'entity' => 'PriceField',
@@ -369,6 +411,12 @@ class CRM_Price_DAO_PriceField extends CRM_Core_DAO {
           'description' => ts('Description and/or help text to display after this field.'),
           'rows' => 4,
           'cols' => 80,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_price_field.help_post',
           'table_name' => 'civicrm_price_field',
           'entity' => 'PriceField',
@@ -384,6 +432,12 @@ class CRM_Price_DAO_PriceField extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Order'),
           'description' => ts('Order in which the fields should appear'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_price_field.weight',
           'default' => '1',
           'table_name' => 'civicrm_price_field',
@@ -401,6 +455,12 @@ class CRM_Price_DAO_PriceField extends CRM_Core_DAO {
           'title' => ts('Price Field Show Amounts?'),
           'description' => ts('Should the price be displayed next to the label for each option?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_price_field.is_display_amounts',
           'default' => '1',
           'table_name' => 'civicrm_price_field',
@@ -417,6 +477,12 @@ class CRM_Price_DAO_PriceField extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Price Field Options per Row'),
           'description' => ts('number of options per line for checkbox and radio'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_price_field.options_per_line',
           'default' => '1',
           'table_name' => 'civicrm_price_field',
@@ -434,6 +500,12 @@ class CRM_Price_DAO_PriceField extends CRM_Core_DAO {
           'title' => ts('Price Field Is Active?'),
           'description' => ts('Is this price field active'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_price_field.is_active',
           'default' => '1',
           'table_name' => 'civicrm_price_field',
@@ -452,6 +524,12 @@ class CRM_Price_DAO_PriceField extends CRM_Core_DAO {
           'title' => ts('Price Field is Required?'),
           'description' => ts('Is this price field required (value must be > 1)'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_price_field.is_required',
           'default' => '1',
           'table_name' => 'civicrm_price_field',
@@ -468,6 +546,12 @@ class CRM_Price_DAO_PriceField extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME,
           'title' => ts('Price Field Start Date'),
           'description' => ts('If non-zero, do not show this field before the date specified'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_price_field.active_on',
           'default' => NULL,
           'table_name' => 'civicrm_price_field',
@@ -485,6 +569,12 @@ class CRM_Price_DAO_PriceField extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME,
           'title' => ts('Price Field End Date'),
           'description' => ts('If non-zero, do not show this field after the date specified'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_price_field.expire_on',
           'default' => NULL,
           'table_name' => 'civicrm_price_field',
@@ -504,6 +594,12 @@ class CRM_Price_DAO_PriceField extends CRM_Core_DAO {
           'description' => ts('Optional scripting attributes for field'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_price_field.javascript',
           'table_name' => 'civicrm_price_field',
           'entity' => 'PriceField',
@@ -519,6 +615,12 @@ class CRM_Price_DAO_PriceField extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Price Field Visibility'),
           'description' => ts('Implicit FK to civicrm_option_group with name = \'visibility\''),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_price_field.visibility_id',
           'default' => '1',
           'table_name' => 'civicrm_price_field',
diff --git a/civicrm/CRM/Price/DAO/PriceFieldValue.php b/civicrm/CRM/Price/DAO/PriceFieldValue.php
index 32d5a5954219746d2d9d3ff671ecce85d4a45f8b..2be66d7ad1e81c587022f3adc468f54108ce14c3 100644
--- a/civicrm/CRM/Price/DAO/PriceFieldValue.php
+++ b/civicrm/CRM/Price/DAO/PriceFieldValue.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Price/PriceFieldValue.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:e4f80f301563052ac60e745438a7993b)
+ * (GenCodeChecksum:35ea06d02ef79b422889f7c35508b7b6)
  */
 
 /**
@@ -249,6 +249,12 @@ class CRM_Price_DAO_PriceFieldValue extends CRM_Core_DAO {
           'title' => ts('Price Field Value ID'),
           'description' => ts('Price Field Value'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_price_field_value.id',
           'table_name' => 'civicrm_price_field_value',
           'entity' => 'PriceFieldValue',
@@ -266,6 +272,12 @@ class CRM_Price_DAO_PriceFieldValue extends CRM_Core_DAO {
           'title' => ts('Price Field ID'),
           'description' => ts('FK to civicrm_price_field'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_price_field_value.price_field_id',
           'table_name' => 'civicrm_price_field_value',
           'entity' => 'PriceFieldValue',
@@ -284,6 +296,12 @@ class CRM_Price_DAO_PriceFieldValue extends CRM_Core_DAO {
           'description' => ts('Price field option name'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_price_field_value.name',
           'default' => NULL,
           'table_name' => 'civicrm_price_field_value',
@@ -302,6 +320,12 @@ class CRM_Price_DAO_PriceFieldValue extends CRM_Core_DAO {
           'description' => ts('Price field option label'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_price_field_value.label',
           'default' => NULL,
           'table_name' => 'civicrm_price_field_value',
@@ -320,6 +344,12 @@ class CRM_Price_DAO_PriceFieldValue extends CRM_Core_DAO {
           'description' => ts('Price field option description.'),
           'rows' => 2,
           'cols' => 60,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_price_field_value.description',
           'default' => NULL,
           'table_name' => 'civicrm_price_field_value',
@@ -339,6 +369,12 @@ class CRM_Price_DAO_PriceFieldValue extends CRM_Core_DAO {
           'description' => ts('Price field option pre help text.'),
           'rows' => 2,
           'cols' => 60,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_price_field_value.help_pre',
           'default' => NULL,
           'table_name' => 'civicrm_price_field_value',
@@ -358,6 +394,12 @@ class CRM_Price_DAO_PriceFieldValue extends CRM_Core_DAO {
           'description' => ts('Price field option post field help.'),
           'rows' => 2,
           'cols' => 60,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_price_field_value.help_post',
           'default' => NULL,
           'table_name' => 'civicrm_price_field_value',
@@ -380,6 +422,12 @@ class CRM_Price_DAO_PriceFieldValue extends CRM_Core_DAO {
             18,
             9,
           ],
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_price_field_value.amount',
           'table_name' => 'civicrm_price_field_value',
           'entity' => 'PriceFieldValue',
@@ -395,6 +443,12 @@ class CRM_Price_DAO_PriceFieldValue extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Count'),
           'description' => ts('Number of participants per field option'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_price_field_value.count',
           'default' => NULL,
           'table_name' => 'civicrm_price_field_value',
@@ -412,6 +466,12 @@ class CRM_Price_DAO_PriceFieldValue extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Max Value'),
           'description' => ts('Max number of participants per field options'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_price_field_value.max_value',
           'default' => NULL,
           'table_name' => 'civicrm_price_field_value',
@@ -429,6 +489,12 @@ class CRM_Price_DAO_PriceFieldValue extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Order'),
           'description' => ts('Order in which the field options should appear'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_price_field_value.weight',
           'default' => '1',
           'table_name' => 'civicrm_price_field_value',
@@ -445,6 +511,12 @@ class CRM_Price_DAO_PriceFieldValue extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Membership Type ID'),
           'description' => ts('FK to Membership Type'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_price_field_value.membership_type_id',
           'default' => NULL,
           'table_name' => 'civicrm_price_field_value',
@@ -463,6 +535,12 @@ class CRM_Price_DAO_PriceFieldValue extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Membership Num Terms'),
           'description' => ts('Number of terms for this membership'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_price_field_value.membership_num_terms',
           'default' => NULL,
           'table_name' => 'civicrm_price_field_value',
@@ -481,6 +559,12 @@ class CRM_Price_DAO_PriceFieldValue extends CRM_Core_DAO {
           'title' => ts('Is Default Price Field Option?'),
           'description' => ts('Is this default price field option'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_price_field_value.is_default',
           'default' => '0',
           'table_name' => 'civicrm_price_field_value',
@@ -499,6 +583,12 @@ class CRM_Price_DAO_PriceFieldValue extends CRM_Core_DAO {
           'title' => ts('Price Field Value is Active'),
           'description' => ts('Is this price field value active'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_price_field_value.is_active',
           'default' => '1',
           'table_name' => 'civicrm_price_field_value',
@@ -516,6 +606,12 @@ class CRM_Price_DAO_PriceFieldValue extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Financial Type ID'),
           'description' => ts('FK to Financial Type.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_price_field_value.financial_type_id',
           'default' => NULL,
           'table_name' => 'civicrm_price_field_value',
@@ -544,6 +640,12 @@ class CRM_Price_DAO_PriceFieldValue extends CRM_Core_DAO {
             20,
             2,
           ],
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_price_field_value.non_deductible_amount',
           'headerPattern' => '/non?.?deduct/i',
           'dataPattern' => '/^\d+(\.\d{2})?$/',
@@ -562,6 +664,12 @@ class CRM_Price_DAO_PriceFieldValue extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Price Field Option Visibility'),
           'description' => ts('Implicit FK to civicrm_option_group with name = \'visibility\''),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_price_field_value.visibility_id',
           'default' => '1',
           'table_name' => 'civicrm_price_field_value',
diff --git a/civicrm/CRM/Price/DAO/PriceSet.php b/civicrm/CRM/Price/DAO/PriceSet.php
index 6d0f250a761c1cc2f95c6c2b6212d8975169ba19..609218b7508882dcb60e64341a599fda84c57776 100644
--- a/civicrm/CRM/Price/DAO/PriceSet.php
+++ b/civicrm/CRM/Price/DAO/PriceSet.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Price/PriceSet.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:244a7b5a3ad1505fcbbb3f66d3189ab0)
+ * (GenCodeChecksum:23b87e351bab2f2cefd04fd6ea4a6ee5)
  */
 
 /**
@@ -203,6 +203,12 @@ class CRM_Price_DAO_PriceSet extends CRM_Core_DAO {
           'title' => ts('Price Set'),
           'description' => ts('Price Set'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_price_set.id',
           'table_name' => 'civicrm_price_set',
           'entity' => 'PriceSet',
@@ -220,6 +226,12 @@ class CRM_Price_DAO_PriceSet extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Domain ID'),
           'description' => ts('Which Domain is this price-set for'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_price_set.domain_id',
           'table_name' => 'civicrm_price_set',
           'entity' => 'PriceSet',
@@ -245,6 +257,12 @@ class CRM_Price_DAO_PriceSet extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_price_set.name',
           'table_name' => 'civicrm_price_set',
           'entity' => 'PriceSet',
@@ -264,6 +282,12 @@ class CRM_Price_DAO_PriceSet extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_price_set.title',
           'table_name' => 'civicrm_price_set',
           'entity' => 'PriceSet',
@@ -280,6 +304,12 @@ class CRM_Price_DAO_PriceSet extends CRM_Core_DAO {
           'title' => ts('Price Set Is Active?'),
           'description' => ts('Is this price set active'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_price_set.is_active',
           'default' => '1',
           'table_name' => 'civicrm_price_set',
@@ -299,6 +329,12 @@ class CRM_Price_DAO_PriceSet extends CRM_Core_DAO {
           'description' => ts('Description and/or help text to display before fields in form.'),
           'rows' => 4,
           'cols' => 80,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_price_set.help_pre',
           'table_name' => 'civicrm_price_set',
           'entity' => 'PriceSet',
@@ -316,6 +352,12 @@ class CRM_Price_DAO_PriceSet extends CRM_Core_DAO {
           'description' => ts('Description and/or help text to display after fields in form.'),
           'rows' => 4,
           'cols' => 80,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_price_set.help_post',
           'table_name' => 'civicrm_price_set',
           'entity' => 'PriceSet',
@@ -333,6 +375,12 @@ class CRM_Price_DAO_PriceSet extends CRM_Core_DAO {
           'description' => ts('Optional Javascript script function(s) included on the form with this price_set. Can be used for conditional'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_price_set.javascript',
           'table_name' => 'civicrm_price_set',
           'entity' => 'PriceSet',
@@ -351,6 +399,12 @@ class CRM_Price_DAO_PriceSet extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_price_set.extends',
           'table_name' => 'civicrm_price_set',
           'entity' => 'PriceSet',
@@ -371,6 +425,12 @@ class CRM_Price_DAO_PriceSet extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Financial Type ID'),
           'description' => ts('FK to Financial Type(for membership price sets only).'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_price_set.financial_type_id',
           'default' => NULL,
           'table_name' => 'civicrm_price_set',
@@ -395,6 +455,12 @@ class CRM_Price_DAO_PriceSet extends CRM_Core_DAO {
           'title' => ts('Is Price Set Quick Config?'),
           'description' => ts('Is set if edited on Contribution or Event Page rather than through Manage Price Sets'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_price_set.is_quick_config',
           'default' => '0',
           'table_name' => 'civicrm_price_set',
@@ -412,6 +478,12 @@ class CRM_Price_DAO_PriceSet extends CRM_Core_DAO {
           'title' => ts('Price Set Is Reserved'),
           'description' => ts('Is this a predefined system price set  (i.e. it can not be deleted, edited)?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_price_set.is_reserved',
           'default' => '0',
           'table_name' => 'civicrm_price_set',
@@ -432,6 +504,12 @@ class CRM_Price_DAO_PriceSet extends CRM_Core_DAO {
             20,
             2,
           ],
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_price_set.min_amount',
           'default' => '0.0',
           'table_name' => 'civicrm_price_set',
diff --git a/civicrm/CRM/Price/DAO/PriceSetEntity.php b/civicrm/CRM/Price/DAO/PriceSetEntity.php
index 7c435281a590bd86f836dfa209b19603ff96ecac..98fb308c39b1eb4cda023c59e606a2de7a47249c 100644
--- a/civicrm/CRM/Price/DAO/PriceSetEntity.php
+++ b/civicrm/CRM/Price/DAO/PriceSetEntity.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Price/PriceSetEntity.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:0f2e59643e70edbb600fb388e27093a3)
+ * (GenCodeChecksum:8965ad7e7c8761ea623e96c7908b0614)
  */
 
 /**
@@ -115,6 +115,12 @@ class CRM_Price_DAO_PriceSetEntity extends CRM_Core_DAO {
           'title' => ts('Price Set Entity ID'),
           'description' => ts('Price Set Entity'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_price_set_entity.id',
           'table_name' => 'civicrm_price_set_entity',
           'entity' => 'PriceSetEntity',
@@ -134,6 +140,12 @@ class CRM_Price_DAO_PriceSetEntity extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_price_set_entity.entity_table',
           'table_name' => 'civicrm_price_set_entity',
           'entity' => 'PriceSetEntity',
@@ -147,6 +159,12 @@ class CRM_Price_DAO_PriceSetEntity extends CRM_Core_DAO {
           'title' => ts('Entity ID'),
           'description' => ts('Item in table'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_price_set_entity.entity_id',
           'table_name' => 'civicrm_price_set_entity',
           'entity' => 'PriceSetEntity',
@@ -160,6 +178,12 @@ class CRM_Price_DAO_PriceSetEntity extends CRM_Core_DAO {
           'title' => ts('Price Set ID'),
           'description' => ts('price set being used'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_price_set_entity.price_set_id',
           'table_name' => 'civicrm_price_set_entity',
           'entity' => 'PriceSetEntity',
diff --git a/civicrm/CRM/Price/Form/Option.php b/civicrm/CRM/Price/Form/Option.php
index 5aa3b3687b141c430a2c138eda6c997c3c45129e..a007681e3aa5d7100c6964662185326cf31b335a 100644
--- a/civicrm/CRM/Price/Form/Option.php
+++ b/civicrm/CRM/Price/Form/Option.php
@@ -320,14 +320,12 @@ class CRM_Price_Form_Option extends CRM_Core_Form {
         'label', 'id'
       );
 
-      if (CRM_Price_BAO_PriceFieldValue::del($this->_oid)) {
-        CRM_Core_Session::setStatus(ts('%1 option has been deleted.', [1 => $label]), ts('Record Deleted'), 'success');
-      }
+      CRM_Price_BAO_PriceFieldValue::deleteRecord(['id' => $this->_oid]);
+      CRM_Core_Session::setStatus(ts('%1 option has been deleted.', [1 => $label]), ts('Record Deleted'), 'success');
       return NULL;
     }
     else {
       $params = $this->controller->exportValues('Option');
-      $fieldLabel = CRM_Core_DAO::getFieldValue('CRM_Price_DAO_PriceField', $this->_fid, 'label');
 
       foreach ($this->_moneyFields as $field) {
         $params[$field] = CRM_Utils_Rule::cleanMoney(trim($params[$field]));
diff --git a/civicrm/CRM/Price/Form/Set.php b/civicrm/CRM/Price/Form/Set.php
index 88a24f76a48ce8820e24ac5aab92645967923630..9bf062edb598e392fadc2638a8408e375c3624ef 100644
--- a/civicrm/CRM/Price/Form/Set.php
+++ b/civicrm/CRM/Price/Form/Set.php
@@ -45,21 +45,6 @@ class CRM_Price_Form_Set extends CRM_Core_Form {
     return 'PriceSet';
   }
 
-  /**
-   * Fields for the entity to be assigned to the template.
-   *
-   * Fields may have keys
-   *  - name (required to show in tpl from the array)
-   *  - description (optional, will appear below the field)
-   *  - not-auto-addable - this class will not attempt to add the field using addField.
-   *    (this will be automatically set if the field does not have html in it's metadata
-   *    or is not a core field on the form's entity).
-   *  - help (option) add help to the field - e.g ['id' => 'id-source', 'file' => 'CRM/Contact/Form/Contact']]
-   *  - template - use a field specific template to render this field
-   * @var array
-   */
-  protected $entityFields = [];
-
   /**
    * Set entity fields to be assigned to the form.
    */
@@ -76,13 +61,6 @@ class CRM_Price_Form_Set extends CRM_Core_Form {
     ];
   }
 
-  /**
-   * Deletion message to be assigned to the form.
-   *
-   * @var string
-   */
-  protected $deleteMessage;
-
   /**
    * Set the delete message.
    *
diff --git a/civicrm/CRM/Profile/Form.php b/civicrm/CRM/Profile/Form.php
index ac8c3d14169b699a79f07536aeb101501b2a0232..3c2e669fb6488c28cb5dce1ff16de5c81072529b 100644
--- a/civicrm/CRM/Profile/Form.php
+++ b/civicrm/CRM/Profile/Form.php
@@ -61,11 +61,6 @@ class CRM_Profile_Form extends CRM_Core_Form {
    */
   public $_grid;
 
-  /**
-   * Name of button for saving matching contacts.
-   * @var string
-   */
-  protected $_duplicateButtonName;
   /**
    * The title of the category we are editing.
    *
@@ -206,7 +201,7 @@ class CRM_Profile_Form extends CRM_Core_Form {
         $form->_id = $ids[0];
       }
       else {
-        if ($form->_context == 'dialog') {
+        if ($form->isEntityReferenceContactCreateMode()) {
           $contactLinks = CRM_Contact_BAO_Contact_Utils::formatContactIDSToLinks($ids, TRUE, TRUE);
 
           $duplicateContactsLinks = '<div class="matching-contacts-found">';
@@ -249,9 +244,10 @@ class CRM_Profile_Form extends CRM_Core_Form {
 
           $errors['_qf_default'] = $duplicateContactsLinks;
 
-          // let smarty know that there are duplicates
-          $template = CRM_Core_Smarty::singleton();
-          $template->assign('isDuplicate', 1);
+          // The button 'Save Matching Contact' is added in buildForm
+          // but we only decide here whether ot not to show it - ie
+          // if validation failed due to there being duplicates.
+          CRM_Core_Smarty::singleton()->assign('showSaveDuplicateButton', 1);
         }
         else {
           $errors['_qf_default'] = ts('A record already exists with the same information.');
@@ -261,6 +257,18 @@ class CRM_Profile_Form extends CRM_Core_Form {
     return $errors;
   }
 
+  /**
+   * Is this being called from an entity reference field.
+   *
+   * E.g clicking on 'New Organization' from the employer field
+   * would create a link with the context = 'dialog' in the url.
+   *
+   * @return bool
+   */
+  public function isEntityReferenceContactCreateMode(): bool {
+    return $this->_context === 'dialog';
+  }
+
   /**
    * Explicitly declare the entity api name.
    */
@@ -329,7 +337,6 @@ class CRM_Profile_Form extends CRM_Core_Form {
         CRM_Core_Error::statusBounce(ts('Proper action not specified for this custom value record profile'));
       }
     }
-    $this->_duplicateButtonName = $this->getButtonName('upload', 'duplicate');
 
     $gids = explode(',', (CRM_Utils_Request::retrieve('gid', 'String', CRM_Core_DAO::$_nullObject, FALSE, 0) ?? ''));
 
@@ -897,10 +904,14 @@ class CRM_Profile_Form extends CRM_Core_Form {
       $this->freeze();
     }
 
-    if ($this->_context == 'dialog') {
+    // Assign FALSE, here - this is overwritten during form validation
+    // if duplicates are found during submit.
+    CRM_Core_Smarty::singleton()->assign('showSaveDuplicateButton', FALSE);
+
+    if ($this->isEntityReferenceContactCreateMode()) {
       $this->addElement(
         'xbutton',
-        $this->_duplicateButtonName,
+        $this->getButtonName('upload', 'duplicate'),
         ts('Save Matching Contact'),
         [
           'type' => 'submit',
diff --git a/civicrm/CRM/Profile/Form/Edit.php b/civicrm/CRM/Profile/Form/Edit.php
index 4916638d5e56de45ee5c7b7bf39d9698ad409b2c..f58da43349d87cd9dd720210d1a9c3ce4cad19c5 100644
--- a/civicrm/CRM/Profile/Form/Edit.php
+++ b/civicrm/CRM/Profile/Form/Edit.php
@@ -39,9 +39,6 @@ class CRM_Profile_Form_Edit extends CRM_Profile_Form {
   public function preProcess() {
     $this->_mode = CRM_Profile_Form::MODE_CREATE;
 
-    $this->_onPopupClose = CRM_Utils_Request::retrieve('onPopupClose', 'String', $this);
-    $this->assign('onPopupClose', $this->_onPopupClose);
-
     //set the context for the profile
     $this->_context = CRM_Utils_Request::retrieve('context', 'Alphanumeric', $this);
 
diff --git a/civicrm/CRM/Profile/Selector/Listings.php b/civicrm/CRM/Profile/Selector/Listings.php
index 6aefb13117cb60b592e12faee168083d136ab970..8a14a5bf4d4179dc72ac8706ea0d8987dd2315cd 100644
--- a/civicrm/CRM/Profile/Selector/Listings.php
+++ b/civicrm/CRM/Profile/Selector/Listings.php
@@ -488,7 +488,7 @@ class CRM_Profile_Selector_Listings extends CRM_Core_Selector_Base implements CR
     }
     $links = self::links($this->_map, $this->_editLink, $this->_linkToUF, $this->_profileIds);
 
-    $locationTypes = CRM_Core_PseudoConstant::get('CRM_Core_DAO_Address', 'location_type_id');
+    $locationTypes = CRM_Core_PseudoConstant::get('CRM_Core_DAO_Address', 'location_type_id', ['labelColumn' => 'name']);
 
     $names = [];
     static $skipFields = ['group', 'tag'];
diff --git a/civicrm/CRM/Queue/DAO/Queue.php b/civicrm/CRM/Queue/DAO/Queue.php
index 502e92bce4aade9b8aa6ed369214c8452bf13189..7c741e0438feaa0fc716e233b982db614ae61977 100644
--- a/civicrm/CRM/Queue/DAO/Queue.php
+++ b/civicrm/CRM/Queue/DAO/Queue.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Queue/Queue.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:3acd90f5bb8a0a19a9ee63952562c843)
+ * (GenCodeChecksum:6ce8f7dd63f7ef581ed8df26d5839941)
  */
 
 /**
@@ -158,6 +158,12 @@ class CRM_Queue_DAO_Queue extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('System Queue ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_queue.id',
           'table_name' => 'civicrm_queue',
           'entity' => 'Queue',
@@ -177,6 +183,12 @@ class CRM_Queue_DAO_Queue extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_queue.name',
           'table_name' => 'civicrm_queue',
           'entity' => 'Queue',
@@ -195,6 +207,12 @@ class CRM_Queue_DAO_Queue extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_queue.type',
           'table_name' => 'civicrm_queue',
           'entity' => 'Queue',
@@ -216,6 +234,12 @@ class CRM_Queue_DAO_Queue extends CRM_Core_DAO {
           'required' => FALSE,
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_queue.runner',
           'table_name' => 'civicrm_queue',
           'entity' => 'Queue',
@@ -232,6 +256,12 @@ class CRM_Queue_DAO_Queue extends CRM_Core_DAO {
           'title' => ts('Batch Limit'),
           'description' => ts('Maximum number of items in a batch.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_queue.batch_limit',
           'default' => '1',
           'table_name' => 'civicrm_queue',
@@ -249,6 +279,12 @@ class CRM_Queue_DAO_Queue extends CRM_Core_DAO {
           'title' => ts('Lease Time'),
           'description' => ts('When claiming an item (or batch of items) for work, how long should the item(s) be reserved. (Seconds)'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_queue.lease_time',
           'default' => '3600',
           'table_name' => 'civicrm_queue',
@@ -266,6 +302,12 @@ class CRM_Queue_DAO_Queue extends CRM_Core_DAO {
           'title' => ts('Retry Limit'),
           'description' => ts('Number of permitted retries. Set to zero (0) to disable.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_queue.retry_limit',
           'default' => '0',
           'table_name' => 'civicrm_queue',
@@ -283,6 +325,12 @@ class CRM_Queue_DAO_Queue extends CRM_Core_DAO {
           'title' => ts('Retry Interval'),
           'description' => ts('Number of seconds to wait before retrying a failed execution.'),
           'required' => FALSE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_queue.retry_interval',
           'table_name' => 'civicrm_queue',
           'entity' => 'Queue',
@@ -301,6 +349,12 @@ class CRM_Queue_DAO_Queue extends CRM_Core_DAO {
           'required' => FALSE,
           'maxlength' => 16,
           'size' => CRM_Utils_Type::TWELVE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_queue.status',
           'default' => 'active',
           'table_name' => 'civicrm_queue',
@@ -323,6 +377,12 @@ class CRM_Queue_DAO_Queue extends CRM_Core_DAO {
           'required' => FALSE,
           'maxlength' => 16,
           'size' => CRM_Utils_Type::TWELVE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_queue.error',
           'table_name' => 'civicrm_queue',
           'entity' => 'Queue',
@@ -342,6 +402,12 @@ class CRM_Queue_DAO_Queue extends CRM_Core_DAO {
           'title' => ts('Is Template'),
           'description' => ts('Is this a template configuration (for use by other/future queues)?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_queue.is_template',
           'default' => '0',
           'table_name' => 'civicrm_queue',
diff --git a/civicrm/CRM/Queue/DAO/QueueItem.php b/civicrm/CRM/Queue/DAO/QueueItem.php
index 18c9f53215850a8dcad293299e8eb928370ae7bd..d76c3e8b5967cf8c2ef81be1c10ee59082f11469 100644
--- a/civicrm/CRM/Queue/DAO/QueueItem.php
+++ b/civicrm/CRM/Queue/DAO/QueueItem.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Queue/QueueItem.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:66a10bb763c83fb0f98f5510b2e708af)
+ * (GenCodeChecksum:657f876ba4b87edaebee0e3eb1d346a1)
  */
 
 /**
@@ -120,6 +120,12 @@ class CRM_Queue_DAO_QueueItem extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Queue Item ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_queue_item.id',
           'table_name' => 'civicrm_queue_item',
           'entity' => 'QueueItem',
@@ -139,6 +145,12 @@ class CRM_Queue_DAO_QueueItem extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_queue_item.queue_name',
           'table_name' => 'civicrm_queue_item',
           'entity' => 'QueueItem',
@@ -154,6 +166,12 @@ class CRM_Queue_DAO_QueueItem extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Order'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_queue_item.weight',
           'table_name' => 'civicrm_queue_item',
           'entity' => 'QueueItem',
@@ -170,6 +188,12 @@ class CRM_Queue_DAO_QueueItem extends CRM_Core_DAO {
           'title' => ts('Submit Time'),
           'description' => ts('date on which this item was submitted to the queue'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_queue_item.submit_time',
           'table_name' => 'civicrm_queue_item',
           'entity' => 'QueueItem',
@@ -187,6 +211,12 @@ class CRM_Queue_DAO_QueueItem extends CRM_Core_DAO {
           'title' => ts('Release Time'),
           'description' => ts('date on which this job becomes available; null if ASAP'),
           'required' => FALSE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_queue_item.release_time',
           'default' => NULL,
           'table_name' => 'civicrm_queue_item',
@@ -205,6 +235,12 @@ class CRM_Queue_DAO_QueueItem extends CRM_Core_DAO {
           'title' => ts('Run Count'),
           'description' => ts('Number of times execution has been attempted.'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_queue_item.run_count',
           'default' => '0',
           'table_name' => 'civicrm_queue_item',
@@ -221,6 +257,12 @@ class CRM_Queue_DAO_QueueItem extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_LONGTEXT,
           'title' => ts('Queue item data'),
           'description' => ts('Serialized queue data'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_queue_item.data',
           'table_name' => 'civicrm_queue_item',
           'entity' => 'QueueItem',
diff --git a/civicrm/CRM/Report/BAO/ReportInstance.php b/civicrm/CRM/Report/BAO/ReportInstance.php
index 930b44aad15476d76f5b73e22b53b82af44d942a..1554cc0cce250d3b0ab4b2779b072597f664b55a 100644
--- a/civicrm/CRM/Report/BAO/ReportInstance.php
+++ b/civicrm/CRM/Report/BAO/ReportInstance.php
@@ -223,6 +223,7 @@ class CRM_Report_BAO_ReportInstance extends CRM_Report_DAO_ReportInstance implem
    * @return mixed
    */
   public static function del($id = NULL) {
+    CRM_Core_Error::deprecatedFunctionWarning('deleteRecord');
     self::deleteRecord(['id' => $id]);
     return 1;
   }
@@ -325,7 +326,7 @@ class CRM_Report_BAO_ReportInstance extends CRM_Report_DAO_ReportInstance implem
       CRM_Core_Error::statusBounce($statusMessage, $bounceTo);
     }
 
-    CRM_Report_BAO_ReportInstance::del($instanceId);
+    CRM_Report_BAO_ReportInstance::deleteRecord(['id' => $instanceId]);
 
     CRM_Core_Session::setStatus(ts('Selected report has been deleted.'), ts('Deleted'), 'success');
     if ($successRedirect) {
diff --git a/civicrm/CRM/Report/DAO/ReportInstance.php b/civicrm/CRM/Report/DAO/ReportInstance.php
index 5324e6368275b804e29fb1ecb316ff712399ff43..7b119f564344497177e245854bf04016e5ada92f 100644
--- a/civicrm/CRM/Report/DAO/ReportInstance.php
+++ b/civicrm/CRM/Report/DAO/ReportInstance.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/Report/ReportInstance.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:98200ef302a3a3d45cdc381da6042fd5)
+ * (GenCodeChecksum:fc3071b4f3773306b8688f3a0e3c78be)
  */
 
 /**
@@ -283,6 +283,12 @@ class CRM_Report_DAO_ReportInstance extends CRM_Core_DAO {
           'title' => ts('Report Instance ID'),
           'description' => ts('Report Instance ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_report_instance.id',
           'table_name' => 'civicrm_report_instance',
           'entity' => 'ReportInstance',
@@ -300,6 +306,12 @@ class CRM_Report_DAO_ReportInstance extends CRM_Core_DAO {
           'title' => ts('Domain ID'),
           'description' => ts('Which Domain is this instance for'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_report_instance.domain_id',
           'table_name' => 'civicrm_report_instance',
           'entity' => 'ReportInstance',
@@ -323,6 +335,12 @@ class CRM_Report_DAO_ReportInstance extends CRM_Core_DAO {
           'description' => ts('Report Instance Title.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_report_instance.title',
           'table_name' => 'civicrm_report_instance',
           'entity' => 'ReportInstance',
@@ -341,6 +359,12 @@ class CRM_Report_DAO_ReportInstance extends CRM_Core_DAO {
           'required' => TRUE,
           'maxlength' => 512,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_report_instance.report_id',
           'table_name' => 'civicrm_report_instance',
           'entity' => 'ReportInstance',
@@ -358,6 +382,12 @@ class CRM_Report_DAO_ReportInstance extends CRM_Core_DAO {
           'description' => ts('when combined with report_id/template uniquely identifies the instance'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_report_instance.name',
           'table_name' => 'civicrm_report_instance',
           'entity' => 'ReportInstance',
@@ -375,6 +405,12 @@ class CRM_Report_DAO_ReportInstance extends CRM_Core_DAO {
           'description' => ts('arguments that are passed in the url when invoking the instance'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_report_instance.args',
           'table_name' => 'civicrm_report_instance',
           'entity' => 'ReportInstance',
@@ -392,6 +428,12 @@ class CRM_Report_DAO_ReportInstance extends CRM_Core_DAO {
           'description' => ts('Report Instance description.'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_report_instance.description',
           'table_name' => 'civicrm_report_instance',
           'entity' => 'ReportInstance',
@@ -409,6 +451,12 @@ class CRM_Report_DAO_ReportInstance extends CRM_Core_DAO {
           'description' => ts('permission required to be able to run this instance'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_report_instance.permission',
           'table_name' => 'civicrm_report_instance',
           'entity' => 'ReportInstance',
@@ -426,6 +474,12 @@ class CRM_Report_DAO_ReportInstance extends CRM_Core_DAO {
           'description' => ts('role required to be able to run this instance'),
           'maxlength' => 1024,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_report_instance.grouprole',
           'table_name' => 'civicrm_report_instance',
           'entity' => 'ReportInstance',
@@ -441,6 +495,12 @@ class CRM_Report_DAO_ReportInstance extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_LONGTEXT,
           'title' => ts('Submitted Form Values'),
           'description' => ts('Submitted form values for this report'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_report_instance.form_values',
           'export' => TRUE,
@@ -457,6 +517,12 @@ class CRM_Report_DAO_ReportInstance extends CRM_Core_DAO {
           'title' => ts('Report Instance is Active'),
           'description' => ts('Is this entry active?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_report_instance.is_active',
           'default' => '1',
           'table_name' => 'civicrm_report_instance',
@@ -474,6 +540,12 @@ class CRM_Report_DAO_ReportInstance extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Created By Contact ID'),
           'description' => ts('FK to contact table.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_report_instance.created_id',
           'table_name' => 'civicrm_report_instance',
           'entity' => 'ReportInstance',
@@ -490,6 +562,12 @@ class CRM_Report_DAO_ReportInstance extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Owned By Contact ID'),
           'description' => ts('FK to contact table.'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_report_instance.owner_id',
           'table_name' => 'civicrm_report_instance',
           'entity' => 'ReportInstance',
@@ -508,6 +586,12 @@ class CRM_Report_DAO_ReportInstance extends CRM_Core_DAO {
           'description' => ts('Subject of email'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_report_instance.email_subject',
           'table_name' => 'civicrm_report_instance',
           'entity' => 'ReportInstance',
@@ -523,6 +607,12 @@ class CRM_Report_DAO_ReportInstance extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('Email Report Instance To'),
           'description' => ts('comma-separated list of email addresses to send the report to'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_report_instance.email_to',
           'table_name' => 'civicrm_report_instance',
           'entity' => 'ReportInstance',
@@ -538,6 +628,12 @@ class CRM_Report_DAO_ReportInstance extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('cc Email Report Instance To'),
           'description' => ts('comma-separated list of email addresses to send the report to'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_report_instance.email_cc',
           'table_name' => 'civicrm_report_instance',
           'entity' => 'ReportInstance',
@@ -555,6 +651,12 @@ class CRM_Report_DAO_ReportInstance extends CRM_Core_DAO {
           'description' => ts('comma-separated list of email addresses to send the report to'),
           'rows' => 4,
           'cols' => 60,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_report_instance.header',
           'table_name' => 'civicrm_report_instance',
           'entity' => 'ReportInstance',
@@ -572,6 +674,12 @@ class CRM_Report_DAO_ReportInstance extends CRM_Core_DAO {
           'description' => ts('comma-separated list of email addresses to send the report to'),
           'rows' => 4,
           'cols' => 60,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_report_instance.footer',
           'table_name' => 'civicrm_report_instance',
           'entity' => 'ReportInstance',
@@ -587,6 +695,12 @@ class CRM_Report_DAO_ReportInstance extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Navigation ID'),
           'description' => ts('FK to navigation ID'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_report_instance.navigation_id',
           'export' => TRUE,
@@ -605,6 +719,12 @@ class CRM_Report_DAO_ReportInstance extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Drilldown Report ID'),
           'description' => ts('FK to instance ID drilldown to'),
+          'usage' => [
+            'import' => TRUE,
+            'export' => TRUE,
+            'duplicate_matching' => TRUE,
+            'token' => FALSE,
+          ],
           'import' => TRUE,
           'where' => 'civicrm_report_instance.drilldown_id',
           'export' => TRUE,
@@ -623,6 +743,12 @@ class CRM_Report_DAO_ReportInstance extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_BOOLEAN,
           'title' => ts('Instance is Reserved'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_report_instance.is_reserved',
           'default' => '0',
           'table_name' => 'civicrm_report_instance',
diff --git a/civicrm/CRM/Report/Form.php b/civicrm/CRM/Report/Form.php
index ee3cada4ec1299b255997727f51780689dea9640..d7ead6275a863374c1abb940ad1e2f12da9d916a 100644
--- a/civicrm/CRM/Report/Form.php
+++ b/civicrm/CRM/Report/Form.php
@@ -9,6 +9,8 @@
  +--------------------------------------------------------------------+
  */
 
+use Civi\Report\OutputHandlerFactory;
+
 /**
  * Class CRM_Report_Form
  */
@@ -248,9 +250,13 @@ class CRM_Report_Form extends CRM_Core_Form {
   protected $_add2groupSupported = TRUE;
   protected $_groups = NULL;
   protected $_grandFlag = FALSE;
-  protected $_rowsFound = NULL;
+  protected $_rowsFound;
+
+  /**
+   * @var array
+   */
   protected $_selectAliases = [];
-  protected $_rollup = NULL;
+  protected $_rollup;
 
   /**
    * Table containing list of contact IDs within the group filter.
@@ -522,9 +528,8 @@ class CRM_Report_Form extends CRM_Core_Form {
    *
    * The sql in the report is stored in this variable in order to be returned to api & test calls.
    *
-   * @var string
+   * @var array
    */
-
   protected $sqlArray;
 
   /**
@@ -547,6 +552,11 @@ class CRM_Report_Form extends CRM_Core_Form {
    */
   protected $_charts = [];
 
+  /**
+   * @var \Civi\Report\OutputHandlerInterface
+   */
+  private $outputHandler;
+
   /**
    * Get the number of rows to show
    * @return int
@@ -686,7 +696,7 @@ class CRM_Report_Form extends CRM_Core_Form {
 
       $this->setOutputMode();
 
-      if ($this->_outputMode == 'copy') {
+      if ($this->_outputMode === 'copy') {
         $this->_createNew = TRUE;
         $this->_params = $this->_formValues;
         $this->_params['view_mode'] = 'criteria';
@@ -1510,7 +1520,7 @@ class CRM_Report_Form extends CRM_Core_Form {
    *
    * @param string $sql
    */
-  public function addToDeveloperTab($sql) {
+  public function addToDeveloperTab(string $sql): void {
     if (!CRM_Core_Permission::check('view report sql')) {
       return;
     }
@@ -1525,7 +1535,7 @@ class CRM_Report_Form extends CRM_Core_Form {
     ];
 
     $this->assignTabs();
-    $this->sqlFormattedArray = [];
+    $sqlFormattedArray = [];
     $this->sqlArray[] = $sql;
     foreach ($this->sqlArray as $sql) {
       foreach (['LEFT JOIN'] as $term) {
@@ -1534,8 +1544,8 @@ class CRM_Report_Form extends CRM_Core_Form {
       foreach (['FROM', 'WHERE', 'GROUP BY', 'ORDER BY', 'LIMIT', ';'] as $term) {
         $sql = str_replace($term, '<br><br>' . $term, ($sql ?? ''));
       }
-      $this->sqlFormattedArray[] = $sql;
-      $this->assign('sql', implode(';<br><br><br><br>', $this->sqlFormattedArray));
+      $sqlFormattedArray[] = $sql;
+      $this->assign('sql', implode(';<br><br><br><br>', $sqlFormattedArray));
     }
     $this->assign('sqlModes', $sqlModes = CRM_Utils_SQL::getSqlModes());
 
@@ -3699,7 +3709,7 @@ WHERE cg.extends IN ('" . implode("','", $this->_customGroupExtends) . "') AND
         $this->_limit = " LIMIT {$this->_offsetValue}, {$this->_limitValue} ";
       }
       else {
-        $this->_limit = " LIMIT " . $this->_limitValue;
+        $this->_limit = ' LIMIT ' . $this->_limitValue;
       }
     }
   }
@@ -3990,8 +4000,8 @@ WHERE cg.extends IN ('" . implode("','", $this->_customGroupExtends) . "') AND
     }
     $customGroupWhere = '';
     if (!empty($permCustomGroupIds)) {
-      $customGroupWhere = "cg.id IN (" . implode(',', $permCustomGroupIds) .
-        ") AND";
+      $customGroupWhere = 'cg.id IN (' . implode(',', $permCustomGroupIds) .
+        ') AND';
     }
     $sql = "
 SELECT cg.table_name, cg.title, cg.extends, cf.id as cf_id, cf.label,
@@ -5359,7 +5369,7 @@ LEFT JOIN civicrm_contact {$field['alias']} ON {$field['alias']}.id = {$this->_a
    * @param string $tableName
    * @param string $fieldName
    * @param array $field
-   * @param string $select
+   * @param array $select
    * @return array
    */
   protected function addBasicFieldToSelect($tableName, $fieldName, $field, $select) {
@@ -5468,6 +5478,7 @@ LEFT JOIN civicrm_contact {$field['alias']} ON {$field['alias']}.id = {$this->_a
         'title' => $options['prefix_label'] . ts('Contact Name (in sort format)'),
         'is_fields' => TRUE,
         'is_filters' => TRUE,
+        'operatorType' => CRM_Report_Form::OP_STRING,
         'is_order_bys' => TRUE,
       ],
       $options['prefix'] . 'id' => [
@@ -5479,12 +5490,7 @@ LEFT JOIN civicrm_contact {$field['alias']} ON {$field['alias']}.id = {$this->_a
         'is_group_bys' => TRUE,
         'is_fields' => TRUE,
         'is_filters' => TRUE,
-      ],
-      $options['prefix'] . 'external_identifier' => [
-        'name' => 'external_identifier',
-        'title' => $options['prefix_label'] . ts('External ID'),
-        'type' => CRM_Utils_Type::T_INT,
-        'is_fields' => TRUE,
+        'operatorType' => CRM_Report_Form::OP_STRING,
       ],
       $options['prefix'] . 'contact_type' => [
         'title' => $options['prefix_label'] . ts('Contact Type'),
@@ -5510,6 +5516,12 @@ LEFT JOIN civicrm_contact {$field['alias']} ON {$field['alias']}.id = {$this->_a
         'type' => CRM_Utils_Type::T_BOOLEAN,
         'is_fields' => FALSE,
         'is_filters' => TRUE,
+        'operatorType' => CRM_Report_Form::OP_SELECT,
+        'options' => [
+          '' => ts('Any'),
+          '0' => ts('No'),
+          '1' => ts('Yes'),
+        ],
         'is_group_bys' => FALSE,
       ],
       $options['prefix'] . 'external_identifier' => [
@@ -5517,6 +5529,7 @@ LEFT JOIN civicrm_contact {$field['alias']} ON {$field['alias']}.id = {$this->_a
         'name' => 'external_identifier',
         'is_fields' => TRUE,
         'is_filters' => FALSE,
+        'operatorType' => CRM_Report_Form::OP_STRING,
         'is_group_bys' => FALSE,
         'is_order_bys' => TRUE,
       ],
@@ -5525,6 +5538,7 @@ LEFT JOIN civicrm_contact {$field['alias']} ON {$field['alias']}.id = {$this->_a
         'name' => 'preferred_language',
         'is_fields' => TRUE,
         'is_filters' => TRUE,
+        'operatorType' => CRM_Report_Form::OP_STRING,
         'is_group_bys' => TRUE,
         'is_order_bys' => TRUE,
       ],
@@ -5534,6 +5548,7 @@ LEFT JOIN civicrm_contact {$field['alias']} ON {$field['alias']}.id = {$this->_a
         'name' => 'preferred_communication_method',
         'is_fields' => TRUE,
         'is_filters' => FALSE,
+        'operatorType' => CRM_Report_Form::OP_MULTISELECT,
         'is_group_bys' => FALSE,
         'is_order_bys' => FALSE,
       ],
@@ -5627,6 +5642,11 @@ LEFT JOIN civicrm_contact {$field['alias']} ON {$field['alias']}.id = {$this->_a
         'type' => CRM_Utils_Type::T_BOOLEAN,
         'is_fields' => FALSE,
         'is_filters' => TRUE,
+        'options' => [
+          '' => ts('Any'),
+          '0' => ts('No'),
+          '1' => ts('Yes'),
+        ],
         'is_group_bys' => FALSE,
       ],
       $options['prefix'] . 'job_title' => [
@@ -5648,16 +5668,6 @@ LEFT JOIN civicrm_contact {$field['alias']} ON {$field['alias']}.id = {$this->_a
       $spec = array_merge($spec, $individualFields);
     }
 
-    if (!empty($options['custom_fields'])) {
-      $this->_customGroupExtended[$options['prefix'] . 'civicrm_contact'] = [
-        'extends' => $options['custom_fields'],
-        'title' => $options['prefix_label'],
-        'filters' => $options['filters'],
-        'prefix' => $options['prefix'],
-        'prefix_label' => $options['prefix_label'],
-      ];
-    }
-
     return $this->buildColumns($spec, $options['prefix'] . 'civicrm_contact', 'CRM_Contact_DAO_Contact', $tableAlias, $this->getDefaultsFromOptions($options), $options);
   }
 
@@ -5720,6 +5730,7 @@ LEFT JOIN civicrm_contact {$field['alias']} ON {$field['alias']}.id = {$this->_a
         'type' => 1,
         'is_fields' => TRUE,
         'is_filters' => TRUE,
+        'operatorType' => CRM_Report_Form::OP_STRING,
         'operator' => 'like',
         'is_order_bys' => TRUE,
       ],
@@ -5728,6 +5739,7 @@ LEFT JOIN civicrm_contact {$field['alias']} ON {$field['alias']}.id = {$this->_a
         'name' => 'street_address',
         'is_fields' => TRUE,
         'is_filters' => TRUE,
+        'operatorType' => CRM_Report_Form::OP_STRING,
         'is_group_bys' => TRUE,
       ],
       $options['prefix'] . 'supplemental_address_1' => [
@@ -5751,6 +5763,7 @@ LEFT JOIN civicrm_contact {$field['alias']} ON {$field['alias']}.id = {$this->_a
         'type' => 1,
         'is_order_bys' => TRUE,
         'is_filters' => TRUE,
+        'operatorType' => CRM_Report_Form::OP_STRING,
         'is_fields' => TRUE,
       ],
       $options['prefix'] . 'street_unit' => [
@@ -5774,6 +5787,7 @@ LEFT JOIN civicrm_contact {$field['alias']} ON {$field['alias']}.id = {$this->_a
         'type' => 2,
         'is_fields' => TRUE,
         'is_filters' => TRUE,
+        'operatorType' => CRM_Report_Form::OP_STRING,
         'is_group_bys' => TRUE,
         'is_order_bys' => TRUE,
       ],
@@ -5783,6 +5797,7 @@ LEFT JOIN civicrm_contact {$field['alias']} ON {$field['alias']}.id = {$this->_a
         'type' => 2,
         'is_fields' => TRUE,
         'is_filters' => TRUE,
+        'operatorType' => CRM_Report_Form::OP_STRING,
         'is_group_bys' => TRUE,
         'is_order_bys' => TRUE,
       ],
@@ -6072,8 +6087,8 @@ LEFT JOIN civicrm_contact {$field['alias']} ON {$field['alias']}.id = {$this->_a
    * If there is no suitable output handler, e.g. if outputMode is "copy",
    * then this sets it to NULL.
    */
-  public function setOutputHandler() {
-    $this->outputHandler = \Civi\Report\OutputHandlerFactory::singleton()->create($this);
+  public function setOutputHandler(): void {
+    $this->outputHandler = OutputHandlerFactory::singleton()->create($this);
   }
 
   /**
@@ -6112,10 +6127,10 @@ LEFT JOIN civicrm_contact {$field['alias']} ON {$field['alias']}.id = {$this->_a
     // since it shouldn't have any outputMode-related `if` statements in it.
     // Someday could remove the param from the function call.
     if (CRM_Report_Utils_Report::mailReport($mailBody, $this->_id, $this->_outputMode, $attachments)) {
-      CRM_Core_Session::setStatus(ts("Report mail has been sent."), ts('Sent'), 'success');
+      CRM_Core_Session::setStatus(ts('Report mail has been sent.'), ts('Sent'), 'success');
     }
     else {
-      CRM_Core_Session::setStatus(ts("Report mail could not be sent."), ts('Mail Error'), 'error');
+      CRM_Core_Session::setStatus(ts('Report mail could not be sent.'), ts('Mail Error'), 'error');
     }
   }
 
diff --git a/civicrm/CRM/Report/Form/Contact/Detail.php b/civicrm/CRM/Report/Form/Contact/Detail.php
index 98c7c18925c00e540018b93a7c9ade1e54a592dd..1394293d97abaf8f8838199311181f31065d9c01 100644
--- a/civicrm/CRM/Report/Form/Contact/Detail.php
+++ b/civicrm/CRM/Report/Form/Contact/Detail.php
@@ -207,14 +207,14 @@ class CRM_Report_Form_Contact_Detail extends CRM_Report_Form {
             'default' => TRUE,
           ],
           'join_date' => [
-            'title' => ts('Join Date'),
+            'title' => ts('Member Since'),
           ],
           'membership_start_date' => [
-            'title' => ts('Start Date'),
+            'title' => ts('Membership Start Date'),
             'default' => TRUE,
           ],
           'membership_end_date' => [
-            'title' => ts('End Date'),
+            'title' => ts('Membership Expiration Date'),
             'default' => TRUE,
           ],
           'membership_status_id' => [
diff --git a/civicrm/CRM/Report/Form/Contact/Summary.php b/civicrm/CRM/Report/Form/Contact/Summary.php
index 0d330b3ae743d0cfd1e7c16c0a020c747d22999e..4e658da660d6b3b254c325b872f66e1cdcb72b0f 100644
--- a/civicrm/CRM/Report/Form/Contact/Summary.php
+++ b/civicrm/CRM/Report/Form/Contact/Summary.php
@@ -16,7 +16,7 @@
  */
 class CRM_Report_Form_Contact_Summary extends CRM_Report_Form {
 
-  public $_summary = NULL;
+  public $_summary;
 
   protected $_emailField = FALSE;
 
diff --git a/civicrm/CRM/Report/Form/Contribute/History.php b/civicrm/CRM/Report/Form/Contribute/History.php
index b97f1adb5c3cc38b30eac26eaed559ab2d3baadd..4b310b05b0123eb3d0b29c9560ee0be8c8ff2460 100644
--- a/civicrm/CRM/Report/Form/Contribute/History.php
+++ b/civicrm/CRM/Report/Form/Contribute/History.php
@@ -608,14 +608,19 @@ class CRM_Report_Form_Contribute_History extends CRM_Report_Form {
       $addWhere .= " AND {$this->_aliases['civicrm_contact']}.id IN ( SELECT DISTINCT cont.id FROM civicrm_contact cont, civicrm_contribution contri WHERE cont.id = contri.contact_id AND {$receive_date} = {$this->_referenceYear['this_year']} AND contri.is_test = 0 AND contri.is_template = 0 ) ";
     }
     $this->limit();
-    $getContacts = "SELECT {$this->_aliases['civicrm_contact']}.id as cid, SUM({$this->_aliases['civicrm_contribution']}.total_amount) as civicrm_contribution_total_amount_sum {$this->_from} {$this->_where} {$addWhere} GROUP BY {$this->_aliases['civicrm_contact']}.id {$this->_having} {$this->_limit}";
+    $getContacts = "SELECT {$this->_aliases['civicrm_contact']}.id as cid, SUM({$this->_aliases['civicrm_contribution']}.total_amount) as civicrm_contribution_total_amount_sum {$this->_from} {$this->_where} {$addWhere} GROUP BY {$this->_aliases['civicrm_contact']}.id {$this->_having}";
 
+    // Run it without limit/offset first to get the right number of rows for
+    // the pager.
+    CRM_Core_DAO::executeQuery($getContacts);
+    $this->setPager();
+
+    $getContacts .= ' ' . $this->_limit;
     $dao = CRM_Core_DAO::executeQuery($getContacts);
 
     while ($dao->fetch()) {
       $contactIds[] = $dao->cid;
     }
-    $this->setPager();
 
     $relationshipRows = [];
     if (empty($contactIds)) {
diff --git a/civicrm/CRM/Report/Form/Member/ContributionDetail.php b/civicrm/CRM/Report/Form/Member/ContributionDetail.php
index 7f13f34f4e958a5207db509ec0cf20f518c17622..a9a121eba149df1151fedc04a6a66e1b4db9757c 100644
--- a/civicrm/CRM/Report/Form/Member/ContributionDetail.php
+++ b/civicrm/CRM/Report/Form/Member/ContributionDetail.php
@@ -299,15 +299,15 @@ class CRM_Report_Form_Member_ContributionDetail extends CRM_Report_Form {
             'no_repeat' => TRUE,
           ],
           'membership_start_date' => [
-            'title' => ts('Start Date'),
+            'title' => ts('Membership Start Date'),
             'default' => TRUE,
           ],
           'membership_end_date' => [
-            'title' => ts('End Date'),
+            'title' => ts('Membership Expiration Date'),
             'default' => TRUE,
           ],
           'join_date' => [
-            'title' => ts('Join Date'),
+            'title' => ts('Member Since'),
             'default' => TRUE,
           ],
           'source' => ['title' => ts('Membership Source')],
diff --git a/civicrm/CRM/Report/Form/Member/Detail.php b/civicrm/CRM/Report/Form/Member/Detail.php
index abab6c9d4f9927b2d0a0b5ea22b8eceb5f6e0c02..527f42725cbc0133df9e4c4b506947f1245a039e 100644
--- a/civicrm/CRM/Report/Form/Member/Detail.php
+++ b/civicrm/CRM/Report/Form/Member/Detail.php
@@ -79,11 +79,11 @@ class CRM_Report_Form_Member_Detail extends CRM_Report_Form {
             'no_repeat' => TRUE,
           ],
           'membership_start_date' => [
-            'title' => ts('Start Date'),
+            'title' => ts('Membership Start Date'),
             'default' => TRUE,
           ],
           'membership_end_date' => [
-            'title' => ts('End Date'),
+            'title' => ts('Membership Expiration Date'),
             'default' => TRUE,
           ],
           'owner_membership_id' => [
@@ -91,7 +91,7 @@ class CRM_Report_Form_Member_Detail extends CRM_Report_Form {
             'default' => TRUE,
           ],
           'join_date' => [
-            'title' => ts('Join Date'),
+            'title' => ts('Member Since'),
             'default' => TRUE,
           ],
           'source' => ['title' => ts('Source')],
diff --git a/civicrm/CRM/Report/Form/Member/Summary.php b/civicrm/CRM/Report/Form/Member/Summary.php
index 198503f3c209c1a72ffff8abc5ffc13a9e0a9719..2559f35356e9f14399ee5f6aed487e4356a5c3fa 100644
--- a/civicrm/CRM/Report/Form/Member/Summary.php
+++ b/civicrm/CRM/Report/Form/Member/Summary.php
@@ -65,7 +65,7 @@ class CRM_Report_Form_Member_Summary extends CRM_Report_Form {
           ],
           'membership_end_date' => [
             'name' => 'end_date',
-            'title' => ts('Membership End Date'),
+            'title' => ts('Membership Expiration Date'),
             'type' => CRM_Utils_Type::T_DATE,
             'operatorType' => CRM_Report_Form::OP_DATE,
           ],
diff --git a/civicrm/CRM/Report/Form/Register.php b/civicrm/CRM/Report/Form/Register.php
index c4a8f659458a027420ae3543769fe823cf450969..af5c12e4e3f4b43c4d9020057ede1961d9016412 100644
--- a/civicrm/CRM/Report/Form/Register.php
+++ b/civicrm/CRM/Report/Form/Register.php
@@ -158,7 +158,7 @@ class CRM_Report_Form_Register extends CRM_Core_Form {
   public function postProcess() {
     if ($this->_action & CRM_Core_Action::DELETE) {
 
-      if (CRM_Core_BAO_OptionValue::del($this->_id)) {
+      if (CRM_Core_BAO_OptionValue::deleteRecord(['id' => $this->_id])) {
         CRM_Core_Session::setStatus(ts('Selected %1 Report has been deleted.', [1 => $this->_GName]), ts('Record Deleted'), 'success');
         CRM_Utils_System::redirect(CRM_Utils_System::url('civicrm/admin/report/options/report_template', "reset=1"));
       }
diff --git a/civicrm/CRM/SMS/BAO/Provider.php b/civicrm/CRM/SMS/BAO/Provider.php
index f820b10430d62f52afc58118be5385dba59772b8..11b16e97fbfef4ce506ec7077050d2af73fde032 100644
--- a/civicrm/CRM/SMS/BAO/Provider.php
+++ b/civicrm/CRM/SMS/BAO/Provider.php
@@ -103,12 +103,13 @@ class CRM_SMS_BAO_Provider extends CRM_SMS_DAO_Provider {
   }
 
   /**
+   * @deprecated - this bypasses hooks.
    * @param int $id
-   * @param $is_active
-   *
+   * @param bool $is_active
    * @return bool
    */
   public static function setIsActive($id, $is_active) {
+    CRM_Core_Error::deprecatedFunctionWarning('writeRecord');
     return CRM_Core_DAO::setFieldValue('CRM_SMS_DAO_Provider', $id, 'is_active', $is_active);
   }
 
diff --git a/civicrm/CRM/SMS/DAO/Provider.php b/civicrm/CRM/SMS/DAO/Provider.php
index 37c752e21ae67ae9558121247ec515157ce8be65..7875b0814e521d09968cfb1cee6889f19217ec81 100644
--- a/civicrm/CRM/SMS/DAO/Provider.php
+++ b/civicrm/CRM/SMS/DAO/Provider.php
@@ -6,7 +6,7 @@
  *
  * Generated from xml/schema/CRM/SMS/Provider.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:c745c2386d7c06b12a01a6185efb7061)
+ * (GenCodeChecksum:ebadcc1aa561a61001ec934e60a9c475)
  */
 
 /**
@@ -173,6 +173,12 @@ class CRM_SMS_DAO_Provider extends CRM_Core_DAO {
           'title' => ts('SMS Provider ID'),
           'description' => ts('SMS Provider ID'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_sms_provider.id',
           'table_name' => 'civicrm_sms_provider',
           'entity' => 'Provider',
@@ -191,6 +197,12 @@ class CRM_SMS_DAO_Provider extends CRM_Core_DAO {
           'description' => ts('Provider internal name points to option_value of option_group sms_provider_name'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_sms_provider.name',
           'table_name' => 'civicrm_sms_provider',
           'entity' => 'Provider',
@@ -205,6 +217,12 @@ class CRM_SMS_DAO_Provider extends CRM_Core_DAO {
           'description' => ts('Provider name visible to user'),
           'maxlength' => 64,
           'size' => CRM_Utils_Type::BIG,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_sms_provider.title',
           'table_name' => 'civicrm_sms_provider',
           'entity' => 'Provider',
@@ -221,6 +239,12 @@ class CRM_SMS_DAO_Provider extends CRM_Core_DAO {
           'title' => ts('SMS Provider Username'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_sms_provider.username',
           'table_name' => 'civicrm_sms_provider',
           'entity' => 'Provider',
@@ -237,6 +261,12 @@ class CRM_SMS_DAO_Provider extends CRM_Core_DAO {
           'title' => ts('SMS Provider Password'),
           'maxlength' => 255,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_sms_provider.password',
           'table_name' => 'civicrm_sms_provider',
           'entity' => 'Provider',
@@ -253,6 +283,12 @@ class CRM_SMS_DAO_Provider extends CRM_Core_DAO {
           'title' => ts('SMS Provider API'),
           'description' => ts('points to value in civicrm_option_value for group sms_api_type'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_sms_provider.api_type',
           'table_name' => 'civicrm_sms_provider',
           'entity' => 'Provider',
@@ -273,6 +309,12 @@ class CRM_SMS_DAO_Provider extends CRM_Core_DAO {
           'title' => ts('SMS Provider API URL'),
           'maxlength' => 128,
           'size' => CRM_Utils_Type::HUGE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_sms_provider.api_url',
           'table_name' => 'civicrm_sms_provider',
           'entity' => 'Provider',
@@ -288,6 +330,12 @@ class CRM_SMS_DAO_Provider extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_TEXT,
           'title' => ts('SMS Provider API Params'),
           'description' => ts('the api params in xml, http or smtp format'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_sms_provider.api_params',
           'table_name' => 'civicrm_sms_provider',
           'entity' => 'Provider',
@@ -303,6 +351,12 @@ class CRM_SMS_DAO_Provider extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_BOOLEAN,
           'title' => ts('SMS Provider is Default?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_sms_provider.is_default',
           'default' => '0',
           'table_name' => 'civicrm_sms_provider',
@@ -320,6 +374,12 @@ class CRM_SMS_DAO_Provider extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_BOOLEAN,
           'title' => ts('SMS Provider is Active?'),
           'required' => TRUE,
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_sms_provider.is_active',
           'default' => '1',
           'table_name' => 'civicrm_sms_provider',
@@ -337,6 +397,12 @@ class CRM_SMS_DAO_Provider extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_INT,
           'title' => ts('Domain ID'),
           'description' => ts('Which Domain is this sms provider for'),
+          'usage' => [
+            'import' => FALSE,
+            'export' => FALSE,
+            'duplicate_matching' => FALSE,
+            'token' => FALSE,
+          ],
           'where' => 'civicrm_sms_provider.domain_id',
           'table_name' => 'civicrm_sms_provider',
           'entity' => 'Provider',
diff --git a/civicrm/CRM/Tag/Form/Edit.php b/civicrm/CRM/Tag/Form/Edit.php
index 71fe9e8b47952651d8fcdcf5c05cd7268ed6ed9a..09d38c00f06f1f80a3ccaf1204742d25b3dbc186 100644
--- a/civicrm/CRM/Tag/Form/Edit.php
+++ b/civicrm/CRM/Tag/Form/Edit.php
@@ -165,7 +165,7 @@ class CRM_Tag_Form_Edit extends CRM_Admin_Form {
       $deleted = 0;
       $tag = civicrm_api3('tag', 'getsingle', ['id' => $this->_id[0]]);
       foreach ($this->_id as $id) {
-        if (CRM_Core_BAO_Tag::del($id)) {
+        if (CRM_Core_BAO_Tag::deleteRecord(['id' => $id])) {
           $deleted++;
         }
       }
diff --git a/civicrm/CRM/UF/Form/Field.php b/civicrm/CRM/UF/Form/Field.php
index 78c5978d652f199a7cf19a5c764cfcd3c27dd121..03d583fa903bd53b877eccb62467d63b170a9e52 100644
--- a/civicrm/CRM/UF/Form/Field.php
+++ b/civicrm/CRM/UF/Form/Field.php
@@ -482,7 +482,7 @@ class CRM_UF_Form_Field extends CRM_Core_Form {
     if ($this->_action & CRM_Core_Action::DELETE) {
       $fieldValues = ['uf_group_id' => $this->_gid];
       CRM_Utils_Weight::delWeight('CRM_Core_DAO_UFField', $this->_id, $fieldValues);
-      $deleted = CRM_Core_BAO_UFField::del($this->_id);
+      $deleted = CRM_Core_BAO_UFField::deleteRecord(['id' => $this->_id]);
 
       //update group_type every time. CRM-3608
       if ($this->_gid && $deleted) {
diff --git a/civicrm/CRM/UF/Form/Group.php b/civicrm/CRM/UF/Form/Group.php
index 454a019c5982362aeb4b533e862f0517ea6cb2b6..881b1ceedfd42cb2dc906c610b3c4508a64ec2a5 100644
--- a/civicrm/CRM/UF/Form/Group.php
+++ b/civicrm/CRM/UF/Form/Group.php
@@ -22,31 +22,6 @@ class CRM_UF_Form_Group extends CRM_Core_Form {
 
   use CRM_Core_Form_EntityFormTrait;
 
-  /**
-   * Fields for the entity to be assigned to the template.
-   *
-   * Fields may have keys
-   *  - name (required to show in tpl from the array)
-   *  - description (optional, will appear below the field)
-   *  - not-auto-addable - this class will not attempt to add the field using addField.
-   *    (this will be automatically set if the field does not have html in it's metadata
-   *    or is not a core field on the form's entity).
-   *  - help (option) add help to the field - e.g ['id' => 'id-source', 'file' => 'CRM/Contact/Form/Contact']]
-   *  - template - use a field specific template to render this field
-   *  - required
-   *  - is_freeze (field should be frozen).
-   *
-   * @var array
-   */
-  protected $entityFields = [];
-
-  /**
-   * Deletion message to be assigned to the form.
-   *
-   * @var string
-   */
-  protected $deleteMessage;
-
   /**
    * @var bool
    */
@@ -350,7 +325,7 @@ class CRM_UF_Form_Group extends CRM_Core_Form {
   public function postProcess() {
     if ($this->_action & CRM_Core_Action::DELETE) {
       $title = CRM_Core_BAO_UFGroup::getTitle($this->_id);
-      CRM_Core_BAO_UFGroup::del($this->_id);
+      CRM_Core_BAO_UFGroup::deleteRecord(['id' => $this->_id]);
       CRM_Core_Session::setStatus(ts("Your CiviCRM Profile '%1' has been deleted.", [1 => $title]), ts('Profile Deleted'), 'success');
     }
     elseif ($this->_action & CRM_Core_Action::DISABLE) {
diff --git a/civicrm/CRM/UF/Page/Group.php b/civicrm/CRM/UF/Page/Group.php
index 2cf6c83c5095e778294d446325e382a7295ef554..de929317efe033e532846a4796d78536d3ac9084 100644
--- a/civicrm/CRM/UF/Page/Group.php
+++ b/civicrm/CRM/UF/Page/Group.php
@@ -216,31 +216,7 @@ class CRM_UF_Page_Group extends CRM_Core_Page {
     $template->assign('tplFile', 'CRM/Profile/Form/Edit.tpl');
     $profile = trim($template->fetch('CRM/Form/default.tpl'));
 
-    // not sure how to circumvent our own navigation system to generate the right form url
-    $urlReplaceWith = 'civicrm/profile/create&amp;gid=' . $gid . '&amp;reset=1';
-    if ($config->userSystem->is_drupal && $config->cleanURL) {
-      $urlReplaceWith = 'civicrm/profile/create?gid=' . $gid . '&amp;reset=1';
-    }
-    $profile = str_replace('civicrm/admin/uf/group', $urlReplaceWith, $profile);
-
-    // FIXME: (CRM-3587) hack to make standalone profile work
-    // in wordpress and joomla without administrator login
-    if ($config->userFramework == 'Joomla') {
-      $profile = str_replace('/administrator/', '/index.php', $profile);
-    }
-    elseif ($config->userFramework == 'WordPress') {
-      //@todo remove this part when it is OK to deprecate CIVICRM_UF_WP_BASEPAGE-CRM-15933
-      if (defined('CIVICRM_UF_WP_BASEPAGE')) {
-        $wpbase = CIVICRM_UF_WP_BASEPAGE;
-      }
-      elseif (!empty($config->wpBasePage)) {
-        $wpbase = $config->wpBasePage;
-      }
-      else {
-        $wpbase = 'index.php';
-      }
-      $profile = str_replace('/wp-admin/admin.php', '/' . $wpbase . '/', $profile);
-    }
+    $profile = $config->userSystem->modifyStandaloneProfile($profile, ['gid' => $gid]);
 
     // add header files
     CRM_Core_Resources::singleton()->addCoreResources('html-header');
diff --git a/civicrm/CRM/Upgrade/Incremental/php/FiveSixtyOne.php b/civicrm/CRM/Upgrade/Incremental/php/FiveSixtyOne.php
new file mode 100644
index 0000000000000000000000000000000000000000..c9e59195a3c04781e8da8531a44be4cfb4c5d641
--- /dev/null
+++ b/civicrm/CRM/Upgrade/Incremental/php/FiveSixtyOne.php
@@ -0,0 +1,135 @@
+<?php
+/*
+ +--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC. All rights reserved.                        |
+ |                                                                    |
+ | This work is published under the GNU AGPLv3 license with some      |
+ | permitted exceptions and without any warranty. For full license    |
+ | and copyright information, see https://civicrm.org/licensing       |
+ +--------------------------------------------------------------------+
+ */
+
+use Civi\Api4\Contribution;
+use Civi\Api4\MappingField;
+
+/**
+ * Upgrade logic for the 5.61.x series.
+ *
+ * Each minor version in the series is handled by either a `5.61.x.mysql.tpl` file,
+ * or a function in this class named `upgrade_5_61_x`.
+ * If only a .tpl file exists for a version, it will be run automatically.
+ * If the function exists, it must explicitly add the 'runSql' task if there is a corresponding .mysql.tpl.
+ *
+ * This class may also implement `setPreUpgradeMessage()` and `setPostUpgradeMessage()` functions.
+ */
+class CRM_Upgrade_Incremental_php_FiveSixtyOne extends CRM_Upgrade_Incremental_Base {
+
+  public function setPreUpgradeMessage(&$preUpgradeMessage, $rev, $currentVer = NULL): void {
+    if ($rev === '5.61.alpha1' && CRM_Core_DAO::singleValueQuery('SELECT id FROM civicrm_contribution_recur LIMIT 1')) {
+      $documentationUrl = 'https://docs.civicrm.org/dev/en/latest/financial/recurring-contributions/';
+      $documentationAnchor = 'target="_blank" href="' . htmlentities($documentationUrl) . '"';
+      $extensionUrl = 'https://docs.civicrm.org/dev/en/latest/financial/recurring-contributions/';
+      $extensionAnchor = 'target="_blank" href="' . htmlentities($extensionUrl) . '"';
+
+      $preUpgradeMessage .= '<p>' .
+        ts('This release contains a change to the behaviour of recurring contributions under some edge-case circumstances.')
+        . ' ' . ts('Since 5.49 the amount and currency on the recurring contribution record changed when the amount of any contribution against it was changed, indicating a change in future intent.')
+        . ' ' . ts('It is generally not possible to edit the amount for contributions linked to recurring contributions so for most sites this would never occur anyway.')
+        . ' ' . ts('If you still want this behaviour you should install the <a %1>Recur future amounts extension</a>', [1 => $extensionAnchor])
+        . ' ' . ts('Please <a %1>read about recurring contribution templates</a> for more information', [1 => $documentationAnchor])
+        . '</p>';
+    }
+  }
+
+  /**
+   * Upgrade step; adds tasks including 'runSql'.
+   *
+   * @param string $rev
+   *   The version number matching this function name
+   */
+  public function upgrade_5_61_alpha1($rev): void {
+    // First add `frontend_title` column *without* NOT NULL constraint
+    $this->addTask('Add frontend_title to civicrm_payment_processor', 'addColumn',
+      'civicrm_payment_processor', 'frontend_title', "varchar(255) COMMENT 'Name of processor when shown to users making a payment.'", TRUE, '5.61.alpha1'
+    );
+    // Sql contains updates to fill paymentProcessor title & frontend_title
+    $this->addTask(ts('Upgrade DB to %1: SQL', [1 => $rev]), 'runSql', $rev);
+    $this->addTask('Make PaymentProcessor.name required', 'alterColumn', 'civicrm_payment_processor', 'name', "varchar(64) NOT NULL COMMENT 'Payment Processor Name.'");
+    $this->addTask('Make PaymentProcessor.title required', 'alterColumn', 'civicrm_payment_processor', 'title', "varchar(255) NOT NULL COMMENT 'Name of processor when shown to CiviCRM administrators.'", TRUE);
+    $this->addTask('Make PaymentProcessor.frontend_title required', 'alterColumn', 'civicrm_payment_processor', 'frontend_title', "varchar(255) NOT NULL COMMENT 'Name of processor when shown to users making a payment.'", TRUE);
+
+    // Drop unused column
+    $this->addTask('Drop column civicrm_custom_field.javascript', 'dropColumn', 'civicrm_custom_field', 'javascript');
+
+    $this->addTask(ts('Dedupe cache table'), 'dedupeCache');
+    $this->addTask(ts('Drop index %1', [1 => 'civicrm_cache.UI_group_path_date']), 'dropIndex', 'civicrm_cache', 'UI_group_path_date');
+    $this->addTask(ts('Create index %1', [1 => 'civicrm_cache.UI_group_name_path']), 'addIndex', 'civicrm_cache', [['group_name', 'path']], 'UI');
+    $this->addTask(ts('Create index %1', [1 => 'civicrm_cache.index_expired_date']), 'addIndex', 'civicrm_cache', [['expired_date']], 'index');
+    $this->addTask(ts('Update Saved Mapping for contribution import', [1 => $rev]), 'convertMappingFieldsToApi4StyleNames', $rev);
+
+    $this->addTask(ts('Drop index %1', [1 => 'civicrm_campaign.UI_campaign_name']), 'dropIndex', 'civicrm_campaign', 'UI_campaign_name');
+    $this->addTask(ts('Create index %1', [1 => 'civicrm_campaign.UI_name']), 'addIndex', 'civicrm_campaign', 'name', 'UI');
+  }
+
+  /**
+   * Remove extraneous/duplicate records from `civicrm_cache`.
+   *
+   * Formally, the cache table allowed multiple (key,value) pairs if created at different times.
+   * In practice, this cleanup should generally do nothing -- the `SqlGroup::set()` has had duplicate
+   * prevention, and the cache will flush at the end of the upgrade anyway. Never-the-less, if
+   * duplicates are somehow in there, then we should cleanly remove them rather than let the upgrade fail.
+   *
+   * @param \CRM_Queue_TaskContext $ctx
+   * @return bool
+   * @throws \Civi\Core\Exception\DBQueryException
+   */
+  public static function dedupeCache($ctx): bool {
+    $duplicates = CRM_Core_DAO::executeQuery('
+      SELECT c.id FROM civicrm_cache c
+      LEFT JOIN (SELECT group_name, path, MAX(created_date) newest FROM civicrm_cache GROUP BY group_name, path) recent
+        ON (c.group_name=recent.group_name AND c.path=recent.path AND c.created_date=recent.newest)
+      WHERE recent.newest IS NULL')
+      ->fetchMap('id', 'id');
+    if ($duplicates) {
+      CRM_Utils_SQL_Delete::from('civicrm_cache')
+        ->where('id in (@IDS)')
+        ->param('IDS', $duplicates)
+        ->execute();
+    }
+    return TRUE;
+  }
+
+  /**
+   * @return bool
+   * @throws \CRM_Core_Exception
+   * @noinspection PhpUnused
+   */
+  public static function convertMappingFieldsToApi4StyleNames(): bool {
+    $mappings = MappingField::get(FALSE)
+      ->setSelect(['id', 'name'])
+      ->addWhere('mapping_id.mapping_type_id:name', '=', 'Import Contribution')
+      ->execute();
+
+    $fieldMap = [
+      'contribution_cancel_date' => 'cancel_date',
+      'contribution_check_number' => 'check_number',
+      'contribution_campaign_id' => 'campaign_id',
+    ];
+    $apiv4 = Contribution::getFields(FALSE)->addWhere('custom_field_id', '>', 0)->execute();
+    foreach ($apiv4 as $apiv4Field) {
+      $fieldMap['custom_' . $apiv4Field['custom_field_id']] = $apiv4Field['name'];
+    }
+
+    // Update the mapped fields.
+    foreach ($mappings as $mapping) {
+      if (!empty($fieldMap[$mapping['name']])) {
+        MappingField::update(FALSE)
+          ->addWhere('id', '=', $mapping['id'])
+          ->addValue('name', $fieldMap[$mapping['name']])
+          ->execute();
+      }
+    }
+    return TRUE;
+  }
+
+}
diff --git a/civicrm/CRM/Upgrade/Incremental/sql/5.61.alpha1.mysql.tpl b/civicrm/CRM/Upgrade/Incremental/sql/5.61.alpha1.mysql.tpl
new file mode 100644
index 0000000000000000000000000000000000000000..ce9d28c8a8fc5e7d73d41cce0c5f064580c675f6
--- /dev/null
+++ b/civicrm/CRM/Upgrade/Incremental/sql/5.61.alpha1.mysql.tpl
@@ -0,0 +1,15 @@
+{* file to handle db changes in 5.61.alpha1 during upgrade *}
+
+{* https://github.com/civicrm/civicrm-core/pull/25873 *}
+UPDATE civicrm_payment_processor
+  SET {localize field="frontend_title,title"}frontend_title = COALESCE(title, name){/localize};
+
+UPDATE civicrm_payment_processor
+  SET {localize field="title"}title = name{/localize};
+
+{* https://github.com/civicrm/civicrm-core/pull/25994 *}
+UPDATE civicrm_campaign c1, civicrm_campaign c2
+  SET c2.name = CONCAT(c2.name, '_', c2.id)
+  WHERE c2.name = c1.name AND c2.id > c1.id;
+
+UPDATE civicrm_navigation SET url = 'civicrm/import/contribution?reset=1' WHERE url = 'civicrm/contribute/import?reset=1';
diff --git a/civicrm/CRM/Utils/AutoClean.php b/civicrm/CRM/Utils/AutoClean.php
index b02c67479fd8aaa190143ad23b5bb1cbb012e357..527862caf511c116d49124b6d7cc4fd0e4967ae7 100644
--- a/civicrm/CRM/Utils/AutoClean.php
+++ b/civicrm/CRM/Utils/AutoClean.php
@@ -26,6 +26,13 @@ class CRM_Utils_AutoClean {
   protected $callback;
   protected $args;
 
+  /**
+   * Have we run this cleanup method yet?
+   *
+   * @var bool
+   */
+  protected $isDone = FALSE;
+
   /**
    * Call a cleanup function when the current context shuts down.
    *
@@ -144,6 +151,21 @@ class CRM_Utils_AutoClean {
   }
 
   public function __destruct() {
+    $this->cleanup();
+  }
+
+  /**
+   * Explicitly apply the cleanup.
+   *
+   * Use this if you want to do the cleanup work immediately.
+   *
+   * @return void
+   */
+  public function cleanup(): void {
+    if ($this->isDone) {
+      return;
+    }
+    $this->isDone = TRUE;
     \Civi\Core\Resolver::singleton()->call($this->callback, $this->args);
   }
 
diff --git a/civicrm/CRM/Utils/Check/Component/Schema.php b/civicrm/CRM/Utils/Check/Component/Schema.php
index 8a4327f16ced5c005892c22fe2dfa75f159bd527..da26ccc5e2a1d081352b543bdd646e150fdb2bd9 100644
--- a/civicrm/CRM/Utils/Check/Component/Schema.php
+++ b/civicrm/CRM/Utils/Check/Component/Schema.php
@@ -154,7 +154,7 @@ class CRM_Utils_Check_Component_Schema extends CRM_Utils_Check_Component {
           }
         }
         $groupEdit = '<a href="' . CRM_Utils_System::url('civicrm/contact/search/advanced', "reset=1&ssID={$field['ssid']}", TRUE) . '" title="' . ts('Edit search criteria', ['escape' => 'js']) . '"> <i class="crm-i fa-pencil" aria-hidden="true"></i> </a>';
-        $groupConfig = '<a href="' . CRM_Utils_System::url('civicrm/group', "reset=1&action=update&id={$id}", TRUE) . '" title="' . ts('Group settings', ['escape' => 'js']) . '"> <i class="crm-i fa-gear" aria-hidden="true"></i> </a>';
+        $groupConfig = '<a href="' . CRM_Utils_System::url('civicrm/group/edit', "reset=1&action=update&id={$id}", TRUE) . '" title="' . ts('Group settings', ['escape' => 'js']) . '"> <i class="crm-i fa-gear" aria-hidden="true"></i> </a>';
         $html .= "<tr><td>{$id} - {$field['title']} </td><td>{$groupEdit} {$groupConfig}</td><td class='disabled'>{$fieldName}</td>";
       }
 
@@ -249,7 +249,37 @@ class CRM_Utils_Check_Component_Schema extends CRM_Utils_Check_Component {
       );
       $msg->addAction(
         ts('Rebuild triggers (also re-builds the phone number function)'),
-        ts('Create missing function now? This may take few minutes.'),
+        ts('Create missing function now? This may take a few minutes.'),
+        'api3',
+        ['System', 'flush', ['triggers' => TRUE]]
+      );
+      return [$msg];
+    }
+    return [];
+  }
+
+  /**
+   * Check the function to populate phone_numeric exists.
+   *
+   * @return array|\CRM_Utils_Check_Message[]
+   */
+  public function checkRelationshipCacheTriggers():array {
+    if (\Civi::settings()->get('logging_no_trigger_permission')) {
+      // The mysql user does not have permission to view whether the trigger exists.
+      return [];
+    }
+    $dao = CRM_Core_DAO::executeQuery("SHOW TRIGGERS WHERE (`Table` = 'civicrm_relationship' OR `Table` = 'civicrm_relationship_type') AND `Statement` LIKE '%civicrm_relationship_cache%';");
+    if ($dao->N !== 3) {
+      $msg = new CRM_Utils_Check_Message(
+        __FUNCTION__,
+        ts("Your database is missing functionality to populate the relationship cache."),
+        ts('Missing Relationship Cache Trigger'),
+        \Psr\Log\LogLevel::WARNING,
+        'fa-server'
+      );
+      $msg->addAction(
+        ts('Rebuild triggers'),
+        ts('Create missing triggers now? This may take a few minutes.'),
         'api3',
         ['System', 'flush', ['triggers' => TRUE]]
       );
diff --git a/civicrm/CRM/Utils/Hook.php b/civicrm/CRM/Utils/Hook.php
index 90c73f3dabdbe8dace004a1b52d3d862c6421c01..b15ff620c7efd39c861c8cbb016e495bb3c5d464 100644
--- a/civicrm/CRM/Utils/Hook.php
+++ b/civicrm/CRM/Utils/Hook.php
@@ -40,6 +40,7 @@ abstract class CRM_Utils_Hook {
    * pattern as it can get contaminated & result in hard-to-diagnose bugs.
    *
    * @var null
+   * @deprecated
    */
   public static $_nullObject = NULL;
 
@@ -49,7 +50,7 @@ abstract class CRM_Utils_Hook {
    *
    * @var CRM_Utils_Hook
    */
-  static private $_singleton = NULL;
+  static private $_singleton;
 
   /**
    * @var bool
@@ -74,7 +75,7 @@ abstract class CRM_Utils_Hook {
    * @return CRM_Utils_Hook
    *   An instance of $config->userHookClass
    */
-  public static function singleton($fresh = FALSE) {
+  public static function singleton($fresh = FALSE): CRM_Utils_Hook {
     if (self::$_singleton == NULL || $fresh) {
       $config = CRM_Core_Config::singleton();
       $class = $config->userHookClass;
@@ -86,7 +87,7 @@ abstract class CRM_Utils_Hook {
   /**
    * CRM_Utils_Hook constructor.
    *
-   * @throws \CRM_Core_Exception
+   * @throws CRM_Core_Exception
    */
   public function __construct() {
     $this->cache = CRM_Utils_Cache::create([
@@ -164,7 +165,7 @@ abstract class CRM_Utils_Hook {
       $names,
       [&$arg1, &$arg2, &$arg3, &$arg4, &$arg5, &$arg6]
     );
-    \Civi::dispatcher()->dispatch('hook_' . $fnSuffix, $event);
+    Civi::dispatcher()->dispatch('hook_' . $fnSuffix, $event);
     return $event->getReturnValues();
   }
 
@@ -180,6 +181,7 @@ abstract class CRM_Utils_Hook {
    * @param $fnPrefix
    *
    * @return array|bool
+   * @throws CRM_Core_Exception
    */
   public function commonInvoke(
     $numParams,
@@ -261,7 +263,6 @@ abstract class CRM_Utils_Hook {
     }
 
     foreach ($fnNames as $fnName) {
-      $fResult = [];
       switch ($numParams) {
         case 0:
           $fResult = $fnName();
@@ -295,9 +296,7 @@ abstract class CRM_Utils_Hook {
           throw new CRM_Core_Exception(ts('Invalid hook invocation'));
       }
 
-      if (!empty($fResult) &&
-        is_array($fResult)
-      ) {
+      if (!empty($fResult) && is_array($fResult)) {
         $result = array_merge($result, $fResult);
       }
     }
@@ -345,7 +344,7 @@ abstract class CRM_Utils_Hook {
    */
   public static function pre($op, $objectName, $id, &$params = []) {
     $event = new \Civi\Core\Event\PreEvent($op, $objectName, $id, $params);
-    \Civi::dispatcher()->dispatch('hook_civicrm_pre', $event);
+    Civi::dispatcher()->dispatch('hook_civicrm_pre', $event);
     return $event->getReturnValues();
   }
 
@@ -360,14 +359,16 @@ abstract class CRM_Utils_Hook {
    *   The unique identifier for the object.
    * @param object $objectRef
    *   The reference to the object if available.
+   * @param array $params
+   *   Original params used, if available
    *
    * @return mixed
    *   based on op. pre-hooks return a boolean or
    *                           an error message which aborts the operation
    */
-  public static function post($op, $objectName, $objectId, &$objectRef = NULL) {
-    $event = new \Civi\Core\Event\PostEvent($op, $objectName, $objectId, $objectRef);
-    \Civi::dispatcher()->dispatch('hook_civicrm_post', $event);
+  public static function post($op, $objectName, $objectId, &$objectRef = NULL, $params = NULL) {
+    $event = new \Civi\Core\Event\PostEvent($op, $objectName, $objectId, $objectRef, $params);
+    Civi::dispatcher()->dispatch('hook_civicrm_post', $event);
     return $event->getReturnValues();
   }
 
@@ -397,7 +398,7 @@ abstract class CRM_Utils_Hook {
    */
   public static function postCommit($op, $objectName, $objectId, $objectRef = NULL) {
     $event = new \Civi\Core\Event\PostEvent($op, $objectName, $objectId, $objectRef);
-    \Civi::dispatcher()->dispatch('hook_civicrm_postCommit', $event);
+    Civi::dispatcher()->dispatch('hook_civicrm_postCommit', $event);
     return $event->getReturnValues();
   }
 
@@ -437,8 +438,9 @@ abstract class CRM_Utils_Hook {
    * @see CRM_Core_Resources_CollectionInterface::filter()
    */
   public static function alterBundle($bundle) {
+    $null = NULL;
     return self::singleton()
-      ->invoke(['bundle'], $bundle, self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject, 'civicrm_alterBundle');
+      ->invoke(['bundle'], $bundle, $null, $null, $null, $null, $null, 'civicrm_alterBundle');
   }
 
   /**
@@ -453,8 +455,9 @@ abstract class CRM_Utils_Hook {
    *   the return value is ignored
    */
   public static function preProcess($formName, &$form) {
+    $null = NULL;
     return self::singleton()
-      ->invoke(['formName', 'form'], $formName, $form, self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject, 'civicrm_preProcess');
+      ->invoke(['formName', 'form'], $formName, $form, $null, $null, $null, $null, 'civicrm_preProcess');
   }
 
   /**
@@ -470,8 +473,9 @@ abstract class CRM_Utils_Hook {
    *   the return value is ignored
    */
   public static function buildForm($formName, &$form) {
+    $null = NULL;
     return self::singleton()->invoke(['formName', 'form'], $formName, $form,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $null, $null, $null, $null,
       'civicrm_buildForm'
     );
   }
@@ -489,8 +493,9 @@ abstract class CRM_Utils_Hook {
    *   the return value is ignored
    */
   public static function postProcess($formName, &$form) {
+    $null = NULL;
     return self::singleton()->invoke(['formName', 'form'], $formName, $form,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $null, $null, $null, $null,
       'civicrm_postProcess'
     );
   }
@@ -511,9 +516,10 @@ abstract class CRM_Utils_Hook {
    *                           an array of error messages which display a QF Error
    */
   public static function validateForm($formName, &$fields, &$files, &$form, &$errors) {
+    $null = NULL;
     return self::singleton()
       ->invoke(['formName', 'fields', 'files', 'form', 'errors'],
-        $formName, $fields, $files, $form, $errors, self::$_nullObject, 'civicrm_validateForm');
+        $formName, $fields, $files, $form, $errors, $null, 'civicrm_validateForm');
   }
 
   /**
@@ -532,8 +538,9 @@ abstract class CRM_Utils_Hook {
    *   the return value is ignored
    */
   public static function custom(string $op, int $groupID, int $entityID, &$params) {
+    $null = NULL;
     return self::singleton()
-      ->invoke(['op', 'groupID', 'entityID', 'params'], $op, $groupID, $entityID, $params, self::$_nullObject, self::$_nullObject, 'civicrm_custom');
+      ->invoke(['op', 'groupID', 'entityID', 'params'], $op, $groupID, $entityID, $params, $null, $null, 'civicrm_custom');
   }
 
   /**
@@ -552,8 +559,9 @@ abstract class CRM_Utils_Hook {
    *   the return value is ignored
    */
   public static function customPre(string $op, int $groupID, int $entityID, array &$params) {
+    $null = NULL;
     return self::singleton()
-      ->invoke(['op', 'groupID', 'entityID', 'params'], $op, $groupID, $entityID, $params, self::$_nullObject, self::$_nullObject, 'civicrm_customPre');
+      ->invoke(['op', 'groupID', 'entityID', 'params'], $op, $groupID, $entityID, $params, $null, $null, 'civicrm_customPre');
   }
 
   /**
@@ -575,8 +583,9 @@ abstract class CRM_Utils_Hook {
    *   the return value is ignored
    */
   public static function aclWhereClause($type, &$tables, &$whereTables, &$contactID, &$where) {
+    $null = NULL;
     return self::singleton()
-      ->invoke(['type', 'tables', 'whereTables', 'contactID', 'where'], $type, $tables, $whereTables, $contactID, $where, self::$_nullObject, 'civicrm_aclWhereClause');
+      ->invoke(['type', 'tables', 'whereTables', 'contactID', 'where'], $type, $tables, $whereTables, $contactID, $where, $null, 'civicrm_aclWhereClause');
   }
 
   /**
@@ -598,8 +607,9 @@ abstract class CRM_Utils_Hook {
    *   the return value is ignored
    */
   public static function aclGroup($type, $contactID, $tableName, &$allGroups, &$currentGroups) {
+    $null = NULL;
     return self::singleton()
-      ->invoke(['type', 'contactID', 'tableName', 'allGroups', 'currentGroups'], $type, $contactID, $tableName, $allGroups, $currentGroups, self::$_nullObject, 'civicrm_aclGroup');
+      ->invoke(['type', 'contactID', 'tableName', 'allGroups', 'currentGroups'], $type, $contactID, $tableName, $allGroups, $currentGroups, $null, 'civicrm_aclGroup');
   }
 
   /**
@@ -609,8 +619,9 @@ abstract class CRM_Utils_Hook {
    */
   public static function selectWhereClause($entity, &$clauses) {
     $entityName = is_object($entity) ? _civicrm_api_get_entity_name_from_dao($entity) : $entity;
+    $null = NULL;
     return self::singleton()->invoke(['entity', 'clauses'], $entityName, $clauses,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $null, $null, $null, $null,
       'civicrm_selectWhereClause'
     );
   }
@@ -625,8 +636,9 @@ abstract class CRM_Utils_Hook {
    *   the return value is ignored
    */
   public static function xmlMenu(&$files) {
+    $null = NULL;
     return self::singleton()->invoke(['files'], $files,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $null, $null, $null, $null, $null,
       'civicrm_xmlMenu'
     );
   }
@@ -640,8 +652,9 @@ abstract class CRM_Utils_Hook {
    *   the return value is ignored
    */
   public static function alterMenu(&$items) {
+    $null = NULL;
     return self::singleton()->invoke(['items'], $items,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $null, $null, $null, $null, $null,
       'civicrm_alterMenu'
     );
   }
@@ -677,8 +690,9 @@ abstract class CRM_Utils_Hook {
    *   the return value is ignored
    */
   public static function themes(&$themes) {
+    $null = NULL;
     return self::singleton()->invoke(['themes'], $themes,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $null, $null, $null, $null, $null,
       'civicrm_themes'
     );
   }
@@ -697,8 +711,9 @@ abstract class CRM_Utils_Hook {
    *   the return value is ignored
    */
   public static function activeTheme(&$theme, $context) {
+    $null = NULL;
     return self::singleton()->invoke(['theme', 'context'], $theme, $context,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $null, $null, $null, $null,
       'civicrm_activeTheme'
     );
   }
@@ -745,8 +760,9 @@ abstract class CRM_Utils_Hook {
    *   the return value is ignored
    */
   public static function managed(&$entities, ?array $modules = NULL) {
+    $null = NULL;
     self::singleton()->invoke(['entities', 'modules'], $entities, $modules,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $null, $null, $null, $null,
       'civicrm_managed'
     );
     if ($modules) {
@@ -769,8 +785,9 @@ abstract class CRM_Utils_Hook {
    *   the html snippet to include in the dashboard
    */
   public static function dashboard($contactID, &$contentPlacement = self::DASHBOARD_BELOW) {
+    $null = NULL;
     $retval = self::singleton()->invoke(['contactID', 'contentPlacement'], $contactID, $contentPlacement,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $null, $null, $null, $null,
       'civicrm_dashboard'
     );
 
@@ -795,8 +812,9 @@ abstract class CRM_Utils_Hook {
    * @return array
    */
   public static function recent(&$recentArray) {
+    $null = NULL;
     return self::singleton()->invoke(['recentArray'], $recentArray,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $null, $null, $null, $null, $null,
       'civicrm_recent'
     );
   }
@@ -816,8 +834,9 @@ abstract class CRM_Utils_Hook {
    *   Return is not really intended to be used.
    */
   public static function referenceCounts($dao, &$refCounts) {
+    $null = NULL;
     return self::singleton()->invoke(['dao', 'refCounts'], $dao, $refCounts,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $null, $null, $null, $null,
       'civicrm_referenceCounts'
     );
   }
@@ -835,8 +854,9 @@ abstract class CRM_Utils_Hook {
    * @return null
    */
   public static function buildAmount($pageType, &$form, &$amount) {
-    return self::singleton()->invoke(['pageType', 'form', 'amount'], $pageType, $form, $amount, self::$_nullObject,
-      self::$_nullObject, self::$_nullObject, 'civicrm_buildAmount');
+    $null = NULL;
+    return self::singleton()->invoke(['pageType', 'form', 'amount'], $pageType, $form, $amount, $null,
+      $null, $null, 'civicrm_buildAmount');
   }
 
   /**
@@ -849,8 +869,9 @@ abstract class CRM_Utils_Hook {
    * @return null
    */
   public static function buildStateProvinceForCountry($countryID, &$states) {
+    $null = NULL;
     return self::singleton()->invoke(['countryID', 'states'], $countryID, $states,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $null, $null, $null, $null,
       'civicrm_buildStateProvinceForCountry'
     );
   }
@@ -869,8 +890,9 @@ abstract class CRM_Utils_Hook {
    * @return null
    */
   public static function tabset($tabsetName, &$tabs, $context) {
+    $null = NULL;
     return self::singleton()->invoke(['tabsetName', 'tabs', 'context'], $tabsetName, $tabs,
-      $context, self::$_nullObject, self::$_nullObject, self::$_nullObject, 'civicrm_tabset'
+      $context, $null, $null, $null, 'civicrm_tabset'
     );
   }
 
@@ -883,8 +905,9 @@ abstract class CRM_Utils_Hook {
    * @return null
    */
   public static function tokens(&$tokens) {
+    $null = NULL;
     return self::singleton()->invoke(['tokens'], $tokens,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject, 'civicrm_tokens'
+      $null, $null, $null, $null, $null, 'civicrm_tokens'
     );
   }
 
@@ -897,8 +920,9 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function alterAdminPanel(&$panels) {
+    $null = NULL;
     return self::singleton()->invoke(['panels'], $panels,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $null, $null, $null, $null, $null,
       'civicrm_alterAdminPanel'
     );
   }
@@ -927,8 +951,9 @@ abstract class CRM_Utils_Hook {
     $tokens = [],
     $className = NULL
   ) {
+    $null = NULL;
     return self::singleton()
-      ->invoke(['details', 'contactIDs', 'jobID', 'tokens', 'className'], $details, $contactIDs, $jobID, $tokens, $className, self::$_nullObject, 'civicrm_tokenValues');
+      ->invoke(['details', 'contactIDs', 'jobID', 'tokens', 'className'], $details, $contactIDs, $jobID, $tokens, $className, $null, 'civicrm_tokenValues');
   }
 
   /**
@@ -941,8 +966,9 @@ abstract class CRM_Utils_Hook {
    * @return null
    */
   public static function pageRun(&$page) {
+    $null = NULL;
     return self::singleton()->invoke(['page'], $page,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $null, $null, $null, $null, $null,
       'civicrm_pageRun'
     );
   }
@@ -959,8 +985,9 @@ abstract class CRM_Utils_Hook {
    * @return null
    */
   public static function copy($objectName, &$object) {
+    $null = NULL;
     return self::singleton()->invoke(['objectName', 'object'], $objectName, $object,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $null, $null, $null, $null,
       'civicrm_copy'
     );
   }
@@ -984,8 +1011,9 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function unsubscribeGroups($op, $mailingId, $contactId, &$groups, &$baseGroups) {
+    $null = NULL;
     return self::singleton()
-      ->invoke(['op', 'mailingId', 'contactId', 'groups', 'baseGroups'], $op, $mailingId, $contactId, $groups, $baseGroups, self::$_nullObject, 'civicrm_unsubscribeGroups');
+      ->invoke(['op', 'mailingId', 'contactId', 'groups', 'baseGroups'], $op, $mailingId, $contactId, $groups, $baseGroups, $null, 'civicrm_unsubscribeGroups');
   }
 
   /**
@@ -1003,15 +1031,13 @@ abstract class CRM_Utils_Hook {
    *   Only add/edit/remove the specific field options you intend to affect.
    * @param bool $detailedFormat
    *   If true, the options are in an ID => array ( 'id' => ID, 'label' => label, 'value' => value ) format
-   * @param array $selectAttributes
-   *   Contain select attribute(s) if any.
    *
    * @return mixed
    */
-  public static function customFieldOptions($customFieldID, &$options, $detailedFormat = FALSE, $selectAttributes = []) {
-    // Weird: $selectAttributes is inputted but not outputted.
+  public static function customFieldOptions($customFieldID, &$options, $detailedFormat = FALSE) {
+    $null = NULL;
     return self::singleton()->invoke(['customFieldID', 'options', 'detailedFormat'], $customFieldID, $options, $detailedFormat,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $null, $null, $null,
       'civicrm_customFieldOptions'
     );
   }
@@ -1027,8 +1053,9 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function fieldOptions($entity, $field, &$options, $params) {
+    $null = NULL;
     return self::singleton()->invoke(['entity', 'field', 'options', 'params'], $entity, $field, $options, $params,
-      self::$_nullObject, self::$_nullObject,
+      $null, $null,
       'civicrm_fieldOptions'
     );
   }
@@ -1053,8 +1080,9 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function searchTasks($objectType, &$tasks) {
+    $null = NULL;
     return self::singleton()->invoke(['objectType', 'tasks'], $objectType, $tasks,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $null, $null, $null, $null,
       'civicrm_searchTasks'
     );
   }
@@ -1066,8 +1094,9 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function eventDiscount(&$form, &$params) {
+    $null = NULL;
     return self::singleton()->invoke(['form', 'params'], $form, $params,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $null, $null, $null, $null,
       'civicrm_eventDiscount'
     );
   }
@@ -1084,8 +1113,9 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function mailSetupActions(&$setupActions) {
-    return self::singleton()->invoke(['setupActions'], $setupActions, self::$_nullObject, self::$_nullObject,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject,
+    $null = NULL;
+    return self::singleton()->invoke(['setupActions'], $setupActions, $null, $null,
+      $null, $null, $null,
       'civicrm_mailSetupActions'
     );
   }
@@ -1103,8 +1133,9 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function mailingGroups(&$form, &$groups, &$mailings) {
+    $null = NULL;
     return self::singleton()->invoke(['form', 'groups', 'mailings'], $form, $groups, $mailings,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $null, $null, $null,
       'civicrm_mailingGroups'
     );
   }
@@ -1120,8 +1151,9 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function mailingTemplateTypes(&$types) {
-    return self::singleton()->invoke(['types'], $types, self::$_nullObject, self::$_nullObject,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject,
+    $null = NULL;
+    return self::singleton()->invoke(['types'], $types, $null, $null,
+      $null, $null, $null,
       'civicrm_mailingTemplateTypes'
     );
   }
@@ -1141,8 +1173,9 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function membershipTypeValues(&$form, &$membershipTypes) {
+    $null = NULL;
     return self::singleton()->invoke(['form', 'membershipTypes'], $form, $membershipTypes,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $null, $null, $null, $null,
       'civicrm_membershipTypeValues'
     );
   }
@@ -1161,8 +1194,9 @@ abstract class CRM_Utils_Hook {
    *   The html snippet to include in the contact summary
    */
   public static function summary($contactID, &$content, &$contentPlacement = self::SUMMARY_BELOW) {
+    $null = NULL;
     return self::singleton()->invoke(['contactID', 'content', 'contentPlacement'], $contactID, $content, $contentPlacement,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $null, $null, $null,
       'civicrm_summary'
     );
   }
@@ -1192,8 +1226,9 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function contactListQuery(&$query, $queryText, $context, $id) {
+    $null = NULL;
     return self::singleton()->invoke(['query', 'queryText', 'context', 'id'], $query, $queryText, $context, $id,
-      self::$_nullObject, self::$_nullObject,
+      $null, $null,
       'civicrm_contactListQuery'
     );
   }
@@ -1225,8 +1260,9 @@ abstract class CRM_Utils_Hook {
     &$rawParams,
     &$cookedParams
   ) {
+    $null = NULL;
     return self::singleton()->invoke(['paymentObj', 'rawParams', 'cookedParams'], $paymentObj, $rawParams, $cookedParams,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $null, $null, $null,
       'civicrm_alterPaymentProcessorParams'
     );
   }
@@ -1243,8 +1279,9 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function alterMailParams(&$params, $context = NULL) {
+    $null = NULL;
     return self::singleton()->invoke(['params', 'context'], $params, $context,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $null, $null, $null, $null,
       'civicrm_alterMailParams'
     );
   }
@@ -1270,8 +1307,9 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function alterMailStore(&$params) {
+    $null = NULL;
     return self::singleton()->invoke(['params'], $params, $context,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $null, $null, $null, $null,
       'civicrm_alterMailStore'
     );
   }
@@ -1295,8 +1333,9 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function alterCalculatedMembershipStatus(&$membershipStatus, $arguments, $membership) {
+    $null = NULL;
     return self::singleton()->invoke(['membershipStatus', 'arguments', 'membership'], $membershipStatus, $arguments,
-      $membership, self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $membership, $null, $null, $null,
       'civicrm_alterCalculatedMembershipStatus'
     );
   }
@@ -1310,8 +1349,9 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function alterMailContent(&$content) {
+    $null = NULL;
     return self::singleton()->invoke(['content'], $content,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $null, $null, $null, $null, $null,
       'civicrm_alterMailContent'
     );
   }
@@ -1327,8 +1367,9 @@ abstract class CRM_Utils_Hook {
    *   and the value is an array with keys 'label' and 'value' specifying label/value pairs
    */
   public static function caseSummary($caseID) {
+    $null = NULL;
     return self::singleton()->invoke(['caseID'], $caseID,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $null, $null, $null, $null, $null,
       'civicrm_caseSummary'
     );
   }
@@ -1341,8 +1382,9 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function caseTypes(&$caseTypes) {
+    $null = NULL;
     return self::singleton()
-      ->invoke(['caseTypes'], $caseTypes, self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject, 'civicrm_caseTypes');
+      ->invoke(['caseTypes'], $caseTypes, $null, $null, $null, $null, $null, 'civicrm_caseTypes');
   }
 
   /**
@@ -1363,8 +1405,9 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function caseEmailSubjectPatterns(&$subjectPatterns) {
+    $null = NULL;
     return self::singleton()
-      ->invoke(['caseEmailSubjectPatterns'], $subjectPatterns, self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject, 'civicrm_caseEmailSubjectPatterns');
+      ->invoke(['caseEmailSubjectPatterns'], $subjectPatterns, $null, $null, $null, $null, $null, 'civicrm_caseEmailSubjectPatterns');
   }
 
   /**
@@ -1377,8 +1420,9 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function config(&$config) {
+    $null = NULL;
     return self::singleton()->invoke(['config'], $config,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $null, $null, $null, $null, $null,
       'civicrm_config'
     );
   }
@@ -1396,8 +1440,9 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function optionValues(&$options, $groupName) {
+    $null = NULL;
     return self::singleton()->invoke(['options', 'groupName'], $options, $groupName,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $null, $null, $null, $null,
       'civicrm_optionValues'
     );
   }
@@ -1411,8 +1456,9 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function navigationMenu(&$params) {
+    $null = NULL;
     return self::singleton()->invoke(['params'], $params,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $null, $null, $null, $null, $null,
       'civicrm_navigationMenu'
     );
   }
@@ -1434,7 +1480,8 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function merge($type, &$data, $mainId = NULL, $otherId = NULL, $tables = NULL) {
-    return self::singleton()->invoke(['type', 'data', 'mainId', 'otherId', 'tables'], $type, $data, $mainId, $otherId, $tables, self::$_nullObject, 'civicrm_merge');
+    $null = NULL;
+    return self::singleton()->invoke(['type', 'data', 'mainId', 'otherId', 'tables'], $type, $data, $mainId, $otherId, $tables, $null, 'civicrm_merge');
   }
 
   /**
@@ -1452,7 +1499,8 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function alterLocationMergeData(&$blocksDAO, $mainId, $otherId, $migrationInfo) {
-    return self::singleton()->invoke(['blocksDAO', 'mainId', 'otherId', 'migrationInfo'], $blocksDAO, $mainId, $otherId, $migrationInfo, self::$_nullObject, self::$_nullObject, 'civicrm_alterLocationMergeData');
+    $null = NULL;
+    return self::singleton()->invoke(['blocksDAO', 'mainId', 'otherId', 'migrationInfo'], $blocksDAO, $mainId, $otherId, $migrationInfo, $null, $null, 'civicrm_alterLocationMergeData');
   }
 
   /**
@@ -1464,8 +1512,9 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function notePrivacy(&$noteValues) {
+    $null = NULL;
     return self::singleton()->invoke(['noteValues'], $noteValues,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $null, $null, $null, $null, $null,
       'civicrm_notePrivacy'
     );
   }
@@ -1509,8 +1558,9 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function dupeQuery($obj, $type, &$query) {
+    $null = NULL;
     return self::singleton()->invoke(['obj', 'type', 'query'], $obj, $type, $query,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $null, $null, $null,
       'civicrm_dupeQuery'
     );
   }
@@ -1534,8 +1584,9 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function findDuplicates($dedupeParams, &$dedupeResults, $contextParams) {
+    $null = NULL;
     return self::singleton()
-      ->invoke(['dedupeParams', 'dedupeResults', 'contextParams'], $dedupeParams, $dedupeResults, $contextParams, self::$_nullObject, self::$_nullObject, self::$_nullObject, 'civicrm_findDuplicates');
+      ->invoke(['dedupeParams', 'dedupeResults', 'contextParams'], $dedupeParams, $dedupeResults, $contextParams, $null, $null, $null, 'civicrm_findDuplicates');
   }
 
   /**
@@ -1553,14 +1604,17 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function emailProcessor($type, &$params, $mail, &$result, $action = NULL) {
+    $null = NULL;
     return self::singleton()
-      ->invoke(['type', 'params', 'mail', 'result', 'action'], $type, $params, $mail, $result, $action, self::$_nullObject, 'civicrm_emailProcessor');
+      ->invoke(['type', 'params', 'mail', 'result', 'action'], $type, $params, $mail, $result, $action, $null, 'civicrm_emailProcessor');
   }
 
   /**
    * This hook is called after a row has been processed and the
    * record (and associated records imported
    *
+   * @deprecated
+   *
    * @param string $object
    *   Object being imported (for now Contact only, later Contribution, Activity,.
    *                               Participant and Member)
@@ -1579,12 +1633,38 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function import($object, $usage, &$objectRef, &$params) {
+    $null = NULL;
     return self::singleton()->invoke(['object', 'usage', 'objectRef', 'params'], $object, $usage, $objectRef, $params,
-      self::$_nullObject, self::$_nullObject,
+      $null, $null,
       'civicrm_import'
     );
   }
 
+  /**
+   * Alter import mappings.
+   *
+   * @param string $importType This corresponds to the value in `civicrm_user_job.job_type`.
+   * @param string $context import or validate.
+   *   In validate context only 'cheap' lookups should be done (e.g. using cached information).
+   *   Validate is intended to quickly process a whole file for errors. You should focus on
+   *   setting or unsetting key values to or from `'invalid_import_value'`.
+   *
+   *   During import mode heavier lookups can be done (e.g using custom logic to find the
+   *   relevant contact) as this is then passed to the api functions. If a row is invalid during
+   *   import mode you should throw an exception.
+   * @param array $mappedRow (reference) The rows that have been mapped to an array of params.
+   * @param array $rowValues The row from the data source (non-associative array)
+   * @param int $userJobID id from civicrm_user_job
+   *
+   * @return mixed
+   */
+  public static function importAlterMappedRow(string $importType, string $context, array &$mappedRow, array $rowValues, int $userJobID) {
+    $null = NULL;
+    return self::singleton()->invoke(['importType', 'context', 'mappedRow', 'rowValues', 'userJobID', 'fieldMappings'], $context, $importType, $mappedRow, $rowValues, $userJobID, $null,
+      'civicrm_importAlterMappedRow'
+    );
+  }
+
   /**
    * This hook is called when API permissions are checked (cf. civicrm_api3_api_check_permission()
    * in api/v3/utils.php and _civicrm_api3_permissions() in CRM/Core/DAO/permissions.php).
@@ -1599,8 +1679,9 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function alterAPIPermissions($entity, $action, &$params, &$permissions) {
+    $null = NULL;
     return self::singleton()->invoke(['entity', 'action', 'params', 'permissions'], $entity, $action, $params, $permissions,
-      self::$_nullObject, self::$_nullObject,
+      $null, $null,
       'civicrm_alterAPIPermissions'
     );
   }
@@ -1612,8 +1693,9 @@ abstract class CRM_Utils_Hook {
    */
   public static function postSave(&$dao) {
     $hookName = 'civicrm_postSave_' . $dao->getTableName();
+    $null = NULL;
     return self::singleton()->invoke(['dao'], $dao,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $null, $null, $null, $null, $null,
       $hookName
     );
   }
@@ -1629,8 +1711,9 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function summaryActions(&$actions, $contactID = NULL) {
+    $null = NULL;
     return self::singleton()->invoke(['actions', 'contactID'], $actions, $contactID,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $null, $null, $null, $null,
       'civicrm_summaryActions'
     );
   }
@@ -1657,8 +1740,9 @@ abstract class CRM_Utils_Hook {
    *   modify the header and values object to pass the data you need
    */
   public static function searchColumns($objectName, &$headers, &$rows, &$selector) {
+    $null = NULL;
     return self::singleton()->invoke(['objectName', 'headers', 'rows', 'selector'], $objectName, $headers, $rows, $selector,
-      self::$_nullObject, self::$_nullObject,
+      $null, $null,
       'civicrm_searchColumns'
     );
   }
@@ -1674,8 +1758,9 @@ abstract class CRM_Utils_Hook {
    * @return null
    */
   public static function buildUFGroupsForModule($moduleName, &$ufGroups) {
+    $null = NULL;
     return self::singleton()->invoke(['moduleName', 'ufGroups'], $moduleName, $ufGroups,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $null, $null, $null, $null,
       'civicrm_buildUFGroupsForModule'
     );
   }
@@ -1690,8 +1775,8 @@ abstract class CRM_Utils_Hook {
    *   List of classes which may be of interest to the class-scanner.
    */
   public static function scanClasses(array &$classes) {
-    self::singleton()->invoke(['classes'], $classes, self::$_nullObject,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject,
+    self::singleton()->invoke(['classes'], $classes, $null,
+      $null, $null, $null, $null,
       'civicrm_scanClasses'
     );
   }
@@ -1715,8 +1800,9 @@ abstract class CRM_Utils_Hook {
    * @return null
    */
   public static function emailProcessorContact($email, $contactID, &$result) {
+    $null = NULL;
     return self::singleton()->invoke(['email', 'contactID', 'result'], $email, $contactID, $result,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $null, $null, $null,
       'civicrm_emailProcessorContact'
     );
   }
@@ -1755,9 +1841,9 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function alterMailingLabelParams(&$args) {
+    $null = NULL;
     return self::singleton()->invoke(['args'], $args,
-      self::$_nullObject, self::$_nullObject,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $null, $null, $null, $null, $null,
       'civicrm_alterMailingLabelParams'
     );
   }
@@ -1777,8 +1863,9 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function alterContent(&$content, $context, $tplName, &$object) {
+    $null = NULL;
     return self::singleton()->invoke(['content', 'context', 'tplName', 'object'], $content, $context, $tplName, $object,
-      self::$_nullObject, self::$_nullObject,
+      $null, $null,
       'civicrm_alterContent'
     );
   }
@@ -1799,8 +1886,9 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function alterTemplateFile($formName, &$form, $context, &$tplName) {
+    $null = NULL;
     return self::singleton()->invoke(['formName', 'form', 'context', 'tplName'], $formName, $form, $context, $tplName,
-      self::$_nullObject, self::$_nullObject,
+      $null, $null,
       'civicrm_alterTemplateFile'
     );
   }
@@ -1818,9 +1906,9 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function crypto($crypto) {
-    return self::singleton()->invoke(['crypto'], $crypto, self::$_nullObject,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject,
-      self::$_nullObject,
+    $null = NULL;
+    return self::singleton()->invoke(['crypto'], $crypto, $null,
+      $null, $null, $null, $null,
       'civicrm_crypto'
     );
   }
@@ -1844,9 +1932,9 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function triggerInfo(&$info, $tableName = NULL) {
+    $null = NULL;
     return self::singleton()->invoke(['info', 'tableName'], $info, $tableName,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject,
-      self::$_nullObject,
+      $null, $null, $null, $null,
       'civicrm_triggerInfo'
     );
   }
@@ -1862,9 +1950,9 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function translateFields(&$fields) {
-    return self::singleton()->invoke(['fields'], $fields, self::$_nullObject,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject,
-      self::$_nullObject,
+    $null = NULL;
+    return self::singleton()->invoke(['fields'], $fields, $null,
+      $null, $null, $null, $null,
       'civicrm_translateFields'
     );
   }
@@ -1877,9 +1965,9 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function alterLogTables(&$logTableSpec) {
+    $null = NULL;
     return self::singleton()->invoke(['logTableSpec'], $logTableSpec, $_nullObject,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject,
-      self::$_nullObject,
+      $null, $null, $null, $null,
       'civicrm_alterLogTables'
     );
   }
@@ -1899,7 +1987,7 @@ abstract class CRM_Utils_Hook {
    */
   public static function install() {
     // Actually invoke via CRM_Extension_Manager_Module::callHook
-    throw new \RuntimeException(sprintf("The method %s::%s is just a documentation stub and should not be invoked directly.", __CLASS__, __FUNCTION__));
+    throw new RuntimeException(sprintf("The method %s::%s is just a documentation stub and should not be invoked directly.", __CLASS__, __FUNCTION__));
   }
 
   /**
@@ -1917,7 +2005,7 @@ abstract class CRM_Utils_Hook {
    */
   public static function postInstall() {
     // Actually invoke via CRM_Extension_Manager_Module::callHook
-    throw new \RuntimeException(sprintf("The method %s::%s is just a documentation stub and should not be invoked directly.", __CLASS__, __FUNCTION__));
+    throw new RuntimeException(sprintf("The method %s::%s is just a documentation stub and should not be invoked directly.", __CLASS__, __FUNCTION__));
   }
 
   /**
@@ -1927,7 +2015,7 @@ abstract class CRM_Utils_Hook {
    */
   public static function uninstall() {
     // Actually invoke via CRM_Extension_Manager_Module::callHook
-    throw new \RuntimeException(sprintf("The method %s::%s is just a documentation stub and should not be invoked directly.", __CLASS__, __FUNCTION__));
+    throw new RuntimeException(sprintf("The method %s::%s is just a documentation stub and should not be invoked directly.", __CLASS__, __FUNCTION__));
   }
 
   /**
@@ -1937,7 +2025,7 @@ abstract class CRM_Utils_Hook {
    */
   public static function enable() {
     // Actually invoke via CRM_Extension_Manager_Module::callHook
-    throw new \RuntimeException(sprintf("The method %s::%s is just a documentation stub and should not be invoked directly.", __CLASS__, __FUNCTION__));
+    throw new RuntimeException(sprintf("The method %s::%s is just a documentation stub and should not be invoked directly.", __CLASS__, __FUNCTION__));
   }
 
   /**
@@ -1947,7 +2035,7 @@ abstract class CRM_Utils_Hook {
    */
   public static function disable() {
     // Actually invoke via CRM_Extension_Manager_Module::callHook
-    throw new \RuntimeException(sprintf("The method %s::%s is just a documentation stub and should not be invoked directly.", __CLASS__, __FUNCTION__));
+    throw new RuntimeException(sprintf("The method %s::%s is just a documentation stub and should not be invoked directly.", __CLASS__, __FUNCTION__));
   }
 
   /**
@@ -1965,9 +2053,9 @@ abstract class CRM_Utils_Hook {
    *   the return value is ignored
    */
   public static function alterRedirect(&$url, &$context) {
+    $null = NULL;
     return self::singleton()->invoke(['url', 'context'], $url,
-      $context, self::$_nullObject,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $context, $null, $null, $null, $null,
       'civicrm_alterRedirect'
     );
   }
@@ -1980,9 +2068,9 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function alterReportVar($varType, &$var, &$object) {
+    $null = NULL;
     return self::singleton()->invoke(['varType', 'var', 'object'], $varType, $var, $object,
-      self::$_nullObject,
-      self::$_nullObject, self::$_nullObject,
+      $null, $null, $null,
       'civicrm_alterReportVar'
     );
   }
@@ -1992,7 +2080,7 @@ abstract class CRM_Utils_Hook {
    *
    * @param string $op
    *   The type of operation being performed; 'check' or 'enqueue'.
-   * @param CRM_Queue_Queue $queue
+   * @param CRM_Queue_Queue|null $queue
    *   (for 'enqueue') the modifiable list of pending up upgrade tasks.
    *
    * @return bool|null
@@ -2001,9 +2089,9 @@ abstract class CRM_Utils_Hook {
    *   FALSE, if $op is 'check' and upgrades are not pending.
    */
   public static function upgrade($op, CRM_Queue_Queue $queue = NULL) {
+    $null = NULL;
     return self::singleton()->invoke(['op', 'queue'], $op, $queue,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject,
-      self::$_nullObject,
+      $null, $null, $null, $null,
       'civicrm_upgrade'
     );
   }
@@ -2019,9 +2107,9 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function postEmailSend(&$params) {
+    $null = NULL;
     return self::singleton()->invoke(['params'], $params,
-      self::$_nullObject, self::$_nullObject,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $null, $null, $null, $null, $null,
       'civicrm_postEmailSend'
     );
   }
@@ -2035,9 +2123,9 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function postMailing($mailingId) {
+    $null = NULL;
     return self::singleton()->invoke(['mailingId'], $mailingId,
-      self::$_nullObject, self::$_nullObject,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $null, $null, $null, $null, $null,
       'civicrm_postMailing'
     );
   }
@@ -2051,9 +2139,9 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function alterSettingsFolders(&$settingsFolders) {
+    $null = NULL;
     return self::singleton()->invoke(['settingsFolders'], $settingsFolders,
-      self::$_nullObject, self::$_nullObject,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $null, $null, $null, $null, $null,
       'civicrm_alterSettingsFolders'
     );
   }
@@ -2070,9 +2158,10 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function alterSettingsMetaData(&$settingsMetaData, $domainID, $profile) {
+    $null = NULL;
     return self::singleton()->invoke(['settingsMetaData', 'domainID', 'profile'], $settingsMetaData,
       $domainID, $profile,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $null, $null, $null,
       'civicrm_alterSettingsMetaData'
     );
   }
@@ -2088,9 +2177,11 @@ abstract class CRM_Utils_Hook {
    *   The return value is ignored
    */
   public static function apiWrappers(&$wrappers, $apiRequest) {
+    $null = NULL;
     return self::singleton()
-      ->invoke(['wrappers', 'apiRequest'], $wrappers, $apiRequest, self::$_nullObject, self::$_nullObject, self::$_nullObject,
-        self::$_nullObject, 'civicrm_apiWrappers'
+      ->invoke(['wrappers', 'apiRequest'], $wrappers, $apiRequest,
+        $null, $null, $null, $null,
+        'civicrm_apiWrappers'
       );
   }
 
@@ -2103,8 +2194,9 @@ abstract class CRM_Utils_Hook {
    *   The return value is ignored.
    */
   public static function cron($jobManager) {
+    $null = NULL;
     return self::singleton()->invoke(['jobManager'],
-      $jobManager, self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $jobManager, $null, $null, $null, $null, $null,
       'civicrm_cron'
     );
   }
@@ -2120,8 +2212,9 @@ abstract class CRM_Utils_Hook {
    *   The return value is ignored
    */
   public static function permission(&$newPermissions) {
-    return self::singleton()->invoke(['permissions'], $newPermissions, self::$_nullObject,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject,
+    $null = NULL;
+    return self::singleton()->invoke(['permissions'], $newPermissions, $null,
+      $null, $null, $null, $null,
       'civicrm_permission'
     );
   }
@@ -2145,8 +2238,9 @@ abstract class CRM_Utils_Hook {
    * @see Civi\Api4\Permission::get()
    */
   public static function permissionList(&$permissions) {
+    $null = NULL;
     return self::singleton()->invoke(['permissions'], $permissions,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $null, $null, $null, $null, $null,
       'civicrm_permissionList'
     );
   }
@@ -2166,8 +2260,9 @@ abstract class CRM_Utils_Hook {
    *   The return value is ignored
    */
   public static function permission_check($permission, &$granted, $contactId) {
+    $null = NULL;
     return self::singleton()->invoke(['permission', 'granted', 'contactId'], $permission, $granted, $contactId,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $null, $null, $null,
       'civicrm_permission_check'
     );
   }
@@ -2207,20 +2302,20 @@ abstract class CRM_Utils_Hook {
    *   The return value is ignored
    */
   public static function cryptoRotateKey($tag, $log) {
-    return self::singleton()->invoke(['tag', 'log'], $tag, $log, self::$_nullObject,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject,
+    $null = NULL;
+    return self::singleton()->invoke(['tag', 'log'], $tag, $log, $null,
+      $null, $null, $null,
       'civicrm_cryptoRotateKey'
     );
   }
 
   /**
    * @param CRM_Core_Exception $exception
-   * @param mixed $request
-   *   Reserved for future use.
    */
-  public static function unhandledException($exception, $request = NULL) {
-    $event = new \Civi\Core\Event\UnhandledExceptionEvent($exception, self::$_nullObject);
-    \Civi::dispatcher()->dispatch('hook_civicrm_unhandled_exception', $event);
+  public static function unhandledException($exception) {
+    $null = NULL;
+    $event = new \Civi\Core\Event\UnhandledExceptionEvent($exception, $null);
+    Civi::dispatcher()->dispatch('hook_civicrm_unhandled_exception', $event);
   }
 
   /**
@@ -2241,8 +2336,9 @@ abstract class CRM_Utils_Hook {
    *   The return value is ignored
    */
   public static function entityTypes(&$entityTypes) {
-    return self::singleton()->invoke(['entityTypes'], $entityTypes, self::$_nullObject, self::$_nullObject,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject, 'civicrm_entityTypes'
+    $null = NULL;
+    return self::singleton()->invoke(['entityTypes'], $entityTypes, $null, $null,
+      $null, $null, $null, 'civicrm_entityTypes'
     );
   }
 
@@ -2265,8 +2361,9 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function buildProfile($profileName) {
-    return self::singleton()->invoke(['profileName'], $profileName, self::$_nullObject, self::$_nullObject, self::$_nullObject,
-      self::$_nullObject, self::$_nullObject, 'civicrm_buildProfile');
+    $null = NULL;
+    return self::singleton()->invoke(['profileName'], $profileName, $null, $null, $null,
+      $null, $null, 'civicrm_buildProfile');
   }
 
   /**
@@ -2276,8 +2373,9 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function validateProfile($profileName) {
-    return self::singleton()->invoke(['profileName'], $profileName, self::$_nullObject, self::$_nullObject, self::$_nullObject,
-      self::$_nullObject, self::$_nullObject, 'civicrm_validateProfile');
+    $null = NULL;
+    return self::singleton()->invoke(['profileName'], $profileName, $null, $null, $null,
+      $null, $null, 'civicrm_validateProfile');
   }
 
   /**
@@ -2287,8 +2385,9 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function processProfile($profileName) {
-    return self::singleton()->invoke(['profileName'], $profileName, self::$_nullObject, self::$_nullObject, self::$_nullObject,
-      self::$_nullObject, self::$_nullObject, 'civicrm_processProfile');
+    $null = NULL;
+    return self::singleton()->invoke(['profileName'], $profileName, $null, $null, $null,
+      $null, $null, 'civicrm_processProfile');
   }
 
   /**
@@ -2298,8 +2397,9 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function viewProfile($profileName) {
-    return self::singleton()->invoke(['profileName'], $profileName, self::$_nullObject, self::$_nullObject, self::$_nullObject,
-      self::$_nullObject, self::$_nullObject, 'civicrm_viewProfile');
+    $null = NULL;
+    return self::singleton()->invoke(['profileName'], $profileName, $null, $null, $null,
+      $null, $null, 'civicrm_viewProfile');
   }
 
   /**
@@ -2309,8 +2409,9 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function searchProfile($profileName) {
-    return self::singleton()->invoke(['profileName'], $profileName, self::$_nullObject, self::$_nullObject, self::$_nullObject,
-      self::$_nullObject, self::$_nullObject, 'civicrm_searchProfile');
+    $null = NULL;
+    return self::singleton()->invoke(['profileName'], $profileName, $null, $null, $null,
+      $null, $null, 'civicrm_searchProfile');
   }
 
   /**
@@ -2329,8 +2430,9 @@ abstract class CRM_Utils_Hook {
    *   the return value is ignored
    */
   public static function alterBadge($labelName, &$label, &$format, &$participant) {
+    $null = NULL;
     return self::singleton()
-      ->invoke(['labelName', 'label', 'format', 'participant'], $labelName, $label, $format, $participant, self::$_nullObject, self::$_nullObject, 'civicrm_alterBadge');
+      ->invoke(['labelName', 'label', 'format', 'participant'], $labelName, $label, $format, $participant, $null, $null, 'civicrm_alterBadge');
   }
 
   /**
@@ -2346,8 +2448,9 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function alterBarcode(&$data, $type = 'barcode', $context = 'name_badge') {
-    return self::singleton()->invoke(['data', 'type', 'context'], $data, $type, $context, self::$_nullObject,
-      self::$_nullObject, self::$_nullObject, 'civicrm_alterBarcode');
+    $null = NULL;
+    return self::singleton()->invoke(['data', 'type', 'context'], $data, $type, $context, $null,
+      $null, $null, 'civicrm_alterBarcode');
   }
 
   /**
@@ -2364,8 +2467,9 @@ abstract class CRM_Utils_Hook {
    * @see Mail::factory
    */
   public static function alterMailer(&$mailer, $driver, $params) {
+    $null = NULL;
     return self::singleton()
-      ->invoke(['mailer', 'driver', 'params'], $mailer, $driver, $params, self::$_nullObject, self::$_nullObject, self::$_nullObject, 'civicrm_alterMailer');
+      ->invoke(['mailer', 'driver', 'params'], $mailer, $driver, $params, $null, $null, $null, 'civicrm_alterMailer');
   }
 
   /**
@@ -2378,8 +2482,9 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function queryObjects(&$queryObjects, $type = 'Contact') {
+    $null = NULL;
     return self::singleton()
-      ->invoke(['queryObjects', 'type'], $queryObjects, $type, self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject, 'civicrm_queryObjects');
+      ->invoke(['queryObjects', 'type'], $queryObjects, $type, $null, $null, $null, $null, 'civicrm_queryObjects');
   }
 
   /**
@@ -2393,8 +2498,9 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function dashboard_defaults($availableDashlets, &$defaultDashlets) {
+    $null = NULL;
     return self::singleton()
-      ->invoke(['availableDashlets', 'defaultDashlets'], $availableDashlets, $defaultDashlets, self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject, 'civicrm_dashboard_defaults');
+      ->invoke(['availableDashlets', 'defaultDashlets'], $availableDashlets, $defaultDashlets, $null, $null, $null, $null, 'civicrm_dashboard_defaults');
   }
 
   /**
@@ -2409,8 +2515,9 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function pre_case_merge($mainContactId, $mainCaseId = NULL, $otherContactId = NULL, $otherCaseId = NULL, $changeClient = FALSE) {
+    $null = NULL;
     return self::singleton()
-      ->invoke(['mainContactId', 'mainCaseId', 'otherContactId', 'otherCaseId', 'changeClient'], $mainContactId, $mainCaseId, $otherContactId, $otherCaseId, $changeClient, self::$_nullObject, 'civicrm_pre_case_merge');
+      ->invoke(['mainContactId', 'mainCaseId', 'otherContactId', 'otherCaseId', 'changeClient'], $mainContactId, $mainCaseId, $otherContactId, $otherCaseId, $changeClient, $null, 'civicrm_pre_case_merge');
   }
 
   /**
@@ -2425,8 +2532,9 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function post_case_merge($mainContactId, $mainCaseId = NULL, $otherContactId = NULL, $otherCaseId = NULL, $changeClient = FALSE) {
+    $null = NULL;
     return self::singleton()
-      ->invoke(['mainContactId', 'mainCaseId', 'otherContactId', 'otherCaseId', 'changeClient'], $mainContactId, $mainCaseId, $otherContactId, $otherCaseId, $changeClient, self::$_nullObject, 'civicrm_post_case_merge');
+      ->invoke(['mainContactId', 'mainCaseId', 'otherContactId', 'otherCaseId', 'changeClient'], $mainContactId, $mainCaseId, $otherContactId, $otherCaseId, $changeClient, $null, 'civicrm_post_case_merge');
   }
 
   /**
@@ -2443,9 +2551,10 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function alterDisplayName(&$displayName, $contactId, $dao) {
+    $null = NULL;
     return self::singleton()->invoke(['displayName', 'contactId', 'dao'],
-      $displayName, $contactId, $dao, self::$_nullObject, self::$_nullObject,
-      self::$_nullObject, 'civicrm_contact_get_displayname'
+      $displayName, $contactId, $dao, $null, $null,
+      $null, 'civicrm_contact_get_displayname'
     );
   }
 
@@ -2502,8 +2611,9 @@ abstract class CRM_Utils_Hook {
    *   the return value is ignored
    */
   public static function angularModules(&$angularModules) {
+    $null = NULL;
     return self::singleton()->invoke(['angularModules'], $angularModules,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $null, $null, $null, $null, $null,
       'civicrm_angularModules'
     );
   }
@@ -2543,8 +2653,9 @@ abstract class CRM_Utils_Hook {
    *   the return value is ignored
    */
   public static function getAssetUrl(&$asset, &$params) {
+    $null = NULL;
     return self::singleton()->invoke(['asset', 'params'],
-      $asset, $params, self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $asset, $params, $null, $null, $null, $null,
       'civicrm_getAssetUrl'
     );
   }
@@ -2567,8 +2678,9 @@ abstract class CRM_Utils_Hook {
    *   the return value is ignored
    */
   public static function buildAsset($asset, $params, &$mimeType, &$content) {
+    $null = NULL;
     return self::singleton()->invoke(['asset', 'params', 'mimeType', 'content'],
-      $asset, $params, $mimeType, $content, self::$_nullObject, self::$_nullObject,
+      $asset, $params, $mimeType, $content, $null, $null,
       'civicrm_buildAsset'
     );
   }
@@ -2581,7 +2693,7 @@ abstract class CRM_Utils_Hook {
    */
   public static function caseChange(\Civi\CCase\Analyzer $analyzer) {
     $event = new \Civi\CCase\Event\CaseChangeEvent($analyzer);
-    \Civi::dispatcher()->dispatch('hook_civicrm_caseChange', $event);
+    Civi::dispatcher()->dispatch('hook_civicrm_caseChange', $event);
   }
 
   /**
@@ -2609,7 +2721,8 @@ abstract class CRM_Utils_Hook {
    * @see http://symfony.com/doc/current/components/dependency_injection/index.html
    */
   public static function container(\Symfony\Component\DependencyInjection\ContainerBuilder $container) {
-    self::singleton()->invoke(['container'], $container, self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject, 'civicrm_container');
+    $null = NULL;
+    self::singleton()->invoke(['container'], $container, $null, $null, $null, $null, $null, 'civicrm_container');
   }
 
   /**
@@ -2617,8 +2730,9 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function fileSearches(&$fileSearches) {
+    $null = NULL;
     return self::singleton()->invoke(['fileSearches'], $fileSearches,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $null, $null, $null, $null, $null,
       'civicrm_fileSearches'
     );
   }
@@ -2635,9 +2749,10 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function check(&$messages, $statusNames = [], $includeDisabled = FALSE) {
+    $null = NULL;
     return self::singleton()->invoke(['messages', 'statusNames', 'includeDisabled'],
       $messages, $statusNames, $includeDisabled,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $null, $null, $null,
       'civicrm_check'
     );
   }
@@ -2650,8 +2765,9 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function batchQuery(&$query) {
-    return self::singleton()->invoke(['query'], $query, self::$_nullObject,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject,
+    $null = NULL;
+    return self::singleton()->invoke(['query'], $query, $null,
+      $null, $null, $null, $null,
       'civicrm_batchQuery'
     );
   }
@@ -2668,8 +2784,9 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function alterDeferredRevenueItems(&$deferredRevenues, $contributionDetails, $update, $context) {
+    $null = NULL;
     return self::singleton()->invoke(['deferredRevenues', 'contributionDetails', 'update', 'context'], $deferredRevenues, $contributionDetails, $update, $context,
-      self::$_nullObject, self::$_nullObject, 'civicrm_alterDeferredRevenueItems'
+      $null, $null, 'civicrm_alterDeferredRevenueItems'
     );
   }
 
@@ -2682,8 +2799,9 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function batchItems(&$results, &$items) {
+    $null = NULL;
     return self::singleton()->invoke(['results', 'items'], $results, $items,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $null, $null, $null, $null,
       'civicrm_batchItems'
     );
   }
@@ -2697,8 +2815,9 @@ abstract class CRM_Utils_Hook {
    * @param string $region
    */
   public static function coreResourceList(&$list, $region) {
+    $null = NULL;
     self::singleton()->invoke(['list', 'region'], $list, $region,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $null, $null, $null, $null,
       'civicrm_coreResourceList'
     );
   }
@@ -2712,8 +2831,9 @@ abstract class CRM_Utils_Hook {
    * @param array $links
    */
   public static function entityRefFilters(&$filters, &$links = NULL) {
-    self::singleton()->invoke(['filters', 'links'], $filters, $links, self::$_nullObject,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject,
+    $null = NULL;
+    self::singleton()->invoke(['filters', 'links'], $filters, $links, $null,
+      $null, $null, $null,
       'civicrm_entityRefFilters'
     );
   }
@@ -2726,8 +2846,9 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function idsException(&$skip) {
-    return self::singleton()->invoke(['skip'], $skip, self::$_nullObject,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject,
+    $null = NULL;
+    return self::singleton()->invoke(['skip'], $skip, $null,
+      $null, $null, $null, $null,
       'civicrm_idsException'
     );
   }
@@ -2742,8 +2863,9 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function geocoderFormat($geoProvider, &$values, $xml) {
+    $null = NULL;
     return self::singleton()->invoke(['geoProvider', 'values', 'xml'], $geoProvider, $values, $xml,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $null, $null, $null,
       'civicrm_geocoderFormat'
     );
   }
@@ -2756,7 +2878,8 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function inboundSMS(&$message) {
-    return self::singleton()->invoke(['message'], $message, self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject, 'civicrm_inboundSMS');
+    $null = NULL;
+    return self::singleton()->invoke(['message'], $message, $null, $null, $null, $null, $null, 'civicrm_inboundSMS');
   }
 
   /**
@@ -2767,8 +2890,9 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function alterEntityRefParams(&$params, $formName) {
+    $null = NULL;
     return self::singleton()->invoke(['params', 'formName'], $params, $formName,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $null, $null, $null, $null,
       'civicrm_alterEntityRefParams'
     );
   }
@@ -2789,14 +2913,17 @@ abstract class CRM_Utils_Hook {
    * @param array $outcomes
    *   The outcomes of each task. One of 'ok', 'retry', 'fail'.
    *   Keys should match the keys in $items.
+   * @return mixed
+   * @throws CRM_Core_Exception
    */
   public static function queueRun(CRM_Queue_Queue $queue, array $items, &$outcomes) {
     $runner = $queue->getSpec('runner');
     if (empty($runner) || !preg_match(';^[A-Za-z0-9_]+$;', $runner)) {
       throw new \CRM_Core_Exception("Cannot autorun queue: " . $queue->getName());
     }
+    $null = NULL;
     return self::singleton()->invoke(['queue', 'items', 'outcomes'], $queue, $items,
-      $outcomes, $exception, self::$_nullObject, self::$_nullObject,
+      $outcomes, $exception, $null, $null,
       'civicrm_queueRun_' . $runner
     );
   }
@@ -2810,8 +2937,9 @@ abstract class CRM_Utils_Hook {
    *   Ex: 'completed', 'active', 'aborted'
    */
   public static function queueStatus(CRM_Queue_Queue $queue, string $status): void {
+    $null = NULL;
     self::singleton()->invoke(['queue', 'status'], $queue, $status,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $null, $null, $null, $null,
       'civicrm_queueStatus'
     );
   }
@@ -2836,10 +2964,12 @@ abstract class CRM_Utils_Hook {
    *   The default outcome for task-errors is determined by the queue settings (`civicrm_queue.error`).
    * @param \Throwable|null $exception
    *   If the task failed, this is the cause of the failure.
+   * @return mixed
    */
   public static function queueTaskError(CRM_Queue_Queue $queue, $item, &$outcome, ?Throwable $exception) {
+    $null = NULL;
     return self::singleton()->invoke(['job', 'params'], $queue, $item,
-      $outcome, $exception, self::$_nullObject, self::$_nullObject,
+      $outcome, $exception, $null, $null,
       'civicrm_queueTaskError'
     );
   }
@@ -2853,8 +2983,9 @@ abstract class CRM_Utils_Hook {
    *   The arguments to be given to the job
    */
   public static function preJob($job, $params) {
+    $null = NULL;
     return self::singleton()->invoke(['job', 'params'], $job, $params,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $null, $null, $null, $null,
       'civicrm_preJob'
     );
   }
@@ -2870,8 +3001,9 @@ abstract class CRM_Utils_Hook {
    *   The result of the API call, or the thrown exception if any
    */
   public static function postJob($job, $params, $result) {
+    $null = NULL;
     return self::singleton()->invoke(['job', 'params', 'result'], $job, $params, $result,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $null, $null, $null,
       'civicrm_postJob'
     );
   }
@@ -2890,22 +3022,24 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function alterMailingRecipients(&$mailingObject, &$criteria, $context) {
+    $null = NULL;
     return self::singleton()->invoke(['mailingObject', 'params', 'context'],
       $mailingObject, $criteria, $context,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $null, $null, $null,
       'civicrm_alterMailingRecipients'
     );
   }
 
   /**
-   * ALlow Extensions to custom process IPN hook data such as sending Google Analyitcs information based on the IPN
+   * Allow Extensions to custom process IPN hook data such as sending Google Analytics information based on the IPN
    * @param array $IPNData - Array of IPN Data
    * @return mixed
    */
   public static function postIPNProcess(&$IPNData) {
+    $null = NULL;
     return self::singleton()->invoke(['IPNData'],
-      $IPNData, self::$_nullObject, self::$_nullObject,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $IPNData, $null, $null,
+      $null, $null, $null,
       'civicrm_postIPNProcess'
     );
   }
@@ -2917,9 +3051,10 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function alterUFFields(&$fields) {
+    $null = NULL;
     return self::singleton()->invoke(['fields'],
-      $fields, self::$_nullObject, self::$_nullObject,
-      self::$_nullObject, self::$_nullObject, self::$_nullObject,
+      $fields, $null, $null,
+      $null, $null, $null,
       'civicrm_alterUFFields'
     );
   }
@@ -2935,10 +3070,11 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function alterCustomFieldDisplayValue(&$displayValue, $value, $entityId, $fieldInfo) {
+    $null = NULL;
     return self::singleton()->invoke(
       ['displayValue', 'value', 'entityId', 'fieldInfo'],
-      $displayValue, $value, $entityId, $fieldInfo, self::$_nullObject,
-      self::$_nullObject, 'civicrm_alterCustomFieldDisplayValue'
+      $displayValue, $value, $entityId, $fieldInfo, $null,
+      $null, 'civicrm_alterCustomFieldDisplayValue'
     );
   }
 
@@ -2968,10 +3104,12 @@ abstract class CRM_Utils_Hook {
    * @return mixed
    */
   public static function alterApiRoutePermissions(&$permissions, $entity, $action) {
+    $null = NULL;
     return self::singleton()->invoke(
       ['permissions', 'entity', 'action'],
-      $permissions, $entity, $action, self::$_nullObject, self::$_nullObject,
-      self::$_nullObject, 'civicrm_alterApiRoutePermissions'
+      $permissions, $entity, $action,
+      $null, $null, $null,
+      'civicrm_alterApiRoutePermissions'
     );
   }
 
@@ -2987,10 +3125,12 @@ abstract class CRM_Utils_Hook {
    *   Leave this at FALSE to allow the core code to perform validation. Set to TRUE to invalidate
    */
   public static function invalidateChecksum($contactID, $checksum, &$invalid) {
+    $null = NULL;
     return self::singleton()->invoke(
       ['contactID', 'checksum', 'invalid'],
-      $contactID, $checksum, $invalid, self::$_nullObject, self::$_nullObject,
-      self::$_nullObject, 'civicrm_invalidateChecksum'
+      $contactID, $checksum, $invalid,
+      $null, $null, $null,
+      'civicrm_invalidateChecksum'
     );
   }
 
diff --git a/civicrm/CRM/Utils/PDF/Utils.php b/civicrm/CRM/Utils/PDF/Utils.php
index 014c2d846e40cef2e75adf58bcb0b7abd8bc9312..400988f31ea0ac43fa8fd73d17c6740013286c87 100644
--- a/civicrm/CRM/Utils/PDF/Utils.php
+++ b/civicrm/CRM/Utils/PDF/Utils.php
@@ -109,66 +109,6 @@ class CRM_Utils_PDF_Utils {
     }
   }
 
-  /**
-   * Convert html to tcpdf.
-   *
-   * @deprecated
-   * @param $paper_size
-   * @param $orientation
-   * @param $margins
-   * @param $html
-   * @param $output
-   * @param $fileName
-   * @param $stationery_path
-   */
-  public static function _html2pdf_tcpdf($paper_size, $orientation, $margins, $html, $output, $fileName, $stationery_path) {
-    CRM_Core_Error::deprecatedFunctionWarning('CRM_Utils_PDF::_html2pdf_dompdf');
-    return self::_html2pdf_dompdf($paper_size, $orientation, $margins, $html, $output, $fileName);
-    // Documentation on the TCPDF library can be found at: http://www.tcpdf.org
-    // This function also uses the FPDI library documented at: http://www.setasign.com/products/fpdi/about/
-    // Syntax borrowed from https://github.com/jake-mw/CDNTaxReceipts/blob/master/cdntaxreceipts.functions.inc
-    require_once 'tcpdf/tcpdf.php';
-    // This library is only in the 'packages' area as of version 4.5
-    require_once 'FPDI/fpdi.php';
-
-    $paper_size_arr = [$paper_size[2], $paper_size[3]];
-
-    $pdf = new TCPDF($orientation, 'pt', $paper_size_arr);
-    $pdf->Open();
-
-    if (is_readable($stationery_path)) {
-      $pdf->SetStationery($stationery_path);
-    }
-
-    $pdf->SetAuthor('');
-    $pdf->SetKeywords('CiviCRM.org');
-    $pdf->setPageUnit($margins[0]);
-    $pdf->SetMargins($margins[4], $margins[1], $margins[2], TRUE);
-
-    $pdf->setJPEGQuality('100');
-    $pdf->SetAutoPageBreak(TRUE, $margins[3]);
-
-    $pdf->AddPage();
-
-    $ln = TRUE;
-    $fill = FALSE;
-    $reset_parm = FALSE;
-    $cell = FALSE;
-    $align = '';
-
-    // output the HTML content
-    $pdf->writeHTML($html, $ln, $fill, $reset_parm, $cell, $align);
-
-    // reset pointer to the last page
-    $pdf->lastPage();
-
-    // close and output the PDF
-    $pdf->Close();
-    $pdf_file = 'CiviLetter' . '.pdf';
-    $pdf->Output($pdf_file, 'D');
-    CRM_Utils_System::civiExit();
-  }
-
   /**
    * @param $paper_size
    * @param $orientation
diff --git a/civicrm/CRM/Utils/System.php b/civicrm/CRM/Utils/System.php
index a280cf539ae6e7a3bbc59d7e915f0d82f7e28694..207f6b285abcb8dc542b842e7c3122d1c5948a27 100644
--- a/civicrm/CRM/Utils/System.php
+++ b/civicrm/CRM/Utils/System.php
@@ -1102,7 +1102,7 @@ class CRM_Utils_System {
    * Encode url.
    *
    * @param string $url
-   *
+   * @deprecated
    * @return null|string
    */
   public static function urlEncode($url) {
@@ -1596,7 +1596,7 @@ class CRM_Utils_System {
    * Given a URL, return a relative URL if possible.
    *
    * @param string $url
-   *
+   * @deprecated
    * @return string
    */
   public static function relativeURL($url) {
diff --git a/civicrm/CRM/Utils/System/Base.php b/civicrm/CRM/Utils/System/Base.php
index 0fe6c55f247c8571cd89e9f8e94a6a61b429129e..72ea4f1331f7dcdcbdb9dfc6c40bcaa3715dde7f 100644
--- a/civicrm/CRM/Utils/System/Base.php
+++ b/civicrm/CRM/Utils/System/Base.php
@@ -1132,4 +1132,21 @@ abstract class CRM_Utils_System_Base {
     return $contactParameters;
   }
 
+  /**
+   * Modify standalone profile
+   *
+   * @param string $profile
+   * @param array $params
+   *
+   * @return string
+   */
+  public function modifyStandaloneProfile($profile, $params):string {
+    // Not sure how to circumvent our own navigation system to generate the
+    // right form url.
+    $urlReplaceWith = 'civicrm/profile/create&amp;gid=' . $params['gid'] . '&amp;reset=1';
+    $profile = str_replace('civicrm/admin/uf/group', $urlReplaceWith, $profile);
+
+    return $profile;
+  }
+
 }
diff --git a/civicrm/CRM/Utils/System/Drupal8.php b/civicrm/CRM/Utils/System/Drupal8.php
index e72f65eeb08c6839f24b86b74c0de439341870d2..b19ec3017e1c4b63b7c2c9d9ae39712fc03de9dd 100644
--- a/civicrm/CRM/Utils/System/Drupal8.php
+++ b/civicrm/CRM/Utils/System/Drupal8.php
@@ -542,6 +542,10 @@ class CRM_Utils_System_Drupal8 extends CRM_Utils_System_DrupalBase {
    */
   public function logger($message, $priority = NULL) {
     if (CRM_Core_Config::singleton()->userFrameworkLogging) {
+      // dev/core#3438 Prevent cv fatal if logging before CMS bootstrap
+      if (!class_exists('Drupal') || !\Drupal::hasContainer()) {
+        return;
+      }
       \Drupal::logger('civicrm')->log($priority ?? \Drupal\Core\Logger\RfcLogLevel::DEBUG, '%message', ['%message' => $message]);
     }
   }
diff --git a/civicrm/CRM/Utils/System/DrupalBase.php b/civicrm/CRM/Utils/System/DrupalBase.php
index a59bf97f6e88facec745c65fc4deee137ed8e01b..3574213f7d76ded2823ae0da2484febdb7a4be6d 100644
--- a/civicrm/CRM/Utils/System/DrupalBase.php
+++ b/civicrm/CRM/Utils/System/DrupalBase.php
@@ -824,4 +824,18 @@ abstract class CRM_Utils_System_DrupalBase extends CRM_Utils_System_Base {
     return $contactParameters;
   }
 
+  /**
+   * @inheritdoc
+   */
+  public function modifyStandaloneProfile($profile, $params):string {
+    $config = CRM_Core_Config::singleton();
+    $urlReplaceWith = 'civicrm/profile/create&amp;gid=' . $params['gid'] . '&amp;reset=1';
+    if ($config->cleanURL) {
+      $urlReplaceWith = 'civicrm/profile/create?gid=' . $params['gid'] . '&amp;reset=1';
+    }
+    $profile = str_replace('civicrm/admin/uf/group', $urlReplaceWith, $profile);
+
+    return $profile;
+  }
+
 }
diff --git a/civicrm/CRM/Utils/System/Joomla.php b/civicrm/CRM/Utils/System/Joomla.php
index d91cc5f7f7bb2f4d4c2364de3ab7000dd8be5673..0117a19bfd068648658db865ea48931be9f30501 100644
--- a/civicrm/CRM/Utils/System/Joomla.php
+++ b/civicrm/CRM/Utils/System/Joomla.php
@@ -1031,4 +1031,17 @@ class CRM_Utils_System_Joomla extends CRM_Utils_System_Base {
     return $contactParameters;
   }
 
+  /**
+   * @inheritdoc
+   */
+  public function modifyStandaloneProfile($profile, $params):string {
+    $urlReplaceWith = 'civicrm/profile/create&amp;gid=' . $params['gid'] . '&amp;reset=1';
+    $profile = str_replace('civicrm/admin/uf/group', $urlReplaceWith, $profile);
+
+    // FIXME: (CRM-3587) hack to make standalone profile work
+    // in Joomla without administrator login.
+    $profile = str_replace('/administrator/', '/index.php', $profile);
+    return $profile;
+  }
+
 }
diff --git a/civicrm/CRM/Utils/System/WordPress.php b/civicrm/CRM/Utils/System/WordPress.php
index 4d20f8949525e2cbd9afdc32c229e9aa9eaa26eb..a384dfa6eab63b26d8c5bf87f9105d99f3ae6865 100644
--- a/civicrm/CRM/Utils/System/WordPress.php
+++ b/civicrm/CRM/Utils/System/WordPress.php
@@ -1672,4 +1672,26 @@ class CRM_Utils_System_WordPress extends CRM_Utils_System_Base {
     return $contactParameters;
   }
 
+  /**
+   * @inheritdoc
+   */
+  public function modifyStandaloneProfile($profile, $params):string {
+    $urlReplaceWith = 'civicrm/profile/create&amp;gid=' . $params['gid'] . '&amp;reset=1';
+    $profile = str_replace('civicrm/admin/uf/group', $urlReplaceWith, $profile);
+
+    //@todo remove this part when it is OK to deprecate CIVICRM_UF_WP_BASEPAGE-CRM-15933
+    $config = CRM_Core_Config::singleton();
+    if (defined('CIVICRM_UF_WP_BASEPAGE')) {
+      $wpbase = CIVICRM_UF_WP_BASEPAGE;
+    }
+    elseif (!empty($config->wpBasePage)) {
+      $wpbase = $config->wpBasePage;
+    }
+    else {
+      $wpbase = 'index.php';
+    }
+    $profile = str_replace('/wp-admin/admin.php', '/' . $wpbase . '/', $profile);
+    return $profile;
+  }
+
 }
diff --git a/civicrm/CRM/Utils/Type.php b/civicrm/CRM/Utils/Type.php
index d83fbbe83f20c845395d39808ca2145aefac3805..87087711d0828139e9174b7f23019503c432ecfb 100644
--- a/civicrm/CRM/Utils/Type.php
+++ b/civicrm/CRM/Utils/Type.php
@@ -236,6 +236,7 @@ class CRM_Utils_Type {
       case 'Date':
       case 'Timestamp':
       case 'ContactReference':
+      case 'EntityReference':
       case 'MysqlOrderByDirection':
         $validatedData = self::validate($data, $type, $abort);
         if (isset($validatedData)) {
@@ -380,6 +381,7 @@ class CRM_Utils_Type {
       'Date',
       'Timestamp',
       'ContactReference',
+      'EntityReference',
       'MysqlColumnNameOrAlias',
       'MysqlOrderByDirection',
       'MysqlOrderBy',
@@ -435,12 +437,13 @@ class CRM_Utils_Type {
         break;
 
       case 'ContactReference':
+      case 'EntityReference':
         // null is valid
         if (strlen(trim($data)) == 0) {
           return trim($data);
         }
 
-        if (CRM_Utils_Rule::validContact($data)) {
+        if (CRM_Utils_Rule::positiveInteger($data)) {
           return (int) $data;
         }
         break;
diff --git a/civicrm/CRM/Utils/XML.php b/civicrm/CRM/Utils/XML.php
index 12eb7a629ee8bd4c7c4bbd25f0a76b8f26c742f8..e817786236b7055157e7fbc7ff46d90c751be88a 100644
--- a/civicrm/CRM/Utils/XML.php
+++ b/civicrm/CRM/Utils/XML.php
@@ -135,4 +135,108 @@ class CRM_Utils_XML {
     return $arr;
   }
 
+  /**
+   * Apply a filter to the textual parts of the markup.
+   *
+   * @param string $markup
+   *   Ex: '<b>Hello world &amp; universe</b>'
+   * @param callable $filter
+   *   Ex: 'mb_strtoupper'
+   * @return string
+   *   Ex: '<b>HELLO WORLD &amp; UNIVERSE</b>'
+   */
+  public static function filterMarkupText(string $markup, callable $filter): string {
+    $tokens = static::tokenizeMarkupText($markup);
+    foreach ($tokens as &$tokenRec) {
+      if ($tokenRec[0] === 'text') {
+        $tokenRec[1] = htmlentities($filter(html_entity_decode($tokenRec[1])));
+      }
+    }
+    return implode('', array_column($tokens, 1));
+  }
+
+  /**
+   * Split marked-up text into markup and text.
+   *
+   * @param string $markup
+   *   Ex: '<a href="#foo">link</a>'
+   * @return array
+   *   Ex: [
+   *     ['node', '<a href="#foo">'],
+   *     ['text', 'link'],
+   *     ['node', '</a>'],
+   *   ]
+   */
+  protected static function tokenizeMarkupText(string $markup): array {
+    $modes = []; /* text, node, (') quoted attr, (") quoted attr */
+    $tokens = [];
+    $buf = '';
+
+    $startToken = function (string $type) use (&$modes) {
+      array_unshift($modes, $type);
+    };
+
+    $finishToken = function () use (&$tokens, &$buf, &$modes) {
+      $type = array_shift($modes);
+      if ($buf !== '') {
+        $tokens[] = [$type, $buf];
+        $buf = '';
+      }
+    };
+
+    $startToken('text');
+    for ($i = 0; $i < mb_strlen($markup); $i++) {
+      $ch = $markup[$i];
+      switch ($modes[0] . ' ' . $ch) {
+        // Aside: Our style guide makes this harder to read. It's better with 1-case-per-line.
+        case 'text <':
+          $finishToken();
+          $startToken('node');
+          $buf .= $ch;
+          break;
+
+        case 'node >':
+          $buf .= $ch;
+          $finishToken();
+          $startToken('text');
+          break;
+
+        case "node '":
+          $buf .= $ch;
+          array_unshift($modes, "attr'");
+          break;
+
+        case 'node "':
+          $buf .= $ch;
+          array_unshift($modes, 'attr"');
+          break;
+
+        case "attr' '":
+          $buf .= $ch;
+          array_shift($modes);
+          break;
+
+        case 'attr" "':
+          $buf .= $ch;
+          array_shift($modes);
+          break;
+
+        case "attr' \\":
+          $buf .= $markup[$i] . $markup[++$i];
+          break;
+
+        case 'attr" \\':
+          $buf .= $markup[$i] . $markup[++$i];
+          break;
+
+        default:
+          $buf .= $ch;
+          break;
+      }
+    }
+    $finishToken();
+
+    return $tokens;
+  }
+
 }
diff --git a/civicrm/Civi/API/Kernel.php b/civicrm/Civi/API/Kernel.php
index ed09dce0936173d1a23736e2735d290bdb763260..8e67c3142c66f65d183e6309bb70d5df43172253 100644
--- a/civicrm/Civi/API/Kernel.php
+++ b/civicrm/Civi/API/Kernel.php
@@ -336,6 +336,13 @@ class Kernel {
    */
   public function formatApiException($e, $apiRequest) {
     $data = $e->getExtraParams();
+    $errorCode = $e->getCode();
+    if (($data['exception'] ?? NULL) instanceof \DB_Error) {
+      $errorCode = $e->getDBErrorMessage();
+      $data['sql'] = $e->getSQL();
+      $data['debug_info'] = $e->getUserInfo();
+    }
+    unset($data['exception']);
     $data['entity'] = $apiRequest['entity'] ?? NULL;
     $data['action'] = $apiRequest['action'] ?? NULL;
 
@@ -346,7 +353,7 @@ class Kernel {
       $data['trace'] = $e->getTraceAsString();
     }
 
-    return $this->createError($e->getMessage(), $data, $apiRequest, $e->getCode());
+    return $this->createError($e->getMessage(), $data, $apiRequest, $errorCode);
   }
 
   /**
diff --git a/civicrm/Civi/Api4/Action/Address/AddressSaveTrait.php b/civicrm/Civi/Api4/Action/Address/AddressSaveTrait.php
index d14fca6a1d9957025554db4812a8cc2ed7724a08..3759e978ed3448810e1eb2e4ad04476515c7d36e 100644
--- a/civicrm/Civi/Api4/Action/Address/AddressSaveTrait.php
+++ b/civicrm/Civi/Api4/Action/Address/AddressSaveTrait.php
@@ -55,7 +55,10 @@ trait AddressSaveTrait {
         $item = array_merge($item, \CRM_Core_BAO_Address::parseStreetAddress($item['street_address']));
       }
       $item['skip_geocode'] = $this->skipGeocode;
-      $saved[] = \CRM_Core_BAO_Address::add($item, $this->fixAddress);
+      if ($this->fixAddress) {
+        \CRM_Core_BAO_Address::fixAddress($item);
+      }
+      $saved[] = \CRM_Core_BAO_Address::writeRecord($item);
     }
     return $saved;
   }
diff --git a/civicrm/Civi/Api4/Action/CiviCase/CiviCaseSaveTrait.php b/civicrm/Civi/Api4/Action/CiviCase/CiviCaseSaveTrait.php
index 6b50e7593666a8d674e8ae7215fd232604efd7ab..5bc187f46cae60d8c4d7952d966d33e2aa2ba549 100644
--- a/civicrm/Civi/Api4/Action/CiviCase/CiviCaseSaveTrait.php
+++ b/civicrm/Civi/Api4/Action/CiviCase/CiviCaseSaveTrait.php
@@ -42,7 +42,7 @@ trait CiviCaseSaveTrait {
     // Add case contacts (clients)
     foreach ((array) $case['contact_id'] as $cid) {
       $contactParams = ['case_id' => $id, 'contact_id' => $cid];
-      \CRM_Case_BAO_CaseContact::create($contactParams);
+      \CRM_Case_BAO_CaseContact::writeRecord($contactParams);
     }
 
     $caseType = \CRM_Core_DAO::getFieldValue('CRM_Case_DAO_CaseType', $case['case_type_id'], 'name');
diff --git a/civicrm/Civi/Api4/Action/EntityTag/EntityTagSaveTrait.php b/civicrm/Civi/Api4/Action/EntityTag/EntityTagSaveTrait.php
deleted file mode 100644
index be8ff4b03e44a3b428a1cf456ab3adde4903f039..0000000000000000000000000000000000000000
--- a/civicrm/Civi/Api4/Action/EntityTag/EntityTagSaveTrait.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-/*
- +--------------------------------------------------------------------+
- | Copyright CiviCRM LLC. All rights reserved.                        |
- |                                                                    |
- | This work is published under the GNU AGPLv3 license with some      |
- | permitted exceptions and without any warranty. For full license    |
- | and copyright information, see https://civicrm.org/licensing       |
- +--------------------------------------------------------------------+
- */
-
-namespace Civi\Api4\Action\EntityTag;
-
-/**
- * @inheritDoc
- */
-trait EntityTagSaveTrait {
-
-  /**
-   * Override method which defaults to 'create' for oddball DAO which uses 'add'
-   *
-   * @param array $items
-   * @return array
-   */
-  protected function write(array $items) {
-    $saved = [];
-    foreach ($items as $item) {
-      $saved[] = \CRM_Core_BAO_EntityTag::add($item);
-    }
-    return $saved;
-  }
-
-}
diff --git a/civicrm/Civi/Api4/Action/EntityTag/Save.php b/civicrm/Civi/Api4/Action/EntityTag/Save.php
deleted file mode 100644
index e0819f197e126c62fdca7e78a5d76847de665210..0000000000000000000000000000000000000000
--- a/civicrm/Civi/Api4/Action/EntityTag/Save.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-/*
- +--------------------------------------------------------------------+
- | Copyright CiviCRM LLC. All rights reserved.                        |
- |                                                                    |
- | This work is published under the GNU AGPLv3 license with some      |
- | permitted exceptions and without any warranty. For full license    |
- | and copyright information, see https://civicrm.org/licensing       |
- +--------------------------------------------------------------------+
- */
-
-namespace Civi\Api4\Action\EntityTag;
-
-/**
- * @inheritDoc
- */
-class Save extends \Civi\Api4\Generic\DAOSaveAction {
-  use EntityTagSaveTrait;
-
-}
diff --git a/civicrm/Civi/Api4/Action/EntityTag/Update.php b/civicrm/Civi/Api4/Action/EntityTag/Update.php
deleted file mode 100644
index 7ae4573937b7374957a21968ddb48900c4dd76a7..0000000000000000000000000000000000000000
--- a/civicrm/Civi/Api4/Action/EntityTag/Update.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-/*
- +--------------------------------------------------------------------+
- | Copyright CiviCRM LLC. All rights reserved.                        |
- |                                                                    |
- | This work is published under the GNU AGPLv3 license with some      |
- | permitted exceptions and without any warranty. For full license    |
- | and copyright information, see https://civicrm.org/licensing       |
- +--------------------------------------------------------------------+
- */
-
-namespace Civi\Api4\Action\EntityTag;
-
-/**
- * @inheritDoc
- */
-class Update extends \Civi\Api4\Generic\DAOUpdateAction {
-  use EntityTagSaveTrait;
-
-}
diff --git a/civicrm/Civi/Api4/Action/GetActions.php b/civicrm/Civi/Api4/Action/GetActions.php
index 5f3dbd9a619761e8d3e4e94ec3e860a5caa486dd..b88db07ca40ecc1537740fb005c8fb661a1a9db3 100644
--- a/civicrm/Civi/Api4/Action/GetActions.php
+++ b/civicrm/Civi/Api4/Action/GetActions.php
@@ -93,7 +93,7 @@ class GetActions extends BasicGetAction {
               if (strpos($method->getDocComment(), '@inheritDoc') !== FALSE && !empty($methodDocs['comment']) && !empty($actionDocs['comment'])) {
                 $methodDocs['comment'] .= "\n\n" . $actionDocs['comment'];
               }
-              $actionDocs = array_filter($methodDocs) + $actionDocs;
+              $actionDocs = array_filter($methodDocs) + $actionDocs + ['deprecated' => FALSE];
             }
             $this->_actions[$actionName] += $actionDocs;
           }
@@ -131,6 +131,10 @@ class GetActions extends BasicGetAction {
         'description' => 'List of all accepted parameters',
         'data_type' => 'Array',
       ],
+      [
+        'name' => 'deprecated',
+        'data_type' => 'Boolean',
+      ],
     ];
   }
 
diff --git a/civicrm/Civi/Api4/Action/Setting/Set.php b/civicrm/Civi/Api4/Action/Setting/Set.php
index cd8413331f7341b059ac3332c27b0c1b3400bb8d..753a51876e3af362df72d1990c14a09e744c42d3 100644
--- a/civicrm/Civi/Api4/Action/Setting/Set.php
+++ b/civicrm/Civi/Api4/Action/Setting/Set.php
@@ -22,6 +22,8 @@ use Civi\Api4\Generic\Result;
  */
 class Set extends AbstractSettingAction {
 
+  use \Civi\Api4\Generic\Traits\GetSetValueTrait;
+
   /**
    * Setting names/values to set.
    *
@@ -51,15 +53,4 @@ class Set extends AbstractSettingAction {
     }
   }
 
-  /**
-   * Add an item to the values array
-   * @param string $settingName
-   * @param mixed $value
-   * @return $this
-   */
-  public function addValue($settingName, $value) {
-    $this->values[$settingName] = $value;
-    return $this;
-  }
-
 }
diff --git a/civicrm/Civi/Api4/EntityTag.php b/civicrm/Civi/Api4/EntityTag.php
index d0d8f22a8f95919e96252a05f4980b899e86fee6..57070981873d2dfc62eaf43c82233b6525378c5d 100644
--- a/civicrm/Civi/Api4/EntityTag.php
+++ b/civicrm/Civi/Api4/EntityTag.php
@@ -21,31 +21,4 @@ namespace Civi\Api4;
 class EntityTag extends Generic\DAOEntity {
   use Generic\Traits\EntityBridge;
 
-  /**
-   * @param bool $checkPermissions
-   * @return Action\EntityTag\Create
-   */
-  public static function create($checkPermissions = TRUE) {
-    return (new Action\EntityTag\Create('EntityTag', __FUNCTION__))
-      ->setCheckPermissions($checkPermissions);
-  }
-
-  /**
-   * @param bool $checkPermissions
-   * @return Action\EntityTag\Save
-   */
-  public static function save($checkPermissions = TRUE) {
-    return (new Action\EntityTag\Save('EntityTag', __FUNCTION__))
-      ->setCheckPermissions($checkPermissions);
-  }
-
-  /**
-   * @param bool $checkPermissions
-   * @return Action\EntityTag\Update
-   */
-  public static function update($checkPermissions = TRUE) {
-    return (new Action\EntityTag\Update('EntityTag', __FUNCTION__))
-      ->setCheckPermissions($checkPermissions);
-  }
-
 }
diff --git a/civicrm/Civi/Api4/Event/Events.php b/civicrm/Civi/Api4/Event/Events.php
index 70b54400854791c82dbff585c62af91c217a6627..1701f51fa0b92a51a00708015a7dcb0e042279c6 100644
--- a/civicrm/Civi/Api4/Event/Events.php
+++ b/civicrm/Civi/Api4/Event/Events.php
@@ -12,15 +12,20 @@
 
 namespace Civi\Api4\Event;
 
+/**
+ * @deprecated
+ */
 class Events {
 
   /**
-   * Build the database schema, allow adding of custom joins and tables.
+   * @deprecated
+   * Just use the string instead of the constant when listening for this event
    */
   const SCHEMA_MAP_BUILD = 'api.schema_map.build';
 
   /**
-   * Add back POST_SELECT_QUERY const due to Joomla upgrade failure
+   * @deprecated
+   * Unused - there is no longer an event with this name
    * https://lab.civicrm.org/dev/joomla/-/issues/28#note_39487
    */
   const POST_SELECT_QUERY = 'api.select_query.post';
diff --git a/civicrm/Civi/Api4/Event/Subscriber/ActivitySchemaMapSubscriber.php b/civicrm/Civi/Api4/Event/Subscriber/ActivitySchemaMapSubscriber.php
index bf32edb1e414fb6bfff1d2af7c22bd7bb81801fc..66b8fee472ac28fafe4a960955d424493dbb260d 100644
--- a/civicrm/Civi/Api4/Event/Subscriber/ActivitySchemaMapSubscriber.php
+++ b/civicrm/Civi/Api4/Event/Subscriber/ActivitySchemaMapSubscriber.php
@@ -2,7 +2,6 @@
 
 namespace Civi\Api4\Event\Subscriber;
 
-use Civi\Api4\Event\Events;
 use Civi\Api4\Event\SchemaMapBuildEvent;
 use Civi\Api4\Service\Schema\Joinable\ExtraJoinable;
 use Civi\Api4\Service\Schema\Joinable\Joinable;
@@ -18,7 +17,7 @@ class ActivitySchemaMapSubscriber extends \Civi\Core\Service\AutoService impleme
    */
   public static function getSubscribedEvents() {
     return [
-      Events::SCHEMA_MAP_BUILD => 'onSchemaBuild',
+      'api.schema_map.build' => 'onSchemaBuild',
     ];
   }
 
diff --git a/civicrm/Civi/Api4/Event/Subscriber/ContactSchemaMapSubscriber.php b/civicrm/Civi/Api4/Event/Subscriber/ContactSchemaMapSubscriber.php
index e5ef8156638f6bde05ca3f61667e9a4546a0d1dd..c73b581cba8aabbeb33c87316395a92c55ef65d3 100644
--- a/civicrm/Civi/Api4/Event/Subscriber/ContactSchemaMapSubscriber.php
+++ b/civicrm/Civi/Api4/Event/Subscriber/ContactSchemaMapSubscriber.php
@@ -2,7 +2,6 @@
 
 namespace Civi\Api4\Event\Subscriber;
 
-use Civi\Api4\Event\Events;
 use Civi\Api4\Event\SchemaMapBuildEvent;
 use Civi\Api4\Service\Schema\Joinable\Joinable;
 use Symfony\Component\EventDispatcher\EventSubscriberInterface;
@@ -17,7 +16,7 @@ class ContactSchemaMapSubscriber extends \Civi\Core\Service\AutoService implemen
    */
   public static function getSubscribedEvents() {
     return [
-      Events::SCHEMA_MAP_BUILD => 'onSchemaBuild',
+      'api.schema_map.build' => 'onSchemaBuild',
     ];
   }
 
diff --git a/civicrm/Civi/Api4/Event/Subscriber/MessageTemplateSchemaMapSubscriber.php b/civicrm/Civi/Api4/Event/Subscriber/MessageTemplateSchemaMapSubscriber.php
index 3f218f31c65be7b1880e3e2225de1c804a67d018..108c322f2fdb455103b5846147153ba80576fc4c 100644
--- a/civicrm/Civi/Api4/Event/Subscriber/MessageTemplateSchemaMapSubscriber.php
+++ b/civicrm/Civi/Api4/Event/Subscriber/MessageTemplateSchemaMapSubscriber.php
@@ -2,7 +2,6 @@
 
 namespace Civi\Api4\Event\Subscriber;
 
-use Civi\Api4\Event\Events;
 use Civi\Api4\Event\SchemaMapBuildEvent;
 use Civi\Api4\Service\Schema\Joinable\Joinable;
 use Symfony\Component\EventDispatcher\EventSubscriberInterface;
@@ -17,7 +16,7 @@ class MessageTemplateSchemaMapSubscriber extends \Civi\Core\Service\AutoService
    */
   public static function getSubscribedEvents() {
     return [
-      Events::SCHEMA_MAP_BUILD => 'onSchemaBuild',
+      'api.schema_map.build' => 'onSchemaBuild',
     ];
   }
 
diff --git a/civicrm/Civi/Api4/Generic/AbstractCreateAction.php b/civicrm/Civi/Api4/Generic/AbstractCreateAction.php
index c1f88ad9ac622f4bbed05280dd8aa2056dc5a94f..b807f38a316152dd27aa558d0e70409d1bc40912 100644
--- a/civicrm/Civi/Api4/Generic/AbstractCreateAction.php
+++ b/civicrm/Civi/Api4/Generic/AbstractCreateAction.php
@@ -26,6 +26,8 @@ use Civi\Api4\Utils\CoreUtil;
  */
 abstract class AbstractCreateAction extends AbstractAction {
 
+  use Traits\GetSetValueTrait;
+
   /**
    * Field values to set for the new $ENTITY.
    *
@@ -33,25 +35,6 @@ abstract class AbstractCreateAction extends AbstractAction {
    */
   protected $values = [];
 
-  /**
-   * @param string $fieldName
-   * @return mixed|null
-   */
-  public function getValue(string $fieldName) {
-    return $this->values[$fieldName] ?? NULL;
-  }
-
-  /**
-   * Add a field value.
-   * @param string $fieldName
-   * @param mixed $value
-   * @return $this
-   */
-  public function addValue(string $fieldName, $value) {
-    $this->values[$fieldName] = $value;
-    return $this;
-  }
-
   /**
    * @throws \CRM_Core_Exception
    * @throws \Civi\API\Exception\UnauthorizedException
diff --git a/civicrm/Civi/Api4/Generic/AbstractSaveAction.php b/civicrm/Civi/Api4/Generic/AbstractSaveAction.php
index e6e6959ff488415fb32b59dd0bba823254b3c51e..8cd462f1b4e564b669f9bd9e91be32c0b678743a 100644
--- a/civicrm/Civi/Api4/Generic/AbstractSaveAction.php
+++ b/civicrm/Civi/Api4/Generic/AbstractSaveAction.php
@@ -118,40 +118,6 @@ abstract class AbstractSaveAction extends AbstractAction {
     }
   }
 
-  /**
-   * Find existing record based on $this->match param
-   *
-   * @param $record
-   */
-  protected function matchExisting(&$record) {
-    $primaryKey = CoreUtil::getIdFieldName($this->getEntityName());
-    if (empty($record[$primaryKey]) && !empty($this->match)) {
-      $where = [];
-      foreach ($record as $key => $val) {
-        if (in_array($key, $this->match, TRUE)) {
-          if ($val === '' || is_null($val)) {
-            // If we want to match empty string we have to match on NULL/''
-            $where[] = [$key, 'IS EMPTY'];
-          }
-          else {
-            $where[] = [$key, '=', $val];
-          }
-        }
-      }
-      if (count($where) === count($this->match)) {
-        $existing = civicrm_api4($this->getEntityName(), 'get', [
-          'select' => [$primaryKey],
-          'where' => $where,
-          'checkPermissions' => $this->checkPermissions,
-          'limit' => 2,
-        ]);
-        if ($existing->count() === 1) {
-          $record[$primaryKey] = $existing->first()[$primaryKey];
-        }
-      }
-    }
-  }
-
   /**
    * @return string
    * @deprecated
diff --git a/civicrm/Civi/Api4/Generic/AbstractUpdateAction.php b/civicrm/Civi/Api4/Generic/AbstractUpdateAction.php
index d4b78a13eb0b1307c2163c512a97cb8d85de8498..4c5942fe371262fa38601203c50976e0a8de2e53 100644
--- a/civicrm/Civi/Api4/Generic/AbstractUpdateAction.php
+++ b/civicrm/Civi/Api4/Generic/AbstractUpdateAction.php
@@ -28,6 +28,8 @@ use Civi\Api4\Utils\CoreUtil;
  */
 abstract class AbstractUpdateAction extends AbstractBatchAction {
 
+  use Traits\GetSetValueTrait;
+
   /**
    * Field values to update.
    *
@@ -107,27 +109,6 @@ abstract class AbstractUpdateAction extends AbstractBatchAction {
     $result->exchangeArray($this->updateRecords($items));
   }
 
-  /**
-   * @param string $fieldName
-   *
-   * @return mixed|null
-   */
-  public function getValue(string $fieldName) {
-    return $this->values[$fieldName] ?? NULL;
-  }
-
-  /**
-   * Add an item to the values array.
-   *
-   * @param string $fieldName
-   * @param mixed $value
-   * @return $this
-   */
-  public function addValue(string $fieldName, $value) {
-    $this->values[$fieldName] = $value;
-    return $this;
-  }
-
   /**
    * @throws \CRM_Core_Exception
    */
diff --git a/civicrm/Civi/Api4/Generic/BasicGetFieldsAction.php b/civicrm/Civi/Api4/Generic/BasicGetFieldsAction.php
index d114fad93f2c69dada9792e78595e41b09a774a6..82dd6e0e5f57419a6141703dd75d9f0731ddbb6e 100644
--- a/civicrm/Civi/Api4/Generic/BasicGetFieldsAction.php
+++ b/civicrm/Civi/Api4/Generic/BasicGetFieldsAction.php
@@ -32,6 +32,8 @@ use Civi\Api4\Utils\CoreUtil;
  */
 class BasicGetFieldsAction extends BasicGetAction {
 
+  use Traits\GetSetValueTrait;
+
   /**
    * Fetch option lists for fields?
    *
@@ -175,37 +177,7 @@ class BasicGetFieldsAction extends BasicGetAction {
         throw new \CRM_Core_Exception('Unsupported pseudoconstant type for field "' . $field['name'] . '"');
       }
     }
-    if (!$field['options'] || !is_array($field['options'])) {
-      return;
-    }
-
-    $formatted = [];
-    $first = reset($field['options']);
-    // Flat array requested
-    if ($this->loadOptions === TRUE) {
-      // Convert non-associative to flat array
-      if (is_array($first) && isset($first['id'])) {
-        foreach ($field['options'] as $option) {
-          $formatted[$option['id']] = $option['label'] ?? $option['name'] ?? $option['id'];
-        }
-        $field['options'] = $formatted;
-      }
-    }
-    // Non-associative array of multiple properties requested
-    else {
-      foreach ($field['options'] as $id => $option) {
-        // Transform a flat list
-        if (!is_array($option)) {
-          $option = [
-            'id' => $id,
-            'name' => $id,
-            'label' => $option,
-          ];
-        }
-        $formatted[] = array_intersect_key($option, array_flip($this->loadOptions));
-      }
-      $field['options'] = $formatted;
-    }
+    $field['options'] = CoreUtil::formatOptionList($field['options'], $this->loadOptions);
   }
 
   /**
@@ -236,17 +208,6 @@ class BasicGetFieldsAction extends BasicGetAction {
     return $sub[$this->action] ?? $this->action;
   }
 
-  /**
-   * Add an item to the values array
-   * @param string $fieldName
-   * @param mixed $value
-   * @return $this
-   */
-  public function addValue(string $fieldName, $value) {
-    $this->values[$fieldName] = $value;
-    return $this;
-  }
-
   /**
    * Helper function to retrieve options from an option group (for non-DAO entities).
    *
diff --git a/civicrm/Civi/Api4/Generic/BasicReplaceAction.php b/civicrm/Civi/Api4/Generic/BasicReplaceAction.php
index 7291de47ff20e79b447f284d818444ce68dfaaf3..9b83eb8f324d146a88d7a448a251de458b67dc4e 100644
--- a/civicrm/Civi/Api4/Generic/BasicReplaceAction.php
+++ b/civicrm/Civi/Api4/Generic/BasicReplaceAction.php
@@ -30,6 +30,7 @@ namespace Civi\Api4\Generic;
  * @method bool getReload()
  */
 class BasicReplaceAction extends AbstractBatchAction {
+  use Traits\MatchParamTrait;
 
   /**
    * Array of $ENTITY records.
@@ -86,6 +87,13 @@ class BasicReplaceAction extends AbstractBatchAction {
       }
     }
 
+    // Merge in defaults and perform non-id matching if match field(s) are specified
+    foreach ($this->records as &$record) {
+      $record += $this->defaults;
+      $this->formatWriteValues($record);
+      $this->matchExisting($record);
+    }
+
     $idField = $this->getSelect()[0];
     $toDelete = array_diff_key(array_column($items, NULL, $idField), array_flip(array_filter(\CRM_Utils_Array::collect($idField, $this->records))));
 
@@ -93,8 +101,7 @@ class BasicReplaceAction extends AbstractBatchAction {
     $saveAction
       ->setCheckPermissions($this->getCheckPermissions())
       ->setReload($this->reload)
-      ->setRecords($this->records)
-      ->setDefaults($this->defaults);
+      ->setRecords($this->records);
     $result->exchangeArray((array) $saveAction->execute());
 
     if ($toDelete) {
diff --git a/civicrm/Civi/Api4/Generic/CheckAccessAction.php b/civicrm/Civi/Api4/Generic/CheckAccessAction.php
index a3cd5dc0a3924bc61c293701df14dd0e491555be..21094e15ccf4dfeca293db06978a0c68ddbf3dd8 100644
--- a/civicrm/Civi/Api4/Generic/CheckAccessAction.php
+++ b/civicrm/Civi/Api4/Generic/CheckAccessAction.php
@@ -24,6 +24,8 @@ use Civi\Api4\Utils\CoreUtil;
  */
 class CheckAccessAction extends AbstractAction {
 
+  use Traits\GetSetValueTrait;
+
   /**
    * @var string
    * @required
@@ -59,15 +61,4 @@ class CheckAccessAction extends AbstractAction {
     return TRUE;
   }
 
-  /**
-   * Add an item to the values array
-   * @param string $fieldName
-   * @param mixed $value
-   * @return $this
-   */
-  public function addValue(string $fieldName, $value) {
-    $this->values[$fieldName] = $value;
-    return $this;
-  }
-
 }
diff --git a/civicrm/Civi/Api4/Generic/Traits/GetSetValueTrait.php b/civicrm/Civi/Api4/Generic/Traits/GetSetValueTrait.php
new file mode 100644
index 0000000000000000000000000000000000000000..fb9649eb5d50063189d06566ab580c491bbe0ae4
--- /dev/null
+++ b/civicrm/Civi/Api4/Generic/Traits/GetSetValueTrait.php
@@ -0,0 +1,64 @@
+<?php
+
+/*
+ +--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC. All rights reserved.                        |
+ |                                                                    |
+ | This work is published under the GNU AGPLv3 license with some      |
+ | permitted exceptions and without any warranty. For full license    |
+ | and copyright information, see https://civicrm.org/licensing       |
+ +--------------------------------------------------------------------+
+ */
+
+namespace Civi\Api4\Generic\Traits;
+
+/**
+ * Trait for actions with a `$values` array
+ */
+trait GetSetValueTrait {
+
+  /**
+   * Add an item to the values array.
+   *
+   * @param string $fieldName
+   * @param mixed $value
+   * @return $this
+   */
+  public function addValue(string $fieldName, $value) {
+    // Prevent accidentally using this function like `addWhere` which takes 3 args.
+    if ($value === '=' && func_num_args() > 2) {
+      throw new \CRM_Core_Exception('APIv4 function `addValue` incorrectly called with 3 arguments.');
+    }
+    $this->values[$fieldName] = $value;
+    return $this;
+  }
+
+  /**
+   * Overwrite all values
+   *
+   * @param array $values
+   * @return $this
+   */
+  public function setValues(array $values) {
+    $this->values = $values;
+    return $this;
+  }
+
+  /**
+   * Retrieve a single value
+   *
+   * @param string $fieldName
+   * @return mixed|null
+   */
+  public function getValue(string $fieldName) {
+    return $this->values[$fieldName] ?? NULL;
+  }
+
+  /**
+   * @return array
+   */
+  public function getValues() {
+    return $this->values;
+  }
+
+}
diff --git a/civicrm/Civi/Api4/Generic/Traits/MatchParamTrait.php b/civicrm/Civi/Api4/Generic/Traits/MatchParamTrait.php
index 6d8ed6c78696548ea4775f4a0a8a79174517233d..c16e30ef0fee12597c09ce75b0fda8ef20c554e8 100644
--- a/civicrm/Civi/Api4/Generic/Traits/MatchParamTrait.php
+++ b/civicrm/Civi/Api4/Generic/Traits/MatchParamTrait.php
@@ -12,6 +12,8 @@
 
 namespace Civi\Api4\Generic\Traits;
 
+use Civi\Api4\Utils\CoreUtil;
+
 /**
  * @method $this setMatch(array $match) Specify fields to match for update.
  * @method bool getMatch()
@@ -32,6 +34,40 @@ trait MatchParamTrait {
    */
   protected $match = [];
 
+  /**
+   * Find existing record based on $this->match param
+   *
+   * @param $record
+   */
+  protected function matchExisting(&$record) {
+    $primaryKey = CoreUtil::getIdFieldName($this->getEntityName());
+    if (empty($record[$primaryKey]) && !empty($this->match)) {
+      $where = [];
+      foreach ($record as $key => $val) {
+        if (in_array($key, $this->match, TRUE)) {
+          if ($val === '' || is_null($val)) {
+            // If we want to match empty string we have to match on NULL/''
+            $where[] = [$key, 'IS EMPTY'];
+          }
+          else {
+            $where[] = [$key, '=', $val];
+          }
+        }
+      }
+      if (count($where) === count($this->match)) {
+        $existing = civicrm_api4($this->getEntityName(), 'get', [
+          'select' => [$primaryKey],
+          'where' => $where,
+          'checkPermissions' => $this->checkPermissions,
+          'limit' => 2,
+        ]);
+        if ($existing->count() === 1) {
+          $record[$primaryKey] = $existing->first()[$primaryKey];
+        }
+      }
+    }
+  }
+
   /**
    * Options callback for $this->match
    * @return array
diff --git a/civicrm/Civi/Api4/Action/EntityTag/Create.php b/civicrm/Civi/Api4/ParticipantStatusType.php
similarity index 64%
rename from civicrm/Civi/Api4/Action/EntityTag/Create.php
rename to civicrm/Civi/Api4/ParticipantStatusType.php
index afa0dba7fd9e15d238345f172776994c84e07cb4..25b14d99ba994723e27762d427aceeaddf1e937e 100644
--- a/civicrm/Civi/Api4/Action/EntityTag/Create.php
+++ b/civicrm/Civi/Api4/ParticipantStatusType.php
@@ -1,5 +1,4 @@
 <?php
-
 /*
  +--------------------------------------------------------------------+
  | Copyright CiviCRM LLC. All rights reserved.                        |
@@ -9,13 +8,19 @@
  | and copyright information, see https://civicrm.org/licensing       |
  +--------------------------------------------------------------------+
  */
-
-namespace Civi\Api4\Action\EntityTag;
+namespace Civi\Api4;
 
 /**
- * @inheritDoc
+ * Configurable event participant statuses.
+ *
+ * @see \Civi\Api4\Participant
+ *
+ * @orderBy weight
+ * @since 5.61
+ * @package Civi\Api4
  */
-class Create extends \Civi\Api4\Generic\DAOCreateAction {
-  use EntityTagSaveTrait;
+class ParticipantStatusType extends Generic\DAOEntity {
+  use Generic\Traits\ManagedEntity;
+  use Generic\Traits\SortableEntity;
 
 }
diff --git a/civicrm/Civi/Api4/Query/Api4SelectQuery.php b/civicrm/Civi/Api4/Query/Api4SelectQuery.php
index 284afe6bbdd5bb8a7d072bc1b3334478da12fd26..8430da8794fb4a5363fa5803eda16814514e82a3 100644
--- a/civicrm/Civi/Api4/Query/Api4SelectQuery.php
+++ b/civicrm/Civi/Api4/Query/Api4SelectQuery.php
@@ -633,6 +633,10 @@ class Api4SelectQuery {
       return sprintf('%s %s "%s"', $fieldAlias, $operator, \CRM_Core_DAO::escapeString($value));
     }
 
+    if (!$value && ($operator === 'IN' || $operator === 'NOT IN')) {
+      $value[] = FALSE;
+    }
+
     if (is_bool($value)) {
       $value = (int) $value;
     }
@@ -829,9 +833,14 @@ class Api4SelectQuery {
         return FALSE;
       }
       foreach ([$sideA, $sideB] as $expr) {
+        // Check for explicit link to FK entity
         if ($expr === "$alias.id" || !empty($joinEntityFields[str_replace("$alias.", '', $expr)]['fk_entity'])) {
           return TRUE;
         }
+        // Check for dynamic FK
+        if ($expr === "$alias.entity_id") {
+          return TRUE;
+        }
       }
       return FALSE;
     });
diff --git a/civicrm/Civi/Api4/Query/SqlFunction.php b/civicrm/Civi/Api4/Query/SqlFunction.php
index 6b094eff3dc21d4eb63a37ac772477371f69966e..7b00b6f2c95c6f8ad9f15407ae4ba0b041f74b04 100644
--- a/civicrm/Civi/Api4/Query/SqlFunction.php
+++ b/civicrm/Civi/Api4/Query/SqlFunction.php
@@ -12,7 +12,14 @@
 namespace Civi\Api4\Query;
 
 /**
- * Base class for all Sql functions.
+ * Base class for all APIv4 Sql function definitions.
+ *
+ * SqlFunction classes don't actually process data, SQL itself does the real work.
+ * The role of each SqlFunction class is to:
+ *
+ * 1. Whitelist the SQL function for use by APIv4 (it doesn't allow any that don't have a SQLFunction class).
+ * 2. Document what the function does and what arguments it accepts.
+ * 3. Tell APIv4 how to treat the inputs and how to format the outputs.
  *
  * @package Civi\Api4\Query
  */
@@ -199,6 +206,19 @@ abstract class SqlFunction extends SqlExpression {
     return static::$category;
   }
 
+  /**
+   * For functions which output a finite set of values,
+   * this allows the API to treat it as pseudoconstant options.
+   *
+   * e.g. MONTH() only returns integers 1-12, which can be formatted like
+   * [1 => January, 2 => February, etc.]
+   *
+   * @return array|null
+   */
+  public static function getOptions(): ?array {
+    return NULL;
+  }
+
   /**
    * All functions return 'SqlFunction' as their type.
    *
diff --git a/civicrm/Civi/Api4/Query/SqlFunctionEXTRACT.php b/civicrm/Civi/Api4/Query/SqlFunctionEXTRACT.php
index ff555ec46bf31d7d8e5fdd3f3587ce475b917729..fb8611744020b2a4d5c1aa66e960a34a7c20e14a 100644
--- a/civicrm/Civi/Api4/Query/SqlFunctionEXTRACT.php
+++ b/civicrm/Civi/Api4/Query/SqlFunctionEXTRACT.php
@@ -60,7 +60,7 @@ class SqlFunctionEXTRACT extends SqlFunction {
    * @return string
    */
   public static function getDescription(): string {
-    return ts('The numeric month (1-12) of a date.');
+    return ts('Extract part(s) of a date (e.g. the day, year, etc.)');
   }
 
 }
diff --git a/civicrm/Civi/Api4/Query/SqlFunctionMONTH.php b/civicrm/Civi/Api4/Query/SqlFunctionMONTH.php
index 4f903347a6e9b4b1a6b23114aaf364d8a6581cac..e99678e1ede05bd36144b8623806c2cbced4d8d2 100644
--- a/civicrm/Civi/Api4/Query/SqlFunctionMONTH.php
+++ b/civicrm/Civi/Api4/Query/SqlFunctionMONTH.php
@@ -43,4 +43,24 @@ class SqlFunctionMONTH extends SqlFunction {
     return ts('The numeric month (1-12) of a date.');
   }
 
+  /**
+   * @return array
+   */
+  public static function getOptions(): ?array {
+    return [
+      1 => ts('January'),
+      2 => ts('February'),
+      3 => ts('March'),
+      4 => ts('April'),
+      5 => ts('May'),
+      6 => ts('June'),
+      7 => ts('July'),
+      8 => ts('August'),
+      9 => ts('September'),
+      10 => ts('October'),
+      11 => ts('November'),
+      12 => ts('December'),
+    ];
+  }
+
 }
diff --git a/civicrm/Civi/Api4/Service/Autocomplete/ContributionAutocompleteProvider.php b/civicrm/Civi/Api4/Service/Autocomplete/ContributionAutocompleteProvider.php
index 0e05a824d445967ee9df9251896bdb5788259fc1..916a6c56d6a351e2d9a29687ad89879cee1d71e5 100644
--- a/civicrm/Civi/Api4/Service/Autocomplete/ContributionAutocompleteProvider.php
+++ b/civicrm/Civi/Api4/Service/Autocomplete/ContributionAutocompleteProvider.php
@@ -38,6 +38,7 @@ class ContributionAutocompleteProvider extends \Civi\Core\Service\AutoService im
         'total_amount',
         'receive_date',
         'financial_type_id:label',
+        'contribution_status_id:label',
       ],
       'orderBy' => [],
       'where' => [],
@@ -76,6 +77,7 @@ class ContributionAutocompleteProvider extends \Civi\Core\Service\AutoService im
         [
           'type' => 'field',
           'key' => 'receive_date',
+          'rewrite' => '[contribution_status_id:label] [receive_date]',
         ],
       ],
     ];
diff --git a/civicrm/Civi/Api4/Service/Autocomplete/ContributionRecurAutocompleteProvider.php b/civicrm/Civi/Api4/Service/Autocomplete/ContributionRecurAutocompleteProvider.php
new file mode 100644
index 0000000000000000000000000000000000000000..4f845248cbf88e07fc564d000f9613f3cba4207f
--- /dev/null
+++ b/civicrm/Civi/Api4/Service/Autocomplete/ContributionRecurAutocompleteProvider.php
@@ -0,0 +1,88 @@
+<?php
+
+/*
+ +--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC. All rights reserved.                        |
+ |                                                                    |
+ | This work is published under the GNU AGPLv3 license with some      |
+ | permitted exceptions and without any warranty. For full license    |
+ | and copyright information, see https://civicrm.org/licensing       |
+ +--------------------------------------------------------------------+
+ */
+
+namespace Civi\Api4\Service\Autocomplete;
+
+use Civi\Core\Event\GenericHookEvent;
+use Civi\Core\HookInterface;
+
+/**
+ * @service
+ * @internal
+ */
+class ContributionRecurAutocompleteProvider extends \Civi\Core\Service\AutoService implements HookInterface {
+
+  /**
+   * Provide default SavedSearch for Contribution autocompletes
+   *
+   * @param \Civi\Core\Event\GenericHookEvent $e
+   */
+  public static function on_civi_search_autocompleteDefault(GenericHookEvent $e) {
+    if (!is_array($e->savedSearch) || $e->savedSearch['api_entity'] !== 'ContributionRecur') {
+      return;
+    }
+    $e->savedSearch['api_params'] = [
+      'version' => 4,
+      'select' => [
+        'id',
+        'contact_id.display_name',
+        'frequency_unit:label',
+        'frequency_interval',
+        'amount',
+        'start_date',
+        'financial_type_id:label',
+        'contribution_status_id:label',
+      ],
+      'orderBy' => [],
+      'where' => [],
+      'groupBy' => [],
+      'join' => [],
+      'having' => [],
+    ];
+  }
+
+  /**
+   * Provide default SearchDisplay for Contribution autocompletes
+   *
+   * @param \Civi\Core\Event\GenericHookEvent $e
+   */
+  public static function on_civi_search_defaultDisplay(GenericHookEvent $e) {
+    if ($e->display['settings'] || $e->display['type'] !== 'autocomplete' || $e->savedSearch['api_entity'] !== 'ContributionRecur') {
+      return;
+    }
+    $e->display['settings'] = [
+      'sort' => [
+        ['contact_id.sort_name', 'ASC'],
+        ['amount', 'ASC'],
+        ['start_date', 'DESC'],
+      ],
+      'columns' => [
+        [
+          'type' => 'field',
+          'key' => 'contact_id.display_name',
+          'rewrite' => '[contact_id.display_name] - [amount]',
+        ],
+        [
+          'type' => 'field',
+          'key' => 'financial_type_id:label',
+          'rewrite' => '#[id] [financial_type_id:label]',
+        ],
+        [
+          'type' => 'field',
+          'key' => 'frequency_unit:label',
+          'rewrite' => ts('Every %1 %2 since %3', [1 => '[frequency_interval]', 2 => '[frequency_unit:label]', '[start_date]']),
+        ],
+      ],
+    ];
+  }
+
+}
diff --git a/civicrm/Civi/Api4/Service/Schema/SchemaMapBuilder.php b/civicrm/Civi/Api4/Service/Schema/SchemaMapBuilder.php
index 16de8c026de86814b629baa3cfe9c61b2b188465..dc388ae4e80e4f0b6127f6746db1f77449b8eaa9 100644
--- a/civicrm/Civi/Api4/Service/Schema/SchemaMapBuilder.php
+++ b/civicrm/Civi/Api4/Service/Schema/SchemaMapBuilder.php
@@ -13,7 +13,6 @@
 namespace Civi\Api4\Service\Schema;
 
 use Civi\Api4\Entity;
-use Civi\Api4\Event\Events;
 use Civi\Api4\Event\SchemaMapBuildEvent;
 use Civi\Api4\Service\Schema\Joinable\CustomGroupJoinable;
 use Civi\Api4\Service\Schema\Joinable\Joinable;
@@ -52,7 +51,7 @@ class SchemaMapBuilder extends AutoService {
     $this->loadTables($map);
 
     $event = new SchemaMapBuildEvent($map);
-    $this->dispatcher->dispatch(Events::SCHEMA_MAP_BUILD, $event);
+    $this->dispatcher->dispatch('api.schema_map.build', $event);
 
     return $map;
   }
diff --git a/civicrm/Civi/Api4/Service/Spec/Provider/ContactGetSpecProvider.php b/civicrm/Civi/Api4/Service/Spec/Provider/ContactGetSpecProvider.php
index e6cb6c8e9418c28fe1f1149048b4bd8658bf4e02..ffc8efa05609ed9654c5931e7f758b8a2bff0fd5 100644
--- a/civicrm/Civi/Api4/Service/Spec/Provider/ContactGetSpecProvider.php
+++ b/civicrm/Civi/Api4/Service/Spec/Provider/ContactGetSpecProvider.php
@@ -40,8 +40,9 @@ class ContactGetSpecProvider extends \Civi\Core\Service\AutoService implements G
       ->setOptionsCallback([__CLASS__, 'getGroupList']);
     $spec->addFieldSpec($field);
 
-    // Age field
+    // Fields specific to Individuals
     if (!$spec->getValue('contact_type') || $spec->getValue('contact_type') === 'Individual') {
+      // Age field
       $field = new FieldSpec('age_years', 'Contact', 'Integer');
       $field->setLabel(ts('Age (years)'))
         ->setTitle(ts('Age (years)'))
@@ -52,6 +53,20 @@ class ContactGetSpecProvider extends \Civi\Core\Service\AutoService implements G
         ->setReadonly(TRUE)
         ->setSqlRenderer([__CLASS__, 'calculateAge']);
       $spec->addFieldSpec($field);
+
+      // Birthday field
+      if (!$spec->getValue('contact_type') || $spec->getValue('contact_type') === 'Individual') {
+        $field = new FieldSpec('next_birthday', 'Contact', 'Integer');
+        $field->setLabel(ts('Next Birthday in (days)'))
+          ->setTitle(ts('Next Birthday in (days)'))
+          ->setColumnName('birth_date')
+          ->setInputType('Number')
+          ->setDescription(ts('Number of days until next birthday'))
+          ->setType('Extra')
+          ->setReadonly(TRUE)
+          ->setSqlRenderer([__CLASS__, 'calculateBirthday']);
+        $spec->addFieldSpec($field);
+      }
     }
 
     // Address, Email, Phone, IM primary/billing virtual fields
@@ -183,4 +198,23 @@ class ContactGetSpecProvider extends \Civi\Core\Service\AutoService implements G
     return "TIMESTAMPDIFF(YEAR, {$field['sql_name']}, CURDATE())";
   }
 
+  /**
+   * Generate SQL for upcoming birthday field
+   *
+   * Calculates the number of days until the next birthday
+   *
+   * @param array $field
+   * @return string
+   */
+  public static function calculateBirthday(array $field): string {
+    return "DATEDIFF(
+        IF(
+            DATE(CONCAT(YEAR(CURDATE()), '-', MONTH({$field['sql_name']}), '-', DAY({$field['sql_name']}))) < CURDATE(),
+            CONCAT(YEAR(CURDATE()) + 1, '-', MONTH({$field['sql_name']}), '-', DAY({$field['sql_name']})),
+            CONCAT(YEAR(CURDATE()), '-', MONTH({$field['sql_name']}), '-', DAY({$field['sql_name']}))
+        ),
+        CURDATE()
+    )";
+  }
+
 }
diff --git a/civicrm/Civi/Api4/Service/Spec/Provider/PaymentProcessorCreationSpecProvider.php b/civicrm/Civi/Api4/Service/Spec/Provider/PaymentProcessorCreationSpecProvider.php
index 9e11858ce02a890cfb1e10e86b9a855d59303612..5a592e5f7a90a14d646528e47cbff4733699dc15 100644
--- a/civicrm/Civi/Api4/Service/Spec/Provider/PaymentProcessorCreationSpecProvider.php
+++ b/civicrm/Civi/Api4/Service/Spec/Provider/PaymentProcessorCreationSpecProvider.php
@@ -25,6 +25,13 @@ class PaymentProcessorCreationSpecProvider extends \Civi\Core\Service\AutoServic
    * @inheritDoc
    */
   public function modifySpec(RequestSpec $spec) {
+    // Name is autogenerated from title if missing
+    $spec->getFieldByName('name')->setRequired(FALSE)->setRequiredIf('empty($values.title)');
+    // Title is supplied from name if missing
+    $spec->getFieldByName('title')->setRequired(FALSE)->setRequiredIf('empty($values.name)');
+    // Frontend_title is copied from title if missing
+    $spec->getFieldByName('frontend_title')->setRequired(FALSE);
+
     // Billing mode is copied across from the payment processor type field in the BAO::create function.
     $spec->getFieldByName('billing_mode')->setRequired(FALSE);
 
diff --git a/civicrm/Civi/Api4/Service/Spec/SpecFormatter.php b/civicrm/Civi/Api4/Service/Spec/SpecFormatter.php
index 4f32c107729901cc28eb8bb6207a51ea8f2d4191..fc99a65e7928443734cadce614faf4e4d3ee5a24 100644
--- a/civicrm/Civi/Api4/Service/Spec/SpecFormatter.php
+++ b/civicrm/Civi/Api4/Service/Spec/SpecFormatter.php
@@ -14,7 +14,6 @@ namespace Civi\Api4\Service\Spec;
 
 use Civi\Api4\Utils\CoreUtil;
 use Civi\Api4\Utils\FormattingUtil;
-use CRM_Core_DAO_AllCoreTables as AllCoreTables;
 
 class SpecFormatter {
 
@@ -97,7 +96,7 @@ class SpecFormatter {
     $fkAPIName = $data['FKApiName'] ?? NULL;
     $fkClassName = $data['FKClassName'] ?? NULL;
     if ($fkAPIName || $fkClassName) {
-      $field->setFkEntity($fkAPIName ?: AllCoreTables::getBriefName($fkClassName));
+      $field->setFkEntity($fkAPIName ?: CoreUtil::getApiNameFromBAO($fkClassName));
     }
 
     return $field;
diff --git a/civicrm/Civi/Api4/Utils/CoreUtil.php b/civicrm/Civi/Api4/Utils/CoreUtil.php
index a50543de89fd88b1b0723ef5a49aaa325675b74d..24c4fb62b1c3fb2165f1d905fca8fbf33f29e131 100644
--- a/civicrm/Civi/Api4/Utils/CoreUtil.php
+++ b/civicrm/Civi/Api4/Utils/CoreUtil.php
@@ -34,6 +34,19 @@ class CoreUtil {
     return $dao ? AllCoreTables::getBAOClassName($dao) : NULL;
   }
 
+  /**
+   * Returns API entity name given an BAO/DAO class name
+   *
+   * Returns null if the API has not been implemented
+   *
+   * @param $baoClassName
+   * @return string|null
+   */
+  public static function getApiNameFromBAO($baoClassName) {
+    $briefName = AllCoreTables::getBriefName($baoClassName);
+    return $briefName && self::getApiClass($briefName) ? $briefName : NULL;
+  }
+
   /**
    * @param $entityName
    * @return string|\Civi\Api4\Generic\AbstractEntity
@@ -305,4 +318,71 @@ class CoreUtil {
     return explode(',', $fields);
   }
 
+  /**
+   * Transforms a raw option list (which could be either a flat or non-associative array)
+   * into an APIv4-compatible format.
+   *
+   * @param array|bool $options
+   * @param array|bool $format
+   * @return array|bool
+   */
+  public static function formatOptionList($options, $format) {
+    if (!$options || !is_array($options)) {
+      return $options ?? FALSE;
+    }
+
+    $formatted = [];
+    $first = reset($options);
+    // Flat array requested
+    if ($format === TRUE) {
+      // Convert non-associative to flat array
+      if (is_array($first) && isset($first['id'])) {
+        foreach ($options as $option) {
+          $formatted[$option['id']] = $option['label'] ?? $option['name'] ?? $option['id'];
+        }
+        return $formatted;
+      }
+      return $options;
+    }
+    // Non-associative array of multiple properties requested
+    foreach ($options as $id => $option) {
+      // Transform a flat list
+      if (!is_array($option)) {
+        $option = [
+          'id' => $id,
+          'name' => $id,
+          'label' => $option,
+        ];
+      }
+      $formatted[] = array_intersect_key($option, array_flip($format));
+    }
+    return $formatted;
+  }
+
+  /**
+   * Gets info about all available sql functions
+   * @return array
+   */
+  public static function getSqlFunctions(): array {
+    $fns = [];
+    foreach (glob(\Civi::paths()->getPath('[civicrm.root]/Civi/Api4/Query/SqlFunction*.php')) as $file) {
+      $matches = [];
+      if (preg_match('/(SqlFunction[A-Z_]+)\.php$/', $file, $matches)) {
+        $className = '\Civi\Api4\Query\\' . $matches[1];
+        if (is_subclass_of($className, '\Civi\Api4\Query\SqlFunction')) {
+          $fns[] = [
+            'name' => $className::getName(),
+            'title' => $className::getTitle(),
+            'description' => $className::getDescription(),
+            'params' => $className::getParams(),
+            'category' => $className::getCategory(),
+            'dataType' => $className::getDataType(),
+            'options' => CoreUtil::formatOptionList($className::getOptions(), ['id', 'name', 'label']),
+          ];
+        }
+      }
+    }
+    return $fns;
+  }
+
 }
diff --git a/civicrm/Civi/Core/CiviEventDispatcher.php b/civicrm/Civi/Core/CiviEventDispatcher.php
index 704fcd7ce879556e2ac540b1afb45a8e94e7431a..2ddb8634c0f03df4a08ebc3642c2dc9606f62aa9 100644
--- a/civicrm/Civi/Core/CiviEventDispatcher.php
+++ b/civicrm/Civi/Core/CiviEventDispatcher.php
@@ -296,30 +296,31 @@ class CiviEventDispatcher implements CiviEventDispatcherInterface {
     $hooks = \CRM_Utils_Hook::singleton();
     $params = $event->getHookValues();
     $count = count($params);
+    $null = NULL;
 
     switch ($count) {
       case 0:
-        $fResult = $hooks->invokeViaUF($count, \CRM_Utils_Hook::$_nullObject, \CRM_Utils_Hook::$_nullObject, \CRM_Utils_Hook::$_nullObject, \CRM_Utils_Hook::$_nullObject, \CRM_Utils_Hook::$_nullObject, \CRM_Utils_Hook::$_nullObject, $hookName);
+        $fResult = $hooks->invokeViaUF($count, $null, $null, $null, $null, $null, $null, $hookName);
         break;
 
       case 1:
-        $fResult = $hooks->invokeViaUF($count, $params[0], \CRM_Utils_Hook::$_nullObject, \CRM_Utils_Hook::$_nullObject, \CRM_Utils_Hook::$_nullObject, \CRM_Utils_Hook::$_nullObject, \CRM_Utils_Hook::$_nullObject, $hookName);
+        $fResult = $hooks->invokeViaUF($count, $params[0], $null, $null, $null, $null, $null, $hookName);
         break;
 
       case 2:
-        $fResult = $hooks->invokeViaUF($count, $params[0], $params[1], \CRM_Utils_Hook::$_nullObject, \CRM_Utils_Hook::$_nullObject, \CRM_Utils_Hook::$_nullObject, \CRM_Utils_Hook::$_nullObject, $hookName);
+        $fResult = $hooks->invokeViaUF($count, $params[0], $params[1], $null, $null, $null, $null, $hookName);
         break;
 
       case 3:
-        $fResult = $hooks->invokeViaUF($count, $params[0], $params[1], $params[2], \CRM_Utils_Hook::$_nullObject, \CRM_Utils_Hook::$_nullObject, \CRM_Utils_Hook::$_nullObject, $hookName);
+        $fResult = $hooks->invokeViaUF($count, $params[0], $params[1], $params[2], $null, $null, $null, $hookName);
         break;
 
       case 4:
-        $fResult = $hooks->invokeViaUF($count, $params[0], $params[1], $params[2], $params[3], \CRM_Utils_Hook::$_nullObject, \CRM_Utils_Hook::$_nullObject, $hookName);
+        $fResult = $hooks->invokeViaUF($count, $params[0], $params[1], $params[2], $params[3], $null, $null, $hookName);
         break;
 
       case 5:
-        $fResult = $hooks->invokeViaUF($count, $params[0], $params[1], $params[2], $params[3], $params[4], \CRM_Utils_Hook::$_nullObject, $hookName);
+        $fResult = $hooks->invokeViaUF($count, $params[0], $params[1], $params[2], $params[3], $params[4], $null, $hookName);
         break;
 
       case 6:
diff --git a/civicrm/Civi/Core/Container.php b/civicrm/Civi/Core/Container.php
index 2da5b7abd92e54fe53d311ad93fe0e6cae1f9be0..5b983fb637652e658ab683a463f6d964a2db39e7 100644
--- a/civicrm/Civi/Core/Container.php
+++ b/civicrm/Civi/Core/Container.php
@@ -345,9 +345,9 @@ class Container {
       []
     ))->addTag('kernel.event_subscriber')->setPublic(TRUE);
 
-    foreach (['Activity', 'Contact', 'Contribute', 'Event', 'Mailing', 'Member', 'Case'] as $comp) {
-      $container->setDefinition('crm_' . strtolower($comp) . '_tokens', new Definition(
-        "CRM_{$comp}_Tokens",
+    foreach (['Activity', 'Contact', 'Contribute', 'Event', 'Mailing', 'Member', 'Case', 'Pledge'] as $component) {
+      $container->setDefinition('crm_' . strtolower($component) . '_tokens', new Definition(
+        "CRM_{$component}_Tokens",
         []
       ))->addTag('kernel.event_subscriber')->setPublic(TRUE);
     }
diff --git a/civicrm/Civi/Core/Event/PostEvent.php b/civicrm/Civi/Core/Event/PostEvent.php
index f3885af444ca36255806099d6d89b56b2fed53dd..d620ded7dc9fed6d4df2ed49c83248201a161029 100644
--- a/civicrm/Civi/Core/Event/PostEvent.php
+++ b/civicrm/Civi/Core/Event/PostEvent.php
@@ -35,10 +35,15 @@ class PostEvent extends GenericHookEvent {
   public $id;
 
   /**
-   * @var Object
+   * @var CRM_Core_DAO
    */
   public $object;
 
+  /**
+   * @var array
+   */
+  public $params;
+
   /**
    * Class constructor
    *
@@ -46,19 +51,21 @@ class PostEvent extends GenericHookEvent {
    * @param string $entity
    * @param int $id
    * @param object $object
+   * @param array $params
    */
-  public function __construct($action, $entity, $id, &$object) {
+  public function __construct($action, $entity, $id, &$object, $params = NULL) {
     $this->action = $action;
     $this->entity = $entity;
     $this->id = $id;
     $this->object = &$object;
+    $this->params = $params;
   }
 
   /**
    * @inheritDoc
    */
   public function getHookValues() {
-    return [$this->action, $this->entity, $this->id, &$this->object];
+    return [$this->action, $this->entity, $this->id, &$this->object, $this->params];
   }
 
 }
diff --git a/civicrm/Civi/Core/Exception/DBQueryException.php b/civicrm/Civi/Core/Exception/DBQueryException.php
new file mode 100644
index 0000000000000000000000000000000000000000..d06a10760e85aa655cf8ecb936f790305662ce0b
--- /dev/null
+++ b/civicrm/Civi/Core/Exception/DBQueryException.php
@@ -0,0 +1,143 @@
+<?php
+/*
+ +--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC. All rights reserved.                        |
+ |                                                                    |
+ | This work is published under the GNU AGPLv3 license with some      |
+ | permitted exceptions and without any warranty. For full license    |
+ | and copyright information, see https://civicrm.org/licensing       |
+ +--------------------------------------------------------------------+
+ */
+
+namespace Civi\Core\Exception;
+
+/**
+ * Error when the syntax of a DB query is incorrect.
+ *
+ * @param string $message
+ *   The human friendly error message.
+ * @param string $error_code
+ *   A computer friendly error code. By convention, no space (but underscore allowed).
+ *   ex: mandatory_missing, duplicate, invalid_format
+ * @param array $data
+ *   - exception The original PEAR Exception
+ */
+class DBQueryException extends \CRM_Core_Exception {
+
+  /**
+   * Get a message suitable to be presented to the user.
+   *
+   * @return string
+   */
+  public function getUserMessage(): string {
+    return ts('Invalid Query') . ' ' . $this->getDBErrorMessage() . $this->getErrorCodeSpecificMessage();
+  }
+
+  /**
+   * Is the error message safe to show to users.
+   *
+   * Probably most of them are but error 1146 leaks the database name - eg.
+   * 'table dmaster.civicrm_contact does not exist'.
+   *
+   * However, for missing fields and syntax errors the error message gives
+   * useful clues we should pass on. We can add to this / tweak over time - if
+   * we care to.
+   *
+   * @return bool
+   */
+  private function isErrorMessageUserSafe(): bool {
+    $errors = [
+      // No such field, does not leak any table information.
+      1054 => TRUE,
+      // Invalid schema - helpful hint as to where the error is, no leakage.
+      1064 => TRUE,
+      // No such table - leaks db name.
+      1146 => FALSE,
+    ];
+    return $errors[$this->getSQLErrorCode()] ?? FALSE;
+  }
+
+  /**
+   * @return int
+   */
+  protected function getPEARErrorCode(): int {
+    return $this->getDBError()->getCode();
+  }
+
+  /**
+   * @return \DB_Error
+   */
+  protected function getDBError(): \DB_Error {
+    return $this->getErrorData()['exception'];
+  }
+
+  /**
+   * Get the mysql error code.
+   *
+   * @see https://mariadb.com/kb/en/mariadb-error-codes/
+   *
+   * @return int
+   */
+  public function getSQLErrorCode(): int {
+    $dbErrorMessage = $this->getUserInfo();
+    $matches = [];
+    preg_match('/\[nativecode=(\d*) /', $dbErrorMessage, $matches);
+    return (int) $matches[1];
+  }
+
+  /**
+   * Get the PEAR data intended to be use useful to the user.
+   *
+   * @return string
+   */
+  public function getUserInfo(): string {
+    return $this->getCause()->getUserInfo();
+  }
+
+  /**
+   * Get the attempted sql.
+   *
+   * @return string
+   */
+  public function getSQL(): string {
+    $dbErrorMessage = $this->getUserInfo();
+    $matches = [];
+    preg_match('/(.*) \[nativecode=/', $dbErrorMessage, $matches);
+    return $matches[1];
+  }
+
+  /**
+   * Get the attempted sql.
+   *
+   * @return string
+   */
+  public function getDebugInfo(): string {
+    return $this->getDBError()->getUserInfo();
+  }
+
+  /**
+   * Get additional user-safe error message information.
+   *
+   * @return string
+   */
+  private function getErrorCodeSpecificMessage(): string {
+    $matches = [];
+    preg_match('/\[nativecode=\d* \*\* (.*)]/', $this->getUserInfo(), $matches);
+    if ($this->isErrorMessageUserSafe()) {
+      return ' ' . $matches[1];
+    }
+    // We could return additional info e.g when we log deadlocks we log
+    // 'Database deadlock encountered' (1213) or 'Database lock encountered' (1205).
+    return '';
+  }
+
+  /**
+   * Get the DB error code converted to a test code.
+   *
+   * @return string
+   */
+  public function getDBErrorMessage(): string {
+    return \DB::errorMessage($this->getPEARErrorCode());
+  }
+
+}
diff --git a/civicrm/Civi/Schema/Traits/ArrayFormatTrait.php b/civicrm/Civi/Schema/Traits/ArrayFormatTrait.php
index 520568dcdb7621ad6ffc283daffb242e7428ad05..e380b7f3c3aeca67f31ed5a037665e3d7ede8275 100644
--- a/civicrm/Civi/Schema/Traits/ArrayFormatTrait.php
+++ b/civicrm/Civi/Schema/Traits/ArrayFormatTrait.php
@@ -66,7 +66,7 @@ trait ArrayFormatTrait {
       if (is_callable([$this, $setter])) {
         $this->{$setter}($value);
       }
-      else {
+      elseif (!$strict || property_exists($this, $field)) {
         $this->{$field} = $value;
       }
     }
diff --git a/civicrm/Civi/Test/Api3TestTrait.php b/civicrm/Civi/Test/Api3TestTrait.php
index 49d81e97b43560024fcca2cecd9b55a64c3f7dd0..e00452ab9749313cbb76837962450c9cf652a39e 100644
--- a/civicrm/Civi/Test/Api3TestTrait.php
+++ b/civicrm/Civi/Test/Api3TestTrait.php
@@ -428,6 +428,11 @@ trait Api3TestTrait {
           if ($v4Entity != 'Setting' && !in_array('id', $v4Params['select'])) {
             $v4Params['select'][] = 'id';
           }
+          // Convert 'custom' to 'custom.*'
+          $selectCustom = array_search('custom', $v4Params['select']);
+          if ($selectCustom !== FALSE) {
+            $v4Params['select'][$selectCustom] = 'custom.*';
+          }
         }
         if ($options['limit'] && $v4Entity != 'Setting') {
           $v4Params['limit'] = $options['limit'];
diff --git a/civicrm/Civi/Test/DbTestTrait.php b/civicrm/Civi/Test/DbTestTrait.php
index a16239c4a793f17546f5d1bfd87f3a506238b663..ff81b0e0d532c6e59aca05512088ed7478c8a92d 100644
--- a/civicrm/Civi/Test/DbTestTrait.php
+++ b/civicrm/Civi/Test/DbTestTrait.php
@@ -25,9 +25,8 @@ trait DbTestTrait {
    * @param $id
    * @param $match
    * @param bool $delete
-   * @throws \PHPUnit_Framework_AssertionFailedError
    */
-  public function assertDBState($daoName, $id, $match, $delete = FALSE) {
+  public function assertDBState($daoName, $id, $match, $delete = FALSE): void {
     if (empty($id)) {
       // adding this here since developers forget to check for an id
       // and hence we get the first value in the db
@@ -170,14 +169,15 @@ trait DbTestTrait {
    * Example: $this->assertSql(2, 'select count(*) from foo where foo.bar like "%1"',
    * array(1 => array("Whiz", "String")));
    *
-   * @param $expected
-   * @param $query
+   * @param string|null|int $expected
+   * @param string $query
    * @param array $params
    * @param string $message
    *
-   * @throws \CRM_Core_Exception
+   * @noinspection PhpUnhandledExceptionInspection
+   * @noinspection PhpDocMissingThrowsInspection
    */
-  public function assertDBQuery($expected, $query, $params = [], $message = '') {
+  public function assertDBQuery($expected, string $query, array $params = [], string $message = ''): void {
     if ($message) {
       $message .= ': ';
     }
diff --git a/civicrm/Civi/Test/TAP.php b/civicrm/Civi/Test/TAP.php
index e7bcd88555fa345c7709f72dd3f5f24e6f734e03..82123c60d6ab61f87ccb466d7dd953338ad5fba2 100644
--- a/civicrm/Civi/Test/TAP.php
+++ b/civicrm/Civi/Test/TAP.php
@@ -15,233 +15,9 @@ namespace Civi\Test;
 if (version_compare(\PHPUnit\Runner\Version::id(), '7.0.0', '<')) {
   class_alias('Civi\Test\TAPLegacy', 'Civi\Test\TAP');
 }
+elseif (version_compare(\PHPUnit\Runner\Version::id(), '9.0.0', '<')) {
+  class_alias('Civi\Test\TAP7', 'Civi\Test\TAP');
+}
 else {
-  class TAP extends \PHPUnit\Util\Printer implements \PHPUnit\Framework\TestListener {
-
-    /**
-     * @var int
-     */
-    protected $testNumber = 0;
-
-    /**
-     * @var int
-     */
-    protected $testSuiteLevel = 0;
-
-    /**
-     * @var bool
-     */
-    protected $testSuccessful = TRUE;
-
-    /**
-     * Constructor.
-     *
-     * @param mixed $out
-     *
-     * @throws \PHPUnit\Framework\Exception
-     *
-     * @since  Method available since Release 3.3.4
-     */
-    public function __construct($out = NULL) {
-      parent::__construct($out);
-      $this
-        ->write("TAP version 13\n");
-    }
-
-    /**
-     * An error occurred.
-     *
-     * @param \PHPUnit\Framework\Test $test
-     * @param \Throwable $t
-     * @param float $time
-     */
-    public function addError(\PHPUnit\Framework\Test $test, \Throwable $t, float $time): void {
-      $this
-        ->writeNotOk($test, 'Error');
-    }
-
-    /**
-     * A failure occurred.
-     *
-     * @param \PHPUnit\Framework\Test $test
-     * @param \PHPUnit\Framework\AssertionFailedError $e
-     * @param float $time
-     */
-    public function addFailure(\PHPUnit\Framework\Test $test, \PHPUnit\Framework\AssertionFailedError $e, float $time): void {
-      $this
-        ->writeNotOk($test, 'Failure');
-      $message = explode("\n", \PHPUnit\Framework\TestFailure::exceptionToString($e));
-      $diagnostic = array(
-        'message' => $message[0],
-        'severity' => 'fail',
-      );
-      if ($e instanceof \PHPUnit\Framework\ExpectationFailedException) {
-        $cf = $e
-          ->getComparisonFailure();
-        if ($cf !== NULL) {
-          $diagnostic['data'] = array(
-            'got' => $cf
-              ->getActual(),
-            'expected' => $cf
-              ->getExpected(),
-          );
-        }
-      }
-
-      if (function_exists('yaml_emit')) {
-        $content = \yaml_emit($diagnostic, YAML_UTF8_ENCODING);
-        $content = '  ' . strtr($content, ["\n" => "\n  "]);
-      }
-      else {
-        // Any valid JSON document is a valid YAML document.
-        $content = json_encode($diagnostic, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
-        // For closest match, drop outermost {}'s. Realign indentation.
-        $content = substr($content, 0, strrpos($content, "}")) . '  }';
-        $content = '  ' . ltrim($content);
-        $content = sprintf("  ---\n%s\n  ...\n", $content);
-      }
-
-      $this->write($content);
-    }
-
-    /**
-     * Incomplete test.
-     *
-     * @param \PHPUnit\Framework\Test $test
-     * @param \Throwable $t
-     * @param float $time
-     */
-    public function addIncompleteTest(\PHPUnit\Framework\Test $test, \Throwable $t, float $time): void {
-      $this
-        ->writeNotOk($test, '', 'TODO Incomplete Test');
-    }
-
-    /**
-     * Risky test.
-     *
-     * @param \PHPUnit\Framework\Test $test
-     * @param \Throwable $t
-     * @param float $time
-     *
-     * @since  Method available since Release 4.0.0
-     */
-    public function addRiskyTest(\PHPUnit\Framework\Test $test, \Throwable $t, float $time): void {
-      $this
-        ->write(sprintf("ok %d - # RISKY%s\n", $this->testNumber, $t
-          ->getMessage() != '' ? ' ' . $t
-          ->getMessage() : ''));
-      $this->testSuccessful = FALSE;
-    }
-
-    /**
-     * Skipped test.
-     *
-     * @param \PHPUnit\Framework\Test $test
-     * @param \Throwable $t
-     * @param float $time
-     *
-     * @since  Method available since Release 3.0.0
-     */
-    public function addSkippedTest(\PHPUnit\Framework\Test $test, \Throwable $t, float $time): void {
-      $this
-        ->write(sprintf("ok %d - # SKIP%s\n", $this->testNumber, $t
-          ->getMessage() != '' ? ' ' . $t
-          ->getMessage() : ''));
-      $this->testSuccessful = FALSE;
-    }
-
-    /**
-     * Warning test.
-     *
-     * @param \PHPUnit\Framework\Test $test
-     * @param \PHPUnit\Framework\Warning $e
-     * @param float $time
-     *
-     * @since  Method available since Release 3.0.0
-     */
-    public function addWarning(\PHPUnit\Framework\Test $test, \PHPUnit\Framework\Warning $e, float $time): void {
-      $this
-        ->write(sprintf("ok %d - # Warning%s\n", $this->testNumber, $e
-          ->getMessage() != '' ? ' ' . $e
-          ->getMessage() : ''));
-      $this->testSuccessful = FALSE;
-    }
-
-    /**
-     * A testsuite started.
-     *
-     * @param \PHPUnit\Framework\TestSuite $suite
-     */
-    public function startTestSuite(\PHPUnit\Framework\TestSuite $suite): void {
-      $this->testSuiteLevel++;
-    }
-
-    /**
-     * A testsuite ended.
-     *
-     * @param \PHPUnit\Framework\TestSuite $suite
-     */
-    public function endTestSuite(\PHPUnit\Framework\TestSuite $suite): void {
-      $this->testSuiteLevel--;
-      if ($this->testSuiteLevel == 0) {
-        $this
-          ->write(sprintf("1..%d\n", $this->testNumber));
-      }
-    }
-
-    /**
-     * A test started.
-     *
-     * @param \PHPUnit\Framework\Test $test
-     */
-    public function startTest(\PHPUnit\Framework\Test $test): void {
-      $this->testNumber++;
-      $this->testSuccessful = TRUE;
-    }
-
-    /**
-     * A test ended.
-     *
-     * @param \PHPUnit\Framework\Test $test
-     * @param float $time
-     */
-    public function endTest(\PHPUnit\Framework\Test $test, float $time): void {
-      if ($this->testSuccessful === TRUE) {
-        $this
-          ->write(sprintf("ok %d - %s\n", $this->testNumber, \PHPUnit\Util\Test::describeAsString($test)));
-      }
-      $this
-        ->writeDiagnostics($test);
-    }
-
-    /**
-     * @param \PHPUnit\Framework\Test $test
-     * @param string $prefix
-     * @param string $directive
-     */
-    protected function writeNotOk(\PHPUnit\Framework\Test $test, $prefix = '', $directive = ''): void {
-      $this
-        ->write(sprintf("not ok %d - %s%s%s\n", $this->testNumber, $prefix != '' ? $prefix . ': ' : '', \PHPUnit\Util\Test::describeAsString($test), $directive != '' ? ' # ' . $directive : ''));
-      $this->testSuccessful = FALSE;
-    }
-
-    /**
-     * @param \PHPUnit\Framework\Test $test
-     */
-    private function writeDiagnostics(\PHPUnit\Framework\Test $test): void {
-      if (!$test instanceof \PHPUnit\Framework\TestCase) {
-        return;
-      }
-      if (!$test
-        ->hasOutput()) {
-        return;
-      }
-      foreach (explode("\n", trim($test
-        ->getActualOutput())) as $line) {
-        $this
-          ->write(sprintf("# %s\n", $line));
-      }
-    }
-
-  }
+  class_alias('Civi\Test\TAP9', 'Civi\Test\TAP');
 }
diff --git a/civicrm/Civi/Test/TAP7.php b/civicrm/Civi/Test/TAP7.php
new file mode 100644
index 0000000000000000000000000000000000000000..3497167e023584b52b87b33fece2af7e81020ffc
--- /dev/null
+++ b/civicrm/Civi/Test/TAP7.php
@@ -0,0 +1,245 @@
+<?php
+
+/*
+ +--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC. All rights reserved.                        |
+ |                                                                    |
+ | This work is published under the GNU AGPLv3 license with some      |
+ | permitted exceptions and without any warranty. For full license    |
+ | and copyright information, see https://civicrm.org/licensing       |
+ +--------------------------------------------------------------------+
+ */
+
+namespace Civi\Test;
+
+/**
+ * Implementation of TAP for PHPUnit 7.x-8.x.
+ */
+class TAP7 extends \PHPUnit\Util\Printer implements \PHPUnit\Framework\TestListener {
+
+  /**
+   * @var int
+   */
+  protected $testNumber = 0;
+
+  /**
+   * @var int
+   */
+  protected $testSuiteLevel = 0;
+
+  /**
+   * @var bool
+   */
+  protected $testSuccessful = TRUE;
+
+  /**
+   * Constructor.
+   *
+   * @param mixed $out
+   *
+   * @throws \PHPUnit\Framework\Exception
+   *
+   * @since  Method available since Release 3.3.4
+   */
+  public function __construct($out = NULL) {
+    parent::__construct($out);
+    $this
+      ->write("TAP version 13\n");
+  }
+
+  /**
+   * An error occurred.
+   *
+   * @param \PHPUnit\Framework\Test $test
+   * @param \Throwable $t
+   * @param float $time
+   */
+  public function addError(\PHPUnit\Framework\Test $test, \Throwable $t, float $time): void {
+    $this
+      ->writeNotOk($test, 'Error');
+  }
+
+  /**
+   * A failure occurred.
+   *
+   * @param \PHPUnit\Framework\Test $test
+   * @param \PHPUnit\Framework\AssertionFailedError $e
+   * @param float $time
+   */
+  public function addFailure(\PHPUnit\Framework\Test $test, \PHPUnit\Framework\AssertionFailedError $e, float $time): void {
+    $this
+      ->writeNotOk($test, 'Failure');
+    $message = explode("\n", \PHPUnit\Framework\TestFailure::exceptionToString($e));
+    $diagnostic = array(
+      'message' => $message[0],
+      'severity' => 'fail',
+    );
+    if ($e instanceof \PHPUnit\Framework\ExpectationFailedException) {
+      $cf = $e
+        ->getComparisonFailure();
+      if ($cf !== NULL) {
+        $diagnostic['data'] = array(
+          'got' => $cf
+            ->getActual(),
+          'expected' => $cf
+            ->getExpected(),
+        );
+      }
+    }
+
+    if (function_exists('yaml_emit')) {
+      $content = \yaml_emit($diagnostic, YAML_UTF8_ENCODING);
+      $content = '  ' . strtr($content, ["\n" => "\n  "]);
+    }
+    else {
+      // Any valid JSON document is a valid YAML document.
+      $content = json_encode($diagnostic, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
+      // For closest match, drop outermost {}'s. Realign indentation.
+      $content = substr($content, 0, strrpos($content, "}")) . '  }';
+      $content = '  ' . ltrim($content);
+      $content = sprintf("  ---\n%s\n  ...\n", $content);
+    }
+
+    $this->write($content);
+  }
+
+  /**
+   * Incomplete test.
+   *
+   * @param \PHPUnit\Framework\Test $test
+   * @param \Throwable $t
+   * @param float $time
+   */
+  public function addIncompleteTest(\PHPUnit\Framework\Test $test, \Throwable $t, float $time): void {
+    $this
+      ->writeNotOk($test, '', 'TODO Incomplete Test');
+  }
+
+  /**
+   * Risky test.
+   *
+   * @param \PHPUnit\Framework\Test $test
+   * @param \Throwable $t
+   * @param float $time
+   *
+   * @since  Method available since Release 4.0.0
+   */
+  public function addRiskyTest(\PHPUnit\Framework\Test $test, \Throwable $t, float $time): void {
+    $this
+      ->write(sprintf("ok %d - # RISKY%s\n", $this->testNumber, $t
+        ->getMessage() != '' ? ' ' . $t
+        ->getMessage() : ''));
+    $this->testSuccessful = FALSE;
+  }
+
+  /**
+   * Skipped test.
+   *
+   * @param \PHPUnit\Framework\Test $test
+   * @param \Throwable $t
+   * @param float $time
+   *
+   * @since  Method available since Release 3.0.0
+   */
+  public function addSkippedTest(\PHPUnit\Framework\Test $test, \Throwable $t, float $time): void {
+    $this
+      ->write(sprintf("ok %d - # SKIP%s\n", $this->testNumber, $t
+        ->getMessage() != '' ? ' ' . $t
+        ->getMessage() : ''));
+    $this->testSuccessful = FALSE;
+  }
+
+  /**
+   * Warning test.
+   *
+   * @param \PHPUnit\Framework\Test $test
+   * @param \PHPUnit\Framework\Warning $e
+   * @param float $time
+   *
+   * @since  Method available since Release 3.0.0
+   */
+  public function addWarning(\PHPUnit\Framework\Test $test, \PHPUnit\Framework\Warning $e, float $time): void {
+    $this
+      ->write(sprintf("ok %d - # Warning%s\n", $this->testNumber, $e
+        ->getMessage() != '' ? ' ' . $e
+        ->getMessage() : ''));
+    $this->testSuccessful = FALSE;
+  }
+
+  /**
+   * A testsuite started.
+   *
+   * @param \PHPUnit\Framework\TestSuite $suite
+   */
+  public function startTestSuite(\PHPUnit\Framework\TestSuite $suite): void {
+    $this->testSuiteLevel++;
+  }
+
+  /**
+   * A testsuite ended.
+   *
+   * @param \PHPUnit\Framework\TestSuite $suite
+   */
+  public function endTestSuite(\PHPUnit\Framework\TestSuite $suite): void {
+    $this->testSuiteLevel--;
+    if ($this->testSuiteLevel == 0) {
+      $this
+        ->write(sprintf("1..%d\n", $this->testNumber));
+    }
+  }
+
+  /**
+   * A test started.
+   *
+   * @param \PHPUnit\Framework\Test $test
+   */
+  public function startTest(\PHPUnit\Framework\Test $test): void {
+    $this->testNumber++;
+    $this->testSuccessful = TRUE;
+  }
+
+  /**
+   * A test ended.
+   *
+   * @param \PHPUnit\Framework\Test $test
+   * @param float $time
+   */
+  public function endTest(\PHPUnit\Framework\Test $test, float $time): void {
+    if ($this->testSuccessful === TRUE) {
+      $this
+        ->write(sprintf("ok %d - %s\n", $this->testNumber, \PHPUnit\Util\Test::describeAsString($test)));
+    }
+    $this
+      ->writeDiagnostics($test);
+  }
+
+  /**
+   * @param \PHPUnit\Framework\Test $test
+   * @param string $prefix
+   * @param string $directive
+   */
+  protected function writeNotOk(\PHPUnit\Framework\Test $test, $prefix = '', $directive = ''): void {
+    $this
+      ->write(sprintf("not ok %d - %s%s%s\n", $this->testNumber, $prefix != '' ? $prefix . ': ' : '', \PHPUnit\Util\Test::describeAsString($test), $directive != '' ? ' # ' . $directive : ''));
+    $this->testSuccessful = FALSE;
+  }
+
+  /**
+   * @param \PHPUnit\Framework\Test $test
+   */
+  private function writeDiagnostics(\PHPUnit\Framework\Test $test): void {
+    if (!$test instanceof \PHPUnit\Framework\TestCase) {
+      return;
+    }
+    if (!$test
+      ->hasOutput()) {
+      return;
+    }
+    foreach (explode("\n", trim($test
+      ->getActualOutput())) as $line) {
+      $this
+        ->write(sprintf("# %s\n", $line));
+    }
+  }
+
+}
diff --git a/civicrm/Civi/Test/TAP9.php b/civicrm/Civi/Test/TAP9.php
new file mode 100644
index 0000000000000000000000000000000000000000..7b39c6bbfe4cb897609a8914da3f2440e7e6c55e
--- /dev/null
+++ b/civicrm/Civi/Test/TAP9.php
@@ -0,0 +1,253 @@
+<?php
+
+/*
+ +--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC. All rights reserved.                        |
+ |                                                                    |
+ | This work is published under the GNU AGPLv3 license with some      |
+ | permitted exceptions and without any warranty. For full license    |
+ | and copyright information, see https://civicrm.org/licensing       |
+ +--------------------------------------------------------------------+
+ */
+
+namespace Civi\Test;
+
+use PHPUnit\Framework\TestResult;
+use PHPUnit\TextUI\ResultPrinter;
+use PHPUnit\Util\Printer;
+
+/**
+ * Implementation of TAP for PHPUnit 9.x.
+ */
+class TAP9 extends Printer implements ResultPrinter {
+
+  /**
+   * @var int
+   */
+  protected $testNumber = 0;
+
+  /**
+   * @var int
+   */
+  protected $testSuiteLevel = 0;
+
+  /**
+   * @var bool
+   */
+  protected $testSuccessful = TRUE;
+
+  /**
+   * Constructor.
+   *
+   * @param mixed $out
+   *
+   * @throws \PHPUnit\Framework\Exception
+   *
+   * @since  Method available since Release 3.3.4
+   */
+  public function __construct($out = NULL) {
+    parent::__construct($out);
+    $this
+      ->write("TAP version 13\n");
+  }
+
+  public function printResult(TestResult $result) : void {
+    // Don't actually have to do anything - since all the listener methods call write().
+  }
+
+  /**
+   * An error occurred.
+   *
+   * @param \PHPUnit\Framework\Test $test
+   * @param \Throwable $t
+   * @param float $time
+   */
+  public function addError(\PHPUnit\Framework\Test $test, \Throwable $t, float $time): void {
+    $this
+      ->writeNotOk($test, 'Error');
+  }
+
+  /**
+   * A failure occurred.
+   *
+   * @param \PHPUnit\Framework\Test $test
+   * @param \PHPUnit\Framework\AssertionFailedError $e
+   * @param float $time
+   */
+  public function addFailure(\PHPUnit\Framework\Test $test, \PHPUnit\Framework\AssertionFailedError $e, float $time): void {
+    $this
+      ->writeNotOk($test, 'Failure');
+    $message = explode("\n", \PHPUnit\Framework\TestFailure::exceptionToString($e));
+    $diagnostic = array(
+      'message' => $message[0],
+      'severity' => 'fail',
+    );
+    if ($e instanceof \PHPUnit\Framework\ExpectationFailedException) {
+      $cf = $e
+        ->getComparisonFailure();
+      if ($cf !== NULL) {
+        $diagnostic['data'] = array(
+          'got' => $cf
+            ->getActual(),
+          'expected' => $cf
+            ->getExpected(),
+        );
+      }
+    }
+
+    if (function_exists('yaml_emit')) {
+      $content = \yaml_emit($diagnostic, YAML_UTF8_ENCODING);
+      $content = '  ' . strtr($content, ["\n" => "\n  "]);
+    }
+    else {
+      // Any valid JSON document is a valid YAML document.
+      $content = json_encode($diagnostic, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
+      // For closest match, drop outermost {}'s. Realign indentation.
+      $content = substr($content, 0, strrpos($content, "}")) . '  }';
+      $content = '  ' . ltrim($content);
+      $content = sprintf("  ---\n%s\n  ...\n", $content);
+    }
+
+    $this->write($content);
+  }
+
+  /**
+   * Incomplete test.
+   *
+   * @param \PHPUnit\Framework\Test $test
+   * @param \Throwable $t
+   * @param float $time
+   */
+  public function addIncompleteTest(\PHPUnit\Framework\Test $test, \Throwable $t, float $time): void {
+    $this
+      ->writeNotOk($test, '', 'TODO Incomplete Test');
+  }
+
+  /**
+   * Risky test.
+   *
+   * @param \PHPUnit\Framework\Test $test
+   * @param \Throwable $t
+   * @param float $time
+   *
+   * @since  Method available since Release 4.0.0
+   */
+  public function addRiskyTest(\PHPUnit\Framework\Test $test, \Throwable $t, float $time): void {
+    $this
+      ->write(sprintf("ok %d - # RISKY%s\n", $this->testNumber, $t
+        ->getMessage() != '' ? ' ' . $t
+        ->getMessage() : ''));
+    $this->testSuccessful = FALSE;
+  }
+
+  /**
+   * Skipped test.
+   *
+   * @param \PHPUnit\Framework\Test $test
+   * @param \Throwable $t
+   * @param float $time
+   *
+   * @since  Method available since Release 3.0.0
+   */
+  public function addSkippedTest(\PHPUnit\Framework\Test $test, \Throwable $t, float $time): void {
+    $this
+      ->write(sprintf("ok %d - # SKIP%s\n", $this->testNumber, $t
+        ->getMessage() != '' ? ' ' . $t
+        ->getMessage() : ''));
+    $this->testSuccessful = FALSE;
+  }
+
+  /**
+   * Warning test.
+   *
+   * @param \PHPUnit\Framework\Test $test
+   * @param \PHPUnit\Framework\Warning $e
+   * @param float $time
+   *
+   * @since  Method available since Release 3.0.0
+   */
+  public function addWarning(\PHPUnit\Framework\Test $test, \PHPUnit\Framework\Warning $e, float $time): void {
+    $this
+      ->write(sprintf("ok %d - # Warning%s\n", $this->testNumber, $e
+        ->getMessage() != '' ? ' ' . $e
+        ->getMessage() : ''));
+    $this->testSuccessful = FALSE;
+  }
+
+  /**
+   * A testsuite started.
+   *
+   * @param \PHPUnit\Framework\TestSuite $suite
+   */
+  public function startTestSuite(\PHPUnit\Framework\TestSuite $suite): void {
+    $this->testSuiteLevel++;
+  }
+
+  /**
+   * A testsuite ended.
+   *
+   * @param \PHPUnit\Framework\TestSuite $suite
+   */
+  public function endTestSuite(\PHPUnit\Framework\TestSuite $suite): void {
+    $this->testSuiteLevel--;
+    if ($this->testSuiteLevel == 0) {
+      $this
+        ->write(sprintf("1..%d\n", $this->testNumber));
+    }
+  }
+
+  /**
+   * A test started.
+   *
+   * @param \PHPUnit\Framework\Test $test
+   */
+  public function startTest(\PHPUnit\Framework\Test $test): void {
+    $this->testNumber++;
+    $this->testSuccessful = TRUE;
+  }
+
+  /**
+   * A test ended.
+   *
+   * @param \PHPUnit\Framework\Test $test
+   * @param float $time
+   */
+  public function endTest(\PHPUnit\Framework\Test $test, float $time): void {
+    if ($this->testSuccessful === TRUE) {
+      $this
+        ->write(sprintf("ok %d - %s\n", $this->testNumber, \PHPUnit\Util\Test::describeAsString($test)));
+    }
+    $this
+      ->writeDiagnostics($test);
+  }
+
+  /**
+   * @param \PHPUnit\Framework\Test $test
+   * @param string $prefix
+   * @param string $directive
+   */
+  protected function writeNotOk(\PHPUnit\Framework\Test $test, $prefix = '', $directive = ''): void {
+    $this
+      ->write(sprintf("not ok %d - %s%s%s\n", $this->testNumber, $prefix != '' ? $prefix . ': ' : '', \PHPUnit\Util\Test::describeAsString($test), $directive != '' ? ' # ' . $directive : ''));
+    $this->testSuccessful = FALSE;
+  }
+
+  /**
+   * @param \PHPUnit\Framework\Test $test
+   */
+  private function writeDiagnostics(\PHPUnit\Framework\Test $test): void {
+    if (!$test instanceof \PHPUnit\Framework\TestCase) {
+      return;
+    }
+    if (!$test
+      ->hasOutput()) {
+      return;
+    }
+    foreach (explode("\n", trim($test
+      ->getActualOutput())) as $line) {
+      $this
+        ->write(sprintf("# %s\n", $line));
+    }
+  }
+
+}
diff --git a/civicrm/Civi/Token/StandardFilters.php b/civicrm/Civi/Token/StandardFilters.php
new file mode 100644
index 0000000000000000000000000000000000000000..5b77e1cd82fe97fc95f9c7be0cc20d76f31e3ee4
--- /dev/null
+++ b/civicrm/Civi/Token/StandardFilters.php
@@ -0,0 +1,114 @@
+<?php
+
+namespace Civi\Token;
+
+/**
+ * This class is a collection of token filter functions. For example, consider this message:
+ *
+ * "Hello {contact.first_name|upper}!"
+ *
+ * The "upper" filter corresponds to method `upper()`.
+ *
+ * All public methods should have the same signature (mixed $value, array $filter, string $format).
+ */
+class StandardFilters {
+
+  /**
+   * Convert to uppercase.
+   *
+   * @param mixed $value
+   * @param array $filter
+   *   The list of filter criteria, as requested in this template.
+   * @param string $format
+   *   The format of the active template ('text/plain' or 'text/html').
+   *
+   * @return string
+   *
+   * @throws \CRM_Core_Exception
+   * @noinspection PhpUnusedParameterInspection
+   */
+  public static function upper($value, array $filter, string $format): string {
+    switch ($format) {
+      case 'text/plain':
+        return mb_strtoupper($value);
+
+      case 'text/html':
+        return \CRM_Utils_XML::filterMarkupText((string) $value, 'mb_strtoupper');
+
+      default:
+        throw new \CRM_Core_Exception(sprintf('Filter %s does not support format %s', __FUNCTION__, $format));
+    }
+  }
+
+  /**
+   * Convert to lowercase.
+   *
+   * @param string $value
+   * @param array $filter
+   * @param string $format
+   *
+   * @return string
+   *
+   * @throws \CRM_Core_Exception
+   * @noinspection PhpUnusedParameterInspection
+   */
+  public static function lower($value, array $filter, string $format): string {
+    switch ($format) {
+      case 'text/plain':
+        return mb_strtolower($value);
+
+      case 'text/html':
+        return \CRM_Utils_XML::filterMarkupText((string) $value, 'mb_strtolower');
+
+      default:
+        throw new \CRM_Core_Exception(sprintf('Filter %s does not support format %s', __FUNCTION__, $format));
+    }
+  }
+
+  /**
+   * Convert to boolean.
+   *
+   * @param string $value
+   * @param array $filter
+   * @param string $format
+   *
+   * @return int
+   * @noinspection PhpUnusedParameterInspection
+   */
+  public static function boolean($value, array $filter, string $format): int {
+    return (int) ((bool) $value);
+  }
+
+  public static function crmDate($value, array $filter, string $format) {
+    if ($value instanceof \DateTime) {
+      // @todo cludgey.
+      require_once 'CRM/Core/Smarty/plugins/modifier.crmDate.php';
+      return \smarty_modifier_crmDate($value->format('Y-m-d H:i:s'), $filter[1] ?? NULL);
+    }
+    if ($value === '') {
+      return $value;
+    }
+
+    // I don't think this makes sense, but it matches the pre-refactor
+    // behavior (where the old `switch()` block would fall-through to `case "default"`.
+    return static::default($value, $filter, $format);
+  }
+
+  /**
+   * Return value, falling back to default.
+   *
+   * @param $value
+   * @param array $filter
+   * @param string $format
+   *
+   * @return mixed
+   * @noinspection PhpUnusedParameterInspection
+   */
+  public static function default($value, array $filter, string $format) {
+    if (!$value) {
+      return $filter[1];
+    }
+    return $value;
+  }
+
+}
diff --git a/civicrm/Civi/Token/TokenProcessor.php b/civicrm/Civi/Token/TokenProcessor.php
index 57761c7fdfcbccbf3cb1deb4065d796b44aa8c68..2472f03b4e0c72ca8d70b28bac8cf14e2fc5d98d 100644
--- a/civicrm/Civi/Token/TokenProcessor.php
+++ b/civicrm/Civi/Token/TokenProcessor.php
@@ -377,10 +377,10 @@ class TokenProcessor {
     $useSmarty = !empty($row->context['smarty']);
 
     $tokens = $this->rowValues[$row->tokenRow][$message['format']];
-    $getToken = function(?string $fullToken, ?string $entity, ?string $field, ?array $modifier) use ($tokens, $useSmarty, $row) {
+    $getToken = function(?string $fullToken, ?string $entity, ?string $field, ?array $modifier) use ($tokens, $useSmarty, $row, $message) {
       if (isset($tokens[$entity][$field])) {
         $v = $tokens[$entity][$field];
-        $v = $this->filterTokenValue($v, $modifier, $row);
+        $v = $this->filterTokenValue($v, $modifier, $row, $message['format']);
         if ($useSmarty) {
           $v = \CRM_Utils_Token::tokenEscapeSmarty($v);
         }
@@ -456,10 +456,12 @@ class TokenProcessor {
    * @param array|null $filter
    * @param TokenRow $row
    *   The current target/row.
+   * @param string $messageFormat
+   *   Ex: 'text/plain' or 'text/html'
    * @return string
    * @throws \CRM_Core_Exception
    */
-  private function filterTokenValue($value, ?array $filter, TokenRow $row) {
+  private function filterTokenValue($value, ?array $filter, TokenRow $row, string $messageFormat) {
     // KISS demonstration. This should change... e.g. provide a filter-registry or reuse Smarty's registry...
 
     if ($value instanceof \DateTime && $filter === NULL) {
@@ -470,6 +472,7 @@ class TokenProcessor {
       }
     }
 
+    // TODO: Move this to StandardFilters
     if ($value instanceof Money) {
       switch ($filter[0] ?? NULL) {
         case NULL:
@@ -484,40 +487,14 @@ class TokenProcessor {
       }
     }
 
-    switch ($filter[0] ?? NULL) {
-      case NULL:
-        return $value;
-
-      case 'upper':
-        return mb_strtoupper($value);
-
-      case 'lower':
-        return mb_strtolower($value);
-
-      case 'boolean':
-        // Cast to 0 or 1 for use in text.
-        return (int) ((bool) $value);
-
-      case 'crmDate':
-        if ($value instanceof \DateTime) {
-          // @todo cludgey.
-          require_once 'CRM/Core/Smarty/plugins/modifier.crmDate.php';
-          return \smarty_modifier_crmDate($value->format('Y-m-d H:i:s'), $filter[1] ?? NULL);
-        }
-        if ($value === '') {
-          return $value;
-        }
-
-      case 'default':
-        if (!$value) {
-          return $filter[1];
-        }
-        else {
-          return $value;
-        }
-
-      default:
-        throw new \CRM_Core_Exception('Invalid token filter: ' . json_encode($filter, JSON_UNESCAPED_SLASHES));
+    if (!isset($filter[0])) {
+      return $value;
+    }
+    elseif (is_callable([StandardFilters::class, $filter[0]])) {
+      return call_user_func([StandardFilters::class, $filter[0]], $value, $filter, $messageFormat);
+    }
+    else {
+      throw new \CRM_Core_Exception('Invalid token filter: ' . json_encode($filter, JSON_UNESCAPED_SLASHES));
     }
   }
 
diff --git a/civicrm/Civi/UserJob/UserJobInterface.php b/civicrm/Civi/UserJob/UserJobInterface.php
index bf259bd2f5368262203f2ecb5f5d9f4f8a548cf9..4a5bbaade2b9c29d1154a7c521dff0f20bf1aac9 100644
--- a/civicrm/Civi/UserJob/UserJobInterface.php
+++ b/civicrm/Civi/UserJob/UserJobInterface.php
@@ -18,6 +18,8 @@ interface UserJobInterface {
    *  - name
    *  - id (generally the same as name)
    *  - label
+   *  - entity
+   *  - url
    *
    *  e.g. ['activity_import' => ['id' => 'activity_import', 'label' => ts('Activity Import'), 'name' => 'activity_import']]
    *
diff --git a/civicrm/Civi/WorkflowMessage/Traits/ReflectiveWorkflowTrait.php b/civicrm/Civi/WorkflowMessage/Traits/ReflectiveWorkflowTrait.php
index f10fe04113e9c6192fa182cf2af0164ac850b5f6..fd2fa3920df243c36ae4894955974416562d0347 100644
--- a/civicrm/Civi/WorkflowMessage/Traits/ReflectiveWorkflowTrait.php
+++ b/civicrm/Civi/WorkflowMessage/Traits/ReflectiveWorkflowTrait.php
@@ -63,7 +63,7 @@ trait ReflectiveWorkflowTrait {
         /** @var \ReflectionProperty $property */
         $parsed = ReflectionUtils::getCodeDocs($property, 'Property');
         $field = new \Civi\WorkflowMessage\FieldSpec();
-        $field->setName($property->getName())->loadArray($parsed);
+        $field->setName($property->getName())->loadArray($parsed, TRUE);
         $cache[$field->getName()] = $field;
       }
     }
diff --git a/civicrm/ang/crmUi.js b/civicrm/ang/crmUi.js
index 309d512bdd690be8fe90fd66b167d44c24a629c6..3b5a1522ef72ef89ef9bdd6d6891cccc7c62abfb 100644
--- a/civicrm/ang/crmUi.js
+++ b/civicrm/ang/crmUi.js
@@ -751,9 +751,16 @@
           };
 
           if (ctrl.ngModel) {
+            var oldValue;
             // Ensure widget is updated when model changes
             ctrl.ngModel.$render = function() {
               element.val(ctrl.ngModel.$viewValue || '');
+              // Trigger change so the Select2 renders the current value,
+              // but only if the value has actually changed (to avoid recursion)
+              if (!angular.equals(ctrl.ngModel.$viewValue, oldValue)) {
+                oldValue = ctrl.ngModel.$viewValue;
+                element.change();
+              }
             };
 
             // Copied from ng-list
diff --git a/civicrm/api/v3/ActivityType.php b/civicrm/api/v3/ActivityType.php
index 774e9b3101dbaae6464cee5a5b17ff37a9621722..6880e6ae7ef27b18b8cc314e6f19d2a8fbfb5abf 100644
--- a/civicrm/api/v3/ActivityType.php
+++ b/civicrm/api/v3/ActivityType.php
@@ -98,7 +98,7 @@ function _civicrm_api3_activity_type_create_spec(&$params) {
  * @deprecated use OptionValue api
  */
 function civicrm_api3_activity_type_delete($params) {
-  $result = CRM_Core_BAO_OptionValue::del($params['id']);
+  $result = CRM_Core_BAO_OptionValue::deleteRecord($params);
   if ($result) {
     return civicrm_api3_create_success(TRUE, $params);
   }
diff --git a/civicrm/api/v3/Address.php b/civicrm/api/v3/Address.php
index f7988a249ae096f934698d5a02f2b43fd9f3c89d..dd74c46c11b897e498acc5d724d3577a24c7be72 100644
--- a/civicrm/api/v3/Address.php
+++ b/civicrm/api/v3/Address.php
@@ -60,22 +60,11 @@ function civicrm_api3_address_create($params) {
     $params['check_permissions'] = 0;
   }
 
-  if (!isset($params['fix_address'])) {
-    $params['fix_address'] = TRUE;
+  if (!isset($params['fix_address']) || $params['fix_address']) {
+    CRM_Core_BAO_Address::fixAddress($params);
   }
 
-  /**
-   * Create array for BAO (expects address params in as an
-   * element in array 'address'
-   */
-  $addressBAO = CRM_Core_BAO_Address::create($params, $params['fix_address']);
-  if (empty($addressBAO)) {
-    return civicrm_api3_create_error("Address is not created or updated ");
-  }
-  else {
-    $values = _civicrm_api3_dao_to_array($addressBAO, $params);
-    return civicrm_api3_create_success($values, $params, 'Address', $addressBAO);
-  }
+  return _civicrm_api3_basic_create(_civicrm_api3_get_BAO(__FUNCTION__), $params, 'Address');
 }
 
 /**
diff --git a/civicrm/api/v3/Case.php b/civicrm/api/v3/Case.php
index 4651f5c87b75fa8bff3b9db9d7485806b76ec0cb..3a95057326e763ac9c959b2824c982837e61681a 100644
--- a/civicrm/api/v3/Case.php
+++ b/civicrm/api/v3/Case.php
@@ -110,7 +110,7 @@ function civicrm_api3_case_create($params) {
   if (isset($params['contact_id']) && !isset($params['id'])) {
     foreach ((array) $params['contact_id'] as $cid) {
       $contactParams = ['case_id' => $caseBAO->id, 'contact_id' => $cid];
-      CRM_Case_BAO_CaseContact::create($contactParams);
+      CRM_Case_BAO_CaseContact::writeRecord($contactParams);
     }
   }
 
diff --git a/civicrm/api/v3/CustomGroup.php b/civicrm/api/v3/CustomGroup.php
index e80f23248021082ddfd8c8fc3663ab02391cf42b..55d5f51774edf85492d65bad6874746e6ac46d60 100644
--- a/civicrm/api/v3/CustomGroup.php
+++ b/civicrm/api/v3/CustomGroup.php
@@ -88,8 +88,9 @@ function _civicrm_api3_custom_group_create_spec(&$params) {
 function civicrm_api3_custom_group_delete($params) {
   $values = new CRM_Core_DAO_CustomGroup();
   $values->id = $params['id'];
-  $values->find(TRUE);
-
+  if (!$values->find(TRUE)) {
+    return civicrm_api3_create_error('Error while deleting custom group');
+  }
   $result = CRM_Core_BAO_CustomGroup::deleteGroup($values, TRUE);
   return $result ? civicrm_api3_create_success() : civicrm_api3_create_error('Error while deleting custom group');
 }
diff --git a/civicrm/api/v3/PledgePayment.php b/civicrm/api/v3/PledgePayment.php
index 27795e9795f48a7fa5df154ef622049bd55ebd00..f6e97f622a0ef888bce8aaf9be6504aa056b6fc6 100644
--- a/civicrm/api/v3/PledgePayment.php
+++ b/civicrm/api/v3/PledgePayment.php
@@ -71,22 +71,19 @@ function _civicrm_api3_pledge_payment_create_spec(&$params) {
 }
 
 /**
- * Delete a pledge Payment - Note this deletes the contribution not just the link.
+ * Delete a pledge Payment - Note this deletes the contribution not just the
+ * link.
  *
  * @param array $params
  *   Input parameters.
  *
  * @return array
  *   API result
+ * @throws \CRM_Core_Exception
+ * @noinspection PhpUnused
  */
-function civicrm_api3_pledge_payment_delete($params) {
-
-  if (CRM_Pledge_BAO_PledgePayment::del($params['id'])) {
-    return civicrm_api3_create_success(['id' => $params['id']], $params, 'PledgePayment', 'delete');
-  }
-  else {
-    return civicrm_api3_create_error('Could not delete payment');
-  }
+function civicrm_api3_pledge_payment_delete(array $params): array {
+  return _civicrm_api3_basic_delete(_civicrm_api3_get_BAO(__FUNCTION__), $params);
 }
 
 /**
diff --git a/civicrm/api/v3/Relationship.php b/civicrm/api/v3/Relationship.php
index f1f7664beeb1f5ccfd8fd56f9ba34e4e778e32aa..4e7cbc9beef1e75ad622429b5823ffca2ba24e80 100644
--- a/civicrm/api/v3/Relationship.php
+++ b/civicrm/api/v3/Relationship.php
@@ -56,22 +56,11 @@ function _civicrm_api3_relationship_create_spec(&$params) {
  *
  * @return array
  *   API Result Array
+ *
+ * @throws \CRM_Core_Exception
  */
-function civicrm_api3_relationship_delete($params) {
-
-  if (!CRM_Utils_Rule::integer($params['id'])) {
-    return civicrm_api3_create_error('Invalid value for relationship ID');
-  }
-
-  $relationBAO = new CRM_Contact_BAO_Relationship();
-  $relationBAO->id = $params['id'];
-  if (!$relationBAO->find(TRUE)) {
-    return civicrm_api3_create_error('Relationship id is not valid');
-  }
-  else {
-    $relationBAO->del($params['id']);
-    return civicrm_api3_create_success('Deleted relationship successfully');
-  }
+function civicrm_api3_relationship_delete(array $params): array {
+  return _civicrm_api3_basic_delete(_civicrm_api3_get_BAO(__FUNCTION__), $params);
 }
 
 /**
diff --git a/civicrm/api/v3/ReportTemplate.php b/civicrm/api/v3/ReportTemplate.php
index 0deb7b998ff2ce0b827f64790bf6c6d550a9bb72..0ac8ccdedd653c7d000e278d43b53944b960724d 100644
--- a/civicrm/api/v3/ReportTemplate.php
+++ b/civicrm/api/v3/ReportTemplate.php
@@ -143,7 +143,7 @@ function _civicrm_api3_report_template_getrows($params) {
   $reportInstance->setAddPaging(FALSE);
   $reportInstance->setOffsetValue($options['offset']);
   $reportInstance->beginPostProcessCommon();
-  $sql = $reportInstance->buildQuery();
+  $sql = (string) $reportInstance->buildQuery();
   $reportInstance->addToDeveloperTab($sql);
   $rows = $metadata = $requiredMetadata = [];
   $reportInstance->buildRows($sql, $rows);
diff --git a/civicrm/api/v3/UFField.php b/civicrm/api/v3/UFField.php
index 0ac6b070d291ba28fffcce2037c47003e04aad5d..526cc49faca429a5ab60ade806c1b23a32bef152 100644
--- a/civicrm/api/v3/UFField.php
+++ b/civicrm/api/v3/UFField.php
@@ -77,7 +77,7 @@ function civicrm_api3_uf_field_delete($params) {
     throw new CRM_Core_Exception('Invalid value for field_id.');
   }
 
-  $result = CRM_Core_BAO_UFField::del($fieldId);
+  $result = CRM_Core_BAO_UFField::deleteRecord(['id' => $fieldId]);
 
   $fieldsType = CRM_Core_BAO_UFGroup::calculateGroupType($ufGroupId, TRUE);
   CRM_Core_BAO_UFGroup::updateGroupTypes($ufGroupId, $fieldsType);
diff --git a/civicrm/api/v3/examples/PaymentProcessor/Create.ex.php b/civicrm/api/v3/examples/PaymentProcessor/Create.ex.php
index c06083e0cfea6f868eedfd84f6e1d3a37865230d..84862dfc114857a8cb259d5702dd5de8b42e6037 100644
--- a/civicrm/api/v3/examples/PaymentProcessor/Create.ex.php
+++ b/civicrm/api/v3/examples/PaymentProcessor/Create.ex.php
@@ -13,6 +13,7 @@
 function payment_processor_create_example() {
   $params = [
     'name' => 'API Test PP',
+    'title' => 'API Test PP',
     'payment_processor_type_id' => 1,
     'class_name' => 'CRM_Core_Payment_APITest',
     'is_recur' => 0,
diff --git a/civicrm/civicrm-version.php b/civicrm/civicrm-version.php
index efb04c7cf3d31cbc190c63118d200cb11620b815..d0afe712ed98f1d278e8bde8ebaf6aff6493f13d 100644
--- a/civicrm/civicrm-version.php
+++ b/civicrm/civicrm-version.php
@@ -1,7 +1,7 @@
 <?php
 /** @deprecated */
 function civicrmVersion( ) {
-  return array( 'version'  => '5.60.0',
+  return array( 'version'  => '5.61.0',
                 'cms'      => 'Wordpress',
                 'revision' => '' );
 }
diff --git a/civicrm/composer.json b/civicrm/composer.json
index e09f2332f52ad74a900378c051061c7b95c31778..71b87fca58e2aad310484fd0fbc47e2a02b53cd6 100644
--- a/civicrm/composer.json
+++ b/civicrm/composer.json
@@ -61,7 +61,7 @@
     "symfony/event-dispatcher": "~4.4 || ~6.0",
     "symfony/filesystem": "~4.4 || ~6.0",
     "symfony/process": "~4.4 || ~6.0",
-    "symfony/var-dumper": "~3.0 || ~4.4 || ~5.1 || ~6.0",
+    "symfony/var-dumper": "~4.4 || ~5.1 || ~6.0",
     "symfony/service-contracts": "~2.2 || ~3.1",
     "psr/log": "~1.0 || ~2.0 || ~3.0",
     "symfony/finder": "~4.4 || ~6.0",
@@ -279,9 +279,6 @@
       "html2text/html2text": {
         "Fix deprecation warning in php8.1 on html_entity_decode": "https://raw.githubusercontent.com/civicrm/civicrm-core/e758d20e9f613ca6c4cf652c23d2cd7e5d3af3ce/tools/scripts/composer/html2text_html2_text_php81_deprecation.patch"
       },
-      "pear/pear-core-minimal": {
-        "Apply patch to fix creation of dynamic properties in PEAR_Error class": "https://patch-diff.githubusercontent.com/raw/pear/pear-core-minimal/pull/11.patch"
-      },
       "pear/db": {
         "Apply patch to ensure that MySQLI reporting remains the same in php8.1": "https://patch-diff.githubusercontent.com/raw/pear/DB/pull/13.patch",
         "Apply patch to fix deprecations in php8.2": "https://patch-diff.githubusercontent.com/raw/pear/DB/pull/14.patch",
diff --git a/civicrm/composer.lock b/civicrm/composer.lock
index 898bd6d4c66fa940f9c670d185edfa28bae6191e..7d289ec76e13912dab71ac5a5f099bda3be22a8f 100644
--- a/civicrm/composer.lock
+++ b/civicrm/composer.lock
@@ -4,7 +4,7 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
         "This file is @generated automatically"
     ],
-    "content-hash": "18f17bf90f8002419597da6e8c7db3b1",
+    "content-hash": "88da0bec8fb97981904bb8c06579cc2f",
     "packages": [
         {
             "name": "adrienrn/php-mimetyper",
@@ -863,16 +863,16 @@
         },
         {
             "name": "guzzlehttp/psr7",
-            "version": "1.9.0",
+            "version": "1.9.1",
             "source": {
                 "type": "git",
                 "url": "https://github.com/guzzle/psr7.git",
-                "reference": "e98e3e6d4f86621a9b75f623996e6bbdeb4b9318"
+                "reference": "e4490cabc77465aaee90b20cfc9a770f8c04be6b"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/guzzle/psr7/zipball/e98e3e6d4f86621a9b75f623996e6bbdeb4b9318",
-                "reference": "e98e3e6d4f86621a9b75f623996e6bbdeb4b9318",
+                "url": "https://api.github.com/repos/guzzle/psr7/zipball/e4490cabc77465aaee90b20cfc9a770f8c04be6b",
+                "reference": "e4490cabc77465aaee90b20cfc9a770f8c04be6b",
                 "shasum": ""
             },
             "require": {
@@ -891,11 +891,6 @@
                 "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
             },
             "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.9-dev"
-                }
-            },
             "autoload": {
                 "files": [
                     "src/functions_include.php"
@@ -953,7 +948,7 @@
             ],
             "support": {
                 "issues": "https://github.com/guzzle/psr7/issues",
-                "source": "https://github.com/guzzle/psr7/tree/1.9.0"
+                "source": "https://github.com/guzzle/psr7/tree/1.9.1"
             },
             "funding": [
                 {
@@ -969,7 +964,7 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2022-06-20T21:43:03+00:00"
+            "time": "2023-04-17T16:00:37+00:00"
         },
         {
             "name": "html2text/html2text",
@@ -2319,16 +2314,16 @@
         },
         {
             "name": "pear/pear-core-minimal",
-            "version": "v1.10.11",
+            "version": "v1.10.13",
             "source": {
                 "type": "git",
                 "url": "https://github.com/pear/pear-core-minimal.git",
-                "reference": "68d0d32ada737153b7e93b8d3c710ebe70ac867d"
+                "reference": "aed862e95fd286c53cc546734868dc38ff4b5b1d"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/pear/pear-core-minimal/zipball/68d0d32ada737153b7e93b8d3c710ebe70ac867d",
-                "reference": "68d0d32ada737153b7e93b8d3c710ebe70ac867d",
+                "url": "https://api.github.com/repos/pear/pear-core-minimal/zipball/aed862e95fd286c53cc546734868dc38ff4b5b1d",
+                "reference": "aed862e95fd286c53cc546734868dc38ff4b5b1d",
                 "shasum": ""
             },
             "require": {
@@ -2363,7 +2358,7 @@
                 "issues": "http://pear.php.net/bugs/search.php?cmd=display&package_name[]=PEAR",
                 "source": "https://github.com/pear/pear-core-minimal"
             },
-            "time": "2021-08-10T22:31:03+00:00"
+            "time": "2023-04-19T19:15:47+00:00"
         },
         {
             "name": "pear/pear_exception",
@@ -4909,34 +4904,42 @@
         },
         {
             "name": "symfony/var-dumper",
-            "version": "v3.4.47",
+            "version": "v4.4.47",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/var-dumper.git",
-                "reference": "0719f6cf4633a38b2c1585140998579ce23b4b7d"
+                "reference": "1069c7a3fca74578022fab6f81643248d02f8e63"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/var-dumper/zipball/0719f6cf4633a38b2c1585140998579ce23b4b7d",
-                "reference": "0719f6cf4633a38b2c1585140998579ce23b4b7d",
+                "url": "https://api.github.com/repos/symfony/var-dumper/zipball/1069c7a3fca74578022fab6f81643248d02f8e63",
+                "reference": "1069c7a3fca74578022fab6f81643248d02f8e63",
                 "shasum": ""
             },
             "require": {
-                "php": "^5.5.9|>=7.0.8",
-                "symfony/polyfill-mbstring": "~1.0"
+                "php": ">=7.1.3",
+                "symfony/polyfill-mbstring": "~1.0",
+                "symfony/polyfill-php72": "~1.5",
+                "symfony/polyfill-php80": "^1.16"
             },
             "conflict": {
-                "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0"
+                "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0",
+                "symfony/console": "<3.4"
             },
             "require-dev": {
                 "ext-iconv": "*",
-                "twig/twig": "~1.34|~2.4"
+                "symfony/console": "^3.4|^4.0|^5.0",
+                "symfony/process": "^4.4|^5.0",
+                "twig/twig": "^1.43|^2.13|^3.0.4"
             },
             "suggest": {
                 "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).",
                 "ext-intl": "To show region name in time zone dump",
-                "ext-symfony_debug": ""
+                "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script"
             },
+            "bin": [
+                "Resources/bin/var-dump-server"
+            ],
             "type": "library",
             "autoload": {
                 "files": [
@@ -4963,14 +4966,14 @@
                     "homepage": "https://symfony.com/contributors"
                 }
             ],
-            "description": "Symfony mechanism for exploring and dumping PHP variables",
+            "description": "Provides mechanisms for walking through any arbitrary PHP variable",
             "homepage": "https://symfony.com",
             "keywords": [
                 "debug",
                 "dump"
             ],
             "support": {
-                "source": "https://github.com/symfony/var-dumper/tree/v3.4.47"
+                "source": "https://github.com/symfony/var-dumper/tree/v4.4.47"
             },
             "funding": [
                 {
@@ -4986,7 +4989,7 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2020-10-24T10:57:07+00:00"
+            "time": "2022-10-03T15:15:11+00:00"
         },
         {
             "name": "tecnickcom/tcpdf",
@@ -5584,5 +5587,5 @@
     "platform-overrides": {
         "php": "7.3.0"
     },
-    "plugin-api-version": "2.2.0"
+    "plugin-api-version": "2.3.0"
 }
diff --git a/civicrm/ext/afform/admin/info.xml b/civicrm/ext/afform/admin/info.xml
index 857440b23c4a2424635de3c96d29b054cf067e39..cbe28d45090a6d2f9aca4e943ef7c4742fdf4af9 100644
--- a/civicrm/ext/afform/admin/info.xml
+++ b/civicrm/ext/afform/admin/info.xml
@@ -13,10 +13,10 @@
     <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url>
   </urls>
   <releaseDate>2020-01-09</releaseDate>
-  <version>5.60.0</version>
+  <version>5.61.0</version>
   <develStage>beta</develStage>
   <compatibility>
-    <ver>5.60</ver>
+    <ver>5.61</ver>
   </compatibility>
   <comments>FormBuilder provides a UI to administer and edit forms. It is an optional admin tool and not required for the forms to function.</comments>
   <requires>
diff --git a/civicrm/ext/afform/core/Civi/Api4/Action/Afform/AbstractProcessor.php b/civicrm/ext/afform/core/Civi/Api4/Action/Afform/AbstractProcessor.php
index 707c160afe0b5373a5604fad8bd2bf5de3c2c48a..53517020767898616cf2a1427ae3fb97b8744dfa 100644
--- a/civicrm/ext/afform/core/Civi/Api4/Action/Afform/AbstractProcessor.php
+++ b/civicrm/ext/afform/core/Civi/Api4/Action/Afform/AbstractProcessor.php
@@ -118,10 +118,9 @@ abstract class AbstractProcessor extends \Civi\Api4\Generic\AbstractAction {
     if (!$ids) {
       return;
     }
-    $result = $api4($entity['type'], 'get', [
+    $result = $this->apiGet($api4, $entity['type'], $entity['fields'], [
       'where' => [['id', 'IN', $ids]],
-      'select' => array_keys($entity['fields']),
-    ])->indexBy($idField);
+    ]);
     foreach ($ids as $index => $id) {
       $this->_entityIds[$entity['name']][$index] = [
         $idField => isset($result[$id]) ? $id : NULL,
@@ -131,12 +130,11 @@ abstract class AbstractProcessor extends \Civi\Api4\Generic\AbstractAction {
         $data = ['fields' => $result[$id]];
         foreach ($entity['joins'] ?? [] as $joinEntity => $join) {
           $joinIdField = CoreUtil::getIdFieldName($joinEntity);
-          $data['joins'][$joinEntity] = (array) $api4($joinEntity, 'get', [
+          $data['joins'][$joinEntity] = array_values($this->apiGet($api4, $joinEntity, $join['fields'], [
             'where' => self::getJoinWhereClause($this->_formDataModel, $entity['name'], $joinEntity, $id),
             'limit' => !empty($join['af-repeat']) ? $join['max'] ?? 0 : 1,
-            'select' => array_unique(array_merge([$joinIdField], array_keys($join['fields']))),
             'orderBy' => self::getEntityField($joinEntity, 'is_primary') ? ['is_primary' => 'DESC'] : [],
-          ]);
+          ]));
           $this->_entityIds[$entity['name']][$index]['_joins'][$joinEntity] = \CRM_Utils_Array::filterColumns($data['joins'][$joinEntity], [$joinIdField]);
         }
         $this->_entityValues[$entity['name']][$index] = $data;
@@ -144,6 +142,43 @@ abstract class AbstractProcessor extends \Civi\Api4\Generic\AbstractAction {
     }
   }
 
+  /**
+   * Delegated by loadEntity to call API.get and fill in additioal info
+   *
+   * @param $api4
+   * @param $entityName
+   * @param $entityFields
+   * @param $params
+   * @return array
+   */
+  private function apiGet($api4, $entityName, $entityFields, $params) {
+    $idField = CoreUtil::getIdFieldName($entityName);
+    $params['select'] = array_unique(array_merge([$idField], array_keys($entityFields)));
+    $result = (array) $api4($entityName, 'get', $params)->indexBy($idField);
+    // Check for file fields
+    $fieldInfo = civicrm_api4($entityName, 'getFields', [
+      'checkPermissions' => FALSE,
+      'action' => 'create',
+      'select' => ['name', 'fk_entity'],
+      'where' => [['name', 'IN', array_keys($entityFields)]],
+    ])->indexBy('name');
+    // Fill additional info about file fields
+    foreach ($fieldInfo as $fieldName => $fieldDefn) {
+      if ($fieldDefn['fk_entity'] === 'File') {
+        foreach ($result as &$item) {
+          if (!empty($item[$fieldName])) {
+            // Fall back on APIv3 until we have an attachment API for v4.
+            $fileInfo = \CRM_Utils_Array::filterColumns(civicrm_api3('Attachment', 'get', [
+              'id' => $item[$fieldName],
+            ])['values'], ['name', 'icon']);
+            $item[$fieldName] = \CRM_Utils_Array::first($fileInfo);
+          }
+        }
+      }
+    }
+    return $result;
+  }
+
   /**
    * Validate that given id(s) are actually returned by the Autocomplete API
    *
diff --git a/civicrm/ext/afform/core/Civi/Api4/Action/Afform/Submit.php b/civicrm/ext/afform/core/Civi/Api4/Action/Afform/Submit.php
index 83bdf2d759cf35d24b4999721e869ce810316de7..44dc9a5d9daf45a26125fcb5ef76fd839928a058 100644
--- a/civicrm/ext/afform/core/Civi/Api4/Action/Afform/Submit.php
+++ b/civicrm/ext/afform/core/Civi/Api4/Action/Afform/Submit.php
@@ -202,6 +202,12 @@ class Submit extends AbstractProcessor {
       return NULL;
     }
     $fullDefn = FormDataModel::getField($apiEntity, $fieldName, 'create');
+
+    // we don't need to validate the file fields as it's handled separately
+    if ($fullDefn['input_type'] === 'File') {
+      return NULL;
+    }
+
     $isRequired = $attributes['defn']['required'] ?? $fullDefn['required'] ?? FALSE;
     if ($isRequired) {
       $label = $attributes['defn']['label'] ?? $fullDefn['label'];
@@ -338,52 +344,55 @@ class Submit extends AbstractProcessor {
     // Prevent processGenericEntity
     $event->stopPropagation();
     $api4 = $event->getSecureApi4();
-    $relationship = $event->records[0]['fields'] ?? [];
-    if (empty($relationship['contact_id_a']) || empty($relationship['contact_id_b']) || empty($relationship['relationship_type_id'])) {
-      return;
-    }
-    $relationshipType = RelationshipType::get(FALSE)
-      ->addWhere('id', '=', $relationship['relationship_type_id'])
-      ->execute()->single();
-    $isReciprocal = $relationshipType['label_a_b'] == $relationshipType['label_b_a'];
-    $isActive = !isset($relationship['is_active']) || !empty($relationship['is_active']);
-    // Each contact id could be multivalued (e.g. using `af-repeat`)
-    foreach ((array) $relationship['contact_id_a'] as $contact_id_a) {
-      foreach ((array) $relationship['contact_id_b'] as $contact_id_b) {
-        $params = $relationship;
-        $params['contact_id_a'] = $contact_id_a;
-        $params['contact_id_b'] = $contact_id_b;
-        // Check for existing relationships (if allowed)
-        if (!empty($event->getEntity()['actions']['update'])) {
-          $where = [
-            ['is_active', '=', $isActive],
-            ['relationship_type_id', '=', $relationship['relationship_type_id']],
-          ];
-          // Reciprocal relationship types need an extra check
-          if ($isReciprocal) {
-            $where[] = [
-              'OR', [
-                ['AND', [['contact_id_a', '=', $contact_id_a], ['contact_id_b', '=', $contact_id_b]]],
-                ['AND', [['contact_id_a', '=', $contact_id_b], ['contact_id_b', '=', $contact_id_a]]],
-              ],
+    // Iterate through multiple relationships (if using af-repeat)
+    foreach ($event->records as $relationship) {
+      $relationship = $relationship['fields'] ?? [];
+      if (empty($relationship['contact_id_a']) || empty($relationship['contact_id_b']) || empty($relationship['relationship_type_id'])) {
+        return;
+      }
+      $relationshipType = RelationshipType::get(FALSE)
+        ->addWhere('id', '=', $relationship['relationship_type_id'])
+        ->execute()->single();
+      $isReciprocal = $relationshipType['label_a_b'] == $relationshipType['label_b_a'];
+      $isActive = !isset($relationship['is_active']) || !empty($relationship['is_active']);
+      // Each contact id could be multivalued (e.g. using `af-repeat`)
+      foreach ((array) $relationship['contact_id_a'] as $contact_id_a) {
+        foreach ((array) $relationship['contact_id_b'] as $contact_id_b) {
+          $params = $relationship;
+          $params['contact_id_a'] = $contact_id_a;
+          $params['contact_id_b'] = $contact_id_b;
+          // Check for existing relationships (if allowed)
+          if (!empty($event->getEntity()['actions']['update'])) {
+            $where = [
+              ['is_active', '=', $isActive],
+              ['relationship_type_id', '=', $relationship['relationship_type_id']],
             ];
+            // Reciprocal relationship types need an extra check
+            if ($isReciprocal) {
+              $where[] = [
+                'OR', [
+                  ['AND', [['contact_id_a', '=', $contact_id_a], ['contact_id_b', '=', $contact_id_b]]],
+                  ['AND', [['contact_id_a', '=', $contact_id_b], ['contact_id_b', '=', $contact_id_a]]],
+                ],
+              ];
+            }
+            else {
+              $where[] = ['contact_id_a', '=', $contact_id_a];
+              $where[] = ['contact_id_b', '=', $contact_id_b];
+            }
+            $existing = $api4('Relationship', 'get', ['where' => $where])->first();
+            if ($existing) {
+              $params['id'] = $existing['id'];
+              unset($params['contact_id_a'], $params['contact_id_b']);
+              // If this is a flipped reciprocal relationship, also flip the permissions
+              $params['is_permission_a_b'] = $relationship['is_permission_b_a'] ?? NULL;
+              $params['is_permission_b_a'] = $relationship['is_permission_a_b'] ?? NULL;
+            }
           }
-          else {
-            $where[] = ['contact_id_a', '=', $contact_id_a];
-            $where[] = ['contact_id_b', '=', $contact_id_b];
-          }
-          $existing = $api4('Relationship', 'get', ['where' => $where])->first();
-          if ($existing) {
-            $params['id'] = $existing['id'];
-            unset($params['contact_id_a'], $params['contact_id_b']);
-            // If this is a flipped reciprocal relationship, also flip the permissions
-            $params['is_permission_a_b'] = $relationship['is_permission_b_a'] ?? NULL;
-            $params['is_permission_b_a'] = $relationship['is_permission_a_b'] ?? NULL;
-          }
+          $api4('Relationship', 'save', [
+            'records' => [$params],
+          ]);
         }
-        $api4('Relationship', 'save', [
-          'records' => [$params],
-        ]);
       }
     }
   }
diff --git a/civicrm/ext/afform/core/ang/af/afField.component.js b/civicrm/ext/afform/core/ang/af/afField.component.js
index 8b5468d8934fd47b354978df006f7ba7bcaca0c5..66c49816a6c9084271640a1f0893420683e6401f 100644
--- a/civicrm/ext/afform/core/ang/af/afField.component.js
+++ b/civicrm/ext/afform/core/ang/af/afField.component.js
@@ -109,7 +109,7 @@
           }
           // Set default value from url with fieldName only
           else if (urlArgs && urlArgs[ctrl.fieldName]) {
-            $scope.dataProvider.getFieldData()[ctrl.fieldName] = urlArgs[ctrl.fieldName];
+            setValue(urlArgs[ctrl.fieldName]);
           }
           // Set default value based on field defn
           else if (ctrl.defn.afform_default) {
@@ -160,6 +160,11 @@
             '<=': ('' + value).split('-')[1] || '',
           };
         }
+        else if (!_.isArray(value) &&
+          ((['Select', 'EntityRef'].includes(ctrl.defn.input_type) && ctrl.defn.input_attrs.multiple) || ctrl.defn.input_type === 'CheckBox')
+        ) {
+          value =  value.split(',');
+        }
         $scope.dataProvider.getFieldData()[ctrl.fieldName] = value;
       }
 
diff --git a/civicrm/ext/afform/core/ang/af/afForm.component.js b/civicrm/ext/afform/core/ang/af/afForm.component.js
index e13ea5dae67f854ce02c27d84d693edb78523952..9951e5ddbdc8706c7bbe9158a63d42242dba6921 100644
--- a/civicrm/ext/afform/core/ang/af/afForm.component.js
+++ b/civicrm/ext/afform/core/ang/af/afForm.component.js
@@ -137,8 +137,19 @@
         return str;
       }
 
+      function validateFileFields() {
+        var valid = true;
+        $("af-form[ng-form=" + ctrl.getFormMeta().name +"] input[type='file']").each((index, fld) => {
+          if ($(fld).attr('required') && $(fld).get(0).files.length == 0) {
+            valid = false;
+          }
+        });
+        return valid;
+      }
+
       this.submit = function() {
-        if (!ctrl.ngForm.$valid) {
+        // validate required fields on the form
+        if (!ctrl.ngForm.$valid || !validateFileFields()) {
           CRM.alert(ts('Please fill all required fields.'), ts('Form Error'));
           return;
         }
diff --git a/civicrm/ext/afform/core/ang/af/fields/File.html b/civicrm/ext/afform/core/ang/af/fields/File.html
index c02d56d8bb1e6520cc57dfc2f4569f9bbffa3ce1..4a4e4cc5d1c6de7d76f6dedfa2a2295ab81185aa 100644
--- a/civicrm/ext/afform/core/ang/af/fields/File.html
+++ b/civicrm/ext/afform/core/ang/af/fields/File.html
@@ -1,4 +1,12 @@
+<span ng-if="dataProvider.getFieldData()[$ctrl.fieldName].name">
+  <i class="crm-i {{ dataProvider.getFieldData()[$ctrl.fieldName].icon }}"></i>
+  {{ dataProvider.getFieldData()[$ctrl.fieldName].name }}
+  <a class="crm-hover-button" title="{{:: ts('Replace') }}" ng-click="dataProvider.getFieldData()[$ctrl.fieldName].name = null">
+    <i class="crm-i fa-times" aria-hidden="true"></i>
+  </a>
+</span>
 <input type="file" nv-file-select
+       ng-if="!dataProvider.getFieldData()[$ctrl.fieldName].name"
        ng-required="$ctrl.defn.required"
        uploader="$ctrl.afFieldset.afFormCtrl.fileUploader"
        options="{crmApiParams: $ctrl.getFileUploadParams}">
diff --git a/civicrm/ext/afform/core/info.xml b/civicrm/ext/afform/core/info.xml
index 38324b441202c12b782fbf75ed1d23ea747324c2..f30e0540a6e208846c920d4abd52a8a2fe765c1a 100644
--- a/civicrm/ext/afform/core/info.xml
+++ b/civicrm/ext/afform/core/info.xml
@@ -13,10 +13,10 @@
     <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url>
   </urls>
   <releaseDate>2020-01-09</releaseDate>
-  <version>5.60.0</version>
+  <version>5.61.0</version>
   <develStage>beta</develStage>
   <compatibility>
-    <ver>5.60</ver>
+    <ver>5.61</ver>
   </compatibility>
   <comments>The Form Core extension is required to use any dynamic form. To administer and edit forms, also install the FormBuilder extension.</comments>
   <civix>
diff --git a/civicrm/ext/afform/html/info.xml b/civicrm/ext/afform/html/info.xml
index a5e601ca1689f42fe6470dbe0bf7b6ce9a263a16..36b5cb20a9dcd7e506103a24740af23cd34e37ee 100644
--- a/civicrm/ext/afform/html/info.xml
+++ b/civicrm/ext/afform/html/info.xml
@@ -13,10 +13,10 @@
     <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url>
   </urls>
   <releaseDate>2020-01-09</releaseDate>
-  <version>5.60.0</version>
+  <version>5.61.0</version>
   <develStage>alpha</develStage>
   <compatibility>
-    <ver>5.60</ver>
+    <ver>5.61</ver>
   </compatibility>
   <requires>
     <ext>org.civicrm.afform</ext>
diff --git a/civicrm/ext/afform/mock/info.xml b/civicrm/ext/afform/mock/info.xml
index c359d8004c1c6251d26bbd165f2df2c1131eccf7..ef87c8a0c24e9d8ce70c4f3953182c9cad4053c9 100644
--- a/civicrm/ext/afform/mock/info.xml
+++ b/civicrm/ext/afform/mock/info.xml
@@ -12,13 +12,13 @@
     <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url>
   </urls>
   <releaseDate>2020-01-09</releaseDate>
-  <version>5.60.0</version>
+  <version>5.61.0</version>
   <tags>
     <tag>mgmt:hidden</tag>
   </tags>
   <develStage>alpha</develStage>
   <compatibility>
-    <ver>5.60</ver>
+    <ver>5.61</ver>
   </compatibility>
   <requires>
     <ext>org.civicrm.afform</ext>
diff --git a/civicrm/ext/afform/mock/tests/phpunit/api/v4/AfformRelationshipUsageTest.php b/civicrm/ext/afform/mock/tests/phpunit/api/v4/AfformRelationshipUsageTest.php
index a31a7b66cf31bc298d34857242ecfbac16745cb0..bb12c0e8570580eff5d3c2e00d5c45782736c042 100644
--- a/civicrm/ext/afform/mock/tests/phpunit/api/v4/AfformRelationshipUsageTest.php
+++ b/civicrm/ext/afform/mock/tests/phpunit/api/v4/AfformRelationshipUsageTest.php
@@ -12,7 +12,7 @@ class api_v4_AfformRelationshipUsageTest extends api_v4_AfformUsageTestCase {
   /**
    * Tests creating a relationship between multiple contacts
    */
-  public function testCreateContactsWithRelationships(): void {
+  public function testCreateContactsWithPresetRelationships(): void {
     $layout = <<<EOHTML
 <af-form ctrl="afform">
   <af-entity data="{contact_type: 'Individual', source: 'Test Rel'}" type="Contact" name="Individual1" label="Individual 1" actions="{create: true, update: true}" security="RBAC" />
@@ -53,13 +53,90 @@ EOHTML;
 
     $saved = Relationship::get(FALSE)
       ->addWhere('contact_id_b.last_name', '=', $lastName)
-      ->addSelect('contact_id_a.first_name', 'is_active')
+      ->addSelect('contact_id_a.first_name', 'is_active', 'relationship_type_id')
       ->addOrderBy('contact_id_a.first_name')
       ->execute();
 
     $this->assertCount(2, $saved);
     $this->assertEquals('Firsty2', $saved[0]['contact_id_a.first_name']);
     $this->assertEquals('Firsty3', $saved[1]['contact_id_a.first_name']);
+    $this->assertEquals(1, $saved[0]['relationship_type_id']);
+    $this->assertEquals(1, $saved[1]['relationship_type_id']);
+  }
+
+  /**
+   * Tests creating multiple relationships using af-repeat
+   */
+  public function testCreateContactsWithMultipleRelationships(): void {
+    $layout = <<<EOHTML
+<af-form ctrl="afform">
+  <af-entity data="{contact_type: 'Individual', source: 'Test Rel'}" type="Contact" name="Individual1" label="Individual 1" actions="{create: true, update: true}" security="RBAC" />
+  <af-entity security="FBAC" type="Relationship" name="Relationship1" label="Relationship 1" actions="{create: true, update: true}" data="{contact_id_b: ['Individual1'], contact_id_a: ['Org1']}" />
+  <af-entity data="{contact_type: 'Organization', source: 'Test Rel'}" type="Contact" name="Org1" label="Org" actions="{create: true, update: true}" security="RBAC" />
+  <fieldset af-fieldset="Individual1" class="af-container" af-title="Individual 1">
+    <afblock-name-individual></afblock-name-individual>
+  </fieldset>
+  <fieldset af-fieldset="Relationship1" class="af-container" af-repeat="Add" min="1">
+    <af-field name="relationship_type_id"></af-field>
+  </fieldset>
+  <fieldset af-fieldset="Org1" class="af-container" af-title="Org 1">
+    <afblock-name-organization></afblock-name-organization>
+  </fieldset>
+  <button class="af-button btn btn-primary" crm-icon="fa-check" ng-click="afform.submit()">Submit</button>
+</af-form>
+EOHTML;
+
+    $this->useValues([
+      'layout' => $layout,
+      'permission' => CRM_Core_Permission::ALWAYS_ALLOW_PERMISSION,
+    ]);
+
+    $types = [
+      uniqid(__FUNCTION__),
+      uniqid(__FUNCTION__),
+    ];
+    $typeIds = [];
+
+    foreach ($types as $type) {
+      $typeIds[] = \Civi\Api4\RelationshipType::create(FALSE)
+        ->addValue('contact_type_a', 'Organization')
+        ->addValue('contact_type_b', 'Individual')
+        ->addValue('name_a_b', $type)
+        ->addValue('name_b_a', "$type of")
+        ->execute()->first()['id'];
+    }
+
+    $lastName = uniqid(__FUNCTION__);
+
+    $submission = [
+      'Individual1' => [
+        ['fields' => ['first_name' => 'Firsty', 'last_name' => $lastName]],
+      ],
+      'Org1' => [
+        ['fields' => ['organization_name' => "Hello $lastName"]],
+      ],
+      'Relationship1' => [
+        ['fields' => ['relationship_type_id' => $typeIds[0]]],
+        ['fields' => ['relationship_type_id' => $typeIds[1]]],
+      ],
+    ];
+
+    Civi\Api4\Afform::submit()
+      ->setName($this->formName)
+      ->setValues($submission)
+      ->execute();
+
+    $saved = Relationship::get(FALSE)
+      ->addWhere('contact_id_b.last_name', '=', $lastName)
+      ->addSelect('contact_id_a.organization_name', 'is_active', 'relationship_type_id')
+      ->addOrderBy('relationship_type_id')
+      ->execute();
+
+    $this->assertEquals("Hello $lastName", $saved[0]['contact_id_a.organization_name']);
+    $this->assertEquals($typeIds[0], $saved[0]['relationship_type_id']);
+    $this->assertEquals("Hello $lastName", $saved[1]['contact_id_a.organization_name']);
+    $this->assertEquals($typeIds[1], $saved[1]['relationship_type_id']);
+    $this->assertCount(2, $saved);
   }
 
   public function testPrefillContactsByRelationship(): void {
diff --git a/civicrm/ext/authx/Civi/Authx/Authenticator.php b/civicrm/ext/authx/Civi/Authx/Authenticator.php
index b9c7d8a3b3ef11805f811f4f706f073e6af0dd9f..d38bc985dd553e146c3a9cf58daa79a1096bda72 100644
--- a/civicrm/ext/authx/Civi/Authx/Authenticator.php
+++ b/civicrm/ext/authx/Civi/Authx/Authenticator.php
@@ -14,7 +14,6 @@ namespace Civi\Authx;
 use Civi\Core\Event\GenericHookEvent;
 use Civi\Core\HookInterface;
 use Civi\Core\Service\AutoService;
-use Civi\Crypto\Exception\CryptoException;
 use GuzzleHttp\Psr7\Response;
 
 /**
@@ -154,44 +153,18 @@ class Authenticator extends AutoService implements HookInterface {
    * @see \Civi\Authx\AuthenticatorTarget::setPrincipal()
    */
   protected function checkCredential($tgt) {
-    [$credFmt, $credValue] = explode(' ', $tgt->cred, 2);
-
-    switch ($credFmt) {
-      case 'Basic':
-        [$user, $pass] = explode(':', base64_decode($credValue), 2);
-        if ($userId = $this->authxUf->checkPassword($user, $pass)) {
-          return ['userId' => $userId, 'credType' => 'pass'];
-        }
-        break;
-
-      case 'Bearer':
-        $c = \CRM_Core_DAO::singleValueQuery('SELECT id FROM civicrm_contact WHERE api_key = %1', [
-          1 => [$credValue, 'String'],
-        ]);
-        if ($c) {
-          return ['contactId' => $c, 'credType' => 'api_key'];
-        }
-
-        try {
-          $claims = \Civi::service('crypto.jwt')->decode($credValue);
-          $scopes = isset($claims['scope']) ? explode(' ', $claims['scope']) : [];
-          if (!in_array('authx', $scopes)) {
-            $this->reject('JWT does not permit general authentication');
-          }
-          if (empty($claims['sub']) || substr($claims['sub'], 0, 4) !== 'cid:') {
-            $this->reject('JWT does not specify the contact ID (sub)');
-          }
-          $contactId = substr($claims['sub'], 4);
-          return ['contactId' => $contactId, 'credType' => 'jwt', 'jwt' => $claims];
-        }
-        catch (CryptoException $e) {
-          // Invalid JWT. Proceed to check any other token sources.
-        }
-
-        break;
+    // In order of priority, each subscriber will either:
+    // 1. Accept the cred, which stops event propagation and further checks;
+    // 2. Reject the cred, which stops event propagation and further checks;
+    // 3. Neither accept nor reject, letting the event continue on to the next.
+    $checkEvent = new CheckCredentialEvent($tgt->cred);
+    \Civi::dispatcher()->dispatch('civi.authx.checkCredential', $checkEvent);
+
+    if ($checkEvent->getRejection()) {
+      $this->reject($checkEvent->getRejection());
     }
 
-    return NULL;
+    return $checkEvent->getPrincipal();
   }
 
   /**
diff --git a/civicrm/ext/authx/Civi/Authx/CheckCredential.php b/civicrm/ext/authx/Civi/Authx/CheckCredential.php
new file mode 100644
index 0000000000000000000000000000000000000000..7d2ded378eb43bf894afd9a25f96c9b6321638eb
--- /dev/null
+++ b/civicrm/ext/authx/Civi/Authx/CheckCredential.php
@@ -0,0 +1,121 @@
+<?php
+/*
+ +--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC. All rights reserved.                        |
+ |                                                                    |
+ | This work is published under the GNU AGPLv3 license with some      |
+ | permitted exceptions and without any warranty. For full license    |
+ | and copyright information, see https://civicrm.org/licensing       |
+ +--------------------------------------------------------------------+
+ */
+
+namespace Civi\Authx;
+
+use Civi\Core\Service\AutoService;
+use Civi\Crypto\Exception\CryptoException;
+use Symfony\Component\EventDispatcher\EventSubscriberInterface;
+
+/**
+ * This class is a small collection of common/default credential checkers.
+ *
+ * @service authx.credentials
+ */
+class CheckCredential extends AutoService implements EventSubscriberInterface {
+
+  /**
+   * Listener priority for handling credential format of 'Basic' with
+   * 'username:password'.
+   */
+  const PRIORITY_BASIC_USER = -200;
+
+  /**
+   * Listener priority for handling credential format of 'Bearer' with a
+   * traditional Civi API key
+   */
+  const PRIORITY_BEARER_API_KEY = -300;
+
+  /**
+   * Listener priority for handling credential format of 'Bearer' with
+   * Authx-style JSON Web Token.
+   */
+  const PRIORITY_BEARER_JWT = -400;
+
+  /**
+   * @inheritdoc
+   *
+   * Set up three subscribers to handle different credential formats ('Basic',
+   * 'Bearer') and different credential types ('pass', 'api_key', 'jwt')
+   */
+  public static function getSubscribedEvents(): array {
+    $events = [];
+    $events['civi.authx.checkCredential'][] = ['basicUser', self::PRIORITY_BASIC_USER];
+    $events['civi.authx.checkCredential'][] = ['bearerApiKey', self::PRIORITY_BEARER_API_KEY];
+    $events['civi.authx.checkCredential'][] = ['bearerJwt', self::PRIORITY_BEARER_JWT];
+    return $events;
+  }
+
+  /**
+   * Interpret the HTTP "Basic" credential as `username:password` (CMS user).
+   *
+   * @param \Civi\Authx\CheckCredentialEvent $check
+   */
+  public function basicUser(CheckCredentialEvent $check): void {
+    if ($check->credFormat === 'Basic') {
+      [$user, $pass] = explode(':', base64_decode($check->credValue), 2);
+      if ($userId = _authx_uf()->checkPassword($user, $pass)) {
+        $check->accept(['userId' => $userId, 'credType' => 'pass']);
+      }
+    }
+  }
+
+  /**
+   * Interpret the HTTP `Bearer` credential as a traditional Civi API key
+   * (`civicrm_contact.api_key`).
+   *
+   * @param \Civi\Authx\CheckCredentialEvent $check
+   */
+  public function bearerApiKey(CheckCredentialEvent $check): void {
+    if ($check->credFormat === 'Bearer') {
+      $c = \CRM_Core_DAO::singleValueQuery('SELECT id FROM civicrm_contact WHERE api_key = %1', [
+        1 => [$check->credValue, 'String'],
+      ]);
+      if ($c) {
+        $check->accept(['contactId' => $c, 'credType' => 'api_key']);
+      }
+    }
+  }
+
+  /**
+   * Interpret the HTTP `Bearer` credential as an Authx-style JSON Web Token.
+   *
+   * @param \Civi\Authx\CheckCredentialEvent $check
+   */
+  public function bearerJwt(CheckCredentialEvent $check): void {
+    if ($check->credFormat === 'Bearer') {
+      try {
+        $claims = \Civi::service('crypto.jwt')->decode($check->credValue);
+        $scopes = isset($claims['scope']) ? explode(' ', $claims['scope']) : [];
+        if (!in_array('authx', $scopes)) {
+          // This is not an authx JWT. Proceed to check any other token sources.
+          return;
+        }
+        if (empty($claims['sub']) || substr($claims['sub'], 0, 4) !== 'cid:') {
+          $check->reject('Malformed JWT. Must specify the contact ID.');
+        }
+        else {
+          $contactId = substr($claims['sub'], 4);
+          $check->accept(['contactId' => $contactId, 'credType' => 'jwt', 'jwt' => $claims]);
+        }
+      }
+      catch (CryptoException $e) {
+        // TODO: Is responding that its expired a security risk?
+        if (strpos($e->getMessage(), 'Expired token') !== FALSE) {
+          $check->reject('Expired token');
+        }
+
+        // Not a valid AuthX JWT. Proceed to check any other token sources.
+      }
+    }
+  }
+
+}
diff --git a/civicrm/ext/authx/Civi/Authx/CheckCredentialEvent.php b/civicrm/ext/authx/Civi/Authx/CheckCredentialEvent.php
new file mode 100644
index 0000000000000000000000000000000000000000..87379f7e816e2bb187fb1e8953df6ecdc65fb184
--- /dev/null
+++ b/civicrm/ext/authx/Civi/Authx/CheckCredentialEvent.php
@@ -0,0 +1,126 @@
+<?php
+/*
+ +--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC. All rights reserved.                        |
+ |                                                                    |
+ | This work is published under the GNU AGPLv3 license with some      |
+ | permitted exceptions and without any warranty. For full license    |
+ | and copyright information, see https://civicrm.org/licensing       |
+ +--------------------------------------------------------------------+
+ */
+
+namespace Civi\Authx;
+
+/**
+ * CheckCredentialEvent examines a credential and (if it validly represents a
+ * user-principal) then it reports the principal.
+ */
+class CheckCredentialEvent extends \Civi\Core\Event\GenericHookEvent {
+
+  /**
+   * Ex: 'Basic' or 'Bearer'
+   *
+   * @var string
+   * @readonly
+   */
+  public $credFormat;
+
+  /**
+   * @var string
+   * @readonly
+   */
+  public $credValue;
+
+  /**
+   * Authenticated principal.
+   *
+   * @var array|null
+   */
+  protected $principal = NULL;
+
+  /**
+   * Rejection message - If you know that this credential is intended for your listener,
+   * and if it has some problem, then you can
+   *
+   * @var string|null
+   */
+  protected $rejection = NULL;
+
+  /**
+   * @param string $cred
+   *   Ex: 'Basic ABCD1234' or 'Bearer ABCD1234'
+   */
+  public function __construct(string $cred) {
+    [$this->credFormat, $this->credValue] = explode(' ', $cred, 2);
+  }
+
+  /**
+   * Emphatically reject the credential.
+   *
+   * If you know that the credential is targeted at your provider, and if there
+   * is an error in it, then you may set a rejection message. This will can
+   * provide more detailed debug information. However, it will preclude other
+   * listeners from accepting the credential.
+   *
+   * @param string $message
+   */
+  public function reject(string $message): void {
+    $this->rejection = $message;
+  }
+
+  /**
+   * Accept the sub claim, matching the credentials to a specific user by
+   * civicrm contact id ('contactId'), CRM user id ('userId') or CRM username
+   * ('user'). This will cause authx to log in that user for the purposes of the
+   * current request.
+   *
+   * The $principal must a mix of  of 'user', 'userId', 'contactId' and
+   * 'credType':
+   *
+   * - 'credType': (string) type of credential used to identify the principal.
+   *   ('pass', 'api_key', 'jwt')
+   *
+   * - 'contactId': (Authenticated) CiviCRM contact ID. If not specified, will
+   *   be obtained from 'userId'.
+   *
+   * - 'userId': (Authenticated) UF user ID. If not specified, will be obtained
+   *   from 'user' or 'contactId'.
+   *
+   * - 'user': (string). The username of the CMS user. Can be used instead of
+   *   'userId'.
+   *
+   * - 'jwt': (Authenticated, Decoded) JWT claims (if applicable)
+   *
+   * Note: Event propogation will stop after this, so subscribers with lower
+   * priorities will not be able to reject it.
+   *
+   * @param   array $principal Must include credType and (contactId or (userId
+   * xor user))
+   *
+   */
+  public function accept(array $principal): void {
+    if (empty($principal['credType'])) {
+      throw new AuthxException("Principal must specify credType");
+    }
+
+    if (empty($principal['contactId']) && empty($principal['userId']) && empty($principal['user'])) {
+      throw new AuthxException("Principal must specify at least one of contactId, userId or user");
+    }
+
+    if (!empty($principal['userId']) && !empty($principal['user'])) {
+      throw new AuthxException("Only userId or user can be specified in principal, not both");
+    }
+
+    $this->principal = $principal;
+    $this->stopPropagation();
+  }
+
+  public function getPrincipal(): ?array {
+    return $this->principal;
+  }
+
+  public function getRejection(): ?string {
+    return $this->rejection;
+  }
+
+}
diff --git a/civicrm/ext/authx/README.md b/civicrm/ext/authx/README.md
index d5404a88bfa50c059e18cd9974d1a30cb7a8c127..d355388080398c945067fdbdc6911188f1b5da6c 100644
--- a/civicrm/ext/authx/README.md
+++ b/civicrm/ext/authx/README.md
@@ -34,6 +34,8 @@ CiviCRM `Contact` records are often linked to CMS `User` records -- but not alwa
 * __Optional__:  If there is a correlated CMS `User`, then load it. If there isn't, leave the CMS user as anonymous.
 * __Require__: Only allow authentication if proceed if there is a correlated user account.
 
+Handling of these credentials, or new ones can be modified by custom extensions that subscribe to the `civi.authx.checkCredential` event. See [Extending credential handling](#extending-credential-handling).
+
 ## Configuration
 
 For each authentication flow, one may toggle support for different credentials and user-links. Here is the default configuration:
@@ -127,3 +129,83 @@ $ curl 'https://demouser:demopass@example.org/civicrm/authx/id'
 
 The "AuthX: Authenticate to services with password" CiviCRM permission must
 also be granted for the role associated to the user.
+
+## Extending credential handling
+
+To determine if a set of credentials is accepted or rejected, authx dispatches a
+`civi.authx.checkCredential` symfony event of class `Civi\Authx\CheckCredentialEvent`.
+
+Once the event has been processed by any subscribers, the event's state is examined to determine if
+it has been rejected. If not, the principal containing user identification is
+extracted and the request is processed as that user.
+
+Authx its has 3 built-in subscribers to this events to handle. One to handle Basic `pass`
+credentials, one for Bearer `jwt` credentials and one for Bearer `api_key` credentials. These have
+priorties of -200, -300 and -400 respectively. Each checks to see if the credentials are relevant to
+its processing capabilities and if so either calls `accept()` or `reject()`; irrelevant events are
+just ignored. Once the event has been accepted or rejected, it will no longer propogate to
+subscribers with a lower priority.
+
+This behaviour can be replicated in a separate extension subscribing to the
+`civi.authx.checkCredential` event in the same manner. If a higher priority is used, then it can
+also be used to override authx's built-in credential handling by always accepting or rejecting the
+event.
+
+### Example
+
+Say you wanted to handle JWT credentials in a different way, to handle tokens signed by an external
+external provider, rather than only tokens generated by your civicrm install. Assuming you have used
+[Civix](https://docs.civicrm.org/dev/en/latest/extensions/civix/) to generate the boilerplate for
+a new extension called "myextension", you would add the following hook to `myextension.php`:
+
+
+```php
+function myextension_civicrm_container(\Symfony\Component\DependencyInjection\ContainerBuilder $container) {
+  $container->register('myextension_credentials', '\Civi\MyExtension\MyCheckCredential')
+    ->addTag('kernel.event_subscriber')
+    ->setPublic(TRUE);
+}
+```
+
+Lets say the identifier for the user is stored in the `sub` claim of the JWT. Your
+`MyCheckCredential` could then be defined along the lines of:
+
+```php
+class MyCheckCredential implements Symfony\Component\EventDispatcher\EventSubscriberInterface {
+  const PRIORITY_BEARER_SPECIAL_JWT = 200;
+
+  public static function getSubscribedEvents(): array {
+    $events = [];
+    $events['civi.authx.checkCredential'][] = ['bearerSpecialJwt', self::PRIORITY_BEARER_SPECIAL_JWT];
+    return $events;
+  }
+
+  public function bearerSpecialJwt(Civi\Authx\CheckCredentialEvent $checkEvent): void {
+    if ($checkEvent->credFormat === 'Bearer') {
+      try {
+        $claims = \Civi::service('crypto.jwt')->decode($checkEvent->credValue);
+
+        // Perhaps we require the scope claim to contain something specific
+        $scopes = isset($claims['scope']) ? explode(' ', $claims['scope']) : [];
+        if (!in_array('somespecialthing', $scopes)) {
+          // Not our responsibility. Proceed to check any other token sources.
+          return;
+        }
+
+        // Maybe a table links external ids to user ids, or they are encoded in the sub somehow
+        $userId = someFunctionToGetCmsUserId($claims['sub'])
+
+        if ($userId) {
+          $checkEvent->accept(['userId' => $userId, 'credType' => 'jwt', 'jwt' => $claims]);
+          return;
+        } else {
+          // Alternatively, could return, so other token sources can be checked
+          $checkEvent->reject('User not found');
+        }
+      } catch (Civi\Crypto\Exception\CryptoException $e) {
+        // Not a valid JWT. Proceed to check any other token sources.
+      }
+    }
+  }
+}
+```
diff --git a/civicrm/ext/authx/info.xml b/civicrm/ext/authx/info.xml
index 8847d710dea68d30a0482e4d9e866b1bb5536568..329aa72dea06817d41b1dafd37640c09c18e6bd8 100644
--- a/civicrm/ext/authx/info.xml
+++ b/civicrm/ext/authx/info.xml
@@ -15,10 +15,10 @@
     <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url>
   </urls>
   <releaseDate>2021-02-11</releaseDate>
-  <version>5.60.0</version>
+  <version>5.61.0</version>
   <develStage>stable</develStage>
   <compatibility>
-    <ver>5.60</ver>
+    <ver>5.61</ver>
   </compatibility>
   <comments>AuthX enables remote applications to connect to CiviCRM. Use it to enable and disable different forms of authentication (such as username-password, API key, and/or JWT).</comments>
   <classloader>
diff --git a/civicrm/ext/authx/tests/phpunit/Civi/Authx/AllFlowsTest.php b/civicrm/ext/authx/tests/phpunit/Civi/Authx/AllFlowsTest.php
index e4972fe16f1d6e4f969956e1422313f8a5d76116..0afa38b43303d0801af8315a4eab16f54cf0794c 100644
--- a/civicrm/ext/authx/tests/phpunit/Civi/Authx/AllFlowsTest.php
+++ b/civicrm/ext/authx/tests/phpunit/Civi/Authx/AllFlowsTest.php
@@ -95,6 +95,14 @@ class AllFlowsTest extends \PHPUnit\Framework\TestCase implements EndToEndInterf
     return $exs;
   }
 
+  public function getFlowTypes() {
+    $exs = [];
+    $exs[] = ['param'];
+    $exs[] = ['header'];
+    $exs[] = ['xheader'];
+    return $exs;
+  }
+
   public function testAnonymous(): void {
     $http = $this->createGuzzle(['http_errors' => FALSE]);
 
@@ -170,6 +178,49 @@ class AllFlowsTest extends \PHPUnit\Framework\TestCase implements EndToEndInterf
     }
   }
 
+  /**
+   * Send a request using a jwt that can't be decoded at all. Assert that it fails
+   *
+   * @param string $flowType
+   *   The "flow" determines how the credential is added on top of the base-request (e.g. adding a parameter or header).
+   *
+   * @dataProvider getFlowTypes
+   */
+  public function testInvalidJwt($flowType): void {
+    $http = $this->createGuzzle(['http_errors' => FALSE]);
+
+    $cred = $this->credJwt('Bearer thisisnotavalidjwt');
+
+    $flowFunc = 'auth' . ucfirst(preg_replace(';[^a-zA-Z0-9];', '', $flowType));
+    /** @var \Psr\Http\Message\RequestInterface $request */
+    $request = $this->$flowFunc($this->requestMyContact(), $cred);
+
+    \Civi::settings()->set("authx_{$flowType}_cred", ['jwt']);
+    $response = $http->send($request);
+    $this->assertNotAuthenticated('prohibit', $response);
+  }
+
+  /**
+   * Send a request using a jwt that has expired. Assert that it fails
+   *
+   * @param string $flowType
+   *   The "flow" determines how the credential is added on top of the base-request (e.g. adding a parameter or header).
+   *
+   * @dataProvider getFlowTypes
+   */
+  public function testExpiredJwt($flowType): void {
+    $http = $this->createGuzzle(['http_errors' => FALSE]);
+
+    $cred = $this->credJwt($this->getDemoCID(), TRUE);
+    $flowFunc = 'auth' . ucfirst(preg_replace(';[^a-zA-Z0-9];', '', $flowType));
+    /** @var \Psr\Http\Message\RequestInterface $request */
+    $request = $this->$flowFunc($this->requestMyContact(), $cred);
+
+    \Civi::settings()->set("authx_{$flowType}_cred", ['jwt']);
+    $response = $http->send($request);
+    $this->assertNotAuthenticated('prohibit', $response);
+  }
+
   /**
    * The setting "authx_guard" may be used to require (or not require) the site_key.
    *
@@ -780,12 +831,12 @@ class AllFlowsTest extends \PHPUnit\Framework\TestCase implements EndToEndInterf
     return 'Bearer ' . $api_key;
   }
 
-  public function credJwt($cid) {
+  public function credJwt($cid, $expired = FALSE) {
     if (empty(\Civi::service('crypto.registry')->findKeysByTag('SIGN'))) {
       $this->markTestIncomplete('Cannot test JWT. No CIVICRM_SIGN_KEYS are defined.');
     }
     $token = \Civi::service('crypto.jwt')->encode([
-      'exp' => time() + 60 * 60,
+      'exp' => $expired ? time() - 60 * 60 : time() + 60 * 60,
       'sub' => "cid:$cid",
       'scope' => 'authx',
     ]);
diff --git a/civicrm/ext/civicrm_admin_ui/info.xml b/civicrm/ext/civicrm_admin_ui/info.xml
index 55f7fdc0b80f0ed8029d4d21daef6b95be15816a..7d8047cb88d45321e74659c289ba3a337e3051a8 100644
--- a/civicrm/ext/civicrm_admin_ui/info.xml
+++ b/civicrm/ext/civicrm_admin_ui/info.xml
@@ -15,10 +15,10 @@
     <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url>
   </urls>
   <releaseDate>2022-01-02</releaseDate>
-  <version>5.60.0</version>
+  <version>5.61.0</version>
   <develStage>alpha</develStage>
   <compatibility>
-    <ver>5.60</ver>
+    <ver>5.61</ver>
   </compatibility>
   <requires>
     <ext>org.civicrm.search_kit</ext>
diff --git a/civicrm/ext/civigrant/info.xml b/civicrm/ext/civigrant/info.xml
index 640df3e62ad3f1eea5a2316d4fe305714034b5a0..113435815d5a2d6df6d6b5d173b17e5bd539a8dd 100644
--- a/civicrm/ext/civigrant/info.xml
+++ b/civicrm/ext/civigrant/info.xml
@@ -13,10 +13,10 @@
     <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url>
   </urls>
   <releaseDate>2021-11-11</releaseDate>
-  <version>5.60.0</version>
+  <version>5.61.0</version>
   <develStage>stable</develStage>
   <compatibility>
-    <ver>5.60</ver>
+    <ver>5.61</ver>
   </compatibility>
   <comments>CiviGrant was originally a core component before migrating to an extension</comments>
   <requires>
diff --git a/civicrm/ext/civigrant/tests/phpunit/api/v3/GrantTest.php b/civicrm/ext/civigrant/tests/phpunit/api/v3/GrantTest.php
index c48c579770f77fe3c032372a473c43674ef2ab2e..3900b8cee0ed19d81fae6f8d33f32bd69e25dc2b 100644
--- a/civicrm/ext/civigrant/tests/phpunit/api/v3/GrantTest.php
+++ b/civicrm/ext/civigrant/tests/phpunit/api/v3/GrantTest.php
@@ -25,8 +25,6 @@ class api_v3_GrantTest extends \PHPUnit\Framework\TestCase implements \Civi\Test
   protected $ids = [];
   protected $_entity = 'Grant';
 
-  public $DBResetRequired = FALSE;
-
   public function setUpHeadless() {
     return \Civi\Test::headless()
       ->install(['org.civicrm.afform', 'org.civicrm.search_kit'])
diff --git a/civicrm/ext/civiimport/Civi/Api4/Event/Subscriber/ImportSubscriber.php b/civicrm/ext/civiimport/Civi/Api4/Event/Subscriber/ImportSubscriber.php
index 0eade33f0db9217dcdcef70e95fd19ae286c0cf2..b27d9d4470ff23e309c63576a23d010024daf7e5 100644
--- a/civicrm/ext/civiimport/Civi/Api4/Event/Subscriber/ImportSubscriber.php
+++ b/civicrm/ext/civiimport/Civi/Api4/Event/Subscriber/ImportSubscriber.php
@@ -11,11 +11,15 @@ use Civi;
 use Civi\API\Event\AuthorizeEvent;
 use Civi\API\Events;
 use Civi\Api4\Entity;
+use Civi\Api4\Event\SchemaMapBuildEvent;
 use Civi\Api4\Managed;
 use Civi\Api4\SearchDisplay;
+use Civi\Api4\Service\Schema\Joinable\Joinable;
 use Civi\Api4\UserJob;
+use Civi\Api4\Utils\CoreUtil;
 use Civi\Core\Event\PostEvent;
 use Civi\Core\Event\GenericHookEvent;
+use Civi\Core\Event\PreEvent;
 use Civi\Core\Service\AutoService;
 use CRM_Core_DAO_AllCoreTables;
 use Civi\Api4\Import;
@@ -38,9 +42,11 @@ class ImportSubscriber extends AutoService implements EventSubscriberInterface {
   public static function getSubscribedEvents(): array {
     return [
       'hook_civicrm_post' => 'on_hook_civicrm_post',
+      'hook_civicrm_pre' => 'on_hook_civicrm_pre',
       'civi.api4.entityTypes' => 'on_civi_api4_entityTypes',
       'civi.api.authorize' => [['onApiAuthorize', Events::W_EARLY]],
       'civi.afform.get' => 'on_civi_afform_get',
+      'api.schema_map.build' => 'on_schema_map_build',
     ];
   }
 
@@ -48,6 +54,8 @@ class ImportSubscriber extends AutoService implements EventSubscriberInterface {
    * Register each valid import as an entity
    *
    * @param \Civi\Core\Event\GenericHookEvent $event
+   *
+   * @noinspection PhpUnused
    */
   public static function on_civi_api4_entityTypes(GenericHookEvent $event): void {
     $importEntities = Civi\BAO\Import::getImportTables();
@@ -70,36 +78,95 @@ class ImportSubscriber extends AutoService implements EventSubscriberInterface {
     }
   }
 
+  /**
+   * Register FK join from import table to entity being imported
+   *
+   * @param \Civi\Api4\Event\SchemaMapBuildEvent $event
+   */
+  public static function on_schema_map_build(SchemaMapBuildEvent $event): void {
+    $schema = $event->getSchemaMap();
+    $importEntities = Civi\BAO\Import::getImportTables();
+    $jobTypes = array_column(\CRM_Core_BAO_UserJob::getTypes(), 'entity', 'id');
+    foreach ($importEntities as $importEntity) {
+      $fkEntity = $jobTypes[$importEntity['job_type']] ?? NULL;
+      $fkTable = $fkEntity ? CoreUtil::getTableName($fkEntity) : NULL;
+      if ($fkEntity && $fkTable) {
+        $table = $schema->getTableByName($importEntity['table_name']);
+        $link = new Civi\Api4\Service\Schema\Joinable\Joinable($fkTable, 'id', '_entity_id');
+        $link->setBaseTable($importEntity['table_name']);
+        $link->setJoinType(Joinable::JOIN_TYPE_ONE_TO_MANY);
+        $table->addTableLink('_entity_id', $link);
+      }
+    }
+  }
+
+  /**
+   * Callback for hook_civicrm_pre().
+   *
+   * @noinspection PhpUnused
+   */
+  public function on_hook_civicrm_pre(PreEvent $event): void {
+    if ($event->entity === 'UserJob' && $event->action === 'edit') {
+      if ($this->isTableChange($event)) {
+        $this->flushEntityMetadata();
+      }
+    }
+  }
+
+  /**
+   * Get the import table from event data.
+   *
+   * @param \Civi\Core\Event\GenericHookEvent $event
+   *
+   * @return string|null
+   */
+  private function getImportTableFromEvent(GenericHookEvent $event): ?string {
+    if (isset($event->object)) {
+      $metadata = json_decode((string) $event->object->metadata, TRUE);
+      if (!is_array($metadata)) {
+        return NULL;
+      }
+      return $metadata['DataSource']['table_name'] ?? NULL;
+    }
+    return $event->params['metadata']['DataSource']['table_name'] ?? NULL;
+  }
+
   /**
    * Callback for hook_civicrm_post().
    */
   public function on_hook_civicrm_post(PostEvent $event): void {
     if ($event->entity === 'UserJob') {
-      try {
-        $exists = Entity::get(FALSE)->addWhere('name', '=', 'Import_' . $event->id)->selectRowCount()->execute()->count();
-        if (!$exists || $event->action === 'delete') {
-          // Flush entities cache key so our new Import will load as an entity.
-          unset(Civi::$statics['civiimport_tables']);
-          Civi::cache('metadata')->delete('api4.entities.info');
-          Civi::cache('metadata')->delete('civiimport_tables');
-          CRM_Core_DAO_AllCoreTables::flush();
-          Managed::reconcile(FALSE)->setModules(['civiimport'])->execute();
-        }
-      }
-      catch (\CRM_Core_Exception $e) {
-        // Log & move on.
-        \Civi::log()->warning('Failed to flush cache on UserJob clear', ['exception' => $e]);
-        return;
+      if ($event->action === 'delete' || ($this->getImportTableFromEvent($event) && !$this->ImportEntityExists($event))) {
+        $this->flushEntityMetadata();
       }
     }
   }
 
+  /**
+   * Is the update changing the associated temp table.
+   *
+   * @param \Civi\Core\Event\GenericHookEvent $event
+   *
+   * @return bool
+   * @noinspection PhpDocMissingThrowsInspection
+   * @noinspection PhpUnhandledExceptionInspection
+   */
+  private function isTableChange(GenericHookEvent $event): bool {
+    $newTable = $this->getImportTableFromEvent($event);
+    $userJob = UserJob::get(FALSE)
+      ->addWhere('id', '=', $event->id)
+      ->addSelect('metadata')->execute()->first();
+    $savedTable = $userJob['metadata']['DataSource']['table_name'] ?? NULL;
+    return $newTable !== $savedTable;
+  }
+
   /**
    * @param \Civi\API\Event\AuthorizeEvent $event
    *   API authorization event.
    *
    * @throws \CRM_Core_Exception
    * @throws \Civi\API\Exception\UnauthorizedException
+   * @noinspection PhpUnused
    */
   public function onApiAuthorize(AuthorizeEvent $event): void {
     $apiRequest = $event->getApiRequest();
@@ -122,7 +189,7 @@ class ImportSubscriber extends AutoService implements EventSubscriberInterface {
    * @noinspection PhpUnused
    */
   public static function on_civi_afform_get(GenericHookEvent $event): void {
-    // We're only providing afforms of type 'search'
+    // We're only providing form builder forms of type 'search'
     if ($event->getTypes && !in_array('search', $event->getTypes, TRUE)) {
       return;
     }
@@ -177,4 +244,40 @@ class ImportSubscriber extends AutoService implements EventSubscriberInterface {
     return $forms;
   }
 
+  /**
+   * Flush entities cache key so our new Import will load as an entity.
+   */
+  protected function flushEntityMetadata(): void {
+    try {
+      unset(Civi::$statics['civiimport_tables']);
+      Civi::cache('metadata')->delete('api4.entities.info');
+      Civi::cache('metadata')->delete('api4.schema.map');
+      Civi::cache('metadata')->delete('civiimport_tables');
+      CRM_Core_DAO_AllCoreTables::flush();
+      Managed::reconcile(FALSE)->setModules(['civiimport'])->execute();
+    }
+    catch (\CRM_Core_Exception $e) {
+      // Log & move on.
+      \Civi::log()->warning('Failed to flush cache on UserJob clear', ['exception' => $e]);
+      return;
+    }
+  }
+
+  /**
+   * Does the pseudo-entity for the import exist yet.
+   *
+   * @param \Civi\Core\Event\PostEvent $event
+   *
+   * @return int
+   * @noinspection PhpDocMissingThrowsInspection
+   * @noinspection PhpUnhandledExceptionInspection
+   */
+  protected function ImportEntityExists(PostEvent $event): int {
+    return Entity::get(FALSE)
+      ->addWhere('name', '=', 'Import_' . $event->id)
+      ->selectRowCount()
+      ->execute()
+      ->count();
+  }
+
 }
diff --git a/civicrm/ext/civiimport/Civi/Api4/Import.php b/civicrm/ext/civiimport/Civi/Api4/Import.php
index e5ac05749a82efcd8152f47b6b8b18df89bb6cd3..e260cad411070616ec7747a2614228cf31cd234f 100644
--- a/civicrm/ext/civiimport/Civi/Api4/Import.php
+++ b/civicrm/ext/civiimport/Civi/Api4/Import.php
@@ -10,7 +10,7 @@
  */
 namespace Civi\Api4;
 
-use Civi\Api4\Generic\CheckAccessAction;
+use Civi\Api4\Import\CheckAccessAction;
 use Civi\Api4\Generic\DAOGetAction;
 use Civi\Api4\Generic\DAOGetFieldsAction;
 use Civi\Api4\Action\GetActions;
diff --git a/civicrm/ext/civiimport/Civi/Api4/Import/CheckAccessAction.php b/civicrm/ext/civiimport/Civi/Api4/Import/CheckAccessAction.php
new file mode 100644
index 0000000000000000000000000000000000000000..1373a47d7c2e93b536030a7b4429bd37e544e197
--- /dev/null
+++ b/civicrm/ext/civiimport/Civi/Api4/Import/CheckAccessAction.php
@@ -0,0 +1,54 @@
+<?php
+
+/*
+ +--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC. All rights reserved.                        |
+ |                                                                    |
+ | This work is published under the GNU AGPLv3 license with some      |
+ | permitted exceptions and without any warranty. For full license    |
+ | and copyright information, see https://civicrm.org/licensing       |
+ +--------------------------------------------------------------------+
+ */
+
+namespace Civi\Api4\Import;
+
+use Civi\Api4\Generic\Result;
+use Civi\Api4\Utils\CoreUtil;
+
+/**
+ * Check if current user is authorized to perform specified action on the given import.
+ *
+ * This is overridden to implement a permission on editing imported rows, mostly
+ * to make it less confusing as there is no meaning to importing edited rows.
+ */
+class CheckAccessAction extends \Civi\Api4\Generic\CheckAccessAction {
+
+  /**
+   * @param \Civi\Api4\Generic\Result $result
+   *
+   * @throws \CRM_Core_Exception
+   */
+  public function _run(Result $result): void {
+    // Prevent circular checks
+    $action = $this->action;
+    $entity = $this->getEntityName();
+    $userID = \CRM_Core_Session::getLoggedInContactID() ?: 0;
+    if ($action === 'checkAccess') {
+      $granted = TRUE;
+    }
+    elseif (isset(\Civi::$statics[__CLASS__ . $entity][$action][$userID])) {
+      $granted = \Civi::$statics[__CLASS__ . $entity][$action][$userID];
+    }
+    // If _status is not passed we could do a look up - but this permission is more of a
+    // UI thing than a true permission - ie the point is not to confuse the user
+    // with a meaningless option to edit-in-place in the search so it's kinda optional.
+    elseif (in_array($this->getValue('_status'), ['soft_credit_imported', 'pledge_payment_imported', 'IMPORTED'])) {
+      $granted = \Civi::$statics[__CLASS__ . $entity][$action][$userID] = FALSE;
+    }
+    else {
+      $granted = \Civi::$statics[__CLASS__ . $entity][$action][$userID] = CoreUtil::checkAccessDelegated($entity, $action, $this->values, $userID);
+    }
+    $result->exchangeArray([['access' => $granted]]);
+  }
+
+}
diff --git a/civicrm/ext/civiimport/Civi/Api4/Import/ImportSpecProvider.php b/civicrm/ext/civiimport/Civi/Api4/Import/ImportSpecProvider.php
index c423e509d706a155d01463d73edb9cbddbadedd5..60f4d939d5e642e645bdb8f4c72d795fe5f3b4e1 100644
--- a/civicrm/ext/civiimport/Civi/Api4/Import/ImportSpecProvider.php
+++ b/civicrm/ext/civiimport/Civi/Api4/Import/ImportSpecProvider.php
@@ -19,6 +19,7 @@ use Civi\Api4\UserJob;
 use Civi\BAO\Import;
 use Civi\Core\Service\AutoService;
 use CRM_Core_BAO_UserJob;
+use CRM_Civiimport_ExtensionUtil as E;
 
 /**
  * @service
@@ -43,7 +44,7 @@ class ImportSpecProvider extends AutoService implements SpecProviderInterface {
     // CheckPermissions does not reach us here - so we will have to rely on earlier permission filters.
     $userJobID = substr($spec->getEntity(), (strpos($spec->getEntity(), '_') + 1));
     $userJob = UserJob::get(FALSE)->addWhere('id', '=', $userJobID)->addSelect('metadata', 'job_type', 'created_id')->execute()->first();
-
+    $entity = CRM_Core_BAO_UserJob::getType($userJob['job_type'])['entity'];
     foreach ($columns as $column) {
       $isInternalField = strpos($column['name'], '_') === 0;
       $exists = $isInternalField && $spec->getFieldByName($column['name']);
@@ -54,6 +55,7 @@ class ImportSpecProvider extends AutoService implements SpecProviderInterface {
       $field->setTitle(ts('Import field') . ':' . $column['label']);
       $field->setLabel($column['label']);
       $field->setType('Field');
+      $field->setDataType($column['data_type']);
       $field->setReadonly($isInternalField);
       $field->setDescription(ts('Data being imported into the field.'));
       $field->setColumnName($column['name']);
@@ -63,6 +65,7 @@ class ImportSpecProvider extends AutoService implements SpecProviderInterface {
           if ($userJob['job_type'] === $jobType['id'] && $jobType['entity']) {
             $field->setFkEntity($jobType['entity']);
             $field->setInputType('EntityRef');
+            $field->setInputAttrs(['label' => $entity]);
           }
         }
       }
diff --git a/civicrm/ext/civiimport/Civi/BAO/Import.php b/civicrm/ext/civiimport/Civi/BAO/Import.php
index 2a7e807da7d515e0c56522df568ecea81590d06d..b7e956afc1a61caf488302925ef8cc9055086159 100644
--- a/civicrm/ext/civiimport/Civi/BAO/Import.php
+++ b/civicrm/ext/civiimport/Civi/BAO/Import.php
@@ -12,6 +12,7 @@
 namespace Civi\BAO;
 
 use Civi\Api4\UserJob;
+use Civi\Core\Exception\DBQueryException;
 use CRM_Civiimport_ExtensionUtil as E;
 use CRM_Core_BAO_CustomValueTable;
 use CRM_Core_DAO;
@@ -136,7 +137,7 @@ class Import extends CRM_Core_DAO {
   public function table(): array {
     $table = [];
     foreach (self::getFieldsForTable($this->tableName()) as $value) {
-      $table[$value['name']] = $value['type'] ?? CRM_Utils_Type::T_STRING;
+      $table[$value['name']] = ($value['data_type'] === 'Integer') ? CRM_Utils_Type::T_INT : CRM_Utils_Type::T_STRING;
       if (!empty($value['required'])) {
         $table[$value['name']] += self::DB_DAO_NOTNULL;
       }
@@ -195,28 +196,46 @@ class Import extends CRM_Core_DAO {
    * @throws \CRM_Core_Exception
    */
   public static function getFieldsForTable(string $tableName): array {
+    $cacheKey = 'civiimport_table_fields' . $tableName;
+    if (\Civi::cache('metadata')->has($cacheKey)) {
+      return \Civi::cache('metadata')->get($cacheKey);
+    }
     if (!CRM_Utils_Rule::alphanumeric($tableName)) {
       // This is purely precautionary so does not need to be a translated string.
       throw new CRM_Core_Exception('Invalid import table');
     }
     $columns = [];
-    $headers = UserJob::get(FALSE)
+    $userJob = UserJob::get(FALSE)
       ->addWhere('metadata', 'LIKE', '%' . $tableName . '%')
-      ->addSelect('metadata')->execute()->first()['metadata']['DataSource']['column_headers'] ?? [];
+      ->addSelect('metadata', 'job_type')->execute()->first();
+    $headers = $userJob['metadata']['DataSource']['column_headers'] ?? [];
+    $entity = \CRM_Core_BAO_UserJob::getType($userJob['job_type'])['entity'];
+
     try {
       $result = CRM_Core_DAO::executeQuery("SHOW COLUMNS FROM $tableName");
     }
-    catch (\PEAR_Exception $e) {
-      throw new CRM_Core_Exception('Import table no longer exists');
+    catch (DBQueryException $e) {
+      if ($e->getSQLErrorCode() === 1146) {
+        throw new CRM_Core_Exception('Import table no longer exists');
+      }
+      throw $e;
     }
+
     $userFieldIndex = 0;
     while ($result->fetch()) {
       $columns[$result->Field] = ['name' => $result->Field, 'table_name' => $tableName];
-      if (substr($result->Field, 1) !== '_') {
-        $columns[$result->Field]['label'] = $headers[$userFieldIndex] ?? $result->Field;
+      if (strpos($result->Field, '_') !== 0) {
+        $columns[$result->Field]['label'] = ts('Import field') . ':' . ($headers[$userFieldIndex] ?? $result->Field);
+        $columns[$result->Field]['data_type'] = 'String';
         $userFieldIndex++;
       }
+      else {
+        $columns[$result->Field]['label'] = ($result->Field === '_entity_id') ? E::ts('Row Imported to %1 ID', [1 => $entity]) : $result->Field;
+        $columns[$result->Field]['fk_entity'] = ($result->Field === '_entity_id') ? $entity : NULL;
+        $columns[$result->Field]['data_type'] = strpos($result->Type, 'int') === 0 ? 'Integer' : 'String';
+      }
     }
+    \Civi::cache('metadata')->set($cacheKey, $columns);
     return $columns;
   }
 
diff --git a/civicrm/ext/civiimport/Managed/ImportSearches.mgd.php b/civicrm/ext/civiimport/Managed/ImportSearches.mgd.php
index 2f80a3cd380fd767f5e52a67fa0d680901bcca40..845b2add890382eff6c488024430c445d46b4cea 100644
--- a/civicrm/ext/civiimport/Managed/ImportSearches.mgd.php
+++ b/civicrm/ext/civiimport/Managed/ImportSearches.mgd.php
@@ -7,11 +7,17 @@ $managedEntities = [];
 $importEntities = Import::getImportTables();
 foreach ($importEntities as $importEntity) {
   try {
-    $fields = array_merge(['_id' => TRUE, '_status' => TRUE, '_status_message' => TRUE], Import::getFieldsForUserJobID($importEntity['user_job_id'], FALSE));
+    $fields = array_merge(['_id' => TRUE, '_status' => TRUE, '_entity_id' => TRUE, '_status_message' => TRUE], Import::getFieldsForUserJobID($importEntity['user_job_id'], FALSE));
   }
   catch (CRM_Core_Exception $e) {
     continue;
   }
+  $fields['_entity_id']['link'] = [
+    'entity' => $fields['_entity_id']['fk_entity'],
+    'action' => 'view',
+    'target' => '_blank',
+    'join' => '_entity_id',
+  ];
   $createdBy = empty($importEntity['created_by']) ? '' : ' (' . E::ts('Created by %1', [$importEntity['created_by'], 'String']) . ')';
   $managedEntities[] = [
     'name' => 'SavedSearch_Import' . $importEntity['user_job_id'],
@@ -78,6 +84,7 @@ foreach ($importEntities as $importEntity) {
       'label' => $field['title'] ?? $field['label'],
       'sortable' => TRUE,
       'editable' => strpos($field['name'], '_') !== 0,
+      'link' => $field['link'] ?? NULL,
     ];
   }
   $managedEntities[] = [
diff --git a/civicrm/ext/civiimport/Managed/UserJobSearches.mgd.php b/civicrm/ext/civiimport/Managed/UserJobSearches.mgd.php
index 8a78511d269dab11bbf53dab4ddc332723573482..5acf8248f9b7d4de84c6c15763dc5e8018b4fa41 100644
--- a/civicrm/ext/civiimport/Managed/UserJobSearches.mgd.php
+++ b/civicrm/ext/civiimport/Managed/UserJobSearches.mgd.php
@@ -37,6 +37,11 @@ return [
               '=',
               FALSE,
             ],
+            [
+              'is_current',
+              '=',
+              TRUE,
+            ],
           ],
           'groupBy' => [],
           'join' => [],
@@ -47,4 +52,116 @@ return [
       ],
     ],
   ],
+  [
+    'name' => 'SavedSearch_Import_Templates',
+    'entity' => 'SavedSearch',
+    'cleanup' => 'always',
+    'update' => 'unmodified',
+    'params' => [
+      'version' => 4,
+      'values' => [
+        'name' => 'Import_Templates',
+        'label' => E::ts('Import Templates'),
+        'description' => E::ts('Available import templates'),
+        'form_values' => NULL,
+        'mapping_id' => NULL,
+        'search_custom_id' => NULL,
+        'api_entity' => 'UserJob',
+        'api_params' => [
+          'version' => 4,
+          'select' => [
+            'id',
+            'created_id.display_name',
+            'name',
+            'created_date',
+            'job_type:label',
+          ],
+          'orderBy' => [],
+          'where' => [
+            [
+              'is_template',
+              '=',
+              TRUE,
+            ],
+          ],
+          'groupBy' => [],
+          'join' => [],
+          'having' => [],
+        ],
+        'expires_date' => NULL,
+      ],
+    ],
+  ],
+  [
+    'name' => 'SavedSearch_Import_Templates_SearchDisplay_Import_Templates_Table_1',
+    'entity' => 'SearchDisplay',
+    'cleanup' => 'always',
+    'update' => 'unmodified',
+    'params' => [
+      'version' => 4,
+      'values' => [
+        'name' => 'Import_Templates',
+        'label' => E::ts('Import Templates'),
+        'saved_search_id.name' => 'Import_Templates',
+        'type' => 'table',
+        'settings' => [
+          'description' => E::ts('Available import templates'),
+          'sort' => [],
+          'limit' => 50,
+          'pager' => [],
+          'placeholder' => 5,
+          'columns' => [
+            [
+              'type' => 'field',
+              'key' => 'id',
+              'dataType' => 'Integer',
+              'label' => E::ts('ID'),
+              'sortable' => TRUE,
+            ],
+            [
+              'type' => 'field',
+              'key' => 'created_id.display_name',
+              'dataType' => 'String',
+              'label' => E::ts('Created By'),
+              'sortable' => TRUE,
+            ],
+            [
+              'type' => 'field',
+              'key' => 'name',
+              'dataType' => 'String',
+              'label' => E::ts('Import Name'),
+              'sortable' => TRUE,
+              'link' => [
+                'path' => 'civicrm/import/contribution?reset=1&template_id=[id]',
+                'entity' => '',
+                'action' => '',
+                'join' => '',
+                'target' => '',
+              ],
+            ],
+            [
+              'type' => 'field',
+              'key' => 'created_date',
+              'dataType' => 'Timestamp',
+              'label' => E::ts('Created Date'),
+              'sortable' => TRUE,
+            ],
+            [
+              'type' => 'field',
+              'key' => 'job_type:label',
+              'dataType' => 'String',
+              'label' => E::ts('Type'),
+              'sortable' => TRUE,
+            ],
+          ],
+          'actions' => TRUE,
+          'classes' => [
+            'table',
+            'table-striped',
+          ],
+        ],
+        'acl_bypass' => FALSE,
+      ],
+    ],
+  ],
 ];
diff --git a/civicrm/ext/civiimport/ang/afsearchTemplates.aff.html b/civicrm/ext/civiimport/ang/afsearchTemplates.aff.html
new file mode 100644
index 0000000000000000000000000000000000000000..a71e3383db728b99e170a16236f891b555251c02
--- /dev/null
+++ b/civicrm/ext/civiimport/ang/afsearchTemplates.aff.html
@@ -0,0 +1,3 @@
+<div af-fieldset="">
+  <crm-search-display-table search-name="Import_Templates" display-name="Import_Templates"></crm-search-display-table>
+</div>
diff --git a/civicrm/ext/civiimport/ang/afsearchTemplates.aff.json b/civicrm/ext/civiimport/ang/afsearchTemplates.aff.json
new file mode 100644
index 0000000000000000000000000000000000000000..6948f1d48b35a82be305ed74e608efdf790afaf9
--- /dev/null
+++ b/civicrm/ext/civiimport/ang/afsearchTemplates.aff.json
@@ -0,0 +1,23 @@
+{
+  "type": "search",
+  "requires": [],
+  "entity_type": null,
+  "join_entity": null,
+  "title": "Import Templates",
+  "description": "",
+  "is_dashlet": false,
+  "is_public": false,
+  "is_token": false,
+  "contact_summary": null,
+  "summary_contact_type": null,
+  "icon": "fa-list-alt",
+  "server_route": "civicrm/imports/templates",
+  "permission": "access CiviCRM",
+  "redirect": null,
+  "create_submission": false,
+  "navigation": {
+    "parent": "Reports",
+    "label": "Import Templates",
+    "weight": 16
+  }
+}
diff --git a/civicrm/ext/civiimport/ang/crmCiviimport.js b/civicrm/ext/civiimport/ang/crmCiviimport.js
index 5927a2ab98205378db969013f6345a78ff940555..dd4280aaafe646b6e93146838998db00852b2c81 100644
--- a/civicrm/ext/civiimport/ang/crmCiviimport.js
+++ b/civicrm/ext/civiimport/ang/crmCiviimport.js
@@ -265,7 +265,7 @@
               // For now we just hard-code this - mapping to soft_credit a bit undefined - but
               // we are mimicking getMappingFieldFromMapperInput on the php layer.
               // Could get it from entity_data but .... later.
-              entityConfig = {'soft_credit': $scope.userJob.metadata.entity_configuration[selectedEntity].entity.entity_data};
+              entityConfig = {'soft_credit': $scope.userJob.metadata.entity_configuration[selectedEntity]};
             }
 
             $scope.userJob.metadata.import_mappings.push({
diff --git a/civicrm/ext/civiimport/ang/crmCiviimport/Import.html b/civicrm/ext/civiimport/ang/crmCiviimport/Import.html
index bd623388b71541a2e45033911a424d7193a7b7cd..e0132f9c09ec42fe18d37fd5a97c84dd7e8bea7b 100644
--- a/civicrm/ext/civiimport/ang/crmCiviimport/Import.html
+++ b/civicrm/ext/civiimport/ang/crmCiviimport/Import.html
@@ -56,7 +56,7 @@
         <div ng-if="entity.entity_data && entity.selected.action !== 'ignore'">
           <div ng-repeat="(fieldName, entityField) in entity.entity_data">
             <label>
-              {{ entityField.title }}  <input  class="big" crm-ui-select='{data: entityField.options, required : entityField.is_required}' ng-model="entity.selected.entity.entity_data[fieldName]"/>
+              {{ entityField.title }}  <input  class="big" crm-ui-select='{data: entityField.options, required : entityField.is_required}' ng-model="entity.selected[fieldName]"/>
             </label>
           </div>
         </div>
@@ -142,8 +142,8 @@
 </div>
 
 <div class="crm-submit-buttons">
-  <button class="crm-form-submit cancel crm-button crm-button-type-back crm-button_qf_MapField_back" value="1" type="submit" name="_qf_MapField_back" id="_qf_MapField_back-bottom"><i aria-hidden="true" class="crm-i fa-chevron-left"></i> Previous</button>
-  <button ng-click="save($event)" class="crm-form-submit default validate crm-button crm-button-type-next crm-button_qf_MapField_next" value="1" type="submit" name="_qf_MapField_next" id="_qf_MapField_next-bottom"><i aria-hidden="true" class="crm-i fa-check"></i> Continue</button>
-  <button class="crm-form-submit cancel crm-button crm-button-type-cancel crm-button_qf_MapField_cancel" value="1" type="submit" name="_qf_MapField_cancel" id="_qf_MapField_cancel-bottom"><i aria-hidden="true" class="crm-i fa-times"></i> Cancel</button>
+  <button class="crm-form-submit cancel crm-button crm-button-type-back crm-button_qf_MapField_back" value="1" type="submit" name="_qf_MapField_back" id="_qf_MapField_back-bottom"><i aria-hidden="true" class="crm-i fa-chevron-left"></i>{{:: ts('Previous') }}</button>
+  <button ng-click="save($event)" class="crm-form-submit default validate crm-button crm-button-type-next crm-button_qf_MapField_next" value="1" type="submit" name="_qf_MapField_next" id="_qf_MapField_next-bottom"><i aria-hidden="true" class="crm-i fa-check"></i>{{:: ts('Continue') }}</button>
+  <button class="crm-form-submit cancel crm-button crm-button-type-cancel crm-button_qf_MapField_cancel" value="1" type="submit" name="_qf_MapField_cancel" id="_qf_MapField_cancel-bottom"><i aria-hidden="true" class="crm-i fa-times"></i>{{:: ts('Cancel') }}</button>
 </div>
 
diff --git a/civicrm/ext/civiimport/civiimport.php b/civicrm/ext/civiimport/civiimport.php
index eef2432d68446bc79642ce4b76967227a0d9d8c4..b12f5a296c7a81b890e5e5ca682307168744fff4 100644
--- a/civicrm/ext/civiimport/civiimport.php
+++ b/civicrm/ext/civiimport/civiimport.php
@@ -208,7 +208,7 @@ function civiimport_civicrm_searchKitTasks(array &$tasks, bool $checkPermissions
  * Load the angular app for our form.
  *
  * @param string $formName
- * @param \CRM_Core_Form|CRM_Contribute_Import_Form_MapField $form
+ * @param CRM_Contribute_Import_Form_MapField $form
  *
  * @throws \CRM_Core_Exception
  */
@@ -217,7 +217,7 @@ function civiimport_civicrm_buildForm(string $formName, $form) {
     // Add import-ui app
     Civi::service('angularjs.loader')->addModules('crmCiviimport');
     $form->assignCiviimportVariables();
-    $savedMappingID = (int) $form->getSubmittedValue('savedMapping');
+    $savedMappingID = (int) $form->getSavedMappingID();
     $savedMapping = [];
     if ($savedMappingID) {
       $savedMapping = Mapping::get()->addWhere('id', '=', $savedMappingID)->addSelect('id', 'name', 'description')->execute()->first();
@@ -238,7 +238,13 @@ function civiimport_civicrm_buildForm(string $formName, $form) {
     }
   }
 
-  if ($formName === 'CRM_Contact_Import_Form_Summary') {
-    $form->assign('downloadErrorRecordsUrl', '/civicrm/search#/display/Import_' . $form->getUserJobID() . '/Import_' . $form->getUserJobID() . '?_status=ERROR');
+  //@todo - do for all Preview forms - just need to fix each Preview.tpl to
+  // not open in new tab as they are not yet consolidated into one file.
+  // (Or consolidate them now).
+  if ($formName === 'CRM_Contact_Import_Form_Summary' || $formName === 'CRM_Contribute_Import_Form_Preview') {
+    $form->assign('isOpenResultsInNewTab', TRUE);
+    $form->assign('downloadErrorRecordsUrl', CRM_Utils_System::url('civicrm/search', '', TRUE, '/display/Import_' . $form->getUserJobID() . '/Import_' . $form->getUserJobID() . '?_status=ERROR', FALSE));
+    $form->assign('allRowsUrl', CRM_Utils_System::url('civicrm/search', '', TRUE, '/display/Import_' . $form->getUserJobID() . '/Import_' . $form->getUserJobID(), FALSE));
+    $form->assign('importedRowsUrl', CRM_Utils_System::url('civicrm/search', '', TRUE, '/display/Import_' . $form->getUserJobID() . '/Import_' . $form->getUserJobID() . '?_status=IMPORTED', FALSE));
   }
 }
diff --git a/civicrm/ext/civiimport/info.xml b/civicrm/ext/civiimport/info.xml
index 23ad03fd91ddcc124862f01859889d9ad97ba10e..4d6822e4c86116ddf7a0445b5c589a3456676137 100644
--- a/civicrm/ext/civiimport/info.xml
+++ b/civicrm/ext/civiimport/info.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <extension key="civiimport" type="module">
   <file>civiimport</file>
-  <name>CiviImport</name>
+  <name>Civi-Import</name>
   <description>CiviCRM core import code</description>
   <license>AGPL-3.0</license>
   <maintainer>
@@ -15,10 +15,10 @@
     <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url>
   </urls>
   <releaseDate>2022-08-11</releaseDate>
-  <version>5.60.0</version>
+  <version>5.61.0</version>
   <develStage>alpha</develStage>
   <compatibility>
-    <ver>5.60</ver>
+    <ver>5.61</ver>
   </compatibility>
   <comments>Core extension for us to start moving import logic into, has more functionality</comments>
   <requires>
diff --git a/civicrm/ext/civiimport/tests/phpunit/CiviApiImportTest.php b/civicrm/ext/civiimport/tests/phpunit/CiviApiImportTest.php
index eb5b158a394633ce5bcade3c3685094f84d43d17..47e35784e510e7f90fd2286a07ea9b736cf15efd 100644
--- a/civicrm/ext/civiimport/tests/phpunit/CiviApiImportTest.php
+++ b/civicrm/ext/civiimport/tests/phpunit/CiviApiImportTest.php
@@ -36,10 +36,14 @@ class CiviApiImportTest extends TestCase implements HeadlessInterface, HookInter
    */
   public function setUpHeadless(): CiviEnvBuilder {
     return \Civi\Test::headless()
+      ->install('org.civicrm.search_kit')
       ->installMe(__DIR__)
       ->apply();
   }
 
+  /**
+   * @throws \Civi\Core\Exception\DBQueryException
+   */
   public function tearDown():void {
     CRM_Core_DAO::executeQuery('DROP TABLE IF EXISTS abc');
     parent::tearDown();
@@ -52,7 +56,7 @@ class CiviApiImportTest extends TestCase implements HeadlessInterface, HookInter
    */
   public function testApiActions():void {
     $this->createUserJobTable();
-    $userJobID = UserJob::create()->setValues([
+    $userJobParameters = [
       'metadata' => [
         'DataSource' => ['table_name' => 'abc', 'column_headers' => ['External Identifier', 'Amount Given', 'Date Received', 'Financial Type', 'In honor']],
         'submitted_values' => [
@@ -73,7 +77,8 @@ class CiviApiImportTest extends TestCase implements HeadlessInterface, HookInter
       ],
       'status_id:name' => 'draft',
       'job_type' => 'contribution_import',
-    ])->execute()->first()['id'];
+    ];
+    $userJobID = UserJob::create()->setValues($userJobParameters)->execute()->first()['id'];
     $importFields = Import::getFields($userJobID)->execute();
     $this->assertEquals('abc', $importFields[0]['table_name']);
     $this->assertEquals('_id', $importFields[0]['column_name']);
@@ -135,13 +140,25 @@ class CiviApiImportTest extends TestCase implements HeadlessInterface, HookInter
     $imported = Import::import($userJobID)->addWhere('_id', '=', $rowID)->setLimit(1)->execute()->first();
     $this->assertEquals('ERROR', $imported['_status']);
     $this->assertEquals('No matching Contact found', $imported['_status_message']);
+
+    // Update the table with a new table name & check the api still works.
+    // This relies on the change in table name being detected & caches being
+    // flushed.
+    CRM_Core_DAO::executeQuery('DROP TABLE abc');
+    $this->createUserJobTable('xyz');
+    $userJobParameters['metadata']['DataSource']['table_name'] = 'xyz';
+    UserJob::update(FALSE)->addWhere('id', '=', $userJobID)->setValues($userJobParameters)->execute();
+    // This is our new table, with nothing in it, but we if we api-call & don't get an exception so we are winning.
+    Import::get($userJobID)->setSelect(['external_identifier', 'amount_given', '_status'])->addWhere('_id', '=', $rowID)->execute()->first();
   }
 
   /**
    * Create a table for our Import api.
+   *
+   * @throws \Civi\Core\Exception\DBQueryException
    */
-  private function createUserJobTable(): void {
-    CRM_Core_DAO::executeQuery("CREATE TABLE IF NOT EXISTS `abc` (
+  private function createUserJobTable($tableName = 'abc'): void {
+    CRM_Core_DAO::executeQuery("CREATE TABLE IF NOT EXISTS `" . $tableName . "` (
       `external_identifier` text DEFAULT NULL,
       `amount_given` text DEFAULT NULL,
       `receive_date` text DEFAULT NULL,
diff --git a/civicrm/ext/ckeditor4/CRM/Ckeditor4/Form/CKEditorConfig.php b/civicrm/ext/ckeditor4/CRM/Ckeditor4/Form/CKEditorConfig.php
index 5842a6297d0487eb042fdab9ee824e3d77afb08f..7e30ba1e6a7383e5f03a27689cc4b3769b277a7d 100644
--- a/civicrm/ext/ckeditor4/CRM/Ckeditor4/Form/CKEditorConfig.php
+++ b/civicrm/ext/ckeditor4/CRM/Ckeditor4/Form/CKEditorConfig.php
@@ -309,7 +309,7 @@ class CRM_Ckeditor4_Form_CKEditorConfig extends CRM_Core_Form {
    */
   public static function setConfigDefault() {
     if (!self::getConfigFile()) {
-      $config = self::fileHeader() . "CKEDITOR.editorConfig = function( config ) {\n\tconfig.allowedContent = true;\n};\n";
+      $config = self::fileHeader() . "CKEDITOR.editorConfig = function( config ) {\n\tconfig.allowedContent = true;\n\tconfig.entities = false;\n};\n";
       // Make sure directories exist
       if (!is_dir(Civi::paths()->getPath('[civicrm.files]/persist'))) {
         mkdir(Civi::paths()->getPath('[civicrm.files]/persist'));
diff --git a/civicrm/ext/ckeditor4/info.xml b/civicrm/ext/ckeditor4/info.xml
index 2a83898bf14c084fe4b1062da4cd803633d2eeb6..988a73b83ad82604ad678aeb2d0641b958c2f471 100644
--- a/civicrm/ext/ckeditor4/info.xml
+++ b/civicrm/ext/ckeditor4/info.xml
@@ -15,10 +15,10 @@
     <url desc="Licensing">https://www.gnu.org/licenses/agpl-3.0.html</url>
   </urls>
   <releaseDate>2021-05-23</releaseDate>
-  <version>5.60.0</version>
+  <version>5.61.0</version>
   <develStage>stable</develStage>
   <compatibility>
-    <ver>5.60</ver>
+    <ver>5.61</ver>
   </compatibility>
   <comments>This is the version of CKEditor that originally shipped with CiviCRM core</comments>
   <classloader>
diff --git a/civicrm/ext/contributioncancelactions/info.xml b/civicrm/ext/contributioncancelactions/info.xml
index d80fb165593e2a74edd2610abd46b8e28811d4c7..f06a8c16166b40524a4d53092bc1b6869f65ed52 100644
--- a/civicrm/ext/contributioncancelactions/info.xml
+++ b/civicrm/ext/contributioncancelactions/info.xml
@@ -15,10 +15,10 @@
     <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url>
   </urls>
   <releaseDate>2020-10-12</releaseDate>
-  <version>5.60.0</version>
+  <version>5.61.0</version>
   <develStage>stable</develStage>
   <compatibility>
-    <ver>5.60</ver>
+    <ver>5.61</ver>
   </compatibility>
   <comments>This code has been moved from core to a separate extension in 5.32. Note that if you disable it failed or cancelled contributions will not cause related memberships and participant records to be updated</comments>
   <classloader>
diff --git a/civicrm/ext/contributioncancelactions/tests/phpunit/CancelTest.php b/civicrm/ext/contributioncancelactions/tests/phpunit/CancelTest.php
index 6ae6113080c593c3ffef1390718d67f8c3ed6985..39b199c8984ab518d8dcda2c3459c2bad75c623f 100644
--- a/civicrm/ext/contributioncancelactions/tests/phpunit/CancelTest.php
+++ b/civicrm/ext/contributioncancelactions/tests/phpunit/CancelTest.php
@@ -182,7 +182,7 @@ class CancelTest extends TestCase implements HeadlessInterface, HookInterface, T
    */
   public function createPaymentProcessor(array $params = []): int {
     $params = array_merge([
-      'name' => 'demo',
+      'title' => $params['name'] ?? 'demo',
       'domain_id' => CRM_Core_Config::domainID(),
       'payment_processor_type_id' => 'PayPal',
       'is_active' => 1,
diff --git a/civicrm/ext/elavon/info.xml b/civicrm/ext/elavon/info.xml
index 53e5119a3cccf14f6219ce6830d7d07a94d555e5..1d9ea976e1f2d0e5f9afed3be5ee48ac01f219c6 100644
--- a/civicrm/ext/elavon/info.xml
+++ b/civicrm/ext/elavon/info.xml
@@ -15,10 +15,10 @@
     <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url>
   </urls>
   <releaseDate>2022-08-05</releaseDate>
-  <version>5.60.0</version>
+  <version>5.61.0</version>
   <develStage>stable</develStage>
   <compatibility>
-    <ver>5.60</ver>
+    <ver>5.61</ver>
   </compatibility>
   <comments/>
   <classloader>
diff --git a/civicrm/ext/elavon/tests/phpunit/CRM/Core/Payment/ElavonTest.php b/civicrm/ext/elavon/tests/phpunit/CRM/Core/Payment/ElavonTest.php
index 76ca53526e9bcf0543d72f8fc5440989d5de5880..cdaf061aeb6bd3a46679f5c75918844d59d949d1 100644
--- a/civicrm/ext/elavon/tests/phpunit/CRM/Core/Payment/ElavonTest.php
+++ b/civicrm/ext/elavon/tests/phpunit/CRM/Core/Payment/ElavonTest.php
@@ -114,6 +114,7 @@ class CRM_Core_Payment_ElavonTest extends \PHPUnit\Framework\TestCase implements
   public function setUpElavonProcessor(): void {
     $params = [
       'name' => 'demo',
+      'title' => 'demo',
       'domain_id' => CRM_Core_Config::domainID(),
       'payment_processor_type_id' => 'Elavon',
       'is_active' => 1,
diff --git a/civicrm/ext/eventcart/info.xml b/civicrm/ext/eventcart/info.xml
index aaeb0c4aa60d1b56156511d34728286364a74900..e6c8b7e4e4566d9482b5fc44954346319c6f922a 100644
--- a/civicrm/ext/eventcart/info.xml
+++ b/civicrm/ext/eventcart/info.xml
@@ -13,13 +13,13 @@
     <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url>
   </urls>
   <releaseDate>2020-08-03</releaseDate>
-  <version>5.60.0</version>
+  <version>5.61.0</version>
   <tags>
     <tag>mgmt:hidden</tag>
   </tags>
   <develStage>stable</develStage>
   <compatibility>
-    <ver>5.60</ver>
+    <ver>5.61</ver>
   </compatibility>
   <classloader>
     <psr0 prefix="CRM_" path="."/>
diff --git a/civicrm/ext/ewaysingle/info.xml b/civicrm/ext/ewaysingle/info.xml
index 42ff6c25e3942031f7a9304ccbda71c5cc62843e..dd73ec4ce4b6619f34dda9136b7fb46e82529013 100644
--- a/civicrm/ext/ewaysingle/info.xml
+++ b/civicrm/ext/ewaysingle/info.xml
@@ -15,13 +15,13 @@
     <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url>
   </urls>
   <releaseDate>2020-10-07</releaseDate>
-  <version>5.60.0</version>
+  <version>5.61.0</version>
   <tags>
     <tag>mgmt:hidden</tag>
   </tags>
   <develStage>stable</develStage>
   <compatibility>
-    <ver>5.60</ver>
+    <ver>5.61</ver>
   </compatibility>
   <comments>This is an extension to contain the eWAY Single Currency Payment Processor</comments>
   <classloader>
diff --git a/civicrm/ext/ewaysingle/tests/phpunit/CRM/Core/Payment/EwayTest.php b/civicrm/ext/ewaysingle/tests/phpunit/CRM/Core/Payment/EwayTest.php
index f22c9bcda26e64d9239f7061b1d09278dfa6b4ff..c2a0b8860a00223970a66e1f0e980e3d8d8f1a40 100644
--- a/civicrm/ext/ewaysingle/tests/phpunit/CRM/Core/Payment/EwayTest.php
+++ b/civicrm/ext/ewaysingle/tests/phpunit/CRM/Core/Payment/EwayTest.php
@@ -140,6 +140,7 @@ class CRM_Core_Payment_EwayTest extends \PHPUnit\Framework\TestCase implements H
   public function setUpEwayProcessor(): void {
     $params = [
       'name' => 'demo',
+      'title' => 'demo',
       'domain_id' => CRM_Core_Config::domainID(),
       'payment_processor_type_id' => 'eWAY',
       'is_active' => 1,
diff --git a/civicrm/ext/financialacls/info.xml b/civicrm/ext/financialacls/info.xml
index 365ef0dae2e109b67c571517ff6e48b4862f5971..afd561502786a0341c0d404c5bc329274537e015 100644
--- a/civicrm/ext/financialacls/info.xml
+++ b/civicrm/ext/financialacls/info.xml
@@ -15,10 +15,10 @@
     <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url>
   </urls>
   <releaseDate>2020-08-27</releaseDate>
-  <version>5.60.0</version>
+  <version>5.61.0</version>
   <develStage>stable</develStage>
   <compatibility>
-    <ver>5.60</ver>
+    <ver>5.61</ver>
   </compatibility>
   <tags>
     <tag>mgmt:hidden</tag>
diff --git a/civicrm/ext/flexmailer/info.xml b/civicrm/ext/flexmailer/info.xml
index 4128a21c65d92bfa08f479d0f10f236b743297d8..4bb4a37fad7a0fef10d1bc1b7fb5d21d17e46dec 100644
--- a/civicrm/ext/flexmailer/info.xml
+++ b/civicrm/ext/flexmailer/info.xml
@@ -15,7 +15,7 @@
     <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url>
   </urls>
   <releaseDate>2020-08-05</releaseDate>
-  <version>5.60.0</version>
+  <version>5.61.0</version>
   <develStage>stable</develStage>
   <comments>
     FlexMailer is an email delivery engine which replaces the internal guts
@@ -23,7 +23,7 @@
     to provide richer email features.
   </comments>
   <compatibility>
-    <ver>5.60</ver>
+    <ver>5.61</ver>
   </compatibility>
   <tags>
     <tag>mgmt:required</tag>
diff --git a/civicrm/ext/flexmailer/tests/phpunit/Civi/FlexMailer/MailingPreviewTest.php b/civicrm/ext/flexmailer/tests/phpunit/Civi/FlexMailer/MailingPreviewTest.php
index f15d8dffeb2e944a8513983bb91452ad6b7ff710..d6c72e15c9977b8f450f4d3f66fee52221720516 100644
--- a/civicrm/ext/flexmailer/tests/phpunit/Civi/FlexMailer/MailingPreviewTest.php
+++ b/civicrm/ext/flexmailer/tests/phpunit/Civi/FlexMailer/MailingPreviewTest.php
@@ -10,8 +10,7 @@ class MailingPreviewTest extends \CiviUnitTestCase {
 
   protected $_groupID;
   protected $_email;
-  protected $_apiversion = 3;
-  protected $_params = array();
+  protected $_params = [];
   protected $_entity = 'Mailing';
   protected $_contactID;
 
diff --git a/civicrm/ext/greenwich/info.xml b/civicrm/ext/greenwich/info.xml
index 77e8c3a42aec0f14c85c49fd3b0dff4d9906f2ad..b4799076f9a776777db1c54c6a13abe28ff83dbc 100644
--- a/civicrm/ext/greenwich/info.xml
+++ b/civicrm/ext/greenwich/info.xml
@@ -15,13 +15,13 @@
     <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url>
   </urls>
   <releaseDate>2020-07-21</releaseDate>
-  <version>5.60.0</version>
+  <version>5.61.0</version>
   <tags>
     <tag>mgmt:hidden</tag>
   </tags>
   <develStage>stable</develStage>
   <compatibility>
-    <ver>5.60</ver>
+    <ver>5.61</ver>
   </compatibility>
   <classloader>
     <psr0 prefix="CRM_" path="."/>
diff --git a/civicrm/ext/legacycustomsearches/info.xml b/civicrm/ext/legacycustomsearches/info.xml
index ac5c0f1ed80472d8ea342d684c87a9b4ab8a5b7d..a712668b7296039270d719150739990b501bb541 100644
--- a/civicrm/ext/legacycustomsearches/info.xml
+++ b/civicrm/ext/legacycustomsearches/info.xml
@@ -15,13 +15,13 @@
     <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url>
   </urls>
   <releaseDate>2021-07-25</releaseDate>
-  <version>5.60.0</version>
+  <version>5.61.0</version>
   <develStage>stable</develStage>
   <tags>
     <tag>mgmt:hidden</tag>
   </tags>
   <compatibility>
-    <ver>5.60</ver>
+    <ver>5.61</ver>
   </compatibility>
   <comments>This is hidden on install to give extensions that require it time to add it to their requires and to allow us to get it out of GroupContact load</comments>
   <classloader>
diff --git a/civicrm/ext/legacycustomsearches/templates/CRM/Contact/Form/Search/Custom/FullText.tpl b/civicrm/ext/legacycustomsearches/templates/CRM/Contact/Form/Search/Custom/FullText.tpl
index 2503715ca916673e6e20dc2eb1c79c1a47c9b38a..bc0f884a67ca61b96be2e62ab01326b64634d3f5 100644
--- a/civicrm/ext/legacycustomsearches/templates/CRM/Contact/Form/Search/Custom/FullText.tpl
+++ b/civicrm/ext/legacycustomsearches/templates/CRM/Contact/Form/Search/Custom/FullText.tpl
@@ -320,7 +320,7 @@
           <th>{ts}Membership Type{/ts}</th>
           <th class="currency">{ts}Membership Fee{/ts}</th>
           <th class="start_date">{ts}Membership Start Date{/ts}</th>
-          <th class="end_date">{ts}Membership End Date{/ts}</th>
+          <th class="end_date">{ts}Membership Expiration Date{/ts}</th>
           <th>{ts}Source{/ts}</th>
           <th>{ts}Status{/ts}</th>
           {if $allowFileSearch}<th>{ts}File{/ts}</th>{/if}
diff --git a/civicrm/ext/message_admin/info.xml b/civicrm/ext/message_admin/info.xml
index 2807a6109b04f29918b87287ae778a1b08ebe56d..6f08123c57576b2d574fe58d66ae4e78e1527ad0 100644
--- a/civicrm/ext/message_admin/info.xml
+++ b/civicrm/ext/message_admin/info.xml
@@ -15,10 +15,10 @@
     <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url>
   </urls>
   <releaseDate>2021-06-12</releaseDate>
-  <version>5.60.0</version>
+  <version>5.61.0</version>
   <develStage>alpha</develStage>
   <compatibility>
-    <ver>5.60</ver>
+    <ver>5.61</ver>
   </compatibility>
   <requires>
     <ext>org.civicrm.afform</ext>
diff --git a/civicrm/ext/oauth-client/info.xml b/civicrm/ext/oauth-client/info.xml
index 5276987323ff87532fee2f266a5a0b328b147f04..d585a069d165b63be5a204763a7977d3d96d1bd7 100644
--- a/civicrm/ext/oauth-client/info.xml
+++ b/civicrm/ext/oauth-client/info.xml
@@ -15,10 +15,10 @@
     <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url>
   </urls>
   <releaseDate>2020-10-23</releaseDate>
-  <version>5.60.0</version>
+  <version>5.61.0</version>
   <develStage>stable</develStage>
   <compatibility>
-    <ver>5.60</ver>
+    <ver>5.61</ver>
   </compatibility>
   <requires>
     <ext version="~4.5">org.civicrm.afform</ext>
diff --git a/civicrm/ext/payflowpro/info.xml b/civicrm/ext/payflowpro/info.xml
index 49a8e72907f623eea88855ea0f3d8f1cf95c06cc..e456d677ff02c9ce76e29fbf1eb885664bc4e11b 100644
--- a/civicrm/ext/payflowpro/info.xml
+++ b/civicrm/ext/payflowpro/info.xml
@@ -15,10 +15,10 @@
     <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url>
   </urls>
   <releaseDate>2021-04-13</releaseDate>
-  <version>5.60.0</version>
+  <version>5.61.0</version>
   <develStage>stable</develStage>
   <compatibility>
-    <ver>5.60</ver>
+    <ver>5.61</ver>
   </compatibility>
   <comments>This extension is extraction of the original Core Payflow Pro Payment Processor</comments>
   <classloader>
diff --git a/civicrm/ext/payflowpro/tests/phpunit/CRM/Core/Payment/PayflowProTest.php b/civicrm/ext/payflowpro/tests/phpunit/CRM/Core/Payment/PayflowProTest.php
index dd5a889138c038f160b314891b172ce899ae863a..6326cbd98f3f204c10a8e5a571f8b80ef79ab390 100644
--- a/civicrm/ext/payflowpro/tests/phpunit/CRM/Core/Payment/PayflowProTest.php
+++ b/civicrm/ext/payflowpro/tests/phpunit/CRM/Core/Payment/PayflowProTest.php
@@ -175,6 +175,7 @@ class CRM_Core_Payment_PayflowProTest extends \PHPUnit\Framework\TestCase implem
     $this->callAPISuccess('PaymentProcessorType', 'create', ['id' => $paymentProcessorType['id'], 'is_active' => 1]);
     $params = [
       'name' => 'demo',
+      'title' => 'demo',
       'domain_id' => CRM_Core_Config::domainID(),
       'payment_processor_type_id' => 'PayflowPro',
       'is_active' => 1,
diff --git a/civicrm/ext/recaptcha/info.xml b/civicrm/ext/recaptcha/info.xml
index a110ae64ea599660da6780399b3649495fe6a8d0..001975db9f630ee2f35f1d4b7747a6eb4728e065 100644
--- a/civicrm/ext/recaptcha/info.xml
+++ b/civicrm/ext/recaptcha/info.xml
@@ -13,13 +13,13 @@
     <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url>
   </urls>
   <releaseDate>2021-04-03</releaseDate>
-  <version>5.60.0</version>
+  <version>5.61.0</version>
   <tags>
     <tag>mgmt:hidden</tag>
   </tags>
   <develStage>stable</develStage>
   <compatibility>
-    <ver>5.60</ver>
+    <ver>5.61</ver>
   </compatibility>
   <classloader>
     <psr0 prefix="CRM_" path="."/>
diff --git a/civicrm/ext/search_kit/Civi/Api4/Action/SearchDisplay/AbstractRunAction.php b/civicrm/ext/search_kit/Civi/Api4/Action/SearchDisplay/AbstractRunAction.php
index eba8bd580612e567eb9e3905448dea9d998d2d9d..476b116109ca09e6cbf523f5c8efc074b6f9f220 100644
--- a/civicrm/ext/search_kit/Civi/Api4/Action/SearchDisplay/AbstractRunAction.php
+++ b/civicrm/ext/search_kit/Civi/Api4/Action/SearchDisplay/AbstractRunAction.php
@@ -612,12 +612,13 @@ abstract class AbstractRunAction extends \Civi\Api4\Generic\AbstractAction {
       if ($missingRequiredFields->count() || count($vals) === 1) {
         return NULL;
       }
+      $entityValues = $editable['record'];
     }
     // Ensure current user has access
     if ($editable['record']) {
       $access = civicrm_api4($editable['entity'], 'checkAccess', [
         'action' => $editable['action'],
-        'values' => $editable['record'],
+        'values' => $entityValues,
       ], 0)['access'];
       if ($access) {
         // Remove info that's for internal use only
@@ -806,7 +807,13 @@ abstract class AbstractRunAction extends \Civi\Api4\Generic\AbstractAction {
     if (!$filters) {
       return;
     }
-
+    // Parse comma-separated values from filters passed through afform variables
+    // These values may have come from the url and should be transformed into arrays
+    foreach ($directiveFilters as $key) {
+      if (!empty($filters[$key]) && is_string($filters[$key]) && strpos($filters[$key], ',')) {
+        $filters[$key] = explode(',', $filters[$key]);
+      }
+    }
     // Add all filters to the WHERE or HAVING clause
     foreach ($filters as $key => $value) {
       $fieldNames = explode(',', $key);
diff --git a/civicrm/ext/search_kit/Civi/Search/Admin.php b/civicrm/ext/search_kit/Civi/Search/Admin.php
index 4967484f6f8d0b9861b8c98befe1c0dd3560c3d3..5c85d27c95c015dccab5786be006a2e13712c1b4 100644
--- a/civicrm/ext/search_kit/Civi/Search/Admin.php
+++ b/civicrm/ext/search_kit/Civi/Search/Admin.php
@@ -209,7 +209,7 @@ class Admin {
         }
         // Useful address fields (see ContactSchemaMapSubscriber)
         if ($entity['name'] === 'Contact') {
-          $addressFields = ['city', 'state_province_id', 'country_id'];
+          $addressFields = ['city', 'state_province_id', 'country_id', 'street_address', 'postal_code', 'supplemental_address_1'];
           foreach ($addressFields as $fieldName) {
             foreach (['primary', 'billing'] as $type) {
               $newField = \CRM_Utils_Array::findAll($schema['Address']['fields'], ['name' => $fieldName])[0];
@@ -459,7 +459,7 @@ class Admin {
    * @return array
    */
   private static function getSqlFunctions():array {
-    $functions = \CRM_Api4_Page_Api4Explorer::getSqlFunctions();
+    $functions = CoreUtil::getSqlFunctions();
     // Add faux function "e" for SqlEquations
     $functions[] = [
       'name' => 'e',
@@ -467,6 +467,7 @@ class Admin {
       'description' => ts('Add, subtract, multiply, divide'),
       'category' => SqlFunction::CATEGORY_MATH,
       'data_type' => 'Number',
+      'options' => FALSE,
       'params' => [
         [
           'label' => ts('Value'),
diff --git a/civicrm/ext/search_kit/Civi/Search/Meta.php b/civicrm/ext/search_kit/Civi/Search/Meta.php
index 826fb23489376f821183d0b65e75900277b86929..40251f5010dbd76b6a232f7e975caab611fe172c 100644
--- a/civicrm/ext/search_kit/Civi/Search/Meta.php
+++ b/civicrm/ext/search_kit/Civi/Search/Meta.php
@@ -70,12 +70,18 @@ class Meta {
           $dataType = $field['data_type'] ?? 'String';
           $inputType = $field['input_type'] ?? $dataTypeToInputType[$dataType] ?? 'Text';
         }
+        $options = FALSE;
+        if ($expr->getType() === 'SqlFunction' && $expr::getOptions()) {
+          $inputType = 'Select';
+          $options = CoreUtil::formatOptionList($expr::getOptions(), ['id', 'label']);
+        }
 
         $calcFields[] = [
           'name' => $expr->getAlias(),
           'label' => $label,
           'input_type' => $inputType,
           'data_type' => $dataType,
+          'options' => $options,
         ];
       }
     }
diff --git a/civicrm/ext/search_kit/ang/crmSearchAdmin/compose.html b/civicrm/ext/search_kit/ang/crmSearchAdmin/compose.html
index 3d773cfcd25caa3e0aa325124d72f814d3efdcc8..6a52133a588390e5cb0a054c5231eebf6eb1d8ae 100644
--- a/civicrm/ext/search_kit/ang/crmSearchAdmin/compose.html
+++ b/civicrm/ext/search_kit/ang/crmSearchAdmin/compose.html
@@ -45,7 +45,7 @@
       <crm-search-clause clauses="$ctrl.savedSearch.api_params.where" format="string" op="AND" label="{{:: ts('Where') }}" fields="fieldsForWhere" allow-functions="true" ></crm-search-clause>
     </fieldset>
     <fieldset ng-if="$ctrl.paramExists('having') && $ctrl.savedSearch.api_params.groupBy.length" class="api4-clause-fieldset">
-      <crm-search-clause clauses="$ctrl.savedSearch.api_params.having" format="string" op="AND" label="{{:: ts('Having') }}" fields="fieldsForHaving" ></crm-search-clause>
+      <crm-search-clause clauses="$ctrl.savedSearch.api_params.having" format="string" op="AND" label="{{:: ts('Having') }}" help="having" fields="fieldsForHaving" ></crm-search-clause>
     </fieldset>
   </div>
 </div>
diff --git a/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchAdmin.component.js b/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchAdmin.component.js
index 32fde96e7efe12a87329f9b1d0295494f42ad329..4d1d8e9f1bc4b90ccf3effecb437566ccdfca0a8 100644
--- a/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchAdmin.component.js
+++ b/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchAdmin.component.js
@@ -6,11 +6,12 @@
       savedSearch: '<'
     },
     templateUrl: '~/crmSearchAdmin/crmSearchAdmin.html',
-    controller: function($scope, $element, $location, $timeout, crmApi4, dialogService, searchMeta) {
+    controller: function($scope, $element, $location, $timeout, crmApi4, dialogService, searchMeta, crmUiHelp) {
       var ts = $scope.ts = CRM.ts('org.civicrm.search_kit'),
         ctrl = this,
         afformLoad,
         fieldsForJoinGetters = {};
+      $scope.hs = crmUiHelp({file: 'CRM/Search/Help/Compose'});
 
       this.afformEnabled = 'org.civicrm.afform' in CRM.crmSearchAdmin.modules;
       this.afformAdminEnabled = (CRM.checkPerm('administer CiviCRM') || CRM.checkPerm('administer afform')) &&
@@ -114,6 +115,7 @@
         if (params.tag_id && params.tag_id.length) {
           chain.tag_id = ['EntityTag', 'replace', {
             where: [['entity_id', '=', '$id'], ['entity_table', '=', 'civicrm_saved_search']],
+            match: ['entity_id', 'entity_table', 'tag_id'],
             records: _.transform(params.tag_id, function(records, id) {records.push({tag_id: id});})
           }];
         } else if (params.id) {
diff --git a/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchClause.component.js b/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchClause.component.js
index 9bd637ab3c392b54ee9b76e0492dd1376a5c4c3e..bde690cda5dad0a2c6938d7853fe5fa608c0149d 100644
--- a/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchClause.component.js
+++ b/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchClause.component.js
@@ -10,12 +10,13 @@
       allowFunctions: '<',
       skip: '<',
       label: '@',
+      help: '@',
       hideLabel: '@',
       placeholder: '<',
       deleteGroup: '&'
     },
     templateUrl: '~/crmSearchAdmin/crmSearchClause.html',
-    controller: function ($scope, $element, searchMeta) {
+    controller: function ($scope, $element, searchMeta, crmUiHelp) {
       var ts = $scope.ts = CRM.ts('org.civicrm.search_kit'),
         ctrl = this,
         meta = {};
@@ -31,6 +32,7 @@
 
       this.$onInit = function() {
         ctrl.hasParent = !!$element.attr('delete-group');
+        $scope.hs = crmUiHelp({file: 'CRM/Search/Help/Compose'});
       };
 
       // Gets the first arg of type "field"
diff --git a/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchClause.html b/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchClause.html
index 5baaaa7bd1ca0ab0c7cbc4227390556e704d428f..5f4902f998e02f4a6e33bbc887c849289f073863 100644
--- a/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchClause.html
+++ b/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchClause.html
@@ -1,4 +1,7 @@
-<legend ng-if="!$ctrl.hideLabel">{{ $ctrl.label || ts('%1 group', {1: $ctrl.conjunctions[$ctrl.op]}) }}</legend>
+<legend ng-if="!$ctrl.hideLabel">
+  {{ $ctrl.label || ts('%1 group', {1: $ctrl.conjunctions[$ctrl.op]}) }}
+  <a ng-if="$ctrl.help" crm-ui-help="hs({id: $ctrl.help, title: $ctrl.label})"></a>
+</legend>
 <div class="btn-group btn-group-xs" ng-if=":: $ctrl.hasParent">
   <button type="button" class="btn btn-danger-outline" ng-click="$ctrl.deleteGroup()" title="{{:: ts('Remove group') }}">
     <i class="crm-i fa-trash" aria-hidden="true"></i>
diff --git a/civicrm/ext/search_kit/ang/crmSearchAdmin/displays/colType/field.html b/civicrm/ext/search_kit/ang/crmSearchAdmin/displays/colType/field.html
index ed44ebbf0c15d4a043cafc71b45644b800469c0d..3714137f3b907e14a70438ce7557cec12c23aee1 100644
--- a/civicrm/ext/search_kit/ang/crmSearchAdmin/displays/colType/field.html
+++ b/civicrm/ext/search_kit/ang/crmSearchAdmin/displays/colType/field.html
@@ -36,6 +36,7 @@
     <input type="checkbox" ng-checked="col.empty_value" ng-click="$ctrl.parent.toggleEmptyVal(col)" >
     {{:: ts('Empty placeholder') }}
   </label>
+  <a crm-ui-help="hs({id: 'empty', title: ts('Empty placeholder')})"></a>
   <textarea rows="2" class="form-control crm-flex-1" ng-if="col.empty_value" ng-model="col.empty_value" ng-model-options="{updateOn: 'blur'}"></textarea>
   <crm-search-admin-token-select ng-if="col.empty_value" model="col" field="empty_value" suffix=":label"></crm-search-admin-token-select>
 </div>
@@ -44,6 +45,7 @@
     <input type="checkbox" ng-checked="col.rewrite" ng-click="$ctrl.parent.toggleRewrite(col)" >
     {{:: ts('Rewrite Text') }}
   </label>
+  <a crm-ui-help="hs({id: 'rewrite', title: ts('Rewrite Text')})"></a>
   <textarea rows="2" class="form-control crm-flex-1" ng-if="col.rewrite" ng-model="col.rewrite" ng-model-options="{updateOn: 'blur'}"></textarea>
   <crm-search-admin-token-select ng-if="col.rewrite" model="col" field="rewrite" suffix=":label"></crm-search-admin-token-select>
 </div>
diff --git a/civicrm/ext/search_kit/ang/crmSearchAdmin/displays/colType/html.html b/civicrm/ext/search_kit/ang/crmSearchAdmin/displays/colType/html.html
index 14f359f28ef9d3ce2d8ba88d2380ef3563ef7510..518918f79d44a9e3e335863e473c46b0899f2386 100644
--- a/civicrm/ext/search_kit/ang/crmSearchAdmin/displays/colType/html.html
+++ b/civicrm/ext/search_kit/ang/crmSearchAdmin/displays/colType/html.html
@@ -17,6 +17,7 @@
     <input type="checkbox" ng-checked="col.empty_value" ng-click="$ctrl.parent.toggleEmptyVal(col)" >
     {{:: ts('Empty placeholder') }}
   </label>
+  <a crm-ui-help="hs({id: 'empty', title: ts('Empty placeholder')})"></a>
   <textarea rows="2" class="form-control crm-flex-1" ng-if="col.empty_value" ng-model="col.empty_value" ng-model-options="{updateOn: 'blur'}"></textarea>
   <crm-search-admin-token-select ng-if="col.empty_value" model="col" field="empty_value" suffix=":label"></crm-search-admin-token-select>
 </div>
@@ -25,6 +26,7 @@
     <input type="checkbox" ng-checked="col.rewrite" ng-click="$ctrl.parent.toggleRewrite(col)" >
     {{:: ts('Rewrite HTML') }}
   </label>
+  <a crm-ui-help="hs({id: 'rewrite', title: ts('Rewrite HTML')})"></a>
   <textarea rows="2" class="form-control crm-flex-1" ng-if="col.rewrite" ng-model="col.rewrite" ng-model-options="{updateOn: 'blur'}"></textarea>
   <crm-search-admin-token-select ng-if="col.rewrite" model="col" field="rewrite" suffix=":label"></crm-search-admin-token-select>
 </div>
diff --git a/civicrm/ext/search_kit/ang/crmSearchAdmin/displays/searchAdminDisplayGrid.component.js b/civicrm/ext/search_kit/ang/crmSearchAdmin/displays/searchAdminDisplayGrid.component.js
index e5295b3ccecaee46a66d9bfeb68a5ea72a52df29..e1c5707e4073941d61639312076bc1b3bb47c70d 100644
--- a/civicrm/ext/search_kit/ang/crmSearchAdmin/displays/searchAdminDisplayGrid.component.js
+++ b/civicrm/ext/search_kit/ang/crmSearchAdmin/displays/searchAdminDisplayGrid.component.js
@@ -11,9 +11,10 @@
       parent: '^crmSearchAdminDisplay'
     },
     templateUrl: '~/crmSearchAdmin/displays/searchAdminDisplayGrid.html',
-    controller: function($scope, searchMeta) {
+    controller: function($scope, searchMeta, crmUiHelp) {
       var ts = $scope.ts = CRM.ts('org.civicrm.search_kit'),
         ctrl = this;
+      $scope.hs = crmUiHelp({file: 'CRM/Search/Help/Display'});
 
       this.getColTypes = function() {
         return ctrl.parent.colTypes;
diff --git a/civicrm/ext/search_kit/ang/crmSearchAdmin/displays/searchAdminDisplayList.component.js b/civicrm/ext/search_kit/ang/crmSearchAdmin/displays/searchAdminDisplayList.component.js
index 6705513402dd1eb0c18a27d184321e348c4f2b9d..66d390b5f0fc12839e8bf80095e4081f637f9907 100644
--- a/civicrm/ext/search_kit/ang/crmSearchAdmin/displays/searchAdminDisplayList.component.js
+++ b/civicrm/ext/search_kit/ang/crmSearchAdmin/displays/searchAdminDisplayList.component.js
@@ -11,9 +11,10 @@
       parent: '^crmSearchAdminDisplay'
     },
     templateUrl: '~/crmSearchAdmin/displays/searchAdminDisplayList.html',
-    controller: function($scope, searchMeta) {
+    controller: function($scope, searchMeta, crmUiHelp) {
       var ts = $scope.ts = CRM.ts('org.civicrm.search_kit'),
         ctrl = this;
+      $scope.hs = crmUiHelp({file: 'CRM/Search/Help/Display'});
 
       this.getColTypes = function() {
         return ctrl.parent.colTypes;
diff --git a/civicrm/ext/search_kit/ang/crmSearchAdmin/displays/searchAdminDisplayTable.component.js b/civicrm/ext/search_kit/ang/crmSearchAdmin/displays/searchAdminDisplayTable.component.js
index e151bf5758b1b454c1ac2eb055ea51345ad443d4..b31260e9f8abc6f568b87be7f711cc744e8c6c24 100644
--- a/civicrm/ext/search_kit/ang/crmSearchAdmin/displays/searchAdminDisplayTable.component.js
+++ b/civicrm/ext/search_kit/ang/crmSearchAdmin/displays/searchAdminDisplayTable.component.js
@@ -11,9 +11,10 @@
       parent: '^crmSearchAdminDisplay'
     },
     templateUrl: '~/crmSearchAdmin/displays/searchAdminDisplayTable.html',
-    controller: function($scope, searchMeta, formatForSelect2) {
+    controller: function($scope, searchMeta, formatForSelect2, crmUiHelp) {
       var ts = $scope.ts = CRM.ts('org.civicrm.search_kit'),
         ctrl = this;
+      $scope.hs = crmUiHelp({file: 'CRM/Search/Help/Display'});
 
       this.tableClasses = [
         {name: 'table', label: ts('Row Borders')},
diff --git a/civicrm/ext/search_kit/ang/crmSearchDisplay/Pager.html b/civicrm/ext/search_kit/ang/crmSearchDisplay/Pager.html
index 5c35f17c88fed291c97d491f6f5b7a5450d223ce..44e97e59eabc2ef6c0c78d2965dcac46562c5422 100644
--- a/civicrm/ext/search_kit/ang/crmSearchDisplay/Pager.html
+++ b/civicrm/ext/search_kit/ang/crmSearchDisplay/Pager.html
@@ -9,7 +9,7 @@
         boundary-links="true"
         total-items="$ctrl.rowCount"
         ng-model="$ctrl.page"
-        ng-change="$ctrl.getResults()"
+        ng-change="$ctrl.getResultsPronto()"
         items-per-page="$ctrl.limit"
         max-size="6"
         force-ellipses="true"
diff --git a/civicrm/ext/search_kit/ang/crmSearchDisplay/traits/searchDisplayBaseTrait.service.js b/civicrm/ext/search_kit/ang/crmSearchDisplay/traits/searchDisplayBaseTrait.service.js
index 94a92454b824a6d402b713cc5a3963436e4b00d6..f4543e8ea08cdf8c2b8bfc7339b6d06d54b576bd 100644
--- a/civicrm/ext/search_kit/ang/crmSearchDisplay/traits/searchDisplayBaseTrait.service.js
+++ b/civicrm/ext/search_kit/ang/crmSearchDisplay/traits/searchDisplayBaseTrait.service.js
@@ -27,11 +27,14 @@
           this.placeholders.push({});
         }
 
-        this.getResults = _.debounce(function() {
+        // _.debounce used here to trigger the initial search immediately but prevent subsequent launches within 300ms
+        this.getResultsPronto = _.debounce(ctrl.runSearch, 300, {leading: true, trailing: false});
+        // _.debounce used here to schedule a search if nothing else happens for 600ms: useful for auto-searching on typing
+        this.getResultsSoon = _.debounce(function() {
           $scope.$apply(function() {
             ctrl.runSearch();
           });
-        }, 800);
+        }, 600);
 
         // Update totalCount variable if used.
         // Integrations can pass in `total-count="somevar" to keep track of the number of results returned
@@ -53,7 +56,7 @@
         // Popup forms in this display or surrounding Afform trigger a refresh
         $element.closest('form').on('crmPopupFormSuccess', function() {
           ctrl.rowCount = null;
-          ctrl.getResults();
+          ctrl.getResultsPronto();
         });
 
         function onChangeFilters() {
@@ -63,7 +66,7 @@
             callback.call(ctrl);
           });
           if (!ctrl.settings.button) {
-            ctrl.getResults();
+            ctrl.getResultsSoon();
           }
         }
 
@@ -71,7 +74,7 @@
           ctrl.page = 1;
           // Only refresh if search has already been run
           if (ctrl.results) {
-            ctrl.getResults();
+            ctrl.getResultsSoon();
           }
         }
 
@@ -131,7 +134,7 @@
       onClickSearchButton: function() {
         this.rowCount = null;
         this.page = 1;
-        this.getResults();
+        this.getResultsPronto();
       },
 
       // Call SearchDisplay.run and update ctrl.results and ctrl.rowCount
diff --git a/civicrm/ext/search_kit/ang/crmSearchDisplay/traits/searchDisplaySortableTrait.service.js b/civicrm/ext/search_kit/ang/crmSearchDisplay/traits/searchDisplaySortableTrait.service.js
index c8f4faaa681dcfa4db3c2b004e08f7ae381a2ad3..47a1f6becee7c8eb304db87f90eee69aa7150a1f 100644
--- a/civicrm/ext/search_kit/ang/crmSearchDisplay/traits/searchDisplaySortableTrait.service.js
+++ b/civicrm/ext/search_kit/ang/crmSearchDisplay/traits/searchDisplaySortableTrait.service.js
@@ -37,7 +37,7 @@
           this.sort.push([col.key, dir]);
         }
         if (this.results || !this.settings.button) {
-          this.getResults();
+          this.getResultsPronto();
         }
       }
 
diff --git a/civicrm/ext/search_kit/info.xml b/civicrm/ext/search_kit/info.xml
index e4fab06e36d9ee3046960902f3609aa3a5d7034d..e426722fc9121cf007b2923e6dda84e5486ee6a7 100644
--- a/civicrm/ext/search_kit/info.xml
+++ b/civicrm/ext/search_kit/info.xml
@@ -15,13 +15,13 @@
     <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url>
   </urls>
   <releaseDate>2021-01-06</releaseDate>
-  <version>5.60.0</version>
+  <version>5.61.0</version>
   <develStage>stable</develStage>
   <tags>
     <tag>mgmt:required</tag>
   </tags>
   <compatibility>
-    <ver>5.60</ver>
+    <ver>5.61</ver>
   </compatibility>
   <comments>Click on the chat link above to discuss development, report problems or ask questions.</comments>
   <classloader>
diff --git a/civicrm/ext/search_kit/templates/CRM/Search/Help/Compose.hlp b/civicrm/ext/search_kit/templates/CRM/Search/Help/Compose.hlp
new file mode 100644
index 0000000000000000000000000000000000000000..7fde36fa944832bead1700992d3856671a7c3687
--- /dev/null
+++ b/civicrm/ext/search_kit/templates/CRM/Search/Help/Compose.hlp
@@ -0,0 +1,4 @@
+{htxt id="having"}
+  <p>{ts}Unlike the WHERE clause which filters data in the database, HAVING filters the results shown in the table. This allows filtering of aggregate data or field transformations.{/ts}</p>
+  <p>{ts}Note: Rewrite occurs after HAVING has been applied, so does not affect the HAVING filter.{/ts}</p>
+{/htxt}
diff --git a/civicrm/ext/search_kit/templates/CRM/Search/Help/Display.hlp b/civicrm/ext/search_kit/templates/CRM/Search/Help/Display.hlp
new file mode 100644
index 0000000000000000000000000000000000000000..528fb70cb4c4715bab8661eb16cb42b1914220c2
--- /dev/null
+++ b/civicrm/ext/search_kit/templates/CRM/Search/Help/Display.hlp
@@ -0,0 +1,7 @@
+{htxt id="rewrite"}
+  <p>{ts}Both search tokens and smarty tags are supported when rewriting fields.{/ts}</p>
+  <p>{ts}SMARTY conditions can be used by placing quotations around the values that should be evaluated.{/ts}</p>
+{/htxt}
+{htxt id="empty"}
+  <p>{ts}SMARTY conditions can be used by placing quotations around the values that should be evaluated.{/ts}</p>
+{/htxt}
diff --git a/civicrm/ext/sequentialcreditnotes/info.xml b/civicrm/ext/sequentialcreditnotes/info.xml
index d938f5f57288c534b2fcab9216ec289ff8fb6dbc..fe2de17f854d2b12d3479519dc2bcd8447bfc3db 100644
--- a/civicrm/ext/sequentialcreditnotes/info.xml
+++ b/civicrm/ext/sequentialcreditnotes/info.xml
@@ -15,13 +15,13 @@
     <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url>
   </urls>
   <releaseDate>2020-01-28</releaseDate>
-  <version>5.60.0</version>
+  <version>5.61.0</version>
   <tags>
     <tag>mgmt:hidden</tag>
   </tags>
   <develStage>stable</develStage>
   <compatibility>
-    <ver>5.60</ver>
+    <ver>5.61</ver>
   </compatibility>
   <mixins>
     <mixin>setting-php@1.0.0</mixin>
diff --git a/civicrm/release-notes.md b/civicrm/release-notes.md
index 301b09319089ac999bcd414279b405e402329c0e..1f57de19a3e83fe3c5b264e7bf6dd92013e8ce94 100644
--- a/civicrm/release-notes.md
+++ b/civicrm/release-notes.md
@@ -15,6 +15,17 @@ Other resources for identifying changes are:
     * https://github.com/civicrm/civicrm-joomla
     * https://github.com/civicrm/civicrm-wordpress
 
+## CiviCRM 5.61.0
+
+Released May 3, 2023
+
+- **[Synopsis](release-notes/5.61.0.md#synopsis)**
+- **[Features](release-notes/5.61.0.md#features)**
+- **[Bugs resolved](release-notes/5.61.0.md#bugs)**
+- **[Miscellany](release-notes/5.61.0.md#misc)**
+- **[Credits](release-notes/5.61.0.md#credits)**
+- **[Feedback](release-notes/5.61.0.md#feedback)**
+
 ## CiviCRM 5.60.0
 
 Released April 5, 2023
diff --git a/civicrm/release-notes/5.61.0.md b/civicrm/release-notes/5.61.0.md
new file mode 100644
index 0000000000000000000000000000000000000000..6d346dd12c0a7a4db594ce502dd67d09b04d8b04
--- /dev/null
+++ b/civicrm/release-notes/5.61.0.md
@@ -0,0 +1,929 @@
+# CiviCRM 5.61.0
+
+Released May 3, 2023
+
+- **[Synopsis](#synopsis)**
+- **[Features](#features)**
+- **[Bugs resolved](#bugs)**
+- **[Miscellany](#misc)**
+- **[Credits](#credits)**
+- **[Feedback](#feedback)**
+
+## <a name="synopsis"></a>Synopsis
+
+| *Does this version...?*                                         |         |
+|:--------------------------------------------------------------- |:-------:|
+| Fix security vulnerabilities?                                   |   no    |
+| **Change the database schema?**                                 | **yes** |
+| **Alter the API?**                                              | **yes** |
+| Require attention to configuration options?                     |   no    |
+| Fix problems installing or upgrading to a previous version?     |   no    |
+| **Introduce features?**                                         | **yes** |
+| **Fix bugs?**                                                   | **yes** |
+
+## <a name="features"></a>Features
+
+### Core CiviCRM
+
+- **Add template support for Imports
+  ([dev/core#4130](https://lab.civicrm.org/dev/core/-/issues/4130):
+  [25808](https://github.com/civicrm/civicrm-core/pull/25808))**
+
+  This provides a nice-to-have functionality for non-Civi-Import imports - ie
+  the import can store details from the initial DataSource screen - anyone who
+  always has to remember to save dates will appreciate that. In addition for
+  Civi-import imports it can store more nuanced defaults for Civi-Import (which
+  works on the Contribution Import).
+
+- **Define interfaces for interacting with newly cleaned up import code
+  (Work Towards [dev/core#3514](https://lab.civicrm.org/dev/core/-/issues/3514):
+  [25879](https://github.com/civicrm/civicrm-core/pull/25879))**
+
+  Defines hook to alter data once it has been mapped but before work is done on
+  it.
+
+- **Civi-Import - Add Template search
+  ([25939](https://github.com/civicrm/civicrm-core/pull/25939) and
+  [25957](https://github.com/civicrm/civicrm-core/pull/25957))**
+
+  Adds a Civi Import Template Search.
+
+- **Add links to search kits to import preview screen, when Civi-Import is
+  enabled ([25816](https://github.com/civicrm/civicrm-core/pull/25816))**
+
+  Adds links to SearchKit user interface to the import screens when Civi-Import
+  is enabled.
+
+- **Civi-Import - improvements to the search display for imported rows
+  ([25977](https://github.com/civicrm/civicrm-core/pull/25977))**
+
+  Improves the Civi-Import user experience by disabling edit in place for
+  imported rows and reordering the contribution id and status message columns.
+
+- **Import data source Re-use already uploaded data, optionally on use of 'back'
+  button ([25787](https://github.com/civicrm/civicrm-core/pull/25787))**
+
+  Improves user experience when importing data by storing the uploaded file so
+  you do not have to upload it again if you go back.
+
+- **Add handling of `usage` to `DAO` generator
+  ([25874](https://github.com/civicrm/civicrm-core/pull/25874) and
+  [25934](https://github.com/civicrm/civicrm-core/pull/25934))**
+
+  Adds handling of usage to DAO generator.
+
+- **Afform - Support repeatable relationships
+  ([25175](https://github.com/civicrm/civicrm-core/pull/25175))**
+
+  Supports creating multiple relationships at once using the "Repeatable"
+  feature in the relationship fields.
+
+- **Afform - Allow contact created/modified date fields to be used as filters
+  ([25824](https://github.com/civicrm/civicrm-core/pull/25824))**
+
+  Makes the contact created/modified date fields available as filter options for
+  relevant Afforms.
+
+- **Afform - Show file field values for existing entities
+  ([25294](https://github.com/civicrm/civicrm-core/pull/25294))**
+
+  Improves the file-upload interface for existing entities.
+
+- **Search kit - address issues
+  ([dev/core#4153](https://lab.civicrm.org/dev/core/-/issues/4153):
+  [25718](https://github.com/civicrm/civicrm-core/pull/25718))**
+
+  Extends the address fields available for the PrimaryContact on search.
+
+- **SearchKit - POC help text
+  ([24819](https://github.com/civicrm/civicrm-core/pull/24819))**
+
+  Improves user experience by adding some Help tooltips to SearchKit (which also
+  serve as examples for developers).
+
+- **SearchKit - Handle comma-separated values passed from Afform url
+  ([25827](https://github.com/civicrm/civicrm-core/pull/25827))**
+
+  Allows multiple filter values to be passed through the url to a SearchKit
+  display.
+
+- **SearchKit - Add select options for MONTH date filter
+  ([25739](https://github.com/civicrm/civicrm-core/pull/25739))**
+
+  Makes the "Month Only" field transformation in SearchKit into a dropdown
+  select.
+
+- **SearchKit - Add next_birthday calc field
+  ([25740](https://github.com/civicrm/civicrm-core/pull/25740))**
+
+  Adds a Next Birthday Calc field to Searchkit.
+
+- **Speed up SearchKit results loading by 800ms
+  ([25408](https://github.com/civicrm/civicrm-core/pull/25408))**
+
+  Improves loading times for SearchKit results.
+
+- **SearchKit - Pass entire record into `checkAccess`
+  ([25969](https://github.com/civicrm/civicrm-core/pull/25969))**
+
+   Makes SearchKit more efficient.
+
+- **Add new `\Civi\Exception\DBQueryException` & throw that rather than a
+  `PEAR_Exception`
+  ([25634](https://github.com/civicrm/civicrm-core/pull/25634))**
+
+  Improves logging of database query issues.
+
+- **Log sending of Scheduled Reminders
+  ([25933](https://github.com/civicrm/civicrm-core/pull/25933))**
+
+  Adds a log line to know which was the last Scheduled Reminder that was being
+  processed.
+
+- **Manage groups - add dedicated url for edit/delete group
+  ([25955](https://github.com/civicrm/civicrm-core/pull/25955))**
+
+  In preparation for a "manage groups" screen in the Admin UI (see #25899) this
+  updates the url for editing and deleting groups so it does not conflict with
+  the url for browsing groups.
+
+- **Extend Authx functionality to support validation of externally generated
+  JWTs (Work Towards
+  [dev/core#3133](https://lab.civicrm.org/dev/core/-/issues/3133):
+  [25952](https://github.com/civicrm/civicrm-core/pull/25952))**
+
+  Adds support for using externally generated JWTs e.g. by Auth0 to authenticate
+  users using Authx
+
+- **add locale param to smarty crmMoney()
+  ([25726](https://github.com/civicrm/civicrm-core/pull/25726))**
+
+  Adds new (optional) locale parameter to smarty function crmMoney().
+
+- **AutoClean - Optionally allow explicit cleanup
+  ([25858](https://github.com/civicrm/civicrm-core/pull/25858))**
+
+  Allows some slightly different auto clean code-patterns that will give the
+  same functionality.
+
+### CiviContribute
+
+- **PaymentProcessor - Enter title instead of name on form, call hooks
+  ([25873](https://github.com/civicrm/civicrm-core/pull/25873))**
+
+  Adds a new "Frontend title" to Payment Processors for end-users, and redefines
+  "Title" as a backend field for admins.
+
+### CiviEvent
+
+- **FormBuilder: Can't set participant status type
+  ([dev/core#4163](https://lab.civicrm.org/dev/core/-/issues/4163):
+  [25750](https://github.com/civicrm/civicrm-core/pull/25750))**
+
+  Adds the `ParticipantStatusType` entity to APIv4.
+
+- ** Allow search on participant id
+  ([dev/core#4176](https://lab.civicrm.org/dev/core/-/issues/4176):
+  [25780](https://github.com/civicrm/civicrm-core/pull/25780))**
+
+  Adds a Participant ID search field to the Participant Search.
+
+### CiviPledge
+
+- **Add support for pledge tokens
+  ([dev/core#4079](https://lab.civicrm.org/dev/core/-/issues/4079):
+  [25851](https://github.com/civicrm/civicrm-core/pull/25851))**
+
+  Adds tokens for pledges.
+
+### Drupal Integration
+
+- **Expose "created date" to views
+  ([569](https://github.com/civicrm/civicrm-drupal/pull/569))**
+
+  Allows date formatting options on the `created date` in views.
+
+## <a name="bugs"></a>Bugs resolved
+
+### Core CiviCRM
+
+- **Importing "No" values to Boolean field results in empty
+  ([dev/core#3937](https://lab.civicrm.org/dev/core/-/issues/3937):
+  [25900](https://github.com/civicrm/civicrm-core/pull/25900))**
+
+- **is_drupal: move functionality that calls this deprecated variable to System
+  classes  ([dev/core#4127](https://lab.civicrm.org/dev/core/-/issues/4127):
+  [25574](https://github.com/civicrm/civicrm-core/pull/25574))**
+
+  Move standalone profile modification to userSystem.
+
+- **Possible issue with Token processor and Smarty
+  (Work Towards [dev/core#4137](https://lab.civicrm.org/dev/core/-/issues/4137):
+  [25727](https://github.com/civicrm/civicrm-core/pull/25727))**
+
+  Ensures tokens filters are HTML-sensitive.
+
+- **Notice on `isDuplicate` on profile form
+  ([dev/core#4144](https://lab.civicrm.org/dev/core/-/issues/4144):
+  [25657](https://github.com/civicrm/civicrm-core/pull/25657))**
+
+  Fixes a smarty notice on isDuplicate.
+
+- **User editable Message Templates, the Contact Action: Send an Email and the
+  Contact Action: Print Merge/Document cannot use any Smarty Tokens with the
+  crmDate function because CKEditor 4 unnecessarily HTML encodes single quotes
+  (') and double quotes (")
+  ([dev/core#4149](https://lab.civicrm.org/dev/core/-/issues/4149):
+  [25681](https://github.com/civicrm/civicrm-core/pull/25681))**
+
+  Changes CKEditor 4 default to not encode HTML entities by default which breaks
+  Smarty syntax and prevents use of crmDate function
+
+- **Data integrity issue: Some number fields change their values during data
+  entry ([dev/core#4152](https://lab.civicrm.org/dev/core/-/issues/4152):
+  [25876](https://github.com/civicrm/civicrm-core/pull/25876))**
+
+  Fixes custom data code to not cast to a float.
+
+- **Import search authorization issues
+  ([dev/core#4184](https://lab.civicrm.org/dev/core/-/issues/4184):
+  [25811](https://github.com/civicrm/civicrm-core/pull/25811))**
+
+  Permits access to template user jobs (imports).
+
+- **phpunit 9 compatibility
+  (Work Towards [dev/core#4188](https://lab.civicrm.org/dev/core/-/issues/4188):
+  [25947](https://github.com/civicrm/civicrm-core/pull/25947),
+  [25946](https://github.com/civicrm/civicrm-core/pull/25946),
+  [25949](https://github.com/civicrm/civicrm-core/pull/25949) and
+  [25956](https://github.com/civicrm/civicrm-core/pull/25956))**
+
+  Works towards phpunit 9 compatiablity by:
+
+    - Updating CRM tests
+    - Updating APIv3 tests
+    - Updating APIv4 tests
+    - Porting TAP printer
+    - making the phpunit.xml.dist file compatible with phpunit8 + phpunit9
+
+- **Cannot set Entityref fields via APIv4 Explorer - on multi-value data
+  ([dev/core#4240](https://lab.civicrm.org/dev/core/-/issues/4240):
+  [26067](https://github.com/civicrm/civicrm-core/pull/26067))**
+
+- **blog warning: pass an array for included groups Caller:
+  CRM_ACL_API::groupPermission Array ( [civi.tag] => deprecated )
+  ([dev/core#4249](https://lab.civicrm.org/dev/core/-/issues/4249):
+  [26099](https://github.com/civicrm/civicrm-core/pull/26099))**
+
+  Ensures that no deprecation logging occurs from groupPermission having
+  includeGroups as NULL rather than an empty array.
+
+- **[Backport] Fix dedupe checking in afform for anonymous users
+  ([25999](https://github.com/civicrm/civicrm-core/pull/25999))**
+
+- **Afform - Required files causes form to never validate
+  ([dev/core#4121](https://lab.civicrm.org/dev/core/-/issues/4121):
+  [25666](https://github.com/civicrm/civicrm-core/pull/25666))**
+
+- **Afform - set multi-select values from url
+  ([25832](https://github.com/civicrm/civicrm-core/pull/25832))**
+
+  Ensures that default values are set correctly for multi-valued fields
+
+- **Afform - Fix showing default values for EntityRef fields
+  ([26008](https://github.com/civicrm/civicrm-core/pull/26008))**
+
+- **Afform: Fix dedupe rules for anonymous users
+  ([25461](https://github.com/civicrm/civicrm-core/pull/25461))**
+
+- **Api4 - Prevent developer error mixing up `addValue` with `addWhere`
+  ([25905](https://github.com/civicrm/civicrm-core/pull/25905))**
+
+  Adds a sanity check in the api to prevent the common mistake of
+  accidentally using addValue as if it takes 3 arguments like addWhere.
+
+- **APIv4 - Show actions as deprecated in the Explorer
+  ([25402](https://github.com/civicrm/civicrm-core/pull/25402))**
+
+- **APIv4 - Support `match` in replaceAction
+  ([25770](https://github.com/civicrm/civicrm-core/pull/25770))**
+
+  Allows the `replaceAction` to support non-id matching, the same way as the
+  `saveAction` does.
+
+- **Remove an attention-span's worth of cvs info
+  ([26012](https://github.com/civicrm/civicrm-core/pull/26012))**
+
+- **Send SMS: fix invalid htxt tag error
+  ([26010](https://github.com/civicrm/civicrm-core/pull/26010))**
+
+- **Clarify `entityID` types in Merger class
+  ([26003](https://github.com/civicrm/civicrm-core/pull/26003))**
+
+- **When importing invalid campaigns they pass validation (only to fail on
+  import) ([25988](https://github.com/civicrm/civicrm-core/pull/25988))**
+
+- **Allow to disable an invalid relationship (eg. contact subtype was changed so
+  no longer valid)
+  ([25647](https://github.com/civicrm/civicrm-core/pull/25647))**
+
+- **Duplicate logging not needed for PEAR_Errors anymore
+  ([25953](https://github.com/civicrm/civicrm-core/pull/25953))**
+
+- **Flush cache that holds schema links information when saving UserJob
+  ([25959](https://github.com/civicrm/civicrm-core/pull/25959))**
+
+- **Check presence of field, rather than extra smarty variable for whether to
+  display the field
+  ([25917](https://github.com/civicrm/civicrm-core/pull/25917))**
+
+- **Note API - Fix viewing, joining to, and updating Notes
+  ([25672](https://github.com/civicrm/civicrm-core/pull/25672))**
+
+- **civicrm_cache - Replace wonky index
+  ([25885](https://github.com/civicrm/civicrm-core/pull/25885))**
+
+- **Remove preferred_mail_format from tokens
+  ([25883](https://github.com/civicrm/civicrm-core/pull/25883))**
+
+- **SchemaHandler - Add IF EXISTS to dropTable function
+  ([25881](https://github.com/civicrm/civicrm-core/pull/25881))**
+
+  Prevents errors in the same way `dropColumn` does by checking that it exists
+  before dropping.
+
+- **Make `Finder::tableQuery` private, after universe search
+  ([25859](https://github.com/civicrm/civicrm-core/pull/25859))**
+
+- **WorkflowMessage - Enable strict parsing of annotations
+  ([25818](https://github.com/civicrm/civicrm-core/pull/25818))**
+
+- **Skip adding script when it won't have anything to run on
+  ([25882](https://github.com/civicrm/civicrm-core/pull/25882))**
+
+- **Logging ReportDetail: update breadcrumb to use CiviCRM Home for
+  disambiguation with the "Home" Location Type translation.
+  ([25805](https://github.com/civicrm/civicrm-core/pull/25805))**
+
+- **Relationship Cache check
+  ([25751](https://github.com/civicrm/civicrm-core/pull/25751))**
+
+- **Change title of is_primary fields consistent with Email
+  ([25700](https://github.com/civicrm/civicrm-core/pull/25700))**
+
+- **Unconditionally assign `quickConfig`, add helper for `getPriceSetID`
+  ([25719](https://github.com/civicrm/civicrm-core/pull/25719))**
+
+- **Fix dedupe finder performance issue on looking up table size
+  ([25527](https://github.com/civicrm/civicrm-core/pull/25527))**
+
+- **don't show USPS warning when USPS lookup disabled
+  ([25736](https://github.com/civicrm/civicrm-core/pull/25736))**
+
+- **field separator is a required field
+  ([25738](https://github.com/civicrm/civicrm-core/pull/25738))**
+
+- **Use label, where present for import field labels
+  ([25991](https://github.com/civicrm/civicrm-core/pull/25991))**
+
+- **Show friendlier labels when Civi-Import enabled
+  ([25896](https://github.com/civicrm/civicrm-core/pull/25896))**
+
+- **Import link - fix search Import SearchDisplays to link to the created contact
+  ([25712](https://github.com/civicrm/civicrm-core/pull/25712))**
+
+- **Hyphenate Civi-Import in the title/label
+  ([25474](https://github.com/civicrm/civicrm-core/pull/25474))**
+
+- **Filter 'My imports' to only show non-expired
+  ([25711](https://github.com/civicrm/civicrm-core/pull/25711))**
+
+- **Update Import fix to leverage the new exception
+  ([25725](https://github.com/civicrm/civicrm-core/pull/25725))**
+
+- **Fix typing, comments in new StandardFilters class
+  ([25730](https://github.com/civicrm/civicrm-core/pull/25730))**
+
+- **Minor fixes to Civi-Import screen, populating defaults, missing `ts`
+  ([25980](https://github.com/civicrm/civicrm-core/pull/25980))**
+
+- **Fix enotice when using Civi-import
+  ([25979](https://github.com/civicrm/civicrm-core/pull/25979))**
+  
+- **Fix cache clearing when import table is changed
+  ([25774](https://github.com/civicrm/civicrm-core/pull/25774))**
+
+- **Worldregion - For API-entity-naming, prefer "WorldRegion"
+  ([25713](https://github.com/civicrm/civicrm-core/pull/25713))**
+
+- **Pager missing on Aggregate By Relationship civireport
+  ([25721](https://github.com/civicrm/civicrm-core/pull/25721))**
+
+- **Fix profile search listings columns are sometimes blank.
+  ([25782](https://github.com/civicrm/civicrm-core/pull/25782))**
+
+- **Do not report missing triggers if the user cannot check them
+  ([25820](https://github.com/civicrm/civicrm-core/pull/25820))**
+
+- **don't create tagset markup if there's no tagset
+  ([25884](https://github.com/civicrm/civicrm-core/pull/25884))**
+
+- **ensure delays from transactions don't cause cache race condition
+  ([25673](https://github.com/civicrm/civicrm-core/pull/25673))**
+
+- **Fix bug in just-merged upgrade code
+  ([25940](https://github.com/civicrm/civicrm-core/pull/25940))**
+
+- **Fix really annoying notice on mispelt variable name `$isCheked`
+  ([25759](https://github.com/civicrm/civicrm-core/pull/25759))**
+
+- **Don't crash API4 if pseudoconstant lookups return nothing
+  ([25028](https://github.com/civicrm/civicrm-core/pull/25028))**
+
+- **Php8.2 stop accessing undefined form Property isQuickConfig in
+  `PriceField:addQuickFormElement`
+  ([25689](https://github.com/civicrm/civicrm-core/pull/25689))**
+
+- **Avoid type error in CRM_Core_Form on php 8
+  ([25853](https://github.com/civicrm/civicrm-core/pull/25853))**
+
+- **CiviReport - Remove duplicate external identifier key in contact fields
+  array, reduce notices
+  ([25454](https://github.com/civicrm/civicrm-core/pull/25454))**
+
+- **Stop passing `$this` as `$form` to previously shared, non-static, function
+  ([25923](https://github.com/civicrm/civicrm-core/pull/25923))**
+
+- **Remove un-used, un-displayed button
+  ([25841](https://github.com/civicrm/civicrm-core/pull/25841))**
+
+- **Avoid potentially undefined var
+  ([26001](https://github.com/civicrm/civicrm-core/pull/26001))**
+
+- **Smarty notice fix on Merge
+  ([25772](https://github.com/civicrm/civicrm-core/pull/25772))**
+
+- **APIv4 - Don't link to non-existent API entities
+  ([25743](https://github.com/civicrm/civicrm-core/pull/25743))**
+
+- **Fix handling of employer during contact-merge ([dev/core#4156](https://lab.civicrm.org/dev/core/-/issues/4156): [#26015](https://github.com/civicrm/civicrm-core/pull/26015))**
+
+- **Contact with relationship fails to update when CiviMember is disabled ([dev/core#4225](https://lab.civicrm.org/dev/core/-/issues/4225):
+  [#26140](https://github.com/civicrm/civicrm-core/pull/26140))**
+
+- **Importer does not ""fill"" phone/email ([dev/core#4269](https://lab.civicrm.org/dev/core/-/issues/4269): [#26146](https://github.com/civicrm/civicrm-core/pull/26146))**
+
+- **Importer - Ensure mapping ID is set in all places using import templates ([#26108](https://github.com/civicrm/civicrm-core/pull/26108))**
+
+### CiviCampaign
+
+- **Campaign - Make name index unique
+  ([25995](https://github.com/civicrm/civicrm-core/pull/25995))**
+
+### CiviCase
+
+- **Civicase dashboard not displaying recently performed activities
+  ([dev/core#3804](https://lab.civicrm.org/dev/core/-/issues/3804):
+  [25954](https://github.com/civicrm/civicrm-core/pull/25954))**
+
+- **Case start_date/end_date are not datetime
+  ([25803](https://github.com/civicrm/civicrm-core/pull/25803))**
+
+### CiviContribute
+
+- **Fix bug in tax calculation when recurring overrides with a different value
+  ([25707](https://github.com/civicrm/civicrm-core/pull/25707))**
+
+- **🥚 Payment API creates Activity with subject: "$x Offline Payment for
+  Contribution" even when a payment was captured online
+  ([25997](https://github.com/civicrm/civicrm-core/pull/25997))**
+
+- **Direct Debit agreement is always/never shown depending on which payment
+  processor is the default
+  ([dev/core#4204](https://lab.civicrm.org/dev/core/-/issues/4204):
+  ([25918](https://github.com/civicrm/civicrm-core/pull/25918))**
+
+  Ensures the Payment Agreement of the selected processor is displayed (instead
+  of the payment agreement of the default payment processor).
+
+- **only update `contributionRecur` when `templateContribution` is updated IF it
+  is actively marked as such
+  ([dev/core#4000](https://lab.civicrm.org/dev/core/-/issues/4000):
+  [25776](https://github.com/civicrm/civicrm-core/pull/25776))**
+
+- **Past campaigns are not to be assigned via batch update/update contributions
+  ([dev/core#4124](https://lab.civicrm.org/dev/core/-/issues/4124):
+  [25687](https://github.com/civicrm/civicrm-core/pull/25687))**
+
+- **Fix import contribution url
+  ([25895](https://github.com/civicrm/civicrm-core/pull/25895),
+  [25907](https://github.com/civicrm/civicrm-core/pull/25907) and
+  [25962](https://github.com/civicrm/civicrm-core/pull/25962))**
+
+  Standardizes the contribution import url.
+
+- **Update Contribution Import to use apiv4 field names, prior to adding hooks
+  ([25886](https://github.com/civicrm/civicrm-core/pull/25886))**
+
+- **APiv4 explorer - can't enter `contribution.contribution_recur_id`
+  ([dev/core#4175](https://lab.civicrm.org/dev/core/-/issues/4175):
+  [25804](https://github.com/civicrm/civicrm-core/pull/25804))**
+
+### CiviMember
+
+- **Fatal error on membership batch data entry with sending receipt
+  ([dev/core#4247](https://lab.civicrm.org/dev/core/-/issues/4247):
+  [26085](https://github.com/civicrm/civicrm-core/pull/26085))**
+
+- **Countable error when creating a membership batch (if org ID is not 1)
+  ([dev/core#4200](https://lab.civicrm.org/dev/core/-/issues/4200):
+  [25906](https://github.com/civicrm/civicrm-core/pull/25906))**
+
+- **🪥 Fix inconsistent terminology used when referring to Member Since,
+  Membership Start Date and Membership Expiration Date
+  ([24735](https://github.com/civicrm/civicrm-core/pull/24735) and
+  [25761](https://github.com/civicrm/civicrm-core/pull/25761))**
+
+- **Fix unreleased regression on Membership form validation ([dev/core#4272](https://lab.civicrm.org/dev/core/-/issues/4272): [#26141](https://github.com/civicrm/civicrm-core/pull/26141))**
+
+### Drupal Integration
+
+- **cv command fails on CiviCRM 5.48.2 on Drupal 9
+  ([dev/core#3438](https://lab.civicrm.org/dev/core/-/issues/3438):
+  [25728](https://github.com/civicrm/civicrm-core/pull/25728))**
+
+  Prevents `cv` fatal error if logging before CMS bootstrap.
+
+- **Use the backend theme when upgrading
+  ([665](https://github.com/civicrm/civicrm-drupal/pull/665) and
+  [81](https://github.com/civicrm/civicrm-drupal-8/pull/81))**
+
+## <a name="misc"></a>Miscellany
+
+- **Add getter for dedupeRuleGroupID
+  ([25894](https://github.com/civicrm/civicrm-core/pull/25894))**
+
+- **Move getSubmittedValues to `CRM_Core_Form`
+  ([25877](https://github.com/civicrm/civicrm-core/pull/25877))**
+
+- **Extract `isMembershipPriceSet` (`useForMember`)
+  ([25754](https://github.com/civicrm/civicrm-core/pull/25754))**
+
+- **CustomFields - drop unused 'javascript' column
+  ([25958](https://github.com/civicrm/civicrm-core/pull/25958))**
+
+- **UpdateConfigBackend: use api4 to flush the cache
+  ([25913](https://github.com/civicrm/civicrm-core/pull/25913))**
+
+- **Use API4 to create 'Assign Case Role' activity
+  ([25880](https://github.com/civicrm/civicrm-core/pull/25880))**
+
+- **Demolish the factory 🏭💥
+  ([25975](https://github.com/civicrm/civicrm-core/pull/25975))**
+
+- **BAO - deprecate create for writeRecord: SavedSearch
+  ([25973](https://github.com/civicrm/civicrm-core/pull/25973))**
+
+- **BAO - Deprecate `setIsActive` BAO functions
+  ([25976](https://github.com/civicrm/civicrm-core/pull/25976))**
+
+- **BAO - deprecate create for writeRecord: SubscriptionHistory
+  ([25974](https://github.com/civicrm/civicrm-core/pull/25974))**
+
+- **BAO - deprecate create for writeRecord: ACL
+  ([25970](https://github.com/civicrm/civicrm-core/pull/25970))**
+
+- **BAO - deprecate create for writeRecord: Batch
+  ([25972](https://github.com/civicrm/civicrm-core/pull/25972))**
+
+- **Updates pear/pear-core-minimal and guzzlehttp/psr7
+  ([26082](https://github.com/civicrm/civicrm-core/pull/26082))**
+
+- **Deprecate CRM_Utils_Hook::$nullObject
+  ([25901](https://github.com/civicrm/civicrm-core/pull/25901))**
+
+- **Remove 2021 noisily deprecated pdfCommon function
+  ([25887](https://github.com/civicrm/civicrm-core/pull/25887))**
+
+- **APIv4 - Deprecate unnecessary constants
+  ([25781](https://github.com/civicrm/civicrm-core/pull/25781))**
+
+- **BAO - Noisily deprecate and stop using deprecated functions
+  ([25677](https://github.com/civicrm/civicrm-core/pull/25677))**
+
+- **Remove dependence on cache/integration-tests
+  ([25796](https://github.com/civicrm/civicrm-core/pull/25796))**
+
+- **Remove function deprecated noisly in 2020
+  ([25768](https://github.com/civicrm/civicrm-core/pull/25768))**
+
+- **All your base are deleted
+  ([25773](https://github.com/civicrm/civicrm-core/pull/25773))**
+
+- **More deprecations of `del`
+  ([25767](https://github.com/civicrm/civicrm-core/pull/25767))**
+
+- **Consolidate `DataSource.tpl`
+  ([25771](https://github.com/civicrm/civicrm-core/pull/25771))**
+
+- **Remove unused var
+  ([25857](https://github.com/civicrm/civicrm-core/pull/25857))**
+
+- **Remove remaining non-variable variables
+  ([25752](https://github.com/civicrm/civicrm-core/pull/25752))**
+
+- **Deprecate pledge_payment::del
+  ([25763](https://github.com/civicrm/civicrm-core/pull/25763))**
+
+- **Remove deprecated calls from contribute, financial, remove ManagePremiums
+  deprecated BAO ([25766](https://github.com/civicrm/civicrm-core/pull/25766))**
+
+- **Deprecations on del functions
+  ([25764](https://github.com/civicrm/civicrm-core/pull/25764))**
+
+- **Deprecate relationship::del  
+  ([25765](https://github.com/civicrm/civicrm-core/pull/25765))**
+
+- **Noisily deprecate unused function
+  ([25762](https://github.com/civicrm/civicrm-core/pull/25762))**
+
+- **Code cleanup: Use `parent::buildForm` in contact import dataSource screen
+  ([25757](https://github.com/civicrm/civicrm-core/pull/25757))**
+
+- **Stop passing invariable variables to private function
+  ([25676](https://github.com/civicrm/civicrm-core/pull/25676))**
+
+- **Remove upgrade custom field handling from Dedupe code - previously shared
+  function ([26004](https://github.com/civicrm/civicrm-core/pull/26004))**
+
+- **Activity BAO - Remove unused classes/functions
+  ([25971](https://github.com/civicrm/civicrm-core/pull/25971))**
+
+- **Deprecated `buildSavedMappingFields` noisily
+  ([25842](https://github.com/civicrm/civicrm-core/pull/25842))**
+
+- **Code cleanup on aisle Hook ([25903](https://github.com/civicrm/civicrm-core/pull/25903))**
+
+- **Deprecated code removal
+  ([25710](https://github.com/civicrm/civicrm-core/pull/25710))**
+
+- **Add deprecations to unreachable code in previously shared function
+  ([25779](https://github.com/civicrm/civicrm-core/pull/25779))**
+
+- **Stop using deprecated methods, `ufField::del`
+  ([25747](https://github.com/civicrm/civicrm-core/pull/25747))**
+
+- **Remove some deprecated del calls
+  ([25746](https://github.com/civicrm/civicrm-core/pull/25746))**
+
+- **Remove noisily deprecated code
+  ([25965](https://github.com/civicrm/civicrm-core/pull/25965))**
+
+- **Remove unvariable variables `toReturn` & `subName` from `Merger`
+  ([25745](https://github.com/civicrm/civicrm-core/pull/25745))**
+
+- **Remove do-nothing noisily deprecated formatting code
+  ([25878](https://github.com/civicrm/civicrm-core/pull/25878))**
+
+- **Post split code cleanup
+  ([25862](https://github.com/civicrm/civicrm-core/pull/25862))**
+
+- **Switch out the switch
+  ([25868](https://github.com/civicrm/civicrm-core/pull/25868))**
+
+- **set-version.php - Fix warning on PHP 8.1
+  ([25786](https://github.com/civicrm/civicrm-core/pull/25786))**
+
+- **[Test][Php8.2] Fix undeclared properties & other housekeeping
+  ([25852](https://github.com/civicrm/civicrm-core/pull/25852))**
+
+- **[php8.2] Create getter for `renewalMembershipID`, remove if
+  ([25833](https://github.com/civicrm/civicrm-core/pull/25833))**
+
+- **[PHP8.2] Declare outputHandler property in reports
+  ([25875](https://github.com/civicrm/civicrm-core/pull/25875))**
+
+- **PHP8 - Update symfony/var-dumper
+  ([25850](https://github.com/civicrm/civicrm-core/pull/25850))**
+
+- **[PHP8.2] declare deleteMessage on `entityFormTrait`
+  ([25802](https://github.com/civicrm/civicrm-core/pull/25802))**
+
+- **[PHP8.2] Remove unused setting on undeclared properties
+  ([25831](https://github.com/civicrm/civicrm-core/pull/25831))**
+
+- **[PHP8.2] Remove unused variabls from
+  `Member_Form_Task_PDFLetter::postProcessMembers`
+  ([25830](https://github.com/civicrm/civicrm-core/pull/25830))**
+
+- **[REF][PHP8.2] Tidy up properties in api_v3_CaseContactTest
+  ([25809](https://github.com/civicrm/civicrm-core/pull/25809))**
+
+- **[PHP8.2] (Ref) Remove unused dynamic property in report form class
+  ([25812](https://github.com/civicrm/civicrm-core/pull/25812))**
+
+- **Php8.2 fixes in report `addToDeveloperTab` function
+  ([25800](https://github.com/civicrm/civicrm-core/pull/25800))**
+
+- **Php8.2 fixes in unit tests
+  ([25797](https://github.com/civicrm/civicrm-core/pull/25797))**
+
+- **[REF][PHP8.2] Refactor use of pageParams properties
+  ([25795](https://github.com/civicrm/civicrm-core/pull/25795))**
+
+- **[REF][PHP8.2] Refactor api_v3_ImTest with primary aim of improving PHP 8.2
+  compatiability ([25792](https://github.com/civicrm/civicrm-core/pull/25792))**
+
+- **[REF][PHP8.2] Refactor api_v3_PriceFieldValueTest with primary aim of
+  improving PHP 8.2 compatiability
+  ([25793](https://github.com/civicrm/civicrm-core/pull/25793))**
+
+- **(REF) Remove unused onPopupClose variables
+  ([25794](https://github.com/civicrm/civicrm-core/pull/25794))**
+
+- **[REF][PHP8.2] Fix use of self in callables deprecation
+  ([25791](https://github.com/civicrm/civicrm-core/pull/25791))**
+
+- **[REF][PHP8.2] Declare property on CRM_Core_ErrorTest
+  ([25788](https://github.com/civicrm/civicrm-core/pull/25788))**
+
+- **[REF][PHP8.2] Declare property on CRM_Event_Import_Parser_ParticipantTest
+  ([25789](https://github.com/civicrm/civicrm-core/pull/25789))**
+
+- **[REF][PHP8.2] Declare property in CRM_Contact_Form_DedupeFind
+  ([25834](https://github.com/civicrm/civicrm-core/pull/25834))**
+
+- **[REF][PHP8.2] Don't use a property where a variable will do
+  (CRM_Contact_Page_View_Summary)
+  ([25828](https://github.com/civicrm/civicrm-core/pull/25828))**
+
+- **[REF][PHP8.2] Only set properties which exist within
+  ArrayFormatTrait->loadArray()
+  ([25790](https://github.com/civicrm/civicrm-core/pull/25790))**
+
+- **[REF] [php8.2] Remove unused parameters from
+  `Contribute_PDFLetter::buildContributionArray`
+  ([25829](https://github.com/civicrm/civicrm-core/pull/25829))**
+
+- **[REF][PHP8.2] Remove property which is no longer used
+  ([25889](https://github.com/civicrm/civicrm-core/pull/25889))**
+
+- **[REF][PHP8.2] Refactor api_v3_ParticipantPaymentTest
+  ([25864](https://github.com/civicrm/civicrm-core/pull/25864))**
+
+- **[REF][PHP8.2] Refactor getParticipantOrderParams to never write a dynamic
+  property ([25865](https://github.com/civicrm/civicrm-core/pull/25865))**
+
+- **[REF][PHP8.2] Get rid of dynamic properties in
+  CRM_Core_Payment_ProcessorFormTest
+  ([25844](https://github.com/civicrm/civicrm-core/pull/25844))**
+
+- **[REF][PHP8.2] Declare properties directly on CRM_Core_Form_EntityFormTrait
+  ([25926](https://github.com/civicrm/civicrm-core/pull/25926))**
+
+- **[REF][PHP8.2] Convert dynamic property into a variable
+  ([25925](https://github.com/civicrm/civicrm-core/pull/25925))**
+
+- **[REF][PHP8.2] Remove unused dyanamic property
+  ([25921](https://github.com/civicrm/civicrm-core/pull/25921))**
+
+- **[REF] Replace use of legacy `$dao->query()` with
+  `CRM_Core_DAO::executeQuery()`
+  ([25860](https://github.com/civicrm/civicrm-core/pull/25860))**
+
+- **[REF] Improve function signature for `retrieve()` in `PaypalProIPN` , add
+  test for when trxn_id is present
+  ([25749](https://github.com/civicrm/civicrm-core/pull/25749))**
+
+- **[REF] Fix issue where the strict typing was causing false notices to appear
+  in Config And Log
+  ([25814](https://github.com/civicrm/civicrm-core/pull/25814))**
+
+- **(REF) PHPUnit - Allow env-var to specify version
+  ([25836](https://github.com/civicrm/civicrm-core/pull/25836))**
+
+- **[REF] Simplify import preProcess
+  ([25869](https://github.com/civicrm/civicrm-core/pull/25869))**
+
+- **[REF] Minor code simplification - extract `getHighlightedFields` in
+  Contribution import `MapField`
+  ([25866](https://github.com/civicrm/civicrm-core/pull/25866))**
+
+- **[REF] Refactor location-related BAOs to use `writeRecord`
+  ([25944](https://github.com/civicrm/civicrm-core/pull/25944))**
+
+- **Refactor CRM_Core_BAO_Email to use DAO::writeRecord
+  ([25937](https://github.com/civicrm/civicrm-core/pull/25937))**
+
+- **[NFC] Test cleanup, prefer full form test flow
+  ([25928](https://github.com/civicrm/civicrm-core/pull/25928))**
+
+- **[NFC] Add metadata about import jobs to `MapField` form
+  ([25891](https://github.com/civicrm/civicrm-core/pull/25891))**
+
+- **[NFC] Remove some no-longer-used properties on Contribution import parser
+  ([25867](https://github.com/civicrm/civicrm-core/pull/25867))**
+
+- **[NFC] Don't have null values for required fields in Case test fixture
+  ([25983](https://github.com/civicrm/civicrm-core/pull/25983))**
+
+- **[NFC] Remove extraneous NULL
+  ([25941](https://github.com/civicrm/civicrm-core/pull/25941))**
+
+- **[NFC] hulk smash
+  ([25902](https://github.com/civicrm/civicrm-core/pull/25902))**
+
+- **[NFC] Fix PHP8.2 issues in the Mailing Contact Test
+  ([25783](https://github.com/civicrm/civicrm-core/pull/25783))**
+
+- **[NFC] Superficial cleanup in test class
+  ([25708](https://github.com/civicrm/civicrm-core/pull/25708))**
+
+- **[NFC] cleanup in `ChangeFeeSelectionTest`
+  ([25798](https://github.com/civicrm/civicrm-core/pull/25798))**
+
+- **[NFC] Minor tidy up in `MappingTest`
+  ([25854](https://github.com/civicrm/civicrm-core/pull/25854))**
+
+- **Remove references to deprecated `preferred_mail_format` in tests
+  ([25890](https://github.com/civicrm/civicrm-core/pull/25890))**
+
+- **[PHP8.2] Clean up in `apiv3_ParticipantTest` with view to 8.2 compatibility
+  ([25801](https://github.com/civicrm/civicrm-core/pull/25801))**
+
+- **[PHP8.2] [Test] Remove use of (often undeclared) property `_invoiceID` in
+  tests & one instance of `paymentProcessorID2`
+  ([25799](https://github.com/civicrm/civicrm-core/pull/25799))**
+
+- **[Test] Strictness fixes - `CiviUntTestBaseClass`
+  ([26011](https://github.com/civicrm/civicrm-core/pull/26011))**
+
+- **[TESTS] Fix some campaign cleanup
+  ([25996](https://github.com/civicrm/civicrm-core/pull/25996))**
+
+- **Strictness cleanups in test class
+  ([26005](https://github.com/civicrm/civicrm-core/pull/26005))**
+
+- **Code cleanup in HookTest
+  ([293](https://github.com/civicrm/civicrm-wordpress/pull/293))**
+
+- **Type hints & strictness fixes within tests
+  ([26013](https://github.com/civicrm/civicrm-core/pull/26013))**
+
+- **Add unit test cover for test offline mail receipt
+  ([25929](https://github.com/civicrm/civicrm-core/pull/25929))**
+
+- **Fix intermittant test fail
+  ([25924](https://github.com/civicrm/civicrm-core/pull/25924))**
+
+- **Fix Contact Import tests custom date testing, remove duplicate handling
+  ([25898](https://github.com/civicrm/civicrm-core/pull/25898))**
+
+- **APIv4 - Add 'Update' to conformanceTest
+  ([25674](https://github.com/civicrm/civicrm-core/pull/25674))**
+
+- **Fix in ContributionTest class
+  ([25722](https://github.com/civicrm/civicrm-core/pull/25722))**
+
+- **CiviUnitTestCase - More aggressive simplifications
+  ([25187](https://github.com/civicrm/civicrm-core/pull/25187))**
+
+- **CiviUnitTestCase - During teardown, ensure that we cleanup locks
+  ([25856](https://github.com/civicrm/civicrm-core/pull/25856))**
+
+- **CiviUnitTestCase (etal) - Resolve spooky interaction
+  ([25855](https://github.com/civicrm/civicrm-core/pull/25855))**
+
+- **CiviUnitTestCase - Degrade gracefully on older DBMS
+  ([25872](https://github.com/civicrm/civicrm-core/pull/25872))**
+
+- **Add release notes for 5.61 ([#26117](https://github.com/civicrm/civicrm-core/pull/26117), [#26127](https://github.com/civicrm/civicrm-core/pull/26127))**
+
+## <a name="credits"></a>Credits
+
+This release was developed by the following code authors:
+
+AGH Strategies - Alice Frumin, Andie Hunt; Agileware - Justin Freeman; Anthony Blond;
+Benjamin W; BrightMinded Ltd - Bradley Taylor; CEDC - Laryn Kragt Bakker; CiviCRM -
+Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; Coop SymbioTIC - Mathieu Lutfy,
+Samuel Vanhove, Shane Bill; Dave D; Freeform Solutions - Herb van den Dool; Fuzion - Luke
+Stewart; Giant Rabbit - Anthony Nemirovsky; iXiam - Luciano Spiegel; JMA Consulting -
+Seamus Lee; Lemniscus - Noah Miller; Megaphone Technology Consulting - Brienne Kordis,
+Jon Goldberg; MJW Consulting - Matthew Wire; Progressive Technology Project - Jamie
+McClelland; SYSTOPIA Organisationsberatung - Björn Endres; Third Sector Design - Kurund
+Jalmi; Wikimedia Foundation - Eileen McNaughton
+
+Most authors also reviewed code for this release; in addition, the following
+reviewers contributed their comments:
+
+AGH Strategies - Eli Lisseck; Andreas Howiller; Artful Robot - Rich Lott;
+Blackfly Solutions - Alan Dixon; Guydn; Humanists UK - Andrew West; JMA
+Consulting - Joe Murray; Joinery - Allen Shaw; Korlon - Stuart Gaston; Richard
+Baugh; Squiffle Consulting - Aidan Saunders; SYSTOPIA - Johannes Franz; Giant
+Rabbit: Tiago Bember; Third Sector Design - Michael McAndrew; WebmasterBouclier
+
+## <a name="feedback"></a>Feedback
+
+These release notes are edited by Alice Frumin and Andie Hunt.  If you'd like
+to provide feedback on them, please log in to https://chat.civicrm.org/civicrm
+and contact `@agh1`.
diff --git a/civicrm/settings/Core.setting.php b/civicrm/settings/Core.setting.php
index c52fe9b1bc11934128ee71be347c9b074c141da1..69f2fedff90386769812abe2cdb4a901c6ed8c63 100644
--- a/civicrm/settings/Core.setting.php
+++ b/civicrm/settings/Core.setting.php
@@ -839,13 +839,13 @@ return [
     'is_contact' => 0,
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
-    'help_text' => ts('(EXPERIMENTAL) If the MySQL user does not have permission to administer triggers, then you must create the triggers outside CiviCRM. No support is provided for this configuration.'),
+    'help_text' => ts('If the MySQL user does not have permission to administer triggers, then you must create the triggers outside CiviCRM. No support is provided for this configuration.'),
     'name' => 'logging_no_trigger_permission',
     'type' => 'Boolean',
     'quick_form_type' => 'YesNo',
     'html_type' => '',
     'default' => 0,
-    'title' => ts('(EXPERIMENTAL) MySQL user does not have trigger permissions'),
+    'title' => ts('MySQL user does not have trigger permissions'),
     'description' => ts('Set this when you intend to manage trigger creation outside of CiviCRM'),
   ],
   'logging' => [
diff --git a/civicrm/sql/civicrm.mysql b/civicrm/sql/civicrm.mysql
index f0efa3f59eeba6bce0d7bfd42431f58996ea30c0..a1a777f79a8be3610864f3370f503082c7f528bd 100644
--- a/civicrm/sql/civicrm.mysql
+++ b/civicrm/sql/civicrm.mysql
@@ -1043,7 +1043,7 @@ CREATE TABLE `civicrm_campaign` (
   `goal_general` text COMMENT 'General goals for Campaign.',
   `goal_revenue` decimal(20,2) COMMENT 'The target revenue for this campaign.',
   PRIMARY KEY (`id`),
-  INDEX `UI_campaign_name`(name),
+  UNIQUE INDEX `UI_name`(name),
   INDEX `UI_campaign_type_id`(campaign_type_id),
   INDEX `UI_campaign_status_id`(status_id),
   UNIQUE INDEX `UI_external_identifier`(external_identifier),
@@ -1372,7 +1372,8 @@ CREATE TABLE `civicrm_cache` (
   `created_date` timestamp DEFAULT CURRENT_TIMESTAMP COMMENT 'When was the cache item created',
   `expired_date` timestamp NULL DEFAULT NULL COMMENT 'When should the cache item expire',
   PRIMARY KEY (`id`),
-  UNIQUE INDEX `UI_group_path_date`(group_name, path, created_date),
+  UNIQUE INDEX `UI_group_name_path`(group_name, path),
+  INDEX `index_expired_date`(expired_date),
   CONSTRAINT FK_civicrm_cache_component_id FOREIGN KEY (`component_id`) REFERENCES `civicrm_component`(`id`)
 )
 ENGINE=InnoDB DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
@@ -1460,7 +1461,6 @@ CREATE TABLE `civicrm_custom_field` (
   `help_pre` text COMMENT 'Description and/or help text to display before this field.',
   `help_post` text COMMENT 'Description and/or help text to display after this field.',
   `attributes` varchar(255) COMMENT 'Store collection of type-appropriate attributes, e.g. textarea  needs rows/cols attributes',
-  `javascript` varchar(255) COMMENT 'Optional scripting attributes for field.',
   `is_active` tinyint DEFAULT 1 COMMENT 'Is this property active?',
   `is_view` tinyint NOT NULL DEFAULT 0 COMMENT 'Is this property set by PHP Code? A code field is viewable but not editable',
   `options_per_line` int unsigned COMMENT 'number of options per line for checkbox and radio',
@@ -2395,9 +2395,10 @@ ENGINE=InnoDB DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ROW_FORMA
 CREATE TABLE `civicrm_payment_processor` (
   `id` int unsigned NOT NULL AUTO_INCREMENT COMMENT 'Payment Processor ID',
   `domain_id` int unsigned NOT NULL COMMENT 'Which Domain is this match entry for',
-  `name` varchar(64) COMMENT 'Payment Processor Name.',
-  `title` varchar(127) COMMENT 'Payment Processor Descriptive Name.',
-  `description` varchar(255) COMMENT 'Payment Processor Description.',
+  `name` varchar(64) NOT NULL COMMENT 'Payment Processor Name.',
+  `title` varchar(255) NOT NULL COMMENT 'Name of processor when shown to CiviCRM administrators.',
+  `frontend_title` varchar(255) NOT NULL COMMENT 'Name of processor when shown to users making a payment.',
+  `description` varchar(255) COMMENT 'Additional processor information shown to administrators.',
   `payment_processor_type_id` int unsigned NOT NULL,
   `is_active` tinyint NOT NULL DEFAULT 1 COMMENT 'Is this processor active?',
   `is_default` tinyint NOT NULL DEFAULT 0 COMMENT 'Is this processor the default?',
diff --git a/civicrm/sql/civicrm_data.mysql b/civicrm/sql/civicrm_data.mysql
index e095141abd4f71132278360024d08297b341d3ca..cfe0e295ab5777ad28ca13763767d8331a519574 100644
--- a/civicrm/sql/civicrm_data.mysql
+++ b/civicrm/sql/civicrm_data.mysql
@@ -5235,8 +5235,8 @@ VALUES
   (@option_group_id_report , 'SYBUNT Report',                           'contribute/sybunt',              'CRM_Report_Form_Contribute_Sybunt',              NULL, 0, 0, 12, 'SYBUNT means some year(s) but not this year. Provides a list of constituents who donated at some time in the history of your organization but did not donate during the time period you specify.', 0, 0, 1, @contributeCompId, NULL, NULL),
   (@option_group_id_report , 'LYBUNT Report',                           'contribute/lybunt',              'CRM_Report_Form_Contribute_Lybunt',              NULL, 0, 0, 13, 'LYBUNT means last year but not this year. Provides a list of constituents who donated last year but did not donate during the time period you specify as the current year.', 0, 0, 1, @contributeCompId, NULL, NULL),
   (@option_group_id_report , 'Soft Credit Report',                      'contribute/softcredit',          'CRM_Report_Form_Contribute_SoftCredit',          NULL, 0, 0, 14, 'Shows contributions made by contacts that have been soft-credited to other contacts.', 0, 0, 1,@contributeCompId, NULL, NULL),
-  (@option_group_id_report , 'Membership Report (Summary)',             'member/summary',                 'CRM_Report_Form_Member_Summary',                 NULL, 0, 0, 15, 'Provides a summary of memberships by type and join date.', 0, 0, 1, @memberCompId, NULL, NULL),
-  (@option_group_id_report , 'Membership Report (Detail)',              'member/detail',                  'CRM_Report_Form_Member_Detail',                  NULL, 0, 0, 16, 'Provides a list of members along with their membership status and membership details (Join Date, Start Date, End Date). Can also display contributions (payments) associated with each membership.', 0, 0, 1, @memberCompId, NULL, NULL),
+  (@option_group_id_report , 'Membership Report (Summary)',             'member/summary',                 'CRM_Report_Form_Member_Summary',                 NULL, 0, 0, 15, 'Provides a summary of memberships by type and Member Since.', 0, 0, 1, @memberCompId, NULL, NULL),
+  (@option_group_id_report , 'Membership Report (Detail)',              'member/detail',                  'CRM_Report_Form_Member_Detail',                  NULL, 0, 0, 16, 'Provides a list of members along with their membership status and membership details (Member Since, Membership Start Date, Membership Expiration Date). Can also display contributions (payments) associated with each membership.', 0, 0, 1, @memberCompId, NULL, NULL),
   (@option_group_id_report , 'Membership Report (Lapsed)',              'member/lapse',                   'CRM_Report_Form_Member_Lapse',                   NULL, 0, 0, 17, 'Provides a list of memberships that lapsed or will lapse before the date you specify.', 0, 0, 1, @memberCompId, NULL, NULL),
   (@option_group_id_report , 'Event Participant Report (List)',         'event/participantListing',       'CRM_Report_Form_Event_ParticipantListing',       NULL, 0, 0, 18, 'Provides lists of participants for an event.', 0, 0, 1, @eventCompId, NULL, NULL),
   (@option_group_id_report , 'Event Income Report (Summary)',           'event/summary',                  'CRM_Report_Form_Event_Summary',                  NULL, 0, 0, 19, 'Provides an overview of event income. You can include key information such as event ID, registration, attendance, and income generated to help you determine the success of an event.', 0, 0, 1, @eventCompId, NULL, NULL),
@@ -17835,7 +17835,7 @@ or want to inquire about reinstating your registration for this event.{/ts}</p>
 {if empty($cancelled)}
 {if empty($lineItem)}
 {ts}Membership Start Date{/ts}: {$mem_start_date}
-{ts}Membership End Date{/ts}: {$mem_end_date}
+{ts}Membership Expiration Date{/ts}: {$mem_end_date}
 {/if}
 
 {if $formValues.total_amount OR $formValues.total_amount eq 0 }
@@ -17857,7 +17857,7 @@ or want to inquire about reinstating your registration for this event.{/ts}</p>
 {capture assign=ts_total}{ts}Total{/ts}{/capture}
 {/if}
 {capture assign=ts_start_date}{ts}Membership Start Date{/ts}{/capture}
-{capture assign=ts_end_date}{ts}Membership End Date{/ts}{/capture}
+{capture assign=ts_end_date}{ts}Membership Expiration Date{/ts}{/capture}
 {$ts_item|string_format:"%-30s"} {$ts_total|string_format:"%10s"} {if !empty($dataArray)} {$ts_subtotal|string_format:"%10s"} {$ts_taxRate|string_format:"%10s"} {$ts_taxAmount|string_format:"%10s"} {$ts_total|string_format:"%10s"} {/if} {$ts_start_date|string_format:"%20s"} {$ts_end_date|string_format:"%20s"}
 --------------------------------------------------------------------------------------------------
 
@@ -17941,7 +17941,7 @@ or want to inquire about reinstating your registration for this event.{/ts}</p>
 {capture assign=labelStyle }style="padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;"{/capture}
 {capture assign=valueStyle }style="padding: 4px; border-bottom: 1px solid #999;"{/capture}
 
-  <table id="crm-event_receipt"
+  <table id="crm-membership_receipt"
          style="font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;">
 
     <!-- BEGIN HEADER -->
@@ -17989,7 +17989,7 @@ or want to inquire about reinstating your registration for this event.{/ts}</p>
               </tr>
               <tr>
                 <td {$labelStyle}>
-                  {ts}Membership End Date{/ts}
+                  {ts}Membership Expiration Date{/ts}
                 </td>
                 <td {$valueStyle}>
                   {$mem_end_date}
@@ -18028,7 +18028,7 @@ or want to inquire about reinstating your registration for this event.{/ts}</p>
                             <th>{ts}Total{/ts}</th>
                           {/if}
                           <th>{ts}Membership Start Date{/ts}</th>
-                          <th>{ts}Membership End Date{/ts}</th>
+                          <th>{ts}Membership Expiration Date{/ts}</th>
                         </tr>
                         {foreach from=$value item=line}
                           <tr>
@@ -18244,7 +18244,7 @@ or want to inquire about reinstating your registration for this event.{/ts}</p>
 {if empty($cancelled)}
 {if empty($lineItem)}
 {ts}Membership Start Date{/ts}: {$mem_start_date}
-{ts}Membership End Date{/ts}: {$mem_end_date}
+{ts}Membership Expiration Date{/ts}: {$mem_end_date}
 {/if}
 
 {if $formValues.total_amount OR $formValues.total_amount eq 0 }
@@ -18266,7 +18266,7 @@ or want to inquire about reinstating your registration for this event.{/ts}</p>
 {capture assign=ts_total}{ts}Total{/ts}{/capture}
 {/if}
 {capture assign=ts_start_date}{ts}Membership Start Date{/ts}{/capture}
-{capture assign=ts_end_date}{ts}Membership End Date{/ts}{/capture}
+{capture assign=ts_end_date}{ts}Membership Expiration Date{/ts}{/capture}
 {$ts_item|string_format:"%-30s"} {$ts_total|string_format:"%10s"} {if !empty($dataArray)} {$ts_subtotal|string_format:"%10s"} {$ts_taxRate|string_format:"%10s"} {$ts_taxAmount|string_format:"%10s"} {$ts_total|string_format:"%10s"} {/if} {$ts_start_date|string_format:"%20s"} {$ts_end_date|string_format:"%20s"}
 --------------------------------------------------------------------------------------------------
 
@@ -18350,7 +18350,7 @@ or want to inquire about reinstating your registration for this event.{/ts}</p>
 {capture assign=labelStyle }style="padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;"{/capture}
 {capture assign=valueStyle }style="padding: 4px; border-bottom: 1px solid #999;"{/capture}
 
-  <table id="crm-event_receipt"
+  <table id="crm-membership_receipt"
          style="font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;">
 
     <!-- BEGIN HEADER -->
@@ -18398,7 +18398,7 @@ or want to inquire about reinstating your registration for this event.{/ts}</p>
               </tr>
               <tr>
                 <td {$labelStyle}>
-                  {ts}Membership End Date{/ts}
+                  {ts}Membership Expiration Date{/ts}
                 </td>
                 <td {$valueStyle}>
                   {$mem_end_date}
@@ -18437,7 +18437,7 @@ or want to inquire about reinstating your registration for this event.{/ts}</p>
                             <th>{ts}Total{/ts}</th>
                           {/if}
                           <th>{ts}Membership Start Date{/ts}</th>
-                          <th>{ts}Membership End Date{/ts}</th>
+                          <th>{ts}Membership Expiration Date{/ts}</th>
                         </tr>
                         {foreach from=$value item=line}
                           <tr>
@@ -18654,7 +18654,7 @@ or want to inquire about reinstating your registration for this event.{/ts}</p>
 {ts}Membership Type{/ts}: {$membership_name}
 {if $mem_start_date}{ts}Membership Start Date{/ts}: {$mem_start_date|crmDate}
 {/if}
-{if $mem_end_date}{ts}Membership End Date{/ts}: {$mem_end_date|crmDate}
+{if $mem_end_date}{ts}Membership Expiration Date{/ts}: {$mem_end_date|crmDate}
 {/if}
 
 {/if}
@@ -18697,7 +18697,7 @@ or want to inquire about reinstating your registration for this event.{/ts}</p>
 {capture assign=ts_total}{ts}Total{/ts}{/capture}
 {/if}
 {capture assign=ts_start_date}{ts}Membership Start Date{/ts}{/capture}
-{capture assign=ts_end_date}{ts}Membership End Date{/ts}{/capture}
+{capture assign=ts_end_date}{ts}Membership Expiration Date{/ts}{/capture}
 {$ts_item|string_format:"%-30s"} {$ts_total|string_format:"%10s"} {if !empty($dataArray)} {$ts_subtotal|string_format:"%10s"} {$ts_taxRate|string_format:"%10s"} {$ts_taxAmount|string_format:"%10s"} {$ts_total|string_format:"%10s"} {/if} {$ts_start_date|string_format:"%20s"} {$ts_end_date|string_format:"%20s"}
 --------------------------------------------------------------------------------------------------
 
@@ -18939,7 +18939,7 @@ or want to inquire about reinstating your registration for this event.{/ts}</p>
       {if $mem_end_date}
        <tr>
         <td {$labelStyle}>
-         {ts}Membership End Date{/ts}
+         {ts}Membership Expiration Date{/ts}
         </td>
         <td {$valueStyle}>
           {$mem_end_date|crmDate}
@@ -19042,7 +19042,7 @@ or want to inquire about reinstating your registration for this event.{/ts}</p>
               <th>{ts}Total{/ts}</th>
             {/if}
       <th>{ts}Membership Start Date{/ts}</th>
-      <th>{ts}Membership End Date{/ts}</th>
+      <th>{ts}Membership Expiration Date{/ts}</th>
            </tr>
            {foreach from=$value item=line}
             <tr>
@@ -19448,7 +19448,7 @@ or want to inquire about reinstating your registration for this event.{/ts}</p>
 {ts}Membership Type{/ts}: {$membership_name}
 {if $mem_start_date}{ts}Membership Start Date{/ts}: {$mem_start_date|crmDate}
 {/if}
-{if $mem_end_date}{ts}Membership End Date{/ts}: {$mem_end_date|crmDate}
+{if $mem_end_date}{ts}Membership Expiration Date{/ts}: {$mem_end_date|crmDate}
 {/if}
 
 {/if}
@@ -19491,7 +19491,7 @@ or want to inquire about reinstating your registration for this event.{/ts}</p>
 {capture assign=ts_total}{ts}Total{/ts}{/capture}
 {/if}
 {capture assign=ts_start_date}{ts}Membership Start Date{/ts}{/capture}
-{capture assign=ts_end_date}{ts}Membership End Date{/ts}{/capture}
+{capture assign=ts_end_date}{ts}Membership Expiration Date{/ts}{/capture}
 {$ts_item|string_format:"%-30s"} {$ts_total|string_format:"%10s"} {if !empty($dataArray)} {$ts_subtotal|string_format:"%10s"} {$ts_taxRate|string_format:"%10s"} {$ts_taxAmount|string_format:"%10s"} {$ts_total|string_format:"%10s"} {/if} {$ts_start_date|string_format:"%20s"} {$ts_end_date|string_format:"%20s"}
 --------------------------------------------------------------------------------------------------
 
@@ -19733,7 +19733,7 @@ or want to inquire about reinstating your registration for this event.{/ts}</p>
       {if $mem_end_date}
        <tr>
         <td {$labelStyle}>
-         {ts}Membership End Date{/ts}
+         {ts}Membership Expiration Date{/ts}
         </td>
         <td {$valueStyle}>
           {$mem_end_date|crmDate}
@@ -19836,7 +19836,7 @@ or want to inquire about reinstating your registration for this event.{/ts}</p>
               <th>{ts}Total{/ts}</th>
             {/if}
       <th>{ts}Membership Start Date{/ts}</th>
-      <th>{ts}Membership End Date{/ts}</th>
+      <th>{ts}Membership Expiration Date{/ts}</th>
            </tr>
            {foreach from=$value item=line}
             <tr>
@@ -20236,7 +20236,7 @@ or want to inquire about reinstating your registration for this event.{/ts}</p>
 {ts}Membership Status{/ts}: {$membership_status}
 {if $mem_start_date}{ts}Membership Start Date{/ts}: {$mem_start_date|crmDate}
 {/if}
-{if $mem_end_date}{ts}Membership End Date{/ts}: {$mem_end_date|crmDate}
+{if $mem_end_date}{ts}Membership Expiration Date{/ts}: {$mem_end_date|crmDate}
 {/if}
 
 ', '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
@@ -20295,7 +20295,7 @@ or want to inquire about reinstating your registration for this event.{/ts}</p>
       {if $mem_end_date}
        <tr>
         <td {$labelStyle}>
-         {ts}Membership End Date{/ts}
+         {ts}Membership Expiration Date{/ts}
         </td>
         <td {$valueStyle}>
           {$mem_end_date|crmDate}
@@ -20320,7 +20320,7 @@ or want to inquire about reinstating your registration for this event.{/ts}</p>
 {ts}Membership Status{/ts}: {$membership_status}
 {if $mem_start_date}{ts}Membership Start Date{/ts}: {$mem_start_date|crmDate}
 {/if}
-{if $mem_end_date}{ts}Membership End Date{/ts}: {$mem_end_date|crmDate}
+{if $mem_end_date}{ts}Membership Expiration Date{/ts}: {$mem_end_date|crmDate}
 {/if}
 
 ', '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
@@ -20379,7 +20379,7 @@ or want to inquire about reinstating your registration for this event.{/ts}</p>
       {if $mem_end_date}
        <tr>
         <td {$labelStyle}>
-         {ts}Membership End Date{/ts}
+         {ts}Membership Expiration Date{/ts}
         </td>
         <td {$valueStyle}>
           {$mem_end_date|crmDate}
@@ -23030,7 +23030,7 @@ VALUES
     ( @domainID, 'civicrm/contribute/add?reset=1&action=add&context=standalone', 'New Contribution',  'New Contribution',       'access CiviContribute,edit contributions', 'AND', @contributionlastID, '1', NULL, 2 ),
     ( @domainID, 'civicrm/contribute/search?reset=1',                       'Find Contributions',     'Find Contributions',     'access CiviContribute', '', @contributionlastID, '1', NULL, 3 ),
     ( @domainID, 'civicrm/report/list?compid=2&reset=1',                    'Contribution Reports',   'Contribution Reports',     'access CiviContribute', '', @contributionlastID, '1', 1,    4 ),
-    ( @domainID, 'civicrm/contribute/import?reset=1',                       'Import Contributions',   'Import Contributions',   'access CiviContribute,edit contributions', 'AND', @contributionlastID, '1', '1',  5 ),
+    ( @domainID, 'civicrm/import/contribution?reset=1',                       'Import Contributions',   'Import Contributions',   'access CiviContribute,edit contributions', 'AND', @contributionlastID, '1', '1',  5 ),
     ( @domainID, 'civicrm/batch?reset=1',                                   'Batch Data Entry',        'Batch Data Entry',           'access CiviContribute', '', @contributionlastID, '1', NULL, 7 );
 
 INSERT INTO civicrm_navigation
@@ -23609,12 +23609,12 @@ VALUES
 INSERT INTO `civicrm_report_instance`
     ( `domain_id`, `title`, `report_id`, `description`, `permission`, `form_values`)
 VALUES
-    ( @domainID, 'Membership Summary', 'member/summary', 'Provides a summary of memberships by type and join date.', 'access CiviMember', 'a:18:{s:6:"fields";a:2:{s:18:"membership_type_id";s:1:"1";s:12:"total_amount";s:1:"1";}s:29:"membership_join_date_relative";s:1:"0";s:25:"membership_join_date_from";s:0:"";s:23:"membership_join_date_to";s:0:"";s:21:"membership_type_id_op";s:2:"in";s:24:"membership_type_id_value";a:0:{}s:12:"status_id_op";s:2:"in";s:15:"status_id_value";a:0:{}s:25:"contribution_status_id_op";s:2:"in";s:28:"contribution_status_id_value";a:0:{}s:9:"group_bys";a:2:{s:9:"join_date";s:1:"1";s:18:"membership_type_id";s:1:"1";}s:14:"group_bys_freq";a:1:{s:9:"join_date";s:5:"MONTH";}s:11:"description";s:56:"Provides a summary of memberships by type and join date.";s:13:"email_subject";s:0:"";s:8:"email_to";s:0:"";s:8:"email_cc";s:0:"";s:10:"permission";s:17:"access CiviMember";s:9:"domain_id";i:1;}');
+    ( @domainID, 'Membership Summary', 'member/summary', 'Provides a summary of memberships by Type and Member Since.', 'access CiviMember', 'a:18:{s:6:"fields";a:2:{s:18:"membership_type_id";s:1:"1";s:12:"total_amount";s:1:"1";}s:29:"membership_join_date_relative";s:1:"0";s:25:"membership_join_date_from";s:0:"";s:23:"membership_join_date_to";s:0:"";s:21:"membership_type_id_op";s:2:"in";s:24:"membership_type_id_value";a:0:{}s:12:"status_id_op";s:2:"in";s:15:"status_id_value";a:0:{}s:25:"contribution_status_id_op";s:2:"in";s:28:"contribution_status_id_value";a:0:{}s:9:"group_bys";a:2:{s:9:"join_date";s:1:"1";s:18:"membership_type_id";s:1:"1";}s:14:"group_bys_freq";a:1:{s:9:"join_date";s:5:"MONTH";}s:11:"description";s:59:"Provides a summary of memberships by Type and Member Since.";s:13:"email_subject";s:0:"";s:8:"email_to";s:0:"";s:8:"email_cc";s:0:"";s:10:"permission";s:17:"access CiviMember";s:9:"domain_id";i:1;}');
 
 INSERT INTO `civicrm_report_instance`
     ( `domain_id`, `title`, `report_id`, `description`, `permission`, `form_values`)
 VALUES
-    ( @domainID, 'Membership Details', 'member/detail', 'Provides a list of members along with their membership status and membership details (Join Date, Start Date, End Date). Can also display contributions (payments) associated with each membership.', 'access CiviMember', 'a:28:{s:6:"fields";a:5:{s:9:"sort_name";s:1:"1";s:18:"membership_type_id";s:1:"1";s:21:"membership_start_date";s:1:"1";s:19:"membership_end_date";s:1:"1";s:4:"name";s:1:"1";}s:12:"sort_name_op";s:3:"has";s:15:"sort_name_value";s:0:"";s:6:"id_min";s:0:"";s:6:"id_max";s:0:"";s:5:"id_op";s:3:"lte";s:8:"id_value";s:0:"";s:29:"membership_join_date_relative";s:1:"0";s:25:"membership_join_date_from";s:0:"";s:23:"membership_join_date_to";s:0:"";s:23:"owner_membership_id_min";s:0:"";s:23:"owner_membership_id_max";s:0:"";s:22:"owner_membership_id_op";s:3:"lte";s:25:"owner_membership_id_value";s:0:"";s:6:"tid_op";s:2:"in";s:9:"tid_value";a:0:{}s:6:"sid_op";s:2:"in";s:9:"sid_value";a:0:{}s:6:"gid_op";s:2:"in";s:9:"gid_value";a:0:{}s:8:"tagid_op";s:2:"in";s:11:"tagid_value";a:0:{}s:11:"description";s:119:"Provides a list of members along with their membership status and membership details (Join Date, Start Date, End Date).";s:13:"email_subject";s:0:"";s:8:"email_to";s:0:"";s:8:"email_cc";s:0:"";s:10:"permission";s:17:"access CiviMember";s:9:"domain_id";i:1;}');
+    ( @domainID, 'Membership Details', 'member/detail', 'Provides a list of members along with their Membership Status and membership details (Member Since, Membership Start Date, Membership Expiration Date). Can also display contributions (payments) associated with each membership.', 'access CiviMember', 'a:28:{s:6:"fields";a:5:{s:9:"sort_name";s:1:"1";s:18:"membership_type_id";s:1:"1";s:21:"membership_start_date";s:1:"1";s:19:"membership_end_date";s:1:"1";s:4:"name";s:1:"1";}s:12:"sort_name_op";s:3:"has";s:15:"sort_name_value";s:0:"";s:6:"id_min";s:0:"";s:6:"id_max";s:0:"";s:5:"id_op";s:3:"lte";s:8:"id_value";s:0:"";s:29:"membership_join_date_relative";s:1:"0";s:25:"membership_join_date_from";s:0:"";s:23:"membership_join_date_to";s:0:"";s:23:"owner_membership_id_min";s:0:"";s:23:"owner_membership_id_max";s:0:"";s:22:"owner_membership_id_op";s:3:"lte";s:25:"owner_membership_id_value";s:0:"";s:6:"tid_op";s:2:"in";s:9:"tid_value";a:0:{}s:6:"sid_op";s:2:"in";s:9:"sid_value";a:0:{}s:6:"gid_op";s:2:"in";s:9:"gid_value";a:0:{}s:8:"tagid_op";s:2:"in";s:11:"tagid_value";a:0:{}s:11:"description";s:151:"Provides a list of members along with their Membership Status and membership details (Member Since, Membership Start Date, Membership Expiration Date).";s:13:"email_subject";s:0:"";s:8:"email_to";s:0:"";s:8:"email_cc";s:0:"";s:10:"permission";s:17:"access CiviMember";s:9:"domain_id";i:1;}');
 
 INSERT INTO `civicrm_report_instance`
     ( `domain_id`, `title`, `report_id`, `description`, `permission`, `form_values`)
@@ -23678,4 +23678,4 @@ INSERT INTO `civicrm_report_instance`
     ( `domain_id`, `title`, `report_id`, `description`, `permission`, `form_values`)
 VALUES
     (  @domainID, 'Survey Details', 'survey/detail', 'Detailed report for canvassing, phone-banking, walk lists or other surveys.', 'access CiviReport', 'a:39:{s:6:"fields";a:2:{s:9:"sort_name";s:1:"1";s:6:"result";s:1:"1";}s:22:"assignee_contact_id_op";s:2:"eq";s:25:"assignee_contact_id_value";s:0:"";s:12:"sort_name_op";s:3:"has";s:15:"sort_name_value";s:0:"";s:17:"street_number_min";s:0:"";s:17:"street_number_max";s:0:"";s:16:"street_number_op";s:3:"lte";s:19:"street_number_value";s:0:"";s:14:"street_name_op";s:3:"has";s:17:"street_name_value";s:0:"";s:15:"postal_code_min";s:0:"";s:15:"postal_code_max";s:0:"";s:14:"postal_code_op";s:3:"lte";s:17:"postal_code_value";s:0:"";s:7:"city_op";s:3:"has";s:10:"city_value";s:0:"";s:20:"state_province_id_op";s:2:"in";s:23:"state_province_id_value";a:0:{}s:13:"country_id_op";s:2:"in";s:16:"country_id_value";a:0:{}s:12:"survey_id_op";s:2:"in";s:15:"survey_id_value";a:0:{}s:12:"status_id_op";s:2:"eq";s:15:"status_id_value";s:1:"1";s:11:"custom_1_op";s:2:"in";s:14:"custom_1_value";a:0:{}s:11:"custom_2_op";s:2:"in";s:14:"custom_2_value";a:0:{}s:17:"custom_3_relative";s:1:"0";s:13:"custom_3_from";s:0:"";s:11:"custom_3_to";s:0:"";s:11:"description";s:75:"Detailed report for canvassing, phone-banking, walk lists or other surveys.";s:13:"email_subject";s:0:"";s:8:"email_to";s:0:"";s:8:"email_cc";s:0:"";s:10:"permission";s:17:"access CiviReport";s:6:"groups";s:0:"";s:9:"domain_id";i:1;}');
-UPDATE civicrm_domain SET version = '5.60.0';
+UPDATE civicrm_domain SET version = '5.61.0';
diff --git a/civicrm/sql/civicrm_demo_processor.mysql b/civicrm/sql/civicrm_demo_processor.mysql
index 5d29499e27148a125c767f84c18e3778d50264e4..5661f27d719c3e19fc9314e917d253e85601763a 100644
--- a/civicrm/sql/civicrm_demo_processor.mysql
+++ b/civicrm/sql/civicrm_demo_processor.mysql
@@ -12,8 +12,8 @@
 
 SELECT @ppTypeID := id FROM civicrm_payment_processor_type WHERE name = 'PayPal';
 
-INSERT INTO `civicrm_payment_processor` (`id`, `name`, `description`, `payment_processor_type_id`, `is_active`, `is_default`, `is_test`, `user_name`, `password`, `signature`, `url_site`, `url_api`, `url_recur`, `url_button`, `subject`, `class_name`, `billing_mode`, `is_recur`, `domain_id`) VALUES (3, 'PP Pro', '', @ppTypeID, 1, 1, 0, 'xxx', 'yyy', 'zzz', 'https://www.paypal.com/', 'https://api-3t.paypal.com/', NULL, 'https://www.paypal.com/en_US/i/btn/btn_xpressCheckout.gif', NULL, 'Payment_PayPalImpl', 3, 1, 1);
-INSERT INTO `civicrm_payment_processor` (`id`, `name`, `description`, `payment_processor_type_id`, `is_active`, `is_default`, `is_test`, `user_name`, `password`, `signature`, `url_site`, `url_api`, `url_recur`, `url_button`, `subject`, `class_name`, `billing_mode`, `is_recur`, `domain_id`) VALUES (4, 'PP Pro', '', @ppTypeID, 1, 0, 1, 'dave_api1.northtower.com', 'S5YW42RS7WRWT9AD', 'AUsrQDMAfRs6zQSEYuw3M4QDuTBHAAvpXf7N0jYi8G1UCfKRI2NrvWVM', 'https://www.sandbox.paypal.com/', 'https://api-3t.sandbox.paypal.com/', NULL, 'https://www.paypal.com/en_US/i/btn/btn_xpressCheckout.gif', NULL, 'Payment_PayPalImpl', 3, 1, 1);
+INSERT INTO `civicrm_payment_processor` (`id`, `name`, `frontend_title`, `title`, `description`, `payment_processor_type_id`, `is_active`, `is_default`, `is_test`, `user_name`, `password`, `signature`, `url_site`, `url_api`, `url_recur`, `url_button`, `subject`, `class_name`, `billing_mode`, `is_recur`, `domain_id`) VALUES (3, 'PP Pro', 'PP Pro', 'PP Pro', '', @ppTypeID, 1, 1, 0, 'xxx', 'yyy', 'zzz', 'https://www.paypal.com/', 'https://api-3t.paypal.com/', NULL, 'https://www.paypal.com/en_US/i/btn/btn_xpressCheckout.gif', NULL, 'Payment_PayPalImpl', 3, 1, 1);
+INSERT INTO `civicrm_payment_processor` (`id`, `name`, `frontend_title`, `title`, `description`, `payment_processor_type_id`, `is_active`, `is_default`, `is_test`, `user_name`, `password`, `signature`, `url_site`, `url_api`, `url_recur`, `url_button`, `subject`, `class_name`, `billing_mode`, `is_recur`, `domain_id`) VALUES (4, 'PP Pro', 'PP Pro', 'PP Pro', '', @ppTypeID, 1, 0, 1, 'dave_api1.northtower.com', 'S5YW42RS7WRWT9AD', 'AUsrQDMAfRs6zQSEYuw3M4QDuTBHAAvpXf7N0jYi8G1UCfKRI2NrvWVM', 'https://www.sandbox.paypal.com/', 'https://api-3t.sandbox.paypal.com/', NULL, 'https://www.paypal.com/en_US/i/btn/btn_xpressCheckout.gif', NULL, 'Payment_PayPalImpl', 3, 1, 1);
 
 SET @pp := LAST_INSERT_ID();
 
diff --git a/civicrm/sql/civicrm_devel_config.mysql b/civicrm/sql/civicrm_devel_config.mysql
index 1ef35a516fb4f1a8724a1748a2173f73ea42ef00..4b038ac4ff9cda1f5a099751ccadea5a88b77c0f 100644
--- a/civicrm/sql/civicrm_devel_config.mysql
+++ b/civicrm/sql/civicrm_devel_config.mysql
@@ -8,8 +8,8 @@
 SELECT @domainId := MAX(id) FROM civicrm_domain;
 
 INSERT INTO civicrm_payment_processor
-  (domain_id, name,    payment_processor_type, is_active, is_default, is_test, user_name, class_name,      billing_mode) VALUES
-  (@domainId, 'dummy', 'Dummy',                1,         1,          0,       'dummy',   'Payment_Dummy', 1),
-  (@domainId, 'dummy', 'Dummy',                1,         0,          1,       'dummy',   'Payment_Dummy', 1);
+  (domain_id, name,    title,    frontend_title,    payment_processor_type, is_active, is_default, is_test, user_name, class_name,      billing_mode) VALUES
+  (@domainId, 'dummy', 'Dummy', 'Dummy',            'Dummy',                1,         1,          0,       'dummy',   'Payment_Dummy', 1),
+  (@domainId, 'dummy', 'Dummy', 'Dummy',            'Dummy',                1,         0,          1,       'dummy',   'Payment_Dummy', 1);
 
 UPDATE civicrm_preferences SET mailing_backend = 'a:4:{s:15:\"outBound_option\";s:1:\"0\";s:10:\"smtpServer\";s:9:\"localhost\";s:8:\"smtpPort\";s:2:\"25\";s:8:\"smtpAuth\";s:1:\"0\";}';
diff --git a/civicrm/sql/civicrm_dummy_processor.mysql b/civicrm/sql/civicrm_dummy_processor.mysql
index fed3c452bcf044b355f8c52040fc1181749f41bc..5a69f6a6dc4c5dd035933a657b036ddaa6b3615c 100644
--- a/civicrm/sql/civicrm_dummy_processor.mysql
+++ b/civicrm/sql/civicrm_dummy_processor.mysql
@@ -1,7 +1,7 @@
 SELECT @pptype := id FROM civicrm_payment_processor_type WHERE name='Dummy';
 
-INSERT INTO `civicrm_payment_processor` (`domain_id`, `name`, `description`, `payment_processor_type_id`, `is_active`, `is_default`, `is_test`, `user_name`, `password`, `signature`, `url_site`, `url_api`, `url_recur`, `url_button`, `subject`, `class_name`, `billing_mode`, `is_recur`, `payment_type`) VALUES (1, 'Test Processor', '', @pptype, 1, 1, 0, 'dummy', NULL, NULL, 'http://dummy.com', NULL, 'http://dummyrecur.com', NULL, NULL, 'Payment_Dummy', 1, 1, 1);
-INSERT INTO `civicrm_payment_processor` (`domain_id`, `name`, `description`, `payment_processor_type_id`, `is_active`, `is_default`, `is_test`, `user_name`, `password`, `signature`, `url_site`, `url_api`, `url_recur`, `url_button`, `subject`, `class_name`, `billing_mode`, `is_recur`, `payment_type`) VALUES (1, 'Test Processor', '', @pptype, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'Payment_Dummy', 1, 1, 1);
+INSERT INTO `civicrm_payment_processor` (`domain_id`, `name`, `title`, `frontend_title`, `description`, `payment_processor_type_id`, `is_active`, `is_default`, `is_test`, `user_name`, `password`, `signature`, `url_site`, `url_api`, `url_recur`, `url_button`, `subject`, `class_name`, `billing_mode`, `is_recur`, `payment_type`) VALUES (1, 'Test Processor', 'Test Processor', 'Test Processor', '', @pptype, 1, 1, 0, 'dummy', NULL, NULL, 'http://dummy.com', NULL, 'http://dummyrecur.com', NULL, NULL, 'Payment_Dummy', 1, 1, 1);
+INSERT INTO `civicrm_payment_processor` (`domain_id`, `name`, `title`, `frontend_title`,  `description`, `payment_processor_type_id`, `is_active`, `is_default`, `is_test`, `user_name`, `password`, `signature`, `url_site`, `url_api`, `url_recur`, `url_button`, `subject`, `class_name`, `billing_mode`, `is_recur`, `payment_type`) VALUES (1, 'Test Processor', 'Test Processor', 'Test Processor', '', @pptype, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'Payment_Dummy', 1, 1, 1);
 
 SELECT @dp            := max(id) from civicrm_payment_processor where name = 'Test Processor' AND is_test = 0;
 SELECT @dpTest        := max(id) from civicrm_payment_processor where name = 'Test Processor' AND is_test = 1;
diff --git a/civicrm/sql/civicrm_generated.mysql b/civicrm/sql/civicrm_generated.mysql
index 25f18917687f0dcf20efd6ae3e1e7e623ff61f1d..6ffa5df8475cca0679b2dbe16d111d4b292c476d 100644
--- a/civicrm/sql/civicrm_generated.mysql
+++ b/civicrm/sql/civicrm_generated.mysql
@@ -162,647 +162,647 @@ UNLOCK TABLES;
 LOCK TABLES `civicrm_activity` WRITE;
 /*!40000 ALTER TABLE `civicrm_activity` DISABLE KEYS */;
 INSERT INTO `civicrm_activity` (`id`, `source_record_id`, `activity_type_id`, `subject`, `activity_date_time`, `duration`, `location`, `phone_id`, `phone_number`, `details`, `status_id`, `priority_id`, `parent_id`, `is_test`, `medium_id`, `is_auto`, `relationship_id`, `is_current_revision`, `original_id`, `result`, `is_deleted`, `campaign_id`, `engagement_level`, `weight`, `is_star`, `created_date`, `modified_date`) VALUES
- (1,NULL,1,'Subject for Meeting','2022-07-26 07:46:37',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (2,NULL,9,'Subject for Tell a Friend','2022-04-28 14:02:59',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (3,NULL,55,'Subject for Interview','2022-07-20 15:35:19',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (4,NULL,2,'Subject for Phone Call','2022-11-07 08:40:33',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (5,NULL,55,'Subject for Interview','2022-05-02 00:29:51',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (6,NULL,55,'Subject for Interview','2022-12-27 06:35:51',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (7,NULL,1,'Subject for Meeting','2022-05-04 22:26:48',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (8,NULL,2,'Subject for Phone Call','2022-12-04 08:10:00',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (9,NULL,1,'Subject for Meeting','2022-07-31 16:53:24',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (10,NULL,2,'Subject for Phone Call','2022-11-03 22:16:59',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (11,NULL,22,'Subject for Print/Merge Document','2022-12-21 12:00:09',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (12,NULL,55,'Subject for Interview','2022-07-05 12:08:30',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (13,NULL,2,'Subject for Phone Call','2022-03-25 00:29:39',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (14,NULL,55,'Subject for Interview','2022-02-04 02:59:29',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (15,NULL,22,'Subject for Print/Merge Document','2022-06-15 21:53:13',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (16,NULL,55,'Subject for Interview','2022-07-25 06:34:02',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (17,NULL,55,'Subject for Interview','2022-10-28 23:39:47',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (18,NULL,1,'Subject for Meeting','2022-08-21 08:24:44',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (19,NULL,2,'Subject for Phone Call','2022-04-22 10:01:46',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (20,NULL,2,'Subject for Phone Call','2022-06-06 20:36:48',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (21,NULL,1,'Subject for Meeting','2022-07-31 09:41:30',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (22,NULL,9,'Subject for Tell a Friend','2022-12-12 01:03:50',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (23,NULL,2,'Subject for Phone Call','2022-02-03 11:17:32',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (24,NULL,2,'Subject for Phone Call','2022-05-01 06:33:02',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (25,NULL,22,'Subject for Print/Merge Document','2023-01-01 22:35:50',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (26,NULL,55,'Subject for Interview','2022-04-22 07:08:00',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (27,NULL,55,'Subject for Interview','2022-10-22 16:33:57',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (28,NULL,9,'Subject for Tell a Friend','2022-10-20 20:20:07',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (29,NULL,2,'Subject for Phone Call','2022-07-10 07:27:56',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (30,NULL,1,'Subject for Meeting','2022-04-11 01:43:36',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (31,NULL,1,'Subject for Meeting','2022-04-26 16:02:21',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (32,NULL,2,'Subject for Phone Call','2022-03-11 15:34:50',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (33,NULL,1,'Subject for Meeting','2022-03-22 20:50:02',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (34,NULL,22,'Subject for Print/Merge Document','2022-05-01 23:28:07',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (35,NULL,9,'Subject for Tell a Friend','2022-02-18 03:02:30',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (36,NULL,9,'Subject for Tell a Friend','2022-04-25 22:58:52',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (37,NULL,1,'Subject for Meeting','2022-02-13 04:16:33',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (38,NULL,2,'Subject for Phone Call','2022-02-06 01:32:32',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (39,NULL,55,'Subject for Interview','2022-01-27 12:18:40',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (40,NULL,22,'Subject for Print/Merge Document','2022-09-07 10:04:18',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (41,NULL,55,'Subject for Interview','2022-10-02 01:48:29',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (42,NULL,9,'Subject for Tell a Friend','2022-08-14 18:22:02',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (43,NULL,1,'Subject for Meeting','2022-03-25 03:49:12',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (44,NULL,22,'Subject for Print/Merge Document','2022-04-25 09:40:00',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (45,NULL,1,'Subject for Meeting','2022-05-20 13:49:43',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (46,NULL,1,'Subject for Meeting','2022-11-25 18:19:17',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (47,NULL,55,'Subject for Interview','2022-02-01 21:08:36',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (48,NULL,22,'Subject for Print/Merge Document','2022-11-05 17:16:15',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (49,NULL,22,'Subject for Print/Merge Document','2022-04-14 14:37:56',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (50,NULL,9,'Subject for Tell a Friend','2022-05-19 20:52:33',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (51,NULL,9,'Subject for Tell a Friend','2022-07-16 11:14:41',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (52,NULL,1,'Subject for Meeting','2022-01-28 14:25:53',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (53,NULL,2,'Subject for Phone Call','2022-05-14 12:53:35',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (54,NULL,1,'Subject for Meeting','2022-08-29 01:06:01',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (55,NULL,2,'Subject for Phone Call','2022-06-23 11:59:54',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (56,NULL,22,'Subject for Print/Merge Document','2023-01-04 06:59:59',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (57,NULL,9,'Subject for Tell a Friend','2022-06-04 02:53:18',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (58,NULL,9,'Subject for Tell a Friend','2022-10-22 07:37:06',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (59,NULL,2,'Subject for Phone Call','2022-08-09 13:22:04',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (60,NULL,55,'Subject for Interview','2022-10-21 21:28:18',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (61,NULL,1,'Subject for Meeting','2022-12-04 09:32:40',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (62,NULL,9,'Subject for Tell a Friend','2023-01-24 18:40:50',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (63,NULL,1,'Subject for Meeting','2022-08-14 01:51:46',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (64,NULL,2,'Subject for Phone Call','2022-09-13 00:06:03',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (65,NULL,1,'Subject for Meeting','2022-06-10 20:13:57',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (66,NULL,9,'Subject for Tell a Friend','2022-06-10 13:29:12',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (67,NULL,2,'Subject for Phone Call','2022-07-19 12:07:20',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19'),
- (68,NULL,22,'Subject for Print/Merge Document','2022-07-25 12:48:57',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (69,NULL,2,'Subject for Phone Call','2022-02-24 22:03:45',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (70,NULL,2,'Subject for Phone Call','2022-07-09 23:59:27',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (71,NULL,55,'Subject for Interview','2022-02-21 11:07:30',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (72,NULL,22,'Subject for Print/Merge Document','2022-07-25 00:18:00',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (73,NULL,22,'Subject for Print/Merge Document','2022-09-04 20:15:37',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (74,NULL,2,'Subject for Phone Call','2022-09-16 21:05:48',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (75,NULL,2,'Subject for Phone Call','2022-09-30 21:00:49',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (76,NULL,2,'Subject for Phone Call','2022-09-04 09:31:16',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (77,NULL,22,'Subject for Print/Merge Document','2022-02-24 10:19:48',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (78,NULL,1,'Subject for Meeting','2022-12-27 13:16:42',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (79,NULL,55,'Subject for Interview','2022-12-19 22:32:28',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (80,NULL,22,'Subject for Print/Merge Document','2022-07-26 15:41:07',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (81,NULL,9,'Subject for Tell a Friend','2022-09-16 01:35:07',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (82,NULL,1,'Subject for Meeting','2022-04-12 00:42:10',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (83,NULL,9,'Subject for Tell a Friend','2022-04-21 08:02:10',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (84,NULL,2,'Subject for Phone Call','2022-04-17 16:48:45',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (85,NULL,2,'Subject for Phone Call','2023-01-06 18:47:19',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (86,NULL,9,'Subject for Tell a Friend','2022-07-02 13:11:42',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (87,NULL,2,'Subject for Phone Call','2022-12-02 08:07:29',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (88,NULL,1,'Subject for Meeting','2022-12-22 16:56:23',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (89,NULL,55,'Subject for Interview','2022-09-16 14:21:34',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (90,NULL,2,'Subject for Phone Call','2022-12-28 01:19:37',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (91,NULL,55,'Subject for Interview','2022-12-18 20:00:38',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (92,NULL,22,'Subject for Print/Merge Document','2022-08-13 06:15:19',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (93,NULL,2,'Subject for Phone Call','2022-01-27 18:12:26',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (94,NULL,1,'Subject for Meeting','2022-02-15 00:48:04',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (95,NULL,1,'Subject for Meeting','2022-12-01 15:06:47',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (96,NULL,9,'Subject for Tell a Friend','2022-02-05 05:53:50',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (97,NULL,2,'Subject for Phone Call','2022-07-16 00:44:50',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (98,NULL,22,'Subject for Print/Merge Document','2022-06-05 13:57:09',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (99,NULL,9,'Subject for Tell a Friend','2022-09-12 00:51:27',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (100,NULL,55,'Subject for Interview','2022-11-29 23:57:13',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (101,NULL,1,'Subject for Meeting','2022-11-01 13:23:31',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (102,NULL,9,'Subject for Tell a Friend','2022-09-30 13:36:25',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (103,NULL,22,'Subject for Print/Merge Document','2022-08-09 14:10:15',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (104,NULL,9,'Subject for Tell a Friend','2022-03-27 07:02:10',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (105,NULL,1,'Subject for Meeting','2023-01-19 20:52:04',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (106,NULL,1,'Subject for Meeting','2022-05-01 00:07:42',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (107,NULL,22,'Subject for Print/Merge Document','2022-07-10 09:33:19',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (108,NULL,22,'Subject for Print/Merge Document','2022-09-28 20:06:09',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (109,NULL,9,'Subject for Tell a Friend','2022-03-17 18:21:45',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (110,NULL,1,'Subject for Meeting','2022-03-05 20:23:39',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (111,NULL,2,'Subject for Phone Call','2022-04-10 05:16:00',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (112,NULL,2,'Subject for Phone Call','2022-02-11 10:03:30',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (113,NULL,9,'Subject for Tell a Friend','2022-11-14 10:08:16',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (114,NULL,2,'Subject for Phone Call','2022-09-23 23:30:57',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (115,NULL,9,'Subject for Tell a Friend','2022-03-30 22:32:53',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (116,NULL,1,'Subject for Meeting','2022-12-20 00:14:18',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (117,NULL,55,'Subject for Interview','2022-02-28 23:26:20',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (118,NULL,22,'Subject for Print/Merge Document','2022-10-01 19:51:28',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (119,NULL,1,'Subject for Meeting','2022-12-09 10:59:43',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (120,NULL,9,'Subject for Tell a Friend','2022-11-17 15:07:19',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (121,NULL,9,'Subject for Tell a Friend','2022-07-10 17:49:46',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (122,NULL,55,'Subject for Interview','2022-08-19 15:11:48',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (123,NULL,55,'Subject for Interview','2022-08-14 21:53:38',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (124,NULL,2,'Subject for Phone Call','2022-08-10 20:56:05',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (125,NULL,1,'Subject for Meeting','2022-05-03 12:07:09',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (126,NULL,9,'Subject for Tell a Friend','2022-05-25 15:06:15',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (127,NULL,9,'Subject for Tell a Friend','2022-09-15 18:59:31',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (128,NULL,22,'Subject for Print/Merge Document','2022-07-28 22:26:22',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (129,NULL,9,'Subject for Tell a Friend','2022-09-23 15:03:45',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (130,NULL,55,'Subject for Interview','2022-07-06 09:39:42',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (131,NULL,9,'Subject for Tell a Friend','2022-11-07 03:23:16',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (132,NULL,22,'Subject for Print/Merge Document','2022-06-22 06:51:49',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (133,NULL,22,'Subject for Print/Merge Document','2022-08-12 07:52:54',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (134,NULL,2,'Subject for Phone Call','2022-10-16 07:06:32',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (135,NULL,22,'Subject for Print/Merge Document','2022-05-10 20:14:25',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (136,NULL,9,'Subject for Tell a Friend','2022-07-09 19:40:29',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (137,NULL,2,'Subject for Phone Call','2022-06-28 13:38:10',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (138,NULL,9,'Subject for Tell a Friend','2022-05-13 05:22:35',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (139,NULL,2,'Subject for Phone Call','2022-05-06 00:26:12',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (140,NULL,2,'Subject for Phone Call','2022-10-23 02:47:24',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (141,NULL,1,'Subject for Meeting','2022-04-09 18:37:05',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (142,NULL,9,'Subject for Tell a Friend','2022-02-09 10:53:23',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (143,NULL,1,'Subject for Meeting','2023-01-03 02:48:40',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (144,NULL,9,'Subject for Tell a Friend','2022-07-01 12:28:51',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (145,NULL,22,'Subject for Print/Merge Document','2022-09-02 09:50:02',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (146,NULL,9,'Subject for Tell a Friend','2022-08-09 09:47:48',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (147,NULL,22,'Subject for Print/Merge Document','2022-11-04 18:24:19',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (148,NULL,2,'Subject for Phone Call','2023-01-20 17:00:22',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (149,NULL,1,'Subject for Meeting','2022-04-23 15:58:10',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (150,NULL,9,'Subject for Tell a Friend','2022-05-16 00:17:30',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (151,NULL,1,'Subject for Meeting','2022-02-12 00:26:01',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (152,NULL,1,'Subject for Meeting','2022-02-23 07:48:28',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (153,NULL,22,'Subject for Print/Merge Document','2022-07-04 08:22:19',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (154,NULL,1,'Subject for Meeting','2022-02-15 20:20:56',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (155,NULL,1,'Subject for Meeting','2022-10-29 14:44:19',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (156,NULL,9,'Subject for Tell a Friend','2022-10-09 10:55:55',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (157,NULL,1,'Subject for Meeting','2022-02-16 23:21:53',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (158,NULL,22,'Subject for Print/Merge Document','2022-12-05 13:33:04',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (159,NULL,2,'Subject for Phone Call','2022-11-19 22:56:36',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (160,NULL,2,'Subject for Phone Call','2022-02-15 03:19:03',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (161,NULL,55,'Subject for Interview','2022-10-07 20:41:30',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (162,NULL,55,'Subject for Interview','2022-04-06 00:18:43',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (163,NULL,9,'Subject for Tell a Friend','2022-03-25 22:05:19',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (164,NULL,55,'Subject for Interview','2022-08-24 06:46:20',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (165,NULL,55,'Subject for Interview','2022-10-01 21:21:55',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (166,NULL,22,'Subject for Print/Merge Document','2022-04-26 09:29:55',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (167,NULL,55,'Subject for Interview','2022-10-06 18:39:51',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (168,NULL,1,'Subject for Meeting','2022-04-07 08:23:09',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (169,NULL,9,'Subject for Tell a Friend','2022-04-20 02:58:58',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (170,NULL,22,'Subject for Print/Merge Document','2022-04-17 12:28:34',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (171,NULL,55,'Subject for Interview','2022-06-25 00:55:40',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (172,NULL,1,'Subject for Meeting','2022-04-10 12:37:12',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (173,NULL,9,'Subject for Tell a Friend','2022-02-06 14:21:05',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (174,NULL,55,'Subject for Interview','2022-08-02 12:52:14',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (175,NULL,55,'Subject for Interview','2022-07-18 01:24:01',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (176,NULL,2,'Subject for Phone Call','2022-09-17 22:53:12',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (177,NULL,55,'Subject for Interview','2022-06-17 18:37:22',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (178,NULL,55,'Subject for Interview','2022-02-25 02:25:51',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (179,NULL,1,'Subject for Meeting','2022-02-15 00:12:32',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (180,NULL,55,'Subject for Interview','2022-08-17 04:31:51',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (181,NULL,2,'Subject for Phone Call','2022-04-09 13:22:58',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (182,NULL,22,'Subject for Print/Merge Document','2022-03-26 05:46:41',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (183,NULL,9,'Subject for Tell a Friend','2022-01-30 19:35:53',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (184,NULL,9,'Subject for Tell a Friend','2022-11-18 12:51:04',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (185,NULL,55,'Subject for Interview','2022-05-13 09:40:35',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (186,NULL,2,'Subject for Phone Call','2022-05-05 17:09:46',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (187,NULL,2,'Subject for Phone Call','2022-04-17 06:30:28',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (188,NULL,9,'Subject for Tell a Friend','2022-03-20 21:23:55',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (189,NULL,22,'Subject for Print/Merge Document','2022-06-19 12:25:47',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (190,NULL,22,'Subject for Print/Merge Document','2022-02-02 15:25:43',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (191,NULL,9,'Subject for Tell a Friend','2022-02-24 22:23:00',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (192,NULL,1,'Subject for Meeting','2022-12-09 11:37:36',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (193,NULL,1,'Subject for Meeting','2022-07-08 23:57:39',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (194,NULL,1,'Subject for Meeting','2022-02-27 00:26:52',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (195,NULL,22,'Subject for Print/Merge Document','2022-07-16 12:11:59',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (196,NULL,9,'Subject for Tell a Friend','2022-09-10 22:20:26',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (197,NULL,1,'Subject for Meeting','2022-12-22 06:01:06',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (198,NULL,55,'Subject for Interview','2022-10-09 17:28:57',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (199,NULL,55,'Subject for Interview','2022-12-17 05:34:50',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (200,NULL,22,'Subject for Print/Merge Document','2022-10-08 09:24:48',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (201,NULL,1,'Subject for Meeting','2022-11-19 05:10:30',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (202,NULL,22,'Subject for Print/Merge Document','2023-01-06 08:22:56',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (203,NULL,22,'Subject for Print/Merge Document','2023-01-25 07:09:05',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (204,NULL,9,'Subject for Tell a Friend','2022-09-27 21:19:30',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (205,NULL,55,'Subject for Interview','2022-02-11 19:39:54',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (206,NULL,55,'Subject for Interview','2022-04-07 13:12:44',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (207,NULL,22,'Subject for Print/Merge Document','2023-01-17 11:01:02',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (208,NULL,55,'Subject for Interview','2022-03-08 14:01:22',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (209,NULL,55,'Subject for Interview','2022-03-25 14:08:23',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (210,NULL,9,'Subject for Tell a Friend','2022-11-17 09:21:43',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (211,NULL,9,'Subject for Tell a Friend','2022-11-27 16:31:33',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (212,NULL,55,'Subject for Interview','2022-03-31 02:05:55',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (213,NULL,2,'Subject for Phone Call','2022-06-07 08:20:32',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (214,NULL,9,'Subject for Tell a Friend','2022-11-19 12:32:21',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (215,NULL,2,'Subject for Phone Call','2022-09-19 10:15:57',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (216,NULL,55,'Subject for Interview','2022-12-23 10:08:48',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (217,NULL,22,'Subject for Print/Merge Document','2022-12-08 04:56:44',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (218,NULL,2,'Subject for Phone Call','2022-04-23 07:14:52',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (219,NULL,9,'Subject for Tell a Friend','2022-02-07 03:00:51',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (220,NULL,1,'Subject for Meeting','2022-09-01 17:24:10',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (221,NULL,2,'Subject for Phone Call','2022-02-28 15:23:49',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (222,NULL,22,'Subject for Print/Merge Document','2022-10-04 13:40:29',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (223,NULL,9,'Subject for Tell a Friend','2022-05-03 15:53:08',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (224,NULL,22,'Subject for Print/Merge Document','2022-10-09 21:18:51',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (225,NULL,2,'Subject for Phone Call','2022-07-03 07:38:49',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (226,NULL,22,'Subject for Print/Merge Document','2022-12-25 20:38:09',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (227,NULL,22,'Subject for Print/Merge Document','2022-10-25 16:57:24',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (228,NULL,22,'Subject for Print/Merge Document','2022-08-22 02:08:08',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (229,NULL,22,'Subject for Print/Merge Document','2022-09-07 11:09:48',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (230,NULL,22,'Subject for Print/Merge Document','2022-04-03 17:32:26',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (231,NULL,1,'Subject for Meeting','2022-11-03 18:03:17',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (232,NULL,22,'Subject for Print/Merge Document','2022-10-22 20:21:34',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (233,NULL,1,'Subject for Meeting','2022-12-27 17:17:54',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (234,NULL,55,'Subject for Interview','2022-09-29 09:32:34',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (235,NULL,9,'Subject for Tell a Friend','2022-10-27 21:22:59',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (236,NULL,9,'Subject for Tell a Friend','2022-09-18 04:36:00',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (237,NULL,2,'Subject for Phone Call','2022-05-07 02:24:37',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (238,NULL,1,'Subject for Meeting','2022-04-02 13:23:02',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (239,NULL,2,'Subject for Phone Call','2022-03-21 04:09:45',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (240,NULL,2,'Subject for Phone Call','2022-03-03 03:24:45',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (241,NULL,9,'Subject for Tell a Friend','2022-01-28 01:40:19',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (242,NULL,9,'Subject for Tell a Friend','2022-09-12 16:10:04',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (243,NULL,55,'Subject for Interview','2022-11-09 02:51:04',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (244,NULL,55,'Subject for Interview','2022-11-27 14:54:41',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (245,NULL,9,'Subject for Tell a Friend','2022-05-04 17:56:16',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (246,NULL,22,'Subject for Print/Merge Document','2022-07-16 08:46:33',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (247,NULL,22,'Subject for Print/Merge Document','2022-02-15 15:03:47',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (248,NULL,1,'Subject for Meeting','2022-11-06 01:35:36',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (249,NULL,55,'Subject for Interview','2022-11-23 04:23:39',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (250,NULL,9,'Subject for Tell a Friend','2022-09-02 19:11:35',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (251,NULL,55,'Subject for Interview','2022-11-14 07:24:24',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (252,NULL,22,'Subject for Print/Merge Document','2023-01-14 06:57:29',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (253,NULL,1,'Subject for Meeting','2022-06-24 19:28:35',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (254,NULL,1,'Subject for Meeting','2022-03-20 17:00:50',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (255,NULL,1,'Subject for Meeting','2023-01-09 18:59:52',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (256,NULL,9,'Subject for Tell a Friend','2022-08-29 14:50:49',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (257,NULL,55,'Subject for Interview','2023-01-01 22:23:13',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (258,NULL,2,'Subject for Phone Call','2022-03-10 06:55:07',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (259,NULL,55,'Subject for Interview','2022-08-25 02:05:27',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (260,NULL,22,'Subject for Print/Merge Document','2022-08-27 10:28:53',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (261,NULL,22,'Subject for Print/Merge Document','2022-06-16 18:47:28',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (262,NULL,1,'Subject for Meeting','2022-10-22 03:49:26',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (263,NULL,1,'Subject for Meeting','2022-07-07 03:31:19',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (264,NULL,2,'Subject for Phone Call','2022-06-19 01:56:21',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (265,NULL,2,'Subject for Phone Call','2022-03-17 16:05:59',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (266,NULL,55,'Subject for Interview','2022-11-28 16:26:42',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (267,NULL,9,'Subject for Tell a Friend','2022-11-14 01:11:27',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (268,NULL,22,'Subject for Print/Merge Document','2022-07-07 18:42:52',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (269,NULL,9,'Subject for Tell a Friend','2022-06-08 02:16:18',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (270,NULL,55,'Subject for Interview','2022-08-06 09:48:05',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (271,NULL,22,'Subject for Print/Merge Document','2022-03-13 20:40:09',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (272,NULL,55,'Subject for Interview','2022-04-21 11:16:25',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (273,NULL,55,'Subject for Interview','2022-07-10 22:24:18',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (274,NULL,22,'Subject for Print/Merge Document','2022-07-08 00:12:46',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (275,NULL,2,'Subject for Phone Call','2022-02-12 14:27:53',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (276,NULL,2,'Subject for Phone Call','2022-08-09 04:35:44',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (277,NULL,22,'Subject for Print/Merge Document','2023-01-17 10:47:26',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (278,NULL,1,'Subject for Meeting','2022-08-23 07:17:50',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (279,NULL,9,'Subject for Tell a Friend','2022-12-29 12:52:05',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (280,NULL,22,'Subject for Print/Merge Document','2023-01-14 08:16:48',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (281,NULL,2,'Subject for Phone Call','2022-08-30 12:49:00',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (282,NULL,9,'Subject for Tell a Friend','2022-03-19 22:19:00',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (283,NULL,55,'Subject for Interview','2022-06-17 05:37:03',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (284,NULL,2,'Subject for Phone Call','2022-05-07 00:05:58',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (285,NULL,22,'Subject for Print/Merge Document','2022-05-01 10:34:26',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (286,NULL,2,'Subject for Phone Call','2022-08-10 04:34:35',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (287,NULL,2,'Subject for Phone Call','2022-10-02 01:52:57',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (288,NULL,2,'Subject for Phone Call','2022-06-12 12:53:03',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (289,NULL,1,'Subject for Meeting','2022-02-14 21:27:23',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (290,NULL,9,'Subject for Tell a Friend','2022-02-16 08:50:52',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (291,NULL,9,'Subject for Tell a Friend','2022-11-23 16:40:23',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (292,NULL,22,'Subject for Print/Merge Document','2022-02-01 16:05:52',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (293,NULL,1,'Subject for Meeting','2022-08-13 11:04:17',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (294,NULL,55,'Subject for Interview','2022-05-25 04:42:45',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (295,NULL,1,'Subject for Meeting','2022-04-30 11:39:40',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (296,NULL,22,'Subject for Print/Merge Document','2022-09-22 20:33:41',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (297,NULL,22,'Subject for Print/Merge Document','2022-07-31 04:07:46',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (298,NULL,22,'Subject for Print/Merge Document','2022-02-25 01:22:22',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (299,NULL,22,'Subject for Print/Merge Document','2022-05-20 18:28:18',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (300,NULL,2,'Subject for Phone Call','2022-09-11 10:30:08',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (301,NULL,1,'Subject for Meeting','2022-07-15 06:27:58',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (302,NULL,22,'Subject for Print/Merge Document','2022-10-07 15:08:54',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (303,NULL,1,'Subject for Meeting','2022-11-14 21:53:26',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (304,NULL,55,'Subject for Interview','2022-08-12 18:14:08',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (305,NULL,2,'Subject for Phone Call','2022-09-06 16:55:43',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (306,NULL,1,'Subject for Meeting','2022-05-20 14:34:04',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (307,NULL,2,'Subject for Phone Call','2022-09-21 10:20:31',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (308,NULL,22,'Subject for Print/Merge Document','2022-04-11 08:08:36',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (309,NULL,9,'Subject for Tell a Friend','2022-06-19 15:14:47',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (310,NULL,9,'Subject for Tell a Friend','2022-10-21 09:26:34',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (311,NULL,9,'Subject for Tell a Friend','2022-07-09 23:12:09',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (312,NULL,1,'Subject for Meeting','2023-01-16 03:44:05',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (313,NULL,1,'Subject for Meeting','2022-02-16 11:03:23',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (314,NULL,1,'Subject for Meeting','2022-10-08 01:10:37',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (315,NULL,2,'Subject for Phone Call','2022-02-23 19:53:12',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (316,NULL,55,'Subject for Interview','2023-01-23 02:10:49',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (317,NULL,22,'Subject for Print/Merge Document','2022-12-29 20:17:46',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (318,NULL,1,'Subject for Meeting','2022-08-11 05:58:08',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (319,NULL,22,'Subject for Print/Merge Document','2022-03-31 19:21:55',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (320,NULL,55,'Subject for Interview','2022-03-05 22:21:06',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (321,NULL,55,'Subject for Interview','2022-09-24 11:00:40',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (322,NULL,1,'Subject for Meeting','2022-11-10 04:53:14',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (323,NULL,55,'Subject for Interview','2022-09-14 08:09:24',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (324,NULL,2,'Subject for Phone Call','2022-07-20 08:29:30',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (325,NULL,55,'Subject for Interview','2022-12-11 10:11:15',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (326,NULL,9,'Subject for Tell a Friend','2022-07-16 14:34:32',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (327,NULL,9,'Subject for Tell a Friend','2022-07-11 22:15:57',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (328,NULL,55,'Subject for Interview','2022-03-13 06:31:20',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (329,NULL,22,'Subject for Print/Merge Document','2022-10-31 14:40:23',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (330,NULL,22,'Subject for Print/Merge Document','2022-04-07 04:26:58',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (331,NULL,22,'Subject for Print/Merge Document','2023-01-15 02:09:43',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (332,NULL,55,'Subject for Interview','2022-10-09 13:00:25',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (333,NULL,2,'Subject for Phone Call','2022-11-16 21:59:34',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (334,NULL,2,'Subject for Phone Call','2022-02-21 10:26:56',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (335,NULL,55,'Subject for Interview','2022-10-24 06:46:05',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (336,NULL,1,'Subject for Meeting','2022-03-15 22:10:05',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (337,NULL,2,'Subject for Phone Call','2022-05-24 12:43:26',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (338,NULL,22,'Subject for Print/Merge Document','2022-06-07 04:35:42',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (339,NULL,55,'Subject for Interview','2022-02-11 06:05:18',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (340,NULL,2,'Subject for Phone Call','2022-04-16 11:55:39',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (341,NULL,1,'Subject for Meeting','2022-04-29 01:02:20',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (342,NULL,1,'Subject for Meeting','2022-05-28 17:18:39',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (343,NULL,2,'Subject for Phone Call','2022-05-04 16:23:41',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (344,NULL,22,'Subject for Print/Merge Document','2022-12-07 17:23:39',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (345,NULL,2,'Subject for Phone Call','2022-03-21 10:09:35',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (346,NULL,2,'Subject for Phone Call','2022-05-15 23:28:15',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (347,NULL,9,'Subject for Tell a Friend','2022-02-15 18:38:58',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (348,NULL,55,'Subject for Interview','2022-10-17 22:02:02',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (349,NULL,1,'Subject for Meeting','2022-01-28 10:21:18',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (350,NULL,55,'Subject for Interview','2022-03-24 18:45:34',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (351,NULL,2,'Subject for Phone Call','2022-06-04 02:18:36',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (352,NULL,55,'Subject for Interview','2022-08-03 11:35:55',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (353,NULL,2,'Subject for Phone Call','2022-02-25 08:25:34',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (354,NULL,2,'Subject for Phone Call','2022-12-15 09:11:27',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (355,NULL,2,'Subject for Phone Call','2022-02-25 22:56:54',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (356,NULL,9,'Subject for Tell a Friend','2022-06-09 09:08:24',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (357,NULL,22,'Subject for Print/Merge Document','2022-06-10 16:16:21',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (358,NULL,1,'Subject for Meeting','2022-03-31 07:15:32',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (359,NULL,55,'Subject for Interview','2022-10-28 02:37:19',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (360,NULL,2,'Subject for Phone Call','2022-07-29 18:40:57',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (361,NULL,1,'Subject for Meeting','2022-04-17 16:28:26',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (362,NULL,22,'Subject for Print/Merge Document','2022-05-04 17:26:23',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (363,NULL,1,'Subject for Meeting','2022-06-03 08:00:04',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (364,NULL,9,'Subject for Tell a Friend','2022-07-17 16:37:18',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (365,NULL,2,'Subject for Phone Call','2022-08-30 05:11:30',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:20','2023-01-25 00:10:20'),
- (366,NULL,9,'Subject for Tell a Friend','2022-12-01 18:36:52',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (367,NULL,55,'Subject for Interview','2022-09-11 04:39:24',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (368,NULL,2,'Subject for Phone Call','2022-08-01 19:29:11',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (369,NULL,2,'Subject for Phone Call','2022-12-10 09:43:36',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (370,NULL,1,'Subject for Meeting','2022-11-11 22:54:30',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (371,NULL,55,'Subject for Interview','2022-11-03 14:03:56',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (372,NULL,2,'Subject for Phone Call','2022-07-07 23:35:20',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (373,NULL,1,'Subject for Meeting','2022-06-04 16:46:14',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (374,NULL,2,'Subject for Phone Call','2022-06-09 13:34:38',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (375,NULL,9,'Subject for Tell a Friend','2022-06-22 07:13:26',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (376,NULL,2,'Subject for Phone Call','2023-01-12 21:08:52',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (377,NULL,9,'Subject for Tell a Friend','2022-11-05 07:58:45',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (378,NULL,22,'Subject for Print/Merge Document','2022-10-13 09:30:23',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (379,NULL,22,'Subject for Print/Merge Document','2022-10-18 21:51:19',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (380,NULL,55,'Subject for Interview','2022-11-01 09:21:46',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (381,NULL,22,'Subject for Print/Merge Document','2022-05-14 22:51:40',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (382,NULL,1,'Subject for Meeting','2022-12-10 11:58:06',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (383,NULL,22,'Subject for Print/Merge Document','2022-07-29 22:13:59',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (384,NULL,22,'Subject for Print/Merge Document','2022-07-11 20:50:29',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (385,NULL,55,'Subject for Interview','2023-01-04 22:59:28',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (386,NULL,2,'Subject for Phone Call','2022-02-08 19:25:15',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (387,NULL,55,'Subject for Interview','2023-01-05 07:49:11',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (388,NULL,9,'Subject for Tell a Friend','2022-05-23 12:15:50',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (389,NULL,9,'Subject for Tell a Friend','2022-11-12 23:54:49',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (390,NULL,1,'Subject for Meeting','2022-05-14 20:54:07',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (391,NULL,9,'Subject for Tell a Friend','2022-12-22 11:33:14',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (392,NULL,55,'Subject for Interview','2022-12-29 15:19:40',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (393,NULL,1,'Subject for Meeting','2022-09-28 21:15:22',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (394,NULL,22,'Subject for Print/Merge Document','2022-04-14 05:42:58',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (395,NULL,9,'Subject for Tell a Friend','2023-01-18 22:57:45',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (396,NULL,2,'Subject for Phone Call','2022-03-24 23:37:37',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (397,NULL,22,'Subject for Print/Merge Document','2022-07-19 15:10:05',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (398,NULL,2,'Subject for Phone Call','2022-02-02 19:55:04',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (399,NULL,1,'Subject for Meeting','2022-05-13 00:35:39',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (400,NULL,9,'Subject for Tell a Friend','2022-11-23 00:32:28',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (401,NULL,2,'Subject for Phone Call','2022-09-10 04:30:04',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (402,NULL,55,'Subject for Interview','2022-03-09 13:35:15',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (403,NULL,1,'Subject for Meeting','2022-02-24 02:48:54',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (404,NULL,55,'Subject for Interview','2022-08-16 03:27:07',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (405,NULL,55,'Subject for Interview','2022-09-27 14:50:14',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (406,NULL,55,'Subject for Interview','2022-01-29 14:16:43',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (407,NULL,1,'Subject for Meeting','2022-04-19 00:01:42',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (408,NULL,22,'Subject for Print/Merge Document','2022-11-20 16:15:04',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (409,NULL,9,'Subject for Tell a Friend','2022-11-27 03:05:42',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (410,NULL,9,'Subject for Tell a Friend','2022-07-06 04:03:50',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (411,NULL,1,'Subject for Meeting','2022-05-16 23:18:57',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (412,NULL,9,'Subject for Tell a Friend','2022-03-06 16:26:43',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (413,NULL,9,'Subject for Tell a Friend','2022-06-08 23:48:30',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (414,NULL,2,'Subject for Phone Call','2022-10-27 21:07:59',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (415,NULL,55,'Subject for Interview','2022-07-08 12:49:31',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (416,NULL,1,'Subject for Meeting','2022-04-18 12:46:39',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (417,NULL,55,'Subject for Interview','2022-06-06 03:08:02',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (418,NULL,9,'Subject for Tell a Friend','2022-05-11 20:40:25',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (419,NULL,2,'Subject for Phone Call','2022-11-19 17:57:15',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (420,NULL,55,'Subject for Interview','2022-10-02 22:27:47',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (421,NULL,22,'Subject for Print/Merge Document','2022-06-12 11:24:34',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (422,NULL,9,'Subject for Tell a Friend','2022-06-07 02:34:15',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (423,NULL,9,'Subject for Tell a Friend','2022-04-01 21:50:10',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (424,NULL,9,'Subject for Tell a Friend','2022-05-07 20:33:44',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (425,NULL,55,'Subject for Interview','2022-05-15 12:43:00',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (426,NULL,9,'Subject for Tell a Friend','2022-10-17 16:26:52',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (427,NULL,2,'Subject for Phone Call','2022-06-24 10:28:20',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (428,NULL,22,'Subject for Print/Merge Document','2022-05-24 19:41:03',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (429,NULL,9,'Subject for Tell a Friend','2022-03-16 19:25:52',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (430,NULL,9,'Subject for Tell a Friend','2022-05-06 15:49:52',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (431,NULL,55,'Subject for Interview','2022-10-16 16:58:35',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (432,NULL,1,'Subject for Meeting','2022-06-06 01:14:05',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (433,NULL,2,'Subject for Phone Call','2022-07-29 23:24:08',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (434,NULL,2,'Subject for Phone Call','2022-11-05 17:52:33',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (435,NULL,55,'Subject for Interview','2022-08-26 04:38:22',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (436,NULL,1,'Subject for Meeting','2022-08-31 08:25:03',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (437,NULL,1,'Subject for Meeting','2022-05-31 09:21:34',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (438,NULL,9,'Subject for Tell a Friend','2022-06-03 04:45:45',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (439,NULL,9,'Subject for Tell a Friend','2022-10-09 13:02:52',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (440,NULL,9,'Subject for Tell a Friend','2022-10-11 15:19:01',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (441,NULL,2,'Subject for Phone Call','2022-07-06 13:39:38',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (442,NULL,22,'Subject for Print/Merge Document','2022-03-20 18:31:37',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (443,NULL,22,'Subject for Print/Merge Document','2022-04-12 02:00:41',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (444,NULL,1,'Subject for Meeting','2022-08-15 10:19:07',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (445,NULL,22,'Subject for Print/Merge Document','2022-10-14 14:58:03',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (446,NULL,9,'Subject for Tell a Friend','2022-03-13 00:56:35',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (447,NULL,22,'Subject for Print/Merge Document','2022-03-30 11:40:14',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (448,NULL,1,'Subject for Meeting','2022-10-30 03:14:33',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (449,NULL,2,'Subject for Phone Call','2022-08-04 16:26:09',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (450,NULL,2,'Subject for Phone Call','2022-06-09 04:51:59',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (451,1,6,'$ 125 April Mailer 1','2023-03-25 11:10:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (452,2,6,'$ 50 Online: Save the Penguins','2023-03-25 11:10:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (453,3,6,'£ 25 April Mailer 1','2023-03-25 11:10:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (454,4,6,'$ 50 Online: Save the Penguins','2023-03-25 11:10:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (455,5,6,'$ 50 Online: Save the Penguins','2023-03-25 11:10:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (456,6,6,'$ 500 April Mailer 1','2023-03-25 11:10:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (457,7,6,'$ 1750 Online: Save the Penguins','2023-03-25 11:10:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (458,8,6,'$ 50 Online: Save the Penguins','2023-03-25 11:10:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (459,9,6,'$ 10 Online: Help CiviCRM','2023-03-25 11:10:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (460,10,6,'$ 250 Online: Help CiviCRM','2023-03-25 11:10:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (461,11,6,'Â¥ 500 ','2023-03-25 11:10:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (462,12,6,'$ 50 Online: Save the Penguins','2023-03-25 11:10:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (463,13,6,'$ 50 ','2023-03-25 11:10:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (464,14,6,'$ 50 ','2023-03-25 11:10:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (465,15,6,'$ 25 Recurring contribution','2023-03-25 11:10:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (466,16,6,'$ 25 Recurring contribution','2023-03-25 11:10:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (467,17,6,'$ 25 Recurring contribution','2023-03-25 11:10:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (468,18,6,'$ 25 Recurring contribution','2023-03-25 11:10:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (469,19,6,'$ 25 Recurring contribution','2023-03-25 11:10:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (470,20,6,'$ 25 Recurring contribution','2023-03-25 11:10:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (471,21,6,'$ 25 Recurring contribution','2023-03-25 11:10:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (472,22,6,'$ 25 Recurring contribution','2023-03-25 11:10:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (473,23,6,'$ 25 Recurring contribution','2023-03-25 11:10:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (474,24,6,'$ 25 Recurring contribution','2023-03-25 11:10:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (475,25,6,'$ 25 Recurring contribution','2023-03-25 11:10:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (476,26,6,'$ 10 Recurring contribution','2023-03-25 11:10:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (477,27,6,'$ 10 Recurring contribution','2023-03-25 11:10:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (478,28,6,'$ 10 Recurring contribution','2023-03-25 11:10:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (479,29,6,'$ 10 Recurring contribution','2023-03-25 11:10:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (480,30,6,'$ 10 Recurring contribution','2023-03-25 11:10:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (481,31,6,'€ 5 Recurring contribution','2023-03-25 11:10:21',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (482,1,7,'General','2023-01-25 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (483,2,7,'Student','2023-01-24 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (484,3,7,'General','2023-01-23 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (485,4,7,'Student','2023-01-22 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (486,5,7,'Student','2022-01-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (487,6,7,'Student','2023-01-20 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (488,7,7,'General','2023-01-19 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (489,8,7,'Student','2023-01-18 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (490,9,7,'General','2023-01-17 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (491,10,7,'Student','2022-01-16 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (492,11,7,'Lifetime','2023-01-15 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (493,12,7,'Student','2023-01-14 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (494,13,7,'General','2023-01-13 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (495,14,7,'Student','2023-01-12 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (496,15,7,'General','2020-10-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (497,16,7,'Student','2023-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (498,17,7,'General','2023-01-09 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (499,18,7,'Student','2023-01-08 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (500,19,7,'General','2023-01-07 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (501,20,7,'Student','2022-01-06 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (502,21,7,'General','2023-01-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (503,22,7,'Lifetime','2023-01-04 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (504,23,7,'General','2023-01-03 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (505,24,7,'Student','2023-01-02 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (506,25,7,'General','2020-07-17 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (507,26,7,'Student','2022-12-31 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (508,27,7,'General','2022-12-30 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (509,28,7,'Student','2022-12-29 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (510,29,7,'General','2022-12-28 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (511,30,7,'General','2020-06-07 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (512,32,6,'$ 100.00 - General Membership: Offline signup','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (513,33,6,'$ 50.00 - Student Membership: Offline signup','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (514,34,6,'$ 100.00 - General Membership: Offline signup','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (515,35,6,'$ 50.00 - Student Membership: Offline signup','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (516,36,6,'$ 50.00 - Student Membership: Offline signup','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (517,37,6,'$ 50.00 - Student Membership: Offline signup','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (518,38,6,'$ 100.00 - General Membership: Offline signup','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (519,39,6,'$ 50.00 - Student Membership: Offline signup','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (520,40,6,'$ 100.00 - General Membership: Offline signup','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (521,41,6,'$ 50.00 - Student Membership: Offline signup','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (522,42,6,'$ 1200.00 - Lifetime Membership: Offline signup','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (523,43,6,'$ 50.00 - Student Membership: Offline signup','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (524,44,6,'$ 100.00 - General Membership: Offline signup','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (525,45,6,'$ 50.00 - Student Membership: Offline signup','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (526,46,6,'$ 100.00 - General Membership: Offline signup','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (527,47,6,'$ 50.00 - Student Membership: Offline signup','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (528,48,6,'$ 100.00 - General Membership: Offline signup','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (529,49,6,'$ 50.00 - Student Membership: Offline signup','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (530,50,6,'$ 100.00 - General Membership: Offline signup','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (531,51,6,'$ 50.00 - Student Membership: Offline signup','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (532,52,6,'$ 100.00 - General Membership: Offline signup','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (533,53,6,'$ 1200.00 - Lifetime Membership: Offline signup','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (534,54,6,'$ 100.00 - General Membership: Offline signup','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (535,55,6,'$ 50.00 - Student Membership: Offline signup','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (536,56,6,'$ 100.00 - General Membership: Offline signup','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (537,57,6,'$ 50.00 - Student Membership: Offline signup','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (538,58,6,'$ 100.00 - General Membership: Offline signup','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (539,59,6,'$ 50.00 - Student Membership: Offline signup','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (540,60,6,'$ 100.00 - General Membership: Offline signup','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (541,61,6,'$ 100.00 - General Membership: Offline signup','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (543,1,5,'NULL','2009-01-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (544,2,5,'NULL','2008-05-07 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (545,3,5,'NULL','2008-05-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (546,4,5,'NULL','2008-10-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (547,5,5,'NULL','2008-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (548,6,5,'NULL','2008-03-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (549,7,5,'NULL','2009-07-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (550,8,5,'NULL','2009-03-07 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (551,9,5,'NULL','2008-02-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (552,10,5,'NULL','2008-02-01 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (553,11,5,'NULL','2009-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (554,12,5,'NULL','2009-03-06 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (555,13,5,'NULL','2008-06-04 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (556,14,5,'NULL','2008-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (557,15,5,'NULL','2008-07-04 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (558,16,5,'NULL','2009-01-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (559,17,5,'NULL','2008-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (560,18,5,'NULL','2009-03-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (561,19,5,'NULL','2008-10-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (562,20,5,'NULL','2009-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (563,21,5,'NULL','2008-03-25 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (564,22,5,'NULL','2009-10-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (565,23,5,'NULL','2008-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (566,24,5,'NULL','2008-03-11 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (567,25,5,'NULL','2008-04-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (568,26,5,'NULL','2009-01-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (569,27,5,'NULL','2008-05-07 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (570,28,5,'NULL','2009-12-12 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (571,29,5,'NULL','2009-12-13 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (572,30,5,'NULL','2009-12-14 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (573,31,5,'NULL','2009-12-15 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (574,32,5,'NULL','2009-07-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (575,33,5,'NULL','2009-03-07 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (576,34,5,'NULL','2009-12-15 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (577,35,5,'NULL','2009-12-13 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (578,36,5,'NULL','2009-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (579,37,5,'NULL','2009-03-06 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (580,38,5,'NULL','2009-12-13 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (581,39,5,'NULL','2008-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (582,40,5,'NULL','2009-12-14 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (583,41,5,'NULL','2009-01-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (584,42,5,'NULL','2009-12-15 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (585,43,5,'NULL','2009-03-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (586,44,5,'NULL','2009-12-13 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (587,45,5,'NULL','2009-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (588,46,5,'NULL','2009-12-13 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (589,47,5,'NULL','2009-10-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (590,48,5,'NULL','2009-12-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (591,49,5,'NULL','2009-03-11 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (592,50,5,'NULL','2009-04-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (593,63,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (594,64,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (595,65,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (596,66,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (597,67,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (598,68,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (599,69,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (600,70,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (601,71,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (602,72,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (603,73,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (604,74,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (605,75,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (606,76,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (607,77,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (608,78,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (609,79,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (610,80,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (611,81,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (612,82,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (613,83,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (614,84,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (615,85,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (616,86,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (617,87,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (618,88,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (619,89,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (620,90,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (621,91,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (622,92,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (623,93,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (624,94,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (625,95,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (626,96,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (627,97,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (628,98,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (629,99,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (630,100,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (631,101,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (632,102,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (633,103,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (634,104,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (635,105,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (636,106,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (637,107,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (638,108,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (639,109,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (640,110,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (641,111,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21'),
- (642,112,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-01-25 11:10:21',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-01-25 00:10:21','2023-01-25 00:10:21');
+ (1,NULL,2,'Subject for Phone Call','2022-09-14 09:54:49',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (2,NULL,2,'Subject for Phone Call','2022-05-19 05:15:29',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (3,NULL,1,'Subject for Meeting','2022-10-23 19:31:51',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (4,NULL,22,'Subject for Print/Merge Document','2022-07-27 07:20:51',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (5,NULL,1,'Subject for Meeting','2022-03-23 02:00:45',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (6,NULL,9,'Subject for Tell a Friend','2022-12-06 12:51:44',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (7,NULL,2,'Subject for Phone Call','2023-02-22 13:43:32',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (8,NULL,22,'Subject for Print/Merge Document','2022-12-08 11:06:42',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (9,NULL,9,'Subject for Tell a Friend','2022-09-06 11:32:48',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (10,NULL,22,'Subject for Print/Merge Document','2022-03-30 08:57:35',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (11,NULL,22,'Subject for Print/Merge Document','2022-06-25 10:22:56',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (12,NULL,2,'Subject for Phone Call','2022-08-20 05:54:50',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (13,NULL,22,'Subject for Print/Merge Document','2022-09-24 18:10:15',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (14,NULL,22,'Subject for Print/Merge Document','2023-02-27 21:26:58',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (15,NULL,55,'Subject for Interview','2022-05-28 06:30:45',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (16,NULL,1,'Subject for Meeting','2023-01-25 20:55:20',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (17,NULL,22,'Subject for Print/Merge Document','2022-09-10 07:37:11',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (18,NULL,22,'Subject for Print/Merge Document','2022-06-15 07:10:21',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (19,NULL,2,'Subject for Phone Call','2023-03-01 14:27:25',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (20,NULL,9,'Subject for Tell a Friend','2022-11-09 16:34:23',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (21,NULL,55,'Subject for Interview','2022-08-18 23:22:18',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (22,NULL,22,'Subject for Print/Merge Document','2023-02-02 20:12:25',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (23,NULL,1,'Subject for Meeting','2022-07-10 18:44:35',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (24,NULL,55,'Subject for Interview','2022-12-19 00:27:11',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (25,NULL,9,'Subject for Tell a Friend','2022-12-16 14:53:56',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (26,NULL,1,'Subject for Meeting','2022-05-27 23:05:02',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (27,NULL,9,'Subject for Tell a Friend','2022-10-01 06:47:40',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (28,NULL,22,'Subject for Print/Merge Document','2023-01-14 08:39:46',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (29,NULL,55,'Subject for Interview','2022-04-11 08:53:16',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (30,NULL,22,'Subject for Print/Merge Document','2022-06-18 23:04:48',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (31,NULL,55,'Subject for Interview','2022-09-10 08:08:03',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (32,NULL,9,'Subject for Tell a Friend','2022-06-06 03:11:19',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (33,NULL,55,'Subject for Interview','2022-04-14 22:57:27',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (34,NULL,2,'Subject for Phone Call','2022-11-16 17:06:05',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (35,NULL,9,'Subject for Tell a Friend','2022-12-22 05:02:59',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (36,NULL,2,'Subject for Phone Call','2023-02-10 18:53:01',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (37,NULL,22,'Subject for Print/Merge Document','2022-09-09 16:53:56',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (38,NULL,1,'Subject for Meeting','2023-02-14 04:48:20',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (39,NULL,22,'Subject for Print/Merge Document','2022-12-04 21:13:53',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (40,NULL,2,'Subject for Phone Call','2022-12-16 19:26:12',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (41,NULL,1,'Subject for Meeting','2022-03-19 19:54:16',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (42,NULL,1,'Subject for Meeting','2022-09-06 17:50:00',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (43,NULL,1,'Subject for Meeting','2023-03-03 04:25:07',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (44,NULL,9,'Subject for Tell a Friend','2023-02-11 04:45:07',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (45,NULL,2,'Subject for Phone Call','2022-06-18 18:34:12',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (46,NULL,22,'Subject for Print/Merge Document','2022-12-07 08:40:54',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (47,NULL,2,'Subject for Phone Call','2022-12-22 20:16:00',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (48,NULL,55,'Subject for Interview','2022-11-19 16:56:07',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (49,NULL,55,'Subject for Interview','2022-05-14 11:22:26',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (50,NULL,2,'Subject for Phone Call','2022-08-12 20:02:38',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (51,NULL,1,'Subject for Meeting','2022-07-01 23:29:17',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (52,NULL,2,'Subject for Phone Call','2022-07-12 09:52:48',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (53,NULL,2,'Subject for Phone Call','2022-05-08 09:55:51',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (54,NULL,9,'Subject for Tell a Friend','2022-06-26 12:56:29',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (55,NULL,9,'Subject for Tell a Friend','2022-09-15 22:14:02',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (56,NULL,9,'Subject for Tell a Friend','2022-06-30 21:26:57',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (57,NULL,22,'Subject for Print/Merge Document','2023-03-04 23:14:13',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (58,NULL,9,'Subject for Tell a Friend','2022-04-25 03:46:28',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (59,NULL,22,'Subject for Print/Merge Document','2023-02-12 12:30:56',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (60,NULL,9,'Subject for Tell a Friend','2022-03-18 06:47:39',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (61,NULL,1,'Subject for Meeting','2022-04-19 16:42:31',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (62,NULL,2,'Subject for Phone Call','2022-10-03 19:59:45',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (63,NULL,2,'Subject for Phone Call','2022-04-07 04:03:20',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (64,NULL,2,'Subject for Phone Call','2022-12-23 18:27:33',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (65,NULL,1,'Subject for Meeting','2022-05-30 07:44:04',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (66,NULL,1,'Subject for Meeting','2022-06-25 11:17:27',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (67,NULL,22,'Subject for Print/Merge Document','2023-01-28 23:19:28',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (68,NULL,22,'Subject for Print/Merge Document','2022-07-16 13:37:18',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (69,NULL,2,'Subject for Phone Call','2022-10-08 06:47:51',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (70,NULL,1,'Subject for Meeting','2022-04-06 14:49:04',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (71,NULL,22,'Subject for Print/Merge Document','2022-07-21 14:58:04',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (72,NULL,9,'Subject for Tell a Friend','2022-11-27 21:47:41',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (73,NULL,2,'Subject for Phone Call','2022-05-15 07:30:20',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (74,NULL,9,'Subject for Tell a Friend','2022-12-10 02:45:46',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (75,NULL,9,'Subject for Tell a Friend','2022-08-08 15:41:01',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (76,NULL,2,'Subject for Phone Call','2023-01-29 08:50:20',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (77,NULL,22,'Subject for Print/Merge Document','2022-05-23 15:00:30',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (78,NULL,1,'Subject for Meeting','2022-10-17 18:01:13',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (79,NULL,2,'Subject for Phone Call','2022-06-27 08:06:49',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (80,NULL,9,'Subject for Tell a Friend','2023-03-04 16:56:48',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (81,NULL,1,'Subject for Meeting','2022-11-21 10:45:59',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (82,NULL,22,'Subject for Print/Merge Document','2022-04-28 16:36:03',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (83,NULL,22,'Subject for Print/Merge Document','2023-02-25 10:34:36',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (84,NULL,2,'Subject for Phone Call','2022-03-16 16:04:03',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (85,NULL,2,'Subject for Phone Call','2022-12-21 06:34:43',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (86,NULL,22,'Subject for Print/Merge Document','2022-08-15 01:34:32',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (87,NULL,55,'Subject for Interview','2022-03-29 14:42:28',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (88,NULL,1,'Subject for Meeting','2022-10-05 04:49:56',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (89,NULL,2,'Subject for Phone Call','2022-08-17 15:04:45',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (90,NULL,2,'Subject for Phone Call','2022-08-25 05:18:58',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (91,NULL,22,'Subject for Print/Merge Document','2023-02-09 01:34:07',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (92,NULL,1,'Subject for Meeting','2022-12-04 10:26:30',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (93,NULL,55,'Subject for Interview','2022-05-10 14:58:33',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (94,NULL,9,'Subject for Tell a Friend','2023-01-10 03:29:46',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (95,NULL,2,'Subject for Phone Call','2022-10-29 07:58:17',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (96,NULL,9,'Subject for Tell a Friend','2022-12-22 19:04:31',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (97,NULL,22,'Subject for Print/Merge Document','2023-02-02 12:06:37',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (98,NULL,9,'Subject for Tell a Friend','2022-08-06 00:49:51',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (99,NULL,22,'Subject for Print/Merge Document','2022-05-20 22:25:10',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (100,NULL,22,'Subject for Print/Merge Document','2022-10-03 14:23:50',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (101,NULL,55,'Subject for Interview','2022-11-10 03:18:51',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (102,NULL,22,'Subject for Print/Merge Document','2022-05-03 15:39:26',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (103,NULL,22,'Subject for Print/Merge Document','2022-12-01 16:29:31',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (104,NULL,22,'Subject for Print/Merge Document','2022-06-21 00:25:27',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (105,NULL,1,'Subject for Meeting','2022-09-22 08:08:55',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (106,NULL,1,'Subject for Meeting','2023-02-16 22:58:19',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (107,NULL,22,'Subject for Print/Merge Document','2022-11-06 21:16:35',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (108,NULL,55,'Subject for Interview','2022-12-15 05:53:39',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (109,NULL,9,'Subject for Tell a Friend','2022-09-19 22:56:52',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (110,NULL,55,'Subject for Interview','2022-11-11 15:05:56',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (111,NULL,2,'Subject for Phone Call','2023-02-19 15:51:45',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (112,NULL,1,'Subject for Meeting','2022-03-20 07:21:06',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (113,NULL,22,'Subject for Print/Merge Document','2022-12-24 00:01:25',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (114,NULL,1,'Subject for Meeting','2022-10-31 09:11:02',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (115,NULL,22,'Subject for Print/Merge Document','2022-04-01 13:07:01',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (116,NULL,9,'Subject for Tell a Friend','2022-05-27 19:36:42',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (117,NULL,1,'Subject for Meeting','2023-01-16 10:17:13',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (118,NULL,9,'Subject for Tell a Friend','2022-06-03 04:38:07',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (119,NULL,9,'Subject for Tell a Friend','2022-11-21 13:13:27',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (120,NULL,1,'Subject for Meeting','2023-02-15 22:49:53',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (121,NULL,22,'Subject for Print/Merge Document','2022-09-24 10:53:45',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (122,NULL,1,'Subject for Meeting','2022-08-20 20:54:46',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (123,NULL,1,'Subject for Meeting','2022-07-24 11:25:25',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (124,NULL,55,'Subject for Interview','2022-10-18 01:00:55',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (125,NULL,2,'Subject for Phone Call','2022-05-09 11:49:30',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (126,NULL,1,'Subject for Meeting','2022-10-29 10:47:04',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (127,NULL,2,'Subject for Phone Call','2022-09-17 08:48:27',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (128,NULL,55,'Subject for Interview','2022-06-21 03:27:49',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (129,NULL,2,'Subject for Phone Call','2022-07-12 06:00:19',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (130,NULL,55,'Subject for Interview','2022-04-30 23:27:41',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (131,NULL,1,'Subject for Meeting','2022-07-02 04:44:44',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (132,NULL,55,'Subject for Interview','2022-04-19 02:55:38',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (133,NULL,9,'Subject for Tell a Friend','2022-05-29 13:18:53',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (134,NULL,9,'Subject for Tell a Friend','2022-03-15 20:37:42',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (135,NULL,55,'Subject for Interview','2022-04-06 08:12:50',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (136,NULL,55,'Subject for Interview','2022-10-08 02:18:56',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (137,NULL,9,'Subject for Tell a Friend','2022-03-23 07:35:23',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (138,NULL,2,'Subject for Phone Call','2022-04-05 11:35:32',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (139,NULL,55,'Subject for Interview','2022-07-05 20:31:52',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (140,NULL,22,'Subject for Print/Merge Document','2022-12-10 19:53:48',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (141,NULL,22,'Subject for Print/Merge Document','2022-05-12 21:29:34',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (142,NULL,1,'Subject for Meeting','2023-01-06 12:12:33',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (143,NULL,2,'Subject for Phone Call','2022-04-10 07:59:52',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (144,NULL,1,'Subject for Meeting','2023-02-19 05:29:48',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (145,NULL,1,'Subject for Meeting','2022-05-06 01:42:39',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (146,NULL,1,'Subject for Meeting','2023-01-26 13:37:32',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (147,NULL,9,'Subject for Tell a Friend','2022-10-03 02:46:29',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (148,NULL,9,'Subject for Tell a Friend','2022-07-25 09:15:11',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (149,NULL,1,'Subject for Meeting','2023-02-21 00:05:16',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (150,NULL,1,'Subject for Meeting','2023-01-11 17:10:52',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (151,NULL,1,'Subject for Meeting','2022-07-04 13:33:08',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (152,NULL,9,'Subject for Tell a Friend','2022-06-07 23:38:09',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22'),
+ (153,NULL,2,'Subject for Phone Call','2022-08-12 06:29:58',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (154,NULL,55,'Subject for Interview','2023-02-22 18:18:19',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (155,NULL,22,'Subject for Print/Merge Document','2023-02-01 15:30:44',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (156,NULL,55,'Subject for Interview','2022-11-06 19:19:37',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (157,NULL,2,'Subject for Phone Call','2023-01-17 21:28:28',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (158,NULL,22,'Subject for Print/Merge Document','2022-06-30 14:38:02',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (159,NULL,55,'Subject for Interview','2022-05-07 18:46:22',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (160,NULL,55,'Subject for Interview','2022-05-19 07:02:12',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (161,NULL,1,'Subject for Meeting','2022-11-14 19:14:10',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (162,NULL,22,'Subject for Print/Merge Document','2022-11-27 18:36:28',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (163,NULL,55,'Subject for Interview','2022-03-28 06:17:50',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (164,NULL,55,'Subject for Interview','2022-11-15 00:00:49',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (165,NULL,9,'Subject for Tell a Friend','2022-05-11 01:52:16',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (166,NULL,55,'Subject for Interview','2022-04-25 08:04:48',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (167,NULL,1,'Subject for Meeting','2022-04-23 03:06:51',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (168,NULL,9,'Subject for Tell a Friend','2022-04-13 16:05:27',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (169,NULL,55,'Subject for Interview','2022-12-14 11:14:54',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (170,NULL,55,'Subject for Interview','2023-01-26 23:20:07',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (171,NULL,55,'Subject for Interview','2022-08-13 20:01:23',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (172,NULL,55,'Subject for Interview','2022-09-03 04:09:10',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (173,NULL,22,'Subject for Print/Merge Document','2022-07-24 12:35:07',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (174,NULL,22,'Subject for Print/Merge Document','2022-05-26 03:45:15',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (175,NULL,22,'Subject for Print/Merge Document','2022-12-04 13:56:57',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (176,NULL,1,'Subject for Meeting','2022-04-29 23:07:40',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (177,NULL,9,'Subject for Tell a Friend','2022-03-22 21:07:23',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (178,NULL,55,'Subject for Interview','2022-10-08 22:04:04',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (179,NULL,55,'Subject for Interview','2022-08-09 15:38:58',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (180,NULL,55,'Subject for Interview','2022-04-17 02:42:15',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (181,NULL,1,'Subject for Meeting','2023-03-04 07:09:48',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (182,NULL,9,'Subject for Tell a Friend','2022-11-08 10:44:35',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (183,NULL,22,'Subject for Print/Merge Document','2022-12-19 20:41:28',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (184,NULL,55,'Subject for Interview','2023-02-12 08:57:49',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (185,NULL,1,'Subject for Meeting','2022-09-04 03:49:19',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (186,NULL,2,'Subject for Phone Call','2022-07-11 11:53:11',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (187,NULL,1,'Subject for Meeting','2022-03-09 10:37:09',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (188,NULL,2,'Subject for Phone Call','2022-03-11 02:59:08',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (189,NULL,1,'Subject for Meeting','2023-02-04 22:25:48',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (190,NULL,55,'Subject for Interview','2022-06-26 12:27:48',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (191,NULL,22,'Subject for Print/Merge Document','2022-07-26 22:01:16',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (192,NULL,2,'Subject for Phone Call','2022-05-13 06:22:01',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (193,NULL,1,'Subject for Meeting','2023-01-14 16:18:58',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (194,NULL,2,'Subject for Phone Call','2022-05-30 05:07:01',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (195,NULL,2,'Subject for Phone Call','2022-08-04 02:16:12',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (196,NULL,9,'Subject for Tell a Friend','2022-09-25 14:45:56',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (197,NULL,55,'Subject for Interview','2022-11-13 00:31:23',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (198,NULL,9,'Subject for Tell a Friend','2023-01-15 17:23:01',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (199,NULL,22,'Subject for Print/Merge Document','2022-04-21 11:42:33',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (200,NULL,9,'Subject for Tell a Friend','2022-04-28 12:36:51',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (201,NULL,55,'Subject for Interview','2022-11-05 12:29:23',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (202,NULL,1,'Subject for Meeting','2022-04-17 17:51:37',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (203,NULL,1,'Subject for Meeting','2022-12-25 19:54:15',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (204,NULL,22,'Subject for Print/Merge Document','2022-07-22 12:53:03',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (205,NULL,22,'Subject for Print/Merge Document','2022-10-25 08:44:29',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (206,NULL,9,'Subject for Tell a Friend','2022-03-19 14:04:16',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (207,NULL,2,'Subject for Phone Call','2023-01-13 22:09:16',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (208,NULL,1,'Subject for Meeting','2023-02-10 05:31:19',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (209,NULL,55,'Subject for Interview','2022-04-25 18:07:58',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (210,NULL,9,'Subject for Tell a Friend','2023-01-31 18:29:51',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (211,NULL,9,'Subject for Tell a Friend','2022-06-15 17:56:08',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (212,NULL,9,'Subject for Tell a Friend','2022-07-25 13:57:56',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (213,NULL,2,'Subject for Phone Call','2022-03-26 21:30:51',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (214,NULL,2,'Subject for Phone Call','2022-10-31 05:53:59',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (215,NULL,55,'Subject for Interview','2023-02-01 16:44:09',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (216,NULL,55,'Subject for Interview','2023-02-18 07:28:53',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (217,NULL,2,'Subject for Phone Call','2022-08-05 06:59:22',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (218,NULL,9,'Subject for Tell a Friend','2022-05-07 21:15:33',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (219,NULL,1,'Subject for Meeting','2022-03-20 20:11:37',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (220,NULL,55,'Subject for Interview','2022-09-19 05:03:08',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (221,NULL,22,'Subject for Print/Merge Document','2023-01-30 09:18:12',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (222,NULL,55,'Subject for Interview','2022-11-17 00:00:32',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (223,NULL,1,'Subject for Meeting','2022-09-15 19:06:21',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (224,NULL,9,'Subject for Tell a Friend','2022-10-05 16:42:54',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (225,NULL,22,'Subject for Print/Merge Document','2022-03-25 17:41:00',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (226,NULL,9,'Subject for Tell a Friend','2023-02-23 12:02:30',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (227,NULL,9,'Subject for Tell a Friend','2022-09-20 14:25:15',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (228,NULL,9,'Subject for Tell a Friend','2022-04-28 00:24:23',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (229,NULL,55,'Subject for Interview','2022-03-30 08:48:25',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (230,NULL,1,'Subject for Meeting','2022-11-18 07:33:03',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (231,NULL,2,'Subject for Phone Call','2022-08-30 18:14:36',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (232,NULL,1,'Subject for Meeting','2022-06-14 15:50:14',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (233,NULL,1,'Subject for Meeting','2022-04-07 18:22:32',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (234,NULL,2,'Subject for Phone Call','2022-10-26 03:45:16',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (235,NULL,9,'Subject for Tell a Friend','2022-09-01 05:47:39',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (236,NULL,2,'Subject for Phone Call','2022-10-20 23:17:13',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (237,NULL,22,'Subject for Print/Merge Document','2022-11-05 13:47:19',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (238,NULL,2,'Subject for Phone Call','2023-03-07 06:02:17',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (239,NULL,2,'Subject for Phone Call','2023-02-14 16:44:11',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (240,NULL,1,'Subject for Meeting','2022-12-31 09:48:37',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (241,NULL,9,'Subject for Tell a Friend','2022-04-21 09:35:43',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (242,NULL,9,'Subject for Tell a Friend','2022-06-22 07:15:54',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (243,NULL,1,'Subject for Meeting','2022-08-22 05:35:38',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (244,NULL,55,'Subject for Interview','2022-08-20 12:57:49',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (245,NULL,2,'Subject for Phone Call','2022-08-01 20:50:49',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (246,NULL,2,'Subject for Phone Call','2023-02-07 12:09:58',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (247,NULL,22,'Subject for Print/Merge Document','2022-10-22 19:36:50',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (248,NULL,2,'Subject for Phone Call','2022-11-13 12:08:40',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (249,NULL,22,'Subject for Print/Merge Document','2022-06-17 16:53:04',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (250,NULL,9,'Subject for Tell a Friend','2022-05-14 02:33:41',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (251,NULL,2,'Subject for Phone Call','2022-06-24 02:53:11',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (252,NULL,1,'Subject for Meeting','2022-12-02 03:51:21',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (253,NULL,1,'Subject for Meeting','2022-11-30 03:46:57',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (254,NULL,2,'Subject for Phone Call','2022-05-29 23:59:58',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (255,NULL,1,'Subject for Meeting','2022-03-10 14:50:56',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (256,NULL,2,'Subject for Phone Call','2022-05-21 20:31:24',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (257,NULL,1,'Subject for Meeting','2023-02-13 23:44:09',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (258,NULL,1,'Subject for Meeting','2023-02-05 03:41:41',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (259,NULL,55,'Subject for Interview','2022-06-20 18:40:03',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (260,NULL,55,'Subject for Interview','2022-08-28 20:43:58',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (261,NULL,1,'Subject for Meeting','2022-06-08 13:50:57',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (262,NULL,1,'Subject for Meeting','2022-12-22 18:55:29',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (263,NULL,2,'Subject for Phone Call','2023-01-14 03:12:37',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (264,NULL,55,'Subject for Interview','2022-06-03 16:42:43',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (265,NULL,2,'Subject for Phone Call','2022-12-04 19:15:25',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (266,NULL,55,'Subject for Interview','2022-11-16 20:27:05',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (267,NULL,55,'Subject for Interview','2022-06-03 15:48:36',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (268,NULL,9,'Subject for Tell a Friend','2023-02-11 20:43:04',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (269,NULL,9,'Subject for Tell a Friend','2022-04-11 04:36:34',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (270,NULL,9,'Subject for Tell a Friend','2022-09-13 02:05:24',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (271,NULL,9,'Subject for Tell a Friend','2022-03-09 12:55:38',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (272,NULL,55,'Subject for Interview','2022-06-28 11:50:21',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (273,NULL,55,'Subject for Interview','2022-10-07 18:07:33',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (274,NULL,55,'Subject for Interview','2022-09-20 10:43:15',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (275,NULL,2,'Subject for Phone Call','2022-08-24 07:19:40',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (276,NULL,22,'Subject for Print/Merge Document','2022-05-02 06:38:46',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (277,NULL,2,'Subject for Phone Call','2023-02-20 22:32:44',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (278,NULL,2,'Subject for Phone Call','2022-12-31 15:36:22',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (279,NULL,55,'Subject for Interview','2022-05-12 12:53:57',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (280,NULL,55,'Subject for Interview','2023-01-18 20:06:14',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (281,NULL,22,'Subject for Print/Merge Document','2023-02-13 01:17:02',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (282,NULL,1,'Subject for Meeting','2022-07-17 14:38:40',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (283,NULL,22,'Subject for Print/Merge Document','2022-05-16 20:07:33',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (284,NULL,1,'Subject for Meeting','2023-02-26 14:44:55',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (285,NULL,1,'Subject for Meeting','2022-05-26 05:58:02',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (286,NULL,22,'Subject for Print/Merge Document','2022-03-16 17:51:55',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (287,NULL,1,'Subject for Meeting','2022-07-08 05:30:59',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (288,NULL,2,'Subject for Phone Call','2022-05-28 15:19:27',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (289,NULL,1,'Subject for Meeting','2022-07-20 12:07:32',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (290,NULL,1,'Subject for Meeting','2022-08-18 03:10:41',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (291,NULL,1,'Subject for Meeting','2022-10-10 01:34:34',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (292,NULL,22,'Subject for Print/Merge Document','2022-08-10 16:00:53',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (293,NULL,22,'Subject for Print/Merge Document','2022-06-18 13:17:53',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (294,NULL,1,'Subject for Meeting','2022-11-01 04:18:11',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (295,NULL,2,'Subject for Phone Call','2022-11-27 06:33:40',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (296,NULL,2,'Subject for Phone Call','2022-06-12 10:01:08',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (297,NULL,9,'Subject for Tell a Friend','2023-02-27 22:21:55',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (298,NULL,22,'Subject for Print/Merge Document','2023-02-14 06:54:13',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (299,NULL,2,'Subject for Phone Call','2022-03-19 21:54:40',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (300,NULL,9,'Subject for Tell a Friend','2022-06-17 21:17:38',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (301,NULL,55,'Subject for Interview','2022-07-06 02:43:46',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (302,NULL,2,'Subject for Phone Call','2022-06-09 23:31:58',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (303,NULL,22,'Subject for Print/Merge Document','2023-03-01 16:47:00',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (304,NULL,22,'Subject for Print/Merge Document','2023-02-01 14:39:15',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (305,NULL,1,'Subject for Meeting','2023-02-21 23:11:29',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (306,NULL,1,'Subject for Meeting','2022-12-07 13:29:24',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (307,NULL,9,'Subject for Tell a Friend','2022-09-21 17:25:57',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (308,NULL,55,'Subject for Interview','2022-03-26 07:09:42',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (309,NULL,9,'Subject for Tell a Friend','2022-06-02 05:33:26',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (310,NULL,2,'Subject for Phone Call','2022-04-01 15:49:22',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (311,NULL,9,'Subject for Tell a Friend','2022-10-21 00:53:07',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (312,NULL,9,'Subject for Tell a Friend','2022-04-26 21:49:47',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (313,NULL,22,'Subject for Print/Merge Document','2023-03-03 12:00:34',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (314,NULL,2,'Subject for Phone Call','2022-08-18 12:41:41',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (315,NULL,55,'Subject for Interview','2022-10-07 00:28:14',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (316,NULL,2,'Subject for Phone Call','2022-07-18 00:23:40',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (317,NULL,2,'Subject for Phone Call','2022-12-20 10:11:43',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (318,NULL,55,'Subject for Interview','2022-11-03 01:40:48',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (319,NULL,1,'Subject for Meeting','2022-08-12 15:09:49',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (320,NULL,2,'Subject for Phone Call','2022-12-18 09:04:17',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (321,NULL,1,'Subject for Meeting','2022-09-14 12:43:57',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (322,NULL,22,'Subject for Print/Merge Document','2022-12-12 13:20:11',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (323,NULL,1,'Subject for Meeting','2022-03-19 15:49:50',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (324,NULL,9,'Subject for Tell a Friend','2022-03-15 11:56:51',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (325,NULL,22,'Subject for Print/Merge Document','2023-01-30 14:48:13',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (326,NULL,1,'Subject for Meeting','2022-12-11 13:33:39',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (327,NULL,22,'Subject for Print/Merge Document','2022-09-16 09:58:12',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (328,NULL,55,'Subject for Interview','2022-07-27 18:14:56',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (329,NULL,9,'Subject for Tell a Friend','2022-08-23 11:27:38',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (330,NULL,9,'Subject for Tell a Friend','2022-09-16 19:17:27',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (331,NULL,9,'Subject for Tell a Friend','2022-08-02 08:43:01',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (332,NULL,9,'Subject for Tell a Friend','2023-02-20 17:41:44',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (333,NULL,55,'Subject for Interview','2023-02-22 18:42:58',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (334,NULL,9,'Subject for Tell a Friend','2022-07-01 23:55:26',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (335,NULL,2,'Subject for Phone Call','2022-09-02 04:11:46',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (336,NULL,22,'Subject for Print/Merge Document','2022-03-20 22:32:20',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (337,NULL,22,'Subject for Print/Merge Document','2022-07-09 16:27:45',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (338,NULL,2,'Subject for Phone Call','2022-06-30 01:33:31',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (339,NULL,2,'Subject for Phone Call','2022-12-11 07:30:17',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (340,NULL,9,'Subject for Tell a Friend','2022-07-10 21:12:54',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (341,NULL,2,'Subject for Phone Call','2023-02-25 09:54:10',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (342,NULL,2,'Subject for Phone Call','2022-10-24 15:56:04',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (343,NULL,9,'Subject for Tell a Friend','2022-03-31 21:32:50',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (344,NULL,22,'Subject for Print/Merge Document','2023-02-04 13:59:10',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (345,NULL,22,'Subject for Print/Merge Document','2022-07-16 01:09:16',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (346,NULL,22,'Subject for Print/Merge Document','2022-03-13 05:59:39',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (347,NULL,9,'Subject for Tell a Friend','2023-02-27 06:04:19',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (348,NULL,9,'Subject for Tell a Friend','2022-06-03 08:02:56',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (349,NULL,9,'Subject for Tell a Friend','2022-06-02 18:25:07',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (350,NULL,22,'Subject for Print/Merge Document','2022-04-12 06:22:49',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (351,NULL,2,'Subject for Phone Call','2022-11-11 07:33:48',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (352,NULL,2,'Subject for Phone Call','2022-12-19 07:25:56',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (353,NULL,9,'Subject for Tell a Friend','2022-05-09 16:03:06',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (354,NULL,9,'Subject for Tell a Friend','2023-02-11 14:53:32',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (355,NULL,55,'Subject for Interview','2022-03-18 16:44:39',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (356,NULL,9,'Subject for Tell a Friend','2022-11-15 07:03:36',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (357,NULL,2,'Subject for Phone Call','2022-11-27 04:49:36',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (358,NULL,22,'Subject for Print/Merge Document','2022-06-07 14:30:53',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (359,NULL,55,'Subject for Interview','2022-06-24 00:52:05',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (360,NULL,2,'Subject for Phone Call','2022-10-18 15:01:47',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (361,NULL,22,'Subject for Print/Merge Document','2023-02-21 20:32:57',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (362,NULL,55,'Subject for Interview','2022-09-08 09:30:38',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (363,NULL,2,'Subject for Phone Call','2022-06-24 16:56:02',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (364,NULL,1,'Subject for Meeting','2022-09-26 13:58:02',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (365,NULL,55,'Subject for Interview','2022-07-20 19:08:47',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (366,NULL,9,'Subject for Tell a Friend','2022-11-22 19:45:59',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (367,NULL,22,'Subject for Print/Merge Document','2022-05-30 09:40:49',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (368,NULL,55,'Subject for Interview','2022-05-25 02:44:39',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (369,NULL,2,'Subject for Phone Call','2022-03-31 15:03:44',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (370,NULL,55,'Subject for Interview','2022-04-21 16:11:29',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (371,NULL,9,'Subject for Tell a Friend','2022-07-01 05:03:51',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (372,NULL,55,'Subject for Interview','2022-04-21 21:38:37',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (373,NULL,2,'Subject for Phone Call','2022-04-17 02:43:05',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (374,NULL,2,'Subject for Phone Call','2023-01-31 03:36:58',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (375,NULL,22,'Subject for Print/Merge Document','2022-03-10 20:50:21',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (376,NULL,9,'Subject for Tell a Friend','2022-11-27 07:19:07',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (377,NULL,1,'Subject for Meeting','2022-06-12 00:51:38',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (378,NULL,2,'Subject for Phone Call','2023-01-09 10:52:20',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (379,NULL,55,'Subject for Interview','2022-05-26 05:30:04',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (380,NULL,9,'Subject for Tell a Friend','2022-09-06 21:05:59',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (381,NULL,1,'Subject for Meeting','2022-07-15 18:38:18',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (382,NULL,2,'Subject for Phone Call','2022-10-31 13:35:20',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (383,NULL,9,'Subject for Tell a Friend','2022-04-28 14:34:51',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (384,NULL,55,'Subject for Interview','2022-06-27 21:07:38',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (385,NULL,55,'Subject for Interview','2022-11-06 08:25:38',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (386,NULL,1,'Subject for Meeting','2022-08-30 17:51:49',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (387,NULL,22,'Subject for Print/Merge Document','2022-10-04 04:16:51',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (388,NULL,1,'Subject for Meeting','2022-04-06 05:34:25',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (389,NULL,9,'Subject for Tell a Friend','2022-08-31 10:21:04',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (390,NULL,2,'Subject for Phone Call','2022-11-18 16:02:33',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (391,NULL,2,'Subject for Phone Call','2022-05-11 07:32:32',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (392,NULL,55,'Subject for Interview','2022-06-04 18:41:26',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (393,NULL,55,'Subject for Interview','2023-02-16 17:55:20',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (394,NULL,22,'Subject for Print/Merge Document','2022-04-30 21:56:27',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (395,NULL,55,'Subject for Interview','2022-11-02 10:24:11',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (396,NULL,9,'Subject for Tell a Friend','2022-04-28 00:02:17',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (397,NULL,2,'Subject for Phone Call','2022-12-21 14:33:46',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (398,NULL,55,'Subject for Interview','2022-08-07 06:12:02',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (399,NULL,2,'Subject for Phone Call','2022-04-29 20:06:21',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (400,NULL,9,'Subject for Tell a Friend','2022-04-14 15:48:29',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (401,NULL,9,'Subject for Tell a Friend','2022-06-04 05:05:48',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (402,NULL,2,'Subject for Phone Call','2022-05-12 08:03:34',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (403,NULL,2,'Subject for Phone Call','2022-08-06 13:37:33',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (404,NULL,22,'Subject for Print/Merge Document','2022-07-08 14:06:57',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (405,NULL,55,'Subject for Interview','2023-01-03 08:17:37',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (406,NULL,55,'Subject for Interview','2022-08-01 19:32:08',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (407,NULL,1,'Subject for Meeting','2022-07-31 18:03:50',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (408,NULL,22,'Subject for Print/Merge Document','2022-04-28 17:24:56',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (409,NULL,55,'Subject for Interview','2023-01-22 22:11:39',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (410,NULL,2,'Subject for Phone Call','2022-12-15 04:03:02',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (411,NULL,55,'Subject for Interview','2022-06-07 14:20:06',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (412,NULL,55,'Subject for Interview','2022-12-06 19:11:41',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (413,NULL,2,'Subject for Phone Call','2022-04-07 17:32:30',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (414,NULL,2,'Subject for Phone Call','2022-03-16 02:59:23',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (415,NULL,2,'Subject for Phone Call','2022-10-06 00:11:04',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (416,NULL,2,'Subject for Phone Call','2022-12-14 11:18:30',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (417,NULL,1,'Subject for Meeting','2022-06-23 02:01:57',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (418,NULL,2,'Subject for Phone Call','2022-12-13 09:23:50',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (419,NULL,22,'Subject for Print/Merge Document','2022-12-22 00:24:07',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (420,NULL,55,'Subject for Interview','2023-01-22 04:43:03',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (421,NULL,1,'Subject for Meeting','2022-11-17 12:56:36',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (422,NULL,9,'Subject for Tell a Friend','2022-12-15 06:24:04',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (423,NULL,9,'Subject for Tell a Friend','2022-06-21 09:07:22',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (424,NULL,55,'Subject for Interview','2022-12-01 19:36:54',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (425,NULL,55,'Subject for Interview','2022-06-08 17:23:31',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (426,NULL,22,'Subject for Print/Merge Document','2022-08-06 07:01:02',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (427,NULL,9,'Subject for Tell a Friend','2023-03-03 04:20:12',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (428,NULL,22,'Subject for Print/Merge Document','2022-11-19 04:11:17',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (429,NULL,1,'Subject for Meeting','2022-10-23 21:15:26',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (430,NULL,55,'Subject for Interview','2023-01-21 14:30:57',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (431,NULL,2,'Subject for Phone Call','2022-12-09 01:51:24',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (432,NULL,9,'Subject for Tell a Friend','2022-07-02 05:33:19',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (433,NULL,2,'Subject for Phone Call','2022-05-13 07:11:52',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (434,NULL,1,'Subject for Meeting','2022-10-21 14:57:33',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (435,NULL,9,'Subject for Tell a Friend','2022-06-19 10:19:53',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (436,NULL,1,'Subject for Meeting','2022-10-02 09:09:59',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (437,NULL,2,'Subject for Phone Call','2022-11-15 20:31:33',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (438,NULL,2,'Subject for Phone Call','2022-07-19 10:36:45',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (439,NULL,2,'Subject for Phone Call','2022-12-22 19:15:06',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (440,NULL,22,'Subject for Print/Merge Document','2022-11-16 17:14:36',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (441,NULL,55,'Subject for Interview','2022-12-05 00:26:41',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (442,NULL,2,'Subject for Phone Call','2022-07-10 18:41:05',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (443,NULL,1,'Subject for Meeting','2022-04-01 10:40:25',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (444,NULL,9,'Subject for Tell a Friend','2022-08-27 04:28:15',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (445,NULL,22,'Subject for Print/Merge Document','2022-05-09 15:08:38',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (446,NULL,22,'Subject for Print/Merge Document','2023-02-18 08:03:17',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (447,NULL,22,'Subject for Print/Merge Document','2022-12-06 02:14:16',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (448,NULL,22,'Subject for Print/Merge Document','2022-11-24 06:02:53',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (449,NULL,9,'Subject for Tell a Friend','2022-07-25 05:50:52',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (450,NULL,55,'Subject for Interview','2023-02-05 02:29:04',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:23','2023-03-08 06:51:23'),
+ (451,1,6,'$ 125 April Mailer 1','2023-05-08 17:51:24',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (452,2,6,'$ 50 Online: Save the Penguins','2023-05-08 17:51:24',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (453,3,6,'£ 25 April Mailer 1','2023-05-08 17:51:24',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (454,4,6,'$ 50 Online: Save the Penguins','2023-05-08 17:51:24',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (455,5,6,'$ 50 Online: Save the Penguins','2023-05-08 17:51:24',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (456,6,6,'$ 500 April Mailer 1','2023-05-08 17:51:24',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (457,7,6,'$ 1750 Online: Save the Penguins','2023-05-08 17:51:24',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (458,8,6,'$ 50 Online: Save the Penguins','2023-05-08 17:51:24',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (459,9,6,'$ 10 Online: Help CiviCRM','2023-05-08 17:51:24',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (460,10,6,'$ 250 Online: Help CiviCRM','2023-05-08 17:51:24',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (461,11,6,'Â¥ 500 ','2023-05-08 17:51:24',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (462,12,6,'$ 50 Online: Save the Penguins','2023-05-08 17:51:24',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (463,13,6,'$ 50 ','2023-05-08 17:51:24',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (464,14,6,'$ 50 ','2023-05-08 17:51:24',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (465,15,6,'$ 25 Recurring contribution','2023-05-08 17:51:24',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (466,16,6,'$ 25 Recurring contribution','2023-05-08 17:51:24',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (467,17,6,'$ 25 Recurring contribution','2023-05-08 17:51:24',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (468,18,6,'$ 25 Recurring contribution','2023-05-08 17:51:24',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (469,19,6,'$ 25 Recurring contribution','2023-05-08 17:51:24',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (470,20,6,'$ 25 Recurring contribution','2023-05-08 17:51:24',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (471,21,6,'$ 25 Recurring contribution','2023-05-08 17:51:24',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (472,22,6,'$ 25 Recurring contribution','2023-05-08 17:51:24',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (473,23,6,'$ 25 Recurring contribution','2023-05-08 17:51:24',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (474,24,6,'$ 25 Recurring contribution','2023-05-08 17:51:24',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (475,25,6,'$ 25 Recurring contribution','2023-05-08 17:51:24',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (476,26,6,'$ 10 Recurring contribution','2023-05-08 17:51:24',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (477,27,6,'$ 10 Recurring contribution','2023-05-08 17:51:24',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (478,28,6,'$ 10 Recurring contribution','2023-05-08 17:51:24',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (479,29,6,'$ 10 Recurring contribution','2023-05-08 17:51:24',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (480,30,6,'$ 10 Recurring contribution','2023-05-08 17:51:24',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (481,31,6,'€ 5 Recurring contribution','2023-05-08 17:51:24',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (482,1,7,'General','2023-03-08 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (483,2,7,'Student','2023-03-07 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (484,3,7,'General','2023-03-06 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (485,4,7,'Student','2023-03-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (486,5,7,'General','2021-02-04 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (487,6,7,'Student','2023-03-03 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (488,7,7,'General','2023-03-02 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (489,8,7,'Student','2023-03-01 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (490,9,7,'General','2023-02-28 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (491,10,7,'Student','2022-02-27 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (492,11,7,'Lifetime','2023-02-26 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (493,12,7,'Student','2023-02-25 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (494,13,7,'General','2023-02-24 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (495,14,7,'Student','2023-02-23 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (496,15,7,'Student','2022-02-22 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (497,16,7,'Student','2023-02-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (498,17,7,'General','2023-02-20 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (499,18,7,'Student','2023-02-19 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (500,19,7,'General','2023-02-18 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (501,20,7,'General','2020-10-07 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (502,21,7,'General','2023-02-16 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (503,22,7,'Lifetime','2023-02-15 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (504,23,7,'General','2023-02-14 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (505,24,7,'Student','2023-02-13 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (506,25,7,'General','2020-08-28 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (507,26,7,'Student','2023-02-11 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (508,27,7,'General','2023-02-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (509,28,7,'Student','2023-02-09 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (510,29,7,'General','2023-02-08 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (511,30,7,'General','2020-07-19 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (512,32,6,'$ 100.00 - General Membership: Offline signup','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (513,33,6,'$ 50.00 - Student Membership: Offline signup','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (514,34,6,'$ 100.00 - General Membership: Offline signup','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (515,35,6,'$ 50.00 - Student Membership: Offline signup','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (516,36,6,'$ 100.00 - General Membership: Offline signup','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (517,37,6,'$ 50.00 - Student Membership: Offline signup','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (518,38,6,'$ 100.00 - General Membership: Offline signup','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (519,39,6,'$ 50.00 - Student Membership: Offline signup','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (520,40,6,'$ 100.00 - General Membership: Offline signup','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (521,41,6,'$ 50.00 - Student Membership: Offline signup','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (522,42,6,'$ 1200.00 - Lifetime Membership: Offline signup','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (523,43,6,'$ 50.00 - Student Membership: Offline signup','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (524,44,6,'$ 100.00 - General Membership: Offline signup','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (525,45,6,'$ 50.00 - Student Membership: Offline signup','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (526,46,6,'$ 50.00 - Student Membership: Offline signup','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (527,47,6,'$ 50.00 - Student Membership: Offline signup','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (528,48,6,'$ 100.00 - General Membership: Offline signup','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (529,49,6,'$ 50.00 - Student Membership: Offline signup','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (530,50,6,'$ 100.00 - General Membership: Offline signup','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (531,51,6,'$ 100.00 - General Membership: Offline signup','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (532,52,6,'$ 100.00 - General Membership: Offline signup','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (533,53,6,'$ 1200.00 - Lifetime Membership: Offline signup','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (534,54,6,'$ 100.00 - General Membership: Offline signup','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (535,55,6,'$ 50.00 - Student Membership: Offline signup','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (536,56,6,'$ 100.00 - General Membership: Offline signup','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (537,57,6,'$ 50.00 - Student Membership: Offline signup','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (538,58,6,'$ 100.00 - General Membership: Offline signup','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (539,59,6,'$ 50.00 - Student Membership: Offline signup','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (540,60,6,'$ 100.00 - General Membership: Offline signup','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (541,61,6,'$ 100.00 - General Membership: Offline signup','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (543,1,5,'NULL','2009-01-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (544,2,5,'NULL','2008-05-07 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (545,3,5,'NULL','2008-05-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (546,4,5,'NULL','2008-10-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (547,5,5,'NULL','2008-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (548,6,5,'NULL','2008-03-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (549,7,5,'NULL','2009-07-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (550,8,5,'NULL','2009-03-07 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (551,9,5,'NULL','2008-02-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (552,10,5,'NULL','2008-02-01 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (553,11,5,'NULL','2009-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (554,12,5,'NULL','2009-03-06 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (555,13,5,'NULL','2008-06-04 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (556,14,5,'NULL','2008-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (557,15,5,'NULL','2008-07-04 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (558,16,5,'NULL','2009-01-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (559,17,5,'NULL','2008-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (560,18,5,'NULL','2009-03-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (561,19,5,'NULL','2008-10-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (562,20,5,'NULL','2009-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (563,21,5,'NULL','2008-03-25 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (564,22,5,'NULL','2009-10-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (565,23,5,'NULL','2008-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (566,24,5,'NULL','2008-03-11 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (567,25,5,'NULL','2008-04-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (568,26,5,'NULL','2009-01-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (569,27,5,'NULL','2008-05-07 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (570,28,5,'NULL','2009-12-12 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (571,29,5,'NULL','2009-12-13 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (572,30,5,'NULL','2009-12-14 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (573,31,5,'NULL','2009-12-15 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (574,32,5,'NULL','2009-07-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (575,33,5,'NULL','2009-03-07 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (576,34,5,'NULL','2009-12-15 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (577,35,5,'NULL','2009-12-13 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (578,36,5,'NULL','2009-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (579,37,5,'NULL','2009-03-06 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (580,38,5,'NULL','2009-12-13 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (581,39,5,'NULL','2008-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (582,40,5,'NULL','2009-12-14 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (583,41,5,'NULL','2009-01-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (584,42,5,'NULL','2009-12-15 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (585,43,5,'NULL','2009-03-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (586,44,5,'NULL','2009-12-13 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (587,45,5,'NULL','2009-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (588,46,5,'NULL','2009-12-13 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (589,47,5,'NULL','2009-10-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (590,48,5,'NULL','2009-12-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (591,49,5,'NULL','2009-03-11 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (592,50,5,'NULL','2009-04-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (593,63,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (594,64,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (595,65,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (596,66,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (597,67,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (598,68,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (599,69,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (600,70,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (601,71,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (602,72,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (603,73,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (604,74,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (605,75,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (606,76,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (607,77,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (608,78,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (609,79,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (610,80,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (611,81,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (612,82,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (613,83,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (614,84,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (615,85,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (616,86,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (617,87,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (618,88,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (619,89,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (620,90,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (621,91,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (622,92,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (623,93,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (624,94,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (625,95,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (626,96,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (627,97,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (628,98,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (629,99,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (630,100,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (631,101,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (632,102,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (633,103,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (634,104,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (635,105,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (636,106,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (637,107,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (638,108,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (639,109,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (640,110,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (641,111,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24'),
+ (642,112,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-03-08 17:51:24',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-03-08 06:51:24','2023-03-08 06:51:24');
 /*!40000 ALTER TABLE `civicrm_activity` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -813,959 +813,960 @@ UNLOCK TABLES;
 LOCK TABLES `civicrm_activity_contact` WRITE;
 /*!40000 ALTER TABLE `civicrm_activity_contact` DISABLE KEYS */;
 INSERT INTO `civicrm_activity_contact` (`id`, `activity_id`, `contact_id`, `record_type_id`) VALUES
- (485,269,1,3),
- (195,106,2,3),
- (300,164,2,3),
- (351,192,2,3),
- (397,218,2,3),
- (638,355,2,3),
- (813,451,2,2),
- (6,3,3,3),
- (278,152,3,3),
- (296,162,3,3),
- (343,187,3,3),
- (392,215,3,3),
- (531,295,3,3),
- (100,54,4,3),
- (577,322,4,3),
- (814,452,4,2),
- (817,455,4,2),
- (419,233,5,3),
- (620,346,5,3),
- (203,111,6,3),
- (715,398,6,3),
- (746,414,6,3),
- (815,453,6,2),
- (72,38,7,3),
- (314,172,7,3),
- (458,254,7,3),
- (548,306,7,3),
- (786,435,7,3),
- (788,436,7,3),
- (798,441,7,3),
- (68,36,8,3),
- (729,405,8,3),
- (816,454,8,2),
- (855,493,8,2),
- (885,523,8,2),
- (138,75,9,3),
- (143,78,9,3),
- (220,120,9,3),
- (349,191,9,3),
- (360,197,9,3),
- (758,420,9,3),
- (431,239,10,3),
- (600,335,10,3),
- (674,374,10,3),
- (262,143,11,3),
- (281,154,11,3),
- (371,204,11,3),
- (468,259,11,3),
- (717,399,11,3),
- (790,437,11,3),
- (846,484,11,2),
- (876,514,11,2),
- (148,81,12,3),
- (160,87,12,3),
- (544,304,12,3),
- (171,93,13,3),
- (433,240,13,3),
- (853,491,13,2),
- (883,521,13,2),
- (907,545,13,2),
- (416,231,14,3),
- (613,342,14,3),
- (754,418,14,3),
- (312,171,15,3),
- (654,364,15,3),
- (611,341,16,3),
- (626,349,16,3),
- (662,368,16,3),
- (818,456,16,2),
- (851,489,16,2),
- (881,519,16,2),
- (113,61,17,3),
- (125,67,17,3),
- (168,91,17,3),
- (497,276,17,3),
- (778,431,17,3),
- (18,9,18,3),
- (84,45,18,3),
- (205,112,18,3),
- (218,119,18,3),
- (292,160,18,3),
- (447,248,18,3),
- (505,281,18,3),
- (594,332,18,3),
- (910,548,18,2),
- (495,275,19,3),
- (587,327,19,3),
- (736,409,19,3),
- (819,457,19,2),
- (930,568,19,2),
- (25,13,20,3),
- (228,124,20,3),
- (264,144,20,3),
- (316,173,20,3),
- (330,180,20,3),
- (456,253,20,3),
- (670,372,20,3),
- (810,449,21,3),
- (867,505,21,2),
- (897,535,21,2),
- (939,577,21,2),
- (156,85,22,3),
- (209,114,22,3),
- (439,243,22,3),
- (507,282,22,3),
- (563,314,22,3),
- (802,444,22,3),
- (8,4,23,3),
- (409,225,23,3),
- (32,17,24,3),
- (309,169,24,3),
- (476,264,24,3),
- (355,194,25,3),
- (636,354,25,3),
- (697,388,25,3),
- (302,165,26,3),
- (441,244,26,3),
- (756,419,26,3),
- (776,430,26,3),
- (46,24,27,3),
- (492,273,27,3),
- (509,283,27,3),
- (719,400,27,3),
- (908,546,27,2),
- (294,161,28,3),
- (307,168,28,3),
- (524,291,28,3),
- (660,367,28,3),
- (152,83,29,3),
- (173,94,29,3),
- (191,104,29,3),
- (222,121,29,3),
- (324,177,29,3),
- (435,241,29,3),
- (516,287,29,3),
- (691,385,29,3),
- (276,151,30,3),
- (472,262,30,3),
- (490,272,30,3),
- (213,116,31,3),
- (748,415,31,3),
- (864,502,31,2),
- (894,532,31,2),
- (23,12,32,3),
- (38,20,32,3),
- (61,32,32,3),
- (74,39,32,3),
- (94,51,32,3),
- (128,69,32,3),
- (132,71,32,3),
- (239,130,32,3),
- (258,141,32,3),
- (287,157,32,3),
- (403,221,32,3),
- (649,361,32,3),
- (825,463,32,2),
- (826,464,32,2),
- (245,134,33,3),
- (318,174,33,3),
- (328,179,33,3),
- (529,294,33,3),
- (632,352,33,3),
- (695,387,33,3),
- (42,22,34,3),
- (63,33,34,3),
- (380,209,34,3),
- (822,460,34,2),
- (345,188,35,3),
- (36,19,36,3),
- (59,31,36,3),
- (105,57,36,3),
- (162,88,36,3),
- (808,448,36,3),
- (40,21,37,3),
- (98,53,37,3),
- (145,79,37,3),
- (230,125,37,3),
- (272,149,37,3),
- (394,216,37,3),
- (684,380,37,3),
- (761,422,37,3),
- (215,117,39,3),
- (237,129,39,3),
- (335,183,39,3),
- (771,427,39,3),
- (250,137,40,3),
- (676,375,40,3),
- (763,423,40,3),
- (596,333,41,3),
- (668,371,41,3),
- (784,434,41,3),
- (111,60,42,3),
- (932,570,42,2),
- (55,29,43,3),
- (199,109,43,3),
- (283,155,43,3),
- (553,309,43,3),
- (664,369,43,3),
- (721,401,43,3),
- (824,462,43,2),
- (913,551,43,2),
- (201,110,44,3),
- (559,312,44,3),
- (604,337,44,3),
- (862,500,44,2),
- (892,530,44,2),
- (934,572,44,2),
- (298,163,45,3),
- (437,242,45,3),
- (792,438,45,3),
- (117,63,46,3),
- (624,348,46,3),
- (640,356,46,3),
- (81,43,47,3),
- (561,313,47,3),
- (701,390,47,3),
- (53,28,48,3),
- (738,410,48,3),
- (918,556,48,2),
- (123,66,49,3),
- (326,178,49,3),
- (647,360,49,3),
- (652,363,49,3),
- (658,366,49,3),
- (866,504,49,2),
- (896,534,49,2),
- (226,123,50,3),
- (466,258,50,3),
- (51,27,51,3),
- (378,208,51,3),
- (567,316,51,3),
- (705,392,51,3),
- (812,450,51,3),
- (57,30,52,3),
- (863,501,52,2),
- (893,531,52,2),
- (384,211,53,3),
- (449,249,53,3),
- (500,278,53,3),
- (522,290,53,3),
- (672,373,54,3),
- (725,403,54,3),
- (914,552,54,2),
- (10,5,55,3),
- (589,328,55,3),
- (678,376,55,3),
- (796,440,55,3),
- (193,105,56,3),
- (464,257,56,3),
- (527,293,56,3),
- (645,359,56,3),
- (750,416,56,3),
- (86,46,57,3),
- (130,70,57,3),
- (254,139,58,3),
- (401,220,58,3),
- (555,310,58,3),
- (12,6,59,3),
- (699,389,59,3),
- (827,465,59,2),
- (828,466,59,2),
- (829,467,59,2),
- (830,468,59,2),
- (831,469,59,2),
- (832,470,59,2),
- (833,471,59,2),
- (834,472,59,2),
- (835,473,59,2),
- (836,474,59,2),
- (837,475,59,2),
- (511,284,60,3),
- (687,382,60,3),
- (712,396,60,3),
- (115,62,62,3),
- (207,113,62,3),
- (241,131,62,3),
- (693,386,62,3),
- (733,407,62,3),
- (744,413,62,3),
- (16,8,63,3),
- (140,76,63,3),
- (177,96,63,3),
- (332,181,63,3),
- (575,321,64,3),
- (940,578,64,2),
- (164,89,65,3),
- (188,102,65,3),
- (252,138,65,3),
- (274,150,65,3),
- (423,235,65,3),
- (474,263,65,3),
- (581,324,65,3),
- (927,565,65,2),
- (341,186,66,3),
- (514,286,66,3),
- (666,370,66,3),
- (77,41,67,3),
- (290,159,67,3),
- (399,219,67,3),
- (136,74,68,3),
- (460,255,68,3),
- (478,265,68,3),
- (946,584,69,2),
- (358,196,70,3),
- (429,238,70,3),
- (598,334,70,3),
- (630,351,70,3),
- (950,588,70,2),
- (782,433,71,3),
- (823,461,71,2),
- (873,511,71,2),
- (903,541,71,2),
- (848,486,72,2),
- (878,516,72,2),
- (121,65,73,3),
- (234,127,73,3),
- (367,201,73,3),
- (537,300,73,3),
- (305,167,74,3),
- (388,213,74,3),
- (602,336,74,3),
- (158,86,75,3),
- (557,311,75,3),
- (570,318,75,3),
- (44,23,76,3),
- (518,288,76,3),
- (634,353,76,3),
- (727,404,76,3),
- (502,279,77,3),
- (542,303,77,3),
- (34,18,78,3),
- (88,47,78,3),
- (232,126,78,3),
- (362,198,78,3),
- (443,245,78,3),
- (520,289,78,3),
- (615,343,78,3),
- (767,425,78,3),
- (382,210,79,3),
- (769,426,79,3),
- (933,571,79,2),
- (184,100,80,3),
- (406,223,80,3),
- (462,256,80,3),
- (487,270,80,3),
- (656,365,80,3),
- (703,391,80,3),
- (723,402,80,3),
- (915,553,80,2),
- (451,250,81,3),
- (546,305,81,3),
- (869,507,81,2),
- (899,537,81,2),
- (27,14,82,3),
- (30,16,82,3),
- (154,84,82,3),
- (320,175,82,3),
- (752,417,82,3),
- (794,439,82,3),
- (820,458,82,2),
- (936,574,82,2),
- (186,101,83,3),
- (573,320,83,3),
- (953,591,83,2),
- (70,37,84,3),
- (102,55,84,3),
- (119,64,84,3),
- (150,82,84,3),
- (579,323,84,3),
- (609,340,84,3),
- (628,350,84,3),
- (224,122,85,3),
- (680,377,85,3),
- (740,411,85,3),
- (285,156,86,3),
- (425,236,86,3),
- (550,307,86,3),
- (921,559,86,2),
- (4,2,87,3),
- (353,193,87,3),
- (480,266,87,3),
- (211,115,88,3),
- (386,212,88,3),
- (926,564,88,2),
- (373,205,89,3),
- (765,424,89,3),
- (107,58,90,3),
- (421,234,90,3),
- (539,301,90,3),
- (731,406,90,3),
- (805,446,90,3),
- (166,90,91,3),
- (427,237,91,3),
- (482,267,91,3),
- (857,495,91,2),
- (887,525,91,2),
- (79,42,92,3),
- (96,52,92,3),
- (270,148,92,3),
- (607,339,92,3),
- (774,429,92,3),
- (780,432,92,3),
- (821,459,92,2),
- (14,7,93,3),
- (20,10,93,3),
- (66,35,93,3),
- (337,184,93,3),
- (742,412,93,3),
- (925,563,93,2),
- (339,185,94,3),
- (375,206,94,3),
- (1,1,95,2),
- (3,2,95,2),
- (5,3,95,2),
- (7,4,95,2),
- (9,5,95,2),
- (11,6,95,2),
- (13,7,95,2),
- (15,8,95,2),
- (17,9,95,2),
- (19,10,95,2),
- (21,11,95,2),
- (22,12,95,2),
- (24,13,95,2),
- (26,14,95,2),
- (28,15,95,2),
- (29,16,95,2),
- (31,17,95,2),
- (33,18,95,2),
- (35,19,95,2),
- (37,20,95,2),
- (39,21,95,2),
- (41,22,95,2),
- (43,23,95,2),
- (45,24,95,2),
- (47,25,95,2),
- (48,26,95,2),
- (50,27,95,2),
- (52,28,95,2),
- (54,29,95,2),
- (56,30,95,2),
- (58,31,95,2),
- (60,32,95,2),
- (62,33,95,2),
- (64,34,95,2),
- (65,35,95,2),
- (67,36,95,2),
- (69,37,95,2),
- (71,38,95,2),
- (73,39,95,2),
- (75,40,95,2),
- (76,41,95,2),
- (78,42,95,2),
- (80,43,95,2),
- (82,44,95,2),
- (83,45,95,2),
- (85,46,95,2),
- (87,47,95,2),
- (89,48,95,2),
- (90,49,95,2),
- (91,50,95,2),
- (93,51,95,2),
- (95,52,95,2),
- (97,53,95,2),
- (99,54,95,2),
- (101,55,95,2),
- (103,56,95,2),
- (104,57,95,2),
- (106,58,95,2),
- (108,59,95,2),
- (110,60,95,2),
- (112,61,95,2),
- (114,62,95,2),
- (116,63,95,2),
- (118,64,95,2),
- (120,65,95,2),
- (122,66,95,2),
- (124,67,95,2),
- (126,68,95,2),
- (127,69,95,2),
- (129,70,95,2),
- (131,71,95,2),
- (133,72,95,2),
- (134,73,95,2),
- (135,74,95,2),
- (137,75,95,2),
- (139,76,95,2),
- (141,77,95,2),
- (142,78,95,2),
- (144,79,95,2),
- (146,80,95,2),
- (147,81,95,2),
- (149,82,95,2),
- (151,83,95,2),
- (153,84,95,2),
- (155,85,95,2),
- (157,86,95,2),
- (159,87,95,2),
- (161,88,95,2),
- (163,89,95,2),
- (165,90,95,2),
- (167,91,95,2),
- (169,92,95,2),
- (170,93,95,2),
- (172,94,95,2),
- (174,95,95,2),
- (176,96,95,2),
- (178,97,95,2),
- (180,98,95,2),
- (181,99,95,2),
- (182,99,95,3),
- (183,100,95,2),
- (185,101,95,2),
- (187,102,95,2),
- (189,103,95,2),
- (190,104,95,2),
- (192,105,95,2),
- (194,106,95,2),
- (196,107,95,2),
- (197,108,95,2),
- (198,109,95,2),
- (200,110,95,2),
- (202,111,95,2),
- (204,112,95,2),
- (206,113,95,2),
- (208,114,95,2),
- (210,115,95,2),
- (212,116,95,2),
- (214,117,95,2),
- (216,118,95,2),
- (217,119,95,2),
- (219,120,95,2),
- (221,121,95,2),
- (223,122,95,2),
- (225,123,95,2),
- (227,124,95,2),
- (229,125,95,2),
- (231,126,95,2),
- (233,127,95,2),
- (235,128,95,2),
- (236,129,95,2),
- (238,130,95,2),
- (240,131,95,2),
- (242,132,95,2),
- (243,133,95,2),
- (244,134,95,2),
- (246,135,95,2),
- (247,136,95,2),
- (249,137,95,2),
- (251,138,95,2),
- (253,139,95,2),
- (255,140,95,2),
- (257,141,95,2),
- (259,142,95,2),
- (261,143,95,2),
- (263,144,95,2),
- (265,145,95,2),
- (266,146,95,2),
- (268,147,95,2),
- (269,148,95,2),
- (271,149,95,2),
- (273,150,95,2),
- (618,345,95,3),
- (707,393,95,3),
- (267,146,96,3),
- (364,199,96,3),
- (583,325,96,3),
- (585,326,96,3),
- (622,347,96,3),
- (916,554,96,2),
- (248,136,97,3),
- (260,142,97,3),
- (929,567,97,2),
- (92,50,98,3),
- (322,176,98,3),
- (49,26,99,3),
- (175,95,99,3),
- (179,97,99,3),
- (256,140,99,3),
- (565,315,99,3),
- (838,476,99,2),
- (839,477,99,2),
- (840,478,99,2),
- (841,479,99,2),
- (842,480,99,2),
- (847,485,99,2),
- (877,515,99,2),
- (954,592,99,2),
- (109,59,100,3),
- (390,214,100,3),
- (453,251,100,3),
- (710,395,100,3),
- (868,506,100,2),
- (898,536,100,2),
- (938,576,100,2),
- (2,1,101,3),
- (643,358,101,3),
- (843,481,103,2),
- (935,573,109,2),
- (870,508,110,2),
- (900,538,110,2),
- (909,547,111,2),
- (906,544,113,2),
- (859,497,115,2),
- (889,527,115,2),
- (924,562,118,2),
- (952,590,123,2),
- (945,583,124,2),
- (937,575,127,2),
- (844,482,134,2),
- (874,512,134,2),
- (922,560,134,2),
- (942,580,137,2),
- (865,503,138,2),
- (895,533,138,2),
- (872,510,144,2),
- (902,540,144,2),
- (912,550,146,2),
- (538,301,152,2),
- (540,302,152,2),
- (541,303,152,2),
- (543,304,152,2),
- (545,305,152,2),
- (547,306,152,2),
- (549,307,152,2),
- (551,308,152,2),
- (552,309,152,2),
- (554,310,152,2),
- (556,311,152,2),
- (558,312,152,2),
- (560,313,152,2),
- (562,314,152,2),
- (564,315,152,2),
- (566,316,152,2),
- (568,317,152,2),
- (569,318,152,2),
- (571,319,152,2),
- (572,320,152,2),
- (574,321,152,2),
- (576,322,152,2),
- (578,323,152,2),
- (580,324,152,2),
- (582,325,152,2),
- (584,326,152,2),
- (586,327,152,2),
- (588,328,152,2),
- (590,329,152,2),
- (591,330,152,2),
- (592,331,152,2),
- (593,332,152,2),
- (595,333,152,2),
- (597,334,152,2),
- (599,335,152,2),
- (601,336,152,2),
- (603,337,152,2),
- (605,338,152,2),
- (606,339,152,2),
- (608,340,152,2),
- (610,341,152,2),
- (612,342,152,2),
- (614,343,152,2),
- (616,344,152,2),
- (617,345,152,2),
- (619,346,152,2),
- (621,347,152,2),
- (623,348,152,2),
- (625,349,152,2),
- (627,350,152,2),
- (629,351,152,2),
- (631,352,152,2),
- (633,353,152,2),
- (635,354,152,2),
- (637,355,152,2),
- (639,356,152,2),
- (641,357,152,2),
- (642,358,152,2),
- (644,359,152,2),
- (646,360,152,2),
- (648,361,152,2),
- (650,362,152,2),
- (651,363,152,2),
- (653,364,152,2),
- (655,365,152,2),
- (657,366,152,2),
- (659,367,152,2),
- (661,368,152,2),
- (663,369,152,2),
- (665,370,152,2),
- (667,371,152,2),
- (669,372,152,2),
- (671,373,152,2),
- (673,374,152,2),
- (675,375,152,2),
- (677,376,152,2),
- (679,377,152,2),
- (681,378,152,2),
- (682,379,152,2),
- (683,380,152,2),
- (685,381,152,2),
- (686,382,152,2),
- (688,383,152,2),
- (689,384,152,2),
- (690,385,152,2),
- (692,386,152,2),
- (694,387,152,2),
- (696,388,152,2),
- (698,389,152,2),
- (700,390,152,2),
- (702,391,152,2),
- (704,392,152,2),
- (706,393,152,2),
- (708,394,152,2),
- (709,395,152,2),
- (711,396,152,2),
- (713,397,152,2),
- (714,398,152,2),
- (716,399,152,2),
- (718,400,152,2),
- (720,401,152,2),
- (722,402,152,2),
- (724,403,152,2),
- (726,404,152,2),
- (728,405,152,2),
- (730,406,152,2),
- (732,407,152,2),
- (734,408,152,2),
- (735,409,152,2),
- (737,410,152,2),
- (739,411,152,2),
- (741,412,152,2),
- (743,413,152,2),
- (745,414,152,2),
- (747,415,152,2),
- (749,416,152,2),
- (751,417,152,2),
- (753,418,152,2),
- (755,419,152,2),
- (757,420,152,2),
- (759,421,152,2),
- (760,422,152,2),
- (762,423,152,2),
- (764,424,152,2),
- (766,425,152,2),
- (768,426,152,2),
- (770,427,152,2),
- (772,428,152,2),
- (773,429,152,2),
- (775,430,152,2),
- (777,431,152,2),
- (779,432,152,2),
- (781,433,152,2),
- (783,434,152,2),
- (785,435,152,2),
- (787,436,152,2),
- (789,437,152,2),
- (791,438,152,2),
- (793,439,152,2),
- (795,440,152,2),
- (797,441,152,2),
- (799,442,152,2),
- (800,443,152,2),
- (801,444,152,2),
- (803,445,152,2),
- (804,446,152,2),
- (806,447,152,2),
- (807,448,152,2),
- (809,449,152,2),
- (811,450,152,2),
- (849,487,152,2),
- (879,517,152,2),
- (854,492,153,2),
- (884,522,153,2),
- (852,490,154,2),
- (882,520,154,2),
- (861,499,155,2),
- (891,529,155,2),
- (928,566,157,2),
- (919,557,159,2),
- (944,582,160,2),
- (856,494,165,2),
- (886,524,165,2),
- (923,561,166,2),
- (845,483,168,2),
- (875,513,168,2),
- (860,498,169,2),
- (890,528,169,2),
- (911,549,170,2),
- (943,581,172,2),
- (948,586,176,2),
- (920,558,179,2),
- (917,555,180,2),
- (941,579,183,2),
- (871,509,187,2),
- (901,539,187,2),
- (947,585,187,2),
- (949,587,188,2),
- (931,569,190,2),
- (951,589,191,2),
- (858,496,193,2),
- (888,526,193,2),
- (850,488,194,2),
- (880,518,194,2),
- (905,543,194,2),
- (275,151,197,2),
- (277,152,197,2),
- (279,153,197,2),
- (280,154,197,2),
- (282,155,197,2),
- (284,156,197,2),
- (286,157,197,2),
- (288,158,197,2),
- (289,159,197,2),
- (291,160,197,2),
- (293,161,197,2),
- (295,162,197,2),
- (297,163,197,2),
- (299,164,197,2),
- (301,165,197,2),
- (303,166,197,2),
- (304,167,197,2),
- (306,168,197,2),
- (308,169,197,2),
- (310,170,197,2),
- (311,171,197,2),
- (313,172,197,2),
- (315,173,197,2),
- (317,174,197,2),
- (319,175,197,2),
- (321,176,197,2),
- (323,177,197,2),
- (325,178,197,2),
- (327,179,197,2),
- (329,180,197,2),
- (331,181,197,2),
- (333,182,197,2),
- (334,183,197,2),
- (336,184,197,2),
- (338,185,197,2),
- (340,186,197,2),
- (342,187,197,2),
- (344,188,197,2),
- (346,189,197,2),
- (347,190,197,2),
- (348,191,197,2),
- (350,192,197,2),
- (352,193,197,2),
- (354,194,197,2),
- (356,195,197,2),
- (357,196,197,2),
- (359,197,197,2),
- (361,198,197,2),
- (363,199,197,2),
- (365,200,197,2),
- (366,201,197,2),
- (368,202,197,2),
- (369,203,197,2),
- (370,204,197,2),
- (372,205,197,2),
- (374,206,197,2),
- (376,207,197,2),
- (377,208,197,2),
- (379,209,197,2),
- (381,210,197,2),
- (383,211,197,2),
- (385,212,197,2),
- (387,213,197,2),
- (389,214,197,2),
- (391,215,197,2),
- (393,216,197,2),
- (395,217,197,2),
- (396,218,197,2),
- (398,219,197,2),
- (400,220,197,2),
- (402,221,197,2),
- (404,222,197,2),
- (405,223,197,2),
- (407,224,197,2),
- (408,225,197,2),
- (410,226,197,2),
- (411,227,197,2),
- (412,228,197,2),
- (413,229,197,2),
- (414,230,197,2),
- (415,231,197,2),
- (417,232,197,2),
- (418,233,197,2),
- (420,234,197,2),
- (422,235,197,2),
- (424,236,197,2),
- (426,237,197,2),
- (428,238,197,2),
- (430,239,197,2),
- (432,240,197,2),
- (434,241,197,2),
- (436,242,197,2),
- (438,243,197,2),
- (440,244,197,2),
- (442,245,197,2),
- (444,246,197,2),
- (445,247,197,2),
- (446,248,197,2),
- (448,249,197,2),
- (450,250,197,2),
- (452,251,197,2),
- (454,252,197,2),
- (455,253,197,2),
- (457,254,197,2),
- (459,255,197,2),
- (461,256,197,2),
- (463,257,197,2),
- (465,258,197,2),
- (467,259,197,2),
- (469,260,197,2),
- (470,261,197,2),
- (471,262,197,2),
- (473,263,197,2),
- (475,264,197,2),
- (477,265,197,2),
- (479,266,197,2),
- (481,267,197,2),
- (483,268,197,2),
- (484,269,197,2),
- (486,270,197,2),
- (488,271,197,2),
- (489,272,197,2),
- (491,273,197,2),
- (493,274,197,2),
- (494,275,197,2),
- (496,276,197,2),
- (498,277,197,2),
- (499,278,197,2),
- (501,279,197,2),
- (503,280,197,2),
- (504,281,197,2),
- (506,282,197,2),
- (508,283,197,2),
- (510,284,197,2),
- (512,285,197,2),
- (513,286,197,2),
- (515,287,197,2),
- (517,288,197,2),
- (519,289,197,2),
- (521,290,197,2),
- (523,291,197,2),
- (525,292,197,2),
- (526,293,197,2),
- (528,294,197,2),
- (530,295,197,2),
- (532,296,197,2),
- (533,297,197,2),
- (534,298,197,2),
- (535,299,197,2),
- (536,300,197,2);
+ (228,131,1,3),
+ (348,196,1,3),
+ (591,328,1,3),
+ (626,348,1,3),
+ (949,586,1,2),
+ (43,26,2,3),
+ (136,78,2,3),
+ (301,170,2,3),
+ (563,312,2,3),
+ (814,451,2,2),
+ (848,485,2,2),
+ (878,515,2,2),
+ (287,163,3,3),
+ (289,164,3,3),
+ (344,194,3,3),
+ (745,412,3,3),
+ (815,452,4,2),
+ (818,455,4,2),
+ (199,116,5,3),
+ (266,151,5,3),
+ (532,295,5,3),
+ (536,297,5,3),
+ (674,374,5,3),
+ (687,381,5,3),
+ (873,510,5,2),
+ (903,540,5,2),
+ (24,15,6,3),
+ (350,197,6,3),
+ (597,331,6,3),
+ (816,453,6,2),
+ (867,504,6,2),
+ (897,534,6,2),
+ (925,562,6,2),
+ (264,150,7,3),
+ (432,241,7,3),
+ (490,271,7,3),
+ (541,300,7,3),
+ (9,5,8,3),
+ (86,50,8,3),
+ (472,262,8,3),
+ (474,263,8,3),
+ (817,454,8,2),
+ (932,569,8,2),
+ (415,232,9,3),
+ (609,338,9,3),
+ (864,501,9,2),
+ (894,531,9,2),
+ (127,73,10,3),
+ (383,215,10,3),
+ (871,508,10,2),
+ (901,538,10,2),
+ (672,373,11,3),
+ (928,565,11,2),
+ (57,34,12,3),
+ (59,35,12,3),
+ (236,135,12,3),
+ (325,184,12,3),
+ (664,369,12,3),
+ (766,423,12,3),
+ (782,432,12,3),
+ (790,436,12,3),
+ (922,559,12,2),
+ (539,299,13,3),
+ (697,386,13,3),
+ (945,582,13,2),
+ (6,3,14,3),
+ (357,201,14,3),
+ (799,441,14,3),
+ (120,69,15,3),
+ (180,105,15,3),
+ (498,275,15,3),
+ (48,29,16,3),
+ (73,43,16,3),
+ (155,89,16,3),
+ (379,213,16,3),
+ (405,227,16,3),
+ (513,284,16,3),
+ (595,330,16,3),
+ (715,396,16,3),
+ (819,456,16,2),
+ (4,2,17,3),
+ (101,58,17,3),
+ (125,72,17,3),
+ (196,114,17,3),
+ (337,190,17,3),
+ (468,260,17,3),
+ (543,301,17,3),
+ (780,431,17,3),
+ (907,544,17,2),
+ (205,119,18,3),
+ (312,177,18,3),
+ (340,192,18,3),
+ (494,273,18,3),
+ (551,306,18,3),
+ (721,399,18,3),
+ (954,591,18,2),
+ (260,148,19,3),
+ (426,238,19,3),
+ (593,329,19,3),
+ (611,339,19,3),
+ (820,457,19,2),
+ (929,566,19,2),
+ (478,265,20,3),
+ (122,70,21,3),
+ (187,109,21,3),
+ (234,134,21,3),
+ (545,302,22,3),
+ (739,409,22,3),
+ (162,93,23,3),
+ (189,110,23,3),
+ (365,206,23,3),
+ (369,208,23,3),
+ (486,269,23,3),
+ (601,333,23,3),
+ (727,402,23,3),
+ (749,414,23,3),
+ (69,41,25,3),
+ (185,108,25,3),
+ (530,294,25,3),
+ (280,159,26,3),
+ (524,290,26,3),
+ (635,353,26,3),
+ (677,376,26,3),
+ (755,417,26,3),
+ (88,51,27,3),
+ (222,128,27,3),
+ (770,425,27,3),
+ (924,561,27,2),
+ (599,332,28,3),
+ (212,123,29,3),
+ (214,124,29,3),
+ (333,188,29,3),
+ (852,489,29,2),
+ (882,519,29,2),
+ (948,585,29,2),
+ (570,316,30,3),
+ (695,385,30,3),
+ (734,406,31,3),
+ (762,421,31,3),
+ (868,505,31,2),
+ (898,535,31,2),
+ (910,547,31,2),
+ (61,36,32,3),
+ (153,88,32,3),
+ (168,96,32,3),
+ (617,342,32,3),
+ (760,420,32,3),
+ (826,463,32,2),
+ (827,464,32,2),
+ (20,12,33,3),
+ (112,64,33,3),
+ (191,111,33,3),
+ (359,202,33,3),
+ (458,255,33,3),
+ (911,548,33,2),
+ (106,61,34,3),
+ (114,65,34,3),
+ (421,235,34,3),
+ (559,310,34,3),
+ (741,410,34,3),
+ (823,460,34,2),
+ (51,31,36,3),
+ (98,56,36,3),
+ (293,166,36,3),
+ (572,317,36,3),
+ (655,364,36,3),
+ (248,142,37,3),
+ (603,334,37,3),
+ (77,45,38,3),
+ (84,49,38,3),
+ (342,193,38,3),
+ (352,198,38,3),
+ (419,234,38,3),
+ (704,390,38,3),
+ (706,391,38,3),
+ (942,579,38,2),
+ (108,62,39,3),
+ (116,66,39,3),
+ (327,185,39,3),
+ (434,242,39,3),
+ (736,407,39,3),
+ (282,160,40,3),
+ (522,289,40,3),
+ (34,21,41,3),
+ (138,79,41,3),
+ (45,27,42,3),
+ (270,153,42,3),
+ (641,356,42,3),
+ (157,90,43,3),
+ (220,127,43,3),
+ (272,154,43,3),
+ (411,230,43,3),
+ (460,256,43,3),
+ (825,462,43,2),
+ (936,573,43,2),
+ (207,120,44,3),
+ (448,250,44,3),
+ (778,430,44,3),
+ (37,23,45,3),
+ (299,169,45,3),
+ (580,321,45,3),
+ (258,147,46,3),
+ (668,371,46,3),
+ (133,76,47,3),
+ (182,106,47,3),
+ (250,143,47,3),
+ (262,149,47,3),
+ (389,218,47,3),
+ (534,296,47,3),
+ (549,305,47,3),
+ (561,311,47,3),
+ (916,553,47,2),
+ (373,210,48,3),
+ (450,251,48,3),
+ (501,277,48,3),
+ (515,285,48,3),
+ (619,343,48,3),
+ (934,571,48,2),
+ (32,20,49,3),
+ (94,54,49,3),
+ (232,133,49,3),
+ (488,270,49,3),
+ (216,125,50,3),
+ (624,347,50,3),
+ (303,171,51,3),
+ (605,335,51,3),
+ (914,551,51,2),
+ (230,132,52,3),
+ (396,222,52,3),
+ (454,253,52,3),
+ (854,491,52,2),
+ (884,521,52,2),
+ (131,75,53,3),
+ (428,239,54,3),
+ (466,259,54,3),
+ (757,418,54,3),
+ (773,427,55,3),
+ (937,574,55,2),
+ (142,81,56,3),
+ (224,129,56,3),
+ (578,320,56,3),
+ (729,403,56,3),
+ (794,438,56,3),
+ (813,450,56,3),
+ (13,7,57,3),
+ (55,33,57,3),
+ (96,55,57,3),
+ (268,152,57,3),
+ (381,214,57,3),
+ (407,228,57,3),
+ (585,324,57,3),
+ (689,382,57,3),
+ (713,395,57,3),
+ (768,424,57,3),
+ (557,309,58,3),
+ (679,377,58,3),
+ (226,130,59,3),
+ (828,465,59,2),
+ (829,466,59,2),
+ (830,467,59,2),
+ (831,468,59,2),
+ (832,469,59,2),
+ (833,470,59,2),
+ (834,471,59,2),
+ (835,472,59,2),
+ (836,473,59,2),
+ (837,474,59,2),
+ (838,475,59,2),
+ (430,240,60,3),
+ (583,323,60,3),
+ (803,443,60,3),
+ (947,584,60,2),
+ (41,25,61,3),
+ (92,53,61,3),
+ (931,568,61,2),
+ (520,288,62,3),
+ (702,389,62,3),
+ (805,444,62,3),
+ (254,145,63,3),
+ (653,363,63,3),
+ (53,32,64,3),
+ (355,200,64,3),
+ (398,223,64,3),
+ (462,257,64,3),
+ (637,354,64,3),
+ (400,224,65,3),
+ (445,248,65,3),
+ (456,254,65,3),
+ (518,287,65,3),
+ (631,351,65,3),
+ (64,38,66,3),
+ (329,186,66,3),
+ (442,246,66,3),
+ (588,326,66,3),
+ (651,362,66,3),
+ (683,379,66,3),
+ (723,400,66,3),
+ (80,47,67,3),
+ (129,74,67,3),
+ (238,136,67,3),
+ (505,279,67,3),
+ (555,308,67,3),
+ (662,368,67,3),
+ (732,405,67,3),
+ (71,42,68,3),
+ (305,172,68,3),
+ (685,380,68,3),
+ (927,564,68,2),
+ (480,266,69,3),
+ (628,349,69,3),
+ (717,397,69,3),
+ (801,442,69,3),
+ (863,500,69,2),
+ (893,530,69,2),
+ (90,52,70,3),
+ (151,87,70,3),
+ (553,307,70,3),
+ (252,144,71,3),
+ (371,209,71,3),
+ (470,261,71,3),
+ (566,314,71,3),
+ (824,461,71,2),
+ (484,268,72,3),
+ (751,415,72,3),
+ (30,19,73,3),
+ (615,341,73,3),
+ (659,366,73,3),
+ (792,437,73,3),
+ (275,156,74,3),
+ (295,167,74,3),
+ (719,398,74,3),
+ (747,413,74,3),
+ (510,282,75,3),
+ (855,492,75,2),
+ (885,522,75,2),
+ (786,434,76,3),
+ (291,165,77,3),
+ (314,178,77,3),
+ (331,187,77,3),
+ (16,9,78,3),
+ (82,48,78,3),
+ (193,112,78,3),
+ (244,139,78,3),
+ (646,359,78,3),
+ (784,433,78,3),
+ (316,179,79,3),
+ (413,231,79,3),
+ (240,137,80,3),
+ (318,180,80,3),
+ (633,352,80,3),
+ (857,494,80,2),
+ (887,524,80,2),
+ (160,92,81,3),
+ (452,252,81,3),
+ (725,401,81,3),
+ (851,488,81,2),
+ (881,518,81,2),
+ (164,94,82,3),
+ (175,101,82,3),
+ (210,122,82,3),
+ (576,319,82,3),
+ (666,370,82,3),
+ (700,388,82,3),
+ (788,435,82,3),
+ (796,439,82,3),
+ (821,458,82,2),
+ (11,6,83,3),
+ (277,157,83,3),
+ (526,291,83,3),
+ (568,315,83,3),
+ (657,365,83,3),
+ (346,195,84,3),
+ (918,555,84,2),
+ (171,98,85,3),
+ (242,138,85,3),
+ (436,243,85,3),
+ (708,392,85,3),
+ (218,126,86,3),
+ (648,360,86,3),
+ (681,378,86,3),
+ (67,40,87,3),
+ (75,44,87,3),
+ (670,372,87,3),
+ (693,384,87,3),
+ (166,95,88,3),
+ (322,182,88,3),
+ (403,226,88,3),
+ (409,229,88,3),
+ (811,449,88,3),
+ (377,212,89,3),
+ (464,258,89,3),
+ (440,245,90,3),
+ (643,357,90,3),
+ (2,1,91,3),
+ (203,118,91,3),
+ (335,189,91,3),
+ (710,393,91,3),
+ (872,509,91,2),
+ (902,539,91,2),
+ (920,557,91,2),
+ (822,459,92,2),
+ (846,483,92,2),
+ (876,513,92,2),
+ (104,60,93,3),
+ (148,85,93,3),
+ (310,176,93,3),
+ (361,203,93,3),
+ (387,217,93,3),
+ (39,24,94,3),
+ (284,161,94,3),
+ (297,168,94,3),
+ (492,272,94,3),
+ (496,274,94,3),
+ (574,318,94,3),
+ (743,411,94,3),
+ (140,80,95,3),
+ (320,181,95,3),
+ (391,219,95,3),
+ (503,278,95,3),
+ (940,577,95,2),
+ (26,16,96,3),
+ (417,233,96,3),
+ (613,340,96,3),
+ (764,422,96,3),
+ (423,236,97,3),
+ (438,244,97,3),
+ (941,578,97,2),
+ (256,146,98,3),
+ (367,207,98,3),
+ (393,220,98,3),
+ (476,264,98,3),
+ (507,280,98,3),
+ (753,416,98,3),
+ (839,476,99,2),
+ (840,477,99,2),
+ (841,478,99,2),
+ (842,479,99,2),
+ (843,480,99,2),
+ (110,63,100,3),
+ (146,84,100,3),
+ (201,117,100,3),
+ (375,211,100,3),
+ (385,216,100,3),
+ (691,383,100,3),
+ (482,267,101,3),
+ (639,355,101,3),
+ (776,429,101,3),
+ (844,481,103,2),
+ (923,560,103,2),
+ (870,507,104,2),
+ (900,537,104,2),
+ (265,151,110,2),
+ (267,152,110,2),
+ (269,153,110,2),
+ (271,154,110,2),
+ (273,155,110,2),
+ (274,156,110,2),
+ (276,157,110,2),
+ (278,158,110,2),
+ (279,159,110,2),
+ (281,160,110,2),
+ (283,161,110,2),
+ (285,162,110,2),
+ (286,163,110,2),
+ (288,164,110,2),
+ (290,165,110,2),
+ (292,166,110,2),
+ (294,167,110,2),
+ (296,168,110,2),
+ (298,169,110,2),
+ (300,170,110,2),
+ (302,171,110,2),
+ (304,172,110,2),
+ (306,173,110,2),
+ (307,174,110,2),
+ (308,175,110,2),
+ (309,176,110,2),
+ (311,177,110,2),
+ (313,178,110,2),
+ (315,179,110,2),
+ (317,180,110,2),
+ (319,181,110,2),
+ (321,182,110,2),
+ (323,183,110,2),
+ (324,184,110,2),
+ (326,185,110,2),
+ (328,186,110,2),
+ (330,187,110,2),
+ (332,188,110,2),
+ (334,189,110,2),
+ (336,190,110,2),
+ (338,191,110,2),
+ (339,192,110,2),
+ (341,193,110,2),
+ (343,194,110,2),
+ (345,195,110,2),
+ (347,196,110,2),
+ (349,197,110,2),
+ (351,198,110,2),
+ (353,199,110,2),
+ (354,200,110,2),
+ (356,201,110,2),
+ (358,202,110,2),
+ (360,203,110,2),
+ (362,204,110,2),
+ (363,205,110,2),
+ (364,206,110,2),
+ (366,207,110,2),
+ (368,208,110,2),
+ (370,209,110,2),
+ (372,210,110,2),
+ (374,211,110,2),
+ (376,212,110,2),
+ (378,213,110,2),
+ (380,214,110,2),
+ (382,215,110,2),
+ (384,216,110,2),
+ (386,217,110,2),
+ (388,218,110,2),
+ (390,219,110,2),
+ (392,220,110,2),
+ (394,221,110,2),
+ (395,222,110,2),
+ (397,223,110,2),
+ (399,224,110,2),
+ (401,225,110,2),
+ (402,226,110,2),
+ (404,227,110,2),
+ (406,228,110,2),
+ (408,229,110,2),
+ (410,230,110,2),
+ (412,231,110,2),
+ (414,232,110,2),
+ (416,233,110,2),
+ (418,234,110,2),
+ (420,235,110,2),
+ (422,236,110,2),
+ (424,237,110,2),
+ (425,238,110,2),
+ (427,239,110,2),
+ (429,240,110,2),
+ (431,241,110,2),
+ (433,242,110,2),
+ (435,243,110,2),
+ (437,244,110,2),
+ (439,245,110,2),
+ (441,246,110,2),
+ (443,247,110,2),
+ (444,248,110,2),
+ (446,249,110,2),
+ (447,250,110,2),
+ (449,251,110,2),
+ (451,252,110,2),
+ (453,253,110,2),
+ (455,254,110,2),
+ (457,255,110,2),
+ (459,256,110,2),
+ (461,257,110,2),
+ (463,258,110,2),
+ (465,259,110,2),
+ (467,260,110,2),
+ (469,261,110,2),
+ (471,262,110,2),
+ (473,263,110,2),
+ (475,264,110,2),
+ (477,265,110,2),
+ (479,266,110,2),
+ (481,267,110,2),
+ (483,268,110,2),
+ (485,269,110,2),
+ (487,270,110,2),
+ (489,271,110,2),
+ (491,272,110,2),
+ (493,273,110,2),
+ (495,274,110,2),
+ (497,275,110,2),
+ (499,276,110,2),
+ (500,277,110,2),
+ (502,278,110,2),
+ (504,279,110,2),
+ (506,280,110,2),
+ (508,281,110,2),
+ (509,282,110,2),
+ (511,283,110,2),
+ (512,284,110,2),
+ (514,285,110,2),
+ (516,286,110,2),
+ (517,287,110,2),
+ (519,288,110,2),
+ (521,289,110,2),
+ (523,290,110,2),
+ (525,291,110,2),
+ (527,292,110,2),
+ (528,293,110,2),
+ (529,294,110,2),
+ (531,295,110,2),
+ (533,296,110,2),
+ (535,297,110,2),
+ (537,298,110,2),
+ (538,299,110,2),
+ (540,300,110,2),
+ (858,495,110,2),
+ (888,525,110,2),
+ (930,567,112,2),
+ (951,588,113,2),
+ (906,543,114,2),
+ (847,484,115,2),
+ (877,514,115,2),
+ (866,503,117,2),
+ (896,533,117,2),
+ (939,576,120,2),
+ (921,558,125,2),
+ (915,552,129,2),
+ (850,487,131,2),
+ (880,517,131,2),
+ (856,493,133,2),
+ (886,523,133,2),
+ (909,546,138,2),
+ (1,1,142,2),
+ (3,2,142,2),
+ (5,3,142,2),
+ (7,4,142,2),
+ (8,5,142,2),
+ (10,6,142,2),
+ (12,7,142,2),
+ (14,8,142,2),
+ (15,9,142,2),
+ (17,10,142,2),
+ (18,11,142,2),
+ (19,12,142,2),
+ (21,13,142,2),
+ (22,14,142,2),
+ (23,15,142,2),
+ (25,16,142,2),
+ (27,17,142,2),
+ (28,18,142,2),
+ (29,19,142,2),
+ (31,20,142,2),
+ (33,21,142,2),
+ (35,22,142,2),
+ (36,23,142,2),
+ (38,24,142,2),
+ (40,25,142,2),
+ (42,26,142,2),
+ (44,27,142,2),
+ (46,28,142,2),
+ (47,29,142,2),
+ (49,30,142,2),
+ (50,31,142,2),
+ (52,32,142,2),
+ (54,33,142,2),
+ (56,34,142,2),
+ (58,35,142,2),
+ (60,36,142,2),
+ (62,37,142,2),
+ (63,38,142,2),
+ (65,39,142,2),
+ (66,40,142,2),
+ (68,41,142,2),
+ (70,42,142,2),
+ (72,43,142,2),
+ (74,44,142,2),
+ (76,45,142,2),
+ (78,46,142,2),
+ (79,47,142,2),
+ (81,48,142,2),
+ (83,49,142,2),
+ (85,50,142,2),
+ (87,51,142,2),
+ (89,52,142,2),
+ (91,53,142,2),
+ (93,54,142,2),
+ (95,55,142,2),
+ (97,56,142,2),
+ (99,57,142,2),
+ (100,58,142,2),
+ (102,59,142,2),
+ (103,60,142,2),
+ (105,61,142,2),
+ (107,62,142,2),
+ (109,63,142,2),
+ (111,64,142,2),
+ (113,65,142,2),
+ (115,66,142,2),
+ (117,67,142,2),
+ (118,68,142,2),
+ (119,69,142,2),
+ (121,70,142,2),
+ (123,71,142,2),
+ (124,72,142,2),
+ (126,73,142,2),
+ (128,74,142,2),
+ (130,75,142,2),
+ (132,76,142,2),
+ (134,77,142,2),
+ (135,78,142,2),
+ (137,79,142,2),
+ (139,80,142,2),
+ (141,81,142,2),
+ (143,82,142,2),
+ (144,83,142,2),
+ (145,84,142,2),
+ (147,85,142,2),
+ (149,86,142,2),
+ (150,87,142,2),
+ (152,88,142,2),
+ (154,89,142,2),
+ (156,90,142,2),
+ (158,91,142,2),
+ (159,92,142,2),
+ (161,93,142,2),
+ (163,94,142,2),
+ (165,95,142,2),
+ (167,96,142,2),
+ (169,97,142,2),
+ (170,98,142,2),
+ (172,99,142,2),
+ (173,100,142,2),
+ (174,101,142,2),
+ (176,102,142,2),
+ (177,103,142,2),
+ (178,104,142,2),
+ (179,105,142,2),
+ (181,106,142,2),
+ (183,107,142,2),
+ (184,108,142,2),
+ (186,109,142,2),
+ (188,110,142,2),
+ (190,111,142,2),
+ (192,112,142,2),
+ (194,113,142,2),
+ (195,114,142,2),
+ (197,115,142,2),
+ (198,116,142,2),
+ (200,117,142,2),
+ (202,118,142,2),
+ (204,119,142,2),
+ (206,120,142,2),
+ (208,121,142,2),
+ (209,122,142,2),
+ (211,123,142,2),
+ (213,124,142,2),
+ (215,125,142,2),
+ (217,126,142,2),
+ (219,127,142,2),
+ (221,128,142,2),
+ (223,129,142,2),
+ (225,130,142,2),
+ (227,131,142,2),
+ (229,132,142,2),
+ (231,133,142,2),
+ (233,134,142,2),
+ (235,135,142,2),
+ (237,136,142,2),
+ (239,137,142,2),
+ (241,138,142,2),
+ (243,139,142,2),
+ (245,140,142,2),
+ (246,141,142,2),
+ (247,142,142,2),
+ (249,143,142,2),
+ (251,144,142,2),
+ (253,145,142,2),
+ (255,146,142,2),
+ (257,147,142,2),
+ (259,148,142,2),
+ (261,149,142,2),
+ (263,150,142,2),
+ (946,583,142,2),
+ (913,550,144,2),
+ (912,549,147,2),
+ (845,482,150,2),
+ (875,512,150,2),
+ (952,589,151,2),
+ (935,572,153,2),
+ (861,498,156,2),
+ (891,528,156,2),
+ (849,486,161,2),
+ (879,516,161,2),
+ (950,587,161,2),
+ (919,556,163,2),
+ (955,592,164,2),
+ (853,490,167,2),
+ (883,520,167,2),
+ (953,590,167,2),
+ (943,580,169,2),
+ (865,502,172,2),
+ (895,532,172,2),
+ (874,511,178,2),
+ (904,541,178,2),
+ (917,554,179,2),
+ (926,563,181,2),
+ (862,499,186,2),
+ (892,529,186,2),
+ (933,570,186,2),
+ (908,545,188,2),
+ (869,506,190,2),
+ (899,536,190,2),
+ (944,581,194,2),
+ (860,497,196,2),
+ (890,527,196,2),
+ (859,496,200,2),
+ (889,526,200,2),
+ (938,575,200,2),
+ (542,301,201,2),
+ (544,302,201,2),
+ (546,303,201,2),
+ (547,304,201,2),
+ (548,305,201,2),
+ (550,306,201,2),
+ (552,307,201,2),
+ (554,308,201,2),
+ (556,309,201,2),
+ (558,310,201,2),
+ (560,311,201,2),
+ (562,312,201,2),
+ (564,313,201,2),
+ (565,314,201,2),
+ (567,315,201,2),
+ (569,316,201,2),
+ (571,317,201,2),
+ (573,318,201,2),
+ (575,319,201,2),
+ (577,320,201,2),
+ (579,321,201,2),
+ (581,322,201,2),
+ (582,323,201,2),
+ (584,324,201,2),
+ (586,325,201,2),
+ (587,326,201,2),
+ (589,327,201,2),
+ (590,328,201,2),
+ (592,329,201,2),
+ (594,330,201,2),
+ (596,331,201,2),
+ (598,332,201,2),
+ (600,333,201,2),
+ (602,334,201,2),
+ (604,335,201,2),
+ (606,336,201,2),
+ (607,337,201,2),
+ (608,338,201,2),
+ (610,339,201,2),
+ (612,340,201,2),
+ (614,341,201,2),
+ (616,342,201,2),
+ (618,343,201,2),
+ (620,344,201,2),
+ (621,345,201,2),
+ (622,346,201,2),
+ (623,347,201,2),
+ (625,348,201,2),
+ (627,349,201,2),
+ (629,350,201,2),
+ (630,351,201,2),
+ (632,352,201,2),
+ (634,353,201,2),
+ (636,354,201,2),
+ (638,355,201,2),
+ (640,356,201,2),
+ (642,357,201,2),
+ (644,358,201,2),
+ (645,359,201,2),
+ (647,360,201,2),
+ (649,361,201,2),
+ (650,362,201,2),
+ (652,363,201,2),
+ (654,364,201,2),
+ (656,365,201,2),
+ (658,366,201,2),
+ (660,367,201,2),
+ (661,368,201,2),
+ (663,369,201,2),
+ (665,370,201,2),
+ (667,371,201,2),
+ (669,372,201,2),
+ (671,373,201,2),
+ (673,374,201,2),
+ (675,375,201,2),
+ (676,376,201,2),
+ (678,377,201,2),
+ (680,378,201,2),
+ (682,379,201,2),
+ (684,380,201,2),
+ (686,381,201,2),
+ (688,382,201,2),
+ (690,383,201,2),
+ (692,384,201,2),
+ (694,385,201,2),
+ (696,386,201,2),
+ (698,387,201,2),
+ (699,388,201,2),
+ (701,389,201,2),
+ (703,390,201,2),
+ (705,391,201,2),
+ (707,392,201,2),
+ (709,393,201,2),
+ (711,394,201,2),
+ (712,395,201,2),
+ (714,396,201,2),
+ (716,397,201,2),
+ (718,398,201,2),
+ (720,399,201,2),
+ (722,400,201,2),
+ (724,401,201,2),
+ (726,402,201,2),
+ (728,403,201,2),
+ (730,404,201,2),
+ (731,405,201,2),
+ (733,406,201,2),
+ (735,407,201,2),
+ (737,408,201,2),
+ (738,409,201,2),
+ (740,410,201,2),
+ (742,411,201,2),
+ (744,412,201,2),
+ (746,413,201,2),
+ (748,414,201,2),
+ (750,415,201,2),
+ (752,416,201,2),
+ (754,417,201,2),
+ (756,418,201,2),
+ (758,419,201,2),
+ (759,420,201,2),
+ (761,421,201,2),
+ (763,422,201,2),
+ (765,423,201,2),
+ (767,424,201,2),
+ (769,425,201,2),
+ (771,426,201,2),
+ (772,427,201,2),
+ (774,428,201,2),
+ (775,429,201,2),
+ (777,430,201,2),
+ (779,431,201,2),
+ (781,432,201,2),
+ (783,433,201,2),
+ (785,434,201,2),
+ (787,435,201,2),
+ (789,436,201,2),
+ (791,437,201,2),
+ (793,438,201,2),
+ (795,439,201,2),
+ (797,440,201,2),
+ (798,441,201,2),
+ (800,442,201,2),
+ (802,443,201,2),
+ (804,444,201,2),
+ (806,445,201,2),
+ (807,446,201,2),
+ (808,447,201,2),
+ (809,448,201,2),
+ (810,449,201,2),
+ (812,450,201,2);
 /*!40000 ALTER TABLE `civicrm_activity_contact` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -1776,190 +1777,193 @@ UNLOCK TABLES;
 LOCK TABLES `civicrm_address` WRITE;
 /*!40000 ALTER TABLE `civicrm_address` DISABLE KEYS */;
 INSERT INTO `civicrm_address` (`id`, `contact_id`, `location_type_id`, `is_primary`, `is_billing`, `street_address`, `street_number`, `street_number_suffix`, `street_number_predirectional`, `street_name`, `street_type`, `street_number_postdirectional`, `street_unit`, `supplemental_address_1`, `supplemental_address_2`, `supplemental_address_3`, `city`, `county_id`, `state_province_id`, `postal_code_suffix`, `postal_code`, `usps_adc`, `country_id`, `geo_code_1`, `geo_code_2`, `manual_geo_code`, `timezone`, `name`, `master_id`) VALUES
- (1,186,1,1,0,'377K Pine Ave NW',377,'K',NULL,'Pine','Ave','NW',NULL,NULL,NULL,NULL,'New Pine Creek',1,1004,NULL,'97635',NULL,1228,41.924974,-120.28989,0,NULL,NULL,NULL),
- (2,47,1,1,0,'597M Lincoln Dr W',597,'M',NULL,'Lincoln','Dr','W',NULL,NULL,NULL,NULL,'Franklin',1,1013,NULL,'46696',NULL,1228,41.156891,-86.604952,0,NULL,NULL,NULL),
- (3,154,1,1,0,'312E Dowlen Ln S',312,'E',NULL,'Dowlen','Ln','S',NULL,NULL,NULL,NULL,'Winamac',1,1013,NULL,'46996',NULL,1228,41.048063,-86.64799,0,NULL,NULL,NULL),
- (4,145,1,1,0,'271W Lincoln Pl SW',271,'W',NULL,'Lincoln','Pl','SW',NULL,NULL,NULL,NULL,'Chula Vista',1,1004,NULL,'91915',NULL,1228,32.638072,-116.95195,0,NULL,NULL,NULL),
- (5,50,1,1,0,'755Q Lincoln St SW',755,'Q',NULL,'Lincoln','St','SW',NULL,NULL,NULL,NULL,'Trion',1,1009,NULL,'30753',NULL,1228,34.558404,-85.30301,0,NULL,NULL,NULL),
- (6,75,1,1,0,'294Z Lincoln Way NE',294,'Z',NULL,'Lincoln','Way','NE',NULL,NULL,NULL,NULL,'Loch Sheldrake',1,1031,NULL,'12759',NULL,1228,41.780299,-74.65618,0,NULL,NULL,NULL),
- (7,4,1,1,0,'534X Maple Way S',534,'X',NULL,'Maple','Way','S',NULL,NULL,NULL,NULL,'Otto',1,1049,NULL,'82434',NULL,1228,44.396661,-108.28605,0,NULL,NULL,NULL),
- (8,192,1,1,0,'777G Northpoint Ave NE',777,'G',NULL,'Northpoint','Ave','NE',NULL,NULL,NULL,NULL,'Bergland',1,1021,NULL,'49910',NULL,1228,46.576653,-89.57618,0,NULL,NULL,NULL),
- (9,92,1,1,0,'5A Martin Luther King Way SW',5,'A',NULL,'Martin Luther King','Way','SW',NULL,NULL,NULL,NULL,'Fort Wayne',1,1013,NULL,'46854',NULL,1228,41.093763,-85.070713,0,NULL,NULL,NULL),
- (10,125,1,1,0,'621M States Dr E',621,'M',NULL,'States','Dr','E',NULL,NULL,NULL,NULL,'Bremerton',1,1046,NULL,'98311',NULL,1228,47.629717,-122.63493,0,NULL,NULL,NULL),
- (11,137,1,1,0,'113Y Beech St SW',113,'Y',NULL,'Beech','St','SW',NULL,NULL,NULL,NULL,'Pomeroy',1,1046,NULL,'99347',NULL,1228,46.44754,-117.57295,0,NULL,NULL,NULL),
- (12,13,1,1,0,'700U States Dr SE',700,'U',NULL,'States','Dr','SE',NULL,NULL,NULL,NULL,'Middleport',1,1037,NULL,'17953',NULL,1228,40.727464,-76.08556,0,NULL,NULL,NULL),
- (13,99,1,1,0,'37V Second Rd SE',37,'V',NULL,'Second','Rd','SE',NULL,NULL,NULL,NULL,'Warsaw',1,1045,NULL,'22572',NULL,1228,37.957869,-76.75725,0,NULL,NULL,NULL),
- (14,113,1,1,0,'664N Green Rd W',664,'N',NULL,'Green','Rd','W',NULL,NULL,NULL,NULL,'Loda',1,1012,NULL,'60948',NULL,1228,40.526477,-88.0821,0,NULL,NULL,NULL),
- (15,130,1,1,0,'967J Van Ness Pl NE',967,'J',NULL,'Van Ness','Pl','NE',NULL,NULL,NULL,NULL,'North Tazewell',1,1045,NULL,'24630',NULL,1228,37.155621,-81.49787,0,NULL,NULL,NULL),
- (16,108,1,1,0,'285U Beech Pl W',285,'U',NULL,'Beech','Pl','W',NULL,NULL,NULL,NULL,'Dallas',1,1042,NULL,'75238',NULL,1228,32.873926,-96.70922,0,NULL,NULL,NULL),
- (17,198,1,1,0,'307E States Ln NW',307,'E',NULL,'States','Ln','NW',NULL,NULL,NULL,NULL,'Berkeley',1,1004,NULL,'94707',NULL,1228,37.894625,-122.27917,0,NULL,NULL,NULL),
- (18,174,1,1,0,'636I Van Ness Path E',636,'I',NULL,'Van Ness','Path','E',NULL,NULL,NULL,NULL,'Dothan',1,1000,NULL,'36301',NULL,1228,31.180076,-85.4045,0,NULL,NULL,NULL),
- (19,107,1,1,0,'281T Maple St S',281,'T',NULL,'Maple','St','S',NULL,NULL,NULL,NULL,'Belle Mina',1,1000,NULL,'35615',NULL,1228,34.774907,-87.030479,0,NULL,NULL,NULL),
- (20,86,1,1,0,'53W Maple St W',53,'W',NULL,'Maple','St','W',NULL,NULL,NULL,NULL,'Lowell',1,1048,NULL,'53557',NULL,1228,43.339823,-88.79719,0,NULL,NULL,NULL),
- (21,54,1,1,0,'25V Caulder Dr NW',25,'V',NULL,'Caulder','Dr','NW',NULL,NULL,NULL,NULL,'Goodwell',1,1035,NULL,'73939',NULL,1228,36.691413,-101.738,0,NULL,NULL,NULL),
- (22,161,1,1,0,'249H Pine Blvd NE',249,'H',NULL,'Pine','Blvd','NE',NULL,NULL,NULL,NULL,'Purcellville',1,1045,NULL,'20134',NULL,1228,39.152187,-77.702576,0,NULL,NULL,NULL),
- (23,165,1,1,0,'166V Green Pl W',166,'V',NULL,'Green','Pl','W',NULL,NULL,NULL,NULL,'Syracuse',1,1031,NULL,'13225',NULL,1228,43.02143,-76.197701,0,NULL,NULL,NULL),
- (24,141,1,1,0,'138I El Camino Blvd N',138,'I',NULL,'El Camino','Blvd','N',NULL,NULL,NULL,NULL,'Washington',1,1050,NULL,'20380',NULL,1228,38.893311,-77.014647,0,NULL,NULL,NULL),
- (25,41,1,1,0,'451V Main St S',451,'V',NULL,'Main','St','S',NULL,NULL,NULL,NULL,'Stevensville',1,1019,NULL,'21666',NULL,1228,38.942464,-76.34124,0,NULL,NULL,NULL),
- (26,21,1,1,0,'33W Northpoint Blvd W',33,'W',NULL,'Northpoint','Blvd','W',NULL,NULL,NULL,NULL,'Tallula',1,1012,NULL,'62688',NULL,1228,39.944264,-89.93366,0,NULL,NULL,NULL),
- (27,181,1,1,0,'504P Bay Pl NW',504,'P',NULL,'Bay','Pl','NW',NULL,NULL,NULL,NULL,'Jeffersonville',1,1016,NULL,'40337',NULL,1228,37.9615,-83.8438,0,NULL,NULL,NULL),
- (28,83,1,1,0,'19C Jackson Rd SW',19,'C',NULL,'Jackson','Rd','SW',NULL,NULL,NULL,NULL,'Delray Beach',1,1008,NULL,'33447',NULL,1228,26.645895,-80.430269,0,NULL,NULL,NULL),
- (29,73,1,1,0,'542U Main Rd SE',542,'U',NULL,'Main','Rd','SE',NULL,NULL,NULL,NULL,'New York',1,1031,NULL,'10279',NULL,1228,40.713062,-74.00857,0,NULL,NULL,NULL),
- (30,178,1,1,0,'160K Dowlen Ln NW',160,'K',NULL,'Dowlen','Ln','NW',NULL,NULL,NULL,NULL,'Mantua',1,1043,NULL,'84324',NULL,1228,41.492466,-111.94275,0,NULL,NULL,NULL),
- (31,133,1,1,0,'466U States Ave NE',466,'U',NULL,'States','Ave','NE',NULL,NULL,NULL,NULL,'Kilbourne',1,1034,NULL,'43032',NULL,1228,40.328773,-82.95824,0,NULL,NULL,NULL),
- (32,155,1,1,0,'441X Northpoint Pl E',441,'X',NULL,'Northpoint','Pl','E',NULL,NULL,NULL,NULL,'Racine',1,1048,NULL,'53402',NULL,1228,42.767286,-87.79747,0,NULL,NULL,NULL),
- (33,177,1,1,0,'973N Maple Way N',973,'N',NULL,'Maple','Way','N',NULL,NULL,NULL,NULL,'Wellington',1,1027,NULL,'89444',NULL,1228,38.738712,-119.34585,0,NULL,NULL,NULL),
- (34,116,1,1,0,'618W Green Ln N',618,'W',NULL,'Green','Ln','N',NULL,NULL,NULL,NULL,'Pretty Prairie',1,1015,NULL,'67570',NULL,1228,37.784834,-97.98231,0,NULL,NULL,NULL),
- (35,6,1,1,0,'390Q Jackson Blvd NE',390,'Q',NULL,'Jackson','Blvd','NE',NULL,NULL,NULL,NULL,'Exchange',1,1047,NULL,'26619',NULL,1228,38.788013,-80.73291,0,NULL,NULL,NULL),
- (36,171,1,1,0,'275G Martin Luther King Way SE',275,'G',NULL,'Martin Luther King','Way','SE',NULL,NULL,NULL,NULL,'Aurora',1,1014,NULL,'50607',NULL,1228,42.616399,-91.73262,0,NULL,NULL,NULL),
- (37,129,1,1,0,'214G Beech Pl S',214,'G',NULL,'Beech','Pl','S',NULL,NULL,NULL,NULL,'Brimfield',1,1013,NULL,'46720',NULL,1228,41.395275,-85.423462,0,NULL,NULL,NULL),
- (38,173,1,1,0,'347M Green Pl SW',347,'M',NULL,'Green','Pl','SW',NULL,NULL,NULL,NULL,'Fountain Valley',1,1004,NULL,'92708',NULL,1228,33.708618,-117.95629,0,NULL,NULL,NULL),
- (39,23,1,1,0,'829H Beech Dr W',829,'H',NULL,'Beech','Dr','W',NULL,NULL,NULL,NULL,'Orem',1,1043,NULL,'84097',NULL,1228,40.301444,-111.67485,0,NULL,NULL,NULL),
- (40,79,1,1,0,'202D Second Pl W',202,'D',NULL,'Second','Pl','W',NULL,NULL,NULL,NULL,'Honolulu',1,1010,NULL,'96827',NULL,1228,24.859832,-168.021815,0,NULL,NULL,NULL),
- (41,71,1,1,0,'220S College Pl NW',220,'S',NULL,'College','Pl','NW',NULL,NULL,NULL,NULL,'Runnells',1,1014,NULL,'50237',NULL,1228,41.536205,-93.38182,0,NULL,NULL,NULL),
- (42,201,1,1,0,'633R Lincoln Path E',633,'R',NULL,'Lincoln','Path','E',NULL,NULL,NULL,NULL,'Lampasas',1,1042,NULL,'76550',NULL,1228,31.06639,-98.19192,0,NULL,NULL,NULL),
- (43,182,1,1,0,'161X Northpoint Path NE',161,'X',NULL,'Northpoint','Path','NE',NULL,NULL,NULL,NULL,'Kingwood',1,1047,NULL,'26537',NULL,1228,39.472924,-79.69873,0,NULL,NULL,NULL),
- (44,8,1,1,0,'332I Cadell Rd E',332,'I',NULL,'Cadell','Rd','E',NULL,NULL,NULL,NULL,'Grenora',1,1033,NULL,'58845',NULL,1228,48.629988,-103.93903,0,NULL,NULL,NULL),
- (45,52,1,1,0,'599B Caulder Path SE',599,'B',NULL,'Caulder','Path','SE',NULL,NULL,NULL,NULL,'Saint Regis',1,1025,NULL,'59866',NULL,1228,47.3245,-115.13788,0,NULL,NULL,NULL),
- (46,144,1,1,0,'111X College Dr E',111,'X',NULL,'College','Dr','E',NULL,NULL,NULL,NULL,'Gans',1,1035,NULL,'74936',NULL,1228,35.392525,-94.70368,0,NULL,NULL,NULL),
- (47,39,1,1,0,'628V Bay Path W',628,'V',NULL,'Bay','Path','W',NULL,NULL,NULL,NULL,'Mobile',1,1000,NULL,'36606',NULL,1228,30.674057,-88.10249,0,NULL,NULL,NULL),
- (48,159,1,1,0,'341C Lincoln Rd S',341,'C',NULL,'Lincoln','Rd','S',NULL,NULL,NULL,NULL,'Washington',1,1050,NULL,'20441',NULL,1228,38.923861,-77.036349,0,NULL,NULL,NULL),
- (49,45,1,1,0,'601L Main Blvd W',601,'L',NULL,'Main','Blvd','W',NULL,NULL,NULL,NULL,'Cut Bank',1,1025,NULL,'59427',NULL,1228,48.680309,-112.47009,0,NULL,NULL,NULL),
- (50,40,1,1,0,'390U El Camino Ave E',390,'U',NULL,'El Camino','Ave','E',NULL,NULL,NULL,NULL,'Bell City',1,1024,NULL,'63735',NULL,1228,36.992718,-89.78369,0,NULL,NULL,NULL),
- (51,90,1,1,0,'240D Main Dr W',240,'D',NULL,'Main','Dr','W',NULL,NULL,NULL,NULL,'Washington',1,1050,NULL,'20050',NULL,1228,38.893311,-77.014647,0,NULL,NULL,NULL),
- (52,189,1,1,0,'320C Northpoint Ln E',320,'C',NULL,'Northpoint','Ln','E',NULL,NULL,NULL,NULL,'Palermo',1,1018,NULL,'04354',NULL,1228,44.384901,-69.4136,0,NULL,NULL,NULL),
- (53,60,1,1,0,'751D Beech Way NE',751,'D',NULL,'Beech','Way','NE',NULL,NULL,NULL,NULL,'McRae',1,1003,NULL,'72102',NULL,1228,35.125583,-91.82508,0,NULL,NULL,NULL),
- (54,58,1,1,0,'531J Lincoln Path E',531,'J',NULL,'Lincoln','Path','E',NULL,NULL,NULL,NULL,'Fort Atkinson',1,1048,NULL,'53538',NULL,1228,42.924942,-88.84813,0,NULL,NULL,NULL),
- (55,167,1,1,0,'758I Jackson Blvd NW',758,'I',NULL,'Jackson','Blvd','NW',NULL,NULL,NULL,NULL,'Buckhorn',1,1016,NULL,'41721',NULL,1228,37.325318,-83.49048,0,NULL,NULL,NULL),
- (56,164,1,1,0,'451A Green Way S',451,'A',NULL,'Green','Way','S',NULL,NULL,NULL,NULL,'Stockville',1,1026,NULL,'69042',NULL,1228,40.519197,-100.37754,0,NULL,NULL,NULL),
- (57,48,1,1,0,'670E Northpoint Dr SE',670,'E',NULL,'Northpoint','Dr','SE',NULL,NULL,NULL,NULL,'Newport',1,1016,NULL,'41099',NULL,1228,38.963761,-84.368926,0,NULL,NULL,NULL),
- (58,80,1,1,0,'593T Second Way SE',593,'T',NULL,'Second','Way','SE',NULL,NULL,NULL,NULL,'Charlotte',1,1032,NULL,'28208',NULL,1228,35.235791,-80.89295,0,NULL,NULL,NULL),
- (59,156,1,1,0,'74Z Bay Blvd N',74,'Z',NULL,'Bay','Blvd','N',NULL,NULL,NULL,NULL,'Pioche',1,1027,NULL,'89043',NULL,1228,38.122239,-114.40318,0,NULL,NULL,NULL),
- (60,56,1,1,0,'124W Lincoln Way S',124,'W',NULL,'Lincoln','Way','S',NULL,NULL,NULL,NULL,'Muncie',1,1013,NULL,'47302',NULL,1228,40.164393,-85.38114,0,NULL,NULL,NULL),
- (61,179,1,1,0,'956X Jackson Dr E',956,'X',NULL,'Jackson','Dr','E',NULL,NULL,NULL,NULL,'Leonardo',1,1029,NULL,'07737',NULL,1228,40.416772,-74.06058,0,NULL,NULL,NULL),
- (62,24,1,1,0,'662T Martin Luther King Dr NW',662,'T',NULL,'Martin Luther King','Dr','NW',NULL,NULL,NULL,NULL,'Adams',1,1026,NULL,'68301',NULL,1228,40.472055,-96.52637,0,NULL,NULL,NULL),
- (63,66,1,1,0,'767S Martin Luther King Ave SW',767,'S',NULL,'Martin Luther King','Ave','SW',NULL,NULL,NULL,NULL,'Santa Clarita',1,1004,NULL,'91387',NULL,1228,34.421537,-118.419181,0,NULL,NULL,NULL),
- (64,34,1,1,0,'5W Cadell Rd W',5,'W',NULL,'Cadell','Rd','W',NULL,NULL,NULL,NULL,'North Bonneville',1,1046,NULL,'98639',NULL,1228,45.650041,-121.97167,0,NULL,NULL,NULL),
- (65,162,1,1,0,'215R Bay St N',215,'R',NULL,'Bay','St','N',NULL,NULL,NULL,NULL,'Murrells Inlet',1,1039,NULL,'29875',NULL,1228,33.55016,-79.053838,0,NULL,NULL,NULL),
- (66,200,1,1,0,'39V College Dr S',39,'V',NULL,'College','Dr','S',NULL,NULL,NULL,NULL,'Whitestown',1,1013,NULL,'46075',NULL,1228,40.007024,-86.34405,0,NULL,NULL,NULL),
- (67,25,1,1,0,'147N Jackson St S',147,'N',NULL,'Jackson','St','S',NULL,NULL,NULL,NULL,'Louisville',1,1015,NULL,'66450',NULL,1228,39.251831,-96.31402,0,NULL,NULL,NULL),
- (68,119,1,1,0,'719A Van Ness Dr N',719,'A',NULL,'Van Ness','Dr','N',NULL,NULL,NULL,NULL,'New Palestine',1,1013,NULL,'46163',NULL,1228,39.726811,-85.89726,0,NULL,NULL,NULL),
- (69,166,1,1,0,'665G Beech Dr N',665,'G',NULL,'Beech','Dr','N',NULL,NULL,NULL,NULL,'Concordia',1,1024,NULL,'64020',NULL,1228,38.97688,-93.5895,0,NULL,NULL,NULL),
- (70,65,1,1,0,'446I States St NW',446,'I',NULL,'States','St','NW',NULL,NULL,NULL,NULL,'Atlanta',1,1009,NULL,'30338',NULL,1228,33.942751,-84.31769,0,NULL,NULL,NULL),
- (71,93,3,1,0,'183Q Caulder St W',183,'Q',NULL,'Caulder','St','W',NULL,'Subscriptions Dept',NULL,NULL,'Hazleton',1,1037,NULL,'18021',NULL,1228,40.954484,-75.973747,0,NULL,NULL,NULL),
- (72,195,3,1,0,'970J Beech St S',970,'J',NULL,'Beech','St','S',NULL,'Attn: Accounting',NULL,NULL,'New Lothrop',1,1021,NULL,'48460',NULL,1228,43.131102,-83.98443,0,NULL,NULL,NULL),
- (73,182,2,0,0,'970J Beech St S',970,'J',NULL,'Beech','St','S',NULL,'Attn: Accounting',NULL,NULL,'New Lothrop',1,1021,NULL,'48460',NULL,1228,43.131102,-83.98443,0,NULL,NULL,72),
- (74,140,3,1,0,'544V Bay Blvd SE',544,'V',NULL,'Bay','Blvd','SE',NULL,'Community Relations',NULL,NULL,'Pontiac',1,1024,NULL,'65729',NULL,1228,36.525433,-92.59234,0,NULL,NULL,NULL),
- (75,185,2,1,0,'544V Bay Blvd SE',544,'V',NULL,'Bay','Blvd','SE',NULL,'Community Relations',NULL,NULL,'Pontiac',1,1024,NULL,'65729',NULL,1228,36.525433,-92.59234,0,NULL,NULL,74),
- (76,128,3,1,0,'239B Northpoint Ave SW',239,'B',NULL,'Northpoint','Ave','SW',NULL,'Mailstop 101',NULL,NULL,'Owendale',1,1021,NULL,'48754',NULL,1228,43.736747,-83.24746,0,NULL,NULL,NULL),
- (77,163,3,1,0,'527L Maple Way S',527,'L',NULL,'Maple','Way','S',NULL,'Mailstop 101',NULL,NULL,'Red Lake Falls',1,1022,NULL,'56750',NULL,1228,47.886448,-96.29033,0,NULL,NULL,NULL),
- (78,132,3,1,0,'143Q Martin Luther King Blvd NW',143,'Q',NULL,'Martin Luther King','Blvd','NW',NULL,'Cuffe Parade',NULL,NULL,'Withams',1,1045,NULL,'23488',NULL,1228,37.952168,-75.59681,0,NULL,NULL,NULL),
- (79,184,3,1,0,'331U Beech Blvd SW',331,'U',NULL,'Beech','Blvd','SW',NULL,'c/o OPDC',NULL,NULL,'Los Indios',1,1042,NULL,'78567',NULL,1228,26.041669,-97.693736,0,NULL,NULL,NULL),
- (80,176,3,1,0,'735Y Beech Way SW',735,'Y',NULL,'Beech','Way','SW',NULL,'c/o PO Plus',NULL,NULL,'Hyattville',1,1049,NULL,'82428',NULL,1228,44.255087,-107.63702,0,NULL,NULL,NULL),
- (81,87,3,1,0,'974N Maple Rd W',974,'N',NULL,'Maple','Rd','W',NULL,'Attn: Development',NULL,NULL,'Oakland',1,1004,NULL,'94613',NULL,1228,37.781098,-122.186573,0,NULL,NULL,NULL),
- (82,95,2,1,0,'974N Maple Rd W',974,'N',NULL,'Maple','Rd','W',NULL,'Attn: Development',NULL,NULL,'Oakland',1,1004,NULL,'94613',NULL,1228,37.781098,-122.186573,0,NULL,NULL,81),
- (83,77,3,1,0,'545O States Way W',545,'O',NULL,'States','Way','W',NULL,'Editorial Dept',NULL,NULL,'Whitfield',1,1023,NULL,'39193',NULL,1228,32.234775,-90.07263,0,NULL,NULL,NULL),
- (84,142,2,1,0,'545O States Way W',545,'O',NULL,'States','Way','W',NULL,'Editorial Dept',NULL,NULL,'Whitfield',1,1023,NULL,'39193',NULL,1228,32.234775,-90.07263,0,NULL,NULL,83),
- (85,196,3,1,0,'495M Jackson Pl SW',495,'M',NULL,'Jackson','Pl','SW',NULL,'Receiving',NULL,NULL,'Ardmore',1,1035,NULL,'73403',NULL,1228,34.288884,-97.248074,0,NULL,NULL,NULL),
- (86,193,2,1,0,'495M Jackson Pl SW',495,'M',NULL,'Jackson','Pl','SW',NULL,'Receiving',NULL,NULL,'Ardmore',1,1035,NULL,'73403',NULL,1228,34.288884,-97.248074,0,NULL,NULL,85),
- (87,160,3,1,0,'237P Martin Luther King Ln E',237,'P',NULL,'Martin Luther King','Ln','E',NULL,'c/o OPDC',NULL,NULL,'Greenville',1,1042,NULL,'75401',NULL,1228,33.15023,-96.11289,0,NULL,NULL,NULL),
- (88,183,2,1,0,'237P Martin Luther King Ln E',237,'P',NULL,'Martin Luther King','Ln','E',NULL,'c/o OPDC',NULL,NULL,'Greenville',1,1042,NULL,'75401',NULL,1228,33.15023,-96.11289,0,NULL,NULL,87),
- (89,123,3,1,0,'728U Martin Luther King Rd NW',728,'U',NULL,'Martin Luther King','Rd','NW',NULL,'Cuffe Parade',NULL,NULL,'Indianapolis',1,1013,NULL,'46259',NULL,1228,39.651145,-85.98073,0,NULL,NULL,NULL),
- (90,83,2,0,0,'728U Martin Luther King Rd NW',728,'U',NULL,'Martin Luther King','Rd','NW',NULL,'Cuffe Parade',NULL,NULL,'Indianapolis',1,1013,NULL,'46259',NULL,1228,39.651145,-85.98073,0,NULL,NULL,89),
- (91,59,3,1,0,'223E Martin Luther King Ln E',223,'E',NULL,'Martin Luther King','Ln','E',NULL,'Disbursements',NULL,NULL,'Starbuck',1,1046,NULL,'99359',NULL,1228,46.523206,-118.19393,0,NULL,NULL,NULL),
- (92,17,3,1,0,'361H College Dr NE',361,'H',NULL,'College','Dr','NE',NULL,'Cuffe Parade',NULL,NULL,'Laceyville',1,1037,NULL,'18623',NULL,1228,41.653217,-76.1487,0,NULL,NULL,NULL),
- (93,10,2,1,0,'361H College Dr NE',361,'H',NULL,'College','Dr','NE',NULL,'Cuffe Parade',NULL,NULL,'Laceyville',1,1037,NULL,'18623',NULL,1228,41.653217,-76.1487,0,NULL,NULL,92),
- (94,126,3,1,0,'380D Jackson Rd W',380,'D',NULL,'Jackson','Rd','W',NULL,'c/o OPDC',NULL,NULL,'Luling',1,1017,NULL,'70070',NULL,1228,29.907162,-90.35142,0,NULL,NULL,NULL),
- (95,15,2,1,0,'380D Jackson Rd W',380,'D',NULL,'Jackson','Rd','W',NULL,'c/o OPDC',NULL,NULL,'Luling',1,1017,NULL,'70070',NULL,1228,29.907162,-90.35142,0,NULL,NULL,94),
- (96,188,3,1,0,'418E Main Way NE',418,'E',NULL,'Main','Way','NE',NULL,'c/o PO Plus',NULL,NULL,'Melissa',1,1042,NULL,'75454',NULL,1228,33.277317,-96.57345,0,NULL,NULL,NULL),
- (97,159,2,0,0,'418E Main Way NE',418,'E',NULL,'Main','Way','NE',NULL,'c/o PO Plus',NULL,NULL,'Melissa',1,1042,NULL,'75454',NULL,1228,33.277317,-96.57345,0,NULL,NULL,96),
- (98,78,3,1,0,'889Q College Path E',889,'Q',NULL,'College','Path','E',NULL,'c/o PO Plus',NULL,NULL,'Huntington',1,1047,NULL,'25720',NULL,1228,38.413384,-82.277401,0,NULL,NULL,NULL),
- (99,146,3,1,0,'884D Caulder Blvd E',884,'D',NULL,'Caulder','Blvd','E',NULL,'Mailstop 101',NULL,NULL,'Midlothian',1,1042,NULL,'76065',NULL,1228,32.484094,-96.98672,0,NULL,NULL,NULL),
- (100,45,2,0,0,'884D Caulder Blvd E',884,'D',NULL,'Caulder','Blvd','E',NULL,'Mailstop 101',NULL,NULL,'Midlothian',1,1042,NULL,'76065',NULL,1228,32.484094,-96.98672,0,NULL,NULL,99),
- (101,175,3,1,0,'726J Green Ave N',726,'J',NULL,'Green','Ave','N',NULL,'Receiving',NULL,NULL,'Piney View',1,1047,NULL,'25906',NULL,1228,37.837573,-81.128631,0,NULL,NULL,NULL),
- (102,101,1,1,0,'240D Main Dr W',240,'D',NULL,'Main','Dr','W',NULL,NULL,NULL,NULL,'Washington',1,1050,NULL,'20050',NULL,1228,38.893311,-77.014647,0,NULL,NULL,51),
- (103,69,1,1,0,'240D Main Dr W',240,'D',NULL,'Main','Dr','W',NULL,NULL,NULL,NULL,'Washington',1,1050,NULL,'20050',NULL,1228,38.893311,-77.014647,0,NULL,NULL,51),
- (104,12,1,1,0,'240D Main Dr W',240,'D',NULL,'Main','Dr','W',NULL,NULL,NULL,NULL,'Washington',1,1050,NULL,'20050',NULL,1228,38.893311,-77.014647,0,NULL,NULL,51),
- (105,40,1,0,0,'874J Woodbridge Dr N',874,'J',NULL,'Woodbridge','Dr','N',NULL,NULL,NULL,NULL,'Morgan',1,1042,NULL,'76671',NULL,1228,32.011671,-97.5324,0,NULL,NULL,NULL),
- (106,105,1,1,0,'320C Northpoint Ln E',320,'C',NULL,'Northpoint','Ln','E',NULL,NULL,NULL,NULL,'Palermo',1,1018,NULL,'04354',NULL,1228,44.384901,-69.4136,0,NULL,NULL,52),
- (107,143,1,1,0,'320C Northpoint Ln E',320,'C',NULL,'Northpoint','Ln','E',NULL,NULL,NULL,NULL,'Palermo',1,1018,NULL,'04354',NULL,1228,44.384901,-69.4136,0,NULL,NULL,52),
- (108,27,1,1,0,'320C Northpoint Ln E',320,'C',NULL,'Northpoint','Ln','E',NULL,NULL,NULL,NULL,'Palermo',1,1018,NULL,'04354',NULL,1228,44.384901,-69.4136,0,NULL,NULL,52),
- (109,193,1,0,0,'605N Green Ave SW',605,'N',NULL,'Green','Ave','SW',NULL,NULL,NULL,NULL,'Daniels',1,1047,NULL,'25832',NULL,1228,37.728559,-81.10364,0,NULL,NULL,NULL),
- (110,122,1,1,0,'751D Beech Way NE',751,'D',NULL,'Beech','Way','NE',NULL,NULL,NULL,NULL,'McRae',1,1003,NULL,'72102',NULL,1228,35.125583,-91.82508,0,NULL,NULL,53),
- (111,35,1,1,0,'751D Beech Way NE',751,'D',NULL,'Beech','Way','NE',NULL,NULL,NULL,NULL,'McRae',1,1003,NULL,'72102',NULL,1228,35.125583,-91.82508,0,NULL,NULL,53),
- (112,157,1,1,0,'751D Beech Way NE',751,'D',NULL,'Beech','Way','NE',NULL,NULL,NULL,NULL,'McRae',1,1003,NULL,'72102',NULL,1228,35.125583,-91.82508,0,NULL,NULL,53),
- (113,120,1,1,0,'962V Bay Rd N',962,'V',NULL,'Bay','Rd','N',NULL,NULL,NULL,NULL,'Hollywood',1,1008,NULL,'33019',NULL,1228,26.018967,-80.12231,0,NULL,NULL,NULL),
- (114,62,1,1,0,'531J Lincoln Path E',531,'J',NULL,'Lincoln','Path','E',NULL,NULL,NULL,NULL,'Fort Atkinson',1,1048,NULL,'53538',NULL,1228,42.924942,-88.84813,0,NULL,NULL,54),
- (115,64,1,1,0,'531J Lincoln Path E',531,'J',NULL,'Lincoln','Path','E',NULL,NULL,NULL,NULL,'Fort Atkinson',1,1048,NULL,'53538',NULL,1228,42.924942,-88.84813,0,NULL,NULL,54),
- (116,172,1,1,0,'531J Lincoln Path E',531,'J',NULL,'Lincoln','Path','E',NULL,NULL,NULL,NULL,'Fort Atkinson',1,1048,NULL,'53538',NULL,1228,42.924942,-88.84813,0,NULL,NULL,54),
- (117,150,1,1,0,'887P Van Ness Blvd NE',887,'P',NULL,'Van Ness','Blvd','NE',NULL,NULL,NULL,NULL,'Akron',1,1034,NULL,'44398',NULL,1228,41.128705,-81.53999,0,NULL,NULL,NULL),
- (118,11,1,1,0,'758I Jackson Blvd NW',758,'I',NULL,'Jackson','Blvd','NW',NULL,NULL,NULL,NULL,'Buckhorn',1,1016,NULL,'41721',NULL,1228,37.325318,-83.49048,0,NULL,NULL,55),
- (119,3,1,1,0,'758I Jackson Blvd NW',758,'I',NULL,'Jackson','Blvd','NW',NULL,NULL,NULL,NULL,'Buckhorn',1,1016,NULL,'41721',NULL,1228,37.325318,-83.49048,0,NULL,NULL,55),
- (120,22,1,1,0,'758I Jackson Blvd NW',758,'I',NULL,'Jackson','Blvd','NW',NULL,NULL,NULL,NULL,'Buckhorn',1,1016,NULL,'41721',NULL,1228,37.325318,-83.49048,0,NULL,NULL,55),
- (121,106,1,1,0,'758I Jackson Blvd NW',758,'I',NULL,'Jackson','Blvd','NW',NULL,NULL,NULL,NULL,'Buckhorn',1,1016,NULL,'41721',NULL,1228,37.325318,-83.49048,0,NULL,NULL,55),
- (122,38,1,1,0,'451A Green Way S',451,'A',NULL,'Green','Way','S',NULL,NULL,NULL,NULL,'Stockville',1,1026,NULL,'69042',NULL,1228,40.519197,-100.37754,0,NULL,NULL,56),
- (123,124,1,1,0,'451A Green Way S',451,'A',NULL,'Green','Way','S',NULL,NULL,NULL,NULL,'Stockville',1,1026,NULL,'69042',NULL,1228,40.519197,-100.37754,0,NULL,NULL,56),
- (124,9,1,1,0,'451A Green Way S',451,'A',NULL,'Green','Way','S',NULL,NULL,NULL,NULL,'Stockville',1,1026,NULL,'69042',NULL,1228,40.519197,-100.37754,0,NULL,NULL,56),
- (125,131,1,1,0,'171U Bay St SE',171,'U',NULL,'Bay','St','SE',NULL,NULL,NULL,NULL,'Augusta',1,1009,NULL,'30901',NULL,1228,33.461121,-81.97265,0,NULL,NULL,NULL),
- (126,187,1,1,0,'670E Northpoint Dr SE',670,'E',NULL,'Northpoint','Dr','SE',NULL,NULL,NULL,NULL,'Newport',1,1016,NULL,'41099',NULL,1228,38.963761,-84.368926,0,NULL,NULL,57),
- (127,127,1,1,0,'670E Northpoint Dr SE',670,'E',NULL,'Northpoint','Dr','SE',NULL,NULL,NULL,NULL,'Newport',1,1016,NULL,'41099',NULL,1228,38.963761,-84.368926,0,NULL,NULL,57),
- (128,7,1,1,0,'670E Northpoint Dr SE',670,'E',NULL,'Northpoint','Dr','SE',NULL,NULL,NULL,NULL,'Newport',1,1016,NULL,'41099',NULL,1228,38.963761,-84.368926,0,NULL,NULL,57),
- (129,100,1,1,0,'934S Van Ness Pl S',934,'S',NULL,'Van Ness','Pl','S',NULL,NULL,NULL,NULL,'McKeesport',1,1037,NULL,'15135',NULL,1228,40.306819,-79.8145,0,NULL,NULL,NULL),
- (130,91,1,1,0,'593T Second Way SE',593,'T',NULL,'Second','Way','SE',NULL,NULL,NULL,NULL,'Charlotte',1,1032,NULL,'28208',NULL,1228,35.235791,-80.89295,0,NULL,NULL,58),
- (131,15,1,0,0,'593T Second Way SE',593,'T',NULL,'Second','Way','SE',NULL,NULL,NULL,NULL,'Charlotte',1,1032,NULL,'28208',NULL,1228,35.235791,-80.89295,0,NULL,NULL,58),
- (132,19,1,1,0,'593T Second Way SE',593,'T',NULL,'Second','Way','SE',NULL,NULL,NULL,NULL,'Charlotte',1,1032,NULL,'28208',NULL,1228,35.235791,-80.89295,0,NULL,NULL,58),
- (133,26,1,1,0,'12A Second Ave NE',12,'A',NULL,'Second','Ave','NE',NULL,NULL,NULL,NULL,'Bishop',1,1009,NULL,'30621',NULL,1228,33.804849,-83.48164,0,NULL,NULL,NULL),
- (134,109,1,1,0,'74Z Bay Blvd N',74,'Z',NULL,'Bay','Blvd','N',NULL,NULL,NULL,NULL,'Pioche',1,1027,NULL,'89043',NULL,1228,38.122239,-114.40318,0,NULL,NULL,59),
- (135,20,1,1,0,'74Z Bay Blvd N',74,'Z',NULL,'Bay','Blvd','N',NULL,NULL,NULL,NULL,'Pioche',1,1027,NULL,'89043',NULL,1228,38.122239,-114.40318,0,NULL,NULL,59),
- (136,191,1,1,0,'74Z Bay Blvd N',74,'Z',NULL,'Bay','Blvd','N',NULL,NULL,NULL,NULL,'Pioche',1,1027,NULL,'89043',NULL,1228,38.122239,-114.40318,0,NULL,NULL,59),
- (137,76,1,1,0,'74Z Bay Blvd N',74,'Z',NULL,'Bay','Blvd','N',NULL,NULL,NULL,NULL,'Pioche',1,1027,NULL,'89043',NULL,1228,38.122239,-114.40318,0,NULL,NULL,59),
- (138,152,1,1,0,'124W Lincoln Way S',124,'W',NULL,'Lincoln','Way','S',NULL,NULL,NULL,NULL,'Muncie',1,1013,NULL,'47302',NULL,1228,40.164393,-85.38114,0,NULL,NULL,60),
- (139,29,1,1,0,'124W Lincoln Way S',124,'W',NULL,'Lincoln','Way','S',NULL,NULL,NULL,NULL,'Muncie',1,1013,NULL,'47302',NULL,1228,40.164393,-85.38114,0,NULL,NULL,60),
- (140,197,1,1,0,'124W Lincoln Way S',124,'W',NULL,'Lincoln','Way','S',NULL,NULL,NULL,NULL,'Muncie',1,1013,NULL,'47302',NULL,1228,40.164393,-85.38114,0,NULL,NULL,60),
- (141,148,1,1,0,'185M College Path N',185,'M',NULL,'College','Path','N',NULL,NULL,NULL,NULL,'Granger',1,1013,NULL,'46530',NULL,1228,41.741872,-86.13717,0,NULL,NULL,NULL),
- (142,114,1,1,0,'956X Jackson Dr E',956,'X',NULL,'Jackson','Dr','E',NULL,NULL,NULL,NULL,'Leonardo',1,1029,NULL,'07737',NULL,1228,40.416772,-74.06058,0,NULL,NULL,61),
- (143,70,1,1,0,'956X Jackson Dr E',956,'X',NULL,'Jackson','Dr','E',NULL,NULL,NULL,NULL,'Leonardo',1,1029,NULL,'07737',NULL,1228,40.416772,-74.06058,0,NULL,NULL,61),
- (144,55,1,1,0,'956X Jackson Dr E',956,'X',NULL,'Jackson','Dr','E',NULL,NULL,NULL,NULL,'Leonardo',1,1029,NULL,'07737',NULL,1228,40.416772,-74.06058,0,NULL,NULL,61),
- (145,142,1,0,0,'956X Jackson Dr E',956,'X',NULL,'Jackson','Dr','E',NULL,NULL,NULL,NULL,'Leonardo',1,1029,NULL,'07737',NULL,1228,40.416772,-74.06058,0,NULL,NULL,61),
- (146,96,1,1,0,'662T Martin Luther King Dr NW',662,'T',NULL,'Martin Luther King','Dr','NW',NULL,NULL,NULL,NULL,'Adams',1,1026,NULL,'68301',NULL,1228,40.472055,-96.52637,0,NULL,NULL,62),
- (147,44,1,1,0,'662T Martin Luther King Dr NW',662,'T',NULL,'Martin Luther King','Dr','NW',NULL,NULL,NULL,NULL,'Adams',1,1026,NULL,'68301',NULL,1228,40.472055,-96.52637,0,NULL,NULL,62),
- (148,33,1,1,0,'662T Martin Luther King Dr NW',662,'T',NULL,'Martin Luther King','Dr','NW',NULL,NULL,NULL,NULL,'Adams',1,1026,NULL,'68301',NULL,1228,40.472055,-96.52637,0,NULL,NULL,62),
- (149,67,1,1,0,'662T Martin Luther King Dr NW',662,'T',NULL,'Martin Luther King','Dr','NW',NULL,NULL,NULL,NULL,'Adams',1,1026,NULL,'68301',NULL,1228,40.472055,-96.52637,0,NULL,NULL,62),
- (150,135,1,1,0,'767S Martin Luther King Ave SW',767,'S',NULL,'Martin Luther King','Ave','SW',NULL,NULL,NULL,NULL,'Santa Clarita',1,1004,NULL,'91387',NULL,1228,34.421537,-118.419181,0,NULL,NULL,63),
- (151,5,1,1,0,'767S Martin Luther King Ave SW',767,'S',NULL,'Martin Luther King','Ave','SW',NULL,NULL,NULL,NULL,'Santa Clarita',1,1004,NULL,'91387',NULL,1228,34.421537,-118.419181,0,NULL,NULL,63),
- (152,97,1,1,0,'767S Martin Luther King Ave SW',767,'S',NULL,'Martin Luther King','Ave','SW',NULL,NULL,NULL,NULL,'Santa Clarita',1,1004,NULL,'91387',NULL,1228,34.421537,-118.419181,0,NULL,NULL,63),
- (153,111,1,1,0,'152S Martin Luther King Path N',152,'S',NULL,'Martin Luther King','Path','N',NULL,NULL,NULL,NULL,'Rio Linda',1,1004,NULL,'95673',NULL,1228,38.688069,-121.44874,0,NULL,NULL,NULL),
- (154,190,1,1,0,'5W Cadell Rd W',5,'W',NULL,'Cadell','Rd','W',NULL,NULL,NULL,NULL,'North Bonneville',1,1046,NULL,'98639',NULL,1228,45.650041,-121.97167,0,NULL,NULL,64),
- (155,98,1,1,0,'5W Cadell Rd W',5,'W',NULL,'Cadell','Rd','W',NULL,NULL,NULL,NULL,'North Bonneville',1,1046,NULL,'98639',NULL,1228,45.650041,-121.97167,0,NULL,NULL,64),
- (156,102,1,1,0,'5W Cadell Rd W',5,'W',NULL,'Cadell','Rd','W',NULL,NULL,NULL,NULL,'North Bonneville',1,1046,NULL,'98639',NULL,1228,45.650041,-121.97167,0,NULL,NULL,64),
- (157,104,1,1,0,'456A Northpoint Ln N',456,'A',NULL,'Northpoint','Ln','N',NULL,NULL,NULL,NULL,'Turin',1,1031,NULL,'13473',NULL,1228,43.654278,-75.43828,0,NULL,NULL,NULL),
- (158,84,1,1,0,'215R Bay St N',215,'R',NULL,'Bay','St','N',NULL,NULL,NULL,NULL,'Murrells Inlet',1,1039,NULL,'29875',NULL,1228,33.55016,-79.053838,0,NULL,NULL,65),
- (159,61,1,1,0,'215R Bay St N',215,'R',NULL,'Bay','St','N',NULL,NULL,NULL,NULL,'Murrells Inlet',1,1039,NULL,'29875',NULL,1228,33.55016,-79.053838,0,NULL,NULL,65),
- (160,180,1,1,0,'215R Bay St N',215,'R',NULL,'Bay','St','N',NULL,NULL,NULL,NULL,'Murrells Inlet',1,1039,NULL,'29875',NULL,1228,33.55016,-79.053838,0,NULL,NULL,65),
- (161,32,1,1,0,'215R Bay St N',215,'R',NULL,'Bay','St','N',NULL,NULL,NULL,NULL,'Murrells Inlet',1,1039,NULL,'29875',NULL,1228,33.55016,-79.053838,0,NULL,NULL,65),
- (162,147,1,1,0,'39V College Dr S',39,'V',NULL,'College','Dr','S',NULL,NULL,NULL,NULL,'Whitestown',1,1013,NULL,'46075',NULL,1228,40.007024,-86.34405,0,NULL,NULL,66),
- (163,49,1,1,0,'39V College Dr S',39,'V',NULL,'College','Dr','S',NULL,NULL,NULL,NULL,'Whitestown',1,1013,NULL,'46075',NULL,1228,40.007024,-86.34405,0,NULL,NULL,66),
- (164,28,1,1,0,'39V College Dr S',39,'V',NULL,'College','Dr','S',NULL,NULL,NULL,NULL,'Whitestown',1,1013,NULL,'46075',NULL,1228,40.007024,-86.34405,0,NULL,NULL,66),
- (165,153,1,1,0,'39V College Dr S',39,'V',NULL,'College','Dr','S',NULL,NULL,NULL,NULL,'Whitestown',1,1013,NULL,'46075',NULL,1228,40.007024,-86.34405,0,NULL,NULL,66),
- (166,18,1,1,0,'147N Jackson St S',147,'N',NULL,'Jackson','St','S',NULL,NULL,NULL,NULL,'Louisville',1,1015,NULL,'66450',NULL,1228,39.251831,-96.31402,0,NULL,NULL,67),
- (167,117,1,1,0,'147N Jackson St S',147,'N',NULL,'Jackson','St','S',NULL,NULL,NULL,NULL,'Louisville',1,1015,NULL,'66450',NULL,1228,39.251831,-96.31402,0,NULL,NULL,67),
- (168,16,1,1,0,'147N Jackson St S',147,'N',NULL,'Jackson','St','S',NULL,NULL,NULL,NULL,'Louisville',1,1015,NULL,'66450',NULL,1228,39.251831,-96.31402,0,NULL,NULL,67),
- (169,121,1,1,0,'147N Jackson St S',147,'N',NULL,'Jackson','St','S',NULL,NULL,NULL,NULL,'Louisville',1,1015,NULL,'66450',NULL,1228,39.251831,-96.31402,0,NULL,NULL,67),
- (170,183,1,0,0,'719A Van Ness Dr N',719,'A',NULL,'Van Ness','Dr','N',NULL,NULL,NULL,NULL,'New Palestine',1,1013,NULL,'46163',NULL,1228,39.726811,-85.89726,0,NULL,NULL,68),
- (171,110,1,1,0,'719A Van Ness Dr N',719,'A',NULL,'Van Ness','Dr','N',NULL,NULL,NULL,NULL,'New Palestine',1,1013,NULL,'46163',NULL,1228,39.726811,-85.89726,0,NULL,NULL,68),
- (172,149,1,1,0,'719A Van Ness Dr N',719,'A',NULL,'Van Ness','Dr','N',NULL,NULL,NULL,NULL,'New Palestine',1,1013,NULL,'46163',NULL,1228,39.726811,-85.89726,0,NULL,NULL,68),
- (173,112,1,1,0,'719A Van Ness Dr N',719,'A',NULL,'Van Ness','Dr','N',NULL,NULL,NULL,NULL,'New Palestine',1,1013,NULL,'46163',NULL,1228,39.726811,-85.89726,0,NULL,NULL,68),
- (174,42,1,1,0,'665G Beech Dr N',665,'G',NULL,'Beech','Dr','N',NULL,NULL,NULL,NULL,'Concordia',1,1024,NULL,'64020',NULL,1228,38.97688,-93.5895,0,NULL,NULL,69),
- (175,169,1,1,0,'665G Beech Dr N',665,'G',NULL,'Beech','Dr','N',NULL,NULL,NULL,NULL,'Concordia',1,1024,NULL,'64020',NULL,1228,38.97688,-93.5895,0,NULL,NULL,69),
- (176,88,1,1,0,'665G Beech Dr N',665,'G',NULL,'Beech','Dr','N',NULL,NULL,NULL,NULL,'Concordia',1,1024,NULL,'64020',NULL,1228,38.97688,-93.5895,0,NULL,NULL,69),
- (177,68,1,1,0,'112U Martin Luther King Ave SW',112,'U',NULL,'Martin Luther King','Ave','SW',NULL,NULL,NULL,NULL,'West Ridge',1,1003,NULL,'72391',NULL,1228,35.694942,-89.966819,0,NULL,NULL,NULL),
- (178,10,1,0,0,'446I States St NW',446,'I',NULL,'States','St','NW',NULL,NULL,NULL,NULL,'Atlanta',1,1009,NULL,'30338',NULL,1228,33.942751,-84.31769,0,NULL,NULL,70),
- (179,151,1,1,0,'446I States St NW',446,'I',NULL,'States','St','NW',NULL,NULL,NULL,NULL,'Atlanta',1,1009,NULL,'30338',NULL,1228,33.942751,-84.31769,0,NULL,NULL,70),
- (180,194,1,1,0,'446I States St NW',446,'I',NULL,'States','St','NW',NULL,NULL,NULL,NULL,'Atlanta',1,1009,NULL,'30338',NULL,1228,33.942751,-84.31769,0,NULL,NULL,70),
- (181,57,1,1,0,'446I States St NW',446,'I',NULL,'States','St','NW',NULL,NULL,NULL,NULL,'Atlanta',1,1009,NULL,'30338',NULL,1228,33.942751,-84.31769,0,NULL,NULL,70),
- (182,NULL,1,1,1,'14S El Camino Way E',14,'S',NULL,'El Camino','Way',NULL,NULL,NULL,NULL,NULL,'Collinsville',NULL,1006,NULL,'6022',NULL,1228,41.8328,-72.9253,0,NULL,NULL,NULL),
- (183,NULL,1,1,1,'11B Woodbridge Path SW',11,'B',NULL,'Woodbridge','Path',NULL,NULL,NULL,NULL,NULL,'Dayton',NULL,1034,NULL,'45417',NULL,1228,39.7531,-84.2471,0,NULL,NULL,NULL),
- (184,NULL,1,1,1,'581O Lincoln Dr SW',581,'O',NULL,'Lincoln','Dr',NULL,NULL,NULL,NULL,NULL,'Santa Fe',NULL,1030,NULL,'87594',NULL,1228,35.5212,-105.982,0,NULL,NULL,NULL);
+ (1,195,1,1,0,'380H Cadell Ln SW',380,'H',NULL,'Cadell','Ln','SW',NULL,NULL,NULL,NULL,'Rancho Cordova',1,1004,NULL,'95741',NULL,1228,38.377411,-121.444429,0,NULL,NULL,NULL),
+ (2,150,1,1,0,'263Q Maple Way S',263,'Q',NULL,'Maple','Way','S',NULL,NULL,NULL,NULL,'Heflin',1,1017,NULL,'71039',NULL,1228,32.429157,-93.29549,0,NULL,NULL,NULL),
+ (3,164,1,1,0,'499J Dowlen Dr S',499,'J',NULL,'Dowlen','Dr','S',NULL,NULL,NULL,NULL,'Ringold',1,1035,NULL,'74754',NULL,1228,34.199682,-95.12064,0,NULL,NULL,NULL),
+ (4,79,1,1,0,'641U Cadell Ln S',641,'U',NULL,'Cadell','Ln','S',NULL,NULL,NULL,NULL,'Portland',1,1036,NULL,'97204',NULL,1228,45.51854,-122.6755,0,NULL,NULL,NULL),
+ (5,60,1,1,0,'681Z Woodbridge Blvd N',681,'Z',NULL,'Woodbridge','Blvd','N',NULL,NULL,NULL,NULL,'Butler',1,1037,NULL,'16002',NULL,1228,40.818663,-79.86119,0,NULL,NULL,NULL),
+ (6,179,1,1,0,'163G Northpoint Ln W',163,'G',NULL,'Northpoint','Ln','W',NULL,NULL,NULL,NULL,'Afton',1,1021,NULL,'49705',NULL,1228,45.355074,-84.47898,0,NULL,NULL,NULL),
+ (7,31,1,1,0,'115D Van Ness Pl NW',115,'D',NULL,'Van Ness','Pl','NW',NULL,NULL,NULL,NULL,'Findley Lake',1,1031,NULL,'14736',NULL,1228,42.130247,-79.74933,0,NULL,NULL,NULL),
+ (8,101,1,1,0,'983A Main Ave NW',983,'A',NULL,'Main','Ave','NW',NULL,NULL,NULL,NULL,'North Apollo',1,1037,NULL,'15163',NULL,1228,40.588257,-79.554054,0,NULL,NULL,NULL),
+ (9,174,1,1,0,'51W Maple Dr NE',51,'W',NULL,'Maple','Dr','NE',NULL,NULL,NULL,NULL,'Cedarville',1,1021,NULL,'49719',NULL,1228,45.998074,-84.32615,0,NULL,NULL,NULL),
+ (10,162,1,1,0,'225J Van Ness Pl S',225,'J',NULL,'Van Ness','Pl','S',NULL,NULL,NULL,NULL,'Chama',1,1005,NULL,'81126',NULL,1228,37.175339,-105.34164,0,NULL,NULL,NULL),
+ (11,29,1,1,0,'924C Main Ave NW',924,'C',NULL,'Main','Ave','NW',NULL,NULL,NULL,NULL,'Sioux Falls',1,1040,NULL,'57194',NULL,1228,43.674582,-96.79134,0,NULL,NULL,NULL),
+ (12,154,1,1,0,'662I Northpoint Blvd NW',662,'I',NULL,'Northpoint','Blvd','NW',NULL,NULL,NULL,NULL,'Premont',1,1042,NULL,'78375',NULL,1228,27.368433,-98.12184,0,NULL,NULL,NULL),
+ (13,133,1,1,0,'529K Caulder Path W',529,'K',NULL,'Caulder','Path','W',NULL,NULL,NULL,NULL,'Toston',1,1025,NULL,'59643',NULL,1228,46.186442,-111.56253,0,NULL,NULL,NULL),
+ (14,184,1,1,0,'230K Jackson Way NE',230,'K',NULL,'Jackson','Way','NE',NULL,NULL,NULL,NULL,'Peetz',1,1005,NULL,'80747',NULL,1228,40.964518,-103.11162,0,NULL,NULL,NULL),
+ (15,199,1,1,0,'450B Pine St N',450,'B',NULL,'Pine','St','N',NULL,NULL,NULL,NULL,'Piercy',1,1004,NULL,'95587',NULL,1228,39.96266,-123.74471,0,NULL,NULL,NULL),
+ (16,161,1,1,0,'598C Green Blvd N',598,'C',NULL,'Green','Blvd','N',NULL,NULL,NULL,NULL,'Westminster',1,1042,NULL,'75485',NULL,1228,33.362227,-96.46299,0,NULL,NULL,NULL),
+ (17,136,1,1,0,'796S Northpoint Dr NE',796,'S',NULL,'Northpoint','Dr','NE',NULL,NULL,NULL,NULL,'Beaver',1,1047,NULL,'25813',NULL,1228,37.754656,-81.11304,0,NULL,NULL,NULL),
+ (18,67,1,1,0,'192W Main Rd N',192,'W',NULL,'Main','Rd','N',NULL,NULL,NULL,NULL,'Otter Lake',1,1021,NULL,'48464',NULL,1228,43.219132,-83.42227,0,NULL,NULL,NULL),
+ (19,81,1,1,0,'375Y Lincoln St E',375,'Y',NULL,'Lincoln','St','E',NULL,NULL,NULL,NULL,'Lincoln Park',1,1029,NULL,'07035',NULL,1228,40.923233,-74.29376,0,NULL,NULL,NULL),
+ (20,114,1,1,0,'295C Bay Dr NW',295,'C',NULL,'Bay','Dr','NW',NULL,NULL,NULL,NULL,'Anaheim',1,1004,NULL,'92816',NULL,1228,33.640302,-117.769442,0,NULL,NULL,NULL),
+ (21,35,1,1,0,'554K Woodbridge Path SE',554,'K',NULL,'Woodbridge','Path','SE',NULL,NULL,NULL,NULL,'Gilsum',1,1028,NULL,'03448',NULL,1228,43.055293,-72.26149,0,NULL,NULL,NULL),
+ (22,175,1,1,0,'486D Main Ave W',486,'D',NULL,'Main','Ave','W',NULL,NULL,NULL,NULL,'Cutler',1,1004,NULL,'93615',NULL,1228,36.506019,-119.2866,0,NULL,NULL,NULL),
+ (23,30,1,1,0,'391P Jackson Way W',391,'P',NULL,'Jackson','Way','W',NULL,NULL,NULL,NULL,'Paradox',1,1005,NULL,'81429',NULL,1228,38.371101,-108.969823,0,NULL,NULL,NULL),
+ (24,140,1,1,0,'448L Lincoln Rd S',448,'L',NULL,'Lincoln','Rd','S',NULL,NULL,NULL,NULL,'Stafford',1,1042,NULL,'77477',NULL,1228,29.626187,-95.57145,0,NULL,NULL,NULL),
+ (25,192,1,1,0,'293R Caulder Way E',293,'R',NULL,'Caulder','Way','E',NULL,NULL,NULL,NULL,'Bickleton',1,1046,NULL,'99322',NULL,1228,45.963054,-120.25547,0,NULL,NULL,NULL),
+ (26,145,1,1,0,'751W Green St N',751,'W',NULL,'Green','St','N',NULL,NULL,NULL,NULL,'Highland Park',1,1021,NULL,'48203',NULL,1228,42.421936,-83.09981,0,NULL,NULL,NULL),
+ (27,74,1,1,0,'426T Northpoint Blvd W',426,'T',NULL,'Northpoint','Blvd','W',NULL,NULL,NULL,NULL,'Sedona',1,1002,NULL,'86341',NULL,1228,34.776648,-111.76788,0,NULL,NULL,NULL),
+ (28,124,1,1,0,'266H Martin Luther King Ln N',266,'H',NULL,'Martin Luther King','Ln','N',NULL,NULL,NULL,NULL,'Granger',1,1013,NULL,'46305',NULL,1228,41.74486,-86.177059,0,NULL,NULL,NULL),
+ (29,165,1,1,0,'60T States Rd N',60,'T',NULL,'States','Rd','N',NULL,NULL,NULL,NULL,'The Lakes',1,1027,NULL,'89163',NULL,1228,35.927901,-114.972061,0,NULL,NULL,NULL),
+ (30,77,1,1,0,'14X Caulder Dr N',14,'X',NULL,'Caulder','Dr','N',NULL,NULL,NULL,NULL,'Mayfield',1,1035,NULL,'73656',NULL,1228,35.26946,-99.680146,0,NULL,NULL,NULL),
+ (31,201,1,1,0,'790D Martin Luther King Way NE',790,'D',NULL,'Martin Luther King','Way','NE',NULL,NULL,NULL,NULL,'San Antonio',1,1042,NULL,'78217',NULL,1228,29.543865,-98.41755,0,NULL,NULL,NULL),
+ (32,66,1,1,0,'370X Maple Blvd W',370,'X',NULL,'Maple','Blvd','W',NULL,NULL,NULL,NULL,'Laupahoehoe',1,1010,NULL,'96764',NULL,1228,19.983584,-155.25963,0,NULL,NULL,NULL),
+ (33,121,1,1,0,'808F El Camino Ave NE',808,'F',NULL,'El Camino','Ave','NE',NULL,NULL,NULL,NULL,'Waterville Valley',1,1028,NULL,'03215',NULL,1228,43.951304,-71.50336,0,NULL,NULL,NULL),
+ (34,127,1,1,0,'648X Jackson Way SW',648,'X',NULL,'Jackson','Way','SW',NULL,NULL,NULL,NULL,'Cuba',1,1031,NULL,'14727',NULL,1228,42.213216,-78.28649,0,NULL,NULL,NULL),
+ (35,176,1,1,0,'576H Van Ness Ln S',576,'H',NULL,'Van Ness','Ln','S',NULL,NULL,NULL,NULL,'Savannah',1,1009,NULL,'31421',NULL,1228,31.971394,-81.07156,0,NULL,NULL,NULL),
+ (36,83,1,1,0,'434R Caulder Dr SE',434,'R',NULL,'Caulder','Dr','SE',NULL,NULL,NULL,NULL,'Dalbo',1,1022,NULL,'55017',NULL,1228,45.677366,-93.42013,0,NULL,NULL,NULL),
+ (37,128,1,1,0,'247Y Northpoint Pl NW',247,'Y',NULL,'Northpoint','Pl','NW',NULL,NULL,NULL,NULL,'Pittsburg',1,1012,NULL,'62974',NULL,1228,37.780592,-88.82344,0,NULL,NULL,NULL),
+ (38,148,1,1,0,'358W Pine Pl SW',358,'W',NULL,'Pine','Pl','SW',NULL,NULL,NULL,NULL,'New Franklin',1,1024,NULL,'65274',NULL,1228,39.015654,-92.68811,0,NULL,NULL,NULL),
+ (39,88,1,1,0,'957U Van Ness Dr NW',957,'U',NULL,'Van Ness','Dr','NW',NULL,NULL,NULL,NULL,'La Crescent',1,1022,NULL,'55947',NULL,1228,43.829382,-91.33919,0,NULL,NULL,NULL),
+ (40,21,1,1,0,'105Y Main Blvd NE',105,'Y',NULL,'Main','Blvd','NE',NULL,NULL,NULL,NULL,'Salem',1,1000,NULL,'36874',NULL,1228,32.587751,-85.18539,0,NULL,NULL,NULL),
+ (41,170,1,1,0,'847W Northpoint Ln S',847,'W',NULL,'Northpoint','Ln','S',NULL,NULL,NULL,NULL,'Donnelly',1,1022,NULL,'56235',NULL,1228,45.697239,-96.01767,0,NULL,NULL,NULL),
+ (42,22,1,1,0,'426S El Camino Ln S',426,'S',NULL,'El Camino','Ln','S',NULL,NULL,NULL,NULL,'Camden',1,1018,NULL,'04840',NULL,1228,44.210119,-69.113626,0,NULL,NULL,NULL),
+ (43,147,1,1,0,'660C Caulder Rd N',660,'C',NULL,'Caulder','Rd','N',NULL,NULL,NULL,NULL,'Kingston',1,1028,NULL,'03848',NULL,1228,42.923643,-71.06236,0,NULL,NULL,NULL),
+ (44,196,1,1,0,'308M College Dr SE',308,'M',NULL,'College','Dr','SE',NULL,NULL,NULL,NULL,'Piney View',1,1047,NULL,'25906',NULL,1228,37.837573,-81.128631,0,NULL,NULL,NULL),
+ (45,142,1,1,0,'274D Northpoint Ave SE',274,'D',NULL,'Northpoint','Ave','SE',NULL,NULL,NULL,NULL,'Williamsburg',1,1034,NULL,'45176',NULL,1228,39.081436,-84.02906,0,NULL,NULL,NULL),
+ (46,47,1,1,0,'634T Pine Pl NE',634,'T',NULL,'Pine','Pl','NE',NULL,NULL,NULL,NULL,'Zoar',1,1034,NULL,'44697',NULL,1228,40.612253,-81.42168,0,NULL,NULL,NULL),
+ (47,4,1,1,0,'63D El Camino Blvd NE',63,'D',NULL,'El Camino','Blvd','NE',NULL,NULL,NULL,NULL,'Neptune',1,1029,NULL,'07753',NULL,1228,40.208945,-74.05261,0,NULL,NULL,NULL),
+ (48,34,1,1,0,'885Y Dowlen Way N',885,'Y',NULL,'Dowlen','Way','N',NULL,NULL,NULL,NULL,'Waterbury',1,1044,NULL,'05671',NULL,1228,44.259518,-72.585018,0,NULL,NULL,NULL),
+ (49,87,1,1,0,'427C El Camino Blvd N',427,'C',NULL,'El Camino','Blvd','N',NULL,NULL,NULL,NULL,'New Galilee',1,1037,NULL,'16141',NULL,1228,40.853014,-80.40181,0,NULL,NULL,NULL),
+ (50,52,1,1,0,'300M States Way SW',300,'M',NULL,'States','Way','SW',NULL,NULL,NULL,NULL,'Hoyt Lakes',1,1022,NULL,'55750',NULL,1228,47.517269,-92.0706,0,NULL,NULL,NULL),
+ (51,43,1,1,0,'223L Caulder Blvd SW',223,'L',NULL,'Caulder','Blvd','SW',NULL,NULL,NULL,NULL,'Pittsburgh',1,1037,NULL,'15207',NULL,1228,40.399355,-79.93414,0,NULL,NULL,NULL),
+ (52,143,1,1,0,'425H College Blvd SW',425,'H',NULL,'College','Blvd','SW',NULL,NULL,NULL,NULL,'Hillsdale',1,1015,NULL,'66036',NULL,1228,38.658068,-94.852061,0,NULL,NULL,NULL),
+ (53,16,1,1,0,'177N Jackson Blvd S',177,'N',NULL,'Jackson','Blvd','S',NULL,NULL,NULL,NULL,'Lake Isabella',1,1004,NULL,'93540',NULL,1228,35.60345,-118.476436,0,NULL,NULL,NULL),
+ (54,138,1,1,0,'101L Pine Way W',101,'L',NULL,'Pine','Way','W',NULL,NULL,NULL,NULL,'Jacksonville',1,1008,NULL,'32202',NULL,1228,30.328539,-81.65101,0,NULL,NULL,NULL),
+ (55,33,1,1,0,'594B Caulder Ave NW',594,'B',NULL,'Caulder','Ave','NW',NULL,NULL,NULL,NULL,'Hicksville',1,1031,NULL,'11802',NULL,1228,40.754757,-73.601772,0,NULL,NULL,NULL),
+ (56,118,1,1,0,'990F Pine Path NW',990,'F',NULL,'Pine','Path','NW',NULL,NULL,NULL,NULL,'Lake Park',1,1014,NULL,'51347',NULL,1228,43.437775,-95.31637,0,NULL,NULL,NULL),
+ (57,99,1,1,0,'503Y Beech Dr SE',503,'Y',NULL,'Beech','Dr','SE',NULL,NULL,NULL,NULL,'Welch',1,1022,NULL,'55089',NULL,1228,44.586242,-92.70293,0,NULL,NULL,NULL),
+ (58,20,1,1,0,'240E Caulder Ave E',240,'E',NULL,'Caulder','Ave','E',NULL,NULL,NULL,NULL,'Clarissa',1,1022,NULL,'56440',NULL,1228,46.129933,-94.95278,0,NULL,NULL,NULL),
+ (59,27,1,1,0,'813X Lincoln Blvd N',813,'X',NULL,'Lincoln','Blvd','N',NULL,NULL,NULL,NULL,'Urbana',1,1014,NULL,'52345',NULL,1228,42.222388,-91.87908,0,NULL,NULL,NULL),
+ (60,160,1,1,0,'154R Green Way N',154,'R',NULL,'Green','Way','N',NULL,NULL,NULL,NULL,'Bellmore',1,1013,NULL,'47830',NULL,1228,39.779078,-87.221819,0,NULL,NULL,NULL),
+ (61,7,1,1,0,'554Q Martin Luther King Ln S',554,'Q',NULL,'Martin Luther King','Ln','S',NULL,NULL,NULL,NULL,'New Boston',1,1024,NULL,'63557',NULL,1228,39.963355,-92.88684,0,NULL,NULL,NULL),
+ (62,181,1,1,0,'59R Cadell St SE',59,'R',NULL,'Cadell','St','SE',NULL,NULL,NULL,NULL,'Homeland',1,1004,NULL,'92548',NULL,1228,33.749656,-117.11706,0,NULL,NULL,NULL),
+ (63,55,1,1,0,'955T States Dr E',955,'T',NULL,'States','Dr','E',NULL,NULL,NULL,NULL,'Duncan',1,1035,NULL,'73536',NULL,1228,34.48532,-97.852223,0,NULL,NULL,NULL),
+ (64,85,1,1,0,'790N Maple St NE',790,'N',NULL,'Maple','St','NE',NULL,NULL,NULL,NULL,'Cathlamet',1,1046,NULL,'98612',NULL,1228,46.208318,-123.34624,0,NULL,NULL,NULL),
+ (65,41,1,1,0,'539P Beech Blvd NE',539,'P',NULL,'Beech','Blvd','NE',NULL,NULL,NULL,NULL,'Miami',1,1008,NULL,'33196',NULL,1228,25.650232,-80.45925,0,NULL,NULL,NULL),
+ (66,65,1,1,0,'817A Dowlen Dr N',817,'A',NULL,'Dowlen','Dr','N',NULL,NULL,NULL,NULL,'Unadilla',1,1009,NULL,'31091',NULL,1228,32.24473,-83.72075,0,NULL,NULL,NULL),
+ (67,100,1,1,0,'639Q El Camino Ave NE',639,'Q',NULL,'El Camino','Ave','NE',NULL,NULL,NULL,NULL,'Richmond',1,1045,NULL,'23238',NULL,1228,37.733844,-77.888082,0,NULL,NULL,NULL),
+ (68,93,1,1,0,'239D Martin Luther King Dr NE',239,'D',NULL,'Martin Luther King','Dr','NE',NULL,NULL,NULL,NULL,'Branson',1,1005,NULL,'81027',NULL,1228,37.095478,-103.84302,0,NULL,NULL,NULL),
+ (69,129,1,1,0,'564B College St E',564,'B',NULL,'College','St','E',NULL,NULL,NULL,NULL,'Santa Maria',1,1004,NULL,'93457',NULL,1228,34.836252,-120.53421,0,NULL,NULL,NULL),
+ (70,3,1,1,0,'369L Woodbridge Ave NE',369,'L',NULL,'Woodbridge','Ave','NE',NULL,NULL,NULL,NULL,'Mobile',1,1000,NULL,'36690',NULL,1228,30.658865,-88.177975,0,NULL,NULL,NULL),
+ (71,183,3,1,0,'719B Woodbridge St N',719,'B',NULL,'Woodbridge','St','N',NULL,'Urgent',NULL,NULL,'Bozeman',1,1025,NULL,'59719',NULL,1228,45.627982,-110.90128,0,NULL,NULL,NULL),
+ (72,94,2,1,0,'719B Woodbridge St N',719,'B',NULL,'Woodbridge','St','N',NULL,'Urgent',NULL,NULL,'Bozeman',1,1025,NULL,'59719',NULL,1228,45.627982,-110.90128,0,NULL,NULL,71),
+ (73,14,3,1,0,'469Y Dowlen Dr W',469,'Y',NULL,'Dowlen','Dr','W',NULL,'Payables Dept.',NULL,NULL,'Kiahsville',1,1047,NULL,'25534',NULL,1228,38.082632,-82.27115,0,NULL,NULL,NULL),
+ (74,56,2,1,0,'469Y Dowlen Dr W',469,'Y',NULL,'Dowlen','Dr','W',NULL,'Payables Dept.',NULL,NULL,'Kiahsville',1,1047,NULL,'25534',NULL,1228,38.082632,-82.27115,0,NULL,NULL,73),
+ (75,189,3,1,0,'63R Green Ave S',63,'R',NULL,'Green','Ave','S',NULL,'Churchgate',NULL,NULL,'La Fayette',1,1016,NULL,'42254',NULL,1228,36.657405,-87.65633,0,NULL,NULL,NULL),
+ (76,196,2,0,0,'63R Green Ave S',63,'R',NULL,'Green','Ave','S',NULL,'Churchgate',NULL,NULL,'La Fayette',1,1016,NULL,'42254',NULL,1228,36.657405,-87.65633,0,NULL,NULL,75),
+ (77,82,3,1,0,'538P Martin Luther King Way N',538,'P',NULL,'Martin Luther King','Way','N',NULL,'Urgent',NULL,NULL,'Niles',1,1021,NULL,'49120',NULL,1228,41.828055,-86.23981,0,NULL,NULL,NULL),
+ (78,174,2,0,0,'538P Martin Luther King Way N',538,'P',NULL,'Martin Luther King','Way','N',NULL,'Urgent',NULL,NULL,'Niles',1,1021,NULL,'49120',NULL,1228,41.828055,-86.23981,0,NULL,NULL,77),
+ (79,177,3,1,0,'178C Maple Path E',178,'C',NULL,'Maple','Path','E',NULL,'Urgent',NULL,NULL,'Eureka Springs',1,1003,NULL,'72632',NULL,1228,36.392122,-93.7476,0,NULL,NULL,NULL),
+ (80,164,2,0,0,'178C Maple Path E',178,'C',NULL,'Maple','Path','E',NULL,'Urgent',NULL,NULL,'Eureka Springs',1,1003,NULL,'72632',NULL,1228,36.392122,-93.7476,0,NULL,NULL,79),
+ (81,116,3,1,0,'955T Lincoln St W',955,'T',NULL,'Lincoln','St','W',NULL,'Editorial Dept',NULL,NULL,'Ono',1,1037,NULL,'17077',NULL,1228,40.406144,-76.52753,0,NULL,NULL,NULL),
+ (82,173,3,1,0,'49E Lincoln St SW',49,'E',NULL,'Lincoln','St','SW',NULL,'Attn: Development',NULL,NULL,'Montgomery',1,1021,NULL,'49255',NULL,1228,41.776287,-84.8376,0,NULL,NULL,NULL),
+ (83,142,2,0,0,'49E Lincoln St SW',49,'E',NULL,'Lincoln','St','SW',NULL,'Attn: Development',NULL,NULL,'Montgomery',1,1021,NULL,'49255',NULL,1228,41.776287,-84.8376,0,NULL,NULL,82),
+ (84,28,3,1,0,'504C Maple Ave E',504,'C',NULL,'Maple','Ave','E',NULL,'Disbursements',NULL,NULL,'Winston',1,1025,NULL,'59647',NULL,1228,46.45447,-111.650954,0,NULL,NULL,NULL),
+ (85,70,3,1,0,'210K College Blvd E',210,'K',NULL,'College','Blvd','E',NULL,'Churchgate',NULL,NULL,'Miami',1,1008,NULL,'33152',NULL,1228,25.795476,-80.312873,0,NULL,NULL,NULL),
+ (86,169,2,1,0,'210K College Blvd E',210,'K',NULL,'College','Blvd','E',NULL,'Churchgate',NULL,NULL,'Miami',1,1008,NULL,'33152',NULL,1228,25.795476,-80.312873,0,NULL,NULL,85),
+ (87,194,3,1,0,'976Z Martin Luther King Ln NW',976,'Z',NULL,'Martin Luther King','Ln','NW',NULL,'c/o PO Plus',NULL,NULL,'Scranton',1,1037,NULL,'18501',NULL,1228,41.401881,-75.637626,0,NULL,NULL,NULL),
+ (88,149,2,1,0,'976Z Martin Luther King Ln NW',976,'Z',NULL,'Martin Luther King','Ln','NW',NULL,'c/o PO Plus',NULL,NULL,'Scranton',1,1037,NULL,'18501',NULL,1228,41.401881,-75.637626,0,NULL,NULL,87),
+ (89,111,3,1,0,'814S States Blvd W',814,'S',NULL,'States','Blvd','W',NULL,'Attn: Development',NULL,NULL,'Bellwood',1,1037,NULL,'16617',NULL,1228,40.601566,-78.33361,0,NULL,NULL,NULL),
+ (90,151,3,1,0,'454A Second Dr SW',454,'A',NULL,'Second','Dr','SW',NULL,'Receiving',NULL,NULL,'Bloomery',1,1047,NULL,'26817',NULL,1228,39.344466,-78.38374,0,NULL,NULL,NULL),
+ (91,37,2,1,0,'454A Second Dr SW',454,'A',NULL,'Second','Dr','SW',NULL,'Receiving',NULL,NULL,'Bloomery',1,1047,NULL,'26817',NULL,1228,39.344466,-78.38374,0,NULL,NULL,90),
+ (92,112,3,1,0,'689N Dowlen Pl S',689,'N',NULL,'Dowlen','Pl','S',NULL,'Urgent',NULL,NULL,'Lovell',1,1049,NULL,'82431',NULL,1228,44.791974,-108.32833,0,NULL,NULL,NULL),
+ (93,91,2,1,0,'689N Dowlen Pl S',689,'N',NULL,'Dowlen','Pl','S',NULL,'Urgent',NULL,NULL,'Lovell',1,1049,NULL,'82431',NULL,1228,44.791974,-108.32833,0,NULL,NULL,92),
+ (94,13,3,1,0,'607Y Cadell Dr S',607,'Y',NULL,'Cadell','Dr','S',NULL,'Churchgate',NULL,NULL,'Montfort',1,1048,NULL,'53569',NULL,1228,42.989241,-90.43855,0,NULL,NULL,NULL),
+ (95,182,2,1,0,'607Y Cadell Dr S',607,'Y',NULL,'Cadell','Dr','S',NULL,'Churchgate',NULL,NULL,'Montfort',1,1048,NULL,'53569',NULL,1228,42.989241,-90.43855,0,NULL,NULL,94),
+ (96,102,3,1,0,'945C Main Rd NE',945,'C',NULL,'Main','Rd','NE',NULL,'Mailstop 101',NULL,NULL,'Ridge Spring',1,1039,NULL,'29129',NULL,1228,33.804368,-81.65577,0,NULL,NULL,NULL),
+ (97,11,3,1,0,'456G Pine Dr E',456,'G',NULL,'Pine','Dr','E',NULL,'Disbursements',NULL,NULL,'Lubbock',1,1042,NULL,'79413',NULL,1228,33.547735,-101.88881,0,NULL,NULL,NULL),
+ (98,24,3,1,0,'842X Martin Luther King St NE',842,'X',NULL,'Martin Luther King','St','NE',NULL,'Attn: Development',NULL,NULL,'Homerville',1,1034,NULL,'44235',NULL,1228,41.028815,-82.11496,0,NULL,NULL,NULL),
+ (99,171,2,1,0,'842X Martin Luther King St NE',842,'X',NULL,'Martin Luther King','St','NE',NULL,'Attn: Development',NULL,NULL,'Homerville',1,1034,NULL,'44235',NULL,1228,41.028815,-82.11496,0,NULL,NULL,98),
+ (100,39,3,1,0,'653O Second Path SW',653,'O',NULL,'Second','Path','SW',NULL,'Disbursements',NULL,NULL,'Sanger',1,1004,NULL,'93657',NULL,1228,36.72845,-119.53571,0,NULL,NULL,NULL),
+ (101,137,3,1,0,'510E Beech Ln E',510,'E',NULL,'Beech','Ln','E',NULL,'Attn: Development',NULL,NULL,'Wellersburg',1,1037,NULL,'15564',NULL,1228,39.729896,-78.844105,0,NULL,NULL,NULL),
+ (102,154,2,0,0,'510E Beech Ln E',510,'E',NULL,'Beech','Ln','E',NULL,'Attn: Development',NULL,NULL,'Wellersburg',1,1037,NULL,'15564',NULL,1228,39.729896,-78.844105,0,NULL,NULL,101),
+ (103,187,3,1,0,'257C Caulder St NE',257,'C',NULL,'Caulder','St','NE',NULL,'Disbursements',NULL,NULL,'Hooksett',1,1028,NULL,'03106',NULL,1228,43.058785,-71.44412,0,NULL,NULL,NULL),
+ (104,123,2,1,0,'257C Caulder St NE',257,'C',NULL,'Caulder','St','NE',NULL,'Disbursements',NULL,NULL,'Hooksett',1,1028,NULL,'03106',NULL,1228,43.058785,-71.44412,0,NULL,NULL,103),
+ (105,50,1,1,0,'223L Caulder Blvd SW',223,'L',NULL,'Caulder','Blvd','SW',NULL,NULL,NULL,NULL,'Pittsburgh',1,1037,NULL,'15207',NULL,1228,40.399355,-79.93414,0,NULL,NULL,51),
+ (106,122,1,1,0,'223L Caulder Blvd SW',223,'L',NULL,'Caulder','Blvd','SW',NULL,NULL,NULL,NULL,'Pittsburgh',1,1037,NULL,'15207',NULL,1228,40.399355,-79.93414,0,NULL,NULL,51),
+ (107,37,1,0,0,'223L Caulder Blvd SW',223,'L',NULL,'Caulder','Blvd','SW',NULL,NULL,NULL,NULL,'Pittsburgh',1,1037,NULL,'15207',NULL,1228,40.399355,-79.93414,0,NULL,NULL,51),
+ (108,106,1,1,0,'223L Caulder Blvd SW',223,'L',NULL,'Caulder','Blvd','SW',NULL,NULL,NULL,NULL,'Pittsburgh',1,1037,NULL,'15207',NULL,1228,40.399355,-79.93414,0,NULL,NULL,51),
+ (109,23,1,1,0,'425H College Blvd SW',425,'H',NULL,'College','Blvd','SW',NULL,NULL,NULL,NULL,'Hillsdale',1,1015,NULL,'66036',NULL,1228,38.658068,-94.852061,0,NULL,NULL,52),
+ (110,180,1,1,0,'425H College Blvd SW',425,'H',NULL,'College','Blvd','SW',NULL,NULL,NULL,NULL,'Hillsdale',1,1015,NULL,'66036',NULL,1228,38.658068,-94.852061,0,NULL,NULL,52),
+ (111,59,1,1,0,'425H College Blvd SW',425,'H',NULL,'College','Blvd','SW',NULL,NULL,NULL,NULL,'Hillsdale',1,1015,NULL,'66036',NULL,1228,38.658068,-94.852061,0,NULL,NULL,52),
+ (112,107,1,1,0,'425H College Blvd SW',425,'H',NULL,'College','Blvd','SW',NULL,NULL,NULL,NULL,'Hillsdale',1,1015,NULL,'66036',NULL,1228,38.658068,-94.852061,0,NULL,NULL,52),
+ (113,141,1,1,0,'177N Jackson Blvd S',177,'N',NULL,'Jackson','Blvd','S',NULL,NULL,NULL,NULL,'Lake Isabella',1,1004,NULL,'93540',NULL,1228,35.60345,-118.476436,0,NULL,NULL,53),
+ (114,17,1,1,0,'177N Jackson Blvd S',177,'N',NULL,'Jackson','Blvd','S',NULL,NULL,NULL,NULL,'Lake Isabella',1,1004,NULL,'93540',NULL,1228,35.60345,-118.476436,0,NULL,NULL,53),
+ (115,105,1,1,0,'177N Jackson Blvd S',177,'N',NULL,'Jackson','Blvd','S',NULL,NULL,NULL,NULL,'Lake Isabella',1,1004,NULL,'93540',NULL,1228,35.60345,-118.476436,0,NULL,NULL,53),
+ (116,58,1,1,0,'177N Jackson Blvd S',177,'N',NULL,'Jackson','Blvd','S',NULL,NULL,NULL,NULL,'Lake Isabella',1,1004,NULL,'93540',NULL,1228,35.60345,-118.476436,0,NULL,NULL,53),
+ (117,8,1,1,0,'101L Pine Way W',101,'L',NULL,'Pine','Way','W',NULL,NULL,NULL,NULL,'Jacksonville',1,1008,NULL,'32202',NULL,1228,30.328539,-81.65101,0,NULL,NULL,54),
+ (118,109,1,1,0,'101L Pine Way W',101,'L',NULL,'Pine','Way','W',NULL,NULL,NULL,NULL,'Jacksonville',1,1008,NULL,'32202',NULL,1228,30.328539,-81.65101,0,NULL,NULL,54),
+ (119,159,1,1,0,'101L Pine Way W',101,'L',NULL,'Pine','Way','W',NULL,NULL,NULL,NULL,'Jacksonville',1,1008,NULL,'32202',NULL,1228,30.328539,-81.65101,0,NULL,NULL,54),
+ (120,61,1,1,0,'101L Pine Way W',101,'L',NULL,'Pine','Way','W',NULL,NULL,NULL,NULL,'Jacksonville',1,1008,NULL,'32202',NULL,1228,30.328539,-81.65101,0,NULL,NULL,54),
+ (121,36,1,1,0,'594B Caulder Ave NW',594,'B',NULL,'Caulder','Ave','NW',NULL,NULL,NULL,NULL,'Hicksville',1,1031,NULL,'11802',NULL,1228,40.754757,-73.601772,0,NULL,NULL,55),
+ (122,103,1,1,0,'594B Caulder Ave NW',594,'B',NULL,'Caulder','Ave','NW',NULL,NULL,NULL,NULL,'Hicksville',1,1031,NULL,'11802',NULL,1228,40.754757,-73.601772,0,NULL,NULL,55),
+ (123,46,1,1,0,'594B Caulder Ave NW',594,'B',NULL,'Caulder','Ave','NW',NULL,NULL,NULL,NULL,'Hicksville',1,1031,NULL,'11802',NULL,1228,40.754757,-73.601772,0,NULL,NULL,55),
+ (124,182,1,0,0,'594B Caulder Ave NW',594,'B',NULL,'Caulder','Ave','NW',NULL,NULL,NULL,NULL,'Hicksville',1,1031,NULL,'11802',NULL,1228,40.754757,-73.601772,0,NULL,NULL,55),
+ (125,12,1,1,0,'990F Pine Path NW',990,'F',NULL,'Pine','Path','NW',NULL,NULL,NULL,NULL,'Lake Park',1,1014,NULL,'51347',NULL,1228,43.437775,-95.31637,0,NULL,NULL,56),
+ (126,56,1,0,0,'990F Pine Path NW',990,'F',NULL,'Pine','Path','NW',NULL,NULL,NULL,NULL,'Lake Park',1,1014,NULL,'51347',NULL,1228,43.437775,-95.31637,0,NULL,NULL,56),
+ (127,156,1,1,0,'990F Pine Path NW',990,'F',NULL,'Pine','Path','NW',NULL,NULL,NULL,NULL,'Lake Park',1,1014,NULL,'51347',NULL,1228,43.437775,-95.31637,0,NULL,NULL,56),
+ (128,110,1,1,0,'727X Caulder Pl SW',727,'X',NULL,'Caulder','Pl','SW',NULL,NULL,NULL,NULL,'Gober',1,1042,NULL,'75443',NULL,1228,33.469719,-96.111103,0,NULL,NULL,NULL),
+ (129,146,1,1,0,'503Y Beech Dr SE',503,'Y',NULL,'Beech','Dr','SE',NULL,NULL,NULL,NULL,'Welch',1,1022,NULL,'55089',NULL,1228,44.586242,-92.70293,0,NULL,NULL,57),
+ (130,92,1,1,0,'503Y Beech Dr SE',503,'Y',NULL,'Beech','Dr','SE',NULL,NULL,NULL,NULL,'Welch',1,1022,NULL,'55089',NULL,1228,44.586242,-92.70293,0,NULL,NULL,57),
+ (131,163,1,1,0,'503Y Beech Dr SE',503,'Y',NULL,'Beech','Dr','SE',NULL,NULL,NULL,NULL,'Welch',1,1022,NULL,'55089',NULL,1228,44.586242,-92.70293,0,NULL,NULL,57),
+ (132,190,1,1,0,'543I Pine Dr E',543,'I',NULL,'Pine','Dr','E',NULL,NULL,NULL,NULL,'Chatsworth',1,1012,NULL,'60921',NULL,1228,40.757447,-88.29306,0,NULL,NULL,NULL),
+ (133,191,1,1,0,'240E Caulder Ave E',240,'E',NULL,'Caulder','Ave','E',NULL,NULL,NULL,NULL,'Clarissa',1,1022,NULL,'56440',NULL,1228,46.129933,-94.95278,0,NULL,NULL,58),
+ (134,18,1,1,0,'240E Caulder Ave E',240,'E',NULL,'Caulder','Ave','E',NULL,NULL,NULL,NULL,'Clarissa',1,1022,NULL,'56440',NULL,1228,46.129933,-94.95278,0,NULL,NULL,58),
+ (135,125,1,1,0,'240E Caulder Ave E',240,'E',NULL,'Caulder','Ave','E',NULL,NULL,NULL,NULL,'Clarissa',1,1022,NULL,'56440',NULL,1228,46.129933,-94.95278,0,NULL,NULL,58),
+ (136,185,1,1,0,'692T Beech Rd NE',692,'T',NULL,'Beech','Rd','NE',NULL,NULL,NULL,NULL,'Slate Run',1,1037,NULL,'17769',NULL,1228,41.33275,-77.023601,0,NULL,NULL,NULL),
+ (137,6,1,1,0,'813X Lincoln Blvd N',813,'X',NULL,'Lincoln','Blvd','N',NULL,NULL,NULL,NULL,'Urbana',1,1014,NULL,'52345',NULL,1228,42.222388,-91.87908,0,NULL,NULL,59),
+ (138,89,1,1,0,'813X Lincoln Blvd N',813,'X',NULL,'Lincoln','Blvd','N',NULL,NULL,NULL,NULL,'Urbana',1,1014,NULL,'52345',NULL,1228,42.222388,-91.87908,0,NULL,NULL,59),
+ (139,71,1,1,0,'813X Lincoln Blvd N',813,'X',NULL,'Lincoln','Blvd','N',NULL,NULL,NULL,NULL,'Urbana',1,1014,NULL,'52345',NULL,1228,42.222388,-91.87908,0,NULL,NULL,59),
+ (140,80,1,1,0,'813X Lincoln Blvd N',813,'X',NULL,'Lincoln','Blvd','N',NULL,NULL,NULL,NULL,'Urbana',1,1014,NULL,'52345',NULL,1228,42.222388,-91.87908,0,NULL,NULL,59),
+ (141,193,1,1,0,'154R Green Way N',154,'R',NULL,'Green','Way','N',NULL,NULL,NULL,NULL,'Bellmore',1,1013,NULL,'47830',NULL,1228,39.779078,-87.221819,0,NULL,NULL,60),
+ (142,54,1,1,0,'154R Green Way N',154,'R',NULL,'Green','Way','N',NULL,NULL,NULL,NULL,'Bellmore',1,1013,NULL,'47830',NULL,1228,39.779078,-87.221819,0,NULL,NULL,60),
+ (143,153,1,1,0,'154R Green Way N',154,'R',NULL,'Green','Way','N',NULL,NULL,NULL,NULL,'Bellmore',1,1013,NULL,'47830',NULL,1228,39.779078,-87.221819,0,NULL,NULL,60),
+ (144,126,1,1,0,'952B Cadell Way SE',952,'B',NULL,'Cadell','Way','SE',NULL,NULL,NULL,NULL,'West Greenwich',1,1038,NULL,'02817',NULL,1228,41.625874,-71.67023,0,NULL,NULL,NULL),
+ (145,135,1,1,0,'554Q Martin Luther King Ln S',554,'Q',NULL,'Martin Luther King','Ln','S',NULL,NULL,NULL,NULL,'New Boston',1,1024,NULL,'63557',NULL,1228,39.963355,-92.88684,0,NULL,NULL,61),
+ (146,131,1,1,0,'554Q Martin Luther King Ln S',554,'Q',NULL,'Martin Luther King','Ln','S',NULL,NULL,NULL,NULL,'New Boston',1,1024,NULL,'63557',NULL,1228,39.963355,-92.88684,0,NULL,NULL,61),
+ (147,25,1,1,0,'554Q Martin Luther King Ln S',554,'Q',NULL,'Martin Luther King','Ln','S',NULL,NULL,NULL,NULL,'New Boston',1,1024,NULL,'63557',NULL,1228,39.963355,-92.88684,0,NULL,NULL,61),
+ (148,91,1,0,0,'554Q Martin Luther King Ln S',554,'Q',NULL,'Martin Luther King','Ln','S',NULL,NULL,NULL,NULL,'New Boston',1,1024,NULL,'63557',NULL,1228,39.963355,-92.88684,0,NULL,NULL,61),
+ (149,64,1,1,0,'59R Cadell St SE',59,'R',NULL,'Cadell','St','SE',NULL,NULL,NULL,NULL,'Homeland',1,1004,NULL,'92548',NULL,1228,33.749656,-117.11706,0,NULL,NULL,62),
+ (150,119,1,1,0,'59R Cadell St SE',59,'R',NULL,'Cadell','St','SE',NULL,NULL,NULL,NULL,'Homeland',1,1004,NULL,'92548',NULL,1228,33.749656,-117.11706,0,NULL,NULL,62),
+ (151,57,1,1,0,'59R Cadell St SE',59,'R',NULL,'Cadell','St','SE',NULL,NULL,NULL,NULL,'Homeland',1,1004,NULL,'92548',NULL,1228,33.749656,-117.11706,0,NULL,NULL,62),
+ (152,26,1,1,0,'59R Cadell St SE',59,'R',NULL,'Cadell','St','SE',NULL,NULL,NULL,NULL,'Homeland',1,1004,NULL,'92548',NULL,1228,33.749656,-117.11706,0,NULL,NULL,62),
+ (153,115,1,1,0,'955T States Dr E',955,'T',NULL,'States','Dr','E',NULL,NULL,NULL,NULL,'Duncan',1,1035,NULL,'73536',NULL,1228,34.48532,-97.852223,0,NULL,NULL,63),
+ (154,2,1,1,0,'955T States Dr E',955,'T',NULL,'States','Dr','E',NULL,NULL,NULL,NULL,'Duncan',1,1035,NULL,'73536',NULL,1228,34.48532,-97.852223,0,NULL,NULL,63),
+ (155,172,1,1,0,'955T States Dr E',955,'T',NULL,'States','Dr','E',NULL,NULL,NULL,NULL,'Duncan',1,1035,NULL,'73536',NULL,1228,34.48532,-97.852223,0,NULL,NULL,63),
+ (156,62,1,1,0,'428F Van Ness Ln SE',428,'F',NULL,'Van Ness','Ln','SE',NULL,NULL,NULL,NULL,'Blue Hill',1,1026,NULL,'68930',NULL,1228,40.284783,-98.43446,0,NULL,NULL,NULL),
+ (157,84,1,1,0,'790N Maple St NE',790,'N',NULL,'Maple','St','NE',NULL,NULL,NULL,NULL,'Cathlamet',1,1046,NULL,'98612',NULL,1228,46.208318,-123.34624,0,NULL,NULL,64),
+ (158,169,1,0,0,'790N Maple St NE',790,'N',NULL,'Maple','St','NE',NULL,NULL,NULL,NULL,'Cathlamet',1,1046,NULL,'98612',NULL,1228,46.208318,-123.34624,0,NULL,NULL,64),
+ (159,49,1,1,0,'790N Maple St NE',790,'N',NULL,'Maple','St','NE',NULL,NULL,NULL,NULL,'Cathlamet',1,1046,NULL,'98612',NULL,1228,46.208318,-123.34624,0,NULL,NULL,64),
+ (160,5,1,1,0,'790N Maple St NE',790,'N',NULL,'Maple','St','NE',NULL,NULL,NULL,NULL,'Cathlamet',1,1046,NULL,'98612',NULL,1228,46.208318,-123.34624,0,NULL,NULL,64),
+ (161,95,1,1,0,'539P Beech Blvd NE',539,'P',NULL,'Beech','Blvd','NE',NULL,NULL,NULL,NULL,'Miami',1,1008,NULL,'33196',NULL,1228,25.650232,-80.45925,0,NULL,NULL,65),
+ (162,167,1,1,0,'539P Beech Blvd NE',539,'P',NULL,'Beech','Blvd','NE',NULL,NULL,NULL,NULL,'Miami',1,1008,NULL,'33196',NULL,1228,25.650232,-80.45925,0,NULL,NULL,65),
+ (163,120,1,1,0,'539P Beech Blvd NE',539,'P',NULL,'Beech','Blvd','NE',NULL,NULL,NULL,NULL,'Miami',1,1008,NULL,'33196',NULL,1228,25.650232,-80.45925,0,NULL,NULL,65),
+ (164,157,1,1,0,'539P Beech Blvd NE',539,'P',NULL,'Beech','Blvd','NE',NULL,NULL,NULL,NULL,'Miami',1,1008,NULL,'33196',NULL,1228,25.650232,-80.45925,0,NULL,NULL,65),
+ (165,42,1,1,0,'817A Dowlen Dr N',817,'A',NULL,'Dowlen','Dr','N',NULL,NULL,NULL,NULL,'Unadilla',1,1009,NULL,'31091',NULL,1228,32.24473,-83.72075,0,NULL,NULL,66),
+ (166,19,1,1,0,'817A Dowlen Dr N',817,'A',NULL,'Dowlen','Dr','N',NULL,NULL,NULL,NULL,'Unadilla',1,1009,NULL,'31091',NULL,1228,32.24473,-83.72075,0,NULL,NULL,66),
+ (167,178,1,1,0,'817A Dowlen Dr N',817,'A',NULL,'Dowlen','Dr','N',NULL,NULL,NULL,NULL,'Unadilla',1,1009,NULL,'31091',NULL,1228,32.24473,-83.72075,0,NULL,NULL,66),
+ (168,155,1,1,0,'817A Dowlen Dr N',817,'A',NULL,'Dowlen','Dr','N',NULL,NULL,NULL,NULL,'Unadilla',1,1009,NULL,'31091',NULL,1228,32.24473,-83.72075,0,NULL,NULL,66),
+ (169,45,1,1,0,'639Q El Camino Ave NE',639,'Q',NULL,'El Camino','Ave','NE',NULL,NULL,NULL,NULL,'Richmond',1,1045,NULL,'23238',NULL,1228,37.733844,-77.888082,0,NULL,NULL,67),
+ (170,63,1,1,0,'639Q El Camino Ave NE',639,'Q',NULL,'El Camino','Ave','NE',NULL,NULL,NULL,NULL,'Richmond',1,1045,NULL,'23238',NULL,1228,37.733844,-77.888082,0,NULL,NULL,67),
+ (171,117,1,1,0,'639Q El Camino Ave NE',639,'Q',NULL,'El Camino','Ave','NE',NULL,NULL,NULL,NULL,'Richmond',1,1045,NULL,'23238',NULL,1228,37.733844,-77.888082,0,NULL,NULL,67),
+ (172,149,1,0,0,'347G Bay Rd E',347,'G',NULL,'Bay','Rd','E',NULL,NULL,NULL,NULL,'Lake Saint Louis',1,1024,NULL,'63367',NULL,1228,38.796601,-90.78525,0,NULL,NULL,NULL),
+ (173,158,1,1,0,'239D Martin Luther King Dr NE',239,'D',NULL,'Martin Luther King','Dr','NE',NULL,NULL,NULL,NULL,'Branson',1,1005,NULL,'81027',NULL,1228,37.095478,-103.84302,0,NULL,NULL,68),
+ (174,188,1,1,0,'239D Martin Luther King Dr NE',239,'D',NULL,'Martin Luther King','Dr','NE',NULL,NULL,NULL,NULL,'Branson',1,1005,NULL,'81027',NULL,1228,37.095478,-103.84302,0,NULL,NULL,68),
+ (175,168,1,1,0,'239D Martin Luther King Dr NE',239,'D',NULL,'Martin Luther King','Dr','NE',NULL,NULL,NULL,NULL,'Branson',1,1005,NULL,'81027',NULL,1228,37.095478,-103.84302,0,NULL,NULL,68),
+ (176,94,1,0,0,'601E Dowlen Dr E',601,'E',NULL,'Dowlen','Dr','E',NULL,NULL,NULL,NULL,'Holly Springs',1,1023,NULL,'38634',NULL,1228,34.74504,-89.484963,0,NULL,NULL,NULL),
+ (177,198,1,1,0,'564B College St E',564,'B',NULL,'College','St','E',NULL,NULL,NULL,NULL,'Santa Maria',1,1004,NULL,'93457',NULL,1228,34.836252,-120.53421,0,NULL,NULL,69),
+ (178,15,1,1,0,'564B College St E',564,'B',NULL,'College','St','E',NULL,NULL,NULL,NULL,'Santa Maria',1,1004,NULL,'93457',NULL,1228,34.836252,-120.53421,0,NULL,NULL,69),
+ (179,197,1,1,0,'564B College St E',564,'B',NULL,'College','St','E',NULL,NULL,NULL,NULL,'Santa Maria',1,1004,NULL,'93457',NULL,1228,34.836252,-120.53421,0,NULL,NULL,69),
+ (180,139,1,1,0,'920X Lincoln Dr NE',920,'X',NULL,'Lincoln','Dr','NE',NULL,NULL,NULL,NULL,'Two Harbors',1,1022,NULL,'55616',NULL,1228,47.077723,-91.66464,0,NULL,NULL,NULL),
+ (181,96,1,1,0,'369L Woodbridge Ave NE',369,'L',NULL,'Woodbridge','Ave','NE',NULL,NULL,NULL,NULL,'Mobile',1,1000,NULL,'36690',NULL,1228,30.658865,-88.177975,0,NULL,NULL,70),
+ (182,90,1,1,0,'369L Woodbridge Ave NE',369,'L',NULL,'Woodbridge','Ave','NE',NULL,NULL,NULL,NULL,'Mobile',1,1000,NULL,'36690',NULL,1228,30.658865,-88.177975,0,NULL,NULL,70),
+ (183,132,1,1,0,'369L Woodbridge Ave NE',369,'L',NULL,'Woodbridge','Ave','NE',NULL,NULL,NULL,NULL,'Mobile',1,1000,NULL,'36690',NULL,1228,30.658865,-88.177975,0,NULL,NULL,70),
+ (184,10,1,1,0,'846A Martin Luther King Blvd SE',846,'A',NULL,'Martin Luther King','Blvd','SE',NULL,NULL,NULL,NULL,'Jacobson',1,1022,NULL,'55752',NULL,1228,46.974237,-93.2632,0,NULL,NULL,NULL),
+ (185,NULL,1,1,1,'14S El Camino Way E',14,'S',NULL,'El Camino','Way',NULL,NULL,NULL,NULL,NULL,'Collinsville',NULL,1006,NULL,'6022',NULL,1228,41.8328,-72.9253,0,NULL,NULL,NULL),
+ (186,NULL,1,1,1,'11B Woodbridge Path SW',11,'B',NULL,'Woodbridge','Path',NULL,NULL,NULL,NULL,NULL,'Dayton',NULL,1034,NULL,'45417',NULL,1228,39.7531,-84.2471,0,NULL,NULL,NULL),
+ (187,NULL,1,1,1,'581O Lincoln Dr SW',581,'O',NULL,'Lincoln','Dr',NULL,NULL,NULL,NULL,NULL,'Santa Fe',NULL,1030,NULL,'87594',NULL,1228,35.5212,-105.982,0,NULL,NULL,NULL);
 /*!40000 ALTER TABLE `civicrm_address` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -2069,208 +2073,208 @@ UNLOCK TABLES;
 LOCK TABLES `civicrm_contact` WRITE;
 /*!40000 ALTER TABLE `civicrm_contact` DISABLE KEYS */;
 INSERT INTO `civicrm_contact` (`id`, `contact_type`, `contact_sub_type`, `do_not_email`, `do_not_phone`, `do_not_mail`, `do_not_sms`, `do_not_trade`, `is_opt_out`, `legal_identifier`, `external_identifier`, `sort_name`, `display_name`, `nick_name`, `legal_name`, `image_URL`, `preferred_communication_method`, `preferred_language`, `preferred_mail_format`, `hash`, `api_key`, `source`, `first_name`, `middle_name`, `last_name`, `prefix_id`, `suffix_id`, `formal_title`, `communication_style_id`, `email_greeting_id`, `email_greeting_custom`, `email_greeting_display`, `postal_greeting_id`, `postal_greeting_custom`, `postal_greeting_display`, `addressee_id`, `addressee_custom`, `addressee_display`, `job_title`, `gender_id`, `birth_date`, `is_deceased`, `deceased_date`, `household_name`, `primary_contact_id`, `organization_name`, `sic_code`, `user_unique_id`, `employer_id`, `is_deleted`, `created_date`, `modified_date`) VALUES
- (1,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Default Organization','Default Organization',NULL,'Default Organization',NULL,NULL,NULL,'Both',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,'Default Organization',NULL,NULL,NULL,0,NULL,'2023-01-25 00:10:11'),
- (2,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'mcreynolds.justina43@mymail.co.nz','mcreynolds.justina43@mymail.co.nz',NULL,NULL,NULL,NULL,NULL,'Both','1492889533',NULL,'Sample Data',NULL,NULL,NULL,2,NULL,NULL,NULL,1,NULL,'Dear mcreynolds.justina43@mymail.co.nz',1,NULL,'Dear mcreynolds.justina43@mymail.co.nz',1,NULL,'mcreynolds.justina43@mymail.co.nz',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (3,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Díaz, Kenny','Kenny Díaz',NULL,NULL,NULL,NULL,NULL,'Both','3864119395',NULL,'Sample Data','Kenny','','Díaz',NULL,NULL,NULL,NULL,1,NULL,'Dear Kenny',1,NULL,'Dear Kenny',1,NULL,'Kenny Díaz',NULL,2,'2014-09-09',0,NULL,NULL,NULL,'Minnesota Health Systems',NULL,NULL,163,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (4,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Bachman, Eleonor','Eleonor Bachman',NULL,NULL,NULL,NULL,NULL,'Both','711175679',NULL,'Sample Data','Eleonor','','Bachman',NULL,NULL,NULL,NULL,1,NULL,'Dear Eleonor',1,NULL,'Dear Eleonor',1,NULL,'Eleonor Bachman',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (5,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Wattson, Damaris','Dr. Damaris Wattson',NULL,NULL,NULL,'4',NULL,'Both','3534175106',NULL,'Sample Data','Damaris','U','Wattson',4,NULL,NULL,NULL,1,NULL,'Dear Damaris',1,NULL,'Dear Damaris',1,NULL,'Dr. Damaris Wattson',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (6,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Grant, Scott','Mr. Scott Grant',NULL,NULL,NULL,NULL,NULL,'Both','501213138',NULL,'Sample Data','Scott','','Grant',3,NULL,NULL,NULL,1,NULL,'Dear Scott',1,NULL,'Dear Scott',1,NULL,'Mr. Scott Grant',NULL,2,'1959-12-05',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (7,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Jameson, Elbert','Elbert Jameson',NULL,NULL,NULL,NULL,NULL,'Both','3057069270',NULL,'Sample Data','Elbert','','Jameson',NULL,NULL,NULL,NULL,1,NULL,'Dear Elbert',1,NULL,'Dear Elbert',1,NULL,'Elbert Jameson',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (8,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Grant, Elizabeth','Elizabeth Grant',NULL,NULL,NULL,'5',NULL,'Both','1144773398',NULL,'Sample Data','Elizabeth','J','Grant',NULL,NULL,NULL,NULL,1,NULL,'Dear Elizabeth',1,NULL,'Dear Elizabeth',1,NULL,'Elizabeth Grant',NULL,1,'1963-12-21',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (9,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Wilson-Dimitrov, Jina','Mrs. Jina Wilson-Dimitrov',NULL,NULL,NULL,NULL,NULL,'Both','415420635',NULL,'Sample Data','Jina','N','Wilson-Dimitrov',1,NULL,NULL,NULL,1,NULL,'Dear Jina',1,NULL,'Dear Jina',1,NULL,'Mrs. Jina Wilson-Dimitrov',NULL,NULL,'1993-09-26',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (10,'Individual',NULL,1,1,0,0,0,0,NULL,NULL,'González-Jameson-Dimitrov, Angelika','Angelika González-Jameson-Dimitrov',NULL,NULL,NULL,'4',NULL,'Both','2652013132',NULL,'Sample Data','Angelika','V','González-Jameson-Dimitrov',NULL,NULL,NULL,NULL,1,NULL,'Dear Angelika',1,NULL,'Dear Angelika',1,NULL,'Angelika González-Jameson-Dimitrov',NULL,NULL,'1979-04-18',0,NULL,NULL,NULL,'Laceyville Arts Network',NULL,NULL,17,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (11,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Díaz, Elizabeth','Elizabeth Díaz',NULL,NULL,NULL,NULL,NULL,'Both','1884711539',NULL,'Sample Data','Elizabeth','','Díaz',NULL,NULL,NULL,NULL,1,NULL,'Dear Elizabeth',1,NULL,'Dear Elizabeth',1,NULL,'Elizabeth Díaz',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (12,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Terry, Magan','Magan Terry',NULL,NULL,NULL,NULL,NULL,'Both','1306605687',NULL,'Sample Data','Magan','','Terry',NULL,NULL,NULL,NULL,1,NULL,'Dear Magan',1,NULL,'Dear Magan',1,NULL,'Magan Terry',NULL,NULL,'2019-04-21',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (13,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Yadav, Mei','Mei Yadav',NULL,NULL,NULL,NULL,NULL,'Both','3106759273',NULL,'Sample Data','Mei','R','Yadav',NULL,NULL,NULL,NULL,1,NULL,'Dear Mei',1,NULL,'Dear Mei',1,NULL,'Mei Yadav',NULL,1,'1977-08-09',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (14,'Individual',NULL,1,1,0,0,0,0,NULL,NULL,'Parker, Billy','Billy Parker Sr.',NULL,NULL,NULL,'2',NULL,'Both','137440558',NULL,'Sample Data','Billy','W','Parker',NULL,2,NULL,NULL,1,NULL,'Dear Billy',1,NULL,'Dear Billy',1,NULL,'Billy Parker Sr.',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (15,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Terry, Kiara','Mrs. Kiara Terry',NULL,NULL,NULL,'3',NULL,'Both','4073244041',NULL,'Sample Data','Kiara','J','Terry',1,NULL,NULL,NULL,1,NULL,'Dear Kiara',1,NULL,'Dear Kiara',1,NULL,'Mrs. Kiara Terry',NULL,NULL,'1990-06-10',0,NULL,NULL,NULL,'Louisiana Technology Partnership',NULL,NULL,126,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (16,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Zope, Margaret','Margaret Zope',NULL,NULL,NULL,'3',NULL,'Both','3069258940',NULL,'Sample Data','Margaret','','Zope',NULL,NULL,NULL,NULL,1,NULL,'Dear Margaret',1,NULL,'Dear Margaret',1,NULL,'Margaret Zope',NULL,NULL,'2007-01-06',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (17,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Laceyville Arts Network','Laceyville Arts Network',NULL,NULL,NULL,'2',NULL,'Both','2676676246',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Laceyville Arts Network',NULL,NULL,NULL,0,NULL,NULL,10,'Laceyville Arts Network',NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (18,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Reynolds-Zope, Ashley','Mr. Ashley Reynolds-Zope III',NULL,NULL,NULL,'1',NULL,'Both','2818170299',NULL,'Sample Data','Ashley','R','Reynolds-Zope',3,4,NULL,NULL,1,NULL,'Dear Ashley',1,NULL,'Dear Ashley',1,NULL,'Mr. Ashley Reynolds-Zope III',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (19,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Terry, Sonny','Sonny Terry III',NULL,NULL,NULL,'2',NULL,'Both','2037695520',NULL,'Sample Data','Sonny','G','Terry',NULL,4,NULL,NULL,1,NULL,'Dear Sonny',1,NULL,'Dear Sonny',1,NULL,'Sonny Terry III',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (20,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Jensen, Daren','Daren Jensen III',NULL,NULL,NULL,NULL,NULL,'Both','817039458',NULL,'Sample Data','Daren','L','Jensen',NULL,4,NULL,NULL,1,NULL,'Dear Daren',1,NULL,'Dear Daren',1,NULL,'Daren Jensen III',NULL,2,'1984-12-25',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (21,'Individual',NULL,0,1,0,0,1,0,NULL,NULL,'Smith, Iris','Ms. Iris Smith',NULL,NULL,NULL,'1',NULL,'Both','3014958774',NULL,'Sample Data','Iris','','Smith',2,NULL,NULL,NULL,1,NULL,'Dear Iris',1,NULL,'Dear Iris',1,NULL,'Ms. Iris Smith',NULL,1,'1967-12-11',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (22,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Díaz, Russell','Russell Díaz III',NULL,NULL,NULL,'4',NULL,'Both','3377844851',NULL,'Sample Data','Russell','Y','Díaz',NULL,4,NULL,NULL,1,NULL,'Dear Russell',1,NULL,'Dear Russell',1,NULL,'Russell Díaz III',NULL,2,'1998-12-02',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (23,'Individual',NULL,1,0,0,0,1,0,NULL,NULL,'Roberts, Ivey','Ivey Roberts',NULL,NULL,NULL,'1',NULL,'Both','507631333',NULL,'Sample Data','Ivey','','Roberts',NULL,NULL,NULL,NULL,1,NULL,'Dear Ivey',1,NULL,'Dear Ivey',1,NULL,'Ivey Roberts',NULL,1,'1993-11-28',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (24,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'Blackwell family','Blackwell family',NULL,NULL,NULL,NULL,NULL,'Both','3218641510',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Blackwell family',5,NULL,'Dear Blackwell family',2,NULL,'Blackwell family',NULL,NULL,NULL,0,NULL,'Blackwell family',NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (25,'Household',NULL,0,0,0,0,1,0,NULL,NULL,'Zope family','Zope family',NULL,NULL,NULL,NULL,NULL,'Both','1649131487',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Zope family',5,NULL,'Dear Zope family',2,NULL,'Zope family',NULL,NULL,NULL,0,NULL,'Zope family',NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (26,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Terry, Errol','Errol Terry III',NULL,NULL,NULL,'5',NULL,'Both','1432200958',NULL,'Sample Data','Errol','O','Terry',NULL,4,NULL,NULL,1,NULL,'Dear Errol',1,NULL,'Dear Errol',1,NULL,'Errol Terry III',NULL,2,'1994-03-07',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (27,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Cooper-Jones, Arlyne','Dr. Arlyne Cooper-Jones',NULL,NULL,NULL,NULL,NULL,'Both','3029962320',NULL,'Sample Data','Arlyne','N','Cooper-Jones',4,NULL,NULL,NULL,1,NULL,'Dear Arlyne',1,NULL,'Dear Arlyne',1,NULL,'Dr. Arlyne Cooper-Jones',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (28,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Cooper-Nielsen, Winford','Mr. Winford Cooper-Nielsen Sr.',NULL,NULL,NULL,NULL,NULL,'Both','3108711559',NULL,'Sample Data','Winford','','Cooper-Nielsen',3,2,NULL,NULL,1,NULL,'Dear Winford',1,NULL,'Dear Winford',1,NULL,'Mr. Winford Cooper-Nielsen Sr.',NULL,2,'1986-10-26',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (29,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Adams, Tanya','Tanya Adams',NULL,NULL,NULL,NULL,NULL,'Both','1181850988',NULL,'Sample Data','Tanya','','Adams',NULL,NULL,NULL,NULL,1,NULL,'Dear Tanya',1,NULL,'Dear Tanya',1,NULL,'Tanya Adams',NULL,1,'1992-08-23',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (30,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Robertson, Brittney','Brittney Robertson',NULL,NULL,NULL,NULL,NULL,'Both','1961955547',NULL,'Sample Data','Brittney','K','Robertson',NULL,NULL,NULL,NULL,1,NULL,'Dear Brittney',1,NULL,'Dear Brittney',1,NULL,'Brittney Robertson',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (31,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Jensen, Teddy','Teddy Jensen Sr.',NULL,NULL,NULL,'3',NULL,'Both','1565680627',NULL,'Sample Data','Teddy','','Jensen',NULL,2,NULL,NULL,1,NULL,'Dear Teddy',1,NULL,'Dear Teddy',1,NULL,'Teddy Jensen Sr.',NULL,2,'1961-09-16',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (32,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Samuels, Miguel','Miguel Samuels',NULL,NULL,NULL,NULL,NULL,'Both','1633688376',NULL,'Sample Data','Miguel','','Samuels',NULL,NULL,NULL,NULL,1,NULL,'Dear Miguel',1,NULL,'Dear Miguel',1,NULL,'Miguel Samuels',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (33,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Blackwell, Troy','Mr. Troy Blackwell',NULL,NULL,NULL,NULL,NULL,'Both','1289798221',NULL,'Sample Data','Troy','','Blackwell',3,NULL,NULL,NULL,1,NULL,'Dear Troy',1,NULL,'Dear Troy',1,NULL,'Mr. Troy Blackwell',NULL,2,'1991-09-08',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (34,'Household',NULL,0,0,0,0,1,0,NULL,NULL,'Prentice family','Prentice family',NULL,NULL,NULL,'4',NULL,'Both','3313623671',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Prentice family',5,NULL,'Dear Prentice family',2,NULL,'Prentice family',NULL,NULL,NULL,0,NULL,'Prentice family',NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (35,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Müller, Jed','Jed Müller',NULL,NULL,NULL,NULL,NULL,'Both','1353975541',NULL,'Sample Data','Jed','','Müller',NULL,NULL,NULL,NULL,1,NULL,'Dear Jed',1,NULL,'Dear Jed',1,NULL,'Jed Müller',NULL,NULL,'2007-03-04',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (36,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Deforest, Teresa','Teresa Deforest',NULL,NULL,NULL,'1',NULL,'Both','1966517913',NULL,'Sample Data','Teresa','L','Deforest',NULL,NULL,NULL,NULL,1,NULL,'Dear Teresa',1,NULL,'Dear Teresa',1,NULL,'Teresa Deforest',NULL,NULL,'1975-08-30',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (37,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Wilson, Norris','Norris Wilson Jr.',NULL,NULL,NULL,'1',NULL,'Both','1089092056',NULL,'Sample Data','Norris','','Wilson',NULL,1,NULL,NULL,1,NULL,'Dear Norris',1,NULL,'Dear Norris',1,NULL,'Norris Wilson Jr.',NULL,NULL,'1967-04-10',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (38,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Dimitrov, Winford','Winford Dimitrov II',NULL,NULL,NULL,NULL,NULL,'Both','1833902224',NULL,'Sample Data','Winford','S','Dimitrov',NULL,3,NULL,NULL,1,NULL,'Dear Winford',1,NULL,'Dear Winford',1,NULL,'Winford Dimitrov II',NULL,NULL,'1962-05-21',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (39,'Individual',NULL,0,1,0,0,1,0,NULL,NULL,'Bachman, Teresa','Teresa Bachman',NULL,NULL,NULL,NULL,NULL,'Both','519766795',NULL,'Sample Data','Teresa','','Bachman',NULL,NULL,NULL,NULL,1,NULL,'Dear Teresa',1,NULL,'Dear Teresa',1,NULL,'Teresa Bachman',NULL,NULL,'1953-10-21',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (40,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Wagner, Roland','Roland Wagner Jr.',NULL,NULL,NULL,'3',NULL,'Both','1173293758',NULL,'Sample Data','Roland','','Wagner',NULL,1,NULL,NULL,1,NULL,'Dear Roland',1,NULL,'Dear Roland',1,NULL,'Roland Wagner Jr.',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (41,'Individual',NULL,0,1,0,0,1,0,NULL,NULL,'Cooper, Magan','Magan Cooper',NULL,NULL,NULL,'5',NULL,'Both','791506082',NULL,'Sample Data','Magan','Y','Cooper',NULL,NULL,NULL,NULL,1,NULL,'Dear Magan',1,NULL,'Dear Magan',1,NULL,'Magan Cooper',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (42,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Jameson, Kiara','Kiara Jameson',NULL,NULL,NULL,'3',NULL,'Both','1442754095',NULL,'Sample Data','Kiara','I','Jameson',NULL,NULL,NULL,NULL,1,NULL,'Dear Kiara',1,NULL,'Dear Kiara',1,NULL,'Kiara Jameson',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (43,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Jones, Bernadette','Ms. Bernadette Jones',NULL,NULL,NULL,NULL,NULL,'Both','357713234',NULL,'Sample Data','Bernadette','O','Jones',2,NULL,NULL,NULL,1,NULL,'Dear Bernadette',1,NULL,'Dear Bernadette',1,NULL,'Ms. Bernadette Jones',NULL,NULL,'1990-01-18',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (44,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'brigetteb@fishmail.co.uk','brigetteb@fishmail.co.uk',NULL,NULL,NULL,NULL,NULL,'Both','2574622634',NULL,'Sample Data',NULL,NULL,NULL,1,NULL,NULL,NULL,1,NULL,'Dear brigetteb@fishmail.co.uk',1,NULL,'Dear brigetteb@fishmail.co.uk',1,NULL,'brigetteb@fishmail.co.uk',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (45,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Łąchowski, Ashley','Mrs. Ashley Łąchowski',NULL,NULL,NULL,'4',NULL,'Both','2118847074',NULL,'Sample Data','Ashley','','Łąchowski',1,NULL,NULL,NULL,1,NULL,'Dear Ashley',1,NULL,'Dear Ashley',1,NULL,'Mrs. Ashley Łąchowski',NULL,NULL,NULL,0,NULL,NULL,NULL,'Progressive Environmental Fund',NULL,NULL,146,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (46,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Cooper, Elbert','Elbert Cooper III',NULL,NULL,NULL,'3',NULL,'Both','2147415663',NULL,'Sample Data','Elbert','','Cooper',NULL,4,NULL,NULL,1,NULL,'Dear Elbert',1,NULL,'Dear Elbert',1,NULL,'Elbert Cooper III',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (47,'Individual',NULL,1,0,0,0,1,0,NULL,NULL,'Cooper, Allan','Allan Cooper',NULL,NULL,NULL,'2',NULL,'Both','350402207',NULL,'Sample Data','Allan','R','Cooper',NULL,NULL,NULL,NULL,1,NULL,'Dear Allan',1,NULL,'Dear Allan',1,NULL,'Allan Cooper',NULL,2,'1968-12-18',0,NULL,NULL,NULL,'Los Indios Poetry Trust',NULL,NULL,184,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (48,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'Jameson family','Jameson family',NULL,NULL,NULL,NULL,NULL,'Both','2255649769',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Jameson family',5,NULL,'Dear Jameson family',2,NULL,'Jameson family',NULL,NULL,NULL,0,NULL,'Jameson family',NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (49,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'cooper-nielsen.irvin@sample.co.uk','cooper-nielsen.irvin@sample.co.uk',NULL,NULL,NULL,'3',NULL,'Both','1192927790',NULL,'Sample Data',NULL,NULL,NULL,NULL,2,NULL,NULL,1,NULL,'Dear cooper-nielsen.irvin@sample.co.uk',1,NULL,'Dear cooper-nielsen.irvin@sample.co.uk',1,NULL,'cooper-nielsen.irvin@sample.co.uk',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (50,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Grant, Merrie','Mrs. Merrie Grant',NULL,NULL,NULL,NULL,NULL,'Both','1746149346',NULL,'Sample Data','Merrie','O','Grant',1,NULL,NULL,NULL,1,NULL,'Dear Merrie',1,NULL,'Dear Merrie',1,NULL,'Mrs. Merrie Grant',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (51,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Prentice, Teresa','Teresa Prentice',NULL,NULL,NULL,NULL,NULL,'Both','1082544246',NULL,'Sample Data','Teresa','M','Prentice',NULL,NULL,NULL,NULL,1,NULL,'Dear Teresa',1,NULL,'Dear Teresa',1,NULL,'Teresa Prentice',NULL,1,'1965-01-11',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (52,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Zope, Elbert','Elbert Zope',NULL,NULL,NULL,'5',NULL,'Both','2036957323',NULL,'Sample Data','Elbert','','Zope',NULL,NULL,NULL,NULL,1,NULL,'Dear Elbert',1,NULL,'Dear Elbert',1,NULL,'Elbert Zope',NULL,2,'1985-06-30',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (53,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Jameson, Scott','Dr. Scott Jameson II',NULL,NULL,NULL,'4',NULL,'Both','1540029551',NULL,'Sample Data','Scott','','Jameson',4,3,NULL,NULL,1,NULL,'Dear Scott',1,NULL,'Dear Scott',1,NULL,'Dr. Scott Jameson II',NULL,2,'1986-08-16',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (54,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Dimitrov, Eleonor','Ms. Eleonor Dimitrov',NULL,NULL,NULL,NULL,NULL,'Both','3445748005',NULL,'Sample Data','Eleonor','B','Dimitrov',2,NULL,NULL,NULL,1,NULL,'Dear Eleonor',1,NULL,'Dear Eleonor',1,NULL,'Ms. Eleonor Dimitrov',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (55,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Zope-Roberts, Jackson','Dr. Jackson Zope-Roberts',NULL,NULL,NULL,'2',NULL,'Both','93828977',NULL,'Sample Data','Jackson','R','Zope-Roberts',4,NULL,NULL,NULL,1,NULL,'Dear Jackson',1,NULL,'Dear Jackson',1,NULL,'Dr. Jackson Zope-Roberts',NULL,2,'1991-02-03',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (56,'Household',NULL,0,1,0,0,0,0,NULL,NULL,'Adams family','Adams family',NULL,NULL,NULL,NULL,NULL,'Both','1515323104',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Adams family',5,NULL,'Dear Adams family',2,NULL,'Adams family',NULL,NULL,NULL,0,NULL,'Adams family',NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (57,'Individual',NULL,0,1,0,0,1,0,NULL,NULL,'Dimitrov, Rolando','Rolando Dimitrov III',NULL,NULL,NULL,NULL,NULL,'Both','2226225563',NULL,'Sample Data','Rolando','','Dimitrov',NULL,4,NULL,NULL,1,NULL,'Dear Rolando',1,NULL,'Dear Rolando',1,NULL,'Rolando Dimitrov III',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (58,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'González family','González family',NULL,NULL,NULL,'3',NULL,'Both','3263723758',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear González family',5,NULL,'Dear González family',2,NULL,'González family',NULL,NULL,NULL,0,NULL,'González family',NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (59,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Washington Wellness Systems','Washington Wellness Systems',NULL,NULL,NULL,'2',NULL,'Both','442989631',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Washington Wellness Systems',NULL,NULL,NULL,0,NULL,NULL,NULL,'Washington Wellness Systems',NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (60,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'Müller family','Müller family',NULL,NULL,NULL,NULL,NULL,'Both','1144797465',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Müller family',5,NULL,'Dear Müller family',2,NULL,'Müller family',NULL,NULL,NULL,0,NULL,'Müller family',NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (61,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Samuels, Santina','Santina Samuels',NULL,NULL,NULL,'1',NULL,'Both','2514918858',NULL,'Sample Data','Santina','M','Samuels',NULL,NULL,NULL,NULL,1,NULL,'Dear Santina',1,NULL,'Dear Santina',1,NULL,'Santina Samuels',NULL,1,'2008-01-14',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (62,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'kaceycruz-gonzlez85@example.co.uk','kaceycruz-gonzlez85@example.co.uk',NULL,NULL,NULL,NULL,NULL,'Both','2020295246',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,'Dear kaceycruz-gonzlez85@example.co.uk',1,NULL,'Dear kaceycruz-gonzlez85@example.co.uk',1,NULL,'kaceycruz-gonzlez85@example.co.uk',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (63,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Terry, Allan','Allan Terry',NULL,NULL,NULL,'4',NULL,'Both','1982784074',NULL,'Sample Data','Allan','Z','Terry',NULL,NULL,NULL,NULL,1,NULL,'Dear Allan',1,NULL,'Dear Allan',1,NULL,'Allan Terry',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (64,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'González, Maxwell','Maxwell González',NULL,NULL,NULL,'3',NULL,'Both','3943391638',NULL,'Sample Data','Maxwell','','González',NULL,NULL,NULL,NULL,1,NULL,'Dear Maxwell',1,NULL,'Dear Maxwell',1,NULL,'Maxwell González',NULL,NULL,'2019-04-04',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (65,'Household',NULL,0,0,0,0,1,0,NULL,NULL,'Jameson-Dimitrov family','Jameson-Dimitrov family',NULL,NULL,NULL,'1',NULL,'Both','4131518976',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Jameson-Dimitrov family',5,NULL,'Dear Jameson-Dimitrov family',2,NULL,'Jameson-Dimitrov family',NULL,NULL,NULL,0,NULL,'Jameson-Dimitrov family',NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (66,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'Wattson family','Wattson family',NULL,NULL,NULL,NULL,NULL,'Both','2851339192',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Wattson family',5,NULL,'Dear Wattson family',2,NULL,'Wattson family',NULL,NULL,NULL,0,NULL,'Wattson family',NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (67,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Blackwell, Allan','Allan Blackwell II',NULL,NULL,NULL,'1',NULL,'Both','3904004195',NULL,'Sample Data','Allan','','Blackwell',NULL,3,NULL,NULL,1,NULL,'Dear Allan',1,NULL,'Dear Allan',1,NULL,'Allan Blackwell II',NULL,2,'1971-06-07',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (68,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Jameson, Alida','Mrs. Alida Jameson',NULL,NULL,NULL,'5',NULL,'Both','974889683',NULL,'Sample Data','Alida','P','Jameson',1,NULL,NULL,NULL,1,NULL,'Dear Alida',1,NULL,'Dear Alida',1,NULL,'Mrs. Alida Jameson',NULL,NULL,'1982-06-02',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (69,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'terry.andrew36@testing.net','terry.andrew36@testing.net',NULL,NULL,NULL,'5',NULL,'Both','3865868',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,'Dear terry.andrew36@testing.net',1,NULL,'Dear terry.andrew36@testing.net',1,NULL,'terry.andrew36@testing.net',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (70,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Zope-Roberts, Scarlet','Scarlet Zope-Roberts',NULL,NULL,NULL,NULL,NULL,'Both','4248793519',NULL,'Sample Data','Scarlet','','Zope-Roberts',NULL,NULL,NULL,NULL,1,NULL,'Dear Scarlet',1,NULL,'Dear Scarlet',1,NULL,'Scarlet Zope-Roberts',NULL,1,'2014-01-05',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (71,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'wilsons50@testing.co.uk','wilsons50@testing.co.uk',NULL,NULL,NULL,'4',NULL,'Both','785848789',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,'Dear wilsons50@testing.co.uk',1,NULL,'Dear wilsons50@testing.co.uk',1,NULL,'wilsons50@testing.co.uk',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (72,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Müller, Clint','Clint Müller',NULL,NULL,NULL,NULL,NULL,'Both','363314978',NULL,'Sample Data','Clint','K','Müller',NULL,NULL,NULL,NULL,1,NULL,'Dear Clint',1,NULL,'Dear Clint',1,NULL,'Clint Müller',NULL,2,'1986-10-18',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (73,'Individual',NULL,1,1,0,0,1,0,NULL,NULL,'Ivanov, Scarlet','Ms. Scarlet Ivanov',NULL,NULL,NULL,'2',NULL,'Both','959385532',NULL,'Sample Data','Scarlet','I','Ivanov',2,NULL,NULL,NULL,1,NULL,'Dear Scarlet',1,NULL,'Dear Scarlet',1,NULL,'Ms. Scarlet Ivanov',NULL,1,'1942-01-15',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (74,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Jacobs, Teddy','Teddy Jacobs Sr.',NULL,NULL,NULL,'5',NULL,'Both','730676702',NULL,'Sample Data','Teddy','','Jacobs',NULL,2,NULL,NULL,1,NULL,'Dear Teddy',1,NULL,'Dear Teddy',1,NULL,'Teddy Jacobs Sr.',NULL,2,'1987-02-02',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (75,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Ivanov, Josefa','Josefa Ivanov',NULL,NULL,NULL,NULL,NULL,'Both','3691296401',NULL,'Sample Data','Josefa','','Ivanov',NULL,NULL,NULL,NULL,1,NULL,'Dear Josefa',1,NULL,'Dear Josefa',1,NULL,'Josefa Ivanov',NULL,1,'1986-05-31',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (76,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Jensen, Brzęczysław','Brzęczysław Jensen',NULL,NULL,NULL,NULL,NULL,'Both','3109527605',NULL,'Sample Data','Brzęczysław','N','Jensen',NULL,NULL,NULL,NULL,1,NULL,'Dear Brzęczysław',1,NULL,'Dear Brzęczysław',1,NULL,'Brzęczysław Jensen',NULL,NULL,'1984-04-24',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (77,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Whitfield Agriculture Systems','Whitfield Agriculture Systems',NULL,NULL,NULL,'2',NULL,'Both','2051846250',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Whitfield Agriculture Systems',NULL,NULL,NULL,0,NULL,NULL,142,'Whitfield Agriculture Systems',NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (78,'Organization',NULL,0,0,0,0,1,0,NULL,NULL,'College Peace Center','College Peace Center',NULL,NULL,NULL,NULL,NULL,'Both','1717841620',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'College Peace Center',NULL,NULL,NULL,0,NULL,NULL,NULL,'College Peace Center',NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (79,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Parker, Kiara','Ms. Kiara Parker',NULL,NULL,NULL,'1',NULL,'Both','3402922885',NULL,'Sample Data','Kiara','','Parker',2,NULL,NULL,NULL,1,NULL,'Dear Kiara',1,NULL,'Dear Kiara',1,NULL,'Ms. Kiara Parker',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (80,'Household',NULL,1,0,0,0,0,0,NULL,NULL,'Terry family','Terry family',NULL,NULL,NULL,NULL,NULL,'Both','558108751',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Terry family',5,NULL,'Dear Terry family',2,NULL,'Terry family',NULL,NULL,NULL,0,NULL,'Terry family',NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (81,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Blackwell, Scott','Scott Blackwell',NULL,NULL,NULL,'1',NULL,'Both','1650464224',NULL,'Sample Data','Scott','Q','Blackwell',NULL,NULL,NULL,NULL,1,NULL,'Dear Scott',1,NULL,'Dear Scott',1,NULL,'Scott Blackwell',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (82,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Terrell, Tanya','Tanya Terrell',NULL,NULL,NULL,NULL,NULL,'Both','1604022989',NULL,'Sample Data','Tanya','','Terrell',NULL,NULL,NULL,NULL,1,NULL,'Dear Tanya',1,NULL,'Dear Tanya',1,NULL,'Tanya Terrell',NULL,NULL,'1999-04-04',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (83,'Individual',NULL,0,1,0,0,1,0,NULL,NULL,'Müller, Roland','Mr. Roland Müller III',NULL,NULL,NULL,'5',NULL,'Both','1311591085',NULL,'Sample Data','Roland','','Müller',3,4,NULL,NULL,1,NULL,'Dear Roland',1,NULL,'Dear Roland',1,NULL,'Mr. Roland Müller III',NULL,2,'1997-10-09',0,NULL,NULL,NULL,'Indiana Sports Partnership',NULL,NULL,123,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (84,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Jones-Samuels, Angelika','Angelika Jones-Samuels',NULL,NULL,NULL,NULL,NULL,'Both','3846714773',NULL,'Sample Data','Angelika','X','Jones-Samuels',NULL,NULL,NULL,NULL,1,NULL,'Dear Angelika',1,NULL,'Dear Angelika',1,NULL,'Angelika Jones-Samuels',NULL,NULL,'1960-05-16',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (85,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'McReynolds, Merrie','Merrie McReynolds',NULL,NULL,NULL,NULL,NULL,'Both','231760462',NULL,'Sample Data','Merrie','','McReynolds',NULL,NULL,NULL,NULL,1,NULL,'Dear Merrie',1,NULL,'Dear Merrie',1,NULL,'Merrie McReynolds',NULL,1,'1945-03-14',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (86,'Individual',NULL,1,0,0,0,1,0,NULL,NULL,'Parker, Clint','Clint Parker',NULL,NULL,NULL,NULL,NULL,'Both','1220749432',NULL,'Sample Data','Clint','O','Parker',NULL,NULL,NULL,NULL,1,NULL,'Dear Clint',1,NULL,'Dear Clint',1,NULL,'Clint Parker',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (87,'Organization',NULL,0,0,0,0,1,0,NULL,NULL,'California Sports Trust','California Sports Trust',NULL,NULL,NULL,'2',NULL,'Both','3138260181',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'California Sports Trust',NULL,NULL,NULL,0,NULL,NULL,95,'California Sports Trust',NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (88,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Jameson, Nicole','Nicole Jameson',NULL,NULL,NULL,'5',NULL,'Both','533376763',NULL,'Sample Data','Nicole','','Jameson',NULL,NULL,NULL,NULL,1,NULL,'Dear Nicole',1,NULL,'Dear Nicole',1,NULL,'Nicole Jameson',NULL,1,'2003-01-27',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (89,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Yadav, Shauna','Dr. Shauna Yadav',NULL,NULL,NULL,'1',NULL,'Both','1029328573',NULL,'Sample Data','Shauna','Q','Yadav',4,NULL,NULL,NULL,1,NULL,'Dear Shauna',1,NULL,'Dear Shauna',1,NULL,'Dr. Shauna Yadav',NULL,1,'1952-01-03',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (90,'Household',NULL,1,1,0,0,0,0,NULL,NULL,'Terry family','Terry family',NULL,NULL,NULL,'2',NULL,'Both','558108751',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Terry family',5,NULL,'Dear Terry family',2,NULL,'Terry family',NULL,NULL,NULL,0,NULL,'Terry family',NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (91,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Terry, Shauna','Shauna Terry',NULL,NULL,NULL,NULL,NULL,'Both','739503630',NULL,'Sample Data','Shauna','','Terry',NULL,NULL,NULL,NULL,1,NULL,'Dear Shauna',1,NULL,'Dear Shauna',1,NULL,'Shauna Terry',NULL,1,'1997-05-01',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (92,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Cooper, Shauna','Shauna Cooper',NULL,NULL,NULL,'1',NULL,'Both','3670541313',NULL,'Sample Data','Shauna','Z','Cooper',NULL,NULL,NULL,NULL,1,NULL,'Dear Shauna',1,NULL,'Dear Shauna',1,NULL,'Shauna Cooper',NULL,NULL,'1987-03-01',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (93,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Local Legal Trust','Local Legal Trust',NULL,NULL,NULL,NULL,NULL,'Both','4050907257',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Local Legal Trust',NULL,NULL,NULL,0,NULL,NULL,115,'Local Legal Trust',NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (94,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Barkley, Bryon','Bryon Barkley Sr.',NULL,NULL,NULL,'2',NULL,'Both','2286334193',NULL,'Sample Data','Bryon','S','Barkley',NULL,2,NULL,NULL,1,NULL,'Dear Bryon',1,NULL,'Dear Bryon',1,NULL,'Bryon Barkley Sr.',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (95,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Adams, Herminia','Ms. Herminia Adams',NULL,NULL,NULL,NULL,NULL,'Both','1782178525',NULL,'Sample Data','Herminia','','Adams',2,NULL,NULL,NULL,1,NULL,'Dear Herminia',1,NULL,'Dear Herminia',1,NULL,'Ms. Herminia Adams',NULL,NULL,'1998-05-06',0,NULL,NULL,NULL,'California Sports Trust',NULL,NULL,87,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (96,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Zope-Blackwell, Brigette','Ms. Brigette Zope-Blackwell',NULL,NULL,NULL,NULL,NULL,'Both','2452948470',NULL,'Sample Data','Brigette','O','Zope-Blackwell',2,NULL,NULL,NULL,1,NULL,'Dear Brigette',1,NULL,'Dear Brigette',1,NULL,'Ms. Brigette Zope-Blackwell',NULL,NULL,'1956-11-30',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (97,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'jw.wattson75@infomail.com','jw.wattson75@infomail.com',NULL,NULL,NULL,NULL,NULL,'Both','698961563',NULL,'Sample Data',NULL,NULL,NULL,NULL,3,NULL,NULL,1,NULL,'Dear jw.wattson75@infomail.com',1,NULL,'Dear jw.wattson75@infomail.com',1,NULL,'jw.wattson75@infomail.com',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (98,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Prentice, Alida','Alida Prentice',NULL,NULL,NULL,NULL,NULL,'Both','2045262669',NULL,'Sample Data','Alida','N','Prentice',NULL,NULL,NULL,NULL,1,NULL,'Dear Alida',1,NULL,'Dear Alida',1,NULL,'Alida Prentice',NULL,1,'2006-04-07',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (99,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'brigettew19@fakemail.biz','brigettew19@fakemail.biz',NULL,NULL,NULL,NULL,NULL,'Both','3819123294',NULL,'Sample Data',NULL,NULL,NULL,1,NULL,NULL,NULL,1,NULL,'Dear brigettew19@fakemail.biz',1,NULL,'Dear brigettew19@fakemail.biz',1,NULL,'brigettew19@fakemail.biz',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (100,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Jameson, Maria','Mr. Maria Jameson',NULL,NULL,NULL,NULL,NULL,'Both','2824644051',NULL,'Sample Data','Maria','','Jameson',3,NULL,NULL,NULL,1,NULL,'Dear Maria',1,NULL,'Dear Maria',1,NULL,'Mr. Maria Jameson',NULL,2,'1976-08-19',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (101,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Terry, Scarlet','Dr. Scarlet Terry',NULL,NULL,NULL,'5',NULL,'Both','4060527953',NULL,'Sample Data','Scarlet','B','Terry',4,NULL,NULL,NULL,1,NULL,'Dear Scarlet',1,NULL,'Dear Scarlet',1,NULL,'Dr. Scarlet Terry',NULL,NULL,'1967-11-12',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (102,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Prentice, Rolando','Rolando Prentice II',NULL,NULL,NULL,'5',NULL,'Both','1297722771',NULL,'Sample Data','Rolando','R','Prentice',NULL,3,NULL,NULL,1,NULL,'Dear Rolando',1,NULL,'Dear Rolando',1,NULL,'Rolando Prentice II',NULL,2,'2009-05-28',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (103,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Bachman, Ashlie','Ms. Ashlie Bachman',NULL,NULL,NULL,NULL,NULL,'Both','628441271',NULL,'Sample Data','Ashlie','','Bachman',2,NULL,NULL,NULL,1,NULL,'Dear Ashlie',1,NULL,'Dear Ashlie',1,NULL,'Ms. Ashlie Bachman',NULL,1,'1990-09-30',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (104,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Prentice, Sonny','Sonny Prentice',NULL,NULL,NULL,NULL,NULL,'Both','2645636632',NULL,'Sample Data','Sonny','','Prentice',NULL,NULL,NULL,NULL,1,NULL,'Dear Sonny',1,NULL,'Dear Sonny',1,NULL,'Sonny Prentice',NULL,2,'1962-10-12',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (105,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Jones, Beula','Beula Jones',NULL,NULL,NULL,NULL,NULL,'Both','420812867',NULL,'Sample Data','Beula','','Jones',NULL,NULL,NULL,NULL,1,NULL,'Dear Beula',1,NULL,'Dear Beula',1,NULL,'Beula Jones',NULL,1,'1965-11-25',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (106,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Díaz, Sonny','Dr. Sonny Díaz II',NULL,NULL,NULL,'1',NULL,'Both','3648844868',NULL,'Sample Data','Sonny','','Díaz',4,3,NULL,NULL,1,NULL,'Dear Sonny',1,NULL,'Dear Sonny',1,NULL,'Dr. Sonny Díaz II',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (107,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Wattson, Errol','Errol Wattson',NULL,NULL,NULL,'4',NULL,'Both','3723119881',NULL,'Sample Data','Errol','','Wattson',NULL,NULL,NULL,NULL,1,NULL,'Dear Errol',1,NULL,'Dear Errol',1,NULL,'Errol Wattson',NULL,2,NULL,1,'2022-08-19',NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (108,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Cooper, Miguel','Miguel Cooper',NULL,NULL,NULL,NULL,NULL,'Both','1717220592',NULL,'Sample Data','Miguel','V','Cooper',NULL,NULL,NULL,NULL,1,NULL,'Dear Miguel',1,NULL,'Dear Miguel',1,NULL,'Miguel Cooper',NULL,2,'1952-04-12',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (109,'Individual',NULL,1,1,0,0,1,0,NULL,NULL,'beulaj@notmail.org','beulaj@notmail.org',NULL,NULL,NULL,NULL,NULL,'Both','3792227747',NULL,'Sample Data',NULL,NULL,NULL,2,NULL,NULL,NULL,1,NULL,'Dear beulaj@notmail.org',1,NULL,'Dear beulaj@notmail.org',1,NULL,'beulaj@notmail.org',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (110,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'russellblackwell@example.org','russellblackwell@example.org',NULL,NULL,NULL,NULL,NULL,'Both','4282230319',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,'Dear russellblackwell@example.org',1,NULL,'Dear russellblackwell@example.org',1,NULL,'russellblackwell@example.org',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (111,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Wattson, Elina','Elina Wattson',NULL,NULL,NULL,NULL,NULL,'Both','452291784',NULL,'Sample Data','Elina','','Wattson',NULL,NULL,NULL,NULL,1,NULL,'Dear Elina',1,NULL,'Dear Elina',1,NULL,'Elina Wattson',NULL,1,'1980-07-08',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (112,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Blackwell, Allan','Allan Blackwell',NULL,NULL,NULL,NULL,NULL,'Both','3904004195',NULL,'Sample Data','Allan','','Blackwell',NULL,NULL,NULL,NULL,1,NULL,'Dear Allan',1,NULL,'Dear Allan',1,NULL,'Allan Blackwell',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (113,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Bachman, Megan','Ms. Megan Bachman',NULL,NULL,NULL,'1',NULL,'Both','2246848096',NULL,'Sample Data','Megan','G','Bachman',2,NULL,NULL,NULL,1,NULL,'Dear Megan',1,NULL,'Dear Megan',1,NULL,'Ms. Megan Bachman',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (114,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Roberts, Kacey','Kacey Roberts',NULL,NULL,NULL,'4',NULL,'Both','2119265437',NULL,'Sample Data','Kacey','','Roberts',NULL,NULL,NULL,NULL,1,NULL,'Dear Kacey',1,NULL,'Dear Kacey',1,NULL,'Kacey Roberts',NULL,1,'1982-07-21',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (115,'Individual',NULL,1,1,0,0,0,0,NULL,NULL,'Wilson, Alexia','Alexia Wilson',NULL,NULL,NULL,NULL,NULL,'Both','3321653861',NULL,'Sample Data','Alexia','','Wilson',NULL,NULL,NULL,NULL,1,NULL,'Dear Alexia',1,NULL,'Dear Alexia',1,NULL,'Alexia Wilson',NULL,1,'1971-02-01',0,NULL,NULL,NULL,'Local Legal Trust',NULL,NULL,93,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (116,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Zope, Billy','Mr. Billy Zope Jr.',NULL,NULL,NULL,NULL,NULL,'Both','1931623602',NULL,'Sample Data','Billy','','Zope',3,1,NULL,NULL,1,NULL,'Dear Billy',1,NULL,'Dear Billy',1,NULL,'Mr. Billy Zope Jr.',NULL,NULL,'1989-08-11',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (117,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Zope, Nicole','Nicole Zope',NULL,NULL,NULL,'1',NULL,'Both','3499360934',NULL,'Sample Data','Nicole','','Zope',NULL,NULL,NULL,NULL,1,NULL,'Dear Nicole',1,NULL,'Dear Nicole',1,NULL,'Nicole Zope',NULL,1,'2011-06-07',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (118,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Cruz, Juliann','Juliann Cruz',NULL,NULL,NULL,'5',NULL,'Both','2381734764',NULL,'Sample Data','Juliann','','Cruz',NULL,NULL,NULL,NULL,1,NULL,'Dear Juliann',1,NULL,'Dear Juliann',1,NULL,'Juliann Cruz',NULL,1,'1973-05-08',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (119,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'Blackwell family','Blackwell family',NULL,NULL,NULL,NULL,NULL,'Both','3218641510',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Blackwell family',5,NULL,'Dear Blackwell family',2,NULL,'Blackwell family',NULL,NULL,NULL,0,NULL,'Blackwell family',NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (120,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Müller, Tanya','Tanya Müller',NULL,NULL,NULL,NULL,NULL,'Both','1478253205',NULL,'Sample Data','Tanya','','Müller',NULL,NULL,NULL,NULL,1,NULL,'Dear Tanya',1,NULL,'Dear Tanya',1,NULL,'Tanya Müller',NULL,NULL,NULL,0,NULL,NULL,NULL,'United Culture Partners',NULL,NULL,128,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (121,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'mariaz@fakemail.biz','mariaz@fakemail.biz',NULL,NULL,NULL,'3',NULL,'Both','3608478808',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,'Dear mariaz@fakemail.biz',1,NULL,'Dear mariaz@fakemail.biz',1,NULL,'mariaz@fakemail.biz',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (122,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Müller, Claudio','Claudio Müller',NULL,NULL,NULL,'1',NULL,'Both','2143910765',NULL,'Sample Data','Claudio','','Müller',NULL,NULL,NULL,NULL,1,NULL,'Dear Claudio',1,NULL,'Dear Claudio',1,NULL,'Claudio Müller',NULL,2,'1982-05-21',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (123,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Indiana Sports Partnership','Indiana Sports Partnership',NULL,NULL,NULL,'5',NULL,'Both','3043226438',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Indiana Sports Partnership',NULL,NULL,NULL,0,NULL,NULL,83,'Indiana Sports Partnership',NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (124,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Wilson-Dimitrov, Shad','Shad Wilson-Dimitrov',NULL,NULL,NULL,NULL,NULL,'Both','3286452921',NULL,'Sample Data','Shad','','Wilson-Dimitrov',NULL,NULL,NULL,NULL,1,NULL,'Dear Shad',1,NULL,'Dear Shad',1,NULL,'Shad Wilson-Dimitrov',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (125,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Wagner, Winford','Dr. Winford Wagner',NULL,NULL,NULL,NULL,NULL,'Both','3396158414',NULL,'Sample Data','Winford','T','Wagner',4,NULL,NULL,NULL,1,NULL,'Dear Winford',1,NULL,'Dear Winford',1,NULL,'Dr. Winford Wagner',NULL,2,'1958-05-18',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (126,'Organization',NULL,1,0,0,0,1,0,NULL,NULL,'Louisiana Technology Partnership','Louisiana Technology Partnership',NULL,NULL,NULL,NULL,NULL,'Both','2633745931',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Louisiana Technology Partnership',NULL,NULL,NULL,0,NULL,NULL,15,'Louisiana Technology Partnership',NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (127,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Jameson, Margaret','Dr. Margaret Jameson',NULL,NULL,NULL,NULL,NULL,'Both','1719938872',NULL,'Sample Data','Margaret','O','Jameson',4,NULL,NULL,NULL,1,NULL,'Dear Margaret',1,NULL,'Dear Margaret',1,NULL,'Dr. Margaret Jameson',NULL,NULL,'1984-08-03',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (128,'Organization',NULL,1,0,0,0,0,0,NULL,NULL,'United Culture Partners','United Culture Partners',NULL,NULL,NULL,NULL,NULL,'Both','2576598866',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'United Culture Partners',NULL,NULL,NULL,0,NULL,NULL,120,'United Culture Partners',NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (129,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Ivanov, Rodrigo','Rodrigo Ivanov',NULL,NULL,NULL,'4',NULL,'Both','2665620102',NULL,'Sample Data','Rodrigo','','Ivanov',NULL,NULL,NULL,NULL,1,NULL,'Dear Rodrigo',1,NULL,'Dear Rodrigo',1,NULL,'Rodrigo Ivanov',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (130,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Łąchowski, Ashley','Dr. Ashley Łąchowski Sr.',NULL,NULL,NULL,NULL,NULL,'Both','2118847074',NULL,'Sample Data','Ashley','L','Łąchowski',4,2,NULL,NULL,1,NULL,'Dear Ashley',1,NULL,'Dear Ashley',1,NULL,'Dr. Ashley Łąchowski Sr.',NULL,NULL,'1955-03-22',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (131,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Wilson, Rosario','Mr. Rosario Wilson II',NULL,NULL,NULL,NULL,NULL,'Both','4172001962',NULL,'Sample Data','Rosario','I','Wilson',3,3,NULL,NULL,1,NULL,'Dear Rosario',1,NULL,'Dear Rosario',1,NULL,'Mr. Rosario Wilson II',NULL,NULL,'1972-07-16',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (132,'Organization',NULL,0,0,0,0,1,0,NULL,NULL,'Virginia Culture Network','Virginia Culture Network',NULL,NULL,NULL,'5',NULL,'Both','1807393325',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Virginia Culture Network',NULL,NULL,NULL,0,NULL,NULL,NULL,'Virginia Culture Network',NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (133,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Jameson, Megan','Megan Jameson',NULL,NULL,NULL,'3',NULL,'Both','1706411142',NULL,'Sample Data','Megan','','Jameson',NULL,NULL,NULL,NULL,1,NULL,'Dear Megan',1,NULL,'Dear Megan',1,NULL,'Megan Jameson',NULL,1,'1964-08-31',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (134,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'sd.wattson@testmail.co.pl','sd.wattson@testmail.co.pl',NULL,NULL,NULL,NULL,NULL,'Both','1048765381',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,'Dear sd.wattson@testmail.co.pl',1,NULL,'Dear sd.wattson@testmail.co.pl',1,NULL,'sd.wattson@testmail.co.pl',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (135,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Reynolds-Wattson, Eleonor','Eleonor Reynolds-Wattson',NULL,NULL,NULL,'2',NULL,'Both','812409030',NULL,'Sample Data','Eleonor','V','Reynolds-Wattson',NULL,NULL,NULL,NULL,1,NULL,'Dear Eleonor',1,NULL,'Dear Eleonor',1,NULL,'Eleonor Reynolds-Wattson',NULL,NULL,'1965-08-29',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (136,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Blackwell, Felisha','Dr. Felisha Blackwell',NULL,NULL,NULL,'1',NULL,'Both','3871892634',NULL,'Sample Data','Felisha','Z','Blackwell',4,NULL,NULL,NULL,1,NULL,'Dear Felisha',1,NULL,'Dear Felisha',1,NULL,'Dr. Felisha Blackwell',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (137,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Lee, Toby','Mr. Toby Lee',NULL,NULL,NULL,NULL,NULL,'Both','1467160380',NULL,'Sample Data','Toby','','Lee',3,NULL,NULL,NULL,1,NULL,'Dear Toby',1,NULL,'Dear Toby',1,NULL,'Mr. Toby Lee',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (138,'Individual',NULL,1,1,0,0,1,0,NULL,NULL,'Reynolds, Irvin','Mr. Irvin Reynolds Jr.',NULL,NULL,NULL,'3',NULL,'Both','4214895107',NULL,'Sample Data','Irvin','R','Reynolds',3,1,NULL,NULL,1,NULL,'Dear Irvin',1,NULL,'Dear Irvin',1,NULL,'Mr. Irvin Reynolds Jr.',NULL,2,'1977-08-26',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (139,'Individual',NULL,1,1,0,0,1,0,NULL,NULL,'Yadav, Miguel','Dr. Miguel Yadav',NULL,NULL,NULL,'4',NULL,'Both','2177433164',NULL,'Sample Data','Miguel','','Yadav',4,NULL,NULL,NULL,1,NULL,'Dear Miguel',1,NULL,'Dear Miguel',1,NULL,'Dr. Miguel Yadav',NULL,2,'1933-03-10',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (140,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Bay Sustainability Partners','Bay Sustainability Partners',NULL,NULL,NULL,NULL,NULL,'Both','3082386049',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Bay Sustainability Partners',NULL,NULL,NULL,0,NULL,NULL,185,'Bay Sustainability Partners',NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (141,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Reynolds, Barry','Barry Reynolds II',NULL,NULL,NULL,'4',NULL,'Both','3819576802',NULL,'Sample Data','Barry','','Reynolds',NULL,3,NULL,NULL,1,NULL,'Dear Barry',1,NULL,'Dear Barry',1,NULL,'Barry Reynolds II',NULL,2,'1947-01-09',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (142,'Individual',NULL,1,0,0,0,1,0,NULL,NULL,'zope.landon89@example.co.uk','zope.landon89@example.co.uk',NULL,NULL,NULL,'3',NULL,'Both','2858439470',NULL,'Sample Data',NULL,NULL,NULL,3,NULL,NULL,NULL,1,NULL,'Dear zope.landon89@example.co.uk',1,NULL,'Dear zope.landon89@example.co.uk',1,NULL,'zope.landon89@example.co.uk',NULL,NULL,NULL,0,NULL,NULL,NULL,'Whitfield Agriculture Systems',NULL,NULL,77,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (143,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Cooper-Jones, Omar','Omar Cooper-Jones Jr.',NULL,NULL,NULL,NULL,NULL,'Both','1389581430',NULL,'Sample Data','Omar','','Cooper-Jones',NULL,1,NULL,NULL,1,NULL,'Dear Omar',1,NULL,'Dear Omar',1,NULL,'Omar Cooper-Jones Jr.',NULL,2,'1994-10-20',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (144,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Terry, Laree','Dr. Laree Terry',NULL,NULL,NULL,'4',NULL,'Both','2580704464',NULL,'Sample Data','Laree','','Terry',4,NULL,NULL,NULL,1,NULL,'Dear Laree',1,NULL,'Dear Laree',1,NULL,'Dr. Laree Terry',NULL,NULL,'1945-10-10',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (145,'Individual',NULL,1,1,0,0,0,0,NULL,NULL,'Cooper, Bernadette','Bernadette Cooper',NULL,NULL,NULL,'3',NULL,'Both','1160205929',NULL,'Sample Data','Bernadette','I','Cooper',NULL,NULL,NULL,NULL,1,NULL,'Dear Bernadette',1,NULL,'Dear Bernadette',1,NULL,'Bernadette Cooper',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (146,'Organization',NULL,1,0,0,0,0,0,NULL,NULL,'Progressive Environmental Fund','Progressive Environmental Fund',NULL,NULL,NULL,NULL,NULL,'Both','3253210656',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Progressive Environmental Fund',NULL,NULL,NULL,0,NULL,NULL,45,'Progressive Environmental Fund',NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (147,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'bo.nielsen@notmail.co.nz','bo.nielsen@notmail.co.nz',NULL,NULL,NULL,NULL,NULL,'Both','919415425',NULL,'Sample Data',NULL,NULL,NULL,1,NULL,NULL,NULL,1,NULL,'Dear bo.nielsen@notmail.co.nz',1,NULL,'Dear bo.nielsen@notmail.co.nz',1,NULL,'bo.nielsen@notmail.co.nz',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (148,'Individual',NULL,1,1,0,0,0,0,NULL,NULL,'Adams, Russell','Russell Adams III',NULL,NULL,NULL,'5',NULL,'Both','2150692920',NULL,'Sample Data','Russell','','Adams',NULL,4,NULL,NULL,1,NULL,'Dear Russell',1,NULL,'Dear Russell',1,NULL,'Russell Adams III',NULL,2,'1996-10-21',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (149,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Blackwell, Kathlyn','Kathlyn Blackwell',NULL,NULL,NULL,'1',NULL,'Both','549332646',NULL,'Sample Data','Kathlyn','','Blackwell',NULL,NULL,NULL,NULL,1,NULL,'Dear Kathlyn',1,NULL,'Dear Kathlyn',1,NULL,'Kathlyn Blackwell',NULL,NULL,'2005-08-02',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (150,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'González, Billy','Billy González',NULL,NULL,NULL,NULL,NULL,'Both','3554802563',NULL,'Sample Data','Billy','U','González',NULL,NULL,NULL,NULL,1,NULL,'Dear Billy',1,NULL,'Dear Billy',1,NULL,'Billy González',NULL,2,'1960-12-16',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (151,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Jameson-Dimitrov, Jackson','Jackson Jameson-Dimitrov Sr.',NULL,NULL,NULL,NULL,NULL,'Both','1032909862',NULL,'Sample Data','Jackson','','Jameson-Dimitrov',NULL,2,NULL,NULL,1,NULL,'Dear Jackson',1,NULL,'Dear Jackson',1,NULL,'Jackson Jameson-Dimitrov Sr.',NULL,NULL,'1995-12-28',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (152,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Adams, Magan','Dr. Magan Adams',NULL,NULL,NULL,NULL,NULL,'Both','922015448',NULL,'Sample Data','Magan','P','Adams',4,NULL,NULL,NULL,1,NULL,'Dear Magan',1,NULL,'Dear Magan',1,NULL,'Dr. Magan Adams',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (153,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Cooper, Brzęczysław','Brzęczysław Cooper Sr.',NULL,NULL,NULL,NULL,NULL,'Both','671824527',NULL,'Sample Data','Brzęczysław','','Cooper',NULL,2,NULL,NULL,1,NULL,'Dear Brzęczysław',1,NULL,'Dear Brzęczysław',1,NULL,'Brzęczysław Cooper Sr.',NULL,2,'1990-07-13',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (154,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Deforest, Brittney','Dr. Brittney Deforest',NULL,NULL,NULL,NULL,NULL,'Both','1540368141',NULL,'Sample Data','Brittney','','Deforest',4,NULL,NULL,NULL,1,NULL,'Dear Brittney',1,NULL,'Dear Brittney',1,NULL,'Dr. Brittney Deforest',NULL,1,'1947-01-04',1,'2022-06-27',NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (155,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Łąchowski, Tanya','Tanya Łąchowski',NULL,NULL,NULL,'5',NULL,'Both','2472113675',NULL,'Sample Data','Tanya','O','Łąchowski',NULL,NULL,NULL,NULL,1,NULL,'Dear Tanya',1,NULL,'Dear Tanya',1,NULL,'Tanya Łąchowski',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (156,'Household',NULL,0,1,0,0,1,0,NULL,NULL,'Jensen family','Jensen family',NULL,NULL,NULL,'5',NULL,'Both','797435572',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Jensen family',5,NULL,'Dear Jensen family',2,NULL,'Jensen family',NULL,NULL,NULL,0,NULL,'Jensen family',NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (157,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Müller, Alexia','Alexia Müller',NULL,NULL,NULL,NULL,NULL,'Both','3709597045',NULL,'Sample Data','Alexia','A','Müller',NULL,NULL,NULL,NULL,1,NULL,'Dear Alexia',1,NULL,'Dear Alexia',1,NULL,'Alexia Müller',NULL,1,'2012-12-15',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (158,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'robertson.b.teddy78@fishmail.co.uk','robertson.b.teddy78@fishmail.co.uk',NULL,NULL,NULL,'4',NULL,'Both','1398728170',NULL,'Sample Data',NULL,NULL,NULL,3,1,NULL,NULL,1,NULL,'Dear robertson.b.teddy78@fishmail.co.uk',1,NULL,'Dear robertson.b.teddy78@fishmail.co.uk',1,NULL,'robertson.b.teddy78@fishmail.co.uk',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (159,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'russellwilson68@notmail.biz','russellwilson68@notmail.biz',NULL,NULL,NULL,'2',NULL,'Both','3118924217',NULL,'Sample Data',NULL,NULL,NULL,3,NULL,NULL,NULL,1,NULL,'Dear russellwilson68@notmail.biz',1,NULL,'Dear russellwilson68@notmail.biz',1,NULL,'russellwilson68@notmail.biz',NULL,NULL,NULL,0,NULL,NULL,NULL,'Texas Music Initiative',NULL,NULL,188,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (160,'Organization',NULL,1,1,0,0,0,0,NULL,NULL,'Greenville Sports Systems','Greenville Sports Systems',NULL,NULL,NULL,'3',NULL,'Both','251301866',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Greenville Sports Systems',NULL,NULL,NULL,0,NULL,NULL,183,'Greenville Sports Systems',NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (161,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Jacobs, Juliann','Juliann Jacobs',NULL,NULL,NULL,NULL,NULL,'Both','3009811288',NULL,'Sample Data','Juliann','T','Jacobs',NULL,NULL,NULL,NULL,1,NULL,'Dear Juliann',1,NULL,'Dear Juliann',1,NULL,'Juliann Jacobs',NULL,1,NULL,1,'2022-12-03',NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (162,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'Samuels family','Samuels family',NULL,NULL,NULL,NULL,NULL,'Both','350459294',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Samuels family',5,NULL,'Dear Samuels family',2,NULL,'Samuels family',NULL,NULL,NULL,0,NULL,'Samuels family',NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (163,'Organization',NULL,0,1,0,0,0,0,NULL,NULL,'Minnesota Health Systems','Minnesota Health Systems',NULL,NULL,NULL,NULL,NULL,'Both','2260188367',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Minnesota Health Systems',NULL,NULL,NULL,0,NULL,NULL,3,'Minnesota Health Systems',NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (164,'Household',NULL,1,0,0,0,0,0,NULL,NULL,'Wilson-Dimitrov family','Wilson-Dimitrov family',NULL,NULL,NULL,NULL,NULL,'Both','2112982294',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Wilson-Dimitrov family',5,NULL,'Dear Wilson-Dimitrov family',2,NULL,'Wilson-Dimitrov family',NULL,NULL,NULL,0,NULL,'Wilson-Dimitrov family',NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (165,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Smith, Russell','Dr. Russell Smith',NULL,NULL,NULL,'1',NULL,'Both','2357263550',NULL,'Sample Data','Russell','','Smith',4,NULL,NULL,NULL,1,NULL,'Dear Russell',1,NULL,'Dear Russell',1,NULL,'Dr. Russell Smith',NULL,NULL,'1944-01-09',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (166,'Household',NULL,1,0,0,0,0,0,NULL,NULL,'Jameson family','Jameson family',NULL,NULL,NULL,NULL,NULL,'Both','2255649769',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Jameson family',5,NULL,'Dear Jameson family',2,NULL,'Jameson family',NULL,NULL,NULL,0,NULL,'Jameson family',NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (167,'Household',NULL,0,1,0,0,0,0,NULL,NULL,'Díaz family','Díaz family',NULL,NULL,NULL,'1',NULL,'Both','2169249835',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Díaz family',5,NULL,'Dear Díaz family',2,NULL,'Díaz family',NULL,NULL,NULL,0,NULL,'Díaz family',NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (168,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Olsen, Santina','Santina Olsen',NULL,NULL,NULL,NULL,NULL,'Both','3876725059',NULL,'Sample Data','Santina','','Olsen',NULL,NULL,NULL,NULL,1,NULL,'Dear Santina',1,NULL,'Dear Santina',1,NULL,'Santina Olsen',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (169,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Jameson, Rolando','Dr. Rolando Jameson Sr.',NULL,NULL,NULL,'4',NULL,'Both','726163988',NULL,'Sample Data','Rolando','U','Jameson',4,2,NULL,NULL,1,NULL,'Dear Rolando',1,NULL,'Dear Rolando',1,NULL,'Dr. Rolando Jameson Sr.',NULL,2,'2000-06-29',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (170,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Deforest, Daren','Dr. Daren Deforest',NULL,NULL,NULL,NULL,NULL,'Both','3756202377',NULL,'Sample Data','Daren','','Deforest',4,NULL,NULL,NULL,1,NULL,'Dear Daren',1,NULL,'Dear Daren',1,NULL,'Dr. Daren Deforest',NULL,2,'1979-05-20',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (171,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Łąchowski, Laree','Ms. Laree Łąchowski',NULL,NULL,NULL,'2',NULL,'Both','938436888',NULL,'Sample Data','Laree','','Łąchowski',2,NULL,NULL,NULL,1,NULL,'Dear Laree',1,NULL,'Dear Laree',1,NULL,'Ms. Laree Łąchowski',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (172,'Individual',NULL,1,1,0,0,0,0,NULL,NULL,'González, Ashlie','Ashlie González',NULL,NULL,NULL,NULL,NULL,'Both','4074516912',NULL,'Sample Data','Ashlie','Z','González',NULL,NULL,NULL,NULL,1,NULL,'Dear Ashlie',1,NULL,'Dear Ashlie',1,NULL,'Ashlie González',NULL,NULL,'1978-03-31',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (173,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Robertson, Kathlyn','Dr. Kathlyn Robertson',NULL,NULL,NULL,NULL,NULL,'Both','1571361016',NULL,'Sample Data','Kathlyn','N','Robertson',4,NULL,NULL,NULL,1,NULL,'Dear Kathlyn',1,NULL,'Dear Kathlyn',1,NULL,'Dr. Kathlyn Robertson',NULL,NULL,'1934-05-08',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (174,'Individual',NULL,0,1,0,0,1,0,NULL,NULL,'Jensen, Bob','Bob Jensen III',NULL,NULL,NULL,NULL,NULL,'Both','2741288215',NULL,'Sample Data','Bob','F','Jensen',NULL,4,NULL,NULL,1,NULL,'Dear Bob',1,NULL,'Dear Bob',1,NULL,'Bob Jensen III',NULL,2,'1979-01-10',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (175,'Organization',NULL,1,0,0,0,1,0,NULL,NULL,'Green Legal School','Green Legal School',NULL,NULL,NULL,NULL,NULL,'Both','560556539',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Green Legal School',NULL,NULL,NULL,0,NULL,NULL,NULL,'Green Legal School',NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (176,'Organization',NULL,1,0,0,0,0,0,NULL,NULL,'Wyoming Sustainability Initiative','Wyoming Sustainability Initiative',NULL,NULL,NULL,NULL,NULL,'Both','2025702384',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Wyoming Sustainability Initiative',NULL,NULL,NULL,0,NULL,NULL,NULL,'Wyoming Sustainability Initiative',NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (177,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Parker, Alexia','Dr. Alexia Parker',NULL,NULL,NULL,'1',NULL,'Both','1459104008',NULL,'Sample Data','Alexia','','Parker',4,NULL,NULL,NULL,1,NULL,'Dear Alexia',1,NULL,'Dear Alexia',1,NULL,'Dr. Alexia Parker',NULL,1,'1968-05-06',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (178,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Ivanov, Lincoln','Lincoln Ivanov',NULL,NULL,NULL,NULL,NULL,'Both','1295096764',NULL,'Sample Data','Lincoln','L','Ivanov',NULL,NULL,NULL,NULL,1,NULL,'Dear Lincoln',1,NULL,'Dear Lincoln',1,NULL,'Lincoln Ivanov',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (179,'Household',NULL,1,0,0,0,1,0,NULL,NULL,'Zope-Roberts family','Zope-Roberts family',NULL,NULL,NULL,NULL,NULL,'Both','389913516',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Zope-Roberts family',5,NULL,'Dear Zope-Roberts family',2,NULL,'Zope-Roberts family',NULL,NULL,NULL,0,NULL,'Zope-Roberts family',NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (180,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Samuels, Brent','Mr. Brent Samuels Jr.',NULL,NULL,NULL,NULL,NULL,'Both','3250906077',NULL,'Sample Data','Brent','','Samuels',3,1,NULL,NULL,1,NULL,'Dear Brent',1,NULL,'Dear Brent',1,NULL,'Mr. Brent Samuels Jr.',NULL,NULL,'1988-05-01',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (181,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Olsen, Maria','Dr. Maria Olsen Jr.',NULL,NULL,NULL,NULL,NULL,'Both','1487979958',NULL,'Sample Data','Maria','','Olsen',4,1,NULL,NULL,1,NULL,'Dear Maria',1,NULL,'Dear Maria',1,NULL,'Dr. Maria Olsen Jr.',NULL,2,'2000-04-29',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (182,'Individual',NULL,1,1,0,0,0,0,NULL,NULL,'Robertson, Delana','Delana Robertson',NULL,NULL,NULL,'3',NULL,'Both','1905336460',NULL,'Sample Data','Delana','U','Robertson',NULL,NULL,NULL,NULL,1,NULL,'Dear Delana',1,NULL,'Dear Delana',1,NULL,'Delana Robertson',NULL,1,'1948-04-22',0,NULL,NULL,NULL,'United Education Services',NULL,NULL,195,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (183,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Blackwell, Valene','Valene Blackwell',NULL,NULL,NULL,'3',NULL,'Both','3670255254',NULL,'Sample Data','Valene','','Blackwell',NULL,NULL,NULL,NULL,1,NULL,'Dear Valene',1,NULL,'Dear Valene',1,NULL,'Valene Blackwell',NULL,1,'1969-06-14',0,NULL,NULL,NULL,'Greenville Sports Systems',NULL,NULL,160,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (184,'Organization',NULL,0,0,0,0,1,0,NULL,NULL,'Los Indios Poetry Trust','Los Indios Poetry Trust',NULL,NULL,NULL,'5',NULL,'Both','3796732546',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Los Indios Poetry Trust',NULL,NULL,NULL,0,NULL,NULL,47,'Los Indios Poetry Trust',NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (185,'Individual',NULL,1,1,0,0,1,0,NULL,NULL,'Jacobs, Angelika','Dr. Angelika Jacobs',NULL,NULL,NULL,'2',NULL,'Both','2422403627',NULL,'Sample Data','Angelika','F','Jacobs',4,NULL,NULL,NULL,1,NULL,'Dear Angelika',1,NULL,'Dear Angelika',1,NULL,'Dr. Angelika Jacobs',NULL,1,'1982-06-10',0,NULL,NULL,NULL,'Bay Sustainability Partners',NULL,NULL,140,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (186,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Zope, Landon','Landon Zope Jr.',NULL,NULL,NULL,NULL,NULL,'Both','4025242907',NULL,'Sample Data','Landon','K','Zope',NULL,1,NULL,NULL,1,NULL,'Dear Landon',1,NULL,'Dear Landon',1,NULL,'Landon Zope Jr.',NULL,2,'1979-04-22',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (187,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Jameson, Justina','Mrs. Justina Jameson',NULL,NULL,NULL,'1',NULL,'Both','1079764406',NULL,'Sample Data','Justina','V','Jameson',1,NULL,NULL,NULL,1,NULL,'Dear Justina',1,NULL,'Dear Justina',1,NULL,'Mrs. Justina Jameson',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (188,'Organization',NULL,0,0,0,0,1,0,NULL,NULL,'Texas Music Initiative','Texas Music Initiative',NULL,NULL,NULL,'3',NULL,'Both','51665551',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Texas Music Initiative',NULL,NULL,NULL,0,NULL,NULL,159,'Texas Music Initiative',NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (189,'Household',NULL,1,1,0,0,0,0,NULL,NULL,'Cooper-Jones family','Cooper-Jones family',NULL,NULL,NULL,NULL,NULL,'Both','4176305487',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Cooper-Jones family',5,NULL,'Dear Cooper-Jones family',2,NULL,'Cooper-Jones family',NULL,NULL,NULL,0,NULL,'Cooper-Jones family',NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (190,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Prentice, Carylon','Mrs. Carylon Prentice',NULL,NULL,NULL,'4',NULL,'Both','1810903097',NULL,'Sample Data','Carylon','','Prentice',1,NULL,NULL,NULL,1,NULL,'Dear Carylon',1,NULL,'Dear Carylon',1,NULL,'Mrs. Carylon Prentice',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (191,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Jensen, Lashawnda','Lashawnda Jensen',NULL,NULL,NULL,'1',NULL,'Both','4222472250',NULL,'Sample Data','Lashawnda','X','Jensen',NULL,NULL,NULL,NULL,1,NULL,'Dear Lashawnda',1,NULL,'Dear Lashawnda',1,NULL,'Lashawnda Jensen',NULL,1,'2002-03-20',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (192,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Wilson, Margaret','Margaret Wilson',NULL,NULL,NULL,NULL,NULL,'Both','2853804377',NULL,'Sample Data','Margaret','C','Wilson',NULL,NULL,NULL,NULL,1,NULL,'Dear Margaret',1,NULL,'Dear Margaret',1,NULL,'Margaret Wilson',NULL,1,'1955-04-07',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (193,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Cooper, Margaret','Margaret Cooper',NULL,NULL,NULL,NULL,NULL,'Both','897960138',NULL,'Sample Data','Margaret','U','Cooper',NULL,NULL,NULL,NULL,1,NULL,'Dear Margaret',1,NULL,'Dear Margaret',1,NULL,'Margaret Cooper',NULL,NULL,'1986-12-07',0,NULL,NULL,NULL,'Community Music Network',NULL,NULL,196,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (194,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Jameson-Dimitrov, Jed','Mr. Jed Jameson-Dimitrov II',NULL,NULL,NULL,NULL,NULL,'Both','585699978',NULL,'Sample Data','Jed','','Jameson-Dimitrov',3,3,NULL,NULL,1,NULL,'Dear Jed',1,NULL,'Dear Jed',1,NULL,'Mr. Jed Jameson-Dimitrov II',NULL,2,'1998-12-26',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (195,'Organization',NULL,0,1,0,0,0,0,NULL,NULL,'United Education Services','United Education Services',NULL,NULL,NULL,'2',NULL,'Both','2079052352',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'United Education Services',NULL,NULL,NULL,0,NULL,NULL,182,'United Education Services',NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (196,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Community Music Network','Community Music Network',NULL,NULL,NULL,'3',NULL,'Both','1932685524',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Community Music Network',NULL,NULL,NULL,0,NULL,NULL,193,'Community Music Network',NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (197,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Adams, Landon','Landon Adams Jr.',NULL,NULL,NULL,'4',NULL,'Both','1504862823',NULL,'Sample Data','Landon','','Adams',NULL,1,NULL,NULL,1,NULL,'Dear Landon',1,NULL,'Dear Landon',1,NULL,'Landon Adams Jr.',NULL,2,'1984-01-13',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:18'),
- (198,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Prentice, Craig','Craig Prentice Sr.',NULL,NULL,NULL,'3',NULL,'Both','3778069057',NULL,'Sample Data','Craig','','Prentice',NULL,2,NULL,NULL,1,NULL,'Dear Craig',1,NULL,'Dear Craig',1,NULL,'Craig Prentice Sr.',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (199,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'billyjameson17@notmail.co.pl','billyjameson17@notmail.co.pl',NULL,NULL,NULL,'2',NULL,'Both','1658771000',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,'Dear billyjameson17@notmail.co.pl',1,NULL,'Dear billyjameson17@notmail.co.pl',1,NULL,'billyjameson17@notmail.co.pl',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:16','2023-01-25 00:10:17'),
- (200,'Household',NULL,1,0,0,0,0,0,NULL,NULL,'Cooper-Nielsen family','Cooper-Nielsen family',NULL,NULL,NULL,NULL,NULL,'Both','726986696',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Cooper-Nielsen family',5,NULL,'Dear Cooper-Nielsen family',2,NULL,'Cooper-Nielsen family',NULL,NULL,NULL,0,NULL,'Cooper-Nielsen family',NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:17','2023-01-25 00:10:18'),
- (201,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Grant, Bernadette','Bernadette Grant',NULL,NULL,NULL,'3',NULL,'Both','2386715823',NULL,'Sample Data','Bernadette','','Grant',NULL,NULL,NULL,NULL,1,NULL,'Dear Bernadette',1,NULL,'Dear Bernadette',1,NULL,'Bernadette Grant',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:17','2023-01-25 00:10:17'),
- (202,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Lee, Jenny','Jenny Lee',NULL,NULL,NULL,NULL,'en_US','Both','6c3a25837447aee7ea2d84962c119d0f',NULL,NULL,'Jenny',NULL,'Lee',NULL,NULL,NULL,1,1,NULL,'Dear Jenny',1,NULL,'Dear Jenny',1,NULL,'Jenny Lee','Volunteer coordinator',NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-01-25 00:10:19','2023-01-25 00:10:19');
+ (1,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Default Organization','Default Organization',NULL,'Default Organization',NULL,NULL,NULL,'Both',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,'Default Organization',NULL,NULL,NULL,0,NULL,'2023-03-08 06:50:23'),
+ (2,'Individual',NULL,1,0,0,0,1,0,NULL,NULL,'Terry-Cruz, Brzęczysław','Mr. Brzęczysław Terry-Cruz',NULL,NULL,NULL,'1',NULL,'Both','3273943295',NULL,'Sample Data','Brzęczysław','P','Terry-Cruz',3,NULL,NULL,NULL,1,NULL,'Dear Brzęczysław',1,NULL,'Dear Brzęczysław',1,NULL,'Mr. Brzęczysław Terry-Cruz',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (3,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'Roberts family','Roberts family',NULL,NULL,NULL,'5',NULL,'Both','2097305882',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Roberts family',5,NULL,'Dear Roberts family',2,NULL,'Roberts family',NULL,NULL,NULL,0,NULL,'Roberts family',NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (4,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Dimitrov, Merrie','Merrie Dimitrov',NULL,NULL,NULL,NULL,NULL,'Both','779748961',NULL,'Sample Data','Merrie','P','Dimitrov',NULL,NULL,NULL,NULL,1,NULL,'Dear Merrie',1,NULL,'Dear Merrie',1,NULL,'Merrie Dimitrov',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (5,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Cooper, Kacey','Kacey Cooper',NULL,NULL,NULL,'3',NULL,'Both','1088123165',NULL,'Sample Data','Kacey','G','Cooper',NULL,NULL,NULL,NULL,1,NULL,'Dear Kacey',1,NULL,'Dear Kacey',1,NULL,'Kacey Cooper',NULL,1,'1976-07-07',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (6,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Yadav-Adams, Billy','Billy Yadav-Adams',NULL,NULL,NULL,'2',NULL,'Both','1070747652',NULL,'Sample Data','Billy','T','Yadav-Adams',NULL,NULL,NULL,NULL,1,NULL,'Dear Billy',1,NULL,'Dear Billy',1,NULL,'Billy Yadav-Adams',NULL,NULL,'1971-03-11',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (7,'Household',NULL,0,1,0,0,1,0,NULL,NULL,'Blackwell family','Blackwell family',NULL,NULL,NULL,'1',NULL,'Both','3218641510',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Blackwell family',5,NULL,'Dear Blackwell family',2,NULL,'Blackwell family',NULL,NULL,NULL,0,NULL,'Blackwell family',NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (8,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Jones, Merrie','Mrs. Merrie Jones',NULL,NULL,NULL,NULL,NULL,'Both','3002528118',NULL,'Sample Data','Merrie','','Jones',1,NULL,NULL,NULL,1,NULL,'Dear Merrie',1,NULL,'Dear Merrie',1,NULL,'Mrs. Merrie Jones',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (9,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'barkley.rolando@lol.co.pl','barkley.rolando@lol.co.pl',NULL,NULL,NULL,NULL,NULL,'Both','84979875',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,'Dear barkley.rolando@lol.co.pl',1,NULL,'Dear barkley.rolando@lol.co.pl',1,NULL,'barkley.rolando@lol.co.pl',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:19'),
+ (10,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Roberts, Allen','Dr. Allen Roberts Jr.',NULL,NULL,NULL,'3',NULL,'Both','1308913179',NULL,'Sample Data','Allen','','Roberts',4,1,NULL,NULL,1,NULL,'Dear Allen',1,NULL,'Dear Allen',1,NULL,'Dr. Allen Roberts Jr.',NULL,2,'1983-02-03',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (11,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Creative Family Fund','Creative Family Fund',NULL,NULL,NULL,'1',NULL,'Both','3600382231',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Creative Family Fund',NULL,NULL,NULL,0,NULL,NULL,NULL,'Creative Family Fund',NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (12,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Adams, Eleonor','Eleonor Adams',NULL,NULL,NULL,NULL,NULL,'Both','780665455',NULL,'Sample Data','Eleonor','','Adams',NULL,NULL,NULL,NULL,1,NULL,'Dear Eleonor',1,NULL,'Dear Eleonor',1,NULL,'Eleonor Adams',NULL,1,'1960-09-28',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (13,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Montfort Wellness Network','Montfort Wellness Network',NULL,NULL,NULL,'3',NULL,'Both','3915797780',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Montfort Wellness Network',NULL,NULL,NULL,0,NULL,NULL,182,'Montfort Wellness Network',NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (14,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'West Virginia Sustainability School','West Virginia Sustainability School',NULL,NULL,NULL,'5',NULL,'Both','1502497128',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'West Virginia Sustainability School',NULL,NULL,NULL,0,NULL,NULL,56,'West Virginia Sustainability School',NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (15,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'nielsenr@airmail.biz','nielsenr@airmail.biz',NULL,NULL,NULL,NULL,NULL,'Both','990567824',NULL,'Sample Data',NULL,NULL,NULL,NULL,4,NULL,NULL,1,NULL,'Dear nielsenr@airmail.biz',1,NULL,'Dear nielsenr@airmail.biz',1,NULL,'nielsenr@airmail.biz',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (16,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'Jacobs family','Jacobs family',NULL,NULL,NULL,NULL,NULL,'Both','1498986649',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Jacobs family',5,NULL,'Dear Jacobs family',2,NULL,'Jacobs family',NULL,NULL,NULL,0,NULL,'Jacobs family',NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (17,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Jacobs, Maria','Maria Jacobs Jr.',NULL,NULL,NULL,NULL,NULL,'Both','2004248227',NULL,'Sample Data','Maria','U','Jacobs',NULL,1,NULL,NULL,1,NULL,'Dear Maria',1,NULL,'Dear Maria',1,NULL,'Maria Jacobs Jr.',NULL,2,'2011-01-03',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (18,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Jameson, Teresa','Teresa Jameson',NULL,NULL,NULL,'1',NULL,'Both','1467096492',NULL,'Sample Data','Teresa','Z','Jameson',NULL,NULL,NULL,NULL,1,NULL,'Dear Teresa',1,NULL,'Dear Teresa',1,NULL,'Teresa Jameson',NULL,1,'2012-02-06',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (19,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Barkley, Carylon','Carylon Barkley',NULL,NULL,NULL,NULL,NULL,'Both','3982709827',NULL,'Sample Data','Carylon','','Barkley',NULL,NULL,NULL,NULL,1,NULL,'Dear Carylon',1,NULL,'Dear Carylon',1,NULL,'Carylon Barkley',NULL,NULL,'2006-06-24',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (20,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'Jameson family','Jameson family',NULL,NULL,NULL,'1',NULL,'Both','2255649769',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Jameson family',5,NULL,'Dear Jameson family',2,NULL,'Jameson family',NULL,NULL,NULL,0,NULL,'Jameson family',NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (21,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Bachman, Jina','Dr. Jina Bachman',NULL,NULL,NULL,NULL,NULL,'Both','3279663758',NULL,'Sample Data','Jina','','Bachman',4,NULL,NULL,NULL,1,NULL,'Dear Jina',1,NULL,'Dear Jina',1,NULL,'Dr. Jina Bachman',NULL,NULL,'1940-03-05',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (22,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Samuels, Margaret','Margaret Samuels',NULL,NULL,NULL,'2',NULL,'Both','1892625615',NULL,'Sample Data','Margaret','','Samuels',NULL,NULL,NULL,NULL,1,NULL,'Dear Margaret',1,NULL,'Dear Margaret',1,NULL,'Margaret Samuels',NULL,1,'1939-12-11',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (23,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Cruz-McReynolds, Junko','Mrs. Junko Cruz-McReynolds',NULL,NULL,NULL,NULL,NULL,'Both','646131363',NULL,'Sample Data','Junko','U','Cruz-McReynolds',1,NULL,NULL,NULL,1,NULL,'Dear Junko',1,NULL,'Dear Junko',1,NULL,'Mrs. Junko Cruz-McReynolds',NULL,1,'1966-02-12',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (24,'Organization',NULL,0,0,0,0,1,0,NULL,NULL,'Martin Luther King Development Partners','Martin Luther King Development Partners',NULL,NULL,NULL,NULL,NULL,'Both','3406904272',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Martin Luther King Development Partners',NULL,NULL,NULL,0,NULL,NULL,171,'Martin Luther King Development Partners',NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (25,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Blackwell, Maxwell','Maxwell Blackwell Jr.',NULL,NULL,NULL,NULL,NULL,'Both','1485702627',NULL,'Sample Data','Maxwell','','Blackwell',NULL,1,NULL,NULL,1,NULL,'Dear Maxwell',1,NULL,'Dear Maxwell',1,NULL,'Maxwell Blackwell Jr.',NULL,2,'1987-12-03',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (26,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Deforest, Truman','Dr. Truman Deforest Jr.',NULL,NULL,NULL,'1',NULL,'Both','3698975048',NULL,'Sample Data','Truman','','Deforest',4,1,NULL,NULL,1,NULL,'Dear Truman',1,NULL,'Dear Truman',1,NULL,'Dr. Truman Deforest Jr.',NULL,NULL,'1955-08-25',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (27,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'Adams family','Adams family',NULL,NULL,NULL,NULL,NULL,'Both','1515323104',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Adams family',5,NULL,'Dear Adams family',2,NULL,'Adams family',NULL,NULL,NULL,0,NULL,'Adams family',NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (28,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Maple Advocacy Fund','Maple Advocacy Fund',NULL,NULL,NULL,'5',NULL,'Both','3765794386',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Maple Advocacy Fund',NULL,NULL,NULL,0,NULL,NULL,NULL,'Maple Advocacy Fund',NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (29,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'ashleyr31@testmail.com','ashleyr31@testmail.com',NULL,NULL,NULL,'4',NULL,'Both','3876612091',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,'Dear ashleyr31@testmail.com',1,NULL,'Dear ashleyr31@testmail.com',1,NULL,'ashleyr31@testmail.com',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:19'),
+ (30,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Cruz, Norris','Norris Cruz Jr.',NULL,NULL,NULL,NULL,NULL,'Both','1269804686',NULL,'Sample Data','Norris','','Cruz',NULL,1,NULL,NULL,1,NULL,'Dear Norris',1,NULL,'Dear Norris',1,NULL,'Norris Cruz Jr.',NULL,2,'1935-07-07',1,'2022-12-03',NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (31,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Blackwell, Shad','Shad Blackwell Sr.',NULL,NULL,NULL,'5',NULL,'Both','1023646981',NULL,'Sample Data','Shad','L','Blackwell',NULL,2,NULL,NULL,1,NULL,'Dear Shad',1,NULL,'Dear Shad',1,NULL,'Shad Blackwell Sr.',NULL,2,'1990-06-30',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:19'),
+ (32,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Díaz, Merrie','Ms. Merrie Díaz',NULL,NULL,NULL,'5',NULL,'Both','2834257935',NULL,'Sample Data','Merrie','','Díaz',2,NULL,NULL,NULL,1,NULL,'Dear Merrie',1,NULL,'Dear Merrie',1,NULL,'Ms. Merrie Díaz',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:19'),
+ (33,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'Jacobs family','Jacobs family',NULL,NULL,NULL,NULL,NULL,'Both','1498986649',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Jacobs family',5,NULL,'Dear Jacobs family',2,NULL,'Jacobs family',NULL,NULL,NULL,0,NULL,'Jacobs family',NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (34,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Łąchowski, Elbert','Mr. Elbert Łąchowski II',NULL,NULL,NULL,NULL,NULL,'Both','473197543',NULL,'Sample Data','Elbert','D','Łąchowski',3,3,NULL,NULL,1,NULL,'Dear Elbert',1,NULL,'Dear Elbert',1,NULL,'Mr. Elbert Łąchowski II',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (35,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'kq.terry@fakemail.org','kq.terry@fakemail.org',NULL,NULL,NULL,NULL,NULL,'Both','2681719016',NULL,'Sample Data',NULL,NULL,NULL,4,NULL,NULL,NULL,1,NULL,'Dear kq.terry@fakemail.org',1,NULL,'Dear kq.terry@fakemail.org',1,NULL,'kq.terry@fakemail.org',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (36,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Müller-Jacobs, Herminia','Herminia Müller-Jacobs',NULL,NULL,NULL,'3',NULL,'Both','1124446903',NULL,'Sample Data','Herminia','Y','Müller-Jacobs',NULL,NULL,NULL,NULL,1,NULL,'Dear Herminia',1,NULL,'Dear Herminia',1,NULL,'Herminia Müller-Jacobs',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (37,'Individual',NULL,1,1,0,0,0,0,NULL,NULL,'Nielsen, Santina','Santina Nielsen',NULL,NULL,NULL,NULL,NULL,'Both','4294042447',NULL,'Sample Data','Santina','','Nielsen',NULL,NULL,NULL,NULL,1,NULL,'Dear Santina',1,NULL,'Dear Santina',1,NULL,'Santina Nielsen',NULL,NULL,'2021-10-13',0,NULL,NULL,NULL,'Rural Music Center',NULL,NULL,151,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (38,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Samson, Winford','Mr. Winford Samson',NULL,NULL,NULL,NULL,NULL,'Both','935630203',NULL,'Sample Data','Winford','B','Samson',3,NULL,NULL,NULL,1,NULL,'Dear Winford',1,NULL,'Dear Winford',1,NULL,'Mr. Winford Samson',NULL,2,'1934-04-21',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (39,'Organization',NULL,1,0,0,0,0,0,NULL,NULL,'United Empowerment Center','United Empowerment Center',NULL,NULL,NULL,'1',NULL,'Both','3877194922',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'United Empowerment Center',NULL,NULL,NULL,0,NULL,NULL,NULL,'United Empowerment Center',NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (40,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Reynolds, Rebekah','Dr. Rebekah Reynolds',NULL,NULL,NULL,'3',NULL,'Both','1071377932',NULL,'Sample Data','Rebekah','I','Reynolds',4,NULL,NULL,NULL,1,NULL,'Dear Rebekah',1,NULL,'Dear Rebekah',1,NULL,'Dr. Rebekah Reynolds',NULL,1,'1976-10-18',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:19'),
+ (41,'Household',NULL,0,0,0,0,1,0,NULL,NULL,'Bachman family','Bachman family',NULL,NULL,NULL,'1',NULL,'Both','1714131215',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Bachman family',5,NULL,'Dear Bachman family',2,NULL,'Bachman family',NULL,NULL,NULL,0,NULL,'Bachman family',NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (42,'Individual',NULL,0,1,0,0,1,0,NULL,NULL,'Barkley, Felisha','Ms. Felisha Barkley',NULL,NULL,NULL,'4',NULL,'Both','1669802133',NULL,'Sample Data','Felisha','','Barkley',2,NULL,NULL,NULL,1,NULL,'Dear Felisha',1,NULL,'Dear Felisha',1,NULL,'Ms. Felisha Barkley',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (43,'Household',NULL,0,0,0,0,1,0,NULL,NULL,'Nielsen family','Nielsen family',NULL,NULL,NULL,NULL,NULL,'Both','766698874',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Nielsen family',5,NULL,'Dear Nielsen family',2,NULL,'Nielsen family',NULL,NULL,NULL,0,NULL,'Nielsen family',NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (44,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'blackwell.miguel70@infomail.biz','blackwell.miguel70@infomail.biz',NULL,NULL,NULL,NULL,NULL,'Both','1215296997',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,'Dear blackwell.miguel70@infomail.biz',1,NULL,'Dear blackwell.miguel70@infomail.biz',1,NULL,'blackwell.miguel70@infomail.biz',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (45,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Terry, Troy','Mr. Troy Terry Jr.',NULL,NULL,NULL,NULL,NULL,'Both','3036104778',NULL,'Sample Data','Troy','','Terry',3,1,NULL,NULL,1,NULL,'Dear Troy',1,NULL,'Dear Troy',1,NULL,'Mr. Troy Terry Jr.',NULL,NULL,'1971-03-27',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (46,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Jacobs, Josefa','Josefa Jacobs',NULL,NULL,NULL,NULL,NULL,'Both','4224564328',NULL,'Sample Data','Josefa','','Jacobs',NULL,NULL,NULL,NULL,1,NULL,'Dear Josefa',1,NULL,'Dear Josefa',1,NULL,'Josefa Jacobs',NULL,1,'1980-12-01',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (47,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Samson, Russell','Dr. Russell Samson',NULL,NULL,NULL,'5',NULL,'Both','961724057',NULL,'Sample Data','Russell','','Samson',4,NULL,NULL,NULL,1,NULL,'Dear Russell',1,NULL,'Dear Russell',1,NULL,'Dr. Russell Samson',NULL,2,'1979-05-18',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (48,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'McReynolds, Herminia','Dr. Herminia McReynolds',NULL,NULL,NULL,'3',NULL,'Both','2752519462',NULL,'Sample Data','Herminia','','McReynolds',4,NULL,NULL,NULL,1,NULL,'Dear Herminia',1,NULL,'Dear Herminia',1,NULL,'Dr. Herminia McReynolds',NULL,1,'1950-08-14',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (49,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Cooper, Betty','Betty Cooper',NULL,NULL,NULL,NULL,NULL,'Both','2283344606',NULL,'Sample Data','Betty','','Cooper',NULL,NULL,NULL,NULL,1,NULL,'Dear Betty',1,NULL,'Dear Betty',1,NULL,'Betty Cooper',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (50,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Nielsen, Margaret','Margaret Nielsen',NULL,NULL,NULL,NULL,NULL,'Both','3984018462',NULL,'Sample Data','Margaret','G','Nielsen',NULL,NULL,NULL,NULL,1,NULL,'Dear Margaret',1,NULL,'Dear Margaret',1,NULL,'Margaret Nielsen',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (51,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Łąchowski, Omar','Mr. Omar Łąchowski Sr.',NULL,NULL,NULL,'4',NULL,'Both','3249212023',NULL,'Sample Data','Omar','Y','Łąchowski',3,2,NULL,NULL,1,NULL,'Dear Omar',1,NULL,'Dear Omar',1,NULL,'Mr. Omar Łąchowski Sr.',NULL,2,'1939-11-22',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (52,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Cooper, Maxwell','Mr. Maxwell Cooper',NULL,NULL,NULL,NULL,NULL,'Both','2402754787',NULL,'Sample Data','Maxwell','','Cooper',3,NULL,NULL,NULL,1,NULL,'Dear Maxwell',1,NULL,'Dear Maxwell',1,NULL,'Mr. Maxwell Cooper',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (53,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'McReynolds, Truman','Dr. Truman McReynolds III',NULL,NULL,NULL,NULL,NULL,'Both','779089403',NULL,'Sample Data','Truman','I','McReynolds',4,4,NULL,NULL,1,NULL,'Dear Truman',1,NULL,'Dear Truman',1,NULL,'Dr. Truman McReynolds III',NULL,2,'1958-06-21',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (54,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Nielsen-Jensen, Delana','Dr. Delana Nielsen-Jensen',NULL,NULL,NULL,'5',NULL,'Both','4001184097',NULL,'Sample Data','Delana','T','Nielsen-Jensen',4,NULL,NULL,NULL,1,NULL,'Dear Delana',1,NULL,'Dear Delana',1,NULL,'Dr. Delana Nielsen-Jensen',NULL,1,'1991-01-02',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (55,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'Terry-Cruz family','Terry-Cruz family',NULL,NULL,NULL,'5',NULL,'Both','1290228264',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Terry-Cruz family',5,NULL,'Dear Terry-Cruz family',2,NULL,'Terry-Cruz family',NULL,NULL,NULL,0,NULL,'Terry-Cruz family',NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (56,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Adams, Scarlet','Mrs. Scarlet Adams',NULL,NULL,NULL,'5',NULL,'Both','2620107037',NULL,'Sample Data','Scarlet','','Adams',1,NULL,NULL,NULL,1,NULL,'Dear Scarlet',1,NULL,'Dear Scarlet',1,NULL,'Mrs. Scarlet Adams',NULL,NULL,'1995-04-07',0,NULL,NULL,NULL,'West Virginia Sustainability School',NULL,NULL,14,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (57,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Deforest, Elina','Elina Deforest',NULL,NULL,NULL,NULL,NULL,'Both','1943101487',NULL,'Sample Data','Elina','','Deforest',NULL,NULL,NULL,NULL,1,NULL,'Dear Elina',1,NULL,'Dear Elina',1,NULL,'Elina Deforest',NULL,1,'1988-08-20',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (58,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'nd.jacobs@fakemail.com','nd.jacobs@fakemail.com',NULL,NULL,NULL,NULL,NULL,'Both','3166415731',NULL,'Sample Data',NULL,NULL,NULL,NULL,3,NULL,NULL,1,NULL,'Dear nd.jacobs@fakemail.com',1,NULL,'Dear nd.jacobs@fakemail.com',1,NULL,'nd.jacobs@fakemail.com',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (59,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'McReynolds, Tanya','Mrs. Tanya McReynolds',NULL,NULL,NULL,NULL,NULL,'Both','2833475968',NULL,'Sample Data','Tanya','H','McReynolds',1,NULL,NULL,NULL,1,NULL,'Dear Tanya',1,NULL,'Dear Tanya',1,NULL,'Mrs. Tanya McReynolds',NULL,1,'1983-09-06',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (60,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'daz.t.rosario@notmail.co.pl','daz.t.rosario@notmail.co.pl',NULL,NULL,NULL,'5',NULL,'Both','1711047332',NULL,'Sample Data',NULL,NULL,NULL,4,NULL,NULL,NULL,1,NULL,'Dear daz.t.rosario@notmail.co.pl',1,NULL,'Dear daz.t.rosario@notmail.co.pl',1,NULL,'daz.t.rosario@notmail.co.pl',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:19'),
+ (61,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Olsen, Bryon','Dr. Bryon Olsen',NULL,NULL,NULL,'2',NULL,'Both','1392312288',NULL,'Sample Data','Bryon','K','Olsen',4,NULL,NULL,NULL,1,NULL,'Dear Bryon',1,NULL,'Dear Bryon',1,NULL,'Dr. Bryon Olsen',NULL,2,'1973-05-14',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (62,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Terry, Andrew','Andrew Terry III',NULL,NULL,NULL,'2',NULL,'Both','3371971091',NULL,'Sample Data','Andrew','','Terry',NULL,4,NULL,NULL,1,NULL,'Dear Andrew',1,NULL,'Dear Andrew',1,NULL,'Andrew Terry III',NULL,2,'1957-07-24',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (63,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Zope-Terry, Andrew','Andrew Zope-Terry',NULL,NULL,NULL,'3',NULL,'Both','1193178626',NULL,'Sample Data','Andrew','W','Zope-Terry',NULL,NULL,NULL,NULL,1,NULL,'Dear Andrew',1,NULL,'Dear Andrew',1,NULL,'Andrew Zope-Terry',NULL,NULL,'2014-09-16',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (64,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Deforest, Santina','Santina Deforest',NULL,NULL,NULL,NULL,NULL,'Both','3837505413',NULL,'Sample Data','Santina','','Deforest',NULL,NULL,NULL,NULL,1,NULL,'Dear Santina',1,NULL,'Dear Santina',1,NULL,'Santina Deforest',NULL,1,'1961-03-01',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (65,'Household',NULL,0,0,0,0,1,0,NULL,NULL,'Barkley family','Barkley family',NULL,NULL,NULL,'1',NULL,'Both','2888062109',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Barkley family',5,NULL,'Dear Barkley family',2,NULL,'Barkley family',NULL,NULL,NULL,0,NULL,'Barkley family',NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (66,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Wagner, Jackson','Mr. Jackson Wagner III',NULL,NULL,NULL,'2',NULL,'Both','541654999',NULL,'Sample Data','Jackson','','Wagner',3,4,NULL,NULL,1,NULL,'Dear Jackson',1,NULL,'Dear Jackson',1,NULL,'Mr. Jackson Wagner III',NULL,NULL,'1990-11-24',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (67,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Zope, Erik','Dr. Erik Zope',NULL,NULL,NULL,NULL,NULL,'Both','2683786262',NULL,'Sample Data','Erik','T','Zope',4,NULL,NULL,NULL,1,NULL,'Dear Erik',1,NULL,'Dear Erik',1,NULL,'Dr. Erik Zope',NULL,2,'1939-11-18',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (68,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Reynolds, Rebekah','Ms. Rebekah Reynolds',NULL,NULL,NULL,NULL,NULL,'Both','1071377932',NULL,'Sample Data','Rebekah','E','Reynolds',2,NULL,NULL,NULL,1,NULL,'Dear Rebekah',1,NULL,'Dear Rebekah',1,NULL,'Ms. Rebekah Reynolds',NULL,1,'1961-11-29',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (69,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Bachman, Claudio','Mr. Claudio Bachman',NULL,NULL,NULL,'3',NULL,'Both','3143419767',NULL,'Sample Data','Claudio','Y','Bachman',3,NULL,NULL,NULL,1,NULL,'Dear Claudio',1,NULL,'Dear Claudio',1,NULL,'Mr. Claudio Bachman',NULL,NULL,'1970-06-26',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:19'),
+ (70,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Miami Sustainability Fund','Miami Sustainability Fund',NULL,NULL,NULL,'1',NULL,'Both','3465181906',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Miami Sustainability Fund',NULL,NULL,NULL,0,NULL,NULL,169,'Miami Sustainability Fund',NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (71,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Adams, Justina','Ms. Justina Adams',NULL,NULL,NULL,NULL,NULL,'Both','206304627',NULL,'Sample Data','Justina','','Adams',2,NULL,NULL,NULL,1,NULL,'Dear Justina',1,NULL,'Dear Justina',1,NULL,'Ms. Justina Adams',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (72,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'jensen.u.brigette93@fakemail.net','jensen.u.brigette93@fakemail.net',NULL,NULL,NULL,'5',NULL,'Both','689728229',NULL,'Sample Data',NULL,NULL,NULL,4,NULL,NULL,NULL,1,NULL,'Dear jensen.u.brigette93@fakemail.net',1,NULL,'Dear jensen.u.brigette93@fakemail.net',1,NULL,'jensen.u.brigette93@fakemail.net',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (73,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Prentice, Kandace','Dr. Kandace Prentice',NULL,NULL,NULL,'4',NULL,'Both','1824755272',NULL,'Sample Data','Kandace','','Prentice',4,NULL,NULL,NULL,1,NULL,'Dear Kandace',1,NULL,'Dear Kandace',1,NULL,'Dr. Kandace Prentice',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:19'),
+ (74,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Łąchowski, Rosario','Rosario Łąchowski',NULL,NULL,NULL,NULL,NULL,'Both','941507939',NULL,'Sample Data','Rosario','','Łąchowski',NULL,NULL,NULL,NULL,1,NULL,'Dear Rosario',1,NULL,'Dear Rosario',1,NULL,'Rosario Łąchowski',NULL,2,'1967-03-03',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (75,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Smith, Rodrigo','Rodrigo Smith II',NULL,NULL,NULL,'4',NULL,'Both','928415905',NULL,'Sample Data','Rodrigo','M','Smith',NULL,3,NULL,NULL,1,NULL,'Dear Rodrigo',1,NULL,'Dear Rodrigo',1,NULL,'Rodrigo Smith II',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:19'),
+ (76,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Terry, Jerome','Jerome Terry',NULL,NULL,NULL,'4',NULL,'Both','2399613153',NULL,'Sample Data','Jerome','P','Terry',NULL,NULL,NULL,NULL,1,NULL,'Dear Jerome',1,NULL,'Dear Jerome',1,NULL,'Jerome Terry',NULL,2,'1992-06-22',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:19'),
+ (77,'Individual',NULL,1,0,0,0,1,0,NULL,NULL,'maxwelllee5@spamalot.info','maxwelllee5@spamalot.info',NULL,NULL,NULL,NULL,NULL,'Both','2052753380',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,'Dear maxwelllee5@spamalot.info',1,NULL,'Dear maxwelllee5@spamalot.info',1,NULL,'maxwelllee5@spamalot.info',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (78,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Wagner, Sonny','Dr. Sonny Wagner Jr.',NULL,NULL,NULL,NULL,NULL,'Both','93577145',NULL,'Sample Data','Sonny','A','Wagner',4,1,NULL,NULL,1,NULL,'Dear Sonny',1,NULL,'Dear Sonny',1,NULL,'Dr. Sonny Wagner Jr.',NULL,2,'1981-11-11',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (79,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Díaz, Teddy','Mr. Teddy Díaz III',NULL,NULL,NULL,'4',NULL,'Both','4086932844',NULL,'Sample Data','Teddy','H','Díaz',3,4,NULL,NULL,1,NULL,'Dear Teddy',1,NULL,'Dear Teddy',1,NULL,'Mr. Teddy Díaz III',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:19'),
+ (80,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Adams, Jay','Jay Adams Sr.',NULL,NULL,NULL,NULL,NULL,'Both','1692061820',NULL,'Sample Data','Jay','Z','Adams',NULL,2,NULL,NULL,1,NULL,'Dear Jay',1,NULL,'Dear Jay',1,NULL,'Jay Adams Sr.',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (81,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Jacobs, Heidi','Mrs. Heidi Jacobs',NULL,NULL,NULL,'2',NULL,'Both','2616378474',NULL,'Sample Data','Heidi','','Jacobs',1,NULL,NULL,NULL,1,NULL,'Dear Heidi',1,NULL,'Dear Heidi',1,NULL,'Mrs. Heidi Jacobs',NULL,1,'1985-10-28',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (82,'Organization',NULL,1,0,0,0,1,0,NULL,NULL,'Niles Health Services','Niles Health Services',NULL,NULL,NULL,NULL,NULL,'Both','194681769',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Niles Health Services',NULL,NULL,NULL,0,NULL,NULL,174,'Niles Health Services',NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (83,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Cooper, Barry','Dr. Barry Cooper',NULL,NULL,NULL,'5',NULL,'Both','1437359805',NULL,'Sample Data','Barry','','Cooper',4,NULL,NULL,NULL,1,NULL,'Dear Barry',1,NULL,'Dear Barry',1,NULL,'Dr. Barry Cooper',NULL,2,'1996-07-07',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (84,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Wagner-Cooper, Betty','Betty Wagner-Cooper',NULL,NULL,NULL,NULL,NULL,'Both','2748589718',NULL,'Sample Data','Betty','J','Wagner-Cooper',NULL,NULL,NULL,NULL,1,NULL,'Dear Betty',1,NULL,'Dear Betty',1,NULL,'Betty Wagner-Cooper',NULL,1,'1983-05-04',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (85,'Household',NULL,0,1,0,0,1,0,NULL,NULL,'Cooper family','Cooper family',NULL,NULL,NULL,NULL,NULL,'Both','1133003930',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Cooper family',5,NULL,'Dear Cooper family',2,NULL,'Cooper family',NULL,NULL,NULL,0,NULL,'Cooper family',NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (86,'Individual',NULL,1,1,0,0,0,0,NULL,NULL,'irisj60@notmail.org','irisj60@notmail.org',NULL,NULL,NULL,NULL,NULL,'Both','1360491829',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,'Dear irisj60@notmail.org',1,NULL,'Dear irisj60@notmail.org',1,NULL,'irisj60@notmail.org',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:19'),
+ (87,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Wattson, Alexia','Alexia Wattson',NULL,NULL,NULL,'1',NULL,'Both','2082974153',NULL,'Sample Data','Alexia','B','Wattson',NULL,NULL,NULL,NULL,1,NULL,'Dear Alexia',1,NULL,'Dear Alexia',1,NULL,'Alexia Wattson',NULL,1,'1988-07-22',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (88,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Díaz, Maxwell','Dr. Maxwell Díaz',NULL,NULL,NULL,NULL,NULL,'Both','943118495',NULL,'Sample Data','Maxwell','','Díaz',4,NULL,NULL,NULL,1,NULL,'Dear Maxwell',1,NULL,'Dear Maxwell',1,NULL,'Dr. Maxwell Díaz',NULL,NULL,'1982-02-19',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (89,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Adams, Maxwell','Maxwell Adams',NULL,NULL,NULL,'3',NULL,'Both','1901327060',NULL,'Sample Data','Maxwell','','Adams',NULL,NULL,NULL,NULL,1,NULL,'Dear Maxwell',1,NULL,'Dear Maxwell',1,NULL,'Maxwell Adams',NULL,NULL,'2001-06-13',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (90,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Roberts, Craig','Mr. Craig Roberts II',NULL,NULL,NULL,NULL,NULL,'Both','1504934188',NULL,'Sample Data','Craig','D','Roberts',3,3,NULL,NULL,1,NULL,'Dear Craig',1,NULL,'Dear Craig',1,NULL,'Mr. Craig Roberts II',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (91,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Blackwell, Teddy','Mr. Teddy Blackwell',NULL,NULL,NULL,NULL,NULL,'Both','3440187169',NULL,'Sample Data','Teddy','','Blackwell',3,NULL,NULL,NULL,1,NULL,'Dear Teddy',1,NULL,'Dear Teddy',1,NULL,'Mr. Teddy Blackwell',NULL,NULL,'1980-10-17',0,NULL,NULL,NULL,'Rural Literacy Network',NULL,NULL,112,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (92,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Wattson, Josefa','Josefa Wattson',NULL,NULL,NULL,NULL,NULL,'Both','3075737461',NULL,'Sample Data','Josefa','','Wattson',NULL,NULL,NULL,NULL,1,NULL,'Dear Josefa',1,NULL,'Dear Josefa',1,NULL,'Josefa Wattson',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (93,'Household',NULL,1,0,0,0,0,0,NULL,NULL,'Olsen-Müller family','Olsen-Müller family',NULL,NULL,NULL,NULL,NULL,'Both','2447197225',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Olsen-Müller family',5,NULL,'Dear Olsen-Müller family',2,NULL,'Olsen-Müller family',NULL,NULL,NULL,0,NULL,'Olsen-Müller family',NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (94,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'shado@spamalot.co.pl','shado@spamalot.co.pl',NULL,NULL,NULL,'2',NULL,'Both','821915140',NULL,'Sample Data',NULL,NULL,NULL,3,3,NULL,NULL,1,NULL,'Dear shado@spamalot.co.pl',1,NULL,'Dear shado@spamalot.co.pl',1,NULL,'shado@spamalot.co.pl',NULL,NULL,NULL,0,NULL,NULL,NULL,'Friends Wellness Collective',NULL,NULL,183,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (95,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Bachman, Valene','Dr. Valene Bachman',NULL,NULL,NULL,'1',NULL,'Both','4000615529',NULL,'Sample Data','Valene','','Bachman',4,NULL,NULL,NULL,1,NULL,'Dear Valene',1,NULL,'Dear Valene',1,NULL,'Dr. Valene Bachman',NULL,NULL,'1961-05-23',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (96,'Individual',NULL,1,1,0,0,0,0,NULL,NULL,'Roberts, Eleonor','Mrs. Eleonor Roberts',NULL,NULL,NULL,NULL,NULL,'Both','2288589376',NULL,'Sample Data','Eleonor','Z','Roberts',1,NULL,NULL,NULL,1,NULL,'Dear Eleonor',1,NULL,'Dear Eleonor',1,NULL,'Mrs. Eleonor Roberts',NULL,1,'1972-08-05',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (97,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Roberts, Rolando','Rolando Roberts III',NULL,NULL,NULL,NULL,NULL,'Both','3250154238',NULL,'Sample Data','Rolando','C','Roberts',NULL,4,NULL,NULL,1,NULL,'Dear Rolando',1,NULL,'Dear Rolando',1,NULL,'Rolando Roberts III',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:19'),
+ (98,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Parker, Scarlet','Ms. Scarlet Parker',NULL,NULL,NULL,'4',NULL,'Both','1919571146',NULL,'Sample Data','Scarlet','S','Parker',2,NULL,NULL,NULL,1,NULL,'Dear Scarlet',1,NULL,'Dear Scarlet',1,NULL,'Ms. Scarlet Parker',NULL,1,'1994-11-21',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:19'),
+ (99,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'Wattson family','Wattson family',NULL,NULL,NULL,'4',NULL,'Both','2851339192',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Wattson family',5,NULL,'Dear Wattson family',2,NULL,'Wattson family',NULL,NULL,NULL,0,NULL,'Wattson family',NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (100,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'Zope-Terry family','Zope-Terry family',NULL,NULL,NULL,'1',NULL,'Both','2795437715',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Zope-Terry family',5,NULL,'Dear Zope-Terry family',2,NULL,'Zope-Terry family',NULL,NULL,NULL,0,NULL,'Zope-Terry family',NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (101,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Wilson, Rosario','Mr. Rosario Wilson II',NULL,NULL,NULL,'3',NULL,'Both','4172001962',NULL,'Sample Data','Rosario','M','Wilson',3,3,NULL,NULL,1,NULL,'Dear Rosario',1,NULL,'Dear Rosario',1,NULL,'Mr. Rosario Wilson II',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:19'),
+ (102,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Main Arts Initiative','Main Arts Initiative',NULL,NULL,NULL,NULL,NULL,'Both','2430766062',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Main Arts Initiative',NULL,NULL,NULL,0,NULL,NULL,135,'Main Arts Initiative',NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (103,'Individual',NULL,1,0,0,0,1,0,NULL,NULL,'hl.jacobs@testing.co.nz','hl.jacobs@testing.co.nz',NULL,NULL,NULL,NULL,NULL,'Both','3528219552',NULL,'Sample Data',NULL,NULL,NULL,2,NULL,NULL,NULL,1,NULL,'Dear hl.jacobs@testing.co.nz',1,NULL,'Dear hl.jacobs@testing.co.nz',1,NULL,'hl.jacobs@testing.co.nz',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (104,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Samson, Sherman','Dr. Sherman Samson III',NULL,NULL,NULL,NULL,NULL,'Both','583200758',NULL,'Sample Data','Sherman','M','Samson',4,4,NULL,NULL,1,NULL,'Dear Sherman',1,NULL,'Dear Sherman',1,NULL,'Dr. Sherman Samson III',NULL,2,'1934-03-12',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (105,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Jacobs, Teddy','Teddy Jacobs Sr.',NULL,NULL,NULL,'4',NULL,'Both','730676702',NULL,'Sample Data','Teddy','V','Jacobs',NULL,2,NULL,NULL,1,NULL,'Dear Teddy',1,NULL,'Dear Teddy',1,NULL,'Teddy Jacobs Sr.',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (106,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Wattson, Elina','Mrs. Elina Wattson',NULL,NULL,NULL,NULL,NULL,'Both','452291784',NULL,'Sample Data','Elina','Q','Wattson',1,NULL,NULL,NULL,1,NULL,'Dear Elina',1,NULL,'Dear Elina',1,NULL,'Mrs. Elina Wattson',NULL,1,'1954-04-24',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (107,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'McReynolds, Lou','Lou McReynolds',NULL,NULL,NULL,NULL,NULL,'Both','1805936303',NULL,'Sample Data','Lou','','McReynolds',NULL,NULL,NULL,NULL,1,NULL,'Dear Lou',1,NULL,'Dear Lou',1,NULL,'Lou McReynolds',NULL,NULL,'1995-02-06',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (108,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Jensen, Eleonor','Mrs. Eleonor Jensen',NULL,NULL,NULL,'1',NULL,'Both','3811801023',NULL,'Sample Data','Eleonor','Z','Jensen',1,NULL,NULL,NULL,1,NULL,'Dear Eleonor',1,NULL,'Dear Eleonor',1,NULL,'Mrs. Eleonor Jensen',NULL,NULL,'1984-04-06',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (109,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Olsen-Jones, Junko','Ms. Junko Olsen-Jones',NULL,NULL,NULL,NULL,NULL,'Both','1127488664',NULL,'Sample Data','Junko','','Olsen-Jones',2,NULL,NULL,NULL,1,NULL,'Dear Junko',1,NULL,'Dear Junko',1,NULL,'Ms. Junko Olsen-Jones',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (110,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Adams, Daren','Daren Adams',NULL,NULL,NULL,NULL,NULL,'Both','1164251190',NULL,'Sample Data','Daren','H','Adams',NULL,NULL,NULL,NULL,1,NULL,'Dear Daren',1,NULL,'Dear Daren',1,NULL,'Daren Adams',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (111,'Organization',NULL,0,0,0,0,1,0,NULL,NULL,'Pennsylvania Food Association','Pennsylvania Food Association',NULL,NULL,NULL,NULL,NULL,'Both','3292837796',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Pennsylvania Food Association',NULL,NULL,NULL,0,NULL,NULL,NULL,'Pennsylvania Food Association',NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (112,'Organization',NULL,1,1,0,0,0,0,NULL,NULL,'Rural Literacy Network','Rural Literacy Network',NULL,NULL,NULL,NULL,NULL,'Both','2232083901',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Rural Literacy Network',NULL,NULL,NULL,0,NULL,NULL,91,'Rural Literacy Network',NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (113,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Bachman, Sherman','Sherman Bachman',NULL,NULL,NULL,'4',NULL,'Both','2672494279',NULL,'Sample Data','Sherman','N','Bachman',NULL,NULL,NULL,NULL,1,NULL,'Dear Sherman',1,NULL,'Dear Sherman',1,NULL,'Sherman Bachman',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:19'),
+ (114,'Individual',NULL,1,0,0,0,1,0,NULL,NULL,'smith.maxwell@infomail.org','smith.maxwell@infomail.org',NULL,NULL,NULL,NULL,NULL,'Both','669620484',NULL,'Sample Data',NULL,NULL,NULL,3,4,NULL,NULL,1,NULL,'Dear smith.maxwell@infomail.org',1,NULL,'Dear smith.maxwell@infomail.org',1,NULL,'smith.maxwell@infomail.org',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (115,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Cruz, Kacey','Ms. Kacey Cruz',NULL,NULL,NULL,NULL,NULL,'Both','2315197574',NULL,'Sample Data','Kacey','','Cruz',2,NULL,NULL,NULL,1,NULL,'Dear Kacey',1,NULL,'Dear Kacey',1,NULL,'Ms. Kacey Cruz',NULL,1,'1970-03-31',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (116,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Rural Literacy Fund','Rural Literacy Fund',NULL,NULL,NULL,NULL,NULL,'Both','332499923',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Rural Literacy Fund',NULL,NULL,NULL,0,NULL,NULL,NULL,'Rural Literacy Fund',NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (117,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Zope-Terry, Brigette','Brigette Zope-Terry',NULL,NULL,NULL,NULL,NULL,'Both','2217447011',NULL,'Sample Data','Brigette','H','Zope-Terry',NULL,NULL,NULL,NULL,1,NULL,'Dear Brigette',1,NULL,'Dear Brigette',1,NULL,'Brigette Zope-Terry',NULL,1,'1987-01-01',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (118,'Household',NULL,0,0,0,0,1,0,NULL,NULL,'Adams family','Adams family',NULL,NULL,NULL,'2',NULL,'Both','1515323104',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Adams family',5,NULL,'Dear Adams family',2,NULL,'Adams family',NULL,NULL,NULL,0,NULL,'Adams family',NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (119,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Deforest, Lawerence','Lawerence Deforest Jr.',NULL,NULL,NULL,'2',NULL,'Both','2962516652',NULL,'Sample Data','Lawerence','P','Deforest',NULL,1,NULL,NULL,1,NULL,'Dear Lawerence',1,NULL,'Dear Lawerence',1,NULL,'Lawerence Deforest Jr.',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (120,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Bachman, Betty','Betty Bachman',NULL,NULL,NULL,'2',NULL,'Both','2914699083',NULL,'Sample Data','Betty','H','Bachman',NULL,NULL,NULL,NULL,1,NULL,'Dear Betty',1,NULL,'Dear Betty',1,NULL,'Betty Bachman',NULL,1,'2006-12-24',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (121,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Terry, Felisha','Dr. Felisha Terry',NULL,NULL,NULL,NULL,NULL,'Both','2704836577',NULL,'Sample Data','Felisha','G','Terry',4,NULL,NULL,NULL,1,NULL,'Dear Felisha',1,NULL,'Dear Felisha',1,NULL,'Dr. Felisha Terry',NULL,1,'1960-10-14',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (122,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'princessn@example.co.nz','princessn@example.co.nz',NULL,NULL,NULL,NULL,NULL,'Both','1767188468',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,'Dear princessn@example.co.nz',1,NULL,'Dear princessn@example.co.nz',1,NULL,'princessn@example.co.nz',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (123,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Díaz, Omar','Dr. Omar Díaz II',NULL,NULL,NULL,NULL,NULL,'Both','790008959',NULL,'Sample Data','Omar','','Díaz',4,3,NULL,NULL,1,NULL,'Dear Omar',1,NULL,'Dear Omar',1,NULL,'Dr. Omar Díaz II',NULL,2,NULL,1,'2022-05-20',NULL,NULL,'Caulder Empowerment School',NULL,NULL,187,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (124,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Samuels, Billy','Mr. Billy Samuels Sr.',NULL,NULL,NULL,'1',NULL,'Both','92935923',NULL,'Sample Data','Billy','','Samuels',3,2,NULL,NULL,1,NULL,'Dear Billy',1,NULL,'Dear Billy',1,NULL,'Mr. Billy Samuels Sr.',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (125,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'jamesona30@notmail.net','jamesona30@notmail.net',NULL,NULL,NULL,NULL,NULL,'Both','238568604',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,'Dear jamesona30@notmail.net',1,NULL,'Dear jamesona30@notmail.net',1,NULL,'jamesona30@notmail.net',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (126,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Nielsen, Ray','Ray Nielsen',NULL,NULL,NULL,'4',NULL,'Both','1395402808',NULL,'Sample Data','Ray','','Nielsen',NULL,NULL,NULL,NULL,1,NULL,'Dear Ray',1,NULL,'Dear Ray',1,NULL,'Ray Nielsen',NULL,NULL,'1962-05-31',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (127,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'terryl@fakemail.co.nz','terryl@fakemail.co.nz',NULL,NULL,NULL,'2',NULL,'Both','610542870',NULL,'Sample Data',NULL,NULL,NULL,4,1,NULL,NULL,1,NULL,'Dear terryl@fakemail.co.nz',1,NULL,'Dear terryl@fakemail.co.nz',1,NULL,'terryl@fakemail.co.nz',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (128,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Terry, Brzęczysław','Brzęczysław Terry',NULL,NULL,NULL,'3',NULL,'Both','884241841',NULL,'Sample Data','Brzęczysław','','Terry',NULL,NULL,NULL,NULL,1,NULL,'Dear Brzęczysław',1,NULL,'Dear Brzęczysław',1,NULL,'Brzęczysław Terry',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (129,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'Nielsen family','Nielsen family',NULL,NULL,NULL,'1',NULL,'Both','766698874',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Nielsen family',5,NULL,'Dear Nielsen family',2,NULL,'Nielsen family',NULL,NULL,NULL,0,NULL,'Nielsen family',NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (130,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Deforest, Roland','Roland Deforest II',NULL,NULL,NULL,'4',NULL,'Both','3507897798',NULL,'Sample Data','Roland','A','Deforest',NULL,3,NULL,NULL,1,NULL,'Dear Roland',1,NULL,'Dear Roland',1,NULL,'Roland Deforest II',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (131,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Blackwell, Brzęczysław','Dr. Brzęczysław Blackwell',NULL,NULL,NULL,'1',NULL,'Both','3382098014',NULL,'Sample Data','Brzęczysław','','Blackwell',4,NULL,NULL,NULL,1,NULL,'Dear Brzęczysław',1,NULL,'Dear Brzęczysław',1,NULL,'Dr. Brzęczysław Blackwell',NULL,2,'1987-12-24',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (132,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Roberts, Sonny','Sonny Roberts II',NULL,NULL,NULL,'5',NULL,'Both','624070005',NULL,'Sample Data','Sonny','P','Roberts',NULL,3,NULL,NULL,1,NULL,'Dear Sonny',1,NULL,'Dear Sonny',1,NULL,'Sonny Roberts II',NULL,NULL,'1983-06-08',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (133,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Cooper, Elbert','Dr. Elbert Cooper',NULL,NULL,NULL,NULL,NULL,'Both','2147415663',NULL,'Sample Data','Elbert','X','Cooper',4,NULL,NULL,NULL,1,NULL,'Dear Elbert',1,NULL,'Dear Elbert',1,NULL,'Dr. Elbert Cooper',NULL,2,'1958-12-20',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:19'),
+ (134,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Jones, Brzęczysław','Dr. Brzęczysław Jones III',NULL,NULL,NULL,NULL,NULL,'Both','1102443663',NULL,'Sample Data','Brzęczysław','','Jones',4,4,NULL,NULL,1,NULL,'Dear Brzęczysław',1,NULL,'Dear Brzęczysław',1,NULL,'Dr. Brzęczysław Jones III',NULL,2,'1992-07-26',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:19'),
+ (135,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Blackwell, Merrie','Merrie Blackwell',NULL,NULL,NULL,'4',NULL,'Both','2696737168',NULL,'Sample Data','Merrie','Z','Blackwell',NULL,NULL,NULL,NULL,1,NULL,'Dear Merrie',1,NULL,'Dear Merrie',1,NULL,'Merrie Blackwell',NULL,1,NULL,0,NULL,NULL,NULL,'Main Arts Initiative',NULL,NULL,102,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (136,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Prentice, Herminia','Herminia Prentice',NULL,NULL,NULL,NULL,NULL,'Both','4072784830',NULL,'Sample Data','Herminia','W','Prentice',NULL,NULL,NULL,NULL,1,NULL,'Dear Herminia',1,NULL,'Dear Herminia',1,NULL,'Herminia Prentice',NULL,1,'1974-11-07',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:19'),
+ (137,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Friends Arts Center','Friends Arts Center',NULL,NULL,NULL,'2',NULL,'Both','3788580294',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Friends Arts Center',NULL,NULL,NULL,0,NULL,NULL,154,'Friends Arts Center',NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (138,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'Olsen-Jones family','Olsen-Jones family',NULL,NULL,NULL,'1',NULL,'Both','3237202923',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Olsen-Jones family',5,NULL,'Dear Olsen-Jones family',2,NULL,'Olsen-Jones family',NULL,NULL,NULL,0,NULL,'Olsen-Jones family',NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (139,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Nielsen, Teddy','Mr. Teddy Nielsen Sr.',NULL,NULL,NULL,NULL,NULL,'Both','1600610365',NULL,'Sample Data','Teddy','A','Nielsen',3,2,NULL,NULL,1,NULL,'Dear Teddy',1,NULL,'Dear Teddy',1,NULL,'Mr. Teddy Nielsen Sr.',NULL,2,'1967-09-10',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (140,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Łąchowski, Esta','Dr. Esta Łąchowski',NULL,NULL,NULL,NULL,NULL,'Both','195412899',NULL,'Sample Data','Esta','S','Łąchowski',4,NULL,NULL,NULL,1,NULL,'Dear Esta',1,NULL,'Dear Esta',1,NULL,'Dr. Esta Łąchowski',NULL,1,'1998-02-26',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (141,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Jacobs, Megan','Megan Jacobs',NULL,NULL,NULL,'2',NULL,'Both','3130984438',NULL,'Sample Data','Megan','','Jacobs',NULL,NULL,NULL,NULL,1,NULL,'Dear Megan',1,NULL,'Dear Megan',1,NULL,'Megan Jacobs',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (142,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Adams, Brigette','Brigette Adams',NULL,NULL,NULL,'1',NULL,'Both','3645343671',NULL,'Sample Data','Brigette','','Adams',NULL,NULL,NULL,NULL,1,NULL,'Dear Brigette',1,NULL,'Dear Brigette',1,NULL,'Brigette Adams',NULL,1,'1993-01-22',0,NULL,NULL,NULL,'Michigan Software Trust',NULL,NULL,173,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (143,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'McReynolds family','McReynolds family',NULL,NULL,NULL,'5',NULL,'Both','3032680972',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear McReynolds family',5,NULL,'Dear McReynolds family',2,NULL,'McReynolds family',NULL,NULL,NULL,0,NULL,'McReynolds family',NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (144,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Jensen, Maria','Mr. Maria Jensen Jr.',NULL,NULL,NULL,'3',NULL,'Both','27867278',NULL,'Sample Data','Maria','','Jensen',3,1,NULL,NULL,1,NULL,'Dear Maria',1,NULL,'Dear Maria',1,NULL,'Mr. Maria Jensen Jr.',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (145,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Patel, Herminia','Ms. Herminia Patel',NULL,NULL,NULL,'2',NULL,'Both','2166987565',NULL,'Sample Data','Herminia','M','Patel',2,NULL,NULL,NULL,1,NULL,'Dear Herminia',1,NULL,'Dear Herminia',1,NULL,'Ms. Herminia Patel',NULL,1,'1984-08-06',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (146,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Wattson, Magan','Magan Wattson',NULL,NULL,NULL,NULL,NULL,'Both','3310801792',NULL,'Sample Data','Magan','P','Wattson',NULL,NULL,NULL,NULL,1,NULL,'Dear Magan',1,NULL,'Dear Magan',1,NULL,'Magan Wattson',NULL,NULL,'1968-09-29',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (147,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'roberts.delana19@infomail.co.nz','roberts.delana19@infomail.co.nz',NULL,NULL,NULL,NULL,NULL,'Both','146895199',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,'Dear roberts.delana19@infomail.co.nz',1,NULL,'Dear roberts.delana19@infomail.co.nz',1,NULL,'roberts.delana19@infomail.co.nz',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (148,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Müller, Shauna','Shauna Müller',NULL,NULL,NULL,NULL,NULL,'Both','2927518438',NULL,'Sample Data','Shauna','','Müller',NULL,NULL,NULL,NULL,1,NULL,'Dear Shauna',1,NULL,'Dear Shauna',1,NULL,'Shauna Müller',NULL,NULL,'1964-12-28',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (149,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Zope, Clint','Clint Zope',NULL,NULL,NULL,'5',NULL,'Both','869284324',NULL,'Sample Data','Clint','T','Zope',NULL,NULL,NULL,NULL,1,NULL,'Dear Clint',1,NULL,'Dear Clint',1,NULL,'Clint Zope',NULL,2,NULL,0,NULL,NULL,NULL,'Pennsylvania Agriculture Association',NULL,NULL,194,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (150,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Lee, Tanya','Mrs. Tanya Lee',NULL,NULL,NULL,NULL,NULL,'Both','776617860',NULL,'Sample Data','Tanya','S','Lee',1,NULL,NULL,NULL,1,NULL,'Dear Tanya',1,NULL,'Dear Tanya',1,NULL,'Mrs. Tanya Lee',NULL,1,'1979-06-27',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:19'),
+ (151,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Rural Music Center','Rural Music Center',NULL,NULL,NULL,'2',NULL,'Both','2079221623',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Rural Music Center',NULL,NULL,NULL,0,NULL,NULL,37,'Rural Music Center',NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (152,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Dimitrov, Lincoln','Lincoln Dimitrov',NULL,NULL,NULL,'1',NULL,'Both','199020119',NULL,'Sample Data','Lincoln','L','Dimitrov',NULL,NULL,NULL,NULL,1,NULL,'Dear Lincoln',1,NULL,'Dear Lincoln',1,NULL,'Lincoln Dimitrov',NULL,2,'1956-11-24',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (153,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Nielsen-Jensen, Brigette','Brigette Nielsen-Jensen',NULL,NULL,NULL,NULL,NULL,'Both','1657155079',NULL,'Sample Data','Brigette','S','Nielsen-Jensen',NULL,NULL,NULL,NULL,1,NULL,'Dear Brigette',1,NULL,'Dear Brigette',1,NULL,'Brigette Nielsen-Jensen',NULL,1,'2016-04-09',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (154,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Olsen, Allen','Dr. Allen Olsen II',NULL,NULL,NULL,NULL,NULL,'Both','1167600781',NULL,'Sample Data','Allen','','Olsen',4,3,NULL,NULL,1,NULL,'Dear Allen',1,NULL,'Dear Allen',1,NULL,'Dr. Allen Olsen II',NULL,2,'2000-04-03',0,NULL,NULL,NULL,'Friends Arts Center',NULL,NULL,137,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (155,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Barkley, Russell','Russell Barkley',NULL,NULL,NULL,'5',NULL,'Both','748831488',NULL,'Sample Data','Russell','','Barkley',NULL,NULL,NULL,NULL,1,NULL,'Dear Russell',1,NULL,'Dear Russell',1,NULL,'Russell Barkley',NULL,2,'1950-05-29',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (156,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Adams, Elina','Ms. Elina Adams',NULL,NULL,NULL,NULL,NULL,'Both','3914819984',NULL,'Sample Data','Elina','D','Adams',2,NULL,NULL,NULL,1,NULL,'Dear Elina',1,NULL,'Dear Elina',1,NULL,'Ms. Elina Adams',NULL,1,'1979-08-28',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (157,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Bachman, Toby','Toby Bachman Jr.',NULL,NULL,NULL,NULL,NULL,'Both','3370727882',NULL,'Sample Data','Toby','','Bachman',NULL,1,NULL,NULL,1,NULL,'Dear Toby',1,NULL,'Dear Toby',1,NULL,'Toby Bachman Jr.',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (158,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Müller, Alida','Alida Müller',NULL,NULL,NULL,NULL,NULL,'Both','4166377507',NULL,'Sample Data','Alida','','Müller',NULL,NULL,NULL,NULL,1,NULL,'Dear Alida',1,NULL,'Dear Alida',1,NULL,'Alida Müller',NULL,1,'1970-09-05',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (159,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Olsen-Jones, Lincoln','Lincoln Olsen-Jones',NULL,NULL,NULL,'2',NULL,'Both','1567799895',NULL,'Sample Data','Lincoln','','Olsen-Jones',NULL,NULL,NULL,NULL,1,NULL,'Dear Lincoln',1,NULL,'Dear Lincoln',1,NULL,'Lincoln Olsen-Jones',NULL,2,'1989-12-15',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (160,'Household',NULL,0,1,0,0,0,0,NULL,NULL,'Nielsen-Jensen family','Nielsen-Jensen family',NULL,NULL,NULL,'5',NULL,'Both','2662338490',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Nielsen-Jensen family',5,NULL,'Dear Nielsen-Jensen family',2,NULL,'Nielsen-Jensen family',NULL,NULL,NULL,0,NULL,'Nielsen-Jensen family',NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (161,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Müller, Tanya','Ms. Tanya Müller',NULL,NULL,NULL,'5',NULL,'Both','1478253205',NULL,'Sample Data','Tanya','W','Müller',2,NULL,NULL,NULL,1,NULL,'Dear Tanya',1,NULL,'Dear Tanya',1,NULL,'Ms. Tanya Müller',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:19'),
+ (162,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Reynolds, Sharyn','Sharyn Reynolds',NULL,NULL,NULL,NULL,NULL,'Both','2983838117',NULL,'Sample Data','Sharyn','M','Reynolds',NULL,NULL,NULL,NULL,1,NULL,'Dear Sharyn',1,NULL,'Dear Sharyn',1,NULL,'Sharyn Reynolds',NULL,1,'1968-07-23',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:19'),
+ (163,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Wattson, Betty','Betty Wattson',NULL,NULL,NULL,NULL,NULL,'Both','1650634236',NULL,'Sample Data','Betty','O','Wattson',NULL,NULL,NULL,NULL,1,NULL,'Dear Betty',1,NULL,'Dear Betty',1,NULL,'Betty Wattson',NULL,1,'2019-04-08',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (164,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Ivanov, Ashley','Dr. Ashley Ivanov II',NULL,NULL,NULL,'1',NULL,'Both','2740657237',NULL,'Sample Data','Ashley','C','Ivanov',4,3,NULL,NULL,1,NULL,'Dear Ashley',1,NULL,'Dear Ashley',1,NULL,'Dr. Ashley Ivanov II',NULL,2,'1976-04-15',0,NULL,NULL,NULL,'Eureka Springs Environmental Center',NULL,NULL,177,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (165,'Individual',NULL,1,1,0,0,0,0,NULL,NULL,'Prentice, Mei','Dr. Mei Prentice',NULL,NULL,NULL,'4',NULL,'Both','1342944335',NULL,'Sample Data','Mei','L','Prentice',4,NULL,NULL,NULL,1,NULL,'Dear Mei',1,NULL,'Dear Mei',1,NULL,'Dr. Mei Prentice',NULL,NULL,'1979-08-17',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (166,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'eleonord@airmail.co.nz','eleonord@airmail.co.nz',NULL,NULL,NULL,'2',NULL,'Both','2518500096',NULL,'Sample Data',NULL,NULL,NULL,2,NULL,NULL,NULL,1,NULL,'Dear eleonord@airmail.co.nz',1,NULL,'Dear eleonord@airmail.co.nz',1,NULL,'eleonord@airmail.co.nz',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:19'),
+ (167,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Bachman, Jina','Jina Bachman',NULL,NULL,NULL,'2',NULL,'Both','3279663758',NULL,'Sample Data','Jina','','Bachman',NULL,NULL,NULL,NULL,1,NULL,'Dear Jina',1,NULL,'Dear Jina',1,NULL,'Jina Bachman',NULL,1,'2004-05-09',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (168,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Olsen-Müller, Rebekah','Rebekah Olsen-Müller',NULL,NULL,NULL,'5',NULL,'Both','583345813',NULL,'Sample Data','Rebekah','E','Olsen-Müller',NULL,NULL,NULL,NULL,1,NULL,'Dear Rebekah',1,NULL,'Dear Rebekah',1,NULL,'Rebekah Olsen-Müller',NULL,NULL,'2010-04-22',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (169,'Individual',NULL,0,1,0,0,1,0,NULL,NULL,'Cooper, Allan','Allan Cooper Jr.',NULL,NULL,NULL,'3',NULL,'Both','350402207',NULL,'Sample Data','Allan','Z','Cooper',NULL,1,NULL,NULL,1,NULL,'Dear Allan',1,NULL,'Dear Allan',1,NULL,'Allan Cooper Jr.',NULL,2,'1994-10-22',0,NULL,NULL,NULL,'Miami Sustainability Fund',NULL,NULL,70,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (170,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Roberts, Lincoln','Dr. Lincoln Roberts Jr.',NULL,NULL,NULL,'2',NULL,'Both','1322526002',NULL,'Sample Data','Lincoln','C','Roberts',4,1,NULL,NULL,1,NULL,'Dear Lincoln',1,NULL,'Dear Lincoln',1,NULL,'Dr. Lincoln Roberts Jr.',NULL,2,'1977-05-06',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (171,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Patel, Errol','Mr. Errol Patel',NULL,NULL,NULL,NULL,NULL,'Both','392597171',NULL,'Sample Data','Errol','D','Patel',3,NULL,NULL,NULL,1,NULL,'Dear Errol',1,NULL,'Dear Errol',1,NULL,'Mr. Errol Patel',NULL,2,'1953-08-01',0,NULL,NULL,NULL,'Martin Luther King Development Partners',NULL,NULL,24,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (172,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'damarist@fishmail.info','damarist@fishmail.info',NULL,NULL,NULL,'5',NULL,'Both','1880992713',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,'Dear damarist@fishmail.info',1,NULL,'Dear damarist@fishmail.info',1,NULL,'damarist@fishmail.info',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (173,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Michigan Software Trust','Michigan Software Trust',NULL,NULL,NULL,'5',NULL,'Both','3850620930',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Michigan Software Trust',NULL,NULL,NULL,0,NULL,NULL,142,'Michigan Software Trust',NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (174,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Lee, Truman','Truman Lee II',NULL,NULL,NULL,'5',NULL,'Both','696555700',NULL,'Sample Data','Truman','','Lee',NULL,3,NULL,NULL,1,NULL,'Dear Truman',1,NULL,'Dear Truman',1,NULL,'Truman Lee II',NULL,NULL,NULL,0,NULL,NULL,NULL,'Niles Health Services',NULL,NULL,82,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (175,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Jones, Shad','Shad Jones',NULL,NULL,NULL,NULL,NULL,'Both','3058482719',NULL,'Sample Data','Shad','E','Jones',NULL,NULL,NULL,NULL,1,NULL,'Dear Shad',1,NULL,'Dear Shad',1,NULL,'Shad Jones',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (176,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Samson, Nicole','Ms. Nicole Samson',NULL,NULL,NULL,'2',NULL,'Both','1649974700',NULL,'Sample Data','Nicole','','Samson',2,NULL,NULL,NULL,1,NULL,'Dear Nicole',1,NULL,'Dear Nicole',1,NULL,'Ms. Nicole Samson',NULL,1,'1991-11-15',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (177,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Eureka Springs Environmental Center','Eureka Springs Environmental Center',NULL,NULL,NULL,'1',NULL,'Both','1505415000',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Eureka Springs Environmental Center',NULL,NULL,NULL,0,NULL,NULL,164,'Eureka Springs Environmental Center',NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (178,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'santinabarkley@testing.biz','santinabarkley@testing.biz',NULL,NULL,NULL,NULL,NULL,'Both','4009526663',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,'Dear santinabarkley@testing.biz',1,NULL,'Dear santinabarkley@testing.biz',1,NULL,'santinabarkley@testing.biz',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (179,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'McReynolds, Arlyne','Arlyne McReynolds',NULL,NULL,NULL,'4',NULL,'Both','1526771757',NULL,'Sample Data','Arlyne','I','McReynolds',NULL,NULL,NULL,NULL,1,NULL,'Dear Arlyne',1,NULL,'Dear Arlyne',1,NULL,'Arlyne McReynolds',NULL,NULL,'1944-12-28',1,'2022-05-05',NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:19'),
+ (180,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'McReynolds, Ivey','Ivey McReynolds',NULL,NULL,NULL,NULL,NULL,'Both','3543287446',NULL,'Sample Data','Ivey','V','McReynolds',NULL,NULL,NULL,NULL,1,NULL,'Dear Ivey',1,NULL,'Dear Ivey',1,NULL,'Ivey McReynolds',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (181,'Household',NULL,0,0,0,0,0,0,NULL,NULL,'Deforest family','Deforest family',NULL,NULL,NULL,'1',NULL,'Both','3235379039',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,5,NULL,'Dear Deforest family',5,NULL,'Dear Deforest family',2,NULL,'Deforest family',NULL,NULL,NULL,0,NULL,'Deforest family',NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (182,'Individual',NULL,0,1,0,0,1,0,NULL,NULL,'Jacobs, Rodrigo','Rodrigo Jacobs',NULL,NULL,NULL,NULL,NULL,'Both','1520738612',NULL,'Sample Data','Rodrigo','','Jacobs',NULL,NULL,NULL,NULL,1,NULL,'Dear Rodrigo',1,NULL,'Dear Rodrigo',1,NULL,'Rodrigo Jacobs',NULL,2,'1988-07-27',0,NULL,NULL,NULL,'Montfort Wellness Network',NULL,NULL,13,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (183,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Friends Wellness Collective','Friends Wellness Collective',NULL,NULL,NULL,'4',NULL,'Both','3119021715',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Friends Wellness Collective',NULL,NULL,NULL,0,NULL,NULL,94,'Friends Wellness Collective',NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (184,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Jameson, Felisha','Ms. Felisha Jameson',NULL,NULL,NULL,NULL,NULL,'Both','2198176616',NULL,'Sample Data','Felisha','J','Jameson',2,NULL,NULL,NULL,1,NULL,'Dear Felisha',1,NULL,'Dear Felisha',1,NULL,'Ms. Felisha Jameson',NULL,NULL,'1999-05-15',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:19'),
+ (185,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'jameson.troy@mymail.info','jameson.troy@mymail.info',NULL,NULL,NULL,NULL,NULL,'Both','3426361405',NULL,'Sample Data',NULL,NULL,NULL,NULL,2,NULL,NULL,1,NULL,'Dear jameson.troy@mymail.info',1,NULL,'Dear jameson.troy@mymail.info',1,NULL,'jameson.troy@mymail.info',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (186,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Yadav, Bryon','Dr. Bryon Yadav Sr.',NULL,NULL,NULL,'5',NULL,'Both','1301093368',NULL,'Sample Data','Bryon','G','Yadav',4,2,NULL,NULL,1,NULL,'Dear Bryon',1,NULL,'Dear Bryon',1,NULL,'Dr. Bryon Yadav Sr.',NULL,2,'1970-06-09',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (187,'Organization',NULL,0,1,0,0,0,0,NULL,NULL,'Caulder Empowerment School','Caulder Empowerment School',NULL,NULL,NULL,NULL,NULL,'Both','2652420423',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Caulder Empowerment School',NULL,NULL,NULL,0,NULL,NULL,123,'Caulder Empowerment School',NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (188,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Olsen-Müller, Mei','Dr. Mei Olsen-Müller',NULL,NULL,NULL,'2',NULL,'Both','2844295961',NULL,'Sample Data','Mei','A','Olsen-Müller',4,NULL,NULL,NULL,1,NULL,'Dear Mei',1,NULL,'Dear Mei',1,NULL,'Dr. Mei Olsen-Müller',NULL,NULL,'1993-12-11',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (189,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Green Literacy Solutions','Green Literacy Solutions',NULL,NULL,NULL,NULL,NULL,'Both','1172257048',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Green Literacy Solutions',NULL,NULL,NULL,0,NULL,NULL,196,'Green Literacy Solutions',NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (190,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Wattson, Kathlyn','Kathlyn Wattson',NULL,NULL,NULL,'1',NULL,'Both','191562208',NULL,'Sample Data','Kathlyn','R','Wattson',NULL,NULL,NULL,NULL,1,NULL,'Dear Kathlyn',1,NULL,'Dear Kathlyn',1,NULL,'Kathlyn Wattson',NULL,1,'1961-05-21',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (191,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Jacobs-Jameson, Damaris','Ms. Damaris Jacobs-Jameson',NULL,NULL,NULL,'1',NULL,'Both','4108314341',NULL,'Sample Data','Damaris','E','Jacobs-Jameson',2,NULL,NULL,NULL,1,NULL,'Dear Damaris',1,NULL,'Dear Damaris',1,NULL,'Ms. Damaris Jacobs-Jameson',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (192,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Terrell, Angelika','Angelika Terrell',NULL,NULL,NULL,NULL,NULL,'Both','1430135515',NULL,'Sample Data','Angelika','H','Terrell',NULL,NULL,NULL,NULL,1,NULL,'Dear Angelika',1,NULL,'Dear Angelika',1,NULL,'Angelika Terrell',NULL,1,'1992-12-13',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (193,'Individual',NULL,1,0,0,0,0,0,NULL,NULL,'Jensen, Mei','Mrs. Mei Jensen',NULL,NULL,NULL,NULL,NULL,'Both','3305491240',NULL,'Sample Data','Mei','','Jensen',1,NULL,NULL,NULL,1,NULL,'Dear Mei',1,NULL,'Dear Mei',1,NULL,'Mrs. Mei Jensen',NULL,NULL,'1996-05-07',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (194,'Organization',NULL,0,0,0,0,0,0,NULL,NULL,'Pennsylvania Agriculture Association','Pennsylvania Agriculture Association',NULL,NULL,NULL,'4',NULL,'Both','2168206143',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Pennsylvania Agriculture Association',NULL,NULL,NULL,0,NULL,NULL,149,'Pennsylvania Agriculture Association',NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (195,'Individual',NULL,0,0,0,0,1,0,NULL,NULL,'Parker, Rodrigo','Mr. Rodrigo Parker III',NULL,NULL,NULL,'1',NULL,'Both','3584522736',NULL,'Sample Data','Rodrigo','L','Parker',3,4,NULL,NULL,1,NULL,'Dear Rodrigo',1,NULL,'Dear Rodrigo',1,NULL,'Mr. Rodrigo Parker III',NULL,2,'1945-08-21',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:19'),
+ (196,'Individual',NULL,1,0,0,0,1,0,NULL,NULL,'Wilson, Ashley','Mr. Ashley Wilson Jr.',NULL,NULL,NULL,'3',NULL,'Both','1909485085',NULL,'Sample Data','Ashley','','Wilson',3,1,NULL,NULL,1,NULL,'Dear Ashley',1,NULL,'Dear Ashley',1,NULL,'Mr. Ashley Wilson Jr.',NULL,2,'1996-10-27',0,NULL,NULL,NULL,'Green Literacy Solutions',NULL,NULL,189,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (197,'Individual',NULL,0,1,0,0,0,0,NULL,NULL,'Nielsen, Teddy','Teddy Nielsen',NULL,NULL,NULL,NULL,NULL,'Both','1600610365',NULL,'Sample Data','Teddy','','Nielsen',NULL,NULL,NULL,NULL,1,NULL,'Dear Teddy',1,NULL,'Dear Teddy',1,NULL,'Teddy Nielsen',NULL,2,'2005-12-11',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (198,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Nielsen, Delana','Ms. Delana Nielsen',NULL,NULL,NULL,NULL,NULL,'Both','1974139195',NULL,'Sample Data','Delana','H','Nielsen',2,NULL,NULL,NULL,1,NULL,'Dear Delana',1,NULL,'Dear Delana',1,NULL,'Ms. Delana Nielsen',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:21'),
+ (199,'Individual',NULL,1,1,0,0,0,0,NULL,NULL,'Jameson, Allen','Dr. Allen Jameson III',NULL,NULL,NULL,NULL,NULL,'Both','3044297960',NULL,'Sample Data','Allen','W','Jameson',4,4,NULL,NULL,1,NULL,'Dear Allen',1,NULL,'Dear Allen',1,NULL,'Dr. Allen Jameson III',NULL,NULL,'1992-12-16',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:19'),
+ (200,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Nielsen, Brittney','Mrs. Brittney Nielsen',NULL,NULL,NULL,NULL,NULL,'Both','544884463',NULL,'Sample Data','Brittney','E','Nielsen',1,NULL,NULL,NULL,1,NULL,'Dear Brittney',1,NULL,'Dear Brittney',1,NULL,'Mrs. Brittney Nielsen',NULL,1,'1951-01-06',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (201,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Adams, Delana','Ms. Delana Adams',NULL,NULL,NULL,NULL,NULL,'Both','1694982266',NULL,'Sample Data','Delana','','Adams',2,NULL,NULL,NULL,1,NULL,'Dear Delana',1,NULL,'Dear Delana',1,NULL,'Ms. Delana Adams',NULL,NULL,'1954-12-16',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:19','2023-03-08 06:51:20'),
+ (202,'Individual',NULL,0,0,0,0,0,0,NULL,NULL,'Lee, Jenny','Jenny Lee',NULL,NULL,NULL,NULL,'en_US','Both','723ac828658b2e6b2896bc348fc7775c',NULL,NULL,'Jenny',NULL,'Lee',NULL,NULL,NULL,1,1,NULL,'Dear Jenny',1,NULL,'Dear Jenny',1,NULL,'Jenny Lee','Volunteer coordinator',NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-03-08 06:51:22','2023-03-08 06:51:22');
 /*!40000 ALTER TABLE `civicrm_contact` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -2299,117 +2303,117 @@ UNLOCK TABLES;
 LOCK TABLES `civicrm_contribution` WRITE;
 /*!40000 ALTER TABLE `civicrm_contribution` DISABLE KEYS */;
 INSERT INTO `civicrm_contribution` (`id`, `contact_id`, `financial_type_id`, `contribution_page_id`, `payment_instrument_id`, `receive_date`, `non_deductible_amount`, `total_amount`, `fee_amount`, `net_amount`, `trxn_id`, `invoice_id`, `invoice_number`, `currency`, `cancel_date`, `cancel_reason`, `receipt_date`, `thankyou_date`, `source`, `amount_level`, `contribution_recur_id`, `is_test`, `is_pay_later`, `contribution_status_id`, `address_id`, `check_number`, `campaign_id`, `creditnote_id`, `tax_amount`, `revenue_recognition_date`, `is_template`) VALUES
- (1,2,1,NULL,4,'2013-01-25 11:10:21',0.00,125.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'April Mailer 1',NULL,NULL,0,0,1,NULL,'1041',NULL,NULL,NULL,NULL,0),
- (2,4,1,NULL,1,'2020-10-25 11:10:21',0.00,50.00,NULL,NULL,'P20901X1',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Online: Save the Penguins',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (3,6,1,NULL,4,'2016-12-30 22:10:21',0.00,25.00,NULL,NULL,'GBP12',NULL,NULL,'GBP',NULL,NULL,NULL,NULL,'April Mailer 1',NULL,NULL,0,0,1,NULL,'2095',NULL,NULL,NULL,NULL,0),
- (4,8,1,NULL,4,'2020-10-25 11:10:21',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Online: Save the Penguins',NULL,NULL,0,0,1,NULL,'10552',NULL,NULL,NULL,NULL,0),
- (5,4,1,NULL,1,'2020-10-25 11:10:21',0.00,50.00,NULL,NULL,'Q90901X1',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Online: Save the Penguins',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (6,16,1,NULL,4,'2022-11-01 10:28:21',0.00,500.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'April Mailer 1',NULL,NULL,0,0,1,NULL,'509',NULL,NULL,NULL,NULL,0),
- (7,19,1,NULL,1,'2023-01-23 11:10:21',0.00,1750.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Online: Save the Penguins',NULL,NULL,0,0,1,NULL,'102',NULL,NULL,NULL,NULL,0),
- (8,82,1,NULL,1,'2022-06-02 19:21:21',0.00,50.00,NULL,NULL,'P20193L2',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Online: Save the Penguins',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (9,92,1,NULL,1,'2022-02-25 11:10:21',0.00,10.00,NULL,NULL,'P40232Y3',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Online: Help CiviCRM',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (10,34,1,NULL,1,'2018-09-02 13:10:21',0.00,250.00,NULL,NULL,'P20193L6',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Online: Help CiviCRM',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (11,71,1,NULL,1,'2023-01-24 07:10:21',0.00,500.00,NULL,NULL,'PL71',NULL,NULL,'JPY',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (12,43,1,NULL,1,'2021-10-25 00:37:01',0.00,50.00,NULL,NULL,'P291X1',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Online: Save the Penguins',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (13,32,1,NULL,1,'2022-10-25 00:00:00',0.00,50.00,NULL,NULL,'PL32I',NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (14,32,1,NULL,1,'2022-11-25 00:00:00',0.00,50.00,NULL,NULL,'PL32II',NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (15,59,1,NULL,1,'2021-10-25 11:10:21',0.00,25.00,NULL,NULL,'PL32I591',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,1,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (16,59,1,NULL,1,'2021-11-25 11:10:21',0.00,25.00,NULL,NULL,'PL32I592',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,1,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (17,59,1,NULL,1,'2021-12-25 11:10:21',0.00,25.00,NULL,NULL,'PL32I593',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,1,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (18,59,1,NULL,1,'2022-01-25 11:10:21',0.00,25.00,NULL,NULL,'PL32I594',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,1,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (19,59,1,NULL,1,'2022-02-25 11:10:21',0.00,25.00,NULL,NULL,'PL32I595',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,1,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (20,59,1,NULL,1,'2022-03-25 11:10:21',0.00,25.00,NULL,NULL,'PL32I596',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,1,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (21,59,1,NULL,1,'2022-04-25 11:10:21',0.00,25.00,NULL,NULL,'PL32I597',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,1,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (22,59,1,NULL,1,'2022-05-25 11:10:21',0.00,25.00,NULL,NULL,'PL32I598',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,1,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (23,59,1,NULL,1,'2022-06-25 11:10:21',0.00,25.00,NULL,NULL,'PL32I599',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,1,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (24,59,1,NULL,1,'2022-07-25 11:10:21',0.00,25.00,NULL,NULL,'PL32I5910',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,1,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (25,59,1,NULL,1,'2022-08-25 11:10:21',0.00,25.00,NULL,NULL,'PL32I5911',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,1,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (26,99,1,NULL,1,'2022-05-25 11:10:21',0.00,10.00,NULL,NULL,'PL32I991',NULL,NULL,'CAD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,2,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (27,99,1,NULL,1,'2022-06-25 11:10:21',0.00,10.00,NULL,NULL,'PL32I992',NULL,NULL,'CAD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,2,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (28,99,1,NULL,1,'2022-07-25 11:10:21',0.00,10.00,NULL,NULL,'PL32I993',NULL,NULL,'CAD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,2,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (29,99,1,NULL,1,'2022-08-25 11:10:21',0.00,10.00,NULL,NULL,'PL32I994',NULL,NULL,'CAD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,2,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (30,99,1,NULL,1,'2022-09-25 11:10:21',0.00,10.00,NULL,NULL,'PL32I995',NULL,NULL,'CAD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,2,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (31,103,1,NULL,1,'2022-12-25 11:10:21',0.00,5.00,NULL,NULL,'PL32I1031',NULL,NULL,'EUR',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,3,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (32,134,2,NULL,1,'2023-01-25 11:10:21',0.00,100.00,NULL,NULL,'b6c6dc6a7ff26fdd',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (33,168,2,NULL,1,'2023-01-25 11:10:21',0.00,50.00,NULL,NULL,'524eae9386105d49',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (34,11,2,NULL,1,'2023-01-25 11:10:21',0.00,100.00,NULL,NULL,'5fb149937591d173',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (35,99,2,NULL,1,'2023-01-25 11:10:21',0.00,50.00,NULL,NULL,'684db73560bf4885',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (36,72,2,NULL,1,'2023-01-25 11:10:21',0.00,50.00,NULL,NULL,'f58b3dc1a3354e55',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (37,152,2,NULL,1,'2023-01-25 11:10:21',0.00,50.00,NULL,NULL,'93ac74a6be0a542b',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (38,194,2,NULL,1,'2023-01-25 11:10:21',0.00,100.00,NULL,NULL,'a13cefe561e26454',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (39,16,2,NULL,1,'2023-01-25 11:10:21',0.00,50.00,NULL,NULL,'ac53b76b8d60dc07',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (40,154,2,NULL,1,'2023-01-25 11:10:21',0.00,100.00,NULL,NULL,'f3dc6b4534eb5b24',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (41,13,2,NULL,1,'2023-01-25 11:10:21',0.00,50.00,NULL,NULL,'d16391f8df9b0127',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (42,153,2,NULL,1,'2023-01-25 11:10:21',0.00,1200.00,NULL,NULL,'40b57706eae6631d',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Lifetime Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (43,8,2,NULL,1,'2023-01-25 11:10:21',0.00,50.00,NULL,NULL,'3d8f58f681c83a95',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (44,165,2,NULL,1,'2023-01-25 11:10:21',0.00,100.00,NULL,NULL,'97aa0294057737a7',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (45,91,2,NULL,1,'2023-01-25 11:10:21',0.00,50.00,NULL,NULL,'f31691c305ce96cf',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (46,193,2,NULL,1,'2023-01-25 11:10:21',0.00,100.00,NULL,NULL,'dc4127b9dff93a89',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (47,115,2,NULL,1,'2023-01-25 11:10:21',0.00,50.00,NULL,NULL,'15865089a5bb5a73',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (48,169,2,NULL,1,'2023-01-25 11:10:21',0.00,100.00,NULL,NULL,'d7b0e77c2b1786d7',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (49,155,2,NULL,1,'2023-01-25 11:10:21',0.00,50.00,NULL,NULL,'2000bc00e742b5de',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (50,44,2,NULL,1,'2023-01-25 11:10:21',0.00,100.00,NULL,NULL,'92a89478f6a8b7b3',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (51,52,2,NULL,1,'2023-01-25 11:10:21',0.00,50.00,NULL,NULL,'b925d5e40395d78a',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (52,31,2,NULL,1,'2023-01-25 11:10:21',0.00,100.00,NULL,NULL,'2380d65512d9d406',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (53,138,2,NULL,1,'2023-01-25 11:10:21',0.00,1200.00,NULL,NULL,'de94057b871e3b98',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Lifetime Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (54,49,2,NULL,1,'2023-01-25 11:10:21',0.00,100.00,NULL,NULL,'84eeafedd1548bde',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (55,21,2,NULL,1,'2023-01-25 11:10:21',0.00,50.00,NULL,NULL,'8a7627b3bbbda1bf',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (56,100,2,NULL,1,'2023-01-25 11:10:21',0.00,100.00,NULL,NULL,'282d04b437d9a14d',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (57,81,2,NULL,1,'2023-01-25 11:10:21',0.00,50.00,NULL,NULL,'f865e42dad3d50cf',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (58,110,2,NULL,1,'2023-01-25 11:10:21',0.00,100.00,NULL,NULL,'844363646dc18acc',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (59,187,2,NULL,1,'2023-01-25 11:10:21',0.00,50.00,NULL,NULL,'935fbea586c2a2cb',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (60,144,2,NULL,1,'2023-01-25 11:10:21',0.00,100.00,NULL,NULL,'6d0b7db4c6f2716c',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (61,71,2,NULL,1,'2023-01-25 11:10:21',0.00,100.00,NULL,NULL,'ac0936fc804ebcc3',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (63,194,4,NULL,1,'2023-01-25 11:10:21',0.00,50.00,NULL,NULL,'90747ff7f8788f0d',NULL,NULL,'USD',NULL,NULL,'2023-01-25 11:10:21',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (64,113,4,NULL,1,'2023-01-25 11:10:21',0.00,50.00,NULL,NULL,'a4fc117f88dc8da0',NULL,NULL,'USD',NULL,NULL,'2023-01-25 11:10:21',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (65,13,4,NULL,1,'2023-01-25 11:10:21',0.00,800.00,NULL,NULL,'723c76b6818d3ac6',NULL,NULL,'USD',NULL,NULL,'2023-01-25 11:10:21',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (66,27,4,NULL,1,'2023-01-25 11:10:21',0.00,50.00,NULL,NULL,'132e61fa1e10d161',NULL,NULL,'USD',NULL,NULL,'2023-01-25 11:10:21',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (67,111,4,NULL,1,'2023-01-25 11:10:21',0.00,50.00,NULL,NULL,'249cedf705163304',NULL,NULL,'USD',NULL,NULL,'2023-01-25 11:10:21',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (68,18,4,NULL,1,'2023-01-25 11:10:21',0.00,800.00,NULL,NULL,'e2db4ec1d7a6e2a9',NULL,NULL,'USD',NULL,NULL,'2023-01-25 11:10:21',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (69,170,4,NULL,1,'2023-01-25 11:10:21',0.00,50.00,NULL,NULL,'41cc55bcc280074e',NULL,NULL,'USD',NULL,NULL,'2023-01-25 11:10:21',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (70,146,4,NULL,1,'2023-01-25 11:10:21',0.00,50.00,NULL,NULL,'3714c4877c403a0a',NULL,NULL,'USD',NULL,NULL,'2023-01-25 11:10:21',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (71,43,4,NULL,1,'2023-01-25 11:10:21',0.00,800.00,NULL,NULL,'d9fabe07d6ee2a4f',NULL,NULL,'USD',NULL,NULL,'2023-01-25 11:10:21',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (72,54,4,NULL,1,'2023-01-25 11:10:21',0.00,50.00,NULL,NULL,'14d6a74b07cd686e',NULL,NULL,'USD',NULL,NULL,'2023-01-25 11:10:21',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (73,80,4,NULL,1,'2023-01-25 11:10:21',0.00,50.00,NULL,NULL,'97222a2adc929f95',NULL,NULL,'USD',NULL,NULL,'2023-01-25 11:10:21',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (74,96,4,NULL,1,'2023-01-25 11:10:21',0.00,800.00,NULL,NULL,'92b29dbaab5b5382',NULL,NULL,'USD',NULL,NULL,'2023-01-25 11:10:21',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (75,180,4,NULL,1,'2023-01-25 11:10:21',0.00,50.00,NULL,NULL,'0f0dc0093dbb71df',NULL,NULL,'USD',NULL,NULL,'2023-01-25 11:10:21',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (76,48,4,NULL,1,'2023-01-25 11:10:21',0.00,50.00,NULL,NULL,'968bcdf019e31319',NULL,NULL,'USD',NULL,NULL,'2023-01-25 11:10:21',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (77,159,4,NULL,1,'2023-01-25 11:10:21',0.00,800.00,NULL,NULL,'5c882a4cf827f611',NULL,NULL,'USD',NULL,NULL,'2023-01-25 11:10:21',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (78,179,4,NULL,1,'2023-01-25 11:10:21',0.00,50.00,NULL,NULL,'47d2b289214cb577',NULL,NULL,'USD',NULL,NULL,'2023-01-25 11:10:21',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (79,86,4,NULL,1,'2023-01-25 11:10:21',0.00,50.00,NULL,NULL,'f40f7c487d1572c8',NULL,NULL,'USD',NULL,NULL,'2023-01-25 11:10:21',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (80,134,4,NULL,1,'2023-01-25 11:10:21',0.00,800.00,NULL,NULL,'0c09c40aebba1a70',NULL,NULL,'USD',NULL,NULL,'2023-01-25 11:10:21',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (81,166,4,NULL,1,'2023-01-25 11:10:21',0.00,50.00,NULL,NULL,'677948275bd8bbe2',NULL,NULL,'USD',NULL,NULL,'2023-01-25 11:10:21',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (82,118,4,NULL,1,'2023-01-25 11:10:21',0.00,50.00,NULL,NULL,'5f98b9b08c61524a',NULL,NULL,'USD',NULL,NULL,'2023-01-25 11:10:21',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (83,93,4,NULL,1,'2023-01-25 11:10:21',0.00,800.00,NULL,NULL,'4c7fb6e2279af937',NULL,NULL,'USD',NULL,NULL,'2023-01-25 11:10:21',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (84,88,4,NULL,1,'2023-01-25 11:10:21',0.00,50.00,NULL,NULL,'7c06ef857fa9df61',NULL,NULL,'USD',NULL,NULL,'2023-01-25 11:10:21',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (85,65,4,NULL,1,'2023-01-25 11:10:21',0.00,50.00,NULL,NULL,'1613371d0121f1de',NULL,NULL,'USD',NULL,NULL,'2023-01-25 11:10:21',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (86,157,4,NULL,1,'2023-01-25 11:10:21',0.00,800.00,NULL,NULL,'406ee71fc2a168cc',NULL,NULL,'USD',NULL,NULL,'2023-01-25 11:10:21',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (87,97,4,NULL,1,'2023-01-25 11:10:21',0.00,800.00,NULL,NULL,'60cf8ecd63fc87cb',NULL,NULL,'USD',NULL,NULL,'2023-01-25 11:10:21',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (88,19,4,NULL,1,'2023-01-25 11:10:21',0.00,50.00,NULL,NULL,'5cbf94e945409735',NULL,NULL,'USD',NULL,NULL,'2023-01-25 11:10:21',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (89,190,4,NULL,1,'2023-01-25 11:10:21',0.00,50.00,NULL,NULL,'b6136fdf513a2bfc',NULL,NULL,'USD',NULL,NULL,'2023-01-25 11:10:21',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (90,42,4,NULL,1,'2023-01-25 11:10:21',0.00,800.00,NULL,NULL,'8eca9defb26ad067',NULL,NULL,'USD',NULL,NULL,'2023-01-25 11:10:21',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (91,79,4,NULL,1,'2023-01-25 11:10:21',0.00,50.00,NULL,NULL,'209cc0030a3cc9dc',NULL,NULL,'USD',NULL,NULL,'2023-01-25 11:10:21',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (92,44,4,NULL,1,'2023-01-25 11:10:21',0.00,50.00,NULL,NULL,'8ee25cd47244738d',NULL,NULL,'USD',NULL,NULL,'2023-01-25 11:10:21',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (93,109,4,NULL,1,'2023-01-25 11:10:21',0.00,800.00,NULL,NULL,'0ec26248b7992a1c',NULL,NULL,'USD',NULL,NULL,'2023-01-25 11:10:21',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (94,82,4,NULL,1,'2023-01-25 11:10:21',0.00,50.00,NULL,NULL,'b37d6dd8e469cf14',NULL,NULL,'USD',NULL,NULL,'2023-01-25 11:10:21',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (95,127,4,NULL,1,'2023-01-25 11:10:21',0.00,50.00,NULL,NULL,'d91f8fbff72c8085',NULL,NULL,'USD',NULL,NULL,'2023-01-25 11:10:21',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (96,100,4,NULL,1,'2023-01-25 11:10:21',0.00,800.00,NULL,NULL,'89fc6aeafe4c712e',NULL,NULL,'USD',NULL,NULL,'2023-01-25 11:10:21',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (97,21,4,NULL,1,'2023-01-25 11:10:21',0.00,50.00,NULL,NULL,'31c23b91e6f05713',NULL,NULL,'USD',NULL,NULL,'2023-01-25 11:10:21',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (98,64,4,NULL,1,'2023-01-25 11:10:21',0.00,50.00,NULL,NULL,'1b280cb8b867e92d',NULL,NULL,'USD',NULL,NULL,'2023-01-25 11:10:21',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (99,183,4,NULL,1,'2023-01-25 11:10:21',0.00,800.00,NULL,NULL,'894693ee0d7ef1a6',NULL,NULL,'USD',NULL,NULL,'2023-01-25 11:10:21',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (100,137,4,NULL,1,'2023-01-25 11:10:21',0.00,50.00,NULL,NULL,'661fb5c13b80fc71',NULL,NULL,'USD',NULL,NULL,'2023-01-25 11:10:21',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (101,172,4,NULL,1,'2023-01-25 11:10:21',0.00,50.00,NULL,NULL,'7302e000b85551c0',NULL,NULL,'USD',NULL,NULL,'2023-01-25 11:10:21',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (102,160,4,NULL,1,'2023-01-25 11:10:21',0.00,800.00,NULL,NULL,'6aaef3ee5ccc4d9c',NULL,NULL,'USD',NULL,NULL,'2023-01-25 11:10:21',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (103,124,4,NULL,1,'2023-01-25 11:10:21',0.00,50.00,NULL,NULL,'5c299a9d2cefcc48',NULL,NULL,'USD',NULL,NULL,'2023-01-25 11:10:21',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (104,69,4,NULL,1,'2023-01-25 11:10:21',0.00,50.00,NULL,NULL,'0c33cf3d06281860',NULL,NULL,'USD',NULL,NULL,'2023-01-25 11:10:21',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (105,187,4,NULL,1,'2023-01-25 11:10:21',0.00,800.00,NULL,NULL,'0cb6aeab14482638',NULL,NULL,'USD',NULL,NULL,'2023-01-25 11:10:21',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (106,176,4,NULL,1,'2023-01-25 11:10:21',0.00,50.00,NULL,NULL,'8647f630f0514f82',NULL,NULL,'USD',NULL,NULL,'2023-01-25 11:10:21',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (107,188,4,NULL,1,'2023-01-25 11:10:21',0.00,50.00,NULL,NULL,'36cbda2b0ca06d1d',NULL,NULL,'USD',NULL,NULL,'2023-01-25 11:10:21',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (108,70,4,NULL,1,'2023-01-25 11:10:21',0.00,800.00,NULL,NULL,'93a9a46b13ed2ea1',NULL,NULL,'USD',NULL,NULL,'2023-01-25 11:10:21',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (109,191,4,NULL,1,'2023-01-25 11:10:21',0.00,50.00,NULL,NULL,'6e22090f617217a5',NULL,NULL,'USD',NULL,NULL,'2023-01-25 11:10:21',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (110,123,4,NULL,1,'2023-01-25 11:10:21',0.00,50.00,NULL,NULL,'1b26cc54516d83df',NULL,NULL,'USD',NULL,NULL,'2023-01-25 11:10:21',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (111,83,4,NULL,1,'2023-01-25 11:10:21',0.00,800.00,NULL,NULL,'01829806aa2d025f',NULL,NULL,'USD',NULL,NULL,'2023-01-25 11:10:21',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (112,99,4,NULL,1,'2023-01-25 11:10:21',0.00,800.00,NULL,NULL,'9cf79c424fc687d7',NULL,NULL,'USD',NULL,NULL,'2023-01-25 11:10:21',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0);
+ (1,2,1,NULL,4,'2013-03-08 17:51:24',0.00,125.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'April Mailer 1',NULL,NULL,0,0,1,NULL,'1041',NULL,NULL,NULL,NULL,0),
+ (2,4,1,NULL,1,'2020-12-08 17:51:24',0.00,50.00,NULL,NULL,'P20901X1',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Online: Save the Penguins',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (3,6,1,NULL,4,'2017-02-11 04:51:24',0.00,25.00,NULL,NULL,'GBP12',NULL,NULL,'GBP',NULL,NULL,NULL,NULL,'April Mailer 1',NULL,NULL,0,0,1,NULL,'2095',NULL,NULL,NULL,NULL,0),
+ (4,8,1,NULL,4,'2020-12-08 17:51:24',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Online: Save the Penguins',NULL,NULL,0,0,1,NULL,'10552',NULL,NULL,NULL,NULL,0),
+ (5,4,1,NULL,1,'2020-12-08 17:51:24',0.00,50.00,NULL,NULL,'Q90901X1',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Online: Save the Penguins',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (6,16,1,NULL,4,'2022-12-13 17:09:24',0.00,500.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'April Mailer 1',NULL,NULL,0,0,1,NULL,'509',NULL,NULL,NULL,NULL,0),
+ (7,19,1,NULL,1,'2023-03-06 17:51:24',0.00,1750.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Online: Save the Penguins',NULL,NULL,0,0,1,NULL,'102',NULL,NULL,NULL,NULL,0),
+ (8,82,1,NULL,1,'2022-07-15 02:02:24',0.00,50.00,NULL,NULL,'P20193L2',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Online: Save the Penguins',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (9,92,1,NULL,1,'2022-04-08 17:51:24',0.00,10.00,NULL,NULL,'P40232Y3',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Online: Help CiviCRM',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (10,34,1,NULL,1,'2018-10-16 19:51:24',0.00,250.00,NULL,NULL,'P20193L6',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Online: Help CiviCRM',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (11,71,1,NULL,1,'2023-03-07 13:51:24',0.00,500.00,NULL,NULL,'PL71',NULL,NULL,'JPY',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (12,43,1,NULL,1,'2021-12-08 07:18:04',0.00,50.00,NULL,NULL,'P291X1',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Online: Save the Penguins',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (13,32,1,NULL,1,'2022-12-08 00:00:00',0.00,50.00,NULL,NULL,'PL32I',NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (14,32,1,NULL,1,'2023-01-08 00:00:00',0.00,50.00,NULL,NULL,'PL32II',NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (15,59,1,NULL,1,'2021-12-08 17:51:24',0.00,25.00,NULL,NULL,'PL32I591',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,1,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (16,59,1,NULL,1,'2022-01-08 17:51:24',0.00,25.00,NULL,NULL,'PL32I592',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,1,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (17,59,1,NULL,1,'2022-02-08 17:51:24',0.00,25.00,NULL,NULL,'PL32I593',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,1,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (18,59,1,NULL,1,'2022-03-08 17:51:24',0.00,25.00,NULL,NULL,'PL32I594',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,1,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (19,59,1,NULL,1,'2022-04-08 17:51:24',0.00,25.00,NULL,NULL,'PL32I595',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,1,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (20,59,1,NULL,1,'2022-05-08 17:51:24',0.00,25.00,NULL,NULL,'PL32I596',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,1,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (21,59,1,NULL,1,'2022-06-08 17:51:24',0.00,25.00,NULL,NULL,'PL32I597',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,1,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (22,59,1,NULL,1,'2022-07-08 17:51:24',0.00,25.00,NULL,NULL,'PL32I598',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,1,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (23,59,1,NULL,1,'2022-08-08 17:51:24',0.00,25.00,NULL,NULL,'PL32I599',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,1,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (24,59,1,NULL,1,'2022-09-08 17:51:24',0.00,25.00,NULL,NULL,'PL32I5910',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,1,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (25,59,1,NULL,1,'2022-10-08 17:51:24',0.00,25.00,NULL,NULL,'PL32I5911',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,1,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (26,99,1,NULL,1,'2022-07-08 17:51:24',0.00,10.00,NULL,NULL,'PL32I991',NULL,NULL,'CAD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,2,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (27,99,1,NULL,1,'2022-08-08 17:51:24',0.00,10.00,NULL,NULL,'PL32I992',NULL,NULL,'CAD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,2,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (28,99,1,NULL,1,'2022-09-08 17:51:24',0.00,10.00,NULL,NULL,'PL32I993',NULL,NULL,'CAD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,2,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (29,99,1,NULL,1,'2022-10-08 17:51:24',0.00,10.00,NULL,NULL,'PL32I994',NULL,NULL,'CAD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,2,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (30,99,1,NULL,1,'2022-11-08 17:51:24',0.00,10.00,NULL,NULL,'PL32I995',NULL,NULL,'CAD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,2,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (31,103,1,NULL,1,'2023-02-08 17:51:24',0.00,5.00,NULL,NULL,'PL32I1031',NULL,NULL,'EUR',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,3,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (32,150,2,NULL,1,'2023-03-08 17:51:24',0.00,100.00,NULL,NULL,'1fdc115bf2caa1b2',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (33,92,2,NULL,1,'2023-03-08 17:51:24',0.00,50.00,NULL,NULL,'81f4322ba54655a3',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (34,115,2,NULL,1,'2023-03-08 17:51:24',0.00,100.00,NULL,NULL,'667f6994611dd55a',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (35,2,2,NULL,1,'2023-03-08 17:51:24',0.00,50.00,NULL,NULL,'588d59a76cae6cf8',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (36,161,2,NULL,1,'2023-03-08 17:51:24',0.00,100.00,NULL,NULL,'54d78bbeef7aa504',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (37,131,2,NULL,1,'2023-03-08 17:51:24',0.00,50.00,NULL,NULL,'7cec655a46b32df3',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (38,81,2,NULL,1,'2023-03-08 17:51:24',0.00,100.00,NULL,NULL,'7d2c719bd8cd324d',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (39,29,2,NULL,1,'2023-03-08 17:51:24',0.00,50.00,NULL,NULL,'c9ba3631738ce187',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (40,167,2,NULL,1,'2023-03-08 17:51:24',0.00,100.00,NULL,NULL,'6f7be96e6ac78511',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (41,52,2,NULL,1,'2023-03-08 17:51:24',0.00,50.00,NULL,NULL,'1b51fa020d1d72da',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (42,75,2,NULL,1,'2023-03-08 17:51:24',0.00,1200.00,NULL,NULL,'0e6f65441d9b1f96',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Lifetime Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (43,133,2,NULL,1,'2023-03-08 17:51:24',0.00,50.00,NULL,NULL,'8cd3cc9929c91072',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (44,80,2,NULL,1,'2023-03-08 17:51:24',0.00,100.00,NULL,NULL,'8646acabca300f47',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (45,110,2,NULL,1,'2023-03-08 17:51:24',0.00,50.00,NULL,NULL,'497de0006abe0190',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (46,200,2,NULL,1,'2023-03-08 17:51:24',0.00,50.00,NULL,NULL,'28b1900dae7aff83',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (47,196,2,NULL,1,'2023-03-08 17:51:24',0.00,50.00,NULL,NULL,'185530364c885e65',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (48,156,2,NULL,1,'2023-03-08 17:51:24',0.00,100.00,NULL,NULL,'6dd11a5cdf3209fa',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (49,186,2,NULL,1,'2023-03-08 17:51:24',0.00,50.00,NULL,NULL,'e4b98506de79bc01',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (50,69,2,NULL,1,'2023-03-08 17:51:24',0.00,100.00,NULL,NULL,'06f6cdbddcf64e6d',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (51,9,2,NULL,1,'2023-03-08 17:51:24',0.00,100.00,NULL,NULL,'a7809e778b390910',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (52,172,2,NULL,1,'2023-03-08 17:51:24',0.00,100.00,NULL,NULL,'4ca2dbff7ea54933',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (53,117,2,NULL,1,'2023-03-08 17:51:24',0.00,1200.00,NULL,NULL,'4486913d2c04e249',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Lifetime Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (54,6,2,NULL,1,'2023-03-08 17:51:24',0.00,100.00,NULL,NULL,'438c57d1c1fd1fe3',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (55,31,2,NULL,1,'2023-03-08 17:51:24',0.00,50.00,NULL,NULL,'3799d698482be64d',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (56,190,2,NULL,1,'2023-03-08 17:51:24',0.00,100.00,NULL,NULL,'f5c46caec43c2451',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (57,104,2,NULL,1,'2023-03-08 17:51:24',0.00,50.00,NULL,NULL,'8b2c2a53d97e3dad',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (58,10,2,NULL,1,'2023-03-08 17:51:24',0.00,100.00,NULL,NULL,'aecd1a8ecdf6d337',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (59,91,2,NULL,1,'2023-03-08 17:51:24',0.00,50.00,NULL,NULL,'3c8ed4d8102e10ff',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (60,5,2,NULL,1,'2023-03-08 17:51:24',0.00,100.00,NULL,NULL,'c28d2abf7ff6da09',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (61,178,2,NULL,1,'2023-03-08 17:51:24',0.00,100.00,NULL,NULL,'a575258aacf3f1ed',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (63,114,4,NULL,1,'2023-03-08 17:51:24',0.00,50.00,NULL,NULL,'a9fd1d12a7f15a3f',NULL,NULL,'USD',NULL,NULL,'2023-03-08 17:51:24',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (64,17,4,NULL,1,'2023-03-08 17:51:24',0.00,50.00,NULL,NULL,'afb5d3a4ac3a688e',NULL,NULL,'USD',NULL,NULL,'2023-03-08 17:51:24',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (65,188,4,NULL,1,'2023-03-08 17:51:24',0.00,800.00,NULL,NULL,'f8db820678bcd7cc',NULL,NULL,'USD',NULL,NULL,'2023-03-08 17:51:24',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (66,138,4,NULL,1,'2023-03-08 17:51:24',0.00,50.00,NULL,NULL,'c99d90d0291f847b',NULL,NULL,'USD',NULL,NULL,'2023-03-08 17:51:24',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (67,31,4,NULL,1,'2023-03-08 17:51:24',0.00,50.00,NULL,NULL,'1d560c9527e8accb',NULL,NULL,'USD',NULL,NULL,'2023-03-08 17:51:24',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (68,33,4,NULL,1,'2023-03-08 17:51:24',0.00,800.00,NULL,NULL,'c01b09d93188da88',NULL,NULL,'USD',NULL,NULL,'2023-03-08 17:51:24',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (69,147,4,NULL,1,'2023-03-08 17:51:24',0.00,50.00,NULL,NULL,'e3f3771a7067bea4',NULL,NULL,'USD',NULL,NULL,'2023-03-08 17:51:24',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (70,144,4,NULL,1,'2023-03-08 17:51:24',0.00,50.00,NULL,NULL,'afaeb5cc73c77375',NULL,NULL,'USD',NULL,NULL,'2023-03-08 17:51:24',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (71,51,4,NULL,1,'2023-03-08 17:51:24',0.00,800.00,NULL,NULL,'62dc9d3083ef8d29',NULL,NULL,'USD',NULL,NULL,'2023-03-08 17:51:24',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (72,129,4,NULL,1,'2023-03-08 17:51:24',0.00,50.00,NULL,NULL,'2ff0d71377e49636',NULL,NULL,'USD',NULL,NULL,'2023-03-08 17:51:24',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (73,47,4,NULL,1,'2023-03-08 17:51:24',0.00,50.00,NULL,NULL,'b08fb45451064268',NULL,NULL,'USD',NULL,NULL,'2023-03-08 17:51:24',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (74,179,4,NULL,1,'2023-03-08 17:51:24',0.00,800.00,NULL,NULL,'926bebe9e62b8a29',NULL,NULL,'USD',NULL,NULL,'2023-03-08 17:51:24',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (75,84,4,NULL,1,'2023-03-08 17:51:24',0.00,50.00,NULL,NULL,'97a62b410454248e',NULL,NULL,'USD',NULL,NULL,'2023-03-08 17:51:24',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (76,163,4,NULL,1,'2023-03-08 17:51:24',0.00,50.00,NULL,NULL,'b4b0d1c52be01033',NULL,NULL,'USD',NULL,NULL,'2023-03-08 17:51:24',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (77,91,4,NULL,1,'2023-03-08 17:51:24',0.00,800.00,NULL,NULL,'38ade21215ba6bf4',NULL,NULL,'USD',NULL,NULL,'2023-03-08 17:51:24',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (78,125,4,NULL,1,'2023-03-08 17:51:24',0.00,50.00,NULL,NULL,'a46dc922d28abe31',NULL,NULL,'USD',NULL,NULL,'2023-03-08 17:51:24',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (79,12,4,NULL,1,'2023-03-08 17:51:24',0.00,50.00,NULL,NULL,'9743c42b0384e647',NULL,NULL,'USD',NULL,NULL,'2023-03-08 17:51:24',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (80,103,4,NULL,1,'2023-03-08 17:51:24',0.00,800.00,NULL,NULL,'7d8a88c64846dda8',NULL,NULL,'USD',NULL,NULL,'2023-03-08 17:51:24',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (81,27,4,NULL,1,'2023-03-08 17:51:24',0.00,50.00,NULL,NULL,'a00b60545deaf650',NULL,NULL,'USD',NULL,NULL,'2023-03-08 17:51:24',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (82,6,4,NULL,1,'2023-03-08 17:51:24',0.00,50.00,NULL,NULL,'765707168e894f41',NULL,NULL,'USD',NULL,NULL,'2023-03-08 17:51:24',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (83,181,4,NULL,1,'2023-03-08 17:51:24',0.00,800.00,NULL,NULL,'9d2b0f6cb5cf4a74',NULL,NULL,'USD',NULL,NULL,'2023-03-08 17:51:24',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (84,68,4,NULL,1,'2023-03-08 17:51:24',0.00,50.00,NULL,NULL,'e63377713fe49338',NULL,NULL,'USD',NULL,NULL,'2023-03-08 17:51:24',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (85,11,4,NULL,1,'2023-03-08 17:51:24',0.00,50.00,NULL,NULL,'38bfbfd4668d7967',NULL,NULL,'USD',NULL,NULL,'2023-03-08 17:51:24',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (86,19,4,NULL,1,'2023-03-08 17:51:24',0.00,800.00,NULL,NULL,'bfee4d0831cb8321',NULL,NULL,'USD',NULL,NULL,'2023-03-08 17:51:24',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (87,112,4,NULL,1,'2023-03-08 17:51:24',0.00,800.00,NULL,NULL,'8aa8adc186407e59',NULL,NULL,'USD',NULL,NULL,'2023-03-08 17:51:24',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (88,61,4,NULL,1,'2023-03-08 17:51:24',0.00,50.00,NULL,NULL,'55ab86113cd978c4',NULL,NULL,'USD',NULL,NULL,'2023-03-08 17:51:24',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (89,8,4,NULL,1,'2023-03-08 17:51:24',0.00,50.00,NULL,NULL,'7a3f91c97d8c028a',NULL,NULL,'USD',NULL,NULL,'2023-03-08 17:51:24',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (90,186,4,NULL,1,'2023-03-08 17:51:24',0.00,800.00,NULL,NULL,'4832ffd6f87eacbf',NULL,NULL,'USD',NULL,NULL,'2023-03-08 17:51:24',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (91,48,4,NULL,1,'2023-03-08 17:51:24',0.00,50.00,NULL,NULL,'3c65df9d4ef2a49f',NULL,NULL,'USD',NULL,NULL,'2023-03-08 17:51:24',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (92,153,4,NULL,1,'2023-03-08 17:51:24',0.00,50.00,NULL,NULL,'dda9e6435e6dd379',NULL,NULL,'USD',NULL,NULL,'2023-03-08 17:51:24',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (93,43,4,NULL,1,'2023-03-08 17:51:24',0.00,800.00,NULL,NULL,'205f2a4a998b13ba',NULL,NULL,'USD',NULL,NULL,'2023-03-08 17:51:24',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (94,55,4,NULL,1,'2023-03-08 17:51:24',0.00,50.00,NULL,NULL,'da90428ab22f5c79',NULL,NULL,'USD',NULL,NULL,'2023-03-08 17:51:24',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (95,200,4,NULL,1,'2023-03-08 17:51:24',0.00,50.00,NULL,NULL,'5da413fb1c2b25ce',NULL,NULL,'USD',NULL,NULL,'2023-03-08 17:51:24',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (96,120,4,NULL,1,'2023-03-08 17:51:24',0.00,800.00,NULL,NULL,'04af23a889245e0b',NULL,NULL,'USD',NULL,NULL,'2023-03-08 17:51:24',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (97,95,4,NULL,1,'2023-03-08 17:51:24',0.00,50.00,NULL,NULL,'67f5c44e7356aaed',NULL,NULL,'USD',NULL,NULL,'2023-03-08 17:51:24',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (98,97,4,NULL,1,'2023-03-08 17:51:24',0.00,50.00,NULL,NULL,'9c0d80e0215a4af4',NULL,NULL,'USD',NULL,NULL,'2023-03-08 17:51:24',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (99,38,4,NULL,1,'2023-03-08 17:51:24',0.00,800.00,NULL,NULL,'424618e00083abc8',NULL,NULL,'USD',NULL,NULL,'2023-03-08 17:51:24',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (100,169,4,NULL,1,'2023-03-08 17:51:24',0.00,50.00,NULL,NULL,'0c3f4e2fd4d50aaf',NULL,NULL,'USD',NULL,NULL,'2023-03-08 17:51:24',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (101,194,4,NULL,1,'2023-03-08 17:51:24',0.00,50.00,NULL,NULL,'59a33a93832546aa',NULL,NULL,'USD',NULL,NULL,'2023-03-08 17:51:24',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (102,13,4,NULL,1,'2023-03-08 17:51:24',0.00,800.00,NULL,NULL,'cf2aaa549badc0a4',NULL,NULL,'USD',NULL,NULL,'2023-03-08 17:51:24',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (103,142,4,NULL,1,'2023-03-08 17:51:24',0.00,50.00,NULL,NULL,'44d298aa357b7acb',NULL,NULL,'USD',NULL,NULL,'2023-03-08 17:51:24',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (104,60,4,NULL,1,'2023-03-08 17:51:24',0.00,50.00,NULL,NULL,'c5615bff744482f8',NULL,NULL,'USD',NULL,NULL,'2023-03-08 17:51:24',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (105,29,4,NULL,1,'2023-03-08 17:51:24',0.00,800.00,NULL,NULL,'7ac30e96b7904a44',NULL,NULL,'USD',NULL,NULL,'2023-03-08 17:51:24',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (106,1,4,NULL,1,'2023-03-08 17:51:24',0.00,50.00,NULL,NULL,'cdf19482f20c52e5',NULL,NULL,'USD',NULL,NULL,'2023-03-08 17:51:24',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (107,161,4,NULL,1,'2023-03-08 17:51:24',0.00,50.00,NULL,NULL,'678444c28cbe6793',NULL,NULL,'USD',NULL,NULL,'2023-03-08 17:51:24',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (108,113,4,NULL,1,'2023-03-08 17:51:24',0.00,800.00,NULL,NULL,'e7a45fb0a2ee1958',NULL,NULL,'USD',NULL,NULL,'2023-03-08 17:51:24',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (109,151,4,NULL,1,'2023-03-08 17:51:24',0.00,50.00,NULL,NULL,'8dce708fef95a7bd',NULL,NULL,'USD',NULL,NULL,'2023-03-08 17:51:24',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (110,167,4,NULL,1,'2023-03-08 17:51:24',0.00,50.00,NULL,NULL,'8ec594bb041bf3f0',NULL,NULL,'USD',NULL,NULL,'2023-03-08 17:51:24',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (111,18,4,NULL,1,'2023-03-08 17:51:24',0.00,800.00,NULL,NULL,'3f1f02e8e2eb3a25',NULL,NULL,'USD',NULL,NULL,'2023-03-08 17:51:24',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (112,164,4,NULL,1,'2023-03-08 17:51:24',0.00,800.00,NULL,NULL,'61e4b389dd476db8',NULL,NULL,'USD',NULL,NULL,'2023-03-08 17:51:24',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0);
 /*!40000 ALTER TABLE `civicrm_contribution` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -2442,9 +2446,9 @@ UNLOCK TABLES;
 LOCK TABLES `civicrm_contribution_recur` WRITE;
 /*!40000 ALTER TABLE `civicrm_contribution_recur` DISABLE KEYS */;
 INSERT INTO `civicrm_contribution_recur` (`id`, `contact_id`, `amount`, `currency`, `frequency_unit`, `frequency_interval`, `installments`, `start_date`, `create_date`, `modified_date`, `cancel_date`, `cancel_reason`, `end_date`, `processor_id`, `payment_token_id`, `trxn_id`, `invoice_id`, `contribution_status_id`, `is_test`, `cycle_day`, `next_sched_contribution_date`, `failure_count`, `failure_retry_date`, `auto_renew`, `payment_processor_id`, `financial_type_id`, `payment_instrument_id`, `campaign_id`, `is_email_receipt`) VALUES
- (1,59,25.00,'USD','month',1,12,'2021-10-25 11:10:21','2023-01-25 11:10:21','2023-01-25 00:10:21',NULL,'',NULL,'CLC45',NULL,'56799',NULL,1,0,1,NULL,0,NULL,0,1,NULL,NULL,NULL,1),
- (2,99,10.00,'CAD','month',1,6,'2022-05-25 11:10:21','2023-01-25 11:10:21','2023-01-25 00:10:21','2022-12-25 11:10:21','No longer interested',NULL,'CLR35',NULL,'22799',NULL,3,0,1,NULL,0,NULL,0,1,NULL,NULL,NULL,1),
- (3,103,5.00,'EUR','month',3,3,'2022-12-25 11:10:21','2023-01-25 11:10:21','2023-01-25 00:10:21',NULL,'',NULL,'EGR12',NULL,'44889',NULL,5,0,1,'2023-03-25 11:10:21',0,NULL,0,1,NULL,NULL,NULL,1);
+ (1,59,25.00,'USD','month',1,12,'2021-12-08 17:51:24','2023-03-08 17:51:24','2023-03-08 06:51:24',NULL,'',NULL,'CLC45',NULL,'56799',NULL,1,0,1,NULL,0,NULL,0,1,NULL,NULL,NULL,1),
+ (2,99,10.00,'CAD','month',1,6,'2022-07-08 17:51:24','2023-03-08 17:51:24','2023-03-08 06:51:24','2023-02-08 17:51:24','No longer interested',NULL,'CLR35',NULL,'22799',NULL,3,0,1,NULL,0,NULL,0,1,NULL,NULL,NULL,1),
+ (3,103,5.00,'EUR','month',3,3,'2023-02-08 17:51:24','2023-03-08 17:51:24','2023-03-08 06:51:24',NULL,'',NULL,'EGR12',NULL,'44889',NULL,5,0,1,'2023-05-08 17:51:24',0,NULL,0,1,NULL,NULL,NULL,1);
 /*!40000 ALTER TABLE `civicrm_contribution_recur` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -2455,8 +2459,8 @@ UNLOCK TABLES;
 LOCK TABLES `civicrm_contribution_soft` WRITE;
 /*!40000 ALTER TABLE `civicrm_contribution_soft` DISABLE KEYS */;
 INSERT INTO `civicrm_contribution_soft` (`id`, `contribution_id`, `contact_id`, `amount`, `currency`, `pcp_id`, `pcp_display_in_roll`, `pcp_roll_nickname`, `pcp_personal_note`, `soft_credit_type_id`) VALUES
- (1,9,47,10.00,'USD',1,1,'Jones Family','Helping Hands',10),
- (2,10,47,250.00,'USD',1,1,'Annie and the kids','Annie Helps',10);
+ (1,9,150,10.00,'USD',1,1,'Jones Family','Helping Hands',10),
+ (2,10,150,250.00,'USD',1,1,'Annie and the kids','Annie Helps',10);
 /*!40000 ALTER TABLE `civicrm_contribution_soft` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -3055,7 +3059,7 @@ UNLOCK TABLES;
 LOCK TABLES `civicrm_domain` WRITE;
 /*!40000 ALTER TABLE `civicrm_domain` DISABLE KEYS */;
 INSERT INTO `civicrm_domain` (`id`, `name`, `description`, `version`, `contact_id`, `locales`, `locale_custom_strings`) VALUES
- (1,'Default Domain Name',NULL,'5.60.0',1,NULL,'a:1:{s:5:\"en_US\";a:0:{}}');
+ (1,'Default Domain Name',NULL,'5.61.0',1,NULL,'a:1:{s:5:\"en_US\";a:0:{}}');
 /*!40000 ALTER TABLE `civicrm_domain` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -3067,201 +3071,194 @@ LOCK TABLES `civicrm_email` WRITE;
 /*!40000 ALTER TABLE `civicrm_email` DISABLE KEYS */;
 INSERT INTO `civicrm_email` (`id`, `contact_id`, `location_type_id`, `email`, `is_primary`, `is_billing`, `on_hold`, `is_bulkmail`, `hold_date`, `reset_date`, `signature_text`, `signature_html`) VALUES
  (1,1,1,'fixme.domainemail@example.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (2,199,1,'billyjameson17@notmail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),
- (3,47,1,'ar.cooper67@testmail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),
- (4,154,1,'deforest.brittney29@airmail.biz',1,0,0,0,NULL,NULL,NULL,NULL),
- (5,154,1,'deforestb@mymail.co.uk',0,0,0,0,NULL,NULL,NULL,NULL),
- (6,50,1,'merriegrant@infomail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),
- (7,75,1,'josefai65@example.info',1,0,0,0,NULL,NULL,NULL,NULL),
- (8,4,1,'ebachman@fishmail.com',1,0,0,0,NULL,NULL,NULL,NULL),
- (9,4,1,'eleonorbachman66@mymail.info',0,0,0,0,NULL,NULL,NULL,NULL),
- (10,92,1,'sz.cooper50@example.com',1,0,0,0,NULL,NULL,NULL,NULL),
- (11,92,1,'cooper.shauna@spamalot.org',0,0,0,0,NULL,NULL,NULL,NULL),
- (12,31,1,'teddyjensen45@mymail.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),
- (13,158,1,'teddyrobertson6@lol.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (14,158,1,'robertson.b.teddy78@fishmail.co.uk',0,0,0,0,NULL,NULL,NULL,NULL),
- (15,137,1,'tobylee@mymail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),
- (16,137,1,'tobyl17@lol.co.uk',0,0,0,0,NULL,NULL,NULL,NULL),
- (17,138,1,'reynoldsi@example.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),
- (18,138,1,'reynoldsi@testmail.co.uk',0,0,0,0,NULL,NULL,NULL,NULL),
- (19,13,1,'meiy27@notmail.biz',1,0,0,0,NULL,NULL,NULL,NULL),
- (20,99,1,'brigettew19@fakemail.biz',1,0,0,0,NULL,NULL,NULL,NULL),
- (21,2,1,'mcreynolds.justina43@mymail.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),
- (22,113,1,'meganb50@fakemail.info',1,0,0,0,NULL,NULL,NULL,NULL),
- (23,130,1,'ashley15@notmail.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (24,130,1,'chowski.ashley@notmail.co.in',0,0,0,0,NULL,NULL,NULL,NULL),
- (25,108,1,'miguelcooper@fishmail.biz',1,0,0,0,NULL,NULL,NULL,NULL),
- (26,14,1,'parker.w.billy@testmail.biz',1,0,0,0,NULL,NULL,NULL,NULL),
- (27,14,1,'billyp96@lol.org',0,0,0,0,NULL,NULL,NULL,NULL),
- (28,198,1,'craigp99@infomail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),
- (29,198,1,'prentice.craig@infomail.co.pl',0,0,0,0,NULL,NULL,NULL,NULL),
- (30,86,1,'co.parker26@mymail.biz',1,0,0,0,NULL,NULL,NULL,NULL),
- (31,161,1,'jacobsj@notmail.net',1,0,0,0,NULL,NULL,NULL,NULL),
- (32,161,1,'jacobs.juliann29@example.co.nz',0,0,0,0,NULL,NULL,NULL,NULL),
- (33,165,1,'russells@testmail.info',1,0,0,0,NULL,NULL,NULL,NULL),
- (34,165,1,'russellsmith@infomail.org',0,0,0,0,NULL,NULL,NULL,NULL),
- (35,37,1,'wilsonn@fishmail.net',1,0,0,0,NULL,NULL,NULL,NULL),
- (36,37,1,'wilson.norris33@sample.co.nz',0,0,0,0,NULL,NULL,NULL,NULL),
- (37,141,1,'reynolds.barry45@fakemail.info',1,0,0,0,NULL,NULL,NULL,NULL),
- (38,170,1,'darendeforest19@testing.com',1,0,0,0,NULL,NULL,NULL,NULL),
- (39,41,1,'my.cooper33@fakemail.info',1,0,0,0,NULL,NULL,NULL,NULL),
- (40,41,1,'cooperm12@notmail.co.nz',0,0,0,0,NULL,NULL,NULL,NULL),
- (41,21,1,'smithi90@lol.com',1,0,0,0,NULL,NULL,NULL,NULL),
- (42,181,1,'olsenm@lol.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (43,73,1,'ivanov.scarlet@mymail.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (44,73,1,'scarletivanov@testing.com',0,0,0,0,NULL,NULL,NULL,NULL),
- (45,53,1,'jameson.scott@fakemail.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (46,53,1,'scottjameson@example.com',0,0,0,0,NULL,NULL,NULL,NULL),
- (47,178,1,'ll.ivanov@spamalot.info',1,0,0,0,NULL,NULL,NULL,NULL),
- (48,178,1,'lincolnivanov@notmail.co.nz',0,0,0,0,NULL,NULL,NULL,NULL),
- (49,155,1,'chowski.tanya79@example.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),
- (50,155,1,'tanyachowski86@fakemail.co.in',0,0,0,0,NULL,NULL,NULL,NULL),
- (51,177,1,'aparker25@lol.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (52,116,1,'zope.billy@example.com',1,0,0,0,NULL,NULL,NULL,NULL),
- (53,171,1,'laree91@fakemail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),
- (54,129,1,'ivanov.rodrigo@example.co.in',1,0,0,0,NULL,NULL,NULL,NULL),
- (55,51,1,'teresaprentice@example.net',1,0,0,0,NULL,NULL,NULL,NULL),
- (56,51,1,'tm.prentice@notmail.co.in',0,0,0,0,NULL,NULL,NULL,NULL),
- (57,173,1,'kathlynrobertson27@infomail.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (58,134,1,'sd.wattson@testmail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),
- (59,23,1,'roberts.ivey@notmail.biz',1,0,0,0,NULL,NULL,NULL,NULL),
- (60,23,1,'roberts.ivey@fishmail.co.in',0,0,0,0,NULL,NULL,NULL,NULL),
- (61,118,1,'cruzj98@sample.net',1,0,0,0,NULL,NULL,NULL,NULL),
- (62,118,1,'cruzj74@testing.org',0,0,0,0,NULL,NULL,NULL,NULL),
- (63,82,1,'tterrell63@spamalot.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (64,72,1,'clintm@mymail.info',1,0,0,0,NULL,NULL,NULL,NULL),
- (65,72,1,'clintmller34@sample.biz',0,0,0,0,NULL,NULL,NULL,NULL),
- (66,71,1,'wilsons50@testing.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),
- (67,43,1,'jones.bernadette@example.com',1,0,0,0,NULL,NULL,NULL,NULL),
- (68,182,1,'robertson.delana@airmail.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (69,182,1,'robertsond@fakemail.net',0,0,0,0,NULL,NULL,NULL,NULL),
- (70,52,1,'elbertz@mymail.com',1,0,0,0,NULL,NULL,NULL,NULL),
- (71,36,1,'deforest.teresa19@fishmail.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (72,36,1,'deforest.l.teresa17@testmail.com',0,0,0,0,NULL,NULL,NULL,NULL),
- (73,39,1,'bachmant26@fishmail.info',1,0,0,0,NULL,NULL,NULL,NULL),
- (74,39,1,'tbachman97@fakemail.org',0,0,0,0,NULL,NULL,NULL,NULL),
- (75,159,1,'russellwilson68@notmail.biz',1,0,0,0,NULL,NULL,NULL,NULL),
- (76,168,1,'santinao41@fishmail.co.in',1,0,0,0,NULL,NULL,NULL,NULL),
- (77,136,1,'felishab@sample.biz',1,0,0,0,NULL,NULL,NULL,NULL),
- (78,94,1,'barkley.s.bryon97@mymail.net',1,0,0,0,NULL,NULL,NULL,NULL),
- (79,40,1,'rwagner@notmail.net',1,0,0,0,NULL,NULL,NULL,NULL),
- (80,40,1,'rolandwagner@airmail.info',0,0,0,0,NULL,NULL,NULL,NULL),
- (81,69,1,'andrewterry@testmail.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),
- (82,69,1,'terry.andrew36@testing.net',0,0,0,0,NULL,NULL,NULL,NULL),
- (83,12,1,'maganterry@infomail.biz',1,0,0,0,NULL,NULL,NULL,NULL),
- (84,143,1,'cooper-joneso@spamalot.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),
- (85,27,1,'an.cooper-jones@mymail.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (86,27,1,'an.cooper-jones@fishmail.co.in',0,0,0,0,NULL,NULL,NULL,NULL),
- (87,122,1,'mller.claudio25@mymail.net',1,0,0,0,NULL,NULL,NULL,NULL),
- (88,122,1,'mller.claudio65@infomail.com',0,0,0,0,NULL,NULL,NULL,NULL),
- (89,157,1,'mllera@notmail.net',1,0,0,0,NULL,NULL,NULL,NULL),
- (90,157,1,'mller.a.alexia@testmail.co.pl',0,0,0,0,NULL,NULL,NULL,NULL),
- (91,150,1,'bu.gonzlez@infomail.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),
- (92,150,1,'gonzlez.billy16@spamalot.co.pl',0,0,0,0,NULL,NULL,NULL,NULL),
- (93,62,1,'kaceycruz-gonzlez85@example.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),
- (94,64,1,'mgonzlez@testmail.net',1,0,0,0,NULL,NULL,NULL,NULL),
- (95,64,1,'maxwellg34@spamalot.co.nz',0,0,0,0,NULL,NULL,NULL,NULL),
- (96,106,1,'dazs@notmail.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (97,106,1,'daz.sonny55@spamalot.biz',0,0,0,0,NULL,NULL,NULL,NULL),
- (98,3,1,'daz.kenny92@testing.biz',1,0,0,0,NULL,NULL,NULL,NULL),
- (99,3,1,'dazk@testmail.com',0,0,0,0,NULL,NULL,NULL,NULL),
- (100,22,1,'russelldaz80@airmail.com',1,0,0,0,NULL,NULL,NULL,NULL),
- (101,131,1,'wilson.i.rosario47@airmail.co.in',1,0,0,0,NULL,NULL,NULL,NULL),
- (102,38,1,'winfordd@example.net',1,0,0,0,NULL,NULL,NULL,NULL),
- (103,38,1,'dimitrov.winford46@spamalot.org',0,0,0,0,NULL,NULL,NULL,NULL),
- (104,124,1,'swilson-dimitrov36@testmail.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),
- (105,124,1,'wilson-dimitrovs26@spamalot.com',0,0,0,0,NULL,NULL,NULL,NULL),
- (106,9,1,'jn.wilson-dimitrov@spamalot.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),
- (107,100,1,'mjameson@notmail.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (108,187,1,'jameson.v.justina@airmail.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (109,187,1,'jameson.justina56@fakemail.org',0,0,0,0,NULL,NULL,NULL,NULL),
- (110,7,1,'jameson.elbert@airmail.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),
- (111,26,1,'terrye@fakemail.biz',1,0,0,0,NULL,NULL,NULL,NULL),
- (112,26,1,'terry.errol60@testmail.biz',0,0,0,0,NULL,NULL,NULL,NULL),
- (113,91,1,'shaunaterry@spamalot.net',1,0,0,0,NULL,NULL,NULL,NULL),
- (114,91,1,'shaunaterry@example.com',0,0,0,0,NULL,NULL,NULL,NULL),
- (115,19,1,'sonnyterry@lol.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),
- (116,19,1,'terry.g.sonny74@notmail.com',0,0,0,0,NULL,NULL,NULL,NULL),
- (117,76,1,'brzczysawjensen33@infomail.net',1,0,0,0,NULL,NULL,NULL,NULL),
- (118,109,1,'beulaj@infomail.com',1,0,0,0,NULL,NULL,NULL,NULL),
- (119,109,1,'beulaj@notmail.org',0,0,0,0,NULL,NULL,NULL,NULL),
- (120,152,1,'adamsm26@example.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),
- (121,197,1,'adams.landon@mymail.info',1,0,0,0,NULL,NULL,NULL,NULL),
- (122,142,1,'landonz97@example.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),
- (123,142,1,'zope.landon89@example.co.uk',0,0,0,0,NULL,NULL,NULL,NULL),
- (124,114,1,'roberts.kacey@fishmail.biz',1,0,0,0,NULL,NULL,NULL,NULL),
- (125,70,1,'zope-robertss@example.biz',1,0,0,0,NULL,NULL,NULL,NULL),
- (126,70,1,'zope-roberts.scarlet@testmail.org',0,0,0,0,NULL,NULL,NULL,NULL),
- (127,67,1,'ablackwell@lol.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),
- (128,96,1,'zope-blackwellb@notmail.info',1,0,0,0,NULL,NULL,NULL,NULL),
- (129,96,1,'bo.zope-blackwell@mymail.org',0,0,0,0,NULL,NULL,NULL,NULL),
- (130,44,1,'brigetteb@fishmail.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),
- (131,33,1,'blackwellt@testmail.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),
- (132,135,1,'eleonorr47@testmail.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),
- (133,97,1,'wattson.w.jed70@testmail.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),
- (134,97,1,'jw.wattson75@infomail.com',0,0,0,0,NULL,NULL,NULL,NULL),
- (135,190,1,'cprentice72@testmail.co.in',1,0,0,0,NULL,NULL,NULL,NULL),
- (136,98,1,'prenticea@fakemail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),
- (137,98,1,'an.prentice@airmail.info',0,0,0,0,NULL,NULL,NULL,NULL),
- (138,102,1,'prenticer@testing.net',1,0,0,0,NULL,NULL,NULL,NULL),
- (139,102,1,'prenticer87@lol.biz',0,0,0,0,NULL,NULL,NULL,NULL),
- (140,32,1,'miguelsamuels76@fakemail.net',1,0,0,0,NULL,NULL,NULL,NULL),
- (141,180,1,'brents@fishmail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),
- (142,147,1,'bo.nielsen@notmail.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),
- (143,49,1,'irvincooper-nielsen@fakemail.co.in',1,0,0,0,NULL,NULL,NULL,NULL),
- (144,49,1,'cooper-nielsen.irvin@sample.co.uk',0,0,0,0,NULL,NULL,NULL,NULL),
- (145,28,1,'cooper-nielsen.winford@fishmail.net',1,0,0,0,NULL,NULL,NULL,NULL),
- (146,121,1,'zope.a.maria@spamalot.co.in',1,0,0,0,NULL,NULL,NULL,NULL),
- (147,121,1,'mariaz@fakemail.biz',0,0,0,0,NULL,NULL,NULL,NULL),
- (148,112,1,'allanblackwell@airmail.biz',1,0,0,0,NULL,NULL,NULL,NULL),
- (149,183,1,'valeneblackwell18@spamalot.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),
- (150,183,1,'blackwell.valene@notmail.co.pl',0,0,0,0,NULL,NULL,NULL,NULL),
- (151,110,1,'blackwellr@testing.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),
- (152,110,1,'russellblackwell@example.org',0,0,0,0,NULL,NULL,NULL,NULL),
- (153,149,1,'blackwell.kathlyn@spamalot.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (154,42,1,'kiarajameson25@infomail.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),
- (155,88,1,'nicolejameson@fakemail.com',1,0,0,0,NULL,NULL,NULL,NULL),
- (156,57,1,'dimitrov.rolando59@testing.net',1,0,0,0,NULL,NULL,NULL,NULL),
- (157,57,1,'rdimitrov@airmail.info',0,0,0,0,NULL,NULL,NULL,NULL),
- (158,10,1,'av.gonzlez-jameson-dimitrov96@notmail.biz',1,0,0,0,NULL,NULL,NULL,NULL),
- (159,10,1,'angelikag@mymail.net',0,0,0,0,NULL,NULL,NULL,NULL),
- (160,194,1,'jedj@infomail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),
- (161,194,1,'jameson-dimitrov.jed@lol.co.uk',0,0,0,0,NULL,NULL,NULL,NULL),
- (162,93,3,'contact@locallegaltrust.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (163,115,2,'wilsona5@locallegaltrust.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (164,140,3,'feedback@baysustainabilitypartners.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (165,185,2,'angelikajacobs@baysustainabilitypartners.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (166,128,3,'feedback@unitedculture.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (167,120,2,'tanyamller@unitedculture.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (168,163,3,'contact@minnesotasystems.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (169,3,2,'kennydaz@minnesotasystems.org',0,0,0,0,NULL,NULL,NULL,NULL),
- (170,132,3,'sales@virginianetwork.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (171,184,3,'contact@lipoetrytrust.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (172,47,2,'allancooper18@lipoetrytrust.org',0,0,0,0,NULL,NULL,NULL,NULL),
- (173,176,3,'sales@wyomingsustainabilityinitiative.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (174,87,3,'info@californiasportstrust.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (175,95,2,'adams.herminia25@californiasportstrust.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (176,77,3,'sales@whitfieldagriculture.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (177,142,2,'@whitfieldagriculture.org',0,0,0,0,NULL,NULL,NULL,NULL),
- (178,160,3,'sales@greenvillesports.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (179,183,2,'valeneb36@greenvillesports.org',0,0,0,0,NULL,NULL,NULL,NULL),
- (180,123,3,'sales@indianasportspartnership.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (181,83,2,'mllerr@indianasportspartnership.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (182,59,3,'sales@washingtonwellness.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (183,17,3,'service@laceyvilleartsnetwork.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (184,10,2,'angelikagonzlez-jameson-dimitrov@laceyvilleartsnetwork.org',0,0,0,0,NULL,NULL,NULL,NULL),
- (185,126,3,'contact@louisianatechnology.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (186,15,2,'kiaraterry@louisianatechnology.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (187,188,3,'service@texasinitiative.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (188,159,2,'.96@texasinitiative.org',0,0,0,0,NULL,NULL,NULL,NULL),
- (189,78,3,'feedback@collegecenter.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (190,146,3,'sales@progressivefund.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (191,45,2,'chowskia94@progressivefund.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (192,175,3,'feedback@greenschool.org',1,0,0,0,NULL,NULL,NULL,NULL),
- (193,202,1,'jenny@example.com',1,0,0,0,NULL,NULL,NULL,NULL),
- (194,NULL,1,'development@example.org',0,0,0,0,NULL,NULL,NULL,NULL),
- (195,NULL,1,'tournaments@example.org',0,0,0,0,NULL,NULL,NULL,NULL),
- (196,NULL,1,'celebration@example.org',0,0,0,0,NULL,NULL,NULL,NULL);
+ (2,32,1,'mdaz@notmail.biz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (3,195,1,'parker.l.rodrigo@sample.info',1,0,0,0,NULL,NULL,NULL,NULL),
+ (4,113,1,'bachman.sherman66@example.com',1,0,0,0,NULL,NULL,NULL,NULL),
+ (5,113,1,'bachman.n.sherman@fishmail.com',0,0,0,0,NULL,NULL,NULL,NULL),
+ (6,9,1,'barkley.rolando@lol.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),
+ (7,73,1,'kandacep@airmail.net',1,0,0,0,NULL,NULL,NULL,NULL),
+ (8,73,1,'prentice.kandace@airmail.co.nz',0,0,0,0,NULL,NULL,NULL,NULL),
+ (9,40,1,'reynoldsr@infomail.biz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (10,40,1,'rebekahr32@testmail.co.pl',0,0,0,0,NULL,NULL,NULL,NULL),
+ (11,75,1,'smithr@infomail.info',1,0,0,0,NULL,NULL,NULL,NULL),
+ (12,60,1,'daz.t.rosario@notmail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),
+ (13,179,1,'mcreynolds.arlyne57@testing.com',1,0,0,0,NULL,NULL,NULL,NULL),
+ (14,179,1,'arlynem70@testing.info',0,0,0,0,NULL,NULL,NULL,NULL),
+ (15,31,1,'shadblackwell45@notmail.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (16,101,1,'wilsonr86@lol.biz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (17,174,1,'leet@airmail.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (18,166,1,'eleonord@airmail.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (19,29,1,'ashleyr31@testmail.com',1,0,0,0,NULL,NULL,NULL,NULL),
+ (20,154,1,'olsen.allen35@mymail.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (21,154,1,'alleno@notmail.info',0,0,0,0,NULL,NULL,NULL,NULL),
+ (22,134,1,'bjones97@airmail.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (23,69,1,'bachman.y.claudio@spamalot.info',1,0,0,0,NULL,NULL,NULL,NULL),
+ (24,86,1,'io.jones26@testmail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),
+ (25,86,1,'irisj60@notmail.org',0,0,0,0,NULL,NULL,NULL,NULL),
+ (26,76,1,'jerometerry@sample.net',1,0,0,0,NULL,NULL,NULL,NULL),
+ (27,184,1,'fj.jameson@sample.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (28,184,1,'felishajameson19@infomail.com',0,0,0,0,NULL,NULL,NULL,NULL),
+ (29,199,1,'jamesona44@fishmail.net',1,0,0,0,NULL,NULL,NULL,NULL),
+ (30,136,1,'prentice.herminia95@sample.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (31,136,1,'prentice.w.herminia@testing.net',0,0,0,0,NULL,NULL,NULL,NULL),
+ (32,114,1,'smith.maxwell@infomail.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (33,35,1,'kq.terry@fakemail.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (34,72,1,'brigettejensen41@fishmail.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (35,72,1,'jensen.u.brigette93@fakemail.net',0,0,0,0,NULL,NULL,NULL,NULL),
+ (36,175,1,'jones.e.shad12@fakemail.co.in',1,0,0,0,NULL,NULL,NULL,NULL),
+ (37,175,1,'jones.e.shad1@spamalot.co.nz',0,0,0,0,NULL,NULL,NULL,NULL),
+ (38,104,1,'samson.sherman95@fakemail.biz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (39,104,1,'shermansamson41@testing.org',0,0,0,0,NULL,NULL,NULL,NULL),
+ (40,30,1,'norriscruz29@notmail.biz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (41,140,1,'chowskie@fishmail.com',1,0,0,0,NULL,NULL,NULL,NULL),
+ (42,78,1,'sonnyw@fishmail.net',1,0,0,0,NULL,NULL,NULL,NULL),
+ (43,145,1,'herminiapatel@lol.co.in',1,0,0,0,NULL,NULL,NULL,NULL),
+ (44,74,1,'chowski.rosario@testmail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),
+ (45,74,1,'rosariochowski38@fishmail.net',0,0,0,0,NULL,NULL,NULL,NULL),
+ (46,165,1,'meiprentice53@example.net',1,0,0,0,NULL,NULL,NULL,NULL),
+ (47,165,1,'prentice.mei77@testing.biz',0,0,0,0,NULL,NULL,NULL,NULL),
+ (48,77,1,'maxwelllee5@spamalot.info',1,0,0,0,NULL,NULL,NULL,NULL),
+ (49,152,1,'lincolndimitrov@infomail.info',1,0,0,0,NULL,NULL,NULL,NULL),
+ (50,152,1,'dimitrov.lincoln@mymail.co.nz',0,0,0,0,NULL,NULL,NULL,NULL),
+ (51,127,1,'terryl@fakemail.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (52,176,1,'samson.nicole@notmail.info',1,0,0,0,NULL,NULL,NULL,NULL),
+ (53,176,1,'samsonn@fakemail.co.in',0,0,0,0,NULL,NULL,NULL,NULL),
+ (54,83,1,'cooper.barry@testing.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (55,83,1,'cooper.barry@example.com',0,0,0,0,NULL,NULL,NULL,NULL),
+ (56,128,1,'bterry56@sample.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),
+ (57,38,1,'winfords@fakemail.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (58,38,1,'winfordsamson67@lol.co.pl',0,0,0,0,NULL,NULL,NULL,NULL),
+ (59,21,1,'jbachman@notmail.co.in',1,0,0,0,NULL,NULL,NULL,NULL),
+ (60,21,1,'jinabachman@fakemail.co.pl',0,0,0,0,NULL,NULL,NULL,NULL),
+ (61,171,1,'ed.patel@sample.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),
+ (62,170,1,'robertsl46@testing.biz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (63,22,1,'samuels.margaret74@fakemail.com',1,0,0,0,NULL,NULL,NULL,NULL),
+ (64,22,1,'samuelsm@lol.co.uk',0,0,0,0,NULL,NULL,NULL,NULL),
+ (65,147,1,'roberts.delana38@fakemail.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (66,147,1,'roberts.delana19@infomail.co.nz',0,0,0,0,NULL,NULL,NULL,NULL),
+ (67,186,1,'bg.yadav@airmail.biz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (68,186,1,'bryony@lol.co.pl',0,0,0,0,NULL,NULL,NULL,NULL),
+ (69,44,1,'blackwell.miguel70@infomail.biz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (70,196,1,'wilson.ashley@sample.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),
+ (71,196,1,'awilson75@fakemail.co.uk',0,0,0,0,NULL,NULL,NULL,NULL),
+ (72,144,1,'jensenm@infomail.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),
+ (73,144,1,'mariajensen26@mymail.co.pl',0,0,0,0,NULL,NULL,NULL,NULL),
+ (74,130,1,'deforest.a.roland@testing.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),
+ (75,48,1,'herminiam@notmail.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (76,4,1,'dimitrov.p.merrie@fishmail.info',1,0,0,0,NULL,NULL,NULL,NULL),
+ (77,34,1,'elbertchowski39@testing.co.in',1,0,0,0,NULL,NULL,NULL,NULL),
+ (78,34,1,'elbert@fakemail.co.uk',0,0,0,0,NULL,NULL,NULL,NULL),
+ (79,108,1,'ez.jensen99@lol.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),
+ (80,52,1,'maxwellc@airmail.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (81,52,1,'cooper.maxwell98@mymail.co.in',0,0,0,0,NULL,NULL,NULL,NULL),
+ (82,200,1,'nielsen.e.brittney@lol.net',1,0,0,0,NULL,NULL,NULL,NULL),
+ (83,122,1,'princessn@example.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (84,37,1,'nielsen.santina@testing.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (85,37,1,'nielsen.santina11@mymail.net',0,0,0,0,NULL,NULL,NULL,NULL),
+ (86,107,1,'loumcreynolds45@sample.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),
+ (87,23,1,'cruz-mcreynoldsj@spamalot.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (88,23,1,'cruz-mcreynolds.u.junko29@fishmail.org',0,0,0,0,NULL,NULL,NULL,NULL),
+ (89,59,1,'tanyam@airmail.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (90,58,1,'nd.jacobs@fakemail.com',1,0,0,0,NULL,NULL,NULL,NULL),
+ (91,17,1,'mu.jacobs@sample.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (92,105,1,'teddyj@fishmail.biz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (93,105,1,'teddyj44@testmail.net',0,0,0,0,NULL,NULL,NULL,NULL),
+ (94,61,1,'bk.olsen54@sample.biz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (95,61,1,'bk.olsen@testing.biz',0,0,0,0,NULL,NULL,NULL,NULL),
+ (96,8,1,'merriejones39@spamalot.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),
+ (97,8,1,'merriej@fishmail.info',0,0,0,0,NULL,NULL,NULL,NULL),
+ (98,159,1,'lincolnolsen-jones47@fishmail.biz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (99,159,1,'olsen-jones.lincoln63@fishmail.com',0,0,0,0,NULL,NULL,NULL,NULL),
+ (100,103,1,'hl.jacobs@testing.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (101,46,1,'jacobs.josefa75@airmail.biz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (102,12,1,'adams.eleonor47@mymail.biz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (103,156,1,'adams.d.elina@lol.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),
+ (104,156,1,'adams.elina@airmail.biz',0,0,0,0,NULL,NULL,NULL,NULL),
+ (105,146,1,'wattson.p.magan@infomail.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),
+ (106,92,1,'wattson.josefa@airmail.net',1,0,0,0,NULL,NULL,NULL,NULL),
+ (107,92,1,'wattson.josefa@airmail.co.pl',0,0,0,0,NULL,NULL,NULL,NULL),
+ (108,185,1,'jameson.troy@mymail.info',1,0,0,0,NULL,NULL,NULL,NULL),
+ (109,191,1,'damarisjacobs-jameson7@example.com',1,0,0,0,NULL,NULL,NULL,NULL),
+ (110,125,1,'jameson.ashley@spamalot.co.in',1,0,0,0,NULL,NULL,NULL,NULL),
+ (111,125,1,'jamesona30@notmail.net',0,0,0,0,NULL,NULL,NULL,NULL),
+ (112,80,1,'jz.adams42@example.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),
+ (113,80,1,'adams.jay97@notmail.info',0,0,0,0,NULL,NULL,NULL,NULL),
+ (114,89,1,'madams@fishmail.com',1,0,0,0,NULL,NULL,NULL,NULL),
+ (115,71,1,'justinaa89@notmail.com',1,0,0,0,NULL,NULL,NULL,NULL),
+ (116,153,1,'brigetten52@testmail.net',1,0,0,0,NULL,NULL,NULL,NULL),
+ (117,91,1,'blackwell.teddy@notmail.net',1,0,0,0,NULL,NULL,NULL,NULL),
+ (118,91,1,'tblackwell@testing.co.uk',0,0,0,0,NULL,NULL,NULL,NULL),
+ (119,135,1,'merrieb67@testmail.com',1,0,0,0,NULL,NULL,NULL,NULL),
+ (120,135,1,'merrieb@airmail.org',0,0,0,0,NULL,NULL,NULL,NULL),
+ (121,25,1,'mblackwell@fakemail.net',1,0,0,0,NULL,NULL,NULL,NULL),
+ (122,25,1,'blackwell.maxwell25@mymail.org',0,0,0,0,NULL,NULL,NULL,NULL),
+ (123,26,1,'deforest.truman31@fakemail.net',1,0,0,0,NULL,NULL,NULL,NULL),
+ (124,64,1,'deforest.santina@example.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (125,64,1,'santinad37@infomail.co.uk',0,0,0,0,NULL,NULL,NULL,NULL),
+ (126,62,1,'terry.andrew1@sample.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (127,62,1,'andrewterry@fishmail.org',0,0,0,0,NULL,NULL,NULL,NULL),
+ (128,2,1,'bp.terry-cruz12@airmail.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (129,2,1,'terry-cruz.brzczysaw87@airmail.com',0,0,0,0,NULL,NULL,NULL,NULL),
+ (130,172,1,'damarist@fishmail.info',1,0,0,0,NULL,NULL,NULL,NULL),
+ (131,5,1,'kaceyc95@airmail.co.uk',1,0,0,0,NULL,NULL,NULL,NULL),
+ (132,5,1,'kaceycooper@example.co.uk',0,0,0,0,NULL,NULL,NULL,NULL),
+ (133,84,1,'bettyw@airmail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),
+ (134,84,1,'bettyw@spamalot.net',0,0,0,0,NULL,NULL,NULL,NULL),
+ (135,169,1,'allanc@example.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (136,169,1,'az.cooper81@testing.net',0,0,0,0,NULL,NULL,NULL,NULL),
+ (137,157,1,'bachman.toby@notmail.net',1,0,0,0,NULL,NULL,NULL,NULL),
+ (138,157,1,'tbachman@airmail.co.uk',0,0,0,0,NULL,NULL,NULL,NULL),
+ (139,167,1,'jinabachman72@airmail.co.in',1,0,0,0,NULL,NULL,NULL,NULL),
+ (140,167,1,'jbachman@sample.info',0,0,0,0,NULL,NULL,NULL,NULL),
+ (141,155,1,'russellbarkley@testmail.net',1,0,0,0,NULL,NULL,NULL,NULL),
+ (142,42,1,'fbarkley90@testmail.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (143,178,1,'santinabarkley@testing.biz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (144,149,1,'clintz71@mymail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),
+ (145,45,1,'troyterry67@fishmail.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (146,45,1,'troyterry18@lol.org',0,0,0,0,NULL,NULL,NULL,NULL),
+ (147,63,1,'aw.zope-terry@airmail.com',1,0,0,0,NULL,NULL,NULL,NULL),
+ (148,117,1,'brigettez@testmail.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (149,94,1,'shado@spamalot.co.pl',1,0,0,0,NULL,NULL,NULL,NULL),
+ (150,168,1,'rebekaholsen-mller@notmail.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (151,168,1,'re.olsen-mller@airmail.co.nz',0,0,0,0,NULL,NULL,NULL,NULL),
+ (152,15,1,'rnielsen@fakemail.biz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (153,15,1,'nielsenr@airmail.biz',0,0,0,0,NULL,NULL,NULL,NULL),
+ (154,197,1,'nielsent@example.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (155,10,1,'roberts.allen9@testing.co.in',1,0,0,0,NULL,NULL,NULL,NULL),
+ (156,10,1,'allenroberts@fishmail.co.pl',0,0,0,0,NULL,NULL,NULL,NULL),
+ (157,96,1,'eleonorr@notmail.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (158,96,1,'robertse@sample.net',0,0,0,0,NULL,NULL,NULL,NULL),
+ (159,90,1,'cd.roberts@airmail.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (160,132,1,'sonnyroberts@testmail.co.nz',1,0,0,0,NULL,NULL,NULL,NULL),
+ (161,183,3,'info@friendscollective.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (162,94,2,'.69@friendscollective.org',0,0,0,0,NULL,NULL,NULL,NULL),
+ (163,189,3,'service@greensolutions.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (164,196,2,'awilson78@greensolutions.org',0,0,0,0,NULL,NULL,NULL,NULL),
+ (165,116,3,'service@ruralliteracy.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (166,173,3,'service@michigansoftware.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (167,142,2,'adams.brigette@michigansoftware.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (168,28,3,'sales@mapleadvocacyfund.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (169,194,3,'contact@pennsylvaniaassociation.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (170,149,2,'ct.zope@pennsylvaniaassociation.org',0,0,0,0,NULL,NULL,NULL,NULL),
+ (171,111,3,'feedback@pennsylvaniaassociation.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (172,151,3,'sales@ruralcenter.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (173,37,2,'snielsen@ruralcenter.org',0,0,0,0,NULL,NULL,NULL,NULL),
+ (174,112,3,'sales@ruralnetwork.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (175,91,2,'teddyb82@ruralnetwork.org',0,0,0,0,NULL,NULL,NULL,NULL),
+ (176,102,3,'feedback@mainartsinitiative.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (177,135,2,'merrieblackwell@mainartsinitiative.org',0,0,0,0,NULL,NULL,NULL,NULL),
+ (178,11,3,'feedback@creativefund.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (179,24,3,'contact@mlkingdevelopment.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (180,171,2,'patel.d.errol5@mlkingdevelopment.org',0,0,0,0,NULL,NULL,NULL,NULL),
+ (181,39,3,'service@unitedcenter.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (182,137,3,'service@friendsarts.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (183,154,2,'olsen.allen@friendsarts.org',0,0,0,0,NULL,NULL,NULL,NULL),
+ (184,187,3,'service@caulderempowerment.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (185,123,2,'odaz51@caulderempowerment.org',1,0,0,0,NULL,NULL,NULL,NULL),
+ (186,202,1,'jenny@example.com',1,0,0,0,NULL,NULL,NULL,NULL),
+ (187,NULL,1,'development@example.org',0,0,0,0,NULL,NULL,NULL,NULL),
+ (188,NULL,1,'tournaments@example.org',0,0,0,0,NULL,NULL,NULL,NULL),
+ (189,NULL,1,'celebration@example.org',0,0,0,0,NULL,NULL,NULL,NULL);
 /*!40000 ALTER TABLE `civicrm_email` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -3389,35 +3386,35 @@ INSERT INTO `civicrm_entity_financial_trxn` (`id`, `entity_table`, `entity_id`,
  (64,'civicrm_financial_item',32,32,100.00),
  (65,'civicrm_contribution',34,33,100.00),
  (66,'civicrm_financial_item',33,33,100.00),
- (67,'civicrm_contribution',38,34,100.00),
+ (67,'civicrm_contribution',36,34,100.00),
  (68,'civicrm_financial_item',34,34,100.00),
- (69,'civicrm_contribution',40,35,100.00),
+ (69,'civicrm_contribution',38,35,100.00),
  (70,'civicrm_financial_item',35,35,100.00),
- (71,'civicrm_contribution',44,36,100.00),
+ (71,'civicrm_contribution',40,36,100.00),
  (72,'civicrm_financial_item',36,36,100.00),
- (73,'civicrm_contribution',46,37,100.00),
+ (73,'civicrm_contribution',44,37,100.00),
  (74,'civicrm_financial_item',37,37,100.00),
  (75,'civicrm_contribution',48,38,100.00),
  (76,'civicrm_financial_item',38,38,100.00),
  (77,'civicrm_contribution',50,39,100.00),
  (78,'civicrm_financial_item',39,39,100.00),
- (79,'civicrm_contribution',52,40,100.00),
+ (79,'civicrm_contribution',51,40,100.00),
  (80,'civicrm_financial_item',40,40,100.00),
- (81,'civicrm_contribution',54,41,100.00),
+ (81,'civicrm_contribution',52,41,100.00),
  (82,'civicrm_financial_item',41,41,100.00),
- (83,'civicrm_contribution',56,42,100.00),
+ (83,'civicrm_contribution',54,42,100.00),
  (84,'civicrm_financial_item',42,42,100.00),
- (85,'civicrm_contribution',58,43,100.00),
+ (85,'civicrm_contribution',56,43,100.00),
  (86,'civicrm_financial_item',43,43,100.00),
- (87,'civicrm_contribution',60,44,100.00),
+ (87,'civicrm_contribution',58,44,100.00),
  (88,'civicrm_financial_item',44,44,100.00),
- (89,'civicrm_contribution',61,45,100.00),
+ (89,'civicrm_contribution',60,45,100.00),
  (90,'civicrm_financial_item',45,45,100.00),
- (91,'civicrm_contribution',33,46,50.00),
- (92,'civicrm_financial_item',46,46,50.00),
- (93,'civicrm_contribution',35,47,50.00),
+ (91,'civicrm_contribution',61,46,100.00),
+ (92,'civicrm_financial_item',46,46,100.00),
+ (93,'civicrm_contribution',33,47,50.00),
  (94,'civicrm_financial_item',47,47,50.00),
- (95,'civicrm_contribution',36,48,50.00),
+ (95,'civicrm_contribution',35,48,50.00),
  (96,'civicrm_financial_item',48,48,50.00),
  (97,'civicrm_contribution',37,49,50.00),
  (98,'civicrm_financial_item',49,49,50.00),
@@ -3429,11 +3426,11 @@ INSERT INTO `civicrm_entity_financial_trxn` (`id`, `entity_table`, `entity_id`,
  (104,'civicrm_financial_item',52,52,50.00),
  (105,'civicrm_contribution',45,53,50.00),
  (106,'civicrm_financial_item',53,53,50.00),
- (107,'civicrm_contribution',47,54,50.00),
+ (107,'civicrm_contribution',46,54,50.00),
  (108,'civicrm_financial_item',54,54,50.00),
- (109,'civicrm_contribution',49,55,50.00),
+ (109,'civicrm_contribution',47,55,50.00),
  (110,'civicrm_financial_item',55,55,50.00),
- (111,'civicrm_contribution',51,56,50.00),
+ (111,'civicrm_contribution',49,56,50.00),
  (112,'civicrm_financial_item',56,56,50.00),
  (113,'civicrm_contribution',55,57,50.00),
  (114,'civicrm_financial_item',57,57,50.00),
@@ -3555,117 +3552,116 @@ UNLOCK TABLES;
 LOCK TABLES `civicrm_entity_tag` WRITE;
 /*!40000 ALTER TABLE `civicrm_entity_tag` DISABLE KEYS */;
 INSERT INTO `civicrm_entity_tag` (`id`, `entity_table`, `entity_id`, `tag_id`) VALUES
- (23,'civicrm_contact',2,5),
- (75,'civicrm_contact',3,4),
- (76,'civicrm_contact',3,5),
- (16,'civicrm_contact',4,4),
- (94,'civicrm_contact',5,4),
- (40,'civicrm_contact',6,4),
- (41,'civicrm_contact',6,5),
- (53,'civicrm_contact',8,5),
- (22,'civicrm_contact',13,5),
- (25,'civicrm_contact',14,4),
- (82,'civicrm_contact',15,4),
- (83,'civicrm_contact',15,5),
- (8,'civicrm_contact',17,2),
- (85,'civicrm_contact',20,4),
- (81,'civicrm_contact',26,5),
- (87,'civicrm_contact',29,4),
- (61,'civicrm_contact',30,4),
- (62,'civicrm_contact',30,5),
- (18,'civicrm_contact',31,4),
- (97,'civicrm_contact',32,5),
- (70,'civicrm_contact',35,5),
- (56,'civicrm_contact',39,4),
- (57,'civicrm_contact',39,5),
- (63,'civicrm_contact',40,5),
- (33,'civicrm_contact',41,4),
- (91,'civicrm_contact',44,4),
- (101,'civicrm_contact',49,5),
- (15,'civicrm_contact',50,5),
- (44,'civicrm_contact',51,4),
- (45,'civicrm_contact',51,5),
- (109,'civicrm_contact',57,4),
- (110,'civicrm_contact',57,5),
- (98,'civicrm_contact',61,5),
- (73,'civicrm_contact',64,5),
- (90,'civicrm_contact',67,5),
- (107,'civicrm_contact',68,4),
- (64,'civicrm_contact',69,4),
- (65,'civicrm_contact',69,5),
- (89,'civicrm_contact',70,4),
- (49,'civicrm_contact',71,4),
- (35,'civicrm_contact',73,4),
- (54,'civicrm_contact',74,4),
- (84,'civicrm_contact',76,4),
- (48,'civicrm_contact',79,4),
- (28,'civicrm_contact',86,4),
- (5,'civicrm_contact',87,3),
- (17,'civicrm_contact',92,5),
- (1,'civicrm_contact',93,2),
- (96,'civicrm_contact',98,5),
- (79,'civicrm_contact',100,5),
- (55,'civicrm_contact',103,5),
- (95,'civicrm_contact',104,5),
- (74,'civicrm_contact',106,5),
- (106,'civicrm_contact',110,5),
- (92,'civicrm_contact',111,4),
- (93,'civicrm_contact',111,5),
- (105,'civicrm_contact',112,4),
- (50,'civicrm_contact',115,5),
- (103,'civicrm_contact',117,4),
- (104,'civicrm_contact',117,5),
- (47,'civicrm_contact',118,5),
- (68,'civicrm_contact',120,4),
- (69,'civicrm_contact',120,5),
- (102,'civicrm_contact',121,5),
- (7,'civicrm_contact',123,3),
- (78,'civicrm_contact',124,5),
- (19,'civicrm_contact',125,5),
- (80,'civicrm_contact',127,5),
- (24,'civicrm_contact',130,4),
- (77,'civicrm_contact',131,4),
- (46,'civicrm_contact',134,5),
- (60,'civicrm_contact',136,5),
- (20,'civicrm_contact',138,4),
- (21,'civicrm_contact',138,5),
- (30,'civicrm_contact',139,4),
- (2,'civicrm_contact',140,1),
- (31,'civicrm_contact',141,4),
- (32,'civicrm_contact',141,5),
- (88,'civicrm_contact',142,5),
- (67,'civicrm_contact',143,5),
- (10,'civicrm_contact',146,2),
- (86,'civicrm_contact',148,5),
- (71,'civicrm_contact',150,4),
- (72,'civicrm_contact',150,5),
- (111,'civicrm_contact',151,4),
- (99,'civicrm_contact',153,4),
- (100,'civicrm_contact',153,5),
- (14,'civicrm_contact',154,4),
- (37,'civicrm_contact',155,5),
- (29,'civicrm_contact',161,5),
- (3,'civicrm_contact',163,1),
- (58,'civicrm_contact',168,4),
- (59,'civicrm_contact',168,5),
- (108,'civicrm_contact',169,4),
- (42,'civicrm_contact',171,4),
- (43,'civicrm_contact',171,5),
- (26,'civicrm_contact',174,4),
- (27,'civicrm_contact',174,5),
- (38,'civicrm_contact',177,4),
- (39,'civicrm_contact',177,5),
- (36,'civicrm_contact',178,5),
- (34,'civicrm_contact',181,4),
- (4,'civicrm_contact',184,1),
- (12,'civicrm_contact',186,4),
- (13,'civicrm_contact',186,5),
- (9,'civicrm_contact',188,3),
- (66,'civicrm_contact',193,5),
- (6,'civicrm_contact',196,2),
- (11,'civicrm_contact',199,5),
- (51,'civicrm_contact',201,4),
- (52,'civicrm_contact',201,5);
+ (93,'civicrm_contact',2,4),
+ (60,'civicrm_contact',4,5),
+ (94,'civicrm_contact',5,5),
+ (108,'civicrm_contact',10,5),
+ (106,'civicrm_contact',15,4),
+ (107,'civicrm_contact',15,5),
+ (70,'civicrm_contact',17,4),
+ (80,'civicrm_contact',18,4),
+ (81,'civicrm_contact',18,5),
+ (99,'civicrm_contact',19,5),
+ (53,'civicrm_contact',22,4),
+ (9,'civicrm_contact',24,1),
+ (90,'civicrm_contact',26,4),
+ (25,'civicrm_contact',29,4),
+ (36,'civicrm_contact',30,4),
+ (37,'civicrm_contact',30,5),
+ (20,'civicrm_contact',31,4),
+ (33,'civicrm_contact',35,5),
+ (50,'civicrm_contact',38,4),
+ (17,'civicrm_contact',40,5),
+ (58,'civicrm_contact',48,4),
+ (59,'civicrm_contact',48,5),
+ (63,'civicrm_contact',52,4),
+ (34,'civicrm_contact',53,4),
+ (86,'civicrm_contact',54,4),
+ (87,'civicrm_contact',54,5),
+ (76,'civicrm_contact',56,4),
+ (69,'civicrm_contact',58,5),
+ (18,'civicrm_contact',60,4),
+ (19,'civicrm_contact',60,5),
+ (71,'civicrm_contact',61,4),
+ (92,'civicrm_contact',62,4),
+ (101,'civicrm_contact',63,4),
+ (102,'civicrm_contact',63,5),
+ (5,'civicrm_contact',70,2),
+ (16,'civicrm_contact',73,4),
+ (41,'civicrm_contact',74,4),
+ (38,'civicrm_contact',78,4),
+ (39,'civicrm_contact',78,5),
+ (82,'civicrm_contact',80,5),
+ (31,'civicrm_contact',81,4),
+ (32,'civicrm_contact',81,5),
+ (48,'civicrm_contact',83,5),
+ (27,'civicrm_contact',86,5),
+ (83,'civicrm_contact',89,4),
+ (109,'civicrm_contact',90,4),
+ (110,'civicrm_contact',90,5),
+ (88,'civicrm_contact',91,5),
+ (78,'civicrm_contact',92,5),
+ (103,'civicrm_contact',94,4),
+ (11,'civicrm_contact',97,4),
+ (14,'civicrm_contact',98,5),
+ (8,'civicrm_contact',102,3),
+ (74,'civicrm_contact',103,5),
+ (64,'civicrm_contact',106,5),
+ (66,'civicrm_contact',107,4),
+ (61,'civicrm_contact',108,4),
+ (62,'civicrm_contact',108,5),
+ (72,'civicrm_contact',109,5),
+ (75,'civicrm_contact',110,5),
+ (6,'civicrm_contact',111,3),
+ (7,'civicrm_contact',112,2),
+ (91,'civicrm_contact',119,4),
+ (46,'civicrm_contact',121,5),
+ (65,'civicrm_contact',122,5),
+ (84,'civicrm_contact',126,4),
+ (85,'civicrm_contact',126,5),
+ (47,'civicrm_contact',127,4),
+ (57,'civicrm_contact',130,4),
+ (89,'civicrm_contact',131,4),
+ (28,'civicrm_contact',133,4),
+ (26,'civicrm_contact',134,4),
+ (30,'civicrm_contact',136,5),
+ (10,'civicrm_contact',137,1),
+ (105,'civicrm_contact',139,4),
+ (40,'civicrm_contact',145,4),
+ (49,'civicrm_contact',148,5),
+ (100,'civicrm_contact',149,4),
+ (98,'civicrm_contact',155,5),
+ (96,'civicrm_contact',157,5),
+ (23,'civicrm_contact',162,4),
+ (24,'civicrm_contact',162,5),
+ (15,'civicrm_contact',164,4),
+ (42,'civicrm_contact',165,4),
+ (43,'civicrm_contact',165,5),
+ (97,'civicrm_contact',167,4),
+ (95,'civicrm_contact',169,5),
+ (51,'civicrm_contact',171,4),
+ (52,'civicrm_contact',171,5),
+ (4,'civicrm_contact',173,2),
+ (21,'civicrm_contact',174,4),
+ (22,'civicrm_contact',174,5),
+ (35,'civicrm_contact',175,5),
+ (3,'civicrm_contact',177,3),
+ (67,'civicrm_contact',180,4),
+ (68,'civicrm_contact',180,5),
+ (73,'civicrm_contact',182,4),
+ (1,'civicrm_contact',183,2),
+ (79,'civicrm_contact',185,5),
+ (54,'civicrm_contact',186,4),
+ (55,'civicrm_contact',186,5),
+ (104,'civicrm_contact',188,4),
+ (2,'civicrm_contact',189,3),
+ (77,'civicrm_contact',190,4),
+ (12,'civicrm_contact',195,4),
+ (13,'civicrm_contact',195,5),
+ (56,'civicrm_contact',196,5),
+ (29,'civicrm_contact',199,5),
+ (44,'civicrm_contact',201,4),
+ (45,'civicrm_contact',201,5);
 /*!40000 ALTER TABLE `civicrm_entity_tag` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -3676,9 +3672,9 @@ UNLOCK TABLES;
 LOCK TABLES `civicrm_event` WRITE;
 /*!40000 ALTER TABLE `civicrm_event` DISABLE KEYS */;
 INSERT INTO `civicrm_event` (`id`, `title`, `summary`, `description`, `event_type_id`, `participant_listing_id`, `is_public`, `start_date`, `end_date`, `is_online_registration`, `registration_link_text`, `registration_start_date`, `registration_end_date`, `max_participants`, `event_full_text`, `is_monetary`, `financial_type_id`, `payment_processor`, `is_map`, `is_active`, `fee_label`, `is_show_location`, `loc_block_id`, `default_role_id`, `intro_text`, `footer_text`, `confirm_title`, `confirm_text`, `confirm_footer_text`, `is_email_confirm`, `confirm_email_text`, `confirm_from_name`, `confirm_from_email`, `cc_confirm`, `bcc_confirm`, `default_fee_id`, `default_discount_fee_id`, `thankyou_title`, `thankyou_text`, `thankyou_footer_text`, `is_pay_later`, `pay_later_text`, `pay_later_receipt`, `is_partial_payment`, `initial_amount_label`, `initial_amount_help_text`, `min_initial_amount`, `is_multiple_registrations`, `max_additional_participants`, `allow_same_participant_emails`, `has_waitlist`, `requires_approval`, `expiration_time`, `allow_selfcancelxfer`, `selfcancelxfer_time`, `waitlist_text`, `approval_req_text`, `is_template`, `template_title`, `created_id`, `created_date`, `currency`, `campaign_id`, `is_share`, `is_confirm_enabled`, `parent_event_id`, `slot_label_id`, `dedupe_rule_group_id`, `is_billing_required`) VALUES
- (1,'Fall Fundraiser Dinner','Kick up your heels at our Fall Fundraiser Dinner/Dance at Glen Echo Park! Come by yourself or bring a partner, friend or the entire family!','This event benefits our teen programs. Admission includes a full 3 course meal and wine or soft drinks. Grab your dancing shoes, bring the kids and come join the party!',3,1,1,'2023-07-25 17:00:00','2023-07-27 17:00:00',1,'Register Now',NULL,NULL,100,'Sorry! The Fall Fundraiser Dinner is full. Please call Jane at 204 222-1000 ext 33 if you want to be added to the waiting list.',1,4,NULL,1,1,'Dinner Contribution',1,1,1,'Fill in the information below to join as at this wonderful dinner event.',NULL,'Confirm Your Registration Information','Review the information below carefully.',NULL,1,'Contact the Development Department if you need to make any changes to your registration.','Fundraising Dept.','development@example.org',NULL,NULL,NULL,NULL,'Thanks for Registering!','<p>Thank you for your support. Your contribution will help us build even better tools.</p><p>Please tell your friends and colleagues about this wonderful event.</p>','<p><a href=https://civicrm.org>Back to CiviCRM Home Page</a></p>',1,'I will send payment by check','Send a check payable to Our Organization within 3 business days to hold your reservation. Checks should be sent to: 100 Main St., Suite 3, San Francisco CA 94110',0,NULL,NULL,NULL,1,0,0,0,0,NULL,0,0,NULL,NULL,0,NULL,NULL,NULL,'USD',NULL,1,1,NULL,NULL,NULL,0),
- (2,'Summer Solstice Festival Day Concert','Festival Day is coming! Join us and help support your parks.','We will gather at noon, learn a song all together,  and then join in a joyous procession to the pavilion. We will be one of many groups performing at this wonderful concert which benefits our city parks.',5,1,1,'2023-01-24 12:00:00','2023-01-24 17:00:00',1,'Register Now',NULL,NULL,50,'We have all the singers we can handle. Come to the pavilion anyway and join in from the audience.',1,2,NULL,0,1,'Festival Fee',1,2,1,'Complete the form below and click Continue to register online for the festival. Or you can register by calling us at 204 222-1000 ext 22.','','Confirm Your Registration Information','','',1,'This email confirms your registration. If you have questions or need to change your registration - please do not hesitate to call us.','Event Dept.','events@example.org','',NULL,NULL,NULL,'Thanks for Your Joining In!','<p>Thank you for your support. Your participation will help build new parks.</p><p>Please tell your friends and colleagues about the concert.</p>','<p><a href=https://civicrm.org>Back to CiviCRM Home Page</a></p>',0,NULL,NULL,0,NULL,NULL,NULL,1,0,0,0,0,NULL,0,0,NULL,NULL,0,NULL,NULL,NULL,'USD',NULL,1,1,NULL,NULL,NULL,0),
- (3,'Rain-forest Cup Youth Soccer Tournament','Sign up your team to participate in this fun tournament which benefits several Rain-forest protection groups in the Amazon basin.','This is a FYSA Sanctioned Tournament, which is open to all USSF/FIFA affiliated organizations for boys and girls in age groups: U9-U10 (6v6), U11-U12 (8v8), and U13-U17 (Full Sided).',3,1,1,'2023-08-25 07:00:00','2023-08-28 17:00:00',1,'Register Now',NULL,NULL,500,'Sorry! All available team slots for this tournament have been filled. Contact Jill Futbol for information about the waiting list and next years event.',1,4,NULL,0,1,'Tournament Fees',1,3,1,'Complete the form below to register your team for this year\'s tournament.','<em>A Soccer Youth Event</em>','Review and Confirm Your Registration Information','','<em>A Soccer Youth Event</em>',1,'Contact our Tournament Director for eligibility details.','Tournament Director','tournament@example.org','',NULL,NULL,NULL,'Thanks for Your Support!','<p>Thank you for your support. Your participation will help save thousands of acres of rainforest.</p>','<p><a href=https://civicrm.org>Back to CiviCRM Home Page</a></p>',0,NULL,NULL,0,NULL,NULL,NULL,0,0,0,0,0,NULL,0,0,NULL,NULL,0,NULL,NULL,NULL,'USD',NULL,1,1,NULL,NULL,NULL,0),
+ (1,'Fall Fundraiser Dinner','Kick up your heels at our Fall Fundraiser Dinner/Dance at Glen Echo Park! Come by yourself or bring a partner, friend or the entire family!','This event benefits our teen programs. Admission includes a full 3 course meal and wine or soft drinks. Grab your dancing shoes, bring the kids and come join the party!',3,1,1,'2023-09-08 17:00:00','2023-09-10 17:00:00',1,'Register Now',NULL,NULL,100,'Sorry! The Fall Fundraiser Dinner is full. Please call Jane at 204 222-1000 ext 33 if you want to be added to the waiting list.',1,4,NULL,1,1,'Dinner Contribution',1,1,1,'Fill in the information below to join as at this wonderful dinner event.',NULL,'Confirm Your Registration Information','Review the information below carefully.',NULL,1,'Contact the Development Department if you need to make any changes to your registration.','Fundraising Dept.','development@example.org',NULL,NULL,NULL,NULL,'Thanks for Registering!','<p>Thank you for your support. Your contribution will help us build even better tools.</p><p>Please tell your friends and colleagues about this wonderful event.</p>','<p><a href=https://civicrm.org>Back to CiviCRM Home Page</a></p>',1,'I will send payment by check','Send a check payable to Our Organization within 3 business days to hold your reservation. Checks should be sent to: 100 Main St., Suite 3, San Francisco CA 94110',0,NULL,NULL,NULL,1,0,0,0,0,NULL,0,0,NULL,NULL,0,NULL,NULL,NULL,'USD',NULL,1,1,NULL,NULL,NULL,0),
+ (2,'Summer Solstice Festival Day Concert','Festival Day is coming! Join us and help support your parks.','We will gather at noon, learn a song all together,  and then join in a joyous procession to the pavilion. We will be one of many groups performing at this wonderful concert which benefits our city parks.',5,1,1,'2023-03-07 12:00:00','2023-03-07 17:00:00',1,'Register Now',NULL,NULL,50,'We have all the singers we can handle. Come to the pavilion anyway and join in from the audience.',1,2,NULL,0,1,'Festival Fee',1,2,1,'Complete the form below and click Continue to register online for the festival. Or you can register by calling us at 204 222-1000 ext 22.','','Confirm Your Registration Information','','',1,'This email confirms your registration. If you have questions or need to change your registration - please do not hesitate to call us.','Event Dept.','events@example.org','',NULL,NULL,NULL,'Thanks for Your Joining In!','<p>Thank you for your support. Your participation will help build new parks.</p><p>Please tell your friends and colleagues about the concert.</p>','<p><a href=https://civicrm.org>Back to CiviCRM Home Page</a></p>',0,NULL,NULL,0,NULL,NULL,NULL,1,0,0,0,0,NULL,0,0,NULL,NULL,0,NULL,NULL,NULL,'USD',NULL,1,1,NULL,NULL,NULL,0),
+ (3,'Rain-forest Cup Youth Soccer Tournament','Sign up your team to participate in this fun tournament which benefits several Rain-forest protection groups in the Amazon basin.','This is a FYSA Sanctioned Tournament, which is open to all USSF/FIFA affiliated organizations for boys and girls in age groups: U9-U10 (6v6), U11-U12 (8v8), and U13-U17 (Full Sided).',3,1,1,'2023-10-08 07:00:00','2023-10-11 17:00:00',1,'Register Now',NULL,NULL,500,'Sorry! All available team slots for this tournament have been filled. Contact Jill Futbol for information about the waiting list and next years event.',1,4,NULL,0,1,'Tournament Fees',1,3,1,'Complete the form below to register your team for this year\'s tournament.','<em>A Soccer Youth Event</em>','Review and Confirm Your Registration Information','','<em>A Soccer Youth Event</em>',1,'Contact our Tournament Director for eligibility details.','Tournament Director','tournament@example.org','',NULL,NULL,NULL,'Thanks for Your Support!','<p>Thank you for your support. Your participation will help save thousands of acres of rainforest.</p>','<p><a href=https://civicrm.org>Back to CiviCRM Home Page</a></p>',0,NULL,NULL,0,NULL,NULL,NULL,0,0,0,0,0,NULL,0,0,NULL,NULL,0,NULL,NULL,NULL,'USD',NULL,1,1,NULL,NULL,NULL,0),
  (4,NULL,NULL,NULL,4,1,1,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,0,1,NULL,1,NULL,1,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,0,NULL,NULL,NULL,1,0,0,0,0,NULL,0,0,NULL,NULL,1,'Free Meeting without Online Registration',NULL,NULL,'USD',NULL,1,1,NULL,NULL,NULL,0),
  (5,NULL,NULL,NULL,4,1,1,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,0,1,NULL,1,NULL,1,NULL,NULL,'Confirm Your Registration Information',NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'Thanks for Registering!',NULL,NULL,0,NULL,NULL,0,NULL,NULL,NULL,1,0,1,0,0,NULL,0,0,NULL,NULL,1,'Free Meeting with Online Registration',NULL,NULL,'USD',NULL,1,1,NULL,NULL,NULL,0),
  (6,NULL,NULL,NULL,1,1,1,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL,1,4,NULL,0,1,'Conference Fee',1,NULL,1,NULL,NULL,'Confirm Your Registration Information',NULL,NULL,1,NULL,'Event Template Dept.','event_templates@example.org',NULL,NULL,NULL,NULL,'Thanks for Registering!',NULL,NULL,0,NULL,NULL,0,NULL,NULL,NULL,1,0,1,0,0,NULL,0,0,NULL,NULL,1,'Paid Conference with Online Registration',NULL,NULL,'USD',NULL,1,1,NULL,NULL,NULL,0);
@@ -3761,117 +3757,117 @@ UNLOCK TABLES;
 LOCK TABLES `civicrm_financial_item` WRITE;
 /*!40000 ALTER TABLE `civicrm_financial_item` DISABLE KEYS */;
 INSERT INTO `civicrm_financial_item` (`id`, `created_date`, `transaction_date`, `contact_id`, `description`, `amount`, `currency`, `financial_account_id`, `status_id`, `entity_table`, `entity_id`) VALUES
- (1,'2023-01-25 00:10:21','2013-01-25 11:10:21',2,'Contribution Amount',125.00,'USD',1,1,'civicrm_line_item',1),
- (2,'2023-01-25 00:10:21','2020-10-25 11:10:21',4,'Contribution Amount',50.00,'USD',1,1,'civicrm_line_item',2),
- (3,'2023-01-25 00:10:21','2016-12-30 22:10:21',6,'Contribution Amount',25.00,'GBP',1,1,'civicrm_line_item',3),
- (4,'2023-01-25 00:10:21','2020-10-25 11:10:21',8,'Contribution Amount',50.00,'USD',1,1,'civicrm_line_item',4),
- (5,'2023-01-25 00:10:21','2020-10-25 11:10:21',4,'Contribution Amount',50.00,'USD',1,1,'civicrm_line_item',5),
- (6,'2023-01-25 00:10:21','2022-11-01 10:28:21',16,'Contribution Amount',500.00,'USD',1,1,'civicrm_line_item',6),
- (7,'2023-01-25 00:10:21','2023-01-23 11:10:21',19,'Contribution Amount',1750.00,'USD',1,1,'civicrm_line_item',7),
- (8,'2023-01-25 00:10:21','2022-06-02 19:21:21',82,'Contribution Amount',50.00,'USD',1,1,'civicrm_line_item',8),
- (9,'2023-01-25 00:10:21','2022-02-25 11:10:21',92,'Contribution Amount',10.00,'USD',1,1,'civicrm_line_item',9),
- (10,'2023-01-25 00:10:21','2018-09-02 13:10:21',34,'Contribution Amount',250.00,'USD',1,1,'civicrm_line_item',10),
- (11,'2023-01-25 00:10:21','2023-01-24 07:10:21',71,'Contribution Amount',500.00,'JPY',1,1,'civicrm_line_item',11),
- (12,'2023-01-25 00:10:21','2021-10-25 00:37:01',43,'Contribution Amount',50.00,'USD',1,1,'civicrm_line_item',12),
- (13,'2023-01-25 00:10:21','2022-10-25 00:00:00',32,'Contribution Amount',50.00,'USD',1,1,'civicrm_line_item',13),
- (14,'2023-01-25 00:10:21','2022-11-25 00:00:00',32,'Contribution Amount',50.00,'USD',1,1,'civicrm_line_item',14),
- (15,'2023-01-25 00:10:21','2021-10-25 11:10:21',59,'Contribution Amount',25.00,'USD',1,1,'civicrm_line_item',15),
- (16,'2023-01-25 00:10:21','2021-11-25 11:10:21',59,'Contribution Amount',25.00,'USD',1,1,'civicrm_line_item',16),
- (17,'2023-01-25 00:10:21','2021-12-25 11:10:21',59,'Contribution Amount',25.00,'USD',1,1,'civicrm_line_item',17),
- (18,'2023-01-25 00:10:21','2022-01-25 11:10:21',59,'Contribution Amount',25.00,'USD',1,1,'civicrm_line_item',18),
- (19,'2023-01-25 00:10:21','2022-02-25 11:10:21',59,'Contribution Amount',25.00,'USD',1,1,'civicrm_line_item',19),
- (20,'2023-01-25 00:10:21','2022-03-25 11:10:21',59,'Contribution Amount',25.00,'USD',1,1,'civicrm_line_item',20),
- (21,'2023-01-25 00:10:21','2022-04-25 11:10:21',59,'Contribution Amount',25.00,'USD',1,1,'civicrm_line_item',21),
- (22,'2023-01-25 00:10:21','2022-05-25 11:10:21',59,'Contribution Amount',25.00,'USD',1,1,'civicrm_line_item',22),
- (23,'2023-01-25 00:10:21','2022-06-25 11:10:21',59,'Contribution Amount',25.00,'USD',1,1,'civicrm_line_item',23),
- (24,'2023-01-25 00:10:21','2022-07-25 11:10:21',59,'Contribution Amount',25.00,'USD',1,1,'civicrm_line_item',24),
- (25,'2023-01-25 00:10:21','2022-08-25 11:10:21',59,'Contribution Amount',25.00,'USD',1,1,'civicrm_line_item',25),
- (26,'2023-01-25 00:10:21','2022-05-25 11:10:21',99,'Contribution Amount',10.00,'CAD',1,1,'civicrm_line_item',26),
- (27,'2023-01-25 00:10:21','2022-06-25 11:10:21',99,'Contribution Amount',10.00,'CAD',1,1,'civicrm_line_item',27),
- (28,'2023-01-25 00:10:21','2022-07-25 11:10:21',99,'Contribution Amount',10.00,'CAD',1,1,'civicrm_line_item',28),
- (29,'2023-01-25 00:10:21','2022-08-25 11:10:21',99,'Contribution Amount',10.00,'CAD',1,1,'civicrm_line_item',29),
- (30,'2023-01-25 00:10:21','2022-09-25 11:10:21',99,'Contribution Amount',10.00,'CAD',1,1,'civicrm_line_item',30),
- (31,'2023-01-25 00:10:21','2022-12-25 11:10:21',103,'Contribution Amount',5.00,'EUR',1,1,'civicrm_line_item',31),
- (32,'2023-01-25 00:10:21','2023-01-25 11:10:21',134,'General',100.00,'USD',2,1,'civicrm_line_item',32),
- (33,'2023-01-25 00:10:21','2023-01-25 11:10:21',11,'General',100.00,'USD',2,1,'civicrm_line_item',33),
- (34,'2023-01-25 00:10:21','2023-01-25 11:10:21',194,'General',100.00,'USD',2,1,'civicrm_line_item',34),
- (35,'2023-01-25 00:10:21','2023-01-25 11:10:21',154,'General',100.00,'USD',2,1,'civicrm_line_item',35),
- (36,'2023-01-25 00:10:21','2023-01-25 11:10:21',165,'General',100.00,'USD',2,1,'civicrm_line_item',36),
- (37,'2023-01-25 00:10:21','2023-01-25 11:10:21',193,'General',100.00,'USD',2,1,'civicrm_line_item',37),
- (38,'2023-01-25 00:10:21','2023-01-25 11:10:21',169,'General',100.00,'USD',2,1,'civicrm_line_item',38),
- (39,'2023-01-25 00:10:21','2023-01-25 11:10:21',44,'General',100.00,'USD',2,1,'civicrm_line_item',39),
- (40,'2023-01-25 00:10:21','2023-01-25 11:10:21',31,'General',100.00,'USD',2,1,'civicrm_line_item',40),
- (41,'2023-01-25 00:10:21','2023-01-25 11:10:21',49,'General',100.00,'USD',2,1,'civicrm_line_item',41),
- (42,'2023-01-25 00:10:21','2023-01-25 11:10:21',100,'General',100.00,'USD',2,1,'civicrm_line_item',42),
- (43,'2023-01-25 00:10:21','2023-01-25 11:10:21',110,'General',100.00,'USD',2,1,'civicrm_line_item',43),
- (44,'2023-01-25 00:10:21','2023-01-25 11:10:21',144,'General',100.00,'USD',2,1,'civicrm_line_item',44),
- (45,'2023-01-25 00:10:21','2023-01-25 11:10:21',71,'General',100.00,'USD',2,1,'civicrm_line_item',45),
- (46,'2023-01-25 00:10:21','2023-01-25 11:10:21',168,'Student',50.00,'USD',2,1,'civicrm_line_item',46),
- (47,'2023-01-25 00:10:21','2023-01-25 11:10:21',99,'Student',50.00,'USD',2,1,'civicrm_line_item',47),
- (48,'2023-01-25 00:10:21','2023-01-25 11:10:21',72,'Student',50.00,'USD',2,1,'civicrm_line_item',48),
- (49,'2023-01-25 00:10:22','2023-01-25 11:10:21',152,'Student',50.00,'USD',2,1,'civicrm_line_item',49),
- (50,'2023-01-25 00:10:22','2023-01-25 11:10:21',16,'Student',50.00,'USD',2,1,'civicrm_line_item',50),
- (51,'2023-01-25 00:10:22','2023-01-25 11:10:21',13,'Student',50.00,'USD',2,1,'civicrm_line_item',51),
- (52,'2023-01-25 00:10:22','2023-01-25 11:10:21',8,'Student',50.00,'USD',2,1,'civicrm_line_item',52),
- (53,'2023-01-25 00:10:22','2023-01-25 11:10:21',91,'Student',50.00,'USD',2,1,'civicrm_line_item',53),
- (54,'2023-01-25 00:10:22','2023-01-25 11:10:21',115,'Student',50.00,'USD',2,1,'civicrm_line_item',54),
- (55,'2023-01-25 00:10:22','2023-01-25 11:10:21',155,'Student',50.00,'USD',2,1,'civicrm_line_item',55),
- (56,'2023-01-25 00:10:22','2023-01-25 11:10:21',52,'Student',50.00,'USD',2,1,'civicrm_line_item',56),
- (57,'2023-01-25 00:10:22','2023-01-25 11:10:21',21,'Student',50.00,'USD',2,1,'civicrm_line_item',57),
- (58,'2023-01-25 00:10:22','2023-01-25 11:10:21',81,'Student',50.00,'USD',2,1,'civicrm_line_item',58),
- (59,'2023-01-25 00:10:22','2023-01-25 11:10:21',187,'Student',50.00,'USD',2,1,'civicrm_line_item',59),
- (60,'2023-01-25 00:10:22','2023-01-25 11:10:21',153,'Lifetime',1200.00,'USD',2,1,'civicrm_line_item',60),
- (61,'2023-01-25 00:10:22','2023-01-25 11:10:21',138,'Lifetime',1200.00,'USD',2,1,'civicrm_line_item',61),
- (62,'2023-01-25 00:10:22','2023-01-25 11:10:21',113,'Soprano',50.00,'USD',2,1,'civicrm_line_item',97),
- (63,'2023-01-25 00:10:22','2023-01-25 11:10:21',111,'Soprano',50.00,'USD',2,1,'civicrm_line_item',98),
- (64,'2023-01-25 00:10:22','2023-01-25 11:10:21',146,'Soprano',50.00,'USD',2,1,'civicrm_line_item',99),
- (65,'2023-01-25 00:10:22','2023-01-25 11:10:21',80,'Soprano',50.00,'USD',2,1,'civicrm_line_item',100),
- (66,'2023-01-25 00:10:22','2023-01-25 11:10:21',48,'Soprano',50.00,'USD',2,1,'civicrm_line_item',101),
- (67,'2023-01-25 00:10:22','2023-01-25 11:10:21',86,'Soprano',50.00,'USD',2,1,'civicrm_line_item',102),
- (68,'2023-01-25 00:10:22','2023-01-25 11:10:21',118,'Soprano',50.00,'USD',2,1,'civicrm_line_item',103),
- (69,'2023-01-25 00:10:22','2023-01-25 11:10:21',65,'Soprano',50.00,'USD',2,1,'civicrm_line_item',104),
- (70,'2023-01-25 00:10:22','2023-01-25 11:10:21',190,'Soprano',50.00,'USD',2,1,'civicrm_line_item',105),
- (71,'2023-01-25 00:10:22','2023-01-25 11:10:21',44,'Soprano',50.00,'USD',2,1,'civicrm_line_item',106),
- (72,'2023-01-25 00:10:22','2023-01-25 11:10:21',127,'Soprano',50.00,'USD',2,1,'civicrm_line_item',107),
- (73,'2023-01-25 00:10:22','2023-01-25 11:10:21',64,'Soprano',50.00,'USD',2,1,'civicrm_line_item',108),
- (74,'2023-01-25 00:10:22','2023-01-25 11:10:21',172,'Soprano',50.00,'USD',2,1,'civicrm_line_item',109),
- (75,'2023-01-25 00:10:22','2023-01-25 11:10:21',69,'Soprano',50.00,'USD',2,1,'civicrm_line_item',110),
- (76,'2023-01-25 00:10:22','2023-01-25 11:10:21',188,'Soprano',50.00,'USD',2,1,'civicrm_line_item',111),
- (77,'2023-01-25 00:10:22','2023-01-25 11:10:21',123,'Soprano',50.00,'USD',2,1,'civicrm_line_item',112),
- (78,'2023-01-25 00:10:22','2023-01-25 11:10:21',13,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',63),
- (79,'2023-01-25 00:10:22','2023-01-25 11:10:21',18,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',64),
- (80,'2023-01-25 00:10:22','2023-01-25 11:10:21',43,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',65),
- (81,'2023-01-25 00:10:22','2023-01-25 11:10:21',96,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',66),
- (82,'2023-01-25 00:10:22','2023-01-25 11:10:21',159,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',67),
- (83,'2023-01-25 00:10:22','2023-01-25 11:10:21',134,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',68),
- (84,'2023-01-25 00:10:22','2023-01-25 11:10:21',93,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',69),
- (85,'2023-01-25 00:10:22','2023-01-25 11:10:21',157,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',70),
- (86,'2023-01-25 00:10:22','2023-01-25 11:10:21',97,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',71),
- (87,'2023-01-25 00:10:22','2023-01-25 11:10:21',42,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',72),
- (88,'2023-01-25 00:10:22','2023-01-25 11:10:21',109,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',73),
- (89,'2023-01-25 00:10:22','2023-01-25 11:10:21',100,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',74),
- (90,'2023-01-25 00:10:22','2023-01-25 11:10:21',183,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',75),
- (91,'2023-01-25 00:10:22','2023-01-25 11:10:21',160,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',76),
- (92,'2023-01-25 00:10:22','2023-01-25 11:10:21',187,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',77),
- (93,'2023-01-25 00:10:22','2023-01-25 11:10:21',70,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',78),
- (94,'2023-01-25 00:10:22','2023-01-25 11:10:21',83,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',79),
- (95,'2023-01-25 00:10:22','2023-01-25 11:10:21',99,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',80),
- (96,'2023-01-25 00:10:22','2023-01-25 11:10:21',194,'Single',50.00,'USD',4,1,'civicrm_line_item',81),
- (97,'2023-01-25 00:10:22','2023-01-25 11:10:21',27,'Single',50.00,'USD',4,1,'civicrm_line_item',82),
- (98,'2023-01-25 00:10:22','2023-01-25 11:10:21',170,'Single',50.00,'USD',4,1,'civicrm_line_item',83),
- (99,'2023-01-25 00:10:22','2023-01-25 11:10:21',54,'Single',50.00,'USD',4,1,'civicrm_line_item',84),
- (100,'2023-01-25 00:10:22','2023-01-25 11:10:21',180,'Single',50.00,'USD',4,1,'civicrm_line_item',85),
- (101,'2023-01-25 00:10:22','2023-01-25 11:10:21',179,'Single',50.00,'USD',4,1,'civicrm_line_item',86),
- (102,'2023-01-25 00:10:22','2023-01-25 11:10:21',166,'Single',50.00,'USD',4,1,'civicrm_line_item',87),
- (103,'2023-01-25 00:10:22','2023-01-25 11:10:21',88,'Single',50.00,'USD',4,1,'civicrm_line_item',88),
- (104,'2023-01-25 00:10:22','2023-01-25 11:10:21',19,'Single',50.00,'USD',4,1,'civicrm_line_item',89),
- (105,'2023-01-25 00:10:22','2023-01-25 11:10:21',79,'Single',50.00,'USD',4,1,'civicrm_line_item',90),
- (106,'2023-01-25 00:10:22','2023-01-25 11:10:21',82,'Single',50.00,'USD',4,1,'civicrm_line_item',91),
- (107,'2023-01-25 00:10:22','2023-01-25 11:10:21',21,'Single',50.00,'USD',4,1,'civicrm_line_item',92),
- (108,'2023-01-25 00:10:22','2023-01-25 11:10:21',137,'Single',50.00,'USD',4,1,'civicrm_line_item',93),
- (109,'2023-01-25 00:10:22','2023-01-25 11:10:21',124,'Single',50.00,'USD',4,1,'civicrm_line_item',94),
- (110,'2023-01-25 00:10:22','2023-01-25 11:10:21',176,'Single',50.00,'USD',4,1,'civicrm_line_item',95),
- (111,'2023-01-25 00:10:22','2023-01-25 11:10:21',191,'Single',50.00,'USD',4,1,'civicrm_line_item',96);
+ (1,'2023-03-08 06:51:24','2013-03-08 17:51:24',2,'Contribution Amount',125.00,'USD',1,1,'civicrm_line_item',1),
+ (2,'2023-03-08 06:51:24','2020-12-08 17:51:24',4,'Contribution Amount',50.00,'USD',1,1,'civicrm_line_item',2),
+ (3,'2023-03-08 06:51:24','2017-02-11 04:51:24',6,'Contribution Amount',25.00,'GBP',1,1,'civicrm_line_item',3),
+ (4,'2023-03-08 06:51:24','2020-12-08 17:51:24',8,'Contribution Amount',50.00,'USD',1,1,'civicrm_line_item',4),
+ (5,'2023-03-08 06:51:24','2020-12-08 17:51:24',4,'Contribution Amount',50.00,'USD',1,1,'civicrm_line_item',5),
+ (6,'2023-03-08 06:51:24','2022-12-13 17:09:24',16,'Contribution Amount',500.00,'USD',1,1,'civicrm_line_item',6),
+ (7,'2023-03-08 06:51:24','2023-03-06 17:51:24',19,'Contribution Amount',1750.00,'USD',1,1,'civicrm_line_item',7),
+ (8,'2023-03-08 06:51:24','2022-07-15 02:02:24',82,'Contribution Amount',50.00,'USD',1,1,'civicrm_line_item',8),
+ (9,'2023-03-08 06:51:24','2022-04-08 17:51:24',92,'Contribution Amount',10.00,'USD',1,1,'civicrm_line_item',9),
+ (10,'2023-03-08 06:51:24','2018-10-16 19:51:24',34,'Contribution Amount',250.00,'USD',1,1,'civicrm_line_item',10),
+ (11,'2023-03-08 06:51:24','2023-03-07 13:51:24',71,'Contribution Amount',500.00,'JPY',1,1,'civicrm_line_item',11),
+ (12,'2023-03-08 06:51:24','2021-12-08 07:18:04',43,'Contribution Amount',50.00,'USD',1,1,'civicrm_line_item',12),
+ (13,'2023-03-08 06:51:24','2022-12-08 00:00:00',32,'Contribution Amount',50.00,'USD',1,1,'civicrm_line_item',13),
+ (14,'2023-03-08 06:51:24','2023-01-08 00:00:00',32,'Contribution Amount',50.00,'USD',1,1,'civicrm_line_item',14),
+ (15,'2023-03-08 06:51:24','2021-12-08 17:51:24',59,'Contribution Amount',25.00,'USD',1,1,'civicrm_line_item',15),
+ (16,'2023-03-08 06:51:24','2022-01-08 17:51:24',59,'Contribution Amount',25.00,'USD',1,1,'civicrm_line_item',16),
+ (17,'2023-03-08 06:51:24','2022-02-08 17:51:24',59,'Contribution Amount',25.00,'USD',1,1,'civicrm_line_item',17),
+ (18,'2023-03-08 06:51:24','2022-03-08 17:51:24',59,'Contribution Amount',25.00,'USD',1,1,'civicrm_line_item',18),
+ (19,'2023-03-08 06:51:24','2022-04-08 17:51:24',59,'Contribution Amount',25.00,'USD',1,1,'civicrm_line_item',19),
+ (20,'2023-03-08 06:51:24','2022-05-08 17:51:24',59,'Contribution Amount',25.00,'USD',1,1,'civicrm_line_item',20),
+ (21,'2023-03-08 06:51:24','2022-06-08 17:51:24',59,'Contribution Amount',25.00,'USD',1,1,'civicrm_line_item',21),
+ (22,'2023-03-08 06:51:24','2022-07-08 17:51:24',59,'Contribution Amount',25.00,'USD',1,1,'civicrm_line_item',22),
+ (23,'2023-03-08 06:51:24','2022-08-08 17:51:24',59,'Contribution Amount',25.00,'USD',1,1,'civicrm_line_item',23),
+ (24,'2023-03-08 06:51:24','2022-09-08 17:51:24',59,'Contribution Amount',25.00,'USD',1,1,'civicrm_line_item',24),
+ (25,'2023-03-08 06:51:24','2022-10-08 17:51:24',59,'Contribution Amount',25.00,'USD',1,1,'civicrm_line_item',25),
+ (26,'2023-03-08 06:51:24','2022-07-08 17:51:24',99,'Contribution Amount',10.00,'CAD',1,1,'civicrm_line_item',26),
+ (27,'2023-03-08 06:51:24','2022-08-08 17:51:24',99,'Contribution Amount',10.00,'CAD',1,1,'civicrm_line_item',27),
+ (28,'2023-03-08 06:51:24','2022-09-08 17:51:24',99,'Contribution Amount',10.00,'CAD',1,1,'civicrm_line_item',28),
+ (29,'2023-03-08 06:51:24','2022-10-08 17:51:24',99,'Contribution Amount',10.00,'CAD',1,1,'civicrm_line_item',29),
+ (30,'2023-03-08 06:51:24','2022-11-08 17:51:24',99,'Contribution Amount',10.00,'CAD',1,1,'civicrm_line_item',30),
+ (31,'2023-03-08 06:51:24','2023-02-08 17:51:24',103,'Contribution Amount',5.00,'EUR',1,1,'civicrm_line_item',31),
+ (32,'2023-03-08 06:51:24','2023-03-08 17:51:24',150,'General',100.00,'USD',2,1,'civicrm_line_item',32),
+ (33,'2023-03-08 06:51:24','2023-03-08 17:51:24',115,'General',100.00,'USD',2,1,'civicrm_line_item',33),
+ (34,'2023-03-08 06:51:24','2023-03-08 17:51:24',161,'General',100.00,'USD',2,1,'civicrm_line_item',34),
+ (35,'2023-03-08 06:51:24','2023-03-08 17:51:24',81,'General',100.00,'USD',2,1,'civicrm_line_item',35),
+ (36,'2023-03-08 06:51:24','2023-03-08 17:51:24',167,'General',100.00,'USD',2,1,'civicrm_line_item',36),
+ (37,'2023-03-08 06:51:24','2023-03-08 17:51:24',80,'General',100.00,'USD',2,1,'civicrm_line_item',37),
+ (38,'2023-03-08 06:51:24','2023-03-08 17:51:24',156,'General',100.00,'USD',2,1,'civicrm_line_item',38),
+ (39,'2023-03-08 06:51:24','2023-03-08 17:51:24',69,'General',100.00,'USD',2,1,'civicrm_line_item',39),
+ (40,'2023-03-08 06:51:24','2023-03-08 17:51:24',9,'General',100.00,'USD',2,1,'civicrm_line_item',40),
+ (41,'2023-03-08 06:51:24','2023-03-08 17:51:24',172,'General',100.00,'USD',2,1,'civicrm_line_item',41),
+ (42,'2023-03-08 06:51:24','2023-03-08 17:51:24',6,'General',100.00,'USD',2,1,'civicrm_line_item',42),
+ (43,'2023-03-08 06:51:24','2023-03-08 17:51:24',190,'General',100.00,'USD',2,1,'civicrm_line_item',43),
+ (44,'2023-03-08 06:51:24','2023-03-08 17:51:24',10,'General',100.00,'USD',2,1,'civicrm_line_item',44),
+ (45,'2023-03-08 06:51:24','2023-03-08 17:51:24',5,'General',100.00,'USD',2,1,'civicrm_line_item',45),
+ (46,'2023-03-08 06:51:24','2023-03-08 17:51:24',178,'General',100.00,'USD',2,1,'civicrm_line_item',46),
+ (47,'2023-03-08 06:51:24','2023-03-08 17:51:24',92,'Student',50.00,'USD',2,1,'civicrm_line_item',47),
+ (48,'2023-03-08 06:51:24','2023-03-08 17:51:24',2,'Student',50.00,'USD',2,1,'civicrm_line_item',48),
+ (49,'2023-03-08 06:51:24','2023-03-08 17:51:24',131,'Student',50.00,'USD',2,1,'civicrm_line_item',49),
+ (50,'2023-03-08 06:51:24','2023-03-08 17:51:24',29,'Student',50.00,'USD',2,1,'civicrm_line_item',50),
+ (51,'2023-03-08 06:51:24','2023-03-08 17:51:24',52,'Student',50.00,'USD',2,1,'civicrm_line_item',51),
+ (52,'2023-03-08 06:51:24','2023-03-08 17:51:24',133,'Student',50.00,'USD',2,1,'civicrm_line_item',52),
+ (53,'2023-03-08 06:51:24','2023-03-08 17:51:24',110,'Student',50.00,'USD',2,1,'civicrm_line_item',53),
+ (54,'2023-03-08 06:51:24','2023-03-08 17:51:24',200,'Student',50.00,'USD',2,1,'civicrm_line_item',54),
+ (55,'2023-03-08 06:51:24','2023-03-08 17:51:24',196,'Student',50.00,'USD',2,1,'civicrm_line_item',55),
+ (56,'2023-03-08 06:51:24','2023-03-08 17:51:24',186,'Student',50.00,'USD',2,1,'civicrm_line_item',56),
+ (57,'2023-03-08 06:51:24','2023-03-08 17:51:24',31,'Student',50.00,'USD',2,1,'civicrm_line_item',57),
+ (58,'2023-03-08 06:51:24','2023-03-08 17:51:24',104,'Student',50.00,'USD',2,1,'civicrm_line_item',58),
+ (59,'2023-03-08 06:51:24','2023-03-08 17:51:24',91,'Student',50.00,'USD',2,1,'civicrm_line_item',59),
+ (60,'2023-03-08 06:51:24','2023-03-08 17:51:24',75,'Lifetime',1200.00,'USD',2,1,'civicrm_line_item',60),
+ (61,'2023-03-08 06:51:24','2023-03-08 17:51:24',117,'Lifetime',1200.00,'USD',2,1,'civicrm_line_item',61),
+ (62,'2023-03-08 06:51:24','2023-03-08 17:51:24',17,'Soprano',50.00,'USD',2,1,'civicrm_line_item',97),
+ (63,'2023-03-08 06:51:24','2023-03-08 17:51:24',31,'Soprano',50.00,'USD',2,1,'civicrm_line_item',98),
+ (64,'2023-03-08 06:51:24','2023-03-08 17:51:24',144,'Soprano',50.00,'USD',2,1,'civicrm_line_item',99),
+ (65,'2023-03-08 06:51:24','2023-03-08 17:51:24',47,'Soprano',50.00,'USD',2,1,'civicrm_line_item',100),
+ (66,'2023-03-08 06:51:24','2023-03-08 17:51:24',163,'Soprano',50.00,'USD',2,1,'civicrm_line_item',101),
+ (67,'2023-03-08 06:51:24','2023-03-08 17:51:24',12,'Soprano',50.00,'USD',2,1,'civicrm_line_item',102),
+ (68,'2023-03-08 06:51:24','2023-03-08 17:51:24',6,'Soprano',50.00,'USD',2,1,'civicrm_line_item',103),
+ (69,'2023-03-08 06:51:24','2023-03-08 17:51:24',11,'Soprano',50.00,'USD',2,1,'civicrm_line_item',104),
+ (70,'2023-03-08 06:51:24','2023-03-08 17:51:24',8,'Soprano',50.00,'USD',2,1,'civicrm_line_item',105),
+ (71,'2023-03-08 06:51:24','2023-03-08 17:51:24',153,'Soprano',50.00,'USD',2,1,'civicrm_line_item',106),
+ (72,'2023-03-08 06:51:24','2023-03-08 17:51:24',200,'Soprano',50.00,'USD',2,1,'civicrm_line_item',107),
+ (73,'2023-03-08 06:51:24','2023-03-08 17:51:24',97,'Soprano',50.00,'USD',2,1,'civicrm_line_item',108),
+ (74,'2023-03-08 06:51:24','2023-03-08 17:51:24',194,'Soprano',50.00,'USD',2,1,'civicrm_line_item',109),
+ (75,'2023-03-08 06:51:24','2023-03-08 17:51:24',60,'Soprano',50.00,'USD',2,1,'civicrm_line_item',110),
+ (76,'2023-03-08 06:51:24','2023-03-08 17:51:24',161,'Soprano',50.00,'USD',2,1,'civicrm_line_item',111),
+ (77,'2023-03-08 06:51:24','2023-03-08 17:51:24',167,'Soprano',50.00,'USD',2,1,'civicrm_line_item',112),
+ (78,'2023-03-08 06:51:24','2023-03-08 17:51:24',188,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',63),
+ (79,'2023-03-08 06:51:24','2023-03-08 17:51:24',33,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',64),
+ (80,'2023-03-08 06:51:24','2023-03-08 17:51:24',51,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',65),
+ (81,'2023-03-08 06:51:24','2023-03-08 17:51:24',179,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',66),
+ (82,'2023-03-08 06:51:24','2023-03-08 17:51:24',91,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',67),
+ (83,'2023-03-08 06:51:24','2023-03-08 17:51:24',103,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',68),
+ (84,'2023-03-08 06:51:24','2023-03-08 17:51:24',181,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',69),
+ (85,'2023-03-08 06:51:24','2023-03-08 17:51:24',19,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',70),
+ (86,'2023-03-08 06:51:24','2023-03-08 17:51:24',112,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',71),
+ (87,'2023-03-08 06:51:24','2023-03-08 17:51:24',186,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',72),
+ (88,'2023-03-08 06:51:24','2023-03-08 17:51:24',43,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',73),
+ (89,'2023-03-08 06:51:24','2023-03-08 17:51:24',120,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',74),
+ (90,'2023-03-08 06:51:24','2023-03-08 17:51:24',38,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',75),
+ (91,'2023-03-08 06:51:24','2023-03-08 17:51:24',13,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',76),
+ (92,'2023-03-08 06:51:24','2023-03-08 17:51:24',29,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',77),
+ (93,'2023-03-08 06:51:24','2023-03-08 17:51:24',113,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',78),
+ (94,'2023-03-08 06:51:24','2023-03-08 17:51:24',18,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',79),
+ (95,'2023-03-08 06:51:24','2023-03-08 17:51:24',164,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',80),
+ (96,'2023-03-08 06:51:24','2023-03-08 17:51:24',114,'Single',50.00,'USD',4,1,'civicrm_line_item',81),
+ (97,'2023-03-08 06:51:24','2023-03-08 17:51:24',138,'Single',50.00,'USD',4,1,'civicrm_line_item',82),
+ (98,'2023-03-08 06:51:24','2023-03-08 17:51:24',147,'Single',50.00,'USD',4,1,'civicrm_line_item',83),
+ (99,'2023-03-08 06:51:24','2023-03-08 17:51:24',129,'Single',50.00,'USD',4,1,'civicrm_line_item',84),
+ (100,'2023-03-08 06:51:24','2023-03-08 17:51:24',84,'Single',50.00,'USD',4,1,'civicrm_line_item',85),
+ (101,'2023-03-08 06:51:24','2023-03-08 17:51:24',125,'Single',50.00,'USD',4,1,'civicrm_line_item',86),
+ (102,'2023-03-08 06:51:24','2023-03-08 17:51:24',27,'Single',50.00,'USD',4,1,'civicrm_line_item',87),
+ (103,'2023-03-08 06:51:24','2023-03-08 17:51:24',68,'Single',50.00,'USD',4,1,'civicrm_line_item',88),
+ (104,'2023-03-08 06:51:24','2023-03-08 17:51:24',61,'Single',50.00,'USD',4,1,'civicrm_line_item',89),
+ (105,'2023-03-08 06:51:24','2023-03-08 17:51:24',48,'Single',50.00,'USD',4,1,'civicrm_line_item',90),
+ (106,'2023-03-08 06:51:24','2023-03-08 17:51:24',55,'Single',50.00,'USD',4,1,'civicrm_line_item',91),
+ (107,'2023-03-08 06:51:24','2023-03-08 17:51:24',95,'Single',50.00,'USD',4,1,'civicrm_line_item',92),
+ (108,'2023-03-08 06:51:24','2023-03-08 17:51:24',169,'Single',50.00,'USD',4,1,'civicrm_line_item',93),
+ (109,'2023-03-08 06:51:24','2023-03-08 17:51:24',142,'Single',50.00,'USD',4,1,'civicrm_line_item',94),
+ (110,'2023-03-08 06:51:24','2023-03-08 17:51:24',1,'Single',50.00,'USD',4,1,'civicrm_line_item',95),
+ (111,'2023-03-08 06:51:24','2023-03-08 17:51:24',151,'Single',50.00,'USD',4,1,'civicrm_line_item',96);
 /*!40000 ALTER TABLE `civicrm_financial_item` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -3882,117 +3878,117 @@ UNLOCK TABLES;
 LOCK TABLES `civicrm_financial_trxn` WRITE;
 /*!40000 ALTER TABLE `civicrm_financial_trxn` DISABLE KEYS */;
 INSERT INTO `civicrm_financial_trxn` (`id`, `from_financial_account_id`, `to_financial_account_id`, `trxn_date`, `total_amount`, `fee_amount`, `net_amount`, `currency`, `is_payment`, `trxn_id`, `trxn_result_code`, `status_id`, `payment_processor_id`, `payment_instrument_id`, `card_type_id`, `check_number`, `pan_truncation`, `order_reference`) VALUES
- (1,NULL,6,'2013-01-25 11:10:21',125.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,4,NULL,'1041',NULL,NULL),
- (2,NULL,6,'2020-10-25 11:10:21',50.00,NULL,NULL,'USD',1,'P20901X1',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (3,NULL,6,'2016-12-30 22:10:21',25.00,NULL,NULL,'GBP',1,'GBP12',NULL,1,NULL,4,NULL,'2095',NULL,NULL),
- (4,NULL,6,'2020-10-25 11:10:21',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,4,NULL,'10552',NULL,NULL),
- (5,NULL,6,'2020-10-25 11:10:21',50.00,NULL,NULL,'USD',1,'Q90901X1',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (6,NULL,6,'2022-11-01 10:28:21',500.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,4,NULL,'509',NULL,NULL),
- (7,NULL,6,'2023-01-23 11:10:21',1750.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,'102',NULL,NULL),
- (8,NULL,6,'2022-06-02 19:21:21',50.00,NULL,NULL,'USD',1,'P20193L2',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (9,NULL,6,'2022-02-25 11:10:21',10.00,NULL,NULL,'USD',1,'P40232Y3',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (10,NULL,6,'2018-09-02 13:10:21',250.00,NULL,NULL,'USD',1,'P20193L6',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (11,NULL,6,'2023-01-24 07:10:21',500.00,NULL,NULL,'JPY',1,'PL71',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (12,NULL,6,'2021-10-25 00:37:01',50.00,NULL,NULL,'USD',1,'P291X1',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (13,NULL,6,'2022-10-25 00:00:00',50.00,NULL,NULL,'USD',1,'PL32I',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (14,NULL,6,'2022-11-25 00:00:00',50.00,NULL,NULL,'USD',1,'PL32II',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (15,NULL,6,'2021-10-25 11:10:21',25.00,NULL,NULL,'USD',1,'PL32I591',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (16,NULL,6,'2021-11-25 11:10:21',25.00,NULL,NULL,'USD',1,'PL32I592',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (17,NULL,6,'2021-12-25 11:10:21',25.00,NULL,NULL,'USD',1,'PL32I593',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (18,NULL,6,'2022-01-25 11:10:21',25.00,NULL,NULL,'USD',1,'PL32I594',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (19,NULL,6,'2022-02-25 11:10:21',25.00,NULL,NULL,'USD',1,'PL32I595',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (20,NULL,6,'2022-03-25 11:10:21',25.00,NULL,NULL,'USD',1,'PL32I596',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (21,NULL,6,'2022-04-25 11:10:21',25.00,NULL,NULL,'USD',1,'PL32I597',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (22,NULL,6,'2022-05-25 11:10:21',25.00,NULL,NULL,'USD',1,'PL32I598',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (23,NULL,6,'2022-06-25 11:10:21',25.00,NULL,NULL,'USD',1,'PL32I599',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (24,NULL,6,'2022-07-25 11:10:21',25.00,NULL,NULL,'USD',1,'PL32I5910',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (25,NULL,6,'2022-08-25 11:10:21',25.00,NULL,NULL,'USD',1,'PL32I5911',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (26,NULL,6,'2022-05-25 11:10:21',10.00,NULL,NULL,'CAD',1,'PL32I991',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (27,NULL,6,'2022-06-25 11:10:21',10.00,NULL,NULL,'CAD',1,'PL32I992',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (28,NULL,6,'2022-07-25 11:10:21',10.00,NULL,NULL,'CAD',1,'PL32I993',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (29,NULL,6,'2022-08-25 11:10:21',10.00,NULL,NULL,'CAD',1,'PL32I994',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (30,NULL,6,'2022-09-25 11:10:21',10.00,NULL,NULL,'CAD',1,'PL32I995',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (31,NULL,6,'2022-12-25 11:10:21',5.00,NULL,NULL,'EUR',1,'PL32I1031',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (32,NULL,6,'2023-01-25 11:10:21',100.00,NULL,NULL,'USD',1,'b6c6dc6a7ff26fdd',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (33,NULL,6,'2023-01-25 11:10:21',100.00,NULL,NULL,'USD',1,'5fb149937591d173',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (34,NULL,6,'2023-01-25 11:10:21',100.00,NULL,NULL,'USD',1,'a13cefe561e26454',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (35,NULL,6,'2023-01-25 11:10:21',100.00,NULL,NULL,'USD',1,'f3dc6b4534eb5b24',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (36,NULL,6,'2023-01-25 11:10:21',100.00,NULL,NULL,'USD',1,'97aa0294057737a7',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (37,NULL,6,'2023-01-25 11:10:21',100.00,NULL,NULL,'USD',1,'dc4127b9dff93a89',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (38,NULL,6,'2023-01-25 11:10:21',100.00,NULL,NULL,'USD',1,'d7b0e77c2b1786d7',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (39,NULL,6,'2023-01-25 11:10:21',100.00,NULL,NULL,'USD',1,'92a89478f6a8b7b3',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (40,NULL,6,'2023-01-25 11:10:21',100.00,NULL,NULL,'USD',1,'2380d65512d9d406',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (41,NULL,6,'2023-01-25 11:10:21',100.00,NULL,NULL,'USD',1,'84eeafedd1548bde',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (42,NULL,6,'2023-01-25 11:10:21',100.00,NULL,NULL,'USD',1,'282d04b437d9a14d',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (43,NULL,6,'2023-01-25 11:10:21',100.00,NULL,NULL,'USD',1,'844363646dc18acc',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (44,NULL,6,'2023-01-25 11:10:21',100.00,NULL,NULL,'USD',1,'6d0b7db4c6f2716c',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (45,NULL,6,'2023-01-25 11:10:21',100.00,NULL,NULL,'USD',1,'ac0936fc804ebcc3',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (46,NULL,6,'2023-01-25 11:10:21',50.00,NULL,NULL,'USD',1,'524eae9386105d49',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (47,NULL,6,'2023-01-25 11:10:21',50.00,NULL,NULL,'USD',1,'684db73560bf4885',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (48,NULL,6,'2023-01-25 11:10:21',50.00,NULL,NULL,'USD',1,'f58b3dc1a3354e55',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (49,NULL,6,'2023-01-25 11:10:21',50.00,NULL,NULL,'USD',1,'93ac74a6be0a542b',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (50,NULL,6,'2023-01-25 11:10:21',50.00,NULL,NULL,'USD',1,'ac53b76b8d60dc07',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (51,NULL,6,'2023-01-25 11:10:21',50.00,NULL,NULL,'USD',1,'d16391f8df9b0127',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (52,NULL,6,'2023-01-25 11:10:21',50.00,NULL,NULL,'USD',1,'3d8f58f681c83a95',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (53,NULL,6,'2023-01-25 11:10:21',50.00,NULL,NULL,'USD',1,'f31691c305ce96cf',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (54,NULL,6,'2023-01-25 11:10:21',50.00,NULL,NULL,'USD',1,'15865089a5bb5a73',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (55,NULL,6,'2023-01-25 11:10:21',50.00,NULL,NULL,'USD',1,'2000bc00e742b5de',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (56,NULL,6,'2023-01-25 11:10:21',50.00,NULL,NULL,'USD',1,'b925d5e40395d78a',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (57,NULL,6,'2023-01-25 11:10:21',50.00,NULL,NULL,'USD',1,'8a7627b3bbbda1bf',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (58,NULL,6,'2023-01-25 11:10:21',50.00,NULL,NULL,'USD',1,'f865e42dad3d50cf',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (59,NULL,6,'2023-01-25 11:10:21',50.00,NULL,NULL,'USD',1,'935fbea586c2a2cb',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (60,NULL,6,'2023-01-25 11:10:21',1200.00,NULL,NULL,'USD',1,'40b57706eae6631d',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (61,NULL,6,'2023-01-25 11:10:21',1200.00,NULL,NULL,'USD',1,'de94057b871e3b98',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (62,NULL,6,'2023-01-25 11:10:21',50.00,NULL,NULL,'USD',1,'a4fc117f88dc8da0',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (63,NULL,6,'2023-01-25 11:10:21',50.00,NULL,NULL,'USD',1,'249cedf705163304',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (64,NULL,6,'2023-01-25 11:10:21',50.00,NULL,NULL,'USD',1,'3714c4877c403a0a',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (65,NULL,6,'2023-01-25 11:10:21',50.00,NULL,NULL,'USD',1,'97222a2adc929f95',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (66,NULL,6,'2023-01-25 11:10:21',50.00,NULL,NULL,'USD',1,'968bcdf019e31319',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (67,NULL,6,'2023-01-25 11:10:21',50.00,NULL,NULL,'USD',1,'f40f7c487d1572c8',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (68,NULL,6,'2023-01-25 11:10:21',50.00,NULL,NULL,'USD',1,'5f98b9b08c61524a',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (69,NULL,6,'2023-01-25 11:10:21',50.00,NULL,NULL,'USD',1,'1613371d0121f1de',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (70,NULL,6,'2023-01-25 11:10:21',50.00,NULL,NULL,'USD',1,'b6136fdf513a2bfc',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (71,NULL,6,'2023-01-25 11:10:21',50.00,NULL,NULL,'USD',1,'8ee25cd47244738d',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (72,NULL,6,'2023-01-25 11:10:21',50.00,NULL,NULL,'USD',1,'d91f8fbff72c8085',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (73,NULL,6,'2023-01-25 11:10:21',50.00,NULL,NULL,'USD',1,'1b280cb8b867e92d',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (74,NULL,6,'2023-01-25 11:10:21',50.00,NULL,NULL,'USD',1,'7302e000b85551c0',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (75,NULL,6,'2023-01-25 11:10:21',50.00,NULL,NULL,'USD',1,'0c33cf3d06281860',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (76,NULL,6,'2023-01-25 11:10:21',50.00,NULL,NULL,'USD',1,'36cbda2b0ca06d1d',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (77,NULL,6,'2023-01-25 11:10:21',50.00,NULL,NULL,'USD',1,'1b26cc54516d83df',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (78,NULL,6,'2023-01-25 11:10:21',800.00,NULL,NULL,'USD',1,'723c76b6818d3ac6',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (79,NULL,6,'2023-01-25 11:10:21',800.00,NULL,NULL,'USD',1,'e2db4ec1d7a6e2a9',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (80,NULL,6,'2023-01-25 11:10:21',800.00,NULL,NULL,'USD',1,'d9fabe07d6ee2a4f',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (81,NULL,6,'2023-01-25 11:10:21',800.00,NULL,NULL,'USD',1,'92b29dbaab5b5382',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (82,NULL,6,'2023-01-25 11:10:21',800.00,NULL,NULL,'USD',1,'5c882a4cf827f611',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (83,NULL,6,'2023-01-25 11:10:21',800.00,NULL,NULL,'USD',1,'0c09c40aebba1a70',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (84,NULL,6,'2023-01-25 11:10:21',800.00,NULL,NULL,'USD',1,'4c7fb6e2279af937',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (85,NULL,6,'2023-01-25 11:10:21',800.00,NULL,NULL,'USD',1,'406ee71fc2a168cc',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (86,NULL,6,'2023-01-25 11:10:21',800.00,NULL,NULL,'USD',1,'60cf8ecd63fc87cb',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (87,NULL,6,'2023-01-25 11:10:21',800.00,NULL,NULL,'USD',1,'8eca9defb26ad067',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (88,NULL,6,'2023-01-25 11:10:21',800.00,NULL,NULL,'USD',1,'0ec26248b7992a1c',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (89,NULL,6,'2023-01-25 11:10:21',800.00,NULL,NULL,'USD',1,'89fc6aeafe4c712e',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (90,NULL,6,'2023-01-25 11:10:21',800.00,NULL,NULL,'USD',1,'894693ee0d7ef1a6',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (91,NULL,6,'2023-01-25 11:10:21',800.00,NULL,NULL,'USD',1,'6aaef3ee5ccc4d9c',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (92,NULL,6,'2023-01-25 11:10:21',800.00,NULL,NULL,'USD',1,'0cb6aeab14482638',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (93,NULL,6,'2023-01-25 11:10:21',800.00,NULL,NULL,'USD',1,'93a9a46b13ed2ea1',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (94,NULL,6,'2023-01-25 11:10:21',800.00,NULL,NULL,'USD',1,'01829806aa2d025f',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (95,NULL,6,'2023-01-25 11:10:21',800.00,NULL,NULL,'USD',1,'9cf79c424fc687d7',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (96,NULL,6,'2023-01-25 11:10:21',50.00,NULL,NULL,'USD',1,'90747ff7f8788f0d',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (97,NULL,6,'2023-01-25 11:10:21',50.00,NULL,NULL,'USD',1,'132e61fa1e10d161',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (98,NULL,6,'2023-01-25 11:10:21',50.00,NULL,NULL,'USD',1,'41cc55bcc280074e',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (99,NULL,6,'2023-01-25 11:10:21',50.00,NULL,NULL,'USD',1,'14d6a74b07cd686e',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (100,NULL,6,'2023-01-25 11:10:21',50.00,NULL,NULL,'USD',1,'0f0dc0093dbb71df',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (101,NULL,6,'2023-01-25 11:10:21',50.00,NULL,NULL,'USD',1,'47d2b289214cb577',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (102,NULL,6,'2023-01-25 11:10:21',50.00,NULL,NULL,'USD',1,'677948275bd8bbe2',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (103,NULL,6,'2023-01-25 11:10:21',50.00,NULL,NULL,'USD',1,'7c06ef857fa9df61',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (104,NULL,6,'2023-01-25 11:10:21',50.00,NULL,NULL,'USD',1,'5cbf94e945409735',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (105,NULL,6,'2023-01-25 11:10:21',50.00,NULL,NULL,'USD',1,'209cc0030a3cc9dc',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (106,NULL,6,'2023-01-25 11:10:21',50.00,NULL,NULL,'USD',1,'b37d6dd8e469cf14',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (107,NULL,6,'2023-01-25 11:10:21',50.00,NULL,NULL,'USD',1,'31c23b91e6f05713',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (108,NULL,6,'2023-01-25 11:10:21',50.00,NULL,NULL,'USD',1,'661fb5c13b80fc71',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (109,NULL,6,'2023-01-25 11:10:21',50.00,NULL,NULL,'USD',1,'5c299a9d2cefcc48',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (110,NULL,6,'2023-01-25 11:10:21',50.00,NULL,NULL,'USD',1,'8647f630f0514f82',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
- (111,NULL,6,'2023-01-25 11:10:21',50.00,NULL,NULL,'USD',1,'6e22090f617217a5',NULL,1,NULL,1,NULL,NULL,NULL,NULL);
+ (1,NULL,6,'2013-03-08 17:51:24',125.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,4,NULL,'1041',NULL,NULL),
+ (2,NULL,6,'2020-12-08 17:51:24',50.00,NULL,NULL,'USD',1,'P20901X1',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (3,NULL,6,'2017-02-11 04:51:24',25.00,NULL,NULL,'GBP',1,'GBP12',NULL,1,NULL,4,NULL,'2095',NULL,NULL),
+ (4,NULL,6,'2020-12-08 17:51:24',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,4,NULL,'10552',NULL,NULL),
+ (5,NULL,6,'2020-12-08 17:51:24',50.00,NULL,NULL,'USD',1,'Q90901X1',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (6,NULL,6,'2022-12-13 17:09:24',500.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,4,NULL,'509',NULL,NULL),
+ (7,NULL,6,'2023-03-06 17:51:24',1750.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,'102',NULL,NULL),
+ (8,NULL,6,'2022-07-15 02:02:24',50.00,NULL,NULL,'USD',1,'P20193L2',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (9,NULL,6,'2022-04-08 17:51:24',10.00,NULL,NULL,'USD',1,'P40232Y3',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (10,NULL,6,'2018-10-16 19:51:24',250.00,NULL,NULL,'USD',1,'P20193L6',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (11,NULL,6,'2023-03-07 13:51:24',500.00,NULL,NULL,'JPY',1,'PL71',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (12,NULL,6,'2021-12-08 07:18:04',50.00,NULL,NULL,'USD',1,'P291X1',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (13,NULL,6,'2022-12-08 00:00:00',50.00,NULL,NULL,'USD',1,'PL32I',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (14,NULL,6,'2023-01-08 00:00:00',50.00,NULL,NULL,'USD',1,'PL32II',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (15,NULL,6,'2021-12-08 17:51:24',25.00,NULL,NULL,'USD',1,'PL32I591',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (16,NULL,6,'2022-01-08 17:51:24',25.00,NULL,NULL,'USD',1,'PL32I592',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (17,NULL,6,'2022-02-08 17:51:24',25.00,NULL,NULL,'USD',1,'PL32I593',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (18,NULL,6,'2022-03-08 17:51:24',25.00,NULL,NULL,'USD',1,'PL32I594',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (19,NULL,6,'2022-04-08 17:51:24',25.00,NULL,NULL,'USD',1,'PL32I595',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (20,NULL,6,'2022-05-08 17:51:24',25.00,NULL,NULL,'USD',1,'PL32I596',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (21,NULL,6,'2022-06-08 17:51:24',25.00,NULL,NULL,'USD',1,'PL32I597',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (22,NULL,6,'2022-07-08 17:51:24',25.00,NULL,NULL,'USD',1,'PL32I598',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (23,NULL,6,'2022-08-08 17:51:24',25.00,NULL,NULL,'USD',1,'PL32I599',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (24,NULL,6,'2022-09-08 17:51:24',25.00,NULL,NULL,'USD',1,'PL32I5910',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (25,NULL,6,'2022-10-08 17:51:24',25.00,NULL,NULL,'USD',1,'PL32I5911',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (26,NULL,6,'2022-07-08 17:51:24',10.00,NULL,NULL,'CAD',1,'PL32I991',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (27,NULL,6,'2022-08-08 17:51:24',10.00,NULL,NULL,'CAD',1,'PL32I992',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (28,NULL,6,'2022-09-08 17:51:24',10.00,NULL,NULL,'CAD',1,'PL32I993',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (29,NULL,6,'2022-10-08 17:51:24',10.00,NULL,NULL,'CAD',1,'PL32I994',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (30,NULL,6,'2022-11-08 17:51:24',10.00,NULL,NULL,'CAD',1,'PL32I995',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (31,NULL,6,'2023-02-08 17:51:24',5.00,NULL,NULL,'EUR',1,'PL32I1031',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (32,NULL,6,'2023-03-08 17:51:24',100.00,NULL,NULL,'USD',1,'1fdc115bf2caa1b2',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (33,NULL,6,'2023-03-08 17:51:24',100.00,NULL,NULL,'USD',1,'667f6994611dd55a',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (34,NULL,6,'2023-03-08 17:51:24',100.00,NULL,NULL,'USD',1,'54d78bbeef7aa504',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (35,NULL,6,'2023-03-08 17:51:24',100.00,NULL,NULL,'USD',1,'7d2c719bd8cd324d',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (36,NULL,6,'2023-03-08 17:51:24',100.00,NULL,NULL,'USD',1,'6f7be96e6ac78511',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (37,NULL,6,'2023-03-08 17:51:24',100.00,NULL,NULL,'USD',1,'8646acabca300f47',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (38,NULL,6,'2023-03-08 17:51:24',100.00,NULL,NULL,'USD',1,'6dd11a5cdf3209fa',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (39,NULL,6,'2023-03-08 17:51:24',100.00,NULL,NULL,'USD',1,'06f6cdbddcf64e6d',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (40,NULL,6,'2023-03-08 17:51:24',100.00,NULL,NULL,'USD',1,'a7809e778b390910',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (41,NULL,6,'2023-03-08 17:51:24',100.00,NULL,NULL,'USD',1,'4ca2dbff7ea54933',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (42,NULL,6,'2023-03-08 17:51:24',100.00,NULL,NULL,'USD',1,'438c57d1c1fd1fe3',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (43,NULL,6,'2023-03-08 17:51:24',100.00,NULL,NULL,'USD',1,'f5c46caec43c2451',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (44,NULL,6,'2023-03-08 17:51:24',100.00,NULL,NULL,'USD',1,'aecd1a8ecdf6d337',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (45,NULL,6,'2023-03-08 17:51:24',100.00,NULL,NULL,'USD',1,'c28d2abf7ff6da09',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (46,NULL,6,'2023-03-08 17:51:24',100.00,NULL,NULL,'USD',1,'a575258aacf3f1ed',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (47,NULL,6,'2023-03-08 17:51:24',50.00,NULL,NULL,'USD',1,'81f4322ba54655a3',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (48,NULL,6,'2023-03-08 17:51:24',50.00,NULL,NULL,'USD',1,'588d59a76cae6cf8',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (49,NULL,6,'2023-03-08 17:51:24',50.00,NULL,NULL,'USD',1,'7cec655a46b32df3',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (50,NULL,6,'2023-03-08 17:51:24',50.00,NULL,NULL,'USD',1,'c9ba3631738ce187',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (51,NULL,6,'2023-03-08 17:51:24',50.00,NULL,NULL,'USD',1,'1b51fa020d1d72da',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (52,NULL,6,'2023-03-08 17:51:24',50.00,NULL,NULL,'USD',1,'8cd3cc9929c91072',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (53,NULL,6,'2023-03-08 17:51:24',50.00,NULL,NULL,'USD',1,'497de0006abe0190',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (54,NULL,6,'2023-03-08 17:51:24',50.00,NULL,NULL,'USD',1,'28b1900dae7aff83',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (55,NULL,6,'2023-03-08 17:51:24',50.00,NULL,NULL,'USD',1,'185530364c885e65',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (56,NULL,6,'2023-03-08 17:51:24',50.00,NULL,NULL,'USD',1,'e4b98506de79bc01',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (57,NULL,6,'2023-03-08 17:51:24',50.00,NULL,NULL,'USD',1,'3799d698482be64d',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (58,NULL,6,'2023-03-08 17:51:24',50.00,NULL,NULL,'USD',1,'8b2c2a53d97e3dad',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (59,NULL,6,'2023-03-08 17:51:24',50.00,NULL,NULL,'USD',1,'3c8ed4d8102e10ff',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (60,NULL,6,'2023-03-08 17:51:24',1200.00,NULL,NULL,'USD',1,'0e6f65441d9b1f96',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (61,NULL,6,'2023-03-08 17:51:24',1200.00,NULL,NULL,'USD',1,'4486913d2c04e249',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (62,NULL,6,'2023-03-08 17:51:24',50.00,NULL,NULL,'USD',1,'afb5d3a4ac3a688e',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (63,NULL,6,'2023-03-08 17:51:24',50.00,NULL,NULL,'USD',1,'1d560c9527e8accb',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (64,NULL,6,'2023-03-08 17:51:24',50.00,NULL,NULL,'USD',1,'afaeb5cc73c77375',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (65,NULL,6,'2023-03-08 17:51:24',50.00,NULL,NULL,'USD',1,'b08fb45451064268',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (66,NULL,6,'2023-03-08 17:51:24',50.00,NULL,NULL,'USD',1,'b4b0d1c52be01033',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (67,NULL,6,'2023-03-08 17:51:24',50.00,NULL,NULL,'USD',1,'9743c42b0384e647',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (68,NULL,6,'2023-03-08 17:51:24',50.00,NULL,NULL,'USD',1,'765707168e894f41',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (69,NULL,6,'2023-03-08 17:51:24',50.00,NULL,NULL,'USD',1,'38bfbfd4668d7967',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (70,NULL,6,'2023-03-08 17:51:24',50.00,NULL,NULL,'USD',1,'7a3f91c97d8c028a',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (71,NULL,6,'2023-03-08 17:51:24',50.00,NULL,NULL,'USD',1,'dda9e6435e6dd379',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (72,NULL,6,'2023-03-08 17:51:24',50.00,NULL,NULL,'USD',1,'5da413fb1c2b25ce',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (73,NULL,6,'2023-03-08 17:51:24',50.00,NULL,NULL,'USD',1,'9c0d80e0215a4af4',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (74,NULL,6,'2023-03-08 17:51:24',50.00,NULL,NULL,'USD',1,'59a33a93832546aa',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (75,NULL,6,'2023-03-08 17:51:24',50.00,NULL,NULL,'USD',1,'c5615bff744482f8',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (76,NULL,6,'2023-03-08 17:51:24',50.00,NULL,NULL,'USD',1,'678444c28cbe6793',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (77,NULL,6,'2023-03-08 17:51:24',50.00,NULL,NULL,'USD',1,'8ec594bb041bf3f0',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (78,NULL,6,'2023-03-08 17:51:24',800.00,NULL,NULL,'USD',1,'f8db820678bcd7cc',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (79,NULL,6,'2023-03-08 17:51:24',800.00,NULL,NULL,'USD',1,'c01b09d93188da88',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (80,NULL,6,'2023-03-08 17:51:24',800.00,NULL,NULL,'USD',1,'62dc9d3083ef8d29',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (81,NULL,6,'2023-03-08 17:51:24',800.00,NULL,NULL,'USD',1,'926bebe9e62b8a29',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (82,NULL,6,'2023-03-08 17:51:24',800.00,NULL,NULL,'USD',1,'38ade21215ba6bf4',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (83,NULL,6,'2023-03-08 17:51:24',800.00,NULL,NULL,'USD',1,'7d8a88c64846dda8',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (84,NULL,6,'2023-03-08 17:51:24',800.00,NULL,NULL,'USD',1,'9d2b0f6cb5cf4a74',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (85,NULL,6,'2023-03-08 17:51:24',800.00,NULL,NULL,'USD',1,'bfee4d0831cb8321',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (86,NULL,6,'2023-03-08 17:51:24',800.00,NULL,NULL,'USD',1,'8aa8adc186407e59',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (87,NULL,6,'2023-03-08 17:51:24',800.00,NULL,NULL,'USD',1,'4832ffd6f87eacbf',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (88,NULL,6,'2023-03-08 17:51:24',800.00,NULL,NULL,'USD',1,'205f2a4a998b13ba',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (89,NULL,6,'2023-03-08 17:51:24',800.00,NULL,NULL,'USD',1,'04af23a889245e0b',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (90,NULL,6,'2023-03-08 17:51:24',800.00,NULL,NULL,'USD',1,'424618e00083abc8',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (91,NULL,6,'2023-03-08 17:51:24',800.00,NULL,NULL,'USD',1,'cf2aaa549badc0a4',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (92,NULL,6,'2023-03-08 17:51:24',800.00,NULL,NULL,'USD',1,'7ac30e96b7904a44',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (93,NULL,6,'2023-03-08 17:51:24',800.00,NULL,NULL,'USD',1,'e7a45fb0a2ee1958',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (94,NULL,6,'2023-03-08 17:51:24',800.00,NULL,NULL,'USD',1,'3f1f02e8e2eb3a25',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (95,NULL,6,'2023-03-08 17:51:24',800.00,NULL,NULL,'USD',1,'61e4b389dd476db8',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (96,NULL,6,'2023-03-08 17:51:24',50.00,NULL,NULL,'USD',1,'a9fd1d12a7f15a3f',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (97,NULL,6,'2023-03-08 17:51:24',50.00,NULL,NULL,'USD',1,'c99d90d0291f847b',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (98,NULL,6,'2023-03-08 17:51:24',50.00,NULL,NULL,'USD',1,'e3f3771a7067bea4',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (99,NULL,6,'2023-03-08 17:51:24',50.00,NULL,NULL,'USD',1,'2ff0d71377e49636',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (100,NULL,6,'2023-03-08 17:51:24',50.00,NULL,NULL,'USD',1,'97a62b410454248e',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (101,NULL,6,'2023-03-08 17:51:24',50.00,NULL,NULL,'USD',1,'a46dc922d28abe31',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (102,NULL,6,'2023-03-08 17:51:24',50.00,NULL,NULL,'USD',1,'a00b60545deaf650',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (103,NULL,6,'2023-03-08 17:51:24',50.00,NULL,NULL,'USD',1,'e63377713fe49338',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (104,NULL,6,'2023-03-08 17:51:24',50.00,NULL,NULL,'USD',1,'55ab86113cd978c4',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (105,NULL,6,'2023-03-08 17:51:24',50.00,NULL,NULL,'USD',1,'3c65df9d4ef2a49f',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (106,NULL,6,'2023-03-08 17:51:24',50.00,NULL,NULL,'USD',1,'da90428ab22f5c79',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (107,NULL,6,'2023-03-08 17:51:24',50.00,NULL,NULL,'USD',1,'67f5c44e7356aaed',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (108,NULL,6,'2023-03-08 17:51:24',50.00,NULL,NULL,'USD',1,'0c3f4e2fd4d50aaf',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (109,NULL,6,'2023-03-08 17:51:24',50.00,NULL,NULL,'USD',1,'44d298aa357b7acb',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (110,NULL,6,'2023-03-08 17:51:24',50.00,NULL,NULL,'USD',1,'cdf19482f20c52e5',NULL,1,NULL,1,NULL,NULL,NULL,NULL),
+ (111,NULL,6,'2023-03-08 17:51:24',50.00,NULL,NULL,'USD',1,'8dce708fef95a7bd',NULL,1,NULL,1,NULL,NULL,NULL,NULL);
 /*!40000 ALTER TABLE `civicrm_financial_trxn` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -4031,89 +4027,89 @@ UNLOCK TABLES;
 LOCK TABLES `civicrm_group_contact` WRITE;
 /*!40000 ALTER TABLE `civicrm_group_contact` DISABLE KEYS */;
 INSERT INTO `civicrm_group_contact` (`id`, `group_id`, `contact_id`, `status`, `location_id`, `email_id`) VALUES
- (1,2,199,'Added',NULL,NULL),
- (2,2,85,'Added',NULL,NULL),
- (3,2,186,'Added',NULL,NULL),
- (4,2,47,'Added',NULL,NULL),
- (5,2,154,'Added',NULL,NULL),
- (6,2,145,'Added',NULL,NULL),
- (7,2,50,'Added',NULL,NULL),
- (8,2,75,'Added',NULL,NULL),
- (9,2,4,'Added',NULL,NULL),
- (10,2,192,'Added',NULL,NULL),
- (11,2,92,'Added',NULL,NULL),
- (12,2,89,'Added',NULL,NULL),
- (13,2,31,'Added',NULL,NULL),
- (14,2,158,'Added',NULL,NULL),
- (15,2,125,'Added',NULL,NULL),
- (16,2,137,'Added',NULL,NULL),
- (17,2,138,'Added',NULL,NULL),
- (18,2,46,'Added',NULL,NULL),
- (19,2,13,'Added',NULL,NULL),
- (20,2,99,'Added',NULL,NULL),
- (21,2,2,'Added',NULL,NULL),
- (22,2,113,'Added',NULL,NULL),
- (23,2,130,'Added',NULL,NULL),
- (24,2,108,'Added',NULL,NULL),
- (25,2,14,'Added',NULL,NULL),
- (26,2,198,'Added',NULL,NULL),
- (27,2,174,'Added',NULL,NULL),
- (28,2,107,'Added',NULL,NULL),
- (29,2,86,'Added',NULL,NULL),
- (30,2,54,'Added',NULL,NULL),
- (31,2,161,'Added',NULL,NULL),
- (32,2,165,'Added',NULL,NULL),
- (33,2,139,'Added',NULL,NULL),
- (34,2,37,'Added',NULL,NULL),
- (35,2,141,'Added',NULL,NULL),
- (36,2,170,'Added',NULL,NULL),
- (37,2,41,'Added',NULL,NULL),
- (38,2,21,'Added',NULL,NULL),
- (39,2,181,'Added',NULL,NULL),
- (40,2,83,'Added',NULL,NULL),
- (41,2,73,'Added',NULL,NULL),
- (42,2,53,'Added',NULL,NULL),
- (43,2,178,'Added',NULL,NULL),
- (44,2,133,'Added',NULL,NULL),
- (45,2,155,'Added',NULL,NULL),
- (46,2,81,'Added',NULL,NULL),
- (47,2,177,'Added',NULL,NULL),
- (48,2,116,'Added',NULL,NULL),
- (49,2,6,'Added',NULL,NULL),
- (50,2,95,'Added',NULL,NULL),
- (51,2,171,'Added',NULL,NULL),
- (52,2,129,'Added',NULL,NULL),
- (53,2,51,'Added',NULL,NULL),
- (54,2,173,'Added',NULL,NULL),
- (55,2,134,'Added',NULL,NULL),
- (56,2,23,'Added',NULL,NULL),
- (57,2,118,'Added',NULL,NULL),
- (58,2,82,'Added',NULL,NULL),
- (59,2,79,'Added',NULL,NULL),
- (60,2,72,'Added',NULL,NULL),
- (61,3,71,'Added',NULL,NULL),
- (62,3,185,'Added',NULL,NULL),
- (63,3,115,'Added',NULL,NULL),
- (64,3,43,'Added',NULL,NULL),
- (65,3,201,'Added',NULL,NULL),
- (66,3,182,'Added',NULL,NULL),
- (67,3,8,'Added',NULL,NULL),
- (68,3,52,'Added',NULL,NULL),
- (69,3,74,'Added',NULL,NULL),
- (70,3,36,'Added',NULL,NULL),
- (71,3,103,'Added',NULL,NULL),
- (72,3,144,'Added',NULL,NULL),
- (73,3,39,'Added',NULL,NULL),
- (74,3,159,'Added',NULL,NULL),
- (75,3,168,'Added',NULL,NULL),
- (76,4,199,'Added',NULL,NULL),
- (77,4,75,'Added',NULL,NULL),
- (78,4,125,'Added',NULL,NULL),
- (79,4,113,'Added',NULL,NULL),
- (80,4,86,'Added',NULL,NULL),
- (81,4,170,'Added',NULL,NULL),
- (82,4,178,'Added',NULL,NULL),
- (83,4,95,'Added',NULL,NULL),
+ (1,2,97,'Added',NULL,NULL),
+ (2,2,32,'Added',NULL,NULL),
+ (3,2,195,'Added',NULL,NULL),
+ (4,2,150,'Added',NULL,NULL),
+ (5,2,98,'Added',NULL,NULL),
+ (6,2,113,'Added',NULL,NULL),
+ (7,2,164,'Added',NULL,NULL),
+ (8,2,9,'Added',NULL,NULL),
+ (9,2,73,'Added',NULL,NULL),
+ (10,2,79,'Added',NULL,NULL),
+ (11,2,40,'Added',NULL,NULL),
+ (12,2,75,'Added',NULL,NULL),
+ (13,2,60,'Added',NULL,NULL),
+ (14,2,179,'Added',NULL,NULL),
+ (15,2,31,'Added',NULL,NULL),
+ (16,2,101,'Added',NULL,NULL),
+ (17,2,174,'Added',NULL,NULL),
+ (18,2,123,'Added',NULL,NULL),
+ (19,2,162,'Added',NULL,NULL),
+ (20,2,166,'Added',NULL,NULL),
+ (21,2,29,'Added',NULL,NULL),
+ (22,2,154,'Added',NULL,NULL),
+ (23,2,134,'Added',NULL,NULL),
+ (24,2,69,'Added',NULL,NULL),
+ (25,2,86,'Added',NULL,NULL),
+ (26,2,76,'Added',NULL,NULL),
+ (27,2,133,'Added',NULL,NULL),
+ (28,2,184,'Added',NULL,NULL),
+ (29,2,199,'Added',NULL,NULL),
+ (30,2,161,'Added',NULL,NULL),
+ (31,2,136,'Added',NULL,NULL),
+ (32,2,67,'Added',NULL,NULL),
+ (33,2,81,'Added',NULL,NULL),
+ (34,2,114,'Added',NULL,NULL),
+ (35,2,35,'Added',NULL,NULL),
+ (36,2,68,'Added',NULL,NULL),
+ (37,2,53,'Added',NULL,NULL),
+ (38,2,72,'Added',NULL,NULL),
+ (39,2,175,'Added',NULL,NULL),
+ (40,2,104,'Added',NULL,NULL),
+ (41,2,30,'Added',NULL,NULL),
+ (42,2,140,'Added',NULL,NULL),
+ (43,2,78,'Added',NULL,NULL),
+ (44,2,192,'Added',NULL,NULL),
+ (45,2,145,'Added',NULL,NULL),
+ (46,2,51,'Added',NULL,NULL),
+ (47,2,74,'Added',NULL,NULL),
+ (48,2,124,'Added',NULL,NULL),
+ (49,2,165,'Added',NULL,NULL),
+ (50,2,77,'Added',NULL,NULL),
+ (51,2,201,'Added',NULL,NULL),
+ (52,2,66,'Added',NULL,NULL),
+ (53,2,121,'Added',NULL,NULL),
+ (54,2,152,'Added',NULL,NULL),
+ (55,2,127,'Added',NULL,NULL),
+ (56,2,176,'Added',NULL,NULL),
+ (57,2,83,'Added',NULL,NULL),
+ (58,2,128,'Added',NULL,NULL),
+ (59,2,148,'Added',NULL,NULL),
+ (60,2,88,'Added',NULL,NULL),
+ (61,3,38,'Added',NULL,NULL),
+ (62,3,21,'Added',NULL,NULL),
+ (63,3,171,'Added',NULL,NULL),
+ (64,3,170,'Added',NULL,NULL),
+ (65,3,22,'Added',NULL,NULL),
+ (66,3,147,'Added',NULL,NULL),
+ (67,3,186,'Added',NULL,NULL),
+ (68,3,44,'Added',NULL,NULL),
+ (69,3,196,'Added',NULL,NULL),
+ (70,3,144,'Added',NULL,NULL),
+ (71,3,130,'Added',NULL,NULL),
+ (72,3,142,'Added',NULL,NULL),
+ (73,3,48,'Added',NULL,NULL),
+ (74,3,47,'Added',NULL,NULL),
+ (75,3,4,'Added',NULL,NULL),
+ (76,4,97,'Added',NULL,NULL),
+ (77,4,9,'Added',NULL,NULL),
+ (78,4,31,'Added',NULL,NULL),
+ (79,4,154,'Added',NULL,NULL),
+ (80,4,199,'Added',NULL,NULL),
+ (81,4,68,'Added',NULL,NULL),
+ (82,4,78,'Added',NULL,NULL),
+ (83,4,77,'Added',NULL,NULL),
  (84,4,202,'Added',NULL,NULL);
 /*!40000 ALTER TABLE `civicrm_group_contact` ENABLE KEYS */;
 UNLOCK TABLES;
@@ -4230,29 +4226,29 @@ INSERT INTO `civicrm_line_item` (`id`, `entity_table`, `entity_id`, `contributio
  (31,'civicrm_contribution',31,31,1,'Contribution Amount',1.00,5.00,5.00,0,1,1,0.00,NULL,NULL),
  (32,'civicrm_membership',1,32,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL),
  (33,'civicrm_membership',3,34,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL),
- (34,'civicrm_membership',7,38,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL),
- (35,'civicrm_membership',9,40,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL),
- (36,'civicrm_membership',13,44,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL),
- (37,'civicrm_membership',15,46,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL),
+ (34,'civicrm_membership',5,36,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL),
+ (35,'civicrm_membership',7,38,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL),
+ (36,'civicrm_membership',9,40,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL),
+ (37,'civicrm_membership',13,44,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL),
  (38,'civicrm_membership',17,48,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL),
  (39,'civicrm_membership',19,50,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL),
- (40,'civicrm_membership',21,52,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL),
- (41,'civicrm_membership',23,54,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL),
- (42,'civicrm_membership',25,56,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL),
- (43,'civicrm_membership',27,58,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL),
- (44,'civicrm_membership',29,60,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL),
- (45,'civicrm_membership',30,61,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL),
- (46,'civicrm_membership',2,33,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL),
- (47,'civicrm_membership',4,35,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL),
- (48,'civicrm_membership',5,36,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL),
+ (40,'civicrm_membership',20,51,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL),
+ (41,'civicrm_membership',21,52,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL),
+ (42,'civicrm_membership',23,54,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL),
+ (43,'civicrm_membership',25,56,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL),
+ (44,'civicrm_membership',27,58,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL),
+ (45,'civicrm_membership',29,60,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL),
+ (46,'civicrm_membership',30,61,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL),
+ (47,'civicrm_membership',2,33,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL),
+ (48,'civicrm_membership',4,35,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL),
  (49,'civicrm_membership',6,37,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL),
  (50,'civicrm_membership',8,39,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL),
  (51,'civicrm_membership',10,41,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL),
  (52,'civicrm_membership',12,43,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL),
  (53,'civicrm_membership',14,45,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL),
- (54,'civicrm_membership',16,47,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL),
- (55,'civicrm_membership',18,49,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL),
- (56,'civicrm_membership',20,51,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL),
+ (54,'civicrm_membership',15,46,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL),
+ (55,'civicrm_membership',16,47,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL),
+ (56,'civicrm_membership',18,49,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL),
  (57,'civicrm_membership',24,55,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL),
  (58,'civicrm_membership',26,57,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL),
  (59,'civicrm_membership',28,59,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL),
@@ -4318,9 +4314,9 @@ UNLOCK TABLES;
 LOCK TABLES `civicrm_loc_block` WRITE;
 /*!40000 ALTER TABLE `civicrm_loc_block` DISABLE KEYS */;
 INSERT INTO `civicrm_loc_block` (`id`, `address_id`, `email_id`, `phone_id`, `im_id`, `address_2_id`, `email_2_id`, `phone_2_id`, `im_2_id`) VALUES
- (1,182,194,156,NULL,NULL,NULL,NULL,NULL),
- (2,183,195,157,NULL,NULL,NULL,NULL,NULL),
- (3,184,196,158,NULL,NULL,NULL,NULL,NULL);
+ (1,185,187,149,NULL,NULL,NULL,NULL,NULL),
+ (2,186,188,150,NULL,NULL,NULL,NULL,NULL),
+ (3,187,189,151,NULL,NULL,NULL,NULL,NULL);
 /*!40000 ALTER TABLE `civicrm_loc_block` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -4346,7 +4342,7 @@ UNLOCK TABLES;
 LOCK TABLES `civicrm_log` WRITE;
 /*!40000 ALTER TABLE `civicrm_log` DISABLE KEYS */;
 INSERT INTO `civicrm_log` (`id`, `entity_table`, `entity_id`, `data`, `modified_id`, `modified_date`) VALUES
- (1,'civicrm_contact',202,'civicrm_contact,202',202,'2023-01-25 11:10:19');
+ (1,'civicrm_contact',202,'civicrm_contact,202',202,'2023-03-08 17:51:22');
 /*!40000 ALTER TABLE `civicrm_log` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -4765,36 +4761,36 @@ UNLOCK TABLES;
 LOCK TABLES `civicrm_membership` WRITE;
 /*!40000 ALTER TABLE `civicrm_membership` DISABLE KEYS */;
 INSERT INTO `civicrm_membership` (`id`, `contact_id`, `membership_type_id`, `join_date`, `start_date`, `end_date`, `source`, `status_id`, `is_override`, `status_override_end_date`, `owner_membership_id`, `max_related`, `is_test`, `is_pay_later`, `contribution_recur_id`, `campaign_id`) VALUES
- (1,134,1,'2023-01-25','2023-01-25','2025-01-24','Payment',1,0,NULL,NULL,NULL,0,0,NULL,NULL),
- (2,168,2,'2023-01-24','2023-01-24','2024-01-23','Payment',1,0,NULL,NULL,NULL,0,0,NULL,NULL),
- (3,11,1,'2023-01-23','2023-01-23','2025-01-22','Payment',1,0,NULL,NULL,NULL,0,0,NULL,NULL),
- (4,99,2,'2023-01-22','2023-01-22','2024-01-21','Donation',1,0,NULL,NULL,NULL,0,0,NULL,NULL),
- (5,72,2,'2022-01-21','2022-01-21','2023-01-20','Payment',4,0,NULL,NULL,NULL,0,0,NULL,NULL),
- (6,152,2,'2023-01-20','2023-01-20','2024-01-19','Donation',1,0,NULL,NULL,NULL,0,0,NULL,NULL),
- (7,194,1,'2023-01-19','2023-01-19','2025-01-18','Payment',1,0,NULL,NULL,NULL,0,0,NULL,NULL),
- (8,16,2,'2023-01-18','2023-01-18','2024-01-17','Check',1,0,NULL,NULL,NULL,0,0,NULL,NULL),
- (9,154,1,'2023-01-17','2023-01-17','2025-01-16','Donation',1,0,NULL,NULL,NULL,0,0,NULL,NULL),
- (10,13,2,'2022-01-16','2022-01-16','2023-01-15','Payment',4,0,NULL,NULL,NULL,0,0,NULL,NULL),
- (11,153,3,'2023-01-15','2023-01-15',NULL,'Check',1,0,NULL,NULL,NULL,0,0,NULL,NULL),
- (12,8,2,'2023-01-14','2023-01-14','2024-01-13','Payment',1,0,NULL,NULL,NULL,0,0,NULL,NULL),
- (13,165,1,'2023-01-13','2023-01-13','2025-01-12','Check',1,0,NULL,NULL,NULL,0,0,NULL,NULL),
- (14,91,2,'2023-01-12','2023-01-12','2024-01-11','Check',1,0,NULL,NULL,NULL,0,0,NULL,NULL),
- (15,193,1,'2020-10-05','2020-10-05','2022-10-04','Check',3,0,NULL,NULL,NULL,0,0,NULL,NULL),
- (16,115,2,'2023-01-10','2023-01-10','2024-01-09','Check',1,0,NULL,NULL,NULL,0,0,NULL,NULL),
- (17,169,1,'2023-01-09','2023-01-09','2025-01-08','Donation',1,0,NULL,NULL,NULL,0,0,NULL,NULL),
- (18,155,2,'2023-01-08','2023-01-08','2024-01-07','Donation',1,0,NULL,NULL,NULL,0,0,NULL,NULL),
- (19,44,1,'2023-01-07','2023-01-07','2025-01-06','Check',1,0,NULL,NULL,NULL,0,0,NULL,NULL),
- (20,52,2,'2022-01-06','2022-01-06','2023-01-05','Donation',4,0,NULL,NULL,NULL,0,0,NULL,NULL),
- (21,31,1,'2023-01-05','2023-01-05','2025-01-04','Payment',1,0,NULL,NULL,NULL,0,0,NULL,NULL),
- (22,138,3,'2023-01-04','2023-01-04',NULL,'Payment',1,0,NULL,NULL,NULL,0,0,NULL,NULL),
- (23,49,1,'2023-01-03','2023-01-03','2025-01-02','Payment',1,0,NULL,NULL,NULL,0,0,NULL,NULL),
- (24,21,2,'2023-01-02','2023-01-02','2024-01-01','Donation',1,0,NULL,NULL,NULL,0,0,NULL,NULL),
- (25,100,1,'2020-07-17','2020-07-17','2022-07-16','Check',3,0,NULL,NULL,NULL,0,0,NULL,NULL),
- (26,81,2,'2022-12-31','2022-12-31','2023-12-30','Payment',1,0,NULL,NULL,NULL,0,0,NULL,NULL),
- (27,110,1,'2022-12-30','2022-12-30','2024-12-29','Check',1,0,NULL,NULL,NULL,0,0,NULL,NULL),
- (28,187,2,'2022-12-29','2022-12-29','2023-12-28','Donation',1,0,NULL,NULL,NULL,0,0,NULL,NULL),
- (29,144,1,'2022-12-28','2022-12-28','2024-12-27','Donation',1,0,NULL,NULL,NULL,0,0,NULL,NULL),
- (30,71,1,'2020-06-07','2020-06-07','2022-06-06','Payment',3,0,NULL,NULL,NULL,0,0,NULL,NULL);
+ (1,150,1,'2023-03-08','2023-03-08','2025-03-07','Payment',1,0,NULL,NULL,NULL,0,0,NULL,NULL),
+ (2,92,2,'2023-03-07','2023-03-07','2024-03-06','Check',1,0,NULL,NULL,NULL,0,0,NULL,NULL),
+ (3,115,1,'2023-03-06','2023-03-06','2025-03-05','Payment',1,0,NULL,NULL,NULL,0,0,NULL,NULL),
+ (4,2,2,'2023-03-05','2023-03-05','2024-03-04','Donation',1,0,NULL,NULL,NULL,0,0,NULL,NULL),
+ (5,161,1,'2021-02-04','2021-02-04','2023-02-03','Payment',3,0,NULL,NULL,NULL,0,0,NULL,NULL),
+ (6,131,2,'2023-03-03','2023-03-03','2024-03-02','Check',1,0,NULL,NULL,NULL,0,0,NULL,NULL),
+ (7,81,1,'2023-03-02','2023-03-02','2025-03-01','Check',1,0,NULL,NULL,NULL,0,0,NULL,NULL),
+ (8,29,2,'2023-03-01','2023-03-01','2024-02-29','Check',1,0,NULL,NULL,NULL,0,0,NULL,NULL),
+ (9,167,1,'2023-02-28','2023-02-28','2025-02-27','Donation',1,0,NULL,NULL,NULL,0,0,NULL,NULL),
+ (10,52,2,'2022-02-27','2022-02-27','2023-02-26','Payment',4,0,NULL,NULL,NULL,0,0,NULL,NULL),
+ (11,75,3,'2023-02-26','2023-02-26',NULL,'Donation',1,0,NULL,NULL,NULL,0,0,NULL,NULL),
+ (12,133,2,'2023-02-25','2023-02-25','2024-02-25','Payment',1,0,NULL,NULL,NULL,0,0,NULL,NULL),
+ (13,80,1,'2023-02-24','2023-02-24','2025-02-23','Donation',1,0,NULL,NULL,NULL,0,0,NULL,NULL),
+ (14,110,2,'2023-02-23','2023-02-23','2024-02-23','Donation',1,0,NULL,NULL,NULL,0,0,NULL,NULL),
+ (15,200,2,'2022-02-22','2022-02-22','2023-02-21','Payment',4,0,NULL,NULL,NULL,0,0,NULL,NULL),
+ (16,196,2,'2023-02-21','2023-02-21','2024-02-21','Donation',1,0,NULL,NULL,NULL,0,0,NULL,NULL),
+ (17,156,1,'2023-02-20','2023-02-20','2025-02-19','Payment',1,0,NULL,NULL,NULL,0,0,NULL,NULL),
+ (18,186,2,'2023-02-19','2023-02-19','2024-02-19','Donation',1,0,NULL,NULL,NULL,0,0,NULL,NULL),
+ (19,69,1,'2023-02-18','2023-02-18','2025-02-17','Check',1,0,NULL,NULL,NULL,0,0,NULL,NULL),
+ (20,9,1,'2020-10-07','2020-10-07','2022-10-06','Donation',3,0,NULL,NULL,NULL,0,0,NULL,NULL),
+ (21,172,1,'2023-02-16','2023-02-16','2025-02-15','Check',1,0,NULL,NULL,NULL,0,0,NULL,NULL),
+ (22,117,3,'2023-02-15','2023-02-15',NULL,'Donation',1,0,NULL,NULL,NULL,0,0,NULL,NULL),
+ (23,6,1,'2023-02-14','2023-02-14','2025-02-13','Check',1,0,NULL,NULL,NULL,0,0,NULL,NULL),
+ (24,31,2,'2023-02-13','2023-02-13','2024-02-13','Donation',1,0,NULL,NULL,NULL,0,0,NULL,NULL),
+ (25,190,1,'2020-08-28','2020-08-28','2022-08-27','Donation',3,0,NULL,NULL,NULL,0,0,NULL,NULL),
+ (26,104,2,'2023-02-11','2023-02-11','2024-02-11','Check',1,0,NULL,NULL,NULL,0,0,NULL,NULL),
+ (27,10,1,'2023-02-10','2023-02-10','2025-02-09','Payment',1,0,NULL,NULL,NULL,0,0,NULL,NULL),
+ (28,91,2,'2023-02-09','2023-02-09','2024-02-09','Donation',1,0,NULL,NULL,NULL,0,0,NULL,NULL),
+ (29,5,1,'2023-02-08','2023-02-08','2025-02-07','Payment',1,0,NULL,NULL,NULL,0,0,NULL,NULL),
+ (30,178,1,'2020-07-19','2020-07-19','2022-07-18','Donation',3,0,NULL,NULL,NULL,0,0,NULL,NULL);
 /*!40000 ALTER TABLE `civicrm_membership` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -4816,36 +4812,36 @@ UNLOCK TABLES;
 LOCK TABLES `civicrm_membership_log` WRITE;
 /*!40000 ALTER TABLE `civicrm_membership_log` DISABLE KEYS */;
 INSERT INTO `civicrm_membership_log` (`id`, `membership_id`, `status_id`, `start_date`, `end_date`, `modified_id`, `modified_date`, `membership_type_id`, `max_related`) VALUES
- (1,12,1,'2023-01-14','2024-01-13',8,'2023-01-25',2,NULL),
- (2,3,1,'2023-01-23','2025-01-22',11,'2023-01-25',1,NULL),
- (3,10,4,'2022-01-16','2023-01-15',13,'2023-01-25',2,NULL),
- (4,8,1,'2023-01-18','2024-01-17',16,'2023-01-25',2,NULL),
- (5,24,1,'2023-01-02','2024-01-01',21,'2023-01-25',2,NULL),
- (6,21,1,'2023-01-05','2025-01-04',31,'2023-01-25',1,NULL),
- (7,19,1,'2023-01-07','2025-01-06',44,'2023-01-25',1,NULL),
- (8,23,1,'2023-01-03','2025-01-02',49,'2023-01-25',1,NULL),
- (9,20,4,'2022-01-06','2023-01-05',52,'2023-01-25',2,NULL),
- (10,30,3,'2020-06-07','2022-06-06',71,'2023-01-25',1,NULL),
- (11,5,4,'2022-01-21','2023-01-20',72,'2023-01-25',2,NULL),
- (12,26,1,'2022-12-31','2023-12-30',81,'2023-01-25',2,NULL),
- (13,14,1,'2023-01-12','2024-01-11',91,'2023-01-25',2,NULL),
- (14,4,1,'2023-01-22','2024-01-21',99,'2023-01-25',2,NULL),
- (15,25,3,'2020-07-17','2022-07-16',100,'2023-01-25',1,NULL),
- (16,27,1,'2022-12-30','2024-12-29',110,'2023-01-25',1,NULL),
- (17,16,1,'2023-01-10','2024-01-09',115,'2023-01-25',2,NULL),
- (18,1,1,'2023-01-25','2025-01-24',134,'2023-01-25',1,NULL),
- (19,22,1,'2023-01-04',NULL,138,'2023-01-25',3,NULL),
- (20,29,1,'2022-12-28','2024-12-27',144,'2023-01-25',1,NULL),
- (21,6,1,'2023-01-20','2024-01-19',152,'2023-01-25',2,NULL),
- (22,11,1,'2023-01-15',NULL,153,'2023-01-25',3,NULL),
- (23,9,1,'2023-01-17','2025-01-16',154,'2023-01-25',1,NULL),
- (24,18,1,'2023-01-08','2024-01-07',155,'2023-01-25',2,NULL),
- (25,13,1,'2023-01-13','2025-01-12',165,'2023-01-25',1,NULL),
- (26,2,1,'2023-01-24','2024-01-23',168,'2023-01-25',2,NULL),
- (27,17,1,'2023-01-09','2025-01-08',169,'2023-01-25',1,NULL),
- (28,28,1,'2022-12-29','2023-12-28',187,'2023-01-25',2,NULL),
- (29,15,3,'2020-10-05','2022-10-04',193,'2023-01-25',1,NULL),
- (30,7,1,'2023-01-19','2025-01-18',194,'2023-01-25',1,NULL);
+ (1,4,1,'2023-03-05','2024-03-04',2,'2023-03-08',2,NULL),
+ (2,29,1,'2023-02-08','2025-02-07',5,'2023-03-08',1,NULL),
+ (3,23,1,'2023-02-14','2025-02-13',6,'2023-03-08',1,NULL),
+ (4,20,3,'2020-10-07','2022-10-06',9,'2023-03-08',1,NULL),
+ (5,27,1,'2023-02-10','2025-02-09',10,'2023-03-08',1,NULL),
+ (6,8,1,'2023-03-01','2024-02-29',29,'2023-03-08',2,NULL),
+ (7,24,1,'2023-02-13','2024-02-13',31,'2023-03-08',2,NULL),
+ (8,10,4,'2022-02-27','2023-02-26',52,'2023-03-08',2,NULL),
+ (9,19,1,'2023-02-18','2025-02-17',69,'2023-03-08',1,NULL),
+ (10,11,1,'2023-02-26',NULL,75,'2023-03-08',3,NULL),
+ (11,13,1,'2023-02-24','2025-02-23',80,'2023-03-08',1,NULL),
+ (12,7,1,'2023-03-02','2025-03-01',81,'2023-03-08',1,NULL),
+ (13,28,1,'2023-02-09','2024-02-09',91,'2023-03-08',2,NULL),
+ (14,2,1,'2023-03-07','2024-03-06',92,'2023-03-08',2,NULL),
+ (15,26,1,'2023-02-11','2024-02-11',104,'2023-03-08',2,NULL),
+ (16,14,1,'2023-02-23','2024-02-23',110,'2023-03-08',2,NULL),
+ (17,3,1,'2023-03-06','2025-03-05',115,'2023-03-08',1,NULL),
+ (18,22,1,'2023-02-15',NULL,117,'2023-03-08',3,NULL),
+ (19,6,1,'2023-03-03','2024-03-02',131,'2023-03-08',2,NULL),
+ (20,12,1,'2023-02-25','2024-02-25',133,'2023-03-08',2,NULL),
+ (21,1,1,'2023-03-08','2025-03-07',150,'2023-03-08',1,NULL),
+ (22,17,1,'2023-02-20','2025-02-19',156,'2023-03-08',1,NULL),
+ (23,5,3,'2021-02-04','2023-02-03',161,'2023-03-08',1,NULL),
+ (24,9,1,'2023-02-28','2025-02-27',167,'2023-03-08',1,NULL),
+ (25,21,1,'2023-02-16','2025-02-15',172,'2023-03-08',1,NULL),
+ (26,30,3,'2020-07-19','2022-07-18',178,'2023-03-08',1,NULL),
+ (27,18,1,'2023-02-19','2024-02-19',186,'2023-03-08',2,NULL),
+ (28,25,3,'2020-08-28','2022-08-27',190,'2023-03-08',1,NULL),
+ (29,16,1,'2023-02-21','2024-02-21',196,'2023-03-08',2,NULL),
+ (30,15,4,'2022-02-22','2023-02-21',200,'2023-03-08',2,NULL);
 /*!40000 ALTER TABLE `civicrm_membership_log` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -5253,7 +5249,7 @@ INSERT INTO `civicrm_menu` (`id`, `domain_id`, `path`, `path_arguments`, `title`
  (325,1,'civicrm/contact/view/contribution/additionalinfo',NULL,'Additional Info','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:34:\"CRM_Contribute_Form_AdditionalInfo\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&amp;cid=%%cid%%\";}i:2;a:2:{s:5:\"title\";s:13:\"Contributions\";s:3:\"url\";s:42:\"/civicrm/contact/view/contribution?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'),
  (326,1,'civicrm/contribute/search',NULL,'Find Contributions','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:32:\"CRM_Contribute_Controller_Search\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,1,0,1,0,510,1,1,0,'a:0:{}'),
  (327,1,'civicrm/contribute/searchBatch',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:37:\"CRM_Contribute_Controller_SearchBatch\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,1,0,1,0,588,1,1,0,'a:0:{}'),
- (328,1,'civicrm/contribute/import',NULL,'Import Contributions','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:21:\"access CiviContribute\";i:1;s:18:\"edit contributions\";}i:1;s:3:\"and\";}','s:32:\"CRM_Contribute_Import_Controller\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,1,0,1,0,520,1,1,0,'a:0:{}'),
+ (328,1,'civicrm/import/contribution',NULL,'Import Contributions','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:21:\"access CiviContribute\";i:1;s:18:\"edit contributions\";}i:1;s:3:\"and\";}','s:32:\"CRM_Contribute_Import_Controller\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,1,0,1,0,520,1,1,0,'a:0:{}'),
  (329,1,'civicrm/contribute/manage',NULL,'Manage Contribution Pages','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:36:\"CRM_Contribute_Page_ContributionPage\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,1,0,1,0,530,1,1,0,'a:0:{}'),
  (330,1,'civicrm/contribute/additionalinfo',NULL,'AdditionalInfo Form','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:34:\"CRM_Contribute_Form_AdditionalInfo\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,1,0,1,0,0,1,0,0,'a:0:{}'),
  (331,1,'civicrm/ajax/permlocation',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','a:2:{i:0;s:27:\"CRM_Core_Page_AJAX_Location\";i:1;s:23:\"getPermissionedLocation\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'),
@@ -5399,8 +5395,8 @@ INSERT INTO `civicrm_msg_template` (`id`, `msg_title`, `msg_subject`, `msg_text`
  (4,'Contributions - Duplicate Organization Alert','{ts}CiviContribute Alert: Possible Duplicate Contact Record{/ts} - {contact.display_name}\n','{ts}A contribution / membership signup was made on behalf of the organization listed below.{/ts}\n{ts}The information provided matched multiple existing database records based on the configured Duplicate Matching Rules for your site.{/ts}\n\n{ts}Organization Name{/ts}: {$onBehalfName}\n{ts}Organization Email{/ts}: {$onBehalfEmail}\n{ts}Organization Contact ID{/ts}: {$onBehalfID}\n\n{ts}If you think this may be a duplicate contact which should be merged with an existing record - Go to \"Contacts >> Find and Merge Duplicate Contacts\". Use the strict rule for Organizations to find the potential duplicates and merge them if appropriate.{/ts}\n\n{if $receiptMessage}\n###########################################################\n{ts}Copy of Contribution Receipt{/ts}\n\n###########################################################\n{$receiptMessage}\n\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    <p>{ts}A contribution / membership signup was made on behalf of the organization listed below.{/ts}</p>\n    <p>{ts}The information provided matched multiple existing database records based on the configured Duplicate Matching Rules for your site.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <td {$labelStyle}>\n       {ts}Organization Name{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$onBehalfName}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Organization Email{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$onBehalfEmail}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Organization Contact ID{/ts}\n      </td>\n      <td {$valueStyle}>\n       {$onBehalfID}\n      </td>\n     </tr>\n    </table>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <p>{ts}If you think this may be a duplicate contact which should be merged with an existing record - Go to \"Contacts >> Find and Merge Duplicate Contacts\". Use the strict rule for Organizations to find the potential duplicates and merge them if appropriate.{/ts}</p>\n   </td>\n  </tr>\n  {if $receiptMessage}\n   <tr>\n    <td>\n     <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n      <tr>\n       <th {$headerStyle}>\n        {ts}Copy of Contribution Receipt{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {* FIXME: the below is most probably not HTML-ised *}\n        {$receiptMessage}\n       </td>\n      </tr>\n     </table>\n    </td>\n   </tr>\n  {/if}\n </table>\n</body>\n</html>\n',1,814,'contribution_dupalert',0,1,0,NULL),
  (5,'Contributions - Receipt (off-line)','{ts}Contribution Receipt{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{if !empty($formValues.receipt_text)}\n{$formValues.receipt_text}\n{else}{ts}Below you will find a receipt for this contribution.{/ts}{/if}\n\n===========================================================\n{ts}Contribution Information{/ts}\n\n===========================================================\n{ts}Contributor{/ts}: {contact.display_name}\n{if \'{contribution.financial_type_id}\'}\n{ts}Financial Type{/ts}: {contribution.financial_type_id:label}\n{/if}\n{if $isShowLineItems}\n---------------------------------------------------------\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{if $isShowTax && \'{contribution.tax_amount|raw}\' !== \'0.00\'}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{/if}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {if $isShowTax && \'{contribution.tax_amount|raw}\' !== \'0.00\'} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate} {$ts_taxAmount|string_format:\"%10s\"} {/if} {$ts_total|string_format:\"%10s\"}\n----------------------------------------------------------\n{foreach from=$lineItems item=line}\n{capture assign=ts_item}{$line.title}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney:\'{contribution.currency}\'|string_format:\"%10s\"} {if $isShowTax && \'{contribution.tax_amount|raw}\' !== \'0.00\'}{$line.unit_price*$line.qty|crmMoney:\'{contribution.currency}\'|string_format:\"%10s\"} {if $line.tax_rate || $line.tax_amount != \"\"} {$line.tax_rate|string_format:\"%.2f\"} %   {$line.tax_amount|crmMoney:\'{contribution.currency}\'|string_format:\"%10s\"} {else}                  {/if} {/if}   {$line.line_total+$line.tax_amount|crmMoney:\'{contribution.currency}\'|string_format:\"%10s\"}\n{/foreach}\n{/if}\n\n\n{if $isShowTax && \'{contribution.tax_amount|raw}\' !== \'0.00\'}\n{ts}Amount before Tax{/ts} : {$formValues.total_amount-$totalTaxAmount|crmMoney:$currency}\n{/if}\n{foreach from=$taxRateBreakdown item=taxDetail key=taxRate}\n{if $taxRate == 0}{ts}No{/ts} {$taxTerm}{else}{$taxTerm} {$taxDetail.percentage}%{/if} : {$taxDetail.amount|crmMoney:\'{contribution.currency}\'}\n{/foreach}\n\n{if $isShowTax}\n{ts}Total Tax Amount{/ts} : {contribution.tax_amount}\n{/if}\n{ts}Total Amount{/ts} : {contribution.total_amount}\n{if \'{contribution.receive_date}\'}\n{ts}Date Received{/ts}: {contribution.receive_date|crmDate:\"shortdate\"}\n{/if}\n{if \'{contribution.receipt_date}\'}\n{ts}Receipt Date{/ts}: {contribution.receipt_date|crmDate:\"shortdate\"}\n{/if}\n{if \'{contribution.payment_instrument_id}\' and empty($formValues.hidden_CreditCard)}\n{ts}Paid By{/ts}: {contribution.payment_instrument_id:label}\n{if \'{contribution.check_number}\'}\n{ts}Check Number{/ts}: {contribution.check_number}\n{/if}\n{/if}\n{if \'{contribution.trxn_id}\'}\n{ts}Transaction ID{/ts}: {contribution.trxn_id}\n{/if}\n\n{if !empty($ccContribution)}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{if !empty($customGroup)}\n{foreach from=$customGroup item=value key=customName}\n===========================================================\n{$customName}\n===========================================================\n{foreach from=$value item=v key=n}\n{$n}: {$v}\n{/foreach}\n{/foreach}\n{/if}\n\n{if !empty($softCreditTypes) and !empty($softCredits)}\n{foreach from=$softCreditTypes item=softCreditType key=n}\n===========================================================\n{$softCreditType}\n===========================================================\n{foreach from=$softCredits.$n item=value key=label}\n{$label}: {$value}\n{/foreach}\n{/foreach}\n{/if}\n\n{if !empty($formValues.product_name)}\n===========================================================\n{ts}Premium Information{/ts}\n\n===========================================================\n{$formValues.product_name}\n{if $formValues.product_option}\n{ts}Option{/ts}: {$formValues.product_option}\n{/if}\n{if $formValues.product_sku}\n{ts}SKU{/ts}: {$formValues.product_sku}\n{/if}\n{if !empty($fulfilled_date)}\n{ts}Sent{/ts}: {$fulfilled_date|crmDate}\n{/if}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    {if !empty($formValues.receipt_text)}\n     <p>{$formValues.receipt_text|htmlize}</p>\n    {else}\n     <p>{ts}Below you will find a receipt for this contribution.{/ts}</p>\n    {/if}\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Contribution Information{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Contributor Name{/ts}\n      </td>\n      <td {$valueStyle}>\n       {contact.display_name}\n      </td>\n     </tr>\n     <tr>\n      {if \'{contribution.financial_type_id}\'}\n        <td {$labelStyle}>\n         {ts}Financial Type{/ts}\n        </td>\n        <td {$valueStyle}>\n         {contribution.financial_type_id:label}\n        </td>\n      {/if}\n     </tr>\n\n     {if $isShowLineItems}\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         <table>\n          <tr>\n           <th>{ts}Item{/ts}</th>\n           <th>{ts}Qty{/ts}</th>\n           <th>{ts}Each{/ts}</th>\n           {if $isShowTax && \'{contribution.tax_amount|raw}\' !== \'0.00\'}\n             <th>{ts}Subtotal{/ts}</th>\n             <th>{ts}Tax Rate{/ts}</th>\n             <th>{ts}Tax Amount{/ts}</th>\n           {/if}\n           <th>{ts}Total{/ts}</th>\n          </tr>\n          {foreach from=$lineItems item=line}\n           <tr>\n            <td>\n              {$line.title}\n            </td>\n            <td>\n             {$line.qty}\n            </td>\n            <td>\n             {$line.unit_price|crmMoney:\'{contribution.currency}\'}\n            </td>\n            {if $isShowTax && \'{contribution.tax_amount|raw}\' !== \'0.00\'}\n              <td>\n                {$line.unit_price*$line.qty|crmMoney:\'{contribution.currency}\'}\n              </td>\n              {if $line.tax_rate || $line.tax_amount != \"\"}\n                <td>\n                  {$line.tax_rate|string_format:\"%.2f\"}%\n                </td>\n                <td>\n                  {$line.tax_amount|crmMoney:\'{contribution.currency}\'}\n                </td>\n              {else}\n                <td></td>\n                <td></td>\n              {/if}\n            {/if}\n            <td>\n             {$line.line_total+$line.tax_amount|crmMoney:\'{contribution.currency}\'}\n            </td>\n           </tr>\n          {/foreach}\n         </table>\n        </td>\n       </tr>\n\n     {/if}\n     {if $isShowTax && \'{contribution.tax_amount|raw}\' !== \'0.00\'}\n       <tr>\n         <td {$labelStyle}>\n           {ts} Amount before Tax : {/ts}\n         </td>\n         <td {$valueStyle}>\n           {$formValues.total_amount-$totalTaxAmount|crmMoney:\'{contribution.currency}\'}\n         </td>\n       </tr>\n\n       {foreach from=$taxRateBreakdown item=taxDetail key=taxRate}\n         <tr>\n          <td>{if $taxRate == 0}{ts}No{/ts} {$taxTerm}{else}{$taxTerm} {$taxDetail.percentage}%{/if}</td>\n          <td>{$taxDetail.amount|crmMoney:\'{contribution.currency}\'}</td>\n        </tr>\n      {/foreach}\n     {/if}\n\n     {if $isShowTax}\n      <tr>\n        <td {$labelStyle}>\n          {ts}Total Tax Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n          {contribution.tax_amount}\n        </td>\n      </tr>\n     {/if}\n\n     <tr>\n      <td {$labelStyle}>\n       {ts}Total Amount{/ts}\n      </td>\n      <td {$valueStyle}>\n        {contribution.total_amount}\n      </td>\n     </tr>\n\n     {if \'{contribution.receive_date}\'}\n       <tr>\n       <td {$labelStyle}>\n        {ts}Date Received{/ts}\n       </td>\n       <td {$valueStyle}>\n         {contribution.receive_date|crmDate:\"shortdate\"}\n       </td>\n      </tr>\n     {/if}\n\n      {if \'{contribution.receipt_date}\'}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Receipt Date{/ts}\n       </td>\n       <td {$valueStyle}>\n         {contribution.receipt_date|crmDate:\"shortdate\"}\n       </td>\n      </tr>\n     {/if}\n\n     {if \'{contribution.payment_instrument_id}\' and empty($formValues.hidden_CreditCard)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Paid By{/ts}\n       </td>\n       <td {$valueStyle}>\n         {contribution.payment_instrument_id:label}\n       </td>\n      </tr>\n      {if \'{contribution.check_number}\'}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Check Number{/ts}\n        </td>\n        <td {$valueStyle}>\n          {contribution.check_number}\n        </td>\n       </tr>\n      {/if}\n     {/if}\n\n     {if \'{contribution.trxn_id}\'}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Transaction ID{/ts}\n       </td>\n       <td {$valueStyle}>\n         {contribution.trxn_id}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($ccContribution)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Billing Name and Address{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$billingName}<br />\n        {$address|nl2br}\n       </td>\n      </tr>\n      <tr>\n       <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($softCreditTypes) and !empty($softCredits)}\n      {foreach from=$softCreditTypes item=softCreditType key=n}\n       <tr>\n        <th {$headerStyle}>\n         {$softCreditType}\n        </th>\n       </tr>\n       {foreach from=$softCredits.$n item=value key=label}\n         <tr>\n          <td {$labelStyle}>\n           {$label}\n          </td>\n          <td {$valueStyle}>\n           {$value}\n          </td>\n         </tr>\n        {/foreach}\n       {/foreach}\n     {/if}\n\n     {if !empty($customGroup)}\n      {foreach from=$customGroup item=value key=customName}\n       <tr>\n        <th {$headerStyle}>\n         {$customName}\n        </th>\n       </tr>\n       {foreach from=$value item=v key=n}\n        <tr>\n         <td {$labelStyle}>\n          {$n}\n         </td>\n         <td {$valueStyle}>\n          {$v}\n         </td>\n        </tr>\n       {/foreach}\n      {/foreach}\n     {/if}\n\n     {if !empty($formValues.product_name)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Premium Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {$formValues.product_name}\n       </td>\n      </tr>\n      {if $formValues.product_option}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Option{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$formValues.product_option}\n        </td>\n       </tr>\n      {/if}\n      {if $formValues.product_sku}\n       <tr>\n        <td {$labelStyle}>\n         {ts}SKU{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$formValues.product_sku}\n        </td>\n       </tr>\n      {/if}\n      {if !empty($fulfilled_date)}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Sent{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$fulfilled_date|truncate:10:\'\'|crmDate}\n        </td>\n       </tr>\n      {/if}\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n\n </table>\n\n</body>\n</html>\n',1,815,'contribution_offline_receipt',1,0,0,NULL),
  (6,'Contributions - Receipt (off-line)','{ts}Contribution Receipt{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{if !empty($formValues.receipt_text)}\n{$formValues.receipt_text}\n{else}{ts}Below you will find a receipt for this contribution.{/ts}{/if}\n\n===========================================================\n{ts}Contribution Information{/ts}\n\n===========================================================\n{ts}Contributor{/ts}: {contact.display_name}\n{if \'{contribution.financial_type_id}\'}\n{ts}Financial Type{/ts}: {contribution.financial_type_id:label}\n{/if}\n{if $isShowLineItems}\n---------------------------------------------------------\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{if $isShowTax && \'{contribution.tax_amount|raw}\' !== \'0.00\'}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{/if}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {if $isShowTax && \'{contribution.tax_amount|raw}\' !== \'0.00\'} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate} {$ts_taxAmount|string_format:\"%10s\"} {/if} {$ts_total|string_format:\"%10s\"}\n----------------------------------------------------------\n{foreach from=$lineItems item=line}\n{capture assign=ts_item}{$line.title}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney:\'{contribution.currency}\'|string_format:\"%10s\"} {if $isShowTax && \'{contribution.tax_amount|raw}\' !== \'0.00\'}{$line.unit_price*$line.qty|crmMoney:\'{contribution.currency}\'|string_format:\"%10s\"} {if $line.tax_rate || $line.tax_amount != \"\"} {$line.tax_rate|string_format:\"%.2f\"} %   {$line.tax_amount|crmMoney:\'{contribution.currency}\'|string_format:\"%10s\"} {else}                  {/if} {/if}   {$line.line_total+$line.tax_amount|crmMoney:\'{contribution.currency}\'|string_format:\"%10s\"}\n{/foreach}\n{/if}\n\n\n{if $isShowTax && \'{contribution.tax_amount|raw}\' !== \'0.00\'}\n{ts}Amount before Tax{/ts} : {$formValues.total_amount-$totalTaxAmount|crmMoney:$currency}\n{/if}\n{foreach from=$taxRateBreakdown item=taxDetail key=taxRate}\n{if $taxRate == 0}{ts}No{/ts} {$taxTerm}{else}{$taxTerm} {$taxDetail.percentage}%{/if} : {$taxDetail.amount|crmMoney:\'{contribution.currency}\'}\n{/foreach}\n\n{if $isShowTax}\n{ts}Total Tax Amount{/ts} : {contribution.tax_amount}\n{/if}\n{ts}Total Amount{/ts} : {contribution.total_amount}\n{if \'{contribution.receive_date}\'}\n{ts}Date Received{/ts}: {contribution.receive_date|crmDate:\"shortdate\"}\n{/if}\n{if \'{contribution.receipt_date}\'}\n{ts}Receipt Date{/ts}: {contribution.receipt_date|crmDate:\"shortdate\"}\n{/if}\n{if \'{contribution.payment_instrument_id}\' and empty($formValues.hidden_CreditCard)}\n{ts}Paid By{/ts}: {contribution.payment_instrument_id:label}\n{if \'{contribution.check_number}\'}\n{ts}Check Number{/ts}: {contribution.check_number}\n{/if}\n{/if}\n{if \'{contribution.trxn_id}\'}\n{ts}Transaction ID{/ts}: {contribution.trxn_id}\n{/if}\n\n{if !empty($ccContribution)}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{if !empty($customGroup)}\n{foreach from=$customGroup item=value key=customName}\n===========================================================\n{$customName}\n===========================================================\n{foreach from=$value item=v key=n}\n{$n}: {$v}\n{/foreach}\n{/foreach}\n{/if}\n\n{if !empty($softCreditTypes) and !empty($softCredits)}\n{foreach from=$softCreditTypes item=softCreditType key=n}\n===========================================================\n{$softCreditType}\n===========================================================\n{foreach from=$softCredits.$n item=value key=label}\n{$label}: {$value}\n{/foreach}\n{/foreach}\n{/if}\n\n{if !empty($formValues.product_name)}\n===========================================================\n{ts}Premium Information{/ts}\n\n===========================================================\n{$formValues.product_name}\n{if $formValues.product_option}\n{ts}Option{/ts}: {$formValues.product_option}\n{/if}\n{if $formValues.product_sku}\n{ts}SKU{/ts}: {$formValues.product_sku}\n{/if}\n{if !empty($fulfilled_date)}\n{ts}Sent{/ts}: {$fulfilled_date|crmDate}\n{/if}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    {if !empty($formValues.receipt_text)}\n     <p>{$formValues.receipt_text|htmlize}</p>\n    {else}\n     <p>{ts}Below you will find a receipt for this contribution.{/ts}</p>\n    {/if}\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Contribution Information{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Contributor Name{/ts}\n      </td>\n      <td {$valueStyle}>\n       {contact.display_name}\n      </td>\n     </tr>\n     <tr>\n      {if \'{contribution.financial_type_id}\'}\n        <td {$labelStyle}>\n         {ts}Financial Type{/ts}\n        </td>\n        <td {$valueStyle}>\n         {contribution.financial_type_id:label}\n        </td>\n      {/if}\n     </tr>\n\n     {if $isShowLineItems}\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         <table>\n          <tr>\n           <th>{ts}Item{/ts}</th>\n           <th>{ts}Qty{/ts}</th>\n           <th>{ts}Each{/ts}</th>\n           {if $isShowTax && \'{contribution.tax_amount|raw}\' !== \'0.00\'}\n             <th>{ts}Subtotal{/ts}</th>\n             <th>{ts}Tax Rate{/ts}</th>\n             <th>{ts}Tax Amount{/ts}</th>\n           {/if}\n           <th>{ts}Total{/ts}</th>\n          </tr>\n          {foreach from=$lineItems item=line}\n           <tr>\n            <td>\n              {$line.title}\n            </td>\n            <td>\n             {$line.qty}\n            </td>\n            <td>\n             {$line.unit_price|crmMoney:\'{contribution.currency}\'}\n            </td>\n            {if $isShowTax && \'{contribution.tax_amount|raw}\' !== \'0.00\'}\n              <td>\n                {$line.unit_price*$line.qty|crmMoney:\'{contribution.currency}\'}\n              </td>\n              {if $line.tax_rate || $line.tax_amount != \"\"}\n                <td>\n                  {$line.tax_rate|string_format:\"%.2f\"}%\n                </td>\n                <td>\n                  {$line.tax_amount|crmMoney:\'{contribution.currency}\'}\n                </td>\n              {else}\n                <td></td>\n                <td></td>\n              {/if}\n            {/if}\n            <td>\n             {$line.line_total+$line.tax_amount|crmMoney:\'{contribution.currency}\'}\n            </td>\n           </tr>\n          {/foreach}\n         </table>\n        </td>\n       </tr>\n\n     {/if}\n     {if $isShowTax && \'{contribution.tax_amount|raw}\' !== \'0.00\'}\n       <tr>\n         <td {$labelStyle}>\n           {ts} Amount before Tax : {/ts}\n         </td>\n         <td {$valueStyle}>\n           {$formValues.total_amount-$totalTaxAmount|crmMoney:\'{contribution.currency}\'}\n         </td>\n       </tr>\n\n       {foreach from=$taxRateBreakdown item=taxDetail key=taxRate}\n         <tr>\n          <td>{if $taxRate == 0}{ts}No{/ts} {$taxTerm}{else}{$taxTerm} {$taxDetail.percentage}%{/if}</td>\n          <td>{$taxDetail.amount|crmMoney:\'{contribution.currency}\'}</td>\n        </tr>\n      {/foreach}\n     {/if}\n\n     {if $isShowTax}\n      <tr>\n        <td {$labelStyle}>\n          {ts}Total Tax Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n          {contribution.tax_amount}\n        </td>\n      </tr>\n     {/if}\n\n     <tr>\n      <td {$labelStyle}>\n       {ts}Total Amount{/ts}\n      </td>\n      <td {$valueStyle}>\n        {contribution.total_amount}\n      </td>\n     </tr>\n\n     {if \'{contribution.receive_date}\'}\n       <tr>\n       <td {$labelStyle}>\n        {ts}Date Received{/ts}\n       </td>\n       <td {$valueStyle}>\n         {contribution.receive_date|crmDate:\"shortdate\"}\n       </td>\n      </tr>\n     {/if}\n\n      {if \'{contribution.receipt_date}\'}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Receipt Date{/ts}\n       </td>\n       <td {$valueStyle}>\n         {contribution.receipt_date|crmDate:\"shortdate\"}\n       </td>\n      </tr>\n     {/if}\n\n     {if \'{contribution.payment_instrument_id}\' and empty($formValues.hidden_CreditCard)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Paid By{/ts}\n       </td>\n       <td {$valueStyle}>\n         {contribution.payment_instrument_id:label}\n       </td>\n      </tr>\n      {if \'{contribution.check_number}\'}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Check Number{/ts}\n        </td>\n        <td {$valueStyle}>\n          {contribution.check_number}\n        </td>\n       </tr>\n      {/if}\n     {/if}\n\n     {if \'{contribution.trxn_id}\'}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Transaction ID{/ts}\n       </td>\n       <td {$valueStyle}>\n         {contribution.trxn_id}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($ccContribution)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Billing Name and Address{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$billingName}<br />\n        {$address|nl2br}\n       </td>\n      </tr>\n      <tr>\n       <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($softCreditTypes) and !empty($softCredits)}\n      {foreach from=$softCreditTypes item=softCreditType key=n}\n       <tr>\n        <th {$headerStyle}>\n         {$softCreditType}\n        </th>\n       </tr>\n       {foreach from=$softCredits.$n item=value key=label}\n         <tr>\n          <td {$labelStyle}>\n           {$label}\n          </td>\n          <td {$valueStyle}>\n           {$value}\n          </td>\n         </tr>\n        {/foreach}\n       {/foreach}\n     {/if}\n\n     {if !empty($customGroup)}\n      {foreach from=$customGroup item=value key=customName}\n       <tr>\n        <th {$headerStyle}>\n         {$customName}\n        </th>\n       </tr>\n       {foreach from=$value item=v key=n}\n        <tr>\n         <td {$labelStyle}>\n          {$n}\n         </td>\n         <td {$valueStyle}>\n          {$v}\n         </td>\n        </tr>\n       {/foreach}\n      {/foreach}\n     {/if}\n\n     {if !empty($formValues.product_name)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Premium Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {$formValues.product_name}\n       </td>\n      </tr>\n      {if $formValues.product_option}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Option{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$formValues.product_option}\n        </td>\n       </tr>\n      {/if}\n      {if $formValues.product_sku}\n       <tr>\n        <td {$labelStyle}>\n         {ts}SKU{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$formValues.product_sku}\n        </td>\n       </tr>\n      {/if}\n      {if !empty($fulfilled_date)}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Sent{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$fulfilled_date|truncate:10:\'\'|crmDate}\n        </td>\n       </tr>\n      {/if}\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n\n </table>\n\n</body>\n</html>\n',1,815,'contribution_offline_receipt',0,1,0,NULL),
- (7,'Contributions - Receipt (on-line)','{if $is_pay_later}{ts}Invoice{/ts}{else}{ts}Receipt{/ts}{/if} - {$title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n{if !empty($receipt_text)}\n{$receipt_text}\n{/if}\n{if $is_pay_later}\n\n===========================================================\n{$pay_later_receipt}\n===========================================================\n{/if}\n\n{if \'{contribution.total_amount|raw}\' !== \'0.00\'}\n===========================================================\n{ts}Contribution Information{/ts}\n\n===========================================================\n{if $isShowLineItems}\n\n---------------------------------------------------------\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{if $isShowTax && \'{contribution.tax_amount|raw}\' !== \'0.00\'}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{/if}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {if $isShowTax && \'{contribution.tax_amount|raw}\' !== \'0.00\'} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate} {$ts_taxAmount|string_format:\"%10s\"} {/if} {$ts_total|string_format:\"%10s\"}\n----------------------------------------------------------\n{foreach from=$lineItems item=line}\n{capture assign=ts_item}{$line.title}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney:$currency|string_format:\"%10s\"} {if $isShowTax && \'{contribution.tax_amount|raw}\' !== \'0.00\'}{$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if $line.tax_rate || $line.tax_amount != \"\"}  {$line.tax_rate|string_format:\"%.2f\"} %  {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else}                  {/if}  {/if} {$line.line_total+$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"}\n{/foreach}\n\n{if $isShowTax && \'{contribution.tax_amount|raw}\' !== \'0.00\'}\n{ts}Amount before Tax{/ts}: {$amount-$totalTaxAmount|crmMoney:$currency}\n  {foreach from=$taxRateBreakdown item=taxDetail key=taxRate}\n    {if $taxRate == 0}{ts}No{/ts} {$taxTerm}{else}{$taxTerm} {$taxDetail.percentage}%{/if} : {$taxDetail.amount|crmMoney:\'{contribution.currency}\'}\n  {/foreach}\n{/if}\n\n{if $isShowTax}\n{ts}Total Tax Amount{/ts}: {contribution.tax_amount|crmMoney}\n{/if}\n\n{ts}Total Amount{/ts}: {contribution.total_amount}\n{else}\n{ts}Amount{/ts}: {contribution.total_amount} {if \'{contribution.amount_level}\'} - {contribution.amount_level}{/if}\n{/if}\n{/if}\n{if !empty($receive_date)}\n\n{ts}Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if !empty($is_monetary) and !empty($trxn_id)}\n{ts}Transaction #{/ts}: {$trxn_id}\n{/if}\n\n{if !empty($is_recur)}\n{ts}This is a recurring contribution.{/ts}\n\n{if $cancelSubscriptionUrl}\n{ts}You can cancel future contributions at:{/ts}\n\n{$cancelSubscriptionUrl}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n{ts}You can update billing details for this recurring contribution at:{/ts}\n\n{$updateSubscriptionBillingUrl}\n\n{/if}\n\n{if $updateSubscriptionUrl}\n{ts}You can update recurring contribution amount or change the number of installments for this recurring contribution at:{/ts}\n\n{$updateSubscriptionUrl}\n\n{/if}\n{/if}\n\n{if $honor_block_is_active}\n===========================================================\n{$soft_credit_type}\n===========================================================\n{foreach from=$honoreeProfile item=value key=label}\n{$label}: {$value}\n{/foreach}\n{elseif !empty($softCreditTypes) and !empty($softCredits)}\n{foreach from=$softCreditTypes item=softCreditType key=n}\n===========================================================\n{$softCreditType}\n===========================================================\n{foreach from=$softCredits.$n item=value key=label}\n{$label}: {$value}\n{/foreach}\n{/foreach}\n{/if}\n{if !empty($pcpBlock)}\n===========================================================\n{ts}Personal Campaign Page{/ts}\n\n===========================================================\n{ts}Display In Honor Roll{/ts}: {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n\n{if $pcp_roll_nickname}{ts}Nickname{/ts}: {$pcp_roll_nickname}{/if}\n\n{if $pcp_personal_note}{ts}Personal Note{/ts}: {$pcp_personal_note}{/if}\n\n{/if}\n{if !empty($onBehalfProfile)}\n===========================================================\n{ts}On Behalf Of{/ts}\n\n===========================================================\n{foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n{$onBehalfName}: {$onBehalfValue}\n{/foreach}\n{/if}\n\n{if !empty($billingName)}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n{elseif !empty($email)}\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$email}\n{/if} {* End billingName or Email*}\n{if !empty($credit_card_type)}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n\n{if !empty($selectPremium )}\n===========================================================\n{ts}Premium Information{/ts}\n\n===========================================================\n{$product_name}\n{if $option}\n{ts}Option{/ts}: {$option}\n{/if}\n{if $sku}\n{ts}SKU{/ts}: {$sku}\n{/if}\n{if $start_date}\n{ts}Start Date{/ts}: {$start_date|crmDate}\n{/if}\n{if $end_date}\n{ts}End Date{/ts}: {$end_date|crmDate}\n{/if}\n{if !empty($contact_email) OR !empty($contact_phone)}\n\n{ts}For information about this premium, contact:{/ts}\n\n{if !empty($contact_email)}\n  {$contact_email}\n{/if}\n{if !empty($contact_phone)}\n  {$contact_phone}\n{/if}\n{/if}\n{if !empty($is_deductible) AND !empty($price)}\n\n{ts 1=$price|crmMoney:$currency}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}{/if}\n{/if}\n\n{if !empty($customPre)}\n===========================================================\n{$customPre_grouptitle}\n\n===========================================================\n{foreach from=$customPre item=customValue key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/if}\n\n\n{if !empty($customPost)}\n===========================================================\n{$customPost_grouptitle}\n\n===========================================================\n{foreach from=$customPost item=customValue key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n     {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    {if !empty($receipt_text)}\n     <p>{$receipt_text|htmlize}</p>\n    {/if}\n\n    {if $is_pay_later}\n     <p>{$pay_later_receipt}</p> {* FIXME: this might be text rather than HTML *}\n    {/if}\n\n   </td>\n  </tr>\n</table>\n<table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n  {if \'{contribution.total_amount|raw}\' !== \'0.00\'}\n    <tr>\n      <th {$headerStyle}>\n        {ts}Contribution Information{/ts}\n      </th>\n    </tr>\n\n    {if $isShowLineItems}\n      <tr>\n        <td colspan=\"2\" {$valueStyle}>\n          <table>\n            <tr>\n              <th>{ts}Item{/ts}</th>\n              <th>{ts}Qty{/ts}</th>\n              <th>{ts}Each{/ts}</th>\n              {if $isShowTax && \'{contribution.tax_amount|raw}\' !== \'0.00\'}\n                <th>{ts}Subtotal{/ts}</th>\n                <th>{ts}Tax Rate{/ts}</th>\n                <th>{ts}Tax Amount{/ts}</th>\n              {/if}\n              <th>{ts}Total{/ts}</th>\n            </tr>\n            {foreach from=$lineItems item=line}\n              <tr>\n                <td>{$line.title}</td>\n                <td>{$line.qty}</td>\n                <td>{$line.unit_price|crmMoney:$currency}</td>\n                {if $isShowTax && \'{contribution.tax_amount|raw}\' !== \'0.00\'}\n                  <td>{$line.unit_price*$line.qty|crmMoney:$currency}</td>\n                  {if $line.tax_rate || $line.tax_amount != \"\"}\n                    <td>{$line.tax_rate|string_format:\"%.2f\"}%</td>\n                    <td>{$line.tax_amount|crmMoney:$currency}</td>\n                  {else}\n                    <td></td>\n                    <td></td>\n                  {/if}\n                {/if}\n                <td>\n                  {$line.line_total+$line.tax_amount|crmMoney:$currency}\n                </td>\n              </tr>\n            {/foreach}\n          </table>\n        </td>\n      </tr>\n\n      {if $isShowTax && \'{contribution.tax_amount|raw}\' !== \'0.00\'}\n        <tr>\n          <td {$labelStyle}>\n            {ts} Amount before Tax : {/ts}\n          </td>\n          <td {$valueStyle}>\n            {$amount-$totalTaxAmount|crmMoney:$currency}\n          </td>\n        </tr>\n\n        {foreach from=$taxRateBreakdown item=taxDetail key=taxRate}\n          <tr>\n            <td>{if $taxRate == 0}{ts}No{/ts} {$taxTerm}{else}{$taxTerm} {$taxDetail.percentage}%{/if}</td>\n            <td>{$taxDetail.amount|crmMoney:\'{contribution.currency}\'}</td>\n          </tr>\n        {/foreach}\n\n      {/if}\n      {if $isShowTax}\n        <tr>\n          <td {$labelStyle}>\n            {ts}Total Tax{/ts}\n          </td>\n          <td {$valueStyle}>\n            {contribution.tax_amount}\n          </td>\n        </tr>\n      {/if}\n      <tr>\n        <td {$labelStyle}>\n          {ts}Total Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n          {contribution.total_amount}\n        </td>\n      </tr>\n    {else}\n      {if \'{contribution.tax_amount|raw}\' !== \'0.00\'}\n        <tr>\n          <td {$labelStyle}>\n            {ts}Total Tax Amount{/ts}\n          </td>\n          <td {$valueStyle}>\n            {contribution.tax_amount}\n          </td>\n         </tr>\n       {/if}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {contribution.total_amount} {if \'{contribution.amount_level}\'} - {contribution.amount_level}{/if}\n        </td>\n       </tr>\n\n      {/if}\n\n  {/if}\n\n\n     {if !empty($receive_date)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$receive_date|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($is_monetary) and !empty($trxn_id)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Transaction #{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$trxn_id}\n       </td>\n      </tr>\n     {/if}\n\n    {if !empty($is_recur)}\n      <tr>\n        <td  colspan=\"2\" {$labelStyle}>\n          {ts}This is a recurring contribution.{/ts}\n          {if $cancelSubscriptionUrl}\n            {ts 1=$cancelSubscriptionUrl}You can cancel future contributions by <a href=\"%1\">visiting this web page</a>.{/ts}\n          {/if}\n        </td>\n      </tr>\n      {if $updateSubscriptionBillingUrl}\n        <tr>\n          <td colspan=\"2\" {$labelStyle}>\n            {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n          </td>\n        </tr>\n      {/if}\n      {if $updateSubscriptionUrl}\n        <tr>\n          <td colspan=\"2\" {$labelStyle}>\n            {ts 1=$updateSubscriptionUrl}You can update recurring contribution amount or change the number of installments for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n          </td>\n        </tr>\n      {/if}\n    {/if}\n\n     {if $honor_block_is_active}\n      <tr>\n       <th {$headerStyle}>\n        {$soft_credit_type}\n       </th>\n      </tr>\n      {foreach from=$honoreeProfile item=value key=label}\n        <tr>\n         <td {$labelStyle}>\n          {$label}\n         </td>\n         <td {$valueStyle}>\n          {$value}\n         </td>\n        </tr>\n      {/foreach}\n      {elseif !empty($softCreditTypes) and !empty($softCredits)}\n      {foreach from=$softCreditTypes item=softCreditType key=n}\n       <tr>\n        <th {$headerStyle}>\n         {$softCreditType}\n        </th>\n       </tr>\n       {foreach from=$softCredits.$n item=value key=label}\n         <tr>\n          <td {$labelStyle}>\n           {$label}\n          </td>\n          <td {$valueStyle}>\n           {$value}\n          </td>\n         </tr>\n        {/foreach}\n       {/foreach}\n     {/if}\n\n     {if !empty($pcpBlock)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Personal Campaign Page{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Display In Honor Roll{/ts}\n       </td>\n       <td {$valueStyle}>\n        {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n       </td>\n      </tr>\n      {if $pcp_roll_nickname}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Nickname{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$pcp_roll_nickname}\n        </td>\n       </tr>\n      {/if}\n      {if $pcp_personal_note}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Personal Note{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$pcp_personal_note}\n        </td>\n       </tr>\n      {/if}\n     {/if}\n\n     {if !empty($onBehalfProfile)}\n      <tr>\n       <th {$headerStyle}>\n        {$onBehalfProfile_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n        <tr>\n         <td {$labelStyle}>\n          {$onBehalfName}\n         </td>\n         <td {$valueStyle}>\n          {$onBehalfValue}\n         </td>\n        </tr>\n      {/foreach}\n     {/if}\n\n     {if !empty($isShare)}\n      <tr>\n        <td colspan=\"2\" {$valueStyle}>\n            {capture assign=contributionUrl}{crmURL p=\'civicrm/contribute/transact\' q=\"reset=1&id=`$contributionPageId`\" a=true fe=1 h=1}{/capture}\n            {include file=\"CRM/common/SocialNetwork.tpl\" emailMode=true url=$contributionUrl title=$title pageURL=$contributionUrl}\n        </td>\n      </tr>\n     {/if}\n\n     {if !empty($billingName)}\n       <tr>\n        <th {$headerStyle}>\n         {ts}Billing Name and Address{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         {$billingName}<br />\n         {$address|nl2br}<br />\n         {$email}\n        </td>\n       </tr>\n     {elseif !empty($email)}\n       <tr>\n        <th {$headerStyle}>\n         {ts}Registered Email{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         {$email}\n        </td>\n       </tr>\n     {/if}\n\n     {if !empty($credit_card_type)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($selectPremium)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Premium Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {$product_name}\n       </td>\n      </tr>\n      {if $option}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Option{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$option}\n        </td>\n       </tr>\n      {/if}\n      {if $sku}\n       <tr>\n        <td {$labelStyle}>\n         {ts}SKU{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$sku}\n        </td>\n       </tr>\n      {/if}\n      {if $start_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Start Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$start_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if $end_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}End Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$end_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if !empty($contact_email) OR !empty($contact_phone)}\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         <p>{ts}For information about this premium, contact:{/ts}</p>\n         {if !empty($contact_email)}\n          <p>{$contact_email}</p>\n         {/if}\n         {if !empty($contact_phone)}\n          <p>{$contact_phone}</p>\n         {/if}\n        </td>\n       </tr>\n      {/if}\n      {if !empty($is_deductible) AND !empty($price)}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          <p>{ts 1=$price|crmMoney:$currency}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}</p>\n         </td>\n        </tr>\n      {/if}\n     {/if}\n\n     {if !empty($customPre)}\n      <tr>\n       <th {$headerStyle}>\n        {$customPre_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPre item=customValue key=customName}\n       {if (!empty($trackingFields) and ! in_array($customName, $trackingFields)) or empty($trackingFields)}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$customValue}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if !empty($customPost)}\n      <tr>\n       <th {$headerStyle}>\n        {$customPost_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPost item=customValue key=customName}\n       {if (!empty($trackingFields) and ! in_array($customName, $trackingFields)) or empty($trackingFields)}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$customValue}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n  </table>\n\n</body>\n</html>\n',1,816,'contribution_online_receipt',1,0,0,NULL),
- (8,'Contributions - Receipt (on-line)','{if $is_pay_later}{ts}Invoice{/ts}{else}{ts}Receipt{/ts}{/if} - {$title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n{if !empty($receipt_text)}\n{$receipt_text}\n{/if}\n{if $is_pay_later}\n\n===========================================================\n{$pay_later_receipt}\n===========================================================\n{/if}\n\n{if \'{contribution.total_amount|raw}\' !== \'0.00\'}\n===========================================================\n{ts}Contribution Information{/ts}\n\n===========================================================\n{if $isShowLineItems}\n\n---------------------------------------------------------\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{if $isShowTax && \'{contribution.tax_amount|raw}\' !== \'0.00\'}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{/if}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {if $isShowTax && \'{contribution.tax_amount|raw}\' !== \'0.00\'} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate} {$ts_taxAmount|string_format:\"%10s\"} {/if} {$ts_total|string_format:\"%10s\"}\n----------------------------------------------------------\n{foreach from=$lineItems item=line}\n{capture assign=ts_item}{$line.title}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney:$currency|string_format:\"%10s\"} {if $isShowTax && \'{contribution.tax_amount|raw}\' !== \'0.00\'}{$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if $line.tax_rate || $line.tax_amount != \"\"}  {$line.tax_rate|string_format:\"%.2f\"} %  {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else}                  {/if}  {/if} {$line.line_total+$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"}\n{/foreach}\n\n{if $isShowTax && \'{contribution.tax_amount|raw}\' !== \'0.00\'}\n{ts}Amount before Tax{/ts}: {$amount-$totalTaxAmount|crmMoney:$currency}\n  {foreach from=$taxRateBreakdown item=taxDetail key=taxRate}\n    {if $taxRate == 0}{ts}No{/ts} {$taxTerm}{else}{$taxTerm} {$taxDetail.percentage}%{/if} : {$taxDetail.amount|crmMoney:\'{contribution.currency}\'}\n  {/foreach}\n{/if}\n\n{if $isShowTax}\n{ts}Total Tax Amount{/ts}: {contribution.tax_amount|crmMoney}\n{/if}\n\n{ts}Total Amount{/ts}: {contribution.total_amount}\n{else}\n{ts}Amount{/ts}: {contribution.total_amount} {if \'{contribution.amount_level}\'} - {contribution.amount_level}{/if}\n{/if}\n{/if}\n{if !empty($receive_date)}\n\n{ts}Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if !empty($is_monetary) and !empty($trxn_id)}\n{ts}Transaction #{/ts}: {$trxn_id}\n{/if}\n\n{if !empty($is_recur)}\n{ts}This is a recurring contribution.{/ts}\n\n{if $cancelSubscriptionUrl}\n{ts}You can cancel future contributions at:{/ts}\n\n{$cancelSubscriptionUrl}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n{ts}You can update billing details for this recurring contribution at:{/ts}\n\n{$updateSubscriptionBillingUrl}\n\n{/if}\n\n{if $updateSubscriptionUrl}\n{ts}You can update recurring contribution amount or change the number of installments for this recurring contribution at:{/ts}\n\n{$updateSubscriptionUrl}\n\n{/if}\n{/if}\n\n{if $honor_block_is_active}\n===========================================================\n{$soft_credit_type}\n===========================================================\n{foreach from=$honoreeProfile item=value key=label}\n{$label}: {$value}\n{/foreach}\n{elseif !empty($softCreditTypes) and !empty($softCredits)}\n{foreach from=$softCreditTypes item=softCreditType key=n}\n===========================================================\n{$softCreditType}\n===========================================================\n{foreach from=$softCredits.$n item=value key=label}\n{$label}: {$value}\n{/foreach}\n{/foreach}\n{/if}\n{if !empty($pcpBlock)}\n===========================================================\n{ts}Personal Campaign Page{/ts}\n\n===========================================================\n{ts}Display In Honor Roll{/ts}: {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n\n{if $pcp_roll_nickname}{ts}Nickname{/ts}: {$pcp_roll_nickname}{/if}\n\n{if $pcp_personal_note}{ts}Personal Note{/ts}: {$pcp_personal_note}{/if}\n\n{/if}\n{if !empty($onBehalfProfile)}\n===========================================================\n{ts}On Behalf Of{/ts}\n\n===========================================================\n{foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n{$onBehalfName}: {$onBehalfValue}\n{/foreach}\n{/if}\n\n{if !empty($billingName)}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n{elseif !empty($email)}\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$email}\n{/if} {* End billingName or Email*}\n{if !empty($credit_card_type)}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n\n{if !empty($selectPremium )}\n===========================================================\n{ts}Premium Information{/ts}\n\n===========================================================\n{$product_name}\n{if $option}\n{ts}Option{/ts}: {$option}\n{/if}\n{if $sku}\n{ts}SKU{/ts}: {$sku}\n{/if}\n{if $start_date}\n{ts}Start Date{/ts}: {$start_date|crmDate}\n{/if}\n{if $end_date}\n{ts}End Date{/ts}: {$end_date|crmDate}\n{/if}\n{if !empty($contact_email) OR !empty($contact_phone)}\n\n{ts}For information about this premium, contact:{/ts}\n\n{if !empty($contact_email)}\n  {$contact_email}\n{/if}\n{if !empty($contact_phone)}\n  {$contact_phone}\n{/if}\n{/if}\n{if !empty($is_deductible) AND !empty($price)}\n\n{ts 1=$price|crmMoney:$currency}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}{/if}\n{/if}\n\n{if !empty($customPre)}\n===========================================================\n{$customPre_grouptitle}\n\n===========================================================\n{foreach from=$customPre item=customValue key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/if}\n\n\n{if !empty($customPost)}\n===========================================================\n{$customPost_grouptitle}\n\n===========================================================\n{foreach from=$customPost item=customValue key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n     {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    {if !empty($receipt_text)}\n     <p>{$receipt_text|htmlize}</p>\n    {/if}\n\n    {if $is_pay_later}\n     <p>{$pay_later_receipt}</p> {* FIXME: this might be text rather than HTML *}\n    {/if}\n\n   </td>\n  </tr>\n</table>\n<table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n  {if \'{contribution.total_amount|raw}\' !== \'0.00\'}\n    <tr>\n      <th {$headerStyle}>\n        {ts}Contribution Information{/ts}\n      </th>\n    </tr>\n\n    {if $isShowLineItems}\n      <tr>\n        <td colspan=\"2\" {$valueStyle}>\n          <table>\n            <tr>\n              <th>{ts}Item{/ts}</th>\n              <th>{ts}Qty{/ts}</th>\n              <th>{ts}Each{/ts}</th>\n              {if $isShowTax && \'{contribution.tax_amount|raw}\' !== \'0.00\'}\n                <th>{ts}Subtotal{/ts}</th>\n                <th>{ts}Tax Rate{/ts}</th>\n                <th>{ts}Tax Amount{/ts}</th>\n              {/if}\n              <th>{ts}Total{/ts}</th>\n            </tr>\n            {foreach from=$lineItems item=line}\n              <tr>\n                <td>{$line.title}</td>\n                <td>{$line.qty}</td>\n                <td>{$line.unit_price|crmMoney:$currency}</td>\n                {if $isShowTax && \'{contribution.tax_amount|raw}\' !== \'0.00\'}\n                  <td>{$line.unit_price*$line.qty|crmMoney:$currency}</td>\n                  {if $line.tax_rate || $line.tax_amount != \"\"}\n                    <td>{$line.tax_rate|string_format:\"%.2f\"}%</td>\n                    <td>{$line.tax_amount|crmMoney:$currency}</td>\n                  {else}\n                    <td></td>\n                    <td></td>\n                  {/if}\n                {/if}\n                <td>\n                  {$line.line_total+$line.tax_amount|crmMoney:$currency}\n                </td>\n              </tr>\n            {/foreach}\n          </table>\n        </td>\n      </tr>\n\n      {if $isShowTax && \'{contribution.tax_amount|raw}\' !== \'0.00\'}\n        <tr>\n          <td {$labelStyle}>\n            {ts} Amount before Tax : {/ts}\n          </td>\n          <td {$valueStyle}>\n            {$amount-$totalTaxAmount|crmMoney:$currency}\n          </td>\n        </tr>\n\n        {foreach from=$taxRateBreakdown item=taxDetail key=taxRate}\n          <tr>\n            <td>{if $taxRate == 0}{ts}No{/ts} {$taxTerm}{else}{$taxTerm} {$taxDetail.percentage}%{/if}</td>\n            <td>{$taxDetail.amount|crmMoney:\'{contribution.currency}\'}</td>\n          </tr>\n        {/foreach}\n\n      {/if}\n      {if $isShowTax}\n        <tr>\n          <td {$labelStyle}>\n            {ts}Total Tax{/ts}\n          </td>\n          <td {$valueStyle}>\n            {contribution.tax_amount}\n          </td>\n        </tr>\n      {/if}\n      <tr>\n        <td {$labelStyle}>\n          {ts}Total Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n          {contribution.total_amount}\n        </td>\n      </tr>\n    {else}\n      {if \'{contribution.tax_amount|raw}\' !== \'0.00\'}\n        <tr>\n          <td {$labelStyle}>\n            {ts}Total Tax Amount{/ts}\n          </td>\n          <td {$valueStyle}>\n            {contribution.tax_amount}\n          </td>\n         </tr>\n       {/if}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {contribution.total_amount} {if \'{contribution.amount_level}\'} - {contribution.amount_level}{/if}\n        </td>\n       </tr>\n\n      {/if}\n\n  {/if}\n\n\n     {if !empty($receive_date)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$receive_date|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($is_monetary) and !empty($trxn_id)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Transaction #{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$trxn_id}\n       </td>\n      </tr>\n     {/if}\n\n    {if !empty($is_recur)}\n      <tr>\n        <td  colspan=\"2\" {$labelStyle}>\n          {ts}This is a recurring contribution.{/ts}\n          {if $cancelSubscriptionUrl}\n            {ts 1=$cancelSubscriptionUrl}You can cancel future contributions by <a href=\"%1\">visiting this web page</a>.{/ts}\n          {/if}\n        </td>\n      </tr>\n      {if $updateSubscriptionBillingUrl}\n        <tr>\n          <td colspan=\"2\" {$labelStyle}>\n            {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n          </td>\n        </tr>\n      {/if}\n      {if $updateSubscriptionUrl}\n        <tr>\n          <td colspan=\"2\" {$labelStyle}>\n            {ts 1=$updateSubscriptionUrl}You can update recurring contribution amount or change the number of installments for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n          </td>\n        </tr>\n      {/if}\n    {/if}\n\n     {if $honor_block_is_active}\n      <tr>\n       <th {$headerStyle}>\n        {$soft_credit_type}\n       </th>\n      </tr>\n      {foreach from=$honoreeProfile item=value key=label}\n        <tr>\n         <td {$labelStyle}>\n          {$label}\n         </td>\n         <td {$valueStyle}>\n          {$value}\n         </td>\n        </tr>\n      {/foreach}\n      {elseif !empty($softCreditTypes) and !empty($softCredits)}\n      {foreach from=$softCreditTypes item=softCreditType key=n}\n       <tr>\n        <th {$headerStyle}>\n         {$softCreditType}\n        </th>\n       </tr>\n       {foreach from=$softCredits.$n item=value key=label}\n         <tr>\n          <td {$labelStyle}>\n           {$label}\n          </td>\n          <td {$valueStyle}>\n           {$value}\n          </td>\n         </tr>\n        {/foreach}\n       {/foreach}\n     {/if}\n\n     {if !empty($pcpBlock)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Personal Campaign Page{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Display In Honor Roll{/ts}\n       </td>\n       <td {$valueStyle}>\n        {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n       </td>\n      </tr>\n      {if $pcp_roll_nickname}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Nickname{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$pcp_roll_nickname}\n        </td>\n       </tr>\n      {/if}\n      {if $pcp_personal_note}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Personal Note{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$pcp_personal_note}\n        </td>\n       </tr>\n      {/if}\n     {/if}\n\n     {if !empty($onBehalfProfile)}\n      <tr>\n       <th {$headerStyle}>\n        {$onBehalfProfile_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n        <tr>\n         <td {$labelStyle}>\n          {$onBehalfName}\n         </td>\n         <td {$valueStyle}>\n          {$onBehalfValue}\n         </td>\n        </tr>\n      {/foreach}\n     {/if}\n\n     {if !empty($isShare)}\n      <tr>\n        <td colspan=\"2\" {$valueStyle}>\n            {capture assign=contributionUrl}{crmURL p=\'civicrm/contribute/transact\' q=\"reset=1&id=`$contributionPageId`\" a=true fe=1 h=1}{/capture}\n            {include file=\"CRM/common/SocialNetwork.tpl\" emailMode=true url=$contributionUrl title=$title pageURL=$contributionUrl}\n        </td>\n      </tr>\n     {/if}\n\n     {if !empty($billingName)}\n       <tr>\n        <th {$headerStyle}>\n         {ts}Billing Name and Address{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         {$billingName}<br />\n         {$address|nl2br}<br />\n         {$email}\n        </td>\n       </tr>\n     {elseif !empty($email)}\n       <tr>\n        <th {$headerStyle}>\n         {ts}Registered Email{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         {$email}\n        </td>\n       </tr>\n     {/if}\n\n     {if !empty($credit_card_type)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($selectPremium)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Premium Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {$product_name}\n       </td>\n      </tr>\n      {if $option}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Option{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$option}\n        </td>\n       </tr>\n      {/if}\n      {if $sku}\n       <tr>\n        <td {$labelStyle}>\n         {ts}SKU{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$sku}\n        </td>\n       </tr>\n      {/if}\n      {if $start_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Start Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$start_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if $end_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}End Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$end_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if !empty($contact_email) OR !empty($contact_phone)}\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         <p>{ts}For information about this premium, contact:{/ts}</p>\n         {if !empty($contact_email)}\n          <p>{$contact_email}</p>\n         {/if}\n         {if !empty($contact_phone)}\n          <p>{$contact_phone}</p>\n         {/if}\n        </td>\n       </tr>\n      {/if}\n      {if !empty($is_deductible) AND !empty($price)}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          <p>{ts 1=$price|crmMoney:$currency}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}</p>\n         </td>\n        </tr>\n      {/if}\n     {/if}\n\n     {if !empty($customPre)}\n      <tr>\n       <th {$headerStyle}>\n        {$customPre_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPre item=customValue key=customName}\n       {if (!empty($trackingFields) and ! in_array($customName, $trackingFields)) or empty($trackingFields)}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$customValue}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if !empty($customPost)}\n      <tr>\n       <th {$headerStyle}>\n        {$customPost_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPost item=customValue key=customName}\n       {if (!empty($trackingFields) and ! in_array($customName, $trackingFields)) or empty($trackingFields)}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$customValue}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n  </table>\n\n</body>\n</html>\n',1,816,'contribution_online_receipt',0,1,0,NULL),
+ (7,'Contributions - Receipt (on-line)','{if $is_pay_later}{ts}Invoice{/ts}{else}{ts}Receipt{/ts}{/if} - {$title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n{if !empty($receipt_text)}\n{$receipt_text}\n{/if}\n{if $is_pay_later}\n\n===========================================================\n{$pay_later_receipt}\n===========================================================\n{/if}\n\n{if \'{contribution.total_amount|raw}\' !== \'0.00\'}\n===========================================================\n{ts}Contribution Information{/ts}\n\n===========================================================\n{if $isShowLineItems}\n\n---------------------------------------------------------\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{if $isShowTax && \'{contribution.tax_amount|raw}\' !== \'0.00\'}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{/if}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {if $isShowTax && \'{contribution.tax_amount|raw}\' !== \'0.00\'} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate} {$ts_taxAmount|string_format:\"%10s\"} {/if} {$ts_total|string_format:\"%10s\"}\n----------------------------------------------------------\n{foreach from=$lineItems item=line}\n{capture assign=ts_item}{$line.title}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney:$currency|string_format:\"%10s\"} {if $isShowTax && \'{contribution.tax_amount|raw}\' !== \'0.00\'}{$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if $line.tax_rate || $line.tax_amount != \"\"}  {$line.tax_rate|string_format:\"%.2f\"} %  {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else}                  {/if}  {/if} {$line.line_total+$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"}\n{/foreach}\n\n{if $isShowTax && \'{contribution.tax_amount|raw}\' !== \'0.00\'}\n{ts}Amount before Tax{/ts}: {$amount-$totalTaxAmount|crmMoney:$currency}\n  {foreach from=$taxRateBreakdown item=taxDetail key=taxRate}\n    {if $taxRate == 0}{ts}No{/ts} {$taxTerm}{else}{$taxTerm} {$taxDetail.percentage}%{/if} : {$taxDetail.amount|crmMoney:\'{contribution.currency}\'}\n  {/foreach}\n{/if}\n\n{if $isShowTax}\n{ts}Total Tax Amount{/ts}: {contribution.tax_amount|crmMoney}\n{/if}\n\n{ts}Total Amount{/ts}: {contribution.total_amount}\n{else}\n{ts}Amount{/ts}: {contribution.total_amount} {if \'{contribution.amount_level}\'} - {contribution.amount_level}{/if}\n{/if}\n{/if}\n{if !empty($receive_date)}\n\n{ts}Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if !empty($is_monetary) and !empty($trxn_id)}\n{ts}Transaction #{/ts}: {$trxn_id}\n{/if}\n\n{if !empty($is_recur)}\n{ts}This is a recurring contribution.{/ts}\n\n{if $cancelSubscriptionUrl}\n{ts}You can cancel future contributions at:{/ts}\n\n{$cancelSubscriptionUrl}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n{ts}You can update billing details for this recurring contribution at:{/ts}\n\n{$updateSubscriptionBillingUrl}\n\n{/if}\n\n{if $updateSubscriptionUrl}\n{ts}You can update recurring contribution amount or change the number of installments for this recurring contribution at:{/ts}\n\n{$updateSubscriptionUrl}\n\n{/if}\n{/if}\n\n{if $honor_block_is_active}\n===========================================================\n{$soft_credit_type}\n===========================================================\n{foreach from=$honoreeProfile item=value key=label}\n{$label}: {$value}\n{/foreach}\n{elseif !empty($softCreditTypes) and !empty($softCredits)}\n{foreach from=$softCreditTypes item=softCreditType key=n}\n===========================================================\n{$softCreditType}\n===========================================================\n{foreach from=$softCredits.$n item=value key=label}\n{$label}: {$value}\n{/foreach}\n{/foreach}\n{/if}\n{if !empty($pcpBlock)}\n===========================================================\n{ts}Personal Campaign Page{/ts}\n\n===========================================================\n{ts}Display In Honor Roll{/ts}: {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n\n{if $pcp_roll_nickname}{ts}Nickname{/ts}: {$pcp_roll_nickname}{/if}\n\n{if $pcp_personal_note}{ts}Personal Note{/ts}: {$pcp_personal_note}{/if}\n\n{/if}\n{if !empty($onBehalfProfile)}\n===========================================================\n{ts}On Behalf Of{/ts}\n\n===========================================================\n{foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n{$onBehalfName}: {$onBehalfValue}\n{/foreach}\n{/if}\n\n{if !empty($billingName)}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n{elseif !empty($email)}\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$email}\n{/if} {* End billingName or Email*}\n{if !empty($credit_card_type)}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n\n{if !empty($selectPremium )}\n===========================================================\n{ts}Premium Information{/ts}\n\n===========================================================\n{$product_name}\n{if $option}\n{ts}Option{/ts}: {$option}\n{/if}\n{if $sku}\n{ts}SKU{/ts}: {$sku}\n{/if}\n{if $start_date}\n{ts}Start Date{/ts}: {$start_date|crmDate}\n{/if}\n{if $end_date}\n{ts}End Date{/ts}: {$end_date|crmDate}\n{/if}\n{if !empty($contact_email) OR !empty($contact_phone)}\n\n{ts}For information about this premium, contact:{/ts}\n\n{if !empty($contact_email)}\n  {$contact_email}\n{/if}\n{if !empty($contact_phone)}\n  {$contact_phone}\n{/if}\n{/if}\n{if $is_deductible AND !empty($price)}\n\n{ts 1=$price|crmMoney:$currency}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}{/if}\n{/if}\n\n{if !empty($customPre)}\n===========================================================\n{$customPre_grouptitle}\n\n===========================================================\n{foreach from=$customPre item=customValue key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/if}\n\n\n{if !empty($customPost)}\n===========================================================\n{$customPost_grouptitle}\n\n===========================================================\n{foreach from=$customPost item=customValue key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n     {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    {if !empty($receipt_text)}\n     <p>{$receipt_text|htmlize}</p>\n    {/if}\n\n    {if $is_pay_later}\n     <p>{$pay_later_receipt}</p> {* FIXME: this might be text rather than HTML *}\n    {/if}\n\n   </td>\n  </tr>\n</table>\n<table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n  {if \'{contribution.total_amount|raw}\' !== \'0.00\'}\n    <tr>\n      <th {$headerStyle}>\n        {ts}Contribution Information{/ts}\n      </th>\n    </tr>\n\n    {if $isShowLineItems}\n      <tr>\n        <td colspan=\"2\" {$valueStyle}>\n          <table>\n            <tr>\n              <th>{ts}Item{/ts}</th>\n              <th>{ts}Qty{/ts}</th>\n              <th>{ts}Each{/ts}</th>\n              {if $isShowTax && \'{contribution.tax_amount|raw}\' !== \'0.00\'}\n                <th>{ts}Subtotal{/ts}</th>\n                <th>{ts}Tax Rate{/ts}</th>\n                <th>{ts}Tax Amount{/ts}</th>\n              {/if}\n              <th>{ts}Total{/ts}</th>\n            </tr>\n            {foreach from=$lineItems item=line}\n              <tr>\n                <td>{$line.title}</td>\n                <td>{$line.qty}</td>\n                <td>{$line.unit_price|crmMoney:$currency}</td>\n                {if $isShowTax && \'{contribution.tax_amount|raw}\' !== \'0.00\'}\n                  <td>{$line.unit_price*$line.qty|crmMoney:$currency}</td>\n                  {if $line.tax_rate || $line.tax_amount != \"\"}\n                    <td>{$line.tax_rate|string_format:\"%.2f\"}%</td>\n                    <td>{$line.tax_amount|crmMoney:$currency}</td>\n                  {else}\n                    <td></td>\n                    <td></td>\n                  {/if}\n                {/if}\n                <td>\n                  {$line.line_total+$line.tax_amount|crmMoney:$currency}\n                </td>\n              </tr>\n            {/foreach}\n          </table>\n        </td>\n      </tr>\n\n      {if $isShowTax && \'{contribution.tax_amount|raw}\' !== \'0.00\'}\n        <tr>\n          <td {$labelStyle}>\n            {ts} Amount before Tax : {/ts}\n          </td>\n          <td {$valueStyle}>\n            {$amount-$totalTaxAmount|crmMoney:$currency}\n          </td>\n        </tr>\n\n        {foreach from=$taxRateBreakdown item=taxDetail key=taxRate}\n          <tr>\n            <td>{if $taxRate == 0}{ts}No{/ts} {$taxTerm}{else}{$taxTerm} {$taxDetail.percentage}%{/if}</td>\n            <td>{$taxDetail.amount|crmMoney:\'{contribution.currency}\'}</td>\n          </tr>\n        {/foreach}\n\n      {/if}\n      {if $isShowTax}\n        <tr>\n          <td {$labelStyle}>\n            {ts}Total Tax{/ts}\n          </td>\n          <td {$valueStyle}>\n            {contribution.tax_amount}\n          </td>\n        </tr>\n      {/if}\n      <tr>\n        <td {$labelStyle}>\n          {ts}Total Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n          {contribution.total_amount}\n        </td>\n      </tr>\n    {else}\n      {if \'{contribution.tax_amount|raw}\' !== \'0.00\'}\n        <tr>\n          <td {$labelStyle}>\n            {ts}Total Tax Amount{/ts}\n          </td>\n          <td {$valueStyle}>\n            {contribution.tax_amount}\n          </td>\n         </tr>\n       {/if}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {contribution.total_amount} {if \'{contribution.amount_level}\'} - {contribution.amount_level}{/if}\n        </td>\n       </tr>\n\n      {/if}\n\n  {/if}\n\n\n     {if !empty($receive_date)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$receive_date|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($is_monetary) and !empty($trxn_id)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Transaction #{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$trxn_id}\n       </td>\n      </tr>\n     {/if}\n\n    {if !empty($is_recur)}\n      <tr>\n        <td  colspan=\"2\" {$labelStyle}>\n          {ts}This is a recurring contribution.{/ts}\n          {if $cancelSubscriptionUrl}\n            {ts 1=$cancelSubscriptionUrl}You can cancel future contributions by <a href=\"%1\">visiting this web page</a>.{/ts}\n          {/if}\n        </td>\n      </tr>\n      {if $updateSubscriptionBillingUrl}\n        <tr>\n          <td colspan=\"2\" {$labelStyle}>\n            {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n          </td>\n        </tr>\n      {/if}\n      {if $updateSubscriptionUrl}\n        <tr>\n          <td colspan=\"2\" {$labelStyle}>\n            {ts 1=$updateSubscriptionUrl}You can update recurring contribution amount or change the number of installments for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n          </td>\n        </tr>\n      {/if}\n    {/if}\n\n     {if $honor_block_is_active}\n      <tr>\n       <th {$headerStyle}>\n        {$soft_credit_type}\n       </th>\n      </tr>\n      {foreach from=$honoreeProfile item=value key=label}\n        <tr>\n         <td {$labelStyle}>\n          {$label}\n         </td>\n         <td {$valueStyle}>\n          {$value}\n         </td>\n        </tr>\n      {/foreach}\n      {elseif !empty($softCreditTypes) and !empty($softCredits)}\n      {foreach from=$softCreditTypes item=softCreditType key=n}\n       <tr>\n        <th {$headerStyle}>\n         {$softCreditType}\n        </th>\n       </tr>\n       {foreach from=$softCredits.$n item=value key=label}\n         <tr>\n          <td {$labelStyle}>\n           {$label}\n          </td>\n          <td {$valueStyle}>\n           {$value}\n          </td>\n         </tr>\n        {/foreach}\n       {/foreach}\n     {/if}\n\n     {if !empty($pcpBlock)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Personal Campaign Page{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Display In Honor Roll{/ts}\n       </td>\n       <td {$valueStyle}>\n        {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n       </td>\n      </tr>\n      {if $pcp_roll_nickname}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Nickname{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$pcp_roll_nickname}\n        </td>\n       </tr>\n      {/if}\n      {if $pcp_personal_note}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Personal Note{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$pcp_personal_note}\n        </td>\n       </tr>\n      {/if}\n     {/if}\n\n     {if !empty($onBehalfProfile)}\n      <tr>\n       <th {$headerStyle}>\n        {$onBehalfProfile_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n        <tr>\n         <td {$labelStyle}>\n          {$onBehalfName}\n         </td>\n         <td {$valueStyle}>\n          {$onBehalfValue}\n         </td>\n        </tr>\n      {/foreach}\n     {/if}\n\n     {if !empty($isShare)}\n      <tr>\n        <td colspan=\"2\" {$valueStyle}>\n            {capture assign=contributionUrl}{crmURL p=\'civicrm/contribute/transact\' q=\"reset=1&id=`$contributionPageId`\" a=true fe=1 h=1}{/capture}\n            {include file=\"CRM/common/SocialNetwork.tpl\" emailMode=true url=$contributionUrl title=$title pageURL=$contributionUrl}\n        </td>\n      </tr>\n     {/if}\n\n     {if !empty($billingName)}\n       <tr>\n        <th {$headerStyle}>\n         {ts}Billing Name and Address{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         {$billingName}<br />\n         {$address|nl2br}<br />\n         {$email}\n        </td>\n       </tr>\n     {elseif !empty($email)}\n       <tr>\n        <th {$headerStyle}>\n         {ts}Registered Email{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         {$email}\n        </td>\n       </tr>\n     {/if}\n\n     {if !empty($credit_card_type)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($selectPremium)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Premium Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {$product_name}\n       </td>\n      </tr>\n      {if $option}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Option{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$option}\n        </td>\n       </tr>\n      {/if}\n      {if $sku}\n       <tr>\n        <td {$labelStyle}>\n         {ts}SKU{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$sku}\n        </td>\n       </tr>\n      {/if}\n      {if $start_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Start Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$start_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if $end_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}End Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$end_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if !empty($contact_email) OR !empty($contact_phone)}\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         <p>{ts}For information about this premium, contact:{/ts}</p>\n         {if !empty($contact_email)}\n          <p>{$contact_email}</p>\n         {/if}\n         {if !empty($contact_phone)}\n          <p>{$contact_phone}</p>\n         {/if}\n        </td>\n       </tr>\n      {/if}\n      {if $is_deductible AND !empty($price)}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          <p>{ts 1=$price|crmMoney:$currency}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}</p>\n         </td>\n        </tr>\n      {/if}\n     {/if}\n\n     {if !empty($customPre)}\n      <tr>\n       <th {$headerStyle}>\n        {$customPre_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPre item=customValue key=customName}\n       {if (!empty($trackingFields) and ! in_array($customName, $trackingFields)) or empty($trackingFields)}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$customValue}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if !empty($customPost)}\n      <tr>\n       <th {$headerStyle}>\n        {$customPost_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPost item=customValue key=customName}\n       {if (!empty($trackingFields) and ! in_array($customName, $trackingFields)) or empty($trackingFields)}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$customValue}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n  </table>\n\n</body>\n</html>\n',1,816,'contribution_online_receipt',1,0,0,NULL),
+ (8,'Contributions - Receipt (on-line)','{if $is_pay_later}{ts}Invoice{/ts}{else}{ts}Receipt{/ts}{/if} - {$title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n{if !empty($receipt_text)}\n{$receipt_text}\n{/if}\n{if $is_pay_later}\n\n===========================================================\n{$pay_later_receipt}\n===========================================================\n{/if}\n\n{if \'{contribution.total_amount|raw}\' !== \'0.00\'}\n===========================================================\n{ts}Contribution Information{/ts}\n\n===========================================================\n{if $isShowLineItems}\n\n---------------------------------------------------------\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{if $isShowTax && \'{contribution.tax_amount|raw}\' !== \'0.00\'}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{/if}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {if $isShowTax && \'{contribution.tax_amount|raw}\' !== \'0.00\'} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate} {$ts_taxAmount|string_format:\"%10s\"} {/if} {$ts_total|string_format:\"%10s\"}\n----------------------------------------------------------\n{foreach from=$lineItems item=line}\n{capture assign=ts_item}{$line.title}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney:$currency|string_format:\"%10s\"} {if $isShowTax && \'{contribution.tax_amount|raw}\' !== \'0.00\'}{$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if $line.tax_rate || $line.tax_amount != \"\"}  {$line.tax_rate|string_format:\"%.2f\"} %  {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else}                  {/if}  {/if} {$line.line_total+$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"}\n{/foreach}\n\n{if $isShowTax && \'{contribution.tax_amount|raw}\' !== \'0.00\'}\n{ts}Amount before Tax{/ts}: {$amount-$totalTaxAmount|crmMoney:$currency}\n  {foreach from=$taxRateBreakdown item=taxDetail key=taxRate}\n    {if $taxRate == 0}{ts}No{/ts} {$taxTerm}{else}{$taxTerm} {$taxDetail.percentage}%{/if} : {$taxDetail.amount|crmMoney:\'{contribution.currency}\'}\n  {/foreach}\n{/if}\n\n{if $isShowTax}\n{ts}Total Tax Amount{/ts}: {contribution.tax_amount|crmMoney}\n{/if}\n\n{ts}Total Amount{/ts}: {contribution.total_amount}\n{else}\n{ts}Amount{/ts}: {contribution.total_amount} {if \'{contribution.amount_level}\'} - {contribution.amount_level}{/if}\n{/if}\n{/if}\n{if !empty($receive_date)}\n\n{ts}Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if !empty($is_monetary) and !empty($trxn_id)}\n{ts}Transaction #{/ts}: {$trxn_id}\n{/if}\n\n{if !empty($is_recur)}\n{ts}This is a recurring contribution.{/ts}\n\n{if $cancelSubscriptionUrl}\n{ts}You can cancel future contributions at:{/ts}\n\n{$cancelSubscriptionUrl}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n{ts}You can update billing details for this recurring contribution at:{/ts}\n\n{$updateSubscriptionBillingUrl}\n\n{/if}\n\n{if $updateSubscriptionUrl}\n{ts}You can update recurring contribution amount or change the number of installments for this recurring contribution at:{/ts}\n\n{$updateSubscriptionUrl}\n\n{/if}\n{/if}\n\n{if $honor_block_is_active}\n===========================================================\n{$soft_credit_type}\n===========================================================\n{foreach from=$honoreeProfile item=value key=label}\n{$label}: {$value}\n{/foreach}\n{elseif !empty($softCreditTypes) and !empty($softCredits)}\n{foreach from=$softCreditTypes item=softCreditType key=n}\n===========================================================\n{$softCreditType}\n===========================================================\n{foreach from=$softCredits.$n item=value key=label}\n{$label}: {$value}\n{/foreach}\n{/foreach}\n{/if}\n{if !empty($pcpBlock)}\n===========================================================\n{ts}Personal Campaign Page{/ts}\n\n===========================================================\n{ts}Display In Honor Roll{/ts}: {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n\n{if $pcp_roll_nickname}{ts}Nickname{/ts}: {$pcp_roll_nickname}{/if}\n\n{if $pcp_personal_note}{ts}Personal Note{/ts}: {$pcp_personal_note}{/if}\n\n{/if}\n{if !empty($onBehalfProfile)}\n===========================================================\n{ts}On Behalf Of{/ts}\n\n===========================================================\n{foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n{$onBehalfName}: {$onBehalfValue}\n{/foreach}\n{/if}\n\n{if !empty($billingName)}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n{elseif !empty($email)}\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$email}\n{/if} {* End billingName or Email*}\n{if !empty($credit_card_type)}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n\n{if !empty($selectPremium )}\n===========================================================\n{ts}Premium Information{/ts}\n\n===========================================================\n{$product_name}\n{if $option}\n{ts}Option{/ts}: {$option}\n{/if}\n{if $sku}\n{ts}SKU{/ts}: {$sku}\n{/if}\n{if $start_date}\n{ts}Start Date{/ts}: {$start_date|crmDate}\n{/if}\n{if $end_date}\n{ts}End Date{/ts}: {$end_date|crmDate}\n{/if}\n{if !empty($contact_email) OR !empty($contact_phone)}\n\n{ts}For information about this premium, contact:{/ts}\n\n{if !empty($contact_email)}\n  {$contact_email}\n{/if}\n{if !empty($contact_phone)}\n  {$contact_phone}\n{/if}\n{/if}\n{if $is_deductible AND !empty($price)}\n\n{ts 1=$price|crmMoney:$currency}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}{/if}\n{/if}\n\n{if !empty($customPre)}\n===========================================================\n{$customPre_grouptitle}\n\n===========================================================\n{foreach from=$customPre item=customValue key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/if}\n\n\n{if !empty($customPost)}\n===========================================================\n{$customPost_grouptitle}\n\n===========================================================\n{foreach from=$customPost item=customValue key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n     {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    {if !empty($receipt_text)}\n     <p>{$receipt_text|htmlize}</p>\n    {/if}\n\n    {if $is_pay_later}\n     <p>{$pay_later_receipt}</p> {* FIXME: this might be text rather than HTML *}\n    {/if}\n\n   </td>\n  </tr>\n</table>\n<table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n  {if \'{contribution.total_amount|raw}\' !== \'0.00\'}\n    <tr>\n      <th {$headerStyle}>\n        {ts}Contribution Information{/ts}\n      </th>\n    </tr>\n\n    {if $isShowLineItems}\n      <tr>\n        <td colspan=\"2\" {$valueStyle}>\n          <table>\n            <tr>\n              <th>{ts}Item{/ts}</th>\n              <th>{ts}Qty{/ts}</th>\n              <th>{ts}Each{/ts}</th>\n              {if $isShowTax && \'{contribution.tax_amount|raw}\' !== \'0.00\'}\n                <th>{ts}Subtotal{/ts}</th>\n                <th>{ts}Tax Rate{/ts}</th>\n                <th>{ts}Tax Amount{/ts}</th>\n              {/if}\n              <th>{ts}Total{/ts}</th>\n            </tr>\n            {foreach from=$lineItems item=line}\n              <tr>\n                <td>{$line.title}</td>\n                <td>{$line.qty}</td>\n                <td>{$line.unit_price|crmMoney:$currency}</td>\n                {if $isShowTax && \'{contribution.tax_amount|raw}\' !== \'0.00\'}\n                  <td>{$line.unit_price*$line.qty|crmMoney:$currency}</td>\n                  {if $line.tax_rate || $line.tax_amount != \"\"}\n                    <td>{$line.tax_rate|string_format:\"%.2f\"}%</td>\n                    <td>{$line.tax_amount|crmMoney:$currency}</td>\n                  {else}\n                    <td></td>\n                    <td></td>\n                  {/if}\n                {/if}\n                <td>\n                  {$line.line_total+$line.tax_amount|crmMoney:$currency}\n                </td>\n              </tr>\n            {/foreach}\n          </table>\n        </td>\n      </tr>\n\n      {if $isShowTax && \'{contribution.tax_amount|raw}\' !== \'0.00\'}\n        <tr>\n          <td {$labelStyle}>\n            {ts} Amount before Tax : {/ts}\n          </td>\n          <td {$valueStyle}>\n            {$amount-$totalTaxAmount|crmMoney:$currency}\n          </td>\n        </tr>\n\n        {foreach from=$taxRateBreakdown item=taxDetail key=taxRate}\n          <tr>\n            <td>{if $taxRate == 0}{ts}No{/ts} {$taxTerm}{else}{$taxTerm} {$taxDetail.percentage}%{/if}</td>\n            <td>{$taxDetail.amount|crmMoney:\'{contribution.currency}\'}</td>\n          </tr>\n        {/foreach}\n\n      {/if}\n      {if $isShowTax}\n        <tr>\n          <td {$labelStyle}>\n            {ts}Total Tax{/ts}\n          </td>\n          <td {$valueStyle}>\n            {contribution.tax_amount}\n          </td>\n        </tr>\n      {/if}\n      <tr>\n        <td {$labelStyle}>\n          {ts}Total Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n          {contribution.total_amount}\n        </td>\n      </tr>\n    {else}\n      {if \'{contribution.tax_amount|raw}\' !== \'0.00\'}\n        <tr>\n          <td {$labelStyle}>\n            {ts}Total Tax Amount{/ts}\n          </td>\n          <td {$valueStyle}>\n            {contribution.tax_amount}\n          </td>\n         </tr>\n       {/if}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {contribution.total_amount} {if \'{contribution.amount_level}\'} - {contribution.amount_level}{/if}\n        </td>\n       </tr>\n\n      {/if}\n\n  {/if}\n\n\n     {if !empty($receive_date)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$receive_date|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($is_monetary) and !empty($trxn_id)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Transaction #{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$trxn_id}\n       </td>\n      </tr>\n     {/if}\n\n    {if !empty($is_recur)}\n      <tr>\n        <td  colspan=\"2\" {$labelStyle}>\n          {ts}This is a recurring contribution.{/ts}\n          {if $cancelSubscriptionUrl}\n            {ts 1=$cancelSubscriptionUrl}You can cancel future contributions by <a href=\"%1\">visiting this web page</a>.{/ts}\n          {/if}\n        </td>\n      </tr>\n      {if $updateSubscriptionBillingUrl}\n        <tr>\n          <td colspan=\"2\" {$labelStyle}>\n            {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n          </td>\n        </tr>\n      {/if}\n      {if $updateSubscriptionUrl}\n        <tr>\n          <td colspan=\"2\" {$labelStyle}>\n            {ts 1=$updateSubscriptionUrl}You can update recurring contribution amount or change the number of installments for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n          </td>\n        </tr>\n      {/if}\n    {/if}\n\n     {if $honor_block_is_active}\n      <tr>\n       <th {$headerStyle}>\n        {$soft_credit_type}\n       </th>\n      </tr>\n      {foreach from=$honoreeProfile item=value key=label}\n        <tr>\n         <td {$labelStyle}>\n          {$label}\n         </td>\n         <td {$valueStyle}>\n          {$value}\n         </td>\n        </tr>\n      {/foreach}\n      {elseif !empty($softCreditTypes) and !empty($softCredits)}\n      {foreach from=$softCreditTypes item=softCreditType key=n}\n       <tr>\n        <th {$headerStyle}>\n         {$softCreditType}\n        </th>\n       </tr>\n       {foreach from=$softCredits.$n item=value key=label}\n         <tr>\n          <td {$labelStyle}>\n           {$label}\n          </td>\n          <td {$valueStyle}>\n           {$value}\n          </td>\n         </tr>\n        {/foreach}\n       {/foreach}\n     {/if}\n\n     {if !empty($pcpBlock)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Personal Campaign Page{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Display In Honor Roll{/ts}\n       </td>\n       <td {$valueStyle}>\n        {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n       </td>\n      </tr>\n      {if $pcp_roll_nickname}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Nickname{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$pcp_roll_nickname}\n        </td>\n       </tr>\n      {/if}\n      {if $pcp_personal_note}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Personal Note{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$pcp_personal_note}\n        </td>\n       </tr>\n      {/if}\n     {/if}\n\n     {if !empty($onBehalfProfile)}\n      <tr>\n       <th {$headerStyle}>\n        {$onBehalfProfile_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n        <tr>\n         <td {$labelStyle}>\n          {$onBehalfName}\n         </td>\n         <td {$valueStyle}>\n          {$onBehalfValue}\n         </td>\n        </tr>\n      {/foreach}\n     {/if}\n\n     {if !empty($isShare)}\n      <tr>\n        <td colspan=\"2\" {$valueStyle}>\n            {capture assign=contributionUrl}{crmURL p=\'civicrm/contribute/transact\' q=\"reset=1&id=`$contributionPageId`\" a=true fe=1 h=1}{/capture}\n            {include file=\"CRM/common/SocialNetwork.tpl\" emailMode=true url=$contributionUrl title=$title pageURL=$contributionUrl}\n        </td>\n      </tr>\n     {/if}\n\n     {if !empty($billingName)}\n       <tr>\n        <th {$headerStyle}>\n         {ts}Billing Name and Address{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         {$billingName}<br />\n         {$address|nl2br}<br />\n         {$email}\n        </td>\n       </tr>\n     {elseif !empty($email)}\n       <tr>\n        <th {$headerStyle}>\n         {ts}Registered Email{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         {$email}\n        </td>\n       </tr>\n     {/if}\n\n     {if !empty($credit_card_type)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($selectPremium)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Premium Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {$product_name}\n       </td>\n      </tr>\n      {if $option}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Option{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$option}\n        </td>\n       </tr>\n      {/if}\n      {if $sku}\n       <tr>\n        <td {$labelStyle}>\n         {ts}SKU{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$sku}\n        </td>\n       </tr>\n      {/if}\n      {if $start_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Start Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$start_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if $end_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}End Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$end_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if !empty($contact_email) OR !empty($contact_phone)}\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         <p>{ts}For information about this premium, contact:{/ts}</p>\n         {if !empty($contact_email)}\n          <p>{$contact_email}</p>\n         {/if}\n         {if !empty($contact_phone)}\n          <p>{$contact_phone}</p>\n         {/if}\n        </td>\n       </tr>\n      {/if}\n      {if $is_deductible AND !empty($price)}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          <p>{ts 1=$price|crmMoney:$currency}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}</p>\n         </td>\n        </tr>\n      {/if}\n     {/if}\n\n     {if !empty($customPre)}\n      <tr>\n       <th {$headerStyle}>\n        {$customPre_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPre item=customValue key=customName}\n       {if (!empty($trackingFields) and ! in_array($customName, $trackingFields)) or empty($trackingFields)}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$customValue}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if !empty($customPost)}\n      <tr>\n       <th {$headerStyle}>\n        {$customPost_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPost item=customValue key=customName}\n       {if (!empty($trackingFields) and ! in_array($customName, $trackingFields)) or empty($trackingFields)}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$customValue}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n  </table>\n\n</body>\n</html>\n',1,816,'contribution_online_receipt',0,1,0,NULL),
  (9,'Contributions - Invoice','{if $title}\n  {if $component}\n    {if $component == \'event\'}\n      {ts 1=$title}Event Registration Invoice: %1{/ts}\n    {else}\n      {ts 1=$title}Contribution Invoice: %1{/ts}\n    {/if}\n  {/if}\n{else}\n  {ts}Invoice{/ts}\n{/if}\n - {contact.display_name}\n','{ts}Contribution Invoice{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n  <head>\n    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n      <title></title>\n  </head>\n  <body>\n  <div style=\"padding-top:100px;margin-right:50px;border-style: none;\">\n    {if $config->empoweredBy}\n      <table style=\"margin-top:5px;padding-bottom:50px;\" cellpadding=\"5\" cellspacing=\"0\">\n        <tr>\n          <td><img src=\"{domain.empowered_by_civicrm_image_url}\" height=\"34px\" width=\"99px\"></td>\n        </tr>\n      </table>\n    {/if}\n    <table style=\"font-family: Arial, Verdana, sans-serif;\" width=\"100%\" height=\"100\" border=\"0\" cellpadding=\"5\" cellspacing=\"0\">\n      <tr>\n        <td width=\"30%\"><b><font size=\"4\" align=\"center\">{ts}INVOICE{/ts}</font></b></td>\n        <td width=\"50%\" valign=\"bottom\"><b><font size=\"1\" align=\"center\">{ts}Invoice Date:{/ts}</font></b></td>\n        <td valign=\"bottom\" style=\"white-space: nowrap\"><b><font size=\"1\" align=\"right\">{domain.name}</font></b></td>\n      </tr>\n      <tr>\n        <td><font size=\"1\" align=\"center\">{contact.display_name}{if \'{contact.current_employer}\'} ({contact.current_employer}){/if}</font></td>\n        <td><font size=\"1\" align=\"right\">{$invoice_date}</font></td>\n        <td style=\"white-space: nowrap\"><font size=\"1\" align=\"right\">\n          {domain.street_address}\n          {domain.supplemental_address_1}\n        </font></td>\n      </tr>\n      <tr>\n        <td><font size=\"1\" align=\"center\">{$street_address} {$supplemental_address_1}</font></td>\n        <td><b><font size=\"1\" align=\"right\">{ts}Invoice Number:{/ts}</font></b></td>\n        <td><font size=\"1\" align=\"right\">\n          {domain.supplemental_address_2}\n          {domain.state_province_id:label}\n        </font></td>\n      </tr>\n      <tr>\n        <td><font size=\"1\" align=\"center\">{$supplemental_address_2} {$stateProvinceAbbreviation}</font></td>\n        <td><font size=\"1\" align=\"right\">{contribution.invoice_number}</font></td>\n        <td style=\"white-space: nowrap\"><font size=\"1\" align=\"right\">\n          {domain.city}\n          {domain.postal_code}\n        </font></td>\n      </tr>\n      <tr>\n        <td><font size=\"1\" align=\"right\">{$city}  {$postal_code}</font></td>\n        <td height=\"10\"><b><font size=\"1\" align=\"right\">{ts}Reference:{/ts}</font></b></td>\n        <td><font size=\"1\" align=\"right\">{domain.country_id:label}</font></td>\n      </tr>\n      <tr>\n        <td><font size=\"1\" align=\"right\"> {$country}</font></td>\n        <td><font size=\"1\" align=\"right\">{contribution.source}</font></td>\n        <td valign=\"top\" style=\"white-space: nowrap\"><font size=\"1\" align=\"right\">{domain.email}</font> </td>\n      </tr>\n      <tr>\n        <td></td>\n        <td></td>\n        <td valign=\"top\"><font size=\"1\" align=\"right\">{domain.phone}</font> </td>\n      </tr>\n    </table>\n\n    <table style=\"padding-top:75px;font-family: Arial, Verdana, sans-serif;\" width=\"100%\" border=\"0\" cellpadding=\"5\" cellspacing=\"0\">\n      <tr>\n        <th style=\"text-align:left;font-weight:bold;width:100%\"><font size=\"1\">{ts}Description{/ts}</font></th>\n        <th style=\"text-align:right;font-weight:bold;white-space: nowrap\"><font size=\"1\">{ts}Quantity{/ts}</font></th>\n        <th style=\"text-align:right;font-weight:bold;white-space: nowrap\"><font size=\"1\">{ts}Unit Price{/ts}</font></th>\n        <th style=\"text-align:right;font-weight:bold;white-space: nowrap\"><font size=\"1\">{domain.tax_term}</font></th>\n        <th style=\"text-align:right;font-weight:bold;white-space: nowrap\"><font size=\"1\">{ts 1=$currency}Amount %1{/ts}</font></th>\n      </tr>\n      {foreach from=$lineItems item=line}\n        <tr>\n          <td style=\"text-align:left;nowrap\"><font size=\"1\">\n            {$line.title}\n          </font></td>\n          <td style=\"text-align:right;\"><font size=\"1\">{$line.qty}</font></td>\n          <td style=\"text-align:right;\"><font size=\"1\">{$line.unit_price|crmMoney:$currency}</font></td>\n            {if $line.tax_amount != \'\'}\n              <td style=\"text-align:right;\"><font size=\"1\">{if $line.tax_rate}{$line.tax_rate|crmNumberFormat}%{/if}</font></td>\n            {else}\n              <td style=\"text-align:right;\"><font size=\"1\">{if \'{domain.tax_term}\'}{ts 1=\'{domain.tax_term}\'}-{/ts}{/if}</font></td>\n            {/if}\n          <td style=\"text-align:right;\"><font size=\"1\">{$line.line_total|crmMoney:\'{contribution.currency}\'}</font></td>\n        </tr>\n      {/foreach}\n      <tr>\n        <td colspan=\"3\"></td>\n        <td style=\"text-align:right;\"><font size=\"1\">{ts}Sub Total{/ts}</font></td>\n        <td style=\"text-align:right;\"><font size=\"1\">{$subTotal|crmMoney:$currency}</font></td>\n      </tr>\n      {foreach from=$taxRateBreakdown item=taxDetail key=taxRate}\n        {if $taxRate != 0}\n          <tr>\n            <td colspan=\"3\"></td>\n            <td style=\"text-align:right;white-space: nowrap\"><font size=\"1\">{if \'{domain.tax_term}\'}{ts 1=\'{domain.tax_term}\' 2=$taxRate|crmNumberFormat}TOTAL %1 %2%{/ts}{/if}</font></td>\n            <td style=\"text-align:right\"><font size=\"1\" align=\"right\">{$taxDetail.amount|crmMoney:\'{contribution.currency}\'}</font> </td>\n          </tr>\n        {/if}\n      {/foreach}\n      <tr>\n        <td colspan=\"3\"></td>\n        <td style=\"text-align:right;white-space: nowrap\"><b><font size=\"1\">{ts 1=$currency}TOTAL %1{/ts}</font></b></td>\n        <td style=\"text-align:right;\"><font size=\"1\">{$amount|crmMoney:$currency}</font></td>\n      </tr>\n      <tr>\n        <td colspan=\"3\"></td>\n        <td style=\"text-align:right;white-space: nowrap\"><font size=\"1\">\n          {if \'{contribution.contribution_status_id:name}\' == \'Refunded\'}\n            {ts}Amount Credited{/ts}\n          {else}\n            {ts}Amount Paid{/ts}\n          {/if}\n        </font></td>\n        <td style=\"text-align:right;\"><font size=\"1\">{$amountPaid|crmMoney:$currency}</font></td>\n      </tr>\n      <tr>\n        <td colspan=\"3\"></td>\n        <td colspan=\"2\"><hr></hr></td>\n      </tr>\n      <tr>\n        <td colspan=\"3\"></td>\n        <td style=\"text-align:right;white-space: nowrap\" ><b><font size=\"1\">{ts}AMOUNT DUE:{/ts}</font></b></td>\n        <td style=\"text-align:right;\"><b><font size=\"1\">{$amountDue|crmMoney:$currency}</font></b></td>\n      </tr>\n      <tr>\n        <td colspan=\"5\"></td>\n      </tr>\n      {if \'{contribution.contribution_status_id:name}\' == \'Pending\' && \'{contribution.is_pay_later}\' == 1}\n        <tr>\n          <td colspan=\"3\"><b><font size=\"1\" align=\"center\">{ts 1=$dueDate}DUE DATE: %1{/ts}</font></b></td>\n          <td colspan=\"2\"></td>\n        </tr>\n      {/if}\n    </table>\n\n    {if \'{contribution.contribution_status_id:name}\' == \'Pending\' && \'{contribution.is_pay_later}\' == 1}\n      <table style=\"margin-top:5px;\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n        <tr>\n          <td><img src=\"{$resourceBase}/i/contribute/cut_line.png\" height=\"15\"></td>\n        </tr>\n      </table>\n\n      <table style=\"margin-top:5px;font-family: Arial, Verdana, sans-serif\" width=\"100%\" border=\"0\" cellpadding=\"5\" cellspacing=\"0\" id=\"desc\">\n        <tr>\n          <td width=\"60%\"><b><font size=\"4\" align=\"right\">{ts}PAYMENT ADVICE{/ts}</font></b><br/><br/>\n            <font size=\"1\" align=\"left\"><b>{ts}To:{/ts}</b><div style=\"width:24em;word-wrap:break-word;\">\n              {domain.name}<br />\n              {domain.street_address} {domain.supplemental_address_1}<br />\n              {domain.supplemental_address_2} {domain.state_province_id:label}<br />\n              {domain.city} {domain.postal_code}<br />\n              {domain.country_id:label}<br />\n              {domain.email}</div>\n              {domain.phone}<br />\n            </font>\n            <br/><br/><font size=\"1\" align=\"left\">{$notes}</font>\n          </td>\n          <td width=\"40%\">\n            <table cellpadding=\"5\" cellspacing=\"0\"  width=\"100%\" border=\"0\">\n              <tr>\n                <td width=\"100%\"><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Customer:{/ts}</font></td>\n                <td style=\"white-space: nowrap\"><font size=\"1\" align=\"right\">{contact.display_name}</font></td>\n              </tr>\n              <tr>\n                <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Invoice Number:{/ts}</font></td>\n                <td><font size=\"1\" align=\"right\">{contribution.invoice_number}</font></td>\n              </tr>\n              <tr><td colspan=\"5\" style=\"color:#F5F5F5;\"><hr></td></tr>\n              {if $is_pay_later == 1}\n                <tr>\n                  <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Amount Due:{/ts}</font></td>\n                  <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{$amount|crmMoney:$currency}</font></td>\n                </tr>\n              {else}\n                <tr>\n                  <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Amount Due:{/ts}</font></td>\n                  <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{$amountDue|crmMoney:$currency}</font></td>\n                </tr>\n              {/if}\n              <tr>\n                <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Due Date:{/ts}</font></td>\n                <td><font size=\"1\" align=\"right\">{$dueDate}</font></td>\n              </tr>\n              <tr>\n                <td colspan=\"5\" style=\"color:#F5F5F5;\"><hr></td>\n              </tr>\n            </table>\n          </td>\n        </tr>\n      </table>\n    {/if}\n\n    {if \'{contribution.contribution_status_id:name}\' === \'Refunded\' || \'{contribution.contribution_status_id:name}\' === \'Cancelled\'}\n    {if $config->empoweredBy}\n      <table style=\"margin-top:2px;padding-left:7px;page-break-before: always;\">\n        <tr>\n          <td><img src=\"{$resourceBase}/i/civi99.png\" height=\"34px\" width=\"99px\"></td>\n        </tr>\n      </table>\n    {/if}\n\n    <table style=\"font-family: Arial, Verdana, sans-serif\" width=\"100%\" height=\"100\" border=\"0\" cellpadding=\"5\" cellspacing=\"5\">\n      <tr>\n        <td style=\"padding-left:15px;\"><b><font size=\"4\" align=\"center\">{ts}CREDIT NOTE{/ts}</font></b></td>\n        <td style=\"padding-left:30px;\"><b><font size=\"1\" align=\"right\">{ts}Date:{/ts}</font></b></td>\n        <td><font size=\"1\" align=\"right\">{domain.name}</font></td>\n      </tr>\n      <tr>\n        <td style=\"padding-left:17px;\"><font size=\"1\" align=\"center\">{contact.display_name}{if \'{contact.current_employer}\'} ({contact.current_employer}){/if}</font></td>\n        <td style=\"padding-left:30px;\"><font size=\"1\" align=\"right\">{$invoice_date}</font></td>\n        <td><font size=\"1\" align=\"right\">\n          {domain.street_address}\n          {domain.supplemental_address_1}\n         </font></td>\n      </tr>\n      <tr>\n        <td style=\"padding-left:17px;\"><font size=\"1\" align=\"center\">{$street_address}   {$supplemental_address_1}</font></td>\n        <td style=\"padding-left:30px;\"><b><font size=\"1\" align=\"right\">{ts}Credit Note Number:{/ts}</font></b></td>\n        <td><font size=\"1\" align=\"right\">\n          {domain.supplemental_address_2}\n          {domain.state_province_id:label}\n        </font></td>\n      </tr>\n      <tr>\n        <td style=\"padding-left:17px;\"><font size=\"1\" align=\"center\">{$supplemental_address_2}  {$stateProvinceAbbreviation}</font></td>\n        <td style=\"padding-left:30px;\"><font size=\"1\" align=\"right\">{contribution.creditnote_id}</font></td>\n        <td><font size=\"1\" align=\"right\">\n          {domain.city}\n          {domain.postal_code}\n        </font></td>\n      </tr>\n      <tr>\n        <td style=\"padding-left:17px;\"><font size=\"1\" align=\"right\">{$city}  {$postal_code}</font></td>\n        <td height=\"10\" style=\"padding-left:30px;\"><b><font size=\"1\" align=\"right\">{ts}Reference:{/ts}</font></b></td>\n        <td><font size=\"1\" align=\"right\">\n          {domain.country_id:label}\n        </font></td>\n      </tr>\n      <tr>\n        <td></td>\n        <td style=\"padding-left:30px;\"><font size=\"1\" align=\"right\">{contribution.source}</font></td>\n        <td><font size=\"1\" align=\"right\">\n          {domain.email}\n        </font></td>\n      </tr>\n      <tr>\n        <td></td>\n        <td></td>\n        <td><font size=\"1\" align=\"right\">\n          {domain.phone}\n        </font></td>\n      </tr>\n    </table>\n\n    <table style=\"margin-top:75px;font-family: Arial, Verdana, sans-serif\" width=\"100%\" border=\"0\" cellpadding=\"5\" cellspacing=\"5\" id=\"desc\">\n      <tr>\n        <td colspan=\"2\">\n          <table>\n            <tr>\n              <th style=\"padding-right:28px;text-align:left;font-weight:bold;width:200px;\"><font size=\"1\">{ts}Description{/ts}</font></th>\n              <th style=\"padding-left:28px;text-align:right;font-weight:bold;\"><font size=\"1\">{ts}Quantity{/ts}</font></th>\n              <th style=\"padding-left:28px;text-align:right;font-weight:bold;\"><font size=\"1\">{ts}Unit Price{/ts}</font></th>\n              <th style=\"padding-left:28px;text-align:right;font-weight:bold;\"><font size=\"1\">{domain.tax_term}</font></th>\n              <th style=\"padding-left:28px;text-align:right;font-weight:bold;\"><font size=\"1\">{ts 1=$currency}Amount %1{/ts}</font></th>\n            </tr>\n            {foreach from=$lineItems item=line key=index}\n              <tr><td colspan=\"5\"><hr {if $index == 0}size=\"3\" style=\"color:#000;\"{else}style=\"color:#F5F5F5;\"{/if}></hr></td></tr>\n              <tr>\n                <td style =\"text-align:left;\"  ><font size=\"1\">\n                  {$line.title}\n                </font></td>\n                <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$line.qty}</font></td>\n                <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$line.unit_price|crmMoney:$currency}</font></td>\n                {if $line.tax_amount != \'\'}\n                  <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{if $line.tax_rate}{$line.tax_rate|crmNumberFormat}%{/if}</font></td>\n                {else}\n                  <td style=\"padding-left:28px;text-align:right\"><font size=\"1\">{if \'{domain.tax_term}\'}{ts 1=\'{domain.tax_term}\'}No %1{/ts}{/if}</font></td>\n                {/if}\n                <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$line.line_total|crmMoney:\'{contribution.currency}\'}</font></td>\n              </tr>\n            {/foreach}\n            <tr><td colspan=\"5\" style=\"color:#F5F5F5;\"><hr></hr></td></tr>\n            <tr>\n              <td colspan=\"3\"></td>\n              <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{ts}Sub Total{/ts}</font></td>\n              <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$subTotal|crmMoney:$currency}</font></td>\n            </tr>\n            {foreach from=$taxRateBreakdown item=taxDetail key=taxRate}\n                {if $taxRate != 0}\n                  <tr>\n                    <td colspan=\"3\"></td>\n                    <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{if \'{domain.tax_term}\'}{ts 1=\'{domain.tax_term}\' 2=$taxRate|crmNumberFormat}TOTAL %1 %2%{/ts}{/if}</font></td>\n                    <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\" align=\"right\">{$taxDetail.amount|crmMoney:\'{contribution.currency}\'}</font> </td>\n                  </tr>\n                {/if}\n              {/foreach}\n            <tr>\n              <td colspan=\"3\"></td>\n              <td colspan=\"2\"><hr></hr></td>\n            </tr>\n            <tr>\n              <td colspan=\"3\"></td>\n              <td style=\"padding-left:28px;text-align:right;\"><b><font size=\"1\">{ts 1=$currency}TOTAL %1{/ts}</font></b></td>\n              <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$amount|crmMoney:$currency}</font></td>\n            </tr>\n            {if \'{contribution.is_pay_later}\' == 0}\n              <tr>\n                <td colspan=\"3\"></td>\n                <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{ts}LESS Credit to invoice(s){/ts}</font></td>\n                <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$amount|crmMoney:$currency}</font></td>\n              </tr>\n              <tr>\n                <td colspan=\"3\"></td>\n                <td colspan=\"2\"><hr></hr></td>\n              </tr>\n              <tr>\n                <td colspan=\"3\"></td>\n                <td style=\"padding-left:28px;text-align:right;\"><b><font size=\"1\">{ts}REMAINING CREDIT{/ts}</font></b></td>\n                <td style=\"padding-left:28px;text-align:right;\"><b><font size=\"1\">{$amountDue|crmMoney:$currency}</font></b></td>\n                <td style=\"padding-left:28px;\"><font size=\"1\" align=\"right\"></font></td>\n              </tr>\n            {/if}\n            <br/><br/><br/>\n            <tr>\n              <td colspan=\"3\"></td>\n            </tr>\n            <tr>\n              <td></td>\n              <td colspan=\"3\"></td>\n            </tr>\n          </table>\n        </td>\n      </tr>\n    </table>\n\n    <table width=\"100%\" style=\"margin-top:5px;padding-right:45px;\">\n      <tr>\n        <td><img src=\"{$resourceBase}/i/contribute/cut_line.png\" height=\"15\" width=\"100%\"></td>\n      </tr>\n    </table>\n\n    <table style=\"margin-top:6px;font-family: Arial, Verdana, sans-serif\" width=\"100%\" border=\"0\" cellpadding=\"5\" cellspacing=\"5\" id=\"desc\">\n      <tr>\n        <td width=\"60%\"><font size=\"4\" align=\"right\"><b>{ts}CREDIT ADVICE{/ts}</b><br/><br /><div style=\"font-size:10px;max-width:300px;\">{ts}Please do not pay on this advice. Deduct the amount of this Credit Note from your next payment to us{/ts}</div><br/></font></td>\n        <td width=\"40%\">\n          <table align=\"right\">\n            <tr>\n              <td colspan=\"2\"></td>\n              <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Customer:{/ts}</font></td>\n              <td><font size=\"1\" align=\"right\">{contact.display_name}</font></td>\n            </tr>\n            <tr>\n              <td colspan=\"2\"></td>\n              <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Credit Note#:{/ts}</font></td>\n              <td><font size=\"1\" align=\"right\">{contribution.creditnote_id}</font></td>\n            </tr>\n            <tr><td colspan=\"5\"style=\"color:#F5F5F5;\"><hr></hr></td></tr>\n            <tr>\n              <td colspan=\"2\"></td>\n              <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Credit Amount:{/ts}</font></td>\n              <td width=\'50px\'><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{$amount|crmMoney:$currency}</font></td>\n            </tr>\n          </table>\n        </td>\n      </tr>\n    </table>\n  {/if}\n\n  </div>\n  </body>\n</html>\n',1,817,'contribution_invoice_receipt',1,0,0,NULL),
  (10,'Contributions - Invoice','{if $title}\n  {if $component}\n    {if $component == \'event\'}\n      {ts 1=$title}Event Registration Invoice: %1{/ts}\n    {else}\n      {ts 1=$title}Contribution Invoice: %1{/ts}\n    {/if}\n  {/if}\n{else}\n  {ts}Invoice{/ts}\n{/if}\n - {contact.display_name}\n','{ts}Contribution Invoice{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n  <head>\n    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n      <title></title>\n  </head>\n  <body>\n  <div style=\"padding-top:100px;margin-right:50px;border-style: none;\">\n    {if $config->empoweredBy}\n      <table style=\"margin-top:5px;padding-bottom:50px;\" cellpadding=\"5\" cellspacing=\"0\">\n        <tr>\n          <td><img src=\"{domain.empowered_by_civicrm_image_url}\" height=\"34px\" width=\"99px\"></td>\n        </tr>\n      </table>\n    {/if}\n    <table style=\"font-family: Arial, Verdana, sans-serif;\" width=\"100%\" height=\"100\" border=\"0\" cellpadding=\"5\" cellspacing=\"0\">\n      <tr>\n        <td width=\"30%\"><b><font size=\"4\" align=\"center\">{ts}INVOICE{/ts}</font></b></td>\n        <td width=\"50%\" valign=\"bottom\"><b><font size=\"1\" align=\"center\">{ts}Invoice Date:{/ts}</font></b></td>\n        <td valign=\"bottom\" style=\"white-space: nowrap\"><b><font size=\"1\" align=\"right\">{domain.name}</font></b></td>\n      </tr>\n      <tr>\n        <td><font size=\"1\" align=\"center\">{contact.display_name}{if \'{contact.current_employer}\'} ({contact.current_employer}){/if}</font></td>\n        <td><font size=\"1\" align=\"right\">{$invoice_date}</font></td>\n        <td style=\"white-space: nowrap\"><font size=\"1\" align=\"right\">\n          {domain.street_address}\n          {domain.supplemental_address_1}\n        </font></td>\n      </tr>\n      <tr>\n        <td><font size=\"1\" align=\"center\">{$street_address} {$supplemental_address_1}</font></td>\n        <td><b><font size=\"1\" align=\"right\">{ts}Invoice Number:{/ts}</font></b></td>\n        <td><font size=\"1\" align=\"right\">\n          {domain.supplemental_address_2}\n          {domain.state_province_id:label}\n        </font></td>\n      </tr>\n      <tr>\n        <td><font size=\"1\" align=\"center\">{$supplemental_address_2} {$stateProvinceAbbreviation}</font></td>\n        <td><font size=\"1\" align=\"right\">{contribution.invoice_number}</font></td>\n        <td style=\"white-space: nowrap\"><font size=\"1\" align=\"right\">\n          {domain.city}\n          {domain.postal_code}\n        </font></td>\n      </tr>\n      <tr>\n        <td><font size=\"1\" align=\"right\">{$city}  {$postal_code}</font></td>\n        <td height=\"10\"><b><font size=\"1\" align=\"right\">{ts}Reference:{/ts}</font></b></td>\n        <td><font size=\"1\" align=\"right\">{domain.country_id:label}</font></td>\n      </tr>\n      <tr>\n        <td><font size=\"1\" align=\"right\"> {$country}</font></td>\n        <td><font size=\"1\" align=\"right\">{contribution.source}</font></td>\n        <td valign=\"top\" style=\"white-space: nowrap\"><font size=\"1\" align=\"right\">{domain.email}</font> </td>\n      </tr>\n      <tr>\n        <td></td>\n        <td></td>\n        <td valign=\"top\"><font size=\"1\" align=\"right\">{domain.phone}</font> </td>\n      </tr>\n    </table>\n\n    <table style=\"padding-top:75px;font-family: Arial, Verdana, sans-serif;\" width=\"100%\" border=\"0\" cellpadding=\"5\" cellspacing=\"0\">\n      <tr>\n        <th style=\"text-align:left;font-weight:bold;width:100%\"><font size=\"1\">{ts}Description{/ts}</font></th>\n        <th style=\"text-align:right;font-weight:bold;white-space: nowrap\"><font size=\"1\">{ts}Quantity{/ts}</font></th>\n        <th style=\"text-align:right;font-weight:bold;white-space: nowrap\"><font size=\"1\">{ts}Unit Price{/ts}</font></th>\n        <th style=\"text-align:right;font-weight:bold;white-space: nowrap\"><font size=\"1\">{domain.tax_term}</font></th>\n        <th style=\"text-align:right;font-weight:bold;white-space: nowrap\"><font size=\"1\">{ts 1=$currency}Amount %1{/ts}</font></th>\n      </tr>\n      {foreach from=$lineItems item=line}\n        <tr>\n          <td style=\"text-align:left;nowrap\"><font size=\"1\">\n            {$line.title}\n          </font></td>\n          <td style=\"text-align:right;\"><font size=\"1\">{$line.qty}</font></td>\n          <td style=\"text-align:right;\"><font size=\"1\">{$line.unit_price|crmMoney:$currency}</font></td>\n            {if $line.tax_amount != \'\'}\n              <td style=\"text-align:right;\"><font size=\"1\">{if $line.tax_rate}{$line.tax_rate|crmNumberFormat}%{/if}</font></td>\n            {else}\n              <td style=\"text-align:right;\"><font size=\"1\">{if \'{domain.tax_term}\'}{ts 1=\'{domain.tax_term}\'}-{/ts}{/if}</font></td>\n            {/if}\n          <td style=\"text-align:right;\"><font size=\"1\">{$line.line_total|crmMoney:\'{contribution.currency}\'}</font></td>\n        </tr>\n      {/foreach}\n      <tr>\n        <td colspan=\"3\"></td>\n        <td style=\"text-align:right;\"><font size=\"1\">{ts}Sub Total{/ts}</font></td>\n        <td style=\"text-align:right;\"><font size=\"1\">{$subTotal|crmMoney:$currency}</font></td>\n      </tr>\n      {foreach from=$taxRateBreakdown item=taxDetail key=taxRate}\n        {if $taxRate != 0}\n          <tr>\n            <td colspan=\"3\"></td>\n            <td style=\"text-align:right;white-space: nowrap\"><font size=\"1\">{if \'{domain.tax_term}\'}{ts 1=\'{domain.tax_term}\' 2=$taxRate|crmNumberFormat}TOTAL %1 %2%{/ts}{/if}</font></td>\n            <td style=\"text-align:right\"><font size=\"1\" align=\"right\">{$taxDetail.amount|crmMoney:\'{contribution.currency}\'}</font> </td>\n          </tr>\n        {/if}\n      {/foreach}\n      <tr>\n        <td colspan=\"3\"></td>\n        <td style=\"text-align:right;white-space: nowrap\"><b><font size=\"1\">{ts 1=$currency}TOTAL %1{/ts}</font></b></td>\n        <td style=\"text-align:right;\"><font size=\"1\">{$amount|crmMoney:$currency}</font></td>\n      </tr>\n      <tr>\n        <td colspan=\"3\"></td>\n        <td style=\"text-align:right;white-space: nowrap\"><font size=\"1\">\n          {if \'{contribution.contribution_status_id:name}\' == \'Refunded\'}\n            {ts}Amount Credited{/ts}\n          {else}\n            {ts}Amount Paid{/ts}\n          {/if}\n        </font></td>\n        <td style=\"text-align:right;\"><font size=\"1\">{$amountPaid|crmMoney:$currency}</font></td>\n      </tr>\n      <tr>\n        <td colspan=\"3\"></td>\n        <td colspan=\"2\"><hr></hr></td>\n      </tr>\n      <tr>\n        <td colspan=\"3\"></td>\n        <td style=\"text-align:right;white-space: nowrap\" ><b><font size=\"1\">{ts}AMOUNT DUE:{/ts}</font></b></td>\n        <td style=\"text-align:right;\"><b><font size=\"1\">{$amountDue|crmMoney:$currency}</font></b></td>\n      </tr>\n      <tr>\n        <td colspan=\"5\"></td>\n      </tr>\n      {if \'{contribution.contribution_status_id:name}\' == \'Pending\' && \'{contribution.is_pay_later}\' == 1}\n        <tr>\n          <td colspan=\"3\"><b><font size=\"1\" align=\"center\">{ts 1=$dueDate}DUE DATE: %1{/ts}</font></b></td>\n          <td colspan=\"2\"></td>\n        </tr>\n      {/if}\n    </table>\n\n    {if \'{contribution.contribution_status_id:name}\' == \'Pending\' && \'{contribution.is_pay_later}\' == 1}\n      <table style=\"margin-top:5px;\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n        <tr>\n          <td><img src=\"{$resourceBase}/i/contribute/cut_line.png\" height=\"15\"></td>\n        </tr>\n      </table>\n\n      <table style=\"margin-top:5px;font-family: Arial, Verdana, sans-serif\" width=\"100%\" border=\"0\" cellpadding=\"5\" cellspacing=\"0\" id=\"desc\">\n        <tr>\n          <td width=\"60%\"><b><font size=\"4\" align=\"right\">{ts}PAYMENT ADVICE{/ts}</font></b><br/><br/>\n            <font size=\"1\" align=\"left\"><b>{ts}To:{/ts}</b><div style=\"width:24em;word-wrap:break-word;\">\n              {domain.name}<br />\n              {domain.street_address} {domain.supplemental_address_1}<br />\n              {domain.supplemental_address_2} {domain.state_province_id:label}<br />\n              {domain.city} {domain.postal_code}<br />\n              {domain.country_id:label}<br />\n              {domain.email}</div>\n              {domain.phone}<br />\n            </font>\n            <br/><br/><font size=\"1\" align=\"left\">{$notes}</font>\n          </td>\n          <td width=\"40%\">\n            <table cellpadding=\"5\" cellspacing=\"0\"  width=\"100%\" border=\"0\">\n              <tr>\n                <td width=\"100%\"><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Customer:{/ts}</font></td>\n                <td style=\"white-space: nowrap\"><font size=\"1\" align=\"right\">{contact.display_name}</font></td>\n              </tr>\n              <tr>\n                <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Invoice Number:{/ts}</font></td>\n                <td><font size=\"1\" align=\"right\">{contribution.invoice_number}</font></td>\n              </tr>\n              <tr><td colspan=\"5\" style=\"color:#F5F5F5;\"><hr></td></tr>\n              {if $is_pay_later == 1}\n                <tr>\n                  <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Amount Due:{/ts}</font></td>\n                  <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{$amount|crmMoney:$currency}</font></td>\n                </tr>\n              {else}\n                <tr>\n                  <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Amount Due:{/ts}</font></td>\n                  <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{$amountDue|crmMoney:$currency}</font></td>\n                </tr>\n              {/if}\n              <tr>\n                <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Due Date:{/ts}</font></td>\n                <td><font size=\"1\" align=\"right\">{$dueDate}</font></td>\n              </tr>\n              <tr>\n                <td colspan=\"5\" style=\"color:#F5F5F5;\"><hr></td>\n              </tr>\n            </table>\n          </td>\n        </tr>\n      </table>\n    {/if}\n\n    {if \'{contribution.contribution_status_id:name}\' === \'Refunded\' || \'{contribution.contribution_status_id:name}\' === \'Cancelled\'}\n    {if $config->empoweredBy}\n      <table style=\"margin-top:2px;padding-left:7px;page-break-before: always;\">\n        <tr>\n          <td><img src=\"{$resourceBase}/i/civi99.png\" height=\"34px\" width=\"99px\"></td>\n        </tr>\n      </table>\n    {/if}\n\n    <table style=\"font-family: Arial, Verdana, sans-serif\" width=\"100%\" height=\"100\" border=\"0\" cellpadding=\"5\" cellspacing=\"5\">\n      <tr>\n        <td style=\"padding-left:15px;\"><b><font size=\"4\" align=\"center\">{ts}CREDIT NOTE{/ts}</font></b></td>\n        <td style=\"padding-left:30px;\"><b><font size=\"1\" align=\"right\">{ts}Date:{/ts}</font></b></td>\n        <td><font size=\"1\" align=\"right\">{domain.name}</font></td>\n      </tr>\n      <tr>\n        <td style=\"padding-left:17px;\"><font size=\"1\" align=\"center\">{contact.display_name}{if \'{contact.current_employer}\'} ({contact.current_employer}){/if}</font></td>\n        <td style=\"padding-left:30px;\"><font size=\"1\" align=\"right\">{$invoice_date}</font></td>\n        <td><font size=\"1\" align=\"right\">\n          {domain.street_address}\n          {domain.supplemental_address_1}\n         </font></td>\n      </tr>\n      <tr>\n        <td style=\"padding-left:17px;\"><font size=\"1\" align=\"center\">{$street_address}   {$supplemental_address_1}</font></td>\n        <td style=\"padding-left:30px;\"><b><font size=\"1\" align=\"right\">{ts}Credit Note Number:{/ts}</font></b></td>\n        <td><font size=\"1\" align=\"right\">\n          {domain.supplemental_address_2}\n          {domain.state_province_id:label}\n        </font></td>\n      </tr>\n      <tr>\n        <td style=\"padding-left:17px;\"><font size=\"1\" align=\"center\">{$supplemental_address_2}  {$stateProvinceAbbreviation}</font></td>\n        <td style=\"padding-left:30px;\"><font size=\"1\" align=\"right\">{contribution.creditnote_id}</font></td>\n        <td><font size=\"1\" align=\"right\">\n          {domain.city}\n          {domain.postal_code}\n        </font></td>\n      </tr>\n      <tr>\n        <td style=\"padding-left:17px;\"><font size=\"1\" align=\"right\">{$city}  {$postal_code}</font></td>\n        <td height=\"10\" style=\"padding-left:30px;\"><b><font size=\"1\" align=\"right\">{ts}Reference:{/ts}</font></b></td>\n        <td><font size=\"1\" align=\"right\">\n          {domain.country_id:label}\n        </font></td>\n      </tr>\n      <tr>\n        <td></td>\n        <td style=\"padding-left:30px;\"><font size=\"1\" align=\"right\">{contribution.source}</font></td>\n        <td><font size=\"1\" align=\"right\">\n          {domain.email}\n        </font></td>\n      </tr>\n      <tr>\n        <td></td>\n        <td></td>\n        <td><font size=\"1\" align=\"right\">\n          {domain.phone}\n        </font></td>\n      </tr>\n    </table>\n\n    <table style=\"margin-top:75px;font-family: Arial, Verdana, sans-serif\" width=\"100%\" border=\"0\" cellpadding=\"5\" cellspacing=\"5\" id=\"desc\">\n      <tr>\n        <td colspan=\"2\">\n          <table>\n            <tr>\n              <th style=\"padding-right:28px;text-align:left;font-weight:bold;width:200px;\"><font size=\"1\">{ts}Description{/ts}</font></th>\n              <th style=\"padding-left:28px;text-align:right;font-weight:bold;\"><font size=\"1\">{ts}Quantity{/ts}</font></th>\n              <th style=\"padding-left:28px;text-align:right;font-weight:bold;\"><font size=\"1\">{ts}Unit Price{/ts}</font></th>\n              <th style=\"padding-left:28px;text-align:right;font-weight:bold;\"><font size=\"1\">{domain.tax_term}</font></th>\n              <th style=\"padding-left:28px;text-align:right;font-weight:bold;\"><font size=\"1\">{ts 1=$currency}Amount %1{/ts}</font></th>\n            </tr>\n            {foreach from=$lineItems item=line key=index}\n              <tr><td colspan=\"5\"><hr {if $index == 0}size=\"3\" style=\"color:#000;\"{else}style=\"color:#F5F5F5;\"{/if}></hr></td></tr>\n              <tr>\n                <td style =\"text-align:left;\"  ><font size=\"1\">\n                  {$line.title}\n                </font></td>\n                <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$line.qty}</font></td>\n                <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$line.unit_price|crmMoney:$currency}</font></td>\n                {if $line.tax_amount != \'\'}\n                  <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{if $line.tax_rate}{$line.tax_rate|crmNumberFormat}%{/if}</font></td>\n                {else}\n                  <td style=\"padding-left:28px;text-align:right\"><font size=\"1\">{if \'{domain.tax_term}\'}{ts 1=\'{domain.tax_term}\'}No %1{/ts}{/if}</font></td>\n                {/if}\n                <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$line.line_total|crmMoney:\'{contribution.currency}\'}</font></td>\n              </tr>\n            {/foreach}\n            <tr><td colspan=\"5\" style=\"color:#F5F5F5;\"><hr></hr></td></tr>\n            <tr>\n              <td colspan=\"3\"></td>\n              <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{ts}Sub Total{/ts}</font></td>\n              <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$subTotal|crmMoney:$currency}</font></td>\n            </tr>\n            {foreach from=$taxRateBreakdown item=taxDetail key=taxRate}\n                {if $taxRate != 0}\n                  <tr>\n                    <td colspan=\"3\"></td>\n                    <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{if \'{domain.tax_term}\'}{ts 1=\'{domain.tax_term}\' 2=$taxRate|crmNumberFormat}TOTAL %1 %2%{/ts}{/if}</font></td>\n                    <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\" align=\"right\">{$taxDetail.amount|crmMoney:\'{contribution.currency}\'}</font> </td>\n                  </tr>\n                {/if}\n              {/foreach}\n            <tr>\n              <td colspan=\"3\"></td>\n              <td colspan=\"2\"><hr></hr></td>\n            </tr>\n            <tr>\n              <td colspan=\"3\"></td>\n              <td style=\"padding-left:28px;text-align:right;\"><b><font size=\"1\">{ts 1=$currency}TOTAL %1{/ts}</font></b></td>\n              <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$amount|crmMoney:$currency}</font></td>\n            </tr>\n            {if \'{contribution.is_pay_later}\' == 0}\n              <tr>\n                <td colspan=\"3\"></td>\n                <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{ts}LESS Credit to invoice(s){/ts}</font></td>\n                <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$amount|crmMoney:$currency}</font></td>\n              </tr>\n              <tr>\n                <td colspan=\"3\"></td>\n                <td colspan=\"2\"><hr></hr></td>\n              </tr>\n              <tr>\n                <td colspan=\"3\"></td>\n                <td style=\"padding-left:28px;text-align:right;\"><b><font size=\"1\">{ts}REMAINING CREDIT{/ts}</font></b></td>\n                <td style=\"padding-left:28px;text-align:right;\"><b><font size=\"1\">{$amountDue|crmMoney:$currency}</font></b></td>\n                <td style=\"padding-left:28px;\"><font size=\"1\" align=\"right\"></font></td>\n              </tr>\n            {/if}\n            <br/><br/><br/>\n            <tr>\n              <td colspan=\"3\"></td>\n            </tr>\n            <tr>\n              <td></td>\n              <td colspan=\"3\"></td>\n            </tr>\n          </table>\n        </td>\n      </tr>\n    </table>\n\n    <table width=\"100%\" style=\"margin-top:5px;padding-right:45px;\">\n      <tr>\n        <td><img src=\"{$resourceBase}/i/contribute/cut_line.png\" height=\"15\" width=\"100%\"></td>\n      </tr>\n    </table>\n\n    <table style=\"margin-top:6px;font-family: Arial, Verdana, sans-serif\" width=\"100%\" border=\"0\" cellpadding=\"5\" cellspacing=\"5\" id=\"desc\">\n      <tr>\n        <td width=\"60%\"><font size=\"4\" align=\"right\"><b>{ts}CREDIT ADVICE{/ts}</b><br/><br /><div style=\"font-size:10px;max-width:300px;\">{ts}Please do not pay on this advice. Deduct the amount of this Credit Note from your next payment to us{/ts}</div><br/></font></td>\n        <td width=\"40%\">\n          <table align=\"right\">\n            <tr>\n              <td colspan=\"2\"></td>\n              <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Customer:{/ts}</font></td>\n              <td><font size=\"1\" align=\"right\">{contact.display_name}</font></td>\n            </tr>\n            <tr>\n              <td colspan=\"2\"></td>\n              <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Credit Note#:{/ts}</font></td>\n              <td><font size=\"1\" align=\"right\">{contribution.creditnote_id}</font></td>\n            </tr>\n            <tr><td colspan=\"5\"style=\"color:#F5F5F5;\"><hr></hr></td></tr>\n            <tr>\n              <td colspan=\"2\"></td>\n              <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Credit Amount:{/ts}</font></td>\n              <td width=\'50px\'><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{$amount|crmMoney:$currency}</font></td>\n            </tr>\n          </table>\n        </td>\n      </tr>\n    </table>\n  {/if}\n\n  </div>\n  </body>\n</html>\n',1,817,'contribution_invoice_receipt',0,1,0,NULL),
  (11,'Contributions - Recurring Start and End Notification','{ts}Recurring Contribution Notification{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{if $recur_txnType eq \'START\'}\n{if $auto_renew_membership}\n{ts}Thanks for your auto renew membership sign-up.{/ts}\n\n\n{ts 1=$recur_frequency_interval 2=$recur_frequency_unit}This membership will be automatically renewed every %1 %2(s).{/ts}\n\n{if $cancelSubscriptionUrl}\n{ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n{ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n{else}\n{ts}Thanks for your recurring contribution sign-up.{/ts}\n\n\n{ts 1=$recur_frequency_interval 2=$recur_frequency_unit 3=$recur_installments}This recurring contribution will be automatically processed every %1 %2(s){/ts}{if $recur_installments } {ts 1=$recur_installments} for a total of %1 installment(s){/ts}{/if}.\n\n{ts}Start Date{/ts}:  {$recur_start_date|crmDate}\n\n{if $cancelSubscriptionUrl}\n{ts 1=$cancelSubscriptionUrl}You can cancel the recurring contribution option by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n{ts 1=$updateSubscriptionBillingUrl}You can update billing details for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n\n{if $updateSubscriptionUrl}\n{ts 1=$updateSubscriptionUrl}You can update recurring contribution amount or change the number of installments for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n{/if}\n\n{elseif $recur_txnType eq \'END\'}\n{if $auto_renew_membership}\n{ts}Your auto renew membership sign-up has ended and your membership will not be automatically renewed.{/ts}\n\n\n{else}\n{ts}Your recurring contribution term has ended.{/ts}\n\n\n{ts 1=$recur_installments}You have successfully completed %1 recurring contributions. Thank you.{/ts}\n\n\n==================================================\n{ts 1=$recur_installments}Interval of Subscription for %1 installment(s){/ts}\n\n==================================================\n{ts}Start Date{/ts}: {$recur_start_date|crmDate}\n\n{ts}End Date{/ts}: {$recur_end_date|crmDate}\n\n{/if}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n   </td>\n  </tr>\n\n  <tr>\n   <td>&nbsp;</td>\n  </tr>\n\n    {if $recur_txnType eq \'START\'}\n     {if $auto_renew_membership}\n       <tr>\n        <td>\n         <p>{ts}Thanks for your auto renew membership sign-up.{/ts}</p>\n         <p>{ts 1=$recur_frequency_interval 2=$recur_frequency_unit}This membership will be automatically renewed every %1 %2(s). {/ts}</p>\n        </td>\n       </tr>\n       {if $cancelSubscriptionUrl}\n       <tr>\n         <td {$labelStyle}>\n           {ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by <a href=\"%1\">visiting this web page</a>.{/ts}\n         </td>\n       </tr>\n       {/if}\n       {if $updateSubscriptionBillingUrl}\n         <tr>\n          <td {$labelStyle}>\n           {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n          </td>\n         </tr>\n       {/if}\n     {else}\n      <tr>\n       <td>\n        <p>{ts}Thanks for your recurring contribution sign-up.{/ts}</p>\n        <p>{ts 1=$recur_frequency_interval 2=$recur_frequency_unit}This recurring contribution will be automatically processed every %1 %2(s){/ts}{if $recur_installments }{ts 1=$recur_installments} for a total of %1 installment(s){/ts}{/if}.</p>\n        <p>{ts}Start Date{/ts}: {$recur_start_date|crmDate}</p>\n       </td>\n      </tr>\n      {if $cancelSubscriptionUrl}\n      <tr>\n        <td {$labelStyle}>\n          {ts 1=$cancelSubscriptionUrl} You can cancel the recurring contribution option by <a href=\"%1\">visiting this web page</a>.{/ts}\n        </td>\n      </tr>\n      {/if}\n      {if $updateSubscriptionBillingUrl}\n        <tr>\n          <td {$labelStyle}>\n            {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n          </td>\n        </tr>\n      {/if}\n      {if $updateSubscriptionUrl}\n      <tr>\n        <td {$labelStyle}>\n          {ts 1=$updateSubscriptionUrl}You can update recurring contribution amount or change the number of installments details for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n        </td>\n      </tr>\n      {/if}\n     {/if}\n\n    {elseif $recur_txnType eq \'END\'}\n\n     {if $auto_renew_membership}\n      <tr>\n       <td>\n        <p>{ts}Your auto renew membership sign-up has ended and your membership will not be automatically renewed.{/ts}</p>\n       </td>\n      </tr>\n     {else}\n      <tr>\n       <td>\n        <p>{ts}Your recurring contribution term has ended.{/ts}</p>\n        <p>{ts 1=$recur_installments}You have successfully completed %1 recurring contributions. Thank you.{/ts}</p>\n       </td>\n      </tr>\n      <tr>\n       <td>\n     <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n      <tr>\n       <th {$headerStyle}>\n        {ts 1=$recur_installments}Interval of Subscription for %1 installment(s){/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Start Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$recur_start_date|crmDate}\n       </td>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}End Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$recur_end_date|crmDate}\n       </td>\n      </tr>\n     </table>\n       </td>\n      </tr>\n\n     {/if}\n    {/if}\n\n </table>\n\n</body>\n</html>\n',1,818,'contribution_recurring_notify',1,0,0,NULL),
@@ -5437,12 +5433,12 @@ INSERT INTO `civicrm_msg_template` (`id`, `msg_title`, `msg_subject`, `msg_text`
  (42,'Events - Registration Transferred Notice','{ts 1=$event.event_title}Event Registration Transferred for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$to_participant}Your Event Registration has been transferred to %1.{/ts}\n\n===========================================================\n{ts}Event Information and Location{/ts}\n\n===========================================================\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:\"%Y%m%d\" == $event.event_start_date|crmDate:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{ts}Participant Role{/ts}: {$participant.role}\n\n{if $isShowLocation}\n{$event.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if !empty($event.location.phone.1.phone) || !empty($event.location.email.1.email)}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$event.location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if}\n{/foreach}\n{foreach from=$event.location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if \'{contact.email}\'}\n\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{contact.email}\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$participant.register_date|crmDate}\n{/if}\n\n{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'}Please contact us at %1 or send email to %2 if you have questions.{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$to_participant}Your Event Registration has been Transferred to %1.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n   <td>\n    <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n     <tr>\n      <th {$headerStyle}>\n       {ts}Event Information and Location{/ts}\n      </th>\n     </tr>\n     <tr>\n      <td colspan=\"2\" {$valueStyle}>\n       {$event.event_title}<br />\n       {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:\"%Y%m%d\" == $event.event_start_date|crmDate:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n      </td>\n     </tr>\n     <tr>\n      <td {$labelStyle}>\n       {ts}Participant Role{/ts}:\n      </td>\n      <td {$valueStyle}>\n       {$participant.role}\n      </td>\n     </tr>\n\n     {if $isShowLocation}\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$event.location.address.1.display|nl2br}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($event.location.phone.1.phone) || !empty($event.location.email.1.email)}\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {ts}Event Contacts:{/ts}\n       </td>\n      </tr>\n      {foreach from=$event.location.phone item=phone}\n       {if $phone.phone}\n        <tr>\n         <td {$labelStyle}>\n          {if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}\n         </td>\n         <td {$valueStyle}>\n          {$phone.phone}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n      {foreach from=$event.location.email item=eventEmail}\n       {if $eventEmail.email}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Email{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$eventEmail.email}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if \'{contact.email}\'}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Registered Email{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {contact.email}\n       </td>\n      </tr>\n     {/if}\n\n     {if $register_date}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Registration Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$participant.register_date|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n    </table>\n   </td>\n  </tr>\n\n  <tr>\n   <td>\n    <p>{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'}Please contact us at %1 or send email to %2 if you have questions.{/ts}</p>\n   </td>\n  </tr>\n\n </table>\n\n</body>\n</html>\n',1,833,'participant_transferred',0,1,0,NULL),
  (43,'Tell-a-Friend Email','{ts 1=$senderContactName 2=$title}%1 wants you to know about %2{/ts}\n','{$senderMessage}\n\n{if $generalLink}{ts}For more information, visit:{/ts}\n>> {$generalLink}\n\n{/if}\n{if $contribute}{ts}To make a contribution, go to:{/ts}\n>> {$pageURL}\n\n{/if}\n{if $event}{ts}To find out more about this event, go to:{/ts}\n>> {$pageURL}\n{/if}\n\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    <p>{$senderMessage}</p>\n    {if $generalLink}\n     <p><a href=\"{$generalLink}\">{ts}More information{/ts}</a></p>\n    {/if}\n    {if $contribute}\n     <p><a href=\"{$pageURL}\">{ts}Make a contribution{/ts}</a></p>\n    {/if}\n    {if $event}\n     <p><a href=\"{$pageURL}\">{ts}Find out more about this event{/ts}</a></p>\n    {/if}\n   </td>\n  </tr>\n </table>\n\n</body>\n</html>\n',1,834,'friend',1,0,0,NULL),
  (44,'Tell-a-Friend Email','{ts 1=$senderContactName 2=$title}%1 wants you to know about %2{/ts}\n','{$senderMessage}\n\n{if $generalLink}{ts}For more information, visit:{/ts}\n>> {$generalLink}\n\n{/if}\n{if $contribute}{ts}To make a contribution, go to:{/ts}\n>> {$pageURL}\n\n{/if}\n{if $event}{ts}To find out more about this event, go to:{/ts}\n>> {$pageURL}\n{/if}\n\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    <p>{$senderMessage}</p>\n    {if $generalLink}\n     <p><a href=\"{$generalLink}\">{ts}More information{/ts}</a></p>\n    {/if}\n    {if $contribute}\n     <p><a href=\"{$pageURL}\">{ts}Make a contribution{/ts}</a></p>\n    {/if}\n    {if $event}\n     <p><a href=\"{$pageURL}\">{ts}Find out more about this event{/ts}</a></p>\n    {/if}\n   </td>\n  </tr>\n </table>\n\n</body>\n</html>\n',1,834,'friend',0,1,0,NULL),
- (45,'Memberships - Signup and Renewal Receipts (off-line)','{if $receiptType EQ \'membership signup\'}\n{ts}Membership Confirmation and Receipt{/ts}\n{elseif $receiptType EQ \'membership renewal\'}\n{ts}Membership Renewal Confirmation and Receipt{/ts}\n{/if} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{if $receipt_text}\n{$receipt_text}\n{else}{ts}Thank you for this contribution.{/ts}{/if}\n\n{if empty($lineItem)}\n===========================================================\n{ts}Membership Information{/ts}\n\n===========================================================\n{ts}Membership Type{/ts}: {$membership_name}\n{/if}\n{if empty($cancelled)}\n{if empty($lineItem)}\n{ts}Membership Start Date{/ts}: {$mem_start_date}\n{ts}Membership End Date{/ts}: {$mem_end_date}\n{/if}\n\n{if $formValues.total_amount OR $formValues.total_amount eq 0 }\n===========================================================\n{ts}Membership Fee{/ts}\n\n===========================================================\n{if !empty($formValues.contributionType_name)}\n{ts}Financial Type{/ts}: {$formValues.contributionType_name}\n{/if}\n{if !empty($lineItem)}\n{foreach from=$lineItem item=value key=priceset}\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_total}{ts}Fee{/ts}{/capture}\n{if !empty($dataArray)}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{/if}\n{capture assign=ts_start_date}{ts}Membership Start Date{/ts}{/capture}\n{capture assign=ts_end_date}{ts}Membership End Date{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_total|string_format:\"%10s\"} {if !empty($dataArray)} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate|string_format:\"%10s\"} {$ts_taxAmount|string_format:\"%10s\"} {$ts_total|string_format:\"%10s\"} {/if} {$ts_start_date|string_format:\"%20s\"} {$ts_end_date|string_format:\"%20s\"}\n--------------------------------------------------------------------------------------------------\n\n{foreach from=$value item=line}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.line_total|crmMoney|string_format:\"%10s\"}  {if !empty($dataArray)} {$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if $line.tax_rate || $line.tax_amount != \"\"}  {$line.tax_rate|string_format:\"%.2f\"} %  {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"}  {else}                  {/if}   {$line.line_total+$line.tax_amount|crmMoney|string_format:\"%10s\"} {/if} {$line.start_date|string_format:\"%20s\"} {$line.end_date|string_format:\"%20s\"}\n{/foreach}\n{/foreach}\n\n{if !empty($dataArray)}\n{ts}Amount before Tax{/ts}: {$formValues.total_amount-$totalTaxAmount|crmMoney:$currency}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset}\n{$taxTerm} {$priceset|string_format:\"%.2f\"} %: {$value|crmMoney:$currency}\n{elseif  $priceset == 0}\n{ts}No{/ts} {$taxTerm}: {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n--------------------------------------------------------------------------------------------------\n{/if}\n\n{if $totalTaxAmount}\n{ts}Total Tax Amount{/ts}: {$totalTaxAmount|crmMoney:$currency}\n{/if}\n\n{ts}Amount{/ts}: {$formValues.total_amount|crmMoney}\n{if !empty($receive_date)}\n{ts}Date Received{/ts}: {$receive_date|truncate:10:\'\'|crmDate}\n{/if}\n{if !empty($formValues.paidBy)}\n{ts}Paid By{/ts}: {$formValues.paidBy}\n{if !empty($formValues.check_number)}\n{ts}Check Number{/ts}: {$formValues.check_number}\n{/if}\n{/if}\n{/if}\n{/if}\n\n{if !empty($isPrimary) }\n{if !empty($billingName)}\n\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n{/if}\n\n{if !empty($credit_card_type)}\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{/if}\n\n{if !empty($customValues)}\n===========================================================\n{ts}Membership Options{/ts}\n\n===========================================================\n{foreach from=$customValues item=value key=customName}\n {$customName} : {$value}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n        \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n  <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"/>\n  <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n  <table id=\"crm-event_receipt\"\n         style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n    <!-- BEGIN HEADER -->\n    <!-- You can add table row(s) here with logo or other header elements -->\n    <!-- END HEADER -->\n\n    <!-- BEGIN CONTENT -->\n\n    <tr>\n      <td>\n        {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n        {if $receipt_text}\n          <p>{$receipt_text|htmlize}</p>\n          <p>{ts}Thank you for this contribution.{/ts}</p>\n        {/if}\n      </td>\n    </tr>\n    <tr>\n      <td>\n        <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n          {if empty($lineItem)}\n            <tr>\n              <th {$headerStyle}>\n                {ts}Membership Information{/ts}\n              </th>\n            </tr>\n            <tr>\n              <td {$labelStyle}>\n                {ts}Membership Type{/ts}\n              </td>\n              <td {$valueStyle}>\n                {$membership_name}\n              </td>\n            </tr>\n          {/if}\n          {if empty($cancelled)}\n            {if empty($lineItem)}\n              <tr>\n                <td {$labelStyle}>\n                  {ts}Membership Start Date{/ts}\n                </td>\n                <td {$valueStyle}>\n                  {$mem_start_date}\n                </td>\n              </tr>\n              <tr>\n                <td {$labelStyle}>\n                  {ts}Membership End Date{/ts}\n                </td>\n                <td {$valueStyle}>\n                  {$mem_end_date}\n                </td>\n              </tr>\n            {/if}\n            {if $formValues.total_amount OR $formValues.total_amount eq 0 }\n              <tr>\n                <th {$headerStyle}>\n                  {ts}Membership Fee{/ts}\n                </th>\n              </tr>\n              {if !empty($formValues.contributionType_name)}\n                <tr>\n                  <td {$labelStyle}>\n                    {ts}Financial Type{/ts}\n                  </td>\n                  <td {$valueStyle}>\n                    {$formValues.contributionType_name}\n                  </td>\n                </tr>\n              {/if}\n\n              {if !empty($lineItem)}\n                {foreach from=$lineItem item=value key=priceset}\n                  <tr>\n                    <td colspan=\"2\" {$valueStyle}>\n                      <table>\n                        <tr>\n                          <th>{ts}Item{/ts}</th>\n                          <th>{ts}Fee{/ts}</th>\n                          {if !empty($dataArray)}\n                            <th>{ts}SubTotal{/ts}</th>\n                            <th>{ts}Tax Rate{/ts}</th>\n                            <th>{ts}Tax Amount{/ts}</th>\n                            <th>{ts}Total{/ts}</th>\n                          {/if}\n                          <th>{ts}Membership Start Date{/ts}</th>\n                          <th>{ts}Membership End Date{/ts}</th>\n                        </tr>\n                        {foreach from=$value item=line}\n                          <tr>\n                            <td>\n                              {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}\n                                <div>{$line.description|truncate:30:\"...\"}</div>{/if}\n                            </td>\n                            <td>\n                              {$line.line_total|crmMoney}\n                            </td>\n                            {if !empty($dataArray)}\n                              <td>\n                                {$line.unit_price*$line.qty|crmMoney}\n                              </td>\n                              {if $line.tax_rate || $line.tax_amount != \"\"}\n                                <td>\n                                  {$line.tax_rate|string_format:\"%.2f\"}%\n                                </td>\n                                <td>\n                                  {$line.tax_amount|crmMoney}\n                                </td>\n                              {else}\n                                <td></td>\n                                <td></td>\n                              {/if}\n                              <td>\n                                {$line.line_total+$line.tax_amount|crmMoney}\n                              </td>\n                            {/if}\n                            <td>\n                              {$line.start_date}\n                            </td>\n                            <td>\n                              {$line.end_date}\n                            </td>\n                          </tr>\n                        {/foreach}\n                      </table>\n                    </td>\n                  </tr>\n                {/foreach}\n                {if !empty($dataArray)}\n                  {if $formValues.total_amount and $totalTaxAmount}\n                  <tr>\n                    <td {$labelStyle}>\n                      {ts}Amount Before Tax:{/ts}\n                    </td>\n                    <td {$valueStyle}>\n                      {$formValues.total_amount-$totalTaxAmount|crmMoney}\n                    </td>\n                  </tr>\n                  {/if}\n                  {foreach from=$dataArray item=value key=priceset}\n                    <tr>\n                      {if $priceset}\n                        <td>&nbsp;{$taxTerm} {$priceset|string_format:\"%.2f\"}%</td>\n                        <td>&nbsp;{$value|crmMoney:$currency}</td>\n                      {elseif  $priceset == 0}\n                        <td>&nbsp;{ts}No{/ts} {$taxTerm}</td>\n                        <td>&nbsp;{$value|crmMoney:$currency}</td>\n                      {/if}\n                    </tr>\n                  {/foreach}\n                {/if}\n              {/if}\n              {if $totalTaxAmount}\n                <tr>\n                  <td {$labelStyle}>\n                    {ts}Total Tax Amount{/ts}\n                  </td>\n                  <td {$valueStyle}>\n                    {$totalTaxAmount|crmMoney:$currency}\n                  </td>\n                </tr>\n              {/if}\n              <tr>\n                <td {$labelStyle}>\n                  {ts}Amount{/ts}\n                </td>\n                <td {$valueStyle}>\n                  {$formValues.total_amount|crmMoney}\n                </td>\n              </tr>\n              {if !empty($receive_date)}\n                <tr>\n                  <td {$labelStyle}>\n                    {ts}Date Received{/ts}\n                  </td>\n                  <td {$valueStyle}>\n                    {$receive_date|truncate:10:\'\'|crmDate}\n                  </td>\n                </tr>\n              {/if}\n              {if !empty($formValues.paidBy)}\n                <tr>\n                  <td {$labelStyle}>\n                    {ts}Paid By{/ts}\n                  </td>\n                  <td {$valueStyle}>\n                    {$formValues.paidBy}\n                  </td>\n                </tr>\n                {if !empty($formValues.check_number)}\n                  <tr>\n                    <td {$labelStyle}>\n                      {ts}Check Number{/ts}\n                    </td>\n                    <td {$valueStyle}>\n                      {$formValues.check_number}\n                    </td>\n                  </tr>\n                {/if}\n              {/if}\n            {/if}\n          {/if}\n        </table>\n      </td>\n    </tr>\n\n    {if !empty($isPrimary)}\n      <tr>\n        <td>\n          <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n\n            {if !empty($billingName)}\n              <tr>\n                <th {$headerStyle}>\n                  {ts}Billing Name and Address{/ts}\n                </th>\n              </tr>\n              <tr>\n                <td {$labelStyle}>\n                  {$billingName}<br/>\n                  {$address}\n                </td>\n              </tr>\n            {/if}\n\n            {if !empty($credit_card_type)}\n              <tr>\n                <th {$headerStyle}>\n                  {ts}Credit Card Information{/ts}\n                </th>\n              </tr>\n              <tr>\n                <td {$valueStyle}>\n                  {$credit_card_type}<br/>\n                  {$credit_card_number}\n                </td>\n              </tr>\n              <tr>\n                <td {$labelStyle}>\n                  {ts}Expires{/ts}\n                </td>\n                <td {$valueStyle}>\n                  {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n                </td>\n              </tr>\n            {/if}\n\n          </table>\n        </td>\n      </tr>\n    {/if}\n\n    {if !empty($customValues)}\n      <tr>\n        <td>\n          <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n            <tr>\n              <th {$headerStyle}>\n                {ts}Membership Options{/ts}\n              </th>\n            </tr>\n            {foreach from=$customValues item=value key=customName}\n              <tr>\n                <td {$labelStyle}>\n                  {$customName}\n                </td>\n                <td {$valueStyle}>\n                  {$value}\n                </td>\n              </tr>\n            {/foreach}\n          </table>\n        </td>\n      </tr>\n    {/if}\n\n  </table>\n\n</body>\n</html>\n',1,835,'membership_offline_receipt',1,0,0,NULL),
- (46,'Memberships - Signup and Renewal Receipts (off-line)','{if $receiptType EQ \'membership signup\'}\n{ts}Membership Confirmation and Receipt{/ts}\n{elseif $receiptType EQ \'membership renewal\'}\n{ts}Membership Renewal Confirmation and Receipt{/ts}\n{/if} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{if $receipt_text}\n{$receipt_text}\n{else}{ts}Thank you for this contribution.{/ts}{/if}\n\n{if empty($lineItem)}\n===========================================================\n{ts}Membership Information{/ts}\n\n===========================================================\n{ts}Membership Type{/ts}: {$membership_name}\n{/if}\n{if empty($cancelled)}\n{if empty($lineItem)}\n{ts}Membership Start Date{/ts}: {$mem_start_date}\n{ts}Membership End Date{/ts}: {$mem_end_date}\n{/if}\n\n{if $formValues.total_amount OR $formValues.total_amount eq 0 }\n===========================================================\n{ts}Membership Fee{/ts}\n\n===========================================================\n{if !empty($formValues.contributionType_name)}\n{ts}Financial Type{/ts}: {$formValues.contributionType_name}\n{/if}\n{if !empty($lineItem)}\n{foreach from=$lineItem item=value key=priceset}\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_total}{ts}Fee{/ts}{/capture}\n{if !empty($dataArray)}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{/if}\n{capture assign=ts_start_date}{ts}Membership Start Date{/ts}{/capture}\n{capture assign=ts_end_date}{ts}Membership End Date{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_total|string_format:\"%10s\"} {if !empty($dataArray)} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate|string_format:\"%10s\"} {$ts_taxAmount|string_format:\"%10s\"} {$ts_total|string_format:\"%10s\"} {/if} {$ts_start_date|string_format:\"%20s\"} {$ts_end_date|string_format:\"%20s\"}\n--------------------------------------------------------------------------------------------------\n\n{foreach from=$value item=line}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.line_total|crmMoney|string_format:\"%10s\"}  {if !empty($dataArray)} {$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if $line.tax_rate || $line.tax_amount != \"\"}  {$line.tax_rate|string_format:\"%.2f\"} %  {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"}  {else}                  {/if}   {$line.line_total+$line.tax_amount|crmMoney|string_format:\"%10s\"} {/if} {$line.start_date|string_format:\"%20s\"} {$line.end_date|string_format:\"%20s\"}\n{/foreach}\n{/foreach}\n\n{if !empty($dataArray)}\n{ts}Amount before Tax{/ts}: {$formValues.total_amount-$totalTaxAmount|crmMoney:$currency}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset}\n{$taxTerm} {$priceset|string_format:\"%.2f\"} %: {$value|crmMoney:$currency}\n{elseif  $priceset == 0}\n{ts}No{/ts} {$taxTerm}: {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n--------------------------------------------------------------------------------------------------\n{/if}\n\n{if $totalTaxAmount}\n{ts}Total Tax Amount{/ts}: {$totalTaxAmount|crmMoney:$currency}\n{/if}\n\n{ts}Amount{/ts}: {$formValues.total_amount|crmMoney}\n{if !empty($receive_date)}\n{ts}Date Received{/ts}: {$receive_date|truncate:10:\'\'|crmDate}\n{/if}\n{if !empty($formValues.paidBy)}\n{ts}Paid By{/ts}: {$formValues.paidBy}\n{if !empty($formValues.check_number)}\n{ts}Check Number{/ts}: {$formValues.check_number}\n{/if}\n{/if}\n{/if}\n{/if}\n\n{if !empty($isPrimary) }\n{if !empty($billingName)}\n\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n{/if}\n\n{if !empty($credit_card_type)}\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{/if}\n\n{if !empty($customValues)}\n===========================================================\n{ts}Membership Options{/ts}\n\n===========================================================\n{foreach from=$customValues item=value key=customName}\n {$customName} : {$value}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n        \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n  <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"/>\n  <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n  <table id=\"crm-event_receipt\"\n         style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n    <!-- BEGIN HEADER -->\n    <!-- You can add table row(s) here with logo or other header elements -->\n    <!-- END HEADER -->\n\n    <!-- BEGIN CONTENT -->\n\n    <tr>\n      <td>\n        {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n        {if $receipt_text}\n          <p>{$receipt_text|htmlize}</p>\n          <p>{ts}Thank you for this contribution.{/ts}</p>\n        {/if}\n      </td>\n    </tr>\n    <tr>\n      <td>\n        <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n          {if empty($lineItem)}\n            <tr>\n              <th {$headerStyle}>\n                {ts}Membership Information{/ts}\n              </th>\n            </tr>\n            <tr>\n              <td {$labelStyle}>\n                {ts}Membership Type{/ts}\n              </td>\n              <td {$valueStyle}>\n                {$membership_name}\n              </td>\n            </tr>\n          {/if}\n          {if empty($cancelled)}\n            {if empty($lineItem)}\n              <tr>\n                <td {$labelStyle}>\n                  {ts}Membership Start Date{/ts}\n                </td>\n                <td {$valueStyle}>\n                  {$mem_start_date}\n                </td>\n              </tr>\n              <tr>\n                <td {$labelStyle}>\n                  {ts}Membership End Date{/ts}\n                </td>\n                <td {$valueStyle}>\n                  {$mem_end_date}\n                </td>\n              </tr>\n            {/if}\n            {if $formValues.total_amount OR $formValues.total_amount eq 0 }\n              <tr>\n                <th {$headerStyle}>\n                  {ts}Membership Fee{/ts}\n                </th>\n              </tr>\n              {if !empty($formValues.contributionType_name)}\n                <tr>\n                  <td {$labelStyle}>\n                    {ts}Financial Type{/ts}\n                  </td>\n                  <td {$valueStyle}>\n                    {$formValues.contributionType_name}\n                  </td>\n                </tr>\n              {/if}\n\n              {if !empty($lineItem)}\n                {foreach from=$lineItem item=value key=priceset}\n                  <tr>\n                    <td colspan=\"2\" {$valueStyle}>\n                      <table>\n                        <tr>\n                          <th>{ts}Item{/ts}</th>\n                          <th>{ts}Fee{/ts}</th>\n                          {if !empty($dataArray)}\n                            <th>{ts}SubTotal{/ts}</th>\n                            <th>{ts}Tax Rate{/ts}</th>\n                            <th>{ts}Tax Amount{/ts}</th>\n                            <th>{ts}Total{/ts}</th>\n                          {/if}\n                          <th>{ts}Membership Start Date{/ts}</th>\n                          <th>{ts}Membership End Date{/ts}</th>\n                        </tr>\n                        {foreach from=$value item=line}\n                          <tr>\n                            <td>\n                              {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}\n                                <div>{$line.description|truncate:30:\"...\"}</div>{/if}\n                            </td>\n                            <td>\n                              {$line.line_total|crmMoney}\n                            </td>\n                            {if !empty($dataArray)}\n                              <td>\n                                {$line.unit_price*$line.qty|crmMoney}\n                              </td>\n                              {if $line.tax_rate || $line.tax_amount != \"\"}\n                                <td>\n                                  {$line.tax_rate|string_format:\"%.2f\"}%\n                                </td>\n                                <td>\n                                  {$line.tax_amount|crmMoney}\n                                </td>\n                              {else}\n                                <td></td>\n                                <td></td>\n                              {/if}\n                              <td>\n                                {$line.line_total+$line.tax_amount|crmMoney}\n                              </td>\n                            {/if}\n                            <td>\n                              {$line.start_date}\n                            </td>\n                            <td>\n                              {$line.end_date}\n                            </td>\n                          </tr>\n                        {/foreach}\n                      </table>\n                    </td>\n                  </tr>\n                {/foreach}\n                {if !empty($dataArray)}\n                  {if $formValues.total_amount and $totalTaxAmount}\n                  <tr>\n                    <td {$labelStyle}>\n                      {ts}Amount Before Tax:{/ts}\n                    </td>\n                    <td {$valueStyle}>\n                      {$formValues.total_amount-$totalTaxAmount|crmMoney}\n                    </td>\n                  </tr>\n                  {/if}\n                  {foreach from=$dataArray item=value key=priceset}\n                    <tr>\n                      {if $priceset}\n                        <td>&nbsp;{$taxTerm} {$priceset|string_format:\"%.2f\"}%</td>\n                        <td>&nbsp;{$value|crmMoney:$currency}</td>\n                      {elseif  $priceset == 0}\n                        <td>&nbsp;{ts}No{/ts} {$taxTerm}</td>\n                        <td>&nbsp;{$value|crmMoney:$currency}</td>\n                      {/if}\n                    </tr>\n                  {/foreach}\n                {/if}\n              {/if}\n              {if $totalTaxAmount}\n                <tr>\n                  <td {$labelStyle}>\n                    {ts}Total Tax Amount{/ts}\n                  </td>\n                  <td {$valueStyle}>\n                    {$totalTaxAmount|crmMoney:$currency}\n                  </td>\n                </tr>\n              {/if}\n              <tr>\n                <td {$labelStyle}>\n                  {ts}Amount{/ts}\n                </td>\n                <td {$valueStyle}>\n                  {$formValues.total_amount|crmMoney}\n                </td>\n              </tr>\n              {if !empty($receive_date)}\n                <tr>\n                  <td {$labelStyle}>\n                    {ts}Date Received{/ts}\n                  </td>\n                  <td {$valueStyle}>\n                    {$receive_date|truncate:10:\'\'|crmDate}\n                  </td>\n                </tr>\n              {/if}\n              {if !empty($formValues.paidBy)}\n                <tr>\n                  <td {$labelStyle}>\n                    {ts}Paid By{/ts}\n                  </td>\n                  <td {$valueStyle}>\n                    {$formValues.paidBy}\n                  </td>\n                </tr>\n                {if !empty($formValues.check_number)}\n                  <tr>\n                    <td {$labelStyle}>\n                      {ts}Check Number{/ts}\n                    </td>\n                    <td {$valueStyle}>\n                      {$formValues.check_number}\n                    </td>\n                  </tr>\n                {/if}\n              {/if}\n            {/if}\n          {/if}\n        </table>\n      </td>\n    </tr>\n\n    {if !empty($isPrimary)}\n      <tr>\n        <td>\n          <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n\n            {if !empty($billingName)}\n              <tr>\n                <th {$headerStyle}>\n                  {ts}Billing Name and Address{/ts}\n                </th>\n              </tr>\n              <tr>\n                <td {$labelStyle}>\n                  {$billingName}<br/>\n                  {$address}\n                </td>\n              </tr>\n            {/if}\n\n            {if !empty($credit_card_type)}\n              <tr>\n                <th {$headerStyle}>\n                  {ts}Credit Card Information{/ts}\n                </th>\n              </tr>\n              <tr>\n                <td {$valueStyle}>\n                  {$credit_card_type}<br/>\n                  {$credit_card_number}\n                </td>\n              </tr>\n              <tr>\n                <td {$labelStyle}>\n                  {ts}Expires{/ts}\n                </td>\n                <td {$valueStyle}>\n                  {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n                </td>\n              </tr>\n            {/if}\n\n          </table>\n        </td>\n      </tr>\n    {/if}\n\n    {if !empty($customValues)}\n      <tr>\n        <td>\n          <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n            <tr>\n              <th {$headerStyle}>\n                {ts}Membership Options{/ts}\n              </th>\n            </tr>\n            {foreach from=$customValues item=value key=customName}\n              <tr>\n                <td {$labelStyle}>\n                  {$customName}\n                </td>\n                <td {$valueStyle}>\n                  {$value}\n                </td>\n              </tr>\n            {/foreach}\n          </table>\n        </td>\n      </tr>\n    {/if}\n\n  </table>\n\n</body>\n</html>\n',1,835,'membership_offline_receipt',0,1,0,NULL),
- (47,'Memberships - Receipt (on-line)','{if $is_pay_later}{ts}Invoice{/ts}{else}{ts}Receipt{/ts}{/if} - {$title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n{if !empty($receipt_text)}\n{$receipt_text}\n{/if}\n{if $is_pay_later}\n\n===========================================================\n{$pay_later_receipt}\n===========================================================\n{/if}\n\n{if $membership_assign && !$useForMember}\n===========================================================\n{ts}Membership Information{/ts}\n\n===========================================================\n{ts}Membership Type{/ts}: {$membership_name}\n{if $mem_start_date}{ts}Membership Start Date{/ts}: {$mem_start_date|crmDate}\n{/if}\n{if $mem_end_date}{ts}Membership End Date{/ts}: {$mem_end_date|crmDate}\n{/if}\n\n{/if}\n{if $amount}\n===========================================================\n{ts}Membership Fee{/ts}\n\n===========================================================\n{if !$useForMember && isset($membership_amount) && !empty($is_quick_config)}\n{ts 1=$membership_name}%1 Membership{/ts}: {$membership_amount|crmMoney}\n{if $amount && !$is_separate_payment }\n{ts}Contribution Amount{/ts}: {$amount|crmMoney}\n-------------------------------------------\n{ts}Total{/ts}: {$amount+$membership_amount|crmMoney}\n{/if}\n{elseif !$useForMember && !empty($lineItem) and !empty($priceSetID) & empty($is_quick_config)}\n{foreach from=$lineItem item=value key=priceset}\n---------------------------------------------------------\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {$ts_total|string_format:\"%10s\"}\n----------------------------------------------------------\n{foreach from=$value item=line}\n{$line.description|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney|string_format:\"%10s\"} {$line.line_total|crmMoney|string_format:\"%10s\"}\n{/foreach}\n{/foreach}\n\n{ts}Total Amount{/ts}: {$amount|crmMoney}\n{else}\n{if $useForMember && $lineItem && empty($is_quick_config)}\n{foreach from=$lineItem item=value key=priceset}\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_total}{ts}Fee{/ts}{/capture}\n{if !empty($dataArray)}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{/if}\n{capture assign=ts_start_date}{ts}Membership Start Date{/ts}{/capture}\n{capture assign=ts_end_date}{ts}Membership End Date{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_total|string_format:\"%10s\"} {if !empty($dataArray)} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate|string_format:\"%10s\"} {$ts_taxAmount|string_format:\"%10s\"} {$ts_total|string_format:\"%10s\"} {/if} {$ts_start_date|string_format:\"%20s\"} {$ts_end_date|string_format:\"%20s\"}\n--------------------------------------------------------------------------------------------------\n\n{foreach from=$value item=line}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.line_total|crmMoney|string_format:\"%10s\"}  {if !empty($dataArray)} {$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if $line.tax_rate || $line.tax_amount != \"\"}  {$line.tax_rate|string_format:\"%.2f\"} %  {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else}                  {/if}   {$line.line_total+$line.tax_amount|crmMoney|string_format:\"%10s\"} {/if} {$line.start_date|string_format:\"%20s\"} {$line.end_date|string_format:\"%20s\"}\n{/foreach}\n{/foreach}\n\n{if !empty($dataArray)}\n{ts}Amount before Tax{/ts}: {$amount-$totalTaxAmount|crmMoney:$currency}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset || $priceset == 0}\n{$taxTerm} {$priceset|string_format:\"%.2f\"}%: {$value|crmMoney:$currency}\n{else}\n{ts}No{/ts} {$taxTerm}: {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n--------------------------------------------------------------------------------------------------\n{/if}\n\n{if $totalTaxAmount}\n{ts}Total Tax Amount{/ts}: {$totalTaxAmount|crmMoney:$currency}\n{/if}\n\n{ts}Amount{/ts}: {$amount|crmMoney} {if isset($amount_level) } - {$amount_level} {/if}\n{/if}\n{elseif isset($membership_amount)}\n===========================================================\n{ts}Membership Fee{/ts}\n\n===========================================================\n{ts 1=$membership_name}%1 Membership{/ts}: {$membership_amount|crmMoney}\n{/if}\n\n{if !empty($receive_date)}\n\n{ts}Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if !empty($is_monetary) and !empty($trxn_id)}\n{ts}Transaction #{/ts}: {$trxn_id}\n\n{/if}\n{if !empty($membership_trx_id)}\n{ts}Membership Transaction #{/ts}: {$membership_trx_id}\n\n{/if}\n{if !empty($is_recur)}\n{ts}This membership will be renewed automatically.{/ts}\n{if $cancelSubscriptionUrl}\n\n{ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by visiting this web page: %1.{/ts}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n\n{ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n{/if}\n{/if}\n\n{if $honor_block_is_active }\n===========================================================\n{$soft_credit_type}\n===========================================================\n{foreach from=$honoreeProfile item=value key=label}\n{$label}: {$value}\n{/foreach}\n\n{/if}\n{if !empty($pcpBlock)}\n===========================================================\n{ts}Personal Campaign Page{/ts}\n\n===========================================================\n{ts}Display In Honor Roll{/ts}: {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n\n{if $pcp_roll_nickname}{ts}Nickname{/ts}: {$pcp_roll_nickname}{/if}\n\n{if $pcp_personal_note}{ts}Personal Note{/ts}: {$pcp_personal_note}{/if}\n\n{/if}\n{if !empty($onBehalfProfile)}\n===========================================================\n{ts}On Behalf Of{/ts}\n\n===========================================================\n{foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n{$onBehalfName}: {$onBehalfValue}\n{/foreach}\n{/if}\n\n{if !empty($billingName)}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n{elseif !empty($email)}\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$email}\n{/if} {* End billingName or email *}\n{if !empty($credit_card_type)}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n\n{if !empty($selectPremium)}\n===========================================================\n{ts}Premium Information{/ts}\n\n===========================================================\n{$product_name}\n{if $option}\n{ts}Option{/ts}: {$option}\n{/if}\n{if $sku}\n{ts}SKU{/ts}: {$sku}\n{/if}\n{if $start_date}\n{ts}Start Date{/ts}: {$start_date|crmDate}\n{/if}\n{if $end_date}\n{ts}End Date{/ts}: {$end_date|crmDate}\n{/if}\n{if !empty($contact_email) OR !empty($contact_phone)}\n\n{ts}For information about this premium, contact:{/ts}\n\n{if !empty($contact_email)}\n  {$contact_email}\n{/if}\n{if !empty($contact_phone)}\n  {$contact_phone}\n{/if}\n{/if}\n{if !empty($is_deductible) AND !empty($price)}\n\n{ts 1=$price|crmMoney}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}{/if}\n{/if}\n\n{if !empty($customPre)}\n===========================================================\n{$customPre_grouptitle}\n\n===========================================================\n{foreach from=$customPre item=customValue key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/if}\n\n\n{if !empty($customPost)}\n===========================================================\n{$customPost_grouptitle}\n\n===========================================================\n{foreach from=$customPost item=customValue key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n     {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    {if !empty($receipt_text)}\n     <p>{$receipt_text|htmlize}</p>\n    {/if}\n\n    {if $is_pay_later}\n     <p>{$pay_later_receipt}</p> {* FIXME: this might be text rather than HTML *}\n    {/if}\n\n   </td>\n  </tr>\n  </table>\n  <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n\n     {if $membership_assign && !$useForMember}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Membership Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Membership Type{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$membership_name}\n       </td>\n      </tr>\n      {if $mem_start_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Membership Start Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$mem_start_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if $mem_end_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Membership End Date{/ts}\n        </td>\n        <td {$valueStyle}>\n          {$mem_end_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n     {/if}\n\n\n     {if $amount}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Membership Fee{/ts}\n       </th>\n      </tr>\n\n      {if !$useForMember and isset($membership_amount) and !empty($is_quick_config)}\n\n       <tr>\n        <td {$labelStyle}>\n         {ts 1=$membership_name}%1 Membership{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$membership_amount|crmMoney}\n        </td>\n       </tr>\n       {if $amount && !$is_separate_payment }\n         <tr>\n          <td {$labelStyle}>\n           {ts}Contribution Amount{/ts}\n          </td>\n          <td {$valueStyle}>\n           {$amount|crmMoney}\n          </td>\n         </tr>\n         <tr>\n           <td {$labelStyle}>\n           {ts}Total{/ts}\n            </td>\n            <td {$valueStyle}>\n            {$amount+$membership_amount|crmMoney}\n           </td>\n         </tr>\n       {/if}\n\n      {elseif empty($useForMember) && !empty($lineItem) and $priceSetID and empty($is_quick_config)}\n\n       {foreach from=$lineItem item=value key=priceset}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          <table>\n           <tr>\n            <th>{ts}Item{/ts}</th>\n            <th>{ts}Qty{/ts}</th>\n            <th>{ts}Each{/ts}</th>\n            <th>{ts}Total{/ts}</th>\n           </tr>\n           {foreach from=$value item=line}\n            <tr>\n             <td>\n              {$line.description|truncate:30:\"...\"}\n             </td>\n             <td>\n              {$line.qty}\n             </td>\n             <td>\n              {$line.unit_price|crmMoney}\n             </td>\n             <td>\n              {$line.line_total|crmMoney}\n             </td>\n            </tr>\n           {/foreach}\n          </table>\n         </td>\n        </tr>\n       {/foreach}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Total Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$amount|crmMoney}\n        </td>\n       </tr>\n\n      {else}\n       {if $useForMember && $lineItem and empty($is_quick_config)}\n       {foreach from=$lineItem item=value key=priceset}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          <table>\n           <tr>\n            <th>{ts}Item{/ts}</th>\n            <th>{ts}Fee{/ts}</th>\n            {if !empty($dataArray)}\n              <th>{ts}SubTotal{/ts}</th>\n              <th>{ts}Tax Rate{/ts}</th>\n              <th>{ts}Tax Amount{/ts}</th>\n              <th>{ts}Total{/ts}</th>\n            {/if}\n      <th>{ts}Membership Start Date{/ts}</th>\n      <th>{ts}Membership End Date{/ts}</th>\n           </tr>\n           {foreach from=$value item=line}\n            <tr>\n             <td>\n             {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:\"...\"}</div>{/if}\n             </td>\n             <td>\n              {$line.line_total|crmMoney}\n             </td>\n             {if !empty($dataArray)}\n              <td>\n               {$line.unit_price*$line.qty|crmMoney}\n              </td>\n              {if ($line.tax_rate || $line.tax_amount != \"\")}\n               <td>\n                {$line.tax_rate|string_format:\"%.2f\"}%\n               </td>\n               <td>\n                {$line.tax_amount|crmMoney}\n               </td>\n              {else}\n               <td></td>\n               <td></td>\n              {/if}\n              <td>\n               {$line.line_total+$line.tax_amount|crmMoney}\n              </td>\n             {/if}\n             <td>\n              {$line.start_date}\n             </td>\n       <td>\n              {$line.end_date}\n             </td>\n            </tr>\n           {/foreach}\n          </table>\n         </td>\n        </tr>\n       {/foreach}\n       {if !empty($dataArray)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Amount Before Tax:{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$amount-$totalTaxAmount|crmMoney}\n         </td>\n        </tr>\n        {foreach from=$dataArray item=value key=priceset}\n         <tr>\n         {if $priceset || $priceset == 0}\n           <td>&nbsp;{$taxTerm} {$priceset|string_format:\"%.2f\"}%</td>\n           <td>&nbsp;{$value|crmMoney:$currency}</td>\n         {else}\n           <td>&nbsp;{ts}NO{/ts} {$taxTerm}</td>\n           <td>&nbsp;{$value|crmMoney:$currency}</td>\n         {/if}\n         </tr>\n        {/foreach}\n       {/if}\n       {/if}\n       {if $totalTaxAmount}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Total Tax Amount{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$totalTaxAmount|crmMoney:$currency}\n         </td>\n        </tr>\n       {/if}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$amount|crmMoney} {if isset($amount_level)} - {$amount_level}{/if}\n        </td>\n       </tr>\n\n      {/if}\n\n\n     {elseif isset($membership_amount)}\n\n\n      <tr>\n       <th {$headerStyle}>\n        {ts}Membership Fee{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts 1=$membership_name}%1 Membership{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$membership_amount|crmMoney}\n       </td>\n      </tr>\n\n\n     {/if}\n\n     {if !empty($receive_date)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$receive_date|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($is_monetary) and !empty($trxn_id)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Transaction #{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$trxn_id}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($membership_trx_id)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Membership Transaction #{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$membership_trx_id}\n       </td>\n      </tr>\n     {/if}\n     {if !empty($is_recur)}\n       <tr>\n        <td colspan=\"2\" {$labelStyle}>\n         {ts}This membership will be renewed automatically.{/ts}\n         {if $cancelSubscriptionUrl}\n           {ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by <a href=\"%1\">visiting this web page</a>.{/ts}\n         {/if}\n        </td>\n       </tr>\n       {if $updateSubscriptionBillingUrl}\n         <tr>\n          <td colspan=\"2\" {$labelStyle}>\n           {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n          </td>\n         </tr>\n       {/if}\n     {/if}\n\n     {if $honor_block_is_active}\n      <tr>\n       <th {$headerStyle}>\n        {$soft_credit_type}\n       </th>\n      </tr>\n      {foreach from=$honoreeProfile item=value key=label}\n        <tr>\n         <td {$labelStyle}>\n          {$label}\n         </td>\n         <td {$valueStyle}>\n          {$value}\n         </td>\n        </tr>\n      {/foreach}\n     {/if}\n\n     {if !empty($pcpBlock)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Personal Campaign Page{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Display In Honor Roll{/ts}\n       </td>\n       <td {$valueStyle}>\n        {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n       </td>\n      </tr>\n      {if $pcp_roll_nickname}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Nickname{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$pcp_roll_nickname}\n        </td>\n       </tr>\n      {/if}\n      {if $pcp_personal_note}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Personal Note{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$pcp_personal_note}\n        </td>\n       </tr>\n      {/if}\n     {/if}\n\n     {if !empty($onBehalfProfile)}\n      <tr>\n       <th {$headerStyle}>\n        {$onBehalfProfile_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n        <tr>\n         <td {$labelStyle}>\n          {$onBehalfName}\n         </td>\n         <td {$valueStyle}>\n          {$onBehalfValue}\n         </td>\n        </tr>\n      {/foreach}\n     {/if}\n\n     {if !empty($billingName)}\n       <tr>\n         <th {$headerStyle}>\n           {ts}Billing Name and Address{/ts}\n         </th>\n      </tr>\n      <tr>\n        <td colspan=\"2\" {$valueStyle}>\n          {$billingName}<br />\n          {$address|nl2br}<br />\n          {$email}\n        </td>\n      </tr>\n    {elseif !empty($email)}\n      <tr>\n        <th {$headerStyle}>\n          {ts}Registered Email{/ts}\n        </th>\n      </tr>\n      <tr>\n        <td colspan=\"2\" {$valueStyle}>\n          {$email}\n        </td>\n      </tr>\n    {/if}\n\n     {if !empty($credit_card_type)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($selectPremium)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Premium Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {$product_name}\n       </td>\n      </tr>\n      {if $option}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Option{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$option}\n        </td>\n       </tr>\n      {/if}\n      {if $sku}\n       <tr>\n        <td {$labelStyle}>\n         {ts}SKU{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$sku}\n        </td>\n       </tr>\n      {/if}\n      {if $start_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Start Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$start_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if $end_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}End Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$end_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if !empty($contact_email) OR !empty($contact_phone)}\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         <p>{ts}For information about this premium, contact:{/ts}</p>\n         {if !empty($contact_email)}\n          <p>{$contact_email}</p>\n         {/if}\n         {if !empty($contact_phone)}\n          <p>{$contact_phone}</p>\n         {/if}\n        </td>\n       </tr>\n      {/if}\n      {if !empty($is_deductible) AND !empty($price)}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          <p>{ts 1=$price|crmMoney}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}</p>\n         </td>\n        </tr>\n      {/if}\n     {/if}\n\n     {if !empty($customPre)}\n      <tr>\n       <th {$headerStyle}>\n        {$customPre_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPre item=customValue key=customName}\n       {if (!empty($trackingFields) and ! in_array($customName, $trackingFields)) or empty($trackingFields)}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$customValue}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if !empty($customPost)}\n      <tr>\n       <th {$headerStyle}>\n        {$customPost_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPost item=customValue key=customName}\n       {if (!empty($trackingFields) and ! in_array($customName, $trackingFields)) or empty($trackingFields)}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$customValue}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n  </table>\n\n</body>\n</html>\n',1,836,'membership_online_receipt',1,0,0,NULL),
- (48,'Memberships - Receipt (on-line)','{if $is_pay_later}{ts}Invoice{/ts}{else}{ts}Receipt{/ts}{/if} - {$title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n{if !empty($receipt_text)}\n{$receipt_text}\n{/if}\n{if $is_pay_later}\n\n===========================================================\n{$pay_later_receipt}\n===========================================================\n{/if}\n\n{if $membership_assign && !$useForMember}\n===========================================================\n{ts}Membership Information{/ts}\n\n===========================================================\n{ts}Membership Type{/ts}: {$membership_name}\n{if $mem_start_date}{ts}Membership Start Date{/ts}: {$mem_start_date|crmDate}\n{/if}\n{if $mem_end_date}{ts}Membership End Date{/ts}: {$mem_end_date|crmDate}\n{/if}\n\n{/if}\n{if $amount}\n===========================================================\n{ts}Membership Fee{/ts}\n\n===========================================================\n{if !$useForMember && isset($membership_amount) && !empty($is_quick_config)}\n{ts 1=$membership_name}%1 Membership{/ts}: {$membership_amount|crmMoney}\n{if $amount && !$is_separate_payment }\n{ts}Contribution Amount{/ts}: {$amount|crmMoney}\n-------------------------------------------\n{ts}Total{/ts}: {$amount+$membership_amount|crmMoney}\n{/if}\n{elseif !$useForMember && !empty($lineItem) and !empty($priceSetID) & empty($is_quick_config)}\n{foreach from=$lineItem item=value key=priceset}\n---------------------------------------------------------\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {$ts_total|string_format:\"%10s\"}\n----------------------------------------------------------\n{foreach from=$value item=line}\n{$line.description|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney|string_format:\"%10s\"} {$line.line_total|crmMoney|string_format:\"%10s\"}\n{/foreach}\n{/foreach}\n\n{ts}Total Amount{/ts}: {$amount|crmMoney}\n{else}\n{if $useForMember && $lineItem && empty($is_quick_config)}\n{foreach from=$lineItem item=value key=priceset}\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_total}{ts}Fee{/ts}{/capture}\n{if !empty($dataArray)}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{/if}\n{capture assign=ts_start_date}{ts}Membership Start Date{/ts}{/capture}\n{capture assign=ts_end_date}{ts}Membership End Date{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_total|string_format:\"%10s\"} {if !empty($dataArray)} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate|string_format:\"%10s\"} {$ts_taxAmount|string_format:\"%10s\"} {$ts_total|string_format:\"%10s\"} {/if} {$ts_start_date|string_format:\"%20s\"} {$ts_end_date|string_format:\"%20s\"}\n--------------------------------------------------------------------------------------------------\n\n{foreach from=$value item=line}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.line_total|crmMoney|string_format:\"%10s\"}  {if !empty($dataArray)} {$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if $line.tax_rate || $line.tax_amount != \"\"}  {$line.tax_rate|string_format:\"%.2f\"} %  {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else}                  {/if}   {$line.line_total+$line.tax_amount|crmMoney|string_format:\"%10s\"} {/if} {$line.start_date|string_format:\"%20s\"} {$line.end_date|string_format:\"%20s\"}\n{/foreach}\n{/foreach}\n\n{if !empty($dataArray)}\n{ts}Amount before Tax{/ts}: {$amount-$totalTaxAmount|crmMoney:$currency}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset || $priceset == 0}\n{$taxTerm} {$priceset|string_format:\"%.2f\"}%: {$value|crmMoney:$currency}\n{else}\n{ts}No{/ts} {$taxTerm}: {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n--------------------------------------------------------------------------------------------------\n{/if}\n\n{if $totalTaxAmount}\n{ts}Total Tax Amount{/ts}: {$totalTaxAmount|crmMoney:$currency}\n{/if}\n\n{ts}Amount{/ts}: {$amount|crmMoney} {if isset($amount_level) } - {$amount_level} {/if}\n{/if}\n{elseif isset($membership_amount)}\n===========================================================\n{ts}Membership Fee{/ts}\n\n===========================================================\n{ts 1=$membership_name}%1 Membership{/ts}: {$membership_amount|crmMoney}\n{/if}\n\n{if !empty($receive_date)}\n\n{ts}Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if !empty($is_monetary) and !empty($trxn_id)}\n{ts}Transaction #{/ts}: {$trxn_id}\n\n{/if}\n{if !empty($membership_trx_id)}\n{ts}Membership Transaction #{/ts}: {$membership_trx_id}\n\n{/if}\n{if !empty($is_recur)}\n{ts}This membership will be renewed automatically.{/ts}\n{if $cancelSubscriptionUrl}\n\n{ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by visiting this web page: %1.{/ts}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n\n{ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n{/if}\n{/if}\n\n{if $honor_block_is_active }\n===========================================================\n{$soft_credit_type}\n===========================================================\n{foreach from=$honoreeProfile item=value key=label}\n{$label}: {$value}\n{/foreach}\n\n{/if}\n{if !empty($pcpBlock)}\n===========================================================\n{ts}Personal Campaign Page{/ts}\n\n===========================================================\n{ts}Display In Honor Roll{/ts}: {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n\n{if $pcp_roll_nickname}{ts}Nickname{/ts}: {$pcp_roll_nickname}{/if}\n\n{if $pcp_personal_note}{ts}Personal Note{/ts}: {$pcp_personal_note}{/if}\n\n{/if}\n{if !empty($onBehalfProfile)}\n===========================================================\n{ts}On Behalf Of{/ts}\n\n===========================================================\n{foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n{$onBehalfName}: {$onBehalfValue}\n{/foreach}\n{/if}\n\n{if !empty($billingName)}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n{elseif !empty($email)}\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$email}\n{/if} {* End billingName or email *}\n{if !empty($credit_card_type)}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n\n{if !empty($selectPremium)}\n===========================================================\n{ts}Premium Information{/ts}\n\n===========================================================\n{$product_name}\n{if $option}\n{ts}Option{/ts}: {$option}\n{/if}\n{if $sku}\n{ts}SKU{/ts}: {$sku}\n{/if}\n{if $start_date}\n{ts}Start Date{/ts}: {$start_date|crmDate}\n{/if}\n{if $end_date}\n{ts}End Date{/ts}: {$end_date|crmDate}\n{/if}\n{if !empty($contact_email) OR !empty($contact_phone)}\n\n{ts}For information about this premium, contact:{/ts}\n\n{if !empty($contact_email)}\n  {$contact_email}\n{/if}\n{if !empty($contact_phone)}\n  {$contact_phone}\n{/if}\n{/if}\n{if !empty($is_deductible) AND !empty($price)}\n\n{ts 1=$price|crmMoney}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}{/if}\n{/if}\n\n{if !empty($customPre)}\n===========================================================\n{$customPre_grouptitle}\n\n===========================================================\n{foreach from=$customPre item=customValue key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/if}\n\n\n{if !empty($customPost)}\n===========================================================\n{$customPost_grouptitle}\n\n===========================================================\n{foreach from=$customPost item=customValue key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n     {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    {if !empty($receipt_text)}\n     <p>{$receipt_text|htmlize}</p>\n    {/if}\n\n    {if $is_pay_later}\n     <p>{$pay_later_receipt}</p> {* FIXME: this might be text rather than HTML *}\n    {/if}\n\n   </td>\n  </tr>\n  </table>\n  <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n\n     {if $membership_assign && !$useForMember}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Membership Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Membership Type{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$membership_name}\n       </td>\n      </tr>\n      {if $mem_start_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Membership Start Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$mem_start_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if $mem_end_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Membership End Date{/ts}\n        </td>\n        <td {$valueStyle}>\n          {$mem_end_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n     {/if}\n\n\n     {if $amount}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Membership Fee{/ts}\n       </th>\n      </tr>\n\n      {if !$useForMember and isset($membership_amount) and !empty($is_quick_config)}\n\n       <tr>\n        <td {$labelStyle}>\n         {ts 1=$membership_name}%1 Membership{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$membership_amount|crmMoney}\n        </td>\n       </tr>\n       {if $amount && !$is_separate_payment }\n         <tr>\n          <td {$labelStyle}>\n           {ts}Contribution Amount{/ts}\n          </td>\n          <td {$valueStyle}>\n           {$amount|crmMoney}\n          </td>\n         </tr>\n         <tr>\n           <td {$labelStyle}>\n           {ts}Total{/ts}\n            </td>\n            <td {$valueStyle}>\n            {$amount+$membership_amount|crmMoney}\n           </td>\n         </tr>\n       {/if}\n\n      {elseif empty($useForMember) && !empty($lineItem) and $priceSetID and empty($is_quick_config)}\n\n       {foreach from=$lineItem item=value key=priceset}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          <table>\n           <tr>\n            <th>{ts}Item{/ts}</th>\n            <th>{ts}Qty{/ts}</th>\n            <th>{ts}Each{/ts}</th>\n            <th>{ts}Total{/ts}</th>\n           </tr>\n           {foreach from=$value item=line}\n            <tr>\n             <td>\n              {$line.description|truncate:30:\"...\"}\n             </td>\n             <td>\n              {$line.qty}\n             </td>\n             <td>\n              {$line.unit_price|crmMoney}\n             </td>\n             <td>\n              {$line.line_total|crmMoney}\n             </td>\n            </tr>\n           {/foreach}\n          </table>\n         </td>\n        </tr>\n       {/foreach}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Total Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$amount|crmMoney}\n        </td>\n       </tr>\n\n      {else}\n       {if $useForMember && $lineItem and empty($is_quick_config)}\n       {foreach from=$lineItem item=value key=priceset}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          <table>\n           <tr>\n            <th>{ts}Item{/ts}</th>\n            <th>{ts}Fee{/ts}</th>\n            {if !empty($dataArray)}\n              <th>{ts}SubTotal{/ts}</th>\n              <th>{ts}Tax Rate{/ts}</th>\n              <th>{ts}Tax Amount{/ts}</th>\n              <th>{ts}Total{/ts}</th>\n            {/if}\n      <th>{ts}Membership Start Date{/ts}</th>\n      <th>{ts}Membership End Date{/ts}</th>\n           </tr>\n           {foreach from=$value item=line}\n            <tr>\n             <td>\n             {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:\"...\"}</div>{/if}\n             </td>\n             <td>\n              {$line.line_total|crmMoney}\n             </td>\n             {if !empty($dataArray)}\n              <td>\n               {$line.unit_price*$line.qty|crmMoney}\n              </td>\n              {if ($line.tax_rate || $line.tax_amount != \"\")}\n               <td>\n                {$line.tax_rate|string_format:\"%.2f\"}%\n               </td>\n               <td>\n                {$line.tax_amount|crmMoney}\n               </td>\n              {else}\n               <td></td>\n               <td></td>\n              {/if}\n              <td>\n               {$line.line_total+$line.tax_amount|crmMoney}\n              </td>\n             {/if}\n             <td>\n              {$line.start_date}\n             </td>\n       <td>\n              {$line.end_date}\n             </td>\n            </tr>\n           {/foreach}\n          </table>\n         </td>\n        </tr>\n       {/foreach}\n       {if !empty($dataArray)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Amount Before Tax:{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$amount-$totalTaxAmount|crmMoney}\n         </td>\n        </tr>\n        {foreach from=$dataArray item=value key=priceset}\n         <tr>\n         {if $priceset || $priceset == 0}\n           <td>&nbsp;{$taxTerm} {$priceset|string_format:\"%.2f\"}%</td>\n           <td>&nbsp;{$value|crmMoney:$currency}</td>\n         {else}\n           <td>&nbsp;{ts}NO{/ts} {$taxTerm}</td>\n           <td>&nbsp;{$value|crmMoney:$currency}</td>\n         {/if}\n         </tr>\n        {/foreach}\n       {/if}\n       {/if}\n       {if $totalTaxAmount}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Total Tax Amount{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$totalTaxAmount|crmMoney:$currency}\n         </td>\n        </tr>\n       {/if}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$amount|crmMoney} {if isset($amount_level)} - {$amount_level}{/if}\n        </td>\n       </tr>\n\n      {/if}\n\n\n     {elseif isset($membership_amount)}\n\n\n      <tr>\n       <th {$headerStyle}>\n        {ts}Membership Fee{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts 1=$membership_name}%1 Membership{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$membership_amount|crmMoney}\n       </td>\n      </tr>\n\n\n     {/if}\n\n     {if !empty($receive_date)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$receive_date|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($is_monetary) and !empty($trxn_id)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Transaction #{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$trxn_id}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($membership_trx_id)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Membership Transaction #{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$membership_trx_id}\n       </td>\n      </tr>\n     {/if}\n     {if !empty($is_recur)}\n       <tr>\n        <td colspan=\"2\" {$labelStyle}>\n         {ts}This membership will be renewed automatically.{/ts}\n         {if $cancelSubscriptionUrl}\n           {ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by <a href=\"%1\">visiting this web page</a>.{/ts}\n         {/if}\n        </td>\n       </tr>\n       {if $updateSubscriptionBillingUrl}\n         <tr>\n          <td colspan=\"2\" {$labelStyle}>\n           {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n          </td>\n         </tr>\n       {/if}\n     {/if}\n\n     {if $honor_block_is_active}\n      <tr>\n       <th {$headerStyle}>\n        {$soft_credit_type}\n       </th>\n      </tr>\n      {foreach from=$honoreeProfile item=value key=label}\n        <tr>\n         <td {$labelStyle}>\n          {$label}\n         </td>\n         <td {$valueStyle}>\n          {$value}\n         </td>\n        </tr>\n      {/foreach}\n     {/if}\n\n     {if !empty($pcpBlock)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Personal Campaign Page{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Display In Honor Roll{/ts}\n       </td>\n       <td {$valueStyle}>\n        {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n       </td>\n      </tr>\n      {if $pcp_roll_nickname}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Nickname{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$pcp_roll_nickname}\n        </td>\n       </tr>\n      {/if}\n      {if $pcp_personal_note}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Personal Note{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$pcp_personal_note}\n        </td>\n       </tr>\n      {/if}\n     {/if}\n\n     {if !empty($onBehalfProfile)}\n      <tr>\n       <th {$headerStyle}>\n        {$onBehalfProfile_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n        <tr>\n         <td {$labelStyle}>\n          {$onBehalfName}\n         </td>\n         <td {$valueStyle}>\n          {$onBehalfValue}\n         </td>\n        </tr>\n      {/foreach}\n     {/if}\n\n     {if !empty($billingName)}\n       <tr>\n         <th {$headerStyle}>\n           {ts}Billing Name and Address{/ts}\n         </th>\n      </tr>\n      <tr>\n        <td colspan=\"2\" {$valueStyle}>\n          {$billingName}<br />\n          {$address|nl2br}<br />\n          {$email}\n        </td>\n      </tr>\n    {elseif !empty($email)}\n      <tr>\n        <th {$headerStyle}>\n          {ts}Registered Email{/ts}\n        </th>\n      </tr>\n      <tr>\n        <td colspan=\"2\" {$valueStyle}>\n          {$email}\n        </td>\n      </tr>\n    {/if}\n\n     {if !empty($credit_card_type)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($selectPremium)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Premium Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {$product_name}\n       </td>\n      </tr>\n      {if $option}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Option{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$option}\n        </td>\n       </tr>\n      {/if}\n      {if $sku}\n       <tr>\n        <td {$labelStyle}>\n         {ts}SKU{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$sku}\n        </td>\n       </tr>\n      {/if}\n      {if $start_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Start Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$start_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if $end_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}End Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$end_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if !empty($contact_email) OR !empty($contact_phone)}\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         <p>{ts}For information about this premium, contact:{/ts}</p>\n         {if !empty($contact_email)}\n          <p>{$contact_email}</p>\n         {/if}\n         {if !empty($contact_phone)}\n          <p>{$contact_phone}</p>\n         {/if}\n        </td>\n       </tr>\n      {/if}\n      {if !empty($is_deductible) AND !empty($price)}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          <p>{ts 1=$price|crmMoney}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}</p>\n         </td>\n        </tr>\n      {/if}\n     {/if}\n\n     {if !empty($customPre)}\n      <tr>\n       <th {$headerStyle}>\n        {$customPre_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPre item=customValue key=customName}\n       {if (!empty($trackingFields) and ! in_array($customName, $trackingFields)) or empty($trackingFields)}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$customValue}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if !empty($customPost)}\n      <tr>\n       <th {$headerStyle}>\n        {$customPost_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPost item=customValue key=customName}\n       {if (!empty($trackingFields) and ! in_array($customName, $trackingFields)) or empty($trackingFields)}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$customValue}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n  </table>\n\n</body>\n</html>\n',1,836,'membership_online_receipt',0,1,0,NULL),
- (49,'Memberships - Auto-renew Cancellation Notification','{ts}Autorenew Membership Cancellation Notification{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$membershipType}The automatic renewal of your %1 membership has been cancelled as requested. This does not affect the status of your membership - you will receive a separate notification when your membership is up for renewal.{/ts}\n\n===========================================================\n{ts}Membership Information{/ts}\n\n===========================================================\n{ts}Membership Status{/ts}: {$membership_status}\n{if $mem_start_date}{ts}Membership Start Date{/ts}: {$mem_start_date|crmDate}\n{/if}\n{if $mem_end_date}{ts}Membership End Date{/ts}: {$mem_end_date|crmDate}\n{/if}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$membershipType}The automatic renewal of your %1 membership has been cancelled as requested. This does not affect the status of your membership - you will receive a separate notification when your membership is up for renewal.{/ts}</p>\n\n   </td>\n  </tr>\n </table>\n <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n\n      <tr>\n       <th {$headerStyle}>\n        {ts}Membership Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Membership Status{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$membership_status}\n       </td>\n      </tr>\n      {if $mem_start_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Membership Start Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$mem_start_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if $mem_end_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Membership End Date{/ts}\n        </td>\n        <td {$valueStyle}>\n          {$mem_end_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n\n </table>\n\n</body>\n</html>\n',1,837,'membership_autorenew_cancelled',1,0,0,NULL),
- (50,'Memberships - Auto-renew Cancellation Notification','{ts}Autorenew Membership Cancellation Notification{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$membershipType}The automatic renewal of your %1 membership has been cancelled as requested. This does not affect the status of your membership - you will receive a separate notification when your membership is up for renewal.{/ts}\n\n===========================================================\n{ts}Membership Information{/ts}\n\n===========================================================\n{ts}Membership Status{/ts}: {$membership_status}\n{if $mem_start_date}{ts}Membership Start Date{/ts}: {$mem_start_date|crmDate}\n{/if}\n{if $mem_end_date}{ts}Membership End Date{/ts}: {$mem_end_date|crmDate}\n{/if}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$membershipType}The automatic renewal of your %1 membership has been cancelled as requested. This does not affect the status of your membership - you will receive a separate notification when your membership is up for renewal.{/ts}</p>\n\n   </td>\n  </tr>\n </table>\n <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n\n      <tr>\n       <th {$headerStyle}>\n        {ts}Membership Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Membership Status{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$membership_status}\n       </td>\n      </tr>\n      {if $mem_start_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Membership Start Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$mem_start_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if $mem_end_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Membership End Date{/ts}\n        </td>\n        <td {$valueStyle}>\n          {$mem_end_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n\n </table>\n\n</body>\n</html>\n',1,837,'membership_autorenew_cancelled',0,1,0,NULL),
+ (45,'Memberships - Signup and Renewal Receipts (off-line)','{if $receiptType EQ \'membership signup\'}\n{ts}Membership Confirmation and Receipt{/ts}\n{elseif $receiptType EQ \'membership renewal\'}\n{ts}Membership Renewal Confirmation and Receipt{/ts}\n{/if} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{if $receipt_text}\n{$receipt_text}\n{else}{ts}Thank you for this contribution.{/ts}{/if}\n\n{if empty($lineItem)}\n===========================================================\n{ts}Membership Information{/ts}\n\n===========================================================\n{ts}Membership Type{/ts}: {$membership_name}\n{/if}\n{if empty($cancelled)}\n{if empty($lineItem)}\n{ts}Membership Start Date{/ts}: {$mem_start_date}\n{ts}Membership Expiration Date{/ts}: {$mem_end_date}\n{/if}\n\n{if $formValues.total_amount OR $formValues.total_amount eq 0 }\n===========================================================\n{ts}Membership Fee{/ts}\n\n===========================================================\n{if !empty($formValues.contributionType_name)}\n{ts}Financial Type{/ts}: {$formValues.contributionType_name}\n{/if}\n{if !empty($lineItem)}\n{foreach from=$lineItem item=value key=priceset}\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_total}{ts}Fee{/ts}{/capture}\n{if !empty($dataArray)}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{/if}\n{capture assign=ts_start_date}{ts}Membership Start Date{/ts}{/capture}\n{capture assign=ts_end_date}{ts}Membership Expiration Date{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_total|string_format:\"%10s\"} {if !empty($dataArray)} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate|string_format:\"%10s\"} {$ts_taxAmount|string_format:\"%10s\"} {$ts_total|string_format:\"%10s\"} {/if} {$ts_start_date|string_format:\"%20s\"} {$ts_end_date|string_format:\"%20s\"}\n--------------------------------------------------------------------------------------------------\n\n{foreach from=$value item=line}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.line_total|crmMoney|string_format:\"%10s\"}  {if !empty($dataArray)} {$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if $line.tax_rate || $line.tax_amount != \"\"}  {$line.tax_rate|string_format:\"%.2f\"} %  {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"}  {else}                  {/if}   {$line.line_total+$line.tax_amount|crmMoney|string_format:\"%10s\"} {/if} {$line.start_date|string_format:\"%20s\"} {$line.end_date|string_format:\"%20s\"}\n{/foreach}\n{/foreach}\n\n{if !empty($dataArray)}\n{ts}Amount before Tax{/ts}: {$formValues.total_amount-$totalTaxAmount|crmMoney:$currency}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset}\n{$taxTerm} {$priceset|string_format:\"%.2f\"} %: {$value|crmMoney:$currency}\n{elseif  $priceset == 0}\n{ts}No{/ts} {$taxTerm}: {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n--------------------------------------------------------------------------------------------------\n{/if}\n\n{if $totalTaxAmount}\n{ts}Total Tax Amount{/ts}: {$totalTaxAmount|crmMoney:$currency}\n{/if}\n\n{ts}Amount{/ts}: {$formValues.total_amount|crmMoney}\n{if !empty($receive_date)}\n{ts}Date Received{/ts}: {$receive_date|truncate:10:\'\'|crmDate}\n{/if}\n{if !empty($formValues.paidBy)}\n{ts}Paid By{/ts}: {$formValues.paidBy}\n{if !empty($formValues.check_number)}\n{ts}Check Number{/ts}: {$formValues.check_number}\n{/if}\n{/if}\n{/if}\n{/if}\n\n{if !empty($isPrimary) }\n{if !empty($billingName)}\n\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n{/if}\n\n{if !empty($credit_card_type)}\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{/if}\n\n{if !empty($customValues)}\n===========================================================\n{ts}Membership Options{/ts}\n\n===========================================================\n{foreach from=$customValues item=value key=customName}\n {$customName} : {$value}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n        \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n  <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"/>\n  <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n  <table id=\"crm-event_receipt\"\n         style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n    <!-- BEGIN HEADER -->\n    <!-- You can add table row(s) here with logo or other header elements -->\n    <!-- END HEADER -->\n\n    <!-- BEGIN CONTENT -->\n\n    <tr>\n      <td>\n        {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n        {if $receipt_text}\n          <p>{$receipt_text|htmlize}</p>\n          <p>{ts}Thank you for this contribution.{/ts}</p>\n        {/if}\n      </td>\n    </tr>\n    <tr>\n      <td>\n        <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n          {if empty($lineItem)}\n            <tr>\n              <th {$headerStyle}>\n                {ts}Membership Information{/ts}\n              </th>\n            </tr>\n            <tr>\n              <td {$labelStyle}>\n                {ts}Membership Type{/ts}\n              </td>\n              <td {$valueStyle}>\n                {$membership_name}\n              </td>\n            </tr>\n          {/if}\n          {if empty($cancelled)}\n            {if empty($lineItem)}\n              <tr>\n                <td {$labelStyle}>\n                  {ts}Membership Start Date{/ts}\n                </td>\n                <td {$valueStyle}>\n                  {$mem_start_date}\n                </td>\n              </tr>\n              <tr>\n                <td {$labelStyle}>\n                  {ts}Membership Expiration Date{/ts}\n                </td>\n                <td {$valueStyle}>\n                  {$mem_end_date}\n                </td>\n              </tr>\n            {/if}\n            {if $formValues.total_amount OR $formValues.total_amount eq 0 }\n              <tr>\n                <th {$headerStyle}>\n                  {ts}Membership Fee{/ts}\n                </th>\n              </tr>\n              {if !empty($formValues.contributionType_name)}\n                <tr>\n                  <td {$labelStyle}>\n                    {ts}Financial Type{/ts}\n                  </td>\n                  <td {$valueStyle}>\n                    {$formValues.contributionType_name}\n                  </td>\n                </tr>\n              {/if}\n\n              {if !empty($lineItem)}\n                {foreach from=$lineItem item=value key=priceset}\n                  <tr>\n                    <td colspan=\"2\" {$valueStyle}>\n                      <table>\n                        <tr>\n                          <th>{ts}Item{/ts}</th>\n                          <th>{ts}Fee{/ts}</th>\n                          {if !empty($dataArray)}\n                            <th>{ts}SubTotal{/ts}</th>\n                            <th>{ts}Tax Rate{/ts}</th>\n                            <th>{ts}Tax Amount{/ts}</th>\n                            <th>{ts}Total{/ts}</th>\n                          {/if}\n                          <th>{ts}Membership Start Date{/ts}</th>\n                          <th>{ts}Membership Expiration Date{/ts}</th>\n                        </tr>\n                        {foreach from=$value item=line}\n                          <tr>\n                            <td>\n                              {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}\n                                <div>{$line.description|truncate:30:\"...\"}</div>{/if}\n                            </td>\n                            <td>\n                              {$line.line_total|crmMoney}\n                            </td>\n                            {if !empty($dataArray)}\n                              <td>\n                                {$line.unit_price*$line.qty|crmMoney}\n                              </td>\n                              {if $line.tax_rate || $line.tax_amount != \"\"}\n                                <td>\n                                  {$line.tax_rate|string_format:\"%.2f\"}%\n                                </td>\n                                <td>\n                                  {$line.tax_amount|crmMoney}\n                                </td>\n                              {else}\n                                <td></td>\n                                <td></td>\n                              {/if}\n                              <td>\n                                {$line.line_total+$line.tax_amount|crmMoney}\n                              </td>\n                            {/if}\n                            <td>\n                              {$line.start_date}\n                            </td>\n                            <td>\n                              {$line.end_date}\n                            </td>\n                          </tr>\n                        {/foreach}\n                      </table>\n                    </td>\n                  </tr>\n                {/foreach}\n                {if !empty($dataArray)}\n                  {if $formValues.total_amount and $totalTaxAmount}\n                  <tr>\n                    <td {$labelStyle}>\n                      {ts}Amount Before Tax:{/ts}\n                    </td>\n                    <td {$valueStyle}>\n                      {$formValues.total_amount-$totalTaxAmount|crmMoney}\n                    </td>\n                  </tr>\n                  {/if}\n                  {foreach from=$dataArray item=value key=priceset}\n                    <tr>\n                      {if $priceset}\n                        <td>&nbsp;{$taxTerm} {$priceset|string_format:\"%.2f\"}%</td>\n                        <td>&nbsp;{$value|crmMoney:$currency}</td>\n                      {elseif  $priceset == 0}\n                        <td>&nbsp;{ts}No{/ts} {$taxTerm}</td>\n                        <td>&nbsp;{$value|crmMoney:$currency}</td>\n                      {/if}\n                    </tr>\n                  {/foreach}\n                {/if}\n              {/if}\n              {if $totalTaxAmount}\n                <tr>\n                  <td {$labelStyle}>\n                    {ts}Total Tax Amount{/ts}\n                  </td>\n                  <td {$valueStyle}>\n                    {$totalTaxAmount|crmMoney:$currency}\n                  </td>\n                </tr>\n              {/if}\n              <tr>\n                <td {$labelStyle}>\n                  {ts}Amount{/ts}\n                </td>\n                <td {$valueStyle}>\n                  {$formValues.total_amount|crmMoney}\n                </td>\n              </tr>\n              {if !empty($receive_date)}\n                <tr>\n                  <td {$labelStyle}>\n                    {ts}Date Received{/ts}\n                  </td>\n                  <td {$valueStyle}>\n                    {$receive_date|truncate:10:\'\'|crmDate}\n                  </td>\n                </tr>\n              {/if}\n              {if !empty($formValues.paidBy)}\n                <tr>\n                  <td {$labelStyle}>\n                    {ts}Paid By{/ts}\n                  </td>\n                  <td {$valueStyle}>\n                    {$formValues.paidBy}\n                  </td>\n                </tr>\n                {if !empty($formValues.check_number)}\n                  <tr>\n                    <td {$labelStyle}>\n                      {ts}Check Number{/ts}\n                    </td>\n                    <td {$valueStyle}>\n                      {$formValues.check_number}\n                    </td>\n                  </tr>\n                {/if}\n              {/if}\n            {/if}\n          {/if}\n        </table>\n      </td>\n    </tr>\n\n    {if !empty($isPrimary)}\n      <tr>\n        <td>\n          <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n\n            {if !empty($billingName)}\n              <tr>\n                <th {$headerStyle}>\n                  {ts}Billing Name and Address{/ts}\n                </th>\n              </tr>\n              <tr>\n                <td {$labelStyle}>\n                  {$billingName}<br/>\n                  {$address}\n                </td>\n              </tr>\n            {/if}\n\n            {if !empty($credit_card_type)}\n              <tr>\n                <th {$headerStyle}>\n                  {ts}Credit Card Information{/ts}\n                </th>\n              </tr>\n              <tr>\n                <td {$valueStyle}>\n                  {$credit_card_type}<br/>\n                  {$credit_card_number}\n                </td>\n              </tr>\n              <tr>\n                <td {$labelStyle}>\n                  {ts}Expires{/ts}\n                </td>\n                <td {$valueStyle}>\n                  {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n                </td>\n              </tr>\n            {/if}\n\n          </table>\n        </td>\n      </tr>\n    {/if}\n\n    {if !empty($customValues)}\n      <tr>\n        <td>\n          <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n            <tr>\n              <th {$headerStyle}>\n                {ts}Membership Options{/ts}\n              </th>\n            </tr>\n            {foreach from=$customValues item=value key=customName}\n              <tr>\n                <td {$labelStyle}>\n                  {$customName}\n                </td>\n                <td {$valueStyle}>\n                  {$value}\n                </td>\n              </tr>\n            {/foreach}\n          </table>\n        </td>\n      </tr>\n    {/if}\n\n  </table>\n\n</body>\n</html>\n',1,835,'membership_offline_receipt',1,0,0,NULL),
+ (46,'Memberships - Signup and Renewal Receipts (off-line)','{if $receiptType EQ \'membership signup\'}\n{ts}Membership Confirmation and Receipt{/ts}\n{elseif $receiptType EQ \'membership renewal\'}\n{ts}Membership Renewal Confirmation and Receipt{/ts}\n{/if} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{if $receipt_text}\n{$receipt_text}\n{else}{ts}Thank you for this contribution.{/ts}{/if}\n\n{if empty($lineItem)}\n===========================================================\n{ts}Membership Information{/ts}\n\n===========================================================\n{ts}Membership Type{/ts}: {$membership_name}\n{/if}\n{if empty($cancelled)}\n{if empty($lineItem)}\n{ts}Membership Start Date{/ts}: {$mem_start_date}\n{ts}Membership Expiration Date{/ts}: {$mem_end_date}\n{/if}\n\n{if $formValues.total_amount OR $formValues.total_amount eq 0 }\n===========================================================\n{ts}Membership Fee{/ts}\n\n===========================================================\n{if !empty($formValues.contributionType_name)}\n{ts}Financial Type{/ts}: {$formValues.contributionType_name}\n{/if}\n{if !empty($lineItem)}\n{foreach from=$lineItem item=value key=priceset}\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_total}{ts}Fee{/ts}{/capture}\n{if !empty($dataArray)}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{/if}\n{capture assign=ts_start_date}{ts}Membership Start Date{/ts}{/capture}\n{capture assign=ts_end_date}{ts}Membership Expiration Date{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_total|string_format:\"%10s\"} {if !empty($dataArray)} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate|string_format:\"%10s\"} {$ts_taxAmount|string_format:\"%10s\"} {$ts_total|string_format:\"%10s\"} {/if} {$ts_start_date|string_format:\"%20s\"} {$ts_end_date|string_format:\"%20s\"}\n--------------------------------------------------------------------------------------------------\n\n{foreach from=$value item=line}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.line_total|crmMoney|string_format:\"%10s\"}  {if !empty($dataArray)} {$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if $line.tax_rate || $line.tax_amount != \"\"}  {$line.tax_rate|string_format:\"%.2f\"} %  {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"}  {else}                  {/if}   {$line.line_total+$line.tax_amount|crmMoney|string_format:\"%10s\"} {/if} {$line.start_date|string_format:\"%20s\"} {$line.end_date|string_format:\"%20s\"}\n{/foreach}\n{/foreach}\n\n{if !empty($dataArray)}\n{ts}Amount before Tax{/ts}: {$formValues.total_amount-$totalTaxAmount|crmMoney:$currency}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset}\n{$taxTerm} {$priceset|string_format:\"%.2f\"} %: {$value|crmMoney:$currency}\n{elseif  $priceset == 0}\n{ts}No{/ts} {$taxTerm}: {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n--------------------------------------------------------------------------------------------------\n{/if}\n\n{if $totalTaxAmount}\n{ts}Total Tax Amount{/ts}: {$totalTaxAmount|crmMoney:$currency}\n{/if}\n\n{ts}Amount{/ts}: {$formValues.total_amount|crmMoney}\n{if !empty($receive_date)}\n{ts}Date Received{/ts}: {$receive_date|truncate:10:\'\'|crmDate}\n{/if}\n{if !empty($formValues.paidBy)}\n{ts}Paid By{/ts}: {$formValues.paidBy}\n{if !empty($formValues.check_number)}\n{ts}Check Number{/ts}: {$formValues.check_number}\n{/if}\n{/if}\n{/if}\n{/if}\n\n{if !empty($isPrimary) }\n{if !empty($billingName)}\n\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n{/if}\n\n{if !empty($credit_card_type)}\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{/if}\n\n{if !empty($customValues)}\n===========================================================\n{ts}Membership Options{/ts}\n\n===========================================================\n{foreach from=$customValues item=value key=customName}\n {$customName} : {$value}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n        \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n  <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"/>\n  <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n  <table id=\"crm-event_receipt\"\n         style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n    <!-- BEGIN HEADER -->\n    <!-- You can add table row(s) here with logo or other header elements -->\n    <!-- END HEADER -->\n\n    <!-- BEGIN CONTENT -->\n\n    <tr>\n      <td>\n        {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n        {if $receipt_text}\n          <p>{$receipt_text|htmlize}</p>\n          <p>{ts}Thank you for this contribution.{/ts}</p>\n        {/if}\n      </td>\n    </tr>\n    <tr>\n      <td>\n        <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n          {if empty($lineItem)}\n            <tr>\n              <th {$headerStyle}>\n                {ts}Membership Information{/ts}\n              </th>\n            </tr>\n            <tr>\n              <td {$labelStyle}>\n                {ts}Membership Type{/ts}\n              </td>\n              <td {$valueStyle}>\n                {$membership_name}\n              </td>\n            </tr>\n          {/if}\n          {if empty($cancelled)}\n            {if empty($lineItem)}\n              <tr>\n                <td {$labelStyle}>\n                  {ts}Membership Start Date{/ts}\n                </td>\n                <td {$valueStyle}>\n                  {$mem_start_date}\n                </td>\n              </tr>\n              <tr>\n                <td {$labelStyle}>\n                  {ts}Membership Expiration Date{/ts}\n                </td>\n                <td {$valueStyle}>\n                  {$mem_end_date}\n                </td>\n              </tr>\n            {/if}\n            {if $formValues.total_amount OR $formValues.total_amount eq 0 }\n              <tr>\n                <th {$headerStyle}>\n                  {ts}Membership Fee{/ts}\n                </th>\n              </tr>\n              {if !empty($formValues.contributionType_name)}\n                <tr>\n                  <td {$labelStyle}>\n                    {ts}Financial Type{/ts}\n                  </td>\n                  <td {$valueStyle}>\n                    {$formValues.contributionType_name}\n                  </td>\n                </tr>\n              {/if}\n\n              {if !empty($lineItem)}\n                {foreach from=$lineItem item=value key=priceset}\n                  <tr>\n                    <td colspan=\"2\" {$valueStyle}>\n                      <table>\n                        <tr>\n                          <th>{ts}Item{/ts}</th>\n                          <th>{ts}Fee{/ts}</th>\n                          {if !empty($dataArray)}\n                            <th>{ts}SubTotal{/ts}</th>\n                            <th>{ts}Tax Rate{/ts}</th>\n                            <th>{ts}Tax Amount{/ts}</th>\n                            <th>{ts}Total{/ts}</th>\n                          {/if}\n                          <th>{ts}Membership Start Date{/ts}</th>\n                          <th>{ts}Membership Expiration Date{/ts}</th>\n                        </tr>\n                        {foreach from=$value item=line}\n                          <tr>\n                            <td>\n                              {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}\n                                <div>{$line.description|truncate:30:\"...\"}</div>{/if}\n                            </td>\n                            <td>\n                              {$line.line_total|crmMoney}\n                            </td>\n                            {if !empty($dataArray)}\n                              <td>\n                                {$line.unit_price*$line.qty|crmMoney}\n                              </td>\n                              {if $line.tax_rate || $line.tax_amount != \"\"}\n                                <td>\n                                  {$line.tax_rate|string_format:\"%.2f\"}%\n                                </td>\n                                <td>\n                                  {$line.tax_amount|crmMoney}\n                                </td>\n                              {else}\n                                <td></td>\n                                <td></td>\n                              {/if}\n                              <td>\n                                {$line.line_total+$line.tax_amount|crmMoney}\n                              </td>\n                            {/if}\n                            <td>\n                              {$line.start_date}\n                            </td>\n                            <td>\n                              {$line.end_date}\n                            </td>\n                          </tr>\n                        {/foreach}\n                      </table>\n                    </td>\n                  </tr>\n                {/foreach}\n                {if !empty($dataArray)}\n                  {if $formValues.total_amount and $totalTaxAmount}\n                  <tr>\n                    <td {$labelStyle}>\n                      {ts}Amount Before Tax:{/ts}\n                    </td>\n                    <td {$valueStyle}>\n                      {$formValues.total_amount-$totalTaxAmount|crmMoney}\n                    </td>\n                  </tr>\n                  {/if}\n                  {foreach from=$dataArray item=value key=priceset}\n                    <tr>\n                      {if $priceset}\n                        <td>&nbsp;{$taxTerm} {$priceset|string_format:\"%.2f\"}%</td>\n                        <td>&nbsp;{$value|crmMoney:$currency}</td>\n                      {elseif  $priceset == 0}\n                        <td>&nbsp;{ts}No{/ts} {$taxTerm}</td>\n                        <td>&nbsp;{$value|crmMoney:$currency}</td>\n                      {/if}\n                    </tr>\n                  {/foreach}\n                {/if}\n              {/if}\n              {if $totalTaxAmount}\n                <tr>\n                  <td {$labelStyle}>\n                    {ts}Total Tax Amount{/ts}\n                  </td>\n                  <td {$valueStyle}>\n                    {$totalTaxAmount|crmMoney:$currency}\n                  </td>\n                </tr>\n              {/if}\n              <tr>\n                <td {$labelStyle}>\n                  {ts}Amount{/ts}\n                </td>\n                <td {$valueStyle}>\n                  {$formValues.total_amount|crmMoney}\n                </td>\n              </tr>\n              {if !empty($receive_date)}\n                <tr>\n                  <td {$labelStyle}>\n                    {ts}Date Received{/ts}\n                  </td>\n                  <td {$valueStyle}>\n                    {$receive_date|truncate:10:\'\'|crmDate}\n                  </td>\n                </tr>\n              {/if}\n              {if !empty($formValues.paidBy)}\n                <tr>\n                  <td {$labelStyle}>\n                    {ts}Paid By{/ts}\n                  </td>\n                  <td {$valueStyle}>\n                    {$formValues.paidBy}\n                  </td>\n                </tr>\n                {if !empty($formValues.check_number)}\n                  <tr>\n                    <td {$labelStyle}>\n                      {ts}Check Number{/ts}\n                    </td>\n                    <td {$valueStyle}>\n                      {$formValues.check_number}\n                    </td>\n                  </tr>\n                {/if}\n              {/if}\n            {/if}\n          {/if}\n        </table>\n      </td>\n    </tr>\n\n    {if !empty($isPrimary)}\n      <tr>\n        <td>\n          <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n\n            {if !empty($billingName)}\n              <tr>\n                <th {$headerStyle}>\n                  {ts}Billing Name and Address{/ts}\n                </th>\n              </tr>\n              <tr>\n                <td {$labelStyle}>\n                  {$billingName}<br/>\n                  {$address}\n                </td>\n              </tr>\n            {/if}\n\n            {if !empty($credit_card_type)}\n              <tr>\n                <th {$headerStyle}>\n                  {ts}Credit Card Information{/ts}\n                </th>\n              </tr>\n              <tr>\n                <td {$valueStyle}>\n                  {$credit_card_type}<br/>\n                  {$credit_card_number}\n                </td>\n              </tr>\n              <tr>\n                <td {$labelStyle}>\n                  {ts}Expires{/ts}\n                </td>\n                <td {$valueStyle}>\n                  {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n                </td>\n              </tr>\n            {/if}\n\n          </table>\n        </td>\n      </tr>\n    {/if}\n\n    {if !empty($customValues)}\n      <tr>\n        <td>\n          <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n            <tr>\n              <th {$headerStyle}>\n                {ts}Membership Options{/ts}\n              </th>\n            </tr>\n            {foreach from=$customValues item=value key=customName}\n              <tr>\n                <td {$labelStyle}>\n                  {$customName}\n                </td>\n                <td {$valueStyle}>\n                  {$value}\n                </td>\n              </tr>\n            {/foreach}\n          </table>\n        </td>\n      </tr>\n    {/if}\n\n  </table>\n\n</body>\n</html>\n',1,835,'membership_offline_receipt',0,1,0,NULL),
+ (47,'Memberships - Receipt (on-line)','{if $is_pay_later}{ts}Invoice{/ts}{else}{ts}Receipt{/ts}{/if} - {$title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n{if !empty($receipt_text)}\n{$receipt_text}\n{/if}\n{if $is_pay_later}\n\n===========================================================\n{$pay_later_receipt}\n===========================================================\n{/if}\n\n{if $membership_assign && !$useForMember}\n===========================================================\n{ts}Membership Information{/ts}\n\n===========================================================\n{ts}Membership Type{/ts}: {$membership_name}\n{if $mem_start_date}{ts}Membership Start Date{/ts}: {$mem_start_date|crmDate}\n{/if}\n{if $mem_end_date}{ts}Membership Expiration Date{/ts}: {$mem_end_date|crmDate}\n{/if}\n\n{/if}\n{if $amount}\n===========================================================\n{ts}Membership Fee{/ts}\n\n===========================================================\n{if !$useForMember && isset($membership_amount) && !empty($is_quick_config)}\n{ts 1=$membership_name}%1 Membership{/ts}: {$membership_amount|crmMoney}\n{if $amount && !$is_separate_payment }\n{ts}Contribution Amount{/ts}: {$amount|crmMoney}\n-------------------------------------------\n{ts}Total{/ts}: {$amount+$membership_amount|crmMoney}\n{/if}\n{elseif !$useForMember && !empty($lineItem) and !empty($priceSetID) & empty($is_quick_config)}\n{foreach from=$lineItem item=value key=priceset}\n---------------------------------------------------------\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {$ts_total|string_format:\"%10s\"}\n----------------------------------------------------------\n{foreach from=$value item=line}\n{$line.description|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney|string_format:\"%10s\"} {$line.line_total|crmMoney|string_format:\"%10s\"}\n{/foreach}\n{/foreach}\n\n{ts}Total Amount{/ts}: {$amount|crmMoney}\n{else}\n{if $useForMember && $lineItem && empty($is_quick_config)}\n{foreach from=$lineItem item=value key=priceset}\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_total}{ts}Fee{/ts}{/capture}\n{if !empty($dataArray)}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{/if}\n{capture assign=ts_start_date}{ts}Membership Start Date{/ts}{/capture}\n{capture assign=ts_end_date}{ts}Membership Expiration Date{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_total|string_format:\"%10s\"} {if !empty($dataArray)} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate|string_format:\"%10s\"} {$ts_taxAmount|string_format:\"%10s\"} {$ts_total|string_format:\"%10s\"} {/if} {$ts_start_date|string_format:\"%20s\"} {$ts_end_date|string_format:\"%20s\"}\n--------------------------------------------------------------------------------------------------\n\n{foreach from=$value item=line}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.line_total|crmMoney|string_format:\"%10s\"}  {if !empty($dataArray)} {$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if $line.tax_rate || $line.tax_amount != \"\"}  {$line.tax_rate|string_format:\"%.2f\"} %  {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else}                  {/if}   {$line.line_total+$line.tax_amount|crmMoney|string_format:\"%10s\"} {/if} {$line.start_date|string_format:\"%20s\"} {$line.end_date|string_format:\"%20s\"}\n{/foreach}\n{/foreach}\n\n{if !empty($dataArray)}\n{ts}Amount before Tax{/ts}: {$amount-$totalTaxAmount|crmMoney:$currency}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset || $priceset == 0}\n{$taxTerm} {$priceset|string_format:\"%.2f\"}%: {$value|crmMoney:$currency}\n{else}\n{ts}No{/ts} {$taxTerm}: {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n--------------------------------------------------------------------------------------------------\n{/if}\n\n{if $totalTaxAmount}\n{ts}Total Tax Amount{/ts}: {$totalTaxAmount|crmMoney:$currency}\n{/if}\n\n{ts}Amount{/ts}: {$amount|crmMoney} {if isset($amount_level) } - {$amount_level} {/if}\n{/if}\n{elseif isset($membership_amount)}\n===========================================================\n{ts}Membership Fee{/ts}\n\n===========================================================\n{ts 1=$membership_name}%1 Membership{/ts}: {$membership_amount|crmMoney}\n{/if}\n\n{if !empty($receive_date)}\n\n{ts}Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if !empty($is_monetary) and !empty($trxn_id)}\n{ts}Transaction #{/ts}: {$trxn_id}\n\n{/if}\n{if !empty($membership_trx_id)}\n{ts}Membership Transaction #{/ts}: {$membership_trx_id}\n\n{/if}\n{if !empty($is_recur)}\n{ts}This membership will be renewed automatically.{/ts}\n{if $cancelSubscriptionUrl}\n\n{ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by visiting this web page: %1.{/ts}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n\n{ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n{/if}\n{/if}\n\n{if $honor_block_is_active }\n===========================================================\n{$soft_credit_type}\n===========================================================\n{foreach from=$honoreeProfile item=value key=label}\n{$label}: {$value}\n{/foreach}\n\n{/if}\n{if !empty($pcpBlock)}\n===========================================================\n{ts}Personal Campaign Page{/ts}\n\n===========================================================\n{ts}Display In Honor Roll{/ts}: {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n\n{if $pcp_roll_nickname}{ts}Nickname{/ts}: {$pcp_roll_nickname}{/if}\n\n{if $pcp_personal_note}{ts}Personal Note{/ts}: {$pcp_personal_note}{/if}\n\n{/if}\n{if !empty($onBehalfProfile)}\n===========================================================\n{ts}On Behalf Of{/ts}\n\n===========================================================\n{foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n{$onBehalfName}: {$onBehalfValue}\n{/foreach}\n{/if}\n\n{if !empty($billingName)}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n{elseif !empty($email)}\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$email}\n{/if} {* End billingName or email *}\n{if !empty($credit_card_type)}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n\n{if !empty($selectPremium)}\n===========================================================\n{ts}Premium Information{/ts}\n\n===========================================================\n{$product_name}\n{if $option}\n{ts}Option{/ts}: {$option}\n{/if}\n{if $sku}\n{ts}SKU{/ts}: {$sku}\n{/if}\n{if $start_date}\n{ts}Start Date{/ts}: {$start_date|crmDate}\n{/if}\n{if $end_date}\n{ts}End Date{/ts}: {$end_date|crmDate}\n{/if}\n{if !empty($contact_email) OR !empty($contact_phone)}\n\n{ts}For information about this premium, contact:{/ts}\n\n{if !empty($contact_email)}\n  {$contact_email}\n{/if}\n{if !empty($contact_phone)}\n  {$contact_phone}\n{/if}\n{/if}\n{if $is_deductible AND !empty($price)}\n\n{ts 1=$price|crmMoney}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}{/if}\n{/if}\n\n{if !empty($customPre)}\n===========================================================\n{$customPre_grouptitle}\n\n===========================================================\n{foreach from=$customPre item=customValue key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/if}\n\n\n{if !empty($customPost)}\n===========================================================\n{$customPost_grouptitle}\n\n===========================================================\n{foreach from=$customPost item=customValue key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n     {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    {if !empty($receipt_text)}\n     <p>{$receipt_text|htmlize}</p>\n    {/if}\n\n    {if $is_pay_later}\n     <p>{$pay_later_receipt}</p> {* FIXME: this might be text rather than HTML *}\n    {/if}\n\n   </td>\n  </tr>\n  </table>\n  <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n\n     {if $membership_assign && !$useForMember}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Membership Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Membership Type{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$membership_name}\n       </td>\n      </tr>\n      {if $mem_start_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Membership Start Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$mem_start_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if $mem_end_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Membership Expiration Date{/ts}\n        </td>\n        <td {$valueStyle}>\n          {$mem_end_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n     {/if}\n\n\n     {if $amount}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Membership Fee{/ts}\n       </th>\n      </tr>\n\n      {if !$useForMember and isset($membership_amount) and !empty($is_quick_config)}\n\n       <tr>\n        <td {$labelStyle}>\n         {ts 1=$membership_name}%1 Membership{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$membership_amount|crmMoney}\n        </td>\n       </tr>\n       {if $amount && !$is_separate_payment }\n         <tr>\n          <td {$labelStyle}>\n           {ts}Contribution Amount{/ts}\n          </td>\n          <td {$valueStyle}>\n           {$amount|crmMoney}\n          </td>\n         </tr>\n         <tr>\n           <td {$labelStyle}>\n           {ts}Total{/ts}\n            </td>\n            <td {$valueStyle}>\n            {$amount+$membership_amount|crmMoney}\n           </td>\n         </tr>\n       {/if}\n\n      {elseif empty($useForMember) && !empty($lineItem) and $priceSetID and empty($is_quick_config)}\n\n       {foreach from=$lineItem item=value key=priceset}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          <table>\n           <tr>\n            <th>{ts}Item{/ts}</th>\n            <th>{ts}Qty{/ts}</th>\n            <th>{ts}Each{/ts}</th>\n            <th>{ts}Total{/ts}</th>\n           </tr>\n           {foreach from=$value item=line}\n            <tr>\n             <td>\n              {$line.description|truncate:30:\"...\"}\n             </td>\n             <td>\n              {$line.qty}\n             </td>\n             <td>\n              {$line.unit_price|crmMoney}\n             </td>\n             <td>\n              {$line.line_total|crmMoney}\n             </td>\n            </tr>\n           {/foreach}\n          </table>\n         </td>\n        </tr>\n       {/foreach}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Total Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$amount|crmMoney}\n        </td>\n       </tr>\n\n      {else}\n       {if $useForMember && $lineItem and empty($is_quick_config)}\n       {foreach from=$lineItem item=value key=priceset}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          <table>\n           <tr>\n            <th>{ts}Item{/ts}</th>\n            <th>{ts}Fee{/ts}</th>\n            {if !empty($dataArray)}\n              <th>{ts}SubTotal{/ts}</th>\n              <th>{ts}Tax Rate{/ts}</th>\n              <th>{ts}Tax Amount{/ts}</th>\n              <th>{ts}Total{/ts}</th>\n            {/if}\n      <th>{ts}Membership Start Date{/ts}</th>\n      <th>{ts}Membership Expiration Date{/ts}</th>\n           </tr>\n           {foreach from=$value item=line}\n            <tr>\n             <td>\n             {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:\"...\"}</div>{/if}\n             </td>\n             <td>\n              {$line.line_total|crmMoney}\n             </td>\n             {if !empty($dataArray)}\n              <td>\n               {$line.unit_price*$line.qty|crmMoney}\n              </td>\n              {if ($line.tax_rate || $line.tax_amount != \"\")}\n               <td>\n                {$line.tax_rate|string_format:\"%.2f\"}%\n               </td>\n               <td>\n                {$line.tax_amount|crmMoney}\n               </td>\n              {else}\n               <td></td>\n               <td></td>\n              {/if}\n              <td>\n               {$line.line_total+$line.tax_amount|crmMoney}\n              </td>\n             {/if}\n             <td>\n              {$line.start_date}\n             </td>\n       <td>\n              {$line.end_date}\n             </td>\n            </tr>\n           {/foreach}\n          </table>\n         </td>\n        </tr>\n       {/foreach}\n       {if !empty($dataArray)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Amount Before Tax:{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$amount-$totalTaxAmount|crmMoney}\n         </td>\n        </tr>\n        {foreach from=$dataArray item=value key=priceset}\n         <tr>\n         {if $priceset || $priceset == 0}\n           <td>&nbsp;{$taxTerm} {$priceset|string_format:\"%.2f\"}%</td>\n           <td>&nbsp;{$value|crmMoney:$currency}</td>\n         {else}\n           <td>&nbsp;{ts}NO{/ts} {$taxTerm}</td>\n           <td>&nbsp;{$value|crmMoney:$currency}</td>\n         {/if}\n         </tr>\n        {/foreach}\n       {/if}\n       {/if}\n       {if $totalTaxAmount}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Total Tax Amount{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$totalTaxAmount|crmMoney:$currency}\n         </td>\n        </tr>\n       {/if}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$amount|crmMoney} {if isset($amount_level)} - {$amount_level}{/if}\n        </td>\n       </tr>\n\n      {/if}\n\n\n     {elseif isset($membership_amount)}\n\n\n      <tr>\n       <th {$headerStyle}>\n        {ts}Membership Fee{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts 1=$membership_name}%1 Membership{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$membership_amount|crmMoney}\n       </td>\n      </tr>\n\n\n     {/if}\n\n     {if !empty($receive_date)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$receive_date|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($is_monetary) and !empty($trxn_id)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Transaction #{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$trxn_id}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($membership_trx_id)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Membership Transaction #{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$membership_trx_id}\n       </td>\n      </tr>\n     {/if}\n     {if !empty($is_recur)}\n       <tr>\n        <td colspan=\"2\" {$labelStyle}>\n         {ts}This membership will be renewed automatically.{/ts}\n         {if $cancelSubscriptionUrl}\n           {ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by <a href=\"%1\">visiting this web page</a>.{/ts}\n         {/if}\n        </td>\n       </tr>\n       {if $updateSubscriptionBillingUrl}\n         <tr>\n          <td colspan=\"2\" {$labelStyle}>\n           {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n          </td>\n         </tr>\n       {/if}\n     {/if}\n\n     {if $honor_block_is_active}\n      <tr>\n       <th {$headerStyle}>\n        {$soft_credit_type}\n       </th>\n      </tr>\n      {foreach from=$honoreeProfile item=value key=label}\n        <tr>\n         <td {$labelStyle}>\n          {$label}\n         </td>\n         <td {$valueStyle}>\n          {$value}\n         </td>\n        </tr>\n      {/foreach}\n     {/if}\n\n     {if !empty($pcpBlock)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Personal Campaign Page{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Display In Honor Roll{/ts}\n       </td>\n       <td {$valueStyle}>\n        {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n       </td>\n      </tr>\n      {if $pcp_roll_nickname}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Nickname{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$pcp_roll_nickname}\n        </td>\n       </tr>\n      {/if}\n      {if $pcp_personal_note}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Personal Note{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$pcp_personal_note}\n        </td>\n       </tr>\n      {/if}\n     {/if}\n\n     {if !empty($onBehalfProfile)}\n      <tr>\n       <th {$headerStyle}>\n        {$onBehalfProfile_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n        <tr>\n         <td {$labelStyle}>\n          {$onBehalfName}\n         </td>\n         <td {$valueStyle}>\n          {$onBehalfValue}\n         </td>\n        </tr>\n      {/foreach}\n     {/if}\n\n     {if !empty($billingName)}\n       <tr>\n         <th {$headerStyle}>\n           {ts}Billing Name and Address{/ts}\n         </th>\n      </tr>\n      <tr>\n        <td colspan=\"2\" {$valueStyle}>\n          {$billingName}<br />\n          {$address|nl2br}<br />\n          {$email}\n        </td>\n      </tr>\n    {elseif !empty($email)}\n      <tr>\n        <th {$headerStyle}>\n          {ts}Registered Email{/ts}\n        </th>\n      </tr>\n      <tr>\n        <td colspan=\"2\" {$valueStyle}>\n          {$email}\n        </td>\n      </tr>\n    {/if}\n\n     {if !empty($credit_card_type)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($selectPremium)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Premium Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {$product_name}\n       </td>\n      </tr>\n      {if $option}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Option{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$option}\n        </td>\n       </tr>\n      {/if}\n      {if $sku}\n       <tr>\n        <td {$labelStyle}>\n         {ts}SKU{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$sku}\n        </td>\n       </tr>\n      {/if}\n      {if $start_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Start Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$start_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if $end_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}End Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$end_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if !empty($contact_email) OR !empty($contact_phone)}\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         <p>{ts}For information about this premium, contact:{/ts}</p>\n         {if !empty($contact_email)}\n          <p>{$contact_email}</p>\n         {/if}\n         {if !empty($contact_phone)}\n          <p>{$contact_phone}</p>\n         {/if}\n        </td>\n       </tr>\n      {/if}\n      {if $is_deductible AND !empty($price)}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          <p>{ts 1=$price|crmMoney}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}</p>\n         </td>\n        </tr>\n      {/if}\n     {/if}\n\n     {if !empty($customPre)}\n      <tr>\n       <th {$headerStyle}>\n        {$customPre_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPre item=customValue key=customName}\n       {if (!empty($trackingFields) and ! in_array($customName, $trackingFields)) or empty($trackingFields)}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$customValue}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if !empty($customPost)}\n      <tr>\n       <th {$headerStyle}>\n        {$customPost_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPost item=customValue key=customName}\n       {if (!empty($trackingFields) and ! in_array($customName, $trackingFields)) or empty($trackingFields)}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$customValue}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n  </table>\n\n</body>\n</html>\n',1,836,'membership_online_receipt',1,0,0,NULL),
+ (48,'Memberships - Receipt (on-line)','{if $is_pay_later}{ts}Invoice{/ts}{else}{ts}Receipt{/ts}{/if} - {$title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n{if !empty($receipt_text)}\n{$receipt_text}\n{/if}\n{if $is_pay_later}\n\n===========================================================\n{$pay_later_receipt}\n===========================================================\n{/if}\n\n{if $membership_assign && !$useForMember}\n===========================================================\n{ts}Membership Information{/ts}\n\n===========================================================\n{ts}Membership Type{/ts}: {$membership_name}\n{if $mem_start_date}{ts}Membership Start Date{/ts}: {$mem_start_date|crmDate}\n{/if}\n{if $mem_end_date}{ts}Membership Expiration Date{/ts}: {$mem_end_date|crmDate}\n{/if}\n\n{/if}\n{if $amount}\n===========================================================\n{ts}Membership Fee{/ts}\n\n===========================================================\n{if !$useForMember && isset($membership_amount) && !empty($is_quick_config)}\n{ts 1=$membership_name}%1 Membership{/ts}: {$membership_amount|crmMoney}\n{if $amount && !$is_separate_payment }\n{ts}Contribution Amount{/ts}: {$amount|crmMoney}\n-------------------------------------------\n{ts}Total{/ts}: {$amount+$membership_amount|crmMoney}\n{/if}\n{elseif !$useForMember && !empty($lineItem) and !empty($priceSetID) & empty($is_quick_config)}\n{foreach from=$lineItem item=value key=priceset}\n---------------------------------------------------------\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {$ts_total|string_format:\"%10s\"}\n----------------------------------------------------------\n{foreach from=$value item=line}\n{$line.description|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney|string_format:\"%10s\"} {$line.line_total|crmMoney|string_format:\"%10s\"}\n{/foreach}\n{/foreach}\n\n{ts}Total Amount{/ts}: {$amount|crmMoney}\n{else}\n{if $useForMember && $lineItem && empty($is_quick_config)}\n{foreach from=$lineItem item=value key=priceset}\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_total}{ts}Fee{/ts}{/capture}\n{if !empty($dataArray)}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{/if}\n{capture assign=ts_start_date}{ts}Membership Start Date{/ts}{/capture}\n{capture assign=ts_end_date}{ts}Membership Expiration Date{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_total|string_format:\"%10s\"} {if !empty($dataArray)} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate|string_format:\"%10s\"} {$ts_taxAmount|string_format:\"%10s\"} {$ts_total|string_format:\"%10s\"} {/if} {$ts_start_date|string_format:\"%20s\"} {$ts_end_date|string_format:\"%20s\"}\n--------------------------------------------------------------------------------------------------\n\n{foreach from=$value item=line}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.line_total|crmMoney|string_format:\"%10s\"}  {if !empty($dataArray)} {$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if $line.tax_rate || $line.tax_amount != \"\"}  {$line.tax_rate|string_format:\"%.2f\"} %  {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else}                  {/if}   {$line.line_total+$line.tax_amount|crmMoney|string_format:\"%10s\"} {/if} {$line.start_date|string_format:\"%20s\"} {$line.end_date|string_format:\"%20s\"}\n{/foreach}\n{/foreach}\n\n{if !empty($dataArray)}\n{ts}Amount before Tax{/ts}: {$amount-$totalTaxAmount|crmMoney:$currency}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset || $priceset == 0}\n{$taxTerm} {$priceset|string_format:\"%.2f\"}%: {$value|crmMoney:$currency}\n{else}\n{ts}No{/ts} {$taxTerm}: {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n--------------------------------------------------------------------------------------------------\n{/if}\n\n{if $totalTaxAmount}\n{ts}Total Tax Amount{/ts}: {$totalTaxAmount|crmMoney:$currency}\n{/if}\n\n{ts}Amount{/ts}: {$amount|crmMoney} {if isset($amount_level) } - {$amount_level} {/if}\n{/if}\n{elseif isset($membership_amount)}\n===========================================================\n{ts}Membership Fee{/ts}\n\n===========================================================\n{ts 1=$membership_name}%1 Membership{/ts}: {$membership_amount|crmMoney}\n{/if}\n\n{if !empty($receive_date)}\n\n{ts}Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if !empty($is_monetary) and !empty($trxn_id)}\n{ts}Transaction #{/ts}: {$trxn_id}\n\n{/if}\n{if !empty($membership_trx_id)}\n{ts}Membership Transaction #{/ts}: {$membership_trx_id}\n\n{/if}\n{if !empty($is_recur)}\n{ts}This membership will be renewed automatically.{/ts}\n{if $cancelSubscriptionUrl}\n\n{ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by visiting this web page: %1.{/ts}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n\n{ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n{/if}\n{/if}\n\n{if $honor_block_is_active }\n===========================================================\n{$soft_credit_type}\n===========================================================\n{foreach from=$honoreeProfile item=value key=label}\n{$label}: {$value}\n{/foreach}\n\n{/if}\n{if !empty($pcpBlock)}\n===========================================================\n{ts}Personal Campaign Page{/ts}\n\n===========================================================\n{ts}Display In Honor Roll{/ts}: {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n\n{if $pcp_roll_nickname}{ts}Nickname{/ts}: {$pcp_roll_nickname}{/if}\n\n{if $pcp_personal_note}{ts}Personal Note{/ts}: {$pcp_personal_note}{/if}\n\n{/if}\n{if !empty($onBehalfProfile)}\n===========================================================\n{ts}On Behalf Of{/ts}\n\n===========================================================\n{foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n{$onBehalfName}: {$onBehalfValue}\n{/foreach}\n{/if}\n\n{if !empty($billingName)}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n{elseif !empty($email)}\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$email}\n{/if} {* End billingName or email *}\n{if !empty($credit_card_type)}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n\n{if !empty($selectPremium)}\n===========================================================\n{ts}Premium Information{/ts}\n\n===========================================================\n{$product_name}\n{if $option}\n{ts}Option{/ts}: {$option}\n{/if}\n{if $sku}\n{ts}SKU{/ts}: {$sku}\n{/if}\n{if $start_date}\n{ts}Start Date{/ts}: {$start_date|crmDate}\n{/if}\n{if $end_date}\n{ts}End Date{/ts}: {$end_date|crmDate}\n{/if}\n{if !empty($contact_email) OR !empty($contact_phone)}\n\n{ts}For information about this premium, contact:{/ts}\n\n{if !empty($contact_email)}\n  {$contact_email}\n{/if}\n{if !empty($contact_phone)}\n  {$contact_phone}\n{/if}\n{/if}\n{if $is_deductible AND !empty($price)}\n\n{ts 1=$price|crmMoney}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}{/if}\n{/if}\n\n{if !empty($customPre)}\n===========================================================\n{$customPre_grouptitle}\n\n===========================================================\n{foreach from=$customPre item=customValue key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/if}\n\n\n{if !empty($customPost)}\n===========================================================\n{$customPost_grouptitle}\n\n===========================================================\n{foreach from=$customPost item=customValue key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n     {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    {if !empty($receipt_text)}\n     <p>{$receipt_text|htmlize}</p>\n    {/if}\n\n    {if $is_pay_later}\n     <p>{$pay_later_receipt}</p> {* FIXME: this might be text rather than HTML *}\n    {/if}\n\n   </td>\n  </tr>\n  </table>\n  <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n\n     {if $membership_assign && !$useForMember}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Membership Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Membership Type{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$membership_name}\n       </td>\n      </tr>\n      {if $mem_start_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Membership Start Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$mem_start_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if $mem_end_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Membership Expiration Date{/ts}\n        </td>\n        <td {$valueStyle}>\n          {$mem_end_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n     {/if}\n\n\n     {if $amount}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Membership Fee{/ts}\n       </th>\n      </tr>\n\n      {if !$useForMember and isset($membership_amount) and !empty($is_quick_config)}\n\n       <tr>\n        <td {$labelStyle}>\n         {ts 1=$membership_name}%1 Membership{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$membership_amount|crmMoney}\n        </td>\n       </tr>\n       {if $amount && !$is_separate_payment }\n         <tr>\n          <td {$labelStyle}>\n           {ts}Contribution Amount{/ts}\n          </td>\n          <td {$valueStyle}>\n           {$amount|crmMoney}\n          </td>\n         </tr>\n         <tr>\n           <td {$labelStyle}>\n           {ts}Total{/ts}\n            </td>\n            <td {$valueStyle}>\n            {$amount+$membership_amount|crmMoney}\n           </td>\n         </tr>\n       {/if}\n\n      {elseif empty($useForMember) && !empty($lineItem) and $priceSetID and empty($is_quick_config)}\n\n       {foreach from=$lineItem item=value key=priceset}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          <table>\n           <tr>\n            <th>{ts}Item{/ts}</th>\n            <th>{ts}Qty{/ts}</th>\n            <th>{ts}Each{/ts}</th>\n            <th>{ts}Total{/ts}</th>\n           </tr>\n           {foreach from=$value item=line}\n            <tr>\n             <td>\n              {$line.description|truncate:30:\"...\"}\n             </td>\n             <td>\n              {$line.qty}\n             </td>\n             <td>\n              {$line.unit_price|crmMoney}\n             </td>\n             <td>\n              {$line.line_total|crmMoney}\n             </td>\n            </tr>\n           {/foreach}\n          </table>\n         </td>\n        </tr>\n       {/foreach}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Total Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$amount|crmMoney}\n        </td>\n       </tr>\n\n      {else}\n       {if $useForMember && $lineItem and empty($is_quick_config)}\n       {foreach from=$lineItem item=value key=priceset}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          <table>\n           <tr>\n            <th>{ts}Item{/ts}</th>\n            <th>{ts}Fee{/ts}</th>\n            {if !empty($dataArray)}\n              <th>{ts}SubTotal{/ts}</th>\n              <th>{ts}Tax Rate{/ts}</th>\n              <th>{ts}Tax Amount{/ts}</th>\n              <th>{ts}Total{/ts}</th>\n            {/if}\n      <th>{ts}Membership Start Date{/ts}</th>\n      <th>{ts}Membership Expiration Date{/ts}</th>\n           </tr>\n           {foreach from=$value item=line}\n            <tr>\n             <td>\n             {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:\"...\"}</div>{/if}\n             </td>\n             <td>\n              {$line.line_total|crmMoney}\n             </td>\n             {if !empty($dataArray)}\n              <td>\n               {$line.unit_price*$line.qty|crmMoney}\n              </td>\n              {if ($line.tax_rate || $line.tax_amount != \"\")}\n               <td>\n                {$line.tax_rate|string_format:\"%.2f\"}%\n               </td>\n               <td>\n                {$line.tax_amount|crmMoney}\n               </td>\n              {else}\n               <td></td>\n               <td></td>\n              {/if}\n              <td>\n               {$line.line_total+$line.tax_amount|crmMoney}\n              </td>\n             {/if}\n             <td>\n              {$line.start_date}\n             </td>\n       <td>\n              {$line.end_date}\n             </td>\n            </tr>\n           {/foreach}\n          </table>\n         </td>\n        </tr>\n       {/foreach}\n       {if !empty($dataArray)}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Amount Before Tax:{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$amount-$totalTaxAmount|crmMoney}\n         </td>\n        </tr>\n        {foreach from=$dataArray item=value key=priceset}\n         <tr>\n         {if $priceset || $priceset == 0}\n           <td>&nbsp;{$taxTerm} {$priceset|string_format:\"%.2f\"}%</td>\n           <td>&nbsp;{$value|crmMoney:$currency}</td>\n         {else}\n           <td>&nbsp;{ts}NO{/ts} {$taxTerm}</td>\n           <td>&nbsp;{$value|crmMoney:$currency}</td>\n         {/if}\n         </tr>\n        {/foreach}\n       {/if}\n       {/if}\n       {if $totalTaxAmount}\n        <tr>\n         <td {$labelStyle}>\n          {ts}Total Tax Amount{/ts}\n         </td>\n         <td {$valueStyle}>\n          {$totalTaxAmount|crmMoney:$currency}\n         </td>\n        </tr>\n       {/if}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Amount{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$amount|crmMoney} {if isset($amount_level)} - {$amount_level}{/if}\n        </td>\n       </tr>\n\n      {/if}\n\n\n     {elseif isset($membership_amount)}\n\n\n      <tr>\n       <th {$headerStyle}>\n        {ts}Membership Fee{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts 1=$membership_name}%1 Membership{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$membership_amount|crmMoney}\n       </td>\n      </tr>\n\n\n     {/if}\n\n     {if !empty($receive_date)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Date{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$receive_date|crmDate}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($is_monetary) and !empty($trxn_id)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Transaction #{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$trxn_id}\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($membership_trx_id)}\n      <tr>\n       <td {$labelStyle}>\n        {ts}Membership Transaction #{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$membership_trx_id}\n       </td>\n      </tr>\n     {/if}\n     {if !empty($is_recur)}\n       <tr>\n        <td colspan=\"2\" {$labelStyle}>\n         {ts}This membership will be renewed automatically.{/ts}\n         {if $cancelSubscriptionUrl}\n           {ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by <a href=\"%1\">visiting this web page</a>.{/ts}\n         {/if}\n        </td>\n       </tr>\n       {if $updateSubscriptionBillingUrl}\n         <tr>\n          <td colspan=\"2\" {$labelStyle}>\n           {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n          </td>\n         </tr>\n       {/if}\n     {/if}\n\n     {if $honor_block_is_active}\n      <tr>\n       <th {$headerStyle}>\n        {$soft_credit_type}\n       </th>\n      </tr>\n      {foreach from=$honoreeProfile item=value key=label}\n        <tr>\n         <td {$labelStyle}>\n          {$label}\n         </td>\n         <td {$valueStyle}>\n          {$value}\n         </td>\n        </tr>\n      {/foreach}\n     {/if}\n\n     {if !empty($pcpBlock)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Personal Campaign Page{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Display In Honor Roll{/ts}\n       </td>\n       <td {$valueStyle}>\n        {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n       </td>\n      </tr>\n      {if $pcp_roll_nickname}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Nickname{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$pcp_roll_nickname}\n        </td>\n       </tr>\n      {/if}\n      {if $pcp_personal_note}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Personal Note{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$pcp_personal_note}\n        </td>\n       </tr>\n      {/if}\n     {/if}\n\n     {if !empty($onBehalfProfile)}\n      <tr>\n       <th {$headerStyle}>\n        {$onBehalfProfile_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n        <tr>\n         <td {$labelStyle}>\n          {$onBehalfName}\n         </td>\n         <td {$valueStyle}>\n          {$onBehalfValue}\n         </td>\n        </tr>\n      {/foreach}\n     {/if}\n\n     {if !empty($billingName)}\n       <tr>\n         <th {$headerStyle}>\n           {ts}Billing Name and Address{/ts}\n         </th>\n      </tr>\n      <tr>\n        <td colspan=\"2\" {$valueStyle}>\n          {$billingName}<br />\n          {$address|nl2br}<br />\n          {$email}\n        </td>\n      </tr>\n    {elseif !empty($email)}\n      <tr>\n        <th {$headerStyle}>\n          {ts}Registered Email{/ts}\n        </th>\n      </tr>\n      <tr>\n        <td colspan=\"2\" {$valueStyle}>\n          {$email}\n        </td>\n      </tr>\n    {/if}\n\n     {if !empty($credit_card_type)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n       </td>\n      </tr>\n     {/if}\n\n     {if !empty($selectPremium)}\n      <tr>\n       <th {$headerStyle}>\n        {ts}Premium Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$labelStyle}>\n        {$product_name}\n       </td>\n      </tr>\n      {if $option}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Option{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$option}\n        </td>\n       </tr>\n      {/if}\n      {if $sku}\n       <tr>\n        <td {$labelStyle}>\n         {ts}SKU{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$sku}\n        </td>\n       </tr>\n      {/if}\n      {if $start_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Start Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$start_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if $end_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}End Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$end_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if !empty($contact_email) OR !empty($contact_phone)}\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         <p>{ts}For information about this premium, contact:{/ts}</p>\n         {if !empty($contact_email)}\n          <p>{$contact_email}</p>\n         {/if}\n         {if !empty($contact_phone)}\n          <p>{$contact_phone}</p>\n         {/if}\n        </td>\n       </tr>\n      {/if}\n      {if $is_deductible AND !empty($price)}\n        <tr>\n         <td colspan=\"2\" {$valueStyle}>\n          <p>{ts 1=$price|crmMoney}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}</p>\n         </td>\n        </tr>\n      {/if}\n     {/if}\n\n     {if !empty($customPre)}\n      <tr>\n       <th {$headerStyle}>\n        {$customPre_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPre item=customValue key=customName}\n       {if (!empty($trackingFields) and ! in_array($customName, $trackingFields)) or empty($trackingFields)}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$customValue}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n     {if !empty($customPost)}\n      <tr>\n       <th {$headerStyle}>\n        {$customPost_grouptitle}\n       </th>\n      </tr>\n      {foreach from=$customPost item=customValue key=customName}\n       {if (!empty($trackingFields) and ! in_array($customName, $trackingFields)) or empty($trackingFields)}\n        <tr>\n         <td {$labelStyle}>\n          {$customName}\n         </td>\n         <td {$valueStyle}>\n          {$customValue}\n         </td>\n        </tr>\n       {/if}\n      {/foreach}\n     {/if}\n\n  </table>\n\n</body>\n</html>\n',1,836,'membership_online_receipt',0,1,0,NULL),
+ (49,'Memberships - Auto-renew Cancellation Notification','{ts}Autorenew Membership Cancellation Notification{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$membershipType}The automatic renewal of your %1 membership has been cancelled as requested. This does not affect the status of your membership - you will receive a separate notification when your membership is up for renewal.{/ts}\n\n===========================================================\n{ts}Membership Information{/ts}\n\n===========================================================\n{ts}Membership Status{/ts}: {$membership_status}\n{if $mem_start_date}{ts}Membership Start Date{/ts}: {$mem_start_date|crmDate}\n{/if}\n{if $mem_end_date}{ts}Membership Expiration Date{/ts}: {$mem_end_date|crmDate}\n{/if}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$membershipType}The automatic renewal of your %1 membership has been cancelled as requested. This does not affect the status of your membership - you will receive a separate notification when your membership is up for renewal.{/ts}</p>\n\n   </td>\n  </tr>\n </table>\n <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n\n      <tr>\n       <th {$headerStyle}>\n        {ts}Membership Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Membership Status{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$membership_status}\n       </td>\n      </tr>\n      {if $mem_start_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Membership Start Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$mem_start_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if $mem_end_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Membership Expiration Date{/ts}\n        </td>\n        <td {$valueStyle}>\n          {$mem_end_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n\n </table>\n\n</body>\n</html>\n',1,837,'membership_autorenew_cancelled',1,0,0,NULL),
+ (50,'Memberships - Auto-renew Cancellation Notification','{ts}Autorenew Membership Cancellation Notification{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$membershipType}The automatic renewal of your %1 membership has been cancelled as requested. This does not affect the status of your membership - you will receive a separate notification when your membership is up for renewal.{/ts}\n\n===========================================================\n{ts}Membership Information{/ts}\n\n===========================================================\n{ts}Membership Status{/ts}: {$membership_status}\n{if $mem_start_date}{ts}Membership Start Date{/ts}: {$mem_start_date|crmDate}\n{/if}\n{if $mem_end_date}{ts}Membership Expiration Date{/ts}: {$mem_end_date|crmDate}\n{/if}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$membershipType}The automatic renewal of your %1 membership has been cancelled as requested. This does not affect the status of your membership - you will receive a separate notification when your membership is up for renewal.{/ts}</p>\n\n   </td>\n  </tr>\n </table>\n <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n\n      <tr>\n       <th {$headerStyle}>\n        {ts}Membership Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td {$labelStyle}>\n        {ts}Membership Status{/ts}\n       </td>\n       <td {$valueStyle}>\n        {$membership_status}\n       </td>\n      </tr>\n      {if $mem_start_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Membership Start Date{/ts}\n        </td>\n        <td {$valueStyle}>\n         {$mem_start_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n      {if $mem_end_date}\n       <tr>\n        <td {$labelStyle}>\n         {ts}Membership Expiration Date{/ts}\n        </td>\n        <td {$valueStyle}>\n          {$mem_end_date|crmDate}\n        </td>\n       </tr>\n      {/if}\n\n </table>\n\n</body>\n</html>\n',1,837,'membership_autorenew_cancelled',0,1,0,NULL),
  (51,'Memberships - Auto-renew Billing Updates','{ts}Membership Autorenewal Billing Updates{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$membershipType}Billing details for your automatically renewed %1 membership have been updated.{/ts}\n\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n\n\n{ts 1=$receipt_from_email}If you have questions please contact us at %1{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$membershipType}Billing details for your automatically renewed %1 membership have been updated.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n </table>\n\n  <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n   <tr>\n        <th {$headerStyle}>\n         {ts}Billing Name and Address{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         {$billingName}<br />\n         {$address|nl2br}<br />\n         {$email}\n        </td>\n       </tr>\n        <tr>\n       <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n       </td>\n      </tr>\n      <tr>\n        <td {$labelStyle}>\n         {ts 1=$receipt_from_email}If you have questions please contact us at %1{/ts}\n        </td>\n      </tr>\n\n  </table>\n\n</body>\n</html>\n',1,838,'membership_autorenew_billing',1,0,0,NULL),
  (52,'Memberships - Auto-renew Billing Updates','{ts}Membership Autorenewal Billing Updates{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$membershipType}Billing details for your automatically renewed %1 membership have been updated.{/ts}\n\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n\n\n{ts 1=$receipt_from_email}If you have questions please contact us at %1{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n  <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n  <!-- BEGIN HEADER -->\n  <!-- You can add table row(s) here with logo or other header elements -->\n  <!-- END HEADER -->\n\n  <!-- BEGIN CONTENT -->\n\n  <tr>\n   <td>\n    {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n    <p>{ts 1=$membershipType}Billing details for your automatically renewed %1 membership have been updated.{/ts}</p>\n   </td>\n  </tr>\n  <tr>\n </table>\n\n  <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n   <tr>\n        <th {$headerStyle}>\n         {ts}Billing Name and Address{/ts}\n        </th>\n       </tr>\n       <tr>\n        <td colspan=\"2\" {$valueStyle}>\n         {$billingName}<br />\n         {$address|nl2br}<br />\n         {$email}\n        </td>\n       </tr>\n        <tr>\n       <th {$headerStyle}>\n        {ts}Credit Card Information{/ts}\n       </th>\n      </tr>\n      <tr>\n       <td colspan=\"2\" {$valueStyle}>\n        {$credit_card_type}<br />\n        {$credit_card_number}<br />\n        {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n       </td>\n      </tr>\n      <tr>\n        <td {$labelStyle}>\n         {ts 1=$receipt_from_email}If you have questions please contact us at %1{/ts}\n        </td>\n      </tr>\n\n  </table>\n\n</body>\n</html>\n',1,838,'membership_autorenew_billing',0,1,0,NULL),
  (53,'Test-drive - Receipt Header','[TEST]\n','***********************************************************\n\n{ts}Test-drive Email / Receipt{/ts}\n\n{ts}This is a test-drive email. No live financial transaction has occurred.{/ts}\n\n***********************************************************\n',' <table id=\"crm-event_receipt_test\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n  <tr>\n   <td>\n    <p>{ts}Test-drive Email / Receipt{/ts}</p>\n    <p>{ts}This is a test-drive email. No live financial transaction has occurred.{/ts}</p>\n   </td>\n  </tr>\n </table>\n',1,839,'test_preview',1,0,0,NULL),
@@ -5501,7 +5497,7 @@ INSERT INTO `civicrm_navigation` (`id`, `domain_id`, `label`, `name`, `url`, `ic
  (29,1,'New Contribution','New Contribution','civicrm/contribute/add?reset=1&action=add&context=standalone',NULL,'access CiviContribute,edit contributions','AND',27,1,NULL,2),
  (30,1,'Find Contributions','Find Contributions','civicrm/contribute/search?reset=1',NULL,'access CiviContribute','',27,1,NULL,3),
  (31,1,'Contribution Reports','Contribution Reports','civicrm/report/list?compid=2&reset=1',NULL,'access CiviContribute','',27,1,1,4),
- (32,1,'Import Contributions','Import Contributions','civicrm/contribute/import?reset=1',NULL,'access CiviContribute,edit contributions','AND',27,1,1,5),
+ (32,1,'Import Contributions','Import Contributions','civicrm/import/contribution?reset=1',NULL,'access CiviContribute,edit contributions','AND',27,1,1,5),
  (33,1,'Batch Data Entry','Batch Data Entry','civicrm/batch?reset=1',NULL,'access CiviContribute','',27,1,NULL,7),
  (34,1,'Pledges','Pledges',NULL,NULL,'access CiviPledge','',27,1,1,6),
  (35,1,'Accounting Batches','Accounting Batches',NULL,NULL,'view own manual batches,view all manual batches','OR',27,1,1,8),
@@ -5733,26 +5729,26 @@ UNLOCK TABLES;
 LOCK TABLES `civicrm_note` WRITE;
 /*!40000 ALTER TABLE `civicrm_note` DISABLE KEYS */;
 INSERT INTO `civicrm_note` (`id`, `entity_table`, `entity_id`, `note`, `contact_id`, `note_date`, `created_date`, `modified_date`, `subject`, `privacy`) VALUES
- (1,'civicrm_contact',172,'Chart out route map for next 10k run',1,'2023-01-25 00:10:19','2023-01-25 00:10:19','2022-10-22 09:40:20',NULL,'0'),
- (2,'civicrm_contact',106,'Send newsletter for April 2005',1,'2023-01-25 00:10:19','2023-01-25 00:10:19','2023-01-07 22:37:10',NULL,'0'),
- (3,'civicrm_contact',5,'Invite members for the Steve Prefontaine 10k dream run',1,'2023-01-25 00:10:19','2023-01-25 00:10:19','2023-01-21 06:05:45',NULL,'0'),
- (4,'civicrm_contact',52,'Invite members for the Steve Prefontaine 10k dream run',1,'2023-01-25 00:10:19','2023-01-25 00:10:19','2022-10-11 07:49:52',NULL,'0'),
- (5,'civicrm_contact',65,'Invite members for the Steve Prefontaine 10k dream run',1,'2023-01-25 00:10:19','2023-01-25 00:10:19','2022-10-30 19:44:20',NULL,'0'),
- (6,'civicrm_contact',9,'Send newsletter for April 2005',1,'2023-01-25 00:10:19','2023-01-25 00:10:19','2022-10-27 13:58:14',NULL,'0'),
- (7,'civicrm_contact',94,'Organize the Terry Fox run',1,'2023-01-25 00:10:19','2023-01-25 00:10:19','2022-09-18 01:15:04',NULL,'0'),
- (8,'civicrm_contact',124,'Contact the Commissioner of Charities',1,'2023-01-25 00:10:19','2023-01-25 00:10:19','2022-04-10 16:15:11',NULL,'0'),
- (9,'civicrm_contact',17,'Contact the Commissioner of Charities',1,'2023-01-25 00:10:19','2023-01-25 00:10:19','2022-01-28 20:49:34',NULL,'0'),
- (10,'civicrm_contact',165,'Get the registration done for NGO status',1,'2023-01-25 00:10:19','2023-01-25 00:10:19','2022-09-27 09:19:46',NULL,'0'),
- (11,'civicrm_contact',82,'Contact the Commissioner of Charities',1,'2023-01-25 00:10:19','2023-01-25 00:10:19','2022-06-17 10:40:40',NULL,'0'),
- (12,'civicrm_contact',147,'Contact the Commissioner of Charities',1,'2023-01-25 00:10:19','2023-01-25 00:10:19','2022-11-25 11:29:40',NULL,'0'),
- (13,'civicrm_contact',90,'Organize the Terry Fox run',1,'2023-01-25 00:10:19','2023-01-25 00:10:19','2022-04-11 14:31:44',NULL,'0'),
- (14,'civicrm_contact',147,'Contact the Commissioner of Charities',1,'2023-01-25 00:10:19','2023-01-25 00:10:19','2022-10-13 22:03:38',NULL,'0'),
- (15,'civicrm_contact',34,'Send newsletter for April 2005',1,'2023-01-25 00:10:19','2023-01-25 00:10:19','2022-09-24 16:51:40',NULL,'0'),
- (16,'civicrm_contact',119,'Arrange collection of funds from members',1,'2023-01-25 00:10:19','2023-01-25 00:10:19','2023-01-08 20:29:11',NULL,'0'),
- (17,'civicrm_contact',183,'Invite members for the Steve Prefontaine 10k dream run',1,'2023-01-25 00:10:19','2023-01-25 00:10:19','2022-06-04 03:54:28',NULL,'0'),
- (18,'civicrm_contact',164,'Arrange for cricket match with Sunil Gavaskar',1,'2023-01-25 00:10:19','2023-01-25 00:10:19','2022-06-28 14:21:11',NULL,'0'),
- (19,'civicrm_contact',191,'Send newsletter for April 2005',1,'2023-01-25 00:10:19','2023-01-25 00:10:19','2022-11-19 16:55:51',NULL,'0'),
- (20,'civicrm_contact',8,'Contact the Commissioner of Charities',1,'2023-01-25 00:10:19','2023-01-25 00:10:19','2022-11-02 19:00:42',NULL,'0');
+ (1,'civicrm_contact',18,'Reminder screening of \"Black\" on next Friday',1,'2023-03-08 06:51:22','2023-03-08 06:51:22','2022-11-07 09:29:21',NULL,'0'),
+ (2,'civicrm_contact',163,'Send reminder for annual dinner',1,'2023-03-08 06:51:22','2023-03-08 06:51:22','2022-05-13 00:24:54',NULL,'0'),
+ (3,'civicrm_contact',29,'Chart out route map for next 10k run',1,'2023-03-08 06:51:22','2023-03-08 06:51:22','2022-11-14 04:21:40',NULL,'0'),
+ (4,'civicrm_contact',44,'Send reminder for annual dinner',1,'2023-03-08 06:51:22','2023-03-08 06:51:22','2022-06-28 11:04:14',NULL,'0'),
+ (5,'civicrm_contact',165,'Chart out route map for next 10k run',1,'2023-03-08 06:51:22','2023-03-08 06:51:22','2022-12-02 10:58:56',NULL,'0'),
+ (6,'civicrm_contact',165,'Contact the Commissioner of Charities',1,'2023-03-08 06:51:22','2023-03-08 06:51:22','2023-01-14 05:10:28',NULL,'0'),
+ (7,'civicrm_contact',164,'Invite members for the Steve Prefontaine 10k dream run',1,'2023-03-08 06:51:22','2023-03-08 06:51:22','2022-09-17 14:08:59',NULL,'0'),
+ (8,'civicrm_contact',34,'Connect for presentation',1,'2023-03-08 06:51:22','2023-03-08 06:51:22','2022-11-27 21:36:32',NULL,'0'),
+ (9,'civicrm_contact',170,'Get the registration done for NGO status',1,'2023-03-08 06:51:22','2023-03-08 06:51:22','2022-10-20 02:42:14',NULL,'0'),
+ (10,'civicrm_contact',25,'Send reminder for annual dinner',1,'2023-03-08 06:51:22','2023-03-08 06:51:22','2022-06-04 10:20:21',NULL,'0'),
+ (11,'civicrm_contact',146,'Send newsletter for April 2005',1,'2023-03-08 06:51:22','2023-03-08 06:51:22','2023-02-14 03:01:49',NULL,'0'),
+ (12,'civicrm_contact',136,'Organize the Terry Fox run',1,'2023-03-08 06:51:22','2023-03-08 06:51:22','2023-01-26 12:36:09',NULL,'0'),
+ (13,'civicrm_contact',61,'Get the registration done for NGO status',1,'2023-03-08 06:51:22','2023-03-08 06:51:22','2022-07-06 07:54:56',NULL,'0'),
+ (14,'civicrm_contact',11,'Chart out route map for next 10k run',1,'2023-03-08 06:51:22','2023-03-08 06:51:22','2023-03-04 10:00:17',NULL,'0'),
+ (15,'civicrm_contact',70,'Send newsletter for April 2005',1,'2023-03-08 06:51:22','2023-03-08 06:51:22','2022-09-06 08:24:20',NULL,'0'),
+ (16,'civicrm_contact',52,'Organize the Terry Fox run',1,'2023-03-08 06:51:22','2023-03-08 06:51:22','2022-11-11 12:55:24',NULL,'0'),
+ (17,'civicrm_contact',16,'Arrange collection of funds from members',1,'2023-03-08 06:51:22','2023-03-08 06:51:22','2022-12-25 11:18:27',NULL,'0'),
+ (18,'civicrm_contact',77,'Arrange for cricket match with Sunil Gavaskar',1,'2023-03-08 06:51:22','2023-03-08 06:51:22','2022-10-10 10:08:36',NULL,'0'),
+ (19,'civicrm_contact',66,'Send reminder for annual dinner',1,'2023-03-08 06:51:22','2023-03-08 06:51:22','2022-03-31 23:26:05',NULL,'0'),
+ (20,'civicrm_contact',170,'Arrange collection of funds from members',1,'2023-03-08 06:51:22','2023-03-08 06:51:22','2022-10-23 02:52:36',NULL,'0');
 /*!40000 ALTER TABLE `civicrm_note` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -6112,8 +6108,8 @@ INSERT INTO `civicrm_option_value` (`id`, `option_group_id`, `label`, `value`, `
  (232,39,'SYBUNT Report','contribute/sybunt','CRM_Report_Form_Contribute_Sybunt',NULL,0,0,12,'SYBUNT means some year(s) but not this year. Provides a list of constituents who donated at some time in the history of your organization but did not donate during the time period you specify.',0,0,1,2,NULL,NULL,NULL,NULL),
  (233,39,'LYBUNT Report','contribute/lybunt','CRM_Report_Form_Contribute_Lybunt',NULL,0,0,13,'LYBUNT means last year but not this year. Provides a list of constituents who donated last year but did not donate during the time period you specify as the current year.',0,0,1,2,NULL,NULL,NULL,NULL),
  (234,39,'Soft Credit Report','contribute/softcredit','CRM_Report_Form_Contribute_SoftCredit',NULL,0,0,14,'Shows contributions made by contacts that have been soft-credited to other contacts.',0,0,1,2,NULL,NULL,NULL,NULL),
- (235,39,'Membership Report (Summary)','member/summary','CRM_Report_Form_Member_Summary',NULL,0,0,15,'Provides a summary of memberships by type and join date.',0,0,1,3,NULL,NULL,NULL,NULL),
- (236,39,'Membership Report (Detail)','member/detail','CRM_Report_Form_Member_Detail',NULL,0,0,16,'Provides a list of members along with their membership status and membership details (Join Date, Start Date, End Date). Can also display contributions (payments) associated with each membership.',0,0,1,3,NULL,NULL,NULL,NULL),
+ (235,39,'Membership Report (Summary)','member/summary','CRM_Report_Form_Member_Summary',NULL,0,0,15,'Provides a summary of memberships by type and Member Since.',0,0,1,3,NULL,NULL,NULL,NULL),
+ (236,39,'Membership Report (Detail)','member/detail','CRM_Report_Form_Member_Detail',NULL,0,0,16,'Provides a list of members along with their membership status and membership details (Member Since, Membership Start Date, Membership Expiration Date). Can also display contributions (payments) associated with each membership.',0,0,1,3,NULL,NULL,NULL,NULL),
  (237,39,'Membership Report (Lapsed)','member/lapse','CRM_Report_Form_Member_Lapse',NULL,0,0,17,'Provides a list of memberships that lapsed or will lapse before the date you specify.',0,0,1,3,NULL,NULL,NULL,NULL),
  (238,39,'Event Participant Report (List)','event/participantListing','CRM_Report_Form_Event_ParticipantListing',NULL,0,0,18,'Provides lists of participants for an event.',0,0,1,1,NULL,NULL,NULL,NULL),
  (239,39,'Event Income Report (Summary)','event/summary','CRM_Report_Form_Event_Summary',NULL,0,0,19,'Provides an overview of event income. You can include key information such as event ID, registration, attendance, and income generated to help you determine the success of an event.',0,0,1,1,NULL,NULL,NULL,NULL),
@@ -6757,56 +6753,56 @@ UNLOCK TABLES;
 LOCK TABLES `civicrm_participant` WRITE;
 /*!40000 ALTER TABLE `civicrm_participant` DISABLE KEYS */;
 INSERT INTO `civicrm_participant` (`id`, `contact_id`, `event_id`, `status_id`, `role_id`, `register_date`, `source`, `fee_level`, `is_test`, `is_pay_later`, `fee_amount`, `registered_by_id`, `discount_id`, `fee_currency`, `campaign_id`, `discount_amount`, `cart_id`, `must_wait`, `transferred_to_contact_id`, `created_id`) VALUES
- (1,194,1,1,'1','2009-01-21 00:00:00','Check','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
- (2,113,2,2,'2','2008-05-07 00:00:00','Credit Card','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
- (3,13,3,3,'3','2008-05-05 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
- (4,27,1,4,'4','2008-10-21 00:00:00','Direct Transfer','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
- (5,111,2,1,'1','2008-01-10 00:00:00','Check','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
- (6,18,3,2,'2','2008-03-05 00:00:00','Direct Transfer','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
- (7,170,1,3,'3','2009-07-21 00:00:00','Direct Transfer','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
- (8,146,2,4,'4','2009-03-07 00:00:00','Credit Card','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
- (9,43,3,1,'1','2008-02-05 00:00:00','Direct Transfer','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
- (10,54,1,2,'2','2008-02-01 00:00:00','Check','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
- (11,80,2,3,'3','2009-01-10 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
- (12,96,3,4,'4','2009-03-06 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
- (13,180,1,1,'2','2008-06-04 00:00:00','Credit Card','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
- (14,48,2,2,'3','2008-01-10 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
- (15,159,3,4,'1','2008-07-04 00:00:00','Check','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
- (16,179,1,4,'2','2009-01-21 00:00:00','Credit Card','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
- (17,86,2,2,'3','2008-01-10 00:00:00','Credit Card','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
- (18,134,3,3,'1','2009-03-05 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
- (19,166,1,2,'1','2008-10-21 00:00:00','Direct Transfer','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
- (20,118,2,4,'1','2009-01-10 00:00:00','Credit Card','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
- (21,93,3,1,'4','2008-03-25 00:00:00','Check','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
- (22,88,1,2,'3','2009-10-21 00:00:00','Direct Transfer','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
- (23,65,2,4,'1','2008-01-10 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
- (24,157,3,3,'1','2008-03-11 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
- (25,97,3,2,'2','2008-04-05 00:00:00','Direct Transfer','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
- (26,19,1,1,'1','2009-01-21 00:00:00','Check','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
- (27,190,2,2,'2','2008-05-07 00:00:00','Credit Card','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
- (28,42,3,3,'3','2009-12-12 00:00:00','Direct Transfer','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
- (29,79,1,4,'4','2009-12-13 00:00:00','Credit Card','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
- (30,44,2,1,'1','2009-12-14 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
- (31,109,3,2,'2','2009-12-15 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
- (32,82,1,3,'3','2009-07-21 00:00:00','Check','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
- (33,127,2,4,'4','2009-03-07 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
- (34,100,3,1,'1','2009-12-15 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
- (35,21,1,2,'2','2009-12-13 00:00:00','Direct Transfer','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
- (36,64,2,3,'3','2009-01-10 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
- (37,183,3,4,'4','2009-03-06 00:00:00','Check','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
- (38,137,1,1,'2','2009-12-13 00:00:00','Direct Transfer','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
- (39,172,2,2,'3','2008-01-10 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
- (40,160,3,4,'1','2009-12-14 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
- (41,124,1,4,'2','2009-01-21 00:00:00','Credit Card','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
- (42,69,2,2,'3','2009-12-15 00:00:00','Credit Card','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
- (43,187,3,3,'1','2009-03-05 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
- (44,176,1,2,'1','2009-12-13 00:00:00','Direct Transfer','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
- (45,188,2,4,'1','2009-01-10 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
- (46,70,3,1,'4','2009-12-13 00:00:00','Check','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
- (47,191,1,2,'3','2009-10-21 00:00:00','Credit Card','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
- (48,123,2,4,'1','2009-12-10 00:00:00','Credit Card','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
- (49,83,3,3,'1','2009-03-11 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
- (50,99,3,2,'2','2009-04-05 00:00:00','Check','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL);
+ (1,114,1,1,'1','2009-01-21 00:00:00','Check','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
+ (2,17,2,2,'2','2008-05-07 00:00:00','Credit Card','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
+ (3,188,3,3,'3','2008-05-05 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
+ (4,138,1,4,'4','2008-10-21 00:00:00','Direct Transfer','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
+ (5,31,2,1,'1','2008-01-10 00:00:00','Check','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
+ (6,33,3,2,'2','2008-03-05 00:00:00','Direct Transfer','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
+ (7,147,1,3,'3','2009-07-21 00:00:00','Direct Transfer','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
+ (8,144,2,4,'4','2009-03-07 00:00:00','Credit Card','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
+ (9,51,3,1,'1','2008-02-05 00:00:00','Direct Transfer','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
+ (10,129,1,2,'2','2008-02-01 00:00:00','Check','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
+ (11,47,2,3,'3','2009-01-10 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
+ (12,179,3,4,'4','2009-03-06 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
+ (13,84,1,1,'2','2008-06-04 00:00:00','Credit Card','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
+ (14,163,2,2,'3','2008-01-10 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
+ (15,91,3,4,'1','2008-07-04 00:00:00','Check','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
+ (16,125,1,4,'2','2009-01-21 00:00:00','Credit Card','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
+ (17,12,2,2,'3','2008-01-10 00:00:00','Credit Card','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
+ (18,103,3,3,'1','2009-03-05 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
+ (19,27,1,2,'1','2008-10-21 00:00:00','Direct Transfer','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
+ (20,6,2,4,'1','2009-01-10 00:00:00','Credit Card','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
+ (21,181,3,1,'4','2008-03-25 00:00:00','Check','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
+ (22,68,1,2,'3','2009-10-21 00:00:00','Direct Transfer','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
+ (23,11,2,4,'1','2008-01-10 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
+ (24,19,3,3,'1','2008-03-11 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
+ (25,112,3,2,'2','2008-04-05 00:00:00','Direct Transfer','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
+ (26,61,1,1,'1','2009-01-21 00:00:00','Check','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
+ (27,8,2,2,'2','2008-05-07 00:00:00','Credit Card','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
+ (28,186,3,3,'3','2009-12-12 00:00:00','Direct Transfer','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
+ (29,48,1,4,'4','2009-12-13 00:00:00','Credit Card','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
+ (30,153,2,1,'1','2009-12-14 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
+ (31,43,3,2,'2','2009-12-15 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
+ (32,55,1,3,'3','2009-07-21 00:00:00','Check','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
+ (33,200,2,4,'4','2009-03-07 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
+ (34,120,3,1,'1','2009-12-15 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
+ (35,95,1,2,'2','2009-12-13 00:00:00','Direct Transfer','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
+ (36,97,2,3,'3','2009-01-10 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
+ (37,38,3,4,'4','2009-03-06 00:00:00','Check','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
+ (38,169,1,1,'2','2009-12-13 00:00:00','Direct Transfer','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
+ (39,194,2,2,'3','2008-01-10 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
+ (40,13,3,4,'1','2009-12-14 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
+ (41,142,1,4,'2','2009-01-21 00:00:00','Credit Card','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
+ (42,60,2,2,'3','2009-12-15 00:00:00','Credit Card','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
+ (43,29,3,3,'1','2009-03-05 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
+ (44,1,1,2,'1','2009-12-13 00:00:00','Direct Transfer','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
+ (45,161,2,4,'1','2009-01-10 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
+ (46,113,3,1,'4','2009-12-13 00:00:00','Check','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
+ (47,151,1,2,'3','2009-10-21 00:00:00','Credit Card','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
+ (48,167,2,4,'1','2009-12-10 00:00:00','Credit Card','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
+ (49,18,3,3,'1','2009-03-11 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL),
+ (50,164,3,2,'2','2009-04-05 00:00:00','Check','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL);
 /*!40000 ALTER TABLE `civicrm_participant` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -6939,7 +6935,7 @@ UNLOCK TABLES;
 LOCK TABLES `civicrm_pcp` WRITE;
 /*!40000 ALTER TABLE `civicrm_pcp` DISABLE KEYS */;
 INSERT INTO `civicrm_pcp` (`id`, `contact_id`, `status_id`, `title`, `intro_text`, `page_text`, `donate_link_text`, `page_id`, `page_type`, `pcp_block_id`, `is_thermometer`, `is_honor_roll`, `goal_amount`, `currency`, `is_active`, `is_notify`) VALUES
- (1,47,2,'My Personal Civi Fundraiser','I\'m on a mission to get all my friends and family to help support my favorite open-source civic sector CRM.','<p>Friends and family - please help build much needed infrastructure for the civic sector by supporting my personal campaign!</p>\r\n<p><a href=\"https://civicrm.org\">You can learn more about CiviCRM here</a>.</p>\r\n<p>Then click the <strong>Contribute Now</strong> button to go to our easy-to-use online contribution form.</p>','Contribute Now',1,'contribute',1,1,1,5000.00,'USD',1,1);
+ (1,150,2,'My Personal Civi Fundraiser','I\'m on a mission to get all my friends and family to help support my favorite open-source civic sector CRM.','<p>Friends and family - please help build much needed infrastructure for the civic sector by supporting my personal campaign!</p>\r\n<p><a href=\"https://civicrm.org\">You can learn more about CiviCRM here</a>.</p>\r\n<p>Then click the <strong>Contribute Now</strong> button to go to our easy-to-use online contribution form.</p>','Contribute Now',1,'contribute',1,1,1,5000.00,'USD',1,1);
 /*!40000 ALTER TABLE `civicrm_pcp` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -6961,164 +6957,157 @@ UNLOCK TABLES;
 LOCK TABLES `civicrm_phone` WRITE;
 /*!40000 ALTER TABLE `civicrm_phone` DISABLE KEYS */;
 INSERT INTO `civicrm_phone` (`id`, `contact_id`, `location_type_id`, `is_primary`, `is_billing`, `mobile_provider_id`, `phone`, `phone_ext`, `phone_numeric`, `phone_type_id`) VALUES
- (1,85,1,1,0,NULL,'(279) 303-3787',NULL,'2793033787',2),
- (2,85,1,0,0,NULL,'(719) 642-1488',NULL,'7196421488',1),
- (3,186,1,1,0,NULL,'448-2266',NULL,'4482266',2),
- (4,186,1,0,0,NULL,'287-4340',NULL,'2874340',1),
- (5,47,1,1,0,NULL,'(303) 560-2162',NULL,'3035602162',2),
- (6,47,1,0,0,NULL,'(502) 694-5820',NULL,'5026945820',1),
- (7,154,1,1,0,NULL,'(833) 562-8351',NULL,'8335628351',1),
- (8,154,1,0,0,NULL,'(436) 767-5465',NULL,'4367675465',1),
- (9,145,1,1,0,NULL,'(566) 795-3768',NULL,'5667953768',1),
- (10,50,1,1,0,NULL,'(459) 217-7905',NULL,'4592177905',2),
- (11,75,1,1,0,NULL,'(309) 333-5248',NULL,'3093335248',2),
- (12,4,1,1,0,NULL,'(433) 539-4752',NULL,'4335394752',2),
- (13,192,1,1,0,NULL,'896-7251',NULL,'8967251',2),
- (14,92,1,1,0,NULL,'610-4923',NULL,'6104923',1),
- (15,89,1,1,0,NULL,'669-8579',NULL,'6698579',2),
- (16,31,1,1,0,NULL,'884-3837',NULL,'8843837',1),
- (17,125,1,1,0,NULL,'(789) 407-7424',NULL,'7894077424',1),
- (18,125,1,0,0,NULL,'(527) 517-1969',NULL,'5275171969',2),
- (19,137,1,1,0,NULL,'(259) 739-4457',NULL,'2597394457',1),
- (20,46,1,1,0,NULL,'(801) 730-1414',NULL,'8017301414',1),
- (21,13,1,1,0,NULL,'(303) 482-8575',NULL,'3034828575',2),
- (22,13,1,0,0,NULL,'457-2350',NULL,'4572350',2),
- (23,113,1,1,0,NULL,'(500) 296-2713',NULL,'5002962713',1),
- (24,113,1,0,0,NULL,'242-8962',NULL,'2428962',2),
- (25,130,1,1,0,NULL,'855-5973',NULL,'8555973',2),
- (26,14,1,1,0,NULL,'(674) 534-2119',NULL,'6745342119',2),
- (27,14,1,0,0,NULL,'(327) 337-7430',NULL,'3273377430',2),
- (28,198,1,1,0,NULL,'695-1864',NULL,'6951864',2),
- (29,107,1,1,0,NULL,'388-2779',NULL,'3882779',2),
- (30,54,1,1,0,NULL,'290-1848',NULL,'2901848',2),
- (31,54,1,0,0,NULL,'809-4429',NULL,'8094429',1),
- (32,165,1,1,0,NULL,'(719) 359-6741',NULL,'7193596741',2),
- (33,37,1,1,0,NULL,'(393) 814-2612',NULL,'3938142612',2),
- (34,41,1,1,0,NULL,'(268) 597-1785',NULL,'2685971785',2),
- (35,41,1,0,0,NULL,'(847) 250-2679',NULL,'8472502679',1),
- (36,21,1,1,0,NULL,'791-7605',NULL,'7917605',1),
- (37,83,1,1,0,NULL,'623-5315',NULL,'6235315',2),
- (38,73,1,1,0,NULL,'(458) 565-6884',NULL,'4585656884',2),
- (39,73,1,0,0,NULL,'(223) 844-3637',NULL,'2238443637',2),
- (40,53,1,1,0,NULL,'(645) 506-9178',NULL,'6455069178',2),
- (41,53,1,0,0,NULL,'797-1516',NULL,'7971516',1),
- (42,178,1,1,0,NULL,'564-9745',NULL,'5649745',1),
- (43,133,1,1,0,NULL,'(599) 638-4025',NULL,'5996384025',2),
- (44,133,1,0,0,NULL,'620-3167',NULL,'6203167',2),
- (45,81,1,1,0,NULL,'668-2516',NULL,'6682516',1),
- (46,81,1,0,0,NULL,'(376) 671-9914',NULL,'3766719914',2),
- (47,6,1,1,0,NULL,'(534) 754-9451',NULL,'5347549451',1),
- (48,6,1,0,0,NULL,'206-4803',NULL,'2064803',2),
- (49,95,1,1,0,NULL,'(268) 418-1822',NULL,'2684181822',2),
- (50,95,1,0,0,NULL,'278-8674',NULL,'2788674',1),
- (51,171,1,1,0,NULL,'(752) 261-9115',NULL,'7522619115',1),
- (52,171,1,0,0,NULL,'451-1837',NULL,'4511837',1),
- (53,129,1,1,0,NULL,'878-7355',NULL,'8787355',1),
- (54,134,1,1,0,NULL,'785-4496',NULL,'7854496',2),
- (55,79,1,1,0,NULL,'(518) 279-2840',NULL,'5182792840',2),
- (56,72,1,1,0,NULL,'894-3259',NULL,'8943259',2),
- (57,72,1,0,0,NULL,'705-7519',NULL,'7057519',1),
- (58,185,1,1,0,NULL,'(673) 499-9415',NULL,'6734999415',1),
- (59,185,1,0,0,NULL,'(722) 679-5938',NULL,'7226795938',1),
- (60,115,1,1,0,NULL,'(721) 501-5221',NULL,'7215015221',2),
- (61,115,1,0,0,NULL,'(465) 827-6395',NULL,'4658276395',1),
- (62,43,1,1,0,NULL,'704-4891',NULL,'7044891',1),
- (63,182,1,1,0,NULL,'(518) 618-3350',NULL,'5186183350',2),
- (64,182,1,0,0,NULL,'794-2005',NULL,'7942005',1),
- (65,8,1,1,0,NULL,'(303) 510-9738',NULL,'3035109738',1),
- (66,144,1,1,0,NULL,'370-8476',NULL,'3708476',2),
- (67,144,1,0,0,NULL,'(321) 291-3981',NULL,'3212913981',1),
- (68,39,1,1,0,NULL,'877-2341',NULL,'8772341',1),
- (69,39,1,0,0,NULL,'(780) 779-2979',NULL,'7807792979',1),
- (70,168,1,1,0,NULL,'868-5577',NULL,'8685577',1),
- (71,94,1,1,0,NULL,'(896) 288-1535',NULL,'8962881535',2),
- (72,94,1,0,0,NULL,'845-1956',NULL,'8451956',2),
- (73,45,1,1,0,NULL,'364-4299',NULL,'3644299',2),
- (74,101,1,1,0,NULL,'(782) 317-7851',NULL,'7823177851',2),
- (75,101,1,0,0,NULL,'(703) 557-6101',NULL,'7035576101',1),
- (76,69,1,1,0,NULL,'(733) 441-2267',NULL,'7334412267',1),
- (77,12,1,1,0,NULL,'(643) 481-7384',NULL,'6434817384',2),
- (78,12,1,0,0,NULL,'(468) 275-7478',NULL,'4682757478',2),
- (79,193,1,1,0,NULL,'(566) 757-4790',NULL,'5667574790',1),
- (80,193,1,0,0,NULL,'869-2722',NULL,'8692722',1),
- (81,105,1,1,0,NULL,'(326) 818-7938',NULL,'3268187938',2),
- (82,143,1,1,0,NULL,'(660) 678-6460',NULL,'6606786460',1),
- (83,27,1,1,0,NULL,'(449) 548-6502',NULL,'4495486502',2),
- (84,27,1,0,0,NULL,'(663) 244-6322',NULL,'6632446322',2),
- (85,120,1,1,0,NULL,'(339) 870-1428',NULL,'3398701428',1),
- (86,122,1,1,0,NULL,'622-7649',NULL,'6227649',2),
- (87,35,1,1,0,NULL,'566-4929',NULL,'5664929',1),
- (88,150,1,1,0,NULL,'511-4999',NULL,'5114999',2),
- (89,150,1,0,0,NULL,'(522) 560-8392',NULL,'5225608392',2),
- (90,62,1,1,0,NULL,'(381) 283-7030',NULL,'3812837030',2),
- (91,62,1,0,0,NULL,'839-4313',NULL,'8394313',2),
- (92,172,1,1,0,NULL,'(372) 541-6015',NULL,'3725416015',1),
- (93,11,1,1,0,NULL,'(732) 306-1806',NULL,'7323061806',1),
- (94,11,1,0,0,NULL,'(819) 300-4836',NULL,'8193004836',2),
- (95,3,1,1,0,NULL,'(848) 678-6525',NULL,'8486786525',1),
- (96,22,1,1,0,NULL,'(833) 473-7882',NULL,'8334737882',1),
- (97,124,1,1,0,NULL,'(246) 707-9282',NULL,'2467079282',1),
- (98,9,1,1,0,NULL,'(656) 721-1695',NULL,'6567211695',2),
- (99,100,1,1,0,NULL,'576-1534',NULL,'5761534',1),
- (100,100,1,0,0,NULL,'464-6287',NULL,'4646287',2),
- (101,187,1,1,0,NULL,'877-3713',NULL,'8773713',1),
- (102,187,1,0,0,NULL,'(369) 578-3257',NULL,'3695783257',2),
- (103,127,1,1,0,NULL,'772-9433',NULL,'7729433',1),
- (104,7,1,1,0,NULL,'(693) 507-2755',NULL,'6935072755',1),
- (105,7,1,0,0,NULL,'(616) 555-5022',NULL,'6165555022',2),
- (106,26,1,1,0,NULL,'(295) 228-5081',NULL,'2952285081',2),
- (107,91,1,1,0,NULL,'737-5353',NULL,'7375353',1),
- (108,15,1,1,0,NULL,'421-8961',NULL,'4218961',2),
- (109,19,1,1,0,NULL,'(599) 642-3289',NULL,'5996423289',2),
- (110,76,1,1,0,NULL,'255-1610',NULL,'2551610',2),
- (111,76,1,0,0,NULL,'(654) 357-4106',NULL,'6543574106',1),
- (112,109,1,1,0,NULL,'(304) 310-5394',NULL,'3043105394',2),
- (113,109,1,0,0,NULL,'(422) 435-4558',NULL,'4224354558',1),
- (114,20,1,1,0,NULL,'417-1474',NULL,'4171474',2),
- (115,191,1,1,0,NULL,'(871) 741-9885',NULL,'8717419885',1),
- (116,191,1,0,0,NULL,'452-2882',NULL,'4522882',2),
- (117,148,1,1,0,NULL,'(267) 572-7648',NULL,'2675727648',1),
- (118,29,1,1,0,NULL,'534-1290',NULL,'5341290',1),
- (119,29,1,0,0,NULL,'(204) 842-9756',NULL,'2048429756',2),
- (120,142,1,1,0,NULL,'(489) 880-6175',NULL,'4898806175',2),
- (121,142,1,0,0,NULL,'(460) 505-9303',NULL,'4605059303',1),
- (122,114,1,1,0,NULL,'277-2713',NULL,'2772713',2),
- (123,70,1,1,0,NULL,'(324) 340-8838',NULL,'3243408838',2),
- (124,67,1,1,0,NULL,'(558) 637-2586',NULL,'5586372586',1),
- (125,33,1,1,0,NULL,'(463) 431-8882',NULL,'4634318882',2),
- (126,33,1,0,0,NULL,'(288) 745-9645',NULL,'2887459645',1),
- (127,135,1,1,0,NULL,'(615) 422-3764',NULL,'6154223764',2),
- (128,104,1,1,0,NULL,'324-5988',NULL,'3245988',1),
- (129,98,1,1,0,NULL,'(520) 740-4999',NULL,'5207404999',1),
- (130,102,1,1,0,NULL,'(484) 738-7467',NULL,'4847387467',1),
- (131,32,1,1,0,NULL,'392-7829',NULL,'3927829',2),
- (132,61,1,1,0,NULL,'(725) 382-1235',NULL,'7253821235',2),
- (133,180,1,1,0,NULL,'(740) 821-4963',NULL,'7408214963',1),
- (134,153,1,1,0,NULL,'890-4569',NULL,'8904569',1),
- (135,153,1,0,0,NULL,'554-5177',NULL,'5545177',2),
- (136,147,1,1,0,NULL,'(739) 823-8825',NULL,'7398238825',2),
- (137,28,1,1,0,NULL,'(418) 379-5462',NULL,'4183795462',2),
- (138,121,1,1,0,NULL,'(703) 290-3068',NULL,'7032903068',1),
- (139,121,1,0,0,NULL,'(773) 426-5438',NULL,'7734265438',2),
- (140,18,1,1,0,NULL,'858-1522',NULL,'8581522',1),
- (141,16,1,1,0,NULL,'504-5988',NULL,'5045988',1),
- (142,183,1,1,0,NULL,'(775) 353-2230',NULL,'7753532230',1),
- (143,110,1,1,0,NULL,'474-2450',NULL,'4742450',1),
- (144,149,1,1,0,NULL,'747-7506',NULL,'7477506',2),
- (145,68,1,1,0,NULL,'(405) 381-7245',NULL,'4053817245',2),
- (146,42,1,1,0,NULL,'(859) 510-3060',NULL,'8595103060',2),
- (147,42,1,0,0,NULL,'606-6996',NULL,'6066996',2),
- (148,169,1,1,0,NULL,'503-1128',NULL,'5031128',1),
- (149,169,1,0,0,NULL,'(882) 721-1401',NULL,'8827211401',2),
- (150,88,1,1,0,NULL,'(713) 882-8098',NULL,'7138828098',2),
- (151,88,1,0,0,NULL,'(220) 649-9959',NULL,'2206499959',1),
- (152,57,1,1,0,NULL,'495-6865',NULL,'4956865',1),
- (153,151,1,1,0,NULL,'(410) 828-3499',NULL,'4108283499',2),
- (154,151,1,0,0,NULL,'(339) 756-8492',NULL,'3397568492',2),
- (155,194,1,1,0,NULL,'437-1211',NULL,'4371211',2),
- (156,NULL,1,0,0,NULL,'204 222-1000',NULL,'2042221000',1),
- (157,NULL,1,0,0,NULL,'204 223-1000',NULL,'2042231000',1),
- (158,NULL,1,0,0,NULL,'303 323-1000',NULL,'3033231000',1);
+ (1,97,1,1,0,NULL,'(646) 253-7131',NULL,'6462537131',2),
+ (2,97,1,0,0,NULL,'363-4744',NULL,'3634744',1),
+ (3,195,1,1,0,NULL,'(218) 541-9504',NULL,'2185419504',2),
+ (4,150,1,1,0,NULL,'(390) 618-7407',NULL,'3906187407',1),
+ (5,150,1,0,0,NULL,'786-6580',NULL,'7866580',1),
+ (6,98,1,1,0,NULL,'527-1416',NULL,'5271416',1),
+ (7,98,1,0,0,NULL,'(636) 899-1581',NULL,'6368991581',2),
+ (8,164,1,1,0,NULL,'612-7303',NULL,'6127303',1),
+ (9,9,1,1,0,NULL,'(801) 325-8238',NULL,'8013258238',2),
+ (10,9,1,0,0,NULL,'551-8397',NULL,'5518397',2),
+ (11,79,1,1,0,NULL,'501-5765',NULL,'5015765',1),
+ (12,79,1,0,0,NULL,'(522) 803-7504',NULL,'5228037504',1),
+ (13,75,1,1,0,NULL,'541-4736',NULL,'5414736',2),
+ (14,60,1,1,0,NULL,'775-6154',NULL,'7756154',2),
+ (15,60,1,0,0,NULL,'(416) 415-5105',NULL,'4164155105',2),
+ (16,31,1,1,0,NULL,'(601) 347-9976',NULL,'6013479976',1),
+ (17,162,1,1,0,NULL,'(749) 856-4550',NULL,'7498564550',2),
+ (18,162,1,0,0,NULL,'(722) 508-3137',NULL,'7225083137',1),
+ (19,29,1,1,0,NULL,'650-4666',NULL,'6504666',1),
+ (20,29,1,0,0,NULL,'452-4391',NULL,'4524391',1),
+ (21,136,1,1,0,NULL,'(755) 296-7041',NULL,'7552967041',2),
+ (22,136,1,0,0,NULL,'(288) 418-5400',NULL,'2884185400',1),
+ (23,67,1,1,0,NULL,'795-3330',NULL,'7953330',1),
+ (24,67,1,0,0,NULL,'740-2364',NULL,'7402364',1),
+ (25,114,1,1,0,NULL,'736-6784',NULL,'7366784',1),
+ (26,114,1,0,0,NULL,'890-1386',NULL,'8901386',1),
+ (27,35,1,1,0,NULL,'(535) 379-5750',NULL,'5353795750',1),
+ (28,53,1,1,0,NULL,'(876) 301-8623',NULL,'8763018623',2),
+ (29,53,1,0,0,NULL,'(790) 314-4813',NULL,'7903144813',1),
+ (30,72,1,1,0,NULL,'(592) 735-6998',NULL,'5927356998',2),
+ (31,104,1,1,0,NULL,'(687) 694-1612',NULL,'6876941612',2),
+ (32,140,1,1,0,NULL,'(629) 222-6531',NULL,'6292226531',1),
+ (33,140,1,0,0,NULL,'(683) 606-3726',NULL,'6836063726',2),
+ (34,78,1,1,0,NULL,'416-4580',NULL,'4164580',2),
+ (35,78,1,0,0,NULL,'722-6485',NULL,'7226485',2),
+ (36,145,1,1,0,NULL,'514-5321',NULL,'5145321',2),
+ (37,51,1,1,0,NULL,'850-6282',NULL,'8506282',2),
+ (38,51,1,0,0,NULL,'(348) 556-2670',NULL,'3485562670',2),
+ (39,74,1,1,0,NULL,'665-2083',NULL,'6652083',2),
+ (40,165,1,1,0,NULL,'332-9803',NULL,'3329803',1),
+ (41,77,1,1,0,NULL,'449-5098',NULL,'4495098',2),
+ (42,201,1,1,0,NULL,'468-6679',NULL,'4686679',1),
+ (43,127,1,1,0,NULL,'444-6952',NULL,'4446952',1),
+ (44,127,1,0,0,NULL,'267-4976',NULL,'2674976',1),
+ (45,176,1,1,0,NULL,'(797) 729-1016',NULL,'7977291016',2),
+ (46,83,1,1,0,NULL,'337-3043',NULL,'3373043',2),
+ (47,128,1,1,0,NULL,'212-1903',NULL,'2121903',2),
+ (48,128,1,0,0,NULL,'248-9648',NULL,'2489648',1),
+ (49,148,1,1,0,NULL,'444-5861',NULL,'4445861',2),
+ (50,88,1,1,0,NULL,'(605) 707-9494',NULL,'6057079494',2),
+ (51,88,1,0,0,NULL,'(532) 626-6996',NULL,'5326266996',1),
+ (52,38,1,1,0,NULL,'413-3029',NULL,'4133029',2),
+ (53,21,1,1,0,NULL,'570-8463',NULL,'5708463',2),
+ (54,21,1,0,0,NULL,'507-5096',NULL,'5075096',1),
+ (55,170,1,1,0,NULL,'881-4753',NULL,'8814753',2),
+ (56,186,1,1,0,NULL,'(514) 463-6430',NULL,'5144636430',1),
+ (57,44,1,1,0,NULL,'332-2101',NULL,'3322101',1),
+ (58,196,1,1,0,NULL,'(229) 760-8321',NULL,'2297608321',2),
+ (59,196,1,0,0,NULL,'(826) 355-3423',NULL,'8263553423',2),
+ (60,130,1,1,0,NULL,'510-3274',NULL,'5103274',1),
+ (61,47,1,1,0,NULL,'(774) 494-4788',NULL,'7744944788',2),
+ (62,47,1,0,0,NULL,'807-1246',NULL,'8071246',1),
+ (63,4,1,1,0,NULL,'614-5247',NULL,'6145247',2),
+ (64,34,1,1,0,NULL,'239-8919',NULL,'2398919',2),
+ (65,34,1,0,0,NULL,'294-3324',NULL,'2943324',1),
+ (66,108,1,1,0,NULL,'(557) 567-2455',NULL,'5575672455',1),
+ (67,108,1,0,0,NULL,'760-9310',NULL,'7609310',1),
+ (68,87,1,1,0,NULL,'(676) 323-2224',NULL,'6763232224',1),
+ (69,200,1,1,0,NULL,'724-3065',NULL,'7243065',2),
+ (70,106,1,1,0,NULL,'888-2363',NULL,'8882363',1),
+ (71,50,1,1,0,NULL,'(251) 271-1398',NULL,'2512711398',1),
+ (72,50,1,0,0,NULL,'697-5935',NULL,'6975935',1),
+ (73,122,1,1,0,NULL,'(676) 606-1618',NULL,'6766061618',2),
+ (74,107,1,1,0,NULL,'(370) 372-5604',NULL,'3703725604',2),
+ (75,23,1,1,0,NULL,'(478) 580-8199',NULL,'4785808199',1),
+ (76,59,1,1,0,NULL,'205-5527',NULL,'2055527',1),
+ (77,59,1,0,0,NULL,'885-9530',NULL,'8859530',1),
+ (78,58,1,1,0,NULL,'359-5454',NULL,'3595454',1),
+ (79,58,1,0,0,NULL,'(319) 566-9208',NULL,'3195669208',1),
+ (80,141,1,1,0,NULL,'(263) 368-6667',NULL,'2633686667',1),
+ (81,105,1,1,0,NULL,'452-5793',NULL,'4525793',1),
+ (82,61,1,1,0,NULL,'(597) 710-8038',NULL,'5977108038',2),
+ (83,182,1,1,0,NULL,'(507) 778-9846',NULL,'5077789846',2),
+ (84,182,1,0,0,NULL,'682-5497',NULL,'6825497',1),
+ (85,103,1,1,0,NULL,'(550) 551-3452',NULL,'5505513452',1),
+ (86,110,1,1,0,NULL,'599-7946',NULL,'5997946',2),
+ (87,12,1,1,0,NULL,'519-4086',NULL,'5194086',1),
+ (88,56,1,1,0,NULL,'700-4073',NULL,'7004073',1),
+ (89,56,1,0,0,NULL,'804-5934',NULL,'8045934',2),
+ (90,156,1,1,0,NULL,'(895) 241-8089',NULL,'8952418089',2),
+ (91,190,1,1,0,NULL,'(378) 510-4678',NULL,'3785104678',1),
+ (92,146,1,1,0,NULL,'(490) 735-3826',NULL,'4907353826',2),
+ (93,163,1,1,0,NULL,'386-2527',NULL,'3862527',1),
+ (94,185,1,1,0,NULL,'751-4105',NULL,'7514105',2),
+ (95,191,1,1,0,NULL,'(338) 827-8069',NULL,'3388278069',2),
+ (96,18,1,1,0,NULL,'(323) 672-1868',NULL,'3236721868',1),
+ (97,18,1,0,0,NULL,'(245) 600-3423',NULL,'2456003423',1),
+ (98,125,1,1,0,NULL,'(822) 264-4018',NULL,'8222644018',1),
+ (99,125,1,0,0,NULL,'(487) 564-4058',NULL,'4875644058',2),
+ (100,89,1,1,0,NULL,'(226) 231-7378',NULL,'2262317378',1),
+ (101,71,1,1,0,NULL,'(475) 742-3788',NULL,'4757423788',1),
+ (102,71,1,0,0,NULL,'(712) 307-3186',NULL,'7123073186',1),
+ (103,126,1,1,0,NULL,'300-4061',NULL,'3004061',2),
+ (104,126,1,0,0,NULL,'313-3578',NULL,'3133578',1),
+ (105,193,1,1,0,NULL,'(672) 495-7540',NULL,'6724957540',1),
+ (106,193,1,0,0,NULL,'(457) 539-4910',NULL,'4575394910',1),
+ (107,54,1,1,0,NULL,'(521) 423-6148',NULL,'5214236148',1),
+ (108,153,1,1,0,NULL,'(704) 753-2366',NULL,'7047532366',1),
+ (109,91,1,1,0,NULL,'758-7010',NULL,'7587010',1),
+ (110,135,1,1,0,NULL,'531-5604',NULL,'5315604',1),
+ (111,135,1,0,0,NULL,'(246) 422-4149',NULL,'2464224149',1),
+ (112,119,1,1,0,NULL,'479-3012',NULL,'4793012',1),
+ (113,119,1,0,0,NULL,'441-1154',NULL,'4411154',2),
+ (114,57,1,1,0,NULL,'(388) 422-9424',NULL,'3884229424',2),
+ (115,57,1,0,0,NULL,'(551) 453-7198',NULL,'5514537198',1),
+ (116,62,1,1,0,NULL,'(619) 770-7664',NULL,'6197707664',2),
+ (117,115,1,1,0,NULL,'342-1979',NULL,'3421979',2),
+ (118,115,1,0,0,NULL,'371-4323',NULL,'3714323',1),
+ (119,172,1,1,0,NULL,'671-6803',NULL,'6716803',1),
+ (120,5,1,1,0,NULL,'(644) 314-7910',NULL,'6443147910',2),
+ (121,5,1,0,0,NULL,'258-5718',NULL,'2585718',2),
+ (122,169,1,1,0,NULL,'(312) 837-2443',NULL,'3128372443',1),
+ (123,169,1,0,0,NULL,'(251) 202-6685',NULL,'2512026685',1),
+ (124,49,1,1,0,NULL,'(691) 669-9059',NULL,'6916699059',1),
+ (125,157,1,1,0,NULL,'(774) 317-1267',NULL,'7743171267',2),
+ (126,157,1,0,0,NULL,'575-5412',NULL,'5755412',2),
+ (127,95,1,1,0,NULL,'456-5361',NULL,'4565361',1),
+ (128,167,1,1,0,NULL,'(757) 722-4958',NULL,'7577224958',1),
+ (129,167,1,0,0,NULL,'(796) 898-5144',NULL,'7968985144',2),
+ (130,155,1,1,0,NULL,'(240) 606-2968',NULL,'2406062968',2),
+ (131,155,1,0,0,NULL,'283-1000',NULL,'2831000',2),
+ (132,19,1,1,0,NULL,'691-1521',NULL,'6911521',2),
+ (133,178,1,1,0,NULL,'605-2061',NULL,'6052061',1),
+ (134,178,1,0,0,NULL,'(405) 310-2573',NULL,'4053102573',2),
+ (135,149,1,1,0,NULL,'(841) 690-5501',NULL,'8416905501',2),
+ (136,45,1,1,0,NULL,'339-3080',NULL,'3393080',2),
+ (137,45,1,0,0,NULL,'510-7971',NULL,'5107971',2),
+ (138,63,1,1,0,NULL,'360-9874',NULL,'3609874',1),
+ (139,63,1,0,0,NULL,'(732) 469-9929',NULL,'7324699929',1),
+ (140,117,1,1,0,NULL,'(893) 770-8444',NULL,'8937708444',2),
+ (141,117,1,0,0,NULL,'(276) 723-2767',NULL,'2767232767',1),
+ (142,94,1,1,0,NULL,'(389) 483-5062',NULL,'3894835062',2),
+ (143,168,1,1,0,NULL,'(841) 654-3143',NULL,'8416543143',2),
+ (144,139,1,1,0,NULL,'693-2405',NULL,'6932405',2),
+ (145,96,1,1,0,NULL,'(659) 577-2257',NULL,'6595772257',1),
+ (146,90,1,1,0,NULL,'291-9115',NULL,'2919115',2),
+ (147,90,1,0,0,NULL,'205-6125',NULL,'2056125',1),
+ (148,132,1,1,0,NULL,'676-3444',NULL,'6763444',1),
+ (149,NULL,1,0,0,NULL,'204 222-1000',NULL,'2042221000',1),
+ (150,NULL,1,0,0,NULL,'204 223-1000',NULL,'2042231000',1),
+ (151,NULL,1,0,0,NULL,'303 323-1000',NULL,'3033231000',1);
 /*!40000 ALTER TABLE `civicrm_phone` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -7353,221 +7342,221 @@ UNLOCK TABLES;
 LOCK TABLES `civicrm_relationship` WRITE;
 /*!40000 ALTER TABLE `civicrm_relationship` DISABLE KEYS */;
 INSERT INTO `civicrm_relationship` (`id`, `contact_id_a`, `contact_id_b`, `relationship_type_id`, `start_date`, `end_date`, `is_active`, `description`, `is_permission_a_b`, `is_permission_b_a`, `case_id`, `created_date`, `modified_date`) VALUES
- (1,69,40,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (2,12,40,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (3,69,101,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (4,12,101,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (5,12,69,4,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (6,101,90,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (7,69,90,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (8,12,90,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (9,40,90,7,NULL,NULL,0,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (10,101,40,2,NULL,NULL,0,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (11,143,193,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (12,27,193,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (13,143,105,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (14,27,105,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (15,27,143,4,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (16,105,189,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (17,143,189,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (18,27,189,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (19,193,189,7,NULL,NULL,0,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (20,105,193,2,NULL,NULL,0,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (21,35,120,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (22,157,120,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (23,35,122,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (24,157,122,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (25,157,35,4,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (26,122,60,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (27,35,60,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (28,157,60,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (29,120,60,7,NULL,NULL,0,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (30,122,120,2,NULL,NULL,0,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (31,64,150,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (32,172,150,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (33,64,62,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (34,172,62,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (35,172,64,4,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (36,62,58,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (37,64,58,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (38,172,58,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (39,150,58,7,NULL,NULL,0,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (40,62,150,2,NULL,NULL,0,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (41,3,106,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (42,22,106,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (43,3,11,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (44,22,11,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (45,22,3,4,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (46,11,167,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (47,3,167,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (48,22,167,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (49,106,167,7,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (50,11,106,2,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (51,124,131,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (52,9,131,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (53,124,38,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (54,9,38,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (55,9,124,4,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (56,38,164,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (57,124,164,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (58,9,164,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (59,131,164,7,NULL,NULL,0,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (60,38,131,2,NULL,NULL,0,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (61,127,100,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (62,7,100,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (63,127,187,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (64,7,187,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (65,7,127,4,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (66,187,48,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (67,127,48,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (68,7,48,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (69,100,48,7,NULL,NULL,0,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (70,187,100,2,NULL,NULL,0,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (71,15,26,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (72,19,26,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (73,15,91,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (74,19,91,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (75,19,15,4,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (76,91,80,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (77,15,80,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (78,19,80,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (79,26,80,7,NULL,NULL,0,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (80,91,26,2,NULL,NULL,0,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (81,20,76,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (82,191,76,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (83,20,109,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (84,191,109,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (85,191,20,4,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (86,109,156,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (87,20,156,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (88,191,156,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (89,76,156,7,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (90,109,76,2,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (91,29,148,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (92,197,148,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (93,29,152,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (94,197,152,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (95,197,29,4,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (96,152,56,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (97,29,56,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (98,197,56,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (99,148,56,7,NULL,NULL,0,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (100,152,148,2,NULL,NULL,0,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (101,70,142,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (102,55,142,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (103,70,114,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (104,55,114,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (105,55,70,4,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (106,114,179,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (107,70,179,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (108,55,179,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (109,142,179,7,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (110,114,142,2,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (111,44,67,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (112,33,67,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (113,44,96,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (114,33,96,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (115,33,44,4,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (116,96,24,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (117,44,24,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (118,33,24,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (119,67,24,7,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (120,96,67,2,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (121,5,111,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (122,97,111,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (123,5,135,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (124,97,135,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (125,97,5,4,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (126,135,66,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (127,5,66,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (128,97,66,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (129,111,66,7,NULL,NULL,0,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (130,135,111,2,NULL,NULL,0,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (131,98,104,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (132,102,104,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (133,98,190,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (134,102,190,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (135,102,98,4,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (136,190,34,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (137,98,34,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (138,102,34,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (139,104,34,7,NULL,NULL,0,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (140,190,104,2,NULL,NULL,0,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (141,61,32,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (142,180,32,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (143,61,84,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (144,180,84,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (145,180,61,4,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (146,84,162,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (147,61,162,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (148,180,162,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (149,32,162,7,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (150,84,32,2,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (151,49,153,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (152,28,153,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (153,49,147,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (154,28,147,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (155,28,49,4,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (156,147,200,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (157,49,200,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (158,28,200,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (159,153,200,7,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (160,147,153,2,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (161,117,121,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (162,16,121,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (163,117,18,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (164,16,18,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (165,16,117,4,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (166,18,25,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (167,117,25,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (168,16,25,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (169,121,25,7,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (170,18,121,2,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (171,110,112,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (172,149,112,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (173,110,183,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (174,149,183,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (175,149,110,4,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (176,183,119,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (177,110,119,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (178,149,119,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (179,112,119,7,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (180,183,112,2,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (181,169,68,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (182,88,68,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (183,169,42,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (184,88,42,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (185,88,169,4,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (186,42,166,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (187,169,166,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (188,88,166,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (189,68,166,7,NULL,NULL,0,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (190,42,68,2,NULL,NULL,0,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (191,151,57,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (192,194,57,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (193,151,10,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (194,194,10,1,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (195,194,151,4,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (196,10,65,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (197,151,65,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (198,194,65,8,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (199,57,65,7,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (200,10,57,2,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (201,10,17,5,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (202,142,77,5,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (203,95,87,5,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (204,115,93,5,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (205,83,123,5,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (206,15,126,5,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (207,120,128,5,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (208,185,140,5,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (209,45,146,5,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (210,183,160,5,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (211,3,163,5,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (212,47,184,5,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (213,159,188,5,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (214,182,195,5,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18'),
- (215,193,196,5,NULL,NULL,1,NULL,0,0,NULL,'2023-01-25 00:10:18','2023-01-25 00:10:18');
+ (1,122,106,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:20','2023-03-08 06:51:20'),
+ (2,37,106,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (3,122,50,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (4,37,50,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (5,37,122,4,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (6,50,43,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (7,122,43,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (8,37,43,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (9,106,43,7,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (10,50,106,2,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (11,180,107,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (12,59,107,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (13,180,23,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (14,59,23,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (15,59,180,4,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (16,23,143,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (17,180,143,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (18,59,143,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (19,107,143,7,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (20,23,107,2,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (21,17,58,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (22,105,58,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (23,17,141,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (24,105,141,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (25,105,17,4,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (26,141,16,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (27,17,16,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (28,105,16,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (29,58,16,7,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (30,141,58,2,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (31,109,61,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (32,159,61,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (33,109,8,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (34,159,8,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (35,159,109,4,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (36,8,138,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (37,109,138,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (38,159,138,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (39,61,138,7,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (40,8,61,2,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (41,103,182,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (42,46,182,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (43,103,36,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (44,46,36,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (45,46,103,4,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (46,36,33,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (47,103,33,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (48,46,33,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (49,182,33,7,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (50,36,182,2,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (51,56,110,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (52,156,110,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (53,56,12,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (54,156,12,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (55,156,56,4,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (56,12,118,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (57,56,118,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (58,156,118,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (59,110,118,7,NULL,NULL,0,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (60,12,110,2,NULL,NULL,0,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (61,92,190,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (62,163,190,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (63,92,146,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (64,163,146,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (65,163,92,4,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (66,146,99,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (67,92,99,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (68,163,99,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (69,190,99,7,NULL,NULL,0,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (70,146,190,2,NULL,NULL,0,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (71,18,185,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (72,125,185,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (73,18,191,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (74,125,191,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (75,125,18,4,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (76,191,20,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (77,18,20,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (78,125,20,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (79,185,20,7,NULL,NULL,0,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (80,191,185,2,NULL,NULL,0,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (81,89,80,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (82,71,80,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (83,89,6,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (84,71,6,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (85,71,89,4,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (86,6,27,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (87,89,27,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (88,71,27,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (89,80,27,7,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (90,6,80,2,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (91,54,126,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (92,153,126,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (93,54,193,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (94,153,193,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (95,153,54,4,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (96,193,160,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (97,54,160,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (98,153,160,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (99,126,160,7,NULL,NULL,0,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (100,193,126,2,NULL,NULL,0,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (101,131,91,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (102,25,91,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (103,131,135,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (104,25,135,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (105,25,131,4,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (106,135,7,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (107,131,7,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (108,25,7,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (109,91,7,7,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (110,135,91,2,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (111,119,26,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (112,57,26,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (113,119,64,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (114,57,64,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (115,57,119,4,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (116,64,181,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (117,119,181,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (118,57,181,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (119,26,181,7,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (120,64,26,2,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (121,2,62,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (122,172,62,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (123,2,115,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (124,172,115,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (125,172,2,4,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (126,115,55,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (127,2,55,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (128,172,55,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (129,62,55,7,NULL,NULL,0,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (130,115,62,2,NULL,NULL,0,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (131,169,5,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (132,49,5,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (133,169,84,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (134,49,84,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (135,49,169,4,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (136,84,85,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (137,169,85,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (138,49,85,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (139,5,85,7,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (140,84,5,2,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (141,167,157,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (142,120,157,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (143,167,95,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (144,120,95,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (145,120,167,4,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (146,95,41,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (147,167,41,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (148,120,41,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (149,157,41,7,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (150,95,157,2,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (151,19,155,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (152,178,155,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (153,19,42,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (154,178,42,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (155,178,19,4,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (156,42,65,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (157,19,65,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (158,178,65,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (159,155,65,7,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (160,42,155,2,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (161,63,149,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (162,117,149,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (163,63,45,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (164,117,45,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (165,117,63,4,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (166,45,100,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (167,63,100,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (168,117,100,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (169,149,100,7,NULL,NULL,0,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (170,45,149,2,NULL,NULL,0,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (171,188,94,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (172,168,94,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (173,188,158,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (174,168,158,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (175,168,188,4,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (176,158,93,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (177,188,93,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (178,168,93,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (179,94,93,7,NULL,NULL,0,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (180,158,94,2,NULL,NULL,0,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (181,15,139,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (182,197,139,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (183,15,198,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (184,197,198,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (185,197,15,4,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (186,198,129,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (187,15,129,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (188,197,129,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (189,139,129,7,NULL,NULL,0,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (190,198,139,2,NULL,NULL,0,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (191,90,10,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (192,132,10,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (193,90,96,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (194,132,96,1,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (195,132,90,4,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (196,96,3,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (197,90,3,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (198,132,3,8,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (199,10,3,7,NULL,NULL,0,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (200,96,10,2,NULL,NULL,0,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (201,182,13,5,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (202,56,14,5,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (203,171,24,5,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (204,169,70,5,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (205,174,82,5,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (206,135,102,5,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (207,91,112,5,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (208,154,137,5,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (209,37,151,5,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (210,142,173,5,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (211,164,177,5,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (212,94,183,5,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (213,123,187,5,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (214,196,189,5,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21'),
+ (215,149,194,5,NULL,NULL,1,NULL,0,0,NULL,'2023-03-08 06:51:21','2023-03-08 06:51:21');
 /*!40000 ALTER TABLE `civicrm_relationship` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -7578,436 +7567,436 @@ UNLOCK TABLES;
 LOCK TABLES `civicrm_relationship_cache` WRITE;
 /*!40000 ALTER TABLE `civicrm_relationship_cache` DISABLE KEYS */;
 INSERT INTO `civicrm_relationship_cache` (`id`, `relationship_id`, `relationship_type_id`, `orientation`, `near_contact_id`, `near_relation`, `far_contact_id`, `far_relation`, `is_active`, `start_date`, `end_date`, `case_id`) VALUES
- (1,1,1,'a_b',69,'Child of',40,'Parent of',1,NULL,NULL,NULL),
- (2,1,1,'b_a',40,'Parent of',69,'Child of',1,NULL,NULL,NULL),
- (3,2,1,'a_b',12,'Child of',40,'Parent of',1,NULL,NULL,NULL),
- (4,2,1,'b_a',40,'Parent of',12,'Child of',1,NULL,NULL,NULL),
- (5,3,1,'a_b',69,'Child of',101,'Parent of',1,NULL,NULL,NULL),
- (6,3,1,'b_a',101,'Parent of',69,'Child of',1,NULL,NULL,NULL),
- (7,4,1,'a_b',12,'Child of',101,'Parent of',1,NULL,NULL,NULL),
- (8,4,1,'b_a',101,'Parent of',12,'Child of',1,NULL,NULL,NULL),
- (9,5,4,'a_b',12,'Sibling of',69,'Sibling of',1,NULL,NULL,NULL),
- (10,5,4,'b_a',69,'Sibling of',12,'Sibling of',1,NULL,NULL,NULL),
- (11,6,8,'a_b',101,'Household Member of',90,'Household Member is',1,NULL,NULL,NULL),
- (12,6,8,'b_a',90,'Household Member is',101,'Household Member of',1,NULL,NULL,NULL),
- (13,7,8,'a_b',69,'Household Member of',90,'Household Member is',1,NULL,NULL,NULL),
- (14,7,8,'b_a',90,'Household Member is',69,'Household Member of',1,NULL,NULL,NULL),
- (15,8,8,'a_b',12,'Household Member of',90,'Household Member is',1,NULL,NULL,NULL),
- (16,8,8,'b_a',90,'Household Member is',12,'Household Member of',1,NULL,NULL,NULL),
- (17,9,7,'a_b',40,'Head of Household for',90,'Head of Household is',0,NULL,NULL,NULL),
- (18,9,7,'b_a',90,'Head of Household is',40,'Head of Household for',0,NULL,NULL,NULL),
- (19,10,2,'a_b',101,'Spouse of',40,'Spouse of',0,NULL,NULL,NULL),
- (20,10,2,'b_a',40,'Spouse of',101,'Spouse of',0,NULL,NULL,NULL),
- (21,11,1,'a_b',143,'Child of',193,'Parent of',1,NULL,NULL,NULL),
- (22,11,1,'b_a',193,'Parent of',143,'Child of',1,NULL,NULL,NULL),
- (23,12,1,'a_b',27,'Child of',193,'Parent of',1,NULL,NULL,NULL),
- (24,12,1,'b_a',193,'Parent of',27,'Child of',1,NULL,NULL,NULL),
- (25,13,1,'a_b',143,'Child of',105,'Parent of',1,NULL,NULL,NULL),
- (26,13,1,'b_a',105,'Parent of',143,'Child of',1,NULL,NULL,NULL),
- (27,14,1,'a_b',27,'Child of',105,'Parent of',1,NULL,NULL,NULL),
- (28,14,1,'b_a',105,'Parent of',27,'Child of',1,NULL,NULL,NULL),
- (29,15,4,'a_b',27,'Sibling of',143,'Sibling of',1,NULL,NULL,NULL),
- (30,15,4,'b_a',143,'Sibling of',27,'Sibling of',1,NULL,NULL,NULL),
- (31,16,8,'a_b',105,'Household Member of',189,'Household Member is',1,NULL,NULL,NULL),
- (32,16,8,'b_a',189,'Household Member is',105,'Household Member of',1,NULL,NULL,NULL),
- (33,17,8,'a_b',143,'Household Member of',189,'Household Member is',1,NULL,NULL,NULL),
- (34,17,8,'b_a',189,'Household Member is',143,'Household Member of',1,NULL,NULL,NULL),
- (35,18,8,'a_b',27,'Household Member of',189,'Household Member is',1,NULL,NULL,NULL),
- (36,18,8,'b_a',189,'Household Member is',27,'Household Member of',1,NULL,NULL,NULL),
- (37,19,7,'a_b',193,'Head of Household for',189,'Head of Household is',0,NULL,NULL,NULL),
- (38,19,7,'b_a',189,'Head of Household is',193,'Head of Household for',0,NULL,NULL,NULL),
- (39,20,2,'a_b',105,'Spouse of',193,'Spouse of',0,NULL,NULL,NULL),
- (40,20,2,'b_a',193,'Spouse of',105,'Spouse of',0,NULL,NULL,NULL),
- (41,21,1,'a_b',35,'Child of',120,'Parent of',1,NULL,NULL,NULL),
- (42,21,1,'b_a',120,'Parent of',35,'Child of',1,NULL,NULL,NULL),
- (43,22,1,'a_b',157,'Child of',120,'Parent of',1,NULL,NULL,NULL),
- (44,22,1,'b_a',120,'Parent of',157,'Child of',1,NULL,NULL,NULL),
- (45,23,1,'a_b',35,'Child of',122,'Parent of',1,NULL,NULL,NULL),
- (46,23,1,'b_a',122,'Parent of',35,'Child of',1,NULL,NULL,NULL),
- (47,24,1,'a_b',157,'Child of',122,'Parent of',1,NULL,NULL,NULL),
- (48,24,1,'b_a',122,'Parent of',157,'Child of',1,NULL,NULL,NULL),
- (49,25,4,'a_b',157,'Sibling of',35,'Sibling of',1,NULL,NULL,NULL),
- (50,25,4,'b_a',35,'Sibling of',157,'Sibling of',1,NULL,NULL,NULL),
- (51,26,8,'a_b',122,'Household Member of',60,'Household Member is',1,NULL,NULL,NULL),
- (52,26,8,'b_a',60,'Household Member is',122,'Household Member of',1,NULL,NULL,NULL),
- (53,27,8,'a_b',35,'Household Member of',60,'Household Member is',1,NULL,NULL,NULL),
- (54,27,8,'b_a',60,'Household Member is',35,'Household Member of',1,NULL,NULL,NULL),
- (55,28,8,'a_b',157,'Household Member of',60,'Household Member is',1,NULL,NULL,NULL),
- (56,28,8,'b_a',60,'Household Member is',157,'Household Member of',1,NULL,NULL,NULL),
- (57,29,7,'a_b',120,'Head of Household for',60,'Head of Household is',0,NULL,NULL,NULL),
- (58,29,7,'b_a',60,'Head of Household is',120,'Head of Household for',0,NULL,NULL,NULL),
- (59,30,2,'a_b',122,'Spouse of',120,'Spouse of',0,NULL,NULL,NULL),
- (60,30,2,'b_a',120,'Spouse of',122,'Spouse of',0,NULL,NULL,NULL),
- (61,31,1,'a_b',64,'Child of',150,'Parent of',1,NULL,NULL,NULL),
- (62,31,1,'b_a',150,'Parent of',64,'Child of',1,NULL,NULL,NULL),
- (63,32,1,'a_b',172,'Child of',150,'Parent of',1,NULL,NULL,NULL),
- (64,32,1,'b_a',150,'Parent of',172,'Child of',1,NULL,NULL,NULL),
- (65,33,1,'a_b',64,'Child of',62,'Parent of',1,NULL,NULL,NULL),
- (66,33,1,'b_a',62,'Parent of',64,'Child of',1,NULL,NULL,NULL),
- (67,34,1,'a_b',172,'Child of',62,'Parent of',1,NULL,NULL,NULL),
- (68,34,1,'b_a',62,'Parent of',172,'Child of',1,NULL,NULL,NULL),
- (69,35,4,'a_b',172,'Sibling of',64,'Sibling of',1,NULL,NULL,NULL),
- (70,35,4,'b_a',64,'Sibling of',172,'Sibling of',1,NULL,NULL,NULL),
- (71,36,8,'a_b',62,'Household Member of',58,'Household Member is',1,NULL,NULL,NULL),
- (72,36,8,'b_a',58,'Household Member is',62,'Household Member of',1,NULL,NULL,NULL),
- (73,37,8,'a_b',64,'Household Member of',58,'Household Member is',1,NULL,NULL,NULL),
- (74,37,8,'b_a',58,'Household Member is',64,'Household Member of',1,NULL,NULL,NULL),
- (75,38,8,'a_b',172,'Household Member of',58,'Household Member is',1,NULL,NULL,NULL),
- (76,38,8,'b_a',58,'Household Member is',172,'Household Member of',1,NULL,NULL,NULL),
- (77,39,7,'a_b',150,'Head of Household for',58,'Head of Household is',0,NULL,NULL,NULL),
- (78,39,7,'b_a',58,'Head of Household is',150,'Head of Household for',0,NULL,NULL,NULL),
- (79,40,2,'a_b',62,'Spouse of',150,'Spouse of',0,NULL,NULL,NULL),
- (80,40,2,'b_a',150,'Spouse of',62,'Spouse of',0,NULL,NULL,NULL),
- (81,41,1,'a_b',3,'Child of',106,'Parent of',1,NULL,NULL,NULL),
- (82,41,1,'b_a',106,'Parent of',3,'Child of',1,NULL,NULL,NULL),
- (83,42,1,'a_b',22,'Child of',106,'Parent of',1,NULL,NULL,NULL),
- (84,42,1,'b_a',106,'Parent of',22,'Child of',1,NULL,NULL,NULL),
- (85,43,1,'a_b',3,'Child of',11,'Parent of',1,NULL,NULL,NULL),
- (86,43,1,'b_a',11,'Parent of',3,'Child of',1,NULL,NULL,NULL),
- (87,44,1,'a_b',22,'Child of',11,'Parent of',1,NULL,NULL,NULL),
- (88,44,1,'b_a',11,'Parent of',22,'Child of',1,NULL,NULL,NULL),
- (89,45,4,'a_b',22,'Sibling of',3,'Sibling of',1,NULL,NULL,NULL),
- (90,45,4,'b_a',3,'Sibling of',22,'Sibling of',1,NULL,NULL,NULL),
- (91,46,8,'a_b',11,'Household Member of',167,'Household Member is',1,NULL,NULL,NULL),
- (92,46,8,'b_a',167,'Household Member is',11,'Household Member of',1,NULL,NULL,NULL),
- (93,47,8,'a_b',3,'Household Member of',167,'Household Member is',1,NULL,NULL,NULL),
- (94,47,8,'b_a',167,'Household Member is',3,'Household Member of',1,NULL,NULL,NULL),
- (95,48,8,'a_b',22,'Household Member of',167,'Household Member is',1,NULL,NULL,NULL),
- (96,48,8,'b_a',167,'Household Member is',22,'Household Member of',1,NULL,NULL,NULL),
- (97,49,7,'a_b',106,'Head of Household for',167,'Head of Household is',1,NULL,NULL,NULL),
- (98,49,7,'b_a',167,'Head of Household is',106,'Head of Household for',1,NULL,NULL,NULL),
- (99,50,2,'a_b',11,'Spouse of',106,'Spouse of',1,NULL,NULL,NULL),
- (100,50,2,'b_a',106,'Spouse of',11,'Spouse of',1,NULL,NULL,NULL),
- (101,51,1,'a_b',124,'Child of',131,'Parent of',1,NULL,NULL,NULL),
- (102,51,1,'b_a',131,'Parent of',124,'Child of',1,NULL,NULL,NULL),
- (103,52,1,'a_b',9,'Child of',131,'Parent of',1,NULL,NULL,NULL),
- (104,52,1,'b_a',131,'Parent of',9,'Child of',1,NULL,NULL,NULL),
- (105,53,1,'a_b',124,'Child of',38,'Parent of',1,NULL,NULL,NULL),
- (106,53,1,'b_a',38,'Parent of',124,'Child of',1,NULL,NULL,NULL),
- (107,54,1,'a_b',9,'Child of',38,'Parent of',1,NULL,NULL,NULL),
- (108,54,1,'b_a',38,'Parent of',9,'Child of',1,NULL,NULL,NULL),
- (109,55,4,'a_b',9,'Sibling of',124,'Sibling of',1,NULL,NULL,NULL),
- (110,55,4,'b_a',124,'Sibling of',9,'Sibling of',1,NULL,NULL,NULL),
- (111,56,8,'a_b',38,'Household Member of',164,'Household Member is',1,NULL,NULL,NULL),
- (112,56,8,'b_a',164,'Household Member is',38,'Household Member of',1,NULL,NULL,NULL),
- (113,57,8,'a_b',124,'Household Member of',164,'Household Member is',1,NULL,NULL,NULL),
- (114,57,8,'b_a',164,'Household Member is',124,'Household Member of',1,NULL,NULL,NULL),
- (115,58,8,'a_b',9,'Household Member of',164,'Household Member is',1,NULL,NULL,NULL),
- (116,58,8,'b_a',164,'Household Member is',9,'Household Member of',1,NULL,NULL,NULL),
- (117,59,7,'a_b',131,'Head of Household for',164,'Head of Household is',0,NULL,NULL,NULL),
- (118,59,7,'b_a',164,'Head of Household is',131,'Head of Household for',0,NULL,NULL,NULL),
- (119,60,2,'a_b',38,'Spouse of',131,'Spouse of',0,NULL,NULL,NULL),
- (120,60,2,'b_a',131,'Spouse of',38,'Spouse of',0,NULL,NULL,NULL),
- (121,61,1,'a_b',127,'Child of',100,'Parent of',1,NULL,NULL,NULL),
- (122,61,1,'b_a',100,'Parent of',127,'Child of',1,NULL,NULL,NULL),
- (123,62,1,'a_b',7,'Child of',100,'Parent of',1,NULL,NULL,NULL),
- (124,62,1,'b_a',100,'Parent of',7,'Child of',1,NULL,NULL,NULL),
- (125,63,1,'a_b',127,'Child of',187,'Parent of',1,NULL,NULL,NULL),
- (126,63,1,'b_a',187,'Parent of',127,'Child of',1,NULL,NULL,NULL),
- (127,64,1,'a_b',7,'Child of',187,'Parent of',1,NULL,NULL,NULL),
- (128,64,1,'b_a',187,'Parent of',7,'Child of',1,NULL,NULL,NULL),
- (129,65,4,'a_b',7,'Sibling of',127,'Sibling of',1,NULL,NULL,NULL),
- (130,65,4,'b_a',127,'Sibling of',7,'Sibling of',1,NULL,NULL,NULL),
- (131,66,8,'a_b',187,'Household Member of',48,'Household Member is',1,NULL,NULL,NULL),
- (132,66,8,'b_a',48,'Household Member is',187,'Household Member of',1,NULL,NULL,NULL),
- (133,67,8,'a_b',127,'Household Member of',48,'Household Member is',1,NULL,NULL,NULL),
- (134,67,8,'b_a',48,'Household Member is',127,'Household Member of',1,NULL,NULL,NULL),
- (135,68,8,'a_b',7,'Household Member of',48,'Household Member is',1,NULL,NULL,NULL),
- (136,68,8,'b_a',48,'Household Member is',7,'Household Member of',1,NULL,NULL,NULL),
- (137,69,7,'a_b',100,'Head of Household for',48,'Head of Household is',0,NULL,NULL,NULL),
- (138,69,7,'b_a',48,'Head of Household is',100,'Head of Household for',0,NULL,NULL,NULL),
- (139,70,2,'a_b',187,'Spouse of',100,'Spouse of',0,NULL,NULL,NULL),
- (140,70,2,'b_a',100,'Spouse of',187,'Spouse of',0,NULL,NULL,NULL),
- (141,71,1,'a_b',15,'Child of',26,'Parent of',1,NULL,NULL,NULL),
- (142,71,1,'b_a',26,'Parent of',15,'Child of',1,NULL,NULL,NULL),
- (143,72,1,'a_b',19,'Child of',26,'Parent of',1,NULL,NULL,NULL),
- (144,72,1,'b_a',26,'Parent of',19,'Child of',1,NULL,NULL,NULL),
- (145,73,1,'a_b',15,'Child of',91,'Parent of',1,NULL,NULL,NULL),
- (146,73,1,'b_a',91,'Parent of',15,'Child of',1,NULL,NULL,NULL),
- (147,74,1,'a_b',19,'Child of',91,'Parent of',1,NULL,NULL,NULL),
- (148,74,1,'b_a',91,'Parent of',19,'Child of',1,NULL,NULL,NULL),
- (149,75,4,'a_b',19,'Sibling of',15,'Sibling of',1,NULL,NULL,NULL),
- (150,75,4,'b_a',15,'Sibling of',19,'Sibling of',1,NULL,NULL,NULL),
- (151,76,8,'a_b',91,'Household Member of',80,'Household Member is',1,NULL,NULL,NULL),
- (152,76,8,'b_a',80,'Household Member is',91,'Household Member of',1,NULL,NULL,NULL),
- (153,77,8,'a_b',15,'Household Member of',80,'Household Member is',1,NULL,NULL,NULL),
- (154,77,8,'b_a',80,'Household Member is',15,'Household Member of',1,NULL,NULL,NULL),
- (155,78,8,'a_b',19,'Household Member of',80,'Household Member is',1,NULL,NULL,NULL),
- (156,78,8,'b_a',80,'Household Member is',19,'Household Member of',1,NULL,NULL,NULL),
- (157,79,7,'a_b',26,'Head of Household for',80,'Head of Household is',0,NULL,NULL,NULL),
- (158,79,7,'b_a',80,'Head of Household is',26,'Head of Household for',0,NULL,NULL,NULL),
- (159,80,2,'a_b',91,'Spouse of',26,'Spouse of',0,NULL,NULL,NULL),
- (160,80,2,'b_a',26,'Spouse of',91,'Spouse of',0,NULL,NULL,NULL),
- (161,81,1,'a_b',20,'Child of',76,'Parent of',1,NULL,NULL,NULL),
- (162,81,1,'b_a',76,'Parent of',20,'Child of',1,NULL,NULL,NULL),
- (163,82,1,'a_b',191,'Child of',76,'Parent of',1,NULL,NULL,NULL),
- (164,82,1,'b_a',76,'Parent of',191,'Child of',1,NULL,NULL,NULL),
- (165,83,1,'a_b',20,'Child of',109,'Parent of',1,NULL,NULL,NULL),
- (166,83,1,'b_a',109,'Parent of',20,'Child of',1,NULL,NULL,NULL),
- (167,84,1,'a_b',191,'Child of',109,'Parent of',1,NULL,NULL,NULL),
- (168,84,1,'b_a',109,'Parent of',191,'Child of',1,NULL,NULL,NULL),
- (169,85,4,'a_b',191,'Sibling of',20,'Sibling of',1,NULL,NULL,NULL),
- (170,85,4,'b_a',20,'Sibling of',191,'Sibling of',1,NULL,NULL,NULL),
- (171,86,8,'a_b',109,'Household Member of',156,'Household Member is',1,NULL,NULL,NULL),
- (172,86,8,'b_a',156,'Household Member is',109,'Household Member of',1,NULL,NULL,NULL),
- (173,87,8,'a_b',20,'Household Member of',156,'Household Member is',1,NULL,NULL,NULL),
- (174,87,8,'b_a',156,'Household Member is',20,'Household Member of',1,NULL,NULL,NULL),
- (175,88,8,'a_b',191,'Household Member of',156,'Household Member is',1,NULL,NULL,NULL),
- (176,88,8,'b_a',156,'Household Member is',191,'Household Member of',1,NULL,NULL,NULL),
- (177,89,7,'a_b',76,'Head of Household for',156,'Head of Household is',1,NULL,NULL,NULL),
- (178,89,7,'b_a',156,'Head of Household is',76,'Head of Household for',1,NULL,NULL,NULL),
- (179,90,2,'a_b',109,'Spouse of',76,'Spouse of',1,NULL,NULL,NULL),
- (180,90,2,'b_a',76,'Spouse of',109,'Spouse of',1,NULL,NULL,NULL),
- (181,91,1,'a_b',29,'Child of',148,'Parent of',1,NULL,NULL,NULL),
- (182,91,1,'b_a',148,'Parent of',29,'Child of',1,NULL,NULL,NULL),
- (183,92,1,'a_b',197,'Child of',148,'Parent of',1,NULL,NULL,NULL),
- (184,92,1,'b_a',148,'Parent of',197,'Child of',1,NULL,NULL,NULL),
- (185,93,1,'a_b',29,'Child of',152,'Parent of',1,NULL,NULL,NULL),
- (186,93,1,'b_a',152,'Parent of',29,'Child of',1,NULL,NULL,NULL),
- (187,94,1,'a_b',197,'Child of',152,'Parent of',1,NULL,NULL,NULL),
- (188,94,1,'b_a',152,'Parent of',197,'Child of',1,NULL,NULL,NULL),
- (189,95,4,'a_b',197,'Sibling of',29,'Sibling of',1,NULL,NULL,NULL),
- (190,95,4,'b_a',29,'Sibling of',197,'Sibling of',1,NULL,NULL,NULL),
- (191,96,8,'a_b',152,'Household Member of',56,'Household Member is',1,NULL,NULL,NULL),
- (192,96,8,'b_a',56,'Household Member is',152,'Household Member of',1,NULL,NULL,NULL),
- (193,97,8,'a_b',29,'Household Member of',56,'Household Member is',1,NULL,NULL,NULL),
- (194,97,8,'b_a',56,'Household Member is',29,'Household Member of',1,NULL,NULL,NULL),
- (195,98,8,'a_b',197,'Household Member of',56,'Household Member is',1,NULL,NULL,NULL),
- (196,98,8,'b_a',56,'Household Member is',197,'Household Member of',1,NULL,NULL,NULL),
- (197,99,7,'a_b',148,'Head of Household for',56,'Head of Household is',0,NULL,NULL,NULL),
- (198,99,7,'b_a',56,'Head of Household is',148,'Head of Household for',0,NULL,NULL,NULL),
- (199,100,2,'a_b',152,'Spouse of',148,'Spouse of',0,NULL,NULL,NULL),
- (200,100,2,'b_a',148,'Spouse of',152,'Spouse of',0,NULL,NULL,NULL),
- (201,101,1,'a_b',70,'Child of',142,'Parent of',1,NULL,NULL,NULL),
- (202,101,1,'b_a',142,'Parent of',70,'Child of',1,NULL,NULL,NULL),
- (203,102,1,'a_b',55,'Child of',142,'Parent of',1,NULL,NULL,NULL),
- (204,102,1,'b_a',142,'Parent of',55,'Child of',1,NULL,NULL,NULL),
- (205,103,1,'a_b',70,'Child of',114,'Parent of',1,NULL,NULL,NULL),
- (206,103,1,'b_a',114,'Parent of',70,'Child of',1,NULL,NULL,NULL),
- (207,104,1,'a_b',55,'Child of',114,'Parent of',1,NULL,NULL,NULL),
- (208,104,1,'b_a',114,'Parent of',55,'Child of',1,NULL,NULL,NULL),
- (209,105,4,'a_b',55,'Sibling of',70,'Sibling of',1,NULL,NULL,NULL),
- (210,105,4,'b_a',70,'Sibling of',55,'Sibling of',1,NULL,NULL,NULL),
- (211,106,8,'a_b',114,'Household Member of',179,'Household Member is',1,NULL,NULL,NULL),
- (212,106,8,'b_a',179,'Household Member is',114,'Household Member of',1,NULL,NULL,NULL),
- (213,107,8,'a_b',70,'Household Member of',179,'Household Member is',1,NULL,NULL,NULL),
- (214,107,8,'b_a',179,'Household Member is',70,'Household Member of',1,NULL,NULL,NULL),
- (215,108,8,'a_b',55,'Household Member of',179,'Household Member is',1,NULL,NULL,NULL),
- (216,108,8,'b_a',179,'Household Member is',55,'Household Member of',1,NULL,NULL,NULL),
- (217,109,7,'a_b',142,'Head of Household for',179,'Head of Household is',1,NULL,NULL,NULL),
- (218,109,7,'b_a',179,'Head of Household is',142,'Head of Household for',1,NULL,NULL,NULL),
- (219,110,2,'a_b',114,'Spouse of',142,'Spouse of',1,NULL,NULL,NULL),
- (220,110,2,'b_a',142,'Spouse of',114,'Spouse of',1,NULL,NULL,NULL),
- (221,111,1,'a_b',44,'Child of',67,'Parent of',1,NULL,NULL,NULL),
- (222,111,1,'b_a',67,'Parent of',44,'Child of',1,NULL,NULL,NULL),
- (223,112,1,'a_b',33,'Child of',67,'Parent of',1,NULL,NULL,NULL),
- (224,112,1,'b_a',67,'Parent of',33,'Child of',1,NULL,NULL,NULL),
- (225,113,1,'a_b',44,'Child of',96,'Parent of',1,NULL,NULL,NULL),
- (226,113,1,'b_a',96,'Parent of',44,'Child of',1,NULL,NULL,NULL),
- (227,114,1,'a_b',33,'Child of',96,'Parent of',1,NULL,NULL,NULL),
- (228,114,1,'b_a',96,'Parent of',33,'Child of',1,NULL,NULL,NULL),
- (229,115,4,'a_b',33,'Sibling of',44,'Sibling of',1,NULL,NULL,NULL),
- (230,115,4,'b_a',44,'Sibling of',33,'Sibling of',1,NULL,NULL,NULL),
- (231,116,8,'a_b',96,'Household Member of',24,'Household Member is',1,NULL,NULL,NULL),
- (232,116,8,'b_a',24,'Household Member is',96,'Household Member of',1,NULL,NULL,NULL),
- (233,117,8,'a_b',44,'Household Member of',24,'Household Member is',1,NULL,NULL,NULL),
- (234,117,8,'b_a',24,'Household Member is',44,'Household Member of',1,NULL,NULL,NULL),
- (235,118,8,'a_b',33,'Household Member of',24,'Household Member is',1,NULL,NULL,NULL),
- (236,118,8,'b_a',24,'Household Member is',33,'Household Member of',1,NULL,NULL,NULL),
- (237,119,7,'a_b',67,'Head of Household for',24,'Head of Household is',1,NULL,NULL,NULL),
- (238,119,7,'b_a',24,'Head of Household is',67,'Head of Household for',1,NULL,NULL,NULL),
- (239,120,2,'a_b',96,'Spouse of',67,'Spouse of',1,NULL,NULL,NULL),
- (240,120,2,'b_a',67,'Spouse of',96,'Spouse of',1,NULL,NULL,NULL),
- (241,121,1,'a_b',5,'Child of',111,'Parent of',1,NULL,NULL,NULL),
- (242,121,1,'b_a',111,'Parent of',5,'Child of',1,NULL,NULL,NULL),
- (243,122,1,'a_b',97,'Child of',111,'Parent of',1,NULL,NULL,NULL),
- (244,122,1,'b_a',111,'Parent of',97,'Child of',1,NULL,NULL,NULL),
- (245,123,1,'a_b',5,'Child of',135,'Parent of',1,NULL,NULL,NULL),
- (246,123,1,'b_a',135,'Parent of',5,'Child of',1,NULL,NULL,NULL),
- (247,124,1,'a_b',97,'Child of',135,'Parent of',1,NULL,NULL,NULL),
- (248,124,1,'b_a',135,'Parent of',97,'Child of',1,NULL,NULL,NULL),
- (249,125,4,'a_b',97,'Sibling of',5,'Sibling of',1,NULL,NULL,NULL),
- (250,125,4,'b_a',5,'Sibling of',97,'Sibling of',1,NULL,NULL,NULL),
- (251,126,8,'a_b',135,'Household Member of',66,'Household Member is',1,NULL,NULL,NULL),
- (252,126,8,'b_a',66,'Household Member is',135,'Household Member of',1,NULL,NULL,NULL),
- (253,127,8,'a_b',5,'Household Member of',66,'Household Member is',1,NULL,NULL,NULL),
- (254,127,8,'b_a',66,'Household Member is',5,'Household Member of',1,NULL,NULL,NULL),
- (255,128,8,'a_b',97,'Household Member of',66,'Household Member is',1,NULL,NULL,NULL),
- (256,128,8,'b_a',66,'Household Member is',97,'Household Member of',1,NULL,NULL,NULL),
- (257,129,7,'a_b',111,'Head of Household for',66,'Head of Household is',0,NULL,NULL,NULL),
- (258,129,7,'b_a',66,'Head of Household is',111,'Head of Household for',0,NULL,NULL,NULL),
- (259,130,2,'a_b',135,'Spouse of',111,'Spouse of',0,NULL,NULL,NULL),
- (260,130,2,'b_a',111,'Spouse of',135,'Spouse of',0,NULL,NULL,NULL),
- (261,131,1,'a_b',98,'Child of',104,'Parent of',1,NULL,NULL,NULL),
- (262,131,1,'b_a',104,'Parent of',98,'Child of',1,NULL,NULL,NULL),
- (263,132,1,'a_b',102,'Child of',104,'Parent of',1,NULL,NULL,NULL),
- (264,132,1,'b_a',104,'Parent of',102,'Child of',1,NULL,NULL,NULL),
- (265,133,1,'a_b',98,'Child of',190,'Parent of',1,NULL,NULL,NULL),
- (266,133,1,'b_a',190,'Parent of',98,'Child of',1,NULL,NULL,NULL),
- (267,134,1,'a_b',102,'Child of',190,'Parent of',1,NULL,NULL,NULL),
- (268,134,1,'b_a',190,'Parent of',102,'Child of',1,NULL,NULL,NULL),
- (269,135,4,'a_b',102,'Sibling of',98,'Sibling of',1,NULL,NULL,NULL),
- (270,135,4,'b_a',98,'Sibling of',102,'Sibling of',1,NULL,NULL,NULL),
- (271,136,8,'a_b',190,'Household Member of',34,'Household Member is',1,NULL,NULL,NULL),
- (272,136,8,'b_a',34,'Household Member is',190,'Household Member of',1,NULL,NULL,NULL),
- (273,137,8,'a_b',98,'Household Member of',34,'Household Member is',1,NULL,NULL,NULL),
- (274,137,8,'b_a',34,'Household Member is',98,'Household Member of',1,NULL,NULL,NULL),
- (275,138,8,'a_b',102,'Household Member of',34,'Household Member is',1,NULL,NULL,NULL),
- (276,138,8,'b_a',34,'Household Member is',102,'Household Member of',1,NULL,NULL,NULL),
- (277,139,7,'a_b',104,'Head of Household for',34,'Head of Household is',0,NULL,NULL,NULL),
- (278,139,7,'b_a',34,'Head of Household is',104,'Head of Household for',0,NULL,NULL,NULL),
- (279,140,2,'a_b',190,'Spouse of',104,'Spouse of',0,NULL,NULL,NULL),
- (280,140,2,'b_a',104,'Spouse of',190,'Spouse of',0,NULL,NULL,NULL),
- (281,141,1,'a_b',61,'Child of',32,'Parent of',1,NULL,NULL,NULL),
- (282,141,1,'b_a',32,'Parent of',61,'Child of',1,NULL,NULL,NULL),
- (283,142,1,'a_b',180,'Child of',32,'Parent of',1,NULL,NULL,NULL),
- (284,142,1,'b_a',32,'Parent of',180,'Child of',1,NULL,NULL,NULL),
- (285,143,1,'a_b',61,'Child of',84,'Parent of',1,NULL,NULL,NULL),
- (286,143,1,'b_a',84,'Parent of',61,'Child of',1,NULL,NULL,NULL),
- (287,144,1,'a_b',180,'Child of',84,'Parent of',1,NULL,NULL,NULL),
- (288,144,1,'b_a',84,'Parent of',180,'Child of',1,NULL,NULL,NULL),
- (289,145,4,'a_b',180,'Sibling of',61,'Sibling of',1,NULL,NULL,NULL),
- (290,145,4,'b_a',61,'Sibling of',180,'Sibling of',1,NULL,NULL,NULL),
- (291,146,8,'a_b',84,'Household Member of',162,'Household Member is',1,NULL,NULL,NULL),
- (292,146,8,'b_a',162,'Household Member is',84,'Household Member of',1,NULL,NULL,NULL),
- (293,147,8,'a_b',61,'Household Member of',162,'Household Member is',1,NULL,NULL,NULL),
- (294,147,8,'b_a',162,'Household Member is',61,'Household Member of',1,NULL,NULL,NULL),
- (295,148,8,'a_b',180,'Household Member of',162,'Household Member is',1,NULL,NULL,NULL),
- (296,148,8,'b_a',162,'Household Member is',180,'Household Member of',1,NULL,NULL,NULL),
- (297,149,7,'a_b',32,'Head of Household for',162,'Head of Household is',1,NULL,NULL,NULL),
- (298,149,7,'b_a',162,'Head of Household is',32,'Head of Household for',1,NULL,NULL,NULL),
- (299,150,2,'a_b',84,'Spouse of',32,'Spouse of',1,NULL,NULL,NULL),
- (300,150,2,'b_a',32,'Spouse of',84,'Spouse of',1,NULL,NULL,NULL),
- (301,151,1,'a_b',49,'Child of',153,'Parent of',1,NULL,NULL,NULL),
- (302,151,1,'b_a',153,'Parent of',49,'Child of',1,NULL,NULL,NULL),
- (303,152,1,'a_b',28,'Child of',153,'Parent of',1,NULL,NULL,NULL),
- (304,152,1,'b_a',153,'Parent of',28,'Child of',1,NULL,NULL,NULL),
- (305,153,1,'a_b',49,'Child of',147,'Parent of',1,NULL,NULL,NULL),
- (306,153,1,'b_a',147,'Parent of',49,'Child of',1,NULL,NULL,NULL),
- (307,154,1,'a_b',28,'Child of',147,'Parent of',1,NULL,NULL,NULL),
- (308,154,1,'b_a',147,'Parent of',28,'Child of',1,NULL,NULL,NULL),
- (309,155,4,'a_b',28,'Sibling of',49,'Sibling of',1,NULL,NULL,NULL),
- (310,155,4,'b_a',49,'Sibling of',28,'Sibling of',1,NULL,NULL,NULL),
- (311,156,8,'a_b',147,'Household Member of',200,'Household Member is',1,NULL,NULL,NULL),
- (312,156,8,'b_a',200,'Household Member is',147,'Household Member of',1,NULL,NULL,NULL),
- (313,157,8,'a_b',49,'Household Member of',200,'Household Member is',1,NULL,NULL,NULL),
- (314,157,8,'b_a',200,'Household Member is',49,'Household Member of',1,NULL,NULL,NULL),
- (315,158,8,'a_b',28,'Household Member of',200,'Household Member is',1,NULL,NULL,NULL),
- (316,158,8,'b_a',200,'Household Member is',28,'Household Member of',1,NULL,NULL,NULL),
- (317,159,7,'a_b',153,'Head of Household for',200,'Head of Household is',1,NULL,NULL,NULL),
- (318,159,7,'b_a',200,'Head of Household is',153,'Head of Household for',1,NULL,NULL,NULL),
- (319,160,2,'a_b',147,'Spouse of',153,'Spouse of',1,NULL,NULL,NULL),
- (320,160,2,'b_a',153,'Spouse of',147,'Spouse of',1,NULL,NULL,NULL),
- (321,161,1,'a_b',117,'Child of',121,'Parent of',1,NULL,NULL,NULL),
- (322,161,1,'b_a',121,'Parent of',117,'Child of',1,NULL,NULL,NULL),
- (323,162,1,'a_b',16,'Child of',121,'Parent of',1,NULL,NULL,NULL),
- (324,162,1,'b_a',121,'Parent of',16,'Child of',1,NULL,NULL,NULL),
- (325,163,1,'a_b',117,'Child of',18,'Parent of',1,NULL,NULL,NULL),
- (326,163,1,'b_a',18,'Parent of',117,'Child of',1,NULL,NULL,NULL),
- (327,164,1,'a_b',16,'Child of',18,'Parent of',1,NULL,NULL,NULL),
- (328,164,1,'b_a',18,'Parent of',16,'Child of',1,NULL,NULL,NULL),
- (329,165,4,'a_b',16,'Sibling of',117,'Sibling of',1,NULL,NULL,NULL),
- (330,165,4,'b_a',117,'Sibling of',16,'Sibling of',1,NULL,NULL,NULL),
- (331,166,8,'a_b',18,'Household Member of',25,'Household Member is',1,NULL,NULL,NULL),
- (332,166,8,'b_a',25,'Household Member is',18,'Household Member of',1,NULL,NULL,NULL),
- (333,167,8,'a_b',117,'Household Member of',25,'Household Member is',1,NULL,NULL,NULL),
- (334,167,8,'b_a',25,'Household Member is',117,'Household Member of',1,NULL,NULL,NULL),
- (335,168,8,'a_b',16,'Household Member of',25,'Household Member is',1,NULL,NULL,NULL),
- (336,168,8,'b_a',25,'Household Member is',16,'Household Member of',1,NULL,NULL,NULL),
- (337,169,7,'a_b',121,'Head of Household for',25,'Head of Household is',1,NULL,NULL,NULL),
- (338,169,7,'b_a',25,'Head of Household is',121,'Head of Household for',1,NULL,NULL,NULL),
- (339,170,2,'a_b',18,'Spouse of',121,'Spouse of',1,NULL,NULL,NULL),
- (340,170,2,'b_a',121,'Spouse of',18,'Spouse of',1,NULL,NULL,NULL),
- (341,171,1,'a_b',110,'Child of',112,'Parent of',1,NULL,NULL,NULL),
- (342,171,1,'b_a',112,'Parent of',110,'Child of',1,NULL,NULL,NULL),
- (343,172,1,'a_b',149,'Child of',112,'Parent of',1,NULL,NULL,NULL),
- (344,172,1,'b_a',112,'Parent of',149,'Child of',1,NULL,NULL,NULL),
- (345,173,1,'a_b',110,'Child of',183,'Parent of',1,NULL,NULL,NULL),
- (346,173,1,'b_a',183,'Parent of',110,'Child of',1,NULL,NULL,NULL),
- (347,174,1,'a_b',149,'Child of',183,'Parent of',1,NULL,NULL,NULL),
- (348,174,1,'b_a',183,'Parent of',149,'Child of',1,NULL,NULL,NULL),
- (349,175,4,'a_b',149,'Sibling of',110,'Sibling of',1,NULL,NULL,NULL),
- (350,175,4,'b_a',110,'Sibling of',149,'Sibling of',1,NULL,NULL,NULL),
- (351,176,8,'a_b',183,'Household Member of',119,'Household Member is',1,NULL,NULL,NULL),
- (352,176,8,'b_a',119,'Household Member is',183,'Household Member of',1,NULL,NULL,NULL),
- (353,177,8,'a_b',110,'Household Member of',119,'Household Member is',1,NULL,NULL,NULL),
- (354,177,8,'b_a',119,'Household Member is',110,'Household Member of',1,NULL,NULL,NULL),
- (355,178,8,'a_b',149,'Household Member of',119,'Household Member is',1,NULL,NULL,NULL),
- (356,178,8,'b_a',119,'Household Member is',149,'Household Member of',1,NULL,NULL,NULL),
- (357,179,7,'a_b',112,'Head of Household for',119,'Head of Household is',1,NULL,NULL,NULL),
- (358,179,7,'b_a',119,'Head of Household is',112,'Head of Household for',1,NULL,NULL,NULL),
- (359,180,2,'a_b',183,'Spouse of',112,'Spouse of',1,NULL,NULL,NULL),
- (360,180,2,'b_a',112,'Spouse of',183,'Spouse of',1,NULL,NULL,NULL),
- (361,181,1,'a_b',169,'Child of',68,'Parent of',1,NULL,NULL,NULL),
- (362,181,1,'b_a',68,'Parent of',169,'Child of',1,NULL,NULL,NULL),
- (363,182,1,'a_b',88,'Child of',68,'Parent of',1,NULL,NULL,NULL),
- (364,182,1,'b_a',68,'Parent of',88,'Child of',1,NULL,NULL,NULL),
- (365,183,1,'a_b',169,'Child of',42,'Parent of',1,NULL,NULL,NULL),
- (366,183,1,'b_a',42,'Parent of',169,'Child of',1,NULL,NULL,NULL),
- (367,184,1,'a_b',88,'Child of',42,'Parent of',1,NULL,NULL,NULL),
- (368,184,1,'b_a',42,'Parent of',88,'Child of',1,NULL,NULL,NULL),
- (369,185,4,'a_b',88,'Sibling of',169,'Sibling of',1,NULL,NULL,NULL),
- (370,185,4,'b_a',169,'Sibling of',88,'Sibling of',1,NULL,NULL,NULL),
- (371,186,8,'a_b',42,'Household Member of',166,'Household Member is',1,NULL,NULL,NULL),
- (372,186,8,'b_a',166,'Household Member is',42,'Household Member of',1,NULL,NULL,NULL),
- (373,187,8,'a_b',169,'Household Member of',166,'Household Member is',1,NULL,NULL,NULL),
- (374,187,8,'b_a',166,'Household Member is',169,'Household Member of',1,NULL,NULL,NULL),
- (375,188,8,'a_b',88,'Household Member of',166,'Household Member is',1,NULL,NULL,NULL),
- (376,188,8,'b_a',166,'Household Member is',88,'Household Member of',1,NULL,NULL,NULL),
- (377,189,7,'a_b',68,'Head of Household for',166,'Head of Household is',0,NULL,NULL,NULL),
- (378,189,7,'b_a',166,'Head of Household is',68,'Head of Household for',0,NULL,NULL,NULL),
- (379,190,2,'a_b',42,'Spouse of',68,'Spouse of',0,NULL,NULL,NULL),
- (380,190,2,'b_a',68,'Spouse of',42,'Spouse of',0,NULL,NULL,NULL),
- (381,191,1,'a_b',151,'Child of',57,'Parent of',1,NULL,NULL,NULL),
- (382,191,1,'b_a',57,'Parent of',151,'Child of',1,NULL,NULL,NULL),
- (383,192,1,'a_b',194,'Child of',57,'Parent of',1,NULL,NULL,NULL),
- (384,192,1,'b_a',57,'Parent of',194,'Child of',1,NULL,NULL,NULL),
- (385,193,1,'a_b',151,'Child of',10,'Parent of',1,NULL,NULL,NULL),
- (386,193,1,'b_a',10,'Parent of',151,'Child of',1,NULL,NULL,NULL),
- (387,194,1,'a_b',194,'Child of',10,'Parent of',1,NULL,NULL,NULL),
- (388,194,1,'b_a',10,'Parent of',194,'Child of',1,NULL,NULL,NULL),
- (389,195,4,'a_b',194,'Sibling of',151,'Sibling of',1,NULL,NULL,NULL),
- (390,195,4,'b_a',151,'Sibling of',194,'Sibling of',1,NULL,NULL,NULL),
- (391,196,8,'a_b',10,'Household Member of',65,'Household Member is',1,NULL,NULL,NULL),
- (392,196,8,'b_a',65,'Household Member is',10,'Household Member of',1,NULL,NULL,NULL),
- (393,197,8,'a_b',151,'Household Member of',65,'Household Member is',1,NULL,NULL,NULL),
- (394,197,8,'b_a',65,'Household Member is',151,'Household Member of',1,NULL,NULL,NULL),
- (395,198,8,'a_b',194,'Household Member of',65,'Household Member is',1,NULL,NULL,NULL),
- (396,198,8,'b_a',65,'Household Member is',194,'Household Member of',1,NULL,NULL,NULL),
- (397,199,7,'a_b',57,'Head of Household for',65,'Head of Household is',1,NULL,NULL,NULL),
- (398,199,7,'b_a',65,'Head of Household is',57,'Head of Household for',1,NULL,NULL,NULL),
- (399,200,2,'a_b',10,'Spouse of',57,'Spouse of',1,NULL,NULL,NULL),
- (400,200,2,'b_a',57,'Spouse of',10,'Spouse of',1,NULL,NULL,NULL),
- (401,201,5,'a_b',10,'Employee of',17,'Employer of',1,NULL,NULL,NULL),
- (402,201,5,'b_a',17,'Employer of',10,'Employee of',1,NULL,NULL,NULL),
- (403,202,5,'a_b',142,'Employee of',77,'Employer of',1,NULL,NULL,NULL),
- (404,202,5,'b_a',77,'Employer of',142,'Employee of',1,NULL,NULL,NULL),
- (405,203,5,'a_b',95,'Employee of',87,'Employer of',1,NULL,NULL,NULL),
- (406,203,5,'b_a',87,'Employer of',95,'Employee of',1,NULL,NULL,NULL),
- (407,204,5,'a_b',115,'Employee of',93,'Employer of',1,NULL,NULL,NULL),
- (408,204,5,'b_a',93,'Employer of',115,'Employee of',1,NULL,NULL,NULL),
- (409,205,5,'a_b',83,'Employee of',123,'Employer of',1,NULL,NULL,NULL),
- (410,205,5,'b_a',123,'Employer of',83,'Employee of',1,NULL,NULL,NULL),
- (411,206,5,'a_b',15,'Employee of',126,'Employer of',1,NULL,NULL,NULL),
- (412,206,5,'b_a',126,'Employer of',15,'Employee of',1,NULL,NULL,NULL),
- (413,207,5,'a_b',120,'Employee of',128,'Employer of',1,NULL,NULL,NULL),
- (414,207,5,'b_a',128,'Employer of',120,'Employee of',1,NULL,NULL,NULL),
- (415,208,5,'a_b',185,'Employee of',140,'Employer of',1,NULL,NULL,NULL),
- (416,208,5,'b_a',140,'Employer of',185,'Employee of',1,NULL,NULL,NULL),
- (417,209,5,'a_b',45,'Employee of',146,'Employer of',1,NULL,NULL,NULL),
- (418,209,5,'b_a',146,'Employer of',45,'Employee of',1,NULL,NULL,NULL),
- (419,210,5,'a_b',183,'Employee of',160,'Employer of',1,NULL,NULL,NULL),
- (420,210,5,'b_a',160,'Employer of',183,'Employee of',1,NULL,NULL,NULL),
- (421,211,5,'a_b',3,'Employee of',163,'Employer of',1,NULL,NULL,NULL),
- (422,211,5,'b_a',163,'Employer of',3,'Employee of',1,NULL,NULL,NULL),
- (423,212,5,'a_b',47,'Employee of',184,'Employer of',1,NULL,NULL,NULL),
- (424,212,5,'b_a',184,'Employer of',47,'Employee of',1,NULL,NULL,NULL),
- (425,213,5,'a_b',159,'Employee of',188,'Employer of',1,NULL,NULL,NULL),
- (426,213,5,'b_a',188,'Employer of',159,'Employee of',1,NULL,NULL,NULL),
- (427,214,5,'a_b',182,'Employee of',195,'Employer of',1,NULL,NULL,NULL),
- (428,214,5,'b_a',195,'Employer of',182,'Employee of',1,NULL,NULL,NULL),
- (429,215,5,'a_b',193,'Employee of',196,'Employer of',1,NULL,NULL,NULL),
- (430,215,5,'b_a',196,'Employer of',193,'Employee of',1,NULL,NULL,NULL);
+ (1,1,1,'a_b',122,'Child of',106,'Parent of',1,NULL,NULL,NULL),
+ (2,1,1,'b_a',106,'Parent of',122,'Child of',1,NULL,NULL,NULL),
+ (3,2,1,'a_b',37,'Child of',106,'Parent of',1,NULL,NULL,NULL),
+ (4,2,1,'b_a',106,'Parent of',37,'Child of',1,NULL,NULL,NULL),
+ (5,3,1,'a_b',122,'Child of',50,'Parent of',1,NULL,NULL,NULL),
+ (6,3,1,'b_a',50,'Parent of',122,'Child of',1,NULL,NULL,NULL),
+ (7,4,1,'a_b',37,'Child of',50,'Parent of',1,NULL,NULL,NULL),
+ (8,4,1,'b_a',50,'Parent of',37,'Child of',1,NULL,NULL,NULL),
+ (9,5,4,'a_b',37,'Sibling of',122,'Sibling of',1,NULL,NULL,NULL),
+ (10,5,4,'b_a',122,'Sibling of',37,'Sibling of',1,NULL,NULL,NULL),
+ (11,6,8,'a_b',50,'Household Member of',43,'Household Member is',1,NULL,NULL,NULL),
+ (12,6,8,'b_a',43,'Household Member is',50,'Household Member of',1,NULL,NULL,NULL),
+ (13,7,8,'a_b',122,'Household Member of',43,'Household Member is',1,NULL,NULL,NULL),
+ (14,7,8,'b_a',43,'Household Member is',122,'Household Member of',1,NULL,NULL,NULL),
+ (15,8,8,'a_b',37,'Household Member of',43,'Household Member is',1,NULL,NULL,NULL),
+ (16,8,8,'b_a',43,'Household Member is',37,'Household Member of',1,NULL,NULL,NULL),
+ (17,9,7,'a_b',106,'Head of Household for',43,'Head of Household is',1,NULL,NULL,NULL),
+ (18,9,7,'b_a',43,'Head of Household is',106,'Head of Household for',1,NULL,NULL,NULL),
+ (19,10,2,'a_b',50,'Spouse of',106,'Spouse of',1,NULL,NULL,NULL),
+ (20,10,2,'b_a',106,'Spouse of',50,'Spouse of',1,NULL,NULL,NULL),
+ (21,11,1,'a_b',180,'Child of',107,'Parent of',1,NULL,NULL,NULL),
+ (22,11,1,'b_a',107,'Parent of',180,'Child of',1,NULL,NULL,NULL),
+ (23,12,1,'a_b',59,'Child of',107,'Parent of',1,NULL,NULL,NULL),
+ (24,12,1,'b_a',107,'Parent of',59,'Child of',1,NULL,NULL,NULL),
+ (25,13,1,'a_b',180,'Child of',23,'Parent of',1,NULL,NULL,NULL),
+ (26,13,1,'b_a',23,'Parent of',180,'Child of',1,NULL,NULL,NULL),
+ (27,14,1,'a_b',59,'Child of',23,'Parent of',1,NULL,NULL,NULL),
+ (28,14,1,'b_a',23,'Parent of',59,'Child of',1,NULL,NULL,NULL),
+ (29,15,4,'a_b',59,'Sibling of',180,'Sibling of',1,NULL,NULL,NULL),
+ (30,15,4,'b_a',180,'Sibling of',59,'Sibling of',1,NULL,NULL,NULL),
+ (31,16,8,'a_b',23,'Household Member of',143,'Household Member is',1,NULL,NULL,NULL),
+ (32,16,8,'b_a',143,'Household Member is',23,'Household Member of',1,NULL,NULL,NULL),
+ (33,17,8,'a_b',180,'Household Member of',143,'Household Member is',1,NULL,NULL,NULL),
+ (34,17,8,'b_a',143,'Household Member is',180,'Household Member of',1,NULL,NULL,NULL),
+ (35,18,8,'a_b',59,'Household Member of',143,'Household Member is',1,NULL,NULL,NULL),
+ (36,18,8,'b_a',143,'Household Member is',59,'Household Member of',1,NULL,NULL,NULL),
+ (37,19,7,'a_b',107,'Head of Household for',143,'Head of Household is',1,NULL,NULL,NULL),
+ (38,19,7,'b_a',143,'Head of Household is',107,'Head of Household for',1,NULL,NULL,NULL),
+ (39,20,2,'a_b',23,'Spouse of',107,'Spouse of',1,NULL,NULL,NULL),
+ (40,20,2,'b_a',107,'Spouse of',23,'Spouse of',1,NULL,NULL,NULL),
+ (41,21,1,'a_b',17,'Child of',58,'Parent of',1,NULL,NULL,NULL),
+ (42,21,1,'b_a',58,'Parent of',17,'Child of',1,NULL,NULL,NULL),
+ (43,22,1,'a_b',105,'Child of',58,'Parent of',1,NULL,NULL,NULL),
+ (44,22,1,'b_a',58,'Parent of',105,'Child of',1,NULL,NULL,NULL),
+ (45,23,1,'a_b',17,'Child of',141,'Parent of',1,NULL,NULL,NULL),
+ (46,23,1,'b_a',141,'Parent of',17,'Child of',1,NULL,NULL,NULL),
+ (47,24,1,'a_b',105,'Child of',141,'Parent of',1,NULL,NULL,NULL),
+ (48,24,1,'b_a',141,'Parent of',105,'Child of',1,NULL,NULL,NULL),
+ (49,25,4,'a_b',105,'Sibling of',17,'Sibling of',1,NULL,NULL,NULL),
+ (50,25,4,'b_a',17,'Sibling of',105,'Sibling of',1,NULL,NULL,NULL),
+ (51,26,8,'a_b',141,'Household Member of',16,'Household Member is',1,NULL,NULL,NULL),
+ (52,26,8,'b_a',16,'Household Member is',141,'Household Member of',1,NULL,NULL,NULL),
+ (53,27,8,'a_b',17,'Household Member of',16,'Household Member is',1,NULL,NULL,NULL),
+ (54,27,8,'b_a',16,'Household Member is',17,'Household Member of',1,NULL,NULL,NULL),
+ (55,28,8,'a_b',105,'Household Member of',16,'Household Member is',1,NULL,NULL,NULL),
+ (56,28,8,'b_a',16,'Household Member is',105,'Household Member of',1,NULL,NULL,NULL),
+ (57,29,7,'a_b',58,'Head of Household for',16,'Head of Household is',1,NULL,NULL,NULL),
+ (58,29,7,'b_a',16,'Head of Household is',58,'Head of Household for',1,NULL,NULL,NULL),
+ (59,30,2,'a_b',141,'Spouse of',58,'Spouse of',1,NULL,NULL,NULL),
+ (60,30,2,'b_a',58,'Spouse of',141,'Spouse of',1,NULL,NULL,NULL),
+ (61,31,1,'a_b',109,'Child of',61,'Parent of',1,NULL,NULL,NULL),
+ (62,31,1,'b_a',61,'Parent of',109,'Child of',1,NULL,NULL,NULL),
+ (63,32,1,'a_b',159,'Child of',61,'Parent of',1,NULL,NULL,NULL),
+ (64,32,1,'b_a',61,'Parent of',159,'Child of',1,NULL,NULL,NULL),
+ (65,33,1,'a_b',109,'Child of',8,'Parent of',1,NULL,NULL,NULL),
+ (66,33,1,'b_a',8,'Parent of',109,'Child of',1,NULL,NULL,NULL),
+ (67,34,1,'a_b',159,'Child of',8,'Parent of',1,NULL,NULL,NULL),
+ (68,34,1,'b_a',8,'Parent of',159,'Child of',1,NULL,NULL,NULL),
+ (69,35,4,'a_b',159,'Sibling of',109,'Sibling of',1,NULL,NULL,NULL),
+ (70,35,4,'b_a',109,'Sibling of',159,'Sibling of',1,NULL,NULL,NULL),
+ (71,36,8,'a_b',8,'Household Member of',138,'Household Member is',1,NULL,NULL,NULL),
+ (72,36,8,'b_a',138,'Household Member is',8,'Household Member of',1,NULL,NULL,NULL),
+ (73,37,8,'a_b',109,'Household Member of',138,'Household Member is',1,NULL,NULL,NULL),
+ (74,37,8,'b_a',138,'Household Member is',109,'Household Member of',1,NULL,NULL,NULL),
+ (75,38,8,'a_b',159,'Household Member of',138,'Household Member is',1,NULL,NULL,NULL),
+ (76,38,8,'b_a',138,'Household Member is',159,'Household Member of',1,NULL,NULL,NULL),
+ (77,39,7,'a_b',61,'Head of Household for',138,'Head of Household is',1,NULL,NULL,NULL),
+ (78,39,7,'b_a',138,'Head of Household is',61,'Head of Household for',1,NULL,NULL,NULL),
+ (79,40,2,'a_b',8,'Spouse of',61,'Spouse of',1,NULL,NULL,NULL),
+ (80,40,2,'b_a',61,'Spouse of',8,'Spouse of',1,NULL,NULL,NULL),
+ (81,41,1,'a_b',103,'Child of',182,'Parent of',1,NULL,NULL,NULL),
+ (82,41,1,'b_a',182,'Parent of',103,'Child of',1,NULL,NULL,NULL),
+ (83,42,1,'a_b',46,'Child of',182,'Parent of',1,NULL,NULL,NULL),
+ (84,42,1,'b_a',182,'Parent of',46,'Child of',1,NULL,NULL,NULL),
+ (85,43,1,'a_b',103,'Child of',36,'Parent of',1,NULL,NULL,NULL),
+ (86,43,1,'b_a',36,'Parent of',103,'Child of',1,NULL,NULL,NULL),
+ (87,44,1,'a_b',46,'Child of',36,'Parent of',1,NULL,NULL,NULL),
+ (88,44,1,'b_a',36,'Parent of',46,'Child of',1,NULL,NULL,NULL),
+ (89,45,4,'a_b',46,'Sibling of',103,'Sibling of',1,NULL,NULL,NULL),
+ (90,45,4,'b_a',103,'Sibling of',46,'Sibling of',1,NULL,NULL,NULL),
+ (91,46,8,'a_b',36,'Household Member of',33,'Household Member is',1,NULL,NULL,NULL),
+ (92,46,8,'b_a',33,'Household Member is',36,'Household Member of',1,NULL,NULL,NULL),
+ (93,47,8,'a_b',103,'Household Member of',33,'Household Member is',1,NULL,NULL,NULL),
+ (94,47,8,'b_a',33,'Household Member is',103,'Household Member of',1,NULL,NULL,NULL),
+ (95,48,8,'a_b',46,'Household Member of',33,'Household Member is',1,NULL,NULL,NULL),
+ (96,48,8,'b_a',33,'Household Member is',46,'Household Member of',1,NULL,NULL,NULL),
+ (97,49,7,'a_b',182,'Head of Household for',33,'Head of Household is',1,NULL,NULL,NULL),
+ (98,49,7,'b_a',33,'Head of Household is',182,'Head of Household for',1,NULL,NULL,NULL),
+ (99,50,2,'a_b',36,'Spouse of',182,'Spouse of',1,NULL,NULL,NULL),
+ (100,50,2,'b_a',182,'Spouse of',36,'Spouse of',1,NULL,NULL,NULL),
+ (101,51,1,'a_b',56,'Child of',110,'Parent of',1,NULL,NULL,NULL),
+ (102,51,1,'b_a',110,'Parent of',56,'Child of',1,NULL,NULL,NULL),
+ (103,52,1,'a_b',156,'Child of',110,'Parent of',1,NULL,NULL,NULL),
+ (104,52,1,'b_a',110,'Parent of',156,'Child of',1,NULL,NULL,NULL),
+ (105,53,1,'a_b',56,'Child of',12,'Parent of',1,NULL,NULL,NULL),
+ (106,53,1,'b_a',12,'Parent of',56,'Child of',1,NULL,NULL,NULL),
+ (107,54,1,'a_b',156,'Child of',12,'Parent of',1,NULL,NULL,NULL),
+ (108,54,1,'b_a',12,'Parent of',156,'Child of',1,NULL,NULL,NULL),
+ (109,55,4,'a_b',156,'Sibling of',56,'Sibling of',1,NULL,NULL,NULL),
+ (110,55,4,'b_a',56,'Sibling of',156,'Sibling of',1,NULL,NULL,NULL),
+ (111,56,8,'a_b',12,'Household Member of',118,'Household Member is',1,NULL,NULL,NULL),
+ (112,56,8,'b_a',118,'Household Member is',12,'Household Member of',1,NULL,NULL,NULL),
+ (113,57,8,'a_b',56,'Household Member of',118,'Household Member is',1,NULL,NULL,NULL),
+ (114,57,8,'b_a',118,'Household Member is',56,'Household Member of',1,NULL,NULL,NULL),
+ (115,58,8,'a_b',156,'Household Member of',118,'Household Member is',1,NULL,NULL,NULL),
+ (116,58,8,'b_a',118,'Household Member is',156,'Household Member of',1,NULL,NULL,NULL),
+ (117,59,7,'a_b',110,'Head of Household for',118,'Head of Household is',0,NULL,NULL,NULL),
+ (118,59,7,'b_a',118,'Head of Household is',110,'Head of Household for',0,NULL,NULL,NULL),
+ (119,60,2,'a_b',12,'Spouse of',110,'Spouse of',0,NULL,NULL,NULL),
+ (120,60,2,'b_a',110,'Spouse of',12,'Spouse of',0,NULL,NULL,NULL),
+ (121,61,1,'a_b',92,'Child of',190,'Parent of',1,NULL,NULL,NULL),
+ (122,61,1,'b_a',190,'Parent of',92,'Child of',1,NULL,NULL,NULL),
+ (123,62,1,'a_b',163,'Child of',190,'Parent of',1,NULL,NULL,NULL),
+ (124,62,1,'b_a',190,'Parent of',163,'Child of',1,NULL,NULL,NULL),
+ (125,63,1,'a_b',92,'Child of',146,'Parent of',1,NULL,NULL,NULL),
+ (126,63,1,'b_a',146,'Parent of',92,'Child of',1,NULL,NULL,NULL),
+ (127,64,1,'a_b',163,'Child of',146,'Parent of',1,NULL,NULL,NULL),
+ (128,64,1,'b_a',146,'Parent of',163,'Child of',1,NULL,NULL,NULL),
+ (129,65,4,'a_b',163,'Sibling of',92,'Sibling of',1,NULL,NULL,NULL),
+ (130,65,4,'b_a',92,'Sibling of',163,'Sibling of',1,NULL,NULL,NULL),
+ (131,66,8,'a_b',146,'Household Member of',99,'Household Member is',1,NULL,NULL,NULL),
+ (132,66,8,'b_a',99,'Household Member is',146,'Household Member of',1,NULL,NULL,NULL),
+ (133,67,8,'a_b',92,'Household Member of',99,'Household Member is',1,NULL,NULL,NULL),
+ (134,67,8,'b_a',99,'Household Member is',92,'Household Member of',1,NULL,NULL,NULL),
+ (135,68,8,'a_b',163,'Household Member of',99,'Household Member is',1,NULL,NULL,NULL),
+ (136,68,8,'b_a',99,'Household Member is',163,'Household Member of',1,NULL,NULL,NULL),
+ (137,69,7,'a_b',190,'Head of Household for',99,'Head of Household is',0,NULL,NULL,NULL),
+ (138,69,7,'b_a',99,'Head of Household is',190,'Head of Household for',0,NULL,NULL,NULL),
+ (139,70,2,'a_b',146,'Spouse of',190,'Spouse of',0,NULL,NULL,NULL),
+ (140,70,2,'b_a',190,'Spouse of',146,'Spouse of',0,NULL,NULL,NULL),
+ (141,71,1,'a_b',18,'Child of',185,'Parent of',1,NULL,NULL,NULL),
+ (142,71,1,'b_a',185,'Parent of',18,'Child of',1,NULL,NULL,NULL),
+ (143,72,1,'a_b',125,'Child of',185,'Parent of',1,NULL,NULL,NULL),
+ (144,72,1,'b_a',185,'Parent of',125,'Child of',1,NULL,NULL,NULL),
+ (145,73,1,'a_b',18,'Child of',191,'Parent of',1,NULL,NULL,NULL),
+ (146,73,1,'b_a',191,'Parent of',18,'Child of',1,NULL,NULL,NULL),
+ (147,74,1,'a_b',125,'Child of',191,'Parent of',1,NULL,NULL,NULL),
+ (148,74,1,'b_a',191,'Parent of',125,'Child of',1,NULL,NULL,NULL),
+ (149,75,4,'a_b',125,'Sibling of',18,'Sibling of',1,NULL,NULL,NULL),
+ (150,75,4,'b_a',18,'Sibling of',125,'Sibling of',1,NULL,NULL,NULL),
+ (151,76,8,'a_b',191,'Household Member of',20,'Household Member is',1,NULL,NULL,NULL),
+ (152,76,8,'b_a',20,'Household Member is',191,'Household Member of',1,NULL,NULL,NULL),
+ (153,77,8,'a_b',18,'Household Member of',20,'Household Member is',1,NULL,NULL,NULL),
+ (154,77,8,'b_a',20,'Household Member is',18,'Household Member of',1,NULL,NULL,NULL),
+ (155,78,8,'a_b',125,'Household Member of',20,'Household Member is',1,NULL,NULL,NULL),
+ (156,78,8,'b_a',20,'Household Member is',125,'Household Member of',1,NULL,NULL,NULL),
+ (157,79,7,'a_b',185,'Head of Household for',20,'Head of Household is',0,NULL,NULL,NULL),
+ (158,79,7,'b_a',20,'Head of Household is',185,'Head of Household for',0,NULL,NULL,NULL),
+ (159,80,2,'a_b',191,'Spouse of',185,'Spouse of',0,NULL,NULL,NULL),
+ (160,80,2,'b_a',185,'Spouse of',191,'Spouse of',0,NULL,NULL,NULL),
+ (161,81,1,'a_b',89,'Child of',80,'Parent of',1,NULL,NULL,NULL),
+ (162,81,1,'b_a',80,'Parent of',89,'Child of',1,NULL,NULL,NULL),
+ (163,82,1,'a_b',71,'Child of',80,'Parent of',1,NULL,NULL,NULL),
+ (164,82,1,'b_a',80,'Parent of',71,'Child of',1,NULL,NULL,NULL),
+ (165,83,1,'a_b',89,'Child of',6,'Parent of',1,NULL,NULL,NULL),
+ (166,83,1,'b_a',6,'Parent of',89,'Child of',1,NULL,NULL,NULL),
+ (167,84,1,'a_b',71,'Child of',6,'Parent of',1,NULL,NULL,NULL),
+ (168,84,1,'b_a',6,'Parent of',71,'Child of',1,NULL,NULL,NULL),
+ (169,85,4,'a_b',71,'Sibling of',89,'Sibling of',1,NULL,NULL,NULL),
+ (170,85,4,'b_a',89,'Sibling of',71,'Sibling of',1,NULL,NULL,NULL),
+ (171,86,8,'a_b',6,'Household Member of',27,'Household Member is',1,NULL,NULL,NULL),
+ (172,86,8,'b_a',27,'Household Member is',6,'Household Member of',1,NULL,NULL,NULL),
+ (173,87,8,'a_b',89,'Household Member of',27,'Household Member is',1,NULL,NULL,NULL),
+ (174,87,8,'b_a',27,'Household Member is',89,'Household Member of',1,NULL,NULL,NULL),
+ (175,88,8,'a_b',71,'Household Member of',27,'Household Member is',1,NULL,NULL,NULL),
+ (176,88,8,'b_a',27,'Household Member is',71,'Household Member of',1,NULL,NULL,NULL),
+ (177,89,7,'a_b',80,'Head of Household for',27,'Head of Household is',1,NULL,NULL,NULL),
+ (178,89,7,'b_a',27,'Head of Household is',80,'Head of Household for',1,NULL,NULL,NULL),
+ (179,90,2,'a_b',6,'Spouse of',80,'Spouse of',1,NULL,NULL,NULL),
+ (180,90,2,'b_a',80,'Spouse of',6,'Spouse of',1,NULL,NULL,NULL),
+ (181,91,1,'a_b',54,'Child of',126,'Parent of',1,NULL,NULL,NULL),
+ (182,91,1,'b_a',126,'Parent of',54,'Child of',1,NULL,NULL,NULL),
+ (183,92,1,'a_b',153,'Child of',126,'Parent of',1,NULL,NULL,NULL),
+ (184,92,1,'b_a',126,'Parent of',153,'Child of',1,NULL,NULL,NULL),
+ (185,93,1,'a_b',54,'Child of',193,'Parent of',1,NULL,NULL,NULL),
+ (186,93,1,'b_a',193,'Parent of',54,'Child of',1,NULL,NULL,NULL),
+ (187,94,1,'a_b',153,'Child of',193,'Parent of',1,NULL,NULL,NULL),
+ (188,94,1,'b_a',193,'Parent of',153,'Child of',1,NULL,NULL,NULL),
+ (189,95,4,'a_b',153,'Sibling of',54,'Sibling of',1,NULL,NULL,NULL),
+ (190,95,4,'b_a',54,'Sibling of',153,'Sibling of',1,NULL,NULL,NULL),
+ (191,96,8,'a_b',193,'Household Member of',160,'Household Member is',1,NULL,NULL,NULL),
+ (192,96,8,'b_a',160,'Household Member is',193,'Household Member of',1,NULL,NULL,NULL),
+ (193,97,8,'a_b',54,'Household Member of',160,'Household Member is',1,NULL,NULL,NULL),
+ (194,97,8,'b_a',160,'Household Member is',54,'Household Member of',1,NULL,NULL,NULL),
+ (195,98,8,'a_b',153,'Household Member of',160,'Household Member is',1,NULL,NULL,NULL),
+ (196,98,8,'b_a',160,'Household Member is',153,'Household Member of',1,NULL,NULL,NULL),
+ (197,99,7,'a_b',126,'Head of Household for',160,'Head of Household is',0,NULL,NULL,NULL),
+ (198,99,7,'b_a',160,'Head of Household is',126,'Head of Household for',0,NULL,NULL,NULL),
+ (199,100,2,'a_b',193,'Spouse of',126,'Spouse of',0,NULL,NULL,NULL),
+ (200,100,2,'b_a',126,'Spouse of',193,'Spouse of',0,NULL,NULL,NULL),
+ (201,101,1,'a_b',131,'Child of',91,'Parent of',1,NULL,NULL,NULL),
+ (202,101,1,'b_a',91,'Parent of',131,'Child of',1,NULL,NULL,NULL),
+ (203,102,1,'a_b',25,'Child of',91,'Parent of',1,NULL,NULL,NULL),
+ (204,102,1,'b_a',91,'Parent of',25,'Child of',1,NULL,NULL,NULL),
+ (205,103,1,'a_b',131,'Child of',135,'Parent of',1,NULL,NULL,NULL),
+ (206,103,1,'b_a',135,'Parent of',131,'Child of',1,NULL,NULL,NULL),
+ (207,104,1,'a_b',25,'Child of',135,'Parent of',1,NULL,NULL,NULL),
+ (208,104,1,'b_a',135,'Parent of',25,'Child of',1,NULL,NULL,NULL),
+ (209,105,4,'a_b',25,'Sibling of',131,'Sibling of',1,NULL,NULL,NULL),
+ (210,105,4,'b_a',131,'Sibling of',25,'Sibling of',1,NULL,NULL,NULL),
+ (211,106,8,'a_b',135,'Household Member of',7,'Household Member is',1,NULL,NULL,NULL),
+ (212,106,8,'b_a',7,'Household Member is',135,'Household Member of',1,NULL,NULL,NULL),
+ (213,107,8,'a_b',131,'Household Member of',7,'Household Member is',1,NULL,NULL,NULL),
+ (214,107,8,'b_a',7,'Household Member is',131,'Household Member of',1,NULL,NULL,NULL),
+ (215,108,8,'a_b',25,'Household Member of',7,'Household Member is',1,NULL,NULL,NULL),
+ (216,108,8,'b_a',7,'Household Member is',25,'Household Member of',1,NULL,NULL,NULL),
+ (217,109,7,'a_b',91,'Head of Household for',7,'Head of Household is',1,NULL,NULL,NULL),
+ (218,109,7,'b_a',7,'Head of Household is',91,'Head of Household for',1,NULL,NULL,NULL),
+ (219,110,2,'a_b',135,'Spouse of',91,'Spouse of',1,NULL,NULL,NULL),
+ (220,110,2,'b_a',91,'Spouse of',135,'Spouse of',1,NULL,NULL,NULL),
+ (221,111,1,'a_b',119,'Child of',26,'Parent of',1,NULL,NULL,NULL),
+ (222,111,1,'b_a',26,'Parent of',119,'Child of',1,NULL,NULL,NULL),
+ (223,112,1,'a_b',57,'Child of',26,'Parent of',1,NULL,NULL,NULL),
+ (224,112,1,'b_a',26,'Parent of',57,'Child of',1,NULL,NULL,NULL),
+ (225,113,1,'a_b',119,'Child of',64,'Parent of',1,NULL,NULL,NULL),
+ (226,113,1,'b_a',64,'Parent of',119,'Child of',1,NULL,NULL,NULL),
+ (227,114,1,'a_b',57,'Child of',64,'Parent of',1,NULL,NULL,NULL),
+ (228,114,1,'b_a',64,'Parent of',57,'Child of',1,NULL,NULL,NULL),
+ (229,115,4,'a_b',57,'Sibling of',119,'Sibling of',1,NULL,NULL,NULL),
+ (230,115,4,'b_a',119,'Sibling of',57,'Sibling of',1,NULL,NULL,NULL),
+ (231,116,8,'a_b',64,'Household Member of',181,'Household Member is',1,NULL,NULL,NULL),
+ (232,116,8,'b_a',181,'Household Member is',64,'Household Member of',1,NULL,NULL,NULL),
+ (233,117,8,'a_b',119,'Household Member of',181,'Household Member is',1,NULL,NULL,NULL),
+ (234,117,8,'b_a',181,'Household Member is',119,'Household Member of',1,NULL,NULL,NULL),
+ (235,118,8,'a_b',57,'Household Member of',181,'Household Member is',1,NULL,NULL,NULL),
+ (236,118,8,'b_a',181,'Household Member is',57,'Household Member of',1,NULL,NULL,NULL),
+ (237,119,7,'a_b',26,'Head of Household for',181,'Head of Household is',1,NULL,NULL,NULL),
+ (238,119,7,'b_a',181,'Head of Household is',26,'Head of Household for',1,NULL,NULL,NULL),
+ (239,120,2,'a_b',64,'Spouse of',26,'Spouse of',1,NULL,NULL,NULL),
+ (240,120,2,'b_a',26,'Spouse of',64,'Spouse of',1,NULL,NULL,NULL),
+ (241,121,1,'a_b',2,'Child of',62,'Parent of',1,NULL,NULL,NULL),
+ (242,121,1,'b_a',62,'Parent of',2,'Child of',1,NULL,NULL,NULL),
+ (243,122,1,'a_b',172,'Child of',62,'Parent of',1,NULL,NULL,NULL),
+ (244,122,1,'b_a',62,'Parent of',172,'Child of',1,NULL,NULL,NULL),
+ (245,123,1,'a_b',2,'Child of',115,'Parent of',1,NULL,NULL,NULL),
+ (246,123,1,'b_a',115,'Parent of',2,'Child of',1,NULL,NULL,NULL),
+ (247,124,1,'a_b',172,'Child of',115,'Parent of',1,NULL,NULL,NULL),
+ (248,124,1,'b_a',115,'Parent of',172,'Child of',1,NULL,NULL,NULL),
+ (249,125,4,'a_b',172,'Sibling of',2,'Sibling of',1,NULL,NULL,NULL),
+ (250,125,4,'b_a',2,'Sibling of',172,'Sibling of',1,NULL,NULL,NULL),
+ (251,126,8,'a_b',115,'Household Member of',55,'Household Member is',1,NULL,NULL,NULL),
+ (252,126,8,'b_a',55,'Household Member is',115,'Household Member of',1,NULL,NULL,NULL),
+ (253,127,8,'a_b',2,'Household Member of',55,'Household Member is',1,NULL,NULL,NULL),
+ (254,127,8,'b_a',55,'Household Member is',2,'Household Member of',1,NULL,NULL,NULL),
+ (255,128,8,'a_b',172,'Household Member of',55,'Household Member is',1,NULL,NULL,NULL),
+ (256,128,8,'b_a',55,'Household Member is',172,'Household Member of',1,NULL,NULL,NULL),
+ (257,129,7,'a_b',62,'Head of Household for',55,'Head of Household is',0,NULL,NULL,NULL),
+ (258,129,7,'b_a',55,'Head of Household is',62,'Head of Household for',0,NULL,NULL,NULL),
+ (259,130,2,'a_b',115,'Spouse of',62,'Spouse of',0,NULL,NULL,NULL),
+ (260,130,2,'b_a',62,'Spouse of',115,'Spouse of',0,NULL,NULL,NULL),
+ (261,131,1,'a_b',169,'Child of',5,'Parent of',1,NULL,NULL,NULL),
+ (262,131,1,'b_a',5,'Parent of',169,'Child of',1,NULL,NULL,NULL),
+ (263,132,1,'a_b',49,'Child of',5,'Parent of',1,NULL,NULL,NULL),
+ (264,132,1,'b_a',5,'Parent of',49,'Child of',1,NULL,NULL,NULL),
+ (265,133,1,'a_b',169,'Child of',84,'Parent of',1,NULL,NULL,NULL),
+ (266,133,1,'b_a',84,'Parent of',169,'Child of',1,NULL,NULL,NULL),
+ (267,134,1,'a_b',49,'Child of',84,'Parent of',1,NULL,NULL,NULL),
+ (268,134,1,'b_a',84,'Parent of',49,'Child of',1,NULL,NULL,NULL),
+ (269,135,4,'a_b',49,'Sibling of',169,'Sibling of',1,NULL,NULL,NULL),
+ (270,135,4,'b_a',169,'Sibling of',49,'Sibling of',1,NULL,NULL,NULL),
+ (271,136,8,'a_b',84,'Household Member of',85,'Household Member is',1,NULL,NULL,NULL),
+ (272,136,8,'b_a',85,'Household Member is',84,'Household Member of',1,NULL,NULL,NULL),
+ (273,137,8,'a_b',169,'Household Member of',85,'Household Member is',1,NULL,NULL,NULL),
+ (274,137,8,'b_a',85,'Household Member is',169,'Household Member of',1,NULL,NULL,NULL),
+ (275,138,8,'a_b',49,'Household Member of',85,'Household Member is',1,NULL,NULL,NULL),
+ (276,138,8,'b_a',85,'Household Member is',49,'Household Member of',1,NULL,NULL,NULL),
+ (277,139,7,'a_b',5,'Head of Household for',85,'Head of Household is',1,NULL,NULL,NULL),
+ (278,139,7,'b_a',85,'Head of Household is',5,'Head of Household for',1,NULL,NULL,NULL),
+ (279,140,2,'a_b',84,'Spouse of',5,'Spouse of',1,NULL,NULL,NULL),
+ (280,140,2,'b_a',5,'Spouse of',84,'Spouse of',1,NULL,NULL,NULL),
+ (281,141,1,'a_b',167,'Child of',157,'Parent of',1,NULL,NULL,NULL),
+ (282,141,1,'b_a',157,'Parent of',167,'Child of',1,NULL,NULL,NULL),
+ (283,142,1,'a_b',120,'Child of',157,'Parent of',1,NULL,NULL,NULL),
+ (284,142,1,'b_a',157,'Parent of',120,'Child of',1,NULL,NULL,NULL),
+ (285,143,1,'a_b',167,'Child of',95,'Parent of',1,NULL,NULL,NULL),
+ (286,143,1,'b_a',95,'Parent of',167,'Child of',1,NULL,NULL,NULL),
+ (287,144,1,'a_b',120,'Child of',95,'Parent of',1,NULL,NULL,NULL),
+ (288,144,1,'b_a',95,'Parent of',120,'Child of',1,NULL,NULL,NULL),
+ (289,145,4,'a_b',120,'Sibling of',167,'Sibling of',1,NULL,NULL,NULL),
+ (290,145,4,'b_a',167,'Sibling of',120,'Sibling of',1,NULL,NULL,NULL),
+ (291,146,8,'a_b',95,'Household Member of',41,'Household Member is',1,NULL,NULL,NULL),
+ (292,146,8,'b_a',41,'Household Member is',95,'Household Member of',1,NULL,NULL,NULL),
+ (293,147,8,'a_b',167,'Household Member of',41,'Household Member is',1,NULL,NULL,NULL),
+ (294,147,8,'b_a',41,'Household Member is',167,'Household Member of',1,NULL,NULL,NULL),
+ (295,148,8,'a_b',120,'Household Member of',41,'Household Member is',1,NULL,NULL,NULL),
+ (296,148,8,'b_a',41,'Household Member is',120,'Household Member of',1,NULL,NULL,NULL),
+ (297,149,7,'a_b',157,'Head of Household for',41,'Head of Household is',1,NULL,NULL,NULL),
+ (298,149,7,'b_a',41,'Head of Household is',157,'Head of Household for',1,NULL,NULL,NULL),
+ (299,150,2,'a_b',95,'Spouse of',157,'Spouse of',1,NULL,NULL,NULL),
+ (300,150,2,'b_a',157,'Spouse of',95,'Spouse of',1,NULL,NULL,NULL),
+ (301,151,1,'a_b',19,'Child of',155,'Parent of',1,NULL,NULL,NULL),
+ (302,151,1,'b_a',155,'Parent of',19,'Child of',1,NULL,NULL,NULL),
+ (303,152,1,'a_b',178,'Child of',155,'Parent of',1,NULL,NULL,NULL),
+ (304,152,1,'b_a',155,'Parent of',178,'Child of',1,NULL,NULL,NULL),
+ (305,153,1,'a_b',19,'Child of',42,'Parent of',1,NULL,NULL,NULL),
+ (306,153,1,'b_a',42,'Parent of',19,'Child of',1,NULL,NULL,NULL),
+ (307,154,1,'a_b',178,'Child of',42,'Parent of',1,NULL,NULL,NULL),
+ (308,154,1,'b_a',42,'Parent of',178,'Child of',1,NULL,NULL,NULL),
+ (309,155,4,'a_b',178,'Sibling of',19,'Sibling of',1,NULL,NULL,NULL),
+ (310,155,4,'b_a',19,'Sibling of',178,'Sibling of',1,NULL,NULL,NULL),
+ (311,156,8,'a_b',42,'Household Member of',65,'Household Member is',1,NULL,NULL,NULL),
+ (312,156,8,'b_a',65,'Household Member is',42,'Household Member of',1,NULL,NULL,NULL),
+ (313,157,8,'a_b',19,'Household Member of',65,'Household Member is',1,NULL,NULL,NULL),
+ (314,157,8,'b_a',65,'Household Member is',19,'Household Member of',1,NULL,NULL,NULL),
+ (315,158,8,'a_b',178,'Household Member of',65,'Household Member is',1,NULL,NULL,NULL),
+ (316,158,8,'b_a',65,'Household Member is',178,'Household Member of',1,NULL,NULL,NULL),
+ (317,159,7,'a_b',155,'Head of Household for',65,'Head of Household is',1,NULL,NULL,NULL),
+ (318,159,7,'b_a',65,'Head of Household is',155,'Head of Household for',1,NULL,NULL,NULL),
+ (319,160,2,'a_b',42,'Spouse of',155,'Spouse of',1,NULL,NULL,NULL),
+ (320,160,2,'b_a',155,'Spouse of',42,'Spouse of',1,NULL,NULL,NULL),
+ (321,161,1,'a_b',63,'Child of',149,'Parent of',1,NULL,NULL,NULL),
+ (322,161,1,'b_a',149,'Parent of',63,'Child of',1,NULL,NULL,NULL),
+ (323,162,1,'a_b',117,'Child of',149,'Parent of',1,NULL,NULL,NULL),
+ (324,162,1,'b_a',149,'Parent of',117,'Child of',1,NULL,NULL,NULL),
+ (325,163,1,'a_b',63,'Child of',45,'Parent of',1,NULL,NULL,NULL),
+ (326,163,1,'b_a',45,'Parent of',63,'Child of',1,NULL,NULL,NULL),
+ (327,164,1,'a_b',117,'Child of',45,'Parent of',1,NULL,NULL,NULL),
+ (328,164,1,'b_a',45,'Parent of',117,'Child of',1,NULL,NULL,NULL),
+ (329,165,4,'a_b',117,'Sibling of',63,'Sibling of',1,NULL,NULL,NULL),
+ (330,165,4,'b_a',63,'Sibling of',117,'Sibling of',1,NULL,NULL,NULL),
+ (331,166,8,'a_b',45,'Household Member of',100,'Household Member is',1,NULL,NULL,NULL),
+ (332,166,8,'b_a',100,'Household Member is',45,'Household Member of',1,NULL,NULL,NULL),
+ (333,167,8,'a_b',63,'Household Member of',100,'Household Member is',1,NULL,NULL,NULL),
+ (334,167,8,'b_a',100,'Household Member is',63,'Household Member of',1,NULL,NULL,NULL),
+ (335,168,8,'a_b',117,'Household Member of',100,'Household Member is',1,NULL,NULL,NULL),
+ (336,168,8,'b_a',100,'Household Member is',117,'Household Member of',1,NULL,NULL,NULL),
+ (337,169,7,'a_b',149,'Head of Household for',100,'Head of Household is',0,NULL,NULL,NULL),
+ (338,169,7,'b_a',100,'Head of Household is',149,'Head of Household for',0,NULL,NULL,NULL),
+ (339,170,2,'a_b',45,'Spouse of',149,'Spouse of',0,NULL,NULL,NULL),
+ (340,170,2,'b_a',149,'Spouse of',45,'Spouse of',0,NULL,NULL,NULL),
+ (341,171,1,'a_b',188,'Child of',94,'Parent of',1,NULL,NULL,NULL),
+ (342,171,1,'b_a',94,'Parent of',188,'Child of',1,NULL,NULL,NULL),
+ (343,172,1,'a_b',168,'Child of',94,'Parent of',1,NULL,NULL,NULL),
+ (344,172,1,'b_a',94,'Parent of',168,'Child of',1,NULL,NULL,NULL),
+ (345,173,1,'a_b',188,'Child of',158,'Parent of',1,NULL,NULL,NULL),
+ (346,173,1,'b_a',158,'Parent of',188,'Child of',1,NULL,NULL,NULL),
+ (347,174,1,'a_b',168,'Child of',158,'Parent of',1,NULL,NULL,NULL),
+ (348,174,1,'b_a',158,'Parent of',168,'Child of',1,NULL,NULL,NULL),
+ (349,175,4,'a_b',168,'Sibling of',188,'Sibling of',1,NULL,NULL,NULL),
+ (350,175,4,'b_a',188,'Sibling of',168,'Sibling of',1,NULL,NULL,NULL),
+ (351,176,8,'a_b',158,'Household Member of',93,'Household Member is',1,NULL,NULL,NULL),
+ (352,176,8,'b_a',93,'Household Member is',158,'Household Member of',1,NULL,NULL,NULL),
+ (353,177,8,'a_b',188,'Household Member of',93,'Household Member is',1,NULL,NULL,NULL),
+ (354,177,8,'b_a',93,'Household Member is',188,'Household Member of',1,NULL,NULL,NULL),
+ (355,178,8,'a_b',168,'Household Member of',93,'Household Member is',1,NULL,NULL,NULL),
+ (356,178,8,'b_a',93,'Household Member is',168,'Household Member of',1,NULL,NULL,NULL),
+ (357,179,7,'a_b',94,'Head of Household for',93,'Head of Household is',0,NULL,NULL,NULL),
+ (358,179,7,'b_a',93,'Head of Household is',94,'Head of Household for',0,NULL,NULL,NULL),
+ (359,180,2,'a_b',158,'Spouse of',94,'Spouse of',0,NULL,NULL,NULL),
+ (360,180,2,'b_a',94,'Spouse of',158,'Spouse of',0,NULL,NULL,NULL),
+ (361,181,1,'a_b',15,'Child of',139,'Parent of',1,NULL,NULL,NULL),
+ (362,181,1,'b_a',139,'Parent of',15,'Child of',1,NULL,NULL,NULL),
+ (363,182,1,'a_b',197,'Child of',139,'Parent of',1,NULL,NULL,NULL),
+ (364,182,1,'b_a',139,'Parent of',197,'Child of',1,NULL,NULL,NULL),
+ (365,183,1,'a_b',15,'Child of',198,'Parent of',1,NULL,NULL,NULL),
+ (366,183,1,'b_a',198,'Parent of',15,'Child of',1,NULL,NULL,NULL),
+ (367,184,1,'a_b',197,'Child of',198,'Parent of',1,NULL,NULL,NULL),
+ (368,184,1,'b_a',198,'Parent of',197,'Child of',1,NULL,NULL,NULL),
+ (369,185,4,'a_b',197,'Sibling of',15,'Sibling of',1,NULL,NULL,NULL),
+ (370,185,4,'b_a',15,'Sibling of',197,'Sibling of',1,NULL,NULL,NULL),
+ (371,186,8,'a_b',198,'Household Member of',129,'Household Member is',1,NULL,NULL,NULL),
+ (372,186,8,'b_a',129,'Household Member is',198,'Household Member of',1,NULL,NULL,NULL),
+ (373,187,8,'a_b',15,'Household Member of',129,'Household Member is',1,NULL,NULL,NULL),
+ (374,187,8,'b_a',129,'Household Member is',15,'Household Member of',1,NULL,NULL,NULL),
+ (375,188,8,'a_b',197,'Household Member of',129,'Household Member is',1,NULL,NULL,NULL),
+ (376,188,8,'b_a',129,'Household Member is',197,'Household Member of',1,NULL,NULL,NULL),
+ (377,189,7,'a_b',139,'Head of Household for',129,'Head of Household is',0,NULL,NULL,NULL),
+ (378,189,7,'b_a',129,'Head of Household is',139,'Head of Household for',0,NULL,NULL,NULL),
+ (379,190,2,'a_b',198,'Spouse of',139,'Spouse of',0,NULL,NULL,NULL),
+ (380,190,2,'b_a',139,'Spouse of',198,'Spouse of',0,NULL,NULL,NULL),
+ (381,191,1,'a_b',90,'Child of',10,'Parent of',1,NULL,NULL,NULL),
+ (382,191,1,'b_a',10,'Parent of',90,'Child of',1,NULL,NULL,NULL),
+ (383,192,1,'a_b',132,'Child of',10,'Parent of',1,NULL,NULL,NULL),
+ (384,192,1,'b_a',10,'Parent of',132,'Child of',1,NULL,NULL,NULL),
+ (385,193,1,'a_b',90,'Child of',96,'Parent of',1,NULL,NULL,NULL),
+ (386,193,1,'b_a',96,'Parent of',90,'Child of',1,NULL,NULL,NULL),
+ (387,194,1,'a_b',132,'Child of',96,'Parent of',1,NULL,NULL,NULL),
+ (388,194,1,'b_a',96,'Parent of',132,'Child of',1,NULL,NULL,NULL),
+ (389,195,4,'a_b',132,'Sibling of',90,'Sibling of',1,NULL,NULL,NULL),
+ (390,195,4,'b_a',90,'Sibling of',132,'Sibling of',1,NULL,NULL,NULL),
+ (391,196,8,'a_b',96,'Household Member of',3,'Household Member is',1,NULL,NULL,NULL),
+ (392,196,8,'b_a',3,'Household Member is',96,'Household Member of',1,NULL,NULL,NULL),
+ (393,197,8,'a_b',90,'Household Member of',3,'Household Member is',1,NULL,NULL,NULL),
+ (394,197,8,'b_a',3,'Household Member is',90,'Household Member of',1,NULL,NULL,NULL),
+ (395,198,8,'a_b',132,'Household Member of',3,'Household Member is',1,NULL,NULL,NULL),
+ (396,198,8,'b_a',3,'Household Member is',132,'Household Member of',1,NULL,NULL,NULL),
+ (397,199,7,'a_b',10,'Head of Household for',3,'Head of Household is',0,NULL,NULL,NULL),
+ (398,199,7,'b_a',3,'Head of Household is',10,'Head of Household for',0,NULL,NULL,NULL),
+ (399,200,2,'a_b',96,'Spouse of',10,'Spouse of',0,NULL,NULL,NULL),
+ (400,200,2,'b_a',10,'Spouse of',96,'Spouse of',0,NULL,NULL,NULL),
+ (401,201,5,'a_b',182,'Employee of',13,'Employer of',1,NULL,NULL,NULL),
+ (402,201,5,'b_a',13,'Employer of',182,'Employee of',1,NULL,NULL,NULL),
+ (403,202,5,'a_b',56,'Employee of',14,'Employer of',1,NULL,NULL,NULL),
+ (404,202,5,'b_a',14,'Employer of',56,'Employee of',1,NULL,NULL,NULL),
+ (405,203,5,'a_b',171,'Employee of',24,'Employer of',1,NULL,NULL,NULL),
+ (406,203,5,'b_a',24,'Employer of',171,'Employee of',1,NULL,NULL,NULL),
+ (407,204,5,'a_b',169,'Employee of',70,'Employer of',1,NULL,NULL,NULL),
+ (408,204,5,'b_a',70,'Employer of',169,'Employee of',1,NULL,NULL,NULL),
+ (409,205,5,'a_b',174,'Employee of',82,'Employer of',1,NULL,NULL,NULL),
+ (410,205,5,'b_a',82,'Employer of',174,'Employee of',1,NULL,NULL,NULL),
+ (411,206,5,'a_b',135,'Employee of',102,'Employer of',1,NULL,NULL,NULL),
+ (412,206,5,'b_a',102,'Employer of',135,'Employee of',1,NULL,NULL,NULL),
+ (413,207,5,'a_b',91,'Employee of',112,'Employer of',1,NULL,NULL,NULL),
+ (414,207,5,'b_a',112,'Employer of',91,'Employee of',1,NULL,NULL,NULL),
+ (415,208,5,'a_b',154,'Employee of',137,'Employer of',1,NULL,NULL,NULL),
+ (416,208,5,'b_a',137,'Employer of',154,'Employee of',1,NULL,NULL,NULL),
+ (417,209,5,'a_b',37,'Employee of',151,'Employer of',1,NULL,NULL,NULL),
+ (418,209,5,'b_a',151,'Employer of',37,'Employee of',1,NULL,NULL,NULL),
+ (419,210,5,'a_b',142,'Employee of',173,'Employer of',1,NULL,NULL,NULL),
+ (420,210,5,'b_a',173,'Employer of',142,'Employee of',1,NULL,NULL,NULL),
+ (421,211,5,'a_b',164,'Employee of',177,'Employer of',1,NULL,NULL,NULL),
+ (422,211,5,'b_a',177,'Employer of',164,'Employee of',1,NULL,NULL,NULL),
+ (423,212,5,'a_b',94,'Employee of',183,'Employer of',1,NULL,NULL,NULL),
+ (424,212,5,'b_a',183,'Employer of',94,'Employee of',1,NULL,NULL,NULL),
+ (425,213,5,'a_b',123,'Employee of',187,'Employer of',1,NULL,NULL,NULL),
+ (426,213,5,'b_a',187,'Employer of',123,'Employee of',1,NULL,NULL,NULL),
+ (427,214,5,'a_b',196,'Employee of',189,'Employer of',1,NULL,NULL,NULL),
+ (428,214,5,'b_a',189,'Employer of',196,'Employee of',1,NULL,NULL,NULL),
+ (429,215,5,'a_b',149,'Employee of',194,'Employer of',1,NULL,NULL,NULL),
+ (430,215,5,'b_a',194,'Employer of',149,'Employee of',1,NULL,NULL,NULL);
 /*!40000 ALTER TABLE `civicrm_relationship_cache` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -8059,8 +8048,8 @@ INSERT INTO `civicrm_report_instance` (`id`, `domain_id`, `title`, `report_id`,
  (19,1,'Pledged But not Paid','pledge/pbnp',NULL,NULL,'Pledged but not Paid Report','access CiviPledge',NULL,'a:17:{s:6:\"fields\";a:5:{s:9:\"sort_name\";s:1:\"1\";s:18:\"pledge_create_date\";s:1:\"1\";s:6:\"amount\";s:1:\"1\";s:14:\"scheduled_date\";s:1:\"1\";s:10:\"country_id\";s:1:\"1\";}s:27:\"pledge_create_date_relative\";s:1:\"0\";s:23:\"pledge_create_date_from\";s:0:\"\";s:21:\"pledge_create_date_to\";s:0:\"\";s:20:\"financial_type_id_op\";s:2:\"in\";s:23:\"financial_type_id_value\";a:0:{}s:6:\"gid_op\";s:2:\"in\";s:9:\"gid_value\";a:0:{}s:8:\"tagid_op\";s:2:\"in\";s:11:\"tagid_value\";a:0:{}s:11:\"description\";s:27:\"Pledged but not Paid Report\";s:13:\"email_subject\";s:0:\"\";s:8:\"email_to\";s:0:\"\";s:8:\"email_cc\";s:0:\"\";s:10:\"permission\";s:17:\"access CiviPledge\";s:6:\"groups\";s:0:\"\";s:9:\"domain_id\";i:1;}',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),
  (20,1,'Bookkeeping Transactions','contribute/bookkeeping',NULL,NULL,'Provides transaction details for all contributions and payments, including Transaction #, Invoice ID, Payment Instrument and Check #.','access CiviContribute',NULL,'a:40:{s:6:\"fields\";a:12:{s:9:\"sort_name\";s:1:\"1\";s:21:\"debit_accounting_code\";s:1:\"1\";s:22:\"credit_accounting_code\";s:1:\"1\";s:17:\"financial_type_id\";s:1:\"1\";s:12:\"receive_date\";s:1:\"1\";s:22:\"contribution_status_id\";s:1:\"1\";s:2:\"id\";s:1:\"1\";s:12:\"check_number\";s:1:\"1\";s:21:\"payment_instrument_id\";s:1:\"1\";s:9:\"trxn_date\";s:1:\"1\";s:7:\"trxn_id\";s:1:\"1\";s:6:\"amount\";s:1:\"1\";}s:12:\"sort_name_op\";s:3:\"has\";s:15:\"sort_name_value\";s:0:\"\";s:6:\"id_min\";s:0:\"\";s:6:\"id_max\";s:0:\"\";s:5:\"id_op\";s:3:\"lte\";s:8:\"id_value\";s:0:\"\";s:24:\"debit_accounting_code_op\";s:2:\"in\";s:27:\"debit_accounting_code_value\";a:0:{}s:25:\"credit_accounting_code_op\";s:2:\"in\";s:28:\"credit_accounting_code_value\";a:0:{}s:13:\"debit_name_op\";s:2:\"in\";s:16:\"debit_name_value\";a:0:{}s:14:\"credit_name_op\";s:2:\"in\";s:17:\"credit_name_value\";a:0:{}s:20:\"financial_type_id_op\";s:2:\"in\";s:23:\"financial_type_id_value\";a:0:{}s:21:\"receive_date_relative\";s:1:\"0\";s:17:\"receive_date_from\";s:0:\"\";s:15:\"receive_date_to\";s:0:\"\";s:25:\"contribution_status_id_op\";s:2:\"in\";s:28:\"contribution_status_id_value\";a:1:{i:0;s:1:\"1\";}s:24:\"payment_instrument_id_op\";s:2:\"in\";s:27:\"payment_instrument_id_value\";a:0:{}s:18:\"trxn_date_relative\";s:1:\"0\";s:14:\"trxn_date_from\";s:0:\"\";s:12:\"trxn_date_to\";s:0:\"\";s:10:\"amount_min\";s:0:\"\";s:10:\"amount_max\";s:0:\"\";s:9:\"amount_op\";s:3:\"lte\";s:12:\"amount_value\";s:0:\"\";s:11:\"description\";s:133:\"Provides transaction details for all contributions and payments, including Transaction #, Invoice ID, Payment Instrument and Check #.\";s:13:\"email_subject\";s:0:\"\";s:8:\"email_to\";s:0:\"\";s:8:\"email_cc\";s:0:\"\";s:10:\"permission\";s:21:\"access CiviContribute\";s:9:\"parent_id\";s:0:\"\";s:6:\"groups\";s:0:\"\";s:9:\"domain_id\";i:1;s:11:\"is_reserved\";b:0;}',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),
  (21,1,'Recurring Contributions','contribute/recur',NULL,NULL,'Provides information about the status of recurring contributions','access CiviContribute',NULL,'a:39:{s:6:\"fields\";a:7:{s:9:\"sort_name\";s:1:\"1\";s:6:\"amount\";s:1:\"1\";s:22:\"contribution_status_id\";s:1:\"1\";s:18:\"frequency_interval\";s:1:\"1\";s:14:\"frequency_unit\";s:1:\"1\";s:12:\"installments\";s:1:\"1\";s:8:\"end_date\";s:1:\"1\";}s:25:\"contribution_status_id_op\";s:2:\"in\";s:28:\"contribution_status_id_value\";a:1:{i:0;s:1:\"5\";}s:11:\"currency_op\";s:2:\"in\";s:14:\"currency_value\";a:0:{}s:20:\"financial_type_id_op\";s:2:\"in\";s:23:\"financial_type_id_value\";a:0:{}s:17:\"frequency_unit_op\";s:2:\"in\";s:20:\"frequency_unit_value\";a:0:{}s:22:\"frequency_interval_min\";s:0:\"\";s:22:\"frequency_interval_max\";s:0:\"\";s:21:\"frequency_interval_op\";s:3:\"lte\";s:24:\"frequency_interval_value\";s:0:\"\";s:16:\"installments_min\";s:0:\"\";s:16:\"installments_max\";s:0:\"\";s:15:\"installments_op\";s:3:\"lte\";s:18:\"installments_value\";s:0:\"\";s:19:\"start_date_relative\";s:0:\"\";s:15:\"start_date_from\";s:0:\"\";s:13:\"start_date_to\";s:0:\"\";s:37:\"next_sched_contribution_date_relative\";s:0:\"\";s:33:\"next_sched_contribution_date_from\";s:0:\"\";s:31:\"next_sched_contribution_date_to\";s:0:\"\";s:17:\"end_date_relative\";s:0:\"\";s:13:\"end_date_from\";s:0:\"\";s:11:\"end_date_to\";s:0:\"\";s:28:\"calculated_end_date_relative\";s:0:\"\";s:24:\"calculated_end_date_from\";s:0:\"\";s:22:\"calculated_end_date_to\";s:0:\"\";s:9:\"order_bys\";a:1:{i:1;a:1:{s:6:\"column\";s:1:\"-\";}}s:11:\"description\";s:41:\"Shows all pending recurring contributions\";s:13:\"email_subject\";s:0:\"\";s:8:\"email_to\";s:0:\"\";s:8:\"email_cc\";s:0:\"\";s:9:\"row_count\";s:0:\"\";s:14:\"addToDashboard\";s:1:\"1\";s:10:\"permission\";s:21:\"access CiviContribute\";s:9:\"parent_id\";s:0:\"\";s:11:\"instance_id\";N;}',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (22,1,'Membership Summary','member/summary',NULL,NULL,'Provides a summary of memberships by type and join date.','access CiviMember',NULL,'a:18:{s:6:\"fields\";a:2:{s:18:\"membership_type_id\";s:1:\"1\";s:12:\"total_amount\";s:1:\"1\";}s:29:\"membership_join_date_relative\";s:1:\"0\";s:25:\"membership_join_date_from\";s:0:\"\";s:23:\"membership_join_date_to\";s:0:\"\";s:21:\"membership_type_id_op\";s:2:\"in\";s:24:\"membership_type_id_value\";a:0:{}s:12:\"status_id_op\";s:2:\"in\";s:15:\"status_id_value\";a:0:{}s:25:\"contribution_status_id_op\";s:2:\"in\";s:28:\"contribution_status_id_value\";a:0:{}s:9:\"group_bys\";a:2:{s:9:\"join_date\";s:1:\"1\";s:18:\"membership_type_id\";s:1:\"1\";}s:14:\"group_bys_freq\";a:1:{s:9:\"join_date\";s:5:\"MONTH\";}s:11:\"description\";s:56:\"Provides a summary of memberships by type and join date.\";s:13:\"email_subject\";s:0:\"\";s:8:\"email_to\";s:0:\"\";s:8:\"email_cc\";s:0:\"\";s:10:\"permission\";s:17:\"access CiviMember\";s:9:\"domain_id\";i:1;}',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),
- (23,1,'Membership Details','member/detail',NULL,NULL,'Provides a list of members along with their membership status and membership details (Join Date, Start Date, End Date). Can also display contributions (payments) associated with each membership.','access CiviMember',NULL,'a:28:{s:6:\"fields\";a:5:{s:9:\"sort_name\";s:1:\"1\";s:18:\"membership_type_id\";s:1:\"1\";s:21:\"membership_start_date\";s:1:\"1\";s:19:\"membership_end_date\";s:1:\"1\";s:4:\"name\";s:1:\"1\";}s:12:\"sort_name_op\";s:3:\"has\";s:15:\"sort_name_value\";s:0:\"\";s:6:\"id_min\";s:0:\"\";s:6:\"id_max\";s:0:\"\";s:5:\"id_op\";s:3:\"lte\";s:8:\"id_value\";s:0:\"\";s:29:\"membership_join_date_relative\";s:1:\"0\";s:25:\"membership_join_date_from\";s:0:\"\";s:23:\"membership_join_date_to\";s:0:\"\";s:23:\"owner_membership_id_min\";s:0:\"\";s:23:\"owner_membership_id_max\";s:0:\"\";s:22:\"owner_membership_id_op\";s:3:\"lte\";s:25:\"owner_membership_id_value\";s:0:\"\";s:6:\"tid_op\";s:2:\"in\";s:9:\"tid_value\";a:0:{}s:6:\"sid_op\";s:2:\"in\";s:9:\"sid_value\";a:0:{}s:6:\"gid_op\";s:2:\"in\";s:9:\"gid_value\";a:0:{}s:8:\"tagid_op\";s:2:\"in\";s:11:\"tagid_value\";a:0:{}s:11:\"description\";s:119:\"Provides a list of members along with their membership status and membership details (Join Date, Start Date, End Date).\";s:13:\"email_subject\";s:0:\"\";s:8:\"email_to\";s:0:\"\";s:8:\"email_cc\";s:0:\"\";s:10:\"permission\";s:17:\"access CiviMember\";s:9:\"domain_id\";i:1;}',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (22,1,'Membership Summary','member/summary',NULL,NULL,'Provides a summary of memberships by Type and Member Since.','access CiviMember',NULL,'a:18:{s:6:\"fields\";a:2:{s:18:\"membership_type_id\";s:1:\"1\";s:12:\"total_amount\";s:1:\"1\";}s:29:\"membership_join_date_relative\";s:1:\"0\";s:25:\"membership_join_date_from\";s:0:\"\";s:23:\"membership_join_date_to\";s:0:\"\";s:21:\"membership_type_id_op\";s:2:\"in\";s:24:\"membership_type_id_value\";a:0:{}s:12:\"status_id_op\";s:2:\"in\";s:15:\"status_id_value\";a:0:{}s:25:\"contribution_status_id_op\";s:2:\"in\";s:28:\"contribution_status_id_value\";a:0:{}s:9:\"group_bys\";a:2:{s:9:\"join_date\";s:1:\"1\";s:18:\"membership_type_id\";s:1:\"1\";}s:14:\"group_bys_freq\";a:1:{s:9:\"join_date\";s:5:\"MONTH\";}s:11:\"description\";s:59:\"Provides a summary of memberships by Type and Member Since.\";s:13:\"email_subject\";s:0:\"\";s:8:\"email_to\";s:0:\"\";s:8:\"email_cc\";s:0:\"\";s:10:\"permission\";s:17:\"access CiviMember\";s:9:\"domain_id\";i:1;}',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),
+ (23,1,'Membership Details','member/detail',NULL,NULL,'Provides a list of members along with their Membership Status and membership details (Member Since, Membership Start Date, Membership Expiration Date). Can also display contributions (payments) associated with each membership.','access CiviMember',NULL,'a:28:{s:6:\"fields\";a:5:{s:9:\"sort_name\";s:1:\"1\";s:18:\"membership_type_id\";s:1:\"1\";s:21:\"membership_start_date\";s:1:\"1\";s:19:\"membership_end_date\";s:1:\"1\";s:4:\"name\";s:1:\"1\";}s:12:\"sort_name_op\";s:3:\"has\";s:15:\"sort_name_value\";s:0:\"\";s:6:\"id_min\";s:0:\"\";s:6:\"id_max\";s:0:\"\";s:5:\"id_op\";s:3:\"lte\";s:8:\"id_value\";s:0:\"\";s:29:\"membership_join_date_relative\";s:1:\"0\";s:25:\"membership_join_date_from\";s:0:\"\";s:23:\"membership_join_date_to\";s:0:\"\";s:23:\"owner_membership_id_min\";s:0:\"\";s:23:\"owner_membership_id_max\";s:0:\"\";s:22:\"owner_membership_id_op\";s:3:\"lte\";s:25:\"owner_membership_id_value\";s:0:\"\";s:6:\"tid_op\";s:2:\"in\";s:9:\"tid_value\";a:0:{}s:6:\"sid_op\";s:2:\"in\";s:9:\"sid_value\";a:0:{}s:6:\"gid_op\";s:2:\"in\";s:9:\"gid_value\";a:0:{}s:8:\"tagid_op\";s:2:\"in\";s:11:\"tagid_value\";a:0:{}s:11:\"description\";s:151:\"Provides a list of members along with their Membership Status and membership details (Member Since, Membership Start Date, Membership Expiration Date).\";s:13:\"email_subject\";s:0:\"\";s:8:\"email_to\";s:0:\"\";s:8:\"email_cc\";s:0:\"\";s:10:\"permission\";s:17:\"access CiviMember\";s:9:\"domain_id\";i:1;}',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),
  (24,1,'Contribution and Membership Details','member/contributionDetail',NULL,NULL,'Contribution details for any type of contribution, plus associated membership information for contributions which are in payment for memberships.','access CiviMember',NULL,'a:67:{s:6:\"fields\";a:12:{s:9:\"sort_name\";s:1:\"1\";s:5:\"email\";s:1:\"1\";s:5:\"phone\";s:1:\"1\";s:17:\"financial_type_id\";s:1:\"1\";s:12:\"receive_date\";s:1:\"1\";s:12:\"total_amount\";s:1:\"1\";s:18:\"membership_type_id\";s:1:\"1\";s:21:\"membership_start_date\";s:1:\"1\";s:19:\"membership_end_date\";s:1:\"1\";s:9:\"join_date\";s:1:\"1\";s:22:\"membership_status_name\";s:1:\"1\";s:10:\"country_id\";s:1:\"1\";}s:12:\"sort_name_op\";s:3:\"has\";s:15:\"sort_name_value\";s:0:\"\";s:6:\"id_min\";s:0:\"\";s:6:\"id_max\";s:0:\"\";s:5:\"id_op\";s:3:\"lte\";s:8:\"id_value\";s:0:\"\";s:21:\"receive_date_relative\";s:1:\"0\";s:17:\"receive_date_from\";s:0:\"\";s:15:\"receive_date_to\";s:0:\"\";s:20:\"financial_type_id_op\";s:2:\"in\";s:23:\"financial_type_id_value\";a:0:{}s:24:\"payment_instrument_id_op\";s:2:\"in\";s:27:\"payment_instrument_id_value\";a:0:{}s:25:\"contribution_status_id_op\";s:2:\"in\";s:28:\"contribution_status_id_value\";a:0:{}s:16:\"total_amount_min\";s:0:\"\";s:16:\"total_amount_max\";s:0:\"\";s:15:\"total_amount_op\";s:3:\"lte\";s:18:\"total_amount_value\";s:0:\"\";s:6:\"gid_op\";s:2:\"in\";s:9:\"gid_value\";a:0:{}s:13:\"ordinality_op\";s:2:\"in\";s:16:\"ordinality_value\";a:0:{}s:29:\"membership_join_date_relative\";s:1:\"0\";s:25:\"membership_join_date_from\";s:0:\"\";s:23:\"membership_join_date_to\";s:0:\"\";s:30:\"membership_start_date_relative\";s:1:\"0\";s:26:\"membership_start_date_from\";s:0:\"\";s:24:\"membership_start_date_to\";s:0:\"\";s:28:\"membership_end_date_relative\";s:1:\"0\";s:24:\"membership_end_date_from\";s:0:\"\";s:22:\"membership_end_date_to\";s:0:\"\";s:23:\"owner_membership_id_min\";s:0:\"\";s:23:\"owner_membership_id_max\";s:0:\"\";s:22:\"owner_membership_id_op\";s:3:\"lte\";s:25:\"owner_membership_id_value\";s:0:\"\";s:6:\"tid_op\";s:2:\"in\";s:9:\"tid_value\";a:0:{}s:6:\"sid_op\";s:2:\"in\";s:9:\"sid_value\";a:0:{}s:17:\"street_number_min\";s:0:\"\";s:17:\"street_number_max\";s:0:\"\";s:16:\"street_number_op\";s:3:\"lte\";s:19:\"street_number_value\";s:0:\"\";s:14:\"street_name_op\";s:3:\"has\";s:17:\"street_name_value\";s:0:\"\";s:15:\"postal_code_min\";s:0:\"\";s:15:\"postal_code_max\";s:0:\"\";s:14:\"postal_code_op\";s:3:\"lte\";s:17:\"postal_code_value\";s:0:\"\";s:7:\"city_op\";s:3:\"has\";s:10:\"city_value\";s:0:\"\";s:12:\"county_id_op\";s:2:\"in\";s:15:\"county_id_value\";a:0:{}s:20:\"state_province_id_op\";s:2:\"in\";s:23:\"state_province_id_value\";a:0:{}s:13:\"country_id_op\";s:2:\"in\";s:16:\"country_id_value\";a:0:{}s:8:\"tagid_op\";s:2:\"in\";s:11:\"tagid_value\";a:0:{}s:11:\"description\";s:35:\"Contribution and Membership Details\";s:13:\"email_subject\";s:0:\"\";s:8:\"email_to\";s:0:\"\";s:8:\"email_cc\";s:0:\"\";s:10:\"permission\";s:1:\"0\";s:9:\"domain_id\";i:1;}{s:6:\"fields\";a:12:{s:9:\"sort_name\";s:1:\"1\";s:5:\"email\";s:1:\"1\";s:5:\"phone\";s:1:\"1\";s:17:\"financial_type_id\";s:1:\"1\";s:12:\"receive_date\";s:1:\"1\";s:12:\"total_amount\";s:1:\"1\";s:18:\"membership_type_id\";s:1:\"1\";s:21:\"membership_start_date\";s:1:\"1\";s:19:\"membership_end_date\";s:1:\"1\";s:9:\"join_date\";s:1:\"1\";s:22:\"membership_status_name\";s:1:\"1\";s:10:\"country_id\";s:1:\"1\";}s:12:\"sort_name_op\";s:3:\"has\";s:15:\"sort_name_value\";s:0:\"\";s:6:\"id_min\";s:0:\"\";s:6:\"id_max\";s:0:\"\";s:5:\"id_op\";s:3:\"lte\";s:8:\"id_value\";s:0:\"\";s:21:\"receive_date_relative\";s:1:\"0\";s:17:\"receive_date_from\";s:0:\"\";s:15:\"receive_date_to\";s:0:\"\";s:20:\"financial_type_id_op\";s:2:\"in\";s:23:\"financial_type_id_value\";a:0:{}s:24:\"payment_instrument_id_op\";s:2:\"in\";s:27:\"payment_instrument_id_value\";a:0:{}s:25:\"contribution_status_id_op\";s:2:\"in\";s:28:\"contribution_status_id_value\";a:0:{}s:16:\"total_amount_min\";s:0:\"\";s:16:\"total_amount_max\";s:0:\"\";s:15:\"total_amount_op\";s:3:\"lte\";s:18:\"total_amount_value\";s:0:\"\";s:6:\"gid_op\";s:2:\"in\";s:9:\"gid_value\";a:0:{}s:13:\"ordinality_op\";s:2:\"in\";s:16:\"ordinality_value\";a:0:{}s:29:\"membership_join_date_relative\";s:1:\"0\";s:25:\"membership_join_date_from\";s:0:\"\";s:23:\"membership_join_date_to\";s:0:\"\";s:30:\"membership_start_date_relative\";s:1:\"0\";s:26:\"membership_start_date_from\";s:0:\"\";s:24:\"membership_start_date_to\";s:0:\"\";s:28:\"membership_end_date_relative\";s:1:\"0\";s:24:\"membership_end_date_from\";s:0:\"\";s:22:\"membership_end_date_to\";s:0:\"\";s:23:\"owner_membership_id_min\";s:0:\"\";s:23:\"owner_membership_id_max\";s:0:\"\";s:22:\"owner_membership_id_op\";s:3:\"lte\";s:25:\"owner_membership_id_value\";s:0:\"\";s:6:\"tid_op\";s:2:\"in\";s:9:\"tid_value\";a:0:{}s:6:\"sid_op\";s:2:\"in\";s:9:\"sid_value\";a:0:{}s:17:\"street_number_min\";s:0:\"\";s:17:\"street_number_max\";s:0:\"\";s:16:\"street_number_op\";s:3:\"lte\";s:19:\"street_number_value\";s:0:\"\";s:14:\"street_name_op\";s:3:\"has\";s:17:\"street_name_value\";s:0:\"\";s:15:\"postal_code_min\";s:0:\"\";s:15:\"postal_code_max\";s:0:\"\";s:14:\"postal_code_op\";s:3:\"lte\";s:17:\"postal_code_value\";s:0:\"\";s:7:\"city_op\";s:3:\"has\";s:10:\"city_value\";s:0:\"\";s:12:\"county_id_op\";s:2:\"in\";s:15:\"county_id_value\";a:0:{}s:20:\"state_province_id_op\";s:2:\"in\";s:23:\"state_province_id_value\";a:0:{}s:13:\"country_id_op\";s:2:\"in\";s:16:\"country_id_value\";a:0:{}s:8:\"tagid_op\";s:2:\"in\";s:11:\"tagid_value\";a:0:{}s:11:\"description\";s:35:\"Contribution and Membership Details\";s:13:\"email_subject\";s:0:\"\";s:8:\"email_to\";s:0:\"\";s:8:\"email_cc\";s:0:\"\";s:10:\"permission\";s:17:\"access CiviMember\";s:9:\"domain_id\";i:1;}',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),
  (25,1,'Lapsed Memberships','member/lapse',NULL,NULL,'Provides a list of memberships that have lapsed or will lapse by the date you specify.','access CiviMember',NULL,'a:16:{s:6:\"fields\";a:5:{s:9:\"sort_name\";s:1:\"1\";s:18:\"membership_type_id\";s:1:\"1\";s:19:\"membership_end_date\";s:1:\"1\";s:4:\"name\";s:1:\"1\";s:10:\"country_id\";s:1:\"1\";}s:6:\"tid_op\";s:2:\"in\";s:9:\"tid_value\";a:0:{}s:28:\"membership_end_date_relative\";s:1:\"0\";s:24:\"membership_end_date_from\";s:0:\"\";s:22:\"membership_end_date_to\";s:0:\"\";s:6:\"gid_op\";s:2:\"in\";s:9:\"gid_value\";a:0:{}s:8:\"tagid_op\";s:2:\"in\";s:11:\"tagid_value\";a:0:{}s:11:\"description\";s:85:\"Provides a list of memberships that lapsed or will lapse before the date you specify.\";s:13:\"email_subject\";s:0:\"\";s:8:\"email_to\";s:0:\"\";s:8:\"email_cc\";s:0:\"\";s:10:\"permission\";s:17:\"access CiviMember\";s:9:\"domain_id\";i:1;}',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),
  (26,1,'Event Participants List','event/participantListing',NULL,NULL,'Provides lists of participants for an event.','access CiviEvent',NULL,'a:27:{s:6:\"fields\";a:4:{s:9:\"sort_name\";s:1:\"1\";s:8:\"event_id\";s:1:\"1\";s:9:\"status_id\";s:1:\"1\";s:7:\"role_id\";s:1:\"1\";}s:12:\"sort_name_op\";s:3:\"has\";s:15:\"sort_name_value\";s:0:\"\";s:8:\"email_op\";s:3:\"has\";s:11:\"email_value\";s:0:\"\";s:11:\"event_id_op\";s:2:\"in\";s:14:\"event_id_value\";a:0:{}s:6:\"sid_op\";s:2:\"in\";s:9:\"sid_value\";a:0:{}s:6:\"rid_op\";s:2:\"in\";s:9:\"rid_value\";a:0:{}s:34:\"participant_register_date_relative\";s:1:\"0\";s:30:\"participant_register_date_from\";s:0:\"\";s:28:\"participant_register_date_to\";s:0:\"\";s:6:\"eid_op\";s:2:\"in\";s:9:\"eid_value\";a:0:{}s:11:\"custom_4_op\";s:2:\"in\";s:14:\"custom_4_value\";a:0:{}s:16:\"blank_column_end\";s:0:\"\";s:11:\"description\";s:44:\"Provides lists of participants for an event.\";s:13:\"email_subject\";s:0:\"\";s:8:\"email_to\";s:0:\"\";s:8:\"email_cc\";s:0:\"\";s:10:\"permission\";s:16:\"access CiviEvent\";s:6:\"groups\";s:0:\"\";s:7:\"options\";N;s:9:\"domain_id\";i:1;}',1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0),
@@ -12184,90 +12173,90 @@ UNLOCK TABLES;
 LOCK TABLES `civicrm_subscription_history` WRITE;
 /*!40000 ALTER TABLE `civicrm_subscription_history` DISABLE KEYS */;
 INSERT INTO `civicrm_subscription_history` (`id`, `contact_id`, `group_id`, `date`, `method`, `status`, `tracking`) VALUES
- (1,199,2,'2022-04-03 01:25:54','Admin','Added',NULL),
- (2,85,2,'2022-12-08 15:57:32','Email','Added',NULL),
- (3,186,2,'2022-03-05 10:53:07','Admin','Added',NULL),
- (4,47,2,'2022-06-23 05:11:49','Email','Added',NULL),
- (5,154,2,'2023-01-24 09:09:35','Admin','Added',NULL),
- (6,145,2,'2022-03-15 10:45:31','Admin','Added',NULL),
- (7,50,2,'2022-11-23 06:23:47','Admin','Added',NULL),
- (8,75,2,'2022-02-06 11:34:53','Email','Added',NULL),
- (9,4,2,'2022-12-20 08:49:32','Email','Added',NULL),
- (10,192,2,'2022-10-07 15:37:23','Email','Added',NULL),
- (11,92,2,'2022-10-06 08:58:14','Email','Added',NULL),
- (12,89,2,'2022-06-02 18:23:25','Admin','Added',NULL),
- (13,31,2,'2022-05-02 19:59:56','Email','Added',NULL),
- (14,158,2,'2022-05-05 02:32:37','Email','Added',NULL),
- (15,125,2,'2022-08-27 16:17:15','Admin','Added',NULL),
- (16,137,2,'2022-11-10 09:10:31','Admin','Added',NULL),
- (17,138,2,'2022-09-29 06:48:25','Email','Added',NULL),
- (18,46,2,'2022-09-26 10:28:06','Admin','Added',NULL),
- (19,13,2,'2022-07-03 09:56:44','Email','Added',NULL),
- (20,99,2,'2022-12-26 21:55:45','Admin','Added',NULL),
- (21,2,2,'2022-03-12 22:24:33','Email','Added',NULL),
- (22,113,2,'2022-08-04 11:14:34','Email','Added',NULL),
- (23,130,2,'2022-07-18 17:55:07','Email','Added',NULL),
- (24,108,2,'2022-06-02 22:34:57','Email','Added',NULL),
- (25,14,2,'2022-03-04 22:09:28','Admin','Added',NULL),
- (26,198,2,'2022-09-03 23:00:00','Email','Added',NULL),
- (27,174,2,'2022-12-31 17:20:19','Email','Added',NULL),
- (28,107,2,'2022-11-25 02:09:42','Email','Added',NULL),
- (29,86,2,'2022-04-10 02:22:13','Admin','Added',NULL),
- (30,54,2,'2022-06-14 13:12:08','Email','Added',NULL),
- (31,161,2,'2022-12-26 19:57:13','Email','Added',NULL),
- (32,165,2,'2022-04-15 11:51:11','Email','Added',NULL),
- (33,139,2,'2022-04-27 00:32:59','Email','Added',NULL),
- (34,37,2,'2022-02-03 16:55:27','Admin','Added',NULL),
- (35,141,2,'2022-03-02 01:19:15','Email','Added',NULL),
- (36,170,2,'2022-12-06 10:19:14','Email','Added',NULL),
- (37,41,2,'2022-09-11 10:25:31','Admin','Added',NULL),
- (38,21,2,'2022-09-12 10:47:31','Admin','Added',NULL),
- (39,181,2,'2022-08-12 21:15:52','Admin','Added',NULL),
- (40,83,2,'2022-04-04 18:33:39','Admin','Added',NULL),
- (41,73,2,'2022-08-26 11:02:18','Admin','Added',NULL),
- (42,53,2,'2022-09-10 16:02:09','Admin','Added',NULL),
- (43,178,2,'2023-01-01 20:33:37','Admin','Added',NULL),
- (44,133,2,'2022-05-02 18:05:48','Email','Added',NULL),
- (45,155,2,'2023-01-13 16:18:59','Email','Added',NULL),
- (46,81,2,'2022-10-03 15:33:25','Admin','Added',NULL),
- (47,177,2,'2022-09-19 14:40:27','Admin','Added',NULL),
- (48,116,2,'2022-01-30 16:57:53','Email','Added',NULL),
- (49,6,2,'2022-03-26 00:09:23','Admin','Added',NULL),
- (50,95,2,'2022-11-19 15:39:02','Email','Added',NULL),
- (51,171,2,'2022-05-26 01:51:14','Email','Added',NULL),
- (52,129,2,'2022-07-26 21:05:41','Admin','Added',NULL),
- (53,51,2,'2023-01-04 15:32:05','Admin','Added',NULL),
- (54,173,2,'2022-05-19 18:00:45','Admin','Added',NULL),
- (55,134,2,'2022-08-09 01:54:37','Admin','Added',NULL),
- (56,23,2,'2022-12-10 07:38:36','Email','Added',NULL),
- (57,118,2,'2022-04-07 16:01:25','Admin','Added',NULL),
- (58,82,2,'2022-08-14 08:16:45','Email','Added',NULL),
- (59,79,2,'2022-09-23 18:38:37','Admin','Added',NULL),
- (60,72,2,'2023-01-02 15:19:46','Email','Added',NULL),
- (61,71,3,'2022-03-05 04:13:23','Email','Added',NULL),
- (62,185,3,'2022-04-10 01:25:56','Email','Added',NULL),
- (63,115,3,'2022-08-06 08:30:44','Email','Added',NULL),
- (64,43,3,'2022-12-24 07:09:44','Email','Added',NULL),
- (65,201,3,'2022-09-19 07:16:50','Admin','Added',NULL),
- (66,182,3,'2022-09-20 04:46:56','Email','Added',NULL),
- (67,8,3,'2022-02-11 14:28:04','Admin','Added',NULL),
- (68,52,3,'2022-11-02 09:58:44','Admin','Added',NULL),
- (69,74,3,'2022-03-17 18:12:37','Email','Added',NULL),
- (70,36,3,'2022-10-21 21:51:08','Email','Added',NULL),
- (71,103,3,'2022-07-19 16:08:13','Email','Added',NULL),
- (72,144,3,'2022-02-01 11:07:38','Admin','Added',NULL),
- (73,39,3,'2022-05-23 16:59:02','Admin','Added',NULL),
- (74,159,3,'2022-08-13 03:42:02','Admin','Added',NULL),
- (75,168,3,'2022-11-09 10:56:30','Admin','Added',NULL),
- (76,199,4,'2022-02-20 18:59:22','Email','Added',NULL),
- (77,75,4,'2022-08-24 22:26:31','Email','Added',NULL),
- (78,125,4,'2022-04-05 20:40:57','Email','Added',NULL),
- (79,113,4,'2022-08-30 10:11:16','Email','Added',NULL),
- (80,86,4,'2022-06-27 23:02:36','Admin','Added',NULL),
- (81,170,4,'2022-11-02 01:05:12','Admin','Added',NULL),
- (82,178,4,'2022-10-15 03:00:42','Email','Added',NULL),
- (83,95,4,'2022-09-13 12:36:47','Email','Added',NULL),
- (84,202,4,'2022-10-27 15:27:50','Admin','Added',NULL);
+ (1,97,2,'2022-08-15 04:54:30','Admin','Added',NULL),
+ (2,32,2,'2022-05-16 07:08:09','Email','Added',NULL),
+ (3,195,2,'2022-07-16 02:15:03','Admin','Added',NULL),
+ (4,150,2,'2023-02-12 15:59:09','Email','Added',NULL),
+ (5,98,2,'2023-01-01 10:57:16','Email','Added',NULL),
+ (6,113,2,'2023-01-21 21:19:05','Admin','Added',NULL),
+ (7,164,2,'2022-10-28 07:03:54','Admin','Added',NULL),
+ (8,9,2,'2022-03-31 08:16:24','Admin','Added',NULL),
+ (9,73,2,'2022-10-25 02:34:48','Email','Added',NULL),
+ (10,79,2,'2022-11-22 05:01:41','Email','Added',NULL),
+ (11,40,2,'2022-08-16 02:27:40','Email','Added',NULL),
+ (12,75,2,'2022-05-24 13:45:41','Email','Added',NULL),
+ (13,60,2,'2023-01-26 19:54:00','Email','Added',NULL),
+ (14,179,2,'2023-02-10 22:06:43','Email','Added',NULL),
+ (15,31,2,'2022-12-12 18:02:50','Admin','Added',NULL),
+ (16,101,2,'2022-07-30 20:06:42','Email','Added',NULL),
+ (17,174,2,'2022-08-13 22:42:32','Admin','Added',NULL),
+ (18,123,2,'2022-06-09 09:33:10','Admin','Added',NULL),
+ (19,162,2,'2022-04-05 09:49:48','Admin','Added',NULL),
+ (20,166,2,'2023-02-01 05:42:37','Email','Added',NULL),
+ (21,29,2,'2022-12-26 04:13:34','Admin','Added',NULL),
+ (22,154,2,'2022-12-20 18:24:41','Admin','Added',NULL),
+ (23,134,2,'2022-03-11 06:58:53','Email','Added',NULL),
+ (24,69,2,'2022-09-23 09:38:13','Admin','Added',NULL),
+ (25,86,2,'2023-02-18 18:52:49','Admin','Added',NULL),
+ (26,76,2,'2022-04-23 04:33:28','Admin','Added',NULL),
+ (27,133,2,'2023-02-28 21:26:56','Admin','Added',NULL),
+ (28,184,2,'2022-08-02 06:31:50','Email','Added',NULL),
+ (29,199,2,'2022-08-14 14:19:16','Email','Added',NULL),
+ (30,161,2,'2023-01-17 14:14:58','Admin','Added',NULL),
+ (31,136,2,'2023-01-15 03:48:35','Admin','Added',NULL),
+ (32,67,2,'2022-08-19 16:23:32','Email','Added',NULL),
+ (33,81,2,'2022-10-13 12:23:51','Email','Added',NULL),
+ (34,114,2,'2022-04-13 13:32:41','Admin','Added',NULL),
+ (35,35,2,'2022-05-18 22:15:57','Admin','Added',NULL),
+ (36,68,2,'2023-02-06 10:51:40','Email','Added',NULL),
+ (37,53,2,'2022-12-18 17:25:29','Admin','Added',NULL),
+ (38,72,2,'2022-06-20 07:25:36','Admin','Added',NULL),
+ (39,175,2,'2023-01-20 13:29:10','Admin','Added',NULL),
+ (40,104,2,'2022-03-15 16:13:56','Email','Added',NULL),
+ (41,30,2,'2022-05-28 18:31:50','Admin','Added',NULL),
+ (42,140,2,'2022-08-24 17:57:57','Email','Added',NULL),
+ (43,78,2,'2022-12-20 06:04:38','Email','Added',NULL),
+ (44,192,2,'2022-08-21 12:21:57','Email','Added',NULL),
+ (45,145,2,'2022-09-05 04:13:43','Admin','Added',NULL),
+ (46,51,2,'2023-01-24 10:44:11','Admin','Added',NULL),
+ (47,74,2,'2022-05-09 10:47:39','Email','Added',NULL),
+ (48,124,2,'2022-05-31 21:14:16','Email','Added',NULL),
+ (49,165,2,'2022-04-27 09:03:12','Admin','Added',NULL),
+ (50,77,2,'2022-04-07 22:45:38','Admin','Added',NULL),
+ (51,201,2,'2023-02-21 13:25:20','Admin','Added',NULL),
+ (52,66,2,'2022-06-04 16:40:09','Email','Added',NULL),
+ (53,121,2,'2022-12-28 04:35:51','Email','Added',NULL),
+ (54,152,2,'2022-09-23 13:13:36','Email','Added',NULL),
+ (55,127,2,'2023-03-07 13:43:51','Email','Added',NULL),
+ (56,176,2,'2022-07-09 23:48:11','Admin','Added',NULL),
+ (57,83,2,'2022-10-31 15:01:43','Admin','Added',NULL),
+ (58,128,2,'2022-07-16 10:28:34','Admin','Added',NULL),
+ (59,148,2,'2022-04-19 04:55:26','Admin','Added',NULL),
+ (60,88,2,'2022-08-07 15:15:40','Admin','Added',NULL),
+ (61,38,3,'2022-06-09 04:23:16','Email','Added',NULL),
+ (62,21,3,'2022-11-22 00:09:39','Admin','Added',NULL),
+ (63,171,3,'2022-06-23 18:56:37','Admin','Added',NULL),
+ (64,170,3,'2023-02-12 05:07:03','Email','Added',NULL),
+ (65,22,3,'2022-05-02 06:48:07','Email','Added',NULL),
+ (66,147,3,'2022-07-08 05:16:13','Admin','Added',NULL),
+ (67,186,3,'2022-07-19 17:04:47','Email','Added',NULL),
+ (68,44,3,'2023-02-06 13:26:41','Email','Added',NULL),
+ (69,196,3,'2022-07-12 00:11:10','Email','Added',NULL),
+ (70,144,3,'2023-01-12 04:46:48','Email','Added',NULL),
+ (71,130,3,'2022-04-12 13:56:58','Email','Added',NULL),
+ (72,142,3,'2022-12-16 15:54:08','Email','Added',NULL),
+ (73,48,3,'2022-08-16 14:20:15','Email','Added',NULL),
+ (74,47,3,'2023-03-03 10:56:30','Admin','Added',NULL),
+ (75,4,3,'2022-06-27 03:47:19','Email','Added',NULL),
+ (76,97,4,'2022-11-20 09:16:14','Email','Added',NULL),
+ (77,9,4,'2023-02-28 03:12:23','Admin','Added',NULL),
+ (78,31,4,'2022-06-26 06:27:17','Admin','Added',NULL),
+ (79,154,4,'2022-09-13 12:10:51','Email','Added',NULL),
+ (80,199,4,'2022-12-19 14:04:50','Admin','Added',NULL),
+ (81,68,4,'2023-02-15 08:38:29','Email','Added',NULL),
+ (82,78,4,'2022-10-10 15:18:40','Admin','Added',NULL),
+ (83,77,4,'2022-09-13 16:51:38','Admin','Added',NULL),
+ (84,202,4,'2022-04-16 11:41:42','Admin','Added',NULL);
 /*!40000 ALTER TABLE `civicrm_subscription_history` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -12493,24 +12482,21 @@ UNLOCK TABLES;
 LOCK TABLES `civicrm_website` WRITE;
 /*!40000 ALTER TABLE `civicrm_website` DISABLE KEYS */;
 INSERT INTO `civicrm_website` (`id`, `contact_id`, `url`, `website_type_id`) VALUES
- (1,93,'http://locallegaltrust.org',1),
- (2,140,'http://baysustainabilitypartners.org',1),
- (3,128,'http://unitedculture.org',1),
- (4,163,'http://minnesotasystems.org',1),
- (5,132,'http://virginianetwork.org',1),
- (6,184,'http://lipoetrytrust.org',1),
- (7,176,'http://wyomingsustainabilityinitiative.org',1),
- (8,87,'http://californiasportstrust.org',1),
- (9,77,'http://whitfieldagriculture.org',1),
- (10,160,'http://greenvillesports.org',1),
- (11,123,'http://indianasportspartnership.org',1),
- (12,59,'http://washingtonwellness.org',1),
- (13,17,'http://laceyvilleartsnetwork.org',1),
- (14,126,'http://louisianatechnology.org',1),
- (15,188,'http://texasinitiative.org',1),
- (16,78,'http://collegecenter.org',1),
- (17,146,'http://progressivefund.org',1),
- (18,175,'http://greenschool.org',1);
+ (1,183,'http://friendscollective.org',1),
+ (2,189,'http://greensolutions.org',1),
+ (3,116,'http://ruralliteracy.org',1),
+ (4,173,'http://michigansoftware.org',1),
+ (5,28,'http://mapleadvocacyfund.org',1),
+ (6,194,'http://pennsylvaniaassociation.org',1),
+ (7,111,'http://pennsylvaniaassociation.org',1),
+ (8,151,'http://ruralcenter.org',1),
+ (9,112,'http://ruralnetwork.org',1),
+ (10,102,'http://mainartsinitiative.org',1),
+ (11,11,'http://creativefund.org',1),
+ (12,24,'http://mlkingdevelopment.org',1),
+ (13,39,'http://unitedcenter.org',1),
+ (14,137,'http://friendsarts.org',1),
+ (15,187,'http://caulderempowerment.org',1);
 /*!40000 ALTER TABLE `civicrm_website` ENABLE KEYS */;
 UNLOCK TABLES;
 
@@ -12548,7 +12534,7 @@ UNLOCK TABLES;
 /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
 /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
 
--- Dump completed on 2023-01-25 11:10:23
+-- Dump completed on 2023-03-08 17:51:26
 -- +--------------------------------------------------------------------+
 -- | Copyright CiviCRM LLC. All rights reserved.                        |
 -- |                                                                    |
@@ -12679,10 +12665,10 @@ DROP TABLE IF EXISTS `civicrm_value_donor_information_3`;
 CREATE TABLE IF NOT EXISTS `civicrm_value_donor_information_3` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Default MySQL primary key',  `entity_id` int(10) unsigned NOT NULL COMMENT 'Table that this extends', `known_areas_of_interest_5` text COLLATE utf8mb4_unicode_ci, `how_long_have_you_been_a_donor_6` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `unique_entity_id` (`entity_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
 SELECT @pptype := id FROM civicrm_payment_processor_type WHERE name='Dummy';
 
-INSERT INTO `civicrm_payment_processor` (`domain_id`, `name`, `description`, `payment_processor_type_id`, `is_active`, `is_default`, `is_test`, `user_name`, `password`, `signature`, `url_site`, `url_api`, `url_recur`, `url_button`, `subject`, `class_name`, `billing_mode`, `is_recur`, `payment_type`) VALUES
- (1, 'Test Processor', '', @pptype, 1, 1, 0, 'dummy', NULL, NULL, 'http://dummy.com', NULL, 'http://dummyrecur.com', NULL, NULL, 'Payment_Dummy', 1, 1, 1);
-INSERT INTO `civicrm_payment_processor` (`domain_id`, `name`, `description`, `payment_processor_type_id`, `is_active`, `is_default`, `is_test`, `user_name`, `password`, `signature`, `url_site`, `url_api`, `url_recur`, `url_button`, `subject`, `class_name`, `billing_mode`, `is_recur`, `payment_type`) VALUES
- (1, 'Test Processor', '', @pptype, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'Payment_Dummy', 1, 1, 1);
+INSERT INTO `civicrm_payment_processor` (`domain_id`, `name`, `title`, `frontend_title`, `description`, `payment_processor_type_id`, `is_active`, `is_default`, `is_test`, `user_name`, `password`, `signature`, `url_site`, `url_api`, `url_recur`, `url_button`, `subject`, `class_name`, `billing_mode`, `is_recur`, `payment_type`) VALUES
+ (1, 'Test Processor', 'Test Processor', 'Test Processor', '', @pptype, 1, 1, 0, 'dummy', NULL, NULL, 'http://dummy.com', NULL, 'http://dummyrecur.com', NULL, NULL, 'Payment_Dummy', 1, 1, 1);
+INSERT INTO `civicrm_payment_processor` (`domain_id`, `name`, `title`, `frontend_title`, `description`, `payment_processor_type_id`, `is_active`, `is_default`, `is_test`, `user_name`, `password`, `signature`, `url_site`, `url_api`, `url_recur`, `url_button`, `subject`, `class_name`, `billing_mode`, `is_recur`, `payment_type`) VALUES
+ (1, 'Test Processor', 'Test Processor', 'Test Processor', '', @pptype, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'Payment_Dummy', 1, 1, 1);
 
 SELECT @dp            := max(id) from civicrm_payment_processor where name = 'Test Processor' AND is_test = 0;
 SELECT @dpTest        := max(id) from civicrm_payment_processor where name = 'Test Processor' AND is_test = 1;
diff --git a/civicrm/sql/civicrm_navigation.mysql b/civicrm/sql/civicrm_navigation.mysql
index c5e1964daabcc500eb88f9a0e8eae58559d7550d..ea8eced96b8f5d2d11d9bdeabd10c4d0c664c6aa 100644
--- a/civicrm/sql/civicrm_navigation.mysql
+++ b/civicrm/sql/civicrm_navigation.mysql
@@ -105,7 +105,7 @@ VALUES
     ( @domainID, 'civicrm/contribute/add?reset=1&action=add&context=standalone', 'New Contribution',  'New Contribution',       'access CiviContribute,edit contributions', 'AND', @contributionlastID, '1', NULL, 2 ),
     ( @domainID, 'civicrm/contribute/search?reset=1',                       'Find Contributions',     'Find Contributions',     'access CiviContribute', '', @contributionlastID, '1', NULL, 3 ),
     ( @domainID, 'civicrm/report/list?compid=2&reset=1',                    'Contribution Reports',   'Contribution Reports',     'access CiviContribute', '', @contributionlastID, '1', 1,    4 ),
-    ( @domainID, 'civicrm/contribute/import?reset=1',                       'Import Contributions',   'Import Contributions',   'access CiviContribute,edit contributions', 'AND', @contributionlastID, '1', '1',  5 ),
+    ( @domainID, 'civicrm/import/contribution?reset=1',                       'Import Contributions',   'Import Contributions',   'access CiviContribute,edit contributions', 'AND', @contributionlastID, '1', '1',  5 ),
     ( @domainID, 'civicrm/batch?reset=1',                                   'Batch Data Entry',        'Batch Data Entry',           'access CiviContribute', '', @contributionlastID, '1', NULL, 7 );
 
 INSERT INTO civicrm_navigation
@@ -684,12 +684,12 @@ VALUES
 INSERT INTO `civicrm_report_instance`
     ( `domain_id`, `title`, `report_id`, `description`, `permission`, `form_values`)
 VALUES
-    ( @domainID, 'Membership Summary', 'member/summary', 'Provides a summary of memberships by type and join date.', 'access CiviMember', 'a:18:{s:6:"fields";a:2:{s:18:"membership_type_id";s:1:"1";s:12:"total_amount";s:1:"1";}s:29:"membership_join_date_relative";s:1:"0";s:25:"membership_join_date_from";s:0:"";s:23:"membership_join_date_to";s:0:"";s:21:"membership_type_id_op";s:2:"in";s:24:"membership_type_id_value";a:0:{}s:12:"status_id_op";s:2:"in";s:15:"status_id_value";a:0:{}s:25:"contribution_status_id_op";s:2:"in";s:28:"contribution_status_id_value";a:0:{}s:9:"group_bys";a:2:{s:9:"join_date";s:1:"1";s:18:"membership_type_id";s:1:"1";}s:14:"group_bys_freq";a:1:{s:9:"join_date";s:5:"MONTH";}s:11:"description";s:56:"Provides a summary of memberships by type and join date.";s:13:"email_subject";s:0:"";s:8:"email_to";s:0:"";s:8:"email_cc";s:0:"";s:10:"permission";s:17:"access CiviMember";s:9:"domain_id";i:1;}');
+    ( @domainID, 'Membership Summary', 'member/summary', 'Provides a summary of memberships by Type and Member Since.', 'access CiviMember', 'a:18:{s:6:"fields";a:2:{s:18:"membership_type_id";s:1:"1";s:12:"total_amount";s:1:"1";}s:29:"membership_join_date_relative";s:1:"0";s:25:"membership_join_date_from";s:0:"";s:23:"membership_join_date_to";s:0:"";s:21:"membership_type_id_op";s:2:"in";s:24:"membership_type_id_value";a:0:{}s:12:"status_id_op";s:2:"in";s:15:"status_id_value";a:0:{}s:25:"contribution_status_id_op";s:2:"in";s:28:"contribution_status_id_value";a:0:{}s:9:"group_bys";a:2:{s:9:"join_date";s:1:"1";s:18:"membership_type_id";s:1:"1";}s:14:"group_bys_freq";a:1:{s:9:"join_date";s:5:"MONTH";}s:11:"description";s:59:"Provides a summary of memberships by Type and Member Since.";s:13:"email_subject";s:0:"";s:8:"email_to";s:0:"";s:8:"email_cc";s:0:"";s:10:"permission";s:17:"access CiviMember";s:9:"domain_id";i:1;}');
 
 INSERT INTO `civicrm_report_instance`
     ( `domain_id`, `title`, `report_id`, `description`, `permission`, `form_values`)
 VALUES
-    ( @domainID, 'Membership Details', 'member/detail', 'Provides a list of members along with their membership status and membership details (Join Date, Start Date, End Date). Can also display contributions (payments) associated with each membership.', 'access CiviMember', 'a:28:{s:6:"fields";a:5:{s:9:"sort_name";s:1:"1";s:18:"membership_type_id";s:1:"1";s:21:"membership_start_date";s:1:"1";s:19:"membership_end_date";s:1:"1";s:4:"name";s:1:"1";}s:12:"sort_name_op";s:3:"has";s:15:"sort_name_value";s:0:"";s:6:"id_min";s:0:"";s:6:"id_max";s:0:"";s:5:"id_op";s:3:"lte";s:8:"id_value";s:0:"";s:29:"membership_join_date_relative";s:1:"0";s:25:"membership_join_date_from";s:0:"";s:23:"membership_join_date_to";s:0:"";s:23:"owner_membership_id_min";s:0:"";s:23:"owner_membership_id_max";s:0:"";s:22:"owner_membership_id_op";s:3:"lte";s:25:"owner_membership_id_value";s:0:"";s:6:"tid_op";s:2:"in";s:9:"tid_value";a:0:{}s:6:"sid_op";s:2:"in";s:9:"sid_value";a:0:{}s:6:"gid_op";s:2:"in";s:9:"gid_value";a:0:{}s:8:"tagid_op";s:2:"in";s:11:"tagid_value";a:0:{}s:11:"description";s:119:"Provides a list of members along with their membership status and membership details (Join Date, Start Date, End Date).";s:13:"email_subject";s:0:"";s:8:"email_to";s:0:"";s:8:"email_cc";s:0:"";s:10:"permission";s:17:"access CiviMember";s:9:"domain_id";i:1;}');
+    ( @domainID, 'Membership Details', 'member/detail', 'Provides a list of members along with their Membership Status and membership details (Member Since, Membership Start Date, Membership Expiration Date). Can also display contributions (payments) associated with each membership.', 'access CiviMember', 'a:28:{s:6:"fields";a:5:{s:9:"sort_name";s:1:"1";s:18:"membership_type_id";s:1:"1";s:21:"membership_start_date";s:1:"1";s:19:"membership_end_date";s:1:"1";s:4:"name";s:1:"1";}s:12:"sort_name_op";s:3:"has";s:15:"sort_name_value";s:0:"";s:6:"id_min";s:0:"";s:6:"id_max";s:0:"";s:5:"id_op";s:3:"lte";s:8:"id_value";s:0:"";s:29:"membership_join_date_relative";s:1:"0";s:25:"membership_join_date_from";s:0:"";s:23:"membership_join_date_to";s:0:"";s:23:"owner_membership_id_min";s:0:"";s:23:"owner_membership_id_max";s:0:"";s:22:"owner_membership_id_op";s:3:"lte";s:25:"owner_membership_id_value";s:0:"";s:6:"tid_op";s:2:"in";s:9:"tid_value";a:0:{}s:6:"sid_op";s:2:"in";s:9:"sid_value";a:0:{}s:6:"gid_op";s:2:"in";s:9:"gid_value";a:0:{}s:8:"tagid_op";s:2:"in";s:11:"tagid_value";a:0:{}s:11:"description";s:151:"Provides a list of members along with their Membership Status and membership details (Member Since, Membership Start Date, Membership Expiration Date).";s:13:"email_subject";s:0:"";s:8:"email_to";s:0:"";s:8:"email_cc";s:0:"";s:10:"permission";s:17:"access CiviMember";s:9:"domain_id";i:1;}');
 
 INSERT INTO `civicrm_report_instance`
     ( `domain_id`, `title`, `report_id`, `description`, `permission`, `form_values`)
diff --git a/civicrm/templates/CRM/Case/Form/Activity.tpl b/civicrm/templates/CRM/Case/Form/Activity.tpl
index cf24faa2819217731e120daa928cf9a098d3b7ca..9087752740e797778ae52f18fb4866f180c9412e 100644
--- a/civicrm/templates/CRM/Case/Form/Activity.tpl
+++ b/civicrm/templates/CRM/Case/Form/Activity.tpl
@@ -241,7 +241,9 @@
       </td>
     </tr>
     {/if}
+{if $isTagset}
   <tr class="crm-case-activity-form-block-tag_set"><td colspan="2">{include file="CRM/common/Tagset.tpl" tagsetType='activity'}</td></tr>
+{/if}
   </table>
 
   {/if}
diff --git a/civicrm/templates/CRM/Case/Form/Case.tpl b/civicrm/templates/CRM/Case/Form/Case.tpl
index 9f53ea070835bef6533daa823ac36f67338017a3..fb40297d4a3ad17f909efbf5c2df34458f7ed8be 100644
--- a/civicrm/templates/CRM/Case/Form/Case.tpl
+++ b/civicrm/templates/CRM/Case/Form/Case.tpl
@@ -105,9 +105,11 @@
     </td>
 </tr>
 
+{if $isTagset}
 <tr class="crm-case-form-block-tag_set">
     {include file="CRM/common/Tagset.tpl" tagsetType='case' tableLayout=true}
 </tr>
+{/if}
 
 </table>
 {/if}
diff --git a/civicrm/templates/CRM/Contact/Form/Merge.tpl b/civicrm/templates/CRM/Contact/Form/Merge.tpl
index e7cf5c32ade272680819418de4a084c5def25757..45b96032b738c5fed42782ef0aecc3f9a12b85af 100644
--- a/civicrm/templates/CRM/Contact/Form/Merge.tpl
+++ b/civicrm/templates/CRM/Contact/Form/Merge.tpl
@@ -114,7 +114,7 @@
           </td>
 
           <td style='white-space: nowrap'>
-             {if $form.$field}=={$form.$field.html|crmAddClass:"select-row"}==&gt;{/if}
+             {if array_key_exists($field, $form) && $form.$field}=={$form.$field.html|crmAddClass:"select-row"}==&gt;{/if}
           </td>
 
           {* For location blocks *}
@@ -219,7 +219,7 @@
       </tr>
       {else}
       <tr class="{cycle values="even-row,odd-row"}">
-        <td><strong>{ts}Move related...{/ts}</strong></td><td><a href="{$params.other_url}">{$params.title}</a></td><td style='white-space: nowrap'>=={$form.$paramName.html|crmAddClass:"select-row"}==&gt;</td><td><a href="{$params.main_url}">{$params.title}</a>{if $form.operation.$paramName.add.html}&nbsp;{$form.operation.$paramName.add.html}{/if}</td>
+        <td><strong>{ts}Move related...{/ts}</strong></td><td><a href="{$params.other_url}">{$params.title}</a></td><td style='white-space: nowrap'>=={$form.$paramName.html|crmAddClass:"select-row"}==&gt;</td><td><a href="{$params.main_url}">{$params.title}</a>{if $params.has_operation}&nbsp;{$form.operation.$paramName.add.html}{/if}</td>
          <td>({ts}migrate{/ts})</td>
       </tr>
       {/if}
diff --git a/civicrm/templates/CRM/Contact/Import/Form/DataSource.tpl b/civicrm/templates/CRM/Contact/Import/Form/DataSource.tpl
index 7d9987b31d4da728fbe40b68952b140c3825afdd..5395b37fcf7f1a3df698cf51a1dbd040a3b0cd9b 100644
--- a/civicrm/templates/CRM/Contact/Import/Form/DataSource.tpl
+++ b/civicrm/templates/CRM/Contact/Import/Form/DataSource.tpl
@@ -7,165 +7,4 @@
  | and copyright information, see https://civicrm.org/licensing       |
  +--------------------------------------------------------------------+
 *}
-
-<div class="crm-block crm-form-block crm-import-datasource-form-block">
-  {* Import Wizard - Step 1 (choose data source) *}
-  {* WizardHeader.tpl provides visual display of steps thru the wizard as well as title for current step *}
-  {include file="CRM/common/WizardHeader.tpl"}
-   <div class="help">
-      {ts}The Import Wizard allows you to easily import contact records from other applications into CiviCRM. For example, if your organization has contacts in MS Access&reg; or Excel&reg;, and you want to start using CiviCRM to store these contacts, you can 'import' them here.{/ts} {help id='choose-data-source-intro'}
-  </div>
-  <div class="crm-submit-buttons">{include file="CRM/common/formButtons.tpl" location="top"}</div>
-  <div id="choose-data-source" class="form-item">
-    <h3>{ts}Choose Data Source{/ts}</h3>
-    <table class="form-layout">
-      <tr class="crm-import-datasource-form-block-dataSource">
-        <td class="label">{$form.dataSource.label}</td>
-        <td>{$form.dataSource.html} {help id='data-source-selection'}</td>
-      </tr>
-    </table>
-  </div>
-
-  {* Data source form pane is injected here when the data source is selected. *}
-  <div id="data-source-form-block">
-  </div>
-
-  <div id="common-form-controls" class="form-item">
-    <h3>{ts}Import Options{/ts}</h3>
-    <table class="form-layout-compressed">
-      {if array_key_exists('contactType', $form)}
-        <tr class="crm-import-datasource-form-block-contactType">
-          <td class="label">{$form.contactType.label}</td>
-          <td>{$form.contactType.html} {help id='contact-type'}{if array_key_exists('contactSubType', $form)}&nbsp;&nbsp;&nbsp;
-            <span id="contact-subtype">{$form.contactSubType.label}&nbsp;&nbsp;&nbsp;{$form.contactSubType.html} {help id='contact-sub-type'}{/if}</span>
-          </td>
-        </tr>
-      {/if}
-      {if array_key_exists('onDuplicate', $form)}
-        <tr class="crm-import-datasource-form-block-onDuplicate">
-          <td class="label">{$form.onDuplicate.label}</td>
-          <td>{$form.onDuplicate.html} {help id='dupes'}</td>
-        </tr>
-      {/if}
-      {if array_key_exists('dedupe_rule_id', $form)}
-        <tr class="crm-import-datasource-form-block-dedupe">
-          <td class="label">{$form.dedupe_rule_id.label}</td>
-          <td><span id="contact-dedupe_rule_id">{$form.dedupe_rule_id.html}</span> {help id='id-dedupe_rule'}</td>
-        </tr>
-      {/if}
-      <tr>{include file="CRM/Core/Date.tpl"}</tr>
-      <tr>
-        <td></td><td class="description">{ts}Select the format that is used for date fields in your import data.{/ts}</td>
-      </tr>
-
-      {if array_key_exists('doGeocodeAddress', $form)}
-        <tr class="crm-import-datasource-form-block-doGeocodeAddress">
-          <td class="label"></td>
-          <td>{$form.doGeocodeAddress.html} {$form.doGeocodeAddress.label}<br />
-            <span class="description">
-              {ts}This option is not recommended for large imports. Use the command-line geocoding script instead.{/ts}
-            </span>
-            {docURL page="user/initial-set-up/scheduled-jobs"}
-          </td>
-        </tr>
-      {/if}
-
-      {if array_key_exists('savedMapping', $form)}
-        <tr class="crm-import-datasource-form-block-savedMapping">
-          <td class="label"><label for="savedMapping">{$form.savedMapping.label}</label></td>
-          <td>{$form.savedMapping.html}<br />
-    &nbsp;&nbsp;&nbsp;     <span class="description">{ts}Select Saved Mapping or Leave blank to create a new One.{/ts}</span>
-          </td>
-        </tr>
-      {/if}
-
-      {if array_key_exists('disableUSPS', $form)}
-        <tr class="crm-import-datasource-form-block-disableUSPS">
-          <td class="label"></td>
-          <td>{$form.disableUSPS.html} <label for="disableUSPS">{$form.disableUSPS.label}</label><br />
-             &nbsp;&nbsp;&nbsp; <span class="description">{ts}Uncheck at your own risk as batch processing violates USPS API TOS.{/ts}</span>
-          </td>
-        </tr>
-      {/if}
-    </table>
-  </div>
-
-  <div class="crm-submit-buttons">{include file="CRM/common/formButtons.tpl" location="bottom"} </div>
-  {literal}
-    <script type="text/javascript">
-      CRM.$(function($) {
-       //build data source form block
-       buildDataSourceFormBlock();
-       buildSubTypes();
-       buildDedupeRules();
-    });
-
-    function buildDataSourceFormBlock(dataSource)
-    {
-      var dataUrl = {/literal}"{crmURL p=$urlPath h=0 q=$urlPathVar|smarty:nodefaults}"{literal};
-
-      if (!dataSource ) {
-        var dataSource = cj("#dataSource").val();
-      }
-
-      if ( dataSource ) {
-        dataUrl = dataUrl + '&dataSource=' + dataSource;
-      } else {
-        cj("#data-source-form-block").html( '' );
-        return;
-      }
-
-      cj("#data-source-form-block").load( dataUrl );
-    }
-
-    function buildSubTypes( )
-    {
-      element = cj('input[name="contactType"]:checked').val( );
-      var postUrl = {/literal}"{crmURL p='civicrm/ajax/subtype' h=0 }"{literal};
-      var param = 'parentId='+ element;
-      cj.ajax({ type: "POST", url: postUrl, data: param, async: false, dataType: 'json',
-        success: function(subtype)
-        {
-          if ( subtype.length === 0 ) {
-            cj("#contactSubType").empty();
-            cj("#contact-subtype").hide();
-          }
-          else {
-            cj("#contact-subtype").show();
-            cj("#contactSubType").empty();
-            cj("#contactSubType").append("<option value=''>- {/literal}{ts escape='js'}select{/ts}{literal} -</option>");
-            for ( var key in  subtype ) {
-              // stick these new options in the subtype select
-              cj("#contactSubType").append("<option value="+key+">"+subtype[key]+" </option>");
-            }
-          }
-        }
-      });
-    }
-
-    function buildDedupeRules( )
-    {
-      element = cj("input[name=contactType]:checked").val();
-      var postUrl = {/literal}"{crmURL p='civicrm/ajax/dedupeRules' h=0 }"{literal};
-      var param = 'parentId='+ element;
-      cj.ajax({ type: "POST", url: postUrl, data: param, async: false, dataType: 'json',
-        success: function(dedupe){
-          if ( dedupe.length === 0 ) {
-            cj("#dedupe_rule_id").empty();
-            cj("#contact-dedupe").hide();
-          } else {
-            cj("#contact-dedupe").show();
-            cj("#dedupe_rule_id").empty();
-
-            cj("#dedupe_rule_id").append("<option value=''>- {/literal}{ts escape='js'}select{/ts}{literal} -</option>");
-            for ( var key in  dedupe ) {
-              // stick these new options in the dedupe select
-              cj("#dedupe_rule_id").append("<option value="+key+">"+dedupe[key]+" </option>");
-            }
-          }
-        }
-      });
-    }
-    </script>
-  {/literal}
-</div>
+{include file="CRM/Import/Form/DataSource.tpl"}
diff --git a/civicrm/templates/CRM/Contact/Import/Form/MapField.tpl b/civicrm/templates/CRM/Contact/Import/Form/MapField.tpl
index 7168bf9fd552302fd99f8fab5483adb142322f6d..f73cdbce1cfd688489eacaa64cddccdb3912ad1e 100644
--- a/civicrm/templates/CRM/Contact/Import/Form/MapField.tpl
+++ b/civicrm/templates/CRM/Contact/Import/Form/MapField.tpl
@@ -41,18 +41,6 @@
    </script>
  {/literal}
 
-<script type="text/javascript" >
-{literal}
-if ( document.getElementsByName("saveMapping")[0].checked ) {
-    document.getElementsByName("updateMapping")[0].checked = true;
-    document.getElementsByName("saveMapping")[0].checked = false;
-}
-{/literal}
-{if $isCheked}
-    document.getElementsByName("saveMapping")[0].checked = true;
-{/if}
-</script>
-
  <div class="crm-submit-buttons">{include file="CRM/common/formButtons.tpl" location="bottom"}</div>
  {$initHideBoxes|smarty:nodefaults}
 
diff --git a/civicrm/templates/CRM/Contact/Import/Form/Summary.tpl b/civicrm/templates/CRM/Contact/Import/Form/Summary.tpl
index 19436b2c32580faa63568d5a573306ebf62dbf81..f0d6368f62fe543bc070d80fb727f1f84003b07d 100644
--- a/civicrm/templates/CRM/Contact/Import/Form/Summary.tpl
+++ b/civicrm/templates/CRM/Contact/Import/Form/Summary.tpl
@@ -22,6 +22,10 @@
        <strong>{ts}Import has completed successfully.{/ts}</strong>
      {/if}
    </p>
+   {if $templateURL}
+     <p>
+       {ts 1=$templateURL|smarty:nodefaults}You can re-use this import configuration <a href="%1">here</a>{/ts}</p>
+   {/if}
 
    {if $unMatchCount}
         <p class="error">
@@ -61,7 +65,7 @@
   {* Summary of Import Results (record counts) *}
   <table id="summary-counts" class="report">
     <tr><td class="label crm-grid-cell">{ts}Total Rows{/ts}</td>
-      <td class="data">{$totalRowCount}</td>
+      <td class="data">{if $allRowsUrl} <a href="{$allRowsUrl}" target="_blank" rel="noopener noreferrer">{$totalRowCount}</a>{else}{$totalRowCount}{/if}</td>
       <td class="explanation">{ts}Total number of rows in the imported data.{/ts}</td>
     </tr>
     {if $unprocessedRowCount}
@@ -100,7 +104,7 @@
 
     <tr>
       <td class="label crm-grid-cell">{ts}Total Rows Imported{/ts}</td>
-      <td class="data">{$importedRowCount}</td>
+      <td class="data">{if $importedRowsUrl} <a href="{$importedRowsUrl}" target="_blank" rel="noopener noreferrer">{$importedRowCount}</a>{else}{$importedRowCount}{/if}</td>
       <td class="explanation">{ts}Total number of primary records created or modified during the import.{/ts}</td>
     </tr>
     {foreach from=$trackingSummary item="summaryRow"}
diff --git a/civicrm/templates/CRM/Contribute/Form/Contribution.tpl b/civicrm/templates/CRM/Contribute/Form/Contribution.tpl
index 702832d7c1253dce649c9846b2008e3d560210c2..ba4adbcf4690c578381c0b80149798dc0cfc9ad2 100644
--- a/civicrm/templates/CRM/Contribute/Form/Contribution.tpl
+++ b/civicrm/templates/CRM/Contribute/Form/Contribution.tpl
@@ -284,7 +284,7 @@
     <!-- end of soft credit -->
 
     <!-- start of PCP -->
-    {if $siteHasPCPs && !$payNow}
+    {if array_key_exists('pcp_made_through_id', $form) && !$payNow}
       <div class="crm-accordion-wrapper crm-accordion_title-accordion crm-accordion-processed {if $noPCP}collapsed{/if}" id="softCredit">
         <div class="crm-accordion-header">
           {ts}Personal Campaign Page{/ts}&nbsp;{help id="id-pcp"}
diff --git a/civicrm/templates/CRM/Contribute/Form/Contribution/Main.tpl b/civicrm/templates/CRM/Contribute/Form/Contribution/Main.tpl
index e5e6f688f786b2ac8ae6965979825eccc434dc93..a7ee32e09e5eb1db14e451b97dbc01d5f512308e 100644
--- a/civicrm/templates/CRM/Contribute/Form/Contribution/Main.tpl
+++ b/civicrm/templates/CRM/Contribute/Form/Contribution/Main.tpl
@@ -287,15 +287,6 @@
       {include file="CRM/UF/Form/Block.tpl" fields=$customPost}
     </div>
 
-    {if $is_monetary && array_key_exists('bank_account_number', $form)}
-      <div id="payment_notice">
-        <fieldset class="crm-public-form-item crm-group payment_notice-group">
-          <legend>{ts}Agreement{/ts}</legend>
-          {ts}Your account data will be used to charge your bank account via direct debit. While submitting this form you agree to the charging of your bank account via direct debit.{/ts}
-        </fieldset>
-      </div>
-    {/if}
-
     <div id="crm-submit-buttons" class="crm-submit-buttons">
       {include file="CRM/common/formButtons.tpl" location="bottom"}
     </div>
diff --git a/civicrm/templates/CRM/Contribute/Import/Form/Preview.tpl b/civicrm/templates/CRM/Contribute/Import/Form/Preview.tpl
index 03458208b07cf513aeed2132031ecde7e4fbb647..9f4f93f658ff0400f2bff1c03d8c2f3a878811fa 100644
--- a/civicrm/templates/CRM/Contribute/Import/Form/Preview.tpl
+++ b/civicrm/templates/CRM/Contribute/Import/Form/Preview.tpl
@@ -20,7 +20,7 @@
 
     {if $invalidRowCount}
         <p class="error">
-        {ts 1=$invalidRowCount 2=$downloadErrorRecordsUrl}CiviCRM has detected invalid data or formatting errors in %1 records. If you continue, these records will be skipped.  You can download a file with just these problem records: <a href='%2'>Download Errors</a>.  If you wish, you can then correct them in the original import file, cancel this import, and begin again at step 1.{/ts}
+        {ts 1=$invalidRowCount 2=$downloadErrorRecordsUrl}CiviCRM has detected invalid data or formatting errors in %1 records. If you continue, these records will be skipped.  You can review these problem records: <a href='%2' {if $isOpenResultsInNewTab} target="_blank" rel="noopener noreferrer"{/if}>See Errors</a>.  If you wish, you can then correct them in the original import file, cancel this import, and begin again at step 1.{/ts}
         </p>
     {/if}
 
@@ -32,7 +32,9 @@
  <table id="preview-counts" class="report">
     <tr><td class="label crm-grid-cell">{ts}Total Rows{/ts}</td>
         <td class="data">{$totalRowCount}</td>
-        <td class="explanation">{ts}Total rows (contribution records) in uploaded file.{/ts}</td>
+        <td class="explanation">{ts}Total rows (contribution records) in uploaded file.{/ts}
+          {if $allRowsUrl} <a href="{$allRowsUrl}" target="_blank" rel="noopener noreferrer">{ts}See rows{/ts}</a>{/if}
+        </td>
     </tr>
 
     {if $invalidRowCount}
@@ -40,7 +42,7 @@
         <td class="data">{$invalidRowCount}</td>
         <td class="explanation">{ts}Rows with invalid data in one or more fields. These rows will be skipped (not imported).{/ts}
             {if $invalidRowCount}
-                <p><a href="{$downloadErrorRecordsUrl}">{ts}Download Errors{/ts}</a></p>
+                <p><a href="{$downloadErrorRecordsUrl|smarty:nodefaults}" {if $isOpenResultsInNewTab} target="_blank" rel="noopener noreferrer"{/if}>{ts}See Errors{/ts}</a></p>
             {/if}
         </td>
     </tr>
diff --git a/civicrm/templates/CRM/Contribute/Page/DashBoard.hlp b/civicrm/templates/CRM/Contribute/Page/DashBoard.hlp
index e1262b6848955e988c574d250818b4621f82944d..c295ea7c170c6181967c2507e5b6842a6241d3b4 100644
--- a/civicrm/templates/CRM/Contribute/Page/DashBoard.hlp
+++ b/civicrm/templates/CRM/Contribute/Page/DashBoard.hlp
@@ -12,9 +12,9 @@
 {/htxt}
 {htxt id="id-contribute-intro"}
     {capture assign=findContactURL}{crmURL p="civicrm/contact/search/basic" q="reset=1"}{/capture}
-    {capture assign=importURL}{crmURL p="civicrm/contribute/import" q="reset=1"}{/capture}
+    {capture assign=importURL}{crmURL p="civicrm/import/contribution" q="reset=1"}{/capture}
     <p>{ts 1=$findContactURL 2=$importURL}CiviContribute allows you to create customized page(s) for collecting online contributions. You can also input and track offline contributions. To enter contributions manually for individual contacts, use <a href='%1'>Find Contacts</a> to locate the contact. Then click <strong>View</strong> to go to their summary page and click on the <strong>New Contribution</strong> link. You can also <a href='%2'>import batches of offline contributions</a> from other sources.{/ts}</p>
-        
+
     {capture assign=findContribsURL}{crmURL p="civicrm/contribute/search/basic" q="reset=1"}{/capture}
     <p>{ts 1=$findContribsURL}The <strong>Contribution Summary</strong> table provides a summary of month and year-to-date contribution totals, and includes shortcuts to view the contribution details for these commonly used search periods. To run your own customized searches - click <a href='%1'>Find Contributions</a>. You can search by Contributor Name, Amount Range, and a variety of other criteria.{/ts}</p>
 {/htxt}
diff --git a/civicrm/templates/CRM/Core/BillingBlock.tpl b/civicrm/templates/CRM/Core/BillingBlock.tpl
index f8bb2088f5064eb060a201e25cafe51ce1317bf6..520e9bd6b13d81dca4474cf14c4094dd3d0c7be8 100644
--- a/civicrm/templates/CRM/Core/BillingBlock.tpl
+++ b/civicrm/templates/CRM/Core/BillingBlock.tpl
@@ -39,6 +39,14 @@
         {/foreach}
       </div>
     </fieldset>
+    {if $paymentAgreementTitle}
+      <div id="payment_notice">
+        <fieldset class="crm-public-form-item crm-group payment_notice-group">
+          <legend>{$paymentAgreementTitle}</legend>
+          {ts}Your account data will be used to charge your bank account via direct debit. While submitting this form you agree to the charging of your bank account via direct debit.{/ts}
+        </fieldset>
+      </div>
+    {/if}
   {/if}
   {if $billingDetailsFields|@count && $paymentProcessor.payment_processor_type neq 'PayPal_Express'}
     {if $profileAddressFields && !$ccid}
diff --git a/civicrm/templates/CRM/Event/Form/Search/Common.tpl b/civicrm/templates/CRM/Event/Form/Search/Common.tpl
index 1081d1e137d9234f1bb1f800cb374da2642ecf03..a96d6b2ec75c09410016c8ed08843d2e10f0cc79 100644
--- a/civicrm/templates/CRM/Event/Form/Search/Common.tpl
+++ b/civicrm/templates/CRM/Event/Form/Search/Common.tpl
@@ -50,6 +50,9 @@
     {$form.participant_fee_amount_high.label} &nbsp; {$form.participant_fee_amount_high.html}
   </td>
 </tr>
+<tr>
+  <td colspan="2"><label>{$form.participant_id.label}</label> {$form.participant_id.html}</td>
+</tr>
 
 {* campaign in contribution search *}
 {include file="CRM/Campaign/Form/addCampaignToSearch.tpl"
diff --git a/civicrm/templates/CRM/Group/Form/Edit.tpl b/civicrm/templates/CRM/Group/Form/Edit.tpl
index dc493bf44339155a98b142389259c80066c03c7e..41576a9f527393d450657c9c8aa4daab0e89eef1 100644
--- a/civicrm/templates/CRM/Group/Form/Edit.tpl
+++ b/civicrm/templates/CRM/Group/Form/Edit.tpl
@@ -7,7 +7,10 @@
  | and copyright information, see https://civicrm.org/licensing       |
  +--------------------------------------------------------------------+
 *}
-{* this template is used for adding/editing group (name and description only)  *}
+{* this template is used for adding/editing/deleting a group *}
+{if $action eq 8}
+  {include file="CRM/Group/Form/Delete.tpl"}
+{else}
 <div class="crm-block crm-form-block crm-group-form-block">
   <div class="help">
     {if $action eq 2}
@@ -115,3 +118,4 @@
   </script>
   {/literal}
 </div>
+{/if}
diff --git a/civicrm/templates/CRM/Group/Page/Group.tpl b/civicrm/templates/CRM/Group/Page/Group.tpl
index f36bfdc74312e840766b65f88a3f60ff510fb817..134d2b10284e9f3f065ea15be4d78b07013232a6 100644
--- a/civicrm/templates/CRM/Group/Page/Group.tpl
+++ b/civicrm/templates/CRM/Group/Page/Group.tpl
@@ -23,10 +23,8 @@
 {include file="CRM/Group/Form/Search.tpl"}
 {/if}
 
-{if $action eq 1 or $action eq 2}
+{if $action eq 1 or $action eq 2 or $action eq 8}
    {include file="CRM/Group/Form/Edit.tpl"}
-{elseif $action eq 8}
-   {include file="CRM/Group/Form/Delete.tpl"}
 {/if}
 
 {if $action ne 1 and $action ne 2 and $action ne 8 and $groupPermission eq 1}
diff --git a/civicrm/templates/CRM/Import/Form/DataSource.tpl b/civicrm/templates/CRM/Import/Form/DataSource.tpl
index 5da2f56a9fe43da1cdac9715f997d8423966480a..2278273766be454c0e84d680d17540f952c1d477 100644
--- a/civicrm/templates/CRM/Import/Form/DataSource.tpl
+++ b/civicrm/templates/CRM/Import/Form/DataSource.tpl
@@ -27,6 +27,16 @@
   <div id="choose-data-source" class="form-item">
     <h3>{ts}Choose Data Source{/ts}</h3>
     <table class="form-layout">
+      {if array_key_exists('use_existing_upload', $form)}
+        <tr class="crm-import-datasource-form-block-use_existing_upload">
+          <td class="label">{$form.use_existing_upload.label}</td>
+          <td>{$form.use_existing_upload.html}</td>
+          {* If the there is already an uploaded file then check the box when the form loads. This will
+          cause it be checked regardless of whether they checked it last time (we assume they want
+          to re-use) and also triggers the hide script for the dataSource field *}
+          {literal}<script type="text/javascript">CRM.$('#use_existing_upload').prop('checked',true).change();</script>{/literal}
+        </tr>
+      {/if}
       <tr class="crm-import-datasource-form-block-dataSource">
         <td class="label">{$form.dataSource.label}</td>
         <td>{$form.dataSource.html} {help id='data-source-selection'}</td>
@@ -37,41 +47,82 @@
     {* Data source form pane is injected here when the data source is selected. *}
   <div id="data-source-form-block">
   </div>
+  <div id="common-form-controls" class="form-item">
+    <h3>{ts}Import Options{/ts}</h3>
     <table class="form-layout-compressed">
       {if array_key_exists('contactType', $form)}
         <tr class="crm-import-uploadfile-from-block-contactType">
           <td class="label">{$form.contactType.label}</td>
-          <td>{$form.contactType.html}<br />
-            <span class="description">
-              {ts 1=$importEntities}Select 'Individual' if you are importing %1 made by individual persons.{/ts}
-              {ts 1=$importEntities}Select 'Organization' or 'Household' if you are importing %1 to contacts of that type.{/ts}
-            </span>
+          <td>{$form.contactType.html}{help id='contact-type'}<br />
+            {if $importEntity !== 'Contact'}
+              <span class="description">
+                {ts 1=$importEntities}Select 'Individual' if you are importing %1 made by individual persons.{/ts}
+                {ts 1=$importEntities}Select 'Organization' or 'Household' if you are importing %1 to contacts of that type.{/ts}
+              </span>
+            {/if}
           </td>
         </tr>
       {/if}
+      {if array_key_exists('contactSubType', $form)}
+        <tr>
+          <td class="label">{$form.contactSubType.label}</td>
+          <td><span id="contact-subtype">{$form.contactSubType.html} {help id='contact-sub-type'}</span></td>
+        </tr>
+      {/if}
+
       {if array_key_exists('onDuplicate', $form)}
         <tr class="crm-import-uploadfile-from-block-onDuplicate">
           <td class="label">{$form.onDuplicate.label}</td>
           <td>{$form.onDuplicate.html} {help id="id-onDuplicate"}</td>
         </tr>
       {/if}
+      {if array_key_exists('dedupe_rule_id', $form)}
+        <tr class="crm-import-datasource-form-block-dedupe">
+          <td class="label">{$form.dedupe_rule_id.label}</td>
+          <td><span id="contact-dedupe_rule_id">{$form.dedupe_rule_id.html}</span> {help id='id-dedupe_rule'}</td>
+        </tr>
+      {/if}
       {if array_key_exists('multipleCustomData', $form)}
         <tr class="crm-import-uploadfile-form-block-multipleCustomData">
           <td class="label">{$form.multipleCustomData.label}</td>
           <td><span>{$form.multipleCustomData.html}</span> </td>
         </tr>
       {/if}
-       <tr class="crm-import-uploadfile-form-block-date">{include file="CRM/Core/Date.tpl"}</tr>
+      <tr class="crm-import-uploadfile-form-block-date">{include file="CRM/Core/Date.tpl"}</tr>
+      <tr>
+        <td></td><td class="description">{ts}Select the format that is used for date fields in your import data.{/ts}</td>
+      </tr>
+
+      {if array_key_exists('doGeocodeAddress', $form)}
+          <tr class="crm-import-datasource-form-block-doGeocodeAddress">
+            <td class="label"></td>
+            <td>{$form.doGeocodeAddress.html} {$form.doGeocodeAddress.label}<br />
+              <span class="description">
+              {ts}This option is not recommended for large imports. Use the command-line geocoding script instead.{/ts}
+            </span>
+                {docURL page="user/initial-set-up/scheduled-jobs"}
+            </td>
+          </tr>
+        {/if}
+        {if array_key_exists('disableUSPS', $form)}
+          <tr class="crm-import-datasource-form-block-disableUSPS">
+            <td class="label"></td>
+            <td>{$form.disableUSPS.html} <label for="disableUSPS">{$form.disableUSPS.label}</label><br />
+              &nbsp;&nbsp;&nbsp; <span class="description">{ts}Uncheck at your own risk as batch processing violates USPS API TOS.{/ts}</span>
+            </td>
+          </tr>
+        {/if}
        {if array_key_exists('savedMapping', $form)}
          <tr class="crm-import-uploadfile-form-block-savedMapping">
-           <td>{$form.savedMapping.label}</td>
+           <td class="label"><label for="savedMapping">{$form.savedMapping.label}</label></td>
            <td>{$form.savedMapping.html}<br />
-             <span class="description">{ts}If you want to use a previously saved import field mapping - select it here.{/ts}</span>
+             {if !$form.savedMapping.frozen}<span class="description">{ts}If you want to use a previously saved import field mapping - select it here.{/ts}</span>{/if}
            </td>
          </tr>
        {/if}
     </table>
-    <div class="spacer"></div>
+  </div>
+  <div class="spacer"></div>
 
   <div class="crm-submit-buttons">{include file="CRM/common/formButtons.tpl" location="bottom"}</div>
 {literal}
@@ -79,6 +130,8 @@
     CRM.$(function($) {
       // build data source form block
       buildDataSourceFormBlock();
+      buildSubTypes();
+      buildDedupeRules();
     });
 
     function buildDataSourceFormBlock(dataSource) {
@@ -97,7 +150,62 @@
 
       CRM.$("#data-source-form-block").load(dataUrl);
     }
+
+    function buildSubTypes( )
+    {
+      element = cj('input[name="contactType"]:checked').val( );
+      var postUrl = {/literal}"{crmURL p='civicrm/ajax/subtype' h=0 }"{literal};
+      var param = 'parentId='+ element;
+      cj.ajax({ type: "POST", url: postUrl, data: param, async: false, dataType: 'json',
+        success: function(subtype)
+        {
+          if ( subtype.length === 0 ) {
+            cj("#contactSubType").empty();
+            cj("#contact-subtype").hide();
+          }
+          else {
+            cj("#contact-subtype").show();
+            cj("#contactSubType").empty();
+            cj("#contactSubType").append("<option value=''>- {/literal}{ts escape='js'}select{/ts}{literal} -</option>");
+            for ( var key in  subtype ) {
+              // stick these new options in the subtype select
+              cj("#contactSubType").append("<option value="+key+">"+subtype[key]+" </option>");
+            }
+          }
+        }
+      });
+    }
+
+    function buildDedupeRules( )
+    {
+      element = cj("input[name=contactType]:checked").val();
+      var postUrl = {/literal}"{crmURL p='civicrm/ajax/dedupeRules' h=0 }"{literal};
+      var param = 'parentId='+ element;
+      cj.ajax({ type: "POST", url: postUrl, data: param, async: false, dataType: 'json',
+        success: function(dedupe){
+          if ( dedupe.length === 0 ) {
+            cj("#dedupe_rule_id").empty();
+            cj("#contact-dedupe").hide();
+          } else {
+            cj("#contact-dedupe").show();
+            cj("#dedupe_rule_id").empty();
+
+            cj("#dedupe_rule_id").append("<option value=''>- {/literal}{ts escape='js'}select{/ts}{literal} -</option>");
+            for ( var key in  dedupe ) {
+              // stick these new options in the dedupe select
+              cj("#dedupe_rule_id").append("<option value="+key+">"+dedupe[key]+" </option>");
+            }
+          }
+        }
+      });
+    }
   </script>
 {/literal}
+  {if array_key_exists('use_existing_upload', $form)}
+    {* If the there is already an uploaded file then check the box when the form loads. This will
+    cause it be checked regardless of whether they checked it last time (we assume they want
+    to re-use) and also triggers the hide script for the dataSource field *}
+    {literal}<script type="text/javascript">CRM.$('#use_existing_upload').prop('checked',true).change();</script>{/literal}
+  {/if}
 </div>
 
diff --git a/civicrm/templates/CRM/Import/Form/MapTableCommon.tpl b/civicrm/templates/CRM/Import/Form/MapTableCommon.tpl
index 8be853aa87fc1d70a18bd4840b685906765885ae..ad05a6809132013cb27c010feda3ae066c88f0be 100644
--- a/civicrm/templates/CRM/Import/Form/MapTableCommon.tpl
+++ b/civicrm/templates/CRM/Import/Form/MapTableCommon.tpl
@@ -68,17 +68,24 @@
             } else {
               cj('#saveDetails').hide();
             }
-
-            function showSaveDetails(chkbox) {
-              if (chkbox.checked) {
-                document.getElementById("saveDetails").style.display = "block";
-                document.getElementById("saveMappingName").disabled = false;
-                document.getElementById("saveMappingDesc").disabled = false;
+            cj('#updateMapping').change(function() {
+              cj('#saveMapping').prop("checked", !this.checked).change();
+            });
+            cj('#saveMapping').change(function() {
+              if (this.checked) {
+                cj('#saveDetails').show();
+                cj('#updateMapping').prop('checked', false);
+                cj('#saveMappingName').removeAttr('disabled')
+                cj('#saveMappingDesc').removeAttr('disabled')
               } else {
-                document.getElementById("saveDetails").style.display = "none";
-                document.getElementById("saveMappingName").disabled = true;
-                document.getElementById("saveMappingDesc").disabled = true;
+                cj('#saveDetails').hide();
+                cj('#saveMappingName').attr('disabled','disabled');
+                cj('#saveMappingDesc').attr('disabled','disabled');
               }
+            });
+            // Load in update mode if we have already saved the name - ie gone forwards & back.
+            if (cj('#saveMappingName').val()) {
+              cj('#updateMapping').prop("checked", true).change();
             }
             cj('select[id^="mapper"][id$="[0]"]').addClass('huge');
             {/literal}
diff --git a/civicrm/templates/CRM/Mailing/MailingUI.hlp b/civicrm/templates/CRM/Mailing/MailingUI.hlp
index f3c4038e2398ef37efb036019c43d64ab89b263d..c8f4b148f868a4636baaa3c97bebee8b8dc517d6 100644
--- a/civicrm/templates/CRM/Mailing/MailingUI.hlp
+++ b/civicrm/templates/CRM/Mailing/MailingUI.hlp
@@ -15,7 +15,7 @@
 </p>
 {/htxt}
 
-{htxt id="from_email"}
+{htxt id ="from_email"}
   <p>{ts}Select the "FROM" Email Address for this mailing from the dropdown list. Available email addresses are configurable by users with Administer CiviCRM permission. EXAMPLE: "Client Services" &lt;clientservices@example.org&gt;{/ts}</p>
 {if call_user_func(array('CRM_Core_Permission','check'), 'administer CiviCRM') }
   {capture assign="fromConfig"}{crmURL p="civicrm/admin/options/from_email_address" q="reset=1"}{/capture}
diff --git a/civicrm/templates/CRM/Member/Form/Membership.tpl b/civicrm/templates/CRM/Member/Form/Membership.tpl
index 479653804574168547b01fb2d66937900c7c6a50..7f8203b0a01a66061b0037ebb880b2d8de8bbb78 100644
--- a/civicrm/templates/CRM/Member/Form/Membership.tpl
+++ b/civicrm/templates/CRM/Member/Form/Membership.tpl
@@ -66,7 +66,7 @@
     {if $action eq 8}
     <div class="messages status no-popup">
       {icon icon="fa-info-circle"}{/icon}
-      {$deleteMessage}
+      {$deleteMessage|smarty:nodefaults}
     </div>
     {else}
       <table class="form-layout-compressed">
@@ -109,7 +109,7 @@
           <tr id="num_terms_row" class="crm-membership-form-block-num_terms">
             <td class="label">{$form.num_terms.label}</td>
             <td>&nbsp;{$form.num_terms.html}<br />
-              <span class="description">{ts}Set the membership end date this many membership periods from now. Make sure the appropriate corresponding fee is entered below.{/ts}</span>
+              <span class="description">{ts}Set the Membership Expiration Date this many membership periods from now. Make sure the appropriate corresponding fee is entered below.{/ts}</span>
             </td>
           </tr>
         {/if}
diff --git a/civicrm/templates/CRM/Member/Form/MembershipRenewal.tpl b/civicrm/templates/CRM/Member/Form/MembershipRenewal.tpl
index 2877601037045de3d06cef491a4d1483e51692e0..a8e00e02b44509e8d08b449685470c55b17d780c 100644
--- a/civicrm/templates/CRM/Member/Form/MembershipRenewal.tpl
+++ b/civicrm/templates/CRM/Member/Form/MembershipRenewal.tpl
@@ -72,7 +72,7 @@
           <span class="description">{ts}Status of this membership.{/ts}</span></td>
       </tr>
       <tr class="crm-member-membershiprenew-form-block-end_date">
-        <td class="label">{ts}Membership End Date{/ts}</td>
+        <td class="label">{ts}Membership Expiration Date{/ts}</td>
         <td class="html-adjust">&nbsp;{$endDate|crmDate}</td>
       </tr>
       <tr class="crm-member-membershiprenew-form-block-renewal_date">
@@ -81,7 +81,7 @@
       </tr>
       <tr id="defaultNumTerms" class="crm-member-membershiprenew-form-block-default-num_terms">
         <td colspan="2" class="description">
-          {ts}Renewal extends membership end date by one membership period{/ts}
+          {ts}Renewal extends Membership Expiration Date by one membership period{/ts}
           &nbsp; <a id="changeTermsLink" href='#'
                     onclick='changeNumTerms(); return false;'>{ts}change{/ts}</a>
         </td>
@@ -90,7 +90,7 @@
         <td class="label">{$form.num_terms.label}</td>
         <td>{$form.num_terms.html|crmAddClass:two} {ts}membership periods{/ts}<br/>
           <span
-            class="description">{ts}Extend the membership end date by this many membership periods. Make sure the appropriate corresponding fee is entered below.{/ts}</span>
+            class="description">{ts}Extend the Membership Expiration Date by this many membership periods. Make sure the appropriate corresponding fee is entered below.{/ts}</span>
         </td>
       </tr>
       {if $accessContribution and ! $membershipMode}
diff --git a/civicrm/templates/CRM/Member/Form/MembershipStatus.tpl b/civicrm/templates/CRM/Member/Form/MembershipStatus.tpl
index 0994cd02517c4d90a47cb50e339076acde48261e..da4445c6ee87af270e32891530fde66443392364 100644
--- a/civicrm/templates/CRM/Member/Form/MembershipStatus.tpl
+++ b/civicrm/templates/CRM/Member/Form/MembershipStatus.tpl
@@ -35,25 +35,25 @@
       <tr class="crm-membership-status-form-block-start_event">
         <td class="label">{$form.start_event.label}</td>
         <td class="html-adjust">{$form.start_event.html}<br />
-           <span class="description">{ts}When does this status begin? EXAMPLE: <strong>New</strong> status begins at the membership 'join date'.{/ts}</span>
+           <span class="description">{ts}When does this status begin? EXAMPLE: <strong>New</strong> status begins at the Member Since.{/ts}</span>
         </td>
       </tr>
       <tr class="crm-membership-status-form-block-start_event_unit_interval">
         <td class="label">{$form.start_event_adjust_unit.label}</td>
         <td class="html-adjust">&nbsp;{$form.start_event_adjust_interval.html}&nbsp;&nbsp;{$form.start_event_adjust_unit.html}<br />
-           <span class="description">{ts}Optional adjustment period added or subtracted from the Start Event. EXAMPLE: <strong>Current</strong> status might begin at 'join date' PLUS 3 months (to distinguish Current from New members).{/ts}</span>
+           <span class="description">{ts}Optional adjustment period added or subtracted from the Start Event. EXAMPLE: <strong>Current</strong> status might begin at Member Since PLUS 3 months (to distinguish Current from New members).{/ts}</span>
         </td>
       </tr>
       <tr class="crm-membership-status-form-block-end_event">
         <td class="label">{$form.end_event.label}</td>
         <td class="html-adjust">{$form.end_event.html}<br />
-           <span class="description">{ts}When does this status end? EXAMPLE: <strong>Current</strong> status ends at the membership 'end date'.{/ts}</span>
+           <span class="description">{ts}When does this status end? EXAMPLE: <strong>Current</strong> status ends at the Membership Expiration Date.{/ts}</span>
         </td>
       </tr>
       <tr class="crm-membership-status-form-block-end_event_unit_interval">
         <td class="label">{$form.end_event_adjust_unit.label}</td>
         <td class="html-adjust">&nbsp;{$form.end_event_adjust_interval.html}&nbsp;{$form.end_event_adjust_unit.html}<br />
-           <span class="description">{ts}Optional adjustment period added or subtracted from the End Event. EXAMPLE: <strong>Grace</strong> status might end at 'end date' PLUS 1 month.{/ts}</span>
+           <span class="description">{ts}Optional adjustment period added or subtracted from the End Event. EXAMPLE: <strong>Grace</strong> status might end at the Membership Expiration Date PLUS 1 month.{/ts}</span>
         </td>
       </tr>
       <tr class="crm-membership-status-form-block-is_current_member">
diff --git a/civicrm/templates/CRM/Member/Form/MembershipView.tpl b/civicrm/templates/CRM/Member/Form/MembershipView.tpl
index 5751c106a8cebd3d088be71f2273cd421ebd837e..442b0f7a6a444317d60ab7f4856f053f2557378a 100644
--- a/civicrm/templates/CRM/Member/Form/MembershipView.tpl
+++ b/civicrm/templates/CRM/Member/Form/MembershipView.tpl
@@ -48,8 +48,8 @@
         <tr><td class="label">{ts}Source{/ts}</td><td>{$source}</td></tr>
   {if $campaign}<tr><td class="label">{ts}Campaign{/ts}</td><td>{$campaign}</td></tr>{/if}
         <tr><td class="label">{ts}Member Since{/ts}</td><td>{$join_date|crmDate}</td></tr>
-        <tr><td class="label">{ts}Start date{/ts}</td><td>{$start_date|crmDate}</td></tr>
-        <tr><td class="label">{ts}End date{/ts}</td><td>{$end_date|crmDate}</td></tr>
+        <tr><td class="label">{ts}Membership Start Date{/ts}</td><td>{$start_date|crmDate}</td></tr>
+        <tr><td class="label">{ts}Membership Expiration Date{/ts}</td><td>{$end_date|crmDate}</td></tr>
         <tr><td class="label">{ts}Auto-renew{/ts}</td><td>{$auto_renew}</td></tr>
      {if $contribution_recur_id}
           <tr>
diff --git a/civicrm/templates/CRM/Member/Form/Task/Print.tpl b/civicrm/templates/CRM/Member/Form/Task/Print.tpl
index 0fee97559f23e6ca95ce6d840d53cd4eda542f60..35755fc3efd83e3c0c122601d5194f7fb6e79f3f 100644
--- a/civicrm/templates/CRM/Member/Form/Task/Print.tpl
+++ b/civicrm/templates/CRM/Member/Form/Task/Print.tpl
@@ -20,8 +20,8 @@
     <th>{ts}Name{/ts}</th>
     <th>{ts}Type{/ts}</th>
     <th>{ts}Member Since{/ts}</th>
-    <th>{ts}Start Date{/ts}</th>
-    <th>{ts}End Date{/ts}</th>
+    <th>{ts}Membership Start Date{/ts}</th>
+    <th>{ts}Membership Expiration Date{/ts}</th>
     <th>{ts}Source{/ts}</th>
     <th>{ts}Status{/ts}</th>
   </tr>
diff --git a/civicrm/templates/CRM/Member/Form/Task/SearchTaskHookSample.tpl b/civicrm/templates/CRM/Member/Form/Task/SearchTaskHookSample.tpl
index c906f807d0cd152e2a2ad20f12c6f4ea434b294f..f639568e3e2fe6ad7805aa2a80f74a1642e1e85e 100644
--- a/civicrm/templates/CRM/Member/Form/Task/SearchTaskHookSample.tpl
+++ b/civicrm/templates/CRM/Member/Form/Task/SearchTaskHookSample.tpl
@@ -10,8 +10,8 @@
 <table>
   <tr class="columnheader">
     <th>{ts}Display Name{/ts}</th>
-    <th>{ts}Start Date{/ts}</th>
-    <th>{ts}End Date{/ts}</th>
+    <th>{ts}Membership Start Date{/ts}</th>
+    <th>{ts}Membership Expiration Date{/ts}</th>
     <th>{ts}Source{/ts}</th>
   </tr>
 
diff --git a/civicrm/templates/CRM/Member/Page/Tab.tpl b/civicrm/templates/CRM/Member/Page/Tab.tpl
index 7e807c94822bc65ab7474c3a57fcb02cf3de55dc..a54f9de1911cabf721abe884a4ca0035645327da 100644
--- a/civicrm/templates/CRM/Member/Page/Tab.tpl
+++ b/civicrm/templates/CRM/Member/Page/Tab.tpl
@@ -47,8 +47,8 @@
             <tr>
                 <th>{ts}Membership{/ts}</th>
                 <th>{ts}Member Since{/ts}</th>
-                <th>{ts}Start Date{/ts}</th>
-                <th>{ts}End Date{/ts}</th>
+                <th>{ts}Membership Start Date{/ts}</th>
+                <th>{ts}Membership Expiration Date{/ts}</th>
                 <th>{ts}Status{/ts}</th>
                 <th>{ts}Source{/ts}</th>
                 <th>{ts}Auto-renew{/ts}</th>
@@ -98,8 +98,8 @@
             <tr>
                 <th>{ts}Membership{/ts}</th>
                 <th>{ts}Member Since{/ts}</th>
-                <th>{ts}Start Date{/ts}</th>
-                <th>{ts}End Date{/ts}</th>
+                <th>{ts}Membership Start Date{/ts}</th>
+                <th>{ts}Membership Expiration Date{/ts}</th>
                 <th>{ts}Status{/ts}</th>
                 <th>{ts}Source{/ts}</th>
                 <th>{ts}Auto-renew{/ts}</th>
diff --git a/civicrm/templates/CRM/Member/Page/UserDashboard.tpl b/civicrm/templates/CRM/Member/Page/UserDashboard.tpl
index 85e838fbc091f2887cc430fb58f413e551c089f5..2f43daab19b1bee493620d785401c653b32ea644 100644
--- a/civicrm/templates/CRM/Member/Page/UserDashboard.tpl
+++ b/civicrm/templates/CRM/Member/Page/UserDashboard.tpl
@@ -18,8 +18,8 @@
         <tr class="columnheader">
             <th>{ts}Membership{/ts}</th>
             <th>{ts}Member Since{/ts}</th>
-            <th>{ts}Start Date{/ts}</th>
-            <th>{ts}End Date{/ts}</th>
+            <th>{ts}Membership Start Date{/ts}</th>
+            <th>{ts}Membership Expiration Date{/ts}</th>
             <th>{ts}Status{/ts}</th>
             <th></th>
         </tr>
@@ -49,8 +49,8 @@
         <table>
         <tr class="columnheader">
             <th>{ts}Membership{/ts}</th>
-            <th>{ts}Start Date{/ts}</th>
-            <th>{ts}End Date{/ts}</th>
+            <th>{ts}Membership Start Date{/ts}</th>
+            <th>{ts}Membership Expiration Date{/ts}</th>
             <th>{ts}Status{/ts}</th>
             <th></th>
         </tr>
diff --git a/civicrm/templates/CRM/Profile/Form/Dynamic.tpl b/civicrm/templates/CRM/Profile/Form/Dynamic.tpl
index c35fdce222ab6f390fffa05bad3b2b587f3e9e15..eb2ef70c6aa368cc89c336ae7673329c6b2da548 100644
--- a/civicrm/templates/CRM/Profile/Form/Dynamic.tpl
+++ b/civicrm/templates/CRM/Profile/Form/Dynamic.tpl
@@ -35,7 +35,7 @@
   <div id="crm-container" class="crm-container crm-public" lang="{$config->lcMessages|truncate:2:"":true}" xml:lang="{$config->lcMessages|truncate:2:"":true}">
   {/if}
 
-  {if $isDuplicate and ( ($action eq 1 and $mode eq 4 ) or ($action eq 2) or ($action eq 8192) ) }
+  {if $showSaveDuplicateButton}
     <div class="crm-submit-buttons">
       {$form._qf_Edit_upload_duplicate.html}
     </div>
@@ -50,7 +50,7 @@
     {if $action eq 2 and $multiRecordFieldListing}
       <h1>{ts}Edit Details{/ts}</h1>
       <div class="crm-submit-buttons" style='float:right'>
-      {include file="CRM/common/formButtons.tpl" location=''}{if $isDuplicate}{$form._qf_Edit_upload_duplicate.html}{/if}
+      {include file="CRM/common/formButtons.tpl" location=''}{if $showSaveDuplicateButton}{$form._qf_Edit_upload_duplicate.html}{/if}
       </div>
     {/if}
 
@@ -94,7 +94,7 @@
             <div class="content description">{$field.help_pre}</div>
           </div>
         {/if}
-        {if $field.options_per_line}
+        {if array_key_exists('options_per_line', $field) && $field.options_per_line}
           <div class="crm-section editrow_{$n}-section form-item" id="editrow-{$n}">
             <div class="label">{$form.$n.label}</div>
             <div class="content edit-value">
@@ -201,7 +201,7 @@
         </div>
       {/if}
       <div class="crm-submit-buttons" style='{$floatStyle}'>
-        {include file="CRM/common/formButtons.tpl" location=''}{if $isDuplicate}{$form._qf_Edit_upload_duplicate.html}{/if}
+        {include file="CRM/common/formButtons.tpl" location=''}{if $showSaveDuplicateButton}{$form._qf_Edit_upload_duplicate.html}{/if}
         {if $includeCancelButton}
           <a class="button cancel" href="{$cancelURL}">
             <span>
diff --git a/civicrm/templates/CRM/Profile/Page/MultipleRecordFieldsListing.tpl b/civicrm/templates/CRM/Profile/Page/MultipleRecordFieldsListing.tpl
index 12cdfbd575fcf28ef525037a26de817dd8ef68f6..cfc101a04f632b16f83884610bb8d80f95252621 100644
--- a/civicrm/templates/CRM/Profile/Page/MultipleRecordFieldsListing.tpl
+++ b/civicrm/templates/CRM/Profile/Page/MultipleRecordFieldsListing.tpl
@@ -104,7 +104,7 @@
         <br/><a accesskey="N" title="{ts 1=$customGroupTitle}Add %1 Record{/ts}" href="{crmURL p='civicrm/contact/view/cd/edit' q="reset=1&type=$ctype&groupID=$customGroupId&entityID=$contactId&cgcount=$newCgCount&multiRecordDisplay=single&mode=add"}"
          class="button action-item"><span><i class="crm-i fa-plus-circle" aria-hidden="true"></i> {ts 1=$customGroupTitle}Add %1 Record{/ts}</span></a>
       {else}
-        <a accesskey="N" href="{crmURL p='civicrm/profile/edit' q="reset=1&id=`$contactId`&multiRecord=add&gid=`$gid`&context=multiProfileDialog&onPopupClose=`$onPopupClose`"}"
+        <a accesskey="N" href="{crmURL p='civicrm/profile/edit' q="reset=1&id=`$contactId`&multiRecord=add&gid=`$gid`&context=multiProfileDialog"}"
          class="button action-item"><span><i class="crm-i fa-plus-circle" aria-hidden="true"></i> {ts}Add New Record{/ts}</span></a>
       {/if}
     </div>
diff --git a/civicrm/templates/CRM/SMS/Form/Group.hlp b/civicrm/templates/CRM/SMS/Form/Group.hlp
index 99a8e5fc63bf69b38103649459c67bb55f1c81c3..1fc6605f4518678c8b0f99011dcb66155a038f35 100644
--- a/civicrm/templates/CRM/SMS/Form/Group.hlp
+++ b/civicrm/templates/CRM/SMS/Form/Group.hlp
@@ -47,10 +47,10 @@
 <p>{ts}If you have sent other Mass SMS - you can additionally Include (or Exclude) contacts who received those Mass SMS. CiviCRM will eliminate any duplications so that contacts who are in an Included Group AND were recipients of an Included Mailing will only be sent one copy of this SMS.{/ts}</p>
 {/htxt}
 
-{htxt id="id-sms_provider-title"}
+{htxt id ="id-sms_provider-title"}
   {ts}SMS Provider{/ts}
 {/htxt}
-{htxt id="id-sms_provider"}
+{htxt id ="id-sms_provider"}
 <p>{ts}Select the SMS provider for this mass message from the dropdown list.{/ts}</p>
 {if $params.isAdmin}
     {capture assign="fromConfig"}{crmURL p="civicrm/admin/sms/provider" q="reset=1"}{/capture}
diff --git a/civicrm/templates/CRM/common/Tagset.tpl b/civicrm/templates/CRM/common/Tagset.tpl
index bb862767fd2a4c47016235a51bbbcb6627e2806a..6e6efc1cfa58ce68f78c7f3ffd21bc602ee2597d 100644
--- a/civicrm/templates/CRM/common/Tagset.tpl
+++ b/civicrm/templates/CRM/common/Tagset.tpl
@@ -45,7 +45,7 @@
   </td>
 {/if}
 
-{if empty($skipEntityAction) and empty($form.frozen)}
+{if !empty($tagsetInfo) and empty($skipEntityAction) and empty($form.frozen)}
   <script type="text/javascript">
     {* Add/remove entity tags via ajax api *}
     {literal}
diff --git a/civicrm/vendor/autoload.php b/civicrm/vendor/autoload.php
index 38c3c6e530893d5ab97809298eb5662b778f92d8..61e85304918d1c562c81da258b44e3ee0b19d5e5 100644
--- a/civicrm/vendor/autoload.php
+++ b/civicrm/vendor/autoload.php
@@ -4,4 +4,4 @@
 
 require_once __DIR__ . '/composer/autoload_real.php';
 
-return ComposerAutoloaderInite1ca47ea801818fa75d60df4388c9f11::getLoader();
+return ComposerAutoloaderInit843a42f34f0c82b46624e550e0363f9f::getLoader();
diff --git a/civicrm/vendor/bin/var-dump-server b/civicrm/vendor/bin/var-dump-server
new file mode 100755
index 0000000000000000000000000000000000000000..c52c7727224f0062b369029b0638125bee9b2e96
--- /dev/null
+++ b/civicrm/vendor/bin/var-dump-server
@@ -0,0 +1,120 @@
+#!/usr/bin/env php
+<?php
+
+/**
+ * Proxy PHP file generated by Composer
+ *
+ * This file includes the referenced bin path (../symfony/var-dumper/Resources/bin/var-dump-server)
+ * using a stream wrapper to prevent the shebang from being output on PHP<8
+ *
+ * @generated
+ */
+
+namespace Composer;
+
+$GLOBALS['_composer_bin_dir'] = __DIR__;
+$GLOBALS['_composer_autoload_path'] = __DIR__ . '/..'.'/autoload.php';
+
+if (PHP_VERSION_ID < 80000) {
+    if (!class_exists('Composer\BinProxyWrapper')) {
+        /**
+         * @internal
+         */
+        final class BinProxyWrapper
+        {
+            private $handle;
+            private $position;
+            private $realpath;
+
+            public function stream_open($path, $mode, $options, &$opened_path)
+            {
+                // get rid of phpvfscomposer:// prefix for __FILE__ & __DIR__ resolution
+                $opened_path = substr($path, 17);
+                $this->realpath = realpath($opened_path) ?: $opened_path;
+                $opened_path = $this->realpath;
+                $this->handle = fopen($this->realpath, $mode);
+                $this->position = 0;
+
+                return (bool) $this->handle;
+            }
+
+            public function stream_read($count)
+            {
+                $data = fread($this->handle, $count);
+
+                if ($this->position === 0) {
+                    $data = preg_replace('{^#!.*\r?\n}', '', $data);
+                }
+
+                $this->position += strlen($data);
+
+                return $data;
+            }
+
+            public function stream_cast($castAs)
+            {
+                return $this->handle;
+            }
+
+            public function stream_close()
+            {
+                fclose($this->handle);
+            }
+
+            public function stream_lock($operation)
+            {
+                return $operation ? flock($this->handle, $operation) : true;
+            }
+
+            public function stream_seek($offset, $whence)
+            {
+                if (0 === fseek($this->handle, $offset, $whence)) {
+                    $this->position = ftell($this->handle);
+                    return true;
+                }
+
+                return false;
+            }
+
+            public function stream_tell()
+            {
+                return $this->position;
+            }
+
+            public function stream_eof()
+            {
+                return feof($this->handle);
+            }
+
+            public function stream_stat()
+            {
+                return array();
+            }
+
+            public function stream_set_option($option, $arg1, $arg2)
+            {
+                return true;
+            }
+
+            public function url_stat($path, $flags)
+            {
+                $path = substr($path, 17);
+                if (file_exists($path)) {
+                    return stat($path);
+                }
+
+                return false;
+            }
+        }
+    }
+
+    if (
+        (function_exists('stream_get_wrappers') && in_array('phpvfscomposer', stream_get_wrappers(), true))
+        || (function_exists('stream_wrapper_register') && stream_wrapper_register('phpvfscomposer', 'Composer\BinProxyWrapper'))
+    ) {
+        include("phpvfscomposer://" . __DIR__ . '/..'.'/symfony/var-dumper/Resources/bin/var-dump-server');
+        exit(0);
+    }
+}
+
+include __DIR__ . '/..'.'/symfony/var-dumper/Resources/bin/var-dump-server';
diff --git a/civicrm/vendor/composer/autoload_files.php b/civicrm/vendor/composer/autoload_files.php
index 436fb19af7569506ee063615cccdbd427346ae51..d14b40d5a5c52429189d9458668e4a1c3fd422ca 100644
--- a/civicrm/vendor/composer/autoload_files.php
+++ b/civicrm/vendor/composer/autoload_files.php
@@ -7,10 +7,10 @@ $baseDir = dirname($vendorDir);
 
 return array(
     'a4a119a56e50fbb293281d9a48007e0e' => $vendorDir . '/symfony/polyfill-php80/bootstrap.php',
+    '25072dd6e2470089de65ae7bf11d3109' => $vendorDir . '/symfony/polyfill-php72/bootstrap.php',
     '7b11c4dc42b3b3023073cb14e519683c' => $vendorDir . '/ralouphie/getallheaders/src/getallheaders.php',
     '320cde22f66dd4f5d3fd621d3e88b98f' => $vendorDir . '/symfony/polyfill-ctype/bootstrap.php',
     'e69f7f6ee287b969198c3c9d6777bd38' => $vendorDir . '/symfony/polyfill-intl-normalizer/bootstrap.php',
-    '25072dd6e2470089de65ae7bf11d3109' => $vendorDir . '/symfony/polyfill-php72/bootstrap.php',
     'c964ee0ededf28c96ebd9db5099ef910' => $vendorDir . '/guzzlehttp/promises/src/functions_include.php',
     'a0edc8309cc5e1d60e3047b5df6b7052' => $vendorDir . '/guzzlehttp/psr7/src/functions_include.php',
     'f598d06aa772fa33d905e87be6398fb1' => $vendorDir . '/symfony/polyfill-intl-idn/bootstrap.php',
diff --git a/civicrm/vendor/composer/autoload_real.php b/civicrm/vendor/composer/autoload_real.php
index e83293bd5cd7f772d513860435fb2d7d7601e4bc..5e9fdcbd80b1993e463412170eeb2e483984d57b 100644
--- a/civicrm/vendor/composer/autoload_real.php
+++ b/civicrm/vendor/composer/autoload_real.php
@@ -2,7 +2,7 @@
 
 // autoload_real.php @generated by Composer
 
-class ComposerAutoloaderInite1ca47ea801818fa75d60df4388c9f11
+class ComposerAutoloaderInit843a42f34f0c82b46624e550e0363f9f
 {
     private static $loader;
 
@@ -24,9 +24,9 @@ class ComposerAutoloaderInite1ca47ea801818fa75d60df4388c9f11
 
         require __DIR__ . '/platform_check.php';
 
-        spl_autoload_register(array('ComposerAutoloaderInite1ca47ea801818fa75d60df4388c9f11', 'loadClassLoader'), true, true);
+        spl_autoload_register(array('ComposerAutoloaderInit843a42f34f0c82b46624e550e0363f9f', 'loadClassLoader'), true, true);
         self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
-        spl_autoload_unregister(array('ComposerAutoloaderInite1ca47ea801818fa75d60df4388c9f11', 'loadClassLoader'));
+        spl_autoload_unregister(array('ComposerAutoloaderInit843a42f34f0c82b46624e550e0363f9f', 'loadClassLoader'));
 
         $includePaths = require __DIR__ . '/include_paths.php';
         $includePaths[] = get_include_path();
@@ -36,7 +36,7 @@ class ComposerAutoloaderInite1ca47ea801818fa75d60df4388c9f11
         if ($useStaticLoader) {
             require __DIR__ . '/autoload_static.php';
 
-            call_user_func(\Composer\Autoload\ComposerStaticInite1ca47ea801818fa75d60df4388c9f11::getInitializer($loader));
+            call_user_func(\Composer\Autoload\ComposerStaticInit843a42f34f0c82b46624e550e0363f9f::getInitializer($loader));
         } else {
             $map = require __DIR__ . '/autoload_namespaces.php';
             foreach ($map as $namespace => $path) {
@@ -57,12 +57,12 @@ class ComposerAutoloaderInite1ca47ea801818fa75d60df4388c9f11
         $loader->register(true);
 
         if ($useStaticLoader) {
-            $includeFiles = Composer\Autoload\ComposerStaticInite1ca47ea801818fa75d60df4388c9f11::$files;
+            $includeFiles = Composer\Autoload\ComposerStaticInit843a42f34f0c82b46624e550e0363f9f::$files;
         } else {
             $includeFiles = require __DIR__ . '/autoload_files.php';
         }
         foreach ($includeFiles as $fileIdentifier => $file) {
-            composerRequiree1ca47ea801818fa75d60df4388c9f11($fileIdentifier, $file);
+            composerRequire843a42f34f0c82b46624e550e0363f9f($fileIdentifier, $file);
         }
 
         return $loader;
@@ -74,7 +74,7 @@ class ComposerAutoloaderInite1ca47ea801818fa75d60df4388c9f11
  * @param string $file
  * @return void
  */
-function composerRequiree1ca47ea801818fa75d60df4388c9f11($fileIdentifier, $file)
+function composerRequire843a42f34f0c82b46624e550e0363f9f($fileIdentifier, $file)
 {
     if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
         $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
diff --git a/civicrm/vendor/composer/autoload_static.php b/civicrm/vendor/composer/autoload_static.php
index b02011288d171b705fc2395243b5b5cf0e5aecee..7650ee8d7e1917a24d839d042d630b675258262f 100644
--- a/civicrm/vendor/composer/autoload_static.php
+++ b/civicrm/vendor/composer/autoload_static.php
@@ -4,14 +4,14 @@
 
 namespace Composer\Autoload;
 
-class ComposerStaticInite1ca47ea801818fa75d60df4388c9f11
+class ComposerStaticInit843a42f34f0c82b46624e550e0363f9f
 {
     public static $files = array (
         'a4a119a56e50fbb293281d9a48007e0e' => __DIR__ . '/..' . '/symfony/polyfill-php80/bootstrap.php',
+        '25072dd6e2470089de65ae7bf11d3109' => __DIR__ . '/..' . '/symfony/polyfill-php72/bootstrap.php',
         '7b11c4dc42b3b3023073cb14e519683c' => __DIR__ . '/..' . '/ralouphie/getallheaders/src/getallheaders.php',
         '320cde22f66dd4f5d3fd621d3e88b98f' => __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php',
         'e69f7f6ee287b969198c3c9d6777bd38' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/bootstrap.php',
-        '25072dd6e2470089de65ae7bf11d3109' => __DIR__ . '/..' . '/symfony/polyfill-php72/bootstrap.php',
         'c964ee0ededf28c96ebd9db5099ef910' => __DIR__ . '/..' . '/guzzlehttp/promises/src/functions_include.php',
         'a0edc8309cc5e1d60e3047b5df6b7052' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/functions_include.php',
         'f598d06aa772fa33d905e87be6398fb1' => __DIR__ . '/..' . '/symfony/polyfill-intl-idn/bootstrap.php',
@@ -729,11 +729,11 @@ class ComposerStaticInite1ca47ea801818fa75d60df4388c9f11
     public static function getInitializer(ClassLoader $loader)
     {
         return \Closure::bind(function () use ($loader) {
-            $loader->prefixLengthsPsr4 = ComposerStaticInite1ca47ea801818fa75d60df4388c9f11::$prefixLengthsPsr4;
-            $loader->prefixDirsPsr4 = ComposerStaticInite1ca47ea801818fa75d60df4388c9f11::$prefixDirsPsr4;
-            $loader->prefixesPsr0 = ComposerStaticInite1ca47ea801818fa75d60df4388c9f11::$prefixesPsr0;
-            $loader->fallbackDirsPsr0 = ComposerStaticInite1ca47ea801818fa75d60df4388c9f11::$fallbackDirsPsr0;
-            $loader->classMap = ComposerStaticInite1ca47ea801818fa75d60df4388c9f11::$classMap;
+            $loader->prefixLengthsPsr4 = ComposerStaticInit843a42f34f0c82b46624e550e0363f9f::$prefixLengthsPsr4;
+            $loader->prefixDirsPsr4 = ComposerStaticInit843a42f34f0c82b46624e550e0363f9f::$prefixDirsPsr4;
+            $loader->prefixesPsr0 = ComposerStaticInit843a42f34f0c82b46624e550e0363f9f::$prefixesPsr0;
+            $loader->fallbackDirsPsr0 = ComposerStaticInit843a42f34f0c82b46624e550e0363f9f::$fallbackDirsPsr0;
+            $loader->classMap = ComposerStaticInit843a42f34f0c82b46624e550e0363f9f::$classMap;
 
         }, null, ClassLoader::class);
     }
diff --git a/civicrm/vendor/composer/installed.json b/civicrm/vendor/composer/installed.json
index c70b2dc690460479362d01816a911c1548d13ed9..dd66c517a0b1d784a88a06722e7ab2cd22bca6d9 100644
--- a/civicrm/vendor/composer/installed.json
+++ b/civicrm/vendor/composer/installed.json
@@ -904,17 +904,17 @@
         },
         {
             "name": "guzzlehttp/psr7",
-            "version": "1.9.0",
-            "version_normalized": "1.9.0.0",
+            "version": "1.9.1",
+            "version_normalized": "1.9.1.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/guzzle/psr7.git",
-                "reference": "e98e3e6d4f86621a9b75f623996e6bbdeb4b9318"
+                "reference": "e4490cabc77465aaee90b20cfc9a770f8c04be6b"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/guzzle/psr7/zipball/e98e3e6d4f86621a9b75f623996e6bbdeb4b9318",
-                "reference": "e98e3e6d4f86621a9b75f623996e6bbdeb4b9318",
+                "url": "https://api.github.com/repos/guzzle/psr7/zipball/e4490cabc77465aaee90b20cfc9a770f8c04be6b",
+                "reference": "e4490cabc77465aaee90b20cfc9a770f8c04be6b",
                 "shasum": ""
             },
             "require": {
@@ -932,13 +932,8 @@
             "suggest": {
                 "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
             },
-            "time": "2022-06-20T21:43:03+00:00",
+            "time": "2023-04-17T16:00:37+00:00",
             "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.9-dev"
-                }
-            },
             "installation-source": "dist",
             "autoload": {
                 "files": [
@@ -997,7 +992,7 @@
             ],
             "support": {
                 "issues": "https://github.com/guzzle/psr7/issues",
-                "source": "https://github.com/guzzle/psr7/tree/1.9.0"
+                "source": "https://github.com/guzzle/psr7/tree/1.9.1"
             },
             "funding": [
                 {
@@ -2468,17 +2463,17 @@
         },
         {
             "name": "pear/pear-core-minimal",
-            "version": "v1.10.11",
-            "version_normalized": "1.10.11.0",
+            "version": "v1.10.13",
+            "version_normalized": "1.10.13.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/pear/pear-core-minimal.git",
-                "reference": "68d0d32ada737153b7e93b8d3c710ebe70ac867d"
+                "reference": "aed862e95fd286c53cc546734868dc38ff4b5b1d"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/pear/pear-core-minimal/zipball/68d0d32ada737153b7e93b8d3c710ebe70ac867d",
-                "reference": "68d0d32ada737153b7e93b8d3c710ebe70ac867d",
+                "url": "https://api.github.com/repos/pear/pear-core-minimal/zipball/aed862e95fd286c53cc546734868dc38ff4b5b1d",
+                "reference": "aed862e95fd286c53cc546734868dc38ff4b5b1d",
                 "shasum": ""
             },
             "require": {
@@ -2488,13 +2483,8 @@
             "replace": {
                 "rsky/pear-core-min": "self.version"
             },
-            "time": "2021-08-10T22:31:03+00:00",
+            "time": "2023-04-19T19:15:47+00:00",
             "type": "library",
-            "extra": {
-                "patches_applied": {
-                    "Apply patch to fix creation of dynamic properties in PEAR_Error class": "https://patch-diff.githubusercontent.com/raw/pear/pear-core-minimal/pull/11.patch"
-                }
-            },
             "installation-source": "dist",
             "autoload": {
                 "psr-0": {
@@ -5177,36 +5167,44 @@
         },
         {
             "name": "symfony/var-dumper",
-            "version": "v3.4.47",
-            "version_normalized": "3.4.47.0",
+            "version": "v4.4.47",
+            "version_normalized": "4.4.47.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/var-dumper.git",
-                "reference": "0719f6cf4633a38b2c1585140998579ce23b4b7d"
+                "reference": "1069c7a3fca74578022fab6f81643248d02f8e63"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/var-dumper/zipball/0719f6cf4633a38b2c1585140998579ce23b4b7d",
-                "reference": "0719f6cf4633a38b2c1585140998579ce23b4b7d",
+                "url": "https://api.github.com/repos/symfony/var-dumper/zipball/1069c7a3fca74578022fab6f81643248d02f8e63",
+                "reference": "1069c7a3fca74578022fab6f81643248d02f8e63",
                 "shasum": ""
             },
             "require": {
-                "php": "^5.5.9|>=7.0.8",
-                "symfony/polyfill-mbstring": "~1.0"
+                "php": ">=7.1.3",
+                "symfony/polyfill-mbstring": "~1.0",
+                "symfony/polyfill-php72": "~1.5",
+                "symfony/polyfill-php80": "^1.16"
             },
             "conflict": {
-                "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0"
+                "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0",
+                "symfony/console": "<3.4"
             },
             "require-dev": {
                 "ext-iconv": "*",
-                "twig/twig": "~1.34|~2.4"
+                "symfony/console": "^3.4|^4.0|^5.0",
+                "symfony/process": "^4.4|^5.0",
+                "twig/twig": "^1.43|^2.13|^3.0.4"
             },
             "suggest": {
                 "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).",
                 "ext-intl": "To show region name in time zone dump",
-                "ext-symfony_debug": ""
+                "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script"
             },
-            "time": "2020-10-24T10:57:07+00:00",
+            "time": "2022-10-03T15:15:11+00:00",
+            "bin": [
+                "Resources/bin/var-dump-server"
+            ],
             "type": "library",
             "installation-source": "dist",
             "autoload": {
@@ -5234,14 +5232,14 @@
                     "homepage": "https://symfony.com/contributors"
                 }
             ],
-            "description": "Symfony mechanism for exploring and dumping PHP variables",
+            "description": "Provides mechanisms for walking through any arbitrary PHP variable",
             "homepage": "https://symfony.com",
             "keywords": [
                 "debug",
                 "dump"
             ],
             "support": {
-                "source": "https://github.com/symfony/var-dumper/tree/v3.4.47"
+                "source": "https://github.com/symfony/var-dumper/tree/v4.4.47"
             },
             "funding": [
                 {
diff --git a/civicrm/vendor/composer/installed.php b/civicrm/vendor/composer/installed.php
index 59d8827d8372d679d9e1d85f1aa23190f65054b7..58c04a3ccaa800ba5784fc189eb6bc59215ae6b1 100644
--- a/civicrm/vendor/composer/installed.php
+++ b/civicrm/vendor/composer/installed.php
@@ -1,11 +1,11 @@
 <?php return array(
     'root' => array(
-        'pretty_version' => '5.60.x-dev',
-        'version' => '5.60.9999999.9999999-dev',
+        'pretty_version' => '5.61.x-dev',
+        'version' => '5.61.9999999.9999999-dev',
         'type' => 'library',
         'install_path' => __DIR__ . '/../../',
         'aliases' => array(),
-        'reference' => 'fadbe2424f36072c5fa5dc633f11dfaf48942951',
+        'reference' => 'c01b75ee4ee5b39e63c19075fb3ced0cf1980b57',
         'name' => 'civicrm/civicrm-core',
         'dev' => true,
     ),
@@ -38,12 +38,12 @@
             'dev_requirement' => false,
         ),
         'civicrm/civicrm-core' => array(
-            'pretty_version' => '5.60.x-dev',
-            'version' => '5.60.9999999.9999999-dev',
+            'pretty_version' => '5.61.x-dev',
+            'version' => '5.61.9999999.9999999-dev',
             'type' => 'library',
             'install_path' => __DIR__ . '/../../',
             'aliases' => array(),
-            'reference' => 'fadbe2424f36072c5fa5dc633f11dfaf48942951',
+            'reference' => 'c01b75ee4ee5b39e63c19075fb3ced0cf1980b57',
             'dev_requirement' => false,
         ),
         'civicrm/civicrm-cxn-rpc' => array(
@@ -146,12 +146,12 @@
             'dev_requirement' => false,
         ),
         'guzzlehttp/psr7' => array(
-            'pretty_version' => '1.9.0',
-            'version' => '1.9.0.0',
+            'pretty_version' => '1.9.1',
+            'version' => '1.9.1.0',
             'type' => 'library',
             'install_path' => __DIR__ . '/../guzzlehttp/psr7',
             'aliases' => array(),
-            'reference' => 'e98e3e6d4f86621a9b75f623996e6bbdeb4b9318',
+            'reference' => 'e4490cabc77465aaee90b20cfc9a770f8c04be6b',
             'dev_requirement' => false,
         ),
         'henrikbjorn/lurker' => array(
@@ -359,12 +359,12 @@
             'dev_requirement' => false,
         ),
         'pear/pear-core-minimal' => array(
-            'pretty_version' => 'v1.10.11',
-            'version' => '1.10.11.0',
+            'pretty_version' => 'v1.10.13',
+            'version' => '1.10.13.0',
             'type' => 'library',
             'install_path' => __DIR__ . '/../pear/pear-core-minimal',
             'aliases' => array(),
-            'reference' => '68d0d32ada737153b7e93b8d3c710ebe70ac867d',
+            'reference' => 'aed862e95fd286c53cc546734868dc38ff4b5b1d',
             'dev_requirement' => false,
         ),
         'pear/pear_exception' => array(
@@ -514,7 +514,7 @@
         'rsky/pear-core-min' => array(
             'dev_requirement' => false,
             'replaced' => array(
-                0 => 'v1.10.11',
+                0 => 'v1.10.13',
             ),
         ),
         'rubobaquero/phpquery' => array(
@@ -728,12 +728,12 @@
             ),
         ),
         'symfony/var-dumper' => array(
-            'pretty_version' => 'v3.4.47',
-            'version' => '3.4.47.0',
+            'pretty_version' => 'v4.4.47',
+            'version' => '4.4.47.0',
             'type' => 'library',
             'install_path' => __DIR__ . '/../symfony/var-dumper',
             'aliases' => array(),
-            'reference' => '0719f6cf4633a38b2c1585140998579ce23b4b7d',
+            'reference' => '1069c7a3fca74578022fab6f81643248d02f8e63',
             'dev_requirement' => false,
         ),
         'tecnickcom/tcpdf' => array(
diff --git a/civicrm/vendor/guzzlehttp/psr7/.github/workflows/ci.yml b/civicrm/vendor/guzzlehttp/psr7/.github/workflows/ci.yml
index eda7dceb56f5a879f9581d5d25cbc1579c949c9b..0850470e02a3f27ddaa6b7de17fc526516d0f219 100644
--- a/civicrm/vendor/guzzlehttp/psr7/.github/workflows/ci.yml
+++ b/civicrm/vendor/guzzlehttp/psr7/.github/workflows/ci.yml
@@ -6,7 +6,7 @@ on:
 jobs:
   build:
     name: Build
-    runs-on: ubuntu-latest
+    runs-on: ubuntu-22.04
     strategy:
       max-parallel: 10
       matrix:
@@ -21,11 +21,7 @@ jobs:
           extensions: mbstring
 
       - name: Checkout code
-        uses: actions/checkout@v2
-
-      - name: Mimic PHP 8.0
-        run: composer config platform.php 8.0.999
-        if: matrix.php > 8
+        uses: actions/checkout@v3
 
       - name: Install dependencies
         run: composer update --no-interaction --no-progress
diff --git a/civicrm/vendor/guzzlehttp/psr7/.github/workflows/integration.yml b/civicrm/vendor/guzzlehttp/psr7/.github/workflows/integration.yml
index 3c31f9ef2a885f78a5570f0e38d46c362fec69b0..a55a256edbd36cd748f7ffa213e6170d04615755 100644
--- a/civicrm/vendor/guzzlehttp/psr7/.github/workflows/integration.yml
+++ b/civicrm/vendor/guzzlehttp/psr7/.github/workflows/integration.yml
@@ -4,14 +4,13 @@ on:
   pull_request:
 
 jobs:
-
   build:
     name: Test
-    runs-on: ubuntu-latest
+    runs-on: ubuntu-22.04
     strategy:
       max-parallel: 10
       matrix:
-        php: ['7.2', '7.3', '7.4', '8.0']
+        php: ['7.2', '7.3', '7.4', '8.0', '8.1']
 
     steps:
       - name: Set up PHP
@@ -21,7 +20,7 @@ jobs:
           coverage: none
 
       - name: Checkout code
-        uses: actions/checkout@v2
+        uses: actions/checkout@v3
 
       - name: Download dependencies
         uses: ramsey/composer-install@v1
diff --git a/civicrm/vendor/guzzlehttp/psr7/.github/workflows/static.yml b/civicrm/vendor/guzzlehttp/psr7/.github/workflows/static.yml
index ab4d68ba30b292972fcb397f102435c94b6cb5d1..f00351b68b24074af6899848879ca45aea49d781 100644
--- a/civicrm/vendor/guzzlehttp/psr7/.github/workflows/static.yml
+++ b/civicrm/vendor/guzzlehttp/psr7/.github/workflows/static.yml
@@ -6,11 +6,11 @@ on:
 jobs:
   php-cs-fixer:
     name: PHP-CS-Fixer
-    runs-on: ubuntu-latest
+    runs-on: ubuntu-22.04
 
     steps:
       - name: Checkout code
-        uses: actions/checkout@v2
+        uses: actions/checkout@v3
 
       - name: Setup PHP
         uses: shivammathur/setup-php@v2
diff --git a/civicrm/vendor/guzzlehttp/psr7/CHANGELOG.md b/civicrm/vendor/guzzlehttp/psr7/CHANGELOG.md
index b4fdf3c68aaff73b9086745816c621a4bdb1196e..9b2b65cdb8abea2404bb253026663f5ea70091e9 100644
--- a/civicrm/vendor/guzzlehttp/psr7/CHANGELOG.md
+++ b/civicrm/vendor/guzzlehttp/psr7/CHANGELOG.md
@@ -9,6 +9,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 
 ## Unreleased
 
+## 1.9.1 - 2023-04-17
+
+### Fixed
+
+- Fixed header validation issue
+
 ## 1.9.0 - 2022-06-20
 
 ### Added
diff --git a/civicrm/vendor/guzzlehttp/psr7/composer.json b/civicrm/vendor/guzzlehttp/psr7/composer.json
index 0e36920dbc519a51dcc67bf0cae01bcf3c03e232..2607f22d48fc633ac5e57e657b6ae246acd03928 100644
--- a/civicrm/vendor/guzzlehttp/psr7/composer.json
+++ b/civicrm/vendor/guzzlehttp/psr7/composer.json
@@ -61,11 +61,6 @@
             "GuzzleHttp\\Tests\\Psr7\\": "tests/"
         }
     },
-    "extra": {
-        "branch-alias": {
-            "dev-master": "1.9-dev"
-        }
-    },
     "config": {
         "preferred-install": "dist",
         "sort-packages": true,
diff --git a/civicrm/vendor/guzzlehttp/psr7/src/MessageTrait.php b/civicrm/vendor/guzzlehttp/psr7/src/MessageTrait.php
index 0ac8663da550274c6dee176a1f029abc073c3b35..0bbd63e0d6084e0c4c803b9d41443e4579d32336 100644
--- a/civicrm/vendor/guzzlehttp/psr7/src/MessageTrait.php
+++ b/civicrm/vendor/guzzlehttp/psr7/src/MessageTrait.php
@@ -226,12 +226,9 @@ trait MessageTrait
             throw new \InvalidArgumentException('Header name can not be empty.');
         }
 
-        if (! preg_match('/^[a-zA-Z0-9\'`#$%&*+.^_|~!-]+$/', $header)) {
+        if (! preg_match('/^[a-zA-Z0-9\'`#$%&*+.^_|~!-]+$/D', $header)) {
             throw new \InvalidArgumentException(
-                sprintf(
-                    '"%s" is not valid header name',
-                    $header
-                )
+                sprintf('"%s" is not valid header name.', $header)
             );
         }
     }
@@ -263,8 +260,10 @@ trait MessageTrait
         // Clients must not send a request with line folding and a server sending folded headers is
         // likely very rare. Line folding is a fairly obscure feature of HTTP/1.1 and thus not accepting
         // folding is not likely to break any legitimate use case.
-        if (! preg_match('/^[\x20\x09\x21-\x7E\x80-\xFF]*$/', $value)) {
-            throw new \InvalidArgumentException(sprintf('"%s" is not valid header value', $value));
+        if (! preg_match('/^[\x20\x09\x21-\x7E\x80-\xFF]*$/D', $value)) {
+            throw new \InvalidArgumentException(
+                sprintf('"%s" is not valid header value.', $value)
+            );
         }
     }
 }
diff --git a/civicrm/vendor/pear/pear-core-minimal/PATCHES.txt b/civicrm/vendor/pear/pear-core-minimal/PATCHES.txt
deleted file mode 100644
index 20ab8ed86f2fc55a6a887dcf73a3b82f8786685b..0000000000000000000000000000000000000000
--- a/civicrm/vendor/pear/pear-core-minimal/PATCHES.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-This file was automatically generated by Composer Patches (https://github.com/cweagans/composer-patches)
-Patches applied to this directory:
-
-Apply patch to fix creation of dynamic properties in PEAR_Error class
-Source: https://patch-diff.githubusercontent.com/raw/pear/pear-core-minimal/pull/11.patch
-
-
diff --git a/civicrm/vendor/pear/pear-core-minimal/src/OS/Guess.php b/civicrm/vendor/pear/pear-core-minimal/src/OS/Guess.php
index 88cd659102b9dcad133dd57a5527d602127f164f..0e37a0956a95cbec444989b72caee6656023ec8d 100644
--- a/civicrm/vendor/pear/pear-core-minimal/src/OS/Guess.php
+++ b/civicrm/vendor/pear/pear-core-minimal/src/OS/Guess.php
@@ -245,7 +245,7 @@ class OS_Guess
             return array();
         }
         if (!@file_exists('/usr/bin/cpp') || !@is_executable('/usr/bin/cpp')) {
-            return $this-_parseFeaturesHeaderFile($features_header_file);
+            return $this->_parseFeaturesHeaderFile($features_header_file);
         } // no cpp
 
         return $this->_fromGlibCTest();
diff --git a/civicrm/vendor/pear/pear-core-minimal/src/PEAR.php b/civicrm/vendor/pear/pear-core-minimal/src/PEAR.php
index 91eabbae8544d8f407c6e87a5445b80575af9afb..27b1b4b2994c31c0b767b86b7b8566a8b340328f 100644
--- a/civicrm/vendor/pear/pear-core-minimal/src/PEAR.php
+++ b/civicrm/vendor/pear/pear-core-minimal/src/PEAR.php
@@ -219,7 +219,7 @@ class PEAR
             );
         }
         return call_user_func_array(
-            array(get_class(), '_' . $method),
+            array(self::class, '_' . $method),
             array_merge(array($this), $arguments)
         );
     }
@@ -232,7 +232,7 @@ class PEAR
             );
         }
         return call_user_func_array(
-            array(get_class(), '_' . $method),
+            array(self::class, '_' . $method),
             array_merge(array(null), $arguments)
         );
     }
@@ -859,7 +859,7 @@ class PEAR_Error
     var $message              = '';
     var $userinfo             = '';
     var $backtrace            = null;
-    var $callback             = '';
+    var $callback             = null;
 
     /**
      * PEAR_Error constructor
diff --git a/civicrm/vendor/symfony/var-dumper/.gitignore b/civicrm/vendor/symfony/var-dumper/.gitignore
deleted file mode 100644
index 5414c2c655e72ae741a2eccd1d69d06ce7c20f02..0000000000000000000000000000000000000000
--- a/civicrm/vendor/symfony/var-dumper/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-composer.lock
-phpunit.xml
-vendor/
diff --git a/civicrm/vendor/symfony/var-dumper/CHANGELOG.md b/civicrm/vendor/symfony/var-dumper/CHANGELOG.md
index 2d44cad2259c0642765df2ef3b5cf8ea1ebe81c9..94b1c17d1d5381d70da273642909ab5edb2d6355 100644
--- a/civicrm/vendor/symfony/var-dumper/CHANGELOG.md
+++ b/civicrm/vendor/symfony/var-dumper/CHANGELOG.md
@@ -1,6 +1,46 @@
 CHANGELOG
 =========
 
+4.4.0
+-----
+
+ * added `VarDumperTestTrait::setUpVarDumper()` and `VarDumperTestTrait::tearDownVarDumper()`
+   to configure casters & flags to use in tests
+ * added `ImagineCaster` and infrastructure to dump images
+ * added the stamps of a message after it is dispatched in `TraceableMessageBus` and `MessengerDataCollector` collected data
+ * added `UuidCaster`
+ * made all casters final
+ * added support for the `NO_COLOR` env var (https://no-color.org/)
+
+4.3.0
+-----
+
+ * added `DsCaster` to support dumping the contents of data structures from the Ds extension
+
+4.2.0
+-----
+
+ * support selecting the format to use by setting the environment variable `VAR_DUMPER_FORMAT` to `html` or `cli`
+
+4.1.0
+-----
+
+ * added a `ServerDumper` to send serialized Data clones to a server
+ * added a `ServerDumpCommand` and `DumpServer` to run a server collecting
+   and displaying dumps on a single place with multiple formats support
+ * added `CliDescriptor` and `HtmlDescriptor` descriptors for `server:dump` CLI and HTML formats support
+
+4.0.0
+-----
+
+ * support for passing `\ReflectionClass` instances to the `Caster::castObject()`
+   method has been dropped, pass class names as strings instead
+ * the `Data::getRawData()` method has been removed
+ * the `VarDumperTestTrait::assertDumpEquals()` method expects a 3rd `$filter = 0`
+   argument and moves `$message = ''` argument at 4th position.
+ * the `VarDumperTestTrait::assertDumpMatchesFormat()` method expects a 3rd `$filter = 0`
+   argument and moves `$message = ''` argument at 4th position.
+
 3.4.0
 -----
 
@@ -10,4 +50,4 @@ CHANGELOG
 2.7.0
 -----
 
- * deprecated Cloner\Data::getLimitedClone(). Use withMaxDepth, withMaxItemsPerDepth or withRefHandles instead.
+ * deprecated `Cloner\Data::getLimitedClone()`. Use `withMaxDepth`, `withMaxItemsPerDepth` or `withRefHandles` instead.
diff --git a/civicrm/vendor/symfony/var-dumper/Caster/AmqpCaster.php b/civicrm/vendor/symfony/var-dumper/Caster/AmqpCaster.php
index dc7a6414fca27e1ae9bef81d836917a128c67a8b..60045ff7b03e95b5883b57f1a3742caa47257dfa 100644
--- a/civicrm/vendor/symfony/var-dumper/Caster/AmqpCaster.php
+++ b/civicrm/vendor/symfony/var-dumper/Caster/AmqpCaster.php
@@ -17,10 +17,12 @@ use Symfony\Component\VarDumper\Cloner\Stub;
  * Casts Amqp related classes to array representation.
  *
  * @author Grégoire Pineau <lyrixx@lyrixx.info>
+ *
+ * @final since Symfony 4.4
  */
 class AmqpCaster
 {
-    private static $flags = [
+    private const FLAGS = [
         \AMQP_DURABLE => 'AMQP_DURABLE',
         \AMQP_PASSIVE => 'AMQP_PASSIVE',
         \AMQP_EXCLUSIVE => 'AMQP_EXCLUSIVE',
@@ -37,7 +39,7 @@ class AmqpCaster
         \AMQP_REQUEUE => 'AMQP_REQUEUE',
     ];
 
-    private static $exchangeTypes = [
+    private const EXCHANGE_TYPES = [
         \AMQP_EX_TYPE_DIRECT => 'AMQP_EX_TYPE_DIRECT',
         \AMQP_EX_TYPE_FANOUT => 'AMQP_EX_TYPE_FANOUT',
         \AMQP_EX_TYPE_TOPIC => 'AMQP_EX_TYPE_TOPIC',
@@ -131,7 +133,7 @@ class AmqpCaster
             $prefix.'flags' => self::extractFlags($c->getFlags()),
         ];
 
-        $type = isset(self::$exchangeTypes[$c->getType()]) ? new ConstStub(self::$exchangeTypes[$c->getType()], $c->getType()) : $c->getType();
+        $type = isset(self::EXCHANGE_TYPES[$c->getType()]) ? new ConstStub(self::EXCHANGE_TYPES[$c->getType()], $c->getType()) : $c->getType();
 
         // Recent version of the extension already expose private properties
         if (isset($a["\x00AMQPExchange\x00name"])) {
@@ -191,11 +193,11 @@ class AmqpCaster
         return $a;
     }
 
-    private static function extractFlags($flags)
+    private static function extractFlags(int $flags): ConstStub
     {
         $flagsArray = [];
 
-        foreach (self::$flags as $value => $name) {
+        foreach (self::FLAGS as $value => $name) {
             if ($flags & $value) {
                 $flagsArray[] = $name;
             }
diff --git a/civicrm/vendor/symfony/var-dumper/Caster/ArgsStub.php b/civicrm/vendor/symfony/var-dumper/Caster/ArgsStub.php
index 081fb47e996320b4fb5e0fbe410bf0584932702c..b3f7bbee3a7a9504a407ddf9ccaa40610562dc04 100644
--- a/civicrm/vendor/symfony/var-dumper/Caster/ArgsStub.php
+++ b/civicrm/vendor/symfony/var-dumper/Caster/ArgsStub.php
@@ -22,13 +22,13 @@ class ArgsStub extends EnumStub
 {
     private static $parameters = [];
 
-    public function __construct(array $args, $function, $class)
+    public function __construct(array $args, string $function, ?string $class)
     {
-        list($variadic, $params) = self::getParameters($function, $class);
+        [$variadic, $params] = self::getParameters($function, $class);
 
         $values = [];
         foreach ($args as $k => $v) {
-            $values[$k] = !is_scalar($v) && !$v instanceof Stub ? new CutStub($v) : $v;
+            $values[$k] = !\is_scalar($v) && !$v instanceof Stub ? new CutStub($v) : $v;
         }
         if (null === $params) {
             parent::__construct($values, false);
@@ -49,7 +49,7 @@ class ArgsStub extends EnumStub
         }
     }
 
-    private static function getParameters($function, $class)
+    private static function getParameters(string $function, ?string $class): array
     {
         if (isset(self::$parameters[$k = $class.'::'.$function])) {
             return self::$parameters[$k];
@@ -68,7 +68,7 @@ class ArgsStub extends EnumStub
             if ($v->isPassedByReference()) {
                 $k = '&'.$k;
             }
-            if (method_exists($v, 'isVariadic') && $v->isVariadic()) {
+            if ($v->isVariadic()) {
                 $variadic .= $k;
             } else {
                 $params[] = $k;
diff --git a/civicrm/vendor/symfony/var-dumper/Caster/Caster.php b/civicrm/vendor/symfony/var-dumper/Caster/Caster.php
index a6ebc25bddd1ff1c5f84160043c5d1d05a347a30..d35f3230b0ef5c6ef6740054bd86d5fcfe7628f8 100644
--- a/civicrm/vendor/symfony/var-dumper/Caster/Caster.php
+++ b/civicrm/vendor/symfony/var-dumper/Caster/Caster.php
@@ -22,38 +22,31 @@ use Symfony\Component\VarDumper\Cloner\Stub;
  */
 class Caster
 {
-    const EXCLUDE_VERBOSE = 1;
-    const EXCLUDE_VIRTUAL = 2;
-    const EXCLUDE_DYNAMIC = 4;
-    const EXCLUDE_PUBLIC = 8;
-    const EXCLUDE_PROTECTED = 16;
-    const EXCLUDE_PRIVATE = 32;
-    const EXCLUDE_NULL = 64;
-    const EXCLUDE_EMPTY = 128;
-    const EXCLUDE_NOT_IMPORTANT = 256;
-    const EXCLUDE_STRICT = 512;
-
-    const PREFIX_VIRTUAL = "\0~\0";
-    const PREFIX_DYNAMIC = "\0+\0";
-    const PREFIX_PROTECTED = "\0*\0";
+    public const EXCLUDE_VERBOSE = 1;
+    public const EXCLUDE_VIRTUAL = 2;
+    public const EXCLUDE_DYNAMIC = 4;
+    public const EXCLUDE_PUBLIC = 8;
+    public const EXCLUDE_PROTECTED = 16;
+    public const EXCLUDE_PRIVATE = 32;
+    public const EXCLUDE_NULL = 64;
+    public const EXCLUDE_EMPTY = 128;
+    public const EXCLUDE_NOT_IMPORTANT = 256;
+    public const EXCLUDE_STRICT = 512;
+
+    public const PREFIX_VIRTUAL = "\0~\0";
+    public const PREFIX_DYNAMIC = "\0+\0";
+    public const PREFIX_PROTECTED = "\0*\0";
 
     /**
      * Casts objects to arrays and adds the dynamic property prefix.
      *
      * @param object $obj          The object to cast
-     * @param string $class        The class of the object
      * @param bool   $hasDebugInfo Whether the __debugInfo method exists on $obj or not
      *
      * @return array The array-cast of the object, with prefixed dynamic properties
      */
-    public static function castObject($obj, $class, $hasDebugInfo = false, $debugClass = null)
+    public static function castObject($obj, string $class, bool $hasDebugInfo = false, string $debugClass = null): array
     {
-        if ($class instanceof \ReflectionClass) {
-            @trigger_error(sprintf('Passing a ReflectionClass to "%s()" is deprecated since Symfony 3.3 and will be unsupported in 4.0. Pass the class name as string instead.', __METHOD__), \E_USER_DEPRECATED);
-            $hasDebugInfo = $class->hasMethod('__debugInfo');
-            $class = $class->name;
-        }
-
         if ($hasDebugInfo) {
             try {
                 $debugInfo = $obj->__debugInfo();
@@ -71,17 +64,7 @@ class Caster
 
         if ($a) {
             static $publicProperties = [];
-            if (null === $debugClass) {
-                if (\PHP_VERSION_ID >= 80000) {
-                    $debugClass = get_debug_type($obj);
-                } else {
-                    $debugClass = $class;
-
-                    if (isset($debugClass[15]) && "\0" === $debugClass[15]) {
-                        $debugClass = (get_parent_class($debugClass) ?: key(class_implements($debugClass)) ?: 'class').'@anonymous';
-                    }
-                }
-            }
+            $debugClass = $debugClass ?? get_debug_type($obj);
 
             $i = 0;
             $prefixedKeys = [];
@@ -139,7 +122,7 @@ class Caster
      *
      * @return array The filtered array
      */
-    public static function filter(array $a, $filter, array $listedProperties = [], &$count = 0)
+    public static function filter(array $a, int $filter, array $listedProperties = [], ?int &$count = 0): array
     {
         $count = 0;
 
@@ -180,7 +163,7 @@ class Caster
         return $a;
     }
 
-    public static function castPhpIncompleteClass(\__PHP_Incomplete_Class $c, array $a, Stub $stub, $isNested)
+    public static function castPhpIncompleteClass(\__PHP_Incomplete_Class $c, array $a, Stub $stub, bool $isNested): array
     {
         if (isset($a['__PHP_Incomplete_Class_Name'])) {
             $stub->class .= '('.$a['__PHP_Incomplete_Class_Name'].')';
diff --git a/civicrm/vendor/symfony/var-dumper/Caster/ClassStub.php b/civicrm/vendor/symfony/var-dumper/Caster/ClassStub.php
index 1a85098e1581bb59dfbcd872cf6b86c33de13431..48f848354bed07619a5b02803e58a3bc8fb05bbd 100644
--- a/civicrm/vendor/symfony/var-dumper/Caster/ClassStub.php
+++ b/civicrm/vendor/symfony/var-dumper/Caster/ClassStub.php
@@ -11,6 +11,8 @@
 
 namespace Symfony\Component\VarDumper\Caster;
 
+use Symfony\Component\VarDumper\Cloner\Stub;
+
 /**
  * Represents a PHP class identifier.
  *
@@ -22,16 +24,10 @@ class ClassStub extends ConstStub
      * @param string   $identifier A PHP identifier, e.g. a class, method, interface, etc. name
      * @param callable $callable   The callable targeted by the identifier when it is ambiguous or not a real PHP identifier
      */
-    public function __construct($identifier, $callable = null)
+    public function __construct(string $identifier, $callable = null)
     {
         $this->value = $identifier;
 
-        if (0 < $i = strrpos($identifier, '\\')) {
-            $this->attr['ellipsis'] = \strlen($identifier) - $i;
-            $this->attr['ellipsis-type'] = 'class';
-            $this->attr['ellipsis-tail'] = 1;
-        }
-
         try {
             if (null !== $callable) {
                 if ($callable instanceof \Closure) {
@@ -58,8 +54,31 @@ class ClassStub extends ConstStub
                     $r = new \ReflectionClass($r[0]);
                 }
             }
+
+            if (str_contains($identifier, "@anonymous\0")) {
+                $this->value = $identifier = preg_replace_callback('/[a-zA-Z_\x7f-\xff][\\\\a-zA-Z0-9_\x7f-\xff]*+@anonymous\x00.*?\.php(?:0x?|:[0-9]++\$)[0-9a-fA-F]++/', function ($m) {
+                    return class_exists($m[0], false) ? (get_parent_class($m[0]) ?: key(class_implements($m[0])) ?: 'class').'@anonymous' : $m[0];
+                }, $identifier);
+            }
+
+            if (null !== $callable && $r instanceof \ReflectionFunctionAbstract) {
+                $s = ReflectionCaster::castFunctionAbstract($r, [], new Stub(), true, Caster::EXCLUDE_VERBOSE);
+                $s = ReflectionCaster::getSignature($s);
+
+                if (str_ends_with($identifier, '()')) {
+                    $this->value = substr_replace($identifier, $s, -2);
+                } else {
+                    $this->value .= $s;
+                }
+            }
         } catch (\ReflectionException $e) {
             return;
+        } finally {
+            if (0 < $i = strrpos($this->value, '\\')) {
+                $this->attr['ellipsis'] = \strlen($this->value) - $i;
+                $this->attr['ellipsis-type'] = 'class';
+                $this->attr['ellipsis-tail'] = 1;
+            }
         }
 
         if ($f = $r->getFileName()) {
@@ -75,9 +94,9 @@ class ClassStub extends ConstStub
         }
 
         if (!\is_array($callable)) {
-            $callable = new static($callable);
+            $callable = new static($callable, $callable);
         } elseif (\is_string($callable[0])) {
-            $callable[0] = new static($callable[0]);
+            $callable[0] = new static($callable[0], $callable);
         } else {
             $callable[1] = new static($callable[1], $callable);
         }
diff --git a/civicrm/vendor/symfony/var-dumper/Caster/ConstStub.php b/civicrm/vendor/symfony/var-dumper/Caster/ConstStub.php
index 26c0010b66a8cac06c3ce25e8b1c2ef08d0b013a..8b0179745f346479282aaeb0ee6ffcb4391c9b94 100644
--- a/civicrm/vendor/symfony/var-dumper/Caster/ConstStub.php
+++ b/civicrm/vendor/symfony/var-dumper/Caster/ConstStub.php
@@ -20,12 +20,15 @@ use Symfony\Component\VarDumper\Cloner\Stub;
  */
 class ConstStub extends Stub
 {
-    public function __construct($name, $value)
+    public function __construct(string $name, $value = null)
     {
         $this->class = $name;
-        $this->value = $value;
+        $this->value = 1 < \func_num_args() ? $value : $name;
     }
 
+    /**
+     * @return string
+     */
     public function __toString()
     {
         return (string) $this->value;
diff --git a/civicrm/vendor/symfony/var-dumper/Caster/CutStub.php b/civicrm/vendor/symfony/var-dumper/Caster/CutStub.php
index 690338f542d97a8ad4f7bfe4f79cb3ebe20857ca..464c6dbd1905d620e7b6052886f478bd326f3f0e 100644
--- a/civicrm/vendor/symfony/var-dumper/Caster/CutStub.php
+++ b/civicrm/vendor/symfony/var-dumper/Caster/CutStub.php
@@ -28,6 +28,11 @@ class CutStub extends Stub
             case 'object':
                 $this->type = self::TYPE_OBJECT;
                 $this->class = \get_class($value);
+
+                if ($value instanceof \Closure) {
+                    ReflectionCaster::castClosure($value, [], $this, true, Caster::EXCLUDE_VERBOSE);
+                }
+
                 $this->cut = -1;
                 break;
 
diff --git a/civicrm/vendor/symfony/var-dumper/Caster/DOMCaster.php b/civicrm/vendor/symfony/var-dumper/Caster/DOMCaster.php
index fef3d432a7cdd07eb8c6781491831734f2879296..5f2b9cd115304b1a0d4cc95eef81be23d1d8e2d5 100644
--- a/civicrm/vendor/symfony/var-dumper/Caster/DOMCaster.php
+++ b/civicrm/vendor/symfony/var-dumper/Caster/DOMCaster.php
@@ -17,10 +17,12 @@ use Symfony\Component\VarDumper\Cloner\Stub;
  * Casts DOM related classes to array representation.
  *
  * @author Nicolas Grekas <p@tchwork.com>
+ *
+ * @final since Symfony 4.4
  */
 class DOMCaster
 {
-    private static $errorCodes = [
+    private const ERROR_CODES = [
         \DOM_PHP_ERR => 'DOM_PHP_ERR',
         \DOM_INDEX_SIZE_ERR => 'DOM_INDEX_SIZE_ERR',
         \DOMSTRING_SIZE_ERR => 'DOMSTRING_SIZE_ERR',
@@ -40,7 +42,7 @@ class DOMCaster
         \DOM_VALIDATION_ERR => 'DOM_VALIDATION_ERR',
     ];
 
-    private static $nodeTypes = [
+    private const NODE_TYPES = [
         \XML_ELEMENT_NODE => 'XML_ELEMENT_NODE',
         \XML_ATTRIBUTE_NODE => 'XML_ATTRIBUTE_NODE',
         \XML_TEXT_NODE => 'XML_TEXT_NODE',
@@ -64,8 +66,8 @@ class DOMCaster
     public static function castException(\DOMException $e, array $a, Stub $stub, $isNested)
     {
         $k = Caster::PREFIX_PROTECTED.'code';
-        if (isset($a[$k], self::$errorCodes[$a[$k]])) {
-            $a[$k] = new ConstStub(self::$errorCodes[$a[$k]], $a[$k]);
+        if (isset($a[$k], self::ERROR_CODES[$a[$k]])) {
+            $a[$k] = new ConstStub(self::ERROR_CODES[$a[$k]], $a[$k]);
         }
 
         return $a;
@@ -95,7 +97,7 @@ class DOMCaster
         $a += [
             'nodeName' => $dom->nodeName,
             'nodeValue' => new CutStub($dom->nodeValue),
-            'nodeType' => new ConstStub(self::$nodeTypes[$dom->nodeType], $dom->nodeType),
+            'nodeType' => new ConstStub(self::NODE_TYPES[$dom->nodeType], $dom->nodeType),
             'parentNode' => new CutStub($dom->parentNode),
             'childNodes' => $dom->childNodes,
             'firstChild' => new CutStub($dom->firstChild),
@@ -119,7 +121,7 @@ class DOMCaster
         $a += [
             'nodeName' => $dom->nodeName,
             'nodeValue' => new CutStub($dom->nodeValue),
-            'nodeType' => new ConstStub(self::$nodeTypes[$dom->nodeType], $dom->nodeType),
+            'nodeType' => new ConstStub(self::NODE_TYPES[$dom->nodeType], $dom->nodeType),
             'prefix' => $dom->prefix,
             'localName' => $dom->localName,
             'namespaceURI' => $dom->namespaceURI,
diff --git a/civicrm/vendor/symfony/var-dumper/Caster/DateCaster.php b/civicrm/vendor/symfony/var-dumper/Caster/DateCaster.php
index 70f229a0d8b7d9d3eacf04ddc1608b6267ab08ed..e0309bc62d9638759b5e710b3df7028ce8cd12b0 100644
--- a/civicrm/vendor/symfony/var-dumper/Caster/DateCaster.php
+++ b/civicrm/vendor/symfony/var-dumper/Caster/DateCaster.php
@@ -17,9 +17,13 @@ use Symfony\Component\VarDumper\Cloner\Stub;
  * Casts DateTimeInterface related classes to array representation.
  *
  * @author Dany Maillard <danymaillard93b@gmail.com>
+ *
+ * @final since Symfony 4.4
  */
 class DateCaster
 {
+    private const PERIOD_LIMIT = 3;
+
     public static function castDateTime(\DateTimeInterface $d, array $a, Stub $stub, $isNested, $filter)
     {
         $prefix = Caster::PREFIX_VIRTUAL;
@@ -45,7 +49,7 @@ class DateCaster
 
     public static function castInterval(\DateInterval $interval, array $a, Stub $stub, $isNested, $filter)
     {
-        $now = new \DateTimeImmutable();
+        $now = new \DateTimeImmutable('@0', new \DateTimeZone('UTC'));
         $numberOfSeconds = $now->add($interval)->getTimestamp() - $now->getTimestamp();
         $title = number_format($numberOfSeconds, 0, '.', ' ').'s';
 
@@ -54,23 +58,19 @@ class DateCaster
         return $filter & Caster::EXCLUDE_VERBOSE ? $i : $i + $a;
     }
 
-    private static function formatInterval(\DateInterval $i)
+    private static function formatInterval(\DateInterval $i): string
     {
         $format = '%R ';
 
         if (0 === $i->y && 0 === $i->m && ($i->h >= 24 || $i->i >= 60 || $i->s >= 60)) {
-            $i = date_diff($d = new \DateTime(), date_add(clone $d, $i)); // recalculate carry over points
+            $d = new \DateTimeImmutable('@0', new \DateTimeZone('UTC'));
+            $i = $d->diff($d->add($i)); // recalculate carry over points
             $format .= 0 < $i->days ? '%ad ' : '';
         } else {
             $format .= ($i->y ? '%yy ' : '').($i->m ? '%mm ' : '').($i->d ? '%dd ' : '');
         }
 
-        if (\PHP_VERSION_ID >= 70100 && isset($i->f)) {
-            $format .= $i->h || $i->i || $i->s || $i->f ? '%H:%I:'.self::formatSeconds($i->s, substr($i->f, 2)) : '';
-        } else {
-            $format .= $i->h || $i->i || $i->s ? '%H:%I:%S' : '';
-        }
-
+        $format .= $i->h || $i->i || $i->s || $i->f ? '%H:%I:'.self::formatSeconds($i->s, substr($i->f, 2)) : '';
         $format = '%R ' === $format ? '0s' : $format;
 
         return $i->format(rtrim($format));
@@ -80,7 +80,7 @@ class DateCaster
     {
         $location = $timeZone->getLocation();
         $formatted = (new \DateTime('now', $timeZone))->format($location ? 'e (P)' : 'P');
-        $title = $location && \extension_loaded('intl') ? \Locale::getDisplayRegion('-'.$location['country_code'], \Locale::getDefault()) : '';
+        $title = $location && \extension_loaded('intl') ? \Locale::getDisplayRegion('-'.$location['country_code']) : '';
 
         $z = [Caster::PREFIX_VIRTUAL.'timezone' => new ConstStub($formatted, $title)];
 
@@ -89,15 +89,11 @@ class DateCaster
 
     public static function castPeriod(\DatePeriod $p, array $a, Stub $stub, $isNested, $filter)
     {
-        if (\defined('HHVM_VERSION_ID') || \PHP_VERSION_ID < 50620 || (\PHP_VERSION_ID >= 70000 && \PHP_VERSION_ID < 70005)) { // see https://bugs.php.net/71635
-            return $a;
-        }
-
         $dates = [];
         if (\PHP_VERSION_ID >= 70107) { // see https://bugs.php.net/74639
             foreach (clone $p as $i => $d) {
-                if (3 === $i) {
-                    $now = new \DateTimeImmutable();
+                if (self::PERIOD_LIMIT === $i) {
+                    $now = new \DateTimeImmutable('now', new \DateTimeZone('UTC'));
                     $dates[] = sprintf('%s more', ($end = $p->getEndDate())
                         ? ceil(($end->format('U.u') - $d->format('U.u')) / ((int) $now->add($p->getDateInterval())->format('U.u') - (int) $now->format('U.u')))
                         : $p->recurrences - $i
@@ -109,11 +105,11 @@ class DateCaster
         }
 
         $period = sprintf(
-            'every %s, from %s (%s) %s',
+            'every %s, from %s%s %s',
             self::formatInterval($p->getDateInterval()),
+            $p->include_start_date ? '[' : ']',
             self::formatDateTime($p->getStartDate()),
-            $p->include_start_date ? 'included' : 'excluded',
-            ($end = $p->getEndDate()) ? 'to '.self::formatDateTime($end) : 'recurring '.$p->recurrences.' time/s'
+            ($end = $p->getEndDate()) ? 'to '.self::formatDateTime($end).(\PHP_VERSION_ID >= 80200 && $p->include_end_date ? ']' : '[') : 'recurring '.$p->recurrences.' time/s'
         );
 
         $p = [Caster::PREFIX_VIRTUAL.'period' => new ConstStub($period, implode("\n", $dates))];
@@ -121,12 +117,12 @@ class DateCaster
         return $filter & Caster::EXCLUDE_VERBOSE ? $p : $p + $a;
     }
 
-    private static function formatDateTime(\DateTimeInterface $d, $extra = '')
+    private static function formatDateTime(\DateTimeInterface $d, string $extra = ''): string
     {
         return $d->format('Y-m-d H:i:'.self::formatSeconds($d->format('s'), $d->format('u')).$extra);
     }
 
-    private static function formatSeconds($s, $us)
+    private static function formatSeconds(string $s, string $us): string
     {
         return sprintf('%02d.%s', $s, 0 === ($len = \strlen($t = rtrim($us, '0'))) ? '0' : ($len <= 3 ? str_pad($t, 3, '0') : $us));
     }
diff --git a/civicrm/vendor/symfony/var-dumper/Caster/DoctrineCaster.php b/civicrm/vendor/symfony/var-dumper/Caster/DoctrineCaster.php
index 696b87816ea8e9df7ad514ee1310ed8468f30053..7409508b00811e621b11cde6b40aee52103f83de 100644
--- a/civicrm/vendor/symfony/var-dumper/Caster/DoctrineCaster.php
+++ b/civicrm/vendor/symfony/var-dumper/Caster/DoctrineCaster.php
@@ -20,6 +20,8 @@ use Symfony\Component\VarDumper\Cloner\Stub;
  * Casts Doctrine related classes to array representation.
  *
  * @author Nicolas Grekas <p@tchwork.com>
+ *
+ * @final since Symfony 4.4
  */
 class DoctrineCaster
 {
diff --git a/civicrm/vendor/symfony/var-dumper/Caster/DsCaster.php b/civicrm/vendor/symfony/var-dumper/Caster/DsCaster.php
new file mode 100644
index 0000000000000000000000000000000000000000..11423c9b29e62401bf5a9469faba61f1507b67c8
--- /dev/null
+++ b/civicrm/vendor/symfony/var-dumper/Caster/DsCaster.php
@@ -0,0 +1,70 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Caster;
+
+use Ds\Collection;
+use Ds\Map;
+use Ds\Pair;
+use Symfony\Component\VarDumper\Cloner\Stub;
+
+/**
+ * Casts Ds extension classes to array representation.
+ *
+ * @author Jáchym Toušek <enumag@gmail.com>
+ *
+ * @final since Symfony 4.4
+ */
+class DsCaster
+{
+    public static function castCollection(Collection $c, array $a, Stub $stub, bool $isNested): array
+    {
+        $a[Caster::PREFIX_VIRTUAL.'count'] = $c->count();
+        $a[Caster::PREFIX_VIRTUAL.'capacity'] = $c->capacity();
+
+        if (!$c instanceof Map) {
+            $a += $c->toArray();
+        }
+
+        return $a;
+    }
+
+    public static function castMap(Map $c, array $a, Stub $stub, bool $isNested): array
+    {
+        foreach ($c as $k => $v) {
+            $a[] = new DsPairStub($k, $v);
+        }
+
+        return $a;
+    }
+
+    public static function castPair(Pair $c, array $a, Stub $stub, bool $isNested): array
+    {
+        foreach ($c->toArray() as $k => $v) {
+            $a[Caster::PREFIX_VIRTUAL.$k] = $v;
+        }
+
+        return $a;
+    }
+
+    public static function castPairStub(DsPairStub $c, array $a, Stub $stub, bool $isNested): array
+    {
+        if ($isNested) {
+            $stub->class = Pair::class;
+            $stub->value = null;
+            $stub->handle = 0;
+
+            $a = $c->value;
+        }
+
+        return $a;
+    }
+}
diff --git a/civicrm/vendor/symfony/var-dumper/Caster/DsPairStub.php b/civicrm/vendor/symfony/var-dumper/Caster/DsPairStub.php
new file mode 100644
index 0000000000000000000000000000000000000000..a1dcc156183e92edc38c3a0830519cfacb3363da
--- /dev/null
+++ b/civicrm/vendor/symfony/var-dumper/Caster/DsPairStub.php
@@ -0,0 +1,28 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Caster;
+
+use Symfony\Component\VarDumper\Cloner\Stub;
+
+/**
+ * @author Nicolas Grekas <p@tchwork.com>
+ */
+class DsPairStub extends Stub
+{
+    public function __construct($key, $value)
+    {
+        $this->value = [
+            Caster::PREFIX_VIRTUAL.'key' => $key,
+            Caster::PREFIX_VIRTUAL.'value' => $value,
+        ];
+    }
+}
diff --git a/civicrm/vendor/symfony/var-dumper/Caster/EnumStub.php b/civicrm/vendor/symfony/var-dumper/Caster/EnumStub.php
index 3cee23eac202b1dc7cad7e6ca3fb629110741e9d..7a4e98a21b4d1b52b561d2464c78a8081e001709 100644
--- a/civicrm/vendor/symfony/var-dumper/Caster/EnumStub.php
+++ b/civicrm/vendor/symfony/var-dumper/Caster/EnumStub.php
@@ -22,7 +22,7 @@ class EnumStub extends Stub
 {
     public $dumpKeys = true;
 
-    public function __construct(array $values, $dumpKeys = true)
+    public function __construct(array $values, bool $dumpKeys = true)
     {
         $this->value = $values;
         $this->dumpKeys = $dumpKeys;
diff --git a/civicrm/vendor/symfony/var-dumper/Caster/ExceptionCaster.php b/civicrm/vendor/symfony/var-dumper/Caster/ExceptionCaster.php
index 62b57402f86bac753e4d237c42b7e83aaa87e9dc..f2c0f96872fddb6b159c1b9cf93324dadaec13e6 100644
--- a/civicrm/vendor/symfony/var-dumper/Caster/ExceptionCaster.php
+++ b/civicrm/vendor/symfony/var-dumper/Caster/ExceptionCaster.php
@@ -11,7 +11,7 @@
 
 namespace Symfony\Component\VarDumper\Caster;
 
-use Symfony\Component\Debug\Exception\SilencedErrorContext;
+use Symfony\Component\ErrorHandler\Exception\SilencedErrorContext;
 use Symfony\Component\VarDumper\Cloner\Stub;
 use Symfony\Component\VarDumper\Exception\ThrowingCasterException;
 
@@ -19,6 +19,8 @@ use Symfony\Component\VarDumper\Exception\ThrowingCasterException;
  * Casts common Exception classes to array representation.
  *
  * @author Nicolas Grekas <p@tchwork.com>
+ *
+ * @final since Symfony 4.4
  */
 class ExceptionCaster
 {
@@ -71,7 +73,8 @@ class ExceptionCaster
 
         if (isset($a[$xPrefix.'previous'], $a[$trace]) && $a[$xPrefix.'previous'] instanceof \Exception) {
             $b = (array) $a[$xPrefix.'previous'];
-            self::traceUnshift($b[$xPrefix.'trace'], \get_class($a[$xPrefix.'previous']), $b[$prefix.'file'], $b[$prefix.'line']);
+            $class = get_debug_type($a[$xPrefix.'previous']);
+            self::traceUnshift($b[$xPrefix.'trace'], $class, $b[$prefix.'file'], $b[$prefix.'line']);
             $a[$trace] = new TraceStub($b[$xPrefix.'trace'], false, 0, -\count($a[$trace]->value));
         }
 
@@ -135,10 +138,10 @@ class ExceptionCaster
 
             $frame = new FrameStub(
                 [
-                    'object' => isset($f['object']) ? $f['object'] : null,
-                    'class' => isset($f['class']) ? $f['class'] : null,
-                    'type' => isset($f['type']) ? $f['type'] : null,
-                    'function' => isset($f['function']) ? $f['function'] : null,
+                    'object' => $f['object'] ?? null,
+                    'class' => $f['class'] ?? null,
+                    'type' => $f['type'] ?? null,
+                    'function' => $f['function'] ?? null,
                 ] + $frames[$i - 1],
                 false,
                 true
@@ -146,7 +149,7 @@ class ExceptionCaster
             $f = self::castFrameStub($frame, [], $frame, true);
             if (isset($f[$prefix.'src'])) {
                 foreach ($f[$prefix.'src']->value as $label => $frame) {
-                    if (0 === strpos($label, "\0~collapse=0")) {
+                    if (str_starts_with($label, "\0~collapse=0")) {
                         if ($collapse) {
                             $label = substr_replace($label, '1', 11, 1);
                         } else {
@@ -157,7 +160,7 @@ class ExceptionCaster
                 }
                 $f = $frames[$i - 1];
                 if ($trace->keepArgs && !empty($f['args']) && $frame instanceof EnumStub) {
-                    $frame->value['arguments'] = new ArgsStub($f['args'], isset($f['function']) ? $f['function'] : null, isset($f['class']) ? $f['class'] : null);
+                    $frame->value['arguments'] = new ArgsStub($f['args'], $f['function'] ?? null, $f['class'] ?? null);
                 }
             } elseif ('???' !== $lastCall) {
                 $label = new ClassStub($lastCall);
@@ -202,39 +205,44 @@ class ExceptionCaster
                     $f['file'] = substr($f['file'], 0, -\strlen($match[0]));
                     $f['line'] = (int) $match[1];
                 }
-                $caller = isset($f['function']) ? sprintf('in %s() on line %d', (isset($f['class']) ? $f['class'].$f['type'] : '').$f['function'], $f['line']) : null;
                 $src = $f['line'];
                 $srcKey = $f['file'];
                 $ellipsis = new LinkStub($srcKey, 0);
                 $srcAttr = 'collapse='.(int) $ellipsis->inVendor;
-                $ellipsisTail = isset($ellipsis->attr['ellipsis-tail']) ? $ellipsis->attr['ellipsis-tail'] : 0;
-                $ellipsis = isset($ellipsis->attr['ellipsis']) ? $ellipsis->attr['ellipsis'] : 0;
+                $ellipsisTail = $ellipsis->attr['ellipsis-tail'] ?? 0;
+                $ellipsis = $ellipsis->attr['ellipsis'] ?? 0;
 
                 if (file_exists($f['file']) && 0 <= self::$srcContext) {
                     if (!empty($f['class']) && (is_subclass_of($f['class'], 'Twig\Template') || is_subclass_of($f['class'], 'Twig_Template')) && method_exists($f['class'], 'getDebugInfo')) {
-                        $template = isset($f['object']) ? $f['object'] : unserialize(sprintf('O:%d:"%s":0:{}', \strlen($f['class']), $f['class']));
-
-                        $ellipsis = 0;
-                        $templateSrc = method_exists($template, 'getSourceContext') ? $template->getSourceContext()->getCode() : (method_exists($template, 'getSource') ? $template->getSource() : '');
-                        $templateInfo = $template->getDebugInfo();
-                        if (isset($templateInfo[$f['line']])) {
-                            if (!method_exists($template, 'getSourceContext') || !file_exists($templatePath = $template->getSourceContext()->getPath())) {
-                                $templatePath = null;
-                            }
-                            if ($templateSrc) {
-                                $src = self::extractSource($templateSrc, $templateInfo[$f['line']], self::$srcContext, $caller, 'twig', $templatePath);
-                                $srcKey = ($templatePath ?: $template->getTemplateName()).':'.$templateInfo[$f['line']];
+                        $template = null;
+                        if (isset($f['object'])) {
+                            $template = $f['object'];
+                        } elseif ((new \ReflectionClass($f['class']))->isInstantiable()) {
+                            $template = unserialize(sprintf('O:%d:"%s":0:{}', \strlen($f['class']), $f['class']));
+                        }
+                        if (null !== $template) {
+                            $ellipsis = 0;
+                            $templateSrc = method_exists($template, 'getSourceContext') ? $template->getSourceContext()->getCode() : (method_exists($template, 'getSource') ? $template->getSource() : '');
+                            $templateInfo = $template->getDebugInfo();
+                            if (isset($templateInfo[$f['line']])) {
+                                if (!method_exists($template, 'getSourceContext') || !file_exists($templatePath = $template->getSourceContext()->getPath())) {
+                                    $templatePath = null;
+                                }
+                                if ($templateSrc) {
+                                    $src = self::extractSource($templateSrc, $templateInfo[$f['line']], self::$srcContext, 'twig', $templatePath, $f);
+                                    $srcKey = ($templatePath ?: $template->getTemplateName()).':'.$templateInfo[$f['line']];
+                                }
                             }
                         }
                     }
                     if ($srcKey == $f['file']) {
-                        $src = self::extractSource(file_get_contents($f['file']), $f['line'], self::$srcContext, $caller, 'php', $f['file']);
+                        $src = self::extractSource(file_get_contents($f['file']), $f['line'], self::$srcContext, 'php', $f['file'], $f);
                         $srcKey .= ':'.$f['line'];
                         if ($ellipsis) {
                             $ellipsis += 1 + \strlen($f['line']);
                         }
                     }
-                    $srcAttr .= '&separator= ';
+                    $srcAttr .= sprintf('&separator= &file=%s&line=%d', rawurlencode($f['file']), $f['line']);
                 } else {
                     $srcAttr .= '&separator=:';
                 }
@@ -259,7 +267,7 @@ class ExceptionCaster
         return $a;
     }
 
-    private static function filterExceptionArray($xClass, array $a, $xPrefix, $filter)
+    private static function filterExceptionArray(string $xClass, array $a, string $xPrefix, int $filter): array
     {
         if (isset($a[$xPrefix.'trace'])) {
             $trace = $a[$xPrefix.'trace'];
@@ -279,6 +287,12 @@ class ExceptionCaster
         }
         unset($a[$xPrefix.'string'], $a[Caster::PREFIX_DYNAMIC.'xdebug_message'], $a[Caster::PREFIX_DYNAMIC.'__destructorException']);
 
+        if (isset($a[Caster::PREFIX_PROTECTED.'message']) && str_contains($a[Caster::PREFIX_PROTECTED.'message'], "@anonymous\0")) {
+            $a[Caster::PREFIX_PROTECTED.'message'] = preg_replace_callback('/[a-zA-Z_\x7f-\xff][\\\\a-zA-Z0-9_\x7f-\xff]*+@anonymous\x00.*?\.php(?:0x?|:[0-9]++\$)[0-9a-fA-F]++/', function ($m) {
+                return class_exists($m[0], false) ? (get_parent_class($m[0]) ?: key(class_implements($m[0])) ?: 'class').'@anonymous' : $m[0];
+            }, $a[Caster::PREFIX_PROTECTED.'message']);
+        }
+
         if (isset($a[Caster::PREFIX_PROTECTED.'file'], $a[Caster::PREFIX_PROTECTED.'line'])) {
             $a[Caster::PREFIX_PROTECTED.'file'] = new LinkStub($a[Caster::PREFIX_PROTECTED.'file'], $a[Caster::PREFIX_PROTECTED.'line']);
         }
@@ -286,7 +300,7 @@ class ExceptionCaster
         return $a;
     }
 
-    private static function traceUnshift(&$trace, $class, $file, $line)
+    private static function traceUnshift(array &$trace, ?string $class, string $file, int $line): void
     {
         if (isset($trace[0]['file'], $trace[0]['line']) && $trace[0]['file'] === $file && $trace[0]['line'] === $line) {
             return;
@@ -298,16 +312,41 @@ class ExceptionCaster
         ]);
     }
 
-    private static function extractSource($srcLines, $line, $srcContext, $title, $lang, $file = null)
+    private static function extractSource(string $srcLines, int $line, int $srcContext, string $lang, ?string $file, array $frame): EnumStub
     {
         $srcLines = explode("\n", $srcLines);
         $src = [];
 
         for ($i = $line - 1 - $srcContext; $i <= $line - 1 + $srcContext; ++$i) {
-            $src[] = (isset($srcLines[$i]) ? $srcLines[$i] : '')."\n";
+            $src[] = ($srcLines[$i] ?? '')."\n";
+        }
+
+        if ($frame['function'] ?? false) {
+            $stub = new CutStub(new \stdClass());
+            $stub->class = (isset($frame['class']) ? $frame['class'].$frame['type'] : '').$frame['function'];
+            $stub->type = Stub::TYPE_OBJECT;
+            $stub->attr['cut_hash'] = true;
+            $stub->attr['file'] = $frame['file'];
+            $stub->attr['line'] = $frame['line'];
+
+            try {
+                $caller = isset($frame['class']) ? new \ReflectionMethod($frame['class'], $frame['function']) : new \ReflectionFunction($frame['function']);
+                $stub->class .= ReflectionCaster::getSignature(ReflectionCaster::castFunctionAbstract($caller, [], $stub, true, Caster::EXCLUDE_VERBOSE));
+
+                if ($f = $caller->getFileName()) {
+                    $stub->attr['file'] = $f;
+                    $stub->attr['line'] = $caller->getStartLine();
+                }
+            } catch (\ReflectionException $e) {
+                // ignore fake class/function
+            }
+
+            $srcLines = ["\0~separator=\0" => $stub];
+        } else {
+            $stub = null;
+            $srcLines = [];
         }
 
-        $srcLines = [];
         $ltrim = 0;
         do {
             $pad = null;
@@ -334,7 +373,7 @@ class ExceptionCaster
             if ($i !== $srcContext) {
                 $c = new ConstStub('default', $c);
             } else {
-                $c = new ConstStub($c, $title);
+                $c = new ConstStub($c, $stub ? 'in '.$stub->class : '');
                 if (null !== $file) {
                     $c->attr['file'] = $file;
                     $c->attr['line'] = $line;
diff --git a/civicrm/vendor/symfony/var-dumper/Caster/FrameStub.php b/civicrm/vendor/symfony/var-dumper/Caster/FrameStub.php
index 1e1194dc85b89041be0bfb5a57071a05a4ba204a..878675528f7e76c1cfd2863da512297fcda592bf 100644
--- a/civicrm/vendor/symfony/var-dumper/Caster/FrameStub.php
+++ b/civicrm/vendor/symfony/var-dumper/Caster/FrameStub.php
@@ -21,7 +21,7 @@ class FrameStub extends EnumStub
     public $keepArgs;
     public $inTraceStub;
 
-    public function __construct(array $frame, $keepArgs = true, $inTraceStub = false)
+    public function __construct(array $frame, bool $keepArgs = true, bool $inTraceStub = false)
     {
         $this->value = $frame;
         $this->keepArgs = $keepArgs;
diff --git a/civicrm/vendor/symfony/var-dumper/Caster/GmpCaster.php b/civicrm/vendor/symfony/var-dumper/Caster/GmpCaster.php
new file mode 100644
index 0000000000000000000000000000000000000000..2b20e15dc80a1010a816d063697b187a3641d927
--- /dev/null
+++ b/civicrm/vendor/symfony/var-dumper/Caster/GmpCaster.php
@@ -0,0 +1,32 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Caster;
+
+use Symfony\Component\VarDumper\Cloner\Stub;
+
+/**
+ * Casts GMP objects to array representation.
+ *
+ * @author Hamza Amrouche <hamza.simperfit@gmail.com>
+ * @author Nicolas Grekas <p@tchwork.com>
+ *
+ * @final since Symfony 4.4
+ */
+class GmpCaster
+{
+    public static function castGmp(\GMP $gmp, array $a, Stub $stub, $isNested, $filter): array
+    {
+        $a[Caster::PREFIX_VIRTUAL.'value'] = new ConstStub(gmp_strval($gmp), gmp_strval($gmp));
+
+        return $a;
+    }
+}
diff --git a/civicrm/vendor/symfony/var-dumper/Caster/ImagineCaster.php b/civicrm/vendor/symfony/var-dumper/Caster/ImagineCaster.php
new file mode 100644
index 0000000000000000000000000000000000000000..d1289da3370f3875cd9b9bb5d0fdb931d6a89616
--- /dev/null
+++ b/civicrm/vendor/symfony/var-dumper/Caster/ImagineCaster.php
@@ -0,0 +1,37 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Caster;
+
+use Imagine\Image\ImageInterface;
+use Symfony\Component\VarDumper\Cloner\Stub;
+
+/**
+ * @author Grégoire Pineau <lyrixx@lyrixx.info>
+ */
+final class ImagineCaster
+{
+    public static function castImage(ImageInterface $c, array $a, Stub $stub, bool $isNested): array
+    {
+        $imgData = $c->get('png');
+        if (\strlen($imgData) > 1 * 1000 * 1000) {
+            $a += [
+                Caster::PREFIX_VIRTUAL.'image' => new ConstStub($c->getSize()),
+            ];
+        } else {
+            $a += [
+                Caster::PREFIX_VIRTUAL.'image' => new ImgStub($imgData, 'image/png', $c->getSize()),
+            ];
+        }
+
+        return $a;
+    }
+}
diff --git a/civicrm/vendor/symfony/var-dumper/Caster/ImgStub.php b/civicrm/vendor/symfony/var-dumper/Caster/ImgStub.php
new file mode 100644
index 0000000000000000000000000000000000000000..05789fe336cd8b492c4bc20265baa1078e8a29d3
--- /dev/null
+++ b/civicrm/vendor/symfony/var-dumper/Caster/ImgStub.php
@@ -0,0 +1,26 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Caster;
+
+/**
+ * @author Grégoire Pineau <lyrixx@lyrixx.info>
+ */
+class ImgStub extends ConstStub
+{
+    public function __construct(string $data, string $contentType, string $size)
+    {
+        $this->value = '';
+        $this->attr['img-data'] = $data;
+        $this->attr['img-size'] = $size;
+        $this->attr['content-type'] = $contentType;
+    }
+}
diff --git a/civicrm/vendor/symfony/var-dumper/Caster/IntlCaster.php b/civicrm/vendor/symfony/var-dumper/Caster/IntlCaster.php
new file mode 100644
index 0000000000000000000000000000000000000000..581324d10d36e3e65874e6e9f48fbd5154d6a9a5
--- /dev/null
+++ b/civicrm/vendor/symfony/var-dumper/Caster/IntlCaster.php
@@ -0,0 +1,172 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Caster;
+
+use Symfony\Component\VarDumper\Cloner\Stub;
+
+/**
+ * @author Nicolas Grekas <p@tchwork.com>
+ * @author Jan Schädlich <jan.schaedlich@sensiolabs.de>
+ *
+ * @final since Symfony 4.4
+ */
+class IntlCaster
+{
+    public static function castMessageFormatter(\MessageFormatter $c, array $a, Stub $stub, $isNested)
+    {
+        $a += [
+            Caster::PREFIX_VIRTUAL.'locale' => $c->getLocale(),
+            Caster::PREFIX_VIRTUAL.'pattern' => $c->getPattern(),
+        ];
+
+        return self::castError($c, $a);
+    }
+
+    public static function castNumberFormatter(\NumberFormatter $c, array $a, Stub $stub, $isNested, $filter = 0)
+    {
+        $a += [
+            Caster::PREFIX_VIRTUAL.'locale' => $c->getLocale(),
+            Caster::PREFIX_VIRTUAL.'pattern' => $c->getPattern(),
+        ];
+
+        if ($filter & Caster::EXCLUDE_VERBOSE) {
+            $stub->cut += 3;
+
+            return self::castError($c, $a);
+        }
+
+        $a += [
+            Caster::PREFIX_VIRTUAL.'attributes' => new EnumStub(
+                [
+                    'PARSE_INT_ONLY' => $c->getAttribute(\NumberFormatter::PARSE_INT_ONLY),
+                    'GROUPING_USED' => $c->getAttribute(\NumberFormatter::GROUPING_USED),
+                    'DECIMAL_ALWAYS_SHOWN' => $c->getAttribute(\NumberFormatter::DECIMAL_ALWAYS_SHOWN),
+                    'MAX_INTEGER_DIGITS' => $c->getAttribute(\NumberFormatter::MAX_INTEGER_DIGITS),
+                    'MIN_INTEGER_DIGITS' => $c->getAttribute(\NumberFormatter::MIN_INTEGER_DIGITS),
+                    'INTEGER_DIGITS' => $c->getAttribute(\NumberFormatter::INTEGER_DIGITS),
+                    'MAX_FRACTION_DIGITS' => $c->getAttribute(\NumberFormatter::MAX_FRACTION_DIGITS),
+                    'MIN_FRACTION_DIGITS' => $c->getAttribute(\NumberFormatter::MIN_FRACTION_DIGITS),
+                    'FRACTION_DIGITS' => $c->getAttribute(\NumberFormatter::FRACTION_DIGITS),
+                    'MULTIPLIER' => $c->getAttribute(\NumberFormatter::MULTIPLIER),
+                    'GROUPING_SIZE' => $c->getAttribute(\NumberFormatter::GROUPING_SIZE),
+                    'ROUNDING_MODE' => $c->getAttribute(\NumberFormatter::ROUNDING_MODE),
+                    'ROUNDING_INCREMENT' => $c->getAttribute(\NumberFormatter::ROUNDING_INCREMENT),
+                    'FORMAT_WIDTH' => $c->getAttribute(\NumberFormatter::FORMAT_WIDTH),
+                    'PADDING_POSITION' => $c->getAttribute(\NumberFormatter::PADDING_POSITION),
+                    'SECONDARY_GROUPING_SIZE' => $c->getAttribute(\NumberFormatter::SECONDARY_GROUPING_SIZE),
+                    'SIGNIFICANT_DIGITS_USED' => $c->getAttribute(\NumberFormatter::SIGNIFICANT_DIGITS_USED),
+                    'MIN_SIGNIFICANT_DIGITS' => $c->getAttribute(\NumberFormatter::MIN_SIGNIFICANT_DIGITS),
+                    'MAX_SIGNIFICANT_DIGITS' => $c->getAttribute(\NumberFormatter::MAX_SIGNIFICANT_DIGITS),
+                    'LENIENT_PARSE' => $c->getAttribute(\NumberFormatter::LENIENT_PARSE),
+                ]
+            ),
+            Caster::PREFIX_VIRTUAL.'text_attributes' => new EnumStub(
+                [
+                    'POSITIVE_PREFIX' => $c->getTextAttribute(\NumberFormatter::POSITIVE_PREFIX),
+                    'POSITIVE_SUFFIX' => $c->getTextAttribute(\NumberFormatter::POSITIVE_SUFFIX),
+                    'NEGATIVE_PREFIX' => $c->getTextAttribute(\NumberFormatter::NEGATIVE_PREFIX),
+                    'NEGATIVE_SUFFIX' => $c->getTextAttribute(\NumberFormatter::NEGATIVE_SUFFIX),
+                    'PADDING_CHARACTER' => $c->getTextAttribute(\NumberFormatter::PADDING_CHARACTER),
+                    'CURRENCY_CODE' => $c->getTextAttribute(\NumberFormatter::CURRENCY_CODE),
+                    'DEFAULT_RULESET' => $c->getTextAttribute(\NumberFormatter::DEFAULT_RULESET),
+                    'PUBLIC_RULESETS' => $c->getTextAttribute(\NumberFormatter::PUBLIC_RULESETS),
+                ]
+            ),
+            Caster::PREFIX_VIRTUAL.'symbols' => new EnumStub(
+                [
+                    'DECIMAL_SEPARATOR_SYMBOL' => $c->getSymbol(\NumberFormatter::DECIMAL_SEPARATOR_SYMBOL),
+                    'GROUPING_SEPARATOR_SYMBOL' => $c->getSymbol(\NumberFormatter::GROUPING_SEPARATOR_SYMBOL),
+                    'PATTERN_SEPARATOR_SYMBOL' => $c->getSymbol(\NumberFormatter::PATTERN_SEPARATOR_SYMBOL),
+                    'PERCENT_SYMBOL' => $c->getSymbol(\NumberFormatter::PERCENT_SYMBOL),
+                    'ZERO_DIGIT_SYMBOL' => $c->getSymbol(\NumberFormatter::ZERO_DIGIT_SYMBOL),
+                    'DIGIT_SYMBOL' => $c->getSymbol(\NumberFormatter::DIGIT_SYMBOL),
+                    'MINUS_SIGN_SYMBOL' => $c->getSymbol(\NumberFormatter::MINUS_SIGN_SYMBOL),
+                    'PLUS_SIGN_SYMBOL' => $c->getSymbol(\NumberFormatter::PLUS_SIGN_SYMBOL),
+                    'CURRENCY_SYMBOL' => $c->getSymbol(\NumberFormatter::CURRENCY_SYMBOL),
+                    'INTL_CURRENCY_SYMBOL' => $c->getSymbol(\NumberFormatter::INTL_CURRENCY_SYMBOL),
+                    'MONETARY_SEPARATOR_SYMBOL' => $c->getSymbol(\NumberFormatter::MONETARY_SEPARATOR_SYMBOL),
+                    'EXPONENTIAL_SYMBOL' => $c->getSymbol(\NumberFormatter::EXPONENTIAL_SYMBOL),
+                    'PERMILL_SYMBOL' => $c->getSymbol(\NumberFormatter::PERMILL_SYMBOL),
+                    'PAD_ESCAPE_SYMBOL' => $c->getSymbol(\NumberFormatter::PAD_ESCAPE_SYMBOL),
+                    'INFINITY_SYMBOL' => $c->getSymbol(\NumberFormatter::INFINITY_SYMBOL),
+                    'NAN_SYMBOL' => $c->getSymbol(\NumberFormatter::NAN_SYMBOL),
+                    'SIGNIFICANT_DIGIT_SYMBOL' => $c->getSymbol(\NumberFormatter::SIGNIFICANT_DIGIT_SYMBOL),
+                    'MONETARY_GROUPING_SEPARATOR_SYMBOL' => $c->getSymbol(\NumberFormatter::MONETARY_GROUPING_SEPARATOR_SYMBOL),
+                ]
+            ),
+        ];
+
+        return self::castError($c, $a);
+    }
+
+    public static function castIntlTimeZone(\IntlTimeZone $c, array $a, Stub $stub, $isNested)
+    {
+        $a += [
+            Caster::PREFIX_VIRTUAL.'display_name' => $c->getDisplayName(),
+            Caster::PREFIX_VIRTUAL.'id' => $c->getID(),
+            Caster::PREFIX_VIRTUAL.'raw_offset' => $c->getRawOffset(),
+        ];
+
+        if ($c->useDaylightTime()) {
+            $a += [
+                Caster::PREFIX_VIRTUAL.'dst_savings' => $c->getDSTSavings(),
+            ];
+        }
+
+        return self::castError($c, $a);
+    }
+
+    public static function castIntlCalendar(\IntlCalendar $c, array $a, Stub $stub, $isNested, $filter = 0)
+    {
+        $a += [
+            Caster::PREFIX_VIRTUAL.'type' => $c->getType(),
+            Caster::PREFIX_VIRTUAL.'first_day_of_week' => $c->getFirstDayOfWeek(),
+            Caster::PREFIX_VIRTUAL.'minimal_days_in_first_week' => $c->getMinimalDaysInFirstWeek(),
+            Caster::PREFIX_VIRTUAL.'repeated_wall_time_option' => $c->getRepeatedWallTimeOption(),
+            Caster::PREFIX_VIRTUAL.'skipped_wall_time_option' => $c->getSkippedWallTimeOption(),
+            Caster::PREFIX_VIRTUAL.'time' => $c->getTime(),
+            Caster::PREFIX_VIRTUAL.'in_daylight_time' => $c->inDaylightTime(),
+            Caster::PREFIX_VIRTUAL.'is_lenient' => $c->isLenient(),
+            Caster::PREFIX_VIRTUAL.'time_zone' => ($filter & Caster::EXCLUDE_VERBOSE) ? new CutStub($c->getTimeZone()) : $c->getTimeZone(),
+        ];
+
+        return self::castError($c, $a);
+    }
+
+    public static function castIntlDateFormatter(\IntlDateFormatter $c, array $a, Stub $stub, $isNested, $filter = 0)
+    {
+        $a += [
+            Caster::PREFIX_VIRTUAL.'locale' => $c->getLocale(),
+            Caster::PREFIX_VIRTUAL.'pattern' => $c->getPattern(),
+            Caster::PREFIX_VIRTUAL.'calendar' => $c->getCalendar(),
+            Caster::PREFIX_VIRTUAL.'time_zone_id' => $c->getTimeZoneId(),
+            Caster::PREFIX_VIRTUAL.'time_type' => $c->getTimeType(),
+            Caster::PREFIX_VIRTUAL.'date_type' => $c->getDateType(),
+            Caster::PREFIX_VIRTUAL.'calendar_object' => ($filter & Caster::EXCLUDE_VERBOSE) ? new CutStub($c->getCalendarObject()) : $c->getCalendarObject(),
+            Caster::PREFIX_VIRTUAL.'time_zone' => ($filter & Caster::EXCLUDE_VERBOSE) ? new CutStub($c->getTimeZone()) : $c->getTimeZone(),
+        ];
+
+        return self::castError($c, $a);
+    }
+
+    private static function castError($c, array $a): array
+    {
+        if ($errorCode = $c->getErrorCode()) {
+            $a += [
+                Caster::PREFIX_VIRTUAL.'error_code' => $errorCode,
+                Caster::PREFIX_VIRTUAL.'error_message' => $c->getErrorMessage(),
+            ];
+        }
+
+        return $a;
+    }
+}
diff --git a/civicrm/vendor/symfony/var-dumper/Caster/LinkStub.php b/civicrm/vendor/symfony/var-dumper/Caster/LinkStub.php
index b589b502d4cef8a8a45a34c3b8fc165693ce1647..c619d9dcb9f86c893a4361be08680c33b7b5b840 100644
--- a/civicrm/vendor/symfony/var-dumper/Caster/LinkStub.php
+++ b/civicrm/vendor/symfony/var-dumper/Caster/LinkStub.php
@@ -23,7 +23,7 @@ class LinkStub extends ConstStub
     private static $vendorRoots;
     private static $composerRoots;
 
-    public function __construct($label, $line = 0, $href = null)
+    public function __construct(string $label, int $line = 0, string $href = null)
     {
         $this->value = $label;
 
@@ -33,12 +33,12 @@ class LinkStub extends ConstStub
         if (!\is_string($href)) {
             return;
         }
-        if (0 === strpos($href, 'file://')) {
+        if (str_starts_with($href, 'file://')) {
             if ($href === $label) {
                 $label = substr($label, 7);
             }
             $href = substr($href, 7);
-        } elseif (false !== strpos($href, '://')) {
+        } elseif (str_contains($href, '://')) {
             $this->attr['href'] = $href;
 
             return;
@@ -63,15 +63,15 @@ class LinkStub extends ConstStub
         }
     }
 
-    private function getComposerRoot($file, &$inVendor)
+    private function getComposerRoot(string $file, bool &$inVendor)
     {
         if (null === self::$vendorRoots) {
             self::$vendorRoots = [];
 
             foreach (get_declared_classes() as $class) {
-                if ('C' === $class[0] && 0 === strpos($class, 'ComposerAutoloaderInit')) {
+                if ('C' === $class[0] && str_starts_with($class, 'ComposerAutoloaderInit')) {
                     $r = new \ReflectionClass($class);
-                    $v = \dirname(\dirname($r->getFileName()));
+                    $v = \dirname($r->getFileName(), 2);
                     if (file_exists($v.'/composer/installed.json')) {
                         self::$vendorRoots[] = $v.\DIRECTORY_SEPARATOR;
                     }
@@ -85,7 +85,7 @@ class LinkStub extends ConstStub
         }
 
         foreach (self::$vendorRoots as $root) {
-            if ($inVendor = 0 === strpos($file, $root)) {
+            if ($inVendor = str_starts_with($file, $root)) {
                 return $root;
             }
         }
diff --git a/civicrm/vendor/symfony/var-dumper/Caster/MemcachedCaster.php b/civicrm/vendor/symfony/var-dumper/Caster/MemcachedCaster.php
new file mode 100644
index 0000000000000000000000000000000000000000..696cef18ee4e08da7e2619f123cceaa40c194d3e
--- /dev/null
+++ b/civicrm/vendor/symfony/var-dumper/Caster/MemcachedCaster.php
@@ -0,0 +1,81 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Caster;
+
+use Symfony\Component\VarDumper\Cloner\Stub;
+
+/**
+ * @author Jan Schädlich <jan.schaedlich@sensiolabs.de>
+ *
+ * @final since Symfony 4.4
+ */
+class MemcachedCaster
+{
+    private static $optionConstants;
+    private static $defaultOptions;
+
+    public static function castMemcached(\Memcached $c, array $a, Stub $stub, $isNested)
+    {
+        $a += [
+            Caster::PREFIX_VIRTUAL.'servers' => $c->getServerList(),
+            Caster::PREFIX_VIRTUAL.'options' => new EnumStub(
+                self::getNonDefaultOptions($c)
+            ),
+        ];
+
+        return $a;
+    }
+
+    private static function getNonDefaultOptions(\Memcached $c): array
+    {
+        self::$defaultOptions = self::$defaultOptions ?? self::discoverDefaultOptions();
+        self::$optionConstants = self::$optionConstants ?? self::getOptionConstants();
+
+        $nonDefaultOptions = [];
+        foreach (self::$optionConstants as $constantKey => $value) {
+            if (self::$defaultOptions[$constantKey] !== $option = $c->getOption($value)) {
+                $nonDefaultOptions[$constantKey] = $option;
+            }
+        }
+
+        return $nonDefaultOptions;
+    }
+
+    private static function discoverDefaultOptions(): array
+    {
+        $defaultMemcached = new \Memcached();
+        $defaultMemcached->addServer('127.0.0.1', 11211);
+
+        $defaultOptions = [];
+        self::$optionConstants = self::$optionConstants ?? self::getOptionConstants();
+
+        foreach (self::$optionConstants as $constantKey => $value) {
+            $defaultOptions[$constantKey] = $defaultMemcached->getOption($value);
+        }
+
+        return $defaultOptions;
+    }
+
+    private static function getOptionConstants(): array
+    {
+        $reflectedMemcached = new \ReflectionClass(\Memcached::class);
+
+        $optionConstants = [];
+        foreach ($reflectedMemcached->getConstants() as $constantKey => $value) {
+            if (str_starts_with($constantKey, 'OPT_')) {
+                $optionConstants[$constantKey] = $value;
+            }
+        }
+
+        return $optionConstants;
+    }
+}
diff --git a/civicrm/vendor/symfony/var-dumper/Caster/MongoCaster.php b/civicrm/vendor/symfony/var-dumper/Caster/MongoCaster.php
deleted file mode 100644
index 98f1b8e25d2884eb6f6cd5027e7b4c1d42ee22f1..0000000000000000000000000000000000000000
--- a/civicrm/vendor/symfony/var-dumper/Caster/MongoCaster.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\VarDumper\Caster;
-
-use Symfony\Component\VarDumper\Cloner\Stub;
-
-@trigger_error('The '.__NAMESPACE__.'\MongoCaster class is deprecated since Symfony 3.4 and will be removed in 4.0.', \E_USER_DEPRECATED);
-
-/**
- * Casts classes from the MongoDb extension to array representation.
- *
- * @author Nicolas Grekas <p@tchwork.com>
- *
- * @deprecated since version 3.4, to be removed in 4.0.
- */
-class MongoCaster
-{
-    public static function castCursor(\MongoCursorInterface $cursor, array $a, Stub $stub, $isNested)
-    {
-        if ($info = $cursor->info()) {
-            foreach ($info as $k => $v) {
-                $a[Caster::PREFIX_VIRTUAL.$k] = $v;
-            }
-        }
-        $a[Caster::PREFIX_VIRTUAL.'dead'] = $cursor->dead();
-
-        return $a;
-    }
-}
diff --git a/civicrm/vendor/symfony/var-dumper/Caster/MysqliCaster.php b/civicrm/vendor/symfony/var-dumper/Caster/MysqliCaster.php
new file mode 100644
index 0000000000000000000000000000000000000000..bfe6f0822d65aa8a8684a16340af6bd163e32dc9
--- /dev/null
+++ b/civicrm/vendor/symfony/var-dumper/Caster/MysqliCaster.php
@@ -0,0 +1,33 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Caster;
+
+use Symfony\Component\VarDumper\Cloner\Stub;
+
+/**
+ * @author Nicolas Grekas <p@tchwork.com>
+ *
+ * @internal
+ */
+final class MysqliCaster
+{
+    public static function castMysqliDriver(\mysqli_driver $c, array $a, Stub $stub, bool $isNested): array
+    {
+        foreach ($a as $k => $v) {
+            if (isset($c->$k)) {
+                $a[$k] = $c->$k;
+            }
+        }
+
+        return $a;
+    }
+}
diff --git a/civicrm/vendor/symfony/var-dumper/Caster/PdoCaster.php b/civicrm/vendor/symfony/var-dumper/Caster/PdoCaster.php
index 8af51829a93fbf0d127c8826d5f8312cccc87585..47b0a62b764e690965aa86df1cba7a8443a2129c 100644
--- a/civicrm/vendor/symfony/var-dumper/Caster/PdoCaster.php
+++ b/civicrm/vendor/symfony/var-dumper/Caster/PdoCaster.php
@@ -17,10 +17,12 @@ use Symfony\Component\VarDumper\Cloner\Stub;
  * Casts PDO related classes to array representation.
  *
  * @author Nicolas Grekas <p@tchwork.com>
+ *
+ * @final since Symfony 4.4
  */
 class PdoCaster
 {
-    private static $pdoAttributes = [
+    private const PDO_ATTRIBUTES = [
         'CASE' => [
             \PDO::CASE_LOWER => 'LOWER',
             \PDO::CASE_NATURAL => 'NATURAL',
@@ -63,7 +65,7 @@ class PdoCaster
         $errmode = $c->getAttribute(\PDO::ATTR_ERRMODE);
         $c->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
 
-        foreach (self::$pdoAttributes as $k => $v) {
+        foreach (self::PDO_ATTRIBUTES as $k => $v) {
             if (!isset($k[0])) {
                 $k = $v;
                 $v = [];
diff --git a/civicrm/vendor/symfony/var-dumper/Caster/PgSqlCaster.php b/civicrm/vendor/symfony/var-dumper/Caster/PgSqlCaster.php
index fe1f0cc8d9acd10659696ae79eb6421d8115a6b0..3097c5184ce4db6bb7de42e3ed8ac34a868fc5c2 100644
--- a/civicrm/vendor/symfony/var-dumper/Caster/PgSqlCaster.php
+++ b/civicrm/vendor/symfony/var-dumper/Caster/PgSqlCaster.php
@@ -17,10 +17,12 @@ use Symfony\Component\VarDumper\Cloner\Stub;
  * Casts pqsql resources to array representation.
  *
  * @author Nicolas Grekas <p@tchwork.com>
+ *
+ * @final since Symfony 4.4
  */
 class PgSqlCaster
 {
-    private static $paramCodes = [
+    private const PARAM_CODES = [
         'server_encoding',
         'client_encoding',
         'is_superuser',
@@ -33,7 +35,7 @@ class PgSqlCaster
         'standard_conforming_strings',
     ];
 
-    private static $transactionStatus = [
+    private const TRANSACTION_STATUS = [
         \PGSQL_TRANSACTION_IDLE => 'PGSQL_TRANSACTION_IDLE',
         \PGSQL_TRANSACTION_ACTIVE => 'PGSQL_TRANSACTION_ACTIVE',
         \PGSQL_TRANSACTION_INTRANS => 'PGSQL_TRANSACTION_INTRANS',
@@ -41,7 +43,7 @@ class PgSqlCaster
         \PGSQL_TRANSACTION_UNKNOWN => 'PGSQL_TRANSACTION_UNKNOWN',
     ];
 
-    private static $resultStatus = [
+    private const RESULT_STATUS = [
         \PGSQL_EMPTY_QUERY => 'PGSQL_EMPTY_QUERY',
         \PGSQL_COMMAND_OK => 'PGSQL_COMMAND_OK',
         \PGSQL_TUPLES_OK => 'PGSQL_TUPLES_OK',
@@ -52,7 +54,7 @@ class PgSqlCaster
         \PGSQL_FATAL_ERROR => 'PGSQL_FATAL_ERROR',
     ];
 
-    private static $diagCodes = [
+    private const DIAG_CODES = [
         'severity' => \PGSQL_DIAG_SEVERITY,
         'sqlstate' => \PGSQL_DIAG_SQLSTATE,
         'message' => \PGSQL_DIAG_MESSAGE_PRIMARY,
@@ -81,8 +83,8 @@ class PgSqlCaster
         $a['busy'] = pg_connection_busy($link);
 
         $a['transaction'] = pg_transaction_status($link);
-        if (isset(self::$transactionStatus[$a['transaction']])) {
-            $a['transaction'] = new ConstStub(self::$transactionStatus[$a['transaction']], $a['transaction']);
+        if (isset(self::TRANSACTION_STATUS[$a['transaction']])) {
+            $a['transaction'] = new ConstStub(self::TRANSACTION_STATUS[$a['transaction']], $a['transaction']);
         }
 
         $a['pid'] = pg_get_pid($link);
@@ -94,7 +96,7 @@ class PgSqlCaster
         $a['options'] = pg_options($link);
         $a['version'] = pg_version($link);
 
-        foreach (self::$paramCodes as $v) {
+        foreach (self::PARAM_CODES as $v) {
             if (false !== $s = pg_parameter_status($link, $v)) {
                 $a['param'][$v] = $s;
             }
@@ -110,13 +112,13 @@ class PgSqlCaster
     {
         $a['num rows'] = pg_num_rows($result);
         $a['status'] = pg_result_status($result);
-        if (isset(self::$resultStatus[$a['status']])) {
-            $a['status'] = new ConstStub(self::$resultStatus[$a['status']], $a['status']);
+        if (isset(self::RESULT_STATUS[$a['status']])) {
+            $a['status'] = new ConstStub(self::RESULT_STATUS[$a['status']], $a['status']);
         }
         $a['command-completion tag'] = pg_result_status($result, \PGSQL_STATUS_STRING);
 
         if (-1 === $a['num rows']) {
-            foreach (self::$diagCodes as $k => $v) {
+            foreach (self::DIAG_CODES as $k => $v) {
                 $a['error'][$k] = pg_result_error_field($result, $v);
             }
         }
diff --git a/civicrm/vendor/symfony/var-dumper/Caster/ProxyManagerCaster.php b/civicrm/vendor/symfony/var-dumper/Caster/ProxyManagerCaster.php
new file mode 100644
index 0000000000000000000000000000000000000000..ec02f8137ddb7ae2e8d67530730d547655b463e3
--- /dev/null
+++ b/civicrm/vendor/symfony/var-dumper/Caster/ProxyManagerCaster.php
@@ -0,0 +1,33 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Caster;
+
+use ProxyManager\Proxy\ProxyInterface;
+use Symfony\Component\VarDumper\Cloner\Stub;
+
+/**
+ * @author Nicolas Grekas <p@tchwork.com>
+ *
+ * @final since Symfony 4.4
+ */
+class ProxyManagerCaster
+{
+    public static function castProxy(ProxyInterface $c, array $a, Stub $stub, $isNested)
+    {
+        if ($parent = get_parent_class($c)) {
+            $stub->class .= ' - '.$parent;
+        }
+        $stub->class .= '@proxy';
+
+        return $a;
+    }
+}
diff --git a/civicrm/vendor/symfony/var-dumper/Caster/RedisCaster.php b/civicrm/vendor/symfony/var-dumper/Caster/RedisCaster.php
index 1e2fb3991629b68a5413186d704abab0180908ed..bd877cb3eb1dee68982ef131dd315101de49068b 100644
--- a/civicrm/vendor/symfony/var-dumper/Caster/RedisCaster.php
+++ b/civicrm/vendor/symfony/var-dumper/Caster/RedisCaster.php
@@ -17,51 +17,58 @@ use Symfony\Component\VarDumper\Cloner\Stub;
  * Casts Redis class from ext-redis to array representation.
  *
  * @author Nicolas Grekas <p@tchwork.com>
+ *
+ * @final since Symfony 4.4
  */
 class RedisCaster
 {
-    private static $serializer = [
+    private const SERIALIZERS = [
         \Redis::SERIALIZER_NONE => 'NONE',
         \Redis::SERIALIZER_PHP => 'PHP',
         2 => 'IGBINARY', // Optional Redis::SERIALIZER_IGBINARY
     ];
 
+    private const MODES = [
+        \Redis::ATOMIC => 'ATOMIC',
+        \Redis::MULTI => 'MULTI',
+        \Redis::PIPELINE => 'PIPELINE',
+    ];
+
+    private const COMPRESSION_MODES = [
+        0 => 'NONE', // Redis::COMPRESSION_NONE
+        1 => 'LZF',  // Redis::COMPRESSION_LZF
+    ];
+
+    private const FAILOVER_OPTIONS = [
+        \RedisCluster::FAILOVER_NONE => 'NONE',
+        \RedisCluster::FAILOVER_ERROR => 'ERROR',
+        \RedisCluster::FAILOVER_DISTRIBUTE => 'DISTRIBUTE',
+        \RedisCluster::FAILOVER_DISTRIBUTE_SLAVES => 'DISTRIBUTE_SLAVES',
+    ];
+
     public static function castRedis(\Redis $c, array $a, Stub $stub, $isNested)
     {
         $prefix = Caster::PREFIX_VIRTUAL;
 
-        if (\defined('HHVM_VERSION_ID')) {
-            if (isset($a[Caster::PREFIX_PROTECTED.'serializer'])) {
-                $ser = $a[Caster::PREFIX_PROTECTED.'serializer'];
-                $a[Caster::PREFIX_PROTECTED.'serializer'] = isset(self::$serializer[$ser]) ? new ConstStub(self::$serializer[$ser], $ser) : $ser;
-            }
-
-            return $a;
-        }
-
         if (!$connected = $c->isConnected()) {
             return $a + [
                 $prefix.'isConnected' => $connected,
             ];
         }
 
-        $ser = $c->getOption(\Redis::OPT_SERIALIZER);
-        $retry = \defined('Redis::OPT_SCAN') ? $c->getOption(\Redis::OPT_SCAN) : 0;
+        $mode = $c->getMode();
 
         return $a + [
             $prefix.'isConnected' => $connected,
             $prefix.'host' => $c->getHost(),
             $prefix.'port' => $c->getPort(),
             $prefix.'auth' => $c->getAuth(),
+            $prefix.'mode' => isset(self::MODES[$mode]) ? new ConstStub(self::MODES[$mode], $mode) : $mode,
             $prefix.'dbNum' => $c->getDbNum(),
             $prefix.'timeout' => $c->getTimeout(),
+            $prefix.'lastError' => $c->getLastError(),
             $prefix.'persistentId' => $c->getPersistentID(),
-            $prefix.'options' => new EnumStub([
-                'READ_TIMEOUT' => $c->getOption(\Redis::OPT_READ_TIMEOUT),
-                'SERIALIZER' => isset(self::$serializer[$ser]) ? new ConstStub(self::$serializer[$ser], $ser) : $ser,
-                'PREFIX' => $c->getOption(\Redis::OPT_PREFIX),
-                'SCAN' => new ConstStub($retry ? 'RETRY' : 'NORETRY', $retry),
-            ]),
+            $prefix.'options' => self::getRedisOptions($c),
         ];
     }
 
@@ -72,6 +79,74 @@ class RedisCaster
         return $a + [
             $prefix.'hosts' => $c->_hosts(),
             $prefix.'function' => ClassStub::wrapCallable($c->_function()),
+            $prefix.'lastError' => $c->getLastError(),
+            $prefix.'options' => self::getRedisOptions($c),
+        ];
+    }
+
+    public static function castRedisCluster(\RedisCluster $c, array $a, Stub $stub, $isNested)
+    {
+        $prefix = Caster::PREFIX_VIRTUAL;
+        $failover = $c->getOption(\RedisCluster::OPT_SLAVE_FAILOVER);
+
+        $a += [
+            $prefix.'_masters' => $c->_masters(),
+            $prefix.'_redir' => $c->_redir(),
+            $prefix.'mode' => new ConstStub($c->getMode() ? 'MULTI' : 'ATOMIC', $c->getMode()),
+            $prefix.'lastError' => $c->getLastError(),
+            $prefix.'options' => self::getRedisOptions($c, [
+                'SLAVE_FAILOVER' => isset(self::FAILOVER_OPTIONS[$failover]) ? new ConstStub(self::FAILOVER_OPTIONS[$failover], $failover) : $failover,
+            ]),
         ];
+
+        return $a;
+    }
+
+    /**
+     * @param \Redis|\RedisArray|\RedisCluster $redis
+     */
+    private static function getRedisOptions($redis, array $options = []): EnumStub
+    {
+        $serializer = $redis->getOption(\Redis::OPT_SERIALIZER);
+        if (\is_array($serializer)) {
+            foreach ($serializer as &$v) {
+                if (isset(self::SERIALIZERS[$v])) {
+                    $v = new ConstStub(self::SERIALIZERS[$v], $v);
+                }
+            }
+        } elseif (isset(self::SERIALIZERS[$serializer])) {
+            $serializer = new ConstStub(self::SERIALIZERS[$serializer], $serializer);
+        }
+
+        $compression = \defined('Redis::OPT_COMPRESSION') ? $redis->getOption(\Redis::OPT_COMPRESSION) : 0;
+        if (\is_array($compression)) {
+            foreach ($compression as &$v) {
+                if (isset(self::COMPRESSION_MODES[$v])) {
+                    $v = new ConstStub(self::COMPRESSION_MODES[$v], $v);
+                }
+            }
+        } elseif (isset(self::COMPRESSION_MODES[$compression])) {
+            $compression = new ConstStub(self::COMPRESSION_MODES[$compression], $compression);
+        }
+
+        $retry = \defined('Redis::OPT_SCAN') ? $redis->getOption(\Redis::OPT_SCAN) : 0;
+        if (\is_array($retry)) {
+            foreach ($retry as &$v) {
+                $v = new ConstStub($v ? 'RETRY' : 'NORETRY', $v);
+            }
+        } else {
+            $retry = new ConstStub($retry ? 'RETRY' : 'NORETRY', $retry);
+        }
+
+        $options += [
+            'TCP_KEEPALIVE' => \defined('Redis::OPT_TCP_KEEPALIVE') ? $redis->getOption(\Redis::OPT_TCP_KEEPALIVE) : 0,
+            'READ_TIMEOUT' => $redis->getOption(\Redis::OPT_READ_TIMEOUT),
+            'COMPRESSION' => $compression,
+            'SERIALIZER' => $serializer,
+            'PREFIX' => $redis->getOption(\Redis::OPT_PREFIX),
+            'SCAN' => $retry,
+        ];
+
+        return new EnumStub($options);
     }
 }
diff --git a/civicrm/vendor/symfony/var-dumper/Caster/ReflectionCaster.php b/civicrm/vendor/symfony/var-dumper/Caster/ReflectionCaster.php
index f19886172adbf6aafdb1e1d2e508a51d804b5f42..2a74b25f21499a7ef26a0423683decf8326eeec2 100644
--- a/civicrm/vendor/symfony/var-dumper/Caster/ReflectionCaster.php
+++ b/civicrm/vendor/symfony/var-dumper/Caster/ReflectionCaster.php
@@ -17,10 +17,14 @@ use Symfony\Component\VarDumper\Cloner\Stub;
  * Casts Reflector related classes to array representation.
  *
  * @author Nicolas Grekas <p@tchwork.com>
+ *
+ * @final since Symfony 4.4
  */
 class ReflectionCaster
 {
-    private static $extraMap = [
+    public const UNSET_CLOSURE_FILE_INFO = ['Closure' => __CLASS__.'::unsetClosureFileInfo'];
+
+    private const EXTRA_MAP = [
         'docComment' => 'getDocComment',
         'extension' => 'getExtensionName',
         'isDisabled' => 'isDisabled',
@@ -36,44 +40,46 @@ class ReflectionCaster
         $prefix = Caster::PREFIX_VIRTUAL;
         $c = new \ReflectionFunction($c);
 
-        $stub->class = 'Closure'; // HHVM generates unique class names for closures
         $a = static::castFunctionAbstract($c, $a, $stub, $isNested, $filter);
 
-        if (false === strpos($c->name, '{closure}')) {
+        if (!str_contains($c->name, '{closure}')) {
             $stub->class = isset($a[$prefix.'class']) ? $a[$prefix.'class']->value.'::'.$c->name : $c->name;
             unset($a[$prefix.'class']);
         }
+        unset($a[$prefix.'extra']);
 
-        if (isset($a[$prefix.'parameters'])) {
-            foreach ($a[$prefix.'parameters']->value as &$v) {
-                $param = $v;
-                $v = new EnumStub([]);
-                foreach (static::castParameter($param, [], $stub, true) as $k => $param) {
-                    if ("\0" === $k[0]) {
-                        $v->value[substr($k, 3)] = $param;
-                    }
-                }
-                unset($v->value['position'], $v->value['isVariadic'], $v->value['byReference'], $v);
-            }
+        $stub->class .= self::getSignature($a);
+
+        if ($f = $c->getFileName()) {
+            $stub->attr['file'] = $f;
+            $stub->attr['line'] = $c->getStartLine();
         }
 
-        if (!($filter & Caster::EXCLUDE_VERBOSE) && $f = $c->getFileName()) {
+        unset($a[$prefix.'parameters']);
+
+        if ($filter & Caster::EXCLUDE_VERBOSE) {
+            $stub->cut += ($c->getFileName() ? 2 : 0) + \count($a);
+
+            return [];
+        }
+
+        if ($f) {
             $a[$prefix.'file'] = new LinkStub($f, $c->getStartLine());
             $a[$prefix.'line'] = $c->getStartLine().' to '.$c->getEndLine();
         }
 
-        $prefix = Caster::PREFIX_DYNAMIC;
-        unset($a['name'], $a[$prefix.'this'], $a[$prefix.'parameter'], $a[Caster::PREFIX_VIRTUAL.'extra']);
+        return $a;
+    }
+
+    public static function unsetClosureFileInfo(\Closure $c, array $a)
+    {
+        unset($a[Caster::PREFIX_VIRTUAL.'file'], $a[Caster::PREFIX_VIRTUAL.'line']);
 
         return $a;
     }
 
     public static function castGenerator(\Generator $c, array $a, Stub $stub, $isNested)
     {
-        if (!class_exists('ReflectionGenerator', false)) {
-            return $a;
-        }
-
         // Cannot create ReflectionGenerator based on a terminated Generator
         try {
             $reflectionGenerator = new \ReflectionGenerator($c);
@@ -90,11 +96,20 @@ class ReflectionCaster
     {
         $prefix = Caster::PREFIX_VIRTUAL;
 
-        $a += [
-            $prefix.'name' => $c instanceof \ReflectionNamedType ? $c->getName() : (string) $c,
-            $prefix.'allowsNull' => $c->allowsNull(),
-            $prefix.'isBuiltin' => $c->isBuiltin(),
-        ];
+        if ($c instanceof \ReflectionNamedType || \PHP_VERSION_ID < 80000) {
+            $a += [
+                $prefix.'name' => $c instanceof \ReflectionNamedType ? $c->getName() : (string) $c,
+                $prefix.'allowsNull' => $c->allowsNull(),
+                $prefix.'isBuiltin' => $c->isBuiltin(),
+            ];
+        } elseif ($c instanceof \ReflectionUnionType || $c instanceof \ReflectionIntersectionType) {
+            $a[$prefix.'allowsNull'] = $c->allowsNull();
+            self::addMap($a, $c, [
+                'types' => 'getTypes',
+            ]);
+        } else {
+            $a[$prefix.'allowsNull'] = $c->allowsNull();
+        }
 
         return $a;
     }
@@ -108,7 +123,7 @@ class ReflectionCaster
         }
         $function = $c->getFunction();
         $frame = [
-            'class' => isset($function->class) ? $function->class : null,
+            'class' => $function->class ?? null,
             'type' => isset($function->class) ? ($function->isStatic() ? '::' : '->') : null,
             'function' => $function->name,
             'file' => $c->getExecutingFile(),
@@ -119,16 +134,14 @@ class ReflectionCaster
             array_unshift($trace, [
                 'function' => 'yield',
                 'file' => $function->getExecutingFile(),
-                'line' => $function->getExecutingLine() - 1,
+                'line' => $function->getExecutingLine() - (int) (\PHP_VERSION_ID < 80100),
             ]);
             $trace[] = $frame;
             $a[$prefix.'trace'] = new TraceStub($trace, false, 0, -1, -1);
         } else {
             $function = new FrameStub($frame, false, true);
             $function = ExceptionCaster::castFrameStub($function, [], $function, true);
-            $a[$prefix.'executing'] = new EnumStub([
-                "\0~separator= \0".$frame['class'].$frame['type'].$frame['function'].'()' => $function[$prefix.'src'],
-            ]);
+            $a[$prefix.'executing'] = $function[$prefix.'src'];
         }
 
         $a[Caster::PREFIX_VIRTUAL.'closed'] = false;
@@ -179,7 +192,7 @@ class ReflectionCaster
         if (isset($a[$prefix.'returnType'])) {
             $v = $a[$prefix.'returnType'];
             $v = $v instanceof \ReflectionNamedType ? $v->getName() : (string) $v;
-            $a[$prefix.'returnType'] = new ClassStub($a[$prefix.'returnType']->allowsNull() ? '?'.$v : $v, [class_exists($v, false) || interface_exists($v, false) || trait_exists($v, false) ? $v : '', '']);
+            $a[$prefix.'returnType'] = new ClassStub($a[$prefix.'returnType'] instanceof \ReflectionNamedType && $a[$prefix.'returnType']->allowsNull() && 'mixed' !== $v ? '?'.$v : $v, [class_exists($v, false) || interface_exists($v, false) || trait_exists($v, false) ? $v : '', '']);
         }
         if (isset($a[$prefix.'class'])) {
             $a[$prefix.'class'] = new ClassStub($a[$prefix.'class']);
@@ -190,7 +203,7 @@ class ReflectionCaster
 
         foreach ($c->getParameters() as $v) {
             $k = '$'.$v->name;
-            if (method_exists($v, 'isVariadic') && $v->isVariadic()) {
+            if ($v->isVariadic()) {
                 $k = '...'.$k;
             }
             if ($v->isPassedByReference()) {
@@ -202,7 +215,7 @@ class ReflectionCaster
             $a[$prefix.'parameters'] = new EnumStub($a[$prefix.'parameters']);
         }
 
-        if ($v = $c->getStaticVariables()) {
+        if (!($filter & Caster::EXCLUDE_VERBOSE) && $v = $c->getStaticVariables()) {
             foreach ($v as $k => &$v) {
                 if (\is_object($v)) {
                     $a[$prefix.'use']['$'.$k] = new CutStub($v);
@@ -218,9 +231,6 @@ class ReflectionCaster
             self::addExtra($a, $c);
         }
 
-        // Added by HHVM
-        unset($a[Caster::PREFIX_DYNAMIC.'static']);
-
         return $a;
     }
 
@@ -235,9 +245,6 @@ class ReflectionCaster
     {
         $prefix = Caster::PREFIX_VIRTUAL;
 
-        // Added by HHVM
-        unset($a['info']);
-
         self::addMap($a, $c, [
             'position' => 'getPosition',
             'isVariadic' => 'isVariadic',
@@ -245,12 +252,8 @@ class ReflectionCaster
             'allowsNull' => 'allowsNull',
         ]);
 
-        if (method_exists($c, 'getType')) {
-            if ($v = $c->getType()) {
-                $a[$prefix.'typeHint'] = $v instanceof \ReflectionNamedType ? $v->getName() : (string) $v;
-            }
-        } elseif (preg_match('/^(?:[^ ]++ ){4}([a-zA-Z_\x7F-\xFF][^ ]++)/', $c, $v)) {
-            $a[$prefix.'typeHint'] = $v[1];
+        if ($v = $c->getType()) {
+            $a[$prefix.'typeHint'] = $v instanceof \ReflectionNamedType ? $v->getName() : (string) $v;
         }
 
         if (isset($a[$prefix.'typeHint'])) {
@@ -260,18 +263,16 @@ class ReflectionCaster
             unset($a[$prefix.'allowsNull']);
         }
 
-        try {
-            $a[$prefix.'default'] = $v = $c->getDefaultValue();
-            if (method_exists($c, 'isDefaultValueConstant') && $c->isDefaultValueConstant()) {
-                $a[$prefix.'default'] = new ConstStub($c->getDefaultValueConstantName(), $v);
-            }
-            if (null === $v) {
-                unset($a[$prefix.'allowsNull']);
-            }
-        } catch (\ReflectionException $e) {
-            if (isset($a[$prefix.'typeHint']) && $c->allowsNull() && !class_exists('ReflectionNamedType', false)) {
-                $a[$prefix.'default'] = null;
-                unset($a[$prefix.'allowsNull']);
+        if ($c->isOptional()) {
+            try {
+                $a[$prefix.'default'] = $v = $c->getDefaultValue();
+                if ($c->isDefaultValueConstant()) {
+                    $a[$prefix.'default'] = new ConstStub($c->getDefaultValueConstantName(), $v);
+                }
+                if (null === $v) {
+                    unset($a[$prefix.'allowsNull']);
+                }
+            } catch (\ReflectionException $e) {
             }
         }
 
@@ -286,6 +287,13 @@ class ReflectionCaster
         return $a;
     }
 
+    public static function castReference(\ReflectionReference $c, array $a, Stub $stub, $isNested)
+    {
+        $a[Caster::PREFIX_VIRTUAL.'id'] = $c->getId();
+
+        return $a;
+    }
+
     public static function castExtension(\ReflectionExtension $c, array $a, Stub $stub, $isNested)
     {
         self::addMap($a, $c, [
@@ -314,7 +322,59 @@ class ReflectionCaster
         return $a;
     }
 
-    private static function addExtra(&$a, \Reflector $c)
+    public static function getSignature(array $a)
+    {
+        $prefix = Caster::PREFIX_VIRTUAL;
+        $signature = '';
+
+        if (isset($a[$prefix.'parameters'])) {
+            foreach ($a[$prefix.'parameters']->value as $k => $param) {
+                $signature .= ', ';
+                if ($type = $param->getType()) {
+                    if (!$type instanceof \ReflectionNamedType) {
+                        $signature .= $type.' ';
+                    } else {
+                        if (!$param->isOptional() && $param->allowsNull() && 'mixed' !== $type->getName()) {
+                            $signature .= '?';
+                        }
+                        $signature .= substr(strrchr('\\'.$type->getName(), '\\'), 1).' ';
+                    }
+                }
+                $signature .= $k;
+
+                if (!$param->isDefaultValueAvailable()) {
+                    continue;
+                }
+                $v = $param->getDefaultValue();
+                $signature .= ' = ';
+
+                if ($param->isDefaultValueConstant()) {
+                    $signature .= substr(strrchr('\\'.$param->getDefaultValueConstantName(), '\\'), 1);
+                } elseif (null === $v) {
+                    $signature .= 'null';
+                } elseif (\is_array($v)) {
+                    $signature .= $v ? '[…'.\count($v).']' : '[]';
+                } elseif (\is_string($v)) {
+                    $signature .= 10 > \strlen($v) && !str_contains($v, '\\') ? "'{$v}'" : "'…".\strlen($v)."'";
+                } elseif (\is_bool($v)) {
+                    $signature .= $v ? 'true' : 'false';
+                } elseif (\is_object($v)) {
+                    $signature .= 'new '.substr(strrchr('\\'.get_debug_type($v), '\\'), 1);
+                } else {
+                    $signature .= $v;
+                }
+            }
+        }
+        $signature = (empty($a[$prefix.'returnsReference']) ? '' : '&').'('.substr($signature, 2).')';
+
+        if (isset($a[$prefix.'returnType'])) {
+            $signature .= ': '.substr(strrchr('\\'.$a[$prefix.'returnType'], '\\'), 1);
+        }
+
+        return $signature;
+    }
+
+    private static function addExtra(array &$a, \Reflector $c)
     {
         $x = isset($a[Caster::PREFIX_VIRTUAL.'extra']) ? $a[Caster::PREFIX_VIRTUAL.'extra']->value : [];
 
@@ -323,14 +383,14 @@ class ReflectionCaster
             $x['line'] = $c->getStartLine().' to '.$c->getEndLine();
         }
 
-        self::addMap($x, $c, self::$extraMap, '');
+        self::addMap($x, $c, self::EXTRA_MAP, '');
 
         if ($x) {
             $a[Caster::PREFIX_VIRTUAL.'extra'] = new EnumStub($x);
         }
     }
 
-    private static function addMap(&$a, \Reflector $c, $map, $prefix = Caster::PREFIX_VIRTUAL)
+    private static function addMap(array &$a, $c, array $map, string $prefix = Caster::PREFIX_VIRTUAL)
     {
         foreach ($map as $k => $m) {
             if (\PHP_VERSION_ID >= 80000 && 'isDisabled' === $k) {
diff --git a/civicrm/vendor/symfony/var-dumper/Caster/ResourceCaster.php b/civicrm/vendor/symfony/var-dumper/Caster/ResourceCaster.php
index eb11aee1f026412ef309c5362cfd90933e16ef42..a3278a886e0e3bdfea3953aada3c825ddabf99e9 100644
--- a/civicrm/vendor/symfony/var-dumper/Caster/ResourceCaster.php
+++ b/civicrm/vendor/symfony/var-dumper/Caster/ResourceCaster.php
@@ -17,6 +17,8 @@ use Symfony\Component\VarDumper\Cloner\Stub;
  * Casts common resource types to array representation.
  *
  * @author Nicolas Grekas <p@tchwork.com>
+ *
+ * @final since Symfony 4.4
  */
 class ResourceCaster
 {
@@ -46,7 +48,7 @@ class ResourceCaster
     public static function castStream($stream, array $a, Stub $stub, $isNested)
     {
         $a = stream_get_meta_data($stream) + static::castStreamContext($stream, $a, $stub, $isNested);
-        if (isset($a['uri'])) {
+        if ($a['uri'] ?? false) {
             $a['uri'] = new LinkStub($a['uri']);
         }
 
@@ -74,4 +76,30 @@ class ResourceCaster
 
         return $a;
     }
+
+    public static function castOpensslX509($h, array $a, Stub $stub, $isNested)
+    {
+        $stub->cut = -1;
+        $info = openssl_x509_parse($h, false);
+
+        $pin = openssl_pkey_get_public($h);
+        $pin = openssl_pkey_get_details($pin)['key'];
+        $pin = \array_slice(explode("\n", $pin), 1, -2);
+        $pin = base64_decode(implode('', $pin));
+        $pin = base64_encode(hash('sha256', $pin, true));
+
+        $a += [
+            'subject' => new EnumStub(array_intersect_key($info['subject'], ['organizationName' => true, 'commonName' => true])),
+            'issuer' => new EnumStub(array_intersect_key($info['issuer'], ['organizationName' => true, 'commonName' => true])),
+            'expiry' => new ConstStub(date(\DateTime::ISO8601, $info['validTo_time_t']), $info['validTo_time_t']),
+            'fingerprint' => new EnumStub([
+                'md5' => new ConstStub(wordwrap(strtoupper(openssl_x509_fingerprint($h, 'md5')), 2, ':', true)),
+                'sha1' => new ConstStub(wordwrap(strtoupper(openssl_x509_fingerprint($h, 'sha1')), 2, ':', true)),
+                'sha256' => new ConstStub(wordwrap(strtoupper(openssl_x509_fingerprint($h, 'sha256')), 2, ':', true)),
+                'pin-sha256' => new ConstStub($pin),
+            ]),
+        ];
+
+        return $a;
+    }
 }
diff --git a/civicrm/vendor/symfony/var-dumper/Caster/SplCaster.php b/civicrm/vendor/symfony/var-dumper/Caster/SplCaster.php
index 360a1a416eafdb4233f01e8e4b30c0fe473fc2e7..be9d66bdd7a731ac68e2adc0c6531db1894a940b 100644
--- a/civicrm/vendor/symfony/var-dumper/Caster/SplCaster.php
+++ b/civicrm/vendor/symfony/var-dumper/Caster/SplCaster.php
@@ -17,10 +17,12 @@ use Symfony\Component\VarDumper\Cloner\Stub;
  * Casts SPL related classes to array representation.
  *
  * @author Nicolas Grekas <p@tchwork.com>
+ *
+ * @final since Symfony 4.4
  */
 class SplCaster
 {
-    private static $splFileObjectFlags = [
+    private const SPL_FILE_OBJECT_FLAGS = [
         \SplFileObject::DROP_NEW_LINE => 'DROP_NEW_LINE',
         \SplFileObject::READ_AHEAD => 'READ_AHEAD',
         \SplFileObject::SKIP_EMPTY => 'SKIP_EMPTY',
@@ -127,7 +129,7 @@ class SplCaster
             }
         }
 
-        if (isset($a[$prefix.'realPath'])) {
+        if ($a[$prefix.'realPath'] ?? false) {
             $a[$prefix.'realPath'] = new LinkStub($a[$prefix.'realPath']);
         }
 
@@ -167,7 +169,7 @@ class SplCaster
 
         if (isset($a[$prefix.'flags'])) {
             $flagsArray = [];
-            foreach (self::$splFileObjectFlags as $value => $name) {
+            foreach (self::SPL_FILE_OBJECT_FLAGS as $value => $name) {
                 if ($a[$prefix.'flags'] & $value) {
                     $flagsArray[] = $name;
                 }
@@ -210,7 +212,14 @@ class SplCaster
         return $a;
     }
 
-    private static function castSplArray($c, array $a, Stub $stub, $isNested)
+    public static function castWeakReference(\WeakReference $c, array $a, Stub $stub, $isNested)
+    {
+        $a[Caster::PREFIX_VIRTUAL.'object'] = $c->get();
+
+        return $a;
+    }
+
+    private static function castSplArray($c, array $a, Stub $stub, bool $isNested): array
     {
         $prefix = Caster::PREFIX_VIRTUAL;
         $flags = $c->getFlags();
diff --git a/civicrm/vendor/symfony/var-dumper/Caster/StubCaster.php b/civicrm/vendor/symfony/var-dumper/Caster/StubCaster.php
index 9927d42610c18ca0c64dd6a089dcf78f57446727..b6332fb740f79f38ad9785af28c3ae15879edb55 100644
--- a/civicrm/vendor/symfony/var-dumper/Caster/StubCaster.php
+++ b/civicrm/vendor/symfony/var-dumper/Caster/StubCaster.php
@@ -17,6 +17,8 @@ use Symfony\Component\VarDumper\Cloner\Stub;
  * Casts a caster's Stub.
  *
  * @author Nicolas Grekas <p@tchwork.com>
+ *
+ * @final since Symfony 4.4
  */
 class StubCaster
 {
diff --git a/civicrm/vendor/symfony/var-dumper/Caster/SymfonyCaster.php b/civicrm/vendor/symfony/var-dumper/Caster/SymfonyCaster.php
index ae7134f55b2a1e2b9e133859662187e6d582ee6c..06f213ef0fd993b798851c25c22c678fcd181339 100644
--- a/civicrm/vendor/symfony/var-dumper/Caster/SymfonyCaster.php
+++ b/civicrm/vendor/symfony/var-dumper/Caster/SymfonyCaster.php
@@ -14,9 +14,12 @@ namespace Symfony\Component\VarDumper\Caster;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\VarDumper\Cloner\Stub;
 
+/**
+ * @final since Symfony 4.4
+ */
 class SymfonyCaster
 {
-    private static $requestGetters = [
+    private const REQUEST_GETTERS = [
         'pathInfo' => 'getPathInfo',
         'requestUri' => 'getRequestUri',
         'baseUrl' => 'getBaseUrl',
@@ -29,8 +32,9 @@ class SymfonyCaster
     {
         $clone = null;
 
-        foreach (self::$requestGetters as $prop => $getter) {
-            if (null === $a[Caster::PREFIX_PROTECTED.$prop]) {
+        foreach (self::REQUEST_GETTERS as $prop => $getter) {
+            $key = Caster::PREFIX_PROTECTED.$prop;
+            if (\array_key_exists($key, $a) && null === $a[$key]) {
                 if (null === $clone) {
                     $clone = clone $request;
                 }
@@ -40,4 +44,26 @@ class SymfonyCaster
 
         return $a;
     }
+
+    public static function castHttpClient($client, array $a, Stub $stub, $isNested)
+    {
+        $multiKey = sprintf("\0%s\0multi", \get_class($client));
+        if (isset($a[$multiKey])) {
+            $a[$multiKey] = new CutStub($a[$multiKey]);
+        }
+
+        return $a;
+    }
+
+    public static function castHttpClientResponse($response, array $a, Stub $stub, $isNested)
+    {
+        $stub->cut += \count($a);
+        $a = [];
+
+        foreach ($response->getInfo() as $k => $v) {
+            $a[Caster::PREFIX_VIRTUAL.$k] = $v;
+        }
+
+        return $a;
+    }
 }
diff --git a/civicrm/vendor/symfony/var-dumper/Caster/TraceStub.php b/civicrm/vendor/symfony/var-dumper/Caster/TraceStub.php
index 59548acaee61c8dbd93ee8492c4224ea36113186..5eea1c876680f3e8751be231c7d4b27fde4b3e9e 100644
--- a/civicrm/vendor/symfony/var-dumper/Caster/TraceStub.php
+++ b/civicrm/vendor/symfony/var-dumper/Caster/TraceStub.php
@@ -25,7 +25,7 @@ class TraceStub extends Stub
     public $sliceLength;
     public $numberingOffset;
 
-    public function __construct(array $trace, $keepArgs = true, $sliceOffset = 0, $sliceLength = null, $numberingOffset = 0)
+    public function __construct(array $trace, bool $keepArgs = true, int $sliceOffset = 0, int $sliceLength = null, int $numberingOffset = 0)
     {
         $this->value = $trace;
         $this->keepArgs = $keepArgs;
diff --git a/civicrm/vendor/symfony/var-dumper/Caster/UuidCaster.php b/civicrm/vendor/symfony/var-dumper/Caster/UuidCaster.php
new file mode 100644
index 0000000000000000000000000000000000000000..b102774571f3491a485e14ce36f6399c15927e77
--- /dev/null
+++ b/civicrm/vendor/symfony/var-dumper/Caster/UuidCaster.php
@@ -0,0 +1,30 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Caster;
+
+use Ramsey\Uuid\UuidInterface;
+use Symfony\Component\VarDumper\Cloner\Stub;
+
+/**
+ * @author Grégoire Pineau <lyrixx@lyrixx.info>
+ */
+final class UuidCaster
+{
+    public static function castRamseyUuid(UuidInterface $c, array $a, Stub $stub, bool $isNested): array
+    {
+        $a += [
+            Caster::PREFIX_VIRTUAL.'uuid' => (string) $c,
+        ];
+
+        return $a;
+    }
+}
diff --git a/civicrm/vendor/symfony/var-dumper/Caster/XmlReaderCaster.php b/civicrm/vendor/symfony/var-dumper/Caster/XmlReaderCaster.php
index 3ae9ec0ba19a03eda7bbc605b68cf0f780b6ea41..9f5a375b4a13b4dcd59e8b7136522399d50a9538 100644
--- a/civicrm/vendor/symfony/var-dumper/Caster/XmlReaderCaster.php
+++ b/civicrm/vendor/symfony/var-dumper/Caster/XmlReaderCaster.php
@@ -1,4 +1,5 @@
 <?php
+
 /*
  * This file is part of the Symfony package.
  *
@@ -16,10 +17,12 @@ use Symfony\Component\VarDumper\Cloner\Stub;
  * Casts XmlReader class to array representation.
  *
  * @author Baptiste Clavié <clavie.b@gmail.com>
+ *
+ * @final since Symfony 4.4
  */
 class XmlReaderCaster
 {
-    private static $nodeTypes = [
+    private const NODE_TYPES = [
         \XMLReader::NONE => 'NONE',
         \XMLReader::ELEMENT => 'ELEMENT',
         \XMLReader::ATTRIBUTE => 'ATTRIBUTE',
@@ -42,11 +45,27 @@ class XmlReaderCaster
 
     public static function castXmlReader(\XMLReader $reader, array $a, Stub $stub, $isNested)
     {
+        try {
+            $properties = [
+                'LOADDTD' => @$reader->getParserProperty(\XMLReader::LOADDTD),
+                'DEFAULTATTRS' => @$reader->getParserProperty(\XMLReader::DEFAULTATTRS),
+                'VALIDATE' => @$reader->getParserProperty(\XMLReader::VALIDATE),
+                'SUBST_ENTITIES' => @$reader->getParserProperty(\XMLReader::SUBST_ENTITIES),
+            ];
+        } catch (\Error $e) {
+            $properties = [
+                'LOADDTD' => false,
+                'DEFAULTATTRS' => false,
+                'VALIDATE' => false,
+                'SUBST_ENTITIES' => false,
+            ];
+        }
+
         $props = Caster::PREFIX_VIRTUAL.'parserProperties';
         $info = [
             'localName' => $reader->localName,
             'prefix' => $reader->prefix,
-            'nodeType' => new ConstStub(self::$nodeTypes[$reader->nodeType], $reader->nodeType),
+            'nodeType' => new ConstStub(self::NODE_TYPES[$reader->nodeType], $reader->nodeType),
             'depth' => $reader->depth,
             'isDefault' => $reader->isDefault,
             'isEmptyElement' => \XMLReader::NONE === $reader->nodeType ? null : $reader->isEmptyElement,
@@ -55,12 +74,7 @@ class XmlReaderCaster
             'value' => $reader->value,
             'namespaceURI' => $reader->namespaceURI,
             'baseURI' => $reader->baseURI ? new LinkStub($reader->baseURI) : $reader->baseURI,
-            $props => [
-                'LOADDTD' => $reader->getParserProperty(\XMLReader::LOADDTD),
-                'DEFAULTATTRS' => $reader->getParserProperty(\XMLReader::DEFAULTATTRS),
-                'VALIDATE' => $reader->getParserProperty(\XMLReader::VALIDATE),
-                'SUBST_ENTITIES' => $reader->getParserProperty(\XMLReader::SUBST_ENTITIES),
-            ],
+            $props => $properties,
         ];
 
         if ($info[$props] = Caster::filter($info[$props], Caster::EXCLUDE_EMPTY, [], $count)) {
diff --git a/civicrm/vendor/symfony/var-dumper/Caster/XmlResourceCaster.php b/civicrm/vendor/symfony/var-dumper/Caster/XmlResourceCaster.php
index 99c1486483c074a8f2c5b24e210ea52919865bfe..455fc065b8a72de7fdd06dc86637dbcd4c20ce01 100644
--- a/civicrm/vendor/symfony/var-dumper/Caster/XmlResourceCaster.php
+++ b/civicrm/vendor/symfony/var-dumper/Caster/XmlResourceCaster.php
@@ -17,10 +17,12 @@ use Symfony\Component\VarDumper\Cloner\Stub;
  * Casts XML resources to array representation.
  *
  * @author Nicolas Grekas <p@tchwork.com>
+ *
+ * @final since Symfony 4.4
  */
 class XmlResourceCaster
 {
-    private static $xmlErrors = [
+    private const XML_ERRORS = [
         \XML_ERROR_NONE => 'XML_ERROR_NONE',
         \XML_ERROR_NO_MEMORY => 'XML_ERROR_NO_MEMORY',
         \XML_ERROR_SYNTAX => 'XML_ERROR_SYNTAX',
@@ -52,8 +54,8 @@ class XmlResourceCaster
         $a['current_line_number'] = xml_get_current_line_number($h);
         $a['error_code'] = xml_get_error_code($h);
 
-        if (isset(self::$xmlErrors[$a['error_code']])) {
-            $a['error_code'] = new ConstStub(self::$xmlErrors[$a['error_code']], $a['error_code']);
+        if (isset(self::XML_ERRORS[$a['error_code']])) {
+            $a['error_code'] = new ConstStub(self::XML_ERRORS[$a['error_code']], $a['error_code']);
         }
 
         return $a;
diff --git a/civicrm/vendor/symfony/var-dumper/Cloner/AbstractCloner.php b/civicrm/vendor/symfony/var-dumper/Cloner/AbstractCloner.php
index 76b55b478bf70c3ced2150143b17ebd69052ada6..d2e5039b8daf103f07ebba7ea85eccf87160018e 100644
--- a/civicrm/vendor/symfony/var-dumper/Cloner/AbstractCloner.php
+++ b/civicrm/vendor/symfony/var-dumper/Cloner/AbstractCloner.php
@@ -38,6 +38,7 @@ abstract class AbstractCloner implements ClonerInterface
         'ReflectionMethod' => ['Symfony\Component\VarDumper\Caster\ReflectionCaster', 'castMethod'],
         'ReflectionParameter' => ['Symfony\Component\VarDumper\Caster\ReflectionCaster', 'castParameter'],
         'ReflectionProperty' => ['Symfony\Component\VarDumper\Caster\ReflectionCaster', 'castProperty'],
+        'ReflectionReference' => ['Symfony\Component\VarDumper\Caster\ReflectionCaster', 'castReference'],
         'ReflectionExtension' => ['Symfony\Component\VarDumper\Caster\ReflectionCaster', 'castExtension'],
         'ReflectionZendExtension' => ['Symfony\Component\VarDumper\Caster\ReflectionCaster', 'castZendExtension'],
 
@@ -70,18 +71,29 @@ abstract class AbstractCloner implements ClonerInterface
         'DOMProcessingInstruction' => ['Symfony\Component\VarDumper\Caster\DOMCaster', 'castProcessingInstruction'],
         'DOMXPath' => ['Symfony\Component\VarDumper\Caster\DOMCaster', 'castXPath'],
 
-        'XmlReader' => ['Symfony\Component\VarDumper\Caster\XmlReaderCaster', 'castXmlReader'],
+        'XMLReader' => ['Symfony\Component\VarDumper\Caster\XmlReaderCaster', 'castXmlReader'],
 
         'ErrorException' => ['Symfony\Component\VarDumper\Caster\ExceptionCaster', 'castErrorException'],
         'Exception' => ['Symfony\Component\VarDumper\Caster\ExceptionCaster', 'castException'],
         'Error' => ['Symfony\Component\VarDumper\Caster\ExceptionCaster', 'castError'],
         'Symfony\Component\DependencyInjection\ContainerInterface' => ['Symfony\Component\VarDumper\Caster\StubCaster', 'cutInternals'],
+        'Symfony\Component\EventDispatcher\EventDispatcherInterface' => ['Symfony\Component\VarDumper\Caster\StubCaster', 'cutInternals'],
+        'Symfony\Component\HttpClient\CurlHttpClient' => ['Symfony\Component\VarDumper\Caster\SymfonyCaster', 'castHttpClient'],
+        'Symfony\Component\HttpClient\NativeHttpClient' => ['Symfony\Component\VarDumper\Caster\SymfonyCaster', 'castHttpClient'],
+        'Symfony\Component\HttpClient\Response\CurlResponse' => ['Symfony\Component\VarDumper\Caster\SymfonyCaster', 'castHttpClientResponse'],
+        'Symfony\Component\HttpClient\Response\NativeResponse' => ['Symfony\Component\VarDumper\Caster\SymfonyCaster', 'castHttpClientResponse'],
         'Symfony\Component\HttpFoundation\Request' => ['Symfony\Component\VarDumper\Caster\SymfonyCaster', 'castRequest'],
         'Symfony\Component\VarDumper\Exception\ThrowingCasterException' => ['Symfony\Component\VarDumper\Caster\ExceptionCaster', 'castThrowingCasterException'],
         'Symfony\Component\VarDumper\Caster\TraceStub' => ['Symfony\Component\VarDumper\Caster\ExceptionCaster', 'castTraceStub'],
         'Symfony\Component\VarDumper\Caster\FrameStub' => ['Symfony\Component\VarDumper\Caster\ExceptionCaster', 'castFrameStub'],
-        'Symfony\Component\Debug\Exception\SilencedErrorContext' => ['Symfony\Component\VarDumper\Caster\ExceptionCaster', 'castSilencedErrorContext'],
+        'Symfony\Component\VarDumper\Cloner\AbstractCloner' => ['Symfony\Component\VarDumper\Caster\StubCaster', 'cutInternals'],
+        'Symfony\Component\ErrorHandler\Exception\SilencedErrorContext' => ['Symfony\Component\VarDumper\Caster\ExceptionCaster', 'castSilencedErrorContext'],
 
+        'Imagine\Image\ImageInterface' => ['Symfony\Component\VarDumper\Caster\ImagineCaster', 'castImage'],
+
+        'Ramsey\Uuid\UuidInterface' => ['Symfony\Component\VarDumper\Caster\UuidCaster', 'castRamseyUuid'],
+
+        'ProxyManager\Proxy\ProxyInterface' => ['Symfony\Component\VarDumper\Caster\ProxyManagerCaster', 'castProxy'],
         'PHPUnit_Framework_MockObject_MockObject' => ['Symfony\Component\VarDumper\Caster\StubCaster', 'cutInternals'],
         'PHPUnit\Framework\MockObject\MockObject' => ['Symfony\Component\VarDumper\Caster\StubCaster', 'cutInternals'],
         'PHPUnit\Framework\MockObject\Stub' => ['Symfony\Component\VarDumper\Caster\StubCaster', 'cutInternals'],
@@ -106,23 +118,43 @@ abstract class AbstractCloner implements ClonerInterface
         'SplObjectStorage' => ['Symfony\Component\VarDumper\Caster\SplCaster', 'castObjectStorage'],
         'SplPriorityQueue' => ['Symfony\Component\VarDumper\Caster\SplCaster', 'castHeap'],
         'OuterIterator' => ['Symfony\Component\VarDumper\Caster\SplCaster', 'castOuterIterator'],
-
-        'MongoCursorInterface' => ['Symfony\Component\VarDumper\Caster\MongoCaster', 'castCursor'],
+        'WeakReference' => ['Symfony\Component\VarDumper\Caster\SplCaster', 'castWeakReference'],
 
         'Redis' => ['Symfony\Component\VarDumper\Caster\RedisCaster', 'castRedis'],
         'RedisArray' => ['Symfony\Component\VarDumper\Caster\RedisCaster', 'castRedisArray'],
+        'RedisCluster' => ['Symfony\Component\VarDumper\Caster\RedisCaster', 'castRedisCluster'],
 
         'DateTimeInterface' => ['Symfony\Component\VarDumper\Caster\DateCaster', 'castDateTime'],
         'DateInterval' => ['Symfony\Component\VarDumper\Caster\DateCaster', 'castInterval'],
         'DateTimeZone' => ['Symfony\Component\VarDumper\Caster\DateCaster', 'castTimeZone'],
         'DatePeriod' => ['Symfony\Component\VarDumper\Caster\DateCaster', 'castPeriod'],
 
+        'GMP' => ['Symfony\Component\VarDumper\Caster\GmpCaster', 'castGmp'],
+
+        'MessageFormatter' => ['Symfony\Component\VarDumper\Caster\IntlCaster', 'castMessageFormatter'],
+        'NumberFormatter' => ['Symfony\Component\VarDumper\Caster\IntlCaster', 'castNumberFormatter'],
+        'IntlTimeZone' => ['Symfony\Component\VarDumper\Caster\IntlCaster', 'castIntlTimeZone'],
+        'IntlCalendar' => ['Symfony\Component\VarDumper\Caster\IntlCaster', 'castIntlCalendar'],
+        'IntlDateFormatter' => ['Symfony\Component\VarDumper\Caster\IntlCaster', 'castIntlDateFormatter'],
+
+        'Memcached' => ['Symfony\Component\VarDumper\Caster\MemcachedCaster', 'castMemcached'],
+
+        'Ds\Collection' => ['Symfony\Component\VarDumper\Caster\DsCaster', 'castCollection'],
+        'Ds\Map' => ['Symfony\Component\VarDumper\Caster\DsCaster', 'castMap'],
+        'Ds\Pair' => ['Symfony\Component\VarDumper\Caster\DsCaster', 'castPair'],
+        'Symfony\Component\VarDumper\Caster\DsPairStub' => ['Symfony\Component\VarDumper\Caster\DsCaster', 'castPairStub'],
+
+        'mysqli_driver' => ['Symfony\Component\VarDumper\Caster\MysqliCaster', 'castMysqliDriver'],
+
         'CurlHandle' => ['Symfony\Component\VarDumper\Caster\ResourceCaster', 'castCurl'],
         ':curl' => ['Symfony\Component\VarDumper\Caster\ResourceCaster', 'castCurl'],
 
         ':dba' => ['Symfony\Component\VarDumper\Caster\ResourceCaster', 'castDba'],
         ':dba persistent' => ['Symfony\Component\VarDumper\Caster\ResourceCaster', 'castDba'],
+
+        'GdImage' => ['Symfony\Component\VarDumper\Caster\ResourceCaster', 'castGd'],
         ':gd' => ['Symfony\Component\VarDumper\Caster\ResourceCaster', 'castGd'],
+
         ':mysql link' => ['Symfony\Component\VarDumper\Caster\ResourceCaster', 'castMysqlLink'],
         ':pgsql large object' => ['Symfony\Component\VarDumper\Caster\PgSqlCaster', 'castLargeObject'],
         ':pgsql link' => ['Symfony\Component\VarDumper\Caster\PgSqlCaster', 'castLink'],
@@ -130,15 +162,20 @@ abstract class AbstractCloner implements ClonerInterface
         ':pgsql result' => ['Symfony\Component\VarDumper\Caster\PgSqlCaster', 'castResult'],
         ':process' => ['Symfony\Component\VarDumper\Caster\ResourceCaster', 'castProcess'],
         ':stream' => ['Symfony\Component\VarDumper\Caster\ResourceCaster', 'castStream'],
+
+        'OpenSSLCertificate' => ['Symfony\Component\VarDumper\Caster\ResourceCaster', 'castOpensslX509'],
+        ':OpenSSL X.509' => ['Symfony\Component\VarDumper\Caster\ResourceCaster', 'castOpensslX509'],
+
         ':persistent stream' => ['Symfony\Component\VarDumper\Caster\ResourceCaster', 'castStream'],
         ':stream-context' => ['Symfony\Component\VarDumper\Caster\ResourceCaster', 'castStreamContext'],
+
+        'XmlParser' => ['Symfony\Component\VarDumper\Caster\XmlResourceCaster', 'castXml'],
         ':xml' => ['Symfony\Component\VarDumper\Caster\XmlResourceCaster', 'castXml'],
     ];
 
     protected $maxItems = 2500;
     protected $maxString = -1;
     protected $minDepth = 1;
-    protected $useExt;
 
     private $casters = [];
     private $prevErrorHandler;
@@ -156,7 +193,6 @@ abstract class AbstractCloner implements ClonerInterface
             $casters = static::$defaultCasters;
         }
         $this->addCasters($casters);
-        $this->useExt = \extension_loaded('symfony_debug');
     }
 
     /**
@@ -172,7 +208,7 @@ abstract class AbstractCloner implements ClonerInterface
     public function addCasters(array $casters)
     {
         foreach ($casters as $type => $callback) {
-            $this->casters[strtolower($type)][] = \is_string($callback) && false !== strpos($callback, '::') ? explode('::', $callback, 2) : $callback;
+            $this->casters[$type][] = $callback;
         }
     }
 
@@ -224,7 +260,7 @@ abstract class AbstractCloner implements ClonerInterface
             }
 
             if ($this->prevErrorHandler) {
-                return \call_user_func($this->prevErrorHandler, $type, $msg, $file, $line, $context);
+                return ($this->prevErrorHandler)($type, $msg, $file, $line, $context);
             }
 
             return false;
@@ -257,7 +293,6 @@ abstract class AbstractCloner implements ClonerInterface
     /**
      * Casts an object to an array representation.
      *
-     * @param Stub $stub     The Stub for the casted object
      * @param bool $isNested True if the object is nested in the dumped structure
      *
      * @return array The object casted as array
@@ -267,29 +302,36 @@ abstract class AbstractCloner implements ClonerInterface
         $obj = $stub->value;
         $class = $stub->class;
 
-        if ((\PHP_VERSION_ID >= 80000 || (isset($class[15]) && "\0" === $class[15])) && false !== strpos($class, "@anonymous\0")) {
-            $stub->class = \PHP_VERSION_ID < 80000 ? (get_parent_class($class) ?: key(class_implements($class)) ?: 'class').'@anonymous' : get_debug_type($obj);
+        if (\PHP_VERSION_ID < 80000 ? "\0" === ($class[15] ?? null) : str_contains($class, "@anonymous\0")) {
+            $stub->class = get_debug_type($obj);
         }
         if (isset($this->classInfo[$class])) {
-            list($i, $parents, $hasDebugInfo) = $this->classInfo[$class];
+            [$i, $parents, $hasDebugInfo, $fileInfo] = $this->classInfo[$class];
         } else {
             $i = 2;
-            $parents = [strtolower($class)];
+            $parents = [$class];
             $hasDebugInfo = method_exists($class, '__debugInfo');
 
             foreach (class_parents($class) as $p) {
-                $parents[] = strtolower($p);
+                $parents[] = $p;
                 ++$i;
             }
             foreach (class_implements($class) as $p) {
-                $parents[] = strtolower($p);
+                $parents[] = $p;
                 ++$i;
             }
             $parents[] = '*';
 
-            $this->classInfo[$class] = [$i, $parents, $hasDebugInfo];
+            $r = new \ReflectionClass($class);
+            $fileInfo = $r->isInternal() || $r->isSubclassOf(Stub::class) ? [] : [
+                'file' => $r->getFileName(),
+                'line' => $r->getStartLine(),
+            ];
+
+            $this->classInfo[$class] = [$i, $parents, $hasDebugInfo, $fileInfo];
         }
 
+        $stub->attr += $fileInfo;
         $a = Caster::castObject($obj, $class, $hasDebugInfo, $stub->class);
 
         try {
@@ -310,7 +352,6 @@ abstract class AbstractCloner implements ClonerInterface
     /**
      * Casts a resource to an array representation.
      *
-     * @param Stub $stub     The Stub for the casted resource
      * @param bool $isNested True if the object is nested in the dumped structure
      *
      * @return array The resource casted as array
diff --git a/civicrm/vendor/symfony/var-dumper/Cloner/Cursor.php b/civicrm/vendor/symfony/var-dumper/Cloner/Cursor.php
index 5b0542f6c20cefdad75c7a93f483bce546a85819..1fd796d675008c69d9163f514bad771d3345dfeb 100644
--- a/civicrm/vendor/symfony/var-dumper/Cloner/Cursor.php
+++ b/civicrm/vendor/symfony/var-dumper/Cloner/Cursor.php
@@ -18,10 +18,10 @@ namespace Symfony\Component\VarDumper\Cloner;
  */
 class Cursor
 {
-    const HASH_INDEXED = Stub::ARRAY_INDEXED;
-    const HASH_ASSOC = Stub::ARRAY_ASSOC;
-    const HASH_OBJECT = Stub::TYPE_OBJECT;
-    const HASH_RESOURCE = Stub::TYPE_RESOURCE;
+    public const HASH_INDEXED = Stub::ARRAY_INDEXED;
+    public const HASH_ASSOC = Stub::ARRAY_ASSOC;
+    public const HASH_OBJECT = Stub::TYPE_OBJECT;
+    public const HASH_RESOURCE = Stub::TYPE_RESOURCE;
 
     public $depth = 0;
     public $refIndex = 0;
diff --git a/civicrm/vendor/symfony/var-dumper/Cloner/Data.php b/civicrm/vendor/symfony/var-dumper/Cloner/Data.php
index 3973720794d94e2a9ad2c0b36348899470418002..8f621b12a76273afc94dcdadcfb14f5d69c875ad 100644
--- a/civicrm/vendor/symfony/var-dumper/Cloner/Data.php
+++ b/civicrm/vendor/symfony/var-dumper/Cloner/Data.php
@@ -12,6 +12,7 @@
 namespace Symfony\Component\VarDumper\Cloner;
 
 use Symfony\Component\VarDumper\Caster\Caster;
+use Symfony\Component\VarDumper\Dumper\ContextProvider\SourceContextProvider;
 
 /**
  * @author Nicolas Grekas <p@tchwork.com>
@@ -24,6 +25,7 @@ class Data implements \ArrayAccess, \Countable, \IteratorAggregate
     private $maxDepth = 20;
     private $maxItemsPerDepth = -1;
     private $useRefHandles = -1;
+    private $context = [];
 
     /**
      * @param array $data An array as returned by ClonerInterface::cloneVar()
@@ -106,20 +108,26 @@ class Data implements \ArrayAccess, \Countable, \IteratorAggregate
         return $children;
     }
 
+    /**
+     * @return int
+     */
+    #[\ReturnTypeWillChange]
     public function count()
     {
         return \count($this->getValue());
     }
 
+    /**
+     * @return \Traversable
+     */
+    #[\ReturnTypeWillChange]
     public function getIterator()
     {
         if (!\is_array($value = $this->getValue())) {
             throw new \LogicException(sprintf('"%s" object holds non-iterable type "%s".', self::class, \gettype($value)));
         }
 
-        foreach ($value as $k => $v) {
-            yield $k => $v;
-        }
+        yield from $value;
     }
 
     public function __get($key)
@@ -133,31 +141,53 @@ class Data implements \ArrayAccess, \Countable, \IteratorAggregate
         return null;
     }
 
+    /**
+     * @return bool
+     */
     public function __isset($key)
     {
         return null !== $this->seek($key);
     }
 
+    /**
+     * @return bool
+     */
+    #[\ReturnTypeWillChange]
     public function offsetExists($key)
     {
         return $this->__isset($key);
     }
 
+    /**
+     * @return mixed
+     */
+    #[\ReturnTypeWillChange]
     public function offsetGet($key)
     {
         return $this->__get($key);
     }
 
+    /**
+     * @return void
+     */
+    #[\ReturnTypeWillChange]
     public function offsetSet($key, $value)
     {
         throw new \BadMethodCallException(self::class.' objects are immutable.');
     }
 
+    /**
+     * @return void
+     */
+    #[\ReturnTypeWillChange]
     public function offsetUnset($key)
     {
         throw new \BadMethodCallException(self::class.' objects are immutable.');
     }
 
+    /**
+     * @return string
+     */
     public function __toString()
     {
         $value = $this->getValue();
@@ -169,18 +199,6 @@ class Data implements \ArrayAccess, \Countable, \IteratorAggregate
         return sprintf('%s (count=%d)', $this->getType(), \count($value));
     }
 
-    /**
-     * @return array The raw data structure
-     *
-     * @deprecated since version 3.3. Use array or object access instead.
-     */
-    public function getRawData()
-    {
-        @trigger_error(sprintf('The "%s()" method is deprecated since Symfony 3.3 and will be removed in 4.0. Use the array or object access instead.', __METHOD__));
-
-        return $this->data;
-    }
-
     /**
      * Returns a depth limited clone of $this.
      *
@@ -226,6 +244,17 @@ class Data implements \ArrayAccess, \Countable, \IteratorAggregate
         return $data;
     }
 
+    /**
+     * @return static
+     */
+    public function withContext(array $context)
+    {
+        $data = clone $this;
+        $data->context = $context;
+
+        return $data;
+    }
+
     /**
      * Seeks to a specific key in nested data structures.
      *
@@ -280,18 +309,26 @@ class Data implements \ArrayAccess, \Countable, \IteratorAggregate
     public function dump(DumperInterface $dumper)
     {
         $refs = [0];
-        $this->dumpItem($dumper, new Cursor(), $refs, $this->data[$this->position][$this->key]);
+        $cursor = new Cursor();
+
+        if ($cursor->attr = $this->context[SourceContextProvider::class] ?? []) {
+            $cursor->attr['if_links'] = true;
+            $cursor->hashType = -1;
+            $dumper->dumpScalar($cursor, 'default', '^');
+            $cursor->attr = ['if_links' => true];
+            $dumper->dumpScalar($cursor, 'default', ' ');
+            $cursor->hashType = 0;
+        }
+
+        $this->dumpItem($dumper, $cursor, $refs, $this->data[$this->position][$this->key]);
     }
 
     /**
      * Depth-first dumping of items.
      *
-     * @param DumperInterface $dumper The dumper being used for dumping
-     * @param Cursor          $cursor A cursor used for tracking dumper state position
-     * @param array           &$refs  A map of all references discovered while dumping
-     * @param mixed           $item   A Stub object or the original value being dumped
+     * @param mixed $item A Stub object or the original value being dumped
      */
-    private function dumpItem($dumper, $cursor, &$refs, $item)
+    private function dumpItem(DumperInterface $dumper, Cursor $cursor, array &$refs, $item)
     {
         $cursor->refIndex = 0;
         $cursor->softRefTo = $cursor->softRefHandle = $cursor->softRefCount = 0;
@@ -313,7 +350,7 @@ class Data implements \ArrayAccess, \Countable, \IteratorAggregate
                 }
                 $cursor->hardRefTo = $refs[$r];
                 $cursor->hardRefHandle = $this->useRefHandles & $item->handle;
-                $cursor->hardRefCount = $item->refCount;
+                $cursor->hardRefCount = 0 < $item->handle ? $item->refCount : 0;
             }
             $cursor->attr = $item->attr;
             $type = $item->class ?: \gettype($item->value);
@@ -389,17 +426,9 @@ class Data implements \ArrayAccess, \Countable, \IteratorAggregate
     /**
      * Dumps children of hash structures.
      *
-     * @param DumperInterface $dumper
-     * @param Cursor          $parentCursor The cursor of the parent hash
-     * @param array           &$refs        A map of all references discovered while dumping
-     * @param array           $children     The children to dump
-     * @param int             $hashCut      The number of items removed from the original hash
-     * @param string          $hashType     A Cursor::HASH_* const
-     * @param bool            $dumpKeys     Whether keys should be dumped or not
-     *
      * @return int The final number of removed items
      */
-    private function dumpChildren($dumper, $parentCursor, &$refs, $children, $hashCut, $hashType, $dumpKeys)
+    private function dumpChildren(DumperInterface $dumper, Cursor $parentCursor, array &$refs, array $children, int $hashCut, int $hashType, bool $dumpKeys): int
     {
         $cursor = clone $parentCursor;
         ++$cursor->depth;
diff --git a/civicrm/vendor/symfony/var-dumper/Cloner/DumperInterface.php b/civicrm/vendor/symfony/var-dumper/Cloner/DumperInterface.php
index 912bb5213975936ee2cdcd258f4b3886ae54098b..ec8ef2727894d02cc9245a862a3c26db6ba5f29e 100644
--- a/civicrm/vendor/symfony/var-dumper/Cloner/DumperInterface.php
+++ b/civicrm/vendor/symfony/var-dumper/Cloner/DumperInterface.php
@@ -21,26 +21,23 @@ interface DumperInterface
     /**
      * Dumps a scalar value.
      *
-     * @param Cursor                $cursor The Cursor position in the dump
-     * @param string                $type   The PHP type of the value being dumped
-     * @param string|int|float|bool $value  The scalar value being dumped
+     * @param string                $type  The PHP type of the value being dumped
+     * @param string|int|float|bool $value The scalar value being dumped
      */
     public function dumpScalar(Cursor $cursor, $type, $value);
 
     /**
      * Dumps a string.
      *
-     * @param Cursor $cursor The Cursor position in the dump
-     * @param string $str    The string being dumped
-     * @param bool   $bin    Whether $str is UTF-8 or binary encoded
-     * @param int    $cut    The number of characters $str has been cut by
+     * @param string $str The string being dumped
+     * @param bool   $bin Whether $str is UTF-8 or binary encoded
+     * @param int    $cut The number of characters $str has been cut by
      */
     public function dumpString(Cursor $cursor, $str, $bin, $cut);
 
     /**
      * Dumps while entering an hash.
      *
-     * @param Cursor     $cursor   The Cursor position in the dump
      * @param int        $type     A Cursor::HASH_* const for the type of hash
      * @param string|int $class    The object class, resource type or array count
      * @param bool       $hasChild When the dump of the hash has child item
@@ -50,7 +47,6 @@ interface DumperInterface
     /**
      * Dumps while leaving an hash.
      *
-     * @param Cursor     $cursor   The Cursor position in the dump
      * @param int        $type     A Cursor::HASH_* const for the type of hash
      * @param string|int $class    The object class, resource type or array count
      * @param bool       $hasChild When the dump of the hash has child item
diff --git a/civicrm/vendor/symfony/var-dumper/Cloner/Stub.php b/civicrm/vendor/symfony/var-dumper/Cloner/Stub.php
index a56120ce363112a44d8d1d48154407d2f083a5a3..073c56efbd4c38610ab4e319939aab5e2fcc1688 100644
--- a/civicrm/vendor/symfony/var-dumper/Cloner/Stub.php
+++ b/civicrm/vendor/symfony/var-dumper/Cloner/Stub.php
@@ -18,17 +18,17 @@ namespace Symfony\Component\VarDumper\Cloner;
  */
 class Stub
 {
-    const TYPE_REF = 1;
-    const TYPE_STRING = 2;
-    const TYPE_ARRAY = 3;
-    const TYPE_OBJECT = 4;
-    const TYPE_RESOURCE = 5;
+    public const TYPE_REF = 1;
+    public const TYPE_STRING = 2;
+    public const TYPE_ARRAY = 3;
+    public const TYPE_OBJECT = 4;
+    public const TYPE_RESOURCE = 5;
 
-    const STRING_BINARY = 1;
-    const STRING_UTF8 = 2;
+    public const STRING_BINARY = 1;
+    public const STRING_UTF8 = 2;
 
-    const ARRAY_ASSOC = 1;
-    const ARRAY_INDEXED = 2;
+    public const ARRAY_ASSOC = 1;
+    public const ARRAY_INDEXED = 2;
 
     public $type = self::TYPE_REF;
     public $class = '';
@@ -44,7 +44,7 @@ class Stub
     /**
      * @internal
      */
-    public function __sleep()
+    public function __sleep(): array
     {
         $properties = [];
 
diff --git a/civicrm/vendor/symfony/var-dumper/Cloner/VarCloner.php b/civicrm/vendor/symfony/var-dumper/Cloner/VarCloner.php
index 8c4221220ebde2bdd0297d54bb7bd6c217a4e5dc..cd6e7dcab4804f7f80cf4bdc3194c4d8185fa7ba 100644
--- a/civicrm/vendor/symfony/var-dumper/Cloner/VarCloner.php
+++ b/civicrm/vendor/symfony/var-dumper/Cloner/VarCloner.php
@@ -17,8 +17,6 @@ namespace Symfony\Component\VarDumper\Cloner;
 class VarCloner extends AbstractCloner
 {
     private static $gid;
-    private static $hashMask = 0;
-    private static $hashOffset = 0;
     private static $arrayCache = [];
 
     /**
@@ -31,11 +29,11 @@ class VarCloner extends AbstractCloner
         $refsCounter = 0;               // Hard references counter
         $queue = [[$var]];    // This breadth-first queue is the return value
         $indexedArrays = [];       // Map of queue indexes that hold numerically indexed arrays
-        $hardRefs = [];            // Map of original zval hashes to stub objects
+        $hardRefs = [];            // Map of original zval ids to stub objects
         $objRefs = [];             // Map of original object handles to their stub object counterpart
         $objects = [];             // Keep a ref to objects to ensure their handle cannot be reused while cloning
         $resRefs = [];             // Map of original resource handles to their stub object counterpart
-        $values = [];              // Map of stub objects' hashes to original values
+        $values = [];              // Map of stub objects' ids to original values
         $maxItems = $this->maxItems;
         $maxString = $this->maxString;
         $minDepth = $this->minDepth;
@@ -47,13 +45,9 @@ class VarCloner extends AbstractCloner
         $stub = null;                   // Stub capturing the main properties of an original item value
                                         // or null if the original value is used directly
 
-        if (!self::$hashMask) {
-            self::initHashMask();
-            self::$gid = md5(dechex(self::$hashMask)); // Unique string used to detect the special $GLOBALS variable
+        if (!$gid = self::$gid) {
+            $gid = self::$gid = md5(random_bytes(6)); // Unique string used to detect the special $GLOBALS variable
         }
-        $gid = self::$gid;
-        $hashMask = self::$hashMask;
-        $hashOffset = self::$hashOffset;
         $arrayStub = new Stub();
         $arrayStub->type = Stub::TYPE_ARRAY;
         $fromObjCast = false;
@@ -88,29 +82,39 @@ class VarCloner extends AbstractCloner
                 // $v is the original value or a stub object in case of hard references
 
                 if (\PHP_VERSION_ID >= 70400) {
-                    $zvalIsRef = null !== \ReflectionReference::fromArrayElement($vals, $k);
+                    $zvalRef = ($r = \ReflectionReference::fromArrayElement($vals, $k)) ? $r->getId() : null;
                 } else {
                     $refs[$k] = $cookie;
-                    $zvalIsRef = $vals[$k] === $cookie;
+                    $zvalRef = $vals[$k] === $cookie;
                 }
 
-                if ($zvalIsRef) {
+                if ($zvalRef) {
                     $vals[$k] = &$stub;         // Break hard references to make $queue completely
                     unset($stub);               // independent from the original structure
-                    if ($v instanceof Stub && isset($hardRefs[spl_object_hash($v)])) {
-                        $vals[$k] = $refs[$k] = $v;
+                    if (\PHP_VERSION_ID >= 70400 ? null !== $vals[$k] = $hardRefs[$zvalRef] ?? null : $v instanceof Stub && isset($hardRefs[spl_object_id($v)])) {
+                        if (\PHP_VERSION_ID >= 70400) {
+                            $v = $vals[$k];
+                        } else {
+                            $refs[$k] = $vals[$k] = $v;
+                        }
                         if ($v->value instanceof Stub && (Stub::TYPE_OBJECT === $v->value->type || Stub::TYPE_RESOURCE === $v->value->type)) {
                             ++$v->value->refCount;
                         }
                         ++$v->refCount;
                         continue;
                     }
-                    $refs[$k] = $vals[$k] = new Stub();
-                    $refs[$k]->value = $v;
-                    $h = spl_object_hash($refs[$k]);
-                    $hardRefs[$h] = &$refs[$k];
-                    $values[$h] = $v;
+                    $vals[$k] = new Stub();
+                    $vals[$k]->value = $v;
                     $vals[$k]->handle = ++$refsCounter;
+
+                    if (\PHP_VERSION_ID >= 70400) {
+                        $hardRefs[$zvalRef] = $vals[$k];
+                    } else {
+                        $refs[$k] = $vals[$k];
+                        $h = spl_object_id($refs[$k]);
+                        $hardRefs[$h] = &$refs[$k];
+                        $values[$h] = $v;
+                    }
                 }
                 // Create $stub when the original value $v can not be used directly
                 // If $v is a nested structure, put that structure in array $a
@@ -165,13 +169,24 @@ class VarCloner extends AbstractCloner
                         if (Stub::ARRAY_ASSOC === $stub->class) {
                             // Copies of $GLOBALS have very strange behavior,
                             // let's detect them with some black magic
-                            $a[$gid] = true;
-
-                            // Happens with copies of $GLOBALS
-                            if (isset($v[$gid])) {
+                            if (\PHP_VERSION_ID < 80100 && ($a[$gid] = true) && isset($v[$gid])) {
                                 unset($v[$gid]);
                                 $a = [];
                                 foreach ($v as $gk => &$gv) {
+                                    if ($v === $gv && (\PHP_VERSION_ID < 70400 || !isset($hardRefs[\ReflectionReference::fromArrayElement($v, $gk)->getId()]))) {
+                                        unset($v);
+                                        $v = new Stub();
+                                        $v->value = [$v->cut = \count($gv), Stub::TYPE_ARRAY => 0];
+                                        $v->handle = -1;
+                                        if (\PHP_VERSION_ID >= 70400) {
+                                            $gv = &$a[$gk];
+                                            $hardRefs[\ReflectionReference::fromArrayElement($a, $gk)->getId()] = &$gv;
+                                        } else {
+                                            $gv = &$hardRefs[spl_object_id($v)];
+                                        }
+                                        $gv = $v;
+                                    }
+
                                     $a[$gk] = &$gv;
                                 }
                                 unset($gv);
@@ -185,7 +200,7 @@ class VarCloner extends AbstractCloner
 
                     case \is_object($v):
                     case $v instanceof \__PHP_Incomplete_Class:
-                        if (empty($objRefs[$h = $hashMask ^ hexdec(substr(spl_object_hash($v), $hashOffset, \PHP_INT_SIZE))])) {
+                        if (empty($objRefs[$h = spl_object_id($v)])) {
                             $stub = new Stub();
                             $stub->type = Stub::TYPE_OBJECT;
                             $stub->class = \get_class($v);
@@ -196,8 +211,7 @@ class VarCloner extends AbstractCloner
                                 if (Stub::TYPE_OBJECT !== $stub->type || null === $stub->value) {
                                     break;
                                 }
-                                $h = $hashMask ^ hexdec(substr(spl_object_hash($stub->value), $hashOffset, \PHP_INT_SIZE));
-                                $stub->handle = $h;
+                                $stub->handle = $h = spl_object_id($stub->value);
                             }
                             $stub->value = null;
                             if (0 <= $maxItems && $maxItems <= $pos && $minimumDepthReached) {
@@ -271,10 +285,12 @@ class VarCloner extends AbstractCloner
                     }
                 }
 
-                if ($zvalIsRef) {
-                    $refs[$k]->value = $stub;
-                } else {
+                if (!$zvalRef) {
                     $vals[$k] = $stub;
+                } elseif (\PHP_VERSION_ID >= 70400) {
+                    $hardRefs[$zvalRef]->value = $stub;
+                } else {
+                    $refs[$k]->value = $stub;
                 }
             }
 
@@ -305,31 +321,4 @@ class VarCloner extends AbstractCloner
 
         return $queue;
     }
-
-    private static function initHashMask()
-    {
-        $obj = (object) [];
-        self::$hashOffset = 16 - \PHP_INT_SIZE;
-        self::$hashMask = -1;
-
-        if (\defined('HHVM_VERSION')) {
-            self::$hashOffset += 16;
-        } else {
-            // check if we are nested in an output buffering handler to prevent a fatal error with ob_start() below
-            $obFuncs = ['ob_clean', 'ob_end_clean', 'ob_flush', 'ob_end_flush', 'ob_get_contents', 'ob_get_flush'];
-            foreach (debug_backtrace(\DEBUG_BACKTRACE_IGNORE_ARGS) as $frame) {
-                if (isset($frame['function'][0]) && !isset($frame['class']) && 'o' === $frame['function'][0] && \in_array($frame['function'], $obFuncs)) {
-                    $frame['line'] = 0;
-                    break;
-                }
-            }
-            if (!empty($frame['line'])) {
-                ob_start();
-                debug_zval_dump($obj);
-                self::$hashMask = (int) substr(ob_get_clean(), 17);
-            }
-        }
-
-        self::$hashMask ^= hexdec(substr(spl_object_hash($obj), self::$hashOffset, \PHP_INT_SIZE));
-    }
 }
diff --git a/civicrm/vendor/symfony/var-dumper/Command/Descriptor/CliDescriptor.php b/civicrm/vendor/symfony/var-dumper/Command/Descriptor/CliDescriptor.php
new file mode 100644
index 0000000000000000000000000000000000000000..7d9ec0e7ee61447e8a920d6a047d943637f03825
--- /dev/null
+++ b/civicrm/vendor/symfony/var-dumper/Command/Descriptor/CliDescriptor.php
@@ -0,0 +1,88 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Command\Descriptor;
+
+use Symfony\Component\Console\Formatter\OutputFormatterStyle;
+use Symfony\Component\Console\Input\ArrayInput;
+use Symfony\Component\Console\Output\OutputInterface;
+use Symfony\Component\Console\Style\SymfonyStyle;
+use Symfony\Component\VarDumper\Cloner\Data;
+use Symfony\Component\VarDumper\Dumper\CliDumper;
+
+/**
+ * Describe collected data clones for cli output.
+ *
+ * @author Maxime Steinhausser <maxime.steinhausser@gmail.com>
+ *
+ * @final
+ */
+class CliDescriptor implements DumpDescriptorInterface
+{
+    private $dumper;
+    private $lastIdentifier;
+    private $supportsHref;
+
+    public function __construct(CliDumper $dumper)
+    {
+        $this->dumper = $dumper;
+        $this->supportsHref = method_exists(OutputFormatterStyle::class, 'setHref');
+    }
+
+    public function describe(OutputInterface $output, Data $data, array $context, int $clientId): void
+    {
+        $io = $output instanceof SymfonyStyle ? $output : new SymfonyStyle(new ArrayInput([]), $output);
+        $this->dumper->setColors($output->isDecorated());
+
+        $rows = [['date', date('r', (int) $context['timestamp'])]];
+        $lastIdentifier = $this->lastIdentifier;
+        $this->lastIdentifier = $clientId;
+
+        $section = "Received from client #$clientId";
+        if (isset($context['request'])) {
+            $request = $context['request'];
+            $this->lastIdentifier = $request['identifier'];
+            $section = sprintf('%s %s', $request['method'], $request['uri']);
+            if ($controller = $request['controller']) {
+                $rows[] = ['controller', rtrim($this->dumper->dump($controller, true), "\n")];
+            }
+        } elseif (isset($context['cli'])) {
+            $this->lastIdentifier = $context['cli']['identifier'];
+            $section = '$ '.$context['cli']['command_line'];
+        }
+
+        if ($this->lastIdentifier !== $lastIdentifier) {
+            $io->section($section);
+        }
+
+        if (isset($context['source'])) {
+            $source = $context['source'];
+            $sourceInfo = sprintf('%s on line %d', $source['name'], $source['line']);
+            $fileLink = $source['file_link'] ?? null;
+            if ($this->supportsHref && $fileLink) {
+                $sourceInfo = sprintf('<href=%s>%s</>', $fileLink, $sourceInfo);
+            }
+            $rows[] = ['source', $sourceInfo];
+            $file = $source['file_relative'] ?? $source['file'];
+            $rows[] = ['file', $file];
+        }
+
+        $io->table([], $rows);
+
+        if (!$this->supportsHref && isset($fileLink)) {
+            $io->writeln(['<info>Open source in your IDE/browser:</info>', $fileLink]);
+            $io->newLine();
+        }
+
+        $this->dumper->dump($data);
+        $io->newLine();
+    }
+}
diff --git a/civicrm/vendor/symfony/var-dumper/Command/Descriptor/DumpDescriptorInterface.php b/civicrm/vendor/symfony/var-dumper/Command/Descriptor/DumpDescriptorInterface.php
new file mode 100644
index 0000000000000000000000000000000000000000..267d27bfaccf8de6ee717aa4edd596e93ae3677c
--- /dev/null
+++ b/civicrm/vendor/symfony/var-dumper/Command/Descriptor/DumpDescriptorInterface.php
@@ -0,0 +1,23 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Command\Descriptor;
+
+use Symfony\Component\Console\Output\OutputInterface;
+use Symfony\Component\VarDumper\Cloner\Data;
+
+/**
+ * @author Maxime Steinhausser <maxime.steinhausser@gmail.com>
+ */
+interface DumpDescriptorInterface
+{
+    public function describe(OutputInterface $output, Data $data, array $context, int $clientId): void;
+}
diff --git a/civicrm/vendor/symfony/var-dumper/Command/Descriptor/HtmlDescriptor.php b/civicrm/vendor/symfony/var-dumper/Command/Descriptor/HtmlDescriptor.php
new file mode 100644
index 0000000000000000000000000000000000000000..636b61828d1405ef202eb0c6342725fc20642692
--- /dev/null
+++ b/civicrm/vendor/symfony/var-dumper/Command/Descriptor/HtmlDescriptor.php
@@ -0,0 +1,119 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Command\Descriptor;
+
+use Symfony\Component\Console\Output\OutputInterface;
+use Symfony\Component\VarDumper\Cloner\Data;
+use Symfony\Component\VarDumper\Dumper\HtmlDumper;
+
+/**
+ * Describe collected data clones for html output.
+ *
+ * @author Maxime Steinhausser <maxime.steinhausser@gmail.com>
+ *
+ * @final
+ */
+class HtmlDescriptor implements DumpDescriptorInterface
+{
+    private $dumper;
+    private $initialized = false;
+
+    public function __construct(HtmlDumper $dumper)
+    {
+        $this->dumper = $dumper;
+    }
+
+    public function describe(OutputInterface $output, Data $data, array $context, int $clientId): void
+    {
+        if (!$this->initialized) {
+            $styles = file_get_contents(__DIR__.'/../../Resources/css/htmlDescriptor.css');
+            $scripts = file_get_contents(__DIR__.'/../../Resources/js/htmlDescriptor.js');
+            $output->writeln("<style>$styles</style><script>$scripts</script>");
+            $this->initialized = true;
+        }
+
+        $title = '-';
+        if (isset($context['request'])) {
+            $request = $context['request'];
+            $controller = "<span class='dumped-tag'>{$this->dumper->dump($request['controller'], true, ['maxDepth' => 0])}</span>";
+            $title = sprintf('<code>%s</code> <a href="%s">%s</a>', $request['method'], $uri = $request['uri'], $uri);
+            $dedupIdentifier = $request['identifier'];
+        } elseif (isset($context['cli'])) {
+            $title = '<code>$ </code>'.$context['cli']['command_line'];
+            $dedupIdentifier = $context['cli']['identifier'];
+        } else {
+            $dedupIdentifier = uniqid('', true);
+        }
+
+        $sourceDescription = '';
+        if (isset($context['source'])) {
+            $source = $context['source'];
+            $projectDir = $source['project_dir'] ?? null;
+            $sourceDescription = sprintf('%s on line %d', $source['name'], $source['line']);
+            if (isset($source['file_link'])) {
+                $sourceDescription = sprintf('<a href="%s">%s</a>', $source['file_link'], $sourceDescription);
+            }
+        }
+
+        $isoDate = $this->extractDate($context, 'c');
+        $tags = array_filter([
+            'controller' => $controller ?? null,
+            'project dir' => $projectDir ?? null,
+        ]);
+
+        $output->writeln(<<<HTML
+<article data-dedup-id="$dedupIdentifier">
+    <header>
+        <div class="row">
+            <h2 class="col">$title</h2>
+            <time class="col text-small" title="$isoDate" datetime="$isoDate">
+                {$this->extractDate($context)}
+            </time>
+        </div>
+        {$this->renderTags($tags)}
+    </header>
+    <section class="body">
+        <p class="text-small">
+            $sourceDescription
+        </p>
+        {$this->dumper->dump($data, true)}
+    </section>
+</article>
+HTML
+        );
+    }
+
+    private function extractDate(array $context, string $format = 'r'): string
+    {
+        return date($format, (int) $context['timestamp']);
+    }
+
+    private function renderTags(array $tags): string
+    {
+        if (!$tags) {
+            return '';
+        }
+
+        $renderedTags = '';
+        foreach ($tags as $key => $value) {
+            $renderedTags .= sprintf('<li><span class="badge">%s</span>%s</li>', $key, $value);
+        }
+
+        return <<<HTML
+<div class="row">
+    <ul class="tags">
+        $renderedTags
+    </ul>
+</div>
+HTML;
+    }
+}
diff --git a/civicrm/vendor/symfony/var-dumper/Command/ServerDumpCommand.php b/civicrm/vendor/symfony/var-dumper/Command/ServerDumpCommand.php
new file mode 100644
index 0000000000000000000000000000000000000000..b66301b52d21e38904103f48eda8e101c3ed59da
--- /dev/null
+++ b/civicrm/vendor/symfony/var-dumper/Command/ServerDumpCommand.php
@@ -0,0 +1,101 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Command;
+
+use Symfony\Component\Console\Command\Command;
+use Symfony\Component\Console\Exception\InvalidArgumentException;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Input\InputOption;
+use Symfony\Component\Console\Output\OutputInterface;
+use Symfony\Component\Console\Style\SymfonyStyle;
+use Symfony\Component\VarDumper\Cloner\Data;
+use Symfony\Component\VarDumper\Command\Descriptor\CliDescriptor;
+use Symfony\Component\VarDumper\Command\Descriptor\DumpDescriptorInterface;
+use Symfony\Component\VarDumper\Command\Descriptor\HtmlDescriptor;
+use Symfony\Component\VarDumper\Dumper\CliDumper;
+use Symfony\Component\VarDumper\Dumper\HtmlDumper;
+use Symfony\Component\VarDumper\Server\DumpServer;
+
+/**
+ * Starts a dump server to collect and output dumps on a single place with multiple formats support.
+ *
+ * @author Maxime Steinhausser <maxime.steinhausser@gmail.com>
+ *
+ * @final
+ */
+class ServerDumpCommand extends Command
+{
+    protected static $defaultName = 'server:dump';
+
+    private $server;
+
+    /** @var DumpDescriptorInterface[] */
+    private $descriptors;
+
+    public function __construct(DumpServer $server, array $descriptors = [])
+    {
+        $this->server = $server;
+        $this->descriptors = $descriptors + [
+            'cli' => new CliDescriptor(new CliDumper()),
+            'html' => new HtmlDescriptor(new HtmlDumper()),
+        ];
+
+        parent::__construct();
+    }
+
+    protected function configure()
+    {
+        $availableFormats = implode(', ', array_keys($this->descriptors));
+
+        $this
+            ->addOption('format', null, InputOption::VALUE_REQUIRED, sprintf('The output format (%s)', $availableFormats), 'cli')
+            ->setDescription('Start a dump server that collects and displays dumps in a single place')
+            ->setHelp(<<<'EOF'
+<info>%command.name%</info> starts a dump server that collects and displays
+dumps in a single place for debugging you application:
+
+  <info>php %command.full_name%</info>
+
+You can consult dumped data in HTML format in your browser by providing the <comment>--format=html</comment> option
+and redirecting the output to a file:
+
+  <info>php %command.full_name% --format="html" > dump.html</info>
+
+EOF
+            )
+        ;
+    }
+
+    protected function execute(InputInterface $input, OutputInterface $output): int
+    {
+        $io = new SymfonyStyle($input, $output);
+        $format = $input->getOption('format');
+
+        if (!$descriptor = $this->descriptors[$format] ?? null) {
+            throw new InvalidArgumentException(sprintf('Unsupported format "%s".', $format));
+        }
+
+        $errorIo = $io->getErrorStyle();
+        $errorIo->title('Symfony Var Dumper Server');
+
+        $this->server->start();
+
+        $errorIo->success(sprintf('Server listening on %s', $this->server->getHost()));
+        $errorIo->comment('Quit the server with CONTROL-C.');
+
+        $this->server->listen(function (Data $data, array $context, int $clientId) use ($descriptor, $io) {
+            $descriptor->describe($io, $data, $context, $clientId);
+        });
+
+        return 0;
+    }
+}
diff --git a/civicrm/vendor/symfony/var-dumper/Dumper/AbstractDumper.php b/civicrm/vendor/symfony/var-dumper/Dumper/AbstractDumper.php
index 5ea6294f3d1b9b252fdc6704fb6ccb75080d81d5..4185329a098d605ea4fb42b6bb82a75f56c95f7c 100644
--- a/civicrm/vendor/symfony/var-dumper/Dumper/AbstractDumper.php
+++ b/civicrm/vendor/symfony/var-dumper/Dumper/AbstractDumper.php
@@ -21,10 +21,10 @@ use Symfony\Component\VarDumper\Cloner\DumperInterface;
  */
 abstract class AbstractDumper implements DataDumperInterface, DumperInterface
 {
-    const DUMP_LIGHT_ARRAY = 1;
-    const DUMP_STRING_LENGTH = 2;
-    const DUMP_COMMA_SEPARATOR = 4;
-    const DUMP_TRAILING_COMMA = 8;
+    public const DUMP_LIGHT_ARRAY = 1;
+    public const DUMP_STRING_LENGTH = 2;
+    public const DUMP_COMMA_SEPARATOR = 4;
+    public const DUMP_TRAILING_COMMA = 8;
 
     public static $defaultOutput = 'php://output';
 
@@ -42,12 +42,11 @@ abstract class AbstractDumper implements DataDumperInterface, DumperInterface
      * @param string|null                   $charset The default character encoding to use for non-UTF8 strings
      * @param int                           $flags   A bit field of static::DUMP_* constants to fine tune dumps representation
      */
-    public function __construct($output = null, $charset = null, $flags = 0)
+    public function __construct($output = null, string $charset = null, int $flags = 0)
     {
-        $this->flags = (int) $flags;
-        $this->setCharset($charset ?: ini_get('php.output_encoding') ?: ini_get('default_charset') ?: 'UTF-8');
-        $this->decimalPoint = localeconv();
-        $this->decimalPoint = $this->decimalPoint['decimal_point'];
+        $this->flags = $flags;
+        $this->setCharset($charset ?: \ini_get('php.output_encoding') ?: \ini_get('default_charset') ?: 'UTF-8');
+        $this->decimalPoint = \PHP_VERSION_ID >= 80000 ? '.' : localeconv()['decimal_point'];
         $this->setOutput($output ?: static::$defaultOutput);
         if (!$output && \is_string(static::$defaultOutput)) {
             static::$defaultOutput = $this->outputStream;
@@ -63,14 +62,14 @@ abstract class AbstractDumper implements DataDumperInterface, DumperInterface
      */
     public function setOutput($output)
     {
-        $prev = null !== $this->outputStream ? $this->outputStream : $this->lineDumper;
+        $prev = $this->outputStream ?? $this->lineDumper;
 
         if (\is_callable($output)) {
             $this->outputStream = null;
             $this->lineDumper = $output;
         } else {
             if (\is_string($output)) {
-                $output = fopen($output, 'wb');
+                $output = fopen($output, 'w');
             }
             $this->outputStream = $output;
             $this->lineDumper = [$this, 'echoLine'];
@@ -116,22 +115,20 @@ abstract class AbstractDumper implements DataDumperInterface, DumperInterface
     /**
      * Dumps a Data object.
      *
-     * @param Data                               $data   A Data object
      * @param callable|resource|string|true|null $output A line dumper callable, an opened stream, an output path or true to return the dump
      *
      * @return string|null The dump as string when $output is true
      */
     public function dump(Data $data, $output = null)
     {
-        $this->decimalPoint = localeconv();
-        $this->decimalPoint = $this->decimalPoint['decimal_point'];
+        $this->decimalPoint = \PHP_VERSION_ID >= 80000 ? '.' : localeconv()['decimal_point'];
 
         if ($locale = $this->flags & (self::DUMP_COMMA_SEPARATOR | self::DUMP_TRAILING_COMMA) ? setlocale(\LC_NUMERIC, 0) : null) {
             setlocale(\LC_NUMERIC, 'C');
         }
 
         if ($returnDump = true === $output) {
-            $output = fopen('php://memory', 'r+b');
+            $output = fopen('php://memory', 'r+');
         }
         if ($output) {
             $prevOutput = $this->setOutput($output);
@@ -166,7 +163,7 @@ abstract class AbstractDumper implements DataDumperInterface, DumperInterface
      */
     protected function dumpLine($depth)
     {
-        \call_user_func($this->lineDumper, $this->line, $depth, $this->indentPad);
+        ($this->lineDumper)($this->line, $depth, $this->indentPad);
         $this->line = '';
     }
 
diff --git a/civicrm/vendor/symfony/var-dumper/Dumper/CliDumper.php b/civicrm/vendor/symfony/var-dumper/Dumper/CliDumper.php
index 4c48ab7cc82abdf0e8eb965e7fd220314f6fe9c9..e3861cdaf5a4f823563bfa3bcf5efd0037f5686a 100644
--- a/civicrm/vendor/symfony/var-dumper/Dumper/CliDumper.php
+++ b/civicrm/vendor/symfony/var-dumper/Dumper/CliDumper.php
@@ -55,10 +55,16 @@ class CliDumper extends AbstractDumper
     protected $collapseNextHash = false;
     protected $expandNextHash = false;
 
+    private $displayOptions = [
+        'fileLinkFormat' => null,
+    ];
+
+    private $handlesHrefGracefully;
+
     /**
      * {@inheritdoc}
      */
-    public function __construct($output = null, $charset = null, $flags = 0)
+    public function __construct($output = null, string $charset = null, int $flags = 0)
     {
         parent::__construct($output, $charset, $flags);
 
@@ -76,6 +82,8 @@ class CliDumper extends AbstractDumper
                 'index' => '34',
             ]);
         }
+
+        $this->displayOptions['fileLinkFormat'] = \ini_get('xdebug.file_link_format') ?: get_cfg_var('xdebug.file_link_format') ?: 'file://%f#L%l';
     }
 
     /**
@@ -108,6 +116,16 @@ class CliDumper extends AbstractDumper
         $this->styles = $styles + $this->styles;
     }
 
+    /**
+     * Configures display options.
+     *
+     * @param array $displayOptions A map of display options to customize the behavior
+     */
+    public function setDisplayOptions(array $displayOptions)
+    {
+        $this->displayOptions = $displayOptions + $this->displayOptions;
+    }
+
     /**
      * {@inheritdoc}
      */
@@ -136,7 +154,7 @@ class CliDumper extends AbstractDumper
                     case is_nan($value):  $value = 'NAN'; break;
                     default:
                         $value = (string) $value;
-                        if (false === strpos($value, $this->decimalPoint)) {
+                        if (!str_contains($value, $this->decimalPoint)) {
                             $value .= $this->decimalPoint.'0';
                         }
                         break;
@@ -260,6 +278,7 @@ class CliDumper extends AbstractDumper
         }
 
         $this->dumpKey($cursor);
+        $attr = $cursor->attr;
 
         if ($this->collapseNextHash) {
             $cursor->skipChildren = true;
@@ -268,14 +287,14 @@ class CliDumper extends AbstractDumper
 
         $class = $this->utf8Encode($class);
         if (Cursor::HASH_OBJECT === $type) {
-            $prefix = $class && 'stdClass' !== $class ? $this->style('note', $class).' {' : '{';
+            $prefix = $class && 'stdClass' !== $class ? $this->style('note', $class, $attr).(empty($attr['cut_hash']) ? ' {' : '') : '{';
         } elseif (Cursor::HASH_RESOURCE === $type) {
-            $prefix = $this->style('note', $class.' resource').($hasChild ? ' {' : ' ');
+            $prefix = $this->style('note', $class.' resource', $attr).($hasChild ? ' {' : ' ');
         } else {
             $prefix = $class && !(self::DUMP_LIGHT_ARRAY & $this->flags) ? $this->style('note', 'array:'.$class).' [' : '[';
         }
 
-        if ($cursor->softRefCount || 0 < $cursor->softRefHandle) {
+        if (($cursor->softRefCount || 0 < $cursor->softRefHandle) && empty($attr['cut_hash'])) {
             $prefix .= $this->style('ref', (Cursor::HASH_RESOURCE === $type ? '@' : '#').(0 < $cursor->softRefHandle ? $cursor->softRefHandle : $cursor->softRefTo), ['count' => $cursor->softRefCount]);
         } elseif ($cursor->hardRefTo && !$cursor->refIndex && $class) {
             $prefix .= $this->style('ref', '&'.$cursor->hardRefTo, ['count' => $cursor->hardRefCount]);
@@ -295,17 +314,19 @@ class CliDumper extends AbstractDumper
      */
     public function leaveHash(Cursor $cursor, $type, $class, $hasChild, $cut)
     {
-        $this->dumpEllipsis($cursor, $hasChild, $cut);
-        $this->line .= Cursor::HASH_OBJECT === $type ? '}' : (Cursor::HASH_RESOURCE !== $type ? ']' : ($hasChild ? '}' : ''));
+        if (empty($cursor->attr['cut_hash'])) {
+            $this->dumpEllipsis($cursor, $hasChild, $cut);
+            $this->line .= Cursor::HASH_OBJECT === $type ? '}' : (Cursor::HASH_RESOURCE !== $type ? ']' : ($hasChild ? '}' : ''));
+        }
+
         $this->endValue($cursor);
     }
 
     /**
      * Dumps an ellipsis for cut children.
      *
-     * @param Cursor $cursor   The Cursor position in the dump
-     * @param bool   $hasChild When the dump of the hash has child item
-     * @param int    $cut      The number of items the hash has been cut by
+     * @param bool $hasChild When the dump of the hash has child item
+     * @param int  $cut      The number of items the hash has been cut by
      */
     protected function dumpEllipsis(Cursor $cursor, $hasChild, $cut)
     {
@@ -322,8 +343,6 @@ class CliDumper extends AbstractDumper
 
     /**
      * Dumps a key in a hash structure.
-     *
-     * @param Cursor $cursor The Cursor position in the dump
      */
     protected function dumpKey(Cursor $cursor)
     {
@@ -390,7 +409,7 @@ class CliDumper extends AbstractDumper
                             }
                         }
 
-                        $this->line .= $bin.$this->style($style, $key[1], $attr).(isset($attr['separator']) ? $attr['separator'] : ': ');
+                        $this->line .= $bin.$this->style($style, $key[1], $attr).($attr['separator'] ?? ': ');
                     } else {
                         // This case should not happen
                         $this->line .= '-'.$bin.'"'.$this->style('private', $key, ['class' => '']).'": ';
@@ -419,9 +438,14 @@ class CliDumper extends AbstractDumper
             $this->colors = $this->supportsColors();
         }
 
+        if (null === $this->handlesHrefGracefully) {
+            $this->handlesHrefGracefully = 'JetBrains-JediTerm' !== getenv('TERMINAL_EMULATOR')
+                && (!getenv('KONSOLE_VERSION') || (int) getenv('KONSOLE_VERSION') > 201100);
+        }
+
         if (isset($attr['ellipsis'], $attr['ellipsis-type'])) {
             $prefix = substr($value, 0, -$attr['ellipsis']);
-            if ('cli' === \PHP_SAPI && 'path' === $attr['ellipsis-type'] && isset($_SERVER[$pwd = '\\' === \DIRECTORY_SEPARATOR ? 'CD' : 'PWD']) && 0 === strpos($prefix, $_SERVER[$pwd])) {
+            if ('cli' === \PHP_SAPI && 'path' === $attr['ellipsis-type'] && isset($_SERVER[$pwd = '\\' === \DIRECTORY_SEPARATOR ? 'CD' : 'PWD']) && str_starts_with($prefix, $_SERVER[$pwd])) {
                 $prefix = '.'.substr($prefix, \strlen($_SERVER[$pwd]));
             }
             if (!empty($attr['ellipsis-tail'])) {
@@ -431,19 +455,19 @@ class CliDumper extends AbstractDumper
                 $value = substr($value, -$attr['ellipsis']);
             }
 
-            return $this->style('default', $prefix).$this->style($style, $value);
-        }
+            $value = $this->style('default', $prefix).$this->style($style, $value);
 
-        $style = $this->styles[$style];
+            goto href;
+        }
 
         $map = static::$controlCharsMap;
         $startCchr = $this->colors ? "\033[m\033[{$this->styles['default']}m" : '';
-        $endCchr = $this->colors ? "\033[m\033[{$style}m" : '';
+        $endCchr = $this->colors ? "\033[m\033[{$this->styles[$style]}m" : '';
         $value = preg_replace_callback(static::$controlCharsRx, function ($c) use ($map, $startCchr, $endCchr) {
             $s = $startCchr;
             $c = $c[$i = 0];
             do {
-                $s .= isset($map[$c[$i]]) ? $map[$c[$i]] : sprintf('\x%02X', \ord($c[$i]));
+                $s .= $map[$c[$i]] ?? sprintf('\x%02X', \ord($c[$i]));
             } while (isset($c[++$i]));
 
             return $s.$endCchr;
@@ -453,15 +477,31 @@ class CliDumper extends AbstractDumper
             if ($cchrCount && "\033" === $value[0]) {
                 $value = substr($value, \strlen($startCchr));
             } else {
-                $value = "\033[{$style}m".$value;
+                $value = "\033[{$this->styles[$style]}m".$value;
             }
-            if ($cchrCount && $endCchr === substr($value, -\strlen($endCchr))) {
+            if ($cchrCount && str_ends_with($value, $endCchr)) {
                 $value = substr($value, 0, -\strlen($endCchr));
             } else {
                 $value .= "\033[{$this->styles['default']}m";
             }
         }
 
+        href:
+        if ($this->colors && $this->handlesHrefGracefully) {
+            if (isset($attr['file']) && $href = $this->getSourceLink($attr['file'], $attr['line'] ?? 0)) {
+                if ('note' === $style) {
+                    $value .= "\033]8;;{$href}\033\\^\033]8;;\033\\";
+                } else {
+                    $attr['href'] = $href;
+                }
+            }
+            if (isset($attr['href'])) {
+                $value = "\033]8;;{$attr['href']}\033\\{$value}\033]8;;\033\\";
+            }
+        } elseif ($attr['if_links'] ?? false) {
+            return '';
+        }
+
         return $value;
     }
 
@@ -500,7 +540,7 @@ class CliDumper extends AbstractDumper
         }
 
         $h = stream_get_meta_data($this->outputStream) + ['wrapper_type' => null];
-        $h = 'Output' === $h['stream_type'] && 'PHP' === $h['wrapper_type'] ? fopen('php://stdout', 'wb') : $this->outputStream;
+        $h = 'Output' === $h['stream_type'] && 'PHP' === $h['wrapper_type'] ? fopen('php://stdout', 'w') : $this->outputStream;
 
         return static::$defaultColors = $this->hasColorSupport($h);
     }
@@ -518,6 +558,10 @@ class CliDumper extends AbstractDumper
 
     protected function endValue(Cursor $cursor)
     {
+        if (-1 === $cursor->hashType) {
+            return;
+        }
+
         if (Stub::ARRAY_INDEXED === $cursor->hashType || Stub::ARRAY_ASSOC === $cursor->hashType) {
             if (self::DUMP_TRAILING_COMMA & $this->flags && 0 < $cursor->depth) {
                 $this->line .= ',';
@@ -536,15 +580,18 @@ class CliDumper extends AbstractDumper
      * https://github.com/composer/xdebug-handler
      *
      * @param mixed $stream A CLI output stream
-     *
-     * @return bool
      */
-    private function hasColorSupport($stream)
+    private function hasColorSupport($stream): bool
     {
         if (!\is_resource($stream) || 'stream' !== get_resource_type($stream)) {
             return false;
         }
 
+        // Follow https://no-color.org/
+        if (isset($_SERVER['NO_COLOR']) || false !== getenv('NO_COLOR')) {
+            return false;
+        }
+
         if ('Hyper' === getenv('TERM_PROGRAM')) {
             return true;
         }
@@ -576,10 +623,8 @@ class CliDumper extends AbstractDumper
      * Note that this does not check an output stream, but relies on environment
      * variables from known implementations, or a PHP and Windows version that
      * supports true color.
-     *
-     * @return bool
      */
-    private function isWindowsTrueColor()
+    private function isWindowsTrueColor(): bool
     {
         $result = 183 <= getenv('ANSICON_VER')
             || 'ON' === getenv('ConEmuANSI')
@@ -598,4 +643,13 @@ class CliDumper extends AbstractDumper
 
         return $result;
     }
+
+    private function getSourceLink(string $file, int $line)
+    {
+        if ($fmt = $this->displayOptions['fileLinkFormat']) {
+            return \is_string($fmt) ? strtr($fmt, ['%f' => $file, '%l' => $line]) : ($fmt->format($file, $line) ?: 'file://'.$file.'#L'.$line);
+        }
+
+        return false;
+    }
 }
diff --git a/civicrm/vendor/symfony/var-dumper/Dumper/ContextProvider/CliContextProvider.php b/civicrm/vendor/symfony/var-dumper/Dumper/ContextProvider/CliContextProvider.php
new file mode 100644
index 0000000000000000000000000000000000000000..38f878971c53faa168086d7284861cfc2d1785a6
--- /dev/null
+++ b/civicrm/vendor/symfony/var-dumper/Dumper/ContextProvider/CliContextProvider.php
@@ -0,0 +1,32 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Dumper\ContextProvider;
+
+/**
+ * Tries to provide context on CLI.
+ *
+ * @author Maxime Steinhausser <maxime.steinhausser@gmail.com>
+ */
+final class CliContextProvider implements ContextProviderInterface
+{
+    public function getContext(): ?array
+    {
+        if ('cli' !== \PHP_SAPI) {
+            return null;
+        }
+
+        return [
+            'command_line' => $commandLine = implode(' ', $_SERVER['argv'] ?? []),
+            'identifier' => hash('crc32b', $commandLine.$_SERVER['REQUEST_TIME_FLOAT']),
+        ];
+    }
+}
diff --git a/civicrm/vendor/symfony/var-dumper/Dumper/ContextProvider/ContextProviderInterface.php b/civicrm/vendor/symfony/var-dumper/Dumper/ContextProvider/ContextProviderInterface.php
new file mode 100644
index 0000000000000000000000000000000000000000..38ef3b0f18530d938154e5e5cc56cd05b192edd5
--- /dev/null
+++ b/civicrm/vendor/symfony/var-dumper/Dumper/ContextProvider/ContextProviderInterface.php
@@ -0,0 +1,25 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Dumper\ContextProvider;
+
+/**
+ * Interface to provide contextual data about dump data clones sent to a server.
+ *
+ * @author Maxime Steinhausser <maxime.steinhausser@gmail.com>
+ */
+interface ContextProviderInterface
+{
+    /**
+     * @return array|null Context data or null if unable to provide any context
+     */
+    public function getContext(): ?array;
+}
diff --git a/civicrm/vendor/symfony/var-dumper/Dumper/ContextProvider/RequestContextProvider.php b/civicrm/vendor/symfony/var-dumper/Dumper/ContextProvider/RequestContextProvider.php
new file mode 100644
index 0000000000000000000000000000000000000000..3684a47535cfc982e95eb866e6ee20a6818c12b9
--- /dev/null
+++ b/civicrm/vendor/symfony/var-dumper/Dumper/ContextProvider/RequestContextProvider.php
@@ -0,0 +1,51 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Dumper\ContextProvider;
+
+use Symfony\Component\HttpFoundation\RequestStack;
+use Symfony\Component\VarDumper\Caster\ReflectionCaster;
+use Symfony\Component\VarDumper\Cloner\VarCloner;
+
+/**
+ * Tries to provide context from a request.
+ *
+ * @author Maxime Steinhausser <maxime.steinhausser@gmail.com>
+ */
+final class RequestContextProvider implements ContextProviderInterface
+{
+    private $requestStack;
+    private $cloner;
+
+    public function __construct(RequestStack $requestStack)
+    {
+        $this->requestStack = $requestStack;
+        $this->cloner = new VarCloner();
+        $this->cloner->setMaxItems(0);
+        $this->cloner->addCasters(ReflectionCaster::UNSET_CLOSURE_FILE_INFO);
+    }
+
+    public function getContext(): ?array
+    {
+        if (null === $request = $this->requestStack->getCurrentRequest()) {
+            return null;
+        }
+
+        $controller = $request->attributes->get('_controller');
+
+        return [
+            'uri' => $request->getUri(),
+            'method' => $request->getMethod(),
+            'controller' => $controller ? $this->cloner->cloneVar($controller) : $controller,
+            'identifier' => spl_object_hash($request),
+        ];
+    }
+}
diff --git a/civicrm/vendor/symfony/var-dumper/Dumper/ContextProvider/SourceContextProvider.php b/civicrm/vendor/symfony/var-dumper/Dumper/ContextProvider/SourceContextProvider.php
new file mode 100644
index 0000000000000000000000000000000000000000..2e2c8181616a14a74cc659101d78473ddad88ae3
--- /dev/null
+++ b/civicrm/vendor/symfony/var-dumper/Dumper/ContextProvider/SourceContextProvider.php
@@ -0,0 +1,126 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Dumper\ContextProvider;
+
+use Symfony\Component\HttpKernel\Debug\FileLinkFormatter;
+use Symfony\Component\VarDumper\Cloner\VarCloner;
+use Symfony\Component\VarDumper\Dumper\HtmlDumper;
+use Symfony\Component\VarDumper\VarDumper;
+use Twig\Template;
+
+/**
+ * Tries to provide context from sources (class name, file, line, code excerpt, ...).
+ *
+ * @author Nicolas Grekas <p@tchwork.com>
+ * @author Maxime Steinhausser <maxime.steinhausser@gmail.com>
+ */
+final class SourceContextProvider implements ContextProviderInterface
+{
+    private $limit;
+    private $charset;
+    private $projectDir;
+    private $fileLinkFormatter;
+
+    public function __construct(string $charset = null, string $projectDir = null, FileLinkFormatter $fileLinkFormatter = null, int $limit = 9)
+    {
+        $this->charset = $charset;
+        $this->projectDir = $projectDir;
+        $this->fileLinkFormatter = $fileLinkFormatter;
+        $this->limit = $limit;
+    }
+
+    public function getContext(): ?array
+    {
+        $trace = debug_backtrace(\DEBUG_BACKTRACE_PROVIDE_OBJECT | \DEBUG_BACKTRACE_IGNORE_ARGS, $this->limit);
+
+        $file = $trace[1]['file'];
+        $line = $trace[1]['line'];
+        $name = false;
+        $fileExcerpt = false;
+
+        for ($i = 2; $i < $this->limit; ++$i) {
+            if (isset($trace[$i]['class'], $trace[$i]['function'])
+                && 'dump' === $trace[$i]['function']
+                && VarDumper::class === $trace[$i]['class']
+            ) {
+                $file = $trace[$i]['file'] ?? $file;
+                $line = $trace[$i]['line'] ?? $line;
+
+                while (++$i < $this->limit) {
+                    if (isset($trace[$i]['function'], $trace[$i]['file']) && empty($trace[$i]['class']) && !str_starts_with($trace[$i]['function'], 'call_user_func')) {
+                        $file = $trace[$i]['file'];
+                        $line = $trace[$i]['line'];
+
+                        break;
+                    } elseif (isset($trace[$i]['object']) && $trace[$i]['object'] instanceof Template) {
+                        $template = $trace[$i]['object'];
+                        $name = $template->getTemplateName();
+                        $src = method_exists($template, 'getSourceContext') ? $template->getSourceContext()->getCode() : (method_exists($template, 'getSource') ? $template->getSource() : false);
+                        $info = $template->getDebugInfo();
+                        if (isset($info[$trace[$i - 1]['line']])) {
+                            $line = $info[$trace[$i - 1]['line']];
+                            $file = method_exists($template, 'getSourceContext') ? $template->getSourceContext()->getPath() : null;
+
+                            if ($src) {
+                                $src = explode("\n", $src);
+                                $fileExcerpt = [];
+
+                                for ($i = max($line - 3, 1), $max = min($line + 3, \count($src)); $i <= $max; ++$i) {
+                                    $fileExcerpt[] = '<li'.($i === $line ? ' class="selected"' : '').'><code>'.$this->htmlEncode($src[$i - 1]).'</code></li>';
+                                }
+
+                                $fileExcerpt = '<ol start="'.max($line - 3, 1).'">'.implode("\n", $fileExcerpt).'</ol>';
+                            }
+                        }
+                        break;
+                    }
+                }
+                break;
+            }
+        }
+
+        if (false === $name) {
+            $name = str_replace('\\', '/', $file);
+            $name = substr($name, strrpos($name, '/') + 1);
+        }
+
+        $context = ['name' => $name, 'file' => $file, 'line' => $line];
+        $context['file_excerpt'] = $fileExcerpt;
+
+        if (null !== $this->projectDir) {
+            $context['project_dir'] = $this->projectDir;
+            if (str_starts_with($file, $this->projectDir)) {
+                $context['file_relative'] = ltrim(substr($file, \strlen($this->projectDir)), \DIRECTORY_SEPARATOR);
+            }
+        }
+
+        if ($this->fileLinkFormatter && $fileLink = $this->fileLinkFormatter->format($context['file'], $context['line'])) {
+            $context['file_link'] = $fileLink;
+        }
+
+        return $context;
+    }
+
+    private function htmlEncode(string $s): string
+    {
+        $html = '';
+
+        $dumper = new HtmlDumper(function ($line) use (&$html) { $html .= $line; }, $this->charset);
+        $dumper->setDumpHeader('');
+        $dumper->setDumpBoundaries('', '');
+
+        $cloner = new VarCloner();
+        $dumper->dump($cloner->cloneVar($s));
+
+        return substr(strip_tags($html), 1, -1);
+    }
+}
diff --git a/civicrm/vendor/symfony/var-dumper/Dumper/ContextualizedDumper.php b/civicrm/vendor/symfony/var-dumper/Dumper/ContextualizedDumper.php
new file mode 100644
index 0000000000000000000000000000000000000000..76384176ef026ae81c0c6c1378724ea456763716
--- /dev/null
+++ b/civicrm/vendor/symfony/var-dumper/Dumper/ContextualizedDumper.php
@@ -0,0 +1,43 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Dumper;
+
+use Symfony\Component\VarDumper\Cloner\Data;
+use Symfony\Component\VarDumper\Dumper\ContextProvider\ContextProviderInterface;
+
+/**
+ * @author Kévin Thérage <therage.kevin@gmail.com>
+ */
+class ContextualizedDumper implements DataDumperInterface
+{
+    private $wrappedDumper;
+    private $contextProviders;
+
+    /**
+     * @param ContextProviderInterface[] $contextProviders
+     */
+    public function __construct(DataDumperInterface $wrappedDumper, array $contextProviders)
+    {
+        $this->wrappedDumper = $wrappedDumper;
+        $this->contextProviders = $contextProviders;
+    }
+
+    public function dump(Data $data)
+    {
+        $context = [];
+        foreach ($this->contextProviders as $contextProvider) {
+            $context[\get_class($contextProvider)] = $contextProvider->getContext();
+        }
+
+        $this->wrappedDumper->dump($data->withContext($context));
+    }
+}
diff --git a/civicrm/vendor/symfony/var-dumper/Dumper/HtmlDumper.php b/civicrm/vendor/symfony/var-dumper/Dumper/HtmlDumper.php
index ccbdc96f233abae6480943e92a82f6590928ddee..9b57f900eaf08c7734cd65b6b87dd18137b04118 100644
--- a/civicrm/vendor/symfony/var-dumper/Dumper/HtmlDumper.php
+++ b/civicrm/vendor/symfony/var-dumper/Dumper/HtmlDumper.php
@@ -23,6 +23,41 @@ class HtmlDumper extends CliDumper
 {
     public static $defaultOutput = 'php://output';
 
+    protected static $themes = [
+        'dark' => [
+            'default' => 'background-color:#18171B; color:#FF8400; line-height:1.2em; font:12px Menlo, Monaco, Consolas, monospace; word-wrap: break-word; white-space: pre-wrap; position:relative; z-index:99999; word-break: break-all',
+            'num' => 'font-weight:bold; color:#1299DA',
+            'const' => 'font-weight:bold',
+            'str' => 'font-weight:bold; color:#56DB3A',
+            'note' => 'color:#1299DA',
+            'ref' => 'color:#A0A0A0',
+            'public' => 'color:#FFFFFF',
+            'protected' => 'color:#FFFFFF',
+            'private' => 'color:#FFFFFF',
+            'meta' => 'color:#B729D9',
+            'key' => 'color:#56DB3A',
+            'index' => 'color:#1299DA',
+            'ellipsis' => 'color:#FF8400',
+            'ns' => 'user-select:none;',
+        ],
+        'light' => [
+            'default' => 'background:none; color:#CC7832; line-height:1.2em; font:12px Menlo, Monaco, Consolas, monospace; word-wrap: break-word; white-space: pre-wrap; position:relative; z-index:99999; word-break: break-all',
+            'num' => 'font-weight:bold; color:#1299DA',
+            'const' => 'font-weight:bold',
+            'str' => 'font-weight:bold; color:#629755;',
+            'note' => 'color:#6897BB',
+            'ref' => 'color:#6E6E6E',
+            'public' => 'color:#262626',
+            'protected' => 'color:#262626',
+            'private' => 'color:#262626',
+            'meta' => 'color:#B729D9',
+            'key' => 'color:#789339',
+            'index' => 'color:#1299DA',
+            'ellipsis' => 'color:#CC7832',
+            'ns' => 'user-select:none;',
+        ],
+    ];
+
     protected $dumpHeader;
     protected $dumpPrefix = '<pre class=sf-dump id=%s data-indent-pad="%s">';
     protected $dumpSuffix = '</pre><script>Sfdump(%s)</script>';
@@ -30,21 +65,7 @@ class HtmlDumper extends CliDumper
     protected $colors = true;
     protected $headerIsDumped = false;
     protected $lastDepth = -1;
-    protected $styles = [
-        'default' => 'background-color:#18171B; color:#FF8400; line-height:1.2em; font:12px Menlo, Monaco, Consolas, monospace; word-wrap: break-word; white-space: pre-wrap; position:relative; z-index:99999; word-break: break-all',
-        'num' => 'font-weight:bold; color:#1299DA',
-        'const' => 'font-weight:bold',
-        'str' => 'font-weight:bold; color:#56DB3A',
-        'note' => 'color:#1299DA',
-        'ref' => 'color:#A0A0A0',
-        'public' => 'color:#FFFFFF',
-        'protected' => 'color:#FFFFFF',
-        'private' => 'color:#FFFFFF',
-        'meta' => 'color:#B729D9',
-        'key' => 'color:#56DB3A',
-        'index' => 'color:#1299DA',
-        'ellipsis' => 'color:#FF8400',
-    ];
+    protected $styles;
 
     private $displayOptions = [
         'maxDepth' => 1,
@@ -56,11 +77,12 @@ class HtmlDumper extends CliDumper
     /**
      * {@inheritdoc}
      */
-    public function __construct($output = null, $charset = null, $flags = 0)
+    public function __construct($output = null, string $charset = null, int $flags = 0)
     {
         AbstractDumper::__construct($output, $charset, $flags);
         $this->dumpId = 'sf-dump-'.mt_rand();
-        $this->displayOptions['fileLinkFormat'] = ini_get('xdebug.file_link_format') ?: get_cfg_var('xdebug.file_link_format');
+        $this->displayOptions['fileLinkFormat'] = \ini_get('xdebug.file_link_format') ?: get_cfg_var('xdebug.file_link_format');
+        $this->styles = static::$themes['dark'] ?? self::$themes['dark'];
     }
 
     /**
@@ -72,6 +94,15 @@ class HtmlDumper extends CliDumper
         $this->styles = $styles + $this->styles;
     }
 
+    public function setTheme(string $themeName)
+    {
+        if (!isset(static::$themes[$themeName])) {
+            throw new \InvalidArgumentException(sprintf('Theme "%s" does not exist in class "%s".', $themeName, static::class));
+        }
+
+        $this->setStyles(static::$themes[$themeName]);
+    }
+
     /**
      * Configures display options.
      *
@@ -122,7 +153,7 @@ class HtmlDumper extends CliDumper
      */
     protected function getDumpHeader()
     {
-        $this->headerIsDumped = null !== $this->outputStream ? $this->outputStream : $this->lineDumper;
+        $this->headerIsDumped = $this->outputStream ?? $this->lineDumper;
 
         if (null !== $this->dumpHeader) {
             return $this->dumpHeader;
@@ -283,13 +314,21 @@ return function (root, x) {
     }
 
     function a(e, f) {
-        addEventListener(root, e, function (e) {
+        addEventListener(root, e, function (e, n) {
             if ('A' == e.target.tagName) {
                 f(e.target, e);
             } else if ('A' == e.target.parentNode.tagName) {
                 f(e.target.parentNode, e);
-            } else if (e.target.nextElementSibling && 'A' == e.target.nextElementSibling.tagName) {
-                f(e.target.nextElementSibling, e, true);
+            } else {
+                n = /\bsf-dump-ellipsis\b/.test(e.target.className) ? e.target.parentNode : e.target;
+
+                if ((n = n.nextElementSibling) && 'A' == n.tagName) {
+                    if (!/\bsf-dump-toggle\b/.test(n.className)) {
+                        n = n.nextElementSibling || n;
+                    }
+
+                    f(n, e, true);
+                }
             }
         });
     };
@@ -332,7 +371,7 @@ return function (root, x) {
         if (/\bsf-dump-toggle\b/.test(a.className)) {
             e.preventDefault();
             if (!toggle(a, isCtrlKey(e))) {
-                var r = doc.getElementById(a.getAttribute('href').substr(1)),
+                var r = doc.getElementById(a.getAttribute('href').slice(1)),
                     s = r.previousSibling,
                     f = r.parentNode,
                     t = a.parentNode;
@@ -399,7 +438,7 @@ return function (root, x) {
                 toggle(a);
             }
         } else if (/\bsf-dump-ref\b/.test(elt.className) && (a = elt.getAttribute('href'))) {
-            a = a.substr(1);
+            a = a.slice(1);
             elt.className += ' '+a;
 
             if (/[\[{]$/.test(elt.previousSibling.nodeValue)) {
@@ -469,10 +508,18 @@ return function (root, x) {
 
         function showCurrent(state)
         {
-            var currentNode = state.current();
+            var currentNode = state.current(), currentRect, searchRect;
             if (currentNode) {
                 reveal(currentNode);
                 highlight(root, currentNode, state.nodes);
+                if ('scrollIntoView' in currentNode) {
+                    currentNode.scrollIntoView(true);
+                    currentRect = currentNode.getBoundingClientRect();
+                    searchRect = search.getBoundingClientRect();
+                    if (currentRect.top < (searchRect.top + searchRect.height)) {
+                        window.scrollBy(0, -(searchRect.top + searchRect.height + 5));
+                    }
+                }
             }
             counter.textContent = (state.isEmpty() ? 0 : state.idx + 1) + ' of ' + state.count();
         }
@@ -545,6 +592,15 @@ return function (root, x) {
             var isSearchActive = !/\bsf-dump-search-hidden\b/.test(search.className);
             if ((114 === e.keyCode && !isSearchActive) || (isCtrlKey(e) && 70 === e.keyCode)) {
                 /* F3 or CMD/CTRL + F */
+                if (70 === e.keyCode && document.activeElement === searchInput) {
+                   /*
+                    * If CMD/CTRL + F is hit while having focus on search input,
+                    * the user probably meant to trigger browser search instead.
+                    * Let the browser execute its behavior:
+                    */
+                    return;
+                }
+
                 e.preventDefault();
                 search.className = search.className.replace(/\bsf-dump-search-hidden\b/, '');
                 searchInput.focus();
@@ -603,6 +659,7 @@ pre.sf-dump {
     display: block;
     white-space: pre;
     padding: 5px;
+    overflow: initial !important;
 }
 pre.sf-dump:after {
    content: "";
@@ -617,11 +674,6 @@ pre.sf-dump span {
 pre.sf-dump .sf-dump-compact {
     display: none;
 }
-pre.sf-dump abbr {
-    text-decoration: none;
-    border: none;
-    cursor: help;
-}
 pre.sf-dump a {
     text-decoration: none;
     cursor: pointer;
@@ -629,6 +681,13 @@ pre.sf-dump a {
     outline: none;
     color: inherit;
 }
+pre.sf-dump img {
+    max-width: 50em;
+    max-height: 50em;
+    margin: .5em 0 0 0;
+    padding: 0;
+    background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAHUlEQVQY02O8zAABilCaiQEN0EeA8QuUcX9g3QEAAjcC5piyhyEAAAAASUVORK5CYII=) #D3D3D3;
+}
 pre.sf-dump .sf-dump-ellipsis {
     display: inline-block;
     overflow: visible;
@@ -671,14 +730,16 @@ pre.sf-dump code {
     border-radius: 3px;
 }
 pre.sf-dump .sf-dump-search-hidden {
-    display: none;
+    display: none !important;
 }
 pre.sf-dump .sf-dump-search-wrapper {
-    float: right;
     font-size: 0;
     white-space: nowrap;
-    max-width: 100%;
-    text-align: right;
+    margin-bottom: 5px;
+    display: flex;
+    position: -webkit-sticky;
+    position: sticky;
+    top: 5px;
 }
 pre.sf-dump .sf-dump-search-wrapper > * {
     vertical-align: top;
@@ -695,10 +756,11 @@ pre.sf-dump .sf-dump-search-wrapper > input.sf-dump-search-input {
     height: 21px;
     font-size: 12px;
     border-right: none;
-    width: 140px;
     border-top-left-radius: 3px;
     border-bottom-left-radius: 3px;
     color: #000;
+    min-width: 15px;
+    width: 100%;
 }
 pre.sf-dump .sf-dump-search-wrapper > .sf-dump-search-input-next,
 pre.sf-dump .sf-dump-search-wrapper > .sf-dump-search-input-previous {
@@ -732,15 +794,36 @@ EOHTML
         foreach ($this->styles as $class => $style) {
             $line .= 'pre.sf-dump'.('default' === $class ? ', pre.sf-dump' : '').' .sf-dump-'.$class.'{'.$style.'}';
         }
+        $line .= 'pre.sf-dump .sf-dump-ellipsis-note{'.$this->styles['note'].'}';
 
         return $this->dumpHeader = preg_replace('/\s+/', ' ', $line).'</style>'.$this->dumpHeader;
     }
 
+    /**
+     * {@inheritdoc}
+     */
+    public function dumpString(Cursor $cursor, $str, $bin, $cut)
+    {
+        if ('' === $str && isset($cursor->attr['img-data'], $cursor->attr['content-type'])) {
+            $this->dumpKey($cursor);
+            $this->line .= $this->style('default', $cursor->attr['img-size'] ?? '', []).' <samp>';
+            $this->endValue($cursor);
+            $this->line .= $this->indentPad;
+            $this->line .= sprintf('<img src="data:%s;base64,%s" /></samp>', $cursor->attr['content-type'], base64_encode($cursor->attr['img-data']));
+            $this->endValue($cursor);
+        } else {
+            parent::dumpString($cursor, $str, $bin, $cut);
+        }
+    }
+
     /**
      * {@inheritdoc}
      */
     public function enterHash(Cursor $cursor, $type, $class, $hasChild)
     {
+        if (Cursor::HASH_OBJECT === $type) {
+            $cursor->attr['depth'] = $cursor->depth;
+        }
         parent::enterHash($cursor, $type, $class, false);
 
         if ($cursor->skipChildren) {
@@ -799,13 +882,18 @@ EOHTML
         }
 
         if ('const' === $style && isset($attr['value'])) {
-            $style .= sprintf(' title="%s"', esc(is_scalar($attr['value']) ? $attr['value'] : json_encode($attr['value'])));
+            $style .= sprintf(' title="%s"', esc(\is_scalar($attr['value']) ? $attr['value'] : json_encode($attr['value'])));
         } elseif ('public' === $style) {
             $style .= sprintf(' title="%s"', empty($attr['dynamic']) ? 'Public property' : 'Runtime added dynamic property');
         } elseif ('str' === $style && 1 < $attr['length']) {
             $style .= sprintf(' title="%d%s characters"', $attr['length'], $attr['binary'] ? ' binary or non-UTF-8' : '');
-        } elseif ('note' === $style && false !== $c = strrpos($v, '\\')) {
-            return sprintf('<abbr title="%s" class=sf-dump-%s>%s</abbr>', $v, $style, substr($v, $c + 1));
+        } elseif ('note' === $style && 0 < ($attr['depth'] ?? 0) && false !== $c = strrpos($value, '\\')) {
+            $style .= ' title=""';
+            $attr += [
+                'ellipsis' => \strlen($value) - $c,
+                'ellipsis-type' => 'note',
+                'ellipsis-tail' => 1,
+            ];
         } elseif ('protected' === $style) {
             $style .= ' title="Protected property"';
         } elseif ('meta' === $style && isset($attr['title'])) {
@@ -826,23 +914,35 @@ EOHTML
 
             if (!empty($attr['ellipsis-tail'])) {
                 $tail = \strlen(esc(substr($value, -$attr['ellipsis'], $attr['ellipsis-tail'])));
-                $v .= sprintf('<span class=sf-dump-ellipsis>%s</span>%s', substr($label, 0, $tail), substr($label, $tail));
+                $v .= sprintf('<span class=%s>%s</span>%s', $class, substr($label, 0, $tail), substr($label, $tail));
             } else {
                 $v .= $label;
             }
         }
 
         $v = "<span class=sf-dump-{$style}>".preg_replace_callback(static::$controlCharsRx, function ($c) use ($map) {
-            $s = '<span class=sf-dump-default>';
+            $s = $b = '<span class="sf-dump-default';
             $c = $c[$i = 0];
+            if ($ns = "\r" === $c[$i] || "\n" === $c[$i]) {
+                $s .= ' sf-dump-ns';
+            }
+            $s .= '">';
             do {
-                $s .= isset($map[$c[$i]]) ? $map[$c[$i]] : sprintf('\x%02X', \ord($c[$i]));
+                if (("\r" === $c[$i] || "\n" === $c[$i]) !== $ns) {
+                    $s .= '</span>'.$b;
+                    if ($ns = !$ns) {
+                        $s .= ' sf-dump-ns';
+                    }
+                    $s .= '">';
+                }
+
+                $s .= $map[$c[$i]] ?? sprintf('\x%02X', \ord($c[$i]));
             } while (isset($c[++$i]));
 
             return $s.'</span>';
         }, $v).'</span>';
 
-        if (isset($attr['file']) && $href = $this->getSourceLink($attr['file'], isset($attr['line']) ? $attr['line'] : 0)) {
+        if (isset($attr['file']) && $href = $this->getSourceLink($attr['file'], $attr['line'] ?? 0)) {
             $attr['href'] = $href;
         }
         if (isset($attr['href'])) {
@@ -864,7 +964,7 @@ EOHTML
         if (-1 === $this->lastDepth) {
             $this->line = sprintf($this->dumpPrefix, $this->dumpId, $this->indentPad).$this->line;
         }
-        if ($this->headerIsDumped !== (null !== $this->outputStream ? $this->outputStream : $this->lineDumper)) {
+        if ($this->headerIsDumped !== ($this->outputStream ?? $this->lineDumper)) {
             $this->line = $this->getDumpHeader().$this->line;
         }
 
@@ -878,7 +978,7 @@ EOHTML
         }
         $this->lastDepth = $depth;
 
-        $this->line = mb_convert_encoding($this->line, 'HTML-ENTITIES', 'UTF-8');
+        $this->line = mb_encode_numericentity($this->line, [0x80, 0x10FFFF, 0, 0x1FFFFF], 'UTF-8');
 
         if (-1 === $depth) {
             AbstractDumper::dumpLine(0);
@@ -886,7 +986,7 @@ EOHTML
         AbstractDumper::dumpLine($depth);
     }
 
-    private function getSourceLink($file, $line)
+    private function getSourceLink(string $file, int $line)
     {
         $options = $this->extraDisplayOptions + $this->displayOptions;
 
@@ -898,7 +998,7 @@ EOHTML
     }
 }
 
-function esc($str)
+function esc(string $str)
 {
     return htmlspecialchars($str, \ENT_QUOTES, 'UTF-8');
 }
diff --git a/civicrm/vendor/symfony/var-dumper/Dumper/ServerDumper.php b/civicrm/vendor/symfony/var-dumper/Dumper/ServerDumper.php
new file mode 100644
index 0000000000000000000000000000000000000000..94795bf6d69dda4eb270a895639b3f858fb368eb
--- /dev/null
+++ b/civicrm/vendor/symfony/var-dumper/Dumper/ServerDumper.php
@@ -0,0 +1,53 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Dumper;
+
+use Symfony\Component\VarDumper\Cloner\Data;
+use Symfony\Component\VarDumper\Dumper\ContextProvider\ContextProviderInterface;
+use Symfony\Component\VarDumper\Server\Connection;
+
+/**
+ * ServerDumper forwards serialized Data clones to a server.
+ *
+ * @author Maxime Steinhausser <maxime.steinhausser@gmail.com>
+ */
+class ServerDumper implements DataDumperInterface
+{
+    private $connection;
+    private $wrappedDumper;
+
+    /**
+     * @param string                     $host             The server host
+     * @param DataDumperInterface|null   $wrappedDumper    A wrapped instance used whenever we failed contacting the server
+     * @param ContextProviderInterface[] $contextProviders Context providers indexed by context name
+     */
+    public function __construct(string $host, DataDumperInterface $wrappedDumper = null, array $contextProviders = [])
+    {
+        $this->connection = new Connection($host, $contextProviders);
+        $this->wrappedDumper = $wrappedDumper;
+    }
+
+    public function getContextProviders(): array
+    {
+        return $this->connection->getContextProviders();
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function dump(Data $data)
+    {
+        if (!$this->connection->write($data) && $this->wrappedDumper) {
+            $this->wrappedDumper->dump($data);
+        }
+    }
+}
diff --git a/civicrm/vendor/symfony/var-dumper/Exception/ThrowingCasterException.php b/civicrm/vendor/symfony/var-dumper/Exception/ThrowingCasterException.php
index af47753ad5b692f27ca287b19b16b3fdfed039c1..122f0d358a12906266644e7b84853ab3dae1fe2a 100644
--- a/civicrm/vendor/symfony/var-dumper/Exception/ThrowingCasterException.php
+++ b/civicrm/vendor/symfony/var-dumper/Exception/ThrowingCasterException.php
@@ -17,9 +17,9 @@ namespace Symfony\Component\VarDumper\Exception;
 class ThrowingCasterException extends \Exception
 {
     /**
-     * @param \Exception $prev The exception thrown from the caster
+     * @param \Throwable $prev The exception thrown from the caster
      */
-    public function __construct(\Exception $prev)
+    public function __construct(\Throwable $prev)
     {
         parent::__construct('Unexpected '.\get_class($prev).' thrown from a caster: '.$prev->getMessage(), 0, $prev);
     }
diff --git a/civicrm/vendor/symfony/var-dumper/LICENSE b/civicrm/vendor/symfony/var-dumper/LICENSE
index 684fbf94df83c1ab0d15ccb159147c4c9d483e85..a843ec124ea70e735aaafd5f61d1b171e94dc70c 100644
--- a/civicrm/vendor/symfony/var-dumper/LICENSE
+++ b/civicrm/vendor/symfony/var-dumper/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2014-2020 Fabien Potencier
+Copyright (c) 2014-2022 Fabien Potencier
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
diff --git a/civicrm/vendor/symfony/var-dumper/README.md b/civicrm/vendor/symfony/var-dumper/README.md
index 339f73eba30525a4acea14c4420da7115465419a..a0da8c9ab3ab57538c539c91f66fa374c584d63c 100644
--- a/civicrm/vendor/symfony/var-dumper/README.md
+++ b/civicrm/vendor/symfony/var-dumper/README.md
@@ -3,13 +3,13 @@ VarDumper Component
 
 The VarDumper component provides mechanisms for walking through any arbitrary
 PHP variable. It provides a better `dump()` function that you can use instead
-of `var_dump`.
+of `var_dump()`.
 
 Resources
 ---------
 
-  * [Documentation](https://symfony.com/doc/current/components/var_dumper/introduction.html)
-  * [Contributing](https://symfony.com/doc/current/contributing/index.html)
-  * [Report issues](https://github.com/symfony/symfony/issues) and
-    [send Pull Requests](https://github.com/symfony/symfony/pulls)
-    in the [main Symfony repository](https://github.com/symfony/symfony)
+ * [Documentation](https://symfony.com/doc/current/components/var_dumper/introduction.html)
+ * [Contributing](https://symfony.com/doc/current/contributing/index.html)
+ * [Report issues](https://github.com/symfony/symfony/issues) and
+   [send Pull Requests](https://github.com/symfony/symfony/pulls)
+   in the [main Symfony repository](https://github.com/symfony/symfony)
diff --git a/civicrm/vendor/symfony/var-dumper/Resources/bin/var-dump-server b/civicrm/vendor/symfony/var-dumper/Resources/bin/var-dump-server
new file mode 100755
index 0000000000000000000000000000000000000000..f398fcef72d3957f0d4789c39a5b6852e052007e
--- /dev/null
+++ b/civicrm/vendor/symfony/var-dumper/Resources/bin/var-dump-server
@@ -0,0 +1,67 @@
+#!/usr/bin/env php
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+if ('cli' !== PHP_SAPI) {
+    throw new Exception('This script must be run from the command line.');
+}
+
+/**
+ * Starts a dump server to collect and output dumps on a single place with multiple formats support.
+ *
+ * @author Maxime Steinhausser <maxime.steinhausser@gmail.com>
+ */
+
+use Psr\Log\LoggerInterface;
+use Symfony\Component\Console\Application;
+use Symfony\Component\Console\Input\ArgvInput;
+use Symfony\Component\Console\Input\InputOption;
+use Symfony\Component\Console\Logger\ConsoleLogger;
+use Symfony\Component\Console\Output\ConsoleOutput;
+use Symfony\Component\VarDumper\Command\ServerDumpCommand;
+use Symfony\Component\VarDumper\Server\DumpServer;
+
+function includeIfExists(string $file): bool
+{
+    return file_exists($file) && include $file;
+}
+
+if (
+    !includeIfExists(__DIR__ . '/../../../../autoload.php') &&
+    !includeIfExists(__DIR__ . '/../../vendor/autoload.php') &&
+    !includeIfExists(__DIR__ . '/../../../../../../vendor/autoload.php')
+) {
+    fwrite(STDERR, 'Install dependencies using Composer.'.PHP_EOL);
+    exit(1);
+}
+
+if (!class_exists(Application::class)) {
+    fwrite(STDERR, 'You need the "symfony/console" component in order to run the VarDumper server.'.PHP_EOL);
+    exit(1);
+}
+
+$input = new ArgvInput();
+$output = new ConsoleOutput();
+$defaultHost = '127.0.0.1:9912';
+$host = $input->getParameterOption(['--host'], $_SERVER['VAR_DUMPER_SERVER'] ?? $defaultHost, true);
+$logger = interface_exists(LoggerInterface::class) ? new ConsoleLogger($output->getErrorOutput()) : null;
+
+$app = new Application();
+
+$app->getDefinition()->addOption(
+    new InputOption('--host', null, InputOption::VALUE_REQUIRED, 'The address the server should listen to', $defaultHost)
+);
+
+$app->add($command = new ServerDumpCommand(new DumpServer($host, $logger)))
+    ->getApplication()
+    ->setDefaultCommand($command->getName(), true)
+    ->run($input, $output)
+;
diff --git a/civicrm/vendor/symfony/var-dumper/Resources/css/htmlDescriptor.css b/civicrm/vendor/symfony/var-dumper/Resources/css/htmlDescriptor.css
new file mode 100644
index 0000000000000000000000000000000000000000..8f706d640f0b707653cdaec6db69f4d812b6e33a
--- /dev/null
+++ b/civicrm/vendor/symfony/var-dumper/Resources/css/htmlDescriptor.css
@@ -0,0 +1,130 @@
+body {
+    display: flex;
+    flex-direction: column-reverse;
+    justify-content: flex-end;
+    max-width: 1140px;
+    margin: auto;
+    padding: 15px;
+    word-wrap: break-word;
+    background-color: #F9F9F9;
+    color: #222;
+    font-family: Helvetica, Arial, sans-serif;
+    font-size: 14px;
+    line-height: 1.4;
+}
+p {
+    margin: 0;
+}
+a {
+    color: #218BC3;
+    text-decoration: none;
+}
+a:hover {
+    text-decoration: underline;
+}
+.text-small {
+    font-size: 12px !important;
+}
+article {
+    margin: 5px;
+    margin-bottom: 10px;
+}
+article > header > .row {
+    display: flex;
+    flex-direction: row;
+    align-items: baseline;
+    margin-bottom: 10px;
+}
+article > header > .row > .col {
+    flex: 1;
+    display: flex;
+    align-items: baseline;
+}
+article > header > .row > h2 {
+    font-size: 14px;
+    color: #222;
+    font-weight: normal;
+    font-family: "Lucida Console", monospace, sans-serif;
+    word-break: break-all;
+    margin: 20px 5px 0 0;
+    user-select: all;
+}
+article > header > .row > h2 > code {
+    white-space: nowrap;
+    user-select: none;
+    color: #cc2255;
+    background-color: #f7f7f9;
+    border: 1px solid #e1e1e8;
+    border-radius: 3px;
+    margin-right: 5px;
+    padding: 0 3px;
+}
+article > header > .row > time.col {
+    flex: 0;
+    text-align: right;
+    white-space: nowrap;
+    color: #999;
+    font-style: italic;
+}
+article > header ul.tags {
+    list-style: none;
+    padding: 0;
+    margin: 0;
+    font-size: 12px;
+}
+article > header ul.tags > li {
+    user-select: all;
+    margin-bottom: 2px;
+}
+article > header ul.tags > li > span.badge {
+    display: inline-block;
+    padding: .25em .4em;
+    margin-right: 5px;
+    border-radius: 4px;
+    background-color: #6c757d3b;
+    color: #524d4d;
+    font-size: 12px;
+    text-align: center;
+    font-weight: 700;
+    line-height: 1;
+    white-space: nowrap;
+    vertical-align: baseline;
+    user-select: none;
+}
+article > section.body {
+    border: 1px solid #d8d8d8;
+    background: #FFF;
+    padding: 10px;
+    border-radius: 3px;
+}
+pre.sf-dump {
+    border-radius: 3px;
+    margin-bottom: 0;
+}
+.hidden {
+    display: none !important;
+}
+.dumped-tag > .sf-dump {
+    display: inline-block;
+    margin: 0;
+    padding: 1px 5px;
+    line-height: 1.4;
+    vertical-align: top;
+    background-color: transparent;
+    user-select: auto;
+}
+.dumped-tag > pre.sf-dump,
+.dumped-tag > .sf-dump-default {
+    color: #CC7832;
+    background: none;
+}
+.dumped-tag > .sf-dump .sf-dump-str { color: #629755; }
+.dumped-tag > .sf-dump .sf-dump-private,
+.dumped-tag > .sf-dump .sf-dump-protected,
+.dumped-tag > .sf-dump .sf-dump-public { color: #262626; }
+.dumped-tag > .sf-dump .sf-dump-note { color: #6897BB; }
+.dumped-tag > .sf-dump .sf-dump-key { color: #789339; }
+.dumped-tag > .sf-dump .sf-dump-ref { color: #6E6E6E; }
+.dumped-tag > .sf-dump .sf-dump-ellipsis { color: #CC7832; max-width: 100em; }
+.dumped-tag > .sf-dump .sf-dump-ellipsis-path { max-width: 5em; }
+.dumped-tag > .sf-dump .sf-dump-ns { user-select: none; }
diff --git a/civicrm/vendor/symfony/var-dumper/Resources/functions/dump.php b/civicrm/vendor/symfony/var-dumper/Resources/functions/dump.php
index 0e0e4d043521816b22871997b72ce5d9f8edb13f..a485d573a007a9016f1d529536206a4b7b6d3607 100644
--- a/civicrm/vendor/symfony/var-dumper/Resources/functions/dump.php
+++ b/civicrm/vendor/symfony/var-dumper/Resources/functions/dump.php
@@ -15,9 +15,11 @@ if (!function_exists('dump')) {
     /**
      * @author Nicolas Grekas <p@tchwork.com>
      */
-    function dump($var)
+    function dump($var, ...$moreVars)
     {
-        foreach (func_get_args() as $v) {
+        VarDumper::dump($var);
+
+        foreach ($moreVars as $v) {
             VarDumper::dump($v);
         }
 
@@ -28,3 +30,14 @@ if (!function_exists('dump')) {
         return $var;
     }
 }
+
+if (!function_exists('dd')) {
+    function dd(...$vars)
+    {
+        foreach ($vars as $v) {
+            VarDumper::dump($v);
+        }
+
+        exit(1);
+    }
+}
diff --git a/civicrm/vendor/symfony/var-dumper/Resources/js/htmlDescriptor.js b/civicrm/vendor/symfony/var-dumper/Resources/js/htmlDescriptor.js
new file mode 100644
index 0000000000000000000000000000000000000000..63101e57c3c75d04ab70e77e7dbd955677c4e9ca
--- /dev/null
+++ b/civicrm/vendor/symfony/var-dumper/Resources/js/htmlDescriptor.js
@@ -0,0 +1,10 @@
+document.addEventListener('DOMContentLoaded', function() {
+  let prev = null;
+  Array.from(document.getElementsByTagName('article')).reverse().forEach(function (article) {
+    const dedupId = article.dataset.dedupId;
+    if (dedupId === prev) {
+      article.getElementsByTagName('header')[0].classList.add('hidden');
+    }
+    prev = dedupId;
+  });
+});
diff --git a/civicrm/vendor/symfony/var-dumper/Server/Connection.php b/civicrm/vendor/symfony/var-dumper/Server/Connection.php
new file mode 100644
index 0000000000000000000000000000000000000000..55d9214d0f5dbadba25a0fe1f51e2b5ca5038d75
--- /dev/null
+++ b/civicrm/vendor/symfony/var-dumper/Server/Connection.php
@@ -0,0 +1,95 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Server;
+
+use Symfony\Component\VarDumper\Cloner\Data;
+use Symfony\Component\VarDumper\Dumper\ContextProvider\ContextProviderInterface;
+
+/**
+ * Forwards serialized Data clones to a server.
+ *
+ * @author Maxime Steinhausser <maxime.steinhausser@gmail.com>
+ */
+class Connection
+{
+    private $host;
+    private $contextProviders;
+    private $socket;
+
+    /**
+     * @param string                     $host             The server host
+     * @param ContextProviderInterface[] $contextProviders Context providers indexed by context name
+     */
+    public function __construct(string $host, array $contextProviders = [])
+    {
+        if (!str_contains($host, '://')) {
+            $host = 'tcp://'.$host;
+        }
+
+        $this->host = $host;
+        $this->contextProviders = $contextProviders;
+    }
+
+    public function getContextProviders(): array
+    {
+        return $this->contextProviders;
+    }
+
+    public function write(Data $data): bool
+    {
+        $socketIsFresh = !$this->socket;
+        if (!$this->socket = $this->socket ?: $this->createSocket()) {
+            return false;
+        }
+
+        $context = ['timestamp' => microtime(true)];
+        foreach ($this->contextProviders as $name => $provider) {
+            $context[$name] = $provider->getContext();
+        }
+        $context = array_filter($context);
+        $encodedPayload = base64_encode(serialize([$data, $context]))."\n";
+
+        set_error_handler([self::class, 'nullErrorHandler']);
+        try {
+            if (-1 !== stream_socket_sendto($this->socket, $encodedPayload)) {
+                return true;
+            }
+            if (!$socketIsFresh) {
+                stream_socket_shutdown($this->socket, \STREAM_SHUT_RDWR);
+                fclose($this->socket);
+                $this->socket = $this->createSocket();
+            }
+            if (-1 !== stream_socket_sendto($this->socket, $encodedPayload)) {
+                return true;
+            }
+        } finally {
+            restore_error_handler();
+        }
+
+        return false;
+    }
+
+    private static function nullErrorHandler(int $t, string $m)
+    {
+        // no-op
+    }
+
+    private function createSocket()
+    {
+        set_error_handler([self::class, 'nullErrorHandler']);
+        try {
+            return stream_socket_client($this->host, $errno, $errstr, 3, \STREAM_CLIENT_CONNECT | \STREAM_CLIENT_ASYNC_CONNECT);
+        } finally {
+            restore_error_handler();
+        }
+    }
+}
diff --git a/civicrm/vendor/symfony/var-dumper/Server/DumpServer.php b/civicrm/vendor/symfony/var-dumper/Server/DumpServer.php
new file mode 100644
index 0000000000000000000000000000000000000000..1c2c34812c0d50d8918ec6308bb75d0bda0204a5
--- /dev/null
+++ b/civicrm/vendor/symfony/var-dumper/Server/DumpServer.php
@@ -0,0 +1,107 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Server;
+
+use Psr\Log\LoggerInterface;
+use Symfony\Component\VarDumper\Cloner\Data;
+use Symfony\Component\VarDumper\Cloner\Stub;
+
+/**
+ * A server collecting Data clones sent by a ServerDumper.
+ *
+ * @author Maxime Steinhausser <maxime.steinhausser@gmail.com>
+ *
+ * @final
+ */
+class DumpServer
+{
+    private $host;
+    private $socket;
+    private $logger;
+
+    public function __construct(string $host, LoggerInterface $logger = null)
+    {
+        if (!str_contains($host, '://')) {
+            $host = 'tcp://'.$host;
+        }
+
+        $this->host = $host;
+        $this->logger = $logger;
+    }
+
+    public function start(): void
+    {
+        if (!$this->socket = stream_socket_server($this->host, $errno, $errstr)) {
+            throw new \RuntimeException(sprintf('Server start failed on "%s": ', $this->host).$errstr.' '.$errno);
+        }
+    }
+
+    public function listen(callable $callback): void
+    {
+        if (null === $this->socket) {
+            $this->start();
+        }
+
+        foreach ($this->getMessages() as $clientId => $message) {
+            $payload = @unserialize(base64_decode($message), ['allowed_classes' => [Data::class, Stub::class]]);
+
+            // Impossible to decode the message, give up.
+            if (false === $payload) {
+                if ($this->logger) {
+                    $this->logger->warning('Unable to decode a message from {clientId} client.', ['clientId' => $clientId]);
+                }
+
+                continue;
+            }
+
+            if (!\is_array($payload) || \count($payload) < 2 || !$payload[0] instanceof Data || !\is_array($payload[1])) {
+                if ($this->logger) {
+                    $this->logger->warning('Invalid payload from {clientId} client. Expected an array of two elements (Data $data, array $context)', ['clientId' => $clientId]);
+                }
+
+                continue;
+            }
+
+            [$data, $context] = $payload;
+
+            $callback($data, $context, $clientId);
+        }
+    }
+
+    public function getHost(): string
+    {
+        return $this->host;
+    }
+
+    private function getMessages(): iterable
+    {
+        $sockets = [(int) $this->socket => $this->socket];
+        $write = [];
+
+        while (true) {
+            $read = $sockets;
+            stream_select($read, $write, $write, null);
+
+            foreach ($read as $stream) {
+                if ($this->socket === $stream) {
+                    $stream = stream_socket_accept($this->socket);
+                    $sockets[(int) $stream] = $stream;
+                } elseif (feof($stream)) {
+                    unset($sockets[(int) $stream]);
+                    fclose($stream);
+                } else {
+                    yield (int) $stream => fgets($stream);
+                }
+            }
+        }
+    }
+}
diff --git a/civicrm/vendor/symfony/var-dumper/VarDumper.php b/civicrm/vendor/symfony/var-dumper/VarDumper.php
index 2ef20c064b01559dbea456cbec3cc8e917715729..febc1e0d17bc474976d13cc33c96227b4620f415 100644
--- a/civicrm/vendor/symfony/var-dumper/VarDumper.php
+++ b/civicrm/vendor/symfony/var-dumper/VarDumper.php
@@ -11,8 +11,11 @@
 
 namespace Symfony\Component\VarDumper;
 
+use Symfony\Component\VarDumper\Caster\ReflectionCaster;
 use Symfony\Component\VarDumper\Cloner\VarCloner;
 use Symfony\Component\VarDumper\Dumper\CliDumper;
+use Symfony\Component\VarDumper\Dumper\ContextProvider\SourceContextProvider;
+use Symfony\Component\VarDumper\Dumper\ContextualizedDumper;
 use Symfony\Component\VarDumper\Dumper\HtmlDumper;
 
 // Load the global dump() function
@@ -29,18 +32,33 @@ class VarDumper
     {
         if (null === self::$handler) {
             $cloner = new VarCloner();
-            $dumper = \in_array(\PHP_SAPI, ['cli', 'phpdbg'], true) ? new CliDumper() : new HtmlDumper();
+            $cloner->addCasters(ReflectionCaster::UNSET_CLOSURE_FILE_INFO);
+
+            if (isset($_SERVER['VAR_DUMPER_FORMAT'])) {
+                $dumper = 'html' === $_SERVER['VAR_DUMPER_FORMAT'] ? new HtmlDumper() : new CliDumper();
+            } else {
+                $dumper = \in_array(\PHP_SAPI, ['cli', 'phpdbg']) ? new CliDumper() : new HtmlDumper();
+            }
+
+            $dumper = new ContextualizedDumper($dumper, [new SourceContextProvider()]);
+
             self::$handler = function ($var) use ($cloner, $dumper) {
                 $dumper->dump($cloner->cloneVar($var));
             };
         }
 
-        return \call_user_func(self::$handler, $var);
+        return (self::$handler)($var);
     }
 
     public static function setHandler(callable $callable = null)
     {
         $prevHandler = self::$handler;
+
+        // Prevent replacing the handler with expected format as soon as the env var was set:
+        if (isset($_SERVER['VAR_DUMPER_FORMAT'])) {
+            return $prevHandler;
+        }
+
         self::$handler = $callable;
 
         return $prevHandler;
diff --git a/civicrm/vendor/symfony/var-dumper/composer.json b/civicrm/vendor/symfony/var-dumper/composer.json
index 9f2352ee2569c0f21edb5b1ff9cef38dab92ba8a..d4e64cc9f784a89c1abcb9e065c4b9c47687f913 100644
--- a/civicrm/vendor/symfony/var-dumper/composer.json
+++ b/civicrm/vendor/symfony/var-dumper/composer.json
@@ -1,7 +1,7 @@
 {
     "name": "symfony/var-dumper",
     "type": "library",
-    "description": "Symfony mechanism for exploring and dumping PHP variables",
+    "description": "Provides mechanisms for walking through any arbitrary PHP variable",
     "keywords": ["dump", "debug"],
     "homepage": "https://symfony.com",
     "license": "MIT",
@@ -16,20 +16,25 @@
         }
     ],
     "require": {
-        "php": "^5.5.9|>=7.0.8",
-        "symfony/polyfill-mbstring": "~1.0"
+        "php": ">=7.1.3",
+        "symfony/polyfill-mbstring": "~1.0",
+        "symfony/polyfill-php72": "~1.5",
+        "symfony/polyfill-php80": "^1.16"
     },
     "require-dev": {
         "ext-iconv": "*",
-        "twig/twig": "~1.34|~2.4"
+        "symfony/console": "^3.4|^4.0|^5.0",
+        "symfony/process": "^4.4|^5.0",
+        "twig/twig": "^1.43|^2.13|^3.0.4"
     },
     "conflict": {
-        "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0"
+        "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0",
+        "symfony/console": "<3.4"
     },
     "suggest": {
         "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).",
         "ext-intl": "To show region name in time zone dump",
-        "ext-symfony_debug": ""
+        "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script"
     },
     "autoload": {
         "files": [ "Resources/functions/dump.php" ],
@@ -38,5 +43,8 @@
             "/Tests/"
         ]
     },
+    "bin": [
+        "Resources/bin/var-dump-server"
+    ],
     "minimum-stability": "dev"
 }
diff --git a/civicrm/vendor/symfony/var-dumper/phpunit.xml.dist b/civicrm/vendor/symfony/var-dumper/phpunit.xml.dist
deleted file mode 100644
index 3243fcd0279ccf5ab05e3fc8e0b6c84fbba0c669..0000000000000000000000000000000000000000
--- a/civicrm/vendor/symfony/var-dumper/phpunit.xml.dist
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/5.2/phpunit.xsd"
-         backupGlobals="false"
-         colors="true"
-         bootstrap="vendor/autoload.php"
-         failOnRisky="true"
-         failOnWarning="true"
->
-    <php>
-        <ini name="error_reporting" value="-1" />
-        <env name="DUMP_LIGHT_ARRAY" value="" />
-        <env name="DUMP_STRING_LENGTH" value="" />
-    </php>
-
-    <testsuites>
-        <testsuite name="Symfony VarDumper Component Test Suite">
-            <directory>./Tests/</directory>
-        </testsuite>
-    </testsuites>
-
-    <filter>
-        <whitelist>
-            <directory>./</directory>
-            <exclude>
-                <directory>./Resources</directory>
-                <directory>./Tests</directory>
-                <directory>./vendor</directory>
-            </exclude>
-        </whitelist>
-    </filter>
-</phpunit>
diff --git a/civicrm/xml/schema/Campaign/Campaign.xml b/civicrm/xml/schema/Campaign/Campaign.xml
index 3ef4f4e60b3b7ca5f4d4ae4ef583acfed32d9bc0..6efbca7fd7fa25129538e20f6f1592b2375411d7 100644
--- a/civicrm/xml/schema/Campaign/Campaign.xml
+++ b/civicrm/xml/schema/Campaign/Campaign.xml
@@ -47,9 +47,10 @@
     <add>3.3</add>
   </field>
   <index>
-    <name>UI_campaign_name</name>
+    <name>UI_name</name>
     <fieldName>name</fieldName>
-    <add>5.34</add>
+    <unique>true</unique>
+    <add>5.61</add>
   </index>
   <field>
     <name>title</name>
diff --git a/civicrm/xml/schema/Case/Case.xml b/civicrm/xml/schema/Case/Case.xml
index d26e06f56a96e9334405ad50bd023d999a48a696..7065db62c88f2c04a0536032d22a94f5d2f4d305 100644
--- a/civicrm/xml/schema/Case/Case.xml
+++ b/civicrm/xml/schema/Case/Case.xml
@@ -79,7 +79,7 @@
     <comment>Date on which given case starts.</comment>
     <html>
       <type>Select Date</type>
-      <formatType>activityDateTime</formatType>
+      <formatType>activityDate</formatType>
     </html>
     <add>1.8</add>
   </field>
@@ -92,7 +92,7 @@
     <comment>Date on which given case ends.</comment>
     <html>
       <type>Select Date</type>
-      <formatType>activityDateTime</formatType>
+      <formatType>activityDate</formatType>
     </html>
     <add>1.8</add>
   </field>
diff --git a/civicrm/xml/schema/Contact/Contact.xml b/civicrm/xml/schema/Contact/Contact.xml
index 94fffd3b48135397e776e625c1308c18241aa052..59078d8361b0b1c6770e1276d3370aacc82bb2c2 100644
--- a/civicrm/xml/schema/Contact/Contact.xml
+++ b/civicrm/xml/schema/Contact/Contact.xml
@@ -878,6 +878,8 @@
     <default>NULL</default>
     <readonly>true</readonly>
     <html>
+      <type>Select Date</type>
+      <formatType>activityDateTime</formatType>
       <label>Created Date</label>
     </html>
     <add>4.3</add>
@@ -895,6 +897,8 @@
     <export>true</export>
     <default>CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP</default>
     <html>
+      <type>Select Date</type>
+      <formatType>activityDateTime</formatType>
       <label>Modified Date</label>
     </html>
     <readonly>true</readonly>
diff --git a/civicrm/xml/schema/Contact/Group.xml b/civicrm/xml/schema/Contact/Group.xml
index f66368a3a993ed2575d77e913a2e322b99ba40d0..5af8a76aa382bc56bb6fe9ae7a37721772b8a79a 100644
--- a/civicrm/xml/schema/Contact/Group.xml
+++ b/civicrm/xml/schema/Contact/Group.xml
@@ -12,8 +12,8 @@
   <paths>
     <add>civicrm/group/add?reset=1</add>
     <view>civicrm/group/search?force=1&amp;context=smog&amp;gid=[id]&amp;component_mode=1</view>
-    <update>civicrm/group?reset=1&amp;action=update&amp;id=[id]</update>
-    <delete>civicrm/group?reset=1&amp;action=delete&amp;id=[id]</delete>
+    <update>civicrm/group/edit?reset=1&amp;action=update&amp;id=[id]</update>
+    <delete>civicrm/group/edit?reset=1&amp;action=delete&amp;id=[id]</delete>
   </paths>
   <field>
     <name>id</name>
diff --git a/civicrm/xml/schema/Core/Address.xml b/civicrm/xml/schema/Core/Address.xml
index a38d251e8fe8226f792e73151150b43cd02ce259..f9f06ed27ca0e46697f365d478a0c0e01e05a3c7 100644
--- a/civicrm/xml/schema/Core/Address.xml
+++ b/civicrm/xml/schema/Core/Address.xml
@@ -13,6 +13,11 @@
     <uniqueName>address_id</uniqueName>
     <type>int unsigned</type>
     <export>true</export>
+    <usage>
+      <import>false</import>
+      <export>true</export>
+      <duplicate_matching>false</duplicate_matching>
+    </usage>
     <title>Address ID</title>
     <required>true</required>
     <comment>Unique Address ID</comment>
@@ -64,7 +69,7 @@
   </index>
   <field>
     <name>is_primary</name>
-    <title>Primary address</title>
+    <title>Is Primary</title>
     <type>boolean</type>
     <default>0</default>
     <required>true</required>
diff --git a/civicrm/xml/schema/Core/Cache.xml b/civicrm/xml/schema/Core/Cache.xml
index 6afd66a7b8ff91c89f61c9a768e5025d2b2e30b1..71611853cfa9f8cfac7ded9faf1fe0296bbb98b6 100644
--- a/civicrm/xml/schema/Core/Cache.xml
+++ b/civicrm/xml/schema/Core/Cache.xml
@@ -38,6 +38,13 @@
     <comment>Unique path name for cache element</comment>
     <add>2.1</add>
   </field>
+  <index>
+    <name>UI_group_name_path</name>
+    <fieldName>group_name</fieldName>
+    <fieldName>path</fieldName>
+    <unique>true</unique>
+    <add>5.61</add>
+  </index>
   <index>
     <name>UI_group_path_date</name>
     <fieldName>group_name</fieldName>
@@ -45,6 +52,7 @@
     <fieldName>created_date</fieldName>
     <unique>true</unique>
     <add>4.2</add>
+    <drop>5.61</drop>
   </index>
   <field>
     <name>data</name>
@@ -92,4 +100,9 @@
     <comment>When should the cache item expire</comment>
     <add>2.1</add>
   </field>
+  <index>
+    <name>index_expired_date</name>
+    <fieldName>expired_date</fieldName>
+    <add>5.61</add>
+  </index>
 </table>
diff --git a/civicrm/xml/schema/Core/CustomField.xml b/civicrm/xml/schema/Core/CustomField.xml
index 01ed1a33ec410fe854be201911140f77a73f1453..515cf34e935b0740c7dfe75509057851b312f8af 100644
--- a/civicrm/xml/schema/Core/CustomField.xml
+++ b/civicrm/xml/schema/Core/CustomField.xml
@@ -169,7 +169,7 @@
     <type>varchar</type>
     <title>Custom Field Formatting</title>
     <length>64</length>
-    <comment>Optional format instructions for specific field types, like date types.</comment>
+    <comment>Unused</comment>
     <add>1.1</add>
     <drop>5.59</drop>
   </field>
@@ -186,8 +186,9 @@
     <type>varchar</type>
     <title>Custom Field Javascript</title>
     <length>255</length>
-    <comment>Optional scripting attributes for field.</comment>
+    <comment>Unused</comment>
     <add>1.1</add>
+    <drop>5.61</drop>
   </field>
   <field>
     <name>is_active</name>
diff --git a/civicrm/xml/schema/Core/IM.xml b/civicrm/xml/schema/Core/IM.xml
index 348e34eb25f95cf519c4a1fb927a37e65489eeaa..45189c36a6b7f9c2361bf7ac6104e624fc67f342 100644
--- a/civicrm/xml/schema/Core/IM.xml
+++ b/civicrm/xml/schema/Core/IM.xml
@@ -97,7 +97,7 @@
   </index>
   <field>
     <name>is_primary</name>
-    <title>Primary IM</title>
+    <title>Is Primary</title>
     <type>boolean</type>
     <default>0</default>
     <required>true</required>
diff --git a/civicrm/xml/schema/Core/OpenID.xml b/civicrm/xml/schema/Core/OpenID.xml
index efc30536ab4cde46c8513499c06901d4b86d6cfa..f5b9c1c54cd28473626a48843a81e8ea7c337dcc 100644
--- a/civicrm/xml/schema/Core/OpenID.xml
+++ b/civicrm/xml/schema/Core/OpenID.xml
@@ -84,7 +84,7 @@
   </field>
   <field>
     <name>is_primary</name>
-    <title>Primary ID</title>
+    <title>Is Primary</title>
     <type>boolean</type>
     <default>0</default>
     <required>true</required>
diff --git a/civicrm/xml/schema/Core/Phone.xml b/civicrm/xml/schema/Core/Phone.xml
index e6a9ee82e007e755d7d64b90469c4f1ee15e49c4..a75f35a63ca9a60cb77a36c6b48c005228e9bba7 100644
--- a/civicrm/xml/schema/Core/Phone.xml
+++ b/civicrm/xml/schema/Core/Phone.xml
@@ -64,7 +64,7 @@
   </index>
   <field>
     <name>is_primary</name>
-    <title>Primary phone</title>
+    <title>Is Primary</title>
     <type>boolean</type>
     <default>0</default>
     <required>true</required>
diff --git a/civicrm/xml/schema/Financial/PaymentProcessor.xml b/civicrm/xml/schema/Financial/PaymentProcessor.xml
index 40bd71868a5c637c7977a0cc0f4d558b7b1ecf14..244995fab2392b1731fc1302778eed08ac4f22ce 100644
--- a/civicrm/xml/schema/Financial/PaymentProcessor.xml
+++ b/civicrm/xml/schema/Financial/PaymentProcessor.xml
@@ -50,36 +50,55 @@
   </foreignKey>
   <field>
     <name>name</name>
-    <title>Payment Processor</title>
+    <title>Payment Processor Name</title>
+    <required>true</required>
     <type>varchar</type>
     <length>64</length>
     <comment>Payment Processor Name.</comment>
     <add>1.8</add>
     <html>
+      <label>Machine Name</label>
       <type>Text</type>
     </html>
   </field>
   <field>
     <name>title</name>
     <title>Payment Processor Title</title>
+    <required>true</required>
     <type>varchar</type>
-    <length>127</length>
+    <length>255</length>
     <localizable>true</localizable>
     <html>
+      <label>Backend Title</label>
       <type>Text</type>
     </html>
-    <comment>Payment Processor Descriptive Name.</comment>
+    <comment>Name of processor when shown to CiviCRM administrators.</comment>
     <add>5.13</add>
   </field>
+  <field>
+    <name>frontend_title</name>
+    <title>Payment Processor Frontend Title</title>
+    <required>true</required>
+    <type>varchar</type>
+    <length>255</length>
+    <localizable>true</localizable>
+    <html>
+      <label>Frontend Title</label>
+      <type>Text</type>
+    </html>
+    <comment>Name of processor when shown to users making a payment.</comment>
+    <add>5.61</add>
+  </field>
   <field>
     <name>description</name>
     <title>Processor Description</title>
     <type>varchar</type>
     <length>255</length>
     <html>
+      <label>Description</label>
       <type>Text</type>
     </html>
-    <comment>Payment Processor Description.</comment>
+    <comment>Additional processor information shown to administrators.</comment>
     <add>1.8</add>
   </field>
   <field>
diff --git a/civicrm/xml/templates/civicrm_data.tpl b/civicrm/xml/templates/civicrm_data.tpl
index b9d4e7883a720dbdf78b913871bdd5f0ac1c0376..c250b2650dc5b075679788a6e742e9ce0fc040dd 100644
--- a/civicrm/xml/templates/civicrm_data.tpl
+++ b/civicrm/xml/templates/civicrm_data.tpl
@@ -597,8 +597,8 @@ VALUES
   (@option_group_id_report , '{ts escape="sql"}SYBUNT Report{/ts}',                           'contribute/sybunt',              'CRM_Report_Form_Contribute_Sybunt',              NULL, 0, 0, 12, '{ts escape="sql"}SYBUNT means some year(s) but not this year. Provides a list of constituents who donated at some time in the history of your organization but did not donate during the time period you specify.{/ts}', 0, 0, 1, @contributeCompId, NULL, NULL),
   (@option_group_id_report , '{ts escape="sql"}LYBUNT Report{/ts}',                           'contribute/lybunt',              'CRM_Report_Form_Contribute_Lybunt',              NULL, 0, 0, 13, '{ts escape="sql"}LYBUNT means last year but not this year. Provides a list of constituents who donated last year but did not donate during the time period you specify as the current year.{/ts}', 0, 0, 1, @contributeCompId, NULL, NULL),
   (@option_group_id_report , '{ts escape="sql"}Soft Credit Report{/ts}',                      'contribute/softcredit',          'CRM_Report_Form_Contribute_SoftCredit',          NULL, 0, 0, 14, '{ts escape="sql"}Shows contributions made by contacts that have been soft-credited to other contacts.{/ts}', 0, 0, 1,@contributeCompId, NULL, NULL),
-  (@option_group_id_report , '{ts escape="sql"}Membership Report (Summary){/ts}',             'member/summary',                 'CRM_Report_Form_Member_Summary',                 NULL, 0, 0, 15, '{ts escape="sql"}Provides a summary of memberships by type and join date.{/ts}', 0, 0, 1, @memberCompId, NULL, NULL),
-  (@option_group_id_report , '{ts escape="sql"}Membership Report (Detail){/ts}',              'member/detail',                  'CRM_Report_Form_Member_Detail',                  NULL, 0, 0, 16, '{ts escape="sql"}Provides a list of members along with their membership status and membership details (Join Date, Start Date, End Date). Can also display contributions (payments) associated with each membership.{/ts}', 0, 0, 1, @memberCompId, NULL, NULL),
+  (@option_group_id_report , '{ts escape="sql"}Membership Report (Summary){/ts}',             'member/summary',                 'CRM_Report_Form_Member_Summary',                 NULL, 0, 0, 15, '{ts escape="sql"}Provides a summary of memberships by type and Member Since.{/ts}', 0, 0, 1, @memberCompId, NULL, NULL),
+  (@option_group_id_report , '{ts escape="sql"}Membership Report (Detail){/ts}',              'member/detail',                  'CRM_Report_Form_Member_Detail',                  NULL, 0, 0, 16, '{ts escape="sql"}Provides a list of members along with their membership status and membership details (Member Since, Membership Start Date, Membership Expiration Date). Can also display contributions (payments) associated with each membership.{/ts}', 0, 0, 1, @memberCompId, NULL, NULL),
   (@option_group_id_report , '{ts escape="sql"}Membership Report (Lapsed){/ts}',              'member/lapse',                   'CRM_Report_Form_Member_Lapse',                   NULL, 0, 0, 17, '{ts escape="sql"}Provides a list of memberships that lapsed or will lapse before the date you specify.{/ts}', 0, 0, 1, @memberCompId, NULL, NULL),
   (@option_group_id_report , '{ts escape="sql"}Event Participant Report (List){/ts}',         'event/participantListing',       'CRM_Report_Form_Event_ParticipantListing',       NULL, 0, 0, 18, '{ts escape="sql"}Provides lists of participants for an event.{/ts}', 0, 0, 1, @eventCompId, NULL, NULL),
   (@option_group_id_report , '{ts escape="sql"}Event Income Report (Summary){/ts}',           'event/summary',                  'CRM_Report_Form_Event_Summary',                  NULL, 0, 0, 19, '{ts escape="sql"}Provides an overview of event income. You can include key information such as event ID, registration, attendance, and income generated to help you determine the success of an event.{/ts}', 0, 0, 1, @eventCompId, NULL, NULL),
diff --git a/civicrm/xml/templates/civicrm_navigation.tpl b/civicrm/xml/templates/civicrm_navigation.tpl
index e326e70c7203f71d2a8ea2ff7edcfd28bd25380e..fdf300ea9b0114fc074ce8b2627bf1ff5b4b5892 100644
--- a/civicrm/xml/templates/civicrm_navigation.tpl
+++ b/civicrm/xml/templates/civicrm_navigation.tpl
@@ -105,7 +105,7 @@ VALUES
     ( @domainID, 'civicrm/contribute/add?reset=1&action=add&context=standalone', '{ts escape="sql" skip="true"}New Contribution{/ts}',  'New Contribution',       'access CiviContribute,edit contributions', 'AND', @contributionlastID, '1', NULL, 2 ),
     ( @domainID, 'civicrm/contribute/search?reset=1',                       '{ts escape="sql" skip="true"}Find Contributions{/ts}',     'Find Contributions',     'access CiviContribute', '', @contributionlastID, '1', NULL, 3 ),
     ( @domainID, 'civicrm/report/list?compid=2&reset=1',                    '{ts escape="sql" skip="true"}Contribution Reports{/ts}',   'Contribution Reports',     'access CiviContribute', '', @contributionlastID, '1', 1,    4 ),
-    ( @domainID, 'civicrm/contribute/import?reset=1',                       '{ts escape="sql" skip="true"}Import Contributions{/ts}',   'Import Contributions',   'access CiviContribute,edit contributions', 'AND', @contributionlastID, '1', '1',  5 ),
+    ( @domainID, 'civicrm/import/contribution?reset=1',                       '{ts escape="sql" skip="true"}Import Contributions{/ts}',   'Import Contributions',   'access CiviContribute,edit contributions', 'AND', @contributionlastID, '1', '1',  5 ),
     ( @domainID, 'civicrm/batch?reset=1',                                   '{ts escape="sql" skip="true"}Batch Data Entry{/ts}',        'Batch Data Entry',           'access CiviContribute', '', @contributionlastID, '1', NULL, 7 );
 
 INSERT INTO civicrm_navigation
@@ -684,12 +684,12 @@ VALUES
 INSERT INTO `civicrm_report_instance`
     ( `domain_id`, `title`, `report_id`, `description`, `permission`, `form_values`)
 VALUES
-    ( @domainID, '{ts escape="sql" skip="true"}Membership Summary{/ts}', 'member/summary', '{ts escape="sql" skip="true"}Provides a summary of memberships by type and join date.{/ts}', 'access CiviMember', '{literal}a:18:{s:6:"fields";a:2:{s:18:"membership_type_id";s:1:"1";s:12:"total_amount";s:1:"1";}s:29:"membership_join_date_relative";s:1:"0";s:25:"membership_join_date_from";s:0:"";s:23:"membership_join_date_to";s:0:"";s:21:"membership_type_id_op";s:2:"in";s:24:"membership_type_id_value";a:0:{}s:12:"status_id_op";s:2:"in";s:15:"status_id_value";a:0:{}s:25:"contribution_status_id_op";s:2:"in";s:28:"contribution_status_id_value";a:0:{}s:9:"group_bys";a:2:{s:9:"join_date";s:1:"1";s:18:"membership_type_id";s:1:"1";}s:14:"group_bys_freq";a:1:{s:9:"join_date";s:5:"MONTH";}s:11:"description";s:56:"Provides a summary of memberships by type and join date.";s:13:"email_subject";s:0:"";s:8:"email_to";s:0:"";s:8:"email_cc";s:0:"";s:10:"permission";s:17:"access CiviMember";s:9:"domain_id";i:1;}{/literal}');
+    ( @domainID, '{ts escape="sql" skip="true"}Membership Summary{/ts}', 'member/summary', '{ts escape="sql" skip="true"}Provides a summary of memberships by Type and Member Since.{/ts}', 'access CiviMember', '{literal}a:18:{s:6:"fields";a:2:{s:18:"membership_type_id";s:1:"1";s:12:"total_amount";s:1:"1";}s:29:"membership_join_date_relative";s:1:"0";s:25:"membership_join_date_from";s:0:"";s:23:"membership_join_date_to";s:0:"";s:21:"membership_type_id_op";s:2:"in";s:24:"membership_type_id_value";a:0:{}s:12:"status_id_op";s:2:"in";s:15:"status_id_value";a:0:{}s:25:"contribution_status_id_op";s:2:"in";s:28:"contribution_status_id_value";a:0:{}s:9:"group_bys";a:2:{s:9:"join_date";s:1:"1";s:18:"membership_type_id";s:1:"1";}s:14:"group_bys_freq";a:1:{s:9:"join_date";s:5:"MONTH";}s:11:"description";s:59:"Provides a summary of memberships by Type and Member Since.";s:13:"email_subject";s:0:"";s:8:"email_to";s:0:"";s:8:"email_cc";s:0:"";s:10:"permission";s:17:"access CiviMember";s:9:"domain_id";i:1;}{/literal}');
 
 INSERT INTO `civicrm_report_instance`
     ( `domain_id`, `title`, `report_id`, `description`, `permission`, `form_values`)
 VALUES
-    ( @domainID, '{ts escape="sql" skip="true"}Membership Details{/ts}', 'member/detail', '{ts escape="sql" skip="true"}Provides a list of members along with their membership status and membership details (Join Date, Start Date, End Date). Can also display contributions (payments) associated with each membership.{/ts}', 'access CiviMember', '{literal}a:28:{s:6:"fields";a:5:{s:9:"sort_name";s:1:"1";s:18:"membership_type_id";s:1:"1";s:21:"membership_start_date";s:1:"1";s:19:"membership_end_date";s:1:"1";s:4:"name";s:1:"1";}s:12:"sort_name_op";s:3:"has";s:15:"sort_name_value";s:0:"";s:6:"id_min";s:0:"";s:6:"id_max";s:0:"";s:5:"id_op";s:3:"lte";s:8:"id_value";s:0:"";s:29:"membership_join_date_relative";s:1:"0";s:25:"membership_join_date_from";s:0:"";s:23:"membership_join_date_to";s:0:"";s:23:"owner_membership_id_min";s:0:"";s:23:"owner_membership_id_max";s:0:"";s:22:"owner_membership_id_op";s:3:"lte";s:25:"owner_membership_id_value";s:0:"";s:6:"tid_op";s:2:"in";s:9:"tid_value";a:0:{}s:6:"sid_op";s:2:"in";s:9:"sid_value";a:0:{}s:6:"gid_op";s:2:"in";s:9:"gid_value";a:0:{}s:8:"tagid_op";s:2:"in";s:11:"tagid_value";a:0:{}s:11:"description";s:119:"Provides a list of members along with their membership status and membership details (Join Date, Start Date, End Date).";s:13:"email_subject";s:0:"";s:8:"email_to";s:0:"";s:8:"email_cc";s:0:"";s:10:"permission";s:17:"access CiviMember";s:9:"domain_id";i:1;}{/literal}');
+    ( @domainID, '{ts escape="sql" skip="true"}Membership Details{/ts}', 'member/detail', '{ts escape="sql" skip="true"}Provides a list of members along with their Membership Status and membership details (Member Since, Membership Start Date, Membership Expiration Date). Can also display contributions (payments) associated with each membership.{/ts}', 'access CiviMember', '{literal}a:28:{s:6:"fields";a:5:{s:9:"sort_name";s:1:"1";s:18:"membership_type_id";s:1:"1";s:21:"membership_start_date";s:1:"1";s:19:"membership_end_date";s:1:"1";s:4:"name";s:1:"1";}s:12:"sort_name_op";s:3:"has";s:15:"sort_name_value";s:0:"";s:6:"id_min";s:0:"";s:6:"id_max";s:0:"";s:5:"id_op";s:3:"lte";s:8:"id_value";s:0:"";s:29:"membership_join_date_relative";s:1:"0";s:25:"membership_join_date_from";s:0:"";s:23:"membership_join_date_to";s:0:"";s:23:"owner_membership_id_min";s:0:"";s:23:"owner_membership_id_max";s:0:"";s:22:"owner_membership_id_op";s:3:"lte";s:25:"owner_membership_id_value";s:0:"";s:6:"tid_op";s:2:"in";s:9:"tid_value";a:0:{}s:6:"sid_op";s:2:"in";s:9:"sid_value";a:0:{}s:6:"gid_op";s:2:"in";s:9:"gid_value";a:0:{}s:8:"tagid_op";s:2:"in";s:11:"tagid_value";a:0:{}s:11:"description";s:151:"Provides a list of members along with their Membership Status and membership details (Member Since, Membership Start Date, Membership Expiration Date).";s:13:"email_subject";s:0:"";s:8:"email_to";s:0:"";s:8:"email_cc";s:0:"";s:10:"permission";s:17:"access CiviMember";s:9:"domain_id";i:1;}{/literal}');
 
 INSERT INTO `civicrm_report_instance`
     ( `domain_id`, `title`, `report_id`, `description`, `permission`, `form_values`)
diff --git a/civicrm/xml/templates/dao.tpl b/civicrm/xml/templates/dao.tpl
index 904aefbb8f6dc5d3da8bf0ac5ee53740fd10be53..d56d62fcecba1fab8de119db01e4f91a563ce322 100644
--- a/civicrm/xml/templates/dao.tpl
+++ b/civicrm/xml/templates/dao.tpl
@@ -184,17 +184,19 @@ class {$table.className} extends CRM_Core_DAO {ldelim}
 {if isset($field.cols)}
                       'cols'      => {$field.cols},
 {/if} {* field.cols *}
-
-{if $field.import}
-                      'import'    => {$field.import|strtoupper},
+                      'usage'     => array(
+                                       {foreach from=$field.usage key=usage item=isUsed}'{$usage}' => {$isUsed},
+                                       {/foreach}),
+{if $field.import === 'TRUE'}
+                      'import'    => TRUE,
 
 {/if} {* field.import *}
   'where'     => '{$table.name}.{$field.name}',
   {if $field.headerPattern}'headerPattern' => '{$field.headerPattern}',{/if}
   {if $field.dataPattern}'dataPattern' => '{$field.dataPattern}',{/if}
-{if $field.export}
-                      'export'    => {$field.export|strtoupper},
-{/if} {* field.export *}
+{if $field.export === 'TRUE' || ($field.export === 'FALSE' && $field.import === 'TRUE')}
+                      'export'    => {$field.export},
+{/if} {* field.export - only show if meaningful, deprecated for usage *}
 {if $field.contactType}
                       'contactType' => {if $field.contactType == 'null'}NULL{else}'{$field.contactType}'{/if},
 {/if}
diff --git a/civicrm/xml/templates/message_templates/membership_autorenew_cancelled_html.tpl b/civicrm/xml/templates/message_templates/membership_autorenew_cancelled_html.tpl
index 6c8ccdb379bf112eba446bef4b6f89adfe710377..738a71b90afdff514d3f449249d539ba845fec1e 100644
--- a/civicrm/xml/templates/message_templates/membership_autorenew_cancelled_html.tpl
+++ b/civicrm/xml/templates/message_templates/membership_autorenew_cancelled_html.tpl
@@ -54,7 +54,7 @@
       {if $mem_end_date}
        <tr>
         <td {$labelStyle}>
-         {ts}Membership End Date{/ts}
+         {ts}Membership Expiration Date{/ts}
         </td>
         <td {$valueStyle}>
           {$mem_end_date|crmDate}
diff --git a/civicrm/xml/templates/message_templates/membership_autorenew_cancelled_text.tpl b/civicrm/xml/templates/message_templates/membership_autorenew_cancelled_text.tpl
index 11806cc784c6ee7411b9637d8afc297b8f576f0c..ca6d827bded245cdc5248a387ee98295955d2c4c 100644
--- a/civicrm/xml/templates/message_templates/membership_autorenew_cancelled_text.tpl
+++ b/civicrm/xml/templates/message_templates/membership_autorenew_cancelled_text.tpl
@@ -9,6 +9,6 @@
 {ts}Membership Status{/ts}: {$membership_status}
 {if $mem_start_date}{ts}Membership Start Date{/ts}: {$mem_start_date|crmDate}
 {/if}
-{if $mem_end_date}{ts}Membership End Date{/ts}: {$mem_end_date|crmDate}
+{if $mem_end_date}{ts}Membership Expiration Date{/ts}: {$mem_end_date|crmDate}
 {/if}
 
diff --git a/civicrm/xml/templates/message_templates/membership_offline_receipt_html.tpl b/civicrm/xml/templates/message_templates/membership_offline_receipt_html.tpl
index 03e5be8a8c2dbfd6d1fd62187cab06da2bc7d9a7..0d00a94e1177e7ef48023dd8fd5c79922025769f 100644
--- a/civicrm/xml/templates/message_templates/membership_offline_receipt_html.tpl
+++ b/civicrm/xml/templates/message_templates/membership_offline_receipt_html.tpl
@@ -11,7 +11,7 @@
 {capture assign=labelStyle }style="padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;"{/capture}
 {capture assign=valueStyle }style="padding: 4px; border-bottom: 1px solid #999;"{/capture}
 
-  <table id="crm-event_receipt"
+  <table id="crm-membership_receipt"
          style="font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;">
 
     <!-- BEGIN HEADER -->
@@ -59,7 +59,7 @@
               </tr>
               <tr>
                 <td {$labelStyle}>
-                  {ts}Membership End Date{/ts}
+                  {ts}Membership Expiration Date{/ts}
                 </td>
                 <td {$valueStyle}>
                   {$mem_end_date}
@@ -98,7 +98,7 @@
                             <th>{ts}Total{/ts}</th>
                           {/if}
                           <th>{ts}Membership Start Date{/ts}</th>
-                          <th>{ts}Membership End Date{/ts}</th>
+                          <th>{ts}Membership Expiration Date{/ts}</th>
                         </tr>
                         {foreach from=$value item=line}
                           <tr>
diff --git a/civicrm/xml/templates/message_templates/membership_offline_receipt_text.tpl b/civicrm/xml/templates/message_templates/membership_offline_receipt_text.tpl
index d96589dc385936fd169582d81533e98f9f839d2d..16207453d0a4fb05e2a2238d84f5ae7e0bb3d3c2 100644
--- a/civicrm/xml/templates/message_templates/membership_offline_receipt_text.tpl
+++ b/civicrm/xml/templates/message_templates/membership_offline_receipt_text.tpl
@@ -14,7 +14,7 @@
 {if empty($cancelled)}
 {if empty($lineItem)}
 {ts}Membership Start Date{/ts}: {$mem_start_date}
-{ts}Membership End Date{/ts}: {$mem_end_date}
+{ts}Membership Expiration Date{/ts}: {$mem_end_date}
 {/if}
 
 {if $formValues.total_amount OR $formValues.total_amount eq 0 }
@@ -36,7 +36,7 @@
 {capture assign=ts_total}{ts}Total{/ts}{/capture}
 {/if}
 {capture assign=ts_start_date}{ts}Membership Start Date{/ts}{/capture}
-{capture assign=ts_end_date}{ts}Membership End Date{/ts}{/capture}
+{capture assign=ts_end_date}{ts}Membership Expiration Date{/ts}{/capture}
 {$ts_item|string_format:"%-30s"} {$ts_total|string_format:"%10s"} {if !empty($dataArray)} {$ts_subtotal|string_format:"%10s"} {$ts_taxRate|string_format:"%10s"} {$ts_taxAmount|string_format:"%10s"} {$ts_total|string_format:"%10s"} {/if} {$ts_start_date|string_format:"%20s"} {$ts_end_date|string_format:"%20s"}
 --------------------------------------------------------------------------------------------------
 
diff --git a/civicrm/xml/templates/message_templates/membership_online_receipt_html.tpl b/civicrm/xml/templates/message_templates/membership_online_receipt_html.tpl
index efc2fa10a75b4c050a6f46a899c1117ad9d80a3b..e995bbc2b0cdae60eef3811f14dbf20e80970080 100644
--- a/civicrm/xml/templates/message_templates/membership_online_receipt_html.tpl
+++ b/civicrm/xml/templates/message_templates/membership_online_receipt_html.tpl
@@ -61,7 +61,7 @@
       {if $mem_end_date}
        <tr>
         <td {$labelStyle}>
-         {ts}Membership End Date{/ts}
+         {ts}Membership Expiration Date{/ts}
         </td>
         <td {$valueStyle}>
           {$mem_end_date|crmDate}
@@ -164,7 +164,7 @@
               <th>{ts}Total{/ts}</th>
             {/if}
       <th>{ts}Membership Start Date{/ts}</th>
-      <th>{ts}Membership End Date{/ts}</th>
+      <th>{ts}Membership Expiration Date{/ts}</th>
            </tr>
            {foreach from=$value item=line}
             <tr>
diff --git a/civicrm/xml/templates/message_templates/membership_online_receipt_text.tpl b/civicrm/xml/templates/message_templates/membership_online_receipt_text.tpl
index ce1b0e7566458de78e310c9350b93a138ad28c20..12e9774c2008f5bd7e79bf1439dca055313953f1 100644
--- a/civicrm/xml/templates/message_templates/membership_online_receipt_text.tpl
+++ b/civicrm/xml/templates/message_templates/membership_online_receipt_text.tpl
@@ -17,7 +17,7 @@
 {ts}Membership Type{/ts}: {$membership_name}
 {if $mem_start_date}{ts}Membership Start Date{/ts}: {$mem_start_date|crmDate}
 {/if}
-{if $mem_end_date}{ts}Membership End Date{/ts}: {$mem_end_date|crmDate}
+{if $mem_end_date}{ts}Membership Expiration Date{/ts}: {$mem_end_date|crmDate}
 {/if}
 
 {/if}
@@ -60,7 +60,7 @@
 {capture assign=ts_total}{ts}Total{/ts}{/capture}
 {/if}
 {capture assign=ts_start_date}{ts}Membership Start Date{/ts}{/capture}
-{capture assign=ts_end_date}{ts}Membership End Date{/ts}{/capture}
+{capture assign=ts_end_date}{ts}Membership Expiration Date{/ts}{/capture}
 {$ts_item|string_format:"%-30s"} {$ts_total|string_format:"%10s"} {if !empty($dataArray)} {$ts_subtotal|string_format:"%10s"} {$ts_taxRate|string_format:"%10s"} {$ts_taxAmount|string_format:"%10s"} {$ts_total|string_format:"%10s"} {/if} {$ts_start_date|string_format:"%20s"} {$ts_end_date|string_format:"%20s"}
 --------------------------------------------------------------------------------------------------
 
diff --git a/civicrm/xml/version.xml b/civicrm/xml/version.xml
index 35548fbca3b541edef33c53977962559076e8777..710e6e6ed448f0d7d7f2b4b58c06c0758bd51c8f 100644
--- a/civicrm/xml/version.xml
+++ b/civicrm/xml/version.xml
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="iso-8859-1" ?>
 <version>
-  <version_no>5.60.0</version_no>
+  <version_no>5.61.0</version_no>
 </version>
diff --git a/tests/phpunit/CiviWP/HookTest.php b/tests/phpunit/CiviWP/HookTest.php
index ad778438b8068b196531c91bdf5ca67e362669f2..b1eb6d1da13b8989bd9fe17ac60de4c1a5c23061 100644
--- a/tests/phpunit/CiviWP/HookTest.php
+++ b/tests/phpunit/CiviWP/HookTest.php
@@ -20,15 +20,16 @@ namespace CiviWP {
       );
       $this->assertNotEquals($arg2['foo'], 456);
       $this->assertFalse(isset($arg2['hook_was_called']));
+      $null = NULL;
       \CRM_Utils_Hook::singleton()
         ->invoke(
           2,
           $arg1,
           $arg2,
-          \CRM_Utils_Hook::$_nullObject,
-          \CRM_Utils_Hook::$_nullObject,
-          \CRM_Utils_Hook::$_nullObject,
-          \CRM_Utils_Hook::$_nullObject,
+          $null,
+          $null,
+          $null,
+          $null,
           'civicrm_fakeAlterableHook'
         );