LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICogQ29weXJpZ2h0IChjKSAyMDAzLCAyMDA0IElCTSBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLgogKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCiAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIENvbW1vbiBQdWJsaWMgTGljZW5zZSB2MS4wCiAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0CiAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvY3BsLXYxMC5odG1sCqAqCiAqIENvbnRyaWJ1dG9yczoKICogICAgSUJNIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwpwYWNrYWdlIG9yZy5lY2xpcHNlLndzdC5zZXJ2ZXIudWk7Ci8qKgogKiBIZWxwZXIgY2xhc3MgdGhhdCBzdG9yZXMgcHJlZmVyZW5jZSBpbmZvcm1hdGlvbiBmb3IKICogdGhlIHNlcnZlciB0b29scyBVSS4KICoKICogPHA+VGhpcyBpbnRlcmZhY2UgaXMgbm90IGludGVuZGVkIHRvIGJlIGltcGxlbWVudGVkIGJ5IGNsaWVudHMuPC9wPgogKi8KcHVibGljIGludGVyZmFjZSBJU2VydmVyVUlQcmVmZXJlbmNlcyB7CglwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgU0FWRV9FRElUT1JTX05FVkVSID0gMDsKCXB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBTQVZFX0VESVRPUlNfUFJPTVBUID0gMTsKCXB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBTQVZFX0VESVRPUlNfQVVUTyA9IDI7CgoJLyoqCgkgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIHVzZXIgc2hvdWxkIGJlIHByb21wdGVkIGJlZm9yZSBtYWtpbmcgYW4KCSAqIGlycmV2ZXJzaWJsZSBjaGFuZ2UgaW4gdGhlIGVkaXRvci4KCSAqIAoJICogQHJldHVybiBib29sZWFuCgkgKi8KCXB1YmxpYyBib29sZWFuIGdldFByb21wdEJlZm9yZUlycmV2ZXJzaWJsZUNoYW5nZSgpOwoKCS8qKgoJICogUmV0dXJucyB0aGUgZGVmYXVsdCB2YWx1ZSBvZiB3aGV0aGVyIHRoZSB1c2VyIHNob3VsZCBiZSBwcm9tcHRlZAoJICogYmVmb3JlIG1ha2luZyBhbiBpcnJldmVyc2libGUgY2hhbmdlIGluIHRoZSBlZGl0b3IuCgkgKgoJICogQHJldHVybiBib29sZWFuCgkgKi8KCXB1YmxpYyBib29sZWFuIGdldERlZmF1bHRQcm9tcHRCZWZvcmVJcnJldmVyc2libGVDaGFuZ2UoKTsKCgkvKioKCSAqIFNldHMgd2hldGhlciB0aGUgdXNlciBzaG91bGQgYmUgcHJvbXB0ZWQgYmVmb3JlIG1ha2luZyBhbgoJICogaXJyZXZlcnNpYmxlIGNoYW5nZSBpbiB0aGUgZWRpdG9yLgoJICoKCSAqIEByZXR1cm4gYm9vbGVhbgoJICovCglwdWJsaWMgdm9pZCBzZXRQcm9tcHRCZWZvcmVJcnJldmVyc2libGVDaGFuZ2UoYm9vbGVhbiBiKTsKCgkvKioKCSAqIFJldHVybnMgdGhlIGRlZmF1bHQgc2V0dGluZyBmb3Igc2F2aW5nIGVkaXRvcnMgYmVmb3JlIGxhdW5jaGluZy4KCSAqIAoJICogQHJldHVybiBieXRlCgkgKi8KCXB1YmxpYyBieXRlIGdldERlZmF1bHRTYXZlRWRpdG9ycygpOwoKCS8qKgoJICogUmV0dXJucyB0aGUgc2V0dGluZyBmb3Igc2F2aW5nIGVkaXRvcnMgYmVmb3JlIGxhdW5jaGluZy4KCSAqIAoJICogQHJldHVybiBieXRlCgkgKi8KCXB1YmxpYyBieXRlIGdldFNhdmVFZGl0b3JzKCk7CgoJLyoqCgkgKiBTZXRzIHRoZSB2YWx1ZSBmb3Igc2F2aW5nIGVkaXRvcnMgYmVmb3JlIGxhdW5jaGluZy4KCSAqIAoJICogQHBhcmFtIGJ5dGUKCSAqLwoJcHVibGljIHZvaWQgc2V0U2F2ZUVkaXRvcnMoYnl0ZSBiKTsKfQ==