ZGlmZiAtLWdpdCBhL0FOTk9VTkNFIGIvQU5OT1VOQ0UKaW5kZXggNWY1YTdiYS4uZGIxMDYzOSAxMDA2NDQKLS0tIGEvQU5OT1VOQ0UKKysrIGIvQU5OT1VOQ0UKQEAgLTEsNCArMSw0IEBACi1UaGlzIGlzIHJlbGVhc2UgOTkwNjEzIG9mIFdpbmUsIGEgZnJlZSBpbXBsZW1lbnRhdGlvbiBvZiBXaW5kb3dzIG9uCitUaGlzIGlzIHJlbGVhc2UgOTkwNzA0IG9mIFdpbmUsIGEgZnJlZSBpbXBsZW1lbnRhdGlvbiBvZiBXaW5kb3dzIG9uCiBVbml4LiAgVGhpcyBpcyBzdGlsbCBhIGRldmVsb3BlcnMgb25seSByZWxlYXNlLiAgVGhlcmUgYXJlIG1hbnkgYnVncwogYW5kIHVuaW1wbGVtZW50ZWQgZmVhdHVyZXMuICBNb3N0IGFwcGxpY2F0aW9ucyBzdGlsbCBkbyBub3Qgd29yawogY29ycmVjdGx5LgpAQCAtNiwxMCArNiwxMCBAQAogUGF0Y2hlcyBzaG91bGQgYmUgc3VibWl0dGVkIHRvICJqdWxsaWFyZEBscmMuZXBmbC5jaCIuICBQbGVhc2UgZG9uJ3QKIGZvcmdldCB0byBpbmNsdWRlIGEgQ2hhbmdlTG9nIGVudHJ5LgogCi1XSEFUJ1MgTkVXIHdpdGggV2luZS05OTA2MTM6IChzZWUgQ2hhbmdlTG9nIGZvciBkZXRhaWxzKQotCS0gQWxsIHRhc2tzIG5vdyBydW4gaW4gdGhlaXIgb3duIHRocmVhZC4KLQktIFdpbjMyIGRlYnVnIEFQSSBwcmVsaW1pbmFyeSBpbXBsZW1lbnRhdGlvbi4KLQktIE5ldyBXaW5lbGliIGFwcDogYSBjb21tYW5kLWxpbmUgaW50ZXJwcmV0ZXIuCitXSEFUJ1MgTkVXIHdpdGggV2luZS05OTA3MDQ6IChzZWUgQ2hhbmdlTG9nIGZvciBkZXRhaWxzKQorCS0gU2VydmVyIGNvbW11bmljYXRpb24gb3B0aW1pemVkLgorCS0gTWFueSB3aW5kb3cgcGFpbnRpbmcgZml4ZXMuCisJLSBQb3J0YWJpbGl0eSBpbXByb3ZlbWVudHMuCiAJLSBMb3RzIG9mIGJ1ZyBmaXhlcy4KIAogU2VlIHRoZSBSRUFETUUgZmlsZSBpbiB0aGUgZGlzdHJpYnV0aW9uIGZvciBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zLgpAQCAtMTgsMTAgKzE4LDEwIEBACiB0aGUgcmVsZWFzZSBpcyBhdmFpbGFibGUgYXQgdGhlIGZ0cCBzaXRlcy4gIFRoZSBzb3VyY2VzIHdpbGwgYmUgYXZhaWxhYmxlCiBmcm9tIHRoZSBmb2xsb3dpbmcgbG9jYXRpb25zOgogCi0gIGZ0cDovL21ldGFsYWIudW5jLmVkdS9wdWIvTGludXgvQUxQSEEvd2luZS9kZXZlbG9wbWVudC9XaW5lLTk5MDYxMy50YXIuZ3oKLSAgZnRwOi8vdHN4LTExLm1pdC5lZHUvcHViL2xpbnV4L0FMUEhBL1dpbmUvZGV2ZWxvcG1lbnQvV2luZS05OTA2MTMudGFyLmd6Ci0gIGZ0cDovL2Z0cC5pbmZvbWFnaWMuY29tL3B1Yi9taXJyb3JzL2xpbnV4L3N1bnNpdGUvQUxQSEEvd2luZS9kZXZlbG9wbWVudC9XaW5lLTk5MDYxMy50YXIuZ3oKLSAgZnRwOi8vZnRwLnByb2dzb2MudXRzLmVkdS5hdS9wdWIvV2luZS9kZXZlbG9wbWVudC9XaW5lLTk5MDYxMy50YXIuZ3oKKyAgZnRwOi8vbWV0YWxhYi51bmMuZWR1L3B1Yi9MaW51eC9BTFBIQS93aW5lL2RldmVsb3BtZW50L1dpbmUtOTkwNzA0LnRhci5negorICBmdHA6Ly90c3gtMTEubWl0LmVkdS9wdWIvbGludXgvQUxQSEEvV2luZS9kZXZlbG9wbWVudC9XaW5lLTk5MDcwNC50YXIuZ3oKKyAgZnRwOi8vZnRwLmluZm9tYWdpYy5jb20vcHViL21pcnJvcnMvbGludXgvc3Vuc2l0ZS9BTFBIQS93aW5lL2RldmVsb3BtZW50L1dpbmUtOTkwNzA0LnRhci5negorICBmdHA6Ly9mdHAucHJvZ3NvYy51dHMuZWR1LmF1L3B1Yi9XaW5lL2RldmVsb3BtZW50L1dpbmUtOTkwNzA0LnRhci5negogCiBJdCBzaG91bGQgYWxzbyBiZSBhdmFpbGFibGUgZnJvbSBhbnkgc2l0ZSB0aGF0IG1pcnJvcnMgdHN4LTExIG9yIHN1bnNpdGUuCiAKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCAxNjQ1MGM5Li4xYjFhNjc3IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDQgKzEsNDQ2IEBACiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTdW4gSnVsICA0IDE2OjA5OjIwIDE5OTkgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIHdpbmRvd3MvKi5jLCBvbGUvKi5jLCBmaWxlcy8qLmMsIG11bHRpbWVkaWEvKi5jOgorCUNvbnZlcnRlZCB0byB0aGUgbmV3IGRlYnVnIGludGVyZmFjZSwgdXNpbmcgc2NyaXB0IHdyaXR0ZW4gYnkgUGF0cmlrCisJU3RyaWR2YWxsLgorCisJKiBpbmNsdWRlL3dpbmRlZi5oLCBpbmNsdWRlL3dpbnJlZy5oLCB0b29scy9tYWtlX1gxMXdyYXBwZXJzLCB0c3gxMS90c194Zjg2dm1vZGUuYywgTWFrZWZpbGUuaW4sIGdyYXBoaWNzL2RkcmF3LmMsIGluY2x1ZGUvYmFzZXRzZC5oLCBpbmNsdWRlL250ZGVmLmgsIGluY2x1ZGUvdHNfeGY4NnZtb2RlLmgsIGluY2x1ZGUvd2luYmFzZS5oOgorCVBhdHJpayBTdHJpZHZhbGwgPHBzQGxlaXNzbmVyLnNlPgorCVN0YXJ0ZWQgb24gYW4gaW1wbGVtZW50YXRpb24gb2YgV2luNjQgZm9yIHVzZSBvbiA2NCBiaXQgcGxhdGZvcm1zLgorCisJKiB3aW5kb3dzL25vbmNsaWVudC5jOiBOb29tZW4gSGFtemEgPG5vb21lbkBtYWNhZGFtaWFuLmNvbT4KKwlXaW5kb3dzIHNob3VsZCBiZSBhY3RpdmF0ZWQgaW4gdGhlc2UgY2FzZXM6CisJMS0gd2hlbiB3ZSBjbGljayBvbiBub24gYWN0aXZlIHdpbmRvdy4KKwkyLSB3aGVuIHdlIGNhbmNlbCBhIG1vdmluZyBvciByZXNpemluZyBvZiBhIG5vbiBhY3RpdmUgd2luZG93LgorCisJKiBkb2N1bWVudGF0aW9uL2Rpc3RyaWJ1dG9yczoKKwlNYXJjdXMgTWVpc3NuZXIgPE1hcmN1cy5NZWlzc25lckBjYWxkZXJhLmRlPgorCUFkZGVkIHNhbXBsZSB3aW5lLmNvbmYuCisKKwkqIGdyYXBoaWNzL2RkcmF3LmMsIGluY2x1ZGUva2V5Ym9hcmQuaCwgaW5jbHVkZS90dHlkcnYuaCwgaW5jbHVkZS94MTFkcnYuaCwgb2JqZWN0cy9kYy5jLCBvYmplY3RzL2dkaW9iai5jLCB3aW5kb3dzL2RpbnB1dC5jLCB3aW5kb3dzL3R0eWRydi9pbml0LmMsIHdpbmRvd3MvdHR5ZHJ2L2tleWJvYXJkLmMsIHdpbmRvd3MveDExZHJ2L2luaXQuYywgd2luZG93cy94MTFkcnYva2V5Ym9hcmQuYzoKKwlQYXRyaWsgU3RyaWR2YWxsIDxwc0BsZWlzc25lci5zZT4KKwlNb3ZlZCBjb2RlIHRvIHRoZSBYMTEgZHJpdmVyLgorCisJKiBpbmNsdWRlL3dpbnVzZXIuaCwgbG9hZGVyL3Jlc291cmNlLmMsIHJlbGF5MzIvdXNlcjMyLnNwZWM6CisJSm9zaHVhIFRoaWVsZW4gPHRoaWVsZW5AbmV0cGVyc29uLm5ldD4KKwlGaXhlZCBEZXN0cm95QWNjZWxlcmF0b3JUYWJsZSBhbmQgaW1wbGVtZW50ZWQgQ3JlYXRlQWNjZWxlcmF0b3JUYWJsZVcuCisKKwkqIHdpbmRvd3Mvd2luLmM6IFV3ZSBCb25uZXMgPGJvbkBlbGVrdHJvbi5pa3AucGh5c2lrLnR1LWRhcm1zdGFkdC5kZT4KKwlXSU5fRmluZFdpbmRvdzogdXNlIEdldEV4ZXB0cihwV25kLT5oSW5zdGFuY2UpIGZvciBDTEFTU19GaW5kQ2xhc3NCeUF0b20uCisKKwkqIGNvbnRyb2xzL3Njcm9sbC5jOiBPdmUgS2FhdmVuIDxvdmVrQGFyY3RpY25ldC5ubz4KKwlGaXhlZCBjaGVjayBmb3Igd2hldGhlciB0byBjYWxsIFNldFdpbmRvd1BvcyB3aGVuIHNob3dpbmcgYSB3aW5kb3cKKwlzY3JvbGwgYmFyLgorCisJKiBvbGUvdHlwZWxpYi5jOiBNYXJjdXMgTWVpc3NuZXIgPG1hcmN1c0BqZXQuZnJhbmtlbi5kZT4KKwlDaGVjayBmb3IgY29tcGxldGUgbGNpZCBvciBqdXN0IHRoZSBwcmltYXJ5IGxhbmd1YWdlIGlkIGluIHRoZQorCXJlZ2lzdHJ5IGxvb2t1cHMgKGZpeGVzIG9uZSBGaXJzdENsYXNzQ2xpZW50IDMyIHByb2JsZW0pLgorCisJKiB3aW5kb3dzL21lc3NhZ2UuYzogUGVyIMVuZ3N0cvZtIDxwYW5nQG1ib3gzMDQuc3dpcG5ldC5zZT4KKwlGaXhlZCBhIHByb2JsZW0gd2l0aCBhcHBzIHRoYXQgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgYmVoYXZpb3VyIG9uCisJV01fTU9VU0VBQ1RJVkFURSBtZXNzYWdlIChtYWluIHdpbmRvdyB3YXMgbm90IGFjdGl2YXRlZCkuCisKKwkqIGxvYWRlci9wZV9yZXNvdXJjZS5jOiBNYXJjdXMgTWVpc3NuZXIgPG1hcmN1c0BqZXQuZnJhbmtlbi5kZT4KKwlXaGVuIGVudW1lcmF0aW5nIHJlc291cmNlLCBvbmx5IHVzZSB0aGUgbG93ZXIgMzEgYml0IG9mIHRoZSBuYW1lIGFzCisJdGhlIG9mZnNldCAoZm9yIHRoZSBoaWdoZXN0IGJpdCBpcyAnMScpLiBTaG91bGQgZml4IHdpbmUtbmV0LzI1Ny4KKworCSogcmVsYXkzMi9udGRsbC5zcGVjLCB0b29scy93cmMvd3JpdGVyZXMuYywgZGxscy9udGRsbC9ydGwuYywgbWlzYy93c3ByaW50Zi5jLCBtdWx0aW1lZGlhL21jaW1pZGkuYzoKKwlQYXRyaWsgU3RyaWR2YWxsIDxwc0BsZWlzc25lci5zZT4KKwlGaXhlcyBmb3IgY29tcGlsZSBvbiBub24tSW50ZWwgcGxhdGZvcm1zLgorCisJKiBkbGxzL2FkdmFwaTMyL2V2ZW50bG9nLmMsIGRsbHMvYWR2YXBpMzIvc2VjdXJpdHkuYywgZGxscy9hZHZhcGkzMi9zZXJ2aWNlLmMsIGluY2x1ZGUvbnRkZGsuaCwgaW5jbHVkZS9udHNlY2FwaS5oLCBpbmNsdWRlL3dpbmJhc2UuaCwgaW5jbHVkZS93aW5kZWYuaCwgaW5jbHVkZS93aW5udC5oLCBpbmNsdWRlL3dpbnJlZy5oLCBpbmNsdWRlL3dpbnN2Yy5oLCBpbmNsdWRlL3d0eXBlcy5oOgorCVBhdHJpayBTdHJpZHZhbGwgPHBzQGxlaXNzbmVyLnNlPgorCUZpeGVkL21vdmVkL2FkZGVkIG1pc3Npbmcvd3JvbmcgZnVuY3Rpb24gcHJvdG90eXBlcy4KKworCSogZGxscy9jb21tZGxnL2NkbGdfRGEucmMsIGRvY3VtZW50YXRpb24vc3RhdHVzL2ludGVybmF0aW9uYWxpc2F0aW9uLCBwcm9ncmFtcy9wcm9nbWFuL0RhLnJjLCByZXNvdXJjZXMvc3lzcmVzX0RhLnJjOgorCUhlbnJpayBPbHNlbiA8aGVucmlrQGlhZXN0ZS5kaz4KKwlDbGVhbnVwIG9mIHRoZSBEYW5pc2ggc3VwcG9ydC4KKworCSogd2luZG93cy93aW5wb3MuYzogWXV4aSBaaGFuZyA8eXV4aXpAY29yZWwuY2E+CisJRml4IGEgYnVnIGluIFNldFdpbmRvd1BvcyB0byBwcmV2ZW50IHBhcmVudCBmcm9tIGVyYXNpbmcgaXRzIGNoaWxkCisJcGFpbnRpbmcgYXJlYSB3aGVuIHBhcmVudCB3aW5kb3cgYW5kIGNoaWxkIHdpbmRvdyBkb24ndCBoYXZlCisJV1NfQ0xJUENISUxEUkVOIGFuZCBXU19DTElQU0lCTElOR1MuCisKKwkqIHdpbmRvd3MvZGVmd25kLmM6IFl1eGkgWmhhbmcgPHl1eGl6QGNvcmVsLmNhPgorCU1ha2UgZGVmd25kcHJvYyBlcmFzZSB0aGUgY29ycmVjdCBsb2NhdGlvbi4KKworU2F0IEp1bCAgMyAxNjowMTo0NCAxOTk5ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiByZWxheTMyL2NydGRsbC5zcGVjLCB3aW5kb3dzL2RpbnB1dC5jLCBkbGxzL2NvbWN0bDMyL3Byb3BzaGVldC5jLCBkbGxzL2NvbWN0bDMyL3RyYWNrYmFyLmMsIGRsbHMvdmVyc2lvbi9yZXNvdXJjZS5jLCBpZjE2MzIvcmVsYXkuYywgaW5jbHVkZS93aW4uaCwgbG9hZGVyL2VsZi5jLCBsb2FkZXIvcGVfaW1hZ2UuYywgbWlzYy9jcnRkbGwuYywgbWlzYy9zaGVsbC5jLCBtdWx0aW1lZGlhL2Rzb3VuZC5jLCBkbGxzL2FkdmFwaTMyL2FkdmFwaS5jLCBkbGxzL2FkdmFwaTMyL2V2ZW50bG9nLmMsIGRsbHMvYXZpZmlsMzIvYXZpZmlsZS5jOgorCU1hcmN1cyBNZWlzc25lciA8bWFyY3VzQGpldC5mcmFua2VuLmRlPgorCXNvbWUgc21hbGwgaW5jbHVkZSBmaXhlcywgc29tZSBjaGVja3MgZm9yIE5VTEwgcHRycywKKwlsb2FkZXIvZWxmLmM6IGZpeGVkIHRoZSAibGliIiBpbnNlcnRpb24KKwljcnRkbGw6IGFkZGVkIGZzb3BlbigpCisJZGlucHV0OiByZXR1cm4gdGhhdCB3ZSBhcmUgYXR0YWNoZWQuCisKKwkqIGNvbnRyb2xzL2J1dHRvbi5jOiBSZXZlcnRlZCBwcmV2aW91cyBjaGFuZ2UuCisKKwkqIGNvbnRyb2xzL2VkaXQuYzogR2VyYXJkIFBhdGVsIDxnLnBhdGVsQHdhbmFkb28uZnI+CisJQ2FuY2VsIHBlbmRpbmcgbm90aWZpY2F0aW9ucyB3aGVuIEVNX1NFVE1PRElGWSBpcyBjYWxsZWQuCisKKwkqIGRsbHMvY29tY3RsMzIvdHJlZXZpZXcuYzogQWxleCBQcmllbSA8YWxleHBAc2NpLmt1bi5ubD4KKwlGaXggYSBjcmFzaCB3aGVuIGRvaW5nIHNvcnRlZCBpbnNlcnRzIGF0IHRvcCBsZXZlbC4KKworCSogd2luZG93cy9ub25jbGllbnQuYzogT3ZlIEthYXZlbiA8b3Zla0BhcmN0aWNuZXQubm8+CisJUmV3b3JrZWQgbm9uY2xpZW50IGRyYXdpbmcgY29kZS4gV2luMzEgbG9vayBub3cgd29ya3MgbW9yZSBsaWtlIHJlYWwKKwlXaW4zMSwgc28gYXBwcyBsaWtlIERlbHBoaSAxLjAgbm8gbG9uZ2VyIGdvIGludG8gaW5maW5pdGUgcmVjdXJzaW9uCisJZXRjLiBGaXhlZCBhIGNvdXBsZSBvZiBidWdzIGluIHdpbjk1IGxvb2sgdG9vLCBidXQgbm90IGFzIHRob3JvdWdobHkKKwkoZS5nLiBXU19FWF9XSU5ET1dFREdFIGlzIHN0aWxsIG5vdCBoYW5kbGVkKS4KKworCSogd2luZG93cy9zeXNtZXRyaWNzLmM6IE92ZSBLYWF2ZW4gPG92ZWtAYXJjdGljbmV0Lm5vPgorCVNNX0NbWFldRlJBTUUgaXMgQm9yZGVyV2lkdGggKyAxLgorCisJKiBtZW1vcnkvbG9jYWwuYzogVWxyaWNoIFdlaWdhbmQgPHdlaWdhbmRAaW5mb3JtYXRpay51bmktZXJsYW5nZW4uZGU+CisJQnVnZml4OiBMb2NhbEluaXQgd2l0aCBzdGFydCA9PSAwIGFsd2F5cyBwbGFjZXMgaGVhcCBhdCBlbmQgb2Ygc2VnbWVudC4KKworCSogbG9hZGVyL3Rhc2suYzogVWxyaWNoIFdlaWdhbmQgPHdlaWdhbmRAaW5mb3JtYXRpay51bmktZXJsYW5nZW4uZGU+CisJQnVnZml4OiBUQVNLX0NhbGxUb1N0YXJ0IGRpZG4ndCBwYXNzIGNvcnJlY3QgaEluc3RhbmNlIHRvIGFwcC4KKworCSogbG9hZGVyL2Rvcy9tb2R1bGUuYywgbG9hZGVyL25lL21vZHVsZS5jLCBsb2FkZXIvcGVfaW1hZ2UuYywgbG9hZGVyL3Rhc2suYywgbWlzY2VtdS9tYWluLmMsIHNjaGVkdWxlci9wcm9jZXNzLmMsIGluY2x1ZGUvbW9kdWxlLmgsIGluY2x1ZGUvcHJvY2Vzcy5oLCBpbmNsdWRlL3Rhc2suaCwgbG9hZGVyL21haW4uYzoKKwlVbHJpY2ggV2VpZ2FuZCA8d2VpZ2FuZEBpbmZvcm1hdGlrLnVuaS1lcmxhbmdlbi5kZT4KKwlPbiBORSBwcm9jZXNzIGNyZWF0aW9uLCBtb3ZlIG1ham9yIHBhcnQgb2YgTkUgRVhFIG1vZHVsZSBsb2FkaW5nIGFuZAorCU5FIGluc3RhbmNlIGNyZWF0aW9uIGludG8gdGhlIGNoaWxkIHByb2Nlc3MuCisKKwkqIGRvY3VtZW50YXRpb24vZ3VpOiBPdmUgS2FhdmVuIDxvdmVrQGFyY3RpY25ldC5ubz4KKwlXaW5kb3cgc3R5bGUgdXBkYXRlcy4KKworCSogbGlidGVzdC9ndWl0ZXN0LmM6IE92ZSBLYWF2ZW4gPG92ZWtAYXJjdGljbmV0Lm5vPgorCVNvbWUgZW5oYW5jZW1lbnRzLCBhbmQgcmVtb3ZhbCBvZiBDKysgY29uc3RydWN0cy4KKworCSogZ3JhcGhpY3MvZDNkZGV2aWNlcy5jLCBncmFwaGljcy9kZHJhdy5jLCBncmFwaGljcy9kZHJhd19wcml2YXRlLmg6CisJTWFyY3VzIE1laXNzbmVyIDxtYXJjdXNAamV0LmZyYW5rZW4uZGU+CisJSW1wbGVtZW50ZWQgY2hhaW5zIG9mIHN1cmZhY2VzLiBUaGlzIGFsbG93cyBhbiB1bmxpbWl0ZWQgbnVtYmVyCisJb2YgYmFja2J1ZmZlcnMsIGFuZCBvdGhlciBhdHRhY2hlZCBzdXJmYWNlcyAoemJ1ZmZlcnMsIGFscGhhIGJ1ZmZlcnMsCisJd2hhdGV2ZXIpLgorCisJKiBmaWxlcy9maWxlLmMsIHJlbGF5MzIva2VybmVsMzIuc3BlYzoKKwlBbmRyZWFzIE1vaHIgPG1vaHJAZWxla3Ryb24uaWtwLnBoeXNpay50dS1kYXJtc3RhZHQuZGU+CisJQWRkZWQgVW5sb2NrRmlsZUV4IHN0dWIuCisKKwkqIGRvY3VtZW50YXRpb24vc3RhdHVzL2ludGVybmF0aW9uYWxpc2F0aW9uLCByZXNvdXJjZXMvc3lzcmVzX0NhLnJjLCByZXNvdXJjZXMvc3lzcmVzX0VzLnJjOgorCUpvc2UgTWFyY29zIExvcGV6IENhcmF2YWNhIDxqb3NlLmxvcGV6QHVwY25ldC51cGMuZXM+CisJQWRkZWQgbWlzc2luZyA2MTc2MiBlbnRyeSBvbiBzeXN0ZW0gcmVzb3VyY2VzIGluIFNwYW5pc2ggYW5kCisJQ2F0YWxvbmlhbiBsYW5ndWFnZXMuCisKKwkqIGNvbnRyb2xzL3Njcm9sbC5jOiBHZXJhcmQgUGF0ZWwgPGcucGF0ZWxAd2FuYWRvby5mcj4KKwlNYWtlIEdldFNjcm9sbEluZm8gcmV0dXJuIHNjcm9sbCBwb3Mgd2hlbiBwcm9ncmFtIHJlcXVlc3RzIHRodW1iIHBvcworCW91dHNpZGUgZHJhZyBvcGVyYXRpb24uCisKK1N1biBKdW4gMjcgMTU6NDA6NDQgMTk5OSAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZ3JhcGhpY3MvZDNkX3ByaXZhdGUuaDogRXJpYyBQb3VlY2ggPEVyaWMuUG91ZWNoQHdhbmFkb28uZnI+CisJQ29udmVydGVkIHRvIHRoZSBuZXcgZGVidWcgaW50ZXJmYWNlLgorCisJKiB3aW4zMi9jb25zb2xlLmM6IE1hcmN1cyBNZWlzc25lciA8bWFyY3VzQGpldC5mcmFua2VuLmRlPgorCVJlYWRDb25zb2xlQTogdXNlIGlyIGFzIHBvaW50ZXIgdG8gKHJlcSsxKS4KKworCSogd2luZG93cy9wYWludGluZy5jOiBHZXJhcmQgUGF0ZWwgPGcucGF0ZWxAd2FuYWRvby5mcj4KKwlSZW1vdmUgdGhlICB2YWxpZGF0ZWQgY2hpbGQgYXJlYSBmcm9tIHRoZSB1cGRhdGUgcmVnaW9uIG9mIHBhcmVudCBmb3IKKwl3aW5kb3dzIHdpdGhvdXQgV1NfQ0xJUENISUxEUkVOIHN0eWxlLgorCisJKiBkZWJ1Z2dlci9kYl9kaXNhc20uYzoKKwlVbHJpY2ggV2VpZ2FuZCA8d2VpZ2FuZEBpbmZvcm1hdGlrLnVuaS1lcmxhbmdlbi5kZT4KKwlCdWdmaXg6IEdycDggaW5zdHJ1Y3Rpb25zIGhhdmUgKmJ5dGUqIEJpdE9mZnNldCBvcGVyYW5kLgorCisJKiBtc2Rvcy92eGQuYzogVWxyaWNoIFdlaWdhbmQgPHdlaWdhbmRAaW5mb3JtYXRpay51bmktZXJsYW5nZW4uZGU+CisJQnVnZml4OiBtaXNzaW5nIFdJTkFQSXMgYWRkZWQuCisKKwkqIG9sZS9vbGUyLmM6IE1hcmN1cyBNZWlzc25lciA8bWFyY3VzQGpldC5mcmFua2VuLmRlPgorCU9sZU1ldGFGaWxlUGljdEZyb21JY29uQW5kTGFiZWwxNjogc2xpZ2h0bHkgYnJva2VuLCB1c2UgTFBPTEVTVFIxNi4KKworCSogZmlsZXMvZmlsZS5jOiBHZXJhcmQgUGF0ZWwgPGcucGF0ZWxAd2FuYWRvby5mcj4KKwlSZXR1cm4gRVJST1JfRElTS19GVUxMIGZvciBXcml0ZUZpbGUuCisKKwkqIHByb2dyYW1zL2NtZGxndHN0L2NtZGxndHN0LmM6IEVyaWMgV2lsbGlhbXMgPGV3aWxsQG5jYWwudmVyaW8uY29tPgorCUZpeGVkIG1pc3NpbmcgcmV0dXJuIGFmdGVyIGFib3V0IGRpYWxvZy4KKworU2F0IEp1biAyNiAxOTowOToxMSAxOTk5ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBtc2Rvcy8qLmMsIG1pc2MvKi5jLCBtaXNjZW11LyouYywgZ3JhcGhpY3MvKi5jOgorCUNvbnZlcnRlZCB0byB0aGUgbmV3IGRlYnVnIGludGVyZmFjZSwgdXNpbmcgc2NyaXB0IHdyaXR0ZW4gYnkgUGF0cmlrCisJU3RyaWR2YWxsLgorCisJKiBzY2hlZHVsZXIvdGhyZWFkLmMsIHRvb2xzL2J1aWxkLmMsIHdpbjMyL2RldmljZS5jLCB3aW4zMi9rZXJuZWwzMi5jLCB3aW4zMi9vcmRpbmFscy5jLCB3aW5kb3dzL3dpbi5jLCBsb2FkZXIvbmUvbW9kdWxlLmMsIGxvYWRlci9uZS9zZWdtZW50LmMsIG1lbW9yeS9nbG9iYWwuYywgbWVtb3J5L2xvY2FsLmMsIG1lbW9yeS9zZWxlY3Rvci5jLCBtaXNjL2NhbGxiYWNrLmMsIG1pc2MvZXJyb3IuYywgbWlzYy93aW5kZWJ1Zy5jLCBtaXNjZW11L2VtdWxhdGUuYywgbXNkb3MvZGV2aWNlcy5jLCBtc2Rvcy9kcG1pLmMsIG1zZG9zL2ludDA5LmMsIG1zZG9zL2ludDEwLmMsIG1zZG9zL2ludDExLmMsIG1zZG9zL2ludDEyLmMsIG1zZG9zL2ludDEzLmMsIG1zZG9zL2ludDE1LmMsIG1zZG9zL2ludDE2LmMsIG1zZG9zL2ludDE3LmMsIG1zZG9zL2ludDE5LmMsIG1zZG9zL2ludDFhLmMsIG1zZG9zL2ludDIwLmMsIG1zZG9zL2ludDIxLmMsIG1zZG9zL2ludDI1LmMsIG1zZG9zL2ludDI2LmMsIG1zZG9zL2ludDI5LmMsIG1zZG9zL2ludDJhLmMsIG1zZG9zL2ludDJmLmMsIG1zZG9zL2ludDMzLmMsIG1zZG9zL2ludDNkLmMsIG1zZG9zL2ludDQxLmMsIG1zZG9zL2ludDRiLmMsIG1zZG9zL2ludDVjLmMsIG1zZG9zL2ludGVycnVwdHMuYywgbXNkb3MvdnhkLmMsIG1zZG9zL3htcy5jLCBkbGxzL250ZGxsL2V4Y2VwdGlvbi5jLCBkbGxzL250ZGxsL3J0bC5jLCBkbGxzL3dpbmFzcGkvd2luYXNwaTE2LmMsIGlmMTYzMi9idWlsdGluLmMsIGlmMTYzMi9yZWxheS5jLCBpZjE2MzIvc25vb3AuYywgaWYxNjMyL3RodW5rLmMsIGluY2x1ZGUvY2FsbGJhY2suaCwgaW5jbHVkZS9kb3NleGUuaCwgaW5jbHVkZS9taXNjZW11LmgsIGluY2x1ZGUvbXNkb3MuaCwgbG9hZGVyL2Rvcy9kb3N2bS5jLCBsb2FkZXIvdGFzay5jOgorCUNoYW5nZWQgQ09OVEVYVCBpbnRvIENPTlRFWFQ4NiBldmVyeXdoZXJlIHdlIHJlYWxseSB3YW50IGFuIGkzODYKKwljb250ZXh0LgorCUFkZGVkICNpZmRlZiBfX2kzODZfXyBhcm91bmQgYWNjZXNzZXMgdG8gMzg2IHJlZ2lzdGVycyBpbiB0aGUgZ2VuZXJpYworCUNPTlRFWFQgc3RydWN0dXJlLgorCisJKiBpbmNsdWRlL3dpbm50Lmg6IEFkZGVkIENPTlRFWFQ4NiBkZWZpbml0aW9uLgorCUFkZGVkIFBvd2VyUEMgY29udGV4dCBhcyBhbiBleGFtcGxlIChub3QgdGVzdGVkKS4KKworCSogcmVsYXkzMi9yZWxheTM4Ni5jLCByZWxheTMyL3Nub29wLmMsIGluY2x1ZGUvd2luZS9leGNlcHRpb24uaDoKKwlGaXhlcyBmb3Igbm9uLWkzODYgY29tcGlsaW5nLgorCisJKiAqLyo6CisJUGF0cmlrIFN0cmlkdmFsbCA8cHNAbGVpc3NuZXIuc2U+CisJQU5TSSBDIGZpeGVzLgorCVJlbW92ZWQgd2FybmluZ3MuCisJTWFkZSB0aGUgaW5jbHVkZSBmaWxlcyBzZWxmLXN1ZmZpY2llbnQuCisJU29tZSBTb2xhcmlzIGZpeGVzLgorCisJKiByZWxheTMyL2NvbWN0bDMyLnNwZWMsIGRsbHMvY29tY3RsMzIvY29tY3RsMzJ1bmRvYy5jLCBpbmNsdWRlL2NvbW1jdHJsLmg6CisJRXJpYyBLb2hsIDxla29obEBhYm8ucmhlaW4temVpdHVuZy5kZT4KKwlGaXhlZCBEUEFfTG9hZFN0cmVhbSBhbmQgaW1wcm92ZWQgRFBBX01lcmdlLgorCisJKiBkbGxzL2NvbWN0bDMyL3RyZWV2aWV3LmM6IEVyaWMgS29obCA8ZWtvaGxAYWJvLnJoZWluLXplaXR1bmcuZGU+CisJQWRkZWQgY2hlY2sgZm9yIGludmFsaWQgcGFyZW50IGl0ZW0uCisKKwkqIGRsbHMvc2hlbGwzMi9zaGVsbG9yZC5jLCByZWxheTMyL3NoZWxsMzIuc3BlYzoKKwlFcmljIEtvaGwgPGVrb2hsQGFiby5yaGVpbi16ZWl0dW5nLmRlPgorCUFkZGVkIFNIRG9EcmFnRHJvcCgpIHN0dWIuCisKKwkqIG9iamVjdHMvcmVnaW9uLmM6IEVyaWMgS29obCA8ZWtvaGxAYWJvLnJoZWluLXplaXR1bmcuZGU+CisJSW1wcm92ZWQgR2V0UmFuZG9tUmVnaW9uKCkuCisKKwkqIG1pc2MvbmV0d29yay5jLCByZWxheTMyL21wci5zcGVjOgorCUVyaWMgS29obCA8ZWtvaGxAYWJvLnJoZWluLXplaXR1bmcuZGU+CisJQWRkZWQgV05ldFJlbW92ZUNhY2hlZFBhc3N3b3JkKCkgc3R1Yi4KKworCSogZGxscy9jb21jdGwzMi91cGRvd24uYzogRXJpYyBLb2hsIDxla29obEBhYm8ucmhlaW4temVpdHVuZy5kZT4KKwlTdG9yZSBidWRkeSB3aW5kb3cuCisKKwkqIGluY2x1ZGUvdG9vbHRpcHMuaCwgZGxscy9jb21jdGwzMi90b29sdGlwcy5jOgorCUVyaWMgS29obCA8ZWtvaGxAYWJvLnJoZWluLXplaXR1bmcuZGU+CisJU3RhcnRlZCBXTV9OT1RJRllGT1JNQVQgc3VwcG9ydC4KKworCSogZGxscy9jb21jdGwzMi9yZWJhci5jOiBFcmljIEtvaGwgPGVrb2hsQGFiby5yaGVpbi16ZWl0dW5nLmRlPgorCUJldHRlciBDb21ib0JveEV4IHBsYWNlbWVudC4KKworCSogbG9hZGVyL21vZHVsZS5jOiBEYXZlIFBpY2tsZXMgPGRhdmVwQG51Z2F0ZS5kZW1vbi5jby51az4KKwlFbnN1cmUgdGhhdCB0aGUgY29tbWFuZC1saW5lIHBhc3NlZCB0byB0aGUgdmFyaW91cyAqQ3JlYXRlUHJvY2VzcworCWZ1bmN0aW9ucyBjb250YWlucyB0aGUgcGF0aCB0byB0aGUgcHJvZ3JhbSBiZWluZyBpbnZva2VkLgorCisJKiB3aW5kb3dzL3gxMWRydi93bmQuYzogTGFycyBIZWV0ZSA8aGVsQGFkbWluLmRlPgorCVByZXZlbnQgYmFkIHdpbmRvdyBYIGVycm9yLgorCisJKiB3aW5kb3dzL21kaS5jLCB3aW5kb3dzL3N5c21ldHJpY3MuYzoKKwlBYmV5IEdlb3JnZSA8YWJleUBtYWNhZGFtaWFuLmNvbT4KKwlUaGUgc3lzdGVtIG1lbnUgaWNvbiBvbiBhIE1ESSBjaGlsZCB3aW5kb3cgd2FzIGNvcnJ1cHRlZCB3aGVuIHRoZQorCWNoaWxkIGZyYW1lIHdpbmRvdyBpcyBtYXhpbWl6ZWQgd2l0aGluIHRoZSBtYWluIGZyYW1lIHdoZW4gdGhlIHdpbmUKKwlsb29rIGlzIFdpbmRvd3MgOTUuCisKKwkqIGNvbnRyb2xzL3Njcm9sbC5jLCB3aW5kb3dzL2RlZnduZC5jOgorCVNsYXZhIE1vbmljaCA8U2xhdmEuTW9uaWNoQG5ldG1hbmFnZS5jb20+CisJSW4gY2FzZSBpZiBzY3JvbGxiYXIgaGFzIHRoZSBzYW1lIGJhY2tncm91bmQgY29sb3IgYXMgdGhlIHdpbmRvdworCWl0IGJlbG9uZ3MgdG8sIGl0IG5lZWRzIHRvIGJlIGZpbGxlZCB3aXRoIDB4NTVhYSBiaXRtYXAgYnJ1c2guCisKKwkqIG1pc2MvcmVnaXN0cnkuYzogTWFyY3VzIE1laXNzbmVyIDxNYXJjdXMuTWVpc3NuZXJAY2FsZGVyYS5kZT4KKwlGaXhlZCB0aGUgc3RyaW5nY29tcGFyZSBpbiBfZmluZF9vcl9hZGRfKigpICh3YXMgbWlzc2luZyB0b2xvd2VyKClzKS4KKworCSogZGVidWdnZXIvbWVtb3J5LmM6IEp1ZXJnZW4gTG9jayA8bm94QGplbGFsLmtuLWJyZW1lbi5kZT4KKwlGaXggKHdlbGwga2x1ZGdlIGFyb3VuZCkgRnJlZUJTRCdzIGBJbnZhbGlkIGFkZHJlc3MnIGVycm9ycy4KKworCSogY29udHJvbHMvZWRpdC5jOiBDaHJpcyBNb3JnYW4gPGNtb3JnYW5Ad3BpLmVkdT4KKwlKYW1lcyBBYmJhdGllbGxvIDxhYmJleWpAd3BpLmVkdT4KKwlEcmF3IGEgM0QgYm9yZGVyIGFyb3VuZCBlZGl0IGNvbnRyb2xzIHdoZW4gbm90IGluIFdJTjMxX0xPT0suCisKKwkqIGNvbnRyb2xzL2J1dHRvbi5jOiBDaHJpcyBNb3JnYW4gPGNtb3JnYW5Ad3BpLmVkdT4KKwlKYW1lcyBBYmJhdGllbGxvIDxhYmJleWpAd3BpLmVkdT4KKwlPbmx5IGRyYXcgYSBibGFjayBib3JkZXIgYXJvdW5kIG5vcm1hbCBidXR0b25zIHdoZW4gaW4gV0lOMzFfTE9PSy4KKworCSogbXVsdGltZWRpYS9tbWlvLmM6IEVyaWMgUG91ZWNoIDxFcmljLlBvdWVjaEB3YW5hZG9vLmZyPgorCUZpeGVkIGFsaWdubWVudCBhbmQgcG9zaXRpb24gd2hlbiBsb29raW5nIGZvciBtbWlvIGNodW5rcy4KKworCSogbXVsdGltZWRpYS9tbXN5c3RlbS5jOiBFcmljIFBvdWVjaCA8RXJpYy5Qb3VlY2hAd2FuYWRvby5mcj4KKwlObyBsb25nZXIgdXNpbmcgZ2xvYmFsIHZhcnMgKHNoYXJlZCBkYXRhKSBmb3IgbW0gdGltZXJzLCBidXQgYQorCXNwZWNpZmljIHN0cnVjdHVyZSBmb3IgZWFjaCBhdHRhY2hlZCBwcm9jZXNzLgorCUZpeGVkIGFsaWdubWVudCBhbmQgcG9zaXRpb24gd2hlbiBsb29raW5nIGZvciBtbWlvIGNodW5rcy4KKwlGaXhlZCBXQVZFIG1hcHBlciBoYW5kbGluZyBpbiB3YXZlR2V0Q2Fwcy4KKworCSogaW5jbHVkZS9tdWx0aW1lZGlhLmgsIG11bHRpbWVkaWEvdGltZS5jOgorCUVyaWMgUG91ZWNoIDxFcmljLlBvdWVjaEB3YW5hZG9vLmZyPgorCU5vIGxvbmdlciB1c2luZyBnbG9iYWwgdmFycyAoc2hhcmVkIGRhdGEpIGZvciBtbSB0aW1lcnMsIGJ1dCBhCisJc3BlY2lmaWMgc3RydWN0dXJlIGZvciBlYWNoIGF0dGFjaGVkIHByb2Nlc3MuCisKKwkqIGRvY3VtZW50YXRpb24vZGlzdHJpYnV0b3JzOiBNYXJjdXMgTWVpc3NuZXIgPG1hcmN1c0BqZXQuZnJhbmtlbi5kZT4KKwlXcm90ZSBhIHNtYWxsIGRvY3VtZW50IG9uIGhvdyB0byBwYWNrYWdlIFdJTkUgZm9yIGRpc3RyaWJ1dG9ycy4KKworCSogd2luZG93cy9ub25jbGllbnQuYzogTm9vbWVuIEhhbXphIDxub29tZW5AbWFjYWRhbWlhbi5jb20+CisJU2V0Q3Vyc29yUG9zKCkgZnVuY3Rpb24gd2FzIGNhbGxlZCB3aXRoIGEgd2luZG93IGNvb3JkaW5hdGVzCisJcGFyYW1ldGVyLgorCisJKiBtdWx0aW1lZGlhL21jaXN0cmluZy5jOiBFcmljIFBvdWVjaCA8RXJpYy5Qb3VlY2hAd2FuYWRvby5mcj4KKwlGaXhlZCBudWxsIHB0ciBkZXJlZiBpbnRyb2R1Y2VkIGluIGxhc3QgcGF0Y2guCisKKwkqIGlmMTYzMi9vbGUyLnNwZWMsIG9sZS9vbGUyLmM6CisJQW5kcmVhcyBNb2hyIDxtb2hyQGVsZWt0cm9uLmlrcC5waHlzaWsudHUtZGFybXN0YWR0LmRlPgorCUtpbmQgb2YgaW1wbGVtZW50ZWQgT2xlTWV0YUZpbGVQaWN0RnJvbUljb25BbmRMYWJlbC4KKworCSogaW5jbHVkZS90b29sYmFyLmgsIGRsbHMvY29tY3RsMzIvdG9vbGJhci5jOgorCUNocmlzIE1vcmdhbiA8Y21vcmdhbkB3cGkuZWR1PgorCUphbWVzIEFiYmF0aWVsbG8gPGFiYmV5akB3cGkuZWR1PgorCUZpeGVkIHZhcmlvdXMgcHJvYmxlbXMgcmVsYXRlZCB0byBiaXRtYXBzIGFuZCBmbGF0IHRvb2xiYXJzLgorCisJKiBkbGxzL2NvbWN0bDMyL2xpc3R2aWV3LmM6IENocmlzIE1vcmdhbiA8Y21vcmdhbkB3cGkuZWR1PgorCUphbWVzIEFiYmF0aWVsbG8gPGFiYmV5akB3cGkuZWR1PgorCUZpeGVkIHByb2JsZW1zIHdpdGggZGlzYXBwZWFyaW5nIHRleHQuCisKKwkqIGRsbHMvY29tY3RsMzIvaXBhZGRyZXNzLmM6IENocmlzIE1vcmdhbiA8Y21vcmdhbkB3cGkuZWR1PgorCUphbWVzIEFiYmF0aWVsbG8gPGFiYmV5akB3cGkuZWR1PgorCUNvbXBsZXRlIHJld3JpdGUgb2YgbWVzc2FnaW5nIGNvZGUgdG8gaW1wbGVtZW50L2ZpeCBhbGwgaW5wdXQgYmVoYXZpb3JzLgorCUZpeGVkIGEgZmV3IGZpeG1lcy4KKworCSogcHJvZ3JhbXMvd2NtZC9DaGFuZ2VMb2csIHByb2dyYW1zL3djbWQvUkVBRE1FLCBwcm9ncmFtcy93Y21kL2JhdGNoLmMsIHByb2dyYW1zL3djbWQvYnVpbHRpbnMuYywgcHJvZ3JhbXMvd2NtZC93Y21kLmgsIHByb2dyYW1zL3djbWQvd2NtZG1haW4uYzoKKwlEYXZlIFBpY2tsZXMgPGRhdmVwQG51Z2F0ZS5kZW1vbi5jby51az4KKwlBZGRlZCBtb3JlIGJhdGNoIGZ1bmN0aW9uYWxpdHksIGluY2x1ZGluZyB0aGUgQ0FMTCBHT1RPIGFuZCBTSElGVAorCWNvbW1hbmRzIHBsdXMgYmF0Y2ggY29tbWFuZCBhcmd1bWVudHMuCisKKwkqIGRvY3VtZW50YXRpb24vc3RhdHVzL211bHRpbWVkaWE6IEVyaWMgUG91ZWNoIDxFcmljLlBvdWVjaEB3YW5hZG9vLmZyPgorCVVwZGF0ZWQgdG8gcmVmbGVjdCBjdXJyZW50IHN0YXR1cy4KKworCSogbG9hZGVyL25lL21vZHVsZS5jOgorCVV3ZSBCb25uZXMgPGJvbkBlbGVrdHJvbi5pa3AucGh5c2lrLnR1LWRhcm1zdGFkdC5kZT4KKwlORV9Mb2FkRmlsZU1vZHVsZTogRnJlZSBtb2R1bGUgd2hlbiBORV9Mb2FkRExMcyBmYWlscy4KKworCSogZ3JhcGhpY3MvcHNkcnYvcHMuYywgZ3JhcGhpY3MvcHNkcnYvdGV4dC5jLCBpbmNsdWRlL3BzZHJ2Lmg6CisJVGh1eSBOZ3V5ZW4gPHRodXlAbWFjYWRhbWlhbi5jb20+CisJSW1wbGVtZW50ZWQgdGhlIHVuZGVybGluZSBhbmQgc3RyaWtlb3V0IHRleHQgYXR0cmlidXRlcyBmb3IgdGhlIFdpbmUKKwlQb3N0U2NyaXB0IGRyaXZlci4KKworCSogd2luZG93cy93aW4uYzogUGFzY2FsIExlc3NhcmQgPHBhc2NhbEBtYWNhZGFtaWFuLmNvbT4KKwlFbmFibGVXaW5kb3cgZG9lc24ndCByZWxlYXNlIHRoZSBjYXB0dXJlIG9mIGEgY2hpbGQgd2luZG93LgorCisJKiBNYWtlZmlsZS5pbjogSmFtZXMgSnVyYW4gPGpyajEyMEBwc3UuZWR1PgorCU9ubHkgdGVzdCAkKExJQl9UQVJHRVQpID0gbGlid2luZS5zby4xLjAgaWYgJChMSUJfVEFSR0VUKSBpcworCW5vbi1ibGFuay4KKworCSogY29udHJvbHMvbWVudS5jOiBOb29tZW4gSGFtemEgPG5vb21lbkBtYWNhZGFtaWFuLmNvbT4KKwlSZW1vdmUgdGhlIFdNX0xCVVRUT05VUCBtZXNzYWdlIGZyb20gdGhlIHF1ZXVlIGFmdGVyIHNlbGVjdGluZyBhIG1vdXNlCisJbWVudSBpdGVtLgorCisJKiBzZXJ2ZXIvY2hhbmdlLmMsIHNlcnZlci9jb25zb2xlLmMsIHNlcnZlci9kZWJ1Z2dlci5jLCBzZXJ2ZXIvZGV2aWNlLmMsIHNlcnZlci9ldmVudC5jLCBzZXJ2ZXIvZmlsZS5jLCBzZXJ2ZXIvaGFuZGxlLmMsIHNlcnZlci9tYXBwaW5nLmMsIHNlcnZlci9tdXRleC5jLCBzZXJ2ZXIvb2JqZWN0LmMsIHNlcnZlci9vYmplY3QuaCwgc2VydmVyL3BpcGUuYywgc2VydmVyL3Byb2Nlc3MuYywgc2VydmVyL3JlcXVlc3QuYywgc2VydmVyL3JlcXVlc3QuaCwgc2VydmVyL3NlbWFwaG9yZS5jLCBzZXJ2ZXIvc25hcHNob3QuYywgc2VydmVyL3NvY2tldC5jLCBzZXJ2ZXIvdGhyZWFkLmMsIHNlcnZlci90aHJlYWQuaCwgc2VydmVyL3RyYWNlLmMsIHRvb2xzL21ha2VfcmVxdWVzdHMsIHdpbjMyL2NvbnNvbGUuYywgd2luMzIvZGV2aWNlLmMsIGluY2x1ZGUvc2VydmVyLmgsIGluY2x1ZGUvdGhyZWFkLmgsIGxvYWRlci9kb3MvbW9kdWxlLmMsIG1lbW9yeS92aXJ0dWFsLmMsIG1pc2MvY29tbS5jLCBtaXNjL3Rvb2xoZWxwLmMsIG9sZS9wYXJzZWR0LmMsIHNjaGVkdWxlci9jbGllbnQuYywgc2NoZWR1bGVyL2RlYnVnZ2VyLmMsIHNjaGVkdWxlci9ldmVudC5jLCBzY2hlZHVsZXIvaGFuZGxlLmMsIHNjaGVkdWxlci9tdXRleC5jLCBzY2hlZHVsZXIvcGlwZS5jLCBzY2hlZHVsZXIvcHJvY2Vzcy5jLCBzY2hlZHVsZXIvc2VtYXBob3JlLmMsIHNjaGVkdWxlci9zeW5jaHJvLmMsIHNjaGVkdWxlci90aHJlYWQuYywgZmlsZXMvY2hhbmdlLmMsIGZpbGVzL2Rvc19mcy5jLCBmaWxlcy9maWxlLmM6CisJRnVydGhlciBzZXJ2ZXIgb3B0aW1pemF0aW9uczoKKwktIG1lcmdlZCByZXF1ZXN0IGFuZCByZXBseSBzdHJ1Y3R1cmVzCisJLSBidWlsZCByZXF1ZXN0cyBkaXJlY3RseSBpbnRvIHRoZSBidWZmZXIgdG8gYXZvaWQgYSBjb3B5CisKK1R1ZSBKdW4gMjIgMTk6MTQ6NDEgMTk5OSAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9zaGVsbDMyL3NoZWxsMzJfUnUucmMsIGdyYXBoaWNzL3gxMWRydi94Zm9udC5jLCBvbGUvbmxzL3J1cy5ubHMsIHJlc291cmNlcy9zeXNyZXNfUnUucmMsIGRsbHMvY29tbWRsZy9jZGxnX1J1LnJjOgorCUFsZXhhbmRlciBLYW5hdmluIDxha0BjYXZlLmhvcC5zdHUubmV2YS5ydT4KKwlTdGFuZGFyZCBkaWFsb2cgYm94ZXMgcmVzb3VyY2VzIGFuZCBPTEUgc3RyaW5ncyBhcmUgbm93IGluIGNwMTI1MSBlbmNvZGluZworCUZvbnQgbWFwcGVyIGRvZXMgbm90IGFueW1vcmUgdXNlIGZvbnRzIGluIC1rb2k4LXIgZW5jb2RpbmcKKwlGb250IG1hcHBlciBub3cgcmVjb2duaXNlcyBmb250cyBpbiAtd2luZG93cy0qIGVuY29kaW5ncyAodGhlc2UgYXJlCisJcHJvdmlkZWQgYnkgeGZzdHQgVHJ1ZVR5cGUgc2VydmVyKQorCUZvbnQgbWFwcGVyIG5vdyBzZWVzIG1heCAxNjM4NCBmb250cyAod2FzIDIwNDgpCisKKwkqIHJlbGF5MzIvYnVpbHRpbjMyLmM6CisJVWxyaWNoIFdlaWdhbmQgPHdlaWdhbmRAaW5mb3JtYXRpay51bmktZXJsYW5nZW4uZGU+CisJU2hhcmUgdGhlIEhNT0RVTEUgb2YgYnVpbHQtaW4gbW9kdWxlcyBvdmVyIGFsbCBwcm9jZXNzZXMuCisJVXNlIHRoZSBjYWNoZWQgSE1PRFVMRSB0byBzcGVlZCB1cCByZWxheSBkZWJ1Z2dpbmcuCisJRGlzcGxheSB0aGUgbXVsdGktaW5zdGFudGlhdGlvbiB3YXJuaW5nIG9ubHkgZm9yICdkYW5nZXJvdXMnIERMTHMuCisKKwkqIHNjaGVkdWxlci9wcm9jZXNzLmM6CisJVWxyaWNoIFdlaWdhbmQgPHdlaWdhbmRAaW5mb3JtYXRpay51bmktZXJsYW5nZW4uZGU+CisJTG9hZCBVU0VSMzIuRExMIGJlZm9yZSBjYWxsaW5nIFVzZXJTaWduYWxQcm9jLgorCisJKiB3aW5kb3dzL3RpbWVyLmM6IFVscmljaCBXZWlnYW5kIDx3ZWlnYW5kQGluZm9ybWF0aWsudW5pLWVybGFuZ2VuLmRlPgorCVVzZSBzZXBhcmF0ZSBzZXJ2aWNlIGZvciBlYWNoIHdpbmRvd3MgdGltZXIuCisKKwkqIGlmMTYzMi9jb21wb2JqLnNwZWMsIG9sZS9jb21wb2JqLmM6CisJQW5kcmVhcyBNb2hyIDxtb2hyQGVsZWt0cm9uLmlrcC5waHlzaWsudHUtZGFybXN0YWR0LmRlPgorCUFkZGVkIENPTVBPQkouRGxsRW50cnlQb2ludCAoQWNyb2JhdDMgMTZiaXQgbmVlZHMgaXQpLgorCisJKiBvbGUvdHlwZWxpYi5jLCBkbGxzL2NvbWN0bDMyL2xpc3R2aWV3LmMsIGRsbHMvY29tY3RsMzIvdHJlZXZpZXcuYzoKKwlFcmljIFBvdWVjaCA8RXJpYy5Qb3VlY2hAd2FuYWRvby5mcj4KKwlUaG91IHNoYWx0IG5vdCB1c2UgQysrIGNvbW1lbnRzLgorCisJKiBpbmNsdWRlL2RyaXZlci5oLCB3aW5kb3dzL2RyaXZlci5jOgorCUVyaWMgUG91ZWNoIDxFcmljLlBvdWVjaEB3YW5hZG9vLmZyPgorCU1vdmVkIHRvIG5ldyB0cmFjZSBpbnRlcmZhY2UuCisJRml4ZWQgZHJpdmVyIGNsb3NpbmcuCisKKwkqIG11bHRpbWVkaWEvbWNpc3RyaW5nLmM6IEVyaWMgUG91ZWNoIDxFcmljLlBvdWVjaEB3YW5hZG9vLmZyPgorCUJldHRlciBoYW5kbGluZyBvZiBkb3VibGUgcXVvdGVzIGluIE1DSSBzdHJpbmcgY29tbWFuZHMuCisKKwkqIG11bHRpbWVkaWEvbWNpLmM6IEVyaWMgUG91ZWNoIDxFcmljLlBvdWVjaEB3YW5hZG9vLmZyPgorCUZpeGVkIG1lbW9yeSBsZWFrIGluIG1jaSBzdHJ1Y3R1cmVzLgorCisJKiBncmFwaGljcy9kZHJhdy5jOiBFcmljIFBvdWVjaCA8RXJpYy5Qb3VlY2hAd2FuYWRvby5mcj4KKwlGaXhlZCBlcnJvciBoYW5kbGluZyBpbiBER0FfSURpcmVjdERyYXcySW1wbF9HZXRDYXBzKCkuCisKKwkqIGdyYXBoaWNzL3gxMWRydi9jbGlwcGluZy5jOiBFcmljIFBvdWVjaCA8RXJpYy5Qb3VlY2hAd2FuYWRvby5mcj4KKwlBZGRlZCBtaXNzaW5nIEdESSBoZWFwIHVubG9jay4KKwlNb3ZlZCB0byBuZXcgZGVidWcgaW50ZXJmYWNlLgorCisJKiBkbGxzL2NvbW1kbGcvZmlsZWRsZy5jOiBFcmljIFBvdWVjaCA8RXJpYy5Qb3VlY2hAd2FuYWRvby5mcj4KKwlGaXhlZCBHZXRPcGVuRmlsZU5hbWUgd2hlbiBjYWxsZWQgd2l0aCBib3RoIE9GTl9BTExPV01VTFRJU0VMRUNUIGFuZAorCU9GTl9FWFBMT1JFUiBiaXRzIHNldC4KKworCSogZGxscy9jb21jdGwzMi9pbWFnZWxpc3QuYzoKKwlGcmFuY29pcyBCb2lzdmVydCA8ZnJhbmNvaXNAbWFjYWRhbWlhbi5jb20+CisJTW9kaWZpZWQgSW1hZ2VMaXN0X0xvYWRJbWFnZUEgdG8gY2hlY2sgdGhlIGNhc2Ugd2hlcmUgY3ggaXMgc2V0IHRvIHplcm8uCisKKwkqIHdpbmRvd3MveDExZHJ2L2tleWJvYXJkLmM6IFBoaWxpcHBlIEZyb2lkZXZhdXggPHBmQHNwaW4uY2g+CisJQWRkZWQgU3dpc3MgZnJlbmNoIGtleWJvYXJkIGxheW91dC4KKworCSogc2VydmVyL3NlbGVjdC5jOiBEdW1wIHNlcnZlciBvYmplY3RzIG9uIFNJR0hVUC4KKworCSogc2VydmVyL2ZpbGUuYywgc2VydmVyL2hhbmRsZS5jLCBzZXJ2ZXIvaGFuZGxlLmgsIHNlcnZlci9tYWluLmMsIHNlcnZlci9tYXBwaW5nLmMsIHNlcnZlci9tdXRleC5jLCBzZXJ2ZXIvb2JqZWN0LmMsIHNlcnZlci9vYmplY3QuaCwgc2VydmVyL3BpcGUuYywgc2VydmVyL3Byb2Nlc3MuYywgc2VydmVyL3JlcXVlc3QuYywgc2VydmVyL3JlcXVlc3QuaCwgc2VydmVyL3NlbWFwaG9yZS5jLCBzZXJ2ZXIvc25hcHNob3QuYywgc2VydmVyL3NvY2tldC5jLCBzZXJ2ZXIvdGhyZWFkLmMsIHNlcnZlci90aHJlYWQuaCwgc2VydmVyL3RyYWNlLmMsIHRvb2xzL21ha2VfcmVxdWVzdHMsIHdpbjMyL2NvbnNvbGUuYywgaW5jbHVkZS9zZXJ2ZXIuaCwgaW5jbHVkZS9zZXJ2ZXIvQXR0aWMvcmVxdWVzdC5oLCBpbmNsdWRlL3RocmVhZC5oLCBtZW1vcnkvdmlydHVhbC5jLCBtaXNjL2NvbW0uYywgc2NoZWR1bGVyL2NsaWVudC5jLCBzY2hlZHVsZXIvZGVidWdnZXIuYywgc2NoZWR1bGVyL2V2ZW50LmMsIHNjaGVkdWxlci9tdXRleC5jLCBzY2hlZHVsZXIvcGlwZS5jLCBzY2hlZHVsZXIvc2VtYXBob3JlLmMsIHNjaGVkdWxlci90aHJlYWQuYywgc2VydmVyL2NoYW5nZS5jLCBzZXJ2ZXIvY29uc29sZS5jLCBzZXJ2ZXIvZGVidWdnZXIuYywgc2VydmVyL2RldmljZS5jLCBzZXJ2ZXIvZXZlbnQuYywgZmlsZXMvZmlsZS5jOgorCU1hZGUgc2VydmVyIGNvbW11bmljYXRpb24gZmFzdGVyIGJ5IHVzaW5nIGEgc2hhcmVkIG1lbW9yeSBibG9jay4KKwlBIGZldyBvdGhlciBvcHRpbWl6YXRpb25zIGluIHJlcXVlc3QgcHJvY2Vzc2luZyBpbiB0aGUgc2VydmVyLgorCU1vdmVkIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIHJlcXVlc3QgZGVmaW5pdGlvbnMgdG8gc2VydmVyLmggYW5kCisJcmVtb3ZlZCBpbmNsdWRlL3NlcnZlci9yZXF1ZXN0LmguCisKKwkqIHdpbmRvd3MvbWVzc2FnZS5jLCB3aW5kb3dzL3F1ZXVlLmMsIHdpbmRvd3Mvd2luLmMsIHdpbmRvd3Mvd2lucHJvYy5jLCBsb2FkZXIvbWFpbi5jLCBsb2FkZXIvbmUvc2VnbWVudC5jLCBsb2FkZXIvdGFzay5jLCBtaXNjZW11L21haW4uYywgbXNkb3MvZHBtaS5jLCBzY2hlZHVsZXIvY2xpZW50LmMsIHNjaGVkdWxlci9wcm9jZXNzLmMsIHNjaGVkdWxlci9zeXNkZXBzLmMsIHNjaGVkdWxlci9zeXNsZXZlbC5jLCBzY2hlZHVsZXIvdGhyZWFkLmMsIHRvb2xzL2J1aWxkLmMsIHdpbjMyL2tlcm5lbDMyLmMsIGRlYnVnZ2VyL3N0YWNrLmMsIGRsbHMvbnRkbGwvZXhjZXB0aW9uLmMsIGlmMTYzMi9yZWxheS5jLCBpZjE2MzIvdGh1bmsuYywgaW5jbHVkZS9wcm9jZXNzLmgsIGluY2x1ZGUvcXVldWUuaCwgaW5jbHVkZS9zdGFja2ZyYW1lLmgsIGluY2x1ZGUvdGFzay5oLCBpbmNsdWRlL3RocmVhZC5oLCBpbmNsdWRlL3dpbmJhc2UuaCwgaW5jbHVkZS93aW5udC5oOgorCU1lcmdlZCBUSERCIGFuZCBURUIgc3RydWN0dXJlcy4KKwlNYWRlIFNldExhc3RFcnJvcigpLCBHZXRDdXJyZW50VGhyZWFkSWQoKSBhbmQgUFJPQ0VTU19DdXJyZW50KCkgaW5saW5lLgorCisJKiBwcm9ncmFtcy93aW5oZWxwLy5jdnNpZ25vcmUsIHByb2dyYW1zL2Nsb2NrLy5jdnNpZ25vcmUsIHByb2dyYW1zL3Byb2dtYW4vLmN2c2lnbm9yZToKKwlBZGRlZCBXYS5zCisKK1N1biBKdW4gMjAgMTU6MDk6MzIgMTk5OSAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogbWVtb3J5L2luc3RyLmMsIG1pc2NlbXUvbWFpbi5jLCBwcm9ncmFtcy9jbG9jay9XYS5yYywgcHJvZ3JhbXMvcHJvZ21hbi9XYS5yYywgcHJvZ3JhbXMvd2luaGVscC9XYS5yYzoKKwlGaXhlZCBXaW5lbGliIGNvbXBpbGF0aW9uLgorCitGcmkgSnVuIDE4IDE4OjI5OjA0IDE5OTkgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIG1lbW9yeS9NYWtlZmlsZS5pbiwgbWVtb3J5L2luc3RyLmMsIG1pc2NlbXUvQXR0aWMvaW5zdHIuYywgbWlzY2VtdS9NYWtlZmlsZS5pbjoKKwlJbmNsdWRlIGluc3RydWN0aW9uIGVtdWxhdGlvbiBpbiBXaW5lbGliLgorCisJKiBpbmNsdWRlL3dpbmUvZXhjZXB0aW9uLmgsIHdpbjMyL2V4Y2VwdC5jOiBBIGZldyBvcHRpbWl6YXRpb25zLgorCisJKiBsb2FkZXIvZG9zL2Rvc3ZtLmM6IFVzZSBleGNlcHRpb25zIGluc3RlYWQgb2YgY3R4X2RlYnVnX2NhbGwuCisKKwkqIGluY2x1ZGUvd2luYmFzZS5oLCByZWxheTMyL2tlcm5lbDMyLnNwZWMsIHNjaGVkdWxlci9zeXNsZXZlbC5jLCB3aW5kb3dzL3gxMWRydi9tYWluLmM6CisJQWRkZWQgRGVidWdCcmVhay4KKworCSogZGVidWdnZXIvYnJlYWsuYywgZGVidWdnZXIvZGJnLnksIGRlYnVnZ2VyL2RlYnVnLmwsIGRlYnVnZ2VyL2luZm8uYywgZGVidWdnZXIvcmVnaXN0ZXJzLmMsIGluY2x1ZGUvZGVidWdnZXIuaCwgbWlzY2VtdS9tYWluLmM6CisJRGVidWdnZXIgaXMgbm93IGNhbGxlZCBieSBleGNlcHRpb24gaGFuZGxpbmcuCisJQWRkZWQgJ3Bhc3MnIGNvbW1hbmQgdG8gcGFzcyBleGNlcHRpb25zIHRvIHRoZSBhcHAuCisKKwkqIGluY2x1ZGUvbWlzY2VtdS5oLCBpbmNsdWRlL3NpZ19jb250ZXh0LmgsIGxvYWRlci9zaWduYWwuYywgZGxscy9udGRsbC9leGNlcHRpb24uYywgZ3JhcGhpY3MvZGRyYXcuYzoKKwlNb3ZlZCBzaWduYWwgaGFuZGxpbmcgdG8gZXhjZXB0aW9uLmMsIGdlbmVyYXRlIGV4Y2VwdGlvbnMgb24gc2lnbmFscy4KKwlBZGRlZCBob29rIGZvciBkZWJ1Z2dlciBpbiBleGNlcHRpb24gaGFuZGxpbmcgKHRlbXBvcmFyeSkuCisKKwkqIHByb2dyYW1zL3Byb2dtYW4vTWFrZWZpbGUuaW4sIHByb2dyYW1zL3Byb2dtYW4vV2EucmMsIHByb2dyYW1zL3dpbmhlbHAvTWFrZWZpbGUuaW4sIHByb2dyYW1zL3dpbmhlbHAvV2EucmMsIHJlc291cmNlcy9zeXNyZXNfV2EucmMsIG9sZS9ubHMvd2FsLm5scywgcHJvZ3JhbXMvY2xvY2svTWFrZWZpbGUuaW4sIHByb2dyYW1zL2Nsb2NrL1dhLnJjLCBwcm9ncmFtcy9ub3RlcGFkL01ha2VmaWxlLmluLCBwcm9ncmFtcy9ub3RlcGFkL1dhLnJjLCBkbGxzL2NvbW1kbGcvY2RsZ19XYS5yYywgZGxscy9zaGVsbDMyL3NoZWxsMzJfV2EucmM6CisJUGFibG8gU2FyYXR4YWdhIDxzcnR4Z0BwaW5nLmJlPgorCVdhbGxvb24gbGFuZ3VhZ2UgdXBkYXRlLgorCisJKiB3aW5kb3dzL3dpbnBvcy5jLCB3aW5kb3dzL3gxMWRydi9ldmVudC5jLCB3aW5kb3dzL3gxMWRydi93bmQuYywgaW5jbHVkZS93aW5wb3MuaCwgaW5jbHVkZS93aW51c2VyLmg6CisJVWxyaWNoIFdlaWdhbmQgPHdlaWdhbmRAaW5mb3JtYXRpay51bmktZXJsYW5nZW4uZGU+CisJLSBEbyBub3QgY2FsbCBYQ29uZmlndXJlV2luZG93IGlmIFNldFdpbmRvd1BvcyB3YXMgY2FsbGVkIGR1ZSB0byBhCisJICByZWNlaXZlZCBDb25maWd1cmVOb3RpZnkgZXZlbnQgKHRvIGF2b2lkIHJlY3Vyc2lvbikuCisJLSBVc2UgWFRyYW5zbGF0ZUNvb3JkaW5hdGVzIGluIEVWRU5UX0dldEdlb21ldHJ5IGluc3RlYWQgb2YgbWFudWFsbHkKKwkgIHdhbGtpbmcgdGhlIHRyZWUuCisJLSBTZXQgWFNpemVIaW50Lndpbl9ncmF2aXR5IHRvIFN0YXRpY0dyYXZpdHkgZm9yIG1hbmFnZWQgd2luZG93cy4KKworCSogbWlzYy92ZXJzaW9uLmM6CisJQW5kcmVhcyBNb2hyIDxtb2hyQGVsZWt0cm9uLmlrcC5waHlzaWsudHUtZGFybXN0YWR0LmRlPgorCUJ1ZyBmaXguCisKKwkqIGxvYWRlci9wZV9pbWFnZS5jOgorCVVscmljaCBXZWlnYW5kIDx3ZWlnYW5kQGluZm9ybWF0aWsudW5pLWVybGFuZ2VuLmRlPgorCUZpeCBjb21waWxlciB3YXJuaW5nLgorCisJKiBkb2N1bWVudGF0aW9uL01ha2VmaWxlLmluLCBNYWtlZmlsZS5pbjoKKwlBbGV4YW5kZXIgVi4gTHVreWFub3YgPGxhdkBsb25nLnlhci5ydT4KKwlJbnN0YWxsIHdpbmUubWFuIGZyb20gY3VycmVudCBkaXJlY3RvcnkuCisJUmVtb3ZlIHdpbmUubWFuIG9uIGRpc3RjbGVhbiwgbm90IG9uIGNsZWFuLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBTdW4gSnVuIDEzIDA4OjQ5OjQ3IDE5OTkgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CiAKIAkqIGRsbHMvY29tY3RsMzIvbGlzdHZpZXcuYywgaW5jbHVkZS9saXN0dmlldy5oOgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS92ZXJzaW9uLmggYi9pbmNsdWRlL3ZlcnNpb24uaAppbmRleCBkYmExMWQxLi41MWUyYTFlIDEwMDY0NAotLS0gYS9pbmNsdWRlL3ZlcnNpb24uaAorKysgYi9pbmNsdWRlL3ZlcnNpb24uaApAQCAtMSArMSBAQAotI2RlZmluZSBXSU5FX1JFTEVBU0VfSU5GTyAiV2luZSByZWxlYXNlIDk5MDYxMyIKKyNkZWZpbmUgV0lORV9SRUxFQVNFX0lORk8gIldpbmUgcmVsZWFzZSA5OTA3MDQiCg==