Samples/Get-UcsCimcIpReport.ps1



  [CmdletBinding()]
  Param(
    [Parameter(Mandatory=$true)]
    [Cisco.Ucs.UcsHandle[]] $Ucs
  )
  Process
  {
     Foreach ($u in $Ucs)
     {
       $sp = @(Get-UcsServiceProfile -Ucs $u -Type instance)
       $spMap = @{ }
       Write-Verbose "Fetching service profile instances"
       $sp | % { $spMap[$_.Dn] = $_ }


       $pnMap = @{ }
       Write-Verbose "Fetching processing nodes"
       Get-UcsBlade -Ucs $u | % { $pnMap[$_.Dn] = $_ }   
       Get-UcsRackUnit -Ucs $u | % { $pnMap[$_.Dn] = $_ }

       Write-Verbose "Fetching PN's management interfaces"
       $mgmtIf = $pnMap.values | Get-UcsMgmtController -Subject blade | Get-UcsMgmtIf -Subject blade -AdminState enable | ? { $_.ExtIp -ne "0.0.0.0" }
       $mgmtIfMap = @{ }
       Foreach ($mgmtIfDn in ($mgmtIf | select -ExpandProperty Dn | Get-Unique))
       {
         $mgmtIfMap[$mgmtIfDn -replace "/mgmt/if-[^/]*$",""] = $mgmtIf | ? { $_.Dn -eq $mgmtIfDn }
       }
       $mgmtIfDn = $mgmtIfMap.keys

       Write-Verbose "Fetching SP's Static CIMC IPs"
       $spStaticIpMap = @{ }
       $sp | Get-UcsVnicIpV4StaticAddr -LimitScope | % { $spStaticIpMap[$_.Dn -replace "/ipv4-static-addr$",""] = $_ }
       $spStaticIpDn = $spStaticIpMap.keys

       Write-Verbose "Fetching SP's Pooled CIMC IPs"
       $spDynamicIpMap = @{ }
       $sp | Get-UcsVnicIpV4PooledAddr -LimitScope | ? { $_.Addr -ne "0.0.0.0" } | % { $spDynamicIpMap[$_.Dn -replace "/ipv4-pooled-addr$",""] = $_ }
       $spDynamicIpDn = $spDynamicIpMap.keys

       Foreach ($spDn in ($spMap.keys | sort))
       {
         $ucsName = $u.Ucs
         $pnDn = $spMap[$spDn].PnDn
         $mgmtIfIp=""
         $spStaticIp = ""
         $spDynamicIp = ""
         if ($mgmtIfDn -contains $pnDn)
         {
           $mgmtIfIp = [string]::join(';', ($mgmtIfMap[$pnDn] | Select -ExpandProperty ExtIp)) 
         }
         if ($pnDn -ne "")
         {
           $pnMap.remove($pnDn)
         }
         if ($spStaticIpDn -contains $spDn)
         {
            $spStaticIp = $spStaticIpMap[$spDn].Addr
         }
         if ($spDynamicIpDn -contains $spDn)
         {
            $spDynamicIp = $spDynamicIpMap[$spDn].Addr
         }
         New-Object PSObject -Property @{
           "Ucs" = $ucsName
           "SpDn" = $spDn
           "PnDn" = $pnDn
           "SpCimcStaticIp" = $spStaticIp
           "SpCimcDynamicIp" = $spDynamicIp
           "PnCimcIp" = $mgmtIfIp
         } | Select-Object Ucs,SpDn,PnDn,SpCimcStaticIp,SpCimcDynamicIp,PnCimcIp
       }

       Foreach ($pnDn in ($pnMap.keys | sort))
       {
         $ucsName = $u.Ucs
         $mgmtIfIp=""
         if ($mgmtIfDn -contains $pnDn)
         {
           $mgmtIfIp = [string]::join(';', ($mgmtIfMap[$pnDn] | Select -ExpandProperty ExtIp)) 
         }
         New-Object PSObject -Property @{
           "Ucs" = $ucsName
           "SpDn" = ""
           "PnDn" = $pnDn
           "SpCimcStaticIp" = ""
           "SpCimcDynamicIp" = ""
           "PnCimcIp" = $mgmtIfIp
         } | Select-Object Ucs,SpDn,PnDn,SpCimcStaticIp,SpCimcDynamicIp,PnCimcIp
       }
    }
  }



