From 984540210b72f1a7d14528d5a019db70817e15c4 Mon Sep 17 00:00:00 2001
From: Kevin Cristiano <kcristiano@kcristiano.com>
Date: Thu, 4 May 2023 06:49:29 -0400
Subject: [PATCH] civicrm release-5.61.0

---
 civicrm.php                                   |    4 +-
 civicrm/CRM/ACL/API.php                       |    2 +-
 civicrm/CRM/ACL/BAO/ACL.php                   |   20 +-
 civicrm/CRM/ACL/BAO/ACLEntityRole.php         |    8 +-
 civicrm/CRM/ACL/DAO/ACL.php                   |   68 +-
 civicrm/CRM/ACL/DAO/ACLCache.php              |   26 +-
 civicrm/CRM/ACL/DAO/ACLEntityRole.php         |   32 +-
 civicrm/CRM/ACL/Form/ACL.php                  |    2 +-
 civicrm/CRM/ACL/Form/ACLBasic.php             |    2 +-
 .../CRM/Activity/BAO/ActivityAssignment.php   |   57 -
 civicrm/CRM/Activity/BAO/ActivityTarget.php   |  111 -
 civicrm/CRM/Activity/DAO/Activity.php         |  164 +-
 civicrm/CRM/Activity/DAO/ActivityContact.php  |   26 +-
 civicrm/CRM/Activity/Form/Activity.php        |    5 +-
 civicrm/CRM/Activity/Form/Task/Batch.php      |    6 +-
 civicrm/CRM/Activity/Import/Form/MapField.php |    9 +
 .../CRM/Activity/Import/Parser/Activity.php   |    1 +
 civicrm/CRM/Admin/Form/ContactType.php        |    6 +-
 civicrm/CRM/Admin/Form/Job.php                |    2 +-
 civicrm/CRM/Admin/Form/LocationType.php       |    2 +-
 civicrm/CRM/Admin/Form/Mapping.php            |    2 +-
 civicrm/CRM/Admin/Form/MessageTemplates.php   |    3 +-
 civicrm/CRM/Admin/Form/PaymentProcessor.php   |  116 +-
 civicrm/CRM/Admin/Form/RelationshipType.php   |   28 +-
 civicrm/CRM/Admin/Form/ScheduleReminders.php  |    2 +-
 .../Form/Setting/UpdateConfigBackend.php      |   16 +-
 civicrm/CRM/Api4/Page/Api4Explorer.php        |   27 +-
 civicrm/CRM/Badge/BAO/Layout.php              |    8 +-
 civicrm/CRM/Batch/BAO/Batch.php               |   36 +-
 civicrm/CRM/Batch/DAO/Batch.php               |  104 +-
 civicrm/CRM/Batch/DAO/EntityBatch.php         |   26 +-
 civicrm/CRM/Batch/Form/Entry.php              |    4 +-
 civicrm/CRM/Campaign/BAO/Campaign.php         |   13 +-
 civicrm/CRM/Campaign/BAO/Survey.php           |    9 +-
 civicrm/CRM/Campaign/DAO/Campaign.php         |  111 +-
 civicrm/CRM/Campaign/DAO/CampaignGroup.php    |   32 +-
 civicrm/CRM/Campaign/DAO/Survey.php           |  122 +-
 civicrm/CRM/Campaign/Form/Campaign.php        |    2 +-
 civicrm/CRM/Campaign/Form/Petition.php        |    2 +-
 civicrm/CRM/Campaign/Form/Search.php          |    1 -
 civicrm/CRM/Campaign/Form/Survey/Delete.php   |    2 +-
 civicrm/CRM/Case/BAO/Case.php                 |   50 +-
 civicrm/CRM/Case/BAO/CaseContact.php          |   61 +-
 civicrm/CRM/Case/DAO/Case.php                 |   66 +-
 civicrm/CRM/Case/DAO/CaseActivity.php         |   20 +-
 civicrm/CRM/Case/DAO/CaseContact.php          |   20 +-
 civicrm/CRM/Case/DAO/CaseType.php             |   50 +-
 civicrm/CRM/Case/Form/Activity/OpenCase.php   |    4 +-
 civicrm/CRM/Case/Form/Case.php                |    2 +-
 civicrm/CRM/Case/Form/Task/PDF.php            |    1 -
 civicrm/CRM/Case/Page/AJAX.php                |    2 +-
 civicrm/CRM/Contact/BAO/Contact/Utils.php     |    5 +-
 civicrm/CRM/Contact/BAO/ContactType.php       |    9 +-
 civicrm/CRM/Contact/BAO/Group.php             |   15 +-
 civicrm/CRM/Contact/BAO/Individual.php        |   92 -
 civicrm/CRM/Contact/BAO/Relationship.php      |  139 +-
 civicrm/CRM/Contact/BAO/RelationshipType.php  |   16 +-
 civicrm/CRM/Contact/BAO/SavedSearch.php       |   44 +-
 .../CRM/Contact/BAO/SubscriptionHistory.php   |   31 +-
 civicrm/CRM/Contact/DAO/ACLContactCache.php   |   26 +-
 civicrm/CRM/Contact/DAO/Contact.php           |  320 +-
 civicrm/CRM/Contact/DAO/ContactType.php       |   56 +-
 civicrm/CRM/Contact/DAO/DashboardContact.php  |   38 +-
 civicrm/CRM/Contact/DAO/Factory.php           |   51 -
 civicrm/CRM/Contact/DAO/Group.php             |  138 +-
 civicrm/CRM/Contact/DAO/GroupContact.php      |   38 +-
 civicrm/CRM/Contact/DAO/GroupContactCache.php |   20 +-
 civicrm/CRM/Contact/DAO/GroupNesting.php      |   20 +-
 civicrm/CRM/Contact/DAO/GroupOrganization.php |   20 +-
 civicrm/CRM/Contact/DAO/Relationship.php      |   80 +-
 civicrm/CRM/Contact/DAO/RelationshipCache.php |   74 +-
 civicrm/CRM/Contact/DAO/RelationshipType.php  |   74 +-
 civicrm/CRM/Contact/DAO/SavedSearch.php       |   86 +-
 .../CRM/Contact/DAO/SubscriptionHistory.php   |   44 +-
 civicrm/CRM/Contact/Form/DedupeFind.php       |   37 +-
 civicrm/CRM/Contact/Form/Merge.php            |    8 +-
 civicrm/CRM/Contact/Form/Relationship.php     |    2 +-
 civicrm/CRM/Contact/Form/Task/PDF.php         |    2 -
 .../CRM/Contact/Form/Task/PDFLetterCommon.php |   34 -
 civicrm/CRM/Contact/Form/Task/SMSCommon.php   |    1 -
 .../CRM/Contact/Import/Form/DataSource.php    |  102 +-
 civicrm/CRM/Contact/Import/Form/MapField.php  |   35 +-
 civicrm/CRM/Contact/Import/Form/Preview.php   |    9 +
 civicrm/CRM/Contact/Import/Form/Summary.php   |    7 +
 civicrm/CRM/Contact/Import/Parser/Contact.php |   34 +-
 .../CRM/Contact/Page/View/Relationship.php    |    4 +-
 civicrm/CRM/Contact/Page/View/Summary.php     |    4 +-
 civicrm/CRM/Contact/Tokens.php                |    1 -
 civicrm/CRM/Contribute/BAO/Contribution.php   |   29 +-
 .../CRM/Contribute/BAO/ContributionPage.php   |    8 +-
 .../CRM/Contribute/BAO/ContributionRecur.php  |   19 +-
 civicrm/CRM/Contribute/BAO/ManagePremiums.php |   92 -
 civicrm/CRM/Contribute/BAO/Premium.php        |    9 +-
 civicrm/CRM/Contribute/BAO/Product.php        |    8 +-
 civicrm/CRM/Contribute/DAO/Contribution.php   |  188 +-
 .../CRM/Contribute/DAO/ContributionPage.php   |  278 +-
 .../Contribute/DAO/ContributionProduct.php    |   62 +-
 .../CRM/Contribute/DAO/ContributionRecur.php  |  177 +-
 .../CRM/Contribute/DAO/ContributionSoft.php   |   62 +-
 civicrm/CRM/Contribute/DAO/Premium.php        |   68 +-
 .../CRM/Contribute/DAO/PremiumsProduct.php    |   32 +-
 civicrm/CRM/Contribute/DAO/Product.php        |  116 +-
 civicrm/CRM/Contribute/DAO/Widget.php         |  104 +-
 .../Contribute/Form/Contribution/Confirm.php  |    8 +-
 .../CRM/Contribute/Form/Contribution/Main.php |   35 +-
 .../Contribute/Form/Contribution/ThankYou.php |    4 +-
 .../CRM/Contribute/Form/ContributionBase.php  |  179 +-
 .../CRM/Contribute/Form/ContributionRecur.php |   15 -
 .../CRM/Contribute/Form/ManagePremiums.php    |    2 +-
 civicrm/CRM/Contribute/Form/SoftCredit.php    |    5 +-
 .../CRM/Contribute/Form/Task/PDFLetter.php    |   12 +-
 .../CRM/Contribute/Import/Form/DataSource.php |    6 -
 .../CRM/Contribute/Import/Form/MapField.php   |   64 +-
 .../Contribute/Import/Parser/Contribution.php |  207 +-
 .../CRM/Contribute/xml/Menu/Contribute.xml    |    8 -
 civicrm/CRM/Core/BAO/ActionSchedule.php       |   18 +-
 civicrm/CRM/Core/BAO/Address.php              |  119 +-
 civicrm/CRM/Core/BAO/Block.php                |    5 +-
 civicrm/CRM/Core/BAO/CustomField.php          |    9 +-
 civicrm/CRM/Core/BAO/CustomGroup.php          |   22 +-
 civicrm/CRM/Core/BAO/CustomValue.php          |    3 +-
 civicrm/CRM/Core/BAO/CustomValueTable.php     |    4 +
 civicrm/CRM/Core/BAO/Domain.php               |    1 +
 civicrm/CRM/Core/BAO/Email.php                |  149 +-
 civicrm/CRM/Core/BAO/EntityTag.php            |   12 +-
 civicrm/CRM/Core/BAO/Extension.php            |    1 +
 civicrm/CRM/Core/BAO/IM.php                   |   29 +-
 civicrm/CRM/Core/BAO/Job.php                  |    9 +-
 civicrm/CRM/Core/BAO/LocationType.php         |    9 +-
 civicrm/CRM/Core/BAO/Mapping.php              |    1 +
 civicrm/CRM/Core/BAO/MessageTemplate.php      |   16 +-
 civicrm/CRM/Core/BAO/Navigation.php           |    8 +-
 civicrm/CRM/Core/BAO/Note.php                 |   35 +-
 civicrm/CRM/Core/BAO/OpenID.php               |   29 +-
 civicrm/CRM/Core/BAO/OptionGroup.php          |    9 +-
 civicrm/CRM/Core/BAO/OptionValue.php          |    8 +-
 civicrm/CRM/Core/BAO/Phone.php                |   34 +-
 civicrm/CRM/Core/BAO/RecurringEntity.php      |    1 +
 civicrm/CRM/Core/BAO/SchemaHandler.php        |   51 +-
 civicrm/CRM/Core/BAO/Tag.php                  |    1 +
 civicrm/CRM/Core/BAO/UFField.php              |   10 +-
 civicrm/CRM/Core/BAO/UFGroup.php              |   15 +-
 civicrm/CRM/Core/BAO/UFJoin.php               |    4 +-
 civicrm/CRM/Core/BAO/UserJob.php              |   66 +-
 civicrm/CRM/Core/BAO/Website.php              |   14 +-
 civicrm/CRM/Core/BAO/WordReplacement.php      |    2 +
 civicrm/CRM/Core/Base.php                     |   34 -
 civicrm/CRM/Core/CodeGen/Specification.php    |   35 +-
 civicrm/CRM/Core/Config.php                   |    2 +-
 civicrm/CRM/Core/DAO.php                      |   45 +-
 civicrm/CRM/Core/DAO/ActionLog.php            |   62 +-
 civicrm/CRM/Core/DAO/ActionMapping.php        |   56 +-
 civicrm/CRM/Core/DAO/ActionSchedule.php       |  254 +-
 civicrm/CRM/Core/DAO/Address.php              |  178 +-
 civicrm/CRM/Core/DAO/AddressFormat.php        |   14 +-
 civicrm/CRM/Core/DAO/Cache.php                |   59 +-
 civicrm/CRM/Core/DAO/Component.php            |   20 +-
 civicrm/CRM/Core/DAO/Country.php              |   62 +-
 civicrm/CRM/Core/DAO/County.php               |   32 +-
 civicrm/CRM/Core/DAO/CustomField.php          |  205 +-
 civicrm/CRM/Core/DAO/CustomGroup.php          |  134 +-
 civicrm/CRM/Core/DAO/Dashboard.php            |   74 +-
 civicrm/CRM/Core/DAO/Discount.php             |   38 +-
 civicrm/CRM/Core/DAO/Domain.php               |   44 +-
 civicrm/CRM/Core/DAO/Email.php                |   74 +-
 civicrm/CRM/Core/DAO/EntityFile.php           |   26 +-
 civicrm/CRM/Core/DAO/EntityTag.php            |   26 +-
 civicrm/CRM/Core/DAO/Extension.php            |   50 +-
 civicrm/CRM/Core/DAO/File.php                 |   50 +-
 civicrm/CRM/Core/DAO/IM.php                   |   46 +-
 civicrm/CRM/Core/DAO/Job.php                  |   68 +-
 civicrm/CRM/Core/DAO/JobLog.php               |   50 +-
 civicrm/CRM/Core/DAO/LocBlock.php             |   56 +-
 civicrm/CRM/Core/DAO/LocationType.php         |   50 +-
 civicrm/CRM/Core/DAO/Log.php                  |   38 +-
 civicrm/CRM/Core/DAO/MailSettings.php         |  104 +-
 civicrm/CRM/Core/DAO/Managed.php              |   44 +-
 civicrm/CRM/Core/DAO/Mapping.php              |   26 +-
 civicrm/CRM/Core/DAO/MappingField.php         |   86 +-
 civicrm/CRM/Core/DAO/Menu.php                 |  134 +-
 civicrm/CRM/Core/DAO/MessageTemplate.php      |   74 +-
 civicrm/CRM/Core/DAO/Navigation.php           |   74 +-
 civicrm/CRM/Core/DAO/Note.php                 |   62 +-
 civicrm/CRM/Core/DAO/OpenID.php               |   40 +-
 civicrm/CRM/Core/DAO/OptionGroup.php          |   56 +-
 civicrm/CRM/Core/DAO/OptionValue.php          |  110 +-
 civicrm/CRM/Core/DAO/Phone.php                |   64 +-
 civicrm/CRM/Core/DAO/PreferencesDate.php      |   44 +-
 civicrm/CRM/Core/DAO/PrevNextCache.php        |   44 +-
 civicrm/CRM/Core/DAO/PrintLabel.php           |   68 +-
 civicrm/CRM/Core/DAO/RecurringEntity.php      |   32 +-
 civicrm/CRM/Core/DAO/Setting.php              |   56 +-
 civicrm/CRM/Core/DAO/StateProvince.php        |   32 +-
 civicrm/CRM/Core/DAO/StatusPreference.php     |   50 +-
 civicrm/CRM/Core/DAO/SystemLog.php            |   44 +-
 civicrm/CRM/Core/DAO/Tag.php                  |   68 +-
 civicrm/CRM/Core/DAO/Timezone.php             |   38 +-
 civicrm/CRM/Core/DAO/Translation.php          |   44 +-
 civicrm/CRM/Core/DAO/UFField.php              |  116 +-
 civicrm/CRM/Core/DAO/UFGroup.php              |  164 +-
 civicrm/CRM/Core/DAO/UFJoin.php               |   50 +-
 civicrm/CRM/Core/DAO/UFMatch.php              |   38 +-
 civicrm/CRM/Core/DAO/UserJob.php              |   74 +-
 civicrm/CRM/Core/DAO/Website.php              |   26 +-
 civicrm/CRM/Core/DAO/WordReplacement.php      |   38 +-
 civicrm/CRM/Core/DAO/Worldregion.php          |   14 +-
 civicrm/CRM/Core/Error.php                    |    9 +-
 civicrm/CRM/Core/Exception.php                |   18 +-
 civicrm/CRM/Core/Form.php                     |   38 +-
 civicrm/CRM/Core/Form/Date.php                |   42 -
 civicrm/CRM/Core/Form/EntityFormTrait.php     |   35 +
 civicrm/CRM/Core/Form/RecurringEntity.php     |    6 +-
 civicrm/CRM/Core/I18n/SchemaStructure.php     |   10 +-
 .../Core/I18n/SchemaStructure_5_61_alpha1.php |  740 ++
 civicrm/CRM/Core/Lock.php                     |   12 +-
 civicrm/CRM/Core/Page.php                     |    2 +-
 civicrm/CRM/Core/Payment.php                  |    2 +-
 civicrm/CRM/Core/Payment/PayPalIPN.php        |    2 +-
 civicrm/CRM/Core/Payment/PayPalProIPN.php     |   30 +-
 civicrm/CRM/Core/Payment/ProcessorForm.php    |    3 +
 civicrm/CRM/Core/SelectValues.php             |    6 +-
 .../Core/Smarty/plugins/modifier.crmMoney.php |    6 +-
 civicrm/CRM/Core/xml/Menu/Group.xml           |    6 +
 civicrm/CRM/Core/xml/Menu/Import.xml          |    8 +
 civicrm/CRM/Custom/Import/Form/DataSource.php |   16 +-
 civicrm/CRM/Custom/Import/Form/MapField.php   |    9 +
 civicrm/CRM/Custom/Import/Parser/Api.php      |    1 +
 civicrm/CRM/Cxn/DAO/Cxn.php                   |   68 +-
 civicrm/CRM/Dedupe/BAO/DedupeRuleGroup.php    |  123 +-
 civicrm/CRM/Dedupe/DAO/DedupeException.php    |   20 +-
 civicrm/CRM/Dedupe/DAO/DedupeRule.php         |   38 +-
 civicrm/CRM/Dedupe/DAO/DedupeRuleGroup.php    |   44 +-
 civicrm/CRM/Dedupe/Finder.php                 |    8 +-
 civicrm/CRM/Dedupe/Merger.php                 |  346 +-
 civicrm/CRM/Event/BAO/Event.php               |    8 +-
 civicrm/CRM/Event/BAO/Participant.php         |   17 -
 .../CRM/Event/BAO/ParticipantStatusType.php   |    5 +-
 civicrm/CRM/Event/BAO/Query.php               |    1 +
 civicrm/CRM/Event/Cart/DAO/Cart.php           |   20 +-
 civicrm/CRM/Event/Cart/DAO/EventInCart.php    |   20 +-
 civicrm/CRM/Event/DAO/Event.php               |  416 +-
 civicrm/CRM/Event/DAO/Participant.php         |  122 +-
 civicrm/CRM/Event/DAO/ParticipantPayment.php  |   20 +-
 .../CRM/Event/DAO/ParticipantStatusType.php   |   56 +-
 .../CRM/Event/Form/ManageEvent/Location.php   |   12 +-
 civicrm/CRM/Event/Form/Participant.php        |    8 +-
 civicrm/CRM/Event/Import/Form/MapField.php    |    9 +
 .../CRM/Event/Import/Parser/Participant.php   |    1 +
 civicrm/CRM/Event/Tokens.php                  |    7 -
 civicrm/CRM/Extension/Manager.php             |    7 +-
 civicrm/CRM/Extension/Manager/Report.php      |    2 +-
 civicrm/CRM/Extension/Manager/Search.php      |    2 +-
 .../Financial/BAO/EntityFinancialAccount.php  |    2 +-
 .../CRM/Financial/BAO/FinancialAccount.php    |    9 +-
 civicrm/CRM/Financial/BAO/FinancialType.php   |   10 +-
 .../CRM/Financial/BAO/PaymentProcessor.php    |  132 +-
 .../Financial/BAO/PaymentProcessorType.php    |    7 +-
 civicrm/CRM/Financial/DAO/Currency.php        |   32 +-
 .../Financial/DAO/EntityFinancialAccount.php  |   32 +-
 .../CRM/Financial/DAO/EntityFinancialTrxn.php |   32 +-
 .../CRM/Financial/DAO/FinancialAccount.php    |   92 +-
 civicrm/CRM/Financial/DAO/FinancialItem.php   |   68 +-
 civicrm/CRM/Financial/DAO/FinancialTrxn.php   |  110 +-
 civicrm/CRM/Financial/DAO/FinancialType.php   |   38 +-
 .../CRM/Financial/DAO/PaymentProcessor.php    |  197 +-
 .../Financial/DAO/PaymentProcessorType.php    |  140 +-
 civicrm/CRM/Financial/DAO/PaymentToken.php    |   80 +-
 civicrm/CRM/Financial/Form/Export.php         |    2 +-
 .../CRM/Financial/Form/FinancialAccount.php   |    2 +-
 civicrm/CRM/Financial/Form/FinancialBatch.php |    2 +-
 civicrm/CRM/Financial/Form/FinancialType.php  |   22 +-
 .../Form/FrontEndPaymentFormTrait.php         |    2 +-
 civicrm/CRM/Friend/DAO/Friend.php             |   62 +-
 civicrm/CRM/Group/Form/Edit.php               |    4 +-
 civicrm/CRM/Import/DataSource.php             |    2 +-
 civicrm/CRM/Import/DataSource/CSV.php         |    4 +-
 civicrm/CRM/Import/DataSource/SQL.php         |    7 +-
 civicrm/CRM/Import/Form/DataSource.php        |  121 +-
 civicrm/CRM/Import/Form/MapField.php          |   68 +-
 civicrm/CRM/Import/Form/Preview.php           |    4 +
 civicrm/CRM/Import/Forms.php                  |  252 +-
 civicrm/CRM/Import/Parser.php                 |   51 +-
 civicrm/CRM/Logging/ReportDetail.php          |    2 +-
 civicrm/CRM/Mailing/BAO/MailingComponent.php  |    8 +-
 civicrm/CRM/Mailing/DAO/BouncePattern.php     |   20 +-
 civicrm/CRM/Mailing/DAO/BounceType.php        |   26 +-
 civicrm/CRM/Mailing/DAO/Mailing.php           |  260 +-
 civicrm/CRM/Mailing/DAO/MailingAB.php         |   86 +-
 civicrm/CRM/Mailing/DAO/MailingComponent.php  |   50 +-
 civicrm/CRM/Mailing/DAO/MailingGroup.php      |   44 +-
 civicrm/CRM/Mailing/DAO/MailingJob.php        |   68 +-
 civicrm/CRM/Mailing/DAO/MailingRecipients.php |   32 +-
 civicrm/CRM/Mailing/DAO/Spool.php             |   44 +-
 civicrm/CRM/Mailing/DAO/TrackableURL.php      |   20 +-
 .../Mailing/Event/DAO/MailingEventBounce.php  |   32 +-
 .../Event/DAO/MailingEventClickThrough.php    |   26 +-
 .../Mailing/Event/DAO/MailingEventConfirm.php |   20 +-
 .../Event/DAO/MailingEventDelivered.php       |   20 +-
 .../Mailing/Event/DAO/MailingEventForward.php |   26 +-
 .../Mailing/Event/DAO/MailingEventOpened.php  |   20 +-
 .../Mailing/Event/DAO/MailingEventQueue.php   |   38 +-
 .../Mailing/Event/DAO/MailingEventReply.php   |   20 +-
 .../Event/DAO/MailingEventSubscribe.php       |   32 +-
 .../Event/DAO/MailingEventUnsubscribe.php     |   26 +-
 civicrm/CRM/Member/ActionMapping.php          |    4 +-
 civicrm/CRM/Member/BAO/MembershipStatus.php   |    8 +-
 civicrm/CRM/Member/BAO/MembershipType.php     |    8 +-
 civicrm/CRM/Member/DAO/Membership.php         |   98 +-
 civicrm/CRM/Member/DAO/MembershipBlock.php    |   80 +-
 civicrm/CRM/Member/DAO/MembershipLog.php      |   56 +-
 civicrm/CRM/Member/DAO/MembershipPayment.php  |   20 +-
 civicrm/CRM/Member/DAO/MembershipStatus.php   |   92 +-
 civicrm/CRM/Member/DAO/MembershipType.php     |  128 +-
 civicrm/CRM/Member/Form.php                   |   18 -
 civicrm/CRM/Member/Form/Membership.php        |   86 +-
 civicrm/CRM/Member/Form/MembershipRenewal.php |    2 +-
 civicrm/CRM/Member/Form/MembershipStatus.php  |   16 -
 civicrm/CRM/Member/Form/MembershipType.php    |   25 -
 civicrm/CRM/Member/Form/Task/PDFLetter.php    |   15 +-
 .../CRM/Member/Import/Parser/Membership.php   |    2 +
 civicrm/CRM/Member/Selector/Search.php        |    4 +-
 civicrm/CRM/PCP/DAO/PCP.php                   |   98 +-
 civicrm/CRM/PCP/DAO/PCPBlock.php              |   80 +-
 civicrm/CRM/Pledge/BAO/PledgePayment.php      |    3 +-
 civicrm/CRM/Pledge/DAO/Pledge.php             |  140 +-
 civicrm/CRM/Pledge/DAO/PledgeBlock.php        |   68 +-
 civicrm/CRM/Pledge/DAO/PledgePayment.php      |   62 +-
 civicrm/CRM/Pledge/Tokens.php                 |   57 +
 civicrm/CRM/Price/BAO/LineItem.php            |   10 +-
 civicrm/CRM/Price/BAO/PriceField.php          |   18 +-
 civicrm/CRM/Price/BAO/PriceFieldValue.php     |    8 +-
 civicrm/CRM/Price/BAO/PriceSet.php            |   26 +-
 civicrm/CRM/Price/DAO/LineItem.php            |   92 +-
 civicrm/CRM/Price/DAO/PriceField.php          |  104 +-
 civicrm/CRM/Price/DAO/PriceFieldValue.php     |  110 +-
 civicrm/CRM/Price/DAO/PriceSet.php            |   80 +-
 civicrm/CRM/Price/DAO/PriceSetEntity.php      |   26 +-
 civicrm/CRM/Price/Form/Option.php             |    6 +-
 civicrm/CRM/Price/Form/Set.php                |   22 -
 civicrm/CRM/Profile/Form.php                  |   35 +-
 civicrm/CRM/Profile/Form/Edit.php             |    3 -
 civicrm/CRM/Profile/Selector/Listings.php     |    2 +-
 civicrm/CRM/Queue/DAO/Queue.php               |   68 +-
 civicrm/CRM/Queue/DAO/QueueItem.php           |   44 +-
 civicrm/CRM/Report/BAO/ReportInstance.php     |    3 +-
 civicrm/CRM/Report/DAO/ReportInstance.php     |  128 +-
 civicrm/CRM/Report/Form.php                   |   81 +-
 civicrm/CRM/Report/Form/Contact/Detail.php    |    6 +-
 civicrm/CRM/Report/Form/Contact/Summary.php   |    2 +-
 .../CRM/Report/Form/Contribute/History.php    |    9 +-
 .../Report/Form/Member/ContributionDetail.php |    6 +-
 civicrm/CRM/Report/Form/Member/Detail.php     |    6 +-
 civicrm/CRM/Report/Form/Member/Summary.php    |    2 +-
 civicrm/CRM/Report/Form/Register.php          |    2 +-
 civicrm/CRM/SMS/BAO/Provider.php              |    5 +-
 civicrm/CRM/SMS/DAO/Provider.php              |   68 +-
 civicrm/CRM/Tag/Form/Edit.php                 |    2 +-
 civicrm/CRM/UF/Form/Field.php                 |    2 +-
 civicrm/CRM/UF/Form/Group.php                 |   27 +-
 civicrm/CRM/UF/Page/Group.php                 |   26 +-
 .../Upgrade/Incremental/php/FiveSixtyOne.php  |  135 +
 .../Incremental/sql/5.61.alpha1.mysql.tpl     |   15 +
 civicrm/CRM/Utils/AutoClean.php               |   22 +
 civicrm/CRM/Utils/Check/Component/Schema.php  |   34 +-
 civicrm/CRM/Utils/Hook.php                    |  516 +-
 civicrm/CRM/Utils/PDF/Utils.php               |   60 -
 civicrm/CRM/Utils/System.php                  |    4 +-
 civicrm/CRM/Utils/System/Base.php             |   17 +
 civicrm/CRM/Utils/System/Drupal8.php          |    4 +
 civicrm/CRM/Utils/System/DrupalBase.php       |   14 +
 civicrm/CRM/Utils/System/Joomla.php           |   13 +
 civicrm/CRM/Utils/System/WordPress.php        |   22 +
 civicrm/CRM/Utils/Type.php                    |    5 +-
 civicrm/CRM/Utils/XML.php                     |  104 +
 civicrm/Civi/API/Kernel.php                   |    9 +-
 .../Api4/Action/Address/AddressSaveTrait.php  |    5 +-
 .../Action/CiviCase/CiviCaseSaveTrait.php     |    2 +-
 .../Action/EntityTag/EntityTagSaveTrait.php   |   34 -
 civicrm/Civi/Api4/Action/EntityTag/Save.php   |   21 -
 civicrm/Civi/Api4/Action/EntityTag/Update.php |   21 -
 civicrm/Civi/Api4/Action/GetActions.php       |    6 +-
 civicrm/Civi/Api4/Action/Setting/Set.php      |   13 +-
 civicrm/Civi/Api4/EntityTag.php               |   27 -
 civicrm/Civi/Api4/Event/Events.php            |    9 +-
 .../ActivitySchemaMapSubscriber.php           |    3 +-
 .../Subscriber/ContactSchemaMapSubscriber.php |    3 +-
 .../MessageTemplateSchemaMapSubscriber.php    |    3 +-
 .../Api4/Generic/AbstractCreateAction.php     |   21 +-
 .../Civi/Api4/Generic/AbstractSaveAction.php  |   34 -
 .../Api4/Generic/AbstractUpdateAction.php     |   23 +-
 .../Api4/Generic/BasicGetFieldsAction.php     |   45 +-
 .../Civi/Api4/Generic/BasicReplaceAction.php  |   11 +-
 .../Civi/Api4/Generic/CheckAccessAction.php   |   13 +-
 .../Api4/Generic/Traits/GetSetValueTrait.php  |   64 +
 .../Api4/Generic/Traits/MatchParamTrait.php   |   36 +
 .../Create.php => ParticipantStatusType.php}  |   17 +-
 civicrm/Civi/Api4/Query/Api4SelectQuery.php   |    9 +
 civicrm/Civi/Api4/Query/SqlFunction.php       |   22 +-
 .../Civi/Api4/Query/SqlFunctionEXTRACT.php    |    2 +-
 civicrm/Civi/Api4/Query/SqlFunctionMONTH.php  |   20 +
 .../ContributionAutocompleteProvider.php      |    2 +
 .../ContributionRecurAutocompleteProvider.php |   88 +
 .../Api4/Service/Schema/SchemaMapBuilder.php  |    3 +-
 .../Spec/Provider/ContactGetSpecProvider.php  |   36 +-
 .../PaymentProcessorCreationSpecProvider.php  |    7 +
 .../Civi/Api4/Service/Spec/SpecFormatter.php  |    3 +-
 civicrm/Civi/Api4/Utils/CoreUtil.php          |   80 +
 civicrm/Civi/Core/CiviEventDispatcher.php     |   13 +-
 civicrm/Civi/Core/Container.php               |    6 +-
 civicrm/Civi/Core/Event/PostEvent.php         |   13 +-
 .../Civi/Core/Exception/DBQueryException.php  |  143 +
 .../Civi/Schema/Traits/ArrayFormatTrait.php   |    2 +-
 civicrm/Civi/Test/Api3TestTrait.php           |    5 +
 civicrm/Civi/Test/DbTestTrait.php             |   12 +-
 civicrm/Civi/Test/TAP.php                     |  232 +-
 civicrm/Civi/Test/TAP7.php                    |  245 +
 civicrm/Civi/Test/TAP9.php                    |  253 +
 civicrm/Civi/Token/StandardFilters.php        |  114 +
 civicrm/Civi/Token/TokenProcessor.php         |   51 +-
 civicrm/Civi/UserJob/UserJobInterface.php     |    2 +
 .../Traits/ReflectiveWorkflowTrait.php        |    2 +-
 civicrm/ang/crmUi.js                          |    7 +
 civicrm/api/v3/ActivityType.php               |    2 +-
 civicrm/api/v3/Address.php                    |   17 +-
 civicrm/api/v3/Case.php                       |    2 +-
 civicrm/api/v3/CustomGroup.php                |    5 +-
 civicrm/api/v3/PledgePayment.php              |   15 +-
 civicrm/api/v3/Relationship.php               |   19 +-
 civicrm/api/v3/ReportTemplate.php             |    2 +-
 civicrm/api/v3/UFField.php                    |    2 +-
 .../examples/PaymentProcessor/Create.ex.php   |    1 +
 civicrm/civicrm-version.php                   |    2 +-
 civicrm/composer.json                         |    5 +-
 civicrm/composer.lock                         |   63 +-
 civicrm/ext/afform/admin/info.xml             |    4 +-
 .../Api4/Action/Afform/AbstractProcessor.php  |   47 +-
 .../core/Civi/Api4/Action/Afform/Submit.php   |   95 +-
 .../afform/core/ang/af/afField.component.js   |    7 +-
 .../afform/core/ang/af/afForm.component.js    |   13 +-
 .../ext/afform/core/ang/af/fields/File.html   |    8 +
 civicrm/ext/afform/core/info.xml              |    4 +-
 civicrm/ext/afform/html/info.xml              |    4 +-
 civicrm/ext/afform/mock/info.xml              |    4 +-
 .../api/v4/AfformRelationshipUsageTest.php    |   81 +-
 .../ext/authx/Civi/Authx/Authenticator.php    |   47 +-
 .../ext/authx/Civi/Authx/CheckCredential.php  |  121 +
 .../authx/Civi/Authx/CheckCredentialEvent.php |  126 +
 civicrm/ext/authx/README.md                   |   82 +
 civicrm/ext/authx/info.xml                    |    4 +-
 .../tests/phpunit/Civi/Authx/AllFlowsTest.php |   55 +-
 civicrm/ext/civicrm_admin_ui/info.xml         |    4 +-
 civicrm/ext/civigrant/info.xml                |    4 +-
 .../tests/phpunit/api/v3/GrantTest.php        |    2 -
 .../Event/Subscriber/ImportSubscriber.php     |  135 +-
 civicrm/ext/civiimport/Civi/Api4/Import.php   |    2 +-
 .../Civi/Api4/Import/CheckAccessAction.php    |   54 +
 .../Civi/Api4/Import/ImportSpecProvider.php   |    5 +-
 civicrm/ext/civiimport/Civi/BAO/Import.php    |   33 +-
 .../civiimport/Managed/ImportSearches.mgd.php |    9 +-
 .../Managed/UserJobSearches.mgd.php           |  117 +
 .../civiimport/ang/afsearchTemplates.aff.html |    3 +
 .../civiimport/ang/afsearchTemplates.aff.json |   23 +
 civicrm/ext/civiimport/ang/crmCiviimport.js   |    2 +-
 .../civiimport/ang/crmCiviimport/Import.html  |    8 +-
 civicrm/ext/civiimport/civiimport.php         |   14 +-
 civicrm/ext/civiimport/info.xml               |    6 +-
 .../tests/phpunit/CiviApiImportTest.php       |   25 +-
 .../CRM/Ckeditor4/Form/CKEditorConfig.php     |    2 +-
 civicrm/ext/ckeditor4/info.xml                |    4 +-
 .../ext/contributioncancelactions/info.xml    |    4 +-
 .../tests/phpunit/CancelTest.php              |    2 +-
 civicrm/ext/elavon/info.xml                   |    4 +-
 .../phpunit/CRM/Core/Payment/ElavonTest.php   |    1 +
 civicrm/ext/eventcart/info.xml                |    4 +-
 civicrm/ext/ewaysingle/info.xml               |    4 +-
 .../phpunit/CRM/Core/Payment/EwayTest.php     |    1 +
 civicrm/ext/financialacls/info.xml            |    4 +-
 civicrm/ext/flexmailer/info.xml               |    4 +-
 .../Civi/FlexMailer/MailingPreviewTest.php    |    3 +-
 civicrm/ext/greenwich/info.xml                |    4 +-
 civicrm/ext/legacycustomsearches/info.xml     |    4 +-
 .../Contact/Form/Search/Custom/FullText.tpl   |    2 +-
 civicrm/ext/message_admin/info.xml            |    4 +-
 civicrm/ext/oauth-client/info.xml             |    4 +-
 civicrm/ext/payflowpro/info.xml               |    4 +-
 .../CRM/Core/Payment/PayflowProTest.php       |    1 +
 civicrm/ext/recaptcha/info.xml                |    4 +-
 .../SearchDisplay/AbstractRunAction.php       |   11 +-
 civicrm/ext/search_kit/Civi/Search/Admin.php  |    5 +-
 civicrm/ext/search_kit/Civi/Search/Meta.php   |    6 +
 .../ang/crmSearchAdmin/compose.html           |    2 +-
 .../crmSearchAdmin.component.js               |    4 +-
 .../crmSearchClause.component.js              |    4 +-
 .../ang/crmSearchAdmin/crmSearchClause.html   |    5 +-
 .../displays/colType/field.html               |    2 +
 .../crmSearchAdmin/displays/colType/html.html |    2 +
 .../searchAdminDisplayGrid.component.js       |    3 +-
 .../searchAdminDisplayList.component.js       |    3 +-
 .../searchAdminDisplayTable.component.js      |    3 +-
 .../ang/crmSearchDisplay/Pager.html           |    2 +-
 .../traits/searchDisplayBaseTrait.service.js  |   15 +-
 .../searchDisplaySortableTrait.service.js     |    2 +-
 civicrm/ext/search_kit/info.xml               |    4 +-
 .../templates/CRM/Search/Help/Compose.hlp     |    4 +
 .../templates/CRM/Search/Help/Display.hlp     |    7 +
 civicrm/ext/sequentialcreditnotes/info.xml    |    4 +-
 civicrm/release-notes.md                      |   11 +
 civicrm/release-notes/5.61.0.md               |  929 ++
 civicrm/settings/Core.setting.php             |    4 +-
 civicrm/sql/civicrm.mysql                     |   13 +-
 civicrm/sql/civicrm_data.mysql                |   56 +-
 civicrm/sql/civicrm_demo_processor.mysql      |    4 +-
 civicrm/sql/civicrm_devel_config.mysql        |    6 +-
 civicrm/sql/civicrm_dummy_processor.mysql     |    4 +-
 civicrm/sql/civicrm_generated.mysql           | 7592 ++++++++---------
 civicrm/sql/civicrm_navigation.mysql          |    6 +-
 civicrm/templates/CRM/Case/Form/Activity.tpl  |    2 +
 civicrm/templates/CRM/Case/Form/Case.tpl      |    2 +
 civicrm/templates/CRM/Contact/Form/Merge.tpl  |    4 +-
 .../CRM/Contact/Import/Form/DataSource.tpl    |  163 +-
 .../CRM/Contact/Import/Form/MapField.tpl      |   12 -
 .../CRM/Contact/Import/Form/Summary.tpl       |    8 +-
 .../CRM/Contribute/Form/Contribution.tpl      |    2 +-
 .../CRM/Contribute/Form/Contribution/Main.tpl |    9 -
 .../CRM/Contribute/Import/Form/Preview.tpl    |    8 +-
 .../CRM/Contribute/Page/DashBoard.hlp         |    4 +-
 civicrm/templates/CRM/Core/BillingBlock.tpl   |    8 +
 .../CRM/Event/Form/Search/Common.tpl          |    3 +
 civicrm/templates/CRM/Group/Form/Edit.tpl     |    6 +-
 civicrm/templates/CRM/Group/Page/Group.tpl    |    4 +-
 .../templates/CRM/Import/Form/DataSource.tpl  |  126 +-
 .../CRM/Import/Form/MapTableCommon.tpl        |   25 +-
 civicrm/templates/CRM/Mailing/MailingUI.hlp   |    2 +-
 .../templates/CRM/Member/Form/Membership.tpl  |    4 +-
 .../CRM/Member/Form/MembershipRenewal.tpl     |    6 +-
 .../CRM/Member/Form/MembershipStatus.tpl      |    8 +-
 .../CRM/Member/Form/MembershipView.tpl        |    4 +-
 .../templates/CRM/Member/Form/Task/Print.tpl  |    4 +-
 .../Member/Form/Task/SearchTaskHookSample.tpl |    4 +-
 civicrm/templates/CRM/Member/Page/Tab.tpl     |    8 +-
 .../CRM/Member/Page/UserDashboard.tpl         |    8 +-
 .../templates/CRM/Profile/Form/Dynamic.tpl    |    8 +-
 .../Page/MultipleRecordFieldsListing.tpl      |    2 +-
 civicrm/templates/CRM/SMS/Form/Group.hlp      |    4 +-
 civicrm/templates/CRM/common/Tagset.tpl       |    2 +-
 civicrm/vendor/autoload.php                   |    2 +-
 civicrm/vendor/bin/var-dump-server            |  120 +
 civicrm/vendor/composer/autoload_files.php    |    2 +-
 civicrm/vendor/composer/autoload_real.php     |   14 +-
 civicrm/vendor/composer/autoload_static.php   |   14 +-
 civicrm/vendor/composer/installed.json        |   70 +-
 civicrm/vendor/composer/installed.php         |   32 +-
 .../guzzlehttp/psr7/.github/workflows/ci.yml  |    8 +-
 .../psr7/.github/workflows/integration.yml    |    7 +-
 .../psr7/.github/workflows/static.yml         |    4 +-
 civicrm/vendor/guzzlehttp/psr7/CHANGELOG.md   |    6 +
 civicrm/vendor/guzzlehttp/psr7/composer.json  |    5 -
 .../guzzlehttp/psr7/src/MessageTrait.php      |   13 +-
 .../vendor/pear/pear-core-minimal/PATCHES.txt |    7 -
 .../pear/pear-core-minimal/src/OS/Guess.php   |    2 +-
 .../pear/pear-core-minimal/src/PEAR.php       |    6 +-
 civicrm/vendor/symfony/var-dumper/.gitignore  |    3 -
 .../vendor/symfony/var-dumper/CHANGELOG.md    |   42 +-
 .../symfony/var-dumper/Caster/AmqpCaster.php  |   12 +-
 .../symfony/var-dumper/Caster/ArgsStub.php    |   10 +-
 .../symfony/var-dumper/Caster/Caster.php      |   53 +-
 .../symfony/var-dumper/Caster/ClassStub.php   |   37 +-
 .../symfony/var-dumper/Caster/ConstStub.php   |    7 +-
 .../symfony/var-dumper/Caster/CutStub.php     |    5 +
 .../symfony/var-dumper/Caster/DOMCaster.php   |   14 +-
 .../symfony/var-dumper/Caster/DateCaster.php  |   38 +-
 .../var-dumper/Caster/DoctrineCaster.php      |    2 +
 .../symfony/var-dumper/Caster/DsCaster.php    |   70 +
 .../symfony/var-dumper/Caster/DsPairStub.php  |   28 +
 .../symfony/var-dumper/Caster/EnumStub.php    |    2 +-
 .../var-dumper/Caster/ExceptionCaster.php     |  101 +-
 .../symfony/var-dumper/Caster/FrameStub.php   |    2 +-
 .../symfony/var-dumper/Caster/GmpCaster.php   |   32 +
 .../var-dumper/Caster/ImagineCaster.php       |   37 +
 .../symfony/var-dumper/Caster/ImgStub.php     |   26 +
 .../symfony/var-dumper/Caster/IntlCaster.php  |  172 +
 .../symfony/var-dumper/Caster/LinkStub.php    |   14 +-
 .../var-dumper/Caster/MemcachedCaster.php     |   81 +
 .../symfony/var-dumper/Caster/MongoCaster.php |   38 -
 .../var-dumper/Caster/MysqliCaster.php        |   33 +
 .../symfony/var-dumper/Caster/PdoCaster.php   |    6 +-
 .../symfony/var-dumper/Caster/PgSqlCaster.php |   22 +-
 .../var-dumper/Caster/ProxyManagerCaster.php  |   33 +
 .../symfony/var-dumper/Caster/RedisCaster.php |  111 +-
 .../var-dumper/Caster/ReflectionCaster.php    |  182 +-
 .../var-dumper/Caster/ResourceCaster.php      |   30 +-
 .../symfony/var-dumper/Caster/SplCaster.php   |   17 +-
 .../symfony/var-dumper/Caster/StubCaster.php  |    2 +
 .../var-dumper/Caster/SymfonyCaster.php       |   32 +-
 .../symfony/var-dumper/Caster/TraceStub.php   |    2 +-
 .../symfony/var-dumper/Caster/UuidCaster.php  |   30 +
 .../var-dumper/Caster/XmlReaderCaster.php     |   30 +-
 .../var-dumper/Caster/XmlResourceCaster.php   |    8 +-
 .../var-dumper/Cloner/AbstractCloner.php      |   75 +-
 .../symfony/var-dumper/Cloner/Cursor.php      |    8 +-
 .../vendor/symfony/var-dumper/Cloner/Data.php |   91 +-
 .../var-dumper/Cloner/DumperInterface.php     |   14 +-
 .../vendor/symfony/var-dumper/Cloner/Stub.php |   20 +-
 .../symfony/var-dumper/Cloner/VarCloner.php   |  103 +-
 .../Command/Descriptor/CliDescriptor.php      |   88 +
 .../Descriptor/DumpDescriptorInterface.php    |   23 +
 .../Command/Descriptor/HtmlDescriptor.php     |  119 +
 .../var-dumper/Command/ServerDumpCommand.php  |  101 +
 .../var-dumper/Dumper/AbstractDumper.php      |   29 +-
 .../symfony/var-dumper/Dumper/CliDumper.php   |  110 +-
 .../ContextProvider/CliContextProvider.php    |   32 +
 .../ContextProviderInterface.php              |   25 +
 .../RequestContextProvider.php                |   51 +
 .../ContextProvider/SourceContextProvider.php |  126 +
 .../Dumper/ContextualizedDumper.php           |   43 +
 .../symfony/var-dumper/Dumper/HtmlDumper.php  |  190 +-
 .../var-dumper/Dumper/ServerDumper.php        |   53 +
 .../Exception/ThrowingCasterException.php     |    4 +-
 civicrm/vendor/symfony/var-dumper/LICENSE     |    2 +-
 civicrm/vendor/symfony/var-dumper/README.md   |   12 +-
 .../var-dumper/Resources/bin/var-dump-server  |   67 +
 .../Resources/css/htmlDescriptor.css          |  130 +
 .../var-dumper/Resources/functions/dump.php   |   17 +-
 .../var-dumper/Resources/js/htmlDescriptor.js |   10 +
 .../symfony/var-dumper/Server/Connection.php  |   95 +
 .../symfony/var-dumper/Server/DumpServer.php  |  107 +
 .../vendor/symfony/var-dumper/VarDumper.php   |   22 +-
 .../vendor/symfony/var-dumper/composer.json   |   20 +-
 .../symfony/var-dumper/phpunit.xml.dist       |   33 -
 civicrm/xml/schema/Campaign/Campaign.xml      |    5 +-
 civicrm/xml/schema/Case/Case.xml              |    4 +-
 civicrm/xml/schema/Contact/Contact.xml        |    4 +
 civicrm/xml/schema/Contact/Group.xml          |    4 +-
 civicrm/xml/schema/Core/Address.xml           |    7 +-
 civicrm/xml/schema/Core/Cache.xml             |   13 +
 civicrm/xml/schema/Core/CustomField.xml       |    5 +-
 civicrm/xml/schema/Core/IM.xml                |    2 +-
 civicrm/xml/schema/Core/OpenID.xml            |    2 +-
 civicrm/xml/schema/Core/Phone.xml             |    2 +-
 .../xml/schema/Financial/PaymentProcessor.xml |   27 +-
 civicrm/xml/templates/civicrm_data.tpl        |    4 +-
 civicrm/xml/templates/civicrm_navigation.tpl  |    6 +-
 civicrm/xml/templates/dao.tpl                 |   14 +-
 .../membership_autorenew_cancelled_html.tpl   |    2 +-
 .../membership_autorenew_cancelled_text.tpl   |    2 +-
 .../membership_offline_receipt_html.tpl       |    6 +-
 .../membership_offline_receipt_text.tpl       |    4 +-
 .../membership_online_receipt_html.tpl        |    4 +-
 .../membership_online_receipt_text.tpl        |    4 +-
 civicrm/xml/version.xml                       |    2 +-
 tests/phpunit/CiviWP/HookTest.php             |    9 +-
 651 files changed, 24806 insertions(+), 8673 deletions(-)
 delete mode 100644 civicrm/CRM/Activity/BAO/ActivityTarget.php
 delete mode 100644 civicrm/CRM/Contact/DAO/Factory.php
 delete mode 100644 civicrm/CRM/Contribute/BAO/ManagePremiums.php
 delete mode 100644 civicrm/CRM/Core/Base.php
 create mode 100644 civicrm/CRM/Core/I18n/SchemaStructure_5_61_alpha1.php
 create mode 100644 civicrm/CRM/Pledge/Tokens.php
 create mode 100644 civicrm/CRM/Upgrade/Incremental/php/FiveSixtyOne.php
 create mode 100644 civicrm/CRM/Upgrade/Incremental/sql/5.61.alpha1.mysql.tpl
 delete mode 100644 civicrm/Civi/Api4/Action/EntityTag/EntityTagSaveTrait.php
 delete mode 100644 civicrm/Civi/Api4/Action/EntityTag/Save.php
 delete mode 100644 civicrm/Civi/Api4/Action/EntityTag/Update.php
 create mode 100644 civicrm/Civi/Api4/Generic/Traits/GetSetValueTrait.php
 rename civicrm/Civi/Api4/{Action/EntityTag/Create.php => ParticipantStatusType.php} (64%)
 create mode 100644 civicrm/Civi/Api4/Service/Autocomplete/ContributionRecurAutocompleteProvider.php
 create mode 100644 civicrm/Civi/Core/Exception/DBQueryException.php
 create mode 100644 civicrm/Civi/Test/TAP7.php
 create mode 100644 civicrm/Civi/Test/TAP9.php
 create mode 100644 civicrm/Civi/Token/StandardFilters.php
 create mode 100644 civicrm/ext/authx/Civi/Authx/CheckCredential.php
 create mode 100644 civicrm/ext/authx/Civi/Authx/CheckCredentialEvent.php
 create mode 100644 civicrm/ext/civiimport/Civi/Api4/Import/CheckAccessAction.php
 create mode 100644 civicrm/ext/civiimport/ang/afsearchTemplates.aff.html
 create mode 100644 civicrm/ext/civiimport/ang/afsearchTemplates.aff.json
 create mode 100644 civicrm/ext/search_kit/templates/CRM/Search/Help/Compose.hlp
 create mode 100644 civicrm/ext/search_kit/templates/CRM/Search/Help/Display.hlp
 create mode 100644 civicrm/release-notes/5.61.0.md
 create mode 100755 civicrm/vendor/bin/var-dump-server
 delete mode 100644 civicrm/vendor/pear/pear-core-minimal/PATCHES.txt
 delete mode 100644 civicrm/vendor/symfony/var-dumper/.gitignore
 create mode 100644 civicrm/vendor/symfony/var-dumper/Caster/DsCaster.php
 create mode 100644 civicrm/vendor/symfony/var-dumper/Caster/DsPairStub.php
 create mode 100644 civicrm/vendor/symfony/var-dumper/Caster/GmpCaster.php
 create mode 100644 civicrm/vendor/symfony/var-dumper/Caster/ImagineCaster.php
 create mode 100644 civicrm/vendor/symfony/var-dumper/Caster/ImgStub.php
 create mode 100644 civicrm/vendor/symfony/var-dumper/Caster/IntlCaster.php
 create mode 100644 civicrm/vendor/symfony/var-dumper/Caster/MemcachedCaster.php
 delete mode 100644 civicrm/vendor/symfony/var-dumper/Caster/MongoCaster.php
 create mode 100644 civicrm/vendor/symfony/var-dumper/Caster/MysqliCaster.php
 create mode 100644 civicrm/vendor/symfony/var-dumper/Caster/ProxyManagerCaster.php
 create mode 100644 civicrm/vendor/symfony/var-dumper/Caster/UuidCaster.php
 create mode 100644 civicrm/vendor/symfony/var-dumper/Command/Descriptor/CliDescriptor.php
 create mode 100644 civicrm/vendor/symfony/var-dumper/Command/Descriptor/DumpDescriptorInterface.php
 create mode 100644 civicrm/vendor/symfony/var-dumper/Command/Descriptor/HtmlDescriptor.php
 create mode 100644 civicrm/vendor/symfony/var-dumper/Command/ServerDumpCommand.php
 create mode 100644 civicrm/vendor/symfony/var-dumper/Dumper/ContextProvider/CliContextProvider.php
 create mode 100644 civicrm/vendor/symfony/var-dumper/Dumper/ContextProvider/ContextProviderInterface.php
 create mode 100644 civicrm/vendor/symfony/var-dumper/Dumper/ContextProvider/RequestContextProvider.php
 create mode 100644 civicrm/vendor/symfony/var-dumper/Dumper/ContextProvider/SourceContextProvider.php
 create mode 100644 civicrm/vendor/symfony/var-dumper/Dumper/ContextualizedDumper.php
 create mode 100644 civicrm/vendor/symfony/var-dumper/Dumper/ServerDumper.php
 create mode 100755 civicrm/vendor/symfony/var-dumper/Resources/bin/var-dump-server
 create mode 100644 civicrm/vendor/symfony/var-dumper/Resources/css/htmlDescriptor.css
 create mode 100644 civicrm/vendor/symfony/var-dumper/Resources/js/htmlDescriptor.js
 create mode 100644 civicrm/vendor/symfony/var-dumper/Server/Connection.php
 create mode 100644 civicrm/vendor/symfony/var-dumper/Server/DumpServer.php
 delete mode 100644 civicrm/vendor/symfony/var-dumper/phpunit.xml.dist

