SSB0aGluayB0aGUgbWFpbiBkaWZmZXJlbmNlIGhlcmUgUnVzc2VsbCBtYXkgYmUgYWxvbmcgdGhl IGxpbmVzIG9mIHdoYXQgeW91Cm1pZ2h0IGV4cGVyaWVuY2UgaW4gRWFzdGVybiBFdXJvcGUgYW5k IGVsc2V3aGVyZS4uLiBkb24ndCB3YW5uYSBwb2ludApmaW5nZXJzLiBCdXQgaGVyZSBpbiB0aGUg bGFuZCBvZiBwYWlyLW8nLWRpY2UgdGhlIGV4cHJlc3MgY291cmllcnMgYXJlCm1vbm9wb2xpemVk IGJ5IHN0YXRlIGVudGVycHJpc2UuLi4gb25seSB0aGUgbmFtZXMgcmVtYWluIHJlbWFpbiB1bmNo YW5nZWQKdG8gcHJvdGVjdCB0aGUgZ3VpbHR5LiBGb3JlaWduIGNvcnBvcmF0aW9ucyBjYW4gb25s eSBoYXZlIG1pbm9yIG93bmVyc2hpcAppbiB0aGVtc2VsdmVzLi4uIGZyZWUgZW50ZXJwcmlzZSBp cyByYXJlbHkgZnJlZSBpbiByZWFsaXR5IGFueSBwbGFjZSBpbiB0aGUKd29ybGQuLi4gbnVmZiwg bWF5YmUgdG9vLW51ZmYgc2FpZCA7LSkKCn5SaUIsIGhvcGluZyBmb3IgZnJlZSBlbGVjdGlvbnMg d2l0aGluZyBhIHllYXIgb3IgdHdvIHlldC4uLiBidXQgdGhlIHdhaXQKYW5kIHByb2Nlc3MgaXMg cHJvdmluZyB0byBiZSB2ZXJ5IHdvcnRod2hpbGUK4ZCnCgpSZWdhcmRzL1JvZ2VyLCBpbiBCYW5n a29rCgpQUzogIG1lcmNpZXNAY3Njb21zLmNvbSwgcm9nZXJAa3NjLnRoLmNvbSBhbmQgcm9nZXJA cGFjaWZpYy5uZXQudGggZW1haWwKYWRkcmVzc2VzIGFyZSBubyBsb25nZXIgdmFsaWQgLi4uIHBs ZWFzZSBkZWxldGUgdGhlbSBmcm9tIHlvdXIgYWRkcmVzcyBib29rCjotKQoKT24gU2F0LCBOb3Yg MjksIDIwMTQgYXQgMzoyOCBQTSwgUnVzc2VsbE1jIDxhcHB0ZWNobnpAZ21haWwuY29tPiB3cm90 ZToKCj4gT24gMjkgTm92ZW1iZXIgMjAxNCBhdCAyMTowMiwgUmlCIFNFUlZJQ0VTIExMQyAtLSBC YW5na29rIDwKPiByb2dlckByaWJzZXJ2aWNlcy5jb20+IHdyb3RlOgo+Cj4gPiBJIG9ubHkgYWNj ZXB0IHBhcmNlbHMgZnJvbSBVUyB0aGF0IGFyZSBzaGlwcGVkIFVTUFMgMXN0IGNsYXNzCj4gPiBp bnRlcm5hdGlvbmFsLiBUaGV5IGZseSBvbiB0aGUgc2FtZSBwbGFuZSBhcyBBaXIgTWFpbCBhbmQg Z2V0IGhlcmUgd2l0aGluCj4gPiB0eXBpY2FsbHkgM340IGRheSBtYXhpbXVtLiBPbmx5IG9uY2Ug b3V0IG9mIGRvemVucyBvZiB0aW1lcyBoYXZlIEkgaGFkIHRvCj4gPiB0byBjdXN0b21zIGFuZCBu byB0YXggd2FzIGxldmllZCwgbm8gZmVlcyBjaGFyZ2VkLiBFVkVSWSBleHByZXNzIGNvdXJpZXIu Cj4gPiBVUFMsIERITCwgZXRjIHJlcXVpcmVzIG9wZW5pbmcgYSB0YXggaW52b2ljZSBhbmQgcmVx dWlyZXMgcGlja3VwIGF0IHRoZQo+ID4gYWlycG9ydC4gVGhlcmUgaXMgYWx3YXlzIHNvbWUga2lu ZCB0YXggY2hhcmdlZCArIH5VJDEwMCAiaW52b2ljZSBzZXJ2aWNlIgo+ID4gY2hhcmdlIGJ5IHRo ZSBjYXJyaWVyLgo+ID4KPiA+IFVTIFBvc3RhbCBzZXJ2aWNlIGp1c3QgY2Fubm90IGJlIGJlYXQg b3IgbWF0Y2hlZCBpZiB5b3UgdGFrZSB0aGUgdGltZSB0bwo+ID4gdW5kZXJzdGFuZCBob3cgdG8g dXNlIGl0IDotKQo+ID4KPgo+IFNvdW5kcyBleGNlbGxlbnQuCj4gQWxhcyAsIHRoZSByZXN1bHRz IGFyZSBub3QgaWRlbnRpY2FsIGhlcmUKPgo+IEkgYWxtb3N0IGFsd2F5cyBnZXQgZG9vciB0byBk b29yIGRlbGl2ZXJ5IHdpdGggREhMLCBGZWRleCBhbmQgSSBNQVkgaGF2ZQo+IGhhZCBhIFVQUyBz aGlwbWVudC4KPiBHb29kcyBhbmQgc2VydmljZSB0YXggKEdTVCkgaXMgY2hhcmdlZCBpZiBncm9z cyB2YWx1ZSBpcyA+ICROWjUwMCBvciBzby4KPiBUaGF0IGNhbiBiZSBwYWlkIHJlbW90ZWx5IHdp dGhvdXQgYWlycG9ydCB2aXNpdC4KPiBJIGRvbid0IHJlY2FsbCBhIHZhc3RseSBvbmVyb3VzIG92 ZXJoZWFkIGNoYXJnZS4KPgo+IFVTUFMgaXMgcHJvbXB0IGJ1dCBzbG93ZXIgdGhhbiB0aGUgYWJv dmUuCj4gU29tZWJvZHkgc2VudCBtZSBhbiBvcmRlciB0aGFuIGEgc2xvd2VyIHNlcnZpY2UgdGhh biB0aGV5IHNob3VsZCBoYXZlCj4gcmVjZW50bHkgYW5kIFVTUFMgc3RpbGwgZ290IGl0IGhlcmUg YWNjZXB0YWJseSBmYXN0Lgo+IEknZCBleHBlY3Qgbm8gbW9yZSBvciBsZXNzIEdTVCBoYXNzbGVz Lgo+Cj4gVGhhaWxhbmQgdmVyc3VzIE5aIGRpZmZlcmVuY2VzIEkgZ3Vlc3MsIGZvciB3aGF0ZXZl ciByZWFzb24uCj4KPgo+ICAgICAgICAgIFJ1c3NlbGwKPiAtLQo+IGh0dHA6Ly93d3cucGljbGlz dC5jb20vdGVjaHJlZi9waWNsaXN0IFBJQy9TWCBGQVEgJiBsaXN0IGFyY2hpdmUKPiBWaWV3L2No YW5nZSB5b3VyIG1lbWJlcnNoaXAgb3B0aW9ucyBhdAo+IGh0dHA6Ly9tYWlsbWFuLm1pdC5lZHUv bWFpbG1hbi9saXN0aW5mby9waWNsaXN0Cj4KLS0gCmh0dHA6Ly93d3cucGljbGlzdC5jb20vdGVj aHJlZi9waWNsaXN0IFBJQy9TWCBGQVEgJiBsaXN0IGFyY2hpdmUKVmlldy9jaGFuZ2UgeW91ciBt ZW1iZXJzaGlwIG9wdGlvbnMgYXQKaHR0cDovL21haWxtYW4ubWl0LmVkdS9tYWlsbWFuL2xpc3Rp bmZvL3BpY2xpc3QK .