Write-Host "Applying patch for log4j mitigations ..."

#set all vars
$path = 'HKLM:\SYSTEM\CurrentControlSet\Services\PCNS1\Parameters'
$directoryKey = 'AppDirectory'
$service = 'pcns1'
$pcnsJar = "pcns.jar"
$filesFolder = ".\files\*"
$libFolder = "lib"
$log4JWildcard = 'log4j*.jar'

try {
    $installDir = (Get-ItemProperty -Path $path -Name $directoryKey -ErrorAction Stop).$directoryKey
} catch {
    Write-Host "Unable to detect Powerchute Network Shutdown installation. Please run this patch on a system with PowerChute Network Shutdown."
    Write-Error $_
    Throw "No PowerChute Network Shutdown detected."
}

#build the path to the PCNS jar
$compPath =  Join-Path -Path $installDir -ChildPath 'comp'

#build the path to the log4J jar with wildcard for all versions
$libPath = Join-Path -Path $installDir -ChildPath $libFolder

#stop the service before updating the jars
Write-Host "Stopping PowerChute service"
Stop-Service -Name $service

Write-Host "Replacing existing libraries with mitigated versions"

try {
    #find the log4J jar(s) to remove with the wildcard lookup
    $log4JJarList = Get-ChildItem -Recurse -Path $libPath -Include @("log4j*2.2.jar", "log4j*2.10.0.jar", "log4j*2.13.3.jar", "jetty*9.4.12.v20180830.jar", "commons-compress-*.jar", "spring-*-5.1.5.RELEASE.jar")
    foreach($log4JJar in $log4JJarList) {
        Write-Host "Removing $log4JJar"
        Remove-Item $log4JJar
    }

    Write-Host "Copying libraries to PowerChute installation"
    Copy-Item -Path $filesFolder -Exclude @($pcnsJar) -Destination $libPath

    Write-Host "Patching PowerChute service"
    Copy-Item -Path $filesFolder -Include @($pcnsJar) -Destination $compPath

} catch  {
        Write-Host "An error occurred:"
        Write-Error $_
        Write-Host "Could not apply patch! Please run the patch again when the problem is resolved."
        Throw "Patch not applied"
} 

