PSFalcon.psd1

#
# Module manifest for module 'PSFalcon'
#
# Generated by: brendan.kremian@crowdstrike.com
#
# Generated on: 1/15/2021
#

@{

# Script module or binary module file associated with this manifest.
RootModule = 'PSFalcon.psm1'

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

# Supported PSEditions
CompatiblePSEditions = @('Desktop','Core')

# ID used to uniquely identify this module
GUID = 'd893eb9f-f6bb-4a40-9caf-aaff0e42acd1'

# Author of this module
Author = 'Brendan Kremian'

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

# Copyright statement for this module
Copyright = '(c) CrowdStrike. All rights reserved.'

# Description of the functionality provided by this module
Description = "PowerShell for CrowdStrike's OAuth2 APIs"

# Minimum version of the PowerShell engine required by this module
PowerShellVersion = '5.1'

# Name of the PowerShell host required by this module
# PowerShellHostName = ''

# Minimum version of the PowerShell host required by this module
# PowerShellHostVersion = ''

# Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the
# PowerShell Desktop edition only.
# DotNetFrameworkVersion = ''

# Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for
# the PowerShell Desktop edition only.
# CLRVersion = ''

# Processor architecture (None, X86, Amd64) required by this module
# ProcessorArchitecture = ''

# Modules that must be imported into the global environment prior to importing this module
# RequiredModules = @()

# Assemblies that must be loaded prior to importing this module
# RequiredAssemblies = @()

# Script files (.ps1) that are run in the caller's environment prior to importing this module
ScriptsToProcess = @('Class/Class.ps1')

# Type files (.ps1xml) to be loaded when importing this module
# TypesToProcess = @()

# Format files (.ps1xml) to be loaded when importing this module
# FormatsToProcess = @()

# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess
# NestedModules = @()

# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry,
# use an empty array if there are no functions to export.
FunctionsToExport = @(
    # cloud-connect-aws
    'Confirm-DiscoverAwsAccess',
    'Edit-DiscoverAwsAccount',
    'Get-DiscoverAwsAccount',
    'Get-DiscoverAwsSettings',
    'New-DiscoverAwsAccount',
    'Remove-DiscoverAwsAccount',
    'Update-DiscoverAwsSettings',

    # cloud-connect-azure
    'Get-DiscoverAzureAccount',
    'Get-DiscoverAzureScript',
    'New-DiscoverAzureAccount',
    'Update-DiscoverAzureAccount',

    # cloud-connect-cspm-aws
    'Get-HorizonAwsAccount',
    'Get-HorizonAwsLink',
    'New-HorizonAwsAccount',
    'Receive-HorizonAwsScript',
    'Remove-HorizonAwsAccount',

    # cloud-connect-cspm-azure
    'Edit-HorizonAzureAccount',
    'Get-HorizonAzureAccount',
    'New-HorizonAzureAccount',
    'Receive-HorizonAzureScript',
    'Remove-HorizonAzureAccount',

    # cloud-connect-gcp
    'Get-DiscoverGcpAccount',
    'New-DiscoverGcpAccount',
    'Receive-DiscoverGcpScript',

    # config
    'Export-Config',
    'Import-Config',

    # detects
    'Edit-Detection',
    'Get-Detection',

    # devices
    'Add-HostTag',
    'Edit-HostGroup',
    'Get-Host',
    'Get-HostGroup',
    'Get-HostGroupMember',
    'Invoke-HostAction',
    'Invoke-HostGroupAction',
    'New-HostGroup',
    'Remove-HostGroup',
    'Remove-HostTag',

    # falconx
    'Get-Report',
    'Get-Submission',
    'Get-SubmissionQuota',
    'New-Submission',
    'Receive-Artifact',
    'Remove-Report',

    # fwmgr
    'Edit-FirewallGroup',
    'Edit-FirewallSetting',
    'Get-FirewallEvent',
    'Get-FirewallField',
    'Get-FirewallGroup',
    'Get-FirewallPlatform',
    'Get-FirewallRule',
    'Get-FirewallSetting',
    'New-FirewallGroup',
    'Remove-FirewallGroup',

    # incidents
    'Get-Behavior',
    'Get-Incident',
    'Get-Score',
    'Invoke-IncidentAction',

    # indicators
    'Edit-IOC',
    'Get-IOC',
    'Get-IOCHost',
    'Get-IOCProcess',
    'Get-IOCTotal',
    'New-IOC',
    'Remove-IOC',

    # installation-tokens
    'Edit-InstallToken',
    'Get-InstallToken',
    'Get-InstallTokenEvent',
    'Get-InstallTokenSettings',
    'New-InstallToken',
    'Remove-InstallToken',

    # intel
    'Get-Actor',
    'Get-Indicator',
    'Get-Intel',
    'Get-Rule',
    'Receive-Intel',
    'Receive-Rule',

    # ioarules
    'Edit-IOAGroup',
    'Edit-IOARule',
    'Get-IOAGroup',
    'Get-IOAPlatform',
    'Get-IOARule',
    'Get-IOASeverity',
    'Get-IOAType',
    'New-IOAGroup',
    'New-IOARule',
    'Remove-IOAGroup',
    'Remove-IOARule',
    'Test-IOARule',

    # malquery
    'Get-MalQuery',
    'Get-MalQueryQuota',
    'Get-MalQuerySample',
    'Group-MalQuerySample',
    'Invoke-MalQuery',
    'Receive-MalQuerySample',

    # mssp
    "Add-CIDGroupMember",
    "Add-GroupRole",
    "Add-UserGroupMember",
    "Edit-CIDGroup",
    "Edit-UserGroup",
    "Get-CIDGroup",
    "Get-CIDGroupMember",
    "Get-GroupRole",
    "Get-MemberCID",
    "Get-UserGroup",
    "Get-UserGroupMember",
    "New-CIDGroup",
    "New-UserGroup",
    "Remove-CIDGroup",
    "Remove-CIDGroupMember",
    "Remove-GroupRole",
    "Remove-UserGroup",
    "Remove-UserGroupMember",

    # oauth2
    'Request-Token',
    'Revoke-Token',

    # policy
    'Edit-DeviceControlPolicy',
    'Edit-FirewallPolicy',
    'Edit-IOAExclusion',
    'Edit-MLExclusion',
    'Edit-PreventionPolicy',
    'Edit-ResponsePolicy',
    'Edit-SensorUpdatePolicy',
    'Edit-SVExclusion',
    'Get-Build',
    'Get-DeviceControlPolicy',
    'Get-DeviceControlPolicyMember',
    'Get-FirewallPolicy',
    'Get-FirewallPolicyMember',
    'Get-IOAExclusion',
    'Get-MLExclusion',
    'Get-PreventionPolicy',
    'Get-PreventionPolicyMember',
    'Get-ResponsePolicy',
    'Get-ResponsePolicyMember'
    'Get-SensorUpdatePolicy',
    'Get-SensorUpdatePolicyMember',
    'Get-SVExclusion',
    'Get-UninstallToken',
    'Invoke-DeviceControlPolicyAction',
    'Invoke-FirewallPolicyAction',
    'Invoke-PreventionPolicyAction',
    'Invoke-ResponsePolicyAction',
    'Invoke-SensorUpdatePolicyAction',
    'New-DeviceControlPolicy',
    'New-FirewallPolicy',
    'New-MLExclusion',
    'New-PreventionPolicy',
    'New-ResponsePolicy',
    'New-SensorUpdatePolicy',
    'New-SVExclusion',
    'Remove-DeviceControlPolicy',
    'Remove-FirewallPolicy',
    'Remove-IOAExclusion',
    'Remove-MLExclusion',
    'Remove-PreventionPolicy',
    'Remove-ResponsePolicy',
    'Remove-SensorUpdatePolicy',
    'Remove-SVExclusion',
    'Set-DeviceControlPrecedence',
    'Set-FirewallPrecedence',
    'Set-PreventionPrecedence',
    'Set-ResponsePrecedence',
    'Set-SensorUpdatePrecedence',

    # processes
    'Get-Process',

    # real-time-response
    'Confirm-AdminCommand',
    'Confirm-Command',
    'Confirm-GetFile',
    'Confirm-ResponderCommand',
    'Edit-Script',
    'Get-PutFile',
    'Get-Script',
    'Get-Session',
    'Invoke-AdminCommand',
    'Invoke-BatchGet',
    'Invoke-Command',
    'Invoke-ResponderCommand',
    'Receive-GetFile',
    'Remove-Command',
    'Remove-GetFile',
    'Remove-PutFile',
    'Remove-Script',
    'Remove-Session',
    'Send-PutFile',
    'Send-Script',
    'Start-Session',
    'Update-Session',

    # samples
    'Get-Sample',
    'Receive-Sample',
    'Remove-Sample',
    'Send-Sample',

    # scanner
    'Get-QuickScan',
    'New-QuickScan',

    # scripts
    'Export-Report',
    'Find-Duplicate',
    'Get-Queue',
    'Invoke-Deploy',
    'Invoke-RTR',
    'Open-Stream',
    'Search-MalQueryHash',
    'Show-Map',
    'Show-Module',
    'Test-Token',

    # sensors
    'Get-CCID',
    'Get-Installer',
    'Get-Stream',
    'Receive-Installer',
    'Update-Stream',

    # settings
    'Edit-HorizonPolicy',
    'Edit-HorizonSchedule',
    'Get-HorizonPolicy',
    'Get-HorizonSchedule',

    # spotlight
    'Get-Remediation',
    'Get-Vulnerability',

    # user-roles
    'Add-Role',
    'Get-Role',
    'Remove-Role',

    # users
    'Edit-User',
    'Get-User',
    'New-User',
    'Remove-User'
)

# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry,
# use an empty array if there are no cmdlets to export.
CmdletsToExport = @()

# Variables to export from this module
VariablesToExport = '*'

# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry,
# use an empty array if there are no aliases to export.
AliasesToExport = @()

# DSC resources to export from this module
# DscResourcesToExport = @()

# List of all modules packaged with this module
# ModuleList = @()

# List of all files packaged with this module
# FileList = @()

# 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 = @('CrowdStrike', 'Falcon', 'OAuth2', 'REST', 'API', 'PSEdition_Desktop', 'PSEdition_Core',
          'Windows', 'Linux', 'MacOS')

        # A URL to the license for this module.
        LicenseUri = 'https://github.com/CrowdStrike/psfalcon/blob/master/LICENSE'

        # A URL to the main website for this project.
        ProjectUri = 'https://github.com/crowdstrike/psfalcon'

        # A URL to an icon representing this module.
        IconUri = 'https://avatars.githubusercontent.com/u/54042976?s=400&u=789014ae9e1ec2204090e90711fa34dd93e5c4d1'

        # ReleaseNotes of this module.
        ReleaseNotes = "v2.0.7:
        General Changes
        * Added additional 'tags' to module manifest to help with PowerShell Gallery organization.
        * Added 'LicenseUri' to module manifest.
        * Added code to close file access methods when uploading files using 'Send' commands. Previously, if an
          upload failed and another attempt was made you would receive a notification that the file was
          already being accessed.
        * Added check during initial module load to enforce TLS 1.2 for connecting to CrowdStrike APIs.
        * Moved [System.Net.Http] check for PowerShell 5.1 from Invoke-Endpoint to base module load.
        * Updated base functions in an effort to improve error handling.
        * Added URI validation check to Invoke-Endpoint to improve error handling.

        Command and Parameter Changes
        * Re-wrote 'Get-FalconQueue' in an effort to increase performance when dealing with large numbers of
          results.
        * Fixed typo in 'Get-FalconIOARule' that was corrupting parameters and '-Help' output of the command.
        * Changed various 'verbose' outputs to 'debug' to reduce overall output when running with '-Verbose'. Some
          of the fields were not useful in a 'more information' context, but were for 'debugging'.
        * Updated the internal function 'Invoke-Loop' to automatically provide the '-Limit' parameter (at the
          maximum available value) when '-All' is specified with a command and '-Limit' was not included.
        * Added 'add-rule-group' and 'remove-rule-group' actions to 'Invoke-FalconPreventionPolicyAction' for
          assigning and removing Custom IOA Rule Groups from Prevention policies.
        * Removed 'Name' as a required parameter when using the 'Edit' policy commands as it should not be
          mandatory.
        * Updated 'Limit' for 'Get-FalconIOC' to 500 to match API.
        * Fixed 'Invoke-FalconHostGroupAction' to enable adding/removing multiple hosts at one time.
        * Added a 'pattern' value for 'Get-FalconUninstallToken' to make it clear that a device_id or the value
          'MAINTENANCE' can be supplied to retrieve an individual uninstall token or the more widely accepted
          maintenance token.
        * Added 'Array' parameter (used by 'Import-FalconConfig') to enable creation and modification of multiple
          items using a single request to the following commands:
            Edit-FalconDeviceControlPolicy
            Edit-FalconFirewallPolicy
            Edit-FalconHostGroup
            Edit-FalconPreventionPolicy
            Edit-FalconResponsePolicy
            Edit-FalconSensorUpdatePolicy
            New-FalconDeviceControlPolicy
            New-FalconFirewallPolicy
            New-FalconHostGroup
            New-FalconPreventionPolicy
            New-FalconResponsePolicy
            New-FalconSensorUpdatePolicy
        * Changed 'Settings' parameters for 'New-FalconDeviceControlPolicy', 'New-FalconResponsePolicy',
          'New-FalconSensorUpdatePolicy' and their matching 'Edit' commands to take a hashtable instead of an
          array to correct bug where policy creation/updates would fail.

        New Commands
        * Added 'Export-FalconConfig' and 'Import-FalconConfig' commands to export and import exclusions, policies
          and groups using an archive of Json files.
        * Added MSSP/Falcon Flight Control commands for new API endpoints:
          Add-FalconCIDGroupMember
          Add-FalconGroupRole
          Add-FalconUserGroupMember
          Edit-FalconCIDGroup
          Edit-FalconUserGroup
          Get-FalconCID
          Get-FalconCIDGroup
          Get-FalconCIDGroupMember
          Get-FalconGroupRole
          Get-FalconUserGroup
          Get-FalconUserGroupMember
          New-FalconCIDGroup
          New-FalconUserGroup
          Remove-FalconCIDGroup
          Remove-FalconCIDGroupMember
          Remove-FalconGroupRole
          Remove-FalconUserGroup
          Remove-FalconUserGroupMember

        GitHub Issues
        * Issue #13: Creating/modifying multiple objects in one request handled with new 'Array' parameter
          for commands used with 'Import-FalconConfig'.
        * Issue #31: Added code to the 'Get-Body' function to .Normalize() text grabbed with 'Get-Content' and
          prevent errors when the content is converted to Json for API submission.
        * Issue #33: Changed default permission level for 'runscript' command to Admin when using
          'Invoke-FalconRTR' to compensate for '-Raw' parameter not working with Active Responder permissions.
        * Issue #34: Added 'Test-FalconToken' command to display token status and additional client information
          including 'ClientId', 'Hostname' and 'MemberCid'. Also made various changes to improve general error
          message production.
        * Issue #36: Set 'Limit' maximum to 500 for 'Get-FalconIOAExclusion', 'Get-FalconMLExclusion', and
          'Get-FalconSVExclusion'.
        * Issue #43: Updated 'ids' and 'value' parameters to correct bugs related to 'Invoke-FalconIncidentAction'.
        "

    } # End of PSData hashtable

} # End of PrivateData hashtable

