Skip to content

Instantly share code, notes, and snippets.

@N0taN3rd
Created October 28, 2016 11:06
Show Gist options
  • Save N0taN3rd/b9157550863ade6a4826eb88ba8bbcac to your computer and use it in GitHub Desktop.
Save N0taN3rd/b9157550863ade6a4826eb88ba8bbcac to your computer and use it in GitHub Desktop.
October 28, 2016
WARC/1.0
WARC-Type: warcinfo
WARC-Date: 2016-08-15T21:19:20Z
WARC-Filename: WAIL-20160815211920610-00000-20339~misanthropy~8443.warc
WARC-Record-ID: <urn:uuid:c8935f63-6a09-4743-892b-03dbc5a0357b>
Content-Type: application/warc-fields
Content-Length: 423
software: Heritrix/3.3.0-SNAPSHOT-20160708-0038 http://crawler.archive.org
ip: 127.0.1.1
hostname: misanthropy
format: WARC File Format 1.0
conformsTo: http://bibnum.bnf.fr/WARC/WARC_ISO_28500_version1_latestdraft.pdf
isPartOf: MyWAILBasedHeritrixCrawl
description: PersonalWebArchival
robots: ignore
http-header-user-agent: Mozilla/5.0 (compatible; heritrix/3.3.0-SNAPSHOT-20160708-0038 +http://yourdomain.com)
WARC/1.0
WARC-Type: response
WARC-Target-URI: dns:matkelly.com
WARC-Date: 2016-08-15T21:19:19Z
WARC-IP-Address: 127.0.1.1
WARC-Record-ID: <urn:uuid:ebb313ec-9933-442d-a690-bd28192a4ef5>
Content-Type: text/dns
Content-Length: 57
20160815211919
matkelly.com. 14400 IN A 173.236.225.186
WARC/1.0
WARC-Type: response
WARC-Target-URI: http://matkelly.com/robots.txt
WARC-Date: 2016-08-15T21:19:23Z
WARC-IP-Address: 173.236.225.186
WARC-Payload-Digest: sha1:WUM4DQPHBJKLHVC2FNHYZG5TJDCQXB4Z
WARC-Record-ID: <urn:uuid:f2fca64d-748b-4c96-bd22-953a3d0e99bc>
Content-Type: application/http; msgtype=response
Content-Length: 342
HTTP/1.1 200 OK
Date: Mon, 15 Aug 2016 21:19:24 GMT
Server: Apache
Last-Modified: Mon, 08 Jun 2009 06:23:08 GMT
ETag: "58-46bd0468f2b00"
Accept-Ranges: bytes
Content-Length: 88
Vary: Accept-Encoding
Connection: close
Content-Type: text/plain
User-agent: *
Disallow: budget.txt
Disallow: /finance
Disallow: /money
Disallow: /budget
WARC/1.0
WARC-Type: request
WARC-Target-URI: http://matkelly.com/robots.txt
WARC-Date: 2016-08-15T21:19:23Z
WARC-Concurrent-To: <urn:uuid:f2fca64d-748b-4c96-bd22-953a3d0e99bc>
WARC-Record-ID: <urn:uuid:2ecf391b-7423-4d42-8f63-2bb0261e00e2>
Content-Type: application/http; msgtype=request
Content-Length: 240
GET /robots.txt HTTP/1.0
Connection: Close
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Host: matkelly.com
User-Agent: Mozilla/5.0 (compatible; heritrix/3.3.0-SNAPSHOT-20160708-0038 +http://yourdomain.com)
WARC/1.0
WARC-Type: metadata
WARC-Target-URI: http://matkelly.com/robots.txt
WARC-Date: 2016-08-15T21:19:23Z
WARC-Concurrent-To: <urn:uuid:f2fca64d-748b-4c96-bd22-953a3d0e99bc>
WARC-Record-ID: <urn:uuid:e5365b76-a7d3-4ec7-b58f-1b7df6904ed5>
Content-Type: application/warc-fields
Content-Length: 175
force-fetch:
via: http://matkelly.com/
hopsFromSeed: P
fetchTimeMs: 729
charsetForLinkExtraction: ISO-8859-1
outlink: http://matkelly.com/favicon.ico I =INFERRED_MISC
WARC/1.0
WARC-Type: response
WARC-Target-URI: http://matkelly.com/
WARC-Date: 2016-08-15T21:19:28Z
WARC-IP-Address: 173.236.225.186
WARC-Payload-Digest: sha1:3I42H3S6NNFQ2MSVX7XZKYAYSCX5QBYJ
WARC-Record-ID: <urn:uuid:6d8ba8c8-03d1-4321-87bb-812022f7d4ca>
Content-Type: application/http; msgtype=response
Content-Length: 411
HTTP/1.1 301 Moved Permanently
Date: Mon, 15 Aug 2016 21:19:28 GMT
Server: Apache
Memento-Datetime: Mon, 15 Aug 2016 21:19:28 GMT
Link: <http://matkelly.com/>; rel="original", <http://matkelly.com/archive/mkdc.tm>; rel="timemap"; type="application/link-format"
Location: http://www.cs.odu.edu/~mkelly/
Vary: Accept-Encoding
Content-Length: 0
Connection: close
Content-Type: text/html; charset=UTF-8
WARC/1.0
WARC-Type: request
WARC-Target-URI: http://matkelly.com/
WARC-Date: 2016-08-15T21:19:28Z
WARC-Concurrent-To: <urn:uuid:6d8ba8c8-03d1-4321-87bb-812022f7d4ca>
WARC-Record-ID: <urn:uuid:08cc6efe-465d-4780-aa12-aeaa035450b4>
Content-Type: application/http; msgtype=request
Content-Length: 230
GET / HTTP/1.0
Connection: Close
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Host: matkelly.com
User-Agent: Mozilla/5.0 (compatible; heritrix/3.3.0-SNAPSHOT-20160708-0038 +http://yourdomain.com)
WARC/1.0
WARC-Type: metadata
WARC-Target-URI: http://matkelly.com/
WARC-Date: 2016-08-15T21:19:28Z
WARC-Concurrent-To: <urn:uuid:6d8ba8c8-03d1-4321-87bb-812022f7d4ca>
WARC-Record-ID: <urn:uuid:42b3a64b-514d-448c-b449-8ed2fd32ba0f>
Content-Type: application/warc-fields
Content-Length: 172
seed:
fetchTimeMs: 140
charsetForLinkExtraction: UTF-8
outlink: http://www.cs.odu.edu/~mkelly/ R Location:
outlink: http://matkelly.com/favicon.ico I =INFERRED_MISC
WARC/1.0
WARC-Type: response
WARC-Target-URI: dns:www.cs.odu.edu
WARC-Date: 2016-08-15T21:19:28Z
WARC-IP-Address: 127.0.1.1
WARC-Record-ID: <urn:uuid:ebb2ea48-deae-4ecb-94f9-1a3267f210bf>
Content-Type: text/dns
Content-Length: 55
20160815211928
xenon.cs.odu.edu. 86400 IN A 128.82.4.2
WARC/1.0
WARC-Type: response
WARC-Target-URI: http://matkelly.com/favicon.ico
WARC-Date: 2016-08-15T21:19:31Z
WARC-IP-Address: 173.236.225.186
WARC-Payload-Digest: sha1:3I42H3S6NNFQ2MSVX7XZKYAYSCX5QBYJ
WARC-Record-ID: <urn:uuid:9839e3fa-c6d8-49ae-88c0-23eaaf9be574>
Content-Type: application/http; msgtype=response
Content-Length: 231
HTTP/1.1 200 OK
Date: Mon, 15 Aug 2016 21:19:31 GMT
Server: Apache
Last-Modified: Mon, 08 Jun 2009 06:23:08 GMT
ETag: "0-46bd0468f2b00"
Accept-Ranges: bytes
Content-Length: 0
Connection: close
Content-Type: image/x-icon
WARC/1.0
WARC-Type: request
WARC-Target-URI: http://matkelly.com/favicon.ico
WARC-Date: 2016-08-15T21:19:31Z
WARC-Concurrent-To: <urn:uuid:9839e3fa-c6d8-49ae-88c0-23eaaf9be574>
WARC-Record-ID: <urn:uuid:6c8a852e-b495-4ebd-b460-bbbdb54212cc>
Content-Type: application/http; msgtype=request
Content-Length: 272
GET /favicon.ico HTTP/1.0
Connection: Close
Referer: http://matkelly.com/
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Host: matkelly.com
User-Agent: Mozilla/5.0 (compatible; heritrix/3.3.0-SNAPSHOT-20160708-0038 +http://yourdomain.com)
WARC/1.0
WARC-Type: metadata
WARC-Target-URI: http://matkelly.com/favicon.ico
WARC-Date: 2016-08-15T21:19:31Z
WARC-Concurrent-To: <urn:uuid:9839e3fa-c6d8-49ae-88c0-23eaaf9be574>
WARC-Record-ID: <urn:uuid:13615f6e-2c6c-4369-ae41-68e393caa147>
Content-Type: application/warc-fields
Content-Length: 160
via: http://matkelly.com/
hopsFromSeed: I
fetchTimeMs: 82
charsetForLinkExtraction: ISO-8859-1
outlink: http://matkelly.com/favicon.ico I =INFERRED_MISC
WARC/1.0
WARC-Type: response
WARC-Target-URI: http://www.cs.odu.edu/robots.txt
WARC-Date: 2016-08-15T21:19:31Z
WARC-IP-Address: 128.82.4.2
WARC-Payload-Digest: sha1:PJ7OVFJC4MDZEY6JXVH4GAE7RRWNALQG
WARC-Record-ID: <urn:uuid:8c04ce01-9993-42ad-8887-b847f3a2dfbc>
Content-Type: application/http; msgtype=response
Content-Length: 348
HTTP/1.1 200 OK
Server: nginx
Date: Mon, 15 Aug 2016 21:19:31 GMT
Content-Type: text/plain
Content-Length: 122
Last-Modified: Sun, 12 Jan 2014 02:50:40 GMT
Connection: close
ETag: "52d20300-7a"
Accept-Ranges: bytes
User-Agent: 008
Disallow: /
User-agent: *
Disallow: /~extract/DocumentCollections
Disallow: /~wild/cs333/fall02/students
WARC/1.0
WARC-Type: request
WARC-Target-URI: http://www.cs.odu.edu/robots.txt
WARC-Date: 2016-08-15T21:19:31Z
WARC-Concurrent-To: <urn:uuid:8c04ce01-9993-42ad-8887-b847f3a2dfbc>
WARC-Record-ID: <urn:uuid:e2e52e58-d73f-4bb4-a900-eae54c719d66>
Content-Type: application/http; msgtype=request
Content-Length: 242
GET /robots.txt HTTP/1.0
Connection: Close
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Host: www.cs.odu.edu
User-Agent: Mozilla/5.0 (compatible; heritrix/3.3.0-SNAPSHOT-20160708-0038 +http://yourdomain.com)
WARC/1.0
WARC-Type: metadata
WARC-Target-URI: http://www.cs.odu.edu/robots.txt
WARC-Date: 2016-08-15T21:19:31Z
WARC-Concurrent-To: <urn:uuid:8c04ce01-9993-42ad-8887-b847f3a2dfbc>
WARC-Record-ID: <urn:uuid:0bdac149-1c1e-406e-9c55-8dffa3b277ed>
Content-Type: application/warc-fields
Content-Length: 188
force-fetch:
via: http://www.cs.odu.edu/~mkelly/
hopsFromSeed: RP
fetchTimeMs: 104
charsetForLinkExtraction: ISO-8859-1
outlink: http://www.cs.odu.edu/favicon.ico I =INFERRED_MISC
WARC/1.0
WARC-Type: response
WARC-Target-URI: http://www.cs.odu.edu/~mkelly/
WARC-Date: 2016-08-15T21:19:34Z
WARC-IP-Address: 128.82.4.2
WARC-Payload-Digest: sha1:QMZEEYTMLMEFYO5PEE4BKEAE2BV57HH2
WARC-Record-ID: <urn:uuid:cff684e0-9204-4cdc-a4ac-d523f2e2d5f7>
Content-Type: application/http; msgtype=response
Content-Length: 40196
HTTP/1.1 200 OK
Server: nginx
Date: Mon, 15 Aug 2016 21:19:35 GMT
Content-Type: text/html
Connection: close
Vary: Accept-Encoding
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="description" content="Academic Homepage of Mat Kelly, Doctoral Degree student at Old Dominion University in Norfolk, Virginia." />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="theme-color" content="#031fc9" />
<!--[if lt IE 9]>
<script src="_js/html5shiv.js"></script>
<![endif]-->
<title>Mat Kelly, PhD Student</title>
<link rel="stylesheet" href="style.css" media="all" />
<link rel="author" href="https://plus.google.com/u/0/103717513886594190386" />
<script src="_js/html2canvas.js"></script>
<script>
function screenshotTest(){
html2canvas(document.body, {
allowTaint: true,
onrendered: function(canvas) {
if(!document.getElementById('screenshot')){ // Exec below only once
canvas.id = "screenshot";
var tf = document.createElement("div");
tf.id = "thumbnailFrame";
document.getElementsByTagName("header")[0].insertBefore(tf,document.getElementsByTagName("h1")[0]);
document.getElementById('thumbnailFrame').appendChild(canvas);
}
}
});
}
document.addEventListener("DOMContentLoaded", function(event) {
document.onscroll = function(){
if(window.innerWidth <= 600){ //responsive design showing
if(window.pageYOffset > 400){
document.getElementsByTagName("header")[0].className = "pinned";
//document.getElementsByTagName("nav")[0].className = "vertical";
}else {
document.getElementsByTagName("header")[0].className = "";
//document.getElementsByTagName("nav")[0].className = "";
}
}
}
});
</script>
<style type="text/css">
/*#screenshot {position: absolute; right: 300px; top: 10px; width: 500px; -webkit-transition: all ease 1s;}*/
#screenshot {width: 200px;}
#screenshot:hover {
}
#thumbnailFrame {height: 100px; overflow: hidden;}
</style>
</head>
<body>
<header itemscope itemtype="http://data-vocabulary.org/Person">
<a href="http://www.cs.odu.edu/~mkelly/" onclick="screenshotTest();return false;">
<img src="mofro.png" alt="mug shot" id="mugShot" itemprop="photo" />
</a>
<h1 itemprop="name">Mat Kelly</h1>
<h2 itemprop="title">PhD Student, Computer Science</h2>
<h3 itemprop="affiliation">Web Science &amp; Digital Libraries Research Group</h3>
<h3 itemprop="affiliation">Old Dominion University</h3>
<!--<a href="http://www.cs.odu.edu/~mkelly" onclick="screenshotTest();return false;">
<img src="amish.jpg" alt="mug shot" id="openMenu" itemprop="photo" />
</a>//future work -->
</header>
<nav>
<ul id="sections">
<li><a href="#currentProjects">Upcoming/Current Projects</a></li>
<li><a href="#papersPostersAndPresentations">Papers, Posters &amp; Presentations</a></li>
<li><a href="#recognitionAndParticipation">Recognition &amp; Participation</a></li>
<li><a href="#teaching">Teaching</a></li>
<li><a href="#courseworkHistory">Coursework History</a></li>
<li><a href="#projects">Recent Software Projects</a></li>
<li><a href="#contact">Contact</a></li>
<li id="cv"><a target="_blank" href="http://matkelly.com/cv">C.V.</a></li>
</ul>
</nav>
<section id="currentProjects">
<h2>Current/Upcoming Projects</h2>
<ul>
<li>Research and paper development on various aspects of personal web archiving.</li>
<li>Continued development of <a href="http://warcreate.com">WARCreate</a>, <a href="http://matkelly.com/wail">Web Archiving Integration Layer (WAIL)</a>, and <a href="https://github.com/machawk1/mink">Mink</a> for <a href="http://www.neh.gov/divisions/odh/grant-news/announcing-seven-digital-humanities-implementation-grants-july-2014">NEH Digital Humanities Implementation Grant</a>.</li>
<li>Continued development of <a href="http://github.com/oduwsdl/ipwb">InterPlanetary Wayback (ipwb)</a>.</li>
</ul>
</section>
<section id="papersPostersAndPresentations">
<h2>Papers, Posters &amp; Presentations</h2>
<ul>
<li><em class="me">Mat Kelly</em>, Sawood Alam, Michael L. Nelson, and Michele C. Weigle. "InterPlanetary Wayback: Peer-To-Peer Permanence of Web Archives," To Appear In <em>Proceedings of the International Conference on Theory and Practice of Digital Libraries</em> (TPDL). Hannover, Germany, September 2016.</li>
<li><em class="me">Mat Kelly</em>, Sawood Alam, Michael L. Nelson, and Michele C. Weigle, "InterPlanetary Wayback: The Permanent Web Archive," At the <em>Web Archiving and Digital Libraries Workshop (WADL 2016)</em>. Newark, NJ, June 2016.</li>
<li>Sawood Alam, <em class="me">Mat Kelly</em>, and Michael L. Nelson, "InterPlanetary Wayback: The Permanent Web Archive," In <em>Proceedings of the IEEE/ACM Joint Conference on Digital Libraries (JCDL)</em>. Newark, NJ, June 2016, pp. 273-274. (<a href="http://www.cs.odu.edu/~mkelly/papers/2016_jcdl_ipwb.pdf">PDF</a>, <a href="publications/alam-jcdl2016.bib">BibTeX</a>)</li>
<li><em class="me">Mat Kelly</em>, "Exploring Aggregation of Personal, Private, and Institutional Web Archives," Presented At <em>Archives Unleashed 2.0: Web Archive Datathon</em>, 2016 June 15. (<a href="http://www.cs.odu.edu/~mkelly/presentations/2016_archivesUnleashed_aggregation.pptx">PPTX</a>)</li>
<li><em class="me">Mat Kelly</em>, "A Framework for Aggregating Private and Public Web Archives," <em>Bulletin of IEEE Technical Committee on Digital Libraries (IEEE-TCDL)</em>, Vol. 11, No. 3, December 2015. (<a href="http://www.ieee-tcdl.org/Bulletin/v11n3/papers/149-Kelly.pdf">PDF</a>, <a href="publications/kelly-tcdl2015.bib">BibTeX</a>)</li>
<li><em class="me">Mat Kelly</em>, "A Framework for Aggregating Private and Public Web Archives," at the <em>ACM/IEEE Joint Conference on Digital Libraries (JCDL)</em>. Doctoral Consortium. Knoxville, TN, June 2015. (<a href="papers/2015_jcdl_aframework.pdf">PDF</a>, <a href="publications/kelly-jcdl2015.bib">BibTeX</a>)</li>
<li>Wesley Jordan, <em class="me">Mat Kelly</em>, Justin F. Brunelle, Laura Vobrak, Michele C. Weigle and Michael L. Nelson, "Mobile Mink: Merging Mobile and Desktop Archived Webs," In <em>Proceedings of the ACM/IEEE Joint Conference on Digital Libraries (JCDL)</em>. Knoxville, TN, June 2015, pp. 243-244, <em class="best">Best Poster Award</em>. (<a href="papers/2015_jcdl_mobileMink.pdf">PDF</a>, <a href="publications/jordan-jcdl2015.bib">BibTeX</a>)</li>
<li><em class="me">Mat Kelly</em>, Michael L. Nelson, and Michele C. Weigle, "Visualizing Digital Collections of Web Archives," <em>Web Archiving Collaboration: New Tools and Models</em>; 2015 June 4; New York City, NY. (<a href="presentations/2015_columbiawac_thumbnails.pptx">PPTX</a>)</li>
<li>Justin F. Brunelle, <em class="me">Mat Kelly</em>, Hany SalahEldeen, Michele C. Weigle and Michael L. Nelson, "Not All Mementos Are Created Equal: Measuring the Impact of Missing Resources," <em>International Journal of Digital Libraries (IJDL)</em>, 16(3), pp. 283-301. May 2015. (<a href="http://link.springer.com/article/10.1007/s00799-015-0150-6">article</a>, <a href="publications/brunelle-ijdl2015-damage.bib">BibTeX</a>)</li>
<li><em class="me">Mat Kelly</em>, "Facilitation of the A Posteriori Replication of Web Published Satellite Imagery", <em>Virginia Space Grant Consortium 2015 Student Research Conference</em>. 2015 April 17; Hampton, VA. (<a href="papers/2015_vsgc_imagery.pdf">PDF</a>, <a href="presentations/2015_vsgc_imagery.pptx">PPTX</a>, <a href="publications/kelly-vsgc2015.bib">BibTeX</a>)
<li>Justin F. Brunelle, <em class="me">Mat Kelly</em>, Michele C. Weigle and Michael L. Nelson, "The Impact of JavaScript on Archivability," <em>International Journal of Digital Libraries (IJDL)</em>, 15(1), pp. 95-117. January 2015. (<a href="http://link.springer.com/article/10.1007%2Fs00799-015-0140-8">article</a>, <a href="publications/brunelle-ijdl2015-impact.bib">BibTeX</a>)</li>
<li>Michael Ruffing (Old Dominion University, Norfolk, VA), Yangyang He (Clemson University, Clemson, SC), <em class="me">Mat Kelly</em> (Old Dominion University, Norfolk, VA), Jason O. Hallstrom (Clemson University, Clemson, SC), Stephan Olariu (Old Dominion University, Norfolk, VA), and Michele C. Weigle (Old Dominion University, Norfolk, VA). "A Retasking Framework For Wireless Sensor Networks," In <em>Proceedings of the IEEE Military Communications Conference (MILCOM)</em>. Baltimore, MD, 2014 October 6-8, pp. 1066-1071 (<a href="papers/2014_milcom_retasking.pdf">PDF</a>, <a href="publications/ruffing-milcom2014.bib">BibTeX</a>)</li>
<li>Justin F. Brunelle, <em class="me">Mat Kelly</em>, Hany SalahEldeen, Michele C. Weigle, and Michael L. Nelson, "Not All Mementos Are Created Equal: Measuring The Impact Of Missing Resources," In <em>Proceedings of the IEEE/ACM Joint Conference on Digital Libraries (JCDL)</em>. London, England, September 2014, pp. 321-330, <em class="best">Best Student Paper Award</em>. (<a href="http://www.cs.odu.edu/~mkelly/papers/2014_dl_damage.pdf">PDF</a>, <a href="publications/brunelle-dl2014.bib">BibTeX</a>)</li>
<li><em class="me">Mat Kelly</em>, Michael L. Nelson, and Michele C. Weigle, "The Archival Acid Test: Evaluating Archive Performance on Advanced HTML and JavaScript," In <em>Proceedings of the IEEE/ACM Joint Conference on Digital Libraries (JCDL)</em>. London, England, September 2014, pp. 25-28. (<a href="http://www.cs.odu.edu/~mkelly/papers/2014_dl_acid.pdf">PDF</a>, <a href="publications/kelly-dl2014-acid.bib">BibTeX</a>)</li>
<li><em class="me">Mat Kelly</em>, Michael L. Nelson, and Michele C. Weigle, "Mink: Integrating the Live and Archived Web Viewing Experience Using Web Browsers and Memento," In <em>Proceedings of the IEEE/ACM Joint Conference on Digital Libraries (JCDL)</em>. London, England, September 2014, pp. 469-470. (<a href="http://www.cs.odu.edu/~mkelly/papers/2014_dl_mink.pdf">PDF</a>, <a href="publications/kelly-dl2014-mink.bib">BibTeX</a>)</li>
<li>Michael L. Nelson, Scott G. Ainsworth, Justin F. Brunelle, <em class="me">Mat Kelly</em>, Hany SalahEldeen, Michele C. Weigle. "Assessing the Quality of Web Archives," <em>Digital Preservation 2014</em>, Future of Web Archiving Panel; 2014 July 23; Washington, DC. (<a href="http://www.cs.odu.edu/~mkelly/presentations/2014_digitalPreservation.ppt">PPT</a>)</li>
<li><em class="me">Mat Kelly</em>, Michael L. Nelson, and Michele C. Weigle. "Efficient Thumbnail Summarization for Web Archives," Digital Preservation 2014, Poster Session; 2014 July 22; Washington, DC. (<a href="http://www.cs.odu.edu/~mkelly/posters/2014_digpres_thumbnails.pdf">PDF</a>)</li>
<li><em class="me">Mat Kelly</em>, Justin F. Brunelle, Michele C. Weigle and Michael L. Nelson. "A Method for Identifying Personalized Representations in the Archives," <em>D-Lib Magazine</em>, 19(11/12), 2013. (<a href="http://www.dlib.org/dlib/november13/kelly/11kelly.html">article</a>, <a href="publications/kelly-dlib2013.bib">BibTeX</a>)</li>
<li><em class="me">Mat Kelly</em>. "Archive What I See Now," <em>Archive-It Partner Meeting</em>. Salt Lake City, UT, 2013 November 12. (<a href="presentations/2013_archiveItPartnerMeeting_archiveWhatISeeNow.pptx">PPTX</a>)</li>
<li><em class="me">Mat Kelly</em>, Michael L. Nelson and Michele C. Weigle. "Graph-Based Navigation of a Box Office Prediction System," In <em>Proceedings of the IEEE VIS 2013</em>. Atlanta, GA, 2013 October 13-18. (<a href="papers/2013_ieeevis_boxofficeprediction.pdf">PDF</a>, <a href="posters/2013_vis_boxoffice.pdf">Poster</a>, <a href="publications/kelly-vis2013.bib">BibTeX</a>)</li>
<li>Michael L. Nelson, Scott G. Ainsworth, Justin F. Brunelle, <em class="me">Mat Kelly</em>, Hany SalahEldeen and Michele C. Weigle. "Who Will Archive the Archives? Thoughts About the Future of Web Archiving," Wolfram Data Summit 2013. Washington, DC, 2013 September 5-6. (<a href="presentations/2013_wolframDataSumnmit_archiveTheArchives.ppt">PPT</a>)</li>
<li><em class="me">Mat Kelly</em>, Michael L. Nelson and Michele C. Weigle. "WARCreate and WAIL: WARC, Wayback and Heritrix Made Easy," <em>Digital Preservation 2013</em>, Workshops and Sessions: Web Archiving; 2013 July 24; Alexandria, VA. (<a href="http://www.cs.odu.edu/~mkelly/presentations/2013_digitalPreservation_heritrixMadeEasy.pptx">PPTX</a>)</li>
<li><em class="me">Mat Kelly</em>, Justin F. Brunelle, Michele C. Weigle and Michael L. Nelson. "On the Change in Archivability of Websites Over Time," In <em>Proceedings of the International Conference on Theory and Practice of Digital Libraries</em> (TPDL). Valletta, Malta, September 2013, pp. 35-47 (<a href="papers/2013_tpdl_archivabilityOverTime_final.pdf">PDF</a>, <a href="publications/kelly-tpdl2013.bib">BibTeX</a>)</li>
<li><em class="me">Mat Kelly</em>, Michele C. Weigle and Michael L. Nelson. "Making Enterprise-Level Archive Tools Accessible for Personal Web Archiving," <em>Personal Digital Archiving 2013</em>; 2013 February 21; College Park, MD. (<a href="posters/2013_pda_wail.pdf">PDF</a>, <a href="publications/kelly-pda2013.bib">BibTeX</a>)</li>
<li><em class="me">Mat Kelly</em>, Michele C. Weigle and Michael L. Nelson. "WARCreate - Create Wayback-Consumable WARC Files from Any Webpage," Digital Preservation 2012, Tools Demo Session: Web Archiving; 2012 July 25; Washington, DC. (<a href="presentations/2012_digitalPreservation_warcreate.pptx">PPTX</a>, <a href="presentations/2012_digitalPreservation_warcreate.zip">PPTX w/ videos</a>)</li>
<li><em class="me">Mat Kelly</em> and Michele C. Weigle, "WARCreate - Create Wayback-Consumable WARC Files from Any Webpage," In <em>Proceedings of the ACM/IEEE Joint Conference on Digital Libraries (JCDL)</em>. Washington, DC, June 2012, pp. 437-438 (<a href="papers/2012_jcdl_warcreate.pdf">PDF</a>, <a href="posters/2012_jcdl_warcreate.pdf">Poster</a>, <a href="publications/kelly-jcdl2012.bib">BibTeX</a>)</li>
<li>Thad Chee (Science Systems &amp; Applications, Inc., Hampton, VA), <em class="me">Matthew Kelly</em> (Science Systems &amp; Applications, Inc., Hampton, VA), Louis Nguyen (NASA-Langley Research Center, Hampton, VA), Patrick Minnis (NASA-Langley Research Center, Hampton, VA), Rabindra Palikonda, Douglas A. Spagenberg (Science Systems &amp; Applications, Inc., Hampton, VA), J. Kirk Ayers (Science Systems &amp; Applications, Inc., Hampton, VA). Access to Real-time and Historic Satellite Products from a Mobile Application. <em>American Geophysical Union Fall Meeting</em>; 2011 December 5-9; San Francisco, CA. (<a href="posters/2012_agu_cloudproducts.ppt">PPT</a>, <a href="publications/chee-agu2011.bib">BibTeX</a>)</li>
<li><em class="me">Mat Kelly</em>, Syed R. Rizvi, Liang Chen, Chinmay Lokesh, Stephan Olariu and Michele C. Weigle. ALERT: A Next-generation Emergency Response System for First Responders using Retasking of Wireless Sensor Networks. <em>13th Annual Tidewater Student Research Poster Session</em>; 2011 November 18; Newport News, VA. (<a href="posters/2011_cnu_alert.pdf">PDF</a>)</li>
<li><em class="me">Mat Kelly</em>, Michele C. Weigle and Michael L. Nelson. Archiving Your Facebook Pages Using Archive Facebook. NDIIPP/NDSA Partners Meeting Special Interest Session: Web Archiving; 2011 July 20; Washington, DC. (<a href="presentations/2011_ndiipp_archivefacebook.pptx">PPTX</a>)</li>
<li>David Helman (BMW Group, Greenville, SC), <em class="me">Matthew Kelly</em> (BMW Group, Greenville, SC ), Martin Guttmann (Intel Corporation, Santa Clara, CA), Bill Carter (Intel Corporation, Santa Clara, CA), Enrique Castro-Leon (Intel Corporation, Santa Clara, CA), Thomas Kellerer (Intel Corporation, Santa Clara, CA), Dror Shenkar (Intel Corporation, Santa Clara, CA). "Preserving Performance While Saving Power Using Intel Intelligent Power Node Manager and Intel Data Center Manger". December 2009 (<a href="https://software.intel.com/sites/datacentermanager/node_manager_white_paper_bmw.pdf">article</a>, <a href="papers/2009_intel_node_manager_white_paper_bmw.pdf">PDF</a>)</li>
</ul>
</section>
<section id="recognitionAndParticipation">
<h2>Recognition &amp; Participation</h2>
<ul>
<li>Invited Participant and Presenter, <a href="http://archivesunleashed.com">Archives Unleashed 2.0: Web Archive Datathon</a>, June 2016.</li>
<li>Invited Participant, <a href="http://archivesunleashed.ca">Archives Unleashed: Web Archive Hackathon</a>, March 2016.</li>
<li>Sole Presenter, Old Dominion University Department of Computer Science PhD Gathering, November 2015.</li>
<li>Best Poster for <a href="papers/2015_jcdl_mobileMink.pdf">"Mobile Mink: Merging Mobile and Desktop Archived Webs"</a> at the ACM/IEEE Joint Conference on Digital Libraries (JCDL), June 2015.</li>
<li>Best Student Paper for <a href="http://www.cs.odu.edu/~mkelly/papers/2014_dl_damage.pdf">"Not All Mementos Are Created Equal: Measuring The Impact Of Missing Resources"</a> at IEEE/ACM Digital Libraries 2014, September 2014.</li>
<li>NASA <a href="http://vsgc.odu.edu/sf/gradfellow/">Virginia Space Grant Consortium</a> <a href="http://vsgc.odu.edu/awardees/20142015/">Graduate Fellow</a>, August 2014.</li>
<li><a href="http://www.cs.odu.edu/~mkelly/presentations/2014_pesUniversity_browserBasedDigitalPreservation.pptx">Doctoral Student Presenter</a>, "Browser-Based Digital Preservation" for Visiting <a href="http://pes.edu/">PES University</a> Students, Old Dominion University, July 2014.</li>
<li><a href="http://www.cs.odu.edu/~mkelly/presentations/2013_cs595_movieExplorer.pptx">Guest Presenter</a>, CS595 - Intro to Web Science, Old Dominion University, October 2013.</li>
<li><a href="http://blogs.loc.gov/digitalpreservation/2012/08/warcreate-and-future-stewardship-an-interview-with-mat-kelly/">Featured Interviewee</a>, The Signal Digital Preservation Blog, August 2012.</li>
<li><a href="http://cs.harding.edu/wac-workshop2012/participants.html">Participant</a>, Web Archiving Cooperative (WAC) Summer Workshop, June 2012.</li>
<li><a href="http://blogs.loc.gov/digitalpreservation/2012/06/announcing-five-ndsa-innovation-award-winners/">Future Steward Innovation Award Recipient</a>, National Digital Stewardship Alliance (NDSA) / Library of Congress, July 2012.</li>
<li><a href="http://www.cs.odu.edu/show_features.shtml?64">Featured Grad Student</a>, Old Dominion University Computer Science Department, June 2012.</li>
<li>Reviewer, Joint Conference on Digital Libraries (JCDL) 2012, March 2012.</li>
</ul>
</section>
<section id="teaching">
<h2>Teaching</h2>
<ul>
<li class="oduphd">Spring 2015: <a href="http://www.cs.odu.edu/~mkelly/semester/2015_spring/cs418/">CS418 - Web Programming</a></li>
</ul>
</section>
<section id="courseworkHistory">
<h2>Coursework History</h2>
<ul>
<li class="oduphd">Summer 2016
<ul>
<li>CS899 - Doctoral Dissertation (<a href="http://www.cs.odu.edu/~mweigle/">Dr. Michele C. Weigle</a>)</li>
</ul>
</li>
<li class="oduphd">Spring 2016
<ul>
<li>CS899 - Doctoral Dissertation (<a href="http://www.cs.odu.edu/~mweigle/">Dr. Michele C. Weigle</a>)</li>
</ul>
</li>
<li class="oduphd">Fall 2015
<ul>
<li>CS899 - Doctoral Dissertation (<a href="http://www.cs.odu.edu/~mweigle/">Dr. Michele C. Weigle</a>)</li>
</ul>
</li>
<li class="oduphd">Summer 2015
<ul>
<li>CS899 - Doctoral Dissertation (<a href="http://www.cs.odu.edu/~mweigle/">Dr. Michele C. Weigle</a>)</li>
</ul>
</li>
<li class="oduphd">Spring 2015
<ul>
<li>CS899 - Doctoral Dissertation (<a href="http://www.cs.odu.edu/~mweigle/">Dr. Michele C. Weigle</a>)</li>
</ul>
</li>
<li class="oduphd">Fall 2014
<ul>
<li>CS899 - Doctoral Dissertation (<a href="http://www.cs.odu.edu/~mweigle/">Dr. Michele C. Weigle</a>)</li>
</ul>
</li>
<li class="oduphd">Summer 2014
<ul>
<li>CS899 - Doctoral Dissertation (<a href="http://www.cs.odu.edu/~mweigle/">Dr. Michele C. Weigle</a>)</li>
</ul>
</li>
<li class="oduphd">Spring 2014
<ul>
<li>CS899 - Doctoral Dissertation (<a href="http://www.cs.odu.edu/~mweigle/">Dr. Michele C. Weigle</a>)</li>
</ul>
</li>
<li class="oduphd">Fall 2013
<ul>
<li>CS595 - <a href="http://www.cs.odu.edu/~mln/teaching/cs595-f13/">Introduction to Web Science</a> (<a href="http://www.cs.odu.edu/~mln/">Dr. Michael L. Nelson</a>)</li>
<li>CS899 - Doctoral Dissertation (<a href="http://www.cs.odu.edu/~mweigle/">Dr. Michele C. Weigle</a>)</li>
<li>CS690 - Colloquium</li>
</ul>
</li>
<li class="oduphd">Summer 2013
<ul>
<li>CS891 - Graduate Seminar (<a href="http://www.cs.odu.edu/~mweigle/">Dr. Michele C. Weigle</a>)</li>
<li>CS690 - Colloquium</li>
</ul>
</li>
<li class="oduphd">Spring 2013
<ul>
<li>CS895 - <a href="http://www.cs.odu.edu/~mweigle/CS795-S13/Home">Applied Visual Analytics</a> (<a href="http://www.cs.odu.edu/~mweigle/">Dr. Michele C. Weigle</a>)
<ul>
<li>Project: You're Gonna Die: Diet Edition (<a href="http://www.cs.odu.edu/~mkelly/semester/2013_spring/project1/finalReport.pdf">report</a>, <a href="http://www.cs.odu.edu/~mkelly/semester/2013_spring/project1/">visualization</a>)</li>
<li>Project: Box Office Movie Rating and Take Prediction (<a href="http://www.cs.odu.edu/~mkelly/semester/2013_spring/project2/CS895S13P2_FinalReport_Kelly.pdf">report</a>, <a href="http://www.cs.odu.edu/~mkelly/semester/2013_spring/project2/">visualization</a>)</li>
</ul>
</li>
</ul>
</li>
<li class="oduphd">Fall 2012
<ul>
<li>CS895 - <a href="http://www.cs.odu.edu/~mweigle/CS795-F12/Home">Information Visualization</a> (<a href="http://www.cs.odu.edu/~mweigle/">Dr. Michele C. Weigle</a>)
<ul>
<li>Project: <a href="http://www.cs.odu.edu/~mkelly/cs795f12/final/finalReport.pdf">BibT<sub class="texE">e</sub>X Corpus Visualizer</a></li>
</ul>
</li>
<li>CS895 - <a href="http://www.cs.odu.edu/~olariu/cs795-f-2012.html">Topics: Adventures in Sensor Networks</a> (<a href="http://www.cs.odu.edu/~olariu/">Dr. Stephan Olariu</a>)<ul>
<li><a href="http://www.cs.odu.edu/~mkelly/semester/2012_fall/cs895SensorNetworks/CS895_midTermPresentation_matKelly.pdf">Presentation</a> of <a href="http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=5585658">a recent paper on sensor networks</a></li>
<li>Project/Presentation: <a href="http://www.cs.odu.edu/~mkelly/semester/2012_fall/cs895SensorNetworks/CS895_projectPresentation_matKelly.pdf">Runtime Reprogramming on TinyOS Sans Deluge Modifications</a></li>
</ul></li>
</ul></li>
<li class="odu">Summer 2012<ul>
<li>CS891 - Graduate Seminar (<a href="http://www.cs.odu.edu/~mweigle/">Dr. Michele C. Weigle</a>)</li>
</ul>
<li class="odu">Spring 2012<ul>
<li>CS896 - Topics in Computer Science (<a href="http://www.cs.odu.edu/~mln/">Dr. Michael L. Nelson</a>)</li>
<li>CS699 - Thesis Research (<a href="http://www.cs.odu.edu/~mweigle/">Dr. Michele C. Weigle</a> &amp; <a href="http://www.cs.odu.edu/~mln/">Dr. Michael L. Nelson</a>)<ul>
<li>Defense Presentation: <a href="http://www.cs.odu.edu/~mkelly/semester/2012_summer/thesis_presentation.pptx">An Extensible Framework for Creating Personal Web Archives of Content Behind Authentication</a></li>
<li>Thesis: <a href="http://www.cs.odu.edu/~mweigle/papers/kelly-thesis-12.pdf">An Extensible Framework for Creating Personal Archives of Web Resources Requiring Authentication</a></li></ul>
</li>
</ul>
</li>
<li class="odu">Fall 2011<ul>
<li>CS895 - <a href="http://www.cs.odu.edu/~olariu/cs795-895-sm.html">Topics: Stochastic Modeling Performance Evaluation</a> (<a href="http://www.cs.odu.edu/~olariu/">Dr. Stephan Olariu</a>)<ul>
<li>Presentation: <a href="http://www.cs.odu.edu/~mkelly/semester/2011_fall/cs895_stochasticModeling_midtermPresentation.pdf">Midterm Presentation on a chosen Stochastic Modeling Problem</a></li>
<li>Presentation: <a href="http://www.cs.odu.edu/~mkelly/semester/2011_fall/cs895_stochasticModeling_finalPresentation.pdf">Stochastic Modeling Paper</a></li>
</ul></li>
<li>CS895 - <a href="http://www.cs.odu.edu/~mln/teaching/cs895-f11/">Topics: Web-based Information Retrieval</a> (<a href="http://www.cs.odu.edu/~mln/">Dr. Michael L. Nelson</a>)<ul>
<li>Presentation: <a href="http://www.cs.odu.edu/~mkelly/semester/2011_fall/cs895_informationRetrieval_presentation1.pptx">Evaluation and Relation</a> of a <a href="http://quod.lib.umich.edu/j/jep/3336451.0007.104?view=text;rgn=main" title="The Deep Web: Surfacing Hidden Value by Michael K. Bergman">Seminal Paper</a> and a <a href="http://web.eecs.umich.edu/~michjc/papers/cafarella-webscale-sigmodrecord08.pdf" title="Web-Scale Extraction of Structured Data by Michael J. Cafarella, Jayant Madhavan &amp; Alon Halevy">Followup Paper</a></li>
<li>Presentation: <a href="http://www.cs.odu.edu/~mkelly/semester/2011_fall/cs895_informationRetrieval_presentation2.pptx">Evaluation and Relation</a> of a <a href="http://www.aclweb.org/anthology/A88-1019.pdf" title="A Stochastic Parts Program and Noun Phrase Parser for Unrestricted Text by Kenneth Ward Church">Seminal Paper</a> and a <a href="http://www.aclweb.org/anthology/E93-1046" title="Ambiguity Resolution In A Reductionist Parser by Atro Voutilainen &amp; Pasi Tapanainen">Followup Paper</a></li>
<li>Presentation: <a href="http://www.cs.odu.edu/~mkelly/semester/2011_fall/cs895_informationRetrieval_presentation3.pptx">Evaluation and Relation</a> of a <a href="http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=5392672&amp;abstractAccess=no&amp;userType=inst" title="The Automatic Creation of Literature Abstracts by H. P. Luhn">Seminal Paper</a> and a <a href="http://dl.acm.org/citation.cfm?id=215333" title="A Trainable Document Summarizer by Julian Kupiec, Jan Pedersen &amp; Francine Chen">Followup Paper</a></li>
<li>Presentation: <a href="http://www.cs.odu.edu/~mkelly/semester/2011_fall/cs895_informationRetrieval_presentation4.pptx">Evaluation and Relation</a> of a <a href="http://www.aaai.org/ojs/index.php/aimagazine/article/viewArticle/1294" title="Question Answering from Frequently Asked Question Files by Robin D. Burke, Kristian J Hammond, Valdimir Kulyukin, Steven L. Lytinen, Noriko Tomurom &amp; Scott Schoenberg">Seminal Paper</a> and a <a href="http://dl.acm.org/citation.cfm?id=1099572" title="Finding Similar Questions in large Question and Answer Archives by Jiwoon Jeon, W. Bruce Croft and Joon Ho Lee">Followup Paper</a></li>
</ul></li>
<li>CS699 - Thesis Research (<a href="http://www.cs.odu.edu/~mweigle/">Dr. Michele C. Weigle</a>)</li>
<li>CS690 - Colloquium</li></ul>
</li>
<li class="odu">Summer 2011<ul>
<li>CS697 - Independent Study In CS (<a href="http://www.cs.odu.edu/~mweigle/">Dr. Michele C. Weigle</a>)<ul>
<li><a href="http://www.cs.odu.edu/~mkelly/semester/2011_summer/independent_study_report.pdf">Report on work done</a></li>
<li>Project: <a href="https://web.archive.org/web/20110831021613/http://hcil.cs.umd.edu/localphp/hcil/vast11/">IEEE VAST Challenge</a> 2011 (<a href="http://matkelly.com/projects/VAST2011/">submission</a>) (<a href="http://www.cs.odu.edu/~mkelly/semester/2011_summer/submission_review_vast.txt">results</a>)</li>
<li>Investigation of <a href="http://docs.tinyos.net/index.php/Deluge_T2">Deluge T2</a> on <a href="https://github.com/tinyos/tinyos-main">TinyOS</a>-based motes for project in Fall 2011</li>
<li>Validation of <a href="http://www.cs.odu.edu/~mweigle/papers/tmix-nsdoc.pdf">Tmix</a> for ns-2 and porting of delaybox for <a href="http://www.nsnam.org/">ns-3</a></li>
<li>Initial investigation of <a href="https://en.wikipedia.org/wiki/Universal_Software_Radio_Peripheral">USRP</a>s for <a href="http://www.cs.odu.edu/~nadeem/">Dr. Tamer Nadeem</a>. Ongoing into Fall 2011.</li>
<li>Further programming of <a href="https://github.com/machawk1/archivefacebook">Archive Facebook</a> for <a href="http://www.cs.odu.edu/~mln/">Dr. Michael L. Nelson</a>/<a href="http://ws-dl.blogspot.com">Web Science and Digital Libraries Research Group</a>.<ul>
<li>Presentation: <a href="http://www.cs.odu.edu/~mkelly/archivefb/presentation.pptx">Archive Facebook</a> at NDIIPP/NDSA Partner Meetup in Washington, DC (<a href="http://ws-dl.blogspot.com/2011/07/2011-07-25-ndsandiipp-partner-meetup.html">blog post</a>)</li></ul>
</li></ul>
</li>
</ul></li>
<li class="odu">Spring 2011<ul>
<li>CS665 - <a href="http://www.cs.odu.edu/~olariu/cs665.html">Computer Architecture</a> (<a href="http://www.cs.odu.edu/~olariu/">Dr. Stephan Olariu</a>)<ul>
<li><a href="https://github.com/machawk1/scoreboarding">Project: An illustration of Scoreboarding dynamics</a></li></ul>
</li>
<li>CS695 - <!--<a href="http://www.cs.odu.edu/~yaohang/cs695/">-->Topics: Monte Carlo Simulation<!--</a>--> (<a href="http://www.cs.odu.edu/~yaohang/">Dr. Yaohang Li</a>)<ul>
<li><a href="http://www.cs.odu.edu/~mkelly/semester/2011_spring/cs695_montecarlosimulation_20110426_paper.docx">Paper</a>/<a href="http://www.cs.odu.edu/~mkelly/semester/2011_spring/cs695_montecarlosimulation_20110412_presentation.pptx">Presentation</a>: Simulated Annealing and N Generals as applied to a Synchronized Distributed Operation</li></ul>
</li>
</ul></li>
<li class="odu">Fall 2010
<ul>
<li>CS600 - Algorithms and Data Structures (Dr. Desh Ranjan)</li>
<li>CS795 - Topics: Machine Learning (<a href="http://www.cs.odu.edu/~zeil/">Dr. Steven J. Zeil</a>)
<ul>
<li>Paper/Presentation: A Subjectivity Free Analysis and Predictive Scheme for Ranking College Football Teams Using Perceptrons</li>
</ul>
</li>
</ul>
</li>
<li class="citadel">Spring 2009
<ul>
<li>CSCI603 - Object-Oriented Design Patterns (Dr. Christopher W. Starr)
<ul>
<li>Project: Object-Oriented Design Patterns in OCaml</li>
</ul>
</li>
<li>CSCI618 - <!--<a href="http://macs.citadel.edu/rudolphg/csci618/091/index.html">-->Programming Languages<!--</a>--> (<a href="http://www.mathcs.citadel.edu/rudolphg/">Dr. George Rudolph</a>)<ul>
<li>Project: <a href="http://csci618.matkelly.com/">An Exploration of OCaml</a></li></ul>
</li>
</ul></li>
<li class="citadel">Fall 2008<ul>
<li>CSCI602 - Foundations of Software Engineering (<a href="http://www.mathcs.citadel.edu/rudolphg/">Dr. George Rudolph</a>)<ul>
<li>Projects: Extensive Documentation for the open source <a href="http://spaz.ca/cronometer/">CRON-O-Meter</a> Project</li></ul>
</li>
<li>CSCI601 - Data Modeling and Database Design (<a href="http://www.cs.cofc.edu/~bowring/">Dr. Jim Bowring</a>)</li>
</ul></li>
<li class="citadel">Spring 2008<ul>
<li>CSCI616 - Automata (<a href="http://www.cs.cofc.edu/~mccauley/">Dr. Ren&eacute;e McCauley</a>)</li>
</ul></li>
<li class="uf">Spring 2006<ul>
<li>EEL4744C - Microprocessor Applications (<a href="http://www.ece.ufl.edu/users/gugel-karl">Dr. Karl Gugel</a>)</li>
</ul></li>
<li class="uf">Fall 2005<ul>
<li>CAP4800 - Systems Simulation (<a href="http://www.cise.ufl.edu/~fishwick/">Dr. Paul Fishwick</a>)<ul>
<li>Project: Deadlocked Philosophers, a simulation illustrating the Dining Philosophers and Resource Deadlock ideas</li></ul>
</li>
<li>CIS4914 - Senior Project (<a href="http://www.cise.ufl.edu/~mssz/">Dr. Mark S. Schmalz</a>, <a href="http://www.cise.ufl.edu/~dts/">Dave Small</a>)<ul>
<li>Project: "<a href="https://sourceforge.net/projects/ufseniorproject/">Project: Bob</a>" - a team-based rapidly developed networked 3-D turn-based strategy game.</li></ul>
</li>
<li>COT4501 - Numerical Analysis - A Computational Approach (<a href="http://www.math.ufl.edu/~rs/">Dr. Rick L. Smith</a>)</li>
</ul></li>
<li class="uf">Summer 2005<ul>
<li>GEO1010 - Geography for a Changing World</li>
<li>CEN4500C - Computer Networking Fundamentals (<a href="http://www.cise.ufl.edu/~dts/">Dave Small</a>)</li>
<li>ENC1102 - Argument and Persuasion</li>
<li>STA4321 - Introduction to Probability</li>
</ul></li>
<li class="uf">Spring 2005<ul>
<li>CEN3031 - Introduction to Software Engineering (<a href="http://www.cise.ufl.edu/~tyavuz/">Dr. Tuba Yavuz</a>)</li>
<li>COP4600 - Operating Systems (Dr. Rob Cubert)</li>
<li>WIS2040 - Wildlife Issues</li>
</ul></li>
<li class="uf">Fall 2004<ul>
<li>PHY2054 - Physics 2</li>
<li>MAS3114 - Computational Linear Algebra</li>
</ul></li>
<li class="uf">Summer 2004<ul>
<li>CDA3101 - Introduction to Computer Organization</li>
<li>COP3530 - Data Structures and Algorithms (<a href="http://www.cise.ufl.edu/~sahni/">Dr. Sartaj K. Sahni</a>)</li>
</ul></li>
<li class="uf">Spring 2004<ul>
<li>EEL3701C - <a href="http://mil.ufl.edu/4744/">Digital Logic and Computer Systems</a> (<a href="http://www.mil.ufl.edu/~ems/">Dr. Eric M. Schwartz</a>)</li>
<li>PHY4320 - Philosophy of Mind (<a href="http://www.clas.ufl.edu/users/gwitmer/">Dr. D. Gene Witmer</a>)</li>
<li>SPN1131 - Beginning Spanish 2</li>
</ul></li>
<li class="uf">Fall 2003<ul>
<li>PHI3130 - Symbolic Logic (<a href="http://faculty.arts.ubc.ca/maydede/">Dr. Murat Aydede</a>)</li>
<li>SPN1130 - Beginning Spanish 1</li>
</ul></li>
<li class="uf">Summer 2003<ul>
<li>COT3100 - Applied Discrete Structures</li>
<li>PHY2049L - Physics 2 Lab</li>
</ul></li>
<li class="uf">Spring 2003<ul>
<li>ENC2210 - Technical Writing</li>
<li>PHI3500 - Metaphysics (<a href="http://www.clas.ufl.edu/users/gwitmer/">Dr. D. Gene Witmer</a>)<ul>
<li>Paper: Redefenere Universalia - a proposed solution of the identification of universals through correlating the understanding of universals with Flat Landers</li></ul>
</li>
<li>PHY2048 - Physics 1</li>
<li>POS2041 - American Federal Government</li>
</ul></li>
<li class="uf">Fall 2002<ul>
<li>BSC2008 - Biological Sciences: Evolution, Ecology and Behavior</li>
<li>MAC2312 - Calculus 2</li>
<li>PHI2630 - Contemporary Moral Issues</li>
</ul></li>
<li class="uf">Summer 2002<ul>
<li>MAC2313 - Calculus 3</li>
<li>PHY2048L - Physics 1 Lab</li>
</ul></li>
<li class="uf">Spring 2002<ul>
<li>CGS2414 - Computer Programming Using Java (<a href="http://www.cise.ufl.edu/~pjd/">Peter J. Dobbins</a>)</li>
<li>CIS3020 - Advanced Programming Fundamentals/Intro to CIS</li>
</ul></li>
<li class="uf">Fall 2001<ul>
<li>CHM2045L - Chemistry 1 Lab</li>
<li>ENC1101 - Expositional and Argumentative Writing</li>
<li>MAC2311 - Calculus 1</li>
</ul></li>
<li>Spring 2001<ul>
<li>CHM2030 - Introduction to College Chemistry 1</li>
<li>CHM2030L - Introduction to College Chemistry 1 Lab</li>
</ul></li>
</ul>
<h3>Coursework Key</h3>
<ul>
<li class="oduphd">Doctor of Philosophy, Computer Science; Old Dominion University, Norfolk, Virginia, Expected 2016</li>
<li class="odu">Master of Science, Computer Science; Old Dominion University, Norfolk, Virginia, August 2012</li>
<li class="citadel">Coursework for Master of Science, Computer Science; The Citadel, Charleston, South Carolina</li>
<li class="uf">Bachelor of Science, Computer Science; University of Florida, Gainesville, Florida, June 2006</li>
</ul>
</section>
<section id="projects">
<h2>Recent Software Projects</h2>
<ul>
<li><a href="https://github.com/oduwsdl/ipwb"><em>Interplanetary Wayback (ipwb)</em></a> - Partition and integration of WARCs into IPFS for more redundant and persistent web archives</li>
<li><a href="https://github.com/thing342/mobilememento"><em>Mobile Mink</em></a> - Android application for aggregating and accessing mobile and desktop mementos</li>
<li><a href="https://github.com/machawk1/mink"><em>Mink</em></a> - Chrome extension to integrate the live and archived web using Memento</li>
<li><a href="https://github.com/machawk1/tachyon"><em>Tachyon</em></a> - Time travel for the web. Memento browser plugin for Google Chrome</li>
<li><a href="http://matkelly.com/wail"><em>Web Archiving Integration Layer (WAIL)</em></a> - One-Click User Instigated Preservation</li>
<li><a href="http://matkelly.com/warcreate"><em>WARCreate</em></a> - Google Chrome extension to allow a user to create a Web ARCive (WARC) file from any webpage.</li>
<li><a href="http://www.cs.odu.edu/~mkelly/reversearchiveit/reverseArchiveIt05102011.crx"><em>Reverse Archive-It</em></a> - Quick prototype to determine the collections to which a webpage has been associated by <a href="https://archive-it.org">Archive-It</a>. (<a href="http://www.cs.odu.edu/~mkelly/reversearchiveit/reverseArchiveItDemo.avi">video demo</a>)</li>
<li><a href="https://addons.mozilla.org/en-US/firefox/addon/archivefacebook/"><em>ArchiveFacebook</em></a> - Mozilla Firefox add-on to allow a user to easily download and save the contents of his/her Facebook profile.</li>
</ul>
</section>
<section id="contact">
<h2>Contact</h2>
<ul>
<li>mkelly at cs.odu.edu (E-mail)</li>
<li><a href="https://twitter.com/machawk1" rel="me">@machawk1</a> (Twitter)</li>
<li><a href="https://github.com/machawk1" rel="me">GitHub</a></li>
<li><a href="http://orcid.org/0000-0002-0236-7389">orcid:0000-0002-0236-7389</a></li>
</ul>
<p>Further information including employment history can be found at <a href="http://matkelly.com" rel="me">matkelly.com</a></p>
</section>
</body>
</html>
WARC/1.0
WARC-Type: request
WARC-Target-URI: http://www.cs.odu.edu/~mkelly/
WARC-Date: 2016-08-15T21:19:34Z
WARC-Concurrent-To: <urn:uuid:cff684e0-9204-4cdc-a4ac-d523f2e2d5f7>
WARC-Record-ID: <urn:uuid:c7f75672-d1e6-4cd4-9a68-cdbe3a1a6a4a>
Content-Type: application/http; msgtype=request
Content-Length: 271
GET /~mkelly/ HTTP/1.0
Connection: Close
Referer: http://matkelly.com/
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Host: www.cs.odu.edu
User-Agent: Mozilla/5.0 (compatible; heritrix/3.3.0-SNAPSHOT-20160708-0038 +http://yourdomain.com)
WARC/1.0
WARC-Type: metadata
WARC-Target-URI: http://www.cs.odu.edu/~mkelly/
WARC-Date: 2016-08-15T21:19:34Z
WARC-Concurrent-To: <urn:uuid:cff684e0-9204-4cdc-a4ac-d523f2e2d5f7>
WARC-Record-ID: <urn:uuid:3163185e-8d42-4ca3-be91-092becfb2516>
Content-Type: application/warc-fields
Content-Length: 12224
seed:
fetchTimeMs: 337
charsetForLinkExtraction: UTF-8
usingCharsetInHTML: UTF-8
outlink: http://www.cs.odu.edu/favicon.ico I =INFERRED_MISC
outlink: http://www.cs.odu.edu/~mkelly/_js/html5shiv.js E script/@src
outlink: http://www.cs.odu.edu/~mkelly/style.css E link/@href
outlink: https://plus.google.com/u/0/103717513886594190386 E link/@href
outlink: http://www.cs.odu.edu/~mkelly/_js/html2canvas.js E script/@src
outlink: http://www.cs.odu.edu/~mkelly/ L a/@href
outlink: http://www.cs.odu.edu/~mkelly/mofro.png E img/@src
outlink: http://matkelly.com/cv L a/@href
outlink: http://warcreate.com/ L a/@href
outlink: http://matkelly.com/wail L a/@href
outlink: https://github.com/machawk1/mink L a/@href
outlink: http://www.neh.gov/divisions/odh/grant-news/announcing-seven-digital-humanities-implementation-grants-july-2014 L a/@href
outlink: http://github.com/oduwsdl/ipwb L a/@href
outlink: http://www.cs.odu.edu/~mkelly/papers/2016_jcdl_ipwb.pdf L a/@href
outlink: http://www.cs.odu.edu/~mkelly/publications/alam-jcdl2016.bib L a/@href
outlink: http://www.cs.odu.edu/~mkelly/presentations/2016_archivesUnleashed_aggregation.pptx L a/@href
outlink: http://www.ieee-tcdl.org/Bulletin/v11n3/papers/149-Kelly.pdf L a/@href
outlink: http://www.cs.odu.edu/~mkelly/publications/kelly-tcdl2015.bib L a/@href
outlink: http://www.cs.odu.edu/~mkelly/papers/2015_jcdl_aframework.pdf L a/@href
outlink: http://www.cs.odu.edu/~mkelly/publications/kelly-jcdl2015.bib L a/@href
outlink: http://www.cs.odu.edu/~mkelly/papers/2015_jcdl_mobileMink.pdf L a/@href
outlink: http://www.cs.odu.edu/~mkelly/publications/jordan-jcdl2015.bib L a/@href
outlink: http://www.cs.odu.edu/~mkelly/presentations/2015_columbiawac_thumbnails.pptx L a/@href
outlink: http://link.springer.com/article/10.1007/s00799-015-0150-6 L a/@href
outlink: http://www.cs.odu.edu/~mkelly/publications/brunelle-ijdl2015-damage.bib L a/@href
outlink: http://www.cs.odu.edu/~mkelly/papers/2015_vsgc_imagery.pdf L a/@href
outlink: http://www.cs.odu.edu/~mkelly/presentations/2015_vsgc_imagery.pptx L a/@href
outlink: http://www.cs.odu.edu/~mkelly/publications/kelly-vsgc2015.bib L a/@href
outlink: http://link.springer.com/article/10.1007%2Fs00799-015-0140-8 L a/@href
outlink: http://www.cs.odu.edu/~mkelly/publications/brunelle-ijdl2015-impact.bib L a/@href
outlink: http://www.cs.odu.edu/~mkelly/papers/2014_milcom_retasking.pdf L a/@href
outlink: http://www.cs.odu.edu/~mkelly/publications/ruffing-milcom2014.bib L a/@href
outlink: http://www.cs.odu.edu/~mkelly/papers/2014_dl_damage.pdf L a/@href
outlink: http://www.cs.odu.edu/~mkelly/publications/brunelle-dl2014.bib L a/@href
outlink: http://www.cs.odu.edu/~mkelly/papers/2014_dl_acid.pdf L a/@href
outlink: http://www.cs.odu.edu/~mkelly/publications/kelly-dl2014-acid.bib L a/@href
outlink: http://www.cs.odu.edu/~mkelly/papers/2014_dl_mink.pdf L a/@href
outlink: http://www.cs.odu.edu/~mkelly/publications/kelly-dl2014-mink.bib L a/@href
outlink: http://www.cs.odu.edu/~mkelly/presentations/2014_digitalPreservation.ppt L a/@href
outlink: http://www.cs.odu.edu/~mkelly/posters/2014_digpres_thumbnails.pdf L a/@href
outlink: http://www.dlib.org/dlib/november13/kelly/11kelly.html L a/@href
outlink: http://www.cs.odu.edu/~mkelly/publications/kelly-dlib2013.bib L a/@href
outlink: http://www.cs.odu.edu/~mkelly/presentations/2013_archiveItPartnerMeeting_archiveWhatISeeNow.pptx L a/@href
outlink: http://www.cs.odu.edu/~mkelly/papers/2013_ieeevis_boxofficeprediction.pdf L a/@href
outlink: http://www.cs.odu.edu/~mkelly/posters/2013_vis_boxoffice.pdf L a/@href
outlink: http://www.cs.odu.edu/~mkelly/publications/kelly-vis2013.bib L a/@href
outlink: http://www.cs.odu.edu/~mkelly/presentations/2013_wolframDataSumnmit_archiveTheArchives.ppt L a/@href
outlink: http://www.cs.odu.edu/~mkelly/presentations/2013_digitalPreservation_heritrixMadeEasy.pptx L a/@href
outlink: http://www.cs.odu.edu/~mkelly/papers/2013_tpdl_archivabilityOverTime_final.pdf L a/@href
outlink: http://www.cs.odu.edu/~mkelly/publications/kelly-tpdl2013.bib L a/@href
outlink: http://www.cs.odu.edu/~mkelly/posters/2013_pda_wail.pdf L a/@href
outlink: http://www.cs.odu.edu/~mkelly/publications/kelly-pda2013.bib L a/@href
outlink: http://www.cs.odu.edu/~mkelly/presentations/2012_digitalPreservation_warcreate.pptx L a/@href
outlink: http://www.cs.odu.edu/~mkelly/presentations/2012_digitalPreservation_warcreate.zip L a/@href
outlink: http://www.cs.odu.edu/~mkelly/papers/2012_jcdl_warcreate.pdf L a/@href
outlink: http://www.cs.odu.edu/~mkelly/posters/2012_jcdl_warcreate.pdf L a/@href
outlink: http://www.cs.odu.edu/~mkelly/publications/kelly-jcdl2012.bib L a/@href
outlink: http://www.cs.odu.edu/~mkelly/posters/2012_agu_cloudproducts.ppt L a/@href
outlink: http://www.cs.odu.edu/~mkelly/publications/chee-agu2011.bib L a/@href
outlink: http://www.cs.odu.edu/~mkelly/posters/2011_cnu_alert.pdf L a/@href
outlink: http://www.cs.odu.edu/~mkelly/presentations/2011_ndiipp_archivefacebook.pptx L a/@href
outlink: https://software.intel.com/sites/datacentermanager/node_manager_white_paper_bmw.pdf L a/@href
outlink: http://www.cs.odu.edu/~mkelly/papers/2009_intel_node_manager_white_paper_bmw.pdf L a/@href
outlink: http://archivesunleashed.com/ L a/@href
outlink: http://archivesunleashed.ca/ L a/@href
outlink: http://vsgc.odu.edu/sf/gradfellow/ L a/@href
outlink: http://vsgc.odu.edu/awardees/20142015/ L a/@href
outlink: http://www.cs.odu.edu/~mkelly/presentations/2014_pesUniversity_browserBasedDigitalPreservation.pptx L a/@href
outlink: http://pes.edu/ L a/@href
outlink: http://www.cs.odu.edu/~mkelly/presentations/2013_cs595_movieExplorer.pptx L a/@href
outlink: http://blogs.loc.gov/digitalpreservation/2012/08/warcreate-and-future-stewardship-an-interview-with-mat-kelly/ L a/@href
outlink: http://cs.harding.edu/wac-workshop2012/participants.html L a/@href
outlink: http://blogs.loc.gov/digitalpreservation/2012/06/announcing-five-ndsa-innovation-award-winners/ L a/@href
outlink: http://www.cs.odu.edu/show_features.shtml?64 L a/@href
outlink: http://www.cs.odu.edu/~mkelly/semester/2015_spring/cs418/ L a/@href
outlink: http://www.cs.odu.edu/~mweigle/ L a/@href
outlink: http://www.cs.odu.edu/~mln/teaching/cs595-f13/ L a/@href
outlink: http://www.cs.odu.edu/~mln/ L a/@href
outlink: http://www.cs.odu.edu/~mweigle/CS795-S13/Home L a/@href
outlink: http://www.cs.odu.edu/~mkelly/semester/2013_spring/project1/finalReport.pdf L a/@href
outlink: http://www.cs.odu.edu/~mkelly/semester/2013_spring/project1/ L a/@href
outlink: http://www.cs.odu.edu/~mkelly/semester/2013_spring/project2/CS895S13P2_FinalReport_Kelly.pdf L a/@href
outlink: http://www.cs.odu.edu/~mkelly/semester/2013_spring/project2/ L a/@href
outlink: http://www.cs.odu.edu/~mweigle/CS795-F12/Home L a/@href
outlink: http://www.cs.odu.edu/~mkelly/cs795f12/final/finalReport.pdf L a/@href
outlink: http://www.cs.odu.edu/~olariu/cs795-f-2012.html L a/@href
outlink: http://www.cs.odu.edu/~olariu/ L a/@href
outlink: http://www.cs.odu.edu/~mkelly/semester/2012_fall/cs895SensorNetworks/CS895_midTermPresentation_matKelly.pdf L a/@href
outlink: http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=5585658 L a/@href
outlink: http://www.cs.odu.edu/~mkelly/semester/2012_fall/cs895SensorNetworks/CS895_projectPresentation_matKelly.pdf L a/@href
outlink: http://www.cs.odu.edu/~mkelly/semester/2012_summer/thesis_presentation.pptx L a/@href
outlink: http://www.cs.odu.edu/~mweigle/papers/kelly-thesis-12.pdf L a/@href
outlink: http://www.cs.odu.edu/~olariu/cs795-895-sm.html L a/@href
outlink: http://www.cs.odu.edu/~mkelly/semester/2011_fall/cs895_stochasticModeling_midtermPresentation.pdf L a/@href
outlink: http://www.cs.odu.edu/~mkelly/semester/2011_fall/cs895_stochasticModeling_finalPresentation.pdf L a/@href
outlink: http://www.cs.odu.edu/~mln/teaching/cs895-f11/ L a/@href
outlink: http://www.cs.odu.edu/~mkelly/semester/2011_fall/cs895_informationRetrieval_presentation1.pptx L a/@href
outlink: http://quod.lib.umich.edu/j/jep/3336451.0007.104?view=text;rgn=main L a/@href
outlink: http://web.eecs.umich.edu/~michjc/papers/cafarella-webscale-sigmodrecord08.pdf L a/@href
outlink: http://www.cs.odu.edu/~mkelly/semester/2011_fall/cs895_informationRetrieval_presentation2.pptx L a/@href
outlink: http://www.aclweb.org/anthology/A88-1019.pdf L a/@href
outlink: http://www.aclweb.org/anthology/E93-1046 L a/@href
outlink: http://www.cs.odu.edu/~mkelly/semester/2011_fall/cs895_informationRetrieval_presentation3.pptx L a/@href
outlink: http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=5392672&abstractAccess=no&userType=inst L a/@href
outlink: http://dl.acm.org/citation.cfm?id=215333 L a/@href
outlink: http://www.cs.odu.edu/~mkelly/semester/2011_fall/cs895_informationRetrieval_presentation4.pptx L a/@href
outlink: http://www.aaai.org/ojs/index.php/aimagazine/article/viewArticle/1294 L a/@href
outlink: http://dl.acm.org/citation.cfm?id=1099572 L a/@href
outlink: http://www.cs.odu.edu/~mkelly/semester/2011_summer/independent_study_report.pdf L a/@href
outlink: https://web.archive.org/web/20110831021613/http://hcil.cs.umd.edu/localphp/hcil/vast11/ L a/@href
outlink: http://matkelly.com/projects/VAST2011/ L a/@href
outlink: http://www.cs.odu.edu/~mkelly/semester/2011_summer/submission_review_vast.txt L a/@href
outlink: http://docs.tinyos.net/index.php/Deluge_T2 L a/@href
outlink: https://github.com/tinyos/tinyos-main L a/@href
outlink: http://www.cs.odu.edu/~mweigle/papers/tmix-nsdoc.pdf L a/@href
outlink: http://www.nsnam.org/ L a/@href
outlink: https://en.wikipedia.org/wiki/Universal_Software_Radio_Peripheral L a/@href
outlink: http://www.cs.odu.edu/~nadeem/ L a/@href
outlink: https://github.com/machawk1/archivefacebook L a/@href
outlink: http://ws-dl.blogspot.com/ L a/@href
outlink: http://www.cs.odu.edu/~mkelly/archivefb/presentation.pptx L a/@href
outlink: http://ws-dl.blogspot.com/2011/07/2011-07-25-ndsandiipp-partner-meetup.html L a/@href
outlink: http://www.cs.odu.edu/~olariu/cs665.html L a/@href
outlink: https://github.com/machawk1/scoreboarding L a/@href
outlink: http://www.cs.odu.edu/~yaohang/ L a/@href
outlink: http://www.cs.odu.edu/~mkelly/semester/2011_spring/cs695_montecarlosimulation_20110426_paper.docx L a/@href
outlink: http://www.cs.odu.edu/~mkelly/semester/2011_spring/cs695_montecarlosimulation_20110412_presentation.pptx L a/@href
outlink: http://www.cs.odu.edu/~zeil/ L a/@href
outlink: http://www.mathcs.citadel.edu/rudolphg/ L a/@href
outlink: http://csci618.matkelly.com/ L a/@href
outlink: http://spaz.ca/cronometer/ L a/@href
outlink: http://www.cs.cofc.edu/~bowring/ L a/@href
outlink: http://www.cs.cofc.edu/~mccauley/ L a/@href
outlink: http://www.ece.ufl.edu/users/gugel-karl L a/@href
outlink: http://www.cise.ufl.edu/~fishwick/ L a/@href
outlink: http://www.cise.ufl.edu/~mssz/ L a/@href
outlink: http://www.cise.ufl.edu/~dts/ L a/@href
outlink: https://sourceforge.net/projects/ufseniorproject/ L a/@href
outlink: http://www.math.ufl.edu/~rs/ L a/@href
outlink: http://www.cise.ufl.edu/~tyavuz/ L a/@href
outlink: http://www.cise.ufl.edu/~sahni/ L a/@href
outlink: http://mil.ufl.edu/4744/ L a/@href
outlink: http://www.mil.ufl.edu/~ems/ L a/@href
outlink: http://www.clas.ufl.edu/users/gwitmer/ L a/@href
outlink: http://faculty.arts.ubc.ca/maydede/ L a/@href
outlink: http://www.cise.ufl.edu/~pjd/ L a/@href
outlink: https://github.com/oduwsdl/ipwb L a/@href
outlink: https://github.com/thing342/mobilememento L a/@href
outlink: https://github.com/machawk1/tachyon L a/@href
outlink: http://matkelly.com/warcreate L a/@href
outlink: http://www.cs.odu.edu/~mkelly/reversearchiveit/reverseArchiveIt05102011.crx L a/@href
outlink: https://archive-it.org/ L a/@href
outlink: http://www.cs.odu.edu/~mkelly/reversearchiveit/reverseArchiveItDemo.avi L a/@href
outlink: https://addons.mozilla.org/en-US/firefox/addon/archivefacebook/ L a/@href
outlink: https://twitter.com/machawk1 L a/@href
outlink: https://github.com/machawk1 L a/@href
outlink: http://orcid.org/0000-0002-0236-7389 L a/@href
outlink: http://matkelly.com/ L a/@href
WARC/1.0
WARC-Type: response
WARC-Target-URI: dns:plus.google.com
WARC-Date: 2016-08-15T21:19:35Z
WARC-IP-Address: 127.0.1.1
WARC-Record-ID: <urn:uuid:53dad764-d9d4-49e4-bce9-25f35b11f0f0>
Content-Type: text/dns
Content-Length: 261
20160815211935
plus.google.com. 300 IN A 64.233.176.113
plus.google.com. 300 IN A 64.233.176.101
plus.google.com. 300 IN A 64.233.176.100
plus.google.com. 300 IN A 64.233.176.138
plus.google.com. 300 IN A 64.233.176.139
plus.google.com. 300 IN A 64.233.176.102
WARC/1.0
WARC-Type: response
WARC-Target-URI: http://www.cs.odu.edu/favicon.ico
WARC-Date: 2016-08-15T21:19:38Z
WARC-IP-Address: 128.82.4.2
WARC-Payload-Digest: sha1:REFT5WMTCAKQ5YGE5FHA2OTTESAAL4CS
WARC-Record-ID: <urn:uuid:1387faf9-65f3-4c18-9cff-b349554e0ff1>
Content-Type: application/http; msgtype=response
Content-Length: 1453
HTTP/1.1 200 OK
Server: nginx
Date: Mon, 15 Aug 2016 21:19:38 GMT
Content-Type: image/x-icon
Content-Length: 1150
Last-Modified: Sun, 12 Jan 2014 02:50:23 GMT
Connection: close
ETag: "52d202ef-47e"
Expires: Thu, 10 Aug 2017 21:19:38 GMT
Cache-Control: max-age=31104000
Accept-Ranges: bytes
\00\00\00\00\00\00\00 \00h\00\00\00\00\00(\00\00\00\00\00\00 \00\00\00\00 \00\00\00\00\00\00\00\00\00 \00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00_+\00�_+\00�_+\00�_+\00�_+\00�_+\00�_+\00�_+\00�_+\00�_+\00�_+\00�_+\00�_+\00�_+\00�\00\00\00\00\00\00\00\00_+\00�_+\00�_+\00�_+\00�_+\00�_+\00�_+\00�_+\00�_+\00�_+\00�_+\00�_+\00�_+\00�_+\00�\00\00\00\00\00\00\00\00\00\00\00\00����̼��\00\00\00\00���������ɿ��ɿ���������\00\00\00\00̼������\00\00\00\00\00\00\00\00\00\00\00\00����}R0��������i8��ɿ��mP��z`��ɿ�i8��������}R0�����\00\00\00\00\00\00\00\00�z`�_+\00���p�}R0�_+\00�¯��_+\00�_+\00�¯��_+\00�}R0���p�_+\00��z`�\00\00\00\00\00\00\00\00_+\00�_+\00�}R0�_+\00�_+\00��`@�_+\00�_+\00��`@�_+\00�_+\00��`@�_+\00�_+\00�\00\00\00\00\00\00\00\00i8�_+\00��mP�_+\00�_+\00��mP�_+\00�_+\00��mP�_+\00�_+\00��mP�_+\00�i8�\00\00\00\00\00\00\00\00�����ɿ����������ɿ�\00\00\00\00�`@��`@�\00\00\00\00�ɿ����������ɿ�����\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00�`@��`@�\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00_+\00�_+\00�_+\00�\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00_+\00�_+\00�_+\00�\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00_+\00�\00\00\00\00\00\00\00\00\00\00\00\00_+\00�\00\00\00\00\00\00\00\00_+\00�\00\00\00\00\00\00\00\00\00\00\00\00_+\00�\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00_+\00�\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00_+\00�\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00_+\00�\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00_+\00�_+\00�_+\00�\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00_+\00�\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00_+\00�\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00_+\00�\00\00\00\00\00\00\00\00\00\00\00\00_+\00�\00\00\00\00\00\00\00\00_+\00�\00\00\00\00\00\00\00\00\00\00\00\00_+\00�\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00_+\00�_+\00�_+\00�\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00_+\00�_+\00�_+\00�\00\00\00\00\00\00\00\00\00\00\00\00�\00\00�\00\00�\00\00�\00\00�\00\00�\00\00�\00\00�A\00\00�\00\00��\00\00ݻ\00\00��\00\00��\00\00߿\00\00ݻ\00\00����
WARC/1.0
WARC-Type: request
WARC-Target-URI: http://www.cs.odu.edu/favicon.ico
WARC-Date: 2016-08-15T21:19:38Z
WARC-Concurrent-To: <urn:uuid:1387faf9-65f3-4c18-9cff-b349554e0ff1>
WARC-Record-ID: <urn:uuid:b2bb8b91-2fe6-4550-9c53-9381a29da549>
Content-Type: application/http; msgtype=request
Content-Length: 284
GET /favicon.ico HTTP/1.0
Connection: Close
Referer: http://www.cs.odu.edu/~mkelly/
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Host: www.cs.odu.edu
User-Agent: Mozilla/5.0 (compatible; heritrix/3.3.0-SNAPSHOT-20160708-0038 +http://yourdomain.com)
WARC/1.0
WARC-Type: metadata
WARC-Target-URI: http://www.cs.odu.edu/favicon.ico
WARC-Date: 2016-08-15T21:19:38Z
WARC-Concurrent-To: <urn:uuid:1387faf9-65f3-4c18-9cff-b349554e0ff1>
WARC-Record-ID: <urn:uuid:4b4b4080-80dc-4572-b3f8-5320434caba6>
Content-Type: application/warc-fields
Content-Length: 174
via: http://www.cs.odu.edu/~mkelly/
hopsFromSeed: RI
fetchTimeMs: 107
charsetForLinkExtraction: ISO-8859-1
outlink: http://www.cs.odu.edu/favicon.ico I =INFERRED_MISC
WARC/1.0
WARC-Type: response
WARC-Target-URI: https://plus.google.com/robots.txt
WARC-Date: 2016-08-15T21:19:38Z
WARC-IP-Address: 64.233.176.113
WARC-Payload-Digest: sha1:O7YMEOY3DDQM4URABDQBDY4C4DJHUBJK
WARC-Record-ID: <urn:uuid:8846a58c-71ef-41d6-bbf9-fd135b37cbc5>
Content-Type: application/http; msgtype=response
Content-Length: 1674
HTTP/1.0 200 OK
Content-Type: text/plain; charset=utf-8
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: Mon, 01 Jan 1990 00:00:00 GMT
Date: Mon, 15 Aug 2016 21:19:38 GMT
Strict-Transport-Security: max-age=10886400
P3P: CP="This is not a P3P policy! See https://support.google.com/accounts/answer/151657?hl=en for more info."
Content-Security-Policy: report-uri /_/PlusAppUi/cspreport;script-src 'unsafe-inline' 'self' 'unsafe-eval' https://apis.google.com https://ssl.gstatic.com https://www.google.com https://www.gstatic.com https://s.ytimg.com https://www.googleapis.com https://support.google.com https://youtube.com https://youtube.googleapis.com
Server: ESF
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
X-Content-Type-Options: nosniff
Set-Cookie: NID=84=SbG6NcKHHuYZpCXMX6jSaM7dyTI2lLh0SEiu-lU6fRUj9H3GEpYPSUf9G51MqYIfal8D5dhRzZ-a_IqnLh1bZ5buLRhsADH2XwQNGdgq9tFvPifPYO5Ym_LYjL59lL75;Domain=.google.com;Path=/;Expires=Tue, 14-Feb-2017 21:19:38 GMT;HttpOnly
Alternate-Protocol: 443:quic
Alt-Svc: quic=":443"; ma=2592000; v="36,35,34,33,32,31,30"
Accept-Ranges: none
Vary: Accept-Encoding
User-agent: *
Allow: /_/PlusAppUi/
Allow: /_/apps-static/
Allow: /_/blank
Allow: /_/data
Allow: /_/explore
Allow: /_/im/_widget/render/
Allow: /_/initialdata
Allow: /_/scs/
Allow: /_/setbrowserprefs
Allow: /_/socialgraph/lookup/hovercards
Allow: /_/stream
Allow: /_/widget/render/
Disallow: /_/
Disallow: /s/
Disallow: /app/basic/s/
Disallow: /up/accesssuspended
Sitemap: http://www.gstatic.com/s2/sitemaps/profiles-sitemap.xml
Sitemap: http://www.gstatic.com/communities/sitemap/communities-sitemap.xml
WARC/1.0
WARC-Type: request
WARC-Target-URI: https://plus.google.com/robots.txt
WARC-Date: 2016-08-15T21:19:38Z
WARC-Concurrent-To: <urn:uuid:8846a58c-71ef-41d6-bbf9-fd135b37cbc5>
WARC-Record-ID: <urn:uuid:463cf5dc-fe50-4e88-a339-9d2f88fec9d1>
Content-Type: application/http; msgtype=request
Content-Length: 243
GET /robots.txt HTTP/1.0
Connection: Close
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Host: plus.google.com
User-Agent: Mozilla/5.0 (compatible; heritrix/3.3.0-SNAPSHOT-20160708-0038 +http://yourdomain.com)
WARC/1.0
WARC-Type: metadata
WARC-Target-URI: https://plus.google.com/robots.txt
WARC-Date: 2016-08-15T21:19:38Z
WARC-Concurrent-To: <urn:uuid:8846a58c-71ef-41d6-bbf9-fd135b37cbc5>
WARC-Record-ID: <urn:uuid:11abc173-ebc8-43b4-9413-47e98a6eb2be>
Content-Type: application/warc-fields
Content-Length: 205
force-fetch:
via: https://plus.google.com/u/0/103717513886594190386
hopsFromSeed: REP
fetchTimeMs: 233
charsetForLinkExtraction: UTF-8
outlink: https://plus.google.com/favicon.ico I =INFERRED_MISC
WARC/1.0
WARC-Type: response
WARC-Target-URI: http://www.cs.odu.edu/~mkelly/_js/html5shiv.js
WARC-Date: 2016-08-15T21:19:41Z
WARC-IP-Address: 128.82.4.2
WARC-Payload-Digest: sha1:N3RVIFLVBNI52ZNGKIOR3WI2XI7CV2BI
WARC-Record-ID: <urn:uuid:6f108a29-89df-48ab-966c-ba529bce7524>
Content-Type: application/http; msgtype=response
Content-Length: 2648
HTTP/1.1 200 OK
Server: nginx
Date: Mon, 15 Aug 2016 21:19:41 GMT
Content-Type: application/javascript
Content-Length: 2380
Connection: close
Last-Modified: Tue, 06 Aug 2013 14:41:32 GMT
ETag: "94c-4e3486bc3ff10"
Accept-Ranges: bytes
Vary: Accept-Encoding
/*
HTML5 Shiv v3.6.2 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
*/
(function(l,f){function m(){var a=e.elements;return"string"==typeof a?a.split(" "):a}function i(a){var b=n[a[o]];b||(b={},h++,a[o]=h,n[h]=b);return b}function p(a,b,c){b||(b=f);if(g)return b.createElement(a);c||(c=i(b));b=c.cache[a]?c.cache[a].cloneNode():r.test(a)?(c.cache[a]=c.createElem(a)).cloneNode():c.createElem(a);return b.canHaveChildren&&!s.test(a)?c.frag.appendChild(b):b}function t(a,b){if(!b.cache)b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag();
a.createElement=function(c){return!e.shivMethods?b.createElem(c):p(c,a,b)};a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+m().join().replace(/\w+/g,function(a){b.createElem(a);b.frag.createElement(a);return'c("'+a+'")'})+");return n}")(e,b.frag)}function q(a){a||(a=f);var b=i(a);if(e.shivCSS&&!j&&!b.hasCSS){var c,d=a;c=d.createElement("p");d=d.getElementsByTagName("head")[0]||d.documentElement;c.innerHTML="x<style>article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}</style>";
c=d.insertBefore(c.lastChild,d.firstChild);b.hasCSS=!!c}g||t(a,b);return a}var k=l.html5||{},s=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,r=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,j,o="_html5shiv",h=0,n={},g;(function(){try{var a=f.createElement("a");a.innerHTML="<xyz></xyz>";j="hidden"in a;var b;if(!(b=1==a.childNodes.length)){f.createElement("a");var c=f.createDocumentFragment();b="undefined"==typeof c.cloneNode||
"undefined"==typeof c.createDocumentFragment||"undefined"==typeof c.createElement}g=b}catch(d){g=j=!0}})();var e={elements:k.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup main mark meter nav output progress section summary time video",version:"3.6.2",shivCSS:!1!==k.shivCSS,supportsUnknownElements:g,shivMethods:!1!==k.shivMethods,type:"default",shivDocument:q,createElement:p,createDocumentFragment:function(a,b){a||(a=f);if(g)return a.createDocumentFragment();
for(var b=b||i(a),c=b.frag.cloneNode(),d=0,e=m(),h=e.length;d<h;d++)c.createElement(e[d]);return c}};l.html5=e;q(f)})(this,document);
WARC/1.0
WARC-Type: request
WARC-Target-URI: http://www.cs.odu.edu/~mkelly/_js/html5shiv.js
WARC-Date: 2016-08-15T21:19:41Z
WARC-Concurrent-To: <urn:uuid:6f108a29-89df-48ab-966c-ba529bce7524>
WARC-Record-ID: <urn:uuid:862cbc31-66a5-44a0-a5da-55390ce0f071>
Content-Type: application/http; msgtype=request
Content-Length: 297
GET /~mkelly/_js/html5shiv.js HTTP/1.0
Connection: Close
Referer: http://www.cs.odu.edu/~mkelly/
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Host: www.cs.odu.edu
User-Agent: Mozilla/5.0 (compatible; heritrix/3.3.0-SNAPSHOT-20160708-0038 +http://yourdomain.com)
WARC/1.0
WARC-Type: metadata
WARC-Target-URI: http://www.cs.odu.edu/~mkelly/_js/html5shiv.js
WARC-Date: 2016-08-15T21:19:41Z
WARC-Concurrent-To: <urn:uuid:6f108a29-89df-48ab-966c-ba529bce7524>
WARC-Record-ID: <urn:uuid:e332725f-c77d-43f2-92a6-c5fc3244155f>
Content-Type: application/warc-fields
Content-Length: 174
via: http://www.cs.odu.edu/~mkelly/
hopsFromSeed: RE
fetchTimeMs: 141
charsetForLinkExtraction: ISO-8859-1
outlink: http://www.cs.odu.edu/favicon.ico I =INFERRED_MISC
WARC/1.0
WARC-Type: response
WARC-Target-URI: https://plus.google.com/u/0/103717513886594190386
WARC-Date: 2016-08-15T21:19:41Z
WARC-IP-Address: 64.233.176.113
WARC-Payload-Digest: sha1:3I42H3S6NNFQ2MSVX7XZKYAYSCX5QBYJ
WARC-Record-ID: <urn:uuid:4005c3c7-64f3-4aee-a02a-294210ccef5d>
Content-Type: application/http; msgtype=response
Content-Length: 488
HTTP/1.0 302 Found
Content-Type: application/binary
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: Mon, 01 Jan 1990 00:00:00 GMT
Date: Mon, 15 Aug 2016 21:19:41 GMT
Location: https://plus.google.com/103717513886594190386
Server: ESF
Content-Length: 0
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
X-Content-Type-Options: nosniff
Alternate-Protocol: 443:quic
Alt-Svc: quic=":443"; ma=2592000; v="36,35,34,33,32,31,30"
WARC/1.0
WARC-Type: request
WARC-Target-URI: https://plus.google.com/u/0/103717513886594190386
WARC-Date: 2016-08-15T21:19:41Z
WARC-Concurrent-To: <urn:uuid:4005c3c7-64f3-4aee-a02a-294210ccef5d>
WARC-Record-ID: <urn:uuid:bd4f1d45-bba4-4dbf-91da-e664908a4043>
Content-Type: application/http; msgtype=request
Content-Length: 444
GET /u/0/103717513886594190386 HTTP/1.0
Connection: Close
Referer: http://www.cs.odu.edu/~mkelly/
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Host: plus.google.com
User-Agent: Mozilla/5.0 (compatible; heritrix/3.3.0-SNAPSHOT-20160708-0038 +http://yourdomain.com)
Cookie: NID=84=SbG6NcKHHuYZpCXMX6jSaM7dyTI2lLh0SEiu-lU6fRUj9H3GEpYPSUf9G51MqYIfal8D5dhRzZ-a_IqnLh1bZ5buLRhsADH2XwQNGdgq9tFvPifPYO5Ym_LYjL59lL75
WARC/1.0
WARC-Type: metadata
WARC-Target-URI: https://plus.google.com/u/0/103717513886594190386
WARC-Date: 2016-08-15T21:19:41Z
WARC-Concurrent-To: <urn:uuid:4005c3c7-64f3-4aee-a02a-294210ccef5d>
WARC-Record-ID: <urn:uuid:dfc7abca-0025-42ec-af73-fe06b527eda7>
Content-Type: application/warc-fields
Content-Length: 244
via: http://www.cs.odu.edu/~mkelly/
hopsFromSeed: RE
fetchTimeMs: 143
charsetForLinkExtraction: ISO-8859-1
outlink: https://plus.google.com/103717513886594190386 R Location:
outlink: https://plus.google.com/favicon.ico I =INFERRED_MISC
WARC/1.0
WARC-Type: response
WARC-Target-URI: http://www.cs.odu.edu/~mkelly/style.css
WARC-Date: 2016-08-15T21:19:44Z
WARC-IP-Address: 128.82.4.2
WARC-Payload-Digest: sha1:MCRPDMX7QG6EXZBUQPUOTBUJMG2XT3AP
WARC-Record-ID: <urn:uuid:e0cafe0b-6b19-47f3-acc5-29b06968ca1b>
Content-Type: application/http; msgtype=response
Content-Length: 5044
HTTP/1.1 200 OK
Server: nginx
Date: Mon, 15 Aug 2016 21:19:45 GMT
Content-Type: text/css
Content-Length: 4789
Connection: close
Last-Modified: Thu, 03 Dec 2015 03:16:04 GMT
ETag: "12b5-525f5cf9de503"
Accept-Ranges: bytes
Vary: Accept-Encoding
body {background-color: white; font-size: 16px;}
header{font-family: sans-serif; margin-bottom: 1.0em;}
h1 {color: #031fc9;}
h1,h2,h3 {margin: 0; padding: 0;}
section {width: 80%;}
img#mugShot {width: 200px; padding: 2px; border: 1px solid #003366; position: fixed; right: 5px; top: 5px; z-index: 2;}
li.uf {list-style-image: url(bullet_uf.png);}
li.odu {list-style-image: url(bullet_odu.png);}
li.citadel {list-style-image: url(bullet_citadel.png);}
li.oduphd {list-style-image: url(bullet_oduphd.png);}
ul li ul li {list-style-image: none;} /* only show icon for semesters, not courses */
a {color: #031fc9;}
nav {position: fixed; right: 5px; top: 205px; text-align: center; z-index: 2;}
nav ul {list-style-type: none; width: 206px; }
nav ul#sections li {margin: 0; padding: 0; border-bottom: 1px dashed #003366;}
nav ul#sections li a {text-decoration: none; color: #031fc9; font-weight: bold; font-family: sans-serif; font-size: 0.8em; display: block;}
nav ul#sections li a:hover {color: white; background-color: #031fc9;}
nav ul#software {list-style-type: none; width: 70%; text-align: center; padding-left: 20px; display: block;}
nav ul#software li {float: left;}
nav ul#software li a {border: 0; display: block;}
nav ul#software li a img {width: 50px;}
nav ul li#cv {margin-top: 2.0em; font-size: 2.0em; border: 0;}
nav ul li#cv a {border: 1px solid #031fc9; border-radius: 10px; background-color: rgba(255,255,255,0.8);}
em.me {font-weight: bolder; font-style: normal;}
em.best {font-weight: bolder; color: red;}
#openMenu {display: none;}
/* Adapted from http://stackoverflow.com/questions/8160514/is-there-css-for-typesetting-the-latex-logo-in-html */
sub.texE {text-transform: uppercase; vertical-align: -0.5ex; margin-left: -0.1667em; margin-right: -0.125em; font-size: 1em; }
a.goToTop {display: none;}
@media only screen and (-webkit-device-pixel-ratio:1.5) {
/*img#mugShot {position: relative; top: auto; right: auto;}
nav {position: relative; text-align: left; top: auto; right: auto;}
nav ul {margin: 0; padding: 0;}
header {margin-bottom: 0;}*/
}
@media only screen and (-webkit-device-pixel-ratio:1.5) and (min-width: 400px){
/*nav {top: 5px; left: 250px; right: auto; position: absolute;}
nav ul {list-style-type: disc; font-size: 1.25em;}
nav ul li {border-width: 0; width: 300px;}*/
}
@media only screen and (min-width: 100px) and (max-width: 650px) {
img#mugShot {position: relative; top: auto; right: auto; margin: 0 auto; display: block;}
header h1, header h2, header h3 {text-align: center;}
h1 {margin-top: 0.25em;}
h2 {width: 100%; white-space: nowrap; font-size: 1.25em;}
h3 {font-size: 0.8em;}
ul, li {padding-left: 0; margin-left: 0; width: 100%;}
nav {position: relative; text-align: left; top: auto; right: auto;}
nav ul#sections {margin: 1.0em 0 1.0em 0; padding: 0; width: 100%;}
nav ul#sections li {border-bottom: none; background-color: white; border-bottom: 1px solid #ddd;}
nav ul#sections:first-child {border-top: 1px solid #ddd;}
nav ul#sections li a {text-decoration: none; padding: 2px 0px;}
header {margin-bottom: 0;}
a.goToTop {display: inline; margin-left: 1.0em; font-size: 0.8em; color: white; background-color: blue; text-decoration: none; font-family: sans-serif; white-space: nowrap;}
section ul {list-style-type: none; margin-left: 0;}
section ul li {margin-bottom: 1.0em;}
section#courseworkHistory ul {list-style-type: disc; margin-left: 1.0em;}
section#courseworkHistory ul ul li {margin-bottom: 0;}
.pinned {background: linear-gradient(to bottom, rgba(255,255,255,1) 80%,rgba(255,255,255,0) 100%); position: fixed; z-index: 3; top: 0; width: 100%; padding-bottom: 1.5em;}
.pinned h1, .pinned h2, .pinned h3 {font-size: 1.0em; width: 100%;}
.pinned h2 {font-size: 0.8em;}
.pinned h3 {font-size: 0.6em;}
.pinned img#mugShot {position: absolute; width: 50px; height: 50px; left: 0px; top: 5px; border: 1px solid #031fc9; padding: 0;}
.pinned img#openMenu {z-index: 99;position: absolute; width: 24px; height: 24px; right: 0px; top: 5px; border: 1px solid #031fc9; padding: 0;}
nav.vertical {position: fixed; top: 10px; right: 5px; z-index: 100; }
nav.vertical ul#sections {}
nav.vertical li {transform: rotate(90deg); position: relative; clear: both; float: left; width: 115px; display: block; font-size: 1.0em; height: 115px; }
nav.vertical li a {height: 2.0em;}
nav.vertical ul#sections li {background-color: transparent; text-align: center;}
nav.vertical ul#sections:first-child {padding-left: 100px;}
section {position: relative; z-index: 2;}
nav ul li#cv {font-size: 1.0em; margin-top: 1.0em; border: 0; text-align center;}
nav ul li#cv a:before{content: '⇩ DOWNLOAD ';}
}
WARC/1.0
WARC-Type: request
WARC-Target-URI: http://www.cs.odu.edu/~mkelly/style.css
WARC-Date: 2016-08-15T21:19:44Z
WARC-Concurrent-To: <urn:uuid:e0cafe0b-6b19-47f3-acc5-29b06968ca1b>
WARC-Record-ID: <urn:uuid:333c4c6f-669c-470b-8260-07ba3b980b2d>
Content-Type: application/http; msgtype=request
Content-Length: 290
GET /~mkelly/style.css HTTP/1.0
Connection: Close
Referer: http://www.cs.odu.edu/~mkelly/
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Host: www.cs.odu.edu
User-Agent: Mozilla/5.0 (compatible; heritrix/3.3.0-SNAPSHOT-20160708-0038 +http://yourdomain.com)
WARC/1.0
WARC-Type: metadata
WARC-Target-URI: http://www.cs.odu.edu/~mkelly/style.css
WARC-Date: 2016-08-15T21:19:44Z
WARC-Concurrent-To: <urn:uuid:e0cafe0b-6b19-47f3-acc5-29b06968ca1b>
WARC-Record-ID: <urn:uuid:0f1218a0-4583-42e2-896b-06b2bb0151ba>
Content-Type: application/warc-fields
Content-Length: 456
via: http://www.cs.odu.edu/~mkelly/
hopsFromSeed: RE
fetchTimeMs: 288
charsetForLinkExtraction: ISO-8859-1
outlink: http://www.cs.odu.edu/favicon.ico I =INFERRED_MISC
outlink: http://www.cs.odu.edu/~mkelly/bullet_uf.png E =EMBED_MISC
outlink: http://www.cs.odu.edu/~mkelly/bullet_odu.png E =EMBED_MISC
outlink: http://www.cs.odu.edu/~mkelly/bullet_citadel.png E =EMBED_MISC
outlink: http://www.cs.odu.edu/~mkelly/bullet_oduphd.png E =EMBED_MISC
WARC/1.0
WARC-Type: response
WARC-Target-URI: https://plus.google.com/103717513886594190386
WARC-Date: 2016-08-15T21:19:44Z
WARC-IP-Address: 64.233.176.113
WARC-Payload-Digest: sha1:3I42H3S6NNFQ2MSVX7XZKYAYSCX5QBYJ
WARC-Record-ID: <urn:uuid:b7188818-087b-4874-b34e-a0e383d7eb14>
Content-Type: application/http; msgtype=response
Content-Length: 512
HTTP/1.0 302 Found
Content-Type: application/binary
x-ua-compatible: IE=edge, chrome=1
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: Mon, 01 Jan 1990 00:00:00 GMT
Date: Mon, 15 Aug 2016 21:19:45 GMT
Location: https://plus.google.com/+MatKelly
Server: ESF
Content-Length: 0
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
X-Content-Type-Options: nosniff
Alternate-Protocol: 443:quic
Alt-Svc: quic=":443"; ma=2592000; v="36,35,34,33,32,31,30"
WARC/1.0
WARC-Type: request
WARC-Target-URI: https://plus.google.com/103717513886594190386
WARC-Date: 2016-08-15T21:19:44Z
WARC-Concurrent-To: <urn:uuid:b7188818-087b-4874-b34e-a0e383d7eb14>
WARC-Record-ID: <urn:uuid:c9b98037-c2f7-40d4-957d-6917bcbddcbd>
Content-Type: application/http; msgtype=request
Content-Length: 459
GET /103717513886594190386 HTTP/1.0
Connection: Close
Referer: https://plus.google.com/u/0/103717513886594190386
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Host: plus.google.com
User-Agent: Mozilla/5.0 (compatible; heritrix/3.3.0-SNAPSHOT-20160708-0038 +http://yourdomain.com)
Cookie: NID=84=SbG6NcKHHuYZpCXMX6jSaM7dyTI2lLh0SEiu-lU6fRUj9H3GEpYPSUf9G51MqYIfal8D5dhRzZ-a_IqnLh1bZ5buLRhsADH2XwQNGdgq9tFvPifPYO5Ym_LYjL59lL75
WARC/1.0
WARC-Type: metadata
WARC-Target-URI: https://plus.google.com/103717513886594190386
WARC-Date: 2016-08-15T21:19:44Z
WARC-Concurrent-To: <urn:uuid:b7188818-087b-4874-b34e-a0e383d7eb14>
WARC-Record-ID: <urn:uuid:abd00b08-61a9-43aa-b199-5457bbea84e1>
Content-Type: application/warc-fields
Content-Length: 252
via: https://plus.google.com/u/0/103717513886594190386
hopsFromSeed: RER
fetchTimeMs: 656
charsetForLinkExtraction: ISO-8859-1
outlink: https://plus.google.com/+MatKelly R Location:
outlink: https://plus.google.com/favicon.ico I =INFERRED_MISC
WARC/1.0
WARC-Type: response
WARC-Target-URI: http://www.cs.odu.edu/~mkelly/_js/html2canvas.js
WARC-Date: 2016-08-15T21:19:48Z
WARC-IP-Address: 128.82.4.2
WARC-Payload-Digest: sha1:K6X3TJQ6TVADTLVTMV2ZQGHFWNSLM46K
WARC-Record-ID: <urn:uuid:b6b64687-da90-4e9e-9cc0-fe213dfc74ec>
Content-Type: application/http; msgtype=response
Content-Length: 91758
HTTP/1.1 200 OK
Server: nginx
Date: Mon, 15 Aug 2016 21:19:48 GMT
Content-Type: application/javascript
Content-Length: 91487
Connection: close
Last-Modified: Thu, 16 Oct 2014 14:43:30 GMT
ETag: "1655f-5058b459c0891"
Accept-Ranges: bytes
Vary: Accept-Encoding
/*
html2canvas 0.4.1 <http://html2canvas.hertzen.com>
Copyright (c) 2013 Niklas von Hertzen
Released under MIT License
*/
(function(window, document, undefined){
"use strict";
var _html2canvas = {},
previousElement,
computedCSS,
html2canvas;
_html2canvas.Util = {};
_html2canvas.Util.log = function(a) {
if (_html2canvas.logging && window.console && window.console.log) {
window.console.log(a);
}
};
_html2canvas.Util.trimText = (function(isNative){
return function(input) {
return isNative ? isNative.apply(input) : ((input || '') + '').replace( /^\s+|\s+$/g , '' );
};
})(String.prototype.trim);
_html2canvas.Util.asFloat = function(v) {
return parseFloat(v);
};
(function() {
// TODO: support all possible length values
var TEXT_SHADOW_PROPERTY = /((rgba|rgb)\([^\)]+\)(\s-?\d+px){0,})/g;
var TEXT_SHADOW_VALUES = /(-?\d+px)|(#.+)|(rgb\(.+\))|(rgba\(.+\))/g;
_html2canvas.Util.parseTextShadows = function (value) {
if (!value || value === 'none') {
return [];
}
// find multiple shadow declarations
var shadows = value.match(TEXT_SHADOW_PROPERTY),
results = [];
for (var i = 0; shadows && (i < shadows.length); i++) {
var s = shadows[i].match(TEXT_SHADOW_VALUES);
results.push({
color: s[0],
offsetX: s[1] ? s[1].replace('px', '') : 0,
offsetY: s[2] ? s[2].replace('px', '') : 0,
blur: s[3] ? s[3].replace('px', '') : 0
});
}
return results;
};
})();
_html2canvas.Util.parseBackgroundImage = function (value) {
var whitespace = ' \r\n\t',
method, definition, prefix, prefix_i, block, results = [],
c, mode = 0, numParen = 0, quote, args;
var appendResult = function(){
if(method) {
if(definition.substr( 0, 1 ) === '"') {
definition = definition.substr( 1, definition.length - 2 );
}
if(definition) {
args.push(definition);
}
if(method.substr( 0, 1 ) === '-' &&
(prefix_i = method.indexOf( '-', 1 ) + 1) > 0) {
prefix = method.substr( 0, prefix_i);
method = method.substr( prefix_i );
}
results.push({
prefix: prefix,
method: method.toLowerCase(),
value: block,
args: args
});
}
args = []; //for some odd reason, setting .length = 0 didn't work in safari
method =
prefix =
definition =
block = '';
};
appendResult();
for(var i = 0, ii = value.length; i<ii; i++) {
c = value[i];
if(mode === 0 && whitespace.indexOf( c ) > -1){
continue;
}
switch(c) {
case '"':
if(!quote) {
quote = c;
}
else if(quote === c) {
quote = null;
}
break;
case '(':
if(quote) { break; }
else if(mode === 0) {
mode = 1;
block += c;
continue;
} else {
numParen++;
}
break;
case ')':
if(quote) { break; }
else if(mode === 1) {
if(numParen === 0) {
mode = 0;
block += c;
appendResult();
continue;
} else {
numParen--;
}
}
break;
case ',':
if(quote) { break; }
else if(mode === 0) {
appendResult();
continue;
}
else if (mode === 1) {
if(numParen === 0 && !method.match(/^url$/i)) {
args.push(definition);
definition = '';
block += c;
continue;
}
}
break;
}
block += c;
if(mode === 0) { method += c; }
else { definition += c; }
}
appendResult();
return results;
};
_html2canvas.Util.Bounds = function (element) {
var clientRect, bounds = {};
if (element.getBoundingClientRect){
clientRect = element.getBoundingClientRect();
// TODO add scroll position to bounds, so no scrolling of window necessary
bounds.top = clientRect.top;
bounds.bottom = clientRect.bottom || (clientRect.top + clientRect.height);
bounds.left = clientRect.left;
bounds.width = element.offsetWidth;
bounds.height = element.offsetHeight;
}
return bounds;
};
// TODO ideally, we'd want everything to go through this function instead of Util.Bounds,
// but would require further work to calculate the correct positions for elements with offsetParents
_html2canvas.Util.OffsetBounds = function (element) {
var parent = element.offsetParent ? _html2canvas.Util.OffsetBounds(element.offsetParent) : {top: 0, left: 0};
return {
top: element.offsetTop + parent.top,
bottom: element.offsetTop + element.offsetHeight + parent.top,
left: element.offsetLeft + parent.left,
width: element.offsetWidth,
height: element.offsetHeight
};
};
function toPX(element, attribute, value ) {
var rsLeft = element.runtimeStyle && element.runtimeStyle[attribute],
left,
style = element.style;
// Check if we are not dealing with pixels, (Opera has issues with this)
// Ported from jQuery css.js
// From the awesome hack by Dean Edwards
// http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291
// If we're not dealing with a regular pixel number
// but a number that has a weird ending, we need to convert it to pixels
if ( !/^-?[0-9]+\.?[0-9]*(?:px)?$/i.test( value ) && /^-?\d/.test(value) ) {
// Remember the original values
left = style.left;
// Put in the new values to get a computed value out
if (rsLeft) {
element.runtimeStyle.left = element.currentStyle.left;
}
style.left = attribute === "fontSize" ? "1em" : (value || 0);
value = style.pixelLeft + "px";
// Revert the changed values
style.left = left;
if (rsLeft) {
element.runtimeStyle.left = rsLeft;
}
}
if (!/^(thin|medium|thick)$/i.test(value)) {
return Math.round(parseFloat(value)) + "px";
}
return value;
}
function asInt(val) {
return parseInt(val, 10);
}
function parseBackgroundSizePosition(value, element, attribute, index) {
value = (value || '').split(',');
value = value[index || 0] || value[0] || 'auto';
value = _html2canvas.Util.trimText(value).split(' ');
if(attribute === 'backgroundSize' && (!value[0] || value[0].match(/cover|contain|auto/))) {
//these values will be handled in the parent function
} else {
value[0] = (value[0].indexOf( "%" ) === -1) ? toPX(element, attribute + "X", value[0]) : value[0];
if(value[1] === undefined) {
if(attribute === 'backgroundSize') {
value[1] = 'auto';
return value;
} else {
// IE 9 doesn't return double digit always
value[1] = value[0];
}
}
value[1] = (value[1].indexOf("%") === -1) ? toPX(element, attribute + "Y", value[1]) : value[1];
}
return value;
}
_html2canvas.Util.getCSS = function (element, attribute, index) {
if (previousElement !== element) {
computedCSS = document.defaultView.getComputedStyle(element, null);
}
var value = computedCSS[attribute];
if (/^background(Size|Position)$/.test(attribute)) {
return parseBackgroundSizePosition(value, element, attribute, index);
} else if (/border(Top|Bottom)(Left|Right)Radius/.test(attribute)) {
var arr = value.split(" ");
if (arr.length <= 1) {
arr[1] = arr[0];
}
return arr.map(asInt);
}
return value;
};
_html2canvas.Util.resizeBounds = function( current_width, current_height, target_width, target_height, stretch_mode ){
var target_ratio = target_width / target_height,
current_ratio = current_width / current_height,
output_width, output_height;
if(!stretch_mode || stretch_mode === 'auto') {
output_width = target_width;
output_height = target_height;
} else if(target_ratio < current_ratio ^ stretch_mode === 'contain') {
output_height = target_height;
output_width = target_height * current_ratio;
} else {
output_width = target_width;
output_height = target_width / current_ratio;
}
return {
width: output_width,
height: output_height
};
};
function backgroundBoundsFactory( prop, el, bounds, image, imageIndex, backgroundSize ) {
var bgposition = _html2canvas.Util.getCSS( el, prop, imageIndex ) ,
topPos,
left,
percentage,
val;
if (bgposition.length === 1){
val = bgposition[0];
bgposition = [];
bgposition[0] = val;
bgposition[1] = val;
}
if (bgposition[0].toString().indexOf("%") !== -1){
percentage = (parseFloat(bgposition[0])/100);
left = bounds.width * percentage;
if(prop !== 'backgroundSize') {
left -= (backgroundSize || image).width*percentage;
}
} else {
if(prop === 'backgroundSize') {
if(bgposition[0] === 'auto') {
left = image.width;
} else {
if (/contain|cover/.test(bgposition[0])) {
var resized = _html2canvas.Util.resizeBounds(image.width, image.height, bounds.width, bounds.height, bgposition[0]);
left = resized.width;
topPos = resized.height;
} else {
left = parseInt(bgposition[0], 10);
}
}
} else {
left = parseInt( bgposition[0], 10);
}
}
if(bgposition[1] === 'auto') {
topPos = left / image.width * image.height;
} else if (bgposition[1].toString().indexOf("%") !== -1){
percentage = (parseFloat(bgposition[1])/100);
topPos = bounds.height * percentage;
if(prop !== 'backgroundSize') {
topPos -= (backgroundSize || image).height * percentage;
}
} else {
topPos = parseInt(bgposition[1],10);
}
return [left, topPos];
}
_html2canvas.Util.BackgroundPosition = function( el, bounds, image, imageIndex, backgroundSize ) {
var result = backgroundBoundsFactory( 'backgroundPosition', el, bounds, image, imageIndex, backgroundSize );
return { left: result[0], top: result[1] };
};
_html2canvas.Util.BackgroundSize = function( el, bounds, image, imageIndex ) {
var result = backgroundBoundsFactory( 'backgroundSize', el, bounds, image, imageIndex );
return { width: result[0], height: result[1] };
};
_html2canvas.Util.Extend = function (options, defaults) {
for (var key in options) {
if (options.hasOwnProperty(key)) {
defaults[key] = options[key];
}
}
return defaults;
};
/*
* Derived from jQuery.contents()
* Copyright 2010, John Resig
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*/
_html2canvas.Util.Children = function( elem ) {
var children;
try {
children = (elem.nodeName && elem.nodeName.toUpperCase() === "IFRAME") ? elem.contentDocument || elem.contentWindow.document : (function(array) {
var ret = [];
if (array !== null) {
(function(first, second ) {
var i = first.length,
j = 0;
if (typeof second.length === "number") {
for (var l = second.length; j < l; j++) {
first[i++] = second[j];
}
} else {
while (second[j] !== undefined) {
first[i++] = second[j++];
}
}
first.length = i;
return first;
})(ret, array);
}
return ret;
})(elem.childNodes);
} catch (ex) {
_html2canvas.Util.log("html2canvas.Util.Children failed with exception: " + ex.message);
children = [];
}
return children;
};
_html2canvas.Util.isTransparent = function(backgroundColor) {
return (backgroundColor === "transparent" || backgroundColor === "rgba(0, 0, 0, 0)");
};
_html2canvas.Util.Font = (function () {
var fontData = {};
return function(font, fontSize, doc) {
if (fontData[font + "-" + fontSize] !== undefined) {
return fontData[font + "-" + fontSize];
}
var container = doc.createElement('div'),
img = doc.createElement('img'),
span = doc.createElement('span'),
sampleText = 'Hidden Text',
baseline,
middle,
metricsObj;
container.style.visibility = "hidden";
container.style.fontFamily = font;
container.style.fontSize = fontSize;
container.style.margin = 0;
container.style.padding = 0;
doc.body.appendChild(container);
// http://probablyprogramming.com/2009/03/15/the-tiniest-gif-ever (handtinywhite.gif)
img.src = "data:image/gif;base64,R0lGODlhAQABAIABAP///wAAACwAAAAAAQABAAACAkQBADs=";
img.width = 1;
img.height = 1;
img.style.margin = 0;
img.style.padding = 0;
img.style.verticalAlign = "baseline";
span.style.fontFamily = font;
span.style.fontSize = fontSize;
span.style.margin = 0;
span.style.padding = 0;
span.appendChild(doc.createTextNode(sampleText));
container.appendChild(span);
container.appendChild(img);
baseline = (img.offsetTop - span.offsetTop) + 1;
container.removeChild(span);
container.appendChild(doc.createTextNode(sampleText));
container.style.lineHeight = "normal";
img.style.verticalAlign = "super";
middle = (img.offsetTop-container.offsetTop) + 1;
metricsObj = {
baseline: baseline,
lineWidth: 1,
middle: middle
};
fontData[font + "-" + fontSize] = metricsObj;
doc.body.removeChild(container);
return metricsObj;
};
})();
(function(){
var Util = _html2canvas.Util,
Generate = {};
_html2canvas.Generate = Generate;
var reGradients = [
/^(-webkit-linear-gradient)\(([a-z\s]+)([\w\d\.\s,%\(\)]+)\)$/,
/^(-o-linear-gradient)\(([a-z\s]+)([\w\d\.\s,%\(\)]+)\)$/,
/^(-webkit-gradient)\((linear|radial),\s((?:\d{1,3}%?)\s(?:\d{1,3}%?),\s(?:\d{1,3}%?)\s(?:\d{1,3}%?))([\w\d\.\s,%\(\)\-]+)\)$/,
/^(-moz-linear-gradient)\(((?:\d{1,3}%?)\s(?:\d{1,3}%?))([\w\d\.\s,%\(\)]+)\)$/,
/^(-webkit-radial-gradient)\(((?:\d{1,3}%?)\s(?:\d{1,3}%?)),\s(\w+)\s([a-z\-]+)([\w\d\.\s,%\(\)]+)\)$/,
/^(-moz-radial-gradient)\(((?:\d{1,3}%?)\s(?:\d{1,3}%?)),\s(\w+)\s?([a-z\-]*)([\w\d\.\s,%\(\)]+)\)$/,
/^(-o-radial-gradient)\(((?:\d{1,3}%?)\s(?:\d{1,3}%?)),\s(\w+)\s([a-z\-]+)([\w\d\.\s,%\(\)]+)\)$/
];
/*
* TODO: Add IE10 vendor prefix (-ms) support
* TODO: Add W3C gradient (linear-gradient) support
* TODO: Add old Webkit -webkit-gradient(radial, ...) support
* TODO: Maybe some RegExp optimizations are possible ;o)
*/
Generate.parseGradient = function(css, bounds) {
var gradient, i, len = reGradients.length, m1, stop, m2, m2Len, step, m3, tl,tr,br,bl;
for(i = 0; i < len; i+=1){
m1 = css.match(reGradients[i]);
if(m1) {
break;
}
}
if(m1) {
switch(m1[1]) {
case '-webkit-linear-gradient':
case '-o-linear-gradient':
gradient = {
type: 'linear',
x0: null,
y0: null,
x1: null,
y1: null,
colorStops: []
};
// get coordinates
m2 = m1[2].match(/\w+/g);
if(m2){
m2Len = m2.length;
for(i = 0; i < m2Len; i+=1){
switch(m2[i]) {
case 'top':
gradient.y0 = 0;
gradient.y1 = bounds.height;
break;
case 'right':
gradient.x0 = bounds.width;
gradient.x1 = 0;
break;
case 'bottom':
gradient.y0 = bounds.height;
gradient.y1 = 0;
break;
case 'left':
gradient.x0 = 0;
gradient.x1 = bounds.width;
break;
}
}
}
if(gradient.x0 === null && gradient.x1 === null){ // center
gradient.x0 = gradient.x1 = bounds.width / 2;
}
if(gradient.y0 === null && gradient.y1 === null){ // center
gradient.y0 = gradient.y1 = bounds.height / 2;
}
// get colors and stops
m2 = m1[3].match(/((?:rgb|rgba)\(\d{1,3},\s\d{1,3},\s\d{1,3}(?:,\s[0-9\.]+)?\)(?:\s\d{1,3}(?:%|px))?)+/g);
if(m2){
m2Len = m2.length;
step = 1 / Math.max(m2Len - 1, 1);
for(i = 0; i < m2Len; i+=1){
m3 = m2[i].match(/((?:rgb|rgba)\(\d{1,3},\s\d{1,3},\s\d{1,3}(?:,\s[0-9\.]+)?\))\s*(\d{1,3})?(%|px)?/);
if(m3[2]){
stop = parseFloat(m3[2]);
if(m3[3] === '%'){
stop /= 100;
} else { // px - stupid opera
stop /= bounds.width;
}
} else {
stop = i * step;
}
gradient.colorStops.push({
color: m3[1],
stop: stop
});
}
}
break;
case '-webkit-gradient':
gradient = {
type: m1[2] === 'radial' ? 'circle' : m1[2], // TODO: Add radial gradient support for older mozilla definitions
x0: 0,
y0: 0,
x1: 0,
y1: 0,
colorStops: []
};
// get coordinates
m2 = m1[3].match(/(\d{1,3})%?\s(\d{1,3})%?,\s(\d{1,3})%?\s(\d{1,3})%?/);
if(m2){
gradient.x0 = (m2[1] * bounds.width) / 100;
gradient.y0 = (m2[2] * bounds.height) / 100;
gradient.x1 = (m2[3] * bounds.width) / 100;
gradient.y1 = (m2[4] * bounds.height) / 100;
}
// get colors and stops
m2 = m1[4].match(/((?:from|to|color-stop)\((?:[0-9\.]+,\s)?(?:rgb|rgba)\(\d{1,3},\s\d{1,3},\s\d{1,3}(?:,\s[0-9\.]+)?\)\))+/g);
if(m2){
m2Len = m2.length;
for(i = 0; i < m2Len; i+=1){
m3 = m2[i].match(/(from|to|color-stop)\(([0-9\.]+)?(?:,\s)?((?:rgb|rgba)\(\d{1,3},\s\d{1,3},\s\d{1,3}(?:,\s[0-9\.]+)?\))\)/);
stop = parseFloat(m3[2]);
if(m3[1] === 'from') {
stop = 0.0;
}
if(m3[1] === 'to') {
stop = 1.0;
}
gradient.colorStops.push({
color: m3[3],
stop: stop
});
}
}
break;
case '-moz-linear-gradient':
gradient = {
type: 'linear',
x0: 0,
y0: 0,
x1: 0,
y1: 0,
colorStops: []
};
// get coordinates
m2 = m1[2].match(/(\d{1,3})%?\s(\d{1,3})%?/);
// m2[1] == 0% -> left
// m2[1] == 50% -> center
// m2[1] == 100% -> right
// m2[2] == 0% -> top
// m2[2] == 50% -> center
// m2[2] == 100% -> bottom
if(m2){
gradient.x0 = (m2[1] * bounds.width) / 100;
gradient.y0 = (m2[2] * bounds.height) / 100;
gradient.x1 = bounds.width - gradient.x0;
gradient.y1 = bounds.height - gradient.y0;
}
// get colors and stops
m2 = m1[3].match(/((?:rgb|rgba)\(\d{1,3},\s\d{1,3},\s\d{1,3}(?:,\s[0-9\.]+)?\)(?:\s\d{1,3}%)?)+/g);
if(m2){
m2Len = m2.length;
step = 1 / Math.max(m2Len - 1, 1);
for(i = 0; i < m2Len; i+=1){
m3 = m2[i].match(/((?:rgb|rgba)\(\d{1,3},\s\d{1,3},\s\d{1,3}(?:,\s[0-9\.]+)?\))\s*(\d{1,3})?(%)?/);
if(m3[2]){
stop = parseFloat(m3[2]);
if(m3[3]){ // percentage
stop /= 100;
}
} else {
stop = i * step;
}
gradient.colorStops.push({
color: m3[1],
stop: stop
});
}
}
break;
case '-webkit-radial-gradient':
case '-moz-radial-gradient':
case '-o-radial-gradient':
gradient = {
type: 'circle',
x0: 0,
y0: 0,
x1: bounds.width,
y1: bounds.height,
cx: 0,
cy: 0,
rx: 0,
ry: 0,
colorStops: []
};
// center
m2 = m1[2].match(/(\d{1,3})%?\s(\d{1,3})%?/);
if(m2){
gradient.cx = (m2[1] * bounds.width) / 100;
gradient.cy = (m2[2] * bounds.height) / 100;
}
// size
m2 = m1[3].match(/\w+/);
m3 = m1[4].match(/[a-z\-]*/);
if(m2 && m3){
switch(m3[0]){
case 'farthest-corner':
case 'cover': // is equivalent to farthest-corner
case '': // mozilla removes "cover" from definition :(
tl = Math.sqrt(Math.pow(gradient.cx, 2) + Math.pow(gradient.cy, 2));
tr = Math.sqrt(Math.pow(gradient.cx, 2) + Math.pow(gradient.y1 - gradient.cy, 2));
br = Math.sqrt(Math.pow(gradient.x1 - gradient.cx, 2) + Math.pow(gradient.y1 - gradient.cy, 2));
bl = Math.sqrt(Math.pow(gradient.x1 - gradient.cx, 2) + Math.pow(gradient.cy, 2));
gradient.rx = gradient.ry = Math.max(tl, tr, br, bl);
break;
case 'closest-corner':
tl = Math.sqrt(Math.pow(gradient.cx, 2) + Math.pow(gradient.cy, 2));
tr = Math.sqrt(Math.pow(gradient.cx, 2) + Math.pow(gradient.y1 - gradient.cy, 2));
br = Math.sqrt(Math.pow(gradient.x1 - gradient.cx, 2) + Math.pow(gradient.y1 - gradient.cy, 2));
bl = Math.sqrt(Math.pow(gradient.x1 - gradient.cx, 2) + Math.pow(gradient.cy, 2));
gradient.rx = gradient.ry = Math.min(tl, tr, br, bl);
break;
case 'farthest-side':
if(m2[0] === 'circle'){
gradient.rx = gradient.ry = Math.max(
gradient.cx,
gradient.cy,
gradient.x1 - gradient.cx,
gradient.y1 - gradient.cy
);
} else { // ellipse
gradient.type = m2[0];
gradient.rx = Math.max(
gradient.cx,
gradient.x1 - gradient.cx
);
gradient.ry = Math.max(
gradient.cy,
gradient.y1 - gradient.cy
);
}
break;
case 'closest-side':
case 'contain': // is equivalent to closest-side
if(m2[0] === 'circle'){
gradient.rx = gradient.ry = Math.min(
gradient.cx,
gradient.cy,
gradient.x1 - gradient.cx,
gradient.y1 - gradient.cy
);
} else { // ellipse
gradient.type = m2[0];
gradient.rx = Math.min(
gradient.cx,
gradient.x1 - gradient.cx
);
gradient.ry = Math.min(
gradient.cy,
gradient.y1 - gradient.cy
);
}
break;
// TODO: add support for "30px 40px" sizes (webkit only)
}
}
// color stops
m2 = m1[5].match(/((?:rgb|rgba)\(\d{1,3},\s\d{1,3},\s\d{1,3}(?:,\s[0-9\.]+)?\)(?:\s\d{1,3}(?:%|px))?)+/g);
if(m2){
m2Len = m2.length;
step = 1 / Math.max(m2Len - 1, 1);
for(i = 0; i < m2Len; i+=1){
m3 = m2[i].match(/((?:rgb|rgba)\(\d{1,3},\s\d{1,3},\s\d{1,3}(?:,\s[0-9\.]+)?\))\s*(\d{1,3})?(%|px)?/);
if(m3[2]){
stop = parseFloat(m3[2]);
if(m3[3] === '%'){
stop /= 100;
} else { // px - stupid opera
stop /= bounds.width;
}
} else {
stop = i * step;
}
gradient.colorStops.push({
color: m3[1],
stop: stop
});
}
}
break;
}
}
return gradient;
};
function addScrollStops(grad) {
return function(colorStop) {
try {
grad.addColorStop(colorStop.stop, colorStop.color);
}
catch(e) {
Util.log(['failed to add color stop: ', e, '; tried to add: ', colorStop]);
}
};
}
Generate.Gradient = function(src, bounds) {
if(bounds.width === 0 || bounds.height === 0) {
return;
}
var canvas = document.createElement('canvas'),
ctx = canvas.getContext('2d'),
gradient, grad;
canvas.width = bounds.width;
canvas.height = bounds.height;
// TODO: add support for multi defined background gradients
gradient = _html2canvas.Generate.parseGradient(src, bounds);
if(gradient) {
switch(gradient.type) {
case 'linear':
grad = ctx.createLinearGradient(gradient.x0, gradient.y0, gradient.x1, gradient.y1);
gradient.colorStops.forEach(addScrollStops(grad));
ctx.fillStyle = grad;
ctx.fillRect(0, 0, bounds.width, bounds.height);
break;
case 'circle':
grad = ctx.createRadialGradient(gradient.cx, gradient.cy, 0, gradient.cx, gradient.cy, gradient.rx);
gradient.colorStops.forEach(addScrollStops(grad));
ctx.fillStyle = grad;
ctx.fillRect(0, 0, bounds.width, bounds.height);
break;
case 'ellipse':
var canvasRadial = document.createElement('canvas'),
ctxRadial = canvasRadial.getContext('2d'),
ri = Math.max(gradient.rx, gradient.ry),
di = ri * 2;
canvasRadial.width = canvasRadial.height = di;
grad = ctxRadial.createRadialGradient(gradient.rx, gradient.ry, 0, gradient.rx, gradient.ry, ri);
gradient.colorStops.forEach(addScrollStops(grad));
ctxRadial.fillStyle = grad;
ctxRadial.fillRect(0, 0, di, di);
ctx.fillStyle = gradient.colorStops[gradient.colorStops.length - 1].color;
ctx.fillRect(0, 0, canvas.width, canvas.height);
ctx.drawImage(canvasRadial, gradient.cx - gradient.rx, gradient.cy - gradient.ry, 2 * gradient.rx, 2 * gradient.ry);
break;
}
}
return canvas;
};
Generate.ListAlpha = function(number) {
var tmp = "",
modulus;
do {
modulus = number % 26;
tmp = String.fromCharCode((modulus) + 64) + tmp;
number = number / 26;
}while((number*26) > 26);
return tmp;
};
Generate.ListRoman = function(number) {
var romanArray = ["M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"],
decimal = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1],
roman = "",
v,
len = romanArray.length;
if (number <= 0 || number >= 4000) {
return number;
}
for (v=0; v < len; v+=1) {
while (number >= decimal[v]) {
number -= decimal[v];
roman += romanArray[v];
}
}
return roman;
};
})();
function h2cRenderContext(width, height) {
var storage = [];
return {
storage: storage,
width: width,
height: height,
clip: function() {
storage.push({
type: "function",
name: "clip",
'arguments': arguments
});
},
translate: function() {
storage.push({
type: "function",
name: "translate",
'arguments': arguments
});
},
fill: function() {
storage.push({
type: "function",
name: "fill",
'arguments': arguments
});
},
save: function() {
storage.push({
type: "function",
name: "save",
'arguments': arguments
});
},
restore: function() {
storage.push({
type: "function",
name: "restore",
'arguments': arguments
});
},
fillRect: function () {
storage.push({
type: "function",
name: "fillRect",
'arguments': arguments
});
},
createPattern: function() {
storage.push({
type: "function",
name: "createPattern",
'arguments': arguments
});
},
drawShape: function() {
var shape = [];
storage.push({
type: "function",
name: "drawShape",
'arguments': shape
});
return {
moveTo: function() {
shape.push({
name: "moveTo",
'arguments': arguments
});
},
lineTo: function() {
shape.push({
name: "lineTo",
'arguments': arguments
});
},
arcTo: function() {
shape.push({
name: "arcTo",
'arguments': arguments
});
},
bezierCurveTo: function() {
shape.push({
name: "bezierCurveTo",
'arguments': arguments
});
},
quadraticCurveTo: function() {
shape.push({
name: "quadraticCurveTo",
'arguments': arguments
});
}
};
},
drawImage: function () {
storage.push({
type: "function",
name: "drawImage",
'arguments': arguments
});
},
fillText: function () {
storage.push({
type: "function",
name: "fillText",
'arguments': arguments
});
},
setVariable: function (variable, value) {
storage.push({
type: "variable",
name: variable,
'arguments': value
});
return value;
}
};
}
_html2canvas.Parse = function (images, options) {
window.scroll(0,0);
var element = (( options.elements === undefined ) ? document.body : options.elements[0]), // select body by default
numDraws = 0,
doc = element.ownerDocument,
Util = _html2canvas.Util,
support = Util.Support(options, doc),
ignoreElementsRegExp = new RegExp("(" + options.ignoreElements + ")"),
body = doc.body,
getCSS = Util.getCSS,
pseudoHide = "___html2canvas___pseudoelement",
hidePseudoElements = doc.createElement('style');
hidePseudoElements.innerHTML = '.' + pseudoHide + '-before:before { content: "" !important; display: none !important; }' +
'.' + pseudoHide + '-after:after { content: "" !important; display: none !important; }';
body.appendChild(hidePseudoElements);
images = images || {};
function documentWidth () {
return Math.max(
Math.max(doc.body.scrollWidth, doc.documentElement.scrollWidth),
Math.max(doc.body.offsetWidth, doc.documentElement.offsetWidth),
Math.max(doc.body.clientWidth, doc.documentElement.clientWidth)
);
}
function documentHeight () {
return Math.max(
Math.max(doc.body.scrollHeight, doc.documentElement.scrollHeight),
Math.max(doc.body.offsetHeight, doc.documentElement.offsetHeight),
Math.max(doc.body.clientHeight, doc.documentElement.clientHeight)
);
}
function getCSSInt(element, attribute) {
var val = parseInt(getCSS(element, attribute), 10);
return (isNaN(val)) ? 0 : val; // borders in old IE are throwing 'medium' for demo.html
}
function renderRect (ctx, x, y, w, h, bgcolor) {
if (bgcolor !== "transparent"){
ctx.setVariable("fillStyle", bgcolor);
ctx.fillRect(x, y, w, h);
numDraws+=1;
}
}
function capitalize(m, p1, p2) {
if (m.length > 0) {
return p1 + p2.toUpperCase();
}
}
function textTransform (text, transform) {
switch(transform){
case "lowercase":
return text.toLowerCase();
case "capitalize":
return text.replace( /(^|\s|:|-|\(|\))([a-z])/g, capitalize);
case "uppercase":
return text.toUpperCase();
default:
return text;
}
}
function noLetterSpacing(letter_spacing) {
return (/^(normal|none|0px)$/.test(letter_spacing));
}
function drawText(currentText, x, y, ctx){
if (currentText !== null && Util.trimText(currentText).length > 0) {
ctx.fillText(currentText, x, y);
numDraws+=1;
}
}
function setTextVariables(ctx, el, text_decoration, color) {
var align = false,
bold = getCSS(el, "fontWeight"),
family = getCSS(el, "fontFamily"),
size = getCSS(el, "fontSize"),
shadows = Util.parseTextShadows(getCSS(el, "textShadow"));
switch(parseInt(bold, 10)){
case 401:
bold = "bold";
break;
case 400:
bold = "normal";
break;
}
ctx.setVariable("fillStyle", color);
ctx.setVariable("font", [getCSS(el, "fontStyle"), getCSS(el, "fontVariant"), bold, size, family].join(" "));
ctx.setVariable("textAlign", (align) ? "right" : "left");
if (shadows.length) {
// TODO: support multiple text shadows
// apply the first text shadow
ctx.setVariable("shadowColor", shadows[0].color);
ctx.setVariable("shadowOffsetX", shadows[0].offsetX);
ctx.setVariable("shadowOffsetY", shadows[0].offsetY);
ctx.setVariable("shadowBlur", shadows[0].blur);
}
if (text_decoration !== "none"){
return Util.Font(family, size, doc);
}
}
function renderTextDecoration(ctx, text_decoration, bounds, metrics, color) {
switch(text_decoration) {
case "underline":
// Draws a line at the baseline of the font
// TODO As some browsers display the line as more than 1px if the font-size is big, need to take that into account both in position and size
renderRect(ctx, bounds.left, Math.round(bounds.top + metrics.baseline + metrics.lineWidth), bounds.width, 1, color);
break;
case "overline":
renderRect(ctx, bounds.left, Math.round(bounds.top), bounds.width, 1, color);
break;
case "line-through":
// TODO try and find exact position for line-through
renderRect(ctx, bounds.left, Math.ceil(bounds.top + metrics.middle + metrics.lineWidth), bounds.width, 1, color);
break;
}
}
function getTextBounds(state, text, textDecoration, isLast, transform) {
var bounds;
if (support.rangeBounds && !transform) {
if (textDecoration !== "none" || Util.trimText(text).length !== 0) {
bounds = textRangeBounds(text, state.node, state.textOffset);
}
state.textOffset += text.length;
} else if (state.node && typeof state.node.nodeValue === "string" ){
var newTextNode = (isLast) ? state.node.splitText(text.length) : null;
bounds = textWrapperBounds(state.node, transform);
state.node = newTextNode;
}
return bounds;
}
function textRangeBounds(text, textNode, textOffset) {
var range = doc.createRange();
range.setStart(textNode, textOffset);
range.setEnd(textNode, textOffset + text.length);
return range.getBoundingClientRect();
}
function textWrapperBounds(oldTextNode, transform) {
var parent = oldTextNode.parentNode,
wrapElement = doc.createElement('wrapper'),
backupText = oldTextNode.cloneNode(true);
wrapElement.appendChild(oldTextNode.cloneNode(true));
parent.replaceChild(wrapElement, oldTextNode);
var bounds = transform ? Util.OffsetBounds(wrapElement) : Util.Bounds(wrapElement);
parent.replaceChild(backupText, wrapElement);
return bounds;
}
function renderText(el, textNode, stack) {
var ctx = stack.ctx,
color = getCSS(el, "color"),
textDecoration = getCSS(el, "textDecoration"),
textAlign = getCSS(el, "textAlign"),
metrics,
textList,
state = {
node: textNode,
textOffset: 0
};
if (Util.trimText(textNode.nodeValue).length > 0) {
textNode.nodeValue = textTransform(textNode.nodeValue, getCSS(el, "textTransform"));
textAlign = textAlign.replace(["-webkit-auto"],["auto"]);
textList = (!options.letterRendering && /^(left|right|justify|auto)$/.test(textAlign) && noLetterSpacing(getCSS(el, "letterSpacing"))) ?
textNode.nodeValue.split(/(\b| )/)
: textNode.nodeValue.split("");
metrics = setTextVariables(ctx, el, textDecoration, color);
if (options.chinese) {
textList.forEach(function(word, index) {
if (/.*[\u4E00-\u9FA5].*$/.test(word)) {
word = word.split("");
word.unshift(index, 1);
textList.splice.apply(textList, word);
}
});
}
textList.forEach(function(text, index) {
var bounds = getTextBounds(state, text, textDecoration, (index < textList.length - 1), stack.transform.matrix);
if (bounds) {
drawText(text, bounds.left, bounds.bottom, ctx);
renderTextDecoration(ctx, textDecoration, bounds, metrics, color);
}
});
}
}
function listPosition (element, val) {
var boundElement = doc.createElement( "boundelement" ),
originalType,
bounds;
boundElement.style.display = "inline";
originalType = element.style.listStyleType;
element.style.listStyleType = "none";
boundElement.appendChild(doc.createTextNode(val));
element.insertBefore(boundElement, element.firstChild);
bounds = Util.Bounds(boundElement);
element.removeChild(boundElement);
element.style.listStyleType = originalType;
return bounds;
}
function elementIndex(el) {
var i = -1,
count = 1,
childs = el.parentNode.childNodes;
if (el.parentNode) {
while(childs[++i] !== el) {
if (childs[i].nodeType === 1) {
count++;
}
}
return count;
} else {
return -1;
}
}
function listItemText(element, type) {
var currentIndex = elementIndex(element), text;
switch(type){
case "decimal":
text = currentIndex;
break;
case "decimal-leading-zero":
text = (currentIndex.toString().length === 1) ? currentIndex = "0" + currentIndex.toString() : currentIndex.toString();
break;
case "upper-roman":
text = _html2canvas.Generate.ListRoman( currentIndex );
break;
case "lower-roman":
text = _html2canvas.Generate.ListRoman( currentIndex ).toLowerCase();
break;
case "lower-alpha":
text = _html2canvas.Generate.ListAlpha( currentIndex ).toLowerCase();
break;
case "upper-alpha":
text = _html2canvas.Generate.ListAlpha( currentIndex );
break;
}
return text + ". ";
}
function renderListItem(element, stack, elBounds) {
var x,
text,
ctx = stack.ctx,
type = getCSS(element, "listStyleType"),
listBounds;
if (/^(decimal|decimal-leading-zero|upper-alpha|upper-latin|upper-roman|lower-alpha|lower-greek|lower-latin|lower-roman)$/i.test(type)) {
text = listItemText(element, type);
listBounds = listPosition(element, text);
setTextVariables(ctx, element, "none", getCSS(element, "color"));
if (getCSS(element, "listStylePosition") === "inside") {
ctx.setVariable("textAlign", "left");
x = elBounds.left;
} else {
return;
}
drawText(text, x, listBounds.bottom, ctx);
}
}
function loadImage (src){
var img = images[src];
return (img && img.succeeded === true) ? img.img : false;
}
function clipBounds(src, dst){
var x = Math.max(src.left, dst.left),
y = Math.max(src.top, dst.top),
x2 = Math.min((src.left + src.width), (dst.left + dst.width)),
y2 = Math.min((src.top + src.height), (dst.top + dst.height));
return {
left:x,
top:y,
width:x2-x,
height:y2-y
};
}
function setZ(element, stack, parentStack){
var newContext,
isPositioned = stack.cssPosition !== 'static',
zIndex = isPositioned ? getCSS(element, 'zIndex') : 'auto',
opacity = getCSS(element, 'opacity'),
isFloated = getCSS(element, 'cssFloat') !== 'none';
// https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Understanding_z_index/The_stacking_context
// When a new stacking context should be created:
// the root element (HTML),
// positioned (absolutely or relatively) with a z-index value other than "auto",
// elements with an opacity value less than 1. (See the specification for opacity),
// on mobile WebKit and Chrome 22+, position: fixed always creates a new stacking context, even when z-index is "auto" (See this post)
stack.zIndex = newContext = h2czContext(zIndex);
newContext.isPositioned = isPositioned;
newContext.isFloated = isFloated;
newContext.opacity = opacity;
newContext.ownStacking = (zIndex !== 'auto' || opacity < 1);
if (parentStack) {
parentStack.zIndex.children.push(stack);
}
}
function renderImage(ctx, element, image, bounds, borders) {
var paddingLeft = getCSSInt(element, 'paddingLeft'),
paddingTop = getCSSInt(element, 'paddingTop'),
paddingRight = getCSSInt(element, 'paddingRight'),
paddingBottom = getCSSInt(element, 'paddingBottom');
drawImage(
ctx,
image,
0, //sx
0, //sy
image.width, //sw
image.height, //sh
bounds.left + paddingLeft + borders[3].width, //dx
bounds.top + paddingTop + borders[0].width, // dy
bounds.width - (borders[1].width + borders[3].width + paddingLeft + paddingRight), //dw
bounds.height - (borders[0].width + borders[2].width + paddingTop + paddingBottom) //dh
);
}
function getBorderData(element) {
return ["Top", "Right", "Bottom", "Left"].map(function(side) {
return {
width: getCSSInt(element, 'border' + side + 'Width'),
color: getCSS(element, 'border' + side + 'Color')
};
});
}
function getBorderRadiusData(element) {
return ["TopLeft", "TopRight", "BottomRight", "BottomLeft"].map(function(side) {
return getCSS(element, 'border' + side + 'Radius');
});
}
var getCurvePoints = (function(kappa) {
return function(x, y, r1, r2) {
var ox = (r1) * kappa, // control point offset horizontal
oy = (r2) * kappa, // control point offset vertical
xm = x + r1, // x-middle
ym = y + r2; // y-middle
return {
topLeft: bezierCurve({
x:x,
y:ym
}, {
x:x,
y:ym - oy
}, {
x:xm - ox,
y:y
}, {
x:xm,
y:y
}),
topRight: bezierCurve({
x:x,
y:y
}, {
x:x + ox,
y:y
}, {
x:xm,
y:ym - oy
}, {
x:xm,
y:ym
}),
bottomRight: bezierCurve({
x:xm,
y:y
}, {
x:xm,
y:y + oy
}, {
x:x + ox,
y:ym
}, {
x:x,
y:ym
}),
bottomLeft: bezierCurve({
x:xm,
y:ym
}, {
x:xm - ox,
y:ym
}, {
x:x,
y:y + oy
}, {
x:x,
y:y
})
};
};
})(4 * ((Math.sqrt(2) - 1) / 3));
function bezierCurve(start, startControl, endControl, end) {
var lerp = function (a, b, t) {
return {
x:a.x + (b.x - a.x) * t,
y:a.y + (b.y - a.y) * t
};
};
return {
start: start,
startControl: startControl,
endControl: endControl,
end: end,
subdivide: function(t) {
var ab = lerp(start, startControl, t),
bc = lerp(startControl, endControl, t),
cd = lerp(endControl, end, t),
abbc = lerp(ab, bc, t),
bccd = lerp(bc, cd, t),
dest = lerp(abbc, bccd, t);
return [bezierCurve(start, ab, abbc, dest), bezierCurve(dest, bccd, cd, end)];
},
curveTo: function(borderArgs) {
borderArgs.push(["bezierCurve", startControl.x, startControl.y, endControl.x, endControl.y, end.x, end.y]);
},
curveToReversed: function(borderArgs) {
borderArgs.push(["bezierCurve", endControl.x, endControl.y, startControl.x, startControl.y, start.x, start.y]);
}
};
}
function parseCorner(borderArgs, radius1, radius2, corner1, corner2, x, y) {
if (radius1[0] > 0 || radius1[1] > 0) {
borderArgs.push(["line", corner1[0].start.x, corner1[0].start.y]);
corner1[0].curveTo(borderArgs);
corner1[1].curveTo(borderArgs);
} else {
borderArgs.push(["line", x, y]);
}
if (radius2[0] > 0 || radius2[1] > 0) {
borderArgs.push(["line", corner2[0].start.x, corner2[0].start.y]);
}
}
function drawSide(borderData, radius1, radius2, outer1, inner1, outer2, inner2) {
var borderArgs = [];
if (radius1[0] > 0 || radius1[1] > 0) {
borderArgs.push(["line", outer1[1].start.x, outer1[1].start.y]);
outer1[1].curveTo(borderArgs);
} else {
borderArgs.push([ "line", borderData.c1[0], borderData.c1[1]]);
}
if (radius2[0] > 0 || radius2[1] > 0) {
borderArgs.push(["line", outer2[0].start.x, outer2[0].start.y]);
outer2[0].curveTo(borderArgs);
borderArgs.push(["line", inner2[0].end.x, inner2[0].end.y]);
inner2[0].curveToReversed(borderArgs);
} else {
borderArgs.push([ "line", borderData.c2[0], borderData.c2[1]]);
borderArgs.push([ "line", borderData.c3[0], borderData.c3[1]]);
}
if (radius1[0] > 0 || radius1[1] > 0) {
borderArgs.push(["line", inner1[1].end.x, inner1[1].end.y]);
inner1[1].curveToReversed(borderArgs);
} else {
borderArgs.push([ "line", borderData.c4[0], borderData.c4[1]]);
}
return borderArgs;
}
function calculateCurvePoints(bounds, borderRadius, borders) {
var x = bounds.left,
y = bounds.top,
width = bounds.width,
height = bounds.height,
tlh = borderRadius[0][0],
tlv = borderRadius[0][1],
trh = borderRadius[1][0],
trv = borderRadius[1][1],
brh = borderRadius[2][0],
brv = borderRadius[2][1],
blh = borderRadius[3][0],
blv = borderRadius[3][1],
topWidth = width - trh,
rightHeight = height - brv,
bottomWidth = width - brh,
leftHeight = height - blv;
return {
topLeftOuter: getCurvePoints(
x,
y,
tlh,
tlv
).topLeft.subdivide(0.5),
topLeftInner: getCurvePoints(
x + borders[3].width,
y + borders[0].width,
Math.max(0, tlh - borders[3].width),
Math.max(0, tlv - borders[0].width)
).topLeft.subdivide(0.5),
topRightOuter: getCurvePoints(
x + topWidth,
y,
trh,
trv
).topRight.subdivide(0.5),
topRightInner: getCurvePoints(
x + Math.min(topWidth, width + borders[3].width),
y + borders[0].width,
(topWidth > width + borders[3].width) ? 0 :trh - borders[3].width,
trv - borders[0].width
).topRight.subdivide(0.5),
bottomRightOuter: getCurvePoints(
x + bottomWidth,
y + rightHeight,
brh,
brv
).bottomRight.subdivide(0.5),
bottomRightInner: getCurvePoints(
x + Math.min(bottomWidth, width + borders[3].width),
y + Math.min(rightHeight, height + borders[0].width),
Math.max(0, brh - borders[1].width),
Math.max(0, brv - borders[2].width)
).bottomRight.subdivide(0.5),
bottomLeftOuter: getCurvePoints(
x,
y + leftHeight,
blh,
blv
).bottomLeft.subdivide(0.5),
bottomLeftInner: getCurvePoints(
x + borders[3].width,
y + leftHeight,
Math.max(0, blh - borders[3].width),
Math.max(0, blv - borders[2].width)
).bottomLeft.subdivide(0.5)
};
}
function getBorderClip(element, borderPoints, borders, radius, bounds) {
var backgroundClip = getCSS(element, 'backgroundClip'),
borderArgs = [];
switch(backgroundClip) {
case "content-box":
case "padding-box":
parseCorner(borderArgs, radius[0], radius[1], borderPoints.topLeftInner, borderPoints.topRightInner, bounds.left + borders[3].width, bounds.top + borders[0].width);
parseCorner(borderArgs, radius[1], radius[2], borderPoints.topRightInner, borderPoints.bottomRightInner, bounds.left + bounds.width - borders[1].width, bounds.top + borders[0].width);
parseCorner(borderArgs, radius[2], radius[3], borderPoints.bottomRightInner, borderPoints.bottomLeftInner, bounds.left + bounds.width - borders[1].width, bounds.top + bounds.height - borders[2].width);
parseCorner(borderArgs, radius[3], radius[0], borderPoints.bottomLeftInner, borderPoints.topLeftInner, bounds.left + borders[3].width, bounds.top + bounds.height - borders[2].width);
break;
default:
parseCorner(borderArgs, radius[0], radius[1], borderPoints.topLeftOuter, borderPoints.topRightOuter, bounds.left, bounds.top);
parseCorner(borderArgs, radius[1], radius[2], borderPoints.topRightOuter, borderPoints.bottomRightOuter, bounds.left + bounds.width, bounds.top);
parseCorner(borderArgs, radius[2], radius[3], borderPoints.bottomRightOuter, borderPoints.bottomLeftOuter, bounds.left + bounds.width, bounds.top + bounds.height);
parseCorner(borderArgs, radius[3], radius[0], borderPoints.bottomLeftOuter, borderPoints.topLeftOuter, bounds.left, bounds.top + bounds.height);
break;
}
return borderArgs;
}
function parseBorders(element, bounds, borders){
var x = bounds.left,
y = bounds.top,
width = bounds.width,
height = bounds.height,
borderSide,
bx,
by,
bw,
bh,
borderArgs,
// http://www.w3.org/TR/css3-background/#the-border-radius
borderRadius = getBorderRadiusData(element),
borderPoints = calculateCurvePoints(bounds, borderRadius, borders),
borderData = {
clip: getBorderClip(element, borderPoints, borders, borderRadius, bounds),
borders: []
};
for (borderSide = 0; borderSide < 4; borderSide++) {
if (borders[borderSide].width > 0) {
bx = x;
by = y;
bw = width;
bh = height - (borders[2].width);
switch(borderSide) {
case 0:
// top border
bh = borders[0].width;
borderArgs = drawSide({
c1: [bx, by],
c2: [bx + bw, by],
c3: [bx + bw - borders[1].width, by + bh],
c4: [bx + borders[3].width, by + bh]
}, borderRadius[0], borderRadius[1],
borderPoints.topLeftOuter, borderPoints.topLeftInner, borderPoints.topRightOuter, borderPoints.topRightInner);
break;
case 1:
// right border
bx = x + width - (borders[1].width);
bw = borders[1].width;
borderArgs = drawSide({
c1: [bx + bw, by],
c2: [bx + bw, by + bh + borders[2].width],
c3: [bx, by + bh],
c4: [bx, by + borders[0].width]
}, borderRadius[1], borderRadius[2],
borderPoints.topRightOuter, borderPoints.topRightInner, borderPoints.bottomRightOuter, borderPoints.bottomRightInner);
break;
case 2:
// bottom border
by = (by + height) - (borders[2].width);
bh = borders[2].width;
borderArgs = drawSide({
c1: [bx + bw, by + bh],
c2: [bx, by + bh],
c3: [bx + borders[3].width, by],
c4: [bx + bw - borders[3].width, by]
}, borderRadius[2], borderRadius[3],
borderPoints.bottomRightOuter, borderPoints.bottomRightInner, borderPoints.bottomLeftOuter, borderPoints.bottomLeftInner);
break;
case 3:
// left border
bw = borders[3].width;
borderArgs = drawSide({
c1: [bx, by + bh + borders[2].width],
c2: [bx, by],
c3: [bx + bw, by + borders[0].width],
c4: [bx + bw, by + bh]
}, borderRadius[3], borderRadius[0],
borderPoints.bottomLeftOuter, borderPoints.bottomLeftInner, borderPoints.topLeftOuter, borderPoints.topLeftInner);
break;
}
borderData.borders.push({
args: borderArgs,
color: borders[borderSide].color
});
}
}
return borderData;
}
function createShape(ctx, args) {
var shape = ctx.drawShape();
args.forEach(function(border, index) {
shape[(index === 0) ? "moveTo" : border[0] + "To" ].apply(null, border.slice(1));
});
return shape;
}
function renderBorders(ctx, borderArgs, color) {
if (color !== "transparent") {
ctx.setVariable( "fillStyle", color);
createShape(ctx, borderArgs);
ctx.fill();
numDraws+=1;
}
}
function renderFormValue (el, bounds, stack){
var valueWrap = doc.createElement('valuewrap'),
cssPropertyArray = ['lineHeight','textAlign','fontFamily','color','fontSize','paddingLeft','paddingTop','width','height','border','borderLeftWidth','borderTopWidth'],
textValue,
textNode;
cssPropertyArray.forEach(function(property) {
try {
valueWrap.style[property] = getCSS(el, property);
} catch(e) {
// Older IE has issues with "border"
Util.log("html2canvas: Parse: Exception caught in renderFormValue: " + e.message);
}
});
valueWrap.style.borderColor = "black";
valueWrap.style.borderStyle = "solid";
valueWrap.style.display = "block";
valueWrap.style.position = "absolute";
if (/^(submit|reset|button|text|password)$/.test(el.type) || el.nodeName === "SELECT"){
valueWrap.style.lineHeight = getCSS(el, "height");
}
valueWrap.style.top = bounds.top + "px";
valueWrap.style.left = bounds.left + "px";
textValue = (el.nodeName === "SELECT") ? (el.options[el.selectedIndex] || 0).text : el.value;
if(!textValue) {
textValue = el.placeholder;
}
textNode = doc.createTextNode(textValue);
valueWrap.appendChild(textNode);
body.appendChild(valueWrap);
renderText(el, textNode, stack);
body.removeChild(valueWrap);
}
function drawImage (ctx) {
ctx.drawImage.apply(ctx, Array.prototype.slice.call(arguments, 1));
numDraws+=1;
}
function getPseudoElement(el, which) {
var elStyle = window.getComputedStyle(el, which);
if(!elStyle || !elStyle.content || elStyle.content === "none" || elStyle.content === "-moz-alt-content" || elStyle.display === "none") {
return;
}
var content = elStyle.content + '',
first = content.substr( 0, 1 );
//strips quotes
if(first === content.substr( content.length - 1 ) && first.match(/'|"/)) {
content = content.substr( 1, content.length - 2 );
}
var isImage = content.substr( 0, 3 ) === 'url',
elps = document.createElement( isImage ? 'img' : 'span' );
elps.className = pseudoHide + "-before " + pseudoHide + "-after";
Object.keys(elStyle).filter(indexedProperty).forEach(function(prop) {
// Prevent assigning of read only CSS Rules, ex. length, parentRule
try {
elps.style[prop] = elStyle[prop];
} catch (e) {
Util.log(['Tried to assign readonly property ', prop, 'Error:', e]);
}
});
if(isImage) {
elps.src = Util.parseBackgroundImage(content)[0].args[0];
} else {
elps.innerHTML = content;
}
return elps;
}
function indexedProperty(property) {
return (isNaN(window.parseInt(property, 10)));
}
function injectPseudoElements(el, stack) {
var before = getPseudoElement(el, ':before'),
after = getPseudoElement(el, ':after');
if(!before && !after) {
return;
}
if(before) {
el.className += " " + pseudoHide + "-before";
el.parentNode.insertBefore(before, el);
parseElement(before, stack, true);
el.parentNode.removeChild(before);
el.className = el.className.replace(pseudoHide + "-before", "").trim();
}
if (after) {
el.className += " " + pseudoHide + "-after";
el.appendChild(after);
parseElement(after, stack, true);
el.removeChild(after);
el.className = el.className.replace(pseudoHide + "-after", "").trim();
}
}
function renderBackgroundRepeat(ctx, image, backgroundPosition, bounds) {
var offsetX = Math.round(bounds.left + backgroundPosition.left),
offsetY = Math.round(bounds.top + backgroundPosition.top);
ctx.createPattern(image);
ctx.translate(offsetX, offsetY);
ctx.fill();
ctx.translate(-offsetX, -offsetY);
}
function backgroundRepeatShape(ctx, image, backgroundPosition, bounds, left, top, width, height) {
var args = [];
args.push(["line", Math.round(left), Math.round(top)]);
args.push(["line", Math.round(left + width), Math.round(top)]);
args.push(["line", Math.round(left + width), Math.round(height + top)]);
args.push(["line", Math.round(left), Math.round(height + top)]);
createShape(ctx, args);
ctx.save();
ctx.clip();
renderBackgroundRepeat(ctx, image, backgroundPosition, bounds);
ctx.restore();
}
function renderBackgroundColor(ctx, backgroundBounds, bgcolor) {
renderRect(
ctx,
backgroundBounds.left,
backgroundBounds.top,
backgroundBounds.width,
backgroundBounds.height,
bgcolor
);
}
function renderBackgroundRepeating(el, bounds, ctx, image, imageIndex) {
var backgroundSize = Util.BackgroundSize(el, bounds, image, imageIndex),
backgroundPosition = Util.BackgroundPosition(el, bounds, image, imageIndex, backgroundSize),
backgroundRepeat = getCSS(el, "backgroundRepeat").split(",").map(Util.trimText);
image = resizeImage(image, backgroundSize);
backgroundRepeat = backgroundRepeat[imageIndex] || backgroundRepeat[0];
switch (backgroundRepeat) {
case "repeat-x":
backgroundRepeatShape(ctx, image, backgroundPosition, bounds,
bounds.left, bounds.top + backgroundPosition.top, 99999, image.height);
break;
case "repeat-y":
backgroundRepeatShape(ctx, image, backgroundPosition, bounds,
bounds.left + backgroundPosition.left, bounds.top, image.width, 99999);
break;
case "no-repeat":
backgroundRepeatShape(ctx, image, backgroundPosition, bounds,
bounds.left + backgroundPosition.left, bounds.top + backgroundPosition.top, image.width, image.height);
break;
default:
renderBackgroundRepeat(ctx, image, backgroundPosition, {
top: bounds.top,
left: bounds.left,
width: image.width,
height: image.height
});
break;
}
}
function renderBackgroundImage(element, bounds, ctx) {
var backgroundImage = getCSS(element, "backgroundImage"),
backgroundImages = Util.parseBackgroundImage(backgroundImage),
image,
imageIndex = backgroundImages.length;
while(imageIndex--) {
backgroundImage = backgroundImages[imageIndex];
if (!backgroundImage.args || backgroundImage.args.length === 0) {
continue;
}
var key = backgroundImage.method === 'url' ?
backgroundImage.args[0] :
backgroundImage.value;
image = loadImage(key);
// TODO add support for background-origin
if (image) {
renderBackgroundRepeating(element, bounds, ctx, image, imageIndex);
} else {
Util.log("html2canvas: Error loading background:", backgroundImage);
}
}
}
function resizeImage(image, bounds) {
if(image.width === bounds.width && image.height === bounds.height) {
return image;
}
var ctx, canvas = doc.createElement('canvas');
canvas.width = bounds.width;
canvas.height = bounds.height;
ctx = canvas.getContext("2d");
drawImage(ctx, image, 0, 0, image.width, image.height, 0, 0, bounds.width, bounds.height );
return canvas;
}
function setOpacity(ctx, element, parentStack) {
return ctx.setVariable("globalAlpha", getCSS(element, "opacity") * ((parentStack) ? parentStack.opacity : 1));
}
function removePx(str) {
return str.replace("px", "");
}
var transformRegExp = /(matrix)\((.+)\)/;
function getTransform(element, parentStack) {
var transform = getCSS(element, "transform") || getCSS(element, "-webkit-transform") || getCSS(element, "-moz-transform") || getCSS(element, "-ms-transform") || getCSS(element, "-o-transform");
var transformOrigin = getCSS(element, "transform-origin") || getCSS(element, "-webkit-transform-origin") || getCSS(element, "-moz-transform-origin") || getCSS(element, "-ms-transform-origin") || getCSS(element, "-o-transform-origin") || "0px 0px";
transformOrigin = transformOrigin.split(" ").map(removePx).map(Util.asFloat);
var matrix;
if (transform && transform !== "none") {
var match = transform.match(transformRegExp);
if (match) {
switch(match[1]) {
case "matrix":
matrix = match[2].split(",").map(Util.trimText).map(Util.asFloat);
break;
}
}
}
return {
origin: transformOrigin,
matrix: matrix
};
}
function createStack(element, parentStack, bounds, transform) {
var ctx = h2cRenderContext((!parentStack) ? documentWidth() : bounds.width , (!parentStack) ? documentHeight() : bounds.height),
stack = {
ctx: ctx,
opacity: setOpacity(ctx, element, parentStack),
cssPosition: getCSS(element, "position"),
borders: getBorderData(element),
transform: transform,
clip: (parentStack && parentStack.clip) ? Util.Extend( {}, parentStack.clip ) : null
};
setZ(element, stack, parentStack);
// TODO correct overflow for absolute content residing under a static position
if (options.useOverflow === true && /(hidden|scroll|auto)/.test(getCSS(element, "overflow")) === true && /(BODY)/i.test(element.nodeName) === false){
stack.clip = (stack.clip) ? clipBounds(stack.clip, bounds) : bounds;
}
return stack;
}
function getBackgroundBounds(borders, bounds, clip) {
var backgroundBounds = {
left: bounds.left + borders[3].width,
top: bounds.top + borders[0].width,
width: bounds.width - (borders[1].width + borders[3].width),
height: bounds.height - (borders[0].width + borders[2].width)
};
if (clip) {
backgroundBounds = clipBounds(backgroundBounds, clip);
}
return backgroundBounds;
}
function getBounds(element, transform) {
var bounds = (transform.matrix) ? Util.OffsetBounds(element) : Util.Bounds(element);
transform.origin[0] += bounds.left;
transform.origin[1] += bounds.top;
return bounds;
}
function renderElement(element, parentStack, pseudoElement, ignoreBackground) {
var transform = getTransform(element, parentStack),
bounds = getBounds(element, transform),
image,
stack = createStack(element, parentStack, bounds, transform),
borders = stack.borders,
ctx = stack.ctx,
backgroundBounds = getBackgroundBounds(borders, bounds, stack.clip),
borderData = parseBorders(element, bounds, borders),
backgroundColor = (ignoreElementsRegExp.test(element.nodeName)) ? "#efefef" : getCSS(element, "backgroundColor");
createShape(ctx, borderData.clip);
ctx.save();
ctx.clip();
if (backgroundBounds.height > 0 && backgroundBounds.width > 0 && !ignoreBackground) {
renderBackgroundColor(ctx, bounds, backgroundColor);
renderBackgroundImage(element, backgroundBounds, ctx);
} else if (ignoreBackground) {
stack.backgroundColor = backgroundColor;
}
ctx.restore();
borderData.borders.forEach(function(border) {
renderBorders(ctx, border.args, border.color);
});
if (!pseudoElement) {
injectPseudoElements(element, stack);
}
switch(element.nodeName){
case "IMG":
if ((image = loadImage(element.getAttribute('src')))) {
renderImage(ctx, element, image, bounds, borders);
} else {
Util.log("html2canvas: Error loading <img>:" + element.getAttribute('src'));
}
break;
case "INPUT":
// TODO add all relevant type's, i.e. HTML5 new stuff
// todo add support for placeholder attribute for browsers which support it
if (/^(text|url|email|submit|button|reset)$/.test(element.type) && (element.value || element.placeholder || "").length > 0){
renderFormValue(element, bounds, stack);
}
break;
case "TEXTAREA":
if ((element.value || element.placeholder || "").length > 0){
renderFormValue(element, bounds, stack);
}
break;
case "SELECT":
if ((element.options||element.placeholder || "").length > 0){
renderFormValue(element, bounds, stack);
}
break;
case "LI":
renderListItem(element, stack, backgroundBounds);
break;
case "CANVAS":
renderImage(ctx, element, element, bounds, borders);
break;
}
return stack;
}
function isElementVisible(element) {
return (getCSS(element, 'display') !== "none" && getCSS(element, 'visibility') !== "hidden" && !element.hasAttribute("data-html2canvas-ignore"));
}
function parseElement (element, stack, pseudoElement) {
if (isElementVisible(element)) {
stack = renderElement(element, stack, pseudoElement, false) || stack;
if (!ignoreElementsRegExp.test(element.nodeName)) {
parseChildren(element, stack, pseudoElement);
}
}
}
function parseChildren(element, stack, pseudoElement) {
Util.Children(element).forEach(function(node) {
if (node.nodeType === node.ELEMENT_NODE) {
parseElement(node, stack, pseudoElement);
} else if (node.nodeType === node.TEXT_NODE) {
renderText(element, node, stack);
}
});
}
function init() {
var background = getCSS(document.documentElement, "backgroundColor"),
transparentBackground = (Util.isTransparent(background) && element === document.body),
stack = renderElement(element, null, false, transparentBackground);
parseChildren(element, stack);
if (transparentBackground) {
background = stack.backgroundColor;
}
body.removeChild(hidePseudoElements);
return {
backgroundColor: background,
stack: stack
};
}
return init();
};
function h2czContext(zindex) {
return {
zindex: zindex,
children: []
};
}
_html2canvas.Preload = function( options ) {
var images = {
numLoaded: 0, // also failed are counted here
numFailed: 0,
numTotal: 0,
cleanupDone: false
},
pageOrigin,
Util = _html2canvas.Util,
methods,
i,
count = 0,
element = options.elements[0] || document.body,
doc = element.ownerDocument,
domImages = element.getElementsByTagName('img'), // Fetch images of the present element only
imgLen = domImages.length,
link = doc.createElement("a"),
supportCORS = (function( img ){
return (img.crossOrigin !== undefined);
})(new Image()),
timeoutTimer;
link.href = window.location.href;
pageOrigin = link.protocol + link.host;
function isSameOrigin(url){
link.href = url;
link.href = link.href; // YES, BELIEVE IT OR NOT, that is required for IE9 - http://jsfiddle.net/niklasvh/2e48b/
var origin = link.protocol + link.host;
return (origin === pageOrigin);
}
function start(){
Util.log("html2canvas: start: images: " + images.numLoaded + " / " + images.numTotal + " (failed: " + images.numFailed + ")");
if (!images.firstRun && images.numLoaded >= images.numTotal){
Util.log("Finished loading images: # " + images.numTotal + " (failed: " + images.numFailed + ")");
if (typeof options.complete === "function"){
options.complete(images);
}
}
}
// TODO modify proxy to serve images with CORS enabled, where available
function proxyGetImage(url, img, imageObj){
var callback_name,
scriptUrl = options.proxy,
script;
link.href = url;
url = link.href; // work around for pages with base href="" set - WARNING: this may change the url
callback_name = 'html2canvas_' + (count++);
imageObj.callbackname = callback_name;
if (scriptUrl.indexOf("?") > -1) {
scriptUrl += "&";
} else {
scriptUrl += "?";
}
scriptUrl += 'url=' + encodeURIComponent(url) + '&callback=' + callback_name;
script = doc.createElement("script");
window[callback_name] = function(a){
if (a.substring(0,6) === "error:"){
imageObj.succeeded = false;
images.numLoaded++;
images.numFailed++;
start();
} else {
setImageLoadHandlers(img, imageObj);
img.src = a;
}
window[callback_name] = undefined; // to work with IE<9 // NOTE: that the undefined callback property-name still exists on the window object (for IE<9)
try {
delete window[callback_name]; // for all browser that support this
} catch(ex) {}
script.parentNode.removeChild(script);
script = null;
delete imageObj.script;
delete imageObj.callbackname;
};
script.setAttribute("type", "text/javascript");
script.setAttribute("src", scriptUrl);
imageObj.script = script;
window.document.body.appendChild(script);
}
function loadPseudoElement(element, type) {
var style = window.getComputedStyle(element, type),
content = style.content;
if (content.substr(0, 3) === 'url') {
methods.loadImage(_html2canvas.Util.parseBackgroundImage(content)[0].args[0]);
}
loadBackgroundImages(style.backgroundImage, element);
}
function loadPseudoElementImages(element) {
loadPseudoElement(element, ":before");
loadPseudoElement(element, ":after");
}
function loadGradientImage(backgroundImage, bounds) {
var img = _html2canvas.Generate.Gradient(backgroundImage, bounds);
if (img !== undefined){
images[backgroundImage] = {
img: img,
succeeded: true
};
images.numTotal++;
images.numLoaded++;
start();
}
}
function invalidBackgrounds(background_image) {
return (background_image && background_image.method && background_image.args && background_image.args.length > 0 );
}
function loadBackgroundImages(background_image, el) {
var bounds;
_html2canvas.Util.parseBackgroundImage(background_image).filter(invalidBackgrounds).forEach(function(background_image) {
if (background_image.method === 'url') {
methods.loadImage(background_image.args[0]);
} else if(background_image.method.match(/\-?gradient$/)) {
if(bounds === undefined) {
bounds = _html2canvas.Util.Bounds(el);
}
loadGradientImage(background_image.value, bounds);
}
});
}
function getImages (el) {
var elNodeType = false;
// Firefox fails with permission denied on pages with iframes
try {
Util.Children(el).forEach(getImages);
}
catch( e ) {}
try {
elNodeType = el.nodeType;
} catch (ex) {
elNodeType = false;
Util.log("html2canvas: failed to access some element's nodeType - Exception: " + ex.message);
}
if (elNodeType === 1 || elNodeType === undefined) {
loadPseudoElementImages(el);
try {
loadBackgroundImages(Util.getCSS(el, 'backgroundImage'), el);
} catch(e) {
Util.log("html2canvas: failed to get background-image - Exception: " + e.message);
}
loadBackgroundImages(el);
}
}
function setImageLoadHandlers(img, imageObj) {
img.onload = function() {
if ( imageObj.timer !== undefined ) {
// CORS succeeded
window.clearTimeout( imageObj.timer );
}
images.numLoaded++;
imageObj.succeeded = true;
img.onerror = img.onload = null;
start();
};
img.onerror = function() {
if (img.crossOrigin === "anonymous") {
// CORS failed
window.clearTimeout( imageObj.timer );
// let's try with proxy instead
if ( options.proxy ) {
var src = img.src;
img = new Image();
imageObj.img = img;
img.src = src;
proxyGetImage( img.src, img, imageObj );
return;
}
}
images.numLoaded++;
images.numFailed++;
imageObj.succeeded = false;
img.onerror = img.onload = null;
start();
};
}
methods = {
loadImage: function( src ) {
var img, imageObj;
if ( src && images[src] === undefined ) {
img = new Image();
if ( src.match(/data:image\/.*;base64,/i) ) {
img.src = src.replace(/url\(['"]{0,}|['"]{0,}\)$/ig, '');
imageObj = images[src] = {
img: img
};
images.numTotal++;
setImageLoadHandlers(img, imageObj);
} else if ( isSameOrigin( src ) || options.allowTaint === true ) {
imageObj = images[src] = {
img: img
};
images.numTotal++;
setImageLoadHandlers(img, imageObj);
img.src = src;
} else if ( supportCORS && !options.allowTaint && options.useCORS ) {
// attempt to load with CORS
img.crossOrigin = "anonymous";
imageObj = images[src] = {
img: img
};
images.numTotal++;
setImageLoadHandlers(img, imageObj);
img.src = src;
} else if ( options.proxy ) {
imageObj = images[src] = {
img: img
};
images.numTotal++;
proxyGetImage( src, img, imageObj );
}
}
},
cleanupDOM: function(cause) {
var img, src;
if (!images.cleanupDone) {
if (cause && typeof cause === "string") {
Util.log("html2canvas: Cleanup because: " + cause);
} else {
Util.log("html2canvas: Cleanup after timeout: " + options.timeout + " ms.");
}
for (src in images) {
if (images.hasOwnProperty(src)) {
img = images[src];
if (typeof img === "object" && img.callbackname && img.succeeded === undefined) {
// cancel proxy image request
window[img.callbackname] = undefined; // to work with IE<9 // NOTE: that the undefined callback property-name still exists on the window object (for IE<9)
try {
delete window[img.callbackname]; // for all browser that support this
} catch(ex) {}
if (img.script && img.script.parentNode) {
img.script.setAttribute("src", "about:blank"); // try to cancel running request
img.script.parentNode.removeChild(img.script);
}
images.numLoaded++;
images.numFailed++;
Util.log("html2canvas: Cleaned up failed img: '" + src + "' Steps: " + images.numLoaded + " / " + images.numTotal);
}
}
}
// cancel any pending requestForJob
if(window.stop !== undefined) {
window.stop();
} else if(document.execCommand !== undefined) {
document.execCommand("Stop", false);
}
if (document.close !== undefined) {
document.close();
}
images.cleanupDone = true;
if (!(cause && typeof cause === "string")) {
start();
}
}
},
renderingDone: function() {
if (timeoutTimer) {
window.clearTimeout(timeoutTimer);
}
}
};
if (options.timeout > 0) {
timeoutTimer = window.setTimeout(methods.cleanupDOM, options.timeout);
}
Util.log('html2canvas: Preload starts: finding background-images');
images.firstRun = true;
getImages(element);
Util.log('html2canvas: Preload: Finding images');
// load <img> images
for (i = 0; i < imgLen; i+=1){
methods.loadImage( domImages[i].getAttribute( "src" ) );
}
images.firstRun = false;
Util.log('html2canvas: Preload: Done.');
if (images.numTotal === images.numLoaded) {
start();
}
return methods;
};
_html2canvas.Renderer = function(parseQueue, options){
// http://www.w3.org/TR/CSS21/zindex.html
function createRenderQueue(parseQueue) {
var queue = [],
rootContext;
rootContext = (function buildStackingContext(rootNode) {
var rootContext = {};
function insert(context, node, specialParent) {
var zi = (node.zIndex.zindex === 'auto') ? 0 : Number(node.zIndex.zindex),
contextForChildren = context, // the stacking context for children
isPositioned = node.zIndex.isPositioned,
isFloated = node.zIndex.isFloated,
stub = {node: node},
childrenDest = specialParent; // where children without z-index should be pushed into
if (node.zIndex.ownStacking) {
// '!' comes before numbers in sorted array
contextForChildren = stub.context = { '!': [{node:node, children: []}]};
childrenDest = undefined;
} else if (isPositioned || isFloated) {
childrenDest = stub.children = [];
}
if (zi === 0 && specialParent) {
specialParent.push(stub);
} else {
if (!context[zi]) { context[zi] = []; }
context[zi].push(stub);
}
node.zIndex.children.forEach(function(childNode) {
insert(contextForChildren, childNode, childrenDest);
});
}
insert(rootContext, rootNode);
return rootContext;
})(parseQueue);
function sortZ(context) {
Object.keys(context).sort().forEach(function(zi) {
var nonPositioned = [],
floated = [],
positioned = [],
list = [];
// positioned after static
context[zi].forEach(function(v) {
if (v.node.zIndex.isPositioned || v.node.zIndex.opacity < 1) {
// http://www.w3.org/TR/css3-color/#transparency
// non-positioned element with opactiy < 1 should be stacked as if it were a positioned element with ‘z-index: 0’ and ‘opacity: 1’.
positioned.push(v);
} else if (v.node.zIndex.isFloated) {
floated.push(v);
} else {
nonPositioned.push(v);
}
});
(function walk(arr) {
arr.forEach(function(v) {
list.push(v);
if (v.children) { walk(v.children); }
});
})(nonPositioned.concat(floated, positioned));
list.forEach(function(v) {
if (v.context) {
sortZ(v.context);
} else {
queue.push(v.node);
}
});
});
}
sortZ(rootContext);
return queue;
}
function getRenderer(rendererName) {
var renderer;
if (typeof options.renderer === "string" && _html2canvas.Renderer[rendererName] !== undefined) {
renderer = _html2canvas.Renderer[rendererName](options);
} else if (typeof rendererName === "function") {
renderer = rendererName(options);
} else {
throw new Error("Unknown renderer");
}
if ( typeof renderer !== "function" ) {
throw new Error("Invalid renderer defined");
}
return renderer;
}
return getRenderer(options.renderer)(parseQueue, options, document, createRenderQueue(parseQueue.stack), _html2canvas);
};
_html2canvas.Util.Support = function (options, doc) {
function supportSVGRendering() {
var img = new Image(),
canvas = doc.createElement("canvas"),
ctx = (canvas.getContext === undefined) ? false : canvas.getContext("2d");
if (ctx === false) {
return false;
}
canvas.width = canvas.height = 10;
img.src = [
"data:image/svg+xml,",
"<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10'>",
"<foreignObject width='10' height='10'>",
"<div xmlns='http://www.w3.org/1999/xhtml' style='width:10;height:10;'>",
"sup",
"</div>",
"</foreignObject>",
"</svg>"
].join("");
try {
ctx.drawImage(img, 0, 0);
canvas.toDataURL();
} catch(e) {
return false;
}
_html2canvas.Util.log('html2canvas: Parse: SVG powered rendering available');
return true;
}
// Test whether we can use ranges to measure bounding boxes
// Opera doesn't provide valid bounds.height/bottom even though it supports the method.
function supportRangeBounds() {
var r, testElement, rangeBounds, rangeHeight, support = false;
if (doc.createRange) {
r = doc.createRange();
if (r.getBoundingClientRect) {
testElement = doc.createElement('boundtest');
testElement.style.height = "123px";
testElement.style.display = "block";
doc.body.appendChild(testElement);
r.selectNode(testElement);
rangeBounds = r.getBoundingClientRect();
rangeHeight = rangeBounds.height;
if (rangeHeight === 123) {
support = true;
}
doc.body.removeChild(testElement);
}
}
return support;
}
return {
rangeBounds: supportRangeBounds(),
svgRendering: options.svgRendering && supportSVGRendering()
};
};
window.html2canvas = function(elements, opts) {
elements = (elements.length) ? elements : [elements];
var queue,
canvas,
options = {
// general
logging: false,
elements: elements,
background: "#fff",
// preload options
proxy: null,
timeout: 0, // no timeout
useCORS: false, // try to load images as CORS (where available), before falling back to proxy
allowTaint: false, // whether to allow images to taint the canvas, won't need proxy if set to true
// parse options
svgRendering: false, // use svg powered rendering where available (FF11+)
ignoreElements: "IFRAME|OBJECT|PARAM",
useOverflow: true,
letterRendering: false,
chinese: false,
// render options
width: null,
height: null,
taintTest: true, // do a taint test with all images before applying to canvas
renderer: "Canvas"
};
options = _html2canvas.Util.Extend(opts, options);
_html2canvas.logging = options.logging;
options.complete = function( images ) {
if (typeof options.onpreloaded === "function") {
if ( options.onpreloaded( images ) === false ) {
return;
}
}
queue = _html2canvas.Parse( images, options );
if (typeof options.onparsed === "function") {
if ( options.onparsed( queue ) === false ) {
return;
}
}
canvas = _html2canvas.Renderer( queue, options );
if (typeof options.onrendered === "function") {
options.onrendered( canvas );
}
};
// for pages without images, we still want this to be async, i.e. return methods before executing
window.setTimeout( function(){
_html2canvas.Preload( options );
}, 0 );
return {
render: function( queue, opts ) {
return _html2canvas.Renderer( queue, _html2canvas.Util.Extend(opts, options) );
},
parse: function( images, opts ) {
return _html2canvas.Parse( images, _html2canvas.Util.Extend(opts, options) );
},
preload: function( opts ) {
return _html2canvas.Preload( _html2canvas.Util.Extend(opts, options) );
},
log: _html2canvas.Util.log
};
};
window.html2canvas.log = _html2canvas.Util.log; // for renderers
window.html2canvas.Renderer = {
Canvas: undefined // We are assuming this will be used
};
_html2canvas.Renderer.Canvas = function(options) {
options = options || {};
var doc = document,
safeImages = [],
testCanvas = document.createElement("canvas"),
testctx = testCanvas.getContext("2d"),
Util = _html2canvas.Util,
canvas = options.canvas || doc.createElement('canvas');
function createShape(ctx, args) {
ctx.beginPath();
args.forEach(function(arg) {
ctx[arg.name].apply(ctx, arg['arguments']);
});
ctx.closePath();
}
function safeImage(item) {
if (safeImages.indexOf(item['arguments'][0].src ) === -1) {
testctx.drawImage(item['arguments'][0], 0, 0);
try {
testctx.getImageData(0, 0, 1, 1);
} catch(e) {
testCanvas = doc.createElement("canvas");
testctx = testCanvas.getContext("2d");
return false;
}
safeImages.push(item['arguments'][0].src);
}
return true;
}
function renderItem(ctx, item) {
switch(item.type){
case "variable":
ctx[item.name] = item['arguments'];
break;
case "function":
switch(item.name) {
case "createPattern":
if (item['arguments'][0].width > 0 && item['arguments'][0].height > 0) {
try {
ctx.fillStyle = ctx.createPattern(item['arguments'][0], "repeat");
}
catch(e) {
Util.log("html2canvas: Renderer: Error creating pattern", e.message);
}
}
break;
case "drawShape":
createShape(ctx, item['arguments']);
break;
case "drawImage":
if (item['arguments'][8] > 0 && item['arguments'][7] > 0) {
if (!options.taintTest || (options.taintTest && safeImage(item))) {
ctx.drawImage.apply( ctx, item['arguments'] );
}
}
break;
default:
ctx[item.name].apply(ctx, item['arguments']);
}
break;
}
}
return function(parsedData, options, document, queue, _html2canvas) {
var ctx = canvas.getContext("2d"),
newCanvas,
bounds,
fstyle,
zStack = parsedData.stack;
canvas.width = canvas.style.width = options.width || zStack.ctx.width;
canvas.height = canvas.style.height = options.height || zStack.ctx.height;
fstyle = ctx.fillStyle;
ctx.fillStyle = (Util.isTransparent(zStack.backgroundColor) && options.background !== undefined) ? options.background : parsedData.backgroundColor;
ctx.fillRect(0, 0, canvas.width, canvas.height);
ctx.fillStyle = fstyle;
queue.forEach(function(storageContext) {
// set common settings for canvas
ctx.textBaseline = "bottom";
ctx.save();
if (storageContext.transform.matrix) {
ctx.translate(storageContext.transform.origin[0], storageContext.transform.origin[1]);
ctx.transform.apply(ctx, storageContext.transform.matrix);
ctx.translate(-storageContext.transform.origin[0], -storageContext.transform.origin[1]);
}
if (storageContext.clip){
ctx.beginPath();
ctx.rect(storageContext.clip.left, storageContext.clip.top, storageContext.clip.width, storageContext.clip.height);
ctx.clip();
}
if (storageContext.ctx.storage) {
storageContext.ctx.storage.forEach(function(item) {
renderItem(ctx, item);
});
}
ctx.restore();
});
Util.log("html2canvas: Renderer: Canvas renderer done - returning canvas obj");
if (options.elements.length === 1) {
if (typeof options.elements[0] === "object" && options.elements[0].nodeName !== "BODY") {
// crop image to the bounds of selected (single) element
bounds = _html2canvas.Util.Bounds(options.elements[0]);
newCanvas = document.createElement('canvas');
newCanvas.width = Math.ceil(bounds.width);
newCanvas.height = Math.ceil(bounds.height);
ctx = newCanvas.getContext("2d");
ctx.drawImage(canvas, bounds.left, bounds.top, bounds.width, bounds.height, 0, 0, bounds.width, bounds.height);
canvas = null;
return newCanvas;
}
}
return canvas;
};
};
})(window,document);
WARC/1.0
WARC-Type: request
WARC-Target-URI: http://www.cs.odu.edu/~mkelly/_js/html2canvas.js
WARC-Date: 2016-08-15T21:19:48Z
WARC-Concurrent-To: <urn:uuid:b6b64687-da90-4e9e-9cc0-fe213dfc74ec>
WARC-Record-ID: <urn:uuid:6e804543-cf81-43c3-98ec-5e024a90d3de>
Content-Type: application/http; msgtype=request
Content-Length: 299
GET /~mkelly/_js/html2canvas.js HTTP/1.0
Connection: Close
Referer: http://www.cs.odu.edu/~mkelly/
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Host: www.cs.odu.edu
User-Agent: Mozilla/5.0 (compatible; heritrix/3.3.0-SNAPSHOT-20160708-0038 +http://yourdomain.com)
WARC/1.0
WARC-Type: metadata
WARC-Target-URI: http://www.cs.odu.edu/~mkelly/_js/html2canvas.js
WARC-Date: 2016-08-15T21:19:48Z
WARC-Concurrent-To: <urn:uuid:b6b64687-da90-4e9e-9cc0-fe213dfc74ec>
WARC-Record-ID: <urn:uuid:db274d93-4ab2-464d-bc57-e20fe1b692b6>
Content-Type: application/warc-fields
Content-Length: 272
via: http://www.cs.odu.edu/~mkelly/
hopsFromSeed: RE
fetchTimeMs: 276
charsetForLinkExtraction: ISO-8859-1
outlink: http://www.cs.odu.edu/favicon.ico I =INFERRED_MISC
outlink: http://www.w3.org/2000/svg X =JS_MISC
outlink: http://www.w3.org/1999/xhtml X =JS_MISC
WARC/1.0
WARC-Type: response
WARC-Target-URI: https://plus.google.com/+MatKelly
WARC-Date: 2016-08-15T21:19:49Z
WARC-IP-Address: 64.233.176.113
WARC-Payload-Digest: sha1:WAGPDPVYIHST3NM3WXRBYSKI4CS2QNCV
WARC-Record-ID: <urn:uuid:a5961bf3-f0bd-4e8c-a3bd-32f6457a31e9>
Content-Type: application/http; msgtype=response
Content-Length: 92302
HTTP/1.0 200 OK
Content-Type: text/html; charset=utf-8
x-ua-compatible: IE=edge, chrome=1
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: Mon, 01 Jan 1990 00:00:00 GMT
Date: Mon, 15 Aug 2016 21:19:50 GMT
Server: ESF
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
X-Content-Type-Options: nosniff
Alternate-Protocol: 443:quic
Alt-Svc: quic=":443"; ma=2592000; v="36,35,34,33,32,31,30"
Accept-Ranges: none
Vary: User-Agent,Accept-Encoding
<!DOCTYPE html><html lang="en" dir="ltr" itemscope itemtype="http://schema.org/Person" ><head><meta name="referrer" content="origin"><base href="https://plus.google.com/"><style>
body {
visibility: hidden;
}
</style><script>(function(){(function(){function e(a){this.t={};this.tick=function(a,c,b){var d=void 0!=b?b:(new Date).getTime();this.t[a]=[d,c];if(void 0==b)try{window.console.timeStamp("CSI/"+a)}catch(e){}};this.tick("start",null,a)}var a,d;window.performance&&(d=(a=window.performance.timing)&&a.responseStart);var f=0<d?new e(d):new e;window.jstiming={Timer:e,load:f};if(a){var c=a.navigationStart;0<c&&d>=c&&(window.jstiming.srt=d-c)}if(a){var b=window.jstiming.load;0<c&&d>=c&&(b.tick("_wtsrt",void 0,c),b.tick("wtsrt_","_wtsrt",
d),b.tick("tbsd_","wtsrt_"))}try{a=null,window.chrome&&window.chrome.csi&&(a=Math.floor(window.chrome.csi().pageT),b&&0<c&&(b.tick("_tbnd",void 0,window.chrome.csi().startE),b.tick("tbnd_","_tbnd",c))),null==a&&window.gtbExternal&&(a=window.gtbExternal.pageT()),null==a&&window.external&&(a=window.external.pageT,b&&0<c&&(b.tick("_tbnd",void 0,window.external.startE),b.tick("tbnd_","_tbnd",c))),a&&(window.jstiming.pt=a)}catch(g){}})();})();
var loadTimer = window.jstiming.load; loadTimer.name = 'profload_streamv2_noauth_prod';</script><script>var OZ_pageStartTime = (new Date()).getTime(); var OZ_buildLabel = 'es_oz_20160811.10_p0'; var OZ_pathPrefix = ''; var OZ_jsVersion = 'S0zubYtyP20.en_US.'; var OZ_windowName = 'oz'; var OZ_lang = 'en'; var OZ_afsid = '1162296716997385714';var OZ_initWidget = 1;var OZ_footerLocale = 1;var OZ_cssUrl = '\/_\/scs\/apps-static\/_\/ss\/k\x3doz.home.-d9x04e2iyui8.L.X.O\/am\x3dHIjDITJAAQ\/d\x3d0\/rs\x3dAGLTcCPIVIi75ri_sn3E_zEC5qK0-HZ0fA';(function(){var l=this,q=function(b,a,c){b=b.split(".");c=c||l;b[0]in c||!c.execScript||c.execScript("var "+b[0]);for(var d;b.length&&(d=b.shift());)b.length||void 0===a?c[d]?c=c[d]:c=c[d]={}:c[d]=a},aa=function(){},ba=function(b,a){var c=Array.prototype.slice.call(arguments,1);return function(){var a=c.slice();a.push.apply(a,arguments);return b.apply(this,a)}},ca=Date.now||function(){return+new Date},da=function(b,a){q("OZ_wizbind",b,a)};var ea=function(b,a){da({trigger:function(a){var d=b.g(a.type);d||(t(b,a.type),d=b.g(a.type));d.call((a.target||a.srcElement).ownerDocument.documentElement,a)},bind:function(a){b.b=a;b.f&&(0<b.f.length&&a(b.f),b.f=null)}},a)};var fa=function(b,a){if(null===a)return!1;if("contains"in b&&1==a.nodeType)return b.contains(a);if("compareDocumentPosition"in b)return b==a||!!(b.compareDocumentPosition(a)&16);for(;a&&b!=a;)a=a.parentNode;return a==b};var ga={};var ha=function(b,a){return function(c){c||(c=window.event);return a.call(b,c)}},u=function(b){b=b.target||b.srcElement;!b.getAttribute&&b.parentNode&&(b=b.parentNode);return b},ia="undefined"!=typeof navigator&&/Macintosh/.test(navigator.userAgent),ja="undefined"!=typeof navigator&&!/Opera/.test(navigator.userAgent)&&/WebKit/.test(navigator.userAgent),ka={A:1,INPUT:1,TEXTAREA:1,SELECT:1,BUTTON:1},ma=function(){this._mouseEventsPrevented=!0},na={A:13,BUTTON:0,CHECKBOX:32,COMBOBOX:13,GRIDCELL:13,LINK:13,
LISTBOX:13,MENU:0,MENUBAR:0,MENUITEM:0,MENUITEMCHECKBOX:0,MENUITEMRADIO:0,OPTION:0,RADIO:32,RADIOGROUP:32,RESET:0,SUBMIT:0,TAB:0,TREE:13,TREEITEM:13},pa=function(b){return(b.getAttribute("type")||b.tagName).toUpperCase()in oa},ra=function(b){return(b.getAttribute("type")||b.tagName).toUpperCase()in qa},oa={CHECKBOX:!0,OPTION:!0,RADIO:!0},qa={COLOR:!0,DATE:!0,DATETIME:!0,"DATETIME-LOCAL":!0,EMAIL:!0,MONTH:!0,NUMBER:!0,PASSWORD:!0,RANGE:!0,SEARCH:!0,TEL:!0,TEXT:!0,TEXTAREA:!0,TIME:!0,URL:!0,WEEK:!0},
sa={A:!0,AREA:!0,BUTTON:!0,DIALOG:!0,IMG:!0,INPUT:!0,LINK:!0,MENU:!0,OPTGROUP:!0,OPTION:!0,PROGRESS:!0,SELECT:!0,TEXTAREA:!0};var ta=function(){this.j=[];this.a=[];this.c=[];this.i={};this.b=null;this.f=[]},ua="undefined"!=typeof navigator&&/iPhone|iPad|iPod/.test(navigator.userAgent),va=String.prototype.trim?function(b){return b.trim()}:function(b){return b.replace(/^\s+/,"").replace(/\s+$/,"")},wa=/\s*;\s*/,ya=function(b,a){return function(c){var d;var f=a,e;if("click"==f&&(ia&&c.metaKey||!ia&&c.ctrlKey||2==c.which||null==c.which&&4==c.button||c.shiftKey))f="clickmod";else{var g;g=c.which||c.keyCode||c.key;ja&&3==g&&(g=
13);if(13!=g&&32!=g)g=!1;else{var k=u(c);e=(k.getAttribute("role")||k.type||k.tagName).toUpperCase();var h;(h="keydown"!=c.type)||("getAttribute"in k?(h=(k.getAttribute("role")||k.tagName).toUpperCase(),h=!ra(k)&&("COMBOBOX"!=h||"INPUT"!=h)&&!k.isContentEditable):h=!1,h=!h);(h=h||c.ctrlKey||c.shiftKey||c.altKey||c.metaKey||pa(k)&&32==g)||((h=k.tagName in ka)||(h=k.getAttributeNode("tabindex"),h=null!=h&&h.specified),h=!(h&&!k.disabled));h?g=!1:(k="INPUT"!=k.tagName.toUpperCase()||k.type,h=!(e in na)&&
13==g,g=(0==na[e]%g||h)&&!!k)}g&&(f="clickkey")}k=c.srcElement||c.target;g=v(f,c,k,"",null);var m;for(e=k;e&&e!=this;e=e.__owner||e.parentNode){m=d=e;h=f;var n=m.__jsaction;if(!n){var A,n=null;"getAttribute"in m&&(n=m.getAttribute("jsaction"));if(A=n){n=ga[A];if(!n){for(var n={},M=A.split(wa),N=0,Pa=M?M.length:0;N<Pa;N++){var r=M[N];if(r){var O=r.indexOf(":"),la=-1!=O,Qa=la?va(r.substr(0,O)):"click",r=la?va(r.substr(O+1)):r;n[Qa]=r}}ga[A]=n}m.__jsaction=n}else n=xa,m.__jsaction=n}"clickkey"==h?h=
"click":"click"!=h||n.click||(h="clickonly");m={h:h,action:n[h]||"",event:null,m:!1};if(m.m||m.action)break}m&&(g=v(m.h,m.event||c,k,m.action||"",d,g.timeStamp));g&&"touchend"==g.eventType&&(g.event._preventMouseEvents=ma);if(m&&m.action){if(e="clickkey"==f)e=u(c),e=(e.type||e.tagName).toUpperCase(),(e=32==(c.which||c.keyCode||c.key)&&"CHECKBOX"!=e)||(e=u(c),k=(e.getAttribute("role")||e.tagName).toUpperCase(),e=e.tagName.toUpperCase()in sa&&"A"!=k&&!pa(e)&&!ra(e)||"BUTTON"==k);e&&(c.preventDefault?
c.preventDefault():c.returnValue=!1);if("mouseenter"==f||"mouseleave"==f)if(e=c.relatedTarget,!("mouseover"==c.type&&"mouseenter"==f||"mouseout"==c.type&&"mouseleave"==f)||e&&(e===d||fa(d,e)))g.action="",g.actionElement=null;else{var f={},p;for(p in c)"function"!==typeof c[p]&&"srcElement"!==p&&"target"!==p&&(f[p]=c[p]);f.type="mouseover"==c.type?"mouseenter":"mouseleave";f.target=f.srcElement=d;f.bubbles=!1;g.event=f;g.targetElement=d}}else g.action="",g.actionElement=null;d=g;b.b&&(p=v(d.eventType,
d.event,d.targetElement,d.action,d.actionElement,d.timeStamp),"clickonly"==p.eventType&&(p.eventType="click"),b.b(p,!0));if(d.actionElement){"A"!=d.actionElement.tagName||"click"!=d.eventType&&"clickmod"!=d.eventType||(c.preventDefault?c.preventDefault():c.returnValue=!1);if(b.b)b.b(d);else{var B;if((p=l.document)&&!p.createEvent&&p.createEventObject)try{B=p.createEventObject(c)}catch($a){B=c}else B=c;d.event=B;b.f.push(d)}if("touchend"==d.event.type&&d.event._mouseEventsPrevented){c=d.event;for(var ab in c);
ca()}}}},v=function(b,a,c,d,f,e){return{eventType:b,event:a,targetElement:c,action:d,actionElement:f,timeStamp:e||ca()}},xa={},za=function(b,a){return function(c){var d=b,f=a,e=!1;"mouseenter"==d?d="mouseover":"mouseleave"==d&&(d="mouseout");if(c.addEventListener){if("focus"==d||"blur"==d||"error"==d||"load"==d)e=!0;c.addEventListener(d,f,e)}else c.attachEvent&&("focus"==d?d="focusin":"blur"==d&&(d="focusout"),f=ha(c,f),c.attachEvent("on"+d,f));return{h:d,g:f,l:e}}},t=function(b,a){if(!b.i.hasOwnProperty(a)){var c=
ya(b,a),d=za(a,c);b.i[a]=c;b.j.push(d);for(c=0;c<b.a.length;++c){var f=b.a[c];f.b.push(d.call(null,f.a))}"click"==a&&t(b,"keydown")}};ta.prototype.g=function(b){return this.i[b]};var Aa=function(b,a){var c=a.a;ua&&(c.style.cursor="pointer");for(c=0;c<b.j.length;++c)a.b.push(b.j[c].call(null,a.a))},Ba=function(b){this.a=b;this.b=[]},Da=function(b,a){for(var c=0;c<a.length;++c)if(a[c].a!=b.a&&Ca(a[c].a,b.a))return!0;return!1},Ca=function(b,a){for(;b!=a&&a.parentNode;)a=a.parentNode;return b==a};q("OZ_wizstart",function(b){var a=new ta;b=b||window;var c=b.document.documentElement,d=new Ba(c);b:{for(var f=0;f<a.a.length;f++)if(Ca(a.a[f].a,c)){c=!0;break b}c=!1}if(c)a.c.push(d);else{Aa(a,d);a.a.push(d);for(var d=a.c.concat(a.a),c=[],f=[],e=0;e<a.a.length;++e){var g=a.a[e];if(Da(g,d)){c.push(g);for(var k=0;k<g.b.length;++k){var h=g.a,m=g.b[k];h.removeEventListener?h.removeEventListener(m.h,m.g,m.l):h.detachEvent&&h.detachEvent("on"+m.h,m.g)}g.b=[]}else f.push(g)}for(e=0;e<a.c.length;++e)g=a.c[e],
Da(g,d)?c.push(g):(f.push(g),Aa(a,g));a.a=f;a.c=c}t(a,"click");t(a,"focus");t(a,"focusin");t(a,"blur");t(a,"focusout");t(a,"keydown");t(a,"keypress");t(a,"mouseover");t(a,"mouseout");t(a,"mouseenter");t(a,"mouseleave");window.a&&"mobilebasic"===window.a&&(t(a,"touchstart"),t(a,"touchmove"),t(a,"touchend"),t(a,"cut"),t(a,"paste"));t(a,"change");t(a,"keyup");t(a,"mousedown");t(a,"mouseup");t(a,"input");ea(a,b)},void 0);var Ea=function(b,a,c,d){for(var f=c.length;0<=(a=b.indexOf(c,a))&&a<d;){var e=b.charCodeAt(a-1);if(38==e||63==e)if(e=b.charCodeAt(a+f),!e||61==e||38==e||35==e)return a;a+=f+1}return-1},Fa=/#|$/,Ga=/[?&]($|#)/;var w=function(b,a,c,d){(new Image).src="/_/resourcefailure?type="+b+"&hl="+encodeURIComponent(c)+(d?"&reason="+encodeURIComponent(d):"")+"&url="+encodeURIComponent(a);if("css"==b&&(b=window,a=b.document.body,b.getComputedStyle&&"hidden"==b.getComputedStyle(a,null).visibility))for(c=document.createElement("div"),c.setAttribute("style","display: none;"),c.innerHTML=a.innerHTML,d=document.createElement("iframe"),d.setAttribute("src","/_/css-load-error/"),d.setAttribute("frameborder",0),d.setAttribute("height",
b.innerHeight-40),d.setAttribute("width","100%"),a.innerHTML="",a.appendChild(d),a.appendChild(c),b=document.getElementsByTagName("style"),a=0,c=b.length;a<c;a++)(d=b[a])&&d.parentNode&&d.parentNode.removeChild(d)};q("oz.reportError",w,void 0);var x=function(b){var a=document.createElement("style");a.type="text/css";document.getElementsByTagName("head")[0].appendChild(a);a.styleSheet?a.styleSheet.cssText=b:a.appendChild(document.createTextNode(b))};var Ha,y=window.OZ_prog=0,Ia=function(){var b=window;!b._jsl&&y<=Ha?w("js",(document.getElementById("js")||document.getElementById("base-js")).src,b.OZ_lang,y+"%"):(Ha=y,b.setTimeout(Ia,3E4))},Ja="gpcaz tab gpsrc gpsls wwc plsa plsatok prsrc apisrc vnl socpid socfid phselids ppsu rdipvld".split(" "),Ka={};q("OZ_savedQueryParams",Ka,void 0);
var La=function(){var b=window,a=b.location.href,c=a.indexOf("#");b.location.hash||-1==c||(a=a.substr(0,c)+"%23"+a.substr(c+1,a.length));return a},Ma=window==top?null:"about:blank";if(Ma){var z=Ma;if(!/[?&]rdipvld=1/.test(z))var Na=z.match(/^([^#]*)(.*)$/),z=Na[1]+(0>z.indexOf("?")?"?":"&")+"rdipvld=1"+Na[2];window.location=z}
for(var C=La(),D=0;D<Ja.length;++D){var E=Ja[D],F;var G=C,Oa=E,H=G.search(Fa),I=Ea(G,0,Oa,H);if(0>I)F=null;else{var J=G.indexOf("&",I);if(0>J||J>H)J=H;I+=Oa.length+1;F=decodeURIComponent(G.substr(I,J-I).replace(/\+/g," "))}F&&(Ka[E]=F);for(var K=C,Ra=E,L=K.search(Fa),P=0,Q=void 0,R=[];0<=(Q=Ea(K,P,Ra,L));)R.push(K.substring(P,Q)),P=Math.min(K.indexOf("&",Q)+1||L,L);R.push(K.substr(P));C=R.join("").replace(Ga,"$1")}var Sa=window;
if(Sa.history&&Sa.history.pushState){var S=window;S.opera||S.history.replaceState(null,S.document.title||"",C)}var T=l.OZ_pathPrefix,Ta=La().match(/^(?:([^:/?#.]+):)?(?:\/\/(?:([^/?#]*)@)?([^/#?]*?)(?::([0-9]+))?(?=[/#?]|$))?([^?#]+)?(?:\?([^#]*))?(?:#([\s\S]*))?$/),U=Ta[5]||"",Ua=Ta[7]||"";Ua&&(T&&0==U.indexOf(T)&&(U=U.substr(T.length)),0==U.indexOf("/")&&(U=U.substr(1)),U!=Ua&&x(".maybe-hide {visibility:hidden}"));window.setTimeout(Ia,3E4);
var V=window,W=ba(function(b){b.OZ_clickCount+=1},V),Va=ba(function(b,a){b.removeEventListener?b.removeEventListener("click",a,!1):b.detachEvent&&b.detachEvent("onclick",a)},V,W);window.OZ_clickCount=0;V.addEventListener?(V.addEventListener("click",W,!1),V.addEventListener("load",Va,!1)):V.attachEvent&&(V.attachEvent("onclick",W),V.attachEvent("onload",Va));var X=function(){};X.prototype.a=function(){throw Error("unimplemented abstract method");};var Y,Z=function(){};(function(){function b(){}b.prototype=X.prototype;Z.b=X.prototype;Z.prototype=new b;Z.a=function(a,b,d){for(var f=Array(arguments.length-2),e=2;e<arguments.length;e++)f[e-2]=arguments[e];return X.prototype[b].apply(a,f)}})();
Z.prototype.a=function(){var b;a:{if(!this.b&&"undefined"==typeof XMLHttpRequest&&"undefined"!=typeof ActiveXObject){for(var a=["MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"],c=0;c<a.length;c++){var d=a[c];try{new ActiveXObject(d);b=this.b=d;break a}catch(f){}}throw Error("Could not create ActiveXObject. ActiveX might be disabled, or MSXML might not be installed");}b=this.b}return b?new ActiveXObject(b):new XMLHttpRequest};Y=new Z;var Ya=function(b,a){if(4==a.readyState){var c=window;Wa("xcl");a.onreadystatechange=aa;var d=a.status;if(400>d)try{var d=0,f=a.getResponseHeader("X-Framework-CSS-Blocks"),e=a.responseText;f||(f="/"==e.charAt(0)&&"*"==e.charAt(1)?e.substring(2,e.indexOf("*/")):null)&&(d=2+f.length+2);if(f){for(var f=f.split(","),g=0;g<f.length;g++){var k=Number(f[g]);x(e.substr(d,k));d+=k}d<e.length&&x(e.substr(d))}else x(e),Xa()&&w("css",b,c.OZ_lang,"nooffsets");c.setTimeout(function(){for(var a=!1,d=0,f=document.styleSheets.length;d<
f;d++){var g=document.styleSheets[d];if((g=g.cssRules||g.rules)&&0<g.length&&"sentinel"==g[g.length-1].selectorText){a=!0;break}}if(a)if(Wa("xcr"),c.onCssLoaded)c.onCssLoaded();else c.onCssLoaded=!0;else w("css",b,c.OZ_lang,"truncated."+e.length)},1E3)}catch(h){throw c.console&&c.console.warn(h),w("css",b,c.OZ_lang,"error"),h;}else w("css",b,c.OZ_lang,"status."+d)}},Xa=function(){var b=window.navigator.userAgent;return-1!=b.indexOf("MSIE")&&0!=b.indexOf("Opera")},Za=function(){var b=window.OZ_cssUrl;
Wa("xcs");var a=Y.a();a.open("GET",b,!0);a.onreadystatechange=function(){Ya(b,a)};a.send(null)},Wa=function(b){var a=window;a.jstiming&&a.jstiming.load&&a.jstiming.load.tick(b)};window.OZ_cssUrl&&(window.OZ_loadCssViaLinkTag||Za());q("OZ_requestJs",function(b,a,c,d){var f=Y.a();f.open("GET",a,!0);f.onreadystatechange=function(){if(4==f.readyState){var b=window;f.onreadystatechange=aa;var g=f.status;if(200==g)b[c](f.responseText,a);else b[d](g),w("js",a,b.OZ_lang,"latejsxhr: "+g)}};f.send(null)},void 0);})();
</script><title itemprop="name">Mat Kelly - Google+</title><meta property="og:title" content="Mat Kelly - Google+"><meta name="twitter:title" content="Mat Kelly - Google+"><script>loadTimer.tick('vl');</script><style>#gb{font:13px/27px Arial,sans-serif;height:30px}#gbz,#gbg{position:absolute;white-space:nowrap;top:0;height:30px;z-index:1000}#gbz{left:0;padding-left:4px}#gbg{right:0;padding-right:5px}#gbs{background:transparent;position:absolute;top:-999px;visibility:hidden;z-index:998;right:0}.gbto #gbs{background:#fff}#gbx3,#gbx4{background-color:#2d2d2d;background-image:none;_background-image:none;background-position:0 -138px;background-repeat:repeat-x;border-bottom:1px solid #000;font-size:24px;height:29px;_height:30px;opacity:1;filter:alpha(opacity=100);position:absolute;top:0;width:100%;z-index:990}#gbx3{left:0}#gbx4{right:0}#gbb{position:relative}#gbbw{left:0;position:absolute;top:30px;width:100%}.gbtcb{position:absolute;visibility:hidden}#gbz .gbtcb{right:0}#gbg .gbtcb{left:0}.gbxx{display:none !important}.gbxo{opacity:0 !important;filter:alpha(opacity=0) !important}.gbm{position:absolute;z-index:999;top:-999px;visibility:hidden;text-align:left;border:1px solid #bebebe;background:#fff;-moz-box-shadow:-1px 1px 1px rgba(0,0,0,.2);-webkit-box-shadow:0 2px 4px rgba(0,0,0,.2);box-shadow:0 2px 4px rgba(0,0,0,.2)}.gbrtl .gbm{-moz-box-shadow:1px 1px 1px rgba(0,0,0,.2)}.gbto .gbm,.gbto #gbs{top:29px;visibility:visible}#gbz .gbm{left:0}#gbg .gbm{right:0}.gbxms{background-color:#ccc;display:block;position:absolute;z-index:1;top:-1px;left:-2px;right:-2px;bottom:-2px;opacity:.4;-moz-border-radius:3px;filter:progid:DXImageTransform.Microsoft.Blur(pixelradius=5);*opacity:1;*top:-2px;*left:-5px;*right:5px;*bottom:4px;-ms-filter:"progid:DXImageTransform.Microsoft.Blur(pixelradius=5)";opacity:1\0/;top:-4px\0/;left:-6px\0/;right:5px\0/;bottom:4px\0/}.gbma{position:relative;top:-1px;border-style:solid dashed dashed;border-color:transparent;border-top-color:#c0c0c0;display:-moz-inline-box;display:inline-block;font-size:0;height:0;line-height:0;width:0;border-width:3px 3px 0;padding-top:1px;left:4px}#gbztms1,#gbi4m1,#gbi4s,#gbi4t{zoom:1}.gbtc,.gbmc,.gbmcc{display:block;list-style:none;margin:0;padding:0}.gbmc{background:#fff;padding:10px 0;position:relative;z-index:2;zoom:1}.gbt{position:relative;display:-moz-inline-box;display:inline-block;line-height:27px;padding:0;vertical-align:top}.gbt{*display:inline}.gbto{box-shadow:0 2px 4px rgba(0,0,0,.2);-moz-box-shadow:0 2px 4px rgba(0,0,0,.2);-webkit-box-shadow:0 2px 4px rgba(0,0,0,.2)}.gbzt,.gbgt{cursor:pointer;display:block;text-decoration:none !important}span#gbg6,span#gbg4{cursor:default}.gbts{border-left:1px solid transparent;border-right:1px solid transparent;display:block;*display:inline-block;padding:0 5px;position:relative;z-index:1000}.gbts{*display:inline}.gbzt .gbts{display:inline;zoom:1}.gbto .gbts{background:#fff;border-color:#bebebe;color:#36c;padding-bottom:1px;padding-top:2px}.gbz0l .gbts{color:#fff;font-weight:bold}.gbtsa{padding-right:9px}#gbz .gbzt,#gbz .gbgt,#gbg .gbgt{color:#ccc!important}.gbtb2{display:block;border-top:2px solid transparent}.gbto .gbzt .gbtb2,.gbto .gbgt .gbtb2{border-top-width:0}.gbtb .gbts{background:url(//ssl.gstatic.com/gb/images/b_8d5afc09.png);_background:url(//ssl.gstatic.com/gb/images/b8_3615d64d.png);background-position:-27px -22px;border:0;font-size:0;padding:29px 0 0;*padding:27px 0 0;width:1px}.gbzt:hover,.gbzt:focus,.gbgt-hvr,.gbgt:focus{background-color:#4c4c4c;background-image:none;_background-image:none;background-position:0 -102px;background-repeat:repeat-x;outline:none;text-decoration:none !important}.gbpdjs .gbto .gbm{min-width:99%}.gbz0l .gbtb2{border-top-color:#dd4b39!important}#gbi4s,#gbi4s1{font-weight:bold}#gbg6.gbgt-hvr,#gbg6.gbgt:focus{background-color:transparent;background-image:none}.gbg4a{font-size:0;line-height:0}.gbg4a .gbts{padding:27px 5px 0;*padding:25px 5px 0}.gbto .gbg4a .gbts{padding:29px 5px 1px;*padding:27px 5px 1px}#gbi4i,#gbi4id{left:5px;border:0;height:24px;position:absolute;top:1px;width:24px}.gbto #gbi4i,.gbto #gbi4id{top:3px}.gbi4p{display:block;width:24px}#gbi4id{background-position:-44px -101px}#gbmpid{background-position:0 0}#gbmpi,#gbmpid{border:none;display:inline-block;height:48px;width:48px}#gbmpiw{display:inline-block;line-height:9px;padding-left:20px;margin-top:10px;position:relative}#gbmpi,#gbmpid,#gbmpiw{*display:inline}#gbg5{font-size:0}#gbgs5{padding:5px !important}.gbto #gbgs5{padding:7px 5px 6px !important}#gbi5{background:url(//ssl.gstatic.com/gb/images/b_8d5afc09.png);_background:url(//ssl.gstatic.com/gb/images/b8_3615d64d.png);background-position:0 0;display:block;font-size:0;height:17px;width:16px}.gbto #gbi5{background-position:-6px -22px}.gbn .gbmt,.gbn .gbmt:visited,.gbnd .gbmt,.gbnd .gbmt:visited{color:#dd8e27 !important}.gbf .gbmt,.gbf .gbmt:visited{color:#900 !important}.gbmt,.gbml1,.gbmlb,.gbmt:visited,.gbml1:visited,.gbmlb:visited{color:#36c !important;text-decoration:none !important}.gbmt,.gbmt:visited{display:block}.gbml1,.gbmlb,.gbml1:visited,.gbmlb:visited{display:inline-block;margin:0 10px}.gbml1,.gbmlb,.gbml1:visited,.gbmlb:visited{*display:inline}.gbml1,.gbml1:visited{padding:0 10px}.gbml1-hvr,.gbml1:focus{outline:none;text-decoration:underline !important}#gbpm .gbml1{display:inline;margin:0;padding:0;white-space:nowrap}.gbmlb,.gbmlb:visited{line-height:27px}.gbmlb-hvr,.gbmlb:focus{outline:none;text-decoration:underline !important}.gbmlbw{color:#ccc;margin:0 10px}.gbmt{padding:0 20px}.gbmt:hover,.gbmt:focus{background:#eee;cursor:pointer;outline:0 solid black;text-decoration:none !important}.gbm0l,.gbm0l:visited{color:#000 !important;font-weight:bold}.gbmh{border-top:1px solid #bebebe;font-size:0;margin:10px 0}#gbd4 .gbmc{background:#f5f5f5;padding-top:0}#gbd4 .gbsbic::-webkit-scrollbar-track:vertical{background-color:#f5f5f5;margin-top:2px}#gbmpdv{background:#fff;border-bottom:1px solid #bebebe;-moz-box-shadow:0 2px 4px rgba(0,0,0,.12);-o-box-shadow:0 2px 4px rgba(0,0,0,.12);-webkit-box-shadow:0 2px 4px rgba(0,0,0,.12);box-shadow:0 2px 4px rgba(0,0,0,.12);position:relative;z-index:1}#gbd4 .gbmh{margin:0}.gbmtc{padding:0;margin:0;line-height:27px}.GBMCC:last-child:after,#GBMPAL:last-child:after{content:'\0A\0A';white-space:pre;position:absolute}#gbmps{*zoom:1}#gbd4 .gbpc,#gbmpas .gbmt{line-height:17px}#gbd4 .gbpgs .gbmtc{line-height:27px}#gbd4 .gbmtc{border-bottom:1px solid #bebebe}#gbd4 .gbpc{display:inline-block;margin:16px 0 10px;padding-right:50px;vertical-align:top}#gbd4 .gbpc{*display:inline}.gbpc .gbps,.gbpc .gbps2{display:block;margin:0 20px}#gbmplp.gbps{margin:0 10px}.gbpc .gbps{color:#000;font-weight:bold}.gbpc .gbpd{margin-bottom:5px}.gbpd .gbmt,.gbpd .gbps{color:#666 !important}.gbpd .gbmt{opacity:.4;filter:alpha(opacity=40)}.gbps2{color:#666;display:block}.gbp0{display:none}.gbp0 .gbps2{font-weight:bold}#gbd4 .gbmcc{margin-top:5px}.gbpmc{background:#fef9db}.gbpmc .gbpmtc{padding:10px 20px}#gbpm{border:0;*border-collapse:collapse;border-spacing:0;margin:0;white-space:normal}#gbpm .gbpmtc{border-top:none;color:#000 !important;font:11px Arial,sans-serif}#gbpms{*white-space:nowrap}.gbpms2{font-weight:bold;white-space:nowrap}#gbmpal{*border-collapse:collapse;border-spacing:0;border:0;margin:0;white-space:nowrap;width:100%}.gbmpala,.gbmpalb{font:13px Arial,sans-serif;line-height:27px;padding:10px 20px 0;white-space:nowrap}.gbmpala{padding-left:0;text-align:left}.gbmpalb{padding-right:0;text-align:right}#gbmpasb .gbps{color:#000}#gbmpal .gbqfbb{margin:0 20px}.gbp0 .gbps{*display:inline}a.gbiba{margin:8px 20px 10px}.gbmpiaw{display:inline-block;padding-right:10px;margin-bottom:6px;margin-top:10px}.gbxv{visibility:hidden}.gbmpiaa{display:block;margin-top:10px}.gbmpia{border:none;display:block;height:48px;width:48px}.gbmpnw{display:inline-block;height:auto;margin:10px 0;vertical-align:top}
.gbqfb,.gbqfba,.gbqfbb{-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;cursor:default !important;display:inline-block;font-weight:bold;height:29px;line-height:29px;min-width:54px;*min-width:70px;padding:0 8px;text-align:center;text-decoration:none !important;-moz-user-select:none;-webkit-user-select:none}.gbqfb:focus,.gbqfba:focus,.gbqfbb:focus{border:1px solid #4d90fe;-moz-box-shadow:inset 0 0 0 1px rgba(255, 255, 255, 0.5);-webkit-box-shadow:inset 0 0 0 1px rgba(255, 255, 255, 0.5);box-shadow:inset 0 0 0 1px rgba(255, 255, 255, 0.5);outline:none}.gbqfb-hvr:focus,.gbqfba-hvr:focus,.gbqfbb-hvr:focus{-webkit-box-shadow:inset 0 0 0 1px #fff,0 1px 1px rgba(0,0,0,.1);-moz-box-shadow:inset 0 0 0 1px #fff,0 1px 1px rgba(0,0,0,.1);box-shadow:inset 0 0 0 1px #fff,0 1px 1px rgba(0,0,0,.1)}.gbqfb-no-focus:focus{border:1px solid #3079ed;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.gbqfb-hvr,.gbqfba-hvr,.gbqfbb-hvr{-webkit-box-shadow:0 1px 1px rgba(0,0,0,.1);-moz-box-shadow:0 1px 1px rgba(0,0,0,.1);box-shadow:0 1px 1px rgba(0,0,0,.1)}.gbqfb::-moz-focus-inner,.gbqfba::-moz-focus-inner,.gbqfbb::-moz-focus-inner{border:0}.gbqfba,.gbqfbb{border:1px solid #dcdcdc;border-color:rgba(0,0,0,.1);color:#444 !important;font-size:11px}.gbqfb{background-color:#4d90fe;background-image:-webkit-gradient(linear,left top,left bottom,from(#4d90fe),to(#4787ed));background-image:-webkit-linear-gradient(top,#4d90fe,#4787ed);background-image:-moz-linear-gradient(top,#4d90fe,#4787ed);background-image:-ms-linear-gradient(top,#4d90fe,#4787ed);background-image:-o-linear-gradient(top,#4d90fe,#4787ed);background-image:linear-gradient(top,#4d90fe,#4787ed);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#4d90fe',EndColorStr='#4787ed');border:1px solid #3079ed;color:#fff!important;margin:0 0}.gbqfb-hvr{border-color:#2f5bb7}.gbqfb-hvr:focus{border-color:#2f5bb7}.gbqfb-hvr,.gbqfb-hvr:focus{background-color:#357ae8;background-image:-webkit-gradient(linear,left top,left bottom,from(#4d90fe),to(#357ae8));background-image:-webkit-linear-gradient(top,#4d90fe,#357ae8);background-image:-moz-linear-gradient(top,#4d90fe,#357ae8);background-image:-ms-linear-gradient(top,#4d90fe,#357ae8);background-image:-o-linear-gradient(top,#4d90fe,#357ae8);background-image:linear-gradient(top,#4d90fe,#357ae8)}.gbqfb:active{background-color:inherit;-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.3)}.gbqfba{background-color:#f5f5f5;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#f1f1f1));background-image:-webkit-linear-gradient(top,#f5f5f5,#f1f1f1);background-image:-moz-linear-gradient(top,#f5f5f5,#f1f1f1);background-image:-ms-linear-gradient(top,#f5f5f5,#f1f1f1);background-image:-o-linear-gradient(top,#f5f5f5,#f1f1f1);background-image:linear-gradient(top,#f5f5f5,#f1f1f1);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#f5f5f5',EndColorStr='#f1f1f1')}.gbqfba-hvr,.gbqfba-hvr:active{background-color:#f8f8f8;background-image:-webkit-gradient(linear,left top,left bottom,from(#f8f8f8),to(#f1f1f1));background-image:-webkit-linear-gradient(top,#f8f8f8,#f1f1f1);background-image:-moz-linear-gradient(top,#f8f8f8,#f1f1f1);background-image:-ms-linear-gradient(top,#f8f8f8,#f1f1f1);background-image:-o-linear-gradient(top,#f8f8f8,#f1f1f1);background-image:linear-gradient(top,#f8f8f8,#f1f1f1);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#f8f8f8',EndColorStr='#f1f1f1')}.gbqfbb{background-color:#fff;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#fbfbfb));background-image:-webkit-linear-gradient(top,#fff,#fbfbfb);background-image:-moz-linear-gradient(top,#fff,#fbfbfb);background-image:-ms-linear-gradient(top,#fff,#fbfbfb);background-image:-o-linear-gradient(top,#fff,#fbfbfb);background-image:linear-gradient(top,#fff,#fbfbfb);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ffffff',EndColorStr='#fbfbfb')}.gbqfbb-hvr,.gbqfbb-hvr:active{background-color:#fff;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#f8f8f8));background-image:-webkit-linear-gradient(top,#fff,#f8f8f8);background-image:-moz-linear-gradient(top,#fff,#f8f8f8);background-image:-ms-linear-gradient(top,#fff,#f8f8f8);background-image:-o-linear-gradient(top,#fff,#f8f8f8);background-image:linear-gradient(top,#fff,#f8f8f8);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ffffff',EndColorStr='#f8f8f8')}.gbqfba-hvr,.gbqfba-hvr:active,.gbqfbb-hvr,.gbqfbb-hvr:active{border-color:#c6c6c6;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.1);-moz-box-shadow:0 1px 1px rgba(0,0,0,.1);box-shadow:0 1px 1px rgba(0,0,0,.1);color:#222 !important}.gbqfba:active,.gbqfbb:active{-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}
#gbmpas{max-height:220px}#gbmm{max-height:530px}.gbsb{-webkit-box-sizing:border-box;display:block;position:relative;*zoom:1}.gbsbic{overflow:auto}.gbsbis .gbsbt,.gbsbis .gbsbb{-webkit-mask-box-image:-webkit-gradient(linear,left top,right top,color-stop(0,rgba(0,0,0,.1)),color-stop(.5,rgba(0,0,0,.8)),color-stop(1,rgba(0,0,0,.1)));left:0;margin-right:0;opacity:0;position:absolute;width:100%}.gbsb .gbsbt:after,.gbsb .gbsbb:after{content:"";display:block;height:0;left:0;position:absolute;width:100%}.gbsbis .gbsbt{background:-webkit-gradient(linear,left top,left bottom,from(rgba(0,0,0,.2)),to(rgba(0,0,0,0)));background-image:-webkit-linear-gradient(top,rgba(0,0,0,.2),rgba(0,0,0,0));background-image:-moz-linear-gradient(top,rgba(0,0,0,.2),rgba(0,0,0,0));background-image:-ms-linear-gradient(top,rgba(0,0,0,.2),rgba(0,0,0,0));background-image:-o-linear-gradient(top,rgba(0,0,0,.2),rgba(0,0,0,0));background-image:linear-gradient(top,rgba(0,0,0,.2),rgba(0,0,0,0));height:6px;top:0}.gbsb .gbsbt:after{border-top:1px solid #ebebeb;border-color:rgba(0,0,0,.3);top:0}.gbsb .gbsbb{-webkit-mask-box-image:-webkit-gradient(linear,left top,right top,color-stop(0,rgba(0,0,0,.1)),color-stop(.5,rgba(0,0,0,.8)),color-stop(1,rgba(0,0,0,.1)));background:-webkit-gradient(linear,left bottom,left top,from(rgba(0,0,0,.2)),to(rgba(0,0,0,0)));background-image:-webkit-linear-gradient(bottom,rgba(0,0,0,.2),rgba(0,0,0,0));background-image:-moz-linear-gradient(bottom,rgba(0,0,0,.2),rgba(0,0,0,0));background-image:-ms-linear-gradient(bottom,rgba(0,0,0,.2),rgba(0,0,0,0));background-image:-o-linear-gradient(bottom,rgba(0,0,0,.2),rgba(0,0,0,0));background-image:linear-gradient(bottom,rgba(0,0,0,.2),rgba(0,0,0,0));bottom:0;height:4px}.gbsb .gbsbb:after{border-bottom:1px solid #ebebeb;border-color:rgba(0,0,0,.3);bottom:0}
</style><style>body {-webkit-font-smoothing: antialiased;}@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 400;
src: url(//fonts.gstatic.com/s/roboto/v15/W5F8_SL0XFawnjxHGsZjJA.ttf) format('truetype');
}
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 700;
src: url(//fonts.gstatic.com/s/roboto/v15/bdHGHleUa-ndQCOrdpfxfw.ttf) format('truetype');
}
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 300;
src: url(//fonts.gstatic.com/s/roboto/v15/dtpHsbgPEm2lVWciJZ0P-A.ttf) format('truetype');
}
</style><link rel="shortcut icon" href="https://ssl.gstatic.com/images/branding/product/ico/google_plus_alldp.ico"><meta name="Description" content="Mat Kelly - Software Developer, Research Scientist - NASA Langley Research Center - Old Dominion University Research Foundation - Blade Agency"><link rel="canonical" href="https://plus.google.com/+MatKelly"><meta itemprop="name" content="Mat Kelly"><meta itemprop="description" content="Works at NASA Langley Research Center as Software Developer, Research Scientist. Worked at Old Dominion University Research Foundation - Blade Agency."><meta itemprop="image" content="//lh6.googleusercontent.com/-iNDr29fIsWM/AAAAAAAAAAI/AAAAAAAAMR0/b0M788l81Wk/photo.jpg"><meta itemprop="url" content="https://plus.google.com/+MatKelly"><link rel="alternate" href="android-app://com.google.android.apps.plus/https/plus.google.com/+MatKelly"><link rel="alternate" href="ios-app://447119634/gplus/plus.google.com/+MatKelly"><noscript><link rel="stylesheet" id="ss" href="/_/scs/apps-static/_/ss/k=oz.home.-d9x04e2iyui8.L.X.O/am=HIjDITJAAQ/d=0/rs=AGLTcCPIVIi75ri_sn3E_zEC5qK0-HZ0fA"></noscript></head><body class="Td lj"><input type="text" name="hist_state" id="hist_state" style="display:none;"><iframe id="hist_frame" name="hist_frame603758897" class="ss" tabindex="-1"></iframe><script>window['OZ_wizstart'] && window['OZ_wizstart']()</script><script>
function ozIpStart() {
OZ_start && OZ_start();
}
</script><script id="base-js" src="/_/scs/apps-static/_/js/k=oz.home.en_US.S0zubYtyP20.O/m=b,prc/am=HIjDITJAAQ/rt=j/d=1/rs=AGLTcCNtoJhMLwJ4Zzadzg8ou0gbt7ELsA" async onload="ozIpStart();"></script><div id="notify-widget-pane" class="Fba PzIwMb" aria-live="assertive"></div><div class="Z0"><div class="Of ooe"><div id=gb><script>window.gbar&&gbar.eli&&gbar.eli()</script><div id=gbw><div id=gbz><span class=gbtcb></span><ol id=gbzc class=gbtc><li class=gbt><a target=_blank onclick=gbar.logger.il(1,{t:1}); class=gbzt id=gb_1 href="https://www.google.com/webhp?tab=Xw"><span class=gbtb2></span><span class=gbts>Search</span></a></li><li class=gbt><a target=_blank onclick=gbar.logger.il(1,{t:2}); class=gbzt id=gb_2 href="http://www.google.com/imghp?hl=en&tab=Xi"><span class=gbtb2></span><span class=gbts>Images</span></a></li><li class=gbt><a target=_blank onclick=gbar.logger.il(1,{t:8}); class=gbzt id=gb_8 href="https://maps.google.com/maps?hl=en&tab=Xl"><span class=gbtb2></span><span class=gbts>Maps</span></a></li><li class=gbt><a target=_blank onclick=gbar.logger.il(1,{t:78}); class=gbzt id=gb_78 href="https://play.google.com/?hl=en&tab=X8"><span class=gbtb2></span><span class=gbts>Play</span></a></li><li class=gbt><a target=_blank onclick=gbar.logger.il(1,{t:36}); class=gbzt id=gb_36 href="https://www.youtube.com/?tab=X1"><span class=gbtb2></span><span class=gbts>YouTube</span></a></li><li class=gbt><a target=_blank onclick=gbar.logger.il(1,{t:5}); class=gbzt id=gb_5 href="https://news.google.com/nwshp?hl=en&tab=Xn"><span class=gbtb2></span><span class=gbts>News</span></a></li><li class=gbt><a target=_blank onclick=gbar.logger.il(1,{t:23}); class=gbzt id=gb_23 href="https://mail.google.com/mail/?tab=Xm"><span class=gbtb2></span><span class=gbts>Gmail</span></a></li><li class=gbt><a target=_blank onclick=gbar.logger.il(1,{t:49}); class=gbzt id=gb_49 href="https://drive.google.com/?tab=Xo"><span class=gbtb2></span><span class=gbts>Drive</span></a></li><li class=gbt><a class=gbgt id=gbztm href="https://www.google.com/intl/en/options/" onclick="gbar.tg(event,this)" aria-haspopup=true aria-owns=gbd><span class=gbtb2></span><span id=gbztms class="gbts gbtsa"><span id=gbztms1>More</span><span class=gbma></span></span></a><div class=gbm id=gbd aria-owner=gbztm><div id=gbmmb class="gbmc gbsb gbsbis"><ol id=gbmm class="gbmcc gbsbic"><li class=gbmtc><a target=_blank onclick=gbar.logger.il(1,{t:24}); class=gbmt id=gb_24 href="https://www.google.com/calendar?tab=Xc">Calendar</a></li><li class=gbmtc><a target=_blank onclick=gbar.logger.il(1,{t:51}); class=gbmt id=gb_51 href="https://translate.google.com/?hl=en&tab=XT">Translate</a></li><li class=gbmtc><a target=_blank onclick=gbar.logger.il(1,{t:17}); class=gbmt id=gb_17 href="http://www.google.com/mobile/?hl=en&tab=XD">Mobile</a></li><li class=gbmtc><a target=_blank onclick=gbar.logger.il(1,{t:10}); class=gbmt id=gb_10 href="https://books.google.com/bkshp?hl=en&tab=Xp">Books</a></li><li class=gbmtc><a target=_blank onclick=gbar.logger.il(1,{t:212}); class=gbmt id=gb_212 href="https://wallet.google.com/manage/?tab=Xa">Wallet</a></li><li class=gbmtc><a target=_blank onclick=gbar.logger.il(1,{t:6}); class=gbmt id=gb_6 href="http://www.google.com/shopping?hl=en&tab=Xf">Shopping</a></li><li class=gbmtc><a target=_blank onclick=gbar.logger.il(1,{t:30}); class=gbmt id=gb_30 href="https://www.blogger.com/?tab=Xj">Blogger</a></li><li class=gbmtc><a target=_blank onclick=gbar.logger.il(1,{t:27}); class=gbmt id=gb_27 href="https://www.google.com/finance?tab=Xe">Finance</a></li><li class=gbmtc><a target=_blank onclick=gbar.logger.il(1,{t:31}); class=gbmt id=gb_31 href="https://photos.google.com/?tab=Xq">Photos</a></li><li class=gbmtc><a target=_blank onclick=gbar.logger.il(1,{t:12}); class=gbmt id=gb_12 href="http://video.google.com/?hl=en&tab=Xv">Videos</a></li><li class=gbmtc><a target=_blank onclick=gbar.logger.il(1,{t:25}); class=gbmt id=gb_25 href="https://docs.google.com/document/?usp=docs_alc">Docs</a></li><li class=gbmtc><div class="gbmt gbmh"></div></li><li class=gbmtc><a target=_blank onclick=gbar.logger.il(1,{t:66}); href="https://www.google.com/intl/en/options/" class=gbmt>Even more &raquo;</a></li></ol><div class=gbsbt></div><div class=gbsbb></div></div></div></li></ol></div><div id=gbg><h2 class=gbxx>Account Options</h2><span class=gbtcb></span><ol class=gbtc><li class=gbt><a target=_top href="https://accounts.google.com/ServiceLogin?service=oz&passive=1209600&continue=https://plus.google.com/%2BMatKelly?gpsrc%3Dgplp0" onclick="gbar.logger.il(9,{l:'i'})" id=gb_70 class=gbgt><span class=gbtb2></span><span id=gbgs4 class=gbts><span id=gbi4s1>Sign in</span></span></a></li><li class="gbt gbtb"><span class=gbts></span></li><li class=gbt><a class=gbgt id=gbg5 href="http://www.google.com/preferences?hl=en" title="Options" onclick="gbar.tg(event,this)" aria-haspopup=true aria-owns=gbd5><span class=gbtb2></span><span id=gbgs5 class=gbts><span id=gbi5></span></span></a><div class=gbm id=gbd5 aria-owner=gbg5><div class=gbmc><ol id=gbom class=gbmcc><li class="gbkc gbmtc"><a target=_blank class=gbmt href="https://www.google.com/support/profiles/?p=help_center&hl=en-US">Help</a></li><li class=gbmtc><div class="gbmt gbmh"></div></li><li class="gbe gbmtc"><a onclick="return appfeedback.startFeedback(event);" class=gbmt href="http://www.google.com/intl/en-US/+/learnmore/forum/">Send Feedback</a></li><li class=gbmtc><div class="gbmt gbmh"></div></li><li class="gbkp gbmtc"><a target=_blank class=gbmt href="http://www.google.com/history/optout?hl=en">Web History</a></li></ol></div></div></li></ol></div></div><div id=gbx3></div><div id=gbx4></div><script>window.gbar&&gbar.elp&&gbar.elp()</script></div></div><div class="vyd"></div><div id="content" class="maybe-hide Yo DWa"><div class="Oza t3"><div class="GY"></div></div><div class="x4a u3"><script>var AF_initDataKeys = ["199","4","123","5","1","118","99","29","77","42","2","47","79","36","115","12","37","175","64"]
; var AF_dataServiceRequests = {}; var AF_initDataChunkQueue = []; var AF_initDataCallback; var AF_initDataInitializeCallback; if (AF_initDataInitializeCallback) {AF_initDataInitializeCallback(AF_initDataKeys, AF_initDataChunkQueue, AF_dataServiceRequests);}if (!AF_initDataCallback) {AF_initDataCallback = function(chunk) {AF_initDataChunkQueue.push(chunk);};}</script><div class="Dge fOa"><a href="/stream" target="_top" class="d-s ob xld" title="Home" tabindex="0"><div class="VVa"></div></a><div class="Ege qMc" guidedhelpid="appindicator_content"><div class="SOb"><div class="utb"><div class="Hde x0a"></div></div><div class="pMc">Profile</div><div class="UVa"></div></div></div></div><div class="Msd Fge Ide b-K b-K-Xb"><div class="kCd Jse"><div class="jCd Ise" tabIndex="0" role="region" aria-label="Ribbon"><div guidedhelpid="ribbon_home" class="jga uVd" navid="1" isAllowSkinny="false"><a tabIndex="-1" aria-label="Home (active)"href="/stream" asrc="ribbon" class="ob oCd BIa"><div class="wVd" aria-hidden="true"><div class="nCd vVd Nua aOdVec"></div></div><div class="lCd Hyc" aria-hidden="true">Home</div></a></div><div guidedhelpid="ribbon_profile" class="jga uVd" navid="11" isAllowSkinny="false"><a tabIndex="-1" aria-label="Profile (active)"href="/me" asrc="ribbon" class="ob oCd BIa"><div class="wVd" aria-hidden="true"><div class="nCd vVd x0a aOdVec"></div></div><div class="lCd Hyc" aria-hidden="true">Profile</div></a></div><div guidedhelpid="circles" class="jga uVd" navid="2" isAllowSkinny="false"><a tabIndex="-1" aria-label="People (active)"href="/people" asrc="ribbon" class="ob oCd BIa"><div class="wVd" aria-hidden="true"><div class="nCd vVd nBa aOdVec"></div></div><div class="lCd Hyc" aria-hidden="true">People</div></a></div><div guidedhelpid="ribbon_collexions" class="jga uVd" navid="17" isAllowSkinny="false"><a tabIndex="-1" href="/collections" asrc="ribbon" class="ob oCd BIa"><div class="wVd" aria-hidden="true"><div class="nCd vVd iIyWEd m7c aOdVec"></div></div><div class="lCd Hyc" aria-hidden="true">Collections</div></a></div><div guidedhelpid="ribbon_communities" class="jga uVd" navid="8" isAllowSkinny="false"><a tabIndex="-1" href="/communities" asrc="ribbon" class="ob oCd BIa"><div class="wVd" aria-hidden="true"><div class="nCd vVd Fmb aOdVec"></div></div><div class="lCd Hyc" aria-hidden="true">Communities</div></a></div><div guidedhelpid="ribbon_events" class="jga uVd" navid="10" isAllowSkinny="false"><a tabIndex="-1" aria-label="Events (active)"href="/events" asrc="ribbon" class="ob oCd BIa"><div class="wVd" aria-hidden="true"><div class="nCd vVd ymb aOdVec"></div></div><div class="lCd Hyc" aria-hidden="true">Events</div></a></div><div guidedhelpid="ribbon_hangouts" class="jga uVd" navid="5" isAllowSkinny="false"><a tabIndex="-1" aria-label="Hangouts (active)"href="/hangouts?n=1" asrc="ribbon" class="ob oCd BIa"><div class="wVd" aria-hidden="true"><div class="nCd vVd Amb aOdVec"></div></div><div class="lCd Hyc" aria-hidden="true">Hangouts</div></a></div><div guidedhelpid="ribbon_pages" class="jga uVd" navid="7" isAllowSkinny="true"><a tabIndex="-1" aria-label="Pages (active)"href="/dashboard?ppsrc=gpnv0" asrc="ribbon" class="oCd BIa"><div class="wVd" aria-hidden="true"><div class="nCd vVd Dmb pCd aOdVec"></div></div><div class="lCd Hyc" aria-hidden="true">Pages</div></a></div><div guidedhelpid="ribbon_settings" class="jga uVd" navid="16" isAllowSkinny="false"><a tabIndex="-1" aria-label="Settings (active)"href="/settings/plus" asrc="ribbon" class="ob oCd BIa"><div class="wVd" aria-hidden="true"><div class="nCd vVd gJb aOdVec"></div></div><div class="lCd Hyc" aria-hidden="true">Settings</div></a></div></div></div><div class="Hge Lde"><div class="Nde"><span role="button" class="d-s Hke U1d" tabindex="0">Feedback</span></div><div class="Jge Ode"><span role="button" class="d-s Ike V1d" tabindex="0">Help</span> &nbsp;&#183;&nbsp; <span jscontroller="vT2XF" jsaction="click:KjsqPd" data-usedialog="true"><span role="button" class="d-s UGd" tabindex="0" jsname="TU70Kd">Region</span></span></div><div class="Mde"></div><div class="Ode"><a href="https://www.google.com/intl/en-US/+/policy/" target="_blank" class="d-s BSIQ3b" tabindex="0">Privacy</a> &nbsp;&#183;&nbsp; <a href="https://www.google.com/intl/en-US/+/policy/content.html" target="_blank" class="d-s g9cdLb" tabindex="0">Terms</a> &nbsp;&#183;&nbsp; <a href="https://www.google.com/intl/en-US/help/terms_maps.html" target="_blank" class="d-s LLd" tabindex="0">Maps Terms</a></div></div></div><div class="GSc n7c DJb Qzc"><div class="CJb"><div class="kje dte"><div componentid="2" class="uCd o7c"><div class="vCd"><div class="TVd" guidedhelpid="starthangout"><div role="button" class="d-k-l b-c b-c-R ygc EJb" tabindex="0"><div class="RVd d-k-l"></div><span class="SVd">Start a hangout</span></div></div></div></div></div><div class="Pzc"></div></div><div id="ozIdRtRibbonChatRoster" class="HSc BJb"></div></div><div class="V8d"><span role="button" class="d-s QSc V3" aria-label="Screen readers, click here to enable accessibility mode." tabindex="0" data-accessibility-mode-enabled="false"> </span></div><div class="Pza B3a QA mw vn"><div id="contentPane" class="Dh"><div class="o-B-Ra fq-Ra" token="+MatKelly/posts"><div class="Nn"><div class="rw Uc" role="region" aria-label="View selector"><div class="Zi"><div class="HNc mhe" style="display: none;"><div class="eQb tvd"><div class="fpd KXa">Mat Kelly</div><div class="el0gDb ZJKOO"><div class="Bla"><div class="n0c cZa dnUszc" style="display: none"><div class="O4 d-k-l kIa Jua zyb wanuCf iXa" aria-label=""><div class="wR Fz d-k-l"><div class="wY " style="display: none"></div></div><div class="xR OA g0a d-k-l NA"></div></div></div></div></div><span class="EZszNc ztgk7d"></span><div class="qFa aZa"><div class="ckb yZHLQd n5Dq9"><div class="bZa Krc Rhb"><div class="rkb"></div></div></div><div class="rFa XFb" style="display:none"><div class="UVb"></div></div></div></div></div><div class="V9b nhe" style="display: none;"><div class="tQE8Kd BnqoOb"><div class="Qhb eZa"><div class="Zmjtc"><span class="BOfSxb" data-tooltip="Views of profile and its content. Values are approximate">284,045</span> views</div></div><div class="W0Vccc spmt9c"><div class="prc dZa Xqa"><div class="jXa d-k-l"></div></div></div></div></div></div></div></div><div role="main" class="CF he"><div class="REQeGe"></div><div class="fZa vcard"><h2 class="o-Bd">Profile</h2><div class="fa-Neb drc gXa"><div class="ega Lab URc" jslog="14567"><div class="k5 U9b kXa"><div class="lHa m5a"><div class="ENc"><div class="sFa" style="display:none"></div><div class="xLa Wza"><img class="aGb hXa z3Hx4b" alt="Cover photo"src="https://lh3.googleusercontent.com/c5dqxl-2uHZ82ah9p7yxrVF1ZssrJNSV_15Nu0TUZwzCWqmtoLxCUJgEzLGtxsrJ6-v6R6rKU_-FYm881TTiMCJ_=s1600"></img></div></div></div><div class="M3 fPa xWa qna" guidedhelpid="profile_card"><div class="xna Uza"><div class="Wia T9b"><div class="CAa"><div class="okb o-oa-Eb-J"><div class="dkb photo" guidedhelpid="profile_photo"><img src="//lh3.googleusercontent.com/-iNDr29fIsWM/AAAAAAAAAAI/AAAAAAAAMR0/b0M788l81Wk/s120-c/photo.jpg" class="fa-kz Zxa"></div></div></div></div><div class="rHa"><div class="Yia"><div class="gZa"><div class="rna KXa Xia fn" guidedhelpid="profile_name">Mat Kelly</div></div><div class="EXa Plb" style="display: none;"></div></div><div class="Yia Frc VQc"><div class="Nyb"><div class="Ny"><span class="J9a">Works at </span><span class="K9a">NASA Langley Research Center</span></div><div class="wyb FVb"></div></div></div></div><div class="DAa Vza" guidedhelpid="profiles_social_bar"><div class="sHa"><div class="jXa Erc Xqa"></div></div><div class="O9a s5a"><div class="Zmjtc"><span class="BOfSxb" data-tooltip="Views of profile and its content. Values are approximate">284,045</span> views</div></div></div></div><div class="qFa aZa"><div class="n0c cZa dnUszc" style="display: none"><div class="O4 d-k-l kIa Jua zyb wanuCf Xwa" aria-label=""><div class="wR Fz d-k-l"><div class="wY " style="display: none"></div></div><div class="xR OA g0a d-k-l NA"></div></div></div><div class="ckb b4a"><div class="bZa Krc Rhb"><div class="rkb"></div></div></div><div class="rFa XFb" style="display:none"><div class="UVb"></div></div></div></div></div><div class="KNc"><div class="INc GPc xKa"><div id="103717513886594190386-tab-bar" class="Ima pSc g5VnDb"><span role="button" class="d-s Cy k4c aSc d-xc" id="103717513886594190386-about-tab" tabindex="0" data-dest="about"guidedhelpid="about_tab_profile">About</span><span role="button" aria-pressed="true" class="d-s Cy P4 k4c aSc d-xc" id="103717513886594190386-posts-tab" tabindex="0" data-dest="posts"guidedhelpid="posts_tab_profile">Posts</span><span role="button" class="d-s Cy k4c aSc d-xc" id="103717513886594190386-photos-tab" tabindex="0" data-dest="photos"guidedhelpid="photos_tab_profile">Photos</span></div></div></div></div><div class="Ryb Bha v0c"><div id="103717513886594190386-posts-page" class="o-xc-Sya tSa"role="tabpanel"><div class="b6c"><div class="o5"><div class="fa-dad c6c"></div><script>window.jstiming.load.tick('streamStart');</script><div class="tna UMa"></div><div guidedhelpid="streamcontent" class="VW Bn k0a" jsname="bndkSe"><h2 class="o-Bd">Stream</h2><div class="xqa Ei"></div><div class="pga" ><div class="ona Fdb bsa" style="width:900px"><div class="Ypa jw Yc am"><div id="update-z13gxjbbfvruhleir04ch1upuzinxzczsns0k" tabindex="-1" class="Yp yt Xa" jscontroller="LeWvCf" jsmodel="XNmfOc"jslog="6941; 1:update-z13gxjbbfvruhleir04ch1upuzinxzczsns0k; track:impression,click"data-render-context="%.@.3,null,null,null,null,null,null,true,null,null,null,null,null,[]
,null,[null,440,520]
]
" jsaction=" click:Qrv4Te(RTPDDc),zzwwld(lUFH9b),iQMaZe(A5O8Yc);O1htCb:BpK2Q;PR4gi:I6kmac;UJtr3c:vwifpf;wA70zd:Fz0Y3e;"><div class="sda je" jsname="GpsYP" aria-hidden="true" tabindex="0"></div><div class="Ee BK ge" aria-hidden="false" jsname="P3RoXc" role="article"><div class="ki ve" jsname="MxEsy"><div class="ys"><a href="./103717513886594190386"class="ob Jk"oid="103717513886594190386"aria-hidden="true"><img src="https://lh3.googleusercontent.com/-iNDr29fIsWM/AAAAAAAAAAI/AAAAAAAAMR0/b0M788l81Wk/s46-c-k-no/photo.jpg" width="46px" height="46px" alt="" class="Uk wi hE" oid="103717513886594190386" /></a><div class="f5 wy"><header class="lea"><h3 class="zi"><a href="./103717513886594190386" class="ob tv Ub Hf" oid="103717513886594190386">Mat Kelly</a></h3><span class="uG Ve"><span role="button" class="d-s Vt Hm dk Q9" title="Sharing details" tabindex="0" jsname="lUFH9b" aria-haspopup="true">Shared publicly</span> &nbsp;-&nbsp; <span class="uv PL"><a href="+MatKelly/posts/d1vuVrSENHE" target="_blank" rel="noreferrer" class="o-U-s FI Rg" style="display:none" >2014-09-09</a></span></span></header></div></div><div class="Al pf"><div class="Xx xJ"><div class="Ig At dn"><div class=""><div class="tG QF">&nbsp;</div><div class="Ct"></div></div></div></div><div class="yx Nf"><div itemscope itemtype="http://schema.org/VideoObject" class="j9"><div class="q9 yg"><div class="sp ej bc Ai"style="width:426px;height:240px;"><img src="//lh3.googleusercontent.com/proxy/BO3jIgfyRIODqU-4TzCs4dCd0oyks1pRvZvXEKtL8C8EFLDpNUmspvXCnzqO-8E-nSvLfOv7PGK04fArFfQ3=w426-h240-n" class="ar Mc bc kf" style="max-height:240px; max-width:426px;" itemprop="image"><meta name="twitter:image:src" content="//lh3.googleusercontent.com/proxy/BO3jIgfyRIODqU-4TzCs4dCd0oyks1pRvZvXEKtL8C8EFLDpNUmspvXCnzqO-8E-nSvLfOv7PGK04fArFfQ3=w426-h240-n"><div class="bc vf" role="button" tabindex="0" aria-label="Play"></div><div class="yh Rl RJ"><div class="yh Sl SJ"></div><div class="yh Du"><a class="kq ot-anchor" href="https://www.youtube.com/watch?v=DoSiPDujIiM&amp;feature=autoshare" target="_blank">Mink Demo</a></div></div></div><div class="lr"></div><div class="ko"></div><div class="kr"></div><div class="jo"></div></div></div></div></div><div class="Qg"><div id="po-z13gxjbbfvruhleir04ch1upuzinxzczsns0k" href="javascript:void(0);" tabindex="0" role="button" jscontroller="qG1h8c" jsaction="click:JIbuQc;gcRodd:mVjlY;" class="esw eswd qk Gc"g:token="AEIZW7RWaKeNHYpGkhfwO/7vOMzWWYOuZeR/bcsBBrIHr9Ct3++ZKYG3K/O7nxZL/SdswFGHY7fH"aria-pressed="false" aria-label="+1 this post"><span dir="ltr" class="tf yda"><span class="gr"></span><span class="H3" jsname="NnAfwf">1</span></span></div><div class="Ut Dg" role="button" tabindex="0" aria-label="Share this post"jscontroller="tH7URd"jsaction="click:KjsqPd; mouseenter:OPtno; focus:OPtno;wA70zd:AX4Iqd;JO8x0b:mTq7Qc"><span class="tf"><span class="iI"></span><span class="MM jI"></span></span></div><div role="button" tabindex="0" class="LK LH"></div><div class="Tt bj"><div class="Dt wu" tabindex="0" role="button">Add a comment...</div></div></div><div class="DM"><div class="Cx fr"><div class="Ar vt" style="display:none;"></div><div class="Wp O9" style="display:none;"><div class="GK HK TC" style="display:none"><div class="WR"><span role="button" class="d-s vy" tabindex="0"></span><div class="TR"><span class="d-s vq Bl "></span></div></div></div><div class="Dx EP lC"><div class="KK gR"><span role="button" class="d-s ww ZR" style="display:none;" tabindex="0"></span><div class="JK"></div></div></div></div></div></div></div></div></div></div><div class="Ypa jw Yc am"></div></div></div><div class="R4 b2 Xha"style="display: none"><span role="button" class="d-s L5 r0" title="Load more posts" tabindex="0">More</span><span class="dP PA"style="display: none"><span class="Uv">Loading...</span></span></div><div class="w8" style="display:none"></div></div><script>window.jstiming.load.tick('streamEnd');</script></div></div></div><div id="103717513886594190386-about-page" class="o-xc-Sya tSa o-xc-Bd"role="tabpanel"><div class="i4c Bn"><div><div class="Cec rga"><div class="lib" style="width:900px;"><div class="ona Fdb bsa" style="width:900px"><div class="Ypa jw Yc am"><div id="8" class="Ee l5a vna Tqc" role="article"><div class="ZYa ukoEtf"><div class="Lqc"><div class="F9a">Work</div><div class="miIoOb Cdmn9d"></div></div></div><div class="Uia"><div class="Bec Iqc"><div class="wna"><div class="Cr">Occupation</div><div class="y4">Software Developer, Research Scientist</div></div><div class="wna"><div class="Cr Aha">Employment</div><div class="y4"><ul class="Kla"><li class="UZa"><div class="PLa org">NASA Langley Research Center</div><div class="ija">Mobile Applications Developer, 2011 - present</div></li><li class="UZa"><div class="PLa org">Old Dominion University Research Foundation</div><div class="ija">Research Assistant, 2011 - present</div></li><li class="UZa"><div class="PLa org">Blade Agency</div><div class="ija">Software Developer, 2006 - present</div></li></ul></div></div></div></div><div class="Iqc"></div></div><div id="13" class="Ee g5a vna Yjb" role="article"><div class="ZYa ukoEtf"><div class="Lqc"><div class="F9a">Links</div><div class="miIoOb Cdmn9d"></div></div></div><div class="Uia"><div class="jec Iqc"><div class="Zka wna" style="display: none"></div><div class="wna fa-V3b Ala"><div class="Cr">YouTube</div><div class="y4"><ul class="Kla yVa"><li><img alt="" class="xfa" src="//s2.googleusercontent.com/s2/favicons?alt=p&amp;domain=www.youtube.com"/><div class="fIa s"><a class="OLa url Xvc" href="http://www.youtube.com/channel/UCYxIqzBJEuisbUZ6LCYW1mA" rel="me nofollow" target="_blank" title="Mat Kelly">Mat Kelly</a></div></li></ul></div></div><div class="wna fa-SCa Ala"><div class="Cr Aha">Contributor to</div><div class="y4"><ul class="Kla yVa"><li><img alt="" class="xfa" src="//s2.googleusercontent.com/s2/favicons?domain=ws-dl.blogspot.com&amp;alt=p"/><div class="fIa s"><a class="OLa url Xvc" href="http://ws-dl.blogspot.com/" rel="contributor-to nofollow" target="_blank" title="Web Science and Digital Libraries Research Group">Web Science and Digital Libraries Research Group</a><span class="css ozProfilesAboutContributorLinkTag"> (current)</span></div></li></ul></div></div></div></div><div class="Iqc"></div></div></div><div class="Ypa jw Yc am"><div id="11" class="Ee e5a vna Hqc" guidedhelpid="about_basic_information" role="article"><div class="ZYa ukoEtf"><div class="Lqc"><div class="F9a">Basic Information</div><div class="miIoOb Cdmn9d"></div></div></div><div class="Uia"><div class="iec Iqc"><div class="Qqc"><div class="wna DVb"><div class="E9a G9a Rqc">Gender</div><div class="y4 G9a">Male</div></div></div></div></div><div class="Iqc"></div></div></div></div><div class="RZc"><div class="fa-Dea"></div></div></div></div></div></div><script>window.jstiming.load.tick('aboutEnd');</script></div><div id="103717513886594190386-photos-page" class="o-xc-Sya o-xc-Bd"role="tabpanel"><div class="hoJ0Md p93lf" style="display: none;"></div><div class="hoJ0Md X6t9V"></div><div class="hoJ0Md GCb4uc"></div><div class="hoJ0Md tsmlgf"></div><div class="hoJ0Md jwd5Ve"></div><div class="hoJ0Md RmLi1d"></div><div style="display:none;" data-photos-json="[[]
,[]
,[]
,[]
,[]
,null,null,[]
,null,[]
,0,[]
,null,1,0]
"></div></div></div></div></div></div></div></div></div></div></div></div><script>var OZ_domReady = 1;</script><script>window.jstiming.load.tick('bl');</script><script>(function(){try{var e=this;var aa=function(a,b,c,d){d=d||{};d._sn=["cfg",b,c].join(".");window.gbar.logger.ml(a,d)};var h=window.gbar=window.gbar||{},k=window.gbar.i=window.gbar.i||{},ba;function _tvn(a,b){var c=parseInt(a,10);return isNaN(c)?b:c}function _tvf(a,b){var c=parseFloat(a);return isNaN(c)?b:c}function _tvv(a){return!!a}function p(a,b,c){(c||h)[a]=b}h.bv={n:_tvn("2",0),r:"",f:".66.41.",e:"0",m:_tvn("1",1)};
function ca(a,b,c){var d="on"+b;if(a.addEventListener)a.addEventListener(b,c,!1);else if(a.attachEvent)a.attachEvent(d,c);else{var f=a[d];a[d]=function(){var a=f.apply(this,arguments),b=c.apply(this,arguments);return void 0==a?b:void 0==b?a:b&&a}}}var da=function(a){return function(){return h.bv.m==a}},ea=da(1),fa=da(2);p("sb",ea);p("kn",fa);k.a=_tvv;k.b=_tvf;k.c=_tvn;k.i=aa;var q=window.gbar.i.i;var t=function(){},u=function(){},ia=function(a){var b=new Image,c=ga;b.onerror=b.onload=b.onabort=function(){try{delete ha[c]}catch(a){}};ha[c]=b;b.src=a;ga=c+1},ha=[],ga=0;p("logger",{il:u,ml:t,log:ia});var v=window.gbar.logger;var y={},ja={},A=[],ka=k.b("0.1",.1),la=k.a("1",!0),ma=function(a,b){A.push([a,b])},na=function(a,b){y[a]=b},oa=function(a){return a in y},B={},C=function(a,b){B[a]||(B[a]=[]);B[a].push(b)},D=function(a){C("m",a)},pa=function(a,b){var c=document.createElement("script");c.src=a;c.async=la;Math.random()<ka&&(c.onerror=function(){c.onerror=null;t(Error("Bundle load failed: name="+(b||"UNK")+" url="+a))});(document.getElementById("xjsc")||document.getElementsByTagName("body")[0]||
document.getElementsByTagName("head")[0]).appendChild(c)},F=function(a){for(var b=0,c;(c=A[b])&&c[0]!=a;++b);!c||c[1].l||c[1].s||(c[1].s=!0,qa(2,a),c[1].url&&pa(c[1].url,a),c[1].libs&&E&&E(c[1].libs))},ra=function(a){C("gc",a)},sa=null,ta=function(a){sa=a},qa=function(a,b,c){if(sa){a={t:a,b:b};if(c)for(var d in c)a[d]=c[d];try{sa(a)}catch(f){}}};p("mdc",y);p("mdi",ja);p("bnc",A);p("qGC",ra);p("qm",D);p("qd",B);p("lb",F);p("mcf",na);p("bcf",ma);p("aq",C);p("mdd","");
p("has",oa);p("trh",ta);p("tev",qa);if(k.a("1")){var ua=k.a("1"),va=k.a(""),wa=k.a(""),xa=window.gapi={},ya=function(a,b){var c=function(){h.dgl(a,b)};ua?D(c):(C("gl",c),F("gl"))},za={},Aa=function(a){a=a.split(":");for(var b;(b=a.pop())&&za[b];);return!b},E=function(a){function b(){for(var b=a.split(":"),d=0,f;f=b[d];++d)za[f]=1;for(b=0;d=A[b];++b)d=d[1],(f=d.libs)&&!d.l&&d.i&&Aa(f)&&d.i()}h.dgl(a,b)},H=window.___jsl={};H.h="m;/_/scs/apps-static/_/js/k=oz.gapi.en_US.1NmAA2ULNsY.O/m=__features__/rt=j/d=1/rs=AGLTcCMpAn8_x26XB61dOuwiGsJEN1cAmg";H.ms="https://apis.google.com";
H.m="";H.l=[];ua||A.push(["gl",{url:"//ssl.gstatic.com/gb/js/abc/glm_e7bb39a7e1a24581ff4f8d199678b1b9.js"}]);var Ba={pu:va,sh:"",si:wa,hl:"en"};y.gl=Ba;p("load",ya,xa);p("dgl",ya);p("agl",Aa);k.o=ua};var Ca=k.b("0.1",.001),Da=0;
function _mlToken(a,b){try{if(1>Da){Da++;var c,d=a,f=b||{},g=encodeURIComponent,l=["//www.google.com/gen_204?atyp=i&zx=",(new Date).getTime(),"&jexpid=",g("28834"),"&srcpg=",g("prop=119"),"&jsr=",Math.round(1/Ca),"&ogev=",g("9jGyV8WZB8Sq-AHrtpSIBA"),"&ogf=",h.bv.f,"&ogrp=",g(""),"&ogv=",g("1470968812.0"),"&oggv="+g("unknown_version"),"&ogd=",g("com"),"&ogc=",g("USA"),"&ogl=",g("en")];f._sn&&(f._sn=
"og."+f._sn);for(var n in f)l.push("&"),l.push(g(n)),l.push("="),l.push(g(f[n]));l.push("&emsg=");l.push(g(d.name+":"+d.message));var m=l.join("");Ea(m)&&(m=m.substr(0,2E3));c=m;var r=window.gbar.logger._aem(a,c);ia(r)}}catch(z){}}var Ea=function(a){return 2E3<=a.length},Fa=function(a,b){return b};function Ga(a){t=a;p("_itl",Ea,v);p("_aem",Fa,v);p("ml",t,v);a={};y.er=a}k.a("")?Ga(function(a){throw a;}):k.a("1")&&Math.random()<Ca&&Ga(_mlToken);var _E="left",Ha=k.a(""),J=function(a,b){var c=a.className;I(a,b)||(a.className+=(""!=c?" ":"")+b)},K=function(a,b){var c=a.className,d=new RegExp("\\s?\\b"+b+"\\b");c&&c.match(d)&&(a.className=c.replace(d,""))},I=function(a,b){var c=new RegExp("\\b"+b+"\\b"),d=a.className;return!(!d||!d.match(c))},Ia=function(a,b){I(a,b)?K(a,b):J(a,b)},Ja=function(a,b){a[b]=function(c){var d=arguments;h.qm(function(){a[b].apply(this,d)})}},Ka=function(a){a=["//www.gstatic.com",
"/og/_/js/d=1/k=","og.og.en_US.Ge24v73aUVc.O","/rt=j/m=",a,"/rs=","AA2YrTsC3bIxoiGL1aQD_ECPw8HUOZw4jQ"];Ha&&a.push("?host=www.gstatic.com&bust=og.og.en_US.QpL8zKkSA3k.DU");a=a.join("");pa(a)};p("ca",J);p("cr",K);p("cc",I);k.k=J;k.l=K;k.m=I;k.n=Ia;k.p=Ka;k.q=Ja;var La=["gb_71","gb_155"],Ma;function Na(a){Ma=a}function Oa(a){var b=Ma&&!a.href.match(/.*\/accounts\/ClearSID[?]/)&&encodeURIComponent(Ma());b&&(a.href=a.href.replace(/([?&]continue=)[^&]*/,"$1"+b))}function Pa(a){window.gApplication&&(a.href=window.gApplication.getTabUrl(a.href))}function Qa(a){try{var b=(document.forms[0].q||"").value;b&&(a.href=a.href.replace(/([?&])q=[^&]*|$/,function(a,d){return(d||"&")+"q="+encodeURIComponent(b)}))}catch(c){q(c,"sb","pq")}}
var Ra=function(){for(var a=[],b=0,c;c=La[b];++b)(c=document.getElementById(c))&&a.push(c);return a},Sa=function(){var a=Ra();return 0<a.length?a[0]:null},Ta=function(){return document.getElementById("gb_70")},L={},M={},Ua={},N={},O=void 0,Za=function(a,b){try{var c=document.getElementById("gb");J(c,"gbpdjs");P();Va(document.getElementById("gb"))&&J(c,"gbrtl");if(b&&b.getAttribute){var d=b.getAttribute("aria-owns");if(d.length){var f=document.getElementById(d);if(f){var g=b.parentNode;if(O==d)O=void 0,
K(g,"gbto");else{if(O){var l=document.getElementById(O);if(l&&l.getAttribute){var n=l.getAttribute("aria-owner");if(n.length){var m=document.getElementById(n);m&&m.parentNode&&K(m.parentNode,"gbto")}}}Wa(f)&&Xa(f);O=d;J(g,"gbto")}}}}D(function(){h.tg(a,b,!0)});Ya(a)}catch(r){q(r,"sb","tg")}},$a=function(a){D(function(){h.close(a)})},ab=function(a){D(function(){h.rdd(a)})},Va=function(a){var b,c=document.defaultView;c&&c.getComputedStyle?(a=c.getComputedStyle(a,""))&&(b=a.direction):b=a.currentStyle?
a.currentStyle.direction:a.style.direction;return"rtl"==b},cb=function(a,b,c){if(a)try{var d=document.getElementById("gbd5");if(d){var f=d.firstChild,g=f.firstChild,l=document.createElement("li");l.className=b+" gbmtc";l.id=c;a.className="gbmt";l.appendChild(a);if(g.hasChildNodes()){c=[["gbkc"],["gbf","gbe","gbn"],["gbkp"],["gbnd"]];for(var d=0,n=g.childNodes.length,f=!1,m=-1,r=0,z;z=c[r];r++){for(var T=0,G;G=z[T];T++){for(;d<n&&I(g.childNodes[d],G);)d++;if(G==b){g.insertBefore(l,g.childNodes[d]||
null);f=!0;break}}if(f){if(d+1<g.childNodes.length){var U=g.childNodes[d+1];I(U.firstChild,"gbmh")||bb(U,z)||(m=d+1)}else if(0<=d-1){var V=g.childNodes[d-1];I(V.firstChild,"gbmh")||bb(V,z)||(m=d)}break}0<d&&d+1<n&&d++}if(0<=m){var w=document.createElement("li"),x=document.createElement("div");w.className="gbmtc";x.className="gbmt gbmh";w.appendChild(x);g.insertBefore(w,g.childNodes[m])}h.addHover&&h.addHover(a)}else g.appendChild(l)}}catch(Ab){q(Ab,"sb","al")}},bb=function(a,b){for(var c=b.length,
d=0;d<c;d++)if(I(a,b[d]))return!0;return!1},db=function(a,b,c){cb(a,b,c)},eb=function(a,b){cb(a,"gbe",b)},fb=function(){D(function(){h.pcm&&h.pcm()})},gb=function(){D(function(){h.pca&&h.pca()})},hb=function(a,b,c,d,f,g,l,n,m,r){D(function(){h.paa&&h.paa(a,b,c,d,f,g,l,n,m,r)})},ib=function(a,b){L[a]||(L[a]=[]);L[a].push(b)},jb=function(a,b){M[a]||(M[a]=[]);M[a].push(b)},kb=function(a,b){Ua[a]=b},lb=function(a,b){N[a]||(N[a]=[]);N[a].push(b)},Ya=function(a){a.preventDefault&&a.preventDefault();a.returnValue=
!1;a.cancelBubble=!0},mb=null,Xa=function(a,b){P();if(a){nb(a,"Opening&hellip;");Q(a,!0);var c="undefined"!=typeof b?b:1E4,d=function(){ob(a)};mb=window.setTimeout(d,c)}},pb=function(a){P();a&&(Q(a,!1),nb(a,""))},ob=function(a){try{P();var b=a||document.getElementById(O);b&&(nb(b,"This service is currently unavailable.%1$sPlease try again later.","%1$s"),Q(b,!0))}catch(c){q(c,"sb","sdhe")}},nb=function(a,b,c){if(a&&b){var d=Wa(a);if(d){if(c){d.innerHTML="";b=b.split(c);c=0;for(var f;f=b[c];c++){var g=document.createElement("div");
g.innerHTML=f;d.appendChild(g)}}else d.innerHTML=b;Q(a,!0)}}},Q=function(a,b){var c=void 0!==b?b:!0;c?J(a,"gbmsgo"):K(a,"gbmsgo")},Wa=function(a){for(var b=0,c;c=a.childNodes[b];b++)if(I(c,"gbmsg"))return c},P=function(){mb&&window.clearTimeout(mb)},qb=function(a){var b="inner"+a;a="offset"+a;return window[b]?window[b]:document.documentElement&&document.documentElement[a]?document.documentElement[a]:0},rb=function(){return!1},sb=function(){return!!O};p("so",Sa);p("sos",Ra);p("si",Ta);p("tg",Za);
p("close",$a);p("rdd",ab);p("addLink",db);p("addExtraLink",eb);p("pcm",fb);p("pca",gb);p("paa",hb);p("ddld",Xa);p("ddrd",pb);p("dderr",ob);p("rtl",Va);p("op",sb);p("bh",L);p("abh",ib);p("dh",M);p("adh",jb);p("ch",N);p("ach",lb);p("eh",Ua);p("aeh",kb);ba=k.a("")?Pa:Qa;p("qs",ba);p("setContinueCb",Na);p("pc",Oa);p("bsy",rb);k.d=Ya;k.j=qb;var tb={};y.base=tb;A.push(["m",{url:"//ssl.gstatic.com/gb/js/sem_1c1ffc36f0f54fda9275080308d2dba7.js"}]);h.sg={c:""};p("wg",{rg:{}});var ub={tiw:k.c("15000",0),tie:k.c("30000",0)};y.wg=ub;var vb={thi:k.c("10000",0),thp:k.c("180000",0),tho:k.c("5000",0),tet:k.b("0.5",0)};y.wm=vb;if(k.a("1")){var wb=k.a("1");A.push(["gc",{auto:wb,url:"//ssl.gstatic.com/gb/js/abc/gci_91f30755d6a6b787dcc2a4062e6e9824.js",libs:"googleapis.client:plusone:gapi.iframes"}]);var xb={version:"gci_91f30755d6a6b787dcc2a4062e6e9824.js",index:"",lang:"en"};y.gc=xb;var yb=function(a){window.googleapis&&window.iframes?a&&a():(a&&ra(a),F("gc"))};p("lGC",yb);k.a("1")&&p("lPWF",yb)};window.__PVT="";if(k.a("1")&&k.a("1")){var zb=function(a){yb(function(){C("pw",a);F("pw")})};p("lPW",zb);A.push(["pw",{url:"//ssl.gstatic.com/gb/js/abc/pwm_45f73e4df07a0e388b0fa1f3d30e7280.js"}]);var Bb=[],Cb=function(a){Bb[0]=a},Db=function(a,b){var c=b||{};c._sn="pw";t(a,c)},Eb={signed:Bb,elog:Db,base:"https://plusone.google.com/u/0",loadTime:(new Date).getTime()};y.pw=Eb;var Fb=function(a,b){for(var c=b.split("."),d=function(){var b=arguments;a(function(){for(var a=h,d=0,f=c.length-1;d<f;++d)a=a[c[d]];a[c[d]].apply(a,b)})},f=h,g=0,l=c.length-1;g<
l;++g)f=f[c[g]]=f[c[g]]||{};return f[c[g]]=d};Fb(zb,"pw.clk");Fb(zb,"pw.hvr");p("su",Cb,h.pw)};var Gb=[1,2,3,4,5,6,9,10,11,13,14,28,29,30,34,35,37,38,39,40,41,42,43,48,49,500];var Hb=k.b("0.001",1E-4),Ib=k.b("1",1),Jb=!1,Kb=!1;if(k.a("1")){var Lb=Math.random();Lb<Hb&&(Jb=!0);Lb<Ib&&(Kb=!0)}var R=null;
function Mb(a,b){var c=Hb,d=Jb,f;f=a;if(!R){R={};for(var g=0;g<Gb.length;g++){var l=Gb[g];R[l]=!0}}if(f=!!R[f])c=Ib,d=Kb;if(d){var d=encodeURIComponent,n="unknown_version",m;h.rp?(m=h.rp(),m="-1"!=m?m:""):m="";f=(new Date).getTime();var g=d("28834"),l=d("9jGyV8WZB8Sq-AHrtpSIBA"),r=h.bv.f,z=d("119");m=d(m);var c=Math.round(1/c),T=d("1470968812.0"),n=n?"&oggv="+d(n):"",G=d("com"),U=d("en"),
V=d("USA"),w;w=0;k.a("")&&(w|=1);k.a("")&&(w|=2);k.a("")&&(w|=4);f=["//www.google.com/gen_204?atyp=i&zx=",f,"&oge=",a,"&ogex=",g,"&ogev=",l,"&ogf=",r,"&ogp=",z,"&ogrp=",m,"&ogsr=",c,"&ogv=",T,n,"&ogd=",G,"&ogl=",U,"&ogc=",V,"&ogus=",w];if(b){"ogw"in b&&(f.push("&ogw="+b.ogw),delete b.ogw);var x,g=b,l=[];for(x in g)0!=l.length&&l.push(","),l.push(Nb(x)),l.push("."),l.push(Nb(g[x]));x=l.join("");""!=x&&(f.push("&ogad="),f.push(d(x)))}ia(f.join(""))}}
function Nb(a){"number"==typeof a&&(a+="");return"string"==typeof a?a.replace(".","%2E").replace(",","%2C"):a}u=Mb;p("il",u,v);var Ob={};y.il=Ob;var Pb=function(a,b,c,d,f,g,l,n,m,r){D(function(){h.paa(a,b,c,d,f,g,l,n,m,r)})},Qb=function(){D(function(){h.prm()})},Rb=function(a){D(function(){h.spn(a)})},Sb=function(a){D(function(){h.sps(a)})},Tb=function(a){D(function(){h.spp(a)})},Ub={"27":"//ssl.gstatic.com/gb/images/silhouette_24.png","27":"//ssl.gstatic.com/gb/images/silhouette_24.png","27":"//ssl.gstatic.com/gb/images/silhouette_24.png"},Vb=function(a){return(a=Ub[a])||"//ssl.gstatic.com/gb/images/silhouette_24.png"},
Wb=function(){D(function(){h.spd()})};p("spn",Rb);p("spp",Tb);p("sps",Sb);p("spd",Wb);p("paa",Pb);p("prm",Qb);ib("gbd4",Qb);
if(k.a("")){var Xb={d:k.a(""),e:"",sanw:k.a("1"),p:"//ssl.gstatic.com/gb/images/silhouette_96.png",cp:"1",xp:k.a("1"),mg:"%1$s (delegated)",md:"%1$s (default)",mh:"220",s:"1",pp:Vb,ppl:k.a(""),ppa:k.a(""),
ppm:"Google+ page"};y.prf=Xb};var S,Yb,W,Zb,X=0,$b=function(a,b,c){if(a.indexOf)return a.indexOf(b,c);if(Array.indexOf)return Array.indexOf(a,b,c);for(c=null==c?0:0>c?Math.max(0,a.length+c):c;c<a.length;c++)if(c in a&&a[c]===b)return c;return-1},Y=function(a,b){return-1==$b(a,X)?(q(Error(X+"_"+b),"up","caa"),!1):!0},bc=function(a,b){Y([1,2],"r")&&(S[a]=S[a]||[],S[a].push(b),2==X&&window.setTimeout(function(){b(ac(a))},0))},cc=function(a,b,c){if(Y([1],"nap")&&c){for(var d=0;d<c.length;d++)Yb[c[d]]=!0;h.up.spl(a,b,"nap",c)}},dc=
function(a,b,c){if(Y([1],"aop")&&c){if(W)for(var d in W)W[d]=W[d]&&-1!=$b(c,d);else for(W={},d=0;d<c.length;d++)W[c[d]]=!0;h.up.spl(a,b,"aop",c)}},ec=function(){try{if(X=2,!Zb){Zb=!0;for(var a in S)for(var b=S[a],c=0;c<b.length;c++)try{b[c](ac(a))}catch(d){q(d,"up","tp")}}}catch(d){q(d,"up","mtp")}},ac=function(a){if(Y([2],"ssp")){var b=!Yb[a];W&&(b=b&&!!W[a]);return b}};Zb=!1;S={};Yb={};W=null;
var X=1,fc=function(a){var b=!1;try{b=a.cookie&&a.cookie.match("PREF")}catch(c){}return!b},gc=function(){try{return!!e.localStorage&&"object"==typeof e.localStorage}catch(a){return!1}},hc=function(a){return a&&a.style&&a.style.behavior&&"undefined"!=typeof a.load},ic=function(a,b,c,d){try{fc(document)||(d||(b="og-up-"+b),gc()?e.localStorage.setItem(b,c):hc(a)&&(a.setAttribute(b,c),a.save(a.id)))}catch(f){f.code!=DOMException.QUOTA_EXCEEDED_ERR&&q(f,"up","spd")}},jc=function(a,b,c){try{if(fc(document))return"";
c||(b="og-up-"+b);if(gc())return e.localStorage.getItem(b);if(hc(a))return a.load(a.id),a.getAttribute(b)}catch(d){d.code!=DOMException.QUOTA_EXCEEDED_ERR&&q(d,"up","gpd")}return""},kc=function(a,b,c){a.addEventListener?a.addEventListener(b,c,!1):a.attachEvent&&a.attachEvent("on"+b,c)},lc=function(a){for(var b=0,c;c=a[b];b++){var d=h.up;c=c in d&&d[c];if(!c)return!1}return!0},mc=function(a,b){try{if(fc(a))return-1;var c=a.cookie.match(/OGPC=([^;]*)/);if(c&&c[1]){var d=c[1].match(new RegExp("\\b"+
b+"-([0-9]+):"));if(d&&d[1])return parseInt(d[1],10)}}catch(f){f.code!=DOMException.QUOTA_EXCEEDED_ERR&&q(f,"up","gcc")}return-1};p("up",{r:bc,nap:cc,aop:dc,tp:ec,ssp:ac,spd:ic,gpd:jc,aeh:kc,aal:lc,gcc:mc});var Z=function(a,b){a[b]=function(c){var d=arguments;h.qm(function(){a[b].apply(this,d)})}};Z(h.up,"sl");Z(h.up,"si");Z(h.up,"spl");Z(h.up,"dpc");Z(h.up,"iic");h.mcf("up",{sp:k.b("0.01",1),tld:"com",prid:"119"});function nc(){function a(){for(var b;(b=g[l++])&&"m"!=b[0]&&!b[1].auto;);b&&(qa(2,b[0]),b[1].url&&pa(b[1].url,b[0]),b[1].libs&&E&&E(b[1].libs));l<g.length&&setTimeout(a,0)}function b(){0<f--?setTimeout(b,0):a()}var c=k.a("1"),d=k.a(""),f=3,g=A,l=0,n=window.gbarOnReady;if(n)try{n()}catch(m){q(m,"ml","or")}d?p("ldb",a):c?ca(window,"load",b):b()}p("rdl",nc);}catch(e){window.gbar&&gbar.logger&&gbar.logger.ml(e,{"_sn":"cfg.init"});}})();
(function(){try{var a=window.gbar;a.mcf("pm",{p:""});}catch(e){window.gbar&&gbar.logger&&gbar.logger.ml(e,{"_sn":"cfg.init"});}})();
(function(){try{var a=window.gbar;a.mcf("mm",{s:"1"});}catch(e){window.gbar&&gbar.logger&&gbar.logger.ml(e,{"_sn":"cfg.init"});}})();
(function(){try{var a=this;var b=window.gbar;var c=b.i;var d=c.a,e=c.c,f={cty:"USA",cv:"1470968812",dbg:d(""),ecv:"0",ei:e("9jGyV8WZB8Sq-AHrtpSIBA"),ele:d("1"),esr:e("0.1"),evts:["mousedown","touchstart","touchmove","wheel","keydown"],gbl:"unknown_version",hd:"com",hl:"en",irp:d(""),pid:e("119"),
snid:e("28834"),to:e("300000"),u:e(""),vf:".66.41."},g=f,h=["bndcfg"],k=a;h[0]in k||!k.execScript||k.execScript("var "+h[0]);for(var l;h.length&&(l=h.shift());)h.length||void 0===g?k=k[l]?k[l]:k[l]={}:k[l]=g;}catch(e){window.gbar&&gbar.logger&&gbar.logger.ml(e,{"_sn":"cfg.init"});}})();
(function(){try{window.gbar.rdl();}catch(e){window.gbar&&gbar.logger&&gbar.logger.ml(e,{"_sn":"cfg.init"});}})();
window.jstiming.load.tick('ogjl');</script><script type="text/javascript">window.__GOOGLEAPIS = {googleapis: {versions: {pos: 'v1'}}};window.__GOOGLEAPIS = window.__GOOGLEAPIS || {}; window.__GOOGLEAPIS.iframes = window.__GOOGLEAPIS.iframes || {}; window.__GOOGLEAPIS.iframes[':socialhost:'] = 'https:\/\/apis.google.com';</script><script>var OZ_lateJs; var OZ_lateJsError;
var OZ_jsLoadSuccess = function(jsCode, url) {
OZ_lateJs = [jsCode, url];
};
var OZ_jsLoadError = function(status) {
OZ_lateJsError = status;
};
var OZ_lateModuleIds = ["srbx"]
; OZ_requestJs(OZ_lateModuleIds, '\/_\/scs\/apps-static\/_\/js\/k\x3doz.home.en_US.S0zubYtyP20.O\/m\x3dsrbx\/am\x3dHIjDITJAAQ\/rt\x3dj\/d\x3d1\/exm\x3db,prc\/ed\x3d1\/rs\x3dAGLTcCNtoJhMLwJ4Zzadzg8ou0gbt7ELsA', 'OZ_jsLoadSuccess', 'OZ_jsLoadError');</script><script>AF_initDataCallback({key: '199', isError: false , hash: '1', data:[0,0]
});</script><script>AF_initDataCallback({key: '4', isError: false , hash: '2', data:[[]
,"",[1,2,"103717513886594190386",null,null,12,null,"social.google.com",[]
,null,null,null,null,null,null,[]
,null,0,2,null,null,0,null,15,null,[[1002,2]
,[119,127,110,120,132,135,115,138,142]
,0,0]
,null,null,0,null,null,0,null,null,null,1,1,1]
,null,[]
,null,null,[[1002,null,null,null,null,[1001,"z13gxjbbfvruhleir04ch1upuzinxzczsns0k"]
,{"33558957":["","","","Mat Kelly","",1410271017655,null,[]
,"z13gxjbbfvruhleir04ch1upuzinxzczsns0k","","a:ext:client.sharebox.261207059221.apps.googleusercontent.com",[]
,[]
,"",null,[]
,"103717513886594190386",[]
,"https://lh6.googleusercontent.com/-iNDr29fIsWM/AAAAAAAAAAI/AAAAAAAAMR0/b0M788l81Wk/photo.jpg",null,"","+MatKelly/posts/d1vuVrSENHE",0,0.0,"./103717513886594190386",[]
,null,null,"",0,0,0,1,null,0,1,null,0,1410271017655,null,null,0,null,null,null,0,null,null,null,[]
,null,null,0,0,null,null,0,null,null,null,null,0,null,null,null,null,[]
,null,null,null,null,null,null,["4/jcsnatvshdla4tnqiduqkv35h5t30h33h0srew3pjdoqwy3ughxbavnna1pk/",4,null,null,null,null,1.411174799999999E12,null,null,null,null,null,[[1.0,null,[]
]
]
,0,null,null,1,[]
,0,0,null,"AEIZW7RWaKeNHYpGkhfwO/7vOMzWWYOuZeR/bcsBBrIHr9Ct3++ZKYG3K/O7nxZL/SdswFGHY7fH"]
,null,null,1,null,1,0,null,null,null,null,"social.google.com",0,0,null,null,1,0,null,"2014-09-09",0,0,null,0,[[354,338,336,335,0]
,"https://www.youtube.com/watch?v\u003dDoSiPDujIiM\u0026feature\u003dautoshare",null,null,null,"AOl+Xe92H39PEMUr/z/3AtZwk/GKPwPSUg\u003d\u003d",null,"https://www.youtube.com/watch?v\u003dDoSiPDujIiM\u0026feature\u003dautoshare",{"41186541":["https://www.youtube.com/watch?v\u003dDoSiPDujIiM\u0026feature\u003dautoshare","http://i.ytimg.com/vi/DoSiPDujIiM/hqdefault.jpg","Mink Demo","",null,["//lh3.googleusercontent.com/proxy/BO3jIgfyRIODqU-4TzCs4dCd0oyks1pRvZvXEKtL8C8EFLDpNUmspvXCnzqO-8E-nSvLfOv7PGK04fArFfQ3\u003dw506-h284-n",506,284,1,1,null,null,284,[2,"https://lh3.googleusercontent.com/proxy/BO3jIgfyRIODqU-4TzCs4dCd0oyks1pRvZvXEKtL8C8EFLDpNUmspvXCnzqO-8E-nSvLfOv7PGK04fArFfQ3\u003dw800-h800"]
]
,null,[]
,null,null,[]
,null,null,[]
,[]
,[]
,[]
,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[]
,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"https://www.youtube.com/v/DoSiPDujIiM?version\u003d3\u0026autohide\u003d1\u0026autoplay\u003d1\u0026feature\u003dautoshare-u",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[]
,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[339,338,336,335,0]
,"http://i.ytimg.com/vi/DoSiPDujIiM/hqdefault.jpg",{"40265033":["http://i.ytimg.com/vi/DoSiPDujIiM/hqdefault.jpg","http://i.ytimg.com/vi/DoSiPDujIiM/hqdefault.jpg",null,null,null,["//lh3.googleusercontent.com/proxy/BO3jIgfyRIODqU-4TzCs4dCd0oyks1pRvZvXEKtL8C8EFLDpNUmspvXCnzqO-8E-nSvLfOv7PGK04fArFfQ3\u003dw506-h284-n",506,284,1,1,null,null,284,[2,"https://lh3.googleusercontent.com/proxy/BO3jIgfyRIODqU-4TzCs4dCd0oyks1pRvZvXEKtL8C8EFLDpNUmspvXCnzqO-8E-nSvLfOv7PGK04fArFfQ3\u003dw800-h800"]
]
,null,[]
,null,null,[]
,null,null,[]
,[]
,[]
,[]
,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[]
,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[]
]
}]
,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"UCYxIqzBJEuisbUZ6LCYW1mA"]
}]
,null,null,0,0,null,null,null,null,null,null,null,null,null,null,null,[]
,null,null,0,9,null,0,[]
,0,[]
,0,0,null,null,[]
,null,null,null,"https://plus.google.com/+MatKelly/posts/d1vuVrSENHE",null,null,1,null,["Mat Kelly","103717513886594190386",0,0,"https://lh6.googleusercontent.com/-iNDr29fIsWM/AAAAAAAAAAI/AAAAAAAAMR0/b0M788l81Wk/photo.jpg","./103717513886594190386","male",null,0]
,null,null,null,null,["en",0,"English"]
,null,[]
,null,[null,0]
,null,[]
,null,0,null,null,[0]
,"z13gxjbbfvruhleir04ch1upuzinxzczsns0k",null,null,null,null,null,[[]
]
]
}]
]
,null,"CAA\u003d",[440,2,[]
]
,[[[[null,[[[[]
,[[0,"z13gxjbbfvruhleir04ch1upuzinxzczsns0k",0,465]
]
]
]
]
,[0,520,520]
]
]
,1]
,[[[null,[[[[]
,[[0,"z13gxjbbfvruhleir04ch1upuzinxzczsns0k",0,465]
]
]
,[[]
,[]
]
]
]
,[0,440,520]
]
]
,2]
,[[[null,[[[[]
,[[0,"z13gxjbbfvruhleir04ch1upuzinxzczsns0k",0,465]
]
]
,[[]
,[]
]
,[[]
,[]
]
]
]
,[0,360,520]
]
]
,3]
]
]
});</script><script>AF_initDataCallback({key: '123', isError: false , hash: '3', data:[null,[]
,null,0]
});</script><script>AF_initDataCallback({key: '5', isError: false , hash: '4', data:["103717513886594190386",0,[null,null,"https://plus.google.com/+MatKelly","//lh6.googleusercontent.com/-iNDr29fIsWM/AAAAAAAAAAI/AAAAAAAAMR0/b0M788l81Wk/photo.jpg",[[null,null,null,null,[]
,6]
,"Mat","Kelly","Mat Kelly",0]
,[[null,null,null,null,[]
,6]
,[]
]
,[[null,null,null,null,[]
,6]
,"Software Developer, Research Scientist"]
,[[null,null,null,null,[]
,6]
,[["NASA Langley Research Center","Mobile Applications Developer",[[1,1,2011]
,[1,1,2013]
,1]
,"",""]
,["Old Dominion University Research Foundation","Research Assistant",[[1,1,2011]
,[1,1,2013]
,1]
,"",""]
,["Blade Agency","Software Developer",[[1,1,2006]
,[1,1,2013]
,1]
,"",""]
]
]
,[[null,null,null,null,[]
,6]
,[]
]
,[[null,null,null,null,[]
,6]
,"",[]
,null,null,[]
]
,"//maps-api-ssl.google.com/maps/api/staticmap?size\u003d375x175\u0026sensor\u003dfalse\u0026language\u003den\u0026client\u003dgoogle-profiles\u0026signature\u003dfNZUcgnPo-kwulgpmUhuA1MK6sE%3D",[[]
,[null,null,null,null,[]
,6]
,[null,null,null,null,[]
,6]
]
,[[null,null,null,null,[]
,6]
,[]
,[]
,[]
,[]
,null,[]
,[]
,null,[]
,[]
]
,[[null,null,null,null,[]
,6]
,[]
,[]
,[]
,[]
,null,[]
,[]
,null,[]
,[]
]
,[[null,null,null,null,[]
,6]
,""]
,[]
,[[null,null,null,null,[]
,6]
,"",0]
,[[null,null,null,null,[]
,6]
,1]
,null,[[null,null,null,null,[]
,6]
,""]
,null,null,[[null,null,null,null,[]
,6]
,0,1]
,[[null,null,null,null,[]
,6]
,[]
]
,[[null,null,null,null,[]
,6]
,0]
,[[null,null,null,null,[]
,6]
,0]
,[[null,null,null,null,[]
,6]
,0]
,[]
,[]
,null,"103717513886594190386",1,null,[[null,null,null,null,[]
,6]
,""]
,null,[[null,null,null,null,[]
,6]
,[]
]
,null,[[null,null,null,null,[]
,6]
,0]
,null,[null,0]
,0,null,null,null,[null,1,0,null,0,1,null,null,1,1,1]
,0,[4,null,0,null,0,[]
]
,[[null,null,null,null,[]
,6]
,""]
,1,null,1,[[]
,null,[null,null,null,null,[]
,6]
]
,[[[[null,null,null,null,[]
,6]
,"http://ws-dl.blogspot.com/","//s2.googleusercontent.com/s2/favicons?domain\u003dws-dl.blogspot.com\u0026alt\u003dp","Web Science and Digital Libraries Research Group","contributor-to",0,["http://ws-dl.blogspot.com/","sgn://blogspot.com/?ident\u003dws-dl"]
,[]
]
]
,null,[null,null,null,null,[]
,6]
]
,[[]
,null,[null,null,null,null,[]
,6]
]
,1,[null,[]
]
,[[null,null,null,null,[]
,6]
,0]
,null,null,[]
,[null,null,null,null,null,null,[]
,[]
]
,[[null,null,null,null,[]
,6]
,0]
,0,[1,[]
]
,null,null,[1,1]
,1,[]
,[[]
]
,[null,[]
,null,0]
,[[]
]
,[[[[null,"http://www.youtube.com/channel/UCYxIqzBJEuisbUZ6LCYW1mA","//s2.googleusercontent.com/s2/favicons?alt\u003dp\u0026domain\u003dwww.youtube.com","Mat Kelly","me",null,[]
,[]
]
]
]
,0,38,0]
,[null,[]
]
,[[0]
]
,"+MatKelly",[[null,null,null,null,[]
,6]
,""]
,1298580687445,[["//maps-api-ssl.google.com/maps/api/staticmap?size\u003d320x175\u0026sensor\u003dfalse\u0026language\u003den\u0026client\u003dgoogle-profiles\u0026signature\u003d6g52SawoDCxI9y9wUdgvjpCc9kM%3D","//maps-api-ssl.google.com/maps/api/staticmap?size\u003d400x175\u0026sensor\u003dfalse\u0026language\u003den\u0026client\u003dgoogle-profiles\u0026signature\u003dyiZlEaoMtlr_Rq4pItNdASlV8xM%3D","//maps-api-ssl.google.com/maps/api/staticmap?size\u003d480x175\u0026sensor\u003dfalse\u0026language\u003den\u0026client\u003dgoogle-profiles\u0026signature\u003dXFx9UcLT04n6gPg4XIBeel7N_P4%3D"]
]
,[null,null,[]
,[]
,[]
,[]
,[]
,null,null,null,[]
,null,null,null,[]
,null,[]
,[]
,[]
,[]
,null,null,[]
,[]
,null,null,null,[]
]
,0,1,0,[0]
]
,null,[[]
,"",[1,2,"103717513886594190386",null,null,12,null,"social.google.com",[]
,null,null,null,null,null,null,[]
,null,0,2,null,null,0,null,15,null,[[1002,2]
,[119,127,110,120,132,135,115,138,142]
,0,0]
,null,null,0,null,null,0,null,null,null,1,1,1]
,null,[]
,null,null,[[1002,null,null,null,null,[1001,"z13gxjbbfvruhleir04ch1upuzinxzczsns0k"]
,{"33558957":["","","","Mat Kelly","",1410271017655,null,[]
,"z13gxjbbfvruhleir04ch1upuzinxzczsns0k","","a:ext:client.sharebox.261207059221.apps.googleusercontent.com",[]
,[]
,"",null,[]
,"103717513886594190386",[]
,"https://lh6.googleusercontent.com/-iNDr29fIsWM/AAAAAAAAAAI/AAAAAAAAMR0/b0M788l81Wk/photo.jpg",null,"","+MatKelly/posts/d1vuVrSENHE",0,0.0,"./103717513886594190386",[]
,null,null,"",0,0,0,1,null,0,1,null,0,1410271017655,null,null,0,null,null,null,0,null,null,null,[]
,null,null,0,0,null,null,0,null,null,null,null,0,null,null,null,null,[]
,null,null,null,null,null,null,["4/jcsnatvshdla4tnqiduqkv35h5t30h33h0srew3pjdoqwy3ughxbavnna1pk/",4,null,null,null,null,1.411174799999999E12,null,null,null,null,null,[[1.0,null,[]
]
]
,0,null,null,1,[]
,0,0,null,"AEIZW7RWaKeNHYpGkhfwO/7vOMzWWYOuZeR/bcsBBrIHr9Ct3++ZKYG3K/O7nxZL/SdswFGHY7fH"]
,null,null,1,null,1,0,null,null,null,null,"social.google.com",0,0,null,null,1,0,null,"2014-09-09",0,0,null,0,[[354,338,336,335,0]
,"https://www.youtube.com/watch?v\u003dDoSiPDujIiM\u0026feature\u003dautoshare",null,null,null,"AOl+Xe92H39PEMUr/z/3AtZwk/GKPwPSUg\u003d\u003d",null,"https://www.youtube.com/watch?v\u003dDoSiPDujIiM\u0026feature\u003dautoshare",{"41186541":["https://www.youtube.com/watch?v\u003dDoSiPDujIiM\u0026feature\u003dautoshare","http://i.ytimg.com/vi/DoSiPDujIiM/hqdefault.jpg","Mink Demo","",null,["//lh3.googleusercontent.com/proxy/BO3jIgfyRIODqU-4TzCs4dCd0oyks1pRvZvXEKtL8C8EFLDpNUmspvXCnzqO-8E-nSvLfOv7PGK04fArFfQ3\u003dw506-h284-n",506,284,1,1,null,null,284,[2,"https://lh3.googleusercontent.com/proxy/BO3jIgfyRIODqU-4TzCs4dCd0oyks1pRvZvXEKtL8C8EFLDpNUmspvXCnzqO-8E-nSvLfOv7PGK04fArFfQ3\u003dw800-h800"]
]
,null,[]
,null,null,[]
,null,null,[]
,[]
,[]
,[]
,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[]
,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"https://www.youtube.com/v/DoSiPDujIiM?version\u003d3\u0026autohide\u003d1\u0026autoplay\u003d1\u0026feature\u003dautoshare-u",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[]
,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[339,338,336,335,0]
,"http://i.ytimg.com/vi/DoSiPDujIiM/hqdefault.jpg",{"40265033":["http://i.ytimg.com/vi/DoSiPDujIiM/hqdefault.jpg","http://i.ytimg.com/vi/DoSiPDujIiM/hqdefault.jpg",null,null,null,["//lh3.googleusercontent.com/proxy/BO3jIgfyRIODqU-4TzCs4dCd0oyks1pRvZvXEKtL8C8EFLDpNUmspvXCnzqO-8E-nSvLfOv7PGK04fArFfQ3\u003dw506-h284-n",506,284,1,1,null,null,284,[2,"https://lh3.googleusercontent.com/proxy/BO3jIgfyRIODqU-4TzCs4dCd0oyks1pRvZvXEKtL8C8EFLDpNUmspvXCnzqO-8E-nSvLfOv7PGK04fArFfQ3\u003dw800-h800"]
]
,null,[]
,null,null,[]
,null,null,[]
,[]
,[]
,[]
,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[]
,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[]
]
}]
,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"UCYxIqzBJEuisbUZ6LCYW1mA"]
}]
,null,null,0,0,null,null,null,null,null,null,null,null,null,null,null,[]
,null,null,0,9,null,0,[]
,0,[]
,0,0,null,null,[]
,null,null,null,"https://plus.google.com/+MatKelly/posts/d1vuVrSENHE",null,null,1,null,["Mat Kelly","103717513886594190386",0,0,"https://lh6.googleusercontent.com/-iNDr29fIsWM/AAAAAAAAAAI/AAAAAAAAMR0/b0M788l81Wk/photo.jpg","./103717513886594190386","male",null,0]
,null,null,null,null,["en",0,"English"]
,null,[]
,null,[null,0]
,null,[]
,null,0,null,null,[0]
,"z13gxjbbfvruhleir04ch1upuzinxzczsns0k",null,null,null,null,null,[[]
]
]
}]
]
,null,"CAA\u003d",[440,2,[]
]
,[[[[null,[[[[]
,[[0,"z13gxjbbfvruhleir04ch1upuzinxzczsns0k",0,465]
]
]
]
]
,[0,520,520]
]
]
,1]
,[[[null,[[[[]
,[[0,"z13gxjbbfvruhleir04ch1upuzinxzczsns0k",0,465]
]
]
,[[]
,[]
]
]
]
,[0,440,520]
]
]
,2]
,[[[null,[[[[]
,[[0,"z13gxjbbfvruhleir04ch1upuzinxzczsns0k",0,465]
]
]
,[[]
,[]
]
,[[]
,[]
]
]
]
,[0,360,520]
]
]
,3]
]
]
,null,"AMP3uWabfeUXxEeGfuC4y7R00X3z9K3rBgPpTywHIUAdb_PiziSCFNshtATQQFVlD3FS-FKEaY4l",null,null,null,[null,[]
,null,null,null,"https://lh3.googleusercontent.com/c5dqxl-2uHZ82ah9p7yxrVF1ZssrJNSV_15Nu0TUZwzCWqmtoLxCUJgEzLGtxsrJ6-v6R6rKU_-FYm881TTiMCJ_\u003ds1600","https://lh3.googleusercontent.com/c5dqxl-2uHZ82ah9p7yxrVF1ZssrJNSV_15Nu0TUZwzCWqmtoLxCUJgEzLGtxsrJ6-v6R6rKU_-FYm881TTiMCJ_\u003ds1600-fSoften\u003d1,60,0"]
,null,null,null,null,"https://profiles.google.com",[null,1,0,null,0,1,null,null,0,null,0]
,null,null,0,null,null,null,[1,[]
]
,[[]
,null,null,[]
,0,0,0]
,null,null,0,[]
,null,null,[[]
,[]
,[[]
]
,[[[[null,[[[[]
,[[0,"8",0,300]
,[0,"11",0,300]
,[0,"13",0,300]
]
]
]
]
,[0,520,520]
]
]
,1]
,[[[null,[[[[]
,[[0,"8",0,300]
,[0,"13",0,300]
]
]
,[[]
,[[0,"11",0,300]
]
]
]
]
,[0,440,520]
]
]
,2]
,[[[null,[[[[]
,[[0,"8",0,300]
]
]
,[[]
,[[0,"11",0,300]
]
]
,[[]
,[[0,"13",0,300]
]
]
]
]
,[0,360,520]
]
]
,3]
]
,[8,11,13]
,[]
,[440,2,[]
]
]
,null,0,"posts",null,null,null,0,[null,[[]
]
]
,null,[[284045]
]
,null,null,0,0,null,[[[]
]
]
]
});</script><script>AF_initDataCallback({key: '1', isError: false , hash: '5', data:["/c/","docs.google.com/picker",null,[["e1a3ade5","99",1]
,["3075e8a9","pages/settings/plus",2]
,["5ad7396c","pages/settings/admin",2]
,["a0c13a02","notifications/all",2]
,["15f084ae"]
,["fb4e2fc4"]
,["345ff995"]
,["b60ba4d6","//www.youtube.com/embed/l0qfHq_Qva8?wmode\u003dopaque",2]
,["58cc0ecc","100",1]
,["2837709a","250",1]
,["12881b0b"]
,["ca2c7f4"]
,["5eca3fd8"]
,["21fa5ea3"]
,["3bdfc36"]
,["53905784"]
,["361a82fe","20",1]
,["acbf0ffc","6",1]
,["30dc41c4"]
,["5cd08d3e"]
,["a7258d35","5",1]
,["a8e523a3","1000",1]
,["153fc4e3"]
,["40acc4f7"]
,["96a53e1a","80",1]
,["d6697028","//www.youtube.com/embed/GUywKEtXX2c",2]
,["d582a4f8","25",1]
,["66c83ef2","",2]
,["2b8b0743","10",1]
,["4dc524c0","import,suggest,follow,profile",2]
,["7615555e","100",1]
,["c05ef682","5",1]
,["e975220","5",1]
,["f892a1f6","750",1]
,["da271db1","//ssl.gstatic.com/s2/oz/images/hangouts/hangouts_onair_promo_live-dffa4529a32c693283924cd12ffbc4e4.png",2]
,["f85d7a75","//ssl.gstatic.com/s2/oz/images/hangouts/hangouts_onair_promo_recorded-7453f2c3b2160c984e5cd7c017effd49.png",2]
,["dc47b7e1","https://www.google.com",2]
,["48b332f1","//www.google.com/maps?layer\u003dc\u0026ie\u003dUTF8\u0026source\u003dembed\u0026output\u003dsvembed",2]
,["b549d814","10000",1]
,["4ca66953","300000",1]
,["242aea5","5000",1]
,["1ddddfd5","1.0",1]
,["300feef9","0.5",1]
,["bf3c2a2d","0.05",1]
,["1ea69d6d","-1",1]
,["51e3db92","https://photos.google.com",2]
,["ac806264"]
,["63c8aa1c","43200000",1]
,["b3d65284","1800000",1]
,["32a36dc7","15000",1]
,["c40522f","2000",1]
,["aaf52903","0.3",1]
,["8c85289b","2",1]
,["e46643a","3",1]
,["4ea6b8e3","2000",1]
,["b2186565","400",1]
,["c1daf5cd","10",1]
,["703730af","15",1]
,["463afe84","10",1]
,["5a10b9d9","//ssl.gstatic.com/s2/oz/images/notifications/jingles_eb4e5306b38f83915d82034fa93390d9/",2]
,["18f1cdf9","250",1]
,["86f3341a","10",1]
,["8012fae7","20",1]
,["a9a3e797","25",1]
,["b378b70a","25",1]
,["a68807db"]
,["5715347d"]
,["a2e5195e"]
,["2f65daed"]
,["6f8cc541"]
,["44a20323"]
,["7372f164","//www.youtube.com/watch?v\u003d",2]
,["1a3786fb","2000",1]
,["90c3e763"]
,["887aa6bb"]
,["2bca337"]
,["dff71358"]
,["542595e1","0",1]
,["96942408","10",1]
,["12885cf2","40",1]
,["c4a65487","3",1]
,["cfa495ac"]
,["25b05df1","60",1]
,["7a92f75c","20",1]
,["dd75ff49","0",1]
,["5cf6e450"]
,["c696ffc3","//www.youtube.com/embed/bo390-3ohW4",2]
,["c5eb23d7","//www.youtube.com/embed/ylZg43Meick",2]
,["62f9e96d","//www.youtube.com/embed/8aCYZ3gXfy8",2]
,["f5caebd8","Widget[gmail.rhs],Widget[gmail.plusnotifycard],Widget[gmail.pview],Widget[gmail.rhspp]",2]
,["92cebb77"]
,["d59d524b"]
,["ed2ddf08","2500",1]
,["56af9af6","1000",1]
,["b07d93ca","500",1]
,["a05aeb35","500",1]
,["2125014e","600",1]
,["371ccd09","0.025",1]
,["7ecdfea5"]
,["c99cf54c"]
,["415edc4f"]
,["6005610c","40",1]
,["d8e528b3","200",1]
,["bdfc96d5"]
,["109a38d3"]
,["269eceba","100",1]
,["a45cf373","4",1]
,["5e6ae07f","2",1]
,["1d6b6a06","4",1]
,["4ab88f97","4",1]
,["554ac1cc","3",1]
,["5c19a49e","2",1]
,["15f3a3a0","8",1]
,["787163ac","4",1]
,["9f44a2f3","8",1]
,["520ff8c4","5",1]
,["2c833439","5",1]
,["98f0a38b","4",1]
,["8ed40ce0","20",1]
,["f28ca27a","44",1]
,["da72c0db","500",1]
,["a181a097","3",1]
,["119e347a","1000",1]
,["65b9aa26","google.com/+",2]
,["1ec68444","youtube.com/c",2]
,["40d4b6d8"]
,["88d90359","1000:3000:1000",2]
,["c8595228","https://support.google.com/plus/?p\u003dplus_embeds",2]
,["8d2087d6"]
]
,0,"","//ssl.gstatic.com/images/branding/google_plus/1x/gplus_word_108x30dp.png","https://accounts.google.com/ServiceLogin?service\u003doz\u0026hl\u003den-US\u0026continue\u003dhttps://plus.google.com/%2BMatKelly?gpsrc%3Dgplp0",0,"","",null,null,null,"https://csi.gstatic.com/csi",null,null,null,"https://hangouts.google.com","/complete/search","plus.url.google.com","https://hangouts.google.com/hangouts/_/",[81,97,100,122,124,30,79,127]
,null,null,"https://accounts.google.com/TOS?hl\u003den-US",null,"https://hangouts.google.com/hangouts/_/extras/",null,"https://hangouts.google.com/hangouts/_/stream/","",1471295989675,"picasaweb.google.com","https://www.google.com/contacts","us","http://www.google.com/intl/en-US/+/learnmore/forum/","https://www.google.com/intl/en-US/+/policy/content.html",null,"https://www.google.com/intl/en-US/+/policy/",null,"https://www.google.com/intl/en-US/help/terms_maps.html","https://accounts.google.com/SignUp?service\u003doz\u0026hl\u003den-US\u0026continue\u003dhttps://plus.google.com/%2BMatKelly",null,null,null,"RfFSqZDcFaqBMSOAs6kL3pu3WVE","1471295978"]
});</script><script>AF_initDataCallback({key: '118', isError: false , data:null});</script><script>AF_initDataCallback({key: '99', isError: false , hash: '6', data:[]
});</script><script>AF_initDataCallback({key: '29', isError: false , hash: '7', data:[]
});</script><script>AF_initDataCallback({key: '77', isError: false , hash: '8', data:[[]
,"/+MatKelly"]
});</script><script>AF_initDataCallback({key: '42', isError: false , hash: '9', data:["https://plus.google.com/?wwc\u003d1",[5,1,2,3]
]
});</script><script>AF_initDataCallback({key: '2', isError: false , data:null});</script><script>AF_initDataCallback({key: '47', isError: false , hash: '10', data:[]
});</script><script>AF_initDataCallback({key: '79', isError: false , hash: '11', data:[[[1,[[[2]
]
]
]
,[7,[[[2]
]
]
]
]
]
});</script><script>AF_initDataCallback({key: '36', isError: false , hash: '12', data:["US",0,"Suffolk"]
});</script><script>AF_initDataCallback({key: '115', isError: false , hash: '13', data:["plus.google.com","plus.google.com","//plus.google.com/"]
});</script><script>AF_initDataCallback({key: '12', isError: false , data:null});</script><script>AF_initDataCallback({key: '37', isError: false , hash: '14', data:["/all",1,0,0,null,null,0,0,0,0,2,null,null,0,null,1,null,0,null,0,0,0,null,0,0]
});</script><script>AF_initDataCallback({key: '175', isError: false , hash: '15', data:[[[]
,[[29]
,[11]
,[3025768]
,[22]
,[6194809]
]
,0]
]
});</script><script>AF_initDataCallback({key: '64', isError: false , hash: '16', data:["https://talkgadget.google.com/talkgadget/mediaplayer"]
});</script></body></html>
WARC/1.0
WARC-Type: request
WARC-Target-URI: https://plus.google.com/+MatKelly
WARC-Date: 2016-08-15T21:19:49Z
WARC-Concurrent-To: <urn:uuid:a5961bf3-f0bd-4e8c-a3bd-32f6457a31e9>
WARC-Record-ID: <urn:uuid:9afce7c8-4b01-44fa-8baf-bebb72cb1844>
Content-Type: application/http; msgtype=request
Content-Length: 443
GET /+MatKelly HTTP/1.0
Connection: Close
Referer: https://plus.google.com/103717513886594190386
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Host: plus.google.com
User-Agent: Mozilla/5.0 (compatible; heritrix/3.3.0-SNAPSHOT-20160708-0038 +http://yourdomain.com)
Cookie: NID=84=SbG6NcKHHuYZpCXMX6jSaM7dyTI2lLh0SEiu-lU6fRUj9H3GEpYPSUf9G51MqYIfal8D5dhRzZ-a_IqnLh1bZ5buLRhsADH2XwQNGdgq9tFvPifPYO5Ym_LYjL59lL75
WARC/1.0
WARC-Type: metadata
WARC-Target-URI: https://plus.google.com/+MatKelly
WARC-Date: 2016-08-15T21:19:49Z
WARC-Concurrent-To: <urn:uuid:a5961bf3-f0bd-4e8c-a3bd-32f6457a31e9>
WARC-Record-ID: <urn:uuid:9f86eb14-58c2-4a5a-b563-707e31986846>
Content-Type: application/warc-fields
Content-Length: 11788
via: https://plus.google.com/103717513886594190386
hopsFromSeed: RERR
fetchTimeMs: 649
charsetForLinkExtraction: UTF-8
outlink: https://plus.google.com/favicon.ico I =INFERRED_MISC
outlink: https://plus.google.com/ L base/@href
outlink: https://plus.google.com/CSI/ X =JS_MISC
outlink: https://plus.google.com/es_oz_20160811.10_p0 X =JS_MISC
outlink: https://plus.google.com/_/resourcefailure?type= X =JS_MISC
outlink: https://plus.google.com/_/css-load-error/ X =JS_MISC
outlink: https://plus.google.com/oz.reportError X =JS_MISC
outlink: https://plus.google.com/ X =JS_MISC
outlink: https://plus.google.com/MSXML2.XMLHTTP X =JS_MISC
outlink: https://plus.google.com/Microsoft.XMLHTTP X =JS_MISC
outlink: https://ssl.gstatic.com/gb/images/b_8d5afc09.png E =EMBED_MISC
outlink: https://ssl.gstatic.com/gb/images/b8_3615d64d.png E =EMBED_MISC
outlink: https://fonts.gstatic.com/s/roboto/v15/W5F8_SL0XFawnjxHGsZjJA.ttf E =EMBED_MISC
outlink: https://fonts.gstatic.com/s/roboto/v15/bdHGHleUa-ndQCOrdpfxfw.ttf E =EMBED_MISC
outlink: https://fonts.gstatic.com/s/roboto/v15/dtpHsbgPEm2lVWciJZ0P-A.ttf E =EMBED_MISC
outlink: https://ssl.gstatic.com/images/branding/product/ico/google_plus_alldp.ico E link/@href
outlink: https://plus.google.com/+MatKelly E link/@href
outlink: https://lh6.googleusercontent.com/-iNDr29fIsWM/AAAAAAAAAAI/AAAAAAAAMR0/b0M788l81Wk/photo.jpg X meta
outlink: https://plus.google.com/+MatKelly X meta
outlink: android-app://com.google.android.apps.plus/https/plus.google.com/+MatKelly E link/@href
outlink: ios-app://447119634/gplus/plus.google.com/+MatKelly E link/@href
outlink: https://plus.google.com/_/scs/apps-static/_/ss/k=oz.home.-d9x04e2iyui8.L.X.O/am=HIjDITJAAQ/d=0/rs=AGLTcCPIVIi75ri_sn3E_zEC5qK0-HZ0fA E link/@href
outlink: https://plus.google.com/_/scs/apps-static/_/js/k=oz.home.en_US.S0zubYtyP20.O/m=b,prc/am=HIjDITJAAQ/rt=j/d=1/rs=AGLTcCNtoJhMLwJ4Zzadzg8ou0gbt7ELsA E script/@src
outlink: https://www.google.com/webhp?tab=Xw L a/@href
outlink: http://www.google.com/imghp?hl=en&tab=Xi L a/@href
outlink: https://maps.google.com/maps?hl=en&tab=Xl L a/@href
outlink: https://play.google.com/?hl=en&tab=X8 L a/@href
outlink: https://www.youtube.com/?tab=X1 L a/@href
outlink: https://news.google.com/nwshp?hl=en&tab=Xn L a/@href
outlink: https://mail.google.com/mail/?tab=Xm L a/@href
outlink: https://drive.google.com/?tab=Xo L a/@href
outlink: https://www.google.com/intl/en/options/ L a/@href
outlink: https://www.google.com/calendar?tab=Xc L a/@href
outlink: https://translate.google.com/?hl=en&tab=XT L a/@href
outlink: http://www.google.com/mobile/?hl=en&tab=XD L a/@href
outlink: https://books.google.com/bkshp?hl=en&tab=Xp L a/@href
outlink: https://wallet.google.com/manage/?tab=Xa L a/@href
outlink: http://www.google.com/shopping?hl=en&tab=Xf L a/@href
outlink: https://www.blogger.com/?tab=Xj L a/@href
outlink: https://www.google.com/finance?tab=Xe L a/@href
outlink: https://photos.google.com/?tab=Xq L a/@href
outlink: http://video.google.com/?hl=en&tab=Xv L a/@href
outlink: https://docs.google.com/document/?usp=docs_alc L a/@href
outlink: https://accounts.google.com/ServiceLogin?service=oz&passive=1209600&continue=https://plus.google.com/%2BMatKelly?gpsrc%3Dgplp0 L a/@href
outlink: http://www.google.com/preferences?hl=en L a/@href
outlink: https://www.google.com/support/profiles/?p=help_center&hl=en-US L a/@href
outlink: http://www.google.com/intl/en-US/+/learnmore/forum/ L a/@href
outlink: http://www.google.com/history/optout?hl=en L a/@href
outlink: https://plus.google.com/stream L a/@href
outlink: https://plus.google.com/me L a/@href
outlink: https://plus.google.com/people L a/@href
outlink: https://plus.google.com/collections L a/@href
outlink: https://plus.google.com/communities L a/@href
outlink: https://plus.google.com/events L a/@href
outlink: https://plus.google.com/hangouts?n=1 L a/@href
outlink: https://plus.google.com/dashboard?ppsrc=gpnv0 L a/@href
outlink: https://plus.google.com/settings/plus L a/@href
outlink: https://www.google.com/intl/en-US/+/policy/ L a/@href
outlink: https://www.google.com/intl/en-US/+/policy/content.html L a/@href
outlink: https://www.google.com/intl/en-US/help/terms_maps.html L a/@href
outlink: https://lh3.googleusercontent.com/c5dqxl-2uHZ82ah9p7yxrVF1ZssrJNSV_15Nu0TUZwzCWqmtoLxCUJgEzLGtxsrJ6-v6R6rKU_-FYm881TTiMCJ_=s1600 E img/@src
outlink: https://lh3.googleusercontent.com/-iNDr29fIsWM/AAAAAAAAAAI/AAAAAAAAMR0/b0M788l81Wk/s120-c/photo.jpg E img/@src
outlink: https://plus.google.com/103717513886594190386 L a/@href
outlink: https://lh3.googleusercontent.com/-iNDr29fIsWM/AAAAAAAAAAI/AAAAAAAAMR0/b0M788l81Wk/s46-c-k-no/photo.jpg E img/@src
outlink: https://plus.google.com/+MatKelly/posts/d1vuVrSENHE L a/@href
outlink: https://lh3.googleusercontent.com/proxy/BO3jIgfyRIODqU-4TzCs4dCd0oyks1pRvZvXEKtL8C8EFLDpNUmspvXCnzqO-8E-nSvLfOv7PGK04fArFfQ3=w426-h240-n E img/@src
outlink: https://lh3.googleusercontent.com/proxy/BO3jIgfyRIODqU-4TzCs4dCd0oyks1pRvZvXEKtL8C8EFLDpNUmspvXCnzqO-8E-nSvLfOv7PGK04fArFfQ3=w426-h240-n X meta
outlink: https://www.youtube.com/watch?v=DoSiPDujIiM&feature=autoshare L a/@href
outlink: https://s2.googleusercontent.com/s2/favicons?alt=p&domain=www.youtube.com E img/@src
outlink: http://www.youtube.com/channel/UCYxIqzBJEuisbUZ6LCYW1mA L a/@href
outlink: https://s2.googleusercontent.com/s2/favicons?domain=ws-dl.blogspot.com&alt=p E img/@src
outlink: http://ws-dl.blogspot.com/ L a/@href
outlink: https://apis.google.com/ X =JS_MISC
outlink: https://ssl.gstatic.com/gb/js/abc/glm_e7bb39a7e1a24581ff4f8d199678b1b9.js X =JS_MISC
outlink: https://www.google.com/gen_204?atyp=i&zx= X =JS_MISC
outlink: https://www.gstatic.com/ X =JS_MISC
outlink: https://plus.google.com/?host=www.gstatic.com&bust=og.og.en_US.QpL8zKkSA3k.DU X =JS_MISC
outlink: https://ssl.gstatic.com/gb/js/sem_1c1ffc36f0f54fda9275080308d2dba7.js X =JS_MISC
outlink: https://ssl.gstatic.com/gb/js/abc/gci_91f30755d6a6b787dcc2a4062e6e9824.js X =JS_MISC
outlink: https://plus.google.com/gci_91f30755d6a6b787dcc2a4062e6e9824.js X =JS_MISC
outlink: https://ssl.gstatic.com/gb/js/abc/pwm_45f73e4df07a0e388b0fa1f3d30e7280.js X =JS_MISC
outlink: https://plusone.google.com/u/0 X =JS_MISC
outlink: https://plus.google.com/pw.clk X =JS_MISC
outlink: https://plus.google.com/pw.hvr X =JS_MISC
outlink: https://ssl.gstatic.com/gb/images/silhouette_24.png X =JS_MISC
outlink: https://ssl.gstatic.com/gb/images/silhouette_96.png X =JS_MISC
outlink: https://plus.google.com/cfg.init X =JS_MISC
outlink: http://social.google.com/ X =JS_MISC
outlink: https://lh6.googleusercontent.com/-iNDr29fIsWM/AAAAAAAAAAI/AAAAAAAAMR0/b0M788l81Wk/photo.jpg X =JS_MISC
outlink: https://plus.google.com/103717513886594190386 X =JS_MISC
outlink: https://plus.google.com/4/jcsnatvshdla4tnqiduqkv35h5t30h33h0srew3pjdoqwy3ughxbavnna1pk/ X =JS_MISC
outlink: https://www.youtube.com/watch?v=DoSiPDujIiM&feature=autoshare X =JS_MISC
outlink: http://i.ytimg.com/vi/DoSiPDujIiM/hqdefault.jpg X =JS_MISC
outlink: https://lh3.googleusercontent.com/proxy/BO3jIgfyRIODqU-4TzCs4dCd0oyks1pRvZvXEKtL8C8EFLDpNUmspvXCnzqO-8E-nSvLfOv7PGK04fArFfQ3=w506-h284-n X =JS_MISC
outlink: https://lh3.googleusercontent.com/proxy/BO3jIgfyRIODqU-4TzCs4dCd0oyks1pRvZvXEKtL8C8EFLDpNUmspvXCnzqO-8E-nSvLfOv7PGK04fArFfQ3=w800-h800 X =JS_MISC
outlink: https://www.youtube.com/v/DoSiPDujIiM?version=3&autohide=1&autoplay=1&feature=autoshare-u X =JS_MISC
outlink: https://plus.google.com/+MatKelly/posts/d1vuVrSENHE X =JS_MISC
outlink: https://plus.google.com/+MatKelly X =JS_MISC
outlink: https://maps-api-ssl.google.com/maps/api/staticmap?size=375x175&sensor=false&language=en&client=google-profiles&signature=fNZUcgnPo-kwulgpmUhuA1MK6sE%3D X =JS_MISC
outlink: http://ws-dl.blogspot.com/ X =JS_MISC
outlink: https://s2.googleusercontent.com/s2/favicons?domain=ws-dl.blogspot.com&alt=p X =JS_MISC
outlink: http://www.youtube.com/channel/UCYxIqzBJEuisbUZ6LCYW1mA X =JS_MISC
outlink: https://s2.googleusercontent.com/s2/favicons?alt=p&domain=www.youtube.com X =JS_MISC
outlink: https://maps-api-ssl.google.com/maps/api/staticmap?size=320x175&sensor=false&language=en&client=google-profiles&signature=6g52SawoDCxI9y9wUdgvjpCc9kM%3D X =JS_MISC
outlink: https://maps-api-ssl.google.com/maps/api/staticmap?size=400x175&sensor=false&language=en&client=google-profiles&signature=yiZlEaoMtlr_Rq4pItNdASlV8xM%3D X =JS_MISC
outlink: https://maps-api-ssl.google.com/maps/api/staticmap?size=480x175&sensor=false&language=en&client=google-profiles&signature=XFx9UcLT04n6gPg4XIBeel7N_P4%3D X =JS_MISC
outlink: https://lh3.googleusercontent.com/c5dqxl-2uHZ82ah9p7yxrVF1ZssrJNSV_15Nu0TUZwzCWqmtoLxCUJgEzLGtxsrJ6-v6R6rKU_-FYm881TTiMCJ_=s1600 X =JS_MISC
outlink: https://lh3.googleusercontent.com/c5dqxl-2uHZ82ah9p7yxrVF1ZssrJNSV_15Nu0TUZwzCWqmtoLxCUJgEzLGtxsrJ6-v6R6rKU_-FYm881TTiMCJ_=s1600-fSoften=1,60,0 X =JS_MISC
outlink: https://profiles.google.com/ X =JS_MISC
outlink: https://plus.google.com/c/ X =JS_MISC
outlink: http://docs.google.com/picker X =JS_MISC
outlink: https://plus.google.com/pages/settings/plus X =JS_MISC
outlink: https://plus.google.com/pages/settings/admin X =JS_MISC
outlink: https://plus.google.com/notifications/all X =JS_MISC
outlink: https://www.youtube.com/embed/l0qfHq_Qva8?wmode=opaque X =JS_MISC
outlink: https://www.youtube.com/embed/GUywKEtXX2c X =JS_MISC
outlink: https://ssl.gstatic.com/s2/oz/images/hangouts/hangouts_onair_promo_live-dffa4529a32c693283924cd12ffbc4e4.png X =JS_MISC
outlink: https://ssl.gstatic.com/s2/oz/images/hangouts/hangouts_onair_promo_recorded-7453f2c3b2160c984e5cd7c017effd49.png X =JS_MISC
outlink: https://www.google.com/ X =JS_MISC
outlink: https://www.google.com/maps?layer=c&ie=UTF8&source=embed&output=svembed X =JS_MISC
outlink: https://photos.google.com/ X =JS_MISC
outlink: https://ssl.gstatic.com/s2/oz/images/notifications/jingles_eb4e5306b38f83915d82034fa93390d9/ X =JS_MISC
outlink: https://www.youtube.com/watch?v= X =JS_MISC
outlink: https://www.youtube.com/embed/bo390-3ohW4 X =JS_MISC
outlink: https://www.youtube.com/embed/ylZg43Meick X =JS_MISC
outlink: https://www.youtube.com/embed/8aCYZ3gXfy8 X =JS_MISC
outlink: http://google.com/+ X =JS_MISC
outlink: http://youtube.com/c X =JS_MISC
outlink: https://support.google.com/plus/?p=plus_embeds X =JS_MISC
outlink: https://ssl.gstatic.com/images/branding/google_plus/1x/gplus_word_108x30dp.png X =JS_MISC
outlink: https://accounts.google.com/ServiceLogin?service=oz&hl=en-US&continue=https://plus.google.com/%2BMatKelly?gpsrc%3Dgplp0 X =JS_MISC
outlink: https://csi.gstatic.com/csi X =JS_MISC
outlink: https://hangouts.google.com/ X =JS_MISC
outlink: https://plus.google.com/complete/search X =JS_MISC
outlink: http://plus.url.google.com/ X =JS_MISC
outlink: https://hangouts.google.com/hangouts/_/ X =JS_MISC
outlink: https://accounts.google.com/TOS?hl=en-US X =JS_MISC
outlink: https://hangouts.google.com/hangouts/_/extras/ X =JS_MISC
outlink: https://hangouts.google.com/hangouts/_/stream/ X =JS_MISC
outlink: http://picasaweb.google.com/ X =JS_MISC
outlink: https://www.google.com/contacts X =JS_MISC
outlink: http://www.google.com/intl/en-US/+/learnmore/forum/ X =JS_MISC
outlink: https://www.google.com/intl/en-US/+/policy/content.html X =JS_MISC
outlink: https://www.google.com/intl/en-US/+/policy/ X =JS_MISC
outlink: https://www.google.com/intl/en-US/help/terms_maps.html X =JS_MISC
outlink: https://accounts.google.com/SignUp?service=oz&hl=en-US&continue=https://plus.google.com/%2BMatKelly X =JS_MISC
outlink: https://plus.google.com/?wwc=1 X =JS_MISC
outlink: https://plus.google.com/all X =JS_MISC
outlink: https://talkgadget.google.com/talkgadget/mediaplayer X =JS_MISC
WARC/1.0
WARC-Type: response
WARC-Target-URI: http://www.cs.odu.edu/~mkelly/mofro.png
WARC-Date: 2016-08-15T21:19:51Z
WARC-IP-Address: 128.82.4.2
WARC-Payload-Digest: sha1:BS6G6CFUVUI7F4OGD6BKXDJCJLIPSLPO
WARC-Record-ID: <urn:uuid:e085f761-e971-4927-8ccb-9d521c7f9b5f>
Content-Type: application/http; msgtype=response
Content-Length: 56384
HTTP/1.1 200 OK
Server: nginx
Date: Mon, 15 Aug 2016 21:19:51 GMT
Content-Type: image/png
Content-Length: 56150
Connection: close
Last-Modified: Tue, 12 May 2015 13:09:44 GMT
ETag: "db56-515e235441609"
Accept-Ranges: bytes
�PNG

\00\00\00
IHDR\00\00\00�\00\00\00�\00\00\00":9�\00\00\00tEXtSoftware\00Adobe ImageReadyq�e<\00\00��IDATx�|�i�d�q%��o�-�������p��h��:��:�6��p8C-#R�P�[co�k�%���Ͻf����f(deF���5�k�lUf�k��?���E���M���T�ɇ��$6�.���?���`�O眑��'�.qV~��*����O��M|U���#�������΀�� �X?���(�O?�b�{�dE��.ɒ,��<I��i��i��{Y��y����"/�2/r�_Q�</��I�����&���7(�{�?~�}�u�0�]�4�kN���p4C8���o��O����������'����qq��V���������/�����_��^ހ�k��U«� o ������/
^�˷���0�?�/�yG€�ˇ����i�=�/f;qj�c�����9�l���
-��t5�?�~K�͍V(O2�b|w��eOm�v�x'���h����o�K�/>�Z��&�,/��̴Oy�����7�+'ߴv񁬼��"�_� ?��Ia� �9���}$�f��az�,�w+�M~/�@�vyE��<����!6+�����F&�e�rj��q�r|����f�.`v"!��qg7z�6тm0�� �#���K�� ��/N�i�hs��j�����=�&z4�����|��)���ځ��e�_�lk�M�h�6g'�1^\00����:���}�O��f�ɜ��\V�e<8�<<��9Z/�$Yf�~<�M{���s8<�x xH�f��p����<�������!��Ѫ�D��08�˜�S2����l���qy�M�����U;]ɥmM�1R-lN�_/��o��<��,�/�/Lj�����-Ϋ�<��>eTf�;~8��ӓd��fC�;����sסQ��eZ�E�����.������uq���&I�8��VG�����1��w�h��f��O�#�{��)���T��ԇ����a������wo�޿ww�Hs���X��>�������ͳ�f�Y�4M�������z��E��]�"0�����W^B��{�g|�Ʃ �|bG��}JT�[@�}����y�`�1fy?Z-2ˆ3 4�`�da��a�C�)fz*TF
�n?<鴖�J�9Z�����$˷k�kt���2��ގ6�=c����젧����tIb� #��p�� :�OB�OL����V�ʺ���ן1�( ������������x���k���������
-�<��,M}u�˃ �u�o[ � �ns}����~��g����iQ^=�ڳ.�� ��c�$&�>O�A?��T��+9��x[VO,���+8K�����wL�yta���{
�O�5��� �G�6���g�y�'{]��f��Ym*D@Q��ww
�&s\"������E����]:3s��GN�~*�!2K\�� �Q ���0"@���<�o����:�������?����~���/~����� h~ ��w|���H�W��� e: #ÿ��0X��:8? ����t����h]!<~�(��<����Ym�� �M<�6��k�k�f�;]
Sh� 5~1�!�y'�/�8�L���<a
5"�~k����;{��wlg����xo2���a�?$%�Q.ψ3��n�9�� ��fm��-2+���sh9^S��T�./!�:�_��Jll�Z�zUQV�u���X�J䏫
���(����n8��?��?�7��?��w���[e.O+�M��^�����%��{�#���WkS\���z�
���c������{���ً��q}u�ɫO�U;v��%H _L���#�eV�C�ox1��1$��cG�}R�Wa�[�^�����%��� 3)x�L���48��z��ﶝ~��ҹ�]���%g�O�=!�`�=��v��跜"�vd�D��5�4�1 �I��U�ޮ�+���Hn��6��v�^�*����U%p?Y��6�r|��۝������������}&o��YI|�ھ���F"��)4��m��ur�4�׫��W��ɗNm�DŽ������￾��.�*����Ͽ���/op�$�Ʒ%��{}�c�P���5]�b �~�Z1(NE�x���Dڴ�s��9�:�H�S;��9]�e�d*���5��H6y�3c|dG�Q4`bz��ךe�#�I+\00&�1foގu�h��h��ۂ� [�~��O__������`bUU�`JE�!��}r�P�4m��LJ�o���?�ӿ�ۿ�����p��`k�vR� L͜"񩊳��YCv���`rM$ ;3�!��^�|N`��7&
r)� }axh�n��_^]?���78 o>���xqٱ槁��\00��A�Rx��1�����jj�B3�1v���_���~+\$�6/�bn�4Q[X���'\00�F+g'c�8.�bp>����C����F�)��
��pC�$�q��MOM.&=xx��}������]?�nJ���!�:}Q���5���������O���?�ɏ�)KͦD<�,�� �����*�D�i�����42R��eLG�Xo�/$��T
�}<�ft+ZY6
��>��������߼�|�����ӕO�O�UB���&G���\j6�g� �tr�\,��ۦe{w^���2rl�ED�k��cE"DȲ|�A��C�7��섴BXf�
�ǐ��p���1�6�p�_�Xyœ�f*�,p@
p��̒�����
�s4qN���~h��~<Mb�����w��?�{�7?��?u��j[e��S�q7X����`�� ��9���&}
R��;=*�g/�y�����G%`�mk��dc���`5/��������?�7��ͳ����Z��$� 2�������z�^ 7��Ҧ�9)V��0���\�Z�"�F6��Ԯ
�hԩ��2l�A7z&���M���~~�ک��������0�'\�u#���W �����XRrI��Iط!�푂�{��o�=4�b�Ou}8����������/~Z9�dU��n�Z�4�Ъ�=/�[D[�j���az�� �4y�K*7�x���d�T�/�}�Ʈ�]��*
����>M"�ܬV+�w}���������˗���I�[����/�VG�I� QB쬍�S5)o"��&�9�,M�_3��9���dtQn���N��NU{q���"�ɲ�����i�ə�c�~�v����}Nge�`�u8-@�in���i�K�f����{�����~���c�'t?C�[��[��������Rb���1>Vi����X����D���sg5#S�5 \00�pJV�aT�:�
��>���L�7_����᰻���5��m���\
?A|v=�!��0�3�_0b;�f�TY�^���\F�Ĩ�6���-�B�X9�7K��M����I��l.�]B��\00����b�⬗�5g��a���F�c����=�����ft8��������vU���H�?�����ۿ~�����_}�'^���,Ϗ���p�9�m���Y7x="�U05�hnP/(~X�>L
�*"Hc�-�n�0蕴6,A�6�*��*x[�m��RY��1MM���)����`��F�����G�G�s�f���X1G*;&}�Q�mZ3"$����Gb��M�5�e5k����2,C�]`s��"��8�� ��z�V�g�Ǝ��q���E�d�Prp���|&�֢W�Ί� l���^���\00� 6�S�*��������O�}x�۞����궁i�z��}S7.��:I�4��S�?��`^Zt�0�֦akQd����7�R;� �E\���"z�i�4�D�4�<Ŷ�,��^®?�B��.�r02�,�|m ӳ_Q/�B�]l�k虲8;C�e�g��:s���� ��� �s��.|>|��t�x@X���U]l��E�G�%<<�&�����<s�r�x����*W|����t���������������D�D|$w&��`Fo�O�#�'#N�žg j��i�NEN��Ѷ���B�%����Vᩛ>E���������G ^�ڎl =��X��I�R���k��!�M״ê�l�}nIceJ��X� ���&IS��9-���|X��[#���M�+}D1����o�u���Y����$�1�4��+Uv
�»��[���O��B�hb���2U���B>aZ���P�o��?�ſ{��_e���k�)�MOM
���oaU0�"c4�Ph�)db�+��%��������K9if���]� �J�[�<��a}��q:�~R�Lд�G�2;g'����P�]����xu�Tߵ����l�(+|X#!7F���fͲ�7�+k.z�t�&����…�<.���61ǖ�z��K�4���8s��v�x5�ȰдD�A05�b�1�����%M��0{�XPv�4|FRl��i��ͯ~����������o6� ��n�۬�׃
}��-nn�Z�[U+��,k�N�J� �";<S,�z��~��(AO/�0��< Rt�� �&7���l�mdM`�i��e6�Xl]l��ւ@iv��P�?M�Hc�� 6-�v���E�9�g”�͌7e�)���Y���s���Գ���T^�Q�Y(�
T �Lx�ڰpg\����d��%���|�{/]��4ƙ��ski��,�~�:g��8n��~�˿����w����UZVe�� u/��o��Çp��� �?��d�1Q�)�.�A�� �>z����\00�h�j+�a��R��t��*@l*O�
��Ke�%�#'���K���ڈk-A�ںv��&��–6��e�rXgj"�X2uq<���,!˵��F�9w�^��B�ɛ#a2®tY�����X�@�gܔ�����h�~��΍O���´a��8@aN�By�0F����Zt�����~���ٿ�W_��{ijϾMYVpZx��~�� 3B�p��>\�V�vm���*C��e�Í�M�����!,���W�bk��f���.�~]�)�E
L�S*���\00�
��,�Ò3B�@>e�3�+�a���)N��iS<g�J�,˼�����׫5K��^��I�4��[�d[P��Y�O�F������� h.h��q�v�[f�0���#Z��º�jm��ܦR���%_'a�f���P�{E|�j����_����'?��?�O�����4�O� � ���u\00FJ���/�m.���gn/�S��S�f!� ��mK���P�G�V�?������٣�v���c�Ƒє�#�w��$0tV��)$]��.\�C �T|����m۰�š�p8ვU5�����L�Ĝ�L,\�Y.3*��4\Tȧܢ`������*RS���~J��,ڙc�q&'�%S�b�#�ѭ� COf�L���‰�y��5�͟�����_}�qqE��'��`Ut �ҧ���T)�l,&�#��0t齖�7ɐ2c�,@B ;½նf�sNH]��O�8m�a⛒B�z��t��c�쳫��o�V�\�=,, p��>I��L��jOEYЈ}��D��Z�P �Dž�'�b�1�Q��ɏ}�'s��I�]�u����}�i2���8C�@Dg\��I-iJ</bs��,z�����φm����M�h�R�ќM�k�.9�T����������p�۲Dbp � ���J�çTU�����Tnp9�����pw��\00����dVX����΂�D�L�B����������J%�a�� e�*Ŋ.�f�����[��M�*89�1&)~���CLf�����2���]?h�s��r��k0�a��i�Y�=~/�>�mo)D���qt;FMkg���rF�����豒Κ-��6�+Z�hOg`ɚ���9n.�^�yM��>U��*���:ef�?�8�tL�s�|��8<ܯJ�Ai��n\���\7�UU���~_���x'�?�+K���Rd�ѥ"0��;,���MU�����
x�g���HaN�0){���
6�[�p7}�R�!Tb���"�e���Jq��\00ѥ�L8�R �*\{� ��XƳ�j �+��O�J�l?8)��%�x*�2����|�<�BpviYܚ)�(�r����H7K,-�</M��Q/�B���9�W7��X����,h����gg3_Ԥ����;�����8o���'F�_�n���w?��뱶.9uC{<���}�rctZ��H�\G���G ��L�C۱rA���ɖH���O�ެa$H-OM��1�ޯY��慄�.�s�=�/c���y2���"K-
�%74�$^$k�C0-����Fʥ�Ѵ�+���k/�V��͟d��bB����6��Ȏ�
�'�(��& #V��尌]����r2̚���H5�B�z���s*K$Ϲ�(���$�$'�s�����G���*�g��N���vӗT�ȺYyv�"3S�����H�߬*2H�n����
_��A�1�I�Kke���9�M������;<qӶ���w4߭W��!�O�R�.���9�}8�u���h�<�,�� ��m�c��_d�L�J��p<�"A�x��)�hi�!߁>u�\00�x���u�ö8�!�@�#~�H�^J �0��1Sm
V�� �ɢv�z��^<V̑���=f*簔%�b�xiJYY6H�96é
�X�:K֜=�1Ey+t,���[�P̌�,�ɕ����p�<.��ޟEOkGN�zTfX�F��nd�Ɠ�m����v���q��T���e'i$�]CP�&�������-����50
xA�k��ːLn;)���RdaEV��#pI��-u�%��4�u��v�g��ѨaX��/�wڞT|�� o'�������C�
^ �`Z��0�
V0
�� '�\p��4M�R���J7���fp��L���-L�'&#¢��ɊLAqhGݾ�*�cy�L�s@|�XOMK<9�a�4��s�u�5�1uMGJ��nb��Y7 7R
�2Y��Sbv�9$cNb�H��AqY�6[��k?��=5�'���t䑊W(xpm�6^�.��m�2r���x��uY� ֈ�����*ix���WL8u�W�> �m�f��nW@��
#3B�lBo곡������7�ۡu$P\00��Ɋ�7#�� ej����c �F&�d���д�C�x�7�
�� r������
�X�% ��4��è���OJ�~���ľ���hP�z�I�4=o�S� Gu�ӣ����\q����c��A53&�i�ba�s[*�u�5��RJ�����E��#����N�˘ �
��uB�4� P8Yf��7�c�

��4:\00�u��,�g�u�䆥ljg�\00�|2�������2u�_���up*Ysj�^��쐎�m^}��c��@�:`x�A3�x��i�u��]جV�?��$�����K�����e�υ7�wa����N��p:ԍSF8�(\00;�z`�K�,�*VyY eQ>.���D�;��>�[���ғ�XL�7q�kQćj�\00�*�W��W�c�|$ܰ,bE����K:��?�z��������Y
��'2� BF�l���Si�ʲ��t�q�Ou}<It�@��d;� ��%E7Ƕ�
`� AҔ1%�n�W��7rCd}��^O�d����M��������~ZeG�ip֯X��E�^��U�+�BEBK谔$e(�����T��i 9�z���ֈ��jU~����V r���9X\00\z�6X�y�NӐ��X3d� ��hy ~֗r����ju:��$y�� 2��X����JY�g(;V��&�$F�.@�N�h�X7'.�'��
�tT�XƢ���ra!&�K���T^���g8�^P�<H����V2��8x:5��g�0�9'�µ8�U᮴���Sk���"Y��T\00F�+�dU�v�j����v���
a
Ƅl��c���G:8����_|�9���o�eU�!��b�n�K ��ק$$�MF�r
�G�v��� ���3�)�O�Af7����O�EʘT.M��# �Oo~���j�.��*�w���؞����&��!>�v-y^��+3�pϤϱ��7�mB�B�Hb"O>����qq����,�olЉ`@�9^X�e1�<=�Z]>�L�?�v����Bu^.�xų��*�Y��o���nWO���=�˚� �X8-RbB ��;��^��`\ȶ���=�j�٬F2kQU�W��.-|p�q@�H�No�*{�ɛg����ooo��)��^�%k�\00����0/E��,K��q�s�/�������P}���3w¢�{���3���^6��t�� �Xpz����v���ԫ������ò20n���႐���l�*��r:K��O�A��T(�볂�LvB��kt���oq�d�=}M���[�c��yZv.6�s�{Nd���Sfw!NrA><{Kge)~��]�U�px@4�?������`G����\00�N��1ϲu涹[��(jU�v��ju
�^��6Wx|�_�V�IH�����L���d�n�6��>��{ �7�� ΰ1s�A�H+��*�Y��]߲�.���UPS�� T�9�)s�\a*�s�O<]N�0��}����������`�G���nov�# �8�n����p\00.���0d�8�����!�;o۶�O��?ቈ1x¤r3��AЕ�jI^��c��[LaN[�O�fM�����G\�X��$��N�2�=�U/lklE#<)�kA�
W�"�n�|URL��L�rָ�m��m"g���jS\��g�ճM��t�f�]?{� ��g��<���u����֓�n��ۯ~��$�)�
�49G���@�Yϲ-@�`�&�y��������RCc��f>m񑪼TN>mQ�fx���=~s�+�H�3�3��"��ٮXq����b�'�q��OA�*drËxb��O��}F�?`��E'
(g���9S온>K8?1b�*�I��� �"=#N�qHa��X��R=�Q��k�,���<
�Bj���u�{Φ�B!�:�T��0`���o���#��hE��3 p��﷙�U%|���W7��S�g�o�Үi_��$�XG|�Ѥ��C���@��3�����7ϊbESvl^��H�_�P*���
mW��Z�X
�"%d@�5B��+�V�lJ��9=�d:+�9^1llӶ���vcr�В�����.A���,l�m}�
��|���5M+�� �u<����a$���sù���T�T�d���^{y*�b̂�3�ɤϟ�b�C}���8n�:�,�e��V\00���T�Nu!1b�TU'� ��q0ˊ��?����K~��<�* �s�}����jS�ϟ�_��>}������W۫���5�6�߽ ,h/�V� n��]�ɮ�J���A��5N�csVY�~#QI\00��\00�ʂ*+�~��I*!��iXXB�3��Y�Y�U��CT��(����(�Ze���A���ʢwR�p��6�`ʢ����/tE���*,�PP�c�S�,��̏$Y����C$|����d�YXSn-�f+�T0{?u���X(��)���p�&�TXH-� �\�[��=����m<��8����6�wn2�+Q�u�DhϹݪd����U��X�n�Wo>��W�_���]�vװ ��P�X"�%_k�#��%C���XS!>�l�?"��������� :�������w�Т�S���P���FZ�@C��bzo�I�[%`�Bf{H��3{$�
9d����h/!�Z�]b�2-�b\00��A�(wC�f�$qڋ)�2��R��G��S��J>���B[jDG�4M��"`�K�S=��4�r$u�� �EOzW�#H�J��T9�9ک��}xR='�������������;��o��7�a9�R7��rd9}q��YWo�^>��7/^>�]_�U�%�*N5�R��<�8�$"
Ly_�4��2n�q���ѡ`A(����\00fN�q�RID�}:?�oNI���۔/�N��YU�фa���MD �8%!�]kVRO���r$�o���������u�����_oV�9!�)ʼd'Ԏ�-;���+��c��� D�a�Q�Ȧ�ʹ�>���\��Gj�96Z�1[�&��uվq���A� eU.\00~I��5ۅ�T}��� ��T�uS�٭߼�yy�{���'/_\00��n���MW�0 �9w�C���(�#}1;��­R�h�*5x�\��Tx� D�h�7�P5�U\QB��|*<��֩��p��5VU��T/P�O�WlQ3��$){����a ^eP�C%T�$9�@�TAuf�n�P���3'EV�E�+ ��YR&,�g�� ���(�6UXK/n�D�9�d Y�q�����V�X�YinY�Z|�/�5Fu��6�$���$� �X�l�,���siR�+�e�ps�ݕ����_<���o��W�-.%����)#��b0�W�������<�;+�
W����Z�e���C;��uT�(I��l<��0�������L
���5o |��ߑ��YE�}�A��*�_��KU��ӱ�,�b_�~#�#��ê[����hƶ�+���i[c\00q#�^ �(�:Ӫ�Ү�V7���x8Z��u��'�}���Z�T�m�)�R™���v^G��\�u"e���
���5��nq\q/�4����������$���\���e����'�^UU���z��U���'�,2��5S��|��6B"�_\���6BND��rv����a�5!ܣ���A�!�0��K�ivx/�3�E�F�����̏d|+=�f��M%���]��6
$�r�����v�œrV��F�0_r��$��#SDI��p6J߄I�k9�Ǿ@?,nk0�^59�s�j�pE�©*y�8O8��i����� g��OM</���$�;%#������ՄINV��eQ��TU�|�}���70�����V�zS�����U�r�@O�8*��$8�W�:3�:�.��� Z��S�g%��� &�
S���^�<������qEZ��h�$���b� �¨��!?a1}��gQ�PJ��� ���/��i*���T�$�-Ol
�cm�*%q%„В�]�n�������K �/j�0�:q'_��n�*nf m-gǼΟ����s-��f&s��[���Ԁ������W ��/�����ȃ��B�����}�����j[�9�"Ҧ�ն\���4�c�� �L���+��i�x�0 �!j�N\�:]� Ǜ5t
�ӧj#PL$2��%$PU�\007��3Խ��p��39$�jߒ�0�K�m�E�Y��p� H2JԐ$�A�� #�Co�ڊ�a����Zv�/�1v�p�g��q�b�be�k��L�1
.t�_0���~������Y�w1H=�ŋ���90i�_j�?[��IRͥ���� X��\00�|f�Y!o��o}�����|���B2��Ȁ�8t ����,/��t�p�yL��$���@���@�{do��,�<�f,��AT$�@�6��$����>�"tz�۠�.��J�R���"�}�����[Z��S�R��Q���zВ��]'n��i���;�kT
O{t�M���y�pqY��H�0g#Ux���E!bn*&���%���U?��tO�\3�W`��^��H�y���
2$��d���AK�^'3��$���y��j�k��o^?��?��'T�c}&�\00+� �Ft���|%&q�
�*����F��vP �:�
�kU]ME�|��Fu\00)*�C�m#�L}ߒ㕰Ԯ e�sb'�v�M�ѫ ��|�e�a���N��^���a�ya��tS��t㉺�D��Xe�R�
e�#gj �y?�p
����b�|�@���i���/鹸���3;a��Yn摚�=p��M��o�.$\�4����;�9�L���~��o�~�|��\00X��#J,��J��tK�N� {ȋ��Δ�������q�h@F@.�
��8?-3�
��󽒨L*5I"zJZ��5�\��X�K�k���2��!A/#^.8)~��S�)'ۈ�*�� !� z��bP�ܡ���xj���?�%�qSШ�&&���VӐ 7 /�J�Y����5�7F��c��ǫ%� ����x�cy�y!��a�&�,�_‘���i`�5R}�)��~�YK�ǿ���矽b�
Q�H�I_wJ�X��]�nKo�RM`�G�K��m
���쪬G�R R!�˄8]!��F�*� �g`����t�m�N] B������Z@�'���
��@�T*���PNM�H�x�za1�'Tہ�-�` k4K ��h���'ZXw�CY���32�}F?����x�T[WF��IG4NYD�e޷�ݝ��0�����,7��Jj���.4��;?O�3��H��S�*4R����/+��<���"��Z�<�FV�f��aq>(�HB��x�C/.��3�� qr�I
5X��=�X�s�E�mm��i���BQ���w�����h$Z�Y ]� IQ".�u�+ac��w,��@���9��3�U�fv���8=�tRQ�
>N�X=&\00v���L>��׳�aݤ"h�=�{8+-�)��<�D
�h�lAE �8}8��ٛ�����^T�/|ƴG.N=�$��$� �/M[�)�K�B��ُ����p����R�3FQ]��EY}���;Z��ϟ߬V�?MEM�Oj�R�1�]�WM)� �ׅO�eG�^H����с�������V��~`d�>i#Ɨ�N׈]�V��h�.麓$⎵u�;���}I�ІH��쌍�X���hy�o[�5\�V�������W*��A��e��0�� �(`���Խ��$�)�x#�g�_�Y�����y75��V�Gsd�i)6�l9�Œ�3�j��3�����i��f&H���)�TU8�۞pi��d�6���5�%B���>y�T�x��� |\00�"G���\�dEɷU�G�����O\00�����J���95�Y���#a �D P�m�j��y�T�l����x�$�����3kZ�g�A�d��eHuC��̚����V���B��
w�q��.֛{���7�lT�bU,��RbUX�މ�6��n�Q��O�1!=��v� >W2
�꾱���"摠<��X�}����h�g��f�Cғ����x�-�fAY��5��M�E���yI<2�P������|A���b{�h����T�Х$��e�4�k��� (u9]�8�Ɖm�D�o����4Օ�� \00�W��j�T͕�;#&��0�R�b{�g_��P;�R�J@�
�ty�{��#��)D��j���݄�O�S�l��m{��8������Ě�eLQX6j*O���F:i����^(
Mc���9�D��$�,���f�?'�5��~ò��a�;�h��S�_�+�w���=�\00REN6��z3W�A�L�ZQ���Nj���}+�kI�9r�!/Ǽ>���v0�Aw�Pv��|%0a$6L4# �Ү![����˷L�>��j7C*�f/Ea���� �^.���
쐖e\00��cSh��6��U�7�pⲉ�.�1�h{�bO(�Kڂ[���"YP yof �Q�]i˪Z���h�꼏e�0�l���a�h0s�}��l�S$ ����e5g�yn77ÃJ �t�~(���(S =�����j���O���=ΝS����������L`d� L �dұa����OI�$+K�xJx���i�@��+$�� ���/�x���=�R�^Y/,[�e@y�߂�_C[[٦�_C\L��3ǔ���Af�٦�� 0H�w�O���UbY�X"��kYѓ�fU�A��S�+��/�+v^�$!��kn��K(�Q\O���C+�]~\�$R�;4�����,u�9�`!,�F�[̝���S�7y�q�+6vF9��/bq�(2,�꧞���@�R�0�[��q#\Uum���\00�TM$!(5��=+�R֍�M��Į�\� ��
wv��}���&6ɘ� �oڋ�X�w�h0Q�S���{1�,_�l, _��
mT,�f�H�HQ���i�\�dQ)�`kL^LZq��@��zL�ʢi�S�7mTl�WQ� �q���,�i8h�OXYI�<��F_N�P2����N������l`��W#_9�4[���(R��<�x7�9+􍦼��cs��e״yY��TQP�������Ñ]�W/��隮-ௐƛ�d�g��v��R#<��K��$:-��[ *4��(R�H(U��n!��f6�҈���b��5���ǛC� �b�S��5��;�F�.��7}�Ҡ�=������sOH��'C�N�9�C
R*k�]J���+�C�p�= ��
"�
2ɪM-<���c�Z�=�+��)Ց��"�� NX���oh��O�ZWz��r��g�BS��-\g�=w/F��X̸��^��c͋��X������p�\MY�P�@2��ju\00�?���{sj��Do<�wG$��l����p{��D �ֱA�?��'i�����{b��W�Y�ز�l��:YQx!0�2�Z�]���2G�}R�V30�����D+���t-������`<���*� nշ
����p��ID�ж$�S҆����BĉHD���!R��An�x����9��-R�]�1��o�s>>�r{Fl:���˵�E���^敏M;�&\V3;S�� y2՞Ȩ�9Z#��3�Id�[
���~�Ym���>m���H�}N(dpQ]�k 3(+�ߐ,Az�8p
��@�=�-�Mhɦy�1�&�`���%P���z��8}� ��ժ���\00���
H����ీ��TVZ���:&\00O��K��l��^�OpZ����Ę�x�.�4m�%v�bċH��?7pAO`�6�>h7J3��ž̸�GK=��ժ����}רiܸ���뜍�n��‚Es1���.�"u$�Hy���f~]�����\00Z�*���`�U�ɚ�6�Ze2���VzyZ  �I��\�;�7��(@b� `ϩeJ.��t�/t�L��ø��x�\00��0� ���
w�d��UvzeE�L����@��p��z� ��x���t�H`4-��^g`DHvO��S�D��0(i��Հ�^�@Q����&�t�Xf���.:��%/��Iē����GWF�T�W��L�b-���l���>ִ�y�46n)��*İ���~�dQ|[��(u}���q ^_9�~����F�#�AUU�~{�y��պZ�����!&\��&�ɬ]�
B/PBAT��A��W� 9�ލc*�>D���V� �)���T^��g�zGߖРe.�RXx��X�:)b3ʱ�{��(?���A��:�e:��N���UDN�{��k�t영���eJ�v�9�핅0����c��?��S�P�bc�j%k{Dݛ�e��D�#Z�!D���F1�i}sX����ۚ4�o��*�[R�ntx8��&k'�\00�\00�Te���� (�K��<�2�I��q�}�Bjy?2%�=�K�B"LD���6+H�'7R��ֲ�>�ȧ:Y��<�Z� e���/y0nl��[$� ��~������`��%�Cs�`Q
�rۊtǠ�v�_�=q����Iji���"��
1N�H�X�`g�'���1�e���5��$���a�\00]5
j:���w*ܐ!D6�ڙ�䒋���'�WXE��c�QZ��Zv�J8���4���s>� �S;�t;�1�gYkf7�Y�kq]��Rf�<p�zw�������H2K<�/^�By~:�$�u&��
���ӎ��N"�+ǿsV��Z��Sғ3�\00ʐ�گ�J�tÐ�s +��Gz���܀~� ����S[7����4 �B��:d+t"h��8](�:z��U�AM���'�v!�c�t}\;ˇ~㖀s1����}��/ �[�nh����ڙp�\00 ��Tಿ��Bl
T&�ʸ�f!�5��i��E*;��$շ䚎�07n�����ƒ�SZ7`�Y�{2g�Br��*w�$�MwY�+��k���1He��w'?�K�c���F9�$�,V��^C����8^�
]C� �����0���DI$��zŜ��n�㉻���_S���f� eUAq�p���i�1ʲ;�(�TC�� �YV``v���TF�M؝�<,2�oFW�U��d�P[��.�h�U5� ��O4�ldJ|��],�[���N�*�)��'�G�o��:�,���:�?�d���f�A&�t�ʽFC��Lw䑰
�\mש��� #f����YR,B[[�'3�S���*TIV�����+������(��R��5t�23��E@�7��L�u��E�۱/\00���ea��� M#��0�S�6��ޕ2U���i�����tZ��2p�(� �&1]<S
_ ϱwk�)�����O��T�ŋ!W(�����\00�c�3G���Eۍ?qi�b���L����=`��̍K��4]43�Ϋ��i"apf.�ZYþ�&Mb�.�ٔ^8qSXc��$Ǻ~8d��k��b�FLJ.9X�3�Թ���5���� ~"7"d=qN0G�ꪴ���L�6�1H�P���Dx� U�<�O�.� :A���q�^h�pښ��lX��#8!��TFAZ74�>R���t�!���wm�|�^&�}�7?�j�w��� J!2����\00�y�Q©U{�bò-d���a�����|�Ǟr��Gk�
fTv����}X��k�<���"�v�3�cs@��?:ȮJ�D�t�
e(�����z��(�݄yM2t2���E�x�V'�utQA]\�[�XaJ9���0�z��\���ʬgA��M�I��?E+��S��k�S�w5~Y�y�N��5��2�h��A��,`�:�J��Z����a�w<���$�xZ�sIj�齙�a12J���`�}�a1cgp���
�T��G
�ij�h��P�T*�<v*��9Q�x�śt"�7w�=���6�~�7,k.E/z\00QVZ��qK`PBm?xj��K>�x��$z7�?�'��?�a�s�d��.DQ
)��j$���%�e*l>i�s�@��ڠ��cLF*t:2��[��&U��X�r�Vg�@Ǽ���7�ZhR{�P��^�C��9rCBs/���W��C/�����#�CSK�a������(�H�o�C�
�I*}�!H7R�2�U��}$���߲�.ʣ�e�^�����Q�I'#1vO�p�~�r�Ř���Mů/�0w/w,�d�M�c�`CLzF��ܒ� �3�%�l���\�Ŋ��p�*������o��</�\00���E9(�27�NR�Xd7� "��+�L�2_c�=܋-�@̉�6� ��{z,/L��U~�e)Y�W��vV�SN�W�ĥ��p6��`D�5`=\�C���^�#-�S<F�[�
�u���Kk[I(��O�A���& ��de�@��\�"ãP�akRTG��fMü=gܣ��9��\��O�[��<�3zg�#]zI1��#�E}Udl=!h���7�ʎQ=Kz��LD����hs���o̩\00*z\00��������j�� ~.Y`DeY��x�C��t G���\{���buE�砻 EAu\�J���&)�쾲�-�O�qN�S��0YH� �92J�+�� \��t�����t�_�����O�j3 �����cs��G�S�>N|2��X�B�G��{��x�X���:6G/k���c/��xI��%�2�?�"��:��m�4�\00P��㊿ tjc �N�u�s.�m��֚<��u�v�8�u�ȣѯ��yT��A�����O��tF:��RE\00�};��S�
����Uq< �2�.g ��LW�%�M�$�[��e��Z2KYn��|���"�b�\00Idq0�>�����G��P^x�h�gXY�ٲ���μ��)�U}<��;�K��c{@�?�������N]ӧ�Xh:R��:�Q/1{ĵC-k�DT�Q��ö$��MZi"e7�'�u�;����>{F:�@`N7��yy��Bdu��BZ;�{}M'����n����:8;M�,��O����kgqQ?r|4���\00�Qa�,$�^��d)�4
I�7꒤U�x.���\�K�Q���� �/�,y� e���E�ŷV�=hQ�d��� �s�wO-�Ϋ�[���t77 G�� ��:��,������׾�ç�����OM{�p:��r�q"��f�Ǻ�y�c-s�:�q���p��C��sq$5��1!P�IlUU��e�"�8{^e��\E�$�7N[���lʹ<�.u �+��b�E��ȣ›V+¼�<����g�&c�V�_Д'�%X�F1FQiL��H��*���#E�a�#�Lˠ�#��q4�#m����7]T�z'r"
�}{f/7�6̓�u��C�����0�'�-I���9�"�i
��4�c�?�x��.�k�-N<s�1�<?��\Y�ms�d�u�p��������M1�v8ul`�X�AqԒ��,2>���4{σ��$�ޫ',�(.�e
�u�2����M �r.]�U��6�ĩ���t���L9��+��#�
�H ��R;�ML+5ժ�?%�3
&����Aƀ{�{bI{�����T8 ڱ�3*�|[2�8:R4b|���B���>�v���V�t�֧�Fʱ.W2Ld����\00�L�>N:�i38����e�&��:(�t��b/�8��tuSsP�Dd]������ͻ�q����x�p{�������c <~�P�je���E���[�����#q]�T�32%2/s<*�ŝ�� �I�*G�3!��U9�Z��z�G�ij �.fsg��]�DR�}�
��M���ܣ��JL���C,����Q]D7fe�qJf��O��(�;R�I'�fKҌOL�IF��ʅ���e�Tt'�U��5金��#����q�b�{IV��¸�'e\00�䶜�DDc����*7�V�.,���o%;gz�%��� ���P�4�&Y�" Cxk�����+�p�o?|�x{��{�\00���T�Rx�uS�EU-r��2�l�iZ�J8�ˁ���
��!��(3;*��Ǜ\f��P�\n�f����z�&iN�,9�ɴ�hR�c��
f!e<�[�RN!}�,�rE;*`�uu�cdè#Κ�V�Y�*��Ҋ�1Lr3�5���ޕ�̒z]��&;��g7J�sR ~���`Y`�?�Ob{SñZ��H�E��n% *#c}Vj��E[6Z��!J���H���
�MھR���6���i"z�C�\~��a��=؜���>�m,�<K��B�ي,�t)��X&9��5h8ҩ22=�[�dM_�v��xf��\006� 73 �'ȧ;�Z�*�L�/zS��.��Q�;i�wJY�D��ì {��p��8��K�9�g�~�9直@̸}I����X�q!�
{K^�[-�U �؜R@pj���Q&�8����f�Y*Q����W׶���d���;!�������cs��
L�$��W��mG �67��]_�� ��J%G�\00�f�p|84���RpĂ&T��x�N4T-��p:y�3Dp�� �6���d C:
\ E66U3يpE"��Ĥ��.�3g%��Y�Nӓ�m�0�řO���ԘM�UE�i��=��P�/p�@j�30��t�����E�4L����EκH;�� %�<��\�w���2�c9�,�T���\00ʼnlԿ]��\�\00p^T�Y�B�hP��Ȋ[����>6��[�#i�6n�NP�\00wsww��mΔ)��mW��v��"��2�ӂ���{4:�GnHI�����j�����KeD�bV'�Ebt\00غ�Z!�(XŽ+�'��ײ�rė4���q�w���nŶQ����P�����]���?e�z���u�g�B���嘒M�Z\00d�5�4�R#��0M�j�C8�qEJ\c1�͆5�`?VO^n�z?2o<��3�ȸg1x3�+�$\_H�N����xV{��Wl����>�~K��JĬ�C��o�I��>���D=�a��H��x7ԇFն��\{<2^�,��m��ۇ[�@�(��pw�ߕ�d�-�$���vE �zR\00}��b�H’l����i������bb����fOe�!��"�I!����VIi�K�:P�J��>���P�TK�$m��;��rۛq�p�U5{Ufk��c��?oIk⧣��FPx˴i�(���N_*�%v�SMӞ����i鮖.��J�t�.���#�ra�D�3� ���.´�5�9�e
��ˍ݂�D�/�"��}Tx3qӐ�M1D�m[�V��2�*e,�K����ө������=�"]H8��'��y�nO�#U�{]����z��n*>e��GX�02O+�e'�����`[媺�tm8=�� �Z��{xY�W�O%�?>#�6.�?�nO{�{#�j����g����$�ms\00C&7���R�9x��Y��t�tB��$e���t/<4]�%���8��tND���3�N�<CEܕ:�, 2]�L�����飚x׏�'H�O��L�;�J��v(�X�v�_��������j�Ah��N�Hʱ�DT�|�(�"yos<U��%c�$ �<�ݳ.@�t����nYT�Շc{x���
�|dWY ��%Dڃ�(S������Cǝ���(�PvpWk��������5����Ƚ%gz�����HV�\r{�HjW�
[@5���ҳ,���7��Ç�;���=Y��\00����!�GF���FN&��H��8���"�!���T��z�2e�5��j�t]��z��i^\aw�yK�2�U�(},�2
�)o7YHg�X� �6�m:Fa�������>!�v�5�`�$V�I_몪t��4 nP#U�wq��5����\00�i��� �5�]UD������ݱ>վ;���m�����6��n���I�%�\00n
�/�TX)!o�*�U�LYm��Oڶ��cn�wI^�,�ڋ�풰���z KzY��ko�zPy�qM���1�Hq�C�m70�?�����'?�W��i�\/^�l_��ۏ�:ϓU��X)�*+�q)�$���&P�t���~��n��6���k�9p�c\A� [!:��p
#>U�^o8�����8����A:�(�{�"OFn�D?7�7�q�M�*ԙ��B^B��B�vL*�V�
g��gtx�`;���q�^֘Ȓp�q)[ C!�� �CF�TM�s奴M�lj;Y �������w�����ۇá�c�U#�F�" r���p��O�5��T��cs�K�A#x�V��=�4�ط��Qr��2�RKI��ly���LJ/�@}Q�<i�
�9�< �,����! �>|���-����~��|�`��[�fWW���g ��.��3��� R.љ%e��M��8�>h9::�Rs�B�^=�-WX!ʛu�ݵu��G�q*Q�^�I��Ԫ\�i�Ɍ֝�K���Q��b~i���yY�`Ǚ�y��,����m����2�zCf����N��τ
�Jx��(�$�0�ii֊~�Lo&�B�Pw�w�?�}���������l���?1C�z�Ò�&q�+E�����U�D�I�wC��j����5l�\����/Ӭ�bnQ�v���[�7���On�/�~<>$Y�� nL1UY�u ���O^>�.���� x��y��m���>��m7�ʲ��C�Ti�+viuߙ���j&�\00ȁi�|��r��=B����|U�͡ K��-�,����Z�h���𼪎H�t9\\7��i��\00����:�u��d������j�}�K��)s�@�t��Q�g�#gf�`��/6FkV��\y�� J��W*��
�|e��Ծ�]��w�x��`J�-I�������'?�Ż�
;V�(�}��zs���Y��� �#�9�^7������-�U�E�Oxvx'77��/^��lWu�l�Y�%)s��0����߼�e1�o�'w�
o>�;����j�*��秦��p�&��p-�p������MY88�Tj���v"M7 $�.Օ��
�������v=>{g켙^��2�H�3��H�Gy�E������§h�&*0��.ֈ��DzD��[�ͼYlvlc�fI�V�q��N��-�����%q�,��rG����>㬕Ԣ�M�9D�gB7FRE��B.�]�����?���w� �ͶnE�X�4H��qGד ]:�2M��IK2Q�)�,;>�3��r��u7�?���(lIC�uyA�K�r�#`�*I��b�庺}8�l�wȑ޽��$���Ҍ��#���7��y�[!�`�[��߹Z�7q0��n��f��&2i�m�j�6�Y;-�T&�02����Ƶ{�Uٶ%ǿU�x�e�D��� ���đ��[�N+Ô���J�B` ~��Ț�30r����j4�18���˥��`Q͍���8@#������yb/Rf�4:泲���'��Ү�dk-p��#VO�䅲G������>��S{w�oe����?/r1���=���zC R���4��K>$PQu���8�$���Y���=2��j���,�'��т�Iq�^���p<Vܼ����#��vU����z}u����*���������t���'\��Hh���0p�� ��p_�,�{��2��FN��vD%��k���>�m�����Ԫ��bC�I
�ϫ��!9���u%�8�آ��,�������&�c�ʗ9�6#�/�1��I@�͏�]CԌۙ �+�Q����5mQ'^)|��xP�&-�g�����/�H�S–n�S�����~"3g��,�S�}F��Ssww��@z��9��W_��O�� ��[B7۝��IV
�� � Ũ�L9Ӹ\�;]۠�9�Ue����D���^_o�z�1��pfϞ={���U�ƃ2�;:�N���2�8MoD�4�����-��(�����hYq�����|*��:+%x���#����2u�L����,Ҿ��x,<B!lK�N��Yd�ٮ����[��5�&��\00�04�p��!<"-wҍ� ����.�r��]�Y�f.�k`):��-%d9a�v)*P��D��i\006�K������ �<-dd9�r��H�$冋$s�y��O��_�Z������ŷVe����\00���n_����͋���p���I������wuۄ�v�T���UV � y�VU \s`A�E�o�, c�1�'�3K�2/7U��n�\��3�%�� ���
������n�e����T*��
r�BZ�r@�V�] 8�ؗZ�0����H!�t�]H���Z
�uZ�ԇ)�&DZЫ��ȯq�'1N���L�q�*���=kڸ]L=G�Ŝ}B�f!�k"��]���SI"J��V�\��e�#�k�}��a�1R��,A*bb:�y&�%E5�BV �H��0\00�]o�˯)�gڲ,c������q���kĆ���W]o�����������,����m�7��,�cC��>���-� �f`^��/�<{��,]�up���S��h[�)��Ѵ ��țF�<˙6�ފ:�pB�I��zY�!{Ŝ�#�S `8��

T�
��s��V���\����a�)m��"��u�l�p}��sÒ�)+O��2�v��)�6�본Q���!fgR��'L�Z��
ÇNK4��R�%mfi^a�Ž��{�Ö��Gm]7�:�XS ٭H�OK�B,�Z!ND���Z�
�3V�Hs��6���rl$, ���*XHl�WR}&,��Tg�O������e�������ۿk��ׇ��w�o��GC6K��j�H (�j��١�+5m�г����U���������e�����e�s\00j+������X���������*�vB��=��4���HTE�9�k��]*�
$�I�����MZ�.`ɥ�Sac�%T���h��%S��դ��J�*v��J��4= 4K�D��*wԾ`��%CY�9f�a�=).����`��rPc�.�Tk�$��2 �Je
��E"!
�ŌG��teG(�W��ۆ˿p��
@\t|&��(�:D�Pi�R�����5�z��L�����j�\00X��퇶�^�;�������g?�g*R�G����L?TY�*˾{�&��ls�|��ճ��N��|^Ux1�8APK9�L��b�P�9���4�?r��2�\00�֪�Pr��)�ɝHuwmnK]P��@y,�&KY�l��!�@�I݌��^d����NOI�gx;�ٚ$C��
+$���Q�!�N�����XD���!�A����Q�5(sZ�����^GQ �I�Zºnj峔��싩f���ޛ�^̼s�hչEY+L �ݒi�e �q�� ��=��n\00&\�"�=��$^v�E���+h�A49�%lE�f�Y8�@�u�'������g�Ͽ�x���������7�j����?����Y)��H����շ^�\!%|x����W����چ�AUU���یTe��p��R�a٤o�n�x� ��"{h8ó[�z�/���sE�껦`���Z�7�beބ[ͭ���pk��O,nnٽ�T�l��2�}-7��XБ�a�OsҜHL)���
̝ːR ��*I�r�Q�B��_��1��<���[c�I)QY���D�s����t�K<�MӑܷT�Z���'Ռ�O��k��pg�.T��y�DF4�f%�~\00D^�J��he<&\3ٜNF�6��p{��U�l�u�����_����>~���W�����mS��׎$[�VMs�#rM�g/^�%�6d��� O��0:`���޴n����xS�y���$�5����3�Q>-��r$�V��w��C�1Gj���%��������2�r��zZ�|�ؤ�B��Z F2T7��!�a�H8�éI��E�\00���E�Gk^��=��P�����C����˲� �gq�i��b3@�k:%��k��8I;R�8�9�n�_��љۉ�e�2p�^ҥ�~����
R;���sc�:++�d�����.@#����d�6n�zw}:�E�/���j�I�:o�٧v���Q�k\00�����W?;���`�§1��{���}�拒 ���������2��)
˸�)�ׁ��2���a��@,L�G놣j��!�OYl���� _o�$K����{�kU�[w��Yzf0\008#��@#h���/� z��#�&�$�`2��I�"�Y{�KU�{��|�x,��Tw��S7+++���ª��r�`�z� � 纀]��ʛ��7\00[@��8M�b�\(���z�*w�F �.���9�m<�~)=�Ι����*��-������ �G̴�Ƴl� Ρ �ۊ� ���!���Ƞ 0s0�2P��d>`�I��8'w;;�KV3�V�5��{i�E�LN>Fޞ8$=7qȣf��s�?(�Q*��gGnj����=%V�5��/���"_e*��DExg��n�C����q�x���η��b���6[*��e��,��<���Z4�צ!(e�ݨJ���6a�t� У��ހ�0�ʩ S�Q*H��z�{��ʺ��|�Z��&\00�� 5����n45�<�?� +��8��*����b��&���\00�����umӔz��AU&;g���0:�$x߂��NxV�\�)���p��8���W����a=�+?� �]Z��Lj�i7c�Η��a"�4"fR���O�nȳ"����Pm�.� ��'*����]�������"������˻��j��M[R"��6��AG;�ͩ`+O��)��nw>� �������7/�ߤ��bIo�P�H�Cw�Ҹ|{X�I{a� �f�10@YE���X��\00���^.�!�&0u`���Yn"\00Ёi��$+P2�ְ��D�bHTk��)�c�/�B\00ma�ڳ����d�+��b����!'�;��S�[����B��9�2���^�����z
��Lq��C�5���k�g�Rq�O�7��'Rs���~2�K_����j �����F��5�2PG���H_
S��Z��y�'^x��錥qd��BD*����U���߮׋��v�g�E%q��,�&.Q,?��������xOMR�ܾ���_R�͗ ��F.�8�U)�D�a�L�����@�QA��AԸ0
�<�����I��� bQ�R�')81C�`�v�)�9m{��8�ЃG����STS�dP����sb�+���d����f��!/�a�0`J���q;ȷ�u���`�$7�b
* n�Ҙ�2���t�� ���S��6���cE�{���voZ-�I]:��2�Sz��<x�� ��<c�m4X�咮��x��u^�!;~R�C����|��k�<ʪ�p.ڲJ@�몭�������/�<�2�~�HJ{��ܽ?�Ne�sy��SUԠ�cȱ�ܾ�߾zgK�݋%lC��ݦr�\00FI�����)7��|�<�1�üء��Z�(}�JzlX��Kڢ�j���T��
5wG]2�Ơ��j0̍��
���i��"�^�����2Ӧ�7(�N�oJ��&���C��{P��ob�a �
%*��g
��Q���,`-��@tM���.5�h�Qlm��ԑF���6���h<���/���σRx���M�PUE��g�T*��u�q�I��)0������y���|��~8=��|��2^�������t�K�쫊J����B�Q�L�<ۼ����r}ˮ�6ΩM��˓"��˰��đe/�[���Iࡷ��V��U�V�)��cOӂ���MS���9��k�h��X����0�I�\4>�`4,Q��+̀�I����
0-=OȰ��q5�i�+ ����r��a��p���`�ڲ�ۊ�Az�_i�
�F+jf0�� �H|�#��L� �5��%�Ze��^�':�5�}�u(kHԣ����|��j�W�_��:M� �+�޶8[�+��\00���ӹ(�(rit� J8��D�����96�P������6��D�à�m]�ufT��8Y�ۛ���j�/7)ua�K(��)e?\00�Ɋ5�C��κ����!$�֊�zۦ=�A
֋չ�*^(V����Fm*
�L.bf�@����: Q�8�?�@1\00X��wt6��ױ�4��X�� n5f��I���E��4Ԑ2 �E��]�6oX��;�A���^5��&|P���LuE8�I�N�D��t�r��P2
��r�f��~��<�e�����C�2����-��v�^Y�_��;����C��t��T��p8�xd�>�`�����e�am��8���5K3:w KMz�벪���[:�T>w��\TT��m�D�޾Ȩ>_���$I�X��T�Ď��Z��c�T���ewr"%����}U'-�=�iV��\,d��Q�T*�Q��R������k�M",�s1��Q�(�����m�0`\,�H5|#�E �vl��0� �?
�N�6\�S��7��{�S�����`��'B�B��"��|h7($;o)6�4��g|kou���D"��ن-�܀�H�$�Jh{��.(�D\00>Tf,�dw>AP ��à;���ɶ�I-�k�.��x�5t�d�%�����ٶ?|������]�X��{�s�|�sI����k�!!9�ǝ�b̴�j 3c��p0�`����C�XHc���\00KI۬o�C@��B+��q낚~��α�F �(�����̆�.W�3�U/�J��{/��� �S�W*��,N@�&U�eP\00Րz�����?�Q`y�3��G�5]ԍ�"6���:}^
�y�@����]�!F� r3�īk�A��Xo�gf� =M���?G���v���w�OO��qԷiն1E�.��0�tw٬Q)�|ӳ1��}�(�\08-tl��Z�X�eܼ���b�m�Wx�i�gu�h*��<<�BR�χauD�-�E�f@�0-�׋G &Y - 4 �����<4�:�Z.rV�I��d��Nj ����
�
�,������Հ�!�\�C�3x�8*�2�b$ ��tO�+�dYS��Ց�0(��C� 8������5�Ĕ�;�1���+��1�a�Lu{1�N.��Jݵ��"[ߌ͠$_>T<I�� ��7o�ﻼ̩Z_o�i�ۏ
[�0"`�R��eU��1Ft
�|� ��a��8eZ[�9���[�ܛ8k1a�����<\00��n^��m�w��w��GS�$\��Cj�¹�яW�R^�я������A����<t�V�@�B=�bA�v��u�$0�
�\00ŀ8
X;�2f�gH��$�.�̘���i3��0�g0�o#��~&d��*M���u��h
�J4�2P�Ւz�4N�K����B
k��\��^�D�t�F��U�4`��X��Y�^F�+��`1��O'
�ya���m�/�+w8�&ؼܬ7��+��
�
��g�A��3AǬ��4S� %2rQ&R�.\ީ �\00gb��`^�U(K�0D.�`�l� d4&,Q���Ż�� ���3��2{�VJ�m�-���@u=�0u�;[�iFyy�����k&=.Q\00�;�T����!��<�R�b-qֆB��2\00�H8�8Bz�Eudlk;�{�E�XuLm���Q\00P,���������8�0�)Ȋ������B�V��уL,�=͸����t��ah�O[E)ԔhE�{�"��QN[�z'
H���|�4 m��Kz���v��M���C�D���|:WiXQvӔJ��Ƥ��53�Y�]A���*(�R˨i�
�*�gv��8O,Uôՠ�-M,1�c������hB�5����x�,[�4uM ���Ę�p/��ܩ�����J-�E������8�y�.g� y T�Vƿ��5 W-���\00�j��� �IV�u�<w��\�s�w6wQ��\00�Q�q����6��"}�Q˳��]N%GU�+���nP3�ޡw���F��i��7�y � �� +k6 ��a�3�<�jl4X� ���=ч@��۹e��/��
�������w_}���1Kvco�@��;��ۖ��M]ʛ;pw�B���'!����H�
V�Di1mw
|\00(����l��y �Yǁ� p��%�ô�(A T�������Wh:����%�ަ�x���\���j�޶*j���� 5v U�h5cʿ �"�"9C�V ‚.���C��a�nV��U<04p%�(���=��O�u�$01�x�Y�k��p�˸����ZmJ��pt0�B�x��]�y�q�s�;��K��� ����8o�_?�H]72��T¹٪gH�b8?:��j$i�V�U������:j�~��~��SU�^k_U��C��F�g{AH��,�s@P�\���S�
&�:a Jeˮ)(w�8�X!G���\00M( #��M��E�|��!�y ��5�x���jN������|dk�����!�^}�uL::����"D\96�w����D�coG=�ŕ0j�@��Uz�������;�*�A�h\00
�S�9E��6<�����V���‡�CT�!�� �r�t�n��ɝ(��`�,,�K(�R�~ G �p��p��Y;��4(\m]�Kc��@ ؅k*0�`��$م�'�]���|���;JU�G�
X��"
���餏�b�!�а1f�� 3:AN�0b�JL��TMb�yČ�DR�o[���L�g�B��O��0R�8?`uY�/BQ�x*��h(r���TC��V�t�y�bV׉øItU�� F�(��f�d Y����y�')Tb�(�{\00'�A����$X��9t&zqu�Զ@|!�� ��������i�.q�^�?�`�d�t��M�q�h��4©7R�Ѷ��u\^n�"�K@8�ȭ�7�w�����|���E�ZF��J�jgw���O�;VE\00��u�
O:~��Dg�A��j�a4D�)�o�] �0���tʜm�\00+�����/>b!n���:etk"� 8�k�UU�R$��ϊ���2/���i|��iw.�Q��c8�L���K[�&���T[��l�$Z�d���m�iy�E!�Ԏ%�;�]iX����n��i�NX}��T��0��']�
�'&^�ֻ&z9ٙܕe���騥&� #P}RU���!K����{�M�wD;WJ�Y���F\��p�������?��/�u��e���*��z.�H�S�S�<��sѭR��P���
-%�
Ki%�G%u�L.0!��&IB��M:m��S��UC���]�� ������Z`\00���%���x<N@�7�A�!�3|=�����b��}zxz�. �. �q�w�@��C�*�zA9�oc�U]����G
5���\00H.4�����,�^��D����r��������"���Ǡg�������B8P�e�U�@�*7͸���.�Ş��]J���!J� l|I5t���0�}ƞ�ԃg���3n�D���o�8���Q�c��"��ax�T(ucE�xu����
|��>գd��r���t\00�*��PY ��
%�w}�P�즨��CR�X5%j*`�@���nxQ�_�\s���\00������tn��T��Jٶ"�����ݎ��X�R��eݽ��)�*��e���GeӆU�j �Y�qʢ�X�]!�b�Vy5dav^0!zBֿ��2�;I�0|�yJ'�-.b=c�C|z�)���@��
��ʬ�4�p��Vc����,������� �>���Q�q���so�:�
oz6�u<�>��){a�]Q�?�������k� GPy�H� *Q��18unw:����/^�<��M!]��͠���Q]�;��k8-�x|�Pk�� b�;�C�HT�
�a����ݡ,
����9�&a���ʺ���p[�
��y�pS��_�/�Mi���o~�����Qx�Jn���*�,�8��3���w#� ���@V~)��.���4RF�urҁ�IHQ�PI0,9����#���}S]؉�����~��`ʨK�$7[��<�*�&<�����%uh�̤<;�i���:b>ŗ�͸2�t��5r��e��X>��݀I�\�q(�RS��W�Z�9f�����u�����(�g.>Ϣ���G����f���<y_�.�,�f/d6�g�(��0�J%���I���,�:Bj�DBk�<;���D��?|�t���}�pn��
������;��U�@���۾���wt� Xf�f�\00,ѩ���X��aN���DdD�0���
�ԀCs��V�4�E�� ��(?�4��0����ؒ�I$���Ҥ����u��z�8�/GZpl���ZF���Gc���z�+�L�5C����{�"��\M=s�����/b5e��X7헟�����sO����>�մ�N��y�QOu(��w�/�6�ULuX�����ߌ�J�+���b{
������J2��
ͅ|��p\]�����-Tʝ�󹅻����tx�>~����������7_}����4Z��כ�Ʃ�����?<ѳ\00F��i��c�!<������*4x���qx,e��+�B���C ���D:X�*�Rz+��$�?�M�b�yG�աn�H��ä�8
�y5+=���Km� '�&���z�R�H�1��-���~�@<�=M�����I�\�]�QC��L��_�i{>�W���驢Xe�'*����*�#�t^6����t�#C�c��?�x$���
[�Z쥁V��q���L��k�Y�E!�]�#�h�SSUtF�������ߞN���髯?�OE���,��V-J�<���+Be�T>��s��9]�n�!}>@���f�,otbL�LD��[ȋv#����Y�IR��5|U��.��Z�m��J'�N���'Z�)t�չ���Y�nmՋ�f6hw3�
րMn�2�� Ő�Բ�����]��6^��ב��K���� �R��
d����fx�.���g?�1Ţ����x:���˨�/�G�ݿ�k����z����c�H#T�r�E�+)zyY#���u
��kYHg�o�W�����G��c���c����pqs�rs�2����>��3Za��j������nA���<�Kl`��9a6��$E���YE-0 �$M����H띕�_��E4ed� lY�G� G3���\F񀞷�������Ẹ(�s���l�'�=��ڃ�l�Dzx�����POϨ �wQ��C5>�#ܠ�����V�zD> OJ���c�r@��ړQ*�����E�DD]& :�(^d١(�W �z���ۛ�Y�`�� 70�%b���p��3���:���"������3��mJ�U��c���zs�yq���}����� hv�L�)�-Wk���5�ei��{/v}f��3T��3�6��1d����#�=m�\�:n
o�-k0�\x�;���>�����H���R��xsH�ZƵ���ބEul*=�ϙ?��T���'��A�eBg:��t�����+ߕ\00�l�1�z}6�9}).2”��Ye=�+�V����O~�bIY��(�MD�g�H��������\d��r�ȷ� ����G욭X_J= ˂S\00�6D@1
sz��WuSaB\00q����(��0�i
�_�������fM7�"\���*�M*��X�.ńE�Q+Q���^�x�\&� �Y�O`������݆$W,q�F����&���K��p\00m��֪N0 ����zq�͜ߥس.��й���sc���/�<|�8:�q*�f��S��wz��_��EEm�Bs;LVm����D���P���R?Ѝ>���0~Dž#Q�՛/�|�v��Qw���IG���n7KHi�ͫ�/�iYֆ�f �D<��_q2-�oP��!��˗�uvP��7WݱZiK����„��?پy�2W��BmU�Ћ�&I`&Y��i"E �<U�1����v��5+EP�C(����8����a����,���za�A��}�}�ƴm�.��3ؔyL^٬�v�9"l@L_+z���Xvu`�<b�e���{���,j�8��� ��젇���ܥ���|*��<�ni��dpG��<ONs9D�%�'Eo�W�Y���7P�Z���"c��p��~����㱼���f�e /J���2�e ,�q��\�۹��mR����0Q��Q����`&, 5Xny���?N�o����ꢦ'�ʴx������l�,�>z�X,����f
i
�~\00Q��3|�8Zir
ƫC:��,t0�P$SN:Y<<�ߥ�kN�T:�e���G��<�� ��'`��
�ҩ}]8K�%��$��NB�o~�mo,��`��.O�Gb
U�'����j�6/�D�[x=���7_���+^�O>��Vdpܗ������ݫ��i�H�bA�.D��l���[o�ŧ�S��V�E�5)2.��¢n� M;�6�ԔG6Q��Y�^�#
f(X��YI�p5U=/~����]�e�\E�n�Y�逈����2��eS�����.D��$�q��a�����
} < ��i�~zRj���sq��4�#�C� �@�
E:O��
ͣy�A\00L�w^���j�߶:�ő�Ǫ�е� >�xO]}�u�h2�f���7���Y7ah̳A��gB��K�6�_:Xs��| �{H3�j. H�f_�zV�r�����K�`�Ĕ�`� Г���&���3��Q �x7Bf`V���t�N�����mz a�R�x��\00%�e�`�o�}q�� (F�U��>XIXG���(4��eN�C��N�OOOh`�|�� zOc����� �H]3�Ɠ�D?�N7>uu��Е�-`Ƃ���e�"X�� y�{�k{���Uߩ�e�j
�g��7�����s�p�.���91���ג4���a�l�xe8=��o�Usd�_��b���Z=�o��li���{�h�R]nj�u�Nv�3<��T�.��1�J��H�j�RFI%:�Yl��x��R���UЖ�*�p����/����⺄an��f�(`�ϧ#�U߁�E킵����MM�u�Y\00��yFQ���;E� D� �7�E\00gnj.a�0Ȣk��((��uSF��A���
de�z���;+D�V@Ɗ��Z�|�/E|PO��<C���u��Y����0��`�It��y��l�0�� tFMB�z�;�S�:���y�S���������Czx �a@�zÃ��X�?��O����_]�v5F�j����,��v3�Ob*�v��Q��W�fl HR�e�.����b�_-u����p�����r-�6���;��4�X��&�j-ό�L�i��a{S����qn�ݬoob�V�����[j?�r@\007
��\00Yw�jt�k��; �G��PR� �'��F�x
���?T��z���&�L'`()�Q$?a�c�47���4� ΘK�z�Rf��������:mlfJ���$-/�>�
dAzm`1'���Ve���A���Q?�2CG9n�>=>V����_&��?�z�*O��@�J
��,�(�pRgy��v��"U'�i�XmhZ���\)L�)���75bJ��̱��ً �nL
1��� ������1�t�T:Ck��B���Mݽy�X���b�ZQ�Z,Wt���� 1B
eh-pV$��;�5ʛ �r�o�Y�|�z*���ǐI+fESMw���^���0vN�)�`��ܩ/:�|�2j�!�%�-�J�
r�lG�b�,�l�837�H�����sj��aH������A^�7��1rH�2}���_][����������� 5��)�U.�Y�@��\00Ȓ-0��|#x�6ٞe�e�sD��ˠ%b�O�m[�$Y޿
��k\00�P��d�N�
˺�N,2��,��
�u����]m6�5��%�w�,I�$uM�bϘ���J(O�b%��'�v�ԽVi�;Y�!(P�b>t��r�*p��ӳ�u�O ����\00�}_�^��@ӓ����x��n���7�ƻU�k�J�+��i����z!���8�����6����M��(3UK�d��ӣ��l�4����V(�Ah��c��O�.�~�����f�Ke���k��L�C�m����p�3%�Ë��3��ml�z0I� �؍9\00�[�݇隿w�?��艹%��8���l��)䳒,���NM�]H_\�9��YF�*m�Z���G\00#M��zY5��X���Q;��:H�@�@oc��.�Y�A��z��,��8i��LֻCA:�,��V�~}�ǽ���ۙ�ó��0��$�K�2���\�-u�e�bjf:7M�/G�S�S�M�D-;`$��<�>.t&�GA���yt��f@����� �޽~}w���R>~2|���� â"f����6]]��q�oPX����5L�\00��[�yD �ս5,
���2�rKS�g�������À�߀����zE�0N)�l�8rtj;8�GQ
�vmb�Q�@Pu8�w;�~��DT�I�n\00�B�&��m��)K�`�\00�bq��W:X����p!
�Ng�G?z���B.v <Ds~��<yP΍7���G����Atc9(�ʁ�K�g,5�?Y�\z�{t��z̒]�L��
�3N�LJ���b ��6LΌ,�2=s���b{��Ջ��0�,��Ên��:�i̘ ���S��*�"`#.4�Q��M\00�� �@�����qn���I6�&�@P{���NW9Z�(I����T<<�>|(v�|�XoV�����s�O_}���x����P�Uc����5s�Y�غ�-�Rc�w���'`��"��Y�FfPG�r'��<���%"-ީ����À��
3R���~ *��+��S)ҁ��lO� =�}4���� ���!�{I>c1&�!�b�3�����ԣ�C�q��7��>�I�����^����[d�,� .Zd��85m/"�U�!�Jէ�N�S���ׂ��)��s�HXcX�}Y�.�� \00��T|�*gkQ� ��M���*�P[�wۢ*>~<}z�����p6YVJ��y�����n���;��A����T���[��6
Oøk:�!f�m�:b\00�0�Li}+�}�ZKj�.+YUx�Be�I��8:�
!J��{1ˆn ƌ\007K���G@x�8廃a��.,*��<�_�i+�_;��g���bl ��%\00�/��Z�ϼ��`��(��������%|�[pln��wš���݈���$� �Ҡ>j
T���`h�g ME��R�L��sՀIfl�-W��Tm� )Ɛ���<}x�����8W�sI�M?�{�w�/�0|����Ӟ��XP�{��Q��򿩻�@�+��`�y?�G�/4��Y�gi�M�~X�� �Q���H�� Y1G�����2��J*��=�9�}�le���\�x8y�u��P=��
�g>����
3��7js]0]��ݰ�q���x9u�sn����$��.��������7/�Ed[X�蔒VF�u@|G@��2�4�����)�-�Q��^|����:�)��Η��6��A0�i�}��(],2m��٥q�.�����ܝ�>|zz�Ǵ�b�!��n4�N�So���Hi��N-�ƀm��)��)�A�֭�f��0t���u�U�\�t�B�����L�j�(Z֣Q<�b���8Y��ռ,�~,4�<G�F`�װ���gE���Qm��c������d@�� ��3t�,���>�~�\�C�î��K��U1�"�c9��������?z��Y�5=D��B������}���W�*�`iR[O���7"@O�UEY�T��������z, ��W� Lۺ욆��B�q�P��y؝˪���j� Cߺ�z��(�U����TOQ,a�Ձ]������7�F�0��h.a�I����!Rᚂ%�{��YTQ���BJPW��\00�� �@c'�ƞس����23���~��Îag�yyגﵑ�Fz"���Ecy~�W^��WX�i�Z��{=z�\l�c:�C8��fN��N `!Y��������q��#��ʢ�v����E�,R���M[�A�`km�Ԧj�7�΢����c%�P�
�Aé�@aV�E\[��9� Kf��i���p:ve��̙c���뾬T��$,����sU���jxc���.HP\Wm��b�⺣6��%+�U��r�Jq��,V�$�2J�����(��>`����D�� +�8��
�K�� s�|�/ ,�UD��bU�F����9�o�\00������B�e�y�h�aI+=~ѹɾ�z�5�G���
�����)�\Q��O�������Ջ��������C�/�T�+\[�^��!j�f�T<s�g=fiU��䞚J
b塰`)eS��G:��ǧ�o?�ǚJ��hN�sY4�ss.J� �(�dً�f�/n_}�̲����M� ���}�LJ�>O�,�9\.�����TĔ����tU)E���@�)1�2��O
�1Y��:�
�¢U��>Z<i��K��C-m$�چ��<����!� K/;�.��C<8�(�p��䫣/$�n7G�8�l���d���jZ�g��F ������A:���6=�,�\��@)y�^�s},u~�W�S�Yd)��L�XP��w��n`��iO��.j\00�Ϗ���9H����M?}��㇧��i����p��eM��w/_�l���O~����W��&�����x;$T<}�w��"�j�}����㇏ߤ�ܹ����
�8���q�&.`�+(|( �a�FQ#��.2I�%-�x�
�2@�#��d4~^����
�l��
[�+e���t#�d>�aȪ��>��+��W�o7�ďu�}������^�2�Xysٲ�16�A�t,�����F|�f���(�ʕ���������u�~8.`�u�n`'��T����k���#�_V�� �3R�J�#�S�➎e����ȡ
��\00\Di�g�����n$���b���������>M�Y§$_��N�k��B-Y�A�����*)�C�ت�Xv�S@f�^�a���`�^0�TP�F�]kʭ! D\00c�_� �K X\��a��y\6B���Wu��O��{V�3�٪�Nlu"^���vopx�X�iq�`���˾g2���nbX� أz�7Aq�̺3j�N�E?>���8YB05%`|}��\00��#*�n_�� �K���#/�IRfO
�J��%eY�Q~l�Ţ�!���(]���������݋d��7U
�Ŵ9WI��+j����[dq�6N�뛾>��]`b���ۛO��K�4��
E"j>��>U�L�=aR�j���|>�}�M��,O��u5|i>O��a�7l������4n������%�J�m4���w���"�ˡQJTy�#)A���W�+/m�e���1x�/a�Ky�Q�{�O��w4ϋ�����
��tf��a�Ha%��
Y�������a�`���u�v
T����
u,�su���]_E�� K���0�����E�-T�n�/o��u?H�CjL;G�-�`x&��� ��NgՑ���ԞU�"������wMWRMD��(� &jICf�a)M
\00&Z-5*�R|K]$�l*n��+v��#��s�+I�N�-�Y� ״�.|1���r�c���6 3
?�2C�4B�)تg�Q�M���y����gZ�c)�������=���vP�n���sȌ�xV�����U�|�P.#,tXXzV���@�뻂9����Ʒ=�393�°�Ad���f{�\����B��^��5��OR,�Ǹ=jz�b�bQ@X�|u�EJ��=����:7=U�F����n }�DZTg�� +ߴtaLF����q����d��o�A0 ;sϕ`N;��t��h�"Ԯ���8&c���җe�@��p=t��K2��s
�kJ����
�|)������
����R7?L�+f�b) �b�hq�OE�=�_n���QI �G�BوR� =`��㊞ &92�S$_�.��n4��8��Ì6����-6ܠ]����b�, �7lh@y�B�hO���\00v>Rkzw.�UU>e]AMD��tB}c)I獯M'pp��!Z:+���j� �+rl�r�aoL��[:V���cw%��������L.��G��$��B8y���L�4�~�b�\d(q.���F�8���a�+����&�&�T�~��2�P��ʲ(X /������B�
�7Yh2�7\<��m��O�+Cmu��!��X}K�I OW�Uh���(L�i��t�U�g�W�b�/�:�u]��ڦ?ס���l�ѷThԎ��O<1���t*�CQ���bB���|����W��! %�������?��T����T��J�=]�h�d�j{!i6�;�LB��a5�_ z;�\�WCNR5ކI_��Of���R����wNj5�R�Gи�w�~�? �τq���W�l�Q����7�5'3hԕ�̥��T�+���x�a��>�*[O����\�k�R�BZ�z޴6z�>�X�ĘsC@)��E7���L�;[/MUp�
ˮ�����N�C����?=>�><��R�ٴ����r��>u�tJ�M$n!S�{��#�Ls5Q����\00���3�����K��;�e�:R�l,��<2��~d��˥�ɕl�\Lo���rx����O��уe��&]nC��L϶�zm�j��^�Z�ኻ��$�^Ir5*P�`��O[(��N�Z;^k8�j��7�O�e�Hbz�]m�N
���v�C���)�q��TB1�=����c��\�|k f�զ�ۭ�tQ�\00
VeC�*�:��&<��wG6xc�L ��@*%
4i:�Ɖ �pl23��uBg������ 0��]��@ۣ�( ұ�,�=ĮA�@*��kd�8(a��Q�ꨩ����{P~����{��5�����љ�v�]����p~��%��3�띎��q�(_�X�e#f*��ʒ��Q��=�u���Iev�7��A �Ը����Y�p �Ĩ�+cM,�DzE�7:Ȗm�����rZ(_��i6����LY5 ��zuwH)�+��L�����!�`A#(���U~�B���5b�>��sث �g�^VdE8�� �.d�>6��\00�+6'-��pf�}=H�gt3�z/]ҿ�1���=*4Lt� �縹���t�/a~ƿ�~�(�~�sU�`��@`�A���4
c@3t��e0]�QŠ�C)��ˌ�-��;�!�����~R�Iװ i\00�c4St�)&eq)e�����:���ª�(�ϧ���4��y�8{ք�# ���S�'��A�W6��k� g��h�CG�?a: �s�Hf�G��g��E�Y�>���5�%��4�~���e{��O!rk=�K��`�o��X# ��L,E��׶cz�=�A���Bj����!��b� ��K_0E�%��p� �:Ɉ��a�P�%0
X)�Z�mt�A������e��U��`��������^��n�p��Vi�4<��kT��@MC���2��NN\�^d �����3:M���jaX��޲��L�o�[����&�� ���,ؼv �s��K+W� ���5�U<�@��޵�k4�O�9���9aV�N'^���8�C�'9�7��P7�ܵrҜ-xo�t6J� 4م��|=�E]����&I�,]` ����J����d\00e3���i��aw>�T��H����Ә�{U���6�1� �0]�)���\00ś& ���0椳%�R��0�������*a=\00������
ŗ�-�c�؋Y�H�q�P����\H?�}v�k�@Zª
E%cz�&
�!�C����׬�$�77�"�����S2������8�����6 H�lo�O�t�X� �n�g��3]��N����'ʑ�x�/"B�A �s��"��SR�:U)�.1'��FHxx[�L�I�"7��ǪaT �
b�X�$=��Fq^��S`,�{�m�`h�q$�^<B-�%��S ���>#��H3KB
4,�'�E�E�.s
,��0�p�j\00�S�������� qd�Ҷ���A��T�i�É���C�]���z��N�WT�a�3�����ڳ�ϝ�} ��iْ̋s�/町d�8�������&y�gL�W�QsU����)��s�HL��E@Ԏ}�i-��%�̨J���8*}�����V5�LY�����q��A@��(��@U�R�����q����+�Sj{:U]D��������H涚-�U�#��P���\�6
kTR��Mݤy��a�W5%���Dz��/��!3��$B@�\![�dif��2��.�Y6�Q�����`t?��y{o��e�l��`�RSb:Ae$$9燑j�c���z��+��s�̙m���Y���m�x8JG#���}9�����A�k�S
�;+N�?����J�T�C�A��2��M�y��� M!�+޾�gIF<C\00y���/>ų6�1"��NEa �S&�g!.���cw."(�-!�����˶��
Ȗ��<�,ě��c2ȩ��w߶��K���8��\00����\00�Y;��{�����qEh��
Y��x�<!|X�(�!�Xzر�񢙷�=WW k5G�
lt}��X?��4��1������*P��V_��%��cC�$=�ׇW��S� gøKyw�����k��3�D��p3M��mmM��M��l׍���#��<wɠ����i��r:�7��Ѵ�٩���rA�#m����0�X�`r0�`+@���̽����%[@�/3��� G8����ٵ}h ���$�Qt���9�HE�-*�=�g:�|��M�9�����ʶ|��׮���
��k6X?[�%��܍���e�{���h?��-��|ko�[m;IBz��vZ�Qit�v�P� ��U�d�pa��j���������qW2aѸ^ȫ ���[�-�ӣ���n<I�c^��M� ��]�~�\00�iL��x�9���;�O�����K�@�2l
�\00*�"^�Bϛ:�W���� ��(M�$a�)gc���s\a�4X���! 焬���3}g����&���""��"�� @T Fi�s,�p�!�V0�����֠tn�<� /d]?L�0�{`���܎�� ^��G:�9��c{b5辇 �xf`-�l5������V���&�Lz@�� ��:�2O����*O���?���W��_�o'��L|c8�:4>Rn<.J]�eR ����V.�"|�?%������g��%����u<=`]�ujš�Ԇ��
����K@�U@a+�u�6&����Qg��]y6�1l`��g'~t���!E���R�E�
�nN%�cE�YF��BNE4"5��p�\00M�3���Z�-h�z\��ʘF��fՋ�> ���������C�ԳN��
;�9zp� ��
'\F֖�2�+ي��c��iT&:���6IJ�C��h���d5�N���������>bQ�э|ZLྙ��=��f�=�D�ڤ7�*���ݬ� E������<��nB�����xNӸ�LB%e4@�x��,‰���:pQ�-�/�t_��҃j�4�@A
�iK�� �54�p/�Gu�jt�a�&�N���l����+�-��. ���ְxz=��,�M�*j��Z�3�g'L&��/փ��_�PǞ}B$����6����%o9V���dkD�`�3qA���7ɐD�&�
q���a2�Ι�,��?{��_��o�����Sݨ�����S-����)�J��.� �Ag'�W��3OÉ��(��a�)(ޱ}6≦]k����)G����W_{:Yf>�&bgĕЧ����w�����uB�H4�ÅX� �ؔŒ0Tš��#��6e:y1J)�`��o���`eij5�Ұ�kX�
�h׉}݊�.)�j�CFN����a8@x.������u�K��Ate��U�xo;��֪ ��1\����y���pU���6§�7��87-� !Ck�I����+*1=�����b� ��l�@��K�7�� �� �8k6���IB���Z#�e�j�g�<�P �\;Q�\����/>��W<�n���P�Pa�tp15.��i� s�U��"���:|�ۊ"�N`C�ۦ�K��Ʉ���v�eL���
9��9�Ou]:`��-�
��T�QZt&��/������s�(���<�i��������qmX\00�[�a�^=ѶfzS�.�('Q3�U���0W�|��27��'Q
���1W^!%�Tx�X$�� q~`��3���R3JH�f(���;�u�����iyW��}�5���G�I��+��e�#�7|�`�\O
�Omu7�"ѷ9��x��M�/X���J-����]��P/[�$�8��
�ާ��
L����(�t�XD�� ̞$�`�������
����}j���{E?�l*���Dc�&"�Ȕ:���h�sY+ʨ]�DL.�ܻ�����6X'�����19�gl�}-�� �Ǐ���n@���~HN�}C7'�\'���_c�?.� ��ۨðMo��R��"z�΂��}Ǒ�L?��T�F��4�zB$Y#�r�Q8\:�b/I�c)$�5`�!��F�X��6��ba�X�`·��>�N�#U9]�4ܢ$ϲ4f�W@P�&Nz��t��Nn��`5���5,תu}��-�-&�B�YD��>��*� ��{���]���@�����$ˠ�D��F"@��>�kd@�h-� ���f}薲��T�<�Si5�<�(�"ρT���^h,�)T�8`*��R_k Q�|�|�/��s���"v�a�.�I]�I�/�����K��
���Ql��D,S=���Cؚk�\�y[b���-"E�.#joE�����i��`�px��|���I�M5eg 5bp�8���B���_ԐՕ��!f߼22p(���e� �2��!K�H��m]5Ց>i�-�[�kI
���H�^U�3��-�7u` ����m�����%Fi���C��$���apY��FF�~:���j�$<3�f�.H�@3�nNYx;�Q�����r�z�������qs,w-�g��/�����5-��������������S]|8f��w*�fЍHk5>=l�I�P���)�x��4_�iꓝWV�b�%�l�e��:#�*z���6��]�8N��`�X�0�A��X�)9�u�4Ѩ�1ۦ����]m]��{�`� ʈ����*g��]��87��xe `���鄰N�Y�LK�����6^���6϶�Q�P�:UMQU<k\00&��j�ʊH ����a�����Q�)5I\sI޵V|���~���j��xf���eܽ�d���6�����T����ٗ?�����16�����1�>���_���6��빎���$�����"���b��� L4��m8�Y�>Hӧ������-TyTv�n��:/��>�v����#6�Q�]�)*�������C7�x<�7'q�0�N �l��E�S !䰗�₾�"�
��؈��M��/��8�Z��Ӆ�ۚ>��t:pky#8 Ң�e�z_��lJ������/|:��c�T����σ�0�ϔ��U�?�=��:2��hB^��M-��K ,�\00R`~�0l��o�7�V͘e�)��#=e\��Sn�H�����9}�?��yI�&n� .!~~N<|K0�
@=���E��b����F��x7]5C�b�$�C���=��8�:Q�6���6w����R\q�Hց����Gg��`DJL7�T��pO���e�9�~���a��nN=�~�K���,.�����"���8ZU}@{H���
E#]C����ܪlvǂ��bǎ!!�e�\�����O��v���sӊ�*lj� ��m'ш}˭ �K�q�3N�!����f�>p���Mlj����@�J�o�������lq.���uN���ya�d���^Ē'��"q7���N�<V. τu0��Q��Αt}5Ş����jM燲\�;*�,e�(ЙI���Ӊ��B�B�2m��T:�I�j����A� XCA����Gm��-�@F�PH�g�rYAW�J���|>�v��Z�TH�E���G\00����r橑pe�-اZ�us�}-���whY��^b`ky�4*2��g!��l�&�bQ1J:��B���;���b���, ŋ3�W���E����[�y*�t�|?J�}!�6��ϟ�q�{�K������)�1m��.�H��29��(ȩI���9�Ϧ Y����7��xFy���᫪$���"[-�^o��'Uyn��>��N'�����iN'�#e��+�|Aư][@_��U�FRu��~���Xշ%��@��:�e���B+)!���D�L�7��������n#��dԢ
����C
c�e�L���*3ʫ�j5w��ey�9�"�{t?���%�g @(�����ʒ�q� �2��c��!:��0si@�-��M�����zI�����c�í'j��G� 5 r�D�����|�1F
��Z�Զ�Q��� ��C�����=>[mTh(RХ���U�O�f��Ø�|��#��l�b.Xs�e��iu>P��<Ҁ�Oa���\�EY-�������sE��$��E0J(������=<�K�3\00�5�r0�j�v�[�Q% Y"K�Wv�A�A�d�i\(�i���嵀�2�i7I8�r� ��\��77�A�=������^\00sCJ���E7�ॱG���î8���Zc�g��l��|�����nJ�~�(�"�I���8a��8˂ �R������g����&�����>�?��6�[���B.�����(�)�T�-� �2%���$��j[�5��sE�Q��wv��q�j�Z$��)���-U]�8�����Tu�9�`�t<��廪�x��SUU�ނ� �N��1��!_��{LA�c�Cu��T[��%��z6lf�x��}mm4��җ��^�[�p�93n���}�>P1I�g��1K&�� A���M�w���jB{dk.��a�{�,�
�tq,�'r��g��7����i2����="ڮ��0���ȵ�'M��CmxyÆ=��8��I�c�׏x�\8�9>����տ����y��>��/���,U�'x�q�3ƞ��̀�]@��GG@���B4�X�B���(�«�W4��==�{�����@�
���G��r
>+TT��[��Js���U����g�G�^�E�4��70ꄒ�M̬�e.7�5�7h7��+�P��� ηփ �TQq�%�X��g&Ȳ|��a%j��Hν#<ȺG� 0T��Pxߧñ�FI���-��|>�J+Naw��Z���eN�!�����5��ӞM���$K���,(���\00���_|��� ��Hu������w����w������ǧ�߾�IU@E=L��)Jb9�KsV6D��ao����Q ��2*��
^�|�Y*ז��÷�!�a�����j)��MUO璊5HY6l<Ё��CU9$)�F�Ȋ<yq��p6��M�
6�N $Lw�@+f���e�O�ix<����n���ɩ��C%�p"���+��Ax�z6�5t����jp�y2�8~>��Y L���/�U:��݄0F]��}��̂`��_cPG��d3�Qi6y� ~L�Bu�.��6d7[m<�K^`߾ټ�l�t%�v��Y�,��׿��T�Q3��~�������w[T��3��r^h�F��uBȚYZh��������"t`�&^�P��6��R����y.��i��Ouݝ���iG������p8�Bl��C�+x�ns yܾO"�ؔt|����cG�֬l�F�d�T�׌}�J/����,Ipx��~b��z���)�ޙm��XB��{�'�cu%�����-S\00
ħ�G��k�jd��O۳}i^=�����3w��
h�H��/f�$@�rM�V�e�/�|���mU�Ї(�\00���\T����t$�a���?�ş�y��
��1�B��o��$�qZ�i~8,'d�/#os:�?�
A鯪Νv����ç���soj�ۮ?�ӹpX��!������[�(S`̰nWy�P�*���$�v�;���'� @���8���\00su���lM< �B��R�u7.<
�2�:n�s�|�`�\M�8�c�/֬������G,y;��bb�v����G�����SC=��}l�v�)���4cj�k�;DA���8IaD�p<������?{}{�7͙�NNe������g�}���_��Gw��?��޾������> U����H�(���'08�2|�na&���z����n�bO@G��(~�Q�)Ϣn(PQ-E���
�x>����ǫgm ��A(�-���e�r6�fXZ�^��ed����1��
嚗��m�U���SG�/`f��A�vM��f�D�������4N��׹��_���Ap���&U3��A�k$[_�.�V=Nftaԃn���u�
L�Ż��W/ʶ����M���yD
���Q��������?~��' ��O=+�P^�0�#���a��
0d�Zզ1P�ς�5��m@�
���Ә���`��ӑ���x���-֦o���3I�v2�x-�ɾ���/�;|�E@�f�[�4����٨�hm�=R�����k�Q܏�J�>��y\l�Hu���*Os8�Q�Tʘd厰r�08ŀ� �iN���G'{\1^�VSG6^Z_�U��� �� 0��i^����Ygݥ�i[j�G��Q��Eš�].����O����> �6
�2u�DX���QZa�dld�@�A�z���O������ŏ�����l��P@p�#�r� # #1̙������2�%/��,�T��,~�خq*��:� �f&8]U��kp؏Y���J����� Cݖ8�\l�ގ�Ã�|�2 W�C�G�(�N �SYᇏlbd���qZ몪��\�-�VI�!ʃa�jM�i}%b5�F�|��&��\00q��쀁���j&���Đh}y6v
J�� >������ ~Ws�{b�� C��j�\/��PF�C�<O~��?�'���?���7۔���\00���6��UB$@����B ��|:߽�������Y���r�rH� �U��� ��`�v �����m6���## pLf+�E�ݮ�$ʒ �#x�12��������I$8O�"��8�}%n9�m�Bp�'�;��X�o�2�QHz�^WEn�Q�xq��h�vg�~;�7��"��
�>`�7'�}_s�K]�%H�WʟW��-3��2����՝`�Ɔ.k�,y:��0� �N�$�WW�������(|����׷?����-�p���6_�c��t�����n{s��>����ݮ�O)dQU��ȭ��y!�`p"�@V���>>���-�t>~�'zc�b}�� �D���QV(�TXj@<�<���B���V��
?i�Uj�Lh'{���n��e3$h��;���*�hHy�0r�0�� ���
��Le�l�X���P�.
~p����3Hu-z@G,Mb�~����R� ��R�K�ՂB�
�g��0���)��F�z��o �Ϫ�x5�r���ҋ�{���Q��2K��1%�0~z����ӯ�5:M3vL��U�%�͚=K777/�n�!��Yk`I�Ƈ�3���*�7/�/��S4��lB�j �"��r���"�dx>�`d�zF,��L)&��?i��pbv��ZQ_YV��qSED�E�1J"F��5��|�/٣��t��@�$Yβ��V���? ��>q%��[:j�ne�z
IaPq�l�(��� �I�
����]�}����r0���a����NY�&�3���I��Z��[Fa�aWU`.���l��9��m���[�U-a �1��
�v��+fu��5�l�}8����Q#H���5�+���7��_P����E� ��n��F%�t�P���9i��"�i��$��� mU�����bT���M�@$H�is{sw{Oj��$�:��C��7Qhj�6�_��v.�;�WB�C�\00%!0jxJ�������x:au����sv���Y�縯|���Ao��L�>P����0�� �u�������E��`���]�/[Q9�
���C��3�{� 9;ƙ���Cy��3ڀ `W\ѝ�{��Q8�ϊI�(m9{8�V�����
Hk���L/���>ȧ]���u���Lf��q�1 ��M��v{��q+�/-��39VP �+ޠ�闫����?�o����~��R,�Ҹ��>++̶� ��
�
�t;�:4��4}��������?V�S�@v��J�Z�E\00��_ݿz��`�M��bM��ұ�Auo�\00Q�9�<[,��n��ة!-5^-�4��(cQ�VU�����-�}�����j��r �?!��I
| ���8� �"[d���6m�D�1[��*N�V���hJ�HU*��-���J�D�`\-�8]\00�*31S�+�!��v��̬���s�����Q� ���
ՆJ�*w�fk��M�(ͬWa �����^�,=��G�4�c%���mUTEQ�,��Sᘉ����?���W��*�޵/�wwϙ̌3��D$/ B2N�AB@" %@X؉dB8 B(o�'�?�/�����o����g<���}�����U������3���]�j]� ��i�~�lC�C���җ~盿��/|����,�v{&9��8��P�IxN�$�A!��0 &�:g��(��1N;<N���LM|��2S�g)'{
#�j�Z«���f�?g�ͱ"�4�t� �n�v�v�c�EU����xF4��z >�������;�C�z;�r(�b�E![�]�dރ�K/����#��
������[� t�7�u�29�ə��t��0��!W�#���� w?͆ �^�੒�SP*5L��ͬ���aȢ$_�n��{�:~l~�V�b�9��26zˏ���Yҏ��\00;������C`�[�
򉔜�l0���u?��+o�O�����/�|]��a/wS���(��1�P�^Pr(N��*�� �v��,T4,#��G�k2�D�p���֫��G��>y
�� W���Zz�A&HZ���V�җ�sB;�i%�e A�*L�`멾z$eG���J��|���*��0��6�U���![�D�@ӳa��M2����́�]����A�o�X0y�D'01'"���LL>�i��ƍ�����T�+1Qg���%I�t��p�p1�˓ҥ�: T15F�O��m ���Ӣ�.Z|��J��mu@ �y ��
B嵤�qc���-9�F$#�iX.����_��߼��/q�����ʖң wP�R���D�I��:k
�)73
b�H+>E�����m袕�g�~����U����"���ISPA����<ͨ0�
��l5����0��?��<�V���%Y������r�O~�w���WWW�%p^�L�4���K��op0p��
n粉9��[�;~JwV,���"״�(8���#S�%�HF��TAg���!
��FO���=w耩�S�R�n�}�//�?f������q��'
b��R����E!���q�0?>���Ue�7������*k��ިȝ1Q1\͂B^A�\*m&��$�����!��4��^�� ����|�V���ђ���2&Ap��Tò!K)Ǡ�2��
́|ܪ$�jlu+qK���I�"�`��J�#f@��
N�]߁k���d�\00+�bQ݇{��-�߸�,
$7PP�ű%Ou���R����Q�F�R:=ˣ�u�w�v>�A{)��<�r�tTN J8�5��n�"�ͩH�e�q:��Q��}Z��� �筞*�M�(��h�5X����R�z�6�t&cq�v�ͯ|�����׿�k���n3��h�b���8i��CL'�h�6f1 �`?�)�|Y]6�ӌ?
��I1T �8��� � F*�b���Ւ��LZb�M(�H#~�X/_y��d]� 4�d ��j�R�7�6���� $9���ie����b���xqs{sw�46��ެ�C��U�t0q�%���JE�͈����Th��{P�b+�=�Az���VCFb�X�-l�s��P #��l4�C�U�,��5]�\c�E(*4
���Hh�FXy�.�-�Fх��L�S�|��S�Q�C^�H
�e;{z���d����?}���~������V�O��hF€��d,S���W��ڝ�Z�6��{GJ��]J=G8*�>|ԤU�C������B�P�M�`�
�i���3Np�j�F��'����].�T#�c>�i �l�K��f\00�EȀ6�Ӈw��w�P厳d�(u0�ic��!�TX�"95|J� _П�S����Z� Kl��]�#�;�@�njٖ@֗�@�X'+�T�y����E�u� 0^Z>gތX�VJ0�֦q���˶/���'�3�R��J������D)�Xi�kھ;}����G��?�����;T�{��,'���+ڄ+�����ԩ��-�����)���q�b6�|�
��T)���.�l%9�*��͢�E ���q2�ڧ��\00�{�m�U�����!;)�Ǐ��;�?-(&#��<�'J���v����t{���%;y�|���n�;93EU\00��
\!�\00j���)E�N�*��Gͦ&���e 6��V�Ī`� 8QZ[#@A݆"�8�!?B�d�t�`('��7|N���9jy!��|$t��\00�^����̞��J鮚�84U�5eU���KL��P۶�\SJq�����7��ÿ���>���n+�+��^��dr( ��,�@6ʏ\00q쁄T�ʒ��ʵb� �B�E�8��+i� #$!�! R>3 U
,)��"O�*�!����]L�`y%�b��W��M��Z-���ǡk��;�Rv��<���"j��YJ��͆�st�v�n�?|p�����a�״+��{��C͕9�9�걳�
=������3 w�l'0���O�禦�cuD����x�7��\00ӕ��I�� ���i�R���'“3%h��S&������#�.�)��<��#���K��b�lӶ\00��ë�w�����ί~�
�a����HAF$`��)a����bQ �@���"������D�,��&P�u����ʁ�N\00�����Zհ~�x-N�x�ݓA��8[(�ff��7���h���–u�^]�R�'��Q��>6%e L2���(DR��:�JLe��������~�ls���}_�`'���dԡ���,dz5�H��&�;����!&Q���&1���fl��%J��Me�R
Y��j&̒����yjXl*iLN�<�� ��2h_i�EE\00f����0��f�.y-ˢ���QIt�{�tv�j�S��_~���w����L�nn� �+�9�D�X6�v��Qy�~ l�"�V�a��%=�Xlq�#2������T�$B�)?G�/Oء��P��\�H"���M�[�6��`̅l3Ua�|<���e�E�
�Z��1kh9u�GR� �'���$��uc�Pd��#��6����aw8<��~vw�|�ۙp�`ÅѠ%h��ɩ�줆�:���f��n�7�T���|"8DB�\�
��K<9�#�\�$�z��(g����λ����?9| �}��V!�H��Yٌ�I Pd�Ta���5�VD�"Y��_��O��^y��n�F?(/����,U�F�"�;69 j8M���� � a�<
n��γ8{r!��x�8db��y�5z�����R�/�19����(X=��դ�֠�$D��9JE�FHX�
������.�e�2p��e@����[�A�v��e6,v\00���� a�����8y�c��n�ׇ�����a'����|~{w�+&En^���P�{0�"dԟ��j|D=87�Ͷ�ru��h�:\00�ZXz�ѲeG��l�zʐv�x��ppN6S���I�z�@�YF�Rي����̛x�[���Z��MϞ3�*g��3�W~}�+���?��>�nn!��G�q�����R��l���1ĂH�����F� M����3:��-�\00i�f4]�\
^d*����^@���X��%/�D�G�5���U6?&�� S�*��3�l���g/��y�՟;���G��T�4m��3?�3f�N�#�,�?N�A�<�c�)Բid�e ]TE!�Q��@���S#�v��]��뫫+�Ț�\����-�f�u�]Տx����
]��D�X��~'v#S�#ym/��X�0V�k����g ��q42���`�{>m4M;��������`W
$m�%���۟�V����z�<vl���U!i��i���N> <��D|oKflY�°yg'�z��6h��椴kTi �X�ƮDt����/ �4�$@�S*:�F��Bsu��i�X�~��2��S����6��G/_6�ϯ~j��������(E�N�.�~$je8�R�"�匞�z
eq:1t�+ց�&�^֯\�r�d�fS���כ�Ä�$�����H9�
ҏF�N^Q>U�� ��ҝ !M� '2�g (�z=�c�d&�#T��� -�3��eǔ4��c�����mΞ ɾ�E�2Y
RWfj�����^Y�������x��͒�a�1ϓj$�q$BclB�[S���>j?�`��M�C�6-����B|� F������Xmi�-o������`���nXhMQ�$@���%´��#�J�! + ��^����V����ZO�����õD8�={�b�ݣ?MUݎ��l¹�������
�̯,� Wk3�v�dRh�� G���и��n�8��Y6z�Vth�\00��J�ǔ`��"t� >%/�%���wJ��Y��D�Z0�E���U 2�
ss�"5�"&�x�'�S��ya)\�=���тI�#E-heIJ���LpNjV�M8��5l9�`[Ȱ�Z$ѭC:�b 05���!�*[a���/z�Xe�H�?~;>�'2�s*�QL���!8���O1�����d,R(����\00b�
��V� �x�~��������Bv���ht?=������C�A��4�����z�0�Z.a6�h*��%���~ct,X1��
��d�Xv�<.
��D�K�CA��D�G�h�j����(@4̈O��ң�mԌ�{R�<<����K�(�;�kU�Y����CW�7 ���
��,�\R��]���ZK�,l�[��V��
ՈQWC��'=1��l�>�A��;N�=���S�E^$���C$#��B%*��Ѥ�&�'����7͵�UV��P�����_�f� w 4l�
��؛�²m�[ Ǜ�|��W�^]����owR$R\00�, �LM
l1�b�l�:���������@L���4<�����-�D:P^�LA/�'���ҥ� +���+c�&����<ٛ�cn�w��@���t(1��Y���P\00�(aU�k ����M�Rx��N��?�YB�܊��9y
�eb�� ��L 2�yY�� ��\d��d7�����@=B���t� w"4�2�?��H<P�<'�w�sd
s�B�'zSׅØ�h�Iu~�Y�#��W%�Y�A
\00�H5(�w ��%Fȿ�4���ۭ��U�\,ZY��}(N���nw�Q�Z/O�q���P!-{�[Ot6�h(�::`FZ��)S�-<�A���[����B��F��Qz�V�3�S�$3E*��B�e jm�Gs�d�����<�"�yt��'����툾����b�(t�T?�h�$� �E.�[��â.�)�Ӻ�g�{LG��lLm�S���@��B�fO,�B{`��g�)=8�r8�8� �d/���CQm��O���.X-�m0�� �
$��i�H�b�G U�&% �c��a�%'\ǒg;@S�,�륬�������������w�;9���V���D��@�i3$s�7���C��oaC�&I�I_As�(�L������=wR��
G�����F�/��2%?��@�,�d��&Z3a���ob����8K��|��#��}D�����h&�Z�WK�QmK,��|��\8�e������� y���^�Z�W��<�ۗe�/MC]�5b!V8��2>��N�%�{\00�V�B��pԩ��X��C���D
Ъ�����ـ��l|�CQ.�9��f4!"X���J2��L��r�8/�U���Lu���R2�����/����}��\J��YlY��0���١�\00wTR�X �����O=�4 I��Cj���X� �$��3�*�'q1�D��)¼�����P�<Z+D��O��8�QM�{"g� �(���J��,C#��^�9��'M5�.�������͵��C/9,�<S2�� `�i(�qb�ai�����ܨ�QJ)�툀�,R��[������)������4 e�#�:c�T���a��9�M#J��?�&M��U�4�'
C�\00�fv�B��޹���ϲ��A�,�5�{�=� ��'OV+܏��q�Z�U=���̫��96�f9g�8��a�h^YE�s���I�$�<����Y����l�BOU)�W��dڨJ�
��̙�8U��f�\�@�<��ˮ�l)�T�ȶj����Lo���BdHvTŶ��@C�O=�����'05�i�9����,�Z-�1P�Nn^m��t��X����
Zfm ��
M`mD3��\00�`��S7��{�`���l0�b��`c/�`��V�=����� �@�;�C�ߟʺ���
��qX=Л0M[��'^=��n���߫��s��,�������ß>~�HJ]y���������_���'�h��Z��1��X�E�<F�a�'��ʪ(�#�)�l�
��ڨ�µԇ�Ej���\00%
#��k��u=�8b���J;5�GP�q�ڠPvri��k@`�}��@��g��f��aAäV�S��\00\00}���Ѿ�\00\00\00\00IEND�B`�
WARC/1.0
WARC-Type: request
WARC-Target-URI: http://www.cs.odu.edu/~mkelly/mofro.png
WARC-Date: 2016-08-15T21:19:51Z
WARC-Concurrent-To: <urn:uuid:e085f761-e971-4927-8ccb-9d521c7f9b5f>
WARC-Record-ID: <urn:uuid:337f3ca8-fbee-4793-a696-05eaf4aa1284>
Content-Type: application/http; msgtype=request
Content-Length: 290
GET /~mkelly/mofro.png HTTP/1.0
Connection: Close
Referer: http://www.cs.odu.edu/~mkelly/
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Host: www.cs.odu.edu
User-Agent: Mozilla/5.0 (compatible; heritrix/3.3.0-SNAPSHOT-20160708-0038 +http://yourdomain.com)
WARC/1.0
WARC-Type: metadata
WARC-Target-URI: http://www.cs.odu.edu/~mkelly/mofro.png
WARC-Date: 2016-08-15T21:19:51Z
WARC-Concurrent-To: <urn:uuid:e085f761-e971-4927-8ccb-9d521c7f9b5f>
WARC-Record-ID: <urn:uuid:7d03e22e-2758-4efd-a9c3-1b8e6b0e4b95>
Content-Type: application/warc-fields
Content-Length: 174
via: http://www.cs.odu.edu/~mkelly/
hopsFromSeed: RE
fetchTimeMs: 242
charsetForLinkExtraction: ISO-8859-1
outlink: http://www.cs.odu.edu/favicon.ico I =INFERRED_MISC
alive ResourceManager
[TMZShowTimes] enableAutoLoad::false
A Parser-blocking, cross-origin script, http://aax.amazon-adsystem.com/e/dtb/bid?src=3064&u=http%3A%2F%2Fwww.tmz.com%2F&cb=6384545, is invoked via document.write. This may be blocked by the browser if the device has poor network connectivity.
kWidget: Kaltura HTML5 Version: 2.40
Uncaught Error: Mismatched anonymous define() module: function (){var e,t,n;return function r(e,t,n){function i(o,u){if(!t[o]){if(!e[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(s)return s(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=t[o]={exports:{}};e[o][0].call(f.exports,function(t){var n=e[o][1][t];return i(n?n:t)},f,f.exports,r,e,t,n)}return t[o].exports}var s=typeof require=="function"&&require;for(var o=0;o<n.length;o++)i(n[o]);return i}({1:[function(e,t,n){function r(){this._events=this._events||{},this._maxListeners=this._maxListeners||undefined}function i(e){return typeof e=="function"}function s(e){return typeof e=="number"}function o(e){return typeof e=="object"&&e!==null}function u(e){return e===void 0}t.exports=r,r.EventEmitter=r,r.prototype._events=undefined,r.prototype._maxListeners=undefined,r.defaultMaxListeners=10,r.prototype.setMaxListeners=function(e){if(!s(e)||e<0||isNaN(e))throw TypeError("n must be a positive number");return this._maxListeners=e,this},r.prototype.emit=function(e){var t,n,r,s,a,f;this._events||(this._events={});if(e==="error")if(!this._events.error||o(this._events.error)&&!this._events.error.length)throw t=arguments[1],t instanceof Error?t:TypeError('Uncaught, unspecified "error" event.');n=this._events[e];if(u(n))return!1;if(i(n))switch(arguments.length){case 1:n.call(this);break;case 2:n.call(this,arguments[1]);break;case 3:n.call(this,arguments[1],arguments[2]);break;default:r=arguments.length,s=new Array(r-1);for(a=1;a<r;a++)s[a-1]=arguments[a];n.apply(this,s)}else if(o(n)){r=arguments.length,s=new Array(r-1);for(a=1;a<r;a++)s[a-1]=arguments[a];f=n.slice(),r=f.length;for(a=0;a<r;a++)f[a].apply(this,s)}return!0},r.prototype.addListener=function(e,t){var n;if(!i(t))throw TypeError("listener must be a function");this._events||(this._events={}),this._events.newListener&&this.emit("newListener",e,i(t.listener)?t.listener:t),this._events[e]?o(this._events[e])?this._events[e].push(t):this._events[e]=[this._events[e],t]:this._events[e]=t;if(o(this._events[e])&&!this._events[e].warned){var n;u(this._maxListeners)?n=r.defaultMaxListeners:n=this._maxListeners,n&&n>0&&this._events[e].length>n&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),typeof console.trace=="function"&&console.trace())}return this},r.prototype.on=r.prototype.addListener,r.prototype.once=function(e,t){function r(){this.removeListener(e,r),n||(n=!0,t.apply(this,arguments))}if(!i(t))throw TypeError("listener must be a function");var n=!1;return r.listener=t,this.on(e,r),this},r.prototype.removeListener=function(e,t){var n,r,s,u;if(!i(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;n=this._events[e],s=n.length,r=-1;if(n===t||i(n.listener)&&n.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(o(n)){for(u=s;u-->0;)if(n[u]===t||n[u].listener&&n[u].listener===t){r=u;break}if(r<0)return this;n.length===1?(n.length=0,delete this._events[e]):n.splice(r,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},r.prototype.removeAllListeners=function(e){var t,n;if(!this._events)return this;if(!this._events.removeListener)return arguments.length===0?this._events={}:this._events[e]&&delete this._events[e],this;if(arguments.length===0){for(t in this._events){if(t==="removeListener")continue;this.removeAllListeners(t)}return this.removeAllListeners("removeListener"),this._events={},this}n=this._events[e];if(i(n))this.removeListener(e,n);else while(n.length)this.removeListener(e,n[n.length-1]);return delete this._events[e],this},r.prototype.listeners=function(e){var t;return!this._events||!this._events[e]?t=[]:i(this._events[e])?t=[this._events[e]]:t=this._events[e].slice(),t},r.listenerCount=function(e,t){var n;return!e._events||!e._events[t]?n=0:i(e._events[t])?n=1:n=e._events[t].length,n}},{}],2:[function(e,t,n){var r;r=function(){function e(){this.id=null,this.errorURLTemplates=[],this.impressionURLTemplates=[],this.creatives=[],this.extensions=[]}return e}(),t.exports=r},{}],3:[function(e,t,n){var r,i,s;i=e("./parser"),s=e("./util"),r=function(){function e(){}return e.cappingFreeLunch=0,e.cappingMinimumTimeInterval=0,e.options={withCredentials:!1,timeout:0},e.get=function(e,t,r){var s,o,u;o=+(new Date),s=n.extend=function(e,t){var n,r;for(n in t)r=t[n],e[n]=r;return e},r||(typeof t=="function"&&(r=t),u={}),u=s(this.options,t),this.totalCallsTimeout<o?(this.totalCalls=1,this.totalCallsTimeout=o+36e5):this.totalCalls++;if(this.cappingFreeLunch>=this.totalCalls){r(null,new Error("VAST call canceled – FreeLunch capping not reached yet "+this.totalCalls+"/"+this.cappingFreeLunch));return}if(o-this.lastSuccessfullAd<this.cappingMinimumTimeInterval){r(null,new Error("VAST call canceled – ("+this.cappingMinimumTimeInterval+")ms minimum interval reached"));return}return i.parse(e,u,function(e){return function(e,t){return r(e,t)}}(this))},function(){var t,n;n=s.storage,t=Object.defineProperty,["lastSuccessfullAd","totalCalls","totalCallsTimeout"].forEach(function(r){t(e,r,{get:function(){return n.getItem(r)},set:function(e){return n.setItem(r,e)},configurable:!1,enumerable:!0})}),e.totalCalls==null&&(e.totalCalls=0),e.totalCallsTimeout==null&&(e.totalCallsTimeout=0)}(),e}(),t.exports=r},{"./parser":11,"./util":17}],4:[function(e,t,n){var r;r=function(){function e(){this.id=null,this.width=0,this.height=0,this.type=null,this.staticResource=null,this.htmlResource=null,this.iframeResource=null,this.companionClickThroughURLTemplate=null,this.trackingEvents={}}return e}(),t.exports=r},{}],5:[function(e,t,n){var r,i,s,o,u={}.hasOwnProperty,a=function(e,t){function r(){this.constructor=e}for(var n in t)u.call(t,n)&&(e[n]=t[n]);return r.prototype=t.prototype,e.prototype=new r,e.__super__=t.prototype,e};r=function(){function e(){this.trackingEvents={}}return e}(),s=function(e){function t(){t.__super__.constructor.apply(this,arguments),this.type="linear",this.duration=0,this.skipDelay=null,this.mediaFiles=[],this.videoClickThroughURLTemplate=null,this.videoClickTrackingURLTemplates=[],this.videoCustomClickURLTemplates=[],this.adParameters=null}return a(t,e),t}(r),o=function(e){function t(){t.__super__.constructor.apply(this,arguments),this.type="nonlinear",this.variations=[],this.videoClickTrackingURLTemplates=[]}return a(t,e),t}(r),i=function(e){function t(){this.type="companion",this.variations=[],this.videoClickTrackingURLTemplates=[]}return a(t,e),t}(r),t.exports={VASTCreativeLinear:s,VASTCreativeNonLinear:o,VASTCreativeCompanion:i}},{}],6:[function(e,t,n){var r;r=function(){function e(){this.attributes={},this.children=[]}return e}(),t.exports=r},{}],7:[function(e,t,n){var r;r=function(){function e(){this.name=null,this.value=null,this.attributes={}}return e}(),t.exports=r},{}],8:[function(e,t,n){t.exports={client:e("./client"),tracker:e("./tracker"),parser:e("./parser"),util:e("./util")}},{"./client":3,"./parser":11,"./tracker":13,"./util":17}],9:[function(e,t,n){var r;r=function(){function e(){this.id=null,this.fileURL=null,this.deliveryType="progressive",this.mimeType=null,this.codec=null,this.bitrate=0,this.minBitrate=0,this.maxBitrate=0,this.width=0,this.height=0,this.apiFramework=null,this.scalable=null,this.maintainAspectRatio=null}return e}(),t.exports=r},{}],10:[function(e,t,n){var r;r=function(){function e(){this.id=null,this.width=0,this.height=0,this.minSuggestedDuration="00:00:00",this.apiFramework="static",this.type=null,this.staticResource=null,this.htmlResource=null,this.iframeResource=null,this.nonlinearClickThroughURLTemplate=null}return e}(),t.exports=r},{}],11:[function(e,t,n){var r,i,s,o,u,a,f,l,c,h,p,d,v,m,g=[].indexOf||function(e){for(var t=0,n=this.length;t<n;t++)if(t in this&&this[t]===e)return t;return-1};i=e("./urlhandler"),v=e("./response"),s=e("./ad"),o=e("./extension"),u=e("./extensionchild"),m=e("./util"),l=e("./creative").VASTCreativeLinear,f=e("./creative").VASTCreativeCompanion,c=e("./creative").VASTCreativeNonLinear,h=e("./mediafile"),a=e("./companionad"),p=e("./nonlinear"),r=e("events").EventEmitter,d=function(){function t(){}var e;return e=[],t.addURLTemplateFilter=function(t){typeof t=="function"&&e.push(t)},t.removeURLTemplateFilter=function(){return e.pop()},t.countURLTemplateFilters=function(){return e.length},t.clearUrlTemplateFilters=function(){return e=[]},t.parse=function(e,t,n){return n||(typeof t=="function"&&(n=t),t={}),this._parse(e,null,t,function(e,t){return n(t,e)})},t.vent=new r,t.track=function(e,t){return this.vent.emit("VAST-error",t),m.track(e,t)},t.on=function(e,t){return this.vent.on(e,t)},t.once=function(e,t){return this.vent.once(e,t)},t._parse=function(t,n,r,s){var o,u,a;s||(typeof r=="function"&&(s=r),r={});for(u=0,a=e.length;u<a;u++)o=e[u],t=o(t);return n==null&&(n=[]),n.push(t),i.get(t,r,function(e){return function(i,o){var u,a,f,l,c,h,p,d,m,y,b;if(i!=null)return s(i);c=new v;if((o!=null?o.documentElement:void 0)==null||o.documentElement.nodeName!=="VAST")return s(new Error("Invalid VAST XMLDocument"));y=o.documentElement.childNodes;for(h=0,d=y.length;h<d;h++)l=y[h],l.nodeName==="Error"&&c.errorURLTemplates.push(e.parseNodeText(l));b=o.documentElement.childNodes;for(p=0,m=b.length;p<m;p++)l=b[p],l.nodeName==="Ad"&&(u=e.parseAdElement(l),u!=null?c.ads.push(u):e.track(c.errorURLTemplates,{ERRORCODE:101}));a=function(t){var n,r,i,o;t==null&&(t=!1);if(!c)return;n=!0,o=c.ads;for(r=0,i=o.length;r<i;r++){u=o[r];if(u.nextWrapperURL!=null)return;u.creatives.length>0&&(n=!1)}return n&&(t||e.track(c.errorURLTemplates,{ERRORCODE:303})),c.ads.length===0&&(c=null),s(null,c)},f=c.ads.length;while(f--){u=c.ads[f];if(u.nextWrapperURL==null)continue;(function(i){var s,o,u;if(n.length>=10||(u=i.nextWrapperURL,g.call(n,u)>=0)){e.track(i.errorURLTemplates,{ERRORCODE:302}),c.ads.splice(c.ads.indexOf(i),1),a();return}return i.nextWrapperURL.indexOf("//")===0?(o=location.protocol,i.nextWrapperURL=""+o+i.nextWrapperURL):i.nextWrapperURL.indexOf("://")===-1&&(s=t.slice(0,t.lastIndexOf("/")),i.nextWrapperURL=""+s+"/"+i.
nextWrapperURL),e._parse(i.nextWrapperURL,n,r,function(t,n){var r,s,o,u,f,l,h,p,d,v,m,g,y,b,w,E,S,x;s=!1;if(t!=null)e.track(i.errorURLTemplates,{ERRORCODE:301}),c.ads.splice(c.ads.indexOf(i),1),s=!0;else if(n==null)e.track(i.errorURLTemplates,{ERRORCODE:303}),c.ads.splice(c.ads.indexOf(i),1),s=!0;else{c.errorURLTemplates=c.errorURLTemplates.concat(n.errorURLTemplates),u=c.ads.indexOf(i),c.ads.splice(u,1),w=n.ads;for(h=0,p=w.length;h<p;h++){f=w[h],f.errorURLTemplates=i.errorURLTemplates.concat(f.errorURLTemplates),f.impressionURLTemplates=i.impressionURLTemplates.concat(f.impressionURLTemplates);if(i.trackingEvents!=null){E=f.creatives;for(g=0,d=E.length;g<d;g++){r=E[g];if(r.type==="linear"||r.type==="nonlinear"){S=Object.keys(i.trackingEvents);for(y=0,v=S.length;y<v;y++)o=S[y],(l=r.trackingEvents)[o]||(l[o]=[]),r.trackingEvents[o]=r.trackingEvents[o].concat(i.trackingEvents[o])}}}if(i.videoClickTrackingURLTemplates!=null){x=f.creatives;for(b=0,m=x.length;b<m;b++){r=x[b];if(r.type==="linear"||r.type==="nonlinear")r.videoClickTrackingURLTemplates=r.videoClickTrackingURLTemplates.concat(i.videoClickTrackingURLTemplates)}}c.ads.splice(u,0,f)}}return delete i.nextWrapperURL,a(s)})})(u)}return a()}}(this))},t.childByName=function(e,t){var n,r,i,s;s=e.childNodes;for(r=0,i=s.length;r<i;r++){n=s[r];if(n.nodeName===t)return n}},t.childsByName=function(e,t){var n,r,i,s,o;r=[],o=e.childNodes;for(i=0,s=o.length;i<s;i++)n=o[i],n.nodeName===t&&r.push(n);return r},t.parseAdElement=function(e){var t,n,r,i,s;i=e.childNodes;for(n=0,r=i.length;n<r;n++){t=i[n];if((s=t.nodeName)!=="Wrapper"&&s!=="InLine")continue;t.setAttribute("id",e.getAttribute("id"));if(t.nodeName==="Wrapper")return this.parseWrapperElement(t);if(t.nodeName==="InLine")return this.parseInLineElement(t)}},t.parseWrapperElement=function(e){var t,n,r,i,s,o,u;t=this.parseInLineElement(e),i=this.childByName(e,"VASTAdTagURI"),i!=null?t.nextWrapperURL=this.parseNodeText(i):(i=this.childByName(e,"VASTAdTagURL"),i!=null&&(t.nextWrapperURL=this.parseNodeText(this.childByName(i,"URL")))),u=t.creatives;for(s=0,o=u.length;s<o;s++){n=u[s],r=null;if(n.type==="linear"||n.type==="nonlinear")r=n,r!=null&&(r.trackingEvents!=null&&(t.trackingEvents=r.trackingEvents),r.videoClickTrackingURLTemplates!=null&&(t.videoClickTrackingURLTemplates=r.videoClickTrackingURLTemplates))}if(t.nextWrapperURL!=null)return t},t.parseInLineElement=function(e){var t,n,r,i,o,u,a,f,l,c,h,p,d,v;t=new s,t.id=e.id,p=e.childNodes;for(u=0,l=p.length;u<l;u++){o=p[u];switch(o.nodeName){case"Error":t.errorURLTemplates.push(this.parseNodeText(o));break;case"Impression":t.impressionURLTemplates.push(this.parseNodeText(o));break;case"Creatives":d=this.childsByName(o,"Creative");for(a=0,c=d.length;a<c;a++){r=d[a],v=r.childNodes;for(f=0,h=v.length;f<h;f++){i=v[f];switch(i.nodeName){case"Linear":n=this.parseCreativeLinearElement(i),n&&t.creatives.push(n);break;case"NonLinearAds":n=this.parseNonLinear(i),n&&t.creatives.push(n);break;case"CompanionAds":n=this.parseCompanionAd(i),n&&t.creatives.push(n)}}}break;case"Extensions":this.parseExtension(t.extensions,this.childsByName(o,"Extension"))}}return t},t.parseExtension=function(e,t){var n,r,i,s,a,f,l,c,h,p,d,v,m,g,y,b,w,E;E=[];for(l=0,d=t.length;l<d;l++){a=t[l],r=new o;if(a.attributes){y=a.attributes;for(c=0,v=y.length;c<v;c++)f=y[c],r.attributes[f.nodeName]=f.nodeValue}b=a.childNodes;for(h=0,m=b.length;h<m;h++){n=b[h];if(n.nodeName!=="#text"){i=new u,i.name=n.nodeName,i.value=this.parseNodeText(n);if(n.attributes){w=n.attributes;for(p=0,g=w.length;p<g;p++)s=w[p],i.attributes[s.nodeName]=s.nodeValue}r.children.push(i)}}E.push(e.push(r))}return E},t.parseCreativeLinearElement=function(e){var t,n,r,i,s,o,u,a,f,c,p,d,v,m,g,y,b,w,E,S,x,T,N,C,k,L,A,O,M,_,D,P,H,B,j,F;r=new l,r.duration=this.parseDuration(this.parseNodeText(this.childByName(e,"Duration")));if(r.duration===-1&&e.parentNode.parentNode.parentNode.nodeName!=="Wrapper")return null;v=e.getAttribute("skipoffset"),v==null?r.skipDelay=null:v.charAt(v.length-1)==="%"?(p=parseInt(v,10),r.skipDelay=r.duration*(p/100)):r.skipDelay=this.parseDuration(v),b=this.childByName(e,"VideoClicks");if(b!=null){r.videoClickThroughURLTemplate=this.parseNodeText(this.childByName(b,"ClickThrough")),D=this.childsByName(b,"ClickTracking");for(E=0,N=D.length;E<N;E++)n=D[E],r.videoClickTrackingURLTemplates.push(this.parseNodeText(n));P=this.childsByName(b,"CustomClick");for(S=0,C=P.length;S<C;S++)i=P[S],r.videoCustomClickURLTemplates.push(this.parseNodeText(i))}t=this.childByName(e,"AdParameters"),t!=null&&(r.adParameters=this.parseNodeText(t)),H=this.childsByName(e,"TrackingEvents");for(x=0,k=H.length;x<k;x++){g=H[x],B=this.childsByName(g,"Tracking");for(T=0,L=B.length;T<L;T++){m=B[T],s=m.getAttribute("event"),y=this.parseNodeText(m);if(s!=null&&y!=null){if(s==="progress"){c=m.getAttribute("offset");if(!c)continue;c.charAt(c.length-1)==="%"?s="progress-"+c:s="progress-"+Math.round(this.parseDuration(c))}(w=r.trackingEvents)[s]==null&&(w[s]=[]),r.trackingEvents[s].push(y)}}}j=this.childsByName(e,"MediaFiles");for(M=0,A=j.length;M<A;M++){f=j[M],F=this.childsByName(f,"MediaFile");for(_=0,O=F.length;_<O;_++)a=F[_],u=new h,u.id=a.getAttribute("id"),u.fileURL=this.parseNodeText(a),u.deliveryType=a.getAttribute("delivery"),u.codec=a.getAttribute("codec"),u.mimeType=a.getAttribute("type"),u.apiFramework=a.getAttribute("apiFramework"),u.bitrate=parseInt(a.getAttribute("bitrate")||0),u.minBitrate=parseInt(a.getAttribute("minBitrate")||0),u.maxBitrate=parseInt(a.getAttribute("maxBitrate")||0),u.width=parseInt(a.getAttribute("width")||0),u.height=parseInt(a.getAttribute("height")||0),d=a.getAttribute("scalable"),d&&typeof d=="string"&&(d=d.toLowerCase(),d==="true"?u.scalable=!0:d==="false"&&(u.scalable=!1)),o=a.getAttribute("maintainAspectRatio"),o&&typeof o=="string"&&(o=o.toLowerCase(),o==="true"?u.maintainAspectRatio=!0:o==="false"&&(u.maintainAspectRatio=!1)),r.mediaFiles.push(u)}return r},t.parseNonLinear=function(e){var t,n,r,i,s,o,u,a,f,l,h,d,v,m,g,y,b,w,E,S,x,T,N,C,k,L,A,O,M;t=new c,C=this.childsByName(e,"TrackingEvents");for(d=0,y=C.length;d<y;d++){f=C[d],k=this.childsByName(f,"Tracking");for(v=0,b=k.length;v<b;v++)a=k[v],n=a.getAttribute("event"),l=this.parseNodeText(a),n!=null&&l!=null&&((h=t.trackingEvents)[n]==null&&(h[n]=[]),t.trackingEvents[n].push(l))}L=this.childsByName(e,"NonLinear");for(m=0,w=L.length;m<w;m++){o=L[m],s=new p,s.id=o.getAttribute("id")||null,s.width=o.getAttribute("width"),s.height=o.getAttribute("height"),s.minSuggestedDuration=o.getAttribute("minSuggestedDuration"),s.apiFramework=o.getAttribute("apiFramework"),A=this.childsByName(o,"HTMLResource");for(g=0,E=A.length;g<E;g++)r=A[g],s.type=r.getAttribute("creativeType")||"text/html",s.htmlResource=this.parseNodeText(r);O=this.childsByName(o,"IFrameResource");for(T=0,S=O.length;T<S;T++)i=O[T],s.type=i.getAttribute("creativeType")||0,s.iframeResource=this.parseNodeText(i);M=this.childsByName(o,"StaticResource");for(N=0,x=M.length;N<x;N++)u=M[N],s.type=u.getAttribute("creativeType")||0,s.staticResource=this.parseNodeText(u);s.nonlinearClickThroughURLTemplate=this.parseNodeText(this.childByName(o,"NonLinearClickThrough")),t.variations.push(s)}return t},t.parseCompanionAd=function(e){var t,n,r,i,s,o,u,l,c,h,p,d,v,m,g,y,b,w,E,S,x,T,N,C,k,L,A,O,M;r=new f,C=this.childsByName(e,"Companion");for(d=0,y=C.length;d<y;d++){n=C[d],t=new a,t.id=n.getAttribute("id")||null,t.width=n.getAttribute("width"),t.height=n.getAttribute("height"),k=this.childsByName(n,"HTMLResource");for(v=0,b=k.length;v<b;v++)s=k[v],t.type=s.getAttribute("creativeType")||"text/html",t.htmlResource=this.parseNodeText(s);L=this.childsByName(n,"IFrameResource");for(m=0,w=L.length;m<w;m++)o=L[m],t.type=o.getAttribute("creativeType")||0,t.iframeResource=this.parseNodeText(o);A=this.childsByName(n,"StaticResource");for(g=0,E=A.length;g<E;g++)u=A[g],t.type=u.getAttribute("creativeType")||0,t.staticResource=this.parseNodeText(u);O=this.childsByName(n,"TrackingEvents");for(T=0,S=O.length;T<S;T++){c=O[T],M=this.childsByName(c,"Tracking");for(N=0,x=M.length;N<x;N++)l=M[N],i=l.getAttribute("event"),h=this.parseNodeText(l),i!=null&&h!=null&&((p=t.trackingEvents)[i]==null&&(p[i]=[]),t.trackingEvents[i].push(h))}t.companionClickThroughURLTemplate=this.parseNodeText(this.childByName(n,"CompanionClickThrough")),t.companionClickTrackingURLTemplate=this.parseNodeText(this.childByName(n,"CompanionClickTracking")),r.variations.push(t)}return r},t.parseDuration=function(e){var t,n,r,i,s;return e==null?-1:(t=e.split(":"),t.length!==3?-1:(s=t[2].split("."),i=parseInt(s[0]),s.length===2&&(i+=parseFloat("0."+s[1])),r=parseInt(t[1]*60),n=parseInt(t[0]*60*60),isNaN(n||isNaN(r||isNaN(i||r>3600||i>60)))?-1:n+r+i))},t.parseNodeText=function(e){return e&&(e.textContent||e.text||"").trim()},t}(),t.exports=d},{"./ad":2,"./companionad":4,"./creative":5,"./extension":6,"./extensionchild":7,"./mediafile":9,"./nonlinear":10,"./response":12,"./urlhandler":14,"./util":17,events:1}],12:[function(e,t,n){var r;r=function(){function e(){this.ads=[],this.errorURLTemplates=[]}return e}(),t.exports=r},{}],13:[function(e,t,n){var r,i,s,o,u,a={}.hasOwnProperty,f=function(e,t){function r(){this.constructor=e}for(var n in t)a.call(t,n)&&(e[n]=t[n]);return r.prototype=t.prototype,e.prototype=new r,e.__super__=t.prototype,e};i=e("./client"),u=e("./util"),s=e("./creative").VASTCreativeLinear,r=e("events").EventEmitter,o=function(e){function t(e,t){var n,r,o;this.ad=e,this.creative=t,this.muted=!1,this.impressed=!1,this.skipable=!1,this.skipDelayDefault=-1,this.trackingEvents={},this.emitAlwaysEvents=["creativeView","start","firstQuartile","midpoint","thirdQuartile","complete","resume","pause","rewind","skip","closeLinear","close"],o=this.creative.trackingEvents;for(n in o)r=o[n],this.trackingEvents[n]=r.slice(0);this.creative instanceof s?(this.setDuration(this.creative.duration),this.skipDelay=this.creative.skipDelay,this.linear=!0,this.clickThroughURLTemplate=this.creative.videoClickThroughURLTemplate,this.clickTrackingURLTemplates=this.creative.videoClickTrackingURLTemplates):(this.skipDelay=-1,this.linear=!1),this.on("start",function(){i.lastSuccessfullAd=+(new Date)})}return f(t,e),t.prototype.setDuration=function(e){return this.assetDuration=e,this.quartiles={firstQuartile:Math.round(25*this.assetDuration)/100,midpoint:Math.round(50*this.assetDuration)/100,thirdQuartile:Math.round(75*this.assetDuration)/100}},t.prototype.setProgress=function(e){var t,n,r,i,s,o,u,a,f;s=this.skipDelay===null?this.skipDelayDefault:this.skipDelay,s!==-1&&!this.skipable&&(s>e?this.emit("skip-countdown",s-e):(this.skipable=!0,this.emit("skip-countdown",0)));if(this.linear&&this.assetDuration>0){n=[];if(e>0){n.push("start"),r=Math.round(e/this.assetDuration*100),n.push("progress-"+r+"%"),n.push("progress-"+Math.round(e)),f=this.quartiles;for(i in f)o=f[i],o<=e&&e<=o+1&&n.push(i)}for(u=0,a=n.length;u<a;u++)t=n[u],this.track(t,!0);e<this.progress&&this.track("rewind")}return this.progress=e},t.prototype.setMuted=function(e){return this.muted!==e&&this.track(e?"mute":"unmute"),this.muted=e},t.prototype.setPaused=function(e){return this.paused!==e&&this.track(e?"pause":"resume"),this.paused=e},t.prototype.setFullscreen=function(e){return this.fullscreen!==e&&this.track(e?"fullscreen":"exitFullscreen"),this.fullscreen=e},t.prototype.setSkipDelay=function(e){if(typeof e=="number")return this.skipDelay=e},t.prototype.load=function(){if(!this.impressed)return this.impressed=!0,this.trackURLs(this.ad.impressionURLTemplates),this.track("creativeView")},t.prototype.errorWithCode=function(e){return this.trackURLs(this.ad.errorURLTemplates,{ERRORCODE:e})},t.prototype.complete=function(){return this.track("complete")},t.prototype.close=function(){return this.track(this.linear?"closeLinear":"close")},t.prototype.stop=function(){},t.prototype.skip=function(){return this.track("skip"),this.trackingEvents=[]},t.prototype.click=function(){var e,t,n;((n=this.clickTrackingURLTemplates)!=null?n.length:void 0)&&this.trackURLs(this.clickTrackingURLTemplates);if(this.clickThroughURLTemplate!=null)return this.linear&&(t={CONTENTPLAYHEAD:this.progressFormated()}),e=u.resolveURLTemplates([this.clickThroughURLTemplate],t)[0],this.emit("clickthrough",e)},t.prototype.track=function(e,t){var n,r;t==null&&(t=!1),e==="closeLinear"&&this.trackingEvents[e]==null&&this.trackingEvents["close"]!=null&&(e="close"),r=this.trackingEvents[e],n=this.emitAlwaysEvents.indexOf(e),r!=null?(this.emit(e,""),this.trackURLs(r)):n!==-1&&this.emit(e,""),t===!0&&(delete this.trackingEvents[e],n>-1&&this.emitAlwaysEvents.splice(n,1))},t.prototype.trackURLs=function(e,t){return t==null&&(t={}),this.linear&&(t.CONTENTPLAYHEAD=this.progressFormated()),u.track(e,t)},t.prototype.progressFormated=function(){var e,t,n,r,i;return i=parseInt(this.progress),e=i/3600,e.length<2&&(e="0"+e),t=i/60%60,t.length<2&&(t="0"+t),r=i%60,r.length<2&&(r="0"+t),n=parseInt((this.progress-i)*100),""+e+":"+t+":"+r+"."+n},t}(r),t.exports=o},{"./client":3,"./creative":5,"./util":17,events:1}],14:[function(e,t,n){var r,i,s;s=e("./urlhandlers/xmlhttprequest"),i=e("./urlhandlers/flash"),r=function(){function t(){}return t.get=function(t,n,r){var o,u;return r||(typeof n=="function"&&(r=n),n={}),n.response!=null?(o=n.response,n.response=void 0,r(null,o)):((u=n.urlhandler)!=null?u.supported():void 0)?n.urlhandler.get(t,n,r):typeof window=="undefined"||window===null?e("./urlhandlers/node").get(t,n,r):s.supported()?s.get(t,n,r):i.supported()?i.get(t,n,r):r(new Error("Current context is not supported by any of the default URLHandlers. Please provide a custom URLHandler"))},t}(),t.exports=r},{"./urlhandlers/flash":15,"./urlhandlers/xmlhttprequest":16}],15:[function(e,t,n){var r;r=function(){function e(){}return e.xdr=function(){var e;return window.XDomainRequest&&(e=new XDomainRequest),e},e.supported=function(){return!!this.xdr()},e.get=function(e,t,n){var r,i;return(i=typeof window.ActiveXObject=="function"?new window.ActiveXObject("Microsoft.XMLDOM"):void 0)?(i.async=!1,r=this.xdr(),r.open("GET",e),r.timeout=t.timeout||0,r.withCredentials=t.withCredentials||!1,r.send(),r.onprogress=function(){},r.onload=function(){return i.loadXML(r.responseText),n(null,i)}):n(new Error("FlashURLHandler: Microsoft.XMLDOM format not supported"))},e}(),t.exports=r},{}],16:[function(e,t,n){var r;r=function(){function e(){}return e.xhr=function(){var e;e=new window.XMLHttpRequest;if("withCredentials"in e)return e},e.supported=function(){return!!this.xhr()},e.get=function(e,t,n){var r;if(window.location.protocol==="https:"&&e.indexOf("http://")===0)return n(new Error("XHRURLHandler: Cannot go from HTTPS to HTTP."));try{return r=this.xhr(),r.open("GET",e),r.timeout=t.timeout||0,r.withCredentials=t.withCredentials||!1,r.overrideMimeType&&r.overrideMimeType("text/xml"),r.onreadystatechange=function(){if(r.readyState===4)return r.status===200?n(null,r.responseXML):n(new Error("XHRURLHandler: "+r.statusText))},r.send()}catch(i){return n(new Error("XHRURLHandler: Unexpected error"))}},e}(),t.exports=r},{}],17:[function(e,t,n){var r;r=function(){function e(){}return e.track=function(e,t){var n,r,i,s,o,u;r=this.resolveURLTemplates(e,t),u=[];for(s=0,o=r.length;s<o;s++)n=r[s],typeof window!="undefined"&&window!==null&&(i=new Image,u.push(i.src=n));return u},e.resolveURLTemplates=function(e,t){var n,r,i,s,o,u,a,f,l;r=[],t==null&&(t={}),"CACHEBUSTING"in t||(t.CACHEBUSTING=Math.round(Math.random()*1e10)),t.random=t.CACHEBUSTING;for(f=0,l=e.length;f<l;f++){n=e[f],u=n;if(!u)continue;for(i in t)a=t[i],s="["+i+"]",o="%%"+i+"%%",u=u.replace(s,a),u=u.replace(o,a);r.push(u)}return r},e.storage=function(){var e,t,n,r;try{n=typeof window!="undefined"&&window!==null?window.localStorage||window.sessionStorage:null}catch(i){r=i,n=null}t=function(e){var t,n;try{n="__VASTUtil__",e.setItem(n,n);if(e.getItem(n)!==n)return!0}catch(r){return t=r,!0}return!1};if(n==null||t(n))e={},n={length:0,getItem:function(t){return e[t]},setItem:function(t,n){e[t]=n,this.length=Object.keys(e).length},removeItem:function(t){delete e[t],this.length=Object.keys(e).length},clear:function(){e={},this.length=0}};return n}(),e}(),t.exports=r},{}]},{},[8])(8)}
http://requirejs.org/docs/errors.html#mismatch
[WbGeoLocation] enableGoogleClientLocation::false
[WbGeoLocation] enableGetByCoordinates::true
[TMZShowTimes] enableAutoLoad::false
[INFO][tmz/shortcodes/1.0.3/shortcodes] Object {_msg: Array[11]}
[INFO][tmz/shortcodes/1.0.3/shortcodes] Object {_msg: Array[11]}
[INFO][tmz/shortcodes/1.0.3/shortcodes] Object {_msg: Array[11]}
[INFO][tmz/shortcodes/1.0.3/shortcodes] Object {_msg: Array[11]}
[TMZShowTimes] getZip from cookie failed, no zip
[TMZShowTimes] no autoLoad, no zip
Uncaught Error: Mismatched anonymous define() module: function () {
var COMPILED = !0, goog = goog || {};
goog.global = this;
goog.isDef = function(a) {
return void 0 !== a;
};
goog.exportPath_ = function(a, b, c) {
a = a.split(".");
c = c || goog.global;
a[0] in c || !c.execScript || c.execScript("var " + a[0]);
for (var d;a.length && (d = a.shift());) {
!a.length && goog.isDef(b) ? c[d] = b : c = c[d] ? c[d] : c[d] = {};
}
};
goog.define = function(a, b) {
var c = b;
COMPILED || (goog.global.CLOSURE_UNCOMPILED_DEFINES && Object.prototype.hasOwnProperty.call(goog.global.CLOSURE_UNCOMPILED_DEFINES, a) ? c = goog.global.CLOSURE_UNCOMPILED_DEFINES[a] : goog.global.CLOSURE_DEFINES && Object.prototype.hasOwnProperty.call(goog.global.CLOSURE_DEFINES, a) && (c = goog.global.CLOSURE_DEFINES[a]));
goog.exportPath_(a, c);
};
goog.DEBUG = !0;
goog.LOCALE = "en";
goog.TRUSTED_SITE = !0;
goog.STRICT_MODE_COMPATIBLE = !1;
goog.DISALLOW_TEST_ONLY_CODE = COMPILED && !goog.DEBUG;
goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING = !1;
goog.provide = function(a) {
if (goog.isInModuleLoader_()) {
throw Error("goog.provide can not be used within a goog.module.");
}
if (!COMPILED && goog.isProvided_(a)) {
throw Error('Namespace "' + a + '" already declared.');
}
goog.constructNamespace_(a);
};
goog.constructNamespace_ = function(a, b) {
if (!COMPILED) {
delete goog.implicitNamespaces_[a];
for (var c = a;(c = c.substring(0, c.lastIndexOf("."))) && !goog.getObjectByName(c);) {
goog.implicitNamespaces_[c] = !0;
}
}
goog.exportPath_(a, b);
};
goog.VALID_MODULE_RE_ = /^[a-zA-Z_$][a-zA-Z0-9._$]*$/;
goog.module = function(a) {
if (!goog.isString(a) || !a || -1 == a.search(goog.VALID_MODULE_RE_)) {
throw Error("Invalid module identifier");
}
if (!goog.isInModuleLoader_()) {
throw Error("Module " + a + " has been loaded incorrectly.");
}
if (goog.moduleLoaderState_.moduleName) {
throw Error("goog.module may only be called once per module.");
}
goog.moduleLoaderState_.moduleName = a;
if (!COMPILED) {
if (goog.isProvided_(a)) {
throw Error('Namespace "' + a + '" already declared.');
}
delete goog.implicitNamespaces_[a];
}
};
goog.module.get = function(a) {
return goog.module.getInternal_(a);
};
goog.module.getInternal_ = function(a) {
if (!COMPILED) {
return goog.isProvided_(a) ? a in goog.loadedModules_ ? goog.loadedModules_[a] : goog.getObjectByName(a) : null;
}
};
goog.moduleLoaderState_ = null;
goog.isInModuleLoader_ = function() {
return null != goog.moduleLoaderState_;
};
goog.module.declareLegacyNamespace = function() {
if (!COMPILED && !goog.isInModuleLoader_()) {
throw Error("goog.module.declareLegacyNamespace must be called from within a goog.module");
}
if (!COMPILED && !goog.moduleLoaderState_.moduleName) {
throw Error("goog.module must be called prior to goog.module.declareLegacyNamespace.");
}
goog.moduleLoaderState_.declareLegacyNamespace = !0;
};
goog.setTestOnly = function(a) {
if (goog.DISALLOW_TEST_ONLY_CODE) {
throw a = a || "", Error("Importing test-only code into non-debug environment" + (a ? ": " + a : "."));
}
};
goog.forwardDeclare = function(a) {
};
COMPILED || (goog.isProvided_ = function(a) {
return a in goog.loadedModules_ || !goog.implicitNamespaces_[a] && goog.isDefAndNotNull(goog.getObjectByName(a));
}, goog.implicitNamespaces_ = {"goog.module":!0});
goog.getObjectByName = function(a, b) {
for (var c = a.split("."), d = b || goog.global, e;e = c.shift();) {
if (goog.isDefAndNotNull(d[e])) {
d = d[e];
} else {
return null;
}
}
return d;
};
goog.globalize = function(a, b) {
var c = b || goog.global, d;
for (d in a) {
c[d] = a[d];
}
};
goog.addDependency = function(a, b, c, d) {
if (goog.DEPENDENCIES_ENABLED) {
var e;
a = a.replace(/\\/g, "/");
var f = goog.dependencies_;
d && "boolean" !== typeof d || (d = d ? {module:"goog"} : {});
for (var g = 0;e = b[g];g++) {
f.nameToPath[e] = a, f.loadFlags[a] = d;
}
for (d = 0;b = c[d];d++) {
a in f.requires || (f.requires[a] = {}), f.requires[a][b] = !0;
}
}
};
goog.ENABLE_DEBUG_LOADER = !0;
goog.logToConsole_ = function(a) {
goog.global.console && goog.global.console.error(a);
};
goog.require = function(a) {
if (!COMPILED) {
goog.ENABLE_DEBUG_LOADER && goog.IS_OLD_IE_ && goog.maybeProcessDeferredDep_(a);
if (goog.isProvided_(a)) {
return goog.isInModuleLoader_() ? goog.module.getInternal_(a) : null;
}
if (goog.ENABLE_DEBUG_LOADER) {
var b = goog.getPathFromDeps_(a);
if (b) {
return goog.writeScripts_(b), null;
}
}
a = "goog.require could not find: " + a;
goog.logToConsole_(a);
throw Error(a);
}
};
goog.basePath = "";
goog.nullFunction = function() {
};
goog.abstractMethod = function() {
throw Error("unimplemented abstract method");
};
goog.addSingletonGetter = function(a) {
a.getInstance = function() {
if (a.instance_) {
return a.instance_;
}
goog.DEBUG && (goog.instantiatedSingletons_[goog.instantiatedSingletons_.length] = a);
return a.instance_ = new a;
};
};
goog.instantiatedSingletons_ = [];
goog.LOAD_MODULE_USING_EVAL = !0;
goog.SEAL_MODULE_EXPORTS = goog.DEBUG;
goog.loadedModules_ = {};
goog.DEPENDENCIES_ENABLED = !COMPILED && goog.ENABLE_DEBUG_LOADER;
goog.ALWAYS_TRANSPILE = !1;
goog.NEVER_TRANSPILE = !1;
goog.DEPENDENCIES_ENABLED && (goog.dependencies_ = {loadFlags:{}, nameToPath:{}, requires:{}, visited:{}, written:{}, deferred:{}}, goog.inHtmlDocument_ = function() {
var a = goog.global.document;
return null != a && "write" in a;
}, goog.findBasePath_ = function() {
if (goog.isDef(goog.global.CLOSURE_BASE_PATH)) {
goog.basePath = goog.global.CLOSURE_BASE_PATH;
} else {
if (goog.inHtmlDocument_()) {
for (var a = goog.global.document.getElementsByTagName("SCRIPT"), b = a.length - 1;0 <= b;--b) {
var c = a[b].src, d = c.lastIndexOf("?"), d = -1 == d ? c.length : d;
if ("base.js" == c.substr(d - 7, 7)) {
goog.basePath = c.substr(0, d - 7);
break;
}
}
}
}
}, goog.importScript_ = function(a, b) {
(goog.global.CLOSURE_IMPORT_SCRIPT || goog.writeScriptTag_)(a, b) && (goog.dependencies_.written[a] = !0);
}, goog.IS_OLD_IE_ = !(goog.global.atob || !goog.global.document || !goog.global.document.all), goog.importProcessedScript_ = function(a, b, c) {
goog.importScript_("", 'goog.retrieveAndExec_("' + a + '", ' + b + ", " + c + ");");
}, goog.queuedModules_ = [], goog.wrapModule_ = function(a, b) {
return goog.LOAD_MODULE_USING_EVAL && goog.isDef(goog.global.JSON) ? "goog.loadModule(" + goog.global.JSON.stringify(b + "\n//# sourceURL=" + a + "\n") + ");" : 'goog.loadModule(function(exports) {"use strict";' + b + "\n;return exports});\n//# sourceURL=" + a + "\n";
}, goog.loadQueuedModules_ = function() {
var a = goog.queuedModules_.length;
if (0 < a) {
var b = goog.queuedModules_;
goog.queuedModules_ = [];
for (var c = 0;c < a;c++) {
goog.maybeProcessDeferredPath_(b[c]);
}
}
}, goog.maybeProcessDeferredDep_ = function(a) {
goog.isDeferredModule_(a) && goog.allDepsAreAvailable_(a) && (a = goog.getPathFromDeps_(a), goog.maybeProcessDeferredPath_(goog.basePath + a));
}, goog.isDeferredModule_ = function(a) {
var b = (a = goog.getPathFromDeps_(a)) && goog.dependencies_.loadFlags[a] || {};
return a && ("goog" == b.module || goog.needsTranspile_(b.lang)) ? goog.basePath + a in goog.dependencies_.deferred : !1;
}, goog.allDepsAreAvailable_ = function(a) {
if ((a = goog.getPathFromDeps_(a)) && a in goog.dependencies_.requires) {
for (var b in goog.dependencies_.requires[a]) {
if (!goog.isProvided_(b) && !goog.isDeferredModule_(b)) {
return !1;
}
}
}
return !0;
}, goog.maybeProcessDeferredPath_ = function(a) {
if (a in goog.dependencies_.deferred) {
var b = goog.dependencies_.deferred[a];
delete goog.dependencies_.deferred[a];
goog.globalEval(b);
}
}, goog.loadModuleFromUrl = function(a) {
goog.retrieveAndExec_(a, !0, !1);
}, goog.loadModule = function(a) {
var b = goog.moduleLoaderState_;
try {
goog.moduleLoaderState_ = {moduleName:void 0, declareLegacyNamespace:!1};
var c;
if (goog.isFunction(a)) {
c = a.call(goog.global, {});
} else {
if (goog.isString(a)) {
c = goog.loadModuleFromSource_.call(goog.global, a);
} else {
throw Error("Invalid module definition");
}
}
var d = goog.moduleLoaderState_.moduleName;
if (!goog.isString(d) || !d) {
throw Error('Invalid module name "' + d + '"');
}
goog.moduleLoaderState_.declareLegacyNamespace ? goog.constructNamespace_(d, c) : goog.SEAL_MODULE_EXPORTS && Object.seal && Object.seal(c);
goog.loadedModules_[d] = c;
} finally {
goog.moduleLoaderState_ = b;
}
}, goog.loadModuleFromSource_ = function(a) {
eval(a);
return {};
}, goog.writeScriptSrcNode_ = function(a) {
goog.global.document.write('<script type="text/javascript" src="' + a + '">\x3c/script>');
}, goog.appendScriptSrcNode_ = function(a) {
var b = goog.global.document, c = b.createElement("script");
c.type = "text/javascript";
c.src = a;
c.defer = !1;
c.async = !1;
b.head.appendChild(c);
}, goog.writeScriptTag_ = function(a, b) {
if (goog.inHtmlDocument_()) {
var c = goog.global.document;
if (!goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING && "complete" == c.readyState) {
if (/\bdeps.js$/.test(a)) {
return !1;
}
throw Error('Cannot write "' + a + '" after document load');
}
if (void 0 === b) {
if (goog.IS_OLD_IE_) {
var d = " onreadystatechange='goog.onScriptLoad_(this, " + ++goog.lastNonModuleScriptIndex_ + ")' ";
c.write('<script type="text/javascript" src="' + a + '"' + d + ">\x3c/script>");
} else {
goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING ? goog.appendScriptSrcNode_(a) : goog.writeScriptSrcNode_(a);
}
} else {
c.write('<script type="text/javascript">' + b + "\x3c/script>");
}
return !0;
}
return !1;
}, goog.needsTranspile_ = function(a) {
if (goog.ALWAYS_TRANSPILE) {
return !0;
}
if (goog.NEVER_TRANSPILE) {
return !1;
}
if (!goog.transpiledLanguages_) {
goog.transpiledLanguages_ = {es5:!0, es6:!0, "es6-impl":!0};
try {
goog.transpiledLanguages_.es5 = eval("[1,].length!=1"), eval('(()=>{"use strict";let a={};const X=class{constructor(){}x(z){return new Map([...arguments]).get(z[0])==3}};return new X().x([a,3])})()') && (goog.transpiledLanguages_["es6-impl"] = !1), eval('(()=>{"use strict";class X{constructor(){if(new.target!=String)throw 1;this.x=42}}let q=Reflect.construct(X,[],String);if(q.x!=42||!(q instanceof String))throw 1;for(const a of[2,3]){if(a==2)continue;function f(z={a}){let a=0;return z.a}{function f(){return 0;}}return f()==3}})()') &&
(goog.transpiledLanguages_.es6 = !1);
} catch (b) {
}
}
return !!goog.transpiledLanguages_[a];
}, goog.transpiledLanguages_ = null, goog.lastNonModuleScriptIndex_ = 0, goog.onScriptLoad_ = function(a, b) {
"complete" == a.readyState && goog.lastNonModuleScriptIndex_ == b && goog.loadQueuedModules_();
return !0;
}, goog.writeScripts_ = function(a) {
function b(a) {
if (!(a in e.written || a in e.visited)) {
e.visited[a] = !0;
if (a in e.requires) {
for (var f in e.requires[a]) {
if (!goog.isProvided_(f)) {
if (f in e.nameToPath) {
b(e.nameToPath[f]);
} else {
throw Error("Undefined nameToPath for " + f);
}
}
}
}
a in d || (d[a] = !0, c.push(a));
}
}
var c = [], d = {}, e = goog.dependencies_;
b(a);
for (a = 0;a < c.length;a++) {
var f = c[a];
goog.dependencies_.written[f] = !0;
}
var g = goog.moduleLoaderState_;
goog.moduleLoaderState_ = null;
for (a = 0;a < c.length;a++) {
if (f = c[a]) {
var h = e.loadFlags[f] || {}, k = goog.needsTranspile_(h.lang);
"goog" == h.module || k ? goog.importProcessedScript_(goog.basePath + f, "goog" == h.module, k) : goog.importScript_(goog.basePath + f);
} else {
throw goog.moduleLoaderState_ = g, Error("Undefined script input");
}
}
goog.moduleLoaderState_ = g;
}, goog.getPathFromDeps_ = function(a) {
return a in goog.dependencies_.nameToPath ? goog.dependencies_.nameToPath[a] : null;
}, goog.findBasePath_(), goog.global.CLOSURE_NO_DEPS || goog.importScript_(goog.basePath + "deps.js"));
goog.normalizePath_ = function(a) {
a = a.split("/");
for (var b = 0;b < a.length;) {
"." == a[b] ? a.splice(b, 1) : b && ".." == a[b] && a[b - 1] && ".." != a[b - 1] ? a.splice(--b, 2) : b++;
}
return a.join("/");
};
goog.loadFileSync_ = function(a) {
if (goog.global.CLOSURE_LOAD_FILE_SYNC) {
return goog.global.CLOSURE_LOAD_FILE_SYNC(a);
}
try {
var b = new goog.global.XMLHttpRequest;
b.open("get", a, !1);
b.send();
return 0 == b.status || 200 == b.status ? b.responseText : null;
} catch (c) {
return null;
}
};
goog.retrieveAndExec_ = function(a, b, c) {
if (!COMPILED) {
var d = a;
a = goog.normalizePath_(a);
var e = goog.global.CLOSURE_IMPORT_SCRIPT || goog.writeScriptTag_, f = goog.loadFileSync_(a);
if (null == f) {
throw Error('Load of "' + a + '" failed');
}
c && (f = goog.transpile_.call(goog.global, f, a));
f = b ? goog.wrapModule_(a, f) : f + ("\n//# sourceURL=" + a);
goog.IS_OLD_IE_ ? (goog.dependencies_.deferred[d] = f, goog.queuedModules_.push(d)) : e(a, f);
}
};
goog.transpile_ = function(a, b) {
var c = goog.global.$jscomp;
c || (goog.global.$jscomp = c = {});
var d = c.transpile;
if (!d) {
var e = goog.basePath + "transpile.js", f = goog.loadFileSync_(e);
f && (eval(f + "\n//# sourceURL=" + e), c = goog.global.$jscomp, d = c.transpile);
}
d || (d = c.transpile = function(a, b) {
goog.logToConsole_(b + " requires transpilation but no transpiler was found.");
return a;
});
return d(a, b);
};
goog.typeOf = function(a) {
var b = typeof a;
if ("object" == b) {
if (a) {
if (a instanceof Array) {
return "array";
}
if (a instanceof Object) {
return b;
}
var c = Object.prototype.toString.call(a);
if ("[object Window]" == c) {
return "object";
}
if ("[object Array]" == c || "number" == typeof a.length && "undefined" != typeof a.splice && "undefined" != typeof a.propertyIsEnumerable && !a.propertyIsEnumerable("splice")) {
return "array";
}
if ("[object Function]" == c || "undefined" != typeof a.call && "undefined" != typeof a.propertyIsEnumerable && !a.propertyIsEnumerable("call")) {
return "function";
}
} else {
return "null";
}
} else {
if ("function" == b && "undefined" == typeof a.call) {
return "object";
}
}
return b;
};
goog.isNull = function(a) {
return null === a;
};
goog.isDefAndNotNull = function(a) {
return null != a;
};
goog.isArray = function(a) {
return "array" == goog.typeOf(a);
};
goog.isArrayLike = function(a) {
var b = goog.typeOf(a);
return "array" == b || "object" == b && "number" == typeof a.length;
};
goog.isDateLike = function(a) {
return goog.isObject(a) && "function" == typeof a.getFullYear;
};
goog.isString = function(a) {
return "string" == typeof a;
};
goog.isBoolean = function(a) {
return "boolean" == typeof a;
};
goog.isNumber = function(a) {
return "number" == typeof a;
};
goog.isFunction = function(a) {
return "function" == goog.typeOf(a);
};
goog.isObject = function(a) {
var b = typeof a;
return "object" == b && null != a || "function" == b;
};
goog.getUid = function(a) {
return a[goog.UID_PROPERTY_] || (a[goog.UID_PROPERTY_] = ++goog.uidCounter_);
};
goog.hasUid = function(a) {
return !!a[goog.UID_PROPERTY_];
};
goog.removeUid = function(a) {
null !== a && "removeAttribute" in a && a.removeAttribute(goog.UID_PROPERTY_);
try {
delete a[goog.UID_PROPERTY_];
} catch (b) {
}
};
goog.UID_PROPERTY_ = "closure_uid_" + (1E9 * Math.random() >>> 0);
goog.uidCounter_ = 0;
goog.getHashCode = goog.getUid;
goog.removeHashCode = goog.removeUid;
goog.cloneObject = function(a) {
var b = goog.typeOf(a);
if ("object" == b || "array" == b) {
if (a.clone) {
return a.clone();
}
var b = "array" == b ? [] : {}, c;
for (c in a) {
b[c] = goog.cloneObject(a[c]);
}
return b;
}
return a;
};
goog.bindNative_ = function(a, b, c) {
return a.call.apply(a.bind, arguments);
};
goog.bindJs_ = function(a, b, c) {
if (!a) {
throw Error();
}
if (2 < arguments.length) {
var d = Array.prototype.slice.call(arguments, 2);
return function() {
var c = Array.prototype.slice.call(arguments);
Array.prototype.unshift.apply(c, d);
return a.apply(b, c);
};
}
return function() {
return a.apply(b, arguments);
};
};
goog.bind = function(a, b, c) {
Function.prototype.bind && -1 != Function.prototype.bind.toString().indexOf("native code") ? goog.bind = goog.bindNative_ : goog.bind = goog.bindJs_;
return goog.bind.apply(null, arguments);
};
goog.partial = function(a, b) {
var c = Array.prototype.slice.call(arguments, 1);
return function() {
var b = c.slice();
b.push.apply(b, arguments);
return a.apply(this, b);
};
};
goog.mixin = function(a, b) {
for (var c in b) {
a[c] = b[c];
}
};
goog.now = goog.TRUSTED_SITE && Date.now || function() {
return +new Date;
};
goog.globalEval = function(a) {
if (goog.global.execScript) {
goog.global.execScript(a, "JavaScript");
} else {
if (goog.global.eval) {
if (null == goog.evalWorksForGlobals_) {
if (goog.global.eval("var _evalTest_ = 1;"), "undefined" != typeof goog.global._evalTest_) {
try {
delete goog.global._evalTest_;
} catch (d) {
}
goog.evalWorksForGlobals_ = !0;
} else {
goog.evalWorksForGlobals_ = !1;
}
}
if (goog.evalWorksForGlobals_) {
goog.global.eval(a);
} else {
var b = goog.global.document, c = b.createElement("SCRIPT");
c.type = "text/javascript";
c.defer = !1;
c.appendChild(b.createTextNode(a));
b.body.appendChild(c);
b.body.removeChild(c);
}
} else {
throw Error("goog.globalEval not available");
}
}
};
goog.evalWorksForGlobals_ = null;
goog.getCssName = function(a, b) {
var c = function(a) {
return goog.cssNameMapping_[a] || a;
}, d = function(a) {
a = a.split("-");
for (var b = [], d = 0;d < a.length;d++) {
b.push(c(a[d]));
}
return b.join("-");
}, d = goog.cssNameMapping_ ? "BY_WHOLE" == goog.cssNameMappingStyle_ ? c : d : function(a) {
return a;
};
return b ? a + "-" + d(b) : d(a);
};
goog.setCssNameMapping = function(a, b) {
goog.cssNameMapping_ = a;
goog.cssNameMappingStyle_ = b;
};
!COMPILED && goog.global.CLOSURE_CSS_NAME_MAPPING && (goog.cssNameMapping_ = goog.global.CLOSURE_CSS_NAME_MAPPING);
goog.getMsg = function(a, b) {
b && (a = a.replace(/\{\$([^}]+)}/g, function(a, d) {
return null != b && d in b ? b[d] : a;
}));
return a;
};
goog.getMsgWithFallback = function(a, b) {
return a;
};
goog.exportSymbol = function(a, b, c) {
goog.exportPath_(a, b, c);
};
goog.exportProperty = function(a, b, c) {
a[b] = c;
};
goog.inherits = function(a, b) {
function c() {
}
c.prototype = b.prototype;
a.superClass_ = b.prototype;
a.prototype = new c;
a.prototype.constructor = a;
a.base = function(a, c, f) {
for (var g = Array(arguments.length - 2), h = 2;h < arguments.length;h++) {
g[h - 2] = arguments[h];
}
return b.prototype[c].apply(a, g);
};
};
goog.base = function(a, b, c) {
var d = arguments.callee.caller;
if (goog.STRICT_MODE_COMPATIBLE || goog.DEBUG && !d) {
throw Error("arguments.caller not defined. goog.base() cannot be used with strict mode code. See http://www.ecma-international.org/ecma-262/5.1/#sec-C");
}
if (d.superClass_) {
for (var e = Array(arguments.length - 1), f = 1;f < arguments.length;f++) {
e[f - 1] = arguments[f];
}
return d.superClass_.constructor.apply(a, e);
}
e = Array(arguments.length - 2);
for (f = 2;f < arguments.length;f++) {
e[f - 2] = arguments[f];
}
for (var f = !1, g = a.constructor;g;g = g.superClass_ && g.superClass_.constructor) {
if (g.prototype[b] === d) {
f = !0;
} else {
if (f) {
return g.prototype[b].apply(a, e);
}
}
}
if (a[b] === d) {
return a.constructor.prototype[b].apply(a, e);
}
throw Error("goog.base called from a method of one name to a method of a different name");
};
goog.scope = function(a) {
if (goog.isInModuleLoader_()) {
throw Error("goog.scope is not supported within a goog.module.");
}
a.call(goog.global);
};
COMPILED || (goog.global.COMPILED = COMPILED);
goog.defineClass = function(a, b) {
var c = b.constructor, d = b.statics;
c && c != Object.prototype.constructor || (c = function() {
throw Error("cannot instantiate an interface (no constructor defined).");
});
c = goog.defineClass.createSealingConstructor_(c, a);
a && goog.inherits(c, a);
delete b.constructor;
delete b.statics;
goog.defineClass.applyProperties_(c.prototype, b);
null != d && (d instanceof Function ? d(c) : goog.defineClass.applyProperties_(c, d));
return c;
};
goog.defineClass.SEAL_CLASS_INSTANCES = goog.DEBUG;
goog.defineClass.createSealingConstructor_ = function(a, b) {
if (!goog.defineClass.SEAL_CLASS_INSTANCES) {
return a;
}
var c = !goog.defineClass.isUnsealable_(b), d = function() {
var b = a.apply(this, arguments) || this;
b[goog.UID_PROPERTY_] = b[goog.UID_PROPERTY_];
this.constructor === d && c && Object.seal instanceof Function && Object.seal(b);
return b;
};
return d;
};
goog.defineClass.isUnsealable_ = function(a) {
return a && a.prototype && a.prototype[goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_];
};
goog.defineClass.OBJECT_PROTOTYPE_FIELDS_ = "constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");
goog.defineClass.applyProperties_ = function(a, b) {
for (var c in b) {
Object.prototype.hasOwnProperty.call(b, c) && (a[c] = b[c]);
}
for (var d = 0;d < goog.defineClass.OBJECT_PROTOTYPE_FIELDS_.length;d++) {
c = goog.defineClass.OBJECT_PROTOTYPE_FIELDS_[d], Object.prototype.hasOwnProperty.call(b, c) && (a[c] = b[c]);
}
};
goog.tagUnsealableClass = function(a) {
!COMPILED && goog.defineClass.SEAL_CLASS_INSTANCES && (a.prototype[goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_] = !0);
};
goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_ = "goog_defineClass_legacy_unsealable";
var axs = {};
axs.browserUtils = {};
axs.browserUtils.matchSelector = function(a, b) {
return a.matches ? a.matches(b) : a.webkitMatchesSelector ? a.webkitMatchesSelector(b) : a.mozMatchesSelector ? a.mozMatchesSelector(b) : a.msMatchesSelector ? a.msMatchesSelector(b) : !1;
};
axs.constants = {};
axs.constants.ARIA_ROLES = {alert:{namefrom:["author"], parent:["region"]}, alertdialog:{namefrom:["author"], namerequired:!0, parent:["alert", "dialog"]}, application:{namefrom:["author"], namerequired:!0, parent:["landmark"]}, article:{namefrom:["author"], parent:["document", "region"]}, banner:{namefrom:["author"], parent:["landmark"]}, button:{childpresentational:!0, namefrom:["contents", "author"], namerequired:!0, parent:["command"], properties:["aria-expanded", "aria-pressed"]}, checkbox:{namefrom:["contents",
"author"], namerequired:!0, parent:["input"], requiredProperties:["aria-checked"], properties:["aria-checked"]}, columnheader:{namefrom:["contents", "author"], namerequired:!0, parent:["gridcell", "sectionhead", "widget"], properties:["aria-sort"], scope:["row"]}, combobox:{mustcontain:["listbox", "textbox"], namefrom:["author"], namerequired:!0, parent:["select"], requiredProperties:["aria-expanded"], properties:["aria-expanded", "aria-autocomplete", "aria-required"]}, command:{"abstract":!0, namefrom:["author"],
parent:["widget"]}, complementary:{namefrom:["author"], parent:["landmark"]}, composite:{"abstract":!0, childpresentational:!1, namefrom:["author"], parent:["widget"], properties:["aria-activedescendant"]}, contentinfo:{namefrom:["author"], parent:["landmark"]}, definition:{namefrom:["author"], parent:["section"]}, dialog:{namefrom:["author"], namerequired:!0, parent:["window"]}, directory:{namefrom:["contents", "author"], parent:["list"]}, document:{namefrom:[" author"], namerequired:!0, parent:["structure"],
properties:["aria-expanded"]}, form:{namefrom:["author"], parent:["landmark"]}, grid:{mustcontain:["row", "rowgroup"], namefrom:["author"], namerequired:!0, parent:["composite", "region"], properties:["aria-level", "aria-multiselectable", "aria-readonly"]}, gridcell:{namefrom:["contents", "author"], namerequired:!0, parent:["section", "widget"], properties:["aria-readonly", "aria-required", "aria-selected"], scope:["row"]}, group:{namefrom:[" author"], parent:["section"], properties:["aria-activedescendant"]},
heading:{namerequired:!0, parent:["sectionhead"], properties:["aria-level"]}, img:{childpresentational:!0, namefrom:["author"], namerequired:!0, parent:["section"]}, input:{"abstract":!0, namefrom:["author"], parent:["widget"]}, landmark:{"abstract":!0, namefrom:["contents", "author"], namerequired:!1, parent:["region"]}, link:{namefrom:["contents", "author"], namerequired:!0, parent:["command"], properties:["aria-expanded"]}, list:{mustcontain:["group", "listitem"], namefrom:["author"], parent:["region"]},
listbox:{mustcontain:["option"], namefrom:["author"], namerequired:!0, parent:["list", "select"], properties:["aria-multiselectable", "aria-required"]}, listitem:{namefrom:["contents", "author"], namerequired:!0, parent:["section"], properties:["aria-level", "aria-posinset", "aria-setsize"], scope:["list"]}, log:{namefrom:[" author"], namerequired:!0, parent:["region"]}, main:{namefrom:["author"], parent:["landmark"]}, marquee:{namerequired:!0, parent:["section"]}, math:{childpresentational:!0, namefrom:["author"],
parent:["section"]}, menu:{mustcontain:["group", "menuitemradio", "menuitem", "menuitemcheckbox"], namefrom:["author"], namerequired:!0, parent:["list", "select"]}, menubar:{namefrom:["author"], parent:["menu"]}, menuitem:{namefrom:["contents", "author"], namerequired:!0, parent:["command"], scope:["menu", "menubar"]}, menuitemcheckbox:{namefrom:["contents", "author"], namerequired:!0, parent:["checkbox", "menuitem"], scope:["menu", "menubar"]}, menuitemradio:{namefrom:["contents", "author"], namerequired:!0,
parent:["menuitemcheckbox", "radio"], scope:["menu", "menubar"]}, navigation:{namefrom:["author"], parent:["landmark"]}, note:{namefrom:["author"], parent:["section"]}, option:{namefrom:["contents", "author"], namerequired:!0, parent:["input"], properties:["aria-checked", "aria-posinset", "aria-selected", "aria-setsize"]}, presentation:{parent:["structure"]}, progressbar:{childpresentational:!0, namefrom:["author"], namerequired:!0, parent:["range"]}, radio:{namefrom:["contents", "author"], namerequired:!0,
parent:["checkbox", "option"]}, radiogroup:{mustcontain:["radio"], namefrom:["author"], namerequired:!0, parent:["select"], properties:["aria-required"]}, range:{"abstract":!0, namefrom:["author"], parent:["widget"], properties:["aria-valuemax", "aria-valuemin", "aria-valuenow", "aria-valuetext"]}, region:{namefrom:[" author"], parent:["section"]}, roletype:{"abstract":!0, properties:"aria-atomic aria-busy aria-controls aria-describedby aria-disabled aria-dropeffect aria-flowto aria-grabbed aria-haspopup aria-hidden aria-invalid aria-label aria-labelledby aria-live aria-owns aria-relevant".split(" ")},
row:{mustcontain:["columnheader", "gridcell", "rowheader"], namefrom:["contents", "author"], parent:["group", "widget"], properties:["aria-level", "aria-selected"], scope:["grid", "rowgroup", "treegrid"]}, rowgroup:{mustcontain:["row"], namefrom:["contents", "author"], parent:["group"], scope:["grid"]}, rowheader:{namefrom:["contents", "author"], namerequired:!0, parent:["gridcell", "sectionhead", "widget"], properties:["aria-sort"], scope:["row"]}, search:{namefrom:["author"], parent:["landmark"]},
section:{"abstract":!0, namefrom:["contents", "author"], parent:["structure"], properties:["aria-expanded"]}, sectionhead:{"abstract":!0, namefrom:["contents", "author"], parent:["structure"], properties:["aria-expanded"]}, select:{"abstract":!0, namefrom:["author"], parent:["composite", "group", "input"]}, separator:{childpresentational:!0, namefrom:["author"], parent:["structure"], properties:["aria-expanded", "aria-orientation"]}, scrollbar:{childpresentational:!0, namefrom:["author"], namerequired:!1,
parent:["input", "range"], requiredProperties:["aria-controls", "aria-orientation", "aria-valuemax", "aria-valuemin", "aria-valuenow"], properties:["aria-controls", "aria-orientation", "aria-valuemax", "aria-valuemin", "aria-valuenow"]}, slider:{childpresentational:!0, namefrom:["author"], namerequired:!0, parent:["input", "range"], requiredProperties:["aria-valuemax", "aria-valuemin", "aria-valuenow"], properties:["aria-valuemax", "aria-valuemin", "aria-valuenow", "aria-orientation"]}, spinbutton:{namefrom:["author"],
namerequired:!0, parent:["input", "range"], requiredProperties:["aria-valuemax", "aria-valuemin", "aria-valuenow"], properties:["aria-valuemax", "aria-valuemin", "aria-valuenow", "aria-required"]}, status:{parent:["region"]}, structure:{"abstract":!0, parent:["roletype"]}, tab:{namefrom:["contents", "author"], parent:["sectionhead", "widget"], properties:["aria-selected"], scope:["tablist"]}, tablist:{mustcontain:["tab"], namefrom:["author"], parent:["composite", "directory"], properties:["aria-level"]},
tabpanel:{namefrom:["author"], namerequired:!0, parent:["region"]}, textbox:{namefrom:["author"], namerequired:!0, parent:["input"], properties:["aria-activedescendant", "aria-autocomplete", "aria-multiline", "aria-readonly", "aria-required"]}, timer:{namefrom:["author"], namerequired:!0, parent:["status"]}, toolbar:{namefrom:["author"], parent:["group"]}, tooltip:{namerequired:!0, parent:["section"]}, tree:{mustcontain:["group", "treeitem"], namefrom:["author"], namerequired:!0, parent:["select"],
properties:["aria-multiselectable", "aria-required"]}, treegrid:{mustcontain:["row"], namefrom:["author"], namerequired:!0, parent:["grid", "tree"]}, treeitem:{namefrom:["contents", "author"], namerequired:!0, parent:["listitem", "option"], scope:["group", "tree"]}, widget:{"abstract":!0, parent:["roletype"]}, window:{"abstract":!0, namefrom:[" author"], parent:["roletype"], properties:["aria-expanded"]}};
axs.constants.WIDGET_ROLES = {};
axs.constants.addAllParentRolesToSet_ = function(a, b) {
if (a.parent) {
for (var c = a.parent, d = 0;d < c.length;d++) {
var e = c[d];
b[e] = !0;
axs.constants.addAllParentRolesToSet_(axs.constants.ARIA_ROLES[e], b);
}
}
};
axs.constants.addAllPropertiesToSet_ = function(a, b, c) {
var d = a[b];
if (d) {
for (var e = 0;e < d.length;e++) {
c[d[e]] = !0;
}
}
if (a.parent) {
for (a = a.parent, d = 0;d < a.length;d++) {
axs.constants.addAllPropertiesToSet_(axs.constants.ARIA_ROLES[a[d]], b, c);
}
}
};
for (var roleName in axs.constants.ARIA_ROLES) {
var role = axs.constants.ARIA_ROLES[roleName], propertiesSet = {};
axs.constants.addAllPropertiesToSet_(role, "properties", propertiesSet);
role.propertiesSet = propertiesSet;
var requiredPropertiesSet = {};
axs.constants.addAllPropertiesToSet_(role, "requiredProperties", requiredPropertiesSet);
role.requiredPropertiesSet = requiredPropertiesSet;
var parentRolesSet = {};
axs.constants.addAllParentRolesToSet_(role, parentRolesSet);
role.allParentRolesSet = parentRolesSet;
"widget" in parentRolesSet && (axs.constants.WIDGET_ROLES[roleName] = role);
}
axs.constants.ARIA_PROPERTIES = {activedescendant:{type:"property", valueType:"idref"}, atomic:{defaultValue:"false", type:"property", valueType:"boolean"}, autocomplete:{defaultValue:"none", type:"property", valueType:"token", values:["inline", "list", "both", "none"]}, busy:{defaultValue:"false", type:"state", valueType:"boolean"}, checked:{defaultValue:"undefined", type:"state", valueType:"token", values:["true", "false", "mixed", "undefined"]}, controls:{type:"property", valueType:"idref_list"},
describedby:{type:"property", valueType:"idref_list"}, disabled:{defaultValue:"false", type:"state", valueType:"boolean"}, dropeffect:{defaultValue:"none", type:"property", valueType:"token_list", values:"copy move link execute popup none".split(" ")}, expanded:{defaultValue:"undefined", type:"state", valueType:"token", values:["true", "false", "undefined"]}, flowto:{type:"property", valueType:"idref_list"}, grabbed:{defaultValue:"undefined", type:"state", valueType:"token", values:["true", "false",
"undefined"]}, haspopup:{defaultValue:"false", type:"property", valueType:"boolean"}, hidden:{defaultValue:"false", type:"state", valueType:"boolean"}, invalid:{defaultValue:"false", type:"state", valueType:"token", values:["grammar", "false", "spelling", "true"]}, label:{type:"property", valueType:"string"}, labelledby:{type:"property", valueType:"idref_list"}, level:{type:"property", valueType:"integer"}, live:{defaultValue:"off", type:"property", valueType:"token", values:["off", "polite", "assertive"]},
multiline:{defaultValue:"false", type:"property", valueType:"boolean"}, multiselectable:{defaultValue:"false", type:"property", valueType:"boolean"}, orientation:{defaultValue:"vertical", type:"property", valueType:"token", values:["horizontal", "vertical"]}, owns:{type:"property", valueType:"idref_list"}, posinset:{type:"property", valueType:"integer"}, pressed:{defaultValue:"undefined", type:"state", valueType:"token", values:["true", "false", "mixed", "undefined"]}, readonly:{defaultValue:"false",
type:"property", valueType:"boolean"}, relevant:{defaultValue:"additions text", type:"property", valueType:"token_list", values:["additions", "removals", "text", "all"]}, required:{defaultValue:"false", type:"property", valueType:"boolean"}, selected:{defaultValue:"undefined", type:"state", valueType:"token", values:["true", "false", "undefined"]}, setsize:{type:"property", valueType:"integer"}, sort:{defaultValue:"none", type:"property", valueType:"token", values:["ascending", "descending", "none",
"other"]}, valuemax:{type:"property", valueType:"decimal"}, valuemin:{type:"property", valueType:"decimal"}, valuenow:{type:"property", valueType:"decimal"}, valuetext:{type:"property", valueType:"string"}};
(function() {
for (var a in axs.constants.ARIA_PROPERTIES) {
var b = axs.constants.ARIA_PROPERTIES[a];
if (b.values) {
for (var c = {}, d = 0;d < b.values.length;d++) {
c[b.values[d]] = !0;
}
b.valuesSet = c;
}
}
})();
axs.constants.GLOBAL_PROPERTIES = axs.constants.ARIA_ROLES.roletype.propertiesSet;
axs.constants.NO_ROLE_NAME = " ";
axs.constants.WIDGET_ROLE_TO_NAME = {alert:"aria_role_alert", alertdialog:"aria_role_alertdialog", button:"aria_role_button", checkbox:"aria_role_checkbox", columnheader:"aria_role_columnheader", combobox:"aria_role_combobox", dialog:"aria_role_dialog", grid:"aria_role_grid", gridcell:"aria_role_gridcell", link:"aria_role_link", listbox:"aria_role_listbox", log:"aria_role_log", marquee:"aria_role_marquee", menu:"aria_role_menu", menubar:"aria_role_menubar", menuitem:"aria_role_menuitem", menuitemcheckbox:"aria_role_menuitemcheckbox",
menuitemradio:"aria_role_menuitemradio", option:axs.constants.NO_ROLE_NAME, progressbar:"aria_role_progressbar", radio:"aria_role_radio", radiogroup:"aria_role_radiogroup", rowheader:"aria_role_rowheader", scrollbar:"aria_role_scrollbar", slider:"aria_role_slider", spinbutton:"aria_role_spinbutton", status:"aria_role_status", tab:"aria_role_tab", tabpanel:"aria_role_tabpanel", textbox:"aria_role_textbox", timer:"aria_role_timer", toolbar:"aria_role_toolbar", tooltip:"aria_role_tooltip", treeitem:"aria_role_treeitem"};
axs.constants.STRUCTURE_ROLE_TO_NAME = {article:"aria_role_article", application:"aria_role_application", banner:"aria_role_banner", columnheader:"aria_role_columnheader", complementary:"aria_role_complementary", contentinfo:"aria_role_contentinfo", definition:"aria_role_definition", directory:"aria_role_directory", document:"aria_role_document", form:"aria_role_form", group:"aria_role_group", heading:"aria_role_heading", img:"aria_role_img", list:"aria_role_list", listitem:"aria_role_listitem",
main:"aria_role_main", math:"aria_role_math", navigation:"aria_role_navigation", note:"aria_role_note", region:"aria_role_region", rowheader:"aria_role_rowheader", search:"aria_role_search", separator:"aria_role_separator"};
axs.constants.ATTRIBUTE_VALUE_TO_STATUS = [{name:"aria-autocomplete", values:{inline:"aria_autocomplete_inline", list:"aria_autocomplete_list", both:"aria_autocomplete_both"}}, {name:"aria-checked", values:{"true":"aria_checked_true", "false":"aria_checked_false", mixed:"aria_checked_mixed"}}, {name:"aria-disabled", values:{"true":"aria_disabled_true"}}, {name:"aria-expanded", values:{"true":"aria_expanded_true", "false":"aria_expanded_false"}}, {name:"aria-invalid", values:{"true":"aria_invalid_true",
grammar:"aria_invalid_grammar", spelling:"aria_invalid_spelling"}}, {name:"aria-multiline", values:{"true":"aria_multiline_true"}}, {name:"aria-multiselectable", values:{"true":"aria_multiselectable_true"}}, {name:"aria-pressed", values:{"true":"aria_pressed_true", "false":"aria_pressed_false", mixed:"aria_pressed_mixed"}}, {name:"aria-readonly", values:{"true":"aria_readonly_true"}}, {name:"aria-required", values:{"true":"aria_required_true"}}, {name:"aria-selected", values:{"true":"aria_selected_true",
"false":"aria_selected_false"}}];
axs.constants.INPUT_TYPE_TO_INFORMATION_TABLE_MSG = {button:"input_type_button", checkbox:"input_type_checkbox", color:"input_type_color", datetime:"input_type_datetime", "datetime-local":"input_type_datetime_local", date:"input_type_date", email:"input_type_email", file:"input_type_file", image:"input_type_image", month:"input_type_month", number:"input_type_number", password:"input_type_password", radio:"input_type_radio", range:"input_type_range", reset:"input_type_reset", search:"input_type_search",
submit:"input_type_submit", tel:"input_type_tel", text:"input_type_text", url:"input_type_url", week:"input_type_week"};
axs.constants.TAG_TO_INFORMATION_TABLE_VERBOSE_MSG = {A:"tag_link", BUTTON:"tag_button", H1:"tag_h1", H2:"tag_h2", H3:"tag_h3", H4:"tag_h4", H5:"tag_h5", H6:"tag_h6", LI:"tag_li", OL:"tag_ol", SELECT:"tag_select", TEXTAREA:"tag_textarea", UL:"tag_ul", SECTION:"tag_section", NAV:"tag_nav", ARTICLE:"tag_article", ASIDE:"tag_aside", HGROUP:"tag_hgroup", HEADER:"tag_header", FOOTER:"tag_footer", TIME:"tag_time", MARK:"tag_mark"};
axs.constants.TAG_TO_INFORMATION_TABLE_BRIEF_MSG = {BUTTON:"tag_button", SELECT:"tag_select", TEXTAREA:"tag_textarea"};
axs.constants.MIXED_VALUES = {"true":!0, "false":!0, mixed:!0};
axs.constants.Severity = {INFO:"Info", WARNING:"Warning", SEVERE:"Severe"};
axs.constants.AuditResult = {PASS:"PASS", FAIL:"FAIL", NA:"NA"};
axs.constants.InlineElements = {TT:!0, I:!0, B:!0, BIG:!0, SMALL:!0, EM:!0, STRONG:!0, DFN:!0, CODE:!0, SAMP:!0, KBD:!0, VAR:!0, CITE:!0, ABBR:!0, ACRONYM:!0, A:!0, IMG:!0, OBJECT:!0, BR:!0, SCRIPT:!0, MAP:!0, Q:!0, SUB:!0, SUP:!0, SPAN:!0, BDO:!0, INPUT:!0, SELECT:!0, TEXTAREA:!0, LABEL:!0, BUTTON:!0};
axs.constants.NATIVELY_DISABLEABLE = {BUTTON:!0, INPUT:!0, SELECT:!0, TEXTAREA:!0, FIELDSET:!0, OPTGROUP:!0, OPTION:!0};
axs.constants.ARIA_TO_HTML_ATTRIBUTE = {"aria-checked":"checked", "aria-disabled":"disabled", "aria-hidden":"hidden", "aria-expanded":"open", "aria-valuemax":"max", "aria-valuemin":"min", "aria-readonly":"readonly", "aria-required":"required", "aria-selected":"selected", "aria-valuenow":"value"};
axs.constants.TAG_TO_IMPLICIT_SEMANTIC_INFO = {A:[{role:"link", allowed:"button checkbox menuitem menuitemcheckbox menuitemradio tab treeitem".split(" "), selector:"a[href]"}], ADDRESS:[{role:"", allowed:["contentinfo", "presentation"]}], AREA:[{role:"link", selector:"area[href]"}], ARTICLE:[{role:"article", allowed:["presentation", "article", "document", "application", "main"]}], ASIDE:[{role:"complementary", allowed:["note", "complementary", "search", "presentation"]}], AUDIO:[{role:"", allowed:["application",
"presentation"]}], BASE:[{role:"", reserved:!0}], BODY:[{role:"document", allowed:["presentation"]}], BUTTON:[{role:"button", allowed:["link", "menuitem", "menuitemcheckbox", "menuitemradio", "radio"], selector:'button:not([aria-pressed]):not([type="menu"])'}, {role:"button", allowed:["button"], selector:"button[aria-pressed]"}, {role:"button", attributes:{"aria-haspopup":!0}, allowed:["link", "menuitem", "menuitemcheckbox", "menuitemradio", "radio"], selector:'button[type="menu"]'}], CAPTION:[{role:"",
allowed:["presentation"]}], COL:[{role:"", reserved:!0}], COLGROUP:[{role:"", reserved:!0}], DATALIST:[{role:"listbox", attributes:{"aria-multiselectable":!1}, allowed:["presentation"]}], DEL:[{role:"", allowed:["*"]}], DD:[{role:"", allowed:["presentation"]}], DT:[{role:"", allowed:["presentation"]}], DETAILS:[{role:"group", allowed:["group", "presentation"]}], DIALOG:[{role:"dialog", allowed:"dialog alert alertdialog application log marquee status".split(" "), selector:"dialog[open]"}, {role:"dialog",
attributes:{"aria-hidden":!0}, allowed:"dialog alert alertdialog application log marquee status".split(" "), selector:"dialog:not([open])"}], DIV:[{role:"", allowed:["*"]}], DL:[{role:"list", allowed:["presentation"]}], EMBED:[{role:"", allowed:["application", "document", "img", "presentation"]}], FIGURE:[{role:"", allowed:["*"]}], FOOTER:[{role:"", allowed:["contentinfo", "presentation"]}], FORM:[{role:"form", allowed:["presentation"]}], P:[{role:"", allowed:["*"]}], PRE:[{role:"", allowed:["*"]}],
BLOCKQUOTE:[{role:"", allowed:["*"]}], H1:[{role:"heading"}], H2:[{role:"heading"}], H3:[{role:"heading"}], H4:[{role:"heading"}], H5:[{role:"heading"}], H6:[{role:"heading"}], HEAD:[{role:"", reserved:!0}], HEADER:[{role:"", allowed:["banner", "presentation"]}], HR:[{role:"separator", allowed:["presentation"]}], HTML:[{role:"", reserved:!0}], IFRAME:[{role:"", allowed:["application", "document", "img", "presentation"], selector:"iframe:not([seamless])"}, {role:"", allowed:["application", "document",
"img", "presentation", "group"], selector:"iframe[seamless]"}], IMG:[{role:"presentation", reserved:!0, selector:'img[alt=""]'}, {role:"img", allowed:["*"], selector:'img[alt]:not([alt=""])'}], INPUT:[{role:"button", allowed:["link", "menuitem", "menuitemcheckbox", "menuitemradio", "radio"], selector:'input[type="button"]:not([aria-pressed])'}, {role:"button", allowed:["button"], selector:'input[type="button"][aria-pressed]'}, {role:"checkbox", allowed:["checkbox"], selector:'input[type="checkbox"]'},
{role:"", selector:'input[type="color"]'}, {role:"", selector:'input[type="date"]'}, {role:"", selector:'input[type="datetime"]'}, {role:"textbox", selector:'input[type="email"]:not([list])'}, {role:"", selector:'input[type="file"]'}, {role:"", reserved:!0, selector:'input[type="hidden"]'}, {role:"button", allowed:["button"], selector:'input[type="image"][aria-pressed]'}, {role:"button", allowed:["link", "menuitem", "menuitemcheckbox", "menuitemradio", "radio"], selector:'input[type="image"]:not([aria-pressed])'},
{role:"", selector:'input[type="month"]'}, {role:"", selector:'input[type="number"]'}, {role:"textbox", selector:'input[type="password"]'}, {role:"radio", allowed:["menuitemradio"], selector:'input[type="radio"]'}, {role:"slider", selector:'input[type="range"]'}, {role:"button", selector:'input[type="reset"]'}, {role:"combobox", selector:'input[type="search"][list]'}, {role:"textbox", selector:'input[type="search"]:not([list])'}, {role:"button", selector:'input[type="submit"]'}, {role:"combobox",
selector:'input[type="tel"][list]'}, {role:"textbox", selector:'input[type="tel"]:not([list])'}, {role:"combobox", selector:'input[type="text"][list]'}, {role:"textbox", selector:'input[type="text"]:not([list])'}, {role:"textbox", selector:"input:not([type])"}, {role:"", selector:'input[type="time"]'}, {role:"combobox", selector:'input[type="url"][list]'}, {role:"textbox", selector:'input[type="url"]:not([list])'}, {role:"", selector:'input[type="week"]'}], INS:[{role:"", allowed:["*"]}], KEYGEN:[{role:""}],
LABEL:[{role:"", allowed:["presentation"]}], LI:[{role:"listitem", allowed:"menuitem menuitemcheckbox menuitemradio option tab treeitem presentation".split(" "), selector:'ol:not([role="presentation"])>li, ul:not([role="presentation"])>li'}, {role:"listitem", allowed:"listitem menuitem menuitemcheckbox menuitemradio option tab treeitem presentation".split(" "), selector:'ol[role="presentation"]>li, ul[role="presentation"]>li'}], LINK:[{role:"link", reserved:!0, selector:"link[href]"}], MAIN:[{role:"",
allowed:["main", "presentation"]}], MAP:[{role:"", reserved:!0}], MATH:[{role:"", allowed:["presentation"]}], MENU:[{role:"toolbar", selector:'menu[type="toolbar"]'}], MENUITEM:[{role:"menuitem", selector:'menuitem[type="command"]'}, {role:"menuitemcheckbox", selector:'menuitem[type="checkbox"]'}, {role:"menuitemradio", selector:'menuitem[type="radio"]'}], META:[{role:"", reserved:!0}], METER:[{role:"progressbar", allowed:["presentation"]}], NAV:[{role:"navigation", allowed:["navigation", "presentation"]}],
NOSCRIPT:[{role:"", reserved:!0}], OBJECT:[{role:"", allowed:["application", "document", "img", "presentation"]}], OL:[{role:"list", allowed:"directory group listbox menu menubar tablist toolbar tree presentation".split(" ")}], OPTGROUP:[{role:"", allowed:["presentation"]}], OPTION:[{role:"option"}], OUTPUT:[{role:"status", allowed:["*"]}], PARAM:[{role:"", reserved:!0}], PICTURE:[{role:"", reserved:!0}], PROGRESS:[{role:"progressbar", allowed:["presentation"]}], SCRIPT:[{role:"", reserved:!0}],
SECTION:[{role:"region", allowed:"alert alertdialog application contentinfo dialog document log marquee search status presentation".split(" ")}], SELECT:[{role:"listbox"}], SOURCE:[{role:"", reserved:!0}], SPAN:[{role:"", allowed:["*"]}], STYLE:[{role:"", reserved:!0}], SVG:[{role:"", allowed:["application", "document", "img", "presentation"]}], SUMMARY:[{role:"", allowed:["presentation"]}], TABLE:[{role:"", allowed:["*"]}], TEMPLATE:[{role:"", reserved:!0}], TEXTAREA:[{role:"textbox"}], TBODY:[{role:"rowgroup",
allowed:["*"]}], THEAD:[{role:"rowgroup", allowed:["*"]}], TFOOT:[{role:"rowgroup", allowed:["*"]}], TITLE:[{role:"", reserved:!0}], TD:[{role:"", allowed:["*"]}], TH:[{role:"", allowed:["*"]}], TR:[{role:"", allowed:["*"]}], TRACK:[{role:"", reserved:!0}], UL:[{role:"list", allowed:"directory group listbox menu menubar tablist toolbar tree presentation".split(" ")}], VIDEO:[{role:"", allowed:["application", "presentation"]}]};
axs.color = {};
axs.color.Color = function(a, b, c, d) {
this.red = a;
this.green = b;
this.blue = c;
this.alpha = d;
};
axs.color.YCbCr = function(a) {
this.luma = this.z = a[0];
this.Cb = this.x = a[1];
this.Cr = this.y = a[2];
};
axs.color.YCbCr.prototype = {multiply:function(a) {
return new axs.color.YCbCr([this.luma * a, this.Cb * a, this.Cr * a]);
}, add:function(a) {
return new axs.color.YCbCr([this.luma + a.luma, this.Cb + a.Cb, this.Cr + a.Cr]);
}, subtract:function(a) {
return new axs.color.YCbCr([this.luma - a.luma, this.Cb - a.Cb, this.Cr - a.Cr]);
}};
axs.color.calculateContrastRatio = function(a, b) {
1 > a.alpha && (a = axs.color.flattenColors(a, b));
var c = axs.color.calculateLuminance(a), d = axs.color.calculateLuminance(b);
return (Math.max(c, d) + .05) / (Math.min(c, d) + .05);
};
axs.color.calculateLuminance = function(a) {
return axs.color.toYCbCr(a).luma;
};
axs.color.luminanceRatio = function(a, b) {
return (Math.max(a, b) + .05) / (Math.min(a, b) + .05);
};
axs.color.parseColor = function(a) {
if ("transparent" === a) {
return new axs.color.Color(0, 0, 0, 0);
}
var b = a.match(/^rgb\((\d+), (\d+), (\d+)\)$/);
if (b) {
a = parseInt(b[1], 10);
var c = parseInt(b[2], 10), d = parseInt(b[3], 10);
return new axs.color.Color(a, c, d, 1);
}
return (b = a.match(/^rgba\((\d+), (\d+), (\d+), (\d*(\.\d+)?)\)/)) ? (a = parseInt(b[1], 10), c = parseInt(b[2], 10), d = parseInt(b[3], 10), b = parseFloat(b[4]), new axs.color.Color(a, c, d, b)) : null;
};
axs.color.colorChannelToString = function(a) {
a = Math.round(a);
return 15 >= a ? "0" + a.toString(16) : a.toString(16);
};
axs.color.colorToString = function(a) {
return 1 == a.alpha ? "#" + axs.color.colorChannelToString(a.red) + axs.color.colorChannelToString(a.green) + axs.color.colorChannelToString(a.blue) : "rgba(" + [a.red, a.green, a.blue, a.alpha].join() + ")";
};
axs.color.luminanceFromContrastRatio = function(a, b, c) {
return c ? (a + .05) * b - .05 : (a + .05) / b - .05;
};
axs.color.translateColor = function(a, b) {
for (var c = b > a.luma ? axs.color.WHITE_YCC : axs.color.BLACK_YCC, d = c == axs.color.WHITE_YCC ? axs.color.YCC_CUBE_FACES_WHITE : axs.color.YCC_CUBE_FACES_BLACK, e = new axs.color.YCbCr([0, a.Cb, a.Cr]), f = new axs.color.YCbCr([1, a.Cb, a.Cr]), f = {a:e, b:f}, e = null, g = 0;g < d.length && !(e = axs.color.findIntersection(f, d[g]), 0 <= e.z && 1 >= e.z);g++) {
}
if (!e) {
throw "Couldn't find intersection with YCbCr color cube for Cb=" + a.Cb + ", Cr=" + a.Cr + ".";
}
if (e.x != a.x || e.y != a.y) {
throw "Intersection has wrong Cb/Cr values.";
}
if (Math.abs(c.luma - e.luma) < Math.abs(c.luma - b)) {
return c = [b, a.Cb, a.Cr], axs.color.fromYCbCrArray(c);
}
c = (b - e.luma) / (c.luma - e.luma);
c = [b, e.Cb - e.Cb * c, e.Cr - e.Cr * c];
return axs.color.fromYCbCrArray(c);
};
axs.color.suggestColors = function(a, b, c) {
var d = {}, e = axs.color.calculateLuminance(a), f = axs.color.calculateLuminance(b), g = f > e, h = axs.color.toYCbCr(b), k = axs.color.toYCbCr(a), m;
for (m in c) {
var l = c[m], n = axs.color.luminanceFromContrastRatio(e, l + .02, g);
if (1 >= n && 0 <= n) {
var p = axs.color.translateColor(h, n), l = axs.color.calculateContrastRatio(p, a), n = {};
n.fg = axs.color.colorToString(p);
n.bg = axs.color.colorToString(a);
n.contrast = l.toFixed(2);
d[m] = n;
} else {
l = axs.color.luminanceFromContrastRatio(f, l + .02, !g), 1 >= l && 0 <= l && (p = axs.color.translateColor(k, l), l = axs.color.calculateContrastRatio(b, p), n = {}, n.bg = axs.color.colorToString(p), n.fg = axs.color.colorToString(b), n.contrast = l.toFixed(2), d[m] = n);
}
}
return d;
};
axs.color.flattenColors = function(a, b) {
var c = a.alpha;
return new axs.color.Color((1 - c) * b.red + c * a.red, (1 - c) * b.green + c * a.green, (1 - c) * b.blue + c * a.blue, a.alpha + b.alpha * (1 - a.alpha));
};
axs.color.multiplyMatrixVector = function(a, b) {
var c = b[0], d = b[1], e = b[2];
return [a[0][0] * c + a[0][1] * d + a[0][2] * e, a[1][0] * c + a[1][1] * d + a[1][2] * e, a[2][0] * c + a[2][1] * d + a[2][2] * e];
};
axs.color.toYCbCr = function(a) {
var b = a.red / 255, c = a.green / 255;
a = a.blue / 255;
return new axs.color.YCbCr(axs.color.multiplyMatrixVector(axs.color.YCC_MATRIX, [.03928 >= b ? b / 12.92 : Math.pow((b + .055) / 1.055, 2.4), .03928 >= c ? c / 12.92 : Math.pow((c + .055) / 1.055, 2.4), .03928 >= a ? a / 12.92 : Math.pow((a + .055) / 1.055, 2.4)]));
};
axs.color.fromYCbCr = function(a) {
return axs.color.fromYCbCrArray([a.luma, a.Cb, a.Cr]);
};
axs.color.fromYCbCrArray = function(a) {
var b = axs.color.multiplyMatrixVector(axs.color.INVERTED_YCC_MATRIX, a);
a = b[0];
var c = b[1], b = b[2];
return new axs.color.Color(Math.min(Math.max(Math.round(255 * (.00303949 >= a ? 12.92 * a : 1.055 * Math.pow(a, 1 / 2.4) - .055)), 0), 255), Math.min(Math.max(Math.round(255 * (.00303949 >= c ? 12.92 * c : 1.055 * Math.pow(c, 1 / 2.4) - .055)), 0), 255), Math.min(Math.max(Math.round(255 * (.00303949 >= b ? 12.92 * b : 1.055 * Math.pow(b, 1 / 2.4) - .055)), 0), 255), 1);
};
axs.color.RGBToYCbCrMatrix = function(a, b) {
return [[a, 1 - a - b, b], [-a / (2 - 2 * b), (a + b - 1) / (2 - 2 * b), (1 - b) / (2 - 2 * b)], [(1 - a) / (2 - 2 * a), (a + b - 1) / (2 - 2 * a), -b / (2 - 2 * a)]];
};
axs.color.invert3x3Matrix = function(a) {
var b = a[0][0], c = a[0][1], d = a[0][2], e = a[1][0], f = a[1][1], g = a[1][2], h = a[2][0], k = a[2][1];
a = a[2][2];
return axs.color.scalarMultiplyMatrix([[f * a - g * k, d * k - c * a, c * g - d * f], [g * h - e * a, b * a - d * h, d * e - b * g], [e * k - f * h, h * c - b * k, b * f - c * e]], 1 / (b * (f * a - g * k) - c * (a * e - g * h) + d * (e * k - f * h)));
};
axs.color.findIntersection = function(a, b) {
var c = [a.a.x - b.p0.x, a.a.y - b.p0.y, a.a.z - b.p0.z], d = axs.color.invert3x3Matrix([[a.a.x - a.b.x, b.p1.x - b.p0.x, b.p2.x - b.p0.x], [a.a.y - a.b.y, b.p1.y - b.p0.y, b.p2.y - b.p0.y], [a.a.z - a.b.z, b.p1.z - b.p0.z, b.p2.z - b.p0.z]]), c = axs.color.multiplyMatrixVector(d, c)[0];
return a.a.add(a.b.subtract(a.a).multiply(c));
};
axs.color.scalarMultiplyMatrix = function(a, b) {
for (var c = [], d = 0;3 > d;d++) {
c[d] = axs.color.scalarMultiplyVector(a[d], b);
}
return c;
};
axs.color.scalarMultiplyVector = function(a, b) {
for (var c = [], d = 0;d < a.length;d++) {
c[d] = a[d] * b;
}
return c;
};
axs.color.kR = .2126;
axs.color.kB = .0722;
axs.color.YCC_MATRIX = axs.color.RGBToYCbCrMatrix(axs.color.kR, axs.color.kB);
axs.color.INVERTED_YCC_MATRIX = axs.color.invert3x3Matrix(axs.color.YCC_MATRIX);
axs.color.BLACK = new axs.color.Color(0, 0, 0, 1);
axs.color.BLACK_YCC = axs.color.toYCbCr(axs.color.BLACK);
axs.color.WHITE = new axs.color.Color(255, 255, 255, 1);
axs.color.WHITE_YCC = axs.color.toYCbCr(axs.color.WHITE);
axs.color.RED = new axs.color.Color(255, 0, 0, 1);
axs.color.RED_YCC = axs.color.toYCbCr(axs.color.RED);
axs.color.GREEN = new axs.color.Color(0, 255, 0, 1);
axs.color.GREEN_YCC = axs.color.toYCbCr(axs.color.GREEN);
axs.color.BLUE = new axs.color.Color(0, 0, 255, 1);
axs.color.BLUE_YCC = axs.color.toYCbCr(axs.color.BLUE);
axs.color.CYAN = new axs.color.Color(0, 255, 255, 1);
axs.color.CYAN_YCC = axs.color.toYCbCr(axs.color.CYAN);
axs.color.MAGENTA = new axs.color.Color(255, 0, 255, 1);
axs.color.MAGENTA_YCC = axs.color.toYCbCr(axs.color.MAGENTA);
axs.color.YELLOW = new axs.color.Color(255, 255, 0, 1);
axs.color.YELLOW_YCC = axs.color.toYCbCr(axs.color.YELLOW);
axs.color.YCC_CUBE_FACES_BLACK = [{p0:axs.color.BLACK_YCC, p1:axs.color.RED_YCC, p2:axs.color.GREEN_YCC}, {p0:axs.color.BLACK_YCC, p1:axs.color.GREEN_YCC, p2:axs.color.BLUE_YCC}, {p0:axs.color.BLACK_YCC, p1:axs.color.BLUE_YCC, p2:axs.color.RED_YCC}];
axs.color.YCC_CUBE_FACES_WHITE = [{p0:axs.color.WHITE_YCC, p1:axs.color.CYAN_YCC, p2:axs.color.MAGENTA_YCC}, {p0:axs.color.WHITE_YCC, p1:axs.color.MAGENTA_YCC, p2:axs.color.YELLOW_YCC}, {p0:axs.color.WHITE_YCC, p1:axs.color.YELLOW_YCC, p2:axs.color.CYAN_YCC}];
axs.dom = {};
axs.dom.parentElement = function(a) {
if (!a) {
return null;
}
a = axs.dom.composedParentNode(a);
if (!a) {
return null;
}
switch(a.nodeType) {
case Node.ELEMENT_NODE:
return a;
default:
return axs.dom.parentElement(a);
}
};
axs.dom.shadowHost = function(a) {
return "host" in a ? a.host : null;
};
axs.dom.composedParentNode = function(a) {
if (!a) {
return null;
}
if (a.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {
return axs.dom.shadowHost(a);
}
var b = a.parentNode;
if (!b) {
return null;
}
if (b.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {
return axs.dom.shadowHost(b);
}
if (!b.shadowRoot) {
return b;
}
a = a.getDestinationInsertionPoints();
return 0 < a.length ? axs.dom.composedParentNode(a[a.length - 1]) : null;
};
axs.dom.asElement = function(a) {
switch(a.nodeType) {
case Node.COMMENT_NODE:
break;
case Node.ELEMENT_NODE:
if ("script" == a.localName || "template" == a.localName) {
break;
}
return a;
case Node.DOCUMENT_FRAGMENT_NODE:
return a.host;
case Node.TEXT_NODE:
return axs.dom.parentElement(a);
default:
console.warn("Unhandled node type: ", a.nodeType);
}
return null;
};
axs.dom.composedTreeSearch = function(a, b, c, d, e) {
if (a === b) {
return !0;
}
if (a.nodeType == Node.ELEMENT_NODE) {
var f = a
}
var g = !1;
d = Object.create(d);
if (f) {
var h = f.localName;
d.collectIdRefs && (d.idrefs = axs.utils.getReferencedIds(f));
if (!d.disabled || "legend" === h && axs.browserUtils.matchSelector(f, "fieldset>legend:first-of-type")) {
d.disabled = axs.utils.isElementDisabled(f, !0);
}
d.hidden || (d.hidden = axs.utils.isElementHidden(f));
if (c.preorder && !c.preorder(f, d)) {
return g;
}
var k = f.shadowRoot || f.webkitShadowRoot;
if (k) {
return d.level++, g = axs.dom.composedTreeSearch(k, b, c, d, k), f && c.postorder && !g && c.postorder(f, d), g;
}
if ("content" == h) {
a = f.getDistributedNodes();
for (h = 0;h < a.length && !g;h++) {
g = axs.dom.composedTreeSearch(a[h], b, c, d, e);
}
c.postorder && !g && c.postorder.call(null, f, d);
return g;
}
}
for (a = a.firstChild;null != a && !g;) {
g = axs.dom.composedTreeSearch(a, b, c, d, e), a = a.nextSibling;
}
f && c.postorder && !g && c.postorder.call(null, f, d);
return g;
};
axs.utils = {};
axs.utils.FOCUSABLE_ELEMENTS_SELECTOR = "input:not([type=hidden]):not([disabled]),select:not([disabled]),textarea:not([disabled]),button:not([disabled]),a[href],iframe,[tabindex]";
axs.utils.LABELABLE_ELEMENTS_SELECTOR = "button,input:not([type=hidden]),keygen,meter,output,progress,select,textarea";
axs.utils.elementIsTransparent = function(a) {
return "0" == a.style.opacity;
};
axs.utils.elementHasZeroArea = function(a) {
a = a.getBoundingClientRect();
var b = a.top - a.bottom;
return a.right - a.left && b ? !1 : !0;
};
axs.utils.elementIsOutsideScrollArea = function(a) {
for (var b = axs.dom.parentElement(a), c = a.ownerDocument.defaultView;b != c.document.body;) {
if (axs.utils.isClippedBy(a, b)) {
return !0;
}
if (axs.utils.canScrollTo(a, b) && !axs.utils.elementIsOutsideScrollArea(b)) {
return !1;
}
b = axs.dom.parentElement(b);
}
return !axs.utils.canScrollTo(a, c.document.body);
};
axs.utils.canScrollTo = function(a, b) {
var c = a.getBoundingClientRect(), d = b.getBoundingClientRect();
if (b == b.ownerDocument.body) {
var e = d.top, f = d.left
} else {
e = d.top - b.scrollTop, f = d.left - b.scrollLeft;
}
var g = e + b.scrollHeight, h = f + b.scrollWidth;
if (c.right < f || c.bottom < e || c.left > h || c.top > g) {
return !1;
}
e = a.ownerDocument.defaultView;
f = e.getComputedStyle(b);
return c.left > d.right || c.top > d.bottom ? "scroll" == f.overflow || "auto" == f.overflow || b instanceof e.HTMLBodyElement : !0;
};
axs.utils.isClippedBy = function(a, b) {
var c = a.getBoundingClientRect(), d = b.getBoundingClientRect(), e = d.top - b.scrollTop, f = d.left - b.scrollLeft, g = a.ownerDocument.defaultView.getComputedStyle(b);
return (c.right < d.left || c.bottom < d.top || c.left > d.right || c.top > d.bottom) && "hidden" == g.overflow ? !0 : c.right < f || c.bottom < e ? "visible" != g.overflow : !1;
};
axs.utils.isAncestor = function(a, b) {
if (null == b) {
return !1;
}
if (b === a) {
return !0;
}
var c = axs.dom.composedParentNode(b);
return axs.utils.isAncestor(a, c);
};
axs.utils.overlappingElements = function(a) {
if (axs.utils.elementHasZeroArea(a)) {
return null;
}
for (var b = [], c = a.getClientRects(), d = 0;d < c.length;d++) {
var e = c[d], e = document.elementFromPoint((e.left + e.right) / 2, (e.top + e.bottom) / 2);
if (null != e && e != a && !axs.utils.isAncestor(e, a) && !axs.utils.isAncestor(a, e)) {
var f = window.getComputedStyle(e, null);
f && (f = axs.utils.getBgColor(f, e)) && 0 < f.alpha && 0 > b.indexOf(e) && b.push(e);
}
}
return b;
};
axs.utils.elementIsHtmlControl = function(a) {
var b = a.ownerDocument.defaultView;
return a instanceof b.HTMLButtonElement || a instanceof b.HTMLInputElement || a instanceof b.HTMLSelectElement || a instanceof b.HTMLTextAreaElement ? !0 : !1;
};
axs.utils.elementIsAriaWidget = function(a) {
return a.hasAttribute("role") && (a = a.getAttribute("role")) && (a = axs.constants.ARIA_ROLES[a]) && "widget" in a.allParentRolesSet ? !0 : !1;
};
axs.utils.elementIsVisible = function(a) {
return axs.utils.elementIsTransparent(a) || axs.utils.elementHasZeroArea(a) || axs.utils.elementIsOutsideScrollArea(a) || axs.utils.overlappingElements(a).length ? !1 : !0;
};
axs.utils.isLargeFont = function(a) {
var b = a.fontSize;
a = "bold" == a.fontWeight;
var c = b.match(/(\d+)px/);
if (c) {
b = parseInt(c[1], 10);
if (c = window.getComputedStyle(document.body, null).fontSize.match(/(\d+)px/)) {
var d = parseInt(c[1], 10), c = 1.2 * d, d = 1.5 * d
} else {
c = 19.2, d = 24;
}
return a && b >= c || b >= d;
}
if (c = b.match(/(\d+)em/)) {
return b = parseInt(c[1], 10), a && 1.2 <= b || 1.5 <= b ? !0 : !1;
}
if (c = b.match(/(\d+)%/)) {
return b = parseInt(c[1], 10), a && 120 <= b || 150 <= b ? !0 : !1;
}
if (c = b.match(/(\d+)pt/)) {
if (b = parseInt(c[1], 10), a && 14 <= b || 18 <= b) {
return !0;
}
}
return !1;
};
axs.utils.getBgColor = function(a, b) {
var c = axs.color.parseColor(a.backgroundColor);
if (!c) {
return null;
}
1 > a.opacity && (c.alpha *= a.opacity);
if (1 > c.alpha) {
var d = axs.utils.getParentBgColor(b);
if (null == d) {
return null;
}
c = axs.color.flattenColors(c, d);
}
return c;
};
axs.utils.getParentBgColor = function(a) {
var b = a;
a = [];
for (var c = null;b = axs.dom.parentElement(b);) {
var d = window.getComputedStyle(b, null);
if (d) {
var e = axs.color.parseColor(d.backgroundColor);
if (e && (1 > d.opacity && (e.alpha *= d.opacity), 0 != e.alpha && (a.push(e), 1 == e.alpha))) {
c = !0;
break;
}
}
}
c || a.push(new axs.color.Color(255, 255, 255, 1));
for (b = a.pop();a.length;) {
c = a.pop(), b = axs.color.flattenColors(c, b);
}
return b;
};
axs.utils.getFgColor = function(a, b, c) {
var d = axs.color.parseColor(a.color);
if (!d) {
return null;
}
1 > d.alpha && (d = axs.color.flattenColors(d, c));
1 > a.opacity && (b = axs.utils.getParentBgColor(b), d.alpha *= a.opacity, d = axs.color.flattenColors(d, b));
return d;
};
axs.utils.getContrastRatioForElement = function(a) {
var b = window.getComputedStyle(a, null);
return axs.utils.getContrastRatioForElementWithComputedStyle(b, a);
};
axs.utils.getContrastRatioForElementWithComputedStyle = function(a, b) {
if (axs.utils.isElementHidden(b)) {
return null;
}
var c = axs.utils.getBgColor(a, b);
if (!c) {
return null;
}
var d = axs.utils.getFgColor(a, b, c);
return d ? axs.color.calculateContrastRatio(d, c) : null;
};
axs.utils.isNativeTextElement = function(a) {
var b = a.tagName.toLowerCase();
a = a.type ? a.type.toLowerCase() : "";
if ("textarea" == b) {
return !0;
}
if ("input" != b) {
return !1;
}
switch(a) {
case "email":
;
case "number":
;
case "password":
;
case "search":
;
case "text":
;
case "tel":
;
case "url":
;
case "":
return !0;
default:
return !1;
}
};
axs.utils.isLowContrast = function(a, b, c) {
a = Math.round(10 * a) / 10;
return c ? 4.5 > a || !axs.utils.isLargeFont(b) && 7 > a : 3 > a || !axs.utils.isLargeFont(b) && 4.5 > a;
};
axs.utils.hasLabel = function(a) {
var b = a.tagName.toLowerCase(), c = a.type ? a.type.toLowerCase() : "";
if (a.hasAttribute("aria-label") || a.hasAttribute("title") || "img" == b && a.hasAttribute("alt") || "input" == b && "image" == c && a.hasAttribute("alt") || "input" == b && ("submit" == c || "reset" == c) || a.hasAttribute("aria-labelledby") || a.hasAttribute("id") && 0 < document.querySelectorAll('label[for="' + a.id + '"]').length) {
return !0;
}
for (b = axs.dom.parentElement(a);b;) {
if ("label" == b.tagName.toLowerCase() && b.control == a) {
return !0;
}
b = axs.dom.parentElement(b);
}
return !1;
};
axs.utils.isNativelyDisableable = function(a) {
return a.tagName.toUpperCase() in axs.constants.NATIVELY_DISABLEABLE;
};
axs.utils.isElementDisabled = function(a, b) {
if (axs.browserUtils.matchSelector(a, b ? "[aria-disabled=true]" : "[aria-disabled=true], [aria-disabled=true] *")) {
return !0;
}
if (!axs.utils.isNativelyDisableable(a) || axs.browserUtils.matchSelector(a, "fieldset>legend:first-of-type *")) {
return !1;
}
for (var c = a;null !== c;c = axs.dom.parentElement(c)) {
if (c.hasAttribute("disabled")) {
return !0;
}
if (b) {
break;
}
}
return !1;
};
axs.utils.isElementHidden = function(a) {
if (!(a instanceof a.ownerDocument.defaultView.HTMLElement)) {
return !1;
}
if (a.hasAttribute("chromevoxignoreariahidden")) {
var b = !0
}
var c = window.getComputedStyle(a, null);
return "none" == c.display || "hidden" == c.visibility ? !0 : a.hasAttribute("aria-hidden") && "true" == a.getAttribute("aria-hidden").toLowerCase() ? !b : !1;
};
axs.utils.isElementOrAncestorHidden = function(a) {
return axs.utils.isElementHidden(a) ? !0 : axs.dom.parentElement(a) ? axs.utils.isElementOrAncestorHidden(axs.dom.parentElement(a)) : !1;
};
axs.utils.isInlineElement = function(a) {
a = a.tagName.toUpperCase();
return axs.constants.InlineElements[a];
};
axs.utils.getRoles = function(a, b) {
if (!a || a.nodeType !== Node.ELEMENT_NODE || !a.hasAttribute("role") && !b) {
return null;
}
var c = a.getAttribute("role");
!c && b && (c = axs.properties.getImplicitRole(a));
if (!c) {
return null;
}
for (var c = c.split(" "), d = {roles:[], valid:!1}, e = 0;e < c.length;e++) {
var f = c[e], g = axs.constants.ARIA_ROLES[f], f = {name:f};
g && !g["abstract"] ? (f.details = g, d.applied || (d.applied = f), f.valid = d.valid = !0) : f.valid = !1;
d.roles.push(f);
}
return d;
};
axs.utils.getAriaPropertyValue = function(a, b, c) {
var d = a.replace(/^aria-/, ""), e = axs.constants.ARIA_PROPERTIES[d], d = {name:a, rawValue:b};
if (!e) {
return d.valid = !1, d.reason = '"' + a + '" is not a valid ARIA property', d;
}
e = e.valueType;
if (!e) {
return d.valid = !1, d.reason = '"' + a + '" is not a valid ARIA property', d;
}
switch(e) {
case "idref":
a = axs.utils.isValidIDRefValue(b, c), d.valid = a.valid, d.reason = a.reason, d.idref = a.idref;
case "idref_list":
a = b.split(/\s+/);
d.valid = !0;
for (b = 0;b < a.length;b++) {
e = axs.utils.isValidIDRefValue(a[b], c), e.valid || (d.valid = !1), d.values ? d.values.push(e) : d.values = [e];
}
return d;
case "integer":
c = axs.utils.isValidNumber(b);
if (!c.valid) {
return d.valid = !1, d.reason = c.reason, d;
}
Math.floor(c.value) !== c.value ? (d.valid = !1, d.reason = "" + b + " is not a whole integer") : (d.valid = !0, d.value = c.value);
return d;
case "decimal":
;
case "number":
c = axs.utils.isValidNumber(b);
d.valid = c.valid;
if (!c.valid) {
return d.reason = c.reason, d;
}
d.value = c.value;
return d;
case "string":
return d.valid = !0, d.value = b, d;
case "token":
return c = axs.utils.isValidTokenValue(a, b.toLowerCase()), c.valid ? (d.valid = !0, d.value = c.value) : (d.valid = !1, d.value = b, d.reason = c.reason), d;
case "token_list":
e = b.split(/\s+/);
d.valid = !0;
for (b = 0;b < e.length;b++) {
c = axs.utils.isValidTokenValue(a, e[b].toLowerCase()), c.valid || (d.valid = !1, d.reason ? (d.reason = [d.reason], d.reason.push(c.reason)) : (d.reason = c.reason, d.possibleValues = c.possibleValues)), d.values ? d.values.push(c.value) : d.values = [c.value];
}
return d;
case "tristate":
return c = axs.utils.isPossibleValue(b.toLowerCase(), axs.constants.MIXED_VALUES, a), c.valid ? (d.valid = !0, d.value = c.value) : (d.valid = !1, d.value = b, d.reason = c.reason), d;
case "boolean":
return c = axs.utils.isValidBoolean(b), c.valid ? (d.valid = !0, d.value = c.value) : (d.valid = !1, d.value = b, d.reason = c.reason), d;
}
d.valid = !1;
d.reason = "Not a valid ARIA property";
return d;
};
axs.utils.isValidTokenValue = function(a, b) {
var c = a.replace(/^aria-/, "");
return axs.utils.isPossibleValue(b, axs.constants.ARIA_PROPERTIES[c].valuesSet, a);
};
axs.utils.isPossibleValue = function(a, b, c) {
return b[a] ? {valid:!0, value:a} : {valid:!1, value:a, reason:'"' + a + '" is not a valid value for ' + c, possibleValues:Object.keys(b)};
};
axs.utils.isValidBoolean = function(a) {
try {
var b = JSON.parse(a);
} catch (c) {
b = "";
}
return "boolean" != typeof b ? {valid:!1, value:a, reason:'"' + a + '" is not a true/false value'} : {valid:!0, value:b};
};
axs.utils.isValidIDRefValue = function(a, b) {
return 0 == a.length ? {valid:!0, idref:a} : b.ownerDocument.getElementById(a) ? {valid:!0, idref:a} : {valid:!1, idref:a, reason:'No element with ID "' + a + '"'};
};
axs.utils.isValidNumber = function(a) {
var b = {valid:!1, value:a, reason:'"' + a + '" is not a number'};
if (!a) {
return b;
}
if (/^0x/i.test(a)) {
return b.reason = '"' + a + '" is not a decimal number', b;
}
a *= 1;
return isFinite(a) ? {valid:!0, value:a} : b;
};
axs.utils.isElementImplicitlyFocusable = function(a) {
var b = a.ownerDocument.defaultView;
return a instanceof b.HTMLAnchorElement || a instanceof b.HTMLAreaElement ? a.hasAttribute("href") : a instanceof b.HTMLInputElement || a instanceof b.HTMLSelectElement || a instanceof b.HTMLTextAreaElement || a instanceof b.HTMLButtonElement || a instanceof b.HTMLIFrameElement ? !a.disabled : !1;
};
axs.utils.values = function(a) {
var b = [], c;
for (c in a) {
a.hasOwnProperty(c) && "function" != typeof a[c] && b.push(a[c]);
}
return b;
};
axs.utils.namedValues = function(a) {
var b = {}, c;
for (c in a) {
a.hasOwnProperty(c) && "function" != typeof a[c] && (b[c] = a[c]);
}
return b;
};
function escapeId(a) {
return a.replace(/[^a-zA-Z0-9_-]/g, function(a) {
return "\\" + a;
});
}
axs.utils.getQuerySelectorText = function(a) {
if (null == a || "HTML" == a.tagName) {
return "html";
}
if ("BODY" == a.tagName) {
return "body";
}
if (a.hasAttribute) {
if (a.id) {
return "#" + escapeId(a.id);
}
if (a.className) {
for (var b = "", c = 0;c < a.classList.length;c++) {
b += "." + a.classList[c];
}
var d = 0;
if (a.parentNode) {
for (c = 0;c < a.parentNode.children.length;c++) {
var e = a.parentNode.children[c];
axs.browserUtils.matchSelector(e, b) && d++;
if (e === a) {
break;
}
}
} else {
d = 1;
}
if (1 == d) {
return axs.utils.getQuerySelectorText(a.parentNode) + " > " + b;
}
}
if (a.parentNode) {
b = a.parentNode.children;
d = 1;
for (c = 0;b[c] !== a;) {
b[c].tagName == a.tagName && d++, c++;
}
c = "";
"BODY" != a.parentNode.tagName && (c = axs.utils.getQuerySelectorText(a.parentNode) + " > ");
return 1 == d ? c + a.tagName : c + a.tagName + ":nth-of-type(" + d + ")";
}
} else {
if (a.selectorText) {
return a.selectorText;
}
}
return "";
};
axs.utils.getAriaIdReferrers = function(a, b) {
var c = function(a) {
var b = axs.constants.ARIA_PROPERTIES[a];
if (b) {
if ("idref" === b.valueType) {
return "[aria-" + a + "='" + d + "']";
}
if ("idref_list" === b.valueType) {
return "[aria-" + a + "~='" + d + "']";
}
}
return "";
};
if (!a) {
return null;
}
var d = a.id;
if (!d) {
return null;
}
d = d.replace(/'/g, "\\'");
if (b) {
var e = b.replace(/^aria-/, ""), f = c(e);
if (f) {
return a.ownerDocument.querySelectorAll(f);
}
} else {
var g = [];
for (e in axs.constants.ARIA_PROPERTIES) {
(f = c(e)) && g.push(f);
}
return a.ownerDocument.querySelectorAll(g.join(","));
}
return null;
};
axs.utils.getHtmlIdReferrers = function(a) {
if (!a) {
return null;
}
var b = a.id;
if (!b) {
return null;
}
var b = b.replace(/'/g, "\\'"), c = "[contextmenu='{id}'] [itemref~='{id}'] button[form='{id}'] button[menu='{id}'] fieldset[form='{id}'] input[form='{id}'] input[list='{id}'] keygen[form='{id}'] label[for='{id}'] label[form='{id}'] menuitem[command='{id}'] object[form='{id}'] output[for~='{id}'] output[form='{id}'] select[form='{id}'] td[headers~='{id}'] textarea[form='{id}'] tr[headers~='{id}']".split(" ").map(function(a) {
return a.replace("{id}", b);
});
return a.ownerDocument.querySelectorAll(c.join(","));
};
axs.utils.getReferencedIds = function(a) {
for (var b = [], c = function(a) {
a && (0 < a.indexOf(" ") ? b = b.concat(f.value.split(" ")) : b.push(a));
}, d = 0;d < a.attributes.length;d++) {
var e = a.tagName.toLowerCase(), f = a.attributes[d];
if (f.specified) {
var g = f.name, h = g.match(/aria-(.+)/);
if (h) {
e = axs.constants.ARIA_PROPERTIES[h[1]], !e || "idref" !== e.valueType && "idref_list" !== e.valueType || c(f.value);
} else {
switch(g) {
case "contextmenu":
;
case "itemref":
c(f.value);
break;
case "form":
"button" != e && "fieldset" != e && "input" != e && "keygen" != e && "label" != e && "object" != e && "output" != e && "select" != e && "textarea" != e || c(f.value);
break;
case "for":
"label" != e && "output" != e || c(f.value);
break;
case "menu":
"button" == e && c(f.value);
break;
case "list":
"input" == e && c(f.value);
break;
case "command":
"menuitem" == e && c(f.value);
break;
case "headers":
"td" != e && "tr" != e || c(f.value);
}
}
}
}
return b;
};
axs.utils.getIdReferrers = function(a) {
var b = [], c = axs.utils.getHtmlIdReferrers(a);
c && (b = b.concat(Array.prototype.slice.call(c)));
(c = axs.utils.getAriaIdReferrers(a)) && (b = b.concat(Array.prototype.slice.call(c)));
return b;
};
axs.utils.getIdReferents = function(a, b) {
var c = [], d = a.replace(/^aria-/, ""), d = axs.constants.ARIA_PROPERTIES[d];
if (!d || !b.hasAttribute(a)) {
return c;
}
d = d.valueType;
if ("idref_list" === d || "idref" === d) {
for (var d = b.ownerDocument, e = b.getAttribute(a), e = e.split(/\s+/), f = 0, g = e.length;f < g;f++) {
var h = d.getElementById(e[f]);
h && (c[c.length] = h);
}
}
return c;
};
axs.utils.getAriaPropertiesByValueType = function(a) {
var b = {}, c;
for (c in axs.constants.ARIA_PROPERTIES) {
var d = axs.constants.ARIA_PROPERTIES[c];
d && 0 <= a.indexOf(d.valueType) && (b[c] = d);
}
return b;
};
axs.utils.getSelectorForAriaProperties = function(a) {
a = Object.keys(a).map(function(a) {
return "[aria-" + a + "]";
});
a.sort();
return a.join(",");
};
axs.utils.findDescendantsWithRole = function(a, b) {
if (!a || !b) {
return [];
}
var c = axs.properties.getSelectorForRole(b);
if (c && (c = a.querySelectorAll(c))) {
c = Array.prototype.map.call(c, function(a) {
return a;
});
} else {
return [];
}
return c;
};
axs.properties = {};
axs.properties.TEXT_CONTENT_XPATH = './/text()[normalize-space(.)!=""]/parent::*[name()!="script"]';
axs.properties.getFocusProperties = function(a) {
var b = {}, c = a.getAttribute("tabindex");
void 0 != c ? b.tabindex = {value:c, valid:!0} : axs.utils.isElementImplicitlyFocusable(a) && (b.implicitlyFocusable = {value:!0, valid:!0});
if (0 == Object.keys(b).length) {
return null;
}
var d = axs.utils.elementIsTransparent(a), e = axs.utils.elementHasZeroArea(a), f = axs.utils.elementIsOutsideScrollArea(a), g = axs.utils.overlappingElements(a);
if (d || e || f || 0 < g.length) {
var c = axs.utils.isElementOrAncestorHidden(a), h = {value:!1, valid:c};
d && (h.transparent = !0);
e && (h.zeroArea = !0);
f && (h.outsideScrollArea = !0);
g && 0 < g.length && (h.overlappingElements = g);
d = {value:c, valid:c};
c && (d.reason = axs.properties.getHiddenReason(a));
h.hidden = d;
b.visible = h;
} else {
b.visible = {value:!0, valid:!0};
}
return b;
};
axs.properties.getHiddenReason = function(a) {
if (!(a && a instanceof a.ownerDocument.defaultView.HTMLElement)) {
return null;
}
if (a.hasAttribute("chromevoxignoreariahidden")) {
var b = !0
}
var c = window.getComputedStyle(a, null);
return "none" == c.display ? {property:"display: none", on:a} : "hidden" == c.visibility ? {property:"visibility: hidden", on:a} : a.hasAttribute("aria-hidden") && "true" == a.getAttribute("aria-hidden").toLowerCase() && !b ? {property:"aria-hidden", on:a} : axs.properties.getHiddenReason(axs.dom.parentElement(a));
};
axs.properties.getColorProperties = function(a) {
var b = {};
(a = axs.properties.getContrastRatioProperties(a)) && (b.contrastRatio = a);
return 0 == Object.keys(b).length ? null : b;
};
axs.properties.hasDirectTextDescendant = function(a) {
function b() {
for (var b = c.evaluate(axs.properties.TEXT_CONTENT_XPATH, a, null, XPathResult.ANY_TYPE, null), e = b.iterateNext();null != e;e = b.iterateNext()) {
if (e === a) {
return !0;
}
}
return !1;
}
var c;
c = a.nodeType == Node.DOCUMENT_NODE ? a : a.ownerDocument;
return c.evaluate ? b() : function() {
for (var b = c.createTreeWalker(a, NodeFilter.SHOW_TEXT, null, !1);b.nextNode();) {
var e = b.currentNode, f = e.parentNode.tagName.toLowerCase();
if (e.nodeValue.trim() && "script" !== f && a !== e) {
return !0;
}
}
return !1;
}();
};
axs.properties.getContrastRatioProperties = function(a) {
if (!axs.properties.hasDirectTextDescendant(a)) {
return null;
}
var b = {}, c = window.getComputedStyle(a, null), d = axs.utils.getBgColor(c, a);
if (!d) {
return null;
}
b.backgroundColor = axs.color.colorToString(d);
var e = axs.utils.getFgColor(c, a, d);
b.foregroundColor = axs.color.colorToString(e);
a = axs.utils.getContrastRatioForElementWithComputedStyle(c, a);
if (!a) {
return null;
}
b.value = a.toFixed(2);
axs.utils.isLowContrast(a, c) && (b.alert = !0);
var f = axs.utils.isLargeFont(c) ? 3 : 4.5, c = axs.utils.isLargeFont(c) ? 4.5 : 7, g = {};
f > a && (g.AA = f);
c > a && (g.AAA = c);
if (!Object.keys(g).length) {
return b;
}
(d = axs.color.suggestColors(d, e, g)) && Object.keys(d).length && (b.suggestedColors = d);
return b;
};
axs.properties.findTextAlternatives = function(a, b, c, d) {
var e = c || !1;
c = axs.dom.asElement(a);
if (!c || !d && axs.utils.isElementOrAncestorHidden(c)) {
return null;
}
if (a.nodeType == Node.TEXT_NODE) {
return c = {type:"text"}, c.text = a.textContent, c.lastWord = axs.properties.getLastWord(c.text), b.content = c, a.textContent;
}
a = null;
e || (a = axs.properties.getTextFromAriaLabelledby(c, b));
if (c.hasAttribute("aria-label")) {
var f = {type:"text"};
f.text = c.getAttribute("aria-label");
f.lastWord = axs.properties.getLastWord(f.text);
a ? f.unused = !0 : e && axs.utils.elementIsHtmlControl(c) || (a = f.text);
b.ariaLabel = f;
}
c.hasAttribute("role") && "presentation" == c.getAttribute("role") || (a = axs.properties.getTextFromHostLanguageAttributes(c, b, a, e));
e && axs.utils.elementIsHtmlControl(c) && (f = c.ownerDocument.defaultView, c instanceof f.HTMLInputElement && ("text" == c.type && c.value && 0 < c.value.length && (b.controlValue = {text:c.value}), "range" == c.type && (b.controlValue = {text:c.value})), c instanceof f.HTMLSelectElement && (b.controlValue = {text:c.value}), b.controlValue && (f = b.controlValue, a ? f.unused = !0 : a = f.text));
if (e && axs.utils.elementIsAriaWidget(c)) {
e = c.getAttribute("role");
"textbox" == e && c.textContent && 0 < c.textContent.length && (b.controlValue = {text:c.textContent});
if ("slider" == e || "spinbutton" == e) {
c.hasAttribute("aria-valuetext") ? b.controlValue = {text:c.getAttribute("aria-valuetext")} : c.hasAttribute("aria-valuenow") && (b.controlValue = {value:c.getAttribute("aria-valuenow"), text:"" + c.getAttribute("aria-valuenow")});
}
if ("menu" == e) {
for (var g = c.querySelectorAll("[role=menuitemcheckbox], [role=menuitemradio]"), f = [], h = 0;h < g.length;h++) {
"true" == g[h].getAttribute("aria-checked") && f.push(g[h]);
}
if (0 < f.length) {
g = "";
for (h = 0;h < f.length;h++) {
g += axs.properties.findTextAlternatives(f[h], {}, !0), h < f.length - 1 && (g += ", ");
}
b.controlValue = {text:g};
}
}
if ("combobox" == e || "select" == e) {
b.controlValue = {text:"TODO"};
}
b.controlValue && (f = b.controlValue, a ? f.unused = !0 : a = f.text);
}
f = !0;
c.hasAttribute("role") && (e = c.getAttribute("role"), (e = axs.constants.ARIA_ROLES[e]) && (!e.namefrom || 0 > e.namefrom.indexOf("contents")) && (f = !1));
(d = axs.properties.getTextFromDescendantContent(c, d)) && f && (e = {type:"text"}, e.text = d, e.lastWord = axs.properties.getLastWord(e.text), a ? e.unused = !0 : a = d, b.content = e);
c.hasAttribute("title") && (d = {type:"string", valid:!0}, d.text = c.getAttribute("title"), d.lastWord = axs.properties.getLastWord(d.lastWord), a ? d.unused = !0 : a = d.text, b.title = d);
return 0 == Object.keys(b).length && null == a ? null : a;
};
axs.properties.getTextFromDescendantContent = function(a, b) {
for (var c = a.childNodes, d = [], e = 0;e < c.length;e++) {
var f = axs.properties.findTextAlternatives(c[e], {}, !0, b);
f && d.push(f.trim());
}
if (d.length) {
c = "";
for (e = 0;e < d.length;e++) {
c = [c, d[e]].join(" ").trim();
}
return c;
}
return null;
};
axs.properties.getTextFromAriaLabelledby = function(a, b) {
var c = null;
if (!a.hasAttribute("aria-labelledby")) {
return c;
}
for (var d = a.getAttribute("aria-labelledby").split(/\s+/), e = {valid:!0}, f = [], g = [], h = 0;h < d.length;h++) {
var k = {type:"element"}, m = d[h];
k.value = m;
var l = document.getElementById(m);
l ? (k.valid = !0, k.text = axs.properties.findTextAlternatives(l, {}, !0, !0), k.lastWord = axs.properties.getLastWord(k.text), f.push(k.text), k.element = l) : (k.valid = !1, e.valid = !1, k.errorMessage = {messageKey:"noElementWithId", args:[m]});
g.push(k);
}
0 < g.length && (g[g.length - 1].last = !0, e.values = g, e.text = f.join(" "), e.lastWord = axs.properties.getLastWord(e.text), c = e.text, b.ariaLabelledby = e);
return c;
};
axs.properties.getTextFromHostLanguageAttributes = function(a, b, c, d) {
if (axs.browserUtils.matchSelector(a, "img") && a.hasAttribute("alt")) {
var e = {type:"string", valid:!0};
e.text = a.getAttribute("alt");
c ? e.unused = !0 : c = e.text;
b.alt = e;
}
if (axs.browserUtils.matchSelector(a, 'input:not([type="hidden"]):not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), video:not([disabled])') && !d) {
if (a.hasAttribute("id")) {
d = document.querySelectorAll('label[for="' + a.id + '"]');
for (var e = {}, f = [], g = [], h = 0;h < d.length;h++) {
var k = {type:"element"}, m = d[h], l = axs.properties.findTextAlternatives(m, {}, !0);
l && 0 < l.trim().length && (k.text = l.trim(), g.push(l.trim()));
k.element = m;
f.push(k);
}
0 < f.length && (f[f.length - 1].last = !0, e.values = f, e.text = g.join(" "), e.lastWord = axs.properties.getLastWord(e.text), c ? e.unused = !0 : c = e.text, b.labelFor = e);
}
d = axs.dom.parentElement(a);
for (e = {};d;) {
if ("label" == d.tagName.toLowerCase() && (f = d, f.control == a)) {
e.type = "element";
e.text = axs.properties.findTextAlternatives(f, {}, !0);
e.lastWord = axs.properties.getLastWord(e.text);
e.element = f;
break;
}
d = axs.dom.parentElement(d);
}
e.text && (c ? e.unused = !0 : c = e.text, b.labelWrapped = e);
axs.browserUtils.matchSelector(a, 'input[type="image"]') && a.hasAttribute("alt") && (e = {type:"string", valid:!0}, e.text = a.getAttribute("alt"), c ? e.unused = !0 : c = e.text, b.alt = e);
Object.keys(b).length || (b.noLabel = !0);
}
return c;
};
axs.properties.getLastWord = function(a) {
if (!a) {
return null;
}
var b = a.lastIndexOf(" ") + 1, c = a.length - 10;
return a.substring(b > c ? b : c);
};
axs.properties.getTextProperties = function(a) {
var b = {}, c = axs.properties.findTextAlternatives(a, b, !1, !0);
if (0 == Object.keys(b).length && ((a = axs.dom.asElement(a)) && axs.browserUtils.matchSelector(a, "img") && (b.alt = {valid:!1, errorMessage:"No alt value provided"}, a = a.src, "string" == typeof a && (c = a.split("/").pop(), b.filename = {text:c})), !c)) {
return null;
}
b.hasProperties = !!Object.keys(b).length;
b.computedText = c;
b.lastWord = axs.properties.getLastWord(c);
return b;
};
axs.properties.getAriaProperties = function(a) {
var b = {}, c = axs.properties.getGlobalAriaProperties(a), d;
for (d in axs.constants.ARIA_PROPERTIES) {
var e = "aria-" + d;
if (a.hasAttribute(e)) {
var f = a.getAttribute(e);
c[e] = axs.utils.getAriaPropertyValue(e, f, a);
}
}
0 < Object.keys(c).length && (b.properties = axs.utils.values(c));
f = axs.utils.getRoles(a);
if (!f) {
return Object.keys(b).length ? b : null;
}
b.roles = f;
if (!f.valid || !f.roles) {
return b;
}
for (var e = f.roles, g = 0;g < e.length;g++) {
var h = e[g];
if (h.details && h.details.propertiesSet) {
for (d in h.details.propertiesSet) {
d in c || (a.hasAttribute(d) ? (f = a.getAttribute(d), c[d] = axs.utils.getAriaPropertyValue(d, f, a), "values" in c[d] && (f = c[d].values, f[f.length - 1].isLast = !0)) : h.details.requiredPropertiesSet[d] && (c[d] = {name:d, valid:!1, reason:"Required property not set"}));
}
}
}
0 < Object.keys(c).length && (b.properties = axs.utils.values(c));
return 0 < Object.keys(b).length ? b : null;
};
axs.properties.getGlobalAriaProperties = function(a) {
var b = {}, c;
for (c in axs.constants.GLOBAL_PROPERTIES) {
if (a.hasAttribute(c)) {
var d = a.getAttribute(c);
b[c] = axs.utils.getAriaPropertyValue(c, d, a);
}
}
return b;
};
axs.properties.getVideoProperties = function(a) {
if (!axs.browserUtils.matchSelector(a, "video")) {
return null;
}
var b = {};
b.captionTracks = axs.properties.getTrackElements(a, "captions");
b.descriptionTracks = axs.properties.getTrackElements(a, "descriptions");
b.chapterTracks = axs.properties.getTrackElements(a, "chapters");
return b;
};
axs.properties.getTrackElements = function(a, b) {
var c = a.querySelectorAll("track[kind=" + b + "]"), d = {};
if (!c.length) {
return d.valid = !1, d.reason = {messageKey:"noTracksProvided", args:[[b]]}, d;
}
d.valid = !0;
for (var e = [], f = 0;f < c.length;f++) {
var g = {}, h = c[f].getAttribute("src"), k = c[f].getAttribute("srcLang"), m = c[f].getAttribute("label");
h ? (g.valid = !0, g.src = h) : (g.valid = !1, g.reason = {messageKey:"noSrcProvided"});
h = "";
m && (h += m, k && (h += " "));
k && (h += "(" + k + ")");
"" == h && (h = "[[object Object]]");
g.name = h;
e.push(g);
}
d.values = e;
return d;
};
axs.properties.getAllProperties = function(a) {
var b = axs.dom.asElement(a);
if (!b) {
return {};
}
var c = {};
c.ariaProperties = axs.properties.getAriaProperties(b);
c.colorProperties = axs.properties.getColorProperties(b);
c.focusProperties = axs.properties.getFocusProperties(b);
c.textProperties = axs.properties.getTextProperties(a);
c.videoProperties = axs.properties.getVideoProperties(b);
return c;
};
(function() {
function a(a) {
if (!a) {
return null;
}
var c = a.tagName;
if (!c) {
return null;
}
c = c.toUpperCase();
c = axs.constants.TAG_TO_IMPLICIT_SEMANTIC_INFO[c];
if (!c || !c.length) {
return null;
}
for (var d = null, e = 0, f = c.length;e < f;e++) {
var g = c[e];
if (g.selector) {
if (axs.browserUtils.matchSelector(a, g.selector)) {
return g;
}
} else {
d = g;
}
}
return d;
}
axs.properties.getImplicitRole = function(b) {
return (b = a(b)) ? b.role : "";
};
axs.properties.canTakeAriaAttributes = function(b) {
return (b = a(b)) ? !b.reserved : !0;
};
})();
axs.properties.getNativelySupportedAttributes = function(a) {
var b = [];
if (!a) {
return b;
}
a = a.cloneNode(!1);
for (var c = Object.keys(axs.constants.ARIA_TO_HTML_ATTRIBUTE), d = 0;d < c.length;d++) {
var e = c[d];
axs.constants.ARIA_TO_HTML_ATTRIBUTE[e] in a && (b[b.length] = e);
}
return b;
};
(function() {
var a = {};
axs.properties.getSelectorForRole = function(b) {
if (!b) {
return "";
}
if (a[b] && a.hasOwnProperty(b)) {
return a[b];
}
var c = ['[role="' + b + '"]'];
Object.keys(axs.constants.TAG_TO_IMPLICIT_SEMANTIC_INFO).forEach(function(a) {
var e = axs.constants.TAG_TO_IMPLICIT_SEMANTIC_INFO[a];
if (e && e.length) {
for (var f = 0;f < e.length;f++) {
var g = e[f];
if (g.role === b) {
if (g.selector) {
c[c.length] = g.selector;
} else {
c[c.length] = a;
break;
}
}
}
}
});
return a[b] = c.join(",");
};
})();
axs.AuditRule = function(a) {
for (var b = a.opt_requires || {}, c = !0, d = [], e = 0;e < axs.AuditRule.requiredFields.length;e++) {
var f = axs.AuditRule.requiredFields[e];
f in a || (c = !1, d.push(f));
}
if (!c) {
throw "Invalid spec; the following fields were not specified: " + d.join(", ") + "\n" + JSON.stringify(a);
}
this.name = a.name;
this.severity = a.severity;
this.relevantElementMatcher_ = a.relevantElementMatcher;
this.isRelevant_ = a.isRelevant || function(a, b) {
return !0;
};
this.test_ = a.test;
this.code = a.code;
this.heading = a.heading || "";
this.url = a.url || "";
this.requiresConsoleAPI = !!b.consoleAPI;
this.relevantElements = [];
this.relatedElements = [];
this.collectIdRefs = b.idRefs || !1;
};
axs.AuditRule.requiredFields = "name severity relevantElementMatcher test code heading".split(" ");
axs.AuditRule.NOT_APPLICABLE = {result:axs.constants.AuditResult.NA};
axs.AuditRule.prototype.addElement = function(a, b) {
a.push(b);
};
axs.AuditRule.prototype.collectMatchingElement = function(a, b) {
return this.relevantElementMatcher_(a, b) && b.inScope ? (this.relevantElements.push({element:a, flags:b}), !0) : !1;
};
axs.AuditRule.prototype.canRun = function(a) {
return this.disabled || !a.withConsoleApi && this.requiresConsoleAPI ? !1 : !0;
};
axs.AuditRule.Result = function(a, b) {
var c = axs.utils.namedValues(b);
c.severity = a.getSeverity(b.name) || c.severity;
this.rule = c;
this.maxResults = a.maxResults;
this.update(axs.constants.AuditResult.NA);
};
axs.AuditRule.Result.prototype.update = function(a, b) {
if (a === axs.constants.AuditResult.FAIL) {
var c = this.elements || (this.elements = []);
this.result = a;
this.maxResults && this.elements.length >= this.maxResults ? this.resultsTruncated = !0 : b && c.push(b);
} else {
a === axs.constants.AuditResult.PASS ? (this.elements || (this.elements = []), this.result !== axs.constants.AuditResult.FAIL && (this.result = a)) : this.result || (this.result = a);
}
};
axs.AuditRule.prototype.run = function(a) {
try {
for (var b = this._options || {}, c = new axs.AuditRule.Result(a, this), d;d = this.relevantElements.shift();) {
var e = d.element, f = d.flags;
this.isRelevant_(e, f) && (this.test_(e, f, b.config) ? c.update(axs.constants.AuditResult.FAIL, e) : c.update(axs.constants.AuditResult.PASS, e));
}
return c;
} finally {
this.relatedElements.length = 0;
}
};
axs.AuditRules = {};
(function() {
var a = {}, b = {};
axs.AuditRules.specs = {};
axs.AuditRules.addRule = function(c) {
var d = new axs.AuditRule(c);
if (d.code in b) {
throw Error('Can not add audit rule with same code: "' + d.code + '"');
}
if (d.name in a) {
throw Error('Can not add audit rule with same name: "' + d.name + '"');
}
a[d.name] = b[d.code] = d;
axs.AuditRules.specs[c.name] = c;
};
axs.AuditRules.getRule = function(c) {
return a[c] || b[c] || null;
};
axs.AuditRules.getRules = function(b) {
var d = Object.keys(a);
return b ? d : d.map(function(a) {
return this.getRule(a);
}, axs.AuditRules);
};
axs.AuditRules.getActiveRules = function(a) {
var b;
b = a.auditRulesToRun && 0 < a.auditRulesToRun.length ? a.auditRulesToRun : axs.AuditRules.getRules(!0);
if (a.auditRulesToIgnore) {
for (var e = 0;e < a.auditRulesToIgnore.length;e++) {
var f = a.auditRulesToIgnore[e];
0 > b.indexOf(f) || b.splice(b.indexOf(f), 1);
}
}
return b.map(axs.AuditRules.getRule);
};
})();
axs.AuditResults = function() {
this.errors_ = [];
this.warnings_ = [];
};
goog.exportSymbol("axs.AuditResults", axs.AuditResults);
axs.AuditResults.prototype.addError = function(a) {
"" != a && this.errors_.push(a);
};
goog.exportProperty(axs.AuditResults.prototype, "addError", axs.AuditResults.prototype.addError);
axs.AuditResults.prototype.addWarning = function(a) {
"" != a && this.warnings_.push(a);
};
goog.exportProperty(axs.AuditResults.prototype, "addWarning", axs.AuditResults.prototype.addWarning);
axs.AuditResults.prototype.numErrors = function() {
return this.errors_.length;
};
goog.exportProperty(axs.AuditResults.prototype, "numErrors", axs.AuditResults.prototype.numErrors);
axs.AuditResults.prototype.numWarnings = function() {
return this.warnings_.length;
};
goog.exportProperty(axs.AuditResults.prototype, "numWarnings", axs.AuditResults.prototype.numWarnings);
axs.AuditResults.prototype.getErrors = function() {
return this.errors_;
};
goog.exportProperty(axs.AuditResults.prototype, "getErrors", axs.AuditResults.prototype.getErrors);
axs.AuditResults.prototype.getWarnings = function() {
return this.warnings_;
};
goog.exportProperty(axs.AuditResults.prototype, "getWarnings", axs.AuditResults.prototype.getWarnings);
axs.AuditResults.prototype.toString = function() {
for (var a = "", b = 0;b < this.errors_.length;b++) {
0 == b && (a += "\nErrors:\n");
var c = this.errors_[b], a = a + (c + "\n\n");
}
for (b = 0;b < this.warnings_.length;b++) {
0 == b && (a += "\nWarnings:\n"), c = this.warnings_[b], a += c + "\n\n";
}
return a;
};
goog.exportProperty(axs.AuditResults.prototype, "toString", axs.AuditResults.prototype.toString);
axs.Audit = {};
axs.AuditConfiguration = function(a) {
null == a && (a = {});
this.rules_ = {};
this.maxResults = this.auditRulesToIgnore = this.auditRulesToRun = this.scope = null;
this.withConsoleApi = !1;
this.showUnsupportedRulesWarning = this.walkDom = !0;
for (var b in this) {
this.hasOwnProperty(b) && b in a && (this[b] = a[b]);
}
goog.exportProperty(this, "scope", this.scope);
goog.exportProperty(this, "auditRulesToRun", this.auditRulesToRun);
goog.exportProperty(this, "auditRulesToIgnore", this.auditRulesToIgnore);
goog.exportProperty(this, "withConsoleApi", this.withConsoleApi);
goog.exportProperty(this, "walkDom", this.walkDom);
goog.exportProperty(this, "showUnsupportedRulesWarning", this.showUnsupportedRulesWarning);
};
goog.exportSymbol("axs.AuditConfiguration", axs.AuditConfiguration);
axs.AuditConfiguration.prototype = {ignoreSelectors:function(a, b) {
a in this.rules_ || (this.rules_[a] = {});
"ignore" in this.rules_[a] || (this.rules_[a].ignore = []);
Array.prototype.push.call(this.rules_[a].ignore, b);
}, getIgnoreSelectors:function(a) {
return a in this.rules_ && "ignore" in this.rules_[a] ? this.rules_[a].ignore : [];
}, setSeverity:function(a, b) {
a in this.rules_ || (this.rules_[a] = {});
this.rules_[a].severity = b;
}, getSeverity:function(a) {
return a in this.rules_ && "severity" in this.rules_[a] ? this.rules_[a].severity : null;
}, setRuleConfig:function(a, b) {
a in this.rules_ || (this.rules_[a] = {});
this.rules_[a].config = b;
}, getRuleConfig:function(a) {
return a in this.rules_ && "config" in this.rules_[a] ? this.rules_[a].config : null;
}};
goog.exportProperty(axs.AuditConfiguration.prototype, "ignoreSelectors", axs.AuditConfiguration.prototype.ignoreSelectors);
goog.exportProperty(axs.AuditConfiguration.prototype, "getIgnoreSelectors", axs.AuditConfiguration.prototype.getIgnoreSelectors);
axs.Audit.unsupportedRulesWarningShown = !1;
axs.Audit.getRulesCannotRun = function(a) {
return a.withConsoleApi ? [] : axs.AuditRules.getRules().filter(function(a) {
return a.requiresConsoleAPI;
}).map(function(a) {
return a.code;
});
};
axs.Audit.run = function(a) {
a = a || new axs.AuditConfiguration;
if (!axs.Audit.unsupportedRulesWarningShown && a.showUnsupportedRulesWarning) {
var b = axs.Audit.getRulesCannotRun(a);
0 < b.length && (console.warn("Some rules cannot be checked using the axs.Audit.run() method call. Use the Chrome plugin to check these rules: " + b.join(", ")), console.warn("To remove this message, pass an AuditConfiguration object to axs.Audit.run() and set configuration.showUnsupportedRulesWarning = false."));
axs.Audit.unsupportedRulesWarningShown = !0;
}
b = axs.AuditRules.getActiveRules(a);
a.collectIdRefs = b.some(function(a) {
return a.collectIdRefs;
});
a.scope || (a.scope = document.documentElement);
axs.Audit.collectMatchingElements(a, b);
for (var c = [], d = 0;d < b.length;d++) {
var e = b[d];
e.canRun(a) && c.push(e.run(a));
}
return c;
};
goog.exportSymbol("axs.Audit.run", axs.Audit.run);
(function() {
function a(a, c) {
var d = a.getIgnoreSelectors(c.name);
if (0 < d.length || a.scope) {
this.ignoreSelectors = d;
}
if (d = a.getRuleConfig(c.name)) {
this.config = d;
}
}
axs.Audit.collectMatchingElements = function(b, c) {
axs.dom.composedTreeSearch(b.walkDom ? document.documentElement : b.scope, null, {preorder:function(d, e) {
e.inScope || (e.inScope = d === b.scope);
for (var f = 0;f < c.length;f++) {
var g = c[f];
g.canRun(b) && (g._options = new a(b, g), e.ignoring[g.name] || (e.ignoring[g.name] = g._options.shouldIgnore(d)) || g.collectMatchingElement(d, e));
}
return !0;
}}, {walkDom:b.walkDom, collectIdRefs:b.collectIdRefs, level:0, ignoring:{}, disabled:!1, hidden:!1});
};
a.prototype.shouldIgnore = function(a) {
var c = this.ignoreSelectors;
if (c) {
for (var d = 0;d < c.length;d++) {
if (axs.browserUtils.matchSelector(a, c[d])) {
return !0;
}
}
}
return !1;
};
})();
axs.Audit.auditResults = function(a) {
for (var b = new axs.AuditResults, c = 0;c < a.length;c++) {
var d = a[c];
d.result == axs.constants.AuditResult.FAIL && (d.rule.severity == axs.constants.Severity.SEVERE ? b.addError(axs.Audit.accessibilityErrorMessage(d)) : b.addWarning(axs.Audit.accessibilityErrorMessage(d)));
}
return b;
};
goog.exportSymbol("axs.Audit.auditResults", axs.Audit.auditResults);
axs.Audit.createReport = function(a, b) {
var c;
c = "*** Begin accessibility audit results ***\nAn accessibility audit found " + axs.Audit.auditResults(a).toString();
b && (c = c + "\nFor more information, please see " + b);
return c + "\n*** End accessibility audit results ***";
};
goog.exportSymbol("axs.Audit.createReport", axs.Audit.createReport);
axs.Audit.accessibilityErrorMessage = function(a) {
for (var b = a.rule.severity == axs.constants.Severity.SEVERE ? "Error: " : "Warning: ", b = b + (a.rule.code + " (" + a.rule.heading + ") failed on the following " + (1 == a.elements.length ? "element" : "elements")), b = 1 == a.elements.length ? b + ":" : b + (" (1 - " + Math.min(5, a.elements.length) + " of " + a.elements.length + "):"), c = Math.min(a.elements.length, 5), d = 0;d < c;d++) {
var e = a.elements[d], b = b + "\n";
try {
b += axs.utils.getQuerySelectorText(e);
} catch (f) {
b += " tagName:" + e.tagName, b += " id:" + e.id;
}
}
"" != a.rule.url && (b += "\nSee " + a.rule.url + " for more information.");
return b;
};
goog.exportSymbol("axs.Audit.accessibilityErrorMessage", axs.Audit.accessibilityErrorMessage);
axs.AuditRules.addRule({name:"ariaOnReservedElement", heading:"This element does not support ARIA roles, states and properties", url:"https://github.com/GoogleChrome/accessibility-developer-tools/wiki/Audit-Rules#ax_aria_12", severity:axs.constants.Severity.WARNING, relevantElementMatcher:function(a) {
return !axs.properties.canTakeAriaAttributes(a);
}, test:function(a) {
return null !== axs.properties.getAriaProperties(a);
}, code:"AX_ARIA_12"});
axs.AuditRules.addRule({name:"ariaOwnsDescendant", heading:"aria-owns should not be used if ownership is implicit in the DOM", url:"https://github.com/GoogleChrome/accessibility-developer-tools/wiki/Audit-Rules#ax_aria_06", severity:axs.constants.Severity.WARNING, relevantElementMatcher:function(a) {
return axs.browserUtils.matchSelector(a, "[aria-owns]");
}, test:function(a) {
return axs.utils.getIdReferents("aria-owns", a).some(function(b) {
return a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_CONTAINED_BY;
});
}, code:"AX_ARIA_06"});
axs.AuditRules.addRule({name:"ariaRoleNotScoped", heading:"Elements with ARIA roles must be in the correct scope", url:"https://github.com/GoogleChrome/accessibility-developer-tools/wiki/Audit-Rules#ax_aria_09", severity:axs.constants.Severity.SEVERE, relevantElementMatcher:function(a) {
return axs.browserUtils.matchSelector(a, "[role]");
}, test:function(a) {
var b = axs.utils.getRoles(a);
if (!b || !b.applied) {
return !1;
}
b = b.applied.details.scope;
if (!b || 0 === b.length) {
return !1;
}
for (var c = a;c = axs.dom.parentElement(c);) {
var d = axs.utils.getRoles(c, !0);
if (d && d.applied && 0 <= b.indexOf(d.applied.name)) {
return !1;
}
}
if (a = axs.utils.getAriaIdReferrers(a, "aria-owns")) {
for (c = 0;c < a.length;c++) {
if ((d = axs.utils.getRoles(a[c], !0)) && d.applied && 0 <= b.indexOf(d.applied.name)) {
return !1;
}
}
}
return !0;
}, code:"AX_ARIA_09"});
axs.AuditRules.addRule({name:"audioWithoutControls", heading:"Audio elements should have controls", url:"https://github.com/GoogleChrome/accessibility-developer-tools/wiki/Audit-Rules#ax_audio_01", severity:axs.constants.Severity.WARNING, relevantElementMatcher:function(a) {
return axs.browserUtils.matchSelector(a, "audio[autoplay]");
}, test:function(a) {
return !a.querySelectorAll("[controls]").length && 3 < a.duration;
}, code:"AX_AUDIO_01"});
(function() {
var a = /^aria\-/;
axs.AuditRules.addRule({name:"badAriaAttribute", heading:"This element has an invalid ARIA attribute", url:"https://github.com/GoogleChrome/accessibility-developer-tools/wiki/Audit-Rules#ax_aria_11", severity:axs.constants.Severity.WARNING, relevantElementMatcher:function(b) {
b = b.attributes;
for (var c = 0, d = b.length;c < d;c++) {
if (a.test(b[c].name)) {
return !0;
}
}
return !1;
}, test:function(b) {
b = b.attributes;
for (var c = 0, d = b.length;c < d;c++) {
var e = b[c].name;
if (a.test(e) && (e = e.replace(a, ""), !axs.constants.ARIA_PROPERTIES.hasOwnProperty(e))) {
return !0;
}
}
return !1;
}, code:"AX_ARIA_11"});
})();
axs.AuditRules.addRule({name:"badAriaAttributeValue", heading:"ARIA state and property values must be valid", url:"https://github.com/GoogleChrome/accessibility-developer-tools/wiki/Audit-Rules#ax_aria_04", severity:axs.constants.Severity.SEVERE, relevantElementMatcher:function(a) {
var b = axs.utils.getSelectorForAriaProperties(axs.constants.ARIA_PROPERTIES);
return axs.browserUtils.matchSelector(a, b);
}, test:function(a) {
for (var b in axs.constants.ARIA_PROPERTIES) {
var c = "aria-" + b;
if (a.hasAttribute(c)) {
var d = a.getAttribute(c);
if (!axs.utils.getAriaPropertyValue(c, d, a).valid) {
return !0;
}
}
}
return !1;
}, code:"AX_ARIA_04"});
axs.AuditRules.addRule({name:"badAriaRole", heading:"Elements with ARIA roles must use a valid, non-abstract ARIA role", url:"https://github.com/GoogleChrome/accessibility-developer-tools/wiki/Audit-Rules#ax_aria_01", severity:axs.constants.Severity.SEVERE, relevantElementMatcher:function(a) {
return axs.browserUtils.matchSelector(a, "[role]");
}, test:function(a) {
return !axs.utils.getRoles(a).valid;
}, code:"AX_ARIA_01"});
axs.AuditRules.addRule({name:"controlsWithoutLabel", heading:"Controls and media elements should have labels", url:"https://github.com/GoogleChrome/accessibility-developer-tools/wiki/Audit-Rules#ax_text_01", severity:axs.constants.Severity.SEVERE, relevantElementMatcher:function(a) {
if (!axs.browserUtils.matchSelector(a, 'input:not([type="hidden"]):not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), video:not([disabled])') || "presentation" == a.getAttribute("role")) {
return !1;
}
if (0 <= a.tabIndex) {
return !0;
}
for (a = axs.dom.parentElement(a);null != a;a = axs.dom.parentElement(a)) {
if (axs.utils.elementIsAriaWidget(a)) {
return !1;
}
}
return !0;
}, test:function(a, b) {
if (b.hidden || "input" == a.tagName.toLowerCase() && "button" == a.type && a.value.length || "button" == a.tagName.toLowerCase() && a.textContent.replace(/^\s+|\s+$/g, "").length || axs.utils.hasLabel(a)) {
return !1;
}
var c = axs.properties.findTextAlternatives(a, {});
return null === c || "" === c.trim() ? !0 : !1;
}, code:"AX_TEXT_01", ruleName:"Controls and media elements should have labels"});
axs.AuditRules.addRule({name:"duplicateId", heading:"Any ID referred to via an IDREF must be unique in the DOM", url:"https://github.com/GoogleChrome/accessibility-developer-tools/wiki/Audit-Rules#ax_html_02", severity:axs.constants.Severity.SEVERE, opt_requires:{idRefs:!0}, relevantElementMatcher:function(a, b) {
b.idrefs.length && !b.hidden && this.relatedElements.push({element:a, flags:b});
return a.hasAttribute("id") ? !0 : !1;
}, isRelevant:function(a, b) {
var c = a.id, d = b.level;
return this.relatedElements.some(function(a) {
var b = a.flags.idrefs;
return a.flags.level === d && 0 <= b.indexOf(c);
});
}, test:function(a) {
var b = "[id='" + a.id.replace(/'/g, "\\'") + "']";
return 1 < a.ownerDocument.querySelectorAll(b).length;
}, code:"AX_HTML_02"});
axs.AuditRules.addRule({name:"focusableElementNotVisibleAndNotAriaHidden", heading:"These elements are focusable but either invisible or obscured by another element", url:"https://github.com/GoogleChrome/accessibility-developer-tools/wiki/Audit-Rules#ax_focus_01", severity:axs.constants.Severity.WARNING, relevantElementMatcher:function(a) {
if (!axs.browserUtils.matchSelector(a, axs.utils.FOCUSABLE_ELEMENTS_SELECTOR)) {
return !1;
}
if (0 <= a.tabIndex) {
return !0;
}
for (var b = axs.dom.parentElement(a);null != b;b = axs.dom.parentElement(b)) {
if (axs.utils.elementIsAriaWidget(b)) {
return !1;
}
}
a = axs.properties.findTextAlternatives(a, {});
return null === a || "" === a.trim() ? !1 : !0;
}, test:function(a, b) {
if (b.hidden) {
return !1;
}
a.focus();
return !axs.utils.elementIsVisible(a);
}, code:"AX_FOCUS_01"});
axs.AuditRules.addRule({name:"humanLangMissing", heading:"The web page should have the content's human language indicated in the markup", url:"https://github.com/GoogleChrome/accessibility-developer-tools/wiki/Audit-Rules#ax_html_01", severity:axs.constants.Severity.WARNING, relevantElementMatcher:function(a) {
return a instanceof a.ownerDocument.defaultView.HTMLHtmlElement;
}, test:function(a) {
return a.lang ? !1 : !0;
}, code:"AX_HTML_01"});
axs.AuditRules.addRule({name:"imagesWithoutAltText", heading:"Images should have a text alternative or presentational role", url:"https://github.com/GoogleChrome/accessibility-developer-tools/wiki/Audit-Rules#ax_text_02", severity:axs.constants.Severity.WARNING, relevantElementMatcher:function(a, b) {
return axs.browserUtils.matchSelector(a, "img") && !b.hidden;
}, test:function(a) {
if (a.hasAttribute("alt") && "" == a.alt || "presentation" == a.getAttribute("role")) {
return !1;
}
var b = {};
axs.properties.findTextAlternatives(a, b);
return 0 == Object.keys(b).length ? !0 : !1;
}, code:"AX_TEXT_02"});
axs.AuditRules.addRule({name:"linkWithUnclearPurpose", heading:"The purpose of each link should be clear from the link text", url:"https://github.com/GoogleChrome/accessibility-developer-tools/wiki/Audit-Rules#ax_text_04", severity:axs.constants.Severity.WARNING, relevantElementMatcher:function(a, b) {
return axs.browserUtils.matchSelector(a, "a[href]") && !b.hidden;
}, test:function(a, b, c) {
c = c || {};
var d = c.blacklistPhrases || [], e = /\s+/;
for (b = 0;b < d.length;b++) {
var f = "^\\s*" + d[b].trim().replace(e, "\\s*") + "s*[^a-z]$";
if ((new RegExp(f, "i")).test(a.textContent)) {
return !0;
}
}
c = c.stopwords || "click tap go here learn more this page link about".split(" ");
a = axs.properties.findTextAlternatives(a, {});
if (null === a || "" === a.trim()) {
return !0;
}
a = a.replace(/[^a-zA-Z ]/g, "");
for (b = 0;b < c.length;b++) {
if (a = a.replace(new RegExp("\\b" + c[b] + "\\b", "ig"), ""), "" == a.trim()) {
return !0;
}
}
return !1;
}, code:"AX_TEXT_04"});
axs.AuditRules.addRule({name:"lowContrastElements", heading:"Text elements should have a reasonable contrast ratio", url:"https://github.com/GoogleChrome/accessibility-developer-tools/wiki/Audit-Rules#ax_color_01", severity:axs.constants.Severity.WARNING, relevantElementMatcher:function(a, b) {
return !b.disabled && axs.properties.hasDirectTextDescendant(a);
}, test:function(a) {
var b = window.getComputedStyle(a, null);
return (a = axs.utils.getContrastRatioForElementWithComputedStyle(b, a)) && axs.utils.isLowContrast(a, b);
}, code:"AX_COLOR_01"});
axs.AuditRules.addRule({name:"mainRoleOnInappropriateElement", heading:"role=main should only appear on significant elements", url:"https://github.com/GoogleChrome/accessibility-developer-tools/wiki/Audit-Rules#ax_aria_05", severity:axs.constants.Severity.WARNING, relevantElementMatcher:function(a) {
return axs.browserUtils.matchSelector(a, "[role~=main]");
}, test:function(a) {
if (axs.utils.isInlineElement(a)) {
return !0;
}
a = axs.properties.getTextFromDescendantContent(a);
return !a || 50 > a.length ? !0 : !1;
}, code:"AX_ARIA_05"});
axs.AuditRules.addRule({name:"elementsWithMeaningfulBackgroundImage", severity:axs.constants.Severity.WARNING, relevantElementMatcher:function(a, b) {
return !b.hidden;
}, heading:"Meaningful images should not be used in element backgrounds", url:"https://github.com/GoogleChrome/accessibility-developer-tools/wiki/Audit-Rules#ax_image_01", test:function(a) {
if (a.textContent && 0 < a.textContent.length) {
return !1;
}
a = window.getComputedStyle(a, null);
var b = a.backgroundImage;
if (!b || "undefined" === b || "none" === b || 0 != b.indexOf("url")) {
return !1;
}
b = parseInt(a.width, 10);
a = parseInt(a.height, 10);
return 150 > b && 150 > a;
}, code:"AX_IMAGE_01"});
axs.AuditRules.addRule({name:"multipleAriaOwners", heading:"An element's ID must not be present in more that one aria-owns attribute at any time", url:"https://github.com/GoogleChrome/accessibility-developer-tools/wiki/Audit-Rules#ax_aria_07", severity:axs.constants.Severity.WARNING, relevantElementMatcher:function(a) {
return axs.browserUtils.matchSelector(a, "[aria-owns]");
}, test:function(a) {
return axs.utils.getIdReferents("aria-owns", a).some(function(a) {
return 1 < axs.utils.getAriaIdReferrers(a, "aria-owns").length;
});
}, code:"AX_ARIA_07"});
axs.AuditRules.addRule({name:"multipleLabelableElementsPerLabel", heading:"A label element may not have labelable descendants other than its labeled control.", url:"https://github.com/GoogleChrome/accessibility-developer-tools/wiki/Audit-Rules#-ax_text_03--labels-should-only-contain-one-labelable-element", severity:axs.constants.Severity.SEVERE, relevantElementMatcher:function(a) {
return axs.browserUtils.matchSelector(a, "label");
}, test:function(a) {
if (1 < a.querySelectorAll(axs.utils.LABELABLE_ELEMENTS_SELECTOR).length) {
return !0;
}
}, code:"AX_TEXT_03"});
axs.AuditRules.addRule({name:"nonExistentRelatedElement", heading:"Attributes which refer to other elements by ID should refer to elements which exist in the DOM", url:"https://github.com/GoogleChrome/accessibility-developer-tools/wiki/Audit-Rules#ax_html_03", severity:axs.constants.Severity.SEVERE, opt_requires:{idRefs:!0}, relevantElementMatcher:function(a, b) {
return 0 < b.idrefs.length;
}, test:function(a, b) {
return b.idrefs.some(function(a) {
return !document.getElementById(a);
});
}, code:"AX_HTML_03"});
axs.AuditRules.addRule({name:"pageWithoutTitle", heading:"The web page should have a title that describes topic or purpose", url:"https://github.com/GoogleChrome/accessibility-developer-tools/wiki/Audit-Rules#ax_title_01", severity:axs.constants.Severity.WARNING, relevantElementMatcher:function(a) {
return "html" == a.tagName.toLowerCase();
}, test:function(a) {
a = a.querySelector("head");
return a ? (a = a.querySelector("title")) ? !a.textContent : !0 : !0;
}, code:"AX_TITLE_01"});
axs.AuditRules.addRule({name:"requiredAriaAttributeMissing", heading:"Elements with ARIA roles must have all required attributes for that role", url:"https://github.com/GoogleChrome/accessibility-developer-tools/wiki/Audit-Rules#ax_aria_03", severity:axs.constants.Severity.SEVERE, relevantElementMatcher:function(a) {
return axs.browserUtils.matchSelector(a, "[role]");
}, test:function(a) {
var b = axs.utils.getRoles(a);
if (!b.valid) {
return !1;
}
for (var c = 0;c < b.roles.length;c++) {
var d = b.roles[c].details.requiredPropertiesSet, e;
for (e in d) {
if (d = e.replace(/^aria-/, ""), !("defaultValue" in axs.constants.ARIA_PROPERTIES[d] || a.hasAttribute(e)) && 0 > axs.properties.getNativelySupportedAttributes(a).indexOf(e)) {
return !0;
}
}
}
}, code:"AX_ARIA_03"});
(function() {
function a(a) {
a = axs.utils.getRoles(a);
if (!a || !a.applied) {
return [];
}
a = a.applied;
return a.valid ? a.details.mustcontain || [] : [];
}
axs.AuditRules.addRule({name:"requiredOwnedAriaRoleMissing", heading:"Elements with ARIA roles must ensure required owned elements are present", url:"https://github.com/GoogleChrome/accessibility-developer-tools/wiki/Audit-Rules#ax_aria_08", severity:axs.constants.Severity.SEVERE, relevantElementMatcher:function(b) {
return axs.browserUtils.matchSelector(b, "[role]") ? 0 < a(b).length : !1;
}, test:function(b) {
if ("true" === b.getAttribute("aria-busy")) {
return !1;
}
for (var c = a(b), d = c.length - 1;0 <= d;d--) {
var e = axs.utils.findDescendantsWithRole(b, c[d]);
if (e && e.length) {
return !1;
}
}
b = axs.utils.getIdReferents("aria-owns", b);
for (d = b.length - 1;0 <= d;d--) {
if ((e = axs.utils.getRoles(b[d], !0)) && e.applied) {
for (var e = e.applied, f = c.length - 1;0 <= f;f--) {
if (e.name === c[f]) {
return !1;
}
}
}
}
return !0;
}, code:"AX_ARIA_08"});
})();
axs.AuditRules.addRule({name:"roleTooltipRequiresDescribedby", heading:"Elements with role=tooltip should have a corresponding element with aria-describedby", url:"https://github.com/GoogleChrome/accessibility-developer-tools/wiki/Audit-Rules#ax_aria_02", severity:axs.constants.Severity.SEVERE, relevantElementMatcher:function(a, b) {
return axs.browserUtils.matchSelector(a, "[role=tooltip]") && !b.hidden;
}, test:function(a) {
a = axs.utils.getAriaIdReferrers(a, "aria-describedby");
return !a || 0 === a.length;
}, code:"AX_TOOLTIP_01"});
axs.AuditRules.addRule({name:"tabIndexGreaterThanZero", heading:"Avoid positive integer values for tabIndex", url:"https://github.com/GoogleChrome/accessibility-developer-tools/wiki/Audit-Rules#ax_focus_03", severity:axs.constants.Severity.WARNING, relevantElementMatcher:function(a) {
return axs.browserUtils.matchSelector(a, "[tabindex]");
}, test:function(a) {
if (0 < a.tabIndex) {
return !0;
}
}, code:"AX_FOCUS_03"});
(function() {
function a(a) {
if (0 == a.childElementCount) {
return !0;
}
if (a.hasAttribute("role") && "presentation" != a.getAttribute("role")) {
return !1;
}
if ("presentation" == a.getAttribute("role")) {
a = a.querySelectorAll("*");
for (var c = 0;c < a.length;c++) {
if ("TR" != a[c].tagName && "TD" != a[c].tagName) {
return !1;
}
}
return !0;
}
return !1;
}
axs.AuditRules.addRule({name:"tableHasAppropriateHeaders", heading:"Tables should have appropriate headers", url:"https://github.com/GoogleChrome/accessibility-developer-tools/wiki/Audit-Rules#ax_table_01", severity:axs.constants.Severity.SEVERE, relevantElementMatcher:function(b) {
return axs.browserUtils.matchSelector(b, "table") && !a(b) && 0 < b.querySelectorAll("tr").length;
}, test:function(a) {
a = a.querySelectorAll("tr");
var c;
a: {
c = a[0].children;
for (var d = 0;d < c.length;d++) {
if ("TH" != c[d].tagName) {
c = !0;
break a;
}
}
c = !1;
}
if (c) {
a: {
for (c = 0;c < a.length;c++) {
if ("TH" != a[c].children[0].tagName) {
c = !0;
break a;
}
}
c = !1;
}
}
if (c) {
a: {
c = a[0].children;
for (d = 1;d < c.length;d++) {
if ("TH" != c[d].tagName) {
c = !0;
break a;
}
}
for (d = 1;d < a.length;d++) {
if ("TH" != a[d].children[0].tagName) {
c = !0;
break a;
}
}
c = !1;
}
}
return c;
}, code:"AX_TABLE_01"});
})();
(function() {
axs.AuditRules.addRule({name:"uncontrolledTabpanel", heading:"A tabpanel should be related to a tab via aria-controls or aria-labelledby", url:"https://github.com/GoogleChrome/accessibility-developer-tools/wiki/Audit-Rules#ax_aria_13", severity:axs.constants.Severity.WARNING, relevantElementMatcher:function(a) {
return axs.browserUtils.matchSelector(a, '[role="tabpanel"]');
}, test:function(a) {
var b;
b = document.querySelectorAll('[role="tab"][aria-controls="' + a.id + '"]');
(b = a.id && 1 === b.length) || (a.hasAttribute("aria-labelledby") ? (a = document.querySelectorAll("#" + a.getAttribute("aria-labelledby")), b = 1 === a.length && "tab" === a[0].getAttribute("role")) : b = !1);
return !b;
}, code:"AX_ARIA_13"});
})();
axs.AuditRules.addRule({name:"unfocusableElementsWithOnClick", heading:"Elements with onclick handlers must be focusable", url:"https://github.com/GoogleChrome/accessibility-developer-tools/wiki/Audit-Rules#ax_focus_02", severity:axs.constants.Severity.WARNING, opt_requires:{consoleAPI:!0}, relevantElementMatcher:function(a, b) {
return a instanceof a.ownerDocument.defaultView.HTMLBodyElement || b.hidden ? !1 : "click" in getEventListeners(a) ? !0 : !1;
}, test:function(a) {
return !a.hasAttribute("tabindex") && !axs.utils.isElementImplicitlyFocusable(a) && !a.disabled;
}, code:"AX_FOCUS_02"});
(function() {
var a = /^aria\-/, b = axs.utils.getSelectorForAriaProperties(axs.constants.ARIA_PROPERTIES);
axs.AuditRules.addRule({name:"unsupportedAriaAttribute", heading:"This element has an unsupported ARIA attribute", url:"https://github.com/GoogleChrome/accessibility-developer-tools/wiki/Audit-Rules#ax_aria_10", severity:axs.constants.Severity.SEVERE, relevantElementMatcher:function(a) {
return axs.browserUtils.matchSelector(a, b);
}, test:function(b) {
var d = axs.utils.getRoles(b, !0), d = d && d.applied ? d.applied.details.propertiesSet : axs.constants.GLOBAL_PROPERTIES;
b = b.attributes;
for (var e = 0, f = b.length;e < f;e++) {
var g = b[e].name;
if (a.test(g)) {
var h = g.replace(a, "");
if (axs.constants.ARIA_PROPERTIES.hasOwnProperty(h) && !(g in d)) {
return !0;
}
}
}
return !1;
}, code:"AX_ARIA_10"});
})();
axs.AuditRules.addRule({name:"videoWithoutCaptions", heading:"Video elements should use <track> elements to provide captions", url:"https://github.com/GoogleChrome/accessibility-developer-tools/wiki/Audit-Rules#ax_video_01", severity:axs.constants.Severity.WARNING, relevantElementMatcher:function(a) {
return axs.browserUtils.matchSelector(a, "video");
}, test:function(a) {
return !a.querySelectorAll("track[kind=captions]").length;
}, code:"AX_VIDEO_01"});
return axs;
}
http://requirejs.org/docs/errors.html#mismatch
[DEBUG][tmz/middleware/1.0.0/client] authkey 85bcfbd793d84806bd67fa8cb9b13525
[DEBUG][tmz/middleware/1.0.0/client] send Object {url: "https://mw-api.tmz.com/api/v1/articles?rankBy=comment&fields=primaryImage&format=json&numRecords=5", data: Object, dataType: "json", headers: Object, type: "GET"}
[DEBUG][widgets/sidebar/most-commented-posts/1.0.0/most-commented-posts] Cannot add item to list.
[INFO][app] init
[DEBUG][tmz/middleware/1.0.0/client] authkey 85bcfbd793d84806bd67fa8cb9b13525
[DEBUG][tmz/middleware/1.0.0/client] send Object {url: "https://mw-api.tmz.com/api/v1/socialactivities?id=…30342d413951,0df06152-9c7e-11e6-b781-30342d413951", data: Object, dataType: "json", headers: Object, type: "GET"}
img
img
img
img
img
Uncaught TypeError: Cannot read property 'width' of undefined
http://www.tmz.com/ Resource {requests: Array[3], method: "GET", type: "other", url: "http://www.tmz.com/", completed: true…}
http://ll-assets.tmz.com/www.tmz.com/main/default/cache/style.ff5335427922f1d7097c10479b83e1fe.v2016_10_11_142336.css Resource {requests: Array[3], method: "GET", type: "stylesheet", url: "http://ll-assets.tmz.com/www.tmz.com/main/default/…427922f1d7097c10479b83e1fe.v2016_10_11_142336.css", completed: true…}
http://cdnjs.cloudflare.com/ajax/libs/require.js/2.1.10/require.min.js Resource {requests: Array[3], method: "GET", type: "script", url: "http://cdnjs.cloudflare.com/ajax/libs/require.js/2.1.10/require.min.js", completed: true…}
http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js Resource {requests: Array[3], method: "GET", type: "script", url: "http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js", completed: true…}
http://optimizedby.openx.com/meta-tmz.min.js Resource {requests: Array[3], method: "GET", type: "script", url: "http://optimizedby.openx.com/meta-tmz.min.js", completed: true…}
http://ll-assets.tmz.com/www.tmz.com/main/default/cache/jscrollpane_inpost.190039b937f8c7f13532a1a12988f728.v2014_05_09_164122.css Resource {requests: Array[3], method: "GET", type: "stylesheet", url: "http://ll-assets.tmz.com/www.tmz.com/main/default/…b937f8c7f13532a1a12988f728.v2014_05_09_164122.css", completed: true…}
http://ll-assets.tmz.com/www.tmz.com/main/default/cache/ec875ff19cf2c779fe39063aa60d0426.v2016_10_24_164744.js Resource {requests: Array[3], method: "GET", type: "script", url: "http://ll-assets.tmz.com/www.tmz.com/main/default/…ff19cf2c779fe39063aa60d0426.v2016_10_24_164744.js", completed: true…}
http://c.amazon-adsystem.com/aax2/amzn_ads.js Resource {requests: Array[3], method: "GET", type: "script", url: "http://c.amazon-adsystem.com/aax2/amzn_ads.js", completed: true…}
http://cdn.optimizely.com/js/806850178.js Resource {requests: Array[3], method: "GET", type: "script", url: "http://cdn.optimizely.com/js/806850178.js", completed: true…}
http://cdnapi.kaltura.com/p/591531/sp/59153100/embedIframeJs/uiconf_id/33967872/partner_id/591531 Resource {requests: Array[3], method: "GET", type: "script", url: "http://cdnapi.kaltura.com/p/591531/sp/59153100/embedIframeJs/uiconf_id/33967872/partner_id/591531", completed: true…}
http://assets.adobedtm.com/429741e4dff9fdebe143756ba2f5b8d1b9be5718/satelliteLib-6bba35529baa85950371600f21760a1b107ec48d.js Resource {requests: Array[3], method: "GET", type: "script", url: "http://assets.adobedtm.com/429741e4dff9fdebe143756…teLib-6bba35529baa85950371600f21760a1b107ec48d.js", completed: true…}
http://native.sharethrough.com/assets/sfp.js Resource {requests: Array[3], method: "GET", type: "script", url: "http://native.sharethrough.com/assets/sfp.js", completed: true…}
http://ll-assets.tmz.com/www.tmz.com/main/default/cache/tinycarousel.6193fc748d6adae31fe5d77205efdd4e.v2014_05_09_164122.js Resource {requests: Array[3], method: "GET", type: "script", url: "http://ll-assets.tmz.com/www.tmz.com/main/default/…c748d6adae31fe5d77205efdd4e.v2014_05_09_164122.js", completed: true…}
http://aax.amazon-adsystem.com/e/dtb/bid?src=3064&u=http%3A%2F%2Fwww.tmz.com%2F&cb=6384545 Resource {requests: Array[3], method: "GET", type: "script", url: "http://aax.amazon-adsystem.com/e/dtb/bid?src=3064&u=http%3A%2F%2Fwww.tmz.com%2F&cb=6384545", completed: true…}
http://ll-assets.tmz.com/www.tmz.com/main/default/cache/js/s_code.v2016_07_13_133725.js Resource {requests: Array[3], method: "GET", type: "script", url: "http://ll-assets.tmz.com/www.tmz.com/main/default/cache/js/s_code.v2016_07_13_133725.js", completed: true…}
http://cdnapi.kaltura.com/p/591531/sp/59153100/embedIframeJs/uiconf_id/29171872/partner_id/591531 Resource {requests: Array[3], method: "GET", type: "script", url: "http://cdnapi.kaltura.com/p/591531/sp/59153100/embedIframeJs/uiconf_id/29171872/partner_id/591531", completed: true…}
http://cdn.taboolasyndication.com/libtrc/tmz/loader.js Resource {requests: Array[3], method: "GET", type: "script", url: "http://cdn.taboolasyndication.com/libtrc/tmz/loader.js", completed: true…}
http://tmz.vo.llnwd.net/o28/fonts/woff/SourceSansPro-Regular.otf.woff Resource {requests: Array[3], method: "GET", type: "other", url: "http://tmz.vo.llnwd.net/o28/fonts/woff/SourceSansPro-Regular.otf.woff", completed: true…}
http://ll-assets.tmz.com/fonts/tmz/liberation-mono/regular.ttf Resource {requests: Array[3], method: "GET", type: "other", url: "http://ll-assets.tmz.com/fonts/tmz/liberation-mono/regular.ttf", completed: true…}
http://tmz.vo.llnwd.net/o28/fonts/woff/RobotoCondensed-Regular1.woff Resource {requests: Array[3], method: "GET", type: "other", url: "http://tmz.vo.llnwd.net/o28/fonts/woff/RobotoCondensed-Regular1.woff", completed: true…}
http://ll-assets.tmz.com/fonts/tmz/roboto-condensed/light.ttf Resource {requests: Array[3], method: "GET", type: "other", url: "http://ll-assets.tmz.com/fonts/tmz/roboto-condensed/light.ttf", completed: true…}
http://ll-assets.tmz.com/www.tmz.com/main/default/img/widgets/masthead/bg_home.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-assets.tmz.com/www.tmz.com/main/default/img/widgets/masthead/bg_home.jpg", completed: true…}
http://ll-assets.tmz.com/www.tmz.com/main/default/img/widgets/masthead/black_bg_texture.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-assets.tmz.com/www.tmz.com/main/default/img/widgets/masthead/black_bg_texture.jpg", completed: true…}
http://ll-assets.tmz.com/www.tmz.com/main/default/img/widgets/masthead/bg_got_a_tip.png Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-assets.tmz.com/www.tmz.com/main/default/img/widgets/masthead/bg_got_a_tip.png", completed: true…}
http://tmz.vo.llnwd.net/o28/fonts/woff/SourceSansPro-Bold.otf.woff Resource {requests: Array[3], method: "GET", type: "other", url: "http://tmz.vo.llnwd.net/o28/fonts/woff/SourceSansPro-Bold.otf.woff", completed: true…}
http://consent.truste.com/notice?domain=warnerbros.com&c=teconsent&js=bb&noticeType=bb&text=true Resource {requests: Array[3], method: "GET", type: "script", url: "http://consent.truste.com/notice?domain=warnerbros.com&c=teconsent&js=bb&noticeType=bb&text=true", completed: true…}
http://ll-assets.tmz.com/www.tmz.com/main/default/cache/3c5c3de3464ec27a370c79f62c036a7a.v2016_05_23_154432.js Resource {requests: Array[3], method: "GET", type: "script", url: "http://ll-assets.tmz.com/www.tmz.com/main/default/…de3464ec27a370c79f62c036a7a.v2016_05_23_154432.js", completed: true…}
http://cdn.dynamicyield.com/api/8766195/api_dynamic.js Resource {requests: Array[3], method: "GET", type: "script", url: "http://cdn.dynamicyield.com/api/8766195/api_dynamic.js", completed: true…}
http://cdn.dynamicyield.com/api/8766195/api_static.js Resource {requests: Array[3], method: "GET", type: "script", url: "http://cdn.dynamicyield.com/api/8766195/api_static.js", completed: true…}
http://js-sec.indexww.com/ht/htw-wb.js Resource {requests: Array[3], method: "GET", type: "script", url: "http://js-sec.indexww.com/ht/htw-wb.js", completed: true…}
http://ll-media.tmz.com/2016/10/27/1027-mariah-carey-james-packer-tmz-getty-210x120-1.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/27/1027-mariah-carey-james-packer-tmz-getty-210x120-1.jpg", completed: true…}
http://ll-media.tmz.com/2016/10/27/chicago-cubs-hair-cuts-primary-210x120.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/27/chicago-cubs-hair-cuts-primary-210x120.jpg", completed: true…}
http://ll-media.tmz.com/2016/10/27/102716-trump-vandal-press-conference-primary-210x120.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/27/102716-trump-vandal-press-conference-primary-210x120.jpg", completed: true…}
http://ll-media.tmz.com/2016/10/27/rather-corset-kylie-hailey-primary-2-210x120.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/27/rather-corset-kylie-hailey-primary-2-210x120.jpg", completed: true…}
http://ll-media.tmz.com/2016/10/27/1027-rob-kardashian-pilot-jones-blac-chyna-tmz-instagram-04-210x120.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/27/1027-rob-kardas…lot-jones-blac-chyna-tmz-instagram-04-210x120.jpg", completed: true…}
http://ll-assets.tmz.com/www.tmz.com/main/default/cache/img/widgets/masthead/showtimes-submit.v2015_10_23_195847.gif Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-assets.tmz.com/www.tmz.com/main/default/…/masthead/showtimes-submit.v2015_10_23_195847.gif", completed: true…}
http://ll-media.tmz.com/2016/10/27/1027-mindy-undercover-ken-davidoff-oldrockphotofacebook-3.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/27/1027-mindy-undercover-ken-davidoff-oldrockphotofacebook-3.jpg", completed: true…}
http://d1xfq2052q7thw.cloudfront.net/1.7.461.js Resource {requests: Array[3], method: "GET", type: "script", url: "http://d1xfq2052q7thw.cloudfront.net/1.7.461.js", completed: true…}
https://www.youtube.com/embed/5aOCk0EI4K0 Resource {requests: Array[3], method: "GET", type: "subFrame", url: "https://www.youtube.com/embed/5aOCk0EI4K0", completed: true…}
http://ll-assets.tmz.com/www.tmz.com/main/default/cache/img/widgets/showtimes/icon_clock.v2015_10_23_195847.svg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-assets.tmz.com/www.tmz.com/main/default/…dgets/showtimes/icon_clock.v2015_10_23_195847.svg", completed: true…}
http://ll-assets.tmz.com/www.tmz.com/main/default/cache/img/widgets/footer/thirtymilezone.v2014_12_01_102336.png Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-assets.tmz.com/www.tmz.com/main/default/…gets/footer/thirtymilezone.v2014_12_01_102336.png", completed: true…}
https://www.youtube.com/embed/2WyUpuegcPQ Resource {requests: Array[3], method: "GET", type: "subFrame", url: "https://www.youtube.com/embed/2WyUpuegcPQ", completed: true…}
http://ll-media.tmz.com/2016/10/24/1024-trump-drake-r2r-tmz-instagram-primary-01-210x120.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/24/1024-trump-drake-r2r-tmz-instagram-primary-01-210x120.jpg", completed: true…}
http://ll-media.tmz.com/2016/10/20/1020-donald-trump-temple-taggart-mcdowell-tmz-nbc-01-210x120.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/20/1020-donald-trump-temple-taggart-mcdowell-tmz-nbc-01-210x120.jpg", completed: true…}
http://ll-media.tmz.com/2016/10/27/1027-celine-promo-400x300.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/27/1027-celine-promo-400x300.jpg", completed: true…}
http://ll-media.tmz.com/2016/10/27/1027-mariah-carey-james-packer-tmz-getty-95.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/27/1027-mariah-carey-james-packer-tmz-getty-95.jpg", completed: true…}
http://ll-media.tmz.com/2016/10/27/1027-mariah-careys-banned-dancer-3.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/27/1027-mariah-careys-banned-dancer-3.jpg", completed: true…}
http://www.googletagservices.com/tag/js/gpt.js Resource {requests: Array[3], method: "GET", type: "script", url: "http://www.googletagservices.com/tag/js/gpt.js", completed: true…}
http://cdn.krxd.net/controltag?confid=JXlj-zpN Resource {requests: Array[3], method: "GET", type: "script", url: "http://cdn.krxd.net/controltag?confid=JXlj-zpN", completed: true…}
http://www.google-analytics.com/analytics.js Resource {requests: Array[2], method: "GET", type: "script", url: "http://www.google-analytics.com/analytics.js", completed: false…}
https://www.google-analytics.com/analytics.js Resource {requests: Array[9], method: "GET", type: "script", url: "https://www.google-analytics.com/analytics.js", completed: true…}
http://as.casalemedia.com/cygnus?v=7&fn=headertag_parse_prefetch&s=180473&r=%7BNaNd%22%3A584508463%2C%site%22%3A%7B%22page%22%3A%22http%3A%2F%2Fwww.tmz.com%2F%22%2C%22ref%22%3A%22%22%7D%2C%imp%22%3A%5B%7B%id%22%3A%221%22%2C%20%22banner%22%3A%7B%22w%22%3A970%2C%22h%22%3A250%2C%22topframe%22%3A1%7D%2C%22ext%22%3A%20%7B%sid%22%3A%221%22%2C%siteID%22%3A180467%7D%7D%2C%7B%id%22%3A%222%22%2C%20%22banner%22%3A%7B%22w%22%3A728%2C%22h%22%3A90%2C%22topframe%22%3A1%7D%2C%22ext%22%3A%20%7B%sid%22%3A%223%22%2C%siteID%22%3A180473%7D%7D%2C%7B%id%22%3A%223%22%2C%20%22banner%22%3A%7B%22w%22%3A300%2C%22h%22%3A250%2C%22topframe%22%3A1%7D%2C%22ext%22%3A%20%7B%sid%22%3A%228%22%2C%siteID%22%3A180481%7D%7D%2C%7B%id%22%3A%224%22%2C%20%22banner%22%3A%7B%22w%22%3A300%2C%22h%22%3A250%2C%22topframe%22%3A1%7D%2C%22ext%22%3A%20%7B%sid%22%3A%229%22%2C%siteID%22%3A181724%7D%7D%2C%7B%id%22%3A%225%22%2C%20%22banner%22%3A%7B%22w%22%3A300%2C%22h%22%3A250%2C%22topframe%22%3A1%7D%2C%22ext%22%3A%20%7B%sid%22%3A%2210%22%2C%siteID%22%3A180483%7D%7D%2C%7B%id%22%3A%226%22%2C%20%22banner%22%3A%7B%22w%22%3A300%2C%22h%22%3A250%2C%22topframe%22%3A1%7D%2C%22ext%22%3A%20%7B%sid%22%3A%2211%22%2C%siteID%22%3A180484%7D%7D%2C%7B%id%22%3A%227%22%2C%20%22banner%22%3A%7B%22w%22%3A300%2C%22h%22%3A250%2C%22topframe%22%3A1%7D%2C%22ext%22%3A%20%7B%sid%22%3A%2212%22%2C%siteID%22%3A180485%7D%7D%2C%7B%id%22%3A%228%22%2C%20%22banner%22%3A%7B%22w%22%3A300%2C%22h%22%3A250%2C%22topframe%22%3A1%7D%2C%22ext%22%3A%20%7B%sid%22%3A%2213%22%2C%siteID%22%3A180486%7D%7D%2C%7B%id%22%3A%229%22%2C%20%22banner%22%3A%7B%22w%22%3A300%2C%22h%22%3A250%2C%22topframe%22%3A1%7D%2C%22ext%22%3A%20%7B%sid%22%3A%2214%22%2C%siteID%22%3A181732%7D%7D%2C%7B%id%22%3A%2210%22%2C%20%22banner%22%3A%7B%22w%22%3A300%2C%22h%22%3A600%2C%22topframe%22%3A1%7D%2C%22ext%22%3A%20%7B%sid%22%3A%2215%22%2C%siteID%22%3A180487%7D%7D%2C%7B%id%22%3A%2211%22%2C%20%22banner%22%3A%7B%22w%22%3A300%2C%22h%22%3A600%2C%22topframe%22%3A1%7D%2C%22ext%22%3A%20%7B%sid%22%3A%2216%22%2C%siteID%22%3A180488%7D%7D%5D%7D
http://ll-media.tmz.com/2016/10/27/mariah-carey-james-packer-happier-footer-3.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/27/mariah-carey-james-packer-happier-footer-3.jpg", completed: true…}
http://ll-media.tmz.com/2016/10/27/1027-mariah-carey-james-packer-tmz-getty-02-210x120.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/27/1027-mariah-carey-james-packer-tmz-getty-02-210x120.jpg", completed: true…}
http://ll-media.tmz.com/2016/10/27/1027-mariah-carey-james-packer-tmz-getty-210x120.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/27/1027-mariah-carey-james-packer-tmz-getty-210x120.jpg", completed: true…}
http://ll-media.tmz.com/2016/10/27/1027-luna-promo-400x300.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/27/1027-luna-promo-400x300.jpg", completed: true…}
http://ll-media.tmz.com/2016/10/27/1027-ray-park-instagram-7.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/27/1027-ray-park-instagram-7.jpg", completed: true…}
http://adserver.adtechus.com/pubapi/3.0/10571.1/4122256/0/225/ADTECH;cmd=bid;cors=yes; Resource {requests: Array[2], method: "GET", type: "xhr", url: "http://adserver.adtechus.com/pubapi/3.0/10571.1/4122256/0/225/ADTECH;cmd=bid;cors=yes;", completed: false…}
http://adserver.adtechus.com/pubapi/3.0/10571.1/4122257/0/170/ADTECH;cmd=bid;cors=yes; Resource {requests: Array[2], method: "GET", type: "xhr", url: "http://adserver.adtechus.com/pubapi/3.0/10571.1/4122257/0/170/ADTECH;cmd=bid;cors=yes;", completed: false…}
http://adserver.adtechus.com/pubapi/3.0/10571.1/4122258/0/170/ADTECH;cmd=bid;cors=yes; Resource {requests: Array[2], method: "GET", type: "xhr", url: "http://adserver.adtechus.com/pubapi/3.0/10571.1/4122258/0/170/ADTECH;cmd=bid;cors=yes;", completed: false…}
http://adserver.adtechus.com/pubapi/3.0/10571.1/4122259/0/170/ADTECH;cmd=bid;cors=yes; Resource {requests: Array[2], method: "GET", type: "xhr", url: "http://adserver.adtechus.com/pubapi/3.0/10571.1/4122259/0/170/ADTECH;cmd=bid;cors=yes;", completed: false…}
http://adserver.adtechus.com/pubapi/3.0/10571.1/4122260/0/170/ADTECH;cmd=bid;cors=yes; Resource {requests: Array[2], method: "GET", type: "xhr", url: "http://adserver.adtechus.com/pubapi/3.0/10571.1/4122260/0/170/ADTECH;cmd=bid;cors=yes;", completed: false…}
http://adserver.adtechus.com/pubapi/3.0/10571.1/4122261/0/225/ADTECH;cmd=bid;cors=yes; Resource {requests: Array[2], method: "GET", type: "xhr", url: "http://adserver.adtechus.com/pubapi/3.0/10571.1/4122261/0/225/ADTECH;cmd=bid;cors=yes;", completed: false…}
http://adserver.adtechus.com/pubapi/3.0/10571.1/4122262/0/170/ADTECH;cmd=bid;cors=yes; Resource {requests: Array[2], method: "GET", type: "xhr", url: "http://adserver.adtechus.com/pubapi/3.0/10571.1/4122262/0/170/ADTECH;cmd=bid;cors=yes;", completed: false…}
http://adserver.adtechus.com/pubapi/3.0/10571.1/4122263/0/170/ADTECH;cmd=bid;cors=yes; Resource {requests: Array[2], method: "GET", type: "xhr", url: "http://adserver.adtechus.com/pubapi/3.0/10571.1/4122263/0/170/ADTECH;cmd=bid;cors=yes;", completed: false…}
http://adserver.adtechus.com/pubapi/3.0/10571.1/4122264/0/225/ADTECH;cmd=bid;cors=yes; Resource {requests: Array[2], method: "GET", type: "xhr", url: "http://adserver.adtechus.com/pubapi/3.0/10571.1/4122264/0/225/ADTECH;cmd=bid;cors=yes;", completed: false…}
http://ll-media.tmz.com/2016/10/27/1027-kevin-gates-pcso-01-210x120.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/27/1027-kevin-gates-pcso-01-210x120.jpg", completed: true…}
http://ll-assets.tmz.com/www.tmz.com/main/default/js/tmz/middleware/1.0.0/client.js Resource {requests: Array[3], method: "GET", type: "script", url: "http://ll-assets.tmz.com/www.tmz.com/main/default/js/tmz/middleware/1.0.0/client.js", completed: true…}
http://ll-media.tmz.com/2016/10/25/1025-mark-and-dave-twitter-210x120.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/25/1025-mark-and-dave-twitter-210x120.jpg", completed: true…}
http://warnerbros.112.2o7.net/b/ss/wbrostmz/1/JS-1.6.1/s96933632842420?AQB=…Weekday&c27=New&v27=New&s=1920x1080&c=24&j=1.6&v=N&k=Y&bw=800&bh=600&AQE=1 Resource {requests: Array[3], method: "GET", type: "image", url: "http://warnerbros.112.2o7.net/b/ss/wbrostmz/1/JS-1…=1920x1080&c=24&j=1.6&v=N&k=Y&bw=800&bh=600&AQE=1", completed: false…}
http://ll-media.tmz.com/2016/10/27/1027-hillary-clinton-haunted-house-photos-7.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/27/1027-hillary-clinton-haunted-house-photos-7.jpg", completed: true…}
http://ll-media.tmz.com/2016/10/24/102416-newt-gingrich-primary-210x120.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/24/102416-newt-gingrich-primary-210x120.jpg", completed: true…}
http://ll-media.tmz.com/2016/10/19/1019-hillary-clinton-bus-sewage-mike-robins-01-210x120.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/19/1019-hillary-clinton-bus-sewage-mike-robins-01-210x120.jpg", completed: true…}
http://ll-media.tmz.com/2016/10/27/1027-tori-hughes-brixx-sexy-swimsuit-photos-launch-3.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/27/1027-tori-hughes-brixx-sexy-swimsuit-photos-launch-3.jpg", completed: true…}
http://tmz.vo.llnwd.net/o28/assets/svg/social_2015/white_comment_tmz.svg Resource {requests: Array[3], method: "GET", type: "image", url: "http://tmz.vo.llnwd.net/o28/assets/svg/social_2015/white_comment_tmz.svg", completed: true…}
http://tmz.vo.llnwd.net/o28/assets/svg/social_2015/white_f_facebook.svg Resource {requests: Array[3], method: "GET", type: "image", url: "http://tmz.vo.llnwd.net/o28/assets/svg/social_2015/white_f_facebook.svg", completed: true…}
http://ll-media.tmz.com/2016/10/21/1021-marcy-zavala-bikini-beach-primary-210x120.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/21/1021-marcy-zavala-bikini-beach-primary-210x120.jpg", completed: true…}
http://ll-media.tmz.com/2016/10/21/1021-anel-peralta-sweater-bikini-primary-210x120.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/21/1021-anel-peralta-sweater-bikini-primary-210x120.jpg", completed: true…}
http://ll-media.tmz.com/2016/10/27/1027-elf-on-a-shelf-fun-art-5.gif Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/27/1027-elf-on-a-shelf-fun-art-5.gif", completed: true…}
http://ll-media.tmz.com/2016/10/27/elf-shelf-celeb-instagram-footer-3.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/27/elf-shelf-celeb-instagram-footer-3.jpg", completed: true…}
http://ll-media.tmz.com/2016/08/05/0805-giant-swan-lawsuit-composite-210x120.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/08/05/0805-giant-swan-lawsuit-composite-210x120.jpg", completed: true…}
http://tmz.vo.llnwd.net/o28/fonts/woff/SourceSansPro-Black.otf.woff Resource {requests: Array[3], method: "GET", type: "other", url: "http://tmz.vo.llnwd.net/o28/fonts/woff/SourceSansPro-Black.otf.woff", completed: true…}
http://ll-media.tmz.com/2016/07/27/0727-scrub-daddy-01-210x120.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/07/27/0727-scrub-daddy-01-210x120.jpg", completed: true…}
http://tmz.vo.llnwd.net/o28/assets/svg/social_2015/white_tbird_twitter.svg Resource {requests: Array[3], method: "GET", type: "image", url: "http://tmz.vo.llnwd.net/o28/assets/svg/social_2015/white_tbird_twitter.svg", completed: true…}
http://ll-media.tmz.com/2016/10/27/foxkyliejenner-2.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/27/foxkyliejenner-2.jpg", completed: true…}
http://ll-assets.tmz.com/www.tmz.com/main/default/img/widgets/inline-promo/bg_tf-inline-promo-pink.png Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-assets.tmz.com/www.tmz.com/main/default/…/widgets/inline-promo/bg_tf-inline-promo-pink.png", completed: true…}
http://ll-assets.tmz.com/www.tmz.com/main/default/js/tmz/shortcodes/1.0.3/shortcodes.js Resource {requests: Array[3], method: "GET", type: "script", url: "http://ll-assets.tmz.com/www.tmz.com/main/default/js/tmz/shortcodes/1.0.3/shortcodes.js", completed: true…}
https://s.ytimg.com/yts/cssbin/www-embed-player-webp-vflQunHrq.css Resource {requests: Array[3], method: "GET", type: "stylesheet", url: "https://s.ytimg.com/yts/cssbin/www-embed-player-webp-vflQunHrq.css", completed: true…}
https://s.ytimg.com/yts/jsbin/www-embed-player-vflEysCYf/www-embed-player.js Resource {requests: Array[3], method: "GET", type: "script", url: "https://s.ytimg.com/yts/jsbin/www-embed-player-vflEysCYf/www-embed-player.js", completed: true…}
https://s.ytimg.com/yts/jsbin/player-en_US-vflvtarAT/base.js Resource {requests: Array[3], method: "GET", type: "script", url: "https://s.ytimg.com/yts/jsbin/player-en_US-vflvtarAT/base.js", completed: true…}
http://ll-media.tmz.com/2013/06/28/partner-asset-fox411-630x400-1.png Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2013/06/28/partner-asset-fox411-630x400-1.png", completed: true…}
http://ll-media.tmz.com/2016/10/20/memba-phantasm-launch-3.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/20/memba-phantasm-launch-3.jpg", completed: true…}
http://ll-media.tmz.com/2016/10/18/1018-tony-moran-unmasked-michael-myers-halloween-movie-now-photos-primary-210x120.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/18/1018-tony-moran…rs-halloween-movie-now-photos-primary-210x120.jpg", completed: true…}
http://ll-media.tmz.com/2016/10/14/1013-sid-haig-captain-spaulding-now-photos-primary-210x120.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/14/1013-sid-haig-captain-spaulding-now-photos-primary-210x120.jpg", completed: true…}
http://ll-assets.tmz.com/www.tmz.com/main/default/js/tmz/disqus/1.0.3/disqus.js Resource {requests: Array[3], method: "GET", type: "script", url: "http://ll-assets.tmz.com/www.tmz.com/main/default/js/tmz/disqus/1.0.3/disqus.js", completed: true…}
http://ll-media.tmz.com/2016/10/27/1027-timberlake-promo-400x300.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/27/1027-timberlake-promo-400x300.jpg", completed: true…}
http://ads.rubiconproject.com/header/10794.js Resource {requests: Array[3], method: "GET", type: "script", url: "http://ads.rubiconproject.com/header/10794.js", completed: true…}
http://pixel.quantserve.com/aquant.js?a=p-21jBY4_vbHNJQ Resource {requests: Array[3], method: "GET", type: "script", url: "http://pixel.quantserve.com/aquant.js?a=p-21jBY4_vbHNJQ", completed: true…}
http://ll-media.tmz.com/2016/10/27/1027-mike-pence-plane-twitter-5.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/27/1027-mike-pence-plane-twitter-5.jpg", completed: true…}
http://ll-media.tmz.com/2016/10/08/1008-mike-pence-getty-02-210x120.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/08/1008-mike-pence-getty-02-210x120.jpg", completed: true…}
http://adserver.adtechus.com/pubapi/3.0/10571.1/4122257/0/170/ADTECH;cfp=1;rndc=1477649643;cmd=bid;cors=yes Resource {requests: Array[3], method: "GET", type: "xhr", url: "http://adserver.adtechus.com/pubapi/3.0/10571.1/41…170/ADTECH;cfp=1;rndc=1477649643;cmd=bid;cors=yes", completed: true…}
http://adserver.adtechus.com/pubapi/3.0/10571.1/4122256/0/225/ADTECH;cfp=1;rndc=1477649642;cmd=bid;cors=yes Resource {requests: Array[3], method: "GET", type: "xhr", url: "http://adserver.adtechus.com/pubapi/3.0/10571.1/41…225/ADTECH;cfp=1;rndc=1477649642;cmd=bid;cors=yes", completed: true…}
http://adserver.adtechus.com/pubapi/3.0/10571.1/4122260/0/170/ADTECH;cfp=1;rndc=1477649642;cmd=bid;cors=yes Resource {requests: Array[3], method: "GET", type: "xhr", url: "http://adserver.adtechus.com/pubapi/3.0/10571.1/41…170/ADTECH;cfp=1;rndc=1477649642;cmd=bid;cors=yes", completed: true…}
http://adserver.adtechus.com/pubapi/3.0/10571.1/4122259/0/170/ADTECH;cfp=1;rndc=1477649643;cmd=bid;cors=yes Resource {requests: Array[3], method: "GET", type: "xhr", url: "http://adserver.adtechus.com/pubapi/3.0/10571.1/41…170/ADTECH;cfp=1;rndc=1477649643;cmd=bid;cors=yes", completed: true…}
http://adserver.adtechus.com/pubapi/3.0/10571.1/4122258/0/170/ADTECH;cfp=1;rndc=1477649642;cmd=bid;cors=yes Resource {requests: Array[3], method: "GET", type: "xhr", url: "http://adserver.adtechus.com/pubapi/3.0/10571.1/41…170/ADTECH;cfp=1;rndc=1477649642;cmd=bid;cors=yes", completed: true…}
http://as.casalemedia.com/headerstats?s=180473&u=http%3A%2F%2Fwww.tmz.com%2…414071&t0=1477649643235&t1=1477649643708&INDX.t=473&INDX.to=0&INDX.ts=1000 Resource {requests: Array[3], method: "GET", type: "xhr", url: "http://as.casalemedia.com/headerstats?s=180473&u=h…1=1477649643708&INDX.t=473&INDX.to=0&INDX.ts=1000", completed: true…}
http://adserver.adtechus.com/pubapi/3.0/10571.1/4122261/0/225/ADTECH;cfp=1;rndc=1477649643;cmd=bid;cors=yes Resource {requests: Array[3], method: "GET", type: "xhr", url: "http://adserver.adtechus.com/pubapi/3.0/10571.1/41…225/ADTECH;cfp=1;rndc=1477649643;cmd=bid;cors=yes", completed: true…}
http://ll-media.tmz.com/2016/07/17/0717-mike-pence-chilis-dinner-twitter-01-210x120.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/07/17/0717-mike-pence-chilis-dinner-twitter-01-210x120.jpg", completed: true…}
http://ll-media.tmz.com/2016/10/27/1027-vdp-promo-400x300.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/27/1027-vdp-promo-400x300.jpg", completed: true…}
http://tmz.vo.llnwd.net/o28/fonts/woff/Roboto-Regular1.woff Resource {requests: Array[3], method: "GET", type: "other", url: "http://tmz.vo.llnwd.net/o28/fonts/woff/Roboto-Regular1.woff", completed: true…}
http://warnerbros.112.2o7.net/b/ss/wbrostmz/1/JS-1.6.1/s96933632842420?AQB=…Weekday&c27=New&v27=New&s=1920x1080&c=24&j=1.6&v=N&k=Y&bw=800&bh=600&AQE=1 Resource {requests: Array[3], method: "GET", type: "image", url: "http://warnerbros.112.2o7.net/b/ss/wbrostmz/1/JS-1…=1920x1080&c=24&j=1.6&v=N&k=Y&bw=800&bh=600&AQE=1", completed: true…}
http://ll-media.tmz.com/2016/10/27/1026-donald-trump-star-tmz-getty-4.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/27/1026-donald-trump-star-tmz-getty-4.jpg", completed: true…}
http://cdn.krxd.net/ctjs/controltag.js.0e83f40a5e4e9876f31283cf0793d155 Resource {requests: Array[6], method: "GET", type: "script", url: "http://cdn.krxd.net/ctjs/controltag.js.0e83f40a5e4e9876f31283cf0793d155", completed: true…}
http://ll-media.tmz.com/2016/10/27/1027-donald-trump-emblem-cops-james-otis-tmz-210x120.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/27/1027-donald-trump-emblem-cops-james-otis-tmz-210x120.jpg", completed: true…}
http://ll-assets.tmz.com/www.tmz.com/main/default/img/general/close_x.gif Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-assets.tmz.com/www.tmz.com/main/default/img/general/close_x.gif", completed: true…}
http://ll-media.tmz.com/2016/10/27/1027-james-otis-facebook-trump-star-01-210x120.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/27/1027-james-otis-facebook-trump-star-01-210x120.jpg", completed: true…}
http://ll-media.tmz.com/2016/10/24/ggfail-2.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/24/ggfail-2.jpg", completed: true…}
http://ll-media.tmz.com/2013/04/26/partner-rss-gossipgirl-bw-630x400.png Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2013/04/26/partner-rss-gossipgirl-bw-630x400.png", completed: true…}
http://ll-media.tmz.com/2016/10/27/1027-dakota-fanning-parents-tmz-getty-ffn-4.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/27/1027-dakota-fanning-parents-tmz-getty-ffn-4.jpg", completed: true…}
http://cdnapi.kaltura.com/html5/html5lib/v2.41/modules/KalturaSupport/thumbnail.php/p/591531/uiconf_id/29171872/entry_id/0_14aujckd/height/480? Resource {requests: Array[3], method: "GET", type: "image", url: "http://cdnapi.kaltura.com/html5/html5lib/v2.41/mod…iconf_id/29171872/entry_id/0_14aujckd/height/480?", completed: false…}
http://tmz.vo.llnwd.net/o28/sponsorship/0911-tmzslots-tall-hotbox-bg.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://tmz.vo.llnwd.net/o28/sponsorship/0911-tmzslots-tall-hotbox-bg.jpg", completed: true…}
http://cdnapi.kaltura.com/html5/html5lib/v2.41//modules/MwEmbedSupport/skins/common/images/player_big_play_button.png Resource {requests: Array[3], method: "GET", type: "image", url: "http://cdnapi.kaltura.com/html5/html5lib/v2.41//mo…rt/skins/common/images/player_big_play_button.png", completed: true…}
http://adserver.adtechus.com/pubapi/3.0/10571.1/4122263/0/170/ADTECH;cfp=1;rndc=1477649643;cmd=bid;cors=yes Resource {requests: Array[3], method: "GET", type: "xhr", url: "http://adserver.adtechus.com/pubapi/3.0/10571.1/41…170/ADTECH;cfp=1;rndc=1477649643;cmd=bid;cors=yes", completed: true…}
http://adserver.adtechus.com/pubapi/3.0/10571.1/4122262/0/170/ADTECH;cfp=1;rndc=1477649643;cmd=bid;cors=yes Resource {requests: Array[3], method: "GET", type: "xhr", url: "http://adserver.adtechus.com/pubapi/3.0/10571.1/41…170/ADTECH;cfp=1;rndc=1477649643;cmd=bid;cors=yes", completed: true…}
http://adserver.adtechus.com/pubapi/3.0/10571.1/4122264/0/225/ADTECH;cfp=1;rndc=1477649643;cmd=bid;cors=yes Resource {requests: Array[3], method: "GET", type: "xhr", url: "http://adserver.adtechus.com/pubapi/3.0/10571.1/41…225/ADTECH;cfp=1;rndc=1477649643;cmd=bid;cors=yes", completed: true…}
http://d1xfq2052q7thw.cloudfront.net/analytics.js.map Resource {requests: Array[3], method: "GET", type: "other", url: "http://d1xfq2052q7thw.cloudfront.net/analytics.js.map", completed: true…}
http://ll-media.tmz.com/2016/06/14/0614-ariel-winter-elle-dakota-fanning-ffn-01-210x120.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/06/14/0614-ariel-winter-elle-dakota-fanning-ffn-01-210x120.jpg", completed: true…}
http://partner.googleadservices.com/gpt/pubads_impl_104.js Resource {requests: Array[3], method: "GET", type: "script", url: "http://partner.googleadservices.com/gpt/pubads_impl_104.js", completed: true…}
http://ll-media.tmz.com/2016/02/11/0211-elle-fanning-dakota-fanning-getty-01-210x120.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/02/11/0211-elle-fanning-dakota-fanning-getty-01-210x120.jpg", completed: true…}
http://ll-media.tmz.com/2016/10/27/1027-bryce-promo-400x300.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/27/1027-bryce-promo-400x300.jpg", completed: true…}
http://ll-media.tmz.com/2016/10/27/1027-mariah-carey-james-packer-tmz-getty-5.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/27/1027-mariah-carey-james-packer-tmz-getty-5.jpg", completed: true…}
http://ll-media.tmz.com/2016/10/27/1026-mariah-carey-james-packer-tmz-04-210x120.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/27/1026-mariah-carey-james-packer-tmz-04-210x120.jpg", completed: true…}
http://ll-media.tmz.com/2016/10/27/0603-johnny-depp-getty-3.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/27/0603-johnny-depp-getty-3.jpg", completed: true…}
http://rma-api.gravity.com/v1/api/intelligence/wl?jq=2.0.3&sg=82893b7956400…grv-personalization-23&pl=23&type=iframe&ad=&cburl=&pfurl=&x=1477649643461 Resource {requests: Array[3], method: "GET", type: "script", url: "http://rma-api.gravity.com/v1/api/intelligence/wl?…=23&type=iframe&ad=&cburl=&pfurl=&x=1477649643461", completed: true…}
https://googleads.g.doubleclick.net/pagead/id Resource {requests: Array[6], method: "GET", type: "xhr", url: "https://googleads.g.doubleclick.net/pagead/id", completed: true…}
http://ll-assets.tmz.com/www.tmz.com/main/default/js/widgets/sidebar/followtmz/followtmz.js Resource {requests: Array[3], method: "GET", type: "script", url: "http://ll-assets.tmz.com/www.tmz.com/main/default/js/widgets/sidebar/followtmz/followtmz.js", completed: true…}
http://cdn.krxd.net/partnerjs/xdi/proxy.78563ed2da5ce6f7ccf2acb960d0c06a.html#!kxcid=JXlj-zpN&kxt=http%3A%2F%2Fwww.tmz.com&kxcl=cdn&kxp= Resource {requests: Array[3], method: "GET", type: "subFrame", url: "http://cdn.krxd.net/partnerjs/xdi/proxy.78563ed2da…lj-zpN&kxt=http%3A%2F%2Fwww.tmz.com&kxcl=cdn&kxp=", completed: true…}
http://cfvod.kaltura.com/p/591531/sp/59153100/thumbnail/entry_id/0_14aujckd/version/100012/acv/122/height/480 Resource {requests: Array[3], method: "GET", type: "image", url: "http://cfvod.kaltura.com/p/591531/sp/59153100/thum…y_id/0_14aujckd/version/100012/acv/122/height/480", completed: true…}
http://ll-media.tmz.com/2013/07/08/celebdirtylaundry-630x400.png Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2013/07/08/celebdirtylaundry-630x400.png", completed: true…}
http://ll-media.tmz.com/2016/10/27/1027-mariah-carey-james-packer-tmz-getty-8.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/27/1027-mariah-carey-james-packer-tmz-getty-8.jpg", completed: true…}
http://ll-media.tmz.com/2016/07/07/070716-mariah-carey-yacht-inf-06-210x120-1.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/07/07/070716-mariah-carey-yacht-inf-06-210x120-1.jpg", completed: true…}
http://ll-media.tmz.com/2016/10/27/1027-alec-baldwin-tmz-4.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/27/1027-alec-baldwin-tmz-4.jpg", completed: true…}
http://www.zergnet.com/zerg.js?id=34756 Resource {requests: Array[3], method: "GET", type: "script", url: "http://www.zergnet.com/zerg.js?id=34756", completed: true…}
https://fonts.gstatic.com/s/roboto/v15/CWB0XYA8bzo0kSThX0UTuA.woff2 Resource {requests: Array[6], method: "GET", type: "other", url: "https://fonts.gstatic.com/s/roboto/v15/CWB0XYA8bzo0kSThX0UTuA.woff2", completed: true…}
http://ll-media.tmz.com/2016/10/27/0912-alec-baldwin-painting-2.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/27/0912-alec-baldwin-painting-2.jpg", completed: true…}
http://ll-media.tmz.com/2016/10/19/1019-val-kilmer-art-gallery-facebook-01-210x120.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/19/1019-val-kilmer-art-gallery-facebook-01-210x120.jpg", completed: true…}
http://ll-assets.tmz.com/www.tmz.com/main/default/js/widgets/sidebar/most-commented-posts/1.0.0/most-commented-posts.js Resource {requests: Array[3], method: "GET", type: "script", url: "http://ll-assets.tmz.com/www.tmz.com/main/default/…ost-commented-posts/1.0.0/most-commented-posts.js", completed: true…}
http://ll-assets.tmz.com/www.tmz.com/main/default/img/widgets/sidebar/gallery-icon.png Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-assets.tmz.com/www.tmz.com/main/default/img/widgets/sidebar/gallery-icon.png", completed: true…}
http://ll-media.tmz.com/2016/10/18/101816-giancarlo-stanton-primary-210x120.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/18/101816-giancarlo-stanton-primary-210x120.jpg", completed: true…}
http://ll-media.tmz.com/2016/10/21/tmz-tour-halloween-promo-300x600-1.png Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/21/tmz-tour-halloween-promo-300x600-1.png", completed: true…}
http://ll-assets.tmz.com/www.tmz.com/main/default/img/widgets/sidebar/play-button-sprite.png Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-assets.tmz.com/www.tmz.com/main/default/img/widgets/sidebar/play-button-sprite.png", completed: true…}
https://www.youtube.com/ad_data_204 Resource {requests: Array[6], method: "POST", type: "xhr", url: "https://www.youtube.com/ad_data_204", completed: true…}
http://ll-media.tmz.com/2016/10/27/1027-nick-young-rushed-hospital-sports-promo-1.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/27/1027-nick-young-rushed-hospital-sports-promo-1.jpg", completed: true…}
http://ll-media.tmz.com/2016/10/27/1027-kayla-harrison-judo-getty-03-300x163.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/27/1027-kayla-harrison-judo-getty-03-300x163.jpg", completed: true…}
https://i.ytimg.com/vi_webp/5aOCk0EI4K0/sddefault.webp Resource {requests: Array[3], method: "GET", type: "image", url: "https://i.ytimg.com/vi_webp/5aOCk0EI4K0/sddefault.webp", completed: true…}
https://i.ytimg.com/vi_webp/2WyUpuegcPQ/hqdefault.webp Resource {requests: Array[3], method: "GET", type: "image", url: "https://i.ytimg.com/vi_webp/2WyUpuegcPQ/hqdefault.webp", completed: true…}
http://ll-media.tmz.com/2016/10/26/bar-refaeli-tropical-getaway-sidebar-1.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/26/bar-refaeli-tropical-getaway-sidebar-1.jpg", completed: true…}
http://flapi1.rubiconproject.com/a/api/fastlane.json?account_id=10794&site_…&tg_fl.eid=728x90_1&kw=rp.fastlane&tk_flint=custom&rand=0.4930691610889999 Resource {requests: Array[3], method: "GET", type: "xhr", url: "http://flapi1.rubiconproject.com/a/api/fastlane.js….fastlane&tk_flint=custom&rand=0.4930691610889999", completed: true…}
http://flapi1.rubiconproject.com/a/api/fastlane.json?account_id=10794&site_…tg_fl.eid=300x250_4&kw=rp.fastlane&tk_flint=custom&rand=0.7248409732666841 Resource {requests: Array[3], method: "GET", type: "xhr", url: "http://flapi1.rubiconproject.com/a/api/fastlane.js….fastlane&tk_flint=custom&rand=0.7248409732666841", completed: true…}
http://flapi1.rubiconproject.com/a/api/fastlane.json?account_id=10794&site_…_2&alt_size_ids=10&kw=rp.fastlane&tk_flint=custom&rand=0.28841247855134977 Resource {requests: Array[3], method: "GET", type: "xhr", url: "http://flapi1.rubiconproject.com/a/api/fastlane.js…fastlane&tk_flint=custom&rand=0.28841247855134977", completed: true…}
http://flapi1.rubiconproject.com/a/api/fastlane.json?account_id=10794&site_…_fl.eid=300x250_3&kw=rp.fastlane&tk_flint=custom&rand=0.028613729376019137 Resource {requests: Array[3], method: "GET", type: "xhr", url: "http://flapi1.rubiconproject.com/a/api/fastlane.js…astlane&tk_flint=custom&rand=0.028613729376019137", completed: true…}
http://flapi1.rubiconproject.com/a/api/fastlane.json?account_id=10794&site_…tg_fl.eid=300x250_5&kw=rp.fastlane&tk_flint=custom&rand=0.2978263644148502 Resource {requests: Array[3], method: "GET", type: "xhr", url: "http://flapi1.rubiconproject.com/a/api/fastlane.js….fastlane&tk_flint=custom&rand=0.2978263644148502", completed: true…}
http://flapi1.rubiconproject.com/a/api/fastlane.json?account_id=10794&site_…g_fl.eid=300x250_6&kw=rp.fastlane&tk_flint=custom&rand=0.29203040694948545 Resource {requests: Array[3], method: "GET", type: "xhr", url: "http://flapi1.rubiconproject.com/a/api/fastlane.js…fastlane&tk_flint=custom&rand=0.29203040694948545", completed: true…}
http://flapi1.rubiconproject.com/a/api/fastlane.json?account_id=10794&site_…tg_fl.eid=300x250_7&kw=rp.fastlane&tk_flint=custom&rand=0.9508688225455493 Resource {requests: Array[3], method: "GET", type: "xhr", url: "http://flapi1.rubiconproject.com/a/api/fastlane.js….fastlane&tk_flint=custom&rand=0.9508688225455493", completed: true…}
http://ll-media.tmz.com/2016/10/27/102716-kayla-harrison-primary-139x99.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/27/102716-kayla-harrison-primary-139x99.jpg", completed: true…}
http://www.zergnet.com/zerg.js?id=34754 Resource {requests: Array[3], method: "GET", type: "script", url: "http://www.zergnet.com/zerg.js?id=34754", completed: true…}
http://ll-media.tmz.com/2016/10/27/102716-dominick-cruz-primary-139x99.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/27/102716-dominick-cruz-primary-139x99.jpg", completed: true…}
http://b.scorecardresearch.com/beacon.js Resource {requests: Array[6], method: "GET", type: "script", url: "http://b.scorecardresearch.com/beacon.js", completed: true…}
http://ll-media.tmz.com/2016/10/27/1027-anthony-pettis-tmz-01-139x99.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/27/1027-anthony-pettis-tmz-01-139x99.jpg", completed: true…}
http://rma-api.gravity.com/v1/api/intelligence/w2?sg=82893b79564009a4d8fab7…om%2F&clientTime=1477649645377&ci=grv-personalization-23&wct=1477649643461 Resource {requests: Array[3], method: "GET", type: "subFrame", url: "http://rma-api.gravity.com/v1/api/intelligence/w2?…45377&ci=grv-personalization-23&wct=1477649643461", completed: true…}
http://widget.perfectmarket.com/tmz/load.js Resource {requests: Array[3], method: "GET", type: "script", url: "http://widget.perfectmarket.com/tmz/load.js", completed: true…}
http://www.google-analytics.com/plugins/ua/linkid.js Resource {requests: Array[1], method: "GET", type: "script", url: "http://www.google-analytics.com/plugins/ua/linkid.js", completed: false…}
https://www.google-analytics.com/plugins/ua/linkid.js Resource {requests: Array[3], method: "GET", type: "script", url: "https://www.google-analytics.com/plugins/ua/linkid.js", completed: true…}
http://ll-media.tmz.com/2016/10/27/102716-erin-andrews-primary-139x99.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/27/102716-erin-andrews-primary-139x99.jpg", completed: true…}
http://as.casalemedia.com/headerstats?s=180473&u=http%3A%2F%2Fwww.tmz.com%2…6432384370&t0=1477649643238&t1=1477649645430&AOL.t=2192&AOL.to=0&AOL.ts=-1 Resource {requests: Array[3], method: "GET", type: "xhr", url: "http://as.casalemedia.com/headerstats?s=180473&u=h…38&t1=1477649645430&AOL.t=2192&AOL.to=0&AOL.ts=-1", completed: true…}
http://ll-media.tmz.com/2016/10/27/1027-anthony-pettis-cars-fox6-139x99.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/27/1027-anthony-pettis-cars-fox6-139x99.jpg", completed: true…}
https://mw-api.tmz.com/api/v1/articles?rankBy=comment&fields=primaryImage&format=json&numRecords=5 Resource {requests: Array[6], method: "OPTIONS", type: "xhr", url: "https://mw-api.tmz.com/api/v1/articles?rankBy=comment&fields=primaryImage&format=json&numRecords=5", completed: true…}
http://ll-media.tmz.com/2016/10/27/full-episode-300w.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/27/full-episode-300w.jpg", completed: true…}
http://ll-media.tmz.com/2016/10/27/emily-sears-300w.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/27/emily-sears-300w.jpg", completed: true…}
http://ll-media.tmz.com/2016/10/27/kim-kardashian-nu-300w.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/27/kim-kardashian-nu-300w.jpg", completed: true…}
http://cdn.taboola.com/libtrc/impl.230-RELEASE.js Resource {requests: Array[3], method: "GET", type: "script", url: "http://cdn.taboola.com/libtrc/impl.230-RELEASE.js", completed: true…}
http://ll-media.tmz.com/2016/10/27/1026-tmz-live-primary-300x163.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/27/1026-tmz-live-primary-300x163.jpg", completed: true…}
http://ll-media.tmz.com/2016/10/25/1031-costume-shirt-store-promo-1.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/25/1031-costume-shirt-store-promo-1.jpg", completed: true…}
http://ll-media.tmz.com/2016/10/26/yoga-butt-sidebar-1.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/26/yoga-butt-sidebar-1.jpg", completed: true…}
http://ll-media.tmz.com/2016/10/26/courtney-halloween29-300w.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/26/courtney-halloween29-300w.jpg", completed: true…}
http://ll-assets.tmz.com/www.tmz.com/main/default/img/widgets/footer/footer-background_v2.png Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-assets.tmz.com/www.tmz.com/main/default/img/widgets/footer/footer-background_v2.png", completed: true…}
http://ll-media.tmz.com/2016/10/27/screen-shot-2016-10-27-at-2-12-139x99.png Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/27/screen-shot-2016-10-27-at-2-12-139x99.png", completed: true…}
http://ll-media.tmz.com/2016/10/27/screen-shot-2016-10-27-at-3-49-139x99.png Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/27/screen-shot-2016-10-27-at-3-49-139x99.png", completed: true…}
http://ll-media.tmz.com/2016/10/27/screen-shot-2016-10-27-at-2-31-139x99.png Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/27/screen-shot-2016-10-27-at-2-31-139x99.png", completed: true…}
http://ll-assets.tmz.com/www.tmz.com/main/default/js/widgets/sidebar/ad-custom/1.0.0/ad-custom.js Resource {requests: Array[3], method: "GET", type: "script", url: "http://ll-assets.tmz.com/www.tmz.com/main/default/js/widgets/sidebar/ad-custom/1.0.0/ad-custom.js", completed: true…}
http://b.grvcdn.com/moth-min.js Resource {requests: Array[3], method: "GET", type: "script", url: "http://b.grvcdn.com/moth-min.js", completed: true…}
http://ll-media.tmz.com/2016/10/25/elizabeth-hurley-bikini-sidebar-1.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/25/elizabeth-hurley-bikini-sidebar-1.jpg", completed: true…}
http://ll-media.tmz.com/2016/10/26/amber-rose-birthday-weekend-party-photos-00-300w-1.png Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/26/amber-rose-birthday-weekend-party-photos-00-300w-1.png", completed: true…}
http://ll-media.tmz.com/2016/10/27/lady-gaga-wedding-300w.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/27/lady-gaga-wedding-300w.jpg", completed: true…}
http://ll-media.tmz.com/2013/04/26/partner-rss-fox-b-w.png Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2013/04/26/partner-rss-fox-b-w.png", completed: true…}
http://ll-media.tmz.com/2013/04/26/partner-rss-chive-v2-cut-v2.png Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2013/04/26/partner-rss-chive-v2-cut-v2.png", completed: true…}
http://secure-us.imrworldwide.com/cgi-bin/m?ci=us-404979h&cg=0&cc=1&si=http%3A//www.tmz.com/&rp=&ts=compact&rnd=1477649643814 Resource {requests: Array[3], method: "GET", type: "image", url: "http://secure-us.imrworldwide.com/cgi-bin/m?ci=us-…3A//www.tmz.com/&rp=&ts=compact&rnd=1477649643814", completed: false…}
http://ll-media.tmz.com/2013/04/26/partner-rsss-justjared-logo-cut-v2.gif Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2013/04/26/partner-rsss-justjared-logo-cut-v2.gif", completed: true…}
http://w.sharethis.com/button/buttons.js Resource {requests: Array[3], method: "GET", type: "script", url: "http://w.sharethis.com/button/buttons.js", completed: true…}
http://ll-media.tmz.com/2013/04/26/partner-asset-mto.png Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2013/04/26/partner-asset-mto.png", completed: true…}
http://static.grvcdn.com/personalization/grv-jquery-1.8.2.min.446a642fc8237b3799365aee82b1db0c.js Resource {requests: Array[3], method: "GET", type: "script", url: "http://static.grvcdn.com/personalization/grv-jquery-1.8.2.min.446a642fc8237b3799365aee82b1db0c.js", completed: true…}
http://static.grvcdn.com/personalization/grv.dotdotdot-1.5.1.a1ebd8499a774734982f930713d5c9ed.js Resource {requests: Array[3], method: "GET", type: "script", url: "http://static.grvcdn.com/personalization/grv.dotdotdot-1.5.1.a1ebd8499a774734982f930713d5c9ed.js", completed: true…}
http://static.grvcdn.com/personalization/base.dd5bb885115b30c992b87792b6c5fe25.css Resource {requests: Array[3], method: "GET", type: "stylesheet", url: "http://static.grvcdn.com/personalization/base.dd5bb885115b30c992b87792b6c5fe25.css", completed: true…}
http://static.grvcdn.com/personalization/sites/tmz/tmz_rail_5_v2_updated.7a4f5cb1c6089ef79c7e8e12250a1789.css Resource {requests: Array[3], method: "GET", type: "stylesheet", url: "http://static.grvcdn.com/personalization/sites/tmz…5_v2_updated.7a4f5cb1c6089ef79c7e8e12250a1789.css", completed: true…}
http://ll-media.tmz.com/2015/04/01/partner-asset-coed-v3-1.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2015/04/01/partner-asset-coed-v3-1.jpg", completed: true…}
http://ll-media.tmz.com/2013/04/26/partner-rss-egotastic-v3.png Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2013/04/26/partner-rss-egotastic-v3.png", completed: true…}
http://ll-media.tmz.com/2013/04/26/partner-rss-thestir-logo-cut-v2-1.png Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2013/04/26/partner-rss-thestir-logo-cut-v2-1.png", completed: true…}
http://ll-media.tmz.com/2013/04/26/partner-rss-gossipgirl-bw.png Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2013/04/26/partner-rss-gossipgirl-bw.png", completed: true…}
http://ll-media.tmz.com/2016/10/25/102516-trump-accuser-2-kal-1080x608.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/25/102516-trump-accuser-2-kal-1080x608.jpg", completed: true…}
http://ll-assets.tmz.com/www.tmz.com/main/default/img/widgets/footer/ios-app-store-new.svg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-assets.tmz.com/www.tmz.com/main/default/img/widgets/footer/ios-app-store-new.svg", completed: true…}
http://ll-media.tmz.com/2016/10/27/102716-darth-maul-kal-1080x608-1.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/27/102716-darth-maul-kal-1080x608-1.jpg", completed: true…}
http://tmz.vo.llnwd.net/o28/assets/svg/social_2015/google-play-store.svg Resource {requests: Array[3], method: "GET", type: "image", url: "http://tmz.vo.llnwd.net/o28/assets/svg/social_2015/google-play-store.svg", completed: true…}
http://ll-media.tmz.com/2016/10/27/102716-hillary-haunted-house-kal-1080x608.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/27/102716-hillary-haunted-house-kal-1080x608.jpg", completed: true…}
http://ll-media.tmz.com/2016/10/27/102716-trump-vandal-press-conference-kal-1080x608.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/27/102716-trump-vandal-press-conference-kal-1080x608.jpg", completed: true…}
http://tmz.vo.llnwd.net/o28/assets/svg/social_2015/icon-facebook.svg Resource {requests: Array[3], method: "GET", type: "image", url: "http://tmz.vo.llnwd.net/o28/assets/svg/social_2015/icon-facebook.svg", completed: true…}
http://tmz.vo.llnwd.net/o28/assets/svg/social_2015/icon-twitter.svg Resource {requests: Array[3], method: "GET", type: "image", url: "http://tmz.vo.llnwd.net/o28/assets/svg/social_2015/icon-twitter.svg", completed: true…}
http://tmz.vo.llnwd.net/o28/assets/svg/social_2015/icon-youtube.svg Resource {requests: Array[3], method: "GET", type: "image", url: "http://tmz.vo.llnwd.net/o28/assets/svg/social_2015/icon-youtube.svg", completed: true…}
http://tmz.vo.llnwd.net/o28/assets/svg/social_2015/icon-instagram.svg Resource {requests: Array[3], method: "GET", type: "image", url: "http://tmz.vo.llnwd.net/o28/assets/svg/social_2015/icon-instagram.svg", completed: true…}
http://tmz.vo.llnwd.net/o28/assets/svg/social_2015/icon-googleplus.svg Resource {requests: Array[3], method: "GET", type: "image", url: "http://tmz.vo.llnwd.net/o28/assets/svg/social_2015/icon-googleplus.svg", completed: true…}
http://ll-assets.tmz.com/www.tmz.com/main/default/img/widgets/quick-subscribe/subscribe_sprite.gif Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-assets.tmz.com/www.tmz.com/main/default/img/widgets/quick-subscribe/subscribe_sprite.gif", completed: true…}
http://ll-assets.tmz.com/www.tmz.com/main/default/img/widgets/kaltura/tmz-playlarge.svg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-assets.tmz.com/www.tmz.com/main/default/img/widgets/kaltura/tmz-playlarge.svg", completed: true…}
http://browser-update.org/update.min.js Resource {requests: Array[3], method: "GET", type: "script", url: "http://browser-update.org/update.min.js", completed: true…}
http://static.grvcdn.com/personalization/widget.b2c7ede40c1769b70f01e634e62dd22e.js Resource {requests: Array[3], method: "GET", type: "script", url: "http://static.grvcdn.com/personalization/widget.b2c7ede40c1769b70f01e634e62dd22e.js", completed: true…}
http://tags.bluekai.com/site/20087?ret=js&jscb=STRBKCallback&_=1477649642812 Resource {requests: Array[3], method: "GET", type: "script", url: "http://tags.bluekai.com/site/20087?ret=js&jscb=STRBKCallback&_=1477649642812", completed: true…}
http://gum.criteo.com/sync?r=2&c=158&j=STRCriteoCallback Resource {requests: Array[3], method: "GET", type: "script", url: "http://gum.criteo.com/sync?r=2&c=158&j=STRCriteoCallback", completed: true…}
http://tags.bluekai.com/site/20214?limit=1&phint=user%3Dtrue Resource {requests: Array[3], method: "GET", type: "image", url: "http://tags.bluekai.com/site/20214?limit=1&phint=user%3Dtrue", completed: false…}
http://secure-us.imrworldwide.com/cgi-bin/m?ci=us-404979h&cg=0&cc=1&si=http%3A//www.tmz.com/&rp=&ts=compact&rnd=1477649643814&ja=1 Resource {requests: Array[3], method: "GET", type: "image", url: "http://secure-us.imrworldwide.com/cgi-bin/m?ci=us-…ww.tmz.com/&rp=&ts=compact&rnd=1477649643814&ja=1", completed: true…}
https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,900,700 Resource {requests: Array[3], method: "GET", type: "stylesheet", url: "https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,900,700", completed: true…}
http://st.dynamicyield.com/st?sec=8766195&inHead=true&id=0&ref=&sr=1920x1080&altip= Resource {requests: Array[3], method: "GET", type: "script", url: "http://st.dynamicyield.com/st?sec=8766195&inHead=true&id=0&ref=&sr=1920x1080&altip=", completed: true…}
http://as.casalemedia.com/headerstats?s=180473&u=http%3A%2F%2Fwww.tmz.com%2….t=123&AOL.to=0&AOL.ts=-1&AOL.p.pl.aolbid=&RUBI.t=0&RUBI.to=0&RUBI.ts=1000 Resource {requests: Array[3], method: "GET", type: "xhr", url: "http://as.casalemedia.com/headerstats?s=180473&u=h…&AOL.p.pl.aolbid=&RUBI.t=0&RUBI.to=0&RUBI.ts=1000", completed: true…}
http://as.casalemedia.com/headerstats?s=180473&u=http%3A%2F%2Fwww.tmz.com%2…=120&AOL.to=0&AOL.ts=-1&AOL.p.pl.aolbid=&RUBI.t=834&RUBI.to=0&RUBI.ts=1000 Resource {requests: Array[3], method: "GET", type: "xhr", url: "http://as.casalemedia.com/headerstats?s=180473&u=h…OL.p.pl.aolbid=&RUBI.t=834&RUBI.to=0&RUBI.ts=1000", completed: true…}
http://as.casalemedia.com/headerstats?s=180473&u=http%3A%2F%2Fwww.tmz.com%2….t=113&AOL.to=0&AOL.ts=-1&AOL.p.pl.aolbid=&RUBI.t=1&RUBI.to=0&RUBI.ts=1000 Resource {requests: Array[3], method: "GET", type: "xhr", url: "http://as.casalemedia.com/headerstats?s=180473&u=h…&AOL.p.pl.aolbid=&RUBI.t=1&RUBI.to=0&RUBI.ts=1000", completed: true…}
http://0914.global.ssl.fastly.net/ad/script/x.js?cb=1477649644167 Resource {requests: Array[3], method: "GET", type: "script", url: "http://0914.global.ssl.fastly.net/ad/script/x.js?cb=1477649644167", completed: true…}
http://0914.global.ssl.fastly.net/ad/img/x.gif?cb=1477649644166 Resource {requests: Array[3], method: "GET", type: "image", url: "http://0914.global.ssl.fastly.net/ad/img/x.gif?cb=1477649644166", completed: true…}
http://ad.doubleclick.net/ddm/ad/658/7sqmbj/raoktg2/;ord=1477649644166? Resource {requests: Array[3], method: "GET", type: "image", url: "http://ad.doubleclick.net/ddm/ad/658/7sqmbj/raoktg2/;ord=1477649644166?", completed: true…}
http://0914.global.ssl.fastly.net/ad/img/x.gif?cb=1477649644167 Resource {requests: Array[3], method: "GET", type: "image", url: "http://0914.global.ssl.fastly.net/ad/img/x.gif?cb=1477649644167", completed: true…}
https://securepubads.g.doubleclick.net/gampad/ads?gdfp_req=1&correlator=352…04&vrp=104&ga_vid=1030208204.1477649644&ga_sid=1477649646&ga_hid=148541592 Resource {requests: Array[3], method: "GET", type: "script", url: "https://securepubads.g.doubleclick.net/gampad/ads?…204.1477649644&ga_sid=1477649646&ga_hid=148541592", completed: true…}
https://securepubads.g.doubleclick.net/gampad/ads?gdfp_req=1&correlator=352…04&vrp=104&ga_vid=1030208204.1477649644&ga_sid=1477649646&ga_hid=148541592 Resource {requests: Array[3], method: "GET", type: "script", url: "https://securepubads.g.doubleclick.net/gampad/ads?…204.1477649644&ga_sid=1477649646&ga_hid=148541592", completed: true…}
http://as.casalemedia.com/headerstats?s=180473&u=http%3A%2F%2Fwww.tmz.com%2…=112&AOL.to=0&AOL.ts=-1&AOL.p.pl.aolbid=&RUBI.t=353&RUBI.to=0&RUBI.ts=1000 Resource {requests: Array[3], method: "GET", type: "xhr", url: "http://as.casalemedia.com/headerstats?s=180473&u=h…OL.p.pl.aolbid=&RUBI.t=353&RUBI.to=0&RUBI.ts=1000", completed: true…}
http://as.casalemedia.com/headerstats?s=180473&u=http%3A%2F%2Fwww.tmz.com%2…=111&AOL.to=0&AOL.ts=-1&AOL.p.pl.aolbid=&RUBI.t=354&RUBI.to=0&RUBI.ts=1000 Resource {requests: Array[3], method: "GET", type: "xhr", url: "http://as.casalemedia.com/headerstats?s=180473&u=h…OL.p.pl.aolbid=&RUBI.t=354&RUBI.to=0&RUBI.ts=1000", completed: true…}
http://as.casalemedia.com/headerstats?s=180473&u=http%3A%2F%2Fwww.tmz.com%2…=109&AOL.to=0&AOL.ts=-1&AOL.p.pl.aolbid=&RUBI.t=351&RUBI.to=0&RUBI.ts=1000 Resource {requests: Array[3], method: "GET", type: "xhr", url: "http://as.casalemedia.com/headerstats?s=180473&u=h…OL.p.pl.aolbid=&RUBI.t=351&RUBI.to=0&RUBI.ts=1000", completed: true…}
http://as.casalemedia.com/headerstats?s=180473&u=http%3A%2F%2Fwww.tmz.com%2…=108&AOL.to=0&AOL.ts=-1&AOL.p.pl.aolbid=&RUBI.t=350&RUBI.to=0&RUBI.ts=1000 Resource {requests: Array[3], method: "GET", type: "xhr", url: "http://as.casalemedia.com/headerstats?s=180473&u=h…OL.p.pl.aolbid=&RUBI.t=350&RUBI.to=0&RUBI.ts=1000", completed: true…}
http://as.casalemedia.com/headerstats?s=180473&u=http%3A%2F%2Fwww.tmz.com%2…=107&AOL.to=0&AOL.ts=-1&AOL.p.pl.aolbid=&RUBI.t=356&RUBI.to=0&RUBI.ts=1000 Resource {requests: Array[3], method: "GET", type: "xhr", url: "http://as.casalemedia.com/headerstats?s=180473&u=h…OL.p.pl.aolbid=&RUBI.t=356&RUBI.to=0&RUBI.ts=1000", completed: true…}
http://as.casalemedia.com/headerstats?s=180473&u=http%3A%2F%2Fwww.tmz.com%2…=105&AOL.to=0&AOL.ts=-1&AOL.p.pl.aolbid=&RUBI.t=994&RUBI.to=0&RUBI.ts=1000 Resource {requests: Array[3], method: "GET", type: "xhr", url: "http://as.casalemedia.com/headerstats?s=180473&u=h…OL.p.pl.aolbid=&RUBI.t=994&RUBI.to=0&RUBI.ts=1000", completed: true…}
http://as.casalemedia.com/headerstats?s=180473&u=http%3A%2F%2Fwww.tmz.com%2….t=104&AOL.to=0&AOL.ts=-1&AOL.p.pl.aolbid=&RUBI.t=0&RUBI.to=0&RUBI.ts=1000 Resource {requests: Array[3], method: "GET", type: "xhr", url: "http://as.casalemedia.com/headerstats?s=180473&u=h…&AOL.p.pl.aolbid=&RUBI.t=0&RUBI.to=0&RUBI.ts=1000", completed: true…}
http://as.casalemedia.com/headerstats?s=180473&u=http%3A%2F%2Fwww.tmz.com%2….t=104&AOL.to=0&AOL.ts=-1&AOL.p.pl.aolbid=&RUBI.t=0&RUBI.to=0&RUBI.ts=1000 Resource {requests: Array[3], method: "GET", type: "xhr", url: "http://as.casalemedia.com/headerstats?s=180473&u=h…&AOL.p.pl.aolbid=&RUBI.t=0&RUBI.to=0&RUBI.ts=1000", completed: true…}
http://ad.doubleclick.net/ddm/ad/tqt5i/sus/5fxm2a4cy/;ord=1477649644168? Resource {requests: Array[3], method: "GET", type: "image", url: "http://ad.doubleclick.net/ddm/ad/tqt5i/sus/5fxm2a4cy/;ord=1477649644168?", completed: true…}
http://ll-assets.tmz.com/www.tmz.com/main/default/js/tmz/polls/1.0.3/polls.js Resource {requests: Array[3], method: "GET", type: "script", url: "http://ll-assets.tmz.com/www.tmz.com/main/default/js/tmz/polls/1.0.3/polls.js", completed: true…}
http://ll-assets.tmz.com/www.tmz.com/main/default/js/share/1.0.1/share.js Resource {requests: Array[3], method: "GET", type: "script", url: "http://ll-assets.tmz.com/www.tmz.com/main/default/js/share/1.0.1/share.js", completed: true…}
http://tmz.disqus.com/count.js Resource {requests: Array[3], method: "GET", type: "script", url: "http://tmz.disqus.com/count.js", completed: true…}
https://securepubads.g.doubleclick.net/gampad/ads?gdfp_req=1&correlator=352…04&vrp=104&ga_vid=1030208204.1477649644&ga_sid=1477649646&ga_hid=148541592 Resource {requests: Array[3], method: "GET", type: "script", url: "https://securepubads.g.doubleclick.net/gampad/ads?…204.1477649644&ga_sid=1477649646&ga_hid=148541592", completed: true…}
http://tags.bluekai.com/site/20214?dt=0&r=1391940697&sig=951975177&bkca=KJpn0zpBnnWNPYF/01ygLu6+EiNuBURovuoBOxOlR9AF Resource {requests: Array[3], method: "GET", type: "image", url: "http://tags.bluekai.com/site/20214?dt=0&r=13919406…bkca=KJpn0zpBnnWNPYF/01ygLu6+EiNuBURovuoBOxOlR9AF", completed: true…}
http://pixel.quantserve.com/pixel;r=647549185;a=p-21jBY4_vbHNJQ;ezt=1;label…77649644334;tzo=240;ref=;url=http%3A%2F%2Fwww.tmz.com%2F;ogl=site_name.TMZ Resource {requests: Array[3], method: "GET", type: "image", url: "http://pixel.quantserve.com/pixel;r=647549185;a=p-…url=http%3A%2F%2Fwww.tmz.com%2F;ogl=site_name.TMZ", completed: true…}
https://www.google.com/js/bg/7zjptjcyAt08DUe0iv5XhxhDVFiWVeyLb0s17ZkQqVI.js Resource {requests: Array[3], method: "GET", type: "script", url: "https://www.google.com/js/bg/7zjptjcyAt08DUe0iv5XhxhDVFiWVeyLb0s17ZkQqVI.js", completed: true…}
https://static.doubleclick.net/instream/ad_status.js Resource {requests: Array[3], method: "GET", type: "script", url: "https://static.doubleclick.net/instream/ad_status.js", completed: true…}
http://rtax.criteo.com/delivery/rta/rta.js?netId=1870&cookieName=crtg_rta&varName=_20964532713044 Resource {requests: Array[3], method: "GET", type: "script", url: "http://rtax.criteo.com/delivery/rta/rta.js?netId=1870&cookieName=crtg_rta&varName=_20964532713044", completed: true…}
http://ll-assets.tmz.com/www.tmz.com/main/default/js/widgets/sidebar/followtmz/followtmz_formval.js Resource {requests: Array[3], method: "GET", type: "script", url: "http://ll-assets.tmz.com/www.tmz.com/main/default/js/widgets/sidebar/followtmz/followtmz_formval.js", completed: true…}
http://cdn.krxd.net/controltag/JXlj-zpN.js Resource {requests: Array[3], method: "GET", type: "script", url: "http://cdn.krxd.net/controltag/JXlj-zpN.js", completed: true…}
http://www.zergnet.com/output.js?id=34756&time=1477649645447&callback=json5764109 Resource {requests: Array[3], method: "GET", type: "script", url: "http://www.zergnet.com/output.js?id=34756&time=1477649645447&callback=json5764109", completed: true…}
https://mw-api.tmz.com/api/v1/socialactivities?id=2d775912-9c8e-11e6-9355-3…,77fe0750-9c7b-11e6-a201-30342d413951,0df06152-9c7e-11e6-b781-30342d413951 Resource {requests: Array[6], method: "OPTIONS", type: "xhr", url: "https://mw-api.tmz.com/api/v1/socialactivities?id=…30342d413951,0df06152-9c7e-11e6-b781-30342d413951", completed: true…}
http://rma-api.gravity.com/v1/api/intelligence/wdre?clientTime=147764964676…9149984&callback=jQuery182034340407873191925_1477649646374&_=1477649646768 Resource {requests: Array[3], method: "GET", type: "xhr", url: "http://rma-api.gravity.com/v1/api/intelligence/wdr…2034340407873191925_1477649646374&_=1477649646768", completed: true…}
http://www.zergnet.com/output.js?id=34754&time=1477649645486&callback=json1688647 Resource {requests: Array[3], method: "GET", type: "script", url: "http://www.zergnet.com/output.js?id=34754&time=1477649645486&callback=json1688647", completed: true…}
https://stats.g.doubleclick.net/r/collect?t=dc&aip=1&_r=3&v=1&_v=j47&tid=UA-51835118-1&cid=1030208204.1477649644&jid=771762038&_u=CGAAgEAj~&z=27379126 Resource {requests: Array[3], method: "GET", type: "image", url: "https://stats.g.doubleclick.net/r/collect?t=dc&aip….1477649644&jid=771762038&_u=CGAAgEAj~&z=27379126", completed: true…}
http://b.scorecardresearch.com/b?c1=7&c2=13739933&c3=20121515121&ns__t=1477…0%7C%20Celebrity%20News%20%7C%20TMZ.com&c7=http%3A%2F%2Fwww.tmz.com%2F&c9= Resource {requests: Array[3], method: "GET", type: "image", url: "http://b.scorecardresearch.com/b?c1=7&c2=13739933&…0%7C%20TMZ.com&c7=http%3A%2F%2Fwww.tmz.com%2F&c9=", completed: false…}
http://b.scorecardresearch.com/b?c1=2&c2=3000013&ns__t=1477649645544&ns_c=U…0%7C%20Celebrity%20News%20%7C%20TMZ.com&c7=http%3A%2F%2Fwww.tmz.com%2F&c9= Resource {requests: Array[3], method: "GET", type: "image", url: "http://b.scorecardresearch.com/b?c1=2&c2=3000013&n…0%7C%20TMZ.com&c7=http%3A%2F%2Fwww.tmz.com%2F&c9=", completed: false…}
http://widget.perfectmarket.com/tmz/pmk-201613001.5.js Resource {requests: Array[3], method: "GET", type: "script", url: "http://widget.perfectmarket.com/tmz/pmk-201613001.5.js", completed: true…}
http://rma-api.gravity.com/v1/beacons/initialize Resource {requests: Array[3], method: "GET", type: "script", url: "http://rma-api.gravity.com/v1/beacons/initialize", completed: true…}
http://ll-media.tmz.com/2016/10/24/1024-donald-trump-hillary-clinton-tmz-getty-01-139x99.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/24/1024-donald-trump-hillary-clinton-tmz-getty-01-139x99.jpg", completed: true…}
http://thumby.grvcdn.com/t/350x150/North/?url=http%3A%2F%2Fll-media.tmz.com%2F2016%2F10%2F27%2F1027-mariah-carey-james-packer-tmz-getty-300x225-1.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://thumby.grvcdn.com/t/350x150/North/?url=http…mariah-carey-james-packer-tmz-getty-300x225-1.jpg", completed: true…}
http://thumby.grvcdn.com/t/350x150/North/?url=http%3A%2F%2Fll-media.tmz.com%2F2016%2F10%2F27%2F1027-mariah-carey-james-packer-tmz-getty-300x225.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://thumby.grvcdn.com/t/350x150/North/?url=http…7-mariah-carey-james-packer-tmz-getty-300x225.jpg", completed: true…}
http://thumby.grvcdn.com/t/350x150/North/?url=http%3A%2F%2Fll-media.tmz.com%2F2016%2F10%2F25%2F1025-shirlene-quigley-found-twitter-02-300x225.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://thumby.grvcdn.com/t/350x150/North/?url=http…025-shirlene-quigley-found-twitter-02-300x225.jpg", completed: true…}
http://thumby.grvcdn.com/t/350x150/North/?url=http%3A%2F%2Fll-media.tmz.com%2F2016%2F10%2F26%2F1026-richard-curtis-abc-03-300x225.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://thumby.grvcdn.com/t/350x150/North/?url=http…F10%2F26%2F1026-richard-curtis-abc-03-300x225.jpg", completed: true…}
http://thumby.grvcdn.com/t/350x150/North/?url=http%3A%2F%2Fll-media.tmz.com%2F2016%2F10%2F21%2F1021-maria-bartiromo-donald-trump-cnn-300x225.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://thumby.grvcdn.com/t/350x150/North/?url=http…1021-maria-bartiromo-donald-trump-cnn-300x225.jpg", completed: true…}
http://www.google-analytics.com/collect?v=1&_v=j47&a=148541592&t=pageview&_…Aj~&jid=771762038&cid=1030208204.1477649644&tid=UA-51835118-1&z=1830620075 Resource {requests: Array[1], method: "GET", type: "image", url: "http://www.google-analytics.com/collect?v=1&_v=j47…0208204.1477649644&tid=UA-51835118-1&z=1830620075", completed: false…}
https://www.google-analytics.com/collect?v=1&_v=j47&a=148541592&t=pageview&…Aj~&jid=771762038&cid=1030208204.1477649644&tid=UA-51835118-1&z=1830620075 Resource {requests: Array[3], method: "GET", type: "image", url: "https://www.google-analytics.com/collect?v=1&_v=j4…0208204.1477649644&tid=UA-51835118-1&z=1830620075", completed: true…}
http://native.sharethrough.com/assets/sfp-iframe-buster.js Resource {requests: Array[3], method: "GET", type: "script", url: "http://native.sharethrough.com/assets/sfp-iframe-buster.js", completed: true…}
https://z.moatads.com/tmz695915919965/moatad.js#moatClientLevel1=74381664&m…44&moatClientSlicer1=54153864&moatClientSlicer2=54322224&zMoatPS=&zMoatST= Resource {requests: Array[3], method: "GET", type: "script", url: "https://z.moatads.com/tmz695915919965/moatad.js#mo…3864&moatClientSlicer2=54322224&zMoatPS=&zMoatST=", completed: true…}
http://wfpscripts.webspectator.com/bootstrap/ws-WS-TMZ00.js Resource {requests: Array[6], method: "GET", type: "script", url: "http://wfpscripts.webspectator.com/bootstrap/ws-WS-TMZ00.js", completed: true…}
http://static.grvcdn.com/personalization/underscore-min.map Resource {requests: Array[3], method: "GET", type: "other", url: "http://static.grvcdn.com/personalization/underscore-min.map", completed: true…}
http://platform.tumblr.com/v1/follow_button.html?button_type=2&tumblelog=tmz&color_scheme=dark Resource {requests: Array[3], method: "GET", type: "subFrame", url: "http://platform.tumblr.com/v1/follow_button.html?button_type=2&tumblelog=tmz&color_scheme=dark", completed: true…}
http://ll-media.tmz.com/2016/10/22/102216-allred-presser-primary-139x99.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/22/102216-allred-presser-primary-139x99.jpg", completed: true…}
http://ll-media.tmz.com/2016/10/26/102616-james-otis-primary-139x99.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/26/102616-james-otis-primary-139x99.jpg", completed: true…}
http://ll-media.tmz.com/2016/10/24/1024-trump-drake-r2r-tmz-instagram-primary-01-139x99.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/24/1024-trump-drake-r2r-tmz-instagram-primary-01-139x99.jpg", completed: true…}
http://ll-media.tmz.com/2016/10/25/1025-brad-pitt-angelina-jolie-tmz-139x99.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-media.tmz.com/2016/10/25/1025-brad-pitt-angelina-jolie-tmz-139x99.jpg", completed: true…}
http://trc.taboola.com/tmz/log/2/debug?tim=06%3A14%3A05.996&type=map&msg=trcrboxui%20page_management%20parseXML&id=4272&cv=230-RELEASE Resource {requests: Array[3], method: "GET", type: "image", url: "http://trc.taboola.com/tmz/log/2/debug?tim=06%3A14…page_management%20parseXML&id=4272&cv=230-RELEASE", completed: true…}
http://ox-d.warnerbros.servedbyopenx.com/w/1.0/acj?ef=db&o=6748042584&callb…UTF-8&tz=240&ws=800x600&vmt=1&bi=37c28dfb-3ef4-4960-874e-e976b483f615&sd=1 Resource {requests: Array[3], method: "GET", type: "script", url: "http://ox-d.warnerbros.servedbyopenx.com/w/1.0/acj…mt=1&bi=37c28dfb-3ef4-4960-874e-e976b483f615&sd=1", completed: false…}
http://ox-d.warnerbros.servedbyopenx.com/w/1.0/acj?ef=db&o=1918742567&callb…UTF-8&tz=240&ws=800x600&vmt=1&bi=37c28dfb-3ef4-4960-874e-e976b483f615&sd=1 Resource {requests: Array[3], method: "GET", type: "script", url: "http://ox-d.warnerbros.servedbyopenx.com/w/1.0/acj…mt=1&bi=37c28dfb-3ef4-4960-874e-e976b483f615&sd=1", completed: false…}
http://b.scorecardresearch.com/b2?c1=7&c2=13739933&c3=20121515121&ns__t=147…0%7C%20Celebrity%20News%20%7C%20TMZ.com&c7=http%3A%2F%2Fwww.tmz.com%2F&c9= Resource {requests: Array[3], method: "GET", type: "image", url: "http://b.scorecardresearch.com/b2?c1=7&c2=13739933…0%7C%20TMZ.com&c7=http%3A%2F%2Fwww.tmz.com%2F&c9=", completed: true…}
http://b.scorecardresearch.com/b2?c1=2&c2=3000013&ns__t=1477649645544&ns_c=…0%7C%20Celebrity%20News%20%7C%20TMZ.com&c7=http%3A%2F%2Fwww.tmz.com%2F&c9= Resource {requests: Array[3], method: "GET", type: "image", url: "http://b.scorecardresearch.com/b2?c1=2&c2=3000013&…0%7C%20TMZ.com&c7=http%3A%2F%2Fwww.tmz.com%2F&c9=", completed: true…}
http://ox-d.warnerbros.servedbyopenx.com/w/1.0/acj?ef=db&o=7030718955&callb…UTF-8&tz=240&ws=800x600&vmt=1&bi=37c28dfb-3ef4-4960-874e-e976b483f615&sd=1 Resource {requests: Array[3], method: "GET", type: "script", url: "http://ox-d.warnerbros.servedbyopenx.com/w/1.0/acj…mt=1&bi=37c28dfb-3ef4-4960-874e-e976b483f615&sd=1", completed: false…}
http://ox-d.warnerbros.servedbyopenx.com/w/1.0/acj?ef=db&o=1276365955&callb…UTF-8&tz=240&ws=800x600&vmt=1&bi=37c28dfb-3ef4-4960-874e-e976b483f615&sd=1 Resource {requests: Array[3], method: "GET", type: "script", url: "http://ox-d.warnerbros.servedbyopenx.com/w/1.0/acj…mt=1&bi=37c28dfb-3ef4-4960-874e-e976b483f615&sd=1", completed: false…}
http://ox-d.warnerbros.servedbyopenx.com/w/1.0/acj?ef=db&o=4784557441&callb…UTF-8&tz=240&ws=800x600&vmt=1&bi=37c28dfb-3ef4-4960-874e-e976b483f615&sd=1 Resource {requests: Array[3], method: "GET", type: "script", url: "http://ox-d.warnerbros.servedbyopenx.com/w/1.0/acj…mt=1&bi=37c28dfb-3ef4-4960-874e-e976b483f615&sd=1", completed: false…}
http://ox-d.warnerbros.servedbyopenx.com/w/1.0/acj?ef=db&o=4080418283&callb…UTF-8&tz=240&ws=800x600&vmt=1&bi=37c28dfb-3ef4-4960-874e-e976b483f615&sd=1 Resource {requests: Array[3], method: "GET", type: "script", url: "http://ox-d.warnerbros.servedbyopenx.com/w/1.0/acj…mt=1&bi=37c28dfb-3ef4-4960-874e-e976b483f615&sd=1", completed: false…}
http://w.sharethis.com/button/async-buttons.js Resource {requests: Array[3], method: "GET", type: "script", url: "http://w.sharethis.com/button/async-buttons.js", completed: true…}
http://l.sharethis.com/pview?event=pview&version=buttons.js&lang=en&fpc=751…ainment%20News%20%7C%20Celebrity%20News%20%7C%20TMZ.com&ts1477649646432.0= Resource {requests: Array[3], method: "GET", type: "image", url: "http://l.sharethis.com/pview?event=pview&version=b…lebrity%20News%20%7C%20TMZ.com&ts1477649646432.0=", completed: true…}
http://trc.taboola.com/tmz/trc/3/json?tim=06%3A14%3A06.574&data=%7BNaNd%22%3A850%2C%ii%22%3A%_homepage_%22%2C%it%22%3A%22home%22%2C%sd%22%3Anull%2C%22ui%22%3Anull%2C%22vi%22%3A1477649646569%2C%cv%22%3A%22230-RELEASE%22%2C%22uiv%22%3A%default%22%2C%22u%22%3A%22http%3A%2F%2Fwww.tmz.com%2F%22%2C%22r%22%3A%5B%7B%22li%22%3A%22rbox-h2m%22%2C%s%22%3A5%2C%22uim%22%3A%organic-thumbs-5r%3Aabp%3D0%22%2C%22uip%22%3A%22Right%20Rail%20Thumbnails%22%2C%orig_uip%22%3A%22Right%20Rail%20Thumbnails%22%7D%2C%7B%22li%22%3A%22rbox-h2v%22%2C%s%22%3A4%2C%22uim%22%3A%22autosized-generated-2r-rr%3Aabp%3D0%22%2C%22uip%22%3A%sidebar%22%2C%orig_uip%22%3A%sidebar%22%7D%2C%7B%22li%22%3A%22rbox-h2v%22%2C%s%22%3A3%2C%22uim%22%3A%22horizontalx3%3Aabp%3D0%22%2C%22uip%22%3A%22horizontalx3%22%2C%orig_uip%22%3A%22horizontalx3%22%7D%5D%2C%cb%22%3A%22TRC.callbacks.recommendations_1%22%2C%22lt%22%3A%22normal%22%7D
http://static.grvcdn.com/personalization/grv_adChoices2.3ce3939de80301b42b7c38cafd10899a.png Resource {requests: Array[3], method: "GET", type: "image", url: "http://static.grvcdn.com/personalization/grv_adChoices2.3ce3939de80301b42b7c38cafd10899a.png", completed: true…}
http://ox-d.warnerbros.servedbyopenx.com/w/1.0/acj?cc=1&ef=db&o=6748042584&…UTF-8&tz=240&ws=800x600&vmt=1&bi=37c28dfb-3ef4-4960-874e-e976b483f615&sd=1 Resource {requests: Array[3], method: "GET", type: "script", url: "http://ox-d.warnerbros.servedbyopenx.com/w/1.0/acj…mt=1&bi=37c28dfb-3ef4-4960-874e-e976b483f615&sd=1", completed: false…}
http://ox-d.warnerbros.servedbyopenx.com/w/1.0/acj?cc=1&ef=db&o=1918742567&…UTF-8&tz=240&ws=800x600&vmt=1&bi=37c28dfb-3ef4-4960-874e-e976b483f615&sd=1 Resource {requests: Array[3], method: "GET", type: "script", url: "http://ox-d.warnerbros.servedbyopenx.com/w/1.0/acj…mt=1&bi=37c28dfb-3ef4-4960-874e-e976b483f615&sd=1", completed: false…}
http://ox-d.warnerbros.servedbyopenx.com/w/1.0/acj?cc=1&ef=db&o=7030718955&…UTF-8&tz=240&ws=800x600&vmt=1&bi=37c28dfb-3ef4-4960-874e-e976b483f615&sd=1 Resource {requests: Array[3], method: "GET", type: "script", url: "http://ox-d.warnerbros.servedbyopenx.com/w/1.0/acj…mt=1&bi=37c28dfb-3ef4-4960-874e-e976b483f615&sd=1", completed: false…}
http://platform.tumblr.com/v1/follow_button.js Resource {requests: Array[3], method: "GET", type: "script", url: "http://platform.tumblr.com/v1/follow_button.js", completed: true…}
http://o.aolcdn.com/os_merge/?file=/aol/beacon.min.js&file=/aol/omniture.min.js Resource {requests: Array[3], method: "GET", type: "script", url: "http://o.aolcdn.com/os_merge/?file=/aol/beacon.min.js&file=/aol/omniture.min.js", completed: true…}
http://btlr.sharethrough.com/v4?placement_key=629813e8&bluekai=%7BResourcetatus%22%3A%22expired%22%7D&ijson=native_callback_1&cache=1477649647500
http://ox-d.warnerbros.servedbyopenx.com/w/1.0/acj?cc=1&ef=db&o=1276365955&…UTF-8&tz=240&ws=800x600&vmt=1&bi=37c28dfb-3ef4-4960-874e-e976b483f615&sd=1 Resource {requests: Array[3], method: "GET", type: "script", url: "http://ox-d.warnerbros.servedbyopenx.com/w/1.0/acj…mt=1&bi=37c28dfb-3ef4-4960-874e-e976b483f615&sd=1", completed: false…}
http://ox-d.warnerbros.servedbyopenx.com/w/1.0/acj?cc=1&ef=db&o=4784557441&…UTF-8&tz=240&ws=800x600&vmt=1&bi=37c28dfb-3ef4-4960-874e-e976b483f615&sd=1 Resource {requests: Array[3], method: "GET", type: "script", url: "http://ox-d.warnerbros.servedbyopenx.com/w/1.0/acj…mt=1&bi=37c28dfb-3ef4-4960-874e-e976b483f615&sd=1", completed: false…}
http://ox-d.warnerbros.servedbyopenx.com/w/1.0/acj?cc=1&ef=db&o=4080418283&…UTF-8&tz=240&ws=800x600&vmt=1&bi=37c28dfb-3ef4-4960-874e-e976b483f615&sd=1 Resource {requests: Array[3], method: "GET", type: "script", url: "http://ox-d.warnerbros.servedbyopenx.com/w/1.0/acj…mt=1&bi=37c28dfb-3ef4-4960-874e-e976b483f615&sd=1", completed: false…}
http://pagead2.googlesyndication.com/pagead/osd.js Resource {requests: Array[3], method: "GET", type: "script", url: "http://pagead2.googlesyndication.com/pagead/osd.js", completed: true…}
http://tmz.disqus.com/count-data.js?1=0df06152-9c7e-11e6-b781-30342d413951&…7fe0750-9c7b-11e6-a201-30342d413951&1=d7840a44-9c94-11e6-aed4-30342d413951 Resource {requests: Array[3], method: "GET", type: "script", url: "http://tmz.disqus.com/count-data.js?1=0df06152-9c7…342d413951&1=d7840a44-9c94-11e6-aed4-30342d413951", completed: true…}
http://tmz.disqus.com/count-data.js?1=e85b0310-9c8d-11e6-a7c7-30342d413951&…p%3A%2F%2Fwww.tmz.com%2F2016%2F10%2F27%2Ftrump-star-vandal-family-money%2F Resource {requests: Array[3], method: "GET", type: "script", url: "http://tmz.disqus.com/count-data.js?1=e85b0310-9c8…016%2F10%2F27%2Ftrump-star-vandal-family-money%2F", completed: true…}
http://u.openx.net/w/1.0/sc?r=http%3A%2F%2Fox-d.warnerbros.servedbyopenx.com%2Fw%2F1.0%2Facj%3Fcc%3D1%26ef%3DdbResource%3D6748042584%callback%3DOX_6748042584%26ju%3Dhttp%253A%2F%2Fwww.tmz.com%2F%26jr%3D%26be%3D1%26auid%3D538144047%26aus%3D728x90%252C970x66%252C1010x150%252C970x250%252C1010x250%dims%3D800x600%26adxy%3D393%252C29%c.pos%3Dtop%c.tile%3D1%c.rpfl_elemid%3D728x90_1%c.khost%3Dwww.tmz.com%c.bucket%3D18%26res%3D1920x1080x24%26plg%3Dpm%ch%3DUTF-8%26tz%3D240%26ws%3D800x600%26vmt%3D1%26bi%3D37c28dfb-3ef4-4960-874e-e976b483f615%sd%3D1
http://u.openx.net/w/1.0/sc?r=http%3A%2F%2Fox-d.warnerbros.servedbyopenx.com%2Fw%2F1.0%2Facj%3Fcc%3D1%26ef%3DdbResource%3D1918742567%callback%3DOX_1918742567%26ju%3Dhttp%253A%2F%2Fwww.tmz.com%2F%26jr%3D%26be%3D1%26auid%3D538144047%26aus%3D300x250%dims%3D800x600%26adxy%3D12%252C10939%c.pos%3Dinpost%252Cbottom%c.tile%3D4%c.rpfl_elemid%3D300x250_4%c.khost%3Dwww.tmz.com%c.bucket%3D18%26res%3D1920x1080x24%26plg%3Dpm%ch%3DUTF-8%26tz%3D240%26ws%3D800x600%26vmt%3D1%26bi%3D37c28dfb-3ef4-4960-874e-e976b483f615%sd%3D1
http://u.openx.net/w/1.0/sc?r=http%3A%2F%2Fox-d.warnerbros.servedbyopenx.com%2Fw%2F1.0%2Facj%3Fcc%3D1%26ef%3DdbResource%3D7030718955%callback%3DOX_7030718955%26ju%3Dhttp%253A%2F%2Fwww.tmz.com%2F%26jr%3D%26be%3D1%26auid%3D538144047%26aus%3D300x250%252C300x600%dims%3D800x600%26adxy%3D780%252C549%c.pos%3Dtop%c.tile%3D2%c.rpfl_elemid%3D300x250_300x600_2%c.khost%3Dwww.tmz.com%c.bucket%3D18%26res%3D1920x1080x24%26plg%3Dpm%ch%3DUTF-8%26tz%3D240%26ws%3D800x600%26vmt%3D1%26bi%3D37c28dfb-3ef4-4960-874e-e976b483f615%sd%3D1
http://ox-d.warnerbros.servedbyopenx.com/w/1.0/acj?ef=db&o=2266752521&callb…UTF-8&tz=240&ws=800x600&vmt=1&bi=37c28dfb-3ef4-4960-874e-e976b483f615&sd=1 Resource {requests: Array[3], method: "GET", type: "script", url: "http://ox-d.warnerbros.servedbyopenx.com/w/1.0/acj…mt=1&bi=37c28dfb-3ef4-4960-874e-e976b483f615&sd=1", completed: false…}
http://ox-d.warnerbros.servedbyopenx.com/w/1.0/acj?ef=db&o=5239978699&callb…UTF-8&tz=240&ws=800x600&vmt=1&bi=37c28dfb-3ef4-4960-874e-e976b483f615&sd=1 Resource {requests: Array[3], method: "GET", type: "script", url: "http://ox-d.warnerbros.servedbyopenx.com/w/1.0/acj…mt=1&bi=37c28dfb-3ef4-4960-874e-e976b483f615&sd=1", completed: false…}
http://tmz.disqus.com/count-data.js?2=http%3A%2F%2Fwww.tmz.com%2F2016%2F10%….tmz.com%2F2016%2F10%2F28%2Ftori-brixx-sexy-swimsuit-thong-booty-photos%2F Resource {requests: Array[3], method: "GET", type: "script", url: "http://tmz.disqus.com/count-data.js?2=http%3A%2F%2…%2Ftori-brixx-sexy-swimsuit-thong-booty-photos%2F", completed: true…}
http://badges.instagram.com/static/images/ig-badge-view-24.png Resource {requests: Array[3], method: "GET", type: "image", url: "http://badges.instagram.com/static/images/ig-badge-view-24.png", completed: false…}
http://u.openx.net/w/1.0/sc?r=http%3A%2F%2Fox-d.warnerbros.servedbyopenx.com%2Fw%2F1.0%2Facj%3Fcc%3D1%26ef%3DdbResource%3D1276365955%callback%3DOX_1276365955%26ju%3Dhttp%253A%2F%2Fwww.tmz.com%2F%26jr%3D%26be%3D1%26auid%3D538144047%26aus%3D300x250%dims%3D800x600%26adxy%3D780%252C4954%c.pos%3Dspon_bottom%252Cbottom%c.tile%3D3%c.rpfl_elemid%3D300x250_3%c.khost%3Dwww.tmz.com%c.bucket%3D18%26res%3D1920x1080x24%26plg%3Dpm%ch%3DUTF-8%26tz%3D240%26ws%3D800x600%26vmt%3D1%26bi%3D37c28dfb-3ef4-4960-874e-e976b483f615%sd%3D1
http://u.openx.net/w/1.0/sc?r=http%3A%2F%2Fox-d.warnerbros.servedbyopenx.com%2Fw%2F1.0%2Facj%3Fcc%3D1%26ef%3DdbResource%3D4784557441%callback%3DOX_4784557441%26ju%3Dhttp%253A%2F%2Fwww.tmz.com%2F%26jr%3D%26be%3D1%26auid%3D538144047%26aus%3D300x250%dims%3D800x600%26adxy%3D780%252C7504%c.pos%3Dbottom%c.tile%3D5%c.rpfl_elemid%3D300x250_5%c.khost%3Dwww.tmz.com%c.bucket%3D18%26res%3D1920x1080x24%26plg%3Dpm%ch%3DUTF-8%26tz%3D240%26ws%3D800x600%26vmt%3D1%26bi%3D37c28dfb-3ef4-4960-874e-e976b483f615%sd%3D1
http://u.openx.net/w/1.0/sc?r=http%3A%2F%2Fox-d.warnerbros.servedbyopenx.com%2Fw%2F1.0%2Facj%3Fcc%3D1%26ef%3DdbResource%3D4080418283%callback%3DOX_4080418283%26ju%3Dhttp%253A%2F%2Fwww.tmz.com%2F%26jr%3D%26be%3D1%26auid%3D538144047%26aus%3D300x250%dims%3D800x600%26adxy%3D780%252C9463%c.pos%3Dbottom%c.tile%3D6%c.rpfl_elemid%3D300x250_6%c.khost%3Dwww.tmz.com%c.bucket%3D18%26res%3D1920x1080x24%26plg%3Dpm%ch%3DUTF-8%26tz%3D240%26ws%3D800x600%26vmt%3D1%26bi%3D37c28dfb-3ef4-4960-874e-e976b483f615%sd%3D1
http://trc.taboola.com/tmz/log/3/available Resource {requests: Array[9], method: "POST", type: "subFrame", url: "http://trc.taboola.com/tmz/log/3/available", completed: true…}
http://assets.pinterest.com/js/pinit.js?_=1477649642446 Resource {requests: Array[3], method: "GET", type: "script", url: "http://assets.pinterest.com/js/pinit.js?_=1477649642446", completed: true…}
http://u.openx.net/w/1.0/sc?cc=1&r=http%3A%2F%2Fox-d.warnerbros.servedbyopenx.com%2Fw%2F1.0%2Facj%3Fcc%3D1%26ef%3DdbResource%3D6748042584%callback%3DOX_6748042584%26ju%3Dhttp%253A%2F%2Fwww.tmz.com%2F%26jr%3D%26be%3D1%26auid%3D538144047%26aus%3D728x90%252C970x66%252C1010x150%252C970x250%252C1010x250%dims%3D800x600%26adxy%3D393%252C29%c.pos%3Dtop%c.tile%3D1%c.rpfl_elemid%3D728x90_1%c.khost%3Dwww.tmz.com%c.bucket%3D18%26res%3D1920x1080x24%26plg%3Dpm%ch%3DUTF-8%26tz%3D240%26ws%3D800x600%26vmt%3D1%26bi%3D37c28dfb-3ef4-4960-874e-e976b483f615%sd%3D1
http://u.openx.net/w/1.0/sc?cc=1&r=http%3A%2F%2Fox-d.warnerbros.servedbyopenx.com%2Fw%2F1.0%2Facj%3Fcc%3D1%26ef%3DdbResource%3D7030718955%callback%3DOX_7030718955%26ju%3Dhttp%253A%2F%2Fwww.tmz.com%2F%26jr%3D%26be%3D1%26auid%3D538144047%26aus%3D300x250%252C300x600%dims%3D800x600%26adxy%3D780%252C549%c.pos%3Dtop%c.tile%3D2%c.rpfl_elemid%3D300x250_300x600_2%c.khost%3Dwww.tmz.com%c.bucket%3D18%26res%3D1920x1080x24%26plg%3Dpm%ch%3DUTF-8%26tz%3D240%26ws%3D800x600%26vmt%3D1%26bi%3D37c28dfb-3ef4-4960-874e-e976b483f615%sd%3D1
http://u.openx.net/w/1.0/sc?cc=1&r=http%3A%2F%2Fox-d.warnerbros.servedbyopenx.com%2Fw%2F1.0%2Facj%3Fcc%3D1%26ef%3DdbResource%3D1918742567%callback%3DOX_1918742567%26ju%3Dhttp%253A%2F%2Fwww.tmz.com%2F%26jr%3D%26be%3D1%26auid%3D538144047%26aus%3D300x250%dims%3D800x600%26adxy%3D12%252C10939%c.pos%3Dinpost%252Cbottom%c.tile%3D4%c.rpfl_elemid%3D300x250_4%c.khost%3Dwww.tmz.com%c.bucket%3D18%26res%3D1920x1080x24%26plg%3Dpm%ch%3DUTF-8%26tz%3D240%26ws%3D800x600%26vmt%3D1%26bi%3D37c28dfb-3ef4-4960-874e-e976b483f615%sd%3D1
http://u.openx.net/w/1.0/sc?r=http%3A%2F%2Fox-d.warnerbros.servedbyopenx.com%2Fw%2F1.0%2Facj%3Fef%3DdbResource%3D2266752521%callback%3DOX_2266752521%26ju%3Dhttp%253A%2F%2Fwww.tmz.com%2F%26jr%3D%26be%3D1%26auid%3D538144047%26aus%3D300x250%dims%3D800x600%26adxy%3D780%252C9915%c.pos%3Dbottom%c.tile%3D7%c.rpfl_elemid%3D300x250_7%c.khost%3Dwww.tmz.com%c.bucket%3D18%26res%3D1920x1080x24%26plg%3Dpm%ch%3DUTF-8%26tz%3D240%26ws%3D800x600%26vmt%3D1%26bi%3D37c28dfb-3ef4-4960-874e-e976b483f615%sd%3D1
http://u.openx.net/w/1.0/sc?r=http%3A%2F%2Fox-d.warnerbros.servedbyopenx.com%2Fw%2F1.0%2Facj%3Fef%3DdbResource%3D5239978699%callback%3DOX_5239978699%26ju%3Dhttp%253A%2F%2Fwww.tmz.com%2F%26jr%3D%26be%3D1%26auid%3D538144047%26aus%3D300x250%252C300x600%dims%3D800x600%26adxy%3D780%252C9915%c.pos%3Dsticky%252Cbottom%c.tile%3D10%c.khost%3Dwww.tmz.com%c.bucket%3D18%26res%3D1920x1080x24%26plg%3Dpm%ch%3DUTF-8%26tz%3D240%26ws%3D800x600%26vmt%3D1%26bi%3D37c28dfb-3ef4-4960-874e-e976b483f615%sd%3D1
http://u.openx.net/w/1.0/sc?cc=1&r=http%3A%2F%2Fox-d.warnerbros.servedbyopenx.com%2Fw%2F1.0%2Facj%3Fcc%3D1%26ef%3DdbResource%3D1276365955%callback%3DOX_1276365955%26ju%3Dhttp%253A%2F%2Fwww.tmz.com%2F%26jr%3D%26be%3D1%26auid%3D538144047%26aus%3D300x250%dims%3D800x600%26adxy%3D780%252C4954%c.pos%3Dspon_bottom%252Cbottom%c.tile%3D3%c.rpfl_elemid%3D300x250_3%c.khost%3Dwww.tmz.com%c.bucket%3D18%26res%3D1920x1080x24%26plg%3Dpm%ch%3DUTF-8%26tz%3D240%26ws%3D800x600%26vmt%3D1%26bi%3D37c28dfb-3ef4-4960-874e-e976b483f615%sd%3D1
http://u.openx.net/w/1.0/sc?cc=1&r=http%3A%2F%2Fox-d.warnerbros.servedbyopenx.com%2Fw%2F1.0%2Facj%3Fcc%3D1%26ef%3DdbResource%3D4784557441%callback%3DOX_4784557441%26ju%3Dhttp%253A%2F%2Fwww.tmz.com%2F%26jr%3D%26be%3D1%26auid%3D538144047%26aus%3D300x250%dims%3D800x600%26adxy%3D780%252C7504%c.pos%3Dbottom%c.tile%3D5%c.rpfl_elemid%3D300x250_5%c.khost%3Dwww.tmz.com%c.bucket%3D18%26res%3D1920x1080x24%26plg%3Dpm%ch%3DUTF-8%26tz%3D240%26ws%3D800x600%26vmt%3D1%26bi%3D37c28dfb-3ef4-4960-874e-e976b483f615%sd%3D1
http://u.openx.net/w/1.0/sc?cc=1&r=http%3A%2F%2Fox-d.warnerbros.servedbyopenx.com%2Fw%2F1.0%2Facj%3Fcc%3D1%26ef%3DdbResource%3D4080418283%callback%3DOX_4080418283%26ju%3Dhttp%253A%2F%2Fwww.tmz.com%2F%26jr%3D%26be%3D1%26auid%3D538144047%26aus%3D300x250%dims%3D800x600%26adxy%3D780%252C9463%c.pos%3Dbottom%c.tile%3D6%c.rpfl_elemid%3D300x250_6%c.khost%3Dwww.tmz.com%c.bucket%3D18%26res%3D1920x1080x24%26plg%3Dpm%ch%3DUTF-8%26tz%3D240%26ws%3D800x600%26vmt%3D1%26bi%3D37c28dfb-3ef4-4960-874e-e976b483f615%sd%3D1
http://instagramstatic-a.akamaihd.net/h1/thirdparty/images/badges/ig-badge-view-24.png/c2f23494e67d.png Resource {requests: Array[3], method: "GET", type: "image", url: "http://instagramstatic-a.akamaihd.net/h1/thirdpart…ages/badges/ig-badge-view-24.png/c2f23494e67d.png", completed: true…}
http://ox-d.warnerbros.servedbyopenx.com/w/1.0/acj?mi=ee555e71-d9d9-4259-3e…UTF-8&tz=240&ws=800x600&vmt=1&bi=37c28dfb-3ef4-4960-874e-e976b483f615&sd=1 Resource {requests: Array[3], method: "GET", type: "script", url: "http://ox-d.warnerbros.servedbyopenx.com/w/1.0/acj…mt=1&bi=37c28dfb-3ef4-4960-874e-e976b483f615&sd=1", completed: true…}
http://ox-d.warnerbros.servedbyopenx.com/w/1.0/acj?mi=ee555e71-d9d9-4259-3e…UTF-8&tz=240&ws=800x600&vmt=1&bi=37c28dfb-3ef4-4960-874e-e976b483f615&sd=1 Resource {requests: Array[3], method: "GET", type: "script", url: "http://ox-d.warnerbros.servedbyopenx.com/w/1.0/acj…mt=1&bi=37c28dfb-3ef4-4960-874e-e976b483f615&sd=1", completed: true…}
http://ox-d.warnerbros.servedbyopenx.com/w/1.0/acj?mi=ee555e71-d9d9-4259-3e…UTF-8&tz=240&ws=800x600&vmt=1&bi=37c28dfb-3ef4-4960-874e-e976b483f615&sd=1 Resource {requests: Array[3], method: "GET", type: "script", url: "http://ox-d.warnerbros.servedbyopenx.com/w/1.0/acj…mt=1&bi=37c28dfb-3ef4-4960-874e-e976b483f615&sd=1", completed: true…}
http://platform.twitter.com/widgets.js Resource {requests: Array[3], method: "GET", type: "script", url: "http://platform.twitter.com/widgets.js", completed: true…}
http://ox-d.warnerbros.servedbyopenx.com/w/1.0/acj?mi=ee555e71-d9d9-4259-3e…UTF-8&tz=240&ws=800x600&vmt=1&bi=37c28dfb-3ef4-4960-874e-e976b483f615&sd=1 Resource {requests: Array[3], method: "GET", type: "script", url: "http://ox-d.warnerbros.servedbyopenx.com/w/1.0/acj…mt=1&bi=37c28dfb-3ef4-4960-874e-e976b483f615&sd=1", completed: true…}
http://ox-d.warnerbros.servedbyopenx.com/w/1.0/acj?mi=ee555e71-d9d9-4259-3e…UTF-8&tz=240&ws=800x600&vmt=1&bi=37c28dfb-3ef4-4960-874e-e976b483f615&sd=1 Resource {requests: Array[3], method: "GET", type: "script", url: "http://ox-d.warnerbros.servedbyopenx.com/w/1.0/acj…mt=1&bi=37c28dfb-3ef4-4960-874e-e976b483f615&sd=1", completed: true…}
http://ox-d.warnerbros.servedbyopenx.com/w/1.0/acj?mi=6cd97d30-0b4c-4d24-4a…UTF-8&tz=240&ws=800x600&vmt=1&bi=37c28dfb-3ef4-4960-874e-e976b483f615&sd=1 Resource {requests: Array[3], method: "GET", type: "script", url: "http://ox-d.warnerbros.servedbyopenx.com/w/1.0/acj…mt=1&bi=37c28dfb-3ef4-4960-874e-e976b483f615&sd=1", completed: true…}
http://ox-d.warnerbros.servedbyopenx.com/w/1.0/acj?mi=6cd97d30-0b4c-4d24-4a…UTF-8&tz=240&ws=800x600&vmt=1&bi=37c28dfb-3ef4-4960-874e-e976b483f615&sd=1 Resource {requests: Array[3], method: "GET", type: "script", url: "http://ox-d.warnerbros.servedbyopenx.com/w/1.0/acj…mt=1&bi=37c28dfb-3ef4-4960-874e-e976b483f615&sd=1", completed: true…}
http://ox-d.warnerbros.servedbyopenx.com/w/1.0/acj?mi=6cd97d30-0b4c-4d24-4a…UTF-8&tz=240&ws=800x600&vmt=1&bi=37c28dfb-3ef4-4960-874e-e976b483f615&sd=1 Resource {requests: Array[3], method: "GET", type: "script", url: "http://ox-d.warnerbros.servedbyopenx.com/w/1.0/acj…mt=1&bi=37c28dfb-3ef4-4960-874e-e976b483f615&sd=1", completed: true…}
http://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.0 Resource {requests: Array[3], method: "GET", type: "script", url: "http://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.0", completed: true…}
http://ll-assets.tmz.com/www.tmz.com/main/default/img/widgets/follow-tmz/followwidget_sprite.png Resource {requests: Array[3], method: "GET", type: "image", url: "http://ll-assets.tmz.com/www.tmz.com/main/default/img/widgets/follow-tmz/followwidget_sprite.png", completed: true…}
http://stats.aws.rubiconproject.com/stats/ Resource {requests: Array[3], method: "POST", type: "xhr", url: "http://stats.aws.rubiconproject.com/stats/", completed: true…}
http://img4.zergnet.com/1216715_180.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://img4.zergnet.com/1216715_180.jpg", completed: true…}
http://img2.zergnet.com/1268297_180.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://img2.zergnet.com/1268297_180.jpg", completed: true…}
http://img1.zergnet.com/1212020_180.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://img1.zergnet.com/1212020_180.jpg", completed: true…}
http://img5.zergnet.com/1268294_180.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://img5.zergnet.com/1268294_180.jpg", completed: true…}
http://img2.zergnet.com/1169697_180.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://img2.zergnet.com/1169697_180.jpg", completed: true…}
http://img1.zergnet.com/1268288_180.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://img1.zergnet.com/1268288_180.jpg", completed: true…}
https://securepubads.g.doubleclick.net/gampad/ads?gdfp_req=1&correlator=352…0x250%7C300x600&scp=pos%3Dtop%26tile%3D2%26rpfl_elemid%3D300x250_300x600_2Resourcex300x250%3D75%252COX%252C75_OX%26IOM%3D15_5&cust_params=khost%3Dwww.tmz.com%26bucket%3D18&cookie=ID%3Dce1cf677f1638aac%3AT%3D1477649646%3AS…04&vrp=104&ga_vid=1030208204.1477649644&ga_sid=1477649646&ga_hid=148541592
http://img4.zergnet.com/1074103_180.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://img4.zergnet.com/1074103_180.jpg", completed: true…}
http://img5.zergnet.com/1268290_180.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://img5.zergnet.com/1268290_180.jpg", completed: true…}
https://securepubads.g.doubleclick.net/gampad/ads?gdfp_req=1&correlator=352…150%7C970x250%7C1010x250&scp=pos%3Dtop%26tile%3D1%26rpfl_elemid%3D728x90_1Resourcex728x90%3D15%252COX%252C15_OX%26IOM%3D3_15&cust_params=khost%3Dwww.tmz.com%26bucket%3D18&cookie=ID%3Dce1cf677f1638aac%3AT%3D1477649646%3AS…04&vrp=104&ga_vid=1030208204.1477649644&ga_sid=1477649646&ga_hid=148541592
http://img1.zergnet.com/1249760_180.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://img1.zergnet.com/1249760_180.jpg", completed: true…}
http://img1.zergnet.com/1261220_180.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://img1.zergnet.com/1261220_180.jpg", completed: true…}
https://securepubads.g.doubleclick.net/gampad/ads?gdfp_req=1&correlator=352…mz%2Fhome&sz=300x250&scp=pos%3Dbottom%26tile%3D7%26rpfl_elemid%3D300x250_7Resourcex300x250%3D55%252COX%252C55_OX%26IOM%3D14_15&cust_params=khost%3Dwww.tmz.com%26bucket%3D18&cookie=ID%3Dce1cf677f1638aac%3AT%3D1477649646%3AS…04&vrp=104&ga_vid=1030208204.1477649644&ga_sid=1477649646&ga_hid=148541592
http://img4.zergnet.com/1225407_180.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://img4.zergnet.com/1225407_180.jpg", completed: true…}
http://rma-api.gravity.com/v1/beacons/log?cbust=265-7&site_guid=82893b79564…Entertainment%20News%20%7C%20Celebrity%20News%20%7C%20TMZ.com&type=content Resource {requests: Array[3], method: "GET", type: "script", url: "http://rma-api.gravity.com/v1/beacons/log?cbust=26…C%20Celebrity%20News%20%7C%20TMZ.com&type=content", completed: true…}
https://graph.facebook.com/fql?q=SELECT%20url,%20normalized_url,Resourcehare_count,%20like_count,%comment_count,%20total_count,commentsbox_count,%comments_fbid,%click_count%20FROM%20link_stat%20WHERE%20url=%27http%3A%2F%2Fwww.tmz.com%2F2016%2F10%2F28%2Fdonald-trump-accuser-mindy-mcgillivray-voted%2F%27&callback=jQuery2030395929224467485_1477649642447&_=1477649642448
https://securepubads.g.doubleclick.net/gampad/ads?gdfp_req=1&correlator=352…x250&scp=pos%3Dspon_bottom%252Cbottom%26tile%3D3%26rpfl_elemid%3D300x250_3Resourcex300x250%3D190%252COX%252C190_OX&cust_params=khost%3Dwww.tmz.com%26bucket%3D18&cookie=ID%3Dce1cf677f1638aac%3AT%3D1477649646%3AS…04&vrp=104&ga_vid=1030208204.1477649644&ga_sid=1477649646&ga_hid=148541592
https://graph.facebook.com/fql?q=SELECT%20url,%20normalized_url,Resourcehare_count,%20like_count,%comment_count,%20total_count,commentsbox_count,%comments_fbid,%click_count%20FROM%20link_stat%20WHERE%20url=%27http%3A%2F%2Fwww.tmz.com%2F2016%2F10%2F27%2Fmariah-carey-james-packer-breakup-dancer-fight%2F%27&callback=jQuery2030395929224467485_1477649642449&_=1477649642450
https://graph.facebook.com/fql?q=SELECT%20url,%20normalized_url,Resourcehare_count,%20like_count,%comment_count,%20total_count,commentsbox_count,%comments_fbid,%click_count%20FROM%20link_stat%20WHERE%20url=%27http%3A%2F%2Fwww.tmz.com%2F2016%2F10%2F28%2Fstar-wars-darth-maul-assault-cops%2F%27&callback=jQuery2030395929224467485_1477649642451&_=1477649642452
http://www.google-analytics.com/r/collect?v=1&_v=j47&aip=1&a=148541592&t=pa…42&cid=1030208204.1477649644&tid=UA-45624874-28&_r=1&cd2=other&z=693617352 Resource {requests: Array[1], method: "GET", type: "image", url: "http://www.google-analytics.com/r/collect?v=1&_v=j…644&tid=UA-45624874-28&_r=1&cd2=other&z=693617352", completed: false…}
https://www.google-analytics.com/r/collect?v=1&_v=j47&aip=1&a=148541592&t=p…42&cid=1030208204.1477649644&tid=UA-45624874-28&_r=1&cd2=other&z=693617352 Resource {requests: Array[3], method: "GET", type: "image", url: "https://www.google-analytics.com/r/collect?v=1&_v=…644&tid=UA-45624874-28&_r=1&cd2=other&z=693617352", completed: true…}
http://staticxx.facebook.com/connect/xd_arbiter/r/fTmIQU3LxvB.js?version=42#channel=f3a67911daab5dc&origin=http%3A%2F%2Fwww.tmz.com Resource {requests: Array[3], method: "GET", type: "subFrame", url: "http://staticxx.facebook.com/connect/xd_arbiter/r/…l=f3a67911daab5dc&origin=http%3A%2F%2Fwww.tmz.com", completed: true…}
https://graph.facebook.com/fql?q=SELECT%20url,%20normalized_url,Resourcehare_count,%20like_count,%comment_count,%20total_count,commentsbox_count,%comments_fbid,%click_count%20FROM%20link_stat%20WHERE%20url=%27http%3A%2F%2Fwww.tmz.com%2F2016%2F10%2F28%2Fhillary-clinton-haunted-house%2F%27&callback=jQuery2030395929224467485_1477649642453&_=1477649642454
https://staticxx.facebook.com/connect/xd_arbiter/r/fTmIQU3LxvB.js?version=42#channel=f3a67911daab5dc&origin=http%3A%2F%2Fwww.tmz.com Resource {requests: Array[3], method: "GET", type: "subFrame", url: "https://staticxx.facebook.com/connect/xd_arbiter/r…l=f3a67911daab5dc&origin=http%3A%2F%2Fwww.tmz.com", completed: true…}
https://securepubads.g.doubleclick.net/gampad/ads?gdfp_req=1&correlator=352…mz%2Fhome&sz=300x250&scp=pos%3Dbottom%26tile%3D5%26rpfl_elemid%3D300x250_5Resourcex300x250%3D80%252COX%252C80_OX%26IOM%3D11_15&cust_params=khost%3Dwww.tmz.com%26bucket%3D18&cookie=ID%3Dce1cf677f1638aac%3AT%3D1477649646%3AS…04&vrp=104&ga_vid=1030208204.1477649644&ga_sid=1477649646&ga_hid=148541592
https://graph.facebook.com/fql?q=SELECT%20url,%20normalized_url,Resourcehare_count,%20like_count,%comment_count,%20total_count,commentsbox_count,%comments_fbid,%click_count%20FROM%20link_stat%20WHERE%20url=%27http%3A%2F%2Fwww.tmz.com%2F2016%2F10%2F28%2Ftori-brixx-sexy-swimsuit-thong-booty-photos%2F%27&callback=jQuery2030395929224467485_1477649642455&_=1477649642456
https://securepubads.g.doubleclick.net/gampad/ads?gdfp_req=1&correlator=352…z=300x250&scp=pos%3Dinpost%252Cbottom%26tile%3D4%26rpfl_elemid%3D300x250_4Resourcex300x250%3D80%252COX%252C80_OX%26IOM%3D8_15&cust_params=khost%3Dwww.tmz.com%26bucket%3D18&cookie=ID%3Dce1cf677f1638aac%3AT%3D1477649646%3AS…04&vrp=104&ga_vid=1030208204.1477649644&ga_sid=1477649646&ga_hid=148541592
https://graph.facebook.com/fql?q=SELECT%20url,%20normalized_url,Resourcehare_count,%20like_count,%comment_count,%20total_count,commentsbox_count,%comments_fbid,%click_count%20FROM%20link_stat%20WHERE%20url=%27http%3A%2F%2Fwww.tmz.com%2F2016%2F10%2F28%2Felf-on-the-shelf-knockoff-lawsuit%2F%27&callback=jQuery2030395929224467485_1477649642457&_=1477649642458
https://securepubads.g.doubleclick.net/gampad/ads?gdfp_req=1&correlator=352…%2Ftmz%2Fhome&sz=300x250%7C300x600&scp=pos%3Dsticky%252Cbottom%26tile%3D10Resourcex300x250%3D95%252COX%252C95_OX%26IOM%3D12_15%2C16_5&cust_params=khost%3Dwww.tmz.com%26bucket%3D18&cookie=ID%3Dce1cf677f1638aac%3AT%3D1477649646%3AS…04&vrp=104&ga_vid=1030208204.1477649644&ga_sid=1477649646&ga_hid=148541592
https://graph.facebook.com/fql?q=SELECT%20url,%20normalized_url,Resourcehare_count,%20like_count,%comment_count,%20total_count,commentsbox_count,%comments_fbid,%click_count%20FROM%20link_stat%20WHERE%20url=%27http%3A%2F%2Fwww.tmz.com%2F2016%2F10%2F28%2Fmike-in-phantasm-memba-him%2F%27&callback=jQuery2030395929224467485_1477649642459&_=1477649642460
https://graph.facebook.com/fql?q=SELECT%20url,%20normalized_url,Resourcehare_count,%20like_count,%comment_count,%20total_count,commentsbox_count,%comments_fbid,%click_count%20FROM%20link_stat%20WHERE%20url=%27http%3A%2F%2Fwww.tmz.com%2F2016%2F10%2F27%2Fmike-pence-plane-slides-off-runway%2F%27&callback=jQuery2030395929224467485_1477649642461&_=1477649642462
https://graph.facebook.com/fql?q=SELECT%20url,%20normalized_url,Resourcehare_count,%20like_count,%comment_count,%20total_count,commentsbox_count,%comments_fbid,%click_count%20FROM%20link_stat%20WHERE%20url=%27http%3A%2F%2Fwww.tmz.com%2F2016%2F10%2F27%2Ftrump-star-vandal-family-money%2F%27&callback=jQuery2030395929224467485_1477649642463&_=1477649642464
https://graph.facebook.com/fql?q=SELECT%20url,%20normalized_url,Resourcehare_count,%20like_count,%comment_count,%20total_count,commentsbox_count,%comments_fbid,%click_count%20FROM%20link_stat%20WHERE%20url=%27http%3A%2F%2Fwww.tmz.com%2F2016%2F10%2F27%2Fdakota-fanning-parents-divorce%2F%27&callback=jQuery2030395929224467485_1477649642465&_=1477649642466
https://graph.facebook.com/fql?q=SELECT%20url,%20normalized_url,Resourcehare_count,%20like_count,%comment_count,%20total_count,commentsbox_count,%comments_fbid,%click_count%20FROM%20link_stat%20WHERE%20url=%27http%3A%2F%2Fwww.tmz.com%2F2016%2F10%2F27%2Fmariah-carey-james-packer-mentally-unstable%2F%27&callback=jQuery2030395929224467485_1477649642467&_=1477649642468
https://graph.facebook.com/fql?q=SELECT%20url,%20normalized_url,Resourcehare_count,%20like_count,%comment_count,%20total_count,commentsbox_count,%comments_fbid,%click_count%20FROM%20link_stat%20WHERE%20url=%27http%3A%2F%2Fwww.tmz.com%2F2016%2F10%2F27%2Fmariah-carey-james-packer-breakup-for-good%2F%27&callback=jQuery2030395929224467485_1477649642469&_=1477649642470
https://graph.facebook.com/fql?q=SELECT%20url,%20normalized_url,Resourcehare_count,%20like_count,%comment_count,%20total_count,commentsbox_count,%comments_fbid,%click_count%20FROM%20link_stat%20WHERE%20url=%27http%3A%2F%2Fwww.tmz.com%2F2016%2F10%2F27%2Falec-baldwin-fake-art-lawsuit-gallery-owner%2F%27&callback=jQuery2030395929224467485_1477649642471&_=1477649642472
http://webservices.webspectator.com/init?appId=WS-TMZ00&h=http%3A%2F%2Fwww.tmz.com%2F&t=1477649647478 Resource {requests: Array[3], method: "GET", type: "script", url: "http://webservices.webspectator.com/init?appId=WS-…Z00&h=http%3A%2F%2Fwww.tmz.com%2F&t=1477649647478", completed: true…}
http://b.sharethrough.com/butler?type=impressionRequest&pkey=629813e8&bkuui….0.2785.113%20Electron%2F1.4.4%20Safari%2F537.36&umtime=1477649647499&uid= Resource {requests: Array[3], method: "GET", type: "image", url: "http://b.sharethrough.com/butler?type=impressionRe…1.4.4%20Safari%2F537.36&umtime=1477649647499&uid=", completed: true…}
https://securepubads.g.doubleclick.net/gampad/ads?gdfp_req=1&correlator=352…mz%2Fhome&sz=300x250&scp=pos%3Dbottom%26tile%3D6%26rpfl_elemid%3D300x250_6Resourcex300x250%3D100%252COX%252C100_OX%26IOM%3D13_15&cust_params=khost%3Dwww.tmz.com%26bucket%3D18&cookie=ID%3Dce1cf677f1638aac%3AT%3D1477649646%3AS…04&vrp=104&ga_vid=1030208204.1477649644&ga_sid=1477649646&ga_hid=148541592
http://b.scorecardresearch.com/b?c1=7&c2=18956797&c3=4728489&ns__t=14776496…nce%2Fw2%3Fsg%3D82893b79564009a4d8fab7b9db32cfea%26pl%3D23%26ug%3D%26ad%3DResourcep%3D6863%26pfurl%3D%cburl%3D%26pageViewId%255BwidgetLoaderWindowUrl%255D%3Dhttp%253A%252F%252Fwww.tmz.com%252F%26pageViewId%255BtimeMillis%255D%3D1477649645375%26pageViewId%255Brand%255D%3D8673902179149984%sourceUrl%3Dhttp%253A%252F%252Fwww.tmz.com%252F%frameUrl%3Dhttp%253A%252F%252Fwww.tmz.com%252F%clientTime%3D1477649645377%ci%3Dgrv-personalization-23%26wct%3D1477649643461&c9=http%3A%2F%2Fwww.tmz.com%2F
http://tags.pubgears.com/tmzhm01/ros/300x250?cb=40176&domain=www.tmz.com Resource {requests: Array[3], method: "GET", type: "script", url: "http://tags.pubgears.com/tmzhm01/ros/300x250?cb=40176&domain=www.tmz.com", completed: true…}
https://z.moatads.com/tmz695915919965/moatad.js#moatClientLevel1=78745944&m…moatClientSlicer1=54153864&moatClientSlicer2=54322224&zMoatPS=top&zMoatST= Resource {requests: Array[3], method: "GET", type: "script", url: "https://z.moatads.com/tmz695915919965/moatad.js#mo…4&moatClientSlicer2=54322224&zMoatPS=top&zMoatST=", completed: true…}
http://cdn.taboolasyndication.com/libtrc/static/thumbnails/36036e5c10d4f7d9ad5b2a37a80de678.png Resource {requests: Array[3], method: "GET", type: "image", url: "http://cdn.taboolasyndication.com/libtrc/static/thumbnails/36036e5c10d4f7d9ad5b2a37a80de678.png", completed: true…}
http://cdn.taboola.com/libtrc/static/thumbnails/3aadbb71016ecd7a194bbe2791777e9a.png Resource {requests: Array[3], method: "GET", type: "image", url: "http://cdn.taboola.com/libtrc/static/thumbnails/3aadbb71016ecd7a194bbe2791777e9a.png", completed: true…}
http://tags.bluekai.com/site/35702?id=223d02a4-52be-460c-ab56-32c7a33a4df7&redir=%2F%2Ftrc.taboola.com%2Fsg%2Fbluekai%2F1%2Fcm%3Ftaboola_hm%3DBK_UUID
http://trc.taboola.com/tmz/log/2/debug?tim=06%3A14%3A07.625&type=map&msg=trcrboxui%20render&id=3893&cv=230-RELEASE Resource {requests: Array[3], method: "GET", type: "image", url: "http://trc.taboola.com/tmz/log/2/debug?tim=06%3A14…map&msg=trcrboxui%20render&id=3893&cv=230-RELEASE", completed: true…}
http://trc.taboola.com/tmz/log/2/debug?tim=06%3A14%3A07.682&type=map&msg=trcrboxuiNaNrawPager%count_number_of_pages&id=401&cv=230-RELEASE
http://www.google-analytics.com/ga.js Resource {requests: Array[1], method: "GET", type: "script", url: "http://www.google-analytics.com/ga.js", completed: false…}
https://www.google-analytics.com/ga.js Resource {requests: Array[3], method: "GET", type: "script", url: "https://www.google-analytics.com/ga.js", completed: true…}
http://images.taboola.com/taboola/image/fetch/f_jpg%2Cq_80%2Ch_153%2Cw_305%…-J3OM16X4--/t_full/f_auto%2Cfl_lossy%2Cq_75/v1391651602/corey-haim-pic.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://images.taboola.com/taboola/image/fetch/f_jp…%2Cfl_lossy%2Cq_75/v1391651602/corey-haim-pic.jpg", completed: true…}
http://images.taboola.com/taboola/image/fetch/f_jpg%2Cq_80%2Ch_153%2Cw_305%…%3A//shechive.files.wordpress.com/2016/09/onenightstandthumb.png%3Fw%3D500 Resource {requests: Array[3], method: "GET", type: "image", url: "http://images.taboola.com/taboola/image/fetch/f_jp…ress.com/2016/09/onenightstandthumb.png%3Fw%3D500", completed: true…}
http://images.taboola.com/taboola/image/fetch/f_jpg%2Cq_80%2Ch_153%2Cw_305%…https%3A//shechive.files.wordpress.com/2016/09/britney1.jpg%3Fquality%3D80Resourcetrip%3Dinfo%26w%3D500
http://images.taboola.com/taboola/image/fetch/f_jpg%2Cq_80%2Ch_153%2Cw_305%…qCR--/t_full/f_auto%2Cfl_lossy%2Cq_75/v1474481115/brad-and-angie-photo.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://images.taboola.com/taboola/image/fetch/f_jp…lossy%2Cq_75/v1474481115/brad-and-angie-photo.jpg", completed: true…}
http://images.taboola.com/taboola/image/fetch/f_jpg%2Cq_80%2Ch_153%2Cw_305%…v1461684491/scott-disick-and-kourtney-kardashian-make-out-in-the-ocean.png Resource {requests: Array[3], method: "GET", type: "image", url: "http://images.taboola.com/taboola/image/fetch/f_jp…and-kourtney-kardashian-make-out-in-the-ocean.png", completed: true…}
http://trc.taboola.com/tmz/log/2/debug?tim=06%3A14%3A07.688&type=map&msg=trcrboxuiNaNrawPager%countPages&id=4113&cv=230-RELEASE
http://tpc.googlesyndication.com/safeframe/1-0-5/html/container.html#xpc=sf-gdn-exp-1&p=http%3A//www.tmz.com Resource {requests: Array[3], method: "GET", type: "subFrame", url: "http://tpc.googlesyndication.com/safeframe/1-0-5/h…iner.html#xpc=sf-gdn-exp-1&p=http%3A//www.tmz.com", completed: true…}
http://cdn.taboola.com/libtrc/static/thumbnails/f539211219b796ffbb49949997c764f0.png Resource {requests: Array[3], method: "GET", type: "image", url: "http://cdn.taboola.com/libtrc/static/thumbnails/f539211219b796ffbb49949997c764f0.png", completed: true…}
http://cdn.taboolasyndication.com/libtrc/static/thumbnails/795129f551af64a16d9575ace2475a09.png Resource {requests: Array[3], method: "GET", type: "image", url: "http://cdn.taboolasyndication.com/libtrc/static/thumbnails/795129f551af64a16d9575ace2475a09.png", completed: true…}
http://images.taboola.com/taboola/image/fetch/f_jpg%2Cq_80%2Ch_257%2Cw_220%…0/serveFlavor/entry_id/0_6vdtuf8z/flavorId/0_0r1dvo1t/width/132/height/113 Resource {requests: Array[3], method: "GET", type: "image", url: "http://images.taboola.com/taboola/image/fetch/f_jp…6vdtuf8z/flavorId/0_0r1dvo1t/width/132/height/113", completed: true…}
http://trc.taboola.com/sg/bluekai/1/cm?taboola_hm=1v6M4yca99YRghBR Resource {requests: Array[3], method: "GET", type: "image", url: "http://trc.taboola.com/sg/bluekai/1/cm?taboola_hm=1v6M4yca99YRghBR", completed: true…}
http://pubgears-d.openx.net/w/1.0/jstag Resource {requests: Array[6], method: "GET", type: "script", url: "http://pubgears-d.openx.net/w/1.0/jstag", completed: true…}
http://tags.pubgears.com/tmzhm02/ros/300x250?cb=56593&domain=www.tmz.com Resource {requests: Array[3], method: "GET", type: "script", url: "http://tags.pubgears.com/tmzhm02/ros/300x250?cb=56593&domain=www.tmz.com", completed: true…}
http://images.taboola.com/taboola/image/fetch/f_jpg%2Cq_80%2Ch_257%2Cw_220%…0/serveFlavor/entry_id/0_yqori4zk/flavorId/0_z62t4m49/width/132/height/113 Resource {requests: Array[3], method: "GET", type: "image", url: "http://images.taboola.com/taboola/image/fetch/f_jp…yqori4zk/flavorId/0_z62t4m49/width/132/height/113", completed: true…}
http://images.taboola.com/taboola/image/fetch/f_jpg%2Cq_80%2Ch_257%2Cw_220%…dication.com/libtrc/static/thumbnails/568c54aad084f82af54ff736e8ecbea9.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://images.taboola.com/taboola/image/fetch/f_jp…c/thumbnails/568c54aad084f82af54ff736e8ecbea9.jpg", completed: true…}
http://str-assets.imgix.net/creative_workflow/creative_thumbnails/139574/im…ctar_Smoothie_1000x750_10.25.16_V2_2_.jpg?w=400&h=300&auto=format&fit=crop Resource {requests: Array[3], method: "GET", type: "image", url: "http://str-assets.imgix.net/creative_workflow/crea….25.16_V2_2_.jpg?w=400&h=300&auto=format&fit=crop", completed: true…}
http://images.taboola.com/taboola/image/fetch/f_jpg%2Cq_80%2Ch_153%2Cw_305%…dication.com/libtrc/static/thumbnails/879a967eaaccb8960421d600479e7877.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://images.taboola.com/taboola/image/fetch/f_jp…c/thumbnails/879a967eaaccb8960421d600479e7877.jpg", completed: true…}
https://z.moatads.com/sharethroughv2465247317527/moatad.js?moatClientLevel1…tTimeInView=str-time-sam-7GCb8Q84WMHcP8h5qXVD1fu9-629813e8&_=1477649642813 Resource {requests: Array[3], method: "GET", type: "script", url: "https://z.moatads.com/sharethroughv2465247317527/m…7GCb8Q84WMHcP8h5qXVD1fu9-629813e8&_=1477649642813", completed: true…}
http://b.sharethrough.com/butler?session=02ffbf10-f065-4fd8-baac-96aa1830db….0.2785.113%20Electron%2F1.4.4%20Safari%2F537.36&umtime=1477649648050&uid= Resource {requests: Array[3], method: "GET", type: "image", url: "http://b.sharethrough.com/butler?session=02ffbf10-…1.4.4%20Safari%2F537.36&umtime=1477649648050&uid=", completed: true…}
http://images.taboola.com/taboola/image/fetch/f_jpg%2Cq_80%2Ch_153%2Cw_305%…omstatic.com/gen/constrain/5000/500/80/2016/08/19/10/by/1x/php6wtza8k1.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://images.taboola.com/taboola/image/fetch/f_jp…n/5000/500/80/2016/08/19/10/by/1x/php6wtza8k1.jpg", completed: true…}
http://b.aol.com/ping?ts=1477649648071&h=rma-api.gravity.com&v=52&r=http%3A…p=0&dL_hnu=1&plids=6863%7C%2C6863%7C%2C6863%7C%2C6863%7C%2C6863%7C&pgvis=1 Resource {requests: Array[3], method: "GET", type: "image", url: "http://b.aol.com/ping?ts=1477649648071&h=rma-api.g…C%2C6863%7C%2C6863%7C%2C6863%7C%2C6863%7C&pgvis=1", completed: true…}
http://images.taboola.com/taboola/image/fetch/f_jpg%2Cq_80%2Ch_153%2Cw_305%…dication.com/libtrc/static/thumbnails/53a51b58573f1fd8f2d624d0e1abdbbb.png Resource {requests: Array[3], method: "GET", type: "image", url: "http://images.taboola.com/taboola/image/fetch/f_jp…c/thumbnails/53a51b58573f1fd8f2d624d0e1abdbbb.png", completed: true…}
http://images.taboola.com/taboola/image/fetch/f_jpg%2Cq_80%2Ch_153%2Cw_305%…dication.com/libtrc/static/thumbnails/f16ae9a4389816664a9ccc297bb6492a.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://images.taboola.com/taboola/image/fetch/f_jp…c/thumbnails/f16ae9a4389816664a9ccc297bb6492a.jpg", completed: true…}
http://b-aws.aol.com/ping?ts=1477649648071&h=rma-api.gravity.com&v=52&r=htt…p=0&dL_hnu=1&plids=6863%7C%2C6863%7C%2C6863%7C%2C6863%7C%2C6863%7C&pgvis=1 Resource {requests: Array[3], method: "GET", type: "image", url: "http://b-aws.aol.com/ping?ts=1477649648071&h=rma-a…C%2C6863%7C%2C6863%7C%2C6863%7C%2C6863%7C&pgvis=1", completed: true…}
http://assets.pinterest.com/js/pinit_main.js?0.7842249666245869 Resource {requests: Array[3], method: "GET", type: "script", url: "http://assets.pinterest.com/js/pinit_main.js?0.7842249666245869", completed: true…}
http://www.decenthat.com/bcn?hu=0&vv=1477649644160&xlg=&vqwo=1&deo=0&g1=s%7…1477649648264&y=1.7.461&elg=583298152&flg=UAfYiSSzoegJmzt&x=zzz.wpc.frp%2F Resource {requests: Array[3], method: "GET", type: "image", url: "http://www.decenthat.com/bcn?hu=0&vv=1477649644160…lg=583298152&flg=UAfYiSSzoegJmzt&x=zzz.wpc.frp%2F", completed: true…}
http://ox-d.warnerbros.servedbyopenx.com/w/1.0/bo?bd=2025&br=p&bp=737&bt=25…F8bXdwdD1veF9wcm90b3xjaT0xfHVyPTlBcDNQSUxOQ2N8YmRyPTF8bGQ9b25hZ29mbHkuY29t Resource {requests: Array[3], method: "GET", type: "image", url: "http://ox-d.warnerbros.servedbyopenx.com/w/1.0/bo?…xfHVyPTlBcDNQSUxOQ2N8YmRyPTF8bGQ9b25hZ29mbHkuY29t", completed: true…}
http://ox-d.warnerbros.servedbyopenx.com/w/1.0/bo?bd=2091&br=p&bp=150&bt=25…D1vcGVucnRiX2pzb258Y2k9MXx1cj0wQW9pNnRTYTZYfGJkcj0xfGxkPXN0YXRlZmFybS5jb20 Resource {requests: Array[3], method: "GET", type: "image", url: "http://ox-d.warnerbros.servedbyopenx.com/w/1.0/bo?…x1cj0wQW9pNnRTYTZYfGJkcj0xfGxkPXN0YXRlZmFybS5jb20", completed: true…}
http://ox-d.warnerbros.servedbyopenx.com/w/1.0/bo?bd=2105&br=p&bp=567&bt=25…Xxtd3B0PW94X3Byb3RvfGNpPTF8dXI9MnRFVkg2VEwyb3xiZHI9MXxsZD1vbmFnb2ZseS5jb20 Resource {requests: Array[3], method: "GET", type: "image", url: "http://ox-d.warnerbros.servedbyopenx.com/w/1.0/bo?…F8dXI9MnRFVkg2VEwyb3xiZHI9MXxsZD1vbmFnb2ZseS5jb20", completed: true…}
http://ox-d.warnerbros.servedbyopenx.com/w/1.0/bo?bd=2120&br=p&bp=1894&bt=2…XM9MXxtd3B0PW94X3Byb3RvfGNpPTF8dXI9OEJOV3pMN1BSRXxiZHI9MXxsZD1tYWN5cy5jb20 Resource {requests: Array[3], method: "GET", type: "image", url: "http://ox-d.warnerbros.servedbyopenx.com/w/1.0/bo?…NpPTF8dXI9OEJOV3pMN1BSRXxiZHI9MXxsZD1tYWN5cy5jb20", completed: true…}
https://tpc.googlesyndication.com/pagead/js/r20161025/r20110914/abg.js Resource {requests: Array[3], method: "GET", type: "script", url: "https://tpc.googlesyndication.com/pagead/js/r20161025/r20110914/abg.js", completed: true…}
https://tpc.googlesyndication.com/pagead/js/r20161025/r20110914/client/ext/m_js_controller.js Resource {requests: Array[3], method: "GET", type: "script", url: "https://tpc.googlesyndication.com/pagead/js/r20161025/r20110914/client/ext/m_js_controller.js", completed: true…}
https://tpc.googlesyndication.com/simgad/7589822070320967331 Resource {requests: Array[3], method: "GET", type: "image", url: "https://tpc.googlesyndication.com/simgad/7589822070320967331", completed: true…}
https://www.facebook.com/impression.php/f220a4fb2a60a4/?lid=115&payload=%7BResourceource%22%3A%22jssdk%22%7D
http://ox-d.warnerbros.servedbyopenx.com/w/1.0/bo?bd=2274&br=p&bp=802&bt=25…F8bXdwdD1veF9wcm90b3xjaT0xfHVyPVlvaE5xTnhMYzN8YmRyPTF8bGQ9b25hZ29mbHkuY29t Resource {requests: Array[3], method: "GET", type: "image", url: "http://ox-d.warnerbros.servedbyopenx.com/w/1.0/bo?…xfHVyPVlvaE5xTnhMYzN8YmRyPTF8bGQ9b25hZ29mbHkuY29t", completed: true…}
http://ox-d.warnerbros.servedbyopenx.com/w/1.0/bo?bd=2296&br=p&bp=799&bt=25…F8bXdwdD1veF9wcm90b3xjaT0xfHVyPWRvNUUxVHFRaW58YmRyPTF8bGQ9b25hZ29mbHkuY29t Resource {requests: Array[3], method: "GET", type: "image", url: "http://ox-d.warnerbros.servedbyopenx.com/w/1.0/bo?…xfHVyPWRvNUUxVHFRaW58YmRyPTF8bGQ9b25hZ29mbHkuY29t", completed: true…}
http://pubgears-d.openx.net/w/1.0/acj?o=9745098822&callback=OX_9745098822&j…hop=1&res=1920x1080x24&plg=pm&ch=UTF-8&tz=240&ws=300x250&ifr=1&tws=800x600 Resource {requests: Array[3], method: "GET", type: "script", url: "http://pubgears-d.openx.net/w/1.0/acj?o=9745098822…g=pm&ch=UTF-8&tz=240&ws=300x250&ifr=1&tws=800x600", completed: true…}
http://pubgears-d.openx.net/w/1.0/acj?o=2324660609&callback=OX_2324660609&j…50&ifr=1&tws=800x600&bi=2e1a19ab-efee-4661-8e5d-c8d1d92a715d&ba=1477649649 Resource {requests: Array[3], method: "GET", type: "script", url: "http://pubgears-d.openx.net/w/1.0/acj?o=2324660609…e1a19ab-efee-4661-8e5d-c8d1d92a715d&ba=1477649649", completed: true…}
http://ox-d.warnerbros.servedbyopenx.com/w/1.0/bo?bd=2300&br=p&bp=956&bt=25…Xxtd3B0PW94X3Byb3RvfGNpPTF8dXI9cnNHQXFyd25KT3xiZHI9MXxsZD1vbmFnb2ZseS5jb20 Resource {requests: Array[3], method: "GET", type: "image", url: "http://ox-d.warnerbros.servedbyopenx.com/w/1.0/bo?…F8dXI9cnNHQXFyd25KT3xiZHI9MXxsZD1vbmFnb2ZseS5jb20", completed: true…}
http://ox-d.warnerbros.servedbyopenx.com/w/1.0/bo?bd=2352&br=p&bp=1026&bt=2…fG13cHQ9b3hfcHJvdG98Y2k9MXx1cj1JVkVOa0U5eVhIfGJkcj0xfGxkPW9uYWdvZmx5LmNvbQ Resource {requests: Array[3], method: "GET", type: "image", url: "http://ox-d.warnerbros.servedbyopenx.com/w/1.0/bo?…Xx1cj1JVkVOa0U5eVhIfGJkcj0xfGxkPW9uYWdvZmx5LmNvbQ", completed: true…}
http://pixel.advertising.com/ups/41/sync?uid=dbbac7a97f3afaa2fff57c05717db5dc&redir=true Resource {requests: Array[3], method: "GET", type: "image", url: "http://pixel.advertising.com/ups/41/sync?uid=dbbac7a97f3afaa2fff57c05717db5dc&redir=true", completed: false…}
http://pagead2.googlesyndication.com/pagead/expansion_embed.js?source=safeframe Resource {requests: Array[3], method: "GET", type: "script", url: "http://pagead2.googlesyndication.com/pagead/expansion_embed.js?source=safeframe", completed: true…}
http://webservices.webspectator.com/initcb?appId=39&vId=5FEE27816454369C&da…&ts=1477649649107&rs=0&h=http%3A%2F%2Fwww.tmz.com%2F&npv=1&ltsss=0&ltsvs=0 Resource {requests: Array[3], method: "GET", type: "script", url: "http://webservices.webspectator.com/initcb?appId=3…http%3A%2F%2Fwww.tmz.com%2F&npv=1&ltsss=0&ltsvs=0", completed: true…}
http://tags.mathtag.com/notify/js?exch=opx&id=5aW95q2jLzEwLyAvTW1Ka1pUazBaR…d3B0PW94X3Byb3RvfGNpPTF8dXI9OEJOV3pMN1BSRXxiZHI9MXxsZD1tYWN5cy5jb20%26r%3D Resource {requests: Array[3], method: "GET", type: "script", url: "http://tags.mathtag.com/notify/js?exch=opx&id=5aW9…XI9OEJOV3pMN1BSRXxiZHI9MXxsZD1tYWN5cy5jb20%26r%3D", completed: true…}
http://www.google.com/ads/measurement/l?ebcid=ALh7CaRwv_o3-t_DUre1P8C89deEyYwlIXrcCdjzrSRCz--Lhs6Y5WQJccYmt7pCLpnxM-LbY77l2PPwcjcX785uVMhXs57l2g Resource {requests: Array[3], method: "GET", type: "image", url: "http://www.google.com/ads/measurement/l?ebcid=ALh7…s6Y5WQJccYmt7pCLpnxM-LbY77l2PPwcjcX785uVMhXs57l2g", completed: true…}
http://www.gstatic.com/images/branding/googlelogo/1x/googlelogo_color_112x36dp.png Resource {requests: Array[3], method: "GET", type: "image", url: "http://www.gstatic.com/images/branding/googlelogo/1x/googlelogo_color_112x36dp.png", completed: true…}
http://ox-d.warnerbros.servedbyopenx.com/w/1.0/ri?ef=db&bi=37c28dfb-3ef4-49…XM9MXxtd3B0PW94X3Byb3RvfGNpPTF8dXI9OEJOV3pMN1BSRXxiZHI9MXxsZD1tYWN5cy5jb20 Resource {requests: Array[3], method: "GET", type: "image", url: "http://ox-d.warnerbros.servedbyopenx.com/w/1.0/ri?…NpPTF8dXI9OEJOV3pMN1BSRXxiZHI9MXxsZD1tYWN5cy5jb20", completed: true…}
http://ox-d.warnerbros.servedbyopenx.com/w/1.0/rr?ef=db&bi=37c28dfb-3ef4-49…XM9MXxtd3B0PW94X3Byb3RvfGNpPTF8dXI9OEJOV3pMN1BSRXxiZHI9MXxsZD1tYWN5cy5jb20 Resource {requests: Array[3], method: "GET", type: "image", url: "http://ox-d.warnerbros.servedbyopenx.com/w/1.0/rr?…NpPTF8dXI9OEJOV3pMN1BSRXxiZHI9MXxsZD1tYWN5cy5jb20", completed: true…}
https://geo.moatads.com/n.js?e=35&ud=false&qm=240&qn=6OZw%3DoHB%2CEF%3FKC1I…d=1&ac=1&it=500&fs=96342&na=391725961&cs=0&callback=MoatSuperV23.gna837317 Resource {requests: Array[3], method: "GET", type: "script", url: "https://geo.moatads.com/n.js?e=35&ud=false&qm=240&…na=391725961&cs=0&callback=MoatSuperV23.gna837317", completed: true…}
http://tpc.googlesyndication.com/safeframe/1-0-5/html/container.html Resource {requests: Array[3], method: "GET", type: "other", url: "http://tpc.googlesyndication.com/safeframe/1-0-5/html/container.html", completed: true…}
http://www.google-analytics.com/r/__utm.gif?utmwv=5.6.7&utms=1&utmn=8050899…utmcct%3D%2F%3B&utmjid=790909748&utmredir=1&utmu=qhCAAAAAAAAAAAAAAAABAAAE~ Resource {requests: Array[1], method: "GET", type: "image", url: "http://www.google-analytics.com/r/__utm.gif?utmwv=…0909748&utmredir=1&utmu=qhCAAAAAAAAAAAAAAAABAAAE~", completed: false…}
https://www.google-analytics.com/r/__utm.gif?utmwv=5.6.7&utms=1&utmn=805089…utmcct%3D%2F%3B&utmjid=790909748&utmredir=1&utmu=qhCAAAAAAAAAAAAAAAABAAAE~ Resource {requests: Array[3], method: "GET", type: "image", url: "https://www.google-analytics.com/r/__utm.gif?utmwv…0909748&utmredir=1&utmu=qhCAAAAAAAAAAAAAAAABAAAE~", completed: true…}
http://tags.pubgears.com/tmzhm04/ros/300x250?cb=29637&domain=www.tmz.com Resource {requests: Array[3], method: "GET", type: "script", url: "http://tags.pubgears.com/tmzhm04/ros/300x250?cb=29637&domain=www.tmz.com", completed: true…}
http://tags.pubgears.com/tmzhm04/ros/300x250?cb=35935&domain=www.tmz.com Resource {requests: Array[3], method: "GET", type: "script", url: "http://tags.pubgears.com/tmzhm04/ros/300x250?cb=35935&domain=www.tmz.com", completed: true…}
http://tags.pubgears.com/tmzhm04/ros/300x250?cb=11293&domain=www.tmz.com Resource {requests: Array[3], method: "GET", type: "script", url: "http://tags.pubgears.com/tmzhm04/ros/300x250?cb=11293&domain=www.tmz.com", completed: true…}
https://googleads.g.doubleclick.net/dbm/ad?dbm_c=AKAmf-BkmgdrSAUKIq27vuA3GZ…Xhh3GION_GLil4HkrdkLMa2EnOc-Bg&pr=9:AAABWArIT5qsxxHwBecyJedrJ03K8ckb30oWSw Resource {requests: Array[3], method: "GET", type: "script", url: "https://googleads.g.doubleclick.net/dbm/ad?dbm_c=A…Oc-Bg&pr=9:AAABWArIT5qsxxHwBecyJedrJ03K8ckb30oWSw", completed: true…}
https://static.cliipa.com/basev/sbt-f6817f3a26c6.js Resource {requests: Array[3], method: "GET", type: "script", url: "https://static.cliipa.com/basev/sbt-f6817f3a26c6.js", completed: true…}
https://c.betrad.com/surly.js?;ad_w=300;ad_h=250;coid=322;nid=4311;cps=1 Resource {requests: Array[6], method: "GET", type: "script", url: "https://c.betrad.com/surly.js?;ad_w=300;ad_h=250;coid=322;nid=4311;cps=1", completed: true…}
http://pubgears-d.openx.net/w/1.0/ri?bi=2e1a19ab-efee-4661-8e5d-c8d1d92a715…G13aXM9MXxtd3B0PW94X3Byb3RvfGNpPTF8dXI9elpiMEt1NDdTMXxsZD1vbmFnb2ZseS5jb20 Resource {requests: Array[3], method: "GET", type: "image", url: "http://pubgears-d.openx.net/w/1.0/ri?bi=2e1a19ab-e…RvfGNpPTF8dXI9elpiMEt1NDdTMXxsZD1vbmFnb2ZseS5jb20", completed: true…}
http://pubgears-d.openx.net/w/1.0/rr?bi=2e1a19ab-efee-4661-8e5d-c8d1d92a715…G13aXM9MXxtd3B0PW94X3Byb3RvfGNpPTF8dXI9elpiMEt1NDdTMXxsZD1vbmFnb2ZseS5jb20 Resource {requests: Array[3], method: "GET", type: "image", url: "http://pubgears-d.openx.net/w/1.0/rr?bi=2e1a19ab-e…RvfGNpPTF8dXI9elpiMEt1NDdTMXxsZD1vbmFnb2ZseS5jb20", completed: true…}
https://pagead2.googlesyndication.com/pagead/gen_204?id=xbid&dbm_b=AKAmf-AF…CKz1gvTPJixByRXZVAPfgMkyJeq3hBU-7ftmJ4NJ6XgnpU7Hsw992e4o7lB-_SlciBPwSxEIa4 Resource {requests: Array[3], method: "GET", type: "image", url: "https://pagead2.googlesyndication.com/pagead/gen_2…eq3hBU-7ftmJ4NJ6XgnpU7Hsw992e4o7lB-_SlciBPwSxEIa4", completed: true…}
https://securepubads.g.doubleclick.net/pcs/view?xai=AKAOjstmdM_7XNRcB1xtuls…4p5Ji6AfotiTgqLk_F9_A3LN18GSuA&sig=Cg0ArKJSzEJv59TQOFfcEAE&urlfix=1&adurl= Resource {requests: Array[3], method: "GET", type: "image", url: "https://securepubads.g.doubleclick.net/pcs/view?xa…8GSuA&sig=Cg0ArKJSzEJv59TQOFfcEAE&urlfix=1&adurl=", completed: true…}
https://googleads.g.doubleclick.net/dbm/ad?dbm_c=AKAmf-CBJa6jP4iTsC7mi_0v9e…IRMkkKeYzfFRMTmqocSEB7iZcJbUie&pr=9:AAABWArIS7T_IgglDWzPKBV6h2WfrFhWhEtyAw Resource {requests: Array[3], method: "GET", type: "script", url: "https://googleads.g.doubleclick.net/dbm/ad?dbm_c=A…JbUie&pr=9:AAABWArIS7T_IgglDWzPKBV6h2WfrFhWhEtyAw", completed: true…}
http://ox-d.warnerbros.servedbyopenx.com/w/1.0/ri?ef=db&bi=37c28dfb-3ef4-49…fG13cHQ9b3hfcHJvdG98Y2k9MXx1cj1JVkVOa0U5eVhIfGJkcj0xfGxkPW9uYWdvZmx5LmNvbQ Resource {requests: Array[3], method: "GET", type: "image", url: "http://ox-d.warnerbros.servedbyopenx.com/w/1.0/ri?…Xx1cj1JVkVOa0U5eVhIfGJkcj0xfGxkPW9uYWdvZmx5LmNvbQ", completed: true…}
http://ox-d.warnerbros.servedbyopenx.com/w/1.0/rr?ef=db&bi=37c28dfb-3ef4-49…fG13cHQ9b3hfcHJvdG98Y2k9MXx1cj1JVkVOa0U5eVhIfGJkcj0xfGxkPW9uYWdvZmx5LmNvbQ Resource {requests: Array[3], method: "GET", type: "image", url: "http://ox-d.warnerbros.servedbyopenx.com/w/1.0/rr?…Xx1cj1JVkVOa0U5eVhIfGJkcj0xfGxkPW9uYWdvZmx5LmNvbQ", completed: true…}
https://pagead2.googlesyndication.com/pagead/gen_204?id=xbid&dbm_b=AKAmf-Be…B6NtWevhu-xvRINjQ5Zlv8-BfSNen0IacDL1a9Ki-MHGxXG87_VidXs-7OTGSHWEtJJB5nooTI Resource {requests: Array[3], method: "GET", type: "image", url: "https://pagead2.googlesyndication.com/pagead/gen_2…SNen0IacDL1a9Ki-MHGxXG87_VidXs-7OTGSHWEtJJB5nooTI", completed: true…}
http://wfpscripts.webspectator.com/ortc-2.1.24.js Resource {requests: Array[3], method: "GET", type: "script", url: "http://wfpscripts.webspectator.com/ortc-2.1.24.js", completed: true…}
http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js Resource {requests: Array[3], method: "GET", type: "script", url: "http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js", completed: true…}
https://googleads.g.doubleclick.net/pagead/drt/s?v=r20120211 Resource {requests: Array[3], method: "GET", type: "subFrame", url: "https://googleads.g.doubleclick.net/pagead/drt/s?v=r20120211", completed: true…}
https://cm.g.doubleclick.net/push?client=ca-pub-2971421842924714 Resource {requests: Array[3], method: "GET", type: "subFrame", url: "https://cm.g.doubleclick.net/push?client=ca-pub-2971421842924714", completed: true…}
https://tpc.googlesyndication.com/pagead/images/x_button_blue2.svg Resource {requests: Array[3], method: "GET", type: "image", url: "https://tpc.googlesyndication.com/pagead/images/x_button_blue2.svg", completed: true…}
http://pixel.advertising.com/ups/41/sync?uid=dbbac7a97f3afaa2fff57c05717db5dc&redir=true&verify=true Resource {requests: Array[3], method: "GET", type: "image", url: "http://pixel.advertising.com/ups/41/sync?uid=dbbac7a97f3afaa2fff57c05717db5dc&redir=true&verify=true", completed: false…}
http://wfpscripts.webspectator.com/ws-4.4.42.js Resource {requests: Array[3], method: "GET", type: "script", url: "http://wfpscripts.webspectator.com/ws-4.4.42.js", completed: true…}
https://googleads.g.doubleclick.net/dbm/ad?dbm_c=AKAmf-AmYdhHYS_eFV6fCFkaLr…8t8IV_947YzV9tiKEmmHoMGKaKPlSg&pr=9:AAABWArIT8nUeIS1xqQeJOCoBV5zl_DbVzvc7A Resource {requests: Array[3], method: "GET", type: "script", url: "https://googleads.g.doubleclick.net/dbm/ad?dbm_c=A…KPlSg&pr=9:AAABWArIT8nUeIS1xqQeJOCoBV5zl_DbVzvc7A", completed: true…}
http://pubgears-d.openx.net/w/1.0/rr?ts=1fHJpZD1jYWQ2ZjgwMy03NzUwLTRkMWYtOT…G13aXM9MXxtd3B0PW94X3Byb3RvfGNpPTF8dXI9blk0cEluaXRvYnxsZD1vbmFnb2ZseS5jb20 Resource {requests: Array[3], method: "GET", type: "image", url: "http://pubgears-d.openx.net/w/1.0/rr?ts=1fHJpZD1jY…RvfGNpPTF8dXI9blk0cEluaXRvYnxsZD1vbmFnb2ZseS5jb20", completed: true…}
http://pubgears-d.openx.net/w/1.0/ri?ts=1fHJpZD1jYWQ2ZjgwMy03NzUwLTRkMWYtOT…G13aXM9MXxtd3B0PW94X3Byb3RvfGNpPTF8dXI9blk0cEluaXRvYnxsZD1vbmFnb2ZseS5jb20 Resource {requests: Array[3], method: "GET", type: "image", url: "http://pubgears-d.openx.net/w/1.0/ri?ts=1fHJpZD1jY…RvfGNpPTF8dXI9blk0cEluaXRvYnxsZD1vbmFnb2ZseS5jb20", completed: true…}
https://www.googletagservices.com/dcm/dcmads.js Resource {requests: Array[3], method: "GET", type: "script", url: "https://www.googletagservices.com/dcm/dcmads.js", completed: true…}
https://pagead2.googlesyndication.com/pagead/gen_204?id=xbid&dbm_b=AKAmf-AV…d6Xm4SvYgUNEeQ8OIcm6EF0nyU2J86ffdISbKeLmwLFkemeyutIUoUvHs8ZnhUh35yS8HGg_qo Resource {requests: Array[3], method: "GET", type: "image", url: "https://pagead2.googlesyndication.com/pagead/gen_2…U2J86ffdISbKeLmwLFkemeyutIUoUvHs8ZnhUh35yS8HGg_qo", completed: true…}
http://us-u.openx.net/w/1.0/sd?id=536872786&val=297e5813-24f1-4597-a645-26dbe7144e38 Resource {requests: Array[3], method: "GET", type: "image", url: "http://us-u.openx.net/w/1.0/sd?id=536872786&val=297e5813-24f1-4597-a645-26dbe7144e38", completed: true…}
http://e.nexac.com/e/media_math_sync.xgi?na_exid=297e5813-24f1-4597-a645-26dbe7144e38 Resource {requests: Array[3], method: "GET", type: "image", url: "http://e.nexac.com/e/media_math_sync.xgi?na_exid=297e5813-24f1-4597-a645-26dbe7144e38", completed: false…}
http://pagead2.googlesyndication.com/pagead/js/lidar.js Resource {requests: Array[6], method: "GET", type: "script", url: "http://pagead2.googlesyndication.com/pagead/js/lidar.js", completed: true…}
http://tpc.googlesyndication.com/sodar/sbhK2lTE.js Resource {requests: Array[6], method: "GET", type: "script", url: "http://tpc.googlesyndication.com/sodar/sbhK2lTE.js", completed: true…}
https://googleads.g.doubleclick.net/xbbe/pixel?d=CJSiMhDWjzwY7JvhDDAB&v=APE…1ObvPUN2XerhOOGVCIvk_4rniMeVIvgCp-MaUit0YLCsz5nZ7nGtgOI5biXC9AKBloH4zJiN2A Resource {requests: Array[3], method: "GET", type: "subFrame", url: "https://googleads.g.doubleclick.net/xbbe/pixel?d=C…MeVIvgCp-MaUit0YLCsz5nZ7nGtgOI5biXC9AKBloH4zJiN2A", completed: true…}
http://server.cliipa.com/campaigns/5553803d47e5b70300ea5455/57a1ab1825c14912007a7d22/json Resource {requests: Array[24], method: "OPTIONS", type: "xhr", url: "http://server.cliipa.com/campaigns/5553803d47e5b70300ea5455/57a1ab1825c14912007a7d22/json", completed: true…}
http://c.betrad.com/a/4.gif Resource {requests: Array[3], method: "GET", type: "image", url: "http://c.betrad.com/a/4.gif", completed: true…}
http://c.betrad.com/ba.html?d803588 Resource {requests: Array[15], method: "GET", type: "subFrame", url: "http://c.betrad.com/ba.html?d803588", completed: true…}
https://googleads.g.doubleclick.net/xbbe/pixel?d=CJSiMhDWjzwY7JvhDDAB&v=APE…f1A4vqWzoWU2J5KGHPaM4bvWLa3lY9IaUadpQsdeBlDDJX9pWr56G-dpngEzpHUCL3Ur50VRrw Resource {requests: Array[3], method: "GET", type: "subFrame", url: "https://googleads.g.doubleclick.net/xbbe/pixel?d=C…a3lY9IaUadpQsdeBlDDJX9pWr56G-dpngEzpHUCL3Ur50VRrw", completed: true…}
http://api.gravity.com/v1/sync/userGuid/?partnerKey=sk_._siteId_-4536324323033812707&puid=UP442c078a-9cf7-11e6-a310-00163ee0563a Resource {requests: Array[3], method: "GET", type: "image", url: "http://api.gravity.com/v1/sync/userGuid/?partnerKe…12707&puid=UP442c078a-9cf7-11e6-a310-00163ee0563a", completed: true…}
http://pubgears-d.openx.net/w/1.0/acj?o=1942813990&callback=OX_1942813990&j…50&ifr=1&tws=800x600&bi=2e1a19ab-efee-4661-8e5d-c8d1d92a715d&ba=1477649649 Resource {requests: Array[3], method: "GET", type: "script", url: "http://pubgears-d.openx.net/w/1.0/acj?o=1942813990…e1a19ab-efee-4661-8e5d-c8d1d92a715d&ba=1477649649", completed: true…}
http://pubgears-d.openx.net/w/1.0/acj?o=6881685780&callback=OX_6881685780&j…50&ifr=1&tws=800x600&bi=2e1a19ab-efee-4661-8e5d-c8d1d92a715d&ba=1477649649 Resource {requests: Array[3], method: "GET", type: "script", url: "http://pubgears-d.openx.net/w/1.0/acj?o=6881685780…e1a19ab-efee-4661-8e5d-c8d1d92a715d&ba=1477649649", completed: true…}
http://pubgears-d.openx.net/w/1.0/acj?o=9608564947&callback=OX_9608564947&j…50&ifr=1&tws=800x600&bi=2e1a19ab-efee-4661-8e5d-c8d1d92a715d&ba=1477649649 Resource {requests: Array[3], method: "GET", type: "script", url: "http://pubgears-d.openx.net/w/1.0/acj?o=9608564947…e1a19ab-efee-4661-8e5d-c8d1d92a715d&ba=1477649649", completed: true…}
http://edge.quantserve.com/quant.js Resource {requests: Array[3], method: "GET", type: "script", url: "http://edge.quantserve.com/quant.js", completed: true…}
http://pixel.quantserve.com/pixel;r=1717405987;a=p-HGAVM7nQJ_sep;fpan=0;fpa…77649650307;tzo=240;ref=;url=http%3A%2F%2Fwww.tmz.com%2F;ogl=site_name.TMZ Resource {requests: Array[3], method: "GET", type: "image", url: "http://pixel.quantserve.com/pixel;r=1717405987;a=p…url=http%3A%2F%2Fwww.tmz.com%2F;ogl=site_name.TMZ", completed: true…}
https://googleads.g.doubleclick.net/xbbe/pixel?d=CJSiMhDWjzwY7JvhDDAB&v=APE…-uAHLH02nDS56mjymePtlsSvf3VX4nE1Ho1NVTejnuKZ80fJ3yoZO4MfbC5wVkbI7gDHMy8QSQ Resource {requests: Array[3], method: "GET", type: "subFrame", url: "https://googleads.g.doubleclick.net/xbbe/pixel?d=C…3VX4nE1Ho1NVTejnuKZ80fJ3yoZO4MfbC5wVkbI7gDHMy8QSQ", completed: true…}
http://e.nexac.com/e/xrefid.xgi?na_exid=297e5813-24f1-4597-a645-26dbe7144e38&na_pid=1973&ru= Resource {requests: Array[3], method: "GET", type: "image", url: "http://e.nexac.com/e/xrefid.xgi?na_exid=297e5813-24f1-4597-a645-26dbe7144e38&na_pid=1973&ru=", completed: true…}
https://www.googletagservices.com/dcm/impl_v35.js Resource {requests: Array[3], method: "GET", type: "script", url: "https://www.googletagservices.com/dcm/impl_v35.js", completed: true…}
https://www.google.com/pagead/drt/ui Resource {requests: Array[3], method: "GET", type: "subFrame", url: "https://www.google.com/pagead/drt/ui", completed: false…}
http://webservices.webspectator.com/adunitMapping?eaup=/55153744/tmz/home&eolid=169690104&eci=78414594144&w=300&h=250&wsRotSlot=&isda=0 Resource {requests: Array[3], method: "GET", type: "script", url: "http://webservices.webspectator.com/adunitMapping?…104&eci=78414594144&w=300&h=250&wsRotSlot=&isda=0", completed: true…}
http://webservices.webspectator.com/adunitMapping?eaup=/55153744/tmz/home&eolid=169688904&eci=78414569424&w=300&h=250&wsRotSlot=&isda=0 Resource {requests: Array[3], method: "GET", type: "script", url: "http://webservices.webspectator.com/adunitMapping?…904&eci=78414569424&w=300&h=250&wsRotSlot=&isda=0", completed: true…}
http://webservices.webspectator.com/adunitMapping?eaup=/55153744/tmz/home&eolid=174468744&eci=81923922624&w=300&h=250&wsRotSlot=&isda=0 Resource {requests: Array[3], method: "GET", type: "script", url: "http://webservices.webspectator.com/adunitMapping?…744&eci=81923922624&w=300&h=250&wsRotSlot=&isda=0", completed: true…}
http://webservices.webspectator.com/adunitMapping?eaup=/55153744/tmz/home&eolid=174469824&eci=81923922264&w=300&h=250&wsRotSlot=&isda=0 Resource {requests: Array[3], method: "GET", type: "script", url: "http://webservices.webspectator.com/adunitMapping?…824&eci=81923922264&w=300&h=250&wsRotSlot=&isda=0", completed: true…}
http://webservices.webspectator.com/adunitMapping?eaup=/55153744/tmz/home&eolid=169686984&eci=78414556944&w=300&h=250&wsRotSlot=&isda=0 Resource {requests: Array[3], method: "GET", type: "script", url: "http://webservices.webspectator.com/adunitMapping?…984&eci=78414556944&w=300&h=250&wsRotSlot=&isda=0", completed: true…}
http://webservices.webspectator.com/adunitMapping?eaup=/55153744/tmz/home&eolid=null&eci=null&w=930&h=180&wsRotSlot=&isda=1 Resource {requests: Array[3], method: "GET", type: "script", url: "http://webservices.webspectator.com/adunitMapping?…eolid=null&eci=null&w=930&h=180&wsRotSlot=&isda=1", completed: true…}
http://webservices.webspectator.com/adunitMapping?eaup=/55153744/tmz/home&eolid=181892784&eci=91007487744&w=2&h=2&wsRotSlot=&isda=0 Resource {requests: Array[3], method: "GET", type: "script", url: "http://webservices.webspectator.com/adunitMapping?…1892784&eci=91007487744&w=2&h=2&wsRotSlot=&isda=0", completed: true…}
http://ortc-prd.realtime.co/server/2.1/?guid=d05f9c85-cdf2-9354-58cc-59d09e19d114&appkey=R60tcQ Resource {requests: Array[3], method: "GET", type: "script", url: "http://ortc-prd.realtime.co/server/2.1/?guid=d05f9c85-cdf2-9354-58cc-59d09e19d114&appkey=R60tcQ", completed: true…}
http://tpc.googlesyndication.com/sodar/cTrvNaRi.html Resource {requests: Array[15], method: "GET", type: "subFrame", url: "http://tpc.googlesyndication.com/sodar/cTrvNaRi.html", completed: true…}
https://cm.g.doubleclick.net/pixel?google_nid=adaptv_dbm&google_cm&google_sc&google_dbm Resource {requests: Array[3], method: "GET", type: "image", url: "https://cm.g.doubleclick.net/pixel?google_nid=adaptv_dbm&google_cm&google_sc&google_dbm", completed: false…}
https://cm.g.doubleclick.net/pixel?google_nid=spotxchange_dbm&google_cm&google_sc&google_dbm Resource {requests: Array[3], method: "GET", type: "image", url: "https://cm.g.doubleclick.net/pixel?google_nid=spotxchange_dbm&google_cm&google_sc&google_dbm", completed: false…}
https://pxl.connexity.net/c/cse?a=Q&B=2d&google_gid=CAESEK6KeewOyowIRW2tFwIcfts&google_cver=1&google_push=AHNF13JOiGg3nP9r1BpVzXsAy3GJd6Nn254jxKNK Resource {requests: Array[3], method: "GET", type: "image", url: "https://pxl.connexity.net/c/cse?a=Q&B=2d&google_gi…gle_push=AHNF13JOiGg3nP9r1BpVzXsAy3GJd6Nn254jxKNK", completed: false…}
http://pagead2.googlesyndication.com/activeview?avi=BTyF78CQTWPe6N9KgpgPhmb…s=0&bac=0&fp=correlator%3D3528639499037635%26eid%3D108809080%252C108809133NaNu%3D%252F55153744%252Ftmz%252Fhome%oid%3D3%26url%3Dhttp%253A%252F%252Fwww.tmz.com%252F&afp=%output%3Djson_html%impl%3Dfif%dt%3D1477649648801%26adx%3D783%26ady%3D12915%ifi%3D11%flash%3D0&r=u&bs=785,585&bos=800,600&ps=1098,30403&ss=1920,1080&tt=2523&pt=-1&deb=1-0-9-2-2--1&tvt=379&uc=1&tgt=nf&cl=0
https://googleads.g.doubleclick.net/dbm/ad?dbm_c=AKAmf-APv6hmLbPOxy2uG_oZZg…Vz-kZLLdEDk4llRyLM4qeYtRDvxDIU&pr=9:AAABWArIUyChyMqdTYdnrp_v6zKgAVKKuC7JZA Resource {requests: Array[3], method: "GET", type: "script", url: "https://googleads.g.doubleclick.net/dbm/ad?dbm_c=A…vxDIU&pr=9:AAABWArIUyChyMqdTYdnrp_v6zKgAVKKuC7JZA", completed: true…}
http://pubgears-d.openx.net/w/1.0/ri?bi=2e1a19ab-efee-4661-8e5d-c8d1d92a715…G13aXM9MXxtd3B0PW94X3Byb3RvfGNpPTF8dXI9cWR6enBHVmtXVXxsZD1vbmFnb2ZseS5jb20 Resource {requests: Array[3], method: "GET", type: "image", url: "http://pubgears-d.openx.net/w/1.0/ri?bi=2e1a19ab-e…RvfGNpPTF8dXI9cWR6enBHVmtXVXxsZD1vbmFnb2ZseS5jb20", completed: true…}
http://pubgears-d.openx.net/w/1.0/rr?bi=2e1a19ab-efee-4661-8e5d-c8d1d92a715…G13aXM9MXxtd3B0PW94X3Byb3RvfGNpPTF8dXI9cWR6enBHVmtXVXxsZD1vbmFnb2ZseS5jb20 Resource {requests: Array[3], method: "GET", type: "image", url: "http://pubgears-d.openx.net/w/1.0/rr?bi=2e1a19ab-e…RvfGNpPTF8dXI9cWR6enBHVmtXVXxsZD1vbmFnb2ZseS5jb20", completed: true…}
https://pagead2.googlesyndication.com/pagead/gen_204?id=xbid&dbm_b=AKAmf-AF…CIk5l4ycAkkt-fTEovy0I778lBfObc4SMokZ4zr30IxQXwdL-ooa5QekXTrzOL-imyF9cA_yNY Resource {requests: Array[3], method: "GET", type: "image", url: "https://pagead2.googlesyndication.com/pagead/gen_2…BfObc4SMokZ4zr30IxQXwdL-ooa5QekXTrzOL-imyF9cA_yNY", completed: true…}
https://cm.g.doubleclick.net/pixel?google_nid=tremor_video_dbm&google_cm&google_sc&google_dbm Resource {requests: Array[3], method: "GET", type: "image", url: "https://cm.g.doubleclick.net/pixel?google_nid=tremor_video_dbm&google_cm&google_sc&google_dbm", completed: false…}
https://cm.g.doubleclick.net/pixel?google_nid=rubicon&google_cm&google_sc&google_dbm Resource {requests: Array[3], method: "GET", type: "image", url: "https://cm.g.doubleclick.net/pixel?google_nid=rubicon&google_cm&google_sc&google_dbm", completed: false…}
https://googleads.g.doubleclick.net/dbm/ad?dbm_c=AKAmf-C35aogcaeoRyqp72XtYi…pRAq-3nzih_Tbyr7y5qgwe1CwF38Dk&pr=9:AAABWArIUzxwClfk7EL8W9KaiIOL_0YhQlBv-w Resource {requests: Array[3], method: "GET", type: "script", url: "https://googleads.g.doubleclick.net/dbm/ad?dbm_c=A…F38Dk&pr=9:AAABWArIUzxwClfk7EL8W9KaiIOL_0YhQlBv-w", completed: true…}
http://pubgears-d.openx.net/w/1.0/ri?bi=2e1a19ab-efee-4661-8e5d-c8d1d92a715…G13aXM9MXxtd3B0PW94X3Byb3RvfGNpPTF8dXI9ZUZhSW1aanVXS3xsZD1vbmFnb2ZseS5jb20 Resource {requests: Array[3], method: "GET", type: "image", url: "http://pubgears-d.openx.net/w/1.0/ri?bi=2e1a19ab-e…RvfGNpPTF8dXI9ZUZhSW1aanVXS3xsZD1vbmFnb2ZseS5jb20", completed: true…}
http://pubgears-d.openx.net/w/1.0/rr?bi=2e1a19ab-efee-4661-8e5d-c8d1d92a715…G13aXM9MXxtd3B0PW94X3Byb3RvfGNpPTF8dXI9ZUZhSW1aanVXS3xsZD1vbmFnb2ZseS5jb20 Resource {requests: Array[3], method: "GET", type: "image", url: "http://pubgears-d.openx.net/w/1.0/rr?bi=2e1a19ab-e…RvfGNpPTF8dXI9ZUZhSW1aanVXS3xsZD1vbmFnb2ZseS5jb20", completed: true…}
https://pagead2.googlesyndication.com/pagead/gen_204?id=xbid&dbm_b=AKAmf-Bi…XXnbn5k-hkXt2t_i2dpfJxCieU0_9-Yeej_owV8JYxRkGZkaC2l4ueRLj7WpbXC_MIreLpeVSg Resource {requests: Array[3], method: "GET", type: "image", url: "https://pagead2.googlesyndication.com/pagead/gen_2…U0_9-Yeej_owV8JYxRkGZkaC2l4ueRLj7WpbXC_MIreLpeVSg", completed: true…}
http://c.betrad.com/geo/ba.js?d803588 Resource {requests: Array[9], method: "GET", type: "xhr", url: "http://c.betrad.com/geo/ba.js?d803588", completed: true…}
https://googleads.g.doubleclick.net/pagead/drt/si Resource {requests: Array[3], method: "GET", type: "subFrame", url: "https://googleads.g.doubleclick.net/pagead/drt/si", completed: true…}
http://beacon.krxd.net/optout_check?callback=Krux.ns.warnerbros.kxjsonp_optOutCheck Resource {requests: Array[3], method: "GET", type: "script", url: "http://beacon.krxd.net/optout_check?callback=Krux.ns.warnerbros.kxjsonp_optOutCheck", completed: true…}
http://cdn.krxd.net/userdata/get?pub=9a1de5c5-4981-42ce-b9d1-093439c76070&technographics=1&callback=Krux.ns.warnerbros.kxjsonp_userdata Resource {requests: Array[3], method: "GET", type: "script", url: "http://cdn.krxd.net/userdata/get?pub=9a1de5c5-4981…cs=1&callback=Krux.ns.warnerbros.kxjsonp_userdata", completed: true…}
http://r.nexac.com/e/getdata.xgi?dt=br&pkey=oazw62oazwq13&ru=http://beacon.krxd.net/data.gif?_kuid%3DK3ElxNJbkdpid%3De70bc6e8-7d66-460e-b96d-cee26cf41add%dlxid%3D%3Cna_id%3E%dlxdata%3D%3Cna_da%3E
http://rtd.tubemogul.com/upi/pid/NC4WTmcy?redir=http%3A%2F%2Fbeacon.krxd.ne…ner_id%3Dcb276571-e0d9-4438-9fd4-80a1ff034b01%26puid%3D%24%7BTM_USER_ID%7D Resource {requests: Array[3], method: "GET", type: "image", url: "http://rtd.tubemogul.com/upi/pid/NC4WTmcy?redir=ht…38-9fd4-80a1ff034b01%26puid%3D%24%7BTM_USER_ID%7D", completed: false…}
https://aa.agkn.com/adscores/g.js?sid=9212244187&_kdpid=2111c0af-fc3a-446f-ab07-63aa74fbde8e Resource {requests: Array[3], method: "GET", type: "image", url: "https://aa.agkn.com/adscores/g.js?sid=9212244187&_kdpid=2111c0af-fc3a-446f-ab07-63aa74fbde8e", completed: false…}
http://s.thebrighttag.com/cs?tp=8RtgoqC&uid=K3ElxNJb Resource {requests: Array[3], method: "GET", type: "image", url: "http://s.thebrighttag.com/cs?tp=8RtgoqC&uid=K3ElxNJb", completed: true…}
https://ad.doubleclick.net/ddm/adj/N8278.468584.AMNETGROUPINC./B10442827.13…_rfl=1,http%3A%2F%2Fwww.tmz.com%2F$0;xdt=0;crlt=CEjnEe*-KA;sttr=720;prcl=s? Resource {requests: Array[3], method: "GET", type: "script", url: "https://ad.doubleclick.net/ddm/adj/N8278.468584.AM…z.com%2F$0;xdt=0;crlt=CEjnEe*-KA;sttr=720;prcl=s?", completed: true…}
http://presentation-atl1.turn.com/server/ads.js?pub=6552283&cch=6553230&cod…imyQiTgzQp-305JAD3_Osdv-AcpjGmA&acp=AAABWArIU3P3O46yjyMXjxuD9oMp5AeWCsnArA Resource {requests: Array[3], method: "GET", type: "script", url: "http://presentation-atl1.turn.com/server/ads.js?pu…cpjGmA&acp=AAABWArIU3P3O46yjyMXjxuD9oMp5AeWCsnArA", completed: true…}
http://pubgears-d.openx.net/w/1.0/rr?bi=2e1a19ab-efee-4661-8e5d-c8d1d92a715…13aXM9MXxtd3B0PW9wZW5ydGJfanNvbnxjaT0xfHVyPWNJYVJDSXFWS2F8bGQ9cGVyZ28uY29t Resource {requests: Array[3], method: "GET", type: "image", url: "http://pubgears-d.openx.net/w/1.0/rr?bi=2e1a19ab-e…fanNvbnxjaT0xfHVyPWNJYVJDSXFWS2F8bGQ9cGVyZ28uY29t", completed: true…}
https://cm.g.doubleclick.net/pixel?google_nid=appnexus&google_cm&google_sc&google_dbm Resource {requests: Array[3], method: "GET", type: "image", url: "https://cm.g.doubleclick.net/pixel?google_nid=appnexus&google_cm&google_sc&google_dbm", completed: false…}
https://cm.g.doubleclick.net/pixel?google_nid=pubmatic&google_cm&google_sc&google_dbm Resource {requests: Array[3], method: "GET", type: "image", url: "https://cm.g.doubleclick.net/pixel?google_nid=pubmatic&google_cm&google_sc&google_dbm", completed: false…}
http://pixel.sitescout.com/connectors/krux/usersync?redir=http://beacon.krxd.net%2Fusermatch.gif%3Fpartner_id%3Dsscout%26partner_uid%3D%24UUID Resource {requests: Array[3], method: "GET", type: "image", url: "http://pixel.sitescout.com/connectors/krux/usersyn…gif%3Fpartner_id%3Dsscout%26partner_uid%3D%24UUID", completed: false…}
https://sync.search.spotxchange.com/partner?adv_id=7025&uid=CAESENGmQ1rmqpWZq6PPf_t7I_o&google_cver=1 Resource {requests: Array[3], method: "GET", type: "image", url: "https://sync.search.spotxchange.com/partner?adv_id…025&uid=CAESENGmQ1rmqpWZq6PPf_t7I_o&google_cver=1", completed: false…}
https://sync.adap.tv/sync?type=gif&key=invitemedianewyork2&uid=CAESEAfSgC8meW6rna_TEnqZr2g&google_cver=1 Resource {requests: Array[3], method: "GET", type: "image", url: "https://sync.adap.tv/sync?type=gif&key=invitemedia…rk2&uid=CAESEAfSgC8meW6rna_TEnqZr2g&google_cver=1", completed: false…}
http://b.scorecardresearch.com/p?c1=9&c2=8188709&cs_xi=K3ElxNJb&rn=1477649651 Resource {requests: Array[3], method: "GET", type: "image", url: "http://b.scorecardresearch.com/p?c1=9&c2=8188709&cs_xi=K3ElxNJb&rn=1477649651", completed: true…}
https://idsync.rlcdn.com/379708.gif?partner_uid=K3ElxNJb Resource {requests: Array[3], method: "GET", type: "image", url: "https://idsync.rlcdn.com/379708.gif?partner_uid=K3ElxNJb", completed: false…}
https://googleads.g.doubleclick.net/xbbe/pixel?d=CJSiMhDWjzwY7JvhDDAB&v=APE…XaCQk1lnACTPQCAZW91AFAjS57hpkb5QhE_2XVFtw_I2vOx6cXhqrtbyq43-VS-nubC3bg-XLQ Resource {requests: Array[3], method: "GET", type: "subFrame", url: "https://googleads.g.doubleclick.net/xbbe/pixel?d=C…7hpkb5QhE_2XVFtw_I2vOx6cXhqrtbyq43-VS-nubC3bg-XLQ", completed: true…}
https://cm.g.doubleclick.net/pixel?google_nid=connexity&google_push= Resource {requests: Array[3], method: "GET", type: "image", url: "https://cm.g.doubleclick.net/pixel?google_nid=connexity&google_push=", completed: true…}
https://partners.tremorhub.com/sync?UIGL=CAESEOkBJEzTH0wyx6deB080PV0&google_cver=1 Resource {requests: Array[3], method: "GET", type: "image", url: "https://partners.tremorhub.com/sync?UIGL=CAESEOkBJEzTH0wyx6deB080PV0&google_cver=1", completed: true…}
https://pixel.rubiconproject.com/tap.php?v=7751&nid=2249&expires=30&put=CAESEC9iWjrVun20aJbdE1UZsF8&google_cver=1 Resource {requests: Array[3], method: "GET", type: "image", url: "https://pixel.rubiconproject.com/tap.php?v=7751&ni…=30&put=CAESEC9iWjrVun20aJbdE1UZsF8&google_cver=1", completed: true…}
https://googleads.g.doubleclick.net/xbbe/pixel?d=CJSiMhDWjzwY7JvhDDAB&v=APE…zMQfcYk4Qgtxu98PpAkiZKHYjjze4UPbibZmph6ixxqhWF4JATYpBJgquyKxbVtcLCdCeTXo0Q Resource {requests: Array[3], method: "GET", type: "subFrame", url: "https://googleads.g.doubleclick.net/xbbe/pixel?d=C…jze4UPbibZmph6ixxqhWF4JATYpBJgquyKxbVtcLCdCeTXo0Q", completed: true…}
http://r.nexac.com/e/getdata.xgi?dt=br&pkey=gpwn29rvapq62&ru=http://beacon.krxd.net/data.gif?_kuid%3DK3ElxNJbkdpid%3D2dd640a6-6ebd-4d4f-af30-af8baa441a0d%dlxid%3D%3Cna_id%3E%dlxdata%3D%3Cna_da%3E
http://loadm.exelator.com/load?_kdpid=e4942ff0-4070-4896-a7ef-e6a5a30ce9f9&buid=K3ElxNJb&p=204&g=270&j=0 Resource {requests: Array[3], method: "GET", type: "image", url: "http://loadm.exelator.com/load?_kdpid=e4942ff0-407…6-a7ef-e6a5a30ce9f9&buid=K3ElxNJb&p=204&g=270&j=0", completed: false…}
https://usermatch.krxd.net/um/v2?partner=google Resource {requests: Array[3], method: "GET", type: "image", url: "https://usermatch.krxd.net/um/v2?partner=google", completed: false…}
ws://ortc-ws2-useast1-s0003.realtime.co/broadcast/063/pkaoabjh/websocket Resource {requests: Array[2], method: "GET", type: "other", url: "ws://ortc-ws2-useast1-s0003.realtime.co/broadcast/063/pkaoabjh/websocket", completed: false…}
http://kr.ixiaa.com/C726AB29-0470-440B-B8D2-D552CED3A3DC/a.gif Resource {requests: Array[3], method: "GET", type: "image", url: "http://kr.ixiaa.com/C726AB29-0470-440B-B8D2-D552CED3A3DC/a.gif", completed: false…}
https://pagead2.googlesyndication.com/bg/Vx5T5v_l9kArTWBPBHZqY9TAnkwNmP2omz2ceBJ6VSU.js Resource {requests: Array[6], method: "GET", type: "script", url: "https://pagead2.googlesyndication.com/bg/Vx5T5v_l9kArTWBPBHZqY9TAnkwNmP2omz2ceBJ6VSU.js", completed: true…}
http://beacon.krxd.net/usermatch.gif?partner_id=cb276571-e0d9-4438-9fd4-80a1ff034b01&puid=8155793527590810759 Resource {requests: Array[3], method: "GET", type: "image", url: "http://beacon.krxd.net/usermatch.gif?partner_id=cb…9-4438-9fd4-80a1ff034b01&puid=8155793527590810759", completed: true…}
http://beacon.krxd.net/data.gif?_kuid=K3ElxNJb&_kdpid=e70bc6e8-7d66-460e-b96d-cee26cf41add&dlxid=&dlxdata= Resource {requests: Array[3], method: "GET", type: "image", url: "http://beacon.krxd.net/data.gif?_kuid=K3ElxNJb&_kd…bc6e8-7d66-460e-b96d-cee26cf41add&dlxid=&dlxdata=", completed: true…}
https://ib.adnxs.com/setuid?entity=101&code=CAESEOpQUHniM3C_q0cwxgUJDJI&google_cver=1 Resource {requests: Array[3], method: "GET", type: "image", url: "https://ib.adnxs.com/setuid?entity=101&code=CAESEOpQUHniM3C_q0cwxgUJDJI&google_cver=1", completed: true…}
https://image2.pubmatic.com/AdServer/Pug?vcode=bz0yJnR5cGU9MSZjb2RlPTIxNzcmdGw9MTI5NjAw&piggybackCookie=CAESEJXKj3XyKpbLWqs56CyP4e0&google_cver=1 Resource {requests: Array[3], method: "GET", type: "image", url: "https://image2.pubmatic.com/AdServer/Pug?vcode=bz0…kCookie=CAESEJXKj3XyKpbLWqs56CyP4e0&google_cver=1", completed: true…}
https://choices.truste.com/ca?pid=turn01&aid=turn01&cid=1519369354&c=7558564148489724897&w=300&h=250&js=turn0&admarker=dynamic&uid=8062967306755220449 Resource {requests: Array[3], method: "GET", type: "script", url: "https://choices.truste.com/ca?pid=turn01&aid=turn0…js=turn0&admarker=dynamic&uid=8062967306755220449", completed: true…}
https://ad.doubleclick.net/ddm/adi/N229803.150834TURN/B9595194.130320313;sz…fgLsddIOg3wdcTaRbB7WiCRKJIvSGi-SLPKwgNm-vti5A/url/;ord=7558564148489724897? Resource {requests: Array[3], method: "GET", type: "subFrame", url: "https://ad.doubleclick.net/ddm/adi/N229803.150834T…vSGi-SLPKwgNm-vti5A/url/;ord=7558564148489724897?", completed: true…}
http://beacon.krxd.net/usermatch.gif?partner_id=sscout&partner_uid=ede3189b-7166-484f-a09e-8591f8e95f4a Resource {requests: Array[3], method: "GET", type: "image", url: "http://beacon.krxd.net/usermatch.gif?partner_id=ss…&partner_uid=ede3189b-7166-484f-a09e-8591f8e95f4a", completed: true…}
https://log.pinterest.com/?guid=nwnsa025hvd8&tv=2016052401&type=pidget&sub=…en&via=http%3A%2F%2Fwww.tmz.com%2F&callback=PIN_1477649649654.f.callback[0] Resource {requests: Array[3], method: "GET", type: "script", url: "https://log.pinterest.com/?guid=nwnsa025hvd8&tv=20…z.com%2F&callback=PIN_1477649649654.f.callback[0]", completed: true…}
https://d.agkn.com/pixel/5500/?atr=000&fl=&age=&gender=&st=&sk=&pd=&cbr=&mi…aa74fbde8e&_kua_seg=000&_kua_zip=&_kua_age=&_kua_gender=&_k_adadvisor_key= Resource {requests: Array[3], method: "GET", type: "image", url: "https://d.agkn.com/pixel/5500/?atr=000&fl=&age=&ge…kua_zip=&_kua_age=&_kua_gender=&_k_adadvisor_key=", completed: false…}
https://cdn.spotxcdn.com/media/thumbs/pixel/pixel.gif Resource {requests: Array[3], method: "GET", type: "image", url: "https://cdn.spotxcdn.com/media/thumbs/pixel/pixel.gif", completed: true…}
https://sync.adaptv.advertising.com/sync?type=gif&key=invitemedianewyork2&uid=CAESEAfSgC8meW6rna_TEnqZr2g&google_cver=1 Resource {requests: Array[3], method: "GET", type: "image", url: "https://sync.adaptv.advertising.com/sync?type=gif&…rk2&uid=CAESEAfSgC8meW6rna_TEnqZr2g&google_cver=1", completed: true…}
https://idsync.rlcdn.com/379708.gif?partner_uid=K3ElxNJb&redirect=1 Resource {requests: Array[3], method: "GET", type: "image", url: "https://idsync.rlcdn.com/379708.gif?partner_uid=K3ElxNJb&redirect=1", completed: true…}
http://wfpscripts.webspectator.com/ws-ad.js Resource {requests: Array[3], method: "GET", type: "script", url: "http://wfpscripts.webspectator.com/ws-ad.js", completed: true…}
http://beacon.krxd.net/data.gif?_kuid=K3ElxNJb&_kdpid=2dd640a6-6ebd-4d4f-af30-af8baa441a0d&dlxid=&dlxdata= Resource {requests: Array[3], method: "GET", type: "image", url: "http://beacon.krxd.net/data.gif?_kuid=K3ElxNJb&_kd…640a6-6ebd-4d4f-af30-af8baa441a0d&dlxid=&dlxdata=", completed: true…}
http://pubgears-d.openx.net/w/1.0/ri?bi=2e1a19ab-efee-4661-8e5d-c8d1d92a715…13aXM9MXxtd3B0PW9wZW5ydGJfanNvbnxjaT0xfHVyPWNJYVJDSXFWS2F8bGQ9cGVyZ28uY29t Resource {requests: Array[3], method: "GET", type: "image", url: "http://pubgears-d.openx.net/w/1.0/ri?bi=2e1a19ab-e…fanNvbnxjaT0xfHVyPWNJYVJDSXFWS2F8bGQ9cGVyZ28uY29t", completed: true…}
http://static.cliipa.com/basev/0.0.181/sbt.js Resource {requests: Array[3], method: "GET", type: "script", url: "http://static.cliipa.com/basev/0.0.181/sbt.js", completed: true…}
http://loadm.exelator.com/load?_kdpid=e4942ff0-4070-4896-a7ef-e6a5a30ce9f9&buid=K3ElxNJb&p=204&g=270&j=0&xl8blockcheck=1 Resource {requests: Array[3], method: "GET", type: "image", url: "http://loadm.exelator.com/load?_kdpid=e4942ff0-407…9f9&buid=K3ElxNJb&p=204&g=270&j=0&xl8blockcheck=1", completed: false…}
https://cm.g.doubleclick.net/pixel?google_nid=casale_media2_dsp_secure&google_cm&google_sc&google_dbm Resource {requests: Array[3], method: "GET", type: "image", url: "https://cm.g.doubleclick.net/pixel?google_nid=casa…_media2_dsp_secure&google_cm&google_sc&google_dbm", completed: false…}
https://cm.g.doubleclick.net/pixel?google_nid=openx&google_cm&google_sc&google_dbm Resource {requests: Array[3], method: "GET", type: "image", url: "https://cm.g.doubleclick.net/pixel?google_nid=openx&google_cm&google_sc&google_dbm", completed: false…}
http://beacon.krxd.net/data.gif?_kdpid=5eddb9ca-88c9-4c34-a9ae-2680df2a7de7…NA&hk=NA&hl=NA&hm=NA&hn=NA&ho=NA&hp=NA&hq=NA&hr=NA&hs=NA&ht=NA&hu=NA&hv=NA Resource {requests: Array[3], method: "GET", type: "image", url: "http://beacon.krxd.net/data.gif?_kdpid=5eddb9ca-88…A&ho=NA&hp=NA&hq=NA&hr=NA&hs=NA&ht=NA&hu=NA&hv=NA", completed: true…}
https://cm.g.doubleclick.net/pixel?google_cm&google_nid=krux_digital&google_hm=SzNFbHhOSmI%3D Resource {requests: Array[3], method: "GET", type: "image", url: "https://cm.g.doubleclick.net/pixel?google_cm&google_nid=krux_digital&google_hm=SzNFbHhOSmI%3D", completed: false…}
http://cdn.turn.com/server/ddc.htm?uid=8062967306755220449&mktid=771&mpid=&fpid=9&rnd=8729705362145462583&nu=y&sp=n&ctid=1&cyid=2&app=n&et=n&synct=20 Resource {requests: Array[3], method: "GET", type: "subFrame", url: "http://cdn.turn.com/server/ddc.htm?uid=80629673067…62583&nu=y&sp=n&ctid=1&cyid=2&app=n&et=n&synct=20", completed: true…}
https://cm.g.doubleclick.net/pixel?google_nid=contextweb&google_cm&google_sc&google_dbm Resource {requests: Array[3], method: "GET", type: "image", url: "https://cm.g.doubleclick.net/pixel?google_nid=contextweb&google_cm&google_sc&google_dbm", completed: false…}
https://cm.g.doubleclick.net/pixel?google_nid=improvedigital&google_cm&google_sc&dsp_callback=1&google_dbm Resource {requests: Array[3], method: "GET", type: "image", url: "https://cm.g.doubleclick.net/pixel?google_nid=impr…tal&google_cm&google_sc&dsp_callback=1&google_dbm", completed: false…}
https://s0.2mdn.net/879366/express_html_inpage_rendering_lib_200_155.js Resource {requests: Array[3], method: "GET", type: "script", url: "https://s0.2mdn.net/879366/express_html_inpage_rendering_lib_200_155.js", completed: true…}
http://mathid.mathtag.com/device/id.js Resource {requests: Array[3], method: "GET", type: "script", url: "http://mathid.mathtag.com/device/id.js", completed: true…}
http://beacon.krxd.net/pixel.gif?source=smarttag&fired=user_data_timeout&co….krxd.net%2Foptout_check%2CNaN%2C%2F%2Fcdn.krxd.net%2Fuserdata%2Fget%2CNaN Resource {requests: Array[3], method: "GET", type: "image", url: "http://beacon.krxd.net/pixel.gif?source=smarttag&f…2CNaN%2C%2F%2Fcdn.krxd.net%2Fuserdata%2Fget%2CNaN", completed: true…}
http://c.betrad.com/a/n/322/4311.js Resource {requests: Array[3], method: "GET", type: "script", url: "http://c.betrad.com/a/n/322/4311.js", completed: true…}
http://pagead2.googlesyndication.com/pagead/gen_204?id=sodar&v=5&t=2&bgai=B…BHw6yEya2r3I_ut5MQhy4F8xzCO-LmII2JlOgEpHRCQH6tf6jfGcm0G23aOZYGCpf3m3yz5BKG Resource {requests: Array[3], method: "GET", type: "image", url: "http://pagead2.googlesyndication.com/pagead/gen_20…CO-LmII2JlOgEpHRCQH6tf6jfGcm0G23aOZYGCpf3m3yz5BKG", completed: true…}
http://pagead2.googlesyndication.com/pagead/gen_204?id=sodar&v=5&t=2&bgai=B…y4g9Tp2oH5veU_QPNL5kKDijO3OqkciIhFH-JT24i3VkkEHASHLx23WBVuNxsm5UWrkJyqHQcI Resource {requests: Array[3], method: "GET", type: "image", url: "http://pagead2.googlesyndication.com/pagead/gen_20…3OqkciIhFH-JT24i3VkkEHASHLx23WBVuNxsm5UWrkJyqHQcI", completed: true…}
http://pagead2.googlesyndication.com/pagead/gen_204?id=sodar&v=5&t=2&bgai=B…o-26X0bc_6OdQJuqEKZpKl-Ehpq3Z28zS3l6Jz62bE5KjBXNtqQ4OSw190jqVUGJPfGlaWKmIk Resource {requests: Array[3], method: "GET", type: "image", url: "http://pagead2.googlesyndication.com/pagead/gen_20…pq3Z28zS3l6Jz62bE5KjBXNtqQ4OSw190jqVUGJPfGlaWKmIk", completed: true…}
http://static.cliipa.com/basev/0.0.181/sbt.css Resource {requests: Array[3], method: "GET", type: "stylesheet", url: "http://static.cliipa.com/basev/0.0.181/sbt.css", completed: true…}
http://load.s3.amazonaws.com/pixel.gif Resource {requests: Array[3], method: "GET", type: "image", url: "http://load.s3.amazonaws.com/pixel.gif", completed: true…}
https://s0.2mdn.net/879366/image_gallery_html_inpage_rendering_lib_200_156.js Resource {requests: Array[3], method: "GET", type: "script", url: "https://s0.2mdn.net/879366/image_gallery_html_inpage_rendering_lib_200_156.js", completed: true…}
http://webservices.webspectator.com/impression?appid=39&auid=225786&ci=2881…&is=0&cw=300&ch=250&ts=1477649652258&r=0&s=2437&tpi=1&sid=5FEE27816454369C Resource {requests: Array[3], method: "GET", type: "image", url: "http://webservices.webspectator.com/impression?app…77649652258&r=0&s=2437&tpi=1&sid=5FEE27816454369C", completed: true…}
http://webservices.webspectator.com/impression?appid=39&auid=225786&ci=2881…&is=0&cw=300&ch=250&ts=1477649652268&r=0&s=2437&tpi=1&sid=5FEE27816454369C Resource {requests: Array[3], method: "GET", type: "image", url: "http://webservices.webspectator.com/impression?app…77649652268&r=0&s=2437&tpi=1&sid=5FEE27816454369C", completed: true…}
http://webservices.webspectator.com/impression?appid=39&auid=225786&ci=2881…&is=0&cw=300&ch=250&ts=1477649652278&r=0&s=2437&tpi=1&sid=5FEE27816454369C Resource {requests: Array[3], method: "GET", type: "image", url: "http://webservices.webspectator.com/impression?app…77649652278&r=0&s=2437&tpi=1&sid=5FEE27816454369C", completed: true…}
http://webservices.webspectator.com/impression?appid=39&auid=225786&ci=2881…&is=0&cw=300&ch=250&ts=1477649652288&r=0&s=2437&tpi=1&sid=5FEE27816454369C Resource {requests: Array[3], method: "GET", type: "image", url: "http://webservices.webspectator.com/impression?app…77649652288&r=0&s=2437&tpi=1&sid=5FEE27816454369C", completed: true…}
http://webservices.webspectator.com/impression?appid=39&auid=225786&ci=8910…&is=0&cw=300&ch=250&ts=1477649652440&r=0&s=2437&tpi=1&sid=5FEE27816454369C Resource {requests: Array[3], method: "GET", type: "image", url: "http://webservices.webspectator.com/impression?app…77649652440&r=0&s=2437&tpi=1&sid=5FEE27816454369C", completed: true…}
https://dsum-sec.casalemedia.com/rum?cm_dsp_id=45&external_user_id=CAESEENSyPIVfgjrrUnKhFIAfkU&google_cver=1 Resource {requests: Array[3], method: "GET", type: "image", url: "https://dsum-sec.casalemedia.com/rum?cm_dsp_id=45&…user_id=CAESEENSyPIVfgjrrUnKhFIAfkU&google_cver=1", completed: true…}
http://player.cliipa.com/report/ Resource {requests: Array[15], method: "POST", type: "xhr", url: "http://player.cliipa.com/report/", completed: true…}
chrome-devtools://devtools/bundled/elements_module.js Resource {requests: Array[1], method: "GET", type: "xhr", url: "chrome-devtools://devtools/bundled/elements_module.js", completed: true…}
blob:http://www.tmz.com/7519cb2f-ca51-4ca8-95f2-8ca30e94d791 Resource {requests: Array[1], method: "GET", type: "other", url: "blob:http://www.tmz.com/7519cb2f-ca51-4ca8-95f2-8ca30e94d791", completed: true…}
https://ad.doubleclick.net/ddm/activity/src=5472318;type=invmedia;cat=gkrxdlxu;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;ord=1? Resource {requests: Array[3], method: "GET", type: "image", url: "https://ad.doubleclick.net/ddm/activity/src=547231…dc_rdid=;tag_for_child_directed_treatment=;ord=1?", completed: false…}
https://ad.doubleclick.net/ddm/activity/src=5535610;type=invmedia;cat=ssejsizf;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;ord=1? Resource {requests: Array[3], method: "GET", type: "image", url: "https://ad.doubleclick.net/ddm/activity/src=553561…dc_rdid=;tag_for_child_directed_treatment=;ord=1?", completed: false…}
https://ad.doubleclick.net/ddm/activity/src=5433664;type=invmedia;cat=hvcueeoq;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;ord=1? Resource {requests: Array[3], method: "GET", type: "image", url: "https://ad.doubleclick.net/ddm/activity/src=543366…dc_rdid=;tag_for_child_directed_treatment=;ord=1?", completed: false…}
https://ad.doubleclick.net/ddm/activity/src=5340960;type=invmedia;cat=bjibbxdi;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;ord=1? Resource {requests: Array[3], method: "GET", type: "image", url: "https://ad.doubleclick.net/ddm/activity/src=534096…dc_rdid=;tag_for_child_directed_treatment=;ord=1?", completed: false…}
https://ad.doubleclick.net/ddm/activity/src=5272405;type=invmedia;cat=y3kojwup;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;ord=1? Resource {requests: Array[3], method: "GET", type: "image", url: "https://ad.doubleclick.net/ddm/activity/src=527240…dc_rdid=;tag_for_child_directed_treatment=;ord=1?", completed: false…}
https://ad.doubleclick.net/ddm/activity/src=5501302;type=invmedia;cat=eutoz4xj;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;ord=1? Resource {requests: Array[3], method: "GET", type: "image", url: "https://ad.doubleclick.net/ddm/activity/src=550130…dc_rdid=;tag_for_child_directed_treatment=;ord=1?", completed: false…}
https://ad.doubleclick.net/ddm/activity/src=5808327;type=invmedia;cat=pklbvz5o;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;ord=1? Resource {requests: Array[3], method: "GET", type: "image", url: "https://ad.doubleclick.net/ddm/activity/src=580832…dc_rdid=;tag_for_child_directed_treatment=;ord=1?", completed: false…}
https://ad.doubleclick.net/ddm/activity/src=6037718;type=invmedia;cat=txpjneoe;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;ord=1? Resource {requests: Array[3], method: "GET", type: "image", url: "https://ad.doubleclick.net/ddm/activity/src=603771…dc_rdid=;tag_for_child_directed_treatment=;ord=1?", completed: false…}
https://ad.doubleclick.net/ddm/activity/src=6038323;type=invmedia;cat=gz08h7dw;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;ord=1? Resource {requests: Array[3], method: "GET", type: "image", url: "https://ad.doubleclick.net/ddm/activity/src=603832…dc_rdid=;tag_for_child_directed_treatment=;ord=1?", completed: false…}
https://ad.doubleclick.net/ddm/activity/src=6085743;type=invmedia;cat=a654tcva;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;ord=1? Resource {requests: Array[3], method: "GET", type: "image", url: "https://ad.doubleclick.net/ddm/activity/src=608574…dc_rdid=;tag_for_child_directed_treatment=;ord=1?", completed: false…}
https://ad.doubleclick.net/ddm/activity/src=5472318;type=invmedia;cat=j4cvfhrd;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;ord=1 Resource {requests: Array[3], method: "GET", type: "image", url: "https://ad.doubleclick.net/ddm/activity/src=547231…;dc_rdid=;tag_for_child_directed_treatment=;ord=1", completed: false…}
https://ad.doubleclick.net/ddm/activity/src=5535610;type=invmedia;cat=pltpie9n;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;ord=1 Resource {requests: Array[3], method: "GET", type: "image", url: "https://ad.doubleclick.net/ddm/activity/src=553561…;dc_rdid=;tag_for_child_directed_treatment=;ord=1", completed: false…}
https://ad.doubleclick.net/ddm/activity/src=5433664;type=invmedia;cat=fyrf4qst;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;ord=1 Resource {requests: Array[3], method: "GET", type: "image", url: "https://ad.doubleclick.net/ddm/activity/src=543366…;dc_rdid=;tag_for_child_directed_treatment=;ord=1", completed: false…}
https://ad.doubleclick.net/ddm/activity/src=5340960;type=invmedia;cat=u6trdsnb;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;ord=1 Resource {requests: Array[3], method: "GET", type: "image", url: "https://ad.doubleclick.net/ddm/activity/src=534096…;dc_rdid=;tag_for_child_directed_treatment=;ord=1", completed: false…}
https://ad.doubleclick.net/ddm/activity/src=5272405;type=invmedia;cat=qs9hyptz;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;ord=1 Resource {requests: Array[3], method: "GET", type: "image", url: "https://ad.doubleclick.net/ddm/activity/src=527240…;dc_rdid=;tag_for_child_directed_treatment=;ord=1", completed: false…}
https://ad.doubleclick.net/ddm/activity/src=5501302;type=invmedia;cat=aaodffat;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;ord=1 Resource {requests: Array[3], method: "GET", type: "image", url: "https://ad.doubleclick.net/ddm/activity/src=550130…;dc_rdid=;tag_for_child_directed_treatment=;ord=1", completed: false…}
https://ad.doubleclick.net/ddm/activity/src=5808327;type=invmedia;cat=olvwc4fr;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;ord=1 Resource {requests: Array[3], method: "GET", type: "image", url: "https://ad.doubleclick.net/ddm/activity/src=580832…;dc_rdid=;tag_for_child_directed_treatment=;ord=1", completed: false…}
https://ad.doubleclick.net/ddm/activity/src=5808925;type=invmedia;cat=kshqsops;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;ord=1 Resource {requests: Array[3], method: "GET", type: "image", url: "https://ad.doubleclick.net/ddm/activity/src=580892…;dc_rdid=;tag_for_child_directed_treatment=;ord=1", completed: false…}
https://ad.doubleclick.net/ddm/activity/src=5942269;type=invmedia;cat=grzxmvr9;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;ord=1 Resource {requests: Array[3], method: "GET", type: "image", url: "https://ad.doubleclick.net/ddm/activity/src=594226…;dc_rdid=;tag_for_child_directed_treatment=;ord=1", completed: false…}
https://ad.doubleclick.net/ddm/activity/src=6037718;type=invmedia;cat=vofhzle1;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;ord=1? Resource {requests: Array[3], method: "GET", type: "image", url: "https://ad.doubleclick.net/ddm/activity/src=603771…dc_rdid=;tag_for_child_directed_treatment=;ord=1?", completed: false…}
https://ad.doubleclick.net/ddm/activity/src=6038323;type=invmedia;cat=f4pmawar;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;ord=1? Resource {requests: Array[3], method: "GET", type: "image", url: "https://ad.doubleclick.net/ddm/activity/src=603832…dc_rdid=;tag_for_child_directed_treatment=;ord=1?", completed: false…}
https://ad.doubleclick.net/ddm/activity/src=6085743;type=invmedia;cat=ffsllbbo;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;ord=1? Resource {requests: Array[3], method: "GET", type: "image", url: "https://ad.doubleclick.net/ddm/activity/src=608574…dc_rdid=;tag_for_child_directed_treatment=;ord=1?", completed: false…}
blob:http://www.tmz.com/f481086b-c8ce-471f-8456-71746ab809bd Resource {requests: Array[1], method: "GET", type: "other", url: "blob:http://www.tmz.com/f481086b-c8ce-471f-8456-71746ab809bd", completed: true…}
blob:http://www.tmz.com/b6c71e78-9431-4cee-a18c-cb51a766c910 Resource {requests: Array[1], method: "GET", type: "other", url: "blob:http://www.tmz.com/b6c71e78-9431-4cee-a18c-cb51a766c910", completed: true…}
blob:http://www.tmz.com/82ca1e7b-a0b5-4af8-970f-996a825ef0b6 Resource {requests: Array[1], method: "GET", type: "other", url: "blob:http://www.tmz.com/82ca1e7b-a0b5-4af8-970f-996a825ef0b6", completed: true…}
https://us-u.openx.net/w/1.0/sd?id=537072991&val=CAESEOkq2Dlc8Fq6OwPzAvThUtE&google_cver=1 Resource {requests: Array[3], method: "GET", type: "image", url: "https://us-u.openx.net/w/1.0/sd?id=537072991&val=CAESEOkq2Dlc8Fq6OwPzAvThUtE&google_cver=1", completed: true…}
https://beacon.krxd.net/usermatch.gif?google_gid=&google_gid=CAESEDwWgoWS43e4tnJx1nkbWt0&google_cver=1 Resource {requests: Array[3], method: "GET", type: "image", url: "https://beacon.krxd.net/usermatch.gif?google_gid=&…gle_gid=CAESEDwWgoWS43e4tnJx1nkbWt0&google_cver=1", completed: true…}
https://ad.360yield.com/match?publisher_dsp_id=55&dsp_callback=1&external_user_id=CAESEPiDWXLR5Q-QgXdtVO4nUuQ&google_cver=1 Resource {requests: Array[3], method: "GET", type: "image", url: "https://ad.360yield.com/match?publisher_dsp_id=55&…user_id=CAESEPiDWXLR5Q-QgXdtVO4nUuQ&google_cver=1", completed: false…}
https://bh.contextweb.com/bh/rtset?do=add&pid=547259&ev=CAESEEeFi9Vivnfrm5BEp1VGlzc&google_cver=1 Resource {requests: Array[3], method: "GET", type: "image", url: "https://bh.contextweb.com/bh/rtset?do=add&pid=547259&ev=CAESEEeFi9Vivnfrm5BEp1VGlzc&google_cver=1", completed: true…}
https://beacon.krxd.net/data.gif?_kdpid=2111c0af-fc3a-446f-ab07-63aa74fbde8e&_kua_seg=000&_kua_zip=&_kua_age=&_kua_gender=&_k_adadvisor_key= Resource {requests: Array[3], method: "GET", type: "image", url: "https://beacon.krxd.net/data.gif?_kdpid=2111c0af-f…kua_zip=&_kua_age=&_kua_gender=&_k_adadvisor_key=", completed: true…}
http://static.cliipa.com/videosv/5553803d47e5b70300ea5455/56e7fcd40f6b4717001e88e6/56e7fcd40f6b4717001e88e6.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "http://static.cliipa.com/videosv/5553803d47e5b7030…fcd40f6b4717001e88e6/56e7fcd40f6b4717001e88e6.jpg", completed: true…}
http://webservices.webspectator.com/impression?appid=39&auid=225786&ci=8910…&is=0&cw=300&ch=250&ts=1477649652458&r=0&s=2437&tpi=1&sid=5FEE27816454369C Resource {requests: Array[3], method: "GET", type: "image", url: "http://webservices.webspectator.com/impression?app…77649652458&r=0&s=2437&tpi=1&sid=5FEE27816454369C", completed: true…}
https://adx.g.doubleclick.net/pagead/adview?ai=COL-68CQTWLelLM3EBcOJq8AMtJ_…EfdAYQCLcx4AQBoAYCgAezi8deqAemvhvYBwHSCAUIgGEQAdgTAw&sigh=iJ3cjBtN_78&vt=1 Resource {requests: Array[3], method: "GET", type: "image", url: "https://adx.g.doubleclick.net/pagead/adview?ai=COL…eqAemvhvYBwHSCAUIgGEQAdgTAw&sigh=iJ3cjBtN_78&vt=1", completed: true…}
blob:http://www.tmz.com/04c23636-ec02-49af-bd7d-0beaedda1f3b Resource {requests: Array[1], method: "GET", type: "other", url: "blob:http://www.tmz.com/04c23636-ec02-49af-bd7d-0beaedda1f3b", completed: true…}
http://pagead2.googlesyndication.com/activeview?avi=BTDvI8CQTWLelLM3EBcOJq8…s=0&bac=0&fp=correlator%3D3528639499037635%26eid%3D108809080%252C108809133NaNu%3D%252F55153744%252Ftmz%252Fhome%oid%3D3%26url%3Dhttp%253A%252F%252Fwww.tmz.com%252F&afp=%output%3Djson_html%impl%3Dfif%dt%3D1477649648556%26adx%3D29%26ady%3D29%ifi%3D5%flash%3D0&la=1&r=u&bs=785,585&bos=800,600&ps=1098,30403&ss=1920,1080&tt=4897&pt=-1&deb=1-0-9-6-7--1&tvt=2753&uc=2&tgt=IMG&cl=1
http://webservices.webspectator.com/impression?appid=39&auid=225786&ci=2881…&is=0&cw=300&ch=250&ts=1477649652473&r=0&s=2437&tpi=1&sid=5FEE27816454369C Resource {requests: Array[3], method: "GET", type: "image", url: "http://webservices.webspectator.com/impression?app…77649652473&r=0&s=2437&tpi=1&sid=5FEE27816454369C", completed: true…}
http://c.betrad.com/icon/box_19_top-right.png Resource {requests: Array[3], method: "GET", type: "image", url: "http://c.betrad.com/icon/box_19_top-right.png", completed: true…}
http://c.betrad.com/icon/ci.png Resource {requests: Array[3], method: "GET", type: "image", url: "http://c.betrad.com/icon/ci.png", completed: true…}
http://l.betrad.com/ct/0_0_0_4311/us/0/1/0/0/0/0/300/250/242/322/0/pixel.gif?v=d803588_1&ttid=2&d=www.tmz.com&r=0.8508330203927519 Resource {requests: Array[3], method: "GET", type: "image", url: "http://l.betrad.com/ct/0_0_0_4311/us/0/1/0/0/0/0/3…03588_1&ttid=2&d=www.tmz.com&r=0.8508330203927519", completed: true…}
http://image2.pubmatic.com/AdServer/Pug?vcode=bz0yJnR5cGU9MSZqcz0xJmNvZGU9O…gwMCZkcF9pZD0yMg==&piggybackCookie=pcv:1|uid:8062967306755220449&r=http%3aNaN%fimage4.pubmatic.com%fAdServer%fSPug%fpartnerID%d22
https://s0.2mdn.net/3856256/1475694619348/index.html Resource {requests: Array[3], method: "GET", type: "subFrame", url: "https://s0.2mdn.net/3856256/1475694619348/index.html", completed: true…}
https://ad.doubleclick.net/ddm/activity/src=5472318;dc_pre=CP2qu_Wh_c8CFUt4…edia;cat=gkrxdlxu;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;ord=1 Resource {requests: Array[3], method: "GET", type: "image", url: "https://ad.doubleclick.net/ddm/activity/src=547231…;dc_rdid=;tag_for_child_directed_treatment=;ord=1", completed: true…}
https://ad.doubleclick.net/ddm/activity/src=5535610;dc_pre=CJ3eu_Wh_c8CFYYH…edia;cat=ssejsizf;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;ord=1 Resource {requests: Array[3], method: "GET", type: "image", url: "https://ad.doubleclick.net/ddm/activity/src=553561…;dc_rdid=;tag_for_child_directed_treatment=;ord=1", completed: true…}
https://ad.doubleclick.net/ddm/activity/src=5433664;dc_pre=COXgu_Wh_c8CFcx9…edia;cat=hvcueeoq;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;ord=1 Resource {requests: Array[3], method: "GET", type: "image", url: "https://ad.doubleclick.net/ddm/activity/src=543366…;dc_rdid=;tag_for_child_directed_treatment=;ord=1", completed: true…}
https://ad.doubleclick.net/ddm/activity/src=5272405;dc_pre=CN3ku_Wh_c8CFUx7…edia;cat=y3kojwup;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;ord=1 Resource {requests: Array[3], method: "GET", type: "image", url: "https://ad.doubleclick.net/ddm/activity/src=527240…;dc_rdid=;tag_for_child_directed_treatment=;ord=1", completed: true…}
https://ad.doubleclick.net/ddm/activity/src=5340960;dc_pre=CJvku_Wh_c8CFZNC…edia;cat=bjibbxdi;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;ord=1 Resource {requests: Array[3], method: "GET", type: "image", url: "https://ad.doubleclick.net/ddm/activity/src=534096…;dc_rdid=;tag_for_child_directed_treatment=;ord=1", completed: true…}
https://ad.doubleclick.net/ddm/activity/src=5501302;dc_pre=CKzmu_Wh_c8CFYd3…edia;cat=eutoz4xj;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;ord=1 Resource {requests: Array[3], method: "GET", type: "image", url: "https://ad.doubleclick.net/ddm/activity/src=550130…;dc_rdid=;tag_for_child_directed_treatment=;ord=1", completed: true…}
https://ad.doubleclick.net/ddm/activity/src=6037718;dc_pre=CK6VvPWh_c8CFcpR…edia;cat=txpjneoe;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;ord=1 Resource {requests: Array[3], method: "GET", type: "image", url: "https://ad.doubleclick.net/ddm/activity/src=603771…;dc_rdid=;tag_for_child_directed_treatment=;ord=1", completed: true…}
https://ad.doubleclick.net/ddm/activity/src=6038323;dc_pre=CMKWvPWh_c8CFQJ4…edia;cat=gz08h7dw;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;ord=1 Resource {requests: Array[3], method: "GET", type: "image", url: "https://ad.doubleclick.net/ddm/activity/src=603832…;dc_rdid=;tag_for_child_directed_treatment=;ord=1", completed: true…}
https://ad.doubleclick.net/ddm/activity/src=6085743;dc_pre=CNCYvPWh_c8CFQ1s…edia;cat=a654tcva;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;ord=1 Resource {requests: Array[3], method: "GET", type: "image", url: "https://ad.doubleclick.net/ddm/activity/src=608574…;dc_rdid=;tag_for_child_directed_treatment=;ord=1", completed: true…}
https://ad.doubleclick.net/ddm/activity/src=5808327;dc_pre=CJWTvPWh_c8CFUJl…edia;cat=pklbvz5o;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;ord=1 Resource {requests: Array[3], method: "GET", type: "image", url: "https://ad.doubleclick.net/ddm/activity/src=580832…;dc_rdid=;tag_for_child_directed_treatment=;ord=1", completed: true…}
http://ib.adnxs.com/getuid?http://r.turn.com/r/bd?ddc=1&pid=54&cver=1&uid=$UID Resource {requests: Array[3], method: "GET", type: "image", url: "http://ib.adnxs.com/getuid?http://r.turn.com/r/bd?ddc=1&pid=54&cver=1&uid=$UID", completed: false…}
http://ib.adnxs.com/setuid?entity=43&code=8062967306755220449 Resource {requests: Array[3], method: "GET", type: "image", url: "http://ib.adnxs.com/setuid?entity=43&code=8062967306755220449", completed: true…}
https://ad.doubleclick.net/ddm/activity/src=5472318;dc_pre=CIjAvvWh_c8CFRNl…edia;cat=j4cvfhrd;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;ord=1 Resource {requests: Array[3], method: "GET", type: "image", url: "https://ad.doubleclick.net/ddm/activity/src=547231…;dc_rdid=;tag_for_child_directed_treatment=;ord=1", completed: true…}
http://bis2.cliipa.com/aggregate?_=1477649653911 Resource {requests: Array[3], method: "POST", type: "xhr", url: "http://bis2.cliipa.com/aggregate?_=1477649653911", completed: true…}
https://ad.doubleclick.net/ddm/activity/src=5433664;dc_pre=CLrFvvWh_c8CFRBn…edia;cat=fyrf4qst;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;ord=1 Resource {requests: Array[3], method: "GET", type: "image", url: "https://ad.doubleclick.net/ddm/activity/src=543366…;dc_rdid=;tag_for_child_directed_treatment=;ord=1", completed: true…}
https://ad.doubleclick.net/ddm/activity/src=5535610;dc_pre=CM_CvvWh_c8CFU5s…edia;cat=pltpie9n;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;ord=1 Resource {requests: Array[3], method: "GET", type: "image", url: "https://ad.doubleclick.net/ddm/activity/src=553561…;dc_rdid=;tag_for_child_directed_treatment=;ord=1", completed: true…}
https://ad.doubleclick.net/ddm/activity/src=5340960;dc_pre=CLjGvvWh_c8CFZNn…edia;cat=u6trdsnb;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;ord=1 Resource {requests: Array[3], method: "GET", type: "image", url: "https://ad.doubleclick.net/ddm/activity/src=534096…;dc_rdid=;tag_for_child_directed_treatment=;ord=1", completed: true…}
https://ad.doubleclick.net/ddm/activity/src=5272405;dc_pre=CK7IvvWh_c8CFdB1…edia;cat=qs9hyptz;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;ord=1 Resource {requests: Array[3], method: "GET", type: "image", url: "https://ad.doubleclick.net/ddm/activity/src=527240…;dc_rdid=;tag_for_child_directed_treatment=;ord=1", completed: true…}
https://ad.doubleclick.net/ddm/activity/src=5501302;dc_pre=CKbKvvWh_c8CFQZq…edia;cat=aaodffat;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;ord=1 Resource {requests: Array[3], method: "GET", type: "image", url: "https://ad.doubleclick.net/ddm/activity/src=550130…;dc_rdid=;tag_for_child_directed_treatment=;ord=1", completed: true…}
https://ad.doubleclick.net/ddm/activity/src=5942269;dc_pre=CMnOvvWh_c8CFdN9…edia;cat=grzxmvr9;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;ord=1 Resource {requests: Array[3], method: "GET", type: "image", url: "https://ad.doubleclick.net/ddm/activity/src=594226…;dc_rdid=;tag_for_child_directed_treatment=;ord=1", completed: true…}
https://ad.doubleclick.net/ddm/activity/src=5808327;dc_pre=COjMvvWh_c8CFYh3…edia;cat=olvwc4fr;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;ord=1 Resource {requests: Array[3], method: "GET", type: "image", url: "https://ad.doubleclick.net/ddm/activity/src=580832…;dc_rdid=;tag_for_child_directed_treatment=;ord=1", completed: true…}
https://ad.doubleclick.net/ddm/activity/src=5808925;dc_pre=CP_NvvWh_c8CFcdv…edia;cat=kshqsops;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;ord=1 Resource {requests: Array[3], method: "GET", type: "image", url: "https://ad.doubleclick.net/ddm/activity/src=580892…;dc_rdid=;tag_for_child_directed_treatment=;ord=1", completed: true…}
https://ad.doubleclick.net/ddm/activity/src=6038323;dc_pre=COvSvvWh_c8CFVV7…edia;cat=f4pmawar;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;ord=1 Resource {requests: Array[3], method: "GET", type: "image", url: "https://ad.doubleclick.net/ddm/activity/src=603832…;dc_rdid=;tag_for_child_directed_treatment=;ord=1", completed: true…}
https://ad.doubleclick.net/ddm/activity/src=6085743;dc_pre=CM_VvvWh_c8CFQt3…edia;cat=ffsllbbo;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;ord=1 Resource {requests: Array[3], method: "GET", type: "image", url: "https://ad.doubleclick.net/ddm/activity/src=608574…;dc_rdid=;tag_for_child_directed_treatment=;ord=1", completed: true…}
https://ad.doubleclick.net/ddm/activity/src=6037718;dc_pre=CJHSvvWh_c8CFVZL…edia;cat=vofhzle1;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;ord=1 Resource {requests: Array[3], method: "GET", type: "image", url: "https://ad.doubleclick.net/ddm/activity/src=603771…;dc_rdid=;tag_for_child_directed_treatment=;ord=1", completed: true…}
http://cm.g.doubleclick.net/pixel?google_nid=turn1&google_cm&google_sc&google_hm=ODA2Mjk2NzMwNjc1NTIyMDQ0OQ== Resource {requests: Array[3], method: "GET", type: "image", url: "http://cm.g.doubleclick.net/pixel?google_nid=turn1…&google_sc&google_hm=ODA2Mjk2NzMwNjc1NTIyMDQ0OQ==", completed: true…}
http://ads.yahoo.com/pixel?id=2155814&t=2&piggyback=http%3A%2F%2Fads.yahoo.…1%3Fesig%3D1~862d802dd86fb59368388ad078a7f298ddbbd0b7%26nwid%3D10000424978Resourceigv%3D1
http://pixel.rubiconproject.com/tap.php?v=4212&nid=1185&put=8062967306755220449&expires=60 Resource {requests: Array[3], method: "GET", type: "image", url: "http://pixel.rubiconproject.com/tap.php?v=4212&nid=1185&put=8062967306755220449&expires=60", completed: true…}
http://bis2.cliipa.com/aggregate?_=1477649653949 Resource {requests: Array[3], method: "POST", type: "xhr", url: "http://bis2.cliipa.com/aggregate?_=1477649653949", completed: true…}completed: truegetHeaders: ObjectAccept: "*/*"get Accept: ()set Accept: (value)Accept-Encoding: "gzip, deflate"get Accept-Encoding: ()set Accept-Encoding: (value)Accept-Language: "en-US"get Accept-Language: ()set Accept-Language: (value)Content-Type: "application/x-www-form-urlencoded"get Content-Type: ()set Content-Type: (value)Origin: "http://www.tmz.com"get Origin: ()set Origin: (value)Referer: "http://www.tmz.com/"get Referer: ()set Referer: (value)User-Agent: "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.113 Electron/1.4.4 Safari/537.36"get User-Agent: ()set User-Agent: (value)X-DevTools-Emulate-Network-Conditions-Client-Id: (...)get X-DevTools-Emulate-Network-Conditions-Client-Id: ()set X-DevTools-Emulate-Network-Conditions-Client-Id: (value)__proto__: Objectmethod: "POST"rdata: nullrequests: Array[3]type: "xhr"url: "http://bis2.cliipa.com/aggregate?_=1477649653949"__proto__: Object
http://bis2.cliipa.com/aggregate?_=1477649653966 Resource {requests: Array[3], method: "POST", type: "xhr", url: "http://bis2.cliipa.com/aggregate?_=1477649653966", completed: true…}
http://bis2.cliipa.com/aggregate?_=1477649653968 Resource {requests: Array[3], method: "POST", type: "xhr", url: "http://bis2.cliipa.com/aggregate?_=1477649653968", completed: true…}
https://s0.2mdn.net/5412605/Pergo_Brand2016-Quality-GreatIndoors_300x250.jpg Resource {requests: Array[3], method: "GET", type: "image", url: "https://s0.2mdn.net/5412605/Pergo_Brand2016-Quality-GreatIndoors_300x250.jpg", completed: true…}
http://bis2.cliipa.com/aggregate?_=1477649654009 Resource {requests: Array[3], method: "POST", type: "xhr", url: "http://bis2.cliipa.com/aggregate?_=1477649654009", completed: true…}
http://us-u.openx.net/w/1.0/pd?plm=6&ph=ae4d7e39186b2c60549a38dee59c19f17efcd706 Resource {requests: Array[15], method: "GET", type: "subFrame", url: "http://us-u.openx.net/w/1.0/pd?plm=6&ph=ae4d7e39186b2c60549a38dee59c19f17efcd706", completed: true…}
http://us-u.openx.net/w/1.0/sd?id=537073061&val=8062967306755220449 Resource {requests: Array[3], method: "GET", type: "image", url: "http://us-u.openx.net/w/1.0/sd?id=537073061&val=8062967306755220449", completed: true…}
http://ce.lijit.com/merge?pid=1&3pid=8062967306755220449 Resource {requests: Array[3], method: "GET", type: "image", url: "http://ce.lijit.com/merge?pid=1&3pid=8062967306755220449", completed: false…}
https://ad.360yield.com/ul_cb/match?publisher_dsp_id=55&dsp_callback=1&external_user_id=CAESEPiDWXLR5Q-QgXdtVO4nUuQ&google_cver=1 Resource {requests: Array[3], method: "GET", type: "image", url: "https://ad.360yield.com/ul_cb/match?publisher_dsp_…user_id=CAESEPiDWXLR5Q-QgXdtVO4nUuQ&google_cver=1", completed: true…}
http://sync.search.spotxchange.com/partner?adv_id=6481&img=1&uid=8062967306755220449 Resource {requests: Array[3], method: "GET", type: "image", url: "http://sync.search.spotxchange.com/partner?adv_id=6481&img=1&uid=8062967306755220449", completed: false…}
http://sync.adap.tv/sync?type=gif&key=turn&uid=8062967306755220449 Resource {requests: Array[3], method: "GET", type: "image", url: "http://sync.adap.tv/sync?type=gif&key=turn&uid=8062967306755220449", completed: false…}
http://image4.pubmatic.com/AdServer/SPug?partnerID=22 Resource {requests: Array[3], method: "GET", type: "image", url: "http://image4.pubmatic.com/AdServer/SPug?partnerID=22", completed: true…}
http://dsum.casalemedia.com/rum?cm_dsp_id=4&external_user_id=8062967306755220449 Resource {requests: Array[3], method: "GET", type: "image", url: "http://dsum.casalemedia.com/rum?cm_dsp_id=4&external_user_id=8062967306755220449", completed: true…}
http://rtb-csync.smartadserver.com/redir/?partnerid=32&partneruserid=8062967306755220449 Resource {requests: Array[3], method: "GET", type: "image", url: "http://rtb-csync.smartadserver.com/redir/?partnerid=32&partneruserid=8062967306755220449", completed: true…}
http://ads.stickyadstv.com/user-registering?dataProviderId=147&userId=8062967306755220449 Resource {requests: Array[3], method: "GET", type: "image", url: "http://ads.stickyadstv.com/user-registering?dataProviderId=147&userId=8062967306755220449", completed: true…}
http://ib.adnxs.com/bounce?%2Fgetuid%3Fhttp%3A%2F%2Fr.turn.com%2Fr%2Fbd%3Fddc%3D1%26pid%3D54ver%3D1%26uid%3D%24UID
http://www.facebook.com/fr/u.php?p=328546547221502&m=8062967306755220449&t=2592000 Resource {requests: Array[1], method: "GET", type: "image", url: "http://www.facebook.com/fr/u.php?p=328546547221502&m=8062967306755220449&t=2592000", completed: false…}
https://www.facebook.com/fr/u.php?p=328546547221502&m=8062967306755220449&t=2592000 Resource {requests: Array[3], method: "GET", type: "image", url: "https://www.facebook.com/fr/u.php?p=328546547221502&m=8062967306755220449&t=2592000", completed: true…}
http://ums.adtechus.com/mapuser?providerid=1006;userid=8062967306755220449 Resource {requests: Array[3], method: "GET", type: "image", url: "http://ums.adtechus.com/mapuser?providerid=1006;userid=8062967306755220449", completed: true…}
https://fonts.googleapis.com/css?family=Roboto:400,700 Resource {requests: Array[3], method: "GET", type: "stylesheet", url: "https://fonts.googleapis.com/css?family=Roboto:400,700", completed: true…}
https://fonts.googleapis.com/css?family=Roboto+Condensed:400,700 Resource {requests: Array[3], method: "GET", type: "stylesheet", url: "https://fonts.googleapis.com/css?family=Roboto+Condensed:400,700", completed: true…}
https://fonts.googleapis.com/css?family=Nunito:400,700 Resource {requests: Array[3], method: "GET", type: "stylesheet", url: "https://fonts.googleapis.com/css?family=Nunito:400,700", completed: true…}
https://fonts.googleapis.com/css?family=Domine:400,700 Resource {requests: Array[3], method: "GET", type: "stylesheet", url: "https://fonts.googleapis.com/css?family=Domine:400,700", completed: true…}
https://cdnjs.cloudflare.com/ajax/libs/gsap/1.17.0/plugins/CSSPlugin.min.js Resource {requests: Array[3], method: "GET", type: "script", url: "https://cdnjs.cloudflare.com/ajax/libs/gsap/1.17.0/plugins/CSSPlugin.min.js", completed: true…}
https://cdnjs.cloudflare.com/ajax/libs/gsap/1.17.0/easing/EasePack.min.js Resource {requests: Array[3], method: "GET", type: "script", url: "https://cdnjs.cloudflare.com/ajax/libs/gsap/1.17.0/easing/EasePack.min.js", completed: true…}
https://cdnjs.cloudflare.com/ajax/libs/gsap/1.17.0/TweenLite.min.js Resource {requests: Array[3], method: "GET", type: "script", url: "https://cdnjs.cloudflare.com/ajax/libs/gsap/1.17.0/TweenLite.min.js", completed: true…}
http://cdn.spotxcdn.com/media/thumbs/pixel/pixel.gif Resource {requests: Array[3], method: "GET", type: "image", url: "http://cdn.spotxcdn.com/media/thumbs/pixel/pixel.gif", completed: true…}
http://sync.adaptv.advertising.com/sync?type=gif&key=turn&uid=8062967306755220449 Resource {requests: Array[3], method: "GET", type: "image", url: "http://sync.adaptv.advertising.com/sync?type=gif&key=turn&uid=8062967306755220449", completed: true…}
http://ce.lijit.com/merge?pid=1&3pid=8062967306755220449&dnr=1 Resource {requests: Array[3], method: "GET", type: "image", url: "http://ce.lijit.com/merge?pid=1&3pid=8062967306755220449&dnr=1", completed: true…}
http://geo-um.btrll.com/v1/map_pixel/partner/40.png Resource {requests: Array[3], method: "GET", type: "image", url: "http://geo-um.btrll.com/v1/map_pixel/partner/40.png", completed: false…}
http://e.nexac.com/e/turn_sync.xgi?na_exid=8062967306755220449 Resource {requests: Array[3], method: "GET", type: "image", url: "http://e.nexac.com/e/turn_sync.xgi?na_exid=8062967306755220449", completed: false…}
http://sync.adap.tv/turn_user_sync Resource {requests: Array[3], method: "GET", type: "image", url: "http://sync.adap.tv/turn_user_sync", completed: false…}
http://sync.teads.tv/um?eid=11&uid=8062967306755220449 Resource {requests: Array[3], method: "GET", type: "image", url: "http://sync.teads.tv/um?eid=11&uid=8062967306755220449", completed: true…}
http://r.turn.com/r/bd?ddc=1&pid=54&cver=1&uid=2620786460815324038 Resource {requests: Array[3], method: "GET", type: "image", url: "http://r.turn.com/r/bd?ddc=1&pid=54&cver=1&uid=2620786460815324038", completed: true…}
http://t4.liverail.com/?metric=csync&p=3034&s=8062967306755220449 Resource {requests: Array[3], method: "GET", type: "image", url: "http://t4.liverail.com/?metric=csync&p=3034&s=8062967306755220449", completed: false…}
http://dt.scanscout.com/ssframework/cookieSync.htm?UITM=8062967306755220449 Resource {requests: Array[3], method: "GET", type: "image", url: "http://dt.scanscout.com/ssframework/cookieSync.htm?UITM=8062967306755220449", completed: true…}
https://cdn.doubleverify.com/dvtp_src.js?ctx=1590491&cmp=10442827&sid=13850…v=doubleclick&crt=75092592&crtname=&chnl=&unit=&pid=&uid=&dvtagver=6.1.src Resource {requests: Array[3], method: "GET", type: "script", url: "https://cdn.doubleverify.com/dvtp_src.js?ctx=15904…2&crtname=&chnl=&unit=&pid=&uid=&dvtagver=6.1.src", completed: true…}
https://googleads4.g.doubleclick.net/pcs/view?xai=AKAOjstvc3HgTiZDipcca6HDe…u9LBjFNpZy5BxZNDK7SZA3rYAKA_Pw&sig=Cg0ArKJSzPlchGkNQD8UEAE&urlfix=1&adurl= Resource {requests: Array[3], method: "GET", type: "image", url: "https://googleads4.g.doubleclick.net/pcs/view?xai=…KA_Pw&sig=Cg0ArKJSzPlchGkNQD8UEAE&urlfix=1&adurl=", completed: true…}
https://fonts.gstatic.com/s/nunito/v7/cSNs3NwpEgPVRQzvkh3NeQ.woff2 Resource {requests: Array[3], method: "GET", type: "other", url: "https://fonts.gstatic.com/s/nunito/v7/cSNs3NwpEgPVRQzvkh3NeQ.woff2", completed: true…}
https://googleads4.g.doubleclick.net/pcs/view?xai=AKAOjss8YXIB-t1OOA0AFrXgj…Tyk5mYCwypm3irjvHcitFQ1K0Xbg0L&sig=Cg0ArKJSzKgZzx9h2eSZEAE&urlfix=1&adurl= Resource {requests: Array[3], method: "GET", type: "image", url: "https://googleads4.g.doubleclick.net/pcs/view?xai=…Xbg0L&sig=Cg0ArKJSzKgZzx9h2eSZEAE&urlfix=1&adurl=", completed: true…}
http://e.nexac.com/e/xrefid.xgi?na_exid=8062967306755220449&na_pid=1966&ru= Resource {requests: Array[3], method: "GET", type: "image", url: "http://e.nexac.com/e/xrefid.xgi?na_exid=8062967306755220449&na_pid=1966&ru=", completed: true…}
http://sync.adaptv.advertising.com/turn_user_sync? Resource {requests: Array[3], method: "GET", type: "image", url: "http://sync.adaptv.advertising.com/turn_user_sync?", completed: false…}
http://l.betrad.com/ct/0_0_0_4311/us/0/1/0/0/0/0/300/250/242/322/0/pixel.gif?v=d803588_1&ttid=2&d=www.tmz.com&r=0.2523580266808769 Resource {requests: Array[3], method: "GET", type: "image", url: "http://l.betrad.com/ct/0_0_0_4311/us/0/1/0/0/0/0/3…03588_1&ttid=2&d=www.tmz.com&r=0.2523580266808769", completed: true…}
http://l.betrad.com/ct/0_0_0_4311/us/0/1/0/0/0/0/300/250/242/322/0/pixel.gif?v=d803588_1&ttid=2&d=www.tmz.com&r=0.6914724004072492 Resource {requests: Array[3], method: "GET", type: "image", url: "http://l.betrad.com/ct/0_0_0_4311/us/0/1/0/0/0/0/3…03588_1&ttid=2&d=www.tmz.com&r=0.6914724004072492", completed: true…}
http://geo-um.btrll.com/v1/map_pixel/partner/40.png?set_aps=1&BR_APS=3WBMk93jKNAQBDonolA& Resource {requests: Array[3], method: "GET", type: "image", url: "http://geo-um.btrll.com/v1/map_pixel/partner/40.png?set_aps=1&BR_APS=3WBMk93jKNAQBDonolA&", completed: false…}
http://l.betrad.com/ct/0_0_0_4311/us/0/1/0/0/0/0/300/250/242/322/0/pixel.gif?v=d803588_1&ttid=2&d=www.tmz.com&r=0.9502898394499941 Resource {requests: Array[3], method: "GET", type: "image", url: "http://l.betrad.com/ct/0_0_0_4311/us/0/1/0/0/0/0/3…03588_1&ttid=2&d=www.tmz.com&r=0.9502898394499941", completed: true…}
http://scontent.lrcdn.net/outbound-cdn-static/lr.gif Resource {requests: Array[3], method: "GET", type: "image", url: "http://scontent.lrcdn.net/outbound-cdn-static/lr.gif", completed: true…}
http://l.betrad.com/ct/0_0_0_4311/us/0/1/0/0/0/0/300/250/242/322/0/pixel.gif?v=d803588_1&ttid=2&d=www.tmz.com&r=0.45223104534106295 Resource {requests: Array[3], method: "GET", type: "image", url: "http://l.betrad.com/ct/0_0_0_4311/us/0/1/0/0/0/0/3…3588_1&ttid=2&d=www.tmz.com&r=0.45223104534106295", completed: true…}
http://cmap.ox.ace.advertising.com/cfcm.ashx?providerId=1009 Resource {requests: Array[3], method: "GET", type: "image", url: "http://cmap.ox.ace.advertising.com/cfcm.ashx?providerId=1009", completed: true…}
http://r.turn.com/r/du/id/L21rdC8xL21jaHBpZC8x Resource {requests: Array[3], method: "GET", type: "image", url: "http://r.turn.com/r/du/id/L21rdC8xL21jaHBpZC8x", completed: true…}
http://r.turn.com/r/bd?ddc=1&pid=63&uid=3WBMk93jKNAQBDonolA&n=1477649655& Resource {requests: Array[3], method: "GET", type: "image", url: "http://r.turn.com/r/bd?ddc=1&pid=63&uid=3WBMk93jKNAQBDonolA&n=1477649655&", completed: true…}
http://d.turn.com/r/du/id/L2NzaWQvMS9tcGlkLzMzOTA0ODEz/mpuid/NAX8865547819000817129 Resource {requests: Array[3], method: "GET", type: "image", url: "http://d.turn.com/r/du/id/L2NzaWQvMS9tcGlkLzMzOTA0ODEz/mpuid/NAX8865547819000817129", completed: true…}
http://sync.mathtag.com/sync/img?mt_exid=5&redir=http%3A%2F%2Fus-u.openx.net%2Fw%2F1.0%2Fsd%3Fid%3D536872786%26val%3D%5BMM_UUID%5D Resource {requests: Array[3], method: "GET", type: "image", url: "http://sync.mathtag.com/sync/img?mt_exid=5&redir=h…2F1.0%2Fsd%3Fid%3D536872786%26val%3D%5BMM_UUID%5D", completed: false…}
http://ib.adnxs.com/getuid?http://us-u.openx.net/w/1.0/sd?id=537072399&val=$UID Resource {requests: Array[3], method: "GET", type: "image", url: "http://ib.adnxs.com/getuid?http://us-u.openx.net/w/1.0/sd?id=537072399&val=$UID", completed: false…}
http://match.adsrvr.org/track/cmf/openx?oxid=bf754269-a2cb-72d3-1061-ca1ddd0af411 Resource {requests: Array[3], method: "GET", type: "image", url: "http://match.adsrvr.org/track/cmf/openx?oxid=bf754269-a2cb-72d3-1061-ca1ddd0af411", completed: false…}
http://cm.g.doubleclick.net/pixel?google_nid=openx&google_cm&google_sc Resource {requests: Array[3], method: "GET", type: "image", url: "http://cm.g.doubleclick.net/pixel?google_nid=openx&google_cm&google_sc", completed: false…}
http://pagead2.googlesyndication.com/pagead/gen_204?id=sodar&v=5&t=2&bgai=B…Z-yoX3zZOnhG8_73EpcrMPKpbqlCdcV5r_QYZth5rhagaow5ESHZ_gLwWslH39BergZstbLTpM Resource {requests: Array[3], method: "GET", type: "image", url: "http://pagead2.googlesyndication.com/pagead/gen_20…qlCdcV5r_QYZth5rhagaow5ESHZ_gLwWslH39BergZstbLTpM", completed: true…}
http://pagead2.googlesyndication.com/pagead/gen_204?id=sodar&v=5&t=2&bgai=B…y1zKM70TNAcwGR5wR_p0WekFqAULydIFtEMQjqcScqaKNMmLBqS2WsClIJ61s5svRMuinnlFoU Resource {requests: Array[3], method: "GET", type: "image", url: "http://pagead2.googlesyndication.com/pagead/gen_20…AULydIFtEMQjqcScqaKNMmLBqS2WsClIJ61s5svRMuinnlFoU", completed: true…}
http://tags.mathtag.com/ck-confirm?bid_id=8740333270469044720&node_id=997&mathid_data=%7BNaNv1%22%3A%22TW96aWxsYS81LjAgKFgxMTsgTGludXggeDg2XzY0KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvNTMuMC4yNzg1LjExMyBFbGVjdHJvbi8xLjQuNCBTYWZhcmkvNTM3LjM2%22%2C%dv2%22%3A%22MTBjYTQ3ODQyZDVjNGYyODU2OTJiNGE5NzgyMTUxYjY%3D%22%2C%dv3%22%3A%22%22%2C%dv4%22%3A%22MTkyMHwxMDgwfDE5MjB8MTA1NnwyNHx8%22%2C%dv5%22%3A%22QW1lcmljYS9OZXdfWW9yaw%3D%3D%22%2C%dv6%22%3A%22%22%2C%dv7%22%3A%22MA%3D%3D%22%2C%dv8%22%3A%dHJ1ZXx0cnVlfHRydWU%3D%22%2C%dv9%22%3A%fGVuLVVTfA%3D%3D%22%2C%dv10%22%3A%22TW96aWxsYXxOZXRzY2FwZXxMaW51eCB4ODZfNjR8%22%7D
http://x.bidswitch.net/sync?ssp=openx Resource {requests: Array[3], method: "GET", type: "image", url: "http://x.bidswitch.net/sync?ssp=openx", completed: false…}
http://pixel-a.sitescout.com/dmp/pixelSync?nid=4 Resource {requests: Array[3], method: "GET", type: "image", url: "http://pixel-a.sitescout.com/dmp/pixelSync?nid=4", completed: false…}
https://pagead2.googlesyndication.com/pagead/js/lidar.js Resource {requests: Array[3], method: "GET", type: "script", url: "https://pagead2.googlesyndication.com/pagead/js/lidar.js", completed: true…}
https://s0.2mdn.net/ads/richmedia/resources/arrow_left.png Resource {requests: Array[3], method: "GET", type: "image", url: "https://s0.2mdn.net/ads/richmedia/resources/arrow_left.png", completed: true…}
https://s0.2mdn.net/ads/richmedia/resources/arrow_right.png Resource {requests: Array[3], method: "GET", type: "image", url: "https://s0.2mdn.net/ads/richmedia/resources/arrow_right.png", completed: true…}
http://us-u.openx.net/w/1.0/sd?id=537072399&val=2620786460815324038 Resource {requests: Array[3], method: "GET", type: "image", url: "http://us-u.openx.net/w/1.0/sd?id=537072399&val=2620786460815324038", completed: true…}
http://pr-bh.ybp.yahoo.com/sync/openx/2bb2242d-3267-e09a-21b6-dce8225d3958 Resource {requests: Array[3], method: "GET", type: "image", url: "http://pr-bh.ybp.yahoo.com/sync/openx/2bb2242d-3267-e09a-21b6-dce8225d3958", completed: true…}
https://rtb.openx.net/sync/dds Resource {requests: Array[3], method: "GET", type: "image", url: "https://rtb.openx.net/sync/dds", completed: false…}
http://us-u.openx.net/w/1.0/sd?id=537072991&val=CAESEOkq2Dlc8Fq6OwPzAvThUtE&google_cver=1 Resource {requests: Array[3], method: "GET", type: "image", url: "http://us-u.openx.net/w/1.0/sd?id=537072991&val=CAESEOkq2Dlc8Fq6OwPzAvThUtE&google_cver=1", completed: true…}
http://rtb.openx.net/sync/yahoo Resource {requests: Array[3], method: "GET", type: "image", url: "http://rtb.openx.net/sync/yahoo", completed: false…}
http://sync.mathtag.com/sync/img?mt_exid=5&redir=http%3A%2F%2Fus-u.openx.net%2Fw%2F1.0%2Fsd%3Fid%3D536872786%26val%3D%5BMM_UUID%5D&mm_bnc&mm_bct Resource {requests: Array[3], method: "GET", type: "image", url: "http://sync.mathtag.com/sync/img?mt_exid=5&redir=h…d%3D536872786%26val%3D%5BMM_UUID%5D&mm_bnc&mm_bct", completed: false…}
http://p.rfihub.com/cm?in=1&pub=25 Resource {requests: Array[3], method: "GET", type: "image", url: "http://p.rfihub.com/cm?in=1&pub=25", completed: false…}
https://cdn.doubleverify.com/dvtp_src_internal48.js Resource {requests: Array[3], method: "GET", type: "script", url: "https://cdn.doubleverify.com/dvtp_src_internal48.js", completed: true…}
http://x.bidswitch.net/ul_cb/sync?ssp=openx Resource {requests: Array[3], method: "GET", type: "image", url: "http://x.bidswitch.net/ul_cb/sync?ssp=openx", completed: false…}
http://us-u.openx.net/w/1.0/sd?id=536872786&val=500f5813-24f7-4100-ab73-8d606e6535b5 Resource {requests: Array[3], method: "GET", type: "image", url: "http://us-u.openx.net/w/1.0/sd?id=536872786&val=500f5813-24f7-4100-ab73-8d606e6535b5", completed: true…}
http://rp.gwallet.com/r1/cm/p25 Resource {requests: Array[3], method: "GET", type: "image", url: "http://rp.gwallet.com/r1/cm/p25", completed: false…}
http://bcp.crwdcntrl.net/map/c=1389/tp=STSC/tpid=ede3189b-7166-484f-a09e-85…2Fsd%253Fid%253D537072977%2526val%253Dede3189b-7166-484f-a09e-8591f8e95f4a Resource {requests: Array[3], method: "GET", type: "image", url: "http://bcp.crwdcntrl.net/map/c=1389/tp=STSC/tpid=e…%2526val%253Dede3189b-7166-484f-a09e-8591f8e95f4a", completed: false…}
https://ads.yahoo.com/cms/v1?nwid=10001117459&eid=cd89ebf3-674f-4ae4-54d3-2b9f089b88f3&sigv=1&esig=1~2712e2a8516ff2c9b770069b6db2d5e1d16b0426 Resource {requests: Array[3], method: "GET", type: "image", url: "https://ads.yahoo.com/cms/v1?nwid=10001117459&eid=…1&esig=1~2712e2a8516ff2c9b770069b6db2d5e1d16b0426", completed: false…}
http://i.w55c.net/ping_match.gif?ei=OPENX&rurl=http%3A%2F%2Fus-u.openx.net%2Fw%2F1.0%2Fsd%3Fid%3D537072979%26val%3D_wfivefivec_ Resource {requests: Array[3], method: "GET", type: "image", url: "http://i.w55c.net/ping_match.gif?ei=OPENX&rurl=htt…%2F1.0%2Fsd%3Fid%3D537072979%26val%3D_wfivefivec_", completed: false…}
https://cdn3.doubleverify.com/t2tv7.html Resource {requests: Array[3], method: "GET", type: "subFrame", url: "https://cdn3.doubleverify.com/t2tv7.html", completed: true…}
http://tps30.doubleverify.com/visit.js?ctx=1590491&cmp=10442827&ipos=&sid=1…3Dl&brid=6&brver=&bridua=3&tstype=2&jsCallback=dvCallback_1477649655595347 Resource {requests: Array[3], method: "GET", type: "script", url: "http://tps30.doubleverify.com/visit.js?ctx=1590491…3&tstype=2&jsCallback=dvCallback_1477649655595347", completed: true…}
http://pixel.quantserve.com/pixel/p-25CIknq_eSg16.gif?idmatch=0 Resource {requests: Array[3], method: "GET", type: "image", url: "http://pixel.quantserve.com/pixel/p-25CIknq_eSg16.gif?idmatch=0", completed: false…}
http://p.adsymptotic.com/d/px?_pid=10886&_psign=dfaecdab3231066ee5916cf9368…%2F%2Fus-u.openx.net%2Fw%2F1.0%2Fsd%3Fid%3D537073031%26val%3D%24%7BUUID%7D Resource {requests: Array[3], method: "GET", type: "image", url: "http://p.adsymptotic.com/d/px?_pid=10886&_psign=df…2F1.0%2Fsd%3Fid%3D537073031%26val%3D%24%7BUUID%7D", completed: false…}
http://us-u.openx.net/w/1.0/sd?id=537073062&val=776659838172836845 Resource {requests: Array[3], method: "GET", type: "image", url: "http://us-u.openx.net/w/1.0/sd?id=537073062&val=776659838172836845", completed: true…}
http://match.adsrvr.org/track/cmb/openx?oxid=bf754269-a2cb-72d3-1061-ca1ddd0af411 Resource {requests: Array[3], method: "GET", type: "image", url: "http://match.adsrvr.org/track/cmb/openx?oxid=bf754269-a2cb-72d3-1061-ca1ddd0af411", completed: false…}
http://dt.videohub.tv/ssframework/uid?url=http%3A%2F%2Fx.bidswitch.net%2Fsync%3Fdsp_id%3D122%26user_id%3D%5BUSER_ID%5D%26expires%3D30Resourcesp%3Dopenx
https://cm.g.doubleclick.net/pixel?google_nid=open&google_hm=YCPIVQtNy_32FYaqDhPOqw==&ox_sc=1&ox_init=1 Resource {requests: Array[3], method: "GET", type: "image", url: "https://cm.g.doubleclick.net/pixel?google_nid=open…gle_hm=YCPIVQtNy_32FYaqDhPOqw==&ox_sc=1&ox_init=1", completed: false…}
http://bcp.crwdcntrl.net/map/ct=y/c=1389/tp=STSC/tpid=ede3189b-7166-484f-a0…2Fsd%253Fid%253D537072977%2526val%253Dede3189b-7166-484f-a09e-8591f8e95f4a Resource {requests: Array[3], method: "GET", type: "image", url: "http://bcp.crwdcntrl.net/map/ct=y/c=1389/tp=STSC/t…%2526val%253Dede3189b-7166-484f-a09e-8591f8e95f4a", completed: false…}
http://us-u.openx.net/w/1.0/sd?id=537072979&val=zVYPxuoM1C04aX5 Resource {requests: Array[3], method: "GET", type: "image", url: "http://us-u.openx.net/w/1.0/sd?id=537072979&val=zVYPxuoM1C04aX5", completed: true…}
http://oxp.mxptint.net/OpenX.ashx Resource {requests: Array[3], method: "GET", type: "image", url: "http://oxp.mxptint.net/OpenX.ashx", completed: false…}
http://us-u.openx.net/w/1.0/sd?id=537072956&val=hHDW_4N8gq6cK9P81CnKrtd5hq6ceN78gSkTngEB Resource {requests: Array[3], method: "GET", type: "image", url: "http://us-u.openx.net/w/1.0/sd?id=537072956&val=hHDW_4N8gq6cK9P81CnKrtd5hq6ceN78gSkTngEB", completed: true…}
http://sync.1rx.io/usersync2/openx Resource {requests: Array[3], method: "GET", type: "image", url: "http://sync.1rx.io/usersync2/openx", completed: false…}
http://su.addthis.com/red/usync?pid=11185&puid=ede3189b-7166-484f-a09e-8591…w%2F1.0%2Fsd%3Fid%3D537072977%26val%3Dede3189b-7166-484f-a09e-8591f8e95f4a Resource {requests: Array[3], method: "GET", type: "image", url: "http://su.addthis.com/red/usync?pid=11185&puid=ede…2977%26val%3Dede3189b-7166-484f-a09e-8591f8e95f4a", completed: false…}
https://rtb.openx.net/sync/dds?ox_sc=1&ox_init=1 Resource {requests: Array[3], method: "GET", type: "image", url: "https://rtb.openx.net/sync/dds?ox_sc=1&ox_init=1", completed: true…}
http://p.adsymptotic.com/d/px?_pid=10886&_psign=dfaecdab3231066ee5916cf9368…31%26val%3D%24%7BUUID%7D&_expected_cookie=51c39d4f5653fd65550e70f079e9c2d0 Resource {requests: Array[3], method: "GET", type: "image", url: "http://p.adsymptotic.com/d/px?_pid=10886&_psign=df…_expected_cookie=51c39d4f5653fd65550e70f079e9c2d0", completed: false…}
http://us-u.openx.net/w/1.0/sd?id=537072971&val=d57349b6-98c5-4574-b797-a86898045853 Resource {requests: Array[3], method: "GET", type: "image", url: "http://us-u.openx.net/w/1.0/sd?id=537072971&val=d57349b6-98c5-4574-b797-a86898045853", completed: true…}
https://cookiex.ngd.yahoo.com/ack?eid=cd89ebf3-674f-4ae4-54d3-2b9f089b88f3&xid=i52ojRyA_orFwL6Qrgsbqs5A Resource {requests: Array[3], method: "GET", type: "image", url: "https://cookiex.ngd.yahoo.com/ack?eid=cd89ebf3-674…e4-54d3-2b9f089b88f3&xid=i52ojRyA_orFwL6Qrgsbqs5A", completed: true…}
http://cdn.doubleverify.com/avs628.js Resource {requests: Array[3], method: "GET", type: "script", url: "http://cdn.doubleverify.com/avs628.js", completed: true…}
http://rp.gwallet.com/r1/cm/p25?check_uid_cookie Resource {requests: Array[3], method: "GET", type: "image", url: "http://rp.gwallet.com/r1/cm/p25?check_uid_cookie", completed: false…}
http://x.bidswitch.net/sync?dsp_id=122&user_id=69a4523774ba38f7bb1790c43e8899fc&expires=30&ssp=openx Resource {requests: Array[3], method: "GET", type: "image", url: "http://x.bidswitch.net/sync?dsp_id=122&user_id=69a4523774ba38f7bb1790c43e8899fc&expires=30&ssp=openx", completed: false…}
http://us-u.openx.net/w/1.0/sd?id=537073031&val=51c39d4f5653fd65550e70f079e9c2d0 Resource {requests: Array[3], method: "GET", type: "image", url: "http://us-u.openx.net/w/1.0/sd?id=537073031&val=51c39d4f5653fd65550e70f079e9c2d0", completed: true…}
http://us-u.openx.net/w/1.0/sd?id=537072977&val=ede3189b-7166-484f-a09e-8591f8e95f4a Resource {requests: Array[3], method: "GET", type: "image", url: "http://us-u.openx.net/w/1.0/sd?id=537072977&val=ede3189b-7166-484f-a09e-8591f8e95f4a", completed: true…}
http://us-u.openx.net/w/1.0/sd?id=537116306&val=R9_879FB705_1524276B Resource {requests: Array[3], method: "GET", type: "image", url: "http://us-u.openx.net/w/1.0/sd?id=537116306&val=R9_879FB705_1524276B", completed: true…}
http://us-u.openx.net/w/1.0/sd?id=537072968&val=7495f79d-310b-4732-8ee3-aeae3b53ddf2 Resource {requests: Array[3], method: "GET", type: "image", url: "http://us-u.openx.net/w/1.0/sd?id=537072968&val=7495f79d-310b-4732-8ee3-aeae3b53ddf2", completed: true…}
http://match.adsrvr.org/track/cmf/generic?ttd_pid=adconductor&ttd_tpi=1 Resource {requests: Array[3], method: "GET", type: "image", url: "http://match.adsrvr.org/track/cmf/generic?ttd_pid=adconductor&ttd_tpi=1", completed: false…}
http://us-u.openx.net/w/1.0/sd?id=537072983&val=9RHRAvtRc_21WXt0RCuJFKpy4qM Resource {requests: Array[3], method: "GET", type: "image", url: "http://us-u.openx.net/w/1.0/sd?id=537072983&val=9RHRAvtRc_21WXt0RCuJFKpy4qM", completed: true…}
http://bis2.cliipa.com/aggregate?_=1477649655909 Resource {requests: Array[3], method: "POST", type: "xhr", url: "http://bis2.cliipa.com/aggregate?_=1477649655909", completed: true…}
http://tps10210.doubleverify.com/event.jpg?ctx=1590491&cmp=10442827&ipos=&s…r=&isbmms=253&isgmmims=253&ismms=253&isumms=253&evid=1&ctime=1477649656025 Resource {requests: Array[3], method: "POST", type: "other", url: "http://tps10210.doubleverify.com/event.jpg?ctx=159…3&ismms=253&isumms=253&evid=1&ctime=1477649656025", completed: true…}
http://bis2.cliipa.com/aggregate?_=1477649656050 Resource {requests: Array[3], method: "POST", type: "xhr", url: "http://bis2.cliipa.com/aggregate?_=1477649656050", completed: true…}
http://bis2.cliipa.com/aggregate?_=1477649656053 Resource {requests: Array[3], method: "POST", type: "xhr", url: "http://bis2.cliipa.com/aggregate?_=1477649656053", completed: true…}
http://sync.1rx.io/usersync/tradedesk/d57349b6-98c5-4574-b797-a86898045853 Resource {requests: Array[3], method: "GET", type: "image", url: "http://sync.1rx.io/usersync/tradedesk/d57349b6-98c5-4574-b797-a86898045853", completed: false…}
http://us-u.openx.net/w/1.0/sd?id=537113070&val=RX-e5b38f69-e598-41c4-aed7-010e82fc00f4 Resource {requests: Array[3], method: "GET", type: "image", url: "http://us-u.openx.net/w/1.0/sd?id=537113070&val=RX-e5b38f69-e598-41c4-aed7-010e82fc00f4", completed: true…}
http://choices.truste.com/ca?aid=turn01&pid=turn01&cid=1519369354&w=300&h=2…js=pmw1&base=te-clr1-47e910e2-2387-4ee1-9d9d-cfcf8fddc055&admarker=dynamic Resource {requests: Array[2], method: "GET", type: "script", url: "http://choices.truste.com/ca?aid=turn01&pid=turn01…10e2-2387-4ee1-9d9d-cfcf8fddc055&admarker=dynamic", completed: false…}
http://choices.truste.com/ca?aid=turn01&pid=turn01&cid=1519369354&w=300&h=250&c=7558564148489724897&js=pmw2 Resource {requests: Array[2], method: "GET", type: "script", url: "http://choices.truste.com/ca?aid=turn01&pid=turn01…9369354&w=300&h=250&c=7558564148489724897&js=pmw2", completed: false…}
http://choices-or.truste.com/cap?aid=turn01&pid=turn01&cid=1519369354&w=300&h=250&c=ca68 Resource {requests: Array[2], method: "GET", type: "image", url: "http://choices-or.truste.com/cap?aid=turn01&pid=turn01&cid=1519369354&w=300&h=250&c=ca68", completed: false…}
http://static.chartbeat.com/js/chartbeat.js Resource {requests: Array[1], method: "GET", type: "script", url: "http://static.chartbeat.com/js/chartbeat.js", completed: false…}
http://l.sharethis.com/onload?event=onload&version=buttons.js&lang=en&fpc=7…ainment%20News%20%7C%20Celebrity%20News%20%7C%20TMZ.com&ts1477649656650.0= Resource {requests: Array[1], method: "GET", type: "image", url: "http://l.sharethis.com/onload?event=onload&version…lebrity%20News%20%7C%20TMZ.com&ts1477649656650.0=", completed: false…}
This file has been truncated, but you can view the full file.
WARC/1.0
WARC-Type: warcinfo
Content-Type: application/warc-fields
WARC-Date: 2016-10-28T08:48:01Z
WARC-Record-ID: <urn:uuid:e839ab48-87d0-48ac-9c68-84a5b3a63aee>
WARC-Filename: mkelly.warc.gz
WARC-Block-Digest: sha1:DBHK4TBLI4754YGVVIQ36DTPUTAQMWUZ
Content-Length: 452
software: Wget/1.17.1 (linux-gnu)
format: WARC File Format 1.0
conformsTo: http://bibnum.bnf.fr/WARC/WARC_ISO_28500_version1_latestdraft.pdf
robots: off
wget-arguments: "-p" "-k" "-H" "-Dcs.odu.edu" "-erobots=off" "--warc-file=mkelly" "-A" ".gif,.swf,.css,.html,.htm,.jpg,.jpeg,.png,.js" "--mirror" "--recursive" "-l1" "--no-check-certificate" "--page-requisites" "--html-extension" "--convert-links" "--no-parent" "http://cs.odu.edu/~mkelly/"
WARC/1.0
WARC-Type: request
WARC-Target-URI: http://cs.odu.edu/~mkelly/
Content-Type: application/http;msgtype=request
WARC-Date: 2016-10-28T08:48:01Z
WARC-Record-ID: <urn:uuid:a0af43c8-4620-4381-9cc8-d17cc5d2c051>
WARC-IP-Address: 128.82.4.3
WARC-Warcinfo-ID: <urn:uuid:e839ab48-87d0-48ac-9c68-84a5b3a63aee>
WARC-Block-Digest: sha1:DD2IDGPULIV65TVCZYVNKPMF6ATDB3UB
Content-Length: 145
GET /~mkelly/ HTTP/1.1
User-Agent: Wget/1.17.1 (linux-gnu)
Accept: */*
Accept-Encoding: identity
Host: cs.odu.edu
Connection: Keep-Alive
WARC/1.0
WARC-Type: response
WARC-Record-ID: <urn:uuid:f53c9b6e-9c4a-4575-8dbd-ec2aa57e5dee>
WARC-Warcinfo-ID: <urn:uuid:e839ab48-87d0-48ac-9c68-84a5b3a63aee>
WARC-Concurrent-To: <urn:uuid:a0af43c8-4620-4381-9cc8-d17cc5d2c051>
WARC-Target-URI: http://cs.odu.edu/~mkelly/
WARC-Date: 2016-10-28T08:48:01Z
WARC-IP-Address: 128.82.4.3
WARC-Block-Digest: sha1:U2RUILKLTKADIHNDAJXBAJWVY2Q3VTGO
WARC-Payload-Digest: sha1:BF64MF2JVSJS3MYOIWU2D6DHH4UJBGO4
Content-Type: application/http;msgtype=response
Content-Length: 233
HTTP/1.1 302 Found
Date: Fri, 28 Oct 2016 08:48:01 GMT
Location: http://www.cs.odu.edu/~mkelly/
Transfer-Encoding: chunked
Content-Type: text/html; charset=utf-8
35
<a href="http://www.cs.odu.edu/~mkelly/">Found</a>.
0
WARC/1.0
WARC-Type: request
WARC-Target-URI: http://www.cs.odu.edu/~mkelly/
Content-Type: application/http;msgtype=request
WARC-Date: 2016-10-28T08:48:01Z
WARC-Record-ID: <urn:uuid:f4e4ca48-849b-4803-9cbf-b55acdb3ba49>
WARC-IP-Address: 128.82.4.2
WARC-Warcinfo-ID: <urn:uuid:e839ab48-87d0-48ac-9c68-84a5b3a63aee>
WARC-Block-Digest: sha1:TCOS6FYTPRD3QSZELJUK3OFV3XEUZYB4
Content-Length: 149
GET /~mkelly/ HTTP/1.1
User-Agent: Wget/1.17.1 (linux-gnu)
Accept: */*
Accept-Encoding: identity
Host: www.cs.odu.edu
Connection: Keep-Alive
WARC/1.0
WARC-Type: response
WARC-Record-ID: <urn:uuid:61d6fe3c-46a4-464f-ac0f-ef0015e192e7>
WARC-Warcinfo-ID: <urn:uuid:e839ab48-87d0-48ac-9c68-84a5b3a63aee>
WARC-Concurrent-To: <urn:uuid:f4e4ca48-849b-4803-9cbf-b55acdb3ba49>
WARC-Target-URI: http://www.cs.odu.edu/~mkelly/
WARC-Date: 2016-10-28T08:48:01Z
WARC-IP-Address: 128.82.4.2
WARC-Block-Digest: sha1:SAQNGNHGY2WJVBWCVDMZLSM65U7V463O
WARC-Payload-Digest: sha1:USL3TWWXE7KQOQ4RIWNZNAILNKUMBOUY
Content-Type: application/http;msgtype=response
Content-Length: 40600
HTTP/1.1 200 OK
Server: nginx
Date: Fri, 28 Oct 2016 08:48:01 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding
1efe
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="description" content="Academic Homepage of Mat Kelly, Doctoral Degree student at Old Dominion University in Norfolk, Virginia." />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="theme-color" content="#031fc9" />
<!--[if lt IE 9]>
<script src="_js/html5shiv.js"></script>
<![endif]-->
<title>Mat Kelly, PhD Student of Computer Science, Old Dominion University in Norfolk, Virginia</title>
<link rel="stylesheet" href="style.css" media="all" />
<link rel="author" href="https://plus.google.com/u/0/103717513886594190386" />
<script src="_js/html2canvas.js"></script>
<script src="index.js"></script>
<style type="text/css">
/*#screenshot {position: absolute; right: 300px; top: 10px; width: 500px; -webkit-transition: all ease 1s;}*/
#screenshot {width: 200px;}
#screenshot:hover {
}
#thumbnailFrame {height: 100px; overflow: hidden;}
</style>
</head>
<body>
<header itemscope itemtype="http://data-vocabulary.org/Person">
<img src="mofro.png" alt="mug shot" id="mugShot" itemprop="photo" />
<h1 itemprop="name">Mat Kelly</h1>
<h2 itemprop="title">PhD Student, Computer Science</h2>
<h3 itemprop="affiliation">Web Science &amp; Digital Libraries Research Group</h3>
<h3 itemprop="affiliation">Old Dominion University</h3>
<!--<a href="http://www.cs.odu.edu/~mkelly" onclick="screenshotTest();return false;">
<img src="amish.jpg" alt="mug shot" id="openMenu" itemprop="photo" />
</a>//future work -->
</header>
<nav>
<ul id="sections">
<li><a href="#currentProjects">Upcoming/Current Projects</a></li>
<li><a href="#papersPostersAndPresentations">Papers, Posters &amp; Presentations</a></li>
<li><a href="#recognitionAndParticipation">Recognition &amp; Participation</a></li>
<li><a href="#teaching">Teaching</a></li>
<li><a href="#courseworkHistory">Coursework History</a></li>
<li><a href="#projects">Recent Software Projects</a></li>
<li><a href="#contact">Contact</a></li>
<li id="cv"><a target="_blank" href="http://matkelly.com/cv">C.V.</a></li>
</ul>
</nav>
<section id="currentProjects">
<h2>Current/Upcoming Projects</h2>
<ul>
<li>Research and paper development on various aspects of personal web archiving.</li>
<li>Continued development of <a href="http://warcreate.com">WARCreate</a>, <a href="http://matkelly.com/wail">Web Archiving Integration Layer (WAIL)</a>, and <a href="https://github.com/machawk1/mink">Mink</a> for <a href="http://www.neh.gov/divisions/odh/grant-news/announcing-seven-digital-humanities-implementation-grants-july-2014">NEH Digital Humanities Implementation Grant</a>.</li>
<li>Continued development of <a href="http://github.com/oduwsdl/ipwb">InterPlanetary Wayback (ipwb)</a>.</li>
</ul>
</section>
<section id="papersPostersAndPresentations">
<h2 id="ppp_heading">Papers, Posters &amp; Presentations</h2>
<ul id="ppp_filter">
<li class="ppp_active"><a id="ppp_all">All</a></li>
<li><a id="ppp_pr">Only Peer-Reviewed</a></li>
<li><a id="ppp_p">Only Papers</a></li>
<li><a id="ppp_j">Only Journals</a></li>
</ul>
<ul id="ppp">
<li class="paper shortPaper peerReviewed"><em class="me">Mat Kelly</em>, Sawood Alam, Michael L. Nelson, and Michele C. Weigle. "InterPlanetary Wayback: Peer-To-Peer Permanence of Web Archives," In <em>Proceedings of the International Conference on Theory and Practice of Digital Libraries</em> (TPDL). Hannover, Germany, September 2016, pp. 411-416. (<a href="http://www.cs.odu.edu/~mkelly/papers/2016_tpdl_ipwb.pdf">PDF</a>, <a href="publications/kelly-tpdl2016.bib">BibTeX</a>)</li>
<li class="poster workshop"><em class="me">Mat Kelly</em>, Sawood Alam, Michael L. Nelson, and Michele C. Weigle, "InterPlanetary Wayback: The Permanent Web Archive," At the <em>Web Archiving and Digital Libraries Workshop (WADL 2016)</em>. Newark, NJ, June 2016.</li>
<li class="poster peerReviewed">Sawood Alam, <em class="me">Mat Kelly</em>, and Michael L. Nelson, "InterPlanetary Wayback: The Permanent Web Archive," In <em>Proceedings of the IEEE/ACM Joint Conference on Digital Libraries (JCDL)</em>. Newark, NJ, June 2016, pp. 273-274. (<a href="http://www.cs.odu.edu/~mkelly/papers/2016_jcdl_ipwb.pdf">PDF</a>, <a href="publications/alam-jcdl2016.bib">BibTeX</a>)</li>
<li class="presentation"><em class="me">Mat Kelly</em>, "Exploring Aggregation of Personal, Private, and Institutional Web Archives," Presented At <em>Archives Unleashed 2.0: Web Archive Datathon</em>, 2016 June 15. (<a href="http://www.cs.odu.edu/~mkelly/presentations/2016_archivesUnleashed_aggregation.pptx">PPTX</a>)</li>
<li class="online"><em class="me">Mat Kelly</em>, "A Framework for Aggregating Private and Public Web Archives," <em>Bulletin of IEEE Technical Committee on Digital Libraries (IEEE-TCDL)</em>, Vol. 11, No. 3, December 2015. (<a href="http://www.ieee-tcdl.org/Bulletin/v11n3/papers/149-Kelly.pdf">PDF</a>, <a href="publications/kelly-tcdl2015.bib">BibTeX</a>)</li>
<li class="presentation"><em class="me">Mat Kelly</em>, "A Framework for Aggregating Private and Public Web Archives," at the <em>ACM/IEEE Joint Conference on Digital Libraries (JCDL)</em>. Doctoral Consortium. Knoxville, TN, June 2015. (<a href="papers/2015_jcdl_aframework.pdf">PDF</a>, <a href="publications/kelly-jcdl2015.bib">BibTeX</a>)</li>
<li class="poster peerReviewed">Wesley Jordan, <em class="me">Mat Kelly</em>, Justin F. Brunelle, Laura Vobrak, Michele C. Weigle and Michael L. Nelson, "Mobile Mink: Merging Mobile and Desktop Archived Webs," In <em>Proceedings of the ACM/IEEE Joint Conference on Digital Libraries (JCDL)</em>. Knoxville, TN, June 2015, pp. 243-244, <em class="best">Best Poster Award</em>. (<a href="papers/2015_jcdl_mobileMink.pdf">PDF</a>, <a href="publications/jordan-jcdl2015.bib">BibTeX</a>)</li>
<li class="presentation"><em class="me">Mat Kelly</em>, Michael L. Nelson, and Michele C. Weigle, "Visualizing Digital Collections of Web Archives," <em>Web Archiving Collaboration: New Tools and Models</em>; 2015 June 4; New York City, NY. (<a href="presentations/2015_columbiawac_thumbnails.pptx">PPTX</a>)</li>
<li class="journal peerReviewed">Justin F. Brunelle, <em class="me">Mat Kelly</em>, Hany SalahEldeen, Michele C. Weigle and Michael L. Nelson, "Not All Mementos Are Created Equal: Measuring the Impact of Missing Resources," <em>International Journal of Digital Libraries (IJDL)</em>, 16(3), pp. 283-301. May 2015. (<a href="http://link.springer.com/article/10.1007/s00799-015-0150-6">article</a>, <a href="publications/brunelle-ijdl2015-damage.bib">BibTeX</a>)</li>
<li class="presentation"><em class="me">Mat Kelly</em>, "Facilitation of the A Posteriori Replication of Web Published Satellite Imagery", <em>Virginia Space Grant Consortium 2015 Student Research Conference</em>. 2015 April 17; Hampton, VA. (<a href="papers/2015_vsgc_imagery.pdf">PDF</a>, <a href="presentations/2015_vsgc_imagery.pptx">PPTX</a>, <a href="publications/kelly-vsgc2015.bib">BibTeX</a>)
<li class="journal peerReviewed">Justin F. Brunelle, <em class="me">Mat Kelly</em>, Michele C. Weigle and Michael L. Nelson, "The Impact of JavaScript on Archivability," <em>International Journal of Digital Libraries (IJDL)</em>, 15(1), pp. 95-117. January 2015. (<a href="http://link.springer.com/article/10.1007%2Fs00799-015-0140-8">article</a>, <a href="publications/brunelle-ijdl2015-impact.bib">BibTeX</a>)</li>
<li class="paper longPaper peerReviewed">Michael Ruffing, Yangyang H
1000
e, <em class="me">Mat Kelly</em>, Jason O. Hallstrom, Stephan Olariu, and Michele C. Weigle. "A Retasking Framework For Wireless Sensor Networks," In <em>Proceedings of the IEEE Military Communications Conference (MILCOM)</em>. Baltimore, MD, 2014 October 6-8, pp. 1066-1071 (<a href="papers/2014_milcom_retasking.pdf">PDF</a>, <a href="publications/ruffing-milcom2014.bib">BibTeX</a>)</li>
<li class="paper longPaper peerReviewed">Justin F. Brunelle, <em class="me">Mat Kelly</em>, Hany SalahEldeen, Michele C. Weigle, and Michael L. Nelson, "Not All Mementos Are Created Equal: Measuring The Impact Of Missing Resources," In <em>Proceedings of the IEEE/ACM Joint Conference on Digital Libraries (JCDL)</em>. London, England, September 2014, pp. 321-330, <em class="best">Best Student Paper Award</em>. (<a href="http://www.cs.odu.edu/~mkelly/papers/2014_dl_damage.pdf">PDF</a>, <a href="publications/brunelle-dl2014.bib">BibTeX</a>)</li>
<li class="paper shortPaper peerReviewed"><em class="me">Mat Kelly</em>, Michael L. Nelson, and Michele C. Weigle, "The Archival Acid Test: Evaluating Archive Performance on Advanced HTML and JavaScript," In <em>Proceedings of the IEEE/ACM Joint Conference on Digital Libraries (JCDL)</em>. London, England, September 2014, pp. 25-28. (<a href="http://www.cs.odu.edu/~mkelly/papers/2014_dl_acid.pdf">PDF</a>, <a href="publications/kelly-dl2014-acid.bib">BibTeX</a>)</li>
<li class="poster peerReviewed"><em class="me">Mat Kelly</em>, Michael L. Nelson, and Michele C. Weigle, "Mink: Integrating the Live and Archived Web Viewing Experience Using Web Browsers and Memento," In <em>Proceedings of the IEEE/ACM Joint Conference on Digital Libraries (JCDL)</em>. London, England, September 2014, pp. 469-470. (<a href="http://www.cs.odu.edu/~mkelly/papers/2014_dl_mink.pdf">PDF</a>, <a href="publications/kelly-dl2014-mink.bib">BibTeX</a>)</li>
<li class="presentation">Michael L. Nelson, Scott G. Ainsworth, Justin F. Brunelle, <em class="me">Mat Kelly</em>, Hany SalahEldeen, Michele C. Weigle. "Assessing the Quality of Web Archives," <em>Digital Preservation 2014</em>, Future of Web Archiving Panel; 2014 July 23; Washington, DC. (<a href="http://www.cs.odu.edu/~mkelly/presentations/2014_digitalPreservation.ppt">PPT</a>)</li>
<li class="poster"><em class="me">Mat Kelly</em>, Michael L. Nelson, and Michele C. Weigle. "Efficient Thumbnail Summarization for Web Archives," Digital Preservation 2014, Poster Session; 2014 July 22; Washington, DC. (<a href="http://www.cs.odu.edu/~mkelly/posters/2014_digpres_thumbnails.pdf">PDF</a>)</li>
<li class="online peerReviewed"><em class="me">Mat Kelly</em>, Justin F. Brunelle, Michele C. Weigle and Michael L. Nelson. "A Method for Identifying Personalized Representations in the Archives," <em>D-Lib Magazine</em>, 19(11/12), 2013. (<a href="http://www.dlib.org/dlib/november13/kelly/11kelly.html">article</a>, <a href="publications/kelly-dlib2013.bib">BibTeX</a>)</li>
<li class="presentation"><em class="me">Mat Kelly</em>. "Archive What I See Now," <em>Archive-It Partner Meeting</em>. Salt Lake City, UT, 2013 November 12. (<a href="presentations/2013_archiveItPartnerMeeting_archiveWhatISeeNow.pptx">PPTX</a>)</li>
<li class="poster peerReviewed"><em class="me">Mat Kelly</em>, Michael L. Nelson and Michele C. Weigle. "Graph-Based Navigation of a Box Office Prediction System," In <em>Proceedings of the IEEE VIS 2013</em>. Atlanta, GA, 2013 October 13-18. (<a href="papers/2013_ieeevis_boxofficeprediction.pdf">PDF</a>, <a href="posters/2013_vis_boxoffice.pdf">Poster</a>, <a href="publications/kelly-vis2013.bib">BibTeX</a>)</li>
<li class="presentation">Michael L. Nelson, Scott G. Ainsworth, Justin F. Brunelle, <em class="me">Mat Kelly</em>, Hany SalahEldeen and Michele C. Weigle. "Who Will Archive the Archives? Thoughts About the Future of Web Archiving," Wolfram Data Summit 2013. Washington, DC, 2013 September 5-6. (<a href="presentations/2013_wolframDataSumnmit_archiveTheArchives.ppt">PPT</a>)</li
6ed2
>
<li class="presentation"><em class="me">Mat Kelly</em>, Michael L. Nelson and Michele C. Weigle. "WARCreate and WAIL: WARC, Wayback and Heritrix Made Easy," <em>Digital Preservation 2013</em>, Workshops and Sessions: Web Archiving; 2013 July 24; Alexandria, VA. (<a href="http://www.cs.odu.edu/~mkelly/presentations/2013_digitalPreservation_heritrixMadeEasy.pptx">PPTX</a>)</li>
<li class="paper longPaper peerReviewed"><em class="me">Mat Kelly</em>, Justin F. Brunelle, Michele C. Weigle and Michael L. Nelson. "On the Change in Archivability of Websites Over Time," In <em>Proceedings of the International Conference on Theory and Practice of Digital Libraries</em> (TPDL). Valletta, Malta, September 2013, pp. 35-47 (<a href="papers/2013_tpdl_archivabilityOverTime_final.pdf">PDF</a>, <a href="publications/kelly-tpdl2013.bib">BibTeX</a>)</li>
<li class="poster"><em class="me">Mat Kelly</em>, Michele C. Weigle and Michael L. Nelson. "Making Enterprise-Level Archive Tools Accessible for Personal Web Archiving," <em>Personal Digital Archiving 2013</em>; 2013 February 21; College Park, MD. (<a href="posters/2013_pda_wail.pdf">PDF</a>, <a href="publications/kelly-pda2013.bib">BibTeX</a>)</li>
<li class="poster"><em class="me">Mat Kelly</em>, Michele C. Weigle and Michael L. Nelson. "WARCreate - Create Wayback-Consumable WARC Files from Any Webpage," Digital Preservation 2012, Tools Demo Session: Web Archiving; 2012 July 25; Washington, DC. (<a href="presentations/2012_digitalPreservation_warcreate.pptx">PPTX</a>, <a href="presentations/2012_digitalPreservation_warcreate.zip">PPTX w/ videos</a>)</li>
<li class="poster peerReviewed"><em class="me">Mat Kelly</em> and Michele C. Weigle, "WARCreate - Create Wayback-Consumable WARC Files from Any Webpage," In <em>Proceedings of the ACM/IEEE Joint Conference on Digital Libraries (JCDL)</em>. Washington, DC, June 2012, pp. 437-438 (<a href="papers/2012_jcdl_warcreate.pdf">PDF</a>, <a href="posters/2012_jcdl_warcreate.pdf">Poster</a>, <a href="publications/kelly-jcdl2012.bib">BibTeX</a>)</li>
<li class="poster peerReviewed">Thad Chee (Science Systems &amp; Applications, Inc., Hampton, VA), <em class="me">Matthew Kelly</em> (Science Systems &amp; Applications, Inc., Hampton, VA), Louis Nguyen (NASA-Langley Research Center, Hampton, VA), Patrick Minnis (NASA-Langley Research Center, Hampton, VA), Rabindra Palikonda, Douglas A. Spagenberg (Science Systems &amp; Applications, Inc., Hampton, VA), J. Kirk Ayers (Science Systems &amp; Applications, Inc., Hampton, VA). Access to Real-time and Historic Satellite Products from a Mobile Application. <em>American Geophysical Union Fall Meeting</em>; 2011 December 5-9; San Francisco, CA. (<a href="posters/2012_agu_cloudproducts.ppt">PPT</a>, <a href="publications/chee-agu2011.bib">BibTeX</a>)</li>
<li class="poster"><em class="me">Mat Kelly</em>, Syed R. Rizvi, Liang Chen, Chinmay Lokesh, Stephan Olariu and Michele C. Weigle. ALERT: A Next-generation Emergency Response System for First Responders using Retasking of Wireless Sensor Networks. <em>13th Annual Tidewater Student Research Poster Session</em>; 2011 November 18; Newport News, VA. (<a href="posters/2011_cnu_alert.pdf">PDF</a>)</li>
<li class="presentation"><em class="me">Mat Kelly</em>, Michele C. Weigle and Michael L. Nelson. Archiving Your Facebook Pages Using Archive Facebook. NDIIPP/NDSA Partners Meeting Special Interest Session: Web Archiving; 2011 July 20; Washington, DC. (<a href="presentations/2011_ndiipp_archivefacebook.pptx">PPTX</a>)</li>
<li class="whitePaper">David Helman (BMW Group, Greenville, SC), <em class="me">Matthew Kelly</em> (BMW Group, Greenville, SC ), Martin Guttmann (Intel Corporation, Santa Clara, CA), Bill Carter (Intel Corporation, Santa Clara, CA), Enrique Castro-Leon (Intel Corporation, Santa Clara, CA), Thomas Kellerer (Intel Corporation, Santa Clara, CA), Dror Shenkar (Intel Corporation, Santa Clara, CA). "Preserving Performance While Saving Power Using Intel Intelligent Power Node Manager and Intel Data Center Manger"; December 2009. (<a href="https://software.intel.com/sites/datacentermanager/node_manager_white_paper_bmw.pdf">article</a>, <a href="papers/2009_intel_node_manager_white_paper_bmw.pdf">PDF</a>)</li>
</ul>
</section>
<section id="recognitionAndParticipation">
<h2>Recognition &amp; Participation</h2>
<ul>
<li>Scholarship Awardee, <a href="https://www.rjionline.org/stories/graduate-students-receive-scholarships-to-attend-digital-news-preservati">Donald W. Reynolds Journalism Institute</a>, October 2016.</li>
<li>Participant, <a href="http://www.netpreserve.org/events/iipc-crawler-hackathon-london-2016">IIPC "Building Better Crawlers" Hackathon</a>, September 2016.</li>
<li>Invited Participant and Presenter, <a href="http://archivesunleashed.com">Archives Unleashed 2.0: Web Archive Datathon</a>, June 2016.</li>
<li>Invited Participant, <a href="http://archivesunleashed.ca">Archives Unleashed: Web Archive Hackathon</a>, March 2016.</li>
<li>Sole Presenter, Old Dominion University Department of Computer Science PhD Gathering, November 2015.</li>
<li>Best Poster for <a href="papers/2015_jcdl_mobileMink.pdf">"Mobile Mink: Merging Mobile and Desktop Archived Webs"</a> at the ACM/IEEE Joint Conference on Digital Libraries (JCDL), June 2015.</li>
<li>Best Student Paper for <a href="http://www.cs.odu.edu/~mkelly/papers/2014_dl_damage.pdf">"Not All Mementos Are Created Equal: Measuring The Impact Of Missing Resources"</a> at IEEE/ACM Digital Libraries 2014, September 2014.</li>
<li>NASA <a href="http://vsgc.odu.edu/sf/gradfellow/">Virginia Space Grant Consortium</a> <a href="http://vsgc.odu.edu/awardees/20142015/">Graduate Fellow</a>, August 2014.</li>
<li><a href="http://www.cs.odu.edu/~mkelly/presentations/2014_pesUniversity_browserBasedDigitalPreservation.pptx">Doctoral Student Presenter</a>, "Browser-Based Digital Preservation" for Visiting <a href="http://pes.edu/">PES University</a> Students, Old Dominion University, July 2014.</li>
<li>Acknowledged Contributor, <a href="https://tools.ietf.org/html/rfc7089">RFC7089: HTTP Framework for Time-Based Access to Resource States -- Memento</a>, December 2013.</li>
<li><a href="http://www.cs.odu.edu/~mkelly/presentations/2013_cs595_movieExplorer.pptx">Guest Presenter</a>, CS595 - Intro to Web Science, Old Dominion University, October 2013.</li>
<li><a href="http://blogs.loc.gov/digitalpreservation/2012/08/warcreate-and-future-stewardship-an-interview-with-mat-kelly/">Featured Interviewee</a>, The Signal Digital Preservation Blog, August 2012.</li>
<li><a href="http://cs.harding.edu/wac-workshop2012/participants.html">Participant</a>, Web Archiving Cooperative (WAC) Summer Workshop, June 2012.</li>
<li><a href="http://blogs.loc.gov/digitalpreservation/2012/06/announcing-five-ndsa-innovation-award-winners/">Future Steward Innovation Award Recipient</a>, National Digital Stewardship Alliance (NDSA) / Library of Congress, July 2012.</li>
<li><a href="http://www.cs.odu.edu/show_features.shtml?64">Featured Grad Student</a>, Old Dominion University Computer Science Department, June 2012.</li>
<li>Reviewer, Joint Conference on Digital Libraries (JCDL) 2012, March 2012.</li>
</ul>
</section>
<section id="teaching">
<h2>Teaching</h2>
<ul>
<li class="oduphd">Spring 2015: <a href="http://www.cs.odu.edu/~mkelly/semester/2015_spring/cs418/">CS418 - Web Programming</a></li>
</ul>
</section>
<section id="courseworkHistory">
<h2>Coursework History</h2>
<ul>
<li class="oduphd">Fall 2016
<ul>
<li>CS899 - Doctoral Dissertation (<a href="http://www.cs.odu.edu/~mweigle/">Dr. Michele C. Weigle</a>)</li>
</ul>
</li>
<li class="oduphd">Summer 2016
<ul>
<li>CS899 - Doctoral Dissertation (<a href="http://www.cs.odu.edu/~mweigle/">Dr. Michele C. Weigle</a>)</li>
</ul>
</li>
<li class="oduphd">Spring 2016
<ul>
<li>CS899 - Doctoral Dissertation (<a href="http://www.cs.odu.edu/~mweigle/">Dr. Michele C. Weigle</a>)</li>
</ul>
</li>
<li class="oduphd">Fall 2015
<ul>
<li>CS899 - Doctoral Dissertation (<a href="http://www.cs.odu.edu/~mweigle/">Dr. Michele C. Weigle</a>)</li>
</ul>
</li>
<li class="oduphd">Summer 2015
<ul>
<li>CS899 - Doctoral Dissertation (<a href="http://www.cs.odu.edu/~mweigle/">Dr. Michele C. Weigle</a>)</li>
</ul>
</li>
<li class="oduphd">Spring 2015
<ul>
<li>CS899 - Doctoral Dissertation (<a href="http://www.cs.odu.edu/~mweigle/">Dr. Michele C. Weigle</a>)</li>
</ul>
</li>
<li class="oduphd">Fall 2014
<ul>
<li>CS899 - Doctoral Dissertation (<a href="http://www.cs.odu.edu/~mweigle/">Dr. Michele C. Weigle</a>)</li>
</ul>
</li>
<li class="oduphd">Summer 2014
<ul>
<li>CS899 - Doctoral Dissertation (<a href="http://www.cs.odu.edu/~mweigle/">Dr. Michele C. Weigle</a>)</li>
</ul>
</li>
<li class="oduphd">Spring 2014
<ul>
<li>CS899 - Doctoral Dissertation (<a href="http://www.cs.odu.edu/~mweigle/">Dr. Michele C. Weigle</a>)</li>
</ul>
</li>
<li class="oduphd">Fall 2013
<ul>
<li>CS595 - <a href="http://www.cs.odu.edu/~mln/teaching/cs595-f13/">Introduction to Web Science</a> (<a href="http://www.cs.odu.edu/~mln/">Dr. Michael L. Nelson</a>)</li>
<li>CS899 - Doctoral Dissertation (<a href="http://www.cs.odu.edu/~mweigle/">Dr. Michele C. Weigle</a>)</li>
<li>CS690 - Colloquium</li>
</ul>
</li>
<li class="oduphd">Summer 2013
<ul>
<li>CS891 - Graduate Seminar (<a href="http://www.cs.odu.edu/~mweigle/">Dr. Michele C. Weigle</a>)</li>
<li>CS690 - Colloquium</li>
</ul>
</li>
<li class="oduphd">Spring 2013
<ul>
<li>CS895 - <a href="http://www.cs.odu.edu/~mweigle/CS795-S13/Home">Applied Visual Analytics</a> (<a href="http://www.cs.odu.edu/~mweigle/">Dr. Michele C. Weigle</a>)
<ul>
<li>Project: You're Gonna Die: Diet Edition (<a href="http://www.cs.odu.edu/~mkelly/semester/2013_spring/project1/finalReport.pdf">report</a>, <a href="http://www.cs.odu.edu/~mkelly/semester/2013_spring/project1/">visualization</a>)</li>
<li>Project: Box Office Movie Rating and Take Prediction (<a href="http://www.cs.odu.edu/~mkelly/semester/2013_spring/project2/CS895S13P2_FinalReport_Kelly.pdf">report</a>, <a href="http://www.cs.odu.edu/~mkelly/semester/2013_spring/project2/">visualization</a>)</li>
</ul>
</li>
</ul>
</li>
<li class="oduphd">Fall 2012
<ul>
<li>CS895 - <a href="http://www.cs.odu.edu/~mweigle/CS795-F12/Home">Information Visualization</a> (<a href="http://www.cs.odu.edu/~mweigle/">Dr. Michele C. Weigle</a>)
<ul>
<li>Project: <a href="http://www.cs.odu.edu/~mkelly/cs795f12/final/finalReport.pdf">BibT<sub class="texE">e</sub>X Corpus Visualizer</a></li>
</ul>
</li>
<li>CS895 - <a href="http://www.cs.odu.edu/~olariu/cs795-f-2012.html">Topics: Adventures in Sensor Networks</a> (<a href="http://www.cs.odu.edu/~olariu/">Dr. Stephan Olariu</a>)<ul>
<li><a href="http://www.cs.odu.edu/~mkelly/semester/2012_fall/cs895SensorNetworks/CS895_midTermPresentation_matKelly.pdf">Presentation</a> of <a href="http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=5585658">a recent paper on sensor networks</a></li>
<li>Project/Presentation: <a href="http://www.cs.odu.edu/~mkelly/semester/2012_fall/cs895SensorNetworks/CS895_projectPresentation_matKelly.pdf">Runtime Reprogramming on TinyOS Sans Deluge Modifications</a></li>
</ul></li>
</ul></li>
<li class="odu">Summer 2012<ul>
<li>CS891 - Graduate Seminar (<a href="http://www.cs.odu.edu/~mweigle/">Dr. Michele C. Weigle</a>)</li>
</ul>
<li class="odu">Spring 2012<ul>
<li>CS896 - Topics in Computer Science (<a href="http://www.cs.odu.edu/~mln/">Dr. Michael L. Nelson</a>)</li>
<li>CS699 - Thesis Research (<a href="http://www.cs.odu.edu/~mweigle/">Dr. Michele C. Weigle</a> &amp; <a href="http://www.cs.odu.edu/~mln/">Dr. Michael L. Nelson</a>)<ul>
<li>Defense Presentation: <a href="http://www.cs.odu.edu/~mkelly/semester/2012_summer/thesis_presentation.pptx">An Extensible Framework for Creating Personal Web Archives of Content Behind Authentication</a></li>
<li>Thesis: <a href="http://www.cs.odu.edu/~mweigle/papers/kelly-thesis-12.pdf">An Extensible Framework for Creating Personal Archives of Web Resources Requiring Authentication</a></li></ul>
</li>
</ul>
</li>
<li class="odu">Fall 2011<ul>
<li>CS895 - <a href="http://www.cs.odu.edu/~olariu/cs795-895-sm.html">Topics: Stochastic Modeling Performance Evaluation</a> (<a href="http://www.cs.odu.edu/~olariu/">Dr. Stephan Olariu</a>)<ul>
<li>Presentation: <a href="http://www.cs.odu.edu/~mkelly/semester/2011_fall/cs895_stochasticModeling_midtermPresentation.pdf">Midterm Presentation on a chosen Stochastic Modeling Problem</a></li>
<li>Presentation: <a href="http://www.cs.odu.edu/~mkelly/semester/2011_fall/cs895_stochasticModeling_finalPresentation.pdf">Stochastic Modeling Paper</a></li>
</ul></li>
<li>CS895 - <a href="http://www.cs.odu.edu/~mln/teaching/cs895-f11/">Topics: Web-based Information Retrieval</a> (<a href="http://www.cs.odu.edu/~mln/">Dr. Michael L. Nelson</a>)<ul>
<li>Presentation: <a href="http://www.cs.odu.edu/~mkelly/semester/2011_fall/cs895_informationRetrieval_presentation1.pptx">Evaluation and Relation</a> of a <a href="http://quod.lib.umich.edu/j/jep/3336451.0007.104?view=text;rgn=main" title="The Deep Web: Surfacing Hidden Value by Michael K. Bergman">Seminal Paper</a> and a <a href="http://web.eecs.umich.edu/~michjc/papers/cafarella-webscale-sigmodrecord08.pdf" title="Web-Scale Extraction of Structured Data by Michael J. Cafarella, Jayant Madhavan &amp; Alon Halevy">Followup Paper</a></li>
<li>Presentation: <a href="http://www.cs.odu.edu/~mkelly/semester/2011_fall/cs895_informationRetrieval_presentation2.pptx">Evaluation and Relation</a> of a <a href="http://www.aclweb.org/anthology/A88-1019.pdf" title="A Stochastic Parts Program and Noun Phrase Parser for Unrestricted Text by Kenneth Ward Church">Seminal Paper</a> and a <a href="http://www.aclweb.org/anthology/E93-1046" title="Ambiguity Resolution In A Reductionist Parser by Atro Voutilainen &amp; Pasi Tapanainen">Followup Paper</a></li>
<li>Presentation: <a href="http://www.cs.odu.edu/~mkelly/semester/2011_fall/cs895_informationRetrieval_presentation3.pptx">Evaluation and Relation</a> of a <a href="http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=5392672&amp;abstractAccess=no&amp;userType=inst" title="The Automatic Creation of Literature Abstracts by H. P. Luhn">Seminal Paper</a> and a <a href="http://dl.acm.org/citation.cfm?id=215333" title="A Trainable Document Summarizer by Julian Kupiec, Jan Pedersen &amp; Francine Chen">Followup Paper</a></li>
<li>Presentation: <a href="http://www.cs.odu.edu/~mkelly/semester/2011_fall/cs895_informationRetrieval_presentation4.pptx">Evaluation and Relation</a> of a <a href="http://www.aaai.org/ojs/index.php/aimagazine/article/viewArticle/1294" title="Question Answering from Frequently Asked Question Files by Robin D. Burke, Kristian J Hammond, Valdimir Kulyukin, Steven L. Lytinen, Noriko Tomurom &amp; Scott Schoenberg">Seminal Paper</a> and a <a href="http://dl.acm.org/citation.cfm?id=1099572" title="Finding Similar Questions in large Question and Answer Archives by Jiwoon Jeon, W. Bruce Croft and Joon Ho Lee">Followup Paper</a></li>
</ul></li>
<li>CS699 - Thesis Research (<a href="http://www.cs.odu.edu/~mweigle/">Dr. Michele C. Weigle</a>)</li>
<li>CS690 - Colloquium</li></ul>
</li>
<li class="odu">Summer 2011<ul>
<li>CS697 - Independent Study In CS (<a href="http://www.cs.odu.edu/~mweigle/">Dr. Michele C. Weigle</a>)<ul>
<li><a href="http://www.cs.odu.edu/~mkelly/semester/2011_summer/independent_study_report.pdf">Report on work done</a></li>
<li>Project: <a href="https://web.archive.org/web/20110831021613/http://hcil.cs.umd.edu/localphp/hcil/vast11/">IEEE VAST Challenge</a> 2011 (<a href="http://matkelly.com/projects/VAST2011/">submission</a>) (<a href="http://www.cs.odu.edu/~mkelly/semester/2011_summer/submission_review_vast.txt">results</a>)</li>
<li>Investigation of <a href="http://docs.tinyos.net/index.php/Deluge_T2">Deluge T2</a> on <a href="https://github.com/tinyos/tinyos-main">TinyOS</a>-based motes for project in Fall 2011</li>
<li>Validation of <a href="http://www.cs.odu.edu/~mweigle/papers/tmix-nsdoc.pdf">Tmix</a> for ns-2 and porting of delaybox for <a href="http://www.nsnam.org/">ns-3</a></li>
<li>Initial investigation of <a href="https://en.wikipedia.org/wiki/Universal_Software_Radio_Peripheral">USRP</a>s for <a href="http://www.cs.odu.edu/~nadeem/">Dr. Tamer Nadeem</a>. Ongoing into Fall 2011.</li>
<li>Further programming of <a href="https://github.com/machawk1/archivefacebook">Archive Facebook</a> for <a href="http://www.cs.odu.edu/~mln/">Dr. Michael L. Nelson</a>/<a href="http://ws-dl.blogspot.com">Web Science and Digital Libraries Research Group</a>.<ul>
<li>Presentation: <a href="http://www.cs.odu.edu/~mkelly/archivefb/presentation.pptx">Archive Facebook</a> at NDIIPP/NDSA Partner Meetup in Washington, DC (<a href="http://ws-dl.blogspot.com/2011/07/2011-07-25-ndsandiipp-partner-meetup.html">blog post</a>)</li></ul>
</li></ul>
</li>
</ul></li>
<li class="odu">Spring 2011<ul>
<li>CS665 - <a href="http://www.cs.odu.edu/~olariu/cs665.html">Computer Architecture</a> (<a href="http://www.cs.odu.edu/~olariu/">Dr. Stephan Olariu</a>)<ul>
<li><a href="https://github.com/machawk1/scoreboarding">Project: An illustration of Scoreboarding dynamics</a></li></ul>
</li>
<li>CS695 - <!--<a href="http://www.cs.odu.edu/~yaohang/cs695/">-->Topics: Monte Carlo Simulation<!--</a>--> (<a href="http://www.cs.odu.edu/~yaohang/">Dr. Yaohang Li</a>)<ul>
<li><a href="http://www.cs.odu.edu/~mkelly/semester/2011_spring/cs695_montecarlosimulation_20110426_paper.docx">Paper</a>/<a href="http://www.cs.odu.edu/~mkelly/semester/2011_spring/cs695_montecarlosimulation_20110412_presentation.pptx">Presentation</a>: Simulated Annealing and N Generals as applied to a Synchronized Distributed Operation</li></ul>
</li>
</ul></li>
<li class="odu">Fall 2010
<ul>
<li>CS600 - Algorithms and Data Structures (Dr. Desh Ranjan)</li>
<li>CS795 - Topics: Machine Learning (<a href="http://www.cs.odu.edu/~zeil/">Dr. Steven J. Zeil</a>)
<ul>
<li>Paper/Presentation: A Subjectivity Free Analysis and Predictive Scheme for Ranking College Football Teams Using Perceptrons</li>
</ul>
</li>
</ul>
</li>
<li class="citadel">Spring 2009
<ul>
<li>CSCI603 - Object-Oriented Design Patterns (Dr. Christopher W. Starr)
<ul>
<li>Project: Object-Oriented Design Patterns in OCaml</li>
</ul>
</li>
<li>CSCI618 - <!--<a href="http://macs.citadel.edu/rudolphg/csci618/091/index.html">-->Programming Languages<!--</a>--> (<a href="http://www.mathcs.citadel.edu/rudolphg/">Dr. George Rudolph</a>)<ul>
<li>Project: <a href="http://csci618.matkelly.com/">An Exploration of OCaml</a></li></ul>
</li>
</ul></li>
<li class="citadel">Fall 2008<ul>
<li>CSCI602 - Foundations of Software Engineering (<a href="http://www.mathcs.citadel.edu/rudolphg/">Dr. George Rudolph</a>)<ul>
<li>Projects: Extensive Documentation for the open source <a href="http://spaz.ca/cronometer/">CRON-O-Meter</a> Project</li></ul>
</li>
<li>CSCI601 - Data Modeling and Database Design (<a href="http://www.cs.cofc.edu/~bowring/">Dr. Jim Bowring</a>)</li>
</ul></li>
<li class="citadel">Spring 2008<ul>
<li>CSCI616 - Automata (<a href="http://www.cs.cofc.edu/~mccauley/">Dr. Ren&eacute;e McCauley</a>)</li>
</ul></li>
<li class="uf">Spring 2006<ul>
<li>EEL4744C - Microprocessor Applications (<a href="http://www.ece.ufl.edu/users/gugel-karl">Dr. Karl Gugel</a>)</li>
</ul></li>
<li class="uf">Fall 2005<ul>
<li>CAP4800 - Systems Simulation (<a href="http://www.cise.ufl.edu/~fishwick/">Dr. Paul Fishwick</a>)<ul>
<li>Project: Deadlocked Philosophers, a simulation illustrating the Dining Philosophers and Resource Deadlock ideas</li></ul>
</li>
<li>CIS4914 - Senior Project (<a href="http://www.cise.ufl.edu/~mssz/">Dr. Mark S. Schmalz</a>, <a href="http://www.cise.ufl.edu/~dts/">Dave Small</a>)<ul>
<li>Project: "<a href="https://sourceforge.net/projects/ufseniorproject/">Project: Bob</a>" - a team-based rapidly developed networked 3-D turn-based strategy game.</li></ul>
</li>
<li>COT4501 - Numerical Analysis - A Computational Approach (<a href="http://www.math.ufl.edu/~rs/">Dr. Rick L. Smith</a>)</li>
</ul></li>
<li class="uf">Summer 2005<ul>
<li>GEO1010 - Geography for a Changing World</li>
<li>CEN4500C - Computer Networking Fundamentals (<a href="http://www.cise.ufl.edu/~dts/">Dave Small</a>)</li>
<li>ENC1102 - Argument and Persuasion</li>
<li>STA4321 - Introduction to Probability</li>
</ul></li>
<li class="uf">Spring 2005<ul>
<li>CEN3031 - Introduction to Software Engineering (<a href="http://www.cise.ufl.edu/~tyavuz/">Dr. Tuba Yavuz</a>)</li>
<li>COP4600 - Operating Systems (Dr. Rob Cubert)</li>
<li>WIS2040 - Wildlife Issues</li>
</ul></li>
<li class="uf">Fall 2004<ul>
<li>PHY2054 - Physics 2</li>
<li>MAS3114 - Computational Linear Algebra</li>
</ul></li>
<li class="uf">Summer 2004<ul>
<li>CDA3101 - Introduction to Computer Organization</li>
<li>COP3530 - Data Structures and Algorithms (<a href="http://www.cise.ufl.edu/~sahni/">Dr. Sartaj K. Sahni</a>)</li>
</ul></li>
<li class="uf">Spring 2004<ul>
<li>EEL3701C - <a href="http://mil.ufl.edu/4744/">Digital Logic and Computer Systems</a> (<a href="http://www.mil.ufl.edu/~ems/">Dr. Eric M. Schwartz</a>)</li>
<li>PHY4320 - Philosophy of Mind (<a href="http://www.clas.ufl.edu/users/gwitmer/">Dr. D. Gene Witmer</a>)</li>
<li>SPN1131 - Beginning Spanish 2</li>
</ul></li>
<li class="uf">Fall 2003<ul>
<li>PHI3130 - Symbolic Logic (<a href="http://faculty.arts.ubc.ca/maydede/">Dr. Murat Aydede</a>)</li>
<li>SPN1130 - Beginning Spanish 1</li>
</ul></li>
<li class="uf">Summer 2003<ul>
<li>COT3100 - Applied Discrete Structures</li>
<li>PHY2049L - Physics 2 Lab</li>
</ul></li>
<li class="uf">Spring 2003<ul>
<li>ENC2210 - Technical Writing</li>
<li>PHI3500 - Metaphysics (<a href="http://www.clas.ufl.edu/users/gwitmer/">Dr. D. Gene Witmer</a>)<ul>
<li>Paper: Redefenere Universalia - a proposed solution of the identification of universals through correlating the understanding of universals with Flat Landers</li></ul>
</li>
<li>PHY2048 - Physics 1</li>
<li>POS2041 - American Federal Government</li>
</ul></li>
<li class="uf">Fall 2002<ul>
<li>BSC2008 - Biological Sciences: Evolution, Ecology and Behavior</li>
<li>MAC2312 - Calculus 2</li>
<li>PHI2630 - Contemporary Moral Issues</li>
</ul></li>
<li class="uf">Summer 2002<ul>
<li>MAC2313 - Calculus 3</li>
<li>PHY2048L - Physics 1 Lab</li>
</ul></li>
<li class="uf">Spring 2002<ul>
<li>CGS2414 - Computer Programming Using Java (<a href="http://www.cise.ufl.edu/~pjd/">Peter J. Dobbins</a>)</li>
<li>CIS3020 - Advanced Programming Fundamentals/Intro to CIS</li>
</ul></li>
<li class="uf">Fall 2001<ul>
<li>CHM2045L - Chemistry 1 Lab</li>
<li>ENC1101 - Expositional and Argumentative Writing</li>
<li>MAC2311 - Calculus 1</li>
</ul></li>
<li>Spring 2001<ul>
<li>CHM2030 - Introduction to College Chemistry 1</li>
<li>CHM2030L - Introduction to College Chemistry 1 Lab</li>
</ul></li>
</ul>
<h3>Coursework Key</h3>
<ul>
<li class="oduphd">Doctor of Philosophy, Computer Science; Old Dominion University, Norfolk, Virginia, Expected 2016</li>
<li class="odu">Master of Science, Computer Science; Old Dominion University, Norfolk, Virginia, August 2012</li>
<li class="citadel">Coursework for Master of Science, Computer Science; The Citadel, Charleston, South Carolina</li>
<li class="uf">Bachelor of Science, Computer Science; University of Florida, Gainesville, Florida, June 2006</li>
</ul>
</section>
<section id="projects">
<h2>Recent Software Projects</h2>
<ul>
<li><a href="https://github.com/oduwsdl/ipwb"><em>Interplanetary Wayback (ipwb)</em></a> - Integration of WARCs into IPFS for more redundant and persistent web archives</li>
<li><a href="https://github.com/thing342/mobilememento"><em>Mobile Mink</em></a> - Android application for aggregating and accessing mobile and desktop mementos</li>
<li><a href="https://github.com/machawk1/mink"><em>Mink</em></a> - Chrome extension to integrate the live and archived web using Memento</li>
<li><a href="https://github.com/machawk1/tachyon"><em>Tachyon</em></a> - Time travel for the web. Memento browser plugin for Google Chrome</li>
<li><a href="http://matkelly.com/wail"><em>Web Archiving Integration Layer (WAIL)</em></a> - One-Click User Instigated Preservation</li>
<li><a href="http://matkelly.com/warcreate"><em>WARCreate</em></a> - Google Chrome extension to allow a user to create a Web ARCive (WARC) file from any webpage.</li>
<li><a href="http://www.cs.odu.edu/~mkelly/reversearchiveit/reverseArchiveIt05102011.crx"><em>Reverse Archive-It</em></a> - Quick prototype to determine the collections to which a webpage has been associated by <a href="https://archive-it.org">Archive-It</a>. (<a href="http://www.cs.odu.edu/~mkelly/reversearchiveit/reverseArchiveItDemo.avi">video demo</a>)</li>
<li><a href="https://addons.mozilla.org/en-US/firefox/addon/archivefacebook/"><em>ArchiveFacebook</em></a> - Mozilla Firefox add-on to allow a user to easily download and save the contents of his/her Facebook profile.</li>
</ul>
</section>
<section id="contact">
<h2>Contact</h2>
<ul>
<li>mkelly at cs.odu.edu (E-mail)</li>
<li><a href="https://twitter.com/machawk1" rel="me">@machawk1</a> (Twitter)</li>
<li><a href="https://github.com/machawk1" rel="me">GitHub</a></li>
<li><a href="http://orcid.org/0000-0002-0236-7389">orcid:0000-0002-0236-7389</a></li>
</ul>
<!--<p>Further information including employment history can be found at <a href="http://matkelly.com" rel="me">matkelly.com</a></p>-->
</section>
</body>
</html>
0
WARC/1.0
WARC-Type: request
WARC-Target-URI: http://www.cs.odu.edu/~mkelly/style.css
Content-Type: application/http;msgtype=request
WARC-Date: 2016-10-28T08:48:01Z
WARC-Record-ID: <urn:uuid:07217554-8c23-40e2-818d-e5a16c769e06>
WARC-IP-Address: 128.82.4.2
WARC-Warcinfo-ID: <urn:uuid:e839ab48-87d0-48ac-9c68-84a5b3a63aee>
WARC-Block-Digest: sha1:OARAMBJHR4IKEMUZYAAKKEDCNLKH2NFZ
Content-Length: 199
GET /~mkelly/style.css HTTP/1.1
Referer: http://www.cs.odu.edu/~mkelly/
User-Agent: Wget/1.17.1 (linux-gnu)
Accept: */*
Accept-Encoding: identity
Host: www.cs.odu.edu
Connection: Keep-Alive
WARC/1.0
WARC-Type: response
WARC-Record-ID: <urn:uuid:683b27a5-6476-46b9-baa5-35382709016f>
WARC-Warcinfo-ID: <urn:uuid:e839ab48-87d0-48ac-9c68-84a5b3a63aee>
WARC-Concurrent-To: <urn:uuid:07217554-8c23-40e2-818d-e5a16c769e06>
WARC-Target-URI: http://www.cs.odu.edu/~mkelly/style.css
WARC-Date: 2016-10-28T08:48:01Z
WARC-IP-Address: 128.82.4.2
WARC-Block-Digest: sha1:POSBV33TRNJCOEJFOPAAAQC2W5AYXSRA
WARC-Payload-Digest: sha1:IF3WVY5X4ZJOLI2BDY7UCSFY3O47GOKB
Content-Type: application/http;msgtype=response
Content-Length: 5499
HTTP/1.1 200 OK
Server: nginx
Date: Fri, 28 Oct 2016 08:48:02 GMT
Content-Type: text/css
Content-Length: 5239
Connection: keep-alive
Last-Modified: Wed, 05 Oct 2016 17:42:20 GMT
ETag: "1477-53e21b2e8d7e9"
Accept-Ranges: bytes
Vary: Accept-Encoding
body {background-color: white; font-size: 16px;}
header{font-family: sans-serif; margin-bottom: 1.0em;}
h1 {color: #031fc9;}
h1,h2,h3 {margin: 0; padding: 0;}
section {margin-right: 210px;}
img#mugShot {width: 200px; padding: 2px; border: 1px solid #003366; position: fixed; right: 5px; top: 5px; z-index: 2;}
li.uf {list-style-image: url(bullet_uf.png);}
li.odu {list-style-image: url(bullet_odu.png);}
li.citadel {list-style-image: url(bullet_citadel.png);}
li.oduphd {list-style-image: url(bullet_oduphd.png);}
ul li ul li {list-style-image: none;} /* only show icon for semesters, not courses */
a {color: #031fc9;}
nav {position: fixed; right: 5px; top: 205px; text-align: center; z-index: 2;}
nav ul {list-style-type: none; width: 206px; }
nav ul#sections li {margin: 0; padding: 0; border-bottom: 1px dashed #003366;}
nav ul#sections li a {text-decoration: none; color: #031fc9; font-weight: bold; font-family: sans-serif; font-size: 0.8em; display: block;}
nav ul#sections li a:hover {color: white; background-color: #031fc9;}
nav ul#software {list-style-type: none; width: 70%; text-align: center; padding-left: 20px; display: block;}
nav ul#software li {float: left;}
nav ul#software li a {border: 0; display: block;}
nav ul#software li a img {width: 50px;}
nav ul li#cv {margin-top: 2.0em; font-size: 2.0em; border: 0;}
nav ul li#cv a {border: 1px solid #031fc9; border-radius: 10px; background-color: rgba(255,255,255,0.8);}
em.me {font-weight: bolder; font-style: normal;}
em.best {font-weight: bolder; color: red;}
#openMenu {display: none;}
/* Filtering of papers, posters, and presentations */
#ppp {margin: 1.0em 0 1.0em 0; clear: both;}
#ppp_heading {float: left; margin-right: 2.0em;}
#ppp_filter {list-style-type: none; vertical-align: bottom;}
#ppp_filter li {float: left; margin-right: 1.0em; padding-top: 0.75em; border-bottom: 1px dashed blue; font-size: 0.8em;}
#ppp_filter li.ppp_active {border-bottom: 2px solid blue;}
#ppp_filter a:hover {cursor:pointer;}
#ppp .hidden {display: none;}
/* Adapted from http://stackoverflow.com/questions/8160514/is-there-css-for-typesetting-the-latex-logo-in-html */
sub.texE {text-transform: uppercase; vertical-align: -0.5ex; margin-left: -0.1667em; margin-right: -0.125em; font-size: 1em; }
a.goToTop {display: none;}
@media only screen and (min-width: 100px) and (max-width: 650px) {
img#mugShot {position: relative; top: auto; right: auto; margin: 0 auto; display: block;}
header h1, header h2, header h3 {text-align: center;}
h1 {margin-top: 0.25em;}
h2 {width: 100%; white-space: nowrap; font-size: 1.25em;}
h3 {font-size: 0.8em;}
ul, li {padding-left: 0; margin-left: 0; width: 100%;}
nav {position: relative; text-align: left; top: auto; right: auto;}
nav ul#sections {margin: 1.0em 0 1.0em 0; padding: 0; width: 100%;}
nav ul#sections li {border-bottom: none; background-color: white; border-bottom: 1px solid #ddd;}
nav ul#sections:first-child {border-top: 1px solid #ddd;}
nav ul#sections li a {text-decoration: none; padding: 2px 0px;}
header {margin-bottom: 0;}
a.goToTop {display: inline; margin-left: 1.0em; font-size: 0.8em; color: white; background-color: blue; text-decoration: none; font-family: sans-serif; white-space: nowrap;}
section {width: 100%;}
section ul {list-style-type: none; margin-left: 0;}
section ul li {margin-bottom: 1.0em;}
section#courseworkHistory ul {list-style-type: disc; margin-left: 1.0em;}
section#courseworkHistory ul ul li {margin-bottom: 0;}
.pinned {background: linear-gradient(to bottom, rgba(255,255,255,1) 80%,rgba(255,255,255,0) 100%); position: fixed; z-index: 3; top: 0; width: 100%; padding-bottom: 1.5em;}
.pinned h1, .pinned h2, .pinned h3 {font-size: 1.0em; width: 100%;}
.pinned h2 {font-size: 0.8em;}
.pinned h3 {font-size: 0.6em;}
.pinned img#mugShot {position: absolute; width: 50px; height: 50px; left: 0px; top: 5px; border: 1px solid #031fc9; padding: 0;}
.pinned img#openMenu {z-index: 99;position: absolute; width: 24px; height: 24px; right: 0px; top: 5px; border: 1px solid #031fc9; padding: 0;}
nav.vertical {position: fixed; top: 10px; right: 5px; z-index: 100; }
nav.vertical ul#sections {}
nav.vertical li {transform: rotate(90deg); position: relative; clear: both; float: left; width: 115px; display: block; font-size: 1.0em; height: 115px; }
nav.vertical li a {height: 2.0em;}
nav.vertical ul#sections li {background-color: transparent; text-align: center;}
nav.vertical ul#sections:first-child {padding-left: 100px;}
section {position: relative; z-index: 2;}
nav ul li#cv {font-size: 1.0em; margin-top: 1.0em; border: 0; text-align center;}
nav ul li#cv a:before{content: '⇩ DOWNLOAD ';}
#ppp_filter {width: 100%;}
#ppp_filter li {padding: 0; margin: 0 0 0.5em 0; border: 1px solid white; width: 20%; text-align: center; height: 3.5em; display: inline-block; border-bottom: none; vertical-align: bottom;}
#ppp_filter li.ppp_active {background-color: #eee;}
#ppp_filter li a {padding: 1.0em 0 0 0; height: 100%; width: 100%; display: inline-block;}
#ppp_filter li:hover:not(.ppp_active) {border: 1px dotted blue;}
}
WARC/1.0
WARC-Type: request
WARC-Target-URI: http://www.cs.odu.edu/~mkelly/_js/html2canvas.js
Content-Type: application/http;msgtype=request
WARC-Date: 2016-10-28T08:48:02Z
WARC-Record-ID: <urn:uuid:263363c9-a5ee-4901-89dc-9e2088df8b59>
WARC-IP-Address: 128.82.4.2
WARC-Warcinfo-ID: <urn:uuid:e839ab48-87d0-48ac-9c68-84a5b3a63aee>
WARC-Block-Digest: sha1:3FJEFUF3ODWT5XGE3QCVLNPXK3HB3TLZ
Content-Length: 208
GET /~mkelly/_js/html2canvas.js HTTP/1.1
Referer: http://www.cs.odu.edu/~mkelly/
User-Agent: Wget/1.17.1 (linux-gnu)
Accept: */*
Accept-Encoding: identity
Host: www.cs.odu.edu
Connection: Keep-Alive
WARC/1.0
WARC-Type: response
WARC-Record-ID: <urn:uuid:65f9e3e9-7d8d-4d04-b99b-c9d0752e4f82>
WARC-Warcinfo-ID: <urn:uuid:e839ab48-87d0-48ac-9c68-84a5b3a63aee>
WARC-Concurrent-To: <urn:uuid:263363c9-a5ee-4901-89dc-9e2088df8b59>
WARC-Target-URI: http://www.cs.odu.edu/~mkelly/_js/html2canvas.js
WARC-Date: 2016-10-28T08:48:02Z
WARC-IP-Address: 128.82.4.2
WARC-Block-Digest: sha1:MTIJWIHMN6PGGGGNRU7VCDDRGUQMSQWG
WARC-Payload-Digest: sha1:K6X3TJQ6TVADTLVTMV2ZQGHFWNSLM46K
Content-Type: application/http;msgtype=response
Content-Length: 91763
HTTP/1.1 200 OK
Server: nginx
Date: Fri, 28 Oct 2016 08:48:02 GMT
Content-Type: application/javascript
Content-Length: 91487
Connection: keep-alive
Last-Modified: Thu, 16 Oct 2014 14:43:30 GMT
ETag: "1655f-5058b459c0891"
Accept-Ranges: bytes
Vary: Accept-Encoding
/*
html2canvas 0.4.1 <http://html2canvas.hertzen.com>
Copyright (c) 2013 Niklas von Hertzen
Released under MIT License
*/
(function(window, document, undefined){
"use strict";
var _html2canvas = {},
previousElement,
computedCSS,
html2canvas;
_html2canvas.Util = {};
_html2canvas.Util.log = function(a) {
if (_html2canvas.logging && window.console && window.console.log) {
window.console.log(a);
}
};
_html2canvas.Util.trimText = (function(isNative){
return function(input) {
return isNative ? isNative.apply(input) : ((input || '') + '').replace( /^\s+|\s+$/g , '' );
};
})(String.prototype.trim);
_html2canvas.Util.asFloat = function(v) {
return parseFloat(v);
};
(function() {
// TODO: support all possible length values
var TEXT_SHADOW_PROPERTY = /((rgba|rgb)\([^\)]+\)(\s-?\d+px){0,})/g;
var TEXT_SHADOW_VALUES = /(-?\d+px)|(#.+)|(rgb\(.+\))|(rgba\(.+\))/g;
_html2canvas.Util.parseTextShadows = function (value) {
if (!value || value === 'none') {
return [];
}
// find multiple shadow declarations
var shadows = value.match(TEXT_SHADOW_PROPERTY),
results = [];
for (var i = 0; shadows && (i < shadows.length); i++) {
var s = shadows[i].match(TEXT_SHADOW_VALUES);
results.push({
color: s[0],
offsetX: s[1] ? s[1].replace('px', '') : 0,
offsetY: s[2] ? s[2].replace('px', '') : 0,
blur: s[3] ? s[3].replace('px', '') : 0
});
}
return results;
};
})();
_html2canvas.Util.parseBackgroundImage = function (value) {
var whitespace = ' \r\n\t',
method, definition, prefix, prefix_i, block, results = [],
c, mode = 0, numParen = 0, quote, args;
var appendResult = function(){
if(method) {
if(definition.substr( 0, 1 ) === '"') {
definition = definition.substr( 1, definition.length - 2 );
}
if(definition) {
args.push(definition);
}
if(method.substr( 0, 1 ) === '-' &&
(prefix_i = method.indexOf( '-', 1 ) + 1) > 0) {
prefix = method.substr( 0, prefix_i);
method = method.substr( prefix_i );
}
results.push({
prefix: prefix,
method: method.toLowerCase(),
value: block,
args: args
});
}
args = []; //for some odd reason, setting .length = 0 didn't work in safari
method =
prefix =
definition =
block = '';
};
appendResult();
for(var i = 0, ii = value.length; i<ii; i++) {
c = value[i];
if(mode === 0 && whitespace.indexOf( c ) > -1){
continue;
}
switch(c) {
case '"':
if(!quote) {
quote = c;
}
else if(quote === c) {
quote = null;
}
break;
case '(':
if(quote) { break; }
else if(mode === 0) {
mode = 1;
block += c;
continue;
} else {
numParen++;
}
break;
case ')':
if(quote) { break; }
else if(mode === 1) {
if(numParen === 0) {
mode = 0;
block += c;
appendResult();
continue;
} else {
numParen--;
}
}
break;
case ',':
if(quote) { break; }
else if(mode === 0) {
appendResult();
continue;
}
else if (mode === 1) {
if(numParen === 0 && !method.match(/^url$/i)) {
args.push(definition);
definition = '';
block += c;
continue;
}
}
break;
}
block += c;
if(mode === 0) { method += c; }
else { definition += c; }
}
appendResult();
return results;
};
_html2canvas.Util.Bounds = function (element) {
var clientRect, bounds = {};
if (element.getBoundingClientRect){
clientRect = element.getBoundingClientRect();
// TODO add scroll position to bounds, so no scrolling of window necessary
bounds.top = clientRect.top;
bounds.bottom = clientRect.bottom || (clientRect.top + clientRect.height);
bounds.left = clientRect.left;
bounds.width = element.offsetWidth;
bounds.height = element.offsetHeight;
}
return bounds;
};
// TODO ideally, we'd want everything to go through this function instead of Util.Bounds,
// but would require further work to calculate the correct positions for elements with offsetParents
_html2canvas.Util.OffsetBounds = function (element) {
var parent = element.offsetParent ? _html2canvas.Util.OffsetBounds(element.offsetParent) : {top: 0, left: 0};
return {
top: element.offsetTop + parent.top,
bottom: element.offsetTop + element.offsetHeight + parent.top,
left: element.offsetLeft + parent.left,
width: element.offsetWidth,
height: element.offsetHeight
};
};
function toPX(element, attribute, value ) {
var rsLeft = element.runtimeStyle && element.runtimeStyle[attribute],
left,
style = element.style;
// Check if we are not dealing with pixels, (Opera has issues with this)
// Ported from jQuery css.js
// From the awesome hack by Dean Edwards
// http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291
// If we're not dealing with a regular pixel number
// but a number that has a weird ending, we need to convert it to pixels
if ( !/^-?[0-9]+\.?[0-9]*(?:px)?$/i.test( value ) && /^-?\d/.test(value) ) {
// Remember the original values
left = style.left;
// Put in the new values to get a computed value out
if (rsLeft) {
element.runtimeStyle.left = element.currentStyle.left;
}
style.left = attribute === "fontSize" ? "1em" : (value || 0);
value = style.pixelLeft + "px";
// Revert the changed values
style.left = left;
if (rsLeft) {
element.runtimeStyle.left = rsLeft;
}
}
if (!/^(thin|medium|thick)$/i.test(value)) {
return Math.round(parseFloat(value)) + "px";
}
return value;
}
function asInt(val) {
return parseInt(val, 10);
}
function parseBackgroundSizePosition(value, element, attribute, index) {
value = (value || '').split(',');
value = value[index || 0] || value[0] || 'auto';
value = _html2canvas.Util.trimText(value).split(' ');
if(attribute === 'backgroundSize' && (!value[0] || value[0].match(/cover|contain|auto/))) {
//these values will be handled in the parent function
} else {
value[0] = (value[0].indexOf( "%" ) === -1) ? toPX(element, attribute + "X", value[0]) : value[0];
if(value[1] === undefined) {
if(attribute === 'backgroundSize') {
value[1] = 'auto';
return value;
} else {
// IE 9 doesn't return double digit always
value[1] = value[0];
}
}
value[1] = (value[1].indexOf("%") === -1) ? toPX(element, attribute + "Y", value[1]) : value[1];
}
return value;
}
_html2canvas.Util.getCSS = function (element, attribute, index) {
if (previousElement !== element) {
computedCSS = document.defaultView.getComputedStyle(element, null);
}
var value = computedCSS[attribute];
if (/^background(Size|Position)$/.test(attribute)) {
return parseBackgroundSizePosition(value, element, attribute, index);
} else if (/border(Top|Bottom)(Left|Right)Radius/.test(attribute)) {
var arr = value.split(" ");
if (arr.length <= 1) {
arr[1] = arr[0];
}
return arr.map(asInt);
}
return value;
};
_html2canvas.Util.resizeBounds = function( current_width, current_height, target_width, target_height, stretch_mode ){
var target_ratio = target_width / target_height,
current_ratio = current_width / current_height,
output_width, output_height;
if(!stretch_mode || stretch_mode === 'auto') {
output_width = target_width;
output_height = target_height;
} else if(target_ratio < current_ratio ^ stretch_mode === 'contain') {
output_height = target_height;
output_width = target_height * current_ratio;
} else {
output_width = target_width;
output_height = target_width / current_ratio;
}
return {
width: output_width,
height: output_height
};
};
function backgroundBoundsFactory( prop, el, bounds, image, imageIndex, backgroundSize ) {
var bgposition = _html2canvas.Util.getCSS( el, prop, imageIndex ) ,
topPos,
left,
percentage,
val;
if (bgposition.length === 1){
val = bgposition[0];
bgposition = [];
bgposition[0] = val;
bgposition[1] = val;
}
if (bgposition[0].toString().indexOf("%") !== -1){
percentage = (parseFloat(bgposition[0])/100);
left = bounds.width * percentage;
if(prop !== 'backgroundSize') {
left -= (backgroundSize || image).width*percentage;
}
} else {
if(prop === 'backgroundSize') {
if(bgposition[0] === 'auto') {
left = image.width;
} else {
if (/contain|cover/.test(bgposition[0])) {
var resized = _html2canvas.Util.resizeBounds(image.width, image.height, bounds.width, bounds.height, bgposition[0]);
left = resized.width;
topPos = resized.height;
} else {
left = parseInt(bgposition[0], 10);
}
}
} else {
left = parseInt( bgposition[0], 10);
}
}
if(bgposition[1] === 'auto') {
topPos = left / image.width * image.height;
} else if (bgposition[1].toString().indexOf("%") !== -1){
percentage = (parseFloat(bgposition[1])/100);
topPos = bounds.height * percentage;
if(prop !== 'backgroundSize') {
topPos -= (backgroundSize || image).height * percentage;
}
} else {
topPos = parseInt(bgposition[1],10);
}
return [left, topPos];
}
_html2canvas.Util.BackgroundPosition = function( el, bounds, image, imageIndex, backgroundSize ) {
var result = backgroundBoundsFactory( 'backgroundPosition', el, bounds, image, imageIndex, backgroundSize );
return { left: result[0], top: result[1] };
};
_html2canvas.Util.BackgroundSize = function( el, bounds, image, imageIndex ) {
var result = backgroundBoundsFactory( 'backgroundSize', el, bounds, image, imageIndex );
return { width: result[0], height: result[1] };
};
_html2canvas.Util.Extend = function (options, defaults) {
for (var key in options) {
if (options.hasOwnProperty(key)) {
defaults[key] = options[key];
}
}
return defaults;
};
/*
* Derived from jQuery.contents()
* Copyright 2010, John Resig
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*/
_html2canvas.Util.Children = function( elem ) {
var children;
try {
children = (elem.nodeName && elem.nodeName.toUpperCase() === "IFRAME") ? elem.contentDocument || elem.contentWindow.document : (function(array) {
var ret = [];
if (array !== null) {
(function(first, second ) {
var i = first.length,
j = 0;
if (typeof second.length === "number") {
for (var l = second.length; j < l; j++) {
first[i++] = second[j];
}
} else {
while (second[j] !== undefined) {
first[i++] = second[j++];
}
}
first.length = i;
return first;
})(ret, array);
}
return ret;
})(elem.childNodes);
} catch (ex) {
_html2canvas.Util.log("html2canvas.Util.Children failed with exception: " + ex.message);
children = [];
}
return children;
};
_html2canvas.Util.isTransparent = function(backgroundColor) {
return (backgroundColor === "transparent" || backgroundColor === "rgba(0, 0, 0, 0)");
};
_html2canvas.Util.Font = (function () {
var fontData = {};
return function(font, fontSize, doc) {
if (fontData[font + "-" + fontSize] !== undefined) {
return fontData[font + "-" + fontSize];
}
var container = doc.createElement('div'),
img = doc.createElement('img'),
span = doc.createElement('span'),
sampleText = 'Hidden Text',
baseline,
middle,
metricsObj;
container.style.visibility = "hidden";
container.style.fontFamily = font;
container.style.fontSize = fontSize;
container.style.margin = 0;
container.style.padding = 0;
doc.body.appendChild(container);
// http://probablyprogramming.com/2009/03/15/the-tiniest-gif-ever (handtinywhite.gif)
img.src = "data:image/gif;base64,R0lGODlhAQABAIABAP///wAAACwAAAAAAQABAAACAkQBADs=";
img.width = 1;
img.height = 1;
img.style.margin = 0;
img.style.padding = 0;
img.style.verticalAlign = "baseline";
span.style.fontFamily = font;
span.style.fontSize = fontSize;
span.style.margin = 0;
span.style.padding = 0;
span.appendChild(doc.createTextNode(sampleText));
container.appendChild(span);
container.appendChild(img);
baseline = (img.offsetTop - span.offsetTop) + 1;
container.removeChild(span);
container.appendChild(doc.createTextNode(sampleText));
container.style.lineHeight = "normal";
img.style.verticalAlign = "super";
middle = (img.offsetTop-container.offsetTop) + 1;
metricsObj = {
baseline: baseline,
lineWidth: 1,
middle: middle
};
fontData[font + "-" + fontSize] = metricsObj;
doc.body.removeChild(container);
return metricsObj;
};
})();
(function(){
var Util = _html2canvas.Util,
Generate = {};
_html2canvas.Generate = Generate;
var reGradients = [
/^(-webkit-linear-gradient)\(([a-z\s]+)([\w\d\.\s,%\(\)]+)\)$/,
/^(-o-linear-gradient)\(([a-z\s]+)([\w\d\.\s,%\(\)]+)\)$/,
/^(-webkit-gradient)\((linear|radial),\s((?:\d{1,3}%?)\s(?:\d{1,3}%?),\s(?:\d{1,3}%?)\s(?:\d{1,3}%?))([\w\d\.\s,%\(\)\-]+)\)$/,
/^(-moz-linear-gradient)\(((?:\d{1,3}%?)\s(?:\d{1,3}%?))([\w\d\.\s,%\(\)]+)\)$/,
/^(-webkit-radial-gradient)\(((?:\d{1,3}%?)\s(?:\d{1,3}%?)),\s(\w+)\s([a-z\-]+)([\w\d\.\s,%\(\)]+)\)$/,
/^(-moz-radial-gradient)\(((?:\d{1,3}%?)\s(?:\d{1,3}%?)),\s(\w+)\s?([a-z\-]*)([\w\d\.\s,%\(\)]+)\)$/,
/^(-o-radial-gradient)\(((?:\d{1,3}%?)\s(?:\d{1,3}%?)),\s(\w+)\s([a-z\-]+)([\w\d\.\s,%\(\)]+)\)$/
];
/*
* TODO: Add IE10 vendor prefix (-ms) support
* TODO: Add W3C gradient (linear-gradient) support
* TODO: Add old Webkit -webkit-gradient(radial, ...) support
* TODO: Maybe some RegExp optimizations are possible ;o)
*/
Generate.parseGradient = function(css, bounds) {
var gradient, i, len = reGradients.length, m1, stop, m2, m2Len, step, m3, tl,tr,br,bl;
for(i = 0; i < len; i+=1){
m1 = css.match(reGradients[i]);
if(m1) {
break;
}
}
if(m1) {
switch(m1[1]) {
case '-webkit-linear-gradient':
case '-o-linear-gradient':
gradient = {
type: 'linear',
x0: null,
y0: null,
x1: null,
y1: null,
colorStops: []
};
// get coordinates
m2 = m1[2].match(/\w+/g);
if(m2){
m2Len = m2.length;
for(i = 0; i < m2Len; i+=1){
switch(m2[i]) {
case 'top':
gradient.y0 = 0;
gradient.y1 = bounds.height;
break;
case 'right':
gradient.x0 = bounds.width;
gradient.x1 = 0;
break;
case 'bottom':
gradient.y0 = bounds.height;
gradient.y1 = 0;
break;
case 'left':
gradient.x0 = 0;
gradient.x1 = bounds.width;
break;
}
}
}
if(gradient.x0 === null && gradient.x1 === null){ // center
gradient.x0 = gradient.x1 = bounds.width / 2;
}
if(gradient.y0 === null && gradient.y1 === null){ // center
gradient.y0 = gradient.y1 = bounds.height / 2;
}
// get colors and stops
m2 = m1[3].match(/((?:rgb|rgba)\(\d{1,3},\s\d{1,3},\s\d{1,3}(?:,\s[0-9\.]+)?\)(?:\s\d{1,3}(?:%|px))?)+/g);
if(m2){
m2Len = m2.length;
step = 1 / Math.max(m2Len - 1, 1);
for(i = 0; i < m2Len; i+=1){
m3 = m2[i].match(/((?:rgb|rgba)\(\d{1,3},\s\d{1,3},\s\d{1,3}(?:,\s[0-9\.]+)?\))\s*(\d{1,3})?(%|px)?/);
if(m3[2]){
stop = parseFloat(m3[2]);
if(m3[3] === '%'){
stop /= 100;
} else { // px - stupid opera
stop /= bounds.width;
}
} else {
stop = i * step;
}
gradient.colorStops.push({
color: m3[1],
stop: stop
});
}
}
break;
case '-webkit-gradient':
gradient = {
type: m1[2] === 'radial' ? 'circle' : m1[2], // TODO: Add radial gradient support for older mozilla definitions
x0: 0,
y0: 0,
x1: 0,
y1: 0,
colorStops: []
};
// get coordinates
m2 = m1[3].match(/(\d{1,3})%?\s(\d{1,3})%?,\s(\d{1,3})%?\s(\d{1,3})%?/);
if(m2){
gradient.x0 = (m2[1] * bounds.width) / 100;
gradient.y0 = (m2[2] * bounds.height) / 100;
gradient.x1 = (m2[3] * bounds.width) / 100;
gradient.y1 = (m2[4] * bounds.height) / 100;
}
// get colors and stops
m2 = m1[4].match(/((?:from|to|color-stop)\((?:[0-9\.]+,\s)?(?:rgb|rgba)\(\d{1,3},\s\d{1,3},\s\d{1,3}(?:,\s[0-9\.]+)?\)\))+/g);
if(m2){
m2Len = m2.length;
for(i = 0; i < m2Len; i+=1){
m3 = m2[i].match(/(from|to|color-stop)\(([0-9\.]+)?(?:,\s)?((?:rgb|rgba)\(\d{1,3},\s\d{1,3},\s\d{1,3}(?:,\s[0-9\.]+)?\))\)/);
stop = parseFloat(m3[2]);
if(m3[1] === 'from') {
stop = 0.0;
}
if(m3[1] === 'to') {
stop = 1.0;
}
gradient.colorStops.push({
color: m3[3],
stop: stop
});
}
}
break;
case '-moz-linear-gradient':
gradient = {
type: 'linear',
x0: 0,
y0: 0,
x1: 0,
y1: 0,
colorStops: []
};
// get coordinates
m2 = m1[2].match(/(\d{1,3})%?\s(\d{1,3})%?/);
// m2[1] == 0% -> left
// m2[1] == 50% -> center
// m2[1] == 100% -> right
// m2[2] == 0% -> top
// m2[2] == 50% -> center
// m2[2] == 100% -> bottom
if(m2){
gradient.x0 = (m2[1] * bounds.width) / 100;
gradient.y0 = (m2[2] * bounds.height) / 100;
gradient.x1 = bounds.width - gradient.x0;
gradient.y1 = bounds.height - gradient.y0;
}
// get colors and stops
m2 = m1[3].match(/((?:rgb|rgba)\(\d{1,3},\s\d{1,3},\s\d{1,3}(?:,\s[0-9\.]+)?\)(?:\s\d{1,3}%)?)+/g);
if(m2){
m2Len = m2.length;
step = 1 / Math.max(m2Len - 1, 1);
for(i = 0; i < m2Len; i+=1){
m3 = m2[i].match(/((?:rgb|rgba)\(\d{1,3},\s\d{1,3},\s\d{1,3}(?:,\s[0-9\.]+)?\))\s*(\d{1,3})?(%)?/);
if(m3[2]){
stop = parseFloat(m3[2]);
if(m3[3]){ // percentage
stop /= 100;
}
} else {
stop = i * step;
}
gradient.colorStops.push({
color: m3[1],
stop: stop
});
}
}
break;
case '-webkit-radial-gradient':
case '-moz-radial-gradient':
case '-o-radial-gradient':
gradient = {
type: 'circle',
x0: 0,
y0: 0,
x1: bounds.width,
y1: bounds.height,
cx: 0,
cy: 0,
rx: 0,
ry: 0,
colorStops: []
};
// center
m2 = m1[2].match(/(\d{1,3})%?\s(\d{1,3})%?/);
if(m2){
gradient.cx = (m2[1] * bounds.width) / 100;
gradient.cy = (m2[2] * bounds.height) / 100;
}
// size
m2 = m1[3].match(/\w+/);
m3 = m1[4].match(/[a-z\-]*/);
if(m2 && m3){
switch(m3[0]){
case 'farthest-corner':
case 'cover': // is equivalent to farthest-corner
case '': // mozilla removes "cover" from definition :(
tl = Math.sqrt(Math.pow(gradient.cx, 2) + Math.pow(gradient.cy, 2));
tr = Math.sqrt(Math.pow(gradient.cx, 2) + Math.pow(gradient.y1 - gradient.cy, 2));
br = Math.sqrt(Math.pow(gradient.x1 - gradient.cx, 2) + Math.pow(gradient.y1 - gradient.cy, 2));
bl = Math.sqrt(Math.pow(gradient.x1 - gradient.cx, 2) + Math.pow(gradient.cy, 2));
gradient.rx = gradient.ry = Math.max(tl, tr, br, bl);
break;
case 'closest-corner':
tl = Math.sqrt(Math.pow(gradient.cx, 2) + Math.pow(gradient.cy, 2));
tr = Math.sqrt(Math.pow(gradient.cx, 2) + Math.pow(gradient.y1 - gradient.cy, 2));
br = Math.sqrt(Math.pow(gradient.x1 - gradient.cx, 2) + Math.pow(gradient.y1 - gradient.cy, 2));
bl = Math.sqrt(Math.pow(gradient.x1 - gradient.cx, 2) + Math.pow(gradient.cy, 2));
gradient.rx = gradient.ry = Math.min(tl, tr, br, bl);
break;
case 'farthest-side':
if(m2[0] === 'circle'){
gradient.rx = gradient.ry = Math.max(
gradient.cx,
gradient.cy,
gradient.x1 - gradient.cx,
gradient.y1 - gradient.cy
);
} else { // ellipse
gradient.type = m2[0];
gradient.rx = Math.max(
gradient.cx,
gradient.x1 - gradient.cx
);
gradient.ry = Math.max(
gradient.cy,
gradient.y1 - gradient.cy
);
}
break;
case 'closest-side':
case 'contain': // is equivalent to closest-side
if(m2[0] === 'circle'){
gradient.rx = gradient.ry = Math.min(
gradient.cx,
gradient.cy,
gradient.x1 - gradient.cx,
gradient.y1 - gradient.cy
);
} else { // ellipse
gradient.type = m2[0];
gradient.rx = Math.min(
gradient.cx,
gradient.x1 - gradient.cx
);
gradient.ry = Math.min(
gradient.cy,
gradient.y1 - gradient.cy
);
}
break;
// TODO: add support for "30px 40px" sizes (webkit only)
}
}
// color stops
m2 = m1[5].match(/((?:rgb|rgba)\(\d{1,3},\s\d{1,3},\s\d{1,3}(?:,\s[0-9\.]+)?\)(?:\s\d{1,3}(?:%|px))?)+/g);
if(m2){
m2Len = m2.length;
step = 1 / Math.max(m2Len - 1, 1);
for(i = 0; i < m2Len; i+=1){
m3 = m2[i].match(/((?:rgb|rgba)\(\d{1,3},\s\d{1,3},\s\d{1,3}(?:,\s[0-9\.]+)?\))\s*(\d{1,3})?(%|px)?/);
if(m3[2]){
stop = parseFloat(m3[2]);
if(m3[3] === '%'){
stop /= 100;
} else { // px - stupid opera
stop /= bounds.width;
}
} else {
stop = i * step;
}
gradient.colorStops.push({
color: m3[1],
stop: stop
});
}
}
break;
}
}
return gradient;
};
function addScrollStops(grad) {
return function(colorStop) {
try {
grad.addColorStop(colorStop.stop, colorStop.color);
}
catch(e) {
Util.log(['failed to add color stop: ', e, '; tried to add: ', colorStop]);
}
};
}
Generate.Gradient = function(src, bounds) {
if(bounds.width === 0 || bounds.height === 0) {
return;
}
var canvas = document.createElement('canvas'),
ctx = canvas.getContext('2d'),
gradient, grad;
canvas.width = bounds.width;
canvas.height = bounds.height;
// TODO: add support for multi defined background gradients
gradient = _html2canvas.Generate.parseGradient(src, bounds);
if(gradient) {
switch(gradient.type) {
case 'linear':
grad = ctx.createLinearGradient(gradient.x0, gradient.y0, gradient.x1, gradient.y1);
gradient.colorStops.forEach(addScrollStops(grad));
ctx.fillStyle = grad;
ctx.fillRect(0, 0, bounds.width, bounds.height);
break;
case 'circle':
grad = ctx.createRadialGradient(gradient.cx, gradient.cy, 0, gradient.cx, gradient.cy, gradient.rx);
gradient.colorStops.forEach(addScrollStops(grad));
ctx.fillStyle = grad;
ctx.fillRect(0, 0, bounds.width, bounds.height);
break;
case 'ellipse':
var canvasRadial = document.createElement('canvas'),
ctxRadial = canvasRadial.getContext('2d'),
ri = Math.max(gradient.rx, gradient.ry),
di = ri * 2;
canvasRadial.width = canvasRadial.height = di;
grad = ctxRadial.createRadialGradient(gradient.rx, gradient.ry, 0, gradient.rx, gradient.ry, ri);
gradient.colorStops.forEach(addScrollStops(grad));
ctxRadial.fillStyle = grad;
ctxRadial.fillRect(0, 0, di, di);
ctx.fillStyle = gradient.colorStops[gradient.colorStops.length - 1].color;
ctx.fillRect(0, 0, canvas.width, canvas.height);
ctx.drawImage(canvasRadial, gradient.cx - gradient.rx, gradient.cy - gradient.ry, 2 * gradient.rx, 2 * gradient.ry);
break;
}
}
return canvas;
};
Generate.ListAlpha = function(number) {
var tmp = "",
modulus;
do {
modulus = number % 26;
tmp = String.fromCharCode((modulus) + 64) + tmp;
number = number / 26;
}while((number*26) > 26);
return tmp;
};
Generate.ListRoman = function(number) {
var romanArray = ["M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"],
decimal = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1],
roman = "",
v,
len = romanArray.length;
if (number <= 0 || number >= 4000) {
return number;
}
for (v=0; v < len; v+=1) {
while (number >= decimal[v]) {
number -= decimal[v];
roman += romanArray[v];
}
}
return roman;
};
})();
function h2cRenderContext(width, height) {
var storage = [];
return {
storage: storage,
width: width,
height: height,
clip: function() {
storage.push({
type: "function",
name: "clip",
'arguments': arguments
});
},
translate: function() {
storage.push({
type: "function",
name: "translate",
'arguments': arguments
});
},
fill: function() {
storage.push({
type: "function",
name: "fill",
'arguments': arguments
});
},
save: function() {
storage.push({
type: "function",
name: "save",
'arguments': arguments
});
},
restore: function() {
storage.push({
type: "function",
name: "restore",
'arguments': arguments
});
},
fillRect: function () {
storage.push({
type: "function",
name: "fillRect",
'arguments': arguments
});
},
createPattern: function() {
storage.push({
type: "function",
name: "createPattern",
'arguments': arguments
});
},
drawShape: function() {
var shape = [];
storage.push({
type: "function",
name: "drawShape",
'arguments': shape
});
return {
moveTo: function() {
shape.push({
name: "moveTo",
'arguments': arguments
});
},
lineTo: function() {
shape.push({
name: "lineTo",
'arguments': arguments
});
},
arcTo: function() {
shape.push({
name: "arcTo",
'arguments': arguments
});
},
bezierCurveTo: function() {
shape.push({
name: "bezierCurveTo",
'arguments': arguments
});
},
quadraticCurveTo: function() {
shape.push({
name: "quadraticCurveTo",
'arguments': arguments
});
}
};
},
drawImage: function () {
storage.push({
type: "function",
name: "drawImage",
'arguments': arguments
});
},
fillText: function () {
storage.push({
type: "function",
name: "fillText",
'arguments': arguments
});
},
setVariable: function (variable, value) {
storage.push({
type: "variable",
name: variable,
'arguments': value
});
return value;
}
};
}
_html2canvas.Parse = function (images, options) {
window.scroll(0,0);
var element = (( options.elements === undefined ) ? document.body : options.elements[0]), // select body by default
numDraws = 0,
doc = element.ownerDocument,
Util = _html2canvas.Util,
support = Util.Support(options, doc),
ignoreElementsRegExp = new RegExp("(" + options.ignoreElements + ")"),
body = doc.body,
getCSS = Util.getCSS,
pseudoHide = "___html2canvas___pseudoelement",
hidePseudoElements = doc.createElement('style');
hidePseudoElements.innerHTML = '.' + pseudoHide + '-before:before { content: "" !important; display: none !important; }' +
'.' + pseudoHide + '-after:after { content: "" !important; display: none !important; }';
body.appendChild(hidePseudoElements);
images = images || {};
function documentWidth () {
return Math.max(
Math.max(doc.body.scrollWidth, doc.documentElement.scrollWidth),
Math.max(doc.body.offsetWidth, doc.documentElement.offsetWidth),
Math.max(doc.body.clientWidth, doc.documentElement.clientWidth)
);
}
function documentHeight () {
return Math.max(
Math.max(doc.body.scrollHeight, doc.documentElement.scrollHeight),
Math.max(doc.body.offsetHeight, doc.documentElement.offsetHeight),
Math.max(doc.body.clientHeight, doc.documentElement.clientHeight)
);
}
function getCSSInt(element, attribute) {
var val = parseInt(getCSS(element, attribute), 10);
return (isNaN(val)) ? 0 : val; // borders in old IE are throwing 'medium' for demo.html
}
function renderRect (ctx, x, y, w, h, bgcolor) {
if (bgcolor !== "transparent"){
ctx.setVariable("fillStyle", bgcolor);
ctx.fillRect(x, y, w, h);
numDraws+=1;
}
}
function capitalize(m, p1, p2) {
if (m.length > 0) {
return p1 + p2.toUpperCase();
}
}
function textTransform (text, transform) {
switch(transform){
case "lowercase":
return text.toLowerCase();
case "capitalize":
return text.replace( /(^|\s|:|-|\(|\))([a-z])/g, capitalize);
case "uppercase":
return text.toUpperCase();
default:
return text;
}
}
function noLetterSpacing(letter_spacing) {
return (/^(normal|none|0px)$/.test(letter_spacing));
}
function drawText(currentText, x, y, ctx){
if (currentText !== null && Util.trimText(currentText).length > 0) {
ctx.fillText(currentText, x, y);
numDraws+=1;
}
}
function setTextVariables(ctx, el, text_decoration, color) {
var align = false,
bold = getCSS(el, "fontWeight"),
family = getCSS(el, "fontFamily"),
size = getCSS(el, "fontSize"),
shadows = Util.parseTextShadows(getCSS(el, "textShadow"));
switch(parseInt(bold, 10)){
case 401:
bold = "bold";
break;
case 400:
bold = "normal";
break;
}
ctx.setVariable("fillStyle", color);
ctx.setVariable("font", [getCSS(el, "fontStyle"), getCSS(el, "fontVariant"), bold, size, family].join(" "));
ctx.setVariable("textAlign", (align) ? "right" : "left");
if (shadows.length) {
// TODO: support multiple text shadows
// apply the first text shadow
ctx.setVariable("shadowColor", shadows[0].color);
ctx.setVariable("shadowOffsetX", shadows[0].offsetX);
ctx.setVariable("shadowOffsetY", shadows[0].offsetY);
ctx.setVariable("shadowBlur", shadows[0].blur);
}
if (text_decoration !== "none"){
return Util.Font(family, size, doc);
}
}
function renderTextDecoration(ctx, text_decoration, bounds, metrics, color) {
switch(text_decoration) {
case "underline":
// Draws a line at the baseline of the font
// TODO As some browsers display the line as more than 1px if the font-size is big, need to take that into account both in position and size
renderRect(ctx, bounds.left, Math.round(bounds.top + metrics.baseline + metrics.lineWidth), bounds.width, 1, color);
break;
case "overline":
renderRect(ctx, bounds.left, Math.round(bounds.top), bounds.width, 1, color);
break;
case "line-through":
// TODO try and find exact position for line-through
renderRect(ctx, bounds.left, Math.ceil(bounds.top + metrics.middle + metrics.lineWidth), bounds.width, 1, color);
break;
}
}
function getTextBounds(state, text, textDecoration, isLast, transform) {
var bounds;
if (support.rangeBounds && !transform) {
if (textDecoration !== "none" || Util.trimText(text).length !== 0) {
bounds = textRangeBounds(text, state.node, state.textOffset);
}
state.textOffset += text.length;
} else if (state.node && typeof state.node.nodeValue === "string" ){
var newTextNode = (isLast) ? state.node.splitText(text.length) : null;
bounds = textWrapperBounds(state.node, transform);
state.node = newTextNode;
}
return bounds;
}
function textRangeBounds(text, textNode, textOffset) {
var range = doc.createRange();
range.setStart(textNode, textOffset);
range.setEnd(textNode, textOffset + text.length);
return range.getBoundingClientRect();
}
function textWrapperBounds(oldTextNode, transform) {
var parent = oldTextNode.parentNode,
wrapElement = doc.createElement('wrapper'),
backupText = oldTextNode.cloneNode(true);
wrapElement.appendChild(oldTextNode.cloneNode(true));
parent.replaceChild(wrapElement, oldTextNode);
var bounds = transform ? Util.OffsetBounds(wrapElement) : Util.Bounds(wrapElement);
parent.replaceChild(backupText, wrapElement);
return bounds;
}
function renderText(el, textNode, stack) {
var ctx = stack.ctx,
color = getCSS(el, "color"),
textDecoration = getCSS(el, "textDecoration"),
textAlign = getCSS(el, "textAlign"),
metrics,
textList,
state = {
node: textNode,
textOffset: 0
};
if (Util.trimText(textNode.nodeValue).length > 0) {
textNode.nodeValue = textTransform(textNode.nodeValue, getCSS(el, "textTransform"));
textAlign = textAlign.replace(["-webkit-auto"],["auto"]);
textList = (!options.letterRendering && /^(left|right|justify|auto)$/.test(textAlign) && noLetterSpacing(getCSS(el, "letterSpacing"))) ?
textNode.nodeValue.split(/(\b| )/)
: textNode.nodeValue.split("");
metrics = setTextVariables(ctx, el, textDecoration, color);
if (options.chinese) {
textList.forEach(function(word, index) {
if (/.*[\u4E00-\u9FA5].*$/.test(word)) {
word = word.split("");
word.unshift(index, 1);
textList.splice.apply(textList, word);
}
});
}
textList.forEach(function(text, index) {
var bounds = getTextBounds(state, text, textDecoration, (index < textList.length - 1), stack.transform.matrix);
if (bounds) {
drawText(text, bounds.left, bounds.bottom, ctx);
renderTextDecoration(ctx, textDecoration, bounds, metrics, color);
}
});
}
}
function listPosition (element, val) {
var boundElement = doc.createElement( "boundelement" ),
originalType,
bounds;
boundElement.style.display = "inline";
originalType = element.style.listStyleType;
element.style.listStyleType = "none";
boundElement.appendChild(doc.createTextNode(val));
element.insertBefore(boundElement, element.firstChild);
bounds = Util.Bounds(boundElement);
element.removeChild(boundElement);
element.style.listStyleType = originalType;
return bounds;
}
function elementIndex(el) {
var i = -1,
count = 1,
childs = el.parentNode.childNodes;
if (el.parentNode) {
while(childs[++i] !== el) {
if (childs[i].nodeType === 1) {
count++;
}
}
return count;
} else {
return -1;
}
}
function listItemText(element, type) {
var currentIndex = elementIndex(element), text;
switch(type){
case "decimal":
text = currentIndex;
break;
case "decimal-leading-zero":
text = (currentIndex.toString().length === 1) ? currentIndex = "0" + currentIndex.toString() : currentIndex.toString();
break;
case "upper-roman":
text = _html2canvas.Generate.ListRoman( currentIndex );
break;
case "lower-roman":
text = _html2canvas.Generate.ListRoman( currentIndex ).toLowerCase();
break;
case "lower-alpha":
text = _html2canvas.Generate.ListAlpha( currentIndex ).toLowerCase();
break;
case "upper-alpha":
text = _html2canvas.Generate.ListAlpha( currentIndex );
break;
}
return text + ". ";
}
function renderListItem(element, stack, elBounds) {
var x,
text,
ctx = stack.ctx,
type = getCSS(element, "listStyleType"),
listBounds;
if (/^(decimal|decimal-leading-zero|upper-alpha|upper-latin|upper-roman|lower-alpha|lower-greek|lower-latin|lower-roman)$/i.test(type)) {
text = listItemText(element, type);
listBounds = listPosition(element, text);
setTextVariables(ctx, element, "none", getCSS(element, "color"));
if (getCSS(element, "listStylePosition") === "inside") {
ctx.setVariable("textAlign", "left");
x = elBounds.left;
} else {
return;
}
drawText(text, x, listBounds.bottom, ctx);
}
}
function loadImage (src){
var img = images[src];
return (img && img.succeeded === true) ? img.img : false;
}
function clipBounds(src, dst){
var x = Math.max(src.left, dst.left),
y = Math.max(src.top, dst.top),
x2 = Math.min((src.left + src.width), (dst.left + dst.width)),
y2 = Math.min((src.top + src.height), (dst.top + dst.height));
return {
left:x,
top:y,
width:x2-x,
height:y2-y
};
}
function setZ(element, stack, parentStack){
var newContext,
isPositioned = stack.cssPosition !== 'static',
zIndex = isPositioned ? getCSS(element, 'zIndex') : 'auto',
opacity = getCSS(element, 'opacity'),
isFloated = getCSS(element, 'cssFloat') !== 'none';
// https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Understanding_z_index/The_stacking_context
// When a new stacking context should be created:
// the root element (HTML),
// positioned (absolutely or relatively) with a z-index value other than "auto",
// elements with an opacity value less than 1. (See the specification for opacity),
// on mobile WebKit and Chrome 22+, position: fixed always creates a new stacking context, even when z-index is "auto" (See this post)
stack.zIndex = newContext = h2czContext(zIndex);
newContext.isPositioned = isPositioned;
newContext.isFloated = isFloated;
newContext.opacity = opacity;
newContext.ownStacking = (zIndex !== 'auto' || opacity < 1);
if (parentStack) {
parentStack.zIndex.children.push(stack);
}
}
function renderImage(ctx, element, image, bounds, borders) {
var paddingLeft = getCSSInt(element, 'paddingLeft'),
paddingTop = getCSSInt(element, 'paddingTop'),
paddingRight = getCSSInt(element, 'paddingRight'),
paddingBottom = getCSSInt(element, 'paddingBottom');
drawImage(
ctx,
image,
0, //sx
0, //sy
image.width, //sw
image.height, //sh
bounds.left + paddingLeft + borders[3].width, //dx
bounds.top + paddingTop + borders[0].width, // dy
bounds.width - (borders[1].width + borders[3].width + paddingLeft + paddingRight), //dw
bounds.height - (borders[0].width + borders[2].width + paddingTop + paddingBottom) //dh
);
}
function getBorderData(element) {
return ["Top", "Right", "Bottom", "Left"].map(function(side) {
return {
width: getCSSInt(element, 'border' + side + 'Width'),
color: getCSS(element, 'border' + side + 'Color')
};
});
}
function getBorderRadiusData(element) {
return ["TopLeft", "TopRight", "BottomRight", "BottomLeft"].map(function(side) {
return getCSS(element, 'border' + side + 'Radius');
});
}
var getCurvePoints = (function(kappa) {
return function(x, y, r1, r2) {
var ox = (r1) * kappa, // control point offset horizontal
oy = (r2) * kappa, // control point offset vertical
xm = x + r1, // x-middle
ym = y + r2; // y-middle
return {
topLeft: bezierCurve({
x:x,
y:ym
}, {
x:x,
y:ym - oy
}, {
x:xm - ox,
y:y
}, {
x:xm,
y:y
}),
topRight: bezierCurve({
x:x,
y:y
}, {
x:x + ox,
y:y
}, {
x:xm,
y:ym - oy
}, {
x:xm,
y:ym
}),
bottomRight: bezierCurve({
x:xm,
y:y
}, {
x:xm,
y:y + oy
}, {
x:x + ox,
y:ym
}, {
x:x,
y:ym
}),
bottomLeft: bezierCurve({
x:xm,
y:ym
}, {
x:xm - ox,
y:ym
}, {
x:x,
y:y + oy
}, {
x:x,
y:y
})
};
};
})(4 * ((Math.sqrt(2) - 1) / 3));
function bezierCurve(start, startControl, endControl, end) {
var lerp = function (a, b, t) {
return {
x:a.x + (b.x - a.x) * t,
y:a.y + (b.y - a.y) * t
};
};
return {
start: start,
startControl: startControl,
endControl: endControl,
end: end,
subdivide: function(t) {
var ab = lerp(start, startControl, t),
bc = lerp(startControl, endControl, t),
cd = lerp(endControl, end, t),
abbc = lerp(ab, bc, t),
bccd = lerp(bc, cd, t),
dest = lerp(abbc, bccd, t);
return [bezierCurve(start, ab, abbc, dest), bezierCurve(dest, bccd, cd, end)];
},
curveTo: function(borderArgs) {
borderArgs.push(["bezierCurve", startControl.x, startControl.y, endControl.x, endControl.y, end.x, end.y]);
},
curveToReversed: function(borderArgs) {
borderArgs.push(["bezierCurve", endControl.x, endControl.y, startControl.x, startControl.y, start.x, start.y]);
}
};
}
function parseCorner(borderArgs, radius1, radius2, corner1, corner2, x, y) {
if (radius1[0] > 0 || radius1[1] > 0) {
borderArgs.push(["line", corner1[0].start.x, corner1[0].start.y]);
corner1[0].curveTo(borderArgs);
corner1[1].curveTo(borderArgs);
} else {
borderArgs.push(["line", x, y]);
}
if (radius2[0] > 0 || radius2[1] > 0) {
borderArgs.push(["line", corner2[0].start.x, corner2[0].start.y]);
}
}
function drawSide(borderData, radius1, radius2, outer1, inner1, outer2, inner2) {
var borderArgs = [];
if (radius1[0] > 0 || radius1[1] > 0) {
borderArgs.push(["line", outer1[1].start.x, outer1[1].start.y]);
outer1[1].curveTo(borderArgs);
} else {
borderArgs.push([ "line", borderData.c1[0], borderData.c1[1]]);
}
if (radius2[0] > 0 || radius2[1] > 0) {
borderArgs.push(["line", outer2[0].start.x, outer2[0].start.y]);
outer2[0].curveTo(borderArgs);
borderArgs.push(["line", inner2[0].end.x, inner2[0].end.y]);
inner2[0].curveToReversed(borderArgs);
} else {
borderArgs.push([ "line", borderData.c2[0], borderData.c2[1]]);
borderArgs.push([ "line", borderData.c3[0], borderData.c3[1]]);
}
if (radius1[0] > 0 || radius1[1] > 0) {
borderArgs.push(["line", inner1[1].end.x, inner1[1].end.y]);
inner1[1].curveToReversed(borderArgs);
} else {
borderArgs.push([ "line", borderData.c4[0], borderData.c4[1]]);
}
return borderArgs;
}
function calculateCurvePoints(bounds, borderRadius, borders) {
var x = bounds.left,
y = bounds.top,
width = bounds.width,
height = bounds.height,
tlh = borderRadius[0][0],
tlv = borderRadius[0][1],
trh = borderRadius[1][0],
trv = borderRadius[1][1],
brh = borderRadius[2][0],
brv = borderRadius[2][1],
blh = borderRadius[3][0],
blv = borderRadius[3][1],
topWidth = width - trh,
rightHeight = height - brv,
bottomWidth = width - brh,
leftHeight = height - blv;
return {
topLeftOuter: getCurvePoints(
x,
y,
tlh,
tlv
).topLeft.subdivide(0.5),
topLeftInner: getCurvePoints(
x + borders[3].width,
y + borders[0].width,
Math.max(0, tlh - borders[3].width),
Math.max(0, tlv - borders[0].width)
).topLeft.subdivide(0.5),
topRightOuter: getCurvePoints(
x + topWidth,
y,
trh,
trv
).topRight.subdivide(0.5),
topRightInner: getCurvePoints(
x + Math.min(topWidth, width + borders[3].width),
y + borders[0].width,
(topWidth > width + borders[3].width) ? 0 :trh - borders[3].width,
trv - borders[0].width
).topRight.subdivide(0.5),
bottomRightOuter: getCurvePoints(
x + bottomWidth,
y + rightHeight,
brh,
brv
).bottomRight.subdivide(0.5),
bottomRightInner: getCurvePoints(
x + Math.min(bottomWidth, width + borders[3].width),
y + Math.min(rightHeight, height + borders[0].width),
Math.max(0, brh - borders[1].width),
Math.max(0, brv - borders[2].width)
).bottomRight.subdivide(0.5),
bottomLeftOuter: getCurvePoints(
x,
y + leftHeight,
blh,
blv
).bottomLeft.subdivide(0.5),
bottomLeftInner: getCurvePoints(
x + borders[3].width,
y + leftHeight,
Math.max(0, blh - borders[3].width),
Math.max(0, blv - borders[2].width)
).bottomLeft.subdivide(0.5)
};
}
function getBorderClip(element, borderPoints, borders, radius, bounds) {
var backgroundClip = getCSS(element, 'backgroundClip'),
borderArgs = [];
switch(backgroundClip) {
case "content-box":
case "padding-box":
parseCorner(borderArgs, radius[0], radius[1], borderPoints.topLeftInner, borderPoints.topRightInner, bounds.left + borders[3].width, bounds.top + borders[0].width);
parseCorner(borderArgs, radius[1], radius[2], borderPoints.topRightInner, borderPoints.bottomRightInner, bounds.left + bounds.width - borders[1].width, bounds.top + borders[0].width);
parseCorner(borderArgs, radius[2], radius[3], borderPoints.bottomRightInner, borderPoints.bottomLeftInner, bounds.left + bounds.width - borders[1].width, bounds.top + bounds.height - borders[2].width);
parseCorner(borderArgs, radius[3], radius[0], borderPoints.bottomLeftInner, borderPoints.topLeftInner, bounds.left + borders[3].width, bounds.top + bounds.height - borders[2].width);
break;
default:
parseCorner(borderArgs, radius[0], radius[1], borderPoints.topLeftOuter, borderPoints.topRightOuter, bounds.left, bounds.top);
parseCorner(borderArgs, radius[1], radius[2], borderPoints.topRightOuter, borderPoints.bottomRightOuter, bounds.left + bounds.width, bounds.top);
parseCorner(borderArgs, radius[2], radius[3], borderPoints.bottomRightOuter, borderPoints.bottomLeftOuter, bounds.left + bounds.width, bounds.top + bounds.height);
parseCorner(borderArgs, radius[3], radius[0], borderPoints.bottomLeftOuter, borderPoints.topLeftOuter, bounds.left, bounds.top + bounds.height);
break;
}
return borderArgs;
}
function parseBorders(element, bounds, borders){
var x = bounds.left,
y = bounds.top,
width = bounds.width,
height = bounds.height,
borderSide,
bx,
by,
bw,
bh,
borderArgs,
// http://www.w3.org/TR/css3-background/#the-border-radius
borderRadius = getBorderRadiusData(element),
borderPoints = calculateCurvePoints(bounds, borderRadius, borders),
borderData = {
clip: getBorderClip(element, borderPoints, borders, borderRadius, bounds),
borders: []
};
for (borderSide = 0; borderSide < 4; borderSide++) {
if (borders[borderSide].width > 0) {
bx = x;
by = y;
bw = width;
bh = height - (borders[2].width);
switch(borderSide) {
case 0:
// top border
bh = borders[0].width;
borderArgs = drawSide({
c1: [bx, by],
c2: [bx + bw, by],
c3: [bx + bw - borders[1].width, by + bh],
c4: [bx + borders[3].width, by + bh]
}, borderRadius[0], borderRadius[1],
borderPoints.topLeftOuter, borderPoints.topLeftInner, borderPoints.topRightOuter, borderPoints.topRightInner);
break;
case 1:
// right border
bx = x + width - (borders[1].width);
bw = borders[1].width;
borderArgs = drawSide({
c1: [bx + bw, by],
c2: [bx + bw, by + bh + borders[2].width],
c3: [bx, by + bh],
c4: [bx, by + borders[0].width]
}, borderRadius[1], borderRadius[2],
borderPoints.topRightOuter, borderPoints.topRightInner, borderPoints.bottomRightOuter, borderPoints.bottomRightInner);
break;
case 2:
// bottom border
by = (by + height) - (borders[2].width);
bh = borders[2].width;
borderArgs = drawSide({
c1: [bx + bw, by + bh],
c2: [bx, by + bh],
c3: [bx + borders[3].width, by],
c4: [bx + bw - borders[3].width, by]
}, borderRadius[2], borderRadius[3],
borderPoints.bottomRightOuter, borderPoints.bottomRightInner, borderPoints.bottomLeftOuter, borderPoints.bottomLeftInner);
break;
case 3:
// left border
bw = borders[3].width;
borderArgs = drawSide({
c1: [bx, by + bh + borders[2].width],
c2: [bx, by],
c3: [bx + bw, by + borders[0].width],
c4: [bx + bw, by + bh]
}, borderRadius[3], borderRadius[0],
borderPoints.bottomLeftOuter, borderPoints.bottomLeftInner, borderPoints.topLeftOuter, borderPoints.topLeftInner);
break;
}
borderData.borders.push({
args: borderArgs,
color: borders[borderSide].color
});
}
}
return borderData;
}
function createShape(ctx, args) {
var shape = ctx.drawShape();
args.forEach(function(border, index) {
shape[(index === 0) ? "moveTo" : border[0] + "To" ].apply(null, border.slice(1));
});
return shape;
}
function renderBorders(ctx, borderArgs, color) {
if (color !== "transparent") {
ctx.setVariable( "fillStyle", color);
createShape(ctx, borderArgs);
ctx.fill();
numDraws+=1;
}
}
function renderFormValue (el, bounds, stack){
var valueWrap = doc.createElement('valuewrap'),
cssPropertyArray = ['lineHeight','textAlign','fontFamily','color','fontSize','paddingLeft','paddingTop','width','height','border','borderLeftWidth','borderTopWidth'],
textValue,
textNode;
cssPropertyArray.forEach(function(property) {
try {
valueWrap.style[property] = getCSS(el, property);
} catch(e) {
// Older IE has issues with "border"
Util.log("html2canvas: Parse: Exception caught in renderFormValue: " + e.message);
}
});
valueWrap.style.borderColor = "black";
valueWrap.style.borderStyle = "solid";
valueWrap.style.display = "block";
valueWrap.style.position = "absolute";
if (/^(submit|reset|button|text|password)$/.test(el.type) || el.nodeName === "SELECT"){
valueWrap.style.lineHeight = getCSS(el, "height");
}
valueWrap.style.top = bounds.top + "px";
valueWrap.style.left = bounds.left + "px";
textValue = (el.nodeName === "SELECT") ? (el.options[el.selectedIndex] || 0).text : el.value;
if(!textValue) {
textValue = el.placeholder;
}
textNode = doc.createTextNode(textValue);
valueWrap.appendChild(textNode);
body.appendChild(valueWrap);
renderText(el, textNode, stack);
body.removeChild(valueWrap);
}
function drawImage (ctx) {
ctx.drawImage.apply(ctx, Array.prototype.slice.call(arguments, 1));
numDraws+=1;
}
function getPseudoElement(el, which) {
var elStyle = window.getComputedStyle(el, which);
if(!elStyle || !elStyle.content || elStyle.content === "none" || elStyle.content === "-moz-alt-content" || elStyle.display === "none") {
return;
}
var content = elStyle.content + '',
first = content.substr( 0, 1 );
//strips quotes
if(first === content.substr( content.length - 1 ) && first.match(/'|"/)) {
content = content.substr( 1, content.length - 2 );
}
var isImage = content.substr( 0, 3 ) === 'url',
elps = document.createElement( isImage ? 'img' : 'span' );
elps.className = pseudoHide + "-before " + pseudoHide + "-after";
Object.keys(elStyle).filter(indexedProperty).forEach(function(prop) {
// Prevent assigning of read only CSS Rules, ex. length, parentRule
try {
elps.style[prop] = elStyle[prop];
} catch (e) {
Util.log(['Tried to assign readonly property ', prop, 'Error:', e]);
}
});
if(isImage) {
elps.src = Util.parseBackgroundImage(content)[0].args[0];
} else {
elps.innerHTML = content;
}
return elps;
}
function indexedProperty(property) {
return (isNaN(window.parseInt(property, 10)));
}
function injectPseudoElements(el, stack) {
var before = getPseudoElement(el, ':before'),
after = getPseudoElement(el, ':after');
if(!before && !after) {
return;
}
if(before) {
el.className += " " + pseudoHide + "-before";
el.parentNode.insertBefore(before, el);
parseElement(before, stack, true);
el.parentNode.removeChild(before);
el.className = el.className.replace(pseudoHide + "-before", "").trim();
}
if (after) {
el.className += " " + pseudoHide + "-after";
el.appendChild(after);
parseElement(after, stack, true);
el.removeChild(after);
el.className = el.className.replace(pseudoHide + "-after", "").trim();
}
}
function renderBackgroundRepeat(ctx, image, backgroundPosition, bounds) {
var offsetX = Math.round(bounds.left + backgroundPosition.left),
offsetY = Math.round(bounds.top + backgroundPosition.top);
ctx.createPattern(image);
ctx.translate(offsetX, offsetY);
ctx.fill();
ctx.translate(-offsetX, -offsetY);
}
function backgroundRepeatShape(ctx, image, backgroundPosition, bounds, left, top, width, height) {
var args = [];
args.push(["line", Math.round(left), Math.round(top)]);
args.push(["line", Math.round(left + width), Math.round(top)]);
args.push(["line", Math.round(left + width), Math.round(height + top)]);
args.push(["line", Math.round(left), Math.round(height + top)]);
createShape(ctx, args);
ctx.save();
ctx.clip();
renderBackgroundRepeat(ctx, image, backgroundPosition, bounds);
ctx.restore();
}
function renderBackgroundColor(ctx, backgroundBounds, bgcolor) {
renderRect(
ctx,
backgroundBounds.left,
backgroundBounds.top,
backgroundBounds.width,
backgroundBounds.height,
bgcolor
);
}
function renderBackgroundRepeating(el, bounds, ctx, image, imageIndex) {
var backgroundSize = Util.BackgroundSize(el, bounds, image, imageIndex),
backgroundPosition = Util.BackgroundPosition(el, bounds, image, imageIndex, backgroundSize),
backgroundRepeat = getCSS(el, "backgroundRepeat").split(",").map(Util.trimText);
image = resizeImage(image, backgroundSize);
backgroundRepeat = backgroundRepeat[imageIndex] || backgroundRepeat[0];
switch (backgroundRepeat) {
case "repeat-x":
backgroundRepeatShape(ctx, image, backgroundPosition, bounds,
bounds.left, bounds.top + backgroundPosition.top, 99999, image.height);
break;
case "repeat-y":
backgroundRepeatShape(ctx, image, backgroundPosition, bounds,
bounds.left + backgroundPosition.left, bounds.top, image.width, 99999);
break;
case "no-repeat":
backgroundRepeatShape(ctx, image, backgroundPosition, bounds,
bounds.left + backgroundPosition.left, bounds.top + backgroundPosition.top, image.width, image.height);
break;
default:
renderBackgroundRepeat(ctx, image, backgroundPosition, {
top: bounds.top,
left: bounds.left,
width: image.width,
height: image.height
});
break;
}
}
function renderBackgroundImage(element, bounds, ctx) {
var backgroundImage = getCSS(element, "backgroundImage"),
backgroundImages = Util.parseBackgroundImage(backgroundImage),
image,
imageIndex = backgroundImages.length;
while(imageIndex--) {
backgroundImage = backgroundImages[imageIndex];
if (!backgroundImage.args || backgroundImage.args.length === 0) {
continue;
}
var key = backgroundImage.method === 'url' ?
backgroundImage.args[0] :
backgroundImage.value;
image = loadImage(key);
// TODO add support for background-origin
if (image) {
renderBackgroundRepeating(element, bounds, ctx, image, imageIndex);
} else {
Util.log("html2canvas: Error loading background:", backgroundImage);
}
}
}
function resizeImage(image, bounds) {
if(image.width === bounds.width && image.height === bounds.height) {
return image;
}
var ctx, canvas = doc.createElement('canvas');
canvas.width = bounds.width;
canvas.height = bounds.height;
ctx = canvas.getContext("2d");
drawImage(ctx, image, 0, 0, image.width, image.height, 0, 0, bounds.width, bounds.height );
return canvas;
}
function setOpacity(ctx, element, parentStack) {
return ctx.setVariable("globalAlpha", getCSS(element, "opacity") * ((parentStack) ? parentStack.opacity : 1));
}
function removePx(str) {
return str.replace("px", "");
}
var transformRegExp = /(matrix)\((.+)\)/;
function getTransform(element, parentStack) {
var transform = getCSS(element, "transform") || getCSS(element, "-webkit-transform") || getCSS(element, "-moz-transform") || getCSS(element, "-ms-transform") || getCSS(element, "-o-transform");
var transformOrigin = getCSS(element, "transform-origin") || getCSS(element, "-webkit-transform-origin") || getCSS(element, "-moz-transform-origin") || getCSS(element, "-ms-transform-origin") || getCSS(element, "-o-transform-origin") || "0px 0px";
transformOrigin = transformOrigin.split(" ").map(removePx).map(Util.asFloat);
var matrix;
if (transform && transform !== "none") {
var match = transform.match(transformRegExp);
if (match) {
switch(match[1]) {
case "matrix":
matrix = match[2].split(",").map(Util.trimText).map(Util.asFloat);
break;
}
}
}
return {
origin: transformOrigin,
matrix: matrix
};
}
function createStack(element, parentStack, bounds, transform) {
var ctx = h2cRenderContext((!parentStack) ? documentWidth() : bounds.width , (!parentStack) ? documentHeight() : bounds.height),
stack = {
ctx: ctx,
opacity: setOpacity(ctx, element, parentStack),
cssPosition: getCSS(element, "position"),
borders: getBorderData(element),
transform: transform,
clip: (parentStack && parentStack.clip) ? Util.Extend( {}, parentStack.clip ) : null
};
setZ(element, stack, parentStack);
// TODO correct overflow for absolute content residing under a static position
if (options.useOverflow === true && /(hidden|scroll|auto)/.test(getCSS(element, "overflow")) === true && /(BODY)/i.test(element.nodeName) === false){
stack.clip = (stack.clip) ? clipBounds(stack.clip, bounds) : bounds;
}
return stack;
}
function getBackgroundBounds(borders, bounds, clip) {
var backgroundBounds = {
left: bounds.left + borders[3].width,
top: bounds.top + borders[0].width,
width: bounds.width - (borders[1].width + borders[3].width),
height: bounds.height - (borders[0].width + borders[2].width)
};
if (clip) {
backgroundBounds = clipBounds(backgroundBounds, clip);
}
return backgroundBounds;
}
function getBounds(element, transform) {
var bounds = (transform.matrix) ? Util.OffsetBounds(element) : Util.Bounds(element);
transform.origin[0] += bounds.left;
transform.origin[1] += bounds.top;
return bounds;
}
function renderElement(element, parentStack, pseudoElement, ignoreBackground) {
var transform = getTransform(element, parentStack),
bounds = getBounds(element, transform),
image,
stack = createStack(element, parentStack, bounds, transform),
borders = stack.borders,
ctx = stack.ctx,
backgroundBounds = getBackgroundBounds(borders, bounds, stack.clip),
borderData = parseBorders(element, bounds, borders),
backgroundColor = (ignoreElementsRegExp.test(element.nodeName)) ? "#efefef" : getCSS(element, "backgroundColor");
createShape(ctx, borderData.clip);
ctx.save();
ctx.clip();
if (backgroundBounds.height > 0 && backgroundBounds.width > 0 && !ignoreBackground) {
renderBackgroundColor(ctx, bounds, backgroundColor);
renderBackgroundImage(element, backgroundBounds, ctx);
} else if (ignoreBackground) {
stack.backgroundColor = backgroundColor;
}
ctx.restore();
borderData.borders.forEach(function(border) {
renderBorders(ctx, border.args, border.color);
});
if (!pseudoElement) {
injectPseudoElements(element, stack);
}
switch(element.nodeName){
case "IMG":
if ((image = loadImage(element.getAttribute('src')))) {
renderImage(ctx, element, image, bounds, borders);
} else {
Util.log("html2canvas: Error loading <img>:" + element.getAttribute('src'));
}
break;
case "INPUT":
// TODO add all relevant type's, i.e. HTML5 new stuff
// todo add support for placeholder attribute for browsers which support it
if (/^(text|url|email|submit|button|reset)$/.test(element.type) && (element.value || element.placeholder || "").length > 0){
renderFormValue(element, bounds, stack);
}
break;
case "TEXTAREA":
if ((element.value || element.placeholder || "").length > 0){
renderFormValue(element, bounds, stack);
}
break;
case "SELECT":
if ((element.options||element.placeholder || "").length > 0){
renderFormValue(element, bounds, stack);
}
break;
case "LI":
renderListItem(element, stack, backgroundBounds);
break;
case "CANVAS":
renderImage(ctx, element, element, bounds, borders);
break;
}
return stack;
}
function isElementVisible(element) {
return (getCSS(element, 'display') !== "none" && getCSS(element, 'visibility') !== "hidden" && !element.hasAttribute("data-html2canvas-ignore"));
}
function parseElement (element, stack, pseudoElement) {
if (isElementVisible(element)) {
stack = renderElement(element, stack, pseudoElement, false) || stack;
if (!ignoreElementsRegExp.test(element.nodeName)) {
parseChildren(element, stack, pseudoElement);
}
}
}
function parseChildren(element, stack, pseudoElement) {
Util.Children(element).forEach(function(node) {
if (node.nodeType === node.ELEMENT_NODE) {
parseElement(node, stack, pseudoElement);
} else if (node.nodeType === node.TEXT_NODE) {
renderText(element, node, stack);
}
});
}
function init() {
var background = getCSS(document.documentElement, "backgroundColor"),
transparentBackground = (Util.isTransparent(background) && element === document.body),
stack = renderElement(element, null, false, transparentBackground);
parseChildren(element, stack);
if (transparentBackground) {
background = stack.backgroundColor;
}
body.removeChild(hidePseudoElements);
return {
backgroundColor: background,
stack: stack
};
}
return init();
};
function h2czContext(zindex) {
return {
zindex: zindex,
children: []
};
}
_html2canvas.Preload = function( options ) {
var images = {
numLoaded: 0, // also failed are counted here
numFailed: 0,
numTotal: 0,
cleanupDone: false
},
pageOrigin,
Util = _html2canvas.Util,
methods,
i,
count = 0,
element = options.elements[0] || document.body,
doc = element.ownerDocument,
domImages = element.getElementsByTagName('img'), // Fetch images of the present element only
imgLen = domImages.length,
link = doc.createElement("a"),
supportCORS = (function( img ){
return (img.crossOrigin !== undefined);
})(new Image()),
timeoutTimer;
link.href = window.location.href;
pageOrigin = link.protocol + link.host;
function isSameOrigin(url){
link.href = url;
link.href = link.href; // YES, BELIEVE IT OR NOT, that is required for IE9 - http://jsfiddle.net/niklasvh/2e48b/
var origin = link.protocol + link.host;
return (origin === pageOrigin);
}
function start(){
Util.log("html2canvas: start: images: " + images.numLoaded + " / " + images.numTotal + " (failed: " + images.numFailed + ")");
if (!images.firstRun && images.numLoaded >= images.numTotal){
Util.log("Finished loading images: # " + images.numTotal + " (failed: " + images.numFailed + ")");
if (typeof options.complete === "function"){
options.complete(images);
}
}
}
// TODO modify proxy to serve images with CORS enabled, where available
function proxyGetImage(url, img, imageObj){
var callback_name,
scriptUrl = options.proxy,
script;
link.href = url;
url = link.href; // work around for pages with base href="" set - WARNING: this may change the url
callback_name = 'html2canvas_' + (count++);
imageObj.callbackname = callback_name;
if (scriptUrl.indexOf("?") > -1) {
scriptUrl += "&";
} else {
scriptUrl += "?";
}
scriptUrl += 'url=' + encodeURIComponent(url) + '&callback=' + callback_name;
script = doc.createElement("script");
window[callback_name] = function(a){
if (a.substring(0,6) === "error:"){
imageObj.succeeded = false;
images.numLoaded++;
images.numFailed++;
start();
} else {
setImageLoadHandlers(img, imageObj);
img.src = a;
}
window[callback_name] = undefined; // to work with IE<9 // NOTE: that the undefined callback property-name still exists on the window object (for IE<9)
try {
delete window[callback_name]; // for all browser that support this
} catch(ex) {}
script.parentNode.removeChild(script);
script = null;
delete imageObj.script;
delete imageObj.callbackname;
};
script.setAttribute("type", "text/javascript");
script.setAttribute("src", scriptUrl);
imageObj.script = script;
window.document.body.appendChild(script);
}
function loadPseudoElement(element, type) {
var style = window.getComputedStyle(element, type),
content = style.content;
if (content.substr(0, 3) === 'url') {
methods.loadImage(_html2canvas.Util.parseBackgroundImage(content)[0].args[0]);
}
loadBackgroundImages(style.backgroundImage, element);
}
function loadPseudoElementImages(element) {
loadPseudoElement(element, ":before");
loadPseudoElement(element, ":after");
}
function loadGradientImage(backgroundImage, bounds) {
var img = _html2canvas.Generate.Gradient(backgroundImage, bounds);
if (img !== undefined){
images[backgroundImage] = {
img: img,
succeeded: true
};
images.numTotal++;
images.numLoaded++;
start();
}
}
function invalidBackgrounds(background_image) {
return (background_image && background_image.method && background_image.args && background_image.args.length > 0 );
}
function loadBackgroundImages(background_image, el) {
var bounds;
_html2canvas.Util.parseBackgroundImage(background_image).filter(invalidBackgrounds).forEach(function(background_image) {
if (background_image.method === 'url') {
methods.loadImage(background_image.args[0]);
} else if(background_image.method.match(/\-?gradient$/)) {
if(bounds === undefined) {
bounds = _html2canvas.Util.Bounds(el);
}
loadGradientImage(background_image.value, bounds);
}
});
}
function getImages (el) {
var elNodeType = false;
// Firefox fails with permission denied on pages with iframes
try {
Util.Children(el).forEach(getImages);
}
catch( e ) {}
try {
elNodeType = el.nodeType;
} catch (ex) {
elNodeType = false;
Util.log("html2canvas: failed to access some element's nodeType - Exception: " + ex.message);
}
if (elNodeType === 1 || elNodeType === undefined) {
loadPseudoElementImages(el);
try {
loadBackgroundImages(Util.getCSS(el, 'backgroundImage'), el);
} catch(e) {
Util.log("html2canvas: failed to get background-image - Exception: " + e.message);
}
loadBackgroundImages(el);
}
}
function setImageLoadHandlers(img, imageObj) {
img.onload = function() {
if ( imageObj.timer !== undefined ) {
// CORS succeeded
window.clearTimeout( imageObj.timer );
}
images.numLoaded++;
imageObj.succeeded = true;
img.onerror = img.onload = null;
start();
};
img.onerror = function() {
if (img.crossOrigin === "anonymous") {
// CORS failed
window.clearTimeout( imageObj.timer );
// let's try with proxy instead
if ( options.proxy ) {
var src = img.src;
img = new Image();
imageObj.img = img;
img.src = src;
proxyGetImage( img.src, img, imageObj );
return;
}
}
images.numLoaded++;
images.numFailed++;
imageObj.succeeded = false;
img.onerror = img.onload = null;
start();
};
}
methods = {
loadImage: function( src ) {
var img, imageObj;
if ( src && images[src] === undefined ) {
img = new Image();
if ( src.match(/data:image\/.*;base64,/i) ) {
img.src = src.replace(/url\(['"]{0,}|['"]{0,}\)$/ig, '');
imageObj = images[src] = {
img: img
};
images.numTotal++;
setImageLoadHandlers(img, imageObj);
} else if ( isSameOrigin( src ) || options.allowTaint === true ) {
imageObj = images[src] = {
img: img
};
images.numTotal++;
setImageLoadHandlers(img, imageObj);
img.src = src;
} else if ( supportCORS && !options.allowTaint && options.useCORS ) {
// attempt to load with CORS
img.crossOrigin = "anonymous";
imageObj = images[src] = {
img: img
};
images.numTotal++;
setImageLoadHandlers(img, imageObj);
img.src = src;
} else if ( options.proxy ) {
imageObj = images[src] = {
img: img
};
images.numTotal++;
proxyGetImage( src, img, imageObj );
}
}
},
cleanupDOM: function(cause) {
var img, src;
if (!images.cleanupDone) {
if (cause && typeof cause === "string") {
Util.log("html2canvas: Cleanup because: " + cause);
} else {
Util.log("html2canvas: Cleanup after timeout: " + options.timeout + " ms.");
}
for (src in images) {
if (images.hasOwnProperty(src)) {
img = images[src];
if (typeof img === "object" && img.callbackname && img.succeeded === undefined) {
// cancel proxy image request
window[img.callbackname] = undefined; // to work with IE<9 // NOTE: that the undefined callback property-name still exists on the window object (for IE<9)
try {
delete window[img.callbackname]; // for all browser that support this
} catch(ex) {}
if (img.script && img.script.parentNode) {
img.script.setAttribute("src", "about:blank"); // try to cancel running request
img.script.parentNode.removeChild(img.script);
}
images.numLoaded++;
images.numFailed++;
Util.log("html2canvas: Cleaned up failed img: '" + src + "' Steps: " + images.numLoaded + " / " + images.numTotal);
}
}
}
// cancel any pending requests
if(window.stop !== undefined) {
window.stop();
} else if(document.execCommand !== undefined) {
document.execCommand("Stop", false);
}
if (document.close !== undefined) {
document.close();
}
images.cleanupDone = true;
if (!(cause && typeof cause === "string")) {
start();
}
}
},
renderingDone: function() {
if (timeoutTimer) {
window.clearTimeout(timeoutTimer);
}
}
};
if (options.timeout > 0) {
timeoutTimer = window.setTimeout(methods.cleanupDOM, options.timeout);
}
Util.log('html2canvas: Preload starts: finding background-images');
images.firstRun = true;
getImages(element);
Util.log('html2canvas: Preload: Finding images');
// load <img> images
for (i = 0; i < imgLen; i+=1){
methods.loadImage( domImages[i].getAttribute( "src" ) );
}
images.firstRun = false;
Util.log('html2canvas: Preload: Done.');
if (images.numTotal === images.numLoaded) {
start();
}
return methods;
};
_html2canvas.Renderer = function(parseQueue, options){
// http://www.w3.org/TR/CSS21/zindex.html
function createRenderQueue(parseQueue) {
var queue = [],
rootContext;
rootContext = (function buildStackingContext(rootNode) {
var rootContext = {};
function insert(context, node, specialParent) {
var zi = (node.zIndex.zindex === 'auto') ? 0 : Number(node.zIndex.zindex),
contextForChildren = context, // the stacking context for children
isPositioned = node.zIndex.isPositioned,
isFloated = node.zIndex.isFloated,
stub = {node: node},
childrenDest = specialParent; // where children without z-index should be pushed into
if (node.zIndex.ownStacking) {
// '!' comes before numbers in sorted array
contextForChildren = stub.context = { '!': [{node:node, children: []}]};
childrenDest = undefined;
} else if (isPositioned || isFloated) {
childrenDest = stub.children = [];
}
if (zi === 0 && specialParent) {
specialParent.push(stub);
} else {
if (!context[zi]) { context[zi] = []; }
context[zi].push(stub);
}
node.zIndex.children.forEach(function(childNode) {
insert(contextForChildren, childNode, childrenDest);
});
}
insert(rootContext, rootNode);
return rootContext;
})(parseQueue);
function sortZ(context) {
Object.keys(context).sort().forEach(function(zi) {
var nonPositioned = [],
floated = [],
positioned = [],
list = [];
// positioned after static
context[zi].forEach(function(v) {
if (v.node.zIndex.isPositioned || v.node.zIndex.opacity < 1) {
// http://www.w3.org/TR/css3-color/#transparency
// non-positioned element with opactiy < 1 should be stacked as if it were a positioned element with ‘z-index: 0’ and ‘opacity: 1’.
positioned.push(v);
} else if (v.node.zIndex.isFloated) {
floated.push(v);
} else {
nonPositioned.push(v);
}
});
(function walk(arr) {
arr.forEach(function(v) {
list.push(v);
if (v.children) { walk(v.children); }
});
})(nonPositioned.concat(floated, positioned));
list.forEach(function(v) {
if (v.context) {
sortZ(v.context);
} else {
queue.push(v.node);
}
});
});
}
sortZ(rootContext);
return queue;
}
function getRenderer(rendererName) {
var renderer;
if (typeof options.renderer === "string" && _html2canvas.Renderer[rendererName] !== undefined) {
renderer = _html2canvas.Renderer[rendererName](options);
} else if (typeof rendererName === "function") {
renderer = rendererName(options);
} else {
throw new Error("Unknown renderer");
}
if ( typeof renderer !== "function" ) {
throw new Error("Invalid renderer defined");
}
return renderer;
}
return getRenderer(options.renderer)(parseQueue, options, document, createRenderQueue(parseQueue.stack), _html2canvas);
};
_html2canvas.Util.Support = function (options, doc) {
function supportSVGRendering() {
var img = new Image(),
canvas = doc.createElement("canvas"),
ctx = (canvas.getContext === undefined) ? false : canvas.getContext("2d");
if (ctx === false) {
return false;
}
canvas.width = canvas.height = 10;
img.src = [
"data:image/svg+xml,",
"<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10'>",
"<foreignObject width='10' height='10'>",
"<div xmlns='http://www.w3.org/1999/xhtml' style='width:10;height:10;'>",
"sup",
"</div>",
"</foreignObject>",
"</svg>"
].join("");
try {
ctx.drawImage(img, 0, 0);
canvas.toDataURL();
} catch(e) {
return false;
}
_html2canvas.Util.log('html2canvas: Parse: SVG powered rendering available');
return true;
}
// Test whether we can use ranges to measure bounding boxes
// Opera doesn't provide valid bounds.height/bottom even though it supports the method.
function supportRangeBounds() {
var r, testElement, rangeBounds, rangeHeight, support = false;
if (doc.createRange) {
r = doc.createRange();
if (r.getBoundingClientRect) {
testElement = doc.createElement('boundtest');
testElement.style.height = "123px";
testElement.style.display = "block";
doc.body.appendChild(testElement);
r.selectNode(testElement);
rangeBounds = r.getBoundingClientRect();
rangeHeight = rangeBounds.height;
if (rangeHeight === 123) {
support = true;
}
doc.body.removeChild(testElement);
}
}
return support;
}
return {
rangeBounds: supportRangeBounds(),
svgRendering: options.svgRendering && supportSVGRendering()
};
};
window.html2canvas = function(elements, opts) {
elements = (elements.length) ? elements : [elements];
var queue,
canvas,
options = {
// general
logging: false,
elements: elements,
background: "#fff",
// preload options
proxy: null,
timeout: 0, // no timeout
useCORS: false, // try to load images as CORS (where available), before falling back to proxy
allowTaint: false, // whether to allow images to taint the canvas, won't need proxy if set to true
// parse options
svgRendering: false, // use svg powered rendering where available (FF11+)
ignoreElements: "IFRAME|OBJECT|PARAM",
useOverflow: true,
letterRendering: false,
chinese: false,
// render options
width: null,
height: null,
taintTest: true, // do a taint test with all images before applying to canvas
renderer: "Canvas"
};
options = _html2canvas.Util.Extend(opts, options);
_html2canvas.logging = options.logging;
options.complete = function( images ) {
if (typeof options.onpreloaded === "function") {
if ( options.onpreloaded( images ) === false ) {
return;
}
}
queue = _html2canvas.Parse( images, options );
if (typeof options.onparsed === "function") {
if ( options.onparsed( queue ) === false ) {
return;
}
}
canvas = _html2canvas.Renderer( queue, options );
if (typeof options.onrendered === "function") {
options.onrendered( canvas );
}
};
// for pages without images, we still want this to be async, i.e. return methods before executing
window.setTimeout( function(){
_html2canvas.Preload( options );
}, 0 );
return {
render: function( queue, opts ) {
return _html2canvas.Renderer( queue, _html2canvas.Util.Extend(opts, options) );
},
parse: function( images, opts ) {
return _html2canvas.Parse( images, _html2canvas.Util.Extend(opts, options) );
},
preload: function( opts ) {
return _html2canvas.Preload( _html2canvas.Util.Extend(opts, options) );
},
log: _html2canvas.Util.log
};
};
window.html2canvas.log = _html2canvas.Util.log; // for renderers
window.html2canvas.Renderer = {
Canvas: undefined // We are assuming this will be used
};
_html2canvas.Renderer.Canvas = function(options) {
options = options || {};
var doc = document,
safeImages = [],
testCanvas = document.createElement("canvas"),
testctx = testCanvas.getContext("2d"),
Util = _html2canvas.Util,
canvas = options.canvas || doc.createElement('canvas');
function createShape(ctx, args) {
ctx.beginPath();
args.forEach(function(arg) {
ctx[arg.name].apply(ctx, arg['arguments']);
});
ctx.closePath();
}
function safeImage(item) {
if (safeImages.indexOf(item['arguments'][0].src ) === -1) {
testctx.drawImage(item['arguments'][0], 0, 0);
try {
testctx.getImageData(0, 0, 1, 1);
} catch(e) {
testCanvas = doc.createElement("canvas");
testctx = testCanvas.getContext("2d");
return false;
}
safeImages.push(item['arguments'][0].src);
}
return true;
}
function renderItem(ctx, item) {
switch(item.type){
case "variable":
ctx[item.name] = item['arguments'];
break;
case "function":
switch(item.name) {
case "createPattern":
if (item['arguments'][0].width > 0 && item['arguments'][0].height > 0) {
try {
ctx.fillStyle = ctx.createPattern(item['arguments'][0], "repeat");
}
catch(e) {
Util.log("html2canvas: Renderer: Error creating pattern", e.message);
}
}
break;
case "drawShape":
createShape(ctx, item['arguments']);
break;
case "drawImage":
if (item['arguments'][8] > 0 && item['arguments'][7] > 0) {
if (!options.taintTest || (options.taintTest && safeImage(item))) {
ctx.drawImage.apply( ctx, item['arguments'] );
}
}
break;
default:
ctx[item.name].apply(ctx, item['arguments']);
}
break;
}
}
return function(parsedData, options, document, queue, _html2canvas) {
var ctx = canvas.getContext("2d"),
newCanvas,
bounds,
fstyle,
zStack = parsedData.stack;
canvas.width = canvas.style.width = options.width || zStack.ctx.width;
canvas.height = canvas.style.height = options.height || zStack.ctx.height;
fstyle = ctx.fillStyle;
ctx.fillStyle = (Util.isTransparent(zStack.backgroundColor) && options.background !== undefined) ? options.background : parsedData.backgroundColor;
ctx.fillRect(0, 0, canvas.width, canvas.height);
ctx.fillStyle = fstyle;
queue.forEach(function(storageContext) {
// set common settings for canvas
ctx.textBaseline = "bottom";
ctx.save();
if (storageContext.transform.matrix) {
ctx.translate(storageContext.transform.origin[0], storageContext.transform.origin[1]);
ctx.transform.apply(ctx, storageContext.transform.matrix);
ctx.translate(-storageContext.transform.origin[0], -storageContext.transform.origin[1]);
}
if (storageContext.clip){
ctx.beginPath();
ctx.rect(storageContext.clip.left, storageContext.clip.top, storageContext.clip.width, storageContext.clip.height);
ctx.clip();
}
if (storageContext.ctx.storage) {
storageContext.ctx.storage.forEach(function(item) {
renderItem(ctx, item);
});
}
ctx.restore();
});
Util.log("html2canvas: Renderer: Canvas renderer done - returning canvas obj");
if (options.elements.length === 1) {
if (typeof options.elements[0] === "object" && options.elements[0].nodeName !== "BODY") {
// crop image to the bounds of selected (single) element
bounds = _html2canvas.Util.Bounds(options.elements[0]);
newCanvas = document.createElement('canvas');
newCanvas.width = Math.ceil(bounds.width);
newCanvas.height = Math.ceil(bounds.height);
ctx = newCanvas.getContext("2d");
ctx.drawImage(canvas, bounds.left, bounds.top, bounds.width, bounds.height, 0, 0, bounds.width, bounds.height);
canvas = null;
return newCanvas;
}
}
return canvas;
};
};
})(window,document);
WARC/1.0
WARC-Type: request
WARC-Target-URI: http://www.cs.odu.edu/~mkelly/index.js
Content-Type: application/http;msgtype=request
WARC-Date: 2016-10-28T08:48:02Z
WARC-Record-ID: <urn:uuid:c4037b6b-734b-487f-b3cf-290d04f0fcc8>
WARC-IP-Address: 128.82.4.2
WARC-Warcinfo-ID: <urn:uuid:e839ab48-87d0-48ac-9c68-84a5b3a63aee>
WARC-Block-Digest: sha1:WHHSKKUBA3UMEXBTDRMSCBSQ3NDCSZFH
Content-Length: 198
GET /~mkelly/index.js HTTP/1.1
Referer: http://www.cs.odu.edu/~mkelly/
User-Agent: Wget/1.17.1 (linux-gnu)
Accept: */*
Accept-Encoding: identity
Host: www.cs.odu.edu
Connection: Keep-Alive
WARC/1.0
WARC-Type: response
WARC-Record-ID: <urn:uuid:3e165cb4-8427-4c90-8da1-d4016a37017b>
WARC-Warcinfo-ID: <urn:uuid:e839ab48-87d0-48ac-9c68-84a5b3a63aee>
WARC-Concurrent-To: <urn:uuid:c4037b6b-734b-487f-b3cf-290d04f0fcc8>
WARC-Target-URI: http://www.cs.odu.edu/~mkelly/index.js
WARC-Date: 2016-10-28T08:48:02Z
WARC-IP-Address: 128.82.4.2
WARC-Block-Digest: sha1:CZ5UBWLQ4JWU3KO7LUX6HZGAL6EE55CG
WARC-Payload-Digest: sha1:BZHG7OLFLPJ4XBJQIRADFWSWUSX6YWNI
Content-Type: application/http;msgtype=response
Content-Length: 2745
HTTP/1.1 200 OK
Server: nginx
Date: Fri, 28 Oct 2016 08:48:02 GMT
Content-Type: application/javascript
Content-Length: 2472
Connection: keep-alive
Last-Modified: Fri, 30 Sep 2016 14:26:20 GMT
ETag: "9a8-53dba60c09b4f"
Accept-Ranges: bytes
Vary: Accept-Encoding
function screenshotTest () {
html2canvas(document.body, {
allowTaint: true,
onrendered: function(canvas) {
if (!document.getElementById('screenshot')) { // Exec below only once
canvas.id = 'screenshot'
var tf = document.createElement('div')
tf.id = 'thumbnailFrame'
document.getElementsByTagName('header')[0].insertBefore(tf,document.getElementsByTagName('h1')[0])
document.getElementById('thumbnailFrame').appendChild(canvas)
}
}
})
}
function addPPPFilters () {
// Get children li's as array (default is a Nodelist)
var ppps = Array.from(document.getElementById('ppp').children)
var filter_all = document.getElementById('ppp_all')
var filter_pr = document.getElementById('ppp_pr')
var filter_p = document.getElementById('ppp_p')
var filter_j = document.getElementById('ppp_j')
filter_pr.onclick = function showOnlyPeerReviewed () {
ppp_showOnly('peerReviewed')
ppp_highlightNavItem(this.id)
}
filter_p.onclick = function showOnlyPapers () {
ppp_showOnly('paper')
ppp_highlightNavItem(this.id)
}
filter_j.onclick = function showOnlyJournal () {
ppp_showOnly('journal')
ppp_highlightNavItem(this.id)
}
filter_all.onclick = function showAll () {
ppp_showAll()
ppp_highlightNavItem(this.id)
}
}
// Show pubs, pres, etc. only of a certain type className
function ppp_showOnly (className) {
var ppps = Array.from(document.getElementById('ppp').children)
ppps.forEach(function changeHidden (el, i, arr) {
el.classList.contains(className) ? el.classList.remove('hidden') : el.classList.add('hidden')
})
}
function ppp_showAll () {
var ppps = Array.from(document.getElementById('ppp').children)
ppps.forEach(function changeHidden (el, i, arr) {
el.classList.remove('hidden')
})
}
// Change selection UI style on click
function ppp_highlightNavItem (id) {
var filterOptions = Array.from(document.getElementById('ppp_filter').children)
filterOptions.forEach(function selectOption (el, i, arr) {
el.firstChild.id == id ? el.classList.add('ppp_active') : el.classList.remove('ppp_active')
})
}
document.addEventListener('DOMContentLoaded', function (event) {
document.onscroll = function () {
if (window.innerWidth <= 600) { //responsive design showing
if (window.pageYOffset > 400) {
document.getElementsByTagName('header')[0].className = 'pinned'
} else {
document.getElementsByTagName('header')[0].className = ''
}
}
}
addPPPFilters()
})
WARC/1.0
WARC-Type: request
WARC-Target-URI: http://www.cs.odu.edu/~mkelly/mofro.png
Content-Type: application/http;msgtype=request
WARC-Date: 2016-10-28T08:48:02Z
WARC-Record-ID: <urn:uuid:ce89387d-b629-4dab-8c52-ed68998f4245>
WARC-IP-Address: 128.82.4.2
WARC-Warcinfo-ID: <urn:uuid:e839ab48-87d0-48ac-9c68-84a5b3a63aee>
WARC-Block-Digest: sha1:55VARLB6QSWGDHRL7PRWVBULIRT4GFDQ
Content-Length: 199
GET /~mkelly/mofro.png HTTP/1.1
Referer: http://www.cs.odu.edu/~mkelly/
User-Agent: Wget/1.17.1 (linux-gnu)
Accept: */*
Accept-Encoding: identity
Host: www.cs.odu.edu
Connection: Keep-Alive
WARC/1.0
WARC-Type: response
WARC-Record-ID: <urn:uuid:235941ac-3df8-427c-a5d4-6657d7b3049c>
WARC-Warcinfo-ID: <urn:uuid:e839ab48-87d0-48ac-9c68-84a5b3a63aee>
WARC-Concurrent-To: <urn:uuid:ce89387d-b629-4dab-8c52-ed68998f4245>
WARC-Target-URI: http://www.cs.odu.edu/~mkelly/mofro.png
WARC-Date: 2016-10-28T08:48:02Z
WARC-IP-Address: 128.82.4.2
WARC-Block-Digest: sha1:SCMHHXKFHEX36VGQNAF4IJHGZGEG7JJC
WARC-Payload-Digest: sha1:BS6G6CFUVUI7F4OGD6BKXDJCJLIPSLPO
Content-Type: application/http;msgtype=response
Content-Length: 56389
HTTP/1.1 200 OK
Server: nginx
Date: Fri, 28 Oct 2016 08:48:02 GMT
Content-Type: image/png
Content-Length: 56150
Connection: keep-alive
Last-Modified: Tue, 12 May 2015 13:09:44 GMT
ETag: "db56-515e235441609"
Accept-Ranges: bytes
\89PNG

\00\00\00
IHDR\00\00\00\C8\00\00\00\C8\00\00\00":9\C9\00\00\00tEXtSoftware\00Adobe ImageReadyq\C9e<\00\00\DA\F8IDATx\DA|\BDi\97d\C9q%\E6\EEo\8F-\B3\B2\AA\BA\BA\BA\BAp\E7\D1h\9B\AF:\FA\BF:\FA6\D4\E9p8C-#R\CDP\E4\80[co\A0k\CB%\96\B7\BAϽf\FE\96\88\CCf(deF\C6\F2\9E\B9\D95\B3k\D7lUf\C6k\AD\91?\F8\FF\F8E\C1\B9\F8M\FD\8E\FET\FFɇ\E1\9F\C6$6\FE.\AF\DF\E2?\F1\9B\FC\9D`\F9O眑\AF\F1'\E0\A1.qV~\9F\CF*\8F\C7\EF\CAO\F5\D9M|U\F9\E3\F9#\BC\E7\FD\80\DF\F4\F8΀\BF\F0 \CEX?\FE\9F\A0(\CAO?\FBb\BB{\99dE\9A\A6.ɒ,\CD\F3<I\F0\FFi\9E\E5i\92\F2{Y\9A\E5y\86\FF\E1\EF"/\CB2/r\FC_Q\AB</\E4\8B\DFI\F9\B0\BF\89\87&\A9\B5\8B7(\97{\E4?~\EF}\D7u\FD0\F4]\D74\ED\A9kN\A7\E3\E1p4C8\9D\9A\BEo\EB\B6\E5O\FB\CE\E3\FF\FE\DD\CB\FC\FE\8D'\C4\DF\F2\E1qq\F8\AFV\A8\9B\87\E0\87\DF\FB\DD\DF/\AB\FC\BF\FB\BD_\FC\FC^ހ\BCk\BC\E7U«\87 o \97\C7\E3\F7\F9\83/
^\DE˷\F9\BE\BA0\C8?\F0\A3/\EAyG€\87ˇ\C2\CB\F9\B3i\E2=\8A/f;qj\E3c\E5\87\F2\E0\F1\EE9\A7l\B4\9D\85
-\EF\EFt5\D0?\BF~K\9F͍V(O2\BEb|w\F1\E8eOm\93v\B4x'\FC\E3\ECh\84\D6\EA\E5o\E1K\D3/>\BEZ\B6\BC&\F6,/\B4\F8̴Oy\D1\F8\C6\E6\CF7\BE+'ߴv񁬼\A9\F9"\9F_\A5 ?\D7\F2Ia\BA \9F9\B8\D4\E1}$\C6f\F2\FEaz\B0,\DCw+\EFM~/\DE@\DCvyE\F9\B0<\CA\F1\98\C5\CB!6+\A7\98\AF\E2\C5F&\C7e\B1rj\D5\FDq\BCr|\92\F8\C3\F1f\CD.`v"!\BE\94qg7z\BE6тm0\E6\D2 \E2#\C3\D9\E3K\E5\A3\F2 \FC\F9/N\CEi\F9hs\F9\BDj\C1\E9\F5\B2\D3=\F6&z4\FD\C5\F1\BC\E3\E9\9C|\98\F8)\E9\FB\8Cځ\89\A6e\C7_\98lk\E1M\C5h\E46g'\CF1^\00\B1\F3\E0\F5:\F0\B2\DA\F8}\BEO\A4\B1f\F9ɜ\E9\F8\V\ACe<8\D0<<\8E\BE9Z/\F8$Yf\F1~<\FEM{\AC\EB\FEs8<\F6x xH\93f\C6\F6p\98\D9\D0\EF<\F6\FF\EB\F5\CD\E1\83\F4!\9E\81Ѫ\F4\8DD\E3\F108\8F˜\88S2\F1\D8\C6\82l\C7\CF\E1qy\9CM\AC\83\AF\9E\DEU;]ɥmM\DB1R-lN\EC_/\BE\9Fo\BF\99<\E3\E4,\C6/\C7/Lj\EC\E8\C2\F4\93-Ϋ\86<\F9\C2>eTf\B4;~8\FE\82ӓd\ED\FEfC\91;\E6\F4\ED\AB\89\B8sסQ\F3\C2eZ\FDE\84\86\E9\A8\D8\C9.\EC\F8\FE\F5\F5\F4uq\81\BD\F3&I\E18\92\E8VG\AB\91\F4\C1\A71\9A\F0w\E1h\92\81f\C4\E7O\E6#\8A{\E3\C2)\C3\F1\E1T\C3\C1ԇ\D3\FD\DD\DDa\FF\F0\E3\FF\E8\EBwo\F1޿ww\8BHs\FF\F0\80X\D3\EB\A6>\96\EB\F5\F5\F5\F3\CDͳ\D5f\93Y\D74M\E2\DC\C3\FE\B0\BD\BAz\F6\E2E\92\A7]\DB"0\F2\C3\8B\A7\C7W^B\97\D5{\BDg|\DBƩ \C9|bG\A8\E0}JT\C0[@\E5}\B4\86\E8\E9y\81`\C31fy?Z-2ˆ3 4\9B`\BCda\BA\B7a\F6C\FC)fz*TF
\AFn?<鴖\EEJ\FF9Z\D5\CC\E4\98\CC\F4$˷k\C6kt\F6\F2\E12\E0\8Eގ6\C5=c\C7\F7\E0\C3젧\8B\A6\97\B0tIb\D9 #\BC\B9p\CF\F5 :\BCOB\8AOL\90\E3\BB\C2\E6V\ADʺ\C1\84\9Eן1\9F( \EB\F6\FE\E1\AF\FE\EF\BF\F8\DE\DF\FD\DD\F1x\F8\F0\EEk\FC\F7\FE\E3\C7\D3\F0\E9\D8
-\AF<\9B\F7,M}u\89˃ \9Au\C2o[ \B6 \AEns}\F5\E6\DB\DF~\F5\C9g\88\97\88\90iQ^=\BBڳ.\C0\D9 \FD\C0c\94$&\DE>O\88A?\AA\FFT\F8\EB\A6+9\88\BDx[VO,\E0\E5\FE+8K\9C\CB\E4\DB\C5wL\E7yta\D3\B5\86{
\DEO\B65\D9\D2\D2 \98G\A16\B5\D3\E9\B7g\B7y\B4'{]\97\D6f\97\F7Ym*D@Q\C2\F4\8Aww
\EB&s\"\86\E5\87\D1\EF\EB\C9E\A1\C2\E5\E5]:3s\A3\A7GN\AE~*\DF!2K\\FC\90 \EEQ \DA\F8\E70"@\E2\F5\98<\F0o\8E\97\86\91:\87\B6\AA\B6\C7\C3\FE?\FC\D5\F8\E1\8F~\F8\FF\E2/~\FA\E3\B4\CD\AE h~ \F6\E6\81w|\A4\EB\BB\E9H\9EW\BC\8B\83 e: #ÿ\F5\B30X\E2\D7:8? \BB\B9\FD\FAt\FB\F6\B7\FFh]!<~\BB(\9E\DD<\FF\E2\DB\DFYm\D7\C8 \F0M<\B06\B7\91k\81k\95f\98;]
Sh\D3 5~1\A2!\BDy'\F8/\968\81L\BD\AD\FA<a
5"\96~k\A0\CD\BB\8F;{\9E\F3wlg\C0\FF\B8\8Axo2\A2\F8\D4a\E1?$%\9CQ.ψ3\89\E4n\F49\A3\8B \C1\CEfm\91\DE-2+\87\D2\D9sh9^S\E2\8B\F8T\FC./!\F2:\FC_\87\DFJll\96Z\E6zUQV\ABu\B5\82\87X\ADJ䏫
\B2\C0\AA(\98\E2\DB\EDn8\FD\DB?\FD\D3?\FF7\FF\EB?\FC\FDw\FB\BE\C9[e.O+\B8M\B5\E4^\B9\CD\EC\FA\F1%\BD\EB{\B2#\CC\E9\FBWkS\\96\95\E6\80z\97
\9B\BA\8Fc\BE\FE\D5\CF\FE\E9{\FF\F9\FAً\97\9Fq}u\FDɫO\CAU;v\9A\D7%H _L\B8\B3\BC#\84eV\C1C\DCox1\FE\CF1$\8E\A6cG\F4}R\C4Wa\89[\96^\E6\CC\C8\E6\F4%\9C\BD\8D 3)x\F3L\FF\FF\FC48\B7\C4z\B3\E7\9Cﶝ~\87\FEҹ\F8]\9A\95\CF%g\C4O\D6=!\85`\83=\F7\A2v\B4\D4跜"\ABvd\A6D\D3\CA5\B34\AE1 \A5I\9A\95U\B9ޮ\D6+\B8\B8\B4Hn\AE\AE6\9B\EDv\BD^\AD*\BA\83\AA\82U%p?Y\E6\E86\E0\A1r|\81\8B۝\EA\FF\E3\CF\FE\ED\9F\FC\EB\F5\C3\EF\FF}&o\BB\80YI|\E9ھ\93\A2\80F"\B1\F2)4\84\B6m\BD\A6ur\A34\D9׫\A1\80W\84\87ɗNm\8BDŽ\B7\9C\91\E9\A4\F7\B7￾\FB\F8.\C3*\8B\ED\F5\B3Ͽ\F5\ED\E7/op\B2$\F7Ʒ%\FD\88{}\B0c\C4P\F7\A4\995]\9Cb \8C~\F4Z1(NE\9Ax\9C\E8\F9Dڴ\E1\91s\99\AD9\E6:\8AH\E4\B9S;\81\FF9]\8Be\FBd*\B8\CC\EF5\DB\F2\92\91H6y\DC3c|dG\8BQ4`bz\A6\94ךe\DD#\BEI+\00&\E21foގu\95h\D0\DEh\AA\84ۂ\EB [\B9~\FE\F2\93O__\BD\B8\BE\DE\C1\98`bUU\AD`JE\9E!\D4\E9}r\A4P\C04m\D7\D7LJ\F7o\DF\FD\BB?\FBӿ\FFۿ\F9\C1\F7\BF\8Bp\81\DF`k\DEvR\F5 L͜"񩊳\91\F3YCv\8C\86\88`rM$ ;3\E1!\FC\E9\BA^\CA|N`\A5\DE7&
r)\E0\A2 }axh\EEn\F3\EB_^]?\FB\F4\B378 o>\FB\8C\97xqٱ槁\C1\8D\00\88\98A\AARx\DE\D91\D9\B1\E8\E4\E5jj\F4B3\A51v\F4\9A\E3_\A4\E4\E7~+\$\986/\E3\BBbn\E44Q[X\D5\E2\EF'\00\96F+g'c\F48.\A2bp>\B5\9D\EB\93C\D4\A9\B9\E0F\F8)\B3\D5
\96\93pC\BF$\8Fq\D1\D5MOM.&=xx\91\E5\9F}\F1\C5\EF\FD\C1\EF]?\DBnJ\82\95\C9!\93:}Q\FF\83\C85\F8\87\E3\FE\FC\FC\BF\F8\E9O\F4\FE\9B?\FDɏ\FE)KͦD<\CC,\E3\ED \9A\B2\BC\AE\B3*\C7D\D1i\DC\C1\97\82\B742R\CE\C5eLG\C6Xo\91/$\C8\D2T
\AA}<\D2ft+ZY6
\E8\D8>\BE\F7\F1\C3\FB\FE\D3\F7߼\F9|\BB\BB\C2\F5\80ӕO\C0O\EEUB\F5\F1\FA&G\F0\E5\ED\j6\A3g\F1\93\A9 \8Dtr\F1\,\A2\C8ۦe{w^\9B\B8\F02rl\CCED\9Ek\DC\DEcE"DȲ|\E8\94A\84\C9C\C87\C3\86섴BXf\82
\E1ǐ\EC\CEp\DF\E2\EB1\A96\8Bp\91_\D8Xyœ\E1f*\B7,p@
p\BF\AE̒\ED\D5\EE\D9\CD
\82s4qN\FA\A1\BB~h\DA\D2~<Mb\D3\DB\DB\FB\F7w\FE\E1?\F7{\F77?\FB\C9?u\CD\E9j[e\B0\89S\83q7X\B0\90\CB\C2`\A8\A3 \CB\D29\A5\94\BE&}
R\90\FC;=*\FCg/\85y\D8\8D\9B\C7\C6G%`\F4mk\A5\E6dc\C6\B4\DC`5/\8D\F1\8E\EF\8E\AA\FF\F2\C7?\C47\BB\DDͳ\9B\CD\F6\AAZ\AF\92$\A3 2\FE\C0\C0\DE\F8\E4\D2z\AF^ 7\A1\CBҦ\E09)V\93\E80\96\C3\EC\\87Z\94"\97F6\98\A9Ԯ
\95hԩ\F7\E12l\9EA7z&\AD\AF\F3M\86\C7\D0~~\E4\A3ک\9D\B2\93\B1\B7\E3\A6\C8\F40\E9'\\BCu#\A0\C0\9CW \F4\AC\8D\91\FFXRrI\E3\D9Iط!\E0푂\E1{\A1\87o\C0=4\A1b\EEOu}8\D6\DF\FF\EE\DF\FE\E4\87\DF\FF\CD/~Z9\C2dU\A9\8Bn\9AZ\EE4\ACЪ\87=/\D2[D[\C3j\B8\81\D7az\A8\E5 \B94y\9EK*7\84x\AD\B8\CBd\89T\A6/\F0}\B8Ʈ\EF]\AC\E6*
\FA\A3\88\FA>M"\8EܬV+\DAw}\FA\FA\B7\BF\B9\FD\F0\F1\F9˗\9B\CD\D2I\C4[\B6\FA\B0\F0\94/\85VG\E5I\ED QB쬍\E5S5)o"\8B\9A&\D89\CE,M\8A_3\81\AC9\CB\D0\C7dtQn\98\FE\E2\86N\D8\DANU{q\BB\CF\FB"\E9ɲ\85\C6\FC\EE\DCi\99ə\EDc\D0~\AAv\84\F9\AF\D9}Nge\B4`\9Eu8-@\F1\BAin\EF\8F\C8\D4i\B0K\99f\F7\FB\F7\EF{\F7\F1\FD\FF\F1\9F~\F2\83\FF\C7c\91't?C\CA[\E8\91\FA[\97\F4\82\D2\CA\D3\9A\CARb\A5\B1\E21>Vi\8E\D3\C4\D4X\B8\82\FA\AAD\81\97\9Dsg5#S\D75 \00\BEpJV\96aT\9D:\81
\FF\91>\90\94\EAL\D77_\FF\F6\AB\E3᰻\BE\DA\EC\9E5\88\A9m\93\A7\B9\
?A|v=\D3!\C6\C70\DF3\85_0b;\B5f\C2TY\8C^\CD\D9\C9\F\F0Ĩ\AF6\BE\E7\85\D9-\9BB\E9X9\EB7K\82\A2M\E8\F0\B7\EBI\98\8Cl.\AE]B\B1\CB\00\A6\A6\DA\E8b\C1⬗\E95g\96\CBa\A7\B4\C2F\F4c\B7\FA\B9\98=\F8\A9\8A\EB\8F\ECft8\9E\DA\FA\D8\D6\F5\D5\D5vU\AE\F0\FBH\EC?\FC\E6\D7\DF\FBۿ~\FB\F5\AF\F5\EB_}\97'^\A6\C8\F3,Ϗ\C7\D3\FEp\849\F4m\9B\97\E5Y7x="\F0U05\89hnP/(~X\AF>L
\EE*"Hc\D9-\D4n\E00蕴6,A\D76\C8*\86\DE*x[\9Em\8D\8CRY\95\9C1MM\EC\FA\BB)\9B\EB\BA\FA\F0`\BA\BAF\82\8B\C0\DA\D4G\C4G\ADs\C7f\D9\A5\A4X1G*;&}\B1Q\A2mZ3"$\BA\B4\E9\BD\CEGb\EC\C3M\8D5\D9e5k\BA\DD\E9\B0\E02,C\90]`s\BF\EC"\84\B38\E8\85\E0\B0 \9F\8Bz\84V\8Bg\E5Ǝ\E9\E8q\E6\E6\EBE\F9d\C2Prp\81\9C\AB|&\96֢W\9BΊ\D4 l\8E\80\B1^\E3\F1\EB\00\D3 6\F0S\B7*\8A\87\FB\BB\BF\FB\EB\BF\FEO\F9}x\F7۞\8E\BC\C7\91궁i\E4z\FB\FE}S7.\8C\E0:I\F04\95\84S\C0?\F5\B5`^Zt\D50\A7֦akQd\B2\8A\AB\A27\81R;\A5 \DFE\\9E\E0\84"z\DFi\8B4\BED\AD4\D0<Ŷ\A4,\8B\AE^®?\D9B\FF\A9.\F2\B2r02\C9,\E6|m ӳ_Q/\81B\AB]l\CFk虲8;C\A1e\93g\E6\D2:s\C1\CC\EE\A2\D0 \A4\E7\85\FC \97s\E1\E5.|>|\B0\E6\ACt\BEx@X\D6\C7\F5U]l\B6\8CE\83G\E5\B8%<<\AF&\8F\CD\E3\D8\D2<s\92r\86x\FE\CA\F5\BA*W|\95\CC\E5\F6t\EF\DB\F4\B7\BF\FA\F2\FF\FD\F7\FE\9F\FE\9F\BFD\9ED|$w&\CB\C9`Fo\EFO\C7#\EE'#N\CAžg j\8E\F3i\92NEN\ED\CAѶ\FC\E0\8CB\EF\98%\A5\A9\9B\A9Vᩛ>E\EC\A8\9D\85\BE\E7\CA\CB\F8G ^\D2ڎl =\F0\8EX\9C\E5I\B0R\8F\D5\93k\FA\EC!\B4M״ê\DAl\B7}nIceJ\AE\D1X\DC \8B\A6\A3&IS\DF\F09-\80\AE\C0|X\BC\9F[#\E1\FC\96M\9F+}D1\8F\C0\D6\E3o\8Eu\F3\B1\E7\83Y\94\9A\C6\89$\C61\A14\DA\C8+Uv
\E0»\F2\E3\A7[\DA\F4\C2O\9B\B3B\EEhb\F8\A8\842U\B5\CE\F2B>aZ\B7\DD\E1P\F7o\FE\E6?\FEſ{\FF\9B_e\B4\A5\88k\B5)\9CMOM
\F5\9B\B7oaU0\96"c4\E9\A5Ph\FA)db\E6+\A5\8B%\F5\B1\A3\D6\E0\F2\CE\C5K9if\BC\FF\9E]\A3 \B8J\8A[\92<\92\D5a}\D7\D3q:\89~R\F8Lд\99G\EC2;g'\F0\8A\8E\DDP\DE]\AD\EF\EB\DFxu\98Tߵ\F0\88\CD\E9\88l\A0(+|X#!7F\B1\91\BFfͲ\897\E2+k.z\F1t\F3&\F6\82\ED\C7…\C5<.\A5\A6\E761ǖ\8Bz\EB\82\E9K\EA\9A4\84\F3\C88s\FD\C6v\90x5\EDȰдD\E8\91A05\A4b\AF1\B6\B8\BC\9D\D3%M\98\ED0{\AAXPv\894|FRl\83\E4i\D6\D7ͯ~\FA\F3\BF\FD\AB\BF\FC\F7\FE\BF\8Eo6\C4 \D8\D0n\BB۬\D8׃
}\FD\EE-nn\CEZ\80[U+\A0\E9\B2,k\E2N\96J\ED \D1";<S,\90z\B1\84~\C8\F4(AO/\D70\B0\E8\85< Rt\AC\B2 \A4&7\C2\FF\A9l\D8mdM`\A2i\BE\87e6\C3Xl]l\F4\C6ւ@iv\D0\C7P\88?M\D3Hc\91\81 6-\DEv\90\BE\A9E\CA9\93g”\B5͌7e\9B)\86\BB\A8Y\CE\F5\F7s\F9\EE\DCԳ\9B\B1\D6T^\9DQ\F3Y(\9C
T \CELx\92ڰpg\\C1\A6\BD\ECd\8F\B6%\A5\F1\B9\DF|\9E{/]\B2\DA4ƙ\E2\AFski\A6\CE,\88~\B4:g\81\858n\FB\AF~\FE˿\F8\DF\FF\CDw\FF\FA\AF\AAUZVe\D7\C1 u/\99\A2o\EE\87Çp\DC\F5\F6 \F1?\8F\82d\C81Q\DE)\89.\F8A\9A\E2 \8D>z\CF\F8\C9\FB\00\85h\D6j+\D2a\AF\F2R\F1\D6t\BE\ED\B2\9D*@l*O\8E
\BF\DCKe\C1%\E9#'\D8\E7\C4K\A9\B6\EBڈk-A\BDںv\93\F0&\E1\F1–6\DF\E1e\86rXgj"\86X2uq<\FA\88\9C,!˵\FE\E9F\8B9w\DA^\B4\8FB\A4ɛ#a2®tY\BA\88\86\8F\F3\BB\A9X\B9@\CFgܔ\B3\FA\D6\FC\BEh\E9~\CE\FF΍O\DE\F0\D8´a\D1\9C8@aN\E5By\B60F\9B\91\DB\CCZt\96\A4\AB\AA\C2~\F0\BD\EF\FDٿ\FEW_\FE\F0{ijϾMYVpZx\F6\AF~\F3\FE 3B\E4p\BB\FA>\\A4V\D8vm\96\A7\F2*C\9E\A7e\91Í\B5M\AD\84\AC\C0\DA!,\80\F6\84W\C9bk\C8\D6f\C8\E8\DB.\CC~]\8D)\D8E
L\CFS*\B6\A2\90\00\C6
\CB\B1,\80Ò3B\CB@>e\E33\D3+\80a\F4\84\F5\D0)N\98\DAiS<g\C6J\EB,˼\E0\9B\F7\83\EF׫5K\EA\D6^\99\A4I\A94\82\B3[\F8d[P\A0\95Y\89O\94F\B5\CA\E8\80\85\A4\8B h.h\EF\C1q\82v\8C[f\D90\9A\CA\EA\B1#Z\B7\E1º\9Fjm\86\C9ܦR\AF\A9\FA%_'a\F0f\81\F9\97P\C0{E|\E9j\BB\FB\F9\97_\FE\D9\FF\F2'?\FB\F1?\E4O\BC\97\83\9B\B04\D5O\A7 \B0 \D0\E7\D8u\00FJ\C6\D1\D3/\BDm.\F1\B4\F2gn/\D2S\E2\E6S\95f!\8E \AB\B2mK\CF\C2\F4P\DAG\B4V\92?\DD\C4\E9\D8\E3\E1٣\94v\CF\C8\CBc\85Ƒє\D8#\A2w\E4\D3$0tV\A3\8C)$]\ED\DA.\\A5C \A5T|\A1\A8\DF\D4m۰\8Cš\E8p8ვU5\A2\8B\B1\9A\A3L\96Ĝ\F1\83\9DL,\\92Y.3*\A3\FE4\Tȧܢ`\9C\CB\F0\CC\D1\E7\9B*RS\D3\CF\CD~J\AD\E3\93,ڙc\CFq&'\DB%S\F4b\82#\F2ѭ\BD COf\A6L\D9\CE\CC‰\EAy\F5\EA5\BC͟\FC\CF\FF\D3\D7_}\C9qqE\86\F5'\B6\FF`Ut \92ҧ\82\90\90T)\E7l,&\FA#\E9\E70t齖\F27ɐ2c\81,@B ;½նf\E4sNH]\B0\B8O\AD8m\8Ba⛒B\E4z\A7\D9t\92\B6c\EA쳫\FE\83o\ACV\AB\\DE=,, p\A8\91>I\89\DEL\91\E7jOEYЈ}\90\C0D\BB\B0Z\F8P \A3Dž\C4'\B0b\851\B3Q\96\E6ɏ}\82's\C1\C3I\8C]\C6u\F6\FC\9E\CE}\CDi2\A6\AF\DF8C\B1@Dg\\D0\D8I-iJ</bs\A4\91,z\E3\BD\A7\98\90φm\A6\B6\8D\8DM\DFh\85R\8EќM\CCk\91.9\B1T\C0\F6\EB\EB\EB\EF\FF\FD\FF\F7p\F7۲Dbp \A4 \E5\8E\C7\EFJ\96çTU\85\97\CE\C7\C3Tnp9\9B\D4\C5\CA\E7pw\AB\A2\00\EE\CA\C8\FCdVX\B1\AF\CD\DB΂\B5D\C0L\CCB\AB\B5\B8\94\B8\9E\A9\8C\F6\90J%\B0a\B3\C8 e\96*Ŋ.\8Df\93\94\E4\EF\C8[\CD\D2M\B5*89\941&)~\DF\DB\F5CLf\BC\F4\FB\E1\C32\AB\95\D2]?h\D9s\D0\FCr\AA\DAk0\85a\C1\F4i\B8Y\A2=~/\F0>\8Cmo)D\FA\85\D7qt;FMkg\F8\A2\AArF\FA\D3\CB\F0\85豒Κ-\8F\F86\93+Z\D9hOg`ɚ\A9\9F\999n.\91^\8CyM\BE\C6>U\A3\9F*\C0\CA\F4:ef\A4?\B58\83tL\91s\BF|\F9\E2\B48<ܯJ\B9Ai\B6\DBn\\9E\B3\F7\7\ABUU\E6\E5\C3~_\95\BC\AEx'\C9?\C2+K\B0\99\E0Rd\C0ѥ"0\EE\8A\C6;,\A6\CA\F3MU\A6\AC\B0\90\A8
x\8Fg\AC\8A\EF\A1HaN\E40){\83\EB\D5
6\B1[\ADp7}\D7R\80!Tb\B9\B4\A7"\87e\E0\D3\C0Jq\DB\F0\A3\8C\00ѥ\92L8\D8R \E7*\{\E9\9F \88\9BXƳ\9Aj \C8+\DF\D8O\A6J\FDl?8)\BF\E9%\C3x*\8A2\95\CE\C1\C8|\F7<\90BpviYܚ)\8C(\97r\91\FF\C9\99H7K,-\F5</M\88\F4Q/\E6\A3B\AF\B1\CB9\9CW7\E8\ECX\90\9A\9F\DA,h\83\C1\8E\C4gg3_Ԥ\EC\E3\BE\F5\92;\DB\D3\FB\EE\C08o\AC\96\ED'F\8A_\D8n\D6\C0\C9w?\E0\D4뱶.9uC{<\B1\AE\93}\DBrctZ\89\CEH\D8\G\AE\84\FAG \A4\85L\82C۱rA\9F\90\E2ɖH\93\FB\FDO\B0ެa$H-OM\9D\8B1\E1ޯY\98\C5慄\CC.\D2s\F4=\8C/c\EA\D8\C3y2\A5\91\A1"K-
\B8%74\CC$^$k\ACC0-\C0\A7\EC\DBFʥ\CFѴ\DD+\AC\BE\ADk/\EE\96V\A2\E1\8F͟d\E0\D0bB\E4\E4\E0\A96\D3\F1Ȏ\F9
\A2'\DC(\87\95& #V\92\CA尌]\82\A2\88\EDr2̚\B9\C1\B8H5\AFB\D3z\BB\AA\F2s*K$Ϲ\91(\F4\A2\E7\B3$\E2$'\87s\C1\AC\8F\D6\E7G\92\E9\DD*\F5g\F4\A3N\A7\B5\9CvӗT\99ȺYyv\B3"3S\96\84\E2\E1\A2\D6H\BD߬*2H\F3\BCn\87\FD\B1\E6
_\A7\93A\EC1\93I\97Kke\B0\91\819\D4M\FD\EC\FA\CB\CC\E8;<qӶ\B0\89\84w4߭W\9C\A0!\D5O\87R\F1.\80\B2\F3\849\81}8\D4u\D3\E4\F4h\AC<\B5,\89\8E \BE\A6m\FBc\DD\81_d\EFL\D0J\F4\F1p<\B2"A\88x\FB\C5)\CAhi\E8\8C!߁>u\E8\00\E0x\90\F8\DAu\DFö8\EE!\FE@\93#~\E3H\D9^J \E2\9C0\CE\E11Sm
V\C2\CE \8Dɢv\BEz\D0\F9^<V̑\A6\CE\DB=f*簔%\CEb\98xiJYY6H\BC96é
\E9X\A9:K֜=\C31Ey+t,\B6\9C\9D[\93P̌\CF,\D2ɕ\A6\8A\B1\93p\9E<.\AB\A6ޟEOkGN\A4zTfX\C4F\F8\F6nd\BDƓ\D4m\87\FF\B2\8Fv\82\AF\CAq\E3\F1T\AB\F5\8Ae'i$\B7]CP\AF&\D0\A1\EA\C3\FB\F7\81-\A5\CB\D8\D050
xA\D8k\91\C5ːLn;)\F0\C8\F7RdaEV\B2\99#pI\85\D4-u\F8%\F8\8E4\98u\B1\DAv\9Dg\FD\D0ѨaX\E4\B1\D3/\E1wڞT|\84\AD o'\95\9A\A9\BD\DF\EF\EB\AEC\D8
^ \AE`Z\9A\E40Ю\97
V0
\BE\D2 '\D1\p\9A\9A4M\C3R\88\D4\E5\B5J7\B5\8C\86fp\DA\CEL\A4\A0\AD-L\9B'&#¢\94\AAɊLAqhGݾ\9B*\F1cy\BCL\DDs@|\F6XOMK<9\BCa\BB4\BF\82s\93u\8F5\E51uMGJ\82\B1nb\C7\D1Y7 7R
\9D2Y\E5\D9Sbv\EC\A09$cNb\C4H\B7\BBAqY\ED6[\9C\E6\A6k?\BE\BF=5\8D'\86\E9\C0t䑊W(xpm\D76^\CC.\AD\C5m\F02r\C3\CF\85x\E0\DEuY\AD ֈ\8D\80\BA\CA\D4*ix\BD\D9\F1WL8u\FEW\EF> \A6m\ABf\9C\97nW@\EC\CB
#3B\80lBo곡\F7\9D\F4\F9\D8\807\EDۡu$P\00\FE\B8Ɋ\B57#\9D\E9\81 ej\BF\FC\EA\EBc \BCF&\88d\AC\F7\E1д\87C\B0x\F67\DB
\DE\CC r\EA\E0\B5\CA\D4\C8
\9CX\F0% \C9\E44\F1\94è\BE\C0\FBOJ\F0~\82\8A\B2ľ\D3\EC\93\C4hP\E9z\BCI\EC4=o\8DS\E1 Gu\E1\B6ӣ\F6\89\92\DA\q\8E\A4\F5\D1c\D9\C8A53&\BEi\F4ba\9Ds[*\9Cu\C45\BE\E2RJ\BA\9E\C0\B9\E0E\8E\87#\8E\FB\C3\FDN\BE˘ \EE
\AD\9FuB\D34\F5 P8Yf\BE\DA7\B9c\CA

\E8\9E\C04:\00\B2u\91\92,\9Fg\DBu\E1䆥ljg\C8\00\C8|2\C3\DD\C3\E1\FD\C7\FB2u\AF_\BC\E2\F9up*Ysj\AE^\DE\D0쐎\B5m^}\91\80c\9A\9E@\D9:`x\8EA3\9Ex\AF\AEi\EFu\87\AF]جV\EC?\B1\E5\B9$\B3\AB\EF\FD\F0K\FC\FE\BA\CA\D7e\81υ7\C7wa\C2\FD\89\C8N\F2\F6p:ԍSF8\C2(\00;\C1z`\B9K\B0,\B5*VyY eQ>.\90\BD\D4D\AC;\E4\FC>\99[\C0\9D\8Aғ\A7XL\AA7q\BBkQćj\FB\00\FF*\ACW\9B\9EW\E8c\AC|$ܰ,bE\AF\A3\83\E7K:\C3\D4?\BEz\9B\FA\87\FA\E4\D3\E4\CFY
\C2\D9'2\D3 BF\A6l\98\8E\ABSi\C6ʲ\B5\85t\9Dq\86Ou}<It\C3@\CF\C4d;\CD \B3\A8%E7Ƕ\F6
`\D1 AҔ1%\DAn\B7W\BB\F07rCd}\DB\CD^O\89d\99\FE\F0\F0\B0M\D3\E3\C3\E9\D3\EB\DD\E7\9F~ZeG\C6ip֯X\85\F0E\C2^\8C\C5U\EE\B7+\B6BEBK谔$e(\B7\AE\A8\CA\F6T\E7\E5\BEi 9\DBz\BB\A9\9Bֈ\A2\CAjU~\E7\F5\8B\B7V r\D9\F5\DE9X\00\z\B56X\B8y\B6NӐ\98\E1X3d\93 \FE\C3hy ~֗r\B4\F0\CF\D5ju:\9D\94$y\A6\D1 2\89\D5X\E8\C4\97\E8JY\ACg(;V\84\91&\A3$F\EA.@\87N\9Dh\E0X7'.\DC'\FB\A8
\B4tT\F3\BC\96XƢ\BC\96\B1ra!&\AAK\F2\E4\C8T^\90\8C\FDg8\A8^P\88<H\AE\AE\AE\AEV2\A6\878x:5\87\E3\A1g\E50\ED9'\D3µ8\A5U᮴\ED\C0\AASk\D6\E4\FA"Y\83\E9T\00F\A9+\F2dU\ADv\EBj\9D\BB\B2\AAv\B0\AC\CD
a
Ƅl\8E\A3c\F8\A7\F7G:8\CF\FC\C0\A5_|\F19\B0\FE\D7o\DFeU\C5!\8E\B2b\C2n\8AK \98\D5ק$$\C8MF\D1r
\EA\A6G\82v\B5\D9\C0 \ED\EF\EF3\C0)\86O\CAAf7\F0\9E\EF\B6\CCO\8DEʘT.M\8B\87# \E6\8BOo~\FB\EE\E3j\BD.\8A\ED*\B5w\87\E6\F6؞\FC\80\A4\EF&\A2\89!>\B8v-y^\A4\BA+3\D6pϤϱ\DD\C97\A2mB\C4B\DAHb"O>\98\A7\8B\EFqq\AC\8D\9A\91,\FDolЉ`@\E49^X\D5e1\E9<=\ABZ]>\DEL\F3?\8Bv\A1\FB\D0\E1\92Bu^.\BBxų\A2\97*\F0\A4Y\F7\BCo\B6\9B\DDnWO\88\84\FB=\FF˚\BD \A7X8-RbB \E2\C2;\C0\87^\97\9C`\ȶ\AA\AE\D6=\C5j\B5٬F2kQU\8CW\D7\D7.-|p\80q@\DAH\CANo\CB*{\FDɛg\9B\F5\FB\B7ooo\BB\FC)\8B\BE^\B6%k\E5\00\FF\E0\B2\B00/E\B0\B4,K\D6\D8q\B9s\96/\9A\BA\97\89\FB\8E\F7P}\B5\DE\E23w¢\D6{\F8\FC\F93\DC\EF\C3^6\E0\DDt\ED\F0 \81Xpz\8E\C5\FB\DDv\97\BA\DEԫ\FB\E3\C7\FD\E9\E3\81ò20n\90\A9\C2႐\E5\D1\F7l\92*\AA\ABr:K\82\92O\BDA\92\E8\95T(\CC볂\D0LvB\98\A7kt\BC\8A\F7oq\EFd\BB=}M\99\BF\9F[\85c\FC\9AyZv.6\84s\95{Nd\9E\A9\F3Sfw!NrA><{Kge)~\B7\D9]\EF\AEU\E1px@4\81?\C0\99\DD\EF\F7\9A`G\95\90\D3\CB\00\97N\A7\A11ϲu涹[\E7\E9(jU\EDv\DB\EDju
\B5^\D1\CE6Wx|\81_\A8V\C0IH\BD\B6\D7\CF\E1L\8E\87\BBd\E8n\AE6\EB\CF>\A0\AA{ \A17\AF\DE ΰ1s\BAA\EAH+\97\AF*\E4\86Y\91\E6]߲\E6.\93\F9\8EUPS\AE\D6 T\E9\B19\D6)s\85\a*\EF\AEs\B9O<]N\8B0\8F\9B}\BD\DB\E0\9C\E0\F9\D2\9E\83\85`\DCG\9C\A8\D4nov\FB# \FB8\C6n\88\FD\BD\A8p\00.\A3\94\C00d\928\9B\91\94\AB\EA!\DA;o۶\E4O\88\D5?ቈ1x¤r3\A6\EEAЕ\F7jI^\95\AEc\FA\D8[LaN[\A6O\EBfM\A4\85\B3\99\C6G\\F8X\B3\9F$\8D\96N\EB2\EE=\EEU/lklE#<)\C8kA\CA
W\AB"\99n\E8\81|URL\CA\D0L\98rָ\D3m\99\E1m"g\AB\B2\E4jS\\AD\8Ag\9BճM\B9\E3t\F4f\BD]?{\F6 \F6\94g\C2\9E<\AF\90\83u\F0\8E\EB\F5֓\BAn\B7\D7ۯ~\FA\E3$\81)\AE
\9B49G\A8\8F\F7@\EAYϲ-@\81`\C4&\E4y\AD\A9\A4\9E\FF\82\C9\C6RCc\9E\9Cf>m񑪼TN>mQ\96fx\DF\8B\E9=~s\E5+\D1H\EA3\B63\A9\91"\B6\C6ٮXq\80\9B\B4\AEb\F3'\A8q\B2\EFOA\AA*drËxb\BB\F0O\BB\D6}F\AC?`\CF\E2E'
(g\A7\AA\939S온>K8?1b\E0*\E1\A7I\90\A4\D1 \C9"=#N\99qHa\A4\ADX\BB\98R=\A3Q\8C\A5k\97,\97\8B\D0<
\CDBj\93\8C\8Cu\F5{Φ\98B!\C7:\87T\94\970`\B8\DE\F7o\89\82\8A#\98\A9hE\E1\AE\C83 p\80\F1﷙\DDU%|\C0\EB\E7W7\D7\F0S\BBg\CFo\80Үi_\A0\9B$\ABXG|\82Ѥ\94\F2C\A8\84\B7@\BA\853\F9\E1\FD\D7\CC7ϊbESvl^\B3\C2H\88_\88P*\EA\A4\D7
mW\AC\A9Z\F2X
\93"%d@\C65B\8E\C9+\BCV\A4lJ\B6\B89=\F9d:+\A19^1llӶ\F8\F4\B9vcr\C0В\B4\B2\AE\A9\9B.A\82\C9\E2,l\A7m}\D3
\87\89|\D7\DA\F3\BD5M+\BA\88 \CBu<\87\83\DE\C5a$\93\F1\AD\9E\F7sù\F8\D0\C5T\F4T\8Cd\9D\9D\E2\84^{y*\80b̂\E83\C9ɤϟ\F1b\CEC}\93\92\CC8n\F9:\E3,\FFe\EC\8B\CEV\00\D3\E4\BD\C6T\96Nu!1b\A7TU'\F0 \A7\D3q0ˊ\B7\EF?\9E\84\AD\D0K~\AB\CF<\AA* \99s\D4}\E4\FD\E0\ACjS\A4ϟ\AD_\DE\EC>}\F1\EC\C5\CD\F3\EB\9BW۫\AB\8A\D05\DB6\F4\80߽ ,h/\96V\E5 n\B2\AD]\B5ɮ\E1\89J\A4\9E\AEA\A2\D05N\86csVY\DE~#QI\00\91\A4\00\9Cʂ*+\C0~\F0\C4I*!\A9\90iXXB\EB\803\9E\E5Y\CDY\9DU\D7\D7CT\9C\F4\8C(\C1\B6\A6\83(\91Ze\BA\B3\DDA\9C\CC\E0ʢwR\95p\D7\C16\D5`ʢ\DC\EE\B6\FB\B3/tE\85\A6\B8*,\BBPP\87c\A2S\B7,\EB\CB̏$Y\B1\D4\E0\E2C$|\AA\AA\C0\F9d\CDYXSn-\FCf+\FBT0{?u\BA\9C\C4X(\B8\98)\84\CD\F2p\E6&\EETXH-\89 \F3\\EC\A2[\BE\CC=\97\A9\E2\DCm<\B3\AA8\AC\9E\D9\AD6\BBwn2\9B+Q\8Eu\D2DhϹݪd\E1\C7\C0\9DU\91\BEX\AFn\AEWo>\F5\E9\ABW\CF_\BC\BC\DA]\ADvװ \97\CBP\85X"\8D%_k\8B#\8E\C0%C\C1\AC\F0XS!>\EBl\EE\B0?"\F8\9B\8D\BA\96\B5\85\AF\E9 :\BC\81\B7\8F\90\87\84w\96Т\A8S\B8\9D\FEP\DE\C8\D7FZ\8B@C\83\EFbzo\F5I\E8[%`\9BBf{H\C4\C13{$\B8
9d\A4\86\9A\DEh/!\CFZ\F0]b\8A2-\EAb\00\A0\D4A\C2(wC\FBf\9B$qڋ)\AB2\A5\A0R\AF\87G\88\FES\CB\CFJ>\B3\B8\DAB[jDG\B84M\A6\EE\88"`\F5K\E9S=\E0\E54\FDr$u\A1\E9 \A9EOzW\FA#H\94J\AB\BFT9\EB9ک\D6\E0}xR='\F6\CF\E5\E9\E9\F1\88\DC\DD\A3\E8\DE\D9;\83\FFo\9C\A87\AAa9\C1R7\DB\CArd9}q\BD\BEYWo\E0\A3^>\FF\EC\B37/^>\DF]_\E7U\95%\D2*N5\D1R\AA\96<\C08\F3$"
Ly_\854\AC\AF2n\E2\96q\BA\81\B4ѡ`A(\85\AB\83\F9\00fN\E4q\95RID\A7}:?\DDoNI\F3\B7\81\E0\E0۔/\EF\83N\DA\C9YU\85фa\D9\F7\9DMD \A18%!\CE]kVRO\EA\C9\F4r$\92o\98\92\FB\8F\E7\A0\F6\B1\88u\FD\F5\FE\9A\A6_oV\B59!\80)ʼd'Ԏ\E4-;\B6\A7\9C+\98\F0c\80\AD\C0 D\D1a\A1Q\C9Ȧ\85ʹ\AE>\8A\8A\CE\\84\E8Gj\F396Z\A41[\9C&\EC\CEuվq\AE\F5\C9A\EA\B1 eU.\00~I\9B\D95ۅ\CBT}\8B\83\98 \99\DAT\9BuS\BB٭߼\BAyy\BD{\FD\EA\D5'/_\00\89\EFn\9E\E5\DBMW\A40 \C89w\D2C\BA\9C\AB(\EE#}1;\8E\D7­R\EA\84h\97*5x\E7\\E7\FATx\E2 D\9Ch\907\E7P5\95U\QB\AA\A7|*<\87\F0֩\B2\9Cp\FC\955VU\9C\CAT/P\85O\89WlQ3\B7\E7$){\CC\C1\88\F0a ^eP\98C%T\B1$9\C9@\87TAuf\A2n\ABP\BB\C3\E1\983'EV\D8E\E0+ \9E\F0\B7\92YR&,\F4g\CE\C7 \BB\E4\8A\D9(\DC6UXK/n\EBD\B89\93d Y\E6q\AE\E4\91\C2\C7\D2V\E4X\86YinY\97Z|\E1/\A75Fu\A5\A96\C1$\E4\90\F9\AA$\B6 \B9X\8El\DD,\A9\86\BEsiR\96+\E6e\C3ps\BDݕ\AC\FE\CE\AF_<\89\C4\F1o\B5\CDW\9B-.%\C5\DF\F8\9A)#\87\F2\B8b0\95W\86\B0\98\F5\8F\B4\B5<\81;+\CA
W\9D\C5\D8\F5Z\93e\A2\E0\94C;\89\D6uT\96(I\83\B4l<\D2\FE0\84\C8\E6\F4\A2\E5\C2L
\AF\D3\F75o |\CB\D2ߑ\E9\CBYE\AF}\D8A\BB\F2*\EC\86_\8C\A8KU\DA\AFӱ\B5,\F9b_\AC~#\A8#\BC\C2ê[\D9\C1\C5\A4hƶ\EC\89+\CB\F0\F1i[c\00q#\95^ \9F(\CD:Ӫ\A4Ү\A5V7\B0\A3\B9x8Z\E9\D3u\CB\FB'\D1}\8D\A2\B1Z\F1T\84m\CE)\A7R™\99\F3\E8v^G\F0\E6\\A8u"e\8F\E3\8C
\B8\AC\AA5\B5\DDnq\q/\D24\ED\BB\90\FC\B7\F5\A1\90\A6\D2\C0$\F4\9F\DD\\C1\9C\B6e\F1\E2\F9\CD'\AF^UU\F9\EC\EAz\BB\D9U\91\92\94'\97,2\BB\C85S\8A\DC|\84\E66B"\94_\\AA\96\8D6BND\B5\C8rv\9A\BA\B4\9Ea\805!ܣ\D3\D0\F5A\84!\C50\FC\DCK\95ivx/\873\A8E\91F\FE\83\E7\A8\F4\C7̏d|+=\CFf\83\A6M%\E2\B0\E8\E2]\AF\936
$\82r\B3\98\9A\A5\A4v\C2œrV\E2\84\E4F\FF0_r\D5\8C$\A2\99#SDI\9C\8Fp6J߄I\CAk9\E7Ǿ@?,nk0\93^59\ABs\E1j\EC\BDpE\CB©*y\B88O8\AB\FEi\8C\9B\98\93\E4\99 g\A2\FBOM</\D5\DE\C2$\91;%#\B0\A7\9B\9B\FC\ADՄINV\9F\8EeQ\C0\E7TU\F5|\9D}\E7\D3\EB70\A8\9B\AB\B2\ACV\E5zS\AD\B7\EB\DD\D5U\9Er\A0@O\968*\DC\8E$8\F2W\B2:3\D7:\C1.\A9\8E\C4 Z\8D\E3S\B8g%\AB\FA\C3 &\95
S\87\DA\F0^\92<\A9\8C\AB\D2\BD\C4qEZ\9E\89h\85$\88\94\CFb\E7 \A4¨\E8\C6!?a1}\C3\D1gQ\EDPJ\82\8A\C6 \82\A9\FF/\D5\DAi*\E8\A7\BFT\AF$\AC-Ol
\CFcm\84*%q%„В\8A]\90n\AF\8C\87\B0\94\F0\F4K \AE/j\A30\8F:q'_\DD\C4n\B0*nf m-gǼΟ\C9\9A\B0\A4s-\BF\D0f&s\B9\F4[\93\A4\D1Ԁ\8A\F5\B7\CD\C6\C0W \BA\87/\E9\B8\B4\F2\D3\E9ȃ\EE\EC\AEB\90\B3\FF\D5\EF}\FE\BF\FB\ED\DDj[\A49\82"Ҧ\F5ն\\AF\92\AC4\D2c\EE\B5 \92L\D5\ED\94\E2+\F5\8Bi\A4x\860 \F2!j\B8N\\81:]\98 Ǜ5t
\C2ӧj#PL$2\92\CB%$PU\A5\007\FC\C93Խ\A5\A1p\BC\8739$\B0jߒ\960\AFK\85m\E8E\F2Y\C9\EFp\9F H2JԐ$\F7A\C2\DF #\ACCo\F0ڊ\F0a\A2\99\C8\EBZv\D2/\831v\85p\E4g\9D\8Dq\FEb\D8be\DFk\C9\F4L\871
.t\F3\85_0\DE\CC\C5~\84\A5\9C\D7\E3\DBY\B1w1H=\85ŋ\8A\C3\E4\B590i\E4_j\8B?[\E2\E9IRͥ\B4\AC\C0\B9 X\D5\F1\00\8B|f\B7Y!o\FE\9Do}\EB\8F\FF\F8\8F\DE|\FA\AA\94B2\9B\ACȀ\BA8t \9D\A0\93\81,/\A9\9Ft\CDp\D8yL\A8\CF$\D1\92\B4@\A4\AF\C9@\86{do\AA\BA,\E1<\F5f,\A4\CCAT$\89@\CF6\C9\E0$\D0\E1\D0\E2>\E3\86"tz\95۠\FE.\BE\EE\84J\E6\A7R\C1\8C\8D"\83}\8E\C8\E5\C9\E9\94[Z\9B\B4S\AAR\9C\ADQ\B8\C2\89zВ\81\CE]'n\90\F1i\96\94\DF;\C4kT
O{t\CEM\99\B8\DAy\EF\9BpqY\A2\D9H\AB0g#Ux\D7\FD\E0E!bn*&\D2\F0\EF%\9B\B3\81U?\9B\E7tO\A3\3\90W`\B1\B5^\BE\EA\99H\97y\A2\D6\FA
2$\97\BAd\8A\A2\90AK\97^'3\BD\92$\87\A1\93y\98\F4j\B3k\8E\F7o^?\FF\A3?\F8\CE'T\F1c}&\CD\00+\8C \A7Ft\E9\F7\99|%&q\E3
\AB*\8E\B1\FE\CAF\FF\CAvP \8B:\94
\B8kU]ME\F1|\DC\C5Fu\00)*\C2C\C4m#\C4L}ߒ㕰Ԯ e\A0sb'\F8v\F0M\D3ѫ \93\D9|\9Ee\BAa\9C\AE\B1N\E3\F8^\88\AC\F2a\C3ya\B8\F7tS\94\9Bt㉺\88D\E0\DAXe\D4R\96
e\8E#gj \CBy?\C2p
\90\88\C2\C4b\F5|\B1@\88\F6\E7\A5i\86\97\88/鹸\F5\C2\FF3;a\92\B1Yn摚\F0=p\E1\E6M\DF\DBo\EA.$\\A24\D9\E8\81\DD\C7;\D19\92L\CA\FD\E1~\9D\99o\BF~\F5|\B7\DD\00X\B1\92#J,\E0\96J\F5\F2tK\89N\AB {ȋ\F4\9FΔ\9A\98\BF\92\B8\A9\95q\E7\89h@F@.\92
\DD\D08?-3\A5
\9C\DA󽒨L*5I"zJZ\86\D05\8D\\DC\CBX\BEK\BCk\A9\AB\D32\9E\CF!A/#^.8)~\E2\E4S\90)'ۈ\83*\BC\8D !\BC z\F4\BEbP\92ܡ\FA\F4\F6xj\A1\ED\87\C5?\AA%\B8qSШ\B0&&\DC\E4\BCVӐ 7 /\EBJ\E3Y\FF\E2\B4\FE\C55\E37F\DA\CCc\C1\85ǫ%\AC \8F\B9\AA\D3x\C5cy\A4y!\CC\DDa\E6\9E&\FD,\9C_‘\AC\9F\A1i`\AC5R}\D1)\EC\DB~\BDYK\F9ǿ\FA\E4\F5矽b\AF
Q\F7H\D2I_wJ\ACX\8A\8A]\8AnKo\C7RM`\8AG\85K\85\9Em
\89\9D\CA쪬G\88R R!\9D˄8]!\93\8EF\B3*\B7 \B3g`\9C\80\F9\E5t\B7m\B0N] B\BE\85\BB\96\9B\9CZ@\B4'\DF\F6\AD
\B1\B3@\EET*\93\B1\83PNM\E8\BCH\99x\FFza1\C3'Tہ\A5-\FC` k4K \89\D9h\87\E5\EA\A5'ZXw\93CY\CE\C8\8032\89}F?\E5\C7\E3\CDx\ADT[WF\AB\87IG4NYD\ED\86e޷\A4ݝ\AD\C40\B3\B2\A3\8A\EC,7\ED\CCJj\AA\F3\91\F8.4\C4\CF;?O\F83\B9\A9H\B9\F3S\D3*4R\BD\A2\90\BE/+\CA\F4<\EC\F7\DB"\B9\BEZ\DD<\BFFV\98f\CB\D3aq>(\89HB\94\F5x\ECC/.\C0\AD3\93\EF\98 qr\D4I
5X\95\95=\CEX\CCs\9CE\D6mm\D2\C6i\8B\9E\BDBQ\AE\A2\A9w\F8\9E\AC\93\D1h$Z\94Y ]\D8 IQ".\B5u\E3+ac\92\CEw,\AF\FA@\8E\D8\E0\AD9\C5\DD3\BAU\BAfv\8E\F9\9E8=\91tRQ\88
>N\C9X=&\00v\AA\C5\C5L>\83\C1׳\B8aݤ"h\8D=\93{8+-\C5)\A9\9B<\8BD
\CBh\A6lAE \838}8\F6\E3ٛ\A5\FA\A4\8E\93^T\C0/|ƴG.N=\8F$\F4\C7$\F7 \B3/M[\87)\96K\ADB\97\A3ُ\9B\95\82\AEp\F6\E8\98\C2R\813FQ]\D7\8EEY}\BC\BB\C5;Z\ED\D6ϟ߬V\EB?MEM\CFOj\B9R\C51\BA]\AEWM)\98 \98ׅO\81eG\F6^H\90\E9\B5\D4\8Bс\8E\AA\F2\AD\C0\93\E1\D5V\B3\99~`d\B4>i#Ɨ\CEN׈]\C1V\E1\DAh\EB.麓$⎵u\C1;\D2\F2\E5}I\98ІH\A5\E1쌍\AAX\AC\DE\EAhy\B2o[\C55\\E4V\B8\86\BB\C8\E3\90\E2\E1W*\BD\8FA\97\90e\85\CD0\EE\EB\93 \91(`\C2\F9\E9Խ\A5\AA$\C2)\C7x#\A5g\D6_\E5Y\8A\BA\F7\C1\9Ey75\98\D5V\D3Gsd\E1i)6\B3l9\87Œ\953\97j\BE\873\
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment