LXCOPSTool.psd1

# ------------------------------------------------------------------
# Lenovo Copyright
#
# (C) Copyright Lenovo 2021 - present.
#
# LIMITED AND RESTRICTED RIGHTS NOTICE:
# If data or software is delivered pursuant a General Services
# Administration (GSA) contract, use, reproduction, or disclosure
# is subject to restrictions set forth in Contract No. GS-35F-05925.
# ------------------------------------------------------------------

#
# Module manifest for module 'LXCOPSTool'
#
# Generated by: Lenovo
#

@{

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

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

# ID used to uniquely identify this module
GUID = '630d5fd1-87ec-4b8b-a356-737530c5db0d'

# Author of this module
Author = 'Lenovo Corporation'

# Company or vendor of this module
CompanyName = 'Lenovo Corporation'

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

# Description of the functionality provided by this module
Description = 'Lenovo XClarity Orchestrator PowerShell tool
 
The LXCOPSTool cmdlets use REST APIs that are provided for Lenovo XClarity Orchestrator to enable you to automate functions such as:
- Logging in to Lenovo XClarity Orchestrator;
 
Lenovo XClarity Orchestrator is a centralized, resource-management solution that is aimed at reducing complexity, speeding response, and enhancing the availability of Lenovo server systems and solutions. It runs as a virtual appliance that you can use to manage Flex System chassis and System x rack servers in a secure environment.
Get more detail information from:
https://pubs.lenovo.com/lxco/
 
Lenovo XClarity Orchestrator REST APIs used in this module:
https://pubs.lenovo.com/lxco_scripting/rest-apis
'

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

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

# Cmdlets to export from this module.
CmdletsToExport = @(
'Add-LXCOPSLogHeader', 'Add-LXCOManager',
'Connect-LXCO',
'Get-LXCOManagers', 'Get-LXCODevices','Get-LXCOFirmwareCatalog', 'Get-LXCOUpdatePolicies', 'Get-LXCOAlerts','Get-LXCOEvents',
'Get-LXCOJobs', 'Get-LXCODeviceInventory', 'Get-LXCOServiceData', 'Get-LXCODeviceServiceData', 'Get-LXCODevicesConfiguration',
'Get-LXCOResourcesCompliance','Get-LXCOServerConfigPattern', 'Get-LXCODiscoveredDevices',
'Disconnect-LXCO',
'Find-LXCODevices',
'Import-LXCOUpdatePolicies','Import-LXCOFirmwarePackage','Import-LXCOServerConfigPattern',
'Invoke-LXCORestMethod','Invoke-LXCOServerPowerAction',
'Install-LXCOResourceManagerUpdates','Install-LXCODeviceFirmwareUpdates',
'Join-LXCOUpdatePolicy','Join-LXCOServerConfigPattern',
'New-LXCOUpdatePolicy','New-LXCOServerConfigPattern',
'Register-LXCODevices', 'Remove-LXCOManager', 'Remove-LXCODevices', 'Remove-LXCOJob',
'Set-LXCOPSLogLevel',
'Split-LXCOUpdatePolicy','Split-LXCOServerConfigPattern',
'Update-LXCOFirmwareCatalog',
'Use-LXCOServerConfigPattern'
)

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

# Aliases to export from this module
AliasesToExport = @('Add-LXCOResourceManager')

# 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 = @('LXCO', 'LXCOPSTool', 'XClarity')

        # A URL to the license for this module.
        LicenseUri = 'https://datacentersupport.lenovo.com/docs/UM920681'

        # ReleaseNotes of this module
        ReleaseNotes = 'Released v2.1.0 (July 2024)
 
This LXCOPSTool version supports the following Lenovo XClarity Orchestrator versions:
    - 2.1.0
 
New features and bug fixes:
  - New cmdlets added in this release:
      * Find-LXCODevices: discover new devices.
      * Get-LXCODiscoveredDevices: retrieve discovered devices.
      * Register-LXCODevices: manage discovered devices or manage devices by their IPs/FQDNs.
      * Remove-LXCODevices: unmanage devices.
      * Remove-LXCOJob: remove an existing job or cancel a scheduled job.
 
  - Cmdlets updated in this release:
      * Import-LXCOFirmwarePackage: add -PayloadFiles parameter
        to support single update-package files, required by ThinkSystem V3 servers.
      * Get-LXCOEvents: add new resource type: Management Hub 2.0
      * Get-LXCOAlerts: add new resource type: Management Hub 2.0
      * Install-LXCODeviceFirmwareUpdates add support for scheduling firmware updates jobs.
      * Get-LXCOJobs: add support for retrieving scheduled jobs.
  - Fixes:
      * add logging support on linux and macOS hosts.
'


    } # End of PSData hashtable

} # End of PrivateData hashtable

