$InvocationPath = Split-Path -Path $MyInvocation.MyCommand.Path -Parent

Add-Type -TypeDefinition @'

using System;
using System.Runtime.InteropServices;

namespace DynaLoadAPI
{
    public class NtPowerCall
    {
        public enum SYSTEM_POWER_STATE
        {
            PowerSystemUnspecified = 0,
            PowerSystemWorking = 1,
            PowerSystemSleeping1 = 2,
            PowerSystemSleeping2 = 3,
            PowerSystemSleeping3 = 4,
            PowerSystemHibernate = 5,
            PowerSystemShutdown = 6,
            PowerSystemMaximum = 7
        }

        [StructLayout(LayoutKind.Sequential)]
        public struct BATTERY_REPORTING_SCALE
        {                                                   // typedef struct {
            public uint Granularity;                        //    DWORD       Granularity;
            public uint Capacity;                           //    DWORD       Capacity;
        }                                                   //} BATTERY_REPORTING_SCALE, *PBATTERY_REPORTING_SCALE;

        [StructLayout(LayoutKind.Sequential)]
        public struct SYSTEM_POWER_CAPABILITIES
        {                                                   // typedef struct {
                                                            //   // Misc supported system features
            public byte PowerButtonPresent;                 //   BOOLEAN                 PowerButtonPresent;
            public byte SleepButtonPresent;                 //   BOOLEAN                 SleepButtonPresent;
            public byte LidPresent;                         //   BOOLEAN                 LidPresent;
            public byte SystemS1;                           //   BOOLEAN                 SystemS1;
            public byte SystemS2;                           //   BOOLEAN                 SystemS2;
            public byte SystemS3;                           //   BOOLEAN                 SystemS3;
            public byte SystemS4;           // hibernate    //   BOOLEAN                 SystemS4;
            public byte SystemS5;           // off          //   BOOLEAN                 SystemS5;
            public byte HiberFilePresent;                   //   BOOLEAN                 HiberFilePresent;
            public byte FullWake;                           //   BOOLEAN                 FullWake;
            public byte VideoDimPresent;                    //   BOOLEAN                 VideoDimPresent;
            public byte ApmPresent;                         //   BOOLEAN                 ApmPresent;
            public byte UpsPresent;                         //   BOOLEAN                 UpsPresent;

                                                            //   // Processors
            public byte ThermalControl;                     //   BOOLEAN                 ThermalControl;
            public byte ProcessorThrottle;                  //   BOOLEAN                 ProcessorThrottle;
            public byte ProcessorMinThrottle;               //   BYTE                    ProcessorMinThrottle;
            public byte ProcessorMaxThrottle;               //   BYTE                    ProcessorMaxThrottle;
            public byte FastSystemS4;                       //   BOOLEAN                 FastSystemS4;
            public byte Hiberboot;                          //   BOOLEAN                 HiberBoot;
            public byte WakeAlarmPresent;                   //   BOOLEAN                 WakeAlarmPresent;
            public byte AoAc;                               //   BOOLEAN                 AoAc;

                                                            //   // Disk
            public byte DiskSpinDown;                       //   BOOLEAN                 DiskSpinDown;

                                                            //   // HiberFile
            public byte HiberFileType;                      //   BYTE                    spare3[8];
            public byte AoAcConnectivitySupported;          //
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
            public byte[] spare3;

                                                            //   // System Battery
            public byte SystemBatteriesPresent;             //   BOOLEAN                 SystemBatteriesPresent;
            public byte BatteriesAreShortTerm;              //   BOOLEAN                 BatteriesAreShortTerm;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
            public BATTERY_REPORTING_SCALE[]  BatteryScale; //   BATTERY_REPORTING_SCALE BatteryScale[3];

                                                            //   // Wake
            public SYSTEM_POWER_STATE AcOnLineWake;         //   SYSTEM_POWER_STATE      AcOnLineWake;
            public SYSTEM_POWER_STATE SoftLidWake;          //   SYSTEM_POWER_STATE      SoftLidWake;
            public SYSTEM_POWER_STATE RtcWake;              //   SYSTEM_POWER_STATE      RtcWake;
            public SYSTEM_POWER_STATE MinDeviceWakeState;   //   SYSTEM_POWER_STATE      MinDeviceWakeState;
            public SYSTEM_POWER_STATE DefaultLowLatencyWake;//   SYSTEM_POWER_STATE      DefaultLowLatencyWake;
                                                            // } SYSTEM_POWER_CAPABILITIES, *PSYSTEM_POWER_CAPABILITIES;
        }

