$logfile = "c:\programdata\installs.txt"
$logfile_verbose = "c:\programdata\verbose.txt"

function log($s, $verbose=$false)
{
    $t = Get-Date -Format "dd.MM.yyyy - HH:mm:ss.ff"
    if (!$verbose) {
        Add-Content $logfile -Value "$t - $s"
    }
    Add-Content $logfile_verbose -Value "$t - $s"
    Write-Host "$t - $s"
}

# Change to the script directory in case this script was called from somewhere else
cd $PSScriptRoot\drivers

log "Installing drivers"

$devices_without_drivers = (gwmi win32_pnpentity | ? ConfigManagerErrorCode -eq 28 | measure).Count
log "  Number of devices without driver: $devices_without_drivers"

# Get the model of the PC we're running on
$computersystem_info = gwmi win32_computersystem
$manufacturer = $computersystem_info.Manufacturer
if ($manufacturer -eq "LENOVO") {
    $model = (gwmi win32_computersystemproduct).Version
}
else {
    $model = $computersystem_info.Model
}

log "  For $manufacturer : $model"

# Extract the drivers
switch ($model)
{
    "HP EliteBook 850 G3" {
        .\hp_elitebook_850_g3.exe -oc:\windows\temp\driverinstall -y | Out-Null
    }
    "HP EliteBook 850 G5" {
        .\hp_elitebook_850_g5.exe -oc:\windows\temp\driverinstall -y | Out-Null
    }
    "HP ZBook Fury 16 G9 Mobile Workstation PC" {
        .\hp_zbook_fury_16_g9.exe -oc:\windows\temp\driverinstall -y | Out-Null
    }
    "HP ZBook Fury 16 G10 Mobile Workstation PC" {
        .\hp_zbook_fury_16_g10.exe -oc:\windows\temp\driverinstall -y | Out-Null
    }
    "HP ZBook Fury 16 G11 Mobile Workstation PC" {
        .\hp_zbook_fury_16_g11.exe -oc:\windows\temp\driverinstall -y | Out-Null
    }
    "HP ZBook Studio 16 inch G11 Mobile Workstation PC" {
        .\hp_zbook_studio_16_g11.exe -oc:\windows\temp\driverinstall -y | Out-Null
    }
    "ThinkPad P52s" {
        .\lenovo_thinkpad_p52s.exe -oc:\windows\temp\driverinstall -y | Out-Null
    }
    "ThinkStation P8" {
        .\lenovo_thinkstation_p8.exe -oc:\windows\temp\driverinstall -y | Out-Null
    }
    default {
        # We don't have a driver package for this computer, so exit without requesting a reboot
        log "  This computer model doesn't have a driver package"
        exit 0
    }
}
log "  Extraction $LASTEXITCODE"

# Install the drivers
log "  Installing"
cd c:\windows\temp\driverinstall
pnputil /add-driver *.inf /subdirs /install | Out-File c:\programdata\drivers.txt
$driverinstall_result = $LASTEXITCODE
# Translate the non-standard result code of a 259 for "success and reboot needed" to a 3010 to make the log easier to read
if ($driverinstall_result -eq 259) { $driverinstall_result = 3010 }
log "    Result $driverinstall_result"

$devices_without_drivers = (gwmi win32_pnpentity | ? ConfigManagerErrorCode -eq 28 | measure).Count
log "  Number of devices without driver: $devices_without_drivers"

# Signal to the Windows setup that we need a reboot by returning with code 1
exit 1