Write-Host "Patch applied to PowerChute, starting PowerChute service"
Start-Service -Name $service
# SIG # Begin signature block
# MIIi5QYJKoZIhvcNAQcCoIIi1jCCItICAQExDTALBglghkgBZQMEAgEweQYKKwYB
# BAGCNwIBBKBrMGkwNAYKKwYBBAGCNwIBHjAmAgMBAAAEEB/MO2BZSwhOtyTSxil+
# 81ECAQACAQACAQACAQACAQAwMTANBglghkgBZQMEAgEFAAQgMQl6d0TZyHf+RSTC
# 1RbrvbVx9lQNLqrBeHooNXmpmo+gggqXMIIFMDCCBBigAwIBAgIQBAkYG1/Vu2Z1
# U0O1b5VQCDANBgkqhkiG9w0BAQsFADBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMM
# RGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQD
# ExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwHhcNMTMxMDIyMTIwMDAwWhcN
# MjgxMDIyMTIwMDAwWjByMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQg
# SW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMTEwLwYDVQQDEyhEaWdpQ2Vy
# dCBTSEEyIEFzc3VyZWQgSUQgQ29kZSBTaWduaW5nIENBMIIBIjANBgkqhkiG9w0B
# AQEFAAOCAQ8AMIIBCgKCAQEA+NOzHH8OEa9ndwfTCzFJGc/Q+0WZsTrbRPV/5aid
# 2zLXcep2nQUut4/6kkPApfmJ1DcZ17aq8JyGpdglrA55KDp+6dFn08b7KSfH03sj
# lOSRI5aQd4L5oYQjZhJUM1B0sSgmuyRpwsJS8hRniolF1C2ho+mILCCVrhxKhwjf
# DPXiTWAYvqrEsq5wMWYzcT6scKKrzn/pfMuSoeU7MRzP6vIK5Fe7SrXpdOYr/mzL
# fnQ5Ng2Q7+S1TqSp6moKq4TzrGdOtcT3jNEgJSPrCGQ+UpbB8g8S9MWOD8Gi6CxR
# 93O8vYWxYoNzQYIH5DiLanMg0A9kczyen6Yzqf0Z3yWT0QIDAQABo4IBzTCCAckw
# EgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwEwYDVR0lBAwwCgYI
# KwYBBQUHAwMweQYIKwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2Nz
# cC5kaWdpY2VydC5jb20wQwYIKwYBBQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2lj
# ZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcnQwgYEGA1UdHwR6MHgw
# OqA4oDaGNGh0dHA6Ly9jcmw0LmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJ
# RFJvb3RDQS5jcmwwOqA4oDaGNGh0dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdp
# Q2VydEFzc3VyZWRJRFJvb3RDQS5jcmwwTwYDVR0gBEgwRjA4BgpghkgBhv1sAAIE
# MCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vd3d3LmRpZ2ljZXJ0LmNvbS9DUFMwCgYI
# YIZIAYb9bAMwHQYDVR0OBBYEFFrEuXsqCqOl6nEDwGD5LfZldQ5YMB8GA1UdIwQY
# MBaAFEXroq/0ksuCMS1Ri6enIZ3zbcgPMA0GCSqGSIb3DQEBCwUAA4IBAQA+7A1a
# JLPzItEVyCx8JSl2qB1dHC06GsTvMGHXfgtg/cM9D8Svi/3vKt8gVTew4fbRknUP
# UbRupY5a4l4kgU4QpO4/cY5jDhNLrddfRHnzNhQGivecRk5c/5CxGwcOkRX7uq+1
# UcKNJK4kxscnKqEpKBo6cSgCPC6Ro8AlEeKcFEehemhor5unXCBc2XGxDI+7qPjF
# Emifz0DLQESlE/DmZAwlCEIysjaKJAL+L3J+HNdJRZboWR3p+nRka7LrZkPas7CM
# 1ekN3fYBIM6ZMWM9CBoYs4GbT8aTEAb8B4H6i9r5gkn3Ym6hU/oSlBiFLpKR6mhs
# RDKyZqHnGKSaZFHvMIIFXzCCBEegAwIBAgIQDwYI/9sLq5wBNI0+ExI3mzANBgkq
# hkiG9w0BAQsFADByMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5j
# MRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMTEwLwYDVQQDEyhEaWdpQ2VydCBT
# SEEyIEFzc3VyZWQgSUQgQ29kZSBTaWduaW5nIENBMB4XDTIwMTIxNTAwMDAwMFoX
# DTIzMTIxOTIzNTk1OVowgZsxCzAJBgNVBAYTAlVTMRYwFAYDVQQIEw1NYXNzYWNo
# dXNldHRzMRAwDgYDVQQHEwdBbmRvdmVyMSUwIwYDVQQKExxTQ0hORUlERVIgRUxF
# Q1RSSUMgVVNBLCBJTkMuMRQwEgYDVQQLEwtNUyBFbmVyZ3kgMjElMCMGA1UEAxMc
# U0NITkVJREVSIEVMRUNUUklDIFVTQSwgSU5DLjCCASIwDQYJKoZIhvcNAQEBBQAD
# ggEPADCCAQoCggEBAJVoM52qTmoKjyGYbX+MmQcQUdlK7p5Mwdd0aPa6EMauwcJm
# vS0VzC3xSIUNZqR1opkyF9P8BFXl/hAt1SahGd419qEwJqarBqfsZbC1l+6k3OUr
# hukaP0koT/RCC+SPomYrha5Ve7yP2JZqdKBkO27j8sEFtCpcCkSUlU1alD4Bf0GL
# Ig1TyJcZiObv+eV9nctC4adVU6ihj19Ih6Udy7ub48EdoGKh3o4A7FTqppxTGOBi
# mgs291Zeele7e4fZPHVvKa8GVbh+NgNHP6o4gc0xAYAkyIobiEbe9rn0OgaPPQ+z
# oq2uOCSvY4fAEJX9Q7y5R7UZh+1LGCLOuh9CweECAwEAAaOCAcUwggHBMB8GA1Ud
# IwQYMBaAFFrEuXsqCqOl6nEDwGD5LfZldQ5YMB0GA1UdDgQWBBQJPbX4R+LB42lr
# rh3e4okAHCS8sjAOBgNVHQ8BAf8EBAMCB4AwEwYDVR0lBAwwCgYIKwYBBQUHAwMw
# dwYDVR0fBHAwbjA1oDOgMYYvaHR0cDovL2NybDMuZGlnaWNlcnQuY29tL3NoYTIt
# YXNzdXJlZC1jcy1nMS5jcmwwNaAzoDGGL2h0dHA6Ly9jcmw0LmRpZ2ljZXJ0LmNv
# bS9zaGEyLWFzc3VyZWQtY3MtZzEuY3JsMEwGA1UdIARFMEMwNwYJYIZIAYb9bAMB
# MCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vd3d3LmRpZ2ljZXJ0LmNvbS9DUFMwCAYG
# Z4EMAQQBMIGEBggrBgEFBQcBAQR4MHYwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3Nw
# LmRpZ2ljZXJ0LmNvbTBOBggrBgEFBQcwAoZCaHR0cDovL2NhY2VydHMuZGlnaWNl
# cnQuY29tL0RpZ2lDZXJ0U0hBMkFzc3VyZWRJRENvZGVTaWduaW5nQ0EuY3J0MAwG
# A1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggEBAEVLR8AbjGZQ+Uk30vsd5LcQ
# J+8v06BuT2roxJSMx1z5cOFCJZ2RXz7ahEYYJ2n7Qn92HxC7LcP1Pf1ytv/z9iPb
# 2/h0Ry6l+wIZjKcrORqK95auj+Jau8HZYzsEMF8OPrEITW4McF3m17tAgQABzfM8
# RwqKVdtTDplNO6NGA6PjYA2rgK+5vOKlKmBmFjXwdsPqSX6nsJZIo3QObMYjpjkN
# hNPqA3D2xP30O4Yw5N2x36BqVnkqd6CrfMPEw5R8MIjml9XXLHXq3tGzHHtoMuuo
# JHvS1SAZS9b8lUBpUnXR/PbNAN55+ON9JLQ7UO5a7vLsnL4TYOPa3y67c5f6VvUx
# ghemMIIXogIBATCBhjByMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQg
# SW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMTEwLwYDVQQDEyhEaWdpQ2Vy
# dCBTSEEyIEFzc3VyZWQgSUQgQ29kZSBTaWduaW5nIENBAhAPBgj/2wurnAE0jT4T
# EjebMAsGCWCGSAFlAwQCAaCBxzAQBgorBgEEAYI3AgEMMQIwADAZBgkqhkiG9w0B
# CQMxDAYKKwYBBAGCNwIBBDAcBgkqhkiG9w0BCQUxDxcNMjIwNDE1MDk0NDUwWjAc
# BgorBgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTArBgkqhkiG9w0BCTQxHjAcMAsG
# CWCGSAFlAwQCAaENBgkqhkiG9w0BAQsFADAvBgkqhkiG9w0BCQQxIgQgNUUQ7XuT
# SVomT2LoO4dmBSEi0d7ugPrpEaZvlq7tEGwwDQYJKoZIhvcNAQELBQAEggEASppQ
# 7ZZ8agUBqZxsVOcIk+ZV6t9vFo5hfs0NDAKYr5uqhGVex8bvfI6A810IUuzWXt/C
# JOMsH0+w2U70QEh9G40Df8jJBuY5CgTfUBkiPOgTuc6gnPCT8pa2KvpwUUfDIg2A
# 1Thl09FZsPQW90XPsrm/CysasC6KkuJnT2uGMkcqXmJCdYs9PzjVXRWr+HDQ/oUC
# tnjJfoSWIA0YUqGNmA3dKwNNM2/aYbDmRJ++3Ps6nd3AJ5hEkX5qM0RiZDdh8auB
# BVcqxNe+MKNaxjGb4ExTKvz3DznhqBh/dkkZI9C0TPq0vvxhVfAMcrgIOWbY/x8Q
# AHHhW+r3BQdW7kF+uqGCFSgwghUkBgorBgEEAYI3AwMBMYIVFDCCFRAGCSqGSIb3
# DQEHAqCCFQEwghT9AgEDMQ0wCwYJYIZIAWUDBAIBMIHxBgsqhkiG9w0BCRABBKCB
# 4QSB3jCB2wIBAQYKYIZIAYb6bAoDBTAvMAsGCWCGSAFlAwQCAQQgHuDlzsFECUlS
# E0ubsijvI89vxS10VO7UPV2O93JCk5kCCEexjbQUME7IGA8yMDIyMDQxNTA5NDY1
# MlowAwIBAaB5pHcwdTELMAkGA1UEBhMCQ0ExEDAOBgNVBAgTB09udGFyaW8xDzAN
# BgNVBAcTBk90dGF3YTEWMBQGA1UEChMNRW50cnVzdCwgSW5jLjErMCkGA1UEAxMi
# RW50cnVzdCBUaW1lc3RhbXAgQXV0aG9yaXR5IC0gVFNBMaCCD1UwggQqMIIDEqAD
# AgECAgQ4Y974MA0GCSqGSIb3DQEBBQUAMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5l
# dDFAMD4GA1UECxQ3d3d3LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkg
# cmVmLiAobGltaXRzIGxpYWIuKTElMCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5u
# ZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5uZXQgQ2VydGlmaWNhdGlvbiBB
# dXRob3JpdHkgKDIwNDgpMB4XDTk5MTIyNDE3NTA1MVoXDTI5MDcyNDE0MTUxMlow
# gbQxFDASBgNVBAoTC0VudHJ1c3QubmV0MUAwPgYDVQQLFDd3d3cuZW50cnVzdC5u
# ZXQvQ1BTXzIwNDggaW5jb3JwLiBieSByZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYD
# VQQLExwoYykgMTk5OSBFbnRydXN0Lm5ldCBMaW1pdGVkMTMwMQYDVQQDEypFbnRy
# dXN0Lm5ldCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAoMjA0OCkwggEiMA0GCSqG
# SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtTUupEoay6qMgBxUWZCorS9G/C0pNju2A
# dqVnt3hAwHNCyGjA21Mr3V64dpg1k4sanXwTOg4fW7cez+UkFB6xgamNfbjMa0sD
# 8QIM3KulQCQAf3SUoZ0IKbOIC/WHd51VzeTDftdqZKuFFIaVW5cyUG89yLpmDOP8
# vbhJwXaJSRn9wKi9iaNnL8afvHEZYLgt6SzJkHZme5Tir3jWZVNdPNacss8pA/kv
# pFCy1EjOBTJViv2yZEwO5JgHddt/37kIVWCFMCn5e0ikaYbjNT8ehl16ehW97wCO
# FSJUFwCQJpO8Dklokb/4R9OdlULBDk3fbybPwxghYmZDcNbVwAfhAgMBAAGjQjBA
# MA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRV5IHR
# EYC+2Im5CKMx+aEkCRa5cDANBgkqhkiG9w0BAQUFAAOCAQEAO5uPVpsw51OZfHp5
# p02X1xmVkPsGH8ozfEZjj5ZmJPpAGyEnyuZyc/JP/jGZ/cgMTGhTxoCCE5j6tq3a
# XT3xzm72FRGUggzuP5WvEasP1y/eHwOPVyweybuaGkSV6xhPph/NfVcQL5sECVqE
# tW7YHTrh1p7RbHleeRwUxePQTJM7ZTzt3z2+puWVGsO1GcO9Xlu7/yPvaBnLEpMn
# XAMtbzDQHrYarN5a99GqqCem/nmBxHmZM1e6ErCp4EJsk8pW3v5thAsIi36N6teY
# Icbz5zx5L16c0UwVjeHsIjfMmkMLl9yAkI2zZ5tvSAgVVs+/8St8Xpp26VmQxXyD
# NRFlUTCCBRMwggP7oAMCAQICDFjaE/8AAAAAUc4N9zANBgkqhkiG9w0BAQsFADCB
# tDEUMBIGA1UEChMLRW50cnVzdC5uZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5l
# dC9DUFNfMjA0OCBpbmNvcnAuIGJ5IHJlZi4gKGxpbWl0cyBsaWFiLikxJTAjBgNV
# BAsTHChjKSAxOTk5IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNVBAMTKkVudHJ1
# c3QubmV0IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw0xNTA3MjIx
# OTAyNTRaFw0yOTA2MjIxOTMyNTRaMIGyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN
# RW50cnVzdCwgSW5jLjEoMCYGA1UECxMfU2VlIHd3dy5lbnRydXN0Lm5ldC9sZWdh
# bC10ZXJtczE5MDcGA1UECxMwKGMpIDIwMTUgRW50cnVzdCwgSW5jLiAtIGZvciBh
# dXRob3JpemVkIHVzZSBvbmx5MSYwJAYDVQQDEx1FbnRydXN0IFRpbWVzdGFtcGlu
# ZyBDQSAtIFRTMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANkj5hSk
# 6HxLhXFY+/iB5nKLXUbDiAAfONCK4dZuVjDlr9pkUH3CEzn7vWa02oT7g9AoH8t2
# 6GBQaZvzzk8T4sE+wd8SyzKj+F5EIg7MOumNSblgdMjeVD1BXkNfKEapprfKECsi
# vFtNW4wXZRKG/Sx31cWgjMrCg+BHV3zncK5iRScxGArUwKQYVVL3YMYES7PdaDJu
# EB80EbgSeGTx7qng9+OxIo80WmXLivThRVB035OXpjTm0Ew7nzdJUqdTTp8uZ1zt
# lvylv3RRiOOqjr3ZsS9fUDAW9FFgImuZy//hVDu5+0Q4pQg5I5tpR/o8xNDnqt9G
# suzyihmsKbI4lXUCAwEAAaOCASMwggEfMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYD
# VR0PAQH/BAQDAgEGMDsGA1UdIAQ0MDIwMAYEVR0gADAoMCYGCCsGAQUFBwIBFhpo
# dHRwOi8vd3d3LmVudHJ1c3QubmV0L3JwYTAzBggrBgEFBQcBAQQnMCUwIwYIKwYB
# BQUHMAGGF2h0dHA6Ly9vY3NwLmVudHJ1c3QubmV0MDIGA1UdHwQrMCkwJ6AloCOG
# IWh0dHA6Ly9jcmwuZW50cnVzdC5uZXQvMjA0OGNhLmNybDATBgNVHSUEDDAKBggr
# BgEFBQcDCDAdBgNVHQ4EFgQUw8Jx0nvXaAWuOzmbNCUMYgPHV2gwHwYDVR0jBBgw
# FoAUVeSB0RGAvtiJuQijMfmhJAkWuXAwDQYJKoZIhvcNAQELBQADggEBAB0k55p0
# W6pw/LEOMUXXLAB/ZjoroJo0qqxjbYn5n98Nd/0kI/xPnLdvj/P0H7bB/dYcxIyI
# ZsFjjbpXd9O4Gh7IUa3MYDYah2oo6hFl3sw8LIx0t+hQQ9PMKOgVbBEqnxSVKckF
# V7VnNug8qYPvQcEhFtN+9y0RR2Z2YIISaYx2VXMP3y9LXelsI/gH9rV91mlFnFh9
# YS78eEtDTomRRkQsoFOoRaH2Fli7kRPyS8XfC8Dnril6vUWz53Aw5zSO63r207XR
# 3msTmUazi9JNk3W18W+/3AAowiW/vOejZTTsPw0dl4z6qogipBg12wWOduMQyCmP
# Y9CurBjZ2sSfURIwggYMMIIE9KADAgECAhEAjc4V86eUxYcAAAAAVZIz9DANBgkq
# hkiG9w0BAQsFADCBsjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUVudHJ1c3QsIElu
# Yy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVybXMxOTA3
# BgNVBAsTMChjKSAyMDE1IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1
# c2Ugb25seTEmMCQGA1UEAxMdRW50cnVzdCBUaW1lc3RhbXBpbmcgQ0EgLSBUUzEw
# HhcNMjAwNzIyMTUzMzI5WhcNMzAxMjI5MTYyOTIzWjB1MQswCQYDVQQGEwJDQTEQ
# MA4GA1UECBMHT250YXJpbzEPMA0GA1UEBxMGT3R0YXdhMRYwFAYDVQQKEw1FbnRy
# dXN0LCBJbmMuMSswKQYDVQQDEyJFbnRydXN0IFRpbWVzdGFtcCBBdXRob3JpdHkg
# LSBUU0ExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAyj7sJGLh9/7f
# 0TapN2bWeRcUlEIApIaXuCeM60+p99Ou4qswBAgoX5tTpoeKLd0CUl+1uOW2UPCc
# qxLB7hpWeIpuRD+pio/X21PZxkfIDNxGVwBnBhcahbdAqq92B+eQX5SS1a7W1815
# ocU1K0SEX0kc1XO4gY1ylAJqqc9Wkqo2lMNQyVaXiFzhf1/9+98Ujj2rJA32e49q
# +m4e+pW9fZD45EIUv1VeBFSTMUP3w+fCBRForEBpxyM37FpMKcnfNbN+SU7GetvO
# wiWUnjc/iOwkTTmPf+8Va1RMcfENIXxaddCHU4mgW+Ad+5wHwKihtCLQYqTHF383
# Ts4tOljj5fAmhk1CB5++o+IZomtypUa/y2RbJchF9N7oPLb9nPOg74NBfDZwkMNS
# YrDHfz175ZaHpVb/DupJBd+03RNvRdObyCN5KjCZnZnczM2lLoFTUiLy0D2iN1KR
# kUZw1sVLBf9O9NxkBpf+fJCGJ6+fNFVIiasiwHUHjCHZBNMcp+ptpMlSK+LEAokw
# XuebMeY5Za1xre9nW9yjJO0N5uKpejoYVd7wRi40TRpNmIANTtFshXW4A8IA1SJK
# JtGO3e211CfWOnxnaYbXVD+Xz2S+katutp0ZEHm1lw700YXJ5K7HwLSqB8QfwTpX
# n80OpnrlFYayqvSikyzPjPdR+t2M0EkCAwEAAaOCAVcwggFTMA4GA1UdDwEB/wQE
# AwIHgDAWBgNVHSUBAf8EDDAKBggrBgEFBQcDCDBBBgNVHSAEOjA4MDYGCmCGSAGG
# +mwKAwUwKDAmBggrBgEFBQcCARYaaHR0cDovL3d3dy5lbnRydXN0Lm5ldC9ycGEw
# CQYDVR0TBAIwADBoBggrBgEFBQcBAQRcMFowIwYIKwYBBQUHMAGGF2h0dHA6Ly9v
# Y3NwLmVudHJ1c3QubmV0MDMGCCsGAQUFBzAChidodHRwOi8vYWlhLmVudHJ1c3Qu
# bmV0L3RzMS1jaGFpbjI1Ni5jZXIwMQYDVR0fBCowKDAmoCSgIoYgaHR0cDovL2Ny
# bC5lbnRydXN0Lm5ldC90czFjYS5jcmwwHwYDVR0jBBgwFoAUw8Jx0nvXaAWuOzmb
# NCUMYgPHV2gwHQYDVR0OBBYEFC1WgO+O90pDHEOhtd7Z16iqayYoMA0GCSqGSIb3
# DQEBCwUAA4IBAQBYS87Y/oHXUdjHXI2S0k6VHoWGQ+3gGuaaIUIzXeORvvhQfHaM
# JalB1ISZ6OiitpmXaKIgvTKoqil8CnYan8hVjqvTe9Tjfll+knA5D+32L/NP/3Rc
# 8+cwNECjEaNrcqQyEQV8/ZGLR6hXNlLH+rVFhNGyPkLlFl7dA9Op/T1wZ3raE+CE
# gmc4YFbDrbCI4Qo3fmKBBrsjBO9YoCOo0QljMM3ZGTj061p3WL5fv+uULf8vBDBk
# EI8+WVYuOjZPDjyWD4/J6n5/STIfo19u2iKf19kXOVneSBd6AktYcf+3DC2h8Gej
# Edz3ybzZHstsDBUneEgWayzxrZe4dWy7lcOOMYIEmjCCBJYCAQEwgcgwgbIxCzAJ
# BgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUg
# d3d3LmVudHJ1c3QubmV0L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxNSBF
# bnRydXN0LCBJbmMuIC0gZm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJjAkBgNVBAMT
# HUVudHJ1c3QgVGltZXN0YW1waW5nIENBIC0gVFMxAhEAjc4V86eUxYcAAAAAVZIz
# 9DALBglghkgBZQMEAgGgggGmMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAc
# BgkqhkiG9w0BCQUxDxcNMjIwNDE1MDk0NjUyWjApBgkqhkiG9w0BCTQxHDAaMAsG
# CWCGSAFlAwQCAaELBgkqhkiG9w0BAQswLwYJKoZIhvcNAQkEMSIEIEgxeoyo8SSe
# sKujN6u3TMMYjP+CHCujg9q4BeZfIJBOMIIBDAYLKoZIhvcNAQkQAi8xgfwwgfkw
# gfYwgfMEIJUKJv3HwCAY6feRqVw48m7vPaQyZ8qwzRWlVa9jEHLJMIHOMIG4pIG1
# MIGyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNRW50cnVzdCwgSW5jLjEoMCYGA1UE
# CxMfU2VlIHd3dy5lbnRydXN0Lm5ldC9sZWdhbC10ZXJtczE5MDcGA1UECxMwKGMp
# IDIwMTUgRW50cnVzdCwgSW5jLiAtIGZvciBhdXRob3JpemVkIHVzZSBvbmx5MSYw
# JAYDVQQDEx1FbnRydXN0IFRpbWVzdGFtcGluZyBDQSAtIFRTMQIRAI3OFfOnlMWH
# AAAAAFWSM/QwCwYJKoZIhvcNAQELBIICAHFs423DzRE8PYK1l/97OmxiKC2tuyOy
# SX72/95a+2KJTUBXL82VG9ERVwwLRTUatNZgGBVBRVxiRsqR1Lxmm8SRlKToIBWR
# l2Zl810ZuwigdAws8EW4iRL02s8tDaqpFeAIYlbkIKFQIDPQ6TOMb40E7xPr33xD
# 82KM7AkBoI5K5VVJCE+RIbCst1F3KaCTVNqLdYnlPQn19e/F2BnRkLnDNUMyERqo
# AjlZWYaIQeE3Ip6D2VNOh2Wi0h9PeiRBuZpcUoFml7XYHpzV/cKl1y4XcIOv3XbJ
# 1nLJ7TWDsukdc/2YBch9Skq3p4t1HVQJJodvrjMsNk3qnCV0GlMNzwvMGEHiAWHU
# YiKNyTLKN4Dr7MeQ3ym8zEh5T3vFcBdeDzX0nH/1JnnfJHepWOwHTqrIIWsOqg8o
# 1b2K69RNCK1LVc1FBUIvpo5m+uzQQC6xHzcDV4HxQ5Do29hDjKnRbdukifio/vIq
# OHSzTde5THpedEvCPDGMUkPuihW1UuUgRbdQoCGdWYPfDcq9Mx239z/j3fbb/k1B
# Smw1u3ADSBoj2jPyX6Aapx8HqhmNwZYaz29RnqKj5GdzLAfl78vmRhDMlL9pLzA1
# +9B5Bvmx6FDPISzLZObwijo3ORm//syGa67utV/ENWcvzeQPjSHATmpNJKXKw79Y
# ZKtnzPPfOyLa
# SIG # End signature block
