Merge mozilla-central to mozilla-autoland. r=merge a=merge CLOSED TREE

This commit is contained in:
Margareta Eliza Balazs 2017-11-08 00:08:26 +02:00
Родитель b4332702f0 4164a3a53d
Коммит fe45ae3748
45 изменённых файлов: 762 добавлений и 446 удалений

Просмотреть файл

@ -3346,12 +3346,18 @@
<certItem issuerName="MCgxCzAJBgNVBAYTAkJFMRkwFwYDVQQDExBCZWxnaXVtIFJvb3QgQ0Ey">
<serialNumber>frj5jTuqBnQ4fljPvVU3KA==</serialNumber>
</certItem>
<certItem issuerName="MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQDExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMw==">
<serialNumber>AzL4tLuklekJ8lSh6VnRMSrk</serialNumber>
</certItem>
<certItem issuerName="MIGFMQswCQYDVQQGEwJVUzEgMB4GA1UECgwXV2VsbHMgRmFyZ28gV2VsbHNTZWN1cmUxHDAaBgNVBAsME1dlbGxzIEZhcmdvIEJhbmsgTkExNjA0BgNVBAMMLVdlbGxzU2VjdXJlIFB1YmxpYyBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eQ==">
<serialNumber>AMs=</serialNumber>
</certItem>
<certItem issuerName="MHExKDAmBgNVBAMTH0dsb2JhbFNpZ24gUm9vdFNpZ24gUGFydG5lcnMgQ0ExHTAbBgNVBAsTFFJvb3RTaWduIFBhcnRuZXJzIENBMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMQswCQYDVQQGEwJCRQ==">
<serialNumber>BAAAAAABFqoAZoI=</serialNumber>
</certItem>
<certItem issuerName="MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQDExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMw==">
<serialNumber>A+ly3y1rVP59k/MKfcE3DoEq</serialNumber>
</certItem>
<certItem issuerName="MIGVMQswCQYDVQQGEwJHUjFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNVBAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgUm9vdENBIDIwMTE=">
<serialNumber>GN2Hrh9LtnM=</serialNumber>
</certItem>
@ -3364,6 +3370,9 @@
<certItem issuerName="MIGBMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTElMCMGA1UECxMcUHJpbWFyeSBPYmplY3QgUHVibGlzaGluZyBDQTEwMC4GA1UEAxMnR2xvYmFsU2lnbiBQcmltYXJ5IE9iamVjdCBQdWJsaXNoaW5nIENB">
<serialNumber>BAAAAAABI54PryQ=</serialNumber>
</certItem>
<certItem issuerName="MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQDExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMw==">
<serialNumber>BJDHnthjoDRutxFRJPFnixbU</serialNumber>
</certItem>
<certItem issuerName="MFoxCzAJBgNVBAYTAkRFMRMwEQYDVQQKEwpERk4tVmVyZWluMRAwDgYDVQQLEwdERk4tUEtJMSQwIgYDVQQDExtERk4tVmVyZWluIFBDQSBHbG9iYWwgLSBHMDE=">
<serialNumber>CeFU2w==</serialNumber>
</certItem>
@ -3376,9 +3385,15 @@
<certItem issuerName="MFkxCzAJBgNVBAYTAk5MMR4wHAYDVQQKExVTdGFhdCBkZXIgTmVkZXJsYW5kZW4xKjAoBgNVBAMTIVN0YWF0IGRlciBOZWRlcmxhbmRlbiBPdmVyaGVpZCBDQQ==">
<serialNumber>ATFEdg==</serialNumber>
</certItem>
<certItem issuerName="MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQDExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMw==">
<serialNumber>A5oET6WBWx72ColKf0txoWyR</serialNumber>
</certItem>
<certItem issuerName="MFAxJDAiBgNVBAsTG0dsb2JhbFNpZ24gRUNDIFJvb3QgQ0EgLSBSNDETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbg==">
<serialNumber>RnQ3dg5KdDZs0nyFZk4=</serialNumber>
</certItem>
<certItem issuerName="MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQDExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMw==">
<serialNumber>BONHqLIx/ibQE08IQIyoGaXg</serialNumber>
</certItem>
<certItem issuerName="MHsxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29yazEyMDAGA1UEAxMpVmVyaVNpZ24gQ2xhc3MgMyBTU1AgSW50ZXJtZWRpYXRlIENBIC0gRzI=">
<serialNumber>NpsJHyt3o1U47AAgw3UNXA==</serialNumber>
</certItem>
@ -3418,6 +3433,9 @@
<certItem issuerName="MIG8MQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxOzA5BgNVBAsTMlRlcm1zIG9mIHVzZSBhdCBodHRwczovL3d3dy52ZXJpc2lnbi5jb20vcnBhIChjKTEwMTYwNAYDVQQDEy1WZXJpU2lnbiBDbGFzcyAzIEludGVybmF0aW9uYWwgU2VydmVyIENBIC0gRzM=">
<serialNumber>BYyEX2b5+K+myAIR7eXaRQ==</serialNumber>
</certItem>
<certItem issuerName="MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQDExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMw==">
<serialNumber>A7RCxMe1S9Hb7ENzRxl0mxGP</serialNumber>
</certItem>
<certItem issuerName="MFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxTaWduIFJvb3QgQ0E=">
<serialNumber>BAAAAAABLF5/Gog=</serialNumber>
</certItem>
@ -3430,6 +3448,9 @@
<certItem issuerName="MEwxIDAeBgNVBAsTF0dsb2JhbFNpZ24gUm9vdCBDQSAtIFIzMRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWdu">
<serialNumber>BAAAAAABMYnGRuw=</serialNumber>
</certItem>
<certItem issuerName="MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQDExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMw==">
<serialNumber>A/99bZCzSpexYL5y6dSryDn3</serialNumber>
</certItem>
<certItem issuerName="MIGKMQswCQYDVQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEmMCQGA1UECxMdQ29weXJpZ2h0IChjKSAyMDA1IFdJU2VLZXkgU0ExFjAUBgNVBAsTDUludGVybmF0aW9uYWwxKTAnBgNVBAMTIFdJU2VLZXkgQ2VydGlmeUlEIEFkdmFuY2VkIEcxIENB">
<serialNumber>WD1AyQAAAAAAJQ==</serialNumber>
</certItem>
@ -3490,6 +3511,9 @@
<certItem issuerName="MDsxCzAJBgNVBAYTAkVTMREwDwYDVQQKDAhGTk1ULVJDTTEZMBcGA1UECwwQQUMgUkFJWiBGTk1ULVJDTQ==">
<serialNumber>Eg==</serialNumber>
</certItem>
<certItem issuerName="MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQDExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMw==">
<serialNumber>AyjNQ4dnGD3FD6WL5gYrYru7</serialNumber>
</certItem>
<certItem issuerName="MEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDM=">
<serialNumber>Cj0=</serialNumber>
</certItem>
@ -3541,6 +3565,9 @@
<certItem issuerName="MDwxHjAcBgNVBAMMFUF0b3MgVHJ1c3RlZFJvb3QgMjAxMTENMAsGA1UECgwEQXRvczELMAkGA1UEBhMCREU=">
<serialNumber>a12RvBNhznU=</serialNumber>
</certItem>
<certItem issuerName="MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQDExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMw==">
<serialNumber>A7uy+rmTav6tDH4dRrsnvXGH</serialNumber>
</certItem>
<certItem issuerName="MIGFMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01PRE8gQ0EgTGltaXRlZDErMCkGA1UEAxMiQ09NT0RPIFJTQSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eQ==">
<serialNumber>AKrMYlJmUUin8FOM/0TJrmk=</serialNumber>
</certItem>
@ -3688,9 +3715,15 @@
<certItem issuerName="MEIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9iYWwgQ0E=">
<serialNumber>AjpW</serialNumber>
</certItem>
<certItem issuerName="MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQDExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMw==">
<serialNumber>A8wZnhfuY6VIV1SwGsTGNR7L</serialNumber>
</certItem>
<certItem issuerName="MF8xCzAJBgNVBAYTAlRXMRIwEAYDVQQKDAlUQUlXQU4tQ0ExEDAOBgNVBAsMB1Jvb3QgQ0ExKjAoBgNVBAMMIVRXQ0EgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eQ==">
<serialNumber>DL8=</serialNumber>
</certItem>
<certItem issuerName="MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQDExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMw==">
<serialNumber>A+RCQYwhofmXM+/hxdyoUzkI</serialNumber>
</certItem>
<certItem issuerName="MEYxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMR8wHQYDVQQDExZHZW9UcnVzdCBTSEEyNTYgU1NMIENB">
<serialNumber>OUvvVscW0/NltofkmV9qmg==</serialNumber>
</certItem>
@ -3718,6 +3751,9 @@
<certItem issuerName="MIG8MQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxOzA5BgNVBAsTMlRlcm1zIG9mIHVzZSBhdCBodHRwczovL3d3dy52ZXJpc2lnbi5jb20vcnBhIChjKTEwMTYwNAYDVQQDEy1WZXJpU2lnbiBDbGFzcyAzIEludGVybmF0aW9uYWwgU2VydmVyIENBIC0gRzM=">
<serialNumber>NMpMcEnex3eXx4ohk9glcQ==</serialNumber>
</certItem>
<certItem issuerName="MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQDExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMw==">
<serialNumber>A7T0V6o47rgCKl3oUb7jF2Ph</serialNumber>
</certItem>
<certItem issuerName="MFoxCzAJBgNVBAYTAkRFMRMwEQYDVQQKEwpERk4tVmVyZWluMRAwDgYDVQQLEwdERk4tUEtJMSQwIgYDVQQDExtERk4tVmVyZWluIFBDQSBHbG9iYWwgLSBHMDE=">
<serialNumber>F6QlB/yX+A==</serialNumber>
</certItem>
@ -3766,6 +3802,9 @@
<certItem issuerName="MEoxCzAJBgNVBAYTAlVTMSAwHgYDVQQKExdTZWN1cmVUcnVzdCBDb3Jwb3JhdGlvbjEZMBcGA1UEAxMQU2VjdXJlIEdsb2JhbCBDQQ==">
<serialNumber>QAAnEQ==</serialNumber>
</certItem>
<certItem issuerName="MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQDExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMw==">
<serialNumber>A3ZQibPGSZ8nPVbuccaCvUfa</serialNumber>
</certItem>
<certItem issuerName="MFwxCzAJBgNVBAYTAlVTMRkwFwYDVQQKDBBWZXJpem9uIEJ1c2luZXNzMREwDwYDVQQLDAhPbW5pUm9vdDEfMB0GA1UEAwwWVmVyaXpvbiBHbG9iYWwgUm9vdCBDQQ==">
<serialNumber>A4g=</serialNumber>
</certItem>
@ -3775,6 +3814,9 @@
<certItem issuerName="MFoxCzAJBgNVBAYTAklFMRIwEAYDVQQKEwlCYWx0aW1vcmUxEzARBgNVBAsTCkN5YmVyVHJ1c3QxIjAgBgNVBAMTGUJhbHRpbW9yZSBDeWJlclRydXN0IFJvb3Q=">
<serialNumber>BycfpA==</serialNumber>
</certItem>
<certItem issuerName="MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQDExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMw==">
<serialNumber>BHT6CK6B569m/dd5dEluBOEd</serialNumber>
</certItem>
<certItem issuerName="MIGTMQswCQYDVQQGEwJVUzELMAkGA1UECBMCVVQxFzAVBgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxITAfBgNVBAsTGGh0dHA6Ly93d3cudXNlcnRydXN0LmNvbTEbMBkGA1UEAxMSVVROIC0gREFUQUNvcnAgU0dD">
<serialNumber>Ew1ee9Jq7Q/Dig3ACF4V6Q==</serialNumber>
</certItem>
@ -3835,6 +3877,9 @@
<certItem issuerName="MD8xCzAJBgNVBAYTAlRXMTAwLgYDVQQKDCdHb3Zlcm5tZW50IFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHk=">
<serialNumber>APdCebq8ZyZr/T0luxlicNw=</serialNumber>
</certItem>
<certItem issuerName="MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQDExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMw==">
<serialNumber>A7GX+szdK8/7Kf0xUuarfyIN</serialNumber>
</certItem>
<certItem issuerName="MFwxCzAJBgNVBAYTAkJFMRUwEwYDVQQLEwxUcnVzdGVkIFJvb3QxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExGzAZBgNVBAMTElRydXN0ZWQgUm9vdCBDQSBHMg==">
<serialNumber>YUlF+VXF2FWFqCo472HfZlw=</serialNumber>
</certItem>
@ -3913,24 +3958,12 @@
<certItem issuerName="MIG9MQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNhbCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5">
<serialNumber>QOu0a5Z9rCkw6Nk7Rg1/AQ==</serialNumber>
</certItem>
<certItem issuerName="MH4xCzAJBgNVBAYTAlVTMR0wGwYDVQQKExRTeW1hbnRlYyBDb3Jwb3JhdGlvbjEfMB0GA1UECxMWU3ltYW50ZWMgVHJ1c3QgTmV0d29yazEvMC0GA1UEAxMmU3ltYW50ZWMgQ2xhc3MgMyBTZWN1cmUgU2VydmVyIENBIC0gRzQ=">
<serialNumber>PAdKZPiaac2CvPxbOrsHOw==</serialNumber>
</certItem>
<certItem issuerName="MF8xCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRQwEgYDVQQLEwtQYXJ0bmVycyBDQTEfMB0GA1UEAxMWR2xvYmFsU2lnbiBQYXJ0bmVycyBDQQ==">
<serialNumber>BAAAAAABCFiEp9s=</serialNumber>
</certItem>
<certItem issuerName="MHYxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29yazEtMCsGA1UEAxMkVmVyaVNpZ24gQ2xhc3MgMyBTU1AgSW50ZXJtZWRpYXRlIENB">
<serialNumber>GuJ0aGBYhChXAOljooJZ3A==</serialNumber>
</certItem>
<certItem issuerName="MFwxCzAJBgNVBAYTAkJFMRUwEwYDVQQLEwxUcnVzdGVkIFJvb3QxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExGzAZBgNVBAMTElRydXN0ZWQgUm9vdCBDQSBHMg==">
<serialNumber>QM1zZ4GZ4gfwpQtUYye3Ne0=</serialNumber>
</certItem>
<certItem issuerName="MIGVMQswCQYDVQQGEwJVUzELMAkGA1UECBMCVVQxFzAVBgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxITAfBgNVBAsTGGh0dHA6Ly93d3cudXNlcnRydXN0LmNvbTEdMBsGA1UEAxMUVVROLVVTRVJGaXJzdC1PYmplY3Q=">
<serialNumber>a9rf7/BmG9JkKvRuy7J5QA==</serialNumber>
</certItem>
<certItem issuerName="MFcxCzAJBgNVBAYTAlRXMQ4wDAYDVQQKEwVUYWlDQTESMBAGA1UECxMJUG9saWN5IENBMSQwIgYDVQQDExtUYWlDQSBJbmZvcm1hdGlvbiBQb2xpY3kgQ0E=">
<serialNumber>UbQGvw==</serialNumber>
</certItem>
<certItem issuerName="MDwxHjAcBgNVBAMMFUF0b3MgVHJ1c3RlZFJvb3QgMjAxMTENMAsGA1UECgwEQXRvczELMAkGA1UEBhMCREU=">
<serialNumber>M0VSOewW3WI=</serialNumber>
</certItem>
@ -3943,17 +3976,11 @@
<certItem issuerName="MFoxCzAJBgNVBAYTAkRFMRMwEQYDVQQKEwpERk4tVmVyZWluMRAwDgYDVQQLEwdERk4tUEtJMSQwIgYDVQQDExtERk4tVmVyZWluIFBDQSBHbG9iYWwgLSBHMDE=">
<serialNumber>CcHC/g==</serialNumber>
</certItem>
<certItem issuerName="MIGVMQswCQYDVQQGEwJHUjFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNVBAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgUm9vdENBIDIwMTE=">
<serialNumber>AQAAAAU=</serialNumber>
<certItem issuerName="MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQDExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMw==">
<serialNumber>A3TWA5Aylxw0x8bVvrmUSNJd</serialNumber>
</certItem>
<certItem issuerName="MFoxCzAJBgNVBAYTAkRFMRMwEQYDVQQKEwpERk4tVmVyZWluMRAwDgYDVQQLEwdERk4tUEtJMSQwIgYDVQQDExtERk4tVmVyZWluIFBDQSBHbG9iYWwgLSBHMDE=">
<serialNumber>Cfk9lw==</serialNumber>
</certItem>
<certItem issuerName="MGQxCzAJBgNVBAYTAmNoMREwDwYDVQQKEwhTd2lzc2NvbTElMCMGA1UECxMcRGlnaXRhbCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczEbMBkGA1UEAxMSU3dpc3Njb20gUm9vdCBDQSAy">
<serialNumber>AIChpbGNqu4XKp9J70syKEs=</serialNumber>
</certItem>
<certItem issuerName="MHUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKDBlBUyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMSgwJgYDVQQDDB9FRSBDZXJ0aWZpY2F0aW9uIENlbnRyZSBSb290IENBMRgwFgYJKoZIhvcNAQkBFglwa2lAc2suZWU=">
<serialNumber>cJ+vg4742XhNgJW2ot9eIg==</serialNumber>
<certItem issuerName="MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQDExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMw==">
<serialNumber>A3UNTBOHUkbq+k999nJeSJdF</serialNumber>
</certItem>
<certItem issuerName="MIG9MQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNhbCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5">
<serialNumber>fMTRbGCp280pnyE/u53zbA==</serialNumber>
@ -3970,12 +3997,6 @@
<certItem issuerName="MCgxCzAJBgNVBAYTAkJFMRkwFwYDVQQDExBCZWxnaXVtIFJvb3QgQ0Ey">
<serialNumber>RFlmmjulj6Ve7PfBi44nnw==</serialNumber>
</certItem>
<certItem issuerName="MFoxCzAJBgNVBAYTAkRFMRMwEQYDVQQKEwpERk4tVmVyZWluMRAwDgYDVQQLEwdERk4tUEtJMSQwIgYDVQQDExtERk4tVmVyZWluIFBDQSBHbG9iYWwgLSBHMDE=">
<serialNumber>Cyr1PA==</serialNumber>
</certItem>
<certItem issuerName="MDQxCzAJBgNVBAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25h">
<serialNumber>Gg==</serialNumber>
</certItem>
<certItem issuerName="MFoxCzAJBgNVBAYTAkRFMRMwEQYDVQQKEwpERk4tVmVyZWluMRAwDgYDVQQLEwdERk4tUEtJMSQwIgYDVQQDExtERk4tVmVyZWluIFBDQSBHbG9iYWwgLSBHMDE=">
<serialNumber>CqL7CA==</serialNumber>
</certItem>
@ -3985,30 +4006,12 @@
<certItem issuerName="MEMxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwx0aGF3dGUsIEluYy4xHTAbBgNVBAMTFHRoYXd0ZSBTSEEyNTYgU1NMIENB">
<serialNumber>UKKK5ol/rKBZchAAOnZjaA==</serialNumber>
</certItem>
<certItem issuerName="MGYxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMR0wGwYDVQQLExREb21haW4gVmFsaWRhdGVkIFNTTDEgMB4GA1UEAxMXR2VvVHJ1c3QgRFYgU1NMIENBIC0gRzQ=">
<serialNumber>H08=</serialNumber>
</certItem>
<certItem issuerName="MHExKDAmBgNVBAMTH0dsb2JhbFNpZ24gUm9vdFNpZ24gUGFydG5lcnMgQ0ExHTAbBgNVBAsTFFJvb3RTaWduIFBhcnRuZXJzIENBMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMQswCQYDVQQGEwJCRQ==">
<serialNumber>BAAAAAABLM/7qjk=</serialNumber>
</certItem>
<certItem issuerName="MHExKDAmBgNVBAMTH0dsb2JhbFNpZ24gUm9vdFNpZ24gUGFydG5lcnMgQ0ExHTAbBgNVBAsTFFJvb3RTaWduIFBhcnRuZXJzIENBMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMQswCQYDVQQGEwJCRQ==">
<serialNumber>BAAAAAABKB/OGqI=</serialNumber>
</certItem>
<certItem issuerName="MGMxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwx0aGF3dGUsIEluYy4xHTAbBgNVBAsTFERvbWFpbiBWYWxpZGF0ZWQgU1NMMR4wHAYDVQQDExV0aGF3dGUgRFYgU1NMIENBIC0gRzI=">
<serialNumber>Rvm2CEw2IC2Mu/ax0A46QQ==</serialNumber>
</certItem>
<certItem issuerName="MGYxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMR0wGwYDVQQLExREb21haW4gVmFsaWRhdGVkIFNTTDEgMB4GA1UEAxMXR2VvVHJ1c3QgRFYgU1NMIENBIC0gRzM=">
<serialNumber>HNo1DR4XCe4mS1iUMsY6Wg==</serialNumber>
</certItem>
<certItem issuerName="MFoxCzAJBgNVBAYTAklFMRIwEAYDVQQKEwlCYWx0aW1vcmUxEzARBgNVBAsTCkN5YmVyVHJ1c3QxIjAgBgNVBAMTGUJhbHRpbW9yZSBDeWJlclRydXN0IFJvb3Q=">
<serialNumber>ByfFnw==</serialNumber>
</certItem>
<certItem issuerName="MFoxCzAJBgNVBAYTAkRFMRMwEQYDVQQKEwpERk4tVmVyZWluMRAwDgYDVQQLEwdERk4tUEtJMSQwIgYDVQQDExtERk4tVmVyZWluIFBDQSBHbG9iYWwgLSBHMDE=">
<serialNumber>F5BhENPfVw==</serialNumber>
</certItem>
<certItem issuerName="MIGVMQswCQYDVQQGEwJHUjFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNVBAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgUm9vdENBIDIwMTE=">
<serialNumber>GN2Hrh9Ltm4=</serialNumber>
</certItem>
<certItem issuerName="MGQxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTowOAYDVQQDEzFHbG9iYWxTaWduIFBlcnNvbmFsU2lnbiBQYXJ0bmVycyBDQSAtIFNIQTI1NiAtIEcy">
<serialNumber>AeNmeF8oVpDp/4GPvA==</serialNumber>
</certItem>
@ -4021,9 +4024,6 @@
<certItem issuerName="MH8xCzAJBgNVBAYTAlVTMR0wGwYDVQQKExRTeW1hbnRlYyBDb3Jwb3JhdGlvbjEfMB0GA1UECxMWU3ltYW50ZWMgVHJ1c3QgTmV0d29yazEwMC4GA1UEAxMnU3ltYW50ZWMgQ2xhc3MgMyBFQ0MgMjU2IGJpdCBFViBDQSAtIEcy">
<serialNumber>OhrtngFwotLcm4i+z00SjA==</serialNumber>
</certItem>
<certItem issuerName="MD0xCzAJBgNVBAYTAkZSMREwDwYDVQQKEwhDZXJ0cGx1czEbMBkGA1UEAxMSQ2xhc3MgMiBQcmltYXJ5IENB">
<serialNumber>ESJJweWBPhoXAaB9c8SHwI4O</serialNumber>
</certItem>
<certItem issuerName="MIGFMQswCQYDVQQGEwJVUzEgMB4GA1UECgwXV2VsbHMgRmFyZ28gV2VsbHNTZWN1cmUxHDAaBgNVBAsME1dlbGxzIEZhcmdvIEJhbmsgTkExNjA0BgNVBAMMLVdlbGxzU2VjdXJlIFB1YmxpYyBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eQ==">
<serialNumber>ANU=</serialNumber>
</certItem>
@ -4036,36 +4036,21 @@
<certItem issuerName="MEwxIDAeBgNVBAsTF0dsb2JhbFNpZ24gUm9vdCBDQSAtIFIzMRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWdu">
<serialNumber>BAAAAAABJQcQRNU=</serialNumber>
</certItem>
<certItem issuerName="MIG8MQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxOzA5BgNVBAsTMlRlcm1zIG9mIHVzZSBhdCBodHRwczovL3d3dy52ZXJpc2lnbi5jb20vcnBhIChjKTEwMTYwNAYDVQQDEy1WZXJpU2lnbiBDbGFzcyAzIEludGVybmF0aW9uYWwgU2VydmVyIENBIC0gRzM=">
<serialNumber>VOcIuNbTqkpOMUyI108FOg==</serialNumber>
</certItem>
<certItem issuerName="MF8xCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xhc3MgMyBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eQ==">
<serialNumber>HVRikKXRQ1ouhOpYcOna/A==</serialNumber>
</certItem>
<certItem issuerName="MIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3d3d3LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTElMCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5uZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgp">
<serialNumber>TA5iEg==</serialNumber>
</certItem>
<certItem issuerName="MFAxJDAiBgNVBAsTG0dsb2JhbFNpZ24gRUNDIFJvb3QgQ0EgLSBSNDETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbg==">
<serialNumber>RnQ3dYovwvB0D5q2YGY=</serialNumber>
</certItem>
<certItem issuerName="MEExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxUaGF3dGUsIEluYy4xGzAZBgNVBAMTElRoYXd0ZSBTR0MgQ0EgLSBHMg==">
<serialNumber>e0bEFhI16xx9U1yvlI56rA==</serialNumber>
</certItem>
<certItem issuerName="MFExCzAJBgNVBAYTAkVTMUIwQAYDVQQDDDlBdXRvcmlkYWQgZGUgQ2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBBNjI2MzQwNjg=">
<serialNumber>JGKKnm00uOQ=</serialNumber>
</certItem>
<certItem issuerName="MGMxCzAJBgNVBAYTAkZSMRMwEQYDVQQKEwpDZXJ0aW5vbWlzMRcwFQYDVQQLEw4wMDAyIDQzMzk5ODkwMzEmMCQGA1UEAwwdQ2VydGlub21pcyAtIEF1dG9yaXTDqSBSYWNpbmU=">
<serialNumber>Eg==</serialNumber>
</certItem>
<certItem issuerName="MCgxCzAJBgNVBAYTAkJFMRkwFwYDVQQDExBCZWxnaXVtIFJvb3QgQ0Ey">
<serialNumber>L1fHogsVxmfMBka5q4uzaQ==</serialNumber>
</certItem>
<certItem issuerName="MH4xCzAJBgNVBAYTAlVTMR0wGwYDVQQKExRTeW1hbnRlYyBDb3Jwb3JhdGlvbjEfMB0GA1UECxMWU3ltYW50ZWMgVHJ1c3QgTmV0d29yazEvMC0GA1UEAxMmU3ltYW50ZWMgQ2xhc3MgMyBTZWN1cmUgU2VydmVyIENBIC0gRzQ=">
<serialNumber>ezdAeCxKH7BFs7vn3byYaw==</serialNumber>
</certItem>
<certItem issuerName="MIGFMQswCQYDVQQGEwJVUzEgMB4GA1UECgwXV2VsbHMgRmFyZ28gV2VsbHNTZWN1cmUxHDAaBgNVBAsME1dlbGxzIEZhcmdvIEJhbmsgTkExNjA0BgNVBAMMLVdlbGxzU2VjdXJlIFB1YmxpYyBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eQ==">
<serialNumber>AZ0=</serialNumber>
</certItem>
<certItem issuerName="MD8xJDAiBgNVBAoTG0RpZ2l0YWwgU2lnbmF0dXJlIFRydXN0IENvLjEXMBUGA1UEAxMORFNUIFJvb3QgQ0EgWDM=">
<serialNumber>AJiU+bpWh2Uc4xFRf8GM9yA=</serialNumber>
</certItem>
@ -4075,33 +4060,18 @@
<certItem issuerName="MFwxCzAJBgNVBAYTAkJFMRUwEwYDVQQLEwxUcnVzdGVkIFJvb3QxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExGzAZBgNVBAMTElRydXN0ZWQgUm9vdCBDQSBHMg==">
<serialNumber>UV9aaDeNRNtQuXjRYk4Skhg=</serialNumber>
</certItem>
<certItem issuerName="MFoxCzAJBgNVBAYTAkRFMRMwEQYDVQQKEwpERk4tVmVyZWluMRAwDgYDVQQLEwdERk4tUEtJMSQwIgYDVQQDExtERk4tVmVyZWluIFBDQSBHbG9iYWwgLSBHMDE=">
<serialNumber>CcHC1w==</serialNumber>
</certItem>
<certItem issuerName="MGMxCzAJBgNVBAYTAkJFMRUwEwYDVQQLEwxUcnVzdGVkIFJvb3QxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExIjAgBgNVBAMTGVRydXN0ZWQgUm9vdCBDQSBTSEEyNTYgRzI=">
<serialNumber>RdHgEmEIjdyRFWDRRlk=</serialNumber>
</certItem>
<certItem issuerName="MFoxCzAJBgNVBAYTAklFMRIwEAYDVQQKEwlCYWx0aW1vcmUxEzARBgNVBAsTCkN5YmVyVHJ1c3QxIjAgBgNVBAMTGUJhbHRpbW9yZSBDeWJlclRydXN0IFJvb3Q=">
<serialNumber>BEeJFwO0nu759EPo9tKluw==</serialNumber>
</certItem>
<certItem issuerName="MHExCzAJBgNVBAYTAkRFMRwwGgYDVQQKExNEZXV0c2NoZSBUZWxla29tIEFHMR8wHQYDVQQLExZULVRlbGVTZWMgVHJ1c3QgQ2VudGVyMSMwIQYDVQQDExpEZXV0c2NoZSBUZWxla29tIFJvb3QgQ0EgMg==">
<serialNumber>AQw=</serialNumber>
</certItem>
<certItem issuerName="MFYxCzAJBgNVBAYTAkpQMQ8wDQYDVQQKEwZKSVBERUMxGjAYBgNVBAsTEUpDQU4gU3ViIFJvb3QgQ0EwMRowGAYDVQQDExFKQ0FOIFN1YiBSb290IENBMA==">
<serialNumber>BAAAAAABK84yjs8=</serialNumber>
</certItem>
<certItem issuerName="MIGVMQswCQYDVQQGEwJHUjFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNVBAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgUm9vdENBIDIwMTE=">
<serialNumber>FJl6tXgNpSk=</serialNumber>
</certItem>
<certItem issuerName="MHExKDAmBgNVBAMTH0dsb2JhbFNpZ24gUm9vdFNpZ24gUGFydG5lcnMgQ0ExHTAbBgNVBAsTFFJvb3RTaWduIFBhcnRuZXJzIENBMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMQswCQYDVQQGEwJCRQ==">
<serialNumber>BAAAAAAA+X/GIyk=</serialNumber>
</certItem>
<certItem issuerName="MD0xCzAJBgNVBAYTAkZSMREwDwYDVQQKEwhDZXJ0cGx1czEbMBkGA1UEAxMSQ2xhc3MgMiBQcmltYXJ5IENB">
<serialNumber>ESCC9oPNcRdPOox+SjWm9dTX</serialNumber>
</certItem>
<certItem issuerName="MD0xCzAJBgNVBAYTAkZSMREwDwYDVQQKEwhDZXJ0cGx1czEbMBkGA1UEAxMSQ2xhc3MgMiBQcmltYXJ5IENB">
<serialNumber>DjIvBkX+ECVbB/C3i6w2Gg==</serialNumber>
</certItem>
<certItem issuerName="MIHBMQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xPDA6BgNVBAsTM0NsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjE6MDgGA1UECxMxKGMpIDE5OTggVmVyaVNpZ24sIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29yaw==">
<serialNumber>O2Qh+qhbBRuZA11yDhcLGQ==</serialNumber>
</certItem>
@ -4123,6 +4093,9 @@
<certItem issuerName="MHExKDAmBgNVBAMTH0dsb2JhbFNpZ24gUm9vdFNpZ24gUGFydG5lcnMgQ0ExHTAbBgNVBAsTFFJvb3RTaWduIFBhcnRuZXJzIENBMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMQswCQYDVQQGEwJCRQ==">
<serialNumber>BAAAAAABJ/ufQg8=</serialNumber>
</certItem>
<certItem issuerName="MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQDExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMw==">
<serialNumber>A8LV4zckxcwdttbQSk0EPnoA</serialNumber>
</certItem>
<certItem issuerName="MIGCMQswCQYDVQQGEwJVUzEeMBwGA1UECxMVd3d3LnhyYW1wc2VjdXJpdHkuY29tMSQwIgYDVQQKExtYUmFtcCBTZWN1cml0eSBTZXJ2aWNlcyBJbmMxLTArBgNVBAMTJFhSYW1wIEdsb2JhbCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eQ==">
<serialNumber>QZCrvQ==</serialNumber>
</certItem>
@ -4156,6 +4129,9 @@
<certItem issuerName="MIGVMQswCQYDVQQGEwJHUjFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNVBAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgUm9vdENBIDIwMTE=">
<serialNumber>GN2Hrh9Ltms=</serialNumber>
</certItem>
<certItem issuerName="MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQDExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMw==">
<serialNumber>AyYMguSo1my449OZq51C3s3Z</serialNumber>
</certItem>
<certItem issuerName="MH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5">
<serialNumber>Qh/QbQ==</serialNumber>
</certItem>
@ -4231,12 +4207,18 @@
<certItem issuerName="MIG8MQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxOzA5BgNVBAsTMlRlcm1zIG9mIHVzZSBhdCBodHRwczovL3d3dy52ZXJpc2lnbi5jb20vcnBhIChjKTEwMTYwNAYDVQQDEy1WZXJpU2lnbiBDbGFzcyAzIEludGVybmF0aW9uYWwgU2VydmVyIENBIC0gRzM=">
<serialNumber>A9GPKQ8jv9oIxfwiOy7qxQ==</serialNumber>
</certItem>
<certItem issuerName="MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQDExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMw==">
<serialNumber>BOPwjyn5eqfeoxs7Z0y3vqNN</serialNumber>
</certItem>
<certItem issuerName="MFoxCzAJBgNVBAYTAklFMRIwEAYDVQQKEwlCYWx0aW1vcmUxEzARBgNVBAsTCkN5YmVyVHJ1c3QxIjAgBgNVBAMTGUJhbHRpbW9yZSBDeWJlclRydXN0IFJvb3Q=">
<serialNumber>Byd/Ug==</serialNumber>
</certItem>
<certItem issuerName="MEwxIDAeBgNVBAsTF0dsb2JhbFNpZ24gUm9vdCBDQSAtIFIyMRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWdu">
<serialNumber>BAAAAAABIg08FMU=</serialNumber>
</certItem>
<certItem issuerName="MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQDExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMw==">
<serialNumber>BKobzjrOxa/6kCR0ImKoqaQW</serialNumber>
</certItem>
<certItem issuerName="MIGVMQswCQYDVQQGEwJHUjFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNVBAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgUm9vdENBIDIwMTE=">
<serialNumber>AQAAAAA=</serialNumber>
</certItem>
@ -4309,6 +4291,9 @@
<certItem issuerName="MEgxCzAJBgNVBAYTAlVTMSAwHgYDVQQKExdTZWN1cmVUcnVzdCBDb3Jwb3JhdGlvbjEXMBUGA1UEAxMOU2VjdXJlVHJ1c3QgQ0E=">
<serialNumber>MABJTA==</serialNumber>
</certItem>
<certItem issuerName="MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQDExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMw==">
<serialNumber>BOc11keA9WJ9R20XQY8hO7yi</serialNumber>
</certItem>
<certItem issuerName="MFoxCzAJBgNVBAYTAklFMRIwEAYDVQQKEwlCYWx0aW1vcmUxEzARBgNVBAsTCkN5YmVyVHJ1c3QxIjAgBgNVBAMTGUJhbHRpbW9yZSBDeWJlclRydXN0IFJvb3Q=">
<serialNumber>BydCwg==</serialNumber>
</certItem>
@ -4378,6 +4363,9 @@
<certItem issuerName="MEgxCzAJBgNVBAYTAlVTMSAwHgYDVQQKExdTZWN1cmVUcnVzdCBDb3Jwb3JhdGlvbjEXMBUGA1UEAxMOU2VjdXJlVHJ1c3QgQ0E=">
<serialNumber>R/j2qA==</serialNumber>
</certItem>
<certItem issuerName="MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQDExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMw==">
<serialNumber>A/7DHCczBnP5qUVh0jF2pvwB</serialNumber>
</certItem>
<certItem issuerName="MFoxCzAJBgNVBAYTAkRFMRMwEQYDVQQKEwpERk4tVmVyZWluMRAwDgYDVQQLEwdERk4tUEtJMSQwIgYDVQQDExtERk4tVmVyZWluIFBDQSBHbG9iYWwgLSBHMDE=">
<serialNumber>CdWFNw==</serialNumber>
</certItem>
@ -4420,6 +4408,9 @@
<certItem issuerName="MDsxGDAWBgNVBAoTD0N5YmVydHJ1c3QsIEluYzEfMB0GA1UEAxMWQ3liZXJ0cnVzdCBHbG9iYWwgUm9vdA==">
<serialNumber>BAAAAAABQaHhNLo=</serialNumber>
</certItem>
<certItem issuerName="MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQDExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMw==">
<serialNumber>AwBGo0Zmp6KRryAguuMvXATI</serialNumber>
</certItem>
<certItem issuerName="MEQxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMR0wGwYDVQQDExRHZW9UcnVzdCBTU0wgQ0EgLSBHMw==">
<serialNumber>bx/XHJqcwxDOptxJ2lh5vw==</serialNumber>
</certItem>
@ -4447,6 +4438,9 @@
<certItem issuerName="MGgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMR0wGwYDVQQLExREb21haW4gVmFsaWRhdGVkIFNTTDEiMCAGA1UEAxMZR2VvVHJ1c3QgRFYgU1NMIFNIQTI1NiBDQQ==">
<serialNumber>ZgwfEqZnBsUNvNuZ77FbQA==</serialNumber>
</certItem>
<certItem issuerName="MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQDExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMw==">
<serialNumber>BOIIipysxAz5xHIMmFRvYchY</serialNumber>
</certItem>
<certItem issuerName="MIHKMQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMw==">
<serialNumber>OgxXyntHYBXnPAHDxY0OXg==</serialNumber>
</certItem>
@ -4501,6 +4495,9 @@
<certItem issuerName="MIG9MQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNhbCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5">
<serialNumber>MWzraR3LLhU9m/qKEhvVLQ==</serialNumber>
</certItem>
<certItem issuerName="MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQDExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMw==">
<serialNumber>Ax6Jm7ajV49tqHgf9nYnzRCI</serialNumber>
</certItem>
<certItem issuerName="MEcxCzAJBgNVBAYTAkNIMRUwEwYDVQQKEwxTd2lzc1NpZ24gQUcxITAfBgNVBAMTGFN3aXNzU2lnbiBTaWx2ZXIgQ0EgLSBHMg==">
<serialNumber>APiyCXmwAUq+95DYa3DmGw==</serialNumber>
</certItem>
@ -4531,6 +4528,9 @@
<certItem issuerName="MH4xCzAJBgNVBAYTAlVTMR0wGwYDVQQKExRTeW1hbnRlYyBDb3Jwb3JhdGlvbjEfMB0GA1UECxMWU3ltYW50ZWMgVHJ1c3QgTmV0d29yazEvMC0GA1UEAxMmU3ltYW50ZWMgQ2xhc3MgMyBTZWN1cmUgU2VydmVyIENBIC0gRzQ=">
<serialNumber>E77H6yvyFQjO0PcN3x0H+Q==</serialNumber>
</certItem>
<certItem issuerName="MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQDExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMw==">
<serialNumber>A3WVy2V+2VFkWtMvA6HFwnhq</serialNumber>
</certItem>
<certItem issuerName="MEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDM=">
<serialNumber>B+U=</serialNumber>
</certItem>
@ -4543,6 +4543,12 @@
<certItem issuerName="MIGVMQswCQYDVQQGEwJHUjFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNVBAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgUm9vdENBIDIwMTE=">
<serialNumber>GN2Hrh9LtnA=</serialNumber>
</certItem>
<certItem issuerName="MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQDExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMw==">
<serialNumber>BOncXh7IZp1SNydhtUdyh2O2</serialNumber>
</certItem>
<certItem issuerName="MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQDExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMw==">
<serialNumber>A8aDg1/IA4O8gjMPZHVqPI+w</serialNumber>
</certItem>
<certItem issuerName="MDMxCzAJBgNVBAYTAlBUMQ0wCwYDVQQKDARTQ0VFMRUwEwYDVQQDDAxFQ1JhaXpFc3RhZG8=">
<serialNumber>cx0HrIEQg8JHWTP7DzOxSQ==</serialNumber>
</certItem>
@ -4603,6 +4609,9 @@
<certItem issuerName="MFoxCzAJBgNVBAYTAkRFMRMwEQYDVQQKEwpERk4tVmVyZWluMRAwDgYDVQQLEwdERk4tUEtJMSQwIgYDVQQDExtERk4tVmVyZWluIFBDQSBHbG9iYWwgLSBHMDE=">
<serialNumber>EAdmaA==</serialNumber>
</certItem>
<certItem issuerName="MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQDExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMw==">
<serialNumber>BLlQHJ611eOZuedFrFgVAfAs</serialNumber>
</certItem>
<certItem issuerName="MD8xJDAiBgNVBAoTG0RpZ2l0YWwgU2lnbmF0dXJlIFRydXN0IENvLjEXMBUGA1UEAxMORFNUIFJvb3QgQ0EgWDM=">
<serialNumber>CgFBQQAAATjtdPY5AAAAAg==</serialNumber>
</certItem>
@ -4612,6 +4621,9 @@
<certItem issuerName="MHExKDAmBgNVBAMTH0dsb2JhbFNpZ24gUm9vdFNpZ24gUGFydG5lcnMgQ0ExHTAbBgNVBAsTFFJvb3RTaWduIFBhcnRuZXJzIENBMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMQswCQYDVQQGEwJCRQ==">
<serialNumber>BAAAAAABGMGjftY=</serialNumber>
</certItem>
<certItem issuerName="MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQDExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMw==">
<serialNumber>A1V4dX0tTb1rdTZxdWcuZ7YR</serialNumber>
</certItem>
<certItem issuerName="MGMxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwx0aGF3dGUsIEluYy4xHTAbBgNVBAsTFERvbWFpbiBWYWxpZGF0ZWQgU1NMMR4wHAYDVQQDExV0aGF3dGUgRFYgU1NMIENBIC0gRzI=">
<serialNumber>BUrYjru5px1ym4QUN33TOQ==</serialNumber>
</certItem>
@ -4627,6 +4639,12 @@
<certItem issuerName="MEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDM=">
<serialNumber>SurdtfsuPcXXDpY2LkBpYO6BT7o=</serialNumber>
</certItem>
<certItem issuerName="MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQDExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMw==">
<serialNumber>AxW0+uDsfyCSfhECdsGGpVD8</serialNumber>
</certItem>
<certItem issuerName="MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQDExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMw==">
<serialNumber>A9BRwOwbXRRhCe+kcmglgW3z</serialNumber>
</certItem>
<certItem issuerName="MHsxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29yazEyMDAGA1UEAxMpVmVyaVNpZ24gQ2xhc3MgMyBTU1AgSW50ZXJtZWRpYXRlIENBIC0gRzI=">
<serialNumber>dhjnNtYx6cojdAE55TgIBA==</serialNumber>
</certItem>
@ -4660,6 +4678,9 @@
<certItem issuerName="MIGCMQswCQYDVQQGEwJVUzEeMBwGA1UECxMVd3d3LnhyYW1wc2VjdXJpdHkuY29tMSQwIgYDVQQKExtYUmFtcCBTZWN1cml0eSBTZXJ2aWNlcyBJbmMxLTArBgNVBAMTJFhSYW1wIEdsb2JhbCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eQ==">
<serialNumber>QZCrvA==</serialNumber>
</certItem>
<certItem issuerName="MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQDExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMw==">
<serialNumber>A0BOaf9UbJxzqBudSyes/cEM</serialNumber>
</certItem>
<certItem issuerName="MEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDM=">
<serialNumber>NTgf4iwIfeyJPIomw2dwSXEwtxQ=</serialNumber>
</certItem>
@ -4690,8 +4711,98 @@
<certItem issuerName="MFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxTaWduIFJvb3QgQ0E=">
<serialNumber>BAAAAAABKUXDqA8=</serialNumber>
</certItem>
<certItem issuerName="MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQDExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMw==">
<serialNumber>BDV89QWZE9MJYlCpFQUv5Y2W</serialNumber>
</certItem>
<certItem issuerName="MIGXMQswCQYDVQQGEwJVUzELMAkGA1UECBMCVVQxFzAVBgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxITAfBgNVBAsTGGh0dHA6Ly93d3cudXNlcnRydXN0LmNvbTEfMB0GA1UEAxMWVVROLVVTRVJGaXJzdC1IYXJkd2FyZQ==">
<serialNumber>Xrr31RF0DoIzMKXS6XtD+g==</serialNumber>
</certItem>
<certItem issuerName="MH4xCzAJBgNVBAYTAlVTMR0wGwYDVQQKExRTeW1hbnRlYyBDb3Jwb3JhdGlvbjEfMB0GA1UECxMWU3ltYW50ZWMgVHJ1c3QgTmV0d29yazEvMC0GA1UEAxMmU3ltYW50ZWMgQ2xhc3MgMyBTZWN1cmUgU2VydmVyIENBIC0gRzQ=">
<serialNumber>PAdKZPiaac2CvPxbOrsHOw==</serialNumber>
</certItem>
<certItem issuerName="MF8xCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRQwEgYDVQQLEwtQYXJ0bmVycyBDQTEfMB0GA1UEAxMWR2xvYmFsU2lnbiBQYXJ0bmVycyBDQQ==">
<serialNumber>BAAAAAABCFiEp9s=</serialNumber>
</certItem>
<certItem issuerName="MHYxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29yazEtMCsGA1UEAxMkVmVyaVNpZ24gQ2xhc3MgMyBTU1AgSW50ZXJtZWRpYXRlIENB">
<serialNumber>GuJ0aGBYhChXAOljooJZ3A==</serialNumber>
</certItem>
<certItem issuerName="MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQDExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMw==">
<serialNumber>BPVqx4UbKVAbJSFTKwrcFryU</serialNumber>
</certItem>
<certItem issuerName="MFcxCzAJBgNVBAYTAlRXMQ4wDAYDVQQKEwVUYWlDQTESMBAGA1UECxMJUG9saWN5IENBMSQwIgYDVQQDExtUYWlDQSBJbmZvcm1hdGlvbiBQb2xpY3kgQ0E=">
<serialNumber>UbQGvw==</serialNumber>
</certItem>
<certItem issuerName="MIGVMQswCQYDVQQGEwJHUjFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNVBAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgUm9vdENBIDIwMTE=">
<serialNumber>AQAAAAU=</serialNumber>
</certItem>
<certItem issuerName="MFoxCzAJBgNVBAYTAkRFMRMwEQYDVQQKEwpERk4tVmVyZWluMRAwDgYDVQQLEwdERk4tUEtJMSQwIgYDVQQDExtERk4tVmVyZWluIFBDQSBHbG9iYWwgLSBHMDE=">
<serialNumber>Cfk9lw==</serialNumber>
</certItem>
<certItem issuerName="MGQxCzAJBgNVBAYTAmNoMREwDwYDVQQKEwhTd2lzc2NvbTElMCMGA1UECxMcRGlnaXRhbCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczEbMBkGA1UEAxMSU3dpc3Njb20gUm9vdCBDQSAy">
<serialNumber>AIChpbGNqu4XKp9J70syKEs=</serialNumber>
</certItem>
<certItem issuerName="MHUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKDBlBUyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMSgwJgYDVQQDDB9FRSBDZXJ0aWZpY2F0aW9uIENlbnRyZSBSb290IENBMRgwFgYJKoZIhvcNAQkBFglwa2lAc2suZWU=">
<serialNumber>cJ+vg4742XhNgJW2ot9eIg==</serialNumber>
</certItem>
<certItem issuerName="MFoxCzAJBgNVBAYTAkRFMRMwEQYDVQQKEwpERk4tVmVyZWluMRAwDgYDVQQLEwdERk4tUEtJMSQwIgYDVQQDExtERk4tVmVyZWluIFBDQSBHbG9iYWwgLSBHMDE=">
<serialNumber>Cyr1PA==</serialNumber>
</certItem>
<certItem issuerName="MDQxCzAJBgNVBAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25h">
<serialNumber>Gg==</serialNumber>
</certItem>
<certItem issuerName="MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQDExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMw==">
<serialNumber>BKrxi2/1iFxHEFzyZvegxq5C</serialNumber>
</certItem>
<certItem issuerName="MGYxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMR0wGwYDVQQLExREb21haW4gVmFsaWRhdGVkIFNTTDEgMB4GA1UEAxMXR2VvVHJ1c3QgRFYgU1NMIENBIC0gRzQ=">
<serialNumber>H08=</serialNumber>
</certItem>
<certItem issuerName="MHExKDAmBgNVBAMTH0dsb2JhbFNpZ24gUm9vdFNpZ24gUGFydG5lcnMgQ0ExHTAbBgNVBAsTFFJvb3RTaWduIFBhcnRuZXJzIENBMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMQswCQYDVQQGEwJCRQ==">
<serialNumber>BAAAAAABKB/OGqI=</serialNumber>
</certItem>
<certItem issuerName="MGMxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwx0aGF3dGUsIEluYy4xHTAbBgNVBAsTFERvbWFpbiBWYWxpZGF0ZWQgU1NMMR4wHAYDVQQDExV0aGF3dGUgRFYgU1NMIENBIC0gRzI=">
<serialNumber>Rvm2CEw2IC2Mu/ax0A46QQ==</serialNumber>
</certItem>
<certItem issuerName="MFoxCzAJBgNVBAYTAklFMRIwEAYDVQQKEwlCYWx0aW1vcmUxEzARBgNVBAsTCkN5YmVyVHJ1c3QxIjAgBgNVBAMTGUJhbHRpbW9yZSBDeWJlclRydXN0IFJvb3Q=">
<serialNumber>ByfFnw==</serialNumber>
</certItem>
<certItem issuerName="MFoxCzAJBgNVBAYTAkRFMRMwEQYDVQQKEwpERk4tVmVyZWluMRAwDgYDVQQLEwdERk4tUEtJMSQwIgYDVQQDExtERk4tVmVyZWluIFBDQSBHbG9iYWwgLSBHMDE=">
<serialNumber>F5BhENPfVw==</serialNumber>
</certItem>
<certItem issuerName="MIGVMQswCQYDVQQGEwJHUjFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNVBAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgUm9vdENBIDIwMTE=">
<serialNumber>GN2Hrh9Ltm4=</serialNumber>
</certItem>
<certItem issuerName="MD0xCzAJBgNVBAYTAkZSMREwDwYDVQQKEwhDZXJ0cGx1czEbMBkGA1UEAxMSQ2xhc3MgMiBQcmltYXJ5IENB">
<serialNumber>ESJJweWBPhoXAaB9c8SHwI4O</serialNumber>
</certItem>
<certItem issuerName="MIG8MQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxOzA5BgNVBAsTMlRlcm1zIG9mIHVzZSBhdCBodHRwczovL3d3dy52ZXJpc2lnbi5jb20vcnBhIChjKTEwMTYwNAYDVQQDEy1WZXJpU2lnbiBDbGFzcyAzIEludGVybmF0aW9uYWwgU2VydmVyIENBIC0gRzM=">
<serialNumber>VOcIuNbTqkpOMUyI108FOg==</serialNumber>
</certItem>
<certItem issuerName="MFAxJDAiBgNVBAsTG0dsb2JhbFNpZ24gRUNDIFJvb3QgQ0EgLSBSNDETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbg==">
<serialNumber>RnQ3dYovwvB0D5q2YGY=</serialNumber>
</certItem>
<certItem issuerName="MGMxCzAJBgNVBAYTAkZSMRMwEQYDVQQKEwpDZXJ0aW5vbWlzMRcwFQYDVQQLEw4wMDAyIDQzMzk5ODkwMzEmMCQGA1UEAwwdQ2VydGlub21pcyAtIEF1dG9yaXTDqSBSYWNpbmU=">
<serialNumber>Eg==</serialNumber>
</certItem>
<certItem issuerName="MH4xCzAJBgNVBAYTAlVTMR0wGwYDVQQKExRTeW1hbnRlYyBDb3Jwb3JhdGlvbjEfMB0GA1UECxMWU3ltYW50ZWMgVHJ1c3QgTmV0d29yazEvMC0GA1UEAxMmU3ltYW50ZWMgQ2xhc3MgMyBTZWN1cmUgU2VydmVyIENBIC0gRzQ=">
<serialNumber>ezdAeCxKH7BFs7vn3byYaw==</serialNumber>
</certItem>
<certItem issuerName="MIGFMQswCQYDVQQGEwJVUzEgMB4GA1UECgwXV2VsbHMgRmFyZ28gV2VsbHNTZWN1cmUxHDAaBgNVBAsME1dlbGxzIEZhcmdvIEJhbmsgTkExNjA0BgNVBAMMLVdlbGxzU2VjdXJlIFB1YmxpYyBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eQ==">
<serialNumber>AZ0=</serialNumber>
</certItem>
<certItem issuerName="MFoxCzAJBgNVBAYTAkRFMRMwEQYDVQQKEwpERk4tVmVyZWluMRAwDgYDVQQLEwdERk4tUEtJMSQwIgYDVQQDExtERk4tVmVyZWluIFBDQSBHbG9iYWwgLSBHMDE=">
<serialNumber>CcHC1w==</serialNumber>
</certItem>
<certItem issuerName="MFoxCzAJBgNVBAYTAklFMRIwEAYDVQQKEwlCYWx0aW1vcmUxEzARBgNVBAsTCkN5YmVyVHJ1c3QxIjAgBgNVBAMTGUJhbHRpbW9yZSBDeWJlclRydXN0IFJvb3Q=">
<serialNumber>BEeJFwO0nu759EPo9tKluw==</serialNumber>
</certItem>
<certItem issuerName="MFYxCzAJBgNVBAYTAkpQMQ8wDQYDVQQKEwZKSVBERUMxGjAYBgNVBAsTEUpDQU4gU3ViIFJvb3QgQ0EwMRowGAYDVQQDExFKQ0FOIFN1YiBSb290IENBMA==">
<serialNumber>BAAAAAABK84yjs8=</serialNumber>
</certItem>
<certItem issuerName="MD0xCzAJBgNVBAYTAkZSMREwDwYDVQQKEwhDZXJ0cGx1czEbMBkGA1UEAxMSQ2xhc3MgMiBQcmltYXJ5IENB">
<serialNumber>ESCC9oPNcRdPOox+SjWm9dTX</serialNumber>
</certItem>
<certItem issuerName="MD0xCzAJBgNVBAYTAkZSMREwDwYDVQQKEwhDZXJ0cGx1czEbMBkGA1UEAxMSQ2xhc3MgMiBQcmltYXJ5IENB">
<serialNumber>DjIvBkX+ECVbB/C3i6w2Gg==</serialNumber>
</certItem>
</certItems>
</blocklist>

