@hpcc-js/comms 2.66.0 → 2.70.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/dist/index.es6.js +259 -200
  2. package/dist/index.es6.js.map +1 -1
  3. package/dist/index.js +149 -102
  4. package/dist/index.js.map +1 -1
  5. package/dist/index.min.js +1 -1
  6. package/dist/index.min.js.map +1 -1
  7. package/dist/index.node.js +237 -217
  8. package/dist/index.node.js.map +1 -1
  9. package/dist/index.node.min.js +1 -1
  10. package/dist/index.node.min.js.map +1 -1
  11. package/lib-es6/__package__.js +2 -2
  12. package/lib-es6/__package__.js.map +1 -1
  13. package/lib-es6/clienttools/eclMeta.js +4 -4
  14. package/lib-es6/clienttools/eclMeta.js.map +1 -1
  15. package/lib-es6/clienttools/eclcc.js +18 -18
  16. package/lib-es6/clienttools/eclcc.js.map +1 -1
  17. package/lib-es6/connection.js +6 -6
  18. package/lib-es6/connection.js.map +1 -1
  19. package/lib-es6/ecl/graph.js +5 -5
  20. package/lib-es6/ecl/graph.js.map +1 -1
  21. package/lib-es6/ecl/logicalFile.js +2 -2
  22. package/lib-es6/ecl/logicalFile.js.map +1 -1
  23. package/lib-es6/ecl/result.js +1 -1
  24. package/lib-es6/ecl/result.js.map +1 -1
  25. package/lib-es6/ecl/scope.js +5 -5
  26. package/lib-es6/ecl/scope.js.map +1 -1
  27. package/lib-es6/ecl/store.js +4 -4
  28. package/lib-es6/ecl/store.js.map +1 -1
  29. package/lib-es6/ecl/targetCluster.js +2 -2
  30. package/lib-es6/ecl/targetCluster.js.map +1 -1
  31. package/lib-es6/ecl/topology.js +1 -1
  32. package/lib-es6/ecl/topology.js.map +1 -1
  33. package/lib-es6/ecl/workunit.js +7 -4
  34. package/lib-es6/ecl/workunit.js.map +1 -1
  35. package/lib-es6/espConnection.js +1 -1
  36. package/lib-es6/espConnection.js.map +1 -1
  37. package/lib-es6/index-common.js +2 -0
  38. package/lib-es6/index-common.js.map +1 -1
  39. package/lib-es6/services/wsDFU.js +1 -1
  40. package/lib-es6/services/wsDFU.js.map +1 -1
  41. package/lib-es6/services/wsEcl.js +3 -3
  42. package/lib-es6/services/wsEcl.js.map +1 -1
  43. package/lib-es6/services/wsLogaccess.js +11 -0
  44. package/lib-es6/services/wsLogaccess.js.map +1 -0
  45. package/lib-es6/services/wsResources.js +11 -0
  46. package/lib-es6/services/wsResources.js.map +1 -0
  47. package/lib-es6/services/wsdl/WsLogaccess/v1/WsLogaccess.js +28 -0
  48. package/lib-es6/services/wsdl/WsLogaccess/v1/WsLogaccess.js.map +1 -0
  49. package/lib-es6/services/wsdl/WsResources/v1.01/WsResources.js +20 -0
  50. package/lib-es6/services/wsdl/WsResources/v1.01/WsResources.js.map +1 -0
  51. package/package.json +36 -21
  52. package/src/__package__.ts +2 -2
  53. package/src/ecl/topology.ts +1 -1
  54. package/src/ecl/workunit.ts +3 -0
  55. package/src/index-common.ts +2 -0
  56. package/src/services/wsDFU.ts +3 -2
  57. package/src/services/wsLogaccess.ts +8 -0
  58. package/src/services/wsResources.ts +8 -0
  59. package/src/services/wsdl/WsLogaccess/v1/WsLogaccess.ts +78 -0
  60. package/src/services/wsdl/WsResources/v1.01/WsResources.ts +119 -0
  61. package/types/__package__.d.ts +2 -2
  62. package/types/__package__.d.ts.map +1 -1
  63. package/types/ecl/activity.d.ts +1 -1
  64. package/types/ecl/activity.d.ts.map +1 -1
  65. package/types/ecl/topology.d.ts.map +1 -1
  66. package/types/ecl/workunit.d.ts.map +1 -1
  67. package/types/index-common.d.ts +2 -0
  68. package/types/index-common.d.ts.map +1 -1
  69. package/types/services/wsDFU.d.ts +2 -1
  70. package/types/services/wsDFU.d.ts.map +1 -1
  71. package/types/services/wsLogaccess.d.ts +5 -0
  72. package/types/services/wsLogaccess.d.ts.map +1 -0
  73. package/types/services/wsResources.d.ts +5 -0
  74. package/types/services/wsResources.d.ts.map +1 -0
  75. package/types/services/wsdl/WsLogaccess/v1/WsLogaccess.d.ts +51 -0
  76. package/types/services/wsdl/WsLogaccess/v1/WsLogaccess.d.ts.map +1 -0
  77. package/types/services/wsdl/WsResources/v1.01/WsResources.d.ts +85 -0
  78. package/types/services/wsdl/WsResources/v1.01/WsResources.d.ts.map +1 -0
  79. package/types-3.4/__package__.d.ts +2 -2
  80. package/types-3.4/ecl/activity.d.ts +1 -1
  81. package/types-3.4/index-common.d.ts +2 -0
  82. package/types-3.4/services/wsDFU.d.ts +2 -1
  83. package/types-3.4/services/wsLogaccess.d.ts +5 -0
  84. package/types-3.4/services/wsResources.d.ts +5 -0
  85. package/types-3.4/services/wsdl/WsLogaccess/v1/WsLogaccess.d.ts +51 -0
  86. package/types-3.4/services/wsdl/WsResources/v1.01/WsResources.d.ts +85 -0