diff --git a/civicrm.php b/civicrm.php
index 7823dd0fb3..f9f170e6bf 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 1bafc8b8b6..d9739d48d7 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 89067de60a..2e78ea666f 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 a892cf4ac7..26ae773ad1 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 d599eefa8a..16e184652a 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 6b488907a6..f49215ecb0 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 7fce4ac390..bc2b657cee 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 61138975ce..809793014a 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 401e279d6a..f6df1a4a19 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 95dde5bc0d..de463a1955 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 d20c3b581b..0000000000
--- 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 e94b512627..bf37517561 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 d8c9b9b306..5f59d35b65 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 c2e24fdcdb..849264a177 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 db778bf1d1..1dff4f66cb 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 6597972c63..2d79f4b555 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 4f31f50c7e..0517dd1abb 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 20bedf59c5..77b92cb89a 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 3f11c76ac3..d156f3a33d 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 bfbc0efa22..e9a687b17c 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 b924ab1acf..bf72f47c1d 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 d4be6aaa9b..b38f1ff5a2 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 014727e76b..d247be0030 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 544807eb50..a44d987eb3 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 67e9bef527..e042bae1d6 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 a1f2683b2b..aa7231649c 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 167db8777a..0b03bc9725 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 dd34add77a..c146c3a49c 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 34d20ec6f9..100a4e9376 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 612f9c9abf..318a13e733 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 4f13bcb5ac..8407bae6ed 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 6058c00464..7a4a7fe715 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 2314942c10..13bf0f6f50 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 136d81b8af..3f42995ee0 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 2e421a2bcc..758be195be 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 6b59d21004..a5482ebce1 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 04bfce502c..dd319d5772 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 838405521b..6a3931a1e9 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 934779f7ed..d52c50e1f5 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 5244c8b904..ce473654a5 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 16715221ea..53a7d0c50e 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 e255c72a38..43e6435dc6 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 3b409bb65c..af7086c7c2 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 d361768e8b..70afd42bae 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 7536a7d3ef..12af3d8f61 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 d74da96f19..518c5954f7 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 686e4bf314..6ec213c0e8 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 740e7cdb57..1c3092f0bc 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 76800a4358..da3c6cda7b 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 c8ad163161..9b5da6ee49 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 ba333b9e73..a309da8b2d 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 d76ea928e6..c771a8aef8 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 d02752fe9d..77eaa89407 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 15ce4f7128..27c5a65f2f 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 43ea780a7a..9c23f97923 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 f4c97866f8..29066d14ab 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 3daef9e626..e74b475c3d 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 f12f4f576b..372a185193 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 5deb2c729f..10caeffe38 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 8a8b0717cd..bb23bd500f 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 ebdba06ed2..9353b0ce2c 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 5f178714b4..d0b753fdc9 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 3e835b13a8..3e298084bb 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 ef11dad723..0000000000
--- 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 e21639f0f2..2481edfcfd 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 babf749302..a57efe34be 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 b1c12af9b6..e85f9c816c 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 91aac95120..9f9de79110 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 af54612700..3703a0100a 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 cdacc83527..32b8f3e61b 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 638346b302..060f180637 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 468c407521..82e11a69a6 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 21b9343227..6cca30adfb 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 18492d6e1e..b80c213581 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 04a5351161..fa00c1c7c0 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 ef27927a44..c59df6e82f 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 41c11d221a..47116d7d17 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 8c91685113..1c9902004f 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 b4df6126da..926ce85f86 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 91f752eb19..95cd3b627a 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 3c65435a90..f8755c029e 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 26d8eb6c35..79778edf73 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 cfc55e5c03..2789484483 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 2b606fc9de..15460d4be0 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 e86e99c39a..868efc3336 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 1b5ce20828..1740059051 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 0389b5b244..170ad5692a 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 01c1e358a3..de25925709 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 d1d7afe877..15cca651f5 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 9945d10286..43a401bdf0 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 732ce892f5..3f7731ef28 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 a8e6033e70..0000000000
--- 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 8b577b7bc6..2f648474de 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 7c7f9ff164..f4f6f5f4dc 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 fba625f9a2..9dc635a865 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 3dd4d9fea9..c3744c8dfe 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 1b86bc3ebc..50a6d61861 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 6b2d79edae..21d7c21f09 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 a6b14055e2..2c08459852 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 9084c436a7..bf3b18a2fd 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 84e4e2e416..4b0ff8384e 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 042572c2b9..460a15467c 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 09151cf172..7a4ca37edf 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 e93b6ae706..1828aa6aa0 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 d09ea9c253..9819e8276c 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 c5a510f621..aa93b81f66 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 6b3b3b99f4..8ea9c95123 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 ccf86182b1..7402e94cad 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 ab930809a8..965c67f4ae 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 648235a5d7..5ec45a8ba7 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 63afe986a4..833bc44be9 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 41d9e8e80e..93b873c0e4 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 abc42a05b2..5e73a7cd30 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 0a4705ff79..f5bb954fc4 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 011535753f..77b12723e4 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 8307501bb6..d22b86c2c2 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 004922b0d3..909b4e607f 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 506e951576..a5abbe73c8 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 cf05c109b2..5da3581da9 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 3615f2271f..a4a33744a6 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 c88c62bfeb..88024d0b86 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 2312c81847..00ca79c55b 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 a7bb9a9ace..c3642ccbab 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 e7e4eb9a1d..c35b34d77d 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 606f5fad93..c48246775d 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 351db0f8b1..4bb87024ed 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 b1a916c374..a305dab03b 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 aecf92d79d..1f8fd506fb 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 6d119d7091..6493470d3d 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 a64a2176ab..f184420c33 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 12fe6914c7..9b70920b2d 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 1f4345fbee..ae9a0e3180 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 b8abef965f..02be74e66a 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 2e1e1576a1..df2a04705b 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 c7de6d7eea..bd3ffe9c33 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 aeff6e50a4..622fca1c20 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 cf095fa29a..1c1b005588 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 5e3e4c2d4b..c34c25bdaf 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 a58dd8c482..62fe656602 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 e2c8422f19..7991e8cb73 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 ae8a9dd907..5ade83e12f 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 44ea26425c..aa471362ce 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 df3643984d..493594176d 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 036a4b4b9c..9979e6c73e 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 14c740d694..ab53574edb 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 0cf4af17a4..e3429a12b0 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 cd1657d675..0000000000
--- 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 9f3aaea737..c26671270e 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 415762ce4a..2aa80a0cfe 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 f63391c46d..46a9026eaf 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 7e37d4a323..8884e1650a 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 3a4fb85865..335dfc2b11 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 bccb443c78..4a7b0184f8 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 66269a9a8d..d6daae7227 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 35364181ba..91d8a06b21 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 09ee3bd4da..c57efa00de 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 a8088e52c4..f41a81148a 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 9edd1fd2ac..c5c1788471 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 c293506628..aba3312742 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 0fd63f551b..5ca56b5531 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 f0af5ba3f8..b0fa07c602 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 9578d79184..26929dadca 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 919a45ee21..d56564cfd1 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 1d8073157a..4cc994922d 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 dfb27ff5e6..8fa3121e6b 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 185cee0296..21383d0788 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 5708860310..c099f7b383 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 8a291238ff..bddb71c0a2 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 f5ec027699..91b27a3b0f 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 64abf247e1..495c616161 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 1c08d6cb91..3520d7afab 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 c38d1e7770..575e590bce 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 b48facb2aa..7a0c69b25e 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 43bafcda01..0c3db7375b 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 6ea56c8f2c..e4e519d1ab 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 b8c6033d9c..b933a5d07d 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 9c0796789a..a82a5cae36 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 b55d7732a9..9a4e3ad636 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 a2906eaa11..d004323ec0 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 d6216a7987..1d8531821c 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 681773f007..5b10cda292 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 003b0f8991..dacb1bc34f 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 c1acb75861..c126f61b2e 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 c4607333b9..be0e6f009a 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 8d1e0b423a..c7ff1dbcfb 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 ed6294c9cb..204287fbfe 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 743801083b..6eaa27fb75 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 abb65dd28b..e0d6bdb528 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 3cae44c970..3ee6cfafb1 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 37f65c5a0b..2b7a8f5c96 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 b1ec7347bb..4c18f66161 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 aab5bf8c56..0225a8ccc3 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 8bbac38170..7d0665ea5f 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 21e176d921..a1a79396f1 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 f4b0f70cbf..69b7ed0a4e 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 c082125860..b84fa0d5e4 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 0a45c8e815..774f40f8d0 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 1c4529f57c..116837a5d4 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 82703fd159..1cde34488f 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 b0d07227ff..ae54985a33 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 15f9a3bdf9..753b721f3c 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 e4b512deb9..38744177fa 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 3e68111f32..9917b6b120 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 c5be8fc4d3..11059d5fc1 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 a6219a1a9e..8366bd52ab 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 375beb1d00..c6fdbce66b 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 92f14f1d9a..9a50144288 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 5591885acc..aa9faa26e9 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 c3682d97b4..326fdb45f1 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 db4ac7019c..847f2e4f8e 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 ccf5522788..2d09fa550a 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 05435a6aa8..52ba505fdc 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 1303857cc0..f8bd1e27dd 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 0000000000..1ed39b5169
--- /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 67adc99c02..f72c655d59 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 0507bd2dc1..36c93702e3 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 10afed4e59..b8f80dd8a9 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 6dd2acae1b..6b1c86aaff 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 6f9fdeb59b..5b039d3b41 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 a4062aef44..e62763f7d3 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 43383eda42..3b7c242781 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 4a764b9669..9d49c143c2 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 1e5c262ab5..4bbc5d1c67 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 a4474414bb..da0202ec74 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 90f5174e42..b50b382f20 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 7a7b8726c6..df9e5a83a6 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 721113fc2e..2b2cbbcba2 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 f73c021fbc..db5f3316b6 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 5e6f1d80b7..b15000917c 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 c6b8a14820..ff398b23c8 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 f137b465c4..a378528422 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 701576f9bb..aa7ae800b1 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 b86f920721..77fe3d185c 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 4071797bdf..edd8c6e3ee 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 55503aad23..6b9154a173 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 97869fe7f8..7d3758ea32 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 bd773993e5..4c0941166f 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 4b5e7c18f1..5dbb6952a4 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 9f737277aa..635ce13679 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 6a8d1816e7..3ba453b505 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 08fa02f4f0..25bfe86c1b 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 5d46185fc2..e25c471dd3 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 425337980a..7f8e48b4b3 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 e8ec700c87..c8f90aa306 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 5d7be182ea..cc41a4447f 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 335d108841..cfd7a5b2c2 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 16dbef549b..fe1c4dd2cd 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 923143d14c..3c50b9ced0 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 3ac471ad17..5e00e521dd 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 b64bcc23f1..6b1f1cfb59 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 06160d34fb..45f1adae1c 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 2f3910896c..c251555bca 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 c2d8839d5d..283247a516 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 77f65011ac..88b9b879b9 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 e832df68ae..bb2cc98d7f 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 99ad17f8cf..986adf5573 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 83f0a4491f..356dc2bb59 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 38ceb2e8f9..d61cb48bf9 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 360c446ada..9e7d4dfe6d 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 678f3716c1..2f088348b9 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 13c63f43a0..e03b07ac2b 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 8ce9e0aaee..02ab29e8a5 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 6ef952849c..7e2d808f4e 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 4961a95abd..bb741df5ca 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 990b1c9a87..f2ccc2ff79 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 4f6588c347..6cd9a6a7b4 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 16990058a1..3fdcfd7c44 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 07ba0153bb..161e562ae5 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 8c52ce6fc2..c90572a326 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 a417ab8a21..30f573cf1b 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 9d1c0fdfb6..4702155253 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 678aeb238e..19db6f15af 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 f1459c8748..a616f52085 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 735a19d3c6..28d07afd9d 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 b6b1f00777..b44933274a 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 b1f5edf7f5..9885ceab93 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 d9fa015d90..ad6ac14ea0 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 95b1bf21ad..48c8046a3e 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 3ab882d2d1..0ddea9ae84 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 d0994b0fe9..7bf16cd049 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 4c024ba234..31df4826e3 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 6ad0e41ddd..05a6c65aed 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 f69d6f5cd1..a87ee1edc8 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 96d3c8e624..72c75cb63a 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 71d5601bf3..ac7d39939a 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 de1ef329c6..fb53691122 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 2545211b60..d9d8caa9fc 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 ad4b7feb34..d829a4c9c5 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 88bac67173..6d548f3058 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 157e408133..2eb7402cbe 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 ffedad169c..e2dc1a5883 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 ddb89125e6..254205f5c9 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 1c4f6d070e..53e590491e 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 2c781d0494..bd67cc8182 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 46b40553ed..9d5f55ce97 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 3e7c1a73cc..7bcd641d58 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 26ee2df59a..b986a5ea91 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 990e06bde1..48ce4be5d2 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 ef24c6a6d4..fcd256ebdb 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 4414a43b9a..81b78486bf 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 3079ff620b..3e167d44a9 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 a4e9de852d..9974441a46 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 8db99dc8cb..1eb0fa68fc 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 87176a200c..25d25681f2 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 24977439d9..aa40f00bb7 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 7c791d5812..a2e8895412 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 789eebe74d..d51f768d7f 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 1d5af2d3ab..0285ecd291 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 d1faf10544..1f7e62f712 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 5fb5c9d960..e7f153fbfa 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 f6fc5e289b..5281ba51ba 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 ec5cfd6604..1079d2e20a 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 2117a0499f..6ee98adb46 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 e52bccbea9..b50799354c 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 f4a4e7462a..e0e362a850 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 433e563ab6..82dd22d5b6 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 967e81bfd2..af276795fc 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 686e2f36f9..e8992363fc 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 fdc9ad6cad..d0c1696d03 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 944119a186..84b6edb729 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 3505c836bb..e12e1e5519 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 1ba885ffde..6fe89c38a6 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 9754aec3ff..ac5cef5229 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 4c9e98bbf7..fc00d8f7ac 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 690c2de74c..024d82db91 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 ab9c295cfa..5ddb549638 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 4ece7808e9..406be7328a 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 0000000000..c296148735
--- /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 29521089c4..1c2a7d0f0c 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 163f553eab..f0163d150f 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 ae00626f9f..70e150d500 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 30de2eaf36..a5840caee4 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 31e1b16743..891dbc2bf2 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 6fcdb528a6..dd5f5ac216 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 32d5a59542..2be66d7ad1 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 6d0f250a76..609218b750 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 7c435281a5..98fb308c39 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 5aa3b3687b..a007681e3a 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 88a24f76a4..9bf062edb5 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 ac8c3d1416..3c2e669fb6 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 4916638d5e..f58da43349 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 6aefb13117..8a14a5bf4d 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 502e92bce4..7c741e0438 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 18c9f53215..d76c3e8b59 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 930b44aad1..1554cc0cce 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 5324e63682..7b119f5643 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 ee3cada4ec..d7ead6275a 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 98c7c18925..1394293d97 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 0d330b3ae7..4e658da660 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 b97f1adb5c..4b310b05b0 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 7f13f34f4e..a9a121eba1 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 abab6c9d4f..527f42725c 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 198503f3c2..2559f35356 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 c4a8f65945..af5c12e4e3 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 f820b10430..11b16e97fb 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 37c752e21a..7875b0814e 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 71fe9e8b47..09d38c00f0 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 78c5978d65..03d583fa90 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 454a019c59..881b1ceedf 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 2cf6c83c50..de929317ef 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 0000000000..c9e59195a3
--- /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 0000000000..ce9d28c8a8
--- /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 b02c67479f..527862caf5 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 8a4327f16c..da26ccc5e2 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 90c73f3dab..b15ff620c7 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 014c2d846e..400988f31e 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 a280cf539a..207f6b285a 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 0fe6c55f24..72ea4f1331 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 e72f65eeb0..b19ec3017e 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 a59bf97f6e..3574213f7d 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 d91cc5f7f7..0117a19bfd 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 4d20f89495..a384dfa6ea 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 d83fbbe83f..87087711d0 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 12eb7a629e..e817786236 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 ed09dce093..8e67c3142c 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 d14fca6a1d..3759e978ed 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 6b50e75936..5bc187f46c 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 be8ff4b03e..0000000000
--- 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 e0819f197e..0000000000
--- 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 7ae4573937..0000000000
--- 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 5f3dbd9a61..b88db07ca4 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 cd8413331f..753a51876e 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 d0d8f22a8f..5707098187 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 70b5440085..1701f51fa0 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 bf32edb1e4..66b8fee472 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 e5ef815663..c73b581cba 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 3f218f31c6..108c322f2f 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 c1f88ad9ac..b807f38a31 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 e6e6959ff4..8cd462f1b4 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 d4b78a13eb..4c5942fe37 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 d114fad93f..82dd6e0e5f 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 7291de47ff..9b83eb8f32 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 a3cd5dc0a3..21094e15cc 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 0000000000..fb9649eb5d
--- /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 6d8ed6c786..c16e30ef0f 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 afa0dba7fd..25b14d99ba 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 284afe6bbd..8430da8794 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 6b094eff3d..7b00b6f2c9 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 ff555ec46b..fb86117440 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 4f903347a6..e99678e1ed 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 0e05a824d4..916a6c56d6 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 0000000000..4f845248cb
--- /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 16de8c026d..dc388ae4e8 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 e6cb6c8e94..ffc8efa056 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 9e11858ce0..5a592e5f7a 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 4f32c10772..fc99a65e79 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 a50543de89..24c4fb62b1 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 704fcd7ce8..2ddb8634c0 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 2da5b7abd9..5b983fb637 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 f3885af444..d620ded7dc 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 0000000000..d06a10760e
--- /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 520568dcdb..e380b7f3c3 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 49d81e97b4..e00452ab97 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 a16239c4a7..ff81b0e0d5 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 e7bcd88555..82123c60d6 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 0000000000..3497167e02
--- /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 0000000000..7b39c6bbfe
--- /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 0000000000..5b77e1cd82
--- /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 57761c7fdf..2472f03b4e 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 bf259bd2f5..4a5bbaade2 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 f10fe04113..fd2fa3920d 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 309d512bdd..3b5a1522ef 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 774e9b3101..6880e6ae7e 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 f7988a249a..dd74c46c11 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 4651f5c87b..3a95057326 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 e80f232480..55d5f51774 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 27795e9795..f6e97f622a 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 f1f7664bee..4e7cbc9bee 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 0deb7b998f..0ac8ccdedd 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 0ac6b070d2..526cc49fac 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 c06083e0cf..84862dfc11 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 efb04c7cf3..d0afe712ed 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 e09f2332f5..71b87fca58 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 898bd6d4c6..7d289ec76e 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 857440b23c..cbe28d4509 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 707c160afe..5351702076 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 83bdf2d759..44dc9a5d9d 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 8b5468d893..66c49816a6 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 e13ea5dae6..9951e5ddbd 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 c02d56d8bb..4a4e4cc5d1 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 38324b4412..f30e0540a6 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 a5e601ca16..36b5cb20a9 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 c359d8004c..ef87c8a0c2 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 a31a7b66cf..bb12c0e857 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 b9c7d8a3b3..d38bc985dd 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 0000000000..7d2ded378e
--- /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 0000000000..87379f7e81
--- /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 d5404a88bf..d355388080 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 8847d710de..329aa72dea 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 e4972fe16f..0afa38b433 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 55f7fdc0b8..7d8047cb88 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 640df3e62a..113435815d 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 c48c579770..3900b8cee0 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 0eade33f0d..b27d9d4470 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 e5ac05749a..e260cad411 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 0000000000..1373a47d7c
--- /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 c423e509d7..60f4d939d5 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 2a7e807da7..b7e956afc1 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 2f80a3cd38..845b2add89 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 8a78511d26..5acf8248f9 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 0000000000..a71e3383db
--- /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 0000000000..6948f1d48b
--- /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 5927a2ab98..dd4280aaaf 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 bd623388b7..e0132f9c09 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 eef2432d68..b12f5a296c 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 23ad03fd91..4d6822e4c8 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 eb5b158a39..47e35784e5 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 5842a6297d..7e30ba1e6a 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 2a83898bf1..988a73b83a 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 d80fb16559..f06a8c1616 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 6ae6113080..39b199c898 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 53e5119a3c..1d9ea976e1 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 76ca53526e..cdaf061aeb 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 aaeb0c4aa6..e6c8b7e4e4 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 42ff6c25e3..dd73ec4ce4 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 f22c9bcda2..c2a0b8860a 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 365ef0dae2..afd5615027 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 4128a21c65..4bb4a37fad 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 f15d8dffeb..d6c72e15c9 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 77e8c3a42a..b4799076f9 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 ac5c0f1ed8..a712668b72 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 2503715ca9..bc0f884a67 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 2807a6109b..6f08123c57 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 5276987323..d585a069d1 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 49a8e72907..e456d677ff 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 dd5a889138..6326cbd98f 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 a110ae64ea..001975db9f 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 eba8bd5806..476b116109 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 4967484f6f..5c85d27c95 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 826fb23489..40251f5010 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 3d773cfcd2..6a52133a58 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 32fde96e7e..4d1d8e9f1b 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 9bd637ab3c..bde690cda5 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 5baaaa7bd1..5f4902f998 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 ed44ebbf0c..3714137f3b 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 14f359f28e..518918f79d 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 e5295b3cce..e1c5707e40 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 6705513402..66d390b5f0 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 e151bf5758..b31260e9f8 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 5c35f17c88..44e97e59ea 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 94a92454b8..f4543e8ea0 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 c8f4faaa68..47a1f6bece 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 e4fab06e36..e426722fc9 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 0000000000..7fde36fa94
--- /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 0000000000..528fb70cb4
--- /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 d938f5f572..fe2de17f85 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 301b093190..1f57de19a3 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 0000000000..6d346dd12c
--- /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 c52fe9b1bc..69f2fedff9 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 f0efa3f59e..a1a777f79a 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 e095141abd..cfe0e295ab 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 5d29499e27..5661f27d71 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 1ef35a516f..4b038ac4ff 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 fed3c452bc..5a69f6a6dc 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 25f1891768..6ffa5df847 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 c5e1964daa..ea8eced96b 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 cf24faa281..9087752740 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 9f53ea0708..fb40297d4a 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 e7cf5c32ad..45b96032b7 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 7d9987b31d..5395b37fcf 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 7168bf9fd5..f73cdbce1c 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 19436b2c32..f0d6368f62 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 702832d7c1..ba4adbcf46 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 e5e6f688f7..a7ee32e09e 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 03458208b0..9f4f93f658 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 e1262b6848..c295ea7c17 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 f8bb2088f5..520e9bd6b1 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 1081d1e137..a96d6b2ec7 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 dc493bf443..41576a9f52 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 f36bfdc743..134d2b1028 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 5da2f56a9f..2278273766 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 8be853aa87..ad05a68091 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 f3c4038e23..c8f4b148f8 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 4796538045..7f8203b0a0 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 2877601037..a8e00e02b4 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 0994cd0251..da4445c6ee 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 5751c106a8..442b0f7a6a 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 0fee97559f..35755fc3ef 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 c906f807d0..f639568e3e 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 7e807c9482..a54f9de191 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 85e838fbc0..2f43daab19 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 c35fdce222..eb2ef70c6a 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 12cdfbd575..cfc101a04f 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 99a8e5fc63..1fc6605f45 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 bb862767fd..6e6efc1cfa 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 38c3c6e530..61e8530491 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 0000000000..c52c772722
--- /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 436fb19af7..d14b40d5a5 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 e83293bd5c..5e9fdcbd80 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 b02011288d..7650ee8d7e 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 c70b2dc690..dd66c517a0 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 59d8827d83..58c04a3cca 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 eda7dceb56..0850470e02 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 3c31f9ef2a..a55a256edb 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 ab4d68ba30..f00351b68b 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 b4fdf3c68a..9b2b65cdb8 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 0e36920dbc..2607f22d48 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 0ac8663da5..0bbd63e0d6 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 20ab8ed86f..0000000000
--- 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 88cd659102..0e37a0956a 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 91eabbae85..27b1b4b299 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 5414c2c655..0000000000
--- 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 2d44cad225..94b1c17d1d 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 dc7a6414fc..60045ff7b0 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 081fb47e99..b3f7bbee3a 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 a6ebc25bdd..d35f3230b0 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 1a85098e15..48f848354b 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 26c0010b66..8b0179745f 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 690338f542..464c6dbd19 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 fef3d432a7..5f2b9cd115 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 70f229a0d8..e0309bc62d 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 696b87816e..7409508b00 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 0000000000..11423c9b29
--- /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 0000000000..a1dcc15618
--- /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 3cee23eac2..7a4e98a21b 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 62b57402f8..f2c0f96872 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 1e1194dc85..878675528f 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 0000000000..2b20e15dc8
--- /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 0000000000..d1289da337
--- /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 0000000000..05789fe336
--- /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 0000000000..581324d10d
--- /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 b589b502d4..c619d9dcb9 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 0000000000..696cef18ee
--- /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 98f1b8e25d..0000000000
--- 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 0000000000..bfe6f0822d
--- /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 8af51829a9..47b0a62b76 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 fe1f0cc8d9..3097c5184c 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 0000000000..ec02f8137d
--- /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 1e2fb39916..bd877cb3eb 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 f19886172a..2a74b25f21 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 eb11aee1f0..a3278a886e 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 360a1a416e..be9d66bdd7 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 9927d42610..b6332fb740 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 ae7134f55b..06f213ef0f 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 59548acaee..5eea1c8766 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 0000000000..b102774571
--- /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 3ae9ec0ba1..9f5a375b4a 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 99c1486483..455fc065b8 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 76b55b478b..d2e5039b8d 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 5b0542f6c2..1fd796d675 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 3973720794..8f621b12a7 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 912bb52139..ec8ef27278 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 a56120ce36..073c56efbd 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 8c4221220e..cd6e7dcab4 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 0000000000..7d9ec0e7ee
--- /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 0000000000..267d27bfac
--- /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 0000000000..636b61828d
--- /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 0000000000..b66301b52d
--- /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 5ea6294f3d..4185329a09 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 4c48ab7cc8..e3861cdaf5 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 0000000000..38f878971c
--- /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 0000000000..38ef3b0f18
--- /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 0000000000..3684a47535
--- /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 0000000000..2e2c818161
--- /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 0000000000..76384176ef
--- /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 ccbdc96f23..9b57f900ea 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 0000000000..94795bf6d6
--- /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 af47753ad5..122f0d358a 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 684fbf94df..a843ec124e 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 339f73eba3..a0da8c9ab3 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 0000000000..f398fcef72
--- /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 0000000000..8f706d640f
--- /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 0e0e4d0435..a485d573a0 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 0000000000..63101e57c3
--- /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 0000000000..55d9214d0f
--- /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 0000000000..1c2c34812c
--- /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 2ef20c064b..febc1e0d17 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 9f2352ee25..d4e64cc9f7 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 3243fcd027..0000000000
--- 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 3ef4f4e60b..6efbca7fd7 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 d26e06f56a..7065db62c8 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 94fffd3b48..59078d8361 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 f66368a3a9..5af8a76aa3 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 a38d251e8f..f9f06ed27c 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 6afd66a7b8..71611853cf 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 01ed1a33ec..515cf34e93 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 348e34eb25..45189c36a6 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 efc30536ab..f5b9c1c54c 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 e6a9ee82e0..a75f35a63c 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 40bd71868a..244995fab2 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 b9d4e7883a..c250b2650d 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 e326e70c72..fdf300ea9b 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 904aefbb8f..d56d62fcec 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 6c8ccdb379..738a71b90a 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 11806cc784..ca6d827bde 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 03e5be8a8c..0d00a94e11 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 d96589dc38..16207453d0 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 efc2fa10a7..e995bbc2b0 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 ce1b0e7566..12e9774c20 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 35548fbca3..710e6e6ed4 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 ad778438b8..b1eb6d1da1 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'
         );
 
-- 
GitLab