# HelpInfo URI of this module
HelpInfoURI = 'https://pubs.lenovo.com/lxco_scripting/pshell-toolkit-overview'

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

}

# SIG # Begin signature block
# MIIoMwYJKoZIhvcNAQcCoIIoJDCCKCACAQExDzANBglghkgBZQMEAgIFADCBiQYK
# KwYBBAGCNwIBBKB7MHkwNAYKKwYBBAGCNwIBHjAmAgMBAAAEEB/MO2BZSwhOtyTS
# xil+81ECAQACAQACAQACAQACAQAwQTANBglghkgBZQMEAgIFAAQwdy4Aw4cveUOt
# lM2HMPo8RYODUpsTo25JHwn0EI+LFt4MimLSDspZ+0z5V42KVgSToIINjjCCBrAw
# ggSYoAMCAQICEAitQLJg0pxMn17Nqb2TrtkwDQYJKoZIhvcNAQEMBQAwYjELMAkG
# A1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3LmRp
# Z2ljZXJ0LmNvbTEhMB8GA1UEAxMYRGlnaUNlcnQgVHJ1c3RlZCBSb290IEc0MB4X
# DTIxMDQyOTAwMDAwMFoXDTM2MDQyODIzNTk1OVowaTELMAkGA1UEBhMCVVMxFzAV
# BgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMUEwPwYDVQQDEzhEaWdpQ2VydCBUcnVzdGVk
# IEc0IENvZGUgU2lnbmluZyBSU0E0MDk2IFNIQTM4NCAyMDIxIENBMTCCAiIwDQYJ
# KoZIhvcNAQEBBQADggIPADCCAgoCggIBANW0L0LQKK14t13VOVkbsYhC9TOM6z2B
# l3DFu8SFJjCfpI5o2Fz16zQkB+FLT9N4Q/QX1x7a+dLVZxpSTw6hV/yImcGRzIED
# Pk1wJGSzjeIIfTR9TIBXEmtDmpnyxTsf8u/LR1oTpkyzASAl8xDTi7L7CPCK4J0J
# wGWn+piASTWHPVEZ6JAheEUuoZ8s4RjCGszF7pNJcEIyj/vG6hzzZWiRok1MghFI
# UmjeEL0UV13oGBNlxX+yT4UsSKRWhDXW+S6cqgAV0Tf+GgaUwnzI6hsy5srC9Kej
# Aw50pa85tqtgEuPo1rn3MeHcreQYoNjBI0dHs6EPbqOrbZgGgxu3amct0r1EGpIQ
# gY+wOwnXx5syWsL/amBUi0nBk+3htFzgb+sm+YzVsvk4EObqzpH1vtP7b5NhNFy8
# k0UogzYqZihfsHPOiyYlBrKD1Fz2FRlM7WLgXjPy6OjsCqewAyuRsjZ5vvetCB51
# pmXMu+NIUPN3kRr+21CiRshhWJj1fAIWPIMorTmG7NS3DVPQ+EfmdTCN7DCTdhSm
# W0tddGFNPxKRdt6/WMtyEClB8NXFbSZ2aBFBE1ia3CYrAfSJTVnbeM+BSj5AR1/J
# gVBzhRAjIVlgimRUwcwhGug4GXxmHM14OEUwmU//Y09Mu6oNCFNBfFg9R7P6tuyM
# MgkCzGw8DFYRAgMBAAGjggFZMIIBVTASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1Ud
# DgQWBBRoN+Drtjv4XxGG+/5hewiIZfROQjAfBgNVHSMEGDAWgBTs1+OC0nFdZEzf
# Lmc/57qYrhwPTzAOBgNVHQ8BAf8EBAMCAYYwEwYDVR0lBAwwCgYIKwYBBQUHAwMw
# dwYIKwYBBQUHAQEEazBpMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2Vy
# dC5jb20wQQYIKwYBBQUHMAKGNWh0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9E
# aWdpQ2VydFRydXN0ZWRSb290RzQuY3J0MEMGA1UdHwQ8MDowOKA2oDSGMmh0dHA6
# Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFRydXN0ZWRSb290RzQuY3JsMBwG
# A1UdIAQVMBMwBwYFZ4EMAQMwCAYGZ4EMAQQBMA0GCSqGSIb3DQEBDAUAA4ICAQA6
# I0Q9jQh27o+8OpnTVuACGqX4SDTzLLbmdGb3lHKxAMqvbDAnExKekESfS/2eo3wm
# 1Te8Ol1IbZXVP0n0J7sWgUVQ/Zy9toXgdn43ccsi91qqkM/1k2rj6yDR1VB5iJqK
# isG2vaFIGH7c2IAaERkYzWGZgVb2yeN258TkG19D+D6U/3Y5PZ7Umc9K3SjrXyah
# lVhI1Rr+1yc//ZDRdobdHLBgXPMNqO7giaG9OeE4Ttpuuzad++UhU1rDyulq8aI+
# 20O4M8hPOBSSmfXdzlRt2V0CFB9AM3wD4pWywiF1c1LLRtjENByipUuNzW92NyyF
# PxrOJukYvpAHsEN/lYgggnDwzMrv/Sk1XB+JOFX3N4qLCaHLC+kxGv8uGVw5ceG+
# nKcKBtYmZ7eS5k5f3nqsSc8upHSSrds8pJyGH+PBVhsrI/+PteqIe3Br5qC6/To/
# RabE6BaRUotBwEiES5ZNq0RA443wFSjO7fEYVgcqLxDEDAhkPDOPriiMPMuPiAsN
# vzv0zh57ju+168u38HcT5ucoP6wSrqUvImxB+YJcFWbMbA7KxYbD9iYzDAdLoNMH
# AmpqQDBISzSoUSC7rRuFCOJZDW3KBVAr6kocnqX9oKcfBnTn8tZSkP2vhUgh+Vc7
# tJwD7YZF9LRhbr9o4iZghurIr6n+lB3nYxs6hlZ4TjCCBtYwggS+oAMCAQICEAWP
# M5NSBF10y1DTMJwYKG8wDQYJKoZIhvcNAQELBQAwaTELMAkGA1UEBhMCVVMxFzAV
# BgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMUEwPwYDVQQDEzhEaWdpQ2VydCBUcnVzdGVk
# IEc0IENvZGUgU2lnbmluZyBSU0E0MDk2IFNIQTM4NCAyMDIxIENBMTAeFw0yMzA4
# MjgwMDAwMDBaFw0yNDA4MzAyMzU5NTlaMF4xCzAJBgNVBAYTAlVTMRcwFQYDVQQI
# Ew5Ob3J0aCBDYXJvbGluYTEUMBIGA1UEBxMLTW9ycmlzdmlsbGUxDzANBgNVBAoT
# Bkxlbm92bzEPMA0GA1UEAxMGTGVub3ZvMIIBojANBgkqhkiG9w0BAQEFAAOCAY8A
# MIIBigKCAYEAyoU1yIzHxl8PuKrnxATJNM+4/fqPe4TXpMy0k4v/OXl+psV9vEx3
# M1ZbMHVyaQJTdupKYePY45GBjik4dAlrzkfRFrnxi+3AojdyXoY+M/FhNdZsoVf8
# DXInwsiTkcTaH0GhxnC74u3ptoBmHV/OPR86bQ/iaiHIDwG9Yrj4KC7kg+2uYFj8
# 9hrdqdS+BjmhHY8pMhE5MF5Iz/+MqT0a+F2LZw0qbagVoiPuVpqMmZz/q2A5PMLl
# Somjv7PZT4j6tm6kEBM+C27sU04fxaYwFh2nUxzovKFx/BH2EIoSFOv0DJl/DOit
# qKqQMXbCyoAvwtYUhnHjeHB346Dk90B5BzWJ38bSEynNhKyF/41IIprOBYwT3sKe
# sLVteam2AKq6CthjcB1y8ioQ017EWYCQu6DF5iWwIxOdTact2bBFFQXJ4TYR+L46
# 9w49+ShXD+pF2OX6bLS4Z0Eq8hsz0Wt70x2edcI4AiRa6MdJj1+wnR9nI/wG7G04
# p6ZgjJG4H727AgMBAAGjggIDMIIB/zAfBgNVHSMEGDAWgBRoN+Drtjv4XxGG+/5h
# ewiIZfROQjAdBgNVHQ4EFgQUwI6EAV70c4LSugLN+tMScnNGcuEwDgYDVR0PAQH/
# BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMDMIG1BgNVHR8Ega0wgaowU6BRoE+G
# TWh0dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFRydXN0ZWRHNENvZGVT
# aWduaW5nUlNBNDA5NlNIQTM4NDIwMjFDQTEuY3JsMFOgUaBPhk1odHRwOi8vY3Js
# NC5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkRzRDb2RlU2lnbmluZ1JTQTQw
# OTZTSEEzODQyMDIxQ0ExLmNybDA+BgNVHSAENzA1MDMGBmeBDAEEATApMCcGCCsG
# AQUFBwIBFhtodHRwOi8vd3d3LmRpZ2ljZXJ0LmNvbS9DUFMwgZQGCCsGAQUFBwEB
# BIGHMIGEMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wXAYI
# KwYBBQUHMAKGUGh0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFRy
# dXN0ZWRHNENvZGVTaWduaW5nUlNBNDA5NlNIQTM4NDIwMjFDQTEuY3J0MAkGA1Ud
# EwQCMAAwDQYJKoZIhvcNAQELBQADggIBAMHLDBc56PqmnnregGgpoNRz5N+HrEHH
# 8ExcU+b+r9k//bM3I8Xz9wfhJCwjEZwCs9uFd4TeQo7KRznItWws6NeuZd3hDraT
# YhXFt7U1WcvysxsO6CodTTgJROXX+GELcpKzjDC0II/1jgtgMVOBTMmUoq9qwlHt
# dgNb2NRqisK3Vi5ALodqWjZaFMqEkjIJrM87Agw7dLzySyT9L+QnF0EoVW3mj8Fd
# FzGrUAqGQrijawNI1NjuZQ3WqL3C9DwW7JcDz9BJvbB3413NrSY28r+rqsVQ5W9J
# IRfZDW+GzEsyPAfXAz648gqr/UKXOPifMRq18K0TJ+Nv9LfmYsXDxxOR0T/Uh8PT
# EfXvFPdq57LfZJJuhm5VeWVe/9Zl0qAz7Ka4Y9AKNUlnG4ICxbUdCsav/j3EFEAT
# U4vw4hKL9M7FD8U7tgFG1LaeP6Cj+ouA9oTFliV0OqPbIqmLlHUN8Gf+tiwctwUH
# aFF79GKvA+GBvDbbQC0Xp4h06jJV1VnuWw/Q1ow0x5xGwRFXMvUujgvvUXWFVHyr
# jFU83Dq5PONVMQKINkzrEC7dFKfKaTrZhfXP8S2DV5C5h1V1fuy4nACm5zWNApEP
# DfklFi2+qKh3j2O2FdFuTbXUSqESOOq4NrCJ8a2k09CPKGFX1W5K/DR0Etjjelkg
# 6OZotNbNibWaMYIZ6jCCGeYCAQEwfTBpMQswCQYDVQQGEwJVUzEXMBUGA1UEChMO
# RGlnaUNlcnQsIEluYy4xQTA/BgNVBAMTOERpZ2lDZXJ0IFRydXN0ZWQgRzQgQ29k
# ZSBTaWduaW5nIFJTQTQwOTYgU0hBMzg0IDIwMjEgQ0ExAhAFjzOTUgRddMtQ0zCc
# GChvMA0GCWCGSAFlAwQCAgUAoIGMMBAGCisGAQQBgjcCAQwxAjAAMBkGCSqGSIb3
# DQEJAzEMBgorBgEEAYI3AgEEMBwGCisGAQQBgjcCAQsxDjAMBgorBgEEAYI3AgEV
# MD8GCSqGSIb3DQEJBDEyBDBgEHBIbwboKKpZ+12/R0tJ5i8RJn9gfFGCUGqG3rFg
# bI4cx6Ce2QL17cC2joOmkSgwDQYJKoZIhvcNAQEBBQAEggGADBcMSJIfpzYfwM0r
# BkRQTD+2HCeit/+JTVLKuub/3R50wALeNtinSf3FKJNxiuJdGDf2gv6w2HAPSJWm
# oawczvyOwwaNSPQJq3hXm5NVFfuris9z38lUVhlPp9t9ZEHKdjBaV74KWqsgbomE
# kcO+Ofr8XtSsxnBPCRzt84CnuQs4wjvm6qbafolJGihN0eHvtmR+U42QPgOTYbd5
# LdgA+YcLzTuE7Gt1aLzyRIVSqHROvpBkn3j4UdItGEPsnQfu0a4glArt9Px3V7AX
# a4JjLly+i+5d8KUFTGHJXq85JhDoxsxopQypSH7/nXnp30oX3Kppj/T1Fc5stf6C
# ssv5JGEHHq7Se/BMpZtUYVn3Gsx+z1opxsmnamUPpk4ieSH42bfPaYyZeLdPC9kG
# Du2MilCkZv/KVmAoGy/DDZ491QW8WWEggW6sbUlKZhVOrxZn9+DyjvqljGN3nti/
# B3T2gHmqwai4LZeIL5twCEnQt3mYqhAj69xg1+3M2dlBsrBZoYIXLzCCFysGCisG
# AQQBgjcDAwExghcbMIIXFwYJKoZIhvcNAQcCoIIXCDCCFwQCAQMxDzANBglghkgB
# ZQMEAgEFADBnBgsqhkiG9w0BCRABBKBYBFYwVAIBAQYJYIZIAYb9bAcBMCEwCQYF
# Kw4DAhoFAAQUDy81zofgJu7BGwDsBqoHx69wG2cCEFey43LgVkuMCMjIpvjno2oY
# DzIwMjQwNzE1MTIzNzEyWqCCEwkwggbCMIIEqqADAgECAhAFRK/zlJ0IOaa/2z9f
# 5WEWMA0GCSqGSIb3DQEBCwUAMGMxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdp
# Q2VydCwgSW5jLjE7MDkGA1UEAxMyRGlnaUNlcnQgVHJ1c3RlZCBHNCBSU0E0MDk2
# IFNIQTI1NiBUaW1lU3RhbXBpbmcgQ0EwHhcNMjMwNzE0MDAwMDAwWhcNMzQxMDEz
# MjM1OTU5WjBIMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4x
# IDAeBgNVBAMTF0RpZ2lDZXJ0IFRpbWVzdGFtcCAyMDIzMIICIjANBgkqhkiG9w0B
# AQEFAAOCAg8AMIICCgKCAgEAo1NFhx2DjlusPlSzI+DPn9fl0uddoQ4J3C9Io5d6
# OyqcZ9xiFVjBqZMRp82qsmrdECmKHmJjadNYnDVxvzqX65RQjxwg6seaOy+WZuNp
# 52n+W8PWKyAcwZeUtKVQgfLPywemMGjKg0La/H8JJJSkghraarrYO8pd3hkYhftF
# 6g1hbJ3+cV7EBpo88MUueQ8bZlLjyNY+X9pD04T10Mf2SC1eRXWWdf7dEKEbg8G4
# 5lKVtUfXeCk5a+B4WZfjRCtK1ZXO7wgX6oJkTf8j48qG7rSkIWRw69XloNpjsy7p
# Be6q9iT1HbybHLK3X9/w7nZ9MZllR1WdSiQvrCuXvp/k/XtzPjLuUjT71Lvr1KAs
# NJvj3m5kGQc3AZEPHLVRzapMZoOIaGK7vEEbeBlt5NkP4FhB+9ixLOFRr7StFQYU
# 6mIIE9NpHnxkTZ0P387RXoyqq1AVybPKvNfEO2hEo6U7Qv1zfe7dCv95NBB+plwK
# WEwAPoVpdceDZNZ1zY8SdlalJPrXxGshuugfNJgvOuprAbD3+yqG7HtSOKmYCaFx
# smxxrz64b5bV4RAT/mFHCoz+8LbH1cfebCTwv0KCyqBxPZySkwS0aXAnDU+3tTbR
# yV8IpHCj7ArxES5k4MsiK8rxKBMhSVF+BmbTO77665E42FEHypS34lCh8zrTioPL
# QHsCAwEAAaOCAYswggGHMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMBYG
# A1UdJQEB/wQMMAoGCCsGAQUFBwMIMCAGA1UdIAQZMBcwCAYGZ4EMAQQCMAsGCWCG
# SAGG/WwHATAfBgNVHSMEGDAWgBS6FtltTYUvcyl2mi91jGogj57IbzAdBgNVHQ4E
# FgQUpbbvE+fvzdBkodVWqWUxo97V40kwWgYDVR0fBFMwUTBPoE2gS4ZJaHR0cDov
# L2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0VHJ1c3RlZEc0UlNBNDA5NlNIQTI1
# NlRpbWVTdGFtcGluZ0NBLmNybDCBkAYIKwYBBQUHAQEEgYMwgYAwJAYIKwYBBQUH
# MAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBYBggrBgEFBQcwAoZMaHR0cDov
# L2NhY2VydHMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0VHJ1c3RlZEc0UlNBNDA5NlNI
# QTI1NlRpbWVTdGFtcGluZ0NBLmNydDANBgkqhkiG9w0BAQsFAAOCAgEAgRrW3qCp
# tZgXvHCNT4o8aJzYJf/LLOTN6l0ikuyMIgKpuM+AqNnn48XtJoKKcS8Y3U623mzX
# 4WCcK+3tPUiOuGu6fF29wmE3aEl3o+uQqhLXJ4Xzjh6S2sJAOJ9dyKAuJXglnSoF
# eoQpmLZXeY/bJlYrsPOnvTcM2Jh2T1a5UsK2nTipgedtQVyMadG5K8TGe8+c+nji
# kxp2oml101DkRBK+IA2eqUTQ+OVJdwhaIcW0z5iVGlS6ubzBaRm6zxbygzc0brBB
# Jt3eWpdPM43UjXd9dUWhpVgmagNF3tlQtVCMr1a9TMXhRsUo063nQwBw3syYnhmJ
# A+rUkTfvTVLzyWAhxFZH7doRS4wyw4jmWOK22z75X7BC1o/jF5HRqsBV44a/rCcs
# QdCaM0qoNtS5cpZ+l3k4SF/Kwtw9Mt911jZnWon49qfH5U81PAC9vpwqbHkB3NpE
# 5jreODsHXjlY9HxzMVWggBHLFAx+rrz+pOt5Zapo1iLKO+uagjVXKBbLafIymrLS
# 2Dq4sUaGa7oX/cR3bBVsrquvczroSUa31X/MtjjA2Owc9bahuEMs305MfR5ocMB3
# CtQC4Fxguyj/OOVSWtasFyIjTvTs0xf7UGv/B3cfcZdEQcm4RtNsMnxYL2dHZeUb
# c7aZ+WssBkbvQR7w8F/g29mtkIBEr4AQQYowggauMIIElqADAgECAhAHNje3JFR8
# 2Ees/ShmKl5bMA0GCSqGSIb3DQEBCwUAMGIxCzAJBgNVBAYTAlVTMRUwEwYDVQQK
# EwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xITAfBgNV
# BAMTGERpZ2lDZXJ0IFRydXN0ZWQgUm9vdCBHNDAeFw0yMjAzMjMwMDAwMDBaFw0z
# NzAzMjIyMzU5NTlaMGMxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2VydCwg
# SW5jLjE7MDkGA1UEAxMyRGlnaUNlcnQgVHJ1c3RlZCBHNCBSU0E0MDk2IFNIQTI1
# NiBUaW1lU3RhbXBpbmcgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC
# AQDGhjUGSbPBPXJJUVXHJQPE8pE3qZdRodbSg9GeTKJtoLDMg/la9hGhRBVCX6SI
# 82j6ffOciQt/nR+eDzMfUBMLJnOWbfhXqAJ9/UO0hNoR8XOxs+4rgISKIhjf69o9
# xBd/qxkrPkLcZ47qUT3w1lbU5ygt69OxtXXnHwZljZQp09nsad/ZkIdGAHvbREGJ
# 3HxqV3rwN3mfXazL6IRktFLydkf3YYMZ3V+0VAshaG43IbtArF+y3kp9zvU5Emfv
# DqVjbOSmxR3NNg1c1eYbqMFkdECnwHLFuk4fsbVYTXn+149zk6wsOeKlSNbwsDET
# qVcplicu9Yemj052FVUmcJgmf6AaRyBD40NjgHt1biclkJg6OBGz9vae5jtb7IHe
# IhTZgirHkr+g3uM+onP65x9abJTyUpURK1h0QCirc0PO30qhHGs4xSnzyqqWc0Jo
# n7ZGs506o9UD4L/wojzKQtwYSH8UNM/STKvvmz3+DrhkKvp1KCRB7UK/BZxmSVJQ
# 9FHzNklNiyDSLFc1eSuo80VgvCONWPfcYd6T/jnA+bIwpUzX6ZhKWD7TA4j+s4/T
# Xkt2ElGTyYwMO1uKIqjBJgj5FBASA31fI7tk42PgpuE+9sJ0sj8eCXbsq11GdeJg
# o1gJASgADoRU7s7pXcheMBK9Rp6103a50g5rmQzSM7TNsQIDAQABo4IBXTCCAVkw
# EgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUuhbZbU2FL3MpdpovdYxqII+e
# yG8wHwYDVR0jBBgwFoAU7NfjgtJxXWRM3y5nP+e6mK4cD08wDgYDVR0PAQH/BAQD
# AgGGMBMGA1UdJQQMMAoGCCsGAQUFBwMIMHcGCCsGAQUFBwEBBGswaTAkBggrBgEF
# BQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29tMEEGCCsGAQUFBzAChjVodHRw
# Oi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkUm9vdEc0LmNy
# dDBDBgNVHR8EPDA6MDigNqA0hjJodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGln
# aUNlcnRUcnVzdGVkUm9vdEc0LmNybDAgBgNVHSAEGTAXMAgGBmeBDAEEAjALBglg
# hkgBhv1sBwEwDQYJKoZIhvcNAQELBQADggIBAH1ZjsCTtm+YqUQiAX5m1tghQuGw
# GC4QTRPPMFPOvxj7x1Bd4ksp+3CKDaopafxpwc8dB+k+YMjYC+VcW9dth/qEICU0
# MWfNthKWb8RQTGIdDAiCqBa9qVbPFXONASIlzpVpP0d3+3J0FNf/q0+KLHqrhc1D
# X+1gtqpPkWaeLJ7giqzl/Yy8ZCaHbJK9nXzQcAp876i8dU+6WvepELJd6f8oVInw
# 1YpxdmXazPByoyP6wCeCRK6ZJxurJB4mwbfeKuv2nrF5mYGjVoarCkXJ38SNoOeY
# +/umnXKvxMfBwWpx2cYTgAnEtp/Nh4cku0+jSbl3ZpHxcpzpSwJSpzd+k1OsOx0I
# SQ+UzTl63f8lY5knLD0/a6fxZsNBzU+2QJshIUDQtxMkzdwdeDrknq3lNHGS1yZr
# 5Dhzq6YBT70/O3itTK37xJV77QpfMzmHQXh6OOmc4d0j/R0o08f56PGYX/sr2H7y
# Rp11LB4nLCbbbxV7HhmLNriT1ObyF5lZynDwN7+YAN8gFk8n+2BnFqFmut1VwDop
# hrCYoCvtlUG3OtUVmDG0YgkPCr2B2RP+v6TR81fZvAT6gt4y3wSJ8ADNXcL50CN/
# AAvkdgIm2fBldkKmKYcJRyvmfxqkhQ/8mJb2VVQrH4D6wPIOK+XW+6kvRBVK5xMO
# Hds3OBqhK/bt1nz8MIIFjTCCBHWgAwIBAgIQDpsYjvnQLefv21DiCEAYWjANBgkq
# hkiG9w0BAQwFADBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5j
# MRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBB
# c3N1cmVkIElEIFJvb3QgQ0EwHhcNMjIwODAxMDAwMDAwWhcNMzExMTA5MjM1OTU5
# WjBiMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL
# ExB3d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJv
# b3QgRzQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1K
# PDAiMGkz7MKnJS7JIT3yithZwuEppz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2r
# snnyyhHS5F/WBTxSD1Ifxp4VpX6+n6lXFllVcq9ok3DCsrp1mWpzMpTREEQQLt+C
# 8weE5nQ7bXHiLQwb7iDVySAdYyktzuxeTsiT+CFhmzTrBcZe7FsavOvJz82sNEBf
# sXpm7nfISKhmV1efVFiODCu3T6cw2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGY
# QJB5w3jHtrHEtWoYOAMQjdjUN6QuBX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8
# rhsDdV14Ztk6MUSaM0C/CNdaSaTC5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaY
# dj1ZXUJ2h4mXaXpI8OCiEhtmmnTK3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+
# wJS00mFt6zPZxd9LBADMfRyVw4/3IbKyEbe7f/LVjHAsQWCqsWMYRJUadmJ+9oCw
# ++hkpjPRiQfhvbfmQ6QYuKZ3AeEPlAwhHbJUKSWJbOUOUlFHdL4mrLZBdd56rF+N
# P8m800ERElvlEFDrMcXKchYiCd98THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8oR7F
# wI+isX4KJpn15GkvmB0t9dmpsh3lGwIDAQABo4IBOjCCATYwDwYDVR0TAQH/BAUw
# AwEB/zAdBgNVHQ4EFgQU7NfjgtJxXWRM3y5nP+e6mK4cD08wHwYDVR0jBBgwFoAU
# Reuir/SSy4IxLVGLp6chnfNtyA8wDgYDVR0PAQH/BAQDAgGGMHkGCCsGAQUFBwEB
# BG0wazAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29tMEMGCCsG
# AQUFBzAChjdodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNlcnRBc3N1
# cmVkSURSb290Q0EuY3J0MEUGA1UdHwQ+MDwwOqA4oDaGNGh0dHA6Ly9jcmwzLmRp
# Z2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcmwwEQYDVR0gBAow
# CDAGBgRVHSAAMA0GCSqGSIb3DQEBDAUAA4IBAQBwoL9DXFXnOF+go3QbPbYW1/e/
# Vwe9mqyhhyzshV6pGrsi+IcaaVQi7aSId229GhT0E0p6Ly23OO/0/4C5+KH38nLe
# JLxSA8hO0Cre+i1Wz/n096wwepqLsl7Uz9FDRJtDIeuWcqFItJnLnU+nBgMTdydE
# 1Od/6Fmo8L8vC6bp8jQ87PcDx4eo0kxAGTVGamlUsLihVo7spNU96LHc/RzY9Hda
# XFSMb++hUD38dglohJ9vytsgjTVgHAIDyyCwrFigDkBjxZgiwbJZ9VVrzyerbHbO
# byMt9H5xaiNrIv8SuFQtJ37YOtnwtoeW/VvRXKwYw02fc7cBqZ9Xql4o4rmUMYID
# djCCA3ICAQEwdzBjMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIElu
# Yy4xOzA5BgNVBAMTMkRpZ2lDZXJ0IFRydXN0ZWQgRzQgUlNBNDA5NiBTSEEyNTYg
# VGltZVN0YW1waW5nIENBAhAFRK/zlJ0IOaa/2z9f5WEWMA0GCWCGSAFlAwQCAQUA
# oIHRMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcN
# MjQwNzE1MTIzNzEyWjArBgsqhkiG9w0BCRACDDEcMBowGDAWBBRm8CsywsLJD4Jd
# zqqKycZPGZzPQDAvBgkqhkiG9w0BCQQxIgQgmzw1ZiuJWn+k774EGxdLOEGe1wgO
# yx9O2wJOGUJdmU4wNwYLKoZIhvcNAQkQAi8xKDAmMCQwIgQg0vbkbe10IszR1EBX
# aEE2b4KK2lWarjMWr00amtQMeCgwDQYJKoZIhvcNAQEBBQAEggIAhnK4ECIl7bvR
# sgTEm/s3/iDYox29LzugZf8ufVWitse4fEbRRTgaXzCaey3LnADfegVSsINZdl/b
# rpb4dSWswILWTJY0eG1g3FtBL8F2QDX9BkKQVJ9jGFmmlNEVQrCIPaTX1WQy8+tz
# NXPDCGh+PfuhphXNCWdKGitndhtnyMRAecuak8ojbk4Y9cN6V7agG6nwd3UJwJQI
# lxTVUsqvHgU1hYJRhr1ijMkPS09e6QC7XJPELRgCS9rlQ2dARXPrJ4Y0PupqKqYE
# KHRJf88HN0j7e0WOpo/wOWG5DqD3QPW2JepY+b6hT+3oakmIHlg6P4irC8dDEaCQ
# pQ/QnfF/WKomnopC0p65skQ58rPgKqRj79uDCcUPmLz6JBamsEihURD6VzcFDeME
# 4iyi539+ICz3k37K5fid6qCxjfMlQy9zxY1tqQIjGI+MQo+cQUCS2PwgGbjImf0f
# 2KgVikROSExYYl+EZ1jLkUlYldFN+D9X9yS9ehdpgezbtnqu5wBrh+ep42LZ/HJc
# T3ZpaR3Acu9rEF9Mg8cnxw1hgVrYsDjYwbEUfoYvQu6KsZnFahvrNqIUCK9gnAsf
# KwFc9D3f2r43A6Sl5+e90kN8oIrY5umR5wuMg66uUMVII3qRJBDEBrBtICMAg3UE
# P3WfKaJkX2LK4obMDgwnTiDMEPpaxuM=
# SIG # End signature block