SSBmb2xsb3dlZCBzb21lIGxpbmtzIGZyb20gdGhlIEhhY2stYS1EYXkgc2l0ZSBhbmQgZm91bmQg YSBuaWNlIG9mZmVyCmZyb20gQ3lwcmVzczoKClBTb0MgNCBkZXZpY2VzIChBUk0gQ29ydGV4LU0w IEAgNDhNSHogMzJraUIgRkxBU0ggNGtpQiBSQU0pIGZvciBVUyQxLjAwCndpdGggZnJlZSB3b3Js ZHdpZGUgcHJpb3JpdHkgc2hpcHBpbmcgKGFueSBxdWFudGl0eSwgNjY2NSBpbiBzdG9jaykuCjxo dHRwOi8vd3d3LmN5cHJlc3MuY29tLz9pZD0yMjE4PgoKVGhlIGRldmVsb3BtZW50IGtpdHMgYXJl IGxpc3RlZCBhdCBVJDQuMDAgZWFjaCBidXQgdW5mb3J0dW5hdGVseSBhcmVuJ3QKb3V0IG9mIHN0 b2NrLgoKCklzYWFjCgoKRW0gMTkvMDYvMjAxNCAxMjozNSwgQ2hyaXMgUm9wZXIgZXNjcmV2ZXU6 Cj4gaGF2ZSB5b3Ugc2VlbiB0aGlzIHBvc3Qgb24gSGFECj4KPiBodHRwOi8vaGFja2FkYXkuY29t LzIwMTQvMDYvMTYvY3lwcmVzcy1sYXVuY2hlcy01LWFybS1kZXYtYm9hcmQvCj4KPiBRdW90ZToK PiAiVGhlcmXigJlzIHR3byBtYWluIElDcyBvbiB0aGUgZGV2ZWxvcG1lbnQgYm9hcmQuIFRoZSBm aXJzdCBpcyB0aGUgdGFyZ2V0OiBhbgo+IEFSTSBDb3J0ZXggTTArIGJhc2VkIFBTb0MgNCBNQ1Uu IFRoZSBzZWNvbmQgaXMgYSBDWTdDNjUyMTEKPiA8aHR0cDovL3d3dy5jeXByZXNzLmNvbS8/bXBu PUNZN0M2NTIxMS0yNExUWEk+IFVTQiBicmlkZ2UuIFRoaXMgZGV2aWNlIGlzCj4gY29tbXVuaWNh dGVzIHdpdGggdGhlIHRhcmdldOKAmXMgYnVpbHQgaW4gYm9vdGxvYWRlciBmb3IgZmxhc2hpbmcg Y29kZS4KPgo+IFRoZSBicmlkZ2UgY2FuIGFsc28gYmUgY29uZmlndXJlZCB0byB0YWxrIFVBUlQs IEdQSU8sIEkyQyBvciBTUEkuICBJZiB5b3UKPiBuZWVkIGEgVVNCIHRvIHNlcmlhbCBjb252ZXJ0 ZXIsIHRoaXMgcGFydCBvZiB0aGUgYm9hcmQgY291bGQgYmUgd29ydGggJDUKPiBhbG9uZS4iCj4K PiBDaGVlcnMKPiBDaHJpcwo+Cj4KPiBPbiAxOCBKdW5lIDIwMTQgMDI6NTUsIE5PUEU5IFlFUyA8 eWVzQG5vcGU5LmNvbT4gd3JvdGU6Cj4KPj4gVXBvbiBmdXJ0aGVyIHBlcnVzYWzigKYgaXQgYXBw ZWFycyB0aGlzIHBhcnQKPj4gb25seSB1c2VzIHRoZSBpMmMgZmVhdHVyZSB0byBmZXRjaAo+PiBj b25maWd1cmF0aW9uIGRhdGEuIFNvIGl0IHdpbGwgbm90IHN1aXQgeW91cgo+PiBwdXJwb3Nlcy4K Pj4KPj4gUGVyaGFwcyB0aGlzIHdvdWxkIHdvcmsg4oCmLgo+PiBUVVNCODA0MSBmcm9tIFRJCj4+ IGh0dHA6Ly93d3cudGkuY29tL2xpdC9kcy9zeW1saW5rL3R1c2I4MDQxLnBkZgo+Pgo+PiBHdXMK Pj4gLS0KPj4KPj4KPj4KPj4KPj4gLS0KPj4gaHR0cDovL3d3dy5waWNsaXN0LmNvbS90ZWNocmVm L3BpY2xpc3QgUElDL1NYIEZBUSAmIGxpc3QgYXJjaGl2ZQo+PiBWaWV3L2NoYW5nZSB5b3VyIG1l bWJlcnNoaXAgb3B0aW9ucyBhdAo+PiBodHRwOi8vbWFpbG1hbi5taXQuZWR1L21haWxtYW4vbGlz dGluZm8vcGljbGlzdAo+PgoKLS0gCmh0dHA6Ly93d3cucGljbGlzdC5jb20vdGVjaHJlZi9waWNs aXN0IFBJQy9TWCBGQVEgJiBsaXN0IGFyY2hpdmUKVmlldy9jaGFuZ2UgeW91ciBtZW1iZXJzaGlw IG9wdGlvbnMgYXQKaHR0cDovL21haWxtYW4ubWl0LmVkdS9tYWlsbWFuL2xpc3RpbmZvL3BpY2xp c3QK .