# SIG # Begin signature block
# MIIpLQYJKoZIhvcNAQcCoIIpHjCCKRoCAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAE0jhQOhE6f1Jv
# FAZokE/Z05g/z1vFSgHIEJ68H84bq6CCDiAwggawMIIEmKADAgECAhAIrUCyYNKc
# TJ9ezam9k67ZMA0GCSqGSIb3DQEBDAUAMGIxCzAJBgNVBAYTAlVTMRUwEwYDVQQK
# EwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xITAfBgNV
# BAMTGERpZ2lDZXJ0IFRydXN0ZWQgUm9vdCBHNDAeFw0yMTA0MjkwMDAwMDBaFw0z
# NjA0MjgyMzU5NTlaMGkxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2VydCwg
# SW5jLjFBMD8GA1UEAxM4RGlnaUNlcnQgVHJ1c3RlZCBHNCBDb2RlIFNpZ25pbmcg
# UlNBNDA5NiBTSEEzODQgMjAyMSBDQTEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
# ggIKAoICAQDVtC9C0CiteLdd1TlZG7GIQvUzjOs9gZdwxbvEhSYwn6SOaNhc9es0
# JAfhS0/TeEP0F9ce2vnS1WcaUk8OoVf8iJnBkcyBAz5NcCRks43iCH00fUyAVxJr
# Q5qZ8sU7H/Lvy0daE6ZMswEgJfMQ04uy+wjwiuCdCcBlp/qYgEk1hz1RGeiQIXhF
# LqGfLOEYwhrMxe6TSXBCMo/7xuoc82VokaJNTIIRSFJo3hC9FFdd6BgTZcV/sk+F
# LEikVoQ11vkunKoAFdE3/hoGlMJ8yOobMubKwvSnowMOdKWvObarYBLj6Na59zHh
# 3K3kGKDYwSNHR7OhD26jq22YBoMbt2pnLdK9RBqSEIGPsDsJ18ebMlrC/2pgVItJ
# wZPt4bRc4G/rJvmM1bL5OBDm6s6R9b7T+2+TYTRcvJNFKIM2KmYoX7BzzosmJQay
# g9Rc9hUZTO1i4F4z8ujo7AqnsAMrkbI2eb73rQgedaZlzLvjSFDzd5Ea/ttQokbI
# YViY9XwCFjyDKK05huzUtw1T0PhH5nUwjewwk3YUpltLXXRhTT8SkXbev1jLchAp
# QfDVxW0mdmgRQRNYmtwmKwH0iU1Z23jPgUo+QEdfyYFQc4UQIyFZYIpkVMHMIRro
# OBl8ZhzNeDhFMJlP/2NPTLuqDQhTQXxYPUez+rbsjDIJAsxsPAxWEQIDAQABo4IB
# WTCCAVUwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUaDfg67Y7+F8Rhvv+
# YXsIiGX0TkIwHwYDVR0jBBgwFoAU7NfjgtJxXWRM3y5nP+e6mK4cD08wDgYDVR0P
# AQH/BAQDAgGGMBMGA1UdJQQMMAoGCCsGAQUFBwMDMHcGCCsGAQUFBwEBBGswaTAk
# BggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29tMEEGCCsGAQUFBzAC
# hjVodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkUm9v
# dEc0LmNydDBDBgNVHR8EPDA6MDigNqA0hjJodHRwOi8vY3JsMy5kaWdpY2VydC5j
# b20vRGlnaUNlcnRUcnVzdGVkUm9vdEc0LmNybDAcBgNVHSAEFTATMAcGBWeBDAED
# MAgGBmeBDAEEATANBgkqhkiG9w0BAQwFAAOCAgEAOiNEPY0Idu6PvDqZ01bgAhql
# +Eg08yy25nRm95RysQDKr2wwJxMSnpBEn0v9nqN8JtU3vDpdSG2V1T9J9Ce7FoFF
# UP2cvbaF4HZ+N3HLIvdaqpDP9ZNq4+sg0dVQeYiaiorBtr2hSBh+3NiAGhEZGM1h
# mYFW9snjdufE5BtfQ/g+lP92OT2e1JnPSt0o618moZVYSNUa/tcnP/2Q0XaG3Ryw
# YFzzDaju4ImhvTnhOE7abrs2nfvlIVNaw8rpavGiPttDuDPITzgUkpn13c5Ubdld
# AhQfQDN8A+KVssIhdXNSy0bYxDQcoqVLjc1vdjcshT8azibpGL6QB7BDf5WIIIJw
# 8MzK7/0pNVwfiThV9zeKiwmhywvpMRr/LhlcOXHhvpynCgbWJme3kuZOX956rEnP
# LqR0kq3bPKSchh/jwVYbKyP/j7XqiHtwa+aguv06P0WmxOgWkVKLQcBIhEuWTatE
# QOON8BUozu3xGFYHKi8QxAwIZDwzj64ojDzLj4gLDb879M4ee47vtevLt/B3E+bn
# KD+sEq6lLyJsQfmCXBVmzGwOysWGw/YmMwwHS6DTBwJqakAwSEs0qFEgu60bhQji
# WQ1tygVQK+pKHJ6l/aCnHwZ05/LWUpD9r4VIIflXO7ScA+2GRfS0YW6/aOImYIbq
# yK+p/pQd52MbOoZWeE4wggdoMIIFUKADAgECAhAHm0XlRx2dupD0A91/gwV9MA0G
# CSqGSIb3DQEBCwUAMGkxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2VydCwg
# SW5jLjFBMD8GA1UEAxM4RGlnaUNlcnQgVHJ1c3RlZCBHNCBDb2RlIFNpZ25pbmcg
# UlNBNDA5NiBTSEEzODQgMjAyMSBDQTEwHhcNMjIwNzI4MDAwMDAwWhcNMjUwNjI4
# MjM1OTU5WjBtMQswCQYDVQQGEwJDSDEQMA4GA1UECBMHWnVlcmljaDEWMBQGA1UE
# BxMNQnJ1ZXR0aXNlbGxlbjESMBAGA1UEChMJT250cmV4IEFHMQwwCgYDVQQLEwND
# VE8xEjAQBgNVBAMTCU9udHJleCBBRzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC
# AgoCggIBAN/Ghk02PiOCEsIguFhKkxRt9SeEPQjb+xroF9t34LHul33L6VDYNDIo
# U/WKjTUWT7r/7WqvIEWB+jufC0BYGX0zMm+JW1eJvFWaQ+koKAm3TPY2M2AXkO4C
# KN3+rGAT4DOrC1zyT7w3YI4D9BkrAHd/2JU/NbvUQl/fjobALG4/36PMPGJmzE3y
# q+QKgImHBaZ7CsJ5hrFIuMBaiXoqH9gduSdd9sD986s+3VfzQMi5QrYnnYiJqRTL
# dABCufDQEOgn0R3gma2vrVaQlKXHKP91sGp2lCdNE1F61lpKKzzwAiN4OWhBxlNK
# 19xIg2OV90g53l2BlOK0sG2YVygfGZ/3Z5AF4Nbr/Ps4iVNY2lVW1OTBdpa4/1cO
# q0g4guOoCc8dwNnN99RUpMGlqHRfkc272w8Rzg1S3cwlqfvjie49lvlkK7HnlZxc
# SyI0bQnyk1vOZkPbXb903nmNehqM+BGGcBMKVfarB3XqCJFeedRaorK6gpGKz+Km
# fn4HmI3ENrd1crvhnae9KCOiaV6+F691f7OuyHnYYH2C3UhqMaUY4K4Y+GWlx6EY
# v0zAuKKoSAFNSYXZZipgvUlGSjpUeWw88uOJlJEv383g8DKMtIeguIu/SUgP7mSQ
# Xy525kSrZG3w+qK08q+lNrr6RmNxvSlhWQ+0NYbHsF8Vg66007KFAgMBAAGjggIG
# MIICAjAfBgNVHSMEGDAWgBRoN+Drtjv4XxGG+/5hewiIZfROQjAdBgNVHQ4EFgQU
# 1w/iYCFGy/sHJw0leNX7sZbgMbcwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoG
# CCsGAQUFBwMDMIG1BgNVHR8Ega0wgaowU6BRoE+GTWh0dHA6Ly9jcmwzLmRpZ2lj
# ZXJ0LmNvbS9EaWdpQ2VydFRydXN0ZWRHNENvZGVTaWduaW5nUlNBNDA5NlNIQTM4
# NDIwMjFDQTEuY3JsMFOgUaBPhk1odHRwOi8vY3JsNC5kaWdpY2VydC5jb20vRGln
# aUNlcnRUcnVzdGVkRzRDb2RlU2lnbmluZ1JTQTQwOTZTSEEzODQyMDIxQ0ExLmNy
# bDA+BgNVHSAENzA1MDMGBmeBDAEEATApMCcGCCsGAQUFBwIBFhtodHRwOi8vd3d3
# LmRpZ2ljZXJ0LmNvbS9DUFMwgZQGCCsGAQUFBwEBBIGHMIGEMCQGCCsGAQUFBzAB
# hhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wXAYIKwYBBQUHMAKGUGh0dHA6Ly9j
# YWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFRydXN0ZWRHNENvZGVTaWduaW5n
# UlNBNDA5NlNIQTM4NDIwMjFDQTEuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcN
# AQELBQADggIBAFYUSriK8lc6QRH6PqMcx0y5trKycljYdsWRQVMAz+/CjVbQMJeq
# enUHOy3wM+RwwuEcyRrYsCXNxHat9ghruP0s0qSDgOEHeWjG1ObP0sCk5sdFJTSg
# EnegZziW5NKjs1L/TsMYjOqdxytXoOoNvTM7dGf/YYHZ7/+9N+KpyarXNYIuDiKW
# 8ayvW+npsEGTWy/DiPl8RG9u8h38kPddeK/Fv53YbK7P5iOgskQqAeJBMr3o5ICs
# MVLGpYHsH+pRj5wRirj55L6fwdexp5sH2kSS4NOJR3W+ZYMuFiIiJJQuwjL4/A46
# cqB3M0MjtGy1hEQCnA4hNdvEGRQN71rj/Paa83LPZHkLCOe/oziTnrTeihYcy2OM
# dzfWwreUCGqYYVV9AWwiZ99w6YucRVch94e0+7A02pvLExcCZT+YrTHU6REHGoCk
# zgaVmD4OoakmDt1sl5COvlpbeX79SkuJYBoIefySepRewZnsbZurq4qwnWm1amRE
# heVoX/ONr+oqGH+MruOq4OQQce89VkhWNukI4wSyGKYG6/koOQNK0umm354ds+AA
# 2jhBirUSAio/+SQga9sFlElfxRd8FbZXOEYgDdRcF2GtrAwXvvFBZtubfm7h74Hm
# 3Sy0ID82UKP6HdzbiPUkxl6nuDwiWU9DistUfzLOUBzWz8AzW0onnrdzMYIaYzCC
# Gl8CAQEwfTBpMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4x
# QTA/BgNVBAMTOERpZ2lDZXJ0IFRydXN0ZWQgRzQgQ29kZSBTaWduaW5nIFJTQTQw
# OTYgU0hBMzg0IDIwMjEgQ0ExAhAHm0XlRx2dupD0A91/gwV9MA0GCWCGSAFlAwQC
# AQUAoHwwEAYKKwYBBAGCNwIBDDECMAAwGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcC
# AQQwHAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIE
# IOe62c4qbqopCTInSdacezp7kCMOvWD5YXCZaaYJZe6cMA0GCSqGSIb3DQEBAQUA
# BIICANYw9ySRcfdGh9AJRG9t+aTQF2JTwikrz0deAQ1CY0xVCWYy0UwMc1R5QIa4
# ODIpoQe7PGUWA3Di6sunQ4EVlrz5F3MIIIU0yUwIfLQuRDL0Uah6wOsjdCyso1+t
# 9eC35NU+1IQwA0SmfwhdBsB5oZXrn0OsoJ59cZWEPTxhBfiHBJWpflBvtZMJDSl0
# Ccm79bIZP/IhrZtX9d0hd2bobCUw2HSgTim8gUampRoACBjt1hCczhYiS79mYhsC
# VASEVjhrKTY1Z0A7UnlBoP5ySMXisCEz7KKAGXUIprhmuRpLEAt4JIZdXbvvs4B5
# 6q+64Sqc7gF0UhfrgNFczWU1sitFNSFyJ01Q5ke6lWDBnGuOYE9OaTHxfDK/mx9j
# wSvQPbCip96jvik4JFLNFEaii1dyzapdnS20yx+5Yj0JJrTneSmqGgdBiEq/xfiW
# BSeaZoo5grMjaO9cEy8SAmCOXnHPR0vDMPupMFIjBbX6fq3vlClkXNJz0vz0mXjU
# eNrtC8IIqsGByHUQHefGT252KJjzw7dIMM6XrOJLB3j0w7bQTGlCXWbyEau6QG3a
# QFFS5XzKaTAt1gpFmOktDvZi7W8Nqi5QU4zm0TPHO/+afhuvLUC2orhLXN8k95Vm
# RvBumi35zybhHQfs3jGIaGtKI2RzsaORkUttfVUPFQSlIudRoYIXOTCCFzUGCisG
# AQQBgjcDAwExghclMIIXIQYJKoZIhvcNAQcCoIIXEjCCFw4CAQMxDzANBglghkgB
# ZQMEAgEFADB3BgsqhkiG9w0BCRABBKBoBGYwZAIBAQYJYIZIAYb9bAcBMDEwDQYJ
# YIZIAWUDBAIBBQAEIA2VUe2eC5jlm1uUc0z9xHDPLwrZka9Z4v+AGBrJEHluAhB/
# XsgVDImtRdxGKqupHASuGA8yMDI1MDYyNDA3MTcyNlqgghMDMIIGvDCCBKSgAwIB
# AgIQC65mvFq6f5WHxvnpBOMzBDANBgkqhkiG9w0BAQsFADBjMQswCQYDVQQGEwJV
# UzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xOzA5BgNVBAMTMkRpZ2lDZXJ0IFRy
# dXN0ZWQgRzQgUlNBNDA5NiBTSEEyNTYgVGltZVN0YW1waW5nIENBMB4XDTI0MDky
# NjAwMDAwMFoXDTM1MTEyNTIzNTk1OVowQjELMAkGA1UEBhMCVVMxETAPBgNVBAoT
# CERpZ2lDZXJ0MSAwHgYDVQQDExdEaWdpQ2VydCBUaW1lc3RhbXAgMjAyNDCCAiIw
# DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL5qc5/2lSGrljC6W23mWaO16P2R
# HxjEiDtqmeOlwf0KMCBDEr4IxHRGd7+L660x5XltSVhhK64zi9CeC9B6lUdXM0s7
# 1EOcRe8+CEJp+3R2O8oo76EO7o5tLuslxdr9Qq82aKcpA9O//X6QE+AcaU/byaCa
# gLD/GLoUb35SfWHh43rOH3bpLEx7pZ7avVnpUVmPvkxT8c2a2yC0WMp8hMu60tZR
# 0ChaV76Nhnj37DEYTX9ReNZ8hIOYe4jl7/r419CvEYVIrH6sN00yx49boUuumF9i
# 2T8UuKGn9966fR5X6kgXj3o5WHhHVO+NBikDO0mlUh902wS/Eeh8F/UFaRp1z5Sn
# ROHwSJ+QQRZ1fisD8UTVDSupWJNstVkiqLq+ISTdEjJKGjVfIcsgA4l9cbk8Smlz
# ddh4EfvFrpVNnes4c16Jidj5XiPVdsn5n10jxmGpxoMc6iPkoaDhi6JjHd5ibfdp
# 5uzIXp4P0wXkgNs+CO/CacBqU0R4k+8h6gYldp4FCMgrXdKWfM4N0u25OEAuEa3J
# yidxW48jwBqIJqImd93NRxvd1aepSeNeREXAu2xUDEW8aqzFQDYmr9ZONuc2MhTM
# izchNULpUEoA6Vva7b1XCB+1rxvbKmLqfY/M/SdV6mwWTyeVy5Z/JkvMFpnQy5wR
# 14GJcv6dQ4aEKOX5AgMBAAGjggGLMIIBhzAOBgNVHQ8BAf8EBAMCB4AwDAYDVR0T
# AQH/BAIwADAWBgNVHSUBAf8EDDAKBggrBgEFBQcDCDAgBgNVHSAEGTAXMAgGBmeB
# DAEEAjALBglghkgBhv1sBwEwHwYDVR0jBBgwFoAUuhbZbU2FL3MpdpovdYxqII+e
# yG8wHQYDVR0OBBYEFJ9XLAN3DigVkGalY17uT5IfdqBbMFoGA1UdHwRTMFEwT6BN
# oEuGSWh0dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFRydXN0ZWRHNFJT
# QTQwOTZTSEEyNTZUaW1lU3RhbXBpbmdDQS5jcmwwgZAGCCsGAQUFBwEBBIGDMIGA
# MCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wWAYIKwYBBQUH
# MAKGTGh0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFRydXN0ZWRH
# NFJTQTQwOTZTSEEyNTZUaW1lU3RhbXBpbmdDQS5jcnQwDQYJKoZIhvcNAQELBQAD
# ggIBAD2tHh92mVvjOIQSR9lDkfYR25tOCB3RKE/P09x7gUsmXqt40ouRl3lj+8Qi
# oVYq3igpwrPvBmZdrlWBb0HvqT00nFSXgmUrDKNSQqGTdpjHsPy+LaalTW0qVjvU
# BhcHzBMutB6HzeledbDCzFzUy34VarPnvIWrqVogK0qM8gJhh/+qDEAIdO/KkYes
# LyTVOoJ4eTq7gj9UFAL1UruJKlTnCVaM2UeUUW/8z3fvjxhN6hdT98Vr2FYlCS7M
# bb4Hv5swO+aAXxWUm3WpByXtgVQxiBlTVYzqfLDbe9PpBKDBfk+rabTFDZXoUke7
# zPgtd7/fvWTlCs30VAGEsshJmLbJ6ZbQ/xll/HjO9JbNVekBv2Tgem+mLptR7yIr
# paidRJXrI+UzB6vAlk/8a1u7cIqV0yef4uaZFORNekUgQHTqddmsPCEIYQP7xGxZ
# BIhdmm4bhYsVA6G2WgNFYagLDBzpmk9104WQzYuVNsxyoVLObhx3RugaEGru+Soj
# W4dHPoWrUhftNpFC5H7QEY7MhKRyrBe7ucykW7eaCuWBsBb4HOKRFVDcrZgdwaSI
# qMDiCLg4D+TPVgKx2EgEdeoHNHT9l3ZDBD+XgbF+23/zBjeCtxz+dL/9NWR6P2eZ
# Ri7zcEO1xwcdcqJsyz/JceENc2Sg8h3KeFUCS7tpFk7CrDqkMIIGrjCCBJagAwIB
# AgIQBzY3tyRUfNhHrP0oZipeWzANBgkqhkiG9w0BAQsFADBiMQswCQYDVQQGEwJV
# UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQu
# Y29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwHhcNMjIwMzIz
# MDAwMDAwWhcNMzcwMzIyMjM1OTU5WjBjMQswCQYDVQQGEwJVUzEXMBUGA1UEChMO
# RGlnaUNlcnQsIEluYy4xOzA5BgNVBAMTMkRpZ2lDZXJ0IFRydXN0ZWQgRzQgUlNB
# NDA5NiBTSEEyNTYgVGltZVN0YW1waW5nIENBMIICIjANBgkqhkiG9w0BAQEFAAOC
# Ag8AMIICCgKCAgEAxoY1BkmzwT1ySVFVxyUDxPKRN6mXUaHW0oPRnkyibaCwzIP5
# WvYRoUQVQl+kiPNo+n3znIkLf50fng8zH1ATCyZzlm34V6gCff1DtITaEfFzsbPu
# K4CEiiIY3+vaPcQXf6sZKz5C3GeO6lE98NZW1OcoLevTsbV15x8GZY2UKdPZ7Gnf
# 2ZCHRgB720RBidx8ald68Dd5n12sy+iEZLRS8nZH92GDGd1ftFQLIWhuNyG7QKxf
# st5Kfc71ORJn7w6lY2zkpsUdzTYNXNXmG6jBZHRAp8ByxbpOH7G1WE15/tePc5Os
# LDnipUjW8LAxE6lXKZYnLvWHpo9OdhVVJnCYJn+gGkcgQ+NDY4B7dW4nJZCYOjgR
# s/b2nuY7W+yB3iIU2YIqx5K/oN7jPqJz+ucfWmyU8lKVEStYdEAoq3NDzt9KoRxr
# OMUp88qqlnNCaJ+2RrOdOqPVA+C/8KI8ykLcGEh/FDTP0kyr75s9/g64ZCr6dSgk
# Qe1CvwWcZklSUPRR8zZJTYsg0ixXNXkrqPNFYLwjjVj33GHek/45wPmyMKVM1+mY
# Slg+0wOI/rOP015LdhJRk8mMDDtbiiKowSYI+RQQEgN9XyO7ZONj4KbhPvbCdLI/
# Hgl27KtdRnXiYKNYCQEoAA6EVO7O6V3IXjASvUaetdN2udIOa5kM0jO0zbECAwEA
# AaOCAV0wggFZMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFLoW2W1NhS9z
# KXaaL3WMaiCPnshvMB8GA1UdIwQYMBaAFOzX44LScV1kTN8uZz/nupiuHA9PMA4G
# A1UdDwEB/wQEAwIBhjATBgNVHSUEDDAKBggrBgEFBQcDCDB3BggrBgEFBQcBAQRr
# MGkwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBBBggrBgEF
# BQcwAoY1aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0VHJ1c3Rl
# ZFJvb3RHNC5jcnQwQwYDVR0fBDwwOjA4oDagNIYyaHR0cDovL2NybDMuZGlnaWNl
# cnQuY29tL0RpZ2lDZXJ0VHJ1c3RlZFJvb3RHNC5jcmwwIAYDVR0gBBkwFzAIBgZn
# gQwBBAIwCwYJYIZIAYb9bAcBMA0GCSqGSIb3DQEBCwUAA4ICAQB9WY7Ak7ZvmKlE
# IgF+ZtbYIULhsBguEE0TzzBTzr8Y+8dQXeJLKftwig2qKWn8acHPHQfpPmDI2Avl
# XFvXbYf6hCAlNDFnzbYSlm/EUExiHQwIgqgWvalWzxVzjQEiJc6VaT9Hd/tydBTX
# /6tPiix6q4XNQ1/tYLaqT5Fmniye4Iqs5f2MvGQmh2ySvZ180HAKfO+ovHVPulr3
# qRCyXen/KFSJ8NWKcXZl2szwcqMj+sAngkSumScbqyQeJsG33irr9p6xeZmBo1aG
# qwpFyd/EjaDnmPv7pp1yr8THwcFqcdnGE4AJxLafzYeHJLtPo0m5d2aR8XKc6UsC
# Uqc3fpNTrDsdCEkPlM05et3/JWOZJyw9P2un8WbDQc1PtkCbISFA0LcTJM3cHXg6
# 5J6t5TRxktcma+Q4c6umAU+9Pzt4rUyt+8SVe+0KXzM5h0F4ejjpnOHdI/0dKNPH
# +ejxmF/7K9h+8kaddSweJywm228Vex4Ziza4k9Tm8heZWcpw8De/mADfIBZPJ/tg
# ZxahZrrdVcA6KYawmKAr7ZVBtzrVFZgxtGIJDwq9gdkT/r+k0fNX2bwE+oLeMt8E
# ifAAzV3C+dAjfwAL5HYCJtnwZXZCpimHCUcr5n8apIUP/JiW9lVUKx+A+sDyDivl
# 1vupL0QVSucTDh3bNzgaoSv27dZ8/DCCBY0wggR1oAMCAQICEA6bGI750C3n79tQ
# 4ghAGFowDQYJKoZIhvcNAQEMBQAwZTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERp
# Z2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTEkMCIGA1UEAxMb
# RGlnaUNlcnQgQXNzdXJlZCBJRCBSb290IENBMB4XDTIyMDgwMTAwMDAwMFoXDTMx
# MTEwOTIzNTk1OVowYjELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IElu
# YzEZMBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTEhMB8GA1UEAxMYRGlnaUNlcnQg
# VHJ1c3RlZCBSb290IEc0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA
# v+aQc2jeu+RdSjwwIjBpM+zCpyUuySE98orYWcLhKac9WKt2ms2uexuEDcQwH/Mb
# pDgW61bGl20dq7J58soR0uRf1gU8Ug9SH8aeFaV+vp+pVxZZVXKvaJNwwrK6dZlq
# czKU0RBEEC7fgvMHhOZ0O21x4i0MG+4g1ckgHWMpLc7sXk7Ik/ghYZs06wXGXuxb
# Grzryc/NrDRAX7F6Zu53yEioZldXn1RYjgwrt0+nMNlW7sp7XeOtyU9e5TXnMcva
# k17cjo+A2raRmECQecN4x7axxLVqGDgDEI3Y1DekLgV9iPWCPhCRcKtVgkEy19sE
# cypukQF8IUzUvK4bA3VdeGbZOjFEmjNAvwjXWkmkwuapoGfdpCe8oU85tRFYF/ck
# XEaPZPfBaYh2mHY9WV1CdoeJl2l6SPDgohIbZpp0yt5LHucOY67m1O+SkjqePdwA
# 5EUlibaaRBkrfsCUtNJhbesz2cXfSwQAzH0clcOP9yGyshG3u3/y1YxwLEFgqrFj
# GESVGnZifvaAsPvoZKYz0YkH4b235kOkGLimdwHhD5QMIR2yVCkliWzlDlJRR3S+
# Jqy2QXXeeqxfjT/JvNNBERJb5RBQ6zHFynIWIgnffEx1P2PsIV/EIFFrb7GrhotP
# wtZFX50g/KEexcCPorF+CiaZ9eRpL5gdLfXZqbId5RsCAwEAAaOCATowggE2MA8G
# A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFOzX44LScV1kTN8uZz/nupiuHA9PMB8G
# A1UdIwQYMBaAFEXroq/0ksuCMS1Ri6enIZ3zbcgPMA4GA1UdDwEB/wQEAwIBhjB5
# BggrBgEFBQcBAQRtMGswJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0
# LmNvbTBDBggrBgEFBQcwAoY3aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL0Rp
# Z2lDZXJ0QXNzdXJlZElEUm9vdENBLmNydDBFBgNVHR8EPjA8MDqgOKA2hjRodHRw
# Oi8vY3JsMy5kaWdpY2VydC5jb20vRGlnaUNlcnRBc3N1cmVkSURSb290Q0EuY3Js
# MBEGA1UdIAQKMAgwBgYEVR0gADANBgkqhkiG9w0BAQwFAAOCAQEAcKC/Q1xV5zhf
# oKN0Gz22Ftf3v1cHvZqsoYcs7IVeqRq7IviHGmlUIu2kiHdtvRoU9BNKei8ttzjv
# 9P+Aufih9/Jy3iS8UgPITtAq3votVs/59PesMHqai7Je1M/RQ0SbQyHrlnKhSLSZ
# y51PpwYDE3cnRNTnf+hZqPC/Lwum6fI0POz3A8eHqNJMQBk1RmppVLC4oVaO7KTV
# Peix3P0c2PR3WlxUjG/voVA9/HYJaISfb8rbII01YBwCA8sgsKxYoA5AY8WYIsGy
# WfVVa88nq2x2zm8jLfR+cWojayL/ErhULSd+2DrZ8LaHlv1b0VysGMNNn3O3Aamf
# V6peKOK5lDGCA3YwggNyAgEBMHcwYzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkRp
# Z2lDZXJ0LCBJbmMuMTswOQYDVQQDEzJEaWdpQ2VydCBUcnVzdGVkIEc0IFJTQTQw
# OTYgU0hBMjU2IFRpbWVTdGFtcGluZyBDQQIQC65mvFq6f5WHxvnpBOMzBDANBglg
# hkgBZQMEAgEFAKCB0TAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZI
# hvcNAQkFMQ8XDTI1MDYyNDA3MTcyNlowKwYLKoZIhvcNAQkQAgwxHDAaMBgwFgQU
# 29OF7mLb0j575PZxSFCHJNWGW0UwLwYJKoZIhvcNAQkEMSIEIKYgjV8w/e4NiXl+
# uIbiw3Roj1yL3QrD7v2bNUgyHKdQMDcGCyqGSIb3DQEJEAIvMSgwJjAkMCIEIHZ2
# n6jyYy8fQws6IzCu1lZ1/tdz2wXWZbkFk5hDj5rbMA0GCSqGSIb3DQEBAQUABIIC
# AJ8uKf8E7VCrb9F77uLWxKK7ohxm03KNKK1CgE9WmGw3qy5G1lduMOwHb1k5OfdA
# bcPybZB3Wv1tc5gn3PbZuG1eDpZL7VvzMlG+TrzhxcH9PgEihYto8RzjGbC88gqc
# rE1+Aq9W5IPZ76JBmf7HBdH92doi2uFtR4+9QLQNhKR1tKCw7iI6Faxhs9496YjL
# pNoaru9uxxgL++VQ1k9X7FGMvg5EustV5gHO25LhHy7q7SXv5lIxETRXZHJ9qaVk
# teyT8/6Ax1YbQ5mLOkvsYJXevHffrfgPhnLPS/qVYYgUcVLUZq04Dtnv9k03VcFJ
# CrXB8W+l+x+msDxl4HNzb6LET0T7445q3TQ8RkoCXn6N1dxWLF5jJcqVH00D7Uww
# fj0JpCNyB7BDYPEjpsQxk4Xv1ug4X2FXp4ghNUqlAcfu8BCm3jep8Z3HKKTeVuwG
# rTrinMwROEI6qfrFzT25+da6s2sxWEDbk+/D7GNDZnY9tgMAKiPHO9BljeP0XSQL
# yVenK2iLGbIdkBqHc+Va2OvlNIgjRzPdbXDi7QCvId7QqZC6KE4TVKGYAhCJK5Fo
# qat0UbX4z+RvYCRHeq/x60zL0Ee/4u2Vp7Zjw6zKM0LS/jmlxXf3Z0ThQDTZ8x4m
# 0w4QW9bCSJAhMeishX6j+Fo4j3V06js+O+3WbtGMoZiz
# SIG # End signature block