        [System.Runtime.InteropServices.DllImport("PowrProf.dll")]
        static extern bool GetPwrCapabilities(out SYSTEM_POWER_CAPABILITIES rf);

        public NtPowerCall()
        {
            bool _blRetVal = false;

            _blRetVal = _pfnGetPwrCapabilities();
        }

        public static bool classInitialized;
        public static SYSTEM_POWER_CAPABILITIES SystemPowerCapabilities;

        static bool _pfnGetPwrCapabilities()
        {
            bool _blRetVal = false;
            SYSTEM_POWER_CAPABILITIES _Data;

            try
            {
                _blRetVal = GetPwrCapabilities(out _Data);
                SystemPowerCapabilities = _Data;
                classInitialized = true;
            } catch {
            }


            return (_blRetVal);
        }


    } // End -- NtPowerCall Class

    public class Kernel32DllCall
    {
        [System.Runtime.InteropServices.DllImport("kernel32.dll")]
        static extern bool Wow64DisableWow64FsRedirection( out int OldValue );

        [System.Runtime.InteropServices.DllImport("kernel32.dll")]
        static extern bool Wow64RevertWow64FsRedirection( int OldValue );

        [System.Runtime.InteropServices.DllImport("kernel32.dll")]
        static extern int SetThreadExecutionState( int esFlags );

        public static int      ptrWow64OldValue;
        public static bool     blValid_Wow64OldValue;

        public Kernel32DllCall()
        {
            // Initialize for the class member(s)
            blValid_Wow64OldValue = false;
        }

        // Public Functions for PowerShell
        public bool dll_DisableWow64FsRedirection()
        {
            bool _blRetVal = false;

            if( blValid_Wow64OldValue == false ){
                _blRetVal = Wow64DisableWow64FsRedirection( out ptrWow64OldValue );
                if( _blRetVal != false ){
                    blValid_Wow64OldValue = true;
                }            
            } else {
                _blRetVal = true;
            }

            return( _blRetVal );
        }

        public bool dll_RevertWow64FsRedirection()
        {
            bool _blRetVal = false;
            if( blValid_Wow64OldValue != false ){
                _blRetVal = Wow64RevertWow64FsRedirection( ptrWow64OldValue );
                if( _blRetVal != false ){
                    blValid_Wow64OldValue = false;
                }
            } else {
                _blRetVal = true;
            }              

            return( _blRetVal );
        }

        public int dll_SetThreadExecutionState( int _iesFlags )
        {
            int _iRetVal = 0;

            _iRetVal  = SetThreadExecutionState( _iesFlags );

            return( _iRetVal );
        }

    } // End -- Kernel32DllCall Class
}

'@

$SysPwrCaps = New-Object -TypeName DynaLoadAPI.NtPowerCall
$Kern32Dll  = New-Object -TypeName DynaLoadAPI.Kernel32DllCall


# Get processor architecture (todo: support ARM64 x86 emulation)
#
function Get-ProcessorArchitecture
{
    if (($env:PROCESSOR_ARCHITECTURE -eq "amd64") -or ($env:PROCESSOR_ARCHITEW6432 -eq "amd64")) {
        return "amd64"
    } else {
        return "x86"
    }
} # EOF


function Clear-RecycleBin
{
    $Shell = New-Object -ComObject Shell.Application 
    $RecBin = $Shell.Namespace(0xA) 
    $RecBin.Items() | %{Remove-Item $_.Path -Recurse -Confirm:$false}
} # EOF


function Get-CSSupported
{
    $blRetval = $false

    if( $SysPwrCaps::classInitialized -eq $true ){
        if( $SysPwrCaps::SystemPowerCapabilities.AoAc -ne 0 ){
            $blRetVal = $true
        }
    }

    return $blRetVal

} # EOF

Function Get-FreeDiskSpace
{
    $disk = Get-WmiObject Win32_LogicalDisk  -Filter "DeviceID='C:'" | Select-Object Size,FreeSpace
    $freeSpace =  "{0:N2}" -f ($disk.FreeSpace / 1073741824)
    return $freeSpace
} # EOF


