T24gMjMgQXVndXN0IDIwMTYgYXQgMDY6NTIsIFdvdXRlciB2YW4gT29pamVuIDx3b3V0ZXJAdm90 aS5ubD4gd3JvdGU6Cgo+ID4gQmFjayBpbiBkYXlzIG9mIHlvcmUgdGhlcmUgd2VyZSBwZW9wbGUg d2l0aCBuYW1lcyBsaWtlIE5peG9uLCBEYXRhbGxvLAo+IE15a2UKCgrigIsuLi4g4oCLdmFuIE9v aWplbiwgLi4uIC4KCuKAiz4g4oCLCj4gY3JlYXRpbmcgZWxlZ2FudCByb3V0aW5lcyB0byBwZXJm b3JtIGRpZmZpY3VsdCB0YXNrcyB3aXRoIDgtYml0IFBJQydzIGluCj4gYXNzZW1ibGVyLgo+CgoK 4oCLICAg4oCLCkFuZCB0aGUgaW50ZXJlc3RpbmcgcXVlc3Rpb25zICYgYW5zd2VycyBhcmUgbm93 IG9uIFN0YWNrIEV4Y2hhbmdlIC0KCj4gRWxlY3RyaWNhbCBFbmdpbmVlcmluZy4gVG9kYXkgSSBl dmVuIHNhdyBhbiBhdHRlbXB0IHRoZXJlIGJ5IFJ1c3NlbCB0bwo+IHNvZnRlbiBhIGNvbW1lbnQg ZnJvbSBPbGluLgoKCuKAi1doZXJlIHRoYXQgc2VlbXMgdG8gYmUgZGVzaXJhYmxlIGl0IHNlZW1z IHRvIHdvcmsgbW9yZSBvZnRlbiB0aGFuIG5vdC4gSQonYmVhdCBwZW9wbGUgdXAnIGlmIGl0IHNl ZW1zIGxpYWJsZSB0byDigItpbXByb3ZlIHRoZWlyIGNoYW5jZXMgb2Ygd2lubmluZwp0aHJvdWdo IEJVVCB1c3VhbGx5IHByZWNlZGUgaXQgb3IgZW50d2luZSBpdCB3aXRoIGJlc3QgYW5zd2VycyB0 aGF0IGNhbiBiZQpnaXZlbiBhdCB0aGF0IHN0YWdlIG9mIHRoZSBwcm9jZXNzLiBTb21ldGltZXMg dGhleSBzdGlsbCBkZXN0cm95IHRoZW0Kc2VsdmVzLCBidXQgb2Z0ZW4gZW5vdWdoIHRvIGJlIHVz ZWZ1bCB0aGV5IHJpc2UgYWJvdmUgdGhlIGluaXRpYWwKcHJlc2VudGF0aW9uICh3aGljaCBpcyB3 aGF0IHRyaWdnZXJzIE9saW4ncyBkZWZlbmVzdHJhdGlvbiByZWZsZXgpLCBhY2NlcHQKYWR2aWNl IGFuZCBjcml0aWNpc20gYW5kIGVuZCB1cCB3aXRoIGFuIGFjY2VwdGFibGUgcXVlc3Rpb24gYW5k IGFuCnVuZGVyc3RhbmRpbmcgb2Ygd2hhdCB0aGV5IGFyZSBkb2luZyBhbG9uZyB0aGUgd2F5LiBJ ZiB0aGUgb25lIFdvdXRlcgpyZWZlcnMgdG8gaXMgdGhlIG9uZSBJIHRoaW5rIGl0IGlzLCBoZSBl bmRlZCB1cCB1bmRlcnN0YW5kaW5nIHdlbGwgZW5vdWdoCnRvIGZpbmQgdGhhdCBoaXMgcHJvYmxl bSBsYXkgaW4gYW4gYXJlYSBvdGhlciB0aGFuIHdoYXQgaGUgaGFkIHJlYWxpc2VkLgoKCj4gVGhh dCBicmluZ3MgYmFjayBtZW1vcmllcyBvZiB0aGUgUGljbGlzdCdzCj4gZ2xvcmlvdXMgcGFzdCEK Pgo+IOKAi0ZvciBzb21lIHZhbHVlcyBvZiBnbG9yaW91cy4KCkkgaGF2ZSBpdCBvbiBwdWJsaWMg cmVjb3JkIGZyb20gYW4gYXV0aG9yaXR5IHdoaWNoIC8gd2hvIGlzIHVzdWFsbHkKaW1wZWNjYWFi bGUgaW4gb3RoZXIgYXJlYXMgYnV0IHN1c3BlY3QgaW4gdGhpcyBvbmUgdGhhdCBJIGFtIHNpbmds ZWhhbmRlZGx5CnRoZSBzaW5nbGUgZ3JlYXRlc3QgY2F1c2Ugb2YgdGhlIGRlbWlzZSBvZiB0aGUg UElDTGlzdCBmcm9tIGl0cyBmb3JtZXIKZ2xvcnkKCgogICAgICAgICAgICBSdXNzZWxsCgrigIsK LS0gCmh0dHA6Ly93d3cucGljbGlzdC5jb20vdGVjaHJlZi9waWNsaXN0IFBJQy9TWCBGQVEgJiBs aXN0IGFyY2hpdmUKVmlldy9jaGFuZ2UgeW91ciBtZW1iZXJzaGlwIG9wdGlvbnMgYXQKaHR0cDov L21haWxtYW4ubWl0LmVkdS9tYWlsbWFuL2xpc3RpbmZvL3BpY2xpc3QK .