cGFja2FnZSBjdXN0VGVtcGxhdGVzCgppbXBvcnQgb3JnLmVjbGlwc2UuYXBwNG1jLmFtYWx0aGVhLm1vZGVsLkFtYWx0aGVhCmltcG9ydCB0ZW1wbGF0ZXMuTTJUX091dHB1dF9UcmFuc2Zvcm1lcgoKY2xhc3MgQ3VzdFRyYW5zZm9ybWVyIGV4dGVuZHMgTTJUX091dHB1dF9UcmFuc2Zvcm1lciB7CgkvKioKCSAqIENyZWF0ZXMgb3V0cHV0IHdpdGggYSAidGVtcGxhdGUgb25seSIgc3R5bGUgKGxpa2UgWHBhbmQvWHRlbmQpLgoJICovCgkgIG92ZXJyaWRlIFN0cmluZyBnZW5lcmF0ZU91dHB1dDEoQW1hbHRoZWEgYW1hbHRoZWEpICcnJwoJCSBDdXN0b21lciB0ZW1wbGF0ZQoJCSCrc3VwZXIuZ2VuZXJhdGVPdXRwdXQxKGFtYWx0aGVhKbsKCScnJwoKCgkvKioKCSAqIENyZWF0ZXMgb3V0cHV0IHdpdGggYSBjb21iaW5hdGlvbiBvZiB0ZW1wbGF0ZSBhbmQgZnVuY3Rpb25zLgoJICogVGhpcyBhbGxvd3MgYSBtb3JlIGZsZXhpYmxlIHVzZSBvZiB1dGlsaXR5IGZ1bmN0aW9ucyBhbmQgbGFtYmRhcy4KCSAqLwoJb3ZlcnJpZGUgU3RyaW5nIGdlbmVyYXRlT3V0cHV0MihBbWFsdGhlYSBhbWFsdGhlYSkgJycnCglDdXN0b21lciB0ZW1wbGF0ZQoJq3N1cGVyLmdlbmVyYXRlT3V0cHV0MihhbWFsdGhlYSm7CgknJycKfQ==