function Get-FastStartupSupported
{
    $blRetVal = $false

    if( $SysPwrCaps::classInitialized -eq $true ){
        if( ($SysPwrCaps::SystemPowerCapabilities.SystemS4 -ne 0) -and
            ($SysPwrCaps::SystemPowerCapabilities.HiberFilePresent -ne 0) -and
            ($SysPwrCaps::SystemPowerCapabilities.Hiberboot -ne 0) ){
            $blRetVal = $true
        }
    }

    return $blRetVal
} # EOF

function Test-FastStartupConfigState    # True- FS Configuration is good, False - System Configuration is something wrong
{
param(
    [parameter(Mandatory=$false)][switch]$SkipArm64Platform
)
    $_blRetVal = $false

    if( $SkipArm64Platform ){
        if( ($env:PROCESSOR_ARCHITECTURE -eq "ARM64") -or ($env:PROCESSOR_ARCHITEW6432 -eq "ARM64") ){
            $_blRetVal = $true
            return $_blRetVal
        }
    }

    # Check  System Capabilities/Registry values and OS capabilities
    $_blRetVal = Get-FastStartupSupported
    if( $_blRetVal ){
        # FastStartup Capable system

        # Check Registry Setting(s)
        #
        $_blSettingWrong = $false
        try{
            $_RegValue = Get-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Session Manager\Power" -Name "HiberbootEnabled" -ErrorAction SilentlyContinue

            if( $_RegValue ){
                ## Key already exists
                if( $_RegValue.HiberbootEnabled -ne 1 ){
                    $_blSettingWrong = $true
                }
            } else {
                $_blSettingWrong = $true
            }
        } catch { }

        if( $_blSettingWrong ){
            $_blRetVal = $false
        }
    } else {
        # No FastStartup Capable system
        $_blRetVal = $true
    }


    return $_blRetVal
} # EOF

function Repair-FastStartupConfigState
{
    # Check  System Capabilities/Registry values and OS capabilities
    $blRetVal = Get-FastStartupSupported
    if( $blRetVal ){
        # System has the capabilities for FastStartup feature

        # Update Registry for enabling FS feature - Force
        $_iex_cmd = '. REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Power" /v HiberbootEnabled /t REG_DWORD /d 00000001 /f'
        try{
            Invoke-Expression -Command "$($_iex_cmd)" -ErrorAction SilentlyContinue  2>&1
            $blRetVal = $true
        } catch { }

    }

    return $blRetVal
} # EOF

function Get-StandbySupported
{
    $blRetVal = $false

    if( $SysPwrCaps::classInitialized -eq $true ){
        if( ($SysPwrCaps::SystemPowerCapabilities.SystemS3 -ne 0) ){
            $blRetVal = $true
        }
    }

    return $blRetVal
} # EOF

function Get-HibernationSupported
{
    $blRetVal = $false

    if( $SysPwrCaps::classInitialized -eq $true ){
        if( ($SysPwrCaps::SystemPowerCapabilities.SystemS4 -ne 0) -and
            ($SysPwrCaps::SystemPowerCapabilities.HiberFilePresent -ne 0) ){
            $blRetVal = $true
        }
    }

    return $blRetVal
} # EOF

function Get-BatteryOperationSupported
{
    $blRetVal = $false

    if( $SysPwrCaps::classInitialized -eq $true ){
        if( ($SysPwrCaps::SystemPowerCapabilities.SystemBatteriesPresent -ne 0) -and
            ($SysPwrCaps::SystemPowerCapabilities.BatteriesAreShortTerm  -eq 0) ){
            $blRetVal = $true
        }
    }

    return $blRetVal
} # EOF


function DisableWow64FsRedirection
{
    if( $Kern32Dll ){
        $blRetVal = $Kern32Dll.dll_DisableWow64FsRedirection();
    }

} # EOF

function RevertWow64FsRedirection
{
    if( $Kern32Dll ){
        $blRetVal = $Kern32Dll.dll_RevertWow64FsRedirection();
    }

} # EOF

