SGkgYWxsLA0KDQpJIHdyb3RlIGEgc21hbGwgcHJvZ3JhbSB3aGljaCBjb3B5IHRoZSBpbnB1dCBw YWNrZXRzIGZyb20gdGhlIGtlcm5lbCB0byB0aGUgDQp1c2Vyc3BhY2UgdXNpbmcgbGliaXBxLiBB bmQgdGhlIHBhY2tldHMgYXJlIHN0b3JlZCBpbiBhIGJ1ZmZlciBpbiB1c2Vyc3BhY2UgDQp3aGlj aCBpcyBhY3R1YWxseSBhbiBhcnJheSwgc2F5IGJ1Zi4NCg0KVXNpbmc6DQppcHFfcGFja2V0X21z Z190ICogbSA9IGlwcV9nZXRfcGFja2V0KGJ1Zik7DQoNCkkgY2FuIGFjY2VzcyBzb21lIHBhcmFt ZXRlcnMgb2YgdGhlIHBhY2tldHMgbGlrZSB0aGUgcGFja2V0IElELCBwYWNrZXQgDQpsZW5ndGgg d2hpY2ggYXJlIGRlZmluZWQgaW4gdGhlIHN0cnVjdCBpcHFfcGFja2V0X21zZ190LiBGb3IgZXhh bXBsZSwgDQptLT5wYWNrZXRfaWQgcG9pbnRzIHRvIHRoZSBwYWNrZXQgSUQuIEJ1dCBob3cgY2Fu IEkgZ2V0IG90aGVyIGluZm9ybWF0aW9uIG9mIA0KdGhlIHBhY2tldHMsIGxpa2UgdGhlIHNvdXJj ZSBhbmQgZGVzdGluYXRpb24gYWRkcmVzcywgdGhlIHByb3RvY29sLCBldGMuIElzIA0KdGhlcmUg YW55IGZ1bmN0aW9uIG9yIHNob3VsZCBJIHJlYWQgZGlmZmVyZW50IHVuaXQgb2YgdGhlIGFycmF5 LCBidWYsIHRvIGRvIA0KdGhhdD8NCg0KSSBhbSBvbmx5IGEgYmVnaW5uZXIuIE1hbnkgdGhhbmtz IGZvciB5b3VyIGtpbmQgcmVwbHkuDQoNCllhbg0K