# SIG # Begin signature block
# MIIeQQYJKoZIhvcNAQcCoIIeMjCCHi4CAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAiAuMO4UHGFiez
# SNqxldpHMvE0S8P7qF2d8gb1b7DYsaCCDIYwggXCMIIEqqADAgECAhAFsKypxaqA
# 4gfxbvm70Ew5MA0GCSqGSIb3DQEBCwUAMGwxCzAJBgNVBAYTAlVTMRUwEwYDVQQK
# EwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xKzApBgNV
# BAMTIkRpZ2lDZXJ0IEVWIENvZGUgU2lnbmluZyBDQSAoU0hBMikwHhcNMTkwMzA1
# MDAwMDAwWhcNMjEwMzE5MTIwMDAwWjCB1TETMBEGCysGAQQBgjc8AgEDEwJVUzEb
# MBkGCysGAQQBgjc8AgECEwpDYWxpZm9ybmlhMR0wGwYDVQQPDBRQcml2YXRlIE9y
# Z2FuaXphdGlvbjERMA8GA1UEBRMIQzExODM0NzcxCzAJBgNVBAYTAlVTMRMwEQYD
# VQQIEwpDYWxpZm9ybmlhMREwDwYDVQQHEwhTYW4gSm9zZTEcMBoGA1UEChMTQ0lT
# Q08gU1lTVEVNUywgSU5DLjEcMBoGA1UEAxMTQ0lTQ08gU1lTVEVNUywgSU5DLjCC
# ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALVsxgp7cSBymDSAFTz4uPcU
# dcp8ef7lqubpfbCvmiK5BaQOcF6pL2Ekl1o2BiiMOXQfKLO706Ji1lfdZVh/1eDz
# zThFUTJ5LgQv5YrFnYu27TuAoXJ2Qs6pj/DJX+R7Mw+5fweicf0DSK9XiV6C9FCK
# gT7Z7g0WSYH22qZpBzJf766j2sXo84qEzgR683xfCbTQMbg7I2MzuIvMGT4Qs447
# Uzb5lR1DVwMcAdXZD0lXS+0h1C4xl3B+MseIH2mtQTo1+pLhlqSK8xCwixEf1ERL
# 3zmUTLw3G/gM4ccyvlWUaorNAiZw7JSAk3eqojmiAp9fuqRuuDhOHl13MzCxh1UC
# AwEAAaOCAfQwggHwMB8GA1UdIwQYMBaAFI/ofvBtMmoABSPHcJdqOpD/a+rUMB0G
# A1UdDgQWBBSqPgNg7Q9VW7yFRq0K9ceayo35uzAxBgNVHREEKjAooCYGCCsGAQUF
# BwgDoBowGAwWVVMtQ0FMSUZPUk5JQS1DMTE4MzQ3NzAOBgNVHQ8BAf8EBAMCB4Aw
# EwYDVR0lBAwwCgYIKwYBBQUHAwMwewYDVR0fBHQwcjA3oDWgM4YxaHR0cDovL2Ny
# bDMuZGlnaWNlcnQuY29tL0VWQ29kZVNpZ25pbmdTSEEyLWcxLmNybDA3oDWgM4Yx
# aHR0cDovL2NybDQuZGlnaWNlcnQuY29tL0VWQ29kZVNpZ25pbmdTSEEyLWcxLmNy
# bDBLBgNVHSAERDBCMDcGCWCGSAGG/WwDAjAqMCgGCCsGAQUFBwIBFhxodHRwczov
# L3d3dy5kaWdpY2VydC5jb20vQ1BTMAcGBWeBDAEDMH4GCCsGAQUFBwEBBHIwcDAk
# BggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29tMEgGCCsGAQUFBzAC
# hjxodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNlcnRFVkNvZGVTaWdu
# aW5nQ0EtU0hBMi5jcnQwDAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQsFAAOCAQEA
# MLeT7V16i8TpC3++bRSUEajW355sfKiuWEPnc1RIEGMSekaTJKSVDDgaGdPt22qE
# wRrJztKYca2N6ZpOOE477yTiuYMCCVUIcwhaWezA/4Wgs9TpW0QBe53qIJj6t0uH
# M+gZg7Bp0KM65Z+Kh5teHZ6kzs8evRGsH3cgKtfrwwRRdJCgqBz3KmkNhqRQ6/Hl
# SS7GV+wRoGAeqnCGL6IOY7bLl2NC+ItUh1D6bP/9UR0MtVFU6nqY7Lj3Z5xmje8t
# N6sZ1p+FTGaHDwSZX7DDtff766Bl5om/IixIfOPQtZoe12lxZqlAn33JMflIZgNt
# 8ckoE13Gh8lJeoFIFBzgsjCCBrwwggWkoAMCAQICEAPxtOFfOoLxFJZ4s9fYR1ww
# DQYJKoZIhvcNAQELBQAwbDELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0
# IEluYzEZMBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNl
# cnQgSGlnaCBBc3N1cmFuY2UgRVYgUm9vdCBDQTAeFw0xMjA0MTgxMjAwMDBaFw0y
# NzA0MTgxMjAwMDBaMGwxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJ
# bmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xKzApBgNVBAMTIkRpZ2lDZXJ0
# IEVWIENvZGUgU2lnbmluZyBDQSAoU0hBMikwggEiMA0GCSqGSIb3DQEBAQUAA4IB
# DwAwggEKAoIBAQCnU/oPsrUT8WTPhID8roA10bbXx6MsrBosrPGErDo1EjqSkbpX
# 5MTJ8y+oSDy31m7clyK6UXlhr0MvDbebtEkxrkRYPqShlqeHTyN+w2xlJJBVPqHK
# I3zFQunEemJFm33eY3TLnmMl+ISamq1FT659H8gTy3WbyeHhivgLDJj0yj7QRap6
# HqVYkzY0visuKzFYZrQyEJ+d8FKh7+g+03byQFrc+mo9G0utdrCMXO42uoPqMKhM
# 3vELKlhBiK4AiasD0RaCICJ2615UOBJi4dJwJNvtH3DSZAmALeK2nc4f8rsh82zb
# 2LMZe4pQn+/sNgpcmrdK0wigOXn93b89OgklAgMBAAGjggNYMIIDVDASBgNVHRMB
# Af8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBhjATBgNVHSUEDDAKBggrBgEFBQcD
# AzB/BggrBgEFBQcBAQRzMHEwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2lj
# ZXJ0LmNvbTBJBggrBgEFBQcwAoY9aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29t
# L0RpZ2lDZXJ0SGlnaEFzc3VyYW5jZUVWUm9vdENBLmNydDCBjwYDVR0fBIGHMIGE
# MECgPqA8hjpodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGlnaUNlcnRIaWdoQXNz
# dXJhbmNlRVZSb290Q0EuY3JsMECgPqA8hjpodHRwOi8vY3JsNC5kaWdpY2VydC5j
# b20vRGlnaUNlcnRIaWdoQXNzdXJhbmNlRVZSb290Q0EuY3JsMIIBxAYDVR0gBIIB
# uzCCAbcwggGzBglghkgBhv1sAwIwggGkMDoGCCsGAQUFBwIBFi5odHRwOi8vd3d3
# LmRpZ2ljZXJ0LmNvbS9zc2wtY3BzLXJlcG9zaXRvcnkuaHRtMIIBZAYIKwYBBQUH
# AgIwggFWHoIBUgBBAG4AeQAgAHUAcwBlACAAbwBmACAAdABoAGkAcwAgAEMAZQBy
# AHQAaQBmAGkAYwBhAHQAZQAgAGMAbwBuAHMAdABpAHQAdQB0AGUAcwAgAGEAYwBj
# AGUAcAB0AGEAbgBjAGUAIABvAGYAIAB0AGgAZQAgAEQAaQBnAGkAQwBlAHIAdAAg
# AEMAUAAvAEMAUABTACAAYQBuAGQAIAB0AGgAZQAgAFIAZQBsAHkAaQBuAGcAIABQ
# AGEAcgB0AHkAIABBAGcAcgBlAGUAbQBlAG4AdAAgAHcAaABpAGMAaAAgAGwAaQBt
# AGkAdAAgAGwAaQBhAGIAaQBsAGkAdAB5ACAAYQBuAGQAIABhAHIAZQAgAGkAbgBj
# AG8AcgBwAG8AcgBhAHQAZQBkACAAaABlAHIAZQBpAG4AIABiAHkAIAByAGUAZgBl
# AHIAZQBuAGMAZQAuMB0GA1UdDgQWBBSP6H7wbTJqAAUjx3CXajqQ/2vq1DAfBgNV
# HSMEGDAWgBSxPsNpA/i/RwHUmCYaCALvY2QrwzANBgkqhkiG9w0BAQsFAAOCAQEA
# GTNKDIEzN9utNsnkyTq7tRsueqLi9ENCF56/TqFN4bHb6YHdnwHy5IjV6f4J/SHB
# 7F2A0vDWwUPC/ncr2/nXkTPObNWyGTvmLtbJk0+IQI7N4fV+8Q/GWVZy6OtqQb0c
# 1UbVfEnKZjgVwb/gkXB3h9zJjTHJDCmiM+2N4ofNiY0/G//V4BqXi3zabfuoxrI6
# Zmt7AbPN2KY07BIBq5VYpcRTV6hg5ucCEqC5I2SiTbt8gSVkIb7P7kIYQ5e7pTcG
# r03/JqVNYUvsRkG4Zc64eZ4IlguBjIo7j8eZjKMqbphtXmHGlreKuWEtk7jrDgRD
# 1/X+pvBi1JlqpcHB8GSUgDGCEREwghENAgEBMIGAMGwxCzAJBgNVBAYTAlVTMRUw
# EwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20x
# KzApBgNVBAMTIkRpZ2lDZXJ0IEVWIENvZGUgU2lnbmluZyBDQSAoU0hBMikCEAWw
# rKnFqoDiB/Fu+bvQTDkwDQYJYIZIAWUDBAIBBQCggZowGQYJKoZIhvcNAQkDMQwG
# CisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLgYKKwYB
# BAGCNwIBDDEgMB6gHIAaAFMAQQBTAEQALQBQAGgAMwAtADEAMAAyADIwLwYJKoZI
# hvcNAQkEMSIEIEfWY5dPxj26EBsfH6fJrj9bb3T8Elm0/v+3xCNNy62mMA0GCSqG
# SIb3DQEBAQUABIIBAIiEEADYKyj8qoh3FJO0lBWMQ7TfWBdxI+jISQjD4ZJQy5gM
# JEki74KNV8OuaPWN/mOK6U2MC8Y8od2AeyPkAKxtbt3QQP8ROCqPfwLqs9/Q/a5M
# 1Gw52+q0k9rvd+S9hAjiVBwIgZ0doaDlQ5N8yxUljbSxB7i9z/iY6+29xVZXvs7s
# 92xYq6LdixPUPyvXg2Q2IP/SH7fyBnfF7hEvkHEQMFYiAFU3TliZ5fE9/ox7aI0W
# GWivdEtpzYkp0Fyen0xBi7d56SJjO0uvhRyr73jyjqswOumXDAPGJRxcI/kAF3Dh
# +HS2g7SVZWIRvG3LHOmk6pFEQ5sXBCdQQCS/oDShgg7EMIIOwAYKKwYBBAGCNwMD
# ATGCDrAwgg6sBgkqhkiG9w0BBwKggg6dMIIOmQIBAzEPMA0GCWCGSAFlAwQCAQUA
# MIHyBgsqhkiG9w0BCRABBKCB4gSB3zCB3AIBAQYJYIZIhvpsCgMFMDEwDQYJYIZI
# AWUDBAIBBQAEIEmcx6du/qWvPNBN4c+f8J0Sqak6XwzeTIob1KqolipDAgZdrm9A
# EpMYEzIwMTkxMTA2MTkwNDUyLjQ3NFowBIACAfSgdqR0MHIxCzAJBgNVBAYTAkNB
# MRAwDgYDVQQIEwdPbnRhcmlvMQ8wDQYDVQQHEwZPdHRhd2ExFjAUBgNVBAoTDUVu
# dHJ1c3QsIEluYy4xKDAmBgNVBAMTH0VudHJ1c3QgVGltZSBTdGFtcGluZyBBdXRo
# b3JpdHmgggokMIIFCTCCA/GgAwIBAgIRAKvdZ2XyWu9QAAAAAFWR6QwwDQYJKoZI
# hvcNAQELBQAwgbIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMu
# MSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0L2xlZ2FsLXRlcm1zMTkwNwYD
# VQQLEzAoYykgMjAxNSBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhvcml6ZWQgdXNl
# IG9ubHkxJjAkBgNVBAMTHUVudHJ1c3QgVGltZXN0YW1waW5nIENBIC0gVFMxMB4X
# DTE4MTAwNTIwMzAyN1oXDTMwMDEwNTIxMDAyN1owcjELMAkGA1UEBhMCQ0ExEDAO
# BgNVBAgTB09udGFyaW8xDzANBgNVBAcTBk90dGF3YTEWMBQGA1UEChMNRW50cnVz
# dCwgSW5jLjEoMCYGA1UEAxMfRW50cnVzdCBUaW1lIFN0YW1waW5nIEF1dGhvcml0
# eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKu9royPQsuVWVxiJ/lA
# uP9VokBKZf/b7aehiG5AGi7Za9VK7QFZYlTEcxaj1oRu7oBC6lUImHAZPyaexNam
# qOurqSQ9C1dYZPzw2hgy2bHXunMBSw6RMe+9SJqJw4LiCXjzohsujc0O74mzerry
# HJgzpXD4e07sEgjss59PjEu+13yAZ1b+XD4H2oaiKUAbMMqPzRdJotTrzV5QchkZ
# cEcrnQrggMMpBwElJFzN9gbUHRGGyjX2FKS/r25Bgylrkn9Eh4zbhFCgkbwJU3/0
# rL7DN4ejxEoLEDNttwGD8cVHaZ8Uw8/N/H0BKeNFzo+ZjmSpDTyLIOIDhstUREE3
# tekCAwEAAaOCAVcwggFTMA4GA1UdDwEB/wQEAwIHgDAWBgNVHSUBAf8EDDAKBggr
# BgEFBQcDCDBBBgNVHSAEOjA4MDYGCmCGSAGG+mwKAwUwKDAmBggrBgEFBQcCARYa
# aHR0cDovL3d3dy5lbnRydXN0Lm5ldC9ycGEwCQYDVR0TBAIwADBoBggrBgEFBQcB
# AQRcMFowIwYIKwYBBQUHMAGGF2h0dHA6Ly9vY3NwLmVudHJ1c3QubmV0MDMGCCsG
# AQUFBzAChidodHRwOi8vYWlhLmVudHJ1c3QubmV0L3RzMS1jaGFpbjI1Ni5jZXIw
# MQYDVR0fBCowKDAmoCSgIoYgaHR0cDovL2NybC5lbnRydXN0Lm5ldC90czFjYS5j
# cmwwHwYDVR0jBBgwFoAUw8Jx0nvXaAWuOzmbNCUMYgPHV2gwHQYDVR0OBBYEFCCQ
# ed4myxXaB0L7ihUNcZ4ZaIgsMA0GCSqGSIb3DQEBCwUAA4IBAQDEsmLZssupqGDb
# QabTQD1hvfrv95S1SM1uctWG5RipsUGJmK8EFat9q/UVAsRrwKlJKC1Y11MMWQc2
# zqoLeOllwMQjETTUwGqY+4HzrJhgtPc+AHRwhXIwtsJpMVs8Bm4E/0HkRZRecIpS
# Ow7Kh2FsQEhWDx3BJ+ryXmAg/Ib6NFfEP+KlSou7BvNrHQkCUN34F0vSdCGs+Z9J
# 9+xK2DpV+VXpxY9tIgRZSlM9HVOiqjN7bQEVvn6lup+yUd13cdixgupZfY2tPk1G
# jP44Jaf8pN4Tvv4Q0vCWN+WPHKms09hqbqVW3CZa6V+B3ZBPmGmITc+ClKpi9Z8E
# 5v2/ZprCMIIFEzCCA/ugAwIBAgIMWNoT/wAAAABRzg33MA0GCSqGSIb3DQEBCwUA
# MIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3d3d3LmVudHJ1c3Qu
# bmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTElMCMG
# A1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50
# cnVzdC5uZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgpMB4XDTE1MDcy
# MjE5MDI1NFoXDTI5MDYyMjE5MzI1NFowgbIxCzAJBgNVBAYTAlVTMRYwFAYDVQQK
# Ew1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0L2xl
# Z2FsLXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxNSBFbnRydXN0LCBJbmMuIC0gZm9y
# IGF1dGhvcml6ZWQgdXNlIG9ubHkxJjAkBgNVBAMTHUVudHJ1c3QgVGltZXN0YW1w
# aW5nIENBIC0gVFMxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2SPm
# FKTofEuFcVj7+IHmcotdRsOIAB840Irh1m5WMOWv2mRQfcITOfu9ZrTahPuD0Cgf
# y3boYFBpm/POTxPiwT7B3xLLMqP4XkQiDsw66Y1JuWB0yN5UPUFeQ18oRqmmt8oQ
# KyK8W01bjBdlEob9LHfVxaCMysKD4EdXfOdwrmJFJzEYCtTApBhVUvdgxgRLs91o
# Mm4QHzQRuBJ4ZPHuqeD347EijzRaZcuK9OFFUHTfk5emNObQTDufN0lSp1NOny5n
# XO2W/KW/dFGI46qOvdmxL19QMBb0UWAia5nL/+FUO7n7RDilCDkjm2lH+jzE0Oeq
# 30ay7PKKGawpsjiVdQIDAQABo4IBIzCCAR8wEgYDVR0TAQH/BAgwBgEB/wIBADAO
# BgNVHQ8BAf8EBAMCAQYwOwYDVR0gBDQwMjAwBgRVHSAAMCgwJgYIKwYBBQUHAgEW
# Gmh0dHA6Ly93d3cuZW50cnVzdC5uZXQvcnBhMDMGCCsGAQUFBwEBBCcwJTAjBggr
# BgEFBQcwAYYXaHR0cDovL29jc3AuZW50cnVzdC5uZXQwMgYDVR0fBCswKTAnoCWg
# I4YhaHR0cDovL2NybC5lbnRydXN0Lm5ldC8yMDQ4Y2EuY3JsMBMGA1UdJQQMMAoG
# CCsGAQUFBwMIMB0GA1UdDgQWBBTDwnHSe9doBa47OZs0JQxiA8dXaDAfBgNVHSME
# GDAWgBRV5IHREYC+2Im5CKMx+aEkCRa5cDANBgkqhkiG9w0BAQsFAAOCAQEAHSTn
# mnRbqnD8sQ4xRdcsAH9mOiugmjSqrGNtifmf3w13/SQj/E+ct2+P8/QftsH91hzE
# jIhmwWONuld307gaHshRrcxgNhqHaijqEWXezDwsjHS36FBD08wo6BVsESqfFJUp
# yQVXtWc26Dypg+9BwSEW0373LRFHZnZgghJpjHZVcw/fL0td6Wwj+Af2tX3WaUWc
# WH1hLvx4S0NOiZFGRCygU6hFofYWWLuRE/JLxd8LwOeuKXq9RbPncDDnNI7revbT
# tdHeaxOZRrOL0k2TdbXxb7/cACjCJb+856NlNOw/DR2XjPqqiCKkGDXbBY524xDI
# KY9j0K6sGNnaxJ9REjGCA2QwggNgAgEBMIHIMIGyMQswCQYDVQQGEwJVUzEWMBQG
# A1UEChMNRW50cnVzdCwgSW5jLjEoMCYGA1UECxMfU2VlIHd3dy5lbnRydXN0Lm5l
# dC9sZWdhbC10ZXJtczE5MDcGA1UECxMwKGMpIDIwMTUgRW50cnVzdCwgSW5jLiAt
# IGZvciBhdXRob3JpemVkIHVzZSBvbmx5MSYwJAYDVQQDEx1FbnRydXN0IFRpbWVz
# dGFtcGluZyBDQSAtIFRTMQIRAKvdZ2XyWu9QAAAAAFWR6QwwDQYJYIZIAWUDBAIB
# BQCgggFsMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQx
# IgQgb33hiqYwLpvFCdLTyEEHNqmXGWPSWyVdVIwqNWQqGtQwggEbBgsqhkiG9w0B
# CRACDDGCAQowggEGMIIBAjCB5wQUwPWUF2Vp14CrDs/f2+Kpwa9kTt4wgc4wgbik
# gbUwgbIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYD
# VQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAo
# YykgMjAxNSBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkx
# JjAkBgNVBAMTHUVudHJ1c3QgVGltZXN0YW1waW5nIENBIC0gVFMxAhEAq91nZfJa
# 71AAAAAAVZHpDDAWBBSXnp2n95YjPyEMju0Wbe82BAxGjjANBgkqhkiG9w0BAQsF
# AASCAQAALls4Kdq8gsrrBgTt4tVsC5IP/zM0QGecp7dDuBkLt9VzuLDWlzklOEwM
# /rGieJ6LvLSK3DT2dqyh5PaTumd3tZIBk5AUz3Cgi+OxO5kmOE1Kcg3CCZ9k5vf9
# JFocsmQmugR7vVjHaWrpHoLQaT/EdjialC+0JOoevzYaK7xYZn6TIS2i/k5hlaC3
# S5lQz5/3BZoGi9J3bICZILY1krI7aeJ0BR2AVtFU2jGb0lmPaEYrRdHvp1C3S8IZ
# wUVWTyyM3kKk+5fJ4KP7iQkZgGEdIB+7rbvsPsHEWu9f+WVUn19BKIHhyiiU1vwW
# dZC2L/w/dQed5RB1rIhDutSQifbi
# SIG # End signature block