Li4uQWNjZXNzIHRvIHN0YW5kYXJkcyBpcyBhbiBpcnJpdGF0aW9uIGZvciBtZTsgdXNlZCB0byBi ZSBhYmxlIHRvIGdldAphdCB0aGVtIHRocm91Z2ggcHVibGljIGxpYnJhcnksIGJ1dCB0aGUgbGli cmFyeSBsb3N0IGFjY2Vzcy4gIE15IG93bgpidXNpbmVzcyBpc24ndCB5ZXQgYWJsZSB0byBqdXN0 aWZ5IHRoZSBleHBlbnNlIG9mIGZvcm1hbCBhY2Nlc3M7Cm1vc3RseSBJJ20gZG9pbmcgc29mdHdh cmUgYW5kIGZpcm13YXJlLgoKRG9uJ3QgdGhvc2UgY29tcmFkZXMgd29yayBmb3IgeW91PyAgICI4 KQoKCk9uIDgvMTQvMTcsIEphbWVzIENhbWVyb24gPHF1b3psQGxhcHRvcC5vcmc+IHdyb3RlOgo+ IFJ1c3NlbGwsIHRoYW5rcy4gIEknbSBub3QgZG9pbmcgaXQgbXlzZWxmLCBJJ20gZ2V0dGluZyBh biBlbGVjdHJpY2lhbgo+IHRvIGRvIGl0IGFsbC4KPgo+IEJyZXR0LCB0aGFua3MuICBZZXMsIEFT L05aUyA1MDMzIHdpbGwgYXBwbHkuICBJJ2xsIHNlZSBpZiBJIGNhbiBicmluZwo+IHRoZSBkaXN0 YW5jZSBkb3duIGJlbG93IDUwbSBieSBkcm9wcGluZyB0aHJlZSB0cmVlcyBpbnN0ZWFkIG9mIG5p bmUuCj4gQVMvTlpTIDUwMzM6MjAxNCBpcyBhbGxlZ2VkIHRvIGFsc28gcmVxdWlyZSBtYXhpbXVt IHZvbHRhZ2UgZHJvcCBvZgo+IDMlLCBhbmQgbWF4aW11bSBWb2Mgb2YgNjAwViB1bmxlc3MgYWNj ZXNzIHJlc3RyaWN0aW9uIGlzIGFkZGVkLgo+Cj4gaHR0cHM6Ly93d3cuZ3Nlcy5jb20uYXUvd3At Y29udGVudC91cGxvYWRzLzIwMTYvMDMvNTAzMy0yMDE0LUNoYW5nZXMucGRmCj4KPiAoQWNjZXNz IHRvIHN0YW5kYXJkcyBpcyBhbiBpcnJpdGF0aW9uIGZvciBtZTsgdXNlZCB0byBiZSBhYmxlIHRv IGdldAo+IGF0IHRoZW0gdGhyb3VnaCBwdWJsaWMgbGlicmFyeSwgYnV0IHRoZSBsaWJyYXJ5IGxv c3QgYWNjZXNzLiAgTXkgb3duCj4gYnVzaW5lc3MgaXNuJ3QgeWV0IGFibGUgdG8ganVzdGlmeSB0 aGUgZXhwZW5zZSBvZiBmb3JtYWwgYWNjZXNzOwo+IG1vc3RseSBJJ20gZG9pbmcgc29mdHdhcmUg YW5kIGZpcm13YXJlLikKPgo+IER3YXluZSwgdGhhbmtzLiAgVGhlIHRyZWVzIGFyZSBzaGFkZSBm b3IgZ2FyZGVuIHdhbGtzIGluIHN1bW1lcgo+ICg0NcKwQyksIGhhYml0YXQgZm9yIHNvbWUgZmFz Y2luYXRpbmcgYmlyZHMsIGFuZCB3aW5kIHByb3RlY3Rpb24gZHVyaW5nCj4gdGhlIG5vcnRoZXJs eSAoZnJvbSBlcXVhdG9yKSBnYWxlcyBhbmQgZHVzdCBzdG9ybXMuICBUYWxsZXN0IGZpdmUKPiB0 cmVlcyBhdCBhYm91dCAzMG0gaGVpZ2h0LiAgT24gdGhlIG90aGVyIGhhbmQsIHJlbW92aW5nIHRo ZW0gd291bGQKPiBpbmNyZWFzZSB0aGUgd2ludGVyIHNvbGFyIHRoZXJtYWwgaW5wdXQgb2YgdGhl IGhvdXNlIHdpbmRvd3MuICA7LSkKPgo+Cj4gSSd2ZSBiZWVuIHJlYWRpbmcgdGVjaG5pY2FsIHRy YWluaW5nIGFuZCBzcGVjaWZpY2F0aW9ucyBvZiB0aGUgZ2VhciwKPiBhbmQgaGFkIGEgY291cGxl IG9mIHRoZW9yaWVzOwo+Cj4gMS4gIGxvbmdlciBjYWJsZSBtZWFucyBsYXJnZXIgdm9sdGFnZSBk cm9wLCB0aGF0IGFkZGluZyBhIHBhbmVsIGJyaW5ncwo+IHRoZSB0b3RhbCBwb3dlciBhYm92ZSB0 aGUgbWF4aW11bSBhcnJheSBwb3dlciBvZiB0aGUgaW52ZXJ0ZXIgY2hhcmdlci4KPiBCdXQgaWYg dGhhdCBpcyB0aGUgY2FzZSB0aGVuIGl0IHNob3VsZCBiZSBhY2NlcHRlZCBiZWNhdXNlIG9mIHRo ZQo+IHZvbHRhZ2UgZHJvcC4gIEFuZCB0aGUgaW5wdXQgd2lsbCBiZSBNUFBUIGFueXdheS4KPgo+ IDIuICBhZGRpbmcgYSBwYW5lbCBicmluZ3MgVm9jIGFib3ZlIDYwMFYgcmVxdWlyaW5nIGFjY2Vz cwo+IHJlc3RyaWN0aW9ucy4KPgo+IC0tCj4gSmFtZXMgQ2FtZXJvbgo+IGh0dHA6Ly9xdW96bC5u ZXRyZWsub3JnLwo+IC0tCj4gaHR0cDovL3d3dy5waWNsaXN0LmNvbS90ZWNocmVmL3BpY2xpc3Qg UElDL1NYIEZBUSAmIGxpc3QgYXJjaGl2ZQo+IFZpZXcvY2hhbmdlIHlvdXIgbWVtYmVyc2hpcCBv cHRpb25zIGF0Cj4gaHR0cDovL21haWxtYW4ubWl0LmVkdS9tYWlsbWFuL2xpc3RpbmZvL3BpY2xp c3QKPgoKLS0gCmh0dHA6Ly93d3cucGljbGlzdC5jb20vdGVjaHJlZi9waWNsaXN0IFBJQy9TWCBG QVEgJiBsaXN0IGFyY2hpdmUKVmlldy9jaGFuZ2UgeW91ciBtZW1iZXJzaGlwIG9wdGlvbnMgYXQK aHR0cDovL21haWxtYW4ubWl0LmVkdS9tYWlsbWFuL2xpc3RpbmZvL3BpY2xpc3QK .