Просмотреть файл

@ -72,6 +72,8 @@ add_task(async function clearURLBarAfterManuallyLoadingAboutHome() {
* default content principal are different).
*/
add_task(async function dontTemporarilyShowAboutHome() {
requestLongerTimeout(2);
await SpecialPowers.pushPrefEnv({set: [["browser.startup.page", 1]]});
let windowOpenedPromise = BrowserTestUtils.waitForNewWindow();
let win = OpenBrowserWindow();
@ -79,6 +81,7 @@ add_task(async function dontTemporarilyShowAboutHome() {
let promiseTabSwitch = BrowserTestUtils.switchTab(win.gBrowser, () => {});
win.BrowserOpenTab();
await promiseTabSwitch;
is(win.gBrowser.visibleTabs.length, 2, "2 tabs opened");
await TabStateFlusher.flush(win.gBrowser.selectedBrowser);
await BrowserTestUtils.closeWindow(win);
ok(SessionStore.getClosedWindowCount(), "Should have a closed window");
@ -94,6 +97,10 @@ add_task(async function dontTemporarilyShowAboutHome() {
},
};
win.gBrowser.addProgressListener(wpl);
if (win.gBrowser.visibleTabs.length < 2) {
await BrowserTestUtils.waitForEvent(gBrowser.tabContainer, "TabOpen");
}
let otherTab = win.gBrowser.selectedTab.previousSibling;
let tabLoaded = BrowserTestUtils.browserLoaded(otherTab.linkedBrowser, false, "about:home");
await BrowserTestUtils.switchTab(win.gBrowser, otherTab);

Просмотреть файл

@ -1745,7 +1745,7 @@ BrowserGlue.prototype = {
// eslint-disable-next-line complexity
_migrateUI: function BG__migrateUI() {
const UI_VERSION = 57;
const UI_VERSION = 58;
const BROWSER_DOCURL = "chrome://browser/content/browser.xul";
let currentUIVersion;
@ -2170,6 +2170,13 @@ BrowserGlue.prototype = {
}
}
if (currentUIVersion < 58) {
// With Firefox 57, we are doing a one time reset of the geo prefs due to bug 1413652
Services.prefs.clearUserPref("browser.search.countryCode");
Services.prefs.clearUserPref("browser.search.region");
Services.prefs.clearUserPref("browser.search.isUS");
}
// Update the migration version.
Services.prefs.setIntPref("browser.migration.version", UI_VERSION);
},

Просмотреть файл

@ -199,8 +199,8 @@ set_config('XCODE_PATH', xcode_path)
option('--with-compiler-wrapper', env='COMPILER_WRAPPER', nargs=1,
help='Enable compiling with wrappers such as distcc and ccache')
js_option('--with-ccache', env='CCACHE', nargs='?',
help='Enable compiling with ccache')
option('--with-ccache', env='CCACHE', nargs='?',
help='Enable compiling with ccache')
@depends_if('--with-ccache')
@ -1224,19 +1224,6 @@ set_config('WRAP_SYSTEM_INCLUDES', wrap_system_includes)
set_config('VISIBILITY_FLAGS', visibility_flags)
@depends(c_compiler, using_sccache)
def depend_cflags(info, using_sccache):
if info.type not in ('clang-cl', 'msvc'):
return '-MD -MP -MF $(MDDEPDIR)/$(@F).pp'
elif using_sccache:
# sccache supports a special flag to create depfiles
# by parsing MSVC's -showIncludes output.
return '-deps$(MDDEPDIR)/$(@F).pp'
set_config('_DEPEND_CFLAGS', depend_cflags)
@depends(c_compiler)
@imports('multiprocessing')
@imports(_from='__builtin__', _import='min')

Просмотреть файл

@ -447,28 +447,3 @@ def alter_path(sdk_bin_path):
set_config('PATH', alter_path)
check_prog('MAKECAB', ('makecab.exe',))
@depends(c_compiler, using_sccache)
def need_showincludes_prefix(info, using_sccache):
# sccache does its own -showIncludes prefix checking.
if info.type in ('clang-cl', 'msvc') and not using_sccache:
return True
@depends(c_compiler, when=need_showincludes_prefix)
@imports(_from='re', _import='compile', _as='re_compile')
def msvc_showincludes_prefix(c_compiler):
pattern = re_compile(br'^([^:]*:.*[ :] )(.*\\stdio.h)$')
output = try_invoke_compiler([c_compiler.compiler], 'C', '#include <stdio.h>\n',
['-nologo', '-c', '-Fonul', '-showIncludes'])
for line in output.splitlines():
if line.endswith(b'\\stdio.h'):
m = pattern.match(line)
if m:
return m.group(1)
# We should have found the prefix and returned earlier
die('Cannot find cl -showIncludes prefix.')
set_config('CL_INCLUDES_PREFIX', msvc_showincludes_prefix)

Просмотреть файл

@ -124,6 +124,12 @@ else
mk_add_options "UPLOAD_EXTRA_FILES+=sccache.log.gz"
case "$platform" in
win*)
# sccache supports a special flag to create depfiles.
#TODO: bug 1318370 - move this all into toolchain.configure
export _DEPEND_CFLAGS='-deps$(MDDEPDIR)/$(@F).pp'
# Windows builds have a default wrapper that needs to be overridden
mk_add_options "export CC_WRAPPER="
mk_add_options "export CXX_WRAPPER="
# For now, sccache doesn't support separate PDBs so force debug info to be
# in object files.
mk_add_options "export COMPILE_PDB_FLAG="

Просмотреть файл

@ -120,10 +120,8 @@ CONFIG_TOOLS = $(MOZ_BUILD_ROOT)/config
AUTOCONF_TOOLS = $(MOZILLA_DIR)/build/autoconf
ifdef _MSC_VER
ifndef MOZ_USING_SCCACHE
CC_WRAPPER ?= $(call py_action,cl)
CXX_WRAPPER ?= $(call py_action,cl)
endif
endif # _MSC_VER
CC := $(CC_WRAPPER) $(CC)

Просмотреть файл

@ -23,7 +23,7 @@ function test() {
"There should be one error logged when parsing.");
is(parser.errors[0].name, "SyntaxError",
"The correct exception was caught.");
is(parser.errors[0].message, "missing ; before statement",
is(parser.errors[0].message, "unexpected token: \'+\'",
"The correct exception was caught.");
finish();

Просмотреть файл

@ -36,12 +36,12 @@ function test() {
is(parser.errors[0].name, "SyntaxError",
"The correct first exception was caught.");
is(parser.errors[0].message, "missing ; before statement",
is(parser.errors[0].message, "unexpected token: \'+\'",
"The correct first exception was caught.");
is(parser.errors[1].name, "SyntaxError",
"The correct second exception was caught.");
is(parser.errors[1].message, "missing ; before statement",
is(parser.errors[1].message, "unexpected token: \'+\'",
"The correct second exception was caught.");
is(parsed.scriptCount, 1,

Просмотреть файл

@ -39,7 +39,7 @@ const ErrorDocs = {
JSMSG_NO_PROPERTIES: "No_properties",
JSMSG_ALREADY_HAS_PRAGMA: "Already_has_pragma",
JSMSG_BAD_RETURN_OR_YIELD: "Bad_return_or_yield",
JSMSG_SEMI_BEFORE_STMNT: "Missing_semicolon_before_statement",
JSMSG_UNEXPECTED_TOKEN_NO_EXPECT: "Missing_semicolon_before_statement",
JSMSG_OVER_RECURSED: "Too_much_recursion",
JSMSG_BRACKET_AFTER_LIST: "Missing_bracket_after_list",
JSMSG_PAREN_AFTER_ARGS: "Missing_parenthesis_after_argument_list",

Просмотреть файл

@ -115,7 +115,7 @@ NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INTERNAL(nsJSScriptTimeoutHandler)
nsAutoCString name("nsJSScriptTimeoutHandler");
if (tmp->mFunction) {
JSObject* obj = tmp->mFunction->CallablePreserveColor();
JSFunction* fun = JS_GetObjectFunction(js::UncheckedUnwrap(obj));
JSFunction* fun = JS_GetObjectFunction(js::UncheckedUnwrapWithoutExpose(obj));
if (fun && JS_GetFunctionId(fun)) {
JSFlatString *funId = JS_ASSERT_STRING_IS_FLAT(JS_GetFunctionId(fun));
size_t size = 1 + JS_PutEscapedFlatString(nullptr, 0, funId, 0);

Просмотреть файл

@ -650,6 +650,18 @@ nsNodeUtils::CloneAndAdopt(nsINode *aNode, bool aClone, bool aDeep,
}
}
if (aDeep && !aClone && aNode->IsElement()) {
if (ShadowRoot* shadowRoot = aNode->AsElement()->GetShadowRoot()) {
nsCOMPtr<nsINode> child =
CloneAndAdopt(shadowRoot, aClone, aDeep, nodeInfoManager,
aReparentScope, aNodesWithProperties, clone,
aError);
if (NS_WARN_IF(aError.Failed())) {
return nullptr;
}
}
}
// Cloning template element.
if (aDeep && aClone && IsTemplateElement(aNode)) {
DocumentFragment* origContent =

Просмотреть файл

@ -114,7 +114,7 @@ void
nsWrapperCache::CheckCCWrapperTraversal(void* aScriptObjectHolder,
nsScriptObjectTracer* aTracer)
{
JSObject* wrapper = GetWrapper();
JSObject* wrapper = GetWrapperPreserveColor();
if (!wrapper) {
return;
}

Просмотреть файл

@ -312,6 +312,7 @@ public:
return;
}
GetWrapper(); // Read barrier for incremental GC.
HoldJSObjects(aScriptObjectHolder, aTracer);
SetPreservingWrapper(true);
#ifdef DEBUG

Просмотреть файл

@ -35,6 +35,7 @@
#include "mozilla/PeerIdentity.h"
#include "mozilla/dom/BindingDeclarations.h"
#include "mozilla/dom/ContentChild.h"
#include "mozilla/dom/Element.h"
#include "mozilla/dom/File.h"
#include "mozilla/dom/MediaStreamBinding.h"
#include "mozilla/dom/MediaStreamTrackBinding.h"
@ -2130,6 +2131,35 @@ nsresult MediaManager::GenerateUUID(nsAString& aResult)
return NS_OK;
}
static bool IsFullyActive(nsPIDOMWindowInner* aWindow)
{
while (true) {
if (!aWindow) {
return false;
}
nsIDocument* document = aWindow->GetExtantDoc();
if (!document) {
return false;
}
if (!document->IsCurrentActiveDocument()) {
return false;
}
nsPIDOMWindowOuter* context = aWindow->GetOuterWindow();
if (!context) {
return false;
}
if (context->IsTopLevelWindow()) {
return true;
}
nsCOMPtr<Element> frameElement =
nsGlobalWindow::Cast(context)->GetRealFrameElementOuter();
if (!frameElement) {
return false;
}
aWindow = frameElement->OwnerDoc()->GetInnerWindow();
}
}
enum class GetUserMediaSecurityState {
Other = 0,
HTTPS = 1,
@ -2173,6 +2203,14 @@ MediaManager::GetUserMedia(nsPIDOMWindowInner* aWindow,
onFailure->OnError(error);
return NS_OK;
}
if (!IsFullyActive(aWindow)) {
RefPtr<MediaStreamError> error =
new MediaStreamError(aWindow, NS_LITERAL_STRING("InvalidStateError"));
onFailure->OnError(error);
return NS_OK;
}
if (sInShutdown) {
RefPtr<MediaStreamError> error =
new MediaStreamError(aWindow,

Просмотреть файл

@ -168,7 +168,7 @@ public:
bool IsDecoded() const { return !IsPlaceholder() && mProvider->IsFinished(); }
ImageKey GetImageKey() const { return mProvider->GetImageKey(); }
SurfaceKey GetSurfaceKey() const { return mProvider->GetSurfaceKey(); }
const SurfaceKey& GetSurfaceKey() const { return mProvider->GetSurfaceKey(); }
nsExpirationState* GetExpirationState() { return &mExpirationState; }
CostEntry GetCostEntry()

Просмотреть файл

@ -515,12 +515,12 @@ imgRequestProxy::CancelAndForgetObserver(nsresult aStatus)
LOG_SCOPE(gImgLog, "imgRequestProxy::CancelAndForgetObserver");
mCanceled = true;
mForceDispatchLoadGroup = true;
if (GetOwner()) {
GetOwner()->RemoveProxy(this, aStatus);
}
mForceDispatchLoadGroup = true;
RemoveFromLoadGroup();
mForceDispatchLoadGroup = false;

Просмотреть файл

@ -35,27 +35,7 @@ const DEFAULT_HEAPSIZE: u32 = 32_u32 * 1024_u32 * 1024_u32;
const STACK_QUOTA: usize = 128 * 8 * 1024;
// From Gecko:
// The JS engine permits us to set different stack limits for system code,
// trusted script, and untrusted script. We have tests that ensure that
// we can always execute 10 "heavy" (eval+with) stack frames deeper in
// privileged code. Our stack sizes vary greatly in different configurations,
// so satisfying those tests requires some care. Manual measurements of the
// number of heavy stack frames achievable gives us the following rough data,
// ordered by the effective categories in which they are grouped in the
// JS_SetNativeStackQuota call (which predates this analysis).
//
// (NB: These numbers may have drifted recently - see bug 938429)
// OSX 64-bit Debug: 7MB stack, 636 stack frames => ~11.3k per stack frame
// OSX64 Opt: 7MB stack, 2440 stack frames => ~3k per stack frame
//
// Linux 32-bit Debug: 2MB stack, 426 stack frames => ~4.8k per stack frame
// Linux 64-bit Debug: 4MB stack, 455 stack frames => ~9.0k per stack frame
//
// Windows (Opt+Debug): 900K stack, 235 stack frames => ~3.4k per stack frame
//
// Linux 32-bit Opt: 1MB stack, 272 stack frames => ~3.8k per stack frame
// Linux 64-bit Opt: 2MB stack, 316 stack frames => ~6.5k per stack frame
//
// (See js/xpconnect/src/XPCJSContext.cpp)
// We tune the trusted/untrusted quotas for each configuration to achieve our
// invariants while attempting to minimize overhead. In contrast, our buffer
// between system code and trusted script is a very unscientific 10k.

Просмотреть файл

@ -178,7 +178,7 @@ js::ExecuteRegExpLegacy(JSContext* cx, RegExpStatics* res, Handle<RegExpObject*>
static bool
CheckPatternSyntax(JSContext* cx, HandleAtom pattern, RegExpFlag flags)
{
CompileOptions options(cx);
CompileOptions options(cx, JSVERSION_DEFAULT);
frontend::TokenStream dummyTokenStream(cx, options, nullptr, 0, nullptr);
return irregexp::ParsePatternSyntax(dummyTokenStream, cx->tempLifoAlloc(), pattern,
flags & UnicodeFlag);

Просмотреть файл

@ -2872,7 +2872,7 @@ Parser<ParseHandler, CharT>::matchOrInsertSemicolon()
* tried to insert semicolon here
*
* Detect this situation and throw an understandable error. Otherwise
* we'd throw a confusing "missing ; before statement" error.
* we'd throw a confusing "unexpected token: (unexpected token)" error.
*/
if (!pc->isAsync() && tokenStream.currentToken().type == TOK_AWAIT) {
error(JSMSG_AWAIT_OUTSIDE_ASYNC);
@ -2885,7 +2885,7 @@ Parser<ParseHandler, CharT>::matchOrInsertSemicolon()
/* Advance the scanner for proper error location reporting. */
tokenStream.consumeKnownToken(tt, TokenStream::Operand);
error(JSMSG_SEMI_BEFORE_STMNT);
error(JSMSG_UNEXPECTED_TOKEN_NO_EXPECT, TokenKindToDesc(tt));
return false;
}
bool matched;
@ -9004,7 +9004,7 @@ Parser<ParseHandler, CharT>::checkLabelOrIdentifierReference(PropertyName* ident
return true;
if (TokenKindIsContextualKeyword(tt)) {
if (tt == TOK_YIELD) {
if (yieldHandling == YieldIsKeyword || versionNumber() >= JSVERSION_1_7) {
if (yieldHandling == YieldIsKeyword) {
errorAt(offset, JSMSG_RESERVED_ID, "yield");
return false;
}

Просмотреть файл

@ -42,10 +42,8 @@ reserved.forEach(ident => {
});
var strictIdentifiers = [
// XXX: see bug 1032150. Once fixed, please uncomment these values and
// remove the assertions below
//'yield',
//'let',
'yield',
'let',
'eval',
'arguments',
'implements',
@ -56,8 +54,6 @@ var strictIdentifiers = [
'public',
'static'
];
assertThrowsInstanceOf(() => new Function('[...yield] = []'), SyntaxError);
assertThrowsInstanceOf(() => new Function('"use strict"; [...let] = []'), SyntaxError);
strictIdentifiers.forEach(ident =>
assertThrowsInstanceOf(() =>

Просмотреть файл

@ -1,4 +1,4 @@
// |jit-test| error:SyntaxError
// |jit-test| error:ReferenceError
try {
eval("}");
} catch (exc) {}

Просмотреть файл

@ -2,30 +2,19 @@
load(libdir + "asserts.js");
// ES6 treating yield as an identifier except in ES6 generators introduces a
// syntax conflict with permissible JS >= 1.7 legacy generator syntax. Is
// |yield /a/g| inside a function an attempt to convert the function into a
// legacy generator, yielding a RegExp instance? Or does it instead read as
// |(yield / a) / g|? Similar ambiguities exist for different textual content
// in place of |a| -- |yield /x+17/g| or |(yield / x) + 17 / g|, and so on.
// (And, much less importantly, is |yield /a/g| a syntax error in global code
// as in JS >= 1.7, or is it |(yield / a) / g|.)
//
// For now, in JS >= 1.7, we preserve the old behavior. In all other JS we
// conform to ES6: |yield /a/g| is a YieldExpression inside an ES6 generator,
// and it's an IdentifierReference divided twice when not in an ES6 generator.
// This test will need changes if we change our JS >= 1.7 parsing to be
// ES6-compatible.
// Parses as IDENT(yield) DIV IDENT(abc) DIV IDENT(g).
eval(`function f1() { yield /abc/g; }`);
// TODO: fix yield in non-generator functions.
// Throws a ReferenceError because no global "yield" variable is defined.
var ex;
try {
eval(`function f1() { yield /abc/g; }`);
f1();
} catch(e) {
ex = e;
}
assertEq(ex.message.includes("reserved identifier"), true);
assertEq(ex instanceof ReferenceError, true);
// Parses as YIELD REGEXP(/abc/g).
function* f2() {
yield /abc/g;
}

Просмотреть файл

@ -1,2 +1 @@
// |jit-test| error: SyntaxError
function d([{ [yield]: {} } ]) f

Просмотреть файл

@ -320,7 +320,6 @@ MSG_DEF(JSMSG_SELFHOSTED_METHOD_CALL, 0, JSEXN_SYNTAXERR, "self-hosted code may
MSG_DEF(JSMSG_SELFHOSTED_UNBOUND_NAME, 0, JSEXN_TYPEERR, "self-hosted code may not contain unbound name lookups")
MSG_DEF(JSMSG_SEMI_AFTER_FOR_COND, 0, JSEXN_SYNTAXERR, "missing ; after for-loop condition")
MSG_DEF(JSMSG_SEMI_AFTER_FOR_INIT, 0, JSEXN_SYNTAXERR, "missing ; after for-loop initializer")
MSG_DEF(JSMSG_SEMI_BEFORE_STMNT, 0, JSEXN_SYNTAXERR, "missing ; before statement")
MSG_DEF(JSMSG_SOURCE_TOO_LONG, 0, JSEXN_RANGEERR, "source is too long")
MSG_DEF(JSMSG_STMT_AFTER_RETURN, 0, JSEXN_WARN, "unreachable code after return statement")
MSG_DEF(JSMSG_STRICT_CODE_WITH, 0, JSEXN_SYNTAXERR, "strict mode code may not contain 'with' statements")
@ -336,6 +335,7 @@ MSG_DEF(JSMSG_TOO_MANY_LOCALS, 0, JSEXN_SYNTAXERR, "too many local varia
MSG_DEF(JSMSG_TOO_MANY_YIELDS, 0, JSEXN_SYNTAXERR, "too many yield expressions")
MSG_DEF(JSMSG_TOUGH_BREAK, 0, JSEXN_SYNTAXERR, "unlabeled break must be inside loop or switch")
MSG_DEF(JSMSG_UNEXPECTED_TOKEN, 2, JSEXN_SYNTAXERR, "expected {0}, got {1}")
MSG_DEF(JSMSG_UNEXPECTED_TOKEN_NO_EXPECT, 1, JSEXN_SYNTAXERR, "unexpected token: {0}")
MSG_DEF(JSMSG_UNEXPECTED_PARAMLIST_END,0, JSEXN_SYNTAXERR, "unexpected end of function parameter list")
MSG_DEF(JSMSG_UNNAMED_CLASS_STMT, 0, JSEXN_SYNTAXERR, "class statement requires a name")
MSG_DEF(JSMSG_UNNAMED_FUNCTION_STMT, 0, JSEXN_SYNTAXERR, "function statement requires a name")

Просмотреть файл

@ -1836,6 +1836,46 @@ AC_LANG_C
MOZ_EXPAND_LIBS
dnl ========================================================
dnl =
dnl = Build depencency options
dnl =
dnl ========================================================
MOZ_ARG_HEADER(Build dependencies)
if test "$GNU_CC" -a "$GNU_CXX"; then
_DEPEND_CFLAGS='-MD -MP -MF $(MDDEPDIR)/$(@F).pp'
else
dnl Don't override this for MSVC
if test -z "$_WIN32_MSVC"; then
_USE_CPP_INCLUDE_FLAG=
_DEFINES_CFLAGS='$(ACDEFINES) -D_JS_CONFDEFS_H_ -DMOZILLA_CLIENT'
_DEFINES_CXXFLAGS='$(ACDEFINES) -D_JS_CONFDEFS_H_ -DMOZILLA_CLIENT'
else
echo '#include <stdio.h>' > dummy-hello.c
changequote(,)
dnl This output is localized, split at the first double space or colon and space.
_CL_PREFIX_REGEX="^\([^:]*:.*[ :] \)\(.*\\\stdio.h\)$"
CL_INCLUDES_PREFIX=`${CC} -showIncludes -c -Fonul dummy-hello.c 2>&1 | sed -ne 's/'"$_CL_PREFIX_REGEX"'/\1/p'`
_CL_STDIO_PATH=`${CC} -showIncludes -c -Fonul dummy-hello.c 2>&1 | sed -ne 's/'"$_CL_PREFIX_REGEX"'/\2/p'`
changequote([,])
if ! test -e "$_CL_STDIO_PATH"; then
AC_MSG_ERROR([Unable to parse cl -showIncludes prefix. This compiler's locale has an unsupported formatting.])
fi
if test -z "$CL_INCLUDES_PREFIX"; then
AC_MSG_ERROR([Cannot find cl -showIncludes prefix.])
fi
AC_SUBST(CL_INCLUDES_PREFIX)
rm -f dummy-hello.c
dnl Make sure that the build system can handle non-ASCII characters
dnl in environment variables to prevent it from breaking silently on
dnl non-English systems.
NONASCII=$'\241\241'
AC_SUBST(NONASCII)
fi
fi
dnl ========================================================
dnl = Link js shell to system readline
dnl ========================================================
@ -1970,6 +2010,7 @@ HOST_CFLAGS=`echo \
HOST_CXXFLAGS=`echo \
$HOST_CXXFLAGS`
AC_SUBST(_DEPEND_CFLAGS)
AC_SUBST(MOZ_SYSTEM_NSPR)
OS_CFLAGS="$CFLAGS"

Просмотреть файл

@ -91,7 +91,7 @@ function test()
var x = 1;
var y = 1;
code = '(x\n)-- y';
expect = 'SyntaxError: missing ; before statement';
expect = 'SyntaxError: unexpected token: identifier';
try
{
@ -105,7 +105,7 @@ function test()
reportCompare(expect, actual, summary + ': ' + code);
code = '(x)-- y';
expect = 'SyntaxError: missing ; before statement';
expect = 'SyntaxError: unexpected token: identifier';
try
{

Просмотреть файл

@ -19,7 +19,7 @@ function test()
printBugNumber(BUGNUMBER);
printStatus (summary);
expect = 'SyntaxError: missing ; before statement';
expect = 'SyntaxError: unexpected token: identifier';
var s = 'var x = function f() { \n return 42; } print(x);';

Просмотреть файл

@ -16,7 +16,7 @@ test();
try
{
expect = "SyntaxError";
expect = "No Error";
eval('yield = 1;');
actual = 'No Error';
}
@ -28,7 +28,7 @@ reportCompare(expect, actual, summary + ': global: yield = 1');
try
{
expect = "SyntaxError";
expect = "No Error";
eval('(function(){yield = 1;})');
actual = 'No Error';
}
@ -57,7 +57,7 @@ function test()
try
{
expect = "SyntaxError";
expect = "No Error";
eval('function f(yield, let) { return yield+let; }');
actual = 'No Error';
}
@ -70,7 +70,7 @@ function test()
try
{
expect = "SyntaxError";
expect = "No Error";
eval('var yield = 1;');
actual = 'No Error';
}

Просмотреть файл

@ -19,7 +19,7 @@ function test()
printBugNumber(BUGNUMBER);
printStatus (summary);
expect = 'SyntaxError: missing ; before statement';
expect = 'SyntaxError: unexpected token: identifier';
try
{
eval('(function() { if(t) function x() foo() bar(); })');

Просмотреть файл

@ -1034,7 +1034,7 @@ LexicalEnvironmentObject::clone(JSContext* cx, Handle<LexicalEnvironmentObject*>
{
Rooted<LexicalScope*> scope(cx, &env->scope());
RootedObject enclosing(cx, &env->enclosingEnvironment());
Rooted<LexicalEnvironmentObject*> copy(cx, create(cx, scope, enclosing, gc::TenuredHeap));
Rooted<LexicalEnvironmentObject*> copy(cx, create(cx, scope, enclosing, gc::DefaultHeap));
if (!copy)
return nullptr;
@ -1052,7 +1052,7 @@ LexicalEnvironmentObject::recreate(JSContext* cx, Handle<LexicalEnvironmentObjec
{
Rooted<LexicalScope*> scope(cx, &env->scope());
RootedObject enclosing(cx, &env->enclosingEnvironment());
return create(cx, scope, enclosing, gc::TenuredHeap);
return create(cx, scope, enclosing, gc::DefaultHeap);
}
bool

Просмотреть файл

@ -242,7 +242,7 @@ RegExpObject::create(JSContext* cx, HandleAtom source, RegExpFlag flags,
{
Maybe<CompileOptions> dummyOptions;
if (!tokenStream && !options) {
dummyOptions.emplace(cx);
dummyOptions.emplace(cx, JSVERSION_DEFAULT);
options = dummyOptions.ptr();
}
Maybe<TokenStream> dummyTokenStream;
@ -987,7 +987,7 @@ RegExpShared::compile(JSContext* cx, MutableHandleRegExpShared re, HandleAtom pa
if (!re->ignoreCase() && !StringHasRegExpMetaChars(pattern))
re->canStringMatch = true;
CompileOptions options(cx);
CompileOptions options(cx, JSVERSION_DEFAULT);
frontend::TokenStream dummyTokenStream(cx, options, nullptr, 0, nullptr);
LifoAllocScope scope(&cx->tempLifoAlloc());

Просмотреть файл

@ -65,6 +65,12 @@
#include "ExpandedPrincipal.h"
#include "SystemPrincipal.h"
#if defined(XP_LINUX) && !defined(ANDROID)
// For getrlimit and min/max.
#include <algorithm>
#include <sys/resource.h>
#endif
#ifdef XP_WIN
#include <windows.h>
#endif
@ -1018,17 +1024,26 @@ XPCJSContext::Initialize(XPCJSContext* aPrimaryContext)
// ordered by the effective categories in which they are grouped in the
// JS_SetNativeStackQuota call (which predates this analysis).
//
// (NB: These numbers may have drifted recently - see bug 938429)
// OSX 64-bit Debug: 7MB stack, 636 stack frames => ~11.3k per stack frame
// OSX64 Opt: 7MB stack, 2440 stack frames => ~3k per stack frame
// The following "Stack Frames" numbers come from `chromeLimit` in
// js/xpconnect/tests/chrome/test_bug732665.xul
//
// Linux 32-bit Debug: 2MB stack, 426 stack frames => ~4.8k per stack frame
// Linux 64-bit Debug: 4MB stack, 455 stack frames => ~9.0k per stack frame
//
// Windows (Opt+Debug): 900K stack, 235 stack frames => ~3.4k per stack frame
//
// Linux 32-bit Opt: 1MB stack, 272 stack frames => ~3.8k per stack frame
// Linux 64-bit Opt: 2MB stack, 316 stack frames => ~6.5k per stack frame
// Platform | Build | Stack Quota | Stack Frames | Stack Frame Size
// ------------+-------+-------------+--------------+------------------
// OSX 64 | Opt | 7MB | 1331 | ~5.4k
// OSX 64 | Debug | 7MB | 1202 | ~6.0k
// ------------+-------+-------------+--------------+------------------
// Linux 32 | Opt | 7.875MB | 2513 | ~3.2k
// Linux 32 | Debug | 7.875MB | 2146 | ~3.8k
// ------------+-------+-------------+--------------+------------------
// Linux 64 | Opt | 7.875MB | 1360 | ~5.9k
// Linux 64 | Debug | 7.875MB | 1180 | ~6.8k
// Linux 64 | ASan | 7.875MB | 473 | ~17.0k
// ------------+-------+-------------+--------------+------------------
// Windows 32 | Opt | 984k | 188 | ~5.2k
// Windows 32 | Debug | 984k | 208 | ~4.7k
// ------------+-------+-------------+--------------+------------------
// Windows 64 | Opt | 1.922MB | 189 | ~10.4k
// Windows 64 | Debug | 1.922MB | 175 | ~11.2k
//
// We tune the trusted/untrusted quotas for each configuration to achieve our
// invariants while attempting to minimize overhead. In contrast, our buffer
@ -1049,6 +1064,35 @@ XPCJSContext::Initialize(XPCJSContext* aPrimaryContext)
// and give trusted script 180k extra. The stack is huge on mac anyway.
const size_t kStackQuota = 7 * 1024 * 1024;
const size_t kTrustedScriptBuffer = 180 * 1024;
#elif defined(XP_LINUX) && !defined(ANDROID)
// Most Linux distributions set default stack size to 8MB. Use it as the
// maximum value.
const size_t kStackQuotaMax = 8 * 1024 * 1024;
# if defined(MOZ_ASAN) || defined(DEBUG)
// Bug 803182: account for the 4x difference in the size of js::Interpret
// between optimized and debug builds. We use 2x since the JIT part
// doesn't increase much.
// See the standalone MOZ_ASAN branch below for the ASan case.
const size_t kStackQuotaMin = 2 * kDefaultStackQuota;
# else
const size_t kStackQuotaMin = kDefaultStackQuota;
# endif
// Allocate 128kB margin for the safe space.
const size_t kStackSafeMargin = 128 * 1024;
struct rlimit rlim;
const size_t kStackQuota =
getrlimit(RLIMIT_STACK, &rlim) == 0
? std::max(std::min(size_t(rlim.rlim_cur - kStackSafeMargin),
kStackQuotaMax - kStackSafeMargin),
kStackQuotaMin)
: kStackQuotaMin;
# if defined(MOZ_ASAN)
// See the standalone MOZ_ASAN branch below for the ASan case.
const size_t kTrustedScriptBuffer = 450 * 1024;
# else
const size_t kTrustedScriptBuffer = 180 * 1024;
# endif
#elif defined(MOZ_ASAN)
// ASan requires more stack space due to red-zones, so give it double the
// default (1MB on 32-bit, 2MB on 64-bit). ASAN stack frame measurements
@ -1056,30 +1100,33 @@ XPCJSContext::Initialize(XPCJSContext* aPrimaryContext)
// ASAN builds have roughly thrice the stack overhead as normal builds.
// On normal builds, the largest stack frame size we might encounter is
// 9.0k (see above), so let's use a buffer of 9.0 * 5 * 10 = 450k.
//
// FIXME: Does this branch make sense for Windows and Android?
// (See bug 1415195)
const size_t kStackQuota = 2 * kDefaultStackQuota;
const size_t kTrustedScriptBuffer = 450 * 1024;
#elif defined(XP_WIN)
// 1MB is the default stack size on Windows. We use the /STACK linker flag
// to request a larger stack, so we determine the stack size at runtime.
// 1MB is the default stack size on Windows. We use the -STACK linker flag
// (see WIN32_EXE_LDFLAGS in config/config.mk) to request a larger stack,
// so we determine the stack size at runtime.
const size_t kStackQuota = GetWindowsStackSize();
const size_t kTrustedScriptBuffer = (sizeof(size_t) == 8) ? 180 * 1024 //win64
: 120 * 1024; //win32
// The following two configurations are linux-only. Given the numbers above,
// we use 50k and 100k trusted buffers on 32-bit and 64-bit respectively.
#elif defined(ANDROID)
// Android appears to have 1MB stacks. Allow the use of 3/4 of that size
// (768KB on 32-bit), since otherwise we can crash with a stack overflow
// when nearing the 1MB limit.
const size_t kStackQuota = kDefaultStackQuota + kDefaultStackQuota / 2;
const size_t kTrustedScriptBuffer = sizeof(size_t) * 12800;
#elif defined(DEBUG)
// Bug 803182: account for the 4x difference in the size of js::Interpret
// between optimized and debug builds.
// XXXbholley - Then why do we only account for 2x of difference?
const size_t kStackQuota = 2 * kDefaultStackQuota;
const size_t kTrustedScriptBuffer = sizeof(size_t) * 12800;
#else
// Catch-all configuration for other environments.
# if defined(DEBUG)
const size_t kStackQuota = 2 * kDefaultStackQuota;
# else
const size_t kStackQuota = kDefaultStackQuota;
# endif
// Given the numbers above, we use 50k and 100k trusted buffers on 32-bit
// and 64-bit respectively.
const size_t kTrustedScriptBuffer = sizeof(size_t) * 12800;
#endif

Просмотреть файл

@ -119,6 +119,8 @@ Http2Session::Http2Session(nsISocketTransport *aSocketTransport, uint32_t versio
, mAttemptingEarlyData(attemptingEarlyData)
, mOriginFrameActivated(false)
, mTlsHandshakeFinished(false)
, mFlushOKAddStream(false)
, mFlushOKReadSegments(false)
{
MOZ_ASSERT(OnSocketThread(), "not on socket thread");
@ -384,6 +386,13 @@ Http2Session::AddStream(nsAHttpTransaction *aHttpTransaction,
{
MOZ_ASSERT(OnSocketThread(), "not on socket thread");
MOZ_DIAGNOSTIC_ASSERT(!mFlushOKAddStream);
mFlushOKAddStream = true;
auto cleanup = MakeScopeExit([&] () {
MOZ_DIAGNOSTIC_ASSERT(mFlushOKAddStream);
mFlushOKAddStream = false;
});
// integrity check
if (mStreamTransactionHash.Get(aHttpTransaction)) {
LOG3((" New transaction already present\n"));
@ -542,6 +551,24 @@ Http2Session::RealignOutputQueue()
mOutputQueueSent = 0;
}
void
Http2Session::MaybeFlushOutputQueue()
{
// Only try to flush the output queue if we know any mSegmentReader that's set
// is properly set through the right channels. Otherwise, just set our write
// callbacks so the connection can call in with a proper segment reader that
// we'll be sure we can write to.
// See bug 1402014 comment 6
MOZ_ASSERT(OnSocketThread(), "not on socket thread");
LOG3(("Http2Session::MaybeFlushOutputQueue mFlushOKAddStream=%d, "
"mFlushOKReadSegments=%d", mFlushOKAddStream, mFlushOKReadSegments));
if (mFlushOKAddStream || mFlushOKReadSegments) {
FlushOutputQueue();
} else {
SetWriteCallbacks();
}
}
void
Http2Session::FlushOutputQueue()
{
@ -794,7 +821,7 @@ Http2Session::GeneratePing(bool isAck)
}
LogIO(this, nullptr, "Generate Ping", packet, kFrameHeaderBytes + 8);
FlushOutputQueue();
MaybeFlushOutputQueue();
}
void
@ -808,7 +835,7 @@ Http2Session::GenerateSettingsAck()
mOutputQueueUsed += kFrameHeaderBytes;
CreateFrameHeader(packet, 0, FRAME_TYPE_SETTINGS, kFlag_ACK, 0);
LogIO(this, nullptr, "Generate Settings ACK", packet, kFrameHeaderBytes);
FlushOutputQueue();
MaybeFlushOutputQueue();
}
void
@ -821,7 +848,7 @@ Http2Session::GeneratePriority(uint32_t aID, uint8_t aPriorityWeight)
char *packet = CreatePriorityFrame(aID, 0, aPriorityWeight);
LogIO(this, nullptr, "Generate Priority", packet, kFrameHeaderBytes + 5);
FlushOutputQueue();
MaybeFlushOutputQueue();
}
void
@ -848,7 +875,7 @@ Http2Session::GenerateRstStream(uint32_t aStatusCode, uint32_t aID)
NetworkEndian::writeUint32(packet + kFrameHeaderBytes, aStatusCode);
LogIO(this, nullptr, "Generate Reset", packet, frameSize);
FlushOutputQueue();
MaybeFlushOutputQueue();
}
void
@ -871,7 +898,7 @@ Http2Session::GenerateGoAway(uint32_t aStatusCode)
NetworkEndian::writeUint32(packet + frameSize - 4, aStatusCode);
LogIO(this, nullptr, "Generate GoAway", packet, frameSize);
FlushOutputQueue();
MaybeFlushOutputQueue();
}
// The Hello is comprised of
@ -993,7 +1020,7 @@ Http2Session::SendHello()
// Http2Session::OnTransportStatus. Yeah, that's right. YOU!
}
FlushOutputQueue();
MaybeFlushOutputQueue();
}
void
@ -1008,7 +1035,7 @@ Http2Session::SendPriorityFrame(uint32_t streamID,
char *packet = CreatePriorityFrame(streamID, dependsOn, weight);
LogIO(this, nullptr, "SendPriorityFrame", packet, kFrameHeaderBytes + 5);
FlushOutputQueue();
MaybeFlushOutputQueue();
}
char *
@ -2745,6 +2772,13 @@ Http2Session::ReadSegmentsAgain(nsAHttpSegmentReader *reader,
MOZ_ASSERT(!mSegmentReader || !reader || (mSegmentReader == reader),
"Inconsistent Write Function Callback");
MOZ_DIAGNOSTIC_ASSERT(!mFlushOKReadSegments);
mFlushOKReadSegments = true;
auto cleanup = MakeScopeExit([&] () {
MOZ_DIAGNOSTIC_ASSERT(mFlushOKReadSegments);
mFlushOKReadSegments = false;
});
nsresult rv = ConfirmTLSProfile();
if (NS_FAILED(rv)) {
if (mGoAwayReason == INADEQUATE_SECURITY) {
@ -2755,8 +2789,9 @@ Http2Session::ReadSegmentsAgain(nsAHttpSegmentReader *reader,
return rv;
}
if (reader)
mSegmentReader = reader;
if (reader) {
SetSegmentReader(reader);
}
*countRead = 0;
@ -2767,7 +2802,7 @@ Http2Session::ReadSegmentsAgain(nsAHttpSegmentReader *reader,
LOG3(("Http2Session %p could not identify a stream to write; suspending.",
this));
uint32_t availBeforeFlush = mOutputQueueUsed - mOutputQueueSent;
FlushOutputQueue();
MaybeFlushOutputQueue();
uint32_t availAfterFlush = mOutputQueueUsed - mOutputQueueSent;
if (availBeforeFlush != availAfterFlush) {
LOG3(("Http2Session %p ResumeRecv After early flush in ReadSegments", this));
@ -2786,7 +2821,7 @@ Http2Session::ReadSegmentsAgain(nsAHttpSegmentReader *reader,
if (!stream->Do0RTT()) {
LOG3(("Http2Session %p will not get early data from Http2Stream %p 0x%X",
this, stream, stream->StreamID()));
FlushOutputQueue();
MaybeFlushOutputQueue();
SetWriteCallbacks();
if (!mCannotDo0RTTStreams.Contains(stream)) {
mCannotDo0RTTStreams.AppendElement(stream);
@ -2828,7 +2863,7 @@ Http2Session::ReadSegmentsAgain(nsAHttpSegmentReader *reader,
// tries to flush the output queue) - SENDING_FIN_STREAM can be an example
// of that. But we might still have old data buffered that would be good
// to flush.
FlushOutputQueue();
MaybeFlushOutputQueue();
// Allow new server reads - that might be data or control information
// (e.g. window updates or http replies) that are responses to these writes
@ -3639,7 +3674,7 @@ Http2Session::UpdateLocalRwin(Http2Stream *stream, uint32_t bytes)
UpdateLocalStreamWindow(stream, bytes);
UpdateLocalSessionWindow(bytes);
FlushOutputQueue();
MaybeFlushOutputQueue();
}
void
@ -3728,7 +3763,7 @@ Http2Session::OnReadSegment(const char *buf,
// If we can release old queued data then we can try and write the new
// data directly to the network without using the output queue at all
if (mOutputQueueUsed)
FlushOutputQueue();
MaybeFlushOutputQueue();
if (!mOutputQueueUsed && mSegmentReader) {
// try and write directly without output queue
@ -3770,7 +3805,7 @@ Http2Session::OnReadSegment(const char *buf,
mOutputQueueUsed += count;
*countRead = count;
FlushOutputQueue();
MaybeFlushOutputQueue();
return NS_OK;
}
@ -3779,7 +3814,7 @@ nsresult
Http2Session::CommitToSegmentSize(uint32_t count, bool forceCommitment)
{
if (mOutputQueueUsed && !mAttemptingEarlyData)
FlushOutputQueue();
MaybeFlushOutputQueue();
// would there be enough room to buffer this if needed?
if ((mOutputQueueUsed + count) <= (mOutputQueueSize - kQueueReserved))
@ -4556,5 +4591,18 @@ Http2Session::TopLevelOuterContentWindowIdChanged(uint64_t windowId)
}
}
void
Http2Session::SetSegmentReader(nsAHttpSegmentReader *reader)
{
LOG3(("Http2Session::SetSegmentReader this=%p mClosed=%d mSegmentReader=%p reader=%p",
this, mClosed, mSegmentReader, reader));
MOZ_DIAGNOSTIC_ASSERT(!mSegmentReader || reader == mSegmentReader);
if (mClosed) {
mSegmentReader = nullptr;
} else {
mSegmentReader = reader;
}
}
} // namespace net
} // namespace mozilla

Просмотреть файл

@ -220,7 +220,7 @@ public:
virtual MOZ_MUST_USE nsresult CommitToSegmentSize(uint32_t size,
bool forceCommitment) override;
MOZ_MUST_USE nsresult BufferOutput(const char *, uint32_t, uint32_t *);
void FlushOutputQueue();
void MaybeFlushOutputQueue();
uint32_t AmountOfOutputBuffered() { return mOutputQueueUsed - mOutputQueueSent; }
uint32_t GetServerInitialStreamWindow() { return mServerInitialStreamWindow; }
@ -563,6 +563,12 @@ private:
// We should propagate this events to the first nsHttpTransaction.
RefPtr<nsHttpTransaction> mFirstHttpTransaction;
bool mTlsHandshakeFinished;
void SetSegmentReader(nsAHttpSegmentReader *);
void FlushOutputQueue();
bool mFlushOKAddStream;
bool mFlushOKReadSegments;
private:
/// connect tunnels
void DispatchOnTunnel(nsAHttpTransaction *, nsIInterfaceRequestor *);

Просмотреть файл

@ -958,7 +958,7 @@ Http2Stream::TransmitFrame(const char *buf,
}
if (!mAttempting0RTT) {
mSession->FlushOutputQueue();
mSession->MaybeFlushOutputQueue();
}
// calling this will trigger waiting_for if mRequestBodyLenRemaining is 0

Просмотреть файл

@ -4124,6 +4124,48 @@ if test "$COMPILE_ENVIRONMENT"; then
MOZ_EXPAND_LIBS
fi # COMPILE_ENVIRONMENT
dnl ========================================================
dnl =
dnl = Build depencency options
dnl =
dnl ========================================================
MOZ_ARG_HEADER(Build dependencies)
if test "$COMPILE_ENVIRONMENT"; then
if test "$GNU_CC" -a "$GNU_CXX"; then
_DEPEND_CFLAGS='-MD -MP -MF $(MDDEPDIR)/$(@F).pp'
else
dnl Don't override this for MSVC
if test -z "$_WIN32_MSVC"; then
_USE_CPP_INCLUDE_FLAG=
_DEFINES_CFLAGS='$(ACDEFINES) -D_MOZILLA_CONFIG_H_ -DMOZILLA_CLIENT'
_DEFINES_CXXFLAGS='$(ACDEFINES) -D_MOZILLA_CONFIG_H_ -DMOZILLA_CLIENT'
else
echo '#include <stdio.h>' > dummy-hello.c
changequote(,)
dnl This output is localized, split at the first double space or colon and space.
_CL_PREFIX_REGEX="^\([^:]*:.*[ :] \)\(.*\\\stdio.h\)$"
CL_INCLUDES_PREFIX=`${CC} -showIncludes -c -Fonul dummy-hello.c 2>&1 | sed -ne 's/'"$_CL_PREFIX_REGEX"'/\1/p'`
_CL_STDIO_PATH=`${CC} -showIncludes -c -Fonul dummy-hello.c 2>&1 | sed -ne 's/'"$_CL_PREFIX_REGEX"'/\2/p'`
changequote([,])
if ! test -e "$_CL_STDIO_PATH"; then
AC_MSG_ERROR([Unable to parse cl -showIncludes prefix. This compiler's locale has an unsupported formatting.])
fi
if test -z "$CL_INCLUDES_PREFIX"; then
AC_MSG_ERROR([Cannot find cl -showIncludes prefix.])
fi
AC_SUBST(CL_INCLUDES_PREFIX)
rm -f dummy-hello.c
dnl Make sure that the build system can handle non-ASCII characters
dnl in environment variables to prevent it from breaking silently on
dnl non-English systems.
NONASCII=$'\241\241'
AC_SUBST(NONASCII)
fi
fi
fi # COMPILE_ENVIRONMENT
dnl ========================================================
dnl =
dnl = Static Build Options
@ -4733,6 +4775,7 @@ HOST_CFLAGS=`echo \
HOST_CXXFLAGS=`echo \
$HOST_CXXFLAGS`
AC_SUBST(_DEPEND_CFLAGS)
AC_SUBST(MOZ_SYSTEM_JPEG)
AC_SUBST(MOZ_SYSTEM_PNG)
AC_SUBST(MOZ_SYSTEM_BZ2)

Просмотреть файл

@ -1158,4 +1158,4 @@ static const TransportSecurityPreload kPublicKeyPinningPreloadList[] = {
static const int32_t kUnknownId = -1;
static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1518464018329000);
static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1518550779219000);

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -8,7 +8,7 @@
/*****************************************************************************/
#include <stdint.h>
const PRTime gPreloadListExpirationTime = INT64_C(1520883205571000);
const PRTime gPreloadListExpirationTime = INT64_C(1520969963113000);
%%
0-1.party, 1
0.me.uk, 1
@ -126,9 +126,7 @@ const PRTime gPreloadListExpirationTime = INT64_C(1520883205571000);
13318522.com, 1
1359826938.rsc.cdn77.org, 1
13826145000.com, 1
1391kj.com, 1
1395kj.com, 1
1396.cc, 1
1453914078.rsc.cdn77.org, 1
1464424382.rsc.cdn77.org, 1
14it.de, 1
@ -221,7 +219,6 @@ const PRTime gPreloadListExpirationTime = INT64_C(1520883205571000);
24ip.fr, 1
24kbet.com, 1
256k.me, 1
256pages.com, 1
25reinyan25.net, 1
2600edinburgh.org, 1
2600hq.com, 1
@ -284,7 +281,6 @@ const PRTime gPreloadListExpirationTime = INT64_C(1520883205571000);
38blog.com, 1
393335.ml, 1
398.info, 1
3ags.de, 1
3bakayottu.com, 1
3bigking.com, 1
3c-d.de, 1
@ -644,6 +640,7 @@ accounts.firefox.com, 1
accounts.google.com, 1
accudraftpaintbooths.com, 1
accwing.com, 1
aceadvisory.biz, 1
acecerts.co.uk, 1
acecolleges.edu.au, 1
aceinflatables.com, 1
@ -959,6 +956,7 @@ agileui.com, 1
agiley.se, 1
agilob.net, 1
aging.gov, 1
agingstop.net, 1
agotnes.com, 1
agouraelectrical.com, 1
agourahillselectrical.com, 1
@ -2496,7 +2494,6 @@ azabani.com, 1
azamra.com, 1
azia.info, 1
azimut.fr, 1
azirevpn.com, 1
azlk-team.ru, 1
azlo.com, 1
azort.com, 1
@ -2799,6 +2796,7 @@ bazos.cz, 1
bazos.sk, 1
bazziergraphik.com, 1
bb37roma.it, 1
bbb1991.me, 1
bbcastles.com, 1
bbdos.ru, 1
bbgeschenke.ch, 1
@ -2924,6 +2922,7 @@ begbie.com, 1
beginner.nl, 1
behamzdarma.cz, 1
behoerden-online-dienste.de, 1
beichtgenerator.de, 0
beijing.dating, 1
beijinglug.club, 1
beinad.com, 1
@ -3095,7 +3094,6 @@ besthotsales.com, 1
bestlashesandbrows.com, 1
bestlashesandbrows.hu, 1
bestleftwild.com, 1
bestmodels.su, 1
bestmotherfucking.website, 1
bestoliveoils.com, 1
bestpartyhire.com, 1
@ -3213,7 +3211,6 @@ bibliotekarien.se, 1
biboumail.fr, 1
bibuch.com, 1
bicha.net, 1
bichines.es, 1
bichonfrise.com.br, 1
bichonmaltes.com.br, 1
bicranial.io, 1
@ -3835,7 +3832,6 @@ bouah.net, 1
bouchard-mathieux.com, 1
bouchonville-knifemaker.com, 1
bouckaert-usedcars.be, 1
boudah.pl, 1
boueki.jp, 1
boueki.org, 1
bougeret.fr, 1
@ -5121,6 +5117,7 @@ chatbelgie.eu, 1
chatbots.email, 1
chatbots.systems, 1
chatear.social, 1
chateau-belvoir.com, 1
chateau-de-lisle.fr, 1
chateaudestrainchamps.com, 1
chatfacile.org, 1
@ -5432,6 +5429,7 @@ cinq-elements.net, 1
cinsects.de, 1
cinteo.com, 1
cinto.cc, 1
cio.gov, 1
cioscloud.com, 1
cip.md, 1
cipartyhire.co.uk, 1
@ -5616,6 +5614,7 @@ cloudflareonazure.com, 1
cloudia.org, 1
cloudily.com, 1
cloudimproved.com, 1
cloudimprovedtest.com, 1
cloudkit.pro, 1
cloudlight.biz, 1
cloudmigrator365.com, 1
@ -6137,7 +6136,7 @@ cordeydesign.ch, 1
cordlessdog.com, 1
core-concepts.de, 1
core-networks.de, 1
core.org.pt, 1
core.org.pt, 0
coreapm.com, 1
coreapm.org, 1
corecdn.org, 1
@ -6755,6 +6754,7 @@ dallaslu.com, 1
dallinbryce.com, 1
dallmeier.net, 1
dalmatiersheusden.be, 1
daltonedwards.me, 1
dam74.com.ar, 1
damaged.org, 1
damasexpress.com, 1
@ -6838,7 +6838,6 @@ darc-mak.de, 1
darchoods.net, 0
darcymarshall.com, 1
daren.com.br, 1
dareyou.be, 1
darinkotter.com, 1
darioackermann.ch, 1
dariosirangelo.me, 1
@ -7484,10 +7483,10 @@ dicionariodelatim.com.br, 1
dicionariodenomesproprios.com.br, 1
dicionariodesimbolos.com.br, 1
dicionarioetimologico.com.br, 1
dicionariopopular.com, 1
dick.red, 1
dickieslife.com, 1
dickpics.ru, 1
dicoding.com, 1
didacte.com, 1
didche.net, 1
diddens.de, 1
@ -8537,6 +8536,7 @@ edyou.eu, 1
edzilla.info, 1
ee-terminals.com, 1
eeb98.com, 1
eeetrust.org, 1
eellak.gr, 1
eelsden.net, 1
eelzak.nl, 1
@ -8756,7 +8756,6 @@ ellisamusements.co.uk, 1
ellisleisure.co.uk, 1
ellsinger.me, 1
elmermx.ch, 1
elna-service.com.ua, 1
elnan.do, 1
elodieclerc.ch, 1
eloge.se, 1
@ -9483,9 +9482,11 @@ exporta.cz, 1
expoundite.net, 1
expowerhps.com, 1
express-shina.ru, 1
express-vpn.com, 1
expressemotion.net, 1
expresshosting.org, 1
expressmarket.ru, 1
expressvpn.com, 1
expresswins.co.uk, 1
expxkcd.com, 1
exs.lv, 1
@ -9615,6 +9616,7 @@ fairedeseconomies.info, 1
fairplay.im, 1
fairviewmotel-simcoe.com, 1
faithgrowth.com, 1
faithmissionaries.com, 1
faithwatch.org, 1
faixaazul.com, 1
faizan.net, 1
@ -9673,7 +9675,6 @@ fantasticcleaners.com.au, 1
fantastichandymanmelbourne.com.au, 1
fantasticpestcontrolmelbourne.com.au, 1
fantasycastles.co.uk, 1
fantasyescortsbirmingham.co.uk, 1
fantasypartyhire.com.au, 1
fantasyspectrum.com, 1
fantopia.club, 1
@ -10276,7 +10277,6 @@ fondationwiggli.ch, 1
fondy.eu, 1
fondy.ru, 1
fondy.ua, 1
foneo.com, 1
fonga.ch, 1
fonolo.com, 1
fonseguin.ca, 1
@ -10818,6 +10818,7 @@ g-m-w.eu, 1
g-marketing.ro, 1
g-o.pl, 1
g-rom.net, 1
g01.in.ua, 1
g1.ie, 1
g10e.ch, 1
g1jeu.com, 1
@ -10927,6 +10928,7 @@ gandgliquors.com, 1
ganhonet.com.br, 1
gapdirect.com, 1
gapfa.org, 1
gar-nich.net, 1
garage-door.pro, 1
garage-leone.com, 1
garage-meynard.com, 1
@ -11260,6 +11262,7 @@ ghcif.de, 1
ghi.gov, 1
ghislainphu.fr, 1
ghostblog.info, 1
ghrelinblocker.info, 1
ghrelinblocker.org, 1
ghuntley.com, 1
giacomodrago.com, 1
@ -11396,6 +11399,7 @@ globalnomadvintage.com, 1
globalonetechnology.com, 1
globalperspectivescanada.com, 1
globalprojetores.com.br, 1
globalresistancecorporation.com, 1
globaltennis.ca, 1
globalventil.com, 1
globalvisions-events.ch, 1
@ -11851,6 +11855,7 @@ guineapigmustach.es, 1
gulenbase.no, 1
gulfstream.ru, 1
gulleyperformancecenter.com, 1
gulshankumar.net, 1
gume4you.com, 1
gumi.ca, 1
gummibande.noip.me, 1
@ -12026,7 +12031,6 @@ hamu.blue, 1
hana.ondemand.com, 1
hanakaraku.com, 1
hanashi.eu, 1
hancatemc.com, 1
handcraft.eu.org, 1
handgelenkbandage-test.de, 1
handlecoin.com, 1
@ -12606,6 +12610,7 @@ hmoegirl.com, 1
hms-waldmann.de, 1
hmsseahawk.com, 1
hn.search.yahoo.com, 0
hobaugh.social, 1
hobby-drechselei.de, 1
hobby-gamerz-community.de, 1
hobbyspeed.com, 1
@ -13087,6 +13092,8 @@ ibpsrecruitment.co.in, 1
ibrainmedicine.org, 1
ibrom.eu, 1
ibron.co, 0
ibsafrica.co.za, 1
ibsglobal.co.za, 1
ic-lighting.com.au, 1
ic3.gov, 1
icafecash.com, 1
@ -13204,6 +13211,7 @@ ifcfg.me, 1
ifconfig.co, 1
ifelse.io, 1
ifengge.cn, 1
ifengge.me, 1
ifightsurveillance.com, 1
ifightsurveillance.net, 1
ifightsurveillance.org, 1
@ -13491,6 +13499,7 @@ inexlog.fr, 1
inexpensivecomputers.net, 1
inficom.org, 1
infinether.net, 1
infinitegroup.info, 1
infinitiofallentownparts.com, 1
infinitiofaugustaparts.com, 1
infinitioflynnwoodparts.com, 1
@ -13587,6 +13596,7 @@ innovaptor.at, 1
innovaptor.com, 1
innovation-workshop.ro, 1
innovation.gov, 0
innovativebuildingsolutions.co.za, 1
innoventure.de, 1
innsalzachsingles.de, 1
innwan.com, 1
@ -15131,6 +15141,7 @@ keaysmillwork.com, 1
keb.com.au, 1
keb.net.au, 1
kedarastudios.com, 1
kedibizworx.com, 1
keechain.io, 1
keeleysam.com, 1
keepa.com, 1
@ -15404,7 +15415,7 @@ kitchenpunx.com, 0
kiteadventure.nl, 1
kitegarage.eu, 1
kiteschoolamsterdam.nl, 1
kiteschooledam.nl, 0
kiteschooledam.nl, 1
kiteschoolijmuiden.nl, 1
kiteschoolkatwijk.nl, 1
kiteschoolnoordwijk.nl, 1
@ -15420,9 +15431,7 @@ kiwipayment.com, 1
kiwipayments.com, 1
kiwiplace.com, 1
kj-prince.com, 1
kj1391.com, 1
kj1396.net, 1
kj1397.com, 1
kjaer.io, 1
kjarni.cc, 1
kjarrval.is, 1
@ -15432,7 +15441,7 @@ kjellvn.net, 1
kjoglum.me, 1
kk-neudorf-duissern.de, 0
kkaefer.com, 1
kkaufmann.de, 0
kkaufmann.de, 1
kki.org, 1
kkovacs.eu, 1
kks-karlstadt.de, 1
@ -16033,6 +16042,7 @@ largescaleforums.com, 1
largeviewer.com, 1
lariscus.eu, 1
larptreff.de, 1
larraz.es, 1
larrysalibra.com, 1
lars-ewald.com, 1
lars-mense.de, 1
@ -16061,6 +16071,7 @@ lasseleegaard.org, 1
lasst-uns-beten.de, 1
lastchancetraveler.com, 1
lastharo.com, 1
lastpass.com, 0
lastrada-minden.de, 1
lastweekinaws.com, 1
lat.sk, 1
@ -16091,7 +16102,6 @@ lattyware.com, 1
laubacher.io, 1
lauchundei.at, 1
laufcampus.com, 1
laufpix.de, 1
laufseminare-laufreisen.com, 1
lauftrainer-ausbildung.com, 1
lauftreff-himmelgeist.de, 1
@ -17479,7 +17489,6 @@ marche-nordic-jorat.ch, 1
marciaimportados.com.br, 1
marcianoandtopazio.com, 1
marco-kretz.de, 1
marco-polo-reisen.com, 1
marcocasoni.com, 1
marcohager.de, 1
marcoherten.com, 1
@ -17501,7 +17510,6 @@ marianhoenscheid.de, 1
mariannenan.nl, 1
marianwehlus.de, 1
mariaolesen.dk, 1
marie-elisabeth.dk, 0
marie.club, 1
mariehane.com, 1
mariemiramont.fr, 1
@ -17619,7 +17627,7 @@ maskinkultur.com, 1
maslife365.com, 1
massage-vitalite.fr, 1
massage4u.net, 1
massagecupping.com, 0
massagecupping.com, 1
massdrop.com, 1
masse.org, 1
massflix.com, 1
@ -18259,6 +18267,7 @@ midwestbloggers.org, 1
midweststructuralrepair.com, 1
mieuxgrandir.ch, 1
miffy.me, 1
mig5.net, 1
miggy.org, 1
mightymillionsraffle.com, 1
miguel.pw, 1
@ -18374,6 +18383,7 @@ mingram.net, 1
mingwah.ch, 1
mingy.ddns.net, 1
mingyueli.com, 1
minhanossasenhora.com.br, 1
mini2.fi, 1
minigames.com, 1
minigolf-reisinger.com, 1
@ -18621,6 +18631,7 @@ moe-max.jp, 1
moe.pe, 1
moechel.com, 1
moefactory.com, 1
moefi.xyz, 1
moehrke.cc, 1
moellers.systems, 1
moeloli.pw, 1
@ -18842,6 +18853,7 @@ movingtohttps.com, 1
movio.ga, 1
movlib.org, 1
mowalls.net, 1
moy.cat, 1
moyer.pub, 1
moylen.eu, 1
moyoo.net, 1
@ -18867,7 +18879,7 @@ mplicka.cz, 1
mplusm.eu, 1
mpn.poker, 1
mpnpokertour.com, 1
mpreserver.com, 1
mpreserver.com, 0
mpserver12.org, 1
mpsgarage.com.au, 1
mpsoundcraft.com, 1
@ -18877,6 +18889,7 @@ mr-labo.jp, 1
mr-nachhilfe.de, 1
mr-wolf.nl, 1
mrafrohead.com, 1
mrbmafrica.com, 1
mrbounce.com, 1
mrbouncescrazycastles.co.uk, 1
mrbouncycastle.com, 1
@ -18991,6 +19004,7 @@ multibomasm.com.br, 1
multicomhost.com, 1
multigamecard.com, 1
multigeist.de, 1
multikalender.de, 0
multimail.work, 1
multimarques.com, 1
multimedia-pool.com, 1
@ -20061,6 +20075,7 @@ nodari.com.ar, 1
nodariweb.com.ar, 1
nodecompat.com, 1
nodefiles.com, 1
nodefoo.com, 1
nodejs.de, 1
nodelab-it.de, 1
nodelia.com, 1
@ -20112,7 +20127,6 @@ noop.ch, 1
noordsee.de, 1
noorsolidarity.com, 1
nootropic.com, 1
nootropicsource.com, 1
nopaste.xyz, 1
nopaynocure.com, 1
nord-sud.be, 1
@ -20252,7 +20266,6 @@ nso.ie, 1
nsp.ua, 1
nspeaks.com, 1
nst-maroc.com, 1
nstd.net, 1
nstremsdoerfer.ovh, 1
nsure.us, 1
nsworks.com, 1
@ -20270,6 +20283,7 @@ nuclear-crimes.com, 1
nuclearcat.com, 1
nuclearcrimes.com, 1
nuclearcrimes1.com, 1
nucleuscore.org, 1
nudel.ninja, 1
nudestpics.com, 1
nuel.cl, 1
@ -20582,6 +20596,7 @@ omorashi.org, 1
omranic.com, 1
omronwellness.com, 1
omsdieppe.fr, 1
omyogarishikesh.com, 1
on-te.ch, 1
on-tech.co.uk, 1
ona.io, 1
@ -20638,6 +20653,7 @@ online-scene.com, 1
online.marketing, 1
online24.pt, 1
onlinebillingform.com, 1
onlinebizdirect.com, 0
onlinecasino.vlaanderen, 1
onlinecasinobluebook.com, 1
onlinecensorship.org, 1
@ -20665,6 +20681,7 @@ onqproductions.com, 1
onrr.gov, 1
ons.ca, 1
onsennuie.fr, 1
onshuistrust.co.za, 1
onsite4u.de, 1
onstud.com, 1
ontdekhetzelf.nu, 1
@ -21329,7 +21346,6 @@ payclixpayments.com, 1
payfazz.com, 1
paylike.io, 1
payload.tech, 1
payloc.io, 1
payme.uz, 1
payment-network.com, 1
paymentaccuracy.gov, 1
@ -22350,7 +22366,6 @@ primordialsnooze.com, 1
prinbanat.ngo, 1
princeagency.com, 1
princeofwhales.com, 1
princesparktouch.com, 1
princessbackpack.de, 1
princessmargaretlotto.com, 1
principaltoolbox.com, 1
@ -23013,7 +23028,6 @@ randc.org, 1
random-samplings.org, 1
randomadversary.com, 1
randombit.eu, 1
randombits.co.uk, 1
randomdysfunctions.com, 1
randomkoalafacts.com, 1
randomprecision.co.uk, 1
@ -23083,6 +23097,7 @@ rb-china.net, 1
rbensch.com, 1
rbflote.lv, 1
rbltracker.com, 1
rbmafrica.co.za, 1
rbnet.xyz, 1
rbran.com, 1
rbtvshitstorm.is, 1
@ -25500,7 +25515,6 @@ sirtuins.com, 1
sistel.es, 1
sistem-maklumat.com, 1
sistem-maklumat.com.my, 1
sistemasespecializados.com, 1
sistemy48.ru, 0
sistersurprise.de, 1
sistimiki-anaparastasi.gr, 1
@ -26789,7 +26803,6 @@ sundayfundayjapan.com, 1
suneilpatel.com, 1
sunfeathers.net, 1
sunfireshop.com.br, 1
sunflyer.cn, 0
sunfox.cz, 1
sunfulong.me, 1
sungo.wtf, 1
@ -27666,6 +27679,7 @@ thedrinks.co, 1
thedronechart.com, 1
thedrunkencabbage.com, 1
thedutchmarketers.com, 1
theebookkeepers.co.za, 1
theeducationchannel.info, 1
theeducationdirectory.org, 1
theevergreen.me, 1
@ -27704,7 +27718,6 @@ theinflatablesne.co.uk, 1
theinitium.com, 1
theintercept.com, 1
theinternationalgeekconspiracy.eu, 1
theitsage.com, 1
thejacksoninstitute.com.au, 1
thejobauction.com, 1
thekev.in, 1
@ -27989,6 +28002,7 @@ tiens-ib.cz, 1
tier-1-entrepreneur.com, 1
tierarztpraxis-bogenhausen.de, 1
tierarztpraxis-weinert.de, 1
tiernanx.com, 1
tiew.pl, 1
tifan.net, 1
tiffanytravels.com, 1
@ -28106,6 +28120,7 @@ tkn.tokyo, 1
tkts.cl, 1
tkusano.jp, 1
tkw01536.de, 1
tlach.cz, 1
tlca.org, 1
tlcnet.info, 1
tlehseasyads.com, 1
@ -28422,7 +28437,6 @@ touslesdrivers.com, 1
tousproducteurs.fr, 1
tout-art.ch, 1
toutart.ch, 1
toutenmusic.fr, 1
toutmonexam.fr, 1
tovare.com, 1
toverland-tickets.nl, 1
@ -28472,6 +28486,7 @@ trackdays4fun.com, 1
trackdomains.com, 1
trackersimulator.org, 1
trackeye.dk, 1
trackmeet.io, 1
trackrecordpro.co.uk, 1
tractorpumps.com, 1
trade.gov.uk, 1
@ -28846,7 +28861,6 @@ twd2.net, 0
tweakers.net, 1
tweakersbadge.nl, 1
tweaktown.com, 1
tweetfreq.net, 0
twelve.rocks, 1
twelve.today, 1
twelverocks.com, 1
@ -29204,6 +29218,7 @@ urbalex.ch, 1
urban-culture.fr, 1
urban.melbourne, 1
urbanesecurity.com, 1
urbanfi.sh, 1
urbanguerillas.de, 1
urbanietz-immobilien.de, 1
urbanmelbourne.info, 1
@ -29429,7 +29444,6 @@ vascomm.co.id, 1
vashel.us, 1
vasileruscior.ro, 1
vaskulitis-info.de, 1
vasports.com.au, 1
vastgoedcultuurfonds.nl, 1
vasyharan.com, 1
vat-eu.com, 1
@ -29715,6 +29729,7 @@ virtualvaults.com, 1
virtubox.net, 1
virtusaero.com, 1
visa-shinsei.com, 1
visaexpert.co.za, 1
visalogy.com, 1
visaop.com, 1
visapourailleurs.fr, 1
@ -29728,6 +29743,7 @@ visioflux-premium.com, 1
visionarymedia.nl, 1
visiongamestudios.com, 1
visionless.me, 0
visionthroughknowledge.com, 1
visiontree-beta.eu, 1
visiontree.eu, 1
visistruct.com, 1
@ -29856,7 +29872,7 @@ vorm2.com, 1
vorodevops.com, 1
vos-fleurs.ch, 1
vos-fleurs.com, 1
voshod.org, 0
voshod.org, 1
vosky.fr, 1
vostronet.com, 1
voter-info.uk, 1
@ -30068,6 +30084,7 @@ watermonitor.gov, 1
watersb.org, 1
watertrails.io, 1
watsonwork.me, 1
wattechweb.com, 1
wave-ola.es, 1
wavesboardshop.com, 1
wavesoftime.com, 1
@ -30332,7 +30349,6 @@ wendigo.pl, 1
wenger-shop.ch, 1
wenjs.me, 1
wenode.net, 1
wenz.io, 1
wepay.com, 0
wepay.in.th, 1
weplaynaked.dk, 1
@ -31768,7 +31784,6 @@ zh.search.yahoo.com, 0
zhang-hao.com, 1
zhang.nz, 1
zhangfangzhou.com, 1
zhangge.net, 1
zhanghao.me, 1
zhangsidan.com, 1
zhangsir.net, 1

Просмотреть файл

@ -129,6 +129,10 @@ class PublishBalrog(MercurialScript, BuildbotMixin):
error_level=FATAL)
def _submit_to_balrog_bz2(self, channel_config):
if "bz2_blob_suffix" not in channel_config:
self.info("No need to generate BZ2 blob")
return
dirs = self.query_abs_dirs()
# Use env varialbe instead of command line to avoid issues with blob
# names starting with "-", e.g. "-bz2"

Просмотреть файл

@ -94,7 +94,8 @@ class UpdatesBumper(MercurialScript, BuildbotMixin,
# TODO: version and appVersion should come from repo
props = self.buildbot_config["properties"]
for prop in ['product', 'version', 'build_number', 'revision',
'appVersion', 'balrog_api_root', "channels"]:
'appVersion', 'balrog_api_root', "channels",
'generate_bz2_blob']:
if props.get(prop):
self.info("Overriding %s with %s" % (prop, props[prop]))
self.config[prop] = props.get(prop)
@ -269,6 +270,10 @@ class UpdatesBumper(MercurialScript, BuildbotMixin,
def submit_to_balrog(self):
for _, channel_config in self.query_channel_configs():
self._submit_to_balrog(channel_config)
if 'generate_bz2_blob' in self.config and \
self.config['generate_bz2_blob']:
for _, channel_config in self.query_channel_configs():
self._submit_to_balrog_bz2(channel_config)
def _submit_to_balrog(self, channel_config):
dirs = self.query_abs_dirs()
@ -306,6 +311,59 @@ class UpdatesBumper(MercurialScript, BuildbotMixin,
self.retry(lambda: self.run_command(cmd, halt_on_failure=True))
def _submit_to_balrog_bz2(self, channel_config):
if "bz2_blob_suffix" not in channel_config:
self.info("No need to generate BZ2 blob")
return
dirs = self.query_abs_dirs()
# Use env varialbe instead of command line to avoid issues with blob
# names starting with "-", e.g. "-bz2"
env = {"BALROG_BLOB_SUFFIX": channel_config["bz2_blob_suffix"]}
auth = os.path.join(os.getcwd(), self.config['credentials_file'])
cmd = [
sys.executable,
os.path.join(dirs["abs_tools_dir"],
"scripts/build-promotion/balrog-release-pusher.py")]
cmd.extend([
"--api-root", self.config["balrog_api_root"],
"--download-domain", self.config["download_domain"],
"--archive-domain", self.config["archive_domain"],
"--credentials-file", auth,
"--product", self.config["product"],
"--version", self.config["version"],
"--build-number", str(self.config["build_number"]),
"--app-version", self.config["appVersion"],
"--username", self.config["balrog_username"],
"--complete-mar-filename-pattern",
channel_config["complete_mar_filename_pattern"],
"--complete-mar-bouncer-product-pattern",
channel_config["complete_mar_bouncer_product_pattern"],
"--verbose",
])
for v, build_number in self.query_matching_partials(channel_config):
if v < "56.0":
self.info("Adding %s to partials" % v)
partial = "{version}build{build_number}".format(
version=v, build_number=build_number)
cmd.extend(["--partial-update", partial])
else:
self.info("Not adding %s to partials" % v)
for c in channel_config["channel_names"]:
cmd.extend(["--channel", c])
for r in channel_config["bz2_rules_to_update"]:
cmd.extend(["--rule-to-update", r])
for p in self.config["platforms"]:
cmd.extend(["--platform", p])
if channel_config["requires_mirrors"]:
cmd.append("--requires-mirrors")
if self.config["balrog_use_dummy_suffix"]:
cmd.append("--dummy")
self.retry(lambda: self.run_command(cmd, halt_on_failure=True, env=env))
# __main__ {{{1
if __name__ == '__main__':

Просмотреть файл

@ -135,6 +135,7 @@ DEFAULTS = dict(
'privacy.trackingprotection.pbmode.enabled': False,
'browser.search.isUS': True,
'browser.search.countryCode': 'US',
'browser.search.geoip.url': '',
'browser.urlbar.userMadeSearchSuggestionsChoice': True,
'extensions.update.url':
'http://127.0.0.1/extensions-dummy/updateURL',

Просмотреть файл

@ -1,45 +0,0 @@
[adopted-callback.html]
type: testharness
prefs: [dom.webcomponents.enabled:true]
[Inserting the shadow host of a custom element into the document of the template elements must enqueue and invoke adoptedCallback]
expected: FAIL
[Moving the shadow host of a custom element from the owner document into the document of the template elements must enqueue and invoke adoptedCallback]
expected: FAIL
[Inserting the shadow host of a custom element into a new document must enqueue and invoke adoptedCallback]
expected: FAIL
[Moving the shadow host of a custom element from the owner document into a new document must enqueue and invoke adoptedCallback]
expected: FAIL
[Inserting the shadow host of a custom element into a cloned document must enqueue and invoke adoptedCallback]
expected: FAIL
[Moving the shadow host of a custom element from the owner document into a cloned document must enqueue and invoke adoptedCallback]
expected: FAIL
[Inserting the shadow host of a custom element into a document created by createHTMLDocument must enqueue and invoke adoptedCallback]
expected: FAIL
[Moving the shadow host of a custom element from the owner document into a document created by createHTMLDocument must enqueue and invoke adoptedCallback]
expected: FAIL
[Inserting the shadow host of a custom element into an HTML document created by createDocument must enqueue and invoke adoptedCallback]
expected: FAIL
[Moving the shadow host of a custom element from the owner document into an HTML document created by createDocument must enqueue and invoke adoptedCallback]
expected: FAIL
[Inserting the shadow host of a custom element into the document of an iframe must enqueue and invoke adoptedCallback]
expected: FAIL
[Moving the shadow host of a custom element from the owner document into the document of an iframe must enqueue and invoke adoptedCallback]
expected: FAIL
[Inserting the shadow host of a custom element into an HTML document fetched by XHR must enqueue and invoke adoptedCallback]
expected: FAIL
[Moving the shadow host of a custom element from the owner document into an HTML document fetched by XHR must enqueue and invoke adoptedCallback]
expected: FAIL

Просмотреть файл

@ -577,7 +577,7 @@ add_task(function* format_errors() {
eval("javascript syntax error");
} catch (e) {
str = pFormat.format(e);
do_check_true(str.includes("SyntaxError: missing ;"));
do_check_true(str.includes("SyntaxError: unexpected token"));
// Make sure we identified it as an Error and formatted the error location as
// lineNumber:columnNumber.
do_check_true(str.includes(":1:11)"));