SSBiZWxpZXZlIHlvdSB3YW50IHRvIGNhc3QgdGhlIGNoYXJhY3RlcnMuIEV4YW1wbGUsIGZyb20g bWVtb3J5IHZzIHRyaWFsOgoKKCgodWludDMyX3Qp4oCZROKAmSkgPDwgMjQpCgpUaGUgcHJvYmxl bSBzZWVtcyB0byBiZSB3aGVuIHRoZSBhcmR1aW5vIDE2LWJpdCBjb21waWxlciBwcm9tb3RlcyB0 aGUgY2hhciB0byBpdHMgbG9uZ2VzdCBuYXR1cmFsIGludGVnZXIgc2l6ZSwgd2hpY2ggaXMgMTYg Yml0cy4gVGhlIEVTUCBoYW5kbGVzIDMyIGJpdCBpbnRvIG5hdGl2ZWx5IHNvIGNoYXJzIGJlY29t ZSB0aGUgZGVzaXJlZCBsZW5ndGggYXV0b21hdGljYWxseS4gCgpPbiB0aGUgYXJkdWlubywgd2l0 aG91dCBjYXN0aW5nIHRoZSB0YXJnZXQgb2YgdGhlIHNoaWZ0IHRvIGEgbG9uZyBlbm91Z2ggc2l6 ZSBtYW51YWxseSwgaXQgYmFzaWNhbGx5IHNoaWZ0cyBhbGwgdGhlIGJpdHMgb2ZmIHRoZSBlbmQg YW5kIGJlY29tZXMgemVyby4gVGhlcmXigJlzIHByb2JhYmx5IGEgd2FybmluZyBhYm91dCB0aGlz IGluIHlvdXIgY29tcGlsZSBsb2dzLiAKCi0tTWljaGFlbCAoZnJvbSBhbiBpUGhvbmUpCgoKPiBP biBBdWcgMTEsIDIwMTgsIGF0IDc6MDkgQU0sIEphc29uIFdoaXRlIDx3aGl0ZXdhdGVyc3NvZnR3 YXJlaW5mb0BnbWFpbC5jb20+IHdyb3RlOgo+IAo+IE1ldGhvZCBBOiBDYXN0IGVhY2ggb2YgdGhl IGNoYXJhY3RlcnMgdG8gdWludDMyX3QgYW5kIGJlIHN1cmUgdG8gY29tcGxldGVseQo+IHN1cnJv dW5kIHRoZSBjYXN0ZWQgdmFsdWUgaW4gcGFyZW50aGVzZXMuCj4gCj4gTWV0aG9kIEIgKHByb2Jh Ymx5IGJldHRlciBpbiBteSBvcGluaW9uKTogc3RydWN0dXJlICwgdW5pb24sIG9yIGV2ZW4ganVz dAo+IGFuIGFycmF5IG9mIHVpbnQ4X3QuCj4gCj4gT24gU2F0dXJkYXksIEF1Z3VzdCAxMSwgMjAx OCwgSnVzdGluIFJpY2hhcmRzIDxqdXN0aW4ucmljaGFyZHNAZ21haWwuY29tPgo+IHdyb3RlOgo+ IAo+PiBQcm9iYWJseSBiZXN0IHBvc2VkIGluIGFuIGFyZHVpbm8gZm9ydW0gYnV0IGhvcGluZyBz b21lb25lIGNvdWxkIHBpY2sgYW4KPj4gb2J2aW91cyBtaXN0YWtlLCBzdGVlciBtZSBpbiB0aGUg cmlnaHQgZGlyZWN0aW9uIG9yIHN1Z2dlc3QgYSBiZXR0ZXIgd2F5Lgo+PiAKPj4gSSBoYXZlIGdl bmVyYWxseSBhdm9pZGVkIHRoZSA8PCBhbmQgPj4gb3BlcmF0b3JzIGJ1dCBJIHRob3VnaHQgdGhl eSB3b3VsZAo+PiBiZSBpZGVhbCB0byBwYWNrIGEgMzJiaXQgdmFyaWFibGUgd2l0aCBjb21tYW5k cy4KPj4gCj4+IFNvIHRyeWluZyB0aGlzCj4+IAo+PiB1aW50MzJfdCBkcyA9ICgnRCc8PDI0KXwo J0MnPDwxNikgfCgnQic8PDgpfCgnQScpOwo+PiAKPj4gd2hlbiBjb21waWxlZCBmb3IgYW4gRVNQ ODI2NiB0YXJnZXQgaW4gYXJkdWlubyBJREUgYW5kIHByaW50ZWQgZ2l2ZXMKPj4gCj4+IDB4NDQ0 MzQyNDEgYXMgZXhwZWN0ZWQuCj4+IAo+PiB3aGVuIHRoZSB0YXJnZXQgaXMgVU5PIGl0IHByb2R1 Y2VzCj4+IAo+PiAweDQyNDEKPj4gCj4+IERvaW5nIHRoaXMKPj4gCj4+IHVpbnQzMl90IGRzID0g J0QnOwo+PiAgZHMgPSAoZHMgPDwgOCl8ICdDJzsKPj4gIGRzID0gKGRzIDw8IDgpfCAnQic7Cj4+ ICBkcyA9IChkcyA8PCA4KXwgJ0EnOwo+PiAKPj4gZm9yIGVpdGhlciB0YXJnZXQgd29ya3Mgb2su Cj4+IAo+PiBJIGhhdmUgdHJpZWQgdHlwZSBjYXN0aW5nIChub3Qgc3VyZSB0aGF0IGlzIHRoZSBy aWdodCBwaHJhc2UpIGxpa2UKPj4gCj4+IHVpbnQzMl90IGRzID0gdWludDMyX3QoJ0QnPDwyNCl8 dWludDMyX3QoJ0MnPDwxNikKPj4gfHVpbnQzMl90KCdCJzw8OCl8dWludDMyX3QoJ0EnKTsKPj4g Cj4+IEJ1dCBubyBqb3kgZm9yIHRoZSB1bm8gdGFyZ2V0Lgo+PiAKPj4gVGhlIGZpbmFsIGdvYWwg aXMgdG8gY29uc3RydWN0IFNQSSBjb21tYW5kcyB3aXRoIGEgZXNwODI2NiBtYXN0ZXIgd2l0aCBh Cj4+IFVOTyBzbGF2ZS4KPj4gCj4+IFRoZSBmb2xsb3dpbmcgY29tcGlsZXMgYW5kIHdvcmtzIGZp bmUgZm9yIHRoZSBlc3A4MjY2IHRhcmdldCBidXQgaGFzIHRoZQo+PiBpc3N1ZXMgbWVudGlvbmVk IGFib3ZlIGZvciB0aGUgVU5PIHRhcmdldC4KPj4gCj4+ICNkZWZpbmUgVU5PMV9BRERSIHVpbnQz Ml90KHVpbnQzMl90KCdVJyl8dWludDMyX3QoJzEnPDw4KSkgLy9BZGRyZXNzIFVOTzEKPj4gI2Rl ZmluZSBjbWRSRUFEUElOIHVpbnQzMl90KFVOTzFfQUREUiB8IHVpbnQzMl90KCdSJzw8MTYpKQo+ PiAjZGVmaW5lIGNtZFdSSVRFUElOIHVpbnQzMl90KChVTk8xX0FERFIgfCB1aW50MzJfdCgnVyc8 PDE2KSkKPj4gI2RlZmluZSBjbWRSRUFEUElOMSB1aW50MzJfdChjbWRSRUFEUElOIHwgdWludDMy X3QoJzEnPDwyNCkpCj4+ICNkZWZpbmUgY21kUkVBRFBJTjIgdWludDMyX3QoY21kUkVBRFBJTiB8 IHVpbnQzMl90KCcyJzw8MjQpKQo+PiAjZGVmaW5lIGNtZFJFQURQSU4zIHVpbnQzMl90KGNtZFJF QURQSU4gfCB1aW50MzJfdCgnMyc8PDI0KSkKPj4gCj4+IEFueSB0aXBzPwo+PiAKPj4gSnVzdGlu Cj4+IC0tCj4+IGh0dHA6Ly93d3cucGljbGlzdC5jb20vdGVjaHJlZi9waWNsaXN0IFBJQy9TWCBG QVEgJiBsaXN0IGFyY2hpdmUKPj4gVmlldy9jaGFuZ2UgeW91ciBtZW1iZXJzaGlwIG9wdGlvbnMg YXQKPj4gaHR0cDovL21haWxtYW4ubWl0LmVkdS9tYWlsbWFuL2xpc3RpbmZvL3BpY2xpc3QKPj4g Cj4gCj4gCj4gLS0gCj4gSmFzb24gV2hpdGUKPiAtLSAKPiBodHRwOi8vd3d3LnBpY2xpc3QuY29t L3RlY2hyZWYvcGljbGlzdCBQSUMvU1ggRkFRICYgbGlzdCBhcmNoaXZlCj4gVmlldy9jaGFuZ2Ug eW91ciBtZW1iZXJzaGlwIG9wdGlvbnMgYXQKPiBodHRwOi8vbWFpbG1hbi5taXQuZWR1L21haWxt YW4vbGlzdGluZm8vcGljbGlzdAoKCi0tIApodHRwOi8vd3d3LnBpY2xpc3QuY29tL3RlY2hyZWYv cGljbGlzdCBQSUMvU1ggRkFRICYgbGlzdCBhcmNoaXZlClZpZXcvY2hhbmdlIHlvdXIgbWVtYmVy c2hpcCBvcHRpb25zIGF0Cmh0dHA6Ly9tYWlsbWFuLm1pdC5lZHUvbWFpbG1hbi9saXN0aW5mby9w aWNsaXN0Cg== .