# HelpInfo URI of this module
HelpInfoURI = 'https://github.com/crowdstrike/psfalcon/blob/master/README.md'

# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix
DefaultCommandPrefix = 'Falcon'

}
# SIG # Begin signature block
# MIIfSQYJKoZIhvcNAQcCoIIfOjCCHzYCAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB
# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR
# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUywTVvxbBiP912oXRDZRXwYKJ
# or+gghlXMIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0B
# AQUFADBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYD
# VQQLExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVk
# IElEIFJvb3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzExMTEwMDAwMDAwWjBlMQsw
# CQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cu
# ZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3Qg
# Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg
# +XESpa7cJpSIqvTO9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lT
# XDGEKvYPmDI2dsze3Tyoou9q+yHyUmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5
# a3/UsDg+wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW/lmci3Zt1/GiSw0r/wty2p5g
# 0I6QNcZ4VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpyoeb6pNnVFzF1
# roV9Iq4/AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whf
# GHdPAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0G
# A1UdDgQWBBRF66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLL
# gjEtUYunpyGd823IDzANBgkqhkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3
# cmbYMuRCdWKuh+vy1dneVrOfzM4UKLkNl2BcEkxY5NM9g0lFWJc1aRqoR+pWxnmr
# EthngYTffwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38FnSbNd67IJKusm7Xi+
# fT8r87cmNW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i8b5Q
# Z7dsvfPxH2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu
# 838fYxAe+o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw
# 8jCCBP4wggPmoAMCAQICEA1CSuC+Ooj/YEAhzhQA8N0wDQYJKoZIhvcNAQELBQAw
# cjELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQ
# d3d3LmRpZ2ljZXJ0LmNvbTExMC8GA1UEAxMoRGlnaUNlcnQgU0hBMiBBc3N1cmVk
# IElEIFRpbWVzdGFtcGluZyBDQTAeFw0yMTAxMDEwMDAwMDBaFw0zMTAxMDYwMDAw
# MDBaMEgxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2VydCwgSW5jLjEgMB4G
# A1UEAxMXRGlnaUNlcnQgVGltZXN0YW1wIDIwMjEwggEiMA0GCSqGSIb3DQEBAQUA
# A4IBDwAwggEKAoIBAQDC5mGEZ8WK9Q0IpEXKY2tR1zoRQr0KdXVNlLQMULUmEP4d
# yG+RawyW5xpcSO9E5b+bYc0VkWJauP9nC5xj/TZqgfop+N0rcIXeAhjzeG28ffnH
# bQk9vmp2h+mKvfiEXR52yeTGdnY6U9HR01o2j8aj4S8bOrdh1nPsTm0zinxdRS1L
# sVDmQTo3VobckyON91Al6GTm3dOPL1e1hyDrDo4s1SPa9E14RuMDgzEpSlwMMYpK
# jIjF9zBa+RSvFV9sQ0kJ/SYjU/aNY+gaq1uxHTDCm2mCtNv8VlS8H6GHq756Wwog
# L0sJyZWnjbL61mOLTqVyHO6fegFz+BnW/g1JhL0BAgMBAAGjggG4MIIBtDAOBgNV
# HQ8BAf8EBAMCB4AwDAYDVR0TAQH/BAIwADAWBgNVHSUBAf8EDDAKBggrBgEFBQcD
# CDBBBgNVHSAEOjA4MDYGCWCGSAGG/WwHATApMCcGCCsGAQUFBwIBFhtodHRwOi8v
# d3d3LmRpZ2ljZXJ0LmNvbS9DUFMwHwYDVR0jBBgwFoAU9LbhIB3+Ka7S5GGlsqIl
# ssgXNW4wHQYDVR0OBBYEFDZEho6kurBmvrwoLR1ENt3janq8MHEGA1UdHwRqMGgw
# MqAwoC6GLGh0dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9zaGEyLWFzc3VyZWQtdHMu
# Y3JsMDKgMKAuhixodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vc2hhMi1hc3N1cmVk
# LXRzLmNybDCBhQYIKwYBBQUHAQEEeTB3MCQGCCsGAQUFBzABhhhodHRwOi8vb2Nz
# cC5kaWdpY2VydC5jb20wTwYIKwYBBQUHMAKGQ2h0dHA6Ly9jYWNlcnRzLmRpZ2lj
# ZXJ0LmNvbS9EaWdpQ2VydFNIQTJBc3N1cmVkSURUaW1lc3RhbXBpbmdDQS5jcnQw
# DQYJKoZIhvcNAQELBQADggEBAEgc3LXpmiO85xrnIA6OZ0b9QnJRdAojR6OrktIl
# xHBZvhSg5SeBpU0UFRkHefDRBMOG2Tu9/kQCZk3taaQP9rhwz2Lo9VFKeHk2eie3
# 8+dSn5On7UOee+e03UEiifuHokYDTvz0/rdkd2NfI1Jpg4L6GlPtkMyNoRdzDfTz
# ZTlwS/Oc1np72gy8PTLQG8v1Yfx1CAB2vIEO+MDhXM/EEXLnG2RJ2CKadRVC9S0y
# OIHa9GCiurRS+1zgYSQlT7LfySmoc0NR2r1j1h9bm/cuG08THfdKDXF+l7f0P4Tr
# weOjSaH6zqe/Vs+6WXZhiV9+p7SOZ3j5NpjhyyjaW4emii8wggUwMIIEGKADAgEC
# AhAECRgbX9W7ZnVTQ7VvlVAIMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYTAlVT
# MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
# b20xJDAiBgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0xMzEw
# MjIxMjAwMDBaFw0yODEwMjIxMjAwMDBaMHIxCzAJBgNVBAYTAlVTMRUwEwYDVQQK
# EwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xMTAvBgNV
# BAMTKERpZ2lDZXJ0IFNIQTIgQXNzdXJlZCBJRCBDb2RlIFNpZ25pbmcgQ0EwggEi
# MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD407Mcfw4Rr2d3B9MLMUkZz9D7
# RZmxOttE9X/lqJ3bMtdx6nadBS63j/qSQ8Cl+YnUNxnXtqrwnIal2CWsDnkoOn7p
# 0WfTxvspJ8fTeyOU5JEjlpB3gvmhhCNmElQzUHSxKCa7JGnCwlLyFGeKiUXULaGj
# 6YgsIJWuHEqHCN8M9eJNYBi+qsSyrnAxZjNxPqxwoqvOf+l8y5Kh5TsxHM/q8grk
# V7tKtel05iv+bMt+dDk2DZDv5LVOpKnqagqrhPOsZ061xPeM0SAlI+sIZD5SlsHy
# DxL0xY4PwaLoLFH3c7y9hbFig3NBggfkOItqcyDQD2RzPJ6fpjOp/RnfJZPRAgMB
# AAGjggHNMIIByTASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBhjAT
# BgNVHSUEDDAKBggrBgEFBQcDAzB5BggrBgEFBQcBAQRtMGswJAYIKwYBBQUHMAGG
# GGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBDBggrBgEFBQcwAoY3aHR0cDovL2Nh
# Y2VydHMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0QXNzdXJlZElEUm9vdENBLmNydDCB
# gQYDVR0fBHoweDA6oDigNoY0aHR0cDovL2NybDQuZGlnaWNlcnQuY29tL0RpZ2lD
# ZXJ0QXNzdXJlZElEUm9vdENBLmNybDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNl
# cnQuY29tL0RpZ2lDZXJ0QXNzdXJlZElEUm9vdENBLmNybDBPBgNVHSAESDBGMDgG
# CmCGSAGG/WwAAgQwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly93d3cuZGlnaWNlcnQu
# Y29tL0NQUzAKBghghkgBhv1sAzAdBgNVHQ4EFgQUWsS5eyoKo6XqcQPAYPkt9mV1
# DlgwHwYDVR0jBBgwFoAUReuir/SSy4IxLVGLp6chnfNtyA8wDQYJKoZIhvcNAQEL
# BQADggEBAD7sDVoks/Mi0RXILHwlKXaoHV0cLToaxO8wYdd+C2D9wz0PxK+L/e8q
# 3yBVN7Dh9tGSdQ9RtG6ljlriXiSBThCk7j9xjmMOE0ut119EefM2FAaK95xGTlz/
# kLEbBw6RFfu6r7VRwo0kriTGxycqoSkoGjpxKAI8LpGjwCUR4pwUR6F6aGivm6dc
# IFzZcbEMj7uo+MUSaJ/PQMtARKUT8OZkDCUIQjKyNookAv4vcn4c10lFluhZHen6
# dGRrsutmQ9qzsIzV6Q3d9gEgzpkxYz0IGhizgZtPxpMQBvwHgfqL2vmCSfdibqFT
# +hKUGIUukpHqaGxEMrJmoecYpJpkUe8wggUxMIIEGaADAgECAhAKoSXW1jIbfkHk
# Bdo2l8IVMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxE
# aWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAiBgNVBAMT
# G0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0xNjAxMDcxMjAwMDBaFw0z
# MTAxMDcxMjAwMDBaMHIxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJ
# bmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xMTAvBgNVBAMTKERpZ2lDZXJ0
# IFNIQTIgQXNzdXJlZCBJRCBUaW1lc3RhbXBpbmcgQ0EwggEiMA0GCSqGSIb3DQEB
# AQUAA4IBDwAwggEKAoIBAQC90DLuS82Pf92puoKZxTlUKFe2I0rEDgdFM1EQfdD5
# fU1ofue2oPSNs4jkl79jIZCYvxO8V9PD4X4I1moUADj3Lh477sym9jJZ/l9lP+Cb
# 6+NGRwYaVX4LJ37AovWg4N4iPw7/fpX786O6Ij4YrBHk8JkDbTuFfAnT7l3ImgtU
# 46gJcWvgzyIQD3XPcXJOCq3fQDpct1HhoXkUxk0kIzBdvOw8YGqsLwfM/fDqR9mI
# UF79Zm5WYScpiYRR5oLnRlD9lCosp+R1PrqYD4R/nzEU1q3V8mTLex4F0IQZchfx
# FwbvPc3WTe8GQv2iUypPhR3EHTyvz9qsEPXdrKzpVv+TAgMBAAGjggHOMIIByjAd
# BgNVHQ4EFgQU9LbhIB3+Ka7S5GGlsqIlssgXNW4wHwYDVR0jBBgwFoAUReuir/SS
# y4IxLVGLp6chnfNtyA8wEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMC
# AYYwEwYDVR0lBAwwCgYIKwYBBQUHAwgweQYIKwYBBQUHAQEEbTBrMCQGCCsGAQUF
# BzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYBBQUHMAKGN2h0dHA6
# Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5j
# cnQwgYEGA1UdHwR6MHgwOqA4oDaGNGh0dHA6Ly9jcmw0LmRpZ2ljZXJ0LmNvbS9E
# aWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcmwwOqA4oDaGNGh0dHA6Ly9jcmwzLmRp
# Z2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcmwwUAYDVR0gBEkw
# RzA4BgpghkgBhv1sAAIEMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vd3d3LmRpZ2lj
# ZXJ0LmNvbS9DUFMwCwYJYIZIAYb9bAcBMA0GCSqGSIb3DQEBCwUAA4IBAQBxlRLp
# UYdWac3v3dp8qmN6s3jPBjdAhO9LhL/KzwMC/cWnww4gQiyvd/MrHwwhWiq3BTQd
# aq6Z+CeiZr8JqmDfdqQ6kw/4stHYfBli6F6CJR7Euhx7LCHi1lssFDVDBGiy23UC
# 4HLHmNY8ZOUfSBAYX4k4YU1iRiSHY4yRUiyvKYnleB/WCxSlgNcSR3CzddWThZN+
# tpJn+1Nhiaj1a5bA9FhpDXzIAbG5KHW3mWOFIoxhynmUfln8jA/jb7UBJrZspe6H
# USHkWGCbugwtK22ixH67xCUrRwIIfEmuE7bhfEJCKMYYVs9BNLZmXbZ0e/VWMyIv
# IjayS6JKldj1po5SMIIGLTCCBRWgAwIBAgIQB07ZQzjvBT9l1PP8k4cpxzANBgkq
# hkiG9w0BAQsFADByMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5j
# MRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMTEwLwYDVQQDEyhEaWdpQ2VydCBT
# SEEyIEFzc3VyZWQgSUQgQ29kZSBTaWduaW5nIENBMB4XDTIxMDIyNTAwMDAwMFoX
# DTIzMDMwMTIzNTk1OVowazELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3Ju
# aWExDzANBgNVBAcTBklydmluZTEaMBgGA1UEChMRQ3Jvd2RTdHJpa2UsIEluYy4x
# GjAYBgNVBAMTEUNyb3dkU3RyaWtlLCBJbmMuMIICIjANBgkqhkiG9w0BAQEFAAOC
# Ag8AMIICCgKCAgEAxYKS5zNRwVo0z463JPBJUDlnsH62lJNHdnz8Rgm9cy/FkwQ+
# wWMnETpd0QI+TBGoFKulBLufzM3ULMefgNHnpLwagr1VU0VVLp9QyxMzemjeCgPL
# BN29wvfBrl+y8tZXateuXjzn6RKOaiERk7TEUHrsv9TmumPq2fOBTWHtrjkr6Taz
# Zaz6yqw6eNSaqBQZeZuS2QD1NqwIWa0Kvt++fdA1THg/APoAVn2aNRj8GBaC6hPu
# pljmQyR6J+ITraj/jDuxv8+pf7JogI8h36ax4dxv0osOL/rMWtatXVw1Kpxs63YP
# +gl4uScQR3qUPrsEXv60PBIT1gwYvCR7gVDbmcqUADKvTyaReSgi7SudufTGvN+5
# FHxiYEt9VzP1AaTXIeK9yFDim6rjlUaJp5T58antlYUUHH+yV/GsUFoSrZUQC1JX
# vFPsRKjbw0mfLDaXKutS9WQkmdPFFRqtnc5md7hyP88BtGmRE6q1dsX03rlDDbDN
# x726f7L304IgeytQ40zLItv12Je1Ms0HI/ZpDldHrm39d709MxD8AHj4jQU17qXG
# xzdl6WFPA4JavSjZno3nQrvsVBLx3muK8mYZBEc9m6Ijqmjj3g+OiwnCBrr2Hc6h
# egkynsmv0nqvXV4QQFHfco4ErWe1N9Dc6mBmTTa+utoXWFihwid7NlQxlz0CAwEA
# AaOCAcQwggHAMB8GA1UdIwQYMBaAFFrEuXsqCqOl6nEDwGD5LfZldQ5YMB0GA1Ud
# DgQWBBR7IqV2hZmcQICX8q8VFkbjjGLN1TAOBgNVHQ8BAf8EBAMCB4AwEwYDVR0l
# BAwwCgYIKwYBBQUHAwMwdwYDVR0fBHAwbjA1oDOgMYYvaHR0cDovL2NybDMuZGln
# aWNlcnQuY29tL3NoYTItYXNzdXJlZC1jcy1nMS5jcmwwNaAzoDGGL2h0dHA6Ly9j
# cmw0LmRpZ2ljZXJ0LmNvbS9zaGEyLWFzc3VyZWQtY3MtZzEuY3JsMEsGA1UdIARE
# MEIwNgYJYIZIAYb9bAMBMCkwJwYIKwYBBQUHAgEWG2h0dHA6Ly93d3cuZGlnaWNl
# cnQuY29tL0NQUzAIBgZngQwBBAEwgYQGCCsGAQUFBwEBBHgwdjAkBggrBgEFBQcw
# AYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29tME4GCCsGAQUFBzAChkJodHRwOi8v
# Y2FjZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNlcnRTSEEyQXNzdXJlZElEQ29kZVNp
# Z25pbmdDQS5jcnQwDAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQsFAAOCAQEAmmJS
# ql2OzEHIMvpn0RblM1x4LeSB+BphU/DF7ELh8LzpSydbQFEPVFafragtB1CPgSyo
# znc28dz8hOfLjA+TWD6n+LJZJ6XP95BVt+YveSGASQVdkpd/5NFS4eA+wx4dGBjZ
# mZK5IEimOGQs8LQt4oXEebjjKM/Y679Fa7rADynLNTivH/EcvEitHlUsHZCwfQuI
# sOCxUXO9mWiuIW9gFoTOzC/8Qg0fKtycETMLFT7kIpfXgeX7sK7XZkNeVeo8E0Uy
# oCaof1KDjWE1myktkrP01MEY8AVnUD0xNhTGpv+k2NNXYUMMMjftgBoMT9ANhxzH
# CGm05kb2c0Th1m2QpjGCBVwwggVYAgEBMIGGMHIxCzAJBgNVBAYTAlVTMRUwEwYD
# VQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xMTAv
# BgNVBAMTKERpZ2lDZXJ0IFNIQTIgQXNzdXJlZCBJRCBDb2RlIFNpZ25pbmcgQ0EC
# EAdO2UM47wU/ZdTz/JOHKccwCQYFKw4DAhoFAKB4MBgGCisGAQQBgjcCAQwxCjAI
# oAKAAKECgAAwGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIB
# CzEOMAwGCisGAQQBgjcCARUwIwYJKoZIhvcNAQkEMRYEFBnsauUsjvhD3SS2V5L8
# scXFNCNkMA0GCSqGSIb3DQEBAQUABIICACLdDN/rxZS1upPc0onx03VkZv69q5Cn
# P3wosD/i+Id7cAMOZ+q162FkZMcSpTRpuMX9igzSy6IQqa/nJ5zVnL2nEDa0BKp7
# fgcZh5rNANnEUKydWpqfqBai72AH2RaZ8WAzVVw5CEjGfk9yThQ64r9d2nTwFaIw
# d3AtD/4beqH6hxmCledpUtmBft79670SujFuBk487+wcK1wyW6aTv10Fql4YQlnH
# 1WUbYIMG3LM+ofTTgI01tUyUzLOXQWg9eK+eTKe44VY9bEgMxA7/C8PlwENL7aW/
# Lx+LhjTH9N6kZYYrY1xReftz3D7XQEdJQ6xupeM7UP8ICnjabOQlF30rv4bjax0V
# gK7E2Pgd7gDojFDizfAVTEzsSzEGX/86RxLJGp6sIKz7mEqM7CkShxraX64onbvD
# 4sSQjcT1co7nlE+zuO2XP8GSmCE6dly1XY7MbUdQ36AzOoUxB/mcEF9GYknh5uT3
# wWrDti59BqcrVBmGtITAP0f3MXYhlAkr0uRJxA7PA6DO3+3c5FosB9kNGuX3PzOw
# oybFxxlNc42vIGvn0juz24ZqD04L7SeHrPeW0O3CEcSexqVeCJ/mS8vjmaT/1nky
# FV5OOekx6iYZvEVb1EBU110WFXrRah6/B6Pu+o/DGhzeHReqprKP+r0XSKC/10b6
# hwFytMLQXFOkoYICMDCCAiwGCSqGSIb3DQEJBjGCAh0wggIZAgEBMIGGMHIxCzAJ
# BgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5k
# aWdpY2VydC5jb20xMTAvBgNVBAMTKERpZ2lDZXJ0IFNIQTIgQXNzdXJlZCBJRCBU
# aW1lc3RhbXBpbmcgQ0ECEA1CSuC+Ooj/YEAhzhQA8N0wDQYJYIZIAWUDBAIBBQCg
# aTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0yMTA0
# MTUyMzM2NTFaMC8GCSqGSIb3DQEJBDEiBCAaKWzIjMNAra5SUOPegFktFxLmg6Sg
# kdRICpj8Ro0LJzANBgkqhkiG9w0BAQEFAASCAQAYrcIqodmgUXnzDKX8emw0FIr7
# uNaLSDsaXb/SNUD8qjyO8TEqX27J8hwn07bY6QnUDpMvQbONW+OKkepplQSQH2ML
# cgDPHrj8SEd2BwhZGWpZz2wjdcgUU/zAcsuEpvjzMI6onIOXr+tI02VRs/LmFDzW
# tob8tUYt20tNfIa+CUZYG/ntkMFGcn8Mi2N0a+iVF7GYJqXjYI5EGNHnSMAkToe6
# Iwms3BZWC1PPNbDoUXbDdVbyczuEf6kz5+9nFZ7nWT9Ls3vOpYeP+vQkaQy6HvIV
# W7tJHuUWtJrlSJD1AhRNOy/C4Yx39qMeT206csw/MvDcUA/r0A3ka0LNE1Sv
# SIG # End signature block