IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KIyBDb3B5cmlnaHQgKGMpIDIwMTEsIDIwMTkgTWlhLVNvZnR3YXJlIGFuZCBvdGhlcnMuDQojIA0KIyBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQojIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMA0KIyB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdA0KIyBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MjAuaHRtbA0KIyANCiMgQ29udHJpYnV0b3JzOg0KIyAJRW1tYW51ZWxsZSBSb3VpbGzpIChNaWEtU29mdHdhcmUpIC0gQnVnIDM1MjYxOCAtIFRvIGJlIGFibGUgdG8gdXNlIG5vbiBkZXJpdmVkIGZhY2V0IHN0cnVjdHVyYWwgZmVhdHVyZXMgYW5kIHNhdmUgdGhlbSB2YWx1ZXMuIA0KIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyAgIApCdW5kbGUtVmVuZG9yID0gRWNsaXBzZSBNb2RlbGluZyBQcm9qZWN0DQpCdW5kbGUtTmFtZSA9IE1vRGlzY28gRmFjZXQgRUZhY2V0IE1vZGVs