LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICogQ29weXJpZ2h0IChjKSAyMDAwLCAyMDA1IElCTSBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLgogKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCiAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAogKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdCAKICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKICogCiAqIENvbnRyaWJ1dG9yczoKICogICAgIElCTSBDb3Jwb3JhdGlvbiAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAojaW5jbHVkZSAid2luZG93cy5oIgoKVlNfVkVSU0lPTl9JTkZPIFZFUlNJT05JTkZPCiBQUk9EVUNUVkVSU0lPTiAwLDAsMCwwCiBGSUxFRkxBR1NNQVNLIDB4M2ZMCiNpZmRlZiBfREVCVUcKIEZJTEVGTEFHUyAweDFMCiNlbHNlCiBGSUxFRkxBR1MgMHgwTAojZW5kaWYKIEZJTEVPUyAweDQwMDAwTAogRklMRVRZUEUgMHgyTAogRklMRVNVQlRZUEUgMHgwTApCRUdJTgogICAgQkxPQ0sgIlN0cmluZ0ZpbGVJbmZvIgogICAgQkVHSU4KICAgICAgICBCTE9DSyAiMDQwOTA0YjAiCiAgICAgICAgQkVHSU4KICAgICAgICAgICAgVkFMVUUgIkNvbXBhbnlOYW1lIiwgIklCTSBDb3Jwb3JhdGlvblwwIgogICAgICAgICAgICBWQUxVRSAiRmlsZURlc2NyaXB0aW9uIiwgIlN0YW5kYXJkIFdpZGdldCBUb29sa2l0XDAiCiAgICAgICAgICAgIFZBTFVFICJJbnRlcm5hbE5hbWUiLCAiU1dUXDAiCiAgICAgICAgICAgIFZBTFVFICJMZWdhbENvcHlyaWdodCIsICKpIENvcHlyaWdodCAyMDAwLCAyMDAzIElCTSBDb3JwLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cMCIKICAgICAgICAgICAgVkFMVUUgIk9yaWdpbmFsRmlsZW5hbWUiLCBTV1RfT1JHX0ZJTEVOQU1FCiAgICAgICAgICAgIFZBTFVFICJQcm9kdWN0TmFtZSIsICJcMCIKICAgICAgICAgICAgVkFMVUUgIlByb2R1Y3RWZXJzaW9uIiwgIjAsMCwwLDBcMCIKICAgICAgICBFTkQKICAgIEVORAogICAgQkxPQ0sgIlZhckZpbGVJbmZvIgogICAgQkVHSU4KICAgICAgICBWQUxVRSAiVHJhbnNsYXRpb24iLCAweDQwOSwgMTIwMAogICAgRU5ECkVORAoKLyogU0hNRU5VQkFSIFBvY2tldCBQQyAKICogSURfTUVOVSBTSE1FTlVCQVIgRElTQ0FSREFCTEUKICogQkVHSU4KICogCUlEX01FTlUsIDEsCiAqICBJTUFHRV9OT05FLCBJRF9NRU5VX0lURU0xLCAwLCAwLAogKiAgMCwgMCwgMCwKICogRU5ECiAqIElEX01FTlUgTUVOVSBESVNDQVJEQUJMRQogKiBCRUdJTgogKiAgTUVOVUlURU0gIiIsIElEX01FTlVfSVRFTTEKICogRU5ECiAqLwoxMDAgUkNEQVRBIERJU0NBUkRBQkxFIApCRUdJTgogICAgMTAwLCAxLAogICAgLTIsIDEwMSwgMCwgMCwgCiAgICAwLCAwLCAwLApFTkQKCjEwMCBNRU5VIERJU0NBUkRBQkxFCkJFR0lOCglNRU5VSVRFTSAiIiwgMTAxCkVORA==