IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KIyBDb3B5cmlnaHQgKGMpIDIwMTEsIDIwMjAgTWlhLVNvZnR3YXJlIGFuZCBvdGhlcnMuDQojIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCiMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wDQojIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0DQojIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYyMC5odG1sDQojDQojIENvbnRyaWJ1dG9yczoNCiMgICAgIEdyZWdvaXJlIER1cGUgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgMzY2ODA0IC0gW1Jlc3RydWN0dXJpbmddIFRhYmxlIHdpZGdldCB1cGdyYWRlDQojCSAgR3LpZ29pcmUgRHVw6SAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyAzODg0MjIgLSBbVGFibGVdIFF1ZXJpZXMgZm9yIEluc3RhbmNpYXRpb25NZXRob2QgbmVlZHMgdG8gaGF2ZSAyIHBhcmFtZXRlcnMNCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKI1Byb3BlcnRpZXMgZmlsZSBmb3Igb3JnLmVjbGlwc2UubW9kaXNjby5mYWNldC5jb21tb24udWkNCnBhZ2UubmFtZSA9IE1vRGlzY28gRmFjZXQNCkJ1bmRsZS1WZW5kb3IgPSBFY2xpcHNlIE1vZGVsaW5nIFByb2plY3QNCkJ1bmRsZS1OYW1lID0gTW9EaXNjbyBGYWNldCBDb21tb24gVUkNCmNhdGVnb3J5Lm5hbWUgPSBNb0Rpc2NvIEZhY2V0DQplbWYuZmFjZXQuZXhhbXBsZXMgPSBNb0Rpc2NvIEZhY2V0IEV4YW1wbGVz