Set-StrictMode -Version Latest InModuleScope Pester { Describe "Parse-ShouldArgs" { It "sanitizes assertions functions" { $parsedArgs = Parse-ShouldArgs TestFunction $parsedArgs.AssertionMethod | Should Be PesterTestFunction } It "works with strict mode when using 'switch' style tests" { Set-StrictMode -Version Latest { throw 'Test' } | Should Throw } Context "for positive assertions" { $parsedArgs = Parse-ShouldArgs testMethod, 1 It "gets the expected value from the 2nd argument" { $ParsedArgs.ExpectedValue | Should Be 1 } It "marks the args as a positive assertion" { $ParsedArgs.PositiveAssertion | Should Be $true } } Context "for negative assertions" { $parsedArgs = Parse-ShouldArgs Not, testMethod, 1 It "gets the expected value from the third argument" { $ParsedArgs.ExpectedValue | Should Be 1 } It "marks the args as a negative assertion" { $ParsedArgs.PositiveAssertion | Should Be $false } } Context "for the throw assertion" { $parsedArgs = Parse-ShouldArgs Throw It "translates the Throw assertion to PesterThrow" { $ParsedArgs.AssertionMethod | Should Be PesterThrow } } } Describe "Get-TestResult" { Context "for positive assertions" { function PesterTest { return $true } $shouldArgs = Parse-ShouldArgs Test It "returns false if the test returns true" { Get-TestResult $shouldArgs | Should Be $false } } Context "for negative assertions" { function PesterTest { return $false } $shouldArgs = Parse-ShouldArgs Not, Test It "returns false if the test returns false" { Get-TestResult $shouldArgs | Should Be $false } } } Describe "Get-FailureMessage" { Context "for positive assertions" { function PesterTestFailureMessage($v, $e) { return "slime $e $v" } $shouldArgs = Parse-ShouldArgs Test, 1 It "should return the postive assertion failure message" { Get-FailureMessage $shouldArgs 2 | Should Be "slime 1 2" } } Context "for negative assertions" { function NotPesterTestFailureMessage($v, $e) { return "not slime $e $v" } $shouldArgs = Parse-ShouldArgs Not, Test, 1 It "should return the negative assertion failure message" { Get-FailureMessage $shouldArgs 2 | Should Be "not slime 1 2" } } } Describe -Tag "Acceptance" "Should" { It "can use the Be assertion" { 1 | Should Be 1 } It "can use the Not Be assertion" { 1 | Should Not Be 2 } It "can use the BeNullOrEmpty assertion" { $null | Should BeNullOrEmpty @() | Should BeNullOrEmpty "" | Should BeNullOrEmpty } It "can use the Not BeNullOrEmpty assertion" { @("foo") | Should Not BeNullOrEmpty "foo" | Should Not BeNullOrEmpty " " | Should Not BeNullOrEmpty @(1,2,3) | Should Not BeNullOrEmpty 12345 | Should Not BeNullOrEmpty $item1 = New-Object PSObject -Property @{Id=1; Name="foo"} $item2 = New-Object PSObject -Property @{Id=2; Name="bar"} @($item1, $item2) | Should Not BeNullOrEmpty } It "can handle exception thrown assertions" { { foo } | Should Throw } It "can handle exception should not be thrown assertions" { { $foo = 1 } | Should Not Throw } It "can handle Exist assertion" { $TestDrive | Should Exist } It "can handle the Match assertion" { "abcd1234" | Should Match "d1" } It "can test for file contents" { Setup -File "test.foo" "expected text" "$TestDrive\test.foo" | Should Contain "expected text" } It "ensures all assertion functions provide failure messages" { $assertionFunctions = @("PesterBe", "PesterThrow", "PesterBeNullOrEmpty", "PesterExist", "PesterMatch", "PesterContain") $assertionFunctions | % { "function:$($_)FailureMessage" | Should Exist "function:Not$($_)FailureMessage" | Should Exist } } # TODO understand the purpose of this test, perhaps some better wording It "can process functions with empty output as input" { function ReturnNothing {} # TODO figure out why this is the case if ($PSVersionTable.PSVersion -eq "2.0") { { $(ReturnNothing) | Should Not BeNullOrEmpty } | Should Not Throw } else { { $(ReturnNothing) | Should Not BeNullOrEmpty } | Should Throw } } } } # SIG # Begin signature block # MIInRwYJKoZIhvcNAQcCoIInODCCJzQCAQExDzANBglghkgBZQMEAgEFADB5Bgor # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG # KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDeyEEHvAd2qbXv # 0sMhs9VQZslkyLMVmq7f0pfYSsyQi6CCC7QwggXLMIIEs6ADAgECAhMzAAABQGf2 # mGsxCLhyAAAAAAFAMA0GCSqGSIb3DQEBCwUAMIGOMQswCQYDVQQGEwJVUzETMBEG # A1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWlj # cm9zb2Z0IENvcnBvcmF0aW9uMTgwNgYDVQQDEy9NaWNyb3NvZnQgV2luZG93cyBU # aGlyZCBQYXJ0eSBDb21wb25lbnQgQ0EgMjAxMjAeFw0yNTExMTMxOTU5NDNaFw0y # NjExMTAxOTU5NDNaMIGEMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3Rv # bjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0 # aW9uMS4wLAYDVQQDEyVNaWNyb3NvZnQgV2luZG93cyAzcmQgcGFydHkgQ29tcG9u # ZW50MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEArGt4Hrjs3D7+IIab # GkPGtg4XeWQFi8nKsdeF+N6nkYF9wsmw0qPk4OovEiJnCSRiEtLfYy3Icn4iOp7L # 24oCa0zlgYCND3OnNfYOuVpMsq3CSkXYg3H+VMiB11hOLcctTu4RWy4ZRKsL5NVI # AduJFgd/1Qs2mQpUuOyFfLKhu/+Z+T2c9YALxsfnPvqn8Tn8Tt8wdZuFwz7kK3jl # e2T3YBofybAR2aH678TnOxhLe2/hEpTdKaVfcqyrIX0Mw/LwqEJnj4G8amBbQ7OG # RnKm1VNd4nMpRt1SflNlVo1Q3Qqnj9K6mSPw99YGMCTaVr6jKPylsWyW4nsvu8m0 # MbBJJiLOi0sOTHtwQEVcBH6WM7xbODqwPaklS1wDbED1wfzImIUR8WsXJVjDm7Fg # x4JDo8oLIjKFrEvzBfrYWsvlDg8p9XgR7EB/IJwXGuJbFzo/S+r3D5DkUZXX/72k # XA4FeRJAgLePAuGChPvyQiLtKJeJm9ftJeukrIcs7JpJVHObAgMBAAGjggGoMIIB # pDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUB9FDBUZ0W11vsv6qqb9t # vKspCIowRQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3Jh # dGlvbjEWMBQGA1UEBRMNMjMwODA5KzUwNjIyOTAfBgNVHSMEGDAWgBRhcaeHr/9p # 1SF2T1KTKAC+eRKrhDB0BgNVHR8EbTBrMGmgZ6BlhmNodHRwOi8vd3d3Lm1pY3Jv # c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBXaW5kb3dzJTIwVGhpcmQl # MjBQYXJ0eSUyMENvbXBvbmVudCUyMENBJTIwMjAxMi5jcmwwgYEGCCsGAQUFBwEB # BHUwczBxBggrBgEFBQcwAoZlaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9w # cy9jZXJ0cy9NaWNyb3NvZnQlMjBXaW5kb3dzJTIwVGhpcmQlMjBQYXJ0eSUyMENv # bXBvbmVudCUyMENBJTIwMjAxMi5jcnQwDAYDVR0TAQH/BAIwADANBgkqhkiG9w0B # AQsFAAOCAQEAmFzJPKhkAXPOcfy9S4q1nP3XCvmABVGv/VRzFZ1e+oVtVzOFkbZ6 # osY1OpZqa9CEvtgcrtciv1y9mV1SpxAMwfEqq+Nhw2GdZ3IWqFzWFsEe2S9U196s # XRIRIxglZMBWyzdy8rQ+P7L2+LciW4qcaw2wtv6YoI0q1isgk0t1OF5kEL0t9hhx # UrBavTdoqZ3b5JtwDqzmIsxuLtGbE9Pqbz2gx/me+7yduYpIcYlmEmPQkg3gmWkZ # lnSRePu7/5RXS2TGW1O5JP8aqVcMn0ZkHEhtT368pE/CxQVAkAYHNz6+enP9n+HC # 2udu395c0fVlRHy/d53f32RukfbjakH8uzCCBeEwggPJoAMCAQICCmELqsEAAAAA # AAkwDQYJKoZIhvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo # aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y # cG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1 # dGhvcml0eSAyMDEwMB4XDTEyMDQxODIzNDgzOFoXDTI3MDQxODIzNTgzOFowgY4x # CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt # b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xODA2BgNVBAMTL01p # Y3Jvc29mdCBXaW5kb3dzIFRoaXJkIFBhcnR5IENvbXBvbmVudCBDQSAyMDEyMIIB # IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAo5wwhAmnYy7PCkfw6iT5ozAg # D15XMSaBmjEHslDUzmcJCGUKWqVLrtXtEC7npZm1n2gvmItYAqwgtCnEcb0oHKX9 # PJtk5MXr32ElvPDuaL/Rp8t+KgKBTmRcDFOGeVcZN2G3mPkMoE4iWZv5Gy1nPCc8 # VpBm4/1/ZX0Phr01R+iKzPTajulqTqunVeyiiR7VM0VTy/med73NLPkFuH90AR3o # +xjhQ9EN6arcN2+9/rgP7R1NAUZOCqz8gujsVoMTjjoB7RRkdOpksmYQtmhtyHAA # fVBILj1D7uAklcbNjsf9uOSVz91++5VeoQHNQ7EH16Qw7puGGipuwQtZonRviwID # AQABo4IBQzCCAT8wEAYJKwYBBAGCNxUBBAMCAQAwHQYDVR0OBBYEFGFxp4ev/2nV # IXZPUpMoAL55EquEMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1UdDwQE # AwIBhjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNX2VsuP6KJcYmjRPZSQ # W9fOmhjEMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNv # bS9wa2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNybDBa # BggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93d3cubWljcm9zb2Z0 # LmNvbS9wa2kvY2VydHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3J0MA0GCSqG # SIb3DQEBCwUAA4ICAQBaimfazNX9DSZBd78KRni0s94SaSt3I8JlLwFf0gP0YbpQ # nS6MOXLzbD5qsR52bey384LczLvFaXAoc2YXP1Tr7gEWSMRG2RuAroE6jQ95bWiw # nuotPznTyjh+vV58CG4Z3MbC9DgzaGHiUkeD4QABVtK6y4eCBTEKQYtO539fX+1f # 0zktReuiE7/9HsKYQXFhFl/ICnAlfFlpMSTkcecKuwQX959yHsnSuxq+PQL+CQyy # Q7RZGplTk5YhX+DWtyYBQpU2rCf9vvSFd2g9GL30vpiIIhGGUhbzRewDlxBwh6Nw # Q3E828mGAxcM9XNbxn3hXGTt18VI1+0y4tGq08+n9ldOYfl362fyiLPeANoDj9CK # NDc+HdhiuNKx8+Evi3I7gZZ8b/zsZnZyYBsk8qCJbVttAC7vKN2GhwXCtLnlvmTC # KvJKFVyY4sQnhf9S42J+D7ICC9dmxwqy0z0gBBRQMlmDCn2b7Vo4EgFSui9eIHKO # SvH953ECjDvhB77Jc/TdR9i077SkszC5iT52yrkAmFZ+q+qKuKXQOKtpdxMLFC/p # qkEf97q9Ois0iu4Kq2PmY/eIJI4gDSs7nePCSVKsnx8OOTtd1G5QauZ9UjqqfDMV # KQ0mXgFYp06pPXqEb3Q/YJ/kMk82AK9tcdM+pkZlX4F08f7BcdpMoEFagt3xHzGC # GukwghrlAgEBMIGmMIGOMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3Rv # bjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0 # aW9uMTgwNgYDVQQDEy9NaWNyb3NvZnQgV2luZG93cyBUaGlyZCBQYXJ0eSBDb21w # b25lbnQgQ0EgMjAxMgITMwAAAUBn9phrMQi4cgAAAAABQDANBglghkgBZQMEAgEF # AKCB+jAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAvBgkqhkiG9w0BCQQxIgQg # 5vFDuRO/uxsktBYaiwPhW2RNIcyyYD5Fffe7IQS60UMwUAYKKwYBBAGCNwoDHDFC # DEBDQjIxMzBFN0FFQzQ4N0RGOTVDN0U4N0NBNDVEMjA2M0U1QTFCQ0ZFRDlDMEE5 # Rjk0QjlGNjc5M0M3RjQyQjY4MFoGCisGAQQBgjcCAQwxTDBKoCSAIgBNAGkAYwBy # AG8AcwBvAGYAdAAgAFcAaQBuAGQAbwB3AHOhIoAgaHR0cDovL3d3dy5taWNyb3Nv # ZnQuY29tL3dpbmRvd3MwDQYJKoZIhvcNAQEBBQAEggGAe8mdActkPe2QpiDS6I9c # X4g0GjJU0zVv5TGHXchneLRLUZvy4L/n8detJhrbuoYPECcyHGXGvxTa5340ydWl # n5PxdqYBsXxfX1eaU/dVfV5rDo6cdy1IGvFvpt1pOm00wLK3RecXkdSTitrpFLZe # VBOnN0PQTvU0RvI2R2PW1xNKGZYUb8560+bPWM8uYnoCRyOWWRco8IkIPxBum/E5 # 8nY30ltKuUCzJt8EXmgTD/RPp9UtvUdJUpmT+ZrfrmZtaEa1E29KH/OL1m28ec5W # ISh94/M+8aakE6arEIYRkT9w1OyVfmQbB9NRWWX3VhCwi0n+yAvdQRxb02BfThOs # lasn7Jc00bcjUg4RweGxMEgcyUDuOTGV7NbEjmP4WpkuNV79RWAYDPfv5SDjjwmR # /BMEjdgee+k0EytezkNKbH9bTu74q6tOGRvKMDG9a9RjrIbhXS0QfrVJ98VUPbRq # Wdbg6meqnJfBKfYohAKh6sUCQIp0SHg1NI3EKfVwIx2zoYIXljCCF5IGCisGAQQB # gjcDAwExgheCMIIXfgYJKoZIhvcNAQcCoIIXbzCCF2sCAQMxDzANBglghkgBZQME # AgEFADCCAVIGCyqGSIb3DQEJEAEEoIIBQQSCAT0wggE5AgEBBgorBgEEAYRZCgMB # MDEwDQYJYIZIAWUDBAIBBQAEIKx9WGNkF2RDVISf/eZYnIKwGQ99poXhpBiiG9W2 # QSMuAgZp+0cbfQUYEzIwMjYwNTA2MTU0MDUzLjIxMlowBIACAfSggdGkgc4wgcsx # CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt # b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJTAjBgNVBAsTHE1p # Y3Jvc29mdCBBbWVyaWNhIE9wZXJhdGlvbnMxJzAlBgNVBAsTHm5TaGllbGQgVFNT # IEVTTjozMzAzLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3Rh # bXAgU2VydmljZaCCEewwggcgMIIFCKADAgECAhMzAAACITPANfvSDyGkAAEAAAIh # MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n # dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y # YXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMB4X # DTI2MDIxOTE5Mzk1NFoXDTI3MDUxNzE5Mzk1NFowgcsxCzAJBgNVBAYTAlVTMRMw # EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN # aWNyb3NvZnQgQ29ycG9yYXRpb24xJTAjBgNVBAsTHE1pY3Jvc29mdCBBbWVyaWNh # IE9wZXJhdGlvbnMxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVTTjozMzAzLTA1RTAt # RDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZTCCAiIw # DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANtxMAKpTVi9GhzJYvY8v1/J//5Q # uzaortTVpmxGcNlKeUKvsruOADd4UIQkvkFnt1RMLQN5l6l/5kL7scRsHgh3OYl9 # ABQMUV6upjlVMeZC8/ZcDeVZIWPvjSJ1wZQeCU/kf89sIlTsYAdY/Yd1wKN3HWVg # CjQD7MsjvHCdNB4zI5dfbXYSDhSYM88mDF1MzDpYVVawE9ZEGLmAOLHLaz7tHwAO # TmVsEEUMHmHQKOs1Yg3u4IDMXmDu2usvydcgqnXSaP1HGFwZD62WG3pUi93KBFVN # QZ3MUHb+cG8mpD2THEWW1BJPvR8R3HhPJoqjD9/n4FKHjPj/1/s1chVVMuf/yRwk # B9GoWZGusW3cgpvLtWvOZi6hBYPSWY0W0ZDnsGsmQ+s8UA96TUAu1xtvsUfedCm+ # LyeDP8wVf/5yeY0VYVTb1VUubMH1e8tnFti+R5623SaHmV+1543asTBTKt2sq5/P # 2HZLqltq174LaHTYKtfBKRrTHp7OlOYaQgksW3bm5v9Rhc0t0d2zEYPoR9yQ4igl # iybgxL0X+9Kos0crz0jS9MsGeBASnosgWQg1qdFPc+03Hek0pEolEAtzovqaFbiE # vhocvvj2o99Dva3moAybnGIpgyAnZZqeJ1Es24jbnUkg3utpp4D/a9vRcWRlwhtN # HWl9AaxyjhTSDm2PAgMBAAGjggFJMIIBRTAdBgNVHQ4EFgQU5iMizmprql+6q4/L # IrUVOvlAMKcwHwYDVR0jBBgwFoAUn6cVXQBeYl2D9OXSZacbUzUZ6XIwXwYDVR0f # BFgwVjBUoFKgUIZOaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwv # TWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3JsMGwGCCsG # AQUFBwEBBGAwXjBcBggrBgEFBQcwAoZQaHR0cDovL3d3dy5taWNyb3NvZnQuY29t # L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAx # MCgxKS5jcnQwDAYDVR0TAQH/BAIwADAWBgNVHSUBAf8EDDAKBggrBgEFBQcDCDAO # BgNVHQ8BAf8EBAMCB4AwDQYJKoZIhvcNAQELBQADggIBADgj/duR2dPEPasW6bcw # XzFUp0SSiEA5tt4+tD7R+vltGKaPP2xWQpP/uByPg4xwKVJgb4h1foyncRiwsdZ+ # O/B/MWh5kT7JNt0GP/VUdlBG4KbDpCp5UJNvDaedLucHGdZ32hlds9SmoRrAfkOp # dBpYWBH0DgpZUr8i9dUMyPU+U8IRLU/cmic1t2GSSTPj2sm4o6blvt78EfyWioCZ # c5dFzbbLFZVMxasSnimyWa/x5PtWhjxf+N0phM9URex+YttUVyrMy4Hy8UZ9TJax # ZE5LzCCruVBh9ZxiqHs3KagBNf7BZgrfNYbtpFyI8ZQDPOdd1/5oe0hadAs1rkcW # ZJeSJqTd9K6mtZhmIeG5iMTXqGugClwEemb7xL+Q2qGb1aNBf7YHGdi/4l6PLqWp # OLx8sEtLTr1ZdXD+m1/khX4W1iXfga9Wh6DfVShSZVVl7VINQmSb10NdzyX+oENi # IAhPYIKw9PK31cD0lW4fF0/refsKG9YA7/jtBG4IOxSUUmhbDIHCXuN5ilpFUy1C # 3SK4kwYaOARolfVD/aPyxdRG9Nx4scMP2Kla3T3ZkNYxByINGaEc0U5fV2eMG+T+ # TVQxyD33uPmhjOcCdKkm+WD/gE/dpUTSH9gfYqCwptTg1dkcCMlePZKWqjULXXkI # bqoFloWQzxbq89kKbmqdJ7M6MIIHcTCCBVmgAwIBAgITMwAAABXF52ueAptJmQAA # AAAAFTANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh # c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD # b3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUg # QXV0aG9yaXR5IDIwMTAwHhcNMjEwOTMwMTgyMjI1WhcNMzAwOTMwMTgzMjI1WjB8 # MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk # bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1N # aWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDCCAiIwDQYJKoZIhvcNAQEBBQAD # ggIPADCCAgoCggIBAOThpkzntHIhC3miy9ckeb0O1YLT/e6cBwfSqWxOdcjKNVf2 # AX9sSuDivbk+F2Az/1xPx2b3lVNxWuJ+Slr+uDZnhUYjDLWNE893MsAQGOhgfWpS # g0S3po5GawcU88V29YZQ3MFEyHFcUTE3oAo4bo3t1w/YJlN8OWECesSq/XJprx2r # rPY2vjUmZNqYO7oaezOtgFt+jBAcnVL+tuhiJdxqD89d9P6OU8/W7IVWTe/dvI2k # 45GPsjksUZzpcGkNyjYtcI4xyDUoveO0hyTD4MmPfrVUj9z6BVWYbWg7mka97aSu # eik3rMvrg0XnRm7KMtXAhjBcTyziYrLNueKNiOSWrAFKu75xqRdbZ2De+JKRHh09 # /SDPc31BmkZ1zcRfNN0Sidb9pSB9fvzZnkXftnIv231fgLrbqn427DZM9ituqBJR # 6L8FA6PRc6ZNN3SUHDSCD/AQ8rdHGO2n6Jl8P0zbr17C89XYcz1DTsEzOUyOArxC # aC4Q6oRRRuLRvWoYWmEBc8pnol7XKHYC4jMYctenIPDC+hIK12NvDMk2ZItboKaD # IV1fMHSRlJTYuVD5C4lh8zYGNRiER9vcG9H9stQcxWv2XFJRXRLbJbqvUAV6bMUR # HXLvjflSxIUXk8A8FdsaN8cIFRg/eKtFtvUeh17aj54WcmnGrnu3tz5q4i6tAgMB # AAGjggHdMIIB2TASBgkrBgEEAYI3FQEEBQIDAQABMCMGCSsGAQQBgjcVAgQWBBQq # p1L+ZMSavoKRPEY1Kc8Q/y8E7jAdBgNVHQ4EFgQUn6cVXQBeYl2D9OXSZacbUzUZ # 6XIwXAYDVR0gBFUwUzBRBgwrBgEEAYI3TIN9AQEwQTA/BggrBgEFBQcCARYzaHR0 # cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9Eb2NzL1JlcG9zaXRvcnkuaHRt # MBMGA1UdJQQMMAoGCCsGAQUFBwMIMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBB # MAsGA1UdDwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNX2VsuP # 6KJcYmjRPZSQW9fOmhjEMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwubWlj # cm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dF8yMDEwLTA2 # LTIzLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93d3cu # bWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMu # Y3J0MA0GCSqGSIb3DQEBCwUAA4ICAQCdVX38Kq3hLB9nATEkW+Geckv8qW/qXBS2 # Pk5HZHixBpOXPTEztTnXwnE2P9pkbHzQdTltuw8x5MKP+2zRoZQYIu7pZmc6U03d # mLq2HnjYNi6cqYJWAAOwBb6J6Gngugnue99qb74py27YP0h1AdkY3m2CDPVtI1Tk # eFN1JFe53Z/zjj3G82jfZfakVqr3lbYoVSfQJL1AoL8ZthISEV09J+BAljis9/kp # icO8F7BUhUKz/AyeixmJ5/ALaoHCgRlCGVJ1ijbCHcNhcy4sa3tuPywJeBTpkbKp # W99Jo3QMvOyRgNI95ko+ZjtPu4b6MhrZlvSP9pEB9s7GdP32THJvEKt1MMU0sHrY # UP4KWN1APMdUbZ1jdEgssU5HLcEUBHG/ZPkkvnNtyo4JvbMBV0lUZNlz138eW0QB # jloZkWsNn6Qo3GcZKCS6OEuabvshVGtqRRFHqfG3rsjoiV5PndLQTHa1V1QJsWkB # RH58oWFsc/4Ku+xBZj1p/cvBQUl+fpO+y/g75LcVv7TOPqUxUYS8vwLBgqJ7Fx0V # iY1w/ue10CgaiQuPNtq6TPmb/wrpNPgkNWcr4A245oyZ1uEi6vAnQj0llOZ0dFtq # 0Z4+7X6gMTN9vMvpe784cETRkPHIqzqKOghif9lwY1NNje6CbaUFEMFxBmoQtB1V # M1izoXBm8qGCA08wggI3AgEBMIH5oYHRpIHOMIHLMQswCQYDVQQGEwJVUzETMBEG # A1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWlj # cm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBP # cGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046MzMwMy0wNUUwLUQ5 # NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2WiIwoBATAH # BgUrDgMCGgMVAAtsSBlmfJgdcnUMZvl8aOmVem25oIGDMIGApH4wfDELMAkGA1UE # BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc # BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0 # IFRpbWUtU3RhbXAgUENBIDIwMTAwDQYJKoZIhvcNAQELBQACBQDtpcWcMCIYDzIw # MjYwNTA2MTM1MDIwWhgPMjAyNjA1MDcxMzUwMjBaMHYwPAYKKwYBBAGEWQoEATEu # MCwwCgIFAO2lxZwCAQAwCQIBAAIBBAIB/zAHAgEAAgIStDAKAgUA7acXHAIBADA2 # BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIB # AAIDAYagMA0GCSqGSIb3DQEBCwUAA4IBAQBh6i7Wvwbs/yc8XGwsDV3tdyF70EoD # ZJeB6zcWps7y0XV0Er9U8SIyZW9U9iOkyAgRF1n7Z9ZnPPDzIR603vjMe44UvVjc # X0goO8ojMkP349+WKFDH2SsNp7TcAraCFbzqOLoxjSJIOUwyyB2aoqRdklsJ7CbM # tY7MgEMrPtRMAXtAaH5zWZDgqZniDrjzAildnI09+NICOAYWAkrHtdZk7b4LcsRZ # 3CBFuk+PN9OPXgmwHc5UjgRXnmRZjF9Hv/eWNGOdz75eh4wLfKYmm0yvNPEUxEUN # raASvENDH+tKTjpd6cBfwORzbVtwIrZ9bdZ5Z6j4seChy8BTvGauGO/TMYIEDTCC # BAkCAQEwgZMwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAO # BgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEm # MCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAIhM8A1 # +9IPIaQAAQAAAiEwDQYJYIZIAWUDBAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsq # hkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQgMnsPOxPK3n8BzmaOr7QK9mhPAEmx # Olf29V7gdqJ1xDowgfoGCyqGSIb3DQEJEAIvMYHqMIHnMIHkMIG9BCAA7yEHnxVV # GuAScvCGcsDAL5hkinVFahJsvQPvjwo9RDCBmDCBgKR+MHwxCzAJBgNVBAYTAlVT # MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK # ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1l # LVN0YW1wIFBDQSAyMDEwAhMzAAACITPANfvSDyGkAAEAAAIhMCIEIHW2Y79cP+PD # /XRejJ5lNpzmgS+eFsBRmjIgh5vD72PaMA0GCSqGSIb3DQEBCwUABIICAMCFF26e # rY4++EmAwLbgslluWNw2FN6NVU8unXtJi8Twj8sAUm1wcHgTypp7xMj0D1ZOAmtD # EkWIREtlRnVAXRYf+vkDG1F+QDMonLKUNU32XEVUptgKHhIkqOy41VTyvQ9ywqvx # sELdIAytt8EBCbmcfmuLRdyW+FA5Wqwc9YUAaDu8E1MNl8Wj/vkm6w3poKDJamjd # zuXgPB5WJ7okUIYweWPZrdZp7QDQ9t3ckQvhqWj+qSQ9A3o9dcpnLh5s8NnZqvTA # frtyi9X1QWUJcYINQFx3corXmxeVlXFvKB7FQHapbfGK/FUTABe7Q5YHWfBOHO68 # U6yJPivgrBvsejDYMDM8m1zPSj/SXh4cnxXielYQyXibOtlO4iW/pNCbWpdnDAHo # 1Qkue0MpRtzzZ/XWBcainJLRif3+ZCHHGnrJk9Mwv2XVP/Jdd0XLEBVD5xJuQOhM # pGGBMckZGNqOI7OybjStHGpoIkv8a7Z1ACB9p++17Yr+t1WOElKdU/yU1EDgWTLQ # 1Dhn1vzzslgIyOOdTIGXAYWJlROMmta4T4ypS1pSi9QfbrOhu7KHZhdj68uD7u6S # GoKUocs36HwolqvPCdwglr3DNuzCDN+APA9vDjldFtTRVd+r1hHghO1kMdXH3Wwo # u521fSsOn5puAuQlwpfekdpHw1Bn44bj9TMy # SIG # End signature block x

Windows NT KPTV 6.2 build 9200 (Windows Server 2012 Datacenter Edition) i586