Microsoft.Xrm.Tooling.PackageDeployment.Powershell.psd1

#
# Module manifest for module 'Microsoft.Xrm.Tooling.CrmConnector.PowerShell'
#

@{ 

# Script module or binary module file associated with this manifest.
RootModule = 'Microsoft.Xrm.Tooling.PackageDeployment.Powershell.psm1'

# Version number of this module.
ModuleVersion = '3.3.0.898'

# ID used to uniquely identify this module
GUID = 'C46F26FB-42AB-4226-BF3F-868DE04AE14C'

# Author of this module
Author = 'Microsoft Common Data Service Team'

# Company or vendor of this module
CompanyName = 'Microsoft'

# Copyright statement for this module
Copyright = '© 2020 Microsoft Corporation. All rights reserved'

# Description of the functionality provided by this module
Description = 'PowerShell wrapper for CDS Package Deployer'

# Minimum version of the .NET Framework required by this module
DotNetFrameworkVersion = '4.6.2'

# Minimum version of the common language runtime (CLR) required by this module
CLRVersion = '4.0'

# Assemblies that must be loaded prior to importing this module
RequiredAssemblies = @(
'Microsoft.Xrm.Tooling.Ui.Styles.dll',
'Microsoft.Uii.Common.dll',
'Microsoft.Uii.AifServices.dll',
'Microsoft.Uii.Common.TypeProvider.dll',
'Microsoft.Uii.CrmEntityManager.dll'
)

# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess
NestedModules = @(
    'Microsoft.Xrm.Tooling.PackageDeployment.Powershell.dll'
    )

# Functions to export from this module
FunctionsToExport = @()

# Cmdlets to export from this module
CmdletsToExport = @(
    'Get-CrmPackages',
    'Import-CrmPackage'
    )

# Variables to export from this module
VariablesToExport = @(
    )

# Aliases to export from this module
AliasesToExport = @(
    )

# List of all modules packaged with this module.
 ModuleList = @(
    'Microsoft.Xrm.Tooling.PackageDeployment.Powershell'
    )

# Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell.
PrivateData = @{

    PSData = @{

        # Tags applied to this module. These help with module discovery in online galleries.
        # Tags = @()

        # A URL to the license for this module.
         LicenseUri = 'https://go.microsoft.com/fwlink/?linkid=2108407'

        # A URL to the main website for this project.
         ProjectUri = 'https://docs.microsoft.com/powershell/dynamics365/customer-engagement/overview#get-started-using-the-dynamics-365-customer-engagement-package-deployment-powershell-cmdlets'

        # A URL to an icon representing this module.
         IconUri = 'https://connectoricons-prod.azureedge.net/powerappsforappmakers/icon_1.0.1056.1255.png'

        # ReleaseNotes of this module
         ReleaseNotes = '
Current Release:
 
3.3.0.898
  Fix in Data import to compensate for Import files created during a window of time where new virtual fields generated by CDS were incorrectly identified as valid fields.
      This issue would cause schema validation to fail during import of complex data for some types of attributeOf type fields.
  Up-taking fixes for Sovereign cloud discovery connectivity for login controls
 
3.3.0.895:
  Fixed a bug in runtime settings parsing that would mis identify a = in the value as a key value separator.
 
3.3.0.894:
  Fix for an issue where data import could hang without error
  Fix for an issue where importing business units that included a lookup for their own team (looped back to the entity) would not be populated on update.
  Fixed a general issue were related LookUp IDs that were discovered in the target system were not properly linked.
  Behavior Change: when using BatchMode, Create will always include the ID of the record from the source system, even if not explicitly included as a field in the exported system.
 
3.3.0.891:
Fix for an issue reported where related objects were not being correctly identified by name and thus not correctly linked to importing records
    This only impacted imports where the related entity did not have comparison keys
Modified Logging support in Powershell module to push logs more actively.
Speculative fix for issue where long running PD Powershell jobs seem to hang when running in PowerShell client.
 
3.3.0.888:
    Updates to internal architecture of PD.
    Corrected a possible bug in solution install leg that would result in a "Null Object" Error
    Added in memory configuration parsing logic
    Optimized dependency checking logic
 
 
3.3.0.882:
    Cleaned up extra lines in logging output.
    Adding Logging for time taken during configuraiton parsing to aid in performance info.
    Uptook New CDS SDK drop.
    Updated the Import-CrmPackage cmdlet to accept the output of the Get-CrmPackage cmdlet.
            This will allow a used of the powershell module to use Get-CrmPackage to find the package that they want, then pass that package info directly to Import-CrmPackage.
 
 
3.3.0.879:
    Fixed an issue preventing logs from being generated correctly, Logs should once again write to the log directory
 
3.3.0.874:
    Added Improvements to Async solution import logic
    Updated for current xrm sdk
    Includes updates from the CMT.
 
3.3.0.862
    ADAL 3.19+ is now required for this module. ADAL 2.x clients will need to be updated to use ADAL 3.x+
     
3.3.0.858
    Added support for France and New US Geos
    Added new behavior to return the full login error when initial connect fails in LastException.
    Fixed https activation issue introduced by .net 4.8. - This should no longer require http activation to be enabled on windows.
    Fixed issue where a long running cloned connection loses its access token.
 
3.3.0.844
    (Nuget-9.0.2.19)
    Logging Updates
    Added support for forcing all packages to run Sync mode, regardless of how a given package is configured.
    Modified RaiseFail event for RaiseFail generated from the package. New behavior will cause PD to stop with an overall failure.
 
3.3.0.841 - (Nuget-9.0.2.16):
    Added native support for handing throttling messages from server.
    Improved handling of retry logic for blocked imports due to concurrent metadata import
 
#### VERSION RESET HERE TO NOW FOLLOW BUILD VERSIONS OF THIS MODULE...
 
NOTE: Notes Below are synced to Nuget Release Found here: https://www.nuget.org/packages/Microsoft.CrmSdk.XrmTooling.PackageDeployment.PowerShell/
9.0.2.12:
    Correcting Dependency Info on Package
    Fixed bug in CrmServiceClient which would cause some OnPrem connections to fail with an error "Item already added to List"
    Minor Perf Improvements
       
9.0.2.11:
    Updated to include Fixed version of CrmServiceClient and login control for new US Geo ( US Gov High )
    Added support for Preferring Affinity with a given node to improve cache hit success rate.
 
9.0.2.9:
    Fixed a user reported issue that would cause an import patch to fail due to being misapplied.
    Fixed a user reported issue that would cause the incorrect version of a solution to be imported under some circumstances during update.
    Added better error detection for failed Async Jobs when using Async Solution Import.
    Major updates to error logging to make logs more concise and useful.
           
9.0.2.8:
    Corrected an issue which would occur while importing a package that contained an upgrade for a deployed solution, where a prior version upgrade had failed leaving a holding solution. The system will now attempt to apply the current holding solution, and upon success, apply the new upgrade contained.
             
9.0.2.7:
    Picked up updated CrmServiceClient (Microsoft.Xrm.Tooling.Connector)
 
9.0.2.5:
    Corrected use of strong types inside Package Deployer to allow it to work properly with packages that also include overlapping strong typed objects.
    Corrected a case where Async Solution Deployment could fail and not be correctly caught by PD.
    Corrected a spelling issue on the return of Get-CrmPackages, Property PackageInfo.PacakgeAssemblyLocation was renamed to PackageInfo.PackageAssemblyLocation
 
9.0.2.4:
    Updated install flows to more correctly trigger failures on failures within user code or data import.
 
    UseAsyncForSolutionImport - added to commandlet
    This setting controls the default behavior of the import operations for Package Deployer.
    If set to true, Package deployer will attempt to use an Async Pattern for all solution operations where possible to do, given the server configuration.
    The default setting for this is false ( sync mode )
 
    Importconfig.xml - Solutions node updates.
    Added requiredimportmode as an option to force an Async or Sync import behavior for a given solution.
    This includes, upgrade or new install.
        Valid settings for this property are :
            async - Requires the Import of this solution to be done in an async manner if the server supports it.
            sync - Requires the import of this solution to be done in a sync manner if the server supports it.
            Default behavior follows the default setting for the Package Deployer Core Process.
 
9.0.2.3:
    Updated with Xrm.Tooling.Connector support
    Added new dependencies for Xrm.Tooling.Connector.dll
    Fixed issues that caused unhandled exceptions to be thrown when a package resulted in an error.
    Added new notifications in logs and UX for faults (where applicable).
    Added logic to detect stuck solution import and abort the import process
 
9.0.0.7:
    Fixed a bug in Configuration Migration tool Lookup processing logic that was causing incorrect linking where the data set includes records that require related lookup records that share the same default name.
 
9.0.0.5:
    9.0 Initial Release
 
9.0.0.2-preview:
    Breaking Change!
    Refactor of this package to support module invocation instead of assembly registration. This is done to support direct inclusion from nuget by ALM \ SDL tasks.
    To register module, run the RegisterXRMPackageDeployment.ps1
 
8.2.0.4 -
    Initial release
 
         '


    } # End of PSData hashtable

} # End of PrivateData hashtable
}

