LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICogQ29weXJpZ2h0IChjKSAyMDAzLCAyMDA1IElCTSBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLgogKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCiAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAogKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAogKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAqgKiAKICogQ29udHJpYnV0b3JzOgogKiAgICAgSUJNIENvcnBvcmF0aW9uIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwpwYWNrYWdlIG9yZy5lY2xpcHNlLndzdC5zZXJ2ZXIuY29yZS5tb2RlbDsKCmltcG9ydCBvcmcuZWNsaXBzZS53c3Quc2VydmVyLmNvcmUuSU1vZHVsZTsKLyoqCiAqIEFuIGV2ZW50IGZpcmVkIHdoZW4gYSBtb2R1bGUgZmFjdG9yeSBjaGFuZ2VzLgogKiAKICogQHNpbmNlIDEuMAogKi8KcHVibGljIGNsYXNzIE1vZHVsZUZhY3RvcnlFdmVudCB7Cglwcm90ZWN0ZWQgSU1vZHVsZVtdIGFkZGVkOwoJcHJvdGVjdGVkIElNb2R1bGVbXSByZW1vdmVkOwoKCS8qKgoJICogQ3JlYXRlIGEgbmV3IGV2ZW50LgoJICogCgkgKiBAcGFyYW0gYWRkZWQgYWRkZWQgbW9kdWxlcwoJICogQHBhcmFtIHJlbW92ZWQgcmVtb3ZlZCBtb2R1bGVzCgkgKi8KCXB1YmxpYyBNb2R1bGVGYWN0b3J5RXZlbnQoSU1vZHVsZVtdIGFkZGVkLCBJTW9kdWxlW10gcmVtb3ZlZCkgewoJCXRoaXMuYWRkZWQgPSBhZGRlZDsKCQl0aGlzLnJlbW92ZWQgPSByZW1vdmVkOwoJfQoKCS8qKgoJICogUmV0dXJucyBhbnkgbW9kdWxlcyB0aGF0IGhhdmUgYmVlbiBhZGRlZC4KCSAqIAoJICogQHJldHVybiBvcmcuZWNsaXBzZS53c3Quc2VydmVyLmNvcmUubW9kZWwuSU1vZHVsZVtdCgkgKi8KCXB1YmxpYyBJTW9kdWxlW10gZ2V0QWRkZWRNb2R1bGVzKCkgewoJCXJldHVybiBhZGRlZDsKCX0KCgkvKioKCSAqIFJldHVybnMgYW55IG1vZHVsZXMgdGhhdCBoYXZlIGJlZW4gcmVtb3ZlZC4KCSAqIAoJICogQHJldHVybiBvcmcuZWNsaXBzZS53c3Quc2VydmVyLmNvcmUubW9kZWwuSU1vZHVsZVtdCgkgKi8KCXB1YmxpYyBJTW9kdWxlW10gZ2V0UmVtb3ZlZE1vZHVsZXMoKSB7CgkJcmV0dXJuIHJlbW92ZWQ7Cgl9Cn0=