ZGlmZiAtLWdpdCBhL0FOTk9VTkNFIGIvQU5OT1VOQ0UKaW5kZXggMDM0ODMxYS4uNWE5ZjEwOSAxMDA2NDQKLS0tIGEvQU5OT1VOQ0UKKysrIGIvQU5OT1VOQ0UKQEAgLTEsNCArMSw0IEBACi1UaGlzIGlzIHJlbGVhc2UgMjAwMjAxMjIgb2YgV2luZSwgYSBmcmVlIGltcGxlbWVudGF0aW9uIG9mIFdpbmRvd3Mgb24KK1RoaXMgaXMgcmVsZWFzZSAyMDAyMDIyOCBvZiBXaW5lLCBhIGZyZWUgaW1wbGVtZW50YXRpb24gb2YgV2luZG93cyBvbgogVW5peC4gIFRoaXMgaXMgc3RpbGwgYSBkZXZlbG9wZXJzIG9ubHkgcmVsZWFzZS4gIFRoZXJlIGFyZSBtYW55IGJ1Z3MKIGFuZCB1bmltcGxlbWVudGVkIGZlYXR1cmVzLiAgTW9zdCBhcHBsaWNhdGlvbnMgc3RpbGwgZG8gbm90IHdvcmsKIGNvcnJlY3RseS4KQEAgLTYsMTAgKzYsMTIgQEAKIFBhdGNoZXMgc2hvdWxkIGJlIHN1Ym1pdHRlZCB0byAid2luZS1wYXRjaGVzQHdpbmVocS5jb20iLiAgUGxlYXNlIGRvbid0CiBmb3JnZXQgdG8gaW5jbHVkZSBhIENoYW5nZUxvZyBlbnRyeS4KIAotV0hBVCdTIE5FVyB3aXRoIFdpbmUtMjAwMjAxMjI6IChzZWUgQ2hhbmdlTG9nIGZvciBkZXRhaWxzKQotCS0gTG90cyBvZiBpbXByb3ZlbWVudHMgdG8gYXN5bmNocm9ub3VzIEkvTy4KLQktIEJlZ2lubmluZ3Mgb2YgdW5pdCB0ZXN0aW5nIGluZnJhc3RydWN0dXJlLgotCS0gSW50ZXItcHJvY2VzcyBEREUgc2hvdWxkIHdvcmsgbm93LgorV0hBVCdTIE5FVyB3aXRoIFdpbmUtMjAwMjAyMjg6IChzZWUgQ2hhbmdlTG9nIGZvciBkZXRhaWxzKQorCS0gQ2xpZW50LXNpZGUgZm9udCByZW5kZXJpbmcgdXNpbmcgWHJlbmRlci4KKwktIExvY2FsIHNlcnZlciBDT00gc3VwcG9ydC4KKwktIE1hbnkgRHJhd1RleHQgaW1wcm92ZW1lbnRzLgorCS0gQSB0b24gb2YgZml4ZXMgZm9yIGJldHRlciBNUyBPZmZpY2Ugc3VwcG9ydC4KKwktIFByZWxpbWluYXJ5IHN1cHBvcnQgZm9yIEMgdW5pdCB0ZXN0cy4KIAktIExvdHMgb2YgYnVnIGZpeGVzLgogCiBTZWUgdGhlIFJFQURNRSBmaWxlIGluIHRoZSBkaXN0cmlidXRpb24gZm9yIGluc3RhbGxhdGlvbiBpbnN0cnVjdGlvbnMuCkBAIC0xOCwxMCArMjAsMTAgQEAKIHRoZSByZWxlYXNlIGlzIGF2YWlsYWJsZSBhdCB0aGUgZnRwIHNpdGVzLiAgVGhlIHNvdXJjZXMgd2lsbCBiZSBhdmFpbGFibGUKIGZyb20gdGhlIGZvbGxvd2luZyBsb2NhdGlvbnM6CiAKLSAgaHR0cDovL3d3dy5pYmlibGlvLm9yZy9wdWIvTGludXgvQUxQSEEvd2luZS9kZXZlbG9wbWVudC9XaW5lLTIwMDIwMTIyLnRhci5negotICBmdHA6Ly9mdHAuaW5mb21hZ2ljLmNvbS9wdWIvbWlycm9ycy9saW51eC9zdW5zaXRlL0FMUEhBL3dpbmUvZGV2ZWxvcG1lbnQvV2luZS0yMDAyMDEyMi50YXIuZ3oKLSAgZnRwOi8vZnRwLmZ1LWJlcmxpbi5kZS91bml4L2xpbnV4L21pcnJvcnMvc3Vuc2l0ZS51bmMuZWR1L0FMUEhBL3dpbmUvZGV2ZWxvcG1lbnQvV2luZS0yMDAyMDEyMi50YXIuZ3oKLSAgZnRwOi8vb3JjdXMucHJvZ3NvYy51dHMuZWR1LmF1L3B1Yi9XaW5lL2RldmVsb3BtZW50L1dpbmUtMjAwMjAxMjIudGFyLmd6CisgIGh0dHA6Ly93d3cuaWJpYmxpby5vcmcvcHViL0xpbnV4L0FMUEhBL3dpbmUvZGV2ZWxvcG1lbnQvV2luZS0yMDAyMDIyOC50YXIuZ3oKKyAgZnRwOi8vZnRwLmluZm9tYWdpYy5jb20vcHViL21pcnJvcnMvbGludXgvc3Vuc2l0ZS9BTFBIQS93aW5lL2RldmVsb3BtZW50L1dpbmUtMjAwMjAyMjgudGFyLmd6CisgIGZ0cDovL2Z0cC5mdS1iZXJsaW4uZGUvdW5peC9saW51eC9taXJyb3JzL3N1bnNpdGUudW5jLmVkdS9BTFBIQS93aW5lL2RldmVsb3BtZW50L1dpbmUtMjAwMjAyMjgudGFyLmd6CisgIGZ0cDovL29yY3VzLnByb2dzb2MudXRzLmVkdS5hdS9wdWIvV2luZS9kZXZlbG9wbWVudC9XaW5lLTIwMDIwMjI4LnRhci5negogCiBJdCBzaG91bGQgYWxzbyBiZSBhdmFpbGFibGUgZnJvbSBhbnkgb3RoZXIgc2l0ZSB0aGF0IG1pcnJvcnMgaWJpYmxpby5vcmcuCiBGb3IgbW9yZSBkb3dubG9hZCBsb2NhdGlvbnMsIHNlZSBodHRwOi8vZnRwc2VhcmNoLmx5Y29zLmNvbS4gVGhlc2UKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA2NDk2YjhjLi4yMTE0YjU1IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDQgKzEsMTIxMSBAQAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMjAwMi0wMi0yOCAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9zaGVsbDMyL2F1dGhvcnMuaCwgQVVUSE9SUzoKKwlVcGRhdGVkIGF1dGhvcnMgbGlzdCBmcm9tIHRoZSBDaGFuZ2Vsb2cuIFBsZWFzZSBsZXQgbWUga25vdyBpZiB5b3UKKwloYXZlIGJlZW4gbGVmdCBvdXQuCisKKwkqIGNvbmZpZ3VyZS5hYywgY29uZmlndXJlOgorCUFkZGVkIHRlc3RzIGV4dHJhIGRpcmVjdG9yaWVzLgorCisJKiBwcm9ncmFtcy9yZWdhcGkvdGVzdHMvLmN2c2lnbm9yZSwgcHJvZ3JhbXMvcmVnYXBpL3Rlc3RzL1JFQURNRSwKKwkgIHByb2dyYW1zL3JlZ2FwaS90ZXN0cy9hZnRlci5yZWcsIHByb2dyYW1zL3JlZ2FwaS90ZXN0cy9iZWZvcmUucmVnLAorCSAgcHJvZ3JhbXMvcmVnYXBpL3Rlc3RzL29yaWcucmVnLCBwcm9ncmFtcy9yZWdhcGkvdGVzdHMvcmVnYXBpLnBsLAorCSAgcHJvZ3JhbXMvcmVnYXBpL01ha2VmaWxlLmluLCBwcm9ncmFtcy9yZWdhcGkvUkVBRE1FLAorCSAgcHJvZ3JhbXMvcmVnYXBpL3JlZ0ZpeGVyLnBsLCBwcm9ncmFtcy9yZWdhcGkvcmVnUmVzdG9yZXIucGwsCisJICBwcm9ncmFtcy9yZWdhcGkvcmVnU2V0LnNoLCBwcm9ncmFtcy9yZWdhcGkvcmVnYXBpLmM6CisJQW5kcml5IFBhbGFtYXJjaHVrIDxhcGEzYUB5YWhvby5jb20+CisJTWFkZSByZWdhcGkgc2NyaXB0cyBhYmxlIHRvIHByb2Nlc3MgLnJlZyBmaWxlcyBpbiByZWdlZGl0CisJZm9ybWF0LiBJbXBsZW1lbnRlZCB1bml0IHRlc3RzIGZvciByZWcgZGlmZiBmdW5jdGlvbmFsaXR5LgorCisJKiBkbGxzL21ha2VfZGxscywgTWFrZS5ydWxlcy5pbiwgTWFrZWZpbGUuaW4sIGRsbHMvTWFrZWZpbGUuaW46CisJQWRkZWQgbWFrZSBjaGVjayB0YXJnZXQgdG8gcnVuIHVuaXQgdGVzdHMgdG9vIHNpbmNlIHRoaXMgc2VlbXMgdG8gYmUKKwlzdGFuZGFyZC4KKworCSogd2luZG93cy93aW5wcm9jLmM6CisJRGF2ZSBIYXdrZXMgPGRhdmVoLXdpbmVAY2FkbGluay5jb20+CisJRml4ZWQgd2lucHJvYyBtZW1vcnkgbGVhay4KKworCSogZGxscy9jb21jdGwzMi9saXN0dmlldy5jOgorCUR1YW5lIENsYXJrIDxkY2xhcmtAYWthbWFpbC5jb20+CisJQXNrIGZvciBjb3JyZWN0IG51bWJlciBvZiBjaGFycyBpbiBFZGl0TGJsV25kUHJvY1QuCisKKwkqIGRsbHMvc2hsd2FwaS9vcmRpbmFsLmM6CisJTWljaGFlbCBDYXJkZW5hcyA8bWljaGFlbGNAbGluZG93cy5jb20+CisJTW9yZSBjb21wbGV0ZSBpbXBsZW1lbnRhdGlvbiBvZiBTSExXQVBJXzM1Ni4KKworCSogZGxscy9vbGUzMi9zdG9yYWdlMzIuYzoKKwlNaWtlIE1jQ29ybWFjayA8bWlrZV9tY2Nvcm1hY2tAc3RhcnQuY29tLmF1PgorCUZpeGVkIG1lcmdlIGVycm9yLgorCisJKiBkbGxzL2NvbWN0bDMyL2xpc3R2aWV3LmM6CisJRHVhbmUgQ2xhcmsgPGRjbGFya0Bha2FtYWlsLmNvbT4KKwlMSVNUVklFV19JbnNlcnRDb2x1bW5UIGNhbiBiZSBjYWxsZWQgd2l0aCBhIHdpZHRoIG9mCisJTFZTQ1dfQVVUT1NJWkVfVVNFSEVBREVSLgorCVVzZSB0aGUgY29ycmVjdCBzdHJpbmdzIHdoZW4gY29sdW1uIGF1dG9zaXppbmcgb24gY29sdW1ucyBvdGhlciB0aGFuCisJY29sdW1uIDAuCisJTFZTQ1dfQVVUT1NJWkVfVVNFSEVBREVSIHVzZXMgYm90aCBpdGVtIGFuZCBoZWFkZXIgc3RyaW5ncy4KKworMjAwMi0wMi0yNyAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogaW5jbHVkZS93aW5udC5oOgorCUFuZHJlYXMgTW9ociA8YW5kaUByaGx4MDEuZmh0LWVzc2xpbmdlbi5kZT4KKwlBZGRlZCBzb21lIGRlZmluZXMgYW5kIG9mZnNldHMuCisKKwkqIG9iamVjdHMvZ2Rpb2JqLmMsIHJlbGF5MzIvYnVpbHRpbjMyLmMsIG1pc2MvcmVnaXN0cnkuYywKKwkgIGRsbHMva2VybmVsL2NvbW0uYywgZGxscy9rZXJuZWwvc3RyaW5nLmM6CisJQW5kcmVhcyBNb2hyIDxhbmRpQHJobHgwMS5maHQtZXNzbGluZ2VuLmRlPgorCVZhcmlvdXMgY29zbWV0aWMgY2hhbmdlcy4KKworCSogZGxscy91c2VyL01ha2VmaWxlLmluLCBkbGxzL3VzZXIvdGVzdHMvLmN2c2lnbm9yZSwKKwkgIGRsbHMvdXNlci90ZXN0cy9zeXNwYXJhbXMuYywgZGxscy91c2VyL3Rlc3RzL3VzZXIzMl90ZXN0LnNwZWM6CisJQW5kcml5IFBhbGFtYXJjaHVrIDxhcGEzYUB5YWhvby5jb20+CisJQWRkZWQgU3lzdGVtUGFyYW1ldGVyc0luZm8gdW5pdCB0ZXN0LgorCisJKiBkb2N1bWVudGF0aW9uL01ha2VmaWxlLmluLCB0b29scy9NYWtlZmlsZS5pbjoKKwlDb3NtZXRpYyBmaXhlcy4KKworCSogcHJvZ3JhbXMvY29udHJvbC9sY2NtYWtlLmJhdCwgcHJvZ3JhbXMvbm90ZXBhZC9sY2NtYWtlLAorCSAgcHJvZ3JhbXMvdmlldy9sY2NtYWtlZmlsZSwgcHJvZ3JhbXMvd2NtZC9tYWtlZmlsZS5iY2M6CisJQW5kcml5IFBhbGFtYXJjaHVrIDxhcGEzYUB5YWhvby5jb20+CisJUmVtb3ZlZCBhbHRlcm5hdGl2ZSBtYWtlIHNjcmlwdHMuCisKKwkqIGZpbGVzL2RpcmVjdG9yeS5jOgorCUFuZHJlYXMgTW9ociA8YW5kaUByaGx4MDEuZmh0LWVzc2xpbmdlbi5kZT4KKwlJbXBsZW1lbnRlZCAiQXBwIFBhdGhzIiByZWdpc3RyeSBrZXkgc3VwcG9ydCBmb3IgU2VhcmNoUGF0aCgpLgorCisJKiBmaWxlcy9wcm9maWxlLmM6CisJQW5kcmVhcyBNb2hyIDxhbmRpQHJobHgwMS5maHQtZXNzbGluZ2VuLmRlPgorCUZpeGVkIG92ZXJmbG93IGFuZCBzaWduZWQvdW5zaWduZWQgYmVoYXZpb3VyLgorCisJKiBzZXJ2ZXIvZGVidWdnZXIuYywgc2VydmVyL3Byb3RvY29sLmRlZiwgc2VydmVyL3JlcXVlc3QuaCwKKwkgIHNlcnZlci90cmFjZS5jLCBkbGxzL2tlcm5lbC9kZWJ1Z2dlci5jLAorCSAgaW5jbHVkZS93aW5lL3NlcnZlcl9wcm90b2NvbC5oOgorCVJlaW1wbGVtZW50ZWQgRGVidWdCcmVha1Byb2Nlc3MuCisKKwkqIHRvb2xzL3dyYy9kdW1wcmVzLmMsIHRvb2xzL3dpbmVkdW1wL21pc2MuYywKKwkgIHByb2dyYW1zL2F2aXRvb2xzL2F2aWluZm8uYywgbXNkb3MvdnhkLmMsIGdyYXBoaWNzL3gxMWRydi9kaWIuYywKKwkgIGdyYXBoaWNzL3BhaW50aW5nLmMsIGRsbHMvd2luc3Bvb2wvaW5mby5jLCBkbGxzL3dpbmVkb3MvZGV2aWNlcy5jLAorCSAgZGxscy9zaGVsbDMyL3BpZGwuYywgZGxscy9yaWNoZWRpdC9jaGFybGlzdC5jLAorCSAgZGxscy9rZXJuZWwvY29uc29sZS5jLCBkbGxzL3F1YXJ0ei9hdWRyZW4uYywgZGxscy9jb21jdGwzMi91cGRvd24uYywKKwkgIGRsbHMvY29tY3RsMzIvcmViYXIuYywgZGxscy9jb21jdGwzMi90cmVldmlldy5jOgorCUFuZHJlYXMgTW9ociA8YW5kaUByaGx4MDEuZmh0LWVzc2xpbmdlbi5kZT4KKwlTcGVsbGluZy9hbGlnbm1lbnQgZml4ZXMuCisKKwkqIGRvY3VtZW50YXRpb24vc2FtcGxlcy9jb25maWcsIHRvb2xzL3dpbmVjaGVjaywKKwkgIGRvY3VtZW50YXRpb24vaW5zdGFsbGluZy5zZ21sLCBkb2N1bWVudGF0aW9uL3JlZ2lzdHJ5LnNnbWwsCisJICBkb2N1bWVudGF0aW9uL3dpbmUuY29uZi5tYW4sIFJFQURNRToKKwlBbmRyZWFzIE1vaHIgPGFuZGlAcmhseDAxLmZodC1lc3NsaW5nZW4uZGU+CisJLSBzdHJlc3MgdGhlIGZhY3QgdGhhdCB3aW5laW5zdGFsbCBpcyBpbiBXaW5lIHNvdXJjZQorCS0gYWRkIG1pc3NpbmcgdHR5ZHJ2L3gxMWRydiBzZWN0aW9uIHRvIHdpbmUuY29uZi5tYW4KKwktIG1ha2Ugc3VyZSB0aGF0IHdlIGFsc28gbG9hZCBzaGRvY3Z3IGFzIGJ1aWx0aW4gaW4gc2FtcGxlIGNvbmZpZyBmaWxlCisJLSBhZGQgc2FtcGxlIEFwcERlZmF1bHRzIHNlY3Rpb24gdG8gc2FtcGxlIGNvbmZpZyBmaWxlCisJLSB3aW5lY2hlY2sgdXBkYXRlCisKKwkqIGRvY3VtZW50YXRpb24vZGVidWdnZXIuc2dtbCwgZGVidWdnZXIvZGJnLnksIGRlYnVnZ2VyL2RlYnVnLmwsCisJICBkZWJ1Z2dlci9kZWJ1Z2dlci5oLCBkZWJ1Z2dlci93aW5lZGJnLmM6CisJRXJpYyBQb3VlY2ggPGVyaWMucG91ZWNoQHdhbmFkb28uZnI+CisJQWRkZWQgdGhlIGRldGFjaCBjb21tYW5kIHRvIHRoZSBkZWJ1Z2dlci4KKworCSogaW5jbHVkZS93aW5lL3NlcnZlcl9wcm90b2NvbC5oLCBzZXJ2ZXIvZGVidWdnZXIuYywgc2VydmVyL3Byb2Nlc3MuYywKKwkgIHNlcnZlci9wcm9jZXNzLmgsIHNlcnZlci9wcm90b2NvbC5kZWYsIHNlcnZlci9yZXF1ZXN0LmgsCisJICBzZXJ2ZXIvdHJhY2UuYywgZGxscy9rZXJuZWwvZGVidWdnZXIuYywgZGxscy9rZXJuZWwva2VybmVsMzIuc3BlYywKKwkgIGluY2x1ZGUvd2luYmFzZS5oOgorCUVyaWMgUG91ZWNoIDxlcmljLnBvdWVjaEB3YW5hZG9vLmZyPgorCU5ldyBYUCBkZWJ1Z2dpbmcgQVBJczogaW1wbGVtZW50ZWQgRGVidWdBY3RpdmVQcm9jZXNzU3RvcCwKKwlEZWJ1Z1NldFByb2Nlc3NLaWxsT25FeGl0LCBEZWJ1Z0JyZWFrUHJvY2Vzcy4KKworCSogQlVHUzogRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGZyZWUuZnI+CisJQW5kcml5IFBhbGFtYXJjaHVrIDxhcGEzYUB5YWhvby5jb20+CisJUmV3cm90ZSBCVUdTIGZpbGUuIExpc3RlZCBkaXJlY3Rpb25zIGZvciB0aG9zZSB3aG8gd2FudCB0byBjb250cmlidXRlCisJdG8gdGhlIHByb2plY3QuCisKKwkqIGRsbHMvY29tY3RsMzIvbGlzdHZpZXcuYzoKKwlCaWxsIE1lZGxhbmQgPG1lZGJpMDFAYWNjcGFjLmNvbT4KKwlDZW50cmUgdGV4dCBjb3JyZWN0bHkgZm9yIHRoZSBzZWxlY3RlZCBpdGVtLgorCURyYXcgY29tcGxldGUgYmFja2dyb3VuZCBmb3IgdGhlIHNlbGVjdGVkIGl0ZW0uCisJQ2FsY3VsYXRlIHRoZSBzaXplIG9mIGEgbGFyZ2UgaWNvbiBtb3JlIGNvcnJlY3RseSAoaW5jbHVkaW5nIG11bHRpbGluZQorCWxhYmVscykuCisKKwkqIGRsbHMvY29tY3RsMzIvdG9vbGJhci5jOgorCUd1eSBMLiBBbGJlcnRlbGxpIDxnYWxiZXJ0ZUBuZW8ubHJ1bi5jb20+CisJLSBTdXBwb3J0IENDU19WRVJUIGFzIGFsdGVybmF0aXZlIGZvciBUQlNUWUxFX1dSQVBBQkxFLgorCS0gVEJfSU5TRVJUQlVUVE9OVyB3YXMgbm90IGFzIGZ1bmN0aW9uYWwgYXMgdGhlICdBJyB2ZXJzaW9uLiBUaGV5IG5vdworCSAgbWF0Y2guCisKKwkqIGRsbHMvc2hlbGwzMi9zaGVsbC5jLCBkbGxzL3NoZWxsMzIvc2hlbGwzMl9tYWluLmMsCisJICBkbGxzL3NoZWxsMzIvc2hlbGwzMl9tYWluLmgsIGRsbHMvc2hlbGwzMi9zaGxleGVjLmMsCisJICBkbGxzL3NoZWxsMzIvTWFrZWZpbGUuaW46CisJRXJpYyBQb3VlY2ggPGVyaWMucG91ZWNoQHdhbmFkb28uZnI+CisJRml4ZWQgU2hlbGxFeGVjdXRlIGZ1bmN0aW9ucyB3aGVuIGRkZWV4ZWMgd2FzIHByZXNlbnQgaW4gcmVnaXN0cnkuCisKKwkqIHdpbmRvd3Mvd2luLmM6CisJR3V5IEwuIEFsYmVydGVsbGkgPGdhbGJlcnRlQG5lby5scnVuLmNvbT4KKwlGaXggdGhlIHN0cmFuZ2UgY2FzZSBpbiBXSU5fRml4Q29vcmRpbmF0ZXMgd2hlcmUgeCBhbmQgY3ggYXJlIG5vdAorCWRlZmF1bHQgYnV0IGN5IGlzIENXX1VTRURFRkFVTFQuCisKKzIwMDItMDItMjYgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGluY2x1ZGUvTWFrZWZpbGUuaW46IEZpeGVkIG1ha2UgdW5pbnN0YWxsLgorCisJKiBkbGxzL2tlcm5lbC9jb21tLmM6CisJTWFyY3VzIE1laXNzbmVyIDxtYXJjdXNAamV0LmZyYW5rZW4uZGU+CisJRml4ZWQgY3V0JnBhc3RlIHByb2JsZW0gaW4gU0VUUlRTLgorCisJKiBkbGxzL3VzZXIvdGV4dC5jOgorCUJpbGwgTWVkbGFuZCA8bWVkYmkwMUBhY2NwYWMuY29tPgorCUNvcnJlY3QgV29yZCBicmVha2luZyBpbiBjZW50cmVkL3JpZ2h0IGp1c3RpZmllZCBtb2RlOyBpdCB3YXMgbGVhdmluZyBhCisJdHJhaWxpbmcgc3BhY2Ugd2hpY2ggaXQgc2hvdWxkIG9ubHkgZG8gZm9yIGxlZnQtanVzdGlmaWVkIHRleHQuCisJQWxzbyB0aWdodGVuIHVwIHNvbWUgY29tbWVudHMuCisKKwkqIHdpbmRvd3Mvc3B5LmM6CisJR3V5IEwuIEFsYmVydGVsbGkgPGdhbGJlcnRlQG5lby5scnVuLmNvbT4KKwlBZGQgYWRkaXRpb25hbCBDQ01fIG1lc3NhZ2UgbmFtZXMuCisKKwkqIGRsbHMvY29tY3RsMzIvcGFnZXIuYzoKKwlHdXkgTC4gQWxiZXJ0ZWxsaSA8Z2FsYmVydGVAbmVvLmxydW4uY29tPgorCUltcGxlbWVudCBFTV9GTVRMSU5FUyBtZXNzYWdlIGJhc2VkIG9uIHJlbGF5IHRyYWNlIG9mIG5hdGl2ZS4KKworCSogaW5jbHVkZS9tbXJlZy5oOgorCUVyaWMgUG91ZWNoIDxlcmljLnBvdWVjaEB3YW5hZG9vLmZyPgorCUFkZGVkIGxvdHMgb2YgbWlzc2luZyBkZWZpbmVzLgorCisJKiBkbGxzL3VzZXIvZGRlL21pc2MuYzoKKwlFcmljIFBvdWVjaCA8ZXJpYy5wb3VlY2hAd2FuYWRvby5mcj4KKwlGaXhlZCBEZGVHZXREYXRhIHdoZW4gY2FsbGVkIGZvciBnZXR0aW5nIHNpemUuCisKKwkqIGNvbnRyb2xzL3N0YXRpYy5jOgorCUVyaWMgUG91ZWNoIDxlcmljLnBvdWVjaEB3YW5hZG9vLmZyPgorCUZpeGVkIFdNX1NFVEZPTlQgaGFuZGxpbmcgKG5vIHJlZHJhdyBtYWRlIGluIHNvbWUgY2FzZXMpLgorCisJKiBkZWJ1Z2dlci9pbmZvLmM6CisJRXJpYyBQb3VlY2ggPGVyaWMucG91ZWNoQHdhbmFkb28uZnI+CisJQ29zbWV0aWMgZml4ZXMgdG8gJ3dhbGsgcHJvYycgY29tbWFuZC4KKworCSogZGxscy9kZHJhdy9kc3VyZmFjZS9oYWwuYywgZGxscy94MTFkcnYveDExZGRyYXcuYzoKKwlMaW9uZWwgVWxtZXIgPGxpb25lbC51bG1lckBmcmVlLmZyPgorCUZpeCBjcmFzaCBpbiB0aGUgWDExIEhBTCB3aGVuIHNldHRpbmcgYSBOVUxMIHBhbGV0dGUgdG8gYSBzdXJmYWNlLgorCisJKiBkb2N1bWVudGF0aW9uL2RiMmh0bWwtd2luZWhxOgorCVBoaWxpcHAgV29sbGVybWFubiA8cGhpbF93b0BnbXgubmV0PgorCUFkZGVkIHN1cHBvcnQgZm9yIHRoZSBDcnV4IExpbnV4IGRpc3RyaWJ1dGlvbiAod2l0aCBvcGVuamFkZSkuCisKKwkqIGRsbHMvY29tY3RsMzIvcmViYXIuYzoKKwlHdXkgTC4gQWxiZXJ0ZWxsaSA8Z2FsYmVydGVAbmVvLmxydW4uY29tPgorCUZpeCBhbm90aGVyIGJhZCB0ZXN0LiBDYXVzZWQgcmVncmVzc2lvbiBpbiBJRSA0LgorCisJKiBkbGxzL2NvbWN0bDMyL3Rvb2xiYXIuYzoKKwlDaGFybGVzIER1ZmZ5IDxjZHVmZnlAYmlnZm9vdC5jb20+CisJU3RvcCBUT09MQkFSX01lYXN1cmVTdHJpbmcgZnJvbSBkeWluZyBvbiBlbXB0eSBzdHJpbmdzLgorCisJKiBkbGxzL2NvbWN0bDMyL2ltYWdlbGlzdC5jOgorCURhdmUgSGF3a2VzIDxkYXZlaC13aW5lQGNhZGxpbmsuY29tPgorCVBhcnRpYWxseSByZXBhaXIgaG90c3BvdCBoYW5kbGluZy4KKworMjAwMi0wMi0yNSAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogd2luZG93cy9jdXJzb3JpY29uLmMsIHJlbGF5MzIvc25vb3AuYywgd2luMzIvY29uc29sZS5jLAorCSAgd2luMzIvZXhjZXB0LmMsIHdpbjMyL2luaXQuYywgaW5jbHVkZS9tc3ZjcnQvZXhjcHQuaCwKKwkgIGluY2x1ZGUvd2lubnQuaCwgbG9hZGVyL3Jlc291cmNlLmMsIG1lbW9yeS9nbG9iYWwuYywKKwkgIG1lbW9yeS9zdHJpbmcuYywgbWVtb3J5L3ZpcnR1YWwuYywgZGxscy93aW5lZG9zL2Rvc3ZtLmMsCisJICBmaWxlcy9kb3NfZnMuYywgaW5jbHVkZS9NYWtlZmlsZS5pbiwgaW5jbHVkZS93aW5kb3dzLmgsCisJICBkbGxzL250ZGxsL2RlYnVndG9vbHMuYywgZGxscy9udGRsbC9leGNlcHRpb24uYywgZGxscy9udGRsbC9zZWMuYywKKwkgIGRsbHMvb3BlbmdsMzIvd2dsLmMsIGRsbHMvdXNlci9sc3RyLmMsIGRlYnVnZ2VyL2RiZy55LAorCSAgZGVidWdnZXIvd2luZWRiZy5jLCBkbGxzL21zdmNydC9leGNlcHQuYzoKKwlQZXRlciBIdW5uaXNldHQgPHBldGVyQHRyYW5zZ2FtaW5nLmNvbT4KKwlOZXcgZmlsZSBtc3ZjcnQvZXhjcHQuaC4gTW92ZSBzb21lIHN0dWZmIG91dCBvZiB3aW5udC5oIGludG8gaXQuCisKKwkqIHdpbmRvd3MveDExZHJ2L2V2ZW50LmM6CisJRGF2ZSBIYXdrZXMgPGRhdmVoLXdpbmVAY2FkbGluay5jb20+CisJUHJldmVudCBsb2NrLXVwIHdpdGggYSBmb2N1cyBsb29wIGJldHdlZW4gdHdvIHRvcCBsZXZlbCB1bm1hbmFnZWQKKwl3aW5kb3dzLgorCisJKiBpbmNsdWRlL3RzX3hsaWIuaCwgdHN4MTEvWDExX2NhbGxzLCB0c3gxMS90c194bGliLmM6CisJR2F2cmllbCBTdGF0ZSA8Z2F2QHRyYW5zZ2FtaW5nLmNvbT4KKwlBZGRlZCBYVmlzdWFsSURGcm9tVmlzdWFsIHRvIHRzeDExIGxpc3QuCisKKwkqIGRsbHMvY29tY3RsMzIvbGlzdHZpZXcuYzoKKwlHZXJhcmQgUGF0ZWwgPGdlcmFyZC5wYXRlbEBuZXJpbS5uZXQ+CisJTFZNX0dldEl0ZW1SZWN0IHNob3VsZCBub3QgdGFrZSB0ZXh0IHNpemUgaW4gYWNjb3VudCBmb3IgTFZJUl9MQUJFTCBpbgorCXJlcG9ydCBtb2RlLgorCisyMDAyLTAyLTIyICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBmaWxlcy9maWxlLmM6CisJR2VyaGFyZCBXLiBHcnViZXIgPHNwYXJoYXdrQGdteC5hdD4KKwlNb3ZlRmlsZUV4IG5vdyBlbnRlcnMgdGhlIGZpbGVzIGluIHRoZSByZWdpc3RyeSB3aGVuIHRoZSBib290IGRlbGF5CisJZmxhZyBpcyBzZXQuCisKKwkqIGluY2x1ZGUvd2luZS93aW51c2VyMTYuaCwgd2luZG93cy9pbnB1dC5jLCBpbmNsdWRlL3dpbnVzZXIuaDoKKwlQZXRlciBIdW5uaXNldHQgPHBldGVyQHRyYW5zZ2FtaW5nLmNvbT4KKwlGaXggcmV0dXJuIHR5cGUgb2YgR2V0QXN5bmNLZXlTdGF0ZS4KKworCSogZGxscy9jb21jdGwzMi9saXN0dmlldy5jOgorCUJpbGwgTWVkbGFuZCA8bWVkYmkwMUBhY2NwYWMuY29tPgorCUltcGxlbWVudCBtdWx0aWxpbmUgbGFiZWxzIGluIHRoZSBMYXJnZSBJdGVtIHZpZXcgYnkgdXNpbmcgRHJhd1RleHQKKwlOb3RlIHRoYXQgdGhpcyBub3cgaGlnaGxpZ2h0cyB3ZWFrbmVzc2VzIGluIHRoZSBsYWJlbCBtZWFzdXJpbmcgY29kZQorCWV0Yy4gd2hpY2ggY2Fubm90IGNvcnJlY3RseSBoYW5kbGUgbXVsdGlsaW5lIGxhYmVscy4KKworCSogZGxscy9vbGUzMi9tYXJzaGFsLmM6CisJU3RlZmFuIExlaWNodGVyIDxTdGVmYW4uTGVpY2h0ZXJAY2FtTGluZS5jb20+CisJQ29tcGlsZSBmaXggZm9yIEdDQyAyLjcueC4KKworCSogZGxscy9udGRsbC9udGRsbC5zcGVjOgorCVBldGVyIEh1bm5pc2V0dCA8cGV0ZXJAdHJhbnNnYW1pbmcuY29tPgorCUFkZCBzcGVjIHN0dWIgZm9yIFJ0bEdldE50VmVyc2lvbk51bWJlcnMuCisKKwkqIGRsbHMvd2luYXNwaS9hc3BpLmM6CisJR2F2cmllbCBTdGF0ZSA8Z2F2QHRyYW5zZ2FtaW5nLmNvbT4KKwlDaGFuZ2UgdXNlbGVzcyB3YXJuaW5nIGludG8gYSBUUkFDRS4KKworCSogaW5jbHVkZS9tc3ZjcnQvc3RkbGliLmgsIGRsbHMvbXN2Y3J0L2V4aXQuYzoKKwlQZXRlciBIdW5uaXNldHQgPHBldGVyQHRyYW5zZ2FtaW5nLmNvbT4KKwlhdGV4aXQgZG9lc24ndCB0YWtlIGEgX29uZXhpdF90IHBhcmFtZXRlci4KKworCSogcHJvZ3JhbXMvdW5pbnN0YWxsZXIvbWFpbi5jOgorCUFuZHJlYXMgTW9ociA8YW5kaUByaGx4MDEuZmh0LWVzc2xpbmdlbi5kZT4KKwlSZW1lbWJlciB0aGUgY3VycmVudGx5IGFjdGl2ZSBpbmRleCBiZWZvcmUgcmVmcmVzaGluZy4KKworMjAwMi0wMi0yMSAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9tc3ZjcnQvTWFrZWZpbGUuaW4sIGRsbHMvbXN2Y3J0L2NvbnNvbGUuYywgZGxscy9tc3ZjcnQvZXhpdC5jLAorCSAgZGxscy9tc3ZjcnQvZmlsZS5jLCBkbGxzL21zdmNydC9oZWFwLmMsIGRsbHMvbXN2Y3J0L2xvY2FsZS5jLAorCSAgZGxscy9tc3ZjcnQvbG9jay5jLCBkbGxzL21zdmNydC9tYWluLmMsIGRsbHMvbXN2Y3J0L21zdmNydC5oLAorCSAgZGxscy9tc3ZjcnQvbXN2Y3J0LnNwZWMsIGRsbHMvbXN2Y3J0L210ZGxsLmg6CisJUGV0ZXIgSHVubmlzZXR0IDxwZXRlckB0cmFuc2dhbWluZy5jb20+CisJQWRkIF9sb2NrLF91bmxvY2sgYW5kIGhlYWRlciBmaWxlIGZvciB0aGVtLgorCUNvbnZlcnQgYWxsIG1zdmNydCBsb2NrcyBvdmVyIHRvIHVzZSBfbG9jayBhbmQgX3VubG9jay4KKwlFeHBsaWNpdGx5IG1ha2UgbXN2Y3J0IGNvbXBpbGUgd2l0aCBtdWx0aXRocmVhZGVkIG9wdGlvbi4KKwlGaXggZmxhZyBoYW5kbGluZyBpbiBfc29wZW4uIEFkZCBXLT5BIGNhbGwgZm9yIG5ldyBfc3dvcGVuLgorCisJKiBkZWJ1Z2dlci9zdGFicy5jOgorCVBldGVyIEh1bm5pc2V0dCA8cGV0ZXJAdHJhbnNnYW1pbmcuY29tPgorCUF2b2lkIGFzc2VydCBmb3IgdmVyeSBsYXJnZSBDKysgLnNvIGZpbGVzLgorCisJKiBpbmNsdWRlL3dpbmUvb2JqX2Jhc2UuaDoKKwlQZXRlciBIdW5uaXNldHQgPHBldGVyQHRyYW5zZ2FtaW5nLmNvbT4KKwlGaXggSUNPTV9ERUZJTkUgZm9yIEMrKy4KKworCSogZGxscy9zaGx3YXBpL29yZGluYWwuYywgZGxscy9zaGx3YXBpL3NobHdhcGkuc3BlYywKKwkgIGRsbHMvc2hsd2FwaS9zaGx3YXBpX21haW4uYzoKKwlHdXkgTC4gQWxiZXJ0ZWxsaSA8Z2FsYmVydGVAbmVvLmxydW4uY29tPgorCS0gRm9yd2FyZCBvcmRpbmFscyA0MCwgNDEsIDE0MywgMzYyIHRvIGFwcHJvcHJpYXRlIHJvdXRpbmVzLgorCS0gSW1wbGVtZW50IG9yZGluYWxzIDE1NSwgMzUwLCAzNTEsIDM1MiwgNDE4LCA0MzYuCisJLSBGYWtlIGltcGxlbWVudGF0aW9uIG9mIFNIR2V0SW52ZXJzZUNNQVAuCisJLSBTdHViIG9yZGluYWwgMjA5LgorCS0gRml4IGRlZmluaXRpb24gb2Ygb3JkaW5hbCA3LgorCS0gSW1wbGVtZW50IFNIR2V0VGhyZWFkUmVmIGFuZCBTSFNldFRocmVhZFJlZi4KKworCSogaW5jbHVkZS9jb21tY3RybC5oLCBkbGxzL2NvbWN0bDMyL2NvbWN0bDMydW5kb2MuYzoKKwlHdXkgTC4gQWxiZXJ0ZWxsaSA8Z2FsYmVydGVAbmVvLmxydW4uY29tPgorCUZpeCBwcm9ibGVtcyBpbiBEUEFfTWVyZ2UgZXhwb3NlZCBieSBwcmV2aW91cyBjb2RlIGNsZWFudXAuCisKKwkqIHRvb2xzL3dpbmVpbnN0YWxsOiBBZGFtIEQuIE1vc3MgPGFkYW1AZ2ltcC5vcmc+CisJUGFydGlhbGx5IHJldmVydCBwcmV2aW91cyBjaGFuZ2VzLCBmb3JjZSBjb25maWd1cmUgdG8gd3JpdGUgYW4KKwlvbGQtc3R5bGUgY29uZmlnLmNhY2hlLgorCisJKiBkbGxzL3VzZXIvdGV4dC5jOgorCUJpbGwgTWVkbGFuZCA8bWVkYmkwMUBhY2NwYWMuY29tPgorCURyYXdUZXh0IGVsbGlwc2lmaWNhdGlvbiBvbiBhbGwgbGluZXMsIG5vdCBqdXN0IHNpbmdsZS1saW5lLgorCisyMDAyLTAyLTIwICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBwcm9ncmFtcy93aW5ldGVzdC9tYWtlX2N0ZXN0cywgcHJvZ3JhbXMvd2luZXRlc3QvcnVudGVzdCwKKwkgIHByb2dyYW1zL3dpbmV0ZXN0L3d0bWFpbi5jLCBpbmNsdWRlL3dpbmUvdGVzdC5oLAorCSAgZGxscy9NYWtlZGxsLnJ1bGVzLmluLCBNYWtlLnJ1bGVzLmluOgorCVByZWxpbWluYXJ5IHZlcnNpb24gb2YgdGhlIEMgdW5pdCB0ZXN0cyBydW4tdGltZSBlbnZpcm9ubWVudC4KKwlBZGRlZCBtYWtlIHJ1bGVzIGZvciBidWlsZGluZyBhbmQgcnVubmluZyBDIHVuaXQgdGVzdHMuCisKKwkqIHByb2dyYW1zL25vdGVwYWQvZGlhbG9nLmMsIHByb2dyYW1zL25vdGVwYWQvbGNjLmgsCisJICBwcm9ncmFtcy9ub3RlcGFkL21haW4uYywgcHJvZ3JhbXMvbm90ZXBhZC9tYWluLmg6CisJQW5kcml5IFBhbGFtYXJjaHVrIDxhcGEzYUB5YWhvby5jb20+CisJLSBtYWRlIG5vdGVwYWQgY29tcGlsZSB3aXRoIEN5Z3dpbgorCS0gbWFkZSBjaGFuZ2VzIHRvIHRoZSBwcmVjb21waWxlciBkaXJlY3RpdmVzIHRvIGNoZWNrIGZvciBzcGVjaWZpYworCSAgZmVhdHVyZXMgaW5zdGVhZCBvZiBjaGVja2luZyBmb3IgdGhlIGVudmlyb25tZW50IHZlcnNpb24uCisKKwkqIGRsbHMvdXNlci90ZXh0LmM6CisJQmlsbCBNZWRsYW5kIDxtZWRiaTAxQGFjY3BhYy5jb20+CisJRHJhd3RleHQgdGlkeWluZyB1cCByZWFkeSBmb3IgdGhlIG5leHQgYmlnIGNoYW5nZToKKwktIEZpeCBicmFpbmZhZGUgaW4gcHJldmlvdXMgZGVsdGEKKwktIE1vdmUgZWxsaXBzaWZpY2F0aW9uIHJlc3VsdHMgdG8gc3RhdGljIG1lbW9yeTsgdGhleSBhcmUgZ29pbmcgdG8KKwkgIGhhdmUgdG8gYmUgcmVmZXJlbmNlZCBpbnNpZGUgTmV4dExpbmVXIGFuZCB0aGUgYXJnIGxpc3QgaXMgdG9vIGJpZworCSAgYWxyZWFkeS4KKwktIEFkZCB0aGUgbWlzc2luZyBlbGxpcHNpZmljYXRpb24gcmVzdWx0IChsZW5fdW5kZXIpIHRvIHNpbXBsaWZ5IGNvZGluZy4KKwktIFNsaWdodCBjb3JyZWN0aW9uIHRvIHByZWZpeCB0cmFja2luZyBmb3Igd2hlbiB0aGVyZSBhcmUgc2V2ZXJhbAorCSAgdW5kZXJsaW5lZCBjaGFyYWN0ZXJzIG9uIGEgc2luZ2xlIGxpbmUgKERUX0VYUEFORFRBQlMgb25seSkuCisJLSBBbGxvY2F0ZSBhbmQgZnJlZSB0aGUgdGVtcG9yYXJ5IGNvcHkgcmVxdWlyZWQgZm9yIERUX01PRElGWVNUUklORworCSAgcmF0aGVyIHRoYW4gdXNpbmcgYSBmaXhlZCBzaXplIHN0YWNrIGFycmF5LgorCS0gSW50cm9kdWNlIGxhc3RsaW5lIGludG8gdGhlIG1haW4gbG9vcDsgaXQgc2ltcGxpZmllcyB0aGUgY29kZSBhbmQgd2UKKwkgIGFyZSBnb2luZyB0byBuZWVkIGl0LgorCisJKiBkbGxzL3NobHdhcGkvcGF0aC5jOgorCUxhd3NvbiBXaGl0bmV5IDxsYXdzb25fd2hpdG5leUBqdW5vLmNvbT4KKwlQcm90ZWN0IFBhdGhJc1VOQ1NlcnZlclNoYXJlIGZyb20gbnVsbCBscHN6UGF0aC4KKworMjAwMi0wMi0xOSAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogaW5jbHVkZS9jb25maWcuaC5pbiwgZGxscy9rZXJuZWwvY29tbS5jLCBjb25maWd1cmUuYWMsIGNvbmZpZ3VyZToKKwlMYXdzb24gV2hpdG5leSA8bGF3c29uX3doaXRuZXlAanVuby4uY29tPgorCVN1cHBvcnQgZm9yIG5vbnN0YW5kYXJkIGJhdWQgcmF0ZSBpbiBTZXRDb21tU3RhdGUuCisKKwkqIHByb2dyYW1zL25vdGVwYWQvRGEucmMsIHByb2dyYW1zL25vdGVwYWQvRGUucmMsCisJICBwcm9ncmFtcy9ub3RlcGFkL0VuLnJjLCBwcm9ncmFtcy9ub3RlcGFkL0VzLnJjLAorCSAgcHJvZ3JhbXMvbm90ZXBhZC9GaS5yYywgcHJvZ3JhbXMvbm90ZXBhZC9Gci5yYywKKwkgIHByb2dyYW1zL25vdGVwYWQvUHQucmMsIHByb2dyYW1zL25vdGVwYWQvU2sucmMsCisJICBwcm9ncmFtcy9ub3RlcGFkL1N3LnJjLCBwcm9ncmFtcy9ub3RlcGFkL1dhLnJjLAorCSAgcHJvZ3JhbXMvbm90ZXBhZC9kaWFsb2cuYywgcHJvZ3JhbXMvbm90ZXBhZC9tYWluLmMsCisJICBwcm9ncmFtcy9ub3RlcGFkL21haW4uaCwgcHJvZ3JhbXMvbm90ZXBhZC9ub3RlcGFkLnJjOgorCUFuZHJpeSBQYWxhbWFyY2h1ayA8YXBhM2FAeWFob28uY29tPgorCUltcGxlbWVudGVkIHBhcnNpbmcgb2YgZmlsZSBuYW1lLCBwYXNzZWQgaW4gY29tbWFuZCBsaW5lLCBsb2FkaW5nIG5ldworCWZpbGUgb24gc3RhcnR1cC4KKworCSogZGxscy9ycGNydDQvcnBjcnQ0LnNwZWM6CisJU3RlZmFuIExlaWNodGVyIDxTdGVmYW4uTGVpY2h0ZXJAY2FtTGluZS5jb20+CisJQWRkZWQgdHdvIG1pc3NpbmcgZXhwb3J0cy4KKworCSogY29udHJvbHMvc2Nyb2xsLmM6CisJUGhpbGxpcCBFem9sdCA8ZXpvbHRAcGVyZi56a28uZGVjLmNvbT4KKwlGaXhlZCB0aGUgc2Nyb2xsYmFyIHBvc2l0aW9uIG92ZXJmbG93cyB1c2luZyBNdWxEaXYuCisKKwkqIGRsbHMvY29tY3RsMzIvbGlzdHZpZXcuYzoKKwlPbmRyZWogTWFjZWsgPHhtYWNla0BpbmZvcm1hdGljcy5tdW5pLmN6PgorCUZpeCBvZiBMaXN0VmlldyBpbnZhbGlkYXRpb24gaW4gTElTVFZJRVdfU2V0QmtDb2xvci4KKworCSogZGxscy9zaGVsbDMyL2NsYXNzZXMuYzoKKwlHZXJhcmQgUGF0ZWwgPGdlcmFyZC5wYXRlbEBuZXJpbS5uZXQ+CisJSENSX0dldERlZmF1bHRJY29uIHNob3VsZCBzZXQgaWNvbiBudW1iZXIgdG8gMCBpZiBpdCdzIG1pc3NpbmcgZnJvbQorCXRoZSByZWcgZW50cnkuCisKKwkqIHRvb2xzL3dpbmVpbnN0YWxsOiBBZGFtIEQuIE1vc3MgPGFkYW1AZ2ltcC5vcmc+CisJTWFrZSB3aW5laW5zdGFsbCB3b3JrIGluIHRoZSBuZXctYXV0b2NvbmYtdmVyc2lvbiB3b3JsZC4KKworCSogZGxscy9xdWFydHovYXVkcmVuLmMsIGRsbHMvcXVhcnR6L2F1ZHJlbi5oLCBkbGxzL3F1YXJ0ei9iYXNlZmlsdC5oLAorCSAgZGxscy9xdWFydHovYmFzZXBpbi5jLCBkbGxzL3F1YXJ0ei9tdHlwZS5jLCBkbGxzL3F1YXJ0ei9wYXJzZXIuYywKKwkgIGRsbHMvcXVhcnR6L3ZpZHJlbi5jLCBkbGxzL3F1YXJ0ei92aWRyZW4uaCwgZGxscy9xdWFydHoveGZvcm0uYywKKwkgIGRsbHMvcXVhcnR6L3hmb3JtLmgsIGRsbHMvcXVhcnR6L2FzeW5jc3JjLmM6CisJSGlkZW5vcmkgVGFrZXNoaW1hIDxoaWRlbm9yaUBhMi5jdGt0di5uZS5qcD4KKwlGaXhlZCBzb21lIGRlYWRsb2Nrcy4KKworCSogZGxscy9hdmlmaWwzMi9pYXN0cmVhbS5jLCBkbGxzL2F2aWZpbDMyL2lnZnJhbWUuYzoKKwlIaWRlbm9yaSBUYWtlc2hpbWEgPGhpZGVub3JpQGEyLmN0a3R2Lm5lLmpwPgorCUZpeGVzIGZvciBjb21wYXRpYmlsaXR5LgorCisJKiBkb2N1bWVudGF0aW9uL3NhbXBsZXMvc3lzdGVtLmluaToKKwlIaWRlbm9yaSBUYWtlc2hpbWEgPGhpZGVub3JpQGEyLmN0a3R2Lm5lLmpwPgorCUFkZGVkIG1zcmxlMzIuZGxsIChkZWNvbXByZXNzb3Igb2YgTVJMRSkuCisKKwkqIGRsbHMvbXNybGUzMi9tc3JsZTMyLmM6CisJSGlkZW5vcmkgVGFrZXNoaW1hIDxoaWRlbm9yaUBhMi5jdGt0di5uZS5qcD4KKwlGaXhlZCBidWdzIGluIHByb2Nlc3NpbmcgREVMVEEuCisKKwkqIGRsbHMvdXNlci90ZXh0LmM6CisJQmlsbCBNZWRsYW5kIDxtZWRiaTAxQGFjY3BhYy5jb20+CisJQ2hhbmdlIHRoZSB3YXkgdGhhdCBEcmF3VGV4dCBwYXJzZXMgdGhlIG5leHQgbGluZSB0byBkaXNwbGF5LCByZWFkeSB0bworCXN1cHBvcnQgbXVsdGlsaW5lIGVsbGlwc2lmaWNhdGlvbiBldGMuICBSYXRoZXIgdGhhbiBtZWFzdXJpbmcgdGhlIHRleHQKKwllYWNoIHRpbWUgd2UgYWRkIGEgY2hhcmFjdGVyIGFuZCBicmVha2luZyBvbmNlIGl0IGlzIHRvbyBsb25nIGFuZAorCVdPUkRCUkVBSyBpcyBlbmFibGVkLCB3ZSBjb3B5IGEgd2hvbGUgdGV4dCBzZWdtZW50IGFuZCB0aGVuIG1lYXN1cmUKKwlpdDsgR2V0VGV4dEV4dGVudFBvaW50RXggaXMgZGVzaWduZWQgdG8gdGVsbCB1cyBob3cgbXVjaCBmaXR0ZWQuICBUaGlzCisJbWF5IHJlc3VsdCBpbiBhIGxpdHRsZSByZXNjYW5uaW5nIGlmIHdvcmRicmVhayBpcyBlbmFibGVkIGJ1dCB3aWxsIGJlCisJd2VsbCB3b3J0aCB3aGlsZSB3aGVuIG11bHRpbGluZSBwYXRoIGVsbGlwc2lmaWNhdGlvbiBpcyBicm91Z2h0IGRvd24KKwlpbnRvIHRoZSBOZXh0TGluZSBmdW5jdGlvbi4gIE5vdGUgYWxzbyB0aGF0IHRoZSB3b3JkYnJlYWsgY2FsY3VsYXRpb24KKwlpcyBhIGxpdHRsZSBtb3JlIGNvbXBsZXRlIChlLmcuICBpbmNsdWRpbmcgYnJlYWstd2l0aGluLXdvcmQgZm9yCisJRFRfRURJVENPTlRST0wpLgorCisJKiBkbGxzL29sZWF1dDMyL3ZhcmlhbnQuYzoKKwlQYXRyaWNrIEhhbGxlciA8cGF0cmljay5oYWxsZXJAaW5ub3Rlay5kZT4KKwlGaXggY3Jhc2ggaW4gVmFyaWFudFRpbWVUb0Rvc0RhdGVUaW1lLgorCisJKiBkbGxzL29sZTMyL2NsaXBib2FyZC5jOgorCVNhbmRlciB2YW4gTGVldXdlbiA8c2FuZGVydmxAeHM0YWxsLm5sPgorCU11c3QgbWFrZSBhIGNvcHkgb2YgZ2xvYmFsIGhhbmRsZSByZXR1cm5lZCBieSBHZXRDbGlwYm9hcmREYXRhOyBpdCBpcworCW5vdCB2YWxpZCBhZnRlciB3ZSBjYWxsIENsb3NlQ2xpcGJvYXJkLiBBcHBsaWNhdGlvbiBpcyByZXNwb25zaWJsZSBmb3IKKwlmcmVlaW5nIHRoZSBtZW1vcnkgKGZpeGVzIGNvcHkvcGFzdGUgaW4gbWFpbCBib2R5IGluIEZvcnRlIEFnZW50KS4KKworMjAwMi0wMi0xNSAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogdG9vbHMvbWFrZWRlcC5jOgorCU1vZGlmaWVkIG1ha2VkZXAgdG8gaGFuZGxlICNpbmNsdWRlIDw+IGNvcnJlY3RseSAoYmFzZWQgb24gYSBwYXRjaCBieQorCVBhdHJpayBTdHJpZHZhbGwpLgorCisJKiBkbGxzL3dpbmluZXQvTWFrZWZpbGUuaW4sIGRsbHMvd2lubW0vTWFrZWZpbGUuaW4sCisJICBkbGxzL3dpbnNwb29sL01ha2VmaWxlLmluLCBkbGxzL3VzZXIvTWFrZWZpbGUuaW4sCisJICBkbGxzL3NldHVwYXBpL01ha2VmaWxlLmluLCBkbGxzL3NoZG9jdncvTWFrZWZpbGUuaW4sCisJICBkbGxzL3NoZWxsMzIvTWFrZWZpbGUuaW4sIGRsbHMvc2hsd2FwaS9NYWtlZmlsZS5pbiwKKwkgIGRsbHMvbmV0YXBpMzIvTWFrZWZpbGUuaW4sIGRsbHMvbnRkbGwvTWFrZWZpbGUuaW4sCisJICBkbGxzL29sZTMyL01ha2VmaWxlLmluLCBkbGxzL3JwY3J0NC9NYWtlZmlsZS5pbiwKKwkgIGRsbHMvY29tY3RsMzIvTWFrZWZpbGUuaW4sIGRsbHMvY3J5cHQzMi9NYWtlZmlsZS5pbiwKKwkgIGRsbHMvZ2RpL01ha2VmaWxlLmluLCBkbGxzL2ltYWdlaGxwL01ha2VmaWxlLmluLAorCSAgZGxscy9hZHZhcGkzMi9NYWtlZmlsZS5pbjoKKwlQYXRyaWsgU3RyaWR2YWxsIDxwc0BsZWlzc25lci5zZT4KKwlBZGRlZCBzb21lIGRlZmluZXMgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBXaW5kb3dzIGhlYWRlcnMuCisKKwkqIHdpbmRvd3Mvd2luLmM6IEp1a2thIEhlaW5vbmVuIDxqaGVpQGlraS5maT4KKwlDb252ZXJ0IHNvbWUgaW52YWxpZCBvZmZzZXRzIGluIEdldFdpbmRvd0xvbmcxNiBpbnRvIHZhbGlkIG9mZnNldHMuCisKKwkqIGRsbHMvdXNlci90ZXh0LmM6CisJQmlsbCBNZWRsYW5kIDxtZWRiaTAxQGFjY3BhYy5jb20+CisJTWVhc3VyZSB0aGUgdGV4dCBtb3JlIHJlYXNvbmFibHkuIFRoaXMgaGFuZGxlcyBpbnRlcmNoYXJhY3RlciBzcGFjaW5nCisJYW5kIHNob3VsZCBoYW5kbGUgYW55IGtlcm5pbmcgZXRjLiB0aGF0IG1pZ2h0IGhhcHBlbi4gQWxzbyBlbnN1cmUgbm8KKwl3b3JkYnJlYWtpbmcgb24gc2luZ2xlbGluZSB0ZXh0LgorCisJKiB3aW5kb3dzL3gxMWRydi9rZXlib2FyZC5jOgorCURhdmUgSGF3a2VzIDxkYXZlaC13aW5lQGNhZGxpbmsuY29tPgorCUFkZGVkIGEga2V5Ym9hcmQgbWF0Y2hlZCB0byBWTkMuCisKKwkqIGluY2x1ZGUvbnRkZGsuaDogUm9uIEdhZ2UgPHJvbkByb25nYWdlLm9yZz4KKwlBZGRlZCBzZXZlcmFsIHN0cnVjdHVyZXMuCisKKwkqIGRsbHMvc2hlbGwzMi9zaGxmaWxlb3AuYzoKKwlSZWluIEtsYXplcyA8cmtsYXplc0B4czRhbGwubmw+CisJSW4gU0hGaWxlT3BlcmF0aW9uKCkgd2hlbiByZXF1ZXN0ZWQgdG8gY29weSBmaWxlcywgZmlndXJlIG91dCB3aGVuIHRoZQorCWRlc3RpbmF0aW9uIGlzIHRvIGJlIHRyZWF0ZWQgYXMgYSBkaXJlY3RvcnkgYW5kIGhhbmRsZSB0aG9zZSBjYXNlcy4KKworCSogY29uZmlndXJlLmFjLCBNYWtlZmlsZS5pbiwgY29uZmlndXJlOgorCUZpeGVkIGluc3RhbGxhdGlvbiBpc3N1ZXMgY2F1c2VkIGJ5IG5ldyBjb25maWd1cmUgc2NyaXB0LgorCisyMDAyLTAyLTE0ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBwcm9ncmFtcy9jbG9jay9tYWluLmMsIHByb2dyYW1zL25vdGVwYWQvZGlhbG9nLmMsCisJICBwcm9ncmFtcy93aW52ZXIvd2ludmVyLmMsIHdpbmRvd3Mvbm9uY2xpZW50LmMsIG1pc2Mvb3B0aW9ucy5jOgorCXZlcnNpb24uaCBpcyBub3cgaW4gaW5jbHVkZS93aW5lIGRpcmVjdG9yeS4KKworCSogdG9vbHMvd3JjL01ha2VmaWxlLmluLCBwcm9ncmFtcy93aW5oZWxwL01ha2VmaWxlLmluLAorCSAgdG9vbHMvTWFrZWZpbGUuaW4sIHRvb2xzL21ha2VkZXAuYywgdG9vbHMvd2luZWxhdW5jaGVyLmluLAorCSAgZGVidWdnZXIvTWFrZWZpbGUuaW4sIGRvY3VtZW50YXRpb24vLmN2c2lnbm9yZSwKKwkgIGRvY3VtZW50YXRpb24vTWFrZWZpbGUuaW4sIGRvY3VtZW50YXRpb24vd2luZS5jb25mLm1hbiwKKwkgIGRvY3VtZW50YXRpb24vd2luZS5jb25mLm1hbi5pbiwgZG9jdW1lbnRhdGlvbi93aW5lLm1hbi5pbiwKKwkgIGluY2x1ZGUvY29uZmlnLmguaW4sIGluY2x1ZGUvdmVyc2lvbi5oLCBpbmNsdWRlL3dpbmUvLmN2c2lnbm9yZSwKKwkgIGNvbmZpZ3VyZS5hYywgY29uZmlndXJlLmluLCBNYWtlLnJ1bGVzLmluLCBNYWtlZmlsZS5pbiwgVkVSU0lPTiwKKwkgIGNvbmZpZ3VyZToKKwlVcGdyYWRlZCBjb25maWd1cmUgc2NyaXB0IHRvIHVzZSBhdXRvY29uZiAyLjUwIGZlYXR1cmVzLCBhbmQgcmVuYW1lZAorCXRvIGNvbmZpZ3VyZS5hYy4KKwlDaGFuZ2VkIGEgZmV3IHRoaW5ncyB0byBiZXR0ZXIgZm9sbG93IHRoZSBhdXRvY29uZiBndWlkZWxpbmVzLgorCisJKiB0b29scy9jb25maWcuZ3Vlc3MsIHRvb2xzL2NvbmZpZy5zdWI6CisJVXBkYXRlZCB0byBuZXdlciB2ZXJzaW9uLgorCisJKiBkbGxzL2NvbW1kbGcvY2RsZ194eC5yYywgZGxscy9zaGVsbDMyL3NocmVzLnJjLCBkbGxzL2NvbWN0bDMyL3JzcmMucmM6CisJTWFydGluIERhbGVja2kgPGRhbGVja2lAZXZpc2lvbi12ZW50dXJlcy5jb20+CisJU29tZSBhcnR3b3JrIG9uIHRoZSBkZWZhdWx0IGljb25zLgorCisJKiBkbGxzL3VzZXIvdGV4dC5jOgorCUJpbGwgTWVkbGFuZCA8bWVkYmkwMUBhY2NwYWMuY29tPgorCURyYXdUZXh0IHNob3VsZCBub3Qgc3BsaXQgd29yZHMganVzdCBiZWNhdXNlIG9mIGNsaXBwaW5nLgorCisJKiBkbGxzL3NoZWxsMzIvc2hlbGwuYzoKKwlSZWluIEtsYXplcyA8cmtsYXplc0B4czRhbGwubmw+CisJSW4gU2hlbGxFeGVjdXRlMTYsIG1ha2Ugc3VyZSB0aGVyZSBpcyBhIHNwYWNlIGJldHdlZW4gY29tbWFuZCBhbmQKKwlwYXJhbWV0ZXJzLgorCisJKiBkbGxzL3dpbnNvY2svc29ja2V0LmM6CisJTGF3c29uIFdoaXRuZXkgPGxhd3Nvbl93aGl0bmV5QGp1bm8uY29tPgorCVByb3RlY3QgYWdhaW5zdCBOVUxMIHdzYWRkcmxlbiBpbiB3c19zb2NrYWRkcl9hbGxvYy4KKworMjAwMi0wMi0xMiAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogdG9vbHMvd2luZWJ1aWxkL3JlbGF5LmM6CisJR2F2cmllbCBTdGF0ZSA8Z2F2QHRyYW5zZ2FtaW5nLmNvbT4KKwlTb21lIG9sZGVyIHZlcnNpb25zIG9mIEdEQiBuZWVkIHRvIGhhdmUgdGhlIGZpbGVuYW1lIGRhdGEgYXZhaWxhYmxlCisJZm9yIGVhY2ggc2VjdGlvbiwgc28gd2UgbmVlZCB0byBvdXRwdXQgaXQgYWdhaW4gZm9yIHRoZSBkYXRhIHNlY3Rpb24uCisKKwkqIHdpbjMyL2VkaXRsaW5lLmM6CisJRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlNYWtlIEhvbWUsIEVuZCBhbmQgRW50ZXIgb24gdGhlIGtleXBhZCB3b3JrIGluIHRoZSBkZWJ1Z2dlci4KKworCSogd2luMzIvZmlsZS5jOiBKdWtrYSBIZWlub25lbiA8amhlaUBpa2kuZmk+CisJU2V0RmlsZUF0dHJpYnV0ZXMgcmV0dXJucyBub3cgYW4gZXJyb3IgaWYgdGFyZ2V0IGZpbGUgaXMgb24gQ0RST00uCisKKwkqIGZpbGVzL2RyaXZlLmM6IEp1a2thIEhlaW5vbmVuIDxqaGVpQGlraS5maT4KKwlBZGRlZCBtaXNzaW5nIGJyZWFrIHN0YXRlbWVudC4KKworCSogZGxscy9zaGx3YXBpL3JlZy5jOgorCUd1eSBMLiBBbGJlcnRlbGxpIDxnYWxiZXJ0ZUBuZW8ubHJ1bi5jb20+CisJUGFydGlhbGx5IGltcGxlbWVudCBTSFJlZ1dyaXRlVVNWYWx1ZXtBfFd9LgorCisJKiBkbGxzL2NvbWN0bDMyL3Rvb2xiYXIuYzoKKwlHdXkgTC4gQWxiZXJ0ZWxsaSA8Z2FsYmVydGVAbmVvLmxydW4uY29tPgorCVdoZW4gdGhlIGNvbW1hbmRJRCB3YXMgYmVpbmcgdHJlYXRlZCBhcyB0aGUgaW5kZXgsIG5vIGNoZWNrIGZvciBpbmRleAorCWdyZWF0ZXIgdGhhbiBudW1iZXIgb2YgYnV0dG9ucyB3YXMgZG9uZS4gTm93IGZpeGVkLgorCisJKiBkbGxzL2NvbWN0bDMyL3JlYmFyLmM6CisJR3V5IEwuIEFsYmVydGVsbGkgPGdhbGJlcnRlQG5lby5scnVuLmNvbT4KKwlGaXggcmVncmVzc2lvbiBpbiBzb21lIHByb2dyYW1zIGR1ZSB0byBDTFJfREVGQVVMVCBmaXguIE5vdGljZWQgaW4KKwljb250cm9sLXNweSByZWJhci5leGUuCisKKwkqIHdpbmRvd3MveDExZHJ2L2tleWJvYXJkLmM6CisJRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlBbGxvdyBUb0FzY2lpL1RvVW5pY29kZSB0byB3b3JrIHdpdGggc2NhbkNvZGUgPSAwLgorCisJKiBkbGxzL2NvbWN0bDMyL2xpc3R2aWV3LmM6CisJR3V5IEwuIEFsYmVydGVsbGkgPGdhbGJlcnRlQG5lby5scnVuLmNvbT4KKwlDb3JyZWN0IHRlc3RzIGludm9sdmVkIHdpdGggcHJvY2Vzc2luZyB0aGUgTFZJRl9ESV9TRVRJVEVNIGZsYWcuCisKKwkqIGRsbHMvY29tY3RsMzIvY29tYm9leC5jOgorCUd1eSBMLiBBbGJlcnRlbGxpIDxnYWxiZXJ0ZUBuZW8ubHJ1bi5jb20+CisJSW5pdGlhbGl6ZSBwc3pUZXh0IHRvIDAgZm9yIGludGVybmFsIC0+Y2VJdGVtIHRvIGVsaW1pbmF0ZSBtb3ZlcyB0bworCWdhcmJhZ2UgbG9jYXRpb25zLgorCisJKiB3aW5lZGVmYXVsdC5yZWc6CisJTWFyY3VzIE1laXNzbmVyIDxtYXJjdXNAamV0LmZyYW5rZW4uZGU+CisJQWRkZWQgZGVmYXVsdCBmdW5jdGlvbiBtYXJzaGFsbGVyIHJlZ2lzdHJ5IGVudHJ5LgorCisJKiBkbGxzL3VzZXIvdGV4dC5jOgorCUJpbGwgTWVkbGFuZCA8bWVkYmkwMUBhY2NwYWMuY29tPgorCVB1dCBpbiBwbGFjZSBhIHByb3BlciB0YWIgbW9kZWwgd2l0aGluIERyYXdUZXh0IChhbHNvIGluY2x1ZGVzCisJc2ltcGxpZnlpbmcgVEVYVF9OZXh0TGluZVcgdG8gcmVtb3ZlIGR1cGxpY2F0ZSBjb2RlKS4KKworMjAwMi0wMi0wOCAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9tc3ZjcnQvY29uc29sZS5jLCBkbGxzL21zdmNydC9maWxlLmM6CisJQy4gU2NvdHQgQW5hbmlhbiA8Y2FuYW5pYW5AbGVzc2VyLW1hZ29vLmxjcy5taXQuZWR1PgorCUZpbGxlZCBvdXQgdGhlIGltcGxlbWVudGF0aW9uIG9mIGZzY2FuZiBhbmQgX2NzY2FuZi4KKworCSogZGxscy9tc2FjbS9pbnRlcm5hbC5jOgorCUVyaWMgUG91ZWNoIDxlcmljLnBvdWVjaEB3YW5hZG9vLmZyPgorCUZpeGVkIGJ1ZyBpbiBjYWNoZSBpbml0LgorCisJKiBkbGxzL2NvbWN0bDMyL2NvbWJvZXguYzoKKwlBcmljIFN0ZXdhcnQgPGFyaWNAY29kZXdlYXZlcnMuY29tPgorCVVzZSB0aGUgc3VwcGxpZWQgYnVmZmVyIHdoZW4gY29weWluZyBpdGVtIHRleHQuCisKKwkqIGluY2x1ZGUvd2luZ2RpLmg6CisJSHV3IEQgTSBEYXZpZXMgPGhkYXZpZXNAY29kZXdlYXZlcnMuY29tPgorCUZpeCBQQU5fRkFNSUxZU1RZTEVfSU5ERVggbmFtZS4KKworCSogY29uZmlndXJlLCBjb25maWd1cmUuaW46CisJSHV3IEQgTSBEYXZpZXMgPGhkYXZpZXNAY29kZXdlYXZlcnMuY29tPgorCVdlIG5lZWQgZnR0cmlnb24uaCwgc28gZG9uJ3QgZGVmaW5lIEhBVkVfRlJFRVRZUEUgaWYgd2UgZG9uJ3QgaGF2ZSBpdC4KKworCSogZGxscy9vbGUzMi9zdG9yYWdlMzIuYzoKKwlMYXdzb24gV2hpdG5leSA8bGF3c29uX3doaXRuZXlAanVuby5jb20+CisJRml4IG9mZi1ieS1vbmUgZXJyb3IgaW4gcGxhY2luZyB0cmFpbGluZyBcMC4KKworCSogZGxscy9jb21jdGwzMi90b29sdGlwcy5jOgorCU9yaSBQZXNzYWNoIDxvcmlfcGVzc2FjaF9ibGFoQHlhaG9vLmNvbT4KKwlTZXQgV1NfRVhfVE9PTFdJTkRPVyBpbiBhIHRvb2x0aXAncyBkd0V4U3R5bGUuCisKKzIwMDItMDItMDUgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGRsbHMvYWR2YXBpMzIvcmVnaXN0cnkuYzoKKwlBcmljIFN0ZXdhcnQgPGFyaWNAY29kZXdlYXZlcnMuY29tPgorCURvbid0IHJldHVybiBvdmVyZmxvdyBpZiBubyBjbGFzcyBidWZmZXIgd2FzIHNwZWNpZmllZC4KKworCSogZmlsZXMvcHJvZmlsZS5jOgorCUdlcmhhcmQgR3J1YmVyIDxzcGFyaGF3a0BnbXguYXQ+CisJV3JpdGVQcml2YXRlUHJvZmlsZVNlY3Rpb24gc2hvdWxkIGFsbG93IHRvIGNyZWF0ZSBkdXBsaWNhdGUga2V5cworCWJlY2F1c2UgaXQgdGFrZXMgdGhlIGJ1ZmZlciBhcyBpdCBpcyB3aXRob3V0IGFueSBtb2RpZmljYXRpb25zLgorCisJKiBkbGxzL3gxMWRydi9zY3JvbGwuYzoKKwlSZWluIEtsYXplcyA8cmtsYXplc0B4czRhbGwubmw+CisJSW4gWDExRFJWX1Njcm9sbERDIG9ubHkgbW92ZSBwaXhlbHMgdGhhdCBhcmUgd2l0aGluIHRoZSBjbGlwCisJcmVjdGFuZ2xlLCBiZWZvcmUgYW5kIGFmdGVyIHRoZXkgYXJlIHNjcm9sbGVkLgorCisJKiBvYmplY3RzL3BhbGV0dGUuYzoKKwlEYXZlIEhhd2tlcyA8ZGF2ZWgtd2luZUBjYWRsaW5rLmNvbT4KKwlGaXggZm9yIEdldE5lYXJlc3RDb2xvciBzbyBpdCByZXR1cm5zIHRoZSB0cnVlIGNvbG9yIHJhdGhlciB0aGFuIHRoZQorCXN5c3RlbSBwYWxldHRlIGlmIHRoZSBkZXZpY2UgZG9lcyBub3Qgc3VwcG9ydCBhIHBhbGV0dGUuCisKKwkqIGRsbHMvY29tY3RsMzIvbGlzdHZpZXcuYzoKKwlHdXkgTC4gQWxiZXJ0ZWxsaSA8Z2FsYmVydGVAbmVvLmxydW4uY29tPgorCUFyaWMgU3Rld2FydCA8YXJpY0Bjb2Rld2VhdmVycy5jb20+CisJRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlNaXNjIGZpeGVzOgorCS0gY2FjaGUgdGV4dCBtZXRyaWNzIGZvciB0aGUgZm9udCB3ZSdyZSB1c2luZworCS0gaW1wcm92ZWQgaXRlbSBoaXQgZGV0ZWN0aW9uCisJLSBtb3JlIGRlYnVnZ2luZyBvdXRwdXQKKwktIGltcGxlbWVudCBMVk1fU0VUSUNPTlNQQUNJTkcKKwktIGxvdHMgb2YgYnVncyBzcXVhc2hlZAorCisJKiBkbGxzL29sZWF1dDMyL01ha2VmaWxlLmluLCBkbGxzL29sZWF1dDMyL29sZWF1dC5jLAorCSAgZGxscy9vbGVhdXQzMi9vbGVhdXQzMi5zcGVjLCBkbGxzL29sZWF1dDMyL3RtYXJzaGFsLmMsCisJICBkbGxzL29sZWF1dDMyL3RtYXJzaGFsLmgsIGRsbHMvb2xlYXV0MzIvdHlwZWxpYi5jLAorCSAgZGxscy9vbGVhdXQzMi90eXBlbGliLmgsIGRsbHMvb2xlYXV0MzIvdmFyaWFudC5jLAorCSAgZGxscy9vbGUzMi9jb21wb2JqX3ByaXZhdGUuaCwgZGxscy9vbGUzMi9tYXJzaGFsLmMsCisJICBkbGxzL29sZTMyL29sZTMyLnNwZWMsIGRsbHMvb2xlMzIvb2xlcHJveHkuYywgZGxscy9vbGUzMi9ycGMuYywKKwkgIGRsbHMvb2xlMzIvY29tcG9iai5jLCBkbGxzL29sZTMyL01ha2VmaWxlLmluOgorCU1hcmN1cyBNZWlzc25lciA8bWFyY3VzQGpldC5mcmFua2VuLmRlPgorCUltcGxlbWVudGVkIExvY2FsIFNlcnZlciBDT00uCisJSW1wbGVtZW50ZWQgdGhlIFR5cGVsaWIgYmFzZWQgTWFyc2hhbGVyLgorCisJKiBkbGxzL3NobHdhcGkvb3JkaW5hbC5jLCBpbmNsdWRlL2Jhc2V0c2QuaCwgaW5jbHVkZS9udGRkay5oLAorCSAgaW5jbHVkZS9vbGVhdXRvLmgsIGluY2x1ZGUvcG9wcGFjay5oLCBpbmNsdWRlL3BzaHBhY2sxLmgsCisJICBpbmNsdWRlL3BzaHBhY2syLmgsIGluY2x1ZGUvcHNocGFjazQuaCwgaW5jbHVkZS9wc2hwYWNrOC5oLAorCSAgaW5jbHVkZS9ycGNkY2UuaCwgaW5jbHVkZS9ycGNuZHIuaDoKKwlQYXRyaWsgU3RyaWR2YWxsIDxwc0BsZWlzc25lci5zZT4KKwlNU1ZDIGNvbXBpbGUgZml4ZXMuCisKKwkqIGRsbHMvY29tY3RsMzIvcHJvZ3Jlc3MuYzoKKwlEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCVJlbW92ZSBQUk9HUkVTU19SZWZyZXNoLCBhbHdheXMgZG8gSW52YWxpZGF0ZVJlY3QoKSB0byByZXBhaW50LgorCUFkZCBXTV9FUkFTRUJLR05EIGhhbmRsZXIgYXMgaW4gV2luZG93cy4KKwlCZSBzbGlnaHRseSBzbWFydGVyIHdoZXRoZXIgaW52YWxpZGF0ZSBiYWNrZ3JvdW5kIG9yIG5vdC4KKwlBbHdheXMgdHJlYXQgd1BhcmFtIGFzIElOVCB0byBub3QgbG9zZSBzaWduZWQgdmFsdWVzLgorCisJKiBkbGxzL2NvbWN0bDMyL3VwZG93bi5jOgorCURpbWl0cmllIE8uIFBhdW4gPGRpbWlAY3MudG9yb250by5lZHU+CisJVmFyaW91cyBjbGVhbnVwczoKKwktIGdldCByaWQgb2YgdGhlIHN0YXRpYyBkYXRhIG1lbWJlcgorCS0gcGFzcyB0aGUgaW5mb1B0ciBhcm91bmQgaW5zdGVhZCBvZiB0aGUgaHduZAorCS0gZml4IGluZGVudGF0aW4vc3R5bGUgYSBiaXQgdG8gbWFrZSBpdCBjb25zaXN0ZW50IHdpdGggdGhlIHJlc3Qgb2YKKwkgIHRoZSBmaWxlLgorCisJKiBkbGxzL3VzZXIvdGV4dC5jOgorCUJpbGwgTWVkbGFuZCA8bWVkYmkwMUBhY2NwYWMuY29tPgorCVNwbGl0IHRoZSBwYXRoIGFuZCB3b3JkL2VuZCBlbGxpcHNpZmljYXRpb24gb3V0IG9mIHRoZSBtYWluIGZ1bmN0aW9uCisJYW5kIGRvIHRoZW0gdGhvcm91Z2hseS4gVGhlIGV4aXN0aW5nIG1ldGhvZCB3b3VsZCBiZSBpbmNvcnJlY3Qgd2hlcmUKKwl0YWJzIHdlcmUgaW52b2x2ZWQgYW5kIGluIHNvbWUga2VybmluZyBzaXR1YXRpb25zLgorCisyMDAyLTAyLTA0ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBpbmNsdWRlL2NvbmZpZy5oLmluLCB0b29scy93aW5lYnVpbGQvYnVpbGQuaCwKKwkgIHRvb2xzL3dpbmVidWlsZC9tYWluLmMsIHRvb2xzL3dpbmVidWlsZC9wYXJzZXIuYywKKwkgIHRvb2xzL3dpbmVidWlsZC9zcGVjMzIuYywgTWFrZS5ydWxlcy5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CisJRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlTdXBwb3J0IGZvciBnZW5lcmF0aW9uIG9mIC5kZWYgZmlsZXMgZnJvbSAuc3BlYyBmaWxlcy4KKworCSogZGxscy9jb21jdGwzMi9saXN0dmlldy5jOgorCURpbWl0cmllIE8uIFBhdW4gPGRpbWlAY3MudG9yb250by5lZHU+CisJQ29tcGxldGUgTGlzdHZpZXcgVW5pY29kaWZpY2F0aW9uLgorCVNpbXBsaWZ5IHRoZSBzZXR0aW5nIG9mIChzdWIpaXRlbSB0ZXh0IGJ5IHVzaW5nIGNvbW1vbiBjb2RlLgorCisJKiBwcm9ncmFtcy93aW5lY29uc29sZS9kaWFsb2cuYywgcHJvZ3JhbXMvd2luZWNvbnNvbGUvcmVnaXN0cnkuYywKKwkgIHByb2dyYW1zL3dpbmVjb25zb2xlL3VzZXIuYywgcHJvZ3JhbXMvd2luZWNvbnNvbGUvd2luZWNvbl9wcml2YXRlLmgsCisJICBwcm9ncmFtcy93aW5lY29uc29sZS93aW5lY29uX3VzZXIuaCwKKwkgIHByb2dyYW1zL3dpbmVjb25zb2xlL3dpbmVjb25zb2xlX0VuLnJjLAorCSAgcHJvZ3JhbXMvd2luZWNvbnNvbGUvd2luZWNvbnNvbGVfRnIucmMsCisJICBwcm9ncmFtcy93aW5lY29uc29sZS93aW5lY29uc29sZV9yZXMuaDoKKwlFcmljIFBvdWVjaCA8ZXJpYy5wb3VlY2hAd2FuYWRvby5mcj4KKwktIHdpbmVjb25zb2xlIG5vdyBleGl0cyBpZiB0aGUgc3RhcnRlZCBwcm9ncmFtIGluc2lkZSBpdCB0ZXJtaW5hdGVzCisJICBiZWZvcmUgdGhlIGNvbnNvbGUgYWN0dWFsbHkgc3RhcnRzIHVwLgorCS0gUmVtb3ZlZCB0aGUgbGFzdCBBbnNpIGltcG9ydGVkIEFQSXMgc2luY2Ugbm93IFByb3BzaGVldCBoYXMgYSBkZWNlbnQKKwkgIFVuaWNvZGUgaW50ZXJmYWNlLgorCS0gRml4ZWQgYSBjb3VwbGUgb2YgbWVudSByZWxhdGVkIGJ1Z3MgKHN0YXRlcyB3ZXJlIHdyb25nKS4KKwktIEZpbmlzaGVkIGlucHV0IHNlbGVjdGlvbiBjb2RlIChtYXJrIGFuZCBrZXkgZm9yIHNlbGVjdGlvbiBtb3ZpbmcgYXJlCisJICBvcGVyYXRpb25hbCwgZ2VuZXJhdGluZyBtb3VzZSBldmVudHMgdG8gcHJvZ3JhbXMgYXR0YWNoZWQgdG8gdGhlCisJICBjb25zb2xlKS4KKworCSogZGVidWdnZXIvZGJnLnksIGRlYnVnZ2VyL2RlYnVnLmwsIGRlYnVnZ2VyL2RlYnVnZ2VyLmgsCisJICBkZWJ1Z2dlci9oYXNoLmMsIGRlYnVnZ2VyL3NvdXJjZS5jOgorCUVyaWMgUG91ZWNoIDxlcmljLnBvdWVjaEB3YW5hZG9vLmZyPgorCUZpeGVkIHNvbWUgYmFkIGJlaGF2aW9yIHdoZW4gbWFueSBzeW1ib2xzIHdpdGggc2FtZSBuYW1lcyB3aGVyZSBmb3VuZC4KKwlSZW1vdmVkIGV4dGVybmFsIHJlYWRsaW5lIHN1cHBvcnQuCisKKwkqIGRsbHMvY29tY3RsMzIvdHJlZXZpZXcuYzoKKwlBcmljIFN0ZXdhcnQgPGFyaWNAY29kZXdlYXZlcnMuY29tPgorCUFkZGVkIGltcGxlbWVudGF0aW9uIG9mIFNldEl0ZW1XLgorCisJKiBkbGxzL2NvbWN0bDMyL2lwYWRkcmVzcy5jOgorCUZyYW7nb2lzIEdvdWdldCA8ZmdvdWdldEBjb2Rld2VhdmVycy5jb20+CisJU3RvcmluZyBhbiBJUCBhZGRyZXNzIGluIGEgc2lnbmVkIGludCByZXN1bHRzIGluIGJ1Z3MgaWYgaXQgc3RhcnRzCisJd2l0aCA+PTEyOC4KKworCSogbWVtb3J5L2NvZGVwYWdlLmMsIG9sZS9vbGUybmxzLmM6CisJRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlSZWltcGxlbWVudCBHZXRTdHJpbmdUeXBlQSBhbmQgR2V0U3RyaW5nVHlwZUV4QS4KKworCSogZGxscy9vbGVhdXQzMi90eXBlbGliLmM6CisJTWFsdGUgU3Rhcm9zdGlrIDxtYWx0ZUBrZGUub3JnPgorCURvIG5vdCBkZXN0cm95IElUeXBlTGliIGhlbGQgYnkgSVR5cGVJbmZvIGJlZm9yZSB0aGUgbGF0dGVyIGlzIGZyZWVkLgorCisJKiBkbGxzL29sZWF1dDMyL3ZhcmlhbnQuYzoKKwlNYXJjdXMgTWVpc3NuZXIgPG1hcmN1c0BqZXQuZnJhbmtlbi5kZT4KKwlWVF9FTVBUWSBjYW4gYmUgY29lcmNlZCB0byBWVF9JNCwgdmFsdWUgMC4KKworCSogZGxscy9jb21jdGwzMi9wcm9ncmVzcy5jOgorCURtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJTW92ZWQgc3R5bGUgY29ycmVjdGluZyBjb2RlIHRvIHRoZSBXTV9DUkVBVEUgaGFuZGxlciBhbmQgYWRkZWQKKwljbGVhcmluZyBvZiBXU19FWF9DTElFTlRFREdFIGFuZCBXU19FWF9XSU5ET1dFREdFIGFzIGluIFdpbmRvd3MuCisJQWRkZWQgU2V0V2luZG93UG9zKFNXUF9GUkFNRUNIQU5HRUQpIHRvIG1ha2UgY2hhbmdlcyB0YWtlIGVmZmVjdC4KKworCSogd2luZG93cy9zeXNwYXJhbXMuYzoKKwlEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCUd1eSBBbGJlcnRlbGxpIDxndXlAY29kZXdlYXZlcnMuY29tPgorCVVzZSBHZXRTeXN0ZW1NZXRyaWNzKCkgdG8gZm9yIGNhcHRpb24gbWV0cmljcyBpbiBOT05DTElFTlRNRVRSSUNTCisJc3RydWN0LiBJbml0aWFsaXplIGlTY3JvbGxXaWR0aCBhbmQgaVNjcm9sbEhlaWdodCBlbnRyaWVzIGZvcgorCVNQSV9HRVROT05DTElFTlRNRVRSSUNTLgorCisJKiBkbGxzL2NvbWN0bDMyL3JlYmFyLmM6CisJR3V5IEwuIEFsYmVydGVsbGkgPGdhbGJlcnRlQG5lby5scnVuLmNvbT4KKwlGaXggcHJvYmxlbSBleHBvc2VkIGJ5IHRoZSBpbXByb3ZlbWVudHMgaW4gdmVyc2lvbiA4Yi4gRGVtb25zdHJhdGVkIGJ5CisJT0UgNC4KKworMjAwMi0wMi0wMiAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogd2luZG93cy9kZWZ3bmQuYywgb2JqZWN0cy9wYWxldHRlLmMsIHByb2dyYW1zL2F2aXRvb2xzL2F2aWluZm8uYywKKwkgIHByb2dyYW1zL2F2aXRvb2xzL2F2aXBsYXkuYywgcmVsYXkzMi9yZWxheTM4Ni5jLCBsaWJ0ZXN0L2hlbGxvNS5jLAorCSAgbG9hZGVyL25lL3NlZ21lbnQuYywgbG9hZGVyL3BlX2ltYWdlLmMsIGxvYWRlci9yZXNvdXJjZS5jLAorCSAgZGxscy93aW5zcG9vbC9pbmZvLmMsIGluY2x1ZGUvbXN2Y3J0L3Byb2Nlc3MuaCwKKwkgIGRsbHMvd2luZXBzL2RyaXZlci5jLCBkbGxzL3dpbm1tL2xvbHZsZHJ2LmMsIGRsbHMvd2lubW0vbW1zeXN0ZW0uYywKKwkgIGRsbHMvd2lubW0vd2luZW1tLmgsIGRsbHMvdXNlci9kZGUvZGRlbWwxNi5jLCBkbGxzL3dpbmVkb3MvdmdhLmMsCisJICBkbGxzL3NldHVwYXBpL3NldHVweDE2LmgsIGRsbHMvc2hlbGwzMi9zaGVsbDMyX21haW4uYywKKwkgIGRsbHMvc2hlbGwzMi9zaGVsbDMyX21haW4uaCwgZGxscy9zaGVsbDMyL3NoZWxsb2xlLmMsCisJICBkbGxzL3NoZWxsMzIvc2hsdmlldy5jLCBkbGxzL3NoZWxsMzIvdW5kb2NzaGVsbC5oLAorCSAgZGxscy9semV4cGFuZC9semV4cGFuZF9tYWluLmMsIGRsbHMvbXNhY20vd2luZWFjbS5oLAorCSAgZGxscy9vbGUzMi9jb21wb2JqLmMsIGRsbHMvZHBsYXl4L2RwbGF5c3AuaCwgZGxscy9nZGkvcHJpbnRkcnYuYywKKwkgIGRsbHMvaW1tMzIvaW1tX3ByaXZhdGUuaCwgZGxscy9rZXJuZWwvc3RyaW5nLmMsCisJICBkbGxzL2tlcm5lbC91dHRodW5rLmMsIGRsbHMvY29tbWRsZy9jZGxnLmgsIGRsbHMvY29tbWRsZy9jZGxnMzIuYywKKwkgIGRsbHMvZGRyYXcvZGRyYXdfcHJpdmF0ZS5oLCBkbGxzL2NvbWN0bDMyL2FuaW1hdGUuYywKKwkgIGRsbHMvY29tY3RsMzIvc21vb3Roc2Nyb2xsLmM6CisJUGF0cmlrIFN0cmlkdmFsbCA8cHNAbGVpc3NuZXIuc2U+CisJTW92ZSBfX3N0ZGNhbGwvX19jZGVjbCB0byB0aGUgcmlnaHQgcGxhY2UuCisKKwkqIHByb2dyYW1zL3dpbmV0ZXN0L3J1bnRlc3QsIE1ha2UucnVsZXMuaW46CisJUGF0cmlrIFN0cmlkdmFsbCA8cHNAbGVpc3NuZXIuc2U+CisJLSBNYWRlIHJ1bnRlc3QgInVzZSBzdHJpY3QiLgorCS0gQWRkZWQgbmV3IG9wdGlvbiAtTSB0byBzcGVjaWZ5IHdoaWNoIG1vZHVsZXMgc2hvdWxkIGJlIHRlc3RlZCBhcworCSAgYnVpbHRpbi4KKworCSogbGlidGVzdC92YXJ0ZXN0LmMsIHByb2dyYW1zL3JlZ3Rlc3QvcmVndGVzdC5jLCBkbGxzL3dpbmVwcy9ta2FnbC5jOgorCUZyYW5jb2lzIEdvdWdldCA8ZmdvdWdldEBmcmVlLmZyPgorCW1hbGxvYy5oIGlzIG9ic29sZXRlIGFuZCBzdGRsaWIuaCBzaG91bGQgYmUgdXNlZCBpbnN0ZWFkLgorCisJKiBwcm9ncmFtcy9jb250cm9sL2NvbnRyb2wuYzoKKwlXZSBjYW4gdXNlIG5vcm1hbCBpbXBvcnRzIGZvciBzaGVsbDMyIG5vdy4KKworCSogZGxscy91c2VyL3RleHQuYzoKKwlCaWxsIE1lZGxhbmQgPG1lZGJpMDFAYWNjcGFjLmNvbT4KKwlFbnN1cmUgdGhhdCB0aGUgd2hvbGUgbW9kaWZpZWQgdGV4dCBpcyByZXR1cm5lZCBmcm9tIERyYXdUZXh0RXhBLgorCisJKiBsb2FkZXIvbW9kdWxlLmMsIHNjaGVkdWxlci9wcm9jZXNzLmMsIHNjaGVkdWxlci90aHJlYWQuYywKKwkgIGRsbHMvZ2RpL2RyaXZlci5jOgorCURvIG5vdCB1c2UgdGhlIFBFQiBsb2NrIGFzIGxvYWRlciBsb2NrLCB1c2UgYSBzZXBhcmF0ZSBjcml0aWNhbAorCXNlY3Rpb24gZm9yIHRoYXQgKGFuZCBmb3IgdGhlIGdyYXBoaWNzIGRyaXZlcnMpLgorCisJKiB0b29scy93aW5lZHVtcC9tc21hbmdsZS5jLCBkbGxzL2NvbW1kbGcvZm9udGRsZy5jLAorCSAgZGxscy9zaGVsbDMyL2ljb25jYWNoZS5jLCBkbGxzL3VzZXIvZGRlL2NsaWVudC5jLAorCSAgZGxscy9jb21jdGwzMi9jb21jdGwzMnVuZG9jLmMsIGRsbHMvY29tY3RsMzIvaGVhZGVyLmMsCisJICBkbGxzL2NvbWN0bDMyL3JlYmFyLmM6CisJQW5kcmVhcyBNb2hyIDxhbmRpQHJobHgwMS5maHQtZXNzbGluZ2VuLmRlPgorCUZpeGVkIHNvbWUgbW9yZSBtaXNzaW5nIHBhcmVudGhlc2lzIGlzc3Vlcy4KKworCSogUkVBRE1FLCBkb2N1bWVudGF0aW9uL0hPV1RPLXdpbmVsaWIsIGRvY3VtZW50YXRpb24vY29uZmlndXJpbmcuc2dtbCwKKwkgIGRvY3VtZW50YXRpb24vd2luZS5jb25mLm1hbi5pbiwgZG9jdW1lbnRhdGlvbi93aW5lLm1hbi5pbjoKKwlBbmRyZWFzIE1vaHIgPGFuZGlAcmhseDAxLmZodC1lc3NsaW5nZW4uZGU+CisJLSBhZGQgZG9jdW1lbnRhdGlvbiBzZWN0aW9uIHRvIFJFQURNRQorCS0gdXBkYXRlZCBIT1dUTy13aW5lbGliCisJLSBhZGRlZCBuYXRpdmUgRExMIGNvbmZpZyBpbmZvIHRvIGNvbmZpZ3VyaW5nLnNnbWwKKwktIGdyZWF0bHkgaW1wcm92ZSBkaXJlY3RvcnkgZGVzY3JpcHRpb24gb2Ygd2luZS5jb25mIG1hbiBwYWdlCisJLSBhZGQgLS1kZWJ1Z21zZyArYWxsIHdhcm5pbmcgdG8gd2luZSBtYW4gcGFnZQorCisJKiBkbGxzL2NvbWN0bDMyL2xpc3R2aWV3LmM6CisJSHV3IEQgTSBEYXZpZXMgPGhkYXZpZXNAY29kZXdlYXZlcnMuY29tPgorCUZsaXAgQTwtPlcgY29udmVyc2lvbiBpbiBkaXNwaW5mb19ub3RpZnlULgorCisyMDAyLTAyLTAxICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL2NvbWN0bDMyL3RyZWV2aWV3LmM6CisJQXJpYyBTdGV3YXJ0IDxhcmljQGNvZGV3ZWF2ZXJzLmNvbT4KKwlGaXggdG8gR2V0SXRlbVcgdG8gc3RvcCB3aGlwaW5nIG91dCB0aGUgaXRlbXMgdGV4dC4KKworCSogcHJvZ3JhbXMvd2luZXRlc3Qvd2luZS54czoKKwlGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAZnJlZS5mcj4KKwljb25maWcuaCBzaG91bGQgYmUgaW5jbHVkZWQgZmlyc3QgKGlmIGF0IGFsbCkuCisJRml4IHJldHVybiBvZiBjb252ZXJ0X3ZhbHVlLgorCisJKiBkbGxzL3RhcGkzMi9saW5lLmMsIGluY2x1ZGUvdGFwaS5oOgorCUd1eSBBbGJlcnRlbGxpIDxnYWxiZXJ0ZUBuZW8ubHJ1bi5jb20+CisJRG9uJ3QgdHJ5IHRvIHNldCBmaWVsZHMgaW4gbm9uZXhpc3RhbnQgbHBMaW5lQ291bnRyeUxpc3QuCisJU3VwcGx5IHZhbGlkIHRhcGkgY29kZXMuCisKKzIwMDItMDEtMzEgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIHNlcnZlci9hdG9tLmM6IFJlaW4gS2xhemVzIDxya2xhemVzQHhzNGFsbC5ubD4KKwlBbGxvdyBpbnRlZ2VyIGF0b21zIGluIHNldF9wcm9wZXJ0eSBhbmQgcmVtb3ZlX3Byb3BlcnR5LiBOZWVkZWQgYnkKKwlGaW5kVGV4dCBjb21tb24gZGlhbG9nLgorCisJKiBsb2FkZXIvbW9kdWxlLmMsIGxvYWRlci9wZV9pbWFnZS5jLCBsb2FkZXIvcGVfcmVzb3VyY2UuYzoKKwlMT0FEX0xJQlJBUllfQVNfREFUQUZJTEUgbW9kdWxlcyBtdXN0IGJlIG1hcHBlZCBsaWtlIG5vcm1hbCBmaWxlcywgbm90CisJbGlrZSBQRSBpbWFnZXMuIEZpeGVkIHJlc291cmNlIGxvYWRpbmcgdG8gaGFuZGxlIHRoYXQuCisKKwkqIHRvb2xzL3dpbmVidWlsZC9zcGVjMTYuYywgaW5jbHVkZS93aW5lL2V4Y2VwdGlvbi5oLAorCSAgaW5jbHVkZS93aW5lL21tc3lzdGVtMTYuaCwgaW5jbHVkZS93aW5lL29ial9iYXNlLmgsCisJICBpbmNsdWRlL3dpbmUvb2JqX29sZWF1dC5oLCBpbmNsdWRlL3dpbmUvb2JqX29sZXZpZXcuaCwKKwkgIGluY2x1ZGUvd2luZS93aW5kZWYxNi5oLCBpbmNsdWRlL3dpbmUvd2luZ2RpMTYuaCwKKwkgIGluY2x1ZGUvd2luZS93aW51c2VyMTYuaCwgaW5jbHVkZS9uZXRzcGkuaCwgaW5jbHVkZS9vbGUuaCwKKwkgIGluY2x1ZGUvb2xlMi5oLCBpbmNsdWRlL29sZWRsZy5oLCBpbmNsdWRlL3Byc2h0LmgsCisJICBpbmNsdWRlL3JpY2hlZGl0LmgsIGluY2x1ZGUvc2V0dXBhcGkuaCwgaW5jbHVkZS9zaGxvYmouaCwKKwkgIGluY2x1ZGUvc2hsd2FwaS5oLCBpbmNsdWRlL3RhcGkuaCwgaW5jbHVkZS90YXNrLmgsIGluY2x1ZGUvdmZ3LmgsCisJICBpbmNsdWRlL3dpbmJhc2UuaCwgaW5jbHVkZS93aW5kZWYuaCwgaW5jbHVkZS93aW5nZGkuaCwKKwkgIGluY2x1ZGUvd2luaW5ldC5oLCBpbmNsdWRlL3dpbm5ldHdrLmgsIGluY2x1ZGUvd2lubmxzLmgsCisJICBpbmNsdWRlL3dpbm50LmgsIGluY2x1ZGUvd2luc29jazIuaCwgaW5jbHVkZS93aW5zdmMuaCwKKwkgIGluY2x1ZGUvd2ludXNlci5oLCBpbmNsdWRlL3dzMnNwaS5oLCBpbmNsdWRlL2NhbGxiYWNrLmgsCisJICBpbmNsdWRlL2NvbW1jdHJsLmgsIGluY2x1ZGUvY29tbWRsZy5oLCBpbmNsdWRlL2QzZGNhcHMuaCwKKwkgIGluY2x1ZGUvZDNkaGFsLmgsIGluY2x1ZGUvZDNkdHlwZXMuaCwgaW5jbHVkZS9kZGVtbC5oLAorCSAgaW5jbHVkZS9kZHJhdy5oLCBpbmNsdWRlL2RkcmF3aS5oLCBpbmNsdWRlL2RpbnB1dC5oLAorCSAgaW5jbHVkZS9kcGxheS5oLCBpbmNsdWRlL2RwbG9iYnkuaCwgaW5jbHVkZS9kc291bmQuaCwKKwkgIGluY2x1ZGUvaW1hZ2VobHAuaCwgaW5jbHVkZS9pbW0uaCwgaW5jbHVkZS9taXNjZW11LmgsCisJICBpbmNsdWRlL21tc3lzdGVtLmgsIGluY2x1ZGUvbXNhY20uaDoKKwlQYXRyaWsgU3RyaWR2YWxsIDxwc0BsZWlzc25lci5zZT4KKwlNb3ZlIF9fc3RkY2FsbC9fX2NkZWNsIHRvIHRoZSByaWdodCBwbGFjZS4KKworCSogZG9jdW1lbnRhdGlvbi9zYW1wbGVzL2NvbmZpZzoKKwlVd2UgQm9ubmVzIDxib25AZWxla3Ryb24uaWtwLnBoeXNpay50dS1kYXJtc3RhZHQuZGU+CisJR2l2ZSB1c2VycyBhIGhpbnQgdG8gY2xlYW4gdGhlaXIgY29uZmlnIGZyb20gY29tbWVudHMgYW5kIGVtcHR5IGxpbmVzCisJZm9yIGEgYnVnIHJlcG9ydC4KKworCSogZGxscy9zaGVsbDMyL3NoZWxsMzJfbWFpbi5jOgorCUdlcmFyZCBQYXRlbCA8Z2VyYXJkLnBhdGVsQG5lcmltLm5ldD4KKwlBZGRlZCBtaXNzaW5nIHBhcmVudGhlc2lzIGluIFNoR2V0RmlsZUluZm9BLgorCisJKiBkbGxzL3dpbmVkb3MvaW50MjEuYzogTm9nIDxub2dAc2RmLmxvbmVzdGFyLm9yZz4KKwlGaXhlZCBmdW5jdGlvbiAweGIuCisKKwkqIGRsbHMvc2hlbGwzMi9zaGVsbC5jLCBpbmNsdWRlL3JwY2RjZS5oLCB3aW4zMi9pbml0LmMsCisJICBkbGxzL3JwY3J0NC9ycGNydDQuc3BlYywgZGxscy9ycGNydDQvcnBjcnQ0X21haW4uYzoKKwlQYXRyaWsgU3RyaWR2YWxsIDxwc0BsZWlzc25lci5zZT4KKwlGaXhlZCBzb21lIGlzc3VlcyBmb3VuZCBieSB3aW5hcGlfY2hlY2suCisKKwkqIHRvb2xzL3dpbmFwaV9jaGVjay9tb2R1bGVzLmRhdCwKKwkgIHRvb2xzL3dpbmFwaV9jaGVjay93aW4zMi9rZXJuZWwzMi5hcGksCisJICB0b29scy93aW5hcGlfY2hlY2svd2luMzIvbWFwaTMyLmFwaSwKKwkgIHRvb2xzL3dpbmFwaV9jaGVjay93aW4zMi9tc2ltZzMyLmFwaSwKKwkgIHRvb2xzL3dpbmFwaV9jaGVjay93aW4zMi9udGRsbC5hcGksCisJICB0b29scy93aW5hcGlfY2hlY2svd2luMzIvb2xlYXV0MzIuYXBpLAorCSAgdG9vbHMvd2luYXBpX2NoZWNrL3dpbjMyL3JwY3J0NC5hcGksCisJICB0b29scy93aW5hcGlfY2hlY2svd2luMzIvd2luaW5ldC5hcGksIHRvb2xzL3dpbmFwaS9tYWtlX3BhcnNlci5wbToKKwlQYXRyaWsgU3RyaWR2YWxsIDxwc0BsZWlzc25lci5zZT4KKwlNaW5vciBBUEkgdXBkYXRlLgorCisJKiBkbGxzL3NoZWxsMzIvc2hsZm9sZGVyLmMsIGNvbnRyb2xzL2xpc3Rib3guYywgY29udHJvbHMvc2Nyb2xsLmMsCisJICBkbGxzL3NoZWxsMzIvcGlkbC5jLCBkbGxzL3NoZWxsMzIvc2hlbGxvcmQuYzoKKwlDb2RlV2VhdmVycworCU1pbm9yIGZpeGVzLgorCisJKiBjb250cm9scy9zdGF0aWMuYzoKKwlHdXkgQWxiZXJ0ZWxsaSA8Z3V5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlQYWludCBjb250cm9sIGltbWVkaWF0ZWx5IG9uIFdNX1NFVFRFWFQuCisKKwkqIGRsbHMvb2xlMzIvc3RnX3N0cmVhbS5jLCBkbGxzL29sZTMyL3N0b3JhZ2UzMi5jLAorCSAgZGxscy9vbGUzMi9zdG9yYWdlMzIuaDoKKwlDb2RlV2VhdmVycworCVNtYWxsIGZpeGVzLgorCisJKiBkbGxzL2NvbWN0bDMyL3Rvb2xiYXIuYzoKKwlHdXkgQWxiZXJ0ZWxsaSA8Z3V5QGNvZGV3ZWF2ZXJzLmNvbT4KKwktIGJldHRlciB0cmFjZSBvdXRwdXQKKwktIHN1cHBvcnQgc3RyaW5nIHNlbnQgaW4gYnkgYWRkcmVzcywgcmF0aGVyIHRoZW4gaW5kZXgKKwktIGFkZCBGSVhNRXMgZm9yIG11bHRpcGxlIGltYWdlIGxpc3RzCisJLSBwcm90ZWN0IGFnYWlucyBpbmV4aXN0ZW50IGJ1dHRvbnMKKwktIGNhbGwgdXAgdG8gdGhlIERlZldpbmRvd1Byb2Mgd2hlbiBlcmFzaW5nIGJrZ25kIHdoZW4gYXBwcm9wcmlhdGUKKworCSogZGxscy93aW5lZG9zL2ludDMzLmM6IE5vZyA8bm9nQHNkZi5sb25lc3Rhci5vcmc+CisJSW1wbGVtZW50IGZ1bmN0aW9uIDB4YiAoUmVhZCBtb3VzZSBtb3Rpb24gY291bnRlcnMpIGFuZCAweGYgKFNldAorCW1pY2tleS9waXhlbCByYXRpbykuCisKKwkqIGRsbHMvdXNlci90ZXh0LmM6CisJQmlsbCBNZWRsYW5kIDxtZWRiaTAxQGFjY3BhYy5jb20+CisJLSBJbnRyb2R1Y2UgYSBzaWduaWZpY2FudCBkZXNpZ24gZGVjaXNpb24uCisJLSBSZWNhbGN1bGF0ZSB0aGUgcHJlZml4IGxvY2F0aW9uIGlmIGVsbGlwc2lmaWNhdGlvbiBhbHRlcnMgaXQuICBUaGlzCisJICBjYXJlZnVsbHkgZG9lcyBOT1QgZW11bGF0ZSBhIE1pY3Jvc29mdCBidWcgaW4gd2hpY2ggcmVwcmVmaXhpbmcgaXMKKwkgIHdyb25nIHdoZW4gdGhlIGZpcnN0IGNoYXJhY3RlciByZW1vdmVkIGJ5IGVsbGlwc2lmaWNhdGlvbiBpcyB0aGUgb25lCisJICB0aGF0IHdvdWxkIGhhdmUgYmVlbiB1bmRlcmxpbmVkICh1bmRlciBXaW45OCBhdCBsZWFzdCkuCisKKwkqIGRsbHMvYWR2YXBpMzIvYWR2YXBpMzIuc3BlYywgZGxscy9hZHZhcGkzMi9zZWN1cml0eS5jOgorCURtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJRXJpYyBLb2hsIDxla29obEBjb2Rld2VhdmVycy5jb20+CisJSW1wbGVtZW50ZWQgQ2hlY2tUb2tlbk1lbWJlcnNoaXAgYW5kIEdldEFjZS4KKworCSogZGxscy9jb21jdGwzMi9saXN0dmlldy5jOgorCUdlcmFyZCBQYXRlbCA8Z2VyYXJkLnBhdGVsQG5lcmltLm5ldD4KKwlEb24ndCByZXBhaW50IGhlYWRlciB3aGVuIHNjcm9sbGluZyBhIGxpc3R2aWV3IHZlcnRpY2FsbHkuCisKKwkqIGRsbHMvY29tY3RsMzIvY29tY3RsMzJ1bmRvYy5jOgorCUd1eSBBbGJlcnRlbGxpIDxnYWxiZXJ0ZUBuZW8ubHJ1bi5jb20+CisJLSBmaXggb3JkZXIgb2YgcGFyYW1ldGVycyBpcyBTZW5kTm90aWZ5CisJLSBhbHdheXMgdXNlIHRoZSBkbGcgY250cmwgSUQgb2YgdGhlIHNlbmRlcgorCisJKiB3aW5kb3dzL3JlY3QuYzoKKwlHdXkgQWxiZXJ0ZWxsaSA8Z2FsYmVydGVAbmVvLmxydW4uY29tPgorCUFkZGVkIE5VTEwgY2hlY2tzIG9uIGFsbCByZWN0YW5nbGUgcG9pbnRlcnMuCisKKzIwMDItMDEtMjkgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGRsbHMvbnRkbGwvTWFrZWZpbGUuaW4sIGRsbHMvbnRkbGwvbG9hZGVyLmMsIGRsbHMvbnRkbGwvbnRkbGwuc3BlYzoKKwlEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCUFkZGVkIExkckRpc2FibGVUaHJlYWRDYWxsb3V0c0ZvckRsbC4KKworCSogZGxscy9zaGVsbDMyL3NoZWxsLmMsIGRsbHMvc2hlbGwzMi9zaGVsbDMyLnNwZWMsCisJICBkbGxzL3NoZWxsMzIvc2hlbGxzdHJpbmcuYzoKKwlBcmljIFN0ZXdhcnQgPGFyaWNAY29kZXdlYXZlcnMuY29tPgorCUh1dyBEIE0gRGF2aWVzIDxoZGF2aWVzQGNvZGV3ZWF2ZXJzLmNvbT4KKwlBZGRlZCBzdHVicyBmb3IgQ2hlY2tFc2NhcGVzW0FXXSBhbmQgRXh0cmFjdEFzc29jaWF0ZWRJY29uRXhXLgorCisJKiBkbGxzL3NoZWxsMzIvc2hlbGxwYXRoLmM6CisJRXJpYyBLb2hsIDxla29obEBjb2Rld2VhdmVycy5jb20+CisJQWRkZWQgbG9jYXRpb24gb2YgbG9jYWwgYXBwbGljYXRpb24gZGF0YS4KKworCSogZGxscy9udGRsbC9zZWMuYzoKKwlEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCUZpeGVkIFJ0bEFkZEFjY2Vzc0FsbG93ZWRBY2UgcmV0dXJuIHZhbHVlLgorCisJKiBkbGxzL3JwY3J0NC9ycGNydDQuc3BlYywgZGxscy9ycGNydDQvcnBjcnQ0X21haW4uYzoKKwlNaWtlIE1jQ29ybWFjayA8bWlrZV9tY2Nvcm1hY2tAc3RhcnQuY29tLmF1PgorCUFkZGVkIHN0dWJzIGZvciBOZHJEbGxDYW5VbmxvYWROb3cgYW5kIE5kckRsbEdldENsYXNzT2JqZWN0LgorCisJKiBpbmNsdWRlL3dpbmJhc2UuaCwgd2luMzIvaW5pdC5jLCBkbGxzL2tlcm5lbC9rZXJuZWwzMi5zcGVjOgorCURtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJQWRkZWQgR2V0Q29tcHV0ZXJOYW1lRXhbQVddIHNlbWktc3R1Yi4KKworCSogaW5jbHVkZS93aW5pbmV0LmgsIGRsbHMvd2luaW5ldC9NYWtlZmlsZS5pbiwKKwkgIGRsbHMvd2luaW5ldC91cmxjYWNoZS5jLCBkbGxzL3dpbmluZXQvd2luaW5ldC5zcGVjOgorCUVyaWMgS29obCA8ZWtvaGxAY29kZXdlYXZlcnMuY29tPgorCUFkZGVkIEZpbmRGaXJzdFVybENhY2hlRW50cnlbQVddIHN0dWJzLgorCisJKiBkbGxzL21hcGkzMi9tYXBpMzIuc3BlYywgZGxscy9tYXBpMzIvbWFwaTMyX21haW4uYywKKwkgIGluY2x1ZGUvTWFrZWZpbGUuaW4sIGluY2x1ZGUvbWFwaS5oLCBpbmNsdWRlL21hcGljb2RlLmg6CisJQXJpYyBTdGV3YXJ0IDxhcmljQGNvZGV3ZWF2ZXJzLmNvbT4KKwlBZGRlZCBzb21lIE1BUEkgc3R1YnMuCisKKwkqIGRsbHMvTWFrZWZpbGUuaW4sIGRsbHMvbXN2Y3J0MjAvLmN2c2lnbm9yZSwKKwkgIGRsbHMvbXN2Y3J0MjAvTWFrZWZpbGUuaW4sIGRsbHMvbXN2Y3J0MjAvZHVtbXkuYywKKwkgIGRsbHMvbXN2Y3J0MjAvbXN2Y3J0MjAuc3BlYywgY29uZmlndXJlLmluLCBjb25maWd1cmU6CisJQXJpYyBTdGV3YXJ0IDxhcmljQGNvZGV3ZWF2ZXJzLmNvbT4KKwlBZGRlZCBhIHBhc3MtdGhyb3VnaCBtc3ZjcnQyMC4KKworCSogZGxscy91cmxtb24vdW1vbi5jLCBkbGxzL3VybG1vbi91cmxtb24uc3BlYzoKKwlFcmljIEtvaGwgPGVrb2hsQGNvZGV3ZWF2ZXJzLmNvbT4KKwlBZGRlZCBFeHRyYWN0IHN0dWIuCisKKwkqIGluY2x1ZGUvaW1tLmgsIGRsbHMvaW1tMzIvaW1tLmMsIGRsbHMvaW1tMzIvaW1tMzIuc3BlYzoKKwlFcmljIEtvaGwgPGVrb2hsQGNvZGV3ZWF2ZXJzLmNvbT4KKwlBZGRlZCBJbW1EaXNhYmxlSU1FIHN0dWIuCisKKwkqIGRsbHMvbXN2Y3J0L2Rpci5jLCBkbGxzL21zdmNydC9tc3ZjcnQuc3BlYzoKKwlEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCUltcGxlbWVudGVkIF93bWFrZXBhdGguCisKKwkqIGRsbHMvd2luZWRvcy9kb3NleGUuaCwgZGxscy93aW5lZG9zL2Rvc3ZtLmMsIGRsbHMvd2luZWRvcy9pbnQyMS5jLAorCSAgZGxscy93aW5lZG9zL2ludDY3LmMsIGZpbGVzL2Rvc19mcy5jLCBkbGxzL3dpbmVkb3MvTWFrZWZpbGUuaW46CisJSnVra2EgSGVpbm9uZW4gPGpoZWlAaWtpLmZpPgorCUFkZGVkIHN1cHBvcnQgZm9yIERPUyBFTVMgbWVtb3J5LgorCisJKiB0b29scy93aW5lbWFrZXIsIGRvY3VtZW50YXRpb24vZGIyaHRtbC13aW5laHEsCisJICBkb2N1bWVudGF0aW9uL21ha2Vfd2luZWhxLCBkb2N1bWVudGF0aW9uL3dpbmVsaWItdG9vbGtpdC5zZ21sLAorCSAgY29uZmlndXJlLCBjb25maWd1cmUuaW46CisJRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGZyZWUuZnI+CisJJ3Rlc3QgLWUnIGlzIG5vdCBzdXBwb3J0ZWQgb24gU29sYXJpcywgcmVwbGFjZSB3aXRoICctZicgb3IgJy1kJy4KKworCSogZGxscy9jb21jdGwzMi9saXN0dmlldy5jOgorCUdlcmFyZCBQYXRlbCA8Z2VyYXJkLnBhdGVsQG5lcmltLm5ldD4KKwlGaXggcHJvYmxlbXMgd2l0aCBsaXN0dmlldyBub3RpZmljYXRpb24uCisKKwkqIGdyYXBoaWNzL3gxMWRydi9kaWIuYzoKKwlEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCURvIG5vdCB3cml0ZSBiZXlvbmQgZW5kIG9mIGNvbG9yIHRhYmxlIGluIFgxMURSVl9ESUJfU2V0RElCQ29sb3JUYWJsZS4KKworCSogZGxscy9jb21jdGwzMi9wcm9ncmVzcy5jOgorCURpbWl0cmllIE8uIFBhdW4gPGRpbWlAY3MudG9yb250by5lZHU+CisJLSBhZGQgbmV3IFNldFJhbmdlIGZ1bmN0aW9ucyAoaW5zdGVhZCBvZiBkdXBsaWNhdGluZyB0aGUgY29kZSkKKwktIHBhc3MgdGhlIGluZm9QdHIgYXJvdW5kIGluc3RlYWQgb2YgdGhlIGh3bmQKKwktIHVzZSBXLWZ1bmN0aW9ucyBpbnN0ZWFkIG9mIEEtZnVuY3Rpb25zCisJLSBtb3JlIGNoZWNrcyBpbiBjYXNlIG9mIGZhaWx1cmVzCisJLSBtYWtlIGluZGVudGF0aW9uIGFuZCBzdHlsZSBjb25zaXN0ZW50IHRocm91Z2hvdXQgdGhlIGZpbGUKKworCSogZGxscy9jb21jdGwzMi9wcm9wc2hlZXQuYywgaW5jbHVkZS9wcnNodC5oOgorCUd1eSBBbGJlcnRlbGxpIDxndXlAY29kZXdlYXZlcnMuY29tPgorCU1pa2UgTWNDb3JtYWNrIDxtaWtlX21jY29ybWFja0BzdGFydC5jb20uYXU+CisJUHJvcGVydHkgc2hlZXQgVW5pY29kaWZpY2F0aW9uLgorCVN1cHBvcnQgYWRkaXRpb25hbCB3aXphcmQgZmxhZ3MuCisKKwkqIGRsbHMvY29tY3RsMzIvaW1hZ2VsaXN0LmM6CisJQ2hhcmxlcyBMb2VwIDxjaGFybGVzQGNvZGV3ZWF2ZXJzLmNvbT4KKwlJbXBsZW1lbnRlZCBJbWFnZUxpc3RfV3JpdGUuCisKKwkqIGRsbHMvY29tY3RsMzIvbmF0aXZlZm9udC5jOgorCUd1eSBBbGJlcnRlbGxpIDxndXlAY29kZXdlYXZlcnMuY29tPgorCUVsaW1pbmF0ZSBzb21lIHVzZWxlc3MgZXJyb3IgbWVzc2FnZXMuCisKKwkqIGluY2x1ZGUvY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgorCUh1dyBEIE0gRGF2aWVzIDxoZGF2aWVzQGNvZGV3ZWF2ZXJzLmNvbT4KKwlEb24ndCBkZWZpbmUgSEFWRV9GUkVFVFlQRSB1bmxlc3Mgd2UgaGF2ZSBmcmVldHlwZS5oLgorCisJKiBkbGxzL3dpbnNvY2svc29ja2V0LmM6CisJUmVpbiBLbGF6ZXMgPHJrbGF6ZXNAeHM0YWxsLm5sPgorCUNvcnJlY3Qgb3B0bGVuIHdoZW4gV1Nfc2V0c29ja29wdCBpcyBjYWxsZWQgd2l0aCBTT19MSU5HRVIuCisKKwkqIGRsbHMvb2xlYXV0MzIvdHlwZWxpYi5jOgorCUh1dyBEIE0gRGF2aWVzIDxoZGF2aWVzQGNvZGV3ZWF2ZXJzLmNvbT4KKwlXZWlyZCB0aGluZyB3aXRoIGxjaWQgb2YgbGlicmFyeSBpcyB0aGF0IGlmIHN1YmxhbmcgaXMgbmV1dHJhbCB0aGVuIHdlCisJcmV0dXJuIHRoZSBwcmltYXJ5IGxhbmcgZWxzZSB3ZSByZXR1cm4gMC4KKworCSogZ3JhcGhpY3MveDExZHJ2L2RpYi5jOgorCUd1eSBBbGJlcnRlbGxpIDxndXlAY29kZXdlYXZlcnMuY29tPgorCURvbid0IGZpbGwgY29sb3JtYXAgYmV5b25kIGVuZCBvZiBzY3JlZW4gZGVwdGguCisKKwkqIGRsbHMvY29tbWRsZy9maWxlZGxnOTUuYzoKKwlDaGFybGVzIExvZXAgPGNoYXJsZXNAY29kZXdlYXZlcnMuY29tPgorCUZpeGVkIGZpbGUgZXh0ZW5zaW9uIHByb2JsZW0gaW4gdGhlIGZpbGUgZGlhbG9nLgorCisJKiBkbGxzL2NvbWN0bDMyL2NvbWN0bDMydW5kb2MuYzoKKwlIdXcgRCBNIERhdmllcyA8aGRhdmllc0Bjb2Rld2VhdmVycy5jb20+CisJUmVtb3ZlZCBJc0JhZFN0cmluZ1B0ckEgY2FsbCB0aGF0IGNhdXNlZCB0cm91YmxlLgorCisJKiBkbGxzL2NvbWN0bDMyL3N0YXR1cy5jOgorCUNoYXJsZXMgTG9lcCA8Y2hhcmxlc0Bjb2Rld2VhdmVycy5jb20+CisJRml4IGVycm9ycyByZXN1bHRpbmcgZnJvbSBtaXNzaW5nIHBhcmVudGhlc2lzLgorCisJKiBkbGxzL2NvbWN0bDMyL3JlYmFyLmM6CisJR3V5IEFsYmVydGVsbGkgPGd1eUBjb2Rld2VhdmVycy5jb20+CisJVGV4dC9Ca2duZCBjb2xvciBmaXhlcy4KKworCSogZGxscy9jb21jdGwzMi9saXN0dmlldy5jOgorCURpbWl0cmllIE8uIFBhdW4gPGRpbWlAY3MudG9yb250by5lZHU+CisJU2ltcGxpZnkgYW5kIGZpeCBsaXN0dmlldyBlbGxpcHNpZmljYXRpb24gb2YgbGFyZ2UgdGV4dCBsYWJlbHMuCisKKwkqIGdyYXBoaWNzL3gxMWRydi94Zm9udC5jOgorCVV3ZSBCb25uZXMgPGJvbkBlbGVrdHJvbi5pa3AucGh5c2lrLnR1LWRhcm1zdGFkdC5kZT4KKwlYRk9OVF9HZXRBdmdDaGFyV2lkdGg6IEFsd2F5cyByb3VuZCB1cC4KKworCSogcHJvZ3JhbXMvd2luZXRlc3QvcnVudGVzdDogRml4ZWQgY29weS9wYXN0ZSBidWcuCisKKwkqIGluY2x1ZGUvbnRkZGsuaCwgaW5jbHVkZS93aW5lL29ial9zaGVsbHZpZXcuaCwgbXNkb3MvZG9zbWVtLmMsCisJICB3aW5kb3dzL3dpbnByb2MuYywgZGxscy93aW5tbS9tY2lzZXEvbWNpbWlkaS5jLAorCSAgZ3JhcGhpY3Mvd2luMTZkcnYvcHJ0ZHJ2LmMsIGRsbHMvd2lubW0vbW1zeXN0ZW0uYywKKwkgIGRsbHMvb2xlYXV0MzIvdHlwZWxpYi5jLCBkbGxzL29sZWF1dDMyL3R5cGVsaWIuaCwKKwkgIGRsbHMvcXVhcnR6L2F2aWRlYy5jLCBkbGxzL3NoZWxsMzIvc2hlbGwzMl9tYWluLmMsCisJICBkbGxzL3NoZWxsMzIvc2hlbGwzMl9tYWluLmgsIGRsbHMvc2hlbGwzMi9zaGVsbG9yZC5jLAorCSAgZGxscy9zaGVsbDMyL3NobGZvbGRlci5jLCBkbGxzL3NoZWxsMzIvc2hsbWVudS5jLAorCSAgZGxscy9zaGVsbDMyL3NobHZpZXcuYywgZGxscy9zaGVsbDMyL3Nodl9iZ19jbWVudS5jLAorCSAgZGxscy9jb21tZGxnL2ZpbGVkbGc5NS5jLCBkbGxzL21zdmNydC9maWxlLmMsCisJICBkbGxzL21zdmlkZW8vZHJhd2RpYi5jLCBkZWJ1Z2dlci93aW5lZGJnLmMsIGRsbHMvYWR2YXBpMzIvc2VydmljZS5jLAorCSAgZGxscy9jb21jdGwzMi91cGRvd24uYywgY29udHJvbHMvYnV0dG9uLmMsIGNvbnRyb2xzL2VkaXQuYywKKwkgIGNvbnRyb2xzL21lbnUuYzoKKwlEaW1pdHJpZSBPLiBQYXVuIDxkaW1pQGNzLnRvcm9udG8uZWR1PgorCU1ha2UgRklYTUVzIG1vcmUgZ3JlcC1hYmxlLgorCisJKiBkbGxzL2NvbWN0bDMyL2xpc3R2aWV3LmM6CisJR2VyYXJkIFBhdGVsIDxnZXJhcmQucGF0ZWxAbmVyaW0ubmV0PgorCUF2b2lkIGNvbnZlcnRpbmcgbm9uZXhpc3RlbnQgdGV4dCBmcm9tIEEtPlcuCisKKwkqIGdyYXBoaWNzL3gxMWRydi90ZXh0LmMsIGdyYXBoaWNzL3gxMWRydi94Zm9udC5jLCBpbmNsdWRlL3gxMWRydi5oLAorCSAgZGxscy94MTFkcnYvTWFrZWZpbGUuaW4sIGRsbHMveDExZHJ2L3gxMWRydi5zcGVjLAorCSAgZGxscy94MTFkcnYveHJlbmRlci5jLCBncmFwaGljcy94MTFkcnYvY2xpcHBpbmcuYywKKwkgIGdyYXBoaWNzL3gxMWRydi9pbml0LmM6CisJSHV3IEQgTSBEYXZpZXMgPGhkYXZpZXNAY29kZXdlYXZlcnMuY29tPgorCVVzZXMgWHJlbmRlciBleHRlbnNpb24gdG8gYWxsb3cgY2xpZW50IHNpZGUgZm9udCByZW5kZXJpbmcuCisJQWRkcyBuaWNlIHRoaW5ncyBsaWtlIGFudGktYWxpYXNlZCB0ZXh0LgorCisJKiBkbGxzL3gxMWRydi8uY3ZzaWdub3JlLCBwcm9ncmFtcy93aW5lY29uc29sZS8uY3ZzaWdub3JlLAorCSAgZGxscy93aW5zb2NrLy5jdnNpZ25vcmUsIGRsbHMvd2luc3Bvb2wvLmN2c2lnbm9yZSwKKwkgIGRsbHMvd2lubW0vd2luZW9zcy8uY3ZzaWdub3JlLCBkbGxzL3dpbm1tL3dhdmVtYXAvLmN2c2lnbm9yZSwKKwkgIGRsbHMvd2lubW0vbWNpc2VxLy5jdnNpZ25vcmUsIGRsbHMvd2lubW0vbWNpd2F2ZS8uY3ZzaWdub3JlLAorCSAgZGxscy93aW5tbS9taWRpbWFwLy5jdnNpZ25vcmUsIGRsbHMvd2lubW0vbWNpYXZpLy5jdnNpZ25vcmUsCisJICBkbGxzL3dpbm1tL21jaWNkYS8uY3ZzaWdub3JlLCBkbGxzL3dpbm1tL2pveXN0aWNrLy5jdnNpZ25vcmUsCisJICBkbGxzL3dpbm1tL21jaWFuaW0vLmN2c2lnbm9yZSwgZGxscy93aW5hc3BpLy5jdnNpZ25vcmUsCisJICBkbGxzL3dpbm1tLy5jdnNpZ25vcmUsIGRsbHMvd2luMzJzLy5jdnNpZ25vcmUsCisJICBkbGxzL3R0eWRydi8uY3ZzaWdub3JlLCBkbGxzL3ZlcnNpb24vLmN2c2lnbm9yZSwKKwkgIGRsbHMvc2hlbGwzMi8uY3ZzaWdub3JlLCBkbGxzL3RhcGkzMi8uY3ZzaWdub3JlLAorCSAgZGxscy9vcGVuZ2wzMi8uY3ZzaWdub3JlLCBkbGxzL3BzYXBpLy5jdnNpZ25vcmUsCisJICBkbGxzL3Jhc2FwaTMyLy5jdnNpZ25vcmUsIGRsbHMvb2xlcHJvMzIvLmN2c2lnbm9yZSwKKwkgIGRsbHMvb2xlc3ZyLy5jdnNpZ25vcmUsIGRsbHMvb2xlY2xpLy5jdnNpZ25vcmUsCisJICBkbGxzL29sZWRsZy8uY3ZzaWdub3JlLCBkbGxzL29sZTMyLy5jdnNpZ25vcmUsCisJICBkbGxzL29sZWF1dDMyLy5jdnNpZ25vcmUsIGRsbHMvbXN2aWRlby8uY3ZzaWdub3JlLAorCSAgZGxscy9vZGJjMzIvLmN2c2lnbm9yZSwgZGxscy9tc2FjbS8uY3ZzaWdub3JlLAorCSAgZGxscy9tc25ldDMyLy5jdnNpZ25vcmUsIGRsbHMvbHpleHBhbmQvLmN2c2lnbm9yZSwKKwkgIGRsbHMva2VybmVsLy5jdnNpZ25vcmUsIGRsbHMva2VybmVsL21lc3NhZ2VzLy5jdnNpZ25vcmUsCisJICBkbGxzL2ltYWdlaGxwLy5jdnNpZ25vcmUsIGRsbHMvaW1tMzIvLmN2c2lnbm9yZSwKKwkgIGRsbHMvaWNtcC8uY3ZzaWdub3JlLCBkbGxzL2RkcmF3Ly5jdnNpZ25vcmUsIGRsbHMvZHBsYXl4Ly5jdnNpZ25vcmUsCisJICBkbGxzL2Rzb3VuZC8uY3ZzaWdub3JlLCBkbGxzL2RjaW1hbjMyLy5jdnNpZ25vcmUsCisJICBkbGxzL2NydGRsbC8uY3ZzaWdub3JlLCBkbGxzL2F2aWZpbDMyLy5jdnNpZ25vcmUsCisJICBkbGxzL2NvbWN0bDMyLy5jdnNpZ25vcmUsIGRsbHMvY29tbWRsZy8uY3ZzaWdub3JlLAorCSAgZGxscy9hZHZhcGkzMi8uY3ZzaWdub3JlOgorCVBhdHJpayBTdHJpZHZhbGwgPHBzQGxlaXNzbmVyLnNlPgorCUF2b2lkIHdpbGRjYXJkcyBpbiAuY3ZzaWdub3JlLgorCisJKiBvYmplY3RzL2RjLmMsIG9iamVjdHMvZm9udC5jLCBvYmplY3RzL2dkaW9iai5jLCBpbmNsdWRlL2NvbmZpZy5oLmluLAorCSAgaW5jbHVkZS9mb250LmgsIGluY2x1ZGUvZ2RpLmgsIGRsbHMvZ2RpL2ZyZWV0eXBlLmMsIGNvbmZpZ3VyZSwKKwkgIGNvbmZpZ3VyZS5pbjoKKwlIdXcgRCBNIERhdmllcyA8aGRhdmllc0Bjb2Rld2VhdmVycy5jb20+CisJQ2hhcmxlcyBMb2VwIDxjaGFybGVzQGNvZGV3ZWF2ZXJzLmNvbT4KKwlWYXJpb3VzIGZpeGVzIGZvciBnZGkgZm9udCBoYW5kbGluZyBjb2RlIGluY2x1ZGluZzoKKwktIFVzaW5nIFRUcyBWRE1YIHRhYmxlIHRvIGVuc3VyZSB0aGF0IHdlIGdldCBleGFjdGx5IHRoYXQgc2FtZSBzaXplCisJICBmb250IHRoYXQgV2luZG93cyB1c2VzLgorCS0gRml4ZXMgdG8gbWFueSBtZW1iZXJzIG9mIHRoZSBtZXRyaWNzIHN0cnVjdHVyZXMuCisJLSBGb250IGNhY2hlLgorCS0gUm90YXRlZCB0ZXh0IHN1cHBvcnQuCisJLSBTdXBwb3J0IGZvciBHR09fR1JBWT9fQklUTUFQIChyZWFkeSBmb3IgYW50aS1hbGlhc2VkIHRleHQpLgorCS0gU3VwcG9ydCBmb3IgR0dPX05BVElWRS4KKworCSogcHJvZ3JhbXMvb3N2ZXJzaW9uY2hlY2svb3N2ZXJzaW9uY2hlY2suYywKKwkgIHByb2dyYW1zL29zdmVyc2lvbmNoZWNrL29zdmVyc2lvbmNoZWNrLnNwZWMsCisJICBwcm9ncmFtcy93Y21kL3djbWQuc3BlYywgcHJvZ3JhbXMvd2NtZC93Y21kbWFpbi5jOgorCVN0ZXZlbiBFZHdhcmRzIDxTdGV2ZW5fRWQ0MTUzQHlhaG9vLmNvbT4KKwlDaGFuZ2VzIHdpbmVfbWFpbiB0byBtYWluIHRvIHByb3Blcmx5IGJ1aWxkIG9uIGFsbCBwbGF0Zm9ybXMuCisKKwkqIHRvb2xzL3dpbmVidWlsZC9pbXBvcnQuYzoKKwlDbGVtZW5zIDx0aGVyYXB5QGVuZG9ycGhpbi5vcmc+CisJU2hvdWxkIHByb2Nlc3MgdGhlIC5keW5zeW0gb2Ygc2hhcmVkIGxpYnJhcmllcyBpbnN0ZWFkIG9mIHRoZSAuc3RhYi4KKworCSogZGxscy93aW5tbS93aW5lb3NzL2F1ZGlvLmM6CisJQW5kcmVhcyBNb2hyIDxhbmRpQHJobHgwMS5maHQtZXNzbGluZ2VuLmRlPgorCUZpeGVkID09LyE9IG1pc21hdGNoLgorCisJKiB3aW5kb3dzL25vbmNsaWVudC5jOgorCURtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJRG8gbm90IGJlIHRvbyBzbWFydCBhbmQgYWRkIFdTX0NBUFRJT04gaW4gQWRqdXN0V2luZG93UmVjdEV4LgorCisJKiBpbmNsdWRlL3dpbnNvY2suaDoKKwlGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAZnJlZS5mcj4KKwlBdm9pZCBjb25mbGljdCB3aXRoIGh0b25sICYgZnJpZW5kcyBpbiBXaW5lbGliIG9uIEZyZWVCU0QuCisKKwkqIGRsbHMvd2luc29jay9zb2NrZXQuYzoKKwlGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAZnJlZS5mcj4KKwlSZW5hbWUgc19hZGRyIHRvIHNyY19hZGRyIHRvIGF2b2lkIGEgY29uZmxpY3Qgb24gU29sYXJpcy4KKwlSZW5hbWUgZF9hZGRyIHRvIGRzdF9hZGRyIGZvciBzeW1tZXRyeS4KKworCSogaW5jbHVkZS9tc3ZjcnQvc2V0am1wLmg6CisJRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGZyZWUuZnI+CisJUHJlZml4IF9KQkxFTiB0byBhdm9pZCBjb25mbGljdCBvbiBGcmVlQlNELgorCisJKiBvYmplY3RzL2VuaG1ldGFmaWxlLmM6CisJQXJpYyBTdGV3YXJ0IDxhcmljQGNvZGV3ZWF2ZXJzLmNvbT4KKwlGbGVzaGVkIG91dCBzb21lIG1ldGFmaWxlIGNvbnZlcnNpb25zLgorCisJKiBvYmplY3RzL3BhbGV0dGUuYzoKKwlBcmljIFN0ZXdhcnQgPGFyaWNAY29kZXdlYXZlcnMuY29tPgorCUFkZGVkIHRoZSBjb3JyZWN0IGhhbGZ0b25lIHBhbGV0dGUuCisKKwkqIGRsbHMvd2luZWRvcy9pbnQzMy5jOiBOb2cgPG5vZ0BzZGYubG9uZXN0YXIub3JnPgorCUltcGxlbWVudCBmdW5jdGlvbiBudW1iZXIgMHg1IChSZXR1cm4gbW91c2UgYnV0dG9uIHByZXNzIGluZm9ybWF0aW9uKS4KKworCSogc2VydmVyL2ZpbGUuYzoKKwlXb3JrIGFyb3VuZCBmdHJ1bmNhdGUgaW1wbGVtZW50YXRpb25zIHRoYXQgZG9uJ3Qgc3VwcG9ydCBleHRlbmRpbmcKKwlmaWxlcy4KKworCSogZGxscy9zaGx3YXBpL3BhdGguYzoKKwlHdXkgTC4gQWxiZXJ0ZWxsaSA8Z2FsYmVydGVAbmVvLmxydW4uY29tPgorCUZpeCBQYXRoQ3JlYXRlRnJvbVVybHtBfFd9IHRvIHJldHVybiB0aGUgY29ycnJlY3QgZXJyb3IgY29kZSBpbiBhbGwKKwljYXNlcy4KKworCSogZGxscy9zaGx3YXBpL3JlZy5jOgorCUd1eSBMLiBBbGJlcnRlbGxpIDxnYWxiZXJ0ZUBuZW8ubHJ1bi5jb20+CisJRml4IFNIUmVnT3BlblVTS2V5e0F8V30gYW5kIFNIUmVnUXVlcnlVU1ZhbHVle0F8V30gdG8gYWN0dWFsbHkgdXNlCisJcHJldmlvdXNseSBvcGVuIGtleXMuCisKKwkqIGRsbHMvd2luZWRvcy92Z2EuYzogSnVra2EgSGVpbm9uZW4gPGpoZWlAaWtpLmZpPgorCUxvdy1yZXNvbHV0aW9uIGFuZCBsb3ctY29sb3IgVkdBIG1vZGVzIGFyZSBub3cgbWFwcGVkIGludG8gbW9kZQorCTY0MHg0ODB4OC4gQWRkZWQgcHJlbGltaW5hcnkgc3VwcG9ydCBmb3IgZm91ciBiaXQgbW9kZXMuCisKKwkqIGRsbHMvdXNlci90ZXh0LmM6CisJQmlsbCBNZWRsYW5kIDxtZWRiaTAxQGFjY3BhYy5jb20+CisJUHV0IHRoZSBwcmVmaXgtdW5kZXJsaW5lLWRyYXdpbmcgYXdheSBpbnRvIGl0J3Mgb3duIGZ1bmN0aW9uIHNvIHdlIGNhbgorCXNlZSB3aGF0IGlzIGhhcHBlbmluZy4KKworCSogZmlsZXMvZHJpdmUuYzoKKwlBcmljIFN0ZXdhcnQgPGFyaWNAY29kZXdlYXZlcnMuY29tPgorCUdldERpc2tGcmVlU3BhY2UgbmVlZHMgdG8gc2V0IHRoZSBsYXN0IGVycm9yIG9uIGZhaWx1cmUuCisKKwkqIGRsbHMvb2xlYXV0MzIvb2xlYXV0MzIuc3BlYywgZGxscy9vbGVhdXQzMi9zYWZlYXJyYXkuYywKKwkgIGRsbHMvb2xlYXV0MzIvdmFyaWFudC5jOgorCUJpbGwgTWVkbGFuZCA8bWVkYmkwMUBhY2NwYWMuY29tPgorCUEgY291cGxlIG9mIGFkZGl0aW9ucy4KKworMjAwMi0wMS0yMiAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogaW5jbHVkZS92ZXJzaW9uLmgsIEFOTk9VTkNFLCBDaGFuZ2VMb2c6CisJUmVsZWFzZSAyMDAyMDEyMi4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMjAwMi0wMS0yMiAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KIAogCSogd2luZG93cy9kaWFsb2cuYzoKZGlmZiAtLWdpdCBhL1ZFUlNJT04gYi9WRVJTSU9OCmluZGV4IGEyZDE0OTMuLjkzZGUwZDIgMTAwNjQ0Ci0tLSBhL1ZFUlNJT04KKysrIGIvVkVSU0lPTgpAQCAtMSArMSBAQAotV2luZSB2ZXJzaW9uIDIwMDIwMTIyCitXaW5lIHZlcnNpb24gMjAwMjAyMjgKZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZSBiL2NvbmZpZ3VyZQppbmRleCA4MjE1MDU1Li42MWQ5Yjc1IDEwMDc1NQotLS0gYS9jb25maWd1cmUKKysrIGIvY29uZmlndXJlCkBAIC0xLDYgKzEsNiBAQAogIyEgL2Jpbi9zaAogIyBHdWVzcyB2YWx1ZXMgZm9yIHN5c3RlbS1kZXBlbmRlbnQgdmFyaWFibGVzIGFuZCBjcmVhdGUgTWFrZWZpbGVzLgotIyBHZW5lcmF0ZWQgYnkgQXV0b2NvbmYgMi41MiBmb3IgV2luZSAyMDAyMDEyMi4KKyMgR2VuZXJhdGVkIGJ5IEF1dG9jb25mIDIuNTIgZm9yIFdpbmUgMjAwMjAyMjguCiAjCiAjIENvcHlyaWdodCAxOTkyLCAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxCiAjIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgpAQCAtMTgzLDggKzE4Myw4IEBACiAjIElkZW50aXR5IG9mIHRoaXMgcGFja2FnZS4KIFBBQ0tBR0VfTkFNRT0nV2luZScKIFBBQ0tBR0VfVEFSTkFNRT0nd2luZScKLVBBQ0tBR0VfVkVSU0lPTj0nMjAwMjAxMjInCi1QQUNLQUdFX1NUUklORz0nV2luZSAyMDAyMDEyMicKK1BBQ0tBR0VfVkVSU0lPTj0nMjAwMjAyMjgnCitQQUNLQUdFX1NUUklORz0nV2luZSAyMDAyMDIyOCcKIFBBQ0tBR0VfQlVHUkVQT1JUPScnCiAKIGFjX3ByZXY9CkBAIC02MDEsNyArNjAxLDcgQEAKICAgIyBPbWl0IHNvbWUgaW50ZXJuYWwgb3Igb2Jzb2xldGUgb3B0aW9ucyB0byBtYWtlIHRoZSBsaXN0IGxlc3MgaW1wb3NpbmcuCiAgICMgVGhpcyBtZXNzYWdlIGlzIHRvbyBsb25nIHRvIGJlIGEgc3RyaW5nIGluIHRoZSBBL1VYIDMuMSBzaC4KICAgY2F0IDw8RU9GCi1cYGNvbmZpZ3VyZScgY29uZmlndXJlcyBXaW5lIDIwMDIwMTIyIHRvIGFkYXB0IHRvIG1hbnkga2luZHMgb2Ygc3lzdGVtcy4KK1xgY29uZmlndXJlJyBjb25maWd1cmVzIFdpbmUgMjAwMjAyMjggdG8gYWRhcHQgdG8gbWFueSBraW5kcyBvZiBzeXN0ZW1zLgogCiBVc2FnZTogJDAgW09QVElPTl0uLi4gW1ZBUj1WQUxVRV0uLi4KIApAQCAtNjY3LDcgKzY2Nyw3IEBACiAKIGlmIHRlc3QgLW4gIiRhY19pbml0X2hlbHAiOyB0aGVuCiAgIGNhc2UgJGFjX2luaXRfaGVscCBpbgotICAgICBzaG9ydCB8IHJlY3Vyc2l2ZSApIGVjaG8gIkNvbmZpZ3VyYXRpb24gb2YgV2luZSAyMDAyMDEyMjoiOzsKKyAgICAgc2hvcnQgfCByZWN1cnNpdmUgKSBlY2hvICJDb25maWd1cmF0aW9uIG9mIFdpbmUgMjAwMjAyMjg6Ijs7CiAgICBlc2FjCiAgIGNhdCA8PFxFT0YKIApAQCAtNzQwLDcgKzc0MCw3IEBACiB0ZXN0IC1uICIkYWNfaW5pdF9oZWxwIiAmJiBleGl0IDAKIGlmICRhY19pbml0X3ZlcnNpb247IHRoZW4KICAgY2F0IDw8XEVPRgotV2luZSBjb25maWd1cmUgMjAwMjAxMjIKK1dpbmUgY29uZmlndXJlIDIwMDIwMjI4CiBnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNTIKIAogQ29weXJpZ2h0IDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEKQEAgLTc1NSw3ICs3NTUsNyBAQAogVGhpcyBmaWxlIGNvbnRhaW5zIGFueSBtZXNzYWdlcyBwcm9kdWNlZCBieSBjb21waWxlcnMgd2hpbGUKIHJ1bm5pbmcgY29uZmlndXJlLCB0byBhaWQgZGVidWdnaW5nIGlmIGNvbmZpZ3VyZSBtYWtlcyBhIG1pc3Rha2UuCiAKLUl0IHdhcyBjcmVhdGVkIGJ5IFdpbmUgJGFzX21lIDIwMDIwMTIyLCB3aGljaCB3YXMKK0l0IHdhcyBjcmVhdGVkIGJ5IFdpbmUgJGFzX21lIDIwMDIwMjI4LCB3aGljaCB3YXMKIGdlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi41Mi4gIEludm9jYXRpb24gY29tbWFuZCBsaW5lIHdhcwogCiAgICQgJDAgJEAKQEAgLTEwMzA2LDcgKzEwMzA2LDcgQEAKIAogY2F0ID4+JENPTkZJR19TVEFUVVMgPDxFT0YKIGFjX2NzX3ZlcnNpb249IlxcCi1XaW5lIGNvbmZpZy5zdGF0dXMgMjAwMjAxMjIKK1dpbmUgY29uZmlnLnN0YXR1cyAyMDAyMDIyOAogY29uZmlndXJlZCBieSAkMCwgZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjUyLAogICB3aXRoIG9wdGlvbnMgXFwiYGVjaG8gIiRhY19jb25maWd1cmVfYXJncyIgfCBzZWQgJ3MvW1xcIiJcYFwkXS9cXFxcJi9nJ2BcXCIKIApAQCAtMTAzODksNyArMTAzODksNyBAQAogIyMgUnVubmluZyBjb25maWcuc3RhdHVzLiAgIyMKICMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCiAKLVRoaXMgZmlsZSB3YXMgZXh0ZW5kZWQgYnkgJGFzX21lIChXaW5lIDIwMDIwMTIyKSAyLjUyLCBleGVjdXRlZCB3aXRoCitUaGlzIGZpbGUgd2FzIGV4dGVuZGVkIGJ5ICRhc19tZSAoV2luZSAyMDAyMDIyOCkgMi41MiwgZXhlY3V0ZWQgd2l0aAogICBDT05GSUdfRklMRVMgICAgPSAkQ09ORklHX0ZJTEVTCiAgIENPTkZJR19IRUFERVJTICA9ICRDT05GSUdfSEVBREVSUwogICBDT05GSUdfTElOS1MgICAgPSAkQ09ORklHX0xJTktTCg==