# SIG # Begin signature block
# MIIdhAYJKoZIhvcNAQcCoIIddTCCHXECAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB
# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR
# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQU5bN4ScucIj1BgT16CUrmZhwM
# XKWgghhuMIIE3jCCA8agAwIBAgITMwAAAVcHwI+AVivl4QAAAAABVzANBgkqhkiG
# 9w0BAQUFADB3MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4G
# A1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEw
# HwYDVQQDExhNaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EwHhcNMTkxMjE5MDExMzAy
# WhcNMjEwMzE3MDExMzAyWjCBzjELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp
# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw
# b3JhdGlvbjEpMCcGA1UECxMgTWljcm9zb2Z0IE9wZXJhdGlvbnMgUHVlcnRvIFJp
# Y28xJjAkBgNVBAsTHVRoYWxlcyBUU1MgRVNOOkY3N0YtRTM1Ni01QkFFMSUwIwYD
# VQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNlMIIBIjANBgkqhkiG9w0B
# AQEFAAOCAQ8AMIIBCgKCAQEA2MuEqFkw5VMnqYygsGlvEu2fMIkPJnqcyM1iY0gT
# 9QCA//SjpkPczNdQZHB9CcCfyiZzW7pEmKPdbhj9v4GggCVAtcx4m3e4od03N5TU
# 2LwY1B+5YYDkUMbn9FNyzD97DNafdmJjWNVlwweVu4rhPA7riuVVeuaFdMx7ICEI
# hSyVSBM44fh3Lp5hERf4SEhhkfClOU9+6yLEqMgSwbTsHDxxIbR/Pd6dwIaSPLmx
# uFHLadVh7ynY08QBUuSEbD/vMnx1BZSFP32HPgnyA3Q3GBjo8ZN6JSyGZHeZ/yOk
# wWCn/KeEogzbjn388HaCNVZR0G7Kc8Y5tvBk2qlOx37cXQIDAQABo4IBCTCCAQUw
# HQYDVR0OBBYEFOuHsagXH0j5BgmO0Vf0AZeZFZx/MB8GA1UdIwQYMBaAFCM0+NlS
# RnAK7UD7dvuzK7DDNbMPMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly9jcmwubWlj
# cm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY3Jvc29mdFRpbWVTdGFtcFBD
# QS5jcmwwWAYIKwYBBQUHAQEETDBKMEgGCCsGAQUFBzAChjxodHRwOi8vd3d3Lm1p
# Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jvc29mdFRpbWVTdGFtcFBDQS5jcnQw
# EwYDVR0lBAwwCgYIKwYBBQUHAwgwDQYJKoZIhvcNAQEFBQADggEBAJiH8eFL6ihM
# a8B2L0laLGEta790qpu2VFiO15MnBhA1A0Mp97pGQNbyKMCnOPiDoRC+ge3FRXXI
# Yrp+S0FIkKbLAOydiZp8TeFEE9lNVZJhJWBb6jkZx90DioevrQRhocujbDSLiBIE
# bylN5JWWYjsv/96unhnR5Y1ZOTg67ZXDrsa+U1hjjN75T3F+VoZPpV0ja+hHGXT+
# F/x6TU3Fc9MzYBMDs23v/RxsJfpZsafg6prFjsWVlmrfMYsmeBmbDAk3qcJvbBR7
# FOvz+focTnNv5FrC9ORCuT1mRFAqxadceqYLK/taCJ0umqTmbWL8mn+YayKqB4FL
# ptK+64r2jk8wggX/MIID56ADAgECAhMzAAABh3IXchVZQMcJAAAAAAGHMA0GCSqG
# SIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw
# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x
# KDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTEwHhcNMjAw
# MzA0MTgzOTQ3WhcNMjEwMzAzMTgzOTQ3WjB0MQswCQYDVQQGEwJVUzETMBEGA1UE
# CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9z
# b2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNyb3NvZnQgQ29ycG9yYXRpb24w
# ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDOt8kLc7P3T7MKIhouYHew
# MFmnq8Ayu7FOhZCQabVwBp2VS4WyB2Qe4TQBT8aBznANDEPjHKNdPT8Xz5cNali6
# XHefS8i/WXtF0vSsP8NEv6mBHuA2p1fw2wB/F0dHsJ3GfZ5c0sPJjklsiYqPw59x
# J54kM91IOgiO2OUzjNAljPibjCWfH7UzQ1TPHc4dweils8GEIrbBRb7IWwiObL12
# jWT4Yh71NQgvJ9Fn6+UhD9x2uk3dLj84vwt1NuFQitKJxIV0fVsRNR3abQVOLqpD
# ugbr0SzNL6o8xzOHL5OXiGGwg6ekiXA1/2XXY7yVFc39tledDtZjSjNbex1zzwSX
# AgMBAAGjggF+MIIBejAfBgNVHSUEGDAWBgorBgEEAYI3TAgBBggrBgEFBQcDAzAd
# BgNVHQ4EFgQUhov4ZyO96axkJdMjpzu2zVXOJcswUAYDVR0RBEkwR6RFMEMxKTAn
# BgNVBAsTIE1pY3Jvc29mdCBPcGVyYXRpb25zIFB1ZXJ0byBSaWNvMRYwFAYDVQQF
# Ew0yMzAwMTIrNDU4Mzg1MB8GA1UdIwQYMBaAFEhuZOVQBdOCqhc3NyK1bajKdQKV
# MFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lv
# cHMvY3JsL01pY0NvZFNpZ1BDQTIwMTFfMjAxMS0wNy0wOC5jcmwwYQYIKwYBBQUH
# AQEEVTBTMFEGCCsGAQUFBzAChkVodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtp
# b3BzL2NlcnRzL01pY0NvZFNpZ1BDQTIwMTFfMjAxMS0wNy0wOC5jcnQwDAYDVR0T
# AQH/BAIwADANBgkqhkiG9w0BAQsFAAOCAgEAixmyS6E6vprWD9KFNIB9G5zyMuIj
# ZAOuUJ1EK/Vlg6Fb3ZHXjjUwATKIcXbFuFC6Wr4KNrU4DY/sBVqmab5AC/je3bpU
# pjtxpEyqUqtPc30wEg/rO9vmKmqKoLPT37svc2NVBmGNl+85qO4fV/w7Cx7J0Bbq
# k19KcRNdjt6eKoTnTPHBHlVHQIHZpMxacbFOAkJrqAVkYZdz7ikNXTxV+GRb36tC
# 4ByMNxE2DF7vFdvaiZP0CVZ5ByJ2gAhXMdK9+usxzVk913qKde1OAuWdv+rndqkA
# Im8fUlRnr4saSCg7cIbUwCCf116wUJ7EuJDg0vHeyhnCeHnBbyH3RZkHEi2ofmfg
# nFISJZDdMAeVZGVOh20Jp50XBzqokpPzeZ6zc1/gyILNyiVgE+RPkjnUQshd1f1P
# Mgn3tns2Cz7bJiVUaqEO3n9qRFgy5JuLae6UweGfAeOo3dgLZxikKzYs3hDMaEtJ
# q8IP71cX7QXe6lnMmXU/Hdfz2p897Zd+kU+vZvKI3cwLfuVQgK2RZ2z+Kc3K3dRP
# z2rXycK5XCuRZmvGab/WbrZiC7wJQapgBodltMI5GMdFrBg9IeF7/rP4EqVQXeKt
# evTlZXjpuNhhjuR+2DMt/dWufjXpiW91bo3aH6EajOALXmoxgltCp1K7hrS6gmsv
# j94cLRf50QQ4U8QwggYHMIID76ADAgECAgphFmg0AAAAAAAcMA0GCSqGSIb3DQEB
# BQUAMF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAXBgoJkiaJk/IsZAEZFgltaWNy
# b3NvZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhv
# cml0eTAeFw0wNzA0MDMxMjUzMDlaFw0yMTA0MDMxMzAzMDlaMHcxCzAJBgNVBAYT
# AlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYD
# VQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xITAfBgNVBAMTGE1pY3Jvc29mdCBU
# aW1lLVN0YW1wIFBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ+h
# bLHf20iSKnxrLhnhveLjxZlRI1Ctzt0YTiQP7tGn0UytdDAgEesH1VSVFUmUG0KS
# rphcMCbaAGvoe73siQcP9w4EmPCJzB/LMySHnfL0Zxws/HvniB3q506jocEjU8qN
# +kXPCdBer9CwQgSi+aZsk2fXKNxGU7CG0OUoRi4nrIZPVVIM5AMs+2qQkDBuh/NZ
# MJ36ftaXs+ghl3740hPzCLdTbVK0RZCfSABKR2YRJylmqJfk0waBSqL5hKcRRxQJ
# gp+E7VV4/gGaHVAIhQAQMEbtt94jRrvELVSfrx54QTF3zJvfO4OToWECtR0Nsfz3
# m7IBziJLVP/5BcPCIAsCAwEAAaOCAaswggGnMA8GA1UdEwEB/wQFMAMBAf8wHQYD
# VR0OBBYEFCM0+NlSRnAK7UD7dvuzK7DDNbMPMAsGA1UdDwQEAwIBhjAQBgkrBgEE
# AYI3FQEEAwIBADCBmAYDVR0jBIGQMIGNgBQOrIJgQFYnl+UlE/wq4QpTlVnkpKFj
# pGEwXzETMBEGCgmSJomT8ixkARkWA2NvbTEZMBcGCgmSJomT8ixkARkWCW1pY3Jv
# c29mdDEtMCsGA1UEAxMkTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9y
# aXR5ghB5rRahSqClrUxzWPQHEy5lMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9j
# cmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL21pY3Jvc29mdHJvb3Rj
# ZXJ0LmNybDBUBggrBgEFBQcBAQRIMEYwRAYIKwYBBQUHMAKGOGh0dHA6Ly93d3cu
# bWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljcm9zb2Z0Um9vdENlcnQuY3J0MBMG
# A1UdJQQMMAoGCCsGAQUFBwMIMA0GCSqGSIb3DQEBBQUAA4ICAQAQl4rDXANENt3p
# tK132855UU0BsS50cVttDBOrzr57j7gu1BKijG1iuFcCy04gE1CZ3XpA4le7r1ia
# HOEdAYasu3jyi9DsOwHu4r6PCgXIjUji8FMV3U+rkuTnjWrVgMHmlPIGL4UD6ZEq
# JCJw+/b85HiZLg33B+JwvBhOnY5rCnKVuKE5nGctxVEO6mJcPxaYiyA/4gcaMvnM
# MUp2MT0rcgvI6nA9/4UKE9/CCmGO8Ne4F+tOi3/FNSteo7/rvH0LQnvUU3Ih7jDK
# u3hlXFsBFwoUDtLaFJj1PLlmWLMtL+f5hYbMUVbonXCUbKw5TNT2eb+qGHpiKe+i
# myk0BncaYsk9Hm0fgvALxyy7z0Oz5fnsfbXjpKh0NbhOxXEjEiZ2CzxSjHFaRkMU
# vLOzsE1nyJ9C/4B5IYCeFTBm6EISXhrIniIh0EPpK+m79EjMLNTYMoBMJipIJF9a
# 6lbvpt6Znco6b72BJ3QGEe52Ib+bgsEnVLaxaj2JoXZhtG6hE6a/qkfwEm/9ijJs
# sv7fUciMI8lmvZ0dhxJkAj0tr1mPuOQh5bWwymO0eFQF1EEuUKyUsKV4q7OglnUa
# 2ZKHE3UiLzKoCG6gW4wlv6DvhMoh1useT8ma7kng9wFlb4kLfchpyOZu6qeXzjEp
# /w7FW1zYTRuh2Povnj8uVRZryROj/TCCB3owggVioAMCAQICCmEOkNIAAAAAAAMw
# DQYJKoZIhvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n
# dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y
# YXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhv
# cml0eSAyMDExMB4XDTExMDcwODIwNTkwOVoXDTI2MDcwODIxMDkwOVowfjELMAkG
# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx
# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEoMCYGA1UEAxMfTWljcm9z
# b2Z0IENvZGUgU2lnbmluZyBQQ0EgMjAxMTCCAiIwDQYJKoZIhvcNAQEBBQADggIP
# ADCCAgoCggIBAKvw+nIQHC6t2G6qghBNNLrytlghn0IbKmvpWlCquAY4GgRJun/D
# DB7dN2vGEtgL8DjCmQawyDnVARQxQtOJDXlkh36UYCRsr55JnOloXtLfm1OyCizD
# r9mpK656Ca/XllnKYBoF6WZ26DJSJhIv56sIUM+zRLdd2MQuA3WraPPLbfM6XKEW
# 9Ea64DhkrG5kNXimoGMPLdNAk/jj3gcN1Vx5pUkp5w2+oBN3vpQ97/vjK1oQH01W
# KKJ6cuASOrdJXtjt7UORg9l7snuGG9k+sYxd6IlPhBryoS9Z5JA7La4zWMW3Pv4y
# 07MDPbGyr5I4ftKdgCz1TlaRITUlwzluZH9TupwPrRkjhMv0ugOGjfdf8NBSv4yU
# h7zAIXQlXxgotswnKDglmDlKNs98sZKuHCOnqWbsYR9q4ShJnV+I4iVd0yFLPlLE
# tVc/JAPw0XpbL9Uj43BdD1FGd7P4AOG8rAKCX9vAFbO9G9RVS+c5oQ/pI0m8GLhE
# fEXkwcNyeuBy5yTfv0aZxe/CHFfbg43sTUkwp6uO3+xbn6/83bBm4sGXgXvt1u1L
# 50kppxMopqd9Z4DmimJ4X7IvhNdXnFy/dygo8e1twyiPLI9AN0/B4YVEicQJTMXU
# pUMvdJX3bvh4IFgsE11glZo+TzOE2rCIF96eTvSWsLxGoGyY0uDWiIwLAgMBAAGj
# ggHtMIIB6TAQBgkrBgEEAYI3FQEEAwIBADAdBgNVHQ4EFgQUSG5k5VAF04KqFzc3
# IrVtqMp1ApUwGQYJKwYBBAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGG
# MA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUci06AjGQQ7kUBU7h6qfHMdEj
# iTQwWgYDVR0fBFMwUTBPoE2gS4ZJaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3Br
# aS9jcmwvcHJvZHVjdHMvTWljUm9vQ2VyQXV0MjAxMV8yMDExXzAzXzIyLmNybDBe
# BggrBgEFBQcBAQRSMFAwTgYIKwYBBQUHMAKGQmh0dHA6Ly93d3cubWljcm9zb2Z0
# LmNvbS9wa2kvY2VydHMvTWljUm9vQ2VyQXV0MjAxMV8yMDExXzAzXzIyLmNydDCB
# nwYDVR0gBIGXMIGUMIGRBgkrBgEEAYI3LgMwgYMwPwYIKwYBBQUHAgEWM2h0dHA6
# Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvZG9jcy9wcmltYXJ5Y3BzLmh0bTBA
# BggrBgEFBQcCAjA0HjIgHQBMAGUAZwBhAGwAXwBwAG8AbABpAGMAeQBfAHMAdABh
# AHQAZQBtAGUAbgB0AC4gHTANBgkqhkiG9w0BAQsFAAOCAgEAZ/KGpZjgVHkaLtPY
# dGcimwuWEeFjkplCln3SeQyQwWVfLiw++MNy0W2D/r4/6ArKO79HqaPzadtjvyI1
# pZddZYSQfYtGUFXYDJJ80hpLHPM8QotS0LD9a+M+By4pm+Y9G6XUtR13lDni6WTJ
# RD14eiPzE32mkHSDjfTLJgJGKsKKELukqQUMm+1o+mgulaAqPyprWEljHwlpblqY
# luSD9MCP80Yr3vw70L01724lruWvJ+3Q3fMOr5kol5hNDj0L8giJ1h/DMhji8MUt
# zluetEk5CsYKwsatruWy2dsViFFFWDgycScaf7H0J/jeLDogaZiyWYlobm+nt3TD
# QAUGpgEqKD6CPxNNZgvAs0314Y9/HG8VfUWnduVAKmWjw11SYobDHWM2l4bf2vP4
# 8hahmifhzaWX0O5dY0HjWwechz4GdwbRBrF1HxS+YWG18NzGGwS+30HHDiju3mUv
# 7Jf2oVyW2ADWoUa9WfOXpQlLSBCZgB/QACnFsZulP0V3HjXG0qKin3p6IvpIlR+r
# +0cjgPWe+L9rt0uX4ut1eBrs6jeZeRhL/9azI2h15q/6/IvrC4DqaTuv/DDtBEyO
# 3991bWORPdGdVk5Pv4BXIqF4ETIheu9BCrE/+6jMpF3BoYibV3FWTkhFwELJm3Zb
# CoBIa/15n8G9bW1qyVJzEw16UM0xggSAMIIEfAIBATCBlTB+MQswCQYDVQQGEwJV
# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE
# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQgQ29k
# ZSBTaWduaW5nIFBDQSAyMDExAhMzAAABh3IXchVZQMcJAAAAAAGHMAkGBSsOAwIa
# BQCggZQwGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO
# MAwGCisGAQQBgjcCARUwIwYJKoZIhvcNAQkEMRYEFI99PeDqPzQUlKOnP1QJ6hM/
# HgMqMDQGCisGAQQBgjcCAQwxJjAkoBKAEABUAGUAcwB0AFMAaQBnAG6hDoAMaHR0
# cDovL3Rlc3QgMA0GCSqGSIb3DQEBAQUABIIBAAyRXhWzChLvhFXWTr+gb8hDNM+F
# DBq1dr85K0dpiJT87zjbAUvJ2/jVXZWG658lrCbYMNptRi3Hh8yMspCiJDnq9wx7
# IrDrGMsNv3gJgqm7zWKyD6za8tT3P2JeENDhDDM7fyGugx0+vYcWujmtidSXTmFn
# AkELt6A5impwsWu8eeTEFYOkawq/d8agk4Xw9Xg9HBe9sOBzqlU9S/+TDetilavz
# D4ggBmL01zzhhht7BGMf9joK1UOElzYveuMLOxXrr1EVubHvfFQJxaooOzgpz9ts
# khD+A5jFk1wS7EEQP0QmcA97OYgftEuoC9I7T/22HQWhVn30wpUeTuVPbT2hggIo
# MIICJAYJKoZIhvcNAQkGMYICFTCCAhECAQEwgY4wdzELMAkGA1UEBhMCVVMxEzAR
# BgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1p
# Y3Jvc29mdCBDb3Jwb3JhdGlvbjEhMB8GA1UEAxMYTWljcm9zb2Z0IFRpbWUtU3Rh
# bXAgUENBAhMzAAABVwfAj4BWK+XhAAAAAAFXMAkGBSsOAwIaBQCgXTAYBgkqhkiG
# 9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0yMDA3MTQxNTQyNTFa
# MCMGCSqGSIb3DQEJBDEWBBSgVg3uzbw2dNyR/eSwixJfjN1mcTANBgkqhkiG9w0B
# AQUFAASCAQAesSvCY+R0lxamh2iwGoO54F7gMpj7pib6GJ4klbFkkQiIY1PV6qRZ
# 0C0VTp40X5rvE+sC6clCNMm59u5jLzipZ+5f5BWMOWNYysP+5B+xxrfJf7IqeSbf
# IxxuFpX00d3G+FeCT0H03UWKh0Gr8SV4kg/ZlQRWPeptm6rSygY7PkPjKpG8XxQB
# Ha+NA/1ObPF0Db+MsgjXwImDFCF6kcO0upXUOBI/C6Dwux+bYIic7BX510hKUagE
# VGPAZH1OqLZoGJATLzK8FsllJATXBA8hdDzEKYtVP4MwurwCSa9PIBNaqzN0N5n+
# sf3Kg9pLT0kcqDjnRSlrVvrC+A+6PYsI
# SIG # End signature block