LyoqDQogKiA8Y29weXJpZ2h0Pg0KICogDQogKiBDb3B5cmlnaHQgKGMpIDIwMTEgU2VlNHN5cyBhbmQgb3RoZXJzLg0KICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscw0KICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wDQogKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdA0KICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwNCiAqIA0KICogQ29udHJpYnV0b3JzOiANCiAqICAgICBTZWU0c3lzIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uDQogKiANCiAqIDwvY29weXJpZ2h0Pg0KICovDQqrSU1QT1JUIGluc3RhbmNlbW9kZWy7DQoNCqtERUZJTkUgbWFpbiBGT1IgQXBwbGljYXRpb267DQqrRklMRSAiQ29uZmlnLmgiIEhPVVRMRVS7DQovKiogDQogKiBAZmlsZSAgICBDb25maWcuaA0KICogQHZlcnNpb24gJFJldmlzaW9uOiAxLjEgJCwgJERhdGU6IDIwMDcvMDUvMjEgMDg6NTQ6MDggJA0KICogDQogKiBAYnJpZWYgICBTeXN0ZW0tcmVsYXRlZCBvcHRpb25zIGFuZCBwYXJhbWV0ZXIgc2V0dGluZ3MsIGFuZCBpbmxpbmUgDQogKiAgICAgICAgICBpbnZvY2F0aW9uIHRhcmdldHMNCiAqLw0KDQojaWZuZGVmIF9DT05GSUdfSA0KI2RlZmluZSBfQ09ORklHX0gNCqtFWFBBTkQgY29uZmlnRW50cnkgRk9SRUFDSCBjb21wb25lbnRzuw0KI2VuZGlmIC8qIF9DT05GSUdfSCAqLw0Kq0VOREZJTEW7DQqrRU5EREVGSU5Fuw0KDQoNCqtERUZJTkUgY29uZmlnRW50cnkgRk9SIENvbXBvbmVudLsNCi8vIFBhcmFtZXRlcnMgb2YgY29tcG9uZW50IKtuYW1luw0Kq0VYUEFORCBjb25maWdFbnRyeSBGT1JFQUNIIHBhcmFtZXRlclZhbHVlcy27DQqrRU5EREVGSU5Fuw0KDQoNCqtERUZJTkUgY29uZmlnRW50cnkgRk9SIFBhcmFtZXRlclZhbHVlLbsNCqtFWFBBTkQgY29tbWVudCBGT1IgdGhpcy27DQojZGVmaW5lIKtuYW1luyCrdmFsdWW7DQqrRU5EREVGSU5Fuw0KDQoNCqtERUZJTkUgY29tbWVudCBGT1IgUGFyYW1ldGVyVmFsdWUtuw0Kq0VORERFRklORbs=