LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCi8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovDQovKiAgZnRtb2R1bGUuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLw0KLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8NCi8qICAgIEFtaWdhLXNwZWNpZmljIEZyZWVUeXBlIG1vZHVsZSBzZWxlY3Rpb24uICAgICAgICAgICAgICAgICAgICAgICAgICAgICovDQovKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLw0KLyogIENvcHlyaWdodCAyMDA1LTIwMTUgYnkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8NCi8qICBXZXJuZXIgTGVtYmVyZyBhbmQgRGV0bGVmIFf8cmtuZXIuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovDQovKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLw0KLyogIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBGcmVlVHlwZSBwcm9qZWN0LCBhbmQgbWF5IG9ubHkgYmUgdXNlZCwgICAgICAgKi8NCi8qICBtb2RpZmllZCwgYW5kIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRnJlZVR5cGUgcHJvamVjdCAgICAgICovDQovKiAgbGljZW5zZSwgTElDRU5TRS5UWFQuICBCeSBjb250aW51aW5nIHRvIHVzZSwgbW9kaWZ5LCBvciBkaXN0cmlidXRlICAgICAqLw0KLyogIHRoaXMgZmlsZSB5b3UgaW5kaWNhdGUgdGhhdCB5b3UgaGF2ZSByZWFkIHRoZSBsaWNlbnNlIGFuZCAgICAgICAgICAgICAgKi8NCi8qICB1bmRlcnN0YW5kIGFuZCBhY2NlcHQgaXQgZnVsbHkuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovDQovKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLw0KLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCg0KLyoNCiAqIFRvIGF2b2lkIHRoYXQgYWxsIHlvdXIgcHJvZ3JhbXMgaW5jbHVkZSBhbGwgRnJlZVR5cGUgbW9kdWxlcywNCiAqIHlvdSBjb3B5IHRoZSBmb2xsb3dpbmcgcGllY2Ugb2Ygc291cmNlIGNvZGUgaW50byB5b3VyIG93bg0KICogc291cmNlIGZpbGUgYW5kIHNwZWNpZnkgd2hpY2ggbW9kdWxlcyB5b3UgcmVhbGx5IG5lZWQgaW4geW91cg0KICogYXBwbGljYXRpb24gYnkgdW5jb21tZW50aW5nIHRoZSBhcHByb3ByaWF0ZSBsaW5lcy4NCiAqLw0KLyoNCi8vI2RlZmluZSBGVF9VU0VfQVVUT0ZJVCAvLyBhdXRvZml0dGVyDQovLyNkZWZpbmUgRlRfVVNFX1JBU1RFUiAgLy8gbW9ub2Nocm9tZSByYXN0ZXJpemVyDQovLyNkZWZpbmUgRlRfVVNFX1NNT09USCAgLy8gYW50aS1hbGlhc2luZyByYXN0ZXJpemVyDQovLyNkZWZpbmUgRlRfVVNFX1RUICAgICAgLy8gdHJ1ZXR5cGUgZm9udCBkcml2ZXINCi8vI2RlZmluZSBGVF9VU0VfVDEgICAgICAvLyB0eXBlMSBmb250IGRyaXZlcg0KLy8jZGVmaW5lIEZUX1VTRV9UNDIgICAgIC8vIHR5cGU0MiBmb250IGRyaXZlcg0KLy8jZGVmaW5lIEZUX1VTRV9UMUNJRCAgIC8vIGNpZC1rZXllZCB0eXBlMSBmb250IGRyaXZlciAgLy8gbm8gY21hcCBzdXBwb3J0DQovLyNkZWZpbmUgRlRfVVNFX0NGRiAgICAgLy8gb3BlbnR5cGUgZm9udCBkcml2ZXINCi8vI2RlZmluZSBGVF9VU0VfQkRGICAgICAvLyBiZGYgYml0bWFwIGZvbnQgZHJpdmVyDQovLyNkZWZpbmUgRlRfVVNFX1BDRiAgICAgLy8gcGNmIGJpdG1hcCBmb250IGRyaXZlcg0KLy8jZGVmaW5lIEZUX1VTRV9QRlIgICAgIC8vIHBmciBmb250IGRyaXZlcg0KLy8jZGVmaW5lIEZUX1VTRV9XSU5GTlQgIC8vIHdpbmRvd3MgLmZudHwuZm9uIGJpdG1hcCBmb250IGRyaXZlcg0KLy8jZGVmaW5lIEZUX1VTRV9PVFYgICAgIC8vIG9wZW50eXBlIHZhbGlkYXRvcg0KLy8jZGVmaW5lIEZUX1VTRV9HWFYgICAgIC8vIHRydWV0eXBlIGd4IHZhbGlkYXRvcg0KI2luY2x1ZGUgIkZUOnNyYy9iYXNlL2Z0aW5pdC5jIg0KKi8NCg0KLyogTWFrZSBzdXJlIHRoYXQgdGhlIG5lZWRlZCBzdXBwb3J0IG1vZHVsZXMgYXJlIGJ1aWx0IGluLg0KICogRGVwZW5kZW5jaWVzIGNhbiBiZSBmb3VuZCBieSBzZWFyY2hpbmcgZm9yIEZUX0dldF9Nb2R1bGUuDQogKi8NCg0KI2lmZGVmIEZUX1VTRV9UNDINCiNkZWZpbmUgRlRfVVNFX1RUDQojZW5kaWYNCg0KI2lmZGVmIEZUX1VTRV9UVA0KI2RlZmluZSBGVF9VU0VfU0ZOVA0KI2VuZGlmDQoNCiNpZmRlZiBGVF9VU0VfQ0ZGDQojZGVmaW5lIEZUX1VTRV9TRk5UDQojZGVmaW5lIEZUX1VTRV9QU0hJTlQNCiNkZWZpbmUgRlRfVVNFX1BTTkFNRVMNCiNlbmRpZg0KDQojaWZkZWYgRlRfVVNFX1QxDQojZGVmaW5lIEZUX1VTRV9QU0FVWA0KI2RlZmluZSBGVF9VU0VfUFNISU5UDQojZGVmaW5lIEZUX1VTRV9QU05BTUVTDQojZW5kaWYNCg0KI2lmZGVmIEZUX1VTRV9UMUNJRA0KI2RlZmluZSBGVF9VU0VfUFNBVVgNCiNkZWZpbmUgRlRfVVNFX1BTSElOVA0KI2RlZmluZSBGVF9VU0VfUFNOQU1FUw0KI2VuZGlmDQoNCiNpZmRlZiBGVF9VU0VfUFNBVVgNCiNkZWZpbmUgRlRfVVNFX1BTTkFNRVMNCiNlbmRpZg0KDQojaWZkZWYgRlRfVVNFX1NGTlQNCiNkZWZpbmUgRlRfVVNFX1BTTkFNRVMNCiNlbmRpZg0KDQovKiBOb3cgaW5jbHVkZSB0aGUgbW9kdWxlcyAqLw0KDQojaWZkZWYgRlRfVVNFX0FVVE9GSVQNCkZUX1VTRV9NT0RVTEUoIEZUX01vZHVsZV9DbGFzcywgYXV0b2ZpdF9tb2R1bGVfY2xhc3MgKQ0KI2VuZGlmDQoNCiNpZmRlZiBGVF9VU0VfVFQNCkZUX1VTRV9NT0RVTEUoIEZUX0RyaXZlcl9DbGFzc1JlYywgdHRfZHJpdmVyX2NsYXNzICkNCiNlbmRpZg0KDQojaWZkZWYgRlRfVVNFX1QxDQpGVF9VU0VfTU9EVUxFKCBGVF9Ecml2ZXJfQ2xhc3NSZWMsIHQxX2RyaXZlcl9jbGFzcyApDQojZW5kaWYNCg0KI2lmZGVmIEZUX1VTRV9DRkYNCkZUX1VTRV9NT0RVTEUoIEZUX0RyaXZlcl9DbGFzc1JlYywgY2ZmX2RyaXZlcl9jbGFzcyApDQojZW5kaWYNCg0KI2lmZGVmIEZUX1VTRV9UMUNJRA0KRlRfVVNFX01PRFVMRSggRlRfRHJpdmVyX0NsYXNzUmVjLCB0MWNpZF9kcml2ZXJfY2xhc3MgKQ0KI2VuZGlmDQoNCiNpZmRlZiBGVF9VU0VfUEZSDQpGVF9VU0VfTU9EVUxFKCBGVF9Ecml2ZXJfQ2xhc3NSZWMsIHBmcl9kcml2ZXJfY2xhc3MgKQ0KI2VuZGlmDQoNCiNpZmRlZiBGVF9VU0VfVDQyDQpGVF9VU0VfTU9EVUxFKCBGVF9Ecml2ZXJfQ2xhc3NSZWMsIHQ0Ml9kcml2ZXJfY2xhc3MgKQ0KI2VuZGlmDQoNCiNpZmRlZiBGVF9VU0VfV0lORk5UDQpGVF9VU0VfTU9EVUxFKCBGVF9Ecml2ZXJfQ2xhc3NSZWMsIHdpbmZudF9kcml2ZXJfY2xhc3MgKQ0KI2VuZGlmDQoNCiNpZmRlZiBGVF9VU0VfUENGDQpGVF9VU0VfTU9EVUxFKCBGVF9Ecml2ZXJfQ2xhc3NSZWMsIHBjZl9kcml2ZXJfY2xhc3MgKQ0KI2VuZGlmDQoNCiNpZmRlZiBGVF9VU0VfUFNBVVgNCkZUX1VTRV9NT0RVTEUoIEZUX01vZHVsZV9DbGFzcywgcHNhdXhfbW9kdWxlX2NsYXNzICkNCiNlbmRpZg0KDQojaWZkZWYgRlRfVVNFX1BTTkFNRVMNCkZUX1VTRV9NT0RVTEUoIEZUX01vZHVsZV9DbGFzcywgcHNuYW1lc19tb2R1bGVfY2xhc3MgKQ0KI2VuZGlmDQoNCiNpZmRlZiBGVF9VU0VfUFNISU5UDQpGVF9VU0VfTU9EVUxFKCBGVF9Nb2R1bGVfQ2xhc3MsIHBzaGludGVyX21vZHVsZV9jbGFzcyApDQojZW5kaWYNCg0KI2lmZGVmIEZUX1VTRV9SQVNURVINCkZUX1VTRV9NT0RVTEUoIEZUX1JlbmRlcmVyX0NsYXNzLCBmdF9yYXN0ZXIxX3JlbmRlcmVyX2NsYXNzICkNCiNlbmRpZg0KDQojaWZkZWYgRlRfVVNFX1NGTlQNCkZUX1VTRV9NT0RVTEUoIEZUX01vZHVsZV9DbGFzcywgc2ZudF9tb2R1bGVfY2xhc3MgKQ0KI2VuZGlmDQoNCiNpZmRlZiBGVF9VU0VfU01PT1RIDQpGVF9VU0VfTU9EVUxFKCBGVF9SZW5kZXJlcl9DbGFzcywgZnRfc21vb3RoX3JlbmRlcmVyX2NsYXNzICkNCkZUX1VTRV9NT0RVTEUoIEZUX1JlbmRlcmVyX0NsYXNzLCBmdF9zbW9vdGhfbGNkX3JlbmRlcmVyX2NsYXNzICkNCkZUX1VTRV9NT0RVTEUoIEZUX1JlbmRlcmVyX0NsYXNzLCBmdF9zbW9vdGhfbGNkdl9yZW5kZXJlcl9jbGFzcyApDQojZW5kaWYNCg0KI2lmZGVmIEZUX1VTRV9PVFYNCkZUX1VTRV9NT0RVTEUoIEZUX01vZHVsZV9DbGFzcywgb3R2X21vZHVsZV9jbGFzcyApDQojZW5kaWYNCg0KI2lmZGVmIEZUX1VTRV9CREYNCkZUX1VTRV9NT0RVTEUoIEZUX0RyaXZlcl9DbGFzc1JlYywgYmRmX2RyaXZlcl9jbGFzcyApDQojZW5kaWYNCg0KI2lmZGVmIEZUX1VTRV9HWFYNCkZUX1VTRV9NT0RVTEUoIEZUX01vZHVsZV9DbGFzcywgZ3h2X21vZHVsZV9jbGFzcyApDQojZW5kaWYNCg0KLyoNCkxvY2FsIFZhcmlhYmxlczoNCmNvZGluZzogbGF0aW4tMQ0KRW5kOg0KKi8NCg==