# Name: smd_lately v0.2 # Type: Client side plugin # Show recently viewed/popular articles # Author: Stef Dawson # URL: http://stefdawson.com/ # Recommended load order: 5 # ..................................................................... # This is a plugin for Textpattern - http://textpattern.com/ # To install: textpattern > admin > plugins # Paste the following text into the 'Install plugin' box: # ..................................................................... YToxMTp7czo0OiJuYW1lIjtzOjEwOiJzbWRfbGF0ZWx5IjtzOjY6ImF1dGhvciI7czoxMToi U3RlZiBEYXdzb24iO3M6MTA6ImF1dGhvcl91cmkiO3M6MjI6Imh0dHA6Ly9zdGVmZGF3c29u LmNvbS8iO3M6NzoidmVyc2lvbiI7czozOiIwLjIiO3M6MTE6ImRlc2NyaXB0aW9uIjtzOjM3 OiJTaG93IHJlY2VudGx5IHZpZXdlZC9wb3B1bGFyIGFydGljbGVzIjtzOjQ6ImNvZGUiO3M6 Njg1MDoiZnVuY3Rpb24gc21kX2xhdGVseSgkYXR0cywgJHRoaW5nPU5VTEwpIHsNCglnbG9i YWwgJHByZWZzLCAkdGhpc2FydGljbGUsICRwZXJtbGlua19tb2RlOw0KDQoJLy8gQ2hlY2sg bG9nZ2luZyBpcyBvbg0KCWlmICggJHByZWZzWydsb2dnaW5nJ10gIT0gJ2FsbCcpIHsNCgkJ dHJpZ2dlcl9lcnJvcihzbWRfcnZfZ1R4dCgnbG9nZ2luZ19lbmFibGVkJyksIEVfVVNFUl9O T1RJQ0UpOw0KCQlyZXR1cm47DQoJfQ0KDQoJZXh0cmFjdChsQXR0cyhhcnJheSgNCgkJJ2J5 JyA9PiAnU01EX0NVUlJFTlQnLCAvLyBEZWZhdWx0IGlzIHRoZSBJUCBhZGRyZXNzIG9mIHRo ZSBjdXJyZW50IHZpc2l0b3IuIENhbiBiZSBlbXB0eSBmb3IgJ2FsbCcgdmlzaXRvcnMNCgkJ J3NlY3Rpb24nID0+ICcnLA0KCQknc3RhdHVzJyA9PiAnJywNCgkJJ3RpbWUnID0+ICdwYXN0 JywNCgkJJ2luY2x1ZGUnID0+ICcnLA0KCQknZXhjbHVkZScgPT4gJycsDQoJCSdzaG93X2N1 cnJlbnQnID0+IDAsDQoJCSdmb3JtJyA9PiAnJywNCgkJJ2xpbWl0JyA9PiAxMCwNCgkJJ3Nv cnQnID0+ICd0aW1lIGRlc2MnLA0KCQknd3JhcHRhZycgPT4gJycsDQoJCSdicmVhaycgPT4g J2JyJywNCgkJJ2NsYXNzJyA9PiAnX19GVU5DVElPTl9fJywNCgkJJ2xhYmVsJyA9PiAnJywN CgkJJ2xhYmVsdGFnJyA9PiAnJywNCgkJJ2RlbGltJyA9PiAnLCcsDQoJCSdwYXJhbV9kZWxp bScgPT4gJzonLA0KCQknZGVidWcnID0+IDAsDQoJKSwgJGF0dHMpKTsNCg0KCS8vIFNhbml0 aXplIHNvcnQgb3B0aW9ucw0KCSRzb3J0Qml0cyA9IGRvX2xpc3QoJHNvcnQsICIgIik7DQoJ JHNvcnRCaXRzWzBdID0gKGVtcHR5KCRzb3J0Qml0c1swXSkpID8gJ3RpbWUnIDogJHNvcnRC aXRzWzBdOw0KCWlmICghaXNzZXQoJHNvcnRCaXRzWzFdKSB8fCAhaW5fYXJyYXkoJHNvcnRC aXRzWzFdLCBhcnJheSgnZGVzYycsICdhc2MnKSkpIHsNCgkJJHNvcnRCaXRzWzFdID0gJ2Rl c2MnOw0KCQkkc29ydCA9IGpvaW4oIiAiLCAkc29ydEJpdHMpOw0KCX0NCg0KCS8vIElQIGFk ZHJlc3MgY2xhdXNlDQoJJGlwID0gJyc7DQoJaWYgKCRieSA9PSAnU01EX0NVUlJFTlQnKSB7 DQoJCWlmIChmdW5jdGlvbl9leGlzdHMoJ3JlbW90ZV9hZGRyJykpIHsNCgkJCSRpcCA9IHJl bW90ZV9hZGRyKCk7DQoJCX0gZWxzZSB7DQoJCQkkaXAgPSBzZXJ2ZXJTZXQoJ1JFTU9URV9B RERSJyk7DQoJCQlpZiAoKCRpcCA9PSAnMTI3LjAuMC4xJyB8fCAkaXAgPT0gc2VydmVyU2V0 KCdTRVJWRVJfQUREUicpKSAmJiBzZXJ2ZXJTZXQoJ0hUVFBfWF9GT1JXQVJERURfRk9SJykp IHsNCgkJCQkkaXBzID0gZXhwbG9kZSgnLCAnLCBzZXJ2ZXJTZXQoJ0hUVFBfWF9GT1JXQVJE RURfRk9SJykpOw0KCQkJCSRpcCA9ICRpcHNbMF07DQoJCQl9DQoJCX0NCgkJaWYgKCRpcCkg ew0KCQkJJGlwID0gIiBBTkQgaXA9JyIuZG9TbGFzaCgkaXApLiInIjsNCgkJfQ0KCX0gZWxz ZSBpZiAoJGJ5ID09ICdTTURfQUxMJykgew0KCQkkYnkgPSAnJzsNCgl9DQoNCgkvLyBNYWtl IHN1cmUgd2UgZG9uJ3QgaW5jbHVkZSB0aGUgY3VycmVudCBhcnRpY2xlDQoJLy8gTm90ZSB0 aGUgcmVnZXhwIGlzIGFuY2hvcmVkIHRvIHRoZSBlbmQgd2l0aCBhICQNCgkkdGhpc2ljbGUg PSAnJzsNCglpZiAoaXNzZXQoJHRoaXNhcnRpY2xlKSkgew0KCQlpZiAoISRzaG93X2N1cnJl bnQpIHsNCgkJCSR1cmx0aXRsZSA9ICR0aGlzYXJ0aWNsZVsndXJsX3RpdGxlJ107DQoJCQkk dGhpc2ljbGUgPSAiIEFORCBwYWdlIE5PVCBSRUdFWFAgJyR1cmx0aXRsZSQnIjsNCgkJfQ0K CX0NCg0KCS8vIEZpbHRlciBvdXQgYXJ0aWNsZV9saXN0IHBhZ2VzIGFuZCBvdGhlciAodW4p ZGVzaXJhYmxlcw0KCSRydWxlcyA9IGFycmF5KA0KCQkicGFnZSBOT1QgUkVHRVhQICdeLyQn IiwgLy8gR29vZGJ5ZSBmcm9udCBwYWdlDQoJCSJwYWdlIE5PVCBSRUdFWFAgJ3E9JyIsIC8v IEdvb2RieWUgc2VhcmNoZXMNCgkJInBhZ2UgTk9UIFJFR0VYUCAnYz0nIiwgLy8gR29vZGJ5 ZSBjYXQgbGlzdHMNCgkJInBhZ2UgTk9UIFJFR0VYUCAnY2F0ZWdvcnk9JyIsDQoJCSJwYWdl IE5PVCBSRUdFWFAgJ14vY2F0ZWdvcnkvJyIsDQoJCSJwYWdlIE5PVCBSRUdFWFAgJ2F1dGhv cj0nIiwNCgkJInBhZ2UgTk9UIFJFR0VYUCAnXi9hdXRob3IvJyIsDQoJKTsNCg0KCWlmICgk c2VjdGlvbikgew0KCQkkc2VjdGlvbiA9IGRvX2xpc3QoJHNlY3Rpb24sICRkZWxpbSk7DQoJ CSRzdWJydWxlID0gYXJyYXkoKTsNCgkJZm9yZWFjaCAoJHNlY3Rpb24gYXMgJHNlYykgew0K CQkJaWYgKCRwZXJtbGlua19tb2RlID09ICdtZXNzeScpIHsNCgkJCQkkc3VicnVsZVtdID0g InBhZ2UgUkVHRVhQICdzPSRzZWMnIjsNCgkJCX0gZWxzZSB7DQoJCQkJJHN1YnJ1bGVbXSA9 ICJwYWdlIFJFR0VYUCAnXi8kc2VjJyBBTkQgcGFnZSBOT1QgUkVHRVhQICdeLyRzZWMvPyQn IjsNCgkJCX0NCgkJfQ0KCQkkc3VicnVsZSA9ICcoJyAuIGpvaW4oJyBPUiAnLCAkc3VicnVs ZSkgLiAnKSc7DQoJCSRydWxlc1tdID0gJHN1YnJ1bGU7DQoJfSBlbHNlIHsNCgkJLy8gRXhj bHVkZSBhbnkgcm93cyB0aGF0IGp1c3QgY29udGFpbiB0aGUgc2VjdGlvbiAoaS5lLiBhcnRp Y2xlIGxpc3QgcGFnZXMpDQoJCSRhbGxTZWNzID0gc2FmZV9jb2x1bW4oJ25hbWUnLCAndHhw X3NlY3Rpb24nLCAiMT0xIiwgJGRlYnVnKTsNCgkJJHJ1bGVzW10gPSAicGFnZSBOT1QgUkVH RVhQICdeLygiIC4gam9pbigifCIsICRhbGxTZWNzKSAuICIpLz8kJyI7DQoJfQ0KDQoJLy8g UHJvY2VzcyBhbnkgbWFudWFsIGluY2x1ZGVzDQoJaWYgKCRpbmNsdWRlKSB7DQoJCSRpbmNs dWRlID0gZG9fbGlzdCgkaW5jbHVkZSwgJGRlbGltKTsNCgkJJHN1YnJ1bGVzID0gYXJyYXko KTsNCgkJZm9yZWFjaCAoJGluY2x1ZGUgYXMgJGluYykgew0KCQkJJHJlZ2V4ID0gZmFsc2U7 DQoJCQkkY29sdW1uID0gJ2lwJzsNCgkJCSRwYXJ0cyA9IGRvX2xpc3QoJGluYywgJHBhcmFt X2RlbGltKTsNCgkJCSRtYXRjaCA9IGFycmF5X3BvcCgkcGFydHMpOw0KCQkJZm9yZWFjaCAo JHBhcnRzIGFzICRwYXJ0KSB7DQoJCQkJc3dpdGNoICgkcGFydCkgew0KCQkJCQljYXNlICJp cCI6DQoJCQkJCWNhc2UgImhvc3QiOg0KCQkJCQljYXNlICJwYWdlIjoNCgkJCQkJY2FzZSAi cmVmZXIiOg0KCQkJCQkJJGNvbHVtbiA9ICRwYXJ0Ow0KCQkJCQkJYnJlYWs7DQoJCQkJCWNh c2UgInJlZ2V4IjoNCgkJCQkJCSRyZWdleCA9IHRydWU7DQoJCQkJfQ0KCQkJfQ0KCQkJJHN1 YnJ1bGVzW10gPSAkcmVnZXggPyAiJGNvbHVtbiBSRUdFWFAgJyIuZG9TbGFzaChwcmVnX3F1 b3RlKCRtYXRjaCkpLiInIiA6ICIkY29sdW1uID0gJyIuZG9TbGFzaCgkbWF0Y2gpLiInIjsN CgkJfQ0KCQkkcnVsZXNbXSA9ICcoJy5qb2luKCcgT1IgJywgJHN1YnJ1bGVzKS4nKSc7DQoJ fQ0KDQoJLy8gUHJvY2VzcyBhbnkgbWFudWFsIGV4Y2x1ZGVzDQoJaWYgKCRleGNsdWRlKSB7 DQoJCSRleGNsdWRlID0gZG9fbGlzdCgkZXhjbHVkZSwgJGRlbGltKTsNCgkJZm9yZWFjaCAo JGV4Y2x1ZGUgYXMgJGV4Yykgew0KCQkJJHJlZ2V4ID0gZmFsc2U7DQoJCQkkY29sdW1uID0g J2lwJzsNCgkJCSRwYXJ0cyA9IGRvX2xpc3QoJGV4YywgJHBhcmFtX2RlbGltKTsNCgkJCSRt YXRjaCA9IGFycmF5X3BvcCgkcGFydHMpOw0KCQkJZm9yZWFjaCAoJHBhcnRzIGFzICRwYXJ0 KSB7DQoJCQkJc3dpdGNoICgkcGFydCkgew0KCQkJCQljYXNlICJpcCI6DQoJCQkJCWNhc2Ug Imhvc3QiOg0KCQkJCQljYXNlICJwYWdlIjoNCgkJCQkJY2FzZSAicmVmZXIiOg0KCQkJCQkJ JGNvbHVtbiA9ICRwYXJ0Ow0KCQkJCQkJYnJlYWs7DQoJCQkJCWNhc2UgInJlZ2V4IjoNCgkJ CQkJCSRyZWdleCA9IHRydWU7DQoJCQkJfQ0KCQkJfQ0KCQkJJHJ1bGVzW10gPSAkcmVnZXgg PyAiJGNvbHVtbiBOT1QgUkVHRVhQICciLmRvU2xhc2gocHJlZ19xdW90ZSgkbWF0Y2gpKS4i JyIgOiAiJGNvbHVtbiAhPSAnIi5kb1NsYXNoKCRtYXRjaCkuIiciOw0KCQl9DQoJfQ0KDQoJ aWYgKCRkZWJ1Zykgew0KCQllY2hvICIrKyBzbWRfbGF0ZWx5IFJVTEVTICsrIjsNCgkJZG1w KCRydWxlcyk7DQoJfQ0KDQoJJHJ1bGVzID0gJyBBTkQgJyAuIGpvaW4oJyBBTkQgJywgJHJ1 bGVzKTsNCg0KCSRxdWVyeSA9ICdTRUxFQ1QgY291bnQocGFnZSkgYXMgcG9wdWxhcml0eSwg cGFnZSwgTUFYKHRpbWUpIGFzIHRpbWUgRlJPTSAnLlBGWC4ndHhwX2xvZyBXSEVSRSAxPTEn LiRpcC4kdGhpc2ljbGUuJHJ1bGVzLicgQU5EIHN0YXR1cyA9IDIwMCBHUk9VUCBCWSBwYWdl IE9SREVSIEJZICcuJHNvcnQ7DQoJJHJzID0gZ2V0Um93cygkcXVlcnksICRkZWJ1Zyk7DQoN CglpZiAoJGRlYnVnID4gMSkgew0KCQlkbXAoJHJzKTsNCgl9DQoNCgkvLyBTZXQgdXAgY291 bnRlcnMgYW5kIGNyZWF0ZSBxdWVyeSBwYXJhbXMNCgkkY291bnQgPSAwOw0KCSRvdXQgPSBh cnJheSgpOw0KDQoJaWYgKCRzdGF0dXMpIHsNCgkJJHN0YXR1cyA9IGRvX2xpc3QoJHN0YXR1 cywgJGRlbGltKTsNCgkJJHN0YXRpID0gYXJyYXkoKTsNCgkJZm9yZWFjaCAoJHN0YXR1cyBh cyAkc3RhdCkgew0KCQkJaWYgKGVtcHR5KCRzdGF0KSkgew0KCQkJCWNvbnRpbnVlOw0KCQkJ fSBlbHNlIGlmIChpc19udW1lcmljKCRzdGF0KSkgew0KCQkJCSRzdGF0aVtdID0gJHN0YXQ7 DQoJCQl9IGVsc2Ugew0KCQkJCSRzdGF0aVtdID0gZ2V0U3RhdHVzTnVtKCRzdGF0KTsNCgkJ CX0NCgkJfQ0KCQkkc3RhdHVzID0gIiBBTkQgU3RhdHVzIElOICgiLmpvaW4oJywnLCAkc3Rh dGkpLiIpIjsNCgl9DQoNCglzd2l0Y2goJHRpbWUpIHsNCgkJY2FzZSAiIjoNCgkJY2FzZSAi YW55IiA6ICR0aW1lID0gIiI7IGJyZWFrOw0KCQljYXNlICJmdXR1cmUiIDogJHRpbWUgPSAi IEFORCBQb3N0ZWQgPiBDVVJEQVRFKCkiOyBicmVhazsNCgkJZGVmYXVsdCA6ICR0aW1lID0g IiBBTkQgUG9zdGVkIDwgQ1VSREFURSgpIjsgYnJlYWs7DQoJfQ0KDQoJLy8gTG9vcCB1bnRp bCBsaW1pdCByZWFjaGVkDQoJaWYgKCRycykgew0KCQlmb3JlYWNoICgkcnMgYXMgJHJvdykg ew0KCQkJaWYgKCRsaW1pdCA+IDAgJiYgaXNfbnVtZXJpYygkbGltaXQpICYmICRjb3VudCA9 PSAkbGltaXQpIGJyZWFrOw0KCQkJJHVybHBhcnRzID0gZXhwbG9kZSgnLycsICRyb3dbJ3Bh Z2UnXSk7DQoJCQkkZGFydGljbGUgPSBzYWZlX3JvdygnKiwgdW5peF90aW1lc3RhbXAoUG9z dGVkKSBhcyB1UG9zdGVkLCB1bml4X3RpbWVzdGFtcChFeHBpcmVzKSBhcyB1RXhwaXJlcywg dW5peF90aW1lc3RhbXAoTGFzdE1vZCkgYXMgdUxhc3RNb2QnLCAndGV4dHBhdHRlcm4nLCAi dXJsX3RpdGxlPSciLiR1cmxwYXJ0c1tjb3VudCgkdXJscGFydHMpLTFdLiInIi4kc3RhdHVz LiR0aW1lLCAkZGVidWcpOw0KCQkJaWYgKCRkZWJ1ZyA+IDIpIHsNCgkJCQlkbXAoJGRhcnRp Y2xlKTsNCgkJCX0NCgkJCWlmICgkZGFydGljbGUpIHsNCgkJCQkkdGhlVGltZSA9IHN0cnRv dGltZSgkcm93Wyd0aW1lJ10pOw0KCQkJCSRyZXBsYWNlbWVudHMgPSBhcnJheSgNCgkJCQkJ IntzbWRfbGF0ZWx5X2NvdW50fSIgPT4gJHJvd1sncG9wdWxhcml0eSddLA0KCQkJCQkie3Nt ZF9sYXRlbHlfZnVsbGRhdGV9IiA9PiAkcm93Wyd0aW1lJ10sDQoJCQkJCSJ7c21kX2xhdGVs eV9kYXRlfSIgPT4gc3RyZnRpbWUoIiVGIiwgJHRoZVRpbWUpLA0KCQkJCQkie3NtZF9sYXRl bHlfZGF0ZV95ZWFyfSIgPT4gc3RyZnRpbWUoIiVZIiwgJHRoZVRpbWUpLA0KCQkJCQkie3Nt ZF9sYXRlbHlfZGF0ZV9tb250aH0iID0+IHN0cmZ0aW1lKCIlbSIsICR0aGVUaW1lKSwNCgkJ CQkJIntzbWRfbGF0ZWx5X2RhdGVfbW9udGhuYW1lfSIgPT4gc3RyZnRpbWUoIiVCIiwgJHRo ZVRpbWUpLA0KCQkJCQkie3NtZF9sYXRlbHlfZGF0ZV9kYXl9IiA9PiBzdHJmdGltZSgiJWQi LCAkdGhlVGltZSksDQoJCQkJCSJ7c21kX2xhdGVseV9kYXRlX2RheW5hbWV9IiA9PiBzdHJm dGltZSgiJUEiLCAkdGhlVGltZSksDQoJCQkJCSJ7c21kX2xhdGVseV90aW1lfSIgPT4gc3Ry ZnRpbWUoIiVUIiwgJHRoZVRpbWUpLA0KCQkJCQkie3NtZF9sYXRlbHlfdGltZV9ob3VyfSIg PT4gc3RyZnRpbWUoIiVIIiwgJHRoZVRpbWUpLA0KCQkJCQkie3NtZF9sYXRlbHlfdGltZV9t aW51dGV9IiA9PiBzdHJmdGltZSgiJU0iLCAkdGhlVGltZSksDQoJCQkJCSJ7c21kX2xhdGVs eV90aW1lX3NlY29uZH0iID0+IHN0cmZ0aW1lKCIlUyIsICR0aGVUaW1lKSwNCgkJCQkpOw0K CQkJCWFydGljbGVfcHVzaCgpOw0KCQkJCXBvcHVsYXRlQXJ0aWNsZURhdGEoJGRhcnRpY2xl KTsNCgkJCQkkb3V0W10gPSAoJHRoaW5nKSA/IHBhcnNlKHN0cnRyKCR0aGluZywgJHJlcGxh Y2VtZW50cykpIDogKCgkZm9ybSkgPyBwYXJzZV9mb3JtKHN0cnRyKCRmb3JtLCAkcmVwbGFj ZW1lbnRzKSkgOiBocmVmKCRkYXJ0aWNsZVsnVGl0bGUnXSwgcGVybWxpbmt1cmwoJGRhcnRp Y2xlKSkpOw0KCQkJCWFydGljbGVfcG9wKCk7DQoJCQkJJGNvdW50Kys7DQoJCQl9DQoJCX0N Cgl9DQoJcmV0dXJuICgkb3V0KSA/IGRvTGFiZWwoJGxhYmVsLCAkbGFiZWx0YWcpLmRvV3Jh cCgkb3V0LCAkd3JhcHRhZywgJGJyZWFrLCAkY2xhc3MpIDogJyc7DQp9DQoNCi8vIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQ0KLy8gUGx1Z2luLXNwZWNpZmljIHJlcGxhY2VtZW50IHN0 cmluZ3MgLSBsb2NhbGlzZSBhcyByZXF1aXJlZA0KZnVuY3Rpb24gc21kX3J2X2dUeHQoJHdo YXQsICRhdHRzID0gYXJyYXkoKSkgew0KCSRsYW5nID0gYXJyYXkoDQoJCSdsb2dnaW5nX2Vu YWJsZWQnID0+ICdMb2dnaW5nIG11c3QgYmUgc2V0IHRvICJBbGwgaGl0cyIgaW4gQmFzaWMg UGVmcy4nLA0KCSk7DQoJcmV0dXJuIHN0cnRyKCRsYW5nWyR3aGF0XSwgJGF0dHMpOw0KfSI7 czo0OiJ0eXBlIjtzOjE6IjAiO3M6NToib3JkZXIiO3M6MToiNSI7czo1OiJmbGFncyI7czox OiIwIjtzOjQ6ImhlbHAiO3M6MTI0ODQ6IjxkaXYgaWQ9InNtZF9oZWxwIj4KCgk8aDE+c21k X2xhdGVseTwvaDE+CgoJPHA+TGlzdCB0aGUgbW9zdCByZWNlbnQgYXJ0aWNsZXMgdmlld2Vk IGJ5IHRoZSBjdXJyZW50IHZpc2l0b3Igb3IsIGFsdGVybmF0aXZlbHksIGFsbCB2aXNpdG9y cy4gQ2FuIGFsc28gb3JkZXIgYnkgcG9wdWxhcml0eSAobW9zdCB2aWV3ZWQpLjwvcD4KCgk8 aDIgaWQ9ImZlYXR1cmVzIj5GZWF0dXJlczwvaDI+CgoJPHVsPgoJCTxsaT5MaXN0IHJlY2Vu dGx5IHZpZXdlZCBhcnRpY2xlczogdXNlZnVsIG9uIHByb2R1Y3QgcGFnZXMgb3IgaW4gc2hv cHBpbmcgY2FydDwvbGk+CgkJPGxpPlNob3cgYSBsaXN0IG9mIHRoZSBtb3N0IHBvcHVsYXIg YXJ0aWNsZXM8L2xpPgoJCTxsaT5MaW1pdCBlaXRoZXIgbGlzdCBieSBzZWN0aW9uIG9yIGFy Yml0cmFyeSB2YWx1ZSAoaXAsIGhvc3QsIHBhZ2UsIHJlZmVyZXIpIGlmIHlvdSB3aXNoPC9s aT4KCQk8bGk+VXNlcyB0aGUgdmlzaXRvciBsb2dzPC9saT4KCQk8bGk+QXV0b21hdGljYWxs eSBmaWx0ZXJzIG91dCBhcnRpY2xlIGxpc3QgcGFnZXMsIGNhdGVnb3J5LCBhdXRob3Igb3Ig c2VhcmNoIHZpc2l0czwvbGk+Cgk8L3VsPgoKCTxoMiBpZD0iYXV0aG9yIj5BdXRob3IgLyBj cmVkaXRzPC9oMj4KCgk8cD48YSBocmVmPSJodHRwOi8vc3RlZmRhd3Nvbi5jb20vY29udGFj dCI+U3RlZiBEYXdzb248L2E+LjwvcD4KCgk8aDIgaWQ9Imluc3RhbGwiPkluc3RhbGxhdGlv biAvIFVuaW5zdGFsbGF0aW9uPC9oMj4KCgk8cCBjbGFzcz0icmVxdWlyZWQiPlJlcXVpcmVz IExvZ2dpbmcgdG8gYmUgc2V0IHRvIDxlbT5BbGwgaGl0czwvZW0+ICh3aWxsIGlzc3VlIGEg d2FybmluZyBvZiBub3QpPC9wPgoKCTxwPkRvd25sb2FkIHRoZSBwbHVnaW4gZnJvbSBlaXRo ZXIgPGEgaHJlZj0iaHR0cDovL3RleHRwYXR0ZXJuLm9yZy9wbHVnaW5zLzExMTAvc21kX2xh dGVseSI+dGV4dHBhdHRlcm4ub3JnPC9hPiwgb3IgdGhlIDxhIGhyZWY9Imh0dHA6Ly9zdGVm ZGF3c29uLmNvbS9zdyI+c29mdHdhcmUgcGFnZTwvYT4sIHBhc3RlIHRoZSBjb2RlIGludG8g dGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+IEFkbWluIC0mZ3Q7IFBsdWdpbnMg cGFuZSwgaW5zdGFsbCBhbmQgZW5hYmxlIHRoZSBwbHVnaW4uIFZpc2l0IHRoZSA8YSBocmVm PSJodHRwOi8vZm9ydW0udGV4dHBhdHRlcm4uY29tL3ZpZXd0b3BpYy5waHA/aWQ9MzEzNDEi PmZvcnVtIHRocmVhZDwvYT4gZm9yIG1vcmUgaW5mbyBvciB0byByZXBvcnQgb24gdGhlIHN1 Y2Nlc3Mgb3Igb3RoZXJ3aXNlIG9mIHRoZSBwbHVnaW4uPC9wPgoKCTxwPlRvIHVuaW5zdGFs bCwgc2ltcGx5IGRlbGV0ZSBmcm9tIHRoZSBBZG1pbiAtJmd0OyBQbHVnaW5zIHBhZ2UuPC9w PgoKCTxoMiBpZD0ibnAiPjxjb2RlPiZsdDt0eHA6c21kX2xhdGVseSZndDs8L2NvZGU+PC9o Mj4KCgk8cD5QbGFjZSB0aGlzIHRhZyBhbnl3aGVyZSB5b3Ugd2lzaCB0byBkaXNwbGF5IGEg bGlzdCBvZiByZWNlbnRseSB2aWV3ZWQgYXJ0aWNsZXMuIFRoZSB0YWcgbWF5IGJlIHVzZWQg YXMgYSBzaW5nbGUgdGFnICh3aXRoIGFuIG9wdGlvbmFsIGZvcm0pIG9yIGFzIGEgY29udGFp bmVyLiBJbnNpZGUgdGhlIGZvcm0vY29udGFpbmVyIHlvdSBjYW4gdXNlIGFueSBzdGFuZGFy ZCBhcnRpY2xlIHRhZ3MgJiM4MjEyOyA8Y29kZT4mbHQ7dHhwOnRpdGxlIC8mZ3Q7PC9jb2Rl PiwgPGNvZGU+Jmx0O3R4cDpleGNlcnB0IC8mZ3Q7PC9jb2RlPiwgPGNvZGU+Jmx0O3R4cDpw b3N0ZWQgLyZndDs8L2NvZGU+LCBldGMgJiM4MjEyOyB0byBmb3JtYXQgdGhlIGxpc3QgaG93 ZXZlciB5b3UgbGlrZS4gV2l0aG91dCBlaXRoZXIgYSBmb3JtIG9yIGEgY29udGFpbmVyLCB0 aGUgcGx1Z2luIGRpc3BsYXlzIGEgaHlwZXJsaW5rZWQgdGl0bGUgdG8gdGhlIGFydGljbGUu PC9wPgoKCTxwPlRoZSBmb2xsb3dpbmcgYXR0cmlidXRlcyBjYW4gYmUgdXNlZCB0byBtb2Rp ZnkgdGhlIHBsdWdpbiYjODIxNztzIG91dHB1dDo8L3A+CgoJPGgzIGNsYXNzPSJhdHRzIj5B dHRyaWJ1dGVzPC9oMz4KCgk8aDQ+TG9nIGZpbHRlcmluZyBhbmQgc29ydCBvcmRlciBhdHRy aWJ1dGVzPC9oND4KCgk8dWw+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5ieTwvc3Bhbj4g OiB1c2UgPGNvZGU+Ynk9JnF1b3Q7JnF1b3Q7PC9jb2RlPiBvciA8Y29kZT5ieT0mcXVvdDtT TURfQUxMJnF1b3Q7PC9jb2RlPiB0byB2aWV3IHRoZSBtb3N0IHJlY2VudCBhcnRpY2xlcyBi eSBhbGwgc2l0ZSB2aXNpdG9ycy4gQnkgZGVmYXVsdCAoaS5lLiBpZiB0aGUgYXR0cmlidXRl IGlzIG9taXR0ZWQpIHRoZSBwbHVnaW4gb25seSBzaG93cyB0aGUgcmVjZW50IGFydGljbGVz IHZpZXdlZCBieSB0aGUgY3VycmVudCB2aXNpdG9yPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9 ImF0bm0iPnNlY3Rpb248L3NwYW4+IDogY2hvb3NlIHRvIHNob3cgYXJ0aWNsZXMgb25seSBm cm9tIHRoaXMgbGlzdCBvZiBzZWN0aW9ucy4gRGVmYXVsdDogdW5zZXQgKGkuZS4gZnJvbSBh bGwgc2VjdGlvbnMpLiA8c3BhbiBjbGFzcz0icmVxdWlyZWQiPk5vdGUgdGhhdCB5b3UgbXVz dCBiZSB1c2luZyBlaXRoZXIgbWVzc3kgbW9kZSBvciBhIHBlcm1saW5rIG1vZGUgd2l0aCA8 Y29kZT4vc2VjdGlvbjwvY29kZT4gaW4gaXQgdG8gZmlsdGVyIGJ5IHNlY3Rpb248L3NwYW4+ PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPnNob3dfY3VycmVudDwvc3Bhbj4gOiBE aXNwbGF5IHRoZSBhcnRpY2xlIGJlaW5nIHZpZXdlZCBpbiB0aGUgbGlzdDogMT1ZZXM7IDA9 Tm8uIElnbm9yZWQgaWYgaW4gYW4gYXJ0aWNsZV9saXN0IHBhZ2UuIERlZmF1bHQ6IDA8L2xp PgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+aW5jbHVkZTwvc3Bhbj4gOiBlbnN1cmUgdGhh dCBsb2cgZmlsZSBlbnRyaWVzIHRoYXQgbWF0Y2ggdGhpcyBzZXQgb2YgY3JpdGVyaWEgYXJl IGluY2x1ZGVkIGluIHRoZSBsaXN0LiBUaGlzIGF0dHJpYnV0ZSB0YWtlcyB1cCB0byAzIHBh cmFtZXRlcnMsIHNlcGFyYXRlZCBieSA8Y29kZT5wYXJhbV9kZWxpbTwvY29kZT4gKGRlZmF1 bHQgaXMgdGhlIGNvbG9uKS4KCTx1bD4KCQk8bGk+Rmlyc3QgaXMgdGhlIG5hbWUgb2YgYSBm aWVsZCB0byBtYXRjaCBhZ2FpbnN0LiBDaG9vc2UgZnJvbSA8Y29kZT5pcDwvY29kZT4gKHRo ZSBkZWZhdWx0KSwgPGNvZGU+aG9zdDwvY29kZT4sIDxjb2RlPnBhZ2U8L2NvZGU+IG9yIDxj b2RlPnJlZmVyPC9jb2RlPjwvbGk+CgkJPGxpPlNlY29uZCBpcyBhbiBvcHRpb25hbCBwYXJh bWV0ZXIgdG8gaW5kaWNhdGUgd2hldGhlciB0aGUgbWF0Y2ggaXMgYSByZWd1bGFyIGV4cHJl c3Npb24gb3Igbm90LiBVc2UgPGNvZGU+cmVnZXg8L2NvZGU+IGlmIHlvdSB3aXNoIHRoaXMg dHlwZSBvZiBtYXRjaCB0byBiZSBjb25zaWRlcmVkLCBvciBvbWl0IHRoZSBwYXJhbWV0ZXIg ZW50aXJlbHkgaWYgeW91IHdhbnQgYW4gJiM4MjE2O2V4YWN0IG1hdGNoJiM4MjE3OyB0byBi ZSBjb25zaWRlcmVkPC9saT4KCQk8bGk+RmluYWxseSwgc3BlY2lmeSB0aGUgdGV4dCB5b3Ug d2FudCB0byBtYXRjaCB3aXRoIHRoYXQgZmllbGQuIEZvciBleGFtcGxlLCA8Y29kZT5pbmNs dWRlPSZxdW90O2hvc3Q6cmVnZXg6d3d3LmRvbWFpbi5jb20mcXVvdDs8L2NvZGU+IHdvdWxk IG9ubHkgaW5jbHVkZSByZXN1bHRzIHRoYXQgaGFkIDxjb2RlPnd3dy5kb21haW4uY29tPC9j b2RlPiBzb21ld2hlcmUgaW4gdGhlaXIgaG9zdCBuYW1lLiBVc2luZyA8Y29kZT5pbmNsdWRl PSZxdW90OzE5Mi4xNjguMi4yMDAmcXVvdDs8L2NvZGU+IHdvdWxkIHNob3cgcGFnZXMgZnJv bSBhbnkgaW50ZXJuYWwgbWVkZGxpbmcgeW91IG1heSBoYXZlIGRvbmUgb24geW91ciBsb2Nh bCA8c3BhbiBjbGFzcz0iY2FwcyI+WEFNUFA8L3NwYW4+IHNlcnZlci4gTm90ZSB0aGF0IGlm IHlvdSBvbWl0IHBhcmFtZXRlcnMgMSBhbmQgMiwgdGhlIHBsdWdpbiB1c2VzIHRoZSBkZWZh dWx0czwvbGk+Cgk8L3VsPjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5leGNsdWRl PC9zcGFuPiA6IGVuc3VyZSB0aGF0IGxvZyBmaWxlIGVudHJpZXMgdGhhdCBtYXRjaCB0aGlz IHNldCBvZiBjcml0ZXJpYSBhcmUgPHN0cm9uZz5ub3Q8L3N0cm9uZz4gaW5jbHVkZWQgaW4g dGhlIGxpc3QuIFVzZSB0aGlzIGluIGFuIGlkZW50aWNhbCBmYXNoaW9uIHRvIDxjb2RlPmlu Y2x1ZGU8L2NvZGU+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPnNvcnQ8L3NwYW4+ IDogb3JkZXIgdGhlIGxpc3QgYnkgZWl0aGVyIDxjb2RlPnRpbWU8L2NvZGU+LCBvciA8Y29k ZT5wb3B1bGFyaXR5PC9jb2RlPi4gQWRkIDxjb2RlPmFzYzwvY29kZT4gb3IgPGNvZGU+ZGVz YzwvY29kZT4gdG8gY2hvb3NlIGFzY2VuZGluZyBvciBkZXNjZW5kaW5nIHNvcnQgb3JkZXIu IERlZmF1bHQ6IDxjb2RlPnRpbWUgZGVzYzwvY29kZT48L2xpPgoJCTxsaT48c3BhbiBjbGFz cz0iYXRubSI+bGltaXQ8L3NwYW4+IDogc2hvdyB0aGlzIG1hbnkgaXRlbXMgaW4gdGhlIGxp c3QuIDAgPSB1bmxpbWl0ZWQuIERlZmF1bHQ6IDEwPC9saT4KCTwvdWw+CgoJPGg0PkFydGlj bGUgZmlsdGVyIGF0dHJpYnV0ZXM8L2g0PgoKCTx1bD4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0 bm0iPnN0YXR1czwvc3Bhbj4gOiBPbmx5IGFydGljbGVzIHdpdGggb25lIG9mIHRoZXNlIGxp c3RlZCBzdGF0dXMgdmFsdWVzIGFyZSBkaXNwbGF5ZWQgaW4gdGhlIGxpc3QuIERlZmF1bHQ6 IDQgKDxjb2RlPmxpdmU8L2NvZGU+KTwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj50 aW1lPC9zcGFuPiA6IElmIGFuIGFydGljbGUgaW4gdGhlIGxvZyBoYXMgaXRzIHBvc3RlZCB0 aW1lc3RhbXAgaW4gdGhlIHRpbWUgcGVyaW9kIGluZGljYXRlZCBpbiB0aGlzIGF0dHJpYnV0 ZSwgaXQgd2lsbCBiZSBkaXNwbGF5ZWQuIENob29zZSBmcm9tIDxjb2RlPmFueTwvY29kZT4s IDxjb2RlPmZ1dHVyZTwvY29kZT4gb3IgPGNvZGU+cGFzdDwvY29kZT4gKHRoZSBkZWZhdWx0 KS4gTGVhdmluZyB0aGlzIGF0IGl0cyBkZWZhdWx0IHByZXZlbnRzIGFueSBmdXR1cmUtZGF0 ZWQgYXJ0aWNsZXMgdGhhdCB5b3UgbWF5IGJlIHByZXZpZXdpbmcgZnJvbSBzaG93aW5nIHVw IGluIHRoZSBsaXN0PC9saT4KCTwvdWw+CgoJPGg0PkRpc3BsYXkgYXR0cmlidXRlczwvaDQ+ CgoJPHVsPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+d3JhcHRhZzwvc3Bhbj4gOiB0aGUg KFgpSFRNTCB0YWcsIHdpdGhvdXQgaXRzIGJyYWNrZXRzLCB0byB3cmFwIHRoZSBsaXN0IHdp dGguIERlZmF1bHQ6IHVuc2V0PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmNsYXNz PC9zcGFuPiA6IHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+Q1NTPC9zcGFuPiBjbGFzcyBuYW1l IHRvIGFwcGx5IHRvIHRoZSB3cmFwdGFnLiBEZWZhdWx0OiA8Y29kZT5zbWRfbGF0ZWx5PC9j b2RlPjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5icmVhazwvc3Bhbj4gOiB0aGUg KFgpSFRNTCB0YWcsIHdpdGhvdXQgaXRzIGJyYWNrZXRzLCB0byB3cmFwIGVhY2ggaXRlbSB3 aXRoLiBEZWZhdWx0OiA8Y29kZT5icjwvY29kZT48L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0i YXRubSI+bGFiZWw8L3NwYW4+IDogdGhlIGxhYmVsIHRleHQgdG8gYWRkIHRvIHRoZSB0b3Ag b2YgdGhlIGxpc3QuIERlZmF1bHQ6IHVuc2V0PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0 bm0iPmxhYmVsdGFnPC9zcGFuPiA6IHRoZSAoWClIVE1MIHRhZywgd2l0aG91dCBpdHMgYnJh Y2tldHMsIHRvIHdyYXAgdGhlIGxhYmVsIHdpdGguIERlZmF1bHQ6IHVuc2V0PC9saT4KCTwv dWw+CgoJPGg0PlBsdWdpbiBjb25maWd1cmF0aW9uIGF0dHJpYnV0ZXM8L2g0PgoKCTx1bD4K CQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmZvcm08L3NwYW4+IDogaWYgeW91IHByZWZlciB0 byB1c2UgYSBmb3JtIGluc3RlYWQgb2YgdGhlIGNvbnRhaW5lciB0byBob2xkIHlvdXIgbWFy a3VwIGFuZCB0YWdzLCBzcGVjaWZ5IGl0IGhlcmUuIERlZmF1bHQ6IHVuc2V0PC9saT4KCQk8 bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmRlbGltPC9zcGFuPiA6IHRoZSBkZWxpbWl0ZXIgdG8g dXNlIGJldHdlZW4gaXRlbXMgaW4gYXR0cmlidXRlIGxpc3RzICg8Y29kZT5zZWN0aW9uPC9j b2RlPiwgPGNvZGU+aW5jbHVkZTwvY29kZT4sIDxjb2RlPmV4Y2x1ZGU8L2NvZGU+LCA8Y29k ZT5zdGF0dXM8L2NvZGU+KS4gRGVmYXVsdDogY29tbWE8L2xpPgoJCTxsaT48c3BhbiBjbGFz cz0iYXRubSI+cGFyYW1fZGVsaW08L3NwYW4+IDogdGhlIGRlbGltaXRlciB0byB1c2UgYmV0 d2VlbiBwYXJhbWV0ZXJzIGluc2lkZSBhbiBhdHRyaWJ1dGUgKDxjb2RlPmluY2x1ZGU8L2Nv ZGU+LCA8Y29kZT5leGNsdWRlPC9jb2RlPikuIERlZmF1bHQ6IGNvbG9uPC9saT4KCTwvdWw+ CgoJPGgzIGNsYXNzPSJhdHRzIj5SZXBsYWNlbWVudCB2YXJpYWJsZXM8L2gzPgoKCTxwPklu IGFkZGl0aW9uIHRvIHJlZ3VsYXIgPHNwYW4gY2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj4gYXJ0 aWNsZSB0YWdzLCB5b3UgbWF5IGVtcGxveSBhbnkgb2YgdGhlIGZvbGxvd2luZyBjb2RlcyBp biB5b3VyIGZvcm0vY29udGFpbmVyIHRvIGRpc3BsYXkgdGhlIGNvcnJlc3BvbmRpbmcgdmFs dWU6PC9wPgoKCTx1bD4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPntzbWRfbGF0ZWx5X2Nv dW50fTwvc3Bhbj4gOiB0aGUgbnVtYmVyIG9mIHRpbWVzIHRoZSBhcnRpY2xlIGhhcyBiZWVu IGFjY2Vzc2VkPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPntzbWRfbGF0ZWx5X2Z1 bGxkYXRlfTwvc3Bhbj4gOiB0aGUgYXJ0aWNsZSYjODIxNztzIGxhc3QgYWNjZXNzIGRhdGUg c3RhbXA8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+e3NtZF9sYXRlbHlfZGF0ZX08 L3NwYW4+IDogdGhlIGFydGljbGUmIzgyMTc7cyBsYXN0IGFjY2VzcyBkYXRlPC9saT4KCQk8 bGk+PHNwYW4gY2xhc3M9ImF0bm0iPntzbWRfbGF0ZWx5X2RhdGVfeWVhcn08L3NwYW4+IDog dGhlIGFydGljbGUmIzgyMTc7cyBsYXN0IGFjY2VzcyB5ZWFyPC9saT4KCQk8bGk+PHNwYW4g Y2xhc3M9ImF0bm0iPntzbWRfbGF0ZWx5X2RhdGVfbW9udGh9PC9zcGFuPiA6IHRoZSBhcnRp Y2xlJiM4MjE3O3MgbGFzdCBhY2Nlc3MgbW9udGggKG51bWJlcik8L2xpPgoJCTxsaT48c3Bh biBjbGFzcz0iYXRubSI+e3NtZF9sYXRlbHlfZGF0ZV9tb250aG5hbWV9PC9zcGFuPiA6IHRo ZSBhcnRpY2xlJiM4MjE3O3MgbGFzdCBhY2Nlc3MgbW9udGggKGZ1bGwgbmFtZSk8L2xpPgoJ CTxsaT48c3BhbiBjbGFzcz0iYXRubSI+e3NtZF9sYXRlbHlfZGF0ZV9kYXl9PC9zcGFuPiA6 IHRoZSBhcnRpY2xlJiM4MjE3O3MgbGFzdCBhY2Nlc3MgZGF5IChudW1iZXIpPC9saT4KCQk8 bGk+PHNwYW4gY2xhc3M9ImF0bm0iPntzbWRfbGF0ZWx5X2RhdGVfZGF5bmFtZX08L3NwYW4+ IDogdGhlIGFydGljbGUmIzgyMTc7cyBsYXN0IGFjY2VzcyBkYXkgKGZ1bGwgbmFtZSk8L2xp PgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+e3NtZF9sYXRlbHlfdGltZX08L3NwYW4+IDog dGhlIGFydGljbGUmIzgyMTc7cyBsYXN0IGFjY2VzcyB0aW1lIHN0YW1wPC9saT4KCQk8bGk+ PHNwYW4gY2xhc3M9ImF0bm0iPntzbWRfbGF0ZWx5X3RpbWVfaG91cn08L3NwYW4+IDogdGhl IGFydGljbGUmIzgyMTc7cyBsYXN0IGFjY2VzcyBob3VyPC9saT4KCQk8bGk+PHNwYW4gY2xh c3M9ImF0bm0iPntzbWRfbGF0ZWx5X3RpbWVfbWludXRlfTwvc3Bhbj4gOiB0aGUgYXJ0aWNs ZSYjODIxNztzIGxhc3QgYWNjZXNzIG1pbnV0ZTwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJh dG5tIj57c21kX2xhdGVseV90aW1lX3NlY29uZH08L3NwYW4+IDogdGhlIGFydGljbGUmIzgy MTc7cyBsYXN0IGFjY2VzcyBzZWNvbmQ8L2xpPgoJPC91bD4KCgk8aDMgaWQ9ImNhdmVhdHMi PkNhdmVhdHM8L2gzPgoKCTxwPlNpbmNlIHRoZSBwbHVnaW4gdXNlcyB0aGUgPHNwYW4gY2xh c3M9ImNhcHMiPlRYUDwvc3Bhbj4gbG9ncyB5b3UgbmVlZCB0byBtYWtlIHN1cmUgdGhleSBh cmUgYmVpbmcgdXNlZCAoQWRtaW4tJmd0O0Jhc2ljIFByZWZzKS4gSXQgYWxzbyBtZWFucyB0 aGF0IGFueSB2aXNpdG9ycyB1c2luZyBhbiBhbm9ueW1pc2luZyBwcm94eSB3aWxsIGdldCBz cHVyaW91cyAob3Igbm8pIHJlc3VsdHMuIFRoZWlyIGxvc3MuPC9wPgoKCTxoMiBjbGFzcz0i ZXhhbXBsZXMiPkV4YW1wbGVzPC9oMj4KCgk8aDMgaWQ9ImVnMSI+RXhhbXBsZSAxOiByZWNl bnQgYXJ0aWNsZSBsaXN0IGZvciBjdXJyZW50IHZpc2l0b3I8L2gzPgoKPHByZSBjbGFzcz0i YmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfbGF0ZWx5IC8mZ3Q7Cjwv Y29kZT48L3ByZT4KCgk8aDMgaWQ9ImVnMiI+RXhhbXBsZSAyOiByZWNlbnQgYXJ0aWNsZXMg Zm9yIGFsbCB2aXNpdG9yczwvaDM+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9 ImJsb2NrIj4mbHQ7dHhwOnNtZF9sYXRlbHkgYnk9JnF1b3Q7JnF1b3Q7IHNlY3Rpb249JnF1 b3Q7YXJjaGl2ZSwgYWJvdXQmcXVvdDsgLyZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPk9ubHkg c2hvd3MgdGhlIGFydGljbGVzIHZpZXdlZCBmcm9tIHRoZSAmIzgyMTY7YXJjaGl2ZSYjODIx NzsgYW5kICYjODIxNjthYm91dCYjODIxNzsgc2VjdGlvbnMuPC9wPgoKCTxoMyBpZD0iZWcz Ij5FeGFtcGxlIDM6IG1vc3QgcG9wdWxhciBhcnRpY2xlcyBhY3Jvc3MgdGhlIHNpdGU8L2gz PgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRf bGF0ZWx5IGJ5PSZxdW90OyZxdW90OyBzb3J0PSZxdW90O3BvcHVsYXJpdHkmcXVvdDsgIC8m Z3Q7CjwvY29kZT48L3ByZT4KCgk8cD5XaXRob3V0IHVzaW5nIHRoZSA8Y29kZT5ieTwvY29k ZT4gYXR0cmlidXRlLCB0aGlzIHdvdWxkIGdpdmUgdGhlIG1vc3QgcG9wdWxhciBhcnRpY2xl cyBmb3IgdGhlIGN1cnJlbnQgdmlzaXRvciAmIzgyMTI7IHByb2JhYmx5IG5vdCB3aGF0IHlv dSB3YW50ITwvcD4KCgk8aDMgaWQ9ImVnNCI+RXhhbXBsZSA0OiB0YWcgYXMgYSBjb250YWlu ZXI8L2gzPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4 cDpzbWRfbGF0ZWx5IGJ5PSZxdW90OyZxdW90OwogICAgIHdyYXB0YWc9JnF1b3Q7dWwmcXVv dDsgYnJlYWs9JnF1b3Q7bGkmcXVvdDsgbGltaXQ9JnF1b3Q7NiZxdW90OyZndDsKICAgJmx0 O3R4cDpwZXJtbGluayZndDsmbHQ7dHhwOnRpdGxlIC8mZ3Q7Jmx0Oy90eHA6cGVybWxpbmsm Z3Q7IFt7c21kX2xhdGVseV9jb3VudH1dJmx0O2JyIC8mZ3Q7CiAgICZsdDt0eHA6cG9zdGVk IC8mZ3Q7IGJ5ICZsdDt0eHA6YXV0aG9yIC8mZ3Q7CiZsdDsvdHhwOnNtZF9sYXRlbHkmZ3Q7 CjwvY29kZT48L3ByZT4KCgk8cD5TaG93cyB0aGUgNiBtb3N0IHJlY2VudCBhcnRpY2xlcyBh Y2Nlc3NlZCBieSBhbnkgc2l0ZSB2aXNpdG9yLiBUaGUgdW5vcmRlcmVkIGxpc3Qgb3V0cHV0 IGNvbnRhaW5zIGEgcGVybWxpbmtlZCB0aXRsZSwgdGhlIGRhdGUgdGhlIGFydGljbGUgd2Fz IHBvc3RlZCBhbmQgdGhlIGFydGljbGUmIzgyMTc7cyBhdXRob3IuPC9wPgoKCTxoMyBpZD0i ZWc1Ij5FeGFtcGxlIDU6IGZpbHRlcmluZyBieSBob3N0PC9oMz4KCjxwcmUgY2xhc3M9ImJs b2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6c21kX2xhdGVseSBieT0mcXVvdDsm cXVvdDsKICAgICB3cmFwdGFnPSZxdW90O3VsJnF1b3Q7IGJyZWFrPSZxdW90O2xpJnF1b3Q7 IGxpbWl0PSZxdW90OzYmcXVvdDsKICAgICBleGNsdWRlPSZxdW90O2hvc3Q6aWQzNDU2LWJ0 LmN1c3RyZWYuY29tLCByZWZlcjomcXVvdDsmZ3Q7CiAgICZsdDt0eHA6cGVybWxpbmsmZ3Q7 Jmx0O3R4cDp0aXRsZSAvJmd0OyZsdDsvdHhwOnBlcm1saW5rJmd0OyBbe3NtZF9sYXRlbHlf Y291bnR9XSZsdDticiAvJmd0OwombHQ7L3R4cDpzbWRfbGF0ZWx5Jmd0Owo8L2NvZGU+PC9w cmU+CgoJPHA+U2hvd3Mgb25seSByZWNvcmRzIHRoYXQgaGF2ZSBzb21lIHJlZmVyZXIgaW5m b3JtYXRpb24gKGkuZS4gd2UgYXJlIGV4Y2x1ZGluZyBlbnRyaWVzIHdoZXJlIHJlZmVyID0g ZW1wdHkpIGFuZCB0aG9zZSB0aGF0IGhhdmUgPHNwYW4gY2xhc3M9ImNhcHMiPk5PVDwvc3Bh bj4gYmVlbiBhY2Nlc3NlZCB2aWEgdGhlIHVuaXF1ZSBob3N0bmFtZSBnaXZlbiB0byB5b3Ug YnkgeW91ciA8c3BhbiBjbGFzcz0iY2FwcyI+SVNQPC9zcGFuPiAmIzgyMTI7IGFzc3VtaW5n IDxjb2RlPmlkMzQ1Ni1idC5jdXN0cmVmLmNvbTwvY29kZT4gc2hvd3MgdXAgaW4gdGhlICYj ODIxNjtob3N0JiM4MjE3OyBjb2x1bW4gd2hlbmV2ZXIgeW91IGFjY2VzcyBhIDxzcGFuIGNs YXNzPSJjYXBzIj5UWFA8L3NwYW4+IGFydGljbGUuPC9wPgoKCTxwPklmIHlvdSBhZGp1c3Rl ZCB0aGUgZXhjbHVkZSBhdHRyaWJ1dGUgdG8gcmVhZCA8Y29kZT5leGNsdWRlPSZxdW90O2hv c3Q6cmVnZXg6YnQuY3VzdHJlZiZxdW90OzwvY29kZT4gdGhlbiBhbnkgbG9nIGVudHJpZXMg d2l0aCA8Y29kZT5idC5jdXN0cmVmPC9jb2RlPiBpbiB0aGVtIHdvdWxkIGJlIGV4Y2x1ZGVk IGZyb20gY29uc2lkZXJhdGlvbi48L3A+CgoJPGgzIGlkPSJjaGFuZ2Vsb2ciPkNoYW5nZWxv ZzwvaDM+CgoJPHA+MjMgSnVsIDA5IHwgMC4xIHwgSW5pdGlhbCByZWxlYXNlPGJyIC8+CjI0 IEp1bCAwOSB8IDAuMTEgfCBNYWRlIGJhY2t3YXJkcyBjb21wYXRpYmxlIHdpdGggPHNwYW4g Y2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj4gNC4wLjg8YnIgLz4KMTAgQXVnIDA5IHwgMC4xMiB8 IE5ldmVyIGFzc3VtZSB3aGF0IHJlbWFpbnMgaW4gdGhlIGZpbHRlcmVkIDxzcGFuIGNsYXNz PSJjYXBzIj5VUkw8L3NwYW4+IGlzIGFjdHVhbGx5IGFuIGFydGljbGU8YnIgLz4KMTEgU2Vw IDA5IHwgMC4xMyB8IEFkZGVkIHJlcGxhY2VtZW50IHZhcnM8YnIgLz4KMTkgRmViIDEwIHwg MC4yIHwgQWRkZWQgPGNvZGU+c3RhdHVzPC9jb2RlPiwgPGNvZGU+dGltZTwvY29kZT4sIDxj b2RlPmluY2x1ZGU8L2NvZGU+LCA8Y29kZT5leGNsdWRlPC9jb2RlPiwgPGNvZGU+ZGVsaW08 L2NvZGU+LCBhbmQgPGNvZGU+cGFyYW1fZGVsaW08L2NvZGU+IDsgYXJ0aWNsZSBsaXN0IG5v dyBmaWx0ZXJlZCBieSA8Y29kZT50aW1lPSZxdW90O3Bhc3QmcXVvdDs8L2NvZGU+IGFuZCA8 Y29kZT5zdGF0dXM9JnF1b3Q7NCZxdW90OzwvY29kZT4gYnkgZGVmYXVsdDwvcD4KCjwvZGl2 Pgo8IS0tICoqKiBCRUdJTiBQTFVHSU4gQ1NTICoqKiAtLT4KPHN0eWxlIHR5cGU9InRleHQv Y3NzIj4KI3NtZF9oZWxwIHsgbGluZS1oZWlnaHQ6MS41IDt9CiNzbWRfaGVscCBjb2RlIHsg Zm9udC13ZWlnaHQ6Ym9sZDsgZm9udDogMTA1JS8xMzAlICJDb3VyaWVyIE5ldyIsIGNvdXJp ZXIsIG1vbm9zcGFjZTsgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZDQzt9CiNzbWRfaGVscCBj b2RlLmJsb2NrIHsgZm9udC13ZWlnaHQ6bm9ybWFsOyBib3JkZXI6MXB4IGRvdHRlZCAjOTk5 OyBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBlNjhjOyBkaXNwbGF5OmJsb2NrOyBtYXJnaW46MTBw eCAxMHB4IDIwcHg7IHBhZGRpbmc6MTBweDsgfQojc21kX2hlbHAgaDEgeyBjb2xvcjogIzM2 OTsgZm9udDogMjBweCBHZW9yZ2lhLCBzYW5zLXNlcmlmOyBtYXJnaW46IDA7IHRleHQtYWxp Z246IGNlbnRlcjsgfQojc21kX2hlbHAgaDIgeyBib3JkZXItYm90dG9tOiAxcHggc29saWQg YmxhY2s7IHBhZGRpbmc6MTBweCAwIDA7IGNvbG9yOiAjMzY5OyBmb250OiAxN3B4IEdlb3Jn aWEsIHNhbnMtc2VyaWY7IH0KI3NtZF9oZWxwIGgzIHsgY29sb3I6ICMyNzU2ODU7IGZvbnQ6 IGJvbGQgMTJweCBBcmlhbCwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDFweDsgbWFy Z2luOiAxMHB4IDAgMDt0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB0ZXh0LWRlY29yYXRp b246dW5kZXJsaW5lO30KI3NtZF9oZWxwIGg0IHsgZm9udDogYm9sZCAxMXB4IEFyaWFsLCBz YW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzogMXB4OyBtYXJnaW46IDEwcHggMCAwIDt0ZXh0 LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9CiNzbWRfaGVscCAuYXRubSB7IGZvbnQtd2VpZ2h0 OmJvbGQ7IGNvbG9yOiMzM2Q7IH0KI3NtZF9oZWxwIC5tYW5kIHsgYmFja2dyb3VuZDojZWVl OyBib3JkZXI6MXB4IGRvdHRlZCAjOTk5OyB9CiNzbWRfaGVscCB0YWJsZSB7d2lkdGg6OTAl OyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZy1ib3R0b206MWVtO30KI3NtZF9oZWxwIHRk LCAjc21kX2hlbHAgdGgge2JvcmRlcjoxcHggc29saWQgIzk5OTsgcGFkZGluZzouNWVtIDA7 fQojc21kX2hlbHAgdWwgeyBsaXN0LXN0eWxlLXR5cGU6c3F1YXJlOyB9CiNzbWRfaGVscCAu cmVxdWlyZWQge2NvbG9yOnJlZDt9CiNzbWRfaGVscCBsaSB7IG1hcmdpbjo1cHggMjBweCA1 cHggMzBweDsgfQojc21kX2hlbHAgLmJyZWFrIHsgbWFyZ2luLXRvcDo1cHg7IH0KPC9zdHls ZT4KPCEtLSAqKiogRU5EIFBMVUdJTiBDU1MgKioqIC0tPgoiO3M6MzoibWQ1IjtzOjMyOiIy OTcxNDJmNjEwYWViZjBhNTQxOGQzZjdhM2VjY2E4ZCI7fQ==