Tag: WebPageTest

Learnings From a WebPageTest Session on CSS-Tricks

I got together with Tim Kadlec from over at WebPageTest the other day to use do a bit of performance testing on CSS-Tricks. Essentially use the tool, poke around, and identify performance pain points to work on. You can watch the video right here on the site, or over on their Twitch channel, which is worth a subscribe for more performance investigations like these.

Web performance work is twofold:

Step 1) Measure Things & Explore Problems
Step 2) Fix it

Tim and I, through the amazing tool that is WebPageTest, did a lot of Step 1. I took notes as we poked around. We found a number of problem areas, some fairly big! Of course, after all that, I couldn’t get them out of my head, so I had to spring into action and do the Step 2 stuff as soon as I could, and I’m happy to report I’ve done most of it and seen improvement. Let’s dig in!

Identified Problem #1) Poor LCP

Largest Contentful Paint (LCP) is one of the Core Web Vitals (CWV), which everyone is carefully watching right now with Google telling us it’s an SEO factor. My LCP was clocking in at 3.993s which isn’t great.

WebPageTest clearly tells you if there are problems with your CWV.

I also learned from time that it’s ideal if the First Contentful Paint (FCP) contains the LCP. We could see that wasn’t happening through WebPageTest.

Things to fix:

  • Make sure the LCP area, which was ultimately a big image, is properly optimized, has a responsive srcset, and is CDN hosted. All those things were failing on that particular image despire working elsewhere.
  • The LCP image had loading="lazy" on it, which we just learned isn’t a good place for that.

Fixing technique and learnings:

  • All the proper image handling stuff was in place, but for whatever reason, none of it works for .gif files, which is what that image was the day of the testing. We probably just shouldn’t use .gif files for that area anyway.
  • Turn off lazy loading of LCP image. This is a WordPress featured image, so I essentially had to do <?php the_post_thumbnail('', array('loading' => 'eager')); ?>. If it was an inline image, I’d do <img data-no-lazy="1" ... /> which tells WordPress what it needs to know.

Identified Problem #2) First Byte to Start Render gap

Tim saw this right away as a fairly obvious problem.

In the waterfall above (here’s a super detailed article on reading waterfalls from Matt Hobbs), you can see the HTML arrives in about 0.5 seconds, but the start of rendering (what people see, big green line), doesn’t start until about 2.9 seconds. That’s too dang long.

The chart also identifies the problem in a yellow line. I was linking out to a third-party CSS file, which then redirects to my own CSS files that contain custom fonts. That redirect costs time, and as we dug into, not just first-page-load time, but every single page load, even cached page loads.

Things to fix:

  • Eliminate the CSS file redirect.
  • Self-host fonts.

Fixing technique and learnings:

  • I’ve been eying up some new fonts anyway. I noted not long ago that I really love Mass-Driver’s licensing innovation (priced by # of employees), but I equally love MD Primer, so I bought that. For body type, I stuck with a comfortable serif with Blanco, which mercifully came with very nicely optimized RIBBI1 versions. Next time I swear I’m gonna find a variable font, but hey, you gotta follow your heart sometimes. I purchased these, and am now self-hosting the font-files.
  • Use @font-face right in my own CSS, with no redirects. Also using font-display: swap;, but gotta work a bit more on that loading technique. Can’t wait for size-adjust.

After re-testing with the change in place, you can see on a big article page the start render is a full 2 seconds faster on a 4G connection:

That’s a biiiiiig change. Especially as it affects cached page loads too.
See how the waterfall pulls back to the left without the CSS redirect.

Identified Problem #3) CLS on the Grid Guide is Bad

Tim had a neat trick up his sleeve for measuring Cumulative Layout Shift (CLS) on pages. You can instruct WebPageTest to scroll down the page for you. This is important for something like CLS, because layout shifting might happen on account of scrolling.

See this article about CLS and WebPageTest.

The trick is using an advanced setting to inject custom JavaScript into the page during the test:

At this point, we were testing not the homepage, but purposefully a very important page: our Complete Guide to Grid. With this in place, you can see the CWV are in much worse shape:

I don’t know what to think exactly about the LCP. That’s being triggered by what happens to be the largest image pretty far down the page.

I’m not terribly worried about the LCP with the scrolling in place. That’s just some image like any other on the page, lazily loaded.

The CLS is more concerning, to me, because any shifting layout is always obnoxious to users. See all these dotted orange lines? That is CLS happening:

The orange CLS lines correlate with images loading (as the page scrolls down and the lazy loaded images come in).

Things to fix:

  • CLS is bad because of lazy loaded images coming in and shifting the layout.

Fixing technique and learnings:

  • I don’t know! All those images are inline <img loading="lazy" ...> elements. I get that lazy loading could cause CLS, but these images have proper width and height attributes, which is supposed to reserve the exact space necessary for the image (even when fluid, thanks to aspect ratio) even before it loads. So… what gives? Is it because they are SVG?

If anyone does know, feel free to hit me up. Such is the nature of performance work, I find. It’s a mixture of easy wins from silly mistakes, little battles you can fight and win, bigger battles that sometimes involves outside influences that are harder to win, and mysterious unknowns that it takes time to heal. Fortunately we have tools like WebPageTest to tell us the real stories happening on our site and give us the insight we need to fight these performance battles.


  1. RIBBI, I just learned, means Regular, Italic, Bold, and Bold Italic. The classic combo that most body copy on the web needs.

The post Learnings From a WebPageTest Session on CSS-Tricks appeared first on CSS-Tricks. You can support CSS-Tricks by being an MVP Supporter.

CSS-Tricks

, , , ,

WebPageTest API

I’m willing to bet you know WebPageTest. It is the premier tool in the toolbox of web performance people. Maybe you didn’t know that WebPageTest was a side project of one fella, Patrick Meenan, for most of its lifetime, with literal racks of real devices he maintained himself. An amazing achievement, to be sure, but it also feels good to me that WebPageTest is now owned by Catchpoint with Patrick being there himself on the project. For one thing, the design of WebPageTest is now quite nice. A welcome upgrade, let’s say.

So yes, WebPageTest is still here. It’s still free. Everything is there that always was, but more (like… Chrome User Experience Data pulled right into your Chrome test results so you can see how closely your test matches what Chrome is seeing, and Core Web visualizations right in the waterfall). It’s just now it’s not a side project anymore, it’s got the support of a company dead-focused on helping developers.

Here’s the real news though: there’s a full-on scalable API now.

So you can be like:

I’d like to know my Time to Interactive (TTI), Core Web Vitals (CWV), and Total Size of Images from my primary product page along with a loading film strip from a Firefox browser in Canada.

And you’ll get exactly that from the API. And so much more. Anything WebPageTest can do is available in the API.

This is not some tack-on API. This is an entirely API-driven product. So if WebPageTest evolves and offers more functionality (and it will), you’ll have it in the API. A dog-fooded API is an API you can trust. Catchpoint is very likely to do more with WebPageTest over time, and it will be driven by these same APIs. I think that’s important to know. You can trust an API a lot more when the API drives the product, versus when an API is tacked on to a product.

Example JSON Data from API
{    "data":{       "id":"210427_AiDcXW_8bd098a817944af61f7db97e4463e622",       "url":"https://docs.webpagetest.org/",       "summary":"https://www.webpagetest.org/results.php?test=210427_AiDcXW_8bd098a817944af61f7db97e4463e622",       "testUrl":"https://docs.webpagetest.org/",       "location":"ec2-us-east-1:Chrome",       "from":"Virginia USA - EC2  - <b>Chrome</b> - <b>Emulated Motorola G (gen 4)</b> - <b>4G</b>",       "connectivity":"4G",       "bwDown":9000,       "bwUp":9000,       "latency":170,       "plr":null,       "shaperLimit":0,       "mobile":1,       "completed":1619530566,       "testRuns":1,       "fvonly":true,       "successfulFVRuns":1,       "average":{          "firstView":{             "loadTime":1805,             "docTime":1805,             "fullyLoaded":3453,             "bytesOut":21486,             "bytesOutDoc":9612,             "bytesIn":96520,             "bytesInDoc":92826,             "requests":12,             "requestsFull":12,             "requestsDoc":6,             "responses_200":12,             "responses_404":0,             "responses_other":0,             "result":0,             "testStartOffset":0,             "cached":0,             "optimization_checked":1,             "start_epoch":0,             "loadEventStart":1805,             "loadEventEnd":1805,             "domContentLoadedEventStart":876,             "domContentLoadedEventEnd":876,             "connections":5,             "final_base_page_request":0,             "firstPaint":865.0500000076,             "firstContentfulPaint":865,             "firstMeaningfulPaint":865,             "domInteractive":875,             "firstImagePaint":995,             "TTFB":730,             "basePageSSLTime":203,             "score_cache":94,             "score_cdn":100,             "score_gzip":100,             "score_cookies":-1,             "score_keep-alive":100,             "score_minify":-1,             "score_combine":-1,             "score_compress":100,             "score_etags":-1,             "score_progressive_jpeg":-1,             "gzip_total":28624,             "gzip_savings":0,             "minify_total":-1,             "minify_savings":-1,             "image_total":67481,             "image_savings":0,             "cpu.UpdateLayerTree":11,             "cpu.EventDispatch":1,             "cpu.CommitLoad":0,             "cpu.EvaluateScript":46,             "cpu.v8.compile":4,             "cpu.ParseHTML":37,             "cpu.UpdateLayoutTree":5,             "cpu.Layout":30,             "cpu.ResourceChangePriority":0,             "cpu.Paint":3,             "cpu.largestContentfulPaint::Candidate":0,             "cpu.MarkDOMContent":0,             "cpu.FunctionCall":5,             "cpu.HitTest":0,             "cpu.MarkLoad":0,             "cpu.XHRReadyStateChange":2,             "cpu.XHRLoad":0,             "cpu.Idle":3309,             "date":1619530556.95751,             "throttle_cpu_requested":3.5,             "throttle_cpu":2.7715020391,             "fullyLoadedCPUms":6859,             "fullyLoadedCPUpct":57.6955424727,             "domElements":103,             "domComplete":1805,             "PerformancePaintTiming.first-paint":865.0500000076,             "PerformancePaintTiming.first-contentful-paint":865.0500000076,             "test_run_time_ms":8968,             "Colordepth":24,             "lastVisualChange":1000,             "visualComplete":1000,             "render":900,             "SpeedIndex":902,             "visualComplete85":900,             "visualComplete90":900,             "visualComplete95":900,             "visualComplete99":1000,             "chromeUserTiming.navigationStart":0,             "chromeUserTiming.fetchStart":2,             "chromeUserTiming.responseEnd":735,             "chromeUserTiming.unloadEventStart":737,             "chromeUserTiming.unloadEventEnd":737,             "chromeUserTiming.commitNavigationEnd":739,             "chromeUserTiming.domLoading":740,             "chromeUserTiming.firstMeaningfulPaint":865,             "chromeUserTiming.firstMeaningfulPaintCandidate":865,             "chromeUserTiming.firstContentfulPaint":865,             "chromeUserTiming.firstPaint":865,             "chromeUserTiming.domInteractive":874,             "chromeUserTiming.domContentLoadedEventStart":875,             "chromeUserTiming.domContentLoadedEventEnd":875,             "chromeUserTiming.firstImagePaint":994,             "chromeUserTiming.domComplete":1804,             "chromeUserTiming.loadEventStart":1804,             "chromeUserTiming.loadEventEnd":1804,             "chromeUserTiming.LargestTextPaint":865,             "chromeUserTiming.LargestContentfulPaint":865,             "chromeUserTiming.LargestImagePaint":994,             "chromeUserTiming.TotalLayoutShift":0,             "chromeUserTiming.CumulativeLayoutShift":0,             "maxFID":0,             "TTIMeasurementEnd":3458,             "LastInteractive":900,             "TotalBlockingTime":0,             "run":1,             "step":1,             "effectiveBps":35446,             "effectiveBpsDoc":86349,             "domTime":0,             "aft":0,             "titleTime":0,             "domLoading":0,             "server_rtt":0,             "smallImageCount":4,             "bigImageCount":0,             "maybeCaptcha":0,             "avgRun":1          }       },       "standardDeviation":{          "firstView":{             "loadTime":0,             "docTime":0,             "fullyLoaded":0,             "bytesOut":0,             "bytesOutDoc":0,             "bytesIn":0,             "bytesInDoc":0,             "requests":0,             "requestsFull":0,             "requestsDoc":0,             "responses_200":0,             "responses_404":0,             "responses_other":0,             "result":0,             "testStartOffset":0,             "cached":0,             "optimization_checked":0,             "start_epoch":0,             "loadEventStart":0,             "loadEventEnd":0,             "domContentLoadedEventStart":0,             "domContentLoadedEventEnd":0,             "connections":0,             "final_base_page_request":0,             "firstPaint":0,             "firstContentfulPaint":0,             "firstMeaningfulPaint":0,             "domInteractive":0,             "firstImagePaint":0,             "TTFB":0,             "basePageSSLTime":0,             "score_cache":0,             "score_cdn":0,             "score_gzip":0,             "score_cookies":0,             "score_keep-alive":0,             "score_minify":0,             "score_combine":0,             "score_compress":0,             "score_etags":0,             "score_progressive_jpeg":0,             "gzip_total":0,             "gzip_savings":0,             "minify_total":0,             "minify_savings":0,             "image_total":0,             "image_savings":0,             "cpu.UpdateLayerTree":0,             "cpu.EventDispatch":0,             "cpu.CommitLoad":0,             "cpu.EvaluateScript":0,             "cpu.v8.compile":0,             "cpu.ParseHTML":0,             "cpu.UpdateLayoutTree":0,             "cpu.Layout":0,             "cpu.ResourceChangePriority":0,             "cpu.Paint":0,             "cpu.largestContentfulPaint::Candidate":0,             "cpu.MarkDOMContent":0,             "cpu.FunctionCall":0,             "cpu.HitTest":0,             "cpu.MarkLoad":0,             "cpu.XHRReadyStateChange":0,             "cpu.XHRLoad":0,             "cpu.Idle":0,             "date":0,             "throttle_cpu_requested":0,             "throttle_cpu":0,             "fullyLoadedCPUms":0,             "fullyLoadedCPUpct":0,             "domElements":0,             "domComplete":0,             "PerformancePaintTiming.first-paint":0,             "PerformancePaintTiming.first-contentful-paint":0,             "test_run_time_ms":0,             "Colordepth":0,             "lastVisualChange":0,             "visualComplete":0,             "render":0,             "SpeedIndex":0,             "visualComplete85":0,             "visualComplete90":0,             "visualComplete95":0,             "visualComplete99":0,             "chromeUserTiming.navigationStart":0,             "chromeUserTiming.fetchStart":0,             "chromeUserTiming.responseEnd":0,             "chromeUserTiming.unloadEventStart":0,             "chromeUserTiming.unloadEventEnd":0,             "chromeUserTiming.commitNavigationEnd":0,             "chromeUserTiming.domLoading":0,             "chromeUserTiming.firstMeaningfulPaint":0,             "chromeUserTiming.firstMeaningfulPaintCandidate":0,             "chromeUserTiming.firstContentfulPaint":0,             "chromeUserTiming.firstPaint":0,             "chromeUserTiming.domInteractive":0,             "chromeUserTiming.domContentLoadedEventStart":0,             "chromeUserTiming.domContentLoadedEventEnd":0,             "chromeUserTiming.firstImagePaint":0,             "chromeUserTiming.domComplete":0,             "chromeUserTiming.loadEventStart":0,             "chromeUserTiming.loadEventEnd":0,             "chromeUserTiming.LargestTextPaint":0,             "chromeUserTiming.LargestContentfulPaint":0,             "chromeUserTiming.LargestImagePaint":0,             "chromeUserTiming.TotalLayoutShift":0,             "chromeUserTiming.CumulativeLayoutShift":0,             "maxFID":0,             "TTIMeasurementEnd":0,             "LastInteractive":0,             "TotalBlockingTime":0,             "run":0,             "step":0,             "effectiveBps":0,             "effectiveBpsDoc":0,             "domTime":0,             "aft":0,             "titleTime":0,             "domLoading":0,             "server_rtt":0,             "smallImageCount":0,             "bigImageCount":0,             "maybeCaptcha":0,             "avgRun":null          }       },       "median":{          "firstView":{             "numSteps":1,             "run":1,             "tester":"i-0247aadaa23ac9fec",             "loadTime":1805,             "docTime":1805,             "fullyLoaded":3453,             "bytesOut":21486,             "bytesOutDoc":9612,             "bytesIn":96520,             "bytesInDoc":92826,             "requests":[                {                   "type":3,                   "id":"8F26376CBD35F32E850C9DBEC39882D4",                   "request_id":"8F26376CBD35F32E850C9DBEC39882D4",                   "ip_addr":"52.203.36.44",                   "full_url":"https://docs.webpagetest.org/",                   "is_secure":1,                   "method":"GET",                   "host":"docs.webpagetest.org",                   "url":"/",                   "raw_id":"8F26376CBD35F32E850C9DBEC39882D4",                   "frame_id":"E57BDA2151E08AC948685BFE69680D5E",                   "documentURL":"https://docs.webpagetest.org/",                   "responseCode":200,                   "request_type":"Document",                   "load_ms":178,                   "ttfb_ms":173,                   "load_start":557,                   "load_start_float":556.647,                   "bytesIn":5465,                   "objectSize":5465,                   "objectSizeUncompressed":22360,                   "chunks":[                      {                         "ts":734.825,                         "bytes":5465                      }                   ],                   "expires":"",                   "cacheControl":"max-age=900,must-revalidate",                   "contentType":"text/html",                   "contentEncoding":"br",                   "socket":42,                   "protocol":"HTTP/2",                   "dns_start":4,                   "dns_end":182,                   "connect_start":182,                   "connect_end":353,                   "ssl_start":353,                   "ssl_end":556,                   "securityDetails":{                      "protocol":"TLS 1.3",                      "keyExchange":"",                      "keyExchangeGroup":"X25519",                      "cipher":"AES_256_GCM",                      "certificateId":0,                      "subjectName":"docs.webpagetest.org",                      "sanList":[                         "docs.webpagetest.org"                      ],                      "issuer":"R3",                      "validFrom":1619467227,                      "validTo":1627243227,                      "signedCertificateTimestampList":[                         {                            "status":"Verified",                            "origin":"Embedded in certificate",                            "logDescription":"Sectigo 'Mammoth' CT log",                            "logId":"6F5376AC31F03119D89900A45115FF77151C11D902C10029068DB2089A37D913",                            "timestamp":1619470827302,                            "hashAlgorithm":"SHA-256",                            "signatureAlgorithm":"ECDSA",                            "signatureData":"3046022100A2BCD9F63B5797CB092A1186C47BBA07159B64A547AB70F712A2365232D80C29022100D0F30E54E297A03A68369920C0D941D7A0FF3840478D681039FC4156BF21BA81"                         },                         {                            "status":"Verified",                            "origin":"Embedded in certificate",                            "logDescription":"Google 'Xenon2021' log",                            "logId":"7D3EF2F88FFF88556824C2C0CA9E5289792BC50E78097F2E6A9768997E22F0D7",                            "timestamp":1619470827299,                            "hashAlgorithm":"SHA-256",                            "signatureAlgorithm":"ECDSA",                            "signatureData":"3045022069E20E80E8FBAF20B7DE722D0104F91084379684D20200DD621EAD7A7254C0930221008C377DFEC43CB8395661CEC67259D1F8A955D5046D5B96191CAC7569DFEC0D83"                         }                      ],                      "certificateTransparencyCompliance":"compliant"                   },                   "initiator":"",                   "initiator_line":"",                   "initiator_column":"",                   "initiator_type":"script",                   "priority":"HIGHEST",                   "initial_priority":"VeryHigh",                   "server_rtt":null,                   "headers":{                      "request":[                         ":method: GET",                         ":authority: docs.webpagetest.org",                         ":scheme: https",                         ":path: /",                         "upgrade-insecure-requests: 1",                         "user-agent: Mozilla/5.0 (Linux; Android 6.0.1; Moto G (4)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Mobile Safari/537.36 PTST/210419.211328",                         "accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",                         "sec-fetch-site: cross-site",                         "sec-fetch-mode: navigate",                         "sec-fetch-dest: document",                         "accept-encoding: gzip, deflate, br",                         "accept-language: en-US,en;q=0.9"                      ],                      "response":[                         "content-type: text/html; charset=UTF-8",                         "date: Tue, 27 Apr 2021 11:58:35 GMT",                         "etag: "50dfb5ef4ccf18da5e07c09a798f25c4-ssl-df"",                         "strict-transport-security: max-age=31536000",                         "x-content-type-options: nosniff",                         "x-frame-options: SAMEORIGIN",                         "x-xss-protection: 1; mode=block",                         "content-encoding: br",                         "content-length: 5465",                         "age: 5842",                         "server: Netlify",                         "vary: Accept-Encoding",                         "cache-control: max-age=900,must-revalidate",                         "x-nf-request-id: c2eaf3a4-2a5a-4666-ab88-50a4385ecc91-7870268",                         ":status: 200"                      ]                   },                   "bytesOut":1741,                   "score_cache":-1,                   "score_cdn":100,                   "score_gzip":100,                   "score_cookies":-1,                   "score_keep-alive":100,                   "score_minify":-1,                   "score_combine":-1,                   "score_compress":-1,                   "score_etags":-1,                   "dns_ms":178,                   "connect_ms":171,                   "ssl_ms":203,                   "gzip_total":5465,                   "gzip_save":0,                   "minify_total":null,                   "minify_save":null,                   "image_total":null,                   "image_save":null,                   "cache_time":null,                   "cdn_provider":"Netlify",                   "server_count":null,                   "created":4,                   "http2_stream_id":1,                   "http2_stream_dependency":0,                   "http2_stream_weight":256,                   "http2_stream_exclusive":1,                   "http2_server_settings":{                      "SETTINGS_MAX_CONCURRENT_STREAMS":150,                      "SETTINGS_MAX_HEADER_LIST_SIZE":131072                   },                   "tls_version":"TLS 1.3",                   "tls_resumed":"False",                   "tls_next_proto":"h2",                   "tls_cipher_suite":4866,                   "certificates":[                      "-----BEGIN CERTIFICATE-----nMIIEZDCCA0ygAwIBAgISBF37oE+Ktj2/6iysUtxzpJAvMA0GCSqGSIb3DQEBCwUAnMDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQDnEwJSMzAeFw0yMTA0MjYyMDAwMjdaFw0yMTA3MjUyMDAwMjdaMB8xHTAbBgNVBAMTnFGRvY3Mud2VicGFnZXRlc3Qub3JnMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEnf8a05zALcGV/HnFaetKioT5eLwXhmzVYBhq3ah6jIWYYiHTDcJD5WYNgMDmFbmLUn1PyliKqDbTe3sDJgfamHP6OCAlAwggJMMA4GA1UdDwEB/wQEAwIHgDAdBgNVHSUEnFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUn1JMSW+DIpBZLoSI29KsqDF8abWwwHwYDVR0jBBgwFoAUFC6zF7dYVsuuUAlA5h+vnnYsUwsYwVQYIKwYBBQUHAQEESTBHMCEGCCsGAQUFBzABhhVodHRwOi8vcjMuby5snZW5jci5vcmcwIgYIKwYBBQUHMAKGFmh0dHA6Ly9yMy5pLmxlbmNyLm9yZy8wHwYDnVR0RBBgwFoIUZG9jcy53ZWJwYWdldGVzdC5vcmcwTAYDVR0gBEUwQzAIBgZngQwBnAgEwNwYLKwYBBAGC3xMBAQEwKDAmBggrBgEFBQcCARYaaHR0cDovL2Nwcy5sZXRznZW5jcnlwdC5vcmcwggEFBgorBgEEAdZ5AgQCBIH2BIHzAPEAdwBvU3asMfAxGdiZnAKRRFf93FRwR2QLBACkGjbIImjfZEwAAAXkP+78mAAAEAwBIMEYCIQCivNn2O1eXnywkqEYbEe7oHFZtkpUercPcSojZSMtgMKQIhANDzDlTil6A6aDaZIMDZQdeg/zhAnR41oEDn8QVa/IbqBAHYAfT7y+I//iFVoJMLAyp5SiXkrxQ54CX8uapdomX4i8NcAnAAF5D/u/IwAABAMARzBFAiBp4g6A6PuvILfeci0BBPkQhDeWhNICAN1iHq16clTAnkwIhAIw3ff7EPLg5VmHOxnJZ0fipVdUEbVuWGRysdWnf7A2DMA0GCSqGSIb3DQEBnCwUAA4IBAQBEGlvgqR3Ju/30dDXgrv8s6jblgKLRi92LMM4jLVF+i7q3Bkcn5NJPnM9xLVY7vLlAXIyLld5mzLEwK3Rbt7UqVsMeo4U+y/IcVipfM7QOPiv2vRGiGAetHn72rkoFdarURnZ+ycUhSTKmW7UpRH+qYqEzXCtjDeC+u0bB7C/6bawqngraY1k6QLntEd0E3vm6O4PEzk4j0u99QXQfDTUQADi+PjNZnWYrzmb8lO6d6u4q+GKz2djill+ntd8xdMDWrMioJUdiFXCrhVglCoA+BvYJ8Oq6xEFNK78bcUZK73iTHHzZRwDxDTaDn1JVHt9PAMas88V/5pzkaIIH5jGVCrZdXn-----END CERTIFICATE-----n",                      "-----BEGIN CERTIFICATE-----nMIIEZTCCA02gAwIBAgIQQAF1BIMUpMghjISpDBbN3zANBgkqhkiG9w0BAQsFADA/nMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMTnDkRTVCBSb290IENBIFgzMB4XDTIwMTAwNzE5MjE0MFoXDTIxMDkyOTE5MjE0MFownMjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUxldCdzIEVuY3J5cHQxCzAJBgNVBAMTnAlIzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuwIVKMz2oJTTDxLsnjVWSw/iC8ZmmekKIp10mqrUrucVMsa+Oa/l1yKPXD0eUFFU1V4yeqKI5GfWCPEKpnTm71O8Mu243AsFzzWTjn7c9p8FoLG77AlCQlh/o3cbMT5xys4Zvv2+Q7RVJFlqnBnU840yFLuta7tj95gcOKlVKu2bQ6XpUA0ayvTvGbrZjR8+muLj1cpmfgwF126cm/7ngcWt0oZYPRfH5wm78Sv3htzB2nFd1EbjzK0lwYi8YGd1ZrPxGPeiXOZT/zqItkeln/xMY6pgJdz+dU/nPAeX1pnAXFK9jpP+Zs5Od3FOnBv5IhR2haa4ldbsTzFID9e1RnoYvbFQIDAQABo4IBaDCCAWQwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EnBAMCAYYwSwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pnZGVudHJ1c3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEnp7Gkeyxx+tvhS5B1/8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA/BgsrBgEEnAYLfEwEBATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VunY3J5cHQub3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0nLmNvbS9EU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfnr52LFMLGMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjANBgkqhkiG9w0BnAQsFAAOCAQEA2UzgyfWEiDcx27sT4rP8i2tiEmxYt0l+PAK3qB8oYevO4C5z70kHnejWEHx2taPDY/laBL21/WKZuNTYQHHPD5b1tXgHXbnL7KqC401dk5VvCadTQsvd8nS8MXjohyc9z9/G2948kLjmE6Flh9dDYrVYA9x2O+hEPGOaEOa1eePynBgPayvUfLnqjBstzLhWVQLGAkXXmNs+5ZnPBxzDJOLxhF2JIbeQAcH5H0tZrUlo5ZYyOqA7s9pnO5b85o3AM/OJ+CktFBQtfvBhcJVd9wvlwPsk+uyOy2HI7mNxKKgsBTt375teA2TwnUdHkhVNcsAKX1H7GNNLOEADksd86wuoXvg==n-----END CERTIFICATE-----n"                   ],                   "server_port":"443",                   "client_port":"35520",                   "final_base_page":true,                   "is_base_page":true,                   "load_end":735,                   "ttfb_start":557,                   "ttfb_end":730,                   "download_start":730,                   "download_end":735,                   "download_ms":5,                   "all_start":4,                   "all_end":735,                   "all_ms":730,                   "cpuTimes":{                      "EvaluateScript":10,                      "v8.compile":1                   },                   "cpu.EvaluateScript":10,                   "cpu.v8.compile":1,                   "cpuTime":10,                   "index":0,                   "number":1                },                {                   "type":3,                   "id":"29564.4",                   "request_id":"29564.4",                   "ip_addr":"52.203.36.44",                   "full_url":"https://docs.webpagetest.org/img/wpt-logo.svg",                   "is_secure":1,                   "method":"GET",                   "host":"docs.webpagetest.org",                   "url":"/img/wpt-logo.svg",                   "raw_id":"29564.4",                   "frame_id":"E57BDA2151E08AC948685BFE69680D5E",                   "documentURL":"https://docs.webpagetest.org/",                   "responseCode":200,                   "request_type":"Image",                   "load_ms":186,                   "ttfb_ms":182,                   "load_start":787,                   "load_start_float":787.125,                   "bytesIn":3590,                   "objectSize":3590,                   "objectSizeUncompressed":10422,                   "chunks":[                      {                         "ts":972.843,                         "bytes":3590                      }                   ],                   "expires":"",                   "cacheControl":"max-age=31536000",                   "contentType":"image/svg+xml",                   "contentEncoding":"br",                   "socket":42,                   "protocol":"HTTP/2",                   "dns_start":-1,                   "dns_end":-1,                   "connect_start":-1,                   "connect_end":-1,                   "ssl_start":-1,                   "ssl_end":-1,                   "initiator":"https://docs.webpagetest.org/",                   "initiator_line":25,                   "initiator_column":"",                   "initiator_type":"parser",                   "priority":"MEDIUM",                   "initial_priority":"Low",                   "server_rtt":null,                   "headers":{                      "request":[                         ":path: /img/wpt-logo.svg",                         "sec-fetch-mode: no-cors",                         "accept-encoding: gzip, deflate, br",                         "accept-language: en-US,en;q=0.9",                         "user-agent: Mozilla/5.0 (Linux; Android 6.0.1; Moto G (4)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Mobile Safari/537.36 PTST/210419.211328",                         "accept: image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8",                         "referer: https://docs.webpagetest.org/",                         "sec-fetch-dest: image",                         ":authority: docs.webpagetest.org",                         ":scheme: https",                         "sec-fetch-site: same-origin",                         ":method: GET"                      ],                      "response":[                         "accept-ranges: bytes",                         "content-type: image/svg+xml",                         "date: Mon, 26 Apr 2021 21:20:40 GMT",                         "strict-transport-security: max-age=31536000",                         "x-content-type-options: nosniff",                         "x-frame-options: SAMEORIGIN",                         "x-xss-protection: 1; mode=block",                         "content-encoding: br",                         "etag: "4304409d1e3dc95e2f71ee77381b2a05-ssl"",                         "age: 58517",                         "content-length: 3590",                         "server: Netlify",                         "vary: Accept-Encoding",                         "cache-control: max-age=31536000",                         "x-nf-request-id: c2eaf3a4-2a5a-4666-ab88-50a4385ecc91-7870452",                         ":status: 200"                      ]                   },                   "bytesOut":1597,                   "score_cache":100,                   "score_cdn":100,                   "score_gzip":100,                   "score_cookies":-1,                   "score_keep-alive":100,                   "score_minify":-1,                   "score_combine":-1,                   "score_compress":-1,                   "score_etags":-1,                   "dns_ms":-1,                   "connect_ms":-1,                   "ssl_ms":-1,                   "gzip_total":3590,                   "gzip_save":0,                   "minify_total":null,                   "minify_save":null,                   "image_total":null,                   "image_save":null,                   "cache_time":31477483,                   "cdn_provider":"Netlify",                   "server_count":null,                   "created":787,                   "http2_stream_id":3,                   "http2_stream_dependency":0,                   "http2_stream_weight":147,                   "http2_stream_exclusive":1,                   "server_port":"443",                   "client_port":"35520",                   "load_end":973,                   "ttfb_start":787,                   "ttfb_end":969,                   "download_start":969,                   "download_end":973,                   "download_ms":4,                   "all_start":787,                   "all_end":973,                   "all_ms":186,                   "index":1,                   "number":2                },                {                   "type":3,                   "id":"29564.5",                   "request_id":"29564.5",                   "ip_addr":"52.203.36.44",                   "full_url":"https://docs.webpagetest.org/img/wpt-teaser.png",                   "is_secure":1,                   "method":"GET",                   "host":"docs.webpagetest.org",                   "url":"/img/wpt-teaser.png",                   "raw_id":"29564.5",                   "frame_id":"E57BDA2151E08AC948685BFE69680D5E",                   "documentURL":"https://docs.webpagetest.org/",                   "responseCode":200,                   "request_type":"Image",                   "load_ms":389,                   "ttfb_ms":216,                   "load_start":798,                   "load_start_float":797.92,                   "bytesIn":41066,                   "objectSize":41066,                   "objectSizeUncompressed":41066,                   "chunks":[                      {                         "ts":1166.573,                         "bytes":16384                      },                      {                         "ts":1181.386,                         "bytes":16384                      },                      {                         "ts":1187.282,                         "bytes":8298                      }                   ],                   "expires":"",                   "cacheControl":"max-age=31536000",                   "contentType":"image/png",                   "contentEncoding":"",                   "socket":42,                   "protocol":"HTTP/2",                   "dns_start":-1,                   "dns_end":-1,                   "connect_start":-1,                   "connect_end":-1,                   "ssl_start":-1,                   "ssl_end":-1,                   "initiator":"https://docs.webpagetest.org/",                   "initiator_line":63,                   "initiator_column":"",                   "initiator_type":"parser",                   "priority":"LOWEST",                   "initial_priority":"Low",                   "server_rtt":null,                   "headers":{                      "request":[                         ":path: /img/wpt-teaser.png",                         "sec-fetch-mode: no-cors",                         "accept-encoding: gzip, deflate, br",                         "accept-language: en-US,en;q=0.9",                         "user-agent: Mozilla/5.0 (Linux; Android 6.0.1; Moto G (4)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Mobile Safari/537.36 PTST/210419.211328",                         "accept: image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8",                         "referer: https://docs.webpagetest.org/",                         "sec-fetch-dest: image",                         ":authority: docs.webpagetest.org",                         ":scheme: https",                         "sec-fetch-site: same-origin",                         ":method: GET"                      ],                      "response":[                         "accept-ranges: bytes",                         "content-length: 41066",                         "content-type: image/png",                         "date: Tue, 27 Apr 2021 11:50:54 GMT",                         "strict-transport-security: max-age=31536000",                         "x-content-type-options: nosniff",                         "x-frame-options: SAMEORIGIN",                         "x-xss-protection: 1; mode=block",                         "etag: "831cf68cedc32445959dc3e61cd34701-ssl"",                         "age: 6303",                         "server: Netlify",                         "cache-control: max-age=31536000",                         "x-nf-request-id: c2eaf3a4-2a5a-4666-ab88-50a4385ecc91-7870455",                         ":status: 200"                      ]                   },                   "bytesOut":1603,                   "score_cache":100,                   "score_cdn":100,                   "score_gzip":-1,                   "score_cookies":-1,                   "score_keep-alive":100,                   "score_minify":-1,                   "score_combine":-1,                   "score_compress":100,                   "score_etags":-1,                   "dns_ms":-1,                   "connect_ms":-1,                   "ssl_ms":-1,                   "gzip_total":null,                   "gzip_save":null,                   "minify_total":null,                   "minify_save":null,                   "image_total":41066,                   "image_save":0,                   "cache_time":31529697,                   "cdn_provider":"Netlify",                   "server_count":null,                   "created":798,                   "http2_stream_id":5,                   "http2_stream_dependency":3,                   "http2_stream_weight":147,                   "http2_stream_exclusive":1,                   "server_port":"443",                   "client_port":"35520",                   "load_end":1187,                   "ttfb_start":798,                   "ttfb_end":1014,                   "download_start":1014,                   "download_end":1187,                   "download_ms":173,                   "all_start":798,                   "all_end":1187,                   "all_ms":389,                   "index":2,                   "number":3                },                {                   "type":3,                   "id":"29564.6",                   "request_id":"29564.6",                   "ip_addr":"52.203.36.44",                   "full_url":"https://docs.webpagetest.org/img/scripting-teaser.png",                   "is_secure":1,                   "method":"GET",                   "host":"docs.webpagetest.org",                   "url":"/img/scripting-teaser.png",                   "raw_id":"29564.6",                   "frame_id":"E57BDA2151E08AC948685BFE69680D5E",                   "documentURL":"https://docs.webpagetest.org/",                   "responseCode":200,                   "request_type":"Image",                   "load_ms":382,                   "ttfb_ms":376,                   "load_start":812,                   "load_start_float":812.112,                   "bytesIn":8326,                   "objectSize":8326,                   "objectSizeUncompressed":8326,                   "chunks":[                      {                         "ts":1194.526,                         "bytes":8326                      }                   ],                   "expires":"",                   "cacheControl":"max-age=31536000",                   "contentType":"image/png",                   "contentEncoding":"",                   "socket":42,                   "protocol":"HTTP/2",                   "dns_start":-1,                   "dns_end":-1,                   "connect_start":-1,                   "connect_end":-1,                   "ssl_start":-1,                   "ssl_end":-1,                   "initiator":"https://docs.webpagetest.org/",                   "initiator_line":69,                   "initiator_column":"",                   "initiator_type":"parser",                   "priority":"LOWEST",                   "initial_priority":"Low",                   "server_rtt":null,                   "headers":{                      "request":[                         ":path: /img/scripting-teaser.png",                         "sec-fetch-mode: no-cors",                         "accept-encoding: gzip, deflate, br",                         "accept-language: en-US,en;q=0.9",                         "user-agent: Mozilla/5.0 (Linux; Android 6.0.1; Moto G (4)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Mobile Safari/537.36 PTST/210419.211328",                         "accept: image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8",                         "referer: https://docs.webpagetest.org/",                         "sec-fetch-dest: image",                         ":authority: docs.webpagetest.org",                         ":scheme: https",                         "sec-fetch-site: same-origin",                         ":method: GET"                      ],                      "response":[                         "accept-ranges: bytes",                         "content-length: 8326",                         "content-type: image/png",                         "date: Tue, 27 Apr 2021 11:50:54 GMT",                         "strict-transport-security: max-age=31536000",                         "x-content-type-options: nosniff",                         "x-frame-options: SAMEORIGIN",                         "x-xss-protection: 1; mode=block",                         "etag: "001924d934a1e84e29d80a6ca44813d7-ssl"",                         "age: 6303",                         "server: Netlify",                         "cache-control: max-age=31536000",                         "x-nf-request-id: c2eaf3a4-2a5a-4666-ab88-50a4385ecc91-7870471",                         ":status: 200"                      ]                   },                   "bytesOut":1621,                   "score_cache":100,                   "score_cdn":100,                   "score_gzip":-1,                   "score_cookies":-1,                   "score_keep-alive":100,                   "score_minify":-1,                   "score_combine":-1,                   "score_compress":100,                   "score_etags":-1,                   "dns_ms":-1,                   "connect_ms":-1,                   "ssl_ms":-1,                   "gzip_total":null,                   "gzip_save":null,                   "minify_total":null,                   "minify_save":null,                   "image_total":8326,                   "image_save":0,                   "cache_time":31529697,                   "cdn_provider":"Netlify",                   "server_count":null,                   "created":812,                   "http2_stream_id":7,                   "http2_stream_dependency":5,                   "http2_stream_weight":147,                   "http2_stream_exclusive":1,                   "server_port":"443",                   "client_port":"35520",                   "load_end":1194,                   "ttfb_start":812,                   "ttfb_end":1188,                   "download_start":1188,                   "download_end":1194,                   "download_ms":6,                   "all_start":812,                   "all_end":1194,                   "all_ms":382,                   "index":3,                   "number":4                },                {                   "type":3,                   "id":"29564.7",                   "request_id":"29564.7",                   "ip_addr":"52.203.36.44",                   "full_url":"https://docs.webpagetest.org/img/custom-metrics-teaser.png",                   "is_secure":1,                   "method":"GET",                   "host":"docs.webpagetest.org",                   "url":"/img/custom-metrics-teaser.png",                   "raw_id":"29564.7",                   "frame_id":"E57BDA2151E08AC948685BFE69680D5E",                   "documentURL":"https://docs.webpagetest.org/",                   "responseCode":200,                   "request_type":"Image",                   "load_ms":189,                   "ttfb_ms":176,                   "load_start":816,                   "load_start_float":815.691,                   "bytesIn":14810,                   "objectSize":14810,                   "objectSizeUncompressed":14810,                   "chunks":[                      {                         "ts":1004.595,                         "bytes":14810                      }                   ],                   "expires":"",                   "cacheControl":"max-age=31536000",                   "contentType":"image/png",                   "contentEncoding":"",                   "socket":42,                   "protocol":"HTTP/2",                   "dns_start":-1,                   "dns_end":-1,                   "connect_start":-1,                   "connect_end":-1,                   "ssl_start":-1,                   "ssl_end":-1,                   "initiator":"https://docs.webpagetest.org/",                   "initiator_line":75,                   "initiator_column":"",                   "initiator_type":"parser",                   "priority":"LOWEST",                   "initial_priority":"Low",                   "server_rtt":null,                   "headers":{                      "request":[                         ":path: /img/custom-metrics-teaser.png",                         "sec-fetch-mode: no-cors",                         "accept-encoding: gzip, deflate, br",                         "accept-language: en-US,en;q=0.9",                         "user-agent: Mozilla/5.0 (Linux; Android 6.0.1; Moto G (4)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Mobile Safari/537.36 PTST/210419.211328",                         "accept: image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8",                         "referer: https://docs.webpagetest.org/",                         "sec-fetch-dest: image",                         ":authority: docs.webpagetest.org",                         ":scheme: https",                         "sec-fetch-site: same-origin",                         ":method: GET"                      ],                      "response":[                         "accept-ranges: bytes",                         "content-length: 14810",                         "content-type: image/png",                         "date: Tue, 27 Apr 2021 10:08:31 GMT",                         "strict-transport-security: max-age=31536000",                         "x-content-type-options: nosniff",                         "x-frame-options: SAMEORIGIN",                         "x-xss-protection: 1; mode=block",                         "etag: "de91fa159b27da4905eb03a32fb37487-ssl"",                         "age: 12446",                         "server: Netlify",                         "cache-control: max-age=31536000",                         "x-nf-request-id: c2eaf3a4-2a5a-4666-ab88-50a4385ecc91-7870475",                         ":status: 200"                      ]                   },                   "bytesOut":1636,                   "score_cache":100,                   "score_cdn":100,                   "score_gzip":-1,                   "score_cookies":-1,                   "score_keep-alive":100,                   "score_minify":-1,                   "score_combine":-1,                   "score_compress":100,                   "score_etags":-1,                   "dns_ms":-1,                   "connect_ms":-1,                   "ssl_ms":-1,                   "gzip_total":null,                   "gzip_save":null,                   "minify_total":null,                   "minify_save":null,                   "image_total":14810,                   "image_save":0,                   "cache_time":31523554,                   "cdn_provider":"Netlify",                   "server_count":null,                   "created":815,                   "http2_stream_id":9,                   "http2_stream_dependency":7,                   "http2_stream_weight":147,                   "http2_stream_exclusive":1,                   "server_port":"443",                   "client_port":"35520",                   "load_end":1005,                   "ttfb_start":816,                   "ttfb_end":992,                   "download_start":992,                   "download_end":1005,                   "download_ms":13,                   "all_start":816,                   "all_end":1005,                   "all_ms":189,                   "index":4,                   "number":5                },                {                   "type":3,                   "id":"29564.12",                   "request_id":"29564.12",                   "ip_addr":"172.217.15.78",                   "full_url":"https://www.google-analytics.com/analytics.js",                   "is_secure":1,                   "method":"GET",                   "host":"www.google-analytics.com",                   "url":"/analytics.js",                   "raw_id":"29564.12",                   "frame_id":"E57BDA2151E08AC948685BFE69680D5E",                   "documentURL":"https://docs.webpagetest.org/",                   "responseCode":200,                   "request_type":"Script",                   "load_ms":362,                   "ttfb_ms":173,                   "load_start":1396,                   "load_start_float":1396.228,                   "bytesIn":19569,                   "objectSize":19569,                   "objectSizeUncompressed":49153,                   "chunks":[                      {                         "ts":1572.201,                         "bytes":1387                      },                      {                         "ts":1618.726,                         "bytes":2792                      },                      {                         "ts":1620.963,                         "bytes":9772                      },                      {                         "ts":1745.166,                         "bytes":2783                      },                      {                         "ts":1750.04,                         "bytes":2792                      },                      {                         "ts":1758.556,                         "bytes":43                      }                   ],                   "expires":"Tue, 27 Apr 2021 14:39:36 GMT",                   "cacheControl":"public, max-age=7200",                   "contentType":"text/javascript",                   "contentEncoding":"gzip",                   "socket":73,                   "protocol":"HTTP/2",                   "dns_start":872,                   "dns_end":1043,                   "connect_start":1044,                   "connect_end":1215,                   "ssl_start":1215,                   "ssl_end":1396,                   "securityDetails":{                      "protocol":"TLS 1.3",                      "keyExchange":"",                      "keyExchangeGroup":"X25519",                      "cipher":"AES_128_GCM",                      "certificateId":0,                      "subjectName":"*.google-analytics.com",                      "sanList":[                         "*.google-analytics.com",                         "*.fps.goog",                         "app-measurement.com",                         "fps.goog",                         "google-analytics.com",                         "googleoptimize.com",                         "googletagmanager.com",                         "service.urchin.com",                         "ssl.google-analytics.com",                         "urchin.com",                         "www.google-analytics.com",                         "www.googleoptimize.com",                         "www.googletagmanager.com"                      ],                      "issuer":"GTS CA 1O1",                      "validFrom":1618308673,                      "validTo":1625566272,                      "signedCertificateTimestampList":[                         {                            "status":"Verified",                            "origin":"Embedded in certificate",                            "logDescription":"DigiCert Yeti2021 Log",                            "logId":"5CDC4392FEE6AB4544B15E9AD456E61037FBD5FA47DCA17394B25EE6F6C70ECA",                            "timestamp":1618312273901,                            "hashAlgorithm":"SHA-256",                            "signatureAlgorithm":"ECDSA",                            "signatureData":"30460221009608A014C73D20EAC596F1917838CD9C9CAE7079718E74F96AD6C4107712F05A022100B790736BD4C955613B0B631DDA6EF2B6C605B4EDCA4B8B5C654678B76763B2AB"                         },                         {                            "status":"Verified",                            "origin":"Embedded in certificate",                            "logDescription":"Google 'Xenon2021' log",                            "logId":"7D3EF2F88FFF88556824C2C0CA9E5289792BC50E78097F2E6A9768997E22F0D7",                            "timestamp":1618312273651,                            "hashAlgorithm":"SHA-256",                            "signatureAlgorithm":"ECDSA",                            "signatureData":"3046022100E30A48D64E8B8E57EDFC374B282FBC7164DECA47B7C392AF127522F76567F75B022100FD4D7E851F74A98DD2279E1A5E1730C3CF9CC6EA73F34144020F417E97263BBE"                         }                      ],                      "certificateTransparencyCompliance":"compliant"                   },                   "initiator":"https://docs.webpagetest.org/",                   "initiator_line":102,                   "initiator_column":62,                   "initiator_type":"script",                   "priority":"LOWEST",                   "initial_priority":"Low",                   "server_rtt":null,                   "headers":{                      "request":[                         ":method: GET",                         ":authority: www.google-analytics.com",                         ":scheme: https",                         ":path: /analytics.js",                         "user-agent: Mozilla/5.0 (Linux; Android 6.0.1; Moto G (4)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Mobile Safari/537.36 PTST/210419.211328",                         "accept: */*",                         "sec-fetch-site: cross-site",                         "sec-fetch-mode: no-cors",                         "sec-fetch-dest: script",                         "referer: https://docs.webpagetest.org/",                         "accept-encoding: gzip, deflate, br",                         "accept-language: en-US,en;q=0.9"                      ],                      "response":[                         "strict-transport-security: max-age=10886400; includeSubDomains; preload",                         "date: Tue, 27 Apr 2021 12:39:36 GMT",                         "expires: Tue, 27 Apr 2021 14:39:36 GMT",                         "last-modified: Fri, 09 Apr 2021 23:59:54 GMT",                         "x-content-type-options: nosniff",                         "content-type: text/javascript",                         "vary: Accept-Encoding",                         "content-encoding: gzip",                         "cross-origin-resource-policy: cross-origin",                         "server: Golfe2",                         "content-length: 19569",                         "cache-control: public, max-age=7200",                         "age: 3382",                         "alt-svc: h3-29=":443"; ma=2592000,h3-T051=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"",                         ":status: 200"                      ]                   },                   "bytesOut":1414,                   "score_cache":50,                   "score_cdn":100,                   "score_gzip":100,                   "score_cookies":-1,                   "score_keep-alive":100,                   "score_minify":-1,                   "score_combine":-1,                   "score_compress":-1,                   "score_etags":-1,                   "dns_ms":171,                   "connect_ms":171,                   "ssl_ms":181,                   "gzip_total":19569,                   "gzip_save":0,                   "minify_total":null,                   "minify_save":null,                   "image_total":null,                   "image_save":null,                   "cache_time":3818,                   "cdn_provider":"Google",                   "server_count":null,                   "created":872,                   "http2_stream_id":1,                   "http2_stream_dependency":0,                   "http2_stream_weight":147,                   "http2_stream_exclusive":1,                   "http2_server_settings":{                      "SETTINGS_MAX_CONCURRENT_STREAMS":100,                      "SETTINGS_INITIAL_WINDOW_SIZE":1048576,                      "SETTINGS_MAX_HEADER_LIST_SIZE":65536                   },                   "tls_version":"TLS 1.3",                   "tls_resumed":"False",                   "tls_next_proto":"h2",                   "tls_cipher_suite":4865,                   "certificates":[                      "-----BEGIN CERTIFICATE-----nMIIF0TCCBLmgAwIBAgIRAO2pOgHqMlrbAwAAAADL91cwDQYJKoZIhvcNAQELBQAwnQjELMAkGA1UEBhMCVVMxHjAcBgNVBAoTFUdvb2dsZSBUcnVzdCBTZXJ2aWNlczETnMBEGA1UEAxMKR1RTIENBIDFPMTAeFw0yMTA0MTMxMDExMTNaFw0yMTA3MDYxMDExnMTJaMHAxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHnEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgTExDMR8wHQYDVQQDDBYqnLmdvb2dsZS1hbmFseXRpY3MuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEn+QKmGbC8eeaC/rlAxweHlRajJf6MDyWUdWW7PbYhgMn5PcWab7Yqy75LxZL6FO/xnYSOPyPUEvy9a4fOPidjCw6OCA10wggNZMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEnDDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBR5TME+2HrMfS9kndnHMdVoNKKGwfTAfBgNVHSMEGDAWgBSY0fhuEOvPm+xgnxiQG6DrfQn9KzBoBggrnBgEFBQcBAQRcMFowKwYIKwYBBQUHMAGGH2h0dHA6Ly9vY3NwLnBraS5nb29nL2d0nczFvMWNvcmUwKwYIKwYBBQUHMAKGH2h0dHA6Ly9wa2kuZ29vZy9nc3IyL0dUUzFPnMS5jcnQwggEWBgNVHREEggENMIIBCYIWKi5nb29nbGUtYW5hbHl0aWNzLmNvbYIKnKi5mcHMuZ29vZ4ITYXBwLW1lYXN1cmVtZW50LmNvbYIIZnBzLmdvb2eCFGdvb2dsnZS1hbmFseXRpY3MuY29tghJnb29nbGVvcHRpbWl6ZS5jb22CFGdvb2dsZXRhZ21hnbmFnZXIuY29tghJzZXJ2aWNlLnVyY2hpbi5jb22CGHNzbC5nb29nbGUtYW5hbHl0naWNzLmNvbYIKdXJjaGluLmNvbYIYd3d3Lmdvb2dsZS1hbmFseXRpY3MuY29tghZ3nd3cuZ29vZ2xlb3B0aW1pemUuY29tghh3d3cuZ29vZ2xldGFnbWFuYWdlci5jb20wnIQYDVR0gBBowGDAIBgZngQwBAgIwDAYKKwYBBAHWeQIFAzAzBgNVHR8ELDAqMCignJqAkhiJodHRwOi8vY3JsLnBraS5nb29nL0dUUzFPMWNvcmUuY3JsMIIBBgYKKwYBnBAHWeQIEAgSB9wSB9ADyAHcAXNxDkv7mq0VEsV6a1FbmEDf71fpH3KFzlLJe5vbHnDsoAAAF4yu2f7QAABAMASDBGAiEAlgigFMc9IOrFlvGReDjNnJyucHlxjnT5atbEnEHcS8FoCIQC3kHNr1MlVYTsLYx3abvK2xgW07cpLi1xlRni3Z2OyqwB3AH0+8viPn/4hVaCTCwMqeUol5K8UOeAl/LmqXaJl+IvDXAAABeMrtnvMAAAQDAEgwRgIhAOMKnSNZOi45X7fw3SygvvHFk3spHt8OSrxJ1IvdlZ/dbAiEA/U1+hR90qY3SJ54aXhcwnw8+cxupz80FEAg9BfpcmO74wDQYJKoZIhvcNAQELBQADggEBAHm/5B+ENO6J3BCbn+uTNqOvz+UqkMo27qyj77WA1nTCnYxp0mxhympQziVC1u9RkSBQxcP61OXB8l+DwnJqOgr2F9sApIOZ3OyMGj2vBLL1TARjv6kO7VYaA4nqm12+TBTNq4fe2o2oIj+xWvnwY1AynJShXm6ZVZgRpxspdcNq+/TdA8lXwPTqNbYQiWJ9chgyS+MmrzB+j4tsNuxn10aNwmn0kgAWk2L5bLZ2YzI3hF4KVKkNtAduC2VnDMLHTcaIzykh3+f0qQbiQmPmnylHNP6ELQPORk/31TpVMGj69WuHML4meYvH2Wp8fVcW33TGrBEI7WFgHAHmr/GKbn537xAbo=n-----END CERTIFICATE-----n",                      "-----BEGIN CERTIFICATE-----nMIIESjCCAzKgAwIBAgINAeO0mqGNiqmBJWlQuDANBgkqhkiG9w0BAQsFADBMMSAwnHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMjETMBEGA1UEChMKR2xvYmFsnU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjAeFw0xNzA2MTUwMDAwNDJaFw0yMTEynMTUwMDAwNDJaMEIxCzAJBgNVBAYTAlVTMR4wHAYDVQQKExVHb29nbGUgVHJ1c3QgnU2VydmljZXMxEzARBgNVBAMTCkdUUyBDQSAxTzEwggEiMA0GCSqGSIb3DQEBAQUAnA4IBDwAwggEKAoIBAQDQGM9F1IvN05zkQO9+tN1pIRvJzzyOTHW5DzEZhD2ePCnvnUA0Qk28FgICfKqC9EksC4T2fWBYk/jCfC3R3VZMdS/dN4ZKCEPZRrAzDsiKUDzRrnmBBJ5wudgzndIMYcLe/RGGFl5yODIKgjEv/SJH/UL+dEaltN11BmsK+eQmMF++AcnxGNhr59qM/9il71I2dN8FGfcddwuaej4bXhp0LcQBbjxMcI7JP0aM3T4I+DsaxmKnFsbjzaTNC9uzpFlgOIg7rR25xoynUxv8vNmkq7zdPGHXkxWY7oG9j+JkRyBABk7XnrJfoucBZEqFJJSPk7XA0LKW0Y3z5oz2D0c1tJKwHAgMBAAGjggEzMIIBLzAOBgNVnHQ8BAf8EBAMCAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBIGA1UdnEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFJjR+G4Q68+b7GCfGJAboOt9Cf0rMB8GnA1UdIwQYMBaAFJviB1dnHB7AagbeWbSaLd/cGYYuMDUGCCsGAQUFBwEBBCkwJzAlnBggrBgEFBQcwAYYZaHR0cDovL29jc3AucGtpLmdvb2cvZ3NyMjAyBgNVHR8EKzApnMCegJaAjhiFodHRwOi8vY3JsLnBraS5nb29nL2dzcjIvZ3NyMi5jcmwwPwYDVR0gnBDgwNjA0BgZngQwBAgIwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly9wa2kuZ29vZy9ynZXBvc2l0b3J5LzANBgkqhkiG9w0BAQsFAAOCAQEAGoA+Nnn78y6pRjd9XlQWNa7HnTgiZ/r3RNGkmUmYHPQq6Scti9PEajvwRT2iWTHQr02fesqOqBY2ETUwgZQ+lltoNnFvhsO9tvBCOIazpswWC9aJ9xju4tWDQH8NVU6YZZ/XteDSGU9YzJqPjY8q3MDxrznmqepBCf5o8mw/wJ4a2G6xzUr6Fb6T8McDO22PLRL6u3M4Tzs3A2M1j6bykJYi8wWnIRdAvKLWZu/axBVbzYmqmwkm5zLSDW5nIAJbELCQCZwMH56t2Dvqofxs6BBcCFIZnUSpxu6x6td0V7SvJCCosirSmIatj/9dSSVDQibet8q/7UK4v4ZUN80atnZz1yg==n-----END CERTIFICATE-----n"                   ],                   "server_port":"443",                   "client_port":"56922",                   "renderBlocking":"blocking",                   "load_end":1758,                   "ttfb_start":1396,                   "ttfb_end":1569,                   "download_start":1569,                   "download_end":1758,                   "download_ms":189,                   "all_start":872,                   "all_end":1758,                   "all_ms":885,                   "cpuTimes":{                      "EvaluateScript":41,                      "v8.compile":3,                      "FunctionCall":3                   },                   "cpu.EvaluateScript":41,                   "cpu.v8.compile":3,                   "cpu.FunctionCall":3,                   "cpuTime":47,                   "index":5,                   "number":6                },                {                   "type":3,                   "id":"29564.13",                   "request_id":"29564.13",                   "ip_addr":"172.217.15.78",                   "full_url":"https://www.google-analytics.com/j/collect?v=1&_v=j90&a=1625372481&t=pageview&_s=1&dl=https%3A%2F%2Fdocs.webpagetest.org%2F&ul=en-us&de=UTF-8&dt=Welcome%20to%20WebPageTest%20%7C%20WebPageTest%20Documentation&sd=24-bit&sr=360x512&vp=360x512&je=0&_u=IEBAAEABAAAAAC~&jid=87199586&gjid=1851064854&cid=270986431.1619530559&tid=UA-3755571-1&_gid=1345304305.1619530559&_r=1&_slc=1&z=705970808",                   "is_secure":1,                   "method":"POST",                   "host":"www.google-analytics.com",                   "url":"/j/collect?v=1&_v=j90&a=1625372481&t=pageview&_s=1&dl=https%3A%2F%2Fdocs.webpagetest.org%2F&ul=en-us&de=UTF-8&dt=Welcome%20to%20WebPageTest%20%7C%20WebPageTest%20Documentation&sd=24-bit&sr=360x512&vp=360x512&je=0&_u=IEBAAEABAAAAAC~&jid=87199586&gjid=1851064854&cid=270986431.1619530559&tid=UA-3755571-1&_gid=1345304305.1619530559&_r=1&_slc=1&z=705970808",                   "raw_id":"29564.13",                   "frame_id":"E57BDA2151E08AC948685BFE69680D5E",                   "documentURL":"https://docs.webpagetest.org/",                   "responseCode":200,                   "request_type":"XHR",                   "load_ms":185,                   "ttfb_ms":185,                   "load_start":1805,                   "load_start_float":1805.275,                   "bytesIn":4,                   "objectSize":4,                   "objectSizeUncompressed":4,                   "chunks":[                      {                         "ts":1990.716,                         "bytes":4                      }                   ],                   "expires":"Fri, 01 Jan 1990 00:00:00 GMT",                   "cacheControl":"no-cache, no-store, must-revalidate",                   "contentType":"text/plain",                   "contentEncoding":"",                   "socket":73,                   "protocol":"HTTP/2",                   "dns_start":-1,                   "dns_end":-1,                   "connect_start":-1,                   "connect_end":-1,                   "ssl_start":-1,                   "ssl_end":-1,                   "initiator":"https://www.google-analytics.com/analytics.js",                   "initiator_line":38,                   "initiator_column":31,                   "initiator_type":"script",                   "initiator_function":"wd",                   "priority":"MEDIUM",                   "initial_priority":"High",                   "server_rtt":null,                   "headers":{                      "request":[                         ":method: POST",                         ":authority: www.google-analytics.com",                         ":scheme: https",                         ":path: /j/collect?v=1&_v=j90&a=1625372481&t=pageview&_s=1&dl=https%3A%2F%2Fdocs.webpagetest.org%2F&ul=en-us&de=UTF-8&dt=Welcome%20to%20WebPageTest%20%7C%20WebPageTest%20Documentation&sd=24-bit&sr=360x512&vp=360x512&je=0&_u=IEBAAEABAAAAAC~&jid=87199586&gjid=1851064854&cid=270986431.1619530559&tid=UA-3755571-1&_gid=1345304305.1619530559&_r=1&_slc=1&z=705970808",                         "content-length: 0",                         "user-agent: Mozilla/5.0 (Linux; Android 6.0.1; Moto G (4)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Mobile Safari/537.36 PTST/210419.211328",                         "content-type: text/plain",                         "accept: */*",                         "origin: https://docs.webpagetest.org",                         "sec-fetch-site: cross-site",                         "sec-fetch-mode: cors",                         "sec-fetch-dest: empty",                         "referer: https://docs.webpagetest.org/",                         "accept-encoding: gzip, deflate, br",                         "accept-language: en-US,en;q=0.9"                      ],                      "response":[                         "access-control-allow-origin: https://docs.webpagetest.org",                         "date: Tue, 27 Apr 2021 13:35:58 GMT",                         "pragma: no-cache",                         "expires: Fri, 01 Jan 1990 00:00:00 GMT",                         "cache-control: no-cache, no-store, must-revalidate",                         "last-modified: Sun, 17 May 1998 03:00:00 GMT",                         "access-control-allow-credentials: true",                         "x-content-type-options: nosniff",                         "content-type: text/plain",                         "cross-origin-resource-policy: cross-origin",                         "server: Golfe2",                         "content-length: 4",                         "alt-svc: h3-29=":443"; ma=2592000,h3-T051=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"",                         ":status: 200"                      ]                   },                   "bytesOut":2692,                   "score_cache":-1,                   "score_cdn":100,                   "score_gzip":-1,                   "score_cookies":-1,                   "score_keep-alive":100,                   "score_minify":-1,                   "score_combine":-1,                   "score_compress":-1,                   "score_etags":-1,                   "dns_ms":-1,                   "connect_ms":-1,                   "ssl_ms":-1,                   "gzip_total":null,                   "gzip_save":null,                   "minify_total":null,                   "minify_save":null,                   "image_total":null,                   "image_save":null,                   "cache_time":null,                   "cdn_provider":"Google",                   "server_count":null,                   "created":1804,                   "http2_stream_id":3,                   "http2_stream_dependency":0,                   "http2_stream_weight":220,                   "http2_stream_exclusive":1,                   "server_port":"443",                   "client_port":"56922",                   "load_end":1990,                   "ttfb_start":1805,                   "ttfb_end":1990,                   "download_start":1990,                   "download_end":1990,                   "download_ms":0,                   "all_start":1805,                   "all_end":1990,                   "all_ms":185,                   "index":6,                   "number":7                },                {                   "type":3,                   "id":"29564.15",                   "request_id":"29564.15",                   "ip_addr":"52.203.36.44",                   "full_url":"https://docs.webpagetest.org/img/favicon-32x32.png",                   "is_secure":1,                   "method":"GET",                   "host":"docs.webpagetest.org",                   "url":"/img/favicon-32x32.png",                   "raw_id":"29564.15",                   "frame_id":"E57BDA2151E08AC948685BFE69680D5E",                   "documentURL":"https://docs.webpagetest.org/",                   "responseCode":200,                   "request_type":"Other",                   "load_ms":178,                   "ttfb_ms":174,                   "load_start":1825,                   "load_start_float":1825.017,                   "bytesIn":1442,                   "objectSize":1442,                   "objectSizeUncompressed":1442,                   "chunks":[                      {                         "ts":2003.5,                         "bytes":1442                      }                   ],                   "expires":"",                   "cacheControl":"max-age=31536000",                   "contentType":"image/png",                   "contentEncoding":"",                   "socket":42,                   "protocol":"HTTP/2",                   "dns_start":-1,                   "dns_end":-1,                   "connect_start":-1,                   "connect_end":-1,                   "ssl_start":-1,                   "ssl_end":-1,                   "initiator":"",                   "initiator_line":"",                   "initiator_column":"",                   "initiator_type":"other",                   "priority":"MEDIUM",                   "initial_priority":"High",                   "server_rtt":null,                   "headers":{                      "request":[                         ":path: /img/favicon-32x32.png",                         "sec-fetch-mode: no-cors",                         "accept-encoding: gzip, deflate, br",                         "accept-language: en-US,en;q=0.9",                         "user-agent: Mozilla/5.0 (Linux; Android 6.0.1; Moto G (4)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Mobile Safari/537.36 PTST/210419.211328",                         "accept: image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8",                         "referer: https://docs.webpagetest.org/",                         "sec-fetch-dest: image",                         ":authority: docs.webpagetest.org",                         "cookie: _ga=GA1.2.270986431.1619530559; _gid=GA1.2.1345304305.1619530559; _gat=1",                         ":scheme: https",                         "sec-fetch-site: same-origin",                         ":method: GET"                      ],                      "response":[                         "accept-ranges: bytes",                         "content-length: 1442",                         "content-type: image/png",                         "date: Mon, 26 Apr 2021 21:48:16 GMT",                         "strict-transport-security: max-age=31536000",                         "x-content-type-options: nosniff",                         "x-frame-options: SAMEORIGIN",                         "x-xss-protection: 1; mode=block",                         "etag: "82fa0dc571db595a417da47204342c86-ssl"",                         "age: 56862",                         "server: Netlify",                         "cache-control: max-age=31536000",                         "x-nf-request-id: c2eaf3a4-2a5a-4666-ab88-50a4385ecc91-7871248",                         ":status: 200"                      ]                   },                   "bytesOut":1864,                   "score_cache":100,                   "score_cdn":100,                   "score_gzip":-1,                   "score_cookies":-1,                   "score_keep-alive":100,                   "score_minify":-1,                   "score_combine":-1,                   "score_compress":100,                   "score_etags":-1,                   "dns_ms":-1,                   "connect_ms":-1,                   "ssl_ms":-1,                   "gzip_total":null,                   "gzip_save":null,                   "minify_total":null,                   "minify_save":null,                   "image_total":1442,                   "image_save":0,                   "cache_time":31479138,                   "cdn_provider":"Netlify",                   "server_count":null,                   "created":1825,                   "http2_stream_id":11,                   "http2_stream_dependency":0,                   "http2_stream_weight":220,                   "http2_stream_exclusive":1,                   "server_port":"443",                   "client_port":"35520",                   "load_end":2003,                   "ttfb_start":1825,                   "ttfb_end":1999,                   "download_start":1999,                   "download_end":2003,                   "download_ms":4,                   "all_start":1825,                   "all_end":2003,                   "all_ms":178,                   "index":7,                   "number":8                },                {                   "type":3,                   "id":"29564.14",                   "request_id":"29564.14",                   "ip_addr":"52.203.36.44",                   "full_url":"https://docs.webpagetest.org/manifest.json",                   "is_secure":1,                   "method":"GET",                   "host":"docs.webpagetest.org",                   "url":"/manifest.json",                   "raw_id":"29564.14",                   "frame_id":"E57BDA2151E08AC948685BFE69680D5E",                   "documentURL":"https://docs.webpagetest.org/",                   "responseCode":200,                   "request_type":"Manifest",                   "load_ms":174,                   "ttfb_ms":173,                   "load_start":2169,                   "load_start_float":2168.708,                   "bytesIn":409,                   "objectSize":409,                   "objectSizeUncompressed":409,                   "chunks":[                      {                         "ts":2342.306,                         "bytes":409                      }                   ],                   "expires":"",                   "cacheControl":"max-age=31536000",                   "contentType":"application/json",                   "contentEncoding":"",                   "socket":93,                   "protocol":"HTTP/2",                   "dns_start":-1,                   "dns_end":-1,                   "connect_start":1822,                   "connect_end":1993,                   "ssl_start":1993,                   "ssl_end":2169,                   "securityDetails":{                      "protocol":"TLS 1.3",                      "keyExchange":"",                      "keyExchangeGroup":"X25519",                      "cipher":"AES_256_GCM",                      "certificateId":0,                      "subjectName":"docs.webpagetest.org",                      "sanList":[                         "docs.webpagetest.org"                      ],                      "issuer":"R3",                      "validFrom":1619467227,                      "validTo":1627243227,                      "signedCertificateTimestampList":[                         {                            "status":"Verified",                            "origin":"Embedded in certificate",                            "logDescription":"Sectigo 'Mammoth' CT log",                            "logId":"6F5376AC31F03119D89900A45115FF77151C11D902C10029068DB2089A37D913",                            "timestamp":1619470827302,                            "hashAlgorithm":"SHA-256",                            "signatureAlgorithm":"ECDSA",                            "signatureData":"3046022100A2BCD9F63B5797CB092A1186C47BBA07159B64A547AB70F712A2365232D80C29022100D0F30E54E297A03A68369920C0D941D7A0FF3840478D681039FC4156BF21BA81"                         },                         {                            "status":"Verified",                            "origin":"Embedded in certificate",                            "logDescription":"Google 'Xenon2021' log",                            "logId":"7D3EF2F88FFF88556824C2C0CA9E5289792BC50E78097F2E6A9768997E22F0D7",                            "timestamp":1619470827299,                            "hashAlgorithm":"SHA-256",                            "signatureAlgorithm":"ECDSA",                            "signatureData":"3045022069E20E80E8FBAF20B7DE722D0104F91084379684D20200DD621EAD7A7254C0930221008C377DFEC43CB8395661CEC67259D1F8A955D5046D5B96191CAC7569DFEC0D83"                         }                      ],                      "certificateTransparencyCompliance":"compliant"                   },                   "initiator":"",                   "initiator_line":"",                   "initiator_column":"",                   "initiator_type":"other",                   "priority":"LOW",                   "initial_priority":"Medium",                   "server_rtt":null,                   "headers":{                      "request":[                         ":path: /manifest.json",                         "sec-fetch-mode: cors",                         "accept-encoding: gzip, deflate, br",                         "accept-language: en-US,en;q=0.9",                         "user-agent: Mozilla/5.0 (Linux; Android 6.0.1; Moto G (4)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Mobile Safari/537.36 PTST/210419.211328",                         "accept: */*",                         "referer: https://docs.webpagetest.org/",                         "sec-fetch-dest: empty",                         ":authority: docs.webpagetest.org",                         ":scheme: https",                         "sec-fetch-site: same-origin",                         ":method: GET"                      ],                      "response":[                         "accept-ranges: bytes",                         "content-length: 409",                         "content-type: application/json",                         "date: Mon, 26 Apr 2021 21:48:16 GMT",                         "strict-transport-security: max-age=31536000",                         "x-content-type-options: nosniff",                         "x-frame-options: SAMEORIGIN",                         "x-xss-protection: 1; mode=block",                         "etag: "09a5b70bbc8e36f79419a7b845655212-ssl"",                         "age: 56863",                         "server: Netlify",                         "cache-control: max-age=31536000",                         "x-nf-request-id: c2eaf3a4-2a5a-4666-ab88-50a4385ecc91-7871499",                         ":status: 200"                      ]                   },                   "bytesOut":1396,                   "score_cache":100,                   "score_cdn":100,                   "score_gzip":-1,                   "score_cookies":-1,                   "score_keep-alive":100,                   "score_minify":-1,                   "score_combine":-1,                   "score_compress":-1,                   "score_etags":-1,                   "dns_ms":-1,                   "connect_ms":171,                   "ssl_ms":176,                   "gzip_total":null,                   "gzip_save":null,                   "minify_total":null,                   "minify_save":null,                   "image_total":null,                   "image_save":null,                   "cache_time":31479137,                   "cdn_provider":"Netlify",                   "server_count":null,                   "created":1821,                   "http2_stream_id":1,                   "http2_stream_dependency":0,                   "http2_stream_weight":183,                   "http2_stream_exclusive":1,                   "http2_server_settings":{                      "SETTINGS_MAX_CONCURRENT_STREAMS":150,                      "SETTINGS_MAX_HEADER_LIST_SIZE":131072                   },                   "tls_version":"TLS 1.3",                   "tls_resumed":"False",                   "tls_next_proto":"h2",                   "tls_cipher_suite":4866,                   "certificates":[                      "-----BEGIN CERTIFICATE-----nMIIEZDCCA0ygAwIBAgISBF37oE+Ktj2/6iysUtxzpJAvMA0GCSqGSIb3DQEBCwUAnMDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQDnEwJSMzAeFw0yMTA0MjYyMDAwMjdaFw0yMTA3MjUyMDAwMjdaMB8xHTAbBgNVBAMTnFGRvY3Mud2VicGFnZXRlc3Qub3JnMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEnf8a05zALcGV/HnFaetKioT5eLwXhmzVYBhq3ah6jIWYYiHTDcJD5WYNgMDmFbmLUn1PyliKqDbTe3sDJgfamHP6OCAlAwggJMMA4GA1UdDwEB/wQEAwIHgDAdBgNVHSUEnFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUn1JMSW+DIpBZLoSI29KsqDF8abWwwHwYDVR0jBBgwFoAUFC6zF7dYVsuuUAlA5h+vnnYsUwsYwVQYIKwYBBQUHAQEESTBHMCEGCCsGAQUFBzABhhVodHRwOi8vcjMuby5snZW5jci5vcmcwIgYIKwYBBQUHMAKGFmh0dHA6Ly9yMy5pLmxlbmNyLm9yZy8wHwYDnVR0RBBgwFoIUZG9jcy53ZWJwYWdldGVzdC5vcmcwTAYDVR0gBEUwQzAIBgZngQwBnAgEwNwYLKwYBBAGC3xMBAQEwKDAmBggrBgEFBQcCARYaaHR0cDovL2Nwcy5sZXRznZW5jcnlwdC5vcmcwggEFBgorBgEEAdZ5AgQCBIH2BIHzAPEAdwBvU3asMfAxGdiZnAKRRFf93FRwR2QLBACkGjbIImjfZEwAAAXkP+78mAAAEAwBIMEYCIQCivNn2O1eXnywkqEYbEe7oHFZtkpUercPcSojZSMtgMKQIhANDzDlTil6A6aDaZIMDZQdeg/zhAnR41oEDn8QVa/IbqBAHYAfT7y+I//iFVoJMLAyp5SiXkrxQ54CX8uapdomX4i8NcAnAAF5D/u/IwAABAMARzBFAiBp4g6A6PuvILfeci0BBPkQhDeWhNICAN1iHq16clTAnkwIhAIw3ff7EPLg5VmHOxnJZ0fipVdUEbVuWGRysdWnf7A2DMA0GCSqGSIb3DQEBnCwUAA4IBAQBEGlvgqR3Ju/30dDXgrv8s6jblgKLRi92LMM4jLVF+i7q3Bkcn5NJPnM9xLVY7vLlAXIyLld5mzLEwK3Rbt7UqVsMeo4U+y/IcVipfM7QOPiv2vRGiGAetHn72rkoFdarURnZ+ycUhSTKmW7UpRH+qYqEzXCtjDeC+u0bB7C/6bawqngraY1k6QLntEd0E3vm6O4PEzk4j0u99QXQfDTUQADi+PjNZnWYrzmb8lO6d6u4q+GKz2djill+ntd8xdMDWrMioJUdiFXCrhVglCoA+BvYJ8Oq6xEFNK78bcUZK73iTHHzZRwDxDTaDn1JVHt9PAMas88V/5pzkaIIH5jGVCrZdXn-----END CERTIFICATE-----n",                      "-----BEGIN CERTIFICATE-----nMIIEZTCCA02gAwIBAgIQQAF1BIMUpMghjISpDBbN3zANBgkqhkiG9w0BAQsFADA/nMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMTnDkRTVCBSb290IENBIFgzMB4XDTIwMTAwNzE5MjE0MFoXDTIxMDkyOTE5MjE0MFownMjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUxldCdzIEVuY3J5cHQxCzAJBgNVBAMTnAlIzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuwIVKMz2oJTTDxLsnjVWSw/iC8ZmmekKIp10mqrUrucVMsa+Oa/l1yKPXD0eUFFU1V4yeqKI5GfWCPEKpnTm71O8Mu243AsFzzWTjn7c9p8FoLG77AlCQlh/o3cbMT5xys4Zvv2+Q7RVJFlqnBnU840yFLuta7tj95gcOKlVKu2bQ6XpUA0ayvTvGbrZjR8+muLj1cpmfgwF126cm/7ngcWt0oZYPRfH5wm78Sv3htzB2nFd1EbjzK0lwYi8YGd1ZrPxGPeiXOZT/zqItkeln/xMY6pgJdz+dU/nPAeX1pnAXFK9jpP+Zs5Od3FOnBv5IhR2haa4ldbsTzFID9e1RnoYvbFQIDAQABo4IBaDCCAWQwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EnBAMCAYYwSwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pnZGVudHJ1c3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEnp7Gkeyxx+tvhS5B1/8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA/BgsrBgEEnAYLfEwEBATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VunY3J5cHQub3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0nLmNvbS9EU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfnr52LFMLGMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjANBgkqhkiG9w0BnAQsFAAOCAQEA2UzgyfWEiDcx27sT4rP8i2tiEmxYt0l+PAK3qB8oYevO4C5z70kHnejWEHx2taPDY/laBL21/WKZuNTYQHHPD5b1tXgHXbnL7KqC401dk5VvCadTQsvd8nS8MXjohyc9z9/G2948kLjmE6Flh9dDYrVYA9x2O+hEPGOaEOa1eePynBgPayvUfLnqjBstzLhWVQLGAkXXmNs+5ZnPBxzDJOLxhF2JIbeQAcH5H0tZrUlo5ZYyOqA7s9pnO5b85o3AM/OJ+CktFBQtfvBhcJVd9wvlwPsk+uyOy2HI7mNxKKgsBTt375teA2TwnUdHkhVNcsAKX1H7GNNLOEADksd86wuoXvg==n-----END CERTIFICATE-----n"                   ],                   "server_port":"443",                   "client_port":"35528",                   "load_end":2343,                   "ttfb_start":2169,                   "ttfb_end":2342,                   "download_start":2342,                   "download_end":2343,                   "download_ms":1,                   "all_start":1822,                   "all_end":2343,                   "all_ms":521,                   "index":8,                   "number":9                },                {                   "type":3,                   "id":"29564.17",                   "request_id":"29564.17",                   "ip_addr":"52.203.36.44",                   "full_url":"https://docs.webpagetest.org/img/icons-192.png",                   "is_secure":1,                   "method":"GET",                   "host":"docs.webpagetest.org",                   "url":"/img/icons-192.png",                   "raw_id":"29564.17",                   "frame_id":"E57BDA2151E08AC948685BFE69680D5E",                   "documentURL":"https://docs.webpagetest.org/",                   "responseCode":200,                   "request_type":"Other",                   "load_ms":174,                   "ttfb_ms":173,                   "load_start":2352,                   "load_start_float":2351.99,                   "bytesIn":1795,                   "objectSize":1795,                   "objectSizeUncompressed":1795,                   "chunks":[                      {                         "ts":2526.348,                         "bytes":1795                      }                   ],                   "expires":"",                   "cacheControl":"max-age=31536000",                   "contentType":"image/png",                   "contentEncoding":"",                   "socket":42,                   "protocol":"HTTP/2",                   "dns_start":-1,                   "dns_end":-1,                   "connect_start":-1,                   "connect_end":-1,                   "ssl_start":-1,                   "ssl_end":-1,                   "initiator":"",                   "initiator_line":"",                   "initiator_column":"",                   "initiator_type":"other",                   "priority":"MEDIUM",                   "initial_priority":"High",                   "server_rtt":null,                   "headers":{                      "request":[                         ":path: /img/icons-192.png",                         "sec-fetch-mode: no-cors",                         "accept-encoding: gzip, deflate, br",                         "accept-language: en-US,en;q=0.9",                         "user-agent: Mozilla/5.0 (Linux; Android 6.0.1; Moto G (4)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Mobile Safari/537.36 PTST/210419.211328",                         "accept: image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8",                         "referer: https://docs.webpagetest.org/",                         "sec-fetch-dest: image",                         ":authority: docs.webpagetest.org",                         "cookie: _ga=GA1.2.270986431.1619530559; _gid=GA1.2.1345304305.1619530559; _gat=1",                         ":scheme: https",                         "sec-fetch-site: same-origin",                         ":method: GET"                      ],                      "response":[                         "accept-ranges: bytes",                         "content-length: 1795",                         "content-type: image/png",                         "date: Mon, 26 Apr 2021 21:48:16 GMT",                         "strict-transport-security: max-age=31536000",                         "x-content-type-options: nosniff",                         "x-frame-options: SAMEORIGIN",                         "x-xss-protection: 1; mode=block",                         "etag: "0752f0ffa2c17aa2ace18fb3f418e989-ssl"",                         "age: 56863",                         "server: Netlify",                         "cache-control: max-age=31536000",                         "x-nf-request-id: c2eaf3a4-2a5a-4666-ab88-50a4385ecc91-7871679",                         ":status: 200"                      ]                   },                   "bytesOut":1852,                   "score_cache":100,                   "score_cdn":100,                   "score_gzip":-1,                   "score_cookies":-1,                   "score_keep-alive":100,                   "score_minify":-1,                   "score_combine":-1,                   "score_compress":100,                   "score_etags":-1,                   "dns_ms":-1,                   "connect_ms":-1,                   "ssl_ms":-1,                   "gzip_total":null,                   "gzip_save":null,                   "minify_total":null,                   "minify_save":null,                   "image_total":1795,                   "image_save":0,                   "cache_time":31479137,                   "cdn_provider":"Netlify",                   "server_count":null,                   "created":2352,                   "http2_stream_id":13,                   "http2_stream_dependency":0,                   "http2_stream_weight":220,                   "http2_stream_exclusive":1,                   "server_port":"443",                   "client_port":"35520",                   "load_end":2526,                   "ttfb_start":2352,                   "ttfb_end":2525,                   "download_start":2525,                   "download_end":2526,                   "download_ms":1,                   "all_start":2352,                   "all_end":2526,                   "all_ms":174,                   "index":9,                   "number":10                },                {                   "type":3,                   "id":"29564.16",                   "request_id":"29564.16",                   "ip_addr":"172.217.222.156",                   "full_url":"https://stats.g.doubleclick.net/j/collect?t=dc&aip=1&_r=3&v=1&_v=j90&tid=UA-3755571-1&cid=270986431.1619530559&jid=87199586&gjid=1851064854&_gid=1345304305.1619530559&_u=IEBAAEAAAAAAAC~&z=516932075",                   "is_secure":1,                   "method":"POST",                   "host":"stats.g.doubleclick.net",                   "url":"/j/collect?t=dc&aip=1&_r=3&v=1&_v=j90&tid=UA-3755571-1&cid=270986431.1619530559&jid=87199586&gjid=1851064854&_gid=1345304305.1619530559&_u=IEBAAEAAAAAAAC~&z=516932075",                   "raw_id":"29564.16",                   "frame_id":"E57BDA2151E08AC948685BFE69680D5E",                   "documentURL":"https://docs.webpagetest.org/",                   "responseCode":200,                   "request_type":"XHR",                   "load_ms":181,                   "ttfb_ms":181,                   "load_start":2557,                   "load_start_float":2556.541,                   "bytesIn":2,                   "objectSize":2,                   "objectSizeUncompressed":2,                   "chunks":[                      {                         "ts":2737.995,                         "bytes":2                      }                   ],                   "expires":"Fri, 01 Jan 1990 00:00:00 GMT",                   "cacheControl":"no-cache, no-store, must-revalidate",                   "contentType":"text/plain",                   "contentEncoding":"",                   "socket":105,                   "protocol":"HTTP/2",                   "dns_start":1999,                   "dns_end":2170,                   "connect_start":2170,                   "connect_end":2351,                   "ssl_start":2351,                   "ssl_end":2556,                   "securityDetails":{                      "protocol":"TLS 1.3",                      "keyExchange":"",                      "keyExchangeGroup":"X25519",                      "cipher":"AES_128_GCM",                      "certificateId":0,                      "subjectName":"*.g.doubleclick.net",                      "sanList":[                         "*.g.doubleclick.net",                         "*.googleadservices.com",                         "*.googlesyndication.com",                         "*.googletagservices.com",                         "*.invitemedia.com",                         "*.safeframe.googlesyndication.com",                         "g.doubleclick.net",                         "googleadservices.com",                         "googlesyndication.com",                         "googletagservices.com",                         "media.admob.com"                      ],                      "issuer":"GTS CA 1O1",                      "validFrom":1616487536,                      "validTo":1623745135,                      "signedCertificateTimestampList":[                         {                            "status":"Verified",                            "origin":"Embedded in certificate",                            "logDescription":"Google 'Xenon2021' log",                            "logId":"7D3EF2F88FFF88556824C2C0CA9E5289792BC50E78097F2E6A9768997E22F0D7",                            "timestamp":1616491137480,                            "hashAlgorithm":"SHA-256",                            "signatureAlgorithm":"ECDSA",                            "signatureData":"3045022100BB97D8C6C1DB564E61023174221BEC0A09C205FD2C3BCD45622EF8829F3188500220131E85A8FD6C9B1E7C6D40CF3D4F535839582643CBF8D12731CB95AA828D76C6"                         },                         {                            "status":"Verified",                            "origin":"Embedded in certificate",                            "logDescription":"DigiCert Yeti2021 Log",                            "logId":"5CDC4392FEE6AB4544B15E9AD456E61037FBD5FA47DCA17394B25EE6F6C70ECA",                            "timestamp":1616491137715,                            "hashAlgorithm":"SHA-256",                            "signatureAlgorithm":"ECDSA",                            "signatureData":"304402205DD9330FB7E94D1A42661AEA50838D51024856D0B411C2A8677D45A3D420F9C2022025FA85DD7C30C8D98357C5BF4B9353145B24E85EF0F85B0AA4B31A9A4478358F"                         }                      ],                      "certificateTransparencyCompliance":"compliant"                   },                   "initiator":"https://www.google-analytics.com/analytics.js",                   "initiator_line":38,                   "initiator_column":31,                   "initiator_type":"script",                   "initiator_function":"wd",                   "priority":"MEDIUM",                   "initial_priority":"High",                   "server_rtt":null,                   "headers":{                      "request":[                         ":method: POST",                         ":authority: stats.g.doubleclick.net",                         ":scheme: https",                         ":path: /j/collect?t=dc&aip=1&_r=3&v=1&_v=j90&tid=UA-3755571-1&cid=270986431.1619530559&jid=87199586&gjid=1851064854&_gid=1345304305.1619530559&_u=IEBAAEAAAAAAAC~&z=516932075",                         "content-length: 0",                         "user-agent: Mozilla/5.0 (Linux; Android 6.0.1; Moto G (4)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Mobile Safari/537.36 PTST/210419.211328",                         "content-type: text/plain",                         "accept: */*",                         "origin: https://docs.webpagetest.org",                         "sec-fetch-site: cross-site",                         "sec-fetch-mode: cors",                         "sec-fetch-dest: empty",                         "referer: https://docs.webpagetest.org/",                         "accept-encoding: gzip, deflate, br",                         "accept-language: en-US,en;q=0.9"                      ],                      "response":[                         "access-control-allow-origin: https://docs.webpagetest.org",                         "strict-transport-security: max-age=10886400; includeSubDomains; preload",                         "date: Tue, 27 Apr 2021 13:35:59 GMT",                         "pragma: no-cache",                         "expires: Fri, 01 Jan 1990 00:00:00 GMT",                         "cache-control: no-cache, no-store, must-revalidate",                         "last-modified: Sun, 17 May 1998 03:00:00 GMT",                         "access-control-allow-credentials: true",                         "x-content-type-options: nosniff",                         "content-type: text/plain",                         "cross-origin-resource-policy: cross-origin",                         "server: Golfe2",                         "content-length: 2",                         "alt-svc: h3-29=":443"; ma=2592000,h3-T051=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"",                         ":status: 200"                      ]                   },                   "bytesOut":2128,                   "score_cache":-1,                   "score_cdn":100,                   "score_gzip":-1,                   "score_cookies":-1,                   "score_keep-alive":100,                   "score_minify":-1,                   "score_combine":-1,                   "score_compress":-1,                   "score_etags":-1,                   "dns_ms":171,                   "connect_ms":181,                   "ssl_ms":205,                   "gzip_total":null,                   "gzip_save":null,                   "minify_total":null,                   "minify_save":null,                   "image_total":null,                   "image_save":null,                   "cache_time":null,                   "cdn_provider":"Google",                   "server_count":null,                   "created":1998,                   "http2_stream_id":1,                   "http2_stream_dependency":0,                   "http2_stream_weight":220,                   "http2_stream_exclusive":1,                   "http2_server_settings":{                      "SETTINGS_MAX_CONCURRENT_STREAMS":100,                      "SETTINGS_INITIAL_WINDOW_SIZE":1048576,                      "SETTINGS_MAX_HEADER_LIST_SIZE":16384                   },                   "tls_version":"TLS 1.3",                   "tls_resumed":"False",                   "tls_next_proto":"h2",                   "tls_cipher_suite":4865,                   "certificates":[                      "-----BEGIN CERTIFICATE-----nMIIFvjCCBKagAwIBAgIRAIwPUVZ8CHGsBQAAAACHqEAwDQYJKoZIhvcNAQELBQAwnQjELMAkGA1UEBhMCVVMxHjAcBgNVBAoTFUdvb2dsZSBUcnVzdCBTZXJ2aWNlczETnMBEGA1UEAxMKR1RTIENBIDFPMTAeFw0yMTAzMjMwODE4NTZaFw0yMTA2MTUwODE4nNTVaMG0xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHnEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgTExDMRwwGgYDVQQDDBMqnLmcuZG91YmxlY2xpY2submV0MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEpXbynPN6i2jXJWzfc8aDB0wehA7CvpEpE1rH7Z3Qr1TBgXg/gSt8HBxYa9dfZ1wRm0Nm+nItsO7+9FaJW4DStsiqOCA00wggNJMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKnBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBRHLQ+JepWJC0nTcn9Gnhvhf+7Re4TAfBgNVHSMEGDAWgBSY0fhuEOvPm+xgnxiQG6DrfQn9KzBoBggrBgEFnBQcBAQRcMFowKwYIKwYBBQUHMAGGH2h0dHA6Ly9vY3NwLnBraS5nb29nL2d0czFvnMWNvcmUwKwYIKwYBBQUHMAKGH2h0dHA6Ly9wa2kuZ29vZy9nc3IyL0dUUzFPMS5jncnQwggEJBgNVHREEggEAMIH9ghMqLmcuZG91YmxlY2xpY2submV0ghYqLmdvb2dsnZWFkc2VydmljZXMuY29tghcqLmdvb2dsZXN5bmRpY2F0aW9uLmNvbYIXKi5nb29nnbGV0YWdzZXJ2aWNlcy5jb22CESouaW52aXRlbWVkaWEuY29tgiEqLnNhZmVmcmFtnZS5nb29nbGVzeW5kaWNhdGlvbi5jb22CEWcuZG91YmxlY2xpY2submV0ghRnb29nnbGVhZHNlcnZpY2VzLmNvbYIVZ29vZ2xlc3luZGljYXRpb24uY29tghVnb29nbGV0nYWdzZXJ2aWNlcy5jb22CD21lZGlhLmFkbW9iLmNvbTAhBgNVHSAEGjAYMAgGBmeBnDAECAjAMBgorBgEEAdZ5AgUDMDMGA1UdHwQsMCowKKAmoCSGImh0dHA6Ly9jcmwuncGtpLmdvb2cvR1RTMU8xY29yZS5jcmwwggEDBgorBgEEAdZ5AgQCBIH0BIHxAO8AndgB9PvL4j/+IVWgkwsDKnlKJeSvFDngJfy5ql2iZfiLw1wAAAXheYUnIAAAEAwBHnMEUCIQC7l9jGwdtWTmECMXQiG+wKCcIF/Sw7zUViLviCnzGIUAIgEx6FqP1smx58nbUDPPU9TWDlYJkPL+NEnMcuVqoKNdsYAdQBc3EOS/uarRUSxXprUVuYQN/vV+kfcnoXOUsl7m9scOygAAAXheYUqzAAAEAwBGMEQCIF3ZMw+36U0aQmYa6lCDjVECSFbQntBHCqGd9RaPUIPnCAiAl+oXdfDDI2YNXxb9Lk1MUWyToXvD4WwqksxqaRHg1jzANnBgkqhkiG9w0BAQsFAAOCAQEAZwr3RNBXqyFjNoRsXUycma7NM5bXd/LtAaLxNh13n3LEeydAZqfvR2n2C/1UgPfX4Gxm3tRNGUlmMhShSqTA+kaeLUcnktWCy7lg2867nnchvXOcTt7pEgSOCQG05M/OCwtAiVbEeXz1BojJJDJvv4EZjz/o177agSUpaLK+AunFY0/ApK1ShfV+4Jv4pcD6VE6/0zj/nwuTd7j60f1LqwJfXrfOCoG2qBMMRtE5P8AnABf0XzBJiWf6BgG3B9hFjOj9G/EXAThcz/OfRrVmRR6eYdHzvxO/bZ0SZ+7Wiiccnb3pB9L9unpB9kOBRl4Fe1fqUC5MSChCZjLfaqkLHtNx3/Q==n-----END CERTIFICATE-----n",                      "-----BEGIN CERTIFICATE-----nMIIESjCCAzKgAwIBAgINAeO0mqGNiqmBJWlQuDANBgkqhkiG9w0BAQsFADBMMSAwnHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMjETMBEGA1UEChMKR2xvYmFsnU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjAeFw0xNzA2MTUwMDAwNDJaFw0yMTEynMTUwMDAwNDJaMEIxCzAJBgNVBAYTAlVTMR4wHAYDVQQKExVHb29nbGUgVHJ1c3QgnU2VydmljZXMxEzARBgNVBAMTCkdUUyBDQSAxTzEwggEiMA0GCSqGSIb3DQEBAQUAnA4IBDwAwggEKAoIBAQDQGM9F1IvN05zkQO9+tN1pIRvJzzyOTHW5DzEZhD2ePCnvnUA0Qk28FgICfKqC9EksC4T2fWBYk/jCfC3R3VZMdS/dN4ZKCEPZRrAzDsiKUDzRrnmBBJ5wudgzndIMYcLe/RGGFl5yODIKgjEv/SJH/UL+dEaltN11BmsK+eQmMF++AcnxGNhr59qM/9il71I2dN8FGfcddwuaej4bXhp0LcQBbjxMcI7JP0aM3T4I+DsaxmKnFsbjzaTNC9uzpFlgOIg7rR25xoynUxv8vNmkq7zdPGHXkxWY7oG9j+JkRyBABk7XnrJfoucBZEqFJJSPk7XA0LKW0Y3z5oz2D0c1tJKwHAgMBAAGjggEzMIIBLzAOBgNVnHQ8BAf8EBAMCAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBIGA1UdnEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFJjR+G4Q68+b7GCfGJAboOt9Cf0rMB8GnA1UdIwQYMBaAFJviB1dnHB7AagbeWbSaLd/cGYYuMDUGCCsGAQUFBwEBBCkwJzAlnBggrBgEFBQcwAYYZaHR0cDovL29jc3AucGtpLmdvb2cvZ3NyMjAyBgNVHR8EKzApnMCegJaAjhiFodHRwOi8vY3JsLnBraS5nb29nL2dzcjIvZ3NyMi5jcmwwPwYDVR0gnBDgwNjA0BgZngQwBAgIwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly9wa2kuZ29vZy9ynZXBvc2l0b3J5LzANBgkqhkiG9w0BAQsFAAOCAQEAGoA+Nnn78y6pRjd9XlQWNa7HnTgiZ/r3RNGkmUmYHPQq6Scti9PEajvwRT2iWTHQr02fesqOqBY2ETUwgZQ+lltoNnFvhsO9tvBCOIazpswWC9aJ9xju4tWDQH8NVU6YZZ/XteDSGU9YzJqPjY8q3MDxrznmqepBCf5o8mw/wJ4a2G6xzUr6Fb6T8McDO22PLRL6u3M4Tzs3A2M1j6bykJYi8wWnIRdAvKLWZu/axBVbzYmqmwkm5zLSDW5nIAJbELCQCZwMH56t2Dvqofxs6BBcCFIZnUSpxu6x6td0V7SvJCCosirSmIatj/9dSSVDQibet8q/7UK4v4ZUN80atnZz1yg==n-----END CERTIFICATE-----n"                   ],                   "server_port":"443",                   "client_port":"33112",                   "load_end":2738,                   "ttfb_start":2557,                   "ttfb_end":2738,                   "download_start":2738,                   "download_end":2738,                   "download_ms":0,                   "all_start":1999,                   "all_end":2738,                   "all_ms":738,                   "index":10,                   "number":11                },                {                   "type":3,                   "id":"29564.18",                   "request_id":"29564.18",                   "ip_addr":"142.251.33.196",                   "full_url":"https://www.google.com/ads/ga-audiences?t=sr&aip=1&_r=4&slf_rd=1&v=1&_v=j90&tid=UA-3755571-1&cid=270986431.1619530559&jid=87199586&_u=IEBAAEAAAAAAAC~&z=306143173",                   "is_secure":1,                   "method":"GET",                   "host":"www.google.com",                   "url":"/ads/ga-audiences?t=sr&aip=1&_r=4&slf_rd=1&v=1&_v=j90&tid=UA-3755571-1&cid=270986431.1619530559&jid=87199586&_u=IEBAAEAAAAAAAC~&z=306143173",                   "raw_id":"29564.18",                   "frame_id":"E57BDA2151E08AC948685BFE69680D5E",                   "documentURL":"https://docs.webpagetest.org/",                   "responseCode":200,                   "request_type":"Image",                   "load_ms":185,                   "ttfb_ms":185,                   "load_start":3268,                   "load_start_float":3268.396,                   "bytesIn":42,                   "objectSize":42,                   "objectSizeUncompressed":42,                   "chunks":[                      {                         "ts":3453.482,                         "bytes":42                      }                   ],                   "expires":"Fri, 01 Jan 1990 00:00:00 GMT",                   "cacheControl":"no-cache, no-store, must-revalidate",                   "contentType":"image/gif",                   "contentEncoding":"",                   "socket":124,                   "protocol":"HTTP/2",                   "dns_start":2744,                   "dns_end":2915,                   "connect_start":2915,                   "connect_end":3087,                   "ssl_start":3087,                   "ssl_end":3268,                   "securityDetails":{                      "protocol":"TLS 1.3",                      "keyExchange":"",                      "keyExchangeGroup":"X25519",                      "cipher":"AES_128_GCM",                      "certificateId":0,                      "subjectName":"www.google.com",                      "sanList":[                         "www.google.com"                      ],                      "issuer":"GTS CA 1O1",                      "validFrom":1616487980,                      "validTo":1623745579,                      "signedCertificateTimestampList":[                         {                            "status":"Verified",                            "origin":"Embedded in certificate",                            "logDescription":"Google 'Xenon2021' log",                            "logId":"7D3EF2F88FFF88556824C2C0CA9E5289792BC50E78097F2E6A9768997E22F0D7",                            "timestamp":1616491580612,                            "hashAlgorithm":"SHA-256",                            "signatureAlgorithm":"ECDSA",                            "signatureData":"304402204A03A1034AC1281F5440920B5166C1AFC6924ABFB52798CC1ABDC6C283B505570220654E07CC18B72BE7C6D4D0570E455667E1FF037D7395B6CB85F75BDF9DE5C4E1"                         },                         {                            "status":"Verified",                            "origin":"Embedded in certificate",                            "logDescription":"DigiCert Nessie2021 Log",                            "logId":"EEC095EE8D72640F92E3C3B91BC712A3696A097B4B6A1A1438E647B2CBEDC5F9",                            "timestamp":1616491580576,                            "hashAlgorithm":"SHA-256",                            "signatureAlgorithm":"ECDSA",                            "signatureData":"3045022100C254FCFB1D63BAADC34F2EA72A7A24FE7C770ECC34280E3BC0FCACDE9F794521022009A099E7DF34BCB26F0C70408BFA5E18BF836A99BCEFFE82B35E028C467E2871"                         }                      ],                      "certificateTransparencyCompliance":"compliant"                   },                   "initiator":"",                   "initiator_line":"",                   "initiator_column":"",                   "initiator_type":"other",                   "priority":"LOWEST",                   "initial_priority":"Low",                   "server_rtt":null,                   "headers":{                      "request":[                         ":method: GET",                         ":authority: www.google.com",                         ":scheme: https",                         ":path: /ads/ga-audiences?t=sr&aip=1&_r=4&slf_rd=1&v=1&_v=j90&tid=UA-3755571-1&cid=270986431.1619530559&jid=87199586&_u=IEBAAEAAAAAAAC~&z=306143173",                         "user-agent: Mozilla/5.0 (Linux; Android 6.0.1; Moto G (4)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Mobile Safari/537.36 PTST/210419.211328",                         "accept: image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8",                         "sec-fetch-site: cross-site",                         "sec-fetch-mode: no-cors",                         "sec-fetch-dest: image",                         "referer: https://docs.webpagetest.org/",                         "accept-encoding: gzip, deflate, br",                         "accept-language: en-US,en;q=0.9"                      ],                      "response":[                         "p3p: policyref="https://www.googleadservices.com/pagead/p3p.xml", CP="NOI DEV PSA PSD IVA IVD OTP OUR OTR IND OTC"",                         "timing-allow-origin: *",                         "cross-origin-resource-policy: cross-origin",                         "date: Tue, 27 Apr 2021 13:36:00 GMT",                         "pragma: no-cache",                         "expires: Fri, 01 Jan 1990 00:00:00 GMT",                         "cache-control: no-cache, no-store, must-revalidate",                         "content-type: image/gif",                         "x-content-type-options: nosniff",                         "server: cafe",                         "content-length: 42",                         "x-xss-protection: 0",                         "alt-svc: h3-29=":443"; ma=2592000,h3-T051=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"",                         ":status: 200"                      ]                   },                   "bytesOut":1942,                   "score_cache":-1,                   "score_cdn":100,                   "score_gzip":-1,                   "score_cookies":-1,                   "score_keep-alive":100,                   "score_minify":-1,                   "score_combine":-1,                   "score_compress":100,                   "score_etags":-1,                   "dns_ms":171,                   "connect_ms":172,                   "ssl_ms":181,                   "gzip_total":null,                   "gzip_save":null,                   "minify_total":null,                   "minify_save":null,                   "image_total":42,                   "image_save":0,                   "cache_time":null,                   "cdn_provider":"Google",                   "server_count":null,                   "created":2744,                   "http2_stream_id":1,                   "http2_stream_dependency":0,                   "http2_stream_weight":147,                   "http2_stream_exclusive":1,                   "http2_server_settings":{                      "SETTINGS_MAX_CONCURRENT_STREAMS":100,                      "SETTINGS_INITIAL_WINDOW_SIZE":1048576,                      "SETTINGS_MAX_HEADER_LIST_SIZE":16384                   },                   "tls_version":"TLS 1.3",                   "tls_resumed":"False",                   "tls_next_proto":"h2",                   "tls_cipher_suite":4865,                   "certificates":[                      "-----BEGIN CERTIFICATE-----nMIIExjCCA66gAwIBAgIQa13x2f6+IywDAAAAAMvXYTANBgkqhkiG9w0BAQsFADBCnMQswCQYDVQQGEwJVUzEeMBwGA1UEChMVR29vZ2xlIFRydXN0IFNlcnZpY2VzMRMwnEQYDVQQDEwpHVFMgQ0EgMU8xMB4XDTIxMDMyMzA4MjYyMFoXDTIxMDYxNTA4MjYxnOVowaDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTnDU1vdW50YWluIFZpZXcxEzARBgNVBAoTCkdvb2dsZSBMTEMxFzAVBgNVBAMTDnd3ndy5nb29nbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEbJIJGlXFCfwQnJbKwjNKQwqnEEO91yeWrqVco0QtV+7b+A9IFok27cZKP8mrROFYk0WNhTsxDzmXqnps2hvy3e4KOCAlswggJXMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFnBQcDATAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBS1qBpEkF70GL3HND6tafVS4fvOnLDAfBgNVHSMEGDAWgBSY0fhuEOvPm+xgnxiQG6DrfQn9KzBoBggrBgEFBQcBAQRcnMFowKwYIKwYBBQUHMAGGH2h0dHA6Ly9vY3NwLnBraS5nb29nL2d0czFvMWNvcmUwnKwYIKwYBBQUHMAKGH2h0dHA6Ly9wa2kuZ29vZy9nc3IyL0dUUzFPMS5jcnQwGQYDnVR0RBBIwEIIOd3d3Lmdvb2dsZS5jb20wIQYDVR0gBBowGDAIBgZngQwBAgIwDAYKnKwYBBAHWeQIFAzAzBgNVHR8ELDAqMCigJqAkhiJodHRwOi8vY3JsLnBraS5nb29nnL0dUUzFPMWNvcmUuY3JsMIIBAwYKKwYBBAHWeQIEAgSB9ASB8QDvAHUAfT7y+I//niFVoJMLAyp5SiXkrxQ54CX8uapdomX4i8NcAAAF4XmgMxAAABAMARjBEAiBKA6EDnSsEoH1RAkgtRZsGvxpJKv7UnmMwavcbCg7UFVwIgZU4HzBi3K+fG1NBXDkVWZ+H/nA31zlbbLhfdb353lxOEAdgDuwJXujXJkD5Ljw7kbxxKjaWoJe0tqGhQ45keyy+3Fn+QAAAXheaAygAAAEAwBHMEUCIQDCVPz7HWO6rcNPLqcqeiT+fHcOzDQoDjvA/Kzenn3lFIQIgCaCZ5980vLJvDHBAi/peGL+Dapm87/6Cs14CjEZ+KHEwDQYJKoZIhvcNnAQELBQADggEBAGL48QFKdM8Yju3Dku//dXKiFNxofbrj3PRJBd6RIi5sBrnTMpYrn5wzC75Yto5EBKyqQYQuY/ZEO3m+h75tpPc/d3KIPyYa9R+ZrESWInMSKCjx67jWRngBDC1lndo/aXok5cEv6SEsDPZL/LW2aqJXqS23qV7hpCzqOV1h9GTvO35YNA/FCBnPx25ENo7tPy8vTCMeo0nDgqTAf68vp2GkCFQs72rFNVocLNWNS173O0p6uRUGFBvngVK5rNx5zswjRJ7NDqoVynYNECnigjVwM4LkEQr2/HOqwO0uPM4ZGgQl9TnfoOthnaEJyyKT/Nfb7XsAjRqLv1zBeZjwzpOEx8Hg=n-----END CERTIFICATE-----n",                      "-----BEGIN CERTIFICATE-----nMIIESjCCAzKgAwIBAgINAeO0mqGNiqmBJWlQuDANBgkqhkiG9w0BAQsFADBMMSAwnHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMjETMBEGA1UEChMKR2xvYmFsnU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjAeFw0xNzA2MTUwMDAwNDJaFw0yMTEynMTUwMDAwNDJaMEIxCzAJBgNVBAYTAlVTMR4wHAYDVQQKExVHb29nbGUgVHJ1c3QgnU2VydmljZXMxEzARBgNVBAMTCkdUUyBDQSAxTzEwggEiMA0GCSqGSIb3DQEBAQUAnA4IBDwAwggEKAoIBAQDQGM9F1IvN05zkQO9+tN1pIRvJzzyOTHW5DzEZhD2ePCnvnUA0Qk28FgICfKqC9EksC4T2fWBYk/jCfC3R3VZMdS/dN4ZKCEPZRrAzDsiKUDzRrnmBBJ5wudgzndIMYcLe/RGGFl5yODIKgjEv/SJH/UL+dEaltN11BmsK+eQmMF++AcnxGNhr59qM/9il71I2dN8FGfcddwuaej4bXhp0LcQBbjxMcI7JP0aM3T4I+DsaxmKnFsbjzaTNC9uzpFlgOIg7rR25xoynUxv8vNmkq7zdPGHXkxWY7oG9j+JkRyBABk7XnrJfoucBZEqFJJSPk7XA0LKW0Y3z5oz2D0c1tJKwHAgMBAAGjggEzMIIBLzAOBgNVnHQ8BAf8EBAMCAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBIGA1UdnEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFJjR+G4Q68+b7GCfGJAboOt9Cf0rMB8GnA1UdIwQYMBaAFJviB1dnHB7AagbeWbSaLd/cGYYuMDUGCCsGAQUFBwEBBCkwJzAlnBggrBgEFBQcwAYYZaHR0cDovL29jc3AucGtpLmdvb2cvZ3NyMjAyBgNVHR8EKzApnMCegJaAjhiFodHRwOi8vY3JsLnBraS5nb29nL2dzcjIvZ3NyMi5jcmwwPwYDVR0gnBDgwNjA0BgZngQwBAgIwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly9wa2kuZ29vZy9ynZXBvc2l0b3J5LzANBgkqhkiG9w0BAQsFAAOCAQEAGoA+Nnn78y6pRjd9XlQWNa7HnTgiZ/r3RNGkmUmYHPQq6Scti9PEajvwRT2iWTHQr02fesqOqBY2ETUwgZQ+lltoNnFvhsO9tvBCOIazpswWC9aJ9xju4tWDQH8NVU6YZZ/XteDSGU9YzJqPjY8q3MDxrznmqepBCf5o8mw/wJ4a2G6xzUr6Fb6T8McDO22PLRL6u3M4Tzs3A2M1j6bykJYi8wWnIRdAvKLWZu/axBVbzYmqmwkm5zLSDW5nIAJbELCQCZwMH56t2Dvqofxs6BBcCFIZnUSpxu6x6td0V7SvJCCosirSmIatj/9dSSVDQibet8q/7UK4v4ZUN80atnZz1yg==n-----END CERTIFICATE-----n"                   ],                   "server_port":"443",                   "client_port":"38508",                   "load_end":3453,                   "ttfb_start":3268,                   "ttfb_end":3453,                   "download_start":3453,                   "download_end":3453,                   "download_ms":0,                   "all_start":2744,                   "all_end":3453,                   "all_ms":709,                   "index":11,                   "number":12                }             ],             "requestsFull":12,             "requestsDoc":6,             "responses_200":12,             "responses_404":0,             "responses_other":0,             "result":0,             "testStartOffset":0,             "cached":0,             "optimization_checked":1,             "start_epoch":0,             "main_frame":"E57BDA2151E08AC948685BFE69680D5E",             "loadEventStart":1805,             "loadEventEnd":1805,             "domContentLoadedEventStart":876,             "domContentLoadedEventEnd":876,             "URL":"https://docs.webpagetest.org/",             "connections":5,             "final_base_page_request":0,             "final_base_page_request_id":"8F26376CBD35F32E850C9DBEC39882D4",             "final_url":"https://docs.webpagetest.org/",             "firstPaint":865.0500000076,             "firstContentfulPaint":865,             "firstMeaningfulPaint":865,             "domInteractive":875,             "firstImagePaint":995,             "TTFB":730,             "basePageSSLTime":203,             "score_cache":94,             "score_cdn":100,             "score_gzip":100,             "score_cookies":-1,             "score_keep-alive":100,             "score_minify":-1,             "score_combine":-1,             "score_compress":100,             "score_etags":-1,             "score_progressive_jpeg":-1,             "gzip_total":28624,             "gzip_savings":0,             "minify_total":-1,             "minify_savings":-1,             "image_total":67481,             "image_savings":0,             "base_page_cdn":"Netlify",             "cpuTimes":{                "UpdateLayerTree":11,                "EventDispatch":1,                "CommitLoad":0,                "EvaluateScript":46,                "v8.compile":4,                "ParseHTML":37,                "UpdateLayoutTree":5,                "Layout":30,                "ResourceChangePriority":0,                "Paint":3,                "largestContentfulPaint::Candidate":0,                "MarkDOMContent":0,                "FunctionCall":5,                "HitTest":0,                "MarkLoad":0,                "XHRReadyStateChange":2,                "XHRLoad":0,                "Idle":3309             },             "cpuTimesDoc":{                "UpdateLayerTree":11,                "EventDispatch":1,                "CommitLoad":0,                "EvaluateScript":46,                "v8.compile":4,                "ParseHTML":37,                "UpdateLayoutTree":5,                "Layout":30,                "ResourceChangePriority":0,                "Paint":3,                "largestContentfulPaint::Candidate":0,                "MarkDOMContent":0,                "FunctionCall":4,                "HitTest":0,                "MarkLoad":0,                "XHRReadyStateChange":0,                "XHRLoad":0,                "Idle":1664             },             "cpu.UpdateLayerTree":11,             "cpu.EventDispatch":1,             "cpu.CommitLoad":0,             "cpu.EvaluateScript":46,             "cpu.v8.compile":4,             "cpu.ParseHTML":37,             "cpu.UpdateLayoutTree":5,             "cpu.Layout":30,             "cpu.ResourceChangePriority":0,             "cpu.Paint":3,             "cpu.largestContentfulPaint::Candidate":0,             "cpu.MarkDOMContent":0,             "cpu.FunctionCall":5,             "cpu.HitTest":0,             "cpu.MarkLoad":0,             "cpu.XHRReadyStateChange":2,             "cpu.XHRLoad":0,             "cpu.Idle":3309,             "v8Stats":{                "main_thread":[                                   ],                "background":[                                   ]             },             "osVersion":"Linux 5.4.0-1045-aws",             "os_version":"Linux 5.4.0-1045-aws",             "osPlatform":"x86_64 x86_64",             "date":1619530556.95751,             "browserVersion":"90.0.4430.85",             "browser_version":"90.0.4430.85",             "throttle_cpu_requested":3.5,             "throttle_cpu":2.7715020391,             "fullyLoadedCPUms":6859,             "fullyLoadedCPUpct":57.6955424727,             "document_URL":"https://docs.webpagetest.org/",             "document_hostname":"docs.webpagetest.org",             "document_origin":"https://docs.webpagetest.org",             "viewport":{                "width":360,                "height":512,                "dpr":3             },             "domElements":103,             "domComplete":1805,             "PerformancePaintTiming.first-paint":865.0500000076,             "PerformancePaintTiming.first-contentful-paint":865.0500000076,             "detected":{                "PaaS":"Netlify",                "CDN":"Netlify",                "Analytics":"Google Analytics"             },             "detected_apps":{                "Netlify":"",                "Google Analytics":""             },             "base_page_ip_ptr":"ec2-52-203-36-44.compute-1.amazonaws.com",             "base_page_cname":"",             "base_page_dns_server":"dns1.p06.nsone.net",             "browser_name":"Chrome",             "eventName":"Step_1",             "test_run_time_ms":8968,             "custom":[                "Colordepth",                "Dpi",                "Images",                "Resolution",                "jsLibsVulns",                "securityHeaders"             ],             "Colordepth":24,             "Dpi":"{"dppx":3,"dpcm":113.38582677165354,"dpi":288}",             "Images":"[{"url":"https://docs.webpagetest.org/img/wpt-logo.svg","width":288,"height":60,"naturalWidth":150,"naturalHeight":31},{"url":"https://docs.webpagetest.org/img/wpt-teaser.png","width":262,"height":192,"naturalWidth":1047,"naturalHeight":767},{"url":"https://docs.webpagetest.org/img/scripting-teaser.png","width":328,"height":140,"naturalWidth":1416,"naturalHeight":604},{"url":"https://docs.webpagetest.org/img/custom-metrics-teaser.png","width":328,"height":140,"naturalWidth":708,"naturalHeight":302}]",             "Resolution":"{"absolute":{"height":512,"width":360},"available":{"height":512,"width":360}}",             "jsLibsVulns":[                             ],             "securityHeaders":{                "securityHeadersList":[                   "strict-transport-security",                   "x-content-type-options",                   "x-frame-options",                   "x-xss-protection"                ],                "securityHeadersGrade":"A",                "securityHeadersScore":85             },             "interactivePeriods":[                [                   0,                   3458                ]             ],             "longTasks":[                             ],             "lastVisualChange":1000,             "visualComplete":1000,             "render":900,             "SpeedIndex":902,             "visualComplete85":900,             "visualComplete90":900,             "visualComplete95":900,             "visualComplete99":1000,             "largestPaints":[                {                   "event":"LargestTextPaint",                   "time":865,                   "size":29870,                   "DOMNodeId":6,                   "nodeInfo":{                      "nodeType":"H1",                      "attributes":{                         "id":"welcome-to-webpagetest"                      },                      "bounds":[                         16,                         252.71875,                         328,                         106                      ],                      "styles":{                         "background-image":"none"                      }                   }                },                {                   "event":"LargestContentfulPaint",                   "time":865,                   "size":29870,                   "element":{                      "translate":true,                      "hidden":false,                      "draggable":false,                      "spellcheck":true,                      "contentEditable":"inherit",                      "isContentEditable":false,                      "offsetTop":253,                      "offsetLeft":16,                      "offsetWidth":328,                      "offsetHeight":106,                      "autofocus":false,                      "tabIndex":-1,                      "localName":"h1",                      "tagName":"H1",                      "id":"welcome-to-webpagetest",                      "outerHTML":"<h1 id="welcome-to-webpagetest">Welcome to WebPageTest</h1>",                      "scrollTop":0,                      "scrollLeft":0,                      "scrollWidth":328,                      "scrollHeight":106,                      "clientTop":0,                      "clientLeft":0,                      "clientWidth":328,                      "clientHeight":106,                      "childElementCount":0,                      "nodeType":1,                      "nodeName":"H1",                      "isConnected":true,                      "boundingRect":{                         "x":16,                         "y":252.71875,                         "width":328,                         "height":106,                         "top":252.71875,                         "right":344,                         "bottom":358.71875,                         "left":16                      }                   },                   "type":"text"                },                {                   "event":"LargestImagePaint",                   "time":994,                   "size":17280,                   "DOMNodeId":12,                   "nodeInfo":{                      "nodeType":"IMG",                      "attributes":{                         "src":"/img/wpt-logo.svg",                         "alt":"WebPageTest, by Catchpoint",                         "width":"150",                         "height":"31"                      },                      "sourceURL":"https://docs.webpagetest.org/img/wpt-logo.svg",                      "bounds":[                         36,                         24,                         288,                         59.515625                      ],                      "styles":{                         "background-image":"none"                      }                   }                }             ],             "LargestContentfulPaintType":"text",             "LargestContentfulPaintNodeType":"H1",             "chromeUserTiming":[                {                   "name":"navigationStart",                   "time":0                },                {                   "name":"fetchStart",                   "time":2                },                {                   "name":"responseEnd",                   "time":735                },                {                   "name":"unloadEventStart",                   "time":737                },                {                   "name":"unloadEventEnd",                   "time":737                },                {                   "name":"commitNavigationEnd",                   "time":739                },                {                   "name":"domLoading",                   "time":740                },                {                   "name":"firstMeaningfulPaint",                   "time":865                },                {                   "name":"firstMeaningfulPaint",                   "time":865                },                {                   "name":"firstMeaningfulPaintCandidate",                   "time":865                },                {                   "name":"firstContentfulPaint",                   "time":865                },                {                   "name":"firstPaint",                   "time":865                },                {                   "name":"domInteractive",                   "time":874                },                {                   "name":"domContentLoadedEventStart",                   "time":875                },                {                   "name":"domContentLoadedEventEnd",                   "time":875                },                {                   "name":"firstImagePaint",                   "time":994                },                {                   "name":"domComplete",                   "time":1804                },                {                   "name":"loadEventStart",                   "time":1804                },                {                   "name":"loadEventEnd",                   "time":1804                },                {                   "name":"LargestTextPaint",                   "time":865                },                {                   "name":"LargestContentfulPaint",                   "time":865                },                {                   "name":"LargestImagePaint",                   "time":994                },                {                   "name":"TotalLayoutShift",                   "value":0                },                {                   "name":"CumulativeLayoutShift",                   "value":0                }             ],             "chromeUserTiming.navigationStart":0,             "chromeUserTiming.fetchStart":2,             "chromeUserTiming.responseEnd":735,             "chromeUserTiming.unloadEventStart":737,             "chromeUserTiming.unloadEventEnd":737,             "chromeUserTiming.commitNavigationEnd":739,             "chromeUserTiming.domLoading":740,             "chromeUserTiming.firstMeaningfulPaint":865,             "chromeUserTiming.firstMeaningfulPaintCandidate":865,             "chromeUserTiming.firstContentfulPaint":865,             "chromeUserTiming.firstPaint":865,             "chromeUserTiming.domInteractive":874,             "chromeUserTiming.domContentLoadedEventStart":875,             "chromeUserTiming.domContentLoadedEventEnd":875,             "chromeUserTiming.firstImagePaint":994,             "chromeUserTiming.domComplete":1804,             "chromeUserTiming.loadEventStart":1804,             "chromeUserTiming.loadEventEnd":1804,             "chromeUserTiming.LargestTextPaint":865,             "chromeUserTiming.LargestContentfulPaint":865,             "chromeUserTiming.LargestImagePaint":994,             "chromeUserTiming.TotalLayoutShift":0,             "chromeUserTiming.CumulativeLayoutShift":0,             "blinkFeatureFirstUsed":{                "Features":{                   "77":{                      "name":"XMLDocument",                      "firstUsed":984.751                   },                   "138":{                      "name":"SVGSVGElement",                      "firstUsed":984.753                   },                   "213":{                      "name":"HTMLElementInnerText",                      "firstUsed":883.966                   },                   "214":{                      "name":"HTMLElementOuterText",                      "firstUsed":883.978                   },                   "250":{                      "name":"SVGSVGElementInDocument",                      "firstUsed":984.755                   },                   "329":{                      "name":"SVGSVGElementInXMLDocument",                      "firstUsed":984.757                   },                   "469":{                      "name":"CSSSelectorPseudoHost",                      "firstUsed":820.558                   },                   "480":{                      "name":"DetailsElement",                      "firstUsed":820.477                   },                   "587":{                      "name":"LangAttribute",                      "firstUsed":829.242                   },                   "588":{                      "name":"LangAttributeOnHTML",                      "firstUsed":829.251                   },                   "593":{                      "name":"SetReferrerPolicy",                      "firstUsed":749.312                   },                   "662":{                      "name":"MixedContentInSecureFrameThatDoesNotRestrictMixedContent",                      "firstUsed":784.596                   },                   "677":{                      "name":"XMLHttpRequestAsynchronous",                      "firstUsed":1803.312                   },                   "710":{                      "name":"CryptoGetRandomValues",                      "firstUsed":1802.394                   },                   "973":{                      "name":"CSSAtRuleMedia",                      "firstUsed":803.942                   },                   "1069":{                      "name":"CrossOriginTextScript",                      "firstUsed":1762.454                   },                   "1075":{                      "name":"V8SloppyMode",                      "firstUsed":749.719                   },                   "1307":{                      "name":"V8Node_IsConnected_AttributeGetter",                      "firstUsed":885.319                   },                   "1368":{                      "name":"IntersectionObserver_Constructor",                      "firstUsed":867.46                   },                   "1441":{                      "name":"SecureContextCheckPassed",                      "firstUsed":749.322                   },                   "1442":{                      "name":"SecureContextCheckFailed",                      "firstUsed":984.761                   },                   "1483":{                      "name":"StarInTimingAllowOrigin",                      "firstUsed":3456.93                   },                   "1542":{                      "name":"PendingStylesheetAddedAfterBodyStarted",                      "firstUsed":820.539                   },                   "1898":{                      "name":"HTMLSlotElement",                      "firstUsed":820.508                   },                   "1910":{                      "name":"CrossOriginMainFrameNulledNameAccessed",                      "firstUsed":749.497                   },                   "2188":{                      "name":"PerformanceObserverForWindow",                      "firstUsed":749.917                   },                   "2190":{                      "name":"PaintTimingObserved",                      "firstUsed":881.455                   },                   "2191":{                      "name":"PaintTimingRequested",                      "firstUsed":750.925                   },                   "2194":{                      "name":"CookieSet",                      "firstUsed":1789.36                   },                   "2195":{                      "name":"CookieGet",                      "firstUsed":1769.26                   },                   "2203":{                      "name":"HasIDClassTagAttribute",                      "firstUsed":803.459                   },                   "2204":{                      "name":"HasBeforeOrAfterPseudoElement",                      "firstUsed":805.535                   },                   "2219":{                      "name":"V8Element_GetBoundingClientRect_Method",                      "firstUsed":885.706                   },                   "2334":{                      "name":"CSSTypedOMStylePropertyMap",                      "firstUsed":884.789                   },                   "2349":{                      "name":"V8HTMLElement_Autocapitalize_AttributeGetter",                      "firstUsed":883.287                   },                   "2657":{                      "name":"NavigatorLanguage",                      "firstUsed":1768.638                   },                   "2662":{                      "name":"NavigatorPlugins",                      "firstUsed":1768.527                   },                   "2663":{                      "name":"NavigatorUserAgent",                      "firstUsed":1785.235                   },                   "2701":{                      "name":"V8Screen_ColorDepth_AttributeGetter",                      "firstUsed":1768.494                   },                   "2702":{                      "name":"V8Screen_Height_AttributeGetter",                      "firstUsed":1768.487                   },                   "2704":{                      "name":"V8Screen_Width_AttributeGetter",                      "firstUsed":1768.473                   },                   "2707":{                      "name":"V8Window_MatchMedia_Method",                      "firstUsed":867.337                   },                   "2719":{                      "name":"HistoryLength",                      "firstUsed":1785.866                   },                   "2728":{                      "name":"ElementTimingExplicitlyRequested",                      "firstUsed":750.931                   },                   "2782":{                      "name":"LayoutJankExplicitlyRequested",                      "firstUsed":750.918                   },                   "2927":{                      "name":"LargestContentfulPaintExplicitlyRequested",                      "firstUsed":749.956                   },                   "3004":{                      "name":"PerformanceObserverBufferedFlag",                      "firstUsed":750.898                   },                   "3066":{                      "name":"HasMarkerPseudoElement",                      "firstUsed":805.469                   },                   "3217":{                      "name":"LegacyLayoutBySVG",                      "firstUsed":984.764                   },                   "3481":{                      "name":"V8Navigator_JavaEnabled_Method",                      "firstUsed":1768.632                   }                },                "CSSFeatures":{                   "2":{                      "name":"CSSPropertyColor",                      "firstUsed":803.468                   },                   "4":{                      "name":"CSSPropertyDisplay",                      "firstUsed":803.968                   },                   "5":{                      "name":"CSSPropertyFont",                      "firstUsed":803.483                   },                   "6":{                      "name":"CSSPropertyFontFamily",                      "firstUsed":806.715                   },                   "7":{                      "name":"CSSPropertyFontSize",                      "firstUsed":804.46                   },                   "8":{                      "name":"CSSPropertyFontStyle",                      "firstUsed":807.369                   },                   "10":{                      "name":"CSSPropertyFontWeight",                      "firstUsed":804.961                   },                   "20":{                      "name":"CSSPropertyLineHeight",                      "firstUsed":804.465                   },                   "21":{                      "name":"CSSPropertyBackground",                      "firstUsed":804.786                   },                   "24":{                      "name":"CSSPropertyBackgroundColor",                      "firstUsed":806.706                   },                   "34":{                      "name":"CSSPropertyBorder",                      "firstUsed":804.753                   },                   "35":{                      "name":"CSSPropertyBorderBottom",                      "firstUsed":804.946                   },                   "41":{                      "name":"CSSPropertyBorderCollapse",                      "firstUsed":806.253                   },                   "42":{                      "name":"CSSPropertyBorderColor",                      "firstUsed":805.549                   },                   "49":{                      "name":"CSSPropertyBorderLeft",                      "firstUsed":805.393                   },                   "53":{                      "name":"CSSPropertyBorderRadius",                      "firstUsed":804.25                   },                   "54":{                      "name":"CSSPropertyBorderRight",                      "firstUsed":804.232                   },                   "59":{                      "name":"CSSPropertyBorderStyle",                      "firstUsed":805.545                   },                   "60":{                      "name":"CSSPropertyBorderTop",                      "firstUsed":806.059                   },                   "62":{                      "name":"CSSPropertyBorderTopLeftRadius",                      "firstUsed":806.264                   },                   "63":{                      "name":"CSSPropertyBorderTopRightRadius",                      "firstUsed":806.271                   },                   "66":{                      "name":"CSSPropertyBorderWidth",                      "firstUsed":805.462                   },                   "72":{                      "name":"CSSPropertyClip",                      "firstUsed":804.759                   },                   "74":{                      "name":"CSSPropertyContent",                      "firstUsed":805.54                   },                   "75":{                      "name":"CSSPropertyCounterIncrement",                      "firstUsed":820.577                   },                   "77":{                      "name":"CSSPropertyCursor",                      "firstUsed":807.586                   },                   "81":{                      "name":"CSSPropertyHeight",                      "firstUsed":804.505                   },                   "85":{                      "name":"CSSPropertyListStyle",                      "firstUsed":805.454                   },                   "88":{                      "name":"CSSPropertyListStyleType",                      "firstUsed":805.385                   },                   "89":{                      "name":"CSSPropertyMargin",                      "firstUsed":803.933                   },                   "90":{                      "name":"CSSPropertyMarginBottom",                      "firstUsed":804.255                   },                   "91":{                      "name":"CSSPropertyMarginLeft",                      "firstUsed":805.434                   },                   "93":{                      "name":"CSSPropertyMarginTop",                      "firstUsed":804.473                   },                   "95":{                      "name":"CSSPropertyMaxWidth",                      "firstUsed":804.487                   },                   "98":{                      "name":"CSSPropertyOpacity",                      "firstUsed":804.512                   },                   "105":{                      "name":"CSSPropertyOverflow",                      "firstUsed":804.765                   },                   "107":{                      "name":"CSSPropertyOverflowX",                      "firstUsed":804.744                   },                   "109":{                      "name":"CSSPropertyPadding",                      "firstUsed":803.49                   },                   "110":{                      "name":"CSSPropertyPaddingBottom",                      "firstUsed":806.649                   },                   "111":{                      "name":"CSSPropertyPaddingLeft",                      "firstUsed":804.244                   },                   "112":{                      "name":"CSSPropertyPaddingRight",                      "firstUsed":804.236                   },                   "113":{                      "name":"CSSPropertyPaddingTop",                      "firstUsed":805.029                   },                   "119":{                      "name":"CSSPropertyPosition",                      "firstUsed":804.77                   },                   "127":{                      "name":"CSSPropertyTabSize",                      "firstUsed":806.735                   },                   "128":{                      "name":"CSSPropertyTextAlign",                      "firstUsed":804.95                   },                   "129":{                      "name":"CSSPropertyTextDecoration",                      "firstUsed":804.526                   },                   "142":{                      "name":"CSSPropertyTextShadow",                      "firstUsed":806.759                   },                   "143":{                      "name":"CSSPropertyTextTransform",                      "firstUsed":806.322                   },                   "149":{                      "name":"CSSPropertyTop",                      "firstUsed":805.426                   },                   "157":{                      "name":"CSSPropertyVerticalAlign",                      "firstUsed":804.995                   },                   "159":{                      "name":"CSSPropertyWhiteSpace",                      "firstUsed":804.775                   },                   "161":{                      "name":"CSSPropertyWidth",                      "firstUsed":804.498                   },                   "162":{                      "name":"CSSPropertyWordBreak",                      "firstUsed":806.724                   },                   "163":{                      "name":"CSSPropertyWordSpacing",                      "firstUsed":806.721                   },                   "164":{                      "name":"CSSPropertyWordWrap",                      "firstUsed":806.728                   },                   "231":{                      "name":"CSSPropertyAlignItems",                      "firstUsed":804.981                   },                   "232":{                      "name":"CSSPropertyAlignSelf",                      "firstUsed":804.988                   },                   "233":{                      "name":"CSSPropertyFlex",                      "firstUsed":806.783                   },                   "242":{                      "name":"CSSPropertyGridTemplateColumns",                      "firstUsed":803.954                   },                   "248":{                      "name":"CSSPropertyGridColumn",                      "firstUsed":803.991                   },                   "249":{                      "name":"CSSPropertyGridRow",                      "firstUsed":803.982                   },                   "417":{                      "name":"CSSPropertyGridAutoRows",                      "firstUsed":806.676                   },                   "443":{                      "name":"CSSPropertyJustifySelf",                      "firstUsed":805.366                   },                   "446":{                      "name":"CSSPropertyTransform",                      "firstUsed":805.559                   },                   "511":{                      "name":"CSSPropertyGridColumnGap",                      "firstUsed":806.671                   },                   "512":{                      "name":"CSSPropertyGridRowGap",                      "firstUsed":804.215                   },                   "515":{                      "name":"CSSPropertyVariable",                      "firstUsed":803.422                   },                   "534":{                      "name":"CSSPropertyHyphens",                      "firstUsed":806.74                   },                   "592":{                      "name":"CSSPropertyGap",                      "firstUsed":803.963                   }                },                "AnimatedCSSFeatures":[                                   ]             },             "maxFID":0,             "TTIMeasurementEnd":3458,             "LastInteractive":900,             "TotalBlockingTime":0,             "step":1,             "effectiveBps":35446,             "effectiveBpsDoc":86349,             "domTime":0,             "aft":0,             "titleTime":0,             "domLoading":0,             "server_rtt":0,             "smallImageCount":4,             "bigImageCount":0,             "maybeCaptcha":0,             "testID":"210427_AiDcXW_8bd098a817944af61f7db97e4463e622",             "pages":{                "details":"https://www.webpagetest.org/details.php?test=210427_AiDcXW_8bd098a817944af61f7db97e4463e622&run=1",                "checklist":"https://www.webpagetest.org/performance_optimization.php?test=210427_AiDcXW_8bd098a817944af61f7db97e4463e622&run=1",                "breakdown":"https://www.webpagetest.org/breakdown.php?test=210427_AiDcXW_8bd098a817944af61f7db97e4463e622&run=1",                "domains":"https://www.webpagetest.org/domains.php?test=210427_AiDcXW_8bd098a817944af61f7db97e4463e622&run=1",                "screenShot":"https://www.webpagetest.org/screen_shot.php?test=210427_AiDcXW_8bd098a817944af61f7db97e4463e622&run=1"             },             "thumbnails":{                "waterfall":"https://www.webpagetest.org/result/210427_AiDcXW_8bd098a817944af61f7db97e4463e622/1_waterfall_thumb.png",                "checklist":"https://www.webpagetest.org/result/210427_AiDcXW_8bd098a817944af61f7db97e4463e622/1_optimization_thumb.png",                "screenShot":"https://www.webpagetest.org/result/210427_AiDcXW_8bd098a817944af61f7db97e4463e622/1_screen_thumb.png"             },             "images":{                "waterfall":"https://www.webpagetest.org/results/21/04/27/AiDcXW/8bd098a817944af61f7db97e4463e622/1_waterfall.png",                "connectionView":"https://www.webpagetest.org/results/21/04/27/AiDcXW/8bd098a817944af61f7db97e4463e622/1_connection.png",                "checklist":"https://www.webpagetest.org/results/21/04/27/AiDcXW/8bd098a817944af61f7db97e4463e622/1_optimization.png",                "screenShot":"https://www.webpagetest.org/getfile.php?test=210427_AiDcXW_8bd098a817944af61f7db97e4463e622&file=1_screen.jpg"             },             "rawData":{                "scriptTiming":"https://www.webpagetest.org/getgzip.php?test=210427_AiDcXW_8bd098a817944af61f7db97e4463e622&file=1_script_timing.json",                "headers":"https://www.webpagetest.org/results/21/04/27/AiDcXW/8bd098a817944af61f7db97e4463e622/1_report.txt",                "pageData":"https://www.webpagetest.org/results/21/04/27/AiDcXW/8bd098a817944af61f7db97e4463e622/1_IEWPG.txt",                "requestsData":"https://www.webpagetest.org/results/21/04/27/AiDcXW/8bd098a817944af61f7db97e4463e622/1_IEWTR.txt",                "utilization":"https://www.webpagetest.org/results/21/04/27/AiDcXW/8bd098a817944af61f7db97e4463e622/1_progress.csv",                "trace":"https://www.webpagetest.org/getgzip.php?test=210427_AiDcXW_8bd098a817944af61f7db97e4463e622&compressed=1&file=1_trace.json.gz"             },             "videoFrames":[                {                   "time":0,                   "image":"https://www.webpagetest.org/getfile.php?test=210427_AiDcXW_8bd098a817944af61f7db97e4463e622&video=video_1&file=ms_000000.jpg",                   "VisuallyComplete":0                },                {                   "time":900,                   "image":"https://www.webpagetest.org/getfile.php?test=210427_AiDcXW_8bd098a817944af61f7db97e4463e622&video=video_1&file=ms_000900.jpg",                   "VisuallyComplete":98                },                {                   "time":1000,                   "image":"https://www.webpagetest.org/getfile.php?test=210427_AiDcXW_8bd098a817944af61f7db97e4463e622&video=video_1&file=ms_001000.jpg",                   "VisuallyComplete":100                }             ],             "domains":{                "docs.webpagetest.org":{                   "bytes":76903,                   "requests":8,                   "cdn_provider":"Netlify",                   "connections":2                },                "www.google.com":{                   "bytes":42,                   "requests":1,                   "cdn_provider":"Google",                   "connections":1                },                "www.google-analytics.com":{                   "bytes":19573,                   "requests":2,                   "cdn_provider":"Google",                   "connections":1                },                "stats.g.doubleclick.net":{                   "bytes":2,                   "requests":1,                   "cdn_provider":"Google",                   "connections":1                }             },             "breakdown":{                "html":{                   "color":[                      130,                      181,                      252                   ],                   "bytes":5465,                   "bytesUncompressed":22360,                   "requests":1                },                "js":{                   "color":[                      254,                      197,                      132                   ],                   "bytes":19569,                   "bytesUncompressed":49153,                   "requests":1                },                "css":{                   "color":[                      178,                      234,                      148                   ],                   "bytes":0,                   "bytesUncompressed":0,                   "requests":0                },                "image":{                   "color":[                      196,                      154,                      232                   ],                   "bytes":71071,                   "bytesUncompressed":77903,                   "requests":7                },                "flash":{                   "color":[                      45,                      183,                      193                   ],                   "bytes":0,                   "bytesUncompressed":0,                   "requests":0                },                "font":{                   "color":[                      255,                      82,                      62                   ],                   "bytes":0,                   "bytesUncompressed":0,                   "requests":0                },                "video":{                   "color":[                      33,                      194,                      162                   ],                   "bytes":0,                   "bytesUncompressed":0,                   "requests":0                },                "other":{                   "color":[                      196,                      196,                      196                   ],                   "bytes":415,                   "bytesUncompressed":415,                   "requests":3                }             },             "consoleLog":[                             ]          }       },       "runs":{          "1":{             "firstView":{                "numSteps":1,                "run":1,                "tester":"i-0247aadaa23ac9fec",                "loadTime":1805,                "docTime":1805,                "fullyLoaded":3453,                "bytesOut":21486,                "bytesOutDoc":9612,                "bytesIn":96520,                "bytesInDoc":92826,                "requests":[                   {                      "type":3,                      "id":"8F26376CBD35F32E850C9DBEC39882D4",                      "request_id":"8F26376CBD35F32E850C9DBEC39882D4",                      "ip_addr":"52.203.36.44",                      "full_url":"https://docs.webpagetest.org/",                      "is_secure":1,                      "method":"GET",                      "host":"docs.webpagetest.org",                      "url":"/",                      "raw_id":"8F26376CBD35F32E850C9DBEC39882D4",                      "frame_id":"E57BDA2151E08AC948685BFE69680D5E",                      "documentURL":"https://docs.webpagetest.org/",                      "responseCode":200,                      "request_type":"Document",                      "load_ms":178,                      "ttfb_ms":173,                      "load_start":557,                      "load_start_float":556.647,                      "bytesIn":5465,                      "objectSize":5465,                      "objectSizeUncompressed":22360,                      "chunks":[                         {                            "ts":734.825,                            "bytes":5465                         }                      ],                      "expires":"",                      "cacheControl":"max-age=900,must-revalidate",                      "contentType":"text/html",                      "contentEncoding":"br",                      "socket":42,                      "protocol":"HTTP/2",                      "dns_start":4,                      "dns_end":182,                      "connect_start":182,                      "connect_end":353,                      "ssl_start":353,                      "ssl_end":556,                      "securityDetails":{                         "protocol":"TLS 1.3",                         "keyExchange":"",                         "keyExchangeGroup":"X25519",                         "cipher":"AES_256_GCM",                         "certificateId":0,                         "subjectName":"docs.webpagetest.org",                         "sanList":[                            "docs.webpagetest.org"                         ],                         "issuer":"R3",                         "validFrom":1619467227,                         "validTo":1627243227,                         "signedCertificateTimestampList":[                            {                               "status":"Verified",                               "origin":"Embedded in certificate",                               "logDescription":"Sectigo 'Mammoth' CT log",                               "logId":"6F5376AC31F03119D89900A45115FF77151C11D902C10029068DB2089A37D913",                               "timestamp":1619470827302,                               "hashAlgorithm":"SHA-256",                               "signatureAlgorithm":"ECDSA",                               "signatureData":"3046022100A2BCD9F63B5797CB092A1186C47BBA07159B64A547AB70F712A2365232D80C29022100D0F30E54E297A03A68369920C0D941D7A0FF3840478D681039FC4156BF21BA81"                            },                            {                               "status":"Verified",                               "origin":"Embedded in certificate",                               "logDescription":"Google 'Xenon2021' log",                               "logId":"7D3EF2F88FFF88556824C2C0CA9E5289792BC50E78097F2E6A9768997E22F0D7",                               "timestamp":1619470827299,                               "hashAlgorithm":"SHA-256",                               "signatureAlgorithm":"ECDSA",                               "signatureData":"3045022069E20E80E8FBAF20B7DE722D0104F91084379684D20200DD621EAD7A7254C0930221008C377DFEC43CB8395661CEC67259D1F8A955D5046D5B96191CAC7569DFEC0D83"                            }                         ],                         "certificateTransparencyCompliance":"compliant"                      },                      "initiator":"",                      "initiator_line":"",                      "initiator_column":"",                      "initiator_type":"script",                      "priority":"HIGHEST",                      "initial_priority":"VeryHigh",                      "server_rtt":null,                      "headers":{                         "request":[                            ":method: GET",                            ":authority: docs.webpagetest.org",                            ":scheme: https",                            ":path: /",                            "upgrade-insecure-requests: 1",                            "user-agent: Mozilla/5.0 (Linux; Android 6.0.1; Moto G (4)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Mobile Safari/537.36 PTST/210419.211328",                            "accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",                            "sec-fetch-site: cross-site",                            "sec-fetch-mode: navigate",                            "sec-fetch-dest: document",                            "accept-encoding: gzip, deflate, br",                            "accept-language: en-US,en;q=0.9"                         ],                         "response":[                            "content-type: text/html; charset=UTF-8",                            "date: Tue, 27 Apr 2021 11:58:35 GMT",                            "etag: "50dfb5ef4ccf18da5e07c09a798f25c4-ssl-df"",                            "strict-transport-security: max-age=31536000",                            "x-content-type-options: nosniff",                            "x-frame-options: SAMEORIGIN",                            "x-xss-protection: 1; mode=block",                            "content-encoding: br",                            "content-length: 5465",                            "age: 5842",                            "server: Netlify",                            "vary: Accept-Encoding",                            "cache-control: max-age=900,must-revalidate",                            "x-nf-request-id: c2eaf3a4-2a5a-4666-ab88-50a4385ecc91-7870268",                            ":status: 200"                         ]                      },                      "bytesOut":1741,                      "score_cache":-1,                      "score_cdn":100,                      "score_gzip":100,                      "score_cookies":-1,                      "score_keep-alive":100,                      "score_minify":-1,                      "score_combine":-1,                      "score_compress":-1,                      "score_etags":-1,                      "dns_ms":178,                      "connect_ms":171,                      "ssl_ms":203,                      "gzip_total":5465,                      "gzip_save":0,                      "minify_total":null,                      "minify_save":null,                      "image_total":null,                      "image_save":null,                      "cache_time":null,                      "cdn_provider":"Netlify",                      "server_count":null,                      "created":4,                      "http2_stream_id":1,                      "http2_stream_dependency":0,                      "http2_stream_weight":256,                      "http2_stream_exclusive":1,                      "http2_server_settings":{                         "SETTINGS_MAX_CONCURRENT_STREAMS":150,                         "SETTINGS_MAX_HEADER_LIST_SIZE":131072                      },                      "tls_version":"TLS 1.3",                      "tls_resumed":"False",                      "tls_next_proto":"h2",                      "tls_cipher_suite":4866,                      "certificates":[                         "-----BEGIN CERTIFICATE-----nMIIEZDCCA0ygAwIBAgISBF37oE+Ktj2/6iysUtxzpJAvMA0GCSqGSIb3DQEBCwUAnMDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQDnEwJSMzAeFw0yMTA0MjYyMDAwMjdaFw0yMTA3MjUyMDAwMjdaMB8xHTAbBgNVBAMTnFGRvY3Mud2VicGFnZXRlc3Qub3JnMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEnf8a05zALcGV/HnFaetKioT5eLwXhmzVYBhq3ah6jIWYYiHTDcJD5WYNgMDmFbmLUn1PyliKqDbTe3sDJgfamHP6OCAlAwggJMMA4GA1UdDwEB/wQEAwIHgDAdBgNVHSUEnFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUn1JMSW+DIpBZLoSI29KsqDF8abWwwHwYDVR0jBBgwFoAUFC6zF7dYVsuuUAlA5h+vnnYsUwsYwVQYIKwYBBQUHAQEESTBHMCEGCCsGAQUFBzABhhVodHRwOi8vcjMuby5snZW5jci5vcmcwIgYIKwYBBQUHMAKGFmh0dHA6Ly9yMy5pLmxlbmNyLm9yZy8wHwYDnVR0RBBgwFoIUZG9jcy53ZWJwYWdldGVzdC5vcmcwTAYDVR0gBEUwQzAIBgZngQwBnAgEwNwYLKwYBBAGC3xMBAQEwKDAmBggrBgEFBQcCARYaaHR0cDovL2Nwcy5sZXRznZW5jcnlwdC5vcmcwggEFBgorBgEEAdZ5AgQCBIH2BIHzAPEAdwBvU3asMfAxGdiZnAKRRFf93FRwR2QLBACkGjbIImjfZEwAAAXkP+78mAAAEAwBIMEYCIQCivNn2O1eXnywkqEYbEe7oHFZtkpUercPcSojZSMtgMKQIhANDzDlTil6A6aDaZIMDZQdeg/zhAnR41oEDn8QVa/IbqBAHYAfT7y+I//iFVoJMLAyp5SiXkrxQ54CX8uapdomX4i8NcAnAAF5D/u/IwAABAMARzBFAiBp4g6A6PuvILfeci0BBPkQhDeWhNICAN1iHq16clTAnkwIhAIw3ff7EPLg5VmHOxnJZ0fipVdUEbVuWGRysdWnf7A2DMA0GCSqGSIb3DQEBnCwUAA4IBAQBEGlvgqR3Ju/30dDXgrv8s6jblgKLRi92LMM4jLVF+i7q3Bkcn5NJPnM9xLVY7vLlAXIyLld5mzLEwK3Rbt7UqVsMeo4U+y/IcVipfM7QOPiv2vRGiGAetHn72rkoFdarURnZ+ycUhSTKmW7UpRH+qYqEzXCtjDeC+u0bB7C/6bawqngraY1k6QLntEd0E3vm6O4PEzk4j0u99QXQfDTUQADi+PjNZnWYrzmb8lO6d6u4q+GKz2djill+ntd8xdMDWrMioJUdiFXCrhVglCoA+BvYJ8Oq6xEFNK78bcUZK73iTHHzZRwDxDTaDn1JVHt9PAMas88V/5pzkaIIH5jGVCrZdXn-----END CERTIFICATE-----n",                         "-----BEGIN CERTIFICATE-----nMIIEZTCCA02gAwIBAgIQQAF1BIMUpMghjISpDBbN3zANBgkqhkiG9w0BAQsFADA/nMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMTnDkRTVCBSb290IENBIFgzMB4XDTIwMTAwNzE5MjE0MFoXDTIxMDkyOTE5MjE0MFownMjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUxldCdzIEVuY3J5cHQxCzAJBgNVBAMTnAlIzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuwIVKMz2oJTTDxLsnjVWSw/iC8ZmmekKIp10mqrUrucVMsa+Oa/l1yKPXD0eUFFU1V4yeqKI5GfWCPEKpnTm71O8Mu243AsFzzWTjn7c9p8FoLG77AlCQlh/o3cbMT5xys4Zvv2+Q7RVJFlqnBnU840yFLuta7tj95gcOKlVKu2bQ6XpUA0ayvTvGbrZjR8+muLj1cpmfgwF126cm/7ngcWt0oZYPRfH5wm78Sv3htzB2nFd1EbjzK0lwYi8YGd1ZrPxGPeiXOZT/zqItkeln/xMY6pgJdz+dU/nPAeX1pnAXFK9jpP+Zs5Od3FOnBv5IhR2haa4ldbsTzFID9e1RnoYvbFQIDAQABo4IBaDCCAWQwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EnBAMCAYYwSwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pnZGVudHJ1c3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEnp7Gkeyxx+tvhS5B1/8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA/BgsrBgEEnAYLfEwEBATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VunY3J5cHQub3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0nLmNvbS9EU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfnr52LFMLGMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjANBgkqhkiG9w0BnAQsFAAOCAQEA2UzgyfWEiDcx27sT4rP8i2tiEmxYt0l+PAK3qB8oYevO4C5z70kHnejWEHx2taPDY/laBL21/WKZuNTYQHHPD5b1tXgHXbnL7KqC401dk5VvCadTQsvd8nS8MXjohyc9z9/G2948kLjmE6Flh9dDYrVYA9x2O+hEPGOaEOa1eePynBgPayvUfLnqjBstzLhWVQLGAkXXmNs+5ZnPBxzDJOLxhF2JIbeQAcH5H0tZrUlo5ZYyOqA7s9pnO5b85o3AM/OJ+CktFBQtfvBhcJVd9wvlwPsk+uyOy2HI7mNxKKgsBTt375teA2TwnUdHkhVNcsAKX1H7GNNLOEADksd86wuoXvg==n-----END CERTIFICATE-----n"                      ],                      "server_port":"443",                      "client_port":"35520",                      "final_base_page":true,                      "is_base_page":true,                      "load_end":735,                      "ttfb_start":557,                      "ttfb_end":730,                      "download_start":730,                      "download_end":735,                      "download_ms":5,                      "all_start":4,                      "all_end":735,                      "all_ms":730,                      "cpuTimes":{                         "EvaluateScript":10,                         "v8.compile":1                      },                      "cpu.EvaluateScript":10,                      "cpu.v8.compile":1,                      "cpuTime":10,                      "index":0,                      "number":1                   },                   {                      "type":3,                      "id":"29564.4",                      "request_id":"29564.4",                      "ip_addr":"52.203.36.44",                      "full_url":"https://docs.webpagetest.org/img/wpt-logo.svg",                      "is_secure":1,                      "method":"GET",                      "host":"docs.webpagetest.org",                      "url":"/img/wpt-logo.svg",                      "raw_id":"29564.4",                      "frame_id":"E57BDA2151E08AC948685BFE69680D5E",                      "documentURL":"https://docs.webpagetest.org/",                      "responseCode":200,                      "request_type":"Image",                      "load_ms":186,                      "ttfb_ms":182,                      "load_start":787,                      "load_start_float":787.125,                      "bytesIn":3590,                      "objectSize":3590,                      "objectSizeUncompressed":10422,                      "chunks":[                         {                            "ts":972.843,                            "bytes":3590                         }                      ],                      "expires":"",                      "cacheControl":"max-age=31536000",                      "contentType":"image/svg+xml",                      "contentEncoding":"br",                      "socket":42,                      "protocol":"HTTP/2",                      "dns_start":-1,                      "dns_end":-1,                      "connect_start":-1,                      "connect_end":-1,                      "ssl_start":-1,                      "ssl_end":-1,                      "initiator":"https://docs.webpagetest.org/",                      "initiator_line":25,                      "initiator_column":"",                      "initiator_type":"parser",                      "priority":"MEDIUM",                      "initial_priority":"Low",                      "server_rtt":null,                      "headers":{                         "request":[                            ":path: /img/wpt-logo.svg",                            "sec-fetch-mode: no-cors",                            "accept-encoding: gzip, deflate, br",                            "accept-language: en-US,en;q=0.9",                            "user-agent: Mozilla/5.0 (Linux; Android 6.0.1; Moto G (4)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Mobile Safari/537.36 PTST/210419.211328",                            "accept: image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8",                            "referer: https://docs.webpagetest.org/",                            "sec-fetch-dest: image",                            ":authority: docs.webpagetest.org",                            ":scheme: https",                            "sec-fetch-site: same-origin",                            ":method: GET"                         ],                         "response":[                            "accept-ranges: bytes",                            "content-type: image/svg+xml",                            "date: Mon, 26 Apr 2021 21:20:40 GMT",                            "strict-transport-security: max-age=31536000",                            "x-content-type-options: nosniff",                            "x-frame-options: SAMEORIGIN",                            "x-xss-protection: 1; mode=block",                            "content-encoding: br",                            "etag: "4304409d1e3dc95e2f71ee77381b2a05-ssl"",                            "age: 58517",                            "content-length: 3590",                            "server: Netlify",                            "vary: Accept-Encoding",                            "cache-control: max-age=31536000",                            "x-nf-request-id: c2eaf3a4-2a5a-4666-ab88-50a4385ecc91-7870452",                            ":status: 200"                         ]                      },                      "bytesOut":1597,                      "score_cache":100,                      "score_cdn":100,                      "score_gzip":100,                      "score_cookies":-1,                      "score_keep-alive":100,                      "score_minify":-1,                      "score_combine":-1,                      "score_compress":-1,                      "score_etags":-1,                      "dns_ms":-1,                      "connect_ms":-1,                      "ssl_ms":-1,                      "gzip_total":3590,                      "gzip_save":0,                      "minify_total":null,                      "minify_save":null,                      "image_total":null,                      "image_save":null,                      "cache_time":31477483,                      "cdn_provider":"Netlify",                      "server_count":null,                      "created":787,                      "http2_stream_id":3,                      "http2_stream_dependency":0,                      "http2_stream_weight":147,                      "http2_stream_exclusive":1,                      "server_port":"443",                      "client_port":"35520",                      "load_end":973,                      "ttfb_start":787,                      "ttfb_end":969,                      "download_start":969,                      "download_end":973,                      "download_ms":4,                      "all_start":787,                      "all_end":973,                      "all_ms":186,                      "index":1,                      "number":2                   },                   {                      "type":3,                      "id":"29564.5",                      "request_id":"29564.5",                      "ip_addr":"52.203.36.44",                      "full_url":"https://docs.webpagetest.org/img/wpt-teaser.png",                      "is_secure":1,                      "method":"GET",                      "host":"docs.webpagetest.org",                      "url":"/img/wpt-teaser.png",                      "raw_id":"29564.5",                      "frame_id":"E57BDA2151E08AC948685BFE69680D5E",                      "documentURL":"https://docs.webpagetest.org/",                      "responseCode":200,                      "request_type":"Image",                      "load_ms":389,                      "ttfb_ms":216,                      "load_start":798,                      "load_start_float":797.92,                      "bytesIn":41066,                      "objectSize":41066,                      "objectSizeUncompressed":41066,                      "chunks":[                         {                            "ts":1166.573,                            "bytes":16384                         },                         {                            "ts":1181.386,                            "bytes":16384                         },                         {                            "ts":1187.282,                            "bytes":8298                         }                      ],                      "expires":"",                      "cacheControl":"max-age=31536000",                      "contentType":"image/png",                      "contentEncoding":"",                      "socket":42,                      "protocol":"HTTP/2",                      "dns_start":-1,                      "dns_end":-1,                      "connect_start":-1,                      "connect_end":-1,                      "ssl_start":-1,                      "ssl_end":-1,                      "initiator":"https://docs.webpagetest.org/",                      "initiator_line":63,                      "initiator_column":"",                      "initiator_type":"parser",                      "priority":"LOWEST",                      "initial_priority":"Low",                      "server_rtt":null,                      "headers":{                         "request":[                            ":path: /img/wpt-teaser.png",                            "sec-fetch-mode: no-cors",                            "accept-encoding: gzip, deflate, br",                            "accept-language: en-US,en;q=0.9",                            "user-agent: Mozilla/5.0 (Linux; Android 6.0.1; Moto G (4)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Mobile Safari/537.36 PTST/210419.211328",                            "accept: image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8",                            "referer: https://docs.webpagetest.org/",                            "sec-fetch-dest: image",                            ":authority: docs.webpagetest.org",                            ":scheme: https",                            "sec-fetch-site: same-origin",                            ":method: GET"                         ],                         "response":[                            "accept-ranges: bytes",                            "content-length: 41066",                            "content-type: image/png",                            "date: Tue, 27 Apr 2021 11:50:54 GMT",                            "strict-transport-security: max-age=31536000",                            "x-content-type-options: nosniff",                            "x-frame-options: SAMEORIGIN",                            "x-xss-protection: 1; mode=block",                            "etag: "831cf68cedc32445959dc3e61cd34701-ssl"",                            "age: 6303",                            "server: Netlify",                            "cache-control: max-age=31536000",                            "x-nf-request-id: c2eaf3a4-2a5a-4666-ab88-50a4385ecc91-7870455",                            ":status: 200"                         ]                      },                      "bytesOut":1603,                      "score_cache":100,                      "score_cdn":100,                      "score_gzip":-1,                      "score_cookies":-1,                      "score_keep-alive":100,                      "score_minify":-1,                      "score_combine":-1,                      "score_compress":100,                      "score_etags":-1,                      "dns_ms":-1,                      "connect_ms":-1,                      "ssl_ms":-1,                      "gzip_total":null,                      "gzip_save":null,                      "minify_total":null,                      "minify_save":null,                      "image_total":41066,                      "image_save":0,                      "cache_time":31529697,                      "cdn_provider":"Netlify",                      "server_count":null,                      "created":798,                      "http2_stream_id":5,                      "http2_stream_dependency":3,                      "http2_stream_weight":147,                      "http2_stream_exclusive":1,                      "server_port":"443",                      "client_port":"35520",                      "load_end":1187,                      "ttfb_start":798,                      "ttfb_end":1014,                      "download_start":1014,                      "download_end":1187,                      "download_ms":173,                      "all_start":798,                      "all_end":1187,                      "all_ms":389,                      "index":2,                      "number":3                   },                   {                      "type":3,                      "id":"29564.6",                      "request_id":"29564.6",                      "ip_addr":"52.203.36.44",                      "full_url":"https://docs.webpagetest.org/img/scripting-teaser.png",                      "is_secure":1,                      "method":"GET",                      "host":"docs.webpagetest.org",                      "url":"/img/scripting-teaser.png",                      "raw_id":"29564.6",                      "frame_id":"E57BDA2151E08AC948685BFE69680D5E",                      "documentURL":"https://docs.webpagetest.org/",                      "responseCode":200,                      "request_type":"Image",                      "load_ms":382,                      "ttfb_ms":376,                      "load_start":812,                      "load_start_float":812.112,                      "bytesIn":8326,                      "objectSize":8326,                      "objectSizeUncompressed":8326,                      "chunks":[                         {                            "ts":1194.526,                            "bytes":8326                         }                      ],                      "expires":"",                      "cacheControl":"max-age=31536000",                      "contentType":"image/png",                      "contentEncoding":"",                      "socket":42,                      "protocol":"HTTP/2",                      "dns_start":-1,                      "dns_end":-1,                      "connect_start":-1,                      "connect_end":-1,                      "ssl_start":-1,                      "ssl_end":-1,                      "initiator":"https://docs.webpagetest.org/",                      "initiator_line":69,                      "initiator_column":"",                      "initiator_type":"parser",                      "priority":"LOWEST",                      "initial_priority":"Low",                      "server_rtt":null,                      "headers":{                         "request":[                            ":path: /img/scripting-teaser.png",                            "sec-fetch-mode: no-cors",                            "accept-encoding: gzip, deflate, br",                            "accept-language: en-US,en;q=0.9",                            "user-agent: Mozilla/5.0 (Linux; Android 6.0.1; Moto G (4)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Mobile Safari/537.36 PTST/210419.211328",                            "accept: image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8",                            "referer: https://docs.webpagetest.org/",                            "sec-fetch-dest: image",                            ":authority: docs.webpagetest.org",                            ":scheme: https",                            "sec-fetch-site: same-origin",                            ":method: GET"                         ],                         "response":[                            "accept-ranges: bytes",                            "content-length: 8326",                            "content-type: image/png",                            "date: Tue, 27 Apr 2021 11:50:54 GMT",                            "strict-transport-security: max-age=31536000",                            "x-content-type-options: nosniff",                            "x-frame-options: SAMEORIGIN",                            "x-xss-protection: 1; mode=block",                            "etag: "001924d934a1e84e29d80a6ca44813d7-ssl"",                            "age: 6303",                            "server: Netlify",                            "cache-control: max-age=31536000",                            "x-nf-request-id: c2eaf3a4-2a5a-4666-ab88-50a4385ecc91-7870471",                            ":status: 200"                         ]                      },                      "bytesOut":1621,                      "score_cache":100,                      "score_cdn":100,                      "score_gzip":-1,                      "score_cookies":-1,                      "score_keep-alive":100,                      "score_minify":-1,                      "score_combine":-1,                      "score_compress":100,                      "score_etags":-1,                      "dns_ms":-1,                      "connect_ms":-1,                      "ssl_ms":-1,                      "gzip_total":null,                      "gzip_save":null,                      "minify_total":null,                      "minify_save":null,                      "image_total":8326,                      "image_save":0,                      "cache_time":31529697,                      "cdn_provider":"Netlify",                      "server_count":null,                      "created":812,                      "http2_stream_id":7,                      "http2_stream_dependency":5,                      "http2_stream_weight":147,                      "http2_stream_exclusive":1,                      "server_port":"443",                      "client_port":"35520",                      "load_end":1194,                      "ttfb_start":812,                      "ttfb_end":1188,                      "download_start":1188,                      "download_end":1194,                      "download_ms":6,                      "all_start":812,                      "all_end":1194,                      "all_ms":382,                      "index":3,                      "number":4                   },                   {                      "type":3,                      "id":"29564.7",                      "request_id":"29564.7",                      "ip_addr":"52.203.36.44",                      "full_url":"https://docs.webpagetest.org/img/custom-metrics-teaser.png",                      "is_secure":1,                      "method":"GET",                      "host":"docs.webpagetest.org",                      "url":"/img/custom-metrics-teaser.png",                      "raw_id":"29564.7",                      "frame_id":"E57BDA2151E08AC948685BFE69680D5E",                      "documentURL":"https://docs.webpagetest.org/",                      "responseCode":200,                      "request_type":"Image",                      "load_ms":189,                      "ttfb_ms":176,                      "load_start":816,                      "load_start_float":815.691,                      "bytesIn":14810,                      "objectSize":14810,                      "objectSizeUncompressed":14810,                      "chunks":[                         {                            "ts":1004.595,                            "bytes":14810                         }                      ],                      "expires":"",                      "cacheControl":"max-age=31536000",                      "contentType":"image/png",                      "contentEncoding":"",                      "socket":42,                      "protocol":"HTTP/2",                      "dns_start":-1,                      "dns_end":-1,                      "connect_start":-1,                      "connect_end":-1,                      "ssl_start":-1,                      "ssl_end":-1,                      "initiator":"https://docs.webpagetest.org/",                      "initiator_line":75,                      "initiator_column":"",                      "initiator_type":"parser",                      "priority":"LOWEST",                      "initial_priority":"Low",                      "server_rtt":null,                      "headers":{                         "request":[                            ":path: /img/custom-metrics-teaser.png",                            "sec-fetch-mode: no-cors",                            "accept-encoding: gzip, deflate, br",                            "accept-language: en-US,en;q=0.9",                            "user-agent: Mozilla/5.0 (Linux; Android 6.0.1; Moto G (4)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Mobile Safari/537.36 PTST/210419.211328",                            "accept: image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8",                            "referer: https://docs.webpagetest.org/",                            "sec-fetch-dest: image",                            ":authority: docs.webpagetest.org",                            ":scheme: https",                            "sec-fetch-site: same-origin",                            ":method: GET"                         ],                         "response":[                            "accept-ranges: bytes",                            "content-length: 14810",                            "content-type: image/png",                            "date: Tue, 27 Apr 2021 10:08:31 GMT",                            "strict-transport-security: max-age=31536000",                            "x-content-type-options: nosniff",                            "x-frame-options: SAMEORIGIN",                            "x-xss-protection: 1; mode=block",                            "etag: "de91fa159b27da4905eb03a32fb37487-ssl"",                            "age: 12446",                            "server: Netlify",                            "cache-control: max-age=31536000",                            "x-nf-request-id: c2eaf3a4-2a5a-4666-ab88-50a4385ecc91-7870475",                            ":status: 200"                         ]                      },                      "bytesOut":1636,                      "score_cache":100,                      "score_cdn":100,                      "score_gzip":-1,                      "score_cookies":-1,                      "score_keep-alive":100,                      "score_minify":-1,                      "score_combine":-1,                      "score_compress":100,                      "score_etags":-1,                      "dns_ms":-1,                      "connect_ms":-1,                      "ssl_ms":-1,                      "gzip_total":null,                      "gzip_save":null,                      "minify_total":null,                      "minify_save":null,                      "image_total":14810,                      "image_save":0,                      "cache_time":31523554,                      "cdn_provider":"Netlify",                      "server_count":null,                      "created":815,                      "http2_stream_id":9,                      "http2_stream_dependency":7,                      "http2_stream_weight":147,                      "http2_stream_exclusive":1,                      "server_port":"443",                      "client_port":"35520",                      "load_end":1005,                      "ttfb_start":816,                      "ttfb_end":992,                      "download_start":992,                      "download_end":1005,                      "download_ms":13,                      "all_start":816,                      "all_end":1005,                      "all_ms":189,                      "index":4,                      "number":5                   },                   {                      "type":3,                      "id":"29564.12",                      "request_id":"29564.12",                      "ip_addr":"172.217.15.78",                      "full_url":"https://www.google-analytics.com/analytics.js",                      "is_secure":1,                      "method":"GET",                      "host":"www.google-analytics.com",                      "url":"/analytics.js",                      "raw_id":"29564.12",                      "frame_id":"E57BDA2151E08AC948685BFE69680D5E",                      "documentURL":"https://docs.webpagetest.org/",                      "responseCode":200,                      "request_type":"Script",                      "load_ms":362,                      "ttfb_ms":173,                      "load_start":1396,                      "load_start_float":1396.228,                      "bytesIn":19569,                      "objectSize":19569,                      "objectSizeUncompressed":49153,                      "chunks":[                         {                            "ts":1572.201,                            "bytes":1387                         },                         {                            "ts":1618.726,                            "bytes":2792                         },                         {                            "ts":1620.963,                            "bytes":9772                         },                         {                            "ts":1745.166,                            "bytes":2783                         },                         {                            "ts":1750.04,                            "bytes":2792                         },                         {                            "ts":1758.556,                            "bytes":43                         }                      ],                      "expires":"Tue, 27 Apr 2021 14:39:36 GMT",                      "cacheControl":"public, max-age=7200",                      "contentType":"text/javascript",                      "contentEncoding":"gzip",                      "socket":73,                      "protocol":"HTTP/2",                      "dns_start":872,                      "dns_end":1043,                      "connect_start":1044,                      "connect_end":1215,                      "ssl_start":1215,                      "ssl_end":1396,                      "securityDetails":{                         "protocol":"TLS 1.3",                         "keyExchange":"",                         "keyExchangeGroup":"X25519",                         "cipher":"AES_128_GCM",                         "certificateId":0,                         "subjectName":"*.google-analytics.com",                         "sanList":[                            "*.google-analytics.com",                            "*.fps.goog",                            "app-measurement.com",                            "fps.goog",                            "google-analytics.com",                            "googleoptimize.com",                            "googletagmanager.com",                            "service.urchin.com",                            "ssl.google-analytics.com",                            "urchin.com",                            "www.google-analytics.com",                            "www.googleoptimize.com",                            "www.googletagmanager.com"                         ],                         "issuer":"GTS CA 1O1",                         "validFrom":1618308673,                         "validTo":1625566272,                         "signedCertificateTimestampList":[                            {                               "status":"Verified",                               "origin":"Embedded in certificate",                               "logDescription":"DigiCert Yeti2021 Log",                               "logId":"5CDC4392FEE6AB4544B15E9AD456E61037FBD5FA47DCA17394B25EE6F6C70ECA",                               "timestamp":1618312273901,                               "hashAlgorithm":"SHA-256",                               "signatureAlgorithm":"ECDSA",                               "signatureData":"30460221009608A014C73D20EAC596F1917838CD9C9CAE7079718E74F96AD6C4107712F05A022100B790736BD4C955613B0B631DDA6EF2B6C605B4EDCA4B8B5C654678B76763B2AB"                            },                            {                               "status":"Verified",                               "origin":"Embedded in certificate",                               "logDescription":"Google 'Xenon2021' log",                               "logId":"7D3EF2F88FFF88556824C2C0CA9E5289792BC50E78097F2E6A9768997E22F0D7",                               "timestamp":1618312273651,                               "hashAlgorithm":"SHA-256",                               "signatureAlgorithm":"ECDSA",                               "signatureData":"3046022100E30A48D64E8B8E57EDFC374B282FBC7164DECA47B7C392AF127522F76567F75B022100FD4D7E851F74A98DD2279E1A5E1730C3CF9CC6EA73F34144020F417E97263BBE"                            }                         ],                         "certificateTransparencyCompliance":"compliant"                      },                      "initiator":"https://docs.webpagetest.org/",                      "initiator_line":102,                      "initiator_column":62,                      "initiator_type":"script",                      "priority":"LOWEST",                      "initial_priority":"Low",                      "server_rtt":null,                      "headers":{                         "request":[                            ":method: GET",                            ":authority: www.google-analytics.com",                            ":scheme: https",                            ":path: /analytics.js",                            "user-agent: Mozilla/5.0 (Linux; Android 6.0.1; Moto G (4)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Mobile Safari/537.36 PTST/210419.211328",                            "accept: */*",                            "sec-fetch-site: cross-site",                            "sec-fetch-mode: no-cors",                            "sec-fetch-dest: script",                            "referer: https://docs.webpagetest.org/",                            "accept-encoding: gzip, deflate, br",                            "accept-language: en-US,en;q=0.9"                         ],                         "response":[                            "strict-transport-security: max-age=10886400; includeSubDomains; preload",                            "date: Tue, 27 Apr 2021 12:39:36 GMT",                            "expires: Tue, 27 Apr 2021 14:39:36 GMT",                            "last-modified: Fri, 09 Apr 2021 23:59:54 GMT",                            "x-content-type-options: nosniff",                            "content-type: text/javascript",                            "vary: Accept-Encoding",                            "content-encoding: gzip",                            "cross-origin-resource-policy: cross-origin",                            "server: Golfe2",                            "content-length: 19569",                            "cache-control: public, max-age=7200",                            "age: 3382",                            "alt-svc: h3-29=":443"; ma=2592000,h3-T051=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"",                            ":status: 200"                         ]                      },                      "bytesOut":1414,                      "score_cache":50,                      "score_cdn":100,                      "score_gzip":100,                      "score_cookies":-1,                      "score_keep-alive":100,                      "score_minify":-1,                      "score_combine":-1,                      "score_compress":-1,                      "score_etags":-1,                      "dns_ms":171,                      "connect_ms":171,                      "ssl_ms":181,                      "gzip_total":19569,                      "gzip_save":0,                      "minify_total":null,                      "minify_save":null,                      "image_total":null,                      "image_save":null,                      "cache_time":3818,                      "cdn_provider":"Google",                      "server_count":null,                      "created":872,                      "http2_stream_id":1,                      "http2_stream_dependency":0,                      "http2_stream_weight":147,                      "http2_stream_exclusive":1,                      "http2_server_settings":{                         "SETTINGS_MAX_CONCURRENT_STREAMS":100,                         "SETTINGS_INITIAL_WINDOW_SIZE":1048576,                         "SETTINGS_MAX_HEADER_LIST_SIZE":65536                      },                      "tls_version":"TLS 1.3",                      "tls_resumed":"False",                      "tls_next_proto":"h2",                      "tls_cipher_suite":4865,                      "certificates":[                         "-----BEGIN CERTIFICATE-----nMIIF0TCCBLmgAwIBAgIRAO2pOgHqMlrbAwAAAADL91cwDQYJKoZIhvcNAQELBQAwnQjELMAkGA1UEBhMCVVMxHjAcBgNVBAoTFUdvb2dsZSBUcnVzdCBTZXJ2aWNlczETnMBEGA1UEAxMKR1RTIENBIDFPMTAeFw0yMTA0MTMxMDExMTNaFw0yMTA3MDYxMDExnMTJaMHAxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHnEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgTExDMR8wHQYDVQQDDBYqnLmdvb2dsZS1hbmFseXRpY3MuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEn+QKmGbC8eeaC/rlAxweHlRajJf6MDyWUdWW7PbYhgMn5PcWab7Yqy75LxZL6FO/xnYSOPyPUEvy9a4fOPidjCw6OCA10wggNZMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEnDDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBR5TME+2HrMfS9kndnHMdVoNKKGwfTAfBgNVHSMEGDAWgBSY0fhuEOvPm+xgnxiQG6DrfQn9KzBoBggrnBgEFBQcBAQRcMFowKwYIKwYBBQUHMAGGH2h0dHA6Ly9vY3NwLnBraS5nb29nL2d0nczFvMWNvcmUwKwYIKwYBBQUHMAKGH2h0dHA6Ly9wa2kuZ29vZy9nc3IyL0dUUzFPnMS5jcnQwggEWBgNVHREEggENMIIBCYIWKi5nb29nbGUtYW5hbHl0aWNzLmNvbYIKnKi5mcHMuZ29vZ4ITYXBwLW1lYXN1cmVtZW50LmNvbYIIZnBzLmdvb2eCFGdvb2dsnZS1hbmFseXRpY3MuY29tghJnb29nbGVvcHRpbWl6ZS5jb22CFGdvb2dsZXRhZ21hnbmFnZXIuY29tghJzZXJ2aWNlLnVyY2hpbi5jb22CGHNzbC5nb29nbGUtYW5hbHl0naWNzLmNvbYIKdXJjaGluLmNvbYIYd3d3Lmdvb2dsZS1hbmFseXRpY3MuY29tghZ3nd3cuZ29vZ2xlb3B0aW1pemUuY29tghh3d3cuZ29vZ2xldGFnbWFuYWdlci5jb20wnIQYDVR0gBBowGDAIBgZngQwBAgIwDAYKKwYBBAHWeQIFAzAzBgNVHR8ELDAqMCignJqAkhiJodHRwOi8vY3JsLnBraS5nb29nL0dUUzFPMWNvcmUuY3JsMIIBBgYKKwYBnBAHWeQIEAgSB9wSB9ADyAHcAXNxDkv7mq0VEsV6a1FbmEDf71fpH3KFzlLJe5vbHnDsoAAAF4yu2f7QAABAMASDBGAiEAlgigFMc9IOrFlvGReDjNnJyucHlxjnT5atbEnEHcS8FoCIQC3kHNr1MlVYTsLYx3abvK2xgW07cpLi1xlRni3Z2OyqwB3AH0+8viPn/4hVaCTCwMqeUol5K8UOeAl/LmqXaJl+IvDXAAABeMrtnvMAAAQDAEgwRgIhAOMKnSNZOi45X7fw3SygvvHFk3spHt8OSrxJ1IvdlZ/dbAiEA/U1+hR90qY3SJ54aXhcwnw8+cxupz80FEAg9BfpcmO74wDQYJKoZIhvcNAQELBQADggEBAHm/5B+ENO6J3BCbn+uTNqOvz+UqkMo27qyj77WA1nTCnYxp0mxhympQziVC1u9RkSBQxcP61OXB8l+DwnJqOgr2F9sApIOZ3OyMGj2vBLL1TARjv6kO7VYaA4nqm12+TBTNq4fe2o2oIj+xWvnwY1AynJShXm6ZVZgRpxspdcNq+/TdA8lXwPTqNbYQiWJ9chgyS+MmrzB+j4tsNuxn10aNwmn0kgAWk2L5bLZ2YzI3hF4KVKkNtAduC2VnDMLHTcaIzykh3+f0qQbiQmPmnylHNP6ELQPORk/31TpVMGj69WuHML4meYvH2Wp8fVcW33TGrBEI7WFgHAHmr/GKbn537xAbo=n-----END CERTIFICATE-----n",                         "-----BEGIN CERTIFICATE-----nMIIESjCCAzKgAwIBAgINAeO0mqGNiqmBJWlQuDANBgkqhkiG9w0BAQsFADBMMSAwnHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMjETMBEGA1UEChMKR2xvYmFsnU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjAeFw0xNzA2MTUwMDAwNDJaFw0yMTEynMTUwMDAwNDJaMEIxCzAJBgNVBAYTAlVTMR4wHAYDVQQKExVHb29nbGUgVHJ1c3QgnU2VydmljZXMxEzARBgNVBAMTCkdUUyBDQSAxTzEwggEiMA0GCSqGSIb3DQEBAQUAnA4IBDwAwggEKAoIBAQDQGM9F1IvN05zkQO9+tN1pIRvJzzyOTHW5DzEZhD2ePCnvnUA0Qk28FgICfKqC9EksC4T2fWBYk/jCfC3R3VZMdS/dN4ZKCEPZRrAzDsiKUDzRrnmBBJ5wudgzndIMYcLe/RGGFl5yODIKgjEv/SJH/UL+dEaltN11BmsK+eQmMF++AcnxGNhr59qM/9il71I2dN8FGfcddwuaej4bXhp0LcQBbjxMcI7JP0aM3T4I+DsaxmKnFsbjzaTNC9uzpFlgOIg7rR25xoynUxv8vNmkq7zdPGHXkxWY7oG9j+JkRyBABk7XnrJfoucBZEqFJJSPk7XA0LKW0Y3z5oz2D0c1tJKwHAgMBAAGjggEzMIIBLzAOBgNVnHQ8BAf8EBAMCAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBIGA1UdnEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFJjR+G4Q68+b7GCfGJAboOt9Cf0rMB8GnA1UdIwQYMBaAFJviB1dnHB7AagbeWbSaLd/cGYYuMDUGCCsGAQUFBwEBBCkwJzAlnBggrBgEFBQcwAYYZaHR0cDovL29jc3AucGtpLmdvb2cvZ3NyMjAyBgNVHR8EKzApnMCegJaAjhiFodHRwOi8vY3JsLnBraS5nb29nL2dzcjIvZ3NyMi5jcmwwPwYDVR0gnBDgwNjA0BgZngQwBAgIwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly9wa2kuZ29vZy9ynZXBvc2l0b3J5LzANBgkqhkiG9w0BAQsFAAOCAQEAGoA+Nnn78y6pRjd9XlQWNa7HnTgiZ/r3RNGkmUmYHPQq6Scti9PEajvwRT2iWTHQr02fesqOqBY2ETUwgZQ+lltoNnFvhsO9tvBCOIazpswWC9aJ9xju4tWDQH8NVU6YZZ/XteDSGU9YzJqPjY8q3MDxrznmqepBCf5o8mw/wJ4a2G6xzUr6Fb6T8McDO22PLRL6u3M4Tzs3A2M1j6bykJYi8wWnIRdAvKLWZu/axBVbzYmqmwkm5zLSDW5nIAJbELCQCZwMH56t2Dvqofxs6BBcCFIZnUSpxu6x6td0V7SvJCCosirSmIatj/9dSSVDQibet8q/7UK4v4ZUN80atnZz1yg==n-----END CERTIFICATE-----n"                      ],                      "server_port":"443",                      "client_port":"56922",                      "renderBlocking":"blocking",                      "load_end":1758,                      "ttfb_start":1396,                      "ttfb_end":1569,                      "download_start":1569,                      "download_end":1758,                      "download_ms":189,                      "all_start":872,                      "all_end":1758,                      "all_ms":885,                      "cpuTimes":{                         "EvaluateScript":41,                         "v8.compile":3,                         "FunctionCall":3                      },                      "cpu.EvaluateScript":41,                      "cpu.v8.compile":3,                      "cpu.FunctionCall":3,                      "cpuTime":47,                      "index":5,                      "number":6                   },                   {                      "type":3,                      "id":"29564.13",                      "request_id":"29564.13",                      "ip_addr":"172.217.15.78",                      "full_url":"https://www.google-analytics.com/j/collect?v=1&_v=j90&a=1625372481&t=pageview&_s=1&dl=https%3A%2F%2Fdocs.webpagetest.org%2F&ul=en-us&de=UTF-8&dt=Welcome%20to%20WebPageTest%20%7C%20WebPageTest%20Documentation&sd=24-bit&sr=360x512&vp=360x512&je=0&_u=IEBAAEABAAAAAC~&jid=87199586&gjid=1851064854&cid=270986431.1619530559&tid=UA-3755571-1&_gid=1345304305.1619530559&_r=1&_slc=1&z=705970808",                      "is_secure":1,                      "method":"POST",                      "host":"www.google-analytics.com",                      "url":"/j/collect?v=1&_v=j90&a=1625372481&t=pageview&_s=1&dl=https%3A%2F%2Fdocs.webpagetest.org%2F&ul=en-us&de=UTF-8&dt=Welcome%20to%20WebPageTest%20%7C%20WebPageTest%20Documentation&sd=24-bit&sr=360x512&vp=360x512&je=0&_u=IEBAAEABAAAAAC~&jid=87199586&gjid=1851064854&cid=270986431.1619530559&tid=UA-3755571-1&_gid=1345304305.1619530559&_r=1&_slc=1&z=705970808",                      "raw_id":"29564.13",                      "frame_id":"E57BDA2151E08AC948685BFE69680D5E",                      "documentURL":"https://docs.webpagetest.org/",                      "responseCode":200,                      "request_type":"XHR",                      "load_ms":185,                      "ttfb_ms":185,                      "load_start":1805,                      "load_start_float":1805.275,                      "bytesIn":4,                      "objectSize":4,                      "objectSizeUncompressed":4,                      "chunks":[                         {                            "ts":1990.716,                            "bytes":4                         }                      ],                      "expires":"Fri, 01 Jan 1990 00:00:00 GMT",                      "cacheControl":"no-cache, no-store, must-revalidate",                      "contentType":"text/plain",                      "contentEncoding":"",                      "socket":73,                      "protocol":"HTTP/2",                      "dns_start":-1,                      "dns_end":-1,                      "connect_start":-1,                      "connect_end":-1,                      "ssl_start":-1,                      "ssl_end":-1,                      "initiator":"https://www.google-analytics.com/analytics.js",                      "initiator_line":38,                      "initiator_column":31,                      "initiator_type":"script",                      "initiator_function":"wd",                      "priority":"MEDIUM",                      "initial_priority":"High",                      "server_rtt":null,                      "headers":{                         "request":[                            ":method: POST",                            ":authority: www.google-analytics.com",                            ":scheme: https",                            ":path: /j/collect?v=1&_v=j90&a=1625372481&t=pageview&_s=1&dl=https%3A%2F%2Fdocs.webpagetest.org%2F&ul=en-us&de=UTF-8&dt=Welcome%20to%20WebPageTest%20%7C%20WebPageTest%20Documentation&sd=24-bit&sr=360x512&vp=360x512&je=0&_u=IEBAAEABAAAAAC~&jid=87199586&gjid=1851064854&cid=270986431.1619530559&tid=UA-3755571-1&_gid=1345304305.1619530559&_r=1&_slc=1&z=705970808",                            "content-length: 0",                            "user-agent: Mozilla/5.0 (Linux; Android 6.0.1; Moto G (4)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Mobile Safari/537.36 PTST/210419.211328",                            "content-type: text/plain",                            "accept: */*",                            "origin: https://docs.webpagetest.org",                            "sec-fetch-site: cross-site",                            "sec-fetch-mode: cors",                            "sec-fetch-dest: empty",                            "referer: https://docs.webpagetest.org/",                            "accept-encoding: gzip, deflate, br",                            "accept-language: en-US,en;q=0.9"                         ],                         "response":[                            "access-control-allow-origin: https://docs.webpagetest.org",                            "date: Tue, 27 Apr 2021 13:35:58 GMT",                            "pragma: no-cache",                            "expires: Fri, 01 Jan 1990 00:00:00 GMT",                            "cache-control: no-cache, no-store, must-revalidate",                            "last-modified: Sun, 17 May 1998 03:00:00 GMT",                            "access-control-allow-credentials: true",                            "x-content-type-options: nosniff",                            "content-type: text/plain",                            "cross-origin-resource-policy: cross-origin",                            "server: Golfe2",                            "content-length: 4",                            "alt-svc: h3-29=":443"; ma=2592000,h3-T051=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"",                            ":status: 200"                         ]                      },                      "bytesOut":2692,                      "score_cache":-1,                      "score_cdn":100,                      "score_gzip":-1,                      "score_cookies":-1,                      "score_keep-alive":100,                      "score_minify":-1,                      "score_combine":-1,                      "score_compress":-1,                      "score_etags":-1,                      "dns_ms":-1,                      "connect_ms":-1,                      "ssl_ms":-1,                      "gzip_total":null,                      "gzip_save":null,                      "minify_total":null,                      "minify_save":null,                      "image_total":null,                      "image_save":null,                      "cache_time":null,                      "cdn_provider":"Google",                      "server_count":null,                      "created":1804,                      "http2_stream_id":3,                      "http2_stream_dependency":0,                      "http2_stream_weight":220,                      "http2_stream_exclusive":1,                      "server_port":"443",                      "client_port":"56922",                      "load_end":1990,                      "ttfb_start":1805,                      "ttfb_end":1990,                      "download_start":1990,                      "download_end":1990,                      "download_ms":0,                      "all_start":1805,                      "all_end":1990,                      "all_ms":185,                      "index":6,                      "number":7                   },                   {                      "type":3,                      "id":"29564.15",                      "request_id":"29564.15",                      "ip_addr":"52.203.36.44",                      "full_url":"https://docs.webpagetest.org/img/favicon-32x32.png",                      "is_secure":1,                      "method":"GET",                      "host":"docs.webpagetest.org",                      "url":"/img/favicon-32x32.png",                      "raw_id":"29564.15",                      "frame_id":"E57BDA2151E08AC948685BFE69680D5E",                      "documentURL":"https://docs.webpagetest.org/",                      "responseCode":200,                      "request_type":"Other",                      "load_ms":178,                      "ttfb_ms":174,                      "load_start":1825,                      "load_start_float":1825.017,                      "bytesIn":1442,                      "objectSize":1442,                      "objectSizeUncompressed":1442,                      "chunks":[                         {                            "ts":2003.5,                            "bytes":1442                         }                      ],                      "expires":"",                      "cacheControl":"max-age=31536000",                      "contentType":"image/png",                      "contentEncoding":"",                      "socket":42,                      "protocol":"HTTP/2",                      "dns_start":-1,                      "dns_end":-1,                      "connect_start":-1,                      "connect_end":-1,                      "ssl_start":-1,                      "ssl_end":-1,                      "initiator":"",                      "initiator_line":"",                      "initiator_column":"",                      "initiator_type":"other",                      "priority":"MEDIUM",                      "initial_priority":"High",                      "server_rtt":null,                      "headers":{                         "request":[                            ":path: /img/favicon-32x32.png",                            "sec-fetch-mode: no-cors",                            "accept-encoding: gzip, deflate, br",                            "accept-language: en-US,en;q=0.9",                            "user-agent: Mozilla/5.0 (Linux; Android 6.0.1; Moto G (4)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Mobile Safari/537.36 PTST/210419.211328",                            "accept: image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8",                            "referer: https://docs.webpagetest.org/",                            "sec-fetch-dest: image",                            ":authority: docs.webpagetest.org",                            "cookie: _ga=GA1.2.270986431.1619530559; _gid=GA1.2.1345304305.1619530559; _gat=1",                            ":scheme: https",                            "sec-fetch-site: same-origin",                            ":method: GET"                         ],                         "response":[                            "accept-ranges: bytes",                            "content-length: 1442",                            "content-type: image/png",                            "date: Mon, 26 Apr 2021 21:48:16 GMT",                            "strict-transport-security: max-age=31536000",                            "x-content-type-options: nosniff",                            "x-frame-options: SAMEORIGIN",                            "x-xss-protection: 1; mode=block",                            "etag: "82fa0dc571db595a417da47204342c86-ssl"",                            "age: 56862",                            "server: Netlify",                            "cache-control: max-age=31536000",                            "x-nf-request-id: c2eaf3a4-2a5a-4666-ab88-50a4385ecc91-7871248",                            ":status: 200"                         ]                      },                      "bytesOut":1864,                      "score_cache":100,                      "score_cdn":100,                      "score_gzip":-1,                      "score_cookies":-1,                      "score_keep-alive":100,                      "score_minify":-1,                      "score_combine":-1,                      "score_compress":100,                      "score_etags":-1,                      "dns_ms":-1,                      "connect_ms":-1,                      "ssl_ms":-1,                      "gzip_total":null,                      "gzip_save":null,                      "minify_total":null,                      "minify_save":null,                      "image_total":1442,                      "image_save":0,                      "cache_time":31479138,                      "cdn_provider":"Netlify",                      "server_count":null,                      "created":1825,                      "http2_stream_id":11,                      "http2_stream_dependency":0,                      "http2_stream_weight":220,                      "http2_stream_exclusive":1,                      "server_port":"443",                      "client_port":"35520",                      "load_end":2003,                      "ttfb_start":1825,                      "ttfb_end":1999,                      "download_start":1999,                      "download_end":2003,                      "download_ms":4,                      "all_start":1825,                      "all_end":2003,                      "all_ms":178,                      "index":7,                      "number":8                   },                   {                      "type":3,                      "id":"29564.14",                      "request_id":"29564.14",                      "ip_addr":"52.203.36.44",                      "full_url":"https://docs.webpagetest.org/manifest.json",                      "is_secure":1,                      "method":"GET",                      "host":"docs.webpagetest.org",                      "url":"/manifest.json",                      "raw_id":"29564.14",                      "frame_id":"E57BDA2151E08AC948685BFE69680D5E",                      "documentURL":"https://docs.webpagetest.org/",                      "responseCode":200,                      "request_type":"Manifest",                      "load_ms":174,                      "ttfb_ms":173,                      "load_start":2169,                      "load_start_float":2168.708,                      "bytesIn":409,                      "objectSize":409,                      "objectSizeUncompressed":409,                      "chunks":[                         {                            "ts":2342.306,                            "bytes":409                         }                      ],                      "expires":"",                      "cacheControl":"max-age=31536000",                      "contentType":"application/json",                      "contentEncoding":"",                      "socket":93,                      "protocol":"HTTP/2",                      "dns_start":-1,                      "dns_end":-1,                      "connect_start":1822,                      "connect_end":1993,                      "ssl_start":1993,                      "ssl_end":2169,                      "securityDetails":{                         "protocol":"TLS 1.3",                         "keyExchange":"",                         "keyExchangeGroup":"X25519",                         "cipher":"AES_256_GCM",                         "certificateId":0,                         "subjectName":"docs.webpagetest.org",                         "sanList":[                            "docs.webpagetest.org"                         ],                         "issuer":"R3",                         "validFrom":1619467227,                         "validTo":1627243227,                         "signedCertificateTimestampList":[                            {                               "status":"Verified",                               "origin":"Embedded in certificate",                               "logDescription":"Sectigo 'Mammoth' CT log",                               "logId":"6F5376AC31F03119D89900A45115FF77151C11D902C10029068DB2089A37D913",                               "timestamp":1619470827302,                               "hashAlgorithm":"SHA-256",                               "signatureAlgorithm":"ECDSA",                               "signatureData":"3046022100A2BCD9F63B5797CB092A1186C47BBA07159B64A547AB70F712A2365232D80C29022100D0F30E54E297A03A68369920C0D941D7A0FF3840478D681039FC4156BF21BA81"                            },                            {                               "status":"Verified",                               "origin":"Embedded in certificate",                               "logDescription":"Google 'Xenon2021' log",                               "logId":"7D3EF2F88FFF88556824C2C0CA9E5289792BC50E78097F2E6A9768997E22F0D7",                               "timestamp":1619470827299,                               "hashAlgorithm":"SHA-256",                               "signatureAlgorithm":"ECDSA",                               "signatureData":"3045022069E20E80E8FBAF20B7DE722D0104F91084379684D20200DD621EAD7A7254C0930221008C377DFEC43CB8395661CEC67259D1F8A955D5046D5B96191CAC7569DFEC0D83"                            }                         ],                         "certificateTransparencyCompliance":"compliant"                      },                      "initiator":"",                      "initiator_line":"",                      "initiator_column":"",                      "initiator_type":"other",                      "priority":"LOW",                      "initial_priority":"Medium",                      "server_rtt":null,                      "headers":{                         "request":[                            ":path: /manifest.json",                            "sec-fetch-mode: cors",                            "accept-encoding: gzip, deflate, br",                            "accept-language: en-US,en;q=0.9",                            "user-agent: Mozilla/5.0 (Linux; Android 6.0.1; Moto G (4)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Mobile Safari/537.36 PTST/210419.211328",                            "accept: */*",                            "referer: https://docs.webpagetest.org/",                            "sec-fetch-dest: empty",                            ":authority: docs.webpagetest.org",                            ":scheme: https",                            "sec-fetch-site: same-origin",                            ":method: GET"                         ],                         "response":[                            "accept-ranges: bytes",                            "content-length: 409",                            "content-type: application/json",                            "date: Mon, 26 Apr 2021 21:48:16 GMT",                            "strict-transport-security: max-age=31536000",                            "x-content-type-options: nosniff",                            "x-frame-options: SAMEORIGIN",                            "x-xss-protection: 1; mode=block",                            "etag: "09a5b70bbc8e36f79419a7b845655212-ssl"",                            "age: 56863",                            "server: Netlify",                            "cache-control: max-age=31536000",                            "x-nf-request-id: c2eaf3a4-2a5a-4666-ab88-50a4385ecc91-7871499",                            ":status: 200"                         ]                      },                      "bytesOut":1396,                      "score_cache":100,                      "score_cdn":100,                      "score_gzip":-1,                      "score_cookies":-1,                      "score_keep-alive":100,                      "score_minify":-1,                      "score_combine":-1,                      "score_compress":-1,                      "score_etags":-1,                      "dns_ms":-1,                      "connect_ms":171,                      "ssl_ms":176,                      "gzip_total":null,                      "gzip_save":null,                      "minify_total":null,                      "minify_save":null,                      "image_total":null,                      "image_save":null,                      "cache_time":31479137,                      "cdn_provider":"Netlify",                      "server_count":null,                      "created":1821,                      "http2_stream_id":1,                      "http2_stream_dependency":0,                      "http2_stream_weight":183,                      "http2_stream_exclusive":1,                      "http2_server_settings":{                         "SETTINGS_MAX_CONCURRENT_STREAMS":150,                         "SETTINGS_MAX_HEADER_LIST_SIZE":131072                      },                      "tls_version":"TLS 1.3",                      "tls_resumed":"False",                      "tls_next_proto":"h2",                      "tls_cipher_suite":4866,                      "certificates":[                         "-----BEGIN CERTIFICATE-----nMIIEZDCCA0ygAwIBAgISBF37oE+Ktj2/6iysUtxzpJAvMA0GCSqGSIb3DQEBCwUAnMDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQDnEwJSMzAeFw0yMTA0MjYyMDAwMjdaFw0yMTA3MjUyMDAwMjdaMB8xHTAbBgNVBAMTnFGRvY3Mud2VicGFnZXRlc3Qub3JnMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEnf8a05zALcGV/HnFaetKioT5eLwXhmzVYBhq3ah6jIWYYiHTDcJD5WYNgMDmFbmLUn1PyliKqDbTe3sDJgfamHP6OCAlAwggJMMA4GA1UdDwEB/wQEAwIHgDAdBgNVHSUEnFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUn1JMSW+DIpBZLoSI29KsqDF8abWwwHwYDVR0jBBgwFoAUFC6zF7dYVsuuUAlA5h+vnnYsUwsYwVQYIKwYBBQUHAQEESTBHMCEGCCsGAQUFBzABhhVodHRwOi8vcjMuby5snZW5jci5vcmcwIgYIKwYBBQUHMAKGFmh0dHA6Ly9yMy5pLmxlbmNyLm9yZy8wHwYDnVR0RBBgwFoIUZG9jcy53ZWJwYWdldGVzdC5vcmcwTAYDVR0gBEUwQzAIBgZngQwBnAgEwNwYLKwYBBAGC3xMBAQEwKDAmBggrBgEFBQcCARYaaHR0cDovL2Nwcy5sZXRznZW5jcnlwdC5vcmcwggEFBgorBgEEAdZ5AgQCBIH2BIHzAPEAdwBvU3asMfAxGdiZnAKRRFf93FRwR2QLBACkGjbIImjfZEwAAAXkP+78mAAAEAwBIMEYCIQCivNn2O1eXnywkqEYbEe7oHFZtkpUercPcSojZSMtgMKQIhANDzDlTil6A6aDaZIMDZQdeg/zhAnR41oEDn8QVa/IbqBAHYAfT7y+I//iFVoJMLAyp5SiXkrxQ54CX8uapdomX4i8NcAnAAF5D/u/IwAABAMARzBFAiBp4g6A6PuvILfeci0BBPkQhDeWhNICAN1iHq16clTAnkwIhAIw3ff7EPLg5VmHOxnJZ0fipVdUEbVuWGRysdWnf7A2DMA0GCSqGSIb3DQEBnCwUAA4IBAQBEGlvgqR3Ju/30dDXgrv8s6jblgKLRi92LMM4jLVF+i7q3Bkcn5NJPnM9xLVY7vLlAXIyLld5mzLEwK3Rbt7UqVsMeo4U+y/IcVipfM7QOPiv2vRGiGAetHn72rkoFdarURnZ+ycUhSTKmW7UpRH+qYqEzXCtjDeC+u0bB7C/6bawqngraY1k6QLntEd0E3vm6O4PEzk4j0u99QXQfDTUQADi+PjNZnWYrzmb8lO6d6u4q+GKz2djill+ntd8xdMDWrMioJUdiFXCrhVglCoA+BvYJ8Oq6xEFNK78bcUZK73iTHHzZRwDxDTaDn1JVHt9PAMas88V/5pzkaIIH5jGVCrZdXn-----END CERTIFICATE-----n",                         "-----BEGIN CERTIFICATE-----nMIIEZTCCA02gAwIBAgIQQAF1BIMUpMghjISpDBbN3zANBgkqhkiG9w0BAQsFADA/nMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMTnDkRTVCBSb290IENBIFgzMB4XDTIwMTAwNzE5MjE0MFoXDTIxMDkyOTE5MjE0MFownMjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUxldCdzIEVuY3J5cHQxCzAJBgNVBAMTnAlIzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuwIVKMz2oJTTDxLsnjVWSw/iC8ZmmekKIp10mqrUrucVMsa+Oa/l1yKPXD0eUFFU1V4yeqKI5GfWCPEKpnTm71O8Mu243AsFzzWTjn7c9p8FoLG77AlCQlh/o3cbMT5xys4Zvv2+Q7RVJFlqnBnU840yFLuta7tj95gcOKlVKu2bQ6XpUA0ayvTvGbrZjR8+muLj1cpmfgwF126cm/7ngcWt0oZYPRfH5wm78Sv3htzB2nFd1EbjzK0lwYi8YGd1ZrPxGPeiXOZT/zqItkeln/xMY6pgJdz+dU/nPAeX1pnAXFK9jpP+Zs5Od3FOnBv5IhR2haa4ldbsTzFID9e1RnoYvbFQIDAQABo4IBaDCCAWQwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EnBAMCAYYwSwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pnZGVudHJ1c3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEnp7Gkeyxx+tvhS5B1/8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA/BgsrBgEEnAYLfEwEBATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VunY3J5cHQub3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0nLmNvbS9EU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfnr52LFMLGMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjANBgkqhkiG9w0BnAQsFAAOCAQEA2UzgyfWEiDcx27sT4rP8i2tiEmxYt0l+PAK3qB8oYevO4C5z70kHnejWEHx2taPDY/laBL21/WKZuNTYQHHPD5b1tXgHXbnL7KqC401dk5VvCadTQsvd8nS8MXjohyc9z9/G2948kLjmE6Flh9dDYrVYA9x2O+hEPGOaEOa1eePynBgPayvUfLnqjBstzLhWVQLGAkXXmNs+5ZnPBxzDJOLxhF2JIbeQAcH5H0tZrUlo5ZYyOqA7s9pnO5b85o3AM/OJ+CktFBQtfvBhcJVd9wvlwPsk+uyOy2HI7mNxKKgsBTt375teA2TwnUdHkhVNcsAKX1H7GNNLOEADksd86wuoXvg==n-----END CERTIFICATE-----n"                      ],                      "server_port":"443",                      "client_port":"35528",                      "load_end":2343,                      "ttfb_start":2169,                      "ttfb_end":2342,                      "download_start":2342,                      "download_end":2343,                      "download_ms":1,                      "all_start":1822,                      "all_end":2343,                      "all_ms":521,                      "index":8,                      "number":9                   },                   {                      "type":3,                      "id":"29564.17",                      "request_id":"29564.17",                      "ip_addr":"52.203.36.44",                      "full_url":"https://docs.webpagetest.org/img/icons-192.png",                      "is_secure":1,                      "method":"GET",                      "host":"docs.webpagetest.org",                      "url":"/img/icons-192.png",                      "raw_id":"29564.17",                      "frame_id":"E57BDA2151E08AC948685BFE69680D5E",                      "documentURL":"https://docs.webpagetest.org/",                      "responseCode":200,                      "request_type":"Other",                      "load_ms":174,                      "ttfb_ms":173,                      "load_start":2352,                      "load_start_float":2351.99,                      "bytesIn":1795,                      "objectSize":1795,                      "objectSizeUncompressed":1795,                      "chunks":[                         {                            "ts":2526.348,                            "bytes":1795                         }                      ],                      "expires":"",                      "cacheControl":"max-age=31536000",                      "contentType":"image/png",                      "contentEncoding":"",                      "socket":42,                      "protocol":"HTTP/2",                      "dns_start":-1,                      "dns_end":-1,                      "connect_start":-1,                      "connect_end":-1,                      "ssl_start":-1,                      "ssl_end":-1,                      "initiator":"",                      "initiator_line":"",                      "initiator_column":"",                      "initiator_type":"other",                      "priority":"MEDIUM",                      "initial_priority":"High",                      "server_rtt":null,                      "headers":{                         "request":[                            ":path: /img/icons-192.png",                            "sec-fetch-mode: no-cors",                            "accept-encoding: gzip, deflate, br",                            "accept-language: en-US,en;q=0.9",                            "user-agent: Mozilla/5.0 (Linux; Android 6.0.1; Moto G (4)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Mobile Safari/537.36 PTST/210419.211328",                            "accept: image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8",                            "referer: https://docs.webpagetest.org/",                            "sec-fetch-dest: image",                            ":authority: docs.webpagetest.org",                            "cookie: _ga=GA1.2.270986431.1619530559; _gid=GA1.2.1345304305.1619530559; _gat=1",                            ":scheme: https",                            "sec-fetch-site: same-origin",                            ":method: GET"                         ],                         "response":[                            "accept-ranges: bytes",                            "content-length: 1795",                            "content-type: image/png",                            "date: Mon, 26 Apr 2021 21:48:16 GMT",                            "strict-transport-security: max-age=31536000",                            "x-content-type-options: nosniff",                            "x-frame-options: SAMEORIGIN",                            "x-xss-protection: 1; mode=block",                            "etag: "0752f0ffa2c17aa2ace18fb3f418e989-ssl"",                            "age: 56863",                            "server: Netlify",                            "cache-control: max-age=31536000",                            "x-nf-request-id: c2eaf3a4-2a5a-4666-ab88-50a4385ecc91-7871679",                            ":status: 200"                         ]                      },                      "bytesOut":1852,                      "score_cache":100,                      "score_cdn":100,                      "score_gzip":-1,                      "score_cookies":-1,                      "score_keep-alive":100,                      "score_minify":-1,                      "score_combine":-1,                      "score_compress":100,                      "score_etags":-1,                      "dns_ms":-1,                      "connect_ms":-1,                      "ssl_ms":-1,                      "gzip_total":null,                      "gzip_save":null,                      "minify_total":null,                      "minify_save":null,                      "image_total":1795,                      "image_save":0,                      "cache_time":31479137,                      "cdn_provider":"Netlify",                      "server_count":null,                      "created":2352,                      "http2_stream_id":13,                      "http2_stream_dependency":0,                      "http2_stream_weight":220,                      "http2_stream_exclusive":1,                      "server_port":"443",                      "client_port":"35520",                      "load_end":2526,                      "ttfb_start":2352,                      "ttfb_end":2525,                      "download_start":2525,                      "download_end":2526,                      "download_ms":1,                      "all_start":2352,                      "all_end":2526,                      "all_ms":174,                      "index":9,                      "number":10                   },                   {                      "type":3,                      "id":"29564.16",                      "request_id":"29564.16",                      "ip_addr":"172.217.222.156",                      "full_url":"https://stats.g.doubleclick.net/j/collect?t=dc&aip=1&_r=3&v=1&_v=j90&tid=UA-3755571-1&cid=270986431.1619530559&jid=87199586&gjid=1851064854&_gid=1345304305.1619530559&_u=IEBAAEAAAAAAAC~&z=516932075",                      "is_secure":1,                      "method":"POST",                      "host":"stats.g.doubleclick.net",                      "url":"/j/collect?t=dc&aip=1&_r=3&v=1&_v=j90&tid=UA-3755571-1&cid=270986431.1619530559&jid=87199586&gjid=1851064854&_gid=1345304305.1619530559&_u=IEBAAEAAAAAAAC~&z=516932075",                      "raw_id":"29564.16",                      "frame_id":"E57BDA2151E08AC948685BFE69680D5E",                      "documentURL":"https://docs.webpagetest.org/",                      "responseCode":200,                      "request_type":"XHR",                      "load_ms":181,                      "ttfb_ms":181,                      "load_start":2557,                      "load_start_float":2556.541,                      "bytesIn":2,                      "objectSize":2,                      "objectSizeUncompressed":2,                      "chunks":[                         {                            "ts":2737.995,                            "bytes":2                         }                      ],                      "expires":"Fri, 01 Jan 1990 00:00:00 GMT",                      "cacheControl":"no-cache, no-store, must-revalidate",                      "contentType":"text/plain",                      "contentEncoding":"",                      "socket":105,                      "protocol":"HTTP/2",                      "dns_start":1999,                      "dns_end":2170,                      "connect_start":2170,                      "connect_end":2351,                      "ssl_start":2351,                      "ssl_end":2556,                      "securityDetails":{                         "protocol":"TLS 1.3",                         "keyExchange":"",                         "keyExchangeGroup":"X25519",                         "cipher":"AES_128_GCM",                         "certificateId":0,                         "subjectName":"*.g.doubleclick.net",                         "sanList":[                            "*.g.doubleclick.net",                            "*.googleadservices.com",                            "*.googlesyndication.com",                            "*.googletagservices.com",                            "*.invitemedia.com",                            "*.safeframe.googlesyndication.com",                            "g.doubleclick.net",                            "googleadservices.com",                            "googlesyndication.com",                            "googletagservices.com",                            "media.admob.com"                         ],                         "issuer":"GTS CA 1O1",                         "validFrom":1616487536,                         "validTo":1623745135,                         "signedCertificateTimestampList":[                            {                               "status":"Verified",                               "origin":"Embedded in certificate",                               "logDescription":"Google 'Xenon2021' log",                               "logId":"7D3EF2F88FFF88556824C2C0CA9E5289792BC50E78097F2E6A9768997E22F0D7",                               "timestamp":1616491137480,                               "hashAlgorithm":"SHA-256",                               "signatureAlgorithm":"ECDSA",                               "signatureData":"3045022100BB97D8C6C1DB564E61023174221BEC0A09C205FD2C3BCD45622EF8829F3188500220131E85A8FD6C9B1E7C6D40CF3D4F535839582643CBF8D12731CB95AA828D76C6"                            },                            {                               "status":"Verified",                               "origin":"Embedded in certificate",                               "logDescription":"DigiCert Yeti2021 Log",                               "logId":"5CDC4392FEE6AB4544B15E9AD456E61037FBD5FA47DCA17394B25EE6F6C70ECA",                               "timestamp":1616491137715,                               "hashAlgorithm":"SHA-256",                               "signatureAlgorithm":"ECDSA",                               "signatureData":"304402205DD9330FB7E94D1A42661AEA50838D51024856D0B411C2A8677D45A3D420F9C2022025FA85DD7C30C8D98357C5BF4B9353145B24E85EF0F85B0AA4B31A9A4478358F"                            }                         ],                         "certificateTransparencyCompliance":"compliant"                      },                      "initiator":"https://www.google-analytics.com/analytics.js",                      "initiator_line":38,                      "initiator_column":31,                      "initiator_type":"script",                      "initiator_function":"wd",                      "priority":"MEDIUM",                      "initial_priority":"High",                      "server_rtt":null,                      "headers":{                         "request":[                            ":method: POST",                            ":authority: stats.g.doubleclick.net",                            ":scheme: https",                            ":path: /j/collect?t=dc&aip=1&_r=3&v=1&_v=j90&tid=UA-3755571-1&cid=270986431.1619530559&jid=87199586&gjid=1851064854&_gid=1345304305.1619530559&_u=IEBAAEAAAAAAAC~&z=516932075",                            "content-length: 0",                            "user-agent: Mozilla/5.0 (Linux; Android 6.0.1; Moto G (4)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Mobile Safari/537.36 PTST/210419.211328",                            "content-type: text/plain",                            "accept: */*",                            "origin: https://docs.webpagetest.org",                            "sec-fetch-site: cross-site",                            "sec-fetch-mode: cors",                            "sec-fetch-dest: empty",                            "referer: https://docs.webpagetest.org/",                            "accept-encoding: gzip, deflate, br",                            "accept-language: en-US,en;q=0.9"                         ],                         "response":[                            "access-control-allow-origin: https://docs.webpagetest.org",                            "strict-transport-security: max-age=10886400; includeSubDomains; preload",                            "date: Tue, 27 Apr 2021 13:35:59 GMT",                            "pragma: no-cache",                            "expires: Fri, 01 Jan 1990 00:00:00 GMT",                            "cache-control: no-cache, no-store, must-revalidate",                            "last-modified: Sun, 17 May 1998 03:00:00 GMT",                            "access-control-allow-credentials: true",                            "x-content-type-options: nosniff",                            "content-type: text/plain",                            "cross-origin-resource-policy: cross-origin",                            "server: Golfe2",                            "content-length: 2",                            "alt-svc: h3-29=":443"; ma=2592000,h3-T051=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"",                            ":status: 200"                         ]                      },                      "bytesOut":2128,                      "score_cache":-1,                      "score_cdn":100,                      "score_gzip":-1,                      "score_cookies":-1,                      "score_keep-alive":100,                      "score_minify":-1,                      "score_combine":-1,                      "score_compress":-1,                      "score_etags":-1,                      "dns_ms":171,                      "connect_ms":181,                      "ssl_ms":205,                      "gzip_total":null,                      "gzip_save":null,                      "minify_total":null,                      "minify_save":null,                      "image_total":null,                      "image_save":null,                      "cache_time":null,                      "cdn_provider":"Google",                      "server_count":null,                      "created":1998,                      "http2_stream_id":1,                      "http2_stream_dependency":0,                      "http2_stream_weight":220,                      "http2_stream_exclusive":1,                      "http2_server_settings":{                         "SETTINGS_MAX_CONCURRENT_STREAMS":100,                         "SETTINGS_INITIAL_WINDOW_SIZE":1048576,                         "SETTINGS_MAX_HEADER_LIST_SIZE":16384                      },                      "tls_version":"TLS 1.3",                      "tls_resumed":"False",                      "tls_next_proto":"h2",                      "tls_cipher_suite":4865,                      "certificates":[                         "-----BEGIN CERTIFICATE-----nMIIFvjCCBKagAwIBAgIRAIwPUVZ8CHGsBQAAAACHqEAwDQYJKoZIhvcNAQELBQAwnQjELMAkGA1UEBhMCVVMxHjAcBgNVBAoTFUdvb2dsZSBUcnVzdCBTZXJ2aWNlczETnMBEGA1UEAxMKR1RTIENBIDFPMTAeFw0yMTAzMjMwODE4NTZaFw0yMTA2MTUwODE4nNTVaMG0xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHnEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgTExDMRwwGgYDVQQDDBMqnLmcuZG91YmxlY2xpY2submV0MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEpXbynPN6i2jXJWzfc8aDB0wehA7CvpEpE1rH7Z3Qr1TBgXg/gSt8HBxYa9dfZ1wRm0Nm+nItsO7+9FaJW4DStsiqOCA00wggNJMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKnBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBRHLQ+JepWJC0nTcn9Gnhvhf+7Re4TAfBgNVHSMEGDAWgBSY0fhuEOvPm+xgnxiQG6DrfQn9KzBoBggrBgEFnBQcBAQRcMFowKwYIKwYBBQUHMAGGH2h0dHA6Ly9vY3NwLnBraS5nb29nL2d0czFvnMWNvcmUwKwYIKwYBBQUHMAKGH2h0dHA6Ly9wa2kuZ29vZy9nc3IyL0dUUzFPMS5jncnQwggEJBgNVHREEggEAMIH9ghMqLmcuZG91YmxlY2xpY2submV0ghYqLmdvb2dsnZWFkc2VydmljZXMuY29tghcqLmdvb2dsZXN5bmRpY2F0aW9uLmNvbYIXKi5nb29nnbGV0YWdzZXJ2aWNlcy5jb22CESouaW52aXRlbWVkaWEuY29tgiEqLnNhZmVmcmFtnZS5nb29nbGVzeW5kaWNhdGlvbi5jb22CEWcuZG91YmxlY2xpY2submV0ghRnb29nnbGVhZHNlcnZpY2VzLmNvbYIVZ29vZ2xlc3luZGljYXRpb24uY29tghVnb29nbGV0nYWdzZXJ2aWNlcy5jb22CD21lZGlhLmFkbW9iLmNvbTAhBgNVHSAEGjAYMAgGBmeBnDAECAjAMBgorBgEEAdZ5AgUDMDMGA1UdHwQsMCowKKAmoCSGImh0dHA6Ly9jcmwuncGtpLmdvb2cvR1RTMU8xY29yZS5jcmwwggEDBgorBgEEAdZ5AgQCBIH0BIHxAO8AndgB9PvL4j/+IVWgkwsDKnlKJeSvFDngJfy5ql2iZfiLw1wAAAXheYUnIAAAEAwBHnMEUCIQC7l9jGwdtWTmECMXQiG+wKCcIF/Sw7zUViLviCnzGIUAIgEx6FqP1smx58nbUDPPU9TWDlYJkPL+NEnMcuVqoKNdsYAdQBc3EOS/uarRUSxXprUVuYQN/vV+kfcnoXOUsl7m9scOygAAAXheYUqzAAAEAwBGMEQCIF3ZMw+36U0aQmYa6lCDjVECSFbQntBHCqGd9RaPUIPnCAiAl+oXdfDDI2YNXxb9Lk1MUWyToXvD4WwqksxqaRHg1jzANnBgkqhkiG9w0BAQsFAAOCAQEAZwr3RNBXqyFjNoRsXUycma7NM5bXd/LtAaLxNh13n3LEeydAZqfvR2n2C/1UgPfX4Gxm3tRNGUlmMhShSqTA+kaeLUcnktWCy7lg2867nnchvXOcTt7pEgSOCQG05M/OCwtAiVbEeXz1BojJJDJvv4EZjz/o177agSUpaLK+AunFY0/ApK1ShfV+4Jv4pcD6VE6/0zj/nwuTd7j60f1LqwJfXrfOCoG2qBMMRtE5P8AnABf0XzBJiWf6BgG3B9hFjOj9G/EXAThcz/OfRrVmRR6eYdHzvxO/bZ0SZ+7Wiiccnb3pB9L9unpB9kOBRl4Fe1fqUC5MSChCZjLfaqkLHtNx3/Q==n-----END CERTIFICATE-----n",                         "-----BEGIN CERTIFICATE-----nMIIESjCCAzKgAwIBAgINAeO0mqGNiqmBJWlQuDANBgkqhkiG9w0BAQsFADBMMSAwnHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMjETMBEGA1UEChMKR2xvYmFsnU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjAeFw0xNzA2MTUwMDAwNDJaFw0yMTEynMTUwMDAwNDJaMEIxCzAJBgNVBAYTAlVTMR4wHAYDVQQKExVHb29nbGUgVHJ1c3QgnU2VydmljZXMxEzARBgNVBAMTCkdUUyBDQSAxTzEwggEiMA0GCSqGSIb3DQEBAQUAnA4IBDwAwggEKAoIBAQDQGM9F1IvN05zkQO9+tN1pIRvJzzyOTHW5DzEZhD2ePCnvnUA0Qk28FgICfKqC9EksC4T2fWBYk/jCfC3R3VZMdS/dN4ZKCEPZRrAzDsiKUDzRrnmBBJ5wudgzndIMYcLe/RGGFl5yODIKgjEv/SJH/UL+dEaltN11BmsK+eQmMF++AcnxGNhr59qM/9il71I2dN8FGfcddwuaej4bXhp0LcQBbjxMcI7JP0aM3T4I+DsaxmKnFsbjzaTNC9uzpFlgOIg7rR25xoynUxv8vNmkq7zdPGHXkxWY7oG9j+JkRyBABk7XnrJfoucBZEqFJJSPk7XA0LKW0Y3z5oz2D0c1tJKwHAgMBAAGjggEzMIIBLzAOBgNVnHQ8BAf8EBAMCAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBIGA1UdnEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFJjR+G4Q68+b7GCfGJAboOt9Cf0rMB8GnA1UdIwQYMBaAFJviB1dnHB7AagbeWbSaLd/cGYYuMDUGCCsGAQUFBwEBBCkwJzAlnBggrBgEFBQcwAYYZaHR0cDovL29jc3AucGtpLmdvb2cvZ3NyMjAyBgNVHR8EKzApnMCegJaAjhiFodHRwOi8vY3JsLnBraS5nb29nL2dzcjIvZ3NyMi5jcmwwPwYDVR0gnBDgwNjA0BgZngQwBAgIwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly9wa2kuZ29vZy9ynZXBvc2l0b3J5LzANBgkqhkiG9w0BAQsFAAOCAQEAGoA+Nnn78y6pRjd9XlQWNa7HnTgiZ/r3RNGkmUmYHPQq6Scti9PEajvwRT2iWTHQr02fesqOqBY2ETUwgZQ+lltoNnFvhsO9tvBCOIazpswWC9aJ9xju4tWDQH8NVU6YZZ/XteDSGU9YzJqPjY8q3MDxrznmqepBCf5o8mw/wJ4a2G6xzUr6Fb6T8McDO22PLRL6u3M4Tzs3A2M1j6bykJYi8wWnIRdAvKLWZu/axBVbzYmqmwkm5zLSDW5nIAJbELCQCZwMH56t2Dvqofxs6BBcCFIZnUSpxu6x6td0V7SvJCCosirSmIatj/9dSSVDQibet8q/7UK4v4ZUN80atnZz1yg==n-----END CERTIFICATE-----n"                      ],                      "server_port":"443",                      "client_port":"33112",                      "load_end":2738,                      "ttfb_start":2557,                      "ttfb_end":2738,                      "download_start":2738,                      "download_end":2738,                      "download_ms":0,                      "all_start":1999,                      "all_end":2738,                      "all_ms":738,                      "index":10,                      "number":11                   },                   {                      "type":3,                      "id":"29564.18",                      "request_id":"29564.18",                      "ip_addr":"142.251.33.196",                      "full_url":"https://www.google.com/ads/ga-audiences?t=sr&aip=1&_r=4&slf_rd=1&v=1&_v=j90&tid=UA-3755571-1&cid=270986431.1619530559&jid=87199586&_u=IEBAAEAAAAAAAC~&z=306143173",                      "is_secure":1,                      "method":"GET",                      "host":"www.google.com",                      "url":"/ads/ga-audiences?t=sr&aip=1&_r=4&slf_rd=1&v=1&_v=j90&tid=UA-3755571-1&cid=270986431.1619530559&jid=87199586&_u=IEBAAEAAAAAAAC~&z=306143173",                      "raw_id":"29564.18",                      "frame_id":"E57BDA2151E08AC948685BFE69680D5E",                      "documentURL":"https://docs.webpagetest.org/",                      "responseCode":200,                      "request_type":"Image",                      "load_ms":185,                      "ttfb_ms":185,                      "load_start":3268,                      "load_start_float":3268.396,                      "bytesIn":42,                      "objectSize":42,                      "objectSizeUncompressed":42,                      "chunks":[                         {                            "ts":3453.482,                            "bytes":42                         }                      ],                      "expires":"Fri, 01 Jan 1990 00:00:00 GMT",                      "cacheControl":"no-cache, no-store, must-revalidate",                      "contentType":"image/gif",                      "contentEncoding":"",                      "socket":124,                      "protocol":"HTTP/2",                      "dns_start":2744,                      "dns_end":2915,                      "connect_start":2915,                      "connect_end":3087,                      "ssl_start":3087,                      "ssl_end":3268,                      "securityDetails":{                         "protocol":"TLS 1.3",                         "keyExchange":"",                         "keyExchangeGroup":"X25519",                         "cipher":"AES_128_GCM",                         "certificateId":0,                         "subjectName":"www.google.com",                         "sanList":[                            "www.google.com"                         ],                         "issuer":"GTS CA 1O1",                         "validFrom":1616487980,                         "validTo":1623745579,                         "signedCertificateTimestampList":[                            {                               "status":"Verified",                               "origin":"Embedded in certificate",                               "logDescription":"Google 'Xenon2021' log",                               "logId":"7D3EF2F88FFF88556824C2C0CA9E5289792BC50E78097F2E6A9768997E22F0D7",                               "timestamp":1616491580612,                               "hashAlgorithm":"SHA-256",                               "signatureAlgorithm":"ECDSA",                               "signatureData":"304402204A03A1034AC1281F5440920B5166C1AFC6924ABFB52798CC1ABDC6C283B505570220654E07CC18B72BE7C6D4D0570E455667E1FF037D7395B6CB85F75BDF9DE5C4E1"                            },                            {                               "status":"Verified",                               "origin":"Embedded in certificate",                               "logDescription":"DigiCert Nessie2021 Log",                               "logId":"EEC095EE8D72640F92E3C3B91BC712A3696A097B4B6A1A1438E647B2CBEDC5F9",                               "timestamp":1616491580576,                               "hashAlgorithm":"SHA-256",                               "signatureAlgorithm":"ECDSA",                               "signatureData":"3045022100C254FCFB1D63BAADC34F2EA72A7A24FE7C770ECC34280E3BC0FCACDE9F794521022009A099E7DF34BCB26F0C70408BFA5E18BF836A99BCEFFE82B35E028C467E2871"                            }                         ],                         "certificateTransparencyCompliance":"compliant"                      },                      "initiator":"",                      "initiator_line":"",                      "initiator_column":"",                      "initiator_type":"other",                      "priority":"LOWEST",                      "initial_priority":"Low",                      "server_rtt":null,                      "headers":{                         "request":[                            ":method: GET",                            ":authority: www.google.com",                            ":scheme: https",                            ":path: /ads/ga-audiences?t=sr&aip=1&_r=4&slf_rd=1&v=1&_v=j90&tid=UA-3755571-1&cid=270986431.1619530559&jid=87199586&_u=IEBAAEAAAAAAAC~&z=306143173",                            "user-agent: Mozilla/5.0 (Linux; Android 6.0.1; Moto G (4)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Mobile Safari/537.36 PTST/210419.211328",                            "accept: image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8",                            "sec-fetch-site: cross-site",                            "sec-fetch-mode: no-cors",                            "sec-fetch-dest: image",                            "referer: https://docs.webpagetest.org/",                            "accept-encoding: gzip, deflate, br",                            "accept-language: en-US,en;q=0.9"                         ],                         "response":[                            "p3p: policyref="https://www.googleadservices.com/pagead/p3p.xml", CP="NOI DEV PSA PSD IVA IVD OTP OUR OTR IND OTC"",                            "timing-allow-origin: *",                            "cross-origin-resource-policy: cross-origin",                            "date: Tue, 27 Apr 2021 13:36:00 GMT",                            "pragma: no-cache",                            "expires: Fri, 01 Jan 1990 00:00:00 GMT",                            "cache-control: no-cache, no-store, must-revalidate",                            "content-type: image/gif",                            "x-content-type-options: nosniff",                            "server: cafe",                            "content-length: 42",                            "x-xss-protection: 0",                            "alt-svc: h3-29=":443"; ma=2592000,h3-T051=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"",                            ":status: 200"                         ]                      },                      "bytesOut":1942,                      "score_cache":-1,                      "score_cdn":100,                      "score_gzip":-1,                      "score_cookies":-1,                      "score_keep-alive":100,                      "score_minify":-1,                      "score_combine":-1,                      "score_compress":100,                      "score_etags":-1,                      "dns_ms":171,                      "connect_ms":172,                      "ssl_ms":181,                      "gzip_total":null,                      "gzip_save":null,                      "minify_total":null,                      "minify_save":null,                      "image_total":42,                      "image_save":0,                      "cache_time":null,                      "cdn_provider":"Google",                      "server_count":null,                      "created":2744,                      "http2_stream_id":1,                      "http2_stream_dependency":0,                      "http2_stream_weight":147,                      "http2_stream_exclusive":1,                      "http2_server_settings":{                         "SETTINGS_MAX_CONCURRENT_STREAMS":100,                         "SETTINGS_INITIAL_WINDOW_SIZE":1048576,                         "SETTINGS_MAX_HEADER_LIST_SIZE":16384                      },                      "tls_version":"TLS 1.3",                      "tls_resumed":"False",                      "tls_next_proto":"h2",                      "tls_cipher_suite":4865,                      "certificates":[                         "-----BEGIN CERTIFICATE-----nMIIExjCCA66gAwIBAgIQa13x2f6+IywDAAAAAMvXYTANBgkqhkiG9w0BAQsFADBCnMQswCQYDVQQGEwJVUzEeMBwGA1UEChMVR29vZ2xlIFRydXN0IFNlcnZpY2VzMRMwnEQYDVQQDEwpHVFMgQ0EgMU8xMB4XDTIxMDMyMzA4MjYyMFoXDTIxMDYxNTA4MjYxnOVowaDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTnDU1vdW50YWluIFZpZXcxEzARBgNVBAoTCkdvb2dsZSBMTEMxFzAVBgNVBAMTDnd3ndy5nb29nbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEbJIJGlXFCfwQnJbKwjNKQwqnEEO91yeWrqVco0QtV+7b+A9IFok27cZKP8mrROFYk0WNhTsxDzmXqnps2hvy3e4KOCAlswggJXMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFnBQcDATAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBS1qBpEkF70GL3HND6tafVS4fvOnLDAfBgNVHSMEGDAWgBSY0fhuEOvPm+xgnxiQG6DrfQn9KzBoBggrBgEFBQcBAQRcnMFowKwYIKwYBBQUHMAGGH2h0dHA6Ly9vY3NwLnBraS5nb29nL2d0czFvMWNvcmUwnKwYIKwYBBQUHMAKGH2h0dHA6Ly9wa2kuZ29vZy9nc3IyL0dUUzFPMS5jcnQwGQYDnVR0RBBIwEIIOd3d3Lmdvb2dsZS5jb20wIQYDVR0gBBowGDAIBgZngQwBAgIwDAYKnKwYBBAHWeQIFAzAzBgNVHR8ELDAqMCigJqAkhiJodHRwOi8vY3JsLnBraS5nb29nnL0dUUzFPMWNvcmUuY3JsMIIBAwYKKwYBBAHWeQIEAgSB9ASB8QDvAHUAfT7y+I//niFVoJMLAyp5SiXkrxQ54CX8uapdomX4i8NcAAAF4XmgMxAAABAMARjBEAiBKA6EDnSsEoH1RAkgtRZsGvxpJKv7UnmMwavcbCg7UFVwIgZU4HzBi3K+fG1NBXDkVWZ+H/nA31zlbbLhfdb353lxOEAdgDuwJXujXJkD5Ljw7kbxxKjaWoJe0tqGhQ45keyy+3Fn+QAAAXheaAygAAAEAwBHMEUCIQDCVPz7HWO6rcNPLqcqeiT+fHcOzDQoDjvA/Kzenn3lFIQIgCaCZ5980vLJvDHBAi/peGL+Dapm87/6Cs14CjEZ+KHEwDQYJKoZIhvcNnAQELBQADggEBAGL48QFKdM8Yju3Dku//dXKiFNxofbrj3PRJBd6RIi5sBrnTMpYrn5wzC75Yto5EBKyqQYQuY/ZEO3m+h75tpPc/d3KIPyYa9R+ZrESWInMSKCjx67jWRngBDC1lndo/aXok5cEv6SEsDPZL/LW2aqJXqS23qV7hpCzqOV1h9GTvO35YNA/FCBnPx25ENo7tPy8vTCMeo0nDgqTAf68vp2GkCFQs72rFNVocLNWNS173O0p6uRUGFBvngVK5rNx5zswjRJ7NDqoVynYNECnigjVwM4LkEQr2/HOqwO0uPM4ZGgQl9TnfoOthnaEJyyKT/Nfb7XsAjRqLv1zBeZjwzpOEx8Hg=n-----END CERTIFICATE-----n",                         "-----BEGIN CERTIFICATE-----nMIIESjCCAzKgAwIBAgINAeO0mqGNiqmBJWlQuDANBgkqhkiG9w0BAQsFADBMMSAwnHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMjETMBEGA1UEChMKR2xvYmFsnU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjAeFw0xNzA2MTUwMDAwNDJaFw0yMTEynMTUwMDAwNDJaMEIxCzAJBgNVBAYTAlVTMR4wHAYDVQQKExVHb29nbGUgVHJ1c3QgnU2VydmljZXMxEzARBgNVBAMTCkdUUyBDQSAxTzEwggEiMA0GCSqGSIb3DQEBAQUAnA4IBDwAwggEKAoIBAQDQGM9F1IvN05zkQO9+tN1pIRvJzzyOTHW5DzEZhD2ePCnvnUA0Qk28FgICfKqC9EksC4T2fWBYk/jCfC3R3VZMdS/dN4ZKCEPZRrAzDsiKUDzRrnmBBJ5wudgzndIMYcLe/RGGFl5yODIKgjEv/SJH/UL+dEaltN11BmsK+eQmMF++AcnxGNhr59qM/9il71I2dN8FGfcddwuaej4bXhp0LcQBbjxMcI7JP0aM3T4I+DsaxmKnFsbjzaTNC9uzpFlgOIg7rR25xoynUxv8vNmkq7zdPGHXkxWY7oG9j+JkRyBABk7XnrJfoucBZEqFJJSPk7XA0LKW0Y3z5oz2D0c1tJKwHAgMBAAGjggEzMIIBLzAOBgNVnHQ8BAf8EBAMCAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBIGA1UdnEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFJjR+G4Q68+b7GCfGJAboOt9Cf0rMB8GnA1UdIwQYMBaAFJviB1dnHB7AagbeWbSaLd/cGYYuMDUGCCsGAQUFBwEBBCkwJzAlnBggrBgEFBQcwAYYZaHR0cDovL29jc3AucGtpLmdvb2cvZ3NyMjAyBgNVHR8EKzApnMCegJaAjhiFodHRwOi8vY3JsLnBraS5nb29nL2dzcjIvZ3NyMi5jcmwwPwYDVR0gnBDgwNjA0BgZngQwBAgIwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly9wa2kuZ29vZy9ynZXBvc2l0b3J5LzANBgkqhkiG9w0BAQsFAAOCAQEAGoA+Nnn78y6pRjd9XlQWNa7HnTgiZ/r3RNGkmUmYHPQq6Scti9PEajvwRT2iWTHQr02fesqOqBY2ETUwgZQ+lltoNnFvhsO9tvBCOIazpswWC9aJ9xju4tWDQH8NVU6YZZ/XteDSGU9YzJqPjY8q3MDxrznmqepBCf5o8mw/wJ4a2G6xzUr6Fb6T8McDO22PLRL6u3M4Tzs3A2M1j6bykJYi8wWnIRdAvKLWZu/axBVbzYmqmwkm5zLSDW5nIAJbELCQCZwMH56t2Dvqofxs6BBcCFIZnUSpxu6x6td0V7SvJCCosirSmIatj/9dSSVDQibet8q/7UK4v4ZUN80atnZz1yg==n-----END CERTIFICATE-----n"                      ],                      "server_port":"443",                      "client_port":"38508",                      "load_end":3453,                      "ttfb_start":3268,                      "ttfb_end":3453,                      "download_start":3453,                      "download_end":3453,                      "download_ms":0,                      "all_start":2744,                      "all_end":3453,                      "all_ms":709,                      "index":11,                      "number":12                   }                ],                "requestsFull":12,                "requestsDoc":6,                "responses_200":12,                "responses_404":0,                "responses_other":0,                "result":0,                "testStartOffset":0,                "cached":0,                "optimization_checked":1,                "start_epoch":0,                "main_frame":"E57BDA2151E08AC948685BFE69680D5E",                "loadEventStart":1805,                "loadEventEnd":1805,                "domContentLoadedEventStart":876,                "domContentLoadedEventEnd":876,                "URL":"https://docs.webpagetest.org/",                "connections":5,                "final_base_page_request":0,                "final_base_page_request_id":"8F26376CBD35F32E850C9DBEC39882D4",                "final_url":"https://docs.webpagetest.org/",                "firstPaint":865.0500000076,                "firstContentfulPaint":865,                "firstMeaningfulPaint":865,                "domInteractive":875,                "firstImagePaint":995,                "TTFB":730,                "basePageSSLTime":203,                "score_cache":94,                "score_cdn":100,                "score_gzip":100,                "score_cookies":-1,                "score_keep-alive":100,                "score_minify":-1,                "score_combine":-1,                "score_compress":100,                "score_etags":-1,                "score_progressive_jpeg":-1,                "gzip_total":28624,                "gzip_savings":0,                "minify_total":-1,                "minify_savings":-1,                "image_total":67481,                "image_savings":0,                "base_page_cdn":"Netlify",                "cpuTimes":{                   "UpdateLayerTree":11,                   "EventDispatch":1,                   "CommitLoad":0,                   "EvaluateScript":46,                   "v8.compile":4,                   "ParseHTML":37,                   "UpdateLayoutTree":5,                   "Layout":30,                   "ResourceChangePriority":0,                   "Paint":3,                   "largestContentfulPaint::Candidate":0,                   "MarkDOMContent":0,                   "FunctionCall":5,                   "HitTest":0,                   "MarkLoad":0,                   "XHRReadyStateChange":2,                   "XHRLoad":0,                   "Idle":3309                },                "cpuTimesDoc":{                   "UpdateLayerTree":11,                   "EventDispatch":1,                   "CommitLoad":0,                   "EvaluateScript":46,                   "v8.compile":4,                   "ParseHTML":37,                   "UpdateLayoutTree":5,                   "Layout":30,                   "ResourceChangePriority":0,                   "Paint":3,                   "largestContentfulPaint::Candidate":0,                   "MarkDOMContent":0,                   "FunctionCall":4,                   "HitTest":0,                   "MarkLoad":0,                   "XHRReadyStateChange":0,                   "XHRLoad":0,                   "Idle":1664                },                "cpu.UpdateLayerTree":11,                "cpu.EventDispatch":1,                "cpu.CommitLoad":0,                "cpu.EvaluateScript":46,                "cpu.v8.compile":4,                "cpu.ParseHTML":37,                "cpu.UpdateLayoutTree":5,                "cpu.Layout":30,                "cpu.ResourceChangePriority":0,                "cpu.Paint":3,                "cpu.largestContentfulPaint::Candidate":0,                "cpu.MarkDOMContent":0,                "cpu.FunctionCall":5,                "cpu.HitTest":0,                "cpu.MarkLoad":0,                "cpu.XHRReadyStateChange":2,                "cpu.XHRLoad":0,                "cpu.Idle":3309,                "v8Stats":{                   "main_thread":[                                         ],                   "background":[                                         ]                },                "osVersion":"Linux 5.4.0-1045-aws",                "os_version":"Linux 5.4.0-1045-aws",                "osPlatform":"x86_64 x86_64",                "date":1619530556.95751,                "browserVersion":"90.0.4430.85",                "browser_version":"90.0.4430.85",                "throttle_cpu_requested":3.5,                "throttle_cpu":2.7715020391,                "fullyLoadedCPUms":6859,                "fullyLoadedCPUpct":57.6955424727,                "document_URL":"https://docs.webpagetest.org/",                "document_hostname":"docs.webpagetest.org",                "document_origin":"https://docs.webpagetest.org",                "viewport":{                   "width":360,                   "height":512,                   "dpr":3                },                "domElements":103,                "domComplete":1805,                "PerformancePaintTiming.first-paint":865.0500000076,                "PerformancePaintTiming.first-contentful-paint":865.0500000076,                "detected":{                   "PaaS":"Netlify",                   "CDN":"Netlify",                   "Analytics":"Google Analytics"                },                "detected_apps":{                   "Netlify":"",                   "Google Analytics":""                },                "base_page_ip_ptr":"ec2-52-203-36-44.compute-1.amazonaws.com",                "base_page_cname":"",                "base_page_dns_server":"dns1.p06.nsone.net",                "browser_name":"Chrome",                "eventName":"Step_1",                "test_run_time_ms":8968,                "custom":[                   "Colordepth",                   "Dpi",                   "Images",                   "Resolution",                   "jsLibsVulns",                   "securityHeaders"                ],                "Colordepth":24,                "Dpi":"{"dppx":3,"dpcm":113.38582677165354,"dpi":288}",                "Images":"[{"url":"https://docs.webpagetest.org/img/wpt-logo.svg","width":288,"height":60,"naturalWidth":150,"naturalHeight":31},{"url":"https://docs.webpagetest.org/img/wpt-teaser.png","width":262,"height":192,"naturalWidth":1047,"naturalHeight":767},{"url":"https://docs.webpagetest.org/img/scripting-teaser.png","width":328,"height":140,"naturalWidth":1416,"naturalHeight":604},{"url":"https://docs.webpagetest.org/img/custom-metrics-teaser.png","width":328,"height":140,"naturalWidth":708,"naturalHeight":302}]",                "Resolution":"{"absolute":{"height":512,"width":360},"available":{"height":512,"width":360}}",                "jsLibsVulns":[                                   ],                "securityHeaders":{                   "securityHeadersList":[                      "strict-transport-security",                      "x-content-type-options",                      "x-frame-options",                      "x-xss-protection"                   ],                   "securityHeadersGrade":"A",                   "securityHeadersScore":85                },                "interactivePeriods":[                   [                      0,                      3458                   ]                ],                "longTasks":[                                   ],                "lastVisualChange":1000,                "visualComplete":1000,                "render":900,                "SpeedIndex":902,                "visualComplete85":900,                "visualComplete90":900,                "visualComplete95":900,                "visualComplete99":1000,                "largestPaints":[                   {                      "event":"LargestTextPaint",                      "time":865,                      "size":29870,                      "DOMNodeId":6,                      "nodeInfo":{                         "nodeType":"H1",                         "attributes":{                            "id":"welcome-to-webpagetest"                         },                         "bounds":[                            16,                            252.71875,                            328,                            106                         ],                         "styles":{                            "background-image":"none"                         }                      }                   },                   {                      "event":"LargestContentfulPaint",                      "time":865,                      "size":29870,                      "element":{                         "translate":true,                         "hidden":false,                         "draggable":false,                         "spellcheck":true,                         "contentEditable":"inherit",                         "isContentEditable":false,                         "offsetTop":253,                         "offsetLeft":16,                         "offsetWidth":328,                         "offsetHeight":106,                         "autofocus":false,                         "tabIndex":-1,                         "localName":"h1",                         "tagName":"H1",                         "id":"welcome-to-webpagetest",                         "outerHTML":"<h1 id="welcome-to-webpagetest">Welcome to WebPageTest</h1>",                         "scrollTop":0,                         "scrollLeft":0,                         "scrollWidth":328,                         "scrollHeight":106,                         "clientTop":0,                         "clientLeft":0,                         "clientWidth":328,                         "clientHeight":106,                         "childElementCount":0,                         "nodeType":1,                         "nodeName":"H1",                         "isConnected":true,                         "boundingRect":{                            "x":16,                            "y":252.71875,                            "width":328,                            "height":106,                            "top":252.71875,                            "right":344,                            "bottom":358.71875,                            "left":16                         }                      },                      "type":"text"                   },                   {                      "event":"LargestImagePaint",                      "time":994,                      "size":17280,                      "DOMNodeId":12,                      "nodeInfo":{                         "nodeType":"IMG",                         "attributes":{                            "src":"/img/wpt-logo.svg",                            "alt":"WebPageTest, by Catchpoint",                            "width":"150",                            "height":"31"                         },                         "sourceURL":"https://docs.webpagetest.org/img/wpt-logo.svg",                         "bounds":[                            36,                            24,                            288,                            59.515625                         ],                         "styles":{                            "background-image":"none"                         }                      }                   }                ],                "LargestContentfulPaintType":"text",                "LargestContentfulPaintNodeType":"H1",                "chromeUserTiming":[                   {                      "name":"navigationStart",                      "time":0                   },                   {                      "name":"fetchStart",                      "time":2                   },                   {                      "name":"responseEnd",                      "time":735                   },                   {                      "name":"unloadEventStart",                      "time":737                   },                   {                      "name":"unloadEventEnd",                      "time":737                   },                   {                      "name":"commitNavigationEnd",                      "time":739                   },                   {                      "name":"domLoading",                      "time":740                   },                   {                      "name":"firstMeaningfulPaint",                      "time":865                   },                   {                      "name":"firstMeaningfulPaint",                      "time":865                   },                   {                      "name":"firstMeaningfulPaintCandidate",                      "time":865                   },                   {                      "name":"firstContentfulPaint",                      "time":865                   },                   {                      "name":"firstPaint",                      "time":865                   },                   {                      "name":"domInteractive",                      "time":874                   },                   {                      "name":"domContentLoadedEventStart",                      "time":875                   },                   {                      "name":"domContentLoadedEventEnd",                      "time":875                   },                   {                      "name":"firstImagePaint",                      "time":994                   },                   {                      "name":"domComplete",                      "time":1804                   },                   {                      "name":"loadEventStart",                      "time":1804                   },                   {                      "name":"loadEventEnd",                      "time":1804                   },                   {                      "name":"LargestTextPaint",                      "time":865                   },                   {                      "name":"LargestContentfulPaint",                      "time":865                   },                   {                      "name":"LargestImagePaint",                      "time":994                   },                   {                      "name":"TotalLayoutShift",                      "value":0                   },                   {                      "name":"CumulativeLayoutShift",                      "value":0                   }                ],                "chromeUserTiming.navigationStart":0,                "chromeUserTiming.fetchStart":2,                "chromeUserTiming.responseEnd":735,                "chromeUserTiming.unloadEventStart":737,                "chromeUserTiming.unloadEventEnd":737,                "chromeUserTiming.commitNavigationEnd":739,                "chromeUserTiming.domLoading":740,                "chromeUserTiming.firstMeaningfulPaint":865,                "chromeUserTiming.firstMeaningfulPaintCandidate":865,                "chromeUserTiming.firstContentfulPaint":865,                "chromeUserTiming.firstPaint":865,                "chromeUserTiming.domInteractive":874,                "chromeUserTiming.domContentLoadedEventStart":875,                "chromeUserTiming.domContentLoadedEventEnd":875,                "chromeUserTiming.firstImagePaint":994,                "chromeUserTiming.domComplete":1804,                "chromeUserTiming.loadEventStart":1804,                "chromeUserTiming.loadEventEnd":1804,                "chromeUserTiming.LargestTextPaint":865,                "chromeUserTiming.LargestContentfulPaint":865,                "chromeUserTiming.LargestImagePaint":994,                "chromeUserTiming.TotalLayoutShift":0,                "chromeUserTiming.CumulativeLayoutShift":0,                "blinkFeatureFirstUsed":{                   "Features":{                      "77":{                         "name":"XMLDocument",                         "firstUsed":984.751                      },                      "138":{                         "name":"SVGSVGElement",                         "firstUsed":984.753                      },                      "213":{                         "name":"HTMLElementInnerText",                         "firstUsed":883.966                      },                      "214":{                         "name":"HTMLElementOuterText",                         "firstUsed":883.978                      },                      "250":{                         "name":"SVGSVGElementInDocument",                         "firstUsed":984.755                      },                      "329":{                         "name":"SVGSVGElementInXMLDocument",                         "firstUsed":984.757                      },                      "469":{                         "name":"CSSSelectorPseudoHost",                         "firstUsed":820.558                      },                      "480":{                         "name":"DetailsElement",                         "firstUsed":820.477                      },                      "587":{                         "name":"LangAttribute",                         "firstUsed":829.242                      },                      "588":{                         "name":"LangAttributeOnHTML",                         "firstUsed":829.251                      },                      "593":{                         "name":"SetReferrerPolicy",                         "firstUsed":749.312                      },                      "662":{                         "name":"MixedContentInSecureFrameThatDoesNotRestrictMixedContent",                         "firstUsed":784.596                      },                      "677":{                         "name":"XMLHttpRequestAsynchronous",                         "firstUsed":1803.312                      },                      "710":{                         "name":"CryptoGetRandomValues",                         "firstUsed":1802.394                      },                      "973":{                         "name":"CSSAtRuleMedia",                         "firstUsed":803.942                      },                      "1069":{                         "name":"CrossOriginTextScript",                         "firstUsed":1762.454                      },                      "1075":{                         "name":"V8SloppyMode",                         "firstUsed":749.719                      },                      "1307":{                         "name":"V8Node_IsConnected_AttributeGetter",                         "firstUsed":885.319                      },                      "1368":{                         "name":"IntersectionObserver_Constructor",                         "firstUsed":867.46                      },                      "1441":{                         "name":"SecureContextCheckPassed",                         "firstUsed":749.322                      },                      "1442":{                         "name":"SecureContextCheckFailed",                         "firstUsed":984.761                      },                      "1483":{                         "name":"StarInTimingAllowOrigin",                         "firstUsed":3456.93                      },                      "1542":{                         "name":"PendingStylesheetAddedAfterBodyStarted",                         "firstUsed":820.539                      },                      "1898":{                         "name":"HTMLSlotElement",                         "firstUsed":820.508                      },                      "1910":{                         "name":"CrossOriginMainFrameNulledNameAccessed",                         "firstUsed":749.497                      },                      "2188":{                         "name":"PerformanceObserverForWindow",                         "firstUsed":749.917                      },                      "2190":{                         "name":"PaintTimingObserved",                         "firstUsed":881.455                      },                      "2191":{                         "name":"PaintTimingRequested",                         "firstUsed":750.925                      },                      "2194":{                         "name":"CookieSet",                         "firstUsed":1789.36                      },                      "2195":{                         "name":"CookieGet",                         "firstUsed":1769.26                      },                      "2203":{                         "name":"HasIDClassTagAttribute",                         "firstUsed":803.459                      },                      "2204":{                         "name":"HasBeforeOrAfterPseudoElement",                         "firstUsed":805.535                      },                      "2219":{                         "name":"V8Element_GetBoundingClientRect_Method",                         "firstUsed":885.706                      },                      "2334":{                         "name":"CSSTypedOMStylePropertyMap",                         "firstUsed":884.789                      },                      "2349":{                         "name":"V8HTMLElement_Autocapitalize_AttributeGetter",                         "firstUsed":883.287                      },                      "2657":{                         "name":"NavigatorLanguage",                         "firstUsed":1768.638                      },                      "2662":{                         "name":"NavigatorPlugins",                         "firstUsed":1768.527                      },                      "2663":{                         "name":"NavigatorUserAgent",                         "firstUsed":1785.235                      },                      "2701":{                         "name":"V8Screen_ColorDepth_AttributeGetter",                         "firstUsed":1768.494                      },                      "2702":{                         "name":"V8Screen_Height_AttributeGetter",                         "firstUsed":1768.487                      },                      "2704":{                         "name":"V8Screen_Width_AttributeGetter",                         "firstUsed":1768.473                      },                      "2707":{                         "name":"V8Window_MatchMedia_Method",                         "firstUsed":867.337                      },                      "2719":{                         "name":"HistoryLength",                         "firstUsed":1785.866                      },                      "2728":{                         "name":"ElementTimingExplicitlyRequested",                         "firstUsed":750.931                      },                      "2782":{                         "name":"LayoutJankExplicitlyRequested",                         "firstUsed":750.918                      },                      "2927":{                         "name":"LargestContentfulPaintExplicitlyRequested",                         "firstUsed":749.956                      },                      "3004":{                         "name":"PerformanceObserverBufferedFlag",                         "firstUsed":750.898                      },                      "3066":{                         "name":"HasMarkerPseudoElement",                         "firstUsed":805.469                      },                      "3217":{                         "name":"LegacyLayoutBySVG",                         "firstUsed":984.764                      },                      "3481":{                         "name":"V8Navigator_JavaEnabled_Method",                         "firstUsed":1768.632                      }                   },                   "CSSFeatures":{                      "2":{                         "name":"CSSPropertyColor",                         "firstUsed":803.468                      },                      "4":{                         "name":"CSSPropertyDisplay",                         "firstUsed":803.968                      },                      "5":{                         "name":"CSSPropertyFont",                         "firstUsed":803.483                      },                      "6":{                         "name":"CSSPropertyFontFamily",                         "firstUsed":806.715                      },                      "7":{                         "name":"CSSPropertyFontSize",                         "firstUsed":804.46                      },                      "8":{                         "name":"CSSPropertyFontStyle",                         "firstUsed":807.369                      },                      "10":{                         "name":"CSSPropertyFontWeight",                         "firstUsed":804.961                      },                      "20":{                         "name":"CSSPropertyLineHeight",                         "firstUsed":804.465                      },                      "21":{                         "name":"CSSPropertyBackground",                         "firstUsed":804.786                      },                      "24":{                         "name":"CSSPropertyBackgroundColor",                         "firstUsed":806.706                      },                      "34":{                         "name":"CSSPropertyBorder",                         "firstUsed":804.753                      },                      "35":{                         "name":"CSSPropertyBorderBottom",                         "firstUsed":804.946                      },                      "41":{                         "name":"CSSPropertyBorderCollapse",                         "firstUsed":806.253                      },                      "42":{                         "name":"CSSPropertyBorderColor",                         "firstUsed":805.549                      },                      "49":{                         "name":"CSSPropertyBorderLeft",                         "firstUsed":805.393                      },                      "53":{                         "name":"CSSPropertyBorderRadius",                         "firstUsed":804.25                      },                      "54":{                         "name":"CSSPropertyBorderRight",                         "firstUsed":804.232                      },                      "59":{                         "name":"CSSPropertyBorderStyle",                         "firstUsed":805.545                      },                      "60":{                         "name":"CSSPropertyBorderTop",                         "firstUsed":806.059                      },                      "62":{                         "name":"CSSPropertyBorderTopLeftRadius",                         "firstUsed":806.264                      },                      "63":{                         "name":"CSSPropertyBorderTopRightRadius",                         "firstUsed":806.271                      },                      "66":{                         "name":"CSSPropertyBorderWidth",                         "firstUsed":805.462                      },                      "72":{                         "name":"CSSPropertyClip",                         "firstUsed":804.759                      },                      "74":{                         "name":"CSSPropertyContent",                         "firstUsed":805.54                      },                      "75":{                         "name":"CSSPropertyCounterIncrement",                         "firstUsed":820.577                      },                      "77":{                         "name":"CSSPropertyCursor",                         "firstUsed":807.586                      },                      "81":{                         "name":"CSSPropertyHeight",                         "firstUsed":804.505                      },                      "85":{                         "name":"CSSPropertyListStyle",                         "firstUsed":805.454                      },                      "88":{                         "name":"CSSPropertyListStyleType",                         "firstUsed":805.385                      },                      "89":{                         "name":"CSSPropertyMargin",                         "firstUsed":803.933                      },                      "90":{                         "name":"CSSPropertyMarginBottom",                         "firstUsed":804.255                      },                      "91":{                         "name":"CSSPropertyMarginLeft",                         "firstUsed":805.434                      },                      "93":{                         "name":"CSSPropertyMarginTop",                         "firstUsed":804.473                      },                      "95":{                         "name":"CSSPropertyMaxWidth",                         "firstUsed":804.487                      },                      "98":{                         "name":"CSSPropertyOpacity",                         "firstUsed":804.512                      },                      "105":{                         "name":"CSSPropertyOverflow",                         "firstUsed":804.765                      },                      "107":{                         "name":"CSSPropertyOverflowX",                         "firstUsed":804.744                      },                      "109":{                         "name":"CSSPropertyPadding",                         "firstUsed":803.49                      },                      "110":{                         "name":"CSSPropertyPaddingBottom",                         "firstUsed":806.649                      },                      "111":{                         "name":"CSSPropertyPaddingLeft",                         "firstUsed":804.244                      },                      "112":{                         "name":"CSSPropertyPaddingRight",                         "firstUsed":804.236                      },                      "113":{                         "name":"CSSPropertyPaddingTop",                         "firstUsed":805.029                      },                      "119":{                         "name":"CSSPropertyPosition",                         "firstUsed":804.77                      },                      "127":{                         "name":"CSSPropertyTabSize",                         "firstUsed":806.735                      },                      "128":{                         "name":"CSSPropertyTextAlign",                         "firstUsed":804.95                      },                      "129":{                         "name":"CSSPropertyTextDecoration",                         "firstUsed":804.526                      },                      "142":{                         "name":"CSSPropertyTextShadow",                         "firstUsed":806.759                      },                      "143":{                         "name":"CSSPropertyTextTransform",                         "firstUsed":806.322                      },                      "149":{                         "name":"CSSPropertyTop",                         "firstUsed":805.426                      },                      "157":{                         "name":"CSSPropertyVerticalAlign",                         "firstUsed":804.995                      },                      "159":{                         "name":"CSSPropertyWhiteSpace",                         "firstUsed":804.775                      },                      "161":{                         "name":"CSSPropertyWidth",                         "firstUsed":804.498                      },                      "162":{                         "name":"CSSPropertyWordBreak",                         "firstUsed":806.724                      },                      "163":{                         "name":"CSSPropertyWordSpacing",                         "firstUsed":806.721                      },                      "164":{                         "name":"CSSPropertyWordWrap",                         "firstUsed":806.728                      },                      "231":{                         "name":"CSSPropertyAlignItems",                         "firstUsed":804.981                      },                      "232":{                         "name":"CSSPropertyAlignSelf",                         "firstUsed":804.988                      },                      "233":{                         "name":"CSSPropertyFlex",                         "firstUsed":806.783                      },                      "242":{                         "name":"CSSPropertyGridTemplateColumns",                         "firstUsed":803.954                      },                      "248":{                         "name":"CSSPropertyGridColumn",                         "firstUsed":803.991                      },                      "249":{                         "name":"CSSPropertyGridRow",                         "firstUsed":803.982                      },                      "417":{                         "name":"CSSPropertyGridAutoRows",                         "firstUsed":806.676                      },                      "443":{                         "name":"CSSPropertyJustifySelf",                         "firstUsed":805.366                      },                      "446":{                         "name":"CSSPropertyTransform",                         "firstUsed":805.559                      },                      "511":{                         "name":"CSSPropertyGridColumnGap",                         "firstUsed":806.671                      },                      "512":{                         "name":"CSSPropertyGridRowGap",                         "firstUsed":804.215                      },                      "515":{                         "name":"CSSPropertyVariable",                         "firstUsed":803.422                      },                      "534":{                         "name":"CSSPropertyHyphens",                         "firstUsed":806.74                      },                      "592":{                         "name":"CSSPropertyGap",                         "firstUsed":803.963                      }                   },                   "AnimatedCSSFeatures":[                                         ]                },                "maxFID":0,                "TTIMeasurementEnd":3458,                "LastInteractive":900,                "TotalBlockingTime":0,                "step":1,                "effectiveBps":35446,                "effectiveBpsDoc":86349,                "domTime":0,                "aft":0,                "titleTime":0,                "domLoading":0,                "server_rtt":0,                "smallImageCount":4,                "bigImageCount":0,                "maybeCaptcha":0,                "testID":"210427_AiDcXW_8bd098a817944af61f7db97e4463e622",                "pages":{                   "details":"https://www.webpagetest.org/details.php?test=210427_AiDcXW_8bd098a817944af61f7db97e4463e622&run=1",                   "checklist":"https://www.webpagetest.org/performance_optimization.php?test=210427_AiDcXW_8bd098a817944af61f7db97e4463e622&run=1",                   "breakdown":"https://www.webpagetest.org/breakdown.php?test=210427_AiDcXW_8bd098a817944af61f7db97e4463e622&run=1",                   "domains":"https://www.webpagetest.org/domains.php?test=210427_AiDcXW_8bd098a817944af61f7db97e4463e622&run=1",                   "screenShot":"https://www.webpagetest.org/screen_shot.php?test=210427_AiDcXW_8bd098a817944af61f7db97e4463e622&run=1"                },                "thumbnails":{                   "waterfall":"https://www.webpagetest.org/result/210427_AiDcXW_8bd098a817944af61f7db97e4463e622/1_waterfall_thumb.png",                   "checklist":"https://www.webpagetest.org/result/210427_AiDcXW_8bd098a817944af61f7db97e4463e622/1_optimization_thumb.png",                   "screenShot":"https://www.webpagetest.org/result/210427_AiDcXW_8bd098a817944af61f7db97e4463e622/1_screen_thumb.png"                },                "images":{                   "waterfall":"https://www.webpagetest.org/results/21/04/27/AiDcXW/8bd098a817944af61f7db97e4463e622/1_waterfall.png",                   "connectionView":"https://www.webpagetest.org/results/21/04/27/AiDcXW/8bd098a817944af61f7db97e4463e622/1_connection.png",                   "checklist":"https://www.webpagetest.org/results/21/04/27/AiDcXW/8bd098a817944af61f7db97e4463e622/1_optimization.png",                   "screenShot":"https://www.webpagetest.org/getfile.php?test=210427_AiDcXW_8bd098a817944af61f7db97e4463e622&file=1_screen.jpg"                },                "rawData":{                   "scriptTiming":"https://www.webpagetest.org/getgzip.php?test=210427_AiDcXW_8bd098a817944af61f7db97e4463e622&file=1_script_timing.json",                   "headers":"https://www.webpagetest.org/results/21/04/27/AiDcXW/8bd098a817944af61f7db97e4463e622/1_report.txt",                   "pageData":"https://www.webpagetest.org/results/21/04/27/AiDcXW/8bd098a817944af61f7db97e4463e622/1_IEWPG.txt",                   "requestsData":"https://www.webpagetest.org/results/21/04/27/AiDcXW/8bd098a817944af61f7db97e4463e622/1_IEWTR.txt",                   "utilization":"https://www.webpagetest.org/results/21/04/27/AiDcXW/8bd098a817944af61f7db97e4463e622/1_progress.csv",                   "trace":"https://www.webpagetest.org/getgzip.php?test=210427_AiDcXW_8bd098a817944af61f7db97e4463e622&compressed=1&file=1_trace.json.gz"                },                "videoFrames":[                   {                      "time":0,                      "image":"https://www.webpagetest.org/getfile.php?test=210427_AiDcXW_8bd098a817944af61f7db97e4463e622&video=video_1&file=ms_000000.jpg",                      "VisuallyComplete":0                   },                   {                      "time":900,                      "image":"https://www.webpagetest.org/getfile.php?test=210427_AiDcXW_8bd098a817944af61f7db97e4463e622&video=video_1&file=ms_000900.jpg",                      "VisuallyComplete":98                   },                   {                      "time":1000,                      "image":"https://www.webpagetest.org/getfile.php?test=210427_AiDcXW_8bd098a817944af61f7db97e4463e622&video=video_1&file=ms_001000.jpg",                      "VisuallyComplete":100                   }                ],                "domains":{                   "docs.webpagetest.org":{                      "bytes":76903,                      "requests":8,                      "cdn_provider":"Netlify",                      "connections":2                   },                   "www.google.com":{                      "bytes":42,                      "requests":1,                      "cdn_provider":"Google",                      "connections":1                   },                   "www.google-analytics.com":{                      "bytes":19573,                      "requests":2,                      "cdn_provider":"Google",                      "connections":1                   },                   "stats.g.doubleclick.net":{                      "bytes":2,                      "requests":1,                      "cdn_provider":"Google",                      "connections":1                   }                },                "breakdown":{                   "html":{                      "color":[                         130,                         181,                         252                      ],                      "bytes":5465,                      "bytesUncompressed":22360,                      "requests":1                   },                   "js":{                      "color":[                         254,                         197,                         132                      ],                      "bytes":19569,                      "bytesUncompressed":49153,                      "requests":1                   },                   "css":{                      "color":[                         178,                         234,                         148                      ],                      "bytes":0,                      "bytesUncompressed":0,                      "requests":0                   },                   "image":{                      "color":[                         196,                         154,                         232                      ],                      "bytes":71071,                      "bytesUncompressed":77903,                      "requests":7                   },                   "flash":{                      "color":[                         45,                         183,                         193                      ],                      "bytes":0,                      "bytesUncompressed":0,                      "requests":0                   },                   "font":{                      "color":[                         255,                         82,                         62                      ],                      "bytes":0,                      "bytesUncompressed":0,                      "requests":0                   },                   "video":{                      "color":[                         33,                         194,                         162                      ],                      "bytes":0,                      "bytesUncompressed":0,                      "requests":0                   },                   "other":{                      "color":[                         196,                         196,                         196                      ],                      "bytes":415,                      "bytesUncompressed":415,                      "requests":3                   }                },                "consoleLog":[                                   ]             }          }       }    },    "statusCode":200,    "statusText":"Test Complete",    "webPagetestVersion":"20.06" }

How much?

With the current promotional pricing, API access starts at $ 9.89/month (if you pay annually) which is 1,200 tests per month. That would be 40 tests a day, which is a great starting point for most actively developed projects. There is pricing that scales up to 25,000 tests a month for $ 131.99/month. And if you need even more than that, you can talk to them and they’ll get you sorted—they have scaling-friendly pricing, making it more affordable than other SaaS performance testing tools.

You can build your own performance tools.

So with API access, what can you do? Well, that’s the point of an API: you can do whatever you want. An obvious choice is building performance dashboards for your company. Building them yourself means you can focus on exactly the tracking and reporting that matters most to your company. Not to mention that you can store the data internally, build the UIs internally, and generally keep everything in-house like so many companies like to do.

Here’s another idea. You could build alerting tools. Here’s a Node wrapper for the API. It supports JSON Test Specs. You set up your performance tests to run and your performance metrics you want to hit, and get results like:

WebPageTest     ✓ median.firstView.requests: 15 should be less than 20      1) median.firstView.render: 500 should be less than 400     ✓ median.firstView.loadTime: 2500 should be less than 3000      2) median.firstView.score_gzip: 70 should be greater than 90    2 passing (3 ms)   2 failing

I’m sure you can imagine shooting results like that to a Slack channel, an email, a SMS message, etc.

Alerting people to performance problems is some big girl pants stuff that way more companies should be doing.

Just so you know, while you get data back from the API and it’s likely you’ll store it yourself, that data is also stored on WebPageTest for 13 months. So as long as you know the test ID, you can get it again, not to mention use the WebPageTest UI for looking at the data without having to build your own dashboard.

You can have performance-focused Pull Requests.

There is a GitHub Action for the WebPageTest API. So with very little setup, you can have your PRs have a bunch of performance information. Super cool.

I know everyone is so hot on Core Web Vitals right now. Look at that. All three of them sitting right there in the Pull Request.

This can be a part of a cultural change toward a more performance focused development team at a company.

Remember, it’s not just Chrome.

Just to put a point on it, one of the strengths of WebPageTest is that it reports from literally real browsers, and not just Chrome. Lighthouse is a nice performance tool too, but it’s Chrome-only. So is doing your own browser controlling with a tool like Puppeteer. WebPageTest supports Chrome, and Firefox, Edge, and even Brave. It reports way more performance metrics, and does it from physical locations all around the world.

Track anything that is particularly to you.

I’m a big believer that the most important analytics, performance or otherwise, are metrics that you decide upon yourselves as a company, because they reflect some clear value. Maybe you’re trying to fix a problem and you can only fix what you measure. Maybe you know that you sell more widgets when page speed stays high. Maybe you you need to keep an eye on particular contractors who have a habit of not optimizing images.

With the amount of detailed data you get from the WebPageTest API, you can track just about anything you can dream of. And you don’t have to rely on only what WebPageTest does by default. You can script WebPageTest to run code on your site. Say you need to perform special steps before testing, you can. Even cooler, you can report custom metrics, which are then added to the API data. Say you wanted to know how many <svg> elements were on the page, test if a captcha loaded, or check if any elements had duplicate IDs. You script it up and use the custom metrics for that.

WebPageTest also supports the standard Custom Marks / Custom Timing stuff. So for example performance.mark('playback-start'); will report that timing when you run that anywhere in your JavaScript. Or you could do <button elementtiming="buy-now-button">Buy Now</button> to register when that element first paints and get that data. Those kind of custom metrics are pretty damn important because they reflect your site’s most important functionality.


The post WebPageTest API appeared first on CSS-Tricks.

You can support CSS-Tricks by being an MVP Supporter.

CSS-Tricks

[Top]

Recipes for Performance Testing Single Page Applications in WebPageTest

WebPageTest is an online tool and an Open Source project to help developers audit the performance of their websites. As a Web Performance Evangelist at Theodo, I use it every single day. I am constantly amazed at what it offers to the web development community at large and the web performance folks particularly — for free.

But things can get difficult pretty quickly when dealing with Single Page Applications — usually written with React, Vue, Svelte or any other front-end framework. How can you get through a log in page? How can you test the performance of your users’ flow, when most of it happens client-side and does not have a specific URL to point to?

Throughout this article, we are going to find out how to solve these problems (and many more), and you’ll be ready to test the performance of your Single Page Application with WebPageTest!

Note: This articles requires an intermediate understanding about some of WebPageTest advanced features.

If you are curious about web performance and want a good introduction to WebPageTest, I would highly recommend the following resources:

The problem with testing Single Page Applications

Single Page Applications (SPAs) radically changed the way websites work. Instead of letting the back end (e.g. Django, Rails and Laravel) do most of the grunt work and delivering “ready-to-use” HTML to the browser, SPAs rely heavily on JavaScript to have the browser compute HTML. Such front-end frameworks include React, Vue, Angular or Svelte.

The simplicity of WebPageTest is what makes part of its appeal to developers: head to http://webpagetest.org/easy, enter your URL, wait a little, and voilà! Your performance audit is ready.

If you are building an SPA and want to measure its performance, you could rely on end-to-end testing tools like Selenium, Cypress or Puppeteer. However, I have found that none of these has the amount of performance-related information and easy-to-use tooling that WebPageTest offers.

But testing SPAs with WebPageTest can be complex.

In many SPAs, most of the site is protected behind a log in form. I often use Netlify for hosting my sites (including my personal blog), and most of the time I spend in the application is on authenticated pages, like the dashboard listing all my websites. As the information on my dashboard is specific to me, any other user trying to access https://app.netlify.com/teams/phacks/sites is not going to see my dashboard, but will instead be redirected to either a login or 404 page.

The same goes for WebPageTest. If I enter my dashboard URL into http://webpagetest.org/easy, the audit will be performed against the login page.

Moreover, testing and monitoring the performance of dynamic interactions in SPAs cannot be achieved with simple WebPageTest audits.

Here’s an example. Nuage is a domain name registrar with fancy animations and a beautiful, dynamic interface. When you search for domain names to buy, an asynchronous call fetches the results of the request and the results are displayed as they are retrieved.

As you might have noticed in the video above, the URL of the page does not change as I type my search terms. As a consequence, it is not possible to test the performance of the search experience using a simple WebPageTest audit as we do not have a proper URL to point to the action of searching something — only to an empty search page.

Some other problems can arise from the SPA paradigm shift when using WebPageTest:

  • Clicking around to navigate a webpage is usually harder than merely heading to a new URL, but it is sometimes the only option in SPAs.
  • Authentication in SPAs is usually implemented using JSON Web Tokens instead of good ol’ cookies, which rules out the option of setting authentication cookies directly in WebPageTest (as described here).
  • Using React and Redux (or other application state management libraries) for your SPA can mean that forms are harder to fill out programmatically, since using .innerText() or .value() to set a field’s value may not forward it to the application store.
  • As API calls are often asynchronous and various loaders can be used to indicate a loading state, those can “trick” WebPageTest into believing the page has actually finished loading when it has, in fact, not. I have seen it happen with longer-than-usual API calls (5+ seconds).

As I have faced these problems on several projects, I have come up with a range of tips and techniques to counter them.

The many ways of selecting an element

Selecting DOM elements is a key part of doing all sorts of automated testing, be it for end-to-end testing with Selenium or Cypress or for performance testing with WebPageTest. Selecting DOM elements allows us to click on links and buttons, fill in forms and more generally interact with the application.

There are several ways of selecting a particular DOM elements using native browser APIs, that range from the straightforward document.getElementsByClassName to the thorny but really powerful XPath selectors. In this section, we will see three different possibilities, ordered by increasing complexity.

Get an element by id, className or tagName

If the element you want to select (say, an “Empty Cart” button) has a specific and unique id (e.g. #empty-cart), class name, or is the only button on the page, you can click on it using the getElementsBy methods:

const emptyCartButton = document.getElementsById("empty-cart")[0]; // or document.getElementsByClassName(".empty-cart-button")[0] // or document.getElementsByTagName("button")[0] emptyCartButton.click();

If you have several buttons on the same page, you can filter the resulting list before interacting with the element:

const buttons = document.getElementsByTagName("button"); const emptyCartButton = buttons.filter(button =>   button.innerText.includes("Empty Cart") )[0]; emptyCartButton.click();

Use complex CSS selectors

Sometimes, the particular element you want to interact with does not present an interesting unicity property in either its ID, class or tag.

One way to circumvent this issue is to add this unicity manually, for testing purposes only. Adding #perf-test-empty-cart-button to a specific button is innocuous for your website markup and can dramatically simplify your testing setup.

However, this solution can sometimes be out of reach: you may not have access to the source code of the application, or may not be able to deploy new versions quickly. In those situations, it is useful to know about document.querySelector (and its variant document.querySelectorAll) and using complex CSS selectors.

Here are a few examples of what can be achieved with document.querySelector:

// Select the first input with the `name="username"` property document.querySelector("input[name='username']"); // Select all number inputs document.querySelectorAll("input[type='number']");  // Select the first h1 inside the <section> document.querySelector("section h1");  // Select the first direct descendent of a <nav> which is of type <img> document.querySelector("nav > img");

What’s interesting here is you have the full power of CSS selectors at hand. I encourage you to have a look at the always-useful MDN’s reference table of selectors!

Going nuclear: XPath selectors

XML Path Language (XPath), albeit really powerful, is harder to grasp and maintain than the CSS solutions above. I rarely have to use it, but it is definitively useful to know that it exists.

One such instance is when you want to select a node by its text value, and can’t resort to CSS selectors. Here’s a handy snippet to use in those cases:

// Returns the  that has the exact content 'Sep 16, 2015' document.evaluate(   "//span[text()='Sep 16, 2015']",   document,   null,   XPathResult.FIRST_ORDERED_NODE_TYPE,   null ).singleNodeValue;

I will not go into details on how to use it as it would have me wander away from the goal of this article. To be fair, I don’t even know what many of the parameters above even mean. However, I can definitely recommend the MDN documentation should you want to read on the topic.

Recipes for common use cases

In the following section, we will see how to test the performance in common use cases of Single Page Applications. I call these my testing recipes.

In order to illustrate those recipes, I will use the React Admin demo website as an example. React Admin is an open source project aimed at building admin applications and back offices.

It is a typical example of a SPA because it uses React (as the name suggests), calls remote APIs, has a login interface, many forms and relies on client-side routing. I encourage you to go take a quick look at the website (the demo account is demo/demo ) in order to have an idea of what we will be trying to achieve.

Authentication and forms

The authentication page of React Admin requires the user to input a username and a password:

The authentication screen of React Admin

Intuitively, one could take the following approach to filling in the form and submit:

const [usernameInput, passwordInput] = document.getElementsByTagName("input"); usernameInput.value = "demo"; // innerText could also be used here passwordInput.value = "demo"; document.getElementsByTagName("button")[0].click();

If you run these commands sequentially in a DevTools console on the login page, you will see that all fields are reset and the login request fails upon submitting by clicking the button. The problem comes from the fact that the new values we set with .value() (or .innerText()) are not kicked back to the Redux store, and thus not “processed” by the application.

What we need to do then is explicitly tell React that the value has changed so that it will update internal bookkeeping accordingly. This can be achieved using the Event interface.

const updateInputValue = (input, newValue) => {   let lastValue = input.value;   input.value = newValue;   let event = new Event("input", { bubbles: true });   let tracker = input._valueTracker;   if (tracker) {     tracker.setValue(lastValue);   }   input.dispatchEvent(event); };

Note: this solution is pretty hacky (even according to its own author), however it works well for our purposes here.

Our updated script becomes:

const updateInputValue = (input, newValue) => {   let lastValue = input.value;   input.value = newValue;   let event = new Event("input", { bubbles: true });   let tracker = input._valueTracker;   if (tracker) {     tracker.setValue(lastValue);   }   input.dispatchEvent(event); };  const [usernameInput, passwordInput] = document.getElementsByTagName("input");  updateInputValue(usernameInput, "demo"); updateInputValue(passwordInput, "demo");  document.getElementsByTagName("button")[0].click();

Hurrah! You can try it in your browser’s console—It works like a charm.

Translating this to an actual WebPageTest script (with scripting keywords, single line commands and tab-separated parameters) would look like this:

setEventName    Go to Login  navigate    https://marmelab.com/react-admin-demo/  setEventName    Login      exec    const updateInputValue = (input, newValue) => {  let lastValue = input.value;  input.value = newValue;  let event = new Event("input", { bubbles: true });  let tracker = input._valueTracker;  if (tracker) {  tracker.setValue(lastValue);  }  input.dispatchEvent(event);};  exec    const [usernameInput, passwordInput] = document.getElementsByTagName("input")  exec    updateInputValue(usernameInput, "demo") exec    updateInputValue(passwordInput, "demo")  execAndWait document.getElementsByTagName("button")[0].click()

Note that clicking on the submit button leads us to a new page and triggers API calls, which means we need to use the execAndWait command.

You can see the full results of the test at this address. (Note: the results may have been archived by WebPageTest — you can, however, run the test again yourself!)

Here is a short video (captured by WebPageTest) in which you can see that we indeed passed the authentication step:

Navigating between pages

For traditional Server Rendered pages, navigating from one URL to the next in WebPageTest scripting is done via the navigate <url> command.

However, for SPAs, this does not reflect the experience of the user, as client-side routing means that the server has no role in navigation. Thus, hitting a URL directly would significantly slow down the measured performance (because of the time it takes for the JavaScript framework to be compiled, parsed and executed), a slowdown that the user does not experience when changing pages. As it is crucial to simulate the user flow the best we can, we need to handle the navigation on the client as well.

Hopefully, this is a lot simpler to do than filling up forms. We only need to select the link (or button) that will take us to the new page, and .click() on it! Let’s follow through our previous example, although now we want to test the performance of the Reviews list, and of a single Review page.

A user would typically click on the Reviews item on the left-hand navigation menu, then on any item in the list. Inspecting the elements in DevTools may lead us to a selection strategy as follows:

document.querySelector("a[href='#reviews']"); // select the Reviews link in the menu document.querySelector("table tr"); // select the first item in the Reviews list

As both clicks lead to page transition and API calls (to fetch the reviews), we need to use the execAndWait keyword for the script:

setEventName    Go to Login  navigate    https://marmelab.com/react-admin-demo/  setEventName    Login  exec    const updateInputValue = (input, newValue) => {  let lastValue = input.value;  input.value = newValue;  let event = new Event("input", { bubbles: true });  let tracker = input._valueTracker;  if (tracker) {    tracker.setValue(lastValue);  }  input.dispatchEvent(event);};  exec    const [usernameInput, passwordInput] = document.getElementsByTagName("input")  exec    updateInputValue(usernameInput, "demo") exec    updateInputValue(passwordInput, "demo")  execAndWait document.getElementsByTagName("button")[0].click()  setEventName    Go to Reviews  execAndWait document.querySelector("a[href='#/reviews']").click()  setEventName    Open a single Review  execAndWait document.querySelector("table tbody tr").click()

Here’s the video of the complete script running on WebPageTest:

The audit result from WebPageTest shows the performance metrics and waterfall graphs for each step of the script, allowing us to monitor the performance of each API call and interaction:

What about Internet Explorer 11 compatibility?

WebPageTest allows us to select which location, browser and network conditions the test will use. Internet Explorer 11 (IE11) is among the available browser options, and if you try the previous scripts on IE11, they will fail.

This is due to two reasons:

The ES6 syntax problem can be overcome by translating our scripts to ES5 syntax (no arrow functions, no let and const, no array destructuring), which might look like this:

setEventName    Go to Login  navigate    https://marmelab.com/react-admin-demo/  setEventName    Login  exec    var updateInputValue = function(input, newValue) {  var lastValue = input.value;  input.value = newValue;  var event = new Event("input", { bubbles: true });  var tracker = input._valueTracker;  if (tracker) {    tracker.setValue(lastValue);  }  input.dispatchEvent(event);};  exec    var usernameInput = document.getElementsByTagName("input")[0] exec    var passwordInput = document.getElementsByTagName("input")[1]  exec    updateInputValue(usernameInput, "demo") exec    updateInputValue(passwordInput, "demo")  execAndWait document.getElementsByTagName("button")[0].click()  setEventName    Go to Reviews  execAndWait document.querySelector("a[href='#/reviews']").click()  setEventName    Open a single Review  execAndWait document.querySelector("table tbody tr").click()

In order to bypass the absence of CustomEvent support, we can turn to polyfills and add one manually at the top of the script. This polyfill is available on MDN:

(function() {   if (typeof window.CustomEvent === "function") return false;   function CustomEvent(event, params) {     params = params || { bubbles: false, cancelable: false, detail: undefined };     var evt = document.createEvent("CustomEvent");     evt.initCustomEvent(       event,       params.bubbles,       params.cancelable,       params.detail     );     return evt;   }   CustomEvent.prototype = window.Event.prototype;   window.CustomEvent = CustomEvent; })();

We can then replace all mentions of Event by CustomEvent, set the polyfill to fit on a single line and we are good to go!

setEventName    Go to Login  navigate    https://marmelab.com/react-admin-demo/  exec    (function(){if(typeof window.CustomEvent==="function")return false;function CustomEvent(event,params){params=params||{bubbles:false,cancelable:false,detail:undefined};var evt=document.createEvent("CustomEvent");evt.initCustomEvent(event,params.bubbles,params.cancelable,params.detail);return evt}CustomEvent.prototype=window.Event.prototype;window.CustomEvent=CustomEvent})();  setEventName    Login  exec    var updateInputValue = function(input, newValue) {  var lastValue = input.value;  input.value = newValue;  var event = new CustomEvent("input", { bubbles: true });  var tracker = input._valueTracker;  if (tracker) {    tracker.setValue(lastValue);  }  input.dispatchEvent(event);};  exec    var usernameInput = document.getElementsByTagName("input")[0] exec    var passwordInput = document.getElementsByTagName("input")[1]  exec    updateInputValue(usernameInput, "demo") exec    updateInputValue(passwordInput, "demo")  execAndWait document.getElementsByTagName("button")[0].click()  setEventName    Go to Reviews  execAndWait document.querySelector("a[href='#/reviews']").click()  setEventName    Open a single Review  execAndWait document.querySelector("table tbody tr").click()

Et voilà!

General tips and tricks for WebPageTest scripting

One last thing I want to do is provide a few tips and tricks that make writing WebPageTest scripts easier. Feel free to DM me on Twitter if you have any suggestions!

Security first!

Remember to tick both privacy checkboxes if your script includes senstitive data, like credentials!

WebPageTest security controls

Browse the docs

The WebPageTest Scripting docs are full of features that I didn’t cover in this article, ranging from DNS Overriding to iPhone Spoofing and even if/else conditionals.

When you plan on writing a new script, I recommend to have a look at the available parameters first and see if any can help make your scripting easier or more robust.

Long loading states

Sometimes, a remote API call (say, for fetching the reviews) will take a long time. A loading indicator, such as a spinner, can be used to tell the user to wait a bit as something is happening.

WebPageTest tries to detect when a page has finished loading by figuring out if things are changing on the screen. If your loading indicator lasts a long time, WebPageTest might mistake it for an integral part of your page design and cut the audit before the API call returns — thus truncating your measures.

A way to circumvent this issue is to tell WebPageTest to wait at least a certain duration before stopping the test. This is a parameter available under the Advanced tab:

WebPageTest minimum test duration

Keeping your script (and results) human-readable

  • Use blank lines and comments (//) generously because single-line JavaScript commands can sometimes be hard to grasp.
  • Keep a multi-line version somewhere as your reference, and single-line everything as you are about to test. This helps readability. Like, a lot.
  • Use setEventName to name your different “steps.” This makes for more readable tests as it explicits the sequence of pages the audit goes through, and also appears in the WebPageTest results.

Iterating on your scripts

  • First, make sure that your script works in the browser. To do so, strip the WebPageTest keywords (the first word of every line of your script), then copy and paste each line in the browser console to verify that everything is working as expected at every step of the way.
  • Once you are ready to submit your test to WebPageTest, do it first with very light settings: only one run, a fast browser (cough — not IE11 — cough), no network throttling, no repeat view, a well-dimensioned instance (Dulles, VA, usually has good response times). This will help you detect and correct errors way faster.

Automating your scripts

Your test script is running smoothly, and you start getting performance reports of your Single Page App. As you ship new features, it is important that you monitor its performance regularly to catch regressions at the earliest.

To address this problem, I am currently working on Falco, a soon-to-be-open-sourced WebPageTest test runner. Falco takes care of automating your audits, then presents the results in an easy-to-read interface while letting you read the full reports when you need it. You can follow me on Twitter to know when it goes open source, and learn more about web performance and WebPageTest!

The post Recipes for Performance Testing Single Page Applications in WebPageTest appeared first on CSS-Tricks.

CSS-Tricks

, , , , , ,
[Top]