function Test-PathRegEXE
{
    param(
        [parameter(position=0, Mandatory=$true)]  $_RegLocation,
        [parameter(position=1, Mandatory=$false)] $_RegValueName
    )

    $_blRetVal = $false
    $_iex_cmd2 = ". reg query " + '"' + $_RegLocation + '"'
    if( $_RegValueName ){
        $_iex_cmd2 = $_iex_cmd2 + ' /v ' + '"' + $_RegValueName + '"'
    }

    try{
        $_contents = Invoke-Expression -Command "$($_iex_cmd2)" -ErrorAction SilentlyContinue 2>&1
        if( $LASTEXITCODE -eq 0 ){
            # If the query is succeeded by 'Reg.exe', the return code will be set as '0', otherwise '1'
            $_blRetVal = $true
        }
    } catch {}

    return( $_blRetVal )
}

function Internal_SetThreadExecutionState
{
    param(
        [parameter(Mandatory=$true)]$esFlags
    )

    $_lRetVal = 0


    if( $Kern32Dll ){
        $_lRetVal = $Kern32Dll.dll_SetThreadExecutionState( $esFlags )
    }

    return( $_lRetVal )
}

function TryToSetProcessKeepAlive {

    $_lRetVal = 0

    $_Flags = ( 0x80000000 -bor 0x00000002 -bor 0x00000001 )
    try{
        $_lRetVal = Internal_SetThreadExecutionState -esFlags $_Flags
    } catch {}
}


Export-ModuleMember -Function Get-ProcessorArchitecture
Export-ModuleMember -Function Clear-RecycleBin
Export-ModuleMember -Function Get-CSSupported
Export-ModuleMember -Function Get-FreeDiskSpace
Export-ModuleMember -Function Get-FastStartupSupported
Export-ModuleMember -Function Test-FastStartupConfigState
Export-ModuleMember -Function Repair-FastStartupConfigState
Export-ModuleMember -Function Get-StandbySupported
Export-ModuleMember -Function Get-HibernationSupported
Export-ModuleMember -Function Get-BatteryOperationSupported
Export-ModuleMember -Function DisableWow64FsRedirection
Export-ModuleMember -Function RevertWow64FsRedirection
Export-ModuleMember -Function Test-PathRegEXE
Export-ModuleMember -Function TryToSetProcessKeepAlive

