ISEScriptRunner.psm1
function Enable-ISEScriptRunner { <# .SYNOPSIS Add ScriptRunner ISE Add-on Tool to the ISE profile of the current user. .DESCRIPTION Add ScriptRunner ISE Add-on Tool to the ISE profile of the current user. The ScriptRunner ISE Add-on Tool is automatically loaded at the startup of the Windows PowerShell ISE. The Windows PowerShell ISE is created, if it does not exist. #> [CmdletBinding()] param() Test-WindowsPowerShellISE -FunctionName "Enable-ISEScriptRunner" if (Get-ItemProperty -Path 'HKLM:\SOFTWARE\ScriptRunner\Service\General' -ErrorAction SilentlyContinue) { throw "The Cmdlet 'Enable-ISEScriptRunner' can not be executed at the ScriptRunner Service Host." } #create “Current user, Windows PowerShell ISE” profile, if not exists if (!(Test-Path $profile)) { New-Item -Type file -Path $profile -Force } [String]$iseProfile = Get-Content -Path $profile if ($null -eq $iseProfile) { [String]$iseProfile = [String]::Empty } if (!$iseProfile.Contains("Start-ISEScriptRunner")) { Add-Content -Path $profile -Value "`r`nStart-ISEScriptRunner" -Force } else { Write-Warning "`"$($profile)`" already contains `"Start-ISEScriptRunner`"." } } function Disable-ISEScriptRunner { <# .SYNOPSIS Remove ScriptRunner ISE Add-on Tool from the ISE profile of the current user. .DESCRIPTION Add ScriptRunner ISE Add-on Tool to the ISE profile of the current user. The ScriptRunner ISE Add-on Tool is not loaded at the startup of the Windows PowerShell ISE anymore. #> [CmdletBinding()] param() Test-WindowsPowerShellISE -FunctionName "Disable-ISEScriptRunner" if ((Test-Path $profile)) { # remove ScriptRunner type from profile [string]$iseProfile = Get-Content -Path "$profile" | Select-String -Pattern 'Start-ISEScriptRunner' -NotMatch | Out-String Set-Content -Path "$profile" -Value $iseProfile } else { Write-Warning "A ISE UserProfile `"$($profile)`" does not exist, no changes necessary." } } function Test-WindowsPowerShellISE { <# .SYNOPSIS Ensure running from Windows PowerShell ISE console pane. .DESCRIPTION Ensure running from Windows PowerShell ISE console pane. .PARAMETER FunctionName The name of the calling function. #> [CmdletBinding()] param ([string]$FunctionName) if ($Host.Name -ne "Windows PowerShell ISE Host") { $errorMsg = "The CmdLet {0} requires a Windows PowerShell ISE Host." -f $FunctionName throw $errorMsg } } function Reset-SRXEnv { <# .SYNOPSIS Reset global ScriptRunner PowerShell Host Environment Variable $SRXEnv. .DESCRIPTION Reset global ScriptRunner PowerShell Host Environment Variable $SRXEnv. #> [CmdletBinding()] param () [psobject].Assembly.GetType('System.Management.Automation.TypeAccelerators')::Add('PSSession', [System.Management.Automation.Runspaces.PSSession]) $me = whoami $ipaddress = '127.0.0.1' if (Get-Command -Name 'Get-NetIPAddress' -ErrorAction SilentlyContinue) { $ipaddress = Get-NetIPAddress -AddressFamily IPv4 -ErrorAction SilentlyContinue | Select-Object -First 1 -ExpandProperty 'IPAddress' -ErrorAction SilentlyContinue } $cmdPath = $PSCommandPath if ([string]::IsNullOrEmpty($cmdPath)) { $cmdPath = Join-Path -Path (Get-Location).Path -ChildPath 'myScript.ps1' } $Global:SRXEnv = @{ ReportEmail = '' ResultEmail = '' ResultHtml = '' ResultList = New-Object -TypeName 'System.Collections.ArrayList' ResultList2 = New-Object -TypeName 'System.Collections.ArrayList' ResultMessage = '' ResultObjectJSON = $null SRXActionID = 42 SRXCommandPath = $cmdPath SRXDisplayName = 'Name of the current Action' SRXFilterValue = '' SRXStarted = Get-Date SRXStartedBy = $me SRXStartedIP = $ipaddress SRXStartedReason = "TicketID $((Get-Date).ToString('yyyyMMdd-fff'))" SRXStartedVia = "Interactive by `"$($me)`" ($($Host.Name))" } Write-Verbose ($Global:SRXEnv | Out-String) } Export-ModuleMember -Function 'Enable-ISEScriptRunner', 'Disable-ISEScriptRunner', 'Reset-SRXEnv' # SIG # Begin signature block # MIIoSAYJKoZIhvcNAQcCoIIoOTCCKDUCAQExDzANBglghkgBZQMEAgEFADB5Bgor # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG # KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCD/1LwIRFFT/um3 # xHA0LuPdgUrob47cqIXbYCCsmFLHvaCCDbUwggawMIIEmKADAgECAhAIrUCyYNKc # 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/pQd52MbOoZWeE4wggb9MIIE5aADAgECAhAKJP1KmIX7+jQowyMbCSwIMA0G # CSqGSIb3DQEBCwUAMGkxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2VydCwg # SW5jLjFBMD8GA1UEAxM4RGlnaUNlcnQgVHJ1c3RlZCBHNCBDb2RlIFNpZ25pbmcg # UlNBNDA5NiBTSEEzODQgMjAyMSBDQTEwHhcNMjIwODIzMDAwMDAwWhcNMjUwOTE4 # MjM1OTU5WjCBgTELMAkGA1UEBhMCREUxEjAQBgNVBAcTCUV0dGxpbmdlbjEjMCEG # A1UEChMaU2NyaXB0UnVubmVyIFNvZnR3YXJlIEdtYkgxFDASBgNVBAsTC0RldmVs # b3BtZW50MSMwIQYDVQQDExpTY3JpcHRSdW5uZXIgU29mdHdhcmUgR21iSDCCAaIw # DQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBAKcqyjEj0fwOK50z5/Bat6McHeK2 # 7HiTb0WvAGgTVstcYSMC9GSBNh77X3gMGzIf4bFFFt5FXVoC3MgxXXhYWBVDXr4k # 3reQ5t9Nm9p4n/lQYsVQ4v4lnBeki8kv9dlRBZdHeAWZ47pQW3JWSVkP1XUQqR16 # uc3wPHL8UjLuPmVl1lbyxyXMHIXilCNIIA1OilNJ37fy/RXYtUkqrkPtU1fV4keu # At+owdH7NrSaxjxo0Ok4xF4gXvxRbJojWi9Rp5hPV6qFaCFsYx4t3QqSeQ/xKPp9 # 3CDBsJz1myLhdDwd5Iji8U/QvLV+qTLcebGj76ojylB9lPyyrqUfZ/8eMgxNvagp # Etmd/RBcv/DS/YKeFOJuA92Y56cP2eNCK0oopTj6Lg5TmIynUjAnnpKfyavmp9s9 # lXMbr/0WnNSxrOK2VQ77A30EsRBXwxdMwKHoQAVGL1mRW/xOuaseKpaaekRIEI5e # Z7PLG5pwvp80SICcYgx/aBwSK9AWdXBZ4UxHzQIDAQABo4ICBjCCAgIwHwYDVR0j # BBgwFoAUaDfg67Y7+F8Rhvv+YXsIiGX0TkIwHQYDVR0OBBYEFFvNKs/rU+6pAev0 # BPScCQIVWvvrMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzCB # tQYDVR0fBIGtMIGqMFOgUaBPhk1odHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGln # aUNlcnRUcnVzdGVkRzRDb2RlU2lnbmluZ1JTQTQwOTZTSEEzODQyMDIxQ0ExLmNy # bDBToFGgT4ZNaHR0cDovL2NybDQuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0VHJ1c3Rl # ZEc0Q29kZVNpZ25pbmdSU0E0MDk2U0hBMzg0MjAyMUNBMS5jcmwwPgYDVR0gBDcw # NTAzBgZngQwBBAEwKTAnBggrBgEFBQcCARYbaHR0cDovL3d3dy5kaWdpY2VydC5j # b20vQ1BTMIGUBggrBgEFBQcBAQSBhzCBhDAkBggrBgEFBQcwAYYYaHR0cDovL29j # c3AuZGlnaWNlcnQuY29tMFwGCCsGAQUFBzAChlBodHRwOi8vY2FjZXJ0cy5kaWdp # Y2VydC5jb20vRGlnaUNlcnRUcnVzdGVkRzRDb2RlU2lnbmluZ1JTQTQwOTZTSEEz # ODQyMDIxQ0ExLmNydDAMBgNVHRMBAf8EAjAAMA0GCSqGSIb3DQEBCwUAA4ICAQBe # i1jojgcQsTbWf2VsHA+uV7M5TQzxqPMjEOGuYVfMMQ0gmLsdhFMkPsNgoa8Irhi1 # MfHYjcUFpPFNfKqmsRGnd4ZSvjLWbJoh6aysQA/BavnCDaf4+jdZpTKdW1s9B9eP # HW06mvsXyLje88jBKGJGGFbv/vgB/OKSb4t9LgLTDUFNC8aRW7DTxqR07OyMVtSq # g2SnoGAIm8WvzH5+tUgXOOXap3Kd31LGWjwnoANRrCGBwrJPkDUGag27tXRjv9KU # X+3/yevBS6EIIr6fAkWinsH1wzXiZdaOVhclIFrxhwPLdR6IgFT+dm2TCErMLB68 # lZok/8pxQAS0M6vUvbYucCQqS423Ok9720mT2UTJiO6rdSe3glaNuHnELKipQMWS # Dg4yXXAYjYLjRCNEUEQpd1RJSap3xgTFfxtmTDTSAuq6vhSkz7ZRwfloQ4UiPMX/ # 750Kl7S5GM0zRLzZbHUCtTsfzBCiaamJnO/ZnNCYi1GlL9U4kkZxBiIylUOYSJOi # 6JXFPCCj4V8VXOjBPxP/Pl5+EAAW7wuCE3DR1aOIVVsVOyVDYmCWdBz0dMo4BIIL # VQX9R38ttEoqm5LRl7KvtisZMrGvGkn0hzzbN6Ec/3TbgbvIv29QSP0S/kNKqeNy # HSbAF863Yx3+8lccinkQP8dAfbm/laiVOfpQbEOAazGCGekwghnlAgEBMH0waTEL # MAkGA1UEBhMCVVMxFzAVBgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMUEwPwYDVQQDEzhE # aWdpQ2VydCBUcnVzdGVkIEc0IENvZGUgU2lnbmluZyBSU0E0MDk2IFNIQTM4NCAy # MDIxIENBMQIQCiT9SpiF+/o0KMMjGwksCDANBglghkgBZQMEAgEFAKB8MBAGCisG # AQQBgjcCAQwxAjAAMBkGCSqGSIb3DQEJAzEMBgorBgEEAYI3AgEEMBwGCisGAQQB # gjcCAQsxDjAMBgorBgEEAYI3AgEVMC8GCSqGSIb3DQEJBDEiBCDBn5rgZpzGFBeT # wqnh+giODhTz45fpeKihrPduFOuQ6zANBgkqhkiG9w0BAQEFAASCAYAtNQ0anMAV # sheCXAn7kubQsuQSGiMdoxTwoJi/3C4VrKJjHW2D2mcTceg4s6+S5W11VvE/oRZL # vtm3Gj5OxPn7Y2AQgBxNY9/mLzgW3Fc9WTTXe4Ayez1/mdu38i9v1zMyP4vIC0+A # H3jaqzt68hX7/cnnTDevLlFUkQiCIss5u0jGHVHjqaNjwIVXX0L8LxYVIHJNvz/K # vwymgkcPtECWPl+ppHqAJX48PyjdRvaiWVkETbyQzxvrfwimOiJLU2DVPVPBd76A # O9YzdZz0EdpeMq8PlsNfSNPG1P12mrqs49tyQlaEfr2dsivAZSeF/VNQ/oBirBt/ # CMpwJc1C6cqfWzJyjS8W3fLr2M27qO+ABfaHZHjEnWKNXJEtuz2eEKXoFJ6zkB5E # 2O7+yYjzPtgXZq6mRlWJefO2nd07IvZ1h+OBi7nc1c6dkfUxgoFDn4B3CZhKJJJb # +4iHMd3NnRUL9PkxMF8AxAnu8B85Zhj7K5cVKNXGFIHTRo+H0Cg4+AChghc/MIIX # OwYKKwYBBAGCNwMDATGCFyswghcnBgkqhkiG9w0BBwKgghcYMIIXFAIBAzEPMA0G # CWCGSAFlAwQCAQUAMHcGCyqGSIb3DQEJEAEEoGgEZjBkAgEBBglghkgBhv1sBwEw # MTANBglghkgBZQMEAgEFAAQgnj0OTsDnKDpqNK8RVSEGJrW602NiJp4ME32s7rMr # OlICEHIlwVS225mBuxqxk6S++VAYDzIwMjMwOTAxMTYxNTE2WqCCEwkwggbCMIIE # qqADAgECAhAFRK/zlJ0IOaa/2z9f5WEWMA0GCSqGSIb3DQEBCwUAMGMxCzAJBgNV # BAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2VydCwgSW5jLjE7MDkGA1UEAxMyRGlnaUNl # cnQgVHJ1c3RlZCBHNCBSU0E0MDk2IFNIQTI1NiBUaW1lU3RhbXBpbmcgQ0EwHhcN # MjMwNzE0MDAwMDAwWhcNMzQxMDEzMjM1OTU5WjBIMQswCQYDVQQGEwJVUzEXMBUG # A1UEChMORGlnaUNlcnQsIEluYy4xIDAeBgNVBAMTF0RpZ2lDZXJ0IFRpbWVzdGFt # cCAyMDIzMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAo1NFhx2Djlus # PlSzI+DPn9fl0uddoQ4J3C9Io5d6OyqcZ9xiFVjBqZMRp82qsmrdECmKHmJjadNY # nDVxvzqX65RQjxwg6seaOy+WZuNp52n+W8PWKyAcwZeUtKVQgfLPywemMGjKg0La # /H8JJJSkghraarrYO8pd3hkYhftF6g1hbJ3+cV7EBpo88MUueQ8bZlLjyNY+X9pD # 04T10Mf2SC1eRXWWdf7dEKEbg8G45lKVtUfXeCk5a+B4WZfjRCtK1ZXO7wgX6oJk # Tf8j48qG7rSkIWRw69XloNpjsy7pBe6q9iT1HbybHLK3X9/w7nZ9MZllR1WdSiQv # rCuXvp/k/XtzPjLuUjT71Lvr1KAsNJvj3m5kGQc3AZEPHLVRzapMZoOIaGK7vEEb # eBlt5NkP4FhB+9ixLOFRr7StFQYU6mIIE9NpHnxkTZ0P387RXoyqq1AVybPKvNfE # O2hEo6U7Qv1zfe7dCv95NBB+plwKWEwAPoVpdceDZNZ1zY8SdlalJPrXxGshuugf # NJgvOuprAbD3+yqG7HtSOKmYCaFxsmxxrz64b5bV4RAT/mFHCoz+8LbH1cfebCTw # v0KCyqBxPZySkwS0aXAnDU+3tTbRyV8IpHCj7ArxES5k4MsiK8rxKBMhSVF+BmbT # O77665E42FEHypS34lCh8zrTioPLQHsCAwEAAaOCAYswggGHMA4GA1UdDwEB/wQE # AwIHgDAMBgNVHRMBAf8EAjAAMBYGA1UdJQEB/wQMMAoGCCsGAQUFBwMIMCAGA1Ud # IAQZMBcwCAYGZ4EMAQQCMAsGCWCGSAGG/WwHATAfBgNVHSMEGDAWgBS6FtltTYUv # cyl2mi91jGogj57IbzAdBgNVHQ4EFgQUpbbvE+fvzdBkodVWqWUxo97V40kwWgYD # VR0fBFMwUTBPoE2gS4ZJaHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0 # VHJ1c3RlZEc0UlNBNDA5NlNIQTI1NlRpbWVTdGFtcGluZ0NBLmNybDCBkAYIKwYB # BQUHAQEEgYMwgYAwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNv # bTBYBggrBgEFBQcwAoZMaHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL0RpZ2lD # ZXJ0VHJ1c3RlZEc0UlNBNDA5NlNIQTI1NlRpbWVTdGFtcGluZ0NBLmNydDANBgkq # hkiG9w0BAQsFAAOCAgEAgRrW3qCptZgXvHCNT4o8aJzYJf/LLOTN6l0ikuyMIgKp # uM+AqNnn48XtJoKKcS8Y3U623mzX4WCcK+3tPUiOuGu6fF29wmE3aEl3o+uQqhLX # J4Xzjh6S2sJAOJ9dyKAuJXglnSoFeoQpmLZXeY/bJlYrsPOnvTcM2Jh2T1a5UsK2 # nTipgedtQVyMadG5K8TGe8+c+njikxp2oml101DkRBK+IA2eqUTQ+OVJdwhaIcW0 # z5iVGlS6ubzBaRm6zxbygzc0brBBJt3eWpdPM43UjXd9dUWhpVgmagNF3tlQtVCM # r1a9TMXhRsUo063nQwBw3syYnhmJA+rUkTfvTVLzyWAhxFZH7doRS4wyw4jmWOK2 # 2z75X7BC1o/jF5HRqsBV44a/rCcsQdCaM0qoNtS5cpZ+l3k4SF/Kwtw9Mt911jZn # Won49qfH5U81PAC9vpwqbHkB3NpE5jreODsHXjlY9HxzMVWggBHLFAx+rrz+pOt5 # Zapo1iLKO+uagjVXKBbLafIymrLS2Dq4sUaGa7oX/cR3bBVsrquvczroSUa31X/M # tjjA2Owc9bahuEMs305MfR5ocMB3CtQC4Fxguyj/OOVSWtasFyIjTvTs0xf7UGv/ # B3cfcZdEQcm4RtNsMnxYL2dHZeUbc7aZ+WssBkbvQR7w8F/g29mtkIBEr4AQQYow # ggauMIIElqADAgECAhAHNje3JFR82Ees/ShmKl5bMA0GCSqGSIb3DQEBCwUAMGIx # CzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3 # dy5kaWdpY2VydC5jb20xITAfBgNVBAMTGERpZ2lDZXJ0IFRydXN0ZWQgUm9vdCBH # NDAeFw0yMjAzMjMwMDAwMDBaFw0zNzAzMjIyMzU5NTlaMGMxCzAJBgNVBAYTAlVT # MRcwFQYDVQQKEw5EaWdpQ2VydCwgSW5jLjE7MDkGA1UEAxMyRGlnaUNlcnQgVHJ1 # c3RlZCBHNCBSU0E0MDk2IFNIQTI1NiBUaW1lU3RhbXBpbmcgQ0EwggIiMA0GCSqG # SIb3DQEBAQUAA4ICDwAwggIKAoICAQDGhjUGSbPBPXJJUVXHJQPE8pE3qZdRodbS # g9GeTKJtoLDMg/la9hGhRBVCX6SI82j6ffOciQt/nR+eDzMfUBMLJnOWbfhXqAJ9 # /UO0hNoR8XOxs+4rgISKIhjf69o9xBd/qxkrPkLcZ47qUT3w1lbU5ygt69OxtXXn # HwZljZQp09nsad/ZkIdGAHvbREGJ3HxqV3rwN3mfXazL6IRktFLydkf3YYMZ3V+0 # VAshaG43IbtArF+y3kp9zvU5EmfvDqVjbOSmxR3NNg1c1eYbqMFkdECnwHLFuk4f # sbVYTXn+149zk6wsOeKlSNbwsDETqVcplicu9Yemj052FVUmcJgmf6AaRyBD40Nj # gHt1biclkJg6OBGz9vae5jtb7IHeIhTZgirHkr+g3uM+onP65x9abJTyUpURK1h0 # QCirc0PO30qhHGs4xSnzyqqWc0Jon7ZGs506o9UD4L/wojzKQtwYSH8UNM/STKvv # mz3+DrhkKvp1KCRB7UK/BZxmSVJQ9FHzNklNiyDSLFc1eSuo80VgvCONWPfcYd6T # /jnA+bIwpUzX6ZhKWD7TA4j+s4/TXkt2ElGTyYwMO1uKIqjBJgj5FBASA31fI7tk # 42PgpuE+9sJ0sj8eCXbsq11GdeJgo1gJASgADoRU7s7pXcheMBK9Rp6103a50g5r # mQzSM7TNsQIDAQABo4IBXTCCAVkwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4E # FgQUuhbZbU2FL3MpdpovdYxqII+eyG8wHwYDVR0jBBgwFoAU7NfjgtJxXWRM3y5n # P+e6mK4cD08wDgYDVR0PAQH/BAQDAgGGMBMGA1UdJQQMMAoGCCsGAQUFBwMIMHcG # CCsGAQUFBwEBBGswaTAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQu # Y29tMEEGCCsGAQUFBzAChjVodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vRGln # aUNlcnRUcnVzdGVkUm9vdEc0LmNydDBDBgNVHR8EPDA6MDigNqA0hjJodHRwOi8v # Y3JsMy5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkUm9vdEc0LmNybDAgBgNV # HSAEGTAXMAgGBmeBDAEEAjALBglghkgBhv1sBwEwDQYJKoZIhvcNAQELBQADggIB # AH1ZjsCTtm+YqUQiAX5m1tghQuGwGC4QTRPPMFPOvxj7x1Bd4ksp+3CKDaopafxp # wc8dB+k+YMjYC+VcW9dth/qEICU0MWfNthKWb8RQTGIdDAiCqBa9qVbPFXONASIl # zpVpP0d3+3J0FNf/q0+KLHqrhc1DX+1gtqpPkWaeLJ7giqzl/Yy8ZCaHbJK9nXzQ # cAp876i8dU+6WvepELJd6f8oVInw1YpxdmXazPByoyP6wCeCRK6ZJxurJB4mwbfe # Kuv2nrF5mYGjVoarCkXJ38SNoOeY+/umnXKvxMfBwWpx2cYTgAnEtp/Nh4cku0+j # Sbl3ZpHxcpzpSwJSpzd+k1OsOx0ISQ+UzTl63f8lY5knLD0/a6fxZsNBzU+2QJsh # IUDQtxMkzdwdeDrknq3lNHGS1yZr5Dhzq6YBT70/O3itTK37xJV77QpfMzmHQXh6 # OOmc4d0j/R0o08f56PGYX/sr2H7yRp11LB4nLCbbbxV7HhmLNriT1ObyF5lZynDw # N7+YAN8gFk8n+2BnFqFmut1VwDophrCYoCvtlUG3OtUVmDG0YgkPCr2B2RP+v6TR # 81fZvAT6gt4y3wSJ8ADNXcL50CN/AAvkdgIm2fBldkKmKYcJRyvmfxqkhQ/8mJb2 # VVQrH4D6wPIOK+XW+6kvRBVK5xMOHds3OBqhK/bt1nz8MIIFjTCCBHWgAwIBAgIQ # DpsYjvnQLefv21DiCEAYWjANBgkqhkiG9w0BAQwFADBlMQswCQYDVQQGEwJVUzEV # MBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29t # MSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwHhcNMjIwODAx # MDAwMDAwWhcNMzExMTA5MjM1OTU5WjBiMQswCQYDVQQGEwJVUzEVMBMGA1UEChMM # RGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQD # ExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwggIiMA0GCSqGSIb3DQEBAQUAA4IC # DwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz7MKnJS7JIT3yithZwuEppz1Yq3aa # za57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS5F/WBTxSD1Ifxp4VpX6+n6lXFllV # cq9ok3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7bXHiLQwb7iDVySAdYyktzuxeTsiT # +CFhmzTrBcZe7FsavOvJz82sNEBfsXpm7nfISKhmV1efVFiODCu3T6cw2Vbuyntd # 463JT17lNecxy9qTXtyOj4DatpGYQJB5w3jHtrHEtWoYOAMQjdjUN6QuBX2I9YI+ # EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14Ztk6MUSaM0C/CNdaSaTC5qmgZ92k # J7yhTzm1EVgX9yRcRo9k98FpiHaYdj1ZXUJ2h4mXaXpI8OCiEhtmmnTK3kse5w5j # rubU75KSOp493ADkRSWJtppEGSt+wJS00mFt6zPZxd9LBADMfRyVw4/3IbKyEbe7 # f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hkpjPRiQfhvbfmQ6QYuKZ3AeEPlAwhHbJU # KSWJbOUOUlFHdL4mrLZBdd56rF+NP8m800ERElvlEFDrMcXKchYiCd98THU/Y+wh # X8QgUWtvsauGi0/C1kVfnSD8oR7FwI+isX4KJpn15GkvmB0t9dmpsh3lGwIDAQAB # o4IBOjCCATYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU7NfjgtJxXWRM3y5n # P+e6mK4cD08wHwYDVR0jBBgwFoAUReuir/SSy4IxLVGLp6chnfNtyA8wDgYDVR0P # AQH/BAQDAgGGMHkGCCsGAQUFBwEBBG0wazAkBggrBgEFBQcwAYYYaHR0cDovL29j # c3AuZGlnaWNlcnQuY29tMEMGCCsGAQUFBzAChjdodHRwOi8vY2FjZXJ0cy5kaWdp # Y2VydC5jb20vRGlnaUNlcnRBc3N1cmVkSURSb290Q0EuY3J0MEUGA1UdHwQ+MDww # OqA4oDaGNGh0dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJ # RFJvb3RDQS5jcmwwEQYDVR0gBAowCDAGBgRVHSAAMA0GCSqGSIb3DQEBDAUAA4IB # AQBwoL9DXFXnOF+go3QbPbYW1/e/Vwe9mqyhhyzshV6pGrsi+IcaaVQi7aSId229 # GhT0E0p6Ly23OO/0/4C5+KH38nLeJLxSA8hO0Cre+i1Wz/n096wwepqLsl7Uz9FD # RJtDIeuWcqFItJnLnU+nBgMTdydE1Od/6Fmo8L8vC6bp8jQ87PcDx4eo0kxAGTVG # amlUsLihVo7spNU96LHc/RzY9HdaXFSMb++hUD38dglohJ9vytsgjTVgHAIDyyCw # rFigDkBjxZgiwbJZ9VVrzyerbHbObyMt9H5xaiNrIv8SuFQtJ37YOtnwtoeW/VvR # XKwYw02fc7cBqZ9Xql4o4rmUMYIDdjCCA3ICAQEwdzBjMQswCQYDVQQGEwJVUzEX # MBUGA1UEChMORGlnaUNlcnQsIEluYy4xOzA5BgNVBAMTMkRpZ2lDZXJ0IFRydXN0 # ZWQgRzQgUlNBNDA5NiBTSEEyNTYgVGltZVN0YW1waW5nIENBAhAFRK/zlJ0IOaa/ # 2z9f5WEWMA0GCWCGSAFlAwQCAQUAoIHRMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0B # CRABBDAcBgkqhkiG9w0BCQUxDxcNMjMwOTAxMTYxNTE2WjArBgsqhkiG9w0BCRAC # DDEcMBowGDAWBBRm8CsywsLJD4JdzqqKycZPGZzPQDAvBgkqhkiG9w0BCQQxIgQg # 2bxQF5QEovhFiwKfb76ZW3XpCggX8Y2BrWGOFDqvH9kwNwYLKoZIhvcNAQkQAi8x # KDAmMCQwIgQg0vbkbe10IszR1EBXaEE2b4KK2lWarjMWr00amtQMeCgwDQYJKoZI # hvcNAQEBBQAEggIARRn7pO4SjasiKbcm0sb7i4WVy5Z/INF2SuFgtzJMOX3rVVlD # /zRBGipGyqkeJrGdTsDt70beGlNk42lXqohnONg2g6eLw3JIq3L/BsmxL5zXYgJw # j1nwJApi1241C3CehxW3xuSJwKFRq5djr3Z+Xyizqy44+r3CMeB5UORZIkAk4SDM # ZbOg7D+q3LCe078MEeg28IwwgOmAv/95gJZu9zWA3/xbdLOb8/WCCEMZtOwNRtTS # k6xYyhgoP+w+8ikOucz/nB85WYvC5dSUAyEKUqLO4Gkv1FxA903qN7Qxh/IneD/r # 2GiCTdqhU2ZtGapTbY9vO+s4SX3KfVYhlOsjlbKa99+0hVAi4CB/JkP96l4O9uzX # gWair45tfQQpSCGg+QgWzOkYbhilhXpCdLKtftvmz7p/BzSqLxBp8Hlj7g8V3sih # F40Dp8pjrvjGFoQCAlVLcvfgaKztrvG37aJ11r3B15cSBJptk8QUmq5F5a9hy8Xl # VbOeQt5tq5TyjC4GTkgnMxKiQ7SE7CWmrBNFmVf+WA2pF6veD6Ni7/vDfRZkjg7g # iVuroxTkHn27HZt7FqNCPJT9VJ9RGVBkS6rM/9npsG3IdBvG+CegeQoLSJAbNUO+ # WAYGcFyFuvrw9zzK8USlF+/x1TsCF4GvCAROc+HMTLZ6nWUx3qShZA8VeaI= # SIG # End signature block |