LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICogQ29weXJpZ2h0IChjKSAyMDA0IElCTSBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLgogKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCiAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIENvbW1vbiBQdWJsaWMgTGljZW5zZSB2MS4wCiAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0CiAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvY3BsLXYxMC5odG1sCqAqCiAqIENvbnRyaWJ1dG9yczoKICogICAgSUJNIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwpwYWNrYWdlIG9yZy5lY2xpcHNlLmpzdC5zZXJ2ZXIudG9tY2F0LmNvcmU7CgppbXBvcnQgamF2YS51dGlsLkxpc3Q7Ci8qKgogKiAKICovCnB1YmxpYyBpbnRlcmZhY2UgSVRvbWNhdENvbmZpZ3VyYXRpb24gewoJLyoqCgkgKiBSZXR1cm5zIGEgbGlzdCBvZiBtaW1lIG1hcHBpbmdzLgoJICogCgkgKiBAcmV0dXJuIG1pbWUgbWFwcGluZ3MKCSAqLwoJcHVibGljIExpc3QgZ2V0TWltZU1hcHBpbmdzKCk7CgkKCS8qKgoJICogUmV0dXJucyBhIGxpc3Qgb2YgU2VydmVyUG9ydHMgdGhhdCB0aGlzIGNvbmZpZ3VyYXRpb24gdXNlcy4KCSAqCgkgKiBAcmV0dXJuIHRoZSBzZXJ2ZXIgcG9ydHMKCSAqLwoJcHVibGljIExpc3QgZ2V0U2VydmVyUG9ydHMoKTsKCgkvKioKCSAqIFJldHVybiBhIGxpc3Qgb2YgdGhlIHdlYiBtb2R1bGVzIGluIHRoaXMgc2VydmVyLgoJICogCgkgKiBAcmV0dXJuIHRoZSB3ZWIgbW9kdWxlcwoJICovCglwdWJsaWMgTGlzdCBnZXRXZWJNb2R1bGVzKCk7Cn0=