package/dist/index.es6.js CHANGED
@@ -2,19 +2,19 @@ import { scopedLogger, join, promiseTimeout, exists, deepMixin, xml2json, StateO
2
2
  import { DOMParser } from '@xmldom/xmldom';
3
3
  import fetch$1 from 'node-fetch';
4
4
  import AbortController from 'abort-controller';
5
- import * as https from 'https';
5
+ import { Agent, globalAgent } from 'https';
6
6
  import { Buffer } from 'safe-buffer';
7
- import * as cp from 'child_process';
8
- import * as fs from 'fs';
9
- import * as os from 'os';
10
- import * as path from 'path';
11
- import * as tmp from 'tmp';
7
+ import { spawn } from 'child_process';
8
+ import { readdirSync, lstatSync, existsSync, accessSync, readFileSync, unlink, statSync } from 'fs';
9
+ import { type, EOL } from 'os';
10
+ import { join as join$1, basename, extname, parse, relative, sep, dirname, normalize } from 'path';
11
+ import { tmpNameSync } from 'tmp';
12
12
 
13
13
  var trustwave = "\nTrustwave Secure Global Extended Validation CA, Level 1\nSecureTrust Corporation\n00F6F61CE4A3635BB0CA8AACEEFCB2D0F0\n-----BEGIN CERTIFICATE-----\nMIIE+DCCA+CgAwIBAgIRAPb2HOSjY1uwyoqs7vyy0PAwDQYJKoZIhvcNAQELBQAw\nSjELMAkGA1UEBhMCVVMxIDAeBgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9u\nMRkwFwYDVQQDExBTZWN1cmUgR2xvYmFsIENBMB4XDTE1MDgxMjIwMTcyOVoXDTI1\nMDgwOTIwMTcyOVowgbgxCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhJbGxpbm9pczEQ\nMA4GA1UEBxMHQ2hpY2FnbzEhMB8GA1UEChMYVHJ1c3R3YXZlIEhvbGRpbmdzLCBJ\nbmMuMUAwPgYDVQQDEzdUcnVzdHdhdmUgU2VjdXJlIEdsb2JhbCBFeHRlbmRlZCBW\nYWxpZGF0aW9uIENBLCBMZXZlbCAxMR8wHQYJKoZIhvcNAQkBFhBjYUB0cnVzdHdh\ndmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx6D45slgLGq8\n2G/NPFnuFscv7UM1eRoQyx3h0DdSTfoRvHkkNv4Gf6OudZDOXqwV86v/SjcNEP87\nnjMOEqQ7dKQPtiYzEkK0MOrjbRySFC5dvCTI9T8tnBgFpYA9YXwbpUqXxEi0Ayoq\nhA7UQhS7Q+YGrVwZaJ6LiWrQw+x8ACPLqEvPmMZhrxagKwrsKbylMsAQ1ljk8X74\nJ76TSxi/AZpxos7tHD0XbO8elXFZexfsgPLDRpMs6jREVeQj1jVCWLtg9twiXzcI\naUCchBsTSc92WGkKwBnH70dlL2N8kT/BNe3tAsXuBpZRILANY59jLrLnHEJNfado\nt6ZpougolQIDAQABo4IBaDCCAWQwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4E\nFgQUx33qXRmrVNT6P+ZKc956sjwdbC4wDgYDVR0PAQH/BAQDAgGGMD0GA1UdIAQ2\nMDQwMgYEVR0gADAqMCgGCCsGAQUFBwIBFhxodHRwczovL3NzbC50cnVzdHdhdmUu\nY29tL0NBMDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwudHJ1c3R3YXZlLmNv\nbS9TR0NBLmNybDBsBggrBgEFBQcBAQRgMF4wJQYIKwYBBQUHMAGGGWh0dHA6Ly9v\nY3NwLnRydXN0d2F2ZS5jb20wNQYIKwYBBQUHMAKGKWh0dHA6Ly9zc2wudHJ1c3R3\nYXZlLmNvbS9pc3N1ZXJzL1NHQ0EuY3J0MB0GA1UdJQQWMBQGCCsGAQUFBwMCBggr\nBgEFBQcDATAfBgNVHSMEGDAWgBSvRATCQX5Ig9tOOQLs7IR65s7JpDANBgkqhkiG\n9w0BAQsFAAOCAQEAkn/4wKQRLo41fDRkZtfF+3o8JtUmfQXf2zoo9Ll29hhCiz8k\nBOpIek9MrFd/cdNgUw1nckIi+J3udyFrbO5p64JBvtc0K4kAOPFSKpHssFcnRLPx\nFXgGxXq6ohD4Py+xaEApslYFfMy89N6DKs/v/10/+/xD831RFEUMUoQxBimsmmNf\n+cLoMwF5bpoSz9JcWqCmSlK0Nla1dPphaoA/MObLN2iQPpeM3yF5dTUm1tPxe39W\nOlr6nLU1xO+yRDrlGLXrVDP1l1/qGVuwi+xufIAcdFycLLBjSSNX7LOIK3tbva7A\nWctLUs+qhIlUrbPyFERm7YOY4SttWdozeYFNfg==\n-----END CERTIFICATE-----\n\nSecureTrust Domain Validation CA, Level 1\nSecureTrust Corporation\n06F1EC00E80B1BAF9870A7C4B6CBE401A32D68\n-----BEGIN CERTIFICATE-----\nMIIEfzCCA2egAwIBAgITBvHsAOgLG6+YcKfEtsvkAaMtaDANBgkqhkiG9w0BAQsF\nADBIMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRp\nb24xFzAVBgNVBAMTDlNlY3VyZVRydXN0IENBMB4XDTE5MDEyOTEyNTk1OVoXDTI5\nMDEyOTEyNTk1OVowfDEyMDAGA1UEAxMpU2VjdXJlVHJ1c3QgRG9tYWluIFZhbGlk\nYXRpb24gQ0EsIExldmVsIDExFDASBgNVBAoTC1NlY3VyZVRydXN0MRAwDgYDVQQH\nEwdDaGljYWdvMREwDwYDVQQIEwhJbGxpbm9pczELMAkGA1UEBhMCVVMwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCjRHBw8iIivBBrfE6HqexQK0oMt2Y/\nx8jO3fN96KEazZwEoGidwloRBk2Q7VfVvZ0ZDk+qwJZGLZJLS1ntGaZLH4/Iel+r\nPnp36IVF7J5MNDB+K81a/y9svEMfDu0p3FdlBUyhHvizZ/zFNP3tolmQfZ7T0mGL\n7lutlNAzFYoVTUlVeF5cSC8Yca906TEKyizYXuXcY8Diee+t+fQRHmSI5Hk5kyXD\nYFWcf2tXEfdkuFlDjJ7HPdFyfJzrNjD+cbqt8R5rZKnK1GNVP1dXm0cIYS+BMlMa\nCC1yF18oygbnOZLw5fDv9bxs4MOgF8E/Iypw0hLQHVkuD8wAvxVgPsqvAgMBAAGj\nggEsMIIBKDASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBhjATBgNV\nHSUEDDAKBggrBgEFBQcDATAdBgNVHQ4EFgQUYt6tehfefLfDfCMXo7Em5UbXOvQw\nHwYDVR0jBBgwFoAUQjK2FvoE/f5dS3rD/fdMQB1aQ68wQQYDVR0gBDowODA2BgRV\nHSAAMC4wLAYIKwYBBQUHAgEWIGh0dHBzOi8vY2VydHMuc2VjdXJldHJ1c3QuY29t\nL0NBMDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwudHJ1c3R3YXZlLmNvbS9T\nVENBLmNybDA2BggrBgEFBQcBAQQqMCgwJgYIKwYBBQUHMAGGGmh0dHA6Ly9vY3Nw\nLnRydXN0d2F2ZS5jb20vMA0GCSqGSIb3DQEBCwUAA4IBAQAHXPYhl+++o//di2Qm\naWGmC1ijxbGbKA4jOSDRvQfxlWOVkqPF11Dpxz+V8Rxw7QFFVoJ5mHpfoXtQOijV\ntsCFknxTKgzQeArNkZrkXBNpYOJAcuc5v0eX0OllBWgVdIvZRl2TM5L/u1WFrlPr\nqwWdEYTkinQwgAHXVV/7WZi6c4StcqNnlw93mlvN6Vspzaf/mWtcYp+aqT9vrqHt\nyNR1k8Ri5eIRPIU0B8woiXTj3bifLg6/O217SY5cWwQKCMFsa6nGWoRVCJ0JJXa0\nZ+m3mPQD2OcW5YMrynhL2VWohyfZAjB8l/NZaeRT7M+vki56fxbx3Bk2lqy8Z1Zz\nWd5m\n-----END CERTIFICATE-----\n\nSecureTrust Extended Validation CA, Level 1\nSecureTrust Corporation\n06F1EC00E31E46D341B2B2633CE480D915F81D\n-----BEGIN CERTIFICATE-----\nMIIEizCCA3OgAwIBAgITBvHsAOMeRtNBsrJjPOSA2RX4HTANBgkqhkiG9w0BAQsF\nADBIMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRp\nb24xFzAVBgNVBAMTDlNlY3VyZVRydXN0IENBMB4XDTE5MDEyOTEyNTk1OVoXDTI5\nMDEyOTEyNTk1OVowfjE0MDIGA1UEAxMrU2VjdXJlVHJ1c3QgRXh0ZW5kZWQgVmFs\naWRhdGlvbiBDQSwgTGV2ZWwgMTEUMBIGA1UEChMLU2VjdXJlVHJ1c3QxEDAOBgNV\nBAcTB0NoaWNhZ28xETAPBgNVBAgTCElsbGlub2lzMQswCQYDVQQGEwJVUzCCASIw\nDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANS6vRtFpCJBJ7zJODH07Y3k54Qn\nVIBhnQmmWoqFqzCVMX97GAyAfzjcQrhl/TNiJiRCrVQWPI4n0R8eUd91Ab1Qzfsr\nnp+0NRbagVDa6+nF0KcNxbSZ6/iZQ7Ac3HyhCvJS2rH2CVYlzqdsrxDXcZk69jOO\ndPV8+w+7eNIn34BKpB/ZF7iXApDoAKG81kg1VtpGOxJhxTsKLuJmURT4pQjtZqF+\nF6rN64j5T2DOK0gOA4G7BLoTdOQuXkPS38LXKgZ43lKqEenjmiOaMF/XuLYzaHrW\nGYgCM2wJsykgdB9hCsTTEwsHRZzt2q9mLBDvYYWVhql1/kR4K/RN4JdESEECAwEA\nAaOCATYwggEyMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMB0G\nA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATAdBgNVHQ4EFgQUA6uAxlUKKpWh\n4Nf+GubAynjMsJYwHwYDVR0jBBgwFoAUQjK2FvoE/f5dS3rD/fdMQB1aQ68wQQYD\nVR0gBDowODA2BgRVHSAAMC4wLAYIKwYBBQUHAgEWIGh0dHBzOi8vY2VydHMuc2Vj\ndXJldHJ1c3QuY29tL0NBMDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwudHJ1\nc3R3YXZlLmNvbS9TVENBLmNybDA2BggrBgEFBQcBAQQqMCgwJgYIKwYBBQUHMAGG\nGmh0dHA6Ly9vY3NwLnRydXN0d2F2ZS5jb20vMA0GCSqGSIb3DQEBCwUAA4IBAQB1\nfzAmGGmtbJyIvOfjq2McCpUoYkXAq6JTN51+nb9NDAihhDoTKMde+801bC1/l54h\nxPPm4HImM6GK6LFckDew/FGwbdRbEznUOJ7uVL5ploNBIjte23kTBUZa9fx3+aXK\nhUTAipSyPtNjnOwVVBVXzrMynfMhdsyRRe7gLXNFYCXIxtks3IkIpuYnc86NAuV9\nnBLFlZzgmbAsW+tMc5QsNvQJ9pQ539K8cqZaM+HFCScreDERxmNtHHbMw+hCa2yL\nOj4ntekgWLO8KQbE0lPUNLIM17QK8aktJavj+GezBztKMmJJwhVYQy9nxS388ApX\nxcZsEgIzOCeH0SOWg4FA\n-----END CERTIFICATE-----\n\nSecureTrust Organization Validation CA, Level 1\nSecureTrust Corporation\n06F1EC00E58E9ADD372C871D25843FDAB852D9\n-----BEGIN CERTIFICATE-----\nMIIEkDCCA3igAwIBAgITBvHsAOWOmt03LIcdJYQ/2rhS2TANBgkqhkiG9w0BAQsF\nADBIMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRp\nb24xFzAVBgNVBAMTDlNlY3VyZVRydXN0IENBMB4XDTE5MDEyOTEyNTk1OVoXDTI5\nMDEyOTEyNTk1OVowgYIxODA2BgNVBAMTL1NlY3VyZVRydXN0IE9yZ2FuaXphdGlv\nbiBWYWxpZGF0aW9uIENBLCBMZXZlbCAxMRQwEgYDVQQKEwtTZWN1cmVUcnVzdDEQ\nMA4GA1UEBxMHQ2hpY2FnbzERMA8GA1UECBMISWxsaW5vaXMxCzAJBgNVBAYTAlVT\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4QVBCdYToXFIfzd1SQfi\nTEgg1bwHXM2cE2VsyxwWK8NEFH8zMYdKy2hYOAjbfpm0xE6q4TQzS8KL2vAtCNyY\nVrwX7d3IvKR25H5s1LUDeQXSl1JBBZCtgJf2caJcwaYa6n2pZ0EKt3wBB+QteSFn\n57ENB37T13y7Nn8gCt9ZZaPYqRWxHcPaIWO3CVzQZ3tXjCLqzJMCV2KqhK85DZk3\nwo33Zb6cyYDkerDbWyric+10dJ/wdgE49dkfyZxVxEGpHg1SCSJdHjGb4z85Zx/u\neBpxBS6g3dfrkDjjT3MUxyNS4EaRTZp7o/2EqVCYDWJDM1HcOZL64kyWyi0d9jqA\n7wIDAQABo4IBNjCCATIwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMC\nAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMB0GA1UdDgQWBBR/QuNI\nbljpLrlhyGp3tPcDuM1qWjAfBgNVHSMEGDAWgBRCMrYW+gT9/l1LesP990xAHVpD\nrzBBBgNVHSAEOjA4MDYGBFUdIAAwLjAsBggrBgEFBQcCARYgaHR0cHM6Ly9jZXJ0\ncy5zZWN1cmV0cnVzdC5jb20vQ0EwMgYDVR0fBCswKTAnoCWgI4YhaHR0cDovL2Ny\nbC50cnVzdHdhdmUuY29tL1NUQ0EuY3JsMDYGCCsGAQUFBwEBBCowKDAmBggrBgEF\nBQcwAYYaaHR0cDovL29jc3AudHJ1c3R3YXZlLmNvbS8wDQYJKoZIhvcNAQELBQAD\nggEBAIwGM/ejz4Hbjf7Vc11gS8jzf+BwtZq9N4t1Nibj4rIDsW2G2jDE0S7fCN2m\nMhq76xkfnwfXhBbXDEKz6rj/M0G2u1kHw4Y8ZtKSzYEyRtgpeBFm4qU6voCSREpD\nFJXsL+Go2/YLRSE6xkWVSocklxppx4hi5o/RVdMMQept6ooOSFzBpH5XZYUoblKi\n99Yj0FUe8egIa9qSts42TObTpH1YVRMDnH3k2MNX3rcgPf9v/QO9Cf8W6RQ2+X3R\nCaYMPdL5OIKh4RGYjxXe3LpgiTKBWik/ZWTFL5sZSjetrJFl50NONzTc8E+BJtrx\nVCHAI2OcWyloxrYd4zMipw0YjDw=\n-----END CERTIFICATE-----\n\nTrustwave Domain Validation SHA256 CA, Level 1\nSecureTrust Corporation\n00DDEDF6F64298490E694C36EFA422C88F\n-----BEGIN CERTIFICATE-----\nMIIE7jCCA9agAwIBAgIRAN3t9vZCmEkOaUw276QiyI8wDQYJKoZIhvcNAQELBQAw\nSDELMAkGA1UEBhMCVVMxIDAeBgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9u\nMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTAeFw0xNDEwMDExOTIyMzJaFw0yNDA5\nMjgxOTIyMzJaMIGvMQswCQYDVQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAO\nBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5j\nLjE3MDUGA1UEAxMuVHJ1c3R3YXZlIERvbWFpbiBWYWxpZGF0aW9uIFNIQTI1NiBD\nQSwgTGV2ZWwgMTEfMB0GCSqGSIb3DQEJARYQY2FAdHJ1c3R3YXZlLmNvbTCCASIw\nDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALNr4Z91k7AKM+Pz5XXWTIuVeMts\nPU2W/pI4WdEHG9Zab1EOWPLbthB6fzUJLLLBBk1wy2OM9yG1HywB/CwfGHcoKS8Z\n/efGV+ZKTzEpIestriUWx7wUnzxKzGML48Xv7sNuY1Crru5Hgce1Ax5uOfP7OB6t\norbMunvKQC10WcSrqFg6LapZ0UhgGmQzdjYguOBF6WZJR3QLghQaNrSUZuA6neXR\ncUsBgmzrxiEVHyzt+lmnYFMFvKVwGOyIZ2RU2LAFthS6UDDrSLGsJysxc1MK1Sti\n/VP8e8wj9rJdmiWNfA+lz6hDAPzRbv+WVJNoHEGbIx8rai+rVMiLy2HIbPsCAwEA\nAaOCAWkwggFlMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFPQc4jqvtqTk\n2emd/u8cd6VjPe+IMA4GA1UdDwEB/wQEAwIBhjBIBgNVHSAEQTA/MD0GDysGAQQB\nge0YAwMDAwQFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3NzbC50cnVzdHdhdmUu\nY29tL0NBMDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwudHJ1c3R3YXZlLmNv\nbS9TVENBLmNybDBsBggrBgEFBQcBAQRgMF4wJQYIKwYBBQUHMAGGGWh0dHA6Ly9v\nY3NwLnRydXN0d2F2ZS5jb20wNQYIKwYBBQUHMAKGKWh0dHA6Ly9zc2wudHJ1c3R3\nYXZlLmNvbS9pc3N1ZXJzL1NUQ0EuY3J0MBMGA1UdJQQMMAoGCCsGAQUFBwMBMB8G\nA1UdIwQYMBaAFEIythb6BP3+XUt6w/33TEAdWkOvMA0GCSqGSIb3DQEBCwUAA4IB\nAQAjoDrTysopn7t+onDZ6rZSQW8rYlWZQpSiNHrq9xAAcMExrhcN0bQC9OQ+VRci\noMDascvwum7hVkyh2w2Ad7lC3Ir9gIuA8HycjqQJ4t1eSF3geYyf8lp259ztZ/TO\nxSAwJ9W0Szc8fslOA0SWlyA3lnRVcYVu54Idc1dPXXBxwlQ1NUCYgcsXZs+6QjLL\nYhYL85DhuitQSddoYemGpfVJnaYH9tBiWmwtzwc4qsVqTsKEJ/1zYAy2GrEAv8sB\nFKSfMNMopBmmDA8/aCIW/tH6KTD2DC15QQwL6yAUbSa5mhzFSA9O8zmF881YwBVG\nn+z3isMPClgpNw/eWSbaSLZ+\n-----END CERTIFICATE-----\n\nTrustwave Domain Validation SHA256 CA, Level 1\nSecureTrust Corporation\n390A3F7EECA8FB4347DCAF701861662B\n-----BEGIN CERTIFICATE-----\nMIIE/zCCA+egAwIBAgIQOQo/fuyo+0NH3K9wGGFmKzANBgkqhkiG9w0BAQsFADBI\nMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x\nFzAVBgNVBAMTDlNlY3VyZVRydXN0IENBMB4XDTE2MDkwMTE0MzUzMloXDTI0MDky\nOTE0MzUzMlowga8xCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhJbGxpbm9pczEQMA4G\nA1UEBxMHQ2hpY2FnbzEhMB8GA1UEChMYVHJ1c3R3YXZlIEhvbGRpbmdzLCBJbmMu\nMTcwNQYDVQQDEy5UcnVzdHdhdmUgRG9tYWluIFZhbGlkYXRpb24gU0hBMjU2IENB\nLCBMZXZlbCAxMR8wHQYJKoZIhvcNAQkBFhBjYUB0cnVzdHdhdmUuY29tMIIBIjAN\nBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs2vhn3WTsAoz4/PlddZMi5V4y2w9\nTZb+kjhZ0Qcb1lpvUQ5Y8tu2EHp/NQksssEGTXDLY4z3IbUfLAH8LB8YdygpLxn9\n58ZX5kpPMSkh6y2uJRbHvBSfPErMYwvjxe/uw25jUKuu7keBx7UDHm458/s4Hq2i\ntsy6e8pALXRZxKuoWDotqlnRSGAaZDN2NiC44EXpZklHdAuCFBo2tJRm4Dqd5dFx\nSwGCbOvGIRUfLO36WadgUwW8pXAY7IhnZFTYsAW2FLpQMOtIsawnKzFzUwrVK2L9\nU/x7zCP2sl2aJY18D6XPqEMA/NFu/5ZUk2gcQZsjHytqL6tUyIvLYchs+wIDAQAB\no4IBezCCAXcwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQU9BziOq+2pOTZ\n6Z3+7xx3pWM974gwDgYDVR0PAQH/BAQDAgGGMDIGA1UdHwQrMCkwJ6AloCOGIWh0\ndHA6Ly9jcmwudHJ1c3R3YXZlLmNvbS9TVENBLmNybDA9BgNVHSAENjA0MDIGBFUd\nIAAwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly9zc2wudHJ1c3R3YXZlLmNvbS9DQTBs\nBggrBgEFBQcBAQRgMF4wJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnRydXN0d2F2\nZS5jb20wNQYIKwYBBQUHMAKGKWh0dHA6Ly9zc2wudHJ1c3R3YXZlLmNvbS9pc3N1\nZXJzL1NUQ0EuY3J0MBMGA1UdJQQMMAoGCCsGAQUFBwMBMB8GA1UdIwQYMBaAFEIy\nthb6BP3+XUt6w/33TEAdWkOvMBsGA1UdEQQUMBKBEGNhQHRydXN0d2F2ZS5jb20w\nDQYJKoZIhvcNAQELBQADggEBAFcdG0/3P/CkeGb76tz/mn1viDZiftD05i9Jw70k\nH9ulRwdCHgzhSZVN5zHvG919oHA9WHbxH04J+iAnVl1+FjoDNN+A+2icy2WXqH9w\ngaNUGyUwLdo0JCfgUeGbrCF6WUYCj47pS7zAY02CdGlstZZsqouXK3RnOMKOD3Dq\nf5kiSh56KvhW/F0OZY7PAbdV79LVAiSTiAFdoe/jMjmj8fqXOiCIjllqH/O9/DAm\nRwQStFpauwR+nBbFhq4sYwlZQvJ0NvIxN5JOTECTkMM+X21kf8mrwRdxBfw0YEPa\nUTeZhFr48Fwvnt4jpo7gqpJzt7jjsbWPd1FHtey2Q8zmSHY=\n-----END CERTIFICATE-----\n\nTrustwave Extended Validation SHA256 CA, Level 1\nSecureTrust Corporation\n00C1BD27B383958D0D8BCA5E4F08D009D9\n-----BEGIN CERTIFICATE-----\nMIIFGDCCBACgAwIBAgIRAMG9J7ODlY0Ni8peTwjQCdkwDQYJKoZIhvcNAQELBQAw\nSDELMAkGA1UEBhMCVVMxIDAeBgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9u\nMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTAeFw0xNDEwMTMxODE3MzlaFw0yNDEw\nMTAxODE3MzlaMIGxMQswCQYDVQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAO\nBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5j\nLjE5MDcGA1UEAxMwVHJ1c3R3YXZlIEV4dGVuZGVkIFZhbGlkYXRpb24gU0hBMjU2\nIENBLCBMZXZlbCAxMR8wHQYJKoZIhvcNAQkBFhBjYUB0cnVzdHdhdmUuY29tMIIB\nIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAre9mHLqiv689FWIk7PaeQLuW\nos8ldRX4rNLHeD7/X7JrTfaXuIQaLfrUODtyRaZs0LtJsEHgpr7dUonDIH69PjBP\nrHg+hBLu7ob4udEx3J03NQSdnR/fqPY0ZMH2NP7e9TFSKKctZ/SmzA8jGclVmdiT\nGg1bTx6xgWuPWq9OprIQSgkP5NRe1GeTQ7U/E1zxLqaw6PeQWjESHPGeilyw0jr6\nqVyHM5ack9ps60sN3CKNGushyaQe3w2bYxRJ9RRH/sILCAmmTbjc/cXrGQMGdaYt\naiGnXbc45r39cqfbynZ71hPPNEtFbOdqk3C7I8vrhIHiKaAtFkTMRSWmHHk4HwID\nAQABo4IBkTCCAY0wEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQU5eQkWRUy\nJ8kgs0ICbLDvMt6bIFowDgYDVR0PAQH/BAQDAgGGMGYGA1UdIARfMF0wDAYKKwYB\nBAGB7RgDADAOBgxghkgBhv1kAQECBAEwPQYPKwYBBAGB7RgDAwMDBAMDMCowKAYI\nKwYBBQUHAgEWHGh0dHBzOi8vc3NsLnRydXN0d2F2ZS5jb20vQ0EwMgYDVR0fBCsw\nKTAnoCWgI4YhaHR0cDovL2NybC50cnVzdHdhdmUuY29tL1NUQ0EuY3JsMGwGCCsG\nAQUFBwEBBGAwXjAlBggrBgEFBQcwAYYZaHR0cDovL29jc3AudHJ1c3R3YXZlLmNv\nbTA1BggrBgEFBQcwAoYpaHR0cDovL3NzbC50cnVzdHdhdmUuY29tL2lzc3VlcnMv\nU1RDQS5jcnQwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMB8GA1UdIwQY\nMBaAFEIythb6BP3+XUt6w/33TEAdWkOvMA0GCSqGSIb3DQEBCwUAA4IBAQCly1p1\nrvcOlRS+ODBLb2kYHd4q+cXDl65X+IQ7hOlXg9dpa7CzSAGNNpzhyYMbE48mB/RE\nBXxbZkMzEhWPFj+4jdGNsmX0zjEWatJWsnNVxpA7hDR0iZssezu86oDQ/sbVoaXj\n0a5jB2cZsnMS5287CNDk5i+ImruhbMAYV9sadliXoDy3y01Sv+FLMx39C5UhYhWU\ngvoT9igbSCoc/DPOukEDqsnKMmDqTf3JzuFI1CbJcR6M8R1hAda4mZrxIdGcbT8R\nXp8JQ8Vuv/+plPMcAiZ2Bzed0hPVr5A1Mz8K8w9OyORGlRwjWS65jsr26bjMCcfj\npvuAANrc0Alu4nJC\n-----END CERTIFICATE-----\n\nTrustwave Extended Validation SHA256 CA, Level 1\nSecureTrust Corporation\n35962F305C5A0BEC400D4E9877528C65\n-----BEGIN CERTIFICATE-----\nMIIFCzCCA/OgAwIBAgIQNZYvMFxaC+xADU6Yd1KMZTANBgkqhkiG9w0BAQsFADBI\nMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x\nFzAVBgNVBAMTDlNlY3VyZVRydXN0IENBMB4XDTE2MDkwMTE0MzUzNFoXDTI0MDky\nOTE0MzUzNFowgbExCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhJbGxpbm9pczEQMA4G\nA1UEBxMHQ2hpY2FnbzEhMB8GA1UEChMYVHJ1c3R3YXZlIEhvbGRpbmdzLCBJbmMu\nMTkwNwYDVQQDEzBUcnVzdHdhdmUgRXh0ZW5kZWQgVmFsaWRhdGlvbiBTSEEyNTYg\nQ0EsIExldmVsIDExHzAdBgkqhkiG9w0BCQEWEGNhQHRydXN0d2F2ZS5jb20wggEi\nMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCt72YcuqK/rz0VYiTs9p5Au5ai\nzyV1Ffis0sd4Pv9fsmtN9pe4hBot+tQ4O3JFpmzQu0mwQeCmvt1SicMgfr0+ME+s\neD6EEu7uhvi50THcnTc1BJ2dH9+o9jRkwfY0/t71MVIopy1n9KbMDyMZyVWZ2JMa\nDVtPHrGBa49ar06mshBKCQ/k1F7UZ5NDtT8TXPEuprDo95BaMRIc8Z6KXLDSOvqp\nXIczlpyT2mzrSw3cIo0a6yHJpB7fDZtjFEn1FEf+wgsICaZNuNz9xesZAwZ1pi1q\nIaddtzjmvf1yp9vKdnvWE880S0Vs52qTcLsjy+uEgeIpoC0WRMxFJaYceTgfAgMB\nAAGjggGFMIIBgTASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBTl5CRZFTIn\nySCzQgJssO8y3psgWjAOBgNVHQ8BAf8EBAMCAYYwMgYDVR0fBCswKTAnoCWgI4Yh\naHR0cDovL2NybC50cnVzdHdhdmUuY29tL1NUQ0EuY3JsMD0GA1UdIAQ2MDQwMgYE\nVR0gADAqMCgGCCsGAQUFBwIBFhxodHRwczovL3NzbC50cnVzdHdhdmUuY29tL0NB\nMGwGCCsGAQUFBwEBBGAwXjAlBggrBgEFBQcwAYYZaHR0cDovL29jc3AudHJ1c3R3\nYXZlLmNvbTA1BggrBgEFBQcwAoYpaHR0cDovL3NzbC50cnVzdHdhdmUuY29tL2lz\nc3VlcnMvU1RDQS5jcnQwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMB8G\nA1UdIwQYMBaAFEIythb6BP3+XUt6w/33TEAdWkOvMBsGA1UdEQQUMBKBEGNhQHRy\ndXN0d2F2ZS5jb20wDQYJKoZIhvcNAQELBQADggEBAGUMIDkrvlMJ0wHLuP3lkneC\nwGU6mZ3g17jyU2RJwhRinYctraryG7Jh20DQ9/ppTHoxTIADw2JDsC5ByplabteQ\nnLghrl17K1b6PO+rzWA/NFKVwo6u8Gh7Lz0iUuit7ZBD4eKcRedxRZcPQlnD9KTR\nIs94SRpootsuCv/Y5b+1FMPV1KrYtbco9yEVlaNEWLpmiEsqvLjxiWEmt71rzz+0\nS59OtA/ihnbGP9Xrnhe7wf1ybCNOO5gZQMKr/OszfLZ7oVKACGOPLlcSZRRW98gA\nszE+1ZvlHkdjamfTSs4yMvUorYn9NhXnjAWl28NuD9m3FPiE2O50ezEDnHTiaOQ=\n-----END CERTIFICATE-----\n\nTrustwave Organization Validation SHA256 CA, Level 1\nSecureTrust Corporation\n4B2C6646F434775B67DF34A04DD504E6\n-----BEGIN CERTIFICATE-----\nMIIE/TCCA+WgAwIBAgIQSyxmRvQ0d1tn3zSgTdUE5jANBgkqhkiG9w0BAQsFADBI\nMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x\nFzAVBgNVBAMTDlNlY3VyZVRydXN0IENBMB4XDTE0MTAwMTE5MjIzNloXDTI0MDky\nODE5MjIzNlowgbUxCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhJbGxpbm9pczEQMA4G\nA1UEBxMHQ2hpY2FnbzEhMB8GA1UEChMYVHJ1c3R3YXZlIEhvbGRpbmdzLCBJbmMu\nMT0wOwYDVQQDEzRUcnVzdHdhdmUgT3JnYW5pemF0aW9uIFZhbGlkYXRpb24gU0hB\nMjU2IENBLCBMZXZlbCAxMR8wHQYJKoZIhvcNAQkBFhBjYUB0cnVzdHdhdmUuY29t\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA49OohlJHBJ/juiQTmibO\nS28pHvCCp1bPOc6elQ62DCYE/A14JXUtI8yaUc9nFjh6dNzR7KjFPEq/qDplQl7f\n1Tvh5ifBNNP2wQ6e820TWlPO4HhR/5g4+3iFmJ1N7kFrxDp1/P8e3+9lcJsXckXC\ntfFkQ9slogJqnaCsipgdrH4gQhicFAL5YqHw2AKfctZLSPpxhI3xISMV/lIQwZPW\nI2221v9ALckokh5pW6dTK8x8yNUUye1zt5msWzqunfBjVYVUj5/LXu46hS99Mfxu\n80ARJRyHsXIuHbMzwVXGqKVPZfKAdHBl5e3ElCjNwNy+Hgi09vS7PoAUhjCf/wbO\nnQIDAQABo4IBczCCAW8wEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUys4d\nGAN3HhzzfFiymnCoCIAW9K4wDgYDVR0PAQH/BAQDAgGGMEgGA1UdIARBMD8wPQYP\nKwYBBAGB7RgDAwMDBAQDMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vc3NsLnRydXN0\nd2F2ZS5jb20vQ0EwMgYDVR0fBCswKTAnoCWgI4YhaHR0cDovL2NybC50cnVzdHdh\ndmUuY29tL1NUQ0EuY3JsMGwGCCsGAQUFBwEBBGAwXjAlBggrBgEFBQcwAYYZaHR0\ncDovL29jc3AudHJ1c3R3YXZlLmNvbTA1BggrBgEFBQcwAoYpaHR0cDovL3NzbC50\ncnVzdHdhdmUuY29tL2lzc3VlcnMvU1RDQS5jcnQwHQYDVR0lBBYwFAYIKwYBBQUH\nAwIGCCsGAQUFBwMBMB8GA1UdIwQYMBaAFEIythb6BP3+XUt6w/33TEAdWkOvMA0G\nCSqGSIb3DQEBCwUAA4IBAQBN/Qb6x5VSQHIt/FqvXAkjfCI7jwXGzRoxThavUqv0\npJr1azXKv2L2ye9Sl4OCqiDHZ8ZJZ/Z19Ae1yvGTpG++0O5dWTHZ8qy/JSj17Mg1\nvWiefVpJKtkYflzhC9B9/eB3QuKVTRKDqm1ZC9kbm3MWOwtnEOw4WURWS1X2v4Hv\n2AJaXe11ZRqjx7/c6U50tYp3eVpRDCw7bOIXRffLG0oibhjHiEu8dgq7KkTSrx9m\nQFS6T2x9GLiJKhj2mEfPuGr73TfBPyKsRBymOpG67LThKVnwoUfH3pghA6VkZp5Z\n1Vm6AcDm+eelf5XPvZtNve4evLVPYueA3TmGyxXh1m2d\n-----END CERTIFICATE-----\n\nTrustwave Organization Validation SHA256 CA, Level 1\nSecureTrust Corporation\n0092B8744F71CED0E26C72A3D8D5D925B2\n-----BEGIN CERTIFICATE-----\nMIIFEDCCA/igAwIBAgIRAJK4dE9xztDibHKj2NXZJbIwDQYJKoZIhvcNAQELBQAw\nSDELMAkGA1UEBhMCVVMxIDAeBgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9u\nMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTAeFw0xNjA5MDExNDM1MzVaFw0yNDA5\nMjkxNDM1MzVaMIG1MQswCQYDVQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAO\nBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5j\nLjE9MDsGA1UEAxM0VHJ1c3R3YXZlIE9yZ2FuaXphdGlvbiBWYWxpZGF0aW9uIFNI\nQTI1NiBDQSwgTGV2ZWwgMTEfMB0GCSqGSIb3DQEJARYQY2FAdHJ1c3R3YXZlLmNv\nbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOPTqIZSRwSf47okE5om\nzktvKR7wgqdWzznOnpUOtgwmBPwNeCV1LSPMmlHPZxY4enTc0eyoxTxKv6g6ZUJe\n39U74eYnwTTT9sEOnvNtE1pTzuB4Uf+YOPt4hZidTe5Ba8Q6dfz/Ht/vZXCbF3JF\nwrXxZEPbJaICap2grIqYHax+IEIYnBQC+WKh8NgCn3LWS0j6cYSN8SEjFf5SEMGT\n1iNtttb/QC3JKJIeaVunUyvMfMjVFMntc7eZrFs6rp3wY1WFVI+fy17uOoUvfTH8\nbvNAESUch7FyLh2zM8FVxqilT2XygHRwZeXtxJQozcDcvh4ItPb0uz6AFIYwn/8G\nzp0CAwEAAaOCAYUwggGBMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFMrO\nHRgDdx4c83xYsppwqAiAFvSuMA4GA1UdDwEB/wQEAwIBhjAyBgNVHR8EKzApMCeg\nJaAjhiFodHRwOi8vY3JsLnRydXN0d2F2ZS5jb20vU1RDQS5jcmwwPQYDVR0gBDYw\nNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vc3NsLnRydXN0d2F2ZS5j\nb20vQ0EwbAYIKwYBBQUHAQEEYDBeMCUGCCsGAQUFBzABhhlodHRwOi8vb2NzcC50\ncnVzdHdhdmUuY29tMDUGCCsGAQUFBzAChilodHRwOi8vc3NsLnRydXN0d2F2ZS5j\nb20vaXNzdWVycy9TVENBLmNydDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUH\nAwEwHwYDVR0jBBgwFoAUQjK2FvoE/f5dS3rD/fdMQB1aQ68wGwYDVR0RBBQwEoEQ\nY2FAdHJ1c3R3YXZlLmNvbTANBgkqhkiG9w0BAQsFAAOCAQEAC0OvN7/UJBcRDXch\nA4b2qJo7mBD05+XR96N7vucMaanz26CnUxs1o8DcBckpqyEXCxdOanIr+/UJNbBL\nXLJCzNLJEJcgV9TjbVu33eQR23yMuXD+cZsqLMF+L5IIM47W8dlwKJvMy0xs7Jb1\nS3NOIhcoVu+XPzRsgKv8Yi2B6l278RfzegiCx4vYJv0pBjFzizEiFH9bWTYIOlIJ\nJSM57hoICgjCTS8BoEgndwWIyc/nEmlYaUwmCo9QynY+UmW1WPWmVITEJPMdMK6A\nZqvvaWmuHJ6/vURaz+Hoc5D3z0yJDDCkv52bXV04ZoF6cbcWry7JvNA+djvay/4B\nRR4SZQ==\n-----END CERTIFICATE-----\n\nSecureTrust TWG Secure Email CA, Level 2\nTrustwave Holdings, Inc.\n072F30E9C25181828DAC4F5F7DE4AFC87AD132\n-----BEGIN CERTIFICATE-----\nMIIG2zCCBMOgAwIBAgITBy8w6cJRgYKNrE9ffeSvyHrRMjANBgkqhkiG9w0BAQsF\nADCBiDELMAkGA1UEBhMCVVMxETAPBgNVBAgMCElsbGlub2lzMRAwDgYDVQQHDAdD\naGljYWdvMSEwHwYDVQQKDBhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xMTAvBgNV\nBAMMKFRydXN0d2F2ZSBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcN\nMjAxMDA4MDY0OTQwWhcNMzAxMDA4MDY0ODQwWjBWMQswCQYDVQQGEwJVUzEUMBIG\nA1UEChMLU2VjdXJlVHJ1c3QxMTAvBgNVBAMTKFNlY3VyZVRydXN0IFRXRyBTZWN1\ncmUgRW1haWwgQ0EsIExldmVsIDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK\nAoICAQCcD5Wc7H480gOv3ae6SELBls0oNOvpw1ZFjK55nLw+W6PhgqTGNEHlO/Ga\nWt13yS1iO1/WzRaUc2XsFRGcjv3QIfDZb+6UzhL1LL9ZE8zcs0B6fepn4smQg1yK\ngtAWGoD70Z9kEBtypkG23sO5xIiRACJWgRWVZ/891pQBBz+ElCxUnIyDGghHlWCD\nzn5dLoBIVic69Pfpi384uNoNfHV/WATUQEEnwY+5yMMUALAWrRD6Jeh5R4m9qKxG\nUlrO9ObDebK9mFEJvrCPtkTIWT1He4ZD58Lt0NIkaItQ7KsKF9wgwH7BTsRGwQXb\nP6/0LvfO8UDRKNE/4C39u9dwUw/Zpu2iNXTadVWBtaSDsrPFVb5rBu+pvn4l4Hw5\njtySyHAOWn4mhuxDXMuKBtaoTi/qF94d7N0CbqPdN9WSN79Cy2O0BexTGHSJVndX\nEbKyn96b5STPshKVpG9DmUekfnDtnHR9dmH74a05X/A8k/XeSJWXphM6NvyZap2A\nWiIkrS7MsfwnCdZlX+9WGY2qHxnm4Y6JdNah0qxozBbQHkqHsSN4k8O7zr2lfZhC\nuarm0Q1t6tjsmp7PUh26u6PCe0m+MctIrD6ZckUzZeuPduRb55K2p8MxjQSVNH1S\nJ2aaHp77qOYV+rvHXIL7le4OR5lDWyzYtXLc8u17/kLbUtgnmQIDAQABo4IBbTCC\nAWkwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwEwYDVR0lBAww\nCgYIKwYBBQUHAwQwHQYDVR0OBBYEFKpD9MNsQCriSoEcg6nez7XhG7bOMB8GA1Ud\nIwQYMBaAFJngGWcNYtt2s9o9uFvo/ULSMQ6HMEEGA1UdIAQ6MDgwNgYEVR0gADAu\nMCwGCCsGAQUFBwIBFiBodHRwczovL2NlcnRzLnNlY3VyZXRydXN0LmNvbS9DQTA1\nBgNVHR8ELjAsMCqgKKAmhiRodHRwOi8vY3JsLnNlY3VyZXRydXN0LmNvbS9UV0dD\nQS5jcmwwdAYIKwYBBQUHAQEEaDBmMCgGCCsGAQUFBzABhhxodHRwOi8vb2NzcC5z\nZWN1cmV0cnVzdC5jb20vMDoGCCsGAQUFBzAChi5odHRwOi8vY2VydHMuc2VjdXJl\ndHJ1c3QuY29tL2lzc3VlcnMvVFdHQ0EuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQBb\ntCXryLFewOafyNENB3NzgAQVVztwaWSyvF5FYSqav95JKcoHZzy3wG7aKlTPtGnq\n1QzJst03qPmZJ3j63obz2AvfEEzLEMlsPmOTy3B9oIrNzd2QhpGW1oF6pIgGB/VP\n5zh7U2ibUC+zRLmihwt+j2+7NBbuLbPozgxDTWh2f9O4rJb5bv98Q8RdbGrypBb9\nhOhDvmNCCfjSe+Q8myqsvawEG5p7s8gsIK/V3xbyqDihXjsGc7xeEWNftlU91jBL\nKPRbrLmXhhWnHJjYs4y5IHu735HA3aAT4TqURS9dGHOMVDRumkFpLqR2W7ptpDki\nOtIFZjO5smU29OD4AlcNUXqQuKEFasyTtkRlORnWhU37c36HB8dc57xWQKOf8pMq\n7lK+ublO9G4mO1Aqr9mioTN4oMONFJG4W5dWwG9baNg682ZACkvPaw45MqSztL3A\nKb4s2cDTWu/D34hV3oafkTwu8B7B2mFZnWRJ9q4akPmZF45uw4RZx2ALaYGGGs67\n+r5qS300As9ONg8hxfVkFQSHOc00IiBkgi3OpoCofEKTgDwZwHVqOJyyPjk6H9Sh\nZANmUOT2mGDLwl86Ar5bTu8ipzlsyDYQMFjho7WaVs8I5OXyVdONXDYLIOtpITGT\n1fRcXFzxYHhrNuFwrdj2zBVyvVD4O6xV97/9nv2Eng==\n-----END CERTIFICATE-----\n\nTrustwave Global Domain Validation CA, Level 1\nTrustwave Holdings, Inc.\n06CE82D9AD30465CF22697F246B101EC92953B\n-----BEGIN CERTIFICATE-----\nMIIHCDCCBPCgAwIBAgITBs6C2a0wRlzyJpfyRrEB7JKVOzANBgkqhkiG9w0BAQsF\nADCBiDELMAkGA1UEBhMCVVMxETAPBgNVBAgMCElsbGlub2lzMRAwDgYDVQQHDAdD\naGljYWdvMSEwHwYDVQQKDBhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xMTAvBgNV\nBAMMKFRydXN0d2F2ZSBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcN\nMTgwMjA2MTIyMTIxWhcNMjgwMjI0MDUwMTIxWjCBjjE3MDUGA1UEAxMuVHJ1c3R3\nYXZlIEdsb2JhbCBEb21haW4gVmFsaWRhdGlvbiBDQSwgTGV2ZWwgMTEhMB8GA1UE\nChMYVHJ1c3R3YXZlIEhvbGRpbmdzLCBJbmMuMRAwDgYDVQQHEwdDaGljYWdvMREw\nDwYDVQQIEwhJbGxpbm9pczELMAkGA1UEBhMCVVMwggIiMA0GCSqGSIb3DQEBAQUA\nA4ICDwAwggIKAoICAQChh5brvvk/kFUZwhlUhqdsUmsMCBjzYqBBLnTyNrKPr4nd\nS9s2h2JvA+9TY7NnJc/Mq1eN5V6zqvbn/LN3c8W06f76xrVvFEKs5SzCefUS/V3Z\nC18dgwXXFrP+RgfK2kqfTHGIPrWoRSnUiLn3iUNEBtJ06oXjAqAMnAyL5AzD+eHm\nZzRK/yCw/gMPnVp2S7Dstka607fS4fW9Sl33mOMNwJRxEjQWHHR25PAb4muP6wjN\nvmoLMgiDMKseHSFVtC7SpmO89PsrUV6MahKJrZcAfquAyoO1zR2c2eGaCI/m8oSx\n3B7KiMZJ3NZims/siMp/5szemsutf36WJ31nmr7PqLJGJdVpoxbLckWIhZnNYSFm\n/pTutpNONqpyYC2gGSXdw5LuxU61913SbAPpk8DZiHi3WslHBo26ghXG++sgJUGj\nhtKZhiYlp8uD21WTP6/60wngpXyCtt9cpHxW1lXmqcxwe2J4/2S3xjHz1dC6BKxb\nr61HCPVrbTD90CZUpMI8JPdsVbz5eegv+SIyybHxZe4S0D9Kv5pgWfqdXf0BAiJC\nTbGwYmFr4uisKhkfMThyOgWEH+CRBzQqdZREQ5lTIlVyzi3jGPuu9Q6brAS9U9Ue\nQhUwX8TtY8Igfo8HlhjugDpy6WvDYQ9i+tG3AC6v8sJLdOOU83Lr+2C1LEF5ZwID\nAQABo4IBYTCCAV0wEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYw\nEwYDVR0lBAwwCgYIKwYBBQUHAwEwHQYDVR0OBBYEFIaZQQzOP7aMcEnlkwfwhgcd\nLXqVMB8GA1UdIwQYMBaAFJngGWcNYtt2s9o9uFvo/ULSMQ6HMD0GA1UdIAQ2MDQw\nMgYEVR0gADAqMCgGCCsGAQUFBwIBFhxodHRwczovL3NzbC50cnVzdHdhdmUuY29t\nL0NBMDMGA1UdHwQsMCowKKAmoCSGImh0dHA6Ly9jcmwudHJ1c3R3YXZlLmNvbS9U\nV0dDQS5jcmwwbgYIKwYBBQUHAQEEYjBgMCYGCCsGAQUFBzABhhpodHRwOi8vb2Nz\ncC50cnVzdHdhdmUuY29tLzA2BggrBgEFBQcwAoYqaHR0cDovL3NzbC50cnVzdHdh\ndmUuY29tL2lzc3VlcnMvVFdHQ0EuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQAmn0jp\n+lNp188KxjKQZtpJ3mixLmuqGdH6SVpRs40BYQg/68xOPH3C6AJ17tqE6IwZMW9s\nlgiO4B7khR3ESA6Sct3zmkA8woR/KJVzzegjscHhtQUifQ+Eb9Gi0ORNnetGV+5g\n5vlrFZMptBRGUxXMo2xa+Z/NTyimpMopfXj7qCW/nQWQbzvkQGchK9IokyqV2wra\ntX68/P3zleG+LLwzoJd5AhHYSXWrIRJpClZHN+LQKkbI3MYW7+upo/1e9HEmFKxu\n5SFV3nuQm5wSOsz/ZtIL1AS8IoZYxcSe1Q/yuV9GjnxtL1jkPbzsBx4eBGxUrcIe\nsBat6SI8G58uHTpIPpqUxRYsg8w0FdjK3kNBB5QWDeXiDxzqIRzA0iE1kHeTXRZ3\n7qgGXUcce7ciW5KqeRApjQbD5BSZG2EKkQ7aaOhvxK0LiuxHZnjPW4/fdEcaCuku\nMT5qMDiF2U85V9BvanEy/xkYn4I2UeK4EdSXe7q6j+CIJz9WnoLQDbIS04GqIWe0\nVRQUlx3idUWYSJU/SG8KrEHhlJLmgSjshCwtT6qo4vHwT5WcWDLIbjMqgL1iQ6JS\n4gxXuOGia3d0I4/wec5x23EWwx9V8BtDJ8N7NDeRNmZ8RXOHSYJsVQYIQuFUEXE1\nv3WMSIxuyQMyR5FYSCG9xnKRFzNmiPngDil5IA==\n-----END CERTIFICATE-----\n\nTrustwave Global Extended Validation CA, Level 1\nTrustwave Holdings, Inc.\n06CE82D99FB3B180C281020314A2D1C7640017\n-----BEGIN CERTIFICATE-----\nMIIHFDCCBPygAwIBAgITBs6C2Z+zsYDCgQIDFKLRx2QAFzANBgkqhkiG9w0BAQsF\nADCBiDELMAkGA1UEBhMCVVMxETAPBgNVBAgMCElsbGlub2lzMRAwDgYDVQQHDAdD\naGljYWdvMSEwHwYDVQQKDBhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xMTAvBgNV\nBAMMKFRydXN0d2F2ZSBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcN\nMTgwMjA2MTIyMTIwWhcNMjgwMjI0MDUwMTIwWjCBkDE5MDcGA1UEAxMwVHJ1c3R3\nYXZlIEdsb2JhbCBFeHRlbmRlZCBWYWxpZGF0aW9uIENBLCBMZXZlbCAxMSEwHwYD\nVQQKExhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xEDAOBgNVBAcTB0NoaWNhZ28x\nETAPBgNVBAgTCElsbGlub2lzMQswCQYDVQQGEwJVUzCCAiIwDQYJKoZIhvcNAQEB\nBQADggIPADCCAgoCggIBAMRO7orfWjfmz6Y6qoAmDp2lqCJcdvbRQ8w18rl1JE3j\nf/1CScZLrnLg4RDm8JiRcvFuvoMXn/XNUWy5ICG57tjG2nO7jvBuXfvbdkGA+foN\n3yJKMTX/PmmGlN4qpzFtsB0kLrP14/0TRGeJB7qDfAFH0ReFk0ftQobLBGBOpEca\n+bv+LhcTe40/uNUSK2yQ9GpIw200mcsD3B9c29Im4tSZFuA2o1vnEeizYW5M4sPX\nHu7p5ZCxjJrXVNqWUPM38rShhMUNL5uaVYWoi7TG5JXbg0Lmt2nq1k5nnig9Yp/W\nlAFooWXjKQzHf/z+XZ57bqPe7SzLW5pzpZdSmY2VRybAwEmzMjCXgHiP2ru3TpAD\n+giakPDoz3ZmbKjwYKZ5PmnOmXx0Z2GloO37MjamjPor/+fZohfyma7VAQE8znJt\nI9MVoRN3G3gW/tuT3jXfzYdFBlfGoO7OYyLN1LK5YBKH2qXrCHD8rG2DauBt7U+w\nfOvwfkp8FcdTnfQ92Xe65U3Xdu0eCgQJbChxZtWhhLnbY6xhmwAWyJ1my+Im72Kx\nGP/XcA8SH2sz6/k0782BjRckDuFpVVpTNYl9wqe/tuOrZhWPapOsRlfsDTuhgGu5\n2inM9sU3CAzmFE85zoRQFZQSof3kFN2rUZF20bmTak99cBNLli6/ja3+KntpZ08d\nAgMBAAGjggFrMIIBZzASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIB\nhjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwHQYDVR0OBBYEFHM4IMZH\nbabGL3tQ4EDe3sedR958MB8GA1UdIwQYMBaAFJngGWcNYtt2s9o9uFvo/ULSMQ6H\nMD0GA1UdIAQ2MDQwMgYEVR0gADAqMCgGCCsGAQUFBwIBFhxodHRwczovL3NzbC50\ncnVzdHdhdmUuY29tL0NBMDMGA1UdHwQsMCowKKAmoCSGImh0dHA6Ly9jcmwudHJ1\nc3R3YXZlLmNvbS9UV0dDQS5jcmwwbgYIKwYBBQUHAQEEYjBgMCYGCCsGAQUFBzAB\nhhpodHRwOi8vb2NzcC50cnVzdHdhdmUuY29tLzA2BggrBgEFBQcwAoYqaHR0cDov\nL3NzbC50cnVzdHdhdmUuY29tL2lzc3VlcnMvVFdHQ0EuY3J0MA0GCSqGSIb3DQEB\nCwUAA4ICAQBwnSHECaf+hfGrm3Cg+aRr57ytoOSzI1DjlTNcM7k4uSt6kJRPHJ4c\nldIujMaETV52RgE6ykaMGkuIwQOIsLI6SXwjU1f5gXFUbDTS3KTWc/jwQeyLmdOe\nhvc+wBSFv8d10Sx/Qiti8mqsTqr0+N94Cx01+SkiWxWWoSZOAPkz8DMQGlD4yndK\nceTMGtQ03cLnD/36Mv6tz/Ds9l/OExrJGGxHD0tmYwYwBZpPHm7BBY2ZzycVxLcg\n+uuggcX1pg5MhJ1rDyod+7X+ilvTgH7ftHCmxvR7viMLwSUuytZ05zb2teRQgU+8\niWnPEHO/ADm5VD1Zb5Rx0579/YEENBJtGUPPJzo+JEpiZIOIlwZ69ETWWNCLZr0V\nvoi+SDl65cr+dgR9JreJ2I4W9FzS45ruxYEC8LGKEmV46sAk1YLbnIBmhehAKy9t\nP8RVz3QXYJ6rLOAuXF7R2eVV0SqfivW9bVzvBZTUTFsbdSMBAAF1BJjdRqYR63DI\ncQASY7CRoUiak1NTgPkzeV8VcNJmUt8c2eKJIifqBAjquH6+6UXs9Ol0aMPn6v0y\nB+TSuxhX2sSrpna9QcOh/QyoR5Hvcd81rZSbMc7yasKoUMXviotV1SfEqs3RU5Ts\nwnU4NHPn5ITRiuh5VMuvB/VnjnPC953u5uqAGtZ8BkC7X9cu5E0rMQ==\n-----END CERTIFICATE-----\n\nTrustwave Global Organization Validation CA, Level 1\nTrustwave Holdings, Inc.\n06CE82D9A69703AEFE5D37D18858C74026B004\n-----BEGIN CERTIFICATE-----\nMIIHGDCCBQCgAwIBAgITBs6C2aaXA67+XTfRiFjHQCawBDANBgkqhkiG9w0BAQsF\nADCBiDELMAkGA1UEBhMCVVMxETAPBgNVBAgMCElsbGlub2lzMRAwDgYDVQQHDAdD\naGljYWdvMSEwHwYDVQQKDBhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xMTAvBgNV\nBAMMKFRydXN0d2F2ZSBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcN\nMTgwMjA2MTIyMTIwWhcNMjgwMjI0MDUwMTIwWjCBlDE9MDsGA1UEAxM0VHJ1c3R3\nYXZlIEdsb2JhbCBPcmdhbml6YXRpb24gVmFsaWRhdGlvbiBDQSwgTGV2ZWwgMTEh\nMB8GA1UEChMYVHJ1c3R3YXZlIEhvbGRpbmdzLCBJbmMuMRAwDgYDVQQHEwdDaGlj\nYWdvMREwDwYDVQQIEwhJbGxpbm9pczELMAkGA1UEBhMCVVMwggIiMA0GCSqGSIb3\nDQEBAQUAA4ICDwAwggIKAoICAQC8BzZtA3eWejFOGHc2DLgex6P471dLWIIHSlrF\nY4a2BCtzAd/VlpQ3gslWnTgthOmK2/hCc+WSaOLPVZzZf3lGnxbb0+Y87Kx+nS1m\nIfJ/4OR6o8XLMLoCTAI1jsWxggiB4NBMqsW2xXQ5VAvBb66KEQYbshNlRpTbtBFq\nEed4YIvCdjbnCUOy1zubgVHUVyCFHzN4XPjEQCtT5vZM576Lt10Je9COnqG0CtPU\nQNP2tjnSmOOYdWcVRZ0UqXUl2fMBfmSDHd8902foigjpP04AYYbq6AetqEgqdvQP\nxz5pVbZqzy8UrE/s/raJLFyTuIAYVt18M0whSgWzGgUWkq2xRqbfn7b1hd56dwRb\nR7pKc51FyTbeocnKlYLC+Dlzp7iKQ3Pb7WHRwLhaJB7u4CzwqhUxHc0xplMYsq92\nMbZ6WN5L5mI7hxY8gLMOR7vNX9CKz9XcYRS01iCDe5Y/9muW8bzGyNXLX1YaHAy4\n+6ncksb3Y3RUKj3f0+T4nbiRISmGazravJKSssBLP3kPa9h5aX+Vd00eL+Q7sXrh\nFO7xz+oWtOL5rfVszyc87JQvjw1sDHA710nViqzUE1bJZNe61EXdCb/RV+Wsu+rO\ncAMSr5x2j/wW875sh+U3EJmTzdEBUBxHnBD2mDTyonT7wL47TRXTEO1IaS4mVbnv\no0jWvQIDAQABo4IBazCCAWcwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8E\nBAMCAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMB0GA1UdDgQWBBS3\n/VNzOCaKcKuTyoupCOrH07fj/TAfBgNVHSMEGDAWgBSZ4BlnDWLbdrPaPbhb6P1C\n0jEOhzA9BgNVHSAENjA0MDIGBFUdIAAwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly9z\nc2wudHJ1c3R3YXZlLmNvbS9DQTAzBgNVHR8ELDAqMCigJqAkhiJodHRwOi8vY3Js\nLnRydXN0d2F2ZS5jb20vVFdHQ0EuY3JsMG4GCCsGAQUFBwEBBGIwYDAmBggrBgEF\nBQcwAYYaaHR0cDovL29jc3AudHJ1c3R3YXZlLmNvbS8wNgYIKwYBBQUHMAKGKmh0\ndHA6Ly9zc2wudHJ1c3R3YXZlLmNvbS9pc3N1ZXJzL1RXR0NBLmNydDANBgkqhkiG\n9w0BAQsFAAOCAgEAFXwfmELpEGKUguzVTMix79XbUnkfLa7IXcqBOrwOWEF1V8F1\nxGY6jLlUTtoEXRYZwCpqOK/i4m4nmWCYE45O7URR8nqeFffceTi62t4Yvh6LkC9g\nUnj3aChLiO/Zdxilq6vfsXO0mKafrGtZXwjyskS250Pj9DsANs57QqvYN4hqbplJ\nzc95p09OUvEhPiyRyx6FyY28U+3X6+mSNMJWd4Nhr+3HtvmItLIXP2JCLxuYtu/K\n6nKcpFCFFKeF8K3PWpjsAb0hfXL4vc3WfyCYsQnvJeisyAh7yEuge2iDwl1/xXIo\nEOAyyYAxvy5UnzcAa0Z2lwjptve+jZ4gQ+A1ioYUavR3pSfBNzuJW30nZCWFadKc\nNXOPoAPkK8JLxgRBH3JboeBCXG6xgy/pXrTjyhW7/SS+Z+7eKkp9jgdTVQ12yUtc\nCiYWUuM4l240D/z+s03WOEcLTluESwFkJhzs3D9i5crTL72uSkDDmlh8HXoPAyYO\nl3Mn9cGWhd8M8IeQRXmb6O7gvvQZDoSXDVDbjBKcW1lFpi0wBxIBzLaOi4CX4OhI\nJHJ/H3duOMaltuzXLSLkc26jwHzMeq8seQRSXraXJi1t5oBKlmEWFEgq6xlH7mLW\n3TOqS19cuiSWl/CsnlLGaW8MH5YHmk+MJxQE1BcLBs6ciapvHlhLEd9EUpU=\n-----END CERTIFICATE-----\n\nSecureTrust TWG ECDSA P-256 Secure Email CA, Level 2\nTrustwave Holdings, Inc.\n072F30E9C4627001DECFEBF6BF5D3B1066D7E3\n-----BEGIN CERTIFICATE-----\nMIIDbTCCAxKgAwIBAgITBy8w6cRicAHez+v2v107EGbX4zAKBggqhkjOPQQDAjCB\nkTELMAkGA1UEBhMCVVMxETAPBgNVBAgTCElsbGlub2lzMRAwDgYDVQQHEwdDaGlj\nYWdvMSEwHwYDVQQKExhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xOjA4BgNVBAMT\nMVRydXN0d2F2ZSBHbG9iYWwgRUNDIFAyNTYgQ2VydGlmaWNhdGlvbiBBdXRob3Jp\ndHkwHhcNMjAxMDA4MDY0OTQxWhcNMzAxMDA4MDY0ODQxWjBiMQswCQYDVQQGEwJV\nUzEUMBIGA1UEChMLU2VjdXJlVHJ1c3QxPTA7BgNVBAMTNFNlY3VyZVRydXN0IFRX\nRyBFQ0RTQSBQLTI1NiBTZWN1cmUgRW1haWwgQ0EsIExldmVsIDIwWTATBgcqhkjO\nPQIBBggqhkjOPQMBBwNCAAT4KazLm94aiykBGkNQVkBrjmK77RlP627D2n3EwK3s\n49ljRkN6wiTWXHx3jPD5BBE/7mWhGWnphzGu1Deb6yzco4IBdTCCAXEwEgYDVR0T\nAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwEwYDVR0lBAwwCgYIKwYBBQUH\nAwQwHQYDVR0OBBYEFHMQ2nwjQr8tFHfBImxM7ct8lbBYMB8GA1UdIwQYMBaAFKNB\nBqyQbdFK63WlShCZs7Ghi0r3MEEGA1UdIAQ6MDgwNgYEVR0gADAuMCwGCCsGAQUF\nBwIBFiBodHRwczovL2NlcnRzLnNlY3VyZXRydXN0LmNvbS9DQTA5BgNVHR8EMjAw\nMC6gLKAqhihodHRwOi8vY3JsLnNlY3VyZXRydXN0LmNvbS9UV0dQMjU2Q0EuY3Js\nMHgGCCsGAQUFBwEBBGwwajAoBggrBgEFBQcwAYYcaHR0cDovL29jc3Auc2VjdXJl\ndHJ1c3QuY29tLzA+BggrBgEFBQcwAoYyaHR0cDovL2NlcnRzLnNlY3VyZXRydXN0\nLmNvbS9pc3N1ZXJzL1RXR1AyNTZDQS5jcnQwCgYIKoZIzj0EAwIDSQAwRgIhAN8G\nPwKUpMgV3LZjq7fuKS96f15BrwBjmTlKhOwgX83BAiEA9WpWhzRRoKeJGAqqXrMk\nZ8RE9xRtOFBqYdv9H5CeTVk=\n-----END CERTIFICATE-----\n\nTrustwave Global ECDSA P-256 Domain Validation CA, Level 1\nTrustwave Holdings, Inc.\n06CE82D9AF531423847B85FB677932AAF80508\n-----BEGIN CERTIFICATE-----\nMIIDmDCCAz+gAwIBAgITBs6C2a9TFCOEe4X7Z3kyqvgFCDAKBggqhkjOPQQDAjCB\nkTELMAkGA1UEBhMCVVMxETAPBgNVBAgTCElsbGlub2lzMRAwDgYDVQQHEwdDaGlj\nYWdvMSEwHwYDVQQKExhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xOjA4BgNVBAMT\nMVRydXN0d2F2ZSBHbG9iYWwgRUNDIFAyNTYgQ2VydGlmaWNhdGlvbiBBdXRob3Jp\ndHkwHhcNMTgwMjA2MTIyMTIxWhcNMjgwMjI0MDUwMTIxWjCBmjFDMEEGA1UEAxM6\nVHJ1c3R3YXZlIEdsb2JhbCBFQ0RTQSBQLTI1NiBEb21haW4gVmFsaWRhdGlvbiBD\nQSwgTGV2ZWwgMTEhMB8GA1UEChMYVHJ1c3R3YXZlIEhvbGRpbmdzLCBJbmMuMRAw\nDgYDVQQHEwdDaGljYWdvMREwDwYDVQQIEwhJbGxpbm9pczELMAkGA1UEBhMCVVMw\nWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATWpfTIQFPkZIoXXMDN9utRU+AbLGcg\nBmLA06x2qqdcpCMlYFoJhuRWzYCiqz1mKrAvNlQYkgoHfemk92sf8iaro4IBaTCC\nAWUwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwEwYDVR0lBAww\nCgYIKwYBBQUHAwEwHQYDVR0OBBYEFA/DUGGZflb1xtmcOeiDWJAHuhq0MB8GA1Ud\nIwQYMBaAFKNBBqyQbdFK63WlShCZs7Ghi0r3MD0GA1UdIAQ2MDQwMgYEVR0gADAq\nMCgGCCsGAQUFBwIBFhxodHRwczovL3NzbC50cnVzdHdhdmUuY29tL0NBMDcGA1Ud\nHwQwMC4wLKAqoCiGJmh0dHA6Ly9jcmwudHJ1c3R3YXZlLmNvbS9UV0dQMjU2Q0Eu\nY3JsMHIGCCsGAQUFBwEBBGYwZDAmBggrBgEFBQcwAYYaaHR0cDovL29jc3AudHJ1\nc3R3YXZlLmNvbS8wOgYIKwYBBQUHMAKGLmh0dHA6Ly9zc2wudHJ1c3R3YXZlLmNv\nbS9pc3N1ZXJzL1RXR1AyNTZDQS5jcnQwCgYIKoZIzj0EAwIDRwAwRAIgICvA5ttD\n0oeUcd37iYvoQ7iMIpZINp4e1j5NrlI3UnYCIEZhimm9+1dUWAfx9ZkGmIu0HiHR\nzEZifAHbPM3SJbRu\n-----END CERTIFICATE-----\n\nTrustwave Global ECDSA P-256 Extended Validation CA, Level 1\nTrustwave Holdings, Inc.\n06CE82D9A20A3797CD878EB3DAA41D08680AF7\n-----BEGIN CERTIFICATE-----\nMIIDpjCCA0ugAwIBAgITBs6C2aIKN5fNh46z2qQdCGgK9zAKBggqhkjOPQQDAjCB\nkTELMAkGA1UEBhMCVVMxETAPBgNVBAgTCElsbGlub2lzMRAwDgYDVQQHEwdDaGlj\nYWdvMSEwHwYDVQQKExhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xOjA4BgNVBAMT\nMVRydXN0d2F2ZSBHbG9iYWwgRUNDIFAyNTYgQ2VydGlmaWNhdGlvbiBBdXRob3Jp\ndHkwHhcNMTgwMjA2MTIyMTIwWhcNMjgwMjI0MDUwMTIwWjCBnDFFMEMGA1UEAxM8\nVHJ1c3R3YXZlIEdsb2JhbCBFQ0RTQSBQLTI1NiBFeHRlbmRlZCBWYWxpZGF0aW9u\nIENBLCBMZXZlbCAxMSEwHwYDVQQKExhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4x\nEDAOBgNVBAcTB0NoaWNhZ28xETAPBgNVBAgTCElsbGlub2lzMQswCQYDVQQGEwJV\nUzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABKXHfFxFDVI6uYWZlWciFFKtYzuJ\n+IBhot3PQGikE3sjU8d9dARkZCkInqmDyP/+XiLzgrYPMy7NS8lZcRsE5p2jggFz\nMIIBbzASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUE\nFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwHQYDVR0OBBYEFAwlVqqzYgakv+7gGxtX\nzC8s9g1QMB8GA1UdIwQYMBaAFKNBBqyQbdFK63WlShCZs7Ghi0r3MD0GA1UdIAQ2\nMDQwMgYEVR0gADAqMCgGCCsGAQUFBwIBFhxodHRwczovL3NzbC50cnVzdHdhdmUu\nY29tL0NBMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly9jcmwudHJ1c3R3YXZlLmNv\nbS9UV0dQMjU2Q0EuY3JsMHIGCCsGAQUFBwEBBGYwZDAmBggrBgEFBQcwAYYaaHR0\ncDovL29jc3AudHJ1c3R3YXZlLmNvbS8wOgYIKwYBBQUHMAKGLmh0dHA6Ly9zc2wu\ndHJ1c3R3YXZlLmNvbS9pc3N1ZXJzL1RXR1AyNTZDQS5jcnQwCgYIKoZIzj0EAwID\nSQAwRgIhALahroq1NScrFeCvG5uMgMKH/bo190D+Mkh2ZIojrUOfAiEAosFXFE73\n0WLRPjX2uOkLhXuA4cQEb1R1oeGDH4MNVOo=\n-----END CERTIFICATE-----\n\nTrustwave Global ECDSA P-256 Organization Validation CA, Level 1\nTrustwave Holdings, Inc.\n06CE82D9A8B57C104843994DACD79E28633E5F\n-----BEGIN CERTIFICATE-----\nMIIDqDCCA0+gAwIBAgITBs6C2ai1fBBIQ5lNrNeeKGM+XzAKBggqhkjOPQQDAjCB\nkTELMAkGA1UEBhMCVVMxETAPBgNVBAgTCElsbGlub2lzMRAwDgYDVQQHEwdDaGlj\nYWdvMSEwHwYDVQQKExhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xOjA4BgNVBAMT\nMVRydXN0d2F2ZSBHbG9iYWwgRUNDIFAyNTYgQ2VydGlmaWNhdGlvbiBBdXRob3Jp\ndHkwHhcNMTgwMjA2MTIyMTIxWhcNMjgwMjI0MDUwMTIxWjCBoDFJMEcGA1UEAxNA\nVHJ1c3R3YXZlIEdsb2JhbCBFQ0RTQSBQLTI1NiBPcmdhbml6YXRpb24gVmFsaWRh\ndGlvbiBDQSwgTGV2ZWwgMTEhMB8GA1UEChMYVHJ1c3R3YXZlIEhvbGRpbmdzLCBJ\nbmMuMRAwDgYDVQQHEwdDaGljYWdvMREwDwYDVQQIEwhJbGxpbm9pczELMAkGA1UE\nBhMCVVMwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQmHWo0mogvX1J61xysTqsn\n6qV06wxUH68/QJ2aDIka6beTrDoTZv3mIkyPxFTPy+9idjgSAERlBsDirgO2/NiY\no4IBczCCAW8wEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwHQYD\nVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMB0GA1UdDgQWBBSv+Ju8XTSl3tA+\nFCldDY4lrbClhTAfBgNVHSMEGDAWgBSjQQaskG3RSut1pUoQmbOxoYtK9zA9BgNV\nHSAENjA0MDIGBFUdIAAwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly9zc2wudHJ1c3R3\nYXZlLmNvbS9DQTA3BgNVHR8EMDAuMCygKqAohiZodHRwOi8vY3JsLnRydXN0d2F2\nZS5jb20vVFdHUDI1NkNBLmNybDByBggrBgEFBQcBAQRmMGQwJgYIKwYBBQUHMAGG\nGmh0dHA6Ly9vY3NwLnRydXN0d2F2ZS5jb20vMDoGCCsGAQUFBzAChi5odHRwOi8v\nc3NsLnRydXN0d2F2ZS5jb20vaXNzdWVycy9UV0dQMjU2Q0EuY3J0MAoGCCqGSM49\nBAMCA0cAMEQCIGa3JyBYlXxRN5GIIulLaDxnANNRnY4j1Et166CCC5h+AiAVUlzJ\nIJTfUDBU7jnSTKSw/F+bLIPvaC6frMZv0h+RTA==\n-----END CERTIFICATE-----\n\nSecureTrust TWG ECDSA P-384 Secure Email CA, Level 2\nTrustwave Holdings, Inc.\n072F30E9C58D91DEF98A7F9EB2666CFE7BE1EE\n-----BEGIN CERTIFICATE-----\nMIIDqjCCAy+gAwIBAgITBy8w6cWNkd75in+esmZs/nvh7jAKBggqhkjOPQQDAzCB\nkTELMAkGA1UEBhMCVVMxETAPBgNVBAgTCElsbGlub2lzMRAwDgYDVQQHEwdDaGlj\nYWdvMSEwHwYDVQQKExhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xOjA4BgNVBAMT\nMVRydXN0d2F2ZSBHbG9iYWwgRUNDIFAzODQgQ2VydGlmaWNhdGlvbiBBdXRob3Jp\ndHkwHhcNMjAxMDA4MDY0OTQxWhcNMzAxMDA4MDY0ODQxWjBiMQswCQYDVQQGEwJV\nUzEUMBIGA1UEChMLU2VjdXJlVHJ1c3QxPTA7BgNVBAMTNFNlY3VyZVRydXN0IFRX\nRyBFQ0RTQSBQLTM4NCBTZWN1cmUgRW1haWwgQ0EsIExldmVsIDIwdjAQBgcqhkjO\nPQIBBgUrgQQAIgNiAAR4nTJ6MvtPBb7+L3tklhdDw0tr5FNY5Q1hsp6NR5OzZVeG\nx/X3VrCvkOsae1OEZHNqWCnnI1s/ix9qn/2+q0pPpXrT6wkN/HOQzpQaJWzCF7yX\nIfIB0o+x1Pr17UOX2qGjggF1MIIBcTASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1Ud\nDwEB/wQEAwIBhjATBgNVHSUEDDAKBggrBgEFBQcDBDAdBgNVHQ4EFgQUJd3xyUp6\n6EP6L9hCmkRrWAcU2mwwHwYDVR0jBBgwFoAUVamEidLBMr0Yy2ymB07I552+gpAw\nQQYDVR0gBDowODA2BgRVHSAAMC4wLAYIKwYBBQUHAgEWIGh0dHBzOi8vY2VydHMu\nc2VjdXJldHJ1c3QuY29tL0NBMDkGA1UdHwQyMDAwLqAsoCqGKGh0dHA6Ly9jcmwu\nc2VjdXJldHJ1c3QuY29tL1RXR1AzODRDQS5jcmwweAYIKwYBBQUHAQEEbDBqMCgG\nCCsGAQUFBzABhhxodHRwOi8vb2NzcC5zZWN1cmV0cnVzdC5jb20vMD4GCCsGAQUF\nBzAChjJodHRwOi8vY2VydHMuc2VjdXJldHJ1c3QuY29tL2lzc3VlcnMvVFdHUDM4\nNENBLmNydDAKBggqhkjOPQQDAwNpADBmAjEA8X5zwZHtdHjLIn60rwG3Z3NAa6cU\n6gOFxyF+ksTCXvWCUP0oFUqsRPMKMYE2mtdQAjEA2diuEHTPUgCQ0ynhLjged8BO\nFyzL3UlFieGGp90v58gUpfjoFq0BReAw7MPYo/Qa\n-----END CERTIFICATE-----\n\nTrustwave Global ECDSA P-384 Domain Validation CA, Level 1\nTrustwave Holdings, Inc.\n06CE82D9B07A17CC5376157813389A2930A44A\n-----BEGIN CERTIFICATE-----\nMIID1TCCA1ygAwIBAgITBs6C2bB6F8xTdhV4EziaKTCkSjAKBggqhkjOPQQDAzCB\nkTELMAkGA1UEBhMCVVMxETAPBgNVBAgTCElsbGlub2lzMRAwDgYDVQQHEwdDaGlj\nYWdvMSEwHwYDVQQKExhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xOjA4BgNVBAMT\nMVRydXN0d2F2ZSBHbG9iYWwgRUNDIFAzODQgQ2VydGlmaWNhdGlvbiBBdXRob3Jp\ndHkwHhcNMTgwMjA2MTIyMTIxWhcNMjgwMjI0MDUwMTIxWjCBmjFDMEEGA1UEAxM6\nVHJ1c3R3YXZlIEdsb2JhbCBFQ0RTQSBQLTM4NCBEb21haW4gVmFsaWRhdGlvbiBD\nQSwgTGV2ZWwgMTEhMB8GA1UEChMYVHJ1c3R3YXZlIEhvbGRpbmdzLCBJbmMuMRAw\nDgYDVQQHEwdDaGljYWdvMREwDwYDVQQIEwhJbGxpbm9pczELMAkGA1UEBhMCVVMw\ndjAQBgcqhkjOPQIBBgUrgQQAIgNiAASxlBEflNumTKsypgdOscM2x6ZRpQGSyB4B\nhJScRQI81UhZvzYSwxPWcxNZwFQoV457HfqR51pviJnHltRS8MJhJ9Q9Rf1sSmy4\nW6SPsM9qnBjwfBRxghByIsEIaTW/PKyjggFpMIIBZTASBgNVHRMBAf8ECDAGAQH/\nAgEAMA4GA1UdDwEB/wQEAwIBhjATBgNVHSUEDDAKBggrBgEFBQcDATAdBgNVHQ4E\nFgQUp6etGGS1u/oGGEfIwJ68Zf9pAWAwHwYDVR0jBBgwFoAUVamEidLBMr0Yy2ym\nB07I552+gpAwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEWHGh0dHBz\nOi8vc3NsLnRydXN0d2F2ZS5jb20vQ0EwNwYDVR0fBDAwLjAsoCqgKIYmaHR0cDov\nL2NybC50cnVzdHdhdmUuY29tL1RXR1AzODRDQS5jcmwwcgYIKwYBBQUHAQEEZjBk\nMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC50cnVzdHdhdmUuY29tLzA6BggrBgEF\nBQcwAoYuaHR0cDovL3NzbC50cnVzdHdhdmUuY29tL2lzc3VlcnMvVFdHUDM4NENB\nLmNydDAKBggqhkjOPQQDAwNnADBkAjA6fS1jRjt+DvnWSI58v4lX+8DCXbdEhDaB\nbBOS/rXwS/ntsFXqTf0B90GPv3AWlFMCMBbz6nXMwX0jKRkaFZOZx9tvwUapdq7M\n6jYpT/NnAzH68x1t3/7ysZ8lPuKIqAwdKQ==\n-----END CERTIFICATE-----\n\nTrustwave Global ECDSA P-384 Extended Validation CA, Level 1\nTrustwave Holdings, Inc.\n06CE82D9A331594530006781829387E40DBCB6\n-----BEGIN CERTIFICATE-----\nMIID4zCCA2igAwIBAgITBs6C2aMxWUUwAGeBgpOH5A28tjAKBggqhkjOPQQDAzCB\nkTELMAkGA1UEBhMCVVMxETAPBgNVBAgTCElsbGlub2lzMRAwDgYDVQQHEwdDaGlj\nYWdvMSEwHwYDVQQKExhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xOjA4BgNVBAMT\nMVRydXN0d2F2ZSBHbG9iYWwgRUNDIFAzODQgQ2VydGlmaWNhdGlvbiBBdXRob3Jp\ndHkwHhcNMTgwMjA2MTIyMTIwWhcNMjgwMjI0MDUwMTIwWjCBnDFFMEMGA1UEAxM8\nVHJ1c3R3YXZlIEdsb2JhbCBFQ0RTQSBQLTM4NCBFeHRlbmRlZCBWYWxpZGF0aW9u\nIENBLCBMZXZlbCAxMSEwHwYDVQQKExhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4x\nEDAOBgNVBAcTB0NoaWNhZ28xETAPBgNVBAgTCElsbGlub2lzMQswCQYDVQQGEwJV\nUzB2MBAGByqGSM49AgEGBSuBBAAiA2IABKcVGieqBjW3BuVza9VhkBlpGLHLZqQg\nI0GXaTpt5CogNWz6BmlZ1yAPjRnDUVfVwl57ATRtV7u+5TPFzKZ+RheFVc0iA8vl\nQ2JINGRz8XLDaivvuygQtFKSzCWn4e66cKOCAXMwggFvMBIGA1UdEwEB/wQIMAYB\nAf8CAQAwDgYDVR0PAQH/BAQDAgGGMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEF\nBQcDATAdBgNVHQ4EFgQUMFfit09gayJACkNfT/oNzXO8JCcwHwYDVR0jBBgwFoAU\nVamEidLBMr0Yy2ymB07I552+gpAwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYB\nBQUHAgEWHGh0dHBzOi8vc3NsLnRydXN0d2F2ZS5jb20vQ0EwNwYDVR0fBDAwLjAs\noCqgKIYmaHR0cDovL2NybC50cnVzdHdhdmUuY29tL1RXR1AzODRDQS5jcmwwcgYI\nKwYBBQUHAQEEZjBkMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC50cnVzdHdhdmUu\nY29tLzA6BggrBgEFBQcwAoYuaHR0cDovL3NzbC50cnVzdHdhdmUuY29tL2lzc3Vl\ncnMvVFdHUDM4NENBLmNydDAKBggqhkjOPQQDAwNpADBmAjEA6pScrGT+SruK7iON\n7iDJZfhQsjfQIhaq9sHiEXd89B8ibWOb57no/K265dPxeuALAjEA27NTMZM344eT\nX3df9B22dY5ZshsUMIiRcMo1K4B/GBO8SIA0jParkHS5g4WO5K7O\n-----END CERTIFICATE-----\n\nTrustwave Global ECDSA P-384 Organization Validation CA, Level 1\nTrustwave Holdings, Inc.\n06CE82D9A9D8E29837EF90BEAF59DC6551BED6\n-----BEGIN CERTIFICATE-----\nMIID5jCCA2ygAwIBAgITBs6C2anY4pg375C+r1ncZVG+1jAKBggqhkjOPQQDAzCB\nkTELMAkGA1UEBhMCVVMxETAPBgNVBAgTCElsbGlub2lzMRAwDgYDVQQHEwdDaGlj\nYWdvMSEwHwYDVQQKExhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xOjA4BgNVBAMT\nMVRydXN0d2F2ZSBHbG9iYWwgRUNDIFAzODQgQ2VydGlmaWNhdGlvbiBBdXRob3Jp\ndHkwHhcNMTgwMjA2MTIyMTIxWhcNMjgwMjI0MDUwMTIxWjCBoDFJMEcGA1UEAxNA\nVHJ1c3R3YXZlIEdsb2JhbCBFQ0RTQSBQLTM4NCBPcmdhbml6YXRpb24gVmFsaWRh\ndGlvbiBDQSwgTGV2ZWwgMTEhMB8GA1UEChMYVHJ1c3R3YXZlIEhvbGRpbmdzLCBJ\nbmMuMRAwDgYDVQQHEwdDaGljYWdvMREwDwYDVQQIEwhJbGxpbm9pczELMAkGA1UE\nBhMCVVMwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATvG09PrsO8UQZhH5Zw54rwgcUw\nKjC9D2V3myjD5WOa8uxdTL8PzdwPk4TCcSf6UUG1Tt74j/I+vBOi2tgMcDt68Zld\nvTj+jZT1BBYTQtYh6/dOUjmiapQU5XqoFMRNubGjggFzMIIBbzASBgNVHRMBAf8E\nCDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAgYI\nKwYBBQUHAwEwHQYDVR0OBBYEFDoXwH5iO1eguEDKzDRHzZZ+/AmIMB8GA1UdIwQY\nMBaAFFWphInSwTK9GMtspgdOyOedvoKQMD0GA1UdIAQ2MDQwMgYEVR0gADAqMCgG\nCCsGAQUFBwIBFhxodHRwczovL3NzbC50cnVzdHdhdmUuY29tL0NBMDcGA1UdHwQw\nMC4wLKAqoCiGJmh0dHA6Ly9jcmwudHJ1c3R3YXZlLmNvbS9UV0dQMzg0Q0EuY3Js\nMHIGCCsGAQUFBwEBBGYwZDAmBggrBgEFBQcwAYYaaHR0cDovL29jc3AudHJ1c3R3\nYXZlLmNvbS8wOgYIKwYBBQUHMAKGLmh0dHA6Ly9zc2wudHJ1c3R3YXZlLmNvbS9p\nc3N1ZXJzL1RXR1AzODRDQS5jcnQwCgYIKoZIzj0EAwMDaAAwZQIwMyHlVCVMacxP\nO0fC+uc4M7Eq1F9woaWBmLSSNC6EWe3nShMqsR9HrNWrOHBHucNWAjEArwrzEM8g\nJkR4iZxbyYNIn2sNEkNZt2pxqJn4G2cDDDFfOarykKVzP1aJ9OMdYUvs\n-----END CERTIFICATE-----\n\nTrustwave S/MIME SHA256 CA, Level 1\nXRamp Security Services Inc\n3A83B71EE02C3CCA1CE1A2643E9B66EA\n-----BEGIN CERTIFICATE-----\nMIIFHTCCBAWgAwIBAgIQOoO3HuAsPMoc4aJkPptm6jANBgkqhkiG9w0BAQsFADCB\ngjELMAkGA1UEBhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEk\nMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRY\nUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTQxMDAxMTky\nMjM4WhcNMjQwOTI4MTkyMjM4WjCBpDELMAkGA1UEBhMCVVMxETAPBgNVBAgTCEls\nbGlub2lzMRAwDgYDVQQHEwdDaGljYWdvMSEwHwYDVQQKExhUcnVzdHdhdmUgSG9s\nZGluZ3MsIEluYy4xLDAqBgNVBAMTI1RydXN0d2F2ZSBTL01JTUUgU0hBMjU2IENB\nLCBMZXZlbCAxMR8wHQYJKoZIhvcNAQkBFhBjYUB0cnVzdHdhdmUuY29tMIIBIjAN\nBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4c5I5giD0wEh+RuoLIJkD7a6mBlm\n+YzTtXSefGejVVYtpjclkUl4C4hEfQMCUcrBnU3ORHVprXi/Q82dKNFPac8FI9bj\n8mtq0cjdSDfXJKfdf52wPXnTjASwKyhJt+CoJik+Fz72KAkjxi+OUSpWdQBeAQra\ndbtu4UGFTgPcuU/cwpF8J0g4CGk/saVKkkJNpq5wqpfQRYl025FyKbzmRjqhB/Ta\npoHlbHMQ7aeoZ+qtDC+eWnE3AqTUHx14Z5fegjLQRmPWqqdeZafthouglbEuHt4A\neyzefTDNwyXjUiRD/n0kaNNW+lcsLpw7ouw1OU8mwQ0C7LoPJljpXRjvOwIDAQAB\no4IBaTCCAWUwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUDDOjV6rjq9ZL\ncBs2nqPtYVDmr3QwDgYDVR0PAQH/BAQDAgGGMEgGA1UdIARBMD8wPQYPKwYBBAGB\n7RgDAwMFBAMDMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vc3NsLnRydXN0d2F2ZS5j\nb20vQ0EwMgYDVR0fBCswKTAnoCWgI4YhaHR0cDovL2NybC50cnVzdHdhdmUuY29t\nL1hHQ0EuY3JsMGwGCCsGAQUFBwEBBGAwXjAlBggrBgEFBQcwAYYZaHR0cDovL29j\nc3AudHJ1c3R3YXZlLmNvbTA1BggrBgEFBQcwAoYpaHR0cDovL3NzbC50cnVzdHdh\ndmUuY29tL2lzc3VlcnMvWEdDQS5jcnQwEwYDVR0lBAwwCgYIKwYBBQUHAwQwHwYD\nVR0jBBgwFoAUxk+iPQZjhAmczmLkBKyNXLXpthswDQYJKoZIhvcNAQELBQADggEB\nAIdGLHufUegzFKVBQVWs3YAIFqCcJvdak14TMRImxJsnQWLz+jIW0olC0JATY6Ng\nxAbjIJA4wtW/tA+rgE6WcA5y3bLN3bRMQVDSu6X26hkVjvwo4/VYykOp3e9Cqlfe\ngJAsrqBQKXkUpEbYEmmorXxj6/74e//xwXTz0XS0BS9cXhONlTQffyJnMeLaunzQ\nS1x/MvALfPCHCZCTOfLDmwylKtHHu+V2Ks0HV+ZrzCBRR5W3MhGTU7PpNEMQwyGF\n+MG5eZTd0jyxOSOjaXQm7iDh0tG/iKZZegn5AhNdaHE74QEHTjK+teLQlo60QGBk\necyzakgVYZ/Ezalz8nQwhCA=\n-----END CERTIFICATE-----\n\nTrustwave XRamp Global Extended Validation CA, Level 1\nXRamp Security Services Inc\n00D3D519C2B2EB5C7040F64CBC957BBD2C\n-----BEGIN CERTIFICATE-----\nMIIFMDCCBBigAwIBAgIRANPVGcKy61xwQPZMvJV7vSwwDQYJKoZIhvcNAQELBQAw\ngYIxCzAJBgNVBAYTAlVTMR4wHAYDVQQLExV3d3cueHJhbXBzZWN1cml0eS5jb20x\nJDAiBgNVBAoTG1hSYW1wIFNlY3VyaXR5IFNlcnZpY2VzIEluYzEtMCsGA1UEAxMk\nWFJhbXAgR2xvYmFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTE1MDgxMjIw\nMTczMVoXDTI1MDgwOTIwMTczMVowgbcxCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhJ\nbGxpbm9pczEQMA4GA1UEBxMHQ2hpY2FnbzEhMB8GA1UEChMYVHJ1c3R3YXZlIEhv\nbGRpbmdzLCBJbmMuMT8wPQYDVQQDEzZUcnVzdHdhdmUgWFJhbXAgR2xvYmFsIEV4\ndGVuZGVkIFZhbGlkYXRpb24gQ0EsIExldmVsIDExHzAdBgkqhkiG9w0BCQEWEGNh\nQHRydXN0d2F2ZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9\nAAbj9SknrNJT9pDatGvlR386KRi0SkqIOGr+C5W91+8E8PqydEHwjrnrWt/MTLGO\n+2kfEO3TEJlWxQQqbHy8SdhjCANefLzOT1cfTfjroWBIS9yiHpBIQytAaz/td95Y\n+JKrRBVCnIR/wB5qMMQ982RWwqggD763XLma0c1AIndsZL+dXp1zET4KBreoxn3q\nRYzMIsZIL2mAJoiCOTYuOGrOMVuaQn0HSu3K7bU+CpkdLQ/j+ikcQiI10IL9oOcO\nU9Gnt/hRyUX66Gk91RIpYXhla2tIYrg7ezrAnFoZIZCb891JjFtbSEOvAAK9F5d6\nfkkjPx0432o/v1c5GRFPAgMBAAGjggFoMIIBZDASBgNVHRMBAf8ECDAGAQH/AgEA\nMB0GA1UdDgQWBBTFzrk7QkXAzQnlaOhIOoNdbI6rGDAOBgNVHQ8BAf8EBAMCAYYw\nPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vc3NsLnRy\ndXN0d2F2ZS5jb20vQ0EwMgYDVR0fBCswKTAnoCWgI4YhaHR0cDovL2NybC50cnVz\ndHdhdmUuY29tL1hHQ0EuY3JsMGwGCCsGAQUFBwEBBGAwXjAlBggrBgEFBQcwAYYZ\naHR0cDovL29jc3AudHJ1c3R3YXZlLmNvbTA1BggrBgEFBQcwAoYpaHR0cDovL3Nz\nbC50cnVzdHdhdmUuY29tL2lzc3VlcnMvWEdDQS5jcnQwHQYDVR0lBBYwFAYIKwYB\nBQUHAwIGCCsGAQUFBwMBMB8GA1UdIwQYMBaAFMZPoj0GY4QJnM5i5ASsjVy16bYb\nMA0GCSqGSIb3DQEBCwUAA4IBAQCA2N/WVTGYRGNTuvF2qKWPrQUx0/6pKmGqELl6\nNXs1bwRXCci98SkeNjiaa2dHEwcGR43/M1Y0nekXP8QCEFVqGOwaY0pnTb8wL+CI\n/HTp1zfmoCYNvtzt1fIq/+9ynLYEjX8rsrf51HIEjJJK8K3k/Ub3cFT+yJKNN2YN\nJS0IvJYlbpqS6VbcInwLcW7WvJmXUuL7t0Vtt0d2q1h5UdnJQP+skiOmN/B0zPut\nbRC4v5pNGJJmwbk58UlOSeviH2qzDGutamOJ6dFNWqQFoZorAT7fUsr3WDA4HKtx\neraYdCIRJX7weW9xpdMNsVO7Wy/Ma7Fz9fzKnOH5mnInBOof\n-----END CERTIFICATE-----\n\nSecure Global CA\nSecureTrust Corporation\n075622A4E8D48A894DF413C8F0F8EAA5\n-----BEGIN CERTIFICATE-----\nMIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBK\nMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x\nGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkx\nMjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3Qg\nQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwgQ0EwggEiMA0GCSqG\nSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jxYDiJ\niQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa\n/FHtaMbQbqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJ\njnIFHovdRIWCQtBJwB1g8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnI\nHmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYVHDGA76oYa8J719rO+TMg1fW9ajMtgQT7\nsFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi0XPnj3pDAgMBAAGjgZ0w\ngZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQF\nMAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCsw\nKaAnoCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsG\nAQQBgjcVAQQDAgEAMA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0L\nURYD7xh8yOOvaliTFGCRsoTciE6+OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXO\nH0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cnCDpOGR86p1hcF895P4vkp9Mm\nI50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/53CYNv6ZHdAbY\niNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc\nf8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW\n-----END CERTIFICATE-----\n\nSecureTrust CA\nSecureTrust Corporation\n0CF08E5C0816A5AD427FF0EB271859D0\n-----BEGIN CERTIFICATE-----\nMIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBI\nMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x\nFzAVBgNVBAMTDlNlY3VyZVRydXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIz\nMTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAeBgNVBAoTF1NlY3VyZVRydXN0IENv\ncnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCCASIwDQYJKoZIhvcN\nAQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQXOZEz\nZum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO\n0gMdA+9tDWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIao\nwW8xQmxSPmjL8xk037uHGFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj\n7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b01k/unK8RCSc43Oz969XL0Imnal0ugBS\n8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmHursCAwEAAaOBnTCBmjAT\nBgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB\n/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCeg\nJYYjaHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGC\nNxUBBAMCAQAwDQYJKoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt3\n6Z3q059c4EVlew3KW+JwULKUBRSuSceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/\n3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHfmbx8IVQr5Fiiu1cprp6poxkm\nD5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZnMUFdAvnZyPS\nCPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR\n3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE=\n-----END CERTIFICATE-----\n\nTrustwave Global Certification Authority\nTrustwave Holdings, Inc.\n05F70E86DA49F346352EBAB2\n-----BEGIN CERTIFICATE-----\nMIIF2jCCA8KgAwIBAgIMBfcOhtpJ80Y1LrqyMA0GCSqGSIb3DQEBCwUAMIGIMQsw\nCQYDVQQGEwJVUzERMA8GA1UECAwISWxsaW5vaXMxEDAOBgNVBAcMB0NoaWNhZ28x\nITAfBgNVBAoMGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5jLjExMC8GA1UEAwwoVHJ1\nc3R3YXZlIEdsb2JhbCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MjMx\nOTM0MTJaFw00MjA4MjMxOTM0MTJaMIGIMQswCQYDVQQGEwJVUzERMA8GA1UECAwI\nSWxsaW5vaXMxEDAOBgNVBAcMB0NoaWNhZ28xITAfBgNVBAoMGFRydXN0d2F2ZSBI\nb2xkaW5ncywgSW5jLjExMC8GA1UEAwwoVHJ1c3R3YXZlIEdsb2JhbCBDZXJ0aWZp\nY2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB\nALldUShLPDeS0YLOvR29zd24q88KPuFd5dyqCblXAj7mY2Hf8g+CY66j96xz0Xzn\nswuvCAAJWX/NKSqIk4cXGIDtiLK0thAfLdZfVaITXdHG6wZWiYj+rDKd/VzDBcdu\n7oaJuogDnXIhhpCujwOl3J+IKMujkkkP7NAP4m1ET4BqstTnoApTAbqOl5F2brz8\n1Ws25kCI1nsvXwXoLG0R8+eyvpJETNKXpP7ScoFDB5zpET71ixpZfR9oWN0EACyW\n80OzfpgZdNmcc9kYvkHHNHnZ9GLCQ7mzJ7Aiy/k9UscwR7PJPrhq4ufogXBeQotP\nJqX+OsIgbrv4Fo7NDKm0G2x2EOFYeUY+VM6AqFcJNykbmROPDMjWLBz7BegIlT1l\nRtzuzWniTY+HKE40Cz7PFNm73bZQmq131BnW2hqIyE4bJ3XYsgjxroMwuREOzYfw\nhI0Vcnyh78zyiGG69Gm7DIwLdVcEuE4qFC49DxweMqZiNu5m4iK4BUBjECLzMx10\ncoos9TkpoNPnG4CELcU9402x/RpvumUHO1jsQkUm+9jaJXLE9gCxInm943xZYkqc\nBW89zubWR2OZxiRvchLIrH+QtAuRcOi35hYQcRfO3gZPSEF9NUqjifLJS3tBEW1n\ntwiYTOURGa5CgNz7kAXU+FDKvuStx8KU1xad5hePrzb7AgMBAAGjQjBAMA8GA1Ud\nEwEB/wQFMAMBAf8wHQYDVR0OBBYEFJngGWcNYtt2s9o9uFvo/ULSMQ6HMA4GA1Ud\nDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAmHNw4rDT7TnsTGDZqRKGFx6W\n0OhUKDtkLSGm+J1WE2pIPU/HPinbbViDVD2HfSMF1OQc3Og4ZYbFdada2zUFvXfe\nuyk3QAUHw5RSn8pk3fEbK9xGChACMf1KaA0HZJDmHvUqoai7PF35owgLEQzxPy0Q\nlG/+4jSHg9bP5Rs1bdID4bANqKCqRieCNqcVtgimQlRXtpla4gt5kNdXElE1GYhB\naCXUNxeEFfsBctyV3lImIJgm4nb1J2/6ADtKYdkNy1GTKv0WBpanI5ojSP5RvbbE\nsLFUzt5sQa0WZ37b/TjNuThOssFgy50X31ieemKyJo90lZvkWx3SD92YHJtZuSPT\nMaCm/zjdzyBP6VhWOmfD0faZmZ26NraAL4hHT4a/RDqA5Dccprrql5gR0IRiR2Qe\nqu5AvzSxnI9O4fKSTx+O856X3vOmeWqJcU9LJxdI/uz0UA9PSX3MReO9ekDFQdxh\nVicGaeVyQYHTtgGJoC86cnn+OjC/QezHYj6RS8fZMXZC+fc8Y+wmjHMMfRod6qh8\nh6jCJ3zhM0EPz8/8AKAigJ5Kp28AsEFFtyLKaEjFQqKu3R3y4G5OBVixwJAWKqQ9\nEEC+j2Jjg6mcgn0tAumDMHzLJ8n9HmYAsC7TIS+OMxZsmO0QqAfWzJPP29FpHOTK\nyeC2nOnOcXHebD8WpHk=\n-----END CERTIFICATE-----\n\nTrustwave Global ECC P256 Certification Authority\nTrustwave Holdings, Inc.\n0D6A5F083F285C3E5195DF5D\n-----BEGIN CERTIFICATE-----\nMIICYDCCAgegAwIBAgIMDWpfCD8oXD5Rld9dMAoGCCqGSM49BAMCMIGRMQswCQYD\nVQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAf\nBgNVBAoTGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3\nYXZlIEdsb2JhbCBFQ0MgUDI1NiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0x\nNzA4MjMxOTM1MTBaFw00MjA4MjMxOTM1MTBaMIGRMQswCQYDVQQGEwJVUzERMA8G\nA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0\nd2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBF\nQ0MgUDI1NiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTBZMBMGByqGSM49AgEGCCqG\nSM49AwEHA0IABH77bOYj43MyCMpg5lOcunSNGLB4kFKA3TjASh3RqMyTpJcGOMoN\nFWLGjgEqZZ2q3zSRLoHB5DOSMcT9CTqmP62jQzBBMA8GA1UdEwEB/wQFMAMBAf8w\nDwYDVR0PAQH/BAUDAwcGADAdBgNVHQ4EFgQUo0EGrJBt0UrrdaVKEJmzsaGLSvcw\nCgYIKoZIzj0EAwIDRwAwRAIgB+ZU2g6gWrKuEZ+Hxbb/ad4lvvigtwjzRM4q3wgh\nDDcCIC0mA6AFvWvR9lz4ZcyGbbOcNEhjhAnFjXca4syc4XR7\n-----END CERTIFICATE-----\n\nTrustwave Global ECC P384 Certification Authority\nTrustwave Holdings, Inc.\n08BD85976C9927A48068473B\n-----BEGIN CERTIFICATE-----\nMIICnTCCAiSgAwIBAgIMCL2Fl2yZJ6SAaEc7MAoGCCqGSM49BAMDMIGRMQswCQYD\nVQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAf\nBgNVBAoTGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3\nYXZlIEdsb2JhbCBFQ0MgUDM4NCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0x\nNzA4MjMxOTM2NDNaFw00MjA4MjMxOTM2NDNaMIGRMQswCQYDVQQGEwJVUzERMA8G\nA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0\nd2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBF\nQ0MgUDM4NCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTB2MBAGByqGSM49AgEGBSuB\nBAAiA2IABGvaDXU1CDFHBa5FmVXxERMuSvgQMSOjfoPTfygIOiYaOs+Xgh+AtycJ\nj9GOMMQKmw6sWASr9zZ9lCOkmwqKi6vr/TklZvFe/oyujUF5nQlgziip04pt89ZF\n1PKYhDhloKNDMEEwDwYDVR0TAQH/BAUwAwEB/zAPBgNVHQ8BAf8EBQMDBwYAMB0G\nA1UdDgQWBBRVqYSJ0sEyvRjLbKYHTsjnnb6CkDAKBggqhkjOPQQDAwNnADBkAjA3\nAZKXRRJ+oPM+rRk6ct30UJMDEr5E0k9BpIycnR+j9sKS50gU/k6bpZFXrsY3crsC\nMGclCrEMXu6pY5Jv5ZAL/mYiykf9ijH3g/56vxC+GCsej/YpHpRZ744hN8tRmKVu\nSw==\n-----END CERTIFICATE-----\n";
14
14
 
15
15
  var PKG_NAME = "@hpcc-js/comms";
16
- var PKG_VERSION = "2.66.0";
17
- var BUILD_VERSION = "2.97.0";
16
+ var PKG_VERSION = "2.70.0";
17
+ var BUILD_VERSION = "2.101.0";
18
18
 
19
19
  /*! *****************************************************************************
20
20
  Copyright (c) Microsoft Corporation.
@@ -103,10 +103,10 @@ function __spreadArray(to, from, pack) {
103
103
  ar[i] = from[i];
104
104
  }
105
105
  }
106
- return to.concat(ar || Array.prototype.slice.call(from));
106
+ return to.concat(ar || from);
107
107
  }
108
108
 
109
- var logger$2 = scopedLogger("comms/connection.ts");
109
+ var logger = scopedLogger("comms/connection.ts");
110
110
  function instanceOfIOptions(object) {
111
111
  return "baseUrl" in object;
112
112
  }
@@ -145,20 +145,20 @@ function serializeRequest(obj, encodeRequest, prefix) {
145
145
  obj[key].forEach(function (row, i) {
146
146
  if (typeof row === "object") {
147
147
  includeItemCount_1 = true;
148
- str.push(serializeRequest(row, encodeRequest, prefix + encode("".concat(key, ".").concat(i), encodeRequest)));
148
+ str.push(serializeRequest(row, encodeRequest, prefix + encode(key + "." + i, encodeRequest)));
149
149
  }
150
150
  else {
151
- str.push(prefix + encode("".concat(key, "_i").concat(i), encodeRequest) + "=" + serializeRequest(row, encodeRequest));
151
+ str.push(prefix + encode(key + "_i" + i, encodeRequest) + "=" + serializeRequest(row, encodeRequest));
152
152
  }
153
153
  });
154
154
  if (includeItemCount_1) {
155
- str.push(prefix + encode("".concat(key, ".itemcount"), encodeRequest) + "=" + obj[key].length);
155
+ str.push(prefix + encode(key + ".itemcount", encodeRequest) + "=" + obj[key].length);
156
156
  }
157
157
  }
158
158
  else if (typeof obj[key] === "object") {
159
159
  if (obj[key] && obj[key]["Item"] instanceof Array) { // Specific to ws_machine.GetTargetClusterInfo?
160
160
  str.push(serializeRequest(obj[key]["Item"], encodeRequest, prefix + encode(key, encodeRequest)));
161
- str.push(prefix + encode("".concat(key, ".itemcount"), encodeRequest) + "=" + obj[key]["Item"].length);
161
+ str.push(prefix + encode(key + ".itemcount", encodeRequest) + "=" + obj[key]["Item"].length);
162
162
  }
163
163
  else {
164
164
  str.push(serializeRequest(obj[key], encodeRequest, prefix + encode(key, encodeRequest)));
@@ -208,12 +208,12 @@ function jsonp(opts, action, request, responseType, header) {
208
208
  respondedTimeout -= respondedTick;
209
209
  if (respondedTimeout <= 0) {
210
210
  clearInterval(progress);
211
- logger$2.error("Request timeout: " + script.src);
211
+ logger.error("Request timeout: " + script.src);
212
212
  doCallback();
213
213
  reject(Error("Request timeout: " + script.src));
214
214
  }
215
215
  else {
216
- logger$2.debug("Request pending (" + respondedTimeout / 1000 + " sec): " + script.src);
216
+ logger.debug("Request pending (" + respondedTimeout / 1000 + " sec): " + script.src);
217
217
  }
218
218
  }
219
219
  }, respondedTick);
@@ -224,7 +224,7 @@ function jsonp(opts, action, request, responseType, header) {
224
224
  });
225
225
  }
226
226
  function authHeader(opts) {
227
- return opts.userID ? { Authorization: "Basic ".concat(btoa("".concat(opts.userID, ":").concat(opts.password))) } : {};
227
+ return opts.userID ? { Authorization: "Basic " + btoa(opts.userID + ":" + opts.password) } : {};
228
228
  }
229
229
  // _omitMap is a workaround for older HPCC-Platform instances without credentials ---
230
230
  var _omitMap = {};
@@ -283,7 +283,7 @@ function get(opts, action, request, responseType, header) {
283
283
  abortSignal = request.abortSignal_;
284
284
  delete request.abortSignal_;
285
285
  }
286
- return doFetch(opts, "".concat(action, "?").concat(serializeRequest(request, opts.encodeRequest)), {
286
+ return doFetch(opts, action + "?" + serializeRequest(request, opts.encodeRequest), {
287
287
  method: "get",
288
288
  signal: abortSignal
289
289
  }, __assign({}, header), responseType);
@@ -362,7 +362,7 @@ var ESPExceptions = /** @class */ (function (_super) {
362
362
  _this.Source = exceptions.Source;
363
363
  _this.Exception = exceptions.Exception;
364
364
  if (exceptions.Exception.length) {
365
- _this.message = "".concat(exceptions.Exception[0].Code, ": ").concat(exceptions.Exception[0].Message);
365
+ _this.message = exceptions.Exception[0].Code + ": " + exceptions.Exception[0].Message;
366
366
  }
367
367
  else {
368
368
  _this.message = "";
@@ -552,7 +552,7 @@ var CodesignService = /** @class */ (function () {
552
552
  var DFUService = /** @class */ (function (_super) {
553
553
  __extends(DFUService, _super);
554
554
  function DFUService(optsConnection) {
555
- return _super.call(this, optsConnection, "WsDfu", "1.60") || this;
555
+ return _super.call(this, optsConnection, "WsDfu", "1.62") || this;
556
556
  }
557
557
  DFUService.prototype.DFUQuery = function (request) {
558
558
  return this._connection.send("DFUQuery", request);
@@ -682,7 +682,7 @@ var EclService = /** @class */ (function (_super) {
682
682
  };
683
683
  EclService.prototype.requestJson = function (querySet, queryId) {
684
684
  // http://192.168.3.22:8002/WsEcl/example/request/query/roxie/peopleaccounts/json?display
685
- return this._connection.send("example/request/query/".concat(querySet, "/").concat(queryId, "/json"), {}, "text").then(function (response) {
685
+ return this._connection.send("example/request/query/" + querySet + "/" + queryId + "/json", {}, "text").then(function (response) {
686
686
  var requestSchema = JSON.parse(response);
687
687
  for (var key in requestSchema) {
688
688
  return requestSchema[key];
@@ -692,7 +692,7 @@ var EclService = /** @class */ (function (_super) {
692
692
  };
693
693
  EclService.prototype.responseJson = function (querySet, queryId) {
694
694
  // http://192.168.3.22:8002/WsEcl/example/response/query/roxie/peopleaccounts/json?display
695
- return this._connection.send("example/response/query/".concat(querySet, "/").concat(queryId, "/json"), {}, "text").then(function (response) {
695
+ return this._connection.send("example/response/query/" + querySet + "/" + queryId + "/json", {}, "text").then(function (response) {
696
696
  var responseSchema = JSON.parse(response);
697
697
  for (var key in responseSchema) {
698
698
  return responseSchema[key].Results;
@@ -708,7 +708,7 @@ var EclService = /** @class */ (function (_super) {
708
708
  };
709
709
  EclService.prototype.submit = function (querySet, queryId, request) {
710
710
  // http://192.168.3.22:8002/WsEcl/submit/query/roxie/peopleaccounts.1/json
711
- var action = "submit/query/".concat(querySet, "/").concat(queryId);
711
+ var action = "submit/query/" + querySet + "/" + queryId;
712
712
  return this._connection.send(action, request, "json2").then(function (response) {
713
713
  if (response.Results && response.Results.Exception) {
714
714
  throw new ESPExceptions(action, request, {
@@ -722,6 +722,39 @@ var EclService = /** @class */ (function (_super) {
722
722
  return EclService;
723
723
  }(Service));
724
724
 
725
+ var LogAccessType;
726
+ (function (LogAccessType) {
727
+ LogAccessType[LogAccessType["All"] = 0] = "All";
728
+ LogAccessType[LogAccessType["ByJobIdID"] = 1] = "ByJobIdID";
729
+ LogAccessType[LogAccessType["ByComponent"] = 2] = "ByComponent";
730
+ LogAccessType[LogAccessType["ByLogType"] = 3] = "ByLogType";
731
+ LogAccessType[LogAccessType["ByTargetAudience"] = 4] = "ByTargetAudience";
732
+ })(LogAccessType || (LogAccessType = {}));
733
+ var LogaccessService = /** @class */ (function (_super) {
734
+ __extends(LogaccessService, _super);
735
+ function LogaccessService(optsConnection) {
736
+ return _super.call(this, optsConnection, "WsLogaccess", "1") || this;
737
+ }
738
+ LogaccessService.prototype.GetLogAccessInfo = function (request) {
739
+ return this._connection.send("GetLogAccessInfo", request);
740
+ };
741
+ LogaccessService.prototype.GetLogs = function (request) {
742
+ return this._connection.send("GetLogs", request);
743
+ };
744
+ LogaccessService.prototype.Ping = function (request) {
745
+ return this._connection.send("Ping", request);
746
+ };
747
+ return LogaccessService;
748
+ }(Service));
749
+
750
+ var LogaccessServiceEx = /** @class */ (function (_super) {
751
+ __extends(LogaccessServiceEx, _super);
752
+ function LogaccessServiceEx() {
753
+ return _super !== null && _super.apply(this, arguments) || this;
754
+ }
755
+ return LogaccessServiceEx;
756
+ }(LogaccessService));
757
+
725
758
  function ascending(a, b) {
726
759
  return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
727
760
  }
@@ -758,7 +791,7 @@ function ascendingComparator(f) {
758
791
  };
759
792
  }
760
793
 
761
- bisector(ascending);
794
+ var ascendingBisect = bisector(ascending);
762
795
 
763
796
  function number(x) {
764
797
  return x === null ? NaN : +x;
@@ -882,6 +915,31 @@ var MachineService = /** @class */ (function () {
882
915
  return MachineService;
883
916
  }());
884
917
 
918
+ var ResourcesService = /** @class */ (function (_super) {
919
+ __extends(ResourcesService, _super);
920
+ function ResourcesService(optsConnection) {
921
+ return _super.call(this, optsConnection, "WsResources", "1.01") || this;
922
+ }
923
+ ResourcesService.prototype.Ping = function (request) {
924
+ return this._connection.send("Ping", request);
925
+ };
926
+ ResourcesService.prototype.ServiceQuery = function (request) {
927
+ return this._connection.send("ServiceQuery", request);
928
+ };
929
+ ResourcesService.prototype.WebLinksQuery = function (request) {
930
+ return this._connection.send("WebLinksQuery", request);
931
+ };
932
+ return ResourcesService;
933
+ }(Service));
934
+
935
+ var ResourcesServiceEx = /** @class */ (function (_super) {
936
+ __extends(ResourcesServiceEx, _super);
937
+ function ResourcesServiceEx() {
938
+ return _super !== null && _super.apply(this, arguments) || this;
939
+ }
940
+ return ResourcesServiceEx;
941
+ }(ResourcesService));
942
+
885
943
  var SMCService = /** @class */ (function () {
886
944
  function SMCService(optsConnection) {
887
945
  this._connection = new ESPConnection(optsConnection, "WsSMC", "1.24");
@@ -986,11 +1044,12 @@ var StoreService = /** @class */ (function (_super) {
986
1044
  */
987
1045
  var TpLogicalClusterQuery;
988
1046
  (function (TpLogicalClusterQuery) {
1047
+ var RoxieQueueFilter;
989
1048
  (function (RoxieQueueFilter) {
990
1049
  RoxieQueueFilter["All"] = "All";
991
1050
  RoxieQueueFilter["QueriesOnly"] = "QueriesOnly";
992
1051
  RoxieQueueFilter["WorkunitsOnly"] = "WorkunitsOnly";
993
- })(TpLogicalClusterQuery.RoxieQueueFilter || (TpLogicalClusterQuery.RoxieQueueFilter = {}));
1052
+ })(RoxieQueueFilter = TpLogicalClusterQuery.RoxieQueueFilter || (TpLogicalClusterQuery.RoxieQueueFilter = {}));
994
1053
  })(TpLogicalClusterQuery || (TpLogicalClusterQuery = {}));
995
1054
  var TopologyService = /** @class */ (function (_super) {
996
1055
  __extends(TopologyService, _super);
@@ -1052,7 +1111,7 @@ var TopologyService = /** @class */ (function (_super) {
1052
1111
  * http://localhost:8010/WsWorkunits/WUInfo?respjson_
1053
1112
  * http://json2ts.com/
1054
1113
  */
1055
- var WUStateID$1;
1114
+ var WUStateID;
1056
1115
  (function (WUStateID) {
1057
1116
  WUStateID[WUStateID["Unknown"] = 0] = "Unknown";
1058
1117
  WUStateID[WUStateID["Compiled"] = 1] = "Compiled";
@@ -1073,12 +1132,13 @@ var WUStateID$1;
1073
1132
  WUStateID[WUStateID["Paused"] = 16] = "Paused";
1074
1133
  WUStateID[WUStateID["LAST"] = 17] = "LAST";
1075
1134
  WUStateID[WUStateID["NotFound"] = 999] = "NotFound";
1076
- })(WUStateID$1 || (WUStateID$1 = {}));
1135
+ })(WUStateID || (WUStateID = {}));
1077
1136
  function isECLResult(_) {
1078
1137
  return typeof _.Name === "string";
1079
1138
  }
1080
1139
  var WUUpdate;
1081
1140
  (function (WUUpdate) {
1141
+ var Action;
1082
1142
  (function (Action) {
1083
1143
  Action[Action["Unknown"] = 0] = "Unknown";
1084
1144
  Action[Action["Compile"] = 1] = "Compile";
@@ -1090,7 +1150,7 @@ var WUUpdate;
1090
1150
  Action[Action["Resume"] = 7] = "Resume";
1091
1151
  Action[Action["Debug"] = 8] = "Debug";
1092
1152
  Action[Action["__size"] = 9] = "__size";
1093
- })(WUUpdate.Action || (WUUpdate.Action = {}));
1153
+ })(Action = WUUpdate.Action || (WUUpdate.Action = {}));
1094
1154
  })(WUUpdate || (WUUpdate = {}));
1095
1155
  function isWUQueryECLWorkunit(_) {
1096
1156
  return _.TotalClusterTime !== undefined;
@@ -1292,8 +1352,6 @@ var day = newInterval(function(date) {
1292
1352
  return date.getDate() - 1;
1293
1353
  });
1294
1354
 
1295
- var timeDay = day;
1296
-
1297
1355
  function weekday(i) {
1298
1356
  return newInterval(function(date) {
1299
1357
  date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);
@@ -1307,11 +1365,11 @@ function weekday(i) {
1307
1365
 
1308
1366
  var sunday = weekday(0);
1309
1367
  var monday = weekday(1);
1310
- weekday(2);
1311
- weekday(3);
1368
+ var tuesday = weekday(2);
1369
+ var wednesday = weekday(3);
1312
1370
  var thursday = weekday(4);
1313
- weekday(5);
1314
- weekday(6);
1371
+ var friday = weekday(5);
1372
+ var saturday = weekday(6);
1315
1373
 
1316
1374
  var year = newInterval(function(date) {
1317
1375
  date.setMonth(0, 1);
@@ -1335,8 +1393,6 @@ year.every = function(k) {
1335
1393
  });
1336
1394
  };
1337
1395
 
1338
- var timeYear = year;
1339
-
1340
1396
  var utcDay = newInterval(function(date) {
1341
1397
  date.setUTCHours(0, 0, 0, 0);
1342
1398
  }, function(date, step) {
@@ -1347,8 +1403,6 @@ var utcDay = newInterval(function(date) {
1347
1403
  return date.getUTCDate() - 1;
1348
1404
  });
1349
1405
 
1350
- var utcDay$1 = utcDay;
1351
-
1352
1406
  function utcWeekday(i) {
1353
1407
  return newInterval(function(date) {
1354
1408
  date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);
@@ -1362,11 +1416,11 @@ function utcWeekday(i) {
1362
1416
 
1363
1417
  var utcSunday = utcWeekday(0);
1364
1418
  var utcMonday = utcWeekday(1);
1365
- utcWeekday(2);
1366
- utcWeekday(3);
1419
+ var utcTuesday = utcWeekday(2);
1420
+ var utcWednesday = utcWeekday(3);
1367
1421
  var utcThursday = utcWeekday(4);
1368
- utcWeekday(5);
1369
- utcWeekday(6);
1422
+ var utcFriday = utcWeekday(5);
1423
+ var utcSaturday = utcWeekday(6);
1370
1424
 
1371
1425
  var utcYear = newInterval(function(date) {
1372
1426
  date.setUTCMonth(0, 1);
@@ -1390,8 +1444,6 @@ utcYear.every = function(k) {
1390
1444
  });
1391
1445
  };
1392
1446
 
1393
- var utcYear$1 = utcYear;
1394
-
1395
1447
  function localDate(d) {
1396
1448
  if (0 <= d.y && d.y < 100) {
1397
1449
  var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);
@@ -1580,7 +1632,7 @@ function formatLocale(locale) {
1580
1632
  return function(string) {
1581
1633
  var d = newDate(1900, undefined, 1),
1582
1634
  i = parseSpecifier(d, specifier, string += "", 0),
1583
- week, day;
1635
+ week, day$1;
1584
1636
  if (i != string.length) return null;
1585
1637
 
1586
1638
  // If a UNIX timestamp is specified, return it.
@@ -1601,25 +1653,25 @@ function formatLocale(locale) {
1601
1653
  if (d.V < 1 || d.V > 53) return null;
1602
1654
  if (!("w" in d)) d.w = 1;
1603
1655
  if ("Z" in d) {
1604
- week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();
1605
- week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);
1606
- week = utcDay$1.offset(week, (d.V - 1) * 7);
1656
+ week = utcDate(newDate(d.y, 0, 1)), day$1 = week.getUTCDay();
1657
+ week = day$1 > 4 || day$1 === 0 ? utcMonday.ceil(week) : utcMonday(week);
1658
+ week = utcDay.offset(week, (d.V - 1) * 7);
1607
1659
  d.y = week.getUTCFullYear();
1608
1660
  d.m = week.getUTCMonth();
1609
1661
  d.d = week.getUTCDate() + (d.w + 6) % 7;
1610
1662
  } else {
1611
- week = localDate(newDate(d.y, 0, 1)), day = week.getDay();
1612
- week = day > 4 || day === 0 ? monday.ceil(week) : monday(week);
1613
- week = timeDay.offset(week, (d.V - 1) * 7);
1663
+ week = localDate(newDate(d.y, 0, 1)), day$1 = week.getDay();
1664
+ week = day$1 > 4 || day$1 === 0 ? monday.ceil(week) : monday(week);
1665
+ week = day.offset(week, (d.V - 1) * 7);
1614
1666
  d.y = week.getFullYear();
1615
1667
  d.m = week.getMonth();
1616
1668
  d.d = week.getDate() + (d.w + 6) % 7;
1617
1669
  }
1618
1670
  } else if ("W" in d || "U" in d) {
1619
1671
  if (!("w" in d)) d.w = "u" in d ? d.u % 7 : "W" in d ? 1 : 0;
1620
- day = "Z" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();
1672
+ day$1 = "Z" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();
1621
1673
  d.m = 0;
1622
- d.d = "W" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;
1674
+ d.d = "W" in d ? (d.w + 6) % 7 + d.W * 7 - (day$1 + 5) % 7 : d.w + d.U * 7 - (day$1 + 6) % 7;
1623
1675
  }
1624
1676
 
1625
1677
  // If a time zone is specified, all fields are interpreted as UTC and then
@@ -1905,7 +1957,7 @@ function formatHour12(d, p) {
1905
1957
  }
1906
1958
 
1907
1959
  function formatDayOfYear(d, p) {
1908
- return pad(1 + timeDay.count(timeYear(d), d), p, 3);
1960
+ return pad(1 + day.count(year(d), d), p, 3);
1909
1961
  }
1910
1962
 
1911
1963
  function formatMilliseconds(d, p) {
@@ -1934,7 +1986,7 @@ function formatWeekdayNumberMonday(d) {
1934
1986
  }
1935
1987
 
1936
1988
  function formatWeekNumberSunday(d, p) {
1937
- return pad(sunday.count(timeYear(d) - 1, d), p, 2);
1989
+ return pad(sunday.count(year(d) - 1, d), p, 2);
1938
1990
  }
1939
1991
 
1940
1992
  function dISO(d) {
@@ -1944,7 +1996,7 @@ function dISO(d) {
1944
1996
 
1945
1997
  function formatWeekNumberISO(d, p) {
1946
1998
  d = dISO(d);
1947
- return pad(thursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);
1999
+ return pad(thursday.count(year(d), d) + (year(d).getDay() === 4), p, 2);
1948
2000
  }
1949
2001
 
1950
2002
  function formatWeekdayNumberSunday(d) {
@@ -1952,7 +2004,7 @@ function formatWeekdayNumberSunday(d) {
1952
2004
  }
1953
2005
 
1954
2006
  function formatWeekNumberMonday(d, p) {
1955
- return pad(monday.count(timeYear(d) - 1, d), p, 2);
2007
+ return pad(monday.count(year(d) - 1, d), p, 2);
1956
2008
  }
1957
2009
 
1958
2010
  function formatYear(d, p) {
@@ -1994,7 +2046,7 @@ function formatUTCHour12(d, p) {
1994
2046
  }
1995
2047
 
1996
2048
  function formatUTCDayOfYear(d, p) {
1997
- return pad(1 + utcDay$1.count(utcYear$1(d), d), p, 3);
2049
+ return pad(1 + utcDay.count(utcYear(d), d), p, 3);
1998
2050
  }
1999
2051
 
2000
2052
  function formatUTCMilliseconds(d, p) {
@@ -2023,7 +2075,7 @@ function formatUTCWeekdayNumberMonday(d) {
2023
2075
  }
2024
2076
 
2025
2077
  function formatUTCWeekNumberSunday(d, p) {
2026
- return pad(utcSunday.count(utcYear$1(d) - 1, d), p, 2);
2078
+ return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);
2027
2079
  }
2028
2080
 
2029
2081
  function UTCdISO(d) {
@@ -2033,7 +2085,7 @@ function UTCdISO(d) {
2033
2085
 
2034
2086
  function formatUTCWeekNumberISO(d, p) {
2035
2087
  d = UTCdISO(d);
2036
- return pad(utcThursday.count(utcYear$1(d), d) + (utcYear$1(d).getUTCDay() === 4), p, 2);
2088
+ return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);
2037
2089
  }
2038
2090
 
2039
2091
  function formatUTCWeekdayNumberSunday(d) {
@@ -2041,7 +2093,7 @@ function formatUTCWeekdayNumberSunday(d) {
2041
2093
  }
2042
2094
 
2043
2095
  function formatUTCWeekNumberMonday(d, p) {
2044
- return pad(utcMonday.count(utcYear$1(d) - 1, d), p, 2);
2096
+ return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);
2045
2097
  }
2046
2098
 
2047
2099
  function formatUTCYear(d, p) {
@@ -2080,6 +2132,8 @@ function formatUnixTimestampSeconds(d) {
2080
2132
  }
2081
2133
 
2082
2134
  var locale;
2135
+ var timeFormat;
2136
+ var timeParse;
2083
2137
  var utcFormat;
2084
2138
  var utcParse;
2085
2139
 
@@ -2096,6 +2150,8 @@ defaultLocale({
2096
2150
 
2097
2151
  function defaultLocale(definition) {
2098
2152
  locale = formatLocale(definition);
2153
+ timeFormat = locale.format;
2154
+ timeParse = locale.parse;
2099
2155
  utcFormat = locale.utcFormat;
2100
2156
  utcParse = locale.utcParse;
2101
2157
  return locale;
@@ -2193,12 +2249,12 @@ var GraphCache = /** @class */ (function (_super) {
2193
2249
  }
2194
2250
  return GraphCache;
2195
2251
  }(Cache));
2196
- function walkXmlJson$1(node, callback, stack) {
2252
+ function walkXmlJson(node, callback, stack) {
2197
2253
  stack = stack || [];
2198
2254
  stack.push(node);
2199
2255
  callback(node.name, node.$, node.children(), stack);
2200
2256
  node.children().forEach(function (childNode) {
2201
- walkXmlJson$1(childNode, callback, stack);
2257
+ walkXmlJson(childNode, callback, stack);
2202
2258
  });
2203
2259
  stack.pop();
2204
2260
  }
@@ -2247,7 +2303,7 @@ function createXGMMLGraph(id, graphs) {
2247
2303
  return item._["id"];
2248
2304
  });
2249
2305
  var stack = [graph.root];
2250
- walkXmlJson$1(graphs, function (tag, attributes, childNodes, _stack) {
2306
+ walkXmlJson(graphs, function (tag, attributes, childNodes, _stack) {
2251
2307
  var top = stack[stack.length - 1];
2252
2308
  switch (tag) {
2253
2309
  case "graph":
@@ -2322,7 +2378,7 @@ function createGraph(scopes) {
2322
2378
  scopeStack.pop();
2323
2379
  }
2324
2380
  if (!scopeParent1) {
2325
- console.log("Missing SG:Parent (".concat(scope.Id, "): ").concat(scope.parentScope()));
2381
+ console.log("Missing SG:Parent (" + scope.Id + "): " + scope.parentScope());
2326
2382
  }
2327
2383
  else {
2328
2384
  var parent1 = scopeParent1;
@@ -2332,7 +2388,7 @@ function createGraph(scopes) {
2332
2388
  case "activity":
2333
2389
  var scopeParent2 = subgraphs[scope.parentScope()];
2334
2390
  if (!scopeParent2) {
2335
- console.log("Missing A:Parent (".concat(scope.Id, "): ").concat(scope.parentScope()));
2391
+ console.log("Missing A:Parent (" + scope.Id + "): " + scope.parentScope());
2336
2392
  }
2337
2393
  else {
2338
2394
  vertices[scope.ScopeName] = scopeParent2.createVertex(scope);
@@ -2344,7 +2400,7 @@ function createGraph(scopes) {
2344
2400
  case "function":
2345
2401
  var scopeParent3 = vertices[scope.parentScope()];
2346
2402
  if (!scopeParent3) {
2347
- console.log("Missing F:Parent (".concat(scope.Id, "): ").concat(scope.parentScope()));
2403
+ console.log("Missing F:Parent (" + scope.Id + "): " + scope.parentScope());
2348
2404
  }
2349
2405
  else {
2350
2406
  scopeParent3._.children().push(scope);
@@ -2356,7 +2412,7 @@ function createGraph(scopes) {
2356
2412
  var scope = edges[id];
2357
2413
  var scopeParent3 = subgraphs[scope.parentScope()];
2358
2414
  if (!scopeParent3) {
2359
- console.log("Missing E:Parent (".concat(scope.Id, "): ").concat(scope.parentScope()));
2415
+ console.log("Missing E:Parent (" + scope.Id + "): " + scope.parentScope());
2360
2416
  }
2361
2417
  else {
2362
2418
  var parent3 = scopeParent3;
@@ -2368,7 +2424,7 @@ function createGraph(scopes) {
2368
2424
  catch (e) {
2369
2425
  // const sourceIndex = scope.attr("SourceIndex").RawValue;
2370
2426
  // const targetIndex = scope.attr("TargetIndex").RawValue;
2371
- console.log("Invalid Edge: ".concat(id));
2427
+ console.log("Invalid Edge: " + id);
2372
2428
  }
2373
2429
  }
2374
2430
  }
@@ -2661,7 +2717,7 @@ var GlobalResultCache = /** @class */ (function (_super) {
2661
2717
  __extends(GlobalResultCache, _super);
2662
2718
  function GlobalResultCache() {
2663
2719
  return _super.call(this, function (obj) {
2664
- return "".concat(obj.BaseUrl, "-").concat(obj.Wuid, "-").concat(obj.ResultName);
2720
+ return obj.BaseUrl + "-" + obj.Wuid + "-" + obj.ResultName;
2665
2721
  }) || this;
2666
2722
  }
2667
2723
  return GlobalResultCache;
@@ -3132,21 +3188,21 @@ var BaseScope = /** @class */ (function (_super) {
3132
3188
  var label = "";
3133
3189
  var rows = [];
3134
3190
  label = this.Id;
3135
- rows.push("<tr><td class=\"key\">ID:</td><td class=\"value\">".concat(this.Id, "</td></tr>"));
3191
+ rows.push("<tr><td class=\"key\">ID:</td><td class=\"value\">" + this.Id + "</td></tr>");
3136
3192
  if (parentScope) {
3137
- rows.push("<tr><td class=\"key\">Parent ID:</td><td class=\"value\">".concat(parentScope.Id, "</td></tr>"));
3193
+ rows.push("<tr><td class=\"key\">Parent ID:</td><td class=\"value\">" + parentScope.Id + "</td></tr>");
3138
3194
  }
3139
- rows.push("<tr><td class=\"key\">Scope:</td><td class=\"value\">".concat(this.ScopeName, "</td></tr>"));
3195
+ rows.push("<tr><td class=\"key\">Scope:</td><td class=\"value\">" + this.ScopeName + "</td></tr>");
3140
3196
  var attrs = this.formattedAttrs();
3141
3197
  for (var key in attrs) {
3142
3198
  if (key === "Label") {
3143
3199
  label = attrs[key];
3144
3200
  }
3145
3201
  else {
3146
- rows.push("<tr><td class=\"key\">".concat(key, "</td><td class=\"value\">").concat(attrs[key], "</td></tr>"));
3202
+ rows.push("<tr><td class=\"key\">" + key + "</td><td class=\"value\">" + attrs[key] + "</td></tr>");
3147
3203
  }
3148
3204
  }
3149
- return "<div class=\"eclwatch_WUGraph_Tooltip\" style=\"max-width:480px\">\n <h4 align=\"center\">".concat(label, "</h4>\n <table>\n ").concat(rows.join(""), "\n </table>\n </div>");
3205
+ return "<div class=\"eclwatch_WUGraph_Tooltip\" style=\"max-width:480px\">\n <h4 align=\"center\">" + label + "</h4>\n <table>\n " + rows.join("") + "\n </table>\n </div>";
3150
3206
  };
3151
3207
  return BaseScope;
3152
3208
  }(StateObject));
@@ -3281,12 +3337,12 @@ var Timer = /** @class */ (function (_super) {
3281
3337
  var formatter = utcFormat("%Y-%m-%dT%H:%M:%S.%LZ");
3282
3338
  var parser = utcParse("%Y-%m-%dT%H:%M:%S.%LZ");
3283
3339
  var logger$1 = scopedLogger("workunit.ts");
3284
- var WUStateID = WUStateID$1;
3340
+ var WUStateID$1 = WUStateID;
3285
3341
  var WorkunitCache = /** @class */ (function (_super) {
3286
3342
  __extends(WorkunitCache, _super);
3287
3343
  function WorkunitCache() {
3288
3344
  return _super.call(this, function (obj) {
3289
- return "".concat(obj.BaseUrl, "-").concat(obj.Wuid);
3345
+ return obj.BaseUrl + "-" + obj.Wuid;
3290
3346
  }) || this;
3291
3347
  }
3292
3348
  return WorkunitCache;
@@ -3347,12 +3403,12 @@ var Workunit = /** @class */ (function (_super) {
3347
3403
  configurable: true
3348
3404
  });
3349
3405
  Object.defineProperty(Workunit.prototype, "StateID", {
3350
- get: function () { return this.get("StateID", WUStateID$1.Unknown); },
3406
+ get: function () { return this.get("StateID", WUStateID.Unknown); },
3351
3407
  enumerable: false,
3352
3408
  configurable: true
3353
3409
  });
3354
3410
  Object.defineProperty(Workunit.prototype, "State", {
3355
- get: function () { return this.get("State") || WUStateID$1[this.StateID]; },
3411
+ get: function () { return this.get("State") || WUStateID[this.StateID]; },
3356
3412
  enumerable: false,
3357
3413
  configurable: true
3358
3414
  });
@@ -3807,7 +3863,7 @@ var Workunit = /** @class */ (function (_super) {
3807
3863
  Workunit.prototype.clearState = function (wuid) {
3808
3864
  this.clear({
3809
3865
  Wuid: wuid,
3810
- StateID: WUStateID.Unknown
3866
+ StateID: WUStateID$1.Unknown
3811
3867
  });
3812
3868
  };
3813
3869
  Workunit.prototype.update = function (request) {
@@ -3865,47 +3921,47 @@ var Workunit = /** @class */ (function (_super) {
3865
3921
  };
3866
3922
  Workunit.prototype.isComplete = function () {
3867
3923
  switch (this.StateID) {
3868
- case WUStateID.Compiled:
3924
+ case WUStateID$1.Compiled:
3869
3925
  return this.ActionEx === "compile" || this._submitAction === WUUpdate.Action.Compile;
3870
- case WUStateID.Completed:
3871
- case WUStateID.Failed:
3872
- case WUStateID.Aborted:
3873
- case WUStateID.NotFound:
3926
+ case WUStateID$1.Completed:
3927
+ case WUStateID$1.Failed:
3928
+ case WUStateID$1.Aborted:
3929
+ case WUStateID$1.NotFound:
3874
3930
  return true;
3875
3931
  }
3876
3932
  return false;
3877
3933
  };
3878
3934
  Workunit.prototype.isFailed = function () {
3879
3935
  switch (this.StateID) {
3880
- case WUStateID.Aborted:
3881
- case WUStateID.Failed:
3936
+ case WUStateID$1.Aborted:
3937
+ case WUStateID$1.Failed:
3882
3938
  return true;
3883
3939
  }
3884
3940
  return false;
3885
3941
  };
3886
3942
  Workunit.prototype.isDeleted = function () {
3887
3943
  switch (this.StateID) {
3888
- case WUStateID.NotFound:
3944
+ case WUStateID$1.NotFound:
3889
3945
  return true;
3890
3946
  }
3891
3947
  return false;
3892
3948
  };
3893
3949
  Workunit.prototype.isDebugging = function () {
3894
3950
  switch (this.StateID) {
3895
- case WUStateID.DebugPaused:
3896
- case WUStateID.DebugRunning:
3951
+ case WUStateID$1.DebugPaused:
3952
+ case WUStateID$1.DebugRunning:
3897
3953
  return true;
3898
3954
  }
3899
3955
  return this._debugMode;
3900
3956
  };
3901
3957
  Workunit.prototype.isRunning = function () {
3902
3958
  switch (this.StateID) {
3903
- case WUStateID.Compiled:
3904
- case WUStateID.Running:
3905
- case WUStateID.Aborting:
3906
- case WUStateID.Blocked:
3907
- case WUStateID.DebugPaused:
3908
- case WUStateID.DebugRunning:
3959
+ case WUStateID$1.Compiled:
3960
+ case WUStateID$1.Running:
3961
+ case WUStateID$1.Aborting:
3962
+ case WUStateID$1.Blocked:
3963
+ case WUStateID$1.DebugPaused:
3964
+ case WUStateID$1.DebugRunning:
3909
3965
  return true;
3910
3966
  }
3911
3967
  return false;
@@ -4134,6 +4190,9 @@ var Workunit = /** @class */ (function (_super) {
4134
4190
  case "cnt":
4135
4191
  props[scopeProperty.Name] = +scopeProperty.RawValue;
4136
4192
  break;
4193
+ case "cost":
4194
+ props[scopeProperty.Name] = +scopeProperty.RawValue / 1000000;
4195
+ break;
4137
4196
  case "cpu":
4138
4197
  case "skw":
4139
4198
  case "node":
@@ -4382,7 +4441,7 @@ var Workunit = /** @class */ (function (_super) {
4382
4441
  var wuMissing = e.Exception.some(function (exception) {
4383
4442
  if (exception.Code === 20081) {
4384
4443
  _this.clearState(_this.Wuid);
4385
- _this.set("StateID", WUStateID.NotFound);
4444
+ _this.set("StateID", WUStateID$1.NotFound);
4386
4445
  return true;
4387
4446
  }
4388
4447
  return false;
@@ -4419,7 +4478,7 @@ var Workunit = /** @class */ (function (_super) {
4419
4478
  var wuMissing = e.Exception.some(function (exception) {
4420
4479
  if (exception.Code === 20080) {
4421
4480
  _this.clearState(_this.Wuid);
4422
- _this.set("StateID", WUStateID.NotFound);
4481
+ _this.set("StateID", WUStateID$1.NotFound);
4423
4482
  return true;
4424
4483
  }
4425
4484
  return false;
@@ -4493,12 +4552,12 @@ var Workunit = /** @class */ (function (_super) {
4493
4552
  var optsStr = "";
4494
4553
  for (var key in opts) {
4495
4554
  if (opts.hasOwnProperty(key)) {
4496
- optsStr += " ".concat(key, "='").concat(opts[key], "'");
4555
+ optsStr += " " + key + "='" + opts[key] + "'";
4497
4556
  }
4498
4557
  }
4499
4558
  return this.connection.WUCDebug({
4500
4559
  Wuid: this.Wuid,
4501
- Command: "<debug:".concat(command, " uid='").concat(this.Wuid, "'").concat(optsStr, "/>")
4560
+ Command: "<debug:" + command + " uid='" + this.Wuid + "'" + optsStr + "/>"
4502
4561
  }).then(function (response) {
4503
4562
  return response;
4504
4563
  });
@@ -4629,7 +4688,7 @@ function getECLDefinition(vertex) {
4629
4688
  column: +_col
4630
4689
  };
4631
4690
  }
4632
- throw new Error("Bad definition: ".concat(vertex._[ATTR_DEFINITION]));
4691
+ throw new Error("Bad definition: " + vertex._[ATTR_DEFINITION]);
4633
4692
  }
4634
4693
  function breakpointLocations(graph, path) {
4635
4694
  var retVal = [];
@@ -4818,12 +4877,12 @@ var LogicalFileCache = /** @class */ (function (_super) {
4818
4877
  __extends(LogicalFileCache, _super);
4819
4878
  function LogicalFileCache() {
4820
4879
  return _super.call(this, function (obj) {
4821
- return "".concat(obj.BaseUrl, "-").concat(obj.Cluster, "-").concat(obj.Name);
4880
+ return obj.BaseUrl + "-" + obj.Cluster + "-" + obj.Name;
4822
4881
  }) || this;
4823
4882
  }
4824
4883
  return LogicalFileCache;
4825
4884
  }(Cache));
4826
- var _store$1 = new LogicalFileCache();
4885
+ var _store = new LogicalFileCache();
4827
4886
  var LogicalFile = /** @class */ (function (_super) {
4828
4887
  __extends(LogicalFile, _super);
4829
4888
  function LogicalFile(optsConnection, Cluster, Name) {
@@ -5106,14 +5165,14 @@ var LogicalFile = /** @class */ (function (_super) {
5106
5165
  configurable: true
5107
5166
  });
5108
5167
  LogicalFile.attach = function (optsConnection, Cluster, Name) {
5109
- var retVal = _store$1.get({ BaseUrl: optsConnection.baseUrl, Cluster: Cluster, Name: Name }, function () {
5168
+ var retVal = _store.get({ BaseUrl: optsConnection.baseUrl, Cluster: Cluster, Name: Name }, function () {
5110
5169
  return new LogicalFile(optsConnection, Cluster, Name);
5111
5170
  });
5112
5171
  return retVal;
5113
5172
  };
5114
5173
  LogicalFile.prototype.filePartsOnCluster = function () {
5115
5174
  var _a;
5116
- return __spreadArray([], (((_a = this.DFUFilePartsOnClusters) === null || _a === void 0 ? void 0 : _a.DFUFilePartsOnCluster) || []), true);
5175
+ return __spreadArray([], (((_a = this.DFUFilePartsOnClusters) === null || _a === void 0 ? void 0 : _a.DFUFilePartsOnCluster) || []));
5117
5176
  };
5118
5177
  LogicalFile.prototype.fileParts = function () {
5119
5178
  var _a, _b;
@@ -5560,12 +5619,12 @@ var StoreCache = /** @class */ (function (_super) {
5560
5619
  __extends(StoreCache, _super);
5561
5620
  function StoreCache() {
5562
5621
  return _super.call(this, function (obj) {
5563
- return "".concat(obj.BaseUrl, "-").concat(obj.Name, ":").concat(obj.UserSpecific, "-").concat(obj.Namespace);
5622
+ return obj.BaseUrl + "-" + obj.Name + ":" + obj.UserSpecific + "-" + obj.Namespace;
5564
5623
  }) || this;
5565
5624
  }
5566
5625
  return StoreCache;
5567
5626
  }(Cache));
5568
- var _store = new StoreCache();
5627
+ var _store$1 = new StoreCache();
5569
5628
  var ValueChangedMessage = /** @class */ (function (_super) {
5570
5629
  __extends(ValueChangedMessage, _super);
5571
5630
  function ValueChangedMessage(key, value, oldValue) {
@@ -5614,7 +5673,7 @@ var Store = /** @class */ (function () {
5614
5673
  Store.attach = function (optsConnection, Name, Namespace, UserSpecific) {
5615
5674
  if (Name === void 0) { Name = "HPCCApps"; }
5616
5675
  if (UserSpecific === void 0) { UserSpecific = true; }
5617
- var retVal = _store.get({ BaseUrl: optsConnection.baseUrl, Name: Name, UserSpecific: UserSpecific, Namespace: Namespace }, function () {
5676
+ var retVal = _store$1.get({ BaseUrl: optsConnection.baseUrl, Name: Name, UserSpecific: UserSpecific, Namespace: Namespace }, function () {
5618
5677
  return new Store(optsConnection, Name, Namespace, UserSpecific);
5619
5678
  });
5620
5679
  return retVal;
@@ -5638,7 +5697,7 @@ var Store = /** @class */ (function () {
5638
5697
  _this._dispatch.post(new ValueChangedMessage(key, value, oldValue));
5639
5698
  }
5640
5699
  }).catch(function (e) {
5641
- console.error("Store.set(\"".concat(key, "\", \"").concat(value, "\") failed:"), e);
5700
+ console.error("Store.set(\"" + key + "\", \"" + value + "\") failed:", e);
5642
5701
  });
5643
5702
  };
5644
5703
  Store.prototype.get = function (key, broadcast) {
@@ -5657,7 +5716,7 @@ var Store = /** @class */ (function () {
5657
5716
  }
5658
5717
  return response.Value;
5659
5718
  }).catch(function (e) {
5660
- console.error("Store.get(".concat(key, ") failed:"), e);
5719
+ console.error("Store.get(" + key + ") failed:", e);
5661
5720
  return undefined;
5662
5721
  });
5663
5722
  };
@@ -5707,7 +5766,7 @@ var Store = /** @class */ (function () {
5707
5766
  _this._dispatch.post(new ValueChangedMessage(key, undefined, oldValue));
5708
5767
  }
5709
5768
  }).catch(function (e) {
5710
- console.error("Store.delete(".concat(key, ") failed:"), e);
5769
+ console.error("Store.delete(" + key + ") failed:", e);
5711
5770
  });
5712
5771
  };
5713
5772
  Store.prototype.monitor = function (callback) {
@@ -5720,7 +5779,7 @@ var TargetClusterCache = /** @class */ (function (_super) {
5720
5779
  __extends(TargetClusterCache, _super);
5721
5780
  function TargetClusterCache() {
5722
5781
  return _super.call(this, function (obj) {
5723
- return "".concat(obj.BaseUrl, "-").concat(obj.Name);
5782
+ return obj.BaseUrl + "-" + obj.Name;
5724
5783
  }) || this;
5725
5784
  }
5726
5785
  return TargetClusterCache;
@@ -5819,7 +5878,7 @@ var TargetCluster = /** @class */ (function (_super) {
5819
5878
  var _this = this;
5820
5879
  if (request === void 0) { request = {}; }
5821
5880
  return this.machineConnection.GetTargetClusterInfo(__assign({ TargetClusters: {
5822
- Item: ["".concat(this.Type, ":").concat(this.Name)]
5881
+ Item: [this.Type + ":" + this.Name]
5823
5882
  } }, request)).then(function (response) {
5824
5883
  var retVal = [];
5825
5884
  for (var _i = 0, _a = response.TargetClusterInfoList.TargetClusterInfo; _i < _a.length; _i++) {
@@ -5985,7 +6044,7 @@ var Topology = /** @class */ (function (_super) {
5985
6044
  }
5986
6045
  }
5987
6046
  }
5988
- return "".concat(rootProtocol, "//").concat(ip, ":").concat(port, "/");
6047
+ return rootProtocol + "//" + ip + ":" + port + "/";
5989
6048
  });
5990
6049
  };
5991
6050
  Topology.prototype.fetchTargetClusters = function () {
@@ -6051,7 +6110,7 @@ var Topology = /** @class */ (function (_super) {
6051
6110
  return Topology;
6052
6111
  }(StateObject));
6053
6112
 
6054
- scopedLogger("clienttools/eclmeta");
6113
+ var logger$2 = scopedLogger("clienttools/eclmeta");
6055
6114
  var Attr = /** @class */ (function () {
6056
6115
  function Attr(xmlAttr) {
6057
6116
  this.__attrs = xmlAttr.$;
@@ -6083,7 +6142,7 @@ var ECLScope = /** @class */ (function () {
6083
6142
  if (end === void 0) { end = Number.MAX_VALUE; }
6084
6143
  this.name = name;
6085
6144
  this.type = type;
6086
- this.sourcePath = path.normalize(sourcePath);
6145
+ this.sourcePath = normalize(sourcePath);
6087
6146
  this.line = +line - 1;
6088
6147
  this.start = +start;
6089
6148
  this.body = +body;
@@ -6208,7 +6267,7 @@ var Source = /** @class */ (function (_super) {
6208
6267
  fakeNode.appendAttribute("ref", nameParts.join("."));
6209
6268
  _this.imports = __spreadArray([
6210
6269
  new Import(fakeNode)
6211
- ], _this.parseImports(xmlSource.children("Import")), true);
6270
+ ], _this.parseImports(xmlSource.children("Import")));
6212
6271
  return _this;
6213
6272
  }
6214
6273
  Source.prototype.parseImports = function (imports) {
@@ -6236,10 +6295,10 @@ var Source = /** @class */ (function (_super) {
6236
6295
  };
6237
6296
  return Source;
6238
6297
  }(ECLScope));
6239
- var isHiddenDirectory = function (source) { return path.basename(source).indexOf(".") === 0; };
6240
- var isDirectory = function (source) { return fs.lstatSync(source).isDirectory() && !isHiddenDirectory(source); };
6241
- var isEcl = function (source) { return [".ecl", ".ecllib"].indexOf(path.extname(source).toLowerCase()) >= 0; };
6242
- var modAttrs = function (source) { return fs.readdirSync(source).map(function (name) { return path.join(source, name); }).filter(function (path) { return isDirectory(path) || isEcl(path); }); };
6298
+ var isHiddenDirectory = function (source) { return basename(source).indexOf(".") === 0; };
6299
+ var isDirectory = function (source) { return lstatSync(source).isDirectory() && !isHiddenDirectory(source); };
6300
+ var isEcl = function (source) { return [".ecl", ".ecllib"].indexOf(extname(source).toLowerCase()) >= 0; };
6301
+ var modAttrs = function (source) { return readdirSync(source).map(function (name) { return join$1(source, name); }).filter(function (path) { return isDirectory(path) || isEcl(path); }); };
6243
6302
  var File = /** @class */ (function (_super) {
6244
6303
  __extends(File, _super);
6245
6304
  function File(name, sourcePath) {
@@ -6258,7 +6317,7 @@ var Folder = /** @class */ (function (_super) {
6258
6317
  Folder.prototype.suggestions = function () {
6259
6318
  return modAttrs(this.sourcePath).map(function (folder) {
6260
6319
  return {
6261
- name: path.basename(folder, ".ecl"),
6320
+ name: basename(folder, ".ecl"),
6262
6321
  type: "folder"
6263
6322
  };
6264
6323
  });
@@ -6285,7 +6344,7 @@ var Workspace = /** @class */ (function () {
6285
6344
  }).then(function (paths) {
6286
6345
  for (var _i = 0, _a = ["ECLCC_ECLLIBRARY_PATH", "ECLCC_PLUGIN_PATH"]; _i < _a.length; _i++) {
6287
6346
  var knownFolder = _a[_i];
6288
- if (paths[knownFolder] && fs.existsSync(paths[knownFolder])) {
6347
+ if (paths[knownFolder] && existsSync(paths[knownFolder])) {
6289
6348
  _this.walkChildFolders(paths[knownFolder], paths[knownFolder]);
6290
6349
  }
6291
6350
  }
@@ -6293,7 +6352,7 @@ var Workspace = /** @class */ (function () {
6293
6352
  });
6294
6353
  };
6295
6354
  Workspace.prototype.primeWorkspace = function () {
6296
- if (fs.existsSync(this._workspacePath)) {
6355
+ if (existsSync(this._workspacePath)) {
6297
6356
  this.visitFolder(this._workspacePath, this._workspacePath);
6298
6357
  }
6299
6358
  };
@@ -6311,16 +6370,16 @@ var Workspace = /** @class */ (function () {
6311
6370
  };
6312
6371
  Workspace.prototype.visitFile = function (filePath, refPath, force) {
6313
6372
  if (force === void 0) { force = false; }
6314
- var filePathInfo = path.parse(filePath);
6315
- var pathNoExt = path.join(filePathInfo.dir, filePathInfo.name);
6316
- var name = path.relative(refPath, pathNoExt).split(path.sep).join(".");
6373
+ var filePathInfo = parse(filePath);
6374
+ var pathNoExt = join$1(filePathInfo.dir, filePathInfo.name);
6375
+ var name = relative(refPath, pathNoExt).split(sep).join(".");
6317
6376
  if (force || !this._test.has(name)) {
6318
6377
  this._test.set(name, new File("", filePath));
6319
6378
  }
6320
6379
  };
6321
6380
  Workspace.prototype.visitFolder = function (folderPath, refPath, force) {
6322
6381
  if (force === void 0) { force = false; }
6323
- var name = path.relative(refPath, folderPath).split(path.sep).join(".");
6382
+ var name = relative(refPath, folderPath).split(sep).join(".");
6324
6383
  if (force || !this._test.has(name)) {
6325
6384
  this._test.set(name, new Folder(name, folderPath));
6326
6385
  this.walkChildFolders(folderPath, refPath, force);
@@ -6331,7 +6390,7 @@ var Workspace = /** @class */ (function () {
6331
6390
  if (removeDupID && parentStack[parentStack.length - 1] === nameStack[0]) {
6332
6391
  nameStack.shift();
6333
6392
  }
6334
- var stack = __spreadArray(__spreadArray([], parentStack, true), nameStack, true);
6393
+ var stack = __spreadArray(__spreadArray([], parentStack), nameStack);
6335
6394
  var qid = stack.join(".");
6336
6395
  return {
6337
6396
  stack: stack,
@@ -6380,10 +6439,10 @@ var Workspace = /** @class */ (function () {
6380
6439
  if (depth > 1) {
6381
6440
  var sourcePath = source.sourcePath;
6382
6441
  while (depth > 1) {
6383
- sourcePath = path.dirname(sourcePath);
6442
+ sourcePath = dirname(sourcePath);
6384
6443
  --depth;
6385
6444
  }
6386
- this.visitFolder(sourcePath, path.dirname(sourcePath));
6445
+ this.visitFolder(sourcePath, dirname(sourcePath));
6387
6446
  }
6388
6447
  }
6389
6448
  this.walkSource(source);
@@ -6394,7 +6453,7 @@ var Workspace = /** @class */ (function () {
6394
6453
  var metaParser = new MetaParser();
6395
6454
  metaParser.parse(metaXML);
6396
6455
  this.parseSources(metaParser.sources);
6397
- return metaParser.sources.map(function (source) { return path.normalize(source.$.sourcePath); });
6456
+ return metaParser.sources.map(function (source) { return normalize(source.$.sourcePath); });
6398
6457
  };
6399
6458
  Workspace.prototype.resolveQualifiedID = function (filePath, qualifiedID, charOffset) {
6400
6459
  var retVal;
@@ -6422,7 +6481,7 @@ var Workspace = /** @class */ (function () {
6422
6481
  retVal = this._test.get(realQID).scope;
6423
6482
  }
6424
6483
  if (!retVal) {
6425
- realQID = __spreadArray(__spreadArray([], eclSource.name.split("."), true), qualifiedIDParts, true).join(".");
6484
+ realQID = __spreadArray(__spreadArray([], eclSource.name.split(".")), qualifiedIDParts).join(".");
6426
6485
  if (this._test.has(realQID)) {
6427
6486
  retVal = this._test.get(realQID).scope;
6428
6487
  }
@@ -6441,7 +6500,7 @@ var Workspace = /** @class */ (function () {
6441
6500
  }());
6442
6501
  var workspaceCache = new Dictionary();
6443
6502
  function attachWorkspace(_workspacePath, eclccPath) {
6444
- var workspacePath = path.normalize(_workspacePath);
6503
+ var workspacePath = normalize(_workspacePath);
6445
6504
  if (!workspaceCache.has(workspacePath)) {
6446
6505
  var workspace = new Workspace(workspacePath, eclccPath);
6447
6506
  workspaceCache.set(workspacePath, workspace);
@@ -6479,8 +6538,8 @@ var MetaParser = /** @class */ (function (_super) {
6479
6538
  return MetaParser;
6480
6539
  }(SAXStackParser));
6481
6540
 
6482
- var logger = scopedLogger("clienttools/eclcc");
6483
- var exeExt = os.type() === "Windows_NT" ? ".exe" : "";
6541
+ var logger$3 = scopedLogger("clienttools/eclcc");
6542
+ var exeExt = type() === "Windows_NT" ? ".exe" : "";
6484
6543
  function tidyCRLF(inStr) {
6485
6544
  return inStr.split("\r\n").join("\n").split("\r").join("\n");
6486
6545
  }
@@ -6526,7 +6585,7 @@ var Version = /** @class */ (function () {
6526
6585
  return this.postfix.localeCompare(other.postfix);
6527
6586
  };
6528
6587
  Version.prototype.toString = function () {
6529
- return "".concat(this.prefix, "_").concat(this.major, ".").concat(this.minor, ".").concat(this.patch, "-").concat(this.postfix);
6588
+ return this.prefix + "_" + this.major + "." + this.minor + "." + this.patch + "-" + this.postfix;
6530
6589
  };
6531
6590
  return Version;
6532
6591
  }());
@@ -6575,7 +6634,7 @@ var EclccErrors = /** @class */ (function (_super) {
6575
6634
  function EclccErrors(stdErr, checked) {
6576
6635
  var _this = _super.call(this, checked) || this;
6577
6636
  if (stdErr && stdErr.length) {
6578
- for (var _i = 0, _a = stdErr.split(os.EOL); _i < _a.length; _i++) {
6637
+ for (var _i = 0, _a = stdErr.split(EOL); _i < _a.length; _i++) {
6579
6638
  var errLine = _a[_i];
6580
6639
  var match = /([a-zA-Z]:\\(?:[- \w\.\d]+\\)*(?:[- \w\.\d]+)?|(?:\/[\w\.\-]+)+)\((\d*),(\d*)\) ?: ?(error|warning|info) C(\d*) ?: ?(.*)/.exec(errLine);
6581
6640
  if (match) {
@@ -6596,7 +6655,7 @@ var EclccErrors = /** @class */ (function (_super) {
6596
6655
  if (match) {
6597
6656
  continue;
6598
6657
  }
6599
- logger.warning("parseECLErrors: Unable to parse \"".concat(errLine, "\""));
6658
+ logger$3.warning("parseECLErrors: Unable to parse \"" + errLine + "\"");
6600
6659
  _this.errOther.push(errLine);
6601
6660
  }
6602
6661
  }
@@ -6609,16 +6668,16 @@ var EnvchkErrors = /** @class */ (function (_super) {
6609
6668
  __extends(EnvchkErrors, _super);
6610
6669
  function EnvchkErrors(filePath, stdErr, checked) {
6611
6670
  var _this = _super.call(this, checked) || this;
6612
- var content = fs.readFileSync(filePath, "utf8");
6671
+ var content = readFileSync(filePath, "utf8");
6613
6672
  content = content.replace(/\r\n/g, "\n");
6614
6673
  _this._lines = content.split("\n");
6615
6674
  if (stdErr && stdErr.length) {
6616
- for (var _i = 0, _a = stdErr.split(os.EOL); _i < _a.length; _i++) {
6675
+ for (var _i = 0, _a = stdErr.split(EOL); _i < _a.length; _i++) {
6617
6676
  var errLine = _a[_i];
6618
6677
  var match = /(Warning|Error) : Path\=(\S*?)(\[\S*\])? Message\=(.*)/.exec(errLine);
6619
6678
  if (match) {
6620
6679
  var severity = match[1], _path = match[2], _attr = match[3], _msg = match[4];
6621
- var msg = "".concat(_path, " ").concat(_attr ? _attr : "", ": ").concat(_msg);
6680
+ var msg = _path + " " + (_attr ? _attr : "") + ": " + _msg;
6622
6681
  var _b = _this.locate(_path), line = _b[0], col = _b[1];
6623
6682
  _this.errWarn.push({ filePath: filePath, line: line, col: col, msg: msg, severity: severity });
6624
6683
  continue;
@@ -6626,7 +6685,7 @@ var EnvchkErrors = /** @class */ (function (_super) {
6626
6685
  if (match) {
6627
6686
  continue;
6628
6687
  }
6629
- logger.warning("parseECLErrors: Unable to parse \"".concat(errLine, "\""));
6688
+ logger$3.warning("parseECLErrors: Unable to parse \"" + errLine + "\"");
6630
6689
  _this.errOther.push(errLine);
6631
6690
  }
6632
6691
  }
@@ -6657,7 +6716,7 @@ var EnvchkErrors = /** @class */ (function (_super) {
6657
6716
  };
6658
6717
  return EnvchkErrors;
6659
6718
  }(Errors));
6660
- function walkXmlJson(node, callback, stack) {
6719
+ function walkXmlJson$1(node, callback, stack) {
6661
6720
  stack = stack || [];
6662
6721
  stack.push(node);
6663
6722
  for (var key in node) {
@@ -6666,11 +6725,11 @@ function walkXmlJson(node, callback, stack) {
6666
6725
  callback(key, childNode, stack);
6667
6726
  if (childNode instanceof Array) {
6668
6727
  childNode.forEach(function (child) {
6669
- walkXmlJson(child, callback, stack);
6728
+ walkXmlJson$1(child, callback, stack);
6670
6729
  });
6671
6730
  }
6672
6731
  else if (typeof childNode === "object") {
6673
- walkXmlJson(childNode, callback, stack);
6732
+ walkXmlJson$1(childNode, callback, stack);
6674
6733
  }
6675
6734
  }
6676
6735
  }
@@ -6684,7 +6743,7 @@ var LocalWorkunit = /** @class */ (function () {
6684
6743
  var retVal = [];
6685
6744
  if (exists("W_LOCAL.Graphs", this.jsonWU)) {
6686
6745
  var id_1 = "";
6687
- walkXmlJson(this.jsonWU.W_LOCAL.Graphs, function (key, item, _stack) {
6746
+ walkXmlJson$1(this.jsonWU.W_LOCAL.Graphs, function (key, item, _stack) {
6688
6747
  if (key === "$" && item.id) {
6689
6748
  id_1 = item.id;
6690
6749
  }
@@ -6713,10 +6772,10 @@ var ClientTools = /** @class */ (function () {
6713
6772
  if (args === void 0) { args = []; }
6714
6773
  this._paths = {};
6715
6774
  this.eclccPath = eclccPath;
6716
- this.binPath = path.dirname(this.eclccPath);
6717
- this.envchkPath = path.join(this.binPath, "envchk" + exeExt);
6718
- this.eclBundlePath = path.join(this.binPath, "ecl-bundle" + exeExt);
6719
- this.cwd = path.normalize(cwd || this.binPath);
6775
+ this.binPath = dirname(this.eclccPath);
6776
+ this.envchkPath = join$1(this.binPath, "envchk" + exeExt);
6777
+ this.eclBundlePath = join$1(this.binPath, "ecl-bundle" + exeExt);
6778
+ this.cwd = normalize(cwd || this.binPath);
6720
6779
  this.includeFolders = includeFolders;
6721
6780
  this._legacyMode = legacyMode;
6722
6781
  this._args = args;
@@ -6729,7 +6788,7 @@ var ClientTools = /** @class */ (function () {
6729
6788
  };
6730
6789
  ClientTools.prototype.exists = function (filePath) {
6731
6790
  try {
6732
- fs.accessSync(filePath);
6791
+ accessSync(filePath);
6733
6792
  return true;
6734
6793
  }
6735
6794
  catch (e) { }
@@ -6737,12 +6796,12 @@ var ClientTools = /** @class */ (function () {
6737
6796
  };
6738
6797
  ClientTools.prototype.args = function (additionalItems) {
6739
6798
  if (additionalItems === void 0) { additionalItems = []; }
6740
- var retVal = __spreadArray([], this._args, true);
6799
+ var retVal = __spreadArray([], this._args);
6741
6800
  if (this._legacyMode) {
6742
6801
  retVal.push("-legacy");
6743
6802
  }
6744
6803
  return retVal.concat(this.includeFolders.map(function (includePath) {
6745
- return "-I" + path.normalize(includePath);
6804
+ return "-I" + normalize(includePath);
6746
6805
  })).concat(additionalItems);
6747
6806
  };
6748
6807
  ClientTools.prototype.version = function () {
@@ -6750,7 +6809,7 @@ var ClientTools = /** @class */ (function () {
6750
6809
  if (this._version) {
6751
6810
  return Promise.resolve(this._version);
6752
6811
  }
6753
- return this.execFile(this.eclccPath, this.binPath, this.args(["--version"]), "eclcc", "Cannot find ".concat(this.eclccPath)).then(function (response) {
6812
+ return this.execFile(this.eclccPath, this.binPath, this.args(["--version"]), "eclcc", "Cannot find " + this.eclccPath).then(function (response) {
6754
6813
  _this._version = new Version(response.stdout);
6755
6814
  return _this._version;
6756
6815
  });
@@ -6760,7 +6819,7 @@ var ClientTools = /** @class */ (function () {
6760
6819
  };
6761
6820
  ClientTools.prototype.paths = function () {
6762
6821
  var _this = this;
6763
- return this.execFile(this.eclccPath, this.cwd, this.args(["-showpaths"]), "eclcc", "Cannot find ".concat(this.eclccPath)).then(function (response) {
6822
+ return this.execFile(this.eclccPath, this.cwd, this.args(["-showpaths"]), "eclcc", "Cannot find " + this.eclccPath).then(function (response) {
6764
6823
  if (response && response.stdout && response.stdout.length) {
6765
6824
  var paths = response.stdout.split(/\r?\n/);
6766
6825
  for (var _i = 0, paths_1 = paths; _i < paths_1.length; _i++) {
@@ -6776,20 +6835,20 @@ var ClientTools = /** @class */ (function () {
6776
6835
  };
6777
6836
  ClientTools.prototype.loadXMLDoc = function (filePath, removeOnRead) {
6778
6837
  return new Promise(function (resolve, _reject) {
6779
- var fileData = fs.readFileSync(filePath, "ascii");
6838
+ var fileData = readFileSync(filePath, "ascii");
6780
6839
  var retVal = xml2json(fileData);
6781
6840
  if (removeOnRead) {
6782
- fs.unlink(filePath, function (err) { });
6841
+ unlink(filePath, function (err) { });
6783
6842
  }
6784
6843
  resolve(retVal);
6785
6844
  });
6786
6845
  };
6787
6846
  ClientTools.prototype.createWU = function (filename) {
6788
6847
  var _this = this;
6789
- var tmpName = tmp.tmpNameSync({ prefix: "eclcc-wu-tmp", postfix: "" });
6848
+ var tmpName = tmpNameSync({ prefix: "eclcc-wu-tmp", postfix: "" });
6790
6849
  var args = ["-o" + tmpName, "-wu"].concat([filename]);
6791
- return this.execFile(this.eclccPath, this.cwd, this.args(args), "eclcc", "Cannot find ".concat(this.eclccPath)).then(function (_response) {
6792
- var xmlPath = path.normalize(tmpName + ".xml");
6850
+ return this.execFile(this.eclccPath, this.cwd, this.args(args), "eclcc", "Cannot find " + this.eclccPath).then(function (_response) {
6851
+ var xmlPath = normalize(tmpName + ".xml");
6793
6852
  var contentPromise = _this.exists(xmlPath) ? _this.loadXMLDoc(xmlPath, true) : Promise.resolve({});
6794
6853
  return contentPromise.then(function (content) {
6795
6854
  return new LocalWorkunit(content);
@@ -6798,7 +6857,7 @@ var ClientTools = /** @class */ (function () {
6798
6857
  };
6799
6858
  ClientTools.prototype.createArchive = function (filename) {
6800
6859
  var args = ["-E"].concat([filename]);
6801
- return this.execFile(this.eclccPath, this.cwd, this.args(args), "eclcc", "Cannot find ".concat(this.eclccPath)).then(function (response) {
6860
+ return this.execFile(this.eclccPath, this.cwd, this.args(args), "eclcc", "Cannot find " + this.eclccPath).then(function (response) {
6802
6861
  return {
6803
6862
  content: response.stdout,
6804
6863
  err: new EclccErrors(response.stderr, [])
@@ -6811,7 +6870,7 @@ var ClientTools = /** @class */ (function () {
6811
6870
  ClientTools.prototype.fetchMeta = function (filePath) {
6812
6871
  return Promise.all([
6813
6872
  attachWorkspace(this.cwd),
6814
- this.execFile(this.eclccPath, this.cwd, this.args(["-M", filePath]), "eclcc", "Cannot find ".concat(this.eclccPath))
6873
+ this.execFile(this.eclccPath, this.cwd, this.args(["-M", filePath]), "eclcc", "Cannot find " + this.eclccPath)
6815
6874
  ]).then(function (_a) {
6816
6875
  var metaWorkspace = _a[0], execFileResponse = _a[1];
6817
6876
  if (execFileResponse && execFileResponse.stdout && execFileResponse.stdout.length) {
@@ -6824,7 +6883,7 @@ var ClientTools = /** @class */ (function () {
6824
6883
  if (args === void 0) { args = ["-syntax"]; }
6825
6884
  return Promise.all([
6826
6885
  attachWorkspace(this.cwd),
6827
- this.execFile(this.eclccPath, this.cwd, this.args(__spreadArray(__spreadArray([], args, true), ["-M", filePath], false)), "eclcc", "Cannot find ".concat(this.eclccPath))
6886
+ this.execFile(this.eclccPath, this.cwd, this.args(__spreadArray(__spreadArray([], args), ["-M", filePath])), "eclcc", "Cannot find " + this.eclccPath)
6828
6887
  ]).then(function (_a) {
6829
6888
  var metaWorkspace = _a[0], execFileResponse = _a[1];
6830
6889
  var checked = [];
@@ -6838,9 +6897,9 @@ var ClientTools = /** @class */ (function () {
6838
6897
  if (args === void 0) { args = []; }
6839
6898
  return Promise.all([
6840
6899
  attachWorkspace(this.cwd),
6841
- this.execFile(this.envchkPath, this.cwd, this.args(__spreadArray(__spreadArray([], args, true), [filePath], false)), "envchk", "Cannot find ".concat(this.envchkPath))
6900
+ this.execFile(this.envchkPath, this.cwd, this.args(__spreadArray(__spreadArray([], args), [filePath])), "envchk", "Cannot find " + this.envchkPath)
6842
6901
  ]).then(function (_a) {
6843
- _a[0]; var execFileResponse = _a[1];
6902
+ var metaWorkspace = _a[0], execFileResponse = _a[1];
6844
6903
  return new EnvchkErrors(filePath, execFileResponse ? execFileResponse.stderr : "", []);
6845
6904
  });
6846
6905
  };
@@ -6863,13 +6922,13 @@ var ClientTools = /** @class */ (function () {
6863
6922
  }
6864
6923
  return retVal;
6865
6924
  }),
6866
- this.execFile(this.eclBundlePath, this.cwd, this.args(["list"]), "ecl-bundle", "Cannot find ".concat(this.eclBundlePath))
6925
+ this.execFile(this.eclBundlePath, this.cwd, this.args(["list"]), "ecl-bundle", "Cannot find " + this.eclBundlePath)
6867
6926
  .then(function (installedText) {
6868
6927
  return tidyCRLF(installedText.stdout).split("\n");
6869
6928
  }).then(function (installedItems) {
6870
6929
  var allProps = {};
6871
6930
  return Promise.all(installedItems.filter(function (ii) { return !!ii; }).map(function (ii) {
6872
- return _this.execFile(_this.eclBundlePath, _this.cwd, _this.args(["info", ii]), "ecl-bundle", "Cannot find ".concat(_this.eclBundlePath))
6931
+ return _this.execFile(_this.eclBundlePath, _this.cwd, _this.args(["info", ii]), "ecl-bundle", "Cannot find " + _this.eclBundlePath)
6873
6932
  .then(function (infoText) {
6874
6933
  return tidyCRLF(infoText.stdout).split("\n");
6875
6934
  }).then(function (info) {
@@ -6909,25 +6968,25 @@ var ClientTools = /** @class */ (function () {
6909
6968
  ClientTools.prototype.bundleInstall = function (bundleUrl) {
6910
6969
  return Promise.all([
6911
6970
  attachWorkspace(this.cwd),
6912
- this.execFile(this.eclBundlePath, this.cwd, this.args(["install", bundleUrl]), "ecl-bundle", "Cannot find ".concat(this.eclBundlePath))
6971
+ this.execFile(this.eclBundlePath, this.cwd, this.args(["install", bundleUrl]), "ecl-bundle", "Cannot find " + this.eclBundlePath)
6913
6972
  ]).then(function (_a) {
6914
- _a[0]; var execFileResponse = _a[1];
6973
+ var metaWorkspace = _a[0], execFileResponse = _a[1];
6915
6974
  return execFileResponse;
6916
6975
  });
6917
6976
  };
6918
6977
  ClientTools.prototype.bundleUninstall = function (name) {
6919
6978
  return Promise.all([
6920
6979
  attachWorkspace(this.cwd),
6921
- this.execFile(this.eclBundlePath, this.cwd, this.args(["uninstall", name]), "ecl-bundle", "Cannot find ".concat(this.eclBundlePath))
6980
+ this.execFile(this.eclBundlePath, this.cwd, this.args(["uninstall", name]), "ecl-bundle", "Cannot find " + this.eclBundlePath)
6922
6981
  ]).then(function (_a) {
6923
- _a[0]; var execFileResponse = _a[1];
6982
+ var metaWorkspace = _a[0], execFileResponse = _a[1];
6924
6983
  return execFileResponse;
6925
6984
  });
6926
6985
  };
6927
6986
  ClientTools.prototype.execFile = function (cmd, cwd, args, _toolName, _notFoundError) {
6928
6987
  return new Promise(function (resolve, _reject) {
6929
- logger.debug("".concat(cmd, " ").concat(args.join(" ")));
6930
- var child = cp.spawn(cmd, args, { cwd: cwd });
6988
+ logger$3.debug(cmd + " " + args.join(" "));
6989
+ var child = spawn(cmd, args, { cwd: cwd });
6931
6990
  var stdOut = "";
6932
6991
  var stdErr = "";
6933
6992
  child.stdout.on("data", function (data) {
@@ -6949,18 +7008,18 @@ var ClientTools = /** @class */ (function () {
6949
7008
  }());
6950
7009
  function locateClientToolsInFolder(rootFolder, clientTools) {
6951
7010
  if (rootFolder) {
6952
- var hpccSystemsFolder_1 = path.join(rootFolder, "HPCCSystems");
6953
- if (fs.existsSync(hpccSystemsFolder_1) && fs.statSync(hpccSystemsFolder_1).isDirectory()) {
6954
- if (os.type() !== "Windows_NT") {
6955
- var eclccPath = path.join(hpccSystemsFolder_1, "bin", "eclcc");
6956
- if (fs.existsSync(eclccPath)) {
7011
+ var hpccSystemsFolder_1 = join$1(rootFolder, "HPCCSystems");
7012
+ if (existsSync(hpccSystemsFolder_1) && statSync(hpccSystemsFolder_1).isDirectory()) {
7013
+ if (type() !== "Windows_NT") {
7014
+ var eclccPath = join$1(hpccSystemsFolder_1, "bin", "eclcc");
7015
+ if (existsSync(eclccPath)) {
6957
7016
  clientTools.push(new ClientTools(eclccPath));
6958
7017
  }
6959
7018
  }
6960
- fs.readdirSync(hpccSystemsFolder_1).forEach(function (versionFolder) {
6961
- var eclccPath = path.join(hpccSystemsFolder_1, versionFolder, "clienttools", "bin", "eclcc" + exeExt);
6962
- if (fs.existsSync(eclccPath)) {
6963
- var name_1 = path.basename(versionFolder);
7019
+ readdirSync(hpccSystemsFolder_1).forEach(function (versionFolder) {
7020
+ var eclccPath = join$1(hpccSystemsFolder_1, versionFolder, "clienttools", "bin", "eclcc" + exeExt);
7021
+ if (existsSync(eclccPath)) {
7022
+ var name_1 = basename(versionFolder);
6964
7023
  var version = new Version(name_1);
6965
7024
  if (version.exists()) {
6966
7025
  clientTools.push(new ClientTools(eclccPath));
@@ -6975,7 +7034,7 @@ function locateAllClientTools() {
6975
7034
  if (allClientToolsCache)
6976
7035
  return allClientToolsCache;
6977
7036
  var clientTools = [];
6978
- switch (os.type()) {
7037
+ switch (type()) {
6979
7038
  case "Windows_NT":
6980
7039
  var rootFolder86 = process.env["ProgramFiles(x86)"] || "";
6981
7040
  if (rootFolder86) {
@@ -7004,9 +7063,9 @@ function locateAllClientTools() {
7004
7063
  }
7005
7064
  var eclccPathMsg = "";
7006
7065
  function logEclccPath(eclccPath) {
7007
- var msg = "Using eclccPath setting: ".concat(eclccPath);
7066
+ var msg = "Using eclccPath setting: " + eclccPath;
7008
7067
  if (eclccPathMsg !== msg) {
7009
- logger.info(msg);
7068
+ logger$3.info(msg);
7010
7069
  eclccPathMsg = msg;
7011
7070
  }
7012
7071
  }
@@ -7017,7 +7076,7 @@ function locateClientTools(overridePath, build, cwd, includeFolders, legacyMode,
7017
7076
  if (includeFolders === void 0) { includeFolders = []; }
7018
7077
  if (legacyMode === void 0) { legacyMode = false; }
7019
7078
  if (args === void 0) { args = []; }
7020
- if (overridePath && fs.existsSync(overridePath)) {
7079
+ if (overridePath && existsSync(overridePath)) {
7021
7080
  logEclccPath(overridePath);
7022
7081
  return Promise.resolve(new ClientTools(overridePath, cwd, includeFolders, legacyMode, args));
7023
7082
  }
@@ -7054,28 +7113,28 @@ if (typeof root.fetch === "undefined") {
7054
7113
  if (typeof root.AbortController === "undefined") {
7055
7114
  root.AbortController = AbortController;
7056
7115
  }
7057
- root.fetch.__rejectUnauthorizedAgent = new https.Agent({
7116
+ root.fetch.__rejectUnauthorizedAgent = new Agent({
7058
7117
  rejectUnauthorized: false
7059
7118
  });
7060
7119
  var globalCA = "";
7061
- if (https.globalAgent.options.ca !== undefined) {
7062
- if (Array.isArray(https.globalAgent.options.ca) && https.globalAgent.options.ca.length) {
7063
- if (typeof https.globalAgent.options.ca[0] === "string") {
7064
- globalCA = https.globalAgent.options.ca.join("\n");
7120
+ if (globalAgent.options.ca !== undefined) {
7121
+ if (Array.isArray(globalAgent.options.ca) && globalAgent.options.ca.length) {
7122
+ if (typeof globalAgent.options.ca[0] === "string") {
7123
+ globalCA = globalAgent.options.ca.join("\n");
7065
7124
  }
7066
- else if (https.globalAgent.options.ca[0] instanceof Buffer) {
7067
- globalCA = https.globalAgent.options.ca.map(function (row) { return row.toString(); }).join("\n");
7125
+ else if (globalAgent.options.ca[0] instanceof Buffer) {
7126
+ globalCA = globalAgent.options.ca.map(function (row) { return row.toString(); }).join("\n");
7068
7127
  }
7069
7128
  }
7070
- else if (typeof https.globalAgent.options.ca === "string") {
7071
- globalCA = https.globalAgent.options.ca;
7129
+ else if (typeof globalAgent.options.ca === "string") {
7130
+ globalCA = globalAgent.options.ca;
7072
7131
  }
7073
- else if (https.globalAgent.options.ca instanceof Buffer) {
7074
- globalCA = https.globalAgent.options.ca.toString();
7132
+ else if (globalAgent.options.ca instanceof Buffer) {
7133
+ globalCA = globalAgent.options.ca.toString();
7075
7134
  }
7076
7135
  globalCA += "\n";
7077
7136
  }
7078
- root.fetch.__trustwaveAgent = new https.Agent({
7137
+ root.fetch.__trustwaveAgent = new Agent({
7079
7138
  ca: globalCA + trustwave
7080
7139
  });
7081
7140
  if (typeof root.btoa === "undefined") {
@@ -7084,5 +7143,5 @@ if (typeof root.btoa === "undefined") {
7084
7143
  };
7085
7144
  }
7086
7145
 
7087
- export { AccountService, Activity, Attr, Attribute, BUILD_VERSION, BaseScope, ClientTools, CodesignService, Connection, DFUService, DFUXRefService, Definition, ECLGraph, ECLScope, ESPConnection, ESPExceptions, EclService, EclccErrors, EnvchkErrors, Errors, Field, File, Folder, GlobalResultCache, GraphCache, Import, LocalWorkunit, LogicalFile, LogicalFileCache, Machine, MachineCache, MachineService, PKG_NAME, PKG_VERSION, Query, Resource, Result, ResultCache, SMCService, Scope, ScopeEdge, ScopeGraph, ScopeSubgraph, ScopeVertex, Service, Source, SourceFile, Store, StoreCache, StoreService, TargetCluster, TargetClusterCache, Timer, Topology, TopologyCache, TopologyService, TpLogicalClusterQuery, ValueChangedMessage, Version, WUStateID$1 as WUStateID, WUUpdate, Workspace, Workunit, WorkunitCache, WorkunitsService, XGMMLEdge, XGMMLGraph, XGMMLSubgraph, XGMMLVertex, XSDNode, XSDSchema, XSDSimpleType, XSDXMLNode, attachWorkspace, createConnection, createGraph, createXGMMLGraph, defaultTargetCluster, deserializeResponse, get, hookSend, instanceOfIConnection, instanceOfIOptions, isArray, isECLResult, isExceptions, isWUInfoWorkunit, isWUQueryECLWorkunit, jsonp, locateAllClientTools, locateClientTools, parseXSD, parseXSD2, post, qualifiedIDBoundary, send, serializeRequest, setTransportFactory, targetClusters, walkXmlJson };
7146
+ export { AccountService, Activity, Attr, Attribute, BUILD_VERSION, BaseScope, ClientTools, CodesignService, Connection, DFUService, DFUXRefService, Definition, ECLGraph, ECLScope, ESPConnection, ESPExceptions, EclService, EclccErrors, EnvchkErrors, Errors, Field, File, Folder, GlobalResultCache, GraphCache, Import, LocalWorkunit, LogaccessServiceEx, LogicalFile, LogicalFileCache, Machine, MachineCache, MachineService, PKG_NAME, PKG_VERSION, Query, Resource, ResourcesServiceEx, Result, ResultCache, SMCService, Scope, ScopeEdge, ScopeGraph, ScopeSubgraph, ScopeVertex, Service, Source, SourceFile, Store, StoreCache, StoreService, TargetCluster, TargetClusterCache, Timer, Topology, TopologyCache, TopologyService, TpLogicalClusterQuery, ValueChangedMessage, Version, WUStateID, WUUpdate, Workspace, Workunit, WorkunitCache, WorkunitsService, XGMMLEdge, XGMMLGraph, XGMMLSubgraph, XGMMLVertex, XSDNode, XSDSchema, XSDSimpleType, XSDXMLNode, attachWorkspace, createConnection, createGraph, createXGMMLGraph, defaultTargetCluster, deserializeResponse, get, hookSend, instanceOfIConnection, instanceOfIOptions, isArray, isECLResult, isExceptions, isWUInfoWorkunit, isWUQueryECLWorkunit, jsonp, locateAllClientTools, locateClientTools, parseXSD, parseXSD2, post, qualifiedIDBoundary, send, serializeRequest, setTransportFactory, targetClusters, walkXmlJson$1 as walkXmlJson };
7088
7147
  //# sourceMappingURL=index.es6.js.map