Crossplatform App der Caritas (Versuch).
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

LogSideloadingTelemetry.ps1 14KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247
  1. #
  2. # This script handles common telemetry tasks for Install.ps1 and Add-AppDevPackage.ps1.
  3. #
  4. function IsVsTelemetryRegOptOutSet()
  5. {
  6. $VsTelemetryRegOptOutKeys = @(
  7. "HKLM:\SOFTWARE\Policies\Microsoft\VisualStudio\SQM",
  8. "HKLM:\SOFTWARE\Wow6432Node\Microsoft\VSCommon\16.0\SQM",
  9. "HKLM:\SOFTWARE\Microsoft\VSCommon\16.0\SQM"
  10. )
  11. foreach ($optOutKey in $VsTelemetryRegOptOutKeys)
  12. {
  13. if (Test-Path $optOutKey)
  14. {
  15. # If any of these keys have the DWORD value OptIn set to 0 that means that the user
  16. # has explicitly opted out of logging telemetry from Visual Studio.
  17. $val = (Get-ItemProperty $optOutKey)."OptIn"
  18. if ($val -eq 0)
  19. {
  20. return $true
  21. }
  22. }
  23. }
  24. return $false
  25. }
  26. try
  27. {
  28. $TelemetryOptedOut = IsVsTelemetryRegOptOutSet
  29. if (!$TelemetryOptedOut)
  30. {
  31. $TelemetryAssembliesFolder = $args[0]
  32. $EventName = $args[1]
  33. $ReturnCode = $args[2]
  34. $ProcessorArchitecture = $args[3]
  35. foreach ($file in Get-ChildItem $TelemetryAssembliesFolder -Filter "*.dll")
  36. {
  37. [Reflection.Assembly]::LoadFile((Join-Path $TelemetryAssembliesFolder $file)) | Out-Null
  38. }
  39. [Microsoft.VisualStudio.Telemetry.TelemetryService]::DefaultSession.IsOptedIn = $True
  40. [Microsoft.VisualStudio.Telemetry.TelemetryService]::DefaultSession.Start()
  41. $TelEvent = New-Object "Microsoft.VisualStudio.Telemetry.TelemetryEvent" -ArgumentList $EventName
  42. if ($null -ne $ReturnCode)
  43. {
  44. $TelEvent.Properties["VS.DesignTools.SideLoadingScript.ReturnCode"] = $ReturnCode
  45. }
  46. if ($null -ne $ProcessorArchitecture)
  47. {
  48. $TelEvent.Properties["VS.DesignTools.SideLoadingScript.ProcessorArchitecture"] = $ProcessorArchitecture
  49. }
  50. [Microsoft.VisualStudio.Telemetry.TelemetryService]::DefaultSession.PostEvent($TelEvent)
  51. [Microsoft.VisualStudio.Telemetry.TelemetryService]::DefaultSession.Dispose()
  52. }
  53. }
  54. catch
  55. {
  56. # Ignore telemetry errors
  57. }
  58. # SIG # Begin signature block
  59. # MIIhdAYJKoZIhvcNAQcCoIIhZTCCIWECAQExDzANBglghkgBZQMEAgEFADB5Bgor
  60. # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
  61. # KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDJYj3WBgxKGoze
  62. # wr0Sg8FHTlHGd5t93FeYNiZX9fYkC6CCC3IwggT6MIID4qADAgECAhMzAAAD3o1W
  63. # glrxpKlnAAAAAAPeMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD
  64. # VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy
  65. # b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p
  66. # bmcgUENBIDIwMTAwHhcNMjAxMjE1MjEyNDIwWhcNMjExMjAyMjEyNDIwWjB0MQsw
  67. # CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u
  68. # ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy
  69. # b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
  70. # AQCn8/DiSdIkSLNe/aikoxkWIAtCq9W+7+dbEXN/cZ4ZkeX/mn8MPRJVyt7FaE3k
  71. # bFofDl4GH5xZOQoOUhGh8mfq3sUq9RDZ6T1vFanVTeRq3iamvmjYHVgYq1MW9RdY
  72. # 1UaGH7OE2L0coGjp46azVnYJlj7I1BWMZXxYRSxGQttNi9g1lwXCGfGl+aTqWSfy
  73. # hRpMB/mpVC4IF8MYsHVYctYb1ex+3ZwDSmwsX/Y4sxtSpt18xX9Rso2fES8GGnQK
  74. # dBnMMdySgdp0E4ACWpa0iQDTBQMQVSTfrVFjyetviHoMejI+SgbkiPrEezGGvTiG
  75. # Ooc6+eWSEwYMy9sxw0GaCiVvAgMBAAGjggF5MIIBdTAfBgNVHSUEGDAWBgorBgEE
  76. # AYI3PQYBBggrBgEFBQcDAzAdBgNVHQ4EFgQUJOo70fFaruzlxG7u+R2Hd9N1TIkw
  77. # UAYDVR0RBEkwR6RFMEMxKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVyYXRpb25zIFB1
  78. # ZXJ0byBSaWNvMRYwFAYDVQQFEw0yMzA4NjUrNDYzMTMzMB8GA1UdIwQYMBaAFOb8
  79. # X3u7IgBY5HJOtfQhdCMy5u+sMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwu
  80. # bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY0NvZFNpZ1BDQV8yMDEw
  81. # LTA3LTA2LmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93
  82. # d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljQ29kU2lnUENBXzIwMTAtMDct
  83. # MDYuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggEBADxf8A60TSfr
  84. # Xa5t5G1ExJ08OpjCi9RBsN8T+wkozcz1E0QfB8mxaE38u00S89z+HoCJ5/LCgMBY
  85. # VoTWAHtbG4PYT7rLcGzBuX8S+OIlBR2LtghZ5H6mCiblpD/3dMz2d2Z62/TCYAHp
  86. # 0iKlHa+EJ/KW7SPsvfUNxQ2IbolvXfQGuTyFV9HEN/NdfmWWg78vXVZ25TlM1HLj
  87. # uotGgyG7Td3b4cHQBZbO+XVZ/AITsfAB6TlqFzGCLINYyZ90EX0sAcm6mVvO2GDU
  88. # PiqJjKoh+0nO06ccETCeyMMRxt6oyJB+0UkldpKX4aZc18u0gNohHGx04bp9Jc6D
  89. # TuTh3ynE8hwwggZwMIIEWKADAgECAgphDFJMAAAAAAADMA0GCSqGSIb3DQEBCwUA
  90. # MIGIMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH
  91. # UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQD
  92. # EylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0x
  93. # MDA3MDYyMDQwMTdaFw0yNTA3MDYyMDUwMTdaMH4xCzAJBgNVBAYTAlVTMRMwEQYD
  94. # VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy
  95. # b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p
  96. # bmcgUENBIDIwMTAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDpDmRQ
  97. # eWe1xOP9CQBMnpSs91Zo6kTYz8VYT6mldnxtRbrTOZK0pB75+WWC5BfSj/1EnAjo
  98. # ZZPOLFWEv30I4y4rqEErGLeiS25JTGsVB97R0sKJHnGUzbV/S7SvCNjMiNZrF5Q6
  99. # k84mP+zm/jSYV9UdXUn2siou1YW7WT/4kLQrg3TKK7M7RuPwRknBF2ZUyRy9HcRV
  100. # Yldy+Ge5JSA03l2mpZVeqyiAzdWynuUDtWPTshTIwciKJgpZfwfs/w7tgBI1TBKm
  101. # vlJb9aba4IsLSHfWhUfVELnG6Krui2otBVxgxrQqW5wjHF9F4xoUHm83yxkzgGqJ
  102. # TaNqZmN4k9Uwz5UfAgMBAAGjggHjMIIB3zAQBgkrBgEEAYI3FQEEAwIBADAdBgNV
  103. # HQ4EFgQU5vxfe7siAFjkck619CF0IzLm76wwGQYJKwYBBAGCNxQCBAweCgBTAHUA
  104. # YgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU
  105. # 1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDovL2Ny
  106. # bC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWljUm9vQ2VyQXV0XzIw
  107. # MTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0cDov
  108. # L3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXRfMjAxMC0w
  109. # Ni0yMy5jcnQwgZ0GA1UdIASBlTCBkjCBjwYJKwYBBAGCNy4DMIGBMD0GCCsGAQUF
  110. # BwIBFjFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vUEtJL2RvY3MvQ1BTL2RlZmF1
  111. # bHQuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAFAAbwBsAGkAYwB5
  112. # AF8AUwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQAadO9X
  113. # Tyl7xBaFeLhQ0yL8CZ2sgpf4NP8qLJeVEuXkv8+/k8jjNKnbgbjcHgC+0jVvr+V/
  114. # eZV35QLU8evYzU4eG2GiwlojGvCMqGJRRWcI4z88HpP4MIUXyDlAptcOsyEp5aWh
  115. # aYwik8x0mOehR0PyU6zADzBpf/7SJSBtb2HT3wfV2XIALGmGdj1R26Y5SMk3YW0H
  116. # 3VMZy6fWYcK/4oOrD+Brm5XWfShRsIlKUaSabMi3H0oaDmmp19zBftFJcKq2rbty
  117. # R2MX+qbWoqaG7KgQRJtjtrJpiQbHRoZ6GD/oxR0h1Xv5AiMtxUHLvx1MyBbvsZx/
  118. # /CJLSYpuFeOmf3Zb0VN5kYWd1dLbPXM18zyuVLJSR2rAqhOV0o4R2plnXjKM+zeF
  119. # 0dx1hZyHxlpXhcK/3Q2PjJst67TuzyfTtV5p+qQWBAGnJGdzz01Ptt4FVpd69+lS
  120. # TfR3BU+FxtgL8Y7tQgnRDXbjI1Z4IiY2vsqxjG6qHeSF2kczYo+kyZEzX3EeQK+Y
  121. # Zcki6EIhJYocLWDZN4lBiSoWD9dhPJRoYFLv1keZoIBA7hWBdz6c4FMYGlAdOJWb
  122. # HmYzEyc5F3iHNs5Ow1+y9T1HU7bg5dsLYT0q15IszjdaPkBCMaQfEAjCVpy/JF1R
  123. # Ap1qedIX09rBlI4HeyVxRKsGaubUxt8jmpZ1xTGCFVgwghVUAgEBMIGVMH4xCzAJ
  124. # BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k
  125. # MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jv
  126. # c29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTACEzMAAAPejVaCWvGkqWcAAAAAA94w
  127. # DQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYK
  128. # KwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIIP0IUOM
  129. # BJw0eRiT2Osp18eCU/zvQ83hW8jMkUFKv3nYMEIGCisGAQQBgjcCAQwxNDAyoBSA
  130. # EgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20w
  131. # DQYJKoZIhvcNAQEBBQAEggEAkU009+ZHZXP3r3Bkt3GDP/U4ZYezVSQtgV/Ki0HU
  132. # axkTJkb0ncaNzWrsbniQX9MtdZGanz3uxYl3Z5ZWPd8zMQY/zfEN8RXrnuNvhzE1
  133. # 5WohjhQNrM9kLDmkUF8seRb1cyCWWPm0W4B3Im9+dKGVTugoBAoJpJCM2f9r4PdN
  134. # D8STMQ+RIFIMIFKB8Jc3LFUZsUUy/jjLMS4nNSh8L0GpaGTtkrUV8j8720DjqAFk
  135. # Z+2nLlrDisWK9QhlrVR9qe+ujzT75It5UzThYzxxQHsjiuxUBM3T6StLzUX1wlC3
  136. # 6P4YCDdKlgB5f6fY4ZXx7tLcXin1srgXqQRHboFXeYvvQKGCEuIwghLeBgorBgEE
  137. # AYI3AwMBMYISzjCCEsoGCSqGSIb3DQEHAqCCErswghK3AgEDMQ8wDQYJYIZIAWUD
  138. # BAIBBQAwggFRBgsqhkiG9w0BCRABBKCCAUAEggE8MIIBOAIBAQYKKwYBBAGEWQoD
  139. # ATAxMA0GCWCGSAFlAwQCAQUABCCcMgDX4DD5mnTk5deONOsJXkvf9Pha2oEO/3fT
  140. # V8cQEAIGYD0P8jllGBMyMDIxMDMwMjE5NTEyOS4xMzVaMASAAgH0oIHQpIHNMIHK
  141. # MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk
  142. # bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxN
  143. # aWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25zMSYwJAYDVQQLEx1UaGFsZXMgVFNT
  144. # IEVTTjpBRTJDLUUzMkItMUFGQzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3Rh
  145. # bXAgU2VydmljZaCCDjkwggTxMIID2aADAgECAhMzAAABSKKIRVa8L4C/AAAAAAFI
  146. # MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n
  147. # dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y
  148. # YXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMB4X
  149. # DTIwMTExMjE4MjU1NloXDTIyMDIxMTE4MjU1NlowgcoxCzAJBgNVBAYTAlVTMRMw
  150. # EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN
  151. # aWNyb3NvZnQgQ29ycG9yYXRpb24xJTAjBgNVBAsTHE1pY3Jvc29mdCBBbWVyaWNh
  152. # IE9wZXJhdGlvbnMxJjAkBgNVBAsTHVRoYWxlcyBUU1MgRVNOOkFFMkMtRTMyQi0x
  153. # QUZDMSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNlMIIBIjAN
  154. # BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9/94rxWEitHRrXF2mfKTSxAEW62i
  155. # XsK8ovyYG2ipau4YRSFNRJGNBzIhUZtv1rLpLetpNuc7w8Vten6YYOfO+vpdcGJw
  156. # pYHv6xZa0dlLtVsLRZnNcRqcuPrsaGwhDHiBQxoS+QzU22zorC6wVGG8l6+3z88W
  157. # 1ZBMCQz+RRtp9K6Najo3oCJCyI11OqmoXbkMU37DzhKfI4KjCp/vn6R+n71ypXsF
  158. # s3bH74YmeB+CKtQkzp/n5ManA8Ex2JGGWIKpvtV9ce+OfK6evaoxXlT9xmwLyW2N
  159. # 2xZaubssa4j3GcQ2awen9cAC16ztvyHX1RHcE1qiSA2QSY08nEIYcUt4tQIDAQAB
  160. # o4IBGzCCARcwHQYDVR0OBBYEFIcy8GmfDgS0SR9LPROt6SHFiaJHMB8GA1UdIwQY
  161. # MBaAFNVjOlyKMZDzQ3t8RhvFM2hahW1VMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6
  162. # Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY1RpbVN0YVBD
  163. # QV8yMDEwLTA3LTAxLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0
  164. # dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljVGltU3RhUENBXzIw
  165. # MTAtMDctMDEuY3J0MAwGA1UdEwEB/wQCMAAwEwYDVR0lBAwwCgYIKwYBBQUHAwgw
  166. # DQYJKoZIhvcNAQELBQADggEBAGYSlsGzJwvUMsHK5YLNKl/W4cYmRr3vvCRA9u4T
  167. # oshmvEfZ6sx4OPqujSn2F30utrjFCadrvie7SDVE3/9boC/iuEcLD1XoQ2rEiSY/
  168. # u26CMWT/AFP8UHVWO6oJkBpneBfnOYZCSbZejUXmBPdPEOvfKo9Zg6a9DMfuC4T/
  169. # 7U6i+h6WRFEZYRTnXZ8i0rVQhXXzSNchhz/Z9MjdSn4RhFd7OzAc6RSV8Dn5cIMh
  170. # PXMEPI4zk1aTUXQqi/z+VYggKNnXIh43dbtYtUOEGesW9PgdR3WRURCzohcH9LId
  171. # 2dcTnkhXB4NKyxPq7Hh8+EIb6BI+4fWw/FTe/x5wg8FqQSUwggZxMIIEWaADAgEC
  172. # AgphCYEqAAAAAAACMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEG
  173. # A1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWlj
  174. # cm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0
  175. # aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0xMDA3MDEyMTM2NTVaFw0yNTA3MDEy
  176. # MTQ2NTVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYD
  177. # VQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAk
  178. # BgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMIIBIjANBgkqhkiG
  179. # 9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqR0NvHcRijog7PwTl/X6f2mUa3RUENWlCgCC
  180. # hfvtfGhLLF/Fw+Vhwna3PmYrW/AVUycEMR9BGxqVHc4JE458YTBZsTBED/FgiIRU
  181. # QwzXTbg4CLNC3ZOs1nMwVyaCo0UN0Or1R4HNvyRgMlhgRvJYR4YyhB50YWeRX4FU
  182. # sc+TTJLBxKZd0WETbijGGvmGgLvfYfxGwScdJGcSchohiq9LZIlQYrFd/XcfPfBX
  183. # day9ikJNQFHRD5wGPmd/9WbAA5ZEfu/QS/1u5ZrKsajyeioKMfDaTgaRtogINeh4
  184. # HLDpmc085y9Euqf03GS9pAHBIAmTeM38vMDJRF1eFpwBBU8iTQIDAQABo4IB5jCC
  185. # AeIwEAYJKwYBBAGCNxUBBAMCAQAwHQYDVR0OBBYEFNVjOlyKMZDzQ3t8RhvFM2ha
  186. # hW1VMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1UdDwQEAwIBhjAPBgNV
  187. # HRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNX2VsuP6KJcYmjRPZSQW9fOmhjEMFYG
  188. # A1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kvY3Js
  189. # L3Byb2R1Y3RzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNybDBaBggrBgEFBQcB
  190. # AQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kv
  191. # Y2VydHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3J0MIGgBgNVHSABAf8EgZUw
  192. # gZIwgY8GCSsGAQQBgjcuAzCBgTA9BggrBgEFBQcCARYxaHR0cDovL3d3dy5taWNy
  193. # b3NvZnQuY29tL1BLSS9kb2NzL0NQUy9kZWZhdWx0Lmh0bTBABggrBgEFBQcCAjA0
  194. # HjIgHQBMAGUAZwBhAGwAXwBQAG8AbABpAGMAeQBfAFMAdABhAHQAZQBtAGUAbgB0
  195. # AC4gHTANBgkqhkiG9w0BAQsFAAOCAgEAB+aIUQ3ixuCYP4FxAz2do6Ehb7Prpsz1
  196. # Mb7PBeKp/vpXbRkws8LFZslq3/Xn8Hi9x6ieJeP5vO1rVFcIK1GCRBL7uVOMzPRg
  197. # Eop2zEBAQZvcXBf/XPleFzWYJFZLdO9CEMivv3/Gf/I3fVo/HPKZeUqRUgCvOA8X
  198. # 9S95gWXZqbVr5MfO9sp6AG9LMEQkIjzP7QOllo9ZKby2/QThcJ8ySif9Va8v/rbl
  199. # jjO7Yl+a21dA6fHOmWaQjP9qYn/dxUoLkSbiOewZSnFjnXshbcOco6I8+n99lmqQ
  200. # eKZt0uGc+R38ONiU9MalCpaGpL2eGq4EQoO4tYCbIjggtSXlZOz39L9+Y1klD3ou
  201. # OVd2onGqBooPiRa6YacRy5rYDkeagMXQzafQ732D8OE7cQnfXXSYIghh2rBQHm+9
  202. # 8eEA3+cxB6STOvdlR3jo+KhIq/fecn5ha293qYHLpwmsObvsxsvYgrRyzR30uIUB
  203. # HoD7G4kqVDmyW9rIDVWZeodzOwjmmC3qjeAzLhIp9cAvVCch98isTtoouLGp25ay
  204. # p0Kiyc8ZQU3ghvkqmqMRZjDTu3QyS99je/WZii8bxyGvWbWu3EQ8l1Bx16HSxVXj
  205. # ad5XwdHeMMD9zOZN+w2/XU/pnR4ZOC+8z1gFLu8NoFA12u8JJxzVs341Hgi62jbb
  206. # 01+P3nSISRKhggLLMIICNAIBATCB+KGB0KSBzTCByjELMAkGA1UEBhMCVVMxEzAR
  207. # BgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1p
  208. # Y3Jvc29mdCBDb3Jwb3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2Eg
  209. # T3BlcmF0aW9uczEmMCQGA1UECxMdVGhhbGVzIFRTUyBFU046QUUyQy1FMzJCLTFB
  210. # RkMxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2WiIwoBATAH
  211. # BgUrDgMCGgMVAIcrgpa6HFn+EiHEWnwBF9UYbOs5oIGDMIGApH4wfDELMAkGA1UE
  212. # BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc
  213. # BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0
  214. # IFRpbWUtU3RhbXAgUENBIDIwMTAwDQYJKoZIhvcNAQEFBQACBQDj6N/gMCIYDzIw
  215. # MjEwMzAzMDAwMTM2WhgPMjAyMTAzMDQwMDAxMzZaMHQwOgYKKwYBBAGEWQoEATEs
  216. # MCowCgIFAOPo3+ACAQAwBwIBAAICEM0wBwIBAAICEMUwCgIFAOPqMWACAQAwNgYK
  217. # KwYBBAGEWQoEAjEoMCYwDAYKKwYBBAGEWQoDAqAKMAgCAQACAwehIKEKMAgCAQAC
  218. # AwGGoDANBgkqhkiG9w0BAQUFAAOBgQAB2ZrJMrstsGHJNvZSzElnbQ0ctMXVzvB0
  219. # BYaMURmk406AuBRiQVCIusRxddwHQqdrxTQ7hstya4jMLWbnmYuvOR22D59iOSTn
  220. # r+kdReruCHZunagpEpNOeb0/Sw07ytNGbtkSg1XKrjKDAKrr5iKkH29yj2z0tWHB
  221. # jTuEkNppzzGCAw0wggMJAgEBMIGTMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpX
  222. # YXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQg
  223. # Q29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAy
  224. # MDEwAhMzAAABSKKIRVa8L4C/AAAAAAFIMA0GCWCGSAFlAwQCAQUAoIIBSjAaBgkq
  225. # hkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwLwYJKoZIhvcNAQkEMSIEIMb3vSNViWr1
  226. # eU3aHP4cTnG1rcH4xPCH6XKBHpXYkFOkMIH6BgsqhkiG9w0BCRACLzGB6jCB5zCB
  227. # 5DCBvQQgqZAa6ox5ob8mH+bU3E7w+WOGvle/U8FVek9WgMHbaNgwgZgwgYCkfjB8
  228. # MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk
  229. # bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1N
  230. # aWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAUiiiEVWvC+AvwAAAAAB
  231. # SDAiBCBZ0dXvqfgnknxcBonc0mlD0azXkKqc4SHLUns8wBFS1TANBgkqhkiG9w0B
  232. # AQsFAASCAQDKOedMgkMcAHxG7Y8C0lvA1ZK5rA1yqvaTVPH64VHFsLESd4XxkqeE
  233. # N5GnGnQ4PsoSIXGKLGSJvlbHKv0B1VsEAMbizfznY+stKfY2nJyAzk+7aq4fISaf
  234. # Dy0q7f+8+Aai3d64TRHR1XtsVsr9mRnJCArSF4TrB3BtI/Y5aYtbsXNzWN/IqWd6
  235. # 6YEMKfNJQDJyoVfySDeRWdR/fBEYzdw3COYtctotGqbLNB7p1J+XMF+fqctePtHk
  236. # ea4GYBlSffXGkbqDJaHl+qZ2ZCCpQj7D4z7FqqLjf5rtZR1EeRjnKp+3R8W5na1G
  237. # o8SHKdBFGTQsQ8Jhlf53C70jLwMVM1aK
  238. # SIG # End signature block