# SIG # Begin signature block
# MIIPFgYJKoZIhvcNAQcCoIIPBzCCDwMCAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCC2Ue3u1lPhjjsC
# RZV7CRyeMwLDLINa8QYp/TgBsC7TN6CCDBEwggV2MIIEXqADAgECAhMzAAAFdY/t
# ZZABUyRhAAEAAAV1MA0GCSqGSIb3DQEBCwUAMHkxCzAJBgNVBAYTAlVTMRMwEQYD
# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy
# b3NvZnQgQ29ycG9yYXRpb24xIzAhBgNVBAMTGk1pY3Jvc29mdCBUZXN0aW5nIFBD
# QSAyMDEwMB4XDTIzMDIxNjE4MzM0MloXDTI0MDUxNjE4MzM0MlowdDELMAkGA1UE
# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc
# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEeMBwGA1UEAxMVTWljcm9zb2Z0
# IENvcnBvcmF0aW9uMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAorUr
# gCj5FlJ+7vhjx+0mGUFTOka+WKbcrK7B95uaztftwdrnWN27Jslwy9AWtQJY3826
# OWRV4ajdLBVUB94DUgcw2heDY71cYIC7jcMwpwV6N8FHJN+OwTBzkAUWWwVarEPb
# 957z09miEYlJtASbQ8Sf61Beo2h0h82SRLPU4Q1F4CRN9WlXyn+6u5kulYIUUC0c
# bQP6qe+yukueASohANo9BRI/M6bAebYfvFookHLdybZdNFMo7sr1Bt6mCYdHPlyO
# sFYBXyZd+iQ3P6LQnjeZl9aFXXp6aFW88QawMKk/8ce2YTKAFG8y31/0IQWsAZw/
# iyhPJ9e9f9z8xdAWAQIDAQABo4IB+jCCAfYwPAYJKwYBBAGCNxUHBC8wLQYlKwYB
# BAGCNxUIg8+JTa3yAoWhnwyC+sp9geH7dIFPi/M4gp/5IgIBZAIBFTApBgkrBgEE
# AYI3FQoEHDAaMAwGCisGAQQBgjcKAxUwCgYIKwYBBQUHAwMwDgYDVR0PAQH/BAQD
# AgeAMB8GA1UdJQQYMBYGCCsGAQUFBwMDBgorBgEEAYI3CgMVMB0GA1UdDgQWBBTR
# /PEuPn+0r5mHo7syx14SmaNUSDAfBgNVHSMEGDAWgBS/ZaKrb3WjTkWWVwXPOYf0
# wBUcHDBcBgNVHR8EVTBTMFGgT6BNhktodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v
# cGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUZXN0aW5nJTIwUENBJTIwMjAxMCgxKS5j
# cmwwaQYIKwYBBQUHAQEEXTBbMFkGCCsGAQUFBzAChk1odHRwOi8vd3d3Lm1pY3Jv
# c29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRlc3RpbmclMjBQQ0El
# MjAyMDEwKDEpLmNydDBDBgkrBgEEAYI3FAIENh40AE0AUwBJAFQAVABlAHMAdABD
# AG8AZABlAFMAaQBnAG4AaQBuAGcAUwBoAGEAMgAtAEMAUzAMBgNVHRMBAf8EAjAA
# MA0GCSqGSIb3DQEBCwUAA4IBAQAg7Ej3KuUo0ndCL+pCb2eqn8rz77O2j90YQr2Y
# MhMsinWGq1OTp3LZfPNeI3G2BXFtvjIE++ZXjLRa/bnReVrq2p/PikV7zq0WpWzS
# gb1TBvmg80mt7Pgq/RcuNfBlO5t1wRKnmmoR3zZLHmJrXCKKSL55CyL2ZYvi+ilO
# UgcBn4E7fTGAGr41x2aKt7BhnUbiYaVwGdyYKnJv9q+6AC+fI7xnoX2mbO63zWl8
# Se9LfD7P4S/03jwAafqPiHXgkAmw4cgsK4kX9pTS/sYb336dvlilbmcAhtGf1cQ0
# /5h279IUhQb53WulhCAZ3H42KxtetiyNi8MNLoEWK9wh/hb2MIIGkzCCBHugAwIB
# AgITMwAAAC01ekaIyQdx2AAAAAAALTANBgkqhkiG9w0BAQsFADCBkDELMAkGA1UE
# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc
# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE6MDgGA1UEAxMxTWljcm9zb2Z0
# IFRlc3RpbmcgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMDEy
# MTAyMDQzMjBaFw0zNTA2MTcyMTA0MTFaMHkxCzAJBgNVBAYTAlVTMRMwEQYDVQQI
# EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv
# ZnQgQ29ycG9yYXRpb24xIzAhBgNVBAMTGk1pY3Jvc29mdCBUZXN0aW5nIFBDQSAy
# MDEwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvzxggau+7P/XF2Py
# pkLRE2KcsBfOukYaeyIuVXOaVLnG1NHKmP53Rw2OnfBezPhU7/LPKtRi8ak0CgTX
# xQWG8hD1TdOWCGaF2wJ9GNzieiOnmildrnkYzwxj8Br/gampQz+pC7lR8bNIOvxE
# Ll8RxVY6/8oOzYgIwf3H1fU+7+pOG3KLI71FN54fcMGnybggc+3zbD2LIQXPdxL+
# odwH6Q1beAlsMlUQR9A3yMf3+nP+RjTkVhaoN2RT1jX7w4C2jraGkaEQ1sFK9uN6
# 1BEKst4unhCX4IGuEl2IAV3MpMQoUpxg8ArmiK9L6VeK7KMPNx4p9l0h09faXQ7J
# TtuNbQIDAQABo4IB+jCCAfYwDgYDVR0PAQH/BAQDAgGGMBIGCSsGAQQBgjcVAQQF
# AgMBAAEwIwYJKwYBBAGCNxUCBBYEFOqfXzO20F+erestpsECu0A4y+e1MB0GA1Ud
# DgQWBBS/ZaKrb3WjTkWWVwXPOYf0wBUcHDBUBgNVHSAETTBLMEkGBFUdIAAwQTA/
# BggrBgEFBQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9Eb2Nz
# L1JlcG9zaXRvcnkuaHRtMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMA8GA1Ud
# EwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUowEEfjCIM+u5MZzK64V2Z/xltNEwWQYD
# VR0fBFIwUDBOoEygSoZIaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwv
# cHJvZHVjdHMvTWljVGVzUm9vQ2VyQXV0XzIwMTAtMDYtMTcuY3JsMIGNBggrBgEF
# BQcBAQSBgDB+ME0GCCsGAQUFBzAChkFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v
# cGtpL2NlcnRzL01pY1Rlc1Jvb0NlckF1dF8yMDEwLTA2LTE3LmNydDAtBggrBgEF
# BQcwAYYhaHR0cDovL29uZW9jc3AubWljcm9zb2Z0LmNvbS9vY3NwMA0GCSqGSIb3
# DQEBCwUAA4ICAQAntNCFsp7MD6QqU3PVbdrXMQDI9v9jyPYBEbUYktrctPmvJuj8
# Snm9wWewiAN5Zc81NQVYjuKDBpb1un4SWVCb4PDVPZ0J87tGzYe9dOJ30EYGeiIa
# aStkLLmLOYAM6oInIqIwVyIk2SE/q2lGt8OvwcZevNmPkVYjk6nyJi5EdvS6ciPR
# mW9bRWRT4pWU8bZIQL938LE4lHOQAixrAQiWes5Szp2U85E0nLdaDr5w/I28J/Z1
# +4zW1Nao1prVCOqrosnoNUfVf1kvswfW3FY2l1PiAYp8sGyO57GaztXdBoEOBcDL
# edfcPra9+NLdEF36NkE0g+9dbokFY7KxhUJ8WpMiCmN4yj9LKFLvQbctGMJJY9Ew
# HFifm2pgaiaafKF1Gyz+NruJzEEgpysMo/f9AVBQ/qCdPQQGEWp3QDIaef4ts9QT
# x+RmDKCBDMTFLgFmmhbtUY0JWjLkKn7soz/LIcDUle/p5TiFD4VhfZnAcvYQHXfu
# slnyp+yuhWzASnAQNnOIO6fc1JFIwkDkcM+k/TspfAajzHooSAwXkrOWrjRDV6wI
# 0YzMVHrEyQ0hZ5NnIXbL3lrTkOPjf3NBu1naSNEaySduStDbFVjV3TXoENEnZiug
# JKYSwmhzoYHM1ngipN5rNdqJiK5ukp6E8LDzi3l5/7XctJQY3+ZgHDJosjGCAlsw
# ggJXAgEBMIGQMHkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw
# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x
# IzAhBgNVBAMTGk1pY3Jvc29mdCBUZXN0aW5nIFBDQSAyMDEwAhMzAAAFdY/tZZAB
# UyRhAAEAAAV1MA0GCWCGSAFlAwQCAQUAoIGcMBkGCSqGSIb3DQEJAzEMBgorBgEE
# AYI3AgEEMBwGCisGAQQBgjcCAQsxDjAMBgorBgEEAYI3AgEVMC8GCSqGSIb3DQEJ
# BDEiBCAAm2w3/sPDsiAzhsalvmzx1MqrHyrggY98U5eSx3yLTzAwBgorBgEEAYI3
# AgEMMSIwIKAegBwAUwBTAEMAXABXAGkAbgBSAFQATQBwAGIAbABkMA0GCSqGSIb3
# DQEBAQUABIIBAEiOQ/M2Liw7cqXhp+jWAhjuZ4HGm05HXKeui+LUkhfS+Mpsqvxa
# 5OuxdLm+6+waiWAi0yiqf+lND1+m+EDMIihFxrEf3KiE85zU4SCJd2ej1UPvKeLr
# 0Wf8qiPHyABpfL1itXoUateUgMxPsjRstq0c5V/FL1YzFe59tYIl6XRWaSHJqCwV
# cKLwjFRvWxyQqps3AxylLZBh0rYfGctjh6kVNr1A07RV0Duq/g4+1HYk9yDusP8l
# exGmAX9Agj53ZborbRgGrHB+EVGzaYiHVfIducHL3ZYEsNW+KyzeSWRva6Uoupjr
# +YO41hQka67E8p8ErpYDgoYWlEC72Jaxa8c=
# SIG # End signature block
