From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tomeu Vizoso Subject: [PATCH v10 2/9] clk: Move all drivers to use internal API Date: Tue, 9 Sep 2014 16:04:57 +0200 Message-ID: <1410271497-27148-1-git-send-email-tomeu.vizoso@collabora.com> References: <1410271329-26637-1-git-send-email-tomeu.vizoso@collabora.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1410271329-26637-1-git-send-email-tomeu.vizoso@collabora.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: linuxppc-dev-bounces+glppe-linuxppc-embedded-2=m.gmane.org@lists.ozlabs.org Sender: "Linuxppc-dev" To: Mike Turquette Cc: Andrew Lunn , Ulf Hansson , Prashant Gaikwad , Tony Lindgren , tomasz.figa@gmail.com, Liam Girdwood , Thierry Reding , Paul Mackerras , Sylwester Nawrocki , Daniel Walker , linux-arch@vger.kernel.org, Boris Brezillon , linux-samsung-soc@vger.kernel.org, Kukjin Kim , Russell King , =?UTF-8?q?Emilio=20L=C3=B3pez?= , Takashi Iwai , Michal Simek , Kyungmin Park , Kevin Hilman , linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org, patches@opensource.wolfsonmicro.com, Viresh List-Id: linux-arch.vger.kernel.org SW4gcHJlcGFyYXRpb24gdG8gY2hhbmdlIHRoZSBwdWJsaWMgQVBJIHRvIHJldHVybiBhIHBlci11 c2VyIGNsayBzdHJ1Y3R1cmUsCnJlbW92ZSBhbnkgdXNhZ2Ugb2YgdGhpcyBwdWJsaWMgQVBJIGZy b20gdGhlIGNsb2NrIGltcGxlbWVudGF0aW9ucy4KClRoZSByZWFzb24gZm9yIGhhdmluZyB0aGlz IGluIGEgc2VwYXJhdGUgY29tbWl0IGZyb20gdGhlIG9uZSB0aGF0IGludHJvZHVjZXMKdGhlIGlt cGxlbWVudGF0aW9uIG9mIHRoZSBuZXcgZnVuY3Rpb25zIGlzIHRvIHNlcGFyYXRlIHRoZSBjaGFu Z2VzIGdlbmVyYXRlZAp3aXRoIENvY2NpbmVsbGUgZnJvbSB0aGUgcmVzdCwgYW5kIGtlZXAgdGhl IHBhdGNoZXMnIHNpemUgcmVhc29uYWJsZS4KClNpZ25lZC1vZmYtYnk6IFRvbWV1IFZpem9zbyA8 dG9tZXUudml6b3NvQGNvbGxhYm9yYS5jb20+ClRlc3RlZC1ieTogQm9yaXMgQnJlemlsbG9uIDxi b3Jpcy5icmV6aWxsb25AZnJlZS1lbGVjdHJvbnMuY29tPgpUZXN0ZWQtYnk6IEhlaWtvIFN0dWVi bmVyIDxoZWlrb0BzbnRlY2guZGU+CkFja2VkLWJ5OiBCb3JpcyBCcmV6aWxsb24gPGJvcmlzLmJy ZXppbGxvbkBmcmVlLWVsZWN0cm9ucy5jb20+CgotLS0KCnYxMDogKiBBZGQgYSBmZXcgbW9yZSBm aWxlcyB0byBiZSBjb252ZXJ0ZWQKICAgICAqIFJlLWdlbmVyYXRlIHRoZSBwYXRjaCBvbiB0b3Ag b2YgdGhlIGxhdGVzdCBjaGFuZ2VzCgp2OTogKiBGb2xkIGluIGNoYW5nZXMgdG8gbXhzLXNhaWYu Yywgc28gdG8gbm90IGJyZWFrIGJpc2VjdGFiaWxpdHkKICAgICogUmUtZ2VuZXJhdGUgdGhlIHBh dGNoIG9uIHRvcCBvZiB0aGUgbGF0ZXN0IGNoYW5nZXMKICAgICogUmVtb3ZlIGxpbnV4L2Nsay5o IGluY2x1ZGVzIGZyb20gY2xrIGltcGxlbWVudGF0aW9ucwotLS0KIGFyY2gvYXJtL21hY2gtZG92 ZS9jb21tb24uYyAgICAgICAgICAgICAgICAgICB8ICAxMCArLQogYXJjaC9hcm0vbWFjaC1pbXgv Y2xrLWJ1c3kuYyAgICAgICAgICAgICAgICAgIHwgICA5ICstCiBhcmNoL2FybS9tYWNoLWlteC9j bGstZml4dXAtZGl2LmMgICAgICAgICAgICAgfCAgIDQgKy0KIGFyY2gvYXJtL21hY2gtaW14L2Ns ay1maXh1cC1tdXguYyAgICAgICAgICAgICB8ICAgNCArLQogYXJjaC9hcm0vbWFjaC1pbXgvY2xr LWdhdGUtZXhjbHVzaXZlLmMgICAgICAgIHwgICA0ICstCiBhcmNoL2FybS9tYWNoLWlteC9jbGst Z2F0ZTIuYyAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIGFyY2gvYXJtL21hY2gtaW14L2Nsay1p bXgxLmMgICAgICAgICAgICAgICAgICB8ICAgMyArLQogYXJjaC9hcm0vbWFjaC1pbXgvY2xrLWlt eDIxLmMgICAgICAgICAgICAgICAgIHwgICAzICstCiBhcmNoL2FybS9tYWNoLWlteC9jbGstaW14 MjUuYyAgICAgICAgICAgICAgICAgfCAgIDkgKy0KIGFyY2gvYXJtL21hY2gtaW14L2Nsay1pbXgy Ny5jICAgICAgICAgICAgICAgICB8ICAgNSArLQogYXJjaC9hcm0vbWFjaC1pbXgvY2xrLWlteDMx LmMgICAgICAgICAgICAgICAgIHwgIDExICstCiBhcmNoL2FybS9tYWNoLWlteC9jbGstaW14MzUu YyAgICAgICAgICAgICAgICAgfCAgMjMgKy0KIGFyY2gvYXJtL21hY2gtaW14L2Nsay1pbXg1MS1p bXg1My5jICAgICAgICAgICB8ICA3OCArKystLS0KIGFyY2gvYXJtL21hY2gtaW14L2Nsay1pbXg2 cS5jICAgICAgICAgICAgICAgICB8ICA3NSArKysrLS0KIGFyY2gvYXJtL21hY2gtaW14L2Nsay1p bXg2c2wuYyAgICAgICAgICAgICAgICB8ICA0MyArLS0KIGFyY2gvYXJtL21hY2gtaW14L2Nsay1p bXg2c3guYyAgICAgICAgICAgICAgICB8IDExOSArKysrKy0tLS0KIGFyY2gvYXJtL21hY2gtaW14 L2Nsay1wZmQuYyAgICAgICAgICAgICAgICAgICB8ICAgNSArLQogYXJjaC9hcm0vbWFjaC1pbXgv Y2xrLXBsbHYxLmMgICAgICAgICAgICAgICAgIHwgICA1ICstCiBhcmNoL2FybS9tYWNoLWlteC9j bGstcGxsdjIuYyAgICAgICAgICAgICAgICAgfCAgIDUgKy0KIGFyY2gvYXJtL21hY2gtaW14L2Ns ay1wbGx2My5jICAgICAgICAgICAgICAgICB8ICAgNSArLQogYXJjaC9hcm0vbWFjaC1pbXgvY2xr LXZmNjEwLmMgICAgICAgICAgICAgICAgIHwgIDQ1ICsrLS0KIGFyY2gvYXJtL21hY2gtaW14L2Ns ay5jICAgICAgICAgICAgICAgICAgICAgICB8ICAxMSArLQogYXJjaC9hcm0vbWFjaC1pbXgvY2xr LmggICAgICAgICAgICAgICAgICAgICAgIHwgIDQ0ICstLQogYXJjaC9hcm0vbWFjaC1tc20vY2xv Y2stcGNvbS5jICAgICAgICAgICAgICAgIHwgICAyICstCiBhcmNoL2FybS9tYWNoLW12Nzh4eDAv Y29tbW9uLmMgICAgICAgICAgICAgICAgfCAgIDIgKy0KIGFyY2gvYXJtL21hY2gtb21hcDIvYm9h cmQtY20tdDM1LmMgICAgICAgICAgICB8ICAgMiArLQogYXJjaC9hcm0vbWFjaC1vbWFwMi9jY2xv Y2szeHh4X2RhdGEuYyAgICAgICAgIHwgMzcxICsrKysrKysrKysrKystLS0tLS0tLS0tLS0tCiBh cmNoL2FybS9tYWNoLW9tYXAyL2Nsa3QyeHh4X2RwbGwuYyAgICAgICAgICAgfCAgIDUgKy0KIGFy Y2gvYXJtL21hY2gtb21hcDIvY2xrdDJ4eHhfZHBsbGNvcmUuYyAgICAgICB8ICAgNSArLQogYXJj aC9hcm0vbWFjaC1vbWFwMi9jbGt0Mnh4eF92aXJ0X3ByY21fc2V0LmMgIHwgIDExICstCiBhcmNo L2FybS9tYWNoLW9tYXAyL2Nsa3QzNHh4X2RwbGwzbTIuYyAgICAgICAgfCAgIDMgKy0KIGFyY2gv YXJtL21hY2gtb21hcDIvY2xrdF9jbGtzZWwuYyAgICAgICAgICAgICB8ICA0NiArKy0tCiBhcmNo L2FybS9tYWNoLW9tYXAyL2Nsa3RfZHBsbC5jICAgICAgICAgICAgICAgfCAgIDggKy0KIGFyY2gv YXJtL21hY2gtb21hcDIvY2xvY2suYyAgICAgICAgICAgICAgICAgICB8ICA1MiArKy0tCiBhcmNo L2FybS9tYWNoLW9tYXAyL2Nsb2NrLmggICAgICAgICAgICAgICAgICAgfCAgMTggKy0KIGFyY2gv YXJtL21hY2gtb21hcDIvY2xvY2szeHh4LmMgICAgICAgICAgICAgICB8ICAyMyArLQogYXJjaC9h cm0vbWFjaC1vbWFwMi9jbG9jazN4eHguaCAgICAgICAgICAgICAgIHwgICA0ICstCiBhcmNoL2Fy bS9tYWNoLW9tYXAyL2Nsb2NrX2NvbW1vbl9kYXRhLmMgICAgICAgfCAgIDIgKy0KIGFyY2gvYXJt L21hY2gtb21hcDIvY2xvY2tkb21haW4uYyAgICAgICAgICAgICB8ICAgOSArLQogYXJjaC9hcm0v bWFjaC1vbWFwMi9jbG9ja2RvbWFpbi5oICAgICAgICAgICAgIHwgICA0ICstCiBhcmNoL2FybS9t YWNoLW9tYXAyL2Rpc3BsYXkuYyAgICAgICAgICAgICAgICAgfCAgIDUgKy0KIGFyY2gvYXJtL21h Y2gtb21hcDIvZHBsbDN4eHguYyAgICAgICAgICAgICAgICB8ICAyOSArLQogYXJjaC9hcm0vbWFj aC1vbWFwMi9kcGxsNDR4eC5jICAgICAgICAgICAgICAgIHwgICA1ICstCiBhcmNoL2FybS9tYWNo LW9tYXAyL21jYnNwLmMgICAgICAgICAgICAgICAgICAgfCAgIDUgKy0KIGFyY2gvYXJtL21hY2gt b21hcDIvb21hcF9kZXZpY2UuYyAgICAgICAgICAgICB8ICAgOSArLQogYXJjaC9hcm0vbWFjaC1v bWFwMi9vbWFwX2h3bW9kLmMgICAgICAgICAgICAgIHwgIDQyICstLQogYXJjaC9hcm0vbWFjaC1v bWFwMi9vbWFwX2h3bW9kLmggICAgICAgICAgICAgIHwgIDEyICstCiBhcmNoL2FybS9tYWNoLW9t YXAyL3BtMjR4eC5jICAgICAgICAgICAgICAgICAgfCAgMTIgKy0KIGFyY2gvYXJtL21hY2gtb3Jp b241eC9jb21tb24uYyAgICAgICAgICAgICAgICB8ICAgMiArLQogYXJjaC9hcm0vbWFjaC1zaG1v YmlsZS9jbG9jay5jICAgICAgICAgICAgICAgIHwgICA5ICstCiBhcmNoL2FybS9tYWNoLXZleHBy ZXNzL3NwYy5jICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIGFyY2gvYXJtL3BsYXQtb3Jpb24v Y29tbW9uLmMgICAgICAgICAgICAgICAgICB8ICAyMSArLQogYXJjaC9hcm0vcGxhdC1vcmlvbi9p bmNsdWRlL3BsYXQvY29tbW9uLmggICAgIHwgIDEyICstCiBhcmNoL21pcHMvYWxjaGVteS9jb21t b24vY2xvY2suYyAgICAgICAgICAgICAgfCAgNDIgKy0tCiBhcmNoL3Bvd2VycGMvcGxhdGZvcm1z LzUxMngvY2xvY2stY29tbW9uY2xrLmMgfCAgNDggKystLQogZHJpdmVycy9hY3BpL2FjcGlfbHBz cy5jICAgICAgICAgICAgICAgICAgICAgIHwgICA1ICstCiBkcml2ZXJzL2Nsay9hdDkxL2Nsay1t YWluLmMgICAgICAgICAgICAgICAgICAgfCAgMjQgKy0KIGRyaXZlcnMvY2xrL2F0OTEvY2xrLW1h c3Rlci5jICAgICAgICAgICAgICAgICB8ICAgNiArLQogZHJpdmVycy9jbGsvYXQ5MS9jbGstcGVy aXBoZXJhbC5jICAgICAgICAgICAgIHwgIDEyICstCiBkcml2ZXJzL2Nsay9hdDkxL2Nsay1wbGwu YyAgICAgICAgICAgICAgICAgICAgfCAgIDYgKy0KIGRyaXZlcnMvY2xrL2F0OTEvY2xrLXBsbGRp di5jICAgICAgICAgICAgICAgICB8ICAgNiArLQogZHJpdmVycy9jbGsvYXQ5MS9jbGstcHJvZ3Jh bW1hYmxlLmMgICAgICAgICAgIHwgIDEwICstCiBkcml2ZXJzL2Nsay9hdDkxL2Nsay1zbG93LmMg ICAgICAgICAgICAgICAgICAgfCAgMjQgKy0KIGRyaXZlcnMvY2xrL2F0OTEvY2xrLXNtZC5jICAg ICAgICAgICAgICAgICAgICB8ICAgNiArLQogZHJpdmVycy9jbGsvYXQ5MS9jbGstc3lzdGVtLmMg ICAgICAgICAgICAgICAgIHwgICA2ICstCiBkcml2ZXJzL2Nsay9hdDkxL2Nsay11c2IuYyAgICAg ICAgICAgICAgICAgICAgfCAgMjAgKy0KIGRyaXZlcnMvY2xrL2F0OTEvY2xrLXV0bWkuYyAgICAg ICAgICAgICAgICAgICB8ICAgNiArLQogZHJpdmVycy9jbGsvYmNtL2Nsay1rb25hLXNldHVwLmMg ICAgICAgICAgICAgIHwgICA2ICstCiBkcml2ZXJzL2Nsay9iY20vY2xrLWtvbmEuYyAgICAgICAg ICAgICAgICAgICAgfCAgMTIgKy0KIGRyaXZlcnMvY2xrL2JjbS9jbGsta29uYS5oICAgICAgICAg ICAgICAgICAgICB8ICAgMiArLQogZHJpdmVycy9jbGsvYmVybGluL2JlcmxpbjItYXZwbGwuYyAg ICAgICAgICAgIHwgICA0ICstCiBkcml2ZXJzL2Nsay9iZXJsaW4vYmVybGluMi1hdnBsbC5oICAg ICAgICAgICAgfCAgIDQgKy0KIGRyaXZlcnMvY2xrL2Jlcmxpbi9iZXJsaW4yLWRpdi5jICAgICAg ICAgICAgICB8ICAgMiArLQogZHJpdmVycy9jbGsvYmVybGluL2JlcmxpbjItZGl2LmggICAgICAg ICAgICAgIHwgICAyICstCiBkcml2ZXJzL2Nsay9iZXJsaW4vYmVybGluMi1wbGwuYyAgICAgICAg ICAgICAgfCAgIDIgKy0KIGRyaXZlcnMvY2xrL2Jlcmxpbi9iZXJsaW4yLXBsbC5oICAgICAgICAg ICAgICB8ICAgMiArLQogZHJpdmVycy9jbGsvYmVybGluL2JnMi5jICAgICAgICAgICAgICAgICAg ICAgIHwgIDEzICstCiBkcml2ZXJzL2Nsay9iZXJsaW4vYmcycS5jICAgICAgICAgICAgICAgICAg ICAgfCAgIDkgKy0KIGRyaXZlcnMvY2xrL2Nsay1heGktY2xrZ2VuLmMgICAgICAgICAgICAgICAg ICB8ICAgMyArLQogZHJpdmVycy9jbGsvY2xrLWF4bTU1MTYuYyAgICAgICAgICAgICAgICAgICAg IHwgICA0ICstCiBkcml2ZXJzL2Nsay9jbGstYmNtMjgzNS5jICAgICAgICAgICAgICAgICAgICAg fCAgIDIgKy0KIGRyaXZlcnMvY2xrL2Nsay1jbHBzNzExeC5jICAgICAgICAgICAgICAgICAgICB8 ICAgMyArLQogZHJpdmVycy9jbGsvY2xrLWNvbXBvc2l0ZS5jICAgICAgICAgICAgICAgICAgIHwg IDExICstCiBkcml2ZXJzL2Nsay9jbGstY29uZi5jICAgICAgICAgICAgICAgICAgICAgICAgfCAg MTcgKy0KIGRyaXZlcnMvY2xrL2Nsay1kaXZpZGVyLmMgICAgICAgICAgICAgICAgICAgICB8ICAg OCArLQogZHJpdmVycy9jbGsvY2xrLWVmbTMyZ2cuYyAgICAgICAgICAgICAgICAgICAgIHwgICAz ICstCiBkcml2ZXJzL2Nsay9jbGstZml4ZWQtZmFjdG9yLmMgICAgICAgICAgICAgICAgfCAgIDYg Ky0KIGRyaXZlcnMvY2xrL2Nsay1maXhlZC1yYXRlLmMgICAgICAgICAgICAgICAgICB8ICAgOCAr LQogZHJpdmVycy9jbGsvY2xrLWZyYWN0aW9uYWwtZGl2aWRlci5jICAgICAgICAgIHwgICA0ICst CiBkcml2ZXJzL2Nsay9jbGstZ2F0ZS5jICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0K IGRyaXZlcnMvY2xrL2Nsay1oaWdoYmFuay5jICAgICAgICAgICAgICAgICAgICB8ICAgOCArLQog ZHJpdmVycy9jbGsvY2xrLWxzMXguYyAgICAgICAgICAgICAgICAgICAgICAgIHwgIDE2ICstCiBk cml2ZXJzL2Nsay9jbGstbWF4Nzc2ODYuYyAgICAgICAgICAgICAgICAgICAgfCAgMTAgKy0KIGRy aXZlcnMvY2xrL2Nsay1tb3hhcnQuYyAgICAgICAgICAgICAgICAgICAgICB8ICAgOCArLQogZHJp dmVycy9jbGsvY2xrLW11eC5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA3ICstCiBkcml2 ZXJzL2Nsay9jbGstbm9tYWRpay5jICAgICAgICAgICAgICAgICAgICAgfCAgMTUgKy0KIGRyaXZl cnMvY2xrL2Nsay1uc3BpcmUuYyAgICAgICAgICAgICAgICAgICAgICB8ICAgNCArLQogZHJpdmVy cy9jbGsvY2xrLXBhbG1hcy5jICAgICAgICAgICAgICAgICAgICAgIHwgICA3ICstCiBkcml2ZXJz L2Nsay9jbGstcHBjLWNvcmVuZXQuYyAgICAgICAgICAgICAgICAgfCAgIDggKy0KIGRyaXZlcnMv Y2xrL2Nsay1zMm1wczExLmMgICAgICAgICAgICAgICAgICAgICB8ICAgNiArLQogZHJpdmVycy9j bGsvY2xrLXNpNTM1MS5jICAgICAgICAgICAgICAgICAgICAgIHwgIDE3ICstCiBkcml2ZXJzL2Ns ay9jbGstc2k1NzAuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIGRyaXZlcnMvY2xr L2Nsay10d2w2MDQwLmMgICAgICAgICAgICAgICAgICAgICB8ICAgMyArLQogZHJpdmVycy9jbGsv Y2xrLXUzMDAuYyAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEzICstCiBkcml2ZXJzL2Nsay9j bGstdnQ4NTAwLmMgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIGRyaXZlcnMvY2xrL2Ns ay13bTgzMXguYyAgICAgICAgICAgICAgICAgICAgICB8ICAgNyArLQogZHJpdmVycy9jbGsvY2xr LXhnZW5lLmMgICAgICAgICAgICAgICAgICAgICAgIHwgIDEyICstCiBkcml2ZXJzL2Nsay9jbGsu aCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIGRyaXZlcnMvY2xrL2hpc2ls aWNvbi9jbGstaGkzNjIwLmMgICAgICAgICAgICB8ICAgOSArLQogZHJpdmVycy9jbGsvaGlzaWxp Y29uL2Nsay1oaXAwNC5jICAgICAgICAgICAgIHwgICAxIC0KIGRyaXZlcnMvY2xrL2hpc2lsaWNv bi9jbGsuYyAgICAgICAgICAgICAgICAgICB8ICAxNyArLQogZHJpdmVycy9jbGsvaGlzaWxpY29u L2Nsay5oICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBkcml2ZXJzL2Nsay9oaXNpbGljb24v Y2xrZ2F0ZS1zZXBhcmF0ZWQuYyAgICAgfCAgIDUgKy0KIGRyaXZlcnMvY2xrL2tleXN0b25lL2dh dGUuYyAgICAgICAgICAgICAgICAgICB8ICAgNyArLQogZHJpdmVycy9jbGsva2V5c3RvbmUvcGxs LmMgICAgICAgICAgICAgICAgICAgIHwgIDExICstCiBkcml2ZXJzL2Nsay9tbXAvY2xrLWFwYmMu YyAgICAgICAgICAgICAgICAgICAgfCAgIDUgKy0KIGRyaXZlcnMvY2xrL21tcC9jbGstYXBtdS5j ICAgICAgICAgICAgICAgICAgICB8ICAgNSArLQogZHJpdmVycy9jbGsvbW1wL2Nsay1mcmFjLmMg ICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBkcml2ZXJzL2Nsay9tbXAvY2xrLW1tcDIuYyAg ICAgICAgICAgICAgICAgICAgfCAgMTQgKy0KIGRyaXZlcnMvY2xrL21tcC9jbGstcHhhMTY4LmMg ICAgICAgICAgICAgICAgICB8ICAxMiArLQogZHJpdmVycy9jbGsvbW1wL2Nsay1weGE5MTAuYyAg ICAgICAgICAgICAgICAgIHwgIDEyICstCiBkcml2ZXJzL2Nsay9tbXAvY2xrLmggICAgICAgICAg ICAgICAgICAgICAgICAgfCAgIDggKy0KIGRyaXZlcnMvY2xrL212ZWJ1L2Nsay1jb3JlZGl2LmMg ICAgICAgICAgICAgICB8ICAgNCArLQogZHJpdmVycy9jbGsvbXZlYnUvY2xrLWNwdS5jICAgICAg ICAgICAgICAgICAgIHwgICA4ICstCiBkcml2ZXJzL2Nsay9tdmVidS9jb21tb24uYyAgICAgICAg ICAgICAgICAgICAgfCAgMTUgKy0KIGRyaXZlcnMvY2xrL212ZWJ1L2tpcmt3b29kLmMgICAgICAg ICAgICAgICAgICB8ICAgNiArLQogZHJpdmVycy9jbGsvbXhzL2Nsay1kaXYuYyAgICAgICAgICAg ICAgICAgICAgIHwgICA1ICstCiBkcml2ZXJzL2Nsay9teHMvY2xrLWZyYWMuYyAgICAgICAgICAg ICAgICAgICAgfCAgIDUgKy0KIGRyaXZlcnMvY2xrL214cy9jbGstaW14MjMuYyAgICAgICAgICAg ICAgICAgICB8ICAgNSArLQogZHJpdmVycy9jbGsvbXhzL2Nsay1pbXgyOC5jICAgICAgICAgICAg ICAgICAgIHwgICA1ICstCiBkcml2ZXJzL2Nsay9teHMvY2xrLXBsbC5jICAgICAgICAgICAgICAg ICAgICAgfCAgIDUgKy0KIGRyaXZlcnMvY2xrL214cy9jbGstcmVmLmMgICAgICAgICAgICAgICAg ICAgICB8ICAgNSArLQogZHJpdmVycy9jbGsvbXhzL2Nsay1zc3AuYyAgICAgICAgICAgICAgICAg ICAgIHwgICAzICstCiBkcml2ZXJzL2Nsay9teHMvY2xrLmggICAgICAgICAgICAgICAgICAgICAg ICAgfCAgMTcgKy0KIGRyaXZlcnMvY2xrL3Fjb20vY2xrLXJjZy5jICAgICAgICAgICAgICAgICAg ICB8ICAgOCArLQogZHJpdmVycy9jbGsvcWNvbS9jbGstcmNnMi5jICAgICAgICAgICAgICAgICAg IHwgIDE0ICstCiBkcml2ZXJzL2Nsay9xY29tL2Nsay1yZWdtYXAuYyAgICAgICAgICAgICAgICAg fCAgIDIgKy0KIGRyaXZlcnMvY2xrL3Fjb20vY2xrLXJlZ21hcC5oICAgICAgICAgICAgICAgICB8 ICAgMiArLQogZHJpdmVycy9jbGsvcWNvbS9jb21tb24uYyAgICAgICAgICAgICAgICAgICAgIHwg ICA2ICstCiBkcml2ZXJzL2Nsay9xY29tL2djYy1hcHE4MDg0LmMgICAgICAgICAgICAgICAgfCAg IDIgKy0KIGRyaXZlcnMvY2xrL3Fjb20vZ2NjLWlwcTgwNnguYyAgICAgICAgICAgICAgICB8ICAg MiArLQogZHJpdmVycy9jbGsvcWNvbS9nY2MtbXNtODY2MC5jICAgICAgICAgICAgICAgIHwgICAy ICstCiBkcml2ZXJzL2Nsay9xY29tL2djYy1tc204OTYwLmMgICAgICAgICAgICAgICAgfCAgIDIg Ky0KIGRyaXZlcnMvY2xrL3Fjb20vZ2NjLW1zbTg5NzQuYyAgICAgICAgICAgICAgICB8ICAgMiAr LQogZHJpdmVycy9jbGsvcWNvbS9tbWNjLW1zbTg5NjAuYyAgICAgICAgICAgICAgIHwgICA2ICst CiBkcml2ZXJzL2Nsay9yb2NrY2hpcC9jbGstcGxsLmMgICAgICAgICAgICAgICAgfCAgIDkgKy0K IGRyaXZlcnMvY2xrL3JvY2tjaGlwL2Nsay1yazMxODguYyAgICAgICAgICAgICB8ICAgMiArLQog ZHJpdmVycy9jbGsvcm9ja2NoaXAvY2xrLXJrMzI4OC5jICAgICAgICAgICAgIHwgICAyICstCiBk cml2ZXJzL2Nsay9yb2NrY2hpcC9jbGstcm9ja2NoaXAuYyAgICAgICAgICAgfCAgIDIgKy0KIGRy aXZlcnMvY2xrL3JvY2tjaGlwL2Nsay5jICAgICAgICAgICAgICAgICAgICB8ICAyMyArLQogZHJp dmVycy9jbGsvcm9ja2NoaXAvY2xrLmggICAgICAgICAgICAgICAgICAgIHwgICA1ICstCiBkcml2 ZXJzL2Nsay9zYW1zdW5nL2Nsay1leHlub3MtYXVkc3MuYyAgICAgICAgfCAgMTYgKy0KIGRyaXZl cnMvY2xrL3NhbXN1bmcvY2xrLWV4eW5vcy1jbGtvdXQuYyAgICAgICB8ICAgOSArLQogZHJpdmVy cy9jbGsvc2Ftc3VuZy9jbGstZXh5bm9zMzI1MC5jICAgICAgICAgIHwgICAxIC0KIGRyaXZlcnMv Y2xrL3NhbXN1bmcvY2xrLWV4eW5vczQuYyAgICAgICAgICAgICB8ICAgNyArLQogZHJpdmVycy9j bGsvc2Ftc3VuZy9jbGstZXh5bm9zNTI1MC5jICAgICAgICAgIHwgICAxIC0KIGRyaXZlcnMvY2xr L3NhbXN1bmcvY2xrLWV4eW5vczUyNjAuYyAgICAgICAgICB8ICAgMSAtCiBkcml2ZXJzL2Nsay9z YW1zdW5nL2Nsay1leHlub3M1NDEwLmMgICAgICAgICAgfCAgIDEgLQogZHJpdmVycy9jbGsvc2Ft c3VuZy9jbGstZXh5bm9zNTQyMC5jICAgICAgICAgIHwgICAxIC0KIGRyaXZlcnMvY2xrL3NhbXN1 bmcvY2xrLWV4eW5vczU0NDAuYyAgICAgICAgICB8ICAgMSAtCiBkcml2ZXJzL2Nsay9zYW1zdW5n L2Nsay1wbGwuYyAgICAgICAgICAgICAgICAgfCAgIDYgKy0KIGRyaXZlcnMvY2xrL3NhbXN1bmcv Y2xrLXBsbC5oICAgICAgICAgICAgICAgICB8ICAgMiArLQogZHJpdmVycy9jbGsvc2Ftc3VuZy9j bGstczNjMjQxMC1kY2xrLmMgICAgICAgIHwgIDMwICstLQogZHJpdmVycy9jbGsvc2Ftc3VuZy9j bGstczNjMjQxMC5jICAgICAgICAgICAgIHwgICAxIC0KIGRyaXZlcnMvY2xrL3NhbXN1bmcvY2xr LXMzYzI0MTIuYyAgICAgICAgICAgICB8ICAgMSAtCiBkcml2ZXJzL2Nsay9zYW1zdW5nL2Nsay1z M2MyNDQzLmMgICAgICAgICAgICAgfCAgIDEgLQogZHJpdmVycy9jbGsvc2Ftc3VuZy9jbGstczNj NjR4eC5jICAgICAgICAgICAgIHwgICAxIC0KIGRyaXZlcnMvY2xrL3NhbXN1bmcvY2xrLXM1cHYy MTAtYXVkc3MuYyAgICAgICB8ICAxNiArLQogZHJpdmVycy9jbGsvc2Ftc3VuZy9jbGstczVwdjIx MC5jICAgICAgICAgICAgIHwgICAxIC0KIGRyaXZlcnMvY2xrL3NhbXN1bmcvY2xrLmMgICAgICAg ICAgICAgICAgICAgICB8ICAyMiArLQogZHJpdmVycy9jbGsvc2Ftc3VuZy9jbGsuaCAgICAgICAg ICAgICAgICAgICAgIHwgICAzICstCiBkcml2ZXJzL2Nsay9zaG1vYmlsZS9jbGstZGl2Ni5jICAg ICAgICAgICAgICAgfCAgIDIgKy0KIGRyaXZlcnMvY2xrL3NobW9iaWxlL2Nsay1lbWV2Mi5jICAg ICAgICAgICAgICB8ICAgNCArLQogZHJpdmVycy9jbGsvc2htb2JpbGUvY2xrLW1zdHAuYyAgICAg ICAgICAgICAgIHwgICA2ICstCiBkcml2ZXJzL2Nsay9zaG1vYmlsZS9jbGstcjhhNzc0MC5jICAg ICAgICAgICAgfCAgIDYgKy0KIGRyaXZlcnMvY2xrL3NobW9iaWxlL2Nsay1yOGE3Nzc5LmMgICAg ICAgICAgICB8ICAgNiArLQogZHJpdmVycy9jbGsvc2htb2JpbGUvY2xrLXJjYXItZ2VuMi5jICAg ICAgICAgIHwgIDEwICstCiBkcml2ZXJzL2Nsay9zaG1vYmlsZS9jbGstcnouYyAgICAgICAgICAg ICAgICAgfCAgIDYgKy0KIGRyaXZlcnMvY2xrL3NpcmYvY2xrLWF0bGFzNi5jICAgICAgICAgICAg ICAgICB8ICAgMyArLQogZHJpdmVycy9jbGsvc2lyZi9jbGstY29tbW9uLmMgICAgICAgICAgICAg ICAgIHwgIDMwICstLQogZHJpdmVycy9jbGsvc2lyZi9jbGstcHJpbWEyLmMgICAgICAgICAgICAg ICAgIHwgICAzICstCiBkcml2ZXJzL2Nsay9zb2NmcGdhL2Nsay1nYXRlLmMgICAgICAgICAgICAg ICAgfCAgIDMgKy0KIGRyaXZlcnMvY2xrL3NvY2ZwZ2EvY2xrLXBlcmlwaC5jICAgICAgICAgICAg ICB8ICAgMyArLQogZHJpdmVycy9jbGsvc29jZnBnYS9jbGstcGxsLmMgICAgICAgICAgICAgICAg IHwgICA1ICstCiBkcml2ZXJzL2Nsay9zcGVhci9jbGstYXV4LXN5bnRoLmMgICAgICAgICAgICAg fCAgIDggKy0KIGRyaXZlcnMvY2xrL3NwZWFyL2Nsay1mcmFjLXN5bnRoLmMgICAgICAgICAgICB8 ICAgNCArLQogZHJpdmVycy9jbGsvc3BlYXIvY2xrLWdwdC1zeW50aC5jICAgICAgICAgICAgIHwg ICA0ICstCiBkcml2ZXJzL2Nsay9zcGVhci9jbGstdmNvLXBsbC5jICAgICAgICAgICAgICAgfCAg IDggKy0KIGRyaXZlcnMvY2xrL3NwZWFyL2Nsay5oICAgICAgICAgICAgICAgICAgICAgICB8ICAx NCArLQogZHJpdmVycy9jbGsvc3BlYXIvc3BlYXIxMzEwX2Nsb2NrLmMgICAgICAgICAgIHwgICAz ICstCiBkcml2ZXJzL2Nsay9zcGVhci9zcGVhcjEzNDBfY2xvY2suYyAgICAgICAgICAgfCAgIDMg Ky0KIGRyaXZlcnMvY2xrL3NwZWFyL3NwZWFyM3h4X2Nsb2NrLmMgICAgICAgICAgICB8ICAxNyAr LQogZHJpdmVycy9jbGsvc3BlYXIvc3BlYXI2eHhfY2xvY2suYyAgICAgICAgICAgIHwgICAzICst CiBkcml2ZXJzL2Nsay9zdC9jbGstZmxleGdlbi5jICAgICAgICAgICAgICAgICAgfCAgMTIgKy0K IGRyaXZlcnMvY2xrL3N0L2Nsa2dlbi1mc3luLmMgICAgICAgICAgICAgICAgICB8ICAyMiArLQog ZHJpdmVycy9jbGsvc3QvY2xrZ2VuLW11eC5jICAgICAgICAgICAgICAgICAgIHwgIDMyICstLQog ZHJpdmVycy9jbGsvc3QvY2xrZ2VuLXBsbC5jICAgICAgICAgICAgICAgICAgIHwgIDM0ICstLQog ZHJpdmVycy9jbGsvc3VueGkvY2xrLWExMC1ob3NjLmMgICAgICAgICAgICAgIHwgICAyICstCiBk cml2ZXJzL2Nsay9zdW54aS9jbGstYTIwLWdtYWMuYyAgICAgICAgICAgICAgfCAgIDIgKy0KIGRy aXZlcnMvY2xrL3N1bnhpL2Nsay1mYWN0b3JzLmMgICAgICAgICAgICAgICB8ICAgNCArLQogZHJp dmVycy9jbGsvc3VueGkvY2xrLXN1bjZpLWFwYjAtZ2F0ZXMuYyAgICAgIHwgICAyICstCiBkcml2 ZXJzL2Nsay9zdW54aS9jbGstc3VuNmktYXBiMC5jICAgICAgICAgICAgfCAgIDIgKy0KIGRyaXZl cnMvY2xrL3N1bnhpL2Nsay1zdW42aS1hcjEwMC5jICAgICAgICAgICB8ICAgNiArLQogZHJpdmVy cy9jbGsvc3VueGkvY2xrLXN1bjhpLWFwYjAuYyAgICAgICAgICAgIHwgICAyICstCiBkcml2ZXJz L2Nsay9zdW54aS9jbGstc3VueGkuYyAgICAgICAgICAgICAgICAgfCAgMTggKy0KIGRyaXZlcnMv Y2xrL3RlZ3JhL2Nsay1hdWRpby1zeW5jLmMgICAgICAgICAgICB8ICAgNCArLQogZHJpdmVycy9j bGsvdGVncmEvY2xrLWRpdmlkZXIuYyAgICAgICAgICAgICAgIHwgICA1ICstCiBkcml2ZXJzL2Ns ay90ZWdyYS9jbGstcGVyaXBoLWdhdGUuYyAgICAgICAgICAgfCAgIDUgKy0KIGRyaXZlcnMvY2xr L3RlZ3JhL2Nsay1wZXJpcGguYyAgICAgICAgICAgICAgICB8ICAgOSArLQogZHJpdmVycy9jbGsv dGVncmEvY2xrLXBsbC1vdXQuYyAgICAgICAgICAgICAgIHwgICA1ICstCiBkcml2ZXJzL2Nsay90 ZWdyYS9jbGstcGxsLmMgICAgICAgICAgICAgICAgICAgfCAgNDEgKystCiBkcml2ZXJzL2Nsay90 ZWdyYS9jbGstc3VwZXIuYyAgICAgICAgICAgICAgICAgfCAgIDUgKy0KIGRyaXZlcnMvY2xrL3Rl Z3JhL2Nsay10ZWdyYS1hdWRpby5jICAgICAgICAgICB8ICAgNSArLQogZHJpdmVycy9jbGsvdGVn cmEvY2xrLXRlZ3JhLWZpeGVkLmMgICAgICAgICAgIHwgICA5ICstCiBkcml2ZXJzL2Nsay90ZWdy YS9jbGstdGVncmEtcGVyaXBoLmMgICAgICAgICAgfCAgMTMgKy0KIGRyaXZlcnMvY2xrL3RlZ3Jh L2Nsay10ZWdyYS1wbWMuYyAgICAgICAgICAgICB8ICAgNSArLQogZHJpdmVycy9jbGsvdGVncmEv Y2xrLXRlZ3JhLXN1cGVyLWdlbjQuYyAgICAgIHwgICA5ICstCiBkcml2ZXJzL2Nsay90ZWdyYS9j bGstdGVncmExMTQuYyAgICAgICAgICAgICAgfCAgMTEgKy0KIGRyaXZlcnMvY2xrL3RlZ3JhL2Ns ay10ZWdyYTEyNC5jICAgICAgICAgICAgICB8ICAgNyArLQogZHJpdmVycy9jbGsvdGVncmEvY2xr LXRlZ3JhMjAuYyAgICAgICAgICAgICAgIHwgIDEzICstCiBkcml2ZXJzL2Nsay90ZWdyYS9jbGst dGVncmEzMC5jICAgICAgICAgICAgICAgfCAgIDkgKy0KIGRyaXZlcnMvY2xrL3RlZ3JhL2Nsay5j ICAgICAgICAgICAgICAgICAgICAgICB8ICAyNSArLQogZHJpdmVycy9jbGsvdGVncmEvY2xrLmgg ICAgICAgICAgICAgICAgICAgICAgIHwgIDM4ICstLQogZHJpdmVycy9jbGsvdGkvYXBsbC5jICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICA4ICstCiBkcml2ZXJzL2Nsay90aS9jbGstMnh4eC5j ICAgICAgICAgICAgICAgICAgICAgfCAgIDggKy0KIGRyaXZlcnMvY2xrL3RpL2Nsay0zM3h4LmMg ICAgICAgICAgICAgICAgICAgICB8ICAxOCArLQogZHJpdmVycy9jbGsvdGkvY2xrLTN4eHguYyAg ICAgICAgICAgICAgICAgICAgIHwgICA4ICstCiBkcml2ZXJzL2Nsay90aS9jbGstNDN4eC5jICAg ICAgICAgICAgICAgICAgICAgfCAgIDggKy0KIGRyaXZlcnMvY2xrL3RpL2Nsay00NHh4LmMgICAg ICAgICAgICAgICAgICAgICB8ICAxNiArLQogZHJpdmVycy9jbGsvdGkvY2xrLTU0eHguYyAgICAg ICAgICAgICAgICAgICAgIHwgIDI1ICstCiBkcml2ZXJzL2Nsay90aS9jbGstN3h4LmMgICAgICAg ICAgICAgICAgICAgICAgfCAgMjggKy0KIGRyaXZlcnMvY2xrL3RpL2Nsay1kcmE3LWF0bC5jICAg ICAgICAgICAgICAgICB8ICAgNiArLQogZHJpdmVycy9jbGsvdGkvY2xrLmMgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAyICstCiBkcml2ZXJzL2Nsay90aS9jbG9ja2RvbWFpbi5jICAgICAg ICAgICAgICAgICAgfCAgIDQgKy0KIGRyaXZlcnMvY2xrL3RpL2NvbXBvc2l0ZS5jICAgICAgICAg ICAgICAgICAgICB8ICAgMiArLQogZHJpdmVycy9jbGsvdGkvZGl2aWRlci5jICAgICAgICAgICAg ICAgICAgICAgIHwgICA2ICstCiBkcml2ZXJzL2Nsay90aS9kcGxsLmMgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgIDggKy0KIGRyaXZlcnMvY2xrL3RpL2ZpeGVkLWZhY3Rvci5jICAgICAgICAg ICAgICAgICB8ICAgMiArLQogZHJpdmVycy9jbGsvdGkvZ2F0ZS5jICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAyICstCiBkcml2ZXJzL2Nsay90aS9pbnRlcmZhY2UuYyAgICAgICAgICAgICAg ICAgICAgfCAgIDIgKy0KIGRyaXZlcnMvY2xrL3RpL211eC5jICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgNiArLQogZHJpdmVycy9jbGsvdXg1MDAvYWJ4NTAwLWNsay5jICAgICAgICAgICAg ICAgIHwgICAzICstCiBkcml2ZXJzL2Nsay91eDUwMC9jbGstcHJjYy5jICAgICAgICAgICAgICAg ICAgfCAgIDggKy0KIGRyaXZlcnMvY2xrL3V4NTAwL2Nsay1wcmNtdS5jICAgICAgICAgICAgICAg ICB8ICAxNiArLQogZHJpdmVycy9jbGsvdXg1MDAvY2xrLXN5c2N0cmwuYyAgICAgICAgICAgICAg IHwgIDEwICstCiBkcml2ZXJzL2Nsay91eDUwMC9jbGsuaCAgICAgICAgICAgICAgICAgICAgICAg fCAgMjMgKy0KIGRyaXZlcnMvY2xrL3V4NTAwL3U4NTAwX2Nsay5jICAgICAgICAgICAgICAgICB8 ICAgMyArLQogZHJpdmVycy9jbGsvdXg1MDAvdTg1MDBfb2ZfY2xrLmMgICAgICAgICAgICAgIHwg IDEzICstCiBkcml2ZXJzL2Nsay91eDUwMC91ODU0MF9jbGsuYyAgICAgICAgICAgICAgICAgfCAg IDMgKy0KIGRyaXZlcnMvY2xrL3V4NTAwL3U5NTQwX2Nsay5jICAgICAgICAgICAgICAgICB8ICAg MSAtCiBkcml2ZXJzL2Nsay92ZXJzYXRpbGUvY2xrLWljc3QuYyAgICAgICAgICAgICAgfCAgIDUg Ky0KIGRyaXZlcnMvY2xrL3ZlcnNhdGlsZS9jbGstaWNzdC5oICAgICAgICAgICAgICB8ICAgMiAr LQogZHJpdmVycy9jbGsvdmVyc2F0aWxlL2Nsay1pbXBkMS5jICAgICAgICAgICAgIHwgIDE5ICst CiBkcml2ZXJzL2Nsay92ZXJzYXRpbGUvY2xrLXJlYWx2aWV3LmMgICAgICAgICAgfCAgIDMgKy0K IGRyaXZlcnMvY2xrL3ZlcnNhdGlsZS9jbGstc3A4MTAuYyAgICAgICAgICAgICB8ICAzMCArKy0K IGRyaXZlcnMvY2xrL3ZlcnNhdGlsZS9jbGstdmVyc2F0aWxlLmMgICAgICAgICB8ICAgMyArLQog ZHJpdmVycy9jbGsvdmVyc2F0aWxlL2Nsay12ZXhwcmVzcy1vc2MuYyAgICAgIHwgICAyICstCiBk cml2ZXJzL2Nsay92ZXJzYXRpbGUvY2xrLXZleHByZXNzLmMgICAgICAgICAgfCAgIDYgKy0KIGRy aXZlcnMvY2xrL3g4Ni9jbGstbHB0LmMgICAgICAgICAgICAgICAgICAgICB8ICAgMyArLQogZHJp dmVycy9jbGsvenlucS9jbGtjLmMgICAgICAgICAgICAgICAgICAgICAgIHwgIDIyICstCiBkcml2 ZXJzL2Nsay96eW5xL3BsbC5jICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIGRyaXZl cnMvZ3B1L2RybS9tc20vaGRtaS9oZG1pX3BoeV84OTYwLmMgICAgICB8ICAgMyArLQogZHJpdmVy cy9tZWRpYS9wbGF0Zm9ybS9leHlub3M0LWlzL21lZGlhLWRldi5jIHwgIDE3ICstCiBkcml2ZXJz L21lZGlhL3BsYXRmb3JtL2V4eW5vczQtaXMvbWVkaWEtZGV2LmggfCAgIDcgKy0KIGRyaXZlcnMv bWVkaWEvcGxhdGZvcm0vb21hcDNpc3AvaXNwLmggICAgICAgICB8ICAgMiArLQogZHJpdmVycy9y dGMvcnRjLWh5bTg1NjMuYyAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBkcml2ZXJzL3Nw aS9zcGktcHhhMnh4LXBjaS5jICAgICAgICAgICAgICAgICAgfCAgIDEgLQogZHJpdmVycy9zdGFn aW5nL2lteC1kcm0vaW14LXR2ZS5jICAgICAgICAgICAgIHwgIDI3ICstCiBpbmNsdWRlL2FzbS1n ZW5lcmljL2Nsa2Rldi5oICAgICAgICAgICAgICAgICAgfCAgIDYgKy0KIGluY2x1ZGUvbGludXgv Y2xrL3RpLmggICAgICAgICAgICAgICAgICAgICAgICB8ICAxMCArLQogaW5jbHVkZS9saW51eC9j bGsvenlucS5oICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBpbmNsdWRlL2xpbnV4L3Bs YXRmb3JtX2RhdGEvc2k1MzUxLmggICAgICAgICAgfCAgIDQgKy0KIHNvdW5kL3NvYy9teHMvbXhz LXNhaWYuYyAgICAgICAgICAgICAgICAgICAgICB8ICAgNCArLQogMjczIGZpbGVzIGNoYW5nZWQs IDE1MjggaW5zZXJ0aW9ucygrKSwgMTU3NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9hcmNo L2FybS9tYWNoLWRvdmUvY29tbW9uLmMgYi9hcmNoL2FybS9tYWNoLWRvdmUvY29tbW9uLmMKaW5k ZXggMGQxYTg5Mi4uNGQ5NTY4NSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1kb3ZlL2NvbW1v bi5jCisrKyBiL2FyY2gvYXJtL21hY2gtZG92ZS9jb21tb24uYwpAQCAtNzEsOSArNzEsOSBAQCB2 b2lkIF9faW5pdCBkb3ZlX21hcF9pbyh2b2lkKQogc3RhdGljIGludCBkb3ZlX3RjbGs7CiAKIHN0 YXRpYyBERUZJTkVfU1BJTkxPQ0soZ2F0aW5nX2xvY2spOwotc3RhdGljIHN0cnVjdCBjbGsgKnRj bGs7CitzdGF0aWMgc3RydWN0IGNsa19jb3JlICp0Y2xrOwogCi1zdGF0aWMgc3RydWN0IGNsayBf X2luaXQgKmRvdmVfcmVnaXN0ZXJfZ2F0ZShjb25zdCBjaGFyICpuYW1lLAorc3RhdGljIHN0cnVj dCBjbGtfY29yZSBfX2luaXQgKmRvdmVfcmVnaXN0ZXJfZ2F0ZShjb25zdCBjaGFyICpuYW1lLAog CQkJCQkgICAgIGNvbnN0IGNoYXIgKnBhcmVudCwgdTggYml0X2lkeCkKIHsKIAlyZXR1cm4gY2xr X3JlZ2lzdGVyX2dhdGUoTlVMTCwgbmFtZSwgcGFyZW50LCAwLApAQCAtODMsOSArODMsOSBAQCBz dGF0aWMgc3RydWN0IGNsayBfX2luaXQgKmRvdmVfcmVnaXN0ZXJfZ2F0ZShjb25zdCBjaGFyICpu YW1lLAogCiBzdGF0aWMgdm9pZCBfX2luaXQgZG92ZV9jbGtfaW5pdCh2b2lkKQogewotCXN0cnVj dCBjbGsgKnVzYjAsICp1c2IxLCAqc2F0YSwgKnBleDAsICpwZXgxLCAqc2RpbzAsICpzZGlvMTsK LQlzdHJ1Y3QgY2xrICpuYW5kLCAqY2FtZXJhLCAqaTJzMCwgKmkyczEsICpjcnlwdG8sICphYzk3 LCAqcGRtYTsKLQlzdHJ1Y3QgY2xrICp4b3IwLCAqeG9yMSwgKmdlLCAqZ2VwaHk7CisJc3RydWN0 IGNsa19jb3JlICp1c2IwLCAqdXNiMSwgKnNhdGEsICpwZXgwLCAqcGV4MSwgKnNkaW8wLCAqc2Rp bzE7CisJc3RydWN0IGNsa19jb3JlICpuYW5kLCAqY2FtZXJhLCAqaTJzMCwgKmkyczEsICpjcnlw dG8sICphYzk3LCAqcGRtYTsKKwlzdHJ1Y3QgY2xrX2NvcmUgKnhvcjAsICp4b3IxLCAqZ2UsICpn ZXBoeTsKIAogCXRjbGsgPSBjbGtfcmVnaXN0ZXJfZml4ZWRfcmF0ZShOVUxMLCAidGNsayIsIE5V TEwsIENMS19JU19ST09ULAogCQkJCSAgICAgICBkb3ZlX3RjbGspOwpkaWZmIC0tZ2l0IGEvYXJj aC9hcm0vbWFjaC1pbXgvY2xrLWJ1c3kuYyBiL2FyY2gvYXJtL21hY2gtaW14L2Nsay1idXN5LmMK aW5kZXggNGJiMWJjNC4uYmIzZWRjNSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1pbXgvY2xr LWJ1c3kuYworKysgYi9hcmNoL2FybS9tYWNoLWlteC9jbGstYnVzeS5jCkBAIC0xMCw3ICsxMCw2 IEBACiAgKiBodHRwOi8vd3d3LmdudS5vcmcvY29weWxlZnQvZ3BsLmh0bWwKICAqLwogCi0jaW5j bHVkZSA8bGludXgvY2xrLmg+CiAjaW5jbHVkZSA8bGludXgvY2xrLXByb3ZpZGVyLmg+CiAjaW5j bHVkZSA8bGludXgvaW8uaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CkBAIC03OCwxMiArNzcs MTIgQEAgc3RhdGljIHN0cnVjdCBjbGtfb3BzIGNsa19idXN5X2RpdmlkZXJfb3BzID0gewogCS5z ZXRfcmF0ZSA9IGNsa19idXN5X2RpdmlkZXJfc2V0X3JhdGUsCiB9OwogCi1zdHJ1Y3QgY2xrICpp bXhfY2xrX2J1c3lfZGl2aWRlcihjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpwYXJlbnRf bmFtZSwKK3N0cnVjdCBjbGtfY29yZSAqaW14X2Nsa19idXN5X2RpdmlkZXIoY29uc3QgY2hhciAq bmFtZSwgY29uc3QgY2hhciAqcGFyZW50X25hbWUsCiAJCQkJIHZvaWQgX19pb21lbSAqcmVnLCB1 OCBzaGlmdCwgdTggd2lkdGgsCiAJCQkJIHZvaWQgX19pb21lbSAqYnVzeV9yZWcsIHU4IGJ1c3lf c2hpZnQpCiB7CiAJc3RydWN0IGNsa19idXN5X2RpdmlkZXIgKmJ1c3k7Ci0Jc3RydWN0IGNsayAq Y2xrOworCXN0cnVjdCBjbGtfY29yZSAqY2xrOwogCXN0cnVjdCBjbGtfaW5pdF9kYXRhIGluaXQ7 CiAKIAlidXN5ID0ga3phbGxvYyhzaXplb2YoKmJ1c3kpLCBHRlBfS0VSTkVMKTsKQEAgLTE1Miwx MiArMTUxLDEyIEBAIHN0YXRpYyBzdHJ1Y3QgY2xrX29wcyBjbGtfYnVzeV9tdXhfb3BzID0gewog CS5zZXRfcGFyZW50ID0gY2xrX2J1c3lfbXV4X3NldF9wYXJlbnQsCiB9OwogCi1zdHJ1Y3QgY2xr ICppbXhfY2xrX2J1c3lfbXV4KGNvbnN0IGNoYXIgKm5hbWUsIHZvaWQgX19pb21lbSAqcmVnLCB1 OCBzaGlmdCwKK3N0cnVjdCBjbGtfY29yZSAqaW14X2Nsa19idXN5X211eChjb25zdCBjaGFyICpu YW1lLCB2b2lkIF9faW9tZW0gKnJlZywgdTggc2hpZnQsCiAJCQkgICAgIHU4IHdpZHRoLCB2b2lk IF9faW9tZW0gKmJ1c3lfcmVnLCB1OCBidXN5X3NoaWZ0LAogCQkJICAgICBjb25zdCBjaGFyICoq cGFyZW50X25hbWVzLCBpbnQgbnVtX3BhcmVudHMpCiB7CiAJc3RydWN0IGNsa19idXN5X211eCAq YnVzeTsKLQlzdHJ1Y3QgY2xrICpjbGs7CisJc3RydWN0IGNsa19jb3JlICpjbGs7CiAJc3RydWN0 IGNsa19pbml0X2RhdGEgaW5pdDsKIAogCWJ1c3kgPSBremFsbG9jKHNpemVvZigqYnVzeSksIEdG UF9LRVJORUwpOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1pbXgvY2xrLWZpeHVwLWRpdi5j IGIvYXJjaC9hcm0vbWFjaC1pbXgvY2xrLWZpeHVwLWRpdi5jCmluZGV4IDIxZGIwMjAuLjhhNjJi ZmQgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtaW14L2Nsay1maXh1cC1kaXYuYworKysgYi9h cmNoL2FybS9tYWNoLWlteC9jbGstZml4dXAtZGl2LmMKQEAgLTkyLDEyICs5MiwxMiBAQCBzdGF0 aWMgY29uc3Qgc3RydWN0IGNsa19vcHMgY2xrX2ZpeHVwX2Rpdl9vcHMgPSB7CiAJLnNldF9yYXRl ID0gY2xrX2ZpeHVwX2Rpdl9zZXRfcmF0ZSwKIH07CiAKLXN0cnVjdCBjbGsgKmlteF9jbGtfZml4 dXBfZGl2aWRlcihjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpwYXJlbnQsCitzdHJ1Y3Qg Y2xrX2NvcmUgKmlteF9jbGtfZml4dXBfZGl2aWRlcihjb25zdCBjaGFyICpuYW1lLCBjb25zdCBj aGFyICpwYXJlbnQsCiAJCQkJICB2b2lkIF9faW9tZW0gKnJlZywgdTggc2hpZnQsIHU4IHdpZHRo LAogCQkJCSAgdm9pZCAoKmZpeHVwKSh1MzIgKnZhbCkpCiB7CiAJc3RydWN0IGNsa19maXh1cF9k aXYgKmZpeHVwX2RpdjsKLQlzdHJ1Y3QgY2xrICpjbGs7CisJc3RydWN0IGNsa19jb3JlICpjbGs7 CiAJc3RydWN0IGNsa19pbml0X2RhdGEgaW5pdDsKIAogCWlmICghZml4dXApCmRpZmYgLS1naXQg YS9hcmNoL2FybS9tYWNoLWlteC9jbGstZml4dXAtbXV4LmMgYi9hcmNoL2FybS9tYWNoLWlteC9j bGstZml4dXAtbXV4LmMKaW5kZXggMGQ0MGIzNS4uZTI5ZGM2MiAxMDA2NDQKLS0tIGEvYXJjaC9h cm0vbWFjaC1pbXgvY2xrLWZpeHVwLW11eC5jCisrKyBiL2FyY2gvYXJtL21hY2gtaW14L2Nsay1m aXh1cC1tdXguYwpAQCAtNzEsMTIgKzcxLDEyIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrX29w cyBjbGtfZml4dXBfbXV4X29wcyA9IHsKIAkuc2V0X3BhcmVudCA9IGNsa19maXh1cF9tdXhfc2V0 X3BhcmVudCwKIH07CiAKLXN0cnVjdCBjbGsgKmlteF9jbGtfZml4dXBfbXV4KGNvbnN0IGNoYXIg Km5hbWUsIHZvaWQgX19pb21lbSAqcmVnLAorc3RydWN0IGNsa19jb3JlICppbXhfY2xrX2ZpeHVw X211eChjb25zdCBjaGFyICpuYW1lLCB2b2lkIF9faW9tZW0gKnJlZywKIAkJCSAgICAgIHU4IHNo aWZ0LCB1OCB3aWR0aCwgY29uc3QgY2hhciAqKnBhcmVudHMsCiAJCQkgICAgICBpbnQgbnVtX3Bh cmVudHMsIHZvaWQgKCpmaXh1cCkodTMyICp2YWwpKQogewogCXN0cnVjdCBjbGtfZml4dXBfbXV4 ICpmaXh1cF9tdXg7Ci0Jc3RydWN0IGNsayAqY2xrOworCXN0cnVjdCBjbGtfY29yZSAqY2xrOwog CXN0cnVjdCBjbGtfaW5pdF9kYXRhIGluaXQ7CiAKIAlpZiAoIWZpeHVwKQpkaWZmIC0tZ2l0IGEv YXJjaC9hcm0vbWFjaC1pbXgvY2xrLWdhdGUtZXhjbHVzaXZlLmMgYi9hcmNoL2FybS9tYWNoLWlt eC9jbGstZ2F0ZS1leGNsdXNpdmUuYwppbmRleCBjMTJmNWYyLi5iMDM2NjQ2IDEwMDY0NAotLS0g YS9hcmNoL2FybS9tYWNoLWlteC9jbGstZ2F0ZS1leGNsdXNpdmUuYworKysgYi9hcmNoL2FybS9t YWNoLWlteC9jbGstZ2F0ZS1leGNsdXNpdmUuYwpAQCAtNTgsMTIgKzU4LDEyIEBAIHN0YXRpYyBj b25zdCBzdHJ1Y3QgY2xrX29wcyBjbGtfZ2F0ZV9leGNsdXNpdmVfb3BzID0gewogCS5pc19lbmFi bGVkID0gY2xrX2dhdGVfZXhjbHVzaXZlX2lzX2VuYWJsZWQsCiB9OwogCi1zdHJ1Y3QgY2xrICpp bXhfY2xrX2dhdGVfZXhjbHVzaXZlKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnBhcmVu dCwKK3N0cnVjdCBjbGtfY29yZSAqaW14X2Nsa19nYXRlX2V4Y2x1c2l2ZShjb25zdCBjaGFyICpu YW1lLCBjb25zdCBjaGFyICpwYXJlbnQsCiAJIHZvaWQgX19pb21lbSAqcmVnLCB1OCBzaGlmdCwg dTMyIGV4Y2x1c2l2ZV9tYXNrKQogewogCXN0cnVjdCBjbGtfZ2F0ZV9leGNsdXNpdmUgKmV4Z2F0 ZTsKIAlzdHJ1Y3QgY2xrX2dhdGUgKmdhdGU7Ci0Jc3RydWN0IGNsayAqY2xrOworCXN0cnVjdCBj bGtfY29yZSAqY2xrOwogCXN0cnVjdCBjbGtfaW5pdF9kYXRhIGluaXQ7CiAKIAlpZiAoZXhjbHVz aXZlX21hc2sgPT0gMCkKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtaW14L2Nsay1nYXRlMi5j IGIvYXJjaC9hcm0vbWFjaC1pbXgvY2xrLWdhdGUyLmMKaW5kZXggODRhY2RmZC4uZDc4ZjQwOSAx MDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1pbXgvY2xrLWdhdGUyLmMKKysrIGIvYXJjaC9hcm0v bWFjaC1pbXgvY2xrLWdhdGUyLmMKQEAgLTEwOCwxNCArMTA4LDE0IEBAIHN0YXRpYyBzdHJ1Y3Qg Y2xrX29wcyBjbGtfZ2F0ZTJfb3BzID0gewogCS5pc19lbmFibGVkID0gY2xrX2dhdGUyX2lzX2Vu YWJsZWQsCiB9OwogCi1zdHJ1Y3QgY2xrICpjbGtfcmVnaXN0ZXJfZ2F0ZTIoc3RydWN0IGRldmlj ZSAqZGV2LCBjb25zdCBjaGFyICpuYW1lLAorc3RydWN0IGNsa19jb3JlICpjbGtfcmVnaXN0ZXJf Z2F0ZTIoc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCBjaGFyICpuYW1lLAogCQljb25zdCBjaGFy ICpwYXJlbnRfbmFtZSwgdW5zaWduZWQgbG9uZyBmbGFncywKIAkJdm9pZCBfX2lvbWVtICpyZWcs IHU4IGJpdF9pZHgsCiAJCXU4IGNsa19nYXRlMl9mbGFncywgc3BpbmxvY2tfdCAqbG9jaywKIAkJ dW5zaWduZWQgaW50ICpzaGFyZV9jb3VudCkKIHsKIAlzdHJ1Y3QgY2xrX2dhdGUyICpnYXRlOwot CXN0cnVjdCBjbGsgKmNsazsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmNsazsKIAlzdHJ1Y3QgY2xrX2lu aXRfZGF0YSBpbml0OwogCiAJZ2F0ZSA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBjbGtfZ2F0ZTIp LCBHRlBfS0VSTkVMKTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtaW14L2Nsay1pbXgxLmMg Yi9hcmNoL2FybS9tYWNoLWlteC9jbGstaW14MS5jCmluZGV4IDM3YzMwN2EuLjg0NTliZDcgMTAw NjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtaW14L2Nsay1pbXgxLmMKKysrIGIvYXJjaC9hcm0vbWFj aC1pbXgvY2xrLWlteDEuYwpAQCAtMTUsNyArMTUsNiBAQAogICogNTEgRnJhbmtsaW4gU3QsIEZp ZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqLwogCi0jaW5jbHVkZSA8 bGludXgvY2xrLmg+CiAjaW5jbHVkZSA8bGludXgvY2xrZGV2Lmg+CiAjaW5jbHVkZSA8bGludXgv Y2xrLXByb3ZpZGVyLmg+CiAjaW5jbHVkZSA8bGludXgvZXJyLmg+CkBAIC0zMiw3ICszMSw3IEBA IHN0YXRpYyBjb25zdCBjaGFyICpwcmVtX3NlbF9jbGtzW10gPSB7ICJjbGszMl9wcmVtdWx0Iiwg ImNsazE2bSIsIH07CiBzdGF0aWMgY29uc3QgY2hhciAqY2xrb19zZWxfY2xrc1tdID0geyAicGVy MSIsICJoY2xrIiwgImNsazQ4bSIsICJjbGsxNm0iLAogCQkJCSAgICAgICAicHJlbSIsICJmY2xr IiwgfTsKIAotc3RhdGljIHN0cnVjdCBjbGsgKmNsa1tJTVgxX0NMS19NQVhdOworc3RhdGljIHN0 cnVjdCBjbGtfY29yZSAqY2xrW0lNWDFfQ0xLX01BWF07CiBzdGF0aWMgc3RydWN0IGNsa19vbmVj ZWxsX2RhdGEgY2xrX2RhdGE7CiAKIHN0YXRpYyB2b2lkIF9faW9tZW0gKmNjbSBfX2luaXRkYXRh OwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1pbXgvY2xrLWlteDIxLmMgYi9hcmNoL2FybS9t YWNoLWlteC9jbGstaW14MjEuYwppbmRleCA0YjRjNzUzLi41NmQ3OTljIDEwMDY0NAotLS0gYS9h cmNoL2FybS9tYWNoLWlteC9jbGstaW14MjEuYworKysgYi9hcmNoL2FybS9tYWNoLWlteC9jbGst aW14MjEuYwpAQCAtOSw3ICs5LDYgQEAKICAqIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogICovCiAKLSNpbmNsdWRlIDxsaW51eC9jbGsuaD4K ICNpbmNsdWRlIDxsaW51eC9jbGstcHJvdmlkZXIuaD4KICNpbmNsdWRlIDxsaW51eC9jbGtkZXYu aD4KICNpbmNsdWRlIDxsaW51eC9vZi5oPgpAQCAtMzYsNyArMzUsNyBAQCBzdGF0aWMgY29uc3Qg Y2hhciAqbXBsbF9zZWxfY2xrc1tdID0geyAiZnBtX2dhdGUiLCAibXBsbF9vc2Nfc2VsIiwgfTsK IHN0YXRpYyBjb25zdCBjaGFyICpzcGxsX3NlbF9jbGtzW10gPSB7ICJmcG1fZ2F0ZSIsICJtcGxs X29zY19zZWwiLCB9Owogc3RhdGljIGNvbnN0IGNoYXIgKnNzaV9zZWxfY2xrc1tdID0geyAic3Bs bF9nYXRlIiwgIm1wbGxfZ2F0ZSIsIH07CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrICpjbGtbSU1YMjFf Q0xLX01BWF07CitzdGF0aWMgc3RydWN0IGNsa19jb3JlICpjbGtbSU1YMjFfQ0xLX01BWF07CiBz dGF0aWMgc3RydWN0IGNsa19vbmVjZWxsX2RhdGEgY2xrX2RhdGE7CiAKIHN0YXRpYyB2b2lkIF9f aW5pdCBfbXgyMV9jbG9ja3NfaW5pdCh1bnNpZ25lZCBsb25nIGxyZWYsIHVuc2lnbmVkIGxvbmcg aHJlZikKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtaW14L2Nsay1pbXgyNS5jIGIvYXJjaC9h cm0vbWFjaC1pbXgvY2xrLWlteDI1LmMKaW5kZXggNTljMGM4NS4uMDZkMmM3MiAxMDA2NDQKLS0t IGEvYXJjaC9hcm0vbWFjaC1pbXgvY2xrLWlteDI1LmMKKysrIGIvYXJjaC9hcm0vbWFjaC1pbXgv Y2xrLWlteDI1LmMKQEAgLTE5LDcgKzE5LDYgQEAKICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4K ICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvbGlzdC5oPgotI2luY2x1 ZGUgPGxpbnV4L2Nsay5oPgogI2luY2x1ZGUgPGxpbnV4L2lvLmg+CiAjaW5jbHVkZSA8bGludXgv Y2xrZGV2Lmg+CiAjaW5jbHVkZSA8bGludXgvZXJyLmg+CkBAIC04Nyw3ICs4Niw3IEBAIGVudW0g bXgyNV9jbGtzIHsKIAl3ZHRfaXBnLCBja29fZGl2LCBja29fc2VsLCBja28sIGNsa19tYXgKIH07 CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrICpjbGtbY2xrX21heF07CitzdGF0aWMgc3RydWN0IGNsa19j b3JlICpjbGtbY2xrX21heF07CiAKIHN0YXRpYyBpbnQgX19pbml0IF9fbXgyNV9jbG9ja3NfaW5p dCh1bnNpZ25lZCBsb25nIG9zY19yYXRlLAogCQkJCSAgICAgdm9pZCBfX2lvbWVtICpjY21fYmFz ZSkKQEAgLTIyNSwxNiArMjI0LDE2IEBAIHN0YXRpYyBpbnQgX19pbml0IF9fbXgyNV9jbG9ja3Nf aW5pdCh1bnNpZ25lZCBsb25nIG9zY19yYXRlLAogCiAJaW14X2NoZWNrX2Nsb2NrcyhjbGssIEFS UkFZX1NJWkUoY2xrKSk7CiAKLQljbGtfcHJlcGFyZV9lbmFibGUoY2xrW2VtaV9haGJdKTsKKwlj bGtfcHJvdmlkZXJfcHJlcGFyZV9lbmFibGUoY2xrW2VtaV9haGJdKTsKIAogCS8qIENsb2NrIHNv dXJjZSBmb3IgZ3B0IG11c3QgYmUgZGVyaXZlZCBmcm9tIEFIQiAqLwotCWNsa19zZXRfcGFyZW50 KGNsa1twZXI1X3NlbF0sIGNsa1thaGJdKTsKKwljbGtfcHJvdmlkZXJfc2V0X3BhcmVudChjbGtb cGVyNV9zZWxdLCBjbGtbYWhiXSk7CiAKIAkvKgogCSAqIExldCdzIGluaXRpYWxseSBzZXQgdXAg Q0xLTyBwYXJlbnQgYXMgaXBnLCBzaW5jZSB0aGlzIGNvbmZpZ3VyYXRpb24KIAkgKiBpcyB1c2Vk IG9uIHNvbWUgaW14MjUgYm9hcmQgZGVzaWducyB0byBjbG9jayB0aGUgYXVkaW8gY29kZWMuCiAJ ICovCi0JY2xrX3NldF9wYXJlbnQoY2xrW2Nrb19zZWxdLCBjbGtbaXBnXSk7CisJY2xrX3Byb3Zp ZGVyX3NldF9wYXJlbnQoY2xrW2Nrb19zZWxdLCBjbGtbaXBnXSk7CiAKIAlyZXR1cm4gMDsKIH0K ZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtaW14L2Nsay1pbXgyNy5jIGIvYXJjaC9hcm0vbWFj aC1pbXgvY2xrLWlteDI3LmMKaW5kZXggYWI2MzQ5ZS4uN2IwZjAxYyAxMDA2NDQKLS0tIGEvYXJj aC9hcm0vbWFjaC1pbXgvY2xrLWlteDI3LmMKKysrIGIvYXJjaC9hcm0vbWFjaC1pbXgvY2xrLWlt eDI3LmMKQEAgLTEsNCArMSwzIEBACi0jaW5jbHVkZSA8bGludXgvY2xrLmg+CiAjaW5jbHVkZSA8 bGludXgvY2xrLXByb3ZpZGVyLmg+CiAjaW5jbHVkZSA8bGludXgvY2xrZGV2Lmg+CiAjaW5jbHVk ZSA8bGludXgvZXJyLmg+CkBAIC0zOSw3ICszOCw3IEBAIHN0YXRpYyBjb25zdCBjaGFyICpjbGtv X3NlbF9jbGtzW10gPSB7CiAKIHN0YXRpYyBjb25zdCBjaGFyICpzc2lfc2VsX2Nsa3NbXSA9IHsg InNwbGxfZ2F0ZSIsICJtcGxsIiwgfTsKIAotc3RhdGljIHN0cnVjdCBjbGsgKmNsa1tJTVgyN19D TEtfTUFYXTsKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgKmNsa1tJTVgyN19DTEtfTUFYXTsKIHN0 YXRpYyBzdHJ1Y3QgY2xrX29uZWNlbGxfZGF0YSBjbGtfZGF0YTsKIAogc3RhdGljIHZvaWQgX19p bml0IF9teDI3X2Nsb2Nrc19pbml0KHVuc2lnbmVkIGxvbmcgZnJlZikKQEAgLTE1Niw3ICsxNTUs NyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgX214MjdfY2xvY2tzX2luaXQodW5zaWduZWQgbG9uZyBm cmVmKQogCiAJY2xrX3JlZ2lzdGVyX2Nsa2RldihjbGtbSU1YMjdfQ0xLX0NQVV9ESVZdLCBOVUxM LCAiY3B1MCIpOwogCi0JY2xrX3ByZXBhcmVfZW5hYmxlKGNsa1tJTVgyN19DTEtfRU1JX0FIQl9H QVRFXSk7CisJY2xrX3Byb3ZpZGVyX3ByZXBhcmVfZW5hYmxlKGNsa1tJTVgyN19DTEtfRU1JX0FI Ql9HQVRFXSk7CiAKIAlpbXhfcHJpbnRfc2lsaWNvbl9yZXYoImkuTVgyNyIsIG14MjdfcmV2aXNp b24oKSk7CiB9CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWlteC9jbGstaW14MzEuYyBiL2Fy Y2gvYXJtL21hY2gtaW14L2Nsay1pbXgzMS5jCmluZGV4IDI4NmVmNDIuLmM5NWZjNWMgMTAwNjQ0 Ci0tLSBhL2FyY2gvYXJtL21hY2gtaW14L2Nsay1pbXgzMS5jCisrKyBiL2FyY2gvYXJtL21hY2gt aW14L2Nsay1pbXgzMS5jCkBAIC0xNiw3ICsxNiw2IEBACiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4 L21vZHVsZS5oPgotI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgogI2luY2x1ZGUgPGxpbnV4L2Nsa2Rl di5oPgogI2luY2x1ZGUgPGxpbnV4L2lvLmg+CiAjaW5jbHVkZSA8bGludXgvZXJyLmg+CkBAIC00 NSw3ICs0NCw3IEBAIGVudW0gbXgzMV9jbGtzIHsKIAlnYWNjX2dhdGUsIGVtaV9nYXRlLCBydGlj X2dhdGUsIGZpcmlfZ2F0ZSwgY2xrX21heAogfTsKIAotc3RhdGljIHN0cnVjdCBjbGsgKmNsa1tj bGtfbWF4XTsKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgKmNsa1tjbGtfbWF4XTsKIHN0YXRpYyBz dHJ1Y3QgY2xrX29uZWNlbGxfZGF0YSBjbGtfZGF0YTsKIAogaW50IF9faW5pdCBteDMxX2Nsb2Nr c19pbml0KHVuc2lnbmVkIGxvbmcgZnJlZikKQEAgLTE3NiwxMSArMTc1LDExIEBAIGludCBfX2lu aXQgbXgzMV9jbG9ja3NfaW5pdCh1bnNpZ25lZCBsb25nIGZyZWYpCiAJY2xrX3JlZ2lzdGVyX2Ns a2RldihjbGtbc2RtYV9nYXRlXSwgTlVMTCwgImlteDMxLXNkbWEiKTsKIAljbGtfcmVnaXN0ZXJf Y2xrZGV2KGNsa1tpaW1fZ2F0ZV0sICJpaW0iLCBOVUxMKTsKIAotCWNsa19zZXRfcGFyZW50KGNs a1tjc2ldLCBjbGtbdXBsbF0pOwotCWNsa19wcmVwYXJlX2VuYWJsZShjbGtbZW1pX2dhdGVdKTsK LQljbGtfcHJlcGFyZV9lbmFibGUoY2xrW2lpbV9nYXRlXSk7CisJY2xrX3Byb3ZpZGVyX3NldF9w YXJlbnQoY2xrW2NzaV0sIGNsa1t1cGxsXSk7CisJY2xrX3Byb3ZpZGVyX3ByZXBhcmVfZW5hYmxl KGNsa1tlbWlfZ2F0ZV0pOworCWNsa19wcm92aWRlcl9wcmVwYXJlX2VuYWJsZShjbGtbaWltX2dh dGVdKTsKIAlteDMxX3JldmlzaW9uKCk7Ci0JY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGNsa1tpaW1f Z2F0ZV0pOworCWNsa19wcm92aWRlcl9kaXNhYmxlX3VucHJlcGFyZShjbGtbaWltX2dhdGVdKTsK IAogCW14Y190aW1lcl9pbml0KE1YMzFfSU9fQUREUkVTUyhNWDMxX0dQVDFfQkFTRV9BRERSKSwg TVgzMV9JTlRfR1BUKTsKIApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1pbXgvY2xrLWlteDM1 LmMgYi9hcmNoL2FybS9tYWNoLWlteC9jbGstaW14MzUuYwppbmRleCBhMGQyYjU3Li44NDZiMmNj IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLWlteC9jbGstaW14MzUuYworKysgYi9hcmNoL2Fy bS9tYWNoLWlteC9jbGstaW14MzUuYwpAQCAtOCw3ICs4LDYgQEAKICAqLwogI2luY2x1ZGUgPGxp bnV4L21tLmg+CiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KLSNpbmNsdWRlIDxsaW51eC9jbGsu aD4KICNpbmNsdWRlIDxsaW51eC9pby5oPgogI2luY2x1ZGUgPGxpbnV4L2Nsa2Rldi5oPgogI2lu Y2x1ZGUgPGxpbnV4L29mLmg+CkBAIC02Nyw3ICs2Niw3IEBAIGVudW0gbXgzNV9jbGtzIHsKIAln cHUyZF9nYXRlLCBjbGtfbWF4CiB9OwogCi1zdGF0aWMgc3RydWN0IGNsayAqY2xrW2Nsa19tYXhd Oworc3RhdGljIHN0cnVjdCBjbGtfY29yZSAqY2xrW2Nsa19tYXhdOwogCiBpbnQgX19pbml0IG14 MzVfY2xvY2tzX2luaXQodm9pZCkKIHsKQEAgLTk5LDcgKzk4LDcgQEAgaW50IF9faW5pdCBteDM1 X2Nsb2Nrc19pbml0KHZvaWQpCiAJZWxzZQogCQljbGtbYXJtXSA9IGlteF9jbGtfZml4ZWRfZmFj dG9yKCJhcm0iLCAibXBsbCIsIDEsIGFhZC0+YXJtKTsKIAotCWlmIChjbGtfZ2V0X3JhdGUoY2xr W2FybV0pID4gNDAwMDAwMDAwKQorCWlmIChjbGtfcHJvdmlkZXJfZ2V0X3JhdGUoY2xrW2FybV0p ID4gNDAwMDAwMDAwKQogCQloc3BfZGl2ID0gaHNwX2Rpdl81MzI7CiAJZWxzZQogCQloc3BfZGl2 ID0gaHNwX2Rpdl80MDA7CkBAIC0yNTcsMTQgKzI1NiwxNCBAQCBpbnQgX19pbml0IG14MzVfY2xv Y2tzX2luaXQodm9pZCkKIAljbGtfcmVnaXN0ZXJfY2xrZGV2KGNsa1tjc2lfZ2F0ZV0sIE5VTEws ICJteDMtY2FtZXJhLjAiKTsKIAljbGtfcmVnaXN0ZXJfY2xrZGV2KGNsa1thZG11eF9nYXRlXSwg ImF1ZG11eCIsIE5VTEwpOwogCi0JY2xrX3ByZXBhcmVfZW5hYmxlKGNsa1tzcGJhX2dhdGVdKTsK LQljbGtfcHJlcGFyZV9lbmFibGUoY2xrW2dwaW8xX2dhdGVdKTsKLQljbGtfcHJlcGFyZV9lbmFi bGUoY2xrW2dwaW8yX2dhdGVdKTsKLQljbGtfcHJlcGFyZV9lbmFibGUoY2xrW2dwaW8zX2dhdGVd KTsKLQljbGtfcHJlcGFyZV9lbmFibGUoY2xrW2lpbV9nYXRlXSk7Ci0JY2xrX3ByZXBhcmVfZW5h YmxlKGNsa1tlbWlfZ2F0ZV0pOwotCWNsa19wcmVwYXJlX2VuYWJsZShjbGtbbWF4X2dhdGVdKTsK LQljbGtfcHJlcGFyZV9lbmFibGUoY2xrW2lvbXV4Y19nYXRlXSk7CisJY2xrX3Byb3ZpZGVyX3By ZXBhcmVfZW5hYmxlKGNsa1tzcGJhX2dhdGVdKTsKKwljbGtfcHJvdmlkZXJfcHJlcGFyZV9lbmFi bGUoY2xrW2dwaW8xX2dhdGVdKTsKKwljbGtfcHJvdmlkZXJfcHJlcGFyZV9lbmFibGUoY2xrW2dw aW8yX2dhdGVdKTsKKwljbGtfcHJvdmlkZXJfcHJlcGFyZV9lbmFibGUoY2xrW2dwaW8zX2dhdGVd KTsKKwljbGtfcHJvdmlkZXJfcHJlcGFyZV9lbmFibGUoY2xrW2lpbV9nYXRlXSk7CisJY2xrX3By b3ZpZGVyX3ByZXBhcmVfZW5hYmxlKGNsa1tlbWlfZ2F0ZV0pOworCWNsa19wcm92aWRlcl9wcmVw YXJlX2VuYWJsZShjbGtbbWF4X2dhdGVdKTsKKwljbGtfcHJvdmlkZXJfcHJlcGFyZV9lbmFibGUo Y2xrW2lvbXV4Y19nYXRlXSk7CiAKIAkvKgogCSAqIFNDQyBpcyBuZWVkZWQgdG8gYm9vdCB2aWEg bW1jIGFmdGVyIGEgd2F0Y2hkb2cgcmVzZXQuIFRoZSBjbG9jayBjb2RlCkBAIC0yNzIsNyArMjcx LDcgQEAgaW50IF9faW5pdCBteDM1X2Nsb2Nrc19pbml0KHZvaWQpCiAJICogaGFuZGxlZCBoZXJl IGFuZCBub3QgbmVlZGVkIGZvciBtbWMpIGFuZCBJSU0gKHdoaWNoIGlzIGVuYWJsZWQKIAkgKiB1 bmNvbmRpdGlvbmFsbHkgYWJvdmUpLgogCSAqLwotCWNsa19wcmVwYXJlX2VuYWJsZShjbGtbc2Nj X2dhdGVdKTsKKwljbGtfcHJvdmlkZXJfcHJlcGFyZV9lbmFibGUoY2xrW3NjY19nYXRlXSk7CiAK IAlpbXhfcHJpbnRfc2lsaWNvbl9yZXYoImkuTVgzNSIsIG14MzVfcmV2aXNpb24oKSk7CiAKZGlm ZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtaW14L2Nsay1pbXg1MS1pbXg1My5jIGIvYXJjaC9hcm0v bWFjaC1pbXgvY2xrLWlteDUxLWlteDUzLmMKaW5kZXggNzJkNjUyMS4uZmE5ZmM4NCAxMDA2NDQK LS0tIGEvYXJjaC9hcm0vbWFjaC1pbXgvY2xrLWlteDUxLWlteDUzLmMKKysrIGIvYXJjaC9hcm0v bWFjaC1pbXgvY2xrLWlteDUxLWlteDUzLmMKQEAgLTgsNyArOCw2IEBACiAgKi8KICNpbmNsdWRl IDxsaW51eC9tbS5oPgogI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+Ci0jaW5jbHVkZSA8bGludXgv Y2xrLmg+CiAjaW5jbHVkZSA8bGludXgvaW8uaD4KICNpbmNsdWRlIDxsaW51eC9jbGtkZXYuaD4K ICNpbmNsdWRlIDxsaW51eC9jbGstcHJvdmlkZXIuaD4KQEAgLTEyNiw3ICsxMjUsNyBAQCBzdGF0 aWMgY29uc3QgY2hhciAqc3BkaWZfc2VsW10gPSB7ICJwbGwxX3N3IiwgInBsbDJfc3ciLCAicGxs M19zdyIsICJzcGRpZl94dGFsXwogc3RhdGljIGNvbnN0IGNoYXIgKnNwZGlmMF9jb21fc2VsW10g PSB7ICJzcGRpZjBfcG9kZiIsICJzc2kxX3Jvb3RfZ2F0ZSIsIH07CiBzdGF0aWMgY29uc3QgY2hh ciAqbXg1MV9zcGRpZjFfY29tX3NlbFtdID0geyAic3BkaWYxX3BvZGYiLCAic3NpMl9yb290X2dh dGUiLCB9OwogCi1zdGF0aWMgc3RydWN0IGNsayAqY2xrW0lNWDVfQ0xLX0VORF07CitzdGF0aWMg c3RydWN0IGNsa19jb3JlICpjbGtbSU1YNV9DTEtfRU5EXTsKIHN0YXRpYyBzdHJ1Y3QgY2xrX29u ZWNlbGxfZGF0YSBjbGtfZGF0YTsKIAogc3RhdGljIHZvaWQgX19pbml0IG14NV9jbG9ja3NfY29t bW9uX2luaXQodm9pZCBfX2lvbWVtICpjY21fYmFzZSkKQEAgLTI4OSwyNiArMjg4LDI4IEBAIHN0 YXRpYyB2b2lkIF9faW5pdCBteDVfY2xvY2tzX2NvbW1vbl9pbml0KHZvaWQgX19pb21lbSAqY2Nt X2Jhc2UpCiAJY2xrX3JlZ2lzdGVyX2Nsa2RldihjbGtbSU1YNV9DTEtfR1BDX0RWRlNdLCAiZ3Bj X2R2ZnMiLCBOVUxMKTsKIAogCS8qIFNldCBTREhDIHBhcmVudHMgdG8gYmUgUExMMiAqLwotCWNs a19zZXRfcGFyZW50KGNsa1tJTVg1X0NMS19FU0RIQ19BX1NFTF0sIGNsa1tJTVg1X0NMS19QTEwy X1NXXSk7Ci0JY2xrX3NldF9wYXJlbnQoY2xrW0lNWDVfQ0xLX0VTREhDX0JfU0VMXSwgY2xrW0lN WDVfQ0xLX1BMTDJfU1ddKTsKKwljbGtfcHJvdmlkZXJfc2V0X3BhcmVudChjbGtbSU1YNV9DTEtf RVNESENfQV9TRUxdLAorCQkJCWNsa1tJTVg1X0NMS19QTEwyX1NXXSk7CisJY2xrX3Byb3ZpZGVy X3NldF9wYXJlbnQoY2xrW0lNWDVfQ0xLX0VTREhDX0JfU0VMXSwKKwkJCQljbGtbSU1YNV9DTEtf UExMMl9TV10pOwogCiAJLyogbW92ZSB1c2IgcGh5IGNsayB0byAyNE1IeiAqLwotCWNsa19zZXRf cGFyZW50KGNsa1tJTVg1X0NMS19VU0JfUEhZX1NFTF0sIGNsa1tJTVg1X0NMS19PU0NdKTsKLQot CWNsa19wcmVwYXJlX2VuYWJsZShjbGtbSU1YNV9DTEtfR1BDX0RWRlNdKTsKLQljbGtfcHJlcGFy ZV9lbmFibGUoY2xrW0lNWDVfQ0xLX0FIQl9NQVhdKTsgLyogZXNkaGMzICovCi0JY2xrX3ByZXBh cmVfZW5hYmxlKGNsa1tJTVg1X0NMS19BSVBTX1RaMV0pOwotCWNsa19wcmVwYXJlX2VuYWJsZShj bGtbSU1YNV9DTEtfQUlQU19UWjJdKTsgLyogZmVjICovCi0JY2xrX3ByZXBhcmVfZW5hYmxlKGNs a1tJTVg1X0NMS19TUEJBXSk7Ci0JY2xrX3ByZXBhcmVfZW5hYmxlKGNsa1tJTVg1X0NMS19FTUlf RkFTVF9HQVRFXSk7IC8qIGZlYyAqLwotCWNsa19wcmVwYXJlX2VuYWJsZShjbGtbSU1YNV9DTEtf RU1JX1NMT1dfR0FURV0pOyAvKiBlaW0gKi8KLQljbGtfcHJlcGFyZV9lbmFibGUoY2xrW0lNWDVf Q0xLX01JUElfSFNDMV9HQVRFXSk7Ci0JY2xrX3ByZXBhcmVfZW5hYmxlKGNsa1tJTVg1X0NMS19N SVBJX0hTQzJfR0FURV0pOwotCWNsa19wcmVwYXJlX2VuYWJsZShjbGtbSU1YNV9DTEtfTUlQSV9F U0NfR0FURV0pOwotCWNsa19wcmVwYXJlX2VuYWJsZShjbGtbSU1YNV9DTEtfTUlQSV9IU1BfR0FU RV0pOwotCWNsa19wcmVwYXJlX2VuYWJsZShjbGtbSU1YNV9DTEtfVE1BWDFdKTsKLQljbGtfcHJl cGFyZV9lbmFibGUoY2xrW0lNWDVfQ0xLX1RNQVgyXSk7IC8qIGVzZGhjMiwgZmVjICovCi0JY2xr X3ByZXBhcmVfZW5hYmxlKGNsa1tJTVg1X0NMS19UTUFYM10pOyAvKiBlc2RoYzEsIGVzZGhjNCAq LworCWNsa19wcm92aWRlcl9zZXRfcGFyZW50KGNsa1tJTVg1X0NMS19VU0JfUEhZX1NFTF0sIGNs a1tJTVg1X0NMS19PU0NdKTsKKworCWNsa19wcm92aWRlcl9wcmVwYXJlX2VuYWJsZShjbGtbSU1Y NV9DTEtfR1BDX0RWRlNdKTsKKwljbGtfcHJvdmlkZXJfcHJlcGFyZV9lbmFibGUoY2xrW0lNWDVf Q0xLX0FIQl9NQVhdKTsgLyogZXNkaGMzICovCisJY2xrX3Byb3ZpZGVyX3ByZXBhcmVfZW5hYmxl KGNsa1tJTVg1X0NMS19BSVBTX1RaMV0pOworCWNsa19wcm92aWRlcl9wcmVwYXJlX2VuYWJsZShj bGtbSU1YNV9DTEtfQUlQU19UWjJdKTsgLyogZmVjICovCisJY2xrX3Byb3ZpZGVyX3ByZXBhcmVf ZW5hYmxlKGNsa1tJTVg1X0NMS19TUEJBXSk7CisJY2xrX3Byb3ZpZGVyX3ByZXBhcmVfZW5hYmxl KGNsa1tJTVg1X0NMS19FTUlfRkFTVF9HQVRFXSk7IC8qIGZlYyAqLworCWNsa19wcm92aWRlcl9w cmVwYXJlX2VuYWJsZShjbGtbSU1YNV9DTEtfRU1JX1NMT1dfR0FURV0pOyAvKiBlaW0gKi8KKwlj bGtfcHJvdmlkZXJfcHJlcGFyZV9lbmFibGUoY2xrW0lNWDVfQ0xLX01JUElfSFNDMV9HQVRFXSk7 CisJY2xrX3Byb3ZpZGVyX3ByZXBhcmVfZW5hYmxlKGNsa1tJTVg1X0NMS19NSVBJX0hTQzJfR0FU RV0pOworCWNsa19wcm92aWRlcl9wcmVwYXJlX2VuYWJsZShjbGtbSU1YNV9DTEtfTUlQSV9FU0Nf R0FURV0pOworCWNsa19wcm92aWRlcl9wcmVwYXJlX2VuYWJsZShjbGtbSU1YNV9DTEtfTUlQSV9I U1BfR0FURV0pOworCWNsa19wcm92aWRlcl9wcmVwYXJlX2VuYWJsZShjbGtbSU1YNV9DTEtfVE1B WDFdKTsKKwljbGtfcHJvdmlkZXJfcHJlcGFyZV9lbmFibGUoY2xrW0lNWDVfQ0xLX1RNQVgyXSk7 IC8qIGVzZGhjMiwgZmVjICovCisJY2xrX3Byb3ZpZGVyX3ByZXBhcmVfZW5hYmxlKGNsa1tJTVg1 X0NMS19UTUFYM10pOyAvKiBlc2RoYzEsIGVzZGhjNCAqLwogfQogCiBzdGF0aWMgdm9pZCBfX2lu aXQgbXg1MF9jbG9ja3NfaW5pdChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKQpAQCAtMzYxLDE1ICsz NjIsMTUgQEAgc3RhdGljIHZvaWQgX19pbml0IG14NTBfY2xvY2tzX2luaXQoc3RydWN0IGRldmlj ZV9ub2RlICpucCkKIAlvZl9jbGtfYWRkX3Byb3ZpZGVyKG5wLCBvZl9jbGtfc3JjX29uZWNlbGxf Z2V0LCAmY2xrX2RhdGEpOwogCiAJLyogc2V0IFNESEMgcm9vdCBjbG9jayB0byAyMDBNSFoqLwot CWNsa19zZXRfcmF0ZShjbGtbSU1YNV9DTEtfRVNESENfQV9QT0RGXSwgMjAwMDAwMDAwKTsKLQlj bGtfc2V0X3JhdGUoY2xrW0lNWDVfQ0xLX0VTREhDX0JfUE9ERl0sIDIwMDAwMDAwMCk7CisJY2xr X3Byb3ZpZGVyX3NldF9yYXRlKGNsa1tJTVg1X0NMS19FU0RIQ19BX1BPREZdLCAyMDAwMDAwMDAp OworCWNsa19wcm92aWRlcl9zZXRfcmF0ZShjbGtbSU1YNV9DTEtfRVNESENfQl9QT0RGXSwgMjAw MDAwMDAwKTsKIAotCWNsa19wcmVwYXJlX2VuYWJsZShjbGtbSU1YNV9DTEtfSUlNX0dBVEVdKTsK KwljbGtfcHJvdmlkZXJfcHJlcGFyZV9lbmFibGUoY2xrW0lNWDVfQ0xLX0lJTV9HQVRFXSk7CiAJ aW14X3ByaW50X3NpbGljb25fcmV2KCJpLk1YNTAiLCBJTVhfQ0hJUF9SRVZJU0lPTl8xXzEpOwot CWNsa19kaXNhYmxlX3VucHJlcGFyZShjbGtbSU1YNV9DTEtfSUlNX0dBVEVdKTsKKwljbGtfcHJv dmlkZXJfZGlzYWJsZV91bnByZXBhcmUoY2xrW0lNWDVfQ0xLX0lJTV9HQVRFXSk7CiAKLQlyID0g Y2xrX3JvdW5kX3JhdGUoY2xrW0lNWDVfQ0xLX1VTQk9IM19QRVJfR0FURV0sIDU0MDAwMDAwKTsK LQljbGtfc2V0X3JhdGUoY2xrW0lNWDVfQ0xLX1VTQk9IM19QRVJfR0FURV0sIHIpOworCXIgPSBj bGtfcHJvdmlkZXJfcm91bmRfcmF0ZShjbGtbSU1YNV9DTEtfVVNCT0gzX1BFUl9HQVRFXSwgNTQw MDAwMDApOworCWNsa19wcm92aWRlcl9zZXRfcmF0ZShjbGtbSU1YNV9DTEtfVVNCT0gzX1BFUl9H QVRFXSwgcik7CiB9CiBDTEtfT0ZfREVDTEFSRShpbXg1MF9jY20sICJmc2wsaW14NTAtY2NtIiwg bXg1MF9jbG9ja3NfaW5pdCk7CiAKQEAgLTQzNSwxNSArNDM2LDE2IEBAIHN0YXRpYyB2b2lkIF9f aW5pdCBteDUxX2Nsb2Nrc19pbml0KHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApCiAJb2ZfY2xrX2Fk ZF9wcm92aWRlcihucCwgb2ZfY2xrX3NyY19vbmVjZWxsX2dldCwgJmNsa19kYXRhKTsKIAogCS8q IHNldCB0aGUgdXNib2gzIHBhcmVudCB0byBwbGwyX3N3ICovCi0JY2xrX3NldF9wYXJlbnQoY2xr W0lNWDVfQ0xLX1VTQk9IM19TRUxdLCBjbGtbSU1YNV9DTEtfUExMMl9TV10pOworCWNsa19wcm92 aWRlcl9zZXRfcGFyZW50KGNsa1tJTVg1X0NMS19VU0JPSDNfU0VMXSwKKwkJCQljbGtbSU1YNV9D TEtfUExMMl9TV10pOwogCiAJLyogc2V0IFNESEMgcm9vdCBjbG9jayB0byAxNjYuMjVNSFoqLwot CWNsa19zZXRfcmF0ZShjbGtbSU1YNV9DTEtfRVNESENfQV9QT0RGXSwgMTY2MjUwMDAwKTsKLQlj bGtfc2V0X3JhdGUoY2xrW0lNWDVfQ0xLX0VTREhDX0JfUE9ERl0sIDE2NjI1MDAwMCk7CisJY2xr X3Byb3ZpZGVyX3NldF9yYXRlKGNsa1tJTVg1X0NMS19FU0RIQ19BX1BPREZdLCAxNjYyNTAwMDAp OworCWNsa19wcm92aWRlcl9zZXRfcmF0ZShjbGtbSU1YNV9DTEtfRVNESENfQl9QT0RGXSwgMTY2 MjUwMDAwKTsKIAotCWNsa19wcmVwYXJlX2VuYWJsZShjbGtbSU1YNV9DTEtfSUlNX0dBVEVdKTsK KwljbGtfcHJvdmlkZXJfcHJlcGFyZV9lbmFibGUoY2xrW0lNWDVfQ0xLX0lJTV9HQVRFXSk7CiAJ aW14X3ByaW50X3NpbGljb25fcmV2KCJpLk1YNTEiLCBteDUxX3JldmlzaW9uKCkpOwotCWNsa19k aXNhYmxlX3VucHJlcGFyZShjbGtbSU1YNV9DTEtfSUlNX0dBVEVdKTsKKwljbGtfcHJvdmlkZXJf ZGlzYWJsZV91bnByZXBhcmUoY2xrW0lNWDVfQ0xLX0lJTV9HQVRFXSk7CiAKIAkvKgogCSAqIFJl ZmVyZW5jZSBNYW51YWwgc2F5czogRnVuY3Rpb25hbGl0eSBvZiBDQ0RSWzE4XSBhbmQgQ0xQQ1Jb MjNdIGlzIG5vCkBAIC01NDUsMTcgKzU0NywxNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgbXg1M19j bG9ja3NfaW5pdChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKQogCW9mX2Nsa19hZGRfcHJvdmlkZXIo bnAsIG9mX2Nsa19zcmNfb25lY2VsbF9nZXQsICZjbGtfZGF0YSk7CiAKIAkvKiBzZXQgU0RIQyBy b290IGNsb2NrIHRvIDIwME1IWiovCi0JY2xrX3NldF9yYXRlKGNsa1tJTVg1X0NMS19FU0RIQ19B X1BPREZdLCAyMDAwMDAwMDApOwotCWNsa19zZXRfcmF0ZShjbGtbSU1YNV9DTEtfRVNESENfQl9Q T0RGXSwgMjAwMDAwMDAwKTsKKwljbGtfcHJvdmlkZXJfc2V0X3JhdGUoY2xrW0lNWDVfQ0xLX0VT REhDX0FfUE9ERl0sIDIwMDAwMDAwMCk7CisJY2xrX3Byb3ZpZGVyX3NldF9yYXRlKGNsa1tJTVg1 X0NMS19FU0RIQ19CX1BPREZdLCAyMDAwMDAwMDApOwogCiAJLyogbW92ZSBjYW4gYnVzIGNsayB0 byAyNE1IeiAqLwotCWNsa19zZXRfcGFyZW50KGNsa1tJTVg1X0NMS19DQU5fU0VMXSwgY2xrW0lN WDVfQ0xLX0xQX0FQTV0pOworCWNsa19wcm92aWRlcl9zZXRfcGFyZW50KGNsa1tJTVg1X0NMS19D QU5fU0VMXSwgY2xrW0lNWDVfQ0xLX0xQX0FQTV0pOwogCi0JY2xrX3ByZXBhcmVfZW5hYmxlKGNs a1tJTVg1X0NMS19JSU1fR0FURV0pOworCWNsa19wcm92aWRlcl9wcmVwYXJlX2VuYWJsZShjbGtb SU1YNV9DTEtfSUlNX0dBVEVdKTsKIAlpbXhfcHJpbnRfc2lsaWNvbl9yZXYoImkuTVg1MyIsIG14 NTNfcmV2aXNpb24oKSk7Ci0JY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGNsa1tJTVg1X0NMS19JSU1f R0FURV0pOworCWNsa19wcm92aWRlcl9kaXNhYmxlX3VucHJlcGFyZShjbGtbSU1YNV9DTEtfSUlN X0dBVEVdKTsKIAotCXIgPSBjbGtfcm91bmRfcmF0ZShjbGtbSU1YNV9DTEtfVVNCT0gzX1BFUl9H QVRFXSwgNTQwMDAwMDApOwotCWNsa19zZXRfcmF0ZShjbGtbSU1YNV9DTEtfVVNCT0gzX1BFUl9H QVRFXSwgcik7CisJciA9IGNsa19wcm92aWRlcl9yb3VuZF9yYXRlKGNsa1tJTVg1X0NMS19VU0JP SDNfUEVSX0dBVEVdLCA1NDAwMDAwMCk7CisJY2xrX3Byb3ZpZGVyX3NldF9yYXRlKGNsa1tJTVg1 X0NMS19VU0JPSDNfUEVSX0dBVEVdLCByKTsKIH0KIENMS19PRl9ERUNMQVJFKGlteDUzX2NjbSwg ImZzbCxpbXg1My1jY20iLCBteDUzX2Nsb2Nrc19pbml0KTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJt L21hY2gtaW14L2Nsay1pbXg2cS5jIGIvYXJjaC9hcm0vbWFjaC1pbXgvY2xrLWlteDZxLmMKaW5k ZXggNGVlNmU3Ny4uMjE3MWViZiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1pbXgvY2xrLWlt eDZxLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1pbXgvY2xrLWlteDZxLmMKQEAgLTEyLDcgKzEyLDYg QEAKIAogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgot I2luY2x1ZGUgPGxpbnV4L2Nsay5oPgogI2luY2x1ZGUgPGxpbnV4L2Nsa2Rldi5oPgogI2luY2x1 ZGUgPGxpbnV4L2Vyci5oPgogI2luY2x1ZGUgPGxpbnV4L2lvLmg+CkBAIC04Miw3ICs4MSw3IEBA IHN0YXRpYyBjb25zdCBjaGFyICpwbGw1X2J5cGFzc19zZWxzW10gPSB7ICJwbGw1IiwgInBsbDVf YnlwYXNzX3NyYyIsIH07CiBzdGF0aWMgY29uc3QgY2hhciAqcGxsNl9ieXBhc3Nfc2Vsc1tdID0g eyAicGxsNiIsICJwbGw2X2J5cGFzc19zcmMiLCB9Owogc3RhdGljIGNvbnN0IGNoYXIgKnBsbDdf YnlwYXNzX3NlbHNbXSA9IHsgInBsbDciLCAicGxsN19ieXBhc3Nfc3JjIiwgfTsKIAotc3RhdGlj IHN0cnVjdCBjbGsgKmNsa1tJTVg2UURMX0NMS19FTkRdOworc3RhdGljIHN0cnVjdCBjbGtfY29y ZSAqY2xrW0lNWDZRRExfQ0xLX0VORF07CiBzdGF0aWMgc3RydWN0IGNsa19vbmVjZWxsX2RhdGEg Y2xrX2RhdGE7CiAKIHN0YXRpYyB1bnNpZ25lZCBpbnQgY29uc3QgY2xrc19pbml0X29uW10gX19p bml0Y29uc3QgPSB7CkBAIC0xNzMsMTMgKzE3MiwyMCBAQCBzdGF0aWMgdm9pZCBfX2luaXQgaW14 NnFfY2xvY2tzX2luaXQoc3RydWN0IGRldmljZV9ub2RlICpjY21fbm9kZSkKIAljbGtbSU1YNlFE TF9QTEw3X0JZUEFTU10gPSBpbXhfY2xrX211eF9mbGFncygicGxsN19ieXBhc3MiLCBiYXNlICsg MHgyMCwgMTYsIDEsIHBsbDdfYnlwYXNzX3NlbHMsIEFSUkFZX1NJWkUocGxsN19ieXBhc3Nfc2Vs cyksIENMS19TRVRfUkFURV9QQVJFTlQpOwogCiAJLyogRG8gbm90IGJ5cGFzcyBQTExzIGluaXRp YWxseSAqLwotCWNsa19zZXRfcGFyZW50KGNsa1tJTVg2UURMX1BMTDFfQllQQVNTXSwgY2xrW0lN WDZRRExfQ0xLX1BMTDFdKTsKLQljbGtfc2V0X3BhcmVudChjbGtbSU1YNlFETF9QTEwyX0JZUEFT U10sIGNsa1tJTVg2UURMX0NMS19QTEwyXSk7Ci0JY2xrX3NldF9wYXJlbnQoY2xrW0lNWDZRRExf UExMM19CWVBBU1NdLCBjbGtbSU1YNlFETF9DTEtfUExMM10pOwotCWNsa19zZXRfcGFyZW50KGNs a1tJTVg2UURMX1BMTDRfQllQQVNTXSwgY2xrW0lNWDZRRExfQ0xLX1BMTDRdKTsKLQljbGtfc2V0 X3BhcmVudChjbGtbSU1YNlFETF9QTEw1X0JZUEFTU10sIGNsa1tJTVg2UURMX0NMS19QTEw1XSk7 Ci0JY2xrX3NldF9wYXJlbnQoY2xrW0lNWDZRRExfUExMNl9CWVBBU1NdLCBjbGtbSU1YNlFETF9D TEtfUExMNl0pOwotCWNsa19zZXRfcGFyZW50KGNsa1tJTVg2UURMX1BMTDdfQllQQVNTXSwgY2xr W0lNWDZRRExfQ0xLX1BMTDddKTsKKwljbGtfcHJvdmlkZXJfc2V0X3BhcmVudChjbGtbSU1YNlFE TF9QTEwxX0JZUEFTU10sCisJCQkJY2xrW0lNWDZRRExfQ0xLX1BMTDFdKTsKKwljbGtfcHJvdmlk ZXJfc2V0X3BhcmVudChjbGtbSU1YNlFETF9QTEwyX0JZUEFTU10sCisJCQkJY2xrW0lNWDZRRExf Q0xLX1BMTDJdKTsKKwljbGtfcHJvdmlkZXJfc2V0X3BhcmVudChjbGtbSU1YNlFETF9QTEwzX0JZ UEFTU10sCisJCQkJY2xrW0lNWDZRRExfQ0xLX1BMTDNdKTsKKwljbGtfcHJvdmlkZXJfc2V0X3Bh cmVudChjbGtbSU1YNlFETF9QTEw0X0JZUEFTU10sCisJCQkJY2xrW0lNWDZRRExfQ0xLX1BMTDRd KTsKKwljbGtfcHJvdmlkZXJfc2V0X3BhcmVudChjbGtbSU1YNlFETF9QTEw1X0JZUEFTU10sCisJ CQkJY2xrW0lNWDZRRExfQ0xLX1BMTDVdKTsKKwljbGtfcHJvdmlkZXJfc2V0X3BhcmVudChjbGtb SU1YNlFETF9QTEw2X0JZUEFTU10sCisJCQkJY2xrW0lNWDZRRExfQ0xLX1BMTDZdKTsKKwljbGtf cHJvdmlkZXJfc2V0X3BhcmVudChjbGtbSU1YNlFETF9QTEw3X0JZUEFTU10sCisJCQkJY2xrW0lN WDZRRExfQ0xLX1BMTDddKTsKIAogCWNsa1tJTVg2UURMX0NMS19QTEwxX1NZU10gICAgICA9IGlt eF9jbGtfZ2F0ZSgicGxsMV9zeXMiLCAgICAgICJwbGwxX2J5cGFzcyIsIGJhc2UgKyAweDAwLCAx Myk7CiAJY2xrW0lNWDZRRExfQ0xLX1BMTDJfQlVTXSAgICAgID0gaW14X2Nsa19nYXRlKCJwbGwy X2J1cyIsICAgICAgInBsbDJfYnlwYXNzIiwgYmFzZSArIDB4MzAsIDEzKTsKQEAgLTQ3MSw1MCAr NDc3LDY1IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBpbXg2cV9jbG9ja3NfaW5pdChzdHJ1Y3QgZGV2 aWNlX25vZGUgKmNjbV9ub2RlKQogCiAJaWYgKChpbXhfZ2V0X3NvY19yZXZpc2lvbigpICE9IElN WF9DSElQX1JFVklTSU9OXzFfMCkgfHwKIAkgICAgY3B1X2lzX2lteDZkbCgpKSB7Ci0JCWNsa19z ZXRfcGFyZW50KGNsa1tJTVg2UURMX0NMS19MREJfREkwX1NFTF0sIGNsa1tJTVg2UURMX0NMS19Q TEw1X1ZJREVPX0RJVl0pOwotCQljbGtfc2V0X3BhcmVudChjbGtbSU1YNlFETF9DTEtfTERCX0RJ MV9TRUxdLCBjbGtbSU1YNlFETF9DTEtfUExMNV9WSURFT19ESVZdKTsKKwkJY2xrX3Byb3ZpZGVy X3NldF9wYXJlbnQoY2xrW0lNWDZRRExfQ0xLX0xEQl9ESTBfU0VMXSwKKwkJCQkJY2xrW0lNWDZR RExfQ0xLX1BMTDVfVklERU9fRElWXSk7CisJCWNsa19wcm92aWRlcl9zZXRfcGFyZW50KGNsa1tJ TVg2UURMX0NMS19MREJfREkxX1NFTF0sCisJCQkJCWNsa1tJTVg2UURMX0NMS19QTEw1X1ZJREVP X0RJVl0pOwogCX0KIAotCWNsa19zZXRfcGFyZW50KGNsa1tJTVg2UURMX0NMS19JUFUxX0RJMF9Q UkVfU0VMXSwgY2xrW0lNWDZRRExfQ0xLX1BMTDVfVklERU9fRElWXSk7Ci0JY2xrX3NldF9wYXJl bnQoY2xrW0lNWDZRRExfQ0xLX0lQVTFfREkxX1BSRV9TRUxdLCBjbGtbSU1YNlFETF9DTEtfUExM NV9WSURFT19ESVZdKTsKLQljbGtfc2V0X3BhcmVudChjbGtbSU1YNlFETF9DTEtfSVBVMl9ESTBf UFJFX1NFTF0sIGNsa1tJTVg2UURMX0NMS19QTEw1X1ZJREVPX0RJVl0pOwotCWNsa19zZXRfcGFy ZW50KGNsa1tJTVg2UURMX0NMS19JUFUyX0RJMV9QUkVfU0VMXSwgY2xrW0lNWDZRRExfQ0xLX1BM TDVfVklERU9fRElWXSk7Ci0JY2xrX3NldF9wYXJlbnQoY2xrW0lNWDZRRExfQ0xLX0lQVTFfREkw X1NFTF0sIGNsa1tJTVg2UURMX0NMS19JUFUxX0RJMF9QUkVdKTsKLQljbGtfc2V0X3BhcmVudChj bGtbSU1YNlFETF9DTEtfSVBVMV9ESTFfU0VMXSwgY2xrW0lNWDZRRExfQ0xLX0lQVTFfREkxX1BS RV0pOwotCWNsa19zZXRfcGFyZW50KGNsa1tJTVg2UURMX0NMS19JUFUyX0RJMF9TRUxdLCBjbGtb SU1YNlFETF9DTEtfSVBVMl9ESTBfUFJFXSk7Ci0JY2xrX3NldF9wYXJlbnQoY2xrW0lNWDZRRExf Q0xLX0lQVTJfREkxX1NFTF0sIGNsa1tJTVg2UURMX0NMS19JUFUyX0RJMV9QUkVdKTsKKwljbGtf cHJvdmlkZXJfc2V0X3BhcmVudChjbGtbSU1YNlFETF9DTEtfSVBVMV9ESTBfUFJFX1NFTF0sCisJ CQkJY2xrW0lNWDZRRExfQ0xLX1BMTDVfVklERU9fRElWXSk7CisJY2xrX3Byb3ZpZGVyX3NldF9w YXJlbnQoY2xrW0lNWDZRRExfQ0xLX0lQVTFfREkxX1BSRV9TRUxdLAorCQkJCWNsa1tJTVg2UURM X0NMS19QTEw1X1ZJREVPX0RJVl0pOworCWNsa19wcm92aWRlcl9zZXRfcGFyZW50KGNsa1tJTVg2 UURMX0NMS19JUFUyX0RJMF9QUkVfU0VMXSwKKwkJCQljbGtbSU1YNlFETF9DTEtfUExMNV9WSURF T19ESVZdKTsKKwljbGtfcHJvdmlkZXJfc2V0X3BhcmVudChjbGtbSU1YNlFETF9DTEtfSVBVMl9E STFfUFJFX1NFTF0sCisJCQkJY2xrW0lNWDZRRExfQ0xLX1BMTDVfVklERU9fRElWXSk7CisJY2xr X3Byb3ZpZGVyX3NldF9wYXJlbnQoY2xrW0lNWDZRRExfQ0xLX0lQVTFfREkwX1NFTF0sCisJCQkJ Y2xrW0lNWDZRRExfQ0xLX0lQVTFfREkwX1BSRV0pOworCWNsa19wcm92aWRlcl9zZXRfcGFyZW50 KGNsa1tJTVg2UURMX0NMS19JUFUxX0RJMV9TRUxdLAorCQkJCWNsa1tJTVg2UURMX0NMS19JUFUx X0RJMV9QUkVdKTsKKwljbGtfcHJvdmlkZXJfc2V0X3BhcmVudChjbGtbSU1YNlFETF9DTEtfSVBV Ml9ESTBfU0VMXSwKKwkJCQljbGtbSU1YNlFETF9DTEtfSVBVMl9ESTBfUFJFXSk7CisJY2xrX3By b3ZpZGVyX3NldF9wYXJlbnQoY2xrW0lNWDZRRExfQ0xLX0lQVTJfREkxX1NFTF0sCisJCQkJY2xr W0lNWDZRRExfQ0xLX0lQVTJfREkxX1BSRV0pOwogCiAJLyoKIAkgKiBUaGUgZ3BtaSBuZWVkcyAx MDBNSHogZnJlcXVlbmN5IGluIHRoZSBFRE8vU3luYyBtb2RlLAogCSAqIFdlIGNhbiBub3QgZ2V0 IHRoZSAxMDBNSHogZnJvbSB0aGUgcGxsMl9wZmQwXzM1Mm0uCiAJICogU28gY2hvb3NlIHBsbDJf cGZkMl8zOTZtIGFzIGVuZmNfc2VsJ3MgcGFyZW50LgogCSAqLwotCWNsa19zZXRfcGFyZW50KGNs a1tJTVg2UURMX0NMS19FTkZDX1NFTF0sIGNsa1tJTVg2UURMX0NMS19QTEwyX1BGRDJfMzk2TV0p OworCWNsa19wcm92aWRlcl9zZXRfcGFyZW50KGNsa1tJTVg2UURMX0NMS19FTkZDX1NFTF0sCisJ CQkJY2xrW0lNWDZRRExfQ0xLX1BMTDJfUEZEMl8zOTZNXSk7CiAKIAlmb3IgKGkgPSAwOyBpIDwg QVJSQVlfU0laRShjbGtzX2luaXRfb24pOyBpKyspCi0JCWNsa19wcmVwYXJlX2VuYWJsZShjbGtb Y2xrc19pbml0X29uW2ldXSk7CisJCWNsa19wcm92aWRlcl9wcmVwYXJlX2VuYWJsZShjbGtbY2xr c19pbml0X29uW2ldXSk7CiAKIAlpZiAoSVNfRU5BQkxFRChDT05GSUdfVVNCX01YU19QSFkpKSB7 Ci0JCWNsa19wcmVwYXJlX2VuYWJsZShjbGtbSU1YNlFETF9DTEtfVVNCUEhZMV9HQVRFXSk7Ci0J CWNsa19wcmVwYXJlX2VuYWJsZShjbGtbSU1YNlFETF9DTEtfVVNCUEhZMl9HQVRFXSk7CisJCWNs a19wcm92aWRlcl9wcmVwYXJlX2VuYWJsZShjbGtbSU1YNlFETF9DTEtfVVNCUEhZMV9HQVRFXSk7 CisJCWNsa19wcm92aWRlcl9wcmVwYXJlX2VuYWJsZShjbGtbSU1YNlFETF9DTEtfVVNCUEhZMl9H QVRFXSk7CiAJfQogCiAJLyoKIAkgKiBMZXQncyBpbml0aWFsbHkgc2V0IHVwIENMS08gd2l0aCBP U0MyNE0sIHNpbmNlIHRoaXMgY29uZmlndXJhdGlvbgogCSAqIGlzIHdpZGVseSB1c2VkIGJ5IGlt eDZxIGJvYXJkIGRlc2lnbnMgdG8gY2xvY2sgYXVkaW8gY29kZWMuCiAJICovCi0JcmV0ID0gY2xr X3NldF9wYXJlbnQoY2xrW0lNWDZRRExfQ0xLX0NLTzJfU0VMXSwgY2xrW0lNWDZRRExfQ0xLX09T Q10pOworCXJldCA9IGNsa19wcm92aWRlcl9zZXRfcGFyZW50KGNsa1tJTVg2UURMX0NMS19DS08y X1NFTF0sCisJCQkJICAgICAgY2xrW0lNWDZRRExfQ0xLX09TQ10pOwogCWlmICghcmV0KQotCQly ZXQgPSBjbGtfc2V0X3BhcmVudChjbGtbSU1YNlFETF9DTEtfQ0tPXSwgY2xrW0lNWDZRRExfQ0xL X0NLTzJdKTsKKwkJcmV0ID0gY2xrX3Byb3ZpZGVyX3NldF9wYXJlbnQoY2xrW0lNWDZRRExfQ0xL X0NLT10sCisJCQkJCSAgICAgIGNsa1tJTVg2UURMX0NMS19DS08yXSk7CiAJaWYgKHJldCkKIAkJ cHJfd2FybigiZmFpbGVkIHRvIHNldCB1cCBDTEtPOiAlZFxuIiwgcmV0KTsKIAogCS8qIEF1ZGlv LXJlbGF0ZWQgY2xvY2tzIGNvbmZpZ3VyYXRpb24gKi8KLQljbGtfc2V0X3BhcmVudChjbGtbSU1Y NlFETF9DTEtfU1BESUZfU0VMXSwgY2xrW0lNWDZRRExfQ0xLX1BMTDNfUEZEM180NTRNXSk7CisJ Y2xrX3Byb3ZpZGVyX3NldF9wYXJlbnQoY2xrW0lNWDZRRExfQ0xLX1NQRElGX1NFTF0sCisJCQkJ Y2xrW0lNWDZRRExfQ0xLX1BMTDNfUEZEM180NTRNXSk7CiAKIAkvKiBBbGwgZXhpc3RpbmcgYm9h cmRzIHdpdGggUENJZSB1c2UgTFZEUzEgKi8KIAlpZiAoSVNfRU5BQkxFRChDT05GSUdfUENJX0lN WDYpKQotCQljbGtfc2V0X3BhcmVudChjbGtbSU1YNlFETF9DTEtfTFZEUzFfU0VMXSwgY2xrW0lN WDZRRExfQ0xLX1NBVEFfUkVGXzEwME1dKTsKKwkJY2xrX3Byb3ZpZGVyX3NldF9wYXJlbnQoY2xr W0lNWDZRRExfQ0xLX0xWRFMxX1NFTF0sCisJCQkJCWNsa1tJTVg2UURMX0NMS19TQVRBX1JFRl8x MDBNXSk7CiAKIAkvKiBTZXQgaW5pdGlhbCBwb3dlciBtb2RlICovCiAJaW14NnFfc2V0X2xwbShX QUlUX0NMT0NLRUQpOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1pbXgvY2xrLWlteDZzbC5j IGIvYXJjaC9hcm0vbWFjaC1pbXgvY2xrLWlteDZzbC5jCmluZGV4IDY3OTFmZjMuLjIzZTZkMTAg MTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtaW14L2Nsay1pbXg2c2wuYworKysgYi9hcmNoL2Fy bS9tYWNoLWlteC9jbGstaW14NnNsLmMKQEAgLTcsNyArNyw2IEBACiAgKgogICovCiAKLSNpbmNs dWRlIDxsaW51eC9jbGsuaD4KICNpbmNsdWRlIDxsaW51eC9jbGtkZXYuaD4KICNpbmNsdWRlIDxs aW51eC9lcnIuaD4KICNpbmNsdWRlIDxsaW51eC9vZi5oPgpAQCAtOTUsNyArOTQsNyBAQCBzdGF0 aWMgc3RydWN0IGNsa19kaXZfdGFibGUgdmlkZW9fZGl2X3RhYmxlW10gPSB7CiAJeyB9CiB9Owog Ci1zdGF0aWMgc3RydWN0IGNsayAqY2xrc1tJTVg2U0xfQ0xLX0VORF07CitzdGF0aWMgc3RydWN0 IGNsa19jb3JlICpjbGtzW0lNWDZTTF9DTEtfRU5EXTsKIHN0YXRpYyBzdHJ1Y3QgY2xrX29uZWNl bGxfZGF0YSBjbGtfZGF0YTsKIHN0YXRpYyB2b2lkIF9faW9tZW0gKmNjbV9iYXNlOwogc3RhdGlj IHZvaWQgX19pb21lbSAqYW5hdG9wX2Jhc2U7CkBAIC0yMjUsMTMgKzIyNCwyMCBAQCBzdGF0aWMg dm9pZCBfX2luaXQgaW14NnNsX2Nsb2Nrc19pbml0KHN0cnVjdCBkZXZpY2Vfbm9kZSAqY2NtX25v ZGUpCiAJY2xrc1tJTVg2U0xfUExMN19CWVBBU1NdID0gaW14X2Nsa19tdXhfZmxhZ3MoInBsbDdf YnlwYXNzIiwgYmFzZSArIDB4MjAsIDE2LCAxLCBwbGw3X2J5cGFzc19zZWxzLCBBUlJBWV9TSVpF KHBsbDdfYnlwYXNzX3NlbHMpLCBDTEtfU0VUX1JBVEVfUEFSRU5UKTsKIAogCS8qIERvIG5vdCBi eXBhc3MgUExMcyBpbml0aWFsbHkgKi8KLQljbGtfc2V0X3BhcmVudChjbGtzW0lNWDZTTF9QTEwx X0JZUEFTU10sIGNsa3NbSU1YNlNMX0NMS19QTEwxXSk7Ci0JY2xrX3NldF9wYXJlbnQoY2xrc1tJ TVg2U0xfUExMMl9CWVBBU1NdLCBjbGtzW0lNWDZTTF9DTEtfUExMMl0pOwotCWNsa19zZXRfcGFy ZW50KGNsa3NbSU1YNlNMX1BMTDNfQllQQVNTXSwgY2xrc1tJTVg2U0xfQ0xLX1BMTDNdKTsKLQlj bGtfc2V0X3BhcmVudChjbGtzW0lNWDZTTF9QTEw0X0JZUEFTU10sIGNsa3NbSU1YNlNMX0NMS19Q TEw0XSk7Ci0JY2xrX3NldF9wYXJlbnQoY2xrc1tJTVg2U0xfUExMNV9CWVBBU1NdLCBjbGtzW0lN WDZTTF9DTEtfUExMNV0pOwotCWNsa19zZXRfcGFyZW50KGNsa3NbSU1YNlNMX1BMTDZfQllQQVNT XSwgY2xrc1tJTVg2U0xfQ0xLX1BMTDZdKTsKLQljbGtfc2V0X3BhcmVudChjbGtzW0lNWDZTTF9Q TEw3X0JZUEFTU10sIGNsa3NbSU1YNlNMX0NMS19QTEw3XSk7CisJY2xrX3Byb3ZpZGVyX3NldF9w YXJlbnQoY2xrc1tJTVg2U0xfUExMMV9CWVBBU1NdLAorCQkJCWNsa3NbSU1YNlNMX0NMS19QTEwx XSk7CisJY2xrX3Byb3ZpZGVyX3NldF9wYXJlbnQoY2xrc1tJTVg2U0xfUExMMl9CWVBBU1NdLAor CQkJCWNsa3NbSU1YNlNMX0NMS19QTEwyXSk7CisJY2xrX3Byb3ZpZGVyX3NldF9wYXJlbnQoY2xr c1tJTVg2U0xfUExMM19CWVBBU1NdLAorCQkJCWNsa3NbSU1YNlNMX0NMS19QTEwzXSk7CisJY2xr X3Byb3ZpZGVyX3NldF9wYXJlbnQoY2xrc1tJTVg2U0xfUExMNF9CWVBBU1NdLAorCQkJCWNsa3Nb SU1YNlNMX0NMS19QTEw0XSk7CisJY2xrX3Byb3ZpZGVyX3NldF9wYXJlbnQoY2xrc1tJTVg2U0xf UExMNV9CWVBBU1NdLAorCQkJCWNsa3NbSU1YNlNMX0NMS19QTEw1XSk7CisJY2xrX3Byb3ZpZGVy X3NldF9wYXJlbnQoY2xrc1tJTVg2U0xfUExMNl9CWVBBU1NdLAorCQkJCWNsa3NbSU1YNlNMX0NM S19QTEw2XSk7CisJY2xrX3Byb3ZpZGVyX3NldF9wYXJlbnQoY2xrc1tJTVg2U0xfUExMN19CWVBB U1NdLAorCQkJCWNsa3NbSU1YNlNMX0NMS19QTEw3XSk7CiAKIAljbGtzW0lNWDZTTF9DTEtfUExM MV9TWVNdICAgICAgPSBpbXhfY2xrX2dhdGUoInBsbDFfc3lzIiwgICAgICAicGxsMV9ieXBhc3Mi LCBiYXNlICsgMHgwMCwgMTMpOwogCWNsa3NbSU1YNlNMX0NMS19QTEwyX0JVU10gICAgICA9IGlt eF9jbGtfZ2F0ZSgicGxsMl9idXMiLCAgICAgICJwbGwyX2J5cGFzcyIsIGJhc2UgKyAweDMwLCAx Myk7CkBAIC00MTAsNyArNDE2LDcgQEAgc3RhdGljIHZvaWQgX19pbml0IGlteDZzbF9jbG9ja3Nf aW5pdChzdHJ1Y3QgZGV2aWNlX25vZGUgKmNjbV9ub2RlKQogCW9mX2Nsa19hZGRfcHJvdmlkZXIo bnAsIG9mX2Nsa19zcmNfb25lY2VsbF9nZXQsICZjbGtfZGF0YSk7CiAKIAkvKiBFbnN1cmUgdGhl IEFIQiBjbGsgaXMgYXQgMTMyTUh6LiAqLwotCXJldCA9IGNsa19zZXRfcmF0ZShjbGtzW0lNWDZT TF9DTEtfQUhCXSwgMTMyMDAwMDAwKTsKKwlyZXQgPSBjbGtfcHJvdmlkZXJfc2V0X3JhdGUoY2xr c1tJTVg2U0xfQ0xLX0FIQl0sIDEzMjAwMDAwMCk7CiAJaWYgKHJldCkKIAkJcHJfd2FybigiJXM6 IGZhaWxlZCB0byBzZXQgQUhCIGNsb2NrIHJhdGUgJWQhXG4iLAogCQkJX19mdW5jX18sIHJldCk7 CkBAIC00MjAsMjIgKzQyNiwyMyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgaW14NnNsX2Nsb2Nrc19p bml0KHN0cnVjdCBkZXZpY2Vfbm9kZSAqY2NtX25vZGUpCiAJICogdXNlY291bnQgYW5kIGVuYWJs aW5nL2Rpc2FibGluZyBvZiBwYXJlbnQgUExMcy4KIAkgKi8KIAlmb3IgKGkgPSAwOyBpIDwgQVJS QVlfU0laRShjbGtzX2luaXRfb24pOyBpKyspCi0JCWNsa19wcmVwYXJlX2VuYWJsZShjbGtzW2Ns a3NfaW5pdF9vbltpXV0pOworCQljbGtfcHJvdmlkZXJfcHJlcGFyZV9lbmFibGUoY2xrc1tjbGtz X2luaXRfb25baV1dKTsKIAogCWlmIChJU19FTkFCTEVEKENPTkZJR19VU0JfTVhTX1BIWSkpIHsK LQkJY2xrX3ByZXBhcmVfZW5hYmxlKGNsa3NbSU1YNlNMX0NMS19VU0JQSFkxX0dBVEVdKTsKLQkJ Y2xrX3ByZXBhcmVfZW5hYmxlKGNsa3NbSU1YNlNMX0NMS19VU0JQSFkyX0dBVEVdKTsKKwkJY2xr X3Byb3ZpZGVyX3ByZXBhcmVfZW5hYmxlKGNsa3NbSU1YNlNMX0NMS19VU0JQSFkxX0dBVEVdKTsK KwkJY2xrX3Byb3ZpZGVyX3ByZXBhcmVfZW5hYmxlKGNsa3NbSU1YNlNMX0NMS19VU0JQSFkyX0dB VEVdKTsKIAl9CiAKIAkvKiBBdWRpby1yZWxhdGVkIGNsb2NrcyBjb25maWd1cmF0aW9uICovCi0J Y2xrX3NldF9wYXJlbnQoY2xrc1tJTVg2U0xfQ0xLX1NQRElGMF9TRUxdLCBjbGtzW0lNWDZTTF9D TEtfUExMM19QRkQzXSk7CisJY2xrX3Byb3ZpZGVyX3NldF9wYXJlbnQoY2xrc1tJTVg2U0xfQ0xL X1NQRElGMF9TRUxdLAorCQkJCWNsa3NbSU1YNlNMX0NMS19QTEwzX1BGRDNdKTsKIAogCS8qIHNl dCBQTEw1IHZpZGVvIGFzIGxjZGlmIHBpeCBwYXJlbnQgY2xvY2sgKi8KLQljbGtfc2V0X3BhcmVu dChjbGtzW0lNWDZTTF9DTEtfTENESUZfUElYX1NFTF0sCi0JCQljbGtzW0lNWDZTTF9DTEtfUExM NV9WSURFT19ESVZdKTsKKwljbGtfcHJvdmlkZXJfc2V0X3BhcmVudChjbGtzW0lNWDZTTF9DTEtf TENESUZfUElYX1NFTF0sCisJCQkJY2xrc1tJTVg2U0xfQ0xLX1BMTDVfVklERU9fRElWXSk7CiAK LQljbGtfc2V0X3BhcmVudChjbGtzW0lNWDZTTF9DTEtfTENESUZfQVhJX1NFTF0sCi0JCSAgICAg ICBjbGtzW0lNWDZTTF9DTEtfUExMMl9QRkQyXSk7CisJY2xrX3Byb3ZpZGVyX3NldF9wYXJlbnQo Y2xrc1tJTVg2U0xfQ0xLX0xDRElGX0FYSV9TRUxdLAorCQkJCWNsa3NbSU1YNlNMX0NMS19QTEwy X1BGRDJdKTsKIAogCS8qIFNldCBpbml0aWFsIHBvd2VyIG1vZGUgKi8KIAlpbXg2cV9zZXRfbHBt KFdBSVRfQ0xPQ0tFRCk7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWlteC9jbGstaW14NnN4 LmMgYi9hcmNoL2FybS9tYWNoLWlteC9jbGstaW14NnN4LmMKaW5kZXggMjcwNzBhNy4uNWZlNjQz ZiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1pbXgvY2xrLWlteDZzeC5jCisrKyBiL2FyY2gv YXJtL21hY2gtaW14L2Nsay1pbXg2c3guYwpAQCAtMTAsNyArMTAsNiBAQAogICovCiAKICNpbmNs dWRlIDxkdC1iaW5kaW5ncy9jbG9jay9pbXg2c3gtY2xvY2suaD4KLSNpbmNsdWRlIDxsaW51eC9j bGsuaD4KICNpbmNsdWRlIDxsaW51eC9jbGtkZXYuaD4KICNpbmNsdWRlIDxsaW51eC9lcnIuaD4K ICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CkBAIC05MCw3ICs4OSw3IEBAIHN0YXRpYyBjb25zdCBj aGFyICpwbGw1X2J5cGFzc19zZWxzW10gPSB7ICJwbGw1IiwgInBsbDVfYnlwYXNzX3NyYyIsIH07 CiBzdGF0aWMgY29uc3QgY2hhciAqcGxsNl9ieXBhc3Nfc2Vsc1tdID0geyAicGxsNiIsICJwbGw2 X2J5cGFzc19zcmMiLCB9Owogc3RhdGljIGNvbnN0IGNoYXIgKnBsbDdfYnlwYXNzX3NlbHNbXSA9 IHsgInBsbDciLCAicGxsN19ieXBhc3Nfc3JjIiwgfTsKIAotc3RhdGljIHN0cnVjdCBjbGsgKmNs a3NbSU1YNlNYX0NMS19DTEtfRU5EXTsKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgKmNsa3NbSU1Y NlNYX0NMS19DTEtfRU5EXTsKIHN0YXRpYyBzdHJ1Y3QgY2xrX29uZWNlbGxfZGF0YSBjbGtfZGF0 YTsKIAogc3RhdGljIGludCBjb25zdCBjbGtzX2luaXRfb25bXSBfX2luaXRjb25zdCA9IHsKQEAg LTE0NCwxMiArMTQzLDE0IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBpbXg2c3hfY2xvY2tzX2luaXQo c3RydWN0IGRldmljZV9ub2RlICpjY21fbm9kZSkKIAogCWNsa3NbSU1YNlNYX0NMS19EVU1NWV0g PSBpbXhfY2xrX2ZpeGVkKCJkdW1teSIsIDApOwogCi0JY2xrc1tJTVg2U1hfQ0xLX0NLSUxdID0g b2ZfY2xrX2dldF9ieV9uYW1lKGNjbV9ub2RlLCAiY2tpbCIpOwotCWNsa3NbSU1YNlNYX0NMS19P U0NdID0gb2ZfY2xrX2dldF9ieV9uYW1lKGNjbV9ub2RlLCAib3NjIik7CisJY2xrc1tJTVg2U1hf Q0xLX0NLSUxdID0gb2ZfY2xrX3Byb3ZpZGVyX2dldF9ieV9uYW1lKGNjbV9ub2RlLCAiY2tpbCIp OworCWNsa3NbSU1YNlNYX0NMS19PU0NdID0gb2ZfY2xrX3Byb3ZpZGVyX2dldF9ieV9uYW1lKGNj bV9ub2RlLCAib3NjIik7CiAKIAkvKiBpcHBfZGkgY2xvY2sgaXMgZXh0ZXJuYWwgaW5wdXQgKi8K LQljbGtzW0lNWDZTWF9DTEtfSVBQX0RJMF0gPSBvZl9jbGtfZ2V0X2J5X25hbWUoY2NtX25vZGUs ICJpcHBfZGkwIik7Ci0JY2xrc1tJTVg2U1hfQ0xLX0lQUF9ESTFdID0gb2ZfY2xrX2dldF9ieV9u YW1lKGNjbV9ub2RlLCAiaXBwX2RpMSIpOworCWNsa3NbSU1YNlNYX0NMS19JUFBfREkwXSA9IG9m X2Nsa19wcm92aWRlcl9nZXRfYnlfbmFtZShjY21fbm9kZSwKKwkJCQkJCQkgICAgICAgImlwcF9k aTAiKTsKKwljbGtzW0lNWDZTWF9DTEtfSVBQX0RJMV0gPSBvZl9jbGtfcHJvdmlkZXJfZ2V0X2J5 X25hbWUoY2NtX25vZGUsCisJCQkJCQkJICAgICAgICJpcHBfZGkxIik7CiAKIAkvKiBDbG9jayBz b3VyY2UgZnJvbSBleHRlcm5hbCBjbG9jayB2aWEgQ0xLMSBQQUQgKi8KIAljbGtzW0lNWDZTWF9D TEtfQU5BQ0xLMV0gPSBpbXhfb2J0YWluX2ZpeGVkX2Nsb2NrKCJhbmFjbGsxIiwgMCk7CkBAIC0x ODQsMTMgKzE4NSwyMCBAQCBzdGF0aWMgdm9pZCBfX2luaXQgaW14NnN4X2Nsb2Nrc19pbml0KHN0 cnVjdCBkZXZpY2Vfbm9kZSAqY2NtX25vZGUpCiAJY2xrc1tJTVg2U1hfUExMN19CWVBBU1NdID0g aW14X2Nsa19tdXhfZmxhZ3MoInBsbDdfYnlwYXNzIiwgYmFzZSArIDB4MjAsIDE2LCAxLCBwbGw3 X2J5cGFzc19zZWxzLCBBUlJBWV9TSVpFKHBsbDdfYnlwYXNzX3NlbHMpLCBDTEtfU0VUX1JBVEVf UEFSRU5UKTsKIAogCS8qIERvIG5vdCBieXBhc3MgUExMcyBpbml0aWFsbHkgKi8KLQljbGtfc2V0 X3BhcmVudChjbGtzW0lNWDZTWF9QTEwxX0JZUEFTU10sIGNsa3NbSU1YNlNYX0NMS19QTEwxXSk7 Ci0JY2xrX3NldF9wYXJlbnQoY2xrc1tJTVg2U1hfUExMMl9CWVBBU1NdLCBjbGtzW0lNWDZTWF9D TEtfUExMMl0pOwotCWNsa19zZXRfcGFyZW50KGNsa3NbSU1YNlNYX1BMTDNfQllQQVNTXSwgY2xr c1tJTVg2U1hfQ0xLX1BMTDNdKTsKLQljbGtfc2V0X3BhcmVudChjbGtzW0lNWDZTWF9QTEw0X0JZ UEFTU10sIGNsa3NbSU1YNlNYX0NMS19QTEw0XSk7Ci0JY2xrX3NldF9wYXJlbnQoY2xrc1tJTVg2 U1hfUExMNV9CWVBBU1NdLCBjbGtzW0lNWDZTWF9DTEtfUExMNV0pOwotCWNsa19zZXRfcGFyZW50 KGNsa3NbSU1YNlNYX1BMTDZfQllQQVNTXSwgY2xrc1tJTVg2U1hfQ0xLX1BMTDZdKTsKLQljbGtf c2V0X3BhcmVudChjbGtzW0lNWDZTWF9QTEw3X0JZUEFTU10sIGNsa3NbSU1YNlNYX0NMS19QTEw3 XSk7CisJY2xrX3Byb3ZpZGVyX3NldF9wYXJlbnQoY2xrc1tJTVg2U1hfUExMMV9CWVBBU1NdLAor CQkJCWNsa3NbSU1YNlNYX0NMS19QTEwxXSk7CisJY2xrX3Byb3ZpZGVyX3NldF9wYXJlbnQoY2xr c1tJTVg2U1hfUExMMl9CWVBBU1NdLAorCQkJCWNsa3NbSU1YNlNYX0NMS19QTEwyXSk7CisJY2xr X3Byb3ZpZGVyX3NldF9wYXJlbnQoY2xrc1tJTVg2U1hfUExMM19CWVBBU1NdLAorCQkJCWNsa3Nb SU1YNlNYX0NMS19QTEwzXSk7CisJY2xrX3Byb3ZpZGVyX3NldF9wYXJlbnQoY2xrc1tJTVg2U1hf UExMNF9CWVBBU1NdLAorCQkJCWNsa3NbSU1YNlNYX0NMS19QTEw0XSk7CisJY2xrX3Byb3ZpZGVy X3NldF9wYXJlbnQoY2xrc1tJTVg2U1hfUExMNV9CWVBBU1NdLAorCQkJCWNsa3NbSU1YNlNYX0NM S19QTEw1XSk7CisJY2xrX3Byb3ZpZGVyX3NldF9wYXJlbnQoY2xrc1tJTVg2U1hfUExMNl9CWVBB U1NdLAorCQkJCWNsa3NbSU1YNlNYX0NMS19QTEw2XSk7CisJY2xrX3Byb3ZpZGVyX3NldF9wYXJl bnQoY2xrc1tJTVg2U1hfUExMN19CWVBBU1NdLAorCQkJCWNsa3NbSU1YNlNYX0NMS19QTEw3XSk7 CiAKIAljbGtzW0lNWDZTWF9DTEtfUExMMV9TWVNdICAgICAgPSBpbXhfY2xrX2dhdGUoInBsbDFf c3lzIiwgICAgICAicGxsMV9ieXBhc3MiLCBiYXNlICsgMHgwMCwgMTMpOwogCWNsa3NbSU1YNlNY X0NMS19QTEwyX0JVU10gICAgICA9IGlteF9jbGtfZ2F0ZSgicGxsMl9idXMiLCAgICAgICJwbGwy X2J5cGFzcyIsIGJhc2UgKyAweDMwLCAxMyk7CkBAIC00OTgsNjUgKzUwNiw4MCBAQCBzdGF0aWMg dm9pZCBfX2luaXQgaW14NnN4X2Nsb2Nrc19pbml0KHN0cnVjdCBkZXZpY2Vfbm9kZSAqY2NtX25v ZGUpCiAJb2ZfY2xrX2FkZF9wcm92aWRlcihucCwgb2ZfY2xrX3NyY19vbmVjZWxsX2dldCwgJmNs a19kYXRhKTsKIAogCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGNsa3NfaW5pdF9vbik7IGkr KykKLQkJY2xrX3ByZXBhcmVfZW5hYmxlKGNsa3NbY2xrc19pbml0X29uW2ldXSk7CisJCWNsa19w cm92aWRlcl9wcmVwYXJlX2VuYWJsZShjbGtzW2Nsa3NfaW5pdF9vbltpXV0pOwogCiAJaWYgKElT X0VOQUJMRUQoQ09ORklHX1VTQl9NWFNfUEhZKSkgewotCQljbGtfcHJlcGFyZV9lbmFibGUoY2xr c1tJTVg2U1hfQ0xLX1VTQlBIWTFfR0FURV0pOwotCQljbGtfcHJlcGFyZV9lbmFibGUoY2xrc1tJ TVg2U1hfQ0xLX1VTQlBIWTJfR0FURV0pOworCQljbGtfcHJvdmlkZXJfcHJlcGFyZV9lbmFibGUo Y2xrc1tJTVg2U1hfQ0xLX1VTQlBIWTFfR0FURV0pOworCQljbGtfcHJvdmlkZXJfcHJlcGFyZV9l bmFibGUoY2xrc1tJTVg2U1hfQ0xLX1VTQlBIWTJfR0FURV0pOwogCX0KIAogCS8qIFNldCB0aGUg ZGVmYXVsdCAxMzJNSHogZm9yIEVJTSBtb2R1bGUgKi8KLQljbGtfc2V0X3BhcmVudChjbGtzW0lN WDZTWF9DTEtfRUlNX1NMT1dfU0VMXSwgY2xrc1tJTVg2U1hfQ0xLX1BMTDJfUEZEMl0pOwotCWNs a19zZXRfcmF0ZShjbGtzW0lNWDZTWF9DTEtfRUlNX1NMT1ddLCAxMzIwMDAwMDApOworCWNsa19w cm92aWRlcl9zZXRfcGFyZW50KGNsa3NbSU1YNlNYX0NMS19FSU1fU0xPV19TRUxdLAorCQkJCWNs a3NbSU1YNlNYX0NMS19QTEwyX1BGRDJdKTsKKwljbGtfcHJvdmlkZXJfc2V0X3JhdGUoY2xrc1tJ TVg2U1hfQ0xLX0VJTV9TTE9XXSwgMTMyMDAwMDAwKTsKIAogCS8qIHNldCBwYXJlbnQgY2xvY2sg Zm9yIExDRElGMSBwaXhlbCBjbG9jayAqLwotCWNsa19zZXRfcGFyZW50KGNsa3NbSU1YNlNYX0NM S19MQ0RJRjFfUFJFX1NFTF0sIGNsa3NbSU1YNlNYX0NMS19QTEw1X1ZJREVPX0RJVl0pOwotCWNs a19zZXRfcGFyZW50KGNsa3NbSU1YNlNYX0NMS19MQ0RJRjFfU0VMXSwgY2xrc1tJTVg2U1hfQ0xL X0xDRElGMV9QT0RGXSk7CisJY2xrX3Byb3ZpZGVyX3NldF9wYXJlbnQoY2xrc1tJTVg2U1hfQ0xL X0xDRElGMV9QUkVfU0VMXSwKKwkJCQljbGtzW0lNWDZTWF9DTEtfUExMNV9WSURFT19ESVZdKTsK KwljbGtfcHJvdmlkZXJfc2V0X3BhcmVudChjbGtzW0lNWDZTWF9DTEtfTENESUYxX1NFTF0sCisJ CQkJY2xrc1tJTVg2U1hfQ0xLX0xDRElGMV9QT0RGXSk7CiAKIAkvKiBTZXQgdGhlIHBhcmVudCBj bGtzIG9mIFBDSWUgbHZkczEgYW5kIHBjaWVfYXhpIHRvIGJlIHBjaWUgcmVmLCBheGkgKi8KLQlp ZiAoY2xrX3NldF9wYXJlbnQoY2xrc1tJTVg2U1hfQ0xLX0xWRFMxX1NFTF0sIGNsa3NbSU1YNlNY X0NMS19QQ0lFX1JFRl8xMjVNXSkpCisJaWYgKGNsa19wcm92aWRlcl9zZXRfcGFyZW50KGNsa3Nb SU1YNlNYX0NMS19MVkRTMV9TRUxdLCBjbGtzW0lNWDZTWF9DTEtfUENJRV9SRUZfMTI1TV0pKQog CQlwcl9lcnIoIkZhaWxlZCB0byBzZXQgcGNpZSBidXMgcGFyZW50IGNsay5cbiIpOwotCWlmIChj bGtfc2V0X3BhcmVudChjbGtzW0lNWDZTWF9DTEtfUENJRV9BWElfU0VMXSwgY2xrc1tJTVg2U1hf Q0xLX0FYSV0pKQorCWlmIChjbGtfcHJvdmlkZXJfc2V0X3BhcmVudChjbGtzW0lNWDZTWF9DTEtf UENJRV9BWElfU0VMXSwgY2xrc1tJTVg2U1hfQ0xLX0FYSV0pKQogCQlwcl9lcnIoIkZhaWxlZCB0 byBzZXQgcGNpZSBwYXJlbnQgY2xrLlxuIik7CiAKIAkvKgogCSAqIEluaXQgZW5ldCBzeXN0ZW0g QUhCIGNsb2NrLCBzZXQgdG8gMjAwTWh6CiAJICogcGxsMl9wZmQyXzM5Nm0tPiBFTkVUX1BPREYt PiBFTkVUX0FIQgogCSAqLwotCWNsa19zZXRfcGFyZW50KGNsa3NbSU1YNlNYX0NMS19FTkVUX1BS RV9TRUxdLCBjbGtzW0lNWDZTWF9DTEtfUExMMl9QRkQyXSk7Ci0JY2xrX3NldF9wYXJlbnQoY2xr c1tJTVg2U1hfQ0xLX0VORVRfU0VMXSwgY2xrc1tJTVg2U1hfQ0xLX0VORVRfUE9ERl0pOwotCWNs a19zZXRfcmF0ZShjbGtzW0lNWDZTWF9DTEtfRU5FVF9QT0RGXSwgMjAwMDAwMDAwKTsKLQljbGtf c2V0X3JhdGUoY2xrc1tJTVg2U1hfQ0xLX0VORVRfUkVGXSwgMTI1MDAwMDAwKTsKLQljbGtfc2V0 X3JhdGUoY2xrc1tJTVg2U1hfQ0xLX0VORVQyX1JFRl0sIDEyNTAwMDAwMCk7CisJY2xrX3Byb3Zp ZGVyX3NldF9wYXJlbnQoY2xrc1tJTVg2U1hfQ0xLX0VORVRfUFJFX1NFTF0sCisJCQkJY2xrc1tJ TVg2U1hfQ0xLX1BMTDJfUEZEMl0pOworCWNsa19wcm92aWRlcl9zZXRfcGFyZW50KGNsa3NbSU1Y NlNYX0NMS19FTkVUX1NFTF0sCisJCQkJY2xrc1tJTVg2U1hfQ0xLX0VORVRfUE9ERl0pOworCWNs a19wcm92aWRlcl9zZXRfcmF0ZShjbGtzW0lNWDZTWF9DTEtfRU5FVF9QT0RGXSwgMjAwMDAwMDAw KTsKKwljbGtfcHJvdmlkZXJfc2V0X3JhdGUoY2xrc1tJTVg2U1hfQ0xLX0VORVRfUkVGXSwgMTI1 MDAwMDAwKTsKKwljbGtfcHJvdmlkZXJfc2V0X3JhdGUoY2xrc1tJTVg2U1hfQ0xLX0VORVQyX1JF Rl0sIDEyNTAwMDAwMCk7CiAKIAkvKiBBdWRpbyBjbG9ja3MgKi8KLQljbGtfc2V0X3JhdGUoY2xr c1tJTVg2U1hfQ0xLX1BMTDRfQVVESU9fRElWXSwgMzkzMjE2MDAwKTsKLQotCWNsa19zZXRfcGFy ZW50KGNsa3NbSU1YNlNYX0NMS19TUERJRl9TRUxdLCBjbGtzW0lNWDZTWF9DTEtfUExMNF9BVURJ T19ESVZdKTsKLQljbGtfc2V0X3JhdGUoY2xrc1tJTVg2U1hfQ0xLX1NQRElGX1BPREZdLCA5ODMw NDAwMCk7Ci0KLQljbGtfc2V0X3BhcmVudChjbGtzW0lNWDZTWF9DTEtfQVVESU9fU0VMXSwgY2xr c1tJTVg2U1hfQ0xLX1BMTDNfVVNCX09UR10pOwotCWNsa19zZXRfcmF0ZShjbGtzW0lNWDZTWF9D TEtfQVVESU9fUE9ERl0sIDI0MDAwMDAwKTsKLQotCWNsa19zZXRfcGFyZW50KGNsa3NbSU1YNlNY X0NMS19TU0kxX1NFTF0sIGNsa3NbSU1YNlNYX0NMS19QTEw0X0FVRElPX0RJVl0pOwotCWNsa19z ZXRfcGFyZW50KGNsa3NbSU1YNlNYX0NMS19TU0kyX1NFTF0sIGNsa3NbSU1YNlNYX0NMS19QTEw0 X0FVRElPX0RJVl0pOwotCWNsa19zZXRfcGFyZW50KGNsa3NbSU1YNlNYX0NMS19TU0kzX1NFTF0s IGNsa3NbSU1YNlNYX0NMS19QTEw0X0FVRElPX0RJVl0pOwotCWNsa19zZXRfcmF0ZShjbGtzW0lN WDZTWF9DTEtfU1NJMV9QT0RGXSwgMjQ1NzYwMDApOwotCWNsa19zZXRfcmF0ZShjbGtzW0lNWDZT WF9DTEtfU1NJMl9QT0RGXSwgMjQ1NzYwMDApOwotCWNsa19zZXRfcmF0ZShjbGtzW0lNWDZTWF9D TEtfU1NJM19QT0RGXSwgMjQ1NzYwMDApOwotCi0JY2xrX3NldF9wYXJlbnQoY2xrc1tJTVg2U1hf Q0xLX0VTQUlfU0VMXSwgY2xrc1tJTVg2U1hfQ0xLX1BMTDRfQVVESU9fRElWXSk7Ci0JY2xrX3Nl dF9yYXRlKGNsa3NbSU1YNlNYX0NMS19FU0FJX1BPREZdLCAyNDU3NjAwMCk7CisJY2xrX3Byb3Zp ZGVyX3NldF9yYXRlKGNsa3NbSU1YNlNYX0NMS19QTEw0X0FVRElPX0RJVl0sIDM5MzIxNjAwMCk7 CisKKwljbGtfcHJvdmlkZXJfc2V0X3BhcmVudChjbGtzW0lNWDZTWF9DTEtfU1BESUZfU0VMXSwK KwkJCQljbGtzW0lNWDZTWF9DTEtfUExMNF9BVURJT19ESVZdKTsKKwljbGtfcHJvdmlkZXJfc2V0 X3JhdGUoY2xrc1tJTVg2U1hfQ0xLX1NQRElGX1BPREZdLCA5ODMwNDAwMCk7CisKKwljbGtfcHJv dmlkZXJfc2V0X3BhcmVudChjbGtzW0lNWDZTWF9DTEtfQVVESU9fU0VMXSwKKwkJCQljbGtzW0lN WDZTWF9DTEtfUExMM19VU0JfT1RHXSk7CisJY2xrX3Byb3ZpZGVyX3NldF9yYXRlKGNsa3NbSU1Y NlNYX0NMS19BVURJT19QT0RGXSwgMjQwMDAwMDApOworCisJY2xrX3Byb3ZpZGVyX3NldF9wYXJl bnQoY2xrc1tJTVg2U1hfQ0xLX1NTSTFfU0VMXSwKKwkJCQljbGtzW0lNWDZTWF9DTEtfUExMNF9B VURJT19ESVZdKTsKKwljbGtfcHJvdmlkZXJfc2V0X3BhcmVudChjbGtzW0lNWDZTWF9DTEtfU1NJ Ml9TRUxdLAorCQkJCWNsa3NbSU1YNlNYX0NMS19QTEw0X0FVRElPX0RJVl0pOworCWNsa19wcm92 aWRlcl9zZXRfcGFyZW50KGNsa3NbSU1YNlNYX0NMS19TU0kzX1NFTF0sCisJCQkJY2xrc1tJTVg2 U1hfQ0xLX1BMTDRfQVVESU9fRElWXSk7CisJY2xrX3Byb3ZpZGVyX3NldF9yYXRlKGNsa3NbSU1Y NlNYX0NMS19TU0kxX1BPREZdLCAyNDU3NjAwMCk7CisJY2xrX3Byb3ZpZGVyX3NldF9yYXRlKGNs a3NbSU1YNlNYX0NMS19TU0kyX1BPREZdLCAyNDU3NjAwMCk7CisJY2xrX3Byb3ZpZGVyX3NldF9y YXRlKGNsa3NbSU1YNlNYX0NMS19TU0kzX1BPREZdLCAyNDU3NjAwMCk7CisKKwljbGtfcHJvdmlk ZXJfc2V0X3BhcmVudChjbGtzW0lNWDZTWF9DTEtfRVNBSV9TRUxdLAorCQkJCWNsa3NbSU1YNlNY X0NMS19QTEw0X0FVRElPX0RJVl0pOworCWNsa19wcm92aWRlcl9zZXRfcmF0ZShjbGtzW0lNWDZT WF9DTEtfRVNBSV9QT0RGXSwgMjQ1NzYwMDApOwogCiAJLyogU2V0IHBhcmVudCBjbG9jayBmb3Ig dmFkYyAqLwotCWNsa19zZXRfcGFyZW50KGNsa3NbSU1YNlNYX0NMS19WSURfU0VMXSwgY2xrc1tJ TVg2U1hfQ0xLX1BMTDNfVVNCX09UR10pOworCWNsa19wcm92aWRlcl9zZXRfcGFyZW50KGNsa3Nb SU1YNlNYX0NMS19WSURfU0VMXSwKKwkJCQljbGtzW0lNWDZTWF9DTEtfUExMM19VU0JfT1RHXSk7 CiAKIAkvKiBkZWZhdWx0IHBhcmVudCBvZiBjYW5fc2VsIGNsb2NrIGlzIGludmFsaWQsIG1hbnVh bGx5IHNldCBpdCBoZXJlICovCi0JY2xrX3NldF9wYXJlbnQoY2xrc1tJTVg2U1hfQ0xLX0NBTl9T RUxdLCBjbGtzW0lNWDZTWF9DTEtfUExMM182ME1dKTsKKwljbGtfcHJvdmlkZXJfc2V0X3BhcmVu dChjbGtzW0lNWDZTWF9DTEtfQ0FOX1NFTF0sCisJCQkJY2xrc1tJTVg2U1hfQ0xLX1BMTDNfNjBN XSk7CiAKIAkvKiBVcGRhdGUgZ3B1IGNsb2NrIGZyb20gZGVmYXVsdCA1MjhNIHRvIDcyME0gKi8K LQljbGtfc2V0X3BhcmVudChjbGtzW0lNWDZTWF9DTEtfR1BVX0NPUkVfU0VMXSwgY2xrc1tJTVg2 U1hfQ0xLX1BMTDNfUEZEMF0pOwotCWNsa19zZXRfcGFyZW50KGNsa3NbSU1YNlNYX0NMS19HUFVf QVhJX1NFTF0sIGNsa3NbSU1YNlNYX0NMS19QTEwzX1BGRDBdKTsKKwljbGtfcHJvdmlkZXJfc2V0 X3BhcmVudChjbGtzW0lNWDZTWF9DTEtfR1BVX0NPUkVfU0VMXSwKKwkJCQljbGtzW0lNWDZTWF9D TEtfUExMM19QRkQwXSk7CisJY2xrX3Byb3ZpZGVyX3NldF9wYXJlbnQoY2xrc1tJTVg2U1hfQ0xL X0dQVV9BWElfU0VMXSwKKwkJCQljbGtzW0lNWDZTWF9DTEtfUExMM19QRkQwXSk7CiAKIAkvKiBT ZXQgaW5pdGlhbCBwb3dlciBtb2RlICovCiAJaW14NnFfc2V0X2xwbShXQUlUX0NMT0NLRUQpOwpk aWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1pbXgvY2xrLXBmZC5jIGIvYXJjaC9hcm0vbWFjaC1p bXgvY2xrLXBmZC5jCmluZGV4IDBiMGY2ZjYuLjdmMTcyYTIgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJt L21hY2gtaW14L2Nsay1wZmQuYworKysgYi9hcmNoL2FybS9tYWNoLWlteC9jbGstcGZkLmMKQEAg LTEwLDcgKzEwLDYgQEAKICAqIGh0dHA6Ly93d3cuZ251Lm9yZy9jb3B5bGVmdC9ncGwuaHRtbAog ICovCiAKLSNpbmNsdWRlIDxsaW51eC9jbGsuaD4KICNpbmNsdWRlIDxsaW51eC9jbGstcHJvdmlk ZXIuaD4KICNpbmNsdWRlIDxsaW51eC9pby5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KQEAg LTEyOCwxMSArMTI3LDExIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrX29wcyBjbGtfcGZkX29w cyA9IHsKIAkuaXNfZW5hYmxlZCAgICAgPSBjbGtfcGZkX2lzX2VuYWJsZWQsCiB9OwogCi1zdHJ1 Y3QgY2xrICppbXhfY2xrX3BmZChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpwYXJlbnRf bmFtZSwKK3N0cnVjdCBjbGtfY29yZSAqaW14X2Nsa19wZmQoY29uc3QgY2hhciAqbmFtZSwgY29u c3QgY2hhciAqcGFyZW50X25hbWUsCiAJCQl2b2lkIF9faW9tZW0gKnJlZywgdTggaWR4KQogewog CXN0cnVjdCBjbGtfcGZkICpwZmQ7Ci0Jc3RydWN0IGNsayAqY2xrOworCXN0cnVjdCBjbGtfY29y ZSAqY2xrOwogCXN0cnVjdCBjbGtfaW5pdF9kYXRhIGluaXQ7CiAKIAlwZmQgPSBremFsbG9jKHNp emVvZigqcGZkKSwgR0ZQX0tFUk5FTCk7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWlteC9j bGstcGxsdjEuYyBiL2FyY2gvYXJtL21hY2gtaW14L2Nsay1wbGx2MS5jCmluZGV4IGQyMWQxNGMu LjdlZjJjYWIgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtaW14L2Nsay1wbGx2MS5jCisrKyBi L2FyY2gvYXJtL21hY2gtaW14L2Nsay1wbGx2MS5jCkBAIC0xLDQgKzEsMyBAQAotI2luY2x1ZGUg PGxpbnV4L2Nsay5oPgogI2luY2x1ZGUgPGxpbnV4L2Nsay1wcm92aWRlci5oPgogI2luY2x1ZGUg PGxpbnV4L2lvLmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgpAQCAtOTcsMTEgKzk2LDExIEBA IHN0YXRpYyBzdHJ1Y3QgY2xrX29wcyBjbGtfcGxsdjFfb3BzID0gewogCS5yZWNhbGNfcmF0ZSA9 IGNsa19wbGx2MV9yZWNhbGNfcmF0ZSwKIH07CiAKLXN0cnVjdCBjbGsgKmlteF9jbGtfcGxsdjEo Y29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqcGFyZW50LAorc3RydWN0IGNsa19jb3JlICpp bXhfY2xrX3BsbHYxKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnBhcmVudCwKIAkJdm9p ZCBfX2lvbWVtICpiYXNlKQogewogCXN0cnVjdCBjbGtfcGxsdjEgKnBsbDsKLQlzdHJ1Y3QgY2xr ICpjbGs7CisJc3RydWN0IGNsa19jb3JlICpjbGs7CiAJc3RydWN0IGNsa19pbml0X2RhdGEgaW5p dDsKIAogCXBsbCA9IGttYWxsb2Moc2l6ZW9mKCpwbGwpLCBHRlBfS0VSTkVMKTsKZGlmZiAtLWdp dCBhL2FyY2gvYXJtL21hY2gtaW14L2Nsay1wbGx2Mi5jIGIvYXJjaC9hcm0vbWFjaC1pbXgvY2xr LXBsbHYyLmMKaW5kZXggMjA4ODlkNS4uM2RjYTdkZiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFj aC1pbXgvY2xrLXBsbHYyLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1pbXgvY2xrLXBsbHYyLmMKQEAg LTEsNSArMSw0IEBACiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+Ci0jaW5jbHVkZSA8bGludXgv Y2xrLmg+CiAjaW5jbHVkZSA8bGludXgvaW8uaD4KICNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgog I2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CkBAIC0yMzcsMTEgKzIzNiwxMSBAQCBzdGF0aWMgc3Ry dWN0IGNsa19vcHMgY2xrX3BsbHYyX29wcyA9IHsKIAkuc2V0X3JhdGUgPSBjbGtfcGxsdjJfc2V0 X3JhdGUsCiB9OwogCi1zdHJ1Y3QgY2xrICppbXhfY2xrX3BsbHYyKGNvbnN0IGNoYXIgKm5hbWUs IGNvbnN0IGNoYXIgKnBhcmVudCwKK3N0cnVjdCBjbGtfY29yZSAqaW14X2Nsa19wbGx2Mihjb25z dCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpwYXJlbnQsCiAJCXZvaWQgX19pb21lbSAqYmFzZSkK IHsKIAlzdHJ1Y3QgY2xrX3BsbHYyICpwbGw7Ci0Jc3RydWN0IGNsayAqY2xrOworCXN0cnVjdCBj bGtfY29yZSAqY2xrOwogCXN0cnVjdCBjbGtfaW5pdF9kYXRhIGluaXQ7CiAKIAlwbGwgPSBremFs bG9jKHNpemVvZigqcGxsKSwgR0ZQX0tFUk5FTCk7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNo LWlteC9jbGstcGxsdjMuYyBiL2FyY2gvYXJtL21hY2gtaW14L2Nsay1wbGx2My5jCmluZGV4IDU3 ZGU3NGQuLmVhYmNkY2QgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtaW14L2Nsay1wbGx2My5j CisrKyBiL2FyY2gvYXJtL21hY2gtaW14L2Nsay1wbGx2My5jCkBAIC0xMCw3ICsxMCw2IEBACiAg KiBodHRwOi8vd3d3LmdudS5vcmcvY29weWxlZnQvZ3BsLmh0bWwKICAqLwogCi0jaW5jbHVkZSA8 bGludXgvY2xrLmg+CiAjaW5jbHVkZSA8bGludXgvY2xrLXByb3ZpZGVyLmg+CiAjaW5jbHVkZSA8 bGludXgvZGVsYXkuaD4KICNpbmNsdWRlIDxsaW51eC9pby5oPgpAQCAtMjgzLDEzICsyODIsMTMg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtfb3BzIGNsa19wbGx2M19lbmV0X29wcyA9IHsKIAku cmVjYWxjX3JhdGUJPSBjbGtfcGxsdjNfZW5ldF9yZWNhbGNfcmF0ZSwKIH07CiAKLXN0cnVjdCBj bGsgKmlteF9jbGtfcGxsdjMoZW51bSBpbXhfcGxsdjNfdHlwZSB0eXBlLCBjb25zdCBjaGFyICpu YW1lLAorc3RydWN0IGNsa19jb3JlICppbXhfY2xrX3BsbHYzKGVudW0gaW14X3BsbHYzX3R5cGUg dHlwZSwgY29uc3QgY2hhciAqbmFtZSwKIAkJCSAgY29uc3QgY2hhciAqcGFyZW50X25hbWUsIHZv aWQgX19pb21lbSAqYmFzZSwKIAkJCSAgdTMyIGRpdl9tYXNrKQogewogCXN0cnVjdCBjbGtfcGxs djMgKnBsbDsKIAljb25zdCBzdHJ1Y3QgY2xrX29wcyAqb3BzOwotCXN0cnVjdCBjbGsgKmNsazsK KwlzdHJ1Y3QgY2xrX2NvcmUgKmNsazsKIAlzdHJ1Y3QgY2xrX2luaXRfZGF0YSBpbml0OwogCiAJ cGxsID0ga3phbGxvYyhzaXplb2YoKnBsbCksIEdGUF9LRVJORUwpOwpkaWZmIC0tZ2l0IGEvYXJj aC9hcm0vbWFjaC1pbXgvY2xrLXZmNjEwLmMgYi9hcmNoL2FybS9tYWNoLWlteC9jbGstdmY2MTAu YwppbmRleCBhMTc4MTg0Li5kNjMxMzA1IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLWlteC9j bGstdmY2MTAuYworKysgYi9hcmNoL2FybS9tYWNoLWlteC9jbGstdmY2MTAuYwpAQCAtOSw3ICs5 LDYgQEAKICAqLwogCiAjaW5jbHVkZSA8bGludXgvb2ZfYWRkcmVzcy5oPgotI2luY2x1ZGUgPGxp bnV4L2Nsay5oPgogI2luY2x1ZGUgPGR0LWJpbmRpbmdzL2Nsb2NrL3ZmNjEwLWNsb2NrLmg+CiAK ICNpbmNsdWRlICJjbGsuaCIKQEAgLTk3LDcgKzk2LDcgQEAgc3RhdGljIHN0cnVjdCBjbGtfZGl2 X3RhYmxlIHBsbDRfbWFpbl9kaXZfdGFibGVbXSA9IHsKIAl7IH0KIH07CiAKLXN0YXRpYyBzdHJ1 Y3QgY2xrICpjbGtbVkY2MTBfQ0xLX0VORF07CitzdGF0aWMgc3RydWN0IGNsa19jb3JlICpjbGtb VkY2MTBfQ0xLX0VORF07CiBzdGF0aWMgc3RydWN0IGNsa19vbmVjZWxsX2RhdGEgY2xrX2RhdGE7 CiAKIHN0YXRpYyB1bnNpZ25lZCBpbnQgY29uc3QgY2xrc19pbml0X29uW10gX19pbml0Y29uc3Qg PSB7CkBAIC0zMjEsMjMgKzMyMCwzNSBAQCBzdGF0aWMgdm9pZCBfX2luaXQgdmY2MTBfY2xvY2tz X2luaXQoc3RydWN0IGRldmljZV9ub2RlICpjY21fbm9kZSkKIAogCWlteF9jaGVja19jbG9ja3Mo Y2xrLCBBUlJBWV9TSVpFKGNsaykpOwogCi0JY2xrX3NldF9wYXJlbnQoY2xrW1ZGNjEwX0NMS19R U1BJMF9TRUxdLCBjbGtbVkY2MTBfQ0xLX1BMTDFfUEZENF0pOwotCWNsa19zZXRfcmF0ZShjbGtb VkY2MTBfQ0xLX1FTUEkwX1g0X0RJVl0sIGNsa19nZXRfcmF0ZShjbGtbVkY2MTBfQ0xLX1FTUEkw X1NFTF0pIC8gMik7Ci0JY2xrX3NldF9yYXRlKGNsa1tWRjYxMF9DTEtfUVNQSTBfWDJfRElWXSwg Y2xrX2dldF9yYXRlKGNsa1tWRjYxMF9DTEtfUVNQSTBfWDRfRElWXSkgLyAyKTsKLQljbGtfc2V0 X3JhdGUoY2xrW1ZGNjEwX0NMS19RU1BJMF9YMV9ESVZdLCBjbGtfZ2V0X3JhdGUoY2xrW1ZGNjEw X0NMS19RU1BJMF9YMl9ESVZdKSAvIDIpOwotCi0JY2xrX3NldF9wYXJlbnQoY2xrW1ZGNjEwX0NM S19RU1BJMV9TRUxdLCBjbGtbVkY2MTBfQ0xLX1BMTDFfUEZENF0pOwotCWNsa19zZXRfcmF0ZShj bGtbVkY2MTBfQ0xLX1FTUEkxX1g0X0RJVl0sIGNsa19nZXRfcmF0ZShjbGtbVkY2MTBfQ0xLX1FT UEkxX1NFTF0pIC8gMik7Ci0JY2xrX3NldF9yYXRlKGNsa1tWRjYxMF9DTEtfUVNQSTFfWDJfRElW XSwgY2xrX2dldF9yYXRlKGNsa1tWRjYxMF9DTEtfUVNQSTFfWDRfRElWXSkgLyAyKTsKLQljbGtf c2V0X3JhdGUoY2xrW1ZGNjEwX0NMS19RU1BJMV9YMV9ESVZdLCBjbGtfZ2V0X3JhdGUoY2xrW1ZG NjEwX0NMS19RU1BJMV9YMl9ESVZdKSAvIDIpOwotCi0JY2xrX3NldF9wYXJlbnQoY2xrW1ZGNjEw X0NMS19TQUkwX1NFTF0sIGNsa1tWRjYxMF9DTEtfQVVESU9fRVhUXSk7Ci0JY2xrX3NldF9wYXJl bnQoY2xrW1ZGNjEwX0NMS19TQUkxX1NFTF0sIGNsa1tWRjYxMF9DTEtfQVVESU9fRVhUXSk7Ci0J Y2xrX3NldF9wYXJlbnQoY2xrW1ZGNjEwX0NMS19TQUkyX1NFTF0sIGNsa1tWRjYxMF9DTEtfQVVE SU9fRVhUXSk7Ci0JY2xrX3NldF9wYXJlbnQoY2xrW1ZGNjEwX0NMS19TQUkzX1NFTF0sIGNsa1tW RjYxMF9DTEtfQVVESU9fRVhUXSk7CisJY2xrX3Byb3ZpZGVyX3NldF9wYXJlbnQoY2xrW1ZGNjEw X0NMS19RU1BJMF9TRUxdLAorCQkJCWNsa1tWRjYxMF9DTEtfUExMMV9QRkQ0XSk7CisJY2xrX3By b3ZpZGVyX3NldF9yYXRlKGNsa1tWRjYxMF9DTEtfUVNQSTBfWDRfRElWXSwKKwkJCSAgICAgIGNs a19wcm92aWRlcl9nZXRfcmF0ZShjbGtbVkY2MTBfQ0xLX1FTUEkwX1NFTF0pIC8gMik7CisJY2xr X3Byb3ZpZGVyX3NldF9yYXRlKGNsa1tWRjYxMF9DTEtfUVNQSTBfWDJfRElWXSwKKwkJCSAgICAg IGNsa19wcm92aWRlcl9nZXRfcmF0ZShjbGtbVkY2MTBfQ0xLX1FTUEkwX1g0X0RJVl0pIC8gMik7 CisJY2xrX3Byb3ZpZGVyX3NldF9yYXRlKGNsa1tWRjYxMF9DTEtfUVNQSTBfWDFfRElWXSwKKwkJ CSAgICAgIGNsa19wcm92aWRlcl9nZXRfcmF0ZShjbGtbVkY2MTBfQ0xLX1FTUEkwX1gyX0RJVl0p IC8gMik7CisKKwljbGtfcHJvdmlkZXJfc2V0X3BhcmVudChjbGtbVkY2MTBfQ0xLX1FTUEkxX1NF TF0sCisJCQkJY2xrW1ZGNjEwX0NMS19QTEwxX1BGRDRdKTsKKwljbGtfcHJvdmlkZXJfc2V0X3Jh dGUoY2xrW1ZGNjEwX0NMS19RU1BJMV9YNF9ESVZdLAorCQkJICAgICAgY2xrX3Byb3ZpZGVyX2dl dF9yYXRlKGNsa1tWRjYxMF9DTEtfUVNQSTFfU0VMXSkgLyAyKTsKKwljbGtfcHJvdmlkZXJfc2V0 X3JhdGUoY2xrW1ZGNjEwX0NMS19RU1BJMV9YMl9ESVZdLAorCQkJICAgICAgY2xrX3Byb3ZpZGVy X2dldF9yYXRlKGNsa1tWRjYxMF9DTEtfUVNQSTFfWDRfRElWXSkgLyAyKTsKKwljbGtfcHJvdmlk ZXJfc2V0X3JhdGUoY2xrW1ZGNjEwX0NMS19RU1BJMV9YMV9ESVZdLAorCQkJICAgICAgY2xrX3By b3ZpZGVyX2dldF9yYXRlKGNsa1tWRjYxMF9DTEtfUVNQSTFfWDJfRElWXSkgLyAyKTsKKworCWNs a19wcm92aWRlcl9zZXRfcGFyZW50KGNsa1tWRjYxMF9DTEtfU0FJMF9TRUxdLAorCQkJCWNsa1tW RjYxMF9DTEtfQVVESU9fRVhUXSk7CisJY2xrX3Byb3ZpZGVyX3NldF9wYXJlbnQoY2xrW1ZGNjEw X0NMS19TQUkxX1NFTF0sCisJCQkJY2xrW1ZGNjEwX0NMS19BVURJT19FWFRdKTsKKwljbGtfcHJv dmlkZXJfc2V0X3BhcmVudChjbGtbVkY2MTBfQ0xLX1NBSTJfU0VMXSwKKwkJCQljbGtbVkY2MTBf Q0xLX0FVRElPX0VYVF0pOworCWNsa19wcm92aWRlcl9zZXRfcGFyZW50KGNsa1tWRjYxMF9DTEtf U0FJM19TRUxdLAorCQkJCWNsa1tWRjYxMF9DTEtfQVVESU9fRVhUXSk7CiAKIAlmb3IgKGkgPSAw OyBpIDwgQVJSQVlfU0laRShjbGtzX2luaXRfb24pOyBpKyspCi0JCWNsa19wcmVwYXJlX2VuYWJs ZShjbGtbY2xrc19pbml0X29uW2ldXSk7CisJCWNsa19wcm92aWRlcl9wcmVwYXJlX2VuYWJsZShj bGtbY2xrc19pbml0X29uW2ldXSk7CiAKIAkvKiBBZGQgdGhlIGNsb2NrcyB0byBwcm92aWRlciBs aXN0ICovCiAJY2xrX2RhdGEuY2xrcyA9IGNsazsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gt aW14L2Nsay5jIGIvYXJjaC9hcm0vbWFjaC1pbXgvY2xrLmMKaW5kZXggZGYxMmI1My4uZmM1NDIw MyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1pbXgvY2xrLmMKKysrIGIvYXJjaC9hcm0vbWFj aC1pbXgvY2xrLmMKQEAgLTEsNCArMSwzIEBACi0jaW5jbHVkZSA8bGludXgvY2xrLmg+CiAjaW5j bHVkZSA8bGludXgvZXJyLmg+CiAjaW5jbHVkZSA8bGludXgvb2YuaD4KICNpbmNsdWRlIDxsaW51 eC9zbGFiLmg+CkBAIC03LDcgKzYsNyBAQAogCiBERUZJTkVfU1BJTkxPQ0soaW14X2NjbV9sb2Nr KTsKIAotdm9pZCBfX2luaXQgaW14X2NoZWNrX2Nsb2NrcyhzdHJ1Y3QgY2xrICpjbGtzW10sIHVu c2lnbmVkIGludCBjb3VudCkKK3ZvaWQgX19pbml0IGlteF9jaGVja19jbG9ja3Moc3RydWN0IGNs a19jb3JlICpjbGtzW10sIHVuc2lnbmVkIGludCBjb3VudCkKIHsKIAl1bnNpZ25lZCBpOwogCkBA IC0xNywxMCArMTYsMTAgQEAgdm9pZCBfX2luaXQgaW14X2NoZWNrX2Nsb2NrcyhzdHJ1Y3QgY2xr ICpjbGtzW10sIHVuc2lnbmVkIGludCBjb3VudCkKIAkJCSAgICAgICBpLCBQVFJfRVJSKGNsa3Nb aV0pKTsKIH0KIAotc3RhdGljIHN0cnVjdCBjbGsgKiBfX2luaXQgaW14X29idGFpbl9maXhlZF9j bG9ja19mcm9tX2R0KGNvbnN0IGNoYXIgKm5hbWUpCitzdGF0aWMgc3RydWN0IGNsa19jb3JlICog X19pbml0IGlteF9vYnRhaW5fZml4ZWRfY2xvY2tfZnJvbV9kdChjb25zdCBjaGFyICpuYW1lKQog ewogCXN0cnVjdCBvZl9waGFuZGxlX2FyZ3MgcGhhbmRsZTsKLQlzdHJ1Y3QgY2xrICpjbGsgPSBF UlJfUFRSKC1FTk9ERVYpOworCXN0cnVjdCBjbGtfY29yZSAqY2xrID0gRVJSX1BUUigtRU5PREVW KTsKIAljaGFyICpwYXRoOwogCiAJcGF0aCA9IGthc3ByaW50ZihHRlBfS0VSTkVMLCAiL2Nsb2Nr cy8lcyIsIG5hbWUpOwpAQCAtMzcsMTAgKzM2LDEwIEBAIHN0YXRpYyBzdHJ1Y3QgY2xrICogX19p bml0IGlteF9vYnRhaW5fZml4ZWRfY2xvY2tfZnJvbV9kdChjb25zdCBjaGFyICpuYW1lKQogCXJl dHVybiBjbGs7CiB9CiAKLXN0cnVjdCBjbGsgKiBfX2luaXQgaW14X29idGFpbl9maXhlZF9jbG9j aygKK3N0cnVjdCBjbGtfY29yZSAqIF9faW5pdCBpbXhfb2J0YWluX2ZpeGVkX2Nsb2NrKAogCQkJ Y29uc3QgY2hhciAqbmFtZSwgdW5zaWduZWQgbG9uZyByYXRlKQogewotCXN0cnVjdCBjbGsgKmNs azsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmNsazsKIAogCWNsayA9IGlteF9vYnRhaW5fZml4ZWRfY2xv Y2tfZnJvbV9kdChuYW1lKTsKIAlpZiAoSVNfRVJSKGNsaykpCmRpZmYgLS1naXQgYS9hcmNoL2Fy bS9tYWNoLWlteC9jbGsuaCBiL2FyY2gvYXJtL21hY2gtaW14L2Nsay5oCmluZGV4IDRjZGY4YjYu LmQ0ZDIzNGMgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtaW14L2Nsay5oCisrKyBiL2FyY2gv YXJtL21hY2gtaW14L2Nsay5oCkBAIC02LDE0ICs2LDE0IEBACiAKIGV4dGVybiBzcGlubG9ja190 IGlteF9jY21fbG9jazsKIAotdm9pZCBpbXhfY2hlY2tfY2xvY2tzKHN0cnVjdCBjbGsgKmNsa3Nb XSwgdW5zaWduZWQgaW50IGNvdW50KTsKK3ZvaWQgaW14X2NoZWNrX2Nsb2NrcyhzdHJ1Y3QgY2xr X2NvcmUgKmNsa3NbXSwgdW5zaWduZWQgaW50IGNvdW50KTsKIAogZXh0ZXJuIHZvaWQgaW14X2Nz Y21yMV9maXh1cCh1MzIgKnZhbCk7CiAKLXN0cnVjdCBjbGsgKmlteF9jbGtfcGxsdjEoY29uc3Qg Y2hhciAqbmFtZSwgY29uc3QgY2hhciAqcGFyZW50LAorc3RydWN0IGNsa19jb3JlICppbXhfY2xr X3BsbHYxKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnBhcmVudCwKIAkJdm9pZCBfX2lv bWVtICpiYXNlKTsKIAotc3RydWN0IGNsayAqaW14X2Nsa19wbGx2Mihjb25zdCBjaGFyICpuYW1l LCBjb25zdCBjaGFyICpwYXJlbnQsCitzdHJ1Y3QgY2xrX2NvcmUgKmlteF9jbGtfcGxsdjIoY29u c3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqcGFyZW50LAogCQl2b2lkIF9faW9tZW0gKmJhc2Up OwogCiBlbnVtIGlteF9wbGx2M190eXBlIHsKQEAgLTI0LDI5ICsyNCwyOSBAQCBlbnVtIGlteF9w bGx2M190eXBlIHsKIAlJTVhfUExMVjNfRU5FVCwKIH07CiAKLXN0cnVjdCBjbGsgKmlteF9jbGtf cGxsdjMoZW51bSBpbXhfcGxsdjNfdHlwZSB0eXBlLCBjb25zdCBjaGFyICpuYW1lLAorc3RydWN0 IGNsa19jb3JlICppbXhfY2xrX3BsbHYzKGVudW0gaW14X3BsbHYzX3R5cGUgdHlwZSwgY29uc3Qg Y2hhciAqbmFtZSwKIAkJY29uc3QgY2hhciAqcGFyZW50X25hbWUsIHZvaWQgX19pb21lbSAqYmFz ZSwgdTMyIGRpdl9tYXNrKTsKIAotc3RydWN0IGNsayAqY2xrX3JlZ2lzdGVyX2dhdGUyKHN0cnVj dCBkZXZpY2UgKmRldiwgY29uc3QgY2hhciAqbmFtZSwKK3N0cnVjdCBjbGtfY29yZSAqY2xrX3Jl Z2lzdGVyX2dhdGUyKHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3QgY2hhciAqbmFtZSwKIAkJY29u c3QgY2hhciAqcGFyZW50X25hbWUsIHVuc2lnbmVkIGxvbmcgZmxhZ3MsCiAJCXZvaWQgX19pb21l bSAqcmVnLCB1OCBiaXRfaWR4LAogCQl1OCBjbGtfZ2F0ZV9mbGFncywgc3BpbmxvY2tfdCAqbG9j aywKIAkJdW5zaWduZWQgaW50ICpzaGFyZV9jb3VudCk7CiAKLXN0cnVjdCBjbGsgKiBpbXhfb2J0 YWluX2ZpeGVkX2Nsb2NrKAorc3RydWN0IGNsa19jb3JlICogaW14X29idGFpbl9maXhlZF9jbG9j aygKIAkJCWNvbnN0IGNoYXIgKm5hbWUsIHVuc2lnbmVkIGxvbmcgcmF0ZSk7CiAKLXN0cnVjdCBj bGsgKmlteF9jbGtfZ2F0ZV9leGNsdXNpdmUoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAq cGFyZW50LAorc3RydWN0IGNsa19jb3JlICppbXhfY2xrX2dhdGVfZXhjbHVzaXZlKGNvbnN0IGNo YXIgKm5hbWUsIGNvbnN0IGNoYXIgKnBhcmVudCwKIAkgdm9pZCBfX2lvbWVtICpyZWcsIHU4IHNo aWZ0LCB1MzIgZXhjbHVzaXZlX21hc2spOwogCi1zdGF0aWMgaW5saW5lIHN0cnVjdCBjbGsgKmlt eF9jbGtfZ2F0ZTIoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqcGFyZW50LAorc3RhdGlj IGlubGluZSBzdHJ1Y3QgY2xrX2NvcmUgKmlteF9jbGtfZ2F0ZTIoY29uc3QgY2hhciAqbmFtZSwg Y29uc3QgY2hhciAqcGFyZW50LAogCQl2b2lkIF9faW9tZW0gKnJlZywgdTggc2hpZnQpCiB7CiAJ cmV0dXJuIGNsa19yZWdpc3Rlcl9nYXRlMihOVUxMLCBuYW1lLCBwYXJlbnQsIENMS19TRVRfUkFU RV9QQVJFTlQsIHJlZywKIAkJCXNoaWZ0LCAwLCAmaW14X2NjbV9sb2NrLCBOVUxMKTsKIH0KIAot c3RhdGljIGlubGluZSBzdHJ1Y3QgY2xrICppbXhfY2xrX2dhdGUyX3NoYXJlZChjb25zdCBjaGFy ICpuYW1lLAorc3RhdGljIGlubGluZSBzdHJ1Y3QgY2xrX2NvcmUgKmlteF9jbGtfZ2F0ZTJfc2hh cmVkKGNvbnN0IGNoYXIgKm5hbWUsCiAJCWNvbnN0IGNoYXIgKnBhcmVudCwgdm9pZCBfX2lvbWVt ICpyZWcsIHU4IHNoaWZ0LAogCQl1bnNpZ25lZCBpbnQgKnNoYXJlX2NvdW50KQogewpAQCAtNTQs MzggKzU0LDM4IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IGNsayAqaW14X2Nsa19nYXRlMl9zaGFy ZWQoY29uc3QgY2hhciAqbmFtZSwKIAkJCXNoaWZ0LCAwLCAmaW14X2NjbV9sb2NrLCBzaGFyZV9j b3VudCk7CiB9CiAKLXN0cnVjdCBjbGsgKmlteF9jbGtfcGZkKGNvbnN0IGNoYXIgKm5hbWUsIGNv bnN0IGNoYXIgKnBhcmVudF9uYW1lLAorc3RydWN0IGNsa19jb3JlICppbXhfY2xrX3BmZChjb25z dCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpwYXJlbnRfbmFtZSwKIAkJdm9pZCBfX2lvbWVtICpy ZWcsIHU4IGlkeCk7CiAKLXN0cnVjdCBjbGsgKmlteF9jbGtfYnVzeV9kaXZpZGVyKGNvbnN0IGNo YXIgKm5hbWUsIGNvbnN0IGNoYXIgKnBhcmVudF9uYW1lLAorc3RydWN0IGNsa19jb3JlICppbXhf Y2xrX2J1c3lfZGl2aWRlcihjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpwYXJlbnRfbmFt ZSwKIAkJCQkgdm9pZCBfX2lvbWVtICpyZWcsIHU4IHNoaWZ0LCB1OCB3aWR0aCwKIAkJCQkgdm9p ZCBfX2lvbWVtICpidXN5X3JlZywgdTggYnVzeV9zaGlmdCk7CiAKLXN0cnVjdCBjbGsgKmlteF9j bGtfYnVzeV9tdXgoY29uc3QgY2hhciAqbmFtZSwgdm9pZCBfX2lvbWVtICpyZWcsIHU4IHNoaWZ0 LAorc3RydWN0IGNsa19jb3JlICppbXhfY2xrX2J1c3lfbXV4KGNvbnN0IGNoYXIgKm5hbWUsIHZv aWQgX19pb21lbSAqcmVnLCB1OCBzaGlmdCwKIAkJCSAgICAgdTggd2lkdGgsIHZvaWQgX19pb21l bSAqYnVzeV9yZWcsIHU4IGJ1c3lfc2hpZnQsCiAJCQkgICAgIGNvbnN0IGNoYXIgKipwYXJlbnRf bmFtZXMsIGludCBudW1fcGFyZW50cyk7CiAKLXN0cnVjdCBjbGsgKmlteF9jbGtfZml4dXBfZGl2 aWRlcihjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpwYXJlbnQsCitzdHJ1Y3QgY2xrX2Nv cmUgKmlteF9jbGtfZml4dXBfZGl2aWRlcihjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpw YXJlbnQsCiAJCQkJICB2b2lkIF9faW9tZW0gKnJlZywgdTggc2hpZnQsIHU4IHdpZHRoLAogCQkJ CSAgdm9pZCAoKmZpeHVwKSh1MzIgKnZhbCkpOwogCi1zdHJ1Y3QgY2xrICppbXhfY2xrX2ZpeHVw X211eChjb25zdCBjaGFyICpuYW1lLCB2b2lkIF9faW9tZW0gKnJlZywKK3N0cnVjdCBjbGtfY29y ZSAqaW14X2Nsa19maXh1cF9tdXgoY29uc3QgY2hhciAqbmFtZSwgdm9pZCBfX2lvbWVtICpyZWcs CiAJCQkgICAgICB1OCBzaGlmdCwgdTggd2lkdGgsIGNvbnN0IGNoYXIgKipwYXJlbnRzLAogCQkJ ICAgICAgaW50IG51bV9wYXJlbnRzLCB2b2lkICgqZml4dXApKHUzMiAqdmFsKSk7CiAKLXN0YXRp YyBpbmxpbmUgc3RydWN0IGNsayAqaW14X2Nsa19maXhlZChjb25zdCBjaGFyICpuYW1lLCBpbnQg cmF0ZSkKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGNsa19jb3JlICppbXhfY2xrX2ZpeGVkKGNvbnN0 IGNoYXIgKm5hbWUsIGludCByYXRlKQogewogCXJldHVybiBjbGtfcmVnaXN0ZXJfZml4ZWRfcmF0 ZShOVUxMLCBuYW1lLCBOVUxMLCBDTEtfSVNfUk9PVCwgcmF0ZSk7CiB9CiAKLXN0YXRpYyBpbmxp bmUgc3RydWN0IGNsayAqaW14X2Nsa19kaXZpZGVyKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNo YXIgKnBhcmVudCwKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGNsa19jb3JlICppbXhfY2xrX2Rpdmlk ZXIoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqcGFyZW50LAogCQl2b2lkIF9faW9tZW0g KnJlZywgdTggc2hpZnQsIHU4IHdpZHRoKQogewogCXJldHVybiBjbGtfcmVnaXN0ZXJfZGl2aWRl cihOVUxMLCBuYW1lLCBwYXJlbnQsIENMS19TRVRfUkFURV9QQVJFTlQsCiAJCQlyZWcsIHNoaWZ0 LCB3aWR0aCwgMCwgJmlteF9jY21fbG9jayk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgc3RydWN0IGNs ayAqaW14X2Nsa19kaXZpZGVyX2ZsYWdzKGNvbnN0IGNoYXIgKm5hbWUsCitzdGF0aWMgaW5saW5l IHN0cnVjdCBjbGtfY29yZSAqaW14X2Nsa19kaXZpZGVyX2ZsYWdzKGNvbnN0IGNoYXIgKm5hbWUs CiAJCWNvbnN0IGNoYXIgKnBhcmVudCwgdm9pZCBfX2lvbWVtICpyZWcsIHU4IHNoaWZ0LCB1OCB3 aWR0aCwKIAkJdW5zaWduZWQgbG9uZyBmbGFncykKIHsKQEAgLTkzLDIxICs5MywyMSBAQCBzdGF0 aWMgaW5saW5lIHN0cnVjdCBjbGsgKmlteF9jbGtfZGl2aWRlcl9mbGFncyhjb25zdCBjaGFyICpu YW1lLAogCQkJcmVnLCBzaGlmdCwgd2lkdGgsIDAsICZpbXhfY2NtX2xvY2spOwogfQogCi1zdGF0 aWMgaW5saW5lIHN0cnVjdCBjbGsgKmlteF9jbGtfZ2F0ZShjb25zdCBjaGFyICpuYW1lLCBjb25z dCBjaGFyICpwYXJlbnQsCitzdGF0aWMgaW5saW5lIHN0cnVjdCBjbGtfY29yZSAqaW14X2Nsa19n YXRlKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnBhcmVudCwKIAkJdm9pZCBfX2lvbWVt ICpyZWcsIHU4IHNoaWZ0KQogewogCXJldHVybiBjbGtfcmVnaXN0ZXJfZ2F0ZShOVUxMLCBuYW1l LCBwYXJlbnQsIENMS19TRVRfUkFURV9QQVJFTlQsIHJlZywKIAkJCXNoaWZ0LCAwLCAmaW14X2Nj bV9sb2NrKTsKIH0KIAotc3RhdGljIGlubGluZSBzdHJ1Y3QgY2xrICppbXhfY2xrX2dhdGVfZGlz KGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnBhcmVudCwKK3N0YXRpYyBpbmxpbmUgc3Ry dWN0IGNsa19jb3JlICppbXhfY2xrX2dhdGVfZGlzKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNo YXIgKnBhcmVudCwKIAkJdm9pZCBfX2lvbWVtICpyZWcsIHU4IHNoaWZ0KQogewogCXJldHVybiBj bGtfcmVnaXN0ZXJfZ2F0ZShOVUxMLCBuYW1lLCBwYXJlbnQsIENMS19TRVRfUkFURV9QQVJFTlQs IHJlZywKIAkJCXNoaWZ0LCBDTEtfR0FURV9TRVRfVE9fRElTQUJMRSwgJmlteF9jY21fbG9jayk7 CiB9CiAKLXN0YXRpYyBpbmxpbmUgc3RydWN0IGNsayAqaW14X2Nsa19tdXgoY29uc3QgY2hhciAq bmFtZSwgdm9pZCBfX2lvbWVtICpyZWcsCitzdGF0aWMgaW5saW5lIHN0cnVjdCBjbGtfY29yZSAq aW14X2Nsa19tdXgoY29uc3QgY2hhciAqbmFtZSwgdm9pZCBfX2lvbWVtICpyZWcsCiAJCXU4IHNo aWZ0LCB1OCB3aWR0aCwgY29uc3QgY2hhciAqKnBhcmVudHMsIGludCBudW1fcGFyZW50cykKIHsK IAlyZXR1cm4gY2xrX3JlZ2lzdGVyX211eChOVUxMLCBuYW1lLCBwYXJlbnRzLCBudW1fcGFyZW50 cywKQEAgLTExNSw3ICsxMTUsNyBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBjbGsgKmlteF9jbGtf bXV4KGNvbnN0IGNoYXIgKm5hbWUsIHZvaWQgX19pb21lbSAqcmVnLAogCQkJd2lkdGgsIDAsICZp bXhfY2NtX2xvY2spOwogfQogCi1zdGF0aWMgaW5saW5lIHN0cnVjdCBjbGsgKmlteF9jbGtfbXV4 X2ZsYWdzKGNvbnN0IGNoYXIgKm5hbWUsCitzdGF0aWMgaW5saW5lIHN0cnVjdCBjbGtfY29yZSAq aW14X2Nsa19tdXhfZmxhZ3MoY29uc3QgY2hhciAqbmFtZSwKIAkJdm9pZCBfX2lvbWVtICpyZWcs IHU4IHNoaWZ0LCB1OCB3aWR0aCwgY29uc3QgY2hhciAqKnBhcmVudHMsCiAJCWludCBudW1fcGFy ZW50cywgdW5zaWduZWQgbG9uZyBmbGFncykKIHsKQEAgLTEyNCw3ICsxMjQsNyBAQCBzdGF0aWMg aW5saW5lIHN0cnVjdCBjbGsgKmlteF9jbGtfbXV4X2ZsYWdzKGNvbnN0IGNoYXIgKm5hbWUsCiAJ CQkmaW14X2NjbV9sb2NrKTsKIH0KIAotc3RhdGljIGlubGluZSBzdHJ1Y3QgY2xrICppbXhfY2xr X2ZpeGVkX2ZhY3Rvcihjb25zdCBjaGFyICpuYW1lLAorc3RhdGljIGlubGluZSBzdHJ1Y3QgY2xr X2NvcmUgKmlteF9jbGtfZml4ZWRfZmFjdG9yKGNvbnN0IGNoYXIgKm5hbWUsCiAJCWNvbnN0IGNo YXIgKnBhcmVudCwgdW5zaWduZWQgaW50IG11bHQsIHVuc2lnbmVkIGludCBkaXYpCiB7CiAJcmV0 dXJuIGNsa19yZWdpc3Rlcl9maXhlZF9mYWN0b3IoTlVMTCwgbmFtZSwgcGFyZW50LApkaWZmIC0t Z2l0IGEvYXJjaC9hcm0vbWFjaC1tc20vY2xvY2stcGNvbS5jIGIvYXJjaC9hcm0vbWFjaC1tc20v Y2xvY2stcGNvbS5jCmluZGV4IDlhODA0NDkuLjE0MzUyYzQgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJt L21hY2gtbXNtL2Nsb2NrLXBjb20uYworKysgYi9hcmNoL2FybS9tYWNoLW1zbS9jbG9jay1wY29t LmMKQEAgLTEzMiw3ICsxMzIsNyBAQCBzdGF0aWMgaW50IG1zbV9jbG9ja19wY29tX3Byb2JlKHN0 cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAKIAlmb3IgKGkgPSAwOyBpIDwgcGRhdGEtPm51 bV9sb29rdXBzOyBpKyspIHsKIAkJY29uc3Qgc3RydWN0IGNsa19wY29tX2Rlc2MgKmRlc2MgPSAm cGRhdGEtPmxvb2t1cFtpXTsKLQkJc3RydWN0IGNsayAqYzsKKwkJc3RydWN0IGNsa19jb3JlICpj OwogCQlzdHJ1Y3QgY2xrX3Bjb20gKnA7CiAJCXN0cnVjdCBjbGtfaHcgKmh3OwogCQlzdHJ1Y3Qg Y2xrX2luaXRfZGF0YSBpbml0OwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1tdjc4eHgwL2Nv bW1vbi5jIGIvYXJjaC9hcm0vbWFjaC1tdjc4eHgwL2NvbW1vbi5jCmluZGV4IGU2YWM2NzkuLmZl ZTI2NDMgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtbXY3OHh4MC9jb21tb24uYworKysgYi9h cmNoL2FybS9tYWNoLW12Nzh4eDAvY29tbW9uLmMKQEAgLTE2NCw3ICsxNjQsNyBAQCB2b2lkIF9f aW5pdCBtdjc4eHgwX21hcF9pbyh2b2lkKQogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDTEsg dHJlZQogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKiovCi1zdGF0aWMgc3RydWN0IGNsayAqdGNsazsKK3N0 YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgKnRjbGs7CiAKIHN0YXRpYyB2b2lkIF9faW5pdCBjbGtfaW5p dCh2b2lkKQogewpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9ib2FyZC1jbS10MzUu YyBiL2FyY2gvYXJtL21hY2gtb21hcDIvYm9hcmQtY20tdDM1LmMKaW5kZXggMDE4MzUzZC4uMGY0 MTQyNyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9ib2FyZC1jbS10MzUuYworKysg Yi9hcmNoL2FybS9tYWNoLW9tYXAyL2JvYXJkLWNtLXQzNS5jCkBAIC01NTEsNyArNTUxLDcgQEAg c3RhdGljIHN0cnVjdCByZWd1bGF0b3JfY29uc3VtZXJfc3VwcGx5IGNtX3QzNV9jYW1lcmFfc3Vw cGxpZXNbXSA9IHsKIAogc3RhdGljIHZvaWQgX19pbml0IGNtX3QzNV9pbml0X2NhbWVyYSh2b2lk KQogewotCXN0cnVjdCBjbGsgKmNsazsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmNsazsKIAogCWNsayA9 IGNsa19yZWdpc3Rlcl9maXhlZF9yYXRlKE5VTEwsICJtdDl0MDAxLWNsa2luIiwgTlVMTCwgQ0xL X0lTX1JPT1QsCiAJCQkJICAgICAgNDgwMDAwMDApOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFj aC1vbWFwMi9jY2xvY2szeHh4X2RhdGEuYyBiL2FyY2gvYXJtL21hY2gtb21hcDIvY2Nsb2NrM3h4 eF9kYXRhLmMKaW5kZXggZWI4Yzc1ZS4uMTE4MGFiZSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFj aC1vbWFwMi9jY2xvY2szeHh4X2RhdGEuYworKysgYi9hcmNoL2FybS9tYWNoLW9tYXAyL2NjbG9j azN4eHhfZGF0YS5jCkBAIC0xOCw3ICsxOCw2IEBACiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L2tl cm5lbC5oPgotI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgogI2luY2x1ZGUgPGxpbnV4L2Nsay1wcml2 YXRlLmg+CiAjaW5jbHVkZSA8bGludXgvbGlzdC5oPgogI2luY2x1ZGUgPGxpbnV4L2lvLmg+CkBA IC0xMDcsNyArMTA2LDcgQEAgc3RhdGljIHN0cnVjdCBkcGxsX2RhdGEgZHBsbDNfZGQgPSB7CiAJ Lm1heF9kaXZpZGVyCT0gT01BUDNfTUFYX0RQTExfRElWLAogfTsKIAotc3RhdGljIHN0cnVjdCBj bGsgZHBsbDNfY2s7CitzdGF0aWMgc3RydWN0IGNsa19jb3JlIGRwbGwzX2NrOwogCiBzdGF0aWMg Y29uc3QgY2hhciAqZHBsbDNfY2tfcGFyZW50X25hbWVzW10gPSB7CiAJInN5c19jayIsCkBAIC0x MzcsNyArMTM2LDcgQEAgREVGSU5FX0NMS19ESVZJREVSKGRwbGwzX20yX2NrLCAiZHBsbDNfY2si LCAmZHBsbDNfY2ssIDB4MCwKIAkJICAgT01BUDM0MzBfQ09SRV9EUExMX0NMS09VVF9ESVZfV0lE VEgsCiAJCSAgIENMS19ESVZJREVSX09ORV9CQVNFRCwgTlVMTCk7CiAKLXN0YXRpYyBzdHJ1Y3Qg Y2xrIGNvcmVfY2s7CitzdGF0aWMgc3RydWN0IGNsa19jb3JlIGNvcmVfY2s7CiAKIHN0YXRpYyBj b25zdCBjaGFyICpjb3JlX2NrX3BhcmVudF9uYW1lc1tdID0gewogCSJkcGxsM19tMl9jayIsCkBA IC0xNTgsNyArMTU3LDcgQEAgREVGSU5FX0NMS19ESVZJREVSKGw0X2ljaywgImwzX2ljayIsICZs M19pY2ssIDB4MCwKIAkJICAgT01BUDM0MzBfQ0xLU0VMX0w0X1NISUZULCBPTUFQMzQzMF9DTEtT RUxfTDRfV0lEVEgsCiAJCSAgIENMS19ESVZJREVSX09ORV9CQVNFRCwgTlVMTCk7CiAKLXN0YXRp YyBzdHJ1Y3QgY2xrIHNlY3VyaXR5X2w0X2ljazI7CitzdGF0aWMgc3RydWN0IGNsa19jb3JlIHNl Y3VyaXR5X2w0X2ljazI7CiAKIHN0YXRpYyBjb25zdCBjaGFyICpzZWN1cml0eV9sNF9pY2syX3Bh cmVudF9uYW1lc1tdID0gewogCSJsNF9pY2siLApAQCAtMTY3LDcgKzE2Niw3IEBAIHN0YXRpYyBj b25zdCBjaGFyICpzZWN1cml0eV9sNF9pY2syX3BhcmVudF9uYW1lc1tdID0gewogREVGSU5FX1NU UlVDVF9DTEtfSFdfT01BUChzZWN1cml0eV9sNF9pY2syLCBOVUxMKTsKIERFRklORV9TVFJVQ1Rf Q0xLKHNlY3VyaXR5X2w0X2ljazIsIHNlY3VyaXR5X2w0X2ljazJfcGFyZW50X25hbWVzLCBjb3Jl X2NrX29wcyk7CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrIGFlczFfaWNrOworc3RhdGljIHN0cnVjdCBj bGtfY29yZSBhZXMxX2ljazsKIAogc3RhdGljIGNvbnN0IGNoYXIgKmFlczFfaWNrX3BhcmVudF9u YW1lc1tdID0gewogCSJzZWN1cml0eV9sNF9pY2syIiwKQEAgLTE5MCw3ICsxODksNyBAQCBzdGF0 aWMgc3RydWN0IGNsa19od19vbWFwIGFlczFfaWNrX2h3ID0gewogCiBERUZJTkVfU1RSVUNUX0NM SyhhZXMxX2ljaywgYWVzMV9pY2tfcGFyZW50X25hbWVzLCBhZXMxX2lja19vcHMpOwogCi1zdGF0 aWMgc3RydWN0IGNsayBjb3JlX2w0X2ljazsKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgY29yZV9s NF9pY2s7CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrX29wcyBjb3JlX2w0X2lja19vcHMgPSB7 CiAJLmluaXQJCT0gJm9tYXAyX2luaXRfY2xrX2Nsa2RtLApAQCAtMTk5LDcgKzE5OCw3IEBAIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgY2xrX29wcyBjb3JlX2w0X2lja19vcHMgPSB7CiBERUZJTkVfU1RS VUNUX0NMS19IV19PTUFQKGNvcmVfbDRfaWNrLCAiY29yZV9sNF9jbGtkbSIpOwogREVGSU5FX1NU UlVDVF9DTEsoY29yZV9sNF9pY2ssIHNlY3VyaXR5X2w0X2ljazJfcGFyZW50X25hbWVzLCBjb3Jl X2w0X2lja19vcHMpOwogCi1zdGF0aWMgc3RydWN0IGNsayBhZXMyX2ljazsKK3N0YXRpYyBzdHJ1 Y3QgY2xrX2NvcmUgYWVzMl9pY2s7CiAKIHN0YXRpYyBjb25zdCBjaGFyICphZXMyX2lja19wYXJl bnRfbmFtZXNbXSA9IHsKIAkiY29yZV9sNF9pY2siLApAQCAtMjI0LDcgKzIyMyw3IEBAIHN0YXRp YyBzdHJ1Y3QgY2xrX2h3X29tYXAgYWVzMl9pY2tfaHcgPSB7CiAKIERFRklORV9TVFJVQ1RfQ0xL KGFlczJfaWNrLCBhZXMyX2lja19wYXJlbnRfbmFtZXMsIGFlczJfaWNrX29wcyk7CiAKLXN0YXRp YyBzdHJ1Y3QgY2xrIGRwbGwxX2ZjazsKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgZHBsbDFfZmNr OwogCiBzdGF0aWMgc3RydWN0IGRwbGxfZGF0YSBkcGxsMV9kZCA9IHsKIAkubXVsdF9kaXYxX3Jl Zwk9IE9NQVBfQ01fUkVHQUREUihNUFVfTU9ELCBPTUFQMzQzMF9DTV9DTEtTRUwxX1BMTCksCkBA IC0yNDgsNyArMjQ3LDcgQEAgc3RhdGljIHN0cnVjdCBkcGxsX2RhdGEgZHBsbDFfZGQgPSB7CiAJ Lm1heF9kaXZpZGVyCT0gT01BUDNfTUFYX0RQTExfRElWLAogfTsKIAotc3RhdGljIHN0cnVjdCBj bGsgZHBsbDFfY2s7CitzdGF0aWMgc3RydWN0IGNsa19jb3JlIGRwbGwxX2NrOwogCiBzdGF0aWMg Y29uc3Qgc3RydWN0IGNsa19vcHMgZHBsbDFfY2tfb3BzID0gewogCS5pbml0CQk9ICZvbWFwMl9p bml0X2Nsa19jbGtkbSwKQEAgLTI3OSw3ICsyNzgsNyBAQCBERUZJTkVfQ0xLX0RJVklERVIoZHBs bDFfeDJtMl9jaywgImRwbGwxX3gyX2NrIiwgJmRwbGwxX3gyX2NrLCAweDAsCiAJCSAgIE9NQVAz NDMwX01QVV9EUExMX0NMS09VVF9ESVZfV0lEVEgsCiAJCSAgIENMS19ESVZJREVSX09ORV9CQVNF RCwgTlVMTCk7CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrIG1wdV9jazsKK3N0YXRpYyBzdHJ1Y3QgY2xr X2NvcmUgbXB1X2NrOwogCiBzdGF0aWMgY29uc3QgY2hhciAqbXB1X2NrX3BhcmVudF9uYW1lc1td ID0gewogCSJkcGxsMV94Mm0yX2NrIiwKQEAgLTI5Myw3ICsyOTIsNyBAQCBERUZJTkVfQ0xLX0RJ VklERVIoYXJtX2ZjaywgIm1wdV9jayIsICZtcHVfY2ssIDB4MCwKIAkJICAgT01BUDM0MzBfU1Rf TVBVX0NMS19TSElGVCwgT01BUDM0MzBfU1RfTVBVX0NMS19XSURUSCwKIAkJICAgMHgwLCBOVUxM KTsKIAotc3RhdGljIHN0cnVjdCBjbGsgY2FtX2ljazsKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUg Y2FtX2ljazsKIAogc3RhdGljIHN0cnVjdCBjbGtfaHdfb21hcCBjYW1faWNrX2h3ID0gewogCS5o dyA9IHsKQEAgLTM1OCw3ICszNTcsNyBAQCBzdGF0aWMgc3RydWN0IGRwbGxfZGF0YSBkcGxsNF9k ZF8zNjMwIF9faW5pdGRhdGEgPSB7CiAJLmZsYWdzCQk9IERQTExfSl9UWVBFCiB9OwogCi1zdGF0 aWMgc3RydWN0IGNsayBkcGxsNF9jazsKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgZHBsbDRfY2s7 CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrX29wcyBkcGxsNF9ja19vcHMgPSB7CiAJLmluaXQJ CT0gJm9tYXAyX2luaXRfY2xrX2Nsa2RtLApAQCAtNDIyLDcgKzQyMSw3IEBAIERFRklORV9DTEtf RElWSURFUihkcGxsNF9tNV9jaywgImRwbGw0X2NrIiwgJmRwbGw0X2NrLCAweDAsCiAJCSAgIE9N QVAzNDMwX0NMS1NFTF9DQU1fU0hJRlQsIE9NQVAzNjMwX0NMS1NFTF9DQU1fV0lEVEgsCiAJCSAg IENMS19ESVZJREVSX09ORV9CQVNFRCwgTlVMTCk7CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrIGRwbGw0 X201eDJfY2s7CitzdGF0aWMgc3RydWN0IGNsa19jb3JlIGRwbGw0X201eDJfY2s7CiAKIHN0YXRp YyBjb25zdCBjaGFyICpkcGxsNF9tNXgyX2NrX3BhcmVudF9uYW1lc1tdID0gewogCSJkcGxsNF9t NV9jayIsCkBAIC00NTksNyArNDU4LDcgQEAgc3RhdGljIHN0cnVjdCBjbGtfaHdfb21hcCBkcGxs NF9tNXgyX2NrX2h3ID0gewogREVGSU5FX1NUUlVDVF9DTEtfRkxBR1MoZHBsbDRfbTV4Ml9jaywg ZHBsbDRfbTV4Ml9ja19wYXJlbnRfbmFtZXMsCiAJCQlkcGxsNF9tNXgyX2NrX29wcywgQ0xLX1NF VF9SQVRFX1BBUkVOVCk7CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrIGRwbGw0X201eDJfY2tfMzYzMCA9 IHsKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgZHBsbDRfbTV4Ml9ja18zNjMwID0gewogCS5uYW1l CQk9ICJkcGxsNF9tNXgyX2NrIiwKIAkuaHcJCT0gJmRwbGw0X201eDJfY2tfaHcuaHcsCiAJLnBh cmVudF9uYW1lcwk9IGRwbGw0X201eDJfY2tfcGFyZW50X25hbWVzLApAQCAtNDY4LDcgKzQ2Nyw3 IEBAIHN0YXRpYyBzdHJ1Y3QgY2xrIGRwbGw0X201eDJfY2tfMzYzMCA9IHsKIAkuZmxhZ3MJCT0g Q0xLX1NFVF9SQVRFX1BBUkVOVCwKIH07CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrIGNhbV9tY2xrOwor c3RhdGljIHN0cnVjdCBjbGtfY29yZSBjYW1fbWNsazsKIAogc3RhdGljIGNvbnN0IGNoYXIgKmNh bV9tY2xrX3BhcmVudF9uYW1lc1tdID0gewogCSJkcGxsNF9tNXgyX2NrIiwKQEAgLTQ4Myw3ICs0 ODIsNyBAQCBzdGF0aWMgc3RydWN0IGNsa19od19vbWFwIGNhbV9tY2xrX2h3ID0gewogCS5jbGtk bV9uYW1lCT0gImNhbV9jbGtkbSIsCiB9OwogCi1zdGF0aWMgc3RydWN0IGNsayBjYW1fbWNsayA9 IHsKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgY2FtX21jbGsgPSB7CiAJLm5hbWUJCT0gImNhbV9t Y2xrIiwKIAkuaHcJCT0gJmNhbV9tY2xrX2h3Lmh3LAogCS5wYXJlbnRfbmFtZXMJPSBjYW1fbWNs a19wYXJlbnRfbmFtZXMsCkBAIC01MTIsNyArNTExLDcgQEAgREVGSU5FX0NMS19ESVZJREVSKGRw bGw0X20yX2NrLCAiZHBsbDRfY2siLCAmZHBsbDRfY2ssIDB4MCwKIAkJICAgT01BUDM0MzBfRElW Xzk2TV9TSElGVCwgT01BUDM2MzBfRElWXzk2TV9XSURUSCwKIAkJICAgQ0xLX0RJVklERVJfT05F X0JBU0VELCBOVUxMKTsKIAotc3RhdGljIHN0cnVjdCBjbGsgZHBsbDRfbTJ4Ml9jazsKK3N0YXRp YyBzdHJ1Y3QgY2xrX2NvcmUgZHBsbDRfbTJ4Ml9jazsKIAogc3RhdGljIGNvbnN0IGNoYXIgKmRw bGw0X20yeDJfY2tfcGFyZW50X25hbWVzW10gPSB7CiAJImRwbGw0X20yX2NrIiwKQEAgLTUzMSw3 ICs1MzAsNyBAQCBzdGF0aWMgc3RydWN0IGNsa19od19vbWFwIGRwbGw0X20yeDJfY2tfaHcgPSB7 CiAKIERFRklORV9TVFJVQ1RfQ0xLKGRwbGw0X20yeDJfY2ssIGRwbGw0X20yeDJfY2tfcGFyZW50 X25hbWVzLCBkcGxsNF9tNXgyX2NrX29wcyk7CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrIGRwbGw0X20y eDJfY2tfMzYzMCA9IHsKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgZHBsbDRfbTJ4Ml9ja18zNjMw ID0gewogCS5uYW1lCQk9ICJkcGxsNF9tMngyX2NrIiwKIAkuaHcJCT0gJmRwbGw0X20yeDJfY2tf aHcuaHcsCiAJLnBhcmVudF9uYW1lcwk9IGRwbGw0X20yeDJfY2tfcGFyZW50X25hbWVzLApAQCAt NTM5LDcgKzUzOCw3IEBAIHN0YXRpYyBzdHJ1Y3QgY2xrIGRwbGw0X20yeDJfY2tfMzYzMCA9IHsK IAkub3BzCQk9ICZkcGxsNF9tNXgyX2NrXzM2MzBfb3BzLAogfTsKIAotc3RhdGljIHN0cnVjdCBj bGsgb21hcF85Nm1fYWx3b25fZmNrOworc3RhdGljIHN0cnVjdCBjbGtfY29yZSBvbWFwXzk2bV9h bHdvbl9mY2s7CiAKIHN0YXRpYyBjb25zdCBjaGFyICpvbWFwXzk2bV9hbHdvbl9mY2tfcGFyZW50 X25hbWVzW10gPSB7CiAJImRwbGw0X20yeDJfY2siLApAQCAtNTQ5LDcgKzU0OCw3IEBAIERFRklO RV9TVFJVQ1RfQ0xLX0hXX09NQVAob21hcF85Nm1fYWx3b25fZmNrLCBOVUxMKTsKIERFRklORV9T VFJVQ1RfQ0xLKG9tYXBfOTZtX2Fsd29uX2Zjaywgb21hcF85Nm1fYWx3b25fZmNrX3BhcmVudF9u YW1lcywKIAkJICBjb3JlX2NrX29wcyk7CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrIGNtXzk2bV9mY2s7 CitzdGF0aWMgc3RydWN0IGNsa19jb3JlIGNtXzk2bV9mY2s7CiAKIHN0YXRpYyBjb25zdCBjaGFy ICpjbV85Nm1fZmNrX3BhcmVudF9uYW1lc1tdID0gewogCSJvbWFwXzk2bV9hbHdvbl9mY2siLApA QCAtNTY4LDcgKzU2Nyw3IEBAIERFRklORV9DTEtfRElWSURFUl9UQUJMRShkcGxsNF9tM19jaywg ImRwbGw0X2NrIiwgJmRwbGw0X2NrLCAweDAsCiAJCSAgIE9NQVAzNDMwX0NMS1NFTF9UVl9TSElG VCwgT01BUDM2MzBfQ0xLU0VMX1RWX1dJRFRILAogCQkgICAwLCBkcGxsNF9teF9ja19kaXZfdGFi bGUsIE5VTEwpOwogCi1zdGF0aWMgc3RydWN0IGNsayBkcGxsNF9tM3gyX2NrOworc3RhdGljIHN0 cnVjdCBjbGtfY29yZSBkcGxsNF9tM3gyX2NrOwogCiBzdGF0aWMgY29uc3QgY2hhciAqZHBsbDRf bTN4Ml9ja19wYXJlbnRfbmFtZXNbXSA9IHsKIAkiZHBsbDRfbTNfY2siLApAQCAtNTg3LDcgKzU4 Niw3IEBAIHN0YXRpYyBzdHJ1Y3QgY2xrX2h3X29tYXAgZHBsbDRfbTN4Ml9ja19odyA9IHsKIAog REVGSU5FX1NUUlVDVF9DTEsoZHBsbDRfbTN4Ml9jaywgZHBsbDRfbTN4Ml9ja19wYXJlbnRfbmFt ZXMsIGRwbGw0X201eDJfY2tfb3BzKTsKIAotc3RhdGljIHN0cnVjdCBjbGsgZHBsbDRfbTN4Ml9j a18zNjMwID0geworc3RhdGljIHN0cnVjdCBjbGtfY29yZSBkcGxsNF9tM3gyX2NrXzM2MzAgPSB7 CiAJLm5hbWUJCT0gImRwbGw0X20zeDJfY2siLAogCS5odwkJPSAmZHBsbDRfbTN4Ml9ja19ody5o dywKIAkucGFyZW50X25hbWVzCT0gZHBsbDRfbTN4Ml9ja19wYXJlbnRfbmFtZXMsCkBAIC02NTEs NyArNjUwLDcgQEAgc3RhdGljIGNvbnN0IGNoYXIgKm9tYXBfNDhtX2Zja19wYXJlbnRfbmFtZXNb XSA9IHsKIAkiY21fOTZtX2ZjayIsICJzeXNfYWx0Y2xrIiwKIH07CiAKLXN0YXRpYyBzdHJ1Y3Qg Y2xrIG9tYXBfNDhtX2ZjazsKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgb21hcF80OG1fZmNrOwog CiBzdGF0aWMgY29uc3Qgc3RydWN0IGNsa19vcHMgb21hcF80OG1fZmNrX29wcyA9IHsKIAkucmVj YWxjX3JhdGUJPSAmb21hcDJfY2xrc2VsX3JlY2FsYywKQEAgLTY3Miw3ICs2NzEsNyBAQCBERUZJ TkVfU1RSVUNUX0NMSyhvbWFwXzQ4bV9mY2ssIG9tYXBfNDhtX2Zja19wYXJlbnRfbmFtZXMsIG9t YXBfNDhtX2Zja19vcHMpOwogCiBERUZJTkVfQ0xLX0ZJWEVEX0ZBQ1RPUihvbWFwXzEybV9mY2ss ICJvbWFwXzQ4bV9mY2siLCAmb21hcF80OG1fZmNrLCAweDAsIDEsIDQpOwogCi1zdGF0aWMgc3Ry dWN0IGNsayBjb3JlXzEybV9mY2s7CitzdGF0aWMgc3RydWN0IGNsa19jb3JlIGNvcmVfMTJtX2Zj azsKIAogc3RhdGljIGNvbnN0IGNoYXIgKmNvcmVfMTJtX2Zja19wYXJlbnRfbmFtZXNbXSA9IHsK IAkib21hcF8xMm1fZmNrIiwKQEAgLTY4MSw3ICs2ODAsNyBAQCBzdGF0aWMgY29uc3QgY2hhciAq Y29yZV8xMm1fZmNrX3BhcmVudF9uYW1lc1tdID0gewogREVGSU5FX1NUUlVDVF9DTEtfSFdfT01B UChjb3JlXzEybV9mY2ssICJjb3JlX2w0X2Nsa2RtIik7CiBERUZJTkVfU1RSVUNUX0NMSyhjb3Jl XzEybV9mY2ssIGNvcmVfMTJtX2Zja19wYXJlbnRfbmFtZXMsIGNvcmVfbDRfaWNrX29wcyk7CiAK LXN0YXRpYyBzdHJ1Y3QgY2xrIGNvcmVfNDhtX2ZjazsKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUg Y29yZV80OG1fZmNrOwogCiBzdGF0aWMgY29uc3QgY2hhciAqY29yZV80OG1fZmNrX3BhcmVudF9u YW1lc1tdID0gewogCSJvbWFwXzQ4bV9mY2siLApAQCAtNjk4LDcgKzY5Nyw3IEBAIERFRklORV9D TEtfTVVYKG9tYXBfOTZtX2Zjaywgb21hcF85Nm1fZmNrX3BhcmVudF9uYW1lcywgTlVMTCwgMHgw LAogCSAgICAgICBPTUFQX0NNX1JFR0FERFIoUExMX01PRCwgQ01fQ0xLU0VMMSksCiAJICAgICAg IE9NQVAzNDMwX1NPVVJDRV85Nk1fU0hJRlQsIE9NQVAzNDMwX1NPVVJDRV85Nk1fV0lEVEgsIDB4 MCwgTlVMTCk7CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrIGNvcmVfOTZtX2ZjazsKK3N0YXRpYyBzdHJ1 Y3QgY2xrX2NvcmUgY29yZV85Nm1fZmNrOwogCiBzdGF0aWMgY29uc3QgY2hhciAqY29yZV85Nm1f ZmNrX3BhcmVudF9uYW1lc1tdID0gewogCSJvbWFwXzk2bV9mY2siLApAQCAtNzA3LDcgKzcwNiw3 IEBAIHN0YXRpYyBjb25zdCBjaGFyICpjb3JlXzk2bV9mY2tfcGFyZW50X25hbWVzW10gPSB7CiBE RUZJTkVfU1RSVUNUX0NMS19IV19PTUFQKGNvcmVfOTZtX2ZjaywgImNvcmVfbDRfY2xrZG0iKTsK IERFRklORV9TVFJVQ1RfQ0xLKGNvcmVfOTZtX2ZjaywgY29yZV85Nm1fZmNrX3BhcmVudF9uYW1l cywgY29yZV9sNF9pY2tfb3BzKTsKIAotc3RhdGljIHN0cnVjdCBjbGsgY29yZV9sM19pY2s7Citz dGF0aWMgc3RydWN0IGNsa19jb3JlIGNvcmVfbDNfaWNrOwogCiBzdGF0aWMgY29uc3QgY2hhciAq Y29yZV9sM19pY2tfcGFyZW50X25hbWVzW10gPSB7CiAJImwzX2ljayIsCkBAIC03MTgsNyArNzE3 LDcgQEAgREVGSU5FX1NUUlVDVF9DTEsoY29yZV9sM19pY2ssIGNvcmVfbDNfaWNrX3BhcmVudF9u YW1lcywgY29yZV9sNF9pY2tfb3BzKTsKIAogREVGSU5FX0NMS19GSVhFRF9GQUNUT1IoZHBsbDNf bTJ4Ml9jaywgImRwbGwzX20yX2NrIiwgJmRwbGwzX20yX2NrLCAweDAsIDIsIDEpOwogCi1zdGF0 aWMgc3RydWN0IGNsayBjb3JleDJfZmNrOworc3RhdGljIHN0cnVjdCBjbGtfY29yZSBjb3JleDJf ZmNrOwogCiBzdGF0aWMgY29uc3QgY2hhciAqY29yZXgyX2Zja19wYXJlbnRfbmFtZXNbXSA9IHsK IAkiZHBsbDNfbTJ4Ml9jayIsCkBAIC03MjcsNyArNzI2LDcgQEAgc3RhdGljIGNvbnN0IGNoYXIg KmNvcmV4Ml9mY2tfcGFyZW50X25hbWVzW10gPSB7CiBERUZJTkVfU1RSVUNUX0NMS19IV19PTUFQ KGNvcmV4Ml9mY2ssIE5VTEwpOwogREVGSU5FX1NUUlVDVF9DTEsoY29yZXgyX2ZjaywgY29yZXgy X2Zja19wYXJlbnRfbmFtZXMsIGNvcmVfY2tfb3BzKTsKIAotc3RhdGljIHN0cnVjdCBjbGsgY3Bl ZnVzZV9mY2s7CitzdGF0aWMgc3RydWN0IGNsa19jb3JlIGNwZWZ1c2VfZmNrOwogCiBzdGF0aWMg c3RydWN0IGNsa19od19vbWFwIGNwZWZ1c2VfZmNrX2h3ID0gewogCS5odyA9IHsKQEAgLTc0MCw3 ICs3MzksNyBAQCBzdGF0aWMgc3RydWN0IGNsa19od19vbWFwIGNwZWZ1c2VfZmNrX2h3ID0gewog CiBERUZJTkVfU1RSVUNUX0NMSyhjcGVmdXNlX2ZjaywgZHBsbDNfY2tfcGFyZW50X25hbWVzLCBh ZXMyX2lja19vcHMpOwogCi1zdGF0aWMgc3RydWN0IGNsayBjc2kyXzk2bV9mY2s7CitzdGF0aWMg c3RydWN0IGNsa19jb3JlIGNzaTJfOTZtX2ZjazsKIAogc3RhdGljIGNvbnN0IGNoYXIgKmNzaTJf OTZtX2Zja19wYXJlbnRfbmFtZXNbXSA9IHsKIAkiY29yZV85Nm1fZmNrIiwKQEAgLTc1Nyw3ICs3 NTYsNyBAQCBzdGF0aWMgc3RydWN0IGNsa19od19vbWFwIGNzaTJfOTZtX2Zja19odyA9IHsKIAog REVGSU5FX1NUUlVDVF9DTEsoY3NpMl85Nm1fZmNrLCBjc2kyXzk2bV9mY2tfcGFyZW50X25hbWVz LCBhZXMyX2lja19vcHMpOwogCi1zdGF0aWMgc3RydWN0IGNsayBkMmRfMjZtX2ZjazsKK3N0YXRp YyBzdHJ1Y3QgY2xrX2NvcmUgZDJkXzI2bV9mY2s7CiAKIHN0YXRpYyBzdHJ1Y3QgY2xrX2h3X29t YXAgZDJkXzI2bV9mY2tfaHcgPSB7CiAJLmh3ID0gewpAQCAtNzcxLDcgKzc3MCw3IEBAIHN0YXRp YyBzdHJ1Y3QgY2xrX2h3X29tYXAgZDJkXzI2bV9mY2tfaHcgPSB7CiAKIERFRklORV9TVFJVQ1Rf Q0xLKGQyZF8yNm1fZmNrLCBkcGxsM19ja19wYXJlbnRfbmFtZXMsIGFlczJfaWNrX29wcyk7CiAK LXN0YXRpYyBzdHJ1Y3QgY2xrIGRlczFfaWNrOworc3RhdGljIHN0cnVjdCBjbGtfY29yZSBkZXMx X2ljazsKIAogc3RhdGljIHN0cnVjdCBjbGtfaHdfb21hcCBkZXMxX2lja19odyA9IHsKIAkuaHcg PSB7CkBAIC03ODQsNyArNzgzLDcgQEAgc3RhdGljIHN0cnVjdCBjbGtfaHdfb21hcCBkZXMxX2lj a19odyA9IHsKIAogREVGSU5FX1NUUlVDVF9DTEsoZGVzMV9pY2ssIGFlczFfaWNrX3BhcmVudF9u YW1lcywgYWVzMV9pY2tfb3BzKTsKIAotc3RhdGljIHN0cnVjdCBjbGsgZGVzMl9pY2s7CitzdGF0 aWMgc3RydWN0IGNsa19jb3JlIGRlczJfaWNrOwogCiBzdGF0aWMgc3RydWN0IGNsa19od19vbWFw IGRlczJfaWNrX2h3ID0gewogCS5odyA9IHsKQEAgLTgwMyw3ICs4MDIsNyBAQCBERUZJTkVfQ0xL X0RJVklERVIoZHBsbDFfZmNrLCAiY29yZV9jayIsICZjb3JlX2NrLCAweDAsCiAJCSAgIE9NQVAz NDMwX01QVV9DTEtfU1JDX1NISUZULCBPTUFQMzQzMF9NUFVfQ0xLX1NSQ19XSURUSCwKIAkJICAg Q0xLX0RJVklERVJfT05FX0JBU0VELCBOVUxMKTsKIAotc3RhdGljIHN0cnVjdCBjbGsgZHBsbDJf ZmNrOworc3RhdGljIHN0cnVjdCBjbGtfY29yZSBkcGxsMl9mY2s7CiAKIHN0YXRpYyBzdHJ1Y3Qg ZHBsbF9kYXRhIGRwbGwyX2RkID0gewogCS5tdWx0X2RpdjFfcmVnCT0gT01BUF9DTV9SRUdBRERS KE9NQVAzNDMwX0lWQTJfTU9ELCBPTUFQMzQzMF9DTV9DTEtTRUwxX1BMTCksCkBAIC04MjgsNyAr ODI3LDcgQEAgc3RhdGljIHN0cnVjdCBkcGxsX2RhdGEgZHBsbDJfZGQgPSB7CiAJLm1heF9kaXZp ZGVyCT0gT01BUDNfTUFYX0RQTExfRElWLAogfTsKIAotc3RhdGljIHN0cnVjdCBjbGsgZHBsbDJf Y2s7CitzdGF0aWMgc3RydWN0IGNsa19jb3JlIGRwbGwyX2NrOwogCiBzdGF0aWMgc3RydWN0IGNs a19od19vbWFwIGRwbGwyX2NrX2h3ID0gewogCS5odyA9IHsKQEAgLTg1Nyw3ICs4NTYsNyBAQCBE RUZJTkVfQ0xLX0RJVklERVIoZHBsbDNfbTNfY2ssICJkcGxsM19jayIsICZkcGxsM19jaywgMHgw LAogCQkgICBPTUFQMzQzMF9ESVZfRFBMTDNfU0hJRlQsIE9NQVAzNDMwX0RJVl9EUExMM19XSURU SCwKIAkJICAgQ0xLX0RJVklERVJfT05FX0JBU0VELCBOVUxMKTsKIAotc3RhdGljIHN0cnVjdCBj bGsgZHBsbDNfbTN4Ml9jazsKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgZHBsbDNfbTN4Ml9jazsK IAogc3RhdGljIGNvbnN0IGNoYXIgKmRwbGwzX20zeDJfY2tfcGFyZW50X25hbWVzW10gPSB7CiAJ ImRwbGwzX20zX2NrIiwKQEAgLTg3Niw3ICs4NzUsNyBAQCBzdGF0aWMgc3RydWN0IGNsa19od19v bWFwIGRwbGwzX20zeDJfY2tfaHcgPSB7CiAKIERFRklORV9TVFJVQ1RfQ0xLKGRwbGwzX20zeDJf Y2ssIGRwbGwzX20zeDJfY2tfcGFyZW50X25hbWVzLCBkcGxsNF9tNXgyX2NrX29wcyk7CiAKLXN0 YXRpYyBzdHJ1Y3QgY2xrIGRwbGwzX20zeDJfY2tfMzYzMCA9IHsKK3N0YXRpYyBzdHJ1Y3QgY2xr X2NvcmUgZHBsbDNfbTN4Ml9ja18zNjMwID0gewogCS5uYW1lCQk9ICJkcGxsM19tM3gyX2NrIiwK IAkuaHcJCT0gJmRwbGwzX20zeDJfY2tfaHcuaHcsCiAJLnBhcmVudF9uYW1lcwk9IGRwbGwzX20z eDJfY2tfcGFyZW50X25hbWVzLApAQCAtODkxLDcgKzg5MCw3IEBAIERFRklORV9DTEtfRElWSURF Ul9UQUJMRShkcGxsNF9tNF9jaywgImRwbGw0X2NrIiwgJmRwbGw0X2NrLCAweDAsCiAJCSAgIE9N QVAzNDMwX0NMS1NFTF9EU1MxX1NISUZULCBPTUFQMzYzMF9DTEtTRUxfRFNTMV9XSURUSCwKIAkJ ICAgMCwgZHBsbDRfbXhfY2tfZGl2X3RhYmxlLCBOVUxMKTsKIAotc3RhdGljIHN0cnVjdCBjbGsg ZHBsbDRfbTR4Ml9jazsKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgZHBsbDRfbTR4Ml9jazsKIAog c3RhdGljIGNvbnN0IGNoYXIgKmRwbGw0X200eDJfY2tfcGFyZW50X25hbWVzW10gPSB7CiAJImRw bGw0X200X2NrIiwKQEAgLTkxMSw3ICs5MTAsNyBAQCBzdGF0aWMgc3RydWN0IGNsa19od19vbWFw IGRwbGw0X200eDJfY2tfaHcgPSB7CiBERUZJTkVfU1RSVUNUX0NMS19GTEFHUyhkcGxsNF9tNHgy X2NrLCBkcGxsNF9tNHgyX2NrX3BhcmVudF9uYW1lcywKIAkJZHBsbDRfbTV4Ml9ja19vcHMsIENM S19TRVRfUkFURV9QQVJFTlQpOwogCi1zdGF0aWMgc3RydWN0IGNsayBkcGxsNF9tNHgyX2NrXzM2 MzAgPSB7CitzdGF0aWMgc3RydWN0IGNsa19jb3JlIGRwbGw0X200eDJfY2tfMzYzMCA9IHsKIAku bmFtZQkJPSAiZHBsbDRfbTR4Ml9jayIsCiAJLmh3CQk9ICZkcGxsNF9tNHgyX2NrX2h3Lmh3LAog CS5wYXJlbnRfbmFtZXMJPSBkcGxsNF9tNHgyX2NrX3BhcmVudF9uYW1lcywKQEAgLTkyNSw3ICs5 MjQsNyBAQCBERUZJTkVfQ0xLX0RJVklERVIoZHBsbDRfbTZfY2ssICJkcGxsNF9jayIsICZkcGxs NF9jaywgMHgwLAogCQkgICBPTUFQMzQzMF9ESVZfRFBMTDRfU0hJRlQsIE9NQVAzNjMwX0RJVl9E UExMNF9XSURUSCwKIAkJICAgQ0xLX0RJVklERVJfT05FX0JBU0VELCBOVUxMKTsKIAotc3RhdGlj IHN0cnVjdCBjbGsgZHBsbDRfbTZ4Ml9jazsKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgZHBsbDRf bTZ4Ml9jazsKIAogc3RhdGljIGNvbnN0IGNoYXIgKmRwbGw0X202eDJfY2tfcGFyZW50X25hbWVz W10gPSB7CiAJImRwbGw0X202X2NrIiwKQEAgLTk0NCw3ICs5NDMsNyBAQCBzdGF0aWMgc3RydWN0 IGNsa19od19vbWFwIGRwbGw0X202eDJfY2tfaHcgPSB7CiAKIERFRklORV9TVFJVQ1RfQ0xLKGRw bGw0X202eDJfY2ssIGRwbGw0X202eDJfY2tfcGFyZW50X25hbWVzLCBkcGxsNF9tNXgyX2NrX29w cyk7CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrIGRwbGw0X202eDJfY2tfMzYzMCA9IHsKK3N0YXRpYyBz dHJ1Y3QgY2xrX2NvcmUgZHBsbDRfbTZ4Ml9ja18zNjMwID0gewogCS5uYW1lCQk9ICJkcGxsNF9t NngyX2NrIiwKIAkuaHcJCT0gJmRwbGw0X202eDJfY2tfaHcuaHcsCiAJLnBhcmVudF9uYW1lcwk9 IGRwbGw0X202eDJfY2tfcGFyZW50X25hbWVzLApAQCAtOTc2LDcgKzk3NSw3IEBAIHN0YXRpYyBz dHJ1Y3QgZHBsbF9kYXRhIGRwbGw1X2RkID0gewogCS5tYXhfZGl2aWRlcgk9IE9NQVAzX01BWF9E UExMX0RJViwKIH07CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrIGRwbGw1X2NrOworc3RhdGljIHN0cnVj dCBjbGtfY29yZSBkcGxsNV9jazsKIAogc3RhdGljIHN0cnVjdCBjbGtfaHdfb21hcCBkcGxsNV9j a19odyA9IHsKIAkuaHcgPSB7CkBAIC05OTQsNyArOTkzLDcgQEAgREVGSU5FX0NMS19ESVZJREVS KGRwbGw1X20yX2NrLCAiZHBsbDVfY2siLCAmZHBsbDVfY2ssIDB4MCwKIAkJICAgT01BUDM0MzBF UzJfRElWXzEyME1fU0hJRlQsIE9NQVAzNDMwRVMyX0RJVl8xMjBNX1dJRFRILAogCQkgICBDTEtf RElWSURFUl9PTkVfQkFTRUQsIE5VTEwpOwogCi1zdGF0aWMgc3RydWN0IGNsayBkc3MxX2Fsd29u X2Zja18zNDMwZXMxOworc3RhdGljIHN0cnVjdCBjbGtfY29yZSBkc3MxX2Fsd29uX2Zja18zNDMw ZXMxOwogCiBzdGF0aWMgY29uc3QgY2hhciAqZHNzMV9hbHdvbl9mY2tfMzQzMGVzMV9wYXJlbnRf bmFtZXNbXSA9IHsKIAkiZHBsbDRfbTR4Ml9jayIsCkBAIC0xMDEzLDcgKzEwMTIsNyBAQCBERUZJ TkVfU1RSVUNUX0NMS19GTEFHUyhkc3MxX2Fsd29uX2Zja18zNDMwZXMxLAogCQlkc3MxX2Fsd29u X2Zja18zNDMwZXMxX3BhcmVudF9uYW1lcywgYWVzMl9pY2tfb3BzLAogCQlDTEtfU0VUX1JBVEVf UEFSRU5UKTsKIAotc3RhdGljIHN0cnVjdCBjbGsgZHNzMV9hbHdvbl9mY2tfMzQzMGVzMjsKK3N0 YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgZHNzMV9hbHdvbl9mY2tfMzQzMGVzMjsKIAogc3RhdGljIHN0 cnVjdCBjbGtfaHdfb21hcCBkc3MxX2Fsd29uX2Zja18zNDMwZXMyX2h3ID0gewogCS5odyA9IHsK QEAgLTEwMjksNyArMTAyOCw3IEBAIERFRklORV9TVFJVQ1RfQ0xLX0ZMQUdTKGRzczFfYWx3b25f ZmNrXzM0MzBlczIsCiAJCWRzczFfYWx3b25fZmNrXzM0MzBlczFfcGFyZW50X25hbWVzLCBhZXMy X2lja19vcHMsCiAJCUNMS19TRVRfUkFURV9QQVJFTlQpOwogCi1zdGF0aWMgc3RydWN0IGNsayBk c3MyX2Fsd29uX2ZjazsKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgZHNzMl9hbHdvbl9mY2s7CiAK IHN0YXRpYyBzdHJ1Y3QgY2xrX2h3X29tYXAgZHNzMl9hbHdvbl9mY2tfaHcgPSB7CiAJLmh3ID0g ewpAQCAtMTA0Miw3ICsxMDQxLDcgQEAgc3RhdGljIHN0cnVjdCBjbGtfaHdfb21hcCBkc3MyX2Fs d29uX2Zja19odyA9IHsKIAogREVGSU5FX1NUUlVDVF9DTEsoZHNzMl9hbHdvbl9mY2ssIGRwbGwz X2NrX3BhcmVudF9uYW1lcywgYWVzMl9pY2tfb3BzKTsKIAotc3RhdGljIHN0cnVjdCBjbGsgZHNz Xzk2bV9mY2s7CitzdGF0aWMgc3RydWN0IGNsa19jb3JlIGRzc185Nm1fZmNrOwogCiBzdGF0aWMg c3RydWN0IGNsa19od19vbWFwIGRzc185Nm1fZmNrX2h3ID0gewogCS5odyA9IHsKQEAgLTEwNTUs NyArMTA1NCw3IEBAIHN0YXRpYyBzdHJ1Y3QgY2xrX2h3X29tYXAgZHNzXzk2bV9mY2tfaHcgPSB7 CiAKIERFRklORV9TVFJVQ1RfQ0xLKGRzc185Nm1fZmNrLCBjb3JlXzk2bV9mY2tfcGFyZW50X25h bWVzLCBhZXMyX2lja19vcHMpOwogCi1zdGF0aWMgc3RydWN0IGNsayBkc3NfaWNrXzM0MzBlczE7 CitzdGF0aWMgc3RydWN0IGNsa19jb3JlIGRzc19pY2tfMzQzMGVzMTsKIAogc3RhdGljIHN0cnVj dCBjbGtfaHdfb21hcCBkc3NfaWNrXzM0MzBlczFfaHcgPSB7CiAJLmh3ID0gewpAQCAtMTA2OSw3 ICsxMDY4LDcgQEAgc3RhdGljIHN0cnVjdCBjbGtfaHdfb21hcCBkc3NfaWNrXzM0MzBlczFfaHcg PSB7CiAKIERFRklORV9TVFJVQ1RfQ0xLKGRzc19pY2tfMzQzMGVzMSwgc2VjdXJpdHlfbDRfaWNr Ml9wYXJlbnRfbmFtZXMsIGFlczJfaWNrX29wcyk7CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrIGRzc19p Y2tfMzQzMGVzMjsKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgZHNzX2lja18zNDMwZXMyOwogCiBz dGF0aWMgc3RydWN0IGNsa19od19vbWFwIGRzc19pY2tfMzQzMGVzMl9odyA9IHsKIAkuaHcgPSB7 CkBAIC0xMDgzLDcgKzEwODIsNyBAQCBzdGF0aWMgc3RydWN0IGNsa19od19vbWFwIGRzc19pY2tf MzQzMGVzMl9odyA9IHsKIAogREVGSU5FX1NUUlVDVF9DTEsoZHNzX2lja18zNDMwZXMyLCBzZWN1 cml0eV9sNF9pY2syX3BhcmVudF9uYW1lcywgYWVzMl9pY2tfb3BzKTsKIAotc3RhdGljIHN0cnVj dCBjbGsgZHNzX3R2X2ZjazsKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgZHNzX3R2X2ZjazsKIAog c3RhdGljIGNvbnN0IGNoYXIgKmRzc190dl9mY2tfcGFyZW50X25hbWVzW10gPSB7CiAJIm9tYXBf NTRtX2ZjayIsCkBAIC0xMTAwLDcgKzEwOTksNyBAQCBzdGF0aWMgc3RydWN0IGNsa19od19vbWFw IGRzc190dl9mY2tfaHcgPSB7CiAKIERFRklORV9TVFJVQ1RfQ0xLKGRzc190dl9mY2ssIGRzc190 dl9mY2tfcGFyZW50X25hbWVzLCBhZXMyX2lja19vcHMpOwogCi1zdGF0aWMgc3RydWN0IGNsayBl bWFjX2ZjazsKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgZW1hY19mY2s7CiAKIHN0YXRpYyBjb25z dCBjaGFyICplbWFjX2Zja19wYXJlbnRfbmFtZXNbXSA9IHsKIAkicm1paV9jayIsCkBAIC0xMTE2 LDcgKzExMTUsNyBAQCBzdGF0aWMgc3RydWN0IGNsa19od19vbWFwIGVtYWNfZmNrX2h3ID0gewog CiBERUZJTkVfU1RSVUNUX0NMSyhlbWFjX2ZjaywgZW1hY19mY2tfcGFyZW50X25hbWVzLCBhZXMx X2lja19vcHMpOwogCi1zdGF0aWMgc3RydWN0IGNsayBpcHNzX2ljazsKK3N0YXRpYyBzdHJ1Y3Qg Y2xrX2NvcmUgaXBzc19pY2s7CiAKIHN0YXRpYyBjb25zdCBjaGFyICppcHNzX2lja19wYXJlbnRf bmFtZXNbXSA9IHsKIAkiY29yZV9sM19pY2siLApAQCAtMTEzNCw3ICsxMTMzLDcgQEAgc3RhdGlj IHN0cnVjdCBjbGtfaHdfb21hcCBpcHNzX2lja19odyA9IHsKIAogREVGSU5FX1NUUlVDVF9DTEso aXBzc19pY2ssIGlwc3NfaWNrX3BhcmVudF9uYW1lcywgYWVzMl9pY2tfb3BzKTsKIAotc3RhdGlj IHN0cnVjdCBjbGsgZW1hY19pY2s7CitzdGF0aWMgc3RydWN0IGNsa19jb3JlIGVtYWNfaWNrOwog CiBzdGF0aWMgY29uc3QgY2hhciAqZW1hY19pY2tfcGFyZW50X25hbWVzW10gPSB7CiAJImlwc3Nf aWNrIiwKQEAgLTExNTIsNyArMTE1MSw3IEBAIHN0YXRpYyBzdHJ1Y3QgY2xrX2h3X29tYXAgZW1h Y19pY2tfaHcgPSB7CiAKIERFRklORV9TVFJVQ1RfQ0xLKGVtYWNfaWNrLCBlbWFjX2lja19wYXJl bnRfbmFtZXMsIGFlczJfaWNrX29wcyk7CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrIGVtdV9jb3JlX2Fs d29uX2NrOworc3RhdGljIHN0cnVjdCBjbGtfY29yZSBlbXVfY29yZV9hbHdvbl9jazsKIAogc3Rh dGljIGNvbnN0IGNoYXIgKmVtdV9jb3JlX2Fsd29uX2NrX3BhcmVudF9uYW1lc1tdID0gewogCSJk cGxsM19tM3gyX2NrIiwKQEAgLTExNjIsNyArMTE2MSw3IEBAIERFRklORV9TVFJVQ1RfQ0xLX0hX X09NQVAoZW11X2NvcmVfYWx3b25fY2ssICJkcGxsM19jbGtkbSIpOwogREVGSU5FX1NUUlVDVF9D TEsoZW11X2NvcmVfYWx3b25fY2ssIGVtdV9jb3JlX2Fsd29uX2NrX3BhcmVudF9uYW1lcywKIAkJ ICBjb3JlX2w0X2lja19vcHMpOwogCi1zdGF0aWMgc3RydWN0IGNsayBlbXVfbXB1X2Fsd29uX2Nr Oworc3RhdGljIHN0cnVjdCBjbGtfY29yZSBlbXVfbXB1X2Fsd29uX2NrOwogCiBzdGF0aWMgY29u c3QgY2hhciAqZW11X21wdV9hbHdvbl9ja19wYXJlbnRfbmFtZXNbXSA9IHsKIAkibXB1X2NrIiwK QEAgLTExNzEsNyArMTE3MCw3IEBAIHN0YXRpYyBjb25zdCBjaGFyICplbXVfbXB1X2Fsd29uX2Nr X3BhcmVudF9uYW1lc1tdID0gewogREVGSU5FX1NUUlVDVF9DTEtfSFdfT01BUChlbXVfbXB1X2Fs d29uX2NrLCBOVUxMKTsKIERFRklORV9TVFJVQ1RfQ0xLKGVtdV9tcHVfYWx3b25fY2ssIGVtdV9t cHVfYWx3b25fY2tfcGFyZW50X25hbWVzLCBjb3JlX2NrX29wcyk7CiAKLXN0YXRpYyBzdHJ1Y3Qg Y2xrIGVtdV9wZXJfYWx3b25fY2s7CitzdGF0aWMgc3RydWN0IGNsa19jb3JlIGVtdV9wZXJfYWx3 b25fY2s7CiAKIHN0YXRpYyBjb25zdCBjaGFyICplbXVfcGVyX2Fsd29uX2NrX3BhcmVudF9uYW1l c1tdID0gewogCSJkcGxsNF9tNngyX2NrIiwKQEAgLTEyMjIsNyArMTIyMSw3IEBAIHN0YXRpYyBj b25zdCBzdHJ1Y3QgY2xrX29wcyBlbXVfc3JjX2NrX29wcyA9IHsKIAkuZGlzYWJsZQk9ICZvbWFw Ml9jbGtvcHNfZGlzYWJsZV9jbGtkbSwKIH07CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrIGVtdV9zcmNf Y2s7CitzdGF0aWMgc3RydWN0IGNsa19jb3JlIGVtdV9zcmNfY2s7CiAKIHN0YXRpYyBzdHJ1Y3Qg Y2xrX2h3X29tYXAgZW11X3NyY19ja19odyA9IHsKIAkuaHcgPSB7CkBAIC0xMjQxLDcgKzEyNDAs NyBAQCBERUZJTkVfQ0xLX0RJVklERVIoYXRjbGtfZmNrLCAiZW11X3NyY19jayIsICZlbXVfc3Jj X2NrLCAweDAsCiAJCSAgIE9NQVAzNDMwX0NMS1NFTF9BVENMS19TSElGVCwgT01BUDM0MzBfQ0xL U0VMX0FUQ0xLX1dJRFRILAogCQkgICBDTEtfRElWSURFUl9PTkVfQkFTRUQsIE5VTEwpOwogCi1z dGF0aWMgc3RydWN0IGNsayBmYWNfaWNrOworc3RhdGljIHN0cnVjdCBjbGtfY29yZSBmYWNfaWNr OwogCiBzdGF0aWMgc3RydWN0IGNsa19od19vbWFwIGZhY19pY2tfaHcgPSB7CiAJLmh3ID0gewpA QCAtMTI1NSw3ICsxMjU0LDcgQEAgc3RhdGljIHN0cnVjdCBjbGtfaHdfb21hcCBmYWNfaWNrX2h3 ID0gewogCiBERUZJTkVfU1RSVUNUX0NMSyhmYWNfaWNrLCBhZXMyX2lja19wYXJlbnRfbmFtZXMs IGFlczJfaWNrX29wcyk7CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrIGZzaG9zdHVzYl9mY2s7CitzdGF0 aWMgc3RydWN0IGNsa19jb3JlIGZzaG9zdHVzYl9mY2s7CiAKIHN0YXRpYyBjb25zdCBjaGFyICpm c2hvc3R1c2JfZmNrX3BhcmVudF9uYW1lc1tdID0gewogCSJjb3JlXzQ4bV9mY2siLApAQCAtMTI3 Myw3ICsxMjcyLDcgQEAgc3RhdGljIHN0cnVjdCBjbGtfaHdfb21hcCBmc2hvc3R1c2JfZmNrX2h3 ID0gewogCiBERUZJTkVfU1RSVUNUX0NMSyhmc2hvc3R1c2JfZmNrLCBmc2hvc3R1c2JfZmNrX3Bh cmVudF9uYW1lcywgYWVzMl9pY2tfb3BzKTsKIAotc3RhdGljIHN0cnVjdCBjbGsgZ2Z4X2wzX2Nr Oworc3RhdGljIHN0cnVjdCBjbGtfY29yZSBnZnhfbDNfY2s7CiAKIHN0YXRpYyBzdHJ1Y3QgY2xr X2h3X29tYXAgZ2Z4X2wzX2NrX2h3ID0gewogCS5odyA9IHsKQEAgLTEyOTIsNyArMTI5MSw3IEBA IERFRklORV9DTEtfRElWSURFUihnZnhfbDNfZmNrLCAibDNfaWNrIiwgJmwzX2ljaywgMHgwLAog CQkgICBPTUFQX0NMS1NFTF9HRlhfU0hJRlQsIE9NQVBfQ0xLU0VMX0dGWF9XSURUSCwKIAkJICAg Q0xLX0RJVklERVJfT05FX0JBU0VELCBOVUxMKTsKIAotc3RhdGljIHN0cnVjdCBjbGsgZ2Z4X2Nn MV9jazsKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgZ2Z4X2NnMV9jazsKIAogc3RhdGljIGNvbnN0 IGNoYXIgKmdmeF9jZzFfY2tfcGFyZW50X25hbWVzW10gPSB7CiAJImdmeF9sM19mY2siLApAQCAt MTMxMCw3ICsxMzA5LDcgQEAgc3RhdGljIHN0cnVjdCBjbGtfaHdfb21hcCBnZnhfY2cxX2NrX2h3 ID0gewogCiBERUZJTkVfU1RSVUNUX0NMSyhnZnhfY2cxX2NrLCBnZnhfY2cxX2NrX3BhcmVudF9u YW1lcywgYWVzMl9pY2tfb3BzKTsKIAotc3RhdGljIHN0cnVjdCBjbGsgZ2Z4X2NnMl9jazsKK3N0 YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgZ2Z4X2NnMl9jazsKIAogc3RhdGljIHN0cnVjdCBjbGtfaHdf b21hcCBnZnhfY2cyX2NrX2h3ID0gewogCS5odyA9IHsKQEAgLTEzMjQsNyArMTMyMyw3IEBAIHN0 YXRpYyBzdHJ1Y3QgY2xrX2h3X29tYXAgZ2Z4X2NnMl9ja19odyA9IHsKIAogREVGSU5FX1NUUlVD VF9DTEsoZ2Z4X2NnMl9jaywgZ2Z4X2NnMV9ja19wYXJlbnRfbmFtZXMsIGFlczJfaWNrX29wcyk7 CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrIGdmeF9sM19pY2s7CitzdGF0aWMgc3RydWN0IGNsa19jb3Jl IGdmeF9sM19pY2s7CiAKIHN0YXRpYyBjb25zdCBjaGFyICpnZnhfbDNfaWNrX3BhcmVudF9uYW1l c1tdID0gewogCSJnZnhfbDNfY2siLApAQCAtMTMzMyw3ICsxMzMyLDcgQEAgc3RhdGljIGNvbnN0 IGNoYXIgKmdmeF9sM19pY2tfcGFyZW50X25hbWVzW10gPSB7CiBERUZJTkVfU1RSVUNUX0NMS19I V19PTUFQKGdmeF9sM19pY2ssICJnZnhfMzQzMGVzMV9jbGtkbSIpOwogREVGSU5FX1NUUlVDVF9D TEsoZ2Z4X2wzX2ljaywgZ2Z4X2wzX2lja19wYXJlbnRfbmFtZXMsIGNvcmVfbDRfaWNrX29wcyk7 CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrIHdrdXBfMzJrX2ZjazsKK3N0YXRpYyBzdHJ1Y3QgY2xrX2Nv cmUgd2t1cF8zMmtfZmNrOwogCiBzdGF0aWMgY29uc3QgY2hhciAqd2t1cF8zMmtfZmNrX3BhcmVu dF9uYW1lc1tdID0gewogCSJvbWFwXzMya19mY2siLApAQCAtMTM0Miw3ICsxMzQxLDcgQEAgc3Rh dGljIGNvbnN0IGNoYXIgKndrdXBfMzJrX2Zja19wYXJlbnRfbmFtZXNbXSA9IHsKIERFRklORV9T VFJVQ1RfQ0xLX0hXX09NQVAod2t1cF8zMmtfZmNrLCAid2t1cF9jbGtkbSIpOwogREVGSU5FX1NU UlVDVF9DTEsod2t1cF8zMmtfZmNrLCB3a3VwXzMya19mY2tfcGFyZW50X25hbWVzLCBjb3JlX2w0 X2lja19vcHMpOwogCi1zdGF0aWMgc3RydWN0IGNsayBncGlvMV9kYmNrOworc3RhdGljIHN0cnVj dCBjbGtfY29yZSBncGlvMV9kYmNrOwogCiBzdGF0aWMgY29uc3QgY2hhciAqZ3BpbzFfZGJja19w YXJlbnRfbmFtZXNbXSA9IHsKIAkid2t1cF8zMmtfZmNrIiwKQEAgLTEzNTksMTIgKzEzNTgsMTIg QEAgc3RhdGljIHN0cnVjdCBjbGtfaHdfb21hcCBncGlvMV9kYmNrX2h3ID0gewogCiBERUZJTkVf U1RSVUNUX0NMSyhncGlvMV9kYmNrLCBncGlvMV9kYmNrX3BhcmVudF9uYW1lcywgYWVzMl9pY2tf b3BzKTsKIAotc3RhdGljIHN0cnVjdCBjbGsgd2t1cF9sNF9pY2s7CitzdGF0aWMgc3RydWN0IGNs a19jb3JlIHdrdXBfbDRfaWNrOwogCiBERUZJTkVfU1RSVUNUX0NMS19IV19PTUFQKHdrdXBfbDRf aWNrLCAid2t1cF9jbGtkbSIpOwogREVGSU5FX1NUUlVDVF9DTEsod2t1cF9sNF9pY2ssIGRwbGwz X2NrX3BhcmVudF9uYW1lcywgY29yZV9sNF9pY2tfb3BzKTsKIAotc3RhdGljIHN0cnVjdCBjbGsg Z3BpbzFfaWNrOworc3RhdGljIHN0cnVjdCBjbGtfY29yZSBncGlvMV9pY2s7CiAKIHN0YXRpYyBj b25zdCBjaGFyICpncGlvMV9pY2tfcGFyZW50X25hbWVzW10gPSB7CiAJIndrdXBfbDRfaWNrIiwK QEAgLTEzODIsMTMgKzEzODEsMTMgQEAgc3RhdGljIHN0cnVjdCBjbGtfaHdfb21hcCBncGlvMV9p Y2tfaHcgPSB7CiAKIERFRklORV9TVFJVQ1RfQ0xLKGdwaW8xX2ljaywgZ3BpbzFfaWNrX3BhcmVu dF9uYW1lcywgYWVzMl9pY2tfb3BzKTsKIAotc3RhdGljIHN0cnVjdCBjbGsgcGVyXzMya19hbHdv bl9mY2s7CitzdGF0aWMgc3RydWN0IGNsa19jb3JlIHBlcl8zMmtfYWx3b25fZmNrOwogCiBERUZJ TkVfU1RSVUNUX0NMS19IV19PTUFQKHBlcl8zMmtfYWx3b25fZmNrLCAicGVyX2Nsa2RtIik7CiBE RUZJTkVfU1RSVUNUX0NMSyhwZXJfMzJrX2Fsd29uX2Zjaywgd2t1cF8zMmtfZmNrX3BhcmVudF9u YW1lcywKIAkJICBjb3JlX2w0X2lja19vcHMpOwogCi1zdGF0aWMgc3RydWN0IGNsayBncGlvMl9k YmNrOworc3RhdGljIHN0cnVjdCBjbGtfY29yZSBncGlvMl9kYmNrOwogCiBzdGF0aWMgY29uc3Qg Y2hhciAqZ3BpbzJfZGJja19wYXJlbnRfbmFtZXNbXSA9IHsKIAkicGVyXzMya19hbHdvbl9mY2si LApAQCAtMTQwNSwxMiArMTQwNCwxMiBAQCBzdGF0aWMgc3RydWN0IGNsa19od19vbWFwIGdwaW8y X2RiY2tfaHcgPSB7CiAKIERFRklORV9TVFJVQ1RfQ0xLKGdwaW8yX2RiY2ssIGdwaW8yX2RiY2tf cGFyZW50X25hbWVzLCBhZXMyX2lja19vcHMpOwogCi1zdGF0aWMgc3RydWN0IGNsayBwZXJfbDRf aWNrOworc3RhdGljIHN0cnVjdCBjbGtfY29yZSBwZXJfbDRfaWNrOwogCiBERUZJTkVfU1RSVUNU X0NMS19IV19PTUFQKHBlcl9sNF9pY2ssICJwZXJfY2xrZG0iKTsKIERFRklORV9TVFJVQ1RfQ0xL KHBlcl9sNF9pY2ssIHNlY3VyaXR5X2w0X2ljazJfcGFyZW50X25hbWVzLCBjb3JlX2w0X2lja19v cHMpOwogCi1zdGF0aWMgc3RydWN0IGNsayBncGlvMl9pY2s7CitzdGF0aWMgc3RydWN0IGNsa19j b3JlIGdwaW8yX2ljazsKIAogc3RhdGljIGNvbnN0IGNoYXIgKmdwaW8yX2lja19wYXJlbnRfbmFt ZXNbXSA9IHsKIAkicGVyX2w0X2ljayIsCkBAIC0xNDI4LDcgKzE0MjcsNyBAQCBzdGF0aWMgc3Ry dWN0IGNsa19od19vbWFwIGdwaW8yX2lja19odyA9IHsKIAogREVGSU5FX1NUUlVDVF9DTEsoZ3Bp bzJfaWNrLCBncGlvMl9pY2tfcGFyZW50X25hbWVzLCBhZXMyX2lja19vcHMpOwogCi1zdGF0aWMg c3RydWN0IGNsayBncGlvM19kYmNrOworc3RhdGljIHN0cnVjdCBjbGtfY29yZSBncGlvM19kYmNr OwogCiBzdGF0aWMgc3RydWN0IGNsa19od19vbWFwIGdwaW8zX2RiY2tfaHcgPSB7CiAJLmh3ID0g ewpAQCAtMTQ0MSw3ICsxNDQwLDcgQEAgc3RhdGljIHN0cnVjdCBjbGtfaHdfb21hcCBncGlvM19k YmNrX2h3ID0gewogCiBERUZJTkVfU1RSVUNUX0NMSyhncGlvM19kYmNrLCBncGlvMl9kYmNrX3Bh cmVudF9uYW1lcywgYWVzMl9pY2tfb3BzKTsKIAotc3RhdGljIHN0cnVjdCBjbGsgZ3BpbzNfaWNr Oworc3RhdGljIHN0cnVjdCBjbGtfY29yZSBncGlvM19pY2s7CiAKIHN0YXRpYyBzdHJ1Y3QgY2xr X2h3X29tYXAgZ3BpbzNfaWNrX2h3ID0gewogCS5odyA9IHsKQEAgLTE0NTUsNyArMTQ1NCw3IEBA IHN0YXRpYyBzdHJ1Y3QgY2xrX2h3X29tYXAgZ3BpbzNfaWNrX2h3ID0gewogCiBERUZJTkVfU1RS VUNUX0NMSyhncGlvM19pY2ssIGdwaW8yX2lja19wYXJlbnRfbmFtZXMsIGFlczJfaWNrX29wcyk7 CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrIGdwaW80X2RiY2s7CitzdGF0aWMgc3RydWN0IGNsa19jb3Jl IGdwaW80X2RiY2s7CiAKIHN0YXRpYyBzdHJ1Y3QgY2xrX2h3X29tYXAgZ3BpbzRfZGJja19odyA9 IHsKIAkuaHcgPSB7CkBAIC0xNDY4LDcgKzE0NjcsNyBAQCBzdGF0aWMgc3RydWN0IGNsa19od19v bWFwIGdwaW80X2RiY2tfaHcgPSB7CiAKIERFRklORV9TVFJVQ1RfQ0xLKGdwaW80X2RiY2ssIGdw aW8yX2RiY2tfcGFyZW50X25hbWVzLCBhZXMyX2lja19vcHMpOwogCi1zdGF0aWMgc3RydWN0IGNs ayBncGlvNF9pY2s7CitzdGF0aWMgc3RydWN0IGNsa19jb3JlIGdwaW80X2ljazsKIAogc3RhdGlj IHN0cnVjdCBjbGtfaHdfb21hcCBncGlvNF9pY2tfaHcgPSB7CiAJLmh3ID0gewpAQCAtMTQ4Miw3 ICsxNDgxLDcgQEAgc3RhdGljIHN0cnVjdCBjbGtfaHdfb21hcCBncGlvNF9pY2tfaHcgPSB7CiAK IERFRklORV9TVFJVQ1RfQ0xLKGdwaW80X2ljaywgZ3BpbzJfaWNrX3BhcmVudF9uYW1lcywgYWVz Ml9pY2tfb3BzKTsKIAotc3RhdGljIHN0cnVjdCBjbGsgZ3BpbzVfZGJjazsKK3N0YXRpYyBzdHJ1 Y3QgY2xrX2NvcmUgZ3BpbzVfZGJjazsKIAogc3RhdGljIHN0cnVjdCBjbGtfaHdfb21hcCBncGlv NV9kYmNrX2h3ID0gewogCS5odyA9IHsKQEAgLTE0OTUsNyArMTQ5NCw3IEBAIHN0YXRpYyBzdHJ1 Y3QgY2xrX2h3X29tYXAgZ3BpbzVfZGJja19odyA9IHsKIAogREVGSU5FX1NUUlVDVF9DTEsoZ3Bp bzVfZGJjaywgZ3BpbzJfZGJja19wYXJlbnRfbmFtZXMsIGFlczJfaWNrX29wcyk7CiAKLXN0YXRp YyBzdHJ1Y3QgY2xrIGdwaW81X2ljazsKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgZ3BpbzVfaWNr OwogCiBzdGF0aWMgc3RydWN0IGNsa19od19vbWFwIGdwaW81X2lja19odyA9IHsKIAkuaHcgPSB7 CkBAIC0xNTA5LDcgKzE1MDgsNyBAQCBzdGF0aWMgc3RydWN0IGNsa19od19vbWFwIGdwaW81X2lj a19odyA9IHsKIAogREVGSU5FX1NUUlVDVF9DTEsoZ3BpbzVfaWNrLCBncGlvMl9pY2tfcGFyZW50 X25hbWVzLCBhZXMyX2lja19vcHMpOwogCi1zdGF0aWMgc3RydWN0IGNsayBncGlvNl9kYmNrOwor c3RhdGljIHN0cnVjdCBjbGtfY29yZSBncGlvNl9kYmNrOwogCiBzdGF0aWMgc3RydWN0IGNsa19o d19vbWFwIGdwaW82X2RiY2tfaHcgPSB7CiAJLmh3ID0gewpAQCAtMTUyMiw3ICsxNTIxLDcgQEAg c3RhdGljIHN0cnVjdCBjbGtfaHdfb21hcCBncGlvNl9kYmNrX2h3ID0gewogCiBERUZJTkVfU1RS VUNUX0NMSyhncGlvNl9kYmNrLCBncGlvMl9kYmNrX3BhcmVudF9uYW1lcywgYWVzMl9pY2tfb3Bz KTsKIAotc3RhdGljIHN0cnVjdCBjbGsgZ3BpbzZfaWNrOworc3RhdGljIHN0cnVjdCBjbGtfY29y ZSBncGlvNl9pY2s7CiAKIHN0YXRpYyBzdHJ1Y3QgY2xrX2h3X29tYXAgZ3BpbzZfaWNrX2h3ID0g ewogCS5odyA9IHsKQEAgLTE1MzYsNyArMTUzNSw3IEBAIHN0YXRpYyBzdHJ1Y3QgY2xrX2h3X29t YXAgZ3BpbzZfaWNrX2h3ID0gewogCiBERUZJTkVfU1RSVUNUX0NMSyhncGlvNl9pY2ssIGdwaW8y X2lja19wYXJlbnRfbmFtZXMsIGFlczJfaWNrX29wcyk7CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrIGdw bWNfZmNrOworc3RhdGljIHN0cnVjdCBjbGtfY29yZSBncG1jX2ZjazsKIAogc3RhdGljIHN0cnVj dCBjbGtfaHdfb21hcCBncG1jX2Zja19odyA9IHsKIAkuaHcgPSB7CkBAIC0xNTY1LDcgKzE1NjQs NyBAQCBERUZJTkVfQ0xLX09NQVBfTVVYX0dBVEUoZ3B0MTBfZmNrLCAiY29yZV9sNF9jbGtkbSIs IG9tYXAzNDN4X2dwdF9jbGtzZWwsCiAJCQkgT01BUDM0MzBfRU5fR1BUMTBfU0hJRlQsICZjbGto d29wc193YWl0LAogCQkJIGdwdDEwX2Zja19wYXJlbnRfbmFtZXMsIGNsa291dDJfc3JjX2NrX29w cyk7CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrIGdwdDEwX2ljazsKK3N0YXRpYyBzdHJ1Y3QgY2xrX2Nv cmUgZ3B0MTBfaWNrOwogCiBzdGF0aWMgc3RydWN0IGNsa19od19vbWFwIGdwdDEwX2lja19odyA9 IHsKIAkuaHcgPSB7CkBAIC0xNTg2LDcgKzE1ODUsNyBAQCBERUZJTkVfQ0xLX09NQVBfTVVYX0dB VEUoZ3B0MTFfZmNrLCAiY29yZV9sNF9jbGtkbSIsIG9tYXAzNDN4X2dwdF9jbGtzZWwsCiAJCQkg T01BUDM0MzBfRU5fR1BUMTFfU0hJRlQsICZjbGtod29wc193YWl0LAogCQkJIGdwdDEwX2Zja19w YXJlbnRfbmFtZXMsIGNsa291dDJfc3JjX2NrX29wcyk7CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrIGdw dDExX2ljazsKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgZ3B0MTFfaWNrOwogCiBzdGF0aWMgc3Ry dWN0IGNsa19od19vbWFwIGdwdDExX2lja19odyA9IHsKIAkuaHcgPSB7CkBAIC0xNjAwLDcgKzE1 OTksNyBAQCBzdGF0aWMgc3RydWN0IGNsa19od19vbWFwIGdwdDExX2lja19odyA9IHsKIAogREVG SU5FX1NUUlVDVF9DTEsoZ3B0MTFfaWNrLCBhZXMyX2lja19wYXJlbnRfbmFtZXMsIGFlczJfaWNr X29wcyk7CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrIGdwdDEyX2ZjazsKK3N0YXRpYyBzdHJ1Y3QgY2xr X2NvcmUgZ3B0MTJfZmNrOwogCiBzdGF0aWMgY29uc3QgY2hhciAqZ3B0MTJfZmNrX3BhcmVudF9u YW1lc1tdID0gewogCSJzZWN1cmVfMzJrX2ZjayIsCkBAIC0xNjA5LDcgKzE2MDgsNyBAQCBzdGF0 aWMgY29uc3QgY2hhciAqZ3B0MTJfZmNrX3BhcmVudF9uYW1lc1tdID0gewogREVGSU5FX1NUUlVD VF9DTEtfSFdfT01BUChncHQxMl9mY2ssICJ3a3VwX2Nsa2RtIik7CiBERUZJTkVfU1RSVUNUX0NM SyhncHQxMl9mY2ssIGdwdDEyX2Zja19wYXJlbnRfbmFtZXMsIGNvcmVfbDRfaWNrX29wcyk7CiAK LXN0YXRpYyBzdHJ1Y3QgY2xrIGdwdDEyX2ljazsKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgZ3B0 MTJfaWNrOwogCiBzdGF0aWMgc3RydWN0IGNsa19od19vbWFwIGdwdDEyX2lja19odyA9IHsKIAku aHcgPSB7CkBAIC0xNjMwLDcgKzE2MjksNyBAQCBERUZJTkVfQ0xLX09NQVBfTVVYX0dBVEUoZ3B0 MV9mY2ssICJ3a3VwX2Nsa2RtIiwgb21hcDM0M3hfZ3B0X2Nsa3NlbCwKIAkJCSBPTUFQMzQzMF9F Tl9HUFQxX1NISUZULCAmY2xraHdvcHNfd2FpdCwKIAkJCSBncHQxMF9mY2tfcGFyZW50X25hbWVz LCBjbGtvdXQyX3NyY19ja19vcHMpOwogCi1zdGF0aWMgc3RydWN0IGNsayBncHQxX2ljazsKK3N0 YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgZ3B0MV9pY2s7CiAKIHN0YXRpYyBzdHJ1Y3QgY2xrX2h3X29t YXAgZ3B0MV9pY2tfaHcgPSB7CiAJLmh3ID0gewpAQCAtMTY1MSw3ICsxNjUwLDcgQEAgREVGSU5F X0NMS19PTUFQX01VWF9HQVRFKGdwdDJfZmNrLCAicGVyX2Nsa2RtIiwgb21hcDM0M3hfZ3B0X2Ns a3NlbCwKIAkJCSBPTUFQMzQzMF9FTl9HUFQyX1NISUZULCAmY2xraHdvcHNfd2FpdCwKIAkJCSBn cHQxMF9mY2tfcGFyZW50X25hbWVzLCBjbGtvdXQyX3NyY19ja19vcHMpOwogCi1zdGF0aWMgc3Ry dWN0IGNsayBncHQyX2ljazsKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgZ3B0Ml9pY2s7CiAKIHN0 YXRpYyBzdHJ1Y3QgY2xrX2h3X29tYXAgZ3B0Ml9pY2tfaHcgPSB7CiAJLmh3ID0gewpAQCAtMTY3 Miw3ICsxNjcxLDcgQEAgREVGSU5FX0NMS19PTUFQX01VWF9HQVRFKGdwdDNfZmNrLCAicGVyX2Ns a2RtIiwgb21hcDM0M3hfZ3B0X2Nsa3NlbCwKIAkJCSBPTUFQMzQzMF9FTl9HUFQzX1NISUZULCAm Y2xraHdvcHNfd2FpdCwKIAkJCSBncHQxMF9mY2tfcGFyZW50X25hbWVzLCBjbGtvdXQyX3NyY19j a19vcHMpOwogCi1zdGF0aWMgc3RydWN0IGNsayBncHQzX2ljazsKK3N0YXRpYyBzdHJ1Y3QgY2xr X2NvcmUgZ3B0M19pY2s7CiAKIHN0YXRpYyBzdHJ1Y3QgY2xrX2h3X29tYXAgZ3B0M19pY2tfaHcg PSB7CiAJLmh3ID0gewpAQCAtMTY5Myw3ICsxNjkyLDcgQEAgREVGSU5FX0NMS19PTUFQX01VWF9H QVRFKGdwdDRfZmNrLCAicGVyX2Nsa2RtIiwgb21hcDM0M3hfZ3B0X2Nsa3NlbCwKIAkJCSBPTUFQ MzQzMF9FTl9HUFQ0X1NISUZULCAmY2xraHdvcHNfd2FpdCwKIAkJCSBncHQxMF9mY2tfcGFyZW50 X25hbWVzLCBjbGtvdXQyX3NyY19ja19vcHMpOwogCi1zdGF0aWMgc3RydWN0IGNsayBncHQ0X2lj azsKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgZ3B0NF9pY2s7CiAKIHN0YXRpYyBzdHJ1Y3QgY2xr X2h3X29tYXAgZ3B0NF9pY2tfaHcgPSB7CiAJLmh3ID0gewpAQCAtMTcxNCw3ICsxNzEzLDcgQEAg REVGSU5FX0NMS19PTUFQX01VWF9HQVRFKGdwdDVfZmNrLCAicGVyX2Nsa2RtIiwgb21hcDM0M3hf Z3B0X2Nsa3NlbCwKIAkJCSBPTUFQMzQzMF9FTl9HUFQ1X1NISUZULCAmY2xraHdvcHNfd2FpdCwK IAkJCSBncHQxMF9mY2tfcGFyZW50X25hbWVzLCBjbGtvdXQyX3NyY19ja19vcHMpOwogCi1zdGF0 aWMgc3RydWN0IGNsayBncHQ1X2ljazsKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgZ3B0NV9pY2s7 CiAKIHN0YXRpYyBzdHJ1Y3QgY2xrX2h3X29tYXAgZ3B0NV9pY2tfaHcgPSB7CiAJLmh3ID0gewpA QCAtMTczNSw3ICsxNzM0LDcgQEAgREVGSU5FX0NMS19PTUFQX01VWF9HQVRFKGdwdDZfZmNrLCAi cGVyX2Nsa2RtIiwgb21hcDM0M3hfZ3B0X2Nsa3NlbCwKIAkJCSBPTUFQMzQzMF9FTl9HUFQ2X1NI SUZULCAmY2xraHdvcHNfd2FpdCwKIAkJCSBncHQxMF9mY2tfcGFyZW50X25hbWVzLCBjbGtvdXQy X3NyY19ja19vcHMpOwogCi1zdGF0aWMgc3RydWN0IGNsayBncHQ2X2ljazsKK3N0YXRpYyBzdHJ1 Y3QgY2xrX2NvcmUgZ3B0Nl9pY2s7CiAKIHN0YXRpYyBzdHJ1Y3QgY2xrX2h3X29tYXAgZ3B0Nl9p Y2tfaHcgPSB7CiAJLmh3ID0gewpAQCAtMTc1Niw3ICsxNzU1LDcgQEAgREVGSU5FX0NMS19PTUFQ X01VWF9HQVRFKGdwdDdfZmNrLCAicGVyX2Nsa2RtIiwgb21hcDM0M3hfZ3B0X2Nsa3NlbCwKIAkJ CSBPTUFQMzQzMF9FTl9HUFQ3X1NISUZULCAmY2xraHdvcHNfd2FpdCwKIAkJCSBncHQxMF9mY2tf cGFyZW50X25hbWVzLCBjbGtvdXQyX3NyY19ja19vcHMpOwogCi1zdGF0aWMgc3RydWN0IGNsayBn cHQ3X2ljazsKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgZ3B0N19pY2s7CiAKIHN0YXRpYyBzdHJ1 Y3QgY2xrX2h3X29tYXAgZ3B0N19pY2tfaHcgPSB7CiAJLmh3ID0gewpAQCAtMTc3Nyw3ICsxNzc2 LDcgQEAgREVGSU5FX0NMS19PTUFQX01VWF9HQVRFKGdwdDhfZmNrLCAicGVyX2Nsa2RtIiwgb21h cDM0M3hfZ3B0X2Nsa3NlbCwKIAkJCSBPTUFQMzQzMF9FTl9HUFQ4X1NISUZULCAmY2xraHdvcHNf d2FpdCwKIAkJCSBncHQxMF9mY2tfcGFyZW50X25hbWVzLCBjbGtvdXQyX3NyY19ja19vcHMpOwog Ci1zdGF0aWMgc3RydWN0IGNsayBncHQ4X2ljazsKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgZ3B0 OF9pY2s7CiAKIHN0YXRpYyBzdHJ1Y3QgY2xrX2h3X29tYXAgZ3B0OF9pY2tfaHcgPSB7CiAJLmh3 ID0gewpAQCAtMTc5OCw3ICsxNzk3LDcgQEAgREVGSU5FX0NMS19PTUFQX01VWF9HQVRFKGdwdDlf ZmNrLCAicGVyX2Nsa2RtIiwgb21hcDM0M3hfZ3B0X2Nsa3NlbCwKIAkJCSBPTUFQMzQzMF9FTl9H UFQ5X1NISUZULCAmY2xraHdvcHNfd2FpdCwKIAkJCSBncHQxMF9mY2tfcGFyZW50X25hbWVzLCBj bGtvdXQyX3NyY19ja19vcHMpOwogCi1zdGF0aWMgc3RydWN0IGNsayBncHQ5X2ljazsKK3N0YXRp YyBzdHJ1Y3QgY2xrX2NvcmUgZ3B0OV9pY2s7CiAKIHN0YXRpYyBzdHJ1Y3QgY2xrX2h3X29tYXAg Z3B0OV9pY2tfaHcgPSB7CiAJLmh3ID0gewpAQCAtMTgxMiw3ICsxODExLDcgQEAgc3RhdGljIHN0 cnVjdCBjbGtfaHdfb21hcCBncHQ5X2lja19odyA9IHsKIAogREVGSU5FX1NUUlVDVF9DTEsoZ3B0 OV9pY2ssIGdwaW8yX2lja19wYXJlbnRfbmFtZXMsIGFlczJfaWNrX29wcyk7CiAKLXN0YXRpYyBz dHJ1Y3QgY2xrIGhkcV9mY2s7CitzdGF0aWMgc3RydWN0IGNsa19jb3JlIGhkcV9mY2s7CiAKIHN0 YXRpYyBjb25zdCBjaGFyICpoZHFfZmNrX3BhcmVudF9uYW1lc1tdID0gewogCSJjb3JlXzEybV9m Y2siLApAQCAtMTgzMCw3ICsxODI5LDcgQEAgc3RhdGljIHN0cnVjdCBjbGtfaHdfb21hcCBoZHFf ZmNrX2h3ID0gewogCiBERUZJTkVfU1RSVUNUX0NMSyhoZHFfZmNrLCBoZHFfZmNrX3BhcmVudF9u YW1lcywgYWVzMl9pY2tfb3BzKTsKIAotc3RhdGljIHN0cnVjdCBjbGsgaGRxX2ljazsKK3N0YXRp YyBzdHJ1Y3QgY2xrX2NvcmUgaGRxX2ljazsKIAogc3RhdGljIHN0cnVjdCBjbGtfaHdfb21hcCBo ZHFfaWNrX2h3ID0gewogCS5odyA9IHsKQEAgLTE4NDQsNyArMTg0Myw3IEBAIHN0YXRpYyBzdHJ1 Y3QgY2xrX2h3X29tYXAgaGRxX2lja19odyA9IHsKIAogREVGSU5FX1NUUlVDVF9DTEsoaGRxX2lj aywgYWVzMl9pY2tfcGFyZW50X25hbWVzLCBhZXMyX2lja19vcHMpOwogCi1zdGF0aWMgc3RydWN0 IGNsayBoZWNjX2NrOworc3RhdGljIHN0cnVjdCBjbGtfY29yZSBoZWNjX2NrOwogCiBzdGF0aWMg c3RydWN0IGNsa19od19vbWFwIGhlY2NfY2tfaHcgPSB7CiAJLmh3ID0gewpAQCAtMTg1OCw3ICsx ODU3LDcgQEAgc3RhdGljIHN0cnVjdCBjbGtfaHdfb21hcCBoZWNjX2NrX2h3ID0gewogCiBERUZJ TkVfU1RSVUNUX0NMSyhoZWNjX2NrLCBkcGxsM19ja19wYXJlbnRfbmFtZXMsIGFlczJfaWNrX29w cyk7CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrIGhzb3RndXNiX2Zja19hbTM1eHg7CitzdGF0aWMgc3Ry dWN0IGNsa19jb3JlIGhzb3RndXNiX2Zja19hbTM1eHg7CiAKIHN0YXRpYyBzdHJ1Y3QgY2xrX2h3 X29tYXAgaHNvdGd1c2JfZmNrX2FtMzV4eF9odyA9IHsKIAkuaHcgPSB7CkBAIC0xODcxLDcgKzE4 NzAsNyBAQCBzdGF0aWMgc3RydWN0IGNsa19od19vbWFwIGhzb3RndXNiX2Zja19hbTM1eHhfaHcg PSB7CiAKIERFRklORV9TVFJVQ1RfQ0xLKGhzb3RndXNiX2Zja19hbTM1eHgsIGRwbGwzX2NrX3Bh cmVudF9uYW1lcywgYWVzMl9pY2tfb3BzKTsKIAotc3RhdGljIHN0cnVjdCBjbGsgaHNvdGd1c2Jf aWNrXzM0MzBlczE7CitzdGF0aWMgc3RydWN0IGNsa19jb3JlIGhzb3RndXNiX2lja18zNDMwZXMx OwogCiBzdGF0aWMgc3RydWN0IGNsa19od19vbWFwIGhzb3RndXNiX2lja18zNDMwZXMxX2h3ID0g ewogCS5odyA9IHsKQEAgLTE4ODUsNyArMTg4NCw3IEBAIHN0YXRpYyBzdHJ1Y3QgY2xrX2h3X29t YXAgaHNvdGd1c2JfaWNrXzM0MzBlczFfaHcgPSB7CiAKIERFRklORV9TVFJVQ1RfQ0xLKGhzb3Rn dXNiX2lja18zNDMwZXMxLCBpcHNzX2lja19wYXJlbnRfbmFtZXMsIGFlczJfaWNrX29wcyk7CiAK LXN0YXRpYyBzdHJ1Y3QgY2xrIGhzb3RndXNiX2lja18zNDMwZXMyOworc3RhdGljIHN0cnVjdCBj bGtfY29yZSBoc290Z3VzYl9pY2tfMzQzMGVzMjsKIAogc3RhdGljIHN0cnVjdCBjbGtfaHdfb21h cCBoc290Z3VzYl9pY2tfMzQzMGVzMl9odyA9IHsKIAkuaHcgPSB7CkBAIC0xODk5LDcgKzE4OTgs NyBAQCBzdGF0aWMgc3RydWN0IGNsa19od19vbWFwIGhzb3RndXNiX2lja18zNDMwZXMyX2h3ID0g ewogCiBERUZJTkVfU1RSVUNUX0NMSyhoc290Z3VzYl9pY2tfMzQzMGVzMiwgaXBzc19pY2tfcGFy ZW50X25hbWVzLCBhZXMyX2lja19vcHMpOwogCi1zdGF0aWMgc3RydWN0IGNsayBoc290Z3VzYl9p Y2tfYW0zNXh4Oworc3RhdGljIHN0cnVjdCBjbGtfY29yZSBoc290Z3VzYl9pY2tfYW0zNXh4Owog CiBzdGF0aWMgc3RydWN0IGNsa19od19vbWFwIGhzb3RndXNiX2lja19hbTM1eHhfaHcgPSB7CiAJ Lmh3ID0gewpAQCAtMTkxMyw3ICsxOTEyLDcgQEAgc3RhdGljIHN0cnVjdCBjbGtfaHdfb21hcCBo c290Z3VzYl9pY2tfYW0zNXh4X2h3ID0gewogCiBERUZJTkVfU1RSVUNUX0NMSyhoc290Z3VzYl9p Y2tfYW0zNXh4LCBlbWFjX2lja19wYXJlbnRfbmFtZXMsIGFlczJfaWNrX29wcyk7CiAKLXN0YXRp YyBzdHJ1Y3QgY2xrIGkyYzFfZmNrOworc3RhdGljIHN0cnVjdCBjbGtfY29yZSBpMmMxX2ZjazsK IAogc3RhdGljIHN0cnVjdCBjbGtfaHdfb21hcCBpMmMxX2Zja19odyA9IHsKIAkuaHcgPSB7CkBA IC0xOTI3LDcgKzE5MjYsNyBAQCBzdGF0aWMgc3RydWN0IGNsa19od19vbWFwIGkyYzFfZmNrX2h3 ID0gewogCiBERUZJTkVfU1RSVUNUX0NMSyhpMmMxX2ZjaywgY3NpMl85Nm1fZmNrX3BhcmVudF9u YW1lcywgYWVzMl9pY2tfb3BzKTsKIAotc3RhdGljIHN0cnVjdCBjbGsgaTJjMV9pY2s7CitzdGF0 aWMgc3RydWN0IGNsa19jb3JlIGkyYzFfaWNrOwogCiBzdGF0aWMgc3RydWN0IGNsa19od19vbWFw IGkyYzFfaWNrX2h3ID0gewogCS5odyA9IHsKQEAgLTE5NDEsNyArMTk0MCw3IEBAIHN0YXRpYyBz dHJ1Y3QgY2xrX2h3X29tYXAgaTJjMV9pY2tfaHcgPSB7CiAKIERFRklORV9TVFJVQ1RfQ0xLKGky YzFfaWNrLCBhZXMyX2lja19wYXJlbnRfbmFtZXMsIGFlczJfaWNrX29wcyk7CiAKLXN0YXRpYyBz dHJ1Y3QgY2xrIGkyYzJfZmNrOworc3RhdGljIHN0cnVjdCBjbGtfY29yZSBpMmMyX2ZjazsKIAog c3RhdGljIHN0cnVjdCBjbGtfaHdfb21hcCBpMmMyX2Zja19odyA9IHsKIAkuaHcgPSB7CkBAIC0x OTU1LDcgKzE5NTQsNyBAQCBzdGF0aWMgc3RydWN0IGNsa19od19vbWFwIGkyYzJfZmNrX2h3ID0g ewogCiBERUZJTkVfU1RSVUNUX0NMSyhpMmMyX2ZjaywgY3NpMl85Nm1fZmNrX3BhcmVudF9uYW1l cywgYWVzMl9pY2tfb3BzKTsKIAotc3RhdGljIHN0cnVjdCBjbGsgaTJjMl9pY2s7CitzdGF0aWMg c3RydWN0IGNsa19jb3JlIGkyYzJfaWNrOwogCiBzdGF0aWMgc3RydWN0IGNsa19od19vbWFwIGky YzJfaWNrX2h3ID0gewogCS5odyA9IHsKQEAgLTE5NjksNyArMTk2OCw3IEBAIHN0YXRpYyBzdHJ1 Y3QgY2xrX2h3X29tYXAgaTJjMl9pY2tfaHcgPSB7CiAKIERFRklORV9TVFJVQ1RfQ0xLKGkyYzJf aWNrLCBhZXMyX2lja19wYXJlbnRfbmFtZXMsIGFlczJfaWNrX29wcyk7CiAKLXN0YXRpYyBzdHJ1 Y3QgY2xrIGkyYzNfZmNrOworc3RhdGljIHN0cnVjdCBjbGtfY29yZSBpMmMzX2ZjazsKIAogc3Rh dGljIHN0cnVjdCBjbGtfaHdfb21hcCBpMmMzX2Zja19odyA9IHsKIAkuaHcgPSB7CkBAIC0xOTgz LDcgKzE5ODIsNyBAQCBzdGF0aWMgc3RydWN0IGNsa19od19vbWFwIGkyYzNfZmNrX2h3ID0gewog CiBERUZJTkVfU1RSVUNUX0NMSyhpMmMzX2ZjaywgY3NpMl85Nm1fZmNrX3BhcmVudF9uYW1lcywg YWVzMl9pY2tfb3BzKTsKIAotc3RhdGljIHN0cnVjdCBjbGsgaTJjM19pY2s7CitzdGF0aWMgc3Ry dWN0IGNsa19jb3JlIGkyYzNfaWNrOwogCiBzdGF0aWMgc3RydWN0IGNsa19od19vbWFwIGkyYzNf aWNrX2h3ID0gewogCS5odyA9IHsKQEAgLTE5OTcsNyArMTk5Niw3IEBAIHN0YXRpYyBzdHJ1Y3Qg Y2xrX2h3X29tYXAgaTJjM19pY2tfaHcgPSB7CiAKIERFRklORV9TVFJVQ1RfQ0xLKGkyYzNfaWNr LCBhZXMyX2lja19wYXJlbnRfbmFtZXMsIGFlczJfaWNrX29wcyk7CiAKLXN0YXRpYyBzdHJ1Y3Qg Y2xrIGljcl9pY2s7CitzdGF0aWMgc3RydWN0IGNsa19jb3JlIGljcl9pY2s7CiAKIHN0YXRpYyBz dHJ1Y3QgY2xrX2h3X29tYXAgaWNyX2lja19odyA9IHsKIAkuaHcgPSB7CkBAIC0yMDExLDcgKzIw MTAsNyBAQCBzdGF0aWMgc3RydWN0IGNsa19od19vbWFwIGljcl9pY2tfaHcgPSB7CiAKIERFRklO RV9TVFJVQ1RfQ0xLKGljcl9pY2ssIGFlczJfaWNrX3BhcmVudF9uYW1lcywgYWVzMl9pY2tfb3Bz KTsKIAotc3RhdGljIHN0cnVjdCBjbGsgaXZhMl9jazsKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUg aXZhMl9jazsKIAogc3RhdGljIGNvbnN0IGNoYXIgKml2YTJfY2tfcGFyZW50X25hbWVzW10gPSB7 CiAJImRwbGwyX20yX2NrIiwKQEAgLTIwMjksNyArMjAyOCw3IEBAIHN0YXRpYyBzdHJ1Y3QgY2xr X2h3X29tYXAgaXZhMl9ja19odyA9IHsKIAogREVGSU5FX1NUUlVDVF9DTEsoaXZhMl9jaywgaXZh Ml9ja19wYXJlbnRfbmFtZXMsIGFlczJfaWNrX29wcyk7CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrIG1h ZDJkX2ljazsKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgbWFkMmRfaWNrOwogCiBzdGF0aWMgc3Ry dWN0IGNsa19od19vbWFwIG1hZDJkX2lja19odyA9IHsKIAkuaHcgPSB7CkBAIC0yMDQzLDcgKzIw NDIsNyBAQCBzdGF0aWMgc3RydWN0IGNsa19od19vbWFwIG1hZDJkX2lja19odyA9IHsKIAogREVG SU5FX1NUUlVDVF9DTEsobWFkMmRfaWNrLCBjb3JlX2wzX2lja19wYXJlbnRfbmFtZXMsIGFlczJf aWNrX29wcyk7CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrIG1haWxib3hlc19pY2s7CitzdGF0aWMgc3Ry dWN0IGNsa19jb3JlIG1haWxib3hlc19pY2s7CiAKIHN0YXRpYyBzdHJ1Y3QgY2xrX2h3X29tYXAg bWFpbGJveGVzX2lja19odyA9IHsKIAkuaHcgPSB7CkBAIC0yMDg0LDcgKzIwODMsNyBAQCBERUZJ TkVfQ0xLX09NQVBfTVVYX0dBVEUobWNic3AxX2ZjaywgImNvcmVfbDRfY2xrZG0iLCBtY2JzcF8x NV9jbGtzZWwsCiAJCQkgT01BUDM0MzBfRU5fTUNCU1AxX1NISUZULCAmY2xraHdvcHNfd2FpdCwK IAkJCSBtY2JzcDFfZmNrX3BhcmVudF9uYW1lcywgY2xrb3V0Ml9zcmNfY2tfb3BzKTsKIAotc3Rh dGljIHN0cnVjdCBjbGsgbWNic3AxX2ljazsKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgbWNic3Ax X2ljazsKIAogc3RhdGljIHN0cnVjdCBjbGtfaHdfb21hcCBtY2JzcDFfaWNrX2h3ID0gewogCS5o dyA9IHsKQEAgLTIwOTgsNyArMjA5Nyw3IEBAIHN0YXRpYyBzdHJ1Y3QgY2xrX2h3X29tYXAgbWNi c3AxX2lja19odyA9IHsKIAogREVGSU5FX1NUUlVDVF9DTEsobWNic3AxX2ljaywgYWVzMl9pY2tf cGFyZW50X25hbWVzLCBhZXMyX2lja19vcHMpOwogCi1zdGF0aWMgc3RydWN0IGNsayBwZXJfOTZt X2ZjazsKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgcGVyXzk2bV9mY2s7CiAKIERFRklORV9TVFJV Q1RfQ0xLX0hXX09NQVAocGVyXzk2bV9mY2ssICJwZXJfY2xrZG0iKTsKIERFRklORV9TVFJVQ1Rf Q0xLKHBlcl85Nm1fZmNrLCBjbV85Nm1fZmNrX3BhcmVudF9uYW1lcywgY29yZV9sNF9pY2tfb3Bz KTsKQEAgLTIxMjAsNyArMjExOSw3IEBAIERFRklORV9DTEtfT01BUF9NVVhfR0FURShtY2JzcDJf ZmNrLCAicGVyX2Nsa2RtIiwgbWNic3BfMjM0X2Nsa3NlbCwKIAkJCSBPTUFQMzQzMF9FTl9NQ0JT UDJfU0hJRlQsICZjbGtod29wc193YWl0LAogCQkJIG1jYnNwMl9mY2tfcGFyZW50X25hbWVzLCBj bGtvdXQyX3NyY19ja19vcHMpOwogCi1zdGF0aWMgc3RydWN0IGNsayBtY2JzcDJfaWNrOworc3Rh dGljIHN0cnVjdCBjbGtfY29yZSBtY2JzcDJfaWNrOwogCiBzdGF0aWMgc3RydWN0IGNsa19od19v bWFwIG1jYnNwMl9pY2tfaHcgPSB7CiAJLmh3ID0gewpAQCAtMjE0MSw3ICsyMTQwLDcgQEAgREVG SU5FX0NMS19PTUFQX01VWF9HQVRFKG1jYnNwM19mY2ssICJwZXJfY2xrZG0iLCBtY2JzcF8yMzRf Y2xrc2VsLAogCQkJIE9NQVAzNDMwX0VOX01DQlNQM19TSElGVCwgJmNsa2h3b3BzX3dhaXQsCiAJ CQkgbWNic3AyX2Zja19wYXJlbnRfbmFtZXMsIGNsa291dDJfc3JjX2NrX29wcyk7CiAKLXN0YXRp YyBzdHJ1Y3QgY2xrIG1jYnNwM19pY2s7CitzdGF0aWMgc3RydWN0IGNsa19jb3JlIG1jYnNwM19p Y2s7CiAKIHN0YXRpYyBzdHJ1Y3QgY2xrX2h3X29tYXAgbWNic3AzX2lja19odyA9IHsKIAkuaHcg PSB7CkBAIC0yMTYyLDcgKzIxNjEsNyBAQCBERUZJTkVfQ0xLX09NQVBfTVVYX0dBVEUobWNic3A0 X2ZjaywgInBlcl9jbGtkbSIsIG1jYnNwXzIzNF9jbGtzZWwsCiAJCQkgT01BUDM0MzBfRU5fTUNC U1A0X1NISUZULCAmY2xraHdvcHNfd2FpdCwKIAkJCSBtY2JzcDJfZmNrX3BhcmVudF9uYW1lcywg Y2xrb3V0Ml9zcmNfY2tfb3BzKTsKIAotc3RhdGljIHN0cnVjdCBjbGsgbWNic3A0X2ljazsKK3N0 YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgbWNic3A0X2ljazsKIAogc3RhdGljIHN0cnVjdCBjbGtfaHdf b21hcCBtY2JzcDRfaWNrX2h3ID0gewogCS5odyA9IHsKQEAgLTIxODMsNyArMjE4Miw3IEBAIERF RklORV9DTEtfT01BUF9NVVhfR0FURShtY2JzcDVfZmNrLCAiY29yZV9sNF9jbGtkbSIsIG1jYnNw XzE1X2Nsa3NlbCwKIAkJCSBPTUFQMzQzMF9FTl9NQ0JTUDVfU0hJRlQsICZjbGtod29wc193YWl0 LAogCQkJIG1jYnNwMV9mY2tfcGFyZW50X25hbWVzLCBjbGtvdXQyX3NyY19ja19vcHMpOwogCi1z dGF0aWMgc3RydWN0IGNsayBtY2JzcDVfaWNrOworc3RhdGljIHN0cnVjdCBjbGtfY29yZSBtY2Jz cDVfaWNrOwogCiBzdGF0aWMgc3RydWN0IGNsa19od19vbWFwIG1jYnNwNV9pY2tfaHcgPSB7CiAJ Lmh3ID0gewpAQCAtMjE5Nyw3ICsyMTk2LDcgQEAgc3RhdGljIHN0cnVjdCBjbGtfaHdfb21hcCBt Y2JzcDVfaWNrX2h3ID0gewogCiBERUZJTkVfU1RSVUNUX0NMSyhtY2JzcDVfaWNrLCBhZXMyX2lj a19wYXJlbnRfbmFtZXMsIGFlczJfaWNrX29wcyk7CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrIG1jc3Bp MV9mY2s7CitzdGF0aWMgc3RydWN0IGNsa19jb3JlIG1jc3BpMV9mY2s7CiAKIHN0YXRpYyBzdHJ1 Y3QgY2xrX2h3X29tYXAgbWNzcGkxX2Zja19odyA9IHsKIAkuaHcgPSB7CkBAIC0yMjExLDcgKzIy MTAsNyBAQCBzdGF0aWMgc3RydWN0IGNsa19od19vbWFwIG1jc3BpMV9mY2tfaHcgPSB7CiAKIERF RklORV9TVFJVQ1RfQ0xLKG1jc3BpMV9mY2ssIGZzaG9zdHVzYl9mY2tfcGFyZW50X25hbWVzLCBh ZXMyX2lja19vcHMpOwogCi1zdGF0aWMgc3RydWN0IGNsayBtY3NwaTFfaWNrOworc3RhdGljIHN0 cnVjdCBjbGtfY29yZSBtY3NwaTFfaWNrOwogCiBzdGF0aWMgc3RydWN0IGNsa19od19vbWFwIG1j c3BpMV9pY2tfaHcgPSB7CiAJLmh3ID0gewpAQCAtMjIyNSw3ICsyMjI0LDcgQEAgc3RhdGljIHN0 cnVjdCBjbGtfaHdfb21hcCBtY3NwaTFfaWNrX2h3ID0gewogCiBERUZJTkVfU1RSVUNUX0NMSyht Y3NwaTFfaWNrLCBhZXMyX2lja19wYXJlbnRfbmFtZXMsIGFlczJfaWNrX29wcyk7CiAKLXN0YXRp YyBzdHJ1Y3QgY2xrIG1jc3BpMl9mY2s7CitzdGF0aWMgc3RydWN0IGNsa19jb3JlIG1jc3BpMl9m Y2s7CiAKIHN0YXRpYyBzdHJ1Y3QgY2xrX2h3X29tYXAgbWNzcGkyX2Zja19odyA9IHsKIAkuaHcg PSB7CkBAIC0yMjM5LDcgKzIyMzgsNyBAQCBzdGF0aWMgc3RydWN0IGNsa19od19vbWFwIG1jc3Bp Ml9mY2tfaHcgPSB7CiAKIERFRklORV9TVFJVQ1RfQ0xLKG1jc3BpMl9mY2ssIGZzaG9zdHVzYl9m Y2tfcGFyZW50X25hbWVzLCBhZXMyX2lja19vcHMpOwogCi1zdGF0aWMgc3RydWN0IGNsayBtY3Nw aTJfaWNrOworc3RhdGljIHN0cnVjdCBjbGtfY29yZSBtY3NwaTJfaWNrOwogCiBzdGF0aWMgc3Ry dWN0IGNsa19od19vbWFwIG1jc3BpMl9pY2tfaHcgPSB7CiAJLmh3ID0gewpAQCAtMjI1Myw3ICsy MjUyLDcgQEAgc3RhdGljIHN0cnVjdCBjbGtfaHdfb21hcCBtY3NwaTJfaWNrX2h3ID0gewogCiBE RUZJTkVfU1RSVUNUX0NMSyhtY3NwaTJfaWNrLCBhZXMyX2lja19wYXJlbnRfbmFtZXMsIGFlczJf aWNrX29wcyk7CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrIG1jc3BpM19mY2s7CitzdGF0aWMgc3RydWN0 IGNsa19jb3JlIG1jc3BpM19mY2s7CiAKIHN0YXRpYyBzdHJ1Y3QgY2xrX2h3X29tYXAgbWNzcGkz X2Zja19odyA9IHsKIAkuaHcgPSB7CkBAIC0yMjY3LDcgKzIyNjYsNyBAQCBzdGF0aWMgc3RydWN0 IGNsa19od19vbWFwIG1jc3BpM19mY2tfaHcgPSB7CiAKIERFRklORV9TVFJVQ1RfQ0xLKG1jc3Bp M19mY2ssIGZzaG9zdHVzYl9mY2tfcGFyZW50X25hbWVzLCBhZXMyX2lja19vcHMpOwogCi1zdGF0 aWMgc3RydWN0IGNsayBtY3NwaTNfaWNrOworc3RhdGljIHN0cnVjdCBjbGtfY29yZSBtY3NwaTNf aWNrOwogCiBzdGF0aWMgc3RydWN0IGNsa19od19vbWFwIG1jc3BpM19pY2tfaHcgPSB7CiAJLmh3 ID0gewpAQCAtMjI4MSw3ICsyMjgwLDcgQEAgc3RhdGljIHN0cnVjdCBjbGtfaHdfb21hcCBtY3Nw aTNfaWNrX2h3ID0gewogCiBERUZJTkVfU1RSVUNUX0NMSyhtY3NwaTNfaWNrLCBhZXMyX2lja19w YXJlbnRfbmFtZXMsIGFlczJfaWNrX29wcyk7CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrIG1jc3BpNF9m Y2s7CitzdGF0aWMgc3RydWN0IGNsa19jb3JlIG1jc3BpNF9mY2s7CiAKIHN0YXRpYyBzdHJ1Y3Qg Y2xrX2h3X29tYXAgbWNzcGk0X2Zja19odyA9IHsKIAkuaHcgPSB7CkBAIC0yMjk1LDcgKzIyOTQs NyBAQCBzdGF0aWMgc3RydWN0IGNsa19od19vbWFwIG1jc3BpNF9mY2tfaHcgPSB7CiAKIERFRklO RV9TVFJVQ1RfQ0xLKG1jc3BpNF9mY2ssIGZzaG9zdHVzYl9mY2tfcGFyZW50X25hbWVzLCBhZXMy X2lja19vcHMpOwogCi1zdGF0aWMgc3RydWN0IGNsayBtY3NwaTRfaWNrOworc3RhdGljIHN0cnVj dCBjbGtfY29yZSBtY3NwaTRfaWNrOwogCiBzdGF0aWMgc3RydWN0IGNsa19od19vbWFwIG1jc3Bp NF9pY2tfaHcgPSB7CiAJLmh3ID0gewpAQCAtMjMwOSw3ICsyMzA4LDcgQEAgc3RhdGljIHN0cnVj dCBjbGtfaHdfb21hcCBtY3NwaTRfaWNrX2h3ID0gewogCiBERUZJTkVfU1RSVUNUX0NMSyhtY3Nw aTRfaWNrLCBhZXMyX2lja19wYXJlbnRfbmFtZXMsIGFlczJfaWNrX29wcyk7CiAKLXN0YXRpYyBz dHJ1Y3QgY2xrIG1tY2hzMV9mY2s7CitzdGF0aWMgc3RydWN0IGNsa19jb3JlIG1tY2hzMV9mY2s7 CiAKIHN0YXRpYyBzdHJ1Y3QgY2xrX2h3X29tYXAgbW1jaHMxX2Zja19odyA9IHsKIAkuaHcgPSB7 CkBAIC0yMzIzLDcgKzIzMjIsNyBAQCBzdGF0aWMgc3RydWN0IGNsa19od19vbWFwIG1tY2hzMV9m Y2tfaHcgPSB7CiAKIERFRklORV9TVFJVQ1RfQ0xLKG1tY2hzMV9mY2ssIGNzaTJfOTZtX2Zja19w YXJlbnRfbmFtZXMsIGFlczJfaWNrX29wcyk7CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrIG1tY2hzMV9p Y2s7CitzdGF0aWMgc3RydWN0IGNsa19jb3JlIG1tY2hzMV9pY2s7CiAKIHN0YXRpYyBzdHJ1Y3Qg Y2xrX2h3X29tYXAgbW1jaHMxX2lja19odyA9IHsKIAkuaHcgPSB7CkBAIC0yMzM3LDcgKzIzMzYs NyBAQCBzdGF0aWMgc3RydWN0IGNsa19od19vbWFwIG1tY2hzMV9pY2tfaHcgPSB7CiAKIERFRklO RV9TVFJVQ1RfQ0xLKG1tY2hzMV9pY2ssIGFlczJfaWNrX3BhcmVudF9uYW1lcywgYWVzMl9pY2tf b3BzKTsKIAotc3RhdGljIHN0cnVjdCBjbGsgbW1jaHMyX2ZjazsKK3N0YXRpYyBzdHJ1Y3QgY2xr X2NvcmUgbW1jaHMyX2ZjazsKIAogc3RhdGljIHN0cnVjdCBjbGtfaHdfb21hcCBtbWNoczJfZmNr X2h3ID0gewogCS5odyA9IHsKQEAgLTIzNTEsNyArMjM1MCw3IEBAIHN0YXRpYyBzdHJ1Y3QgY2xr X2h3X29tYXAgbW1jaHMyX2Zja19odyA9IHsKIAogREVGSU5FX1NUUlVDVF9DTEsobW1jaHMyX2Zj aywgY3NpMl85Nm1fZmNrX3BhcmVudF9uYW1lcywgYWVzMl9pY2tfb3BzKTsKIAotc3RhdGljIHN0 cnVjdCBjbGsgbW1jaHMyX2ljazsKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgbW1jaHMyX2ljazsK IAogc3RhdGljIHN0cnVjdCBjbGtfaHdfb21hcCBtbWNoczJfaWNrX2h3ID0gewogCS5odyA9IHsK QEAgLTIzNjUsNyArMjM2NCw3IEBAIHN0YXRpYyBzdHJ1Y3QgY2xrX2h3X29tYXAgbW1jaHMyX2lj a19odyA9IHsKIAogREVGSU5FX1NUUlVDVF9DTEsobW1jaHMyX2ljaywgYWVzMl9pY2tfcGFyZW50 X25hbWVzLCBhZXMyX2lja19vcHMpOwogCi1zdGF0aWMgc3RydWN0IGNsayBtbWNoczNfZmNrOwor c3RhdGljIHN0cnVjdCBjbGtfY29yZSBtbWNoczNfZmNrOwogCiBzdGF0aWMgc3RydWN0IGNsa19o d19vbWFwIG1tY2hzM19mY2tfaHcgPSB7CiAJLmh3ID0gewpAQCAtMjM3OSw3ICsyMzc4LDcgQEAg c3RhdGljIHN0cnVjdCBjbGtfaHdfb21hcCBtbWNoczNfZmNrX2h3ID0gewogCiBERUZJTkVfU1RS VUNUX0NMSyhtbWNoczNfZmNrLCBjc2kyXzk2bV9mY2tfcGFyZW50X25hbWVzLCBhZXMyX2lja19v cHMpOwogCi1zdGF0aWMgc3RydWN0IGNsayBtbWNoczNfaWNrOworc3RhdGljIHN0cnVjdCBjbGtf Y29yZSBtbWNoczNfaWNrOwogCiBzdGF0aWMgc3RydWN0IGNsa19od19vbWFwIG1tY2hzM19pY2tf aHcgPSB7CiAJLmh3ID0gewpAQCAtMjM5Myw3ICsyMzkyLDcgQEAgc3RhdGljIHN0cnVjdCBjbGtf aHdfb21hcCBtbWNoczNfaWNrX2h3ID0gewogCiBERUZJTkVfU1RSVUNUX0NMSyhtbWNoczNfaWNr LCBhZXMyX2lja19wYXJlbnRfbmFtZXMsIGFlczJfaWNrX29wcyk7CiAKLXN0YXRpYyBzdHJ1Y3Qg Y2xrIG1vZGVtX2ZjazsKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgbW9kZW1fZmNrOwogCiBzdGF0 aWMgc3RydWN0IGNsa19od19vbWFwIG1vZGVtX2Zja19odyA9IHsKIAkuaHcgPSB7CkBAIC0yNDA3 LDcgKzI0MDYsNyBAQCBzdGF0aWMgc3RydWN0IGNsa19od19vbWFwIG1vZGVtX2Zja19odyA9IHsK IAogREVGSU5FX1NUUlVDVF9DTEsobW9kZW1fZmNrLCBkcGxsM19ja19wYXJlbnRfbmFtZXMsIGFl czJfaWNrX29wcyk7CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrIG1zcHJvX2ZjazsKK3N0YXRpYyBzdHJ1 Y3QgY2xrX2NvcmUgbXNwcm9fZmNrOwogCiBzdGF0aWMgc3RydWN0IGNsa19od19vbWFwIG1zcHJv X2Zja19odyA9IHsKIAkuaHcgPSB7CkBAIC0yNDIxLDcgKzI0MjAsNyBAQCBzdGF0aWMgc3RydWN0 IGNsa19od19vbWFwIG1zcHJvX2Zja19odyA9IHsKIAogREVGSU5FX1NUUlVDVF9DTEsobXNwcm9f ZmNrLCBjc2kyXzk2bV9mY2tfcGFyZW50X25hbWVzLCBhZXMyX2lja19vcHMpOwogCi1zdGF0aWMg c3RydWN0IGNsayBtc3Byb19pY2s7CitzdGF0aWMgc3RydWN0IGNsa19jb3JlIG1zcHJvX2ljazsK IAogc3RhdGljIHN0cnVjdCBjbGtfaHdfb21hcCBtc3Byb19pY2tfaHcgPSB7CiAJLmh3ID0gewpA QCAtMjQzNSwxMyArMjQzNCwxMyBAQCBzdGF0aWMgc3RydWN0IGNsa19od19vbWFwIG1zcHJvX2lj a19odyA9IHsKIAogREVGSU5FX1NUUlVDVF9DTEsobXNwcm9faWNrLCBhZXMyX2lja19wYXJlbnRf bmFtZXMsIGFlczJfaWNrX29wcyk7CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrIG9tYXBfMTkybV9hbHdv bl9mY2s7CitzdGF0aWMgc3RydWN0IGNsa19jb3JlIG9tYXBfMTkybV9hbHdvbl9mY2s7CiAKIERF RklORV9TVFJVQ1RfQ0xLX0hXX09NQVAob21hcF8xOTJtX2Fsd29uX2ZjaywgTlVMTCk7CiBERUZJ TkVfU1RSVUNUX0NMSyhvbWFwXzE5Mm1fYWx3b25fZmNrLCBvbWFwXzk2bV9hbHdvbl9mY2tfcGFy ZW50X25hbWVzLAogCQkgIGNvcmVfY2tfb3BzKTsKIAotc3RhdGljIHN0cnVjdCBjbGsgb21hcF8z MmtzeW5jX2ljazsKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgb21hcF8zMmtzeW5jX2ljazsKIAog c3RhdGljIHN0cnVjdCBjbGtfaHdfb21hcCBvbWFwXzMya3N5bmNfaWNrX2h3ID0gewogCS5odyA9 IHsKQEAgLTI0NjYsNyArMjQ2NSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrc2VsIG9tYXBf OTZtX2Fsd29uX2Zja19jbGtzZWxbXSA9IHsKIAl7IC5wYXJlbnQgPSBOVUxMIH0KIH07CiAKLXN0 YXRpYyBzdHJ1Y3QgY2xrIG9tYXBfOTZtX2Fsd29uX2Zja18zNjMwOworc3RhdGljIHN0cnVjdCBj bGtfY29yZSBvbWFwXzk2bV9hbHdvbl9mY2tfMzYzMDsKIAogc3RhdGljIGNvbnN0IGNoYXIgKm9t YXBfOTZtX2Fsd29uX2Zja18zNjMwX3BhcmVudF9uYW1lc1tdID0gewogCSJvbWFwXzE5Mm1fYWx3 b25fZmNrIiwKQEAgLTI0ODcsNyArMjQ4Niw3IEBAIHN0YXRpYyBzdHJ1Y3QgY2xrX2h3X29tYXAg b21hcF85Nm1fYWx3b25fZmNrXzM2MzBfaHcgPSB7CiAJLmNsa3NlbF9tYXNrCT0gT01BUDM2MzBf Q0xLU0VMXzk2TV9NQVNLLAogfTsKIAotc3RhdGljIHN0cnVjdCBjbGsgb21hcF85Nm1fYWx3b25f ZmNrXzM2MzAgPSB7CitzdGF0aWMgc3RydWN0IGNsa19jb3JlIG9tYXBfOTZtX2Fsd29uX2Zja18z NjMwID0gewogCS5uYW1lCT0gIm9tYXBfOTZtX2Fsd29uX2ZjayIsCiAJLmh3CT0gJm9tYXBfOTZt X2Fsd29uX2Zja18zNjMwX2h3Lmh3LAogCS5wYXJlbnRfbmFtZXMJPSBvbWFwXzk2bV9hbHdvbl9m Y2tfMzYzMF9wYXJlbnRfbmFtZXMsCkBAIC0yNDk1LDcgKzI0OTQsNyBAQCBzdGF0aWMgc3RydWN0 IGNsayBvbWFwXzk2bV9hbHdvbl9mY2tfMzYzMCA9IHsKIAkub3BzCT0gJm9tYXBfOTZtX2Fsd29u X2Zja18zNjMwX29wcywKIH07CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrIG9tYXBjdHJsX2ljazsKK3N0 YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgb21hcGN0cmxfaWNrOwogCiBzdGF0aWMgc3RydWN0IGNsa19o d19vbWFwIG9tYXBjdHJsX2lja19odyA9IHsKIAkuaHcgPSB7CkBAIC0yNTIwLDE3ICsyNTE5LDE3 IEBAIERFRklORV9DTEtfRElWSURFUihwY2xreDJfZmNrLCAiZW11X3NyY19jayIsICZlbXVfc3Jj X2NrLCAweDAsCiAJCSAgIE9NQVAzNDMwX0NMS1NFTF9QQ0xLWDJfU0hJRlQsIE9NQVAzNDMwX0NM S1NFTF9QQ0xLWDJfV0lEVEgsCiAJCSAgIENMS19ESVZJREVSX09ORV9CQVNFRCwgTlVMTCk7CiAK LXN0YXRpYyBzdHJ1Y3QgY2xrIHBlcl80OG1fZmNrOworc3RhdGljIHN0cnVjdCBjbGtfY29yZSBw ZXJfNDhtX2ZjazsKIAogREVGSU5FX1NUUlVDVF9DTEtfSFdfT01BUChwZXJfNDhtX2ZjaywgInBl cl9jbGtkbSIpOwogREVGSU5FX1NUUlVDVF9DTEsocGVyXzQ4bV9mY2ssIGNvcmVfNDhtX2Zja19w YXJlbnRfbmFtZXMsIGNvcmVfbDRfaWNrX29wcyk7CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrIHNlY3Vy aXR5X2wzX2ljazsKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgc2VjdXJpdHlfbDNfaWNrOwogCiBE RUZJTkVfU1RSVUNUX0NMS19IV19PTUFQKHNlY3VyaXR5X2wzX2ljaywgTlVMTCk7CiBERUZJTkVf U1RSVUNUX0NMSyhzZWN1cml0eV9sM19pY2ssIGNvcmVfbDNfaWNrX3BhcmVudF9uYW1lcywgY29y ZV9ja19vcHMpOwogCi1zdGF0aWMgc3RydWN0IGNsayBwa2FfaWNrOworc3RhdGljIHN0cnVjdCBj bGtfY29yZSBwa2FfaWNrOwogCiBzdGF0aWMgY29uc3QgY2hhciAqcGthX2lja19wYXJlbnRfbmFt ZXNbXSA9IHsKIAkic2VjdXJpdHlfbDNfaWNrIiwKQEAgLTI1NTIsNyArMjU1MSw3IEBAIERFRklO RV9DTEtfRElWSURFUihybV9pY2ssICJsNF9pY2siLCAmbDRfaWNrLCAweDAsCiAJCSAgIE9NQVAz NDMwX0NMS1NFTF9STV9TSElGVCwgT01BUDM0MzBfQ0xLU0VMX1JNX1dJRFRILAogCQkgICBDTEtf RElWSURFUl9PTkVfQkFTRUQsIE5VTEwpOwogCi1zdGF0aWMgc3RydWN0IGNsayBybmdfaWNrOwor c3RhdGljIHN0cnVjdCBjbGtfY29yZSBybmdfaWNrOwogCiBzdGF0aWMgc3RydWN0IGNsa19od19v bWFwIHJuZ19pY2tfaHcgPSB7CiAJLmh3ID0gewpAQCAtMjU2NSw3ICsyNTY0LDcgQEAgc3RhdGlj IHN0cnVjdCBjbGtfaHdfb21hcCBybmdfaWNrX2h3ID0gewogCiBERUZJTkVfU1RSVUNUX0NMSyhy bmdfaWNrLCBhZXMxX2lja19wYXJlbnRfbmFtZXMsIGFlczFfaWNrX29wcyk7CiAKLXN0YXRpYyBz dHJ1Y3QgY2xrIHNhZDJkX2ljazsKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgc2FkMmRfaWNrOwog CiBzdGF0aWMgc3RydWN0IGNsa19od19vbWFwIHNhZDJkX2lja19odyA9IHsKIAkuaHcgPSB7CkBA IC0yNTc5LDcgKzI1NzgsNyBAQCBzdGF0aWMgc3RydWN0IGNsa19od19vbWFwIHNhZDJkX2lja19o dyA9IHsKIAogREVGSU5FX1NUUlVDVF9DTEsoc2FkMmRfaWNrLCBjb3JlX2wzX2lja19wYXJlbnRf bmFtZXMsIGFlczJfaWNrX29wcyk7CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrIHNkcmNfaWNrOworc3Rh dGljIHN0cnVjdCBjbGtfY29yZSBzZHJjX2ljazsKIAogc3RhdGljIHN0cnVjdCBjbGtfaHdfb21h cCBzZHJjX2lja19odyA9IHsKIAkuaHcgPSB7CkBAIC0yNjMwLDcgKzI2MjksNyBAQCBzdGF0aWMg Y29uc3QgY2hhciAqc2d4X2Zja19wYXJlbnRfbmFtZXNbXSA9IHsKIAkiY29yZV9jayIsICJjbV85 Nm1fZmNrIiwgIm9tYXBfMTkybV9hbHdvbl9mY2siLCAiY29yZXgyX2ZjayIsCiB9OwogCi1zdGF0 aWMgc3RydWN0IGNsayBzZ3hfZmNrOworc3RhdGljIHN0cnVjdCBjbGtfY29yZSBzZ3hfZmNrOwog CiBzdGF0aWMgY29uc3Qgc3RydWN0IGNsa19vcHMgc2d4X2Zja19vcHMgPSB7CiAJLmluaXQJCT0g Jm9tYXAyX2luaXRfY2xrX2Nsa2RtLApAQCAtMjY1MSw3ICsyNjUwLDcgQEAgREVGSU5FX0NMS19P TUFQX01VWF9HQVRFKHNneF9mY2ssICJzZ3hfY2xrZG0iLCBzZ3hfY2xrc2VsLAogCQkJIE9NQVAz NDMwRVMyX0NNX0ZDTEtFTl9TR1hfRU5fU0dYX1NISUZULAogCQkJICZjbGtod29wc193YWl0LCBz Z3hfZmNrX3BhcmVudF9uYW1lcywgc2d4X2Zja19vcHMpOwogCi1zdGF0aWMgc3RydWN0IGNsayBz Z3hfaWNrOworc3RhdGljIHN0cnVjdCBjbGtfY29yZSBzZ3hfaWNrOwogCiBzdGF0aWMgc3RydWN0 IGNsa19od19vbWFwIHNneF9pY2tfaHcgPSB7CiAJLmh3ID0gewpAQCAtMjY2NSw3ICsyNjY0LDcg QEAgc3RhdGljIHN0cnVjdCBjbGtfaHdfb21hcCBzZ3hfaWNrX2h3ID0gewogCiBERUZJTkVfU1RS VUNUX0NMSyhzZ3hfaWNrLCBjb3JlX2wzX2lja19wYXJlbnRfbmFtZXMsIGFlczJfaWNrX29wcyk7 CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrIHNoYTExX2ljazsKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUg c2hhMTFfaWNrOwogCiBzdGF0aWMgc3RydWN0IGNsa19od19vbWFwIHNoYTExX2lja19odyA9IHsK IAkuaHcgPSB7CkBAIC0yNjc4LDcgKzI2NzcsNyBAQCBzdGF0aWMgc3RydWN0IGNsa19od19vbWFw IHNoYTExX2lja19odyA9IHsKIAogREVGSU5FX1NUUlVDVF9DTEsoc2hhMTFfaWNrLCBhZXMxX2lj a19wYXJlbnRfbmFtZXMsIGFlczFfaWNrX29wcyk7CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrIHNoYTEy X2ljazsKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgc2hhMTJfaWNrOwogCiBzdGF0aWMgc3RydWN0 IGNsa19od19vbWFwIHNoYTEyX2lja19odyA9IHsKIAkuaHcgPSB7CkBAIC0yNjkyLDcgKzI2OTEs NyBAQCBzdGF0aWMgc3RydWN0IGNsa19od19vbWFwIHNoYTEyX2lja19odyA9IHsKIAogREVGSU5F X1NUUlVDVF9DTEsoc2hhMTJfaWNrLCBhZXMyX2lja19wYXJlbnRfbmFtZXMsIGFlczJfaWNrX29w cyk7CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrIHNyMV9mY2s7CitzdGF0aWMgc3RydWN0IGNsa19jb3Jl IHNyMV9mY2s7CiAKIHN0YXRpYyBzdHJ1Y3QgY2xrX2h3X29tYXAgc3IxX2Zja19odyA9IHsKIAku aHcgPSB7CkBAIC0yNzA2LDcgKzI3MDUsNyBAQCBzdGF0aWMgc3RydWN0IGNsa19od19vbWFwIHNy MV9mY2tfaHcgPSB7CiAKIERFRklORV9TVFJVQ1RfQ0xLKHNyMV9mY2ssIGRwbGwzX2NrX3BhcmVu dF9uYW1lcywgYWVzMl9pY2tfb3BzKTsKIAotc3RhdGljIHN0cnVjdCBjbGsgc3IyX2ZjazsKK3N0 YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgc3IyX2ZjazsKIAogc3RhdGljIHN0cnVjdCBjbGtfaHdfb21h cCBzcjJfZmNrX2h3ID0gewogCS5odyA9IHsKQEAgLTI3MjAsMTcgKzI3MTksMTcgQEAgc3RhdGlj IHN0cnVjdCBjbGtfaHdfb21hcCBzcjJfZmNrX2h3ID0gewogCiBERUZJTkVfU1RSVUNUX0NMSyhz cjJfZmNrLCBkcGxsM19ja19wYXJlbnRfbmFtZXMsIGFlczJfaWNrX29wcyk7CiAKLXN0YXRpYyBz dHJ1Y3QgY2xrIHNyX2w0X2ljazsKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgc3JfbDRfaWNrOwog CiBERUZJTkVfU1RSVUNUX0NMS19IV19PTUFQKHNyX2w0X2ljaywgImNvcmVfbDRfY2xrZG0iKTsK IERFRklORV9TVFJVQ1RfQ0xLKHNyX2w0X2ljaywgc2VjdXJpdHlfbDRfaWNrMl9wYXJlbnRfbmFt ZXMsIGNvcmVfbDRfaWNrX29wcyk7CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrIHNzaV9sNF9pY2s7Citz dGF0aWMgc3RydWN0IGNsa19jb3JlIHNzaV9sNF9pY2s7CiAKIERFRklORV9TVFJVQ1RfQ0xLX0hX X09NQVAoc3NpX2w0X2ljaywgImNvcmVfbDRfY2xrZG0iKTsKIERFRklORV9TVFJVQ1RfQ0xLKHNz aV9sNF9pY2ssIHNlY3VyaXR5X2w0X2ljazJfcGFyZW50X25hbWVzLCBjb3JlX2w0X2lja19vcHMp OwogCi1zdGF0aWMgc3RydWN0IGNsayBzc2lfaWNrXzM0MzBlczE7CitzdGF0aWMgc3RydWN0IGNs a19jb3JlIHNzaV9pY2tfMzQzMGVzMTsKIAogc3RhdGljIGNvbnN0IGNoYXIgKnNzaV9pY2tfMzQz MGVzMV9wYXJlbnRfbmFtZXNbXSA9IHsKIAkic3NpX2w0X2ljayIsCkBAIC0yNzQ4LDcgKzI3NDcs NyBAQCBzdGF0aWMgc3RydWN0IGNsa19od19vbWFwIHNzaV9pY2tfMzQzMGVzMV9odyA9IHsKIAog REVGSU5FX1NUUlVDVF9DTEsoc3NpX2lja18zNDMwZXMxLCBzc2lfaWNrXzM0MzBlczFfcGFyZW50 X25hbWVzLCBhZXMyX2lja19vcHMpOwogCi1zdGF0aWMgc3RydWN0IGNsayBzc2lfaWNrXzM0MzBl czI7CitzdGF0aWMgc3RydWN0IGNsa19jb3JlIHNzaV9pY2tfMzQzMGVzMjsKIAogc3RhdGljIHN0 cnVjdCBjbGtfaHdfb21hcCBzc2lfaWNrXzM0MzBlczJfaHcgPSB7CiAJLmh3ID0gewpAQCAtMjgx Myw3ICsyODEyLDcgQEAgREVGSU5FX0NMS19GSVhFRF9GQUNUT1Ioc3NpX3NzdF9mY2tfMzQzMGVz MSwgInNzaV9zc3JfZmNrXzM0MzBlczEiLAogREVGSU5FX0NMS19GSVhFRF9GQUNUT1Ioc3NpX3Nz dF9mY2tfMzQzMGVzMiwgInNzaV9zc3JfZmNrXzM0MzBlczIiLAogCQkJJnNzaV9zc3JfZmNrXzM0 MzBlczIsIDB4MCwgMSwgMik7CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrIHN5c19jbGtvdXQxOworc3Rh dGljIHN0cnVjdCBjbGtfY29yZSBzeXNfY2xrb3V0MTsKIAogc3RhdGljIGNvbnN0IGNoYXIgKnN5 c19jbGtvdXQxX3BhcmVudF9uYW1lc1tdID0gewogCSJvc2Nfc3lzX2NrIiwKQEAgLTI4NDMsNyAr Mjg0Miw3IEBAIERFRklORV9DTEtfRElWSURFUih0cmFjZWNsa19mY2ssICJ0cmFjZWNsa19zcmNf ZmNrIiwgJnRyYWNlY2xrX3NyY19mY2ssIDB4MCwKIAkJICAgT01BUDM0MzBfQ0xLU0VMX1RSQUNF Q0xLX1NISUZULAogCQkgICBPTUFQMzQzMF9DTEtTRUxfVFJBQ0VDTEtfV0lEVEgsIENMS19ESVZJ REVSX09ORV9CQVNFRCwgTlVMTCk7CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrIHRzX2ZjazsKK3N0YXRp YyBzdHJ1Y3QgY2xrX2NvcmUgdHNfZmNrOwogCiBzdGF0aWMgc3RydWN0IGNsa19od19vbWFwIHRz X2Zja19odyA9IHsKIAkuaHcgPSB7CkBAIC0yODU2LDcgKzI4NTUsNyBAQCBzdGF0aWMgc3RydWN0 IGNsa19od19vbWFwIHRzX2Zja19odyA9IHsKIAogREVGSU5FX1NUUlVDVF9DTEsodHNfZmNrLCB3 a3VwXzMya19mY2tfcGFyZW50X25hbWVzLCBhZXMyX2lja19vcHMpOwogCi1zdGF0aWMgc3RydWN0 IGNsayB1YXJ0MV9mY2s7CitzdGF0aWMgc3RydWN0IGNsa19jb3JlIHVhcnQxX2ZjazsKIAogc3Rh dGljIHN0cnVjdCBjbGtfaHdfb21hcCB1YXJ0MV9mY2tfaHcgPSB7CiAJLmh3ID0gewpAQCAtMjg3 MCw3ICsyODY5LDcgQEAgc3RhdGljIHN0cnVjdCBjbGtfaHdfb21hcCB1YXJ0MV9mY2tfaHcgPSB7 CiAKIERFRklORV9TVFJVQ1RfQ0xLKHVhcnQxX2ZjaywgZnNob3N0dXNiX2Zja19wYXJlbnRfbmFt ZXMsIGFlczJfaWNrX29wcyk7CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrIHVhcnQxX2ljazsKK3N0YXRp YyBzdHJ1Y3QgY2xrX2NvcmUgdWFydDFfaWNrOwogCiBzdGF0aWMgc3RydWN0IGNsa19od19vbWFw IHVhcnQxX2lja19odyA9IHsKIAkuaHcgPSB7CkBAIC0yODg0LDcgKzI4ODMsNyBAQCBzdGF0aWMg c3RydWN0IGNsa19od19vbWFwIHVhcnQxX2lja19odyA9IHsKIAogREVGSU5FX1NUUlVDVF9DTEso dWFydDFfaWNrLCBhZXMyX2lja19wYXJlbnRfbmFtZXMsIGFlczJfaWNrX29wcyk7CiAKLXN0YXRp YyBzdHJ1Y3QgY2xrIHVhcnQyX2ZjazsKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgdWFydDJfZmNr OwogCiBzdGF0aWMgc3RydWN0IGNsa19od19vbWFwIHVhcnQyX2Zja19odyA9IHsKIAkuaHcgPSB7 CkBAIC0yODk4LDcgKzI4OTcsNyBAQCBzdGF0aWMgc3RydWN0IGNsa19od19vbWFwIHVhcnQyX2Zj a19odyA9IHsKIAogREVGSU5FX1NUUlVDVF9DTEsodWFydDJfZmNrLCBmc2hvc3R1c2JfZmNrX3Bh cmVudF9uYW1lcywgYWVzMl9pY2tfb3BzKTsKIAotc3RhdGljIHN0cnVjdCBjbGsgdWFydDJfaWNr Oworc3RhdGljIHN0cnVjdCBjbGtfY29yZSB1YXJ0Ml9pY2s7CiAKIHN0YXRpYyBzdHJ1Y3QgY2xr X2h3X29tYXAgdWFydDJfaWNrX2h3ID0gewogCS5odyA9IHsKQEAgLTI5MTIsNyArMjkxMSw3IEBA IHN0YXRpYyBzdHJ1Y3QgY2xrX2h3X29tYXAgdWFydDJfaWNrX2h3ID0gewogCiBERUZJTkVfU1RS VUNUX0NMSyh1YXJ0Ml9pY2ssIGFlczJfaWNrX3BhcmVudF9uYW1lcywgYWVzMl9pY2tfb3BzKTsK IAotc3RhdGljIHN0cnVjdCBjbGsgdWFydDNfZmNrOworc3RhdGljIHN0cnVjdCBjbGtfY29yZSB1 YXJ0M19mY2s7CiAKIHN0YXRpYyBjb25zdCBjaGFyICp1YXJ0M19mY2tfcGFyZW50X25hbWVzW10g PSB7CiAJInBlcl80OG1fZmNrIiwKQEAgLTI5MzAsNyArMjkyOSw3IEBAIHN0YXRpYyBzdHJ1Y3Qg Y2xrX2h3X29tYXAgdWFydDNfZmNrX2h3ID0gewogCiBERUZJTkVfU1RSVUNUX0NMSyh1YXJ0M19m Y2ssIHVhcnQzX2Zja19wYXJlbnRfbmFtZXMsIGFlczJfaWNrX29wcyk7CiAKLXN0YXRpYyBzdHJ1 Y3QgY2xrIHVhcnQzX2ljazsKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgdWFydDNfaWNrOwogCiBz dGF0aWMgc3RydWN0IGNsa19od19vbWFwIHVhcnQzX2lja19odyA9IHsKIAkuaHcgPSB7CkBAIC0y OTQ0LDcgKzI5NDMsNyBAQCBzdGF0aWMgc3RydWN0IGNsa19od19vbWFwIHVhcnQzX2lja19odyA9 IHsKIAogREVGSU5FX1NUUlVDVF9DTEsodWFydDNfaWNrLCBncGlvMl9pY2tfcGFyZW50X25hbWVz LCBhZXMyX2lja19vcHMpOwogCi1zdGF0aWMgc3RydWN0IGNsayB1YXJ0NF9mY2s7CitzdGF0aWMg c3RydWN0IGNsa19jb3JlIHVhcnQ0X2ZjazsKIAogc3RhdGljIHN0cnVjdCBjbGtfaHdfb21hcCB1 YXJ0NF9mY2tfaHcgPSB7CiAJLmh3ID0gewpAQCAtMjk1OCw3ICsyOTU3LDcgQEAgc3RhdGljIHN0 cnVjdCBjbGtfaHdfb21hcCB1YXJ0NF9mY2tfaHcgPSB7CiAKIERFRklORV9TVFJVQ1RfQ0xLKHVh cnQ0X2ZjaywgdWFydDNfZmNrX3BhcmVudF9uYW1lcywgYWVzMl9pY2tfb3BzKTsKIAotc3RhdGlj IHN0cnVjdCBjbGsgdWFydDRfZmNrX2FtMzV4eDsKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgdWFy dDRfZmNrX2FtMzV4eDsKIAogc3RhdGljIHN0cnVjdCBjbGtfaHdfb21hcCB1YXJ0NF9mY2tfYW0z NXh4X2h3ID0gewogCS5odyA9IHsKQEAgLTI5NzIsNyArMjk3MSw3IEBAIHN0YXRpYyBzdHJ1Y3Qg Y2xrX2h3X29tYXAgdWFydDRfZmNrX2FtMzV4eF9odyA9IHsKIAogREVGSU5FX1NUUlVDVF9DTEso dWFydDRfZmNrX2FtMzV4eCwgZnNob3N0dXNiX2Zja19wYXJlbnRfbmFtZXMsIGFlczJfaWNrX29w cyk7CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrIHVhcnQ0X2ljazsKK3N0YXRpYyBzdHJ1Y3QgY2xrX2Nv cmUgdWFydDRfaWNrOwogCiBzdGF0aWMgc3RydWN0IGNsa19od19vbWFwIHVhcnQ0X2lja19odyA9 IHsKIAkuaHcgPSB7CkBAIC0yOTg2LDcgKzI5ODUsNyBAQCBzdGF0aWMgc3RydWN0IGNsa19od19v bWFwIHVhcnQ0X2lja19odyA9IHsKIAogREVGSU5FX1NUUlVDVF9DTEsodWFydDRfaWNrLCBncGlv Ml9pY2tfcGFyZW50X25hbWVzLCBhZXMyX2lja19vcHMpOwogCi1zdGF0aWMgc3RydWN0IGNsayB1 YXJ0NF9pY2tfYW0zNXh4Oworc3RhdGljIHN0cnVjdCBjbGtfY29yZSB1YXJ0NF9pY2tfYW0zNXh4 OwogCiBzdGF0aWMgc3RydWN0IGNsa19od19vbWFwIHVhcnQ0X2lja19hbTM1eHhfaHcgPSB7CiAJ Lmh3ID0gewpAQCAtMzAyMyw3ICszMDIyLDcgQEAgREVGSU5FX0NMS19PTUFQX01VWF9HQVRFKHVz Yl9sNF9pY2ssICJjb3JlX2w0X2Nsa2RtIiwgdXNiX2w0X2Nsa3NlbCwKIAkJCSAmY2xraHdvcHNf aWNsa193YWl0LCB1c2JfbDRfaWNrX3BhcmVudF9uYW1lcywKIAkJCSBzc2lfc3NyX2Zja18zNDMw ZXMxX29wcyk7CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrIHVzYmhvc3RfMTIwbV9mY2s7CitzdGF0aWMg c3RydWN0IGNsa19jb3JlIHVzYmhvc3RfMTIwbV9mY2s7CiAKIHN0YXRpYyBjb25zdCBjaGFyICp1 c2Job3N0XzEyMG1fZmNrX3BhcmVudF9uYW1lc1tdID0gewogCSJkcGxsNV9tMl9jayIsCkBAIC0z MDQxLDcgKzMwNDAsNyBAQCBzdGF0aWMgc3RydWN0IGNsa19od19vbWFwIHVzYmhvc3RfMTIwbV9m Y2tfaHcgPSB7CiBERUZJTkVfU1RSVUNUX0NMSyh1c2Job3N0XzEyMG1fZmNrLCB1c2Job3N0XzEy MG1fZmNrX3BhcmVudF9uYW1lcywKIAkJICBhZXMyX2lja19vcHMpOwogCi1zdGF0aWMgc3RydWN0 IGNsayB1c2Job3N0XzQ4bV9mY2s7CitzdGF0aWMgc3RydWN0IGNsa19jb3JlIHVzYmhvc3RfNDht X2ZjazsKIAogc3RhdGljIHN0cnVjdCBjbGtfaHdfb21hcCB1c2Job3N0XzQ4bV9mY2tfaHcgPSB7 CiAJLmh3ID0gewpAQCAtMzA1NSw3ICszMDU0LDcgQEAgc3RhdGljIHN0cnVjdCBjbGtfaHdfb21h cCB1c2Job3N0XzQ4bV9mY2tfaHcgPSB7CiAKIERFRklORV9TVFJVQ1RfQ0xLKHVzYmhvc3RfNDht X2ZjaywgY29yZV80OG1fZmNrX3BhcmVudF9uYW1lcywgYWVzMl9pY2tfb3BzKTsKIAotc3RhdGlj IHN0cnVjdCBjbGsgdXNiaG9zdF9pY2s7CitzdGF0aWMgc3RydWN0IGNsa19jb3JlIHVzYmhvc3Rf aWNrOwogCiBzdGF0aWMgc3RydWN0IGNsa19od19vbWFwIHVzYmhvc3RfaWNrX2h3ID0gewogCS5o dyA9IHsKQEAgLTMwNjksNyArMzA2OCw3IEBAIHN0YXRpYyBzdHJ1Y3QgY2xrX2h3X29tYXAgdXNi aG9zdF9pY2tfaHcgPSB7CiAKIERFRklORV9TVFJVQ1RfQ0xLKHVzYmhvc3RfaWNrLCBzZWN1cml0 eV9sNF9pY2syX3BhcmVudF9uYW1lcywgYWVzMl9pY2tfb3BzKTsKIAotc3RhdGljIHN0cnVjdCBj bGsgdXNidGxsX2ZjazsKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgdXNidGxsX2ZjazsKIAogc3Rh dGljIHN0cnVjdCBjbGtfaHdfb21hcCB1c2J0bGxfZmNrX2h3ID0gewogCS5odyA9IHsKQEAgLTMw ODMsNyArMzA4Miw3IEBAIHN0YXRpYyBzdHJ1Y3QgY2xrX2h3X29tYXAgdXNidGxsX2Zja19odyA9 IHsKIAogREVGSU5FX1NUUlVDVF9DTEsodXNidGxsX2ZjaywgdXNiaG9zdF8xMjBtX2Zja19wYXJl bnRfbmFtZXMsIGFlczJfaWNrX29wcyk7CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrIHVzYnRsbF9pY2s7 CitzdGF0aWMgc3RydWN0IGNsa19jb3JlIHVzYnRsbF9pY2s7CiAKIHN0YXRpYyBzdHJ1Y3QgY2xr X2h3X29tYXAgdXNidGxsX2lja19odyA9IHsKIAkuaHcgPSB7CkBAIC0zMTI0LDcgKzMxMjMsNyBA QCBzdGF0aWMgY29uc3QgY2hhciAqdXNpbV9mY2tfcGFyZW50X25hbWVzW10gPSB7CiAJIm9tYXBf OTZtX2ZjayIsICJkcGxsNV9tMl9jayIsICJzeXNfY2siLAogfTsKIAotc3RhdGljIHN0cnVjdCBj bGsgdXNpbV9mY2s7CitzdGF0aWMgc3RydWN0IGNsa19jb3JlIHVzaW1fZmNrOwogCiBzdGF0aWMg Y29uc3Qgc3RydWN0IGNsa19vcHMgdXNpbV9mY2tfb3BzID0gewogCS5lbmFibGUJCT0gJm9tYXAy X2RmbHRfY2xrX2VuYWJsZSwKQEAgLTMxNDIsNyArMzE0MSw3IEBAIERFRklORV9DTEtfT01BUF9N VVhfR0FURSh1c2ltX2ZjaywgTlVMTCwgdXNpbV9jbGtzZWwsCiAJCQkgT01BUDM0MzBFUzJfRU5f VVNJTU9DUF9TSElGVCwgJmNsa2h3b3BzX3dhaXQsCiAJCQkgdXNpbV9mY2tfcGFyZW50X25hbWVz LCB1c2ltX2Zja19vcHMpOwogCi1zdGF0aWMgc3RydWN0IGNsayB1c2ltX2ljazsKK3N0YXRpYyBz dHJ1Y3QgY2xrX2NvcmUgdXNpbV9pY2s7CiAKIHN0YXRpYyBzdHJ1Y3QgY2xrX2h3X29tYXAgdXNp bV9pY2tfaHcgPSB7CiAJLmh3ID0gewpAQCAtMzE1Niw3ICszMTU1LDcgQEAgc3RhdGljIHN0cnVj dCBjbGtfaHdfb21hcCB1c2ltX2lja19odyA9IHsKIAogREVGSU5FX1NUUlVDVF9DTEsodXNpbV9p Y2ssIGdwaW8xX2lja19wYXJlbnRfbmFtZXMsIGFlczJfaWNrX29wcyk7CiAKLXN0YXRpYyBzdHJ1 Y3QgY2xrIHZwZmVfZmNrOworc3RhdGljIHN0cnVjdCBjbGtfY29yZSB2cGZlX2ZjazsKIAogc3Rh dGljIGNvbnN0IGNoYXIgKnZwZmVfZmNrX3BhcmVudF9uYW1lc1tdID0gewogCSJwY2xrX2NrIiwK QEAgLTMxNzIsNyArMzE3MSw3IEBAIHN0YXRpYyBzdHJ1Y3QgY2xrX2h3X29tYXAgdnBmZV9mY2tf aHcgPSB7CiAKIERFRklORV9TVFJVQ1RfQ0xLKHZwZmVfZmNrLCB2cGZlX2Zja19wYXJlbnRfbmFt ZXMsIGFlczFfaWNrX29wcyk7CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrIHZwZmVfaWNrOworc3RhdGlj IHN0cnVjdCBjbGtfY29yZSB2cGZlX2ljazsKIAogc3RhdGljIHN0cnVjdCBjbGtfaHdfb21hcCB2 cGZlX2lja19odyA9IHsKIAkuaHcgPSB7CkBAIC0zMTg2LDEyICszMTg1LDEyIEBAIHN0YXRpYyBz dHJ1Y3QgY2xrX2h3X29tYXAgdnBmZV9pY2tfaHcgPSB7CiAKIERFRklORV9TVFJVQ1RfQ0xLKHZw ZmVfaWNrLCBlbWFjX2lja19wYXJlbnRfbmFtZXMsIGFlczJfaWNrX29wcyk7CiAKLXN0YXRpYyBz dHJ1Y3QgY2xrIHdkdDFfZmNrOworc3RhdGljIHN0cnVjdCBjbGtfY29yZSB3ZHQxX2ZjazsKIAog REVGSU5FX1NUUlVDVF9DTEtfSFdfT01BUCh3ZHQxX2ZjaywgIndrdXBfY2xrZG0iKTsKIERFRklO RV9TVFJVQ1RfQ0xLKHdkdDFfZmNrLCBncHQxMl9mY2tfcGFyZW50X25hbWVzLCBjb3JlX2w0X2lj a19vcHMpOwogCi1zdGF0aWMgc3RydWN0IGNsayB3ZHQxX2ljazsKK3N0YXRpYyBzdHJ1Y3QgY2xr X2NvcmUgd2R0MV9pY2s7CiAKIHN0YXRpYyBzdHJ1Y3QgY2xrX2h3X29tYXAgd2R0MV9pY2tfaHcg PSB7CiAJLmh3ID0gewpAQCAtMzIwNSw3ICszMjA0LDcgQEAgc3RhdGljIHN0cnVjdCBjbGtfaHdf b21hcCB3ZHQxX2lja19odyA9IHsKIAogREVGSU5FX1NUUlVDVF9DTEsod2R0MV9pY2ssIGdwaW8x X2lja19wYXJlbnRfbmFtZXMsIGFlczJfaWNrX29wcyk7CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrIHdk dDJfZmNrOworc3RhdGljIHN0cnVjdCBjbGtfY29yZSB3ZHQyX2ZjazsKIAogc3RhdGljIHN0cnVj dCBjbGtfaHdfb21hcCB3ZHQyX2Zja19odyA9IHsKIAkuaHcgPSB7CkBAIC0zMjE5LDcgKzMyMTgs NyBAQCBzdGF0aWMgc3RydWN0IGNsa19od19vbWFwIHdkdDJfZmNrX2h3ID0gewogCiBERUZJTkVf U1RSVUNUX0NMSyh3ZHQyX2ZjaywgZ3BpbzFfZGJja19wYXJlbnRfbmFtZXMsIGFlczJfaWNrX29w cyk7CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrIHdkdDJfaWNrOworc3RhdGljIHN0cnVjdCBjbGtfY29y ZSB3ZHQyX2ljazsKIAogc3RhdGljIHN0cnVjdCBjbGtfaHdfb21hcCB3ZHQyX2lja19odyA9IHsK IAkuaHcgPSB7CkBAIC0zMjMzLDcgKzMyMzIsNyBAQCBzdGF0aWMgc3RydWN0IGNsa19od19vbWFw IHdkdDJfaWNrX2h3ID0gewogCiBERUZJTkVfU1RSVUNUX0NMSyh3ZHQyX2ljaywgZ3BpbzFfaWNr X3BhcmVudF9uYW1lcywgYWVzMl9pY2tfb3BzKTsKIAotc3RhdGljIHN0cnVjdCBjbGsgd2R0M19m Y2s7CitzdGF0aWMgc3RydWN0IGNsa19jb3JlIHdkdDNfZmNrOwogCiBzdGF0aWMgc3RydWN0IGNs a19od19vbWFwIHdkdDNfZmNrX2h3ID0gewogCS5odyA9IHsKQEAgLTMyNDcsNyArMzI0Niw3IEBA IHN0YXRpYyBzdHJ1Y3QgY2xrX2h3X29tYXAgd2R0M19mY2tfaHcgPSB7CiAKIERFRklORV9TVFJV Q1RfQ0xLKHdkdDNfZmNrLCBncGlvMl9kYmNrX3BhcmVudF9uYW1lcywgYWVzMl9pY2tfb3BzKTsK IAotc3RhdGljIHN0cnVjdCBjbGsgd2R0M19pY2s7CitzdGF0aWMgc3RydWN0IGNsa19jb3JlIHdk dDNfaWNrOwogCiBzdGF0aWMgc3RydWN0IGNsa19od19vbWFwIHdkdDNfaWNrX2h3ID0gewogCS5o dyA9IHsKQEAgLTM2NjEsMTAgKzM2NjAsMTAgQEAgaW50IF9faW5pdCBvbWFwM3h4eF9jbGtfaW5p dCh2b2lkKQogCQkJCSAgICAgQVJSQVlfU0laRShlbmFibGVfaW5pdF9jbGtzKSk7CiAKIAlwcl9p bmZvKCJDbG9ja2luZyByYXRlIChDcnlzdGFsL0NvcmUvTVBVKTogJWxkLiUwMWxkLyVsZC8lbGQg TUh6XG4iLAotCQkoY2xrX2dldF9yYXRlKCZvc2Nfc3lzX2NrKSAvIDEwMDAwMDApLAotCQkoY2xr X2dldF9yYXRlKCZvc2Nfc3lzX2NrKSAvIDEwMDAwMCkgJSAxMCwKLQkJKGNsa19nZXRfcmF0ZSgm Y29yZV9jaykgLyAxMDAwMDAwKSwKLQkJKGNsa19nZXRfcmF0ZSgmYXJtX2ZjaykgLyAxMDAwMDAw KSk7CisJCShjbGtfcHJvdmlkZXJfZ2V0X3JhdGUoJm9zY19zeXNfY2spIC8gMTAwMDAwMCksCisJ CShjbGtfcHJvdmlkZXJfZ2V0X3JhdGUoJm9zY19zeXNfY2spIC8gMTAwMDAwKSAlIDEwLAorCQko Y2xrX3Byb3ZpZGVyX2dldF9yYXRlKCZjb3JlX2NrKSAvIDEwMDAwMDApLAorCQkoY2xrX3Byb3Zp ZGVyX2dldF9yYXRlKCZhcm1fZmNrKSAvIDEwMDAwMDApKTsKIAogCS8qCiAJICogTG9jayBEUExM NSAtLSBoZXJlIG9ubHkgdW50aWwgb3RoZXIgZGV2aWNlIGluaXQgY29kZSBjYW4KQEAgLTM2NzQs OCArMzY3Myw4IEBAIGludCBfX2luaXQgb21hcDN4eHhfY2xrX2luaXQodm9pZCkKIAkJb21hcDNf Y2xrX2xvY2tfZHBsbDUoKTsKIAogCS8qIEF2b2lkIHNsZWVwaW5nIGR1cmluZyBvbWFwM19jb3Jl X2RwbGxfbTJfc2V0X3JhdGUoKSAqLwotCXNkcmNfaWNrX3AgPSBjbGtfZ2V0KE5VTEwsICJzZHJj X2ljayIpOwotCWFybV9mY2tfcCA9IGNsa19nZXQoTlVMTCwgImFybV9mY2siKTsKKwlzZHJjX2lj a19wID0gY2xrX3Byb3ZpZGVyX2dldChOVUxMLCAic2RyY19pY2siKTsKKwlhcm1fZmNrX3AgPSBj bGtfcHJvdmlkZXJfZ2V0KE5VTEwsICJhcm1fZmNrIik7CiAKIAlyZXR1cm4gMDsKIH0KZGlmZiAt LWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvY2xrdDJ4eHhfZHBsbC5jIGIvYXJjaC9hcm0vbWFj aC1vbWFwMi9jbGt0Mnh4eF9kcGxsLmMKaW5kZXggODI1NzJlMi4uZDdiYmJiNiAxMDA2NDQKLS0t IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbGt0Mnh4eF9kcGxsLmMKKysrIGIvYXJjaC9hcm0vbWFj aC1vbWFwMi9jbGt0Mnh4eF9kcGxsLmMKQEAgLTExLDcgKzExLDYgQEAKIAogI2luY2x1ZGUgPGxp bnV4L2tlcm5lbC5oPgogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+Ci0jaW5jbHVkZSA8bGludXgv Y2xrLmg+CiAjaW5jbHVkZSA8bGludXgvaW8uaD4KIAogI2luY2x1ZGUgImNsb2NrLmgiCkBAIC0y Miw3ICsyMSw3IEBACiAKIC8qKgogICogX2FsbG93X2lkbGUgLSBlbmFibGUgRFBMTCBhdXRvaWRs ZSBiaXRzCi0gKiBAY2xrOiBzdHJ1Y3QgY2xrICogb2YgdGhlIERQTEwgdG8gb3BlcmF0ZSBvbgor ICogQGNsazogc3RydWN0IGNsa19jb3JlICogb2YgdGhlIERQTEwgdG8gb3BlcmF0ZSBvbgogICoK ICAqIEVuYWJsZSBEUExMIGF1dG9tYXRpYyBpZGxlIGNvbnRyb2wuICBUaGUgRFBMTCB3aWxsIGVu dGVyIGxvdy1wb3dlcgogICogc3RvcCB3aGVuIGl0cyBkb3duc3RyZWFtIGNsb2NrcyBhcmUgZ2F0 ZWQuICBObyByZXR1cm4gdmFsdWUuCkBAIC0zOSw3ICszOCw3IEBAIHN0YXRpYyB2b2lkIF9hbGxv d19pZGxlKHN0cnVjdCBjbGtfaHdfb21hcCAqY2xrKQogCiAvKioKICAqIF9kZW55X2lkbGUgLSBw cmV2ZW50IERQTEwgZnJvbSBhdXRvbWF0aWNhbGx5IGlkbGluZwotICogQGNsazogc3RydWN0IGNs ayAqIG9mIHRoZSBEUExMIHRvIG9wZXJhdGUgb24KKyAqIEBjbGs6IHN0cnVjdCBjbGtfY29yZSAq IG9mIHRoZSBEUExMIHRvIG9wZXJhdGUgb24KICAqCiAgKiBEaXNhYmxlIERQTEwgYXV0b21hdGlj IGlkbGUgY29udHJvbC4gIE5vIHJldHVybiB2YWx1ZS4KICAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9h cm0vbWFjaC1vbWFwMi9jbGt0Mnh4eF9kcGxsY29yZS5jIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9j bGt0Mnh4eF9kcGxsY29yZS5jCmluZGV4IDU5Y2YzMTAuLjlhNjBjZTIgMTAwNjQ0Ci0tLSBhL2Fy Y2gvYXJtL21hY2gtb21hcDIvY2xrdDJ4eHhfZHBsbGNvcmUuYworKysgYi9hcmNoL2FybS9tYWNo LW9tYXAyL2Nsa3QyeHh4X2RwbGxjb3JlLmMKQEAgLTIyLDcgKzIyLDYgQEAKIAogI2luY2x1ZGUg PGxpbnV4L2tlcm5lbC5oPgogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+Ci0jaW5jbHVkZSA8bGlu dXgvY2xrLmg+CiAjaW5jbHVkZSA8bGludXgvaW8uaD4KIAogI2luY2x1ZGUgImNsb2NrLmgiCkBA IC00OCw3ICs0Nyw3IEBAIHN0YXRpYyBzdHJ1Y3QgY2xrX2h3X29tYXAgKmRwbGxfY29yZV9jazsK ICAqIFJldHVybnMgdGhlIENPUkVfQ0xLIHJhdGUuICBDT1JFX0NMSyBjYW4gaGF2ZSBvbmUgb2Yg dGhyZWUgcmF0ZQogICogc291cmNlcyBvbiBPTUFQMnh4eDogdGhlIERQTEwgQ0xLT1VUIHJhdGUs IERQTEwgQ0xLT1VUWDIsIG9yIDMyS0h6CiAgKiAodGhlIGxhdHRlciBpcyB1bnVzdWFsKS4gIFRo aXMgY3VycmVudGx5IHNob3VsZCBiZSBjYWxsZWQgd2l0aAotICogc3RydWN0IGNsayAqZHBsbF9j aywgd2hpY2ggaXMgYSBjb21wb3NpdGUgY2xvY2sgb2YgZHBsbF9jayBhbmQKKyAqIHN0cnVjdCBj bGtfY29yZSAqZHBsbF9jaywgd2hpY2ggaXMgYSBjb21wb3NpdGUgY2xvY2sgb2YgZHBsbF9jayBh bmQKICAqIGNvcmVfY2suCiAgKi8KIHVuc2lnbmVkIGxvbmcgb21hcDJ4eHhfY2xrX2dldF9jb3Jl X3JhdGUodm9pZCkKQEAgLTE3OSw3ICsxNzgsNyBAQCBpbnQgb21hcDJfcmVwcm9ncmFtX2RwbGxj b3JlKHN0cnVjdCBjbGtfaHcgKmh3LCB1bnNpZ25lZCBsb25nIHJhdGUsCiAKIC8qKgogICogb21h cDJ4eHhfY2xrdF9kcGxsY29yZV9pbml0IC0gY2xrIGluaXQgZnVuY3Rpb24gZm9yIGRwbGxfY2sK LSAqIEBjbGs6IHN0cnVjdCBjbGsgKmRwbGxfY2sKKyAqIEBjbGs6IHN0cnVjdCBjbGtfY29yZSAq ZHBsbF9jawogICoKICAqIFN0b3JlIGEgbG9jYWwgY29weSBvZiBAY2xrIGluIGRwbGxfY29yZV9j ayBzbyBvdGhlciBjb2RlIGNhbiBxdWVyeQogICogdGhlIGNvcmUgcmF0ZSB3aXRob3V0IGhhdmlu ZyB0byBjbGtfZ2V0KCksIHdoaWNoIGNhbiBzbGVlcC4gIE11c3QKZGlmZiAtLWdpdCBhL2FyY2gv YXJtL21hY2gtb21hcDIvY2xrdDJ4eHhfdmlydF9wcmNtX3NldC5jIGIvYXJjaC9hcm0vbWFjaC1v bWFwMi9jbGt0Mnh4eF92aXJ0X3ByY21fc2V0LmMKaW5kZXggODVlMGIwYzAuLmQ2MjFhNGMgMTAw NjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtb21hcDIvY2xrdDJ4eHhfdmlydF9wcmNtX3NldC5jCisr KyBiL2FyY2gvYXJtL21hY2gtb21hcDIvY2xrdDJ4eHhfdmlydF9wcmNtX3NldC5jCkBAIC0yOCw3 ICsyOCw2IEBACiAKICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRlIDxsaW51eC9l cnJuby5oPgotI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgogI2luY2x1ZGUgPGxpbnV4L2lvLmg+CiAj aW5jbHVkZSA8bGludXgvY3B1ZnJlcS5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KQEAgLTE5 OCwxNCArMTk3LDE0IEBAIHZvaWQgb21hcDJ4eHhfY2xrdF92cHNfY2hlY2tfYm9vdGxvYWRlcl9y YXRlcyh2b2lkKQogICovCiB2b2lkIG9tYXAyeHh4X2Nsa3RfdnBzX2xhdGVfaW5pdCh2b2lkKQog ewotCXN0cnVjdCBjbGsgKmM7CisJc3RydWN0IGNsa19jb3JlICpjOwogCi0JYyA9IGNsa19nZXQo TlVMTCwgInN5c19jayIpOworCWMgPSBjbGtfcHJvdmlkZXJfZ2V0KE5VTEwsICJzeXNfY2siKTsK IAlpZiAoSVNfRVJSKGMpKSB7CiAJCVdBUk4oMSwgImNvdWxkIG5vdCBsb2NhdGUgc3lzX2NrXG4i KTsKIAl9IGVsc2UgewotCQlzeXNfY2tfcmF0ZSA9IGNsa19nZXRfcmF0ZShjKTsKLQkJY2xrX3B1 dChjKTsKKwkJc3lzX2NrX3JhdGUgPSBjbGtfcHJvdmlkZXJfZ2V0X3JhdGUoYyk7CisJCV9fY2xr X3B1dChjKTsKIAl9CiB9CiAKQEAgLTIzMCw3ICsyMjksNyBAQCB2b2lkIG9tYXAyeHh4X2Nsa3Rf dnBzX2luaXQodm9pZCkKIHsKIAlzdHJ1Y3QgY2xrX2luaXRfZGF0YSBpbml0ID0geyBOVUxMIH07 CiAJc3RydWN0IGNsa19od19vbWFwICpodyA9IE5VTEw7Ci0Jc3RydWN0IGNsayAqY2xrOworCXN0 cnVjdCBjbGtfY29yZSAqY2xrOwogCWNvbnN0IGNoYXIgKnBhcmVudF9uYW1lID0gIm1wdV9jayI7 CiAJc3RydWN0IGNsa19sb29rdXAgKmxvb2t1cCA9IE5VTEw7CiAKZGlmZiAtLWdpdCBhL2FyY2gv YXJtL21hY2gtb21hcDIvY2xrdDM0eHhfZHBsbDNtMi5jIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9j bGt0MzR4eF9kcGxsM20yLmMKaW5kZXggZWI2OWFjZi4uMTZmZjRlZCAxMDA2NDQKLS0tIGEvYXJj aC9hcm0vbWFjaC1vbWFwMi9jbGt0MzR4eF9kcGxsM20yLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1v bWFwMi9jbGt0MzR4eF9kcGxsM20yLmMKQEAgLTE4LDcgKzE4LDYgQEAKIAogI2luY2x1ZGUgPGxp bnV4L2tlcm5lbC5oPgogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+Ci0jaW5jbHVkZSA8bGludXgv Y2xrLmg+CiAjaW5jbHVkZSA8bGludXgvaW8uaD4KIAogI2luY2x1ZGUgImNsb2NrLmgiCkBAIC0z OCw3ICszNyw3IEBACiAKIC8qKgogICogb21hcDNfY29yZV9kcGxsX20yX3NldF9yYXRlIC0gc2V0 IENPUkUgRFBMTCBNMiBkaXZpZGVyCi0gKiBAY2xrOiBzdHJ1Y3QgY2xrICogb2YgRFBMTCB0byBz ZXQKKyAqIEBjbGs6IHN0cnVjdCBjbGtfY29yZSAqIG9mIERQTEwgdG8gc2V0CiAgKiBAcmF0ZTog cm91bmRlZCB0YXJnZXQgcmF0ZQogICoKICAqIFByb2dyYW0gdGhlIERQTEwgTTIgZGl2aWRlciB3 aXRoIHRoZSByb3VuZGVkIHRhcmdldCByYXRlLiAgUmV0dXJucwpkaWZmIC0tZ2l0IGEvYXJjaC9h cm0vbWFjaC1vbWFwMi9jbGt0X2Nsa3NlbC5jIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbGt0X2Ns a3NlbC5jCmluZGV4IDdlZTI2MTAuLmI0Nzk2YjMgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gt b21hcDIvY2xrdF9jbGtzZWwuYworKysgYi9hcmNoL2FybS9tYWNoLW9tYXAyL2Nsa3RfY2xrc2Vs LmMKQEAgLTUxLDE1ICs1MSwxNSBAQAogCiAvKioKICAqIF9nZXRfY2xrc2VsX2J5X3BhcmVudCgp IC0gcmV0dXJuIGNsa3NlbCBzdHJ1Y3QgZm9yIGEgZ2l2ZW4gY2xrICYgcGFyZW50Ci0gKiBAY2xr OiBPTUFQIHN0cnVjdCBjbGsgcHRyIHRvIGluc3BlY3QKLSAqIEBzcmNfY2xrOiBPTUFQIHN0cnVj dCBjbGsgcHRyIG9mIHRoZSBwYXJlbnQgY2xrIHRvIHNlYXJjaCBmb3IKKyAqIEBjbGs6IE9NQVAg c3RydWN0IGNsa19jb3JlIHB0ciB0byBpbnNwZWN0CisgKiBAc3JjX2NsazogT01BUCBzdHJ1Y3Qg Y2xrX2NvcmUgcHRyIG9mIHRoZSBwYXJlbnQgY2xrIHRvIHNlYXJjaCBmb3IKICAqCiAgKiBTY2Fu IHRoZSBzdHJ1Y3QgY2xrc2VsIGFycmF5IGFzc29jaWF0ZWQgd2l0aCB0aGUgY2xvY2sgdG8gZmlu ZAogICogdGhlIGVsZW1lbnQgYXNzb2NpYXRlZCB3aXRoIHRoZSBzdXBwbGllZCBwYXJlbnQgY2xv Y2sgYWRkcmVzcy4KICAqIFJldHVybnMgYSBwb2ludGVyIHRvIHRoZSBzdHJ1Y3QgY2xrc2VsIG9u IHN1Y2Nlc3Mgb3IgTlVMTCBvbiBlcnJvci4KICAqLwogc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtz ZWwgKl9nZXRfY2xrc2VsX2J5X3BhcmVudChzdHJ1Y3QgY2xrX2h3X29tYXAgKmNsaywKLQkJCQkJ CSAgc3RydWN0IGNsayAqc3JjX2NsaykKKwkJCQkJCSAgc3RydWN0IGNsa19jb3JlICpzcmNfY2xr KQogewogCWNvbnN0IHN0cnVjdCBjbGtzZWwgKmNsa3M7CiAKQEAgLTgyLDcgKzgyLDcgQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCBjbGtzZWwgKl9nZXRfY2xrc2VsX2J5X3BhcmVudChzdHJ1Y3QgY2xr X2h3X29tYXAgKmNsaywKIAogLyoqCiAgKiBfd3JpdGVfY2xrc2VsX3JlZygpIC0gcHJvZ3JhbSBh IGNsb2NrJ3MgY2xrc2VsIHJlZ2lzdGVyIGluIGhhcmR3YXJlCi0gKiBAY2xrOiBzdHJ1Y3QgY2xr ICogdG8gcHJvZ3JhbQorICogQGNsazogc3RydWN0IGNsa19jb3JlICogdG8gcHJvZ3JhbQogICog QHY6IGNsa3NlbCBiaXRmaWVsZCB2YWx1ZSB0byBwcm9ncmFtICh3aXRoIExTQiBhdCBiaXQgMCkK ICAqCiAgKiBTaGlmdCB0aGUgY2xrc2VsIHJlZ2lzdGVyIGJpdGZpZWxkIHZhbHVlIEB2IHRvIGl0 cyBhcHByb3ByaWF0ZQpAQCAtMTA3LDEwICsxMDcsMTAgQEAgc3RhdGljIHZvaWQgX3dyaXRlX2Ns a3NlbF9yZWcoc3RydWN0IGNsa19od19vbWFwICpjbGssIHUzMiBmaWVsZF92YWwpCiAKIC8qKgog ICogX2Nsa3NlbF90b19kaXZpc29yKCkgLSB0dXJuIGNsa3NlbCBmaWVsZCB2YWx1ZSBpbnRvIGlu dGVnZXIgZGl2aWRlcgotICogQGNsazogT01BUCBzdHJ1Y3QgY2xrIHRvIHVzZQorICogQGNsazog T01BUCBzdHJ1Y3QgY2xrX2NvcmUgdG8gdXNlCiAgKiBAZmllbGRfdmFsOiByZWdpc3RlciBmaWVs ZCB2YWx1ZSB0byBmaW5kCiAgKgotICogR2l2ZW4gYSBzdHJ1Y3QgY2xrIG9mIGEgcmF0ZS1zZWxl Y3RhYmxlIGNsa3NlbCBjbG9jaywgYW5kIGEgcmVnaXN0ZXIgZmllbGQKKyAqIEdpdmVuIGEgc3Ry dWN0IGNsa19jb3JlIG9mIGEgcmF0ZS1zZWxlY3RhYmxlIGNsa3NlbCBjbG9jaywgYW5kIGEgcmVn aXN0ZXIgZmllbGQKICAqIHZhbHVlIHRvIHNlYXJjaCBmb3IsIGZpbmQgdGhlIGNvcnJlc3BvbmRp bmcgY2xvY2sgZGl2aXNvci4gIFRoZSByZWdpc3RlcgogICogZmllbGQgdmFsdWUgc2hvdWxkIGJl IHByZS1tYXNrZWQgYW5kIHNoaWZ0ZWQgZG93biBzbyB0aGUgTFNCIGlzIGF0IGJpdCAwCiAgKiBi ZWZvcmUgY2FsbGluZy4gIFJldHVybnMgMCBvbiBlcnJvciBvciByZXR1cm5zIHRoZSBhY3R1YWwg aW50ZWdlciBkaXZpc29yCkBAIC0xMjAsNyArMTIwLDcgQEAgc3RhdGljIHUzMiBfY2xrc2VsX3Rv X2Rpdmlzb3Ioc3RydWN0IGNsa19od19vbWFwICpjbGssIHUzMiBmaWVsZF92YWwpCiB7CiAJY29u c3Qgc3RydWN0IGNsa3NlbCAqY2xrczsKIAljb25zdCBzdHJ1Y3QgY2xrc2VsX3JhdGUgKmNsa3I7 Ci0Jc3RydWN0IGNsayAqcGFyZW50OworCXN0cnVjdCBjbGtfY29yZSAqcGFyZW50OwogCiAJcGFy ZW50ID0gX19jbGtfZ2V0X3BhcmVudChjbGstPmh3LmNsayk7CiAKQEAgLTE0OSwxMCArMTQ5LDEw IEBAIHN0YXRpYyB1MzIgX2Nsa3NlbF90b19kaXZpc29yKHN0cnVjdCBjbGtfaHdfb21hcCAqY2xr LCB1MzIgZmllbGRfdmFsKQogCiAvKioKICAqIF9kaXZpc29yX3RvX2Nsa3NlbCgpIC0gdHVybiBj bGtzZWwgaW50ZWdlciBkaXZpc29yIGludG8gYSBmaWVsZCB2YWx1ZQotICogQGNsazogT01BUCBz dHJ1Y3QgY2xrIHRvIHVzZQorICogQGNsazogT01BUCBzdHJ1Y3QgY2xrX2NvcmUgdG8gdXNlCiAg KiBAZGl2OiBpbnRlZ2VyIGRpdmlzb3IgdG8gc2VhcmNoIGZvcgogICoKLSAqIEdpdmVuIGEgc3Ry dWN0IGNsayBvZiBhIHJhdGUtc2VsZWN0YWJsZSBjbGtzZWwgY2xvY2ssIGFuZCBhIGNsb2NrCisg KiBHaXZlbiBhIHN0cnVjdCBjbGtfY29yZSBvZiBhIHJhdGUtc2VsZWN0YWJsZSBjbGtzZWwgY2xv Y2ssIGFuZCBhIGNsb2NrCiAgKiBkaXZpc29yLCBmaW5kIHRoZSBjb3JyZXNwb25kaW5nIHJlZ2lz dGVyIGZpZWxkIHZhbHVlLiAgUmV0dXJucyB0aGUKICAqIHJlZ2lzdGVyIGZpZWxkIHZhbHVlIF9i ZWZvcmVfIGxlZnQtc2hpZnRpbmcgKGkuZS4sIExTQiBpcyBhdCBiaXQKICAqIDApOyBvciByZXR1 cm5zIDB4RkZGRkZGRkYgKH4wKSB1cG9uIGVycm9yLgpAQCAtMTYxLDcgKzE2MSw3IEBAIHN0YXRp YyB1MzIgX2Rpdmlzb3JfdG9fY2xrc2VsKHN0cnVjdCBjbGtfaHdfb21hcCAqY2xrLCB1MzIgZGl2 KQogewogCWNvbnN0IHN0cnVjdCBjbGtzZWwgKmNsa3M7CiAJY29uc3Qgc3RydWN0IGNsa3NlbF9y YXRlICpjbGtyOwotCXN0cnVjdCBjbGsgKnBhcmVudDsKKwlzdHJ1Y3QgY2xrX2NvcmUgKnBhcmVu dDsKIAogCS8qIHNob3VsZCBuZXZlciBoYXBwZW4gKi8KIAlXQVJOX09OKGRpdiA9PSAwKTsKQEAg LTE5MSw3ICsxOTEsNyBAQCBzdGF0aWMgdTMyIF9kaXZpc29yX3RvX2Nsa3NlbChzdHJ1Y3QgY2xr X2h3X29tYXAgKmNsaywgdTMyIGRpdikKIAogLyoqCiAgKiBfcmVhZF9kaXZpc29yKCkgLSBnZXQg Y3VycmVudCBkaXZpc29yIGFwcGxpZWQgdG8gcGFyZW50IGNsb2NrIChmcm9tIGhkd3IpCi0gKiBA Y2xrOiBPTUFQIHN0cnVjdCBjbGsgdG8gdXNlLgorICogQGNsazogT01BUCBzdHJ1Y3QgY2xrX2Nv cmUgdG8gdXNlLgogICoKICAqIFJlYWQgdGhlIGN1cnJlbnQgZGl2aXNvciByZWdpc3RlciB2YWx1 ZSBmb3IgQGNsayB0aGF0IGlzIHByb2dyYW1tZWQKICAqIGludG8gdGhlIGhhcmR3YXJlLCBjb252 ZXJ0IGl0IGludG8gdGhlIGFjdHVhbCBkaXZpc29yIHZhbHVlLCBhbmQKQEAgLTIxNSw3ICsyMTUs NyBAQCBzdGF0aWMgdTMyIF9yZWFkX2Rpdmlzb3Ioc3RydWN0IGNsa19od19vbWFwICpjbGspCiAK IC8qKgogICogb21hcDJfY2xrc2VsX3JvdW5kX3JhdGVfZGl2KCkgLSBmaW5kIGRpdmlzb3IgZm9y IHRoZSBnaXZlbiBjbG9jayBhbmQgcmF0ZQotICogQGNsazogT01BUCBzdHJ1Y3QgY2xrIHRvIHVz ZQorICogQGNsazogT01BUCBzdHJ1Y3QgY2xrX2NvcmUgdG8gdXNlCiAgKiBAdGFyZ2V0X3JhdGU6 IGRlc2lyZWQgY2xvY2sgcmF0ZQogICogQG5ld19kaXY6IHB0ciB0byB3aGVyZSB3ZSBzaG91bGQg c3RvcmUgdGhlIGRpdmlzb3IKICAqCkBAIC0yMzMsNyArMjMzLDcgQEAgdTMyIG9tYXAyX2Nsa3Nl bF9yb3VuZF9yYXRlX2RpdihzdHJ1Y3QgY2xrX2h3X29tYXAgKmNsaywKIAljb25zdCBzdHJ1Y3Qg Y2xrc2VsICpjbGtzOwogCWNvbnN0IHN0cnVjdCBjbGtzZWxfcmF0ZSAqY2xrcjsKIAl1MzIgbGFz dF9kaXYgPSAwOwotCXN0cnVjdCBjbGsgKnBhcmVudDsKKwlzdHJ1Y3QgY2xrX2NvcmUgKnBhcmVu dDsKIAl1bnNpZ25lZCBsb25nIHBhcmVudF9yYXRlOwogCWNvbnN0IGNoYXIgKmNsa19uYW1lOwog CkBAIC0yODYsNyArMjg2LDcgQEAgdTMyIG9tYXAyX2Nsa3NlbF9yb3VuZF9yYXRlX2RpdihzdHJ1 Y3QgY2xrX2h3X29tYXAgKmNsaywKIAogLyoKICAqIENsb2NrdHlwZSBpbnRlcmZhY2UgZnVuY3Rp b25zIHRvIHRoZSBPTUFQIGNsb2NrIGNvZGUKLSAqIChpLmUuLCB0aG9zZSB1c2VkIGluIHN0cnVj dCBjbGsgZmllbGQgZnVuY3Rpb24gcG9pbnRlcnMsIGV0Yy4pCisgKiAoaS5lLiwgdGhvc2UgdXNl ZCBpbiBzdHJ1Y3QgY2xrX2NvcmUgZmllbGQgZnVuY3Rpb24gcG9pbnRlcnMsIGV0Yy4pCiAgKi8K IAogLyoqCkBAIC0zMDksNyArMzA5LDcgQEAgdTggb21hcDJfY2xrc2VsX2ZpbmRfcGFyZW50X2lu ZGV4KHN0cnVjdCBjbGtfaHcgKmh3KQogCWNvbnN0IHN0cnVjdCBjbGtzZWwgKmNsa3M7CiAJY29u c3Qgc3RydWN0IGNsa3NlbF9yYXRlICpjbGtyOwogCXUzMiByLCBmb3VuZCA9IDA7Ci0Jc3RydWN0 IGNsayAqcGFyZW50OworCXN0cnVjdCBjbGtfY29yZSAqcGFyZW50OwogCWNvbnN0IGNoYXIgKmNs a19uYW1lOwogCWludCByZXQgPSAwLCBmID0gMDsKIApAQCAtMzQ1LDExICszNDUsMTEgQEAgdTgg b21hcDJfY2xrc2VsX2ZpbmRfcGFyZW50X2luZGV4KHN0cnVjdCBjbGtfaHcgKmh3KQogCiAKIC8q KgotICogb21hcDJfY2xrc2VsX3JlY2FsYygpIC0gZnVuY3Rpb24gcHRyIHRvIHBhc3MgdmlhIHN0 cnVjdCBjbGsgLnJlY2FsYyBmaWVsZAotICogQGNsazogc3RydWN0IGNsayAqCisgKiBvbWFwMl9j bGtzZWxfcmVjYWxjKCkgLSBmdW5jdGlvbiBwdHIgdG8gcGFzcyB2aWEgc3RydWN0IGNsa19jb3Jl IC5yZWNhbGMgZmllbGQKKyAqIEBjbGs6IHN0cnVjdCBjbGtfY29yZSAqCiAgKgogICogVGhpcyBm dW5jdGlvbiBpcyBpbnRlbmRlZCB0byBiZSBjYWxsZWQgb25seSBieSB0aGUgY2xvY2sgZnJhbWV3 b3JrLgotICogRWFjaCBjbGtzZWwgY2xvY2sgc2hvdWxkIGhhdmUgaXRzIHN0cnVjdCBjbGsgLnJl Y2FsYyBmaWVsZCBzZXQgdG8gdGhpcworICogRWFjaCBjbGtzZWwgY2xvY2sgc2hvdWxkIGhhdmUg aXRzIHN0cnVjdCBjbGtfY29yZSAucmVjYWxjIGZpZWxkIHNldCB0byB0aGlzCiAgKiBmdW5jdGlv bi4gIFJldHVybnMgdGhlIGNsb2NrJ3MgY3VycmVudCByYXRlLCBiYXNlZCBvbiBpdHMgcGFyZW50 J3MgcmF0ZQogICogYW5kIGl0cyBjdXJyZW50IGRpdmlzb3Igc2V0dGluZyBpbiB0aGUgaGFyZHdh cmUuCiAgKi8KQEAgLTM3Niw3ICszNzYsNyBAQCB1bnNpZ25lZCBsb25nIG9tYXAyX2Nsa3NlbF9y ZWNhbGMoc3RydWN0IGNsa19odyAqaHcsIHVuc2lnbmVkIGxvbmcgcGFyZW50X3JhdGUpCiAKIC8q KgogICogb21hcDJfY2xrc2VsX3JvdW5kX3JhdGUoKSAtIGZpbmQgcm91bmRlZCByYXRlIGZvciB0 aGUgZ2l2ZW4gY2xvY2sgYW5kIHJhdGUKLSAqIEBjbGs6IE9NQVAgc3RydWN0IGNsayB0byB1c2UK KyAqIEBjbGs6IE9NQVAgc3RydWN0IGNsa19jb3JlIHRvIHVzZQogICogQHRhcmdldF9yYXRlOiBk ZXNpcmVkIGNsb2NrIHJhdGUKICAqCiAgKiBUaGlzIGZ1bmN0aW9uIGlzIGludGVuZGVkIHRvIGJl IGNhbGxlZCBvbmx5IGJ5IHRoZSBjbG9jayBmcmFtZXdvcmsuCkBAIC0zOTYsNyArMzk2LDcgQEAg bG9uZyBvbWFwMl9jbGtzZWxfcm91bmRfcmF0ZShzdHJ1Y3QgY2xrX2h3ICpodywgdW5zaWduZWQg bG9uZyB0YXJnZXRfcmF0ZSwKIAogLyoqCiAgKiBvbWFwMl9jbGtzZWxfc2V0X3JhdGUoKSAtIHBy b2dyYW0gY2xvY2sgcmF0ZSBpbiBoYXJkd2FyZQotICogQGNsazogc3RydWN0IGNsayAqIHRvIHBy b2dyYW0gcmF0ZQorICogQGNsazogc3RydWN0IGNsa19jb3JlICogdG8gcHJvZ3JhbSByYXRlCiAg KiBAcmF0ZTogdGFyZ2V0IHJhdGUgdG8gcHJvZ3JhbQogICoKICAqIFRoaXMgZnVuY3Rpb24gaXMg aW50ZW5kZWQgdG8gYmUgY2FsbGVkIG9ubHkgYnkgdGhlIGNsb2NrIGZyYW1ld29yay4KQEAgLTQz NSw3ICs0MzUsNyBAQCBpbnQgb21hcDJfY2xrc2VsX3NldF9yYXRlKHN0cnVjdCBjbGtfaHcgKmh3 LCB1bnNpZ25lZCBsb25nIHJhdGUsCiB9CiAKIC8qCi0gKiBDbGtzZWwgcGFyZW50IHNldHRpbmcg ZnVuY3Rpb24gLSBub3QgcGFzc2VkIGluIHN0cnVjdCBjbGsgZnVuY3Rpb24KKyAqIENsa3NlbCBw YXJlbnQgc2V0dGluZyBmdW5jdGlvbiAtIG5vdCBwYXNzZWQgaW4gc3RydWN0IGNsa19jb3JlIGZ1 bmN0aW9uCiAgKiBwb2ludGVyIC0gaW5zdGVhZCwgdGhlIE9NQVAgY2xvY2sgY29kZSBjdXJyZW50 bHkgYXNzdW1lcyB0aGF0IGFueQogICogcGFyZW50LXNldHRpbmcgY2xvY2sgaXMgYSBjbGtzZWwg Y2xvY2ssIGFuZCBjYWxscwogICogb21hcDJfY2xrc2VsX3NldF9wYXJlbnQoKSBieSBkZWZhdWx0 CkBAIC00NDMsOCArNDQzLDggQEAgaW50IG9tYXAyX2Nsa3NlbF9zZXRfcmF0ZShzdHJ1Y3QgY2xr X2h3ICpodywgdW5zaWduZWQgbG9uZyByYXRlLAogCiAvKioKICAqIG9tYXAyX2Nsa3NlbF9zZXRf cGFyZW50KCkgLSBjaGFuZ2UgYSBjbG9jaydzIHBhcmVudCBjbG9jawotICogQGNsazogc3RydWN0 IGNsayAqIG9mIHRoZSBjaGlsZCBjbG9jawotICogQG5ld19wYXJlbnQ6IHN0cnVjdCBjbGsgKiBv ZiB0aGUgbmV3IHBhcmVudCBjbG9jaworICogQGNsazogc3RydWN0IGNsa19jb3JlICogb2YgdGhl IGNoaWxkIGNsb2NrCisgKiBAbmV3X3BhcmVudDogc3RydWN0IGNsa19jb3JlICogb2YgdGhlIG5l dyBwYXJlbnQgY2xvY2sKICAqCiAgKiBUaGlzIGZ1bmN0aW9uIGlzIGludGVuZGVkIHRvIGJlIGNh bGxlZCBvbmx5IGJ5IHRoZSBjbG9jayBmcmFtZXdvcmsuCiAgKiBDaGFuZ2UgdGhlIHBhcmVudCBj bG9jayBvZiBjbG9jayBAY2xrIHRvIEBuZXdfcGFyZW50LiAgVGhpcyBpcwpkaWZmIC0tZ2l0IGEv YXJjaC9hcm0vbWFjaC1vbWFwMi9jbGt0X2RwbGwuYyBiL2FyY2gvYXJtL21hY2gtb21hcDIvY2xr dF9kcGxsLmMKaW5kZXggZjI1MWExNC4uMzZmMjYzZCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFj aC1vbWFwMi9jbGt0X2RwbGwuYworKysgYi9hcmNoL2FybS9tYWNoLW9tYXAyL2Nsa3RfZHBsbC5j CkBAIC01Niw3ICs1Niw3IEBACiAKIC8qCiAgKiBfZHBsbF90ZXN0X2ZpbnQgLSB0ZXN0IHdoZXRo ZXIgYW4gRmludCB2YWx1ZSBpcyB2YWxpZCBmb3IgdGhlIERQTEwKLSAqIEBjbGs6IERQTEwgc3Ry dWN0IGNsayB0byB0ZXN0CisgKiBAY2xrOiBEUExMIHN0cnVjdCBjbGtfY29yZSB0byB0ZXN0CiAg KiBAbjogZGl2aWRlciB2YWx1ZSAoTikgdG8gdGVzdAogICoKICAqIFRlc3RzIHdoZXRoZXIgYSBw YXJ0aWN1bGFyIGRpdmlkZXIgQG4gd2lsbCByZXN1bHQgaW4gYSB2YWxpZCBEUExMCkBAIC0yMTUs NyArMjE1LDcgQEAgdTggb21hcDJfaW5pdF9kcGxsX3BhcmVudChzdHJ1Y3QgY2xrX2h3ICpodykK IAl2ICY9IGRkLT5lbmFibGVfbWFzazsKIAl2ID4+PSBfX2ZmcyhkZC0+ZW5hYmxlX21hc2spOwog Ci0JLyogUmVwYXJlbnQgdGhlIHN0cnVjdCBjbGsgaW4gY2FzZSB0aGUgZHBsbCBpcyBpbiBieXBh c3MgKi8KKwkvKiBSZXBhcmVudCB0aGUgc3RydWN0IGNsa19jb3JlIGluIGNhc2UgdGhlIGRwbGwg aXMgaW4gYnlwYXNzICovCiAJaWYgKF9vbWFwMl9kcGxsX2lzX2luX2J5cGFzcyh2KSkKIAkJcmV0 dXJuIDE7CiAKQEAgLTIyNCw3ICsyMjQsNyBAQCB1OCBvbWFwMl9pbml0X2RwbGxfcGFyZW50KHN0 cnVjdCBjbGtfaHcgKmh3KQogCiAvKioKICAqIG9tYXAyX2dldF9kcGxsX3JhdGUgLSByZXR1cm5z IHRoZSBjdXJyZW50IERQTEwgQ0xLT1VUIHJhdGUKLSAqIEBjbGs6IHN0cnVjdCBjbGsgKiBvZiBh IERQTEwKKyAqIEBjbGs6IHN0cnVjdCBjbGtfY29yZSAqIG9mIGEgRFBMTAogICoKICAqIERQTExz IGNhbiBiZSBsb2NrZWQgb3IgYnlwYXNzZWQgLSBiYXNpY2FsbHksIGVuYWJsZWQgb3IgZGlzYWJs ZWQuCiAgKiBXaGVuIGxvY2tlZCwgdGhlIERQTEwgb3V0cHV0IGRlcGVuZHMgb24gdGhlIE0gYW5k IE4gdmFsdWVzLiAgV2hlbgpAQCAtMjcwLDcgKzI3MCw3IEBAIHVuc2lnbmVkIGxvbmcgb21hcDJf Z2V0X2RwbGxfcmF0ZShzdHJ1Y3QgY2xrX2h3X29tYXAgKmNsaykKIAogLyoqCiAgKiBvbWFwMl9k cGxsX3JvdW5kX3JhdGUgLSByb3VuZCBhIHRhcmdldCByYXRlIGZvciBhbiBPTUFQIERQTEwKLSAq IEBjbGs6IHN0cnVjdCBjbGsgKiBmb3IgYSBEUExMCisgKiBAY2xrOiBzdHJ1Y3QgY2xrX2NvcmUg KiBmb3IgYSBEUExMCiAgKiBAdGFyZ2V0X3JhdGU6IGRlc2lyZWQgRFBMTCBjbG9jayByYXRlCiAg KgogICogR2l2ZW4gYSBEUExMIGFuZCBhIGRlc2lyZWQgdGFyZ2V0IHJhdGUsIHJvdW5kIHRoZSB0 YXJnZXQgcmF0ZSB0byBhCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL2Nsb2NrLmMg Yi9hcmNoL2FybS9tYWNoLW9tYXAyL2Nsb2NrLmMKaW5kZXggNTAwNTMwZC4uYWIzNDFlNCAxMDA2 NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbG9jay5jCisrKyBiL2FyY2gvYXJtL21hY2gt b21hcDIvY2xvY2suYwpAQCAtMTQyLDcgKzE0Miw3IEBAIHN0YXRpYyBpbnQgX3dhaXRfaWRsZXN0 X2dlbmVyaWMoc3RydWN0IGNsa19od19vbWFwICpjbGssIHZvaWQgX19pb21lbSAqcmVnLAogCiAv KioKICAqIF9vbWFwMl9tb2R1bGVfd2FpdF9yZWFkeSAtIHdhaXQgZm9yIGFuIE9NQVAgbW9kdWxl IHRvIGxlYXZlIElETEUKLSAqIEBjbGs6IHN0cnVjdCBjbGsgKiBiZWxvbmdpbmcgdG8gdGhlIG1v ZHVsZQorICogQGNsazogc3RydWN0IGNsa19jb3JlICogYmVsb25naW5nIHRvIHRoZSBtb2R1bGUK ICAqCiAgKiBJZiB0aGUgbmVjZXNzYXJ5IGNsb2NrcyBmb3IgdGhlIE9NQVAgaGFyZHdhcmUgSVAg YmxvY2sgdGhhdAogICogY29ycmVzcG9uZHMgdG8gY2xvY2sgQGNsayBhcmUgZW5hYmxlZCwgdGhl biB3YWl0IGZvciB0aGUgbW9kdWxlIHRvCkBAIC0xODEsNyArMTgxLDcgQEAgc3RhdGljIHZvaWQg X29tYXAyX21vZHVsZV93YWl0X3JlYWR5KHN0cnVjdCBjbGtfaHdfb21hcCAqY2xrKQogICogb21h cDJfaW5pdF9jbGtfY2xrZG0gLSBsb29rIHVwIGEgY2xvY2tkb21haW4gbmFtZSwgc3RvcmUgcG9p bnRlciBpbiBjbGsKICAqIEBjbGs6IE9NQVAgY2xvY2sgc3RydWN0IHB0ciB0byB1c2UKICAqCi0g KiBDb252ZXJ0IGEgY2xvY2tkb21haW4gbmFtZSBzdG9yZWQgaW4gYSBzdHJ1Y3QgY2xrICdjbGsn IGludG8gYQorICogQ29udmVydCBhIGNsb2NrZG9tYWluIG5hbWUgc3RvcmVkIGluIGEgc3RydWN0 IGNsa19jb3JlICdjbGsnIGludG8gYQogICogY2xvY2tkb21haW4gcG9pbnRlciwgYW5kIHNhdmUg aXQgaW50byB0aGUgc3RydWN0IGNsay4gIEludGVuZGVkIHRvIGJlCiAgKiBjYWxsZWQgZHVyaW5n IGNsa19yZWdpc3RlcigpLiAgTm8gcmV0dXJuIHZhbHVlLgogICovCkBAIC0yMjIsNyArMjIyLDcg QEAgdm9pZCBfX2luaXQgb21hcDJfY2xrX2Rpc2FibGVfY2xrZG1fY29udHJvbCh2b2lkKQogCiAv KioKICAqIG9tYXAyX2Nsa19kZmx0X2ZpbmRfY29tcGFuaW9uIC0gZmluZCBjb21wYW5pb24gY2xv Y2sgdG8gQGNsawotICogQGNsazogc3RydWN0IGNsayAqIHRvIGZpbmQgdGhlIGNvbXBhbmlvbiBj bG9jayBvZgorICogQGNsazogc3RydWN0IGNsa19jb3JlICogdG8gZmluZCB0aGUgY29tcGFuaW9u IGNsb2NrIG9mCiAgKiBAb3RoZXJfcmVnOiB2b2lkIF9faW9tZW0gKiogdG8gcmV0dXJuIHRoZSBj b21wYW5pb24gY2xvY2sgQ01fKkNMS0VOIHZhIGluCiAgKiBAb3RoZXJfYml0OiB1OCAqKiB0byBy ZXR1cm4gdGhlIGNvbXBhbmlvbiBjbG9jayBiaXQgc2hpZnQgaW4KICAqCkBAIC0yNTgsNyArMjU4 LDcgQEAgdm9pZCBvbWFwMl9jbGtfZGZsdF9maW5kX2NvbXBhbmlvbihzdHJ1Y3QgY2xrX2h3X29t YXAgKmNsaywKIAogLyoqCiAgKiBvbWFwMl9jbGtfZGZsdF9maW5kX2lkbGVzdCAtIGZpbmQgQ01f SURMRVNUIHJlZyB2YSwgYml0IHNoaWZ0IGZvciBAY2xrCi0gKiBAY2xrOiBzdHJ1Y3QgY2xrICog dG8gZmluZCBJRExFU1QgaW5mbyBmb3IKKyAqIEBjbGs6IHN0cnVjdCBjbGtfY29yZSAqIHRvIGZp bmQgSURMRVNUIGluZm8gZm9yCiAgKiBAaWRsZXN0X3JlZzogdm9pZCBfX2lvbWVtICoqIHRvIHJl dHVybiB0aGUgQ01fSURMRVNUIHZhIGluCiAgKiBAaWRsZXN0X2JpdDogdTggKiB0byByZXR1cm4g dGhlIENNX0lETEVTVCBiaXQgc2hpZnQgaW4KICAqIEBpZGxlc3RfdmFsOiB1OCAqIHRvIHJldHVy biB0aGUgaWRsZSBzdGF0dXMgaW5kaWNhdG9yCkBAIC01MDIsMTQgKzUwMiwxNCBAQCBfX3NldHVw KCJtcHVyYXRlPSIsIG9tYXBfY2xrX3NldHVwKTsKIAogLyoqCiAgKiBvbWFwMl9pbml0X2Nsa19o d19vbWFwX2Nsb2NrcyAtIGluaXRpYWxpemUgYW4gT01BUCBjbG9jawotICogQGNsazogc3RydWN0 IGNsayAqIHRvIGluaXRpYWxpemUKKyAqIEBjbGs6IHN0cnVjdCBjbGtfY29yZSAqIHRvIGluaXRp YWxpemUKICAqCiAgKiBBZGQgYW4gT01BUCBjbG9jayBAY2xrIHRvIHRoZSBpbnRlcm5hbCBsaXN0 IG9mIE9NQVAgY2xvY2tzLiAgVXNlZAogICogdGVtcG9yYXJpbHkgZm9yIGF1dG9pZGxlIGhhbmRs aW5nLCB1bnRpbCB0aGlzIHN1cHBvcnQgY2FuIGJlCiAgKiBpbnRlZ3JhdGVkIGludG8gdGhlIGNv bW1vbiBjbG9jayBmcmFtZXdvcmsgY29kZSBpbiBzb21lIHdheS4gIE5vCiAgKiByZXR1cm4gdmFs dWUuCiAgKi8KLXZvaWQgb21hcDJfaW5pdF9jbGtfaHdfb21hcF9jbG9ja3Moc3RydWN0IGNsayAq Y2xrKQordm9pZCBvbWFwMl9pbml0X2Nsa19od19vbWFwX2Nsb2NrcyhzdHJ1Y3QgY2xrX2NvcmUg KmNsaykKIHsKIAlzdHJ1Y3QgY2xrX2h3X29tYXAgKmM7CiAKQEAgLTU2NiwxMSArNTY2LDExIEBA IGludCBvbWFwMl9jbGtfZGlzYWJsZV9hdXRvaWRsZV9hbGwodm9pZCkKIAogLyoqCiAgKiBvbWFw Ml9jbGtfZGVueV9pZGxlIC0gZGlzYWJsZSBhdXRvaWRsZSBvbiBhbiBPTUFQIGNsb2NrCi0gKiBA Y2xrOiBzdHJ1Y3QgY2xrICogdG8gZGlzYWJsZSBhdXRvaWRsZSBmb3IKKyAqIEBjbGs6IHN0cnVj dCBjbGtfY29yZSAqIHRvIGRpc2FibGUgYXV0b2lkbGUgZm9yCiAgKgogICogRGlzYWJsZSBhdXRv aWRsZSBvbiBhbiBPTUFQIGNsb2NrLgogICovCi1pbnQgb21hcDJfY2xrX2RlbnlfaWRsZShzdHJ1 Y3QgY2xrICpjbGspCitpbnQgb21hcDJfY2xrX2RlbnlfaWRsZShzdHJ1Y3QgY2xrX2NvcmUgKmNs aykKIHsKIAlzdHJ1Y3QgY2xrX2h3X29tYXAgKmM7CiAKQEAgLTU4NSwxMSArNTg1LDExIEBAIGlu dCBvbWFwMl9jbGtfZGVueV9pZGxlKHN0cnVjdCBjbGsgKmNsaykKIAogLyoqCiAgKiBvbWFwMl9j bGtfYWxsb3dfaWRsZSAtIGVuYWJsZSBhdXRvaWRsZSBvbiBhbiBPTUFQIGNsb2NrCi0gKiBAY2xr OiBzdHJ1Y3QgY2xrICogdG8gZW5hYmxlIGF1dG9pZGxlIGZvcgorICogQGNsazogc3RydWN0IGNs a19jb3JlICogdG8gZW5hYmxlIGF1dG9pZGxlIGZvcgogICoKICAqIEVuYWJsZSBhdXRvaWRsZSBv biBhbiBPTUFQIGNsb2NrLgogICovCi1pbnQgb21hcDJfY2xrX2FsbG93X2lkbGUoc3RydWN0IGNs ayAqY2xrKQoraW50IG9tYXAyX2Nsa19hbGxvd19pZGxlKHN0cnVjdCBjbGtfY29yZSAqY2xrKQog ewogCXN0cnVjdCBjbGtfaHdfb21hcCAqYzsKIApAQCAtNjE0LDEyICs2MTQsMTIgQEAgaW50IG9t YXAyX2Nsa19hbGxvd19pZGxlKHN0cnVjdCBjbGsgKmNsaykKICAqLwogdm9pZCBvbWFwMl9jbGtf ZW5hYmxlX2luaXRfY2xvY2tzKGNvbnN0IGNoYXIgKipjbGtfbmFtZXMsIHU4IG51bV9jbG9ja3Mp CiB7Ci0Jc3RydWN0IGNsayAqaW5pdF9jbGs7CisJc3RydWN0IGNsa19jb3JlICppbml0X2NsazsK IAlpbnQgaTsKIAogCWZvciAoaSA9IDA7IGkgPCBudW1fY2xvY2tzOyBpKyspIHsKLQkJaW5pdF9j bGsgPSBjbGtfZ2V0KE5VTEwsIGNsa19uYW1lc1tpXSk7Ci0JCWNsa19wcmVwYXJlX2VuYWJsZShp bml0X2Nsayk7CisJCWluaXRfY2xrID0gY2xrX3Byb3ZpZGVyX2dldChOVUxMLCBjbGtfbmFtZXNb aV0pOworCQljbGtfcHJvdmlkZXJfcHJlcGFyZV9lbmFibGUoaW5pdF9jbGspOwogCX0KIH0KIApA QCAtNjU1LDMxICs2NTUsMzEgQEAgdm9pZCBfX2luaXQgb21hcF9jbG9ja3NfcmVnaXN0ZXIoc3Ry dWN0IG9tYXBfY2xrIG9jbGtzW10sIGludCBjbnQpCiAgKiB0aGUgT1BQIGxheWVyLiAgWFhYIFRo aXMgaXMgaW50ZW5kZWQgdG8gYmUgaGFuZGxlZCBieSB0aGUgT1BQIGxheWVyCiAgKiBjb2RlIGlu IHRoZSBuZWFyIGZ1dHVyZSBhbmQgc2hvdWxkIGJlIHJlbW92ZWQgZnJvbSB0aGUgY2xvY2sgY29k ZS4KICAqIFJldHVybnMgLUVJTlZBTCBpZiAnbXB1cmF0ZScgaXMgemVybyBvciBpZiBjbGtfc2V0 X3JhdGUoKSByZWplY3RzCi0gKiB0aGUgcmF0ZSwgLUVOT0VOVCBpZiB0aGUgc3RydWN0IGNsayBy ZWZlcnJlZCB0byBieSBAbXB1cmF0ZV9ja19uYW1lCisgKiB0aGUgcmF0ZSwgLUVOT0VOVCBpZiB0 aGUgc3RydWN0IGNsa19jb3JlIHJlZmVycmVkIHRvIGJ5IEBtcHVyYXRlX2NrX25hbWUKICAqIGNh bm5vdCBiZSBmb3VuZCwgb3IgMCB1cG9uIHN1Y2Nlc3MuCiAgKi8KIGludCBfX2luaXQgb21hcDJf Y2xrX3N3aXRjaF9tcHVyYXRlX2F0X2Jvb3QoY29uc3QgY2hhciAqbXB1cmF0ZV9ja19uYW1lKQog ewotCXN0cnVjdCBjbGsgKm1wdXJhdGVfY2s7CisJc3RydWN0IGNsa19jb3JlICptcHVyYXRlX2Nr OwogCWludCByOwogCiAJaWYgKCFtcHVyYXRlKQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCW1wdXJh dGVfY2sgPSBjbGtfZ2V0KE5VTEwsIG1wdXJhdGVfY2tfbmFtZSk7CisJbXB1cmF0ZV9jayA9IGNs a19wcm92aWRlcl9nZXQoTlVMTCwgbXB1cmF0ZV9ja19uYW1lKTsKIAlpZiAoV0FSTihJU19FUlIo bXB1cmF0ZV9jayksICJGYWlsZWQgdG8gZ2V0ICVzLlxuIiwgbXB1cmF0ZV9ja19uYW1lKSkKIAkJ cmV0dXJuIC1FTk9FTlQ7CiAKLQlyID0gY2xrX3NldF9yYXRlKG1wdXJhdGVfY2ssIG1wdXJhdGUp OworCXIgPSBjbGtfcHJvdmlkZXJfc2V0X3JhdGUobXB1cmF0ZV9jaywgbXB1cmF0ZSk7CiAJaWYg KHIgPCAwKSB7CiAJCVdBUk4oMSwgImNsb2NrOiAlczogdW5hYmxlIHRvIHNldCBNUFUgcmF0ZSB0 byAlZDogJWRcbiIsCiAJCSAgICAgbXB1cmF0ZV9ja19uYW1lLCBtcHVyYXRlLCByKTsKLQkJY2xr X3B1dChtcHVyYXRlX2NrKTsKKwkJX19jbGtfcHV0KG1wdXJhdGVfY2spOwogCQlyZXR1cm4gLUVJ TlZBTDsKIAl9CiAKIAljYWxpYnJhdGVfZGVsYXkoKTsKLQljbGtfcHV0KG1wdXJhdGVfY2spOwor CV9fY2xrX3B1dChtcHVyYXRlX2NrKTsKIAogCXJldHVybiAwOwogfQpAQCAtNzAwLDI3ICs3MDAs MjcgQEAgdm9pZCBfX2luaXQgb21hcDJfY2xrX3ByaW50X25ld19yYXRlcyhjb25zdCBjaGFyICpo ZmNsa2luX2NrX25hbWUsCiAJCQkJICAgICAgY29uc3QgY2hhciAqY29yZV9ja19uYW1lLAogCQkJ CSAgICAgIGNvbnN0IGNoYXIgKm1wdV9ja19uYW1lKQogewotCXN0cnVjdCBjbGsgKmhmY2xraW5f Y2ssICpjb3JlX2NrLCAqbXB1X2NrOworCXN0cnVjdCBjbGtfY29yZSAqaGZjbGtpbl9jaywgKmNv cmVfY2ssICptcHVfY2s7CiAJdW5zaWduZWQgbG9uZyBoZmNsa2luX3JhdGU7CiAKLQltcHVfY2sg PSBjbGtfZ2V0KE5VTEwsIG1wdV9ja19uYW1lKTsKKwltcHVfY2sgPSBjbGtfcHJvdmlkZXJfZ2V0 KE5VTEwsIG1wdV9ja19uYW1lKTsKIAlpZiAoV0FSTihJU19FUlIobXB1X2NrKSwgImNsb2NrOiBm YWlsZWQgdG8gZ2V0ICVzLlxuIiwgbXB1X2NrX25hbWUpKQogCQlyZXR1cm47CiAKLQljb3JlX2Nr ID0gY2xrX2dldChOVUxMLCBjb3JlX2NrX25hbWUpOworCWNvcmVfY2sgPSBjbGtfcHJvdmlkZXJf Z2V0KE5VTEwsIGNvcmVfY2tfbmFtZSk7CiAJaWYgKFdBUk4oSVNfRVJSKGNvcmVfY2spLCAiY2xv Y2s6IGZhaWxlZCB0byBnZXQgJXMuXG4iLCBjb3JlX2NrX25hbWUpKQogCQlyZXR1cm47CiAKLQlo ZmNsa2luX2NrID0gY2xrX2dldChOVUxMLCBoZmNsa2luX2NrX25hbWUpOworCWhmY2xraW5fY2sg PSBjbGtfcHJvdmlkZXJfZ2V0KE5VTEwsIGhmY2xraW5fY2tfbmFtZSk7CiAJaWYgKFdBUk4oSVNf RVJSKGhmY2xraW5fY2spLCAiRmFpbGVkIHRvIGdldCAlcy5cbiIsIGhmY2xraW5fY2tfbmFtZSkp CiAJCXJldHVybjsKIAotCWhmY2xraW5fcmF0ZSA9IGNsa19nZXRfcmF0ZShoZmNsa2luX2NrKTsK KwloZmNsa2luX3JhdGUgPSBjbGtfcHJvdmlkZXJfZ2V0X3JhdGUoaGZjbGtpbl9jayk7CiAKIAlw cl9pbmZvKCJTd2l0Y2hlZCB0byBuZXcgY2xvY2tpbmcgcmF0ZSAoQ3J5c3RhbC9Db3JlL01QVSk6 ICVsZC4lMDFsZC8lbGQvJWxkIE1IelxuIiwKIAkJKGhmY2xraW5fcmF0ZSAvIDEwMDAwMDApLCAo KGhmY2xraW5fcmF0ZSAvIDEwMDAwMCkgJSAxMCksCi0JCShjbGtfZ2V0X3JhdGUoY29yZV9jaykg LyAxMDAwMDAwKSwKLQkJKGNsa19nZXRfcmF0ZShtcHVfY2spIC8gMTAwMDAwMCkpOworCQkoY2xr X3Byb3ZpZGVyX2dldF9yYXRlKGNvcmVfY2spIC8gMTAwMDAwMCksCisJCShjbGtfcHJvdmlkZXJf Z2V0X3JhdGUobXB1X2NrKSAvIDEwMDAwMDApKTsKIH0KIAogLyoqCmRpZmYgLS1naXQgYS9hcmNo L2FybS9tYWNoLW9tYXAyL2Nsb2NrLmggYi9hcmNoL2FybS9tYWNoLW9tYXAyL2Nsb2NrLmgKaW5k ZXggNDU5MmEyNy4uNzA2ODY4NCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbG9j ay5oCisrKyBiL2FyY2gvYXJtL21hY2gtb21hcDIvY2xvY2suaApAQCAtNDAsNyArNDAsNyBAQCBz dHJ1Y3Qgb21hcF9jbGsgewogc3RydWN0IGNsb2NrZG9tYWluOwogCiAjZGVmaW5lIERFRklORV9T VFJVQ1RfQ0xLKF9uYW1lLCBfcGFyZW50X2FycmF5X25hbWUsIF9jbGtvcHNfbmFtZSkJXAotCXN0 YXRpYyBzdHJ1Y3QgY2xrIF9uYW1lID0gewkJCQlcCisJc3RhdGljIHN0cnVjdCBjbGtfY29yZSBf bmFtZSA9IHsJCQkJXAogCQkubmFtZSA9ICNfbmFtZSwJCQkJCVwKIAkJLmh3ID0gJl9uYW1lIyNf aHcuaHcsCQkJCVwKIAkJLnBhcmVudF9uYW1lcyA9IF9wYXJlbnRfYXJyYXlfbmFtZSwJCVwKQEAg LTUwLDcgKzUwLDcgQEAgc3RydWN0IGNsb2NrZG9tYWluOwogCiAjZGVmaW5lIERFRklORV9TVFJV Q1RfQ0xLX0ZMQUdTKF9uYW1lLCBfcGFyZW50X2FycmF5X25hbWUsCVwKIAkJCQlfY2xrb3BzX25h bWUsIF9mbGFncykJCVwKLQlzdGF0aWMgc3RydWN0IGNsayBfbmFtZSA9IHsJCQkJXAorCXN0YXRp YyBzdHJ1Y3QgY2xrX2NvcmUgX25hbWUgPSB7CQkJCVwKIAkJLm5hbWUgPSAjX25hbWUsCQkJCQlc CiAJCS5odyA9ICZfbmFtZSMjX2h3Lmh3LAkJCQlcCiAJCS5wYXJlbnRfbmFtZXMgPSBfcGFyZW50 X2FycmF5X25hbWUsCQlcCkBAIC03MCw3ICs3MCw3IEBAIHN0cnVjdCBjbG9ja2RvbWFpbjsKICNk ZWZpbmUgREVGSU5FX0NMS19PTUFQX01VWChfbmFtZSwgX2Nsa2RtX25hbWUsIF9jbGtzZWwsCVwK IAkJCSAgICBfY2xrc2VsX3JlZywgX2Nsa3NlbF9tYXNrLAkJXAogCQkJICAgIF9wYXJlbnRfbmFt ZXMsIF9vcHMpCQlcCi0Jc3RhdGljIHN0cnVjdCBjbGsgX25hbWU7CQkJCVwKKwlzdGF0aWMgc3Ry dWN0IGNsa19jb3JlIF9uYW1lOwkJCQlcCiAJc3RhdGljIHN0cnVjdCBjbGtfaHdfb21hcCBfbmFt ZSMjX2h3ID0gewkJXAogCQkuaHcgPSB7CQkJCQkJXAogCQkJLmNsayA9ICZfbmFtZSwJCQkJXApA QCAtODYsNyArODYsNyBAQCBzdHJ1Y3QgY2xvY2tkb21haW47CiAJCQkJIF9jbGtzZWxfcmVnLCBf Y2xrc2VsX21hc2ssCVwKIAkJCQkgX2VuYWJsZV9yZWcsIF9lbmFibGVfYml0LAlcCiAJCQkJIF9o d29wcywgX3BhcmVudF9uYW1lcywgX29wcykJXAotCXN0YXRpYyBzdHJ1Y3QgY2xrIF9uYW1lOwkJ CQlcCisJc3RhdGljIHN0cnVjdCBjbGtfY29yZSBfbmFtZTsJCQkJXAogCXN0YXRpYyBzdHJ1Y3Qg Y2xrX2h3X29tYXAgX25hbWUjI19odyA9IHsJCVwKIAkJLmh3ID0gewkJCQkJCVwKIAkJCS5jbGsg PSAmX25hbWUsCQkJCVwKQEAgLTE0MiwxNCArMTQyLDE0IEBAIHN0cnVjdCBjbGtzZWxfcmF0ZSB7 CiAKIC8qKgogICogc3RydWN0IGNsa3NlbCAtIGF2YWlsYWJsZSBwYXJlbnQgY2xvY2tzLCBhbmQg YSBwb2ludGVyIHRvIHRoZWlyIGRpdmlzb3JzCi0gKiBAcGFyZW50OiBzdHJ1Y3QgY2xrICogdG8g YSBwb3NzaWJsZSBwYXJlbnQgY2xvY2sKKyAqIEBwYXJlbnQ6IHN0cnVjdCBjbGtfY29yZSAqIHRv IGEgcG9zc2libGUgcGFyZW50IGNsb2NrCiAgKiBAcmF0ZXM6IGF2YWlsYWJsZSBkaXZpc29ycyBm b3IgdGhpcyBwYXJlbnQgY2xvY2sKICAqCiAgKiBBIHN0cnVjdCBjbGtzZWwgaXMgYWx3YXlzIGFz c29jaWF0ZWQgd2l0aCBvbmUgb3IgbW9yZSBzdHJ1Y3QgY2xrcwogICogYW5kIG9uZSBvciBtb3Jl IHN0cnVjdCBjbGtzZWxfcmF0ZXMuCiAgKi8KIHN0cnVjdCBjbGtzZWwgewotCXN0cnVjdCBjbGsJ CSAqcGFyZW50OworCXN0cnVjdCBjbGtfY29yZQkJICpwYXJlbnQ7CiAJY29uc3Qgc3RydWN0IGNs a3NlbF9yYXRlICpyYXRlczsKIH07CiAKQEAgLTIwOCw4ICsyMDgsOCBAQCB2b2lkIG9tYXAyX2Ns a19kZmx0X2ZpbmRfaWRsZXN0KHN0cnVjdCBjbGtfaHdfb21hcCAqY2xrLAogCQkJCXZvaWQgX19p b21lbSAqKmlkbGVzdF9yZWcsCiAJCQkJdTggKmlkbGVzdF9iaXQsIHU4ICppZGxlc3RfdmFsKTsK IGludCBvbWFwMl9jbGtfZW5hYmxlX2F1dG9pZGxlX2FsbCh2b2lkKTsKLWludCBvbWFwMl9jbGtf YWxsb3dfaWRsZShzdHJ1Y3QgY2xrICpjbGspOwotaW50IG9tYXAyX2Nsa19kZW55X2lkbGUoc3Ry dWN0IGNsayAqY2xrKTsKK2ludCBvbWFwMl9jbGtfYWxsb3dfaWRsZShzdHJ1Y3QgY2xrX2NvcmUg KmNsayk7CitpbnQgb21hcDJfY2xrX2RlbnlfaWRsZShzdHJ1Y3QgY2xrX2NvcmUgKmNsayk7CiBp bnQgb21hcDJfY2xrX3N3aXRjaF9tcHVyYXRlX2F0X2Jvb3QoY29uc3QgY2hhciAqbXB1cmF0ZV9j a19uYW1lKTsKIHZvaWQgb21hcDJfY2xrX3ByaW50X25ld19yYXRlcyhjb25zdCBjaGFyICpoZmNs a2luX2NrX25hbWUsCiAJCQkgICAgICAgY29uc3QgY2hhciAqY29yZV9ja19uYW1lLApAQCAtMjQ3 LDcgKzI0Nyw3IEBAIGV4dGVybiBjb25zdCBzdHJ1Y3QgY2xrc2VsX3JhdGUgZ3B0XzMya19yYXRl c1tdOwogZXh0ZXJuIGNvbnN0IHN0cnVjdCBjbGtzZWxfcmF0ZSBncHRfc3lzX3JhdGVzW107CiBl eHRlcm4gY29uc3Qgc3RydWN0IGNsa3NlbF9yYXRlIGdmeF9sM19yYXRlc1tdOwogZXh0ZXJuIGNv bnN0IHN0cnVjdCBjbGtzZWxfcmF0ZSBkc3BfaWNrX3JhdGVzW107Ci1leHRlcm4gc3RydWN0IGNs ayBkdW1teV9jazsKK2V4dGVybiBzdHJ1Y3QgY2xrX2NvcmUgZHVtbXlfY2s7CiAKIGV4dGVybiBj b25zdCBzdHJ1Y3QgY2xrX2h3X29tYXBfb3BzIGNsa2h3b3BzX2ljbGtfd2FpdDsKIGV4dGVybiBj b25zdCBzdHJ1Y3QgY2xrX2h3X29tYXBfb3BzIGNsa2h3b3BzX3dhaXQ7CmRpZmYgLS1naXQgYS9h cmNoL2FybS9tYWNoLW9tYXAyL2Nsb2NrM3h4eC5jIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbG9j azN4eHguYwppbmRleCAwYjAyYjQxLi44ZDFiODQzIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNo LW9tYXAyL2Nsb2NrM3h4eC5jCisrKyBiL2FyY2gvYXJtL21hY2gtb21hcDIvY2xvY2szeHh4LmMK QEAgLTE4LDcgKzE4LDYgQEAKIAogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgogI2luY2x1ZGUg PGxpbnV4L2Vycm5vLmg+Ci0jaW5jbHVkZSA8bGludXgvY2xrLmg+CiAjaW5jbHVkZSA8bGludXgv aW8uaD4KIAogI2luY2x1ZGUgInNvYy5oIgpAQCAtMzcsNyArMzYsNyBAQAogI2RlZmluZSBEUExM NV9GUkVRX0ZPUl9VU0JIT1NUCQkxMjAwMDAwMDAKIAogLyogbmVlZGVkIGJ5IG9tYXAzX2NvcmVf ZHBsbF9tMl9zZXRfcmF0ZSgpICovCi1zdHJ1Y3QgY2xrICpzZHJjX2lja19wLCAqYXJtX2Zja19w Oworc3RydWN0IGNsa19jb3JlICpzZHJjX2lja19wLCAqYXJtX2Zja19wOwogaW50IG9tYXAzX2Rw bGw0X3NldF9yYXRlKHN0cnVjdCBjbGtfaHcgKmh3LCB1bnNpZ25lZCBsb25nIHJhdGUsCiAJCQkJ dW5zaWduZWQgbG9uZyBwYXJlbnRfcmF0ZSkKIHsKQEAgLTU2LDIwICs1NSwyMCBAQCBpbnQgb21h cDNfZHBsbDRfc2V0X3JhdGUoc3RydWN0IGNsa19odyAqaHcsIHVuc2lnbmVkIGxvbmcgcmF0ZSwK IAogdm9pZCBfX2luaXQgb21hcDNfY2xrX2xvY2tfZHBsbDUodm9pZCkKIHsKLQlzdHJ1Y3QgY2xr ICpkcGxsNV9jbGs7Ci0Jc3RydWN0IGNsayAqZHBsbDVfbTJfY2xrOworCXN0cnVjdCBjbGtfY29y ZSAqZHBsbDVfY2xrOworCXN0cnVjdCBjbGtfY29yZSAqZHBsbDVfbTJfY2xrOwogCi0JZHBsbDVf Y2xrID0gY2xrX2dldChOVUxMLCAiZHBsbDVfY2siKTsKLQljbGtfc2V0X3JhdGUoZHBsbDVfY2xr LCBEUExMNV9GUkVRX0ZPUl9VU0JIT1NUKTsKLQljbGtfcHJlcGFyZV9lbmFibGUoZHBsbDVfY2xr KTsKKwlkcGxsNV9jbGsgPSBjbGtfcHJvdmlkZXJfZ2V0KE5VTEwsICJkcGxsNV9jayIpOworCWNs a19wcm92aWRlcl9zZXRfcmF0ZShkcGxsNV9jbGssIERQTEw1X0ZSRVFfRk9SX1VTQkhPU1QpOwor CWNsa19wcm92aWRlcl9wcmVwYXJlX2VuYWJsZShkcGxsNV9jbGspOwogCiAJLyogUHJvZ3JhbSBk cGxsNV9tMl9jbGsgZGl2aWRlciBmb3Igbm8gZGl2aXNpb24gKi8KLQlkcGxsNV9tMl9jbGsgPSBj bGtfZ2V0KE5VTEwsICJkcGxsNV9tMl9jayIpOwotCWNsa19wcmVwYXJlX2VuYWJsZShkcGxsNV9t Ml9jbGspOwotCWNsa19zZXRfcmF0ZShkcGxsNV9tMl9jbGssIERQTEw1X0ZSRVFfRk9SX1VTQkhP U1QpOworCWRwbGw1X20yX2NsayA9IGNsa19wcm92aWRlcl9nZXQoTlVMTCwgImRwbGw1X20yX2Nr Iik7CisJY2xrX3Byb3ZpZGVyX3ByZXBhcmVfZW5hYmxlKGRwbGw1X20yX2Nsayk7CisJY2xrX3By b3ZpZGVyX3NldF9yYXRlKGRwbGw1X20yX2NsaywgRFBMTDVfRlJFUV9GT1JfVVNCSE9TVCk7CiAK LQljbGtfZGlzYWJsZV91bnByZXBhcmUoZHBsbDVfbTJfY2xrKTsKLQljbGtfZGlzYWJsZV91bnBy ZXBhcmUoZHBsbDVfY2xrKTsKKwljbGtfcHJvdmlkZXJfZGlzYWJsZV91bnByZXBhcmUoZHBsbDVf bTJfY2xrKTsKKwljbGtfcHJvdmlkZXJfZGlzYWJsZV91bnByZXBhcmUoZHBsbDVfY2xrKTsKIAly ZXR1cm47CiB9CiAKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvY2xvY2szeHh4Lmgg Yi9hcmNoL2FybS9tYWNoLW9tYXAyL2Nsb2NrM3h4eC5oCmluZGV4IDc4ZDlmNTYuLjA2M2ZiZjEg MTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtb21hcDIvY2xvY2szeHh4LmgKKysrIGIvYXJjaC9h cm0vbWFjaC1vbWFwMi9jbG9jazN4eHguaApAQCAtMTIsOCArMTIsOCBAQCBpbnQgb21hcDN4eHhf Y2xrX2luaXQodm9pZCk7CiBpbnQgb21hcDNfY29yZV9kcGxsX20yX3NldF9yYXRlKHN0cnVjdCBj bGtfaHcgKmNsaywgdW5zaWduZWQgbG9uZyByYXRlLAogCQkJCQl1bnNpZ25lZCBsb25nIHBhcmVu dF9yYXRlKTsKIAotZXh0ZXJuIHN0cnVjdCBjbGsgKnNkcmNfaWNrX3A7Ci1leHRlcm4gc3RydWN0 IGNsayAqYXJtX2Zja19wOworZXh0ZXJuIHN0cnVjdCBjbGtfY29yZSAqc2RyY19pY2tfcDsKK2V4 dGVybiBzdHJ1Y3QgY2xrX2NvcmUgKmFybV9mY2tfcDsKIAogZXh0ZXJuIGNvbnN0IHN0cnVjdCBj bGtvcHMgY2xrb3BzX25vbmNvcmVfZHBsbF9vcHM7CiAKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21h Y2gtb21hcDIvY2xvY2tfY29tbW9uX2RhdGEuYyBiL2FyY2gvYXJtL21hY2gtb21hcDIvY2xvY2tf Y29tbW9uX2RhdGEuYwppbmRleCBlZjRkMjFiLi4zMWUzZTc5IDEwMDY0NAotLS0gYS9hcmNoL2Fy bS9tYWNoLW9tYXAyL2Nsb2NrX2NvbW1vbl9kYXRhLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1vbWFw Mi9jbG9ja19jb21tb25fZGF0YS5jCkBAIC0xMTksNyArMTE5LDcgQEAgY29uc3Qgc3RydWN0IGNs a3NlbF9yYXRlIGRpdjMxXzF0bzMxX3JhdGVzW10gPSB7CiAKIHN0YXRpYyBzdHJ1Y3QgY2xrX29w cyBkdW1teV9ja19vcHMgPSB7fTsKIAotc3RydWN0IGNsayBkdW1teV9jayA9IHsKK3N0cnVjdCBj bGtfY29yZSBkdW1teV9jayA9IHsKIAkubmFtZSA9ICJkdW1teV9jbGsiLAogCS5vcHMgPSAmZHVt bXlfY2tfb3BzLAogCS5mbGFncyA9IENMS19JU19CQVNJQywKZGlmZiAtLWdpdCBhL2FyY2gvYXJt L21hY2gtb21hcDIvY2xvY2tkb21haW4uYyBiL2FyY2gvYXJtL21hY2gtb21hcDIvY2xvY2tkb21h aW4uYwppbmRleCAyZGEzYjVlLi5kZDg5MDk1IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9t YXAyL2Nsb2NrZG9tYWluLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbG9ja2RvbWFpbi5j CkBAIC0xOSw3ICsxOSw2IEBACiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KICNpbmNsdWRlIDxs aW51eC9zdHJpbmcuaD4KICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgotI2luY2x1ZGUgPGxpbnV4 L2Nsay5oPgogI2luY2x1ZGUgPGxpbnV4L2xpbWl0cy5oPgogI2luY2x1ZGUgPGxpbnV4L2Vyci5o PgogI2luY2x1ZGUgPGxpbnV4L2Nsay1wcm92aWRlci5oPgpAQCAtMTE0MSw3ICsxMTQwLDcgQEAg c3RhdGljIGludCBfY2xrZG1fY2xrX2h3bW9kX2VuYWJsZShzdHJ1Y3QgY2xvY2tkb21haW4gKmNs a2RtKQogLyoqCiAgKiBjbGtkbV9jbGtfZW5hYmxlIC0gYWRkIGFuIGVuYWJsZWQgZG93bnN0cmVh bSBjbG9jayB0byB0aGlzIGNsa2RtCiAgKiBAY2xrZG06IHN0cnVjdCBjbG9ja2RvbWFpbiAqCi0g KiBAY2xrOiBzdHJ1Y3QgY2xrICogb2YgdGhlIGVuYWJsZWQgZG93bnN0cmVhbSBjbG9jaworICog QGNsazogc3RydWN0IGNsa19jb3JlICogb2YgdGhlIGVuYWJsZWQgZG93bnN0cmVhbSBjbG9jawog ICoKICAqIEluY3JlbWVudCB0aGUgdXNlY291bnQgb2YgdGhlIGNsb2NrZG9tYWluIEBjbGtkbSBh bmQgZW5zdXJlIHRoYXQgaXQKICAqIGlzIGF3YWtlIGJlZm9yZSBAY2xrIGlzIGVuYWJsZWQuICBJ bnRlbmRlZCB0byBiZSBjYWxsZWQgYnkKQEAgLTExNTIsNyArMTE1MSw3IEBAIHN0YXRpYyBpbnQg X2Nsa2RtX2Nsa19od21vZF9lbmFibGUoc3RydWN0IGNsb2NrZG9tYWluICpjbGtkbSkKICAqIGJ5 IG9uLWNoaXAgcHJvY2Vzc29ycy4gIFJldHVybnMgLUVJTlZBTCBpZiBwYXNzZWQgbnVsbCBwb2lu dGVyczsKICAqIHJldHVybnMgMCB1cG9uIHN1Y2Nlc3Mgb3IgaWYgdGhlIGNsb2NrZG9tYWluIGlz IGluIGh3c3VwIGlkbGUgbW9kZS4KICAqLwotaW50IGNsa2RtX2Nsa19lbmFibGUoc3RydWN0IGNs b2NrZG9tYWluICpjbGtkbSwgc3RydWN0IGNsayAqY2xrKQoraW50IGNsa2RtX2Nsa19lbmFibGUo c3RydWN0IGNsb2NrZG9tYWluICpjbGtkbSwgc3RydWN0IGNsa19jb3JlICpjbGspCiB7CiAJLyoK IAkgKiBYWFggUmV3cml0ZSB0aGlzIGNvZGUgdG8gbWFpbnRhaW4gYSBsaXN0IG9mIGVuYWJsZWQK QEAgLTExNjgsNyArMTE2Nyw3IEBAIGludCBjbGtkbV9jbGtfZW5hYmxlKHN0cnVjdCBjbG9ja2Rv bWFpbiAqY2xrZG0sIHN0cnVjdCBjbGsgKmNsaykKIC8qKgogICogY2xrZG1fY2xrX2Rpc2FibGUg LSByZW1vdmUgYW4gZW5hYmxlZCBkb3duc3RyZWFtIGNsb2NrIGZyb20gdGhpcyBjbGtkbQogICog QGNsa2RtOiBzdHJ1Y3QgY2xvY2tkb21haW4gKgotICogQGNsazogc3RydWN0IGNsayAqIG9mIHRo ZSBkaXNhYmxlZCBkb3duc3RyZWFtIGNsb2NrCisgKiBAY2xrOiBzdHJ1Y3QgY2xrX2NvcmUgKiBv ZiB0aGUgZGlzYWJsZWQgZG93bnN0cmVhbSBjbG9jawogICoKICAqIERlY3JlbWVudCB0aGUgdXNl Y291bnQgb2YgdGhpcyBjbG9ja2RvbWFpbiBAY2xrZG0gd2hlbiBAY2xrIGlzCiAgKiBkaXNhYmxl ZC4gIEludGVuZGVkIHRvIGJlIGNhbGxlZCBieSBjbGtfZGlzYWJsZSgpIGNvZGUuICBJZiB0aGUK QEAgLTExNzgsNyArMTE3Nyw3IEBAIGludCBjbGtkbV9jbGtfZW5hYmxlKHN0cnVjdCBjbG9ja2Rv bWFpbiAqY2xrZG0sIHN0cnVjdCBjbGsgKmNsaykKICAqIHBvaW50ZXJzOyAtRVJBTkdFIGlmIHRo ZSBAY2xrZG0gdXNlY291bnQgdW5kZXJmbG93czsgb3IgcmV0dXJucyAwCiAgKiB1cG9uIHN1Y2Nl c3Mgb3IgaWYgdGhlIGNsb2NrZG9tYWluIGlzIGluIGh3c3VwIGlkbGUgbW9kZS4KICAqLwotaW50 IGNsa2RtX2Nsa19kaXNhYmxlKHN0cnVjdCBjbG9ja2RvbWFpbiAqY2xrZG0sIHN0cnVjdCBjbGsg KmNsaykKK2ludCBjbGtkbV9jbGtfZGlzYWJsZShzdHJ1Y3QgY2xvY2tkb21haW4gKmNsa2RtLCBz dHJ1Y3QgY2xrX2NvcmUgKmNsaykKIHsKIAlpZiAoIWNsa2RtIHx8ICFjbGsgfHwgIWFyY2hfY2xr ZG0gfHwgIWFyY2hfY2xrZG0tPmNsa2RtX2Nsa19kaXNhYmxlKQogCQlyZXR1cm4gLUVJTlZBTDsK ZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvY2xvY2tkb21haW4uaCBiL2FyY2gvYXJt L21hY2gtb21hcDIvY2xvY2tkb21haW4uaAppbmRleCA4MmMzN2IxLi5mMWEyY2FkIDEwMDY0NAot LS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL2Nsb2NrZG9tYWluLmgKKysrIGIvYXJjaC9hcm0vbWFj aC1vbWFwMi9jbG9ja2RvbWFpbi5oCkBAIC0yMDcsOCArMjA3LDggQEAgaW50IGNsa2RtX3dha2V1 cChzdHJ1Y3QgY2xvY2tkb21haW4gKmNsa2RtKTsKIGludCBjbGtkbV9zbGVlcF9ub2xvY2soc3Ry dWN0IGNsb2NrZG9tYWluICpjbGtkbSk7CiBpbnQgY2xrZG1fc2xlZXAoc3RydWN0IGNsb2NrZG9t YWluICpjbGtkbSk7CiAKLWludCBjbGtkbV9jbGtfZW5hYmxlKHN0cnVjdCBjbG9ja2RvbWFpbiAq Y2xrZG0sIHN0cnVjdCBjbGsgKmNsayk7Ci1pbnQgY2xrZG1fY2xrX2Rpc2FibGUoc3RydWN0IGNs b2NrZG9tYWluICpjbGtkbSwgc3RydWN0IGNsayAqY2xrKTsKK2ludCBjbGtkbV9jbGtfZW5hYmxl KHN0cnVjdCBjbG9ja2RvbWFpbiAqY2xrZG0sIHN0cnVjdCBjbGtfY29yZSAqY2xrKTsKK2ludCBj bGtkbV9jbGtfZGlzYWJsZShzdHJ1Y3QgY2xvY2tkb21haW4gKmNsa2RtLCBzdHJ1Y3QgY2xrX2Nv cmUgKmNsayk7CiBpbnQgY2xrZG1faHdtb2RfZW5hYmxlKHN0cnVjdCBjbG9ja2RvbWFpbiAqY2xr ZG0sIHN0cnVjdCBvbWFwX2h3bW9kICpvaCk7CiBpbnQgY2xrZG1faHdtb2RfZGlzYWJsZShzdHJ1 Y3QgY2xvY2tkb21haW4gKmNsa2RtLCBzdHJ1Y3Qgb21hcF9od21vZCAqb2gpOwogCmRpZmYgLS1n aXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL2Rpc3BsYXkuYyBiL2FyY2gvYXJtL21hY2gtb21hcDIv ZGlzcGxheS5jCmluZGV4IDBmOWU0NzkuLmZmMWY2YzEgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21h Y2gtb21hcDIvZGlzcGxheS5jCisrKyBiL2FyY2gvYXJtL21hY2gtb21hcDIvZGlzcGxheS5jCkBA IC0yMCw3ICsyMCw2IEBACiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4 L3BsYXRmb3JtX2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L2lvLmg+Ci0jaW5jbHVkZSA8bGlu dXgvY2xrLmg+CiAjaW5jbHVkZSA8bGludXgvY2xrLXByb3ZpZGVyLmg+CiAjaW5jbHVkZSA8bGlu dXgvZXJyLmg+CiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KQEAgLTUyNCw3ICs1MjMsNyBAQCBp bnQgb21hcF9kc3NfcmVzZXQoc3RydWN0IG9tYXBfaHdtb2QgKm9oKQogCiAJZm9yIChpID0gb2gt Pm9wdF9jbGtzX2NudCwgb2MgPSBvaC0+b3B0X2Nsa3M7IGkgPiAwOyBpLS0sIG9jKyspCiAJCWlm IChvYy0+X2NsaykKLQkJCWNsa19wcmVwYXJlX2VuYWJsZShvYy0+X2Nsayk7CisJCQljbGtfcHJv dmlkZXJfcHJlcGFyZV9lbmFibGUob2MtPl9jbGspOwogCiAJZGlzcGNfZGlzYWJsZV9vdXRwdXRz KCk7CiAKQEAgLTU1MSw3ICs1NTAsNyBAQCBpbnQgb21hcF9kc3NfcmVzZXQoc3RydWN0IG9tYXBf aHdtb2QgKm9oKQogCiAJZm9yIChpID0gb2gtPm9wdF9jbGtzX2NudCwgb2MgPSBvaC0+b3B0X2Ns a3M7IGkgPiAwOyBpLS0sIG9jKyspCiAJCWlmIChvYy0+X2NsaykKLQkJCWNsa19kaXNhYmxlX3Vu cHJlcGFyZShvYy0+X2Nsayk7CisJCQljbGtfcHJvdmlkZXJfZGlzYWJsZV91bnByZXBhcmUob2Mt Pl9jbGspOwogCiAJciA9IChjID09IE1BWF9NT0RVTEVfU09GVFJFU0VUX1dBSVQpID8gLUVUSU1F RE9VVCA6IDA7CiAKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvZHBsbDN4eHguYyBi L2FyY2gvYXJtL21hY2gtb21hcDIvZHBsbDN4eHguYwppbmRleCBhYzNkNzg5Li4zOWMzODYxIDEw MDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL2RwbGwzeHh4LmMKKysrIGIvYXJjaC9hcm0v bWFjaC1vbWFwMi9kcGxsM3h4eC5jCkBAIC0yMyw3ICsyMyw2IEBACiAjaW5jbHVkZSA8bGludXgv bGlzdC5oPgogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CiAjaW5jbHVkZSA8bGludXgvZGVsYXku aD4KLSNpbmNsdWRlIDxsaW51eC9jbGsuaD4KICNpbmNsdWRlIDxsaW51eC9pby5oPgogI2luY2x1 ZGUgPGxpbnV4L2JpdG9wcy5oPgogI2luY2x1ZGUgPGxpbnV4L2Nsa2Rldi5oPgpAQCAtMjg4LDcg KzI4Nyw3IEBAIHN0YXRpYyB2b2lkIF9sb29rdXBfc2RkaXYoc3RydWN0IGNsa19od19vbWFwICpj bGssIHU4ICpzZF9kaXYsIHUxNiBtLCB1OCBuKQogCiAvKgogICogX29tYXAzX25vbmNvcmVfZHBs bF9wcm9ncmFtIC0gc2V0IG5vbi1jb3JlIERQTEwgTSxOIHZhbHVlcyBkaXJlY3RseQotICogQGNs azoJc3RydWN0IGNsayAqIG9mIERQTEwgdG8gc2V0CisgKiBAY2xrOglzdHJ1Y3QgY2xrX2NvcmUg KiBvZiBEUExMIHRvIHNldAogICogQGZyZXFzZWw6CUZSRVFTRUwgdmFsdWUgdG8gc2V0CiAgKgog ICogUHJvZ3JhbSB0aGUgRFBMTCB3aXRoIHRoZSBsYXN0IE0sIE4gdmFsdWVzIGNhbGN1bGF0ZWQs IGFuZCB3YWl0IGZvcgpAQCAtNDEwLDcgKzQwOSw3IEBAIGludCBvbWFwM19ub25jb3JlX2RwbGxf ZW5hYmxlKHN0cnVjdCBjbGtfaHcgKmh3KQogCXN0cnVjdCBjbGtfaHdfb21hcCAqY2xrID0gdG9f Y2xrX2h3X29tYXAoaHcpOwogCWludCByOwogCXN0cnVjdCBkcGxsX2RhdGEgKmRkOwotCXN0cnVj dCBjbGsgKnBhcmVudDsKKwlzdHJ1Y3QgY2xrX2NvcmUgKnBhcmVudDsKIAogCWRkID0gY2xrLT5k cGxsX2RhdGE7CiAJaWYgKCFkZCkKQEAgLTQ2MSw3ICs0NjAsNyBAQCB2b2lkIG9tYXAzX25vbmNv cmVfZHBsbF9kaXNhYmxlKHN0cnVjdCBjbGtfaHcgKmh3KQogCiAvKioKICAqIG9tYXAzX25vbmNv cmVfZHBsbF9zZXRfcmF0ZSAtIHNldCBub24tY29yZSBEUExMIHJhdGUKLSAqIEBjbGs6IHN0cnVj dCBjbGsgKiBvZiBEUExMIHRvIHNldAorICogQGNsazogc3RydWN0IGNsa19jb3JlICogb2YgRFBM TCB0byBzZXQKICAqIEByYXRlOiByb3VuZGVkIHRhcmdldCByYXRlCiAgKgogICogU2V0IHRoZSBE UExMIENMS09VVCB0byB0aGUgdGFyZ2V0IHJhdGUuICBJZiB0aGUgRFBMTCBjYW4gZW50ZXIKQEAg LTQ3NCw3ICs0NzMsNyBAQCBpbnQgb21hcDNfbm9uY29yZV9kcGxsX3NldF9yYXRlKHN0cnVjdCBj bGtfaHcgKmh3LCB1bnNpZ25lZCBsb25nIHJhdGUsCiAJCQkJCXVuc2lnbmVkIGxvbmcgcGFyZW50 X3JhdGUpCiB7CiAJc3RydWN0IGNsa19od19vbWFwICpjbGsgPSB0b19jbGtfaHdfb21hcChodyk7 Ci0Jc3RydWN0IGNsayAqbmV3X3BhcmVudCA9IE5VTEw7CisJc3RydWN0IGNsa19jb3JlICpuZXdf cGFyZW50ID0gTlVMTDsKIAl1bnNpZ25lZCBsb25nIHJyYXRlOwogCXUxNiBmcmVxc2VsID0gMDsK IAlzdHJ1Y3QgZHBsbF9kYXRhICpkZDsKQEAgLTQ5MywxNSArNDkyLDE1IEBAIGludCBvbWFwM19u b25jb3JlX2RwbGxfc2V0X3JhdGUoc3RydWN0IGNsa19odyAqaHcsIHVuc2lnbmVkIGxvbmcgcmF0 ZSwKIAkJCSBfX2Z1bmNfXywgX19jbGtfZ2V0X25hbWUoaHctPmNsaykpOwogCiAJCV9fY2xrX3By ZXBhcmUoZGQtPmNsa19ieXBhc3MpOwotCQljbGtfZW5hYmxlKGRkLT5jbGtfYnlwYXNzKTsKKwkJ Y2xrX3Byb3ZpZGVyX2VuYWJsZShkZC0+Y2xrX2J5cGFzcyk7CiAJCXJldCA9IF9vbWFwM19ub25j b3JlX2RwbGxfYnlwYXNzKGNsayk7CiAJCWlmICghcmV0KQogCQkJbmV3X3BhcmVudCA9IGRkLT5j bGtfYnlwYXNzOwotCQljbGtfZGlzYWJsZShkZC0+Y2xrX2J5cGFzcyk7CisJCWNsa19wcm92aWRl cl9kaXNhYmxlKGRkLT5jbGtfYnlwYXNzKTsKIAkJX19jbGtfdW5wcmVwYXJlKGRkLT5jbGtfYnlw YXNzKTsKIAl9IGVsc2UgewogCQlfX2Nsa19wcmVwYXJlKGRkLT5jbGtfcmVmKTsKLQkJY2xrX2Vu YWJsZShkZC0+Y2xrX3JlZik7CisJCWNsa19wcm92aWRlcl9lbmFibGUoZGQtPmNsa19yZWYpOwog CiAJCS8qIFhYWCB0aGlzIGNoZWNrIGlzIHByb2JhYmx5IHBvaW50bGVzcyBpbiB0aGUgQ0NGIGNv bnRleHQgKi8KIAkJaWYgKGRkLT5sYXN0X3JvdW5kZWRfcmF0ZSAhPSByYXRlKSB7CkBAIC01MzAs NyArNTI5LDcgQEAgaW50IG9tYXAzX25vbmNvcmVfZHBsbF9zZXRfcmF0ZShzdHJ1Y3QgY2xrX2h3 ICpodywgdW5zaWduZWQgbG9uZyByYXRlLAogCQlyZXQgPSBvbWFwM19ub25jb3JlX2RwbGxfcHJv Z3JhbShjbGssIGZyZXFzZWwpOwogCQlpZiAoIXJldCkKIAkJCW5ld19wYXJlbnQgPSBkZC0+Y2xr X3JlZjsKLQkJY2xrX2Rpc2FibGUoZGQtPmNsa19yZWYpOworCQljbGtfcHJvdmlkZXJfZGlzYWJs ZShkZC0+Y2xrX3JlZik7CiAJCV9fY2xrX3VucHJlcGFyZShkZC0+Y2xrX3JlZik7CiAJfQogCS8q CkBAIC01NDAsNyArNTM5LDcgQEAgaW50IG9tYXAzX25vbmNvcmVfZHBsbF9zZXRfcmF0ZShzdHJ1 Y3QgY2xrX2h3ICpodywgdW5zaWduZWQgbG9uZyByYXRlLAogCSogc3R1ZmYgaXMgaW5oZXJpdGVk IGZvciBmcmVlCiAJKi8KIAotCWlmICghcmV0ICYmIGNsa19nZXRfcGFyZW50KGh3LT5jbGspICE9 IG5ld19wYXJlbnQpCisJaWYgKCFyZXQgJiYgY2xrX3Byb3ZpZGVyX2dldF9wYXJlbnQoaHctPmNs aykgIT0gbmV3X3BhcmVudCkKIAkJX19jbGtfcmVwYXJlbnQoaHctPmNsaywgbmV3X3BhcmVudCk7 CiAKIAlyZXR1cm4gMDsKQEAgLTU1MCwxMCArNTQ5LDEwIEBAIGludCBvbWFwM19ub25jb3JlX2Rw bGxfc2V0X3JhdGUoc3RydWN0IGNsa19odyAqaHcsIHVuc2lnbmVkIGxvbmcgcmF0ZSwKIAogLyoq CiAgKiBvbWFwM19kcGxsX2F1dG9pZGxlX3JlYWQgLSByZWFkIGEgRFBMTCdzIGF1dG9pZGxlIGJp dHMKLSAqIEBjbGs6IHN0cnVjdCBjbGsgKiBvZiB0aGUgRFBMTCB0byByZWFkCisgKiBAY2xrOiBz dHJ1Y3QgY2xrX2NvcmUgKiBvZiB0aGUgRFBMTCB0byByZWFkCiAgKgogICogUmV0dXJuIHRoZSBE UExMJ3MgYXV0b2lkbGUgYml0cywgc2hpZnRlZCBkb3duIHRvIGJpdCAwLiAgUmV0dXJucwotICog LUVJTlZBTCBpZiBwYXNzZWQgYSBudWxsIHBvaW50ZXIgb3IgaWYgdGhlIHN0cnVjdCBjbGsgZG9l cyBub3QKKyAqIC1FSU5WQUwgaWYgcGFzc2VkIGEgbnVsbCBwb2ludGVyIG9yIGlmIHRoZSBzdHJ1 Y3QgY2xrX2NvcmUgZG9lcyBub3QKICAqIGFwcGVhciB0byByZWZlciB0byBhIERQTEwuCiAgKi8K IHUzMiBvbWFwM19kcGxsX2F1dG9pZGxlX3JlYWQoc3RydWN0IGNsa19od19vbWFwICpjbGspCkBA IC01NzgsNyArNTc3LDcgQEAgdTMyIG9tYXAzX2RwbGxfYXV0b2lkbGVfcmVhZChzdHJ1Y3QgY2xr X2h3X29tYXAgKmNsaykKIAogLyoqCiAgKiBvbWFwM19kcGxsX2FsbG93X2lkbGUgLSBlbmFibGUg RFBMTCBhdXRvaWRsZSBiaXRzCi0gKiBAY2xrOiBzdHJ1Y3QgY2xrICogb2YgdGhlIERQTEwgdG8g b3BlcmF0ZSBvbgorICogQGNsazogc3RydWN0IGNsa19jb3JlICogb2YgdGhlIERQTEwgdG8gb3Bl cmF0ZSBvbgogICoKICAqIEVuYWJsZSBEUExMIGF1dG9tYXRpYyBpZGxlIGNvbnRyb2wuICBUaGlz IGF1dG9tYXRpYyBpZGxlIG1vZGUKICAqIHN3aXRjaGluZyB0YWtlcyBlZmZlY3Qgb25seSB3aGVu IHRoZSBEUExMIGlzIGxvY2tlZCwgYXQgbGVhc3Qgb24KQEAgLTYxMiw3ICs2MTEsNyBAQCB2b2lk IG9tYXAzX2RwbGxfYWxsb3dfaWRsZShzdHJ1Y3QgY2xrX2h3X29tYXAgKmNsaykKIAogLyoqCiAg KiBvbWFwM19kcGxsX2RlbnlfaWRsZSAtIHByZXZlbnQgRFBMTCBmcm9tIGF1dG9tYXRpY2FsbHkg aWRsaW5nCi0gKiBAY2xrOiBzdHJ1Y3QgY2xrICogb2YgdGhlIERQTEwgdG8gb3BlcmF0ZSBvbgor ICogQGNsazogc3RydWN0IGNsa19jb3JlICogb2YgdGhlIERQTEwgdG8gb3BlcmF0ZSBvbgogICoK ICAqIERpc2FibGUgRFBMTCBhdXRvbWF0aWMgaWRsZSBjb250cm9sLiAgTm8gcmV0dXJuIHZhbHVl LgogICovCkBAIC02NDIsNyArNjQxLDcgQEAgdm9pZCBvbWFwM19kcGxsX2RlbnlfaWRsZShzdHJ1 Y3QgY2xrX2h3X29tYXAgKmNsaykKIHN0YXRpYyBzdHJ1Y3QgY2xrX2h3X29tYXAgKm9tYXAzX2Zp bmRfY2xrb3V0eDJfZHBsbChzdHJ1Y3QgY2xrX2h3ICpodykKIHsKIAlzdHJ1Y3QgY2xrX2h3X29t YXAgKnBjbGsgPSBOVUxMOwotCXN0cnVjdCBjbGsgKnBhcmVudDsKKwlzdHJ1Y3QgY2xrX2NvcmUg KnBhcmVudDsKIAogCS8qIFdhbGsgdXAgdGhlIHBhcmVudHMgb2YgY2xrLCBsb29raW5nIGZvciBh IERQTEwgKi8KIAlkbyB7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL2RwbGw0NHh4 LmMgYi9hcmNoL2FybS9tYWNoLW9tYXAyL2RwbGw0NHh4LmMKaW5kZXggNDYxM2YxZS4uNzI2YjI1 NCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9kcGxsNDR4eC5jCisrKyBiL2FyY2gv YXJtL21hY2gtb21hcDIvZHBsbDQ0eHguYwpAQCAtMTEsNyArMTEsNiBAQAogCiAjaW5jbHVkZSA8 bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KLSNpbmNsdWRlIDxsaW51 eC9jbGsuaD4KICNpbmNsdWRlIDxsaW51eC9pby5oPgogI2luY2x1ZGUgPGxpbnV4L2JpdG9wcy5o PgogCkBAIC0xMjQsNyArMTIzLDcgQEAgc3RhdGljIHZvaWQgb21hcDRfZHBsbF9scG1vZGVfcmVj YWxjKHN0cnVjdCBkcGxsX2RhdGEgKmRkKQogCiAvKioKICAqIG9tYXA0X2RwbGxfcmVnbTR4ZW5f cmVjYWxjIC0gY29tcHV0ZSBEUExMIHJhdGUsIGNvbnNpZGVyaW5nIFJFR000WEVOIGJpdAotICog QGNsazogc3RydWN0IGNsayAqIG9mIHRoZSBEUExMIHRvIGNvbXB1dGUgdGhlIHJhdGUgZm9yCisg KiBAY2xrOiBzdHJ1Y3QgY2xrX2NvcmUgKiBvZiB0aGUgRFBMTCB0byBjb21wdXRlIHRoZSByYXRl IGZvcgogICoKICAqIENvbXB1dGUgdGhlIG91dHB1dCByYXRlIGZvciB0aGUgT01BUDQgRFBMTCBy ZXByZXNlbnRlZCBieSBAY2xrLgogICogVGFrZXMgdGhlIFJFR000WEVOIGJpdCBpbnRvIGNvbnNp ZGVyYXRpb24sIHdoaWNoIGlzIG5lZWRlZCBmb3IgdGhlCkBAIC0xNTYsNyArMTU1LDcgQEAgdW5z aWduZWQgbG9uZyBvbWFwNF9kcGxsX3JlZ200eGVuX3JlY2FsYyhzdHJ1Y3QgY2xrX2h3ICpodywK IAogLyoqCiAgKiBvbWFwNF9kcGxsX3JlZ200eGVuX3JvdW5kX3JhdGUgLSByb3VuZCBEUExMIHJh dGUsIGNvbnNpZGVyaW5nIFJFR000WEVOIGJpdAotICogQGNsazogc3RydWN0IGNsayAqIG9mIHRo ZSBEUExMIHRvIHJvdW5kIGEgcmF0ZSBmb3IKKyAqIEBjbGs6IHN0cnVjdCBjbGtfY29yZSAqIG9m IHRoZSBEUExMIHRvIHJvdW5kIGEgcmF0ZSBmb3IKICAqIEB0YXJnZXRfcmF0ZTogdGhlIGRlc2ly ZWQgcmF0ZSBvZiB0aGUgRFBMTAogICoKICAqIENvbXB1dGUgdGhlIHJhdGUgdGhhdCB3b3VsZCBi ZSBwcm9ncmFtbWVkIGludG8gdGhlIERQTEwgaGFyZHdhcmUKZGlmZiAtLWdpdCBhL2FyY2gvYXJt L21hY2gtb21hcDIvbWNic3AuYyBiL2FyY2gvYXJtL21hY2gtb21hcDIvbWNic3AuYwppbmRleCBi NGFjM2FmLi4xNDI0YzkwIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL21jYnNwLmMK KysrIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9tY2JzcC5jCkBAIC0xMiw3ICsxMiw2IEBACiAgKi8K ICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+Ci0jaW5j bHVkZSA8bGludXgvY2xrLmg+CiAjaW5jbHVkZSA8bGludXgvZXJyLmg+CiAjaW5jbHVkZSA8bGlu dXgvaW8uaD4KICNpbmNsdWRlIDxsaW51eC9vZi5oPgpAQCAtMzQsNyArMzMsNyBAQAogI2luY2x1 ZGUgImNtM3h4eC5oIgogI2luY2x1ZGUgImNtLXJlZ2JpdHMtMzR4eC5oIgogCi1zdGF0aWMgc3Ry dWN0IGNsayAqbWNic3BfaWNsa3NbNV07CitzdGF0aWMgc3RydWN0IGNsa19jb3JlICptY2JzcF9p Y2xrc1s1XTsKIAogc3RhdGljIGludCBvbWFwM19lbmFibGVfc3RfY2xvY2sodW5zaWduZWQgaW50 IGlkLCBib29sIGVuYWJsZSkKIHsKQEAgLTk4LDcgKzk3LDcgQEAgc3RhdGljIGludCBfX2luaXQg b21hcF9pbml0X21jYnNwKHN0cnVjdCBvbWFwX2h3bW9kICpvaCwgdm9pZCAqdW51c2VkKQogCQko c3RydWN0IG9tYXBfbWNic3BfZGV2X2F0dHIgKikob2gtPmRldl9hdHRyKSktPnNpZGV0b25lKTsK IAkJcGRhdGEtPmVuYWJsZV9zdF9jbG9jayA9IG9tYXAzX2VuYWJsZV9zdF9jbG9jazsKIAkJc3By aW50ZihjbGtfbmFtZSwgIm1jYnNwJWRfaWNrIiwgaWQpOwotCQltY2JzcF9pY2xrc1tpZF0gPSBj bGtfZ2V0KE5VTEwsIGNsa19uYW1lKTsKKwkJbWNic3BfaWNsa3NbaWRdID0gY2xrX3Byb3ZpZGVy X2dldChOVUxMLCBjbGtfbmFtZSk7CiAJCWNvdW50Kys7CiAJfQogCXBkZXYgPSBvbWFwX2Rldmlj ZV9idWlsZF9zcyhuYW1lLCBpZCwgb2hfZGV2aWNlLCBjb3VudCwgcGRhdGEsCmRpZmYgLS1naXQg YS9hcmNoL2FybS9tYWNoLW9tYXAyL29tYXBfZGV2aWNlLmMgYi9hcmNoL2FybS9tYWNoLW9tYXAy L29tYXBfZGV2aWNlLmMKaW5kZXggZjEzOGE2Mi4uYzUzODZhNCAxMDA2NDQKLS0tIGEvYXJjaC9h cm0vbWFjaC1vbWFwMi9vbWFwX2RldmljZS5jCisrKyBiL2FyY2gvYXJtL21hY2gtb21hcDIvb21h cF9kZXZpY2UuYwpAQCAtMzAsNyArMzAsNiBAQAogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KICNp bmNsdWRlIDxsaW51eC9lcnIuaD4KICNpbmNsdWRlIDxsaW51eC9pby5oPgotI2luY2x1ZGUgPGxp bnV4L2Nsay5oPgogI2luY2x1ZGUgPGxpbnV4L2Nsa2Rldi5oPgogI2luY2x1ZGUgPGxpbnV4L2Ns ay1wcm92aWRlci5oPgogI2luY2x1ZGUgPGxpbnV4L3BtX3J1bnRpbWUuaD4KQEAgLTQ3LDcgKzQ2 LDcgQEAKIHN0YXRpYyB2b2lkIF9hZGRfY2xrZGV2KHN0cnVjdCBvbWFwX2RldmljZSAqb2QsIGNv bnN0IGNoYXIgKmNsa19hbGlhcywKIAkJICAgICAgIGNvbnN0IGNoYXIgKmNsa19uYW1lKQogewot CXN0cnVjdCBjbGsgKnI7CisJc3RydWN0IGNsa19jb3JlICpyOwogCXN0cnVjdCBjbGtfbG9va3Vw ICpsOwogCiAJaWYgKCFjbGtfYWxpYXMgfHwgIWNsa19uYW1lKQpAQCAtNTUsMTUgKzU0LDE1IEBA IHN0YXRpYyB2b2lkIF9hZGRfY2xrZGV2KHN0cnVjdCBvbWFwX2RldmljZSAqb2QsIGNvbnN0IGNo YXIgKmNsa19hbGlhcywKIAogCWRldl9kYmcoJm9kLT5wZGV2LT5kZXYsICJDcmVhdGluZyAlcyAt PiAlc1xuIiwgY2xrX2FsaWFzLCBjbGtfbmFtZSk7CiAKLQlyID0gY2xrX2dldF9zeXMoZGV2X25h bWUoJm9kLT5wZGV2LT5kZXYpLCBjbGtfYWxpYXMpOworCXIgPSBjbGtfcHJvdmlkZXJfZ2V0X3N5 cyhkZXZfbmFtZSgmb2QtPnBkZXYtPmRldiksIGNsa19hbGlhcyk7CiAJaWYgKCFJU19FUlIocikp IHsKIAkJZGV2X2RiZygmb2QtPnBkZXYtPmRldiwKIAkJCSAiYWxpYXMgJXMgYWxyZWFkeSBleGlz dHNcbiIsIGNsa19hbGlhcyk7Ci0JCWNsa19wdXQocik7CisJCV9fY2xrX3B1dChyKTsKIAkJcmV0 dXJuOwogCX0KIAotCXIgPSBjbGtfZ2V0KE5VTEwsIGNsa19uYW1lKTsKKwlyID0gY2xrX3Byb3Zp ZGVyX2dldChOVUxMLCBjbGtfbmFtZSk7CiAJaWYgKElTX0VSUihyKSkgewogCQlkZXZfZXJyKCZv ZC0+cGRldi0+ZGV2LAogCQkJImNsa19nZXQgZm9yICVzIGZhaWxlZFxuIiwgY2xrX25hbWUpOwpk aWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9vbWFwX2h3bW9kLmMgYi9hcmNoL2FybS9t YWNoLW9tYXAyL29tYXBfaHdtb2QuYwppbmRleCA4ZmQ4N2EzLi5jNjFiMzkyIDEwMDY0NAotLS0g YS9hcmNoL2FybS9tYWNoLW9tYXAyL29tYXBfaHdtb2QuYworKysgYi9hcmNoL2FybS9tYWNoLW9t YXAyL29tYXBfaHdtb2QuYwpAQCAtNzUzLDcgKzc1Myw3IEBAIHN0YXRpYyBpbnQgX2RlbF9pbml0 aWF0b3JfZGVwKHN0cnVjdCBvbWFwX2h3bW9kICpvaCwgc3RydWN0IG9tYXBfaHdtb2QgKmluaXRf b2gpCiB9CiAKIC8qKgotICogX2luaXRfbWFpbl9jbGsgLSBnZXQgYSBzdHJ1Y3QgY2xrICogZm9y IHRoZSB0aGUgaHdtb2QncyBtYWluIGZ1bmN0aW9uYWwgY2xrCisgKiBfaW5pdF9tYWluX2NsayAt IGdldCBhIHN0cnVjdCBjbGtfY29yZSAqIGZvciB0aGUgdGhlIGh3bW9kJ3MgbWFpbiBmdW5jdGlv bmFsIGNsawogICogQG9oOiBzdHJ1Y3Qgb21hcF9od21vZCAqCiAgKgogICogQ2FsbGVkIGZyb20g X2luaXRfY2xvY2tzKCkuICBQb3B1bGF0ZXMgdGhlIEBvaCBfY2xrIChtYWluCkBAIC03NjcsNyAr NzY3LDcgQEAgc3RhdGljIGludCBfaW5pdF9tYWluX2NsayhzdHJ1Y3Qgb21hcF9od21vZCAqb2gp CiAJaWYgKCFvaC0+bWFpbl9jbGspCiAJCXJldHVybiAwOwogCi0Jb2gtPl9jbGsgPSBjbGtfZ2V0 KE5VTEwsIG9oLT5tYWluX2Nsayk7CisJb2gtPl9jbGsgPSBjbGtfcHJvdmlkZXJfZ2V0KE5VTEws IG9oLT5tYWluX2Nsayk7CiAJaWYgKElTX0VSUihvaC0+X2NsaykpIHsKIAkJcHJfd2FybmluZygi b21hcF9od21vZDogJXM6IGNhbm5vdCBjbGtfZ2V0IG1haW5fY2xrICVzXG4iLAogCQkJICAgb2gt Pm5hbWUsIG9oLT5tYWluX2Nsayk7CkBAIC03ODEsNyArNzgxLDcgQEAgc3RhdGljIGludCBfaW5p dF9tYWluX2NsayhzdHJ1Y3Qgb21hcF9od21vZCAqb2gpCiAJICogc29tZSBwb2ludCB3aGVyZSBz dWJzeXN0ZW1zIGxpa2UgaTJjIGFuZCBwbWljIGJlY29tZQogCSAqIGF2YWlsYWJsZS4KIAkgKi8K LQljbGtfcHJlcGFyZShvaC0+X2Nsayk7CisJY2xrX3Byb3ZpZGVyX3ByZXBhcmUob2gtPl9jbGsp OwogCiAJaWYgKCFfZ2V0X2Nsa2RtKG9oKSkKIAkJcHJfZGVidWcoIm9tYXBfaHdtb2Q6ICVzOiBt aXNzaW5nIGNsb2NrZG9tYWluIGZvciAlcy5cbiIsCkBAIC03OTEsNyArNzkxLDcgQEAgc3RhdGlj IGludCBfaW5pdF9tYWluX2NsayhzdHJ1Y3Qgb21hcF9od21vZCAqb2gpCiB9CiAKIC8qKgotICog X2luaXRfaW50ZXJmYWNlX2Nsa3MgLSBnZXQgYSBzdHJ1Y3QgY2xrICogZm9yIHRoZSB0aGUgaHdt b2QncyBpbnRlcmZhY2UgY2xrcworICogX2luaXRfaW50ZXJmYWNlX2Nsa3MgLSBnZXQgYSBzdHJ1 Y3QgY2xrX2NvcmUgKiBmb3IgdGhlIHRoZSBod21vZCdzIGludGVyZmFjZSBjbGtzCiAgKiBAb2g6 IHN0cnVjdCBvbWFwX2h3bW9kICoKICAqCiAgKiBDYWxsZWQgZnJvbSBfaW5pdF9jbG9ja3MoKS4g IFBvcHVsYXRlcyB0aGUgQG9oIE9DUCBzbGF2ZSBpbnRlcmZhY2UKQEAgLTgwMSw3ICs4MDEsNyBA QCBzdGF0aWMgaW50IF9pbml0X2ludGVyZmFjZV9jbGtzKHN0cnVjdCBvbWFwX2h3bW9kICpvaCkK IHsKIAlzdHJ1Y3Qgb21hcF9od21vZF9vY3BfaWYgKm9zOwogCXN0cnVjdCBsaXN0X2hlYWQgKnA7 Ci0Jc3RydWN0IGNsayAqYzsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmM7CiAJaW50IGkgPSAwOwogCWlu dCByZXQgPSAwOwogCkBAIC04MTIsNyArODEyLDcgQEAgc3RhdGljIGludCBfaW5pdF9pbnRlcmZh Y2VfY2xrcyhzdHJ1Y3Qgb21hcF9od21vZCAqb2gpCiAJCWlmICghb3MtPmNsaykKIAkJCWNvbnRp bnVlOwogCi0JCWMgPSBjbGtfZ2V0KE5VTEwsIG9zLT5jbGspOworCQljID0gY2xrX3Byb3ZpZGVy X2dldChOVUxMLCBvcy0+Y2xrKTsKIAkJaWYgKElTX0VSUihjKSkgewogCQkJcHJfd2FybmluZygi b21hcF9od21vZDogJXM6IGNhbm5vdCBjbGtfZ2V0IGludGVyZmFjZV9jbGsgJXNcbiIsCiAJCQkJ ICAgb2gtPm5hbWUsIG9zLT5jbGspOwpAQCAtODI4LDE0ICs4MjgsMTQgQEAgc3RhdGljIGludCBf aW5pdF9pbnRlcmZhY2VfY2xrcyhzdHJ1Y3Qgb21hcF9od21vZCAqb2gpCiAJCSAqIHNvbWUgcG9p bnQgd2hlcmUgc3Vic3lzdGVtcyBsaWtlIGkyYyBhbmQgcG1pYyBiZWNvbWUKIAkJICogYXZhaWxh YmxlLgogCQkgKi8KLQkJY2xrX3ByZXBhcmUob3MtPl9jbGspOworCQljbGtfcHJvdmlkZXJfcHJl cGFyZShvcy0+X2Nsayk7CiAJfQogCiAJcmV0dXJuIHJldDsKIH0KIAogLyoqCi0gKiBfaW5pdF9v cHRfY2xrIC0gZ2V0IGEgc3RydWN0IGNsayAqIGZvciB0aGUgdGhlIGh3bW9kJ3Mgb3B0aW9uYWwg Y2xvY2tzCisgKiBfaW5pdF9vcHRfY2xrIC0gZ2V0IGEgc3RydWN0IGNsa19jb3JlICogZm9yIHRo ZSB0aGUgaHdtb2QncyBvcHRpb25hbCBjbG9ja3MKICAqIEBvaDogc3RydWN0IG9tYXBfaHdtb2Qg KgogICoKICAqIENhbGxlZCBmcm9tIF9pbml0X2Nsb2NrcygpLiAgUG9wdWxhdGVzIHRoZSBAb2gg b21hcF9od21vZF9vcHRfY2xrCkBAIC04NDQsMTIgKzg0NCwxMiBAQCBzdGF0aWMgaW50IF9pbml0 X2ludGVyZmFjZV9jbGtzKHN0cnVjdCBvbWFwX2h3bW9kICpvaCkKIHN0YXRpYyBpbnQgX2luaXRf b3B0X2Nsa3Moc3RydWN0IG9tYXBfaHdtb2QgKm9oKQogewogCXN0cnVjdCBvbWFwX2h3bW9kX29w dF9jbGsgKm9jOwotCXN0cnVjdCBjbGsgKmM7CisJc3RydWN0IGNsa19jb3JlICpjOwogCWludCBp OwogCWludCByZXQgPSAwOwogCiAJZm9yIChpID0gb2gtPm9wdF9jbGtzX2NudCwgb2MgPSBvaC0+ b3B0X2Nsa3M7IGkgPiAwOyBpLS0sIG9jKyspIHsKLQkJYyA9IGNsa19nZXQoTlVMTCwgb2MtPmNs ayk7CisJCWMgPSBjbGtfcHJvdmlkZXJfZ2V0KE5VTEwsIG9jLT5jbGspOwogCQlpZiAoSVNfRVJS KGMpKSB7CiAJCQlwcl93YXJuaW5nKCJvbWFwX2h3bW9kOiAlczogY2Fubm90IGNsa19nZXQgb3B0 X2NsayAlc1xuIiwKIAkJCQkgICBvaC0+bmFtZSwgb2MtPmNsayk7CkBAIC04NjUsNyArODY1LDcg QEAgc3RhdGljIGludCBfaW5pdF9vcHRfY2xrcyhzdHJ1Y3Qgb21hcF9od21vZCAqb2gpCiAJCSAq IHNvbWUgcG9pbnQgd2hlcmUgc3Vic3lzdGVtcyBsaWtlIGkyYyBhbmQgcG1pYyBiZWNvbWUKIAkJ ICogYXZhaWxhYmxlLgogCQkgKi8KLQkJY2xrX3ByZXBhcmUob2MtPl9jbGspOworCQljbGtfcHJv dmlkZXJfcHJlcGFyZShvYy0+X2Nsayk7CiAJfQogCiAJcmV0dXJuIHJldDsKQEAgLTg4Nyw3ICs4 ODcsNyBAQCBzdGF0aWMgaW50IF9lbmFibGVfY2xvY2tzKHN0cnVjdCBvbWFwX2h3bW9kICpvaCkK IAlwcl9kZWJ1Zygib21hcF9od21vZDogJXM6IGVuYWJsaW5nIGNsb2Nrc1xuIiwgb2gtPm5hbWUp OwogCiAJaWYgKG9oLT5fY2xrKQotCQljbGtfZW5hYmxlKG9oLT5fY2xrKTsKKwkJY2xrX3Byb3Zp ZGVyX2VuYWJsZShvaC0+X2Nsayk7CiAKIAlwID0gb2gtPnNsYXZlX3BvcnRzLm5leHQ7CiAKQEAg LTg5NSw3ICs4OTUsNyBAQCBzdGF0aWMgaW50IF9lbmFibGVfY2xvY2tzKHN0cnVjdCBvbWFwX2h3 bW9kICpvaCkKIAkJb3MgPSBfZmV0Y2hfbmV4dF9vY3BfaWYoJnAsICZpKTsKIAogCQlpZiAob3Mt Pl9jbGsgJiYgKG9zLT5mbGFncyAmIE9DUElGX1NXU1VQX0lETEUpKQotCQkJY2xrX2VuYWJsZShv cy0+X2Nsayk7CisJCQljbGtfcHJvdmlkZXJfZW5hYmxlKG9zLT5fY2xrKTsKIAl9CiAKIAkvKiBU aGUgb3B0IGNsb2NrcyBhcmUgY29udHJvbGxlZCBieSB0aGUgZGV2aWNlIGRyaXZlci4gKi8KQEAg LTkxOCw3ICs5MTgsNyBAQCBzdGF0aWMgaW50IF9kaXNhYmxlX2Nsb2NrcyhzdHJ1Y3Qgb21hcF9o d21vZCAqb2gpCiAJcHJfZGVidWcoIm9tYXBfaHdtb2Q6ICVzOiBkaXNhYmxpbmcgY2xvY2tzXG4i LCBvaC0+bmFtZSk7CiAKIAlpZiAob2gtPl9jbGspCi0JCWNsa19kaXNhYmxlKG9oLT5fY2xrKTsK KwkJY2xrX3Byb3ZpZGVyX2Rpc2FibGUob2gtPl9jbGspOwogCiAJcCA9IG9oLT5zbGF2ZV9wb3J0 cy5uZXh0OwogCkBAIC05MjYsNyArOTI2LDcgQEAgc3RhdGljIGludCBfZGlzYWJsZV9jbG9ja3Mo c3RydWN0IG9tYXBfaHdtb2QgKm9oKQogCQlvcyA9IF9mZXRjaF9uZXh0X29jcF9pZigmcCwgJmkp OwogCiAJCWlmIChvcy0+X2NsayAmJiAob3MtPmZsYWdzICYgT0NQSUZfU1dTVVBfSURMRSkpCi0J CQljbGtfZGlzYWJsZShvcy0+X2Nsayk7CisJCQljbGtfcHJvdmlkZXJfZGlzYWJsZShvcy0+X2Ns ayk7CiAJfQogCiAJLyogVGhlIG9wdCBjbG9ja3MgYXJlIGNvbnRyb2xsZWQgYnkgdGhlIGRldmlj ZSBkcml2ZXIuICovCkBAIC05NDUsNyArOTQ1LDcgQEAgc3RhdGljIHZvaWQgX2VuYWJsZV9vcHRp b25hbF9jbG9ja3Moc3RydWN0IG9tYXBfaHdtb2QgKm9oKQogCQlpZiAob2MtPl9jbGspIHsKIAkJ CXByX2RlYnVnKCJvbWFwX2h3bW9kOiBlbmFibGUgJXM6JXNcbiIsIG9jLT5yb2xlLAogCQkJCSBf X2Nsa19nZXRfbmFtZShvYy0+X2NsaykpOwotCQkJY2xrX2VuYWJsZShvYy0+X2Nsayk7CisJCQlj bGtfcHJvdmlkZXJfZW5hYmxlKG9jLT5fY2xrKTsKIAkJfQogfQogCkBAIC05NjAsNyArOTYwLDcg QEAgc3RhdGljIHZvaWQgX2Rpc2FibGVfb3B0aW9uYWxfY2xvY2tzKHN0cnVjdCBvbWFwX2h3bW9k ICpvaCkKIAkJaWYgKG9jLT5fY2xrKSB7CiAJCQlwcl9kZWJ1Zygib21hcF9od21vZDogZGlzYWJs ZSAlczolc1xuIiwgb2MtPnJvbGUsCiAJCQkJIF9fY2xrX2dldF9uYW1lKG9jLT5fY2xrKSk7Ci0J CQljbGtfZGlzYWJsZShvYy0+X2Nsayk7CisJCQljbGtfcHJvdmlkZXJfZGlzYWJsZShvYy0+X2Ns ayk7CiAJCX0KIH0KIApAQCAtMjU4OSw3ICsyNTg5LDcgQEAgc3RhdGljIHZvaWQgX19pbml0IF9z ZXR1cF9pY2xrX2F1dG9pZGxlKHN0cnVjdCBvbWFwX2h3bW9kICpvaCkKIAkJCS8qIFhYWCBvbWFw X2ljbGtfZGVueV9pZGxlKGMpOyAqLwogCQl9IGVsc2UgewogCQkJLyogWFhYIG9tYXBfaWNsa19h bGxvd19pZGxlKGMpOyAqLwotCQkJY2xrX2VuYWJsZShvcy0+X2Nsayk7CisJCQljbGtfcHJvdmlk ZXJfZW5hYmxlKG9zLT5fY2xrKTsKIAkJfQogCX0KIApAQCAtMzM5Niw3ICszMzk2LDcgQEAgc3Rh dGljIHZvaWQgX19pbml0IF9lbnN1cmVfbXB1X2h3bW9kX2lzX3NldHVwKHN0cnVjdCBvbWFwX2h3 bW9kICpvaCkKICAqIEluaXRpYWxpemUgYW5kIHNldCB1cCBhIHNpbmdsZSBod21vZC4gIEludGVu ZGVkIHRvIGJlIHVzZWQgZm9yIGEKICAqIHNtYWxsIG51bWJlciBvZiBlYXJseSBkZXZpY2VzLCBz dWNoIGFzIHRoZSB0aW1lciBJUCBibG9ja3MgdXNlZCBmb3IKICAqIHRoZSBzY2hlZHVsZXIgY2xv Y2suICBNdXN0IGJlIGNhbGxlZCBhZnRlciBvbWFwMl9jbGtfaW5pdCgpLgotICogUmVzb2x2ZXMg dGhlIHN0cnVjdCBjbGsgbmFtZXMgdG8gc3RydWN0IGNsayBwb2ludGVycyBmb3IgZWFjaAorICog UmVzb2x2ZXMgdGhlIHN0cnVjdCBjbGtfY29yZSBuYW1lcyB0byBzdHJ1Y3QgY2xrX2NvcmUgcG9p bnRlcnMgZm9yIGVhY2gKICAqIHJlZ2lzdGVyZWQgb21hcF9od21vZC4gIEFsc28gY2FsbHMgX3Nl dHVwKCkgb24gZWFjaCBod21vZC4gIFJldHVybnMKICAqIC1FSU5WQUwgdXBvbiBlcnJvciBvciAw IHVwb24gc3VjY2Vzcy4KICAqLwpAQCAtMzQyNSw3ICszNDI1LDcgQEAgaW50IF9faW5pdCBvbWFw X2h3bW9kX3NldHVwX29uZShjb25zdCBjaGFyICpvaF9uYW1lKQogICoKICAqIEluaXRpYWxpemUg YW5kIHNldCB1cCBhbGwgSVAgYmxvY2tzIHJlZ2lzdGVyZWQgd2l0aCB0aGUgaHdtb2QgY29kZS4K ICAqIE11c3QgYmUgY2FsbGVkIGFmdGVyIG9tYXAyX2Nsa19pbml0KCkuICBSZXNvbHZlcyB0aGUg c3RydWN0IGNsawotICogbmFtZXMgdG8gc3RydWN0IGNsayBwb2ludGVycyBmb3IgZWFjaCByZWdp c3RlcmVkIG9tYXBfaHdtb2QuICBBbHNvCisgKiBuYW1lcyB0byBzdHJ1Y3QgY2xrX2NvcmUgcG9p bnRlcnMgZm9yIGVhY2ggcmVnaXN0ZXJlZCBvbWFwX2h3bW9kLiAgQWxzbwogICogY2FsbHMgX3Nl dHVwKCkgb24gZWFjaCBod21vZC4gIFJldHVybnMgMCB1cG9uIHN1Y2Nlc3MuCiAgKi8KIHN0YXRp YyBpbnQgX19pbml0IG9tYXBfaHdtb2Rfc2V0dXBfYWxsKHZvaWQpCkBAIC0zNzkyLDcgKzM3OTIs NyBAQCBpbnQgb21hcF9od21vZF9nZXRfcmVzb3VyY2VfYnluYW1lKHN0cnVjdCBvbWFwX2h3bW9k ICpvaCwgdW5zaWduZWQgaW50IHR5cGUsCiAgKi8KIHN0cnVjdCBwb3dlcmRvbWFpbiAqb21hcF9o d21vZF9nZXRfcHdyZG0oc3RydWN0IG9tYXBfaHdtb2QgKm9oKQogewotCXN0cnVjdCBjbGsgKmM7 CisJc3RydWN0IGNsa19jb3JlICpjOwogCXN0cnVjdCBvbWFwX2h3bW9kX29jcF9pZiAqb2k7CiAJ c3RydWN0IGNsb2NrZG9tYWluICpjbGtkbTsKIAlzdHJ1Y3QgY2xrX2h3X29tYXAgKmNsazsKZGlm ZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvb21hcF9od21vZC5oIGIvYXJjaC9hcm0vbWFj aC1vbWFwMi9vbWFwX2h3bW9kLmgKaW5kZXggMGY5N2Q2My4uNDZmZmQwNiAxMDA2NDQKLS0tIGEv YXJjaC9hcm0vbWFjaC1vbWFwMi9vbWFwX2h3bW9kLmgKKysrIGIvYXJjaC9hcm0vbWFjaC1vbWFw Mi9vbWFwX2h3bW9kLmgKQEAgLTIwNyw3ICsyMDcsNyBAQCBzdHJ1Y3Qgb21hcF9od21vZF9yc3Rf aW5mbyB7CiAgKiBzdHJ1Y3Qgb21hcF9od21vZF9vcHRfY2xrIC0gb3B0aW9uYWwgY2xvY2tzIHVz ZWQgYnkgdGhpcyBod21vZAogICogQHJvbGU6ICJzeXMiLCAiMzJrIiwgInR2IiwgZXRjIC0tIGZv ciB1c2UgaW4gY2xrX2dldCgpCiAgKiBAY2xrOiBvcHQgY2xvY2s6IE9NQVAgY2xvY2sgbmFtZQot ICogQF9jbGs6IHBvaW50ZXIgdG8gdGhlIHN0cnVjdCBjbGsgKGZpbGxlZCBpbiBhdCBydW50aW1l KQorICogQF9jbGs6IHBvaW50ZXIgdG8gdGhlIHN0cnVjdCBjbGtfY29yZSAoZmlsbGVkIGluIGF0 IHJ1bnRpbWUpCiAgKgogICogVGhlIG1vZHVsZSdzIGludGVyZmFjZSBjbG9jayBhbmQgbWFpbiBm dW5jdGlvbmFsIGNsb2NrIHNob3VsZCBub3QKICAqIGJlIGFkZGVkIGFzIG9wdGlvbmFsIGNsb2Nr cy4KQEAgLTIxNSw3ICsyMTUsNyBAQCBzdHJ1Y3Qgb21hcF9od21vZF9yc3RfaW5mbyB7CiBzdHJ1 Y3Qgb21hcF9od21vZF9vcHRfY2xrIHsKIAljb25zdCBjaGFyCSpyb2xlOwogCWNvbnN0IGNoYXIJ KmNsazsKLQlzdHJ1Y3QgY2xrCSpfY2xrOworCXN0cnVjdCBjbGtfY29yZQkqX2NsazsKIH07CiAK IApAQCAtMjg5LDcgKzI4OSw3IEBAIHN0cnVjdCBvbWFwX2h3bW9kX2FkZHJfc3BhY2UgewogICog QHNsYXZlOiBzdHJ1Y3Qgb21hcF9od21vZCB0aGF0IHJlc3BvbmRzIHRvIE9DUCB0cmFuc2FjdGlv bnMgb24gdGhpcyBsaW5rCiAgKiBAYWRkcjogYWRkcmVzcyBzcGFjZSBhc3NvY2lhdGVkIHdpdGgg dGhpcyBsaW5rCiAgKiBAY2xrOiBpbnRlcmZhY2UgY2xvY2s6IE9NQVAgY2xvY2sgbmFtZQotICog QF9jbGs6IHBvaW50ZXIgdG8gdGhlIGludGVyZmFjZSBzdHJ1Y3QgY2xrIChmaWxsZWQgaW4gYXQg cnVudGltZSkKKyAqIEBfY2xrOiBwb2ludGVyIHRvIHRoZSBpbnRlcmZhY2Ugc3RydWN0IGNsa19j b3JlIChmaWxsZWQgaW4gYXQgcnVudGltZSkKICAqIEBmdzogaW50ZXJmYWNlIGZpcmV3YWxsIGRh dGEKICAqIEB3aWR0aDogT0NQIGRhdGEgd2lkdGgKICAqIEB1c2VyOiBpbml0aWF0b3JzIHVzaW5n IHRoaXMgaW50ZXJmYWNlIChzZWUgT0NQX1VTRVJfKiBtYWNyb3MgYWJvdmUpCkBAIC0zMDYsNyAr MzA2LDcgQEAgc3RydWN0IG9tYXBfaHdtb2Rfb2NwX2lmIHsKIAlzdHJ1Y3Qgb21hcF9od21vZAkJ KnNsYXZlOwogCXN0cnVjdCBvbWFwX2h3bW9kX2FkZHJfc3BhY2UJKmFkZHI7CiAJY29uc3QgY2hh cgkJCSpjbGs7Ci0Jc3RydWN0IGNsawkJCSpfY2xrOworCXN0cnVjdCBjbGtfY29yZQkJCSpfY2xr OwogCXVuaW9uIHsKIAkJc3RydWN0IG9tYXBfaHdtb2Rfb21hcDJfZmlyZXdhbGwgb21hcDI7CiAJ fQkJCQlmdzsKQEAgLTYxMSw3ICs2MTEsNyBAQCBzdHJ1Y3Qgb21hcF9od21vZF9saW5rIHsKICAq IEBzZG1hX3JlcXM6IHB0ciB0byBhbiBhcnJheSBvZiBTeXN0ZW0gRE1BIHJlcXVlc3QgSURzCiAg KiBAcHJjbTogUFJDTSBkYXRhIHBlcnRhaW5pbmcgdG8gdGhpcyBod21vZAogICogQG1haW5fY2xr OiBtYWluIGNsb2NrOiBPTUFQIGNsb2NrIG5hbWUKLSAqIEBfY2xrOiBwb2ludGVyIHRvIHRoZSBt YWluIHN0cnVjdCBjbGsgKGZpbGxlZCBpbiBhdCBydW50aW1lKQorICogQF9jbGs6IHBvaW50ZXIg dG8gdGhlIG1haW4gc3RydWN0IGNsa19jb3JlIChmaWxsZWQgaW4gYXQgcnVudGltZSkKICAqIEBv cHRfY2xrczogb3RoZXIgZGV2aWNlIGNsb2NrcyB0aGF0IGRyaXZlcnMgY2FuIHJlcXVlc3QgKDAu LiopCiAgKiBAdm9sdGRtOiBwb2ludGVyIHRvIHZvbHRhZ2UgZG9tYWluIChmaWxsZWQgaW4gYXQg cnVudGltZSkKICAqIEBkZXZfYXR0cjogYXJiaXRyYXJ5IGRldmljZSBhdHRyaWJ1dGVzIHRoYXQg Y2FuIGJlIHBhc3NlZCB0byB0aGUgZHJpdmVyCkBAIC02NTMsNyArNjUzLDcgQEAgc3RydWN0IG9t YXBfaHdtb2QgewogCQlzdHJ1Y3Qgb21hcF9od21vZF9vbWFwNF9wcmNtIG9tYXA0OwogCX0JCQkJ cHJjbTsKIAljb25zdCBjaGFyCQkJKm1haW5fY2xrOwotCXN0cnVjdCBjbGsJCQkqX2NsazsKKwlz dHJ1Y3QgY2xrX2NvcmUJCQkqX2NsazsKIAlzdHJ1Y3Qgb21hcF9od21vZF9vcHRfY2xrCSpvcHRf Y2xrczsKIAljaGFyCQkJCSpjbGtkbV9uYW1lOwogCXN0cnVjdCBjbG9ja2RvbWFpbgkJKmNsa2Rt OwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9wbTI0eHguYyBiL2FyY2gvYXJtL21h Y2gtb21hcDIvcG0yNHh4LmMKaW5kZXggZmUwMWM1YS4uNTZlNWU3NyAxMDA2NDQKLS0tIGEvYXJj aC9hcm0vbWFjaC1vbWFwMi9wbTI0eHguYworKysgYi9hcmNoL2FybS9tYWNoLW9tYXAyL3BtMjR4 eC5jCkBAIC02MCw3ICs2MCw3IEBAIHN0YXRpYyB2b2lkICgqb21hcDJfc3JhbV9zdXNwZW5kKSh1 MzIgZGxsY3RybCwgdm9pZCBfX2lvbWVtICpzZHJjX2RsbGFfY3RybCwKIHN0YXRpYyBzdHJ1Y3Qg cG93ZXJkb21haW4gKm1wdV9wd3JkbSwgKmNvcmVfcHdyZG07CiBzdGF0aWMgc3RydWN0IGNsb2Nr ZG9tYWluICpkc3BfY2xrZG0sICptcHVfY2xrZG0sICp3a3VwX2Nsa2RtLCAqZ2Z4X2Nsa2RtOwog Ci1zdGF0aWMgc3RydWN0IGNsayAqb3NjX2NrLCAqZW11bF9jazsKK3N0YXRpYyBzdHJ1Y3QgY2xr X2NvcmUgKm9zY19jaywgKmVtdWxfY2s7CiAKIHN0YXRpYyBpbnQgb21hcDJfZW50ZXJfZnVsbF9y ZXRlbnRpb24odm9pZCkKIHsKQEAgLTcxLDcgKzcxLDcgQEAgc3RhdGljIGludCBvbWFwMl9lbnRl cl9mdWxsX3JldGVudGlvbih2b2lkKQogCSAqIG9zY2lsbGF0b3IgaXRzZWxmIGl0IHdpbGwgYmUg ZGlzYWJsZWQgaWYvd2hlbiB3ZSBlbnRlciByZXRlbnRpb24KIAkgKiBtb2RlLgogCSAqLwotCWNs a19kaXNhYmxlKG9zY19jayk7CisJY2xrX3Byb3ZpZGVyX2Rpc2FibGUob3NjX2NrKTsKIAogCS8q IENsZWFyIG9sZCB3YWtlLXVwIGV2ZW50cyAqLwogCS8qIFJFVklTSVQ6IFRoZXNlIHdyaXRlIHRv IHJlc2VydmVkIGJpdHM/ICovCkBAIC0xMDEsNyArMTAxLDcgQEAgc3RhdGljIGludCBvbWFwMl9l bnRlcl9mdWxsX3JldGVudGlvbih2b2lkKQogbm9fc2xlZXA6CiAJb21hcDJfZ3Bpb19yZXN1bWVf YWZ0ZXJfaWRsZSgpOwogCi0JY2xrX2VuYWJsZShvc2NfY2spOworCWNsa19wcm92aWRlcl9lbmFi bGUob3NjX2NrKTsKIAogCS8qIGNsZWFyIENPUkUgd2FrZS11cCBldmVudHMgKi8KIAlvbWFwMnh4 eF9wcm1fY2xlYXJfbW9kX2lycXMoQ09SRV9NT0QsIFBNX1dLU1QxLCB+MCk7CkBAIC0yODcsMTcg KzI4NywxNyBAQCBpbnQgX19pbml0IG9tYXAyX3BtX2luaXQodm9pZCkKIAkJcHJfZXJyKCJQTTog Z2Z4X2Nsa2RtIG5vdCBmb3VuZFxuIik7CiAKIAotCW9zY19jayA9IGNsa19nZXQoTlVMTCwgIm9z Y19jayIpOworCW9zY19jayA9IGNsa19wcm92aWRlcl9nZXQoTlVMTCwgIm9zY19jayIpOwogCWlm IChJU19FUlIob3NjX2NrKSkgewogCQlwcmludGsoS0VSTl9FUlIgImNvdWxkIG5vdCBnZXQgb3Nj X2NrXG4iKTsKIAkJcmV0dXJuIC1FTk9ERVY7CiAJfQogCiAJaWYgKGNwdV9pc19vbWFwMjQyeCgp KSB7Ci0JCWVtdWxfY2sgPSBjbGtfZ2V0KE5VTEwsICJlbXVsX2NrIik7CisJCWVtdWxfY2sgPSBj bGtfcHJvdmlkZXJfZ2V0KE5VTEwsICJlbXVsX2NrIik7CiAJCWlmIChJU19FUlIoZW11bF9jaykp IHsKIAkJCXByaW50ayhLRVJOX0VSUiAiY291bGQgbm90IGdldCBlbXVsX2NrXG4iKTsKLQkJCWNs a19wdXQob3NjX2NrKTsKKwkJCV9fY2xrX3B1dChvc2NfY2spOwogCQkJcmV0dXJuIC1FTk9ERVY7 CiAJCX0KIAl9CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9yaW9uNXgvY29tbW9uLmMgYi9h cmNoL2FybS9tYWNoLW9yaW9uNXgvY29tbW9uLmMKaW5kZXggNmJiYjdiNS4uNmJlMmQyZCAxMDA2 NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L2NvbW1vbi5jCisrKyBiL2FyY2gvYXJtL21h Y2gtb3Jpb241eC9jb21tb24uYwpAQCAtNjIsNyArNjIsNyBAQCB2b2lkIF9faW5pdCBvcmlvbjV4 X21hcF9pbyh2b2lkKQogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDTEsgdHJlZQogICoqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKiovCi1zdGF0aWMgc3RydWN0IGNsayAqdGNsazsKK3N0YXRpYyBzdHJ1Y3Qg Y2xrX2NvcmUgKnRjbGs7CiAKIHZvaWQgX19pbml0IGNsa19pbml0KHZvaWQpCiB7CmRpZmYgLS1n aXQgYS9hcmNoL2FybS9tYWNoLXNobW9iaWxlL2Nsb2NrLmMgYi9hcmNoL2FybS9tYWNoLXNobW9i aWxlL2Nsb2NrLmMKaW5kZXggZWQ0MTVkYy4uODI3Zjc0NiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0v bWFjaC1zaG1vYmlsZS9jbG9jay5jCisrKyBiL2FyY2gvYXJtL21hY2gtc2htb2JpbGUvY2xvY2su YwpAQCAtMjMsNyArMjMsNiBAQAogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KIAogI2lmZGVmIENP TkZJR19DT01NT05fQ0xLCi0jaW5jbHVkZSA8bGludXgvY2xrLmg+CiAjaW5jbHVkZSA8bGludXgv Y2xrLXByb3ZpZGVyLmg+CiAjaW5jbHVkZSA8bGludXgvY2xrZGV2Lmg+CiAjaW5jbHVkZSAiY2xv Y2suaCIKQEAgLTMyLDE3ICszMSwxNyBAQCB2b2lkIF9faW5pdCBzaG1vYmlsZV9jbGtfd29ya2Fy b3VuZChjb25zdCBzdHJ1Y3QgY2xrX25hbWUgKmNsa3MsCiAJCQkJICAgIGludCBucl9jbGtzLCBi b29sIGVuYWJsZSkKIHsKIAljb25zdCBzdHJ1Y3QgY2xrX25hbWUgKmNsa247Ci0Jc3RydWN0IGNs ayAqY2xrOworCXN0cnVjdCBjbGtfY29yZSAqY2xrOwogCXVuc2lnbmVkIGludCBpOwogCiAJZm9y IChpID0gMDsgaSA8IG5yX2Nsa3M7ICsraSkgewogCQljbGtuID0gY2xrcyArIGk7Ci0JCWNsayA9 IGNsa19nZXQoTlVMTCwgY2xrbi0+Y2xrKTsKKwkJY2xrID0gY2xrX3Byb3ZpZGVyX2dldChOVUxM LCBjbGtuLT5jbGspOwogCQlpZiAoIUlTX0VSUihjbGspKSB7CiAJCQljbGtfcmVnaXN0ZXJfY2xr ZGV2KGNsaywgY2xrbi0+Y29uX2lkLCBjbGtuLT5kZXZfaWQpOwogCQkJaWYgKGVuYWJsZSkKLQkJ CQljbGtfcHJlcGFyZV9lbmFibGUoY2xrKTsKLQkJCWNsa19wdXQoY2xrKTsKKwkJCQljbGtfcHJv dmlkZXJfcHJlcGFyZV9lbmFibGUoY2xrKTsKKwkJCV9fY2xrX3B1dChjbGspOwogCQl9CiAJfQog fQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC12ZXhwcmVzcy9zcGMuYyBiL2FyY2gvYXJtL21h Y2gtdmV4cHJlc3Mvc3BjLmMKaW5kZXggZjYxMTU4Yy4uZTQ5N2RmNiAxMDA2NDQKLS0tIGEvYXJj aC9hcm0vbWFjaC12ZXhwcmVzcy9zcGMuYworKysgYi9hcmNoL2FybS9tYWNoLXZleHByZXNzL3Nw Yy5jCkBAIC01MjksNyArNTI5LDcgQEAgc3RhdGljIHN0cnVjdCBjbGtfb3BzIGNsa19zcGNfb3Bz ID0gewogCS5zZXRfcmF0ZSA9IHNwY19zZXRfcmF0ZSwKIH07CiAKLXN0YXRpYyBzdHJ1Y3QgY2xr ICp2ZV9zcGNfY2xrX3JlZ2lzdGVyKHN0cnVjdCBkZXZpY2UgKmNwdV9kZXYpCitzdGF0aWMgc3Ry dWN0IGNsa19jb3JlICp2ZV9zcGNfY2xrX3JlZ2lzdGVyKHN0cnVjdCBkZXZpY2UgKmNwdV9kZXYp CiB7CiAJc3RydWN0IGNsa19pbml0X2RhdGEgaW5pdDsKIAlzdHJ1Y3QgY2xrX3NwYyAqc3BjOwpA QCAtNTU2LDcgKzU1Niw3IEBAIHN0YXRpYyBzdHJ1Y3QgY2xrICp2ZV9zcGNfY2xrX3JlZ2lzdGVy KHN0cnVjdCBkZXZpY2UgKmNwdV9kZXYpCiBzdGF0aWMgaW50IF9faW5pdCB2ZV9zcGNfY2xrX2lu aXQodm9pZCkKIHsKIAlpbnQgY3B1OwotCXN0cnVjdCBjbGsgKmNsazsKKwlzdHJ1Y3QgY2xrX2Nv cmUgKmNsazsKIAogCWlmICghaW5mbykKIAkJcmV0dXJuIDA7IC8qIENvbnRpbnVlIG9ubHkgaWYg U1BDIGlzIGluaXRpYWxpc2VkICovCmRpZmYgLS1naXQgYS9hcmNoL2FybS9wbGF0LW9yaW9uL2Nv bW1vbi5jIGIvYXJjaC9hcm0vcGxhdC1vcmlvbi9jb21tb24uYwppbmRleCA5NjFiNTkzLi5hYmY2 M2NlIDEwMDY0NAotLS0gYS9hcmNoL2FybS9wbGF0LW9yaW9uL2NvbW1vbi5jCisrKyBiL2FyY2gv YXJtL3BsYXQtb3Jpb24vY29tbW9uLmMKQEAgLTE0LDcgKzE0LDYgQEAKICNpbmNsdWRlIDxsaW51 eC9kbWEtbWFwcGluZy5oPgogI2luY2x1ZGUgPGxpbnV4L3NlcmlhbF84MjUwLmg+CiAjaW5jbHVk ZSA8bGludXgvYXRhX3BsYXRmb3JtLmg+Ci0jaW5jbHVkZSA8bGludXgvY2xrLmg+CiAjaW5jbHVk ZSA8bGludXgvY2xrLXByb3ZpZGVyLmg+CiAjaW5jbHVkZSA8bGludXgvY2xrZGV2Lmg+CiAjaW5j bHVkZSA8bGludXgvbXY2NDN4eF9ldGguaD4KQEAgLTI3LDcgKzI2LDcgQEAKIAogLyogQ3JlYXRl IGEgY2xrZGV2IGVudHJ5IGZvciBhIGdpdmVuIGRldmljZS9jbGsgKi8KIHZvaWQgX19pbml0IG9y aW9uX2Nsa2Rldl9hZGQoY29uc3QgY2hhciAqY29uX2lkLCBjb25zdCBjaGFyICpkZXZfaWQsCi0J CQkgICAgIHN0cnVjdCBjbGsgKmNsaykKKwkJCSAgICAgc3RydWN0IGNsa19jb3JlICpjbGspCiB7 CiAJc3RydWN0IGNsa19sb29rdXAgKmNsOwogCkBAIC00MCw3ICszOSw3IEBAIHZvaWQgX19pbml0 IG9yaW9uX2Nsa2Rldl9hZGQoY29uc3QgY2hhciAqY29uX2lkLCBjb25zdCBjaGFyICpkZXZfaWQs CiAgICBLaXJrd29vZCBoYXMgZ2F0ZWQgY2xvY2tzIGZvciBzb21lIG9mIGl0cyBwZXJpcGhlcmFs cywgc28gY3JlYXRlcwogICAgaXRzIG93biBjbGtkZXYgZW50cmllcy4gRm9yIGFsbCB0aGUgb3Ro ZXIgb3Jpb24gZGV2aWNlcywgY3JlYXRlCiAgICBjbGtkZXYgZW50cmllcyB0byB0aGUgdGNsay4g Ki8KLXZvaWQgX19pbml0IG9yaW9uX2Nsa2Rldl9pbml0KHN0cnVjdCBjbGsgKnRjbGspCit2b2lk IF9faW5pdCBvcmlvbl9jbGtkZXZfaW5pdChzdHJ1Y3QgY2xrX2NvcmUgKnRjbGspCiB7CiAJb3Jp b25fY2xrZGV2X2FkZChOVUxMLCAib3Jpb25fc3BpLjAiLCB0Y2xrKTsKIAlvcmlvbl9jbGtkZXZf YWRkKE5VTEwsICJvcmlvbl9zcGkuMSIsIHRjbGspOwpAQCAtNzgsMTAgKzc3LDEwIEBAIHN0YXRp YyB2b2lkIGZpbGxfcmVzb3VyY2VzKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmRldmljZSwKIC8q KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKgogICogVUFSVAogICoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi1zdGF0 aWMgdW5zaWduZWQgbG9uZyBfX2luaXQgdWFydF9nZXRfY2xrX3JhdGUoc3RydWN0IGNsayAqY2xr KQorc3RhdGljIHVuc2lnbmVkIGxvbmcgX19pbml0IHVhcnRfZ2V0X2Nsa19yYXRlKHN0cnVjdCBj bGtfY29yZSAqY2xrKQogewotCWNsa19wcmVwYXJlX2VuYWJsZShjbGspOwotCXJldHVybiBjbGtf Z2V0X3JhdGUoY2xrKTsKKwljbGtfcHJvdmlkZXJfcHJlcGFyZV9lbmFibGUoY2xrKTsKKwlyZXR1 cm4gY2xrX3Byb3ZpZGVyX2dldF9yYXRlKGNsayk7CiB9CiAKIHN0YXRpYyB2b2lkIF9faW5pdCB1 YXJ0X2NvbXBsZXRlKApAQCAtOTEsNyArOTAsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgdWFydF9j b21wbGV0ZSgKIAl2b2lkIF9faW9tZW0gKm1lbWJhc2UsCiAJcmVzb3VyY2Vfc2l6ZV90IG1hcGJh c2UsCiAJdW5zaWduZWQgaW50IGlycSwKLQlzdHJ1Y3QgY2xrICpjbGspCisJc3RydWN0IGNsa19j b3JlICpjbGspCiB7CiAJZGF0YS0+bWFwYmFzZSA9IG1hcGJhc2U7CiAJZGF0YS0+bWVtYmFzZSA9 IG1lbWJhc2U7CkBAIC0xMjUsNyArMTI0LDcgQEAgc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZp Y2Ugb3Jpb25fdWFydDAgPSB7CiB2b2lkIF9faW5pdCBvcmlvbl91YXJ0MF9pbml0KHZvaWQgX19p b21lbSAqbWVtYmFzZSwKIAkJCSAgICAgcmVzb3VyY2Vfc2l6ZV90IG1hcGJhc2UsCiAJCQkgICAg IHVuc2lnbmVkIGludCBpcnEsCi0JCQkgICAgIHN0cnVjdCBjbGsgKmNsaykKKwkJCSAgICAgc3Ry dWN0IGNsa19jb3JlICpjbGspCiB7CiAJdWFydF9jb21wbGV0ZSgmb3Jpb25fdWFydDAsIG9yaW9u X3VhcnQwX2RhdGEsIG9yaW9uX3VhcnQwX3Jlc291cmNlcywKIAkJICAgICAgbWVtYmFzZSwgbWFw YmFzZSwgaXJxLCBjbGspOwpAQCAtMTUzLDcgKzE1Miw3IEBAIHN0YXRpYyBzdHJ1Y3QgcGxhdGZv cm1fZGV2aWNlIG9yaW9uX3VhcnQxID0gewogdm9pZCBfX2luaXQgb3Jpb25fdWFydDFfaW5pdCh2 b2lkIF9faW9tZW0gKm1lbWJhc2UsCiAJCQkgICAgIHJlc291cmNlX3NpemVfdCBtYXBiYXNlLAog CQkJICAgICB1bnNpZ25lZCBpbnQgaXJxLAotCQkJICAgICBzdHJ1Y3QgY2xrICpjbGspCisJCQkg ICAgIHN0cnVjdCBjbGtfY29yZSAqY2xrKQogewogCXVhcnRfY29tcGxldGUoJm9yaW9uX3VhcnQx LCBvcmlvbl91YXJ0MV9kYXRhLCBvcmlvbl91YXJ0MV9yZXNvdXJjZXMsCiAJCSAgICAgIG1lbWJh c2UsIG1hcGJhc2UsIGlycSwgY2xrKTsKQEAgLTE4MSw3ICsxODAsNyBAQCBzdGF0aWMgc3RydWN0 IHBsYXRmb3JtX2RldmljZSBvcmlvbl91YXJ0MiA9IHsKIHZvaWQgX19pbml0IG9yaW9uX3VhcnQy X2luaXQodm9pZCBfX2lvbWVtICptZW1iYXNlLAogCQkJICAgICByZXNvdXJjZV9zaXplX3QgbWFw YmFzZSwKIAkJCSAgICAgdW5zaWduZWQgaW50IGlycSwKLQkJCSAgICAgc3RydWN0IGNsayAqY2xr KQorCQkJICAgICBzdHJ1Y3QgY2xrX2NvcmUgKmNsaykKIHsKIAl1YXJ0X2NvbXBsZXRlKCZvcmlv bl91YXJ0Miwgb3Jpb25fdWFydDJfZGF0YSwgb3Jpb25fdWFydDJfcmVzb3VyY2VzLAogCQkgICAg ICBtZW1iYXNlLCBtYXBiYXNlLCBpcnEsIGNsayk7CkBAIC0yMDksNyArMjA4LDcgQEAgc3RhdGlj IHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ugb3Jpb25fdWFydDMgPSB7CiB2b2lkIF9faW5pdCBvcmlv bl91YXJ0M19pbml0KHZvaWQgX19pb21lbSAqbWVtYmFzZSwKIAkJCSAgICAgcmVzb3VyY2Vfc2l6 ZV90IG1hcGJhc2UsCiAJCQkgICAgIHVuc2lnbmVkIGludCBpcnEsCi0JCQkgICAgIHN0cnVjdCBj bGsgKmNsaykKKwkJCSAgICAgc3RydWN0IGNsa19jb3JlICpjbGspCiB7CiAJdWFydF9jb21wbGV0 ZSgmb3Jpb25fdWFydDMsIG9yaW9uX3VhcnQzX2RhdGEsIG9yaW9uX3VhcnQzX3Jlc291cmNlcywK IAkJICAgICAgbWVtYmFzZSwgbWFwYmFzZSwgaXJxLCBjbGspOwpkaWZmIC0tZ2l0IGEvYXJjaC9h cm0vcGxhdC1vcmlvbi9pbmNsdWRlL3BsYXQvY29tbW9uLmggYi9hcmNoL2FybS9wbGF0LW9yaW9u L2luY2x1ZGUvcGxhdC9jb21tb24uaAppbmRleCBkOWEyNGY2Li40NGYxYmJlIDEwMDY0NAotLS0g YS9hcmNoL2FybS9wbGF0LW9yaW9uL2luY2x1ZGUvcGxhdC9jb21tb24uaAorKysgYi9hcmNoL2Fy bS9wbGF0LW9yaW9uL2luY2x1ZGUvcGxhdC9jb21tb24uaApAQCAtMTgsMjIgKzE4LDIyIEBAIHN0 cnVjdCBtdl9zYXRhX3BsYXRmb3JtX2RhdGE7CiB2b2lkIF9faW5pdCBvcmlvbl91YXJ0MF9pbml0 KHZvaWQgX19pb21lbSAqbWVtYmFzZSwKIAkJCSAgICAgcmVzb3VyY2Vfc2l6ZV90IG1hcGJhc2Us CiAJCQkgICAgIHVuc2lnbmVkIGludCBpcnEsCi0JCQkgICAgIHN0cnVjdCBjbGsgKmNsayk7CisJ CQkgICAgIHN0cnVjdCBjbGtfY29yZSAqY2xrKTsKIAogdm9pZCBfX2luaXQgb3Jpb25fdWFydDFf aW5pdCh2b2lkIF9faW9tZW0gKm1lbWJhc2UsCiAJCQkgICAgIHJlc291cmNlX3NpemVfdCBtYXBi YXNlLAogCQkJICAgICB1bnNpZ25lZCBpbnQgaXJxLAotCQkJICAgICBzdHJ1Y3QgY2xrICpjbGsp OworCQkJICAgICBzdHJ1Y3QgY2xrX2NvcmUgKmNsayk7CiAKIHZvaWQgX19pbml0IG9yaW9uX3Vh cnQyX2luaXQodm9pZCBfX2lvbWVtICptZW1iYXNlLAogCQkJICAgICByZXNvdXJjZV9zaXplX3Qg bWFwYmFzZSwKIAkJCSAgICAgdW5zaWduZWQgaW50IGlycSwKLQkJCSAgICAgc3RydWN0IGNsayAq Y2xrKTsKKwkJCSAgICAgc3RydWN0IGNsa19jb3JlICpjbGspOwogCiB2b2lkIF9faW5pdCBvcmlv bl91YXJ0M19pbml0KHZvaWQgX19pb21lbSAqbWVtYmFzZSwKIAkJCSAgICAgcmVzb3VyY2Vfc2l6 ZV90IG1hcGJhc2UsCiAJCQkgICAgIHVuc2lnbmVkIGludCBpcnEsCi0JCQkgICAgIHN0cnVjdCBj bGsgKmNsayk7CisJCQkgICAgIHN0cnVjdCBjbGtfY29yZSAqY2xrKTsKIAogdm9pZCBfX2luaXQg b3Jpb25fcnRjX2luaXQodW5zaWduZWQgbG9uZyBtYXBiYXNlLAogCQkJICAgdW5zaWduZWQgbG9u ZyBpcnEpOwpAQCAtMTA3LDcgKzEwNyw3IEBAIHZvaWQgX19pbml0IG9yaW9uX2NyeXB0b19pbml0 KHVuc2lnbmVkIGxvbmcgbWFwYmFzZSwKIAkJCSAgICAgIHVuc2lnbmVkIGxvbmcgaXJxKTsKIAog dm9pZCBfX2luaXQgb3Jpb25fY2xrZGV2X2FkZChjb25zdCBjaGFyICpjb25faWQsIGNvbnN0IGNo YXIgKmRldl9pZCwKLQkJCSAgICAgc3RydWN0IGNsayAqY2xrKTsKKwkJCSAgICAgc3RydWN0IGNs a19jb3JlICpjbGspOwogCi12b2lkIF9faW5pdCBvcmlvbl9jbGtkZXZfaW5pdChzdHJ1Y3QgY2xr ICp0Y2xrKTsKK3ZvaWQgX19pbml0IG9yaW9uX2Nsa2Rldl9pbml0KHN0cnVjdCBjbGtfY29yZSAq dGNsayk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9hbGNoZW15L2NvbW1vbi9jbG9j ay5jIGIvYXJjaC9taXBzL2FsY2hlbXkvY29tbW9uL2Nsb2NrLmMKaW5kZXggZDc1NTdjZC4uNDZl MWMzYyAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL2FsY2hlbXkvY29tbW9uL2Nsb2NrLmMKKysrIGIv YXJjaC9taXBzL2FsY2hlbXkvY29tbW9uL2Nsb2NrLmMKQEAgLTEzOCw3ICsxMzgsNyBAQCBzdGF0 aWMgc3RydWN0IGNsa19vcHMgYWxjaGVteV9jbGtvcHNfY3B1ID0gewogCS5yZWNhbGNfcmF0ZQk9 IGFsY2hlbXlfY2xrX2NwdV9yZWNhbGMsCiB9OwogCi1zdGF0aWMgc3RydWN0IGNsayBfX2luaXQg KmFsY2hlbXlfY2xrX3NldHVwX2NwdShjb25zdCBjaGFyICpwYXJlbnRfbmFtZSwKK3N0YXRpYyBz dHJ1Y3QgY2xrX2NvcmUgX19pbml0ICphbGNoZW15X2Nsa19zZXR1cF9jcHUoY29uc3QgY2hhciAq cGFyZW50X25hbWUsCiAJCQkJCQlpbnQgY3R5cGUpCiB7CiAJc3RydWN0IGNsa19pbml0X2RhdGEg aWQ7CkBAIC0yMjEsMTIgKzIyMSwxMiBAQCBzdGF0aWMgc3RydWN0IGNsa19vcHMgYWxjaGVteV9j bGtvcHNfYXV4ID0gewogCS5yb3VuZF9yYXRlCT0gYWxjaGVteV9jbGtfYXV4X3JvdW5kciwKIH07 CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrIF9faW5pdCAqYWxjaGVteV9jbGtfc2V0dXBfYXV4KGNvbnN0 IGNoYXIgKnBhcmVudF9uYW1lLAorc3RhdGljIHN0cnVjdCBjbGtfY29yZSBfX2luaXQgKmFsY2hl bXlfY2xrX3NldHVwX2F1eChjb25zdCBjaGFyICpwYXJlbnRfbmFtZSwKIAkJCQkJCWNoYXIgKm5h bWUsIGludCBtYXhtdWx0LAogCQkJCQkJdW5zaWduZWQgbG9uZyByZWcpCiB7CiAJc3RydWN0IGNs a19pbml0X2RhdGEgaWQ7Ci0Jc3RydWN0IGNsayAqYzsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmM7CiAJ c3RydWN0IGFsY2hlbXlfYXV4cGxsX2NsayAqYTsKIAogCWEgPSBremFsbG9jKHNpemVvZigqYSks IEdGUF9LRVJORUwpOwpAQCAtMjU0LDEwICsyNTQsMTAgQEAgc3RhdGljIHN0cnVjdCBjbGsgX19p bml0ICphbGNoZW15X2Nsa19zZXR1cF9hdXgoY29uc3QgY2hhciAqcGFyZW50X25hbWUsCiAKIC8q IHN5c2J1c19jbGsgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqLwogCi1zdGF0aWMgc3RydWN0IGNsayBfX2luaXQgICphbGNoZW15X2Nsa19z ZXR1cF9zeXNidXMoY29uc3QgY2hhciAqcG4pCitzdGF0aWMgc3RydWN0IGNsa19jb3JlIF9faW5p dCAgKmFsY2hlbXlfY2xrX3NldHVwX3N5c2J1cyhjb25zdCBjaGFyICpwbikKIHsKIAl1bnNpZ25l ZCBsb25nIHYgPSAoYWxjaGVteV9yZHN5cyhBVTEwMDBfU1lTX1BPV0VSQ1RSTCkgJiAzKSArIDI7 Ci0Jc3RydWN0IGNsayAqYzsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmM7CiAKIAljID0gY2xrX3JlZ2lz dGVyX2ZpeGVkX2ZhY3RvcihOVUxMLCBBTENIRU1ZX1NZU0JVU19DTEssCiAJCQkJICAgICAgcG4s IDAsIDEsIHYpOwpAQCAtMjY4LDEwICsyNjgsMTAgQEAgc3RhdGljIHN0cnVjdCBjbGsgX19pbml0 ICAqYWxjaGVteV9jbGtfc2V0dXBfc3lzYnVzKGNvbnN0IGNoYXIgKnBuKQogCiAvKiBQZXJpcGhl cmFsIENsb2NrICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKi8KIAotc3RhdGljIHN0cnVjdCBjbGsgX19pbml0ICphbGNoZW15X2Nsa19zZXR1cF9wZXJp cGgoY29uc3QgY2hhciAqcG4pCitzdGF0aWMgc3RydWN0IGNsa19jb3JlIF9faW5pdCAqYWxjaGVt eV9jbGtfc2V0dXBfcGVyaXBoKGNvbnN0IGNoYXIgKnBuKQogewogCS8qIFBlcmlwaGVyYWwgY2xv Y2sgcnVucyBhdCBoYWxmIHRoZSByYXRlIG9mIHN5c2J1cyBjbGsgKi8KLQlzdHJ1Y3QgY2xrICpj OworCXN0cnVjdCBjbGtfY29yZSAqYzsKIAogCWMgPSBjbGtfcmVnaXN0ZXJfZml4ZWRfZmFjdG9y KE5VTEwsIEFMQ0hFTVlfUEVSSVBIX0NMSywKIAkJCQkgICAgICBwbiwgMCwgMSwgMik7CkBAIC0y ODIsMTEgKzI4MiwxMSBAQCBzdGF0aWMgc3RydWN0IGNsayBfX2luaXQgKmFsY2hlbXlfY2xrX3Nl dHVwX3BlcmlwaChjb25zdCBjaGFyICpwbikKIAogLyogbWVtIGNsb2NrICoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKLXN0YXRpYyBz dHJ1Y3QgY2xrIF9faW5pdCAqYWxjaGVteV9jbGtfc2V0dXBfbWVtKGNvbnN0IGNoYXIgKnBuLCBp bnQgY3QpCitzdGF0aWMgc3RydWN0IGNsa19jb3JlIF9faW5pdCAqYWxjaGVteV9jbGtfc2V0dXBf bWVtKGNvbnN0IGNoYXIgKnBuLCBpbnQgY3QpCiB7CiAJdm9pZCBfX2lvbWVtICphZGRyID0gSU9N RU0oQVUxMDAwX01FTV9QSFlTX0FERFIpOwogCXVuc2lnbmVkIGxvbmcgdjsKLQlzdHJ1Y3QgY2xr ICpjOworCXN0cnVjdCBjbGtfY29yZSAqYzsKIAlpbnQgZGl2OwogCiAJc3dpdGNoIChjdCkgewpA QCAtMzE2LDE0ICszMTYsMTQgQEAgc3RhdGljIHN0cnVjdCBjbGsgX19pbml0ICphbGNoZW15X2Ns a19zZXR1cF9tZW0oY29uc3QgY2hhciAqcG4sIGludCBjdCkKIAogLyogbHJjbGs6IGV4dGVybmFs IHN5bmNocm9ub3VzIHN0YXRpYyBidXMgY2xvY2sgKioqKioqKioqKioqKioqKioqKioqKiovCiAK LXN0YXRpYyBzdHJ1Y3QgY2xrIF9faW5pdCAqYWxjaGVteV9jbGtfc2V0dXBfbHJjbGsoY29uc3Qg Y2hhciAqcG4pCitzdGF0aWMgc3RydWN0IGNsa19jb3JlIF9faW5pdCAqYWxjaGVteV9jbGtfc2V0 dXBfbHJjbGsoY29uc3QgY2hhciAqcG4pCiB7CiAJLyogTUVNX1NUQ0ZHMFsxNToxM10gPSBkaXZp c29yLgogCSAqIEwvUkNMSyA9IHBlcmlwaF9jbGsgLyAoZGl2aXNvciArIDEpCiAJICogT24gQXUx MDAwLCBBdTE1MDAsIEF1MTEwMCBpdCdzIGNhbGxlZCBMQ0xLLAogCSAqIG9uIGxhdGVyIG1vZGVs cyBpdCdzIGNhbGxlZCBSQ0xLLCBidXQgaXQncyB0aGUgc2FtZSB0aGluZy4KIAkgKi8KLQlzdHJ1 Y3QgY2xrICpjOworCXN0cnVjdCBjbGtfY29yZSAqYzsKIAl1bnNpZ25lZCBsb25nIHYgPSBhbGNo ZW15X3Jkc21lbShBVTEwMDBfTUVNX1NUQ0ZHMCkgPj4gMTM7CiAKIAl2ID0gKHYgJiA3KSArIDE7 CkBAIC0zNzUsMTAgKzM3NSwxMCBAQCBzdGF0aWMgbG9uZyBhbGNoZW15X2NhbGNfZGl2KHVuc2ln bmVkIGxvbmcgcmF0ZSwgdW5zaWduZWQgbG9uZyBwcmF0ZSwKIAogc3RhdGljIGxvbmcgYWxjaGVt eV9jbGtfZmdjc19kZXRyKHN0cnVjdCBjbGtfaHcgKmh3LCB1bnNpZ25lZCBsb25nIHJhdGUsCiAJ CQkJCXVuc2lnbmVkIGxvbmcgKmJlc3RfcGFyZW50X3JhdGUsCi0JCQkJCXN0cnVjdCBjbGsgKipi ZXN0X3BhcmVudF9jbGssCisJCQkJCXN0cnVjdCBjbGtfY29yZSAqKmJlc3RfcGFyZW50X2NsaywK IAkJCQkJaW50IHNjYWxlLCBpbnQgbWF4ZGl2KQogewotCXN0cnVjdCBjbGsgKnBjLCAqYnBjLCAq ZnJlZTsKKwlzdHJ1Y3QgY2xrX2NvcmUgKnBjLCAqYnBjLCAqZnJlZTsKIAlsb25nIHRkdiwgdHBy LCBwciwgbnIsIGJyLCBicHIsIGRpZmYsIGxhc3RkaWZmOwogCWludCBqOwogCkBAIC00MDUsNyAr NDA1LDcgQEAgc3RhdGljIGxvbmcgYWxjaGVteV9jbGtfZmdjc19kZXRyKHN0cnVjdCBjbGtfaHcg Kmh3LCB1bnNpZ25lZCBsb25nIHJhdGUsCiAJCQkJZnJlZSA9IHBjOwogCQl9CiAKLQkJcHIgPSBj bGtfZ2V0X3JhdGUocGMpOworCQlwciA9IGNsa19wcm92aWRlcl9nZXRfcmF0ZShwYyk7CiAJCWlm IChwciA8IHJhdGUpCiAJCQljb250aW51ZTsKIApAQCAtNDM1LDcgKzQzNSw3IEBAIHN0YXRpYyBs b25nIGFsY2hlbXlfY2xrX2ZnY3NfZGV0cihzdHJ1Y3QgY2xrX2h3ICpodywgdW5zaWduZWQgbG9u ZyByYXRlLAogCQkJdHByID0gcmF0ZSAqIGo7CiAJCQlpZiAodHByIDwgMCkKIAkJCQlicmVhazsK LQkJCXByID0gY2xrX3JvdW5kX3JhdGUoZnJlZSwgdHByKTsKKwkJCXByID0gY2xrX3Byb3ZpZGVy X3JvdW5kX3JhdGUoZnJlZSwgdHByKTsKIAogCQkJdGR2ID0gYWxjaGVteV9jYWxjX2RpdihyYXRl LCBwciwgc2NhbGUsIG1heGRpdiwgTlVMTCk7CiAJCQluciA9IHByIC8gdGR2OwpAQCAtNTQ4LDcg KzU0OCw3IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIGFsY2hlbXlfY2xrX2ZndjFfcmVjYWxjKHN0 cnVjdCBjbGtfaHcgKmh3LAogCiBzdGF0aWMgbG9uZyBhbGNoZW15X2Nsa19mZ3YxX2RldHIoc3Ry dWN0IGNsa19odyAqaHcsIHVuc2lnbmVkIGxvbmcgcmF0ZSwKIAkJCQkJdW5zaWduZWQgbG9uZyAq YmVzdF9wYXJlbnRfcmF0ZSwKLQkJCQkJc3RydWN0IGNsayAqKmJlc3RfcGFyZW50X2NsaykKKwkJ CQkJc3RydWN0IGNsa19jb3JlICoqYmVzdF9wYXJlbnRfY2xrKQogewogCXJldHVybiBhbGNoZW15 X2Nsa19mZ2NzX2RldHIoaHcsIHJhdGUsIGJlc3RfcGFyZW50X3JhdGUsCiAJCQkJICAgICBiZXN0 X3BhcmVudF9jbGssIDIsIDUxMik7CkBAIC02ODAsNyArNjgwLDcgQEAgc3RhdGljIHVuc2lnbmVk IGxvbmcgYWxjaGVteV9jbGtfZmd2Ml9yZWNhbGMoc3RydWN0IGNsa19odyAqaHcsCiAKIHN0YXRp YyBsb25nIGFsY2hlbXlfY2xrX2ZndjJfZGV0cihzdHJ1Y3QgY2xrX2h3ICpodywgdW5zaWduZWQg bG9uZyByYXRlLAogCQkJCQl1bnNpZ25lZCBsb25nICpiZXN0X3BhcmVudF9yYXRlLAotCQkJCQlz dHJ1Y3QgY2xrICoqYmVzdF9wYXJlbnRfY2xrKQorCQkJCQlzdHJ1Y3QgY2xrX2NvcmUgKipiZXN0 X3BhcmVudF9jbGspCiB7CiAJc3RydWN0IGFsY2hlbXlfZmdjc19jbGsgKmMgPSB0b19mZ2NzX2Ns ayhodyk7CiAJaW50IHNjYWxlLCBtYXhkaXY7CkBAIC03MjMsNyArNzIzLDcgQEAgc3RhdGljIGNv bnN0IGNoYXIgKiBjb25zdCBhbGNoZW15X2Nsa19mZ2VuX25hbWVzW10gPSB7CiAKIHN0YXRpYyBp bnQgX19pbml0IGFsY2hlbXlfY2xrX2luaXRfZmdlbnMoaW50IGN0eXBlKQogewotCXN0cnVjdCBj bGsgKmM7CisJc3RydWN0IGNsa19jb3JlICpjOwogCXN0cnVjdCBjbGtfaW5pdF9kYXRhIGlkOwog CXN0cnVjdCBhbGNoZW15X2ZnY3NfY2xrICphOwogCXVuc2lnbmVkIGxvbmcgdjsKQEAgLTg5OSw3 ICs4OTksNyBAQCBzdGF0aWMgaW50IGFsY2hlbXlfY2xrX2NzcmNfc2V0cihzdHJ1Y3QgY2xrX2h3 ICpodywgdW5zaWduZWQgbG9uZyByYXRlLAogCiBzdGF0aWMgbG9uZyBhbGNoZW15X2Nsa19jc3Jj X2RldHIoc3RydWN0IGNsa19odyAqaHcsIHVuc2lnbmVkIGxvbmcgcmF0ZSwKIAkJCQkJdW5zaWdu ZWQgbG9uZyAqYmVzdF9wYXJlbnRfcmF0ZSwKLQkJCQkJc3RydWN0IGNsayAqKmJlc3RfcGFyZW50 X2NsaykKKwkJCQkJc3RydWN0IGNsa19jb3JlICoqYmVzdF9wYXJlbnRfY2xrKQogewogCXN0cnVj dCBhbGNoZW15X2ZnY3NfY2xrICpjID0gdG9fZmdjc19jbGsoaHcpOwogCWludCBzY2FsZSA9IGMt PmR0WzJdID09IDMgPyAxIDogMjsgLyogYXUxMzAwIGNoZWNrICovCkBAIC05MzYsNyArOTM2LDcg QEAgc3RhdGljIGludCBfX2luaXQgYWxjaGVteV9jbGtfc2V0dXBfaW11eChpbnQgY3R5cGUpCiAJ c3RydWN0IGNsa19pbml0X2RhdGEgaWQ7CiAJdW5zaWduZWQgbG9uZyB2OwogCWludCBpLCByZXQs ICpkdDsKLQlzdHJ1Y3QgY2xrICpjOworCXN0cnVjdCBjbGtfY29yZSAqYzsKIAogCWlkLm9wcyA9 ICZhbGNoZW15X2Nsa29wc19jc3JjOwogCWlkLnBhcmVudF9uYW1lcyA9IChjb25zdCBjaGFyICoq KWFsY2hlbXlfY2xrX2NzcmNfcGFyZW50czsKQEAgLTEwMjMsNyArMTAyMyw3IEBAIHN0YXRpYyBp bnQgX19pbml0IGFsY2hlbXlfY2xrX2luaXQodm9pZCkKIHsKIAlpbnQgY3R5cGUgPSBhbGNoZW15 X2dldF9jcHV0eXBlKCksIHJldCwgaTsKIAlzdHJ1Y3QgY2xrX2FsaWFzdGFibGUgKnQgPSBhbGNo ZW15X2Nsa19hbGlhc2VzOwotCXN0cnVjdCBjbGsgKmM7CisJc3RydWN0IGNsa19jb3JlICpjOwog CiAJLyogUm9vdCBvZiB0aGUgQWxjaGVteSBjbG9jayB0cmVlOiBleHRlcm5hbCAxMk1IeiBjcnlz dGFsIG9zYyAqLwogCWMgPSBjbGtfcmVnaXN0ZXJfZml4ZWRfcmF0ZShOVUxMLCBBTENIRU1ZX1JP T1RfQ0xLLCBOVUxMLApkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy81MTJ4L2Ns b2NrLWNvbW1vbmNsay5jIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy81MTJ4L2Nsb2NrLWNvbW1v bmNsay5jCmluZGV4IDZlYjYxNGEuLjgxYWZlODMgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9w bGF0Zm9ybXMvNTEyeC9jbG9jay1jb21tb25jbGsuYworKysgYi9hcmNoL3Bvd2VycGMvcGxhdGZv cm1zLzUxMngvY2xvY2stY29tbW9uY2xrLmMKQEAgLTcwLDcgKzcwLDcgQEAgZW51bSB7CiB9Owog CiAvKiBkYXRhIHJlcXVpcmVkIGZvciB0aGUgT0YgY2xvY2sgcHJvdmlkZXIgcmVnaXN0cmF0aW9u ICovCi1zdGF0aWMgc3RydWN0IGNsayAqY2xrc1tNUEM1MTJ4X0NMS19MQVNUX1BSSVZBVEVdOwor c3RhdGljIHN0cnVjdCBjbGtfY29yZSAqY2xrc1tNUEM1MTJ4X0NMS19MQVNUX1BSSVZBVEVdOwog c3RhdGljIHN0cnVjdCBjbGtfb25lY2VsbF9kYXRhIGNsa19kYXRhOwogCiAvKiBDQ00gcmVnaXN0 ZXIgYWNjZXNzICovCkBAIC0yMTgsMTIgKzIxOCwxMiBAQCBzdGF0aWMgYm9vbCBzb2NfaGFzX21j bGtfbXV4MF9jYW5pbih2b2lkKQogLyogY29tbW9uIGNsayBBUEkgd3JhcHBlcnMge3t7ICovCiAK IC8qIGNvbnZlbmllbmNlIHdyYXBwZXJzIGFyb3VuZCB0aGUgY29tbW9uIGNsayBBUEkgKi8KLXN0 YXRpYyBpbmxpbmUgc3RydWN0IGNsayAqbXBjNTEyeF9jbGtfZml4ZWQoY29uc3QgY2hhciAqbmFt ZSwgaW50IHJhdGUpCitzdGF0aWMgaW5saW5lIHN0cnVjdCBjbGtfY29yZSAqbXBjNTEyeF9jbGtf Zml4ZWQoY29uc3QgY2hhciAqbmFtZSwgaW50IHJhdGUpCiB7CiAJcmV0dXJuIGNsa19yZWdpc3Rl cl9maXhlZF9yYXRlKE5VTEwsIG5hbWUsIE5VTEwsIENMS19JU19ST09ULCByYXRlKTsKIH0KIAot c3RhdGljIGlubGluZSBzdHJ1Y3QgY2xrICptcGM1MTJ4X2Nsa19mYWN0b3IoCitzdGF0aWMgaW5s aW5lIHN0cnVjdCBjbGtfY29yZSAqbXBjNTEyeF9jbGtfZmFjdG9yKAogCWNvbnN0IGNoYXIgKm5h bWUsIGNvbnN0IGNoYXIgKnBhcmVudF9uYW1lLAogCWludCBtdWwsIGludCBkaXYpCiB7CkBAIC0y MzQsNyArMjM0LDcgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgY2xrICptcGM1MTJ4X2Nsa19mYWN0 b3IoCiAJCQkJCSBtdWwsIGRpdik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgc3RydWN0IGNsayAqbXBj NTEyeF9jbGtfZGl2aWRlcigKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGNsa19jb3JlICptcGM1MTJ4 X2Nsa19kaXZpZGVyKAogCWNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnBhcmVudF9uYW1l LCB1OCBjbGtmbGFncywKIAl1MzIgX19pb21lbSAqcmVnLCB1OCBwb3MsIHU4IGxlbiwgaW50IGRp dmZsYWdzKQogewpAQCAtMjQyLDcgKzI0Miw3IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IGNsayAq bXBjNTEyeF9jbGtfZGl2aWRlcigKIAkJCQkgICAgcmVnLCBwb3MsIGxlbiwgZGl2ZmxhZ3MsICZj bGtsb2NrKTsKIH0KIAotc3RhdGljIGlubGluZSBzdHJ1Y3QgY2xrICptcGM1MTJ4X2Nsa19kaXZ0 YWJsZSgKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGNsa19jb3JlICptcGM1MTJ4X2Nsa19kaXZ0YWJs ZSgKIAljb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpwYXJlbnRfbmFtZSwKIAl1MzIgX19p b21lbSAqcmVnLCB1OCBwb3MsIHU4IGxlbiwKIAljb25zdCBzdHJ1Y3QgY2xrX2Rpdl90YWJsZSAq ZGl2dGFiKQpAQCAtMjU1LDcgKzI1NSw3IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IGNsayAqbXBj NTEyeF9jbGtfZGl2dGFibGUoCiAJCQkJCSAgZGl2dGFiLCAmY2xrbG9jayk7CiB9CiAKLXN0YXRp YyBpbmxpbmUgc3RydWN0IGNsayAqbXBjNTEyeF9jbGtfZ2F0ZWQoCitzdGF0aWMgaW5saW5lIHN0 cnVjdCBjbGtfY29yZSAqbXBjNTEyeF9jbGtfZ2F0ZWQoCiAJY29uc3QgY2hhciAqbmFtZSwgY29u c3QgY2hhciAqcGFyZW50X25hbWUsCiAJdTMyIF9faW9tZW0gKnJlZywgdTggcG9zKQogewpAQCAt MjY2LDcgKzI2Niw3IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IGNsayAqbXBjNTEyeF9jbGtfZ2F0 ZWQoCiAJCQkJIHJlZywgcG9zLCAwLCAmY2xrbG9jayk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgc3Ry dWN0IGNsayAqbXBjNTEyeF9jbGtfbXV4ZWQoY29uc3QgY2hhciAqbmFtZSwKK3N0YXRpYyBpbmxp bmUgc3RydWN0IGNsa19jb3JlICptcGM1MTJ4X2Nsa19tdXhlZChjb25zdCBjaGFyICpuYW1lLAog CWNvbnN0IGNoYXIgKipwYXJlbnRfbmFtZXMsIGludCBwYXJlbnRfY291bnQsCiAJdTMyIF9faW9t ZW0gKnJlZywgdTggcG9zLCB1OCBsZW4pCiB7CkBAIC00MjIsNyArNDIyLDcgQEAgc3RhdGljIHZv aWQgbXBjNTEyeF9jbGtfc2V0dXBfcmVmX2Nsb2NrKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsIGlu dCBidXNfZnJlcSwKIAkJCQkJaW50ICpzeXNfbXVsLCBpbnQgKnN5c19kaXYsCiAJCQkJCWludCAq aXBzX2RpdikKIHsKLQlzdHJ1Y3QgY2xrICpvc2NfY2xrOworCXN0cnVjdCBjbGtfY29yZSAqb3Nj X2NsazsKIAlpbnQgY2FsY19mcmVxOwogCiAJLyogZmV0Y2ggbXVsL2RpdiBmYWN0b3JzIGZyb20g dGhlIGhhcmR3YXJlICovCkBAIC00MzIsNyArNDMyLDcgQEAgc3RhdGljIHZvaWQgbXBjNTEyeF9j bGtfc2V0dXBfcmVmX2Nsb2NrKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsIGludCBidXNfZnJlcSwK IAkqaXBzX2RpdiA9IGdldF9iaXRfZmllbGQoJmNsa3JlZ3MtPnNjZnIxLCAyMywgMyk7CiAKIAkv KiBsb29rdXAgdGhlIG9zY2lsbGF0b3IgY2xvY2sgZm9yIGl0cyByYXRlICovCi0Jb3NjX2NsayA9 IG9mX2Nsa19nZXRfYnlfbmFtZShucCwgIm9zYyIpOworCW9zY19jbGsgPSBvZl9jbGtfcHJvdmlk ZXJfZ2V0X2J5X25hbWUobnAsICJvc2MiKTsKIAogCS8qCiAJICogZWl0aGVyIGRlc2NlbmQgZnJv bSBPU0MgdG8gUkVGIChhbmQgaW4gYnlwYXNzaW5nIHZlcmlmeSB0aGUKQEAgLTQ0NCw3ICs0NDQs NyBAQCBzdGF0aWMgdm9pZCBtcGM1MTJ4X2Nsa19zZXR1cF9yZWZfY2xvY2soc3RydWN0IGRldmlj ZV9ub2RlICpucCwgaW50IGJ1c19mcmVxLAogCSAqLwogCWlmICghSVNfRVJSKG9zY19jbGspKSB7 CiAJCWNsa3NbTVBDNTEyeF9DTEtfUkVGXSA9IG1wYzUxMnhfY2xrX2ZhY3RvcigicmVmIiwgIm9z YyIsIDEsIDEpOwotCQljYWxjX2ZyZXEgPSBjbGtfZ2V0X3JhdGUoY2xrc1tNUEM1MTJ4X0NMS19S RUZdKTsKKwkJY2FsY19mcmVxID0gY2xrX3Byb3ZpZGVyX2dldF9yYXRlKGNsa3NbTVBDNTEyeF9D TEtfUkVGXSk7CiAJCWNhbGNfZnJlcSAqPSAqc3lzX211bDsKIAkJY2FsY19mcmVxIC89ICpzeXNf ZGl2OwogCQljYWxjX2ZyZXEgLz0gMjsKQEAgLTY0Nyw4ICs2NDcsOCBAQCBzdGF0aWMgdm9pZCBt cGM1MTJ4X2Nsa19zZXR1cF9tY2xrKHN0cnVjdCBtY2xrX3NldHVwX2RhdGEgKmVudHJ5LCBzaXpl X3QgaWR4KQogCSAqIC0gTUNMSyAwIGVuYWJsZWQKIAkgKiAtIE1DTEsgMSBmcm9tIE1DTEsgRElW CiAJICovCi0JZGl2ID0gY2xrX2dldF9yYXRlKGNsa3NbTVBDNTEyeF9DTEtfU1lTXSk7Ci0JZGl2 IC89IGNsa19nZXRfcmF0ZShjbGtzW01QQzUxMnhfQ0xLX0lQU10pOworCWRpdiA9IGNsa19wcm92 aWRlcl9nZXRfcmF0ZShjbGtzW01QQzUxMnhfQ0xLX1NZU10pOworCWRpdiAvPSBjbGtfcHJvdmlk ZXJfZ2V0X3JhdGUoY2xrc1tNUEM1MTJ4X0NMS19JUFNdKTsKIAlvdXRfYmUzMihtY2NyX3JlZywg KDAgPDwgMTYpKTsKIAlvdXRfYmUzMihtY2NyX3JlZywgKDAgPDwgMTYpIHwgKChkaXYgLSAxKSA8 PCAxNykpOwogCW91dF9iZTMyKG1jY3JfcmVnLCAoMSA8PCAxNikgfCAoKGRpdiAtIDEpIDw8IDE3 KSk7CkBAIC05MjUsMTIgKzkyNSwxMiBAQCBzdGF0aWMgdm9pZCBtcGM1MTJ4X2Nsa19zZXR1cF9j bG9ja190cmVlKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsIGludCBidXNmcmVxKQogCSAqIGNsYWlt ZWQgYnkgYW55IHBlcmlwaGVyYWwgZHJpdmVyLCB0byBub3QgaGF2ZSB0aGUgY2xvY2sKIAkgKiBz dWJzeXN0ZW0gZGlzYWJsZSB0aGVtIGxhdGUgYXQgc3RhcnR1cAogCSAqLwotCWNsa19wcmVwYXJl X2VuYWJsZShjbGtzW01QQzUxMnhfQ0xLX0RVTU1ZXSk7Ci0JY2xrX3ByZXBhcmVfZW5hYmxlKGNs a3NbTVBDNTEyeF9DTEtfRTMwMF0pOwkvKiBQb3dlclBDIENQVSAqLwotCWNsa19wcmVwYXJlX2Vu YWJsZShjbGtzW01QQzUxMnhfQ0xLX0REUl0pOwkvKiBEUkFNICovCi0JY2xrX3ByZXBhcmVfZW5h YmxlKGNsa3NbTVBDNTEyeF9DTEtfTUVNXSk7CS8qIFNSQU0gKi8KLQljbGtfcHJlcGFyZV9lbmFi bGUoY2xrc1tNUEM1MTJ4X0NMS19JUFNdKTsJLyogU29DIHBlcmlwaCAqLwotCWNsa19wcmVwYXJl X2VuYWJsZShjbGtzW01QQzUxMnhfQ0xLX0xQQ10pOwkvKiBib290IG1lZGlhICovCisJY2xrX3By b3ZpZGVyX3ByZXBhcmVfZW5hYmxlKGNsa3NbTVBDNTEyeF9DTEtfRFVNTVldKTsKKwljbGtfcHJv dmlkZXJfcHJlcGFyZV9lbmFibGUoY2xrc1tNUEM1MTJ4X0NMS19FMzAwXSk7CS8qIFBvd2VyUEMg Q1BVICovCisJY2xrX3Byb3ZpZGVyX3ByZXBhcmVfZW5hYmxlKGNsa3NbTVBDNTEyeF9DTEtfRERS XSk7CS8qIERSQU0gKi8KKwljbGtfcHJvdmlkZXJfcHJlcGFyZV9lbmFibGUoY2xrc1tNUEM1MTJ4 X0NMS19NRU1dKTsJLyogU1JBTSAqLworCWNsa19wcm92aWRlcl9wcmVwYXJlX2VuYWJsZShjbGtz W01QQzUxMnhfQ0xLX0lQU10pOwkvKiBTb0MgcGVyaXBoICovCisJY2xrX3Byb3ZpZGVyX3ByZXBh cmVfZW5hYmxlKGNsa3NbTVBDNTEyeF9DTEtfTFBDXSk7CS8qIGJvb3QgbWVkaWEgKi8KIH0KIAog LyoKQEAgLTk2OSw5ICs5NjksOSBAQCBzdGF0aWMgdm9pZCBtcGM1MTIxX2Nsa19wcm92aWRlX21p Z3JhdGlvbl9zdXBwb3J0KHZvaWQpCiAJICogaGFzIGF0dGFjaGVkIHRvIGJyaWRnZXMsIG90aGVy d2lzZSB0aGUgUENJIGNsb2NrIHJlbWFpbnMKIAkgKiB1bnVzZWQgYW5kIHNvIGl0IGdldHMgZGlz YWJsZWQKIAkgKi8KLQljbGtfcHJlcGFyZV9lbmFibGUoY2xrc1tNUEM1MTJ4X0NMS19QU0MzX01D TEtdKTsvKiBzZXJpYWwgY29uc29sZSAqLworCWNsa19wcm92aWRlcl9wcmVwYXJlX2VuYWJsZShj bGtzW01QQzUxMnhfQ0xLX1BTQzNfTUNMS10pOy8qIHNlcmlhbCBjb25zb2xlICovCiAJaWYgKG9m X2ZpbmRfY29tcGF0aWJsZV9ub2RlKE5VTEwsICJwY2kiLCAiZnNsLG1wYzUxMjEtcGNpIikpCi0J CWNsa19wcmVwYXJlX2VuYWJsZShjbGtzW01QQzUxMnhfQ0xLX1BDSV0pOworCQljbGtfcHJvdmlk ZXJfcHJlcGFyZV9lbmFibGUoY2xrc1tNUEM1MTJ4X0NMS19QQ0ldKTsKIH0KIAogLyoKQEAgLTk4 OCw4ICs5ODgsOCBAQCBzdGF0aWMgdm9pZCBtcGM1MTIxX2Nsa19wcm92aWRlX21pZ3JhdGlvbl9z dXBwb3J0KHZvaWQpCiB9IHdoaWxlICgwKQogCiAjZGVmaW5lIE5PREVfQ0hLKGNsa25hbWUsIGNs a2l0ZW0sIHJlZ25vZGUsIHJlZ2ZsYWcpIGRvIHsgXAotCXN0cnVjdCBjbGsgKmNsazsgXAotCWNs ayA9IG9mX2Nsa19nZXRfYnlfbmFtZShucCwgY2xrbmFtZSk7IFwKKwlzdHJ1Y3QgY2xrX2NvcmUg KmNsazsgXAorCWNsayA9IG9mX2Nsa19wcm92aWRlcl9nZXRfYnlfbmFtZShucCwgY2xrbmFtZSk7 IFwKIAlpZiAoSVNfRVJSKGNsaykpIHsgXAogCQljbGsgPSBjbGtpdGVtOyBcCiAJCWNsa19yZWdp c3Rlcl9jbGtkZXYoY2xrLCBjbGtuYW1lLCBkZXZuYW1lKTsgXApAQCAtOTk5LDcgKzk5OSw3IEBA IHN0YXRpYyB2b2lkIG1wYzUxMjFfY2xrX3Byb3ZpZGVfbWlncmF0aW9uX3N1cHBvcnQodm9pZCkK IAkJcHJfZGVidWcoImNsb2NrIGFsaWFzIG5hbWUgJyVzJyBmb3IgZGV2ICclcycgcG9pbnRlciAl cFxuIiwgXAogCQkJIGNsa25hbWUsIGRldm5hbWUsIGNsayk7IFwKIAl9IGVsc2UgeyBcCi0JCWNs a19wdXQoY2xrKTsgXAorCQlfX2Nsa19wdXQoY2xrKTsgXAogCX0gXAogfSB3aGlsZSAoMCkKIApA QCAtMTA5MCw3ICsxMDkwLDcgQEAgc3RhdGljIHZvaWQgbXBjNTEyMV9jbGtfcHJvdmlkZV9iYWNr d2FyZHNfY29tcGF0KHZvaWQpCiAJICogd29ya2Fyb3VuZCBvYnNvbGV0ZQogCSAqLwogCWlmIChk aWRfcmVnaXN0ZXIgJiBESURfUkVHX0kyQykKLQkJY2xrX3ByZXBhcmVfZW5hYmxlKGNsa3NbTVBD NTEyeF9DTEtfSTJDXSk7CisJCWNsa19wcm92aWRlcl9wcmVwYXJlX2VuYWJsZShjbGtzW01QQzUx MnhfQ0xLX0kyQ10pOwogCiAJRk9SX05PREVTKCJmc2wsbXBjNTEyMS1kaXUiKSB7CiAJCU5PREVf UFJFUDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYWNwaS9hY3BpX2xwc3MuYyBiL2RyaXZlcnMvYWNw aS9hY3BpX2xwc3MuYwppbmRleCBiY2JkYmQyLi5mNGM2Y2NmIDEwMDY0NAotLS0gYS9kcml2ZXJz L2FjcGkvYWNwaV9scHNzLmMKKysrIGIvZHJpdmVycy9hY3BpL2FjcGlfbHBzcy5jCkBAIC0xMSw3 ICsxMSw2IEBACiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L2FjcGkuaD4KLSNpbmNsdWRlIDxsaW51 eC9jbGsuaD4KICNpbmNsdWRlIDxsaW51eC9jbGtkZXYuaD4KICNpbmNsdWRlIDxsaW51eC9jbGst cHJvdmlkZXIuaD4KICNpbmNsdWRlIDxsaW51eC9lcnIuaD4KQEAgLTc4LDcgKzc3LDcgQEAgc3Ry dWN0IGxwc3NfcHJpdmF0ZV9kYXRhIHsKIAl2b2lkIF9faW9tZW0gKm1taW9fYmFzZTsKIAlyZXNv dXJjZV9zaXplX3QgbW1pb19zaXplOwogCXVuc2lnbmVkIGludCBmaXhlZF9jbGtfcmF0ZTsKLQlz dHJ1Y3QgY2xrICpjbGs7CisJc3RydWN0IGNsa19jb3JlICpjbGs7CiAJY29uc3Qgc3RydWN0IGxw c3NfZGV2aWNlX2Rlc2MgKmRldl9kZXNjOwogCXUzMiBwcnZfcmVnX2N0eFtMUFNTX1BSVl9SRUdf Q09VTlRdOwogfTsKQEAgLTIyOSw3ICsyMjgsNyBAQCBzdGF0aWMgaW50IHJlZ2lzdGVyX2Rldmlj ZV9jbG9jayhzdHJ1Y3QgYWNwaV9kZXZpY2UgKmFkZXYsCiB7CiAJY29uc3Qgc3RydWN0IGxwc3Nf ZGV2aWNlX2Rlc2MgKmRldl9kZXNjID0gcGRhdGEtPmRldl9kZXNjOwogCWNvbnN0IGNoYXIgKmRl dm5hbWUgPSBkZXZfbmFtZSgmYWRldi0+ZGV2KTsKLQlzdHJ1Y3QgY2xrICpjbGsgPSBFUlJfUFRS KC1FTk9ERVYpOworCXN0cnVjdCBjbGtfY29yZSAqY2xrID0gRVJSX1BUUigtRU5PREVWKTsKIAlz dHJ1Y3QgbHBzc19jbGtfZGF0YSAqY2xrX2RhdGE7CiAJY29uc3QgY2hhciAqcGFyZW50LCAqY2xr X25hbWU7CiAJdm9pZCBfX2lvbWVtICpwcnZfYmFzZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xr L2F0OTEvY2xrLW1haW4uYyBiL2RyaXZlcnMvY2xrL2F0OTEvY2xrLW1haW4uYwppbmRleCA1OWZh M2NjLi4xMWJjZGIxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay9hdDkxL2Nsay1tYWluLmMKKysr IGIvZHJpdmVycy9jbGsvYXQ5MS9jbGstbWFpbi5jCkBAIC0xMzgsNyArMTM4LDcgQEAgc3RhdGlj IGNvbnN0IHN0cnVjdCBjbGtfb3BzIG1haW5fb3NjX29wcyA9IHsKIAkuaXNfcHJlcGFyZWQgPSBj bGtfbWFpbl9vc2NfaXNfcHJlcGFyZWQsCiB9OwogCi1zdGF0aWMgc3RydWN0IGNsayAqIF9faW5p dAorc3RhdGljIHN0cnVjdCBjbGtfY29yZSAqIF9faW5pdAogYXQ5MV9jbGtfcmVnaXN0ZXJfbWFp bl9vc2Moc3RydWN0IGF0OTFfcG1jICpwbWMsCiAJCQkgICB1bnNpZ25lZCBpbnQgaXJxLAogCQkJ ICAgY29uc3QgY2hhciAqbmFtZSwKQEAgLTE0Nyw3ICsxNDcsNyBAQCBhdDkxX2Nsa19yZWdpc3Rl cl9tYWluX29zYyhzdHJ1Y3QgYXQ5MV9wbWMgKnBtYywKIHsKIAlpbnQgcmV0OwogCXN0cnVjdCBj bGtfbWFpbl9vc2MgKm9zYzsKLQlzdHJ1Y3QgY2xrICpjbGsgPSBOVUxMOworCXN0cnVjdCBjbGtf Y29yZSAqY2xrID0gTlVMTDsKIAlzdHJ1Y3QgY2xrX2luaXRfZGF0YSBpbml0OwogCiAJaWYgKCFw bWMgfHwgIWlycSB8fCAhbmFtZSB8fCAhcGFyZW50X25hbWUpCkBAIC0xOTIsNyArMTkyLDcgQEAg YXQ5MV9jbGtfcmVnaXN0ZXJfbWFpbl9vc2Moc3RydWN0IGF0OTFfcG1jICpwbWMsCiB2b2lkIF9f aW5pdCBvZl9hdDkxcm05MjAwX2Nsa19tYWluX29zY19zZXR1cChzdHJ1Y3QgZGV2aWNlX25vZGUg Km5wLAogCQkJCQkgICAgIHN0cnVjdCBhdDkxX3BtYyAqcG1jKQogewotCXN0cnVjdCBjbGsgKmNs azsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmNsazsKIAl1bnNpZ25lZCBpbnQgaXJxOwogCWNvbnN0IGNo YXIgKm5hbWUgPSBucC0+bmFtZTsKIAljb25zdCBjaGFyICpwYXJlbnRfbmFtZTsKQEAgLTI5MSw3 ICsyOTEsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGNsa19vcHMgbWFpbl9yY19vc2Nfb3BzID0g ewogCS5yZWNhbGNfYWNjdXJhY3kgPSBjbGtfbWFpbl9yY19vc2NfcmVjYWxjX2FjY3VyYWN5LAog fTsKIAotc3RhdGljIHN0cnVjdCBjbGsgKiBfX2luaXQKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUg KiBfX2luaXQKIGF0OTFfY2xrX3JlZ2lzdGVyX21haW5fcmNfb3NjKHN0cnVjdCBhdDkxX3BtYyAq cG1jLAogCQkJICAgICAgdW5zaWduZWQgaW50IGlycSwKIAkJCSAgICAgIGNvbnN0IGNoYXIgKm5h bWUsCkBAIC0yOTksNyArMjk5LDcgQEAgYXQ5MV9jbGtfcmVnaXN0ZXJfbWFpbl9yY19vc2Moc3Ry dWN0IGF0OTFfcG1jICpwbWMsCiB7CiAJaW50IHJldDsKIAlzdHJ1Y3QgY2xrX21haW5fcmNfb3Nj ICpvc2M7Ci0Jc3RydWN0IGNsayAqY2xrID0gTlVMTDsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmNsayA9 IE5VTEw7CiAJc3RydWN0IGNsa19pbml0X2RhdGEgaW5pdDsKIAogCWlmICghcG1jIHx8ICFpcnEg fHwgIW5hbWUgfHwgIWZyZXF1ZW5jeSkKQEAgLTM0MCw3ICszNDAsNyBAQCBhdDkxX2Nsa19yZWdp c3Rlcl9tYWluX3JjX29zYyhzdHJ1Y3QgYXQ5MV9wbWMgKnBtYywKIHZvaWQgX19pbml0IG9mX2F0 OTFzYW05eDVfY2xrX21haW5fcmNfb3NjX3NldHVwKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsCiAJ CQkJCQlzdHJ1Y3QgYXQ5MV9wbWMgKnBtYykKIHsKLQlzdHJ1Y3QgY2xrICpjbGs7CisJc3RydWN0 IGNsa19jb3JlICpjbGs7CiAJdW5zaWduZWQgaW50IGlycTsKIAl1MzIgZnJlcXVlbmN5ID0gMDsK IAl1MzIgYWNjdXJhY3kgPSAwOwpAQCAtNDI0LDEzICs0MjQsMTMgQEAgc3RhdGljIGNvbnN0IHN0 cnVjdCBjbGtfb3BzIHJtOTIwMF9tYWluX29wcyA9IHsKIAkucmVjYWxjX3JhdGUgPSBjbGtfcm05 MjAwX21haW5fcmVjYWxjX3JhdGUsCiB9OwogCi1zdGF0aWMgc3RydWN0IGNsayAqIF9faW5pdAor c3RhdGljIHN0cnVjdCBjbGtfY29yZSAqIF9faW5pdAogYXQ5MV9jbGtfcmVnaXN0ZXJfcm05MjAw X21haW4oc3RydWN0IGF0OTFfcG1jICpwbWMsCiAJCQkgICAgICBjb25zdCBjaGFyICpuYW1lLAog CQkJICAgICAgY29uc3QgY2hhciAqcGFyZW50X25hbWUpCiB7CiAJc3RydWN0IGNsa19ybTkyMDBf bWFpbiAqY2xrbWFpbjsKLQlzdHJ1Y3QgY2xrICpjbGsgPSBOVUxMOworCXN0cnVjdCBjbGtfY29y ZSAqY2xrID0gTlVMTDsKIAlzdHJ1Y3QgY2xrX2luaXRfZGF0YSBpbml0OwogCiAJaWYgKCFwbWMg fHwgIW5hbWUpCkBAIC00NjIsNyArNDYyLDcgQEAgYXQ5MV9jbGtfcmVnaXN0ZXJfcm05MjAwX21h aW4oc3RydWN0IGF0OTFfcG1jICpwbWMsCiB2b2lkIF9faW5pdCBvZl9hdDkxcm05MjAwX2Nsa19t YWluX3NldHVwKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsCiAJCQkJCSBzdHJ1Y3QgYXQ5MV9wbWMg KnBtYykKIHsKLQlzdHJ1Y3QgY2xrICpjbGs7CisJc3RydWN0IGNsa19jb3JlICpjbGs7CiAJY29u c3QgY2hhciAqcGFyZW50X25hbWU7CiAJY29uc3QgY2hhciAqbmFtZSA9IG5wLT5uYW1lOwogCkBA IC01NTUsNyArNTU1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtfb3BzIHNhbTl4NV9tYWlu X29wcyA9IHsKIAkuZ2V0X3BhcmVudCA9IGNsa19zYW05eDVfbWFpbl9nZXRfcGFyZW50LAogfTsK IAotc3RhdGljIHN0cnVjdCBjbGsgKiBfX2luaXQKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgKiBf X2luaXQKIGF0OTFfY2xrX3JlZ2lzdGVyX3NhbTl4NV9tYWluKHN0cnVjdCBhdDkxX3BtYyAqcG1j LAogCQkJICAgICAgdW5zaWduZWQgaW50IGlycSwKIAkJCSAgICAgIGNvbnN0IGNoYXIgKm5hbWUs CkBAIC01NjQsNyArNTY0LDcgQEAgYXQ5MV9jbGtfcmVnaXN0ZXJfc2FtOXg1X21haW4oc3RydWN0 IGF0OTFfcG1jICpwbWMsCiB7CiAJaW50IHJldDsKIAlzdHJ1Y3QgY2xrX3NhbTl4NV9tYWluICpj bGttYWluOwotCXN0cnVjdCBjbGsgKmNsayA9IE5VTEw7CisJc3RydWN0IGNsa19jb3JlICpjbGsg PSBOVUxMOwogCXN0cnVjdCBjbGtfaW5pdF9kYXRhIGluaXQ7CiAKIAlpZiAoIXBtYyB8fCAhaXJx IHx8ICFuYW1lKQpAQCAtNjA3LDcgKzYwNyw3IEBAIGF0OTFfY2xrX3JlZ2lzdGVyX3NhbTl4NV9t YWluKHN0cnVjdCBhdDkxX3BtYyAqcG1jLAogdm9pZCBfX2luaXQgb2ZfYXQ5MXNhbTl4NV9jbGtf bWFpbl9zZXR1cChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wLAogCQkJCQkgc3RydWN0IGF0OTFfcG1j ICpwbWMpCiB7Ci0Jc3RydWN0IGNsayAqY2xrOworCXN0cnVjdCBjbGtfY29yZSAqY2xrOwogCWNv bnN0IGNoYXIgKnBhcmVudF9uYW1lc1syXTsKIAlpbnQgbnVtX3BhcmVudHM7CiAJdW5zaWduZWQg aW50IGlycTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL2F0OTEvY2xrLW1hc3Rlci5jIGIvZHJp dmVycy9jbGsvYXQ5MS9jbGstbWFzdGVyLmMKaW5kZXggYzFhZjgwYi4uOTVhZTFiNiAxMDA2NDQK LS0tIGEvZHJpdmVycy9jbGsvYXQ5MS9jbGstbWFzdGVyLmMKKysrIGIvZHJpdmVycy9jbGsvYXQ5 MS9jbGstbWFzdGVyLmMKQEAgLTEzMSw3ICsxMzEsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGNs a19vcHMgbWFzdGVyX29wcyA9IHsKIAkuZ2V0X3BhcmVudCA9IGNsa19tYXN0ZXJfZ2V0X3BhcmVu dCwKIH07CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrICogX19pbml0CitzdGF0aWMgc3RydWN0IGNsa19j b3JlICogX19pbml0CiBhdDkxX2Nsa19yZWdpc3Rlcl9tYXN0ZXIoc3RydWN0IGF0OTFfcG1jICpw bWMsIHVuc2lnbmVkIGludCBpcnEsCiAJCWNvbnN0IGNoYXIgKm5hbWUsIGludCBudW1fcGFyZW50 cywKIAkJY29uc3QgY2hhciAqKnBhcmVudF9uYW1lcywKQEAgLTE0MCw3ICsxNDAsNyBAQCBhdDkx X2Nsa19yZWdpc3Rlcl9tYXN0ZXIoc3RydWN0IGF0OTFfcG1jICpwbWMsIHVuc2lnbmVkIGludCBp cnEsCiB7CiAJaW50IHJldDsKIAlzdHJ1Y3QgY2xrX21hc3RlciAqbWFzdGVyOwotCXN0cnVjdCBj bGsgKmNsayA9IE5VTEw7CisJc3RydWN0IGNsa19jb3JlICpjbGsgPSBOVUxMOwogCXN0cnVjdCBj bGtfaW5pdF9kYXRhIGluaXQ7CiAKIAlpZiAoIXBtYyB8fCAhaXJxIHx8ICFuYW1lIHx8ICFudW1f cGFyZW50cyB8fCAhcGFyZW50X25hbWVzKQpAQCAtMjE2LDcgKzIxNiw3IEBAIHN0YXRpYyB2b2lk IF9faW5pdAogb2ZfYXQ5MV9jbGtfbWFzdGVyX3NldHVwKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAs IHN0cnVjdCBhdDkxX3BtYyAqcG1jLAogCQkJIGNvbnN0IHN0cnVjdCBjbGtfbWFzdGVyX2xheW91 dCAqbGF5b3V0KQogewotCXN0cnVjdCBjbGsgKmNsazsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmNsazsK IAlpbnQgbnVtX3BhcmVudHM7CiAJaW50IGk7CiAJdW5zaWduZWQgaW50IGlycTsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvY2xrL2F0OTEvY2xrLXBlcmlwaGVyYWwuYyBiL2RyaXZlcnMvY2xrL2F0OTEv Y2xrLXBlcmlwaGVyYWwuYwppbmRleCA1OTdmZWQ0Li5jZGY4ZThhIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2Nsay9hdDkxL2Nsay1wZXJpcGhlcmFsLmMKKysrIGIvZHJpdmVycy9jbGsvYXQ5MS9jbGst cGVyaXBoZXJhbC5jCkBAIC0xMDAsMTIgKzEwMCwxMiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGNs a19vcHMgcGVyaXBoZXJhbF9vcHMgPSB7CiAJLmlzX2VuYWJsZWQgPSBjbGtfcGVyaXBoZXJhbF9p c19lbmFibGVkLAogfTsKIAotc3RhdGljIHN0cnVjdCBjbGsgKiBfX2luaXQKK3N0YXRpYyBzdHJ1 Y3QgY2xrX2NvcmUgKiBfX2luaXQKIGF0OTFfY2xrX3JlZ2lzdGVyX3BlcmlwaGVyYWwoc3RydWN0 IGF0OTFfcG1jICpwbWMsIGNvbnN0IGNoYXIgKm5hbWUsCiAJCQkgICAgIGNvbnN0IGNoYXIgKnBh cmVudF9uYW1lLCB1MzIgaWQpCiB7CiAJc3RydWN0IGNsa19wZXJpcGhlcmFsICpwZXJpcGg7Ci0J c3RydWN0IGNsayAqY2xrID0gTlVMTDsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmNsayA9IE5VTEw7CiAJ c3RydWN0IGNsa19pbml0X2RhdGEgaW5pdDsKIAogCWlmICghcG1jIHx8ICFuYW1lIHx8ICFwYXJl bnRfbmFtZSB8fCBpZCA+IFBFUklQSEVSQUxfSURfTUFYKQpAQCAtMTM0LDcgKzEzNCw3IEBAIGF0 OTFfY2xrX3JlZ2lzdGVyX3BlcmlwaGVyYWwoc3RydWN0IGF0OTFfcG1jICpwbWMsIGNvbnN0IGNo YXIgKm5hbWUsCiAKIHN0YXRpYyB2b2lkIGNsa19zYW05eDVfcGVyaXBoZXJhbF9hdXRvZGl2KHN0 cnVjdCBjbGtfc2FtOXg1X3BlcmlwaGVyYWwgKnBlcmlwaCkKIHsKLQlzdHJ1Y3QgY2xrICpwYXJl bnQ7CisJc3RydWN0IGNsa19jb3JlICpwYXJlbnQ7CiAJdW5zaWduZWQgbG9uZyBwYXJlbnRfcmF0 ZTsKIAlpbnQgc2hpZnQgPSAwOwogCkBAIC0zMDksMTMgKzMwOSwxMyBAQCBzdGF0aWMgY29uc3Qg c3RydWN0IGNsa19vcHMgc2FtOXg1X3BlcmlwaGVyYWxfb3BzID0gewogCS5zZXRfcmF0ZSA9IGNs a19zYW05eDVfcGVyaXBoZXJhbF9zZXRfcmF0ZSwKIH07CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrICog X19pbml0CitzdGF0aWMgc3RydWN0IGNsa19jb3JlICogX19pbml0CiBhdDkxX2Nsa19yZWdpc3Rl cl9zYW05eDVfcGVyaXBoZXJhbChzdHJ1Y3QgYXQ5MV9wbWMgKnBtYywgY29uc3QgY2hhciAqbmFt ZSwKIAkJCQkgICAgY29uc3QgY2hhciAqcGFyZW50X25hbWUsIHUzMiBpZCwKIAkJCQkgICAgY29u c3Qgc3RydWN0IGNsa19yYW5nZSAqcmFuZ2UpCiB7CiAJc3RydWN0IGNsa19zYW05eDVfcGVyaXBo ZXJhbCAqcGVyaXBoOwotCXN0cnVjdCBjbGsgKmNsayA9IE5VTEw7CisJc3RydWN0IGNsa19jb3Jl ICpjbGsgPSBOVUxMOwogCXN0cnVjdCBjbGtfaW5pdF9kYXRhIGluaXQ7CiAKIAlpZiAoIXBtYyB8 fCAhbmFtZSB8fCAhcGFyZW50X25hbWUpCkBAIC0zNTIsNyArMzUyLDcgQEAgb2ZfYXQ5MV9jbGtf cGVyaXBoX3NldHVwKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsIHN0cnVjdCBhdDkxX3BtYyAqcG1j LCB1OCB0eXBlKQogewogCWludCBudW07CiAJdTMyIGlkOwotCXN0cnVjdCBjbGsgKmNsazsKKwlz dHJ1Y3QgY2xrX2NvcmUgKmNsazsKIAljb25zdCBjaGFyICpwYXJlbnRfbmFtZTsKIAljb25zdCBj aGFyICpuYW1lOwogCXN0cnVjdCBkZXZpY2Vfbm9kZSAqcGVyaXBoY2xrbnA7CmRpZmYgLS1naXQg YS9kcml2ZXJzL2Nsay9hdDkxL2Nsay1wbGwuYyBiL2RyaXZlcnMvY2xrL2F0OTEvY2xrLXBsbC5j CmluZGV4IDZlYzc5ZGIuLjZhMWI5MDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL2F0OTEvY2xr LXBsbC5jCisrKyBiL2RyaXZlcnMvY2xrL2F0OTEvY2xrLXBsbC5jCkBAIC0yOTksMTQgKzI5OSwx NCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGNsa19vcHMgcGxsX29wcyA9IHsKIAkuc2V0X3JhdGUg PSBjbGtfcGxsX3NldF9yYXRlLAogfTsKIAotc3RhdGljIHN0cnVjdCBjbGsgKiBfX2luaXQKK3N0 YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgKiBfX2luaXQKIGF0OTFfY2xrX3JlZ2lzdGVyX3BsbChzdHJ1 Y3QgYXQ5MV9wbWMgKnBtYywgdW5zaWduZWQgaW50IGlycSwgY29uc3QgY2hhciAqbmFtZSwKIAkJ ICAgICAgY29uc3QgY2hhciAqcGFyZW50X25hbWUsIHU4IGlkLAogCQkgICAgICBjb25zdCBzdHJ1 Y3QgY2xrX3BsbF9sYXlvdXQgKmxheW91dCwKIAkJICAgICAgY29uc3Qgc3RydWN0IGNsa19wbGxf Y2hhcmFjdGVyaXN0aWNzICpjaGFyYWN0ZXJpc3RpY3MpCiB7CiAJc3RydWN0IGNsa19wbGwgKnBs bDsKLQlzdHJ1Y3QgY2xrICpjbGsgPSBOVUxMOworCXN0cnVjdCBjbGtfY29yZSAqY2xrID0gTlVM TDsKIAlzdHJ1Y3QgY2xrX2luaXRfZGF0YSBpbml0OwogCWludCByZXQ7CiAJaW50IG9mZnNldCA9 IFBMTF9SRUcoaWQpOwpAQCAtNDc2LDcgKzQ3Niw3IEBAIG9mX2F0OTFfY2xrX3BsbF9zZXR1cChz dHJ1Y3QgZGV2aWNlX25vZGUgKm5wLCBzdHJ1Y3QgYXQ5MV9wbWMgKnBtYywKIHsKIAl1MzIgaWQ7 CiAJdW5zaWduZWQgaW50IGlycTsKLQlzdHJ1Y3QgY2xrICpjbGs7CisJc3RydWN0IGNsa19jb3Jl ICpjbGs7CiAJY29uc3QgY2hhciAqcGFyZW50X25hbWU7CiAJY29uc3QgY2hhciAqbmFtZSA9IG5w LT5uYW1lOwogCXN0cnVjdCBjbGtfcGxsX2NoYXJhY3RlcmlzdGljcyAqY2hhcmFjdGVyaXN0aWNz OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvYXQ5MS9jbGstcGxsZGl2LmMgYi9kcml2ZXJzL2Ns ay9hdDkxL2Nsay1wbGxkaXYuYwppbmRleCBlYTIyNjU2Li5mODIwNGQ4IDEwMDY0NAotLS0gYS9k cml2ZXJzL2Nsay9hdDkxL2Nsay1wbGxkaXYuYworKysgYi9kcml2ZXJzL2Nsay9hdDkxL2Nsay1w bGxkaXYuYwpAQCAtNzksMTIgKzc5LDEyIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrX29wcyBw bGxkaXZfb3BzID0gewogCS5zZXRfcmF0ZSA9IGNsa19wbGxkaXZfc2V0X3JhdGUsCiB9OwogCi1z dGF0aWMgc3RydWN0IGNsayAqIF9faW5pdAorc3RhdGljIHN0cnVjdCBjbGtfY29yZSAqIF9faW5p dAogYXQ5MV9jbGtfcmVnaXN0ZXJfcGxsZGl2KHN0cnVjdCBhdDkxX3BtYyAqcG1jLCBjb25zdCBj aGFyICpuYW1lLAogCQkJIGNvbnN0IGNoYXIgKnBhcmVudF9uYW1lKQogewogCXN0cnVjdCBjbGtf cGxsZGl2ICpwbGxkaXY7Ci0Jc3RydWN0IGNsayAqY2xrID0gTlVMTDsKKwlzdHJ1Y3QgY2xrX2Nv cmUgKmNsayA9IE5VTEw7CiAJc3RydWN0IGNsa19pbml0X2RhdGEgaW5pdDsKIAogCXBsbGRpdiA9 IGt6YWxsb2Moc2l6ZW9mKCpwbGxkaXYpLCBHRlBfS0VSTkVMKTsKQEAgLTExMSw3ICsxMTEsNyBA QCBhdDkxX2Nsa19yZWdpc3Rlcl9wbGxkaXYoc3RydWN0IGF0OTFfcG1jICpwbWMsIGNvbnN0IGNo YXIgKm5hbWUsCiBzdGF0aWMgdm9pZCBfX2luaXQKIG9mX2F0OTFfY2xrX3BsbGRpdl9zZXR1cChz dHJ1Y3QgZGV2aWNlX25vZGUgKm5wLCBzdHJ1Y3QgYXQ5MV9wbWMgKnBtYykKIHsKLQlzdHJ1Y3Qg Y2xrICpjbGs7CisJc3RydWN0IGNsa19jb3JlICpjbGs7CiAJY29uc3QgY2hhciAqcGFyZW50X25h bWU7CiAJY29uc3QgY2hhciAqbmFtZSA9IG5wLT5uYW1lOwogCmRpZmYgLS1naXQgYS9kcml2ZXJz L2Nsay9hdDkxL2Nsay1wcm9ncmFtbWFibGUuYyBiL2RyaXZlcnMvY2xrL2F0OTEvY2xrLXByb2dy YW1tYWJsZS5jCmluZGV4IDYyZTI1MDkuLmI3MmU5OGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xr L2F0OTEvY2xrLXByb2dyYW1tYWJsZS5jCisrKyBiL2RyaXZlcnMvY2xrL2F0OTEvY2xrLXByb2dy YW1tYWJsZS5jCkBAIC01Nyw5ICs1Nyw5IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIGNsa19wcm9n cmFtbWFibGVfcmVjYWxjX3JhdGUoc3RydWN0IGNsa19odyAqaHcsCiBzdGF0aWMgbG9uZyBjbGtf cHJvZ3JhbW1hYmxlX2RldGVybWluZV9yYXRlKHN0cnVjdCBjbGtfaHcgKmh3LAogCQkJCQkgICAg dW5zaWduZWQgbG9uZyByYXRlLAogCQkJCQkgICAgdW5zaWduZWQgbG9uZyAqYmVzdF9wYXJlbnRf cmF0ZSwKLQkJCQkJICAgIHN0cnVjdCBjbGsgKipiZXN0X3BhcmVudF9jbGspCisJCQkJCSAgICBz dHJ1Y3QgY2xrX2NvcmUgKipiZXN0X3BhcmVudF9jbGspCiB7Ci0Jc3RydWN0IGNsayAqcGFyZW50 ID0gTlVMTDsKKwlzdHJ1Y3QgY2xrX2NvcmUgKnBhcmVudCA9IE5VTEw7CiAJbG9uZyBiZXN0X3Jh dGUgPSAtRUlOVkFMOwogCXVuc2lnbmVkIGxvbmcgcGFyZW50X3JhdGU7CiAJdW5zaWduZWQgbG9u ZyB0bXBfcmF0ZTsKQEAgLTE2OSwxNCArMTY5LDE0IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY2xr X29wcyBwcm9ncmFtbWFibGVfb3BzID0gewogCS5zZXRfcmF0ZSA9IGNsa19wcm9ncmFtbWFibGVf c2V0X3JhdGUsCiB9OwogCi1zdGF0aWMgc3RydWN0IGNsayAqIF9faW5pdAorc3RhdGljIHN0cnVj dCBjbGtfY29yZSAqIF9faW5pdAogYXQ5MV9jbGtfcmVnaXN0ZXJfcHJvZ3JhbW1hYmxlKHN0cnVj dCBhdDkxX3BtYyAqcG1jLAogCQkJICAgICAgIGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIg KipwYXJlbnRfbmFtZXMsCiAJCQkgICAgICAgdTggbnVtX3BhcmVudHMsIHU4IGlkLAogCQkJICAg ICAgIGNvbnN0IHN0cnVjdCBjbGtfcHJvZ3JhbW1hYmxlX2xheW91dCAqbGF5b3V0KQogewogCXN0 cnVjdCBjbGtfcHJvZ3JhbW1hYmxlICpwcm9nOwotCXN0cnVjdCBjbGsgKmNsayA9IE5VTEw7CisJ c3RydWN0IGNsa19jb3JlICpjbGsgPSBOVUxMOwogCXN0cnVjdCBjbGtfaW5pdF9kYXRhIGluaXQ7 CiAKIAlpZiAoaWQgPiBQUk9HX0lEX01BWCkKQEAgLTIyOSw3ICsyMjksNyBAQCBvZl9hdDkxX2Ns a19wcm9nX3NldHVwKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsIHN0cnVjdCBhdDkxX3BtYyAqcG1j LAogCWludCBudW07CiAJdTMyIGlkOwogCWludCBpOwotCXN0cnVjdCBjbGsgKmNsazsKKwlzdHJ1 Y3QgY2xrX2NvcmUgKmNsazsKIAlpbnQgbnVtX3BhcmVudHM7CiAJY29uc3QgY2hhciAqcGFyZW50 X25hbWVzW1BST0dfU09VUkNFX01BWF07CiAJY29uc3QgY2hhciAqbmFtZTsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvY2xrL2F0OTEvY2xrLXNsb3cuYyBiL2RyaXZlcnMvY2xrL2F0OTEvY2xrLXNsb3cu YwppbmRleCAwMzAwYzQ2Li5kNTBmZTAyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay9hdDkxL2Ns ay1zbG93LmMKKysrIGIvZHJpdmVycy9jbGsvYXQ5MS9jbGstc2xvdy5jCkBAIC0xMTcsNyArMTE3 LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtfb3BzIHNsb3dfb3NjX29wcyA9IHsKIAkuaXNf cHJlcGFyZWQgPSBjbGtfc2xvd19vc2NfaXNfcHJlcGFyZWQsCiB9OwogCi1zdGF0aWMgc3RydWN0 IGNsayAqIF9faW5pdAorc3RhdGljIHN0cnVjdCBjbGtfY29yZSAqIF9faW5pdAogYXQ5MV9jbGtf cmVnaXN0ZXJfc2xvd19vc2Modm9pZCBfX2lvbWVtICpzY2tjciwKIAkJCSAgIGNvbnN0IGNoYXIg Km5hbWUsCiAJCQkgICBjb25zdCBjaGFyICpwYXJlbnRfbmFtZSwKQEAgLTEyNSw3ICsxMjUsNyBA QCBhdDkxX2Nsa19yZWdpc3Rlcl9zbG93X29zYyh2b2lkIF9faW9tZW0gKnNja2NyLAogCQkJICAg Ym9vbCBieXBhc3MpCiB7CiAJc3RydWN0IGNsa19zbG93X29zYyAqb3NjOwotCXN0cnVjdCBjbGsg KmNsayA9IE5VTEw7CisJc3RydWN0IGNsa19jb3JlICpjbGsgPSBOVUxMOwogCXN0cnVjdCBjbGtf aW5pdF9kYXRhIGluaXQ7CiAKIAlpZiAoIXNja2NyIHx8ICFuYW1lIHx8ICFwYXJlbnRfbmFtZSkK QEAgLTE1OSw3ICsxNTksNyBAQCBhdDkxX2Nsa19yZWdpc3Rlcl9zbG93X29zYyh2b2lkIF9faW9t ZW0gKnNja2NyLAogdm9pZCBfX2luaXQgb2ZfYXQ5MXNhbTl4NV9jbGtfc2xvd19vc2Nfc2V0dXAo c3RydWN0IGRldmljZV9ub2RlICpucCwKIAkJCQkJICAgICB2b2lkIF9faW9tZW0gKnNja2NyKQog ewotCXN0cnVjdCBjbGsgKmNsazsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmNsazsKIAljb25zdCBjaGFy ICpwYXJlbnRfbmFtZTsKIAljb25zdCBjaGFyICpuYW1lID0gbnAtPm5hbWU7CiAJdTMyIHN0YXJ0 dXA7CkBAIC0yMjksNyArMjI5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtfb3BzIHNsb3df cmNfb3NjX29wcyA9IHsKIAkucmVjYWxjX2FjY3VyYWN5ID0gY2xrX3Nsb3dfcmNfb3NjX3JlY2Fs Y19hY2N1cmFjeSwKIH07CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrICogX19pbml0CitzdGF0aWMgc3Ry dWN0IGNsa19jb3JlICogX19pbml0CiBhdDkxX2Nsa19yZWdpc3Rlcl9zbG93X3JjX29zYyh2b2lk IF9faW9tZW0gKnNja2NyLAogCQkJICAgICAgY29uc3QgY2hhciAqbmFtZSwKIAkJCSAgICAgIHVu c2lnbmVkIGxvbmcgZnJlcXVlbmN5LApAQCAtMjM3LDcgKzIzNyw3IEBAIGF0OTFfY2xrX3JlZ2lz dGVyX3Nsb3dfcmNfb3NjKHZvaWQgX19pb21lbSAqc2NrY3IsCiAJCQkgICAgICB1bnNpZ25lZCBs b25nIHN0YXJ0dXApCiB7CiAJc3RydWN0IGNsa19zbG93X3JjX29zYyAqb3NjOwotCXN0cnVjdCBj bGsgKmNsayA9IE5VTEw7CisJc3RydWN0IGNsa19jb3JlICpjbGsgPSBOVUxMOwogCXN0cnVjdCBj bGtfaW5pdF9kYXRhIGluaXQ7CiAKIAlpZiAoIXNja2NyIHx8ICFuYW1lKQpAQCAtMjY5LDcgKzI2 OSw3IEBAIGF0OTFfY2xrX3JlZ2lzdGVyX3Nsb3dfcmNfb3NjKHZvaWQgX19pb21lbSAqc2NrY3Is CiB2b2lkIF9faW5pdCBvZl9hdDkxc2FtOXg1X2Nsa19zbG93X3JjX29zY19zZXR1cChzdHJ1Y3Qg ZGV2aWNlX25vZGUgKm5wLAogCQkJCQkJdm9pZCBfX2lvbWVtICpzY2tjcikKIHsKLQlzdHJ1Y3Qg Y2xrICpjbGs7CisJc3RydWN0IGNsa19jb3JlICpjbGs7CiAJdTMyIGZyZXF1ZW5jeSA9IDA7CiAJ dTMyIGFjY3VyYWN5ID0gMDsKIAl1MzIgc3RhcnR1cCA9IDA7CkBAIC0zMjcsMTQgKzMyNywxNCBA QCBzdGF0aWMgY29uc3Qgc3RydWN0IGNsa19vcHMgc2FtOXg1X3Nsb3dfb3BzID0gewogCS5nZXRf cGFyZW50ID0gY2xrX3NhbTl4NV9zbG93X2dldF9wYXJlbnQsCiB9OwogCi1zdGF0aWMgc3RydWN0 IGNsayAqIF9faW5pdAorc3RhdGljIHN0cnVjdCBjbGtfY29yZSAqIF9faW5pdAogYXQ5MV9jbGtf cmVnaXN0ZXJfc2FtOXg1X3Nsb3codm9pZCBfX2lvbWVtICpzY2tjciwKIAkJCSAgICAgIGNvbnN0 IGNoYXIgKm5hbWUsCiAJCQkgICAgICBjb25zdCBjaGFyICoqcGFyZW50X25hbWVzLAogCQkJICAg ICAgaW50IG51bV9wYXJlbnRzKQogewogCXN0cnVjdCBjbGtfc2FtOXg1X3Nsb3cgKnNsb3djazsK LQlzdHJ1Y3QgY2xrICpjbGsgPSBOVUxMOworCXN0cnVjdCBjbGtfY29yZSAqY2xrID0gTlVMTDsK IAlzdHJ1Y3QgY2xrX2luaXRfZGF0YSBpbml0OwogCiAJaWYgKCFzY2tjciB8fCAhbmFtZSB8fCAh cGFyZW50X25hbWVzIHx8ICFudW1fcGFyZW50cykKQEAgLTM2NCw3ICszNjQsNyBAQCBhdDkxX2Ns a19yZWdpc3Rlcl9zYW05eDVfc2xvdyh2b2lkIF9faW9tZW0gKnNja2NyLAogdm9pZCBfX2luaXQg b2ZfYXQ5MXNhbTl4NV9jbGtfc2xvd19zZXR1cChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wLAogCQkJ CQkgdm9pZCBfX2lvbWVtICpzY2tjcikKIHsKLQlzdHJ1Y3QgY2xrICpjbGs7CisJc3RydWN0IGNs a19jb3JlICpjbGs7CiAJY29uc3QgY2hhciAqcGFyZW50X25hbWVzWzJdOwogCWludCBudW1fcGFy ZW50czsKIAljb25zdCBjaGFyICpuYW1lID0gbnAtPm5hbWU7CkBAIC00MDEsMTQgKzQwMSwxNCBA QCBzdGF0aWMgY29uc3Qgc3RydWN0IGNsa19vcHMgc2FtOTI2MF9zbG93X29wcyA9IHsKIAkuZ2V0 X3BhcmVudCA9IGNsa19zYW05MjYwX3Nsb3dfZ2V0X3BhcmVudCwKIH07CiAKLXN0YXRpYyBzdHJ1 Y3QgY2xrICogX19pbml0CitzdGF0aWMgc3RydWN0IGNsa19jb3JlICogX19pbml0CiBhdDkxX2Ns a19yZWdpc3Rlcl9zYW05MjYwX3Nsb3coc3RydWN0IGF0OTFfcG1jICpwbWMsCiAJCQkgICAgICAg Y29uc3QgY2hhciAqbmFtZSwKIAkJCSAgICAgICBjb25zdCBjaGFyICoqcGFyZW50X25hbWVzLAog CQkJICAgICAgIGludCBudW1fcGFyZW50cykKIHsKIAlzdHJ1Y3QgY2xrX3NhbTkyNjBfc2xvdyAq c2xvd2NrOwotCXN0cnVjdCBjbGsgKmNsayA9IE5VTEw7CisJc3RydWN0IGNsa19jb3JlICpjbGsg PSBOVUxMOwogCXN0cnVjdCBjbGtfaW5pdF9kYXRhIGluaXQ7CiAKIAlpZiAoIXBtYyB8fCAhbmFt ZSkKQEAgLTQ0MCw3ICs0NDAsNyBAQCBhdDkxX2Nsa19yZWdpc3Rlcl9zYW05MjYwX3Nsb3coc3Ry dWN0IGF0OTFfcG1jICpwbWMsCiB2b2lkIF9faW5pdCBvZl9hdDkxc2FtOTI2MF9jbGtfc2xvd19z ZXR1cChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wLAogCQkJCQkgIHN0cnVjdCBhdDkxX3BtYyAqcG1j KQogewotCXN0cnVjdCBjbGsgKmNsazsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmNsazsKIAljb25zdCBj aGFyICpwYXJlbnRfbmFtZXNbMl07CiAJaW50IG51bV9wYXJlbnRzOwogCWNvbnN0IGNoYXIgKm5h bWUgPSBucC0+bmFtZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL2F0OTEvY2xrLXNtZC5jIGIv ZHJpdmVycy9jbGsvYXQ5MS9jbGstc21kLmMKaW5kZXggMTQ0ZDQ3ZS4uODgyMGI4NCAxMDA2NDQK LS0tIGEvZHJpdmVycy9jbGsvYXQ5MS9jbGstc21kLmMKKysrIGIvZHJpdmVycy9jbGsvYXQ5MS9j bGstc21kLmMKQEAgLTExMywxMiArMTEzLDEyIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrX29w cyBhdDkxc2FtOXg1X3NtZF9vcHMgPSB7CiAJLnNldF9yYXRlID0gYXQ5MXNhbTl4NV9jbGtfc21k X3NldF9yYXRlLAogfTsKIAotc3RhdGljIHN0cnVjdCBjbGsgKiBfX2luaXQKK3N0YXRpYyBzdHJ1 Y3QgY2xrX2NvcmUgKiBfX2luaXQKIGF0OTFzYW05eDVfY2xrX3JlZ2lzdGVyX3NtZChzdHJ1Y3Qg YXQ5MV9wbWMgKnBtYywgY29uc3QgY2hhciAqbmFtZSwKIAkJCSAgICBjb25zdCBjaGFyICoqcGFy ZW50X25hbWVzLCB1OCBudW1fcGFyZW50cykKIHsKIAlzdHJ1Y3QgYXQ5MXNhbTl4NV9jbGtfc21k ICpzbWQ7Ci0Jc3RydWN0IGNsayAqY2xrID0gTlVMTDsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmNsayA9 IE5VTEw7CiAJc3RydWN0IGNsa19pbml0X2RhdGEgaW5pdDsKIAogCXNtZCA9IGt6YWxsb2Moc2l6 ZW9mKCpzbWQpLCBHRlBfS0VSTkVMKTsKQEAgLTE0NCw3ICsxNDQsNyBAQCBhdDkxc2FtOXg1X2Ns a19yZWdpc3Rlcl9zbWQoc3RydWN0IGF0OTFfcG1jICpwbWMsIGNvbnN0IGNoYXIgKm5hbWUsCiB2 b2lkIF9faW5pdCBvZl9hdDkxc2FtOXg1X2Nsa19zbWRfc2V0dXAoc3RydWN0IGRldmljZV9ub2Rl ICpucCwKIAkJCQkJc3RydWN0IGF0OTFfcG1jICpwbWMpCiB7Ci0Jc3RydWN0IGNsayAqY2xrOwor CXN0cnVjdCBjbGtfY29yZSAqY2xrOwogCWludCBpOwogCWludCBudW1fcGFyZW50czsKIAljb25z dCBjaGFyICpwYXJlbnRfbmFtZXNbU01EX1NPVVJDRV9NQVhdOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9jbGsvYXQ5MS9jbGstc3lzdGVtLmMgYi9kcml2ZXJzL2Nsay9hdDkxL2Nsay1zeXN0ZW0uYwpp bmRleCBhNzZkMDNmLi43ZjQ4Y2RlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay9hdDkxL2Nsay1z eXN0ZW0uYworKysgYi9kcml2ZXJzL2Nsay9hdDkxL2Nsay1zeXN0ZW0uYwpAQCAtOTksMTIgKzk5 LDEyIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrX29wcyBzeXN0ZW1fb3BzID0gewogCS5pc19w cmVwYXJlZCA9IGNsa19zeXN0ZW1faXNfcHJlcGFyZWQsCiB9OwogCi1zdGF0aWMgc3RydWN0IGNs ayAqIF9faW5pdAorc3RhdGljIHN0cnVjdCBjbGtfY29yZSAqIF9faW5pdAogYXQ5MV9jbGtfcmVn aXN0ZXJfc3lzdGVtKHN0cnVjdCBhdDkxX3BtYyAqcG1jLCBjb25zdCBjaGFyICpuYW1lLAogCQkJ IGNvbnN0IGNoYXIgKnBhcmVudF9uYW1lLCB1OCBpZCwgaW50IGlycSkKIHsKIAlzdHJ1Y3QgY2xr X3N5c3RlbSAqc3lzOwotCXN0cnVjdCBjbGsgKmNsayA9IE5VTEw7CisJc3RydWN0IGNsa19jb3Jl ICpjbGsgPSBOVUxMOwogCXN0cnVjdCBjbGtfaW5pdF9kYXRhIGluaXQ7CiAJaW50IHJldDsKIApA QCAtMTQ3LDcgKzE0Nyw3IEBAIG9mX2F0OTFfY2xrX3N5c19zZXR1cChzdHJ1Y3QgZGV2aWNlX25v ZGUgKm5wLCBzdHJ1Y3QgYXQ5MV9wbWMgKnBtYykKIAlpbnQgbnVtOwogCWludCBpcnEgPSAwOwog CXUzMiBpZDsKLQlzdHJ1Y3QgY2xrICpjbGs7CisJc3RydWN0IGNsa19jb3JlICpjbGs7CiAJY29u c3QgY2hhciAqbmFtZTsKIAlzdHJ1Y3QgZGV2aWNlX25vZGUgKnN5c2Nsa25wOwogCWNvbnN0IGNo YXIgKnBhcmVudF9uYW1lOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvYXQ5MS9jbGstdXNiLmMg Yi9kcml2ZXJzL2Nsay9hdDkxL2Nsay11c2IuYwppbmRleCAyNGI1YjAyLi45NGI1ODcxIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2Nsay9hdDkxL2Nsay11c2IuYworKysgYi9kcml2ZXJzL2Nsay9hdDkx L2Nsay11c2IuYwpAQCAtMTYyLDEyICsxNjIsMTIgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtf b3BzIGF0OTFzYW05bjEyX3VzYl9vcHMgPSB7CiAJLnNldF9yYXRlID0gYXQ5MXNhbTl4NV9jbGtf dXNiX3NldF9yYXRlLAogfTsKIAotc3RhdGljIHN0cnVjdCBjbGsgKiBfX2luaXQKK3N0YXRpYyBz dHJ1Y3QgY2xrX2NvcmUgKiBfX2luaXQKIGF0OTFzYW05eDVfY2xrX3JlZ2lzdGVyX3VzYihzdHJ1 Y3QgYXQ5MV9wbWMgKnBtYywgY29uc3QgY2hhciAqbmFtZSwKIAkJCSAgICBjb25zdCBjaGFyICoq cGFyZW50X25hbWVzLCB1OCBudW1fcGFyZW50cykKIHsKIAlzdHJ1Y3QgYXQ5MXNhbTl4NV9jbGtf dXNiICp1c2I7Ci0Jc3RydWN0IGNsayAqY2xrID0gTlVMTDsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmNs ayA9IE5VTEw7CiAJc3RydWN0IGNsa19pbml0X2RhdGEgaW5pdDsKIAogCXVzYiA9IGt6YWxsb2Mo c2l6ZW9mKCp1c2IpLCBHRlBfS0VSTkVMKTsKQEAgLTE5MCwxMiArMTkwLDEyIEBAIGF0OTFzYW05 eDVfY2xrX3JlZ2lzdGVyX3VzYihzdHJ1Y3QgYXQ5MV9wbWMgKnBtYywgY29uc3QgY2hhciAqbmFt ZSwKIAlyZXR1cm4gY2xrOwogfQogCi1zdGF0aWMgc3RydWN0IGNsayAqIF9faW5pdAorc3RhdGlj IHN0cnVjdCBjbGtfY29yZSAqIF9faW5pdAogYXQ5MXNhbTluMTJfY2xrX3JlZ2lzdGVyX3VzYihz dHJ1Y3QgYXQ5MV9wbWMgKnBtYywgY29uc3QgY2hhciAqbmFtZSwKIAkJCSAgICAgY29uc3QgY2hh ciAqcGFyZW50X25hbWUpCiB7CiAJc3RydWN0IGF0OTFzYW05eDVfY2xrX3VzYiAqdXNiOwotCXN0 cnVjdCBjbGsgKmNsayA9IE5VTEw7CisJc3RydWN0IGNsa19jb3JlICpjbGsgPSBOVUxMOwogCXN0 cnVjdCBjbGtfaW5pdF9kYXRhIGluaXQ7CiAKIAl1c2IgPSBremFsbG9jKHNpemVvZigqdXNiKSwg R0ZQX0tFUk5FTCk7CkBAIC0yMzgsNyArMjM4LDcgQEAgc3RhdGljIGxvbmcgYXQ5MXJtOTIwMF9j bGtfdXNiX3JvdW5kX3JhdGUoc3RydWN0IGNsa19odyAqaHcsIHVuc2lnbmVkIGxvbmcgcmF0ZSwK IAkJCQkJICB1bnNpZ25lZCBsb25nICpwYXJlbnRfcmF0ZSkKIHsKIAlzdHJ1Y3QgYXQ5MXJtOTIw MF9jbGtfdXNiICp1c2IgPSB0b19hdDkxcm05MjAwX2Nsa191c2IoaHcpOwotCXN0cnVjdCBjbGsg KnBhcmVudCA9IF9fY2xrX2dldF9wYXJlbnQoaHctPmNsayk7CisJc3RydWN0IGNsa19jb3JlICpw YXJlbnQgPSBfX2Nsa19nZXRfcGFyZW50KGh3LT5jbGspOwogCXVuc2lnbmVkIGxvbmcgYmVzdHJh dGUgPSAwOwogCWludCBiZXN0ZGlmZiA9IC0xOwogCXVuc2lnbmVkIGxvbmcgdG1wcmF0ZTsKQEAg LTMwNSwxMiArMzA1LDEyIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrX29wcyBhdDkxcm05MjAw X3VzYl9vcHMgPSB7CiAJLnNldF9yYXRlID0gYXQ5MXJtOTIwMF9jbGtfdXNiX3NldF9yYXRlLAog fTsKIAotc3RhdGljIHN0cnVjdCBjbGsgKiBfX2luaXQKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUg KiBfX2luaXQKIGF0OTFybTkyMDBfY2xrX3JlZ2lzdGVyX3VzYihzdHJ1Y3QgYXQ5MV9wbWMgKnBt YywgY29uc3QgY2hhciAqbmFtZSwKIAkJCSAgICBjb25zdCBjaGFyICpwYXJlbnRfbmFtZSwgY29u c3QgdTMyICpkaXZpc29ycykKIHsKIAlzdHJ1Y3QgYXQ5MXJtOTIwMF9jbGtfdXNiICp1c2I7Ci0J c3RydWN0IGNsayAqY2xrID0gTlVMTDsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmNsayA9IE5VTEw7CiAJ c3RydWN0IGNsa19pbml0X2RhdGEgaW5pdDsKIAogCXVzYiA9IGt6YWxsb2Moc2l6ZW9mKCp1c2Ip LCBHRlBfS0VSTkVMKTsKQEAgLTMzNyw3ICszMzcsNyBAQCBhdDkxcm05MjAwX2Nsa19yZWdpc3Rl cl91c2Ioc3RydWN0IGF0OTFfcG1jICpwbWMsIGNvbnN0IGNoYXIgKm5hbWUsCiB2b2lkIF9faW5p dCBvZl9hdDkxc2FtOXg1X2Nsa191c2Jfc2V0dXAoc3RydWN0IGRldmljZV9ub2RlICpucCwKIAkJ CQkJc3RydWN0IGF0OTFfcG1jICpwbWMpCiB7Ci0Jc3RydWN0IGNsayAqY2xrOworCXN0cnVjdCBj bGtfY29yZSAqY2xrOwogCWludCBpOwogCWludCBudW1fcGFyZW50czsKIAljb25zdCBjaGFyICpw YXJlbnRfbmFtZXNbVVNCX1NPVVJDRV9NQVhdOwpAQCAtMzY1LDcgKzM2NSw3IEBAIHZvaWQgX19p bml0IG9mX2F0OTFzYW05eDVfY2xrX3VzYl9zZXR1cChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wLAog dm9pZCBfX2luaXQgb2ZfYXQ5MXNhbTluMTJfY2xrX3VzYl9zZXR1cChzdHJ1Y3QgZGV2aWNlX25v ZGUgKm5wLAogCQkJCQkgc3RydWN0IGF0OTFfcG1jICpwbWMpCiB7Ci0Jc3RydWN0IGNsayAqY2xr OworCXN0cnVjdCBjbGtfY29yZSAqY2xrOwogCWNvbnN0IGNoYXIgKnBhcmVudF9uYW1lOwogCWNv bnN0IGNoYXIgKm5hbWUgPSBucC0+bmFtZTsKIApAQCAtMzg1LDcgKzM4NSw3IEBAIHZvaWQgX19p bml0IG9mX2F0OTFzYW05bjEyX2Nsa191c2Jfc2V0dXAoc3RydWN0IGRldmljZV9ub2RlICpucCwK IHZvaWQgX19pbml0IG9mX2F0OTFybTkyMDBfY2xrX3VzYl9zZXR1cChzdHJ1Y3QgZGV2aWNlX25v ZGUgKm5wLAogCQkJCQlzdHJ1Y3QgYXQ5MV9wbWMgKnBtYykKIHsKLQlzdHJ1Y3QgY2xrICpjbGs7 CisJc3RydWN0IGNsa19jb3JlICpjbGs7CiAJY29uc3QgY2hhciAqcGFyZW50X25hbWU7CiAJY29u c3QgY2hhciAqbmFtZSA9IG5wLT5uYW1lOwogCXUzMiBkaXZpc29yc1s0XSA9IHswLCAwLCAwLCAw fTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL2F0OTEvY2xrLXV0bWkuYyBiL2RyaXZlcnMvY2xr L2F0OTEvY2xrLXV0bWkuYwppbmRleCBhZTMyNjNiLi4wNTAyMDUwIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2Nsay9hdDkxL2Nsay11dG1pLmMKKysrIGIvZHJpdmVycy9jbGsvYXQ5MS9jbGstdXRtaS5j CkBAIC05MiwxMyArOTIsMTMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtfb3BzIHV0bWlfb3Bz ID0gewogCS5yZWNhbGNfcmF0ZSA9IGNsa191dG1pX3JlY2FsY19yYXRlLAogfTsKIAotc3RhdGlj IHN0cnVjdCBjbGsgKiBfX2luaXQKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgKiBfX2luaXQKIGF0 OTFfY2xrX3JlZ2lzdGVyX3V0bWkoc3RydWN0IGF0OTFfcG1jICpwbWMsIHVuc2lnbmVkIGludCBp cnEsCiAJCSAgICAgICBjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpwYXJlbnRfbmFtZSkK IHsKIAlpbnQgcmV0OwogCXN0cnVjdCBjbGtfdXRtaSAqdXRtaTsKLQlzdHJ1Y3QgY2xrICpjbGsg PSBOVUxMOworCXN0cnVjdCBjbGtfY29yZSAqY2xrID0gTlVMTDsKIAlzdHJ1Y3QgY2xrX2luaXRf ZGF0YSBpbml0OwogCiAJdXRtaSA9IGt6YWxsb2Moc2l6ZW9mKCp1dG1pKSwgR0ZQX0tFUk5FTCk7 CkBAIC0xMzIsNyArMTMyLDcgQEAgc3RhdGljIHZvaWQgX19pbml0CiBvZl9hdDkxX2Nsa191dG1p X3NldHVwKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsIHN0cnVjdCBhdDkxX3BtYyAqcG1jKQogewog CXVuc2lnbmVkIGludCBpcnE7Ci0Jc3RydWN0IGNsayAqY2xrOworCXN0cnVjdCBjbGtfY29yZSAq Y2xrOwogCWNvbnN0IGNoYXIgKnBhcmVudF9uYW1lOwogCWNvbnN0IGNoYXIgKm5hbWUgPSBucC0+ bmFtZTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvYmNtL2Nsay1rb25hLXNldHVwLmMgYi9k cml2ZXJzL2Nsay9iY20vY2xrLWtvbmEtc2V0dXAuYwppbmRleCBlNWFlZGVkLi4xMjJlN2IwIDEw MDY0NAotLS0gYS9kcml2ZXJzL2Nsay9iY20vY2xrLWtvbmEtc2V0dXAuYworKysgYi9kcml2ZXJz L2Nsay9iY20vY2xrLWtvbmEtc2V0dXAuYwpAQCAtNjk3LDcgKzY5Nyw3IEBAIHN0YXRpYyB2b2lk IGJjbV9jbGtfdGVhcmRvd24oc3RydWN0IGtvbmFfY2xrICpiY21fY2xrKQogCWJjbV9jbGstPnR5 cGUgPSBiY21fY2xrX25vbmU7CiB9CiAKLXN0YXRpYyB2b2lkIGtvbmFfY2xrX3RlYXJkb3duKHN0 cnVjdCBjbGsgKmNsaykKK3N0YXRpYyB2b2lkIGtvbmFfY2xrX3RlYXJkb3duKHN0cnVjdCBjbGtf Y29yZSAqY2xrKQogewogCXN0cnVjdCBjbGtfaHcgKmh3OwogCXN0cnVjdCBrb25hX2NsayAqYmNt X2NsazsKQEAgLTcxNiwxMCArNzE2LDEwIEBAIHN0YXRpYyB2b2lkIGtvbmFfY2xrX3RlYXJkb3du KHN0cnVjdCBjbGsgKmNsaykKIAliY21fY2xrX3RlYXJkb3duKGJjbV9jbGspOwogfQogCi1zdHJ1 Y3QgY2xrICprb25hX2Nsa19zZXR1cChzdHJ1Y3Qga29uYV9jbGsgKmJjbV9jbGspCitzdHJ1Y3Qg Y2xrX2NvcmUgKmtvbmFfY2xrX3NldHVwKHN0cnVjdCBrb25hX2NsayAqYmNtX2NsaykKIHsKIAlz dHJ1Y3QgY2xrX2luaXRfZGF0YSAqaW5pdF9kYXRhID0gJmJjbV9jbGstPmluaXRfZGF0YTsKLQlz dHJ1Y3QgY2xrICpjbGsgPSBOVUxMOworCXN0cnVjdCBjbGtfY29yZSAqY2xrID0gTlVMTDsKIAog CXN3aXRjaCAoYmNtX2Nsay0+dHlwZSkgewogCWNhc2UgYmNtX2Nsa19wZXJpOgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9jbGsvYmNtL2Nsay1rb25hLmMgYi9kcml2ZXJzL2Nsay9iY20vY2xrLWtvbmEu YwppbmRleCA5NWFmMmU2Li5hMzAxYWE5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay9iY20vY2xr LWtvbmEuYworKysgYi9kcml2ZXJzL2Nsay9iY20vY2xrLWtvbmEuYwpAQCAtMTAzMiwxMSArMTAz MiwxMSBAQCBzdGF0aWMgbG9uZyBrb25hX3BlcmlfY2xrX3JvdW5kX3JhdGUoc3RydWN0IGNsa19o dyAqaHcsIHVuc2lnbmVkIGxvbmcgcmF0ZSwKIH0KIAogc3RhdGljIGxvbmcga29uYV9wZXJpX2Ns a19kZXRlcm1pbmVfcmF0ZShzdHJ1Y3QgY2xrX2h3ICpodywgdW5zaWduZWQgbG9uZyByYXRlLAot CQl1bnNpZ25lZCBsb25nICpiZXN0X3BhcmVudF9yYXRlLCBzdHJ1Y3QgY2xrICoqYmVzdF9wYXJl bnQpCisJCXVuc2lnbmVkIGxvbmcgKmJlc3RfcGFyZW50X3JhdGUsIHN0cnVjdCBjbGtfY29yZSAq KmJlc3RfcGFyZW50KQogewogCXN0cnVjdCBrb25hX2NsayAqYmNtX2NsayA9IHRvX2tvbmFfY2xr KGh3KTsKLQlzdHJ1Y3QgY2xrICpjbGsgPSBody0+Y2xrOwotCXN0cnVjdCBjbGsgKmN1cnJlbnRf cGFyZW50OworCXN0cnVjdCBjbGtfY29yZSAqY2xrID0gaHctPmNsazsKKwlzdHJ1Y3QgY2xrX2Nv cmUgKmN1cnJlbnRfcGFyZW50OwogCXVuc2lnbmVkIGxvbmcgcGFyZW50X3JhdGU7CiAJdW5zaWdu ZWQgbG9uZyBiZXN0X2RlbHRhOwogCXVuc2lnbmVkIGxvbmcgYmVzdF9yYXRlOwpAQCAtMTA1Mywx NCArMTA1MywxNCBAQCBzdGF0aWMgbG9uZyBrb25hX3BlcmlfY2xrX2RldGVybWluZV9yYXRlKHN0 cnVjdCBjbGtfaHcgKmh3LCB1bnNpZ25lZCBsb25nIHJhdGUsCiAJCXJldHVybiBrb25hX3Blcmlf Y2xrX3JvdW5kX3JhdGUoaHcsIHJhdGUsIGJlc3RfcGFyZW50X3JhdGUpOwogCiAJLyogVW5sZXNz IHdlIGNhbiBkbyBiZXR0ZXIsIHN0aWNrIHdpdGggY3VycmVudCBwYXJlbnQgKi8KLQljdXJyZW50 X3BhcmVudCA9IGNsa19nZXRfcGFyZW50KGNsayk7CisJY3VycmVudF9wYXJlbnQgPSBjbGtfcHJv dmlkZXJfZ2V0X3BhcmVudChjbGspOwogCXBhcmVudF9yYXRlID0gX19jbGtfZ2V0X3JhdGUoY3Vy cmVudF9wYXJlbnQpOwogCWJlc3RfcmF0ZSA9IGtvbmFfcGVyaV9jbGtfcm91bmRfcmF0ZShodywg cmF0ZSwgJnBhcmVudF9yYXRlKTsKIAliZXN0X2RlbHRhID0gYWJzKGJlc3RfcmF0ZSAtIHJhdGUp OwogCiAJLyogQ2hlY2sgd2hldGhlciBhbnkgb3RoZXIgcGFyZW50IGNsb2NrIGNhbiBwcm9kdWNl IGEgYmV0dGVyIHJlc3VsdCAqLwogCWZvciAod2hpY2ggPSAwOyB3aGljaCA8IHBhcmVudF9jb3Vu dDsgd2hpY2grKykgewotCQlzdHJ1Y3QgY2xrICpwYXJlbnQgPSBjbGtfZ2V0X3BhcmVudF9ieV9p bmRleChjbGssIHdoaWNoKTsKKwkJc3RydWN0IGNsa19jb3JlICpwYXJlbnQgPSBjbGtfZ2V0X3Bh cmVudF9ieV9pbmRleChjbGssIHdoaWNoKTsKIAkJdW5zaWduZWQgbG9uZyBkZWx0YTsKIAkJdW5z aWduZWQgbG9uZyBvdGhlcl9yYXRlOwogCkBAIC0xMjYwLDcgKzEyNjAsNyBAQCBib29sIF9faW5p dCBrb25hX2NjdV9pbml0KHN0cnVjdCBjY3VfZGF0YSAqY2N1KQogewogCXVuc2lnbmVkIGxvbmcg ZmxhZ3M7CiAJdW5zaWduZWQgaW50IHdoaWNoOwotCXN0cnVjdCBjbGsgKipjbGtzID0gY2N1LT5j bGtfZGF0YS5jbGtzOworCXN0cnVjdCBjbGtfY29yZSAqKmNsa3MgPSBjY3UtPmNsa19kYXRhLmNs a3M7CiAJYm9vbCBzdWNjZXNzID0gdHJ1ZTsKIAogCWZsYWdzID0gY2N1X2xvY2soY2N1KTsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvY2xrL2JjbS9jbGsta29uYS5oIGIvZHJpdmVycy9jbGsvYmNtL2Ns ay1rb25hLmgKaW5kZXggMjUzN2IzMC4uYzJkMDE1MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsv YmNtL2Nsay1rb25hLmgKKysrIGIvZHJpdmVycy9jbGsvYmNtL2Nsay1rb25hLmgKQEAgLTUwOCw3 ICs1MDgsNyBAQCBleHRlcm4gdTY0IHNjYWxlZF9kaXZfbWF4KHN0cnVjdCBiY21fY2xrX2RpdiAq ZGl2KTsKIGV4dGVybiB1NjQgc2NhbGVkX2Rpdl9idWlsZChzdHJ1Y3QgYmNtX2Nsa19kaXYgKmRp diwgdTMyIGRpdl92YWx1ZSwKIAkJCQl1MzIgYmlsbGlvbnRocyk7CiAKLWV4dGVybiBzdHJ1Y3Qg Y2xrICprb25hX2Nsa19zZXR1cChzdHJ1Y3Qga29uYV9jbGsgKmJjbV9jbGspOworZXh0ZXJuIHN0 cnVjdCBjbGtfY29yZSAqa29uYV9jbGtfc2V0dXAoc3RydWN0IGtvbmFfY2xrICpiY21fY2xrKTsK IGV4dGVybiB2b2lkIF9faW5pdCBrb25hX2R0X2NjdV9zZXR1cChzdHJ1Y3QgY2N1X2RhdGEgKmNj dSwKIAkJCQlzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUpOwogZXh0ZXJuIGJvb2wgX19pbml0IGtv bmFfY2N1X2luaXQoc3RydWN0IGNjdV9kYXRhICpjY3UpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9j bGsvYmVybGluL2JlcmxpbjItYXZwbGwuYyBiL2RyaXZlcnMvY2xrL2Jlcmxpbi9iZXJsaW4yLWF2 cGxsLmMKaW5kZXggZmQwZjI2Yy4uNDg4ZDk4NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvYmVy bGluL2JlcmxpbjItYXZwbGwuYworKysgYi9kcml2ZXJzL2Nsay9iZXJsaW4vYmVybGluMi1hdnBs bC5jCkBAIC0xODgsNyArMTg4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtfb3BzIGJlcmxp bjJfYXZwbGxfdmNvX29wcyA9IHsKIAkucmVjYWxjX3JhdGUJPSBiZXJsaW4yX2F2cGxsX3Zjb19y ZWNhbGNfcmF0ZSwKIH07CiAKLXN0cnVjdCBjbGsgKiBfX2luaXQgYmVybGluMl9hdnBsbF92Y29f cmVnaXN0ZXIodm9pZCBfX2lvbWVtICpiYXNlLAorc3RydWN0IGNsa19jb3JlICogX19pbml0IGJl cmxpbjJfYXZwbGxfdmNvX3JlZ2lzdGVyKHZvaWQgX19pb21lbSAqYmFzZSwKIAkJCSAgICAgICBj b25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpwYXJlbnRfbmFtZSwKIAkJCSAgICAgICB1OCB2 Y29fZmxhZ3MsIHVuc2lnbmVkIGxvbmcgZmxhZ3MpCiB7CkBAIC0zNjQsNyArMzY0LDcgQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCBjbGtfb3BzIGJlcmxpbjJfYXZwbGxfY2hhbm5lbF9vcHMgPSB7CiAg Ki8KIHN0YXRpYyBjb25zdCB1OCBxdWlya19pbmRleFtdIF9faW5pdGNvbnN0ID0geyAwLCA2LCA1 LCA0LCAzLCAyLCAxLCA3IH07CiAKLXN0cnVjdCBjbGsgKiBfX2luaXQgYmVybGluMl9hdnBsbF9j aGFubmVsX3JlZ2lzdGVyKHZvaWQgX19pb21lbSAqYmFzZSwKK3N0cnVjdCBjbGtfY29yZSAqIF9f aW5pdCBiZXJsaW4yX2F2cGxsX2NoYW5uZWxfcmVnaXN0ZXIodm9pZCBfX2lvbWVtICpiYXNlLAog CQkJICAgY29uc3QgY2hhciAqbmFtZSwgdTggaW5kZXgsIGNvbnN0IGNoYXIgKnBhcmVudF9uYW1l LAogCQkJICAgdTggY2hfZmxhZ3MsIHVuc2lnbmVkIGxvbmcgZmxhZ3MpCiB7CmRpZmYgLS1naXQg YS9kcml2ZXJzL2Nsay9iZXJsaW4vYmVybGluMi1hdnBsbC5oIGIvZHJpdmVycy9jbGsvYmVybGlu L2JlcmxpbjItYXZwbGwuaAppbmRleCBhMzdmNTA2Li4yMTZlZWU3IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2Nsay9iZXJsaW4vYmVybGluMi1hdnBsbC5oCisrKyBiL2RyaXZlcnMvY2xrL2Jlcmxpbi9i ZXJsaW4yLWF2cGxsLmgKQEAgLTI0LDExICsyNCwxMSBAQCBzdHJ1Y3QgY2xrOwogI2RlZmluZSBC RVJMSU4yX0FWUExMX0JJVF9RVUlSSwkJQklUKDApCiAjZGVmaW5lIEJFUkxJTjJfQVZQTExfU0NS QU1CTEVfUVVJUksJQklUKDEpCiAKLXN0cnVjdCBjbGsgKiBfX2luaXQKK3N0cnVjdCBjbGtfY29y ZSAqIF9faW5pdAogYmVybGluMl9hdnBsbF92Y29fcmVnaXN0ZXIodm9pZCBfX2lvbWVtICpiYXNl LCBjb25zdCBjaGFyICpuYW1lLAogCSAgIGNvbnN0IGNoYXIgKnBhcmVudF9uYW1lLCB1OCB2Y29f ZmxhZ3MsIHVuc2lnbmVkIGxvbmcgZmxhZ3MpOwogCi1zdHJ1Y3QgY2xrICogX19pbml0CitzdHJ1 Y3QgY2xrX2NvcmUgKiBfX2luaXQKIGJlcmxpbjJfYXZwbGxfY2hhbm5lbF9yZWdpc3Rlcih2b2lk IF9faW9tZW0gKmJhc2UsIGNvbnN0IGNoYXIgKm5hbWUsCiAJCSAgICAgICB1OCBpbmRleCwgY29u c3QgY2hhciAqcGFyZW50X25hbWUsIHU4IGNoX2ZsYWdzLAogCQkgICAgICAgdW5zaWduZWQgbG9u ZyBmbGFncyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9iZXJsaW4vYmVybGluMi1kaXYuYyBi L2RyaXZlcnMvY2xrL2Jlcmxpbi9iZXJsaW4yLWRpdi5jCmluZGV4IDgxZmY5N2YuLmM2NzMwODIg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL2Jlcmxpbi9iZXJsaW4yLWRpdi5jCisrKyBiL2RyaXZl cnMvY2xrL2Jlcmxpbi9iZXJsaW4yLWRpdi5jCkBAIC0yMzQsNyArMjM0LDcgQEAgc3RhdGljIGNv bnN0IHN0cnVjdCBjbGtfb3BzIGJlcmxpbjJfZGl2X211eF9vcHMgPSB7CiAJLmdldF9wYXJlbnQJ PSBiZXJsaW4yX2Rpdl9nZXRfcGFyZW50LAogfTsKIAotc3RydWN0IGNsayAqIF9faW5pdAorc3Ry dWN0IGNsa19jb3JlICogX19pbml0CiBiZXJsaW4yX2Rpdl9yZWdpc3Rlcihjb25zdCBzdHJ1Y3Qg YmVybGluMl9kaXZfbWFwICptYXAsCiAJCSAgICAgdm9pZCBfX2lvbWVtICpiYXNlLCBjb25zdCBj aGFyICpuYW1lLCB1OCBkaXZfZmxhZ3MsCiAJCSAgICAgY29uc3QgY2hhciAqKnBhcmVudF9uYW1l cywgaW50IG51bV9wYXJlbnRzLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvYmVybGluL2Jlcmxp bjItZGl2LmggYi9kcml2ZXJzL2Nsay9iZXJsaW4vYmVybGluMi1kaXYuaAppbmRleCAxNWUzMzg0 Li4zZGRiODdhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay9iZXJsaW4vYmVybGluMi1kaXYuaAor KysgYi9kcml2ZXJzL2Nsay9iZXJsaW4vYmVybGluMi1kaXYuaApAQCAtODAsNyArODAsNyBAQCBz dHJ1Y3QgYmVybGluMl9kaXZfZGF0YSB7CiAJdTggZGl2X2ZsYWdzOwogfTsKIAotc3RydWN0IGNs ayAqIF9faW5pdAorc3RydWN0IGNsa19jb3JlICogX19pbml0CiBiZXJsaW4yX2Rpdl9yZWdpc3Rl cihjb25zdCBzdHJ1Y3QgYmVybGluMl9kaXZfbWFwICptYXAsCiAJICAgICB2b2lkIF9faW9tZW0g KmJhc2UsICBjb25zdCBjaGFyICpuYW1lLCB1OCBkaXZfZmxhZ3MsCiAJICAgICBjb25zdCBjaGFy ICoqcGFyZW50X25hbWVzLCBpbnQgbnVtX3BhcmVudHMsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Ns ay9iZXJsaW4vYmVybGluMi1wbGwuYyBiL2RyaXZlcnMvY2xrL2Jlcmxpbi9iZXJsaW4yLXBsbC5j CmluZGV4IGJkYzUwNmIuLmI3YTMwMTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL2Jlcmxpbi9i ZXJsaW4yLXBsbC5jCisrKyBiL2RyaXZlcnMvY2xrL2Jlcmxpbi9iZXJsaW4yLXBsbC5jCkBAIC05 MSw3ICs5MSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrX29wcyBiZXJsaW4yX3BsbF9vcHMg PSB7CiAJLnJlY2FsY19yYXRlCT0gYmVybGluMl9wbGxfcmVjYWxjX3JhdGUsCiB9OwogCi1zdHJ1 Y3QgY2xrICogX19pbml0CitzdHJ1Y3QgY2xrX2NvcmUgKiBfX2luaXQKIGJlcmxpbjJfcGxsX3Jl Z2lzdGVyKGNvbnN0IHN0cnVjdCBiZXJsaW4yX3BsbF9tYXAgKm1hcCwKIAkJICAgICB2b2lkIF9f aW9tZW0gKmJhc2UsIGNvbnN0IGNoYXIgKm5hbWUsCiAJCSAgICAgY29uc3QgY2hhciAqcGFyZW50 X25hbWUsIHVuc2lnbmVkIGxvbmcgZmxhZ3MpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9iZXJs aW4vYmVybGluMi1wbGwuaCBiL2RyaXZlcnMvY2xrL2Jlcmxpbi9iZXJsaW4yLXBsbC5oCmluZGV4 IDg4MzFjZTIuLjZiNmE2ZWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL2Jlcmxpbi9iZXJsaW4y LXBsbC5oCisrKyBiL2RyaXZlcnMvY2xrL2Jlcmxpbi9iZXJsaW4yLXBsbC5oCkBAIC0yOSw3ICsy OSw3IEBAIHN0cnVjdCBiZXJsaW4yX3BsbF9tYXAgewogCXU4IGRpdnNlbF9zaGlmdDsKIH07CiAK LXN0cnVjdCBjbGsgKiBfX2luaXQKK3N0cnVjdCBjbGtfY29yZSAqIF9faW5pdAogYmVybGluMl9w bGxfcmVnaXN0ZXIoY29uc3Qgc3RydWN0IGJlcmxpbjJfcGxsX21hcCAqbWFwLAogCQkgICAgIHZv aWQgX19pb21lbSAqYmFzZSwgY29uc3QgY2hhciAqbmFtZSwKIAkJICAgICBjb25zdCBjaGFyICpw YXJlbnRfbmFtZSwgdW5zaWduZWQgbG9uZyBmbGFncyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Ns ay9iZXJsaW4vYmcyLmMgYi9kcml2ZXJzL2Nsay9iZXJsaW4vYmcyLmMKaW5kZXggNGM4MWUwOS4u NDllY2IzZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvYmVybGluL2JnMi5jCisrKyBiL2RyaXZl cnMvY2xrL2Jlcmxpbi9iZzIuYwpAQCAtMTcsNyArMTcsNiBAQAogICogdGhpcyBwcm9ncmFtLiAg SWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgogICovCiAKLSNpbmNs dWRlIDxsaW51eC9jbGsuaD4KICNpbmNsdWRlIDxsaW51eC9jbGstcHJvdmlkZXIuaD4KICNpbmNs dWRlIDxsaW51eC9jbGtkZXYuaD4KICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KQEAgLTkzLDcg KzkyLDcgQEAKICAqLwogCiAjZGVmaW5lCU1BWF9DTEtTIDQxCi1zdGF0aWMgc3RydWN0IGNsayAq Y2xrc1tNQVhfQ0xLU107CitzdGF0aWMgc3RydWN0IGNsa19jb3JlICpjbGtzW01BWF9DTEtTXTsK IHN0YXRpYyBzdHJ1Y3QgY2xrX29uZWNlbGxfZGF0YSBjbGtfZGF0YTsKIHN0YXRpYyBERUZJTkVf U1BJTkxPQ0sobG9jayk7CiBzdGF0aWMgdm9pZCBfX2lvbWVtICpnYmFzZTsKQEAgLTUwNCw3ICs1 MDMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGJlcmxpbjJfZ2F0ZV9kYXRhIGJnMl9nYXRlc1td IF9faW5pdGNvbnN0ID0gewogc3RhdGljIHZvaWQgX19pbml0IGJlcmxpbjJfY2xvY2tfc2V0dXAo c3RydWN0IGRldmljZV9ub2RlICpucCkKIHsKIAljb25zdCBjaGFyICpwYXJlbnRfbmFtZXNbOV07 Ci0Jc3RydWN0IGNsayAqY2xrOworCXN0cnVjdCBjbGtfY29yZSAqY2xrOwogCXU4IGF2cGxsX2Zs YWdzID0gMDsKIAlpbnQgbjsKIApAQCAtNTEzLDE2ICs1MTIsMTYgQEAgc3RhdGljIHZvaWQgX19p bml0IGJlcmxpbjJfY2xvY2tfc2V0dXAoc3RydWN0IGRldmljZV9ub2RlICpucCkKIAkJcmV0dXJu OwogCiAJLyogb3ZlcndyaXRlIGRlZmF1bHQgY2xvY2sgbmFtZXMgd2l0aCBEVCBwcm92aWRlZCBv bmVzICovCi0JY2xrID0gb2ZfY2xrX2dldF9ieV9uYW1lKG5wLCBjbGtfbmFtZXNbUkVGQ0xLXSk7 CisJY2xrID0gb2ZfY2xrX3Byb3ZpZGVyX2dldF9ieV9uYW1lKG5wLCBjbGtfbmFtZXNbUkVGQ0xL XSk7CiAJaWYgKCFJU19FUlIoY2xrKSkgewogCQljbGtfbmFtZXNbUkVGQ0xLXSA9IF9fY2xrX2dl dF9uYW1lKGNsayk7Ci0JCWNsa19wdXQoY2xrKTsKKwkJX19jbGtfcHV0KGNsayk7CiAJfQogCi0J Y2xrID0gb2ZfY2xrX2dldF9ieV9uYW1lKG5wLCBjbGtfbmFtZXNbVklERU9fRVhUMF0pOworCWNs ayA9IG9mX2Nsa19wcm92aWRlcl9nZXRfYnlfbmFtZShucCwgY2xrX25hbWVzW1ZJREVPX0VYVDBd KTsKIAlpZiAoIUlTX0VSUihjbGspKSB7CiAJCWNsa19uYW1lc1tWSURFT19FWFQwXSA9IF9fY2xr X2dldF9uYW1lKGNsayk7Ci0JCWNsa19wdXQoY2xrKTsKKwkJX19jbGtfcHV0KGNsayk7CiAJfQog CiAJLyogc2ltcGxlIHJlZ2lzdGVyIFBMTHMgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL2Jl cmxpbi9iZzJxLmMgYi9kcml2ZXJzL2Nsay9iZXJsaW4vYmcycS5jCmluZGV4IDc0OGRhOWIuLjMz Y2MwOGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL2Jlcmxpbi9iZzJxLmMKKysrIGIvZHJpdmVy cy9jbGsvYmVybGluL2JnMnEuYwpAQCAtMTcsNyArMTcsNiBAQAogICogdGhpcyBwcm9ncmFtLiAg SWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgogICovCiAKLSNpbmNs dWRlIDxsaW51eC9jbGsuaD4KICNpbmNsdWRlIDxsaW51eC9jbGstcHJvdmlkZXIuaD4KICNpbmNs dWRlIDxsaW51eC9jbGtkZXYuaD4KICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KQEAgLTQ3LDcg KzQ2LDcgQEAKICNkZWZpbmUgUkVHX1NESU8xWElOX0NMS0NUTAkweDAxNWMKIAogI2RlZmluZQlN QVhfQ0xLUyAyNwotc3RhdGljIHN0cnVjdCBjbGsgKmNsa3NbTUFYX0NMS1NdOworc3RhdGljIHN0 cnVjdCBjbGtfY29yZSAqY2xrc1tNQVhfQ0xLU107CiBzdGF0aWMgc3RydWN0IGNsa19vbmVjZWxs X2RhdGEgY2xrX2RhdGE7CiBzdGF0aWMgREVGSU5FX1NQSU5MT0NLKGxvY2spOwogc3RhdGljIHZv aWQgX19pb21lbSAqZ2Jhc2U7CkBAIC0yOTMsNyArMjkyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVj dCBiZXJsaW4yX2dhdGVfZGF0YSBiZzJxX2dhdGVzW10gX19pbml0Y29uc3QgPSB7CiBzdGF0aWMg dm9pZCBfX2luaXQgYmVybGluMnFfY2xvY2tfc2V0dXAoc3RydWN0IGRldmljZV9ub2RlICpucCkK IHsKIAljb25zdCBjaGFyICpwYXJlbnRfbmFtZXNbOV07Ci0Jc3RydWN0IGNsayAqY2xrOworCXN0 cnVjdCBjbGtfY29yZSAqY2xrOwogCWludCBuOwogCiAJZ2Jhc2UgPSBvZl9pb21hcChucCwgMCk7 CkBAIC0zMTEsMTAgKzMxMCwxMCBAQCBzdGF0aWMgdm9pZCBfX2luaXQgYmVybGluMnFfY2xvY2tf c2V0dXAoc3RydWN0IGRldmljZV9ub2RlICpucCkKIAl9CiAKIAkvKiBvdmVyd3JpdGUgZGVmYXVs dCBjbG9jayBuYW1lcyB3aXRoIERUIHByb3ZpZGVkIG9uZXMgKi8KLQljbGsgPSBvZl9jbGtfZ2V0 X2J5X25hbWUobnAsIGNsa19uYW1lc1tSRUZDTEtdKTsKKwljbGsgPSBvZl9jbGtfcHJvdmlkZXJf Z2V0X2J5X25hbWUobnAsIGNsa19uYW1lc1tSRUZDTEtdKTsKIAlpZiAoIUlTX0VSUihjbGspKSB7 CiAJCWNsa19uYW1lc1tSRUZDTEtdID0gX19jbGtfZ2V0X25hbWUoY2xrKTsKLQkJY2xrX3B1dChj bGspOworCQlfX2Nsa19wdXQoY2xrKTsKIAl9CiAKIAkvKiBzaW1wbGUgcmVnaXN0ZXIgUExMcyAq LwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvY2xrLWF4aS1jbGtnZW4uYyBiL2RyaXZlcnMvY2xr L2Nsay1heGktY2xrZ2VuLmMKaW5kZXggMTEyN2VlNC4uZDkxNTUwYyAxMDA2NDQKLS0tIGEvZHJp dmVycy9jbGsvY2xrLWF4aS1jbGtnZW4uYworKysgYi9kcml2ZXJzL2Nsay9jbGstYXhpLWNsa2dl bi5jCkBAIC0xMCw3ICsxMCw2IEBACiAKICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2Uu aD4KICNpbmNsdWRlIDxsaW51eC9jbGstcHJvdmlkZXIuaD4KLSNpbmNsdWRlIDxsaW51eC9jbGsu aD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CiAjaW5jbHVkZSA8bGludXgvaW8uaD4KICNpbmNs dWRlIDxsaW51eC9vZi5oPgpAQCAtNDg5LDcgKzQ4OCw3IEBAIHN0YXRpYyBpbnQgYXhpX2Nsa2dl bl9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCWNvbnN0IGNoYXIgKnBhcmVu dF9uYW1lOwogCWNvbnN0IGNoYXIgKmNsa19uYW1lOwogCXN0cnVjdCByZXNvdXJjZSAqbWVtOwot CXN0cnVjdCBjbGsgKmNsazsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmNsazsKIAogCWlmICghcGRldi0+ ZGV2Lm9mX25vZGUpCiAJCXJldHVybiAtRU5PREVWOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsv Y2xrLWF4bTU1MTYuYyBiL2RyaXZlcnMvY2xrL2Nsay1heG01NTE2LmMKaW5kZXggZDJmMWUxMS4u M2RjNmU1OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvY2xrLWF4bTU1MTYuYworKysgYi9kcml2 ZXJzL2Nsay9jbGstYXhtNTUxNi5jCkBAIC01MzIsNyArNTMyLDcgQEAgTU9EVUxFX0RFVklDRV9U QUJMRShvZiwgYXhtY2xrX21hdGNoX3RhYmxlKTsKIAogc3RydWN0IGF4bWNsa19wcml2IHsKIAlz dHJ1Y3QgY2xrX29uZWNlbGxfZGF0YSBvbmVjZWxsOwotCXN0cnVjdCBjbGsgKmNsa3NbXTsKKwlz dHJ1Y3QgY2xrX2NvcmUgKmNsa3NbXTsKIH07CiAKIHN0YXRpYyBpbnQgYXhtY2xrX3Byb2JlKHN0 cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCkBAIC01NDEsNyArNTQxLDcgQEAgc3RhdGljIGlu dCBheG1jbGtfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlzdHJ1Y3QgcmVz b3VyY2UgKnJlczsKIAlpbnQgaSwgcmV0OwogCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZwZGV2LT5k ZXY7Ci0Jc3RydWN0IGNsayAqY2xrOworCXN0cnVjdCBjbGtfY29yZSAqY2xrOwogCXN0cnVjdCBy ZWdtYXAgKnJlZ21hcDsKIAlzaXplX3QgbnVtX2Nsa3M7CiAJc3RydWN0IGF4bWNsa19wcml2ICpw cml2OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvY2xrLWJjbTI4MzUuYyBiL2RyaXZlcnMvY2xr L2Nsay1iY20yODM1LmMKaW5kZXggNmI5NTBjYS4uZjI1ZTg1ZSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9jbGsvY2xrLWJjbTI4MzUuYworKysgYi9kcml2ZXJzL2Nsay9jbGstYmNtMjgzNS5jCkBAIC0y OSw3ICsyOSw3IEBACiAgKi8KIHZvaWQgX19pbml0IGJjbTI4MzVfaW5pdF9jbG9ja3Modm9pZCkK IHsKLQlzdHJ1Y3QgY2xrICpjbGs7CisJc3RydWN0IGNsa19jb3JlICpjbGs7CiAJaW50IHJldDsK IAogCWNsayA9IGNsa19yZWdpc3Rlcl9maXhlZF9yYXRlKE5VTEwsICJzeXNfcGNsayIsIE5VTEws IENMS19JU19ST09ULApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvY2xrLWNscHM3MTF4LmMgYi9k cml2ZXJzL2Nsay9jbGstY2xwczcxMXguYwppbmRleCA3MTVlZWMxLi42YWE2NGJiIDEwMDY0NAot LS0gYS9kcml2ZXJzL2Nsay9jbGstY2xwczcxMXguYworKysgYi9kcml2ZXJzL2Nsay9jbGstY2xw czcxMXguYwpAQCAtOSw3ICs5LDYgQEAKICAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl cnNpb24uCiAgKi8KIAotI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgogI2luY2x1ZGUgPGxpbnV4L2Ns ay1wcm92aWRlci5oPgogI2luY2x1ZGUgPGxpbnV4L2Nsa2Rldi5oPgogI2luY2x1ZGUgPGxpbnV4 L2lvLmg+CkBAIC00Myw3ICs0Miw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrX2Rpdl90YWJs ZSB0aW1lcl9kaXZfdGFibGVbXSA9IHsKIHN0cnVjdCBjbHBzNzExeF9jbGsgewogCXN0cnVjdCBj bGtfb25lY2VsbF9kYXRhCWNsa19kYXRhOwogCXNwaW5sb2NrX3QJCWxvY2s7Ci0Jc3RydWN0IGNs awkJKmNsa3NbQ0xQUzcxMVhfQ0xLX01BWF07CisJc3RydWN0IGNsa19jb3JlCQkqY2xrc1tDTFBT NzExWF9DTEtfTUFYXTsKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgY2xwczcxMXhfY2xrICogX19pbml0 IF9jbHBzNzExeF9jbGtfaW5pdCh2b2lkIF9faW9tZW0gKmJhc2UsCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2Nsay9jbGstY29tcG9zaXRlLmMgYi9kcml2ZXJzL2Nsay9jbGstY29tcG9zaXRlLmMKaW5k ZXggYjkzNTVkYS4uZDczMjJmYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvY2xrLWNvbXBvc2l0 ZS5jCisrKyBiL2RyaXZlcnMvY2xrL2Nsay1jb21wb3NpdGUuYwpAQCAtMTQsNyArMTQsNiBAQAog ICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUu b3JnL2xpY2Vuc2VzLz4uCiAgKi8KIAotI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgogI2luY2x1ZGUg PGxpbnV4L2Nsay1wcm92aWRlci5oPgogI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgogI2luY2x1ZGUg PGxpbnV4L3NsYWIuaD4KQEAgLTU3LDE0ICs1NiwxNCBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBj bGtfY29tcG9zaXRlX3JlY2FsY19yYXRlKHN0cnVjdCBjbGtfaHcgKmh3LAogCiBzdGF0aWMgbG9u ZyBjbGtfY29tcG9zaXRlX2RldGVybWluZV9yYXRlKHN0cnVjdCBjbGtfaHcgKmh3LCB1bnNpZ25l ZCBsb25nIHJhdGUsCiAJCQkJCXVuc2lnbmVkIGxvbmcgKmJlc3RfcGFyZW50X3JhdGUsCi0JCQkJ CXN0cnVjdCBjbGsgKipiZXN0X3BhcmVudF9wKQorCQkJCQlzdHJ1Y3QgY2xrX2NvcmUgKipiZXN0 X3BhcmVudF9wKQogewogCXN0cnVjdCBjbGtfY29tcG9zaXRlICpjb21wb3NpdGUgPSB0b19jbGtf Y29tcG9zaXRlKGh3KTsKIAljb25zdCBzdHJ1Y3QgY2xrX29wcyAqcmF0ZV9vcHMgPSBjb21wb3Np dGUtPnJhdGVfb3BzOwogCWNvbnN0IHN0cnVjdCBjbGtfb3BzICptdXhfb3BzID0gY29tcG9zaXRl LT5tdXhfb3BzOwogCXN0cnVjdCBjbGtfaHcgKnJhdGVfaHcgPSBjb21wb3NpdGUtPnJhdGVfaHc7 CiAJc3RydWN0IGNsa19odyAqbXV4X2h3ID0gY29tcG9zaXRlLT5tdXhfaHc7Ci0Jc3RydWN0IGNs ayAqcGFyZW50OworCXN0cnVjdCBjbGtfY29yZSAqcGFyZW50OwogCXVuc2lnbmVkIGxvbmcgcGFy ZW50X3JhdGU7CiAJbG9uZyB0bXBfcmF0ZSwgYmVzdF9yYXRlID0gMDsKIAl1bnNpZ25lZCBsb25n IHJhdGVfZGlmZjsKQEAgLTgwLDcgKzc5LDcgQEAgc3RhdGljIGxvbmcgY2xrX2NvbXBvc2l0ZV9k ZXRlcm1pbmVfcmF0ZShzdHJ1Y3QgY2xrX2h3ICpodywgdW5zaWduZWQgbG9uZyByYXRlLAogCQkq YmVzdF9wYXJlbnRfcCA9IE5VTEw7CiAKIAkJaWYgKF9fY2xrX2dldF9mbGFncyhody0+Y2xrKSAm IENMS19TRVRfUkFURV9OT19SRVBBUkVOVCkgewotCQkJKmJlc3RfcGFyZW50X3AgPSBjbGtfZ2V0 X3BhcmVudChtdXhfaHctPmNsayk7CisJCQkqYmVzdF9wYXJlbnRfcCA9IGNsa19wcm92aWRlcl9n ZXRfcGFyZW50KG11eF9ody0+Y2xrKTsKIAkJCSpiZXN0X3BhcmVudF9yYXRlID0gX19jbGtfZ2V0 X3JhdGUoKmJlc3RfcGFyZW50X3ApOwogCiAJCQlyZXR1cm4gcmF0ZV9vcHMtPnJvdW5kX3JhdGUo cmF0ZV9odywgcmF0ZSwKQEAgLTE4MSwxNCArMTgwLDE0IEBAIHN0YXRpYyB2b2lkIGNsa19jb21w b3NpdGVfZGlzYWJsZShzdHJ1Y3QgY2xrX2h3ICpodykKIAlnYXRlX29wcy0+ZGlzYWJsZShnYXRl X2h3KTsKIH0KIAotc3RydWN0IGNsayAqY2xrX3JlZ2lzdGVyX2NvbXBvc2l0ZShzdHJ1Y3QgZGV2 aWNlICpkZXYsIGNvbnN0IGNoYXIgKm5hbWUsCitzdHJ1Y3QgY2xrX2NvcmUgKmNsa19yZWdpc3Rl cl9jb21wb3NpdGUoc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCBjaGFyICpuYW1lLAogCQkJY29u c3QgY2hhciAqKnBhcmVudF9uYW1lcywgaW50IG51bV9wYXJlbnRzLAogCQkJc3RydWN0IGNsa19o dyAqbXV4X2h3LCBjb25zdCBzdHJ1Y3QgY2xrX29wcyAqbXV4X29wcywKIAkJCXN0cnVjdCBjbGtf aHcgKnJhdGVfaHcsIGNvbnN0IHN0cnVjdCBjbGtfb3BzICpyYXRlX29wcywKIAkJCXN0cnVjdCBj bGtfaHcgKmdhdGVfaHcsIGNvbnN0IHN0cnVjdCBjbGtfb3BzICpnYXRlX29wcywKIAkJCXVuc2ln bmVkIGxvbmcgZmxhZ3MpCiB7Ci0Jc3RydWN0IGNsayAqY2xrOworCXN0cnVjdCBjbGtfY29yZSAq Y2xrOwogCXN0cnVjdCBjbGtfaW5pdF9kYXRhIGluaXQ7CiAJc3RydWN0IGNsa19jb21wb3NpdGUg KmNvbXBvc2l0ZTsKIAlzdHJ1Y3QgY2xrX29wcyAqY2xrX2NvbXBvc2l0ZV9vcHM7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2Nsay9jbGstY29uZi5jIGIvZHJpdmVycy9jbGsvY2xrLWNvbmYuYwppbmRl eCBkMzZhN2IzLi5jOTIzMWNkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay9jbGstY29uZi5jCisr KyBiL2RyaXZlcnMvY2xrL2Nsay1jb25mLmMKQEAgLTcsNyArNyw2IEBACiAgKiBwdWJsaXNoZWQg YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KICAqLwogCi0jaW5jbHVkZSA8bGludXgv Y2xrLmg+CiAjaW5jbHVkZSA8bGludXgvY2xrZGV2Lmg+CiAjaW5jbHVkZSA8bGludXgvY2xrLXBy b3ZpZGVyLmg+CiAjaW5jbHVkZSA8bGludXgvY2xrL2Nsay1jb25mLmg+CkBAIC0yMCw3ICsxOSw3 IEBAIHN0YXRpYyBpbnQgX19zZXRfY2xrX3BhcmVudHMoc3RydWN0IGRldmljZV9ub2RlICpub2Rl LCBib29sIGNsa19zdXBwbGllcikKIHsKIAlzdHJ1Y3Qgb2ZfcGhhbmRsZV9hcmdzIGNsa3NwZWM7 CiAJaW50IGluZGV4LCByYywgbnVtX3BhcmVudHM7Ci0Jc3RydWN0IGNsayAqY2xrLCAqcGNsazsK KwlzdHJ1Y3QgY2xrX2NvcmUgKmNsaywgKnBjbGs7CiAKIAludW1fcGFyZW50cyA9IG9mX2NvdW50 X3BoYW5kbGVfd2l0aF9hcmdzKG5vZGUsICJhc3NpZ25lZC1jbG9jay1wYXJlbnRzIiwKIAkJCQkJ CSAiI2Nsb2NrLWNlbGxzIik7CkBAIC02MywxNiArNjIsMTYgQEAgc3RhdGljIGludCBfX3NldF9j bGtfcGFyZW50cyhzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUsIGJvb2wgY2xrX3N1cHBsaWVyKQog CQkJZ290byBlcnI7CiAJCX0KIAotCQlyYyA9IGNsa19zZXRfcGFyZW50KGNsaywgcGNsayk7CisJ CXJjID0gY2xrX3Byb3ZpZGVyX3NldF9wYXJlbnQoY2xrLCBwY2xrKTsKIAkJaWYgKHJjIDwgMCkK IAkJCXByX2VycigiY2xrOiBmYWlsZWQgdG8gcmVwYXJlbnQgJXMgdG8gJXM6ICVkXG4iLAogCQkJ ICAgICAgIF9fY2xrX2dldF9uYW1lKGNsayksIF9fY2xrX2dldF9uYW1lKHBjbGspLCByYyk7Ci0J CWNsa19wdXQoY2xrKTsKLQkJY2xrX3B1dChwY2xrKTsKKwkJX19jbGtfcHV0KGNsayk7CisJCV9f Y2xrX3B1dChwY2xrKTsKIAl9CiAJcmV0dXJuIDA7CiBlcnI6Ci0JY2xrX3B1dChwY2xrKTsKKwlf X2Nsa19wdXQocGNsayk7CiAJcmV0dXJuIHJjOwogfQogCkBAIC04Miw3ICs4MSw3IEBAIHN0YXRp YyBpbnQgX19zZXRfY2xrX3JhdGVzKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSwgYm9vbCBjbGtf c3VwcGxpZXIpCiAJc3RydWN0IHByb3BlcnR5CSpwcm9wOwogCWNvbnN0IF9fYmUzMiAqY3VyOwog CWludCByYywgaW5kZXggPSAwOwotCXN0cnVjdCBjbGsgKmNsazsKKwlzdHJ1Y3QgY2xrX2NvcmUg KmNsazsKIAl1MzIgcmF0ZTsKIAogCW9mX3Byb3BlcnR5X2Zvcl9lYWNoX3UzMihub2RlLCAiYXNz aWduZWQtY2xvY2stcmF0ZXMiLCBwcm9wLCBjdXIsIHJhdGUpIHsKQEAgLTEwNiwxMSArMTA1LDEx IEBAIHN0YXRpYyBpbnQgX19zZXRfY2xrX3JhdGVzKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSwg Ym9vbCBjbGtfc3VwcGxpZXIpCiAJCQkJcmV0dXJuIFBUUl9FUlIoY2xrKTsKIAkJCX0KIAotCQkJ cmMgPSBjbGtfc2V0X3JhdGUoY2xrLCByYXRlKTsKKwkJCXJjID0gY2xrX3Byb3ZpZGVyX3NldF9y YXRlKGNsaywgcmF0ZSk7CiAJCQlpZiAocmMgPCAwKQogCQkJCXByX2VycigiY2xrOiBjb3VsZG4n dCBzZXQgJXMgY2xvY2sgcmF0ZTogJWRcbiIsCiAJCQkJICAgICAgIF9fY2xrX2dldF9uYW1lKGNs ayksIHJjKTsKLQkJCWNsa19wdXQoY2xrKTsKKwkJCV9fY2xrX3B1dChjbGspOwogCQl9CiAJCWlu ZGV4Kys7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvY2xrLWRpdmlkZXIuYyBiL2RyaXZl cnMvY2xrL2Nsay1kaXZpZGVyLmMKaW5kZXggMThhOWRlMi4uM2M3ODEzOSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9jbGsvY2xrLWRpdmlkZXIuYworKysgYi9kcml2ZXJzL2Nsay9jbGstZGl2aWRlci5j CkBAIC0zNjYsMTQgKzM2NiwxNCBAQCBjb25zdCBzdHJ1Y3QgY2xrX29wcyBjbGtfZGl2aWRlcl9y b19vcHMgPSB7CiB9OwogRVhQT1JUX1NZTUJPTF9HUEwoY2xrX2RpdmlkZXJfcm9fb3BzKTsKIAot c3RhdGljIHN0cnVjdCBjbGsgKl9yZWdpc3Rlcl9kaXZpZGVyKHN0cnVjdCBkZXZpY2UgKmRldiwg Y29uc3QgY2hhciAqbmFtZSwKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgKl9yZWdpc3Rlcl9kaXZp ZGVyKHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3QgY2hhciAqbmFtZSwKIAkJY29uc3QgY2hhciAq cGFyZW50X25hbWUsIHVuc2lnbmVkIGxvbmcgZmxhZ3MsCiAJCXZvaWQgX19pb21lbSAqcmVnLCB1 OCBzaGlmdCwgdTggd2lkdGgsCiAJCXU4IGNsa19kaXZpZGVyX2ZsYWdzLCBjb25zdCBzdHJ1Y3Qg Y2xrX2Rpdl90YWJsZSAqdGFibGUsCiAJCXNwaW5sb2NrX3QgKmxvY2spCiB7CiAJc3RydWN0IGNs a19kaXZpZGVyICpkaXY7Ci0Jc3RydWN0IGNsayAqY2xrOworCXN0cnVjdCBjbGtfY29yZSAqY2xr OwogCXN0cnVjdCBjbGtfaW5pdF9kYXRhIGluaXQ7CiAKIAlpZiAoY2xrX2RpdmlkZXJfZmxhZ3Mg JiBDTEtfRElWSURFUl9ISVdPUkRfTUFTSykgewpAQCAtNDI5LDcgKzQyOSw3IEBAIHN0YXRpYyBz dHJ1Y3QgY2xrICpfcmVnaXN0ZXJfZGl2aWRlcihzdHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0IGNo YXIgKm5hbWUsCiAgKiBAY2xrX2RpdmlkZXJfZmxhZ3M6IGRpdmlkZXItc3BlY2lmaWMgZmxhZ3Mg Zm9yIHRoaXMgY2xvY2sKICAqIEBsb2NrOiBzaGFyZWQgcmVnaXN0ZXIgbG9jayBmb3IgdGhpcyBj bG9jawogICovCi1zdHJ1Y3QgY2xrICpjbGtfcmVnaXN0ZXJfZGl2aWRlcihzdHJ1Y3QgZGV2aWNl ICpkZXYsIGNvbnN0IGNoYXIgKm5hbWUsCitzdHJ1Y3QgY2xrX2NvcmUgKmNsa19yZWdpc3Rlcl9k aXZpZGVyKHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3QgY2hhciAqbmFtZSwKIAkJY29uc3QgY2hh ciAqcGFyZW50X25hbWUsIHVuc2lnbmVkIGxvbmcgZmxhZ3MsCiAJCXZvaWQgX19pb21lbSAqcmVn LCB1OCBzaGlmdCwgdTggd2lkdGgsCiAJCXU4IGNsa19kaXZpZGVyX2ZsYWdzLCBzcGlubG9ja190 ICpsb2NrKQpAQCAtNDUzLDcgKzQ1Myw3IEBAIEVYUE9SVF9TWU1CT0xfR1BMKGNsa19yZWdpc3Rl cl9kaXZpZGVyKTsKICAqIEB0YWJsZTogYXJyYXkgb2YgZGl2aWRlci92YWx1ZSBwYWlycyBlbmRp bmcgd2l0aCBhIGRpdiBzZXQgdG8gMAogICogQGxvY2s6IHNoYXJlZCByZWdpc3RlciBsb2NrIGZv ciB0aGlzIGNsb2NrCiAgKi8KLXN0cnVjdCBjbGsgKmNsa19yZWdpc3Rlcl9kaXZpZGVyX3RhYmxl KHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3QgY2hhciAqbmFtZSwKK3N0cnVjdCBjbGtfY29yZSAq Y2xrX3JlZ2lzdGVyX2RpdmlkZXJfdGFibGUoc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCBjaGFy ICpuYW1lLAogCQljb25zdCBjaGFyICpwYXJlbnRfbmFtZSwgdW5zaWduZWQgbG9uZyBmbGFncywK IAkJdm9pZCBfX2lvbWVtICpyZWcsIHU4IHNoaWZ0LCB1OCB3aWR0aCwKIAkJdTggY2xrX2Rpdmlk ZXJfZmxhZ3MsIGNvbnN0IHN0cnVjdCBjbGtfZGl2X3RhYmxlICp0YWJsZSwKZGlmZiAtLWdpdCBh L2RyaXZlcnMvY2xrL2Nsay1lZm0zMmdnLmMgYi9kcml2ZXJzL2Nsay9jbGstZWZtMzJnZy5jCmlu ZGV4IGJhYzJkZGYuLjMyNDA4ODcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL2Nsay1lZm0zMmdn LmMKKysrIGIvZHJpdmVycy9jbGsvY2xrLWVmbTMyZ2cuYwpAQCAtNiw3ICs2LDYgQEAKICAqIHRo ZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzIHB1 Ymxpc2hlZCBieSB0aGUKICAqIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KICAqLwotI2luY2x1 ZGUgPGxpbnV4L2Nsay5oPgogI2luY2x1ZGUgPGxpbnV4L2lvLmg+CiAjaW5jbHVkZSA8bGludXgv Y2xrLXByb3ZpZGVyLmg+CiAjaW5jbHVkZSA8bGludXgvb2YuaD4KQEAgLTE2LDcgKzE1LDcgQEAK IAogI2RlZmluZSBDTVVfSEZQRVJDTEtFTjAJCTB4NDQKIAotc3RhdGljIHN0cnVjdCBjbGsgKmNs a1szN107CitzdGF0aWMgc3RydWN0IGNsa19jb3JlICpjbGtbMzddOwogc3RhdGljIHN0cnVjdCBj bGtfb25lY2VsbF9kYXRhIGNsa19kYXRhID0gewogCS5jbGtzID0gY2xrLAogCS5jbGtfbnVtID0g QVJSQVlfU0laRShjbGspLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvY2xrLWZpeGVkLWZhY3Rv ci5jIGIvZHJpdmVycy9jbGsvY2xrLWZpeGVkLWZhY3Rvci5jCmluZGV4IGQ5ZTNmNjcuLmFlMWZl ZjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL2Nsay1maXhlZC1mYWN0b3IuYworKysgYi9kcml2 ZXJzL2Nsay9jbGstZml4ZWQtZmFjdG9yLmMKQEAgLTY1LDEzICs2NSwxMyBAQCBzdHJ1Y3QgY2xr X29wcyBjbGtfZml4ZWRfZmFjdG9yX29wcyA9IHsKIH07CiBFWFBPUlRfU1lNQk9MX0dQTChjbGtf Zml4ZWRfZmFjdG9yX29wcyk7CiAKLXN0cnVjdCBjbGsgKmNsa19yZWdpc3Rlcl9maXhlZF9mYWN0 b3Ioc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCBjaGFyICpuYW1lLAorc3RydWN0IGNsa19jb3Jl ICpjbGtfcmVnaXN0ZXJfZml4ZWRfZmFjdG9yKHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3QgY2hh ciAqbmFtZSwKIAkJY29uc3QgY2hhciAqcGFyZW50X25hbWUsIHVuc2lnbmVkIGxvbmcgZmxhZ3Ms CiAJCXVuc2lnbmVkIGludCBtdWx0LCB1bnNpZ25lZCBpbnQgZGl2KQogewogCXN0cnVjdCBjbGtf Zml4ZWRfZmFjdG9yICpmaXg7CiAJc3RydWN0IGNsa19pbml0X2RhdGEgaW5pdDsKLQlzdHJ1Y3Qg Y2xrICpjbGs7CisJc3RydWN0IGNsa19jb3JlICpjbGs7CiAKIAlmaXggPSBrbWFsbG9jKHNpemVv ZigqZml4KSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFmaXgpIHsKQEAgLTEwNSw3ICsxMDUsNyBAQCBF WFBPUlRfU1lNQk9MX0dQTChjbGtfcmVnaXN0ZXJfZml4ZWRfZmFjdG9yKTsKICAqLwogdm9pZCBf X2luaXQgb2ZfZml4ZWRfZmFjdG9yX2Nsa19zZXR1cChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUp CiB7Ci0Jc3RydWN0IGNsayAqY2xrOworCXN0cnVjdCBjbGtfY29yZSAqY2xrOwogCWNvbnN0IGNo YXIgKmNsa19uYW1lID0gbm9kZS0+bmFtZTsKIAljb25zdCBjaGFyICpwYXJlbnRfbmFtZTsKIAl1 MzIgZGl2LCBtdWx0OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvY2xrLWZpeGVkLXJhdGUuYyBi L2RyaXZlcnMvY2xrL2Nsay1maXhlZC1yYXRlLmMKaW5kZXggMGZjNTZhYi4uNTZjMGNlZCAxMDA2 NDQKLS0tIGEvZHJpdmVycy9jbGsvY2xrLWZpeGVkLXJhdGUuYworKysgYi9kcml2ZXJzL2Nsay9j bGstZml4ZWQtcmF0ZS5jCkBAIC01NiwxMiArNTYsMTIgQEAgRVhQT1JUX1NZTUJPTF9HUEwoY2xr X2ZpeGVkX3JhdGVfb3BzKTsKICAqIEBmaXhlZF9yYXRlOiBub24tYWRqdXN0YWJsZSBjbG9jayBy YXRlCiAgKiBAZml4ZWRfYWNjdXJhY3k6IG5vbi1hZGp1c3RhYmxlIGNsb2NrIHJhdGUKICAqLwot c3RydWN0IGNsayAqY2xrX3JlZ2lzdGVyX2ZpeGVkX3JhdGVfd2l0aF9hY2N1cmFjeShzdHJ1Y3Qg ZGV2aWNlICpkZXYsCitzdHJ1Y3QgY2xrX2NvcmUgKmNsa19yZWdpc3Rlcl9maXhlZF9yYXRlX3dp dGhfYWNjdXJhY3koc3RydWN0IGRldmljZSAqZGV2LAogCQljb25zdCBjaGFyICpuYW1lLCBjb25z dCBjaGFyICpwYXJlbnRfbmFtZSwgdW5zaWduZWQgbG9uZyBmbGFncywKIAkJdW5zaWduZWQgbG9u ZyBmaXhlZF9yYXRlLCB1bnNpZ25lZCBsb25nIGZpeGVkX2FjY3VyYWN5KQogewogCXN0cnVjdCBj bGtfZml4ZWRfcmF0ZSAqZml4ZWQ7Ci0Jc3RydWN0IGNsayAqY2xrOworCXN0cnVjdCBjbGtfY29y ZSAqY2xrOwogCXN0cnVjdCBjbGtfaW5pdF9kYXRhIGluaXQ7CiAKIAkvKiBhbGxvY2F0ZSBmaXhl ZC1yYXRlIGNsb2NrICovCkBAIC05OSw3ICs5OSw3IEBAIEVYUE9SVF9TWU1CT0xfR1BMKGNsa19y ZWdpc3Rlcl9maXhlZF9yYXRlX3dpdGhfYWNjdXJhY3kpOwogICogQGZsYWdzOiBmcmFtZXdvcmst c3BlY2lmaWMgZmxhZ3MKICAqIEBmaXhlZF9yYXRlOiBub24tYWRqdXN0YWJsZSBjbG9jayByYXRl CiAgKi8KLXN0cnVjdCBjbGsgKmNsa19yZWdpc3Rlcl9maXhlZF9yYXRlKHN0cnVjdCBkZXZpY2Ug KmRldiwgY29uc3QgY2hhciAqbmFtZSwKK3N0cnVjdCBjbGtfY29yZSAqY2xrX3JlZ2lzdGVyX2Zp eGVkX3JhdGUoc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCBjaGFyICpuYW1lLAogCQljb25zdCBj aGFyICpwYXJlbnRfbmFtZSwgdW5zaWduZWQgbG9uZyBmbGFncywKIAkJdW5zaWduZWQgbG9uZyBm aXhlZF9yYXRlKQogewpAQCAtMTE0LDcgKzExNCw3IEBAIEVYUE9SVF9TWU1CT0xfR1BMKGNsa19y ZWdpc3Rlcl9maXhlZF9yYXRlKTsKICAqLwogdm9pZCBvZl9maXhlZF9jbGtfc2V0dXAoc3RydWN0 IGRldmljZV9ub2RlICpub2RlKQogewotCXN0cnVjdCBjbGsgKmNsazsKKwlzdHJ1Y3QgY2xrX2Nv cmUgKmNsazsKIAljb25zdCBjaGFyICpjbGtfbmFtZSA9IG5vZGUtPm5hbWU7CiAJdTMyIHJhdGU7 CiAJdTMyIGFjY3VyYWN5ID0gMDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL2Nsay1mcmFjdGlv bmFsLWRpdmlkZXIuYyBiL2RyaXZlcnMvY2xrL2Nsay1mcmFjdGlvbmFsLWRpdmlkZXIuYwppbmRl eCBlZGU2ODVjLi44MTA0NjgzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay9jbGstZnJhY3Rpb25h bC1kaXZpZGVyLmMKKysrIGIvZHJpdmVycy9jbGsvY2xrLWZyYWN0aW9uYWwtZGl2aWRlci5jCkBA IC05NiwxNCArOTYsMTQgQEAgY29uc3Qgc3RydWN0IGNsa19vcHMgY2xrX2ZyYWN0aW9uYWxfZGl2 aWRlcl9vcHMgPSB7CiB9OwogRVhQT1JUX1NZTUJPTF9HUEwoY2xrX2ZyYWN0aW9uYWxfZGl2aWRl cl9vcHMpOwogCi1zdHJ1Y3QgY2xrICpjbGtfcmVnaXN0ZXJfZnJhY3Rpb25hbF9kaXZpZGVyKHN0 cnVjdCBkZXZpY2UgKmRldiwKK3N0cnVjdCBjbGtfY29yZSAqY2xrX3JlZ2lzdGVyX2ZyYWN0aW9u YWxfZGl2aWRlcihzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJCWNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0 IGNoYXIgKnBhcmVudF9uYW1lLCB1bnNpZ25lZCBsb25nIGZsYWdzLAogCQl2b2lkIF9faW9tZW0g KnJlZywgdTggbXNoaWZ0LCB1OCBtd2lkdGgsIHU4IG5zaGlmdCwgdTggbndpZHRoLAogCQl1OCBj bGtfZGl2aWRlcl9mbGFncywgc3BpbmxvY2tfdCAqbG9jaykKIHsKIAlzdHJ1Y3QgY2xrX2ZyYWN0 aW9uYWxfZGl2aWRlciAqZmQ7CiAJc3RydWN0IGNsa19pbml0X2RhdGEgaW5pdDsKLQlzdHJ1Y3Qg Y2xrICpjbGs7CisJc3RydWN0IGNsa19jb3JlICpjbGs7CiAKIAlmZCA9IGt6YWxsb2Moc2l6ZW9m KCpmZCksIEdGUF9LRVJORUwpOwogCWlmICghZmQpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xr L2Nsay1nYXRlLmMgYi9kcml2ZXJzL2Nsay9jbGstZ2F0ZS5jCmluZGV4IDRhNThjNTUuLjQyOWQz MDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL2Nsay1nYXRlLmMKKysrIGIvZHJpdmVycy9jbGsv Y2xrLWdhdGUuYwpAQCAtMTE4LDEzICsxMTgsMTMgQEAgRVhQT1JUX1NZTUJPTF9HUEwoY2xrX2dh dGVfb3BzKTsKICAqIEBjbGtfZ2F0ZV9mbGFnczogZ2F0ZS1zcGVjaWZpYyBmbGFncyBmb3IgdGhp cyBjbG9jawogICogQGxvY2s6IHNoYXJlZCByZWdpc3RlciBsb2NrIGZvciB0aGlzIGNsb2NrCiAg Ki8KLXN0cnVjdCBjbGsgKmNsa19yZWdpc3Rlcl9nYXRlKHN0cnVjdCBkZXZpY2UgKmRldiwgY29u c3QgY2hhciAqbmFtZSwKK3N0cnVjdCBjbGtfY29yZSAqY2xrX3JlZ2lzdGVyX2dhdGUoc3RydWN0 IGRldmljZSAqZGV2LCBjb25zdCBjaGFyICpuYW1lLAogCQljb25zdCBjaGFyICpwYXJlbnRfbmFt ZSwgdW5zaWduZWQgbG9uZyBmbGFncywKIAkJdm9pZCBfX2lvbWVtICpyZWcsIHU4IGJpdF9pZHgs CiAJCXU4IGNsa19nYXRlX2ZsYWdzLCBzcGlubG9ja190ICpsb2NrKQogewogCXN0cnVjdCBjbGtf Z2F0ZSAqZ2F0ZTsKLQlzdHJ1Y3QgY2xrICpjbGs7CisJc3RydWN0IGNsa19jb3JlICpjbGs7CiAJ c3RydWN0IGNsa19pbml0X2RhdGEgaW5pdDsKIAogCWlmIChjbGtfZ2F0ZV9mbGFncyAmIENMS19H QVRFX0hJV09SRF9NQVNLKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9jbGstaGlnaGJhbmsu YyBiL2RyaXZlcnMvY2xrL2Nsay1oaWdoYmFuay5jCmluZGV4IDJlN2U5ZDkuLmNhZDJmYmEgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL2Nsay1oaWdoYmFuay5jCisrKyBiL2RyaXZlcnMvY2xrL2Ns ay1oaWdoYmFuay5jCkBAIC0yNzEsMTAgKzI3MSwxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGNs a19vcHMgcGVyaWNsa19vcHMgPSB7CiAJLnNldF9yYXRlID0gY2xrX3BlcmljbGtfc2V0X3JhdGUs CiB9OwogCi1zdGF0aWMgX19pbml0IHN0cnVjdCBjbGsgKmhiX2Nsa19pbml0KHN0cnVjdCBkZXZp Y2Vfbm9kZSAqbm9kZSwgY29uc3Qgc3RydWN0IGNsa19vcHMgKm9wcykKK3N0YXRpYyBfX2luaXQg c3RydWN0IGNsa19jb3JlICpoYl9jbGtfaW5pdChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUsIGNv bnN0IHN0cnVjdCBjbGtfb3BzICpvcHMpCiB7CiAJdTMyIHJlZzsKLQlzdHJ1Y3QgY2xrICpjbGs7 CisJc3RydWN0IGNsa19jb3JlICpjbGs7CiAJc3RydWN0IGhiX2NsayAqaGJfY2xrOwogCWNvbnN0 IGNoYXIgKmNsa19uYW1lID0gbm9kZS0+bmFtZTsKIAljb25zdCBjaGFyICpwYXJlbnRfbmFtZTsK QEAgLTMzMCw4ICszMzAsOCBAQCBDTEtfT0ZfREVDTEFSRShoYl9hOXBlcmlwaCwgImNhbHhlZGEs aGItYTlwZXJpcGgtY2xvY2siLCBoYl9hOXBlcmlwaF9pbml0KTsKIAogc3RhdGljIHZvaWQgX19p bml0IGhiX2E5YnVzX2luaXQoc3RydWN0IGRldmljZV9ub2RlICpub2RlKQogewotCXN0cnVjdCBj bGsgKmNsayA9IGhiX2Nsa19pbml0KG5vZGUsICZhOWJjbGtfb3BzKTsKLQljbGtfcHJlcGFyZV9l bmFibGUoY2xrKTsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmNsayA9IGhiX2Nsa19pbml0KG5vZGUsICZh OWJjbGtfb3BzKTsKKwljbGtfcHJvdmlkZXJfcHJlcGFyZV9lbmFibGUoY2xrKTsKIH0KIENMS19P Rl9ERUNMQVJFKGhiX2E5YnVzLCAiY2FseGVkYSxoYi1hOWJ1cy1jbG9jayIsIGhiX2E5YnVzX2lu aXQpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9jbGstbHMxeC5jIGIvZHJpdmVycy9jbGsv Y2xrLWxzMXguYwppbmRleCBmMjBiNzUwLi43OTYwNDNjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Ns ay9jbGstbHMxeC5jCisrKyBiL2RyaXZlcnMvY2xrL2Nsay1sczF4LmMKQEAgLTQ4LDExICs0OCwx MSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGNsa19vcHMgbHMxeF9wbGxfY2xrX29wcyA9IHsKIAku cmVjYWxjX3JhdGUgPSBsczF4X3BsbF9yZWNhbGNfcmF0ZSwKIH07CiAKLXN0YXRpYyBzdHJ1Y3Qg Y2xrICogX19pbml0IGNsa19yZWdpc3Rlcl9wbGwoc3RydWN0IGRldmljZSAqZGV2LAorc3RhdGlj IHN0cnVjdCBjbGtfY29yZSAqIF9faW5pdCBjbGtfcmVnaXN0ZXJfcGxsKHN0cnVjdCBkZXZpY2Ug KmRldiwKIAkgY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqcGFyZW50X25hbWUsIHVuc2ln bmVkIGxvbmcgZmxhZ3MpCiB7CiAJc3RydWN0IGNsa19odyAqaHc7Ci0Jc3RydWN0IGNsayAqY2xr OworCXN0cnVjdCBjbGtfY29yZSAqY2xrOwogCXN0cnVjdCBjbGtfaW5pdF9kYXRhIGluaXQ7CiAK IAkvKiBhbGxvY2F0ZSB0aGUgZGl2aWRlciAqLwpAQCAtODAsMzIgKzgwLDMyIEBAIHN0YXRpYyBz dHJ1Y3QgY2xrICogX19pbml0IGNsa19yZWdpc3Rlcl9wbGwoc3RydWN0IGRldmljZSAqZGV2LAog CiB2b2lkIF9faW5pdCBsczF4X2Nsa19pbml0KHZvaWQpCiB7Ci0Jc3RydWN0IGNsayAqY2xrOwor CXN0cnVjdCBjbGtfY29yZSAqY2xrOwogCiAJY2xrID0gY2xrX3JlZ2lzdGVyX3BsbChOVUxMLCAi cGxsX2NsayIsIE5VTEwsIENMS19JU19ST09UKTsKLQljbGtfcHJlcGFyZV9lbmFibGUoY2xrKTsK KwljbGtfcHJvdmlkZXJfcHJlcGFyZV9lbmFibGUoY2xrKTsKIAogCWNsayA9IGNsa19yZWdpc3Rl cl9kaXZpZGVyKE5VTEwsICJjcHVfY2xrIiwgInBsbF9jbGsiLAogCQkJQ0xLX1NFVF9SQVRFX1BB UkVOVCwgTFMxWF9DTEtfUExMX0RJViwgRElWX0NQVV9TSElGVCwKIAkJCURJVl9DUFVfV0lEVEgs IENMS19ESVZJREVSX09ORV9CQVNFRCwgJl9sb2NrKTsKLQljbGtfcHJlcGFyZV9lbmFibGUoY2xr KTsKKwljbGtfcHJvdmlkZXJfcHJlcGFyZV9lbmFibGUoY2xrKTsKIAljbGtfcmVnaXN0ZXJfY2xr ZGV2KGNsaywgImNwdSIsIE5VTEwpOwogCiAJY2xrID0gY2xrX3JlZ2lzdGVyX2RpdmlkZXIoTlVM TCwgImRjX2NsayIsICJwbGxfY2xrIiwKIAkJCUNMS19TRVRfUkFURV9QQVJFTlQsIExTMVhfQ0xL X1BMTF9ESVYsIERJVl9EQ19TSElGVCwKIAkJCURJVl9EQ19XSURUSCwgQ0xLX0RJVklERVJfT05F X0JBU0VELCAmX2xvY2spOwotCWNsa19wcmVwYXJlX2VuYWJsZShjbGspOworCWNsa19wcm92aWRl cl9wcmVwYXJlX2VuYWJsZShjbGspOwogCWNsa19yZWdpc3Rlcl9jbGtkZXYoY2xrLCAiZGMiLCBO VUxMKTsKIAogCWNsayA9IGNsa19yZWdpc3Rlcl9kaXZpZGVyKE5VTEwsICJhaGJfY2xrIiwgInBs bF9jbGsiLAogCQkJQ0xLX1NFVF9SQVRFX1BBUkVOVCwgTFMxWF9DTEtfUExMX0RJViwgRElWX0RE Ul9TSElGVCwKIAkJCURJVl9ERFJfV0lEVEgsIENMS19ESVZJREVSX09ORV9CQVNFRCwgJl9sb2Nr KTsKLQljbGtfcHJlcGFyZV9lbmFibGUoY2xrKTsKKwljbGtfcHJvdmlkZXJfcHJlcGFyZV9lbmFi bGUoY2xrKTsKIAljbGtfcmVnaXN0ZXJfY2xrZGV2KGNsaywgImFoYiIsIE5VTEwpOwogCWNsa19y ZWdpc3Rlcl9jbGtkZXYoY2xrLCAic3RtbWFjZXRoIiwgTlVMTCk7CiAKIAljbGsgPSBjbGtfcmVn aXN0ZXJfZml4ZWRfZmFjdG9yKE5VTEwsICJhcGJfY2xrIiwgImFoYl9jbGsiLCAwLCAxLCAyKTsK LQljbGtfcHJlcGFyZV9lbmFibGUoY2xrKTsKKwljbGtfcHJvdmlkZXJfcHJlcGFyZV9lbmFibGUo Y2xrKTsKIAljbGtfcmVnaXN0ZXJfY2xrZGV2KGNsaywgImFwYiIsIE5VTEwpOwogCWNsa19yZWdp c3Rlcl9jbGtkZXYoY2xrLCAic2VyaWFsODI1MCIsIE5VTEwpOwogfQpkaWZmIC0tZ2l0IGEvZHJp dmVycy9jbGsvY2xrLW1heDc3Njg2LmMgYi9kcml2ZXJzL2Nsay9jbGstbWF4Nzc2ODYuYwppbmRl eCAzZDdlOGRkLi40MmZhNDNhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay9jbGstbWF4Nzc2ODYu YworKysgYi9kcml2ZXJzL2Nsay9jbGstbWF4Nzc2ODYuYwpAQCAtMTEyLDEwICsxMTIsMTAgQEAg c3RhdGljIHN0cnVjdCBjbGtfaW5pdF9kYXRhIG1heDc3Njg2X2Nsa3NfaW5pdFtNQVg3NzY4Nl9D TEtTX05VTV0gPSB7CiAJfSwKIH07CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrICptYXg3NzY4Nl9jbGtf cmVnaXN0ZXIoc3RydWN0IGRldmljZSAqZGV2LAorc3RhdGljIHN0cnVjdCBjbGtfY29yZSAqbWF4 Nzc2ODZfY2xrX3JlZ2lzdGVyKHN0cnVjdCBkZXZpY2UgKmRldiwKIAkJCQlzdHJ1Y3QgbWF4Nzc2 ODZfY2xrICptYXg3NzY4NikKIHsKLQlzdHJ1Y3QgY2xrICpjbGs7CisJc3RydWN0IGNsa19jb3Jl ICpjbGs7CiAJc3RydWN0IGNsa19odyAqaHcgPSAmbWF4Nzc2ODYtPmh3OwogCiAJY2xrID0gY2xr X3JlZ2lzdGVyKGRldiwgaHcpOwpAQCAtMTM4LDEwICsxMzgsMTAgQEAgc3RhdGljIGludCBtYXg3 NzY4Nl9jbGtfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIHsKIAlzdHJ1Y3Qg bWF4Nzc2ODZfZGV2ICppb2RldiA9IGRldl9nZXRfZHJ2ZGF0YShwZGV2LT5kZXYucGFyZW50KTsK IAlzdHJ1Y3QgbWF4Nzc2ODZfY2xrICptYXg3NzY4Nl9jbGtzW01BWDc3Njg2X0NMS1NfTlVNXTsK LQlzdHJ1Y3QgY2xrICoqY2xvY2tzOworCXN0cnVjdCBjbGtfY29yZSAqKmNsb2NrczsKIAlpbnQg aSwgcmV0OwogCi0JY2xvY2tzID0gZGV2bV9remFsbG9jKCZwZGV2LT5kZXYsIHNpemVvZihzdHJ1 Y3QgY2xrICopCisJY2xvY2tzID0gZGV2bV9remFsbG9jKCZwZGV2LT5kZXYsIHNpemVvZihzdHJ1 Y3QgY2xrX2NvcmUgKikKIAkJCQkJKiBNQVg3NzY4Nl9DTEtTX05VTSwgR0ZQX0tFUk5FTCk7CiAJ aWYgKCFjbG9ja3MpCiAJCXJldHVybiAtRU5PTUVNOwpAQCAtMjAzLDcgKzIwMyw3IEBAIGVycl9j bG9ja3M6CiBzdGF0aWMgaW50IG1heDc3Njg2X2Nsa19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2Rl dmljZSAqcGRldikKIHsKIAlzdHJ1Y3QgbWF4Nzc2ODZfZGV2ICppb2RldiA9IGRldl9nZXRfZHJ2 ZGF0YShwZGV2LT5kZXYucGFyZW50KTsKLQlzdHJ1Y3QgY2xrICoqY2xvY2tzID0gcGxhdGZvcm1f Z2V0X2RydmRhdGEocGRldik7CisJc3RydWN0IGNsa19jb3JlICoqY2xvY2tzID0gcGxhdGZvcm1f Z2V0X2RydmRhdGEocGRldik7CiAJaW50IGk7CiAKIAlpZiAoaW9kZXYtPmRldi0+b2Zfbm9kZSkK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL2Nsay1tb3hhcnQuYyBiL2RyaXZlcnMvY2xrL2Nsay1t b3hhcnQuYwppbmRleCAzMGEzYjY5Li5jNTAzYzA5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay9j bGstbW94YXJ0LmMKKysrIGIvZHJpdmVycy9jbGsvY2xrLW1veGFydC5jCkBAIC0xOCw3ICsxOCw3 IEBACiB2b2lkIF9faW5pdCBtb3hhcnRfb2ZfcGxsX2Nsa19pbml0KHN0cnVjdCBkZXZpY2Vfbm9k ZSAqbm9kZSkKIHsKIAlzdGF0aWMgdm9pZCBfX2lvbWVtICpiYXNlOwotCXN0cnVjdCBjbGsgKmNs aywgKnJlZl9jbGs7CisJc3RydWN0IGNsa19jb3JlICpjbGssICpyZWZfY2xrOwogCXVuc2lnbmVk IGludCBtdWw7CiAJY29uc3QgY2hhciAqbmFtZSA9IG5vZGUtPm5hbWU7CiAJY29uc3QgY2hhciAq cGFyZW50X25hbWU7CkBAIC0zNSw3ICszNSw3IEBAIHZvaWQgX19pbml0IG1veGFydF9vZl9wbGxf Y2xrX2luaXQoc3RydWN0IGRldmljZV9ub2RlICpub2RlKQogCW11bCA9IHJlYWRsKGJhc2UgKyAw eDMwKSA+PiAzICYgMHgzZjsKIAlpb3VubWFwKGJhc2UpOwogCi0JcmVmX2NsayA9IG9mX2Nsa19n ZXQobm9kZSwgMCk7CisJcmVmX2NsayA9IG9mX2Nsa19wcm92aWRlcl9nZXQobm9kZSwgMCk7CiAJ aWYgKElTX0VSUihyZWZfY2xrKSkgewogCQlwcl9lcnIoIiVzOiBvZl9jbGtfZ2V0IGZhaWxlZFxu Iiwgbm9kZS0+ZnVsbF9uYW1lKTsKIAkJcmV0dXJuOwpAQCAtNTYsNyArNTYsNyBAQCBDTEtfT0Zf REVDTEFSRShtb3hhcnRfcGxsX2Nsb2NrLCAibW94YSxtb3hhcnQtcGxsLWNsb2NrIiwKIHZvaWQg X19pbml0IG1veGFydF9vZl9hcGJfY2xrX2luaXQoc3RydWN0IGRldmljZV9ub2RlICpub2RlKQog ewogCXN0YXRpYyB2b2lkIF9faW9tZW0gKmJhc2U7Ci0Jc3RydWN0IGNsayAqY2xrLCAqcGxsX2Ns azsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmNsaywgKnBsbF9jbGs7CiAJdW5zaWduZWQgaW50IGRpdiwg dmFsOwogCXVuc2lnbmVkIGludCBkaXZfaWR4W10gPSB7IDIsIDMsIDQsIDYsIDh9OwogCWNvbnN0 IGNoYXIgKm5hbWUgPSBub2RlLT5uYW1lOwpAQCAtNzgsNyArNzgsNyBAQCB2b2lkIF9faW5pdCBt b3hhcnRfb2ZfYXBiX2Nsa19pbml0KHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSkKIAkJdmFsID0g MDsKIAlkaXYgPSBkaXZfaWR4W3ZhbF0gKiAyOwogCi0JcGxsX2NsayA9IG9mX2Nsa19nZXQobm9k ZSwgMCk7CisJcGxsX2NsayA9IG9mX2Nsa19wcm92aWRlcl9nZXQobm9kZSwgMCk7CiAJaWYgKElT X0VSUihwbGxfY2xrKSkgewogCQlwcl9lcnIoIiVzOiBvZl9jbGtfZ2V0IGZhaWxlZFxuIiwgbm9k ZS0+ZnVsbF9uYW1lKTsKIAkJcmV0dXJuOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvY2xrLW11 eC5jIGIvZHJpdmVycy9jbGsvY2xrLW11eC5jCmluZGV4IDRmOTZmZjMuLjUzOGM0NTUgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvY2xrL2Nsay1tdXguYworKysgYi9kcml2ZXJzL2Nsay9jbGstbXV4LmMK QEAgLTEwLDcgKzEwLDYgQEAKICAqIFNpbXBsZSBtdWx0aXBsZXhlciBjbG9jayBpbXBsZW1lbnRh dGlvbgogICovCiAKLSNpbmNsdWRlIDxsaW51eC9jbGsuaD4KICNpbmNsdWRlIDxsaW51eC9jbGst cHJvdmlkZXIuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9z bGFiLmg+CkBAIC0xMTMsMTMgKzExMiwxMyBAQCBjb25zdCBzdHJ1Y3QgY2xrX29wcyBjbGtfbXV4 X3JvX29wcyA9IHsKIH07CiBFWFBPUlRfU1lNQk9MX0dQTChjbGtfbXV4X3JvX29wcyk7CiAKLXN0 cnVjdCBjbGsgKmNsa19yZWdpc3Rlcl9tdXhfdGFibGUoc3RydWN0IGRldmljZSAqZGV2LCBjb25z dCBjaGFyICpuYW1lLAorc3RydWN0IGNsa19jb3JlICpjbGtfcmVnaXN0ZXJfbXV4X3RhYmxlKHN0 cnVjdCBkZXZpY2UgKmRldiwgY29uc3QgY2hhciAqbmFtZSwKIAkJY29uc3QgY2hhciAqKnBhcmVu dF9uYW1lcywgdTggbnVtX3BhcmVudHMsIHVuc2lnbmVkIGxvbmcgZmxhZ3MsCiAJCXZvaWQgX19p b21lbSAqcmVnLCB1OCBzaGlmdCwgdTMyIG1hc2ssCiAJCXU4IGNsa19tdXhfZmxhZ3MsIHUzMiAq dGFibGUsIHNwaW5sb2NrX3QgKmxvY2spCiB7CiAJc3RydWN0IGNsa19tdXggKm11eDsKLQlzdHJ1 Y3QgY2xrICpjbGs7CisJc3RydWN0IGNsa19jb3JlICpjbGs7CiAJc3RydWN0IGNsa19pbml0X2Rh dGEgaW5pdDsKIAl1OCB3aWR0aCA9IDA7CiAKQEAgLTE2NSw3ICsxNjQsNyBAQCBzdHJ1Y3QgY2xr ICpjbGtfcmVnaXN0ZXJfbXV4X3RhYmxlKHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3QgY2hhciAq bmFtZSwKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKGNsa19yZWdpc3Rlcl9tdXhfdGFibGUpOwogCi1z dHJ1Y3QgY2xrICpjbGtfcmVnaXN0ZXJfbXV4KHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3QgY2hh ciAqbmFtZSwKK3N0cnVjdCBjbGtfY29yZSAqY2xrX3JlZ2lzdGVyX211eChzdHJ1Y3QgZGV2aWNl ICpkZXYsIGNvbnN0IGNoYXIgKm5hbWUsCiAJCWNvbnN0IGNoYXIgKipwYXJlbnRfbmFtZXMsIHU4 IG51bV9wYXJlbnRzLCB1bnNpZ25lZCBsb25nIGZsYWdzLAogCQl2b2lkIF9faW9tZW0gKnJlZywg dTggc2hpZnQsIHU4IHdpZHRoLAogCQl1OCBjbGtfbXV4X2ZsYWdzLCBzcGlubG9ja190ICpsb2Nr KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvY2xrLW5vbWFkaWsuYyBiL2RyaXZlcnMvY2xrL2Ns ay1ub21hZGlrLmMKaW5kZXggMDVlMDRjZS4uOTE4NTVkMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9j bGsvY2xrLW5vbWFkaWsuYworKysgYi9kcml2ZXJzL2Nsay9jbGstbm9tYWRpay5jCkBAIC04LDcg KzgsNiBAQAogI2RlZmluZSBwcl9mbXQoZm10KSAiTm9tYWRpayBTUkMgY2xvY2tzOiAiIGZtdAog CiAjaW5jbHVkZSA8bGludXgvYml0b3BzLmg+Ci0jaW5jbHVkZSA8bGludXgvY2xrLmg+CiAjaW5j bHVkZSA8bGludXgvY2xrZGV2Lmg+CiAjaW5jbHVkZSA8bGludXgvZXJyLmg+CiAjaW5jbHVkZSA8 bGludXgvaW8uaD4KQEAgLTI1NCwxMSArMjUzLDExIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY2xr X29wcyBwbGxfY2xrX29wcyA9IHsKIAkucmVjYWxjX3JhdGUgPSBwbGxfY2xrX3JlY2FsY19yYXRl LAogfTsKIAotc3RhdGljIHN0cnVjdCBjbGsgKiBfX2luaXQKK3N0YXRpYyBzdHJ1Y3QgY2xrX2Nv cmUgKiBfX2luaXQKIHBsbF9jbGtfcmVnaXN0ZXIoc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCBj aGFyICpuYW1lLAogCQkgY29uc3QgY2hhciAqcGFyZW50X25hbWUsIHUzMiBpZCkKIHsKLQlzdHJ1 Y3QgY2xrICpjbGs7CisJc3RydWN0IGNsa19jb3JlICpjbGs7CiAJc3RydWN0IGNsa19wbGwgKnBs bDsKIAlzdHJ1Y3QgY2xrX2luaXRfZGF0YSBpbml0OwogCkBAIC0zNDYsMTEgKzM0NSwxMSBAQCBz dGF0aWMgY29uc3Qgc3RydWN0IGNsa19vcHMgc3JjX2Nsa19vcHMgPSB7CiAJLnJlY2FsY19yYXRl ID0gc3JjX2Nsa19yZWNhbGNfcmF0ZSwKIH07CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrICogX19pbml0 CitzdGF0aWMgc3RydWN0IGNsa19jb3JlICogX19pbml0CiBzcmNfY2xrX3JlZ2lzdGVyKHN0cnVj dCBkZXZpY2UgKmRldiwgY29uc3QgY2hhciAqbmFtZSwKIAkJIGNvbnN0IGNoYXIgKnBhcmVudF9u YW1lLCB1OCBpZCkKIHsKLQlzdHJ1Y3QgY2xrICpjbGs7CisJc3RydWN0IGNsa19jb3JlICpjbGs7 CiAJc3RydWN0IGNsa19zcmMgKnNjbGs7CiAJc3RydWN0IGNsa19pbml0X2RhdGEgaW5pdDsKIApA QCAtNTEwLDcgKzUwOSw3IEBAIG1vZHVsZV9pbml0KG5vbWFkaWtfc3JjX2Nsa19pbml0X2RlYnVn ZnMpOwogCiBzdGF0aWMgdm9pZCBfX2luaXQgb2Zfbm9tYWRpa19wbGxfc2V0dXAoc3RydWN0IGRl dmljZV9ub2RlICpucCkKIHsKLQlzdHJ1Y3QgY2xrICpjbGsgPSBFUlJfUFRSKC1FSU5WQUwpOwor CXN0cnVjdCBjbGtfY29yZSAqY2xrID0gRVJSX1BUUigtRUlOVkFMKTsKIAljb25zdCBjaGFyICpj bGtfbmFtZSA9IG5wLT5uYW1lOwogCWNvbnN0IGNoYXIgKnBhcmVudF9uYW1lOwogCXUzMiBwbGxf aWQ7CkBAIC01MzMsNyArNTMyLDcgQEAgQ0xLX09GX0RFQ0xBUkUobm9tYWRpa19wbGxfY2xrLAog CiBzdGF0aWMgdm9pZCBfX2luaXQgb2Zfbm9tYWRpa19oY2xrX3NldHVwKHN0cnVjdCBkZXZpY2Vf bm9kZSAqbnApCiB7Ci0Jc3RydWN0IGNsayAqY2xrID0gRVJSX1BUUigtRUlOVkFMKTsKKwlzdHJ1 Y3QgY2xrX2NvcmUgKmNsayA9IEVSUl9QVFIoLUVJTlZBTCk7CiAJY29uc3QgY2hhciAqY2xrX25h bWUgPSBucC0+bmFtZTsKIAljb25zdCBjaGFyICpwYXJlbnRfbmFtZTsKIApAQCAtNTU3LDcgKzU1 Niw3IEBAIENMS19PRl9ERUNMQVJFKG5vbWFkaWtfaGNsa19jbGssCiAKIHN0YXRpYyB2b2lkIF9f aW5pdCBvZl9ub21hZGlrX3NyY19jbGtfc2V0dXAoc3RydWN0IGRldmljZV9ub2RlICpucCkKIHsK LQlzdHJ1Y3QgY2xrICpjbGsgPSBFUlJfUFRSKC1FSU5WQUwpOworCXN0cnVjdCBjbGtfY29yZSAq Y2xrID0gRVJSX1BUUigtRUlOVkFMKTsKIAljb25zdCBjaGFyICpjbGtfbmFtZSA9IG5wLT5uYW1l OwogCWNvbnN0IGNoYXIgKnBhcmVudF9uYW1lOwogCXUzMiBjbGtfaWQ7CmRpZmYgLS1naXQgYS9k cml2ZXJzL2Nsay9jbGstbnNwaXJlLmMgYi9kcml2ZXJzL2Nsay9jbGstbnNwaXJlLmMKaW5kZXgg YTM3OGRiNy4uZTljNDNmNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvY2xrLW5zcGlyZS5jCisr KyBiL2RyaXZlcnMvY2xrL2Nsay1uc3BpcmUuYwpAQCAtNjksNyArNjksNyBAQCBzdGF0aWMgdm9p ZCBfX2luaXQgbnNwaXJlX2FoYmRpdl9zZXR1cChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUsCiB7 CiAJdTMyIHZhbDsKIAl2b2lkIF9faW9tZW0gKmlvOwotCXN0cnVjdCBjbGsgKmNsazsKKwlzdHJ1 Y3QgY2xrX2NvcmUgKmNsazsKIAljb25zdCBjaGFyICpjbGtfbmFtZSA9IG5vZGUtPm5hbWU7CiAJ Y29uc3QgY2hhciAqcGFyZW50X25hbWU7CiAJc3RydWN0IG5zcGlyZV9jbGtfaW5mbyBpbmZvOwpA QCAtMTExLDcgKzExMSw3IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBuc3BpcmVfY2xrX3NldHVwKHN0 cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSwKIHsKIAl1MzIgdmFsOwogCXZvaWQgX19pb21lbSAqaW87 Ci0Jc3RydWN0IGNsayAqY2xrOworCXN0cnVjdCBjbGtfY29yZSAqY2xrOwogCWNvbnN0IGNoYXIg KmNsa19uYW1lID0gbm9kZS0+bmFtZTsKIAlzdHJ1Y3QgbnNwaXJlX2Nsa19pbmZvIGluZm87CiAK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL2Nsay1wYWxtYXMuYyBiL2RyaXZlcnMvY2xrL2Nsay1w YWxtYXMuYwppbmRleCA3ODE2MzBlLi44ZmViZDhjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay9j bGstcGFsbWFzLmMKKysrIGIvZHJpdmVycy9jbGsvY2xrLXBhbG1hcy5jCkBAIC0xNyw3ICsxNyw2 IEBACiAgKiBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAgKi8KIAot I2luY2x1ZGUgPGxpbnV4L2Nsay5oPgogI2luY2x1ZGUgPGxpbnV4L2Nsa2Rldi5oPgogI2luY2x1 ZGUgPGxpbnV4L2Nsay1wcm92aWRlci5oPgogI2luY2x1ZGUgPGxpbnV4L21mZC9wYWxtYXMuaD4K QEAgLTQyLDcgKzQxLDcgQEAgc3RydWN0IHBhbG1hc19jbGszMmtfZGVzYyB7CiAKIHN0cnVjdCBw YWxtYXNfY2xvY2tfaW5mbyB7CiAJc3RydWN0IGRldmljZSAqZGV2OwotCXN0cnVjdCBjbGsgKmNs azsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmNsazsKIAlzdHJ1Y3QgY2xrX2h3IGh3OwogCXN0cnVjdCBw YWxtYXMgKnBhbG1hczsKIAlzdHJ1Y3QgcGFsbWFzX2NsazMya19kZXNjICpjbGtfZGVzYzsKQEAg LTIxOSw3ICsyMTgsNyBAQCBzdGF0aWMgaW50IHBhbG1hc19jbGtzX2luaXRfY29uZmlndXJlKHN0 cnVjdCBwYWxtYXNfY2xvY2tfaW5mbyAqY2luZm8pCiAJfQogCiAJaWYgKGNpbmZvLT5leHRfY29u dHJvbF9waW4pIHsKLQkJcmV0ID0gY2xrX3ByZXBhcmUoY2luZm8tPmNsayk7CisJCXJldCA9IGNs a19wcm92aWRlcl9wcmVwYXJlKGNpbmZvLT5jbGspOwogCQlpZiAocmV0IDwgMCkgewogCQkJZGV2 X2VycihjaW5mby0+ZGV2LCAiQ2xvY2sgcHJlcCBmYWlsZWQsICVkXG4iLCByZXQpOwogCQkJcmV0 dXJuIHJldDsKQEAgLTI0NCw3ICsyNDMsNyBAQCBzdGF0aWMgaW50IHBhbG1hc19jbGtzX3Byb2Jl KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJc3RydWN0IHBhbG1hc19jbGtzX29mX21h dGNoX2RhdGEgKm1hdGNoX2RhdGE7CiAJY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCAqbWF0Y2g7 CiAJc3RydWN0IHBhbG1hc19jbG9ja19pbmZvICpjaW5mbzsKLQlzdHJ1Y3QgY2xrICpjbGs7CisJ c3RydWN0IGNsa19jb3JlICpjbGs7CiAJaW50IHJldDsKIAogCW1hdGNoID0gb2ZfbWF0Y2hfZGV2 aWNlKHBhbG1hc19jbGtzX29mX21hdGNoLCAmcGRldi0+ZGV2KTsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvY2xrL2Nsay1wcGMtY29yZW5ldC5jIGIvZHJpdmVycy9jbGsvY2xrLXBwYy1jb3JlbmV0LmMK aW5kZXggOGU1OGVkZi4uNTYxOWVlOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvY2xrLXBwYy1j b3JlbmV0LmMKKysrIGIvZHJpdmVycy9jbGsvY2xrLXBwYy1jb3JlbmV0LmMKQEAgLTY0LDcgKzY0 LDcgQEAgY29uc3Qgc3RydWN0IGNsa19vcHMgY211eF9vcHMgPSB7CiAKIHN0YXRpYyB2b2lkIF9f aW5pdCBjb3JlX211eF9pbml0KHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApCiB7Ci0Jc3RydWN0IGNs ayAqY2xrOworCXN0cnVjdCBjbGtfY29yZSAqY2xrOwogCXN0cnVjdCBjbGtfaW5pdF9kYXRhIGlu aXQ7CiAJc3RydWN0IGNtdXhfY2xrICpjbXV4X2NsazsKIAlzdHJ1Y3QgZGV2aWNlX25vZGUgKm5v ZGU7CkBAIC0xNTAsNyArMTUwLDcgQEAgc3RhdGljIHZvaWQgX19pbml0IGNvcmVfcGxsX2luaXQo c3RydWN0IGRldmljZV9ub2RlICpucCkKIAlpbnQgaSwgcmMsIGNvdW50OwogCWNvbnN0IGNoYXIg KmNsa19uYW1lLCAqcGFyZW50X25hbWU7CiAJc3RydWN0IGNsa19vbmVjZWxsX2RhdGEgKm9uZWNl bGxfZGF0YTsKLQlzdHJ1Y3QgY2xrICAgICAgKipzdWJjbGtzOworCXN0cnVjdCBjbGtfY29yZSAg ICAgICoqc3ViY2xrczsKIAl2b2lkIF9faW9tZW0gKmJhc2U7CiAKIAliYXNlID0gb2ZfaW9tYXAo bnAsIDApOwpAQCAtMTg0LDcgKzE4NCw3IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBjb3JlX3BsbF9p bml0KHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApCiAJLyogb3V0cHV0IGNsb2NrIG51bWJlciBwZXIg UExMICovCiAJY2xvY2tzX3Blcl9wbGwgPSBjb3VudDsKIAotCXN1YmNsa3MgPSBremFsbG9jKHNp emVvZihzdHJ1Y3QgY2xrICopICogY291bnQsIEdGUF9LRVJORUwpOworCXN1YmNsa3MgPSBremFs bG9jKHNpemVvZihzdHJ1Y3QgY2xrX2NvcmUgKikgKiBjb3VudCwgR0ZQX0tFUk5FTCk7CiAJaWYg KCFzdWJjbGtzKSB7CiAJCXByX2VycigiJXM6IGNvdWxkIG5vdCBhbGxvY2F0ZSBzdWJjbGtzXG4i LCBfX2Z1bmNfXyk7CiAJCWdvdG8gZXJyX21hcDsKQEAgLTI0Niw3ICsyNDYsNyBAQCBlcnJfbWFw OgogCiBzdGF0aWMgdm9pZCBfX2luaXQgc3lzY2xrX2luaXQoc3RydWN0IGRldmljZV9ub2RlICpu b2RlKQogewotCXN0cnVjdCBjbGsgKmNsazsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmNsazsKIAljb25z dCBjaGFyICpjbGtfbmFtZSA9IG5vZGUtPm5hbWU7CiAJc3RydWN0IGRldmljZV9ub2RlICpucCA9 IG9mX2dldF9wYXJlbnQobm9kZSk7CiAJdTMyIHJhdGU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Ns ay9jbGstczJtcHMxMS5jIGIvZHJpdmVycy9jbGsvY2xrLXMybXBzMTEuYwppbmRleCBiNzc5N2Zi Li4xN2ZjN2UxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay9jbGstczJtcHMxMS5jCisrKyBiL2Ry aXZlcnMvY2xrL2Nsay1zMm1wczExLmMKQEAgLTI5LDcgKzI5LDcgQEAKIAogI2RlZmluZSBzMm1w czExX25hbWUoYSkgKGEtPmh3LmluaXQtPm5hbWUpCiAKLXN0YXRpYyBzdHJ1Y3QgY2xrICoqY2xr X3RhYmxlOworc3RhdGljIHN0cnVjdCBjbGtfY29yZSAqKmNsa190YWJsZTsKIHN0YXRpYyBzdHJ1 Y3QgY2xrX29uZWNlbGxfZGF0YSBjbGtfZGF0YTsKIAogZW51bSB7CkBAIC00Myw3ICs0Myw3IEBA IHN0cnVjdCBzMm1wczExX2NsayB7CiAJc3RydWN0IHNlY19wbWljX2RldiAqaW9kZXY7CiAJc3Ry dWN0IGRldmljZV9ub2RlICpjbGtfbnA7CiAJc3RydWN0IGNsa19odyBodzsKLQlzdHJ1Y3QgY2xr ICpjbGs7CisJc3RydWN0IGNsa19jb3JlICpjbGs7CiAJc3RydWN0IGNsa19sb29rdXAgKmxvb2t1 cDsKIAl1MzIgbWFzazsKIAl1bnNpZ25lZCBpbnQgcmVnOwpAQCAtMTc0LDcgKzE3NCw3IEBAIHN0 YXRpYyBpbnQgczJtcHMxMV9jbGtfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikK IAogCXMybXBzMTFfY2xrID0gczJtcHMxMV9jbGtzOwogCi0JY2xrX3RhYmxlID0gZGV2bV9remFs bG9jKCZwZGV2LT5kZXYsIHNpemVvZihzdHJ1Y3QgY2xrICopICoKKwljbGtfdGFibGUgPSBkZXZt X2t6YWxsb2MoJnBkZXYtPmRldiwgc2l6ZW9mKHN0cnVjdCBjbGtfY29yZSAqKSAqCiAJCQkJIFMy TVBTMTFfQ0xLU19OVU0sIEdGUF9LRVJORUwpOwogCWlmICghY2xrX3RhYmxlKQogCQlyZXR1cm4g LUVOT01FTTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL2Nsay1zaTUzNTEuYyBiL2RyaXZlcnMv Y2xrL2Nsay1zaTUzNTEuYwppbmRleCAzYjJhNjZmLi41N2M5ZWI1IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2Nsay9jbGstc2k1MzUxLmMKKysrIGIvZHJpdmVycy9jbGsvY2xrLXNpNTM1MS5jCkBAIC01 NiwxMCArNTYsMTAgQEAgc3RydWN0IHNpNTM1MV9kcml2ZXJfZGF0YSB7CiAJc3RydWN0IHJlZ21h cAkJKnJlZ21hcDsKIAlzdHJ1Y3QgY2xrX29uZWNlbGxfZGF0YSBvbmVjZWxsOwogCi0Jc3RydWN0 IGNsawkJKnB4dGFsOworCXN0cnVjdCBjbGtfY29yZQkJKnB4dGFsOwogCWNvbnN0IGNoYXIJCSpw eHRhbF9uYW1lOwogCXN0cnVjdCBjbGtfaHcJCXh0YWw7Ci0Jc3RydWN0IGNsawkJKnBjbGtpbjsK KwlzdHJ1Y3QgY2xrX2NvcmUJCSpwY2xraW47CiAJY29uc3QgY2hhcgkJKnBjbGtpbl9uYW1lOwog CXN0cnVjdCBjbGtfaHcJCWNsa2luOwogCkBAIC0xMTI4LDEyICsxMTI4LDEyIEBAIHN0YXRpYyBp bnQgc2k1MzUxX2R0X3BhcnNlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQsCiAJaWYgKCFwZGF0 YSkKIAkJcmV0dXJuIC1FTk9NRU07CiAKLQlwZGF0YS0+Y2xrX3h0YWwgPSBvZl9jbGtfZ2V0KG5w LCAwKTsKKwlwZGF0YS0+Y2xrX3h0YWwgPSBvZl9jbGtfcHJvdmlkZXJfZ2V0KG5wLCAwKTsKIAlp ZiAoIUlTX0VSUihwZGF0YS0+Y2xrX3h0YWwpKQotCQljbGtfcHV0KHBkYXRhLT5jbGtfeHRhbCk7 Ci0JcGRhdGEtPmNsa19jbGtpbiA9IG9mX2Nsa19nZXQobnAsIDEpOworCQlfX2Nsa19wdXQocGRh dGEtPmNsa194dGFsKTsKKwlwZGF0YS0+Y2xrX2Nsa2luID0gb2ZfY2xrX3Byb3ZpZGVyX2dldChu cCwgMSk7CiAJaWYgKCFJU19FUlIocGRhdGEtPmNsa19jbGtpbikpCi0JCWNsa19wdXQocGRhdGEt PmNsa19jbGtpbik7CisJCV9fY2xrX3B1dChwZGF0YS0+Y2xrX2Nsa2luKTsKIAogCS8qCiAJICog cHJvcGVydHkgc2lsYWJzLHBsbC1zb3VyY2UgOiA8bnVtIHNyYz4sIFs8Li4+XQpAQCAtMTMwNiw3 ICsxMzA2LDcgQEAgc3RhdGljIGludCBzaTUzNTFfaTJjX3Byb2JlKHN0cnVjdCBpMmNfY2xpZW50 ICpjbGllbnQsCiAJc3RydWN0IHNpNTM1MV9wbGF0Zm9ybV9kYXRhICpwZGF0YTsKIAlzdHJ1Y3Qg c2k1MzUxX2RyaXZlcl9kYXRhICpkcnZkYXRhOwogCXN0cnVjdCBjbGtfaW5pdF9kYXRhIGluaXQ7 Ci0Jc3RydWN0IGNsayAqY2xrOworCXN0cnVjdCBjbGtfY29yZSAqY2xrOwogCWNvbnN0IGNoYXIg KnBhcmVudF9uYW1lc1s0XTsKIAl1OCBudW1fcGFyZW50cywgbnVtX2Nsb2NrczsKIAlpbnQgcmV0 LCBuOwpAQCAtMTU0NSw3ICsxNTQ1LDggQEAgc3RhdGljIGludCBzaTUzNTFfaTJjX3Byb2JlKHN0 cnVjdCBpMmNfY2xpZW50ICpjbGllbnQsCiAJCS8qIHNldCBpbml0aWFsIGNsa291dCByYXRlICov CiAJCWlmIChwZGF0YS0+Y2xrb3V0W25dLnJhdGUgIT0gMCkgewogCQkJaW50IHJldDsKLQkJCXJl dCA9IGNsa19zZXRfcmF0ZShjbGssIHBkYXRhLT5jbGtvdXRbbl0ucmF0ZSk7CisJCQlyZXQgPSBj bGtfcHJvdmlkZXJfc2V0X3JhdGUoY2xrLAorCQkJCQkJICAgIHBkYXRhLT5jbGtvdXRbbl0ucmF0 ZSk7CiAJCQlpZiAocmV0ICE9IDApIHsKIAkJCQlkZXZfZXJyKCZjbGllbnQtPmRldiwgIkNhbm5v dCBzZXQgcmF0ZSA6ICVkXG4iLAogCQkJCQlyZXQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsv Y2xrLXNpNTcwLmMgYi9kcml2ZXJzL2Nsay9jbGstc2k1NzAuYwppbmRleCBmYzE2N2IzLi5mMGVl YzRlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay9jbGstc2k1NzAuYworKysgYi9kcml2ZXJzL2Ns ay9jbGstc2k1NzAuYwpAQCAtNDA3LDcgKzQwNyw3IEBAIHN0YXRpYyBpbnQgc2k1NzBfcHJvYmUo c3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwKIHsKIAlzdHJ1Y3QgY2xrX3NpNTcwICpkYXRhOwog CXN0cnVjdCBjbGtfaW5pdF9kYXRhIGluaXQ7Ci0Jc3RydWN0IGNsayAqY2xrOworCXN0cnVjdCBj bGtfY29yZSAqY2xrOwogCXUzMiBpbml0aWFsX2ZvdXQsIGZhY3RvcnlfZm91dCwgc3RhYmlsaXR5 OwogCWludCBlcnI7CiAJZW51bSBjbGtfc2k1NzBfdmFyaWFudCB2YXJpYW50ID0gaWQtPmRyaXZl cl9kYXRhOwpAQCAtNDc2LDcgKzQ3Niw3IEBAIHN0YXRpYyBpbnQgc2k1NzBfcHJvYmUoc3RydWN0 IGkyY19jbGllbnQgKmNsaWVudCwKIAkvKiBSZWFkIHRoZSByZXF1ZXN0ZWQgaW5pdGlhbCBvdXRw dXQgZnJlcXVlbmN5IGZyb20gZGV2aWNlIHRyZWUgKi8KIAlpZiAoIW9mX3Byb3BlcnR5X3JlYWRf dTMyKGNsaWVudC0+ZGV2Lm9mX25vZGUsICJjbG9jay1mcmVxdWVuY3kiLAogCQkJCSZpbml0aWFs X2ZvdXQpKSB7Ci0JCWVyciA9IGNsa19zZXRfcmF0ZShjbGssIGluaXRpYWxfZm91dCk7CisJCWVy ciA9IGNsa19wcm92aWRlcl9zZXRfcmF0ZShjbGssIGluaXRpYWxfZm91dCk7CiAJCWlmIChlcnIp IHsKIAkJCW9mX2Nsa19kZWxfcHJvdmlkZXIoY2xpZW50LT5kZXYub2Zfbm9kZSk7CiAJCQlyZXR1 cm4gZXJyOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvY2xrLXR3bDYwNDAuYyBiL2RyaXZlcnMv Y2xrL2Nsay10d2w2MDQwLmMKaW5kZXggMWFkYTc5YS4uZDI0YThhMiAxMDA2NDQKLS0tIGEvZHJp dmVycy9jbGsvY2xrLXR3bDYwNDAuYworKysgYi9kcml2ZXJzL2Nsay9jbGstdHdsNjA0MC5jCkBA IC0yMCw3ICsyMCw2IEBACiAqCiAqLwogCi0jaW5jbHVkZSA8bGludXgvY2xrLmg+CiAjaW5jbHVk ZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgogI2luY2x1ZGUgPGxp bnV4L3BsYXRmb3JtX2RldmljZS5oPgpAQCAtMzEsNyArMzAsNyBAQCBzdHJ1Y3QgdHdsNjA0MF9j bGsgewogCXN0cnVjdCB0d2w2MDQwICp0d2w2MDQwOwogCXN0cnVjdCBkZXZpY2UgKmRldjsKIAlz dHJ1Y3QgY2xrX2h3IG1jcGRtX2ZjbGs7Ci0Jc3RydWN0IGNsayAqY2xrOworCXN0cnVjdCBjbGtf Y29yZSAqY2xrOwogCWludCBlbmFibGVkOwogfTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsv Y2xrLXUzMDAuYyBiL2RyaXZlcnMvY2xrL2Nsay11MzAwLmMKaW5kZXggNDA2YmZjMS4uMzkyYmNi ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvY2xrLXUzMDAuYworKysgYi9kcml2ZXJzL2Nsay9j bGstdTMwMC5jCkBAIC01LDcgKzUsNiBAQAogICogQXV0aG9yOiBMaW51cyBXYWxsZWlqIDxsaW51 cy53YWxsZWlqQHN0ZXJpY3Nzb24uY29tPgogICogQXV0aG9yOiBKb25hcyBBYWJlcmcgPGpvbmFz LmFiZXJnQHN0ZXJpY3Nzb24uY29tPgogICovCi0jaW5jbHVkZSA8bGludXgvY2xrLmg+CiAjaW5j bHVkZSA8bGludXgvY2xrZGV2Lmg+CiAjaW5jbHVkZSA8bGludXgvZXJyLmg+CiAjaW5jbHVkZSA8 bGludXgvaW8uaD4KQEAgLTY4OCw3ICs2ODcsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGNsa19v cHMgc3lzY29uX2Nsa19vcHMgPSB7CiAJLnNldF9yYXRlID0gc3lzY29uX2Nsa19zZXRfcmF0ZSwK IH07CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrICogX19pbml0CitzdGF0aWMgc3RydWN0IGNsa19jb3Jl ICogX19pbml0CiBzeXNjb25fY2xrX3JlZ2lzdGVyKHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3Qg Y2hhciAqbmFtZSwKIAkJICAgIGNvbnN0IGNoYXIgKnBhcmVudF9uYW1lLCB1bnNpZ25lZCBsb25n IGZsYWdzLAogCQkgICAgYm9vbCBod19jdHJsZCwKQEAgLTY5Niw3ICs2OTUsNyBAQCBzeXNjb25f Y2xrX3JlZ2lzdGVyKHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3QgY2hhciAqbmFtZSwKIAkJICAg IHZvaWQgX19pb21lbSAqZW5fcmVnLCB1OCBlbl9iaXQsCiAJCSAgICB1MTYgY2xrX3ZhbCkKIHsK LQlzdHJ1Y3QgY2xrICpjbGs7CisJc3RydWN0IGNsa19jb3JlICpjbGs7CiAJc3RydWN0IGNsa19z eXNjb24gKnNjbGs7CiAJc3RydWN0IGNsa19pbml0X2RhdGEgaW5pdDsKIApAQCAtODY3LDcgKzg2 Niw3IEBAIHN0YXRpYyBzdHJ1Y3QgdTMwMF9jbG9jayBjb25zdCB1MzAwX2Nsa19sb29rdXBbXSBf X2luaXRjb25zdCA9IHsKIAogc3RhdGljIHZvaWQgX19pbml0IG9mX3UzMDBfc3lzY29uX2Nsa19p bml0KHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApCiB7Ci0Jc3RydWN0IGNsayAqY2xrID0gRVJSX1BU UigtRUlOVkFMKTsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmNsayA9IEVSUl9QVFIoLUVJTlZBTCk7CiAJ Y29uc3QgY2hhciAqY2xrX25hbWUgPSBucC0+bmFtZTsKIAljb25zdCBjaGFyICpwYXJlbnRfbmFt ZTsKIAl2b2lkIF9faW9tZW0gKnJlc19yZWc7CkBAIC0xMTEwLDExICsxMTA5LDExIEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3QgY2xrX29wcyBtY2xrX29wcyA9IHsKIAkuc2V0X3JhdGUgPSBtY2xrX2Ns a19zZXRfcmF0ZSwKIH07CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrICogX19pbml0CitzdGF0aWMgc3Ry dWN0IGNsa19jb3JlICogX19pbml0CiBtY2xrX2Nsa19yZWdpc3RlcihzdHJ1Y3QgZGV2aWNlICpk ZXYsIGNvbnN0IGNoYXIgKm5hbWUsCiAJCSAgY29uc3QgY2hhciAqcGFyZW50X25hbWUsIGJvb2wg aXNfbXNwcm8pCiB7Ci0Jc3RydWN0IGNsayAqY2xrOworCXN0cnVjdCBjbGtfY29yZSAqY2xrOwog CXN0cnVjdCBjbGtfbWNsayAqbWNsazsKIAlzdHJ1Y3QgY2xrX2luaXRfZGF0YSBpbml0OwogCkBA IC0xMTQxLDcgKzExNDAsNyBAQCBtY2xrX2Nsa19yZWdpc3RlcihzdHJ1Y3QgZGV2aWNlICpkZXYs IGNvbnN0IGNoYXIgKm5hbWUsCiAKIHN0YXRpYyB2b2lkIF9faW5pdCBvZl91MzAwX3N5c2Nvbl9t Y2xrX2luaXQoc3RydWN0IGRldmljZV9ub2RlICpucCkKIHsKLQlzdHJ1Y3QgY2xrICpjbGsgPSBF UlJfUFRSKC1FSU5WQUwpOworCXN0cnVjdCBjbGtfY29yZSAqY2xrID0gRVJSX1BUUigtRUlOVkFM KTsKIAljb25zdCBjaGFyICpjbGtfbmFtZSA9IG5wLT5uYW1lOwogCWNvbnN0IGNoYXIgKnBhcmVu dF9uYW1lOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9jbGstdnQ4NTAwLmMgYi9kcml2ZXJz L2Nsay9jbGstdnQ4NTAwLmMKaW5kZXggMzdlOTI4OC4uZTVmYjkzMyAxMDA2NDQKLS0tIGEvZHJp dmVycy9jbGsvY2xrLXZ0ODUwMC5jCisrKyBiL2RyaXZlcnMvY2xrL2Nsay12dDg1MDAuYwpAQCAt MjMyLDcgKzIzMiw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrX29wcyB2dDg1MDBfZ2F0ZWRf ZGl2aXNvcl9jbGtfb3BzID0gewogc3RhdGljIF9faW5pdCB2b2lkIHZ0d21fZGV2aWNlX2Nsa19p bml0KHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSkKIHsKIAl1MzIgZW5fcmVnLCBkaXZfcmVnOwot CXN0cnVjdCBjbGsgKmNsazsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmNsazsKIAlzdHJ1Y3QgY2xrX2Rl dmljZSAqZGV2X2NsazsKIAljb25zdCBjaGFyICpjbGtfbmFtZSA9IG5vZGUtPm5hbWU7CiAJY29u c3QgY2hhciAqcGFyZW50X25hbWU7CkBAIC02NTAsNyArNjUwLDcgQEAgc3RhdGljIGNvbnN0IHN0 cnVjdCBjbGtfb3BzIHZ0d21fcGxsX29wcyA9IHsKIHN0YXRpYyBfX2luaXQgdm9pZCB2dHdtX3Bs bF9jbGtfaW5pdChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUsIGludCBwbGxfdHlwZSkKIHsKIAl1 MzIgcmVnOwotCXN0cnVjdCBjbGsgKmNsazsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmNsazsKIAlzdHJ1 Y3QgY2xrX3BsbCAqcGxsX2NsazsKIAljb25zdCBjaGFyICpjbGtfbmFtZSA9IG5vZGUtPm5hbWU7 CiAJY29uc3QgY2hhciAqcGFyZW50X25hbWU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9jbGst d204MzF4LmMgYi9kcml2ZXJzL2Nsay9jbGstd204MzF4LmMKaW5kZXggYjEzMTA0MS4uODRjZTg3 MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvY2xrLXdtODMxeC5jCisrKyBiL2RyaXZlcnMvY2xr L2Nsay13bTgzMXguYwpAQCAtMTIsNyArMTIsNiBAQAogICoKICAqLwogCi0jaW5jbHVkZSA8bGlu dXgvY2xrLmg+CiAjaW5jbHVkZSA8bGludXgvY2xrLXByb3ZpZGVyLmg+CiAjaW5jbHVkZSA8bGlu dXgvZGVsYXkuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KQEAgLTI1LDkgKzI0LDkgQEAg c3RydWN0IHdtODMxeF9jbGsgewogCXN0cnVjdCBjbGtfaHcgeHRhbF9odzsKIAlzdHJ1Y3QgY2xr X2h3IGZsbF9odzsKIAlzdHJ1Y3QgY2xrX2h3IGNsa291dF9odzsKLQlzdHJ1Y3QgY2xrICp4dGFs OwotCXN0cnVjdCBjbGsgKmZsbDsKLQlzdHJ1Y3QgY2xrICpjbGtvdXQ7CisJc3RydWN0IGNsa19j b3JlICp4dGFsOworCXN0cnVjdCBjbGtfY29yZSAqZmxsOworCXN0cnVjdCBjbGtfY29yZSAqY2xr b3V0OwogCWJvb2wgeHRhbF9lbmE7CiB9OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9jbGst eGdlbmUuYyBiL2RyaXZlcnMvY2xrL2Nsay14Z2VuZS5jCmluZGV4IGRkOGE2MmQuLmNlM2VkMzQg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL2Nsay14Z2VuZS5jCisrKyBiL2RyaXZlcnMvY2xrL2Ns ay14Z2VuZS5jCkBAIC0xMjQsMTMgKzEyNCwxMyBAQCBjb25zdCBzdHJ1Y3QgY2xrX29wcyB4Z2Vu ZV9jbGtfcGxsX29wcyA9IHsKIAkucmVjYWxjX3JhdGUgPSB4Z2VuZV9jbGtfcGxsX3JlY2FsY19y YXRlLAogfTsKIAotc3RhdGljIHN0cnVjdCBjbGsgKnhnZW5lX3JlZ2lzdGVyX2Nsa19wbGwoc3Ry dWN0IGRldmljZSAqZGV2LAorc3RhdGljIHN0cnVjdCBjbGtfY29yZSAqeGdlbmVfcmVnaXN0ZXJf Y2xrX3BsbChzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hh ciAqcGFyZW50X25hbWUsCiAJdW5zaWduZWQgbG9uZyBmbGFncywgdm9pZCBfX2lvbWVtICpyZWcs IHUzMiBwbGxfb2Zmc2V0LAogCXUzMiB0eXBlLCBzcGlubG9ja190ICpsb2NrKQogewogCXN0cnVj dCB4Z2VuZV9jbGtfcGxsICphcG1jbGs7Ci0Jc3RydWN0IGNsayAqY2xrOworCXN0cnVjdCBjbGtf Y29yZSAqY2xrOwogCXN0cnVjdCBjbGtfaW5pdF9kYXRhIGluaXQ7CiAKIAkvKiBhbGxvY2F0ZSB0 aGUgQVBNIGNsb2NrIHN0cnVjdHVyZSAqLwpAQCAtMTY2LDcgKzE2Niw3IEBAIHN0YXRpYyBzdHJ1 Y3QgY2xrICp4Z2VuZV9yZWdpc3Rlcl9jbGtfcGxsKHN0cnVjdCBkZXZpY2UgKmRldiwKIHN0YXRp YyB2b2lkIHhnZW5lX3BsbGNsa19pbml0KHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsIGVudW0geGdl bmVfcGxsX3R5cGUgcGxsX3R5cGUpCiB7CiAgICAgICAgIGNvbnN0IGNoYXIgKmNsa19uYW1lID0g bnAtPmZ1bGxfbmFtZTsKLSAgICAgICAgc3RydWN0IGNsayAqY2xrOworICAgICAgICBzdHJ1Y3Qg Y2xrX2NvcmUgKmNsazsKICAgICAgICAgdm9pZCAqcmVnOwogCiAgICAgICAgIHJlZyA9IG9mX2lv bWFwKG5wLCAwKTsKQEAgLTM5NSwxMiArMzk1LDEyIEBAIGNvbnN0IHN0cnVjdCBjbGtfb3BzIHhn ZW5lX2Nsa19vcHMgPSB7CiAJLnJvdW5kX3JhdGUgPSB4Z2VuZV9jbGtfcm91bmRfcmF0ZSwKIH07 CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrICp4Z2VuZV9yZWdpc3Rlcl9jbGsoc3RydWN0IGRldmljZSAq ZGV2LAorc3RhdGljIHN0cnVjdCBjbGtfY29yZSAqeGdlbmVfcmVnaXN0ZXJfY2xrKHN0cnVjdCBk ZXZpY2UgKmRldiwKIAkJY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqcGFyZW50X25hbWUs CiAJCXN0cnVjdCB4Z2VuZV9kZXZfcGFyYW1ldGVycyAqcGFyYW1ldGVycywgc3BpbmxvY2tfdCAq bG9jaykKIHsKIAlzdHJ1Y3QgeGdlbmVfY2xrICphcG1jbGs7Ci0Jc3RydWN0IGNsayAqY2xrOwor CXN0cnVjdCBjbGtfY29yZSAqY2xrOwogCXN0cnVjdCBjbGtfaW5pdF9kYXRhIGluaXQ7CiAJaW50 IHJjOwogCkBAIC00NDIsNyArNDQyLDcgQEAgc3RhdGljIHN0cnVjdCBjbGsgKnhnZW5lX3JlZ2lz dGVyX2NsayhzdHJ1Y3QgZGV2aWNlICpkZXYsCiBzdGF0aWMgdm9pZCBfX2luaXQgeGdlbmVfZGV2 Y2xrX2luaXQoc3RydWN0IGRldmljZV9ub2RlICpucCkKIHsKIAljb25zdCBjaGFyICpjbGtfbmFt ZSA9IG5wLT5mdWxsX25hbWU7Ci0Jc3RydWN0IGNsayAqY2xrOworCXN0cnVjdCBjbGtfY29yZSAq Y2xrOwogCXN0cnVjdCByZXNvdXJjZSByZXM7CiAJaW50IHJjOwogCXN0cnVjdCB4Z2VuZV9kZXZf cGFyYW1ldGVycyBwYXJhbWV0ZXJzOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvY2xrLmggYi9k cml2ZXJzL2Nsay9jbGsuaAppbmRleCBjNzk4MTM4Li5kMjc4NTcyIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2Nsay9jbGsuaAorKysgYi9kcml2ZXJzL2Nsay9jbGsuaApAQCAtMTAsOCArMTAsOCBAQAog ICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19PRikgJiYgZGVmaW5lZChDT05GSUdfQ09NTU9OX0NM SykKLXN0cnVjdCBjbGsgKm9mX2Nsa19nZXRfYnlfY2xrc3BlYyhzdHJ1Y3Qgb2ZfcGhhbmRsZV9h cmdzICpjbGtzcGVjKTsKLXN0cnVjdCBjbGsgKl9fb2ZfY2xrX2dldF9mcm9tX3Byb3ZpZGVyKHN0 cnVjdCBvZl9waGFuZGxlX2FyZ3MgKmNsa3NwZWMpOworc3RydWN0IGNsa19jb3JlICpvZl9jbGtf Z2V0X2J5X2Nsa3NwZWMoc3RydWN0IG9mX3BoYW5kbGVfYXJncyAqY2xrc3BlYyk7CitzdHJ1Y3Qg Y2xrX2NvcmUgKl9fb2ZfY2xrX2dldF9mcm9tX3Byb3ZpZGVyKHN0cnVjdCBvZl9waGFuZGxlX2Fy Z3MgKmNsa3NwZWMpOwogdm9pZCBvZl9jbGtfbG9jayh2b2lkKTsKIHZvaWQgb2ZfY2xrX3VubG9j ayh2b2lkKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvaGlzaWxpY29uL2Nsay1o aTM2MjAuYyBiL2RyaXZlcnMvY2xrL2hpc2lsaWNvbi9jbGstaGkzNjIwLmMKaW5kZXggMzM5OTQ1 ZC4uMjZmMTFhMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvaGlzaWxpY29uL2Nsay1oaTM2MjAu YworKysgYi9kcml2ZXJzL2Nsay9oaXNpbGljb24vY2xrLWhpMzYyMC5jCkBAIC0zMSw3ICszMSw2 IEBACiAjaW5jbHVkZSA8bGludXgvb2ZfYWRkcmVzcy5oPgogI2luY2x1ZGUgPGxpbnV4L29mX2Rl dmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KLSNpbmNsdWRlIDxsaW51eC9jbGsuaD4K IAogI2luY2x1ZGUgPGR0LWJpbmRpbmdzL2Nsb2NrL2hpMzYyMC1jbG9jay5oPgogCkBAIC0yOTYs NyArMjk1LDcgQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcgbW1jX2Nsa19yZWNhbGNfcmF0ZShzdHJ1 Y3QgY2xrX2h3ICpodywKIAogc3RhdGljIGxvbmcgbW1jX2Nsa19kZXRlcm1pbmVfcmF0ZShzdHJ1 Y3QgY2xrX2h3ICpodywgdW5zaWduZWQgbG9uZyByYXRlLAogCQkJICAgICAgdW5zaWduZWQgbG9u ZyAqYmVzdF9wYXJlbnRfcmF0ZSwKLQkJCSAgICAgIHN0cnVjdCBjbGsgKipiZXN0X3BhcmVudF9w KQorCQkJICAgICAgc3RydWN0IGNsa19jb3JlICoqYmVzdF9wYXJlbnRfcCkKIHsKIAlzdHJ1Y3Qg Y2xrX21tYyAqbWNsayA9IHRvX21tYyhodyk7CiAJdW5zaWduZWQgbG9uZyBiZXN0ID0gMDsKQEAg LTQyNywxMSArNDI2LDExIEBAIHN0YXRpYyBzdHJ1Y3QgY2xrX29wcyBjbGtfbW1jX29wcyA9IHsK IAkucmVjYWxjX3JhdGUgPSBtbWNfY2xrX3JlY2FsY19yYXRlLAogfTsKIAotc3RhdGljIHN0cnVj dCBjbGsgKmhpc2lfcmVnaXN0ZXJfY2xrX21tYyhzdHJ1Y3QgaGlzaV9tbWNfY2xvY2sgKm1tY19j bGssCitzdGF0aWMgc3RydWN0IGNsa19jb3JlICpoaXNpX3JlZ2lzdGVyX2Nsa19tbWMoc3RydWN0 IGhpc2lfbW1jX2Nsb2NrICptbWNfY2xrLAogCQkJdm9pZCBfX2lvbWVtICpiYXNlLCBzdHJ1Y3Qg ZGV2aWNlX25vZGUgKm5wKQogewogCXN0cnVjdCBjbGtfbW1jICptY2xrOwotCXN0cnVjdCBjbGsg KmNsazsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmNsazsKIAlzdHJ1Y3QgY2xrX2luaXRfZGF0YSBpbml0 OwogCiAJbWNsayA9IGt6YWxsb2Moc2l6ZW9mKCptY2xrKSwgR0ZQX0tFUk5FTCk7CkBAIC00ODcs NyArNDg2LDcgQEAgc3RhdGljIHZvaWQgX19pbml0IGhpMzYyMF9tbWNfY2xrX2luaXQoc3RydWN0 IGRldmljZV9ub2RlICpub2RlKQogCWlmIChXQVJOX09OKCFjbGtfZGF0YSkpCiAJCXJldHVybjsK IAotCWNsa19kYXRhLT5jbGtzID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IGNsayAqKSAqIG51bSwg R0ZQX0tFUk5FTCk7CisJY2xrX2RhdGEtPmNsa3MgPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgY2xr X2NvcmUgKikgKiBudW0sIEdGUF9LRVJORUwpOwogCWlmICghY2xrX2RhdGEtPmNsa3MpIHsKIAkJ cHJfZXJyKCIlczogZmFpbCB0byBhbGxvY2F0ZSBtbWMgY2xrXG4iLCBfX2Z1bmNfXyk7CiAJCXJl dHVybjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL2hpc2lsaWNvbi9jbGstaGlwMDQuYyBiL2Ry aXZlcnMvY2xrL2hpc2lsaWNvbi9jbGstaGlwMDQuYwppbmRleCAxMzJiNTdhLi5lODQwM2MwIDEw MDY0NAotLS0gYS9kcml2ZXJzL2Nsay9oaXNpbGljb24vY2xrLWhpcDA0LmMKKysrIGIvZHJpdmVy cy9jbGsvaGlzaWxpY29uL2Nsay1oaXAwNC5jCkBAIC0zMCw3ICszMCw2IEBACiAjaW5jbHVkZSA8 bGludXgvb2ZfYWRkcmVzcy5oPgogI2luY2x1ZGUgPGxpbnV4L29mX2RldmljZS5oPgogI2luY2x1 ZGUgPGxpbnV4L3NsYWIuaD4KLSNpbmNsdWRlIDxsaW51eC9jbGsuaD4KIAogI2luY2x1ZGUgPGR0 LWJpbmRpbmdzL2Nsb2NrL2hpcDA0LWNsb2NrLmg+CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xr L2hpc2lsaWNvbi9jbGsuYyBiL2RyaXZlcnMvY2xrL2hpc2lsaWNvbi9jbGsuYwppbmRleCBhMDc4 ZTg0Li4wMGI3YzljIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay9oaXNpbGljb24vY2xrLmMKKysr IGIvZHJpdmVycy9jbGsvaGlzaWxpY29uL2Nsay5jCkBAIC0zMiw3ICszMiw2IEBACiAjaW5jbHVk ZSA8bGludXgvb2ZfYWRkcmVzcy5oPgogI2luY2x1ZGUgPGxpbnV4L29mX2RldmljZS5oPgogI2lu Y2x1ZGUgPGxpbnV4L3NsYWIuaD4KLSNpbmNsdWRlIDxsaW51eC9jbGsuaD4KIAogI2luY2x1ZGUg ImNsay5oIgogCkBAIC00Miw3ICs0MSw3IEBAIHN0cnVjdCBoaXNpX2Nsb2NrX2RhdGEgX19pbml0 ICpoaXNpX2Nsa19pbml0KHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsCiAJCQkJCSAgICAgaW50IG5y X2Nsa3MpCiB7CiAJc3RydWN0IGhpc2lfY2xvY2tfZGF0YSAqY2xrX2RhdGE7Ci0Jc3RydWN0IGNs ayAqKmNsa190YWJsZTsKKwlzdHJ1Y3QgY2xrX2NvcmUgKipjbGtfdGFibGU7CiAJdm9pZCBfX2lv bWVtICpiYXNlOwogCiAJaWYgKG5wKSB7CkBAIC02Myw3ICs2Miw3IEBAIHN0cnVjdCBoaXNpX2Ns b2NrX2RhdGEgX19pbml0ICpoaXNpX2Nsa19pbml0KHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsCiAJ fQogCWNsa19kYXRhLT5iYXNlID0gYmFzZTsKIAotCWNsa190YWJsZSA9IGt6YWxsb2Moc2l6ZW9m KHN0cnVjdCBjbGsgKikgKiBucl9jbGtzLCBHRlBfS0VSTkVMKTsKKwljbGtfdGFibGUgPSBremFs bG9jKHNpemVvZihzdHJ1Y3QgY2xrX2NvcmUgKikgKiBucl9jbGtzLCBHRlBfS0VSTkVMKTsKIAlp ZiAoIWNsa190YWJsZSkgewogCQlwcl9lcnIoIiVzOiBjb3VsZCBub3QgYWxsb2NhdGUgY2xvY2sg bG9va3VwIHRhYmxlXG4iLCBfX2Z1bmNfXyk7CiAJCWdvdG8gZXJyX2RhdGE7CkBAIC04MSw3ICs4 MCw3IEBAIGVycjoKIHZvaWQgX19pbml0IGhpc2lfY2xrX3JlZ2lzdGVyX2ZpeGVkX3JhdGUoc3Ry dWN0IGhpc2lfZml4ZWRfcmF0ZV9jbG9jayAqY2xrcywKIAkJCQkJIGludCBudW1zLCBzdHJ1Y3Qg aGlzaV9jbG9ja19kYXRhICpkYXRhKQogewotCXN0cnVjdCBjbGsgKmNsazsKKwlzdHJ1Y3QgY2xr X2NvcmUgKmNsazsKIAlpbnQgaTsKIAogCWZvciAoaSA9IDA7IGkgPCBudW1zOyBpKyspIHsKQEAg LTEwMiw3ICsxMDEsNyBAQCB2b2lkIF9faW5pdCBoaXNpX2Nsa19yZWdpc3Rlcl9maXhlZF9mYWN0 b3Ioc3RydWN0IGhpc2lfZml4ZWRfZmFjdG9yX2Nsb2NrICpjbGtzLAogCQkJCQkgICBpbnQgbnVt cywKIAkJCQkJICAgc3RydWN0IGhpc2lfY2xvY2tfZGF0YSAqZGF0YSkKIHsKLQlzdHJ1Y3QgY2xr ICpjbGs7CisJc3RydWN0IGNsa19jb3JlICpjbGs7CiAJaW50IGk7CiAKIAlmb3IgKGkgPSAwOyBp IDwgbnVtczsgaSsrKSB7CkBAIC0xMjIsNyArMTIxLDcgQEAgdm9pZCBfX2luaXQgaGlzaV9jbGtf cmVnaXN0ZXJfZml4ZWRfZmFjdG9yKHN0cnVjdCBoaXNpX2ZpeGVkX2ZhY3Rvcl9jbG9jayAqY2xr cywKIHZvaWQgX19pbml0IGhpc2lfY2xrX3JlZ2lzdGVyX211eChzdHJ1Y3QgaGlzaV9tdXhfY2xv Y2sgKmNsa3MsCiAJCQkJICBpbnQgbnVtcywgc3RydWN0IGhpc2lfY2xvY2tfZGF0YSAqZGF0YSkK IHsKLQlzdHJ1Y3QgY2xrICpjbGs7CisJc3RydWN0IGNsa19jb3JlICpjbGs7CiAJdm9pZCBfX2lv bWVtICpiYXNlID0gZGF0YS0+YmFzZTsKIAlpbnQgaTsKIApAQCAtMTUxLDcgKzE1MCw3IEBAIHZv aWQgX19pbml0IGhpc2lfY2xrX3JlZ2lzdGVyX211eChzdHJ1Y3QgaGlzaV9tdXhfY2xvY2sgKmNs a3MsCiB2b2lkIF9faW5pdCBoaXNpX2Nsa19yZWdpc3Rlcl9kaXZpZGVyKHN0cnVjdCBoaXNpX2Rp dmlkZXJfY2xvY2sgKmNsa3MsCiAJCQkJICAgICAgaW50IG51bXMsIHN0cnVjdCBoaXNpX2Nsb2Nr X2RhdGEgKmRhdGEpCiB7Ci0Jc3RydWN0IGNsayAqY2xrOworCXN0cnVjdCBjbGtfY29yZSAqY2xr OwogCXZvaWQgX19pb21lbSAqYmFzZSA9IGRhdGEtPmJhc2U7CiAJaW50IGk7CiAKQEAgLTE4MCw3 ICsxNzksNyBAQCB2b2lkIF9faW5pdCBoaXNpX2Nsa19yZWdpc3Rlcl9kaXZpZGVyKHN0cnVjdCBo aXNpX2RpdmlkZXJfY2xvY2sgKmNsa3MsCiB2b2lkIF9faW5pdCBoaXNpX2Nsa19yZWdpc3Rlcl9n YXRlKHN0cnVjdCBoaXNpX2dhdGVfY2xvY2sgKmNsa3MsCiAJCQkJICAgICAgIGludCBudW1zLCBz dHJ1Y3QgaGlzaV9jbG9ja19kYXRhICpkYXRhKQogewotCXN0cnVjdCBjbGsgKmNsazsKKwlzdHJ1 Y3QgY2xrX2NvcmUgKmNsazsKIAl2b2lkIF9faW9tZW0gKmJhc2UgPSBkYXRhLT5iYXNlOwogCWlu dCBpOwogCkBAIC0yMDgsNyArMjA3LDcgQEAgdm9pZCBfX2luaXQgaGlzaV9jbGtfcmVnaXN0ZXJf Z2F0ZShzdHJ1Y3QgaGlzaV9nYXRlX2Nsb2NrICpjbGtzLAogdm9pZCBfX2luaXQgaGlzaV9jbGtf cmVnaXN0ZXJfZ2F0ZV9zZXAoc3RydWN0IGhpc2lfZ2F0ZV9jbG9jayAqY2xrcywKIAkJCQkgICAg ICAgaW50IG51bXMsIHN0cnVjdCBoaXNpX2Nsb2NrX2RhdGEgKmRhdGEpCiB7Ci0Jc3RydWN0IGNs ayAqY2xrOworCXN0cnVjdCBjbGtfY29yZSAqY2xrOwogCXZvaWQgX19pb21lbSAqYmFzZSA9IGRh dGEtPmJhc2U7CiAJaW50IGk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL2hpc2lsaWNvbi9j bGsuaCBiL2RyaXZlcnMvY2xrL2hpc2lsaWNvbi9jbGsuaAppbmRleCAzMTA4M2ZmLi5mN2ZjNGI5 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay9oaXNpbGljb24vY2xrLmgKKysrIGIvZHJpdmVycy9j bGsvaGlzaWxpY29uL2Nsay5oCkBAIC05MCw3ICs5MCw3IEBAIHN0cnVjdCBoaXNpX2dhdGVfY2xv Y2sgewogCWNvbnN0IGNoYXIJCSphbGlhczsKIH07CiAKLXN0cnVjdCBjbGsgKmhpc2lfcmVnaXN0 ZXJfY2xrZ2F0ZV9zZXAoc3RydWN0IGRldmljZSAqLCBjb25zdCBjaGFyICosCitzdHJ1Y3QgY2xr X2NvcmUgKmhpc2lfcmVnaXN0ZXJfY2xrZ2F0ZV9zZXAoc3RydWN0IGRldmljZSAqLCBjb25zdCBj aGFyICosCiAJCQkJY29uc3QgY2hhciAqLCB1bnNpZ25lZCBsb25nLAogCQkJCXZvaWQgX19pb21l bSAqLCB1OCwKIAkJCQl1OCwgc3BpbmxvY2tfdCAqKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xr L2hpc2lsaWNvbi9jbGtnYXRlLXNlcGFyYXRlZC5jIGIvZHJpdmVycy9jbGsvaGlzaWxpY29uL2Ns a2dhdGUtc2VwYXJhdGVkLmMKaW5kZXggYjAzZDVhNy4uNWRiNWJhNiAxMDA2NDQKLS0tIGEvZHJp dmVycy9jbGsvaGlzaWxpY29uL2Nsa2dhdGUtc2VwYXJhdGVkLmMKKysrIGIvZHJpdmVycy9jbGsv aGlzaWxpY29uL2Nsa2dhdGUtc2VwYXJhdGVkLmMKQEAgLTI4LDcgKzI4LDYgQEAKICNpbmNsdWRl IDxsaW51eC9jbGtkZXYuaD4KICNpbmNsdWRlIDxsaW51eC9pby5oPgogI2luY2x1ZGUgPGxpbnV4 L3NsYWIuaD4KLSNpbmNsdWRlIDxsaW51eC9jbGsuaD4KIAogI2luY2x1ZGUgImNsay5oIgogCkBA IC05NiwxNCArOTUsMTQgQEAgc3RhdGljIHN0cnVjdCBjbGtfb3BzIGNsa2dhdGVfc2VwYXJhdGVk X29wcyA9IHsKIAkuaXNfZW5hYmxlZAk9IGNsa2dhdGVfc2VwYXJhdGVkX2lzX2VuYWJsZWQsCiB9 OwogCi1zdHJ1Y3QgY2xrICpoaXNpX3JlZ2lzdGVyX2Nsa2dhdGVfc2VwKHN0cnVjdCBkZXZpY2Ug KmRldiwgY29uc3QgY2hhciAqbmFtZSwKK3N0cnVjdCBjbGtfY29yZSAqaGlzaV9yZWdpc3Rlcl9j bGtnYXRlX3NlcChzdHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0IGNoYXIgKm5hbWUsCiAJCQkJICAg ICAgY29uc3QgY2hhciAqcGFyZW50X25hbWUsCiAJCQkJICAgICAgdW5zaWduZWQgbG9uZyBmbGFn cywKIAkJCQkgICAgICB2b2lkIF9faW9tZW0gKnJlZywgdTggYml0X2lkeCwKIAkJCQkgICAgICB1 OCBjbGtfZ2F0ZV9mbGFncywgc3BpbmxvY2tfdCAqbG9jaykKIHsKIAlzdHJ1Y3QgY2xrZ2F0ZV9z ZXBhcmF0ZWQgKnNjbGs7Ci0Jc3RydWN0IGNsayAqY2xrOworCXN0cnVjdCBjbGtfY29yZSAqY2xr OwogCXN0cnVjdCBjbGtfaW5pdF9kYXRhIGluaXQ7CiAKIAlzY2xrID0ga3phbGxvYyhzaXplb2Yo KnNjbGspLCBHRlBfS0VSTkVMKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL2tleXN0b25lL2dh dGUuYyBiL2RyaXZlcnMvY2xrL2tleXN0b25lL2dhdGUuYwppbmRleCA4NmYxZTM2Li42YmIyMTFh IDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay9rZXlzdG9uZS9nYXRlLmMKKysrIGIvZHJpdmVycy9j bGsva2V5c3RvbmUvZ2F0ZS5jCkBAIC0xMCw3ICsxMCw2IEBACiAgKiB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgogICogKGF0 IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICAqLwotI2luY2x1ZGUgPGxpbnV4L2Ns ay5oPgogI2luY2x1ZGUgPGxpbnV4L2Nsay1wcm92aWRlci5oPgogI2luY2x1ZGUgPGxpbnV4L2Vy ci5oPgogI2luY2x1ZGUgPGxpbnV4L2lvLmg+CkBAIC0xNjMsNyArMTYyLDcgQEAgc3RhdGljIGNv bnN0IHN0cnVjdCBjbGtfb3BzIGNsa19wc2Nfb3BzID0gewogICogQHBzY19kYXRhOiBwbGF0Zm9y bSBkYXRhIHRvIGNvbmZpZ3VyZSB0aGlzIGNsb2NrCiAgKiBAbG9jazogc3BpbmxvY2sgdXNlZCBi eSB0aGlzIGNsb2NrCiAgKi8KLXN0YXRpYyBzdHJ1Y3QgY2xrICpjbGtfcmVnaXN0ZXJfcHNjKHN0 cnVjdCBkZXZpY2UgKmRldiwKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgKmNsa19yZWdpc3Rlcl9w c2Moc3RydWN0IGRldmljZSAqZGV2LAogCQkJY29uc3QgY2hhciAqbmFtZSwKIAkJCWNvbnN0IGNo YXIgKnBhcmVudF9uYW1lLAogCQkJc3RydWN0IGNsa19wc2NfZGF0YSAqcHNjX2RhdGEsCkBAIC0x NzEsNyArMTcwLDcgQEAgc3RhdGljIHN0cnVjdCBjbGsgKmNsa19yZWdpc3Rlcl9wc2Moc3RydWN0 IGRldmljZSAqZGV2LAogewogCXN0cnVjdCBjbGtfaW5pdF9kYXRhIGluaXQ7CiAJc3RydWN0IGNs a19wc2MgKnBzYzsKLQlzdHJ1Y3QgY2xrICpjbGs7CisJc3RydWN0IGNsa19jb3JlICpjbGs7CiAK IAlwc2MgPSBremFsbG9jKHNpemVvZigqcHNjKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFwc2MpCkBA IC0yMDQsNyArMjAzLDcgQEAgc3RhdGljIHZvaWQgX19pbml0IG9mX3BzY19jbGtfaW5pdChzdHJ1 Y3QgZGV2aWNlX25vZGUgKm5vZGUsIHNwaW5sb2NrX3QgKmxvY2spCiAJY29uc3QgY2hhciAqY2xr X25hbWUgPSBub2RlLT5uYW1lOwogCWNvbnN0IGNoYXIgKnBhcmVudF9uYW1lOwogCXN0cnVjdCBj bGtfcHNjX2RhdGEgKmRhdGE7Ci0Jc3RydWN0IGNsayAqY2xrOworCXN0cnVjdCBjbGtfY29yZSAq Y2xrOwogCWludCBpOwogCiAJZGF0YSA9IGt6YWxsb2Moc2l6ZW9mKCpkYXRhKSwgR0ZQX0tFUk5F TCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9rZXlzdG9uZS9wbGwuYyBiL2RyaXZlcnMvY2xr L2tleXN0b25lL3BsbC5jCmluZGV4IDBkZDhhNGIuLjJlMzE4OTUgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvY2xrL2tleXN0b25lL3BsbC5jCisrKyBiL2RyaXZlcnMvY2xrL2tleXN0b25lL3BsbC5jCkBA IC0xMCw3ICsxMCw2IEBACiAgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIg dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgogICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0 ZXIgdmVyc2lvbi4KICAqLwotI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgogI2luY2x1ZGUgPGxpbnV4 L2Nsay1wcm92aWRlci5oPgogI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgogI2luY2x1ZGUgPGxpbnV4 L2lvLmg+CkBAIC0xMTYsMTQgKzExNSwxNCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGNsa19vcHMg Y2xrX3BsbF9vcHMgPSB7CiAJLnJlY2FsY19yYXRlID0gY2xrX3BsbGNsa19yZWNhbGMsCiB9Owog Ci1zdGF0aWMgc3RydWN0IGNsayAqY2xrX3JlZ2lzdGVyX3BsbChzdHJ1Y3QgZGV2aWNlICpkZXYs CitzdGF0aWMgc3RydWN0IGNsa19jb3JlICpjbGtfcmVnaXN0ZXJfcGxsKHN0cnVjdCBkZXZpY2Ug KmRldiwKIAkJCWNvbnN0IGNoYXIgKm5hbWUsCiAJCQljb25zdCBjaGFyICpwYXJlbnRfbmFtZSwK IAkJCXN0cnVjdCBjbGtfcGxsX2RhdGEgKnBsbF9kYXRhKQogewogCXN0cnVjdCBjbGtfaW5pdF9k YXRhIGluaXQ7CiAJc3RydWN0IGNsa19wbGwgKnBsbDsKLQlzdHJ1Y3QgY2xrICpjbGs7CisJc3Ry dWN0IGNsa19jb3JlICpjbGs7CiAKIAlwbGwgPSBremFsbG9jKHNpemVvZigqcGxsKSwgR0ZQX0tF Uk5FTCk7CiAJaWYgKCFwbGwpCkBAIC0xNTgsNyArMTU3LDcgQEAgc3RhdGljIHZvaWQgX19pbml0 IF9vZl9wbGxfY2xrX2luaXQoc3RydWN0IGRldmljZV9ub2RlICpub2RlLCBib29sIHBsbGN0cmwp CiB7CiAJc3RydWN0IGNsa19wbGxfZGF0YSAqcGxsX2RhdGE7CiAJY29uc3QgY2hhciAqcGFyZW50 X25hbWU7Ci0Jc3RydWN0IGNsayAqY2xrOworCXN0cnVjdCBjbGtfY29yZSAqY2xrOwogCWludCBp OwogCiAJcGxsX2RhdGEgPSBremFsbG9jKHNpemVvZigqcGxsX2RhdGEpLCBHRlBfS0VSTkVMKTsK QEAgLTIzOSw3ICsyMzgsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgb2ZfcGxsX2Rpdl9jbGtfaW5p dChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUpCiAJY29uc3QgY2hhciAqcGFyZW50X25hbWU7CiAJ dm9pZCBfX2lvbWVtICpyZWc7CiAJdTMyIHNoaWZ0LCBtYXNrOwotCXN0cnVjdCBjbGsgKmNsazsK KwlzdHJ1Y3QgY2xrX2NvcmUgKmNsazsKIAljb25zdCBjaGFyICpjbGtfbmFtZSA9IG5vZGUtPm5h bWU7CiAKIAlvZl9wcm9wZXJ0eV9yZWFkX3N0cmluZyhub2RlLCAiY2xvY2stb3V0cHV0LW5hbWVz IiwgJmNsa19uYW1lKTsKQEAgLTI4Miw3ICsyODEsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgb2Zf cGxsX211eF9jbGtfaW5pdChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUpCiB7CiAJdm9pZCBfX2lv bWVtICpyZWc7CiAJdTMyIHNoaWZ0LCBtYXNrOwotCXN0cnVjdCBjbGsgKmNsazsKKwlzdHJ1Y3Qg Y2xrX2NvcmUgKmNsazsKIAljb25zdCBjaGFyICpwYXJlbnRzWzJdOwogCWNvbnN0IGNoYXIgKmNs a19uYW1lID0gbm9kZS0+bmFtZTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvbW1wL2Nsay1h cGJjLmMgYi9kcml2ZXJzL2Nsay9tbXAvY2xrLWFwYmMuYwppbmRleCBkMTQxMjBlLi40YTFkZTQ5 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay9tbXAvY2xrLWFwYmMuYworKysgYi9kcml2ZXJzL2Ns ay9tbXAvY2xrLWFwYmMuYwpAQCAtMTAsNyArMTAsNiBAQAogICovCiAKICNpbmNsdWRlIDxsaW51 eC9rZXJuZWwuaD4KLSNpbmNsdWRlIDxsaW51eC9jbGsuaD4KICNpbmNsdWRlIDxsaW51eC9pby5o PgogI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgogI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CkBAIC0x MjAsMTIgKzExOSwxMiBAQCBzdHJ1Y3QgY2xrX29wcyBjbGtfYXBiY19vcHMgPSB7CiAJLnVucHJl cGFyZSA9IGNsa19hcGJjX3VucHJlcGFyZSwKIH07CiAKLXN0cnVjdCBjbGsgKm1tcF9jbGtfcmVn aXN0ZXJfYXBiYyhjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpwYXJlbnRfbmFtZSwKK3N0 cnVjdCBjbGtfY29yZSAqbW1wX2Nsa19yZWdpc3Rlcl9hcGJjKGNvbnN0IGNoYXIgKm5hbWUsIGNv bnN0IGNoYXIgKnBhcmVudF9uYW1lLAogCQl2b2lkIF9faW9tZW0gKmJhc2UsIHVuc2lnbmVkIGlu dCBkZWxheSwKIAkJdW5zaWduZWQgaW50IGFwYmNfZmxhZ3MsIHNwaW5sb2NrX3QgKmxvY2spCiB7 CiAJc3RydWN0IGNsa19hcGJjICphcGJjOwotCXN0cnVjdCBjbGsgKmNsazsKKwlzdHJ1Y3QgY2xr X2NvcmUgKmNsazsKIAlzdHJ1Y3QgY2xrX2luaXRfZGF0YSBpbml0OwogCiAJYXBiYyA9IGt6YWxs b2Moc2l6ZW9mKCphcGJjKSwgR0ZQX0tFUk5FTCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9t bXAvY2xrLWFwbXUuYyBiL2RyaXZlcnMvY2xrL21tcC9jbGstYXBtdS5jCmluZGV4IGFiZTE4MmIu LmNiYzA3MTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL21tcC9jbGstYXBtdS5jCisrKyBiL2Ry aXZlcnMvY2xrL21tcC9jbGstYXBtdS5jCkBAIC0xMCw3ICsxMCw2IEBACiAgKi8KIAogI2luY2x1 ZGUgPGxpbnV4L2tlcm5lbC5oPgotI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgogI2luY2x1ZGUgPGxp bnV4L2lvLmg+CiAjaW5jbHVkZSA8bGludXgvZXJyLmg+CiAjaW5jbHVkZSA8bGludXgvZGVsYXku aD4KQEAgLTY2LDExICs2NSwxMSBAQCBzdHJ1Y3QgY2xrX29wcyBjbGtfYXBtdV9vcHMgPSB7CiAJ LmRpc2FibGUgPSBjbGtfYXBtdV9kaXNhYmxlLAogfTsKIAotc3RydWN0IGNsayAqbW1wX2Nsa19y ZWdpc3Rlcl9hcG11KGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnBhcmVudF9uYW1lLAor c3RydWN0IGNsa19jb3JlICptbXBfY2xrX3JlZ2lzdGVyX2FwbXUoY29uc3QgY2hhciAqbmFtZSwg Y29uc3QgY2hhciAqcGFyZW50X25hbWUsCiAJCXZvaWQgX19pb21lbSAqYmFzZSwgdTMyIGVuYWJs ZV9tYXNrLCBzcGlubG9ja190ICpsb2NrKQogewogCXN0cnVjdCBjbGtfYXBtdSAqYXBtdTsKLQlz dHJ1Y3QgY2xrICpjbGs7CisJc3RydWN0IGNsa19jb3JlICpjbGs7CiAJc3RydWN0IGNsa19pbml0 X2RhdGEgaW5pdDsKIAogCWFwbXUgPSBremFsbG9jKHNpemVvZigqYXBtdSksIEdGUF9LRVJORUwp OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvbW1wL2Nsay1mcmFjLmMgYi9kcml2ZXJzL2Nsay9t bXAvY2xrLWZyYWMuYwppbmRleCAyM2E1NmY1Li4wMzg2Y2RkIDEwMDY0NAotLS0gYS9kcml2ZXJz L2Nsay9tbXAvY2xrLWZyYWMuYworKysgYi9kcml2ZXJzL2Nsay9tbXAvY2xrLWZyYWMuYwpAQCAt MTE2LDE0ICsxMTYsMTQgQEAgc3RhdGljIHN0cnVjdCBjbGtfb3BzIGNsa19mYWN0b3Jfb3BzID0g ewogCS5zZXRfcmF0ZSA9IGNsa19mYWN0b3Jfc2V0X3JhdGUsCiB9OwogCi1zdHJ1Y3QgY2xrICpt bXBfY2xrX3JlZ2lzdGVyX2ZhY3Rvcihjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpwYXJl bnRfbmFtZSwKK3N0cnVjdCBjbGtfY29yZSAqbW1wX2Nsa19yZWdpc3Rlcl9mYWN0b3IoY29uc3Qg Y2hhciAqbmFtZSwgY29uc3QgY2hhciAqcGFyZW50X25hbWUsCiAJCXVuc2lnbmVkIGxvbmcgZmxh Z3MsIHZvaWQgX19pb21lbSAqYmFzZSwKIAkJc3RydWN0IGNsa19mYWN0b3JfbWFza3MgKm1hc2tz LCBzdHJ1Y3QgY2xrX2ZhY3Rvcl90YmwgKmZ0YmwsCiAJCXVuc2lnbmVkIGludCBmdGJsX2NudCkK IHsKIAlzdHJ1Y3QgY2xrX2ZhY3RvciAqZmFjdG9yOwogCXN0cnVjdCBjbGtfaW5pdF9kYXRhIGlu aXQ7Ci0Jc3RydWN0IGNsayAqY2xrOworCXN0cnVjdCBjbGtfY29yZSAqY2xrOwogCiAJaWYgKCFt YXNrcykgewogCQlwcl9lcnIoIiVzOiBtdXN0IHBhc3MgYSBjbGtfZmFjdG9yX21hc2tcbiIsIF9f ZnVuY19fKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL21tcC9jbGstbW1wMi5jIGIvZHJpdmVy cy9jbGsvbW1wL2Nsay1tbXAyLmMKaW5kZXggYjI3MjFjYS4uOThiZDczZiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9jbGsvbW1wL2Nsay1tbXAyLmMKKysrIGIvZHJpdmVycy9jbGsvbW1wL2Nsay1tbXAy LmMKQEAgLTc3LDggKzc3LDggQEAgc3RhdGljIGNvbnN0IGNoYXIgKmNjaWNfcGFyZW50W10gPSB7 InBsbDFfMiIsICJwbGwxXzE2IiwgInZjdGN4byJ9OwogCiB2b2lkIF9faW5pdCBtbXAyX2Nsa19p bml0KHZvaWQpCiB7Ci0Jc3RydWN0IGNsayAqY2xrOwotCXN0cnVjdCBjbGsgKnZjdGN4bzsKKwlz dHJ1Y3QgY2xrX2NvcmUgKmNsazsKKwlzdHJ1Y3QgY2xrX2NvcmUgKnZjdGN4bzsKIAl2b2lkIF9f aW9tZW0gKm1wbXVfYmFzZTsKIAl2b2lkIF9faW9tZW0gKmFwbXVfYmFzZTsKIAl2b2lkIF9faW9t ZW0gKmFwYmNfYmFzZTsKQEAgLTE5Miw3ICsxOTIsNyBAQCB2b2lkIF9faW5pdCBtbXAyX2Nsa19p bml0KHZvaWQpCiAJCQkJbXBtdV9iYXNlICsgTVBNVV9VQVJUX1BMTCwKIAkJCQkmdWFydF9mYWN0 b3JfbWFza3MsIHVhcnRfZmFjdG9yX3RibCwKIAkJCQlBUlJBWV9TSVpFKHVhcnRfZmFjdG9yX3Ri bCkpOwotCWNsa19zZXRfcmF0ZShjbGssIDE0NzQ1NjAwKTsKKwljbGtfcHJvdmlkZXJfc2V0X3Jh dGUoY2xrLCAxNDc0NTYwMCk7CiAJY2xrX3JlZ2lzdGVyX2Nsa2RldihjbGssICJ1YXJ0X3BsbCIs IE5VTEwpOwogCiAJY2xrID0gbW1wX2Nsa19yZWdpc3Rlcl9hcGJjKCJ0d3NpMCIsICJ2Y3RjeG8i LApAQCAtMjUxLDcgKzI1MSw3IEBAIHZvaWQgX19pbml0IG1tcDJfY2xrX2luaXQodm9pZCkKIAkJ CQlBUlJBWV9TSVpFKHVhcnRfcGFyZW50KSwKIAkJCQlDTEtfU0VUX1JBVEVfUEFSRU5UIHwgQ0xL X1NFVF9SQVRFX05PX1JFUEFSRU5ULAogCQkJCWFwYmNfYmFzZSArIEFQQkNfVUFSVDAsIDQsIDMs IDAsICZjbGtfbG9jayk7Ci0JY2xrX3NldF9wYXJlbnQoY2xrLCB2Y3RjeG8pOworCWNsa19wcm92 aWRlcl9zZXRfcGFyZW50KGNsaywgdmN0Y3hvKTsKIAljbGtfcmVnaXN0ZXJfY2xrZGV2KGNsaywg InVhcnRfbXV4LjAiLCBOVUxMKTsKIAogCWNsayA9IG1tcF9jbGtfcmVnaXN0ZXJfYXBiYygidWFy dDAiLCAidWFydDBfbXV4IiwKQEAgLTI2Miw3ICsyNjIsNyBAQCB2b2lkIF9faW5pdCBtbXAyX2Ns a19pbml0KHZvaWQpCiAJCQkJQVJSQVlfU0laRSh1YXJ0X3BhcmVudCksCiAJCQkJQ0xLX1NFVF9S QVRFX1BBUkVOVCB8IENMS19TRVRfUkFURV9OT19SRVBBUkVOVCwKIAkJCQlhcGJjX2Jhc2UgKyBB UEJDX1VBUlQxLCA0LCAzLCAwLCAmY2xrX2xvY2spOwotCWNsa19zZXRfcGFyZW50KGNsaywgdmN0 Y3hvKTsKKwljbGtfcHJvdmlkZXJfc2V0X3BhcmVudChjbGssIHZjdGN4byk7CiAJY2xrX3JlZ2lz dGVyX2Nsa2RldihjbGssICJ1YXJ0X211eC4xIiwgTlVMTCk7CiAKIAljbGsgPSBtbXBfY2xrX3Jl Z2lzdGVyX2FwYmMoInVhcnQxIiwgInVhcnQxX211eCIsCkBAIC0yNzMsNyArMjczLDcgQEAgdm9p ZCBfX2luaXQgbW1wMl9jbGtfaW5pdCh2b2lkKQogCQkJCUFSUkFZX1NJWkUodWFydF9wYXJlbnQp LAogCQkJCUNMS19TRVRfUkFURV9QQVJFTlQgfCBDTEtfU0VUX1JBVEVfTk9fUkVQQVJFTlQsCiAJ CQkJYXBiY19iYXNlICsgQVBCQ19VQVJUMiwgNCwgMywgMCwgJmNsa19sb2NrKTsKLQljbGtfc2V0 X3BhcmVudChjbGssIHZjdGN4byk7CisJY2xrX3Byb3ZpZGVyX3NldF9wYXJlbnQoY2xrLCB2Y3Rj eG8pOwogCWNsa19yZWdpc3Rlcl9jbGtkZXYoY2xrLCAidWFydF9tdXguMiIsIE5VTEwpOwogCiAJ Y2xrID0gbW1wX2Nsa19yZWdpc3Rlcl9hcGJjKCJ1YXJ0MiIsICJ1YXJ0Ml9tdXgiLApAQCAtMjg0 LDcgKzI4NCw3IEBAIHZvaWQgX19pbml0IG1tcDJfY2xrX2luaXQodm9pZCkKIAkJCQlBUlJBWV9T SVpFKHVhcnRfcGFyZW50KSwKIAkJCQlDTEtfU0VUX1JBVEVfUEFSRU5UIHwgQ0xLX1NFVF9SQVRF X05PX1JFUEFSRU5ULAogCQkJCWFwYmNfYmFzZSArIEFQQkNfVUFSVDMsIDQsIDMsIDAsICZjbGtf bG9jayk7Ci0JY2xrX3NldF9wYXJlbnQoY2xrLCB2Y3RjeG8pOworCWNsa19wcm92aWRlcl9zZXRf cGFyZW50KGNsaywgdmN0Y3hvKTsKIAljbGtfcmVnaXN0ZXJfY2xrZGV2KGNsaywgInVhcnRfbXV4 LjMiLCBOVUxMKTsKIAogCWNsayA9IG1tcF9jbGtfcmVnaXN0ZXJfYXBiYygidWFydDMiLCAidWFy dDNfbXV4IiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL21tcC9jbGstcHhhMTY4LmMgYi9kcml2 ZXJzL2Nsay9tbXAvY2xrLXB4YTE2OC5jCmluZGV4IDAxNDM5NmIuLmU0ZjUwYWIgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvY2xrL21tcC9jbGstcHhhMTY4LmMKKysrIGIvZHJpdmVycy9jbGsvbW1wL2Ns ay1weGExNjguYwpAQCAtNjgsOCArNjgsOCBAQCBzdGF0aWMgY29uc3QgY2hhciAqY2NpY19waHlf cGFyZW50W10gPSB7InBsbDFfNiIsICJwbGwxXzEyIn07CiAKIHZvaWQgX19pbml0IHB4YTE2OF9j bGtfaW5pdCh2b2lkKQogewotCXN0cnVjdCBjbGsgKmNsazsKLQlzdHJ1Y3QgY2xrICp1YXJ0X3Bs bDsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmNsazsKKwlzdHJ1Y3QgY2xrX2NvcmUgKnVhcnRfcGxsOwog CXZvaWQgX19pb21lbSAqbXBtdV9iYXNlOwogCXZvaWQgX19pb21lbSAqYXBtdV9iYXNlOwogCXZv aWQgX19pb21lbSAqYXBiY19iYXNlOwpAQCAtMTU5LDcgKzE1OSw3IEBAIHZvaWQgX19pbml0IHB4 YTE2OF9jbGtfaW5pdCh2b2lkKQogCQkJCW1wbXVfYmFzZSArIE1QTVVfVUFSVF9QTEwsCiAJCQkJ JnVhcnRfZmFjdG9yX21hc2tzLCB1YXJ0X2ZhY3Rvcl90YmwsCiAJCQkJQVJSQVlfU0laRSh1YXJ0 X2ZhY3Rvcl90YmwpKTsKLQljbGtfc2V0X3JhdGUodWFydF9wbGwsIDE0NzQ1NjAwKTsKKwljbGtf cHJvdmlkZXJfc2V0X3JhdGUodWFydF9wbGwsIDE0NzQ1NjAwKTsKIAljbGtfcmVnaXN0ZXJfY2xr ZGV2KHVhcnRfcGxsLCAidWFydF9wbGwiLCBOVUxMKTsKIAogCWNsayA9IG1tcF9jbGtfcmVnaXN0 ZXJfYXBiYygidHdzaTAiLCAicGxsMV8xM18xXzUiLApAQCAtMjAyLDcgKzIwMiw3IEBAIHZvaWQg X19pbml0IHB4YTE2OF9jbGtfaW5pdCh2b2lkKQogCQkJCUFSUkFZX1NJWkUodWFydF9wYXJlbnQp LAogCQkJCUNMS19TRVRfUkFURV9QQVJFTlQgfCBDTEtfU0VUX1JBVEVfTk9fUkVQQVJFTlQsCiAJ CQkJYXBiY19iYXNlICsgQVBCQ19VQVJUMCwgNCwgMywgMCwgJmNsa19sb2NrKTsKLQljbGtfc2V0 X3BhcmVudChjbGssIHVhcnRfcGxsKTsKKwljbGtfcHJvdmlkZXJfc2V0X3BhcmVudChjbGssIHVh cnRfcGxsKTsKIAljbGtfcmVnaXN0ZXJfY2xrZGV2KGNsaywgInVhcnRfbXV4LjAiLCBOVUxMKTsK IAogCWNsayA9IG1tcF9jbGtfcmVnaXN0ZXJfYXBiYygidWFydDAiLCAidWFydDBfbXV4IiwKQEAg LTIxMyw3ICsyMTMsNyBAQCB2b2lkIF9faW5pdCBweGExNjhfY2xrX2luaXQodm9pZCkKIAkJCQlB UlJBWV9TSVpFKHVhcnRfcGFyZW50KSwKIAkJCQlDTEtfU0VUX1JBVEVfUEFSRU5UIHwgQ0xLX1NF VF9SQVRFX05PX1JFUEFSRU5ULAogCQkJCWFwYmNfYmFzZSArIEFQQkNfVUFSVDEsIDQsIDMsIDAs ICZjbGtfbG9jayk7Ci0JY2xrX3NldF9wYXJlbnQoY2xrLCB1YXJ0X3BsbCk7CisJY2xrX3Byb3Zp ZGVyX3NldF9wYXJlbnQoY2xrLCB1YXJ0X3BsbCk7CiAJY2xrX3JlZ2lzdGVyX2Nsa2RldihjbGss ICJ1YXJ0X211eC4xIiwgTlVMTCk7CiAKIAljbGsgPSBtbXBfY2xrX3JlZ2lzdGVyX2FwYmMoInVh cnQxIiwgInVhcnQxX211eCIsCkBAIC0yMjQsNyArMjI0LDcgQEAgdm9pZCBfX2luaXQgcHhhMTY4 X2Nsa19pbml0KHZvaWQpCiAJCQkJQVJSQVlfU0laRSh1YXJ0X3BhcmVudCksCiAJCQkJQ0xLX1NF VF9SQVRFX1BBUkVOVCB8IENMS19TRVRfUkFURV9OT19SRVBBUkVOVCwKIAkJCQlhcGJjX2Jhc2Ug KyBBUEJDX1VBUlQyLCA0LCAzLCAwLCAmY2xrX2xvY2spOwotCWNsa19zZXRfcGFyZW50KGNsaywg dWFydF9wbGwpOworCWNsa19wcm92aWRlcl9zZXRfcGFyZW50KGNsaywgdWFydF9wbGwpOwogCWNs a19yZWdpc3Rlcl9jbGtkZXYoY2xrLCAidWFydF9tdXguMiIsIE5VTEwpOwogCiAJY2xrID0gbW1w X2Nsa19yZWdpc3Rlcl9hcGJjKCJ1YXJ0MiIsICJ1YXJ0Ml9tdXgiLApkaWZmIC0tZ2l0IGEvZHJp dmVycy9jbGsvbW1wL2Nsay1weGE5MTAuYyBiL2RyaXZlcnMvY2xrL21tcC9jbGstcHhhOTEwLmMK aW5kZXggOWVmYzZhNC4uYjVjMjE1ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvbW1wL2Nsay1w eGE5MTAuYworKysgYi9kcml2ZXJzL2Nsay9tbXAvY2xrLXB4YTkxMC5jCkBAIC02Niw4ICs2Niw4 IEBAIHN0YXRpYyBjb25zdCBjaGFyICpjY2ljX3BoeV9wYXJlbnRbXSA9IHsicGxsMV82IiwgInBs bDFfMTIifTsKIAogdm9pZCBfX2luaXQgcHhhOTEwX2Nsa19pbml0KHZvaWQpCiB7Ci0Jc3RydWN0 IGNsayAqY2xrOwotCXN0cnVjdCBjbGsgKnVhcnRfcGxsOworCXN0cnVjdCBjbGtfY29yZSAqY2xr OworCXN0cnVjdCBjbGtfY29yZSAqdWFydF9wbGw7CiAJdm9pZCBfX2lvbWVtICptcG11X2Jhc2U7 CiAJdm9pZCBfX2lvbWVtICphcG11X2Jhc2U7CiAJdm9pZCBfX2lvbWVtICphcGJjcF9iYXNlOwpA QCAtMTY0LDcgKzE2NCw3IEBAIHZvaWQgX19pbml0IHB4YTkxMF9jbGtfaW5pdCh2b2lkKQogCQkJ CW1wbXVfYmFzZSArIE1QTVVfVUFSVF9QTEwsCiAJCQkJJnVhcnRfZmFjdG9yX21hc2tzLCB1YXJ0 X2ZhY3Rvcl90YmwsCiAJCQkJQVJSQVlfU0laRSh1YXJ0X2ZhY3Rvcl90YmwpKTsKLQljbGtfc2V0 X3JhdGUodWFydF9wbGwsIDE0NzQ1NjAwKTsKKwljbGtfcHJvdmlkZXJfc2V0X3JhdGUodWFydF9w bGwsIDE0NzQ1NjAwKTsKIAljbGtfcmVnaXN0ZXJfY2xrZGV2KHVhcnRfcGxsLCAidWFydF9wbGwi LCBOVUxMKTsKIAogCWNsayA9IG1tcF9jbGtfcmVnaXN0ZXJfYXBiYygidHdzaTAiLCAicGxsMV8x M18xXzUiLApAQCAtMjA3LDcgKzIwNyw3IEBAIHZvaWQgX19pbml0IHB4YTkxMF9jbGtfaW5pdCh2 b2lkKQogCQkJCUFSUkFZX1NJWkUodWFydF9wYXJlbnQpLAogCQkJCUNMS19TRVRfUkFURV9QQVJF TlQgfCBDTEtfU0VUX1JBVEVfTk9fUkVQQVJFTlQsCiAJCQkJYXBiY19iYXNlICsgQVBCQ19VQVJU MCwgNCwgMywgMCwgJmNsa19sb2NrKTsKLQljbGtfc2V0X3BhcmVudChjbGssIHVhcnRfcGxsKTsK KwljbGtfcHJvdmlkZXJfc2V0X3BhcmVudChjbGssIHVhcnRfcGxsKTsKIAljbGtfcmVnaXN0ZXJf Y2xrZGV2KGNsaywgInVhcnRfbXV4LjAiLCBOVUxMKTsKIAogCWNsayA9IG1tcF9jbGtfcmVnaXN0 ZXJfYXBiYygidWFydDAiLCAidWFydDBfbXV4IiwKQEAgLTIxOCw3ICsyMTgsNyBAQCB2b2lkIF9f aW5pdCBweGE5MTBfY2xrX2luaXQodm9pZCkKIAkJCQlBUlJBWV9TSVpFKHVhcnRfcGFyZW50KSwK IAkJCQlDTEtfU0VUX1JBVEVfUEFSRU5UIHwgQ0xLX1NFVF9SQVRFX05PX1JFUEFSRU5ULAogCQkJ CWFwYmNfYmFzZSArIEFQQkNfVUFSVDEsIDQsIDMsIDAsICZjbGtfbG9jayk7Ci0JY2xrX3NldF9w YXJlbnQoY2xrLCB1YXJ0X3BsbCk7CisJY2xrX3Byb3ZpZGVyX3NldF9wYXJlbnQoY2xrLCB1YXJ0 X3BsbCk7CiAJY2xrX3JlZ2lzdGVyX2Nsa2RldihjbGssICJ1YXJ0X211eC4xIiwgTlVMTCk7CiAK IAljbGsgPSBtbXBfY2xrX3JlZ2lzdGVyX2FwYmMoInVhcnQxIiwgInVhcnQxX211eCIsCkBAIC0y MjksNyArMjI5LDcgQEAgdm9pZCBfX2luaXQgcHhhOTEwX2Nsa19pbml0KHZvaWQpCiAJCQkJQVJS QVlfU0laRSh1YXJ0X3BhcmVudCksCiAJCQkJQ0xLX1NFVF9SQVRFX1BBUkVOVCB8IENMS19TRVRf UkFURV9OT19SRVBBUkVOVCwKIAkJCQlhcGJjcF9iYXNlICsgQVBCQ1BfVUFSVDIsIDQsIDMsIDAs ICZjbGtfbG9jayk7Ci0JY2xrX3NldF9wYXJlbnQoY2xrLCB1YXJ0X3BsbCk7CisJY2xrX3Byb3Zp ZGVyX3NldF9wYXJlbnQoY2xrLCB1YXJ0X3BsbCk7CiAJY2xrX3JlZ2lzdGVyX2Nsa2RldihjbGss ICJ1YXJ0X211eC4yIiwgTlVMTCk7CiAKIAljbGsgPSBtbXBfY2xrX3JlZ2lzdGVyX2FwYmMoInVh cnQyIiwgInVhcnQyX211eCIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9tbXAvY2xrLmggYi9k cml2ZXJzL2Nsay9tbXAvY2xrLmgKaW5kZXggYWI4NmRkNC4uMTQ3N2U2MSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9jbGsvbW1wL2Nsay5oCisrKyBiL2RyaXZlcnMvY2xrL21tcC9jbGsuaApAQCAtMjAs MTUgKzIwLDE1IEBAIHN0cnVjdCBjbGtfZmFjdG9yX3RibCB7CiAJdW5zaWduZWQgaW50IGRlbjsK IH07CiAKLWV4dGVybiBzdHJ1Y3QgY2xrICptbXBfY2xrX3JlZ2lzdGVyX3BsbDIoY29uc3QgY2hh ciAqbmFtZSwKK2V4dGVybiBzdHJ1Y3QgY2xrX2NvcmUgKm1tcF9jbGtfcmVnaXN0ZXJfcGxsMihj b25zdCBjaGFyICpuYW1lLAogCQljb25zdCBjaGFyICpwYXJlbnRfbmFtZSwgdW5zaWduZWQgbG9u ZyBmbGFncyk7Ci1leHRlcm4gc3RydWN0IGNsayAqbW1wX2Nsa19yZWdpc3Rlcl9hcGJjKGNvbnN0 IGNoYXIgKm5hbWUsCitleHRlcm4gc3RydWN0IGNsa19jb3JlICptbXBfY2xrX3JlZ2lzdGVyX2Fw YmMoY29uc3QgY2hhciAqbmFtZSwKIAkJY29uc3QgY2hhciAqcGFyZW50X25hbWUsIHZvaWQgX19p b21lbSAqYmFzZSwKIAkJdW5zaWduZWQgaW50IGRlbGF5LCB1bnNpZ25lZCBpbnQgYXBiY19mbGFn cywgc3BpbmxvY2tfdCAqbG9jayk7Ci1leHRlcm4gc3RydWN0IGNsayAqbW1wX2Nsa19yZWdpc3Rl cl9hcG11KGNvbnN0IGNoYXIgKm5hbWUsCitleHRlcm4gc3RydWN0IGNsa19jb3JlICptbXBfY2xr X3JlZ2lzdGVyX2FwbXUoY29uc3QgY2hhciAqbmFtZSwKIAkJY29uc3QgY2hhciAqcGFyZW50X25h bWUsIHZvaWQgX19pb21lbSAqYmFzZSwgdTMyIGVuYWJsZV9tYXNrLAogCQlzcGlubG9ja190ICps b2NrKTsKLWV4dGVybiBzdHJ1Y3QgY2xrICptbXBfY2xrX3JlZ2lzdGVyX2ZhY3Rvcihjb25zdCBj aGFyICpuYW1lLAorZXh0ZXJuIHN0cnVjdCBjbGtfY29yZSAqbW1wX2Nsa19yZWdpc3Rlcl9mYWN0 b3IoY29uc3QgY2hhciAqbmFtZSwKIAkJY29uc3QgY2hhciAqcGFyZW50X25hbWUsIHVuc2lnbmVk IGxvbmcgZmxhZ3MsCiAJCXZvaWQgX19pb21lbSAqYmFzZSwgc3RydWN0IGNsa19mYWN0b3JfbWFz a3MgKm1hc2tzLAogCQlzdHJ1Y3QgY2xrX2ZhY3Rvcl90YmwgKmZ0YmwsIHVuc2lnbmVkIGludCBm dGJsX2NudCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9tdmVidS9jbGstY29yZWRpdi5jIGIv ZHJpdmVycy9jbGsvbXZlYnUvY2xrLWNvcmVkaXYuYwppbmRleCBkMWU1ODYzLi4xYmUxNWM0IDEw MDY0NAotLS0gYS9kcml2ZXJzL2Nsay9tdmVidS9jbGstY29yZWRpdi5jCisrKyBiL2RyaXZlcnMv Y2xrL212ZWJ1L2Nsay1jb3JlZGl2LmMKQEAgLTIzOCw3ICsyMzgsNyBAQCBtdmVidV9jb3JlZGl2 X2Nsa19pbml0KHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSwKIHsKIAlzdHJ1Y3QgY2xrX2luaXRf ZGF0YSBpbml0OwogCXN0cnVjdCBjbGtfY29yZWRpdiAqY29yZWRpdjsKLQlzdHJ1Y3QgY2xrICoq Y2xrczsKKwlzdHJ1Y3QgY2xrX2NvcmUgKipjbGtzOwogCXZvaWQgX19pb21lbSAqYmFzZTsKIAlj b25zdCBjaGFyICpwYXJlbnRfbmFtZTsKIAljb25zdCBjaGFyICpjbGtfbmFtZTsKQEAgLTI1Myw3 ICsyNTMsNyBAQCBtdmVidV9jb3JlZGl2X2Nsa19pbml0KHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9k ZSwKIAljbGtfZGF0YS5jbGtfbnVtID0gc29jX2Rlc2MtPm5kZXNjczsKIAogCS8qIGNsa3MgaG9s ZHMgdGhlIGNsb2NrIGFycmF5ICovCi0JY2xrcyA9IGtjYWxsb2MoY2xrX2RhdGEuY2xrX251bSwg c2l6ZW9mKHN0cnVjdCBjbGsgKiksCisJY2xrcyA9IGtjYWxsb2MoY2xrX2RhdGEuY2xrX251bSwg c2l6ZW9mKHN0cnVjdCBjbGtfY29yZSAqKSwKIAkJCQlHRlBfS0VSTkVMKTsKIAlpZiAoV0FSTl9P TighY2xrcykpCiAJCWdvdG8gZXJyX3VubWFwOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvbXZl YnUvY2xrLWNwdS5jIGIvZHJpdmVycy9jbGsvbXZlYnUvY2xrLWNwdS5jCmluZGV4IDM4MjFhODgu LjU5YTQwYzcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL212ZWJ1L2Nsay1jcHUuYworKysgYi9k cml2ZXJzL2Nsay9tdmVidS9jbGstY3B1LmMKQEAgLTQwLDcgKzQwLDcgQEAgc3RydWN0IGNwdV9j bGsgewogCXZvaWQgX19pb21lbSAqcG11X2RmczsKIH07CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrICoq Y2xrczsKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgKipjbGtzOwogCiBzdGF0aWMgc3RydWN0IGNs a19vbmVjZWxsX2RhdGEgY2xrX2RhdGE7CiAKQEAgLTE5NSw4ICsxOTUsOCBAQCBzdGF0aWMgdm9p ZCBfX2luaXQgb2ZfY3B1X2Nsa19zZXR1cChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUpCiAKIAlm b3JfZWFjaF9ub2RlX2J5X3R5cGUoZG4sICJjcHUiKSB7CiAJCXN0cnVjdCBjbGtfaW5pdF9kYXRh IGluaXQ7Ci0JCXN0cnVjdCBjbGsgKmNsazsKLQkJc3RydWN0IGNsayAqcGFyZW50X2NsazsKKwkJ c3RydWN0IGNsa19jb3JlICpjbGs7CisJCXN0cnVjdCBjbGtfY29yZSAqcGFyZW50X2NsazsKIAkJ Y2hhciAqY2xrX25hbWUgPSBremFsbG9jKDUsIEdGUF9LRVJORUwpOwogCQlpbnQgY3B1LCBlcnI7 CiAKQEAgLTIwOCw3ICsyMDgsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgb2ZfY3B1X2Nsa19zZXR1 cChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUpCiAJCQlnb3RvIGJhaWxfb3V0OwogCiAJCXNwcmlu dGYoY2xrX25hbWUsICJjcHUlZCIsIGNwdSk7Ci0JCXBhcmVudF9jbGsgPSBvZl9jbGtfZ2V0KG5v ZGUsIDApOworCQlwYXJlbnRfY2xrID0gb2ZfY2xrX3Byb3ZpZGVyX2dldChub2RlLCAwKTsKIAog CQljcHVjbGtbY3B1XS5wYXJlbnRfbmFtZSA9IF9fY2xrX2dldF9uYW1lKHBhcmVudF9jbGspOwog CQljcHVjbGtbY3B1XS5jbGtfbmFtZSA9IGNsa19uYW1lOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9j bGsvbXZlYnUvY29tbW9uLmMgYi9kcml2ZXJzL2Nsay9tdmVidS9jb21tb24uYwppbmRleCA4MTQ1 YzRlLi5mNmUxNGY4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay9tdmVidS9jb21tb24uYworKysg Yi9kcml2ZXJzL2Nsay9tdmVidS9jb21tb24uYwpAQCAtMTMsNyArMTMsNiBAQAogICovCiAKICNp bmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KLSNpbmNsdWRlIDxsaW51eC9jbGsuaD4KICNpbmNsdWRl IDxsaW51eC9jbGtkZXYuaD4KICNpbmNsdWRlIDxsaW51eC9jbGstcHJvdmlkZXIuaD4KICNpbmNs dWRlIDxsaW51eC9pby5oPgpAQCAtNDMsNyArNDIsNyBAQCB2b2lkIF9faW5pdCBtdmVidV9jb3Jl Y2xrX3NldHVwKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsCiAKIAkvKiBBbGxvY2F0ZSBzdHJ1Y3Qg Zm9yIFRDTEssIGNwdSBjbGssIGFuZCBjb3JlIHJhdGlvIGNsb2NrcyAqLwogCWNsa19kYXRhLmNs a19udW0gPSAyICsgZGVzYy0+bnVtX3JhdGlvczsKLQljbGtfZGF0YS5jbGtzID0ga3phbGxvYyhj bGtfZGF0YS5jbGtfbnVtICogc2l6ZW9mKHN0cnVjdCBjbGsgKiksCisJY2xrX2RhdGEuY2xrcyA9 IGt6YWxsb2MoY2xrX2RhdGEuY2xrX251bSAqIHNpemVvZihzdHJ1Y3QgY2xrX2NvcmUgKiksCiAJ CQkJR0ZQX0tFUk5FTCk7CiAJaWYgKFdBUk5fT04oIWNsa19kYXRhLmNsa3MpKSB7CiAJCWlvdW5t YXAoYmFzZSk7CkBAIC05MywxMyArOTIsMTMgQEAgREVGSU5FX1NQSU5MT0NLKGN0cmxfZ2F0aW5n X2xvY2spOwogCiBzdHJ1Y3QgY2xrX2dhdGluZ19jdHJsIHsKIAlzcGlubG9ja190ICpsb2NrOwot CXN0cnVjdCBjbGsgKipnYXRlczsKKwlzdHJ1Y3QgY2xrX2NvcmUgKipnYXRlczsKIAlpbnQgbnVt X2dhdGVzOwogfTsKIAogI2RlZmluZSB0b19jbGtfZ2F0ZShfaHcpIGNvbnRhaW5lcl9vZihfaHcs IHN0cnVjdCBjbGtfZ2F0ZSwgaHcpCiAKLXN0YXRpYyBzdHJ1Y3QgY2xrICpjbGtfZ2F0aW5nX2dl dF9zcmMoCitzdGF0aWMgc3RydWN0IGNsa19jb3JlICpjbGtfZ2F0aW5nX2dldF9zcmMoCiAJc3Ry dWN0IG9mX3BoYW5kbGVfYXJncyAqY2xrc3BlYywgdm9pZCAqZGF0YSkKIHsKIAlzdHJ1Y3QgY2xr X2dhdGluZ19jdHJsICpjdHJsID0gKHN0cnVjdCBjbGtfZ2F0aW5nX2N0cmwgKilkYXRhOwpAQCAt MTIxLDcgKzEyMCw3IEBAIHZvaWQgX19pbml0IG12ZWJ1X2Nsa19nYXRpbmdfc2V0dXAoc3RydWN0 IGRldmljZV9ub2RlICpucCwKIAkJCQkgICBjb25zdCBzdHJ1Y3QgY2xrX2dhdGluZ19zb2NfZGVz YyAqZGVzYykKIHsKIAlzdHJ1Y3QgY2xrX2dhdGluZ19jdHJsICpjdHJsOwotCXN0cnVjdCBjbGsg KmNsazsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmNsazsKIAl2b2lkIF9faW9tZW0gKmJhc2U7CiAJY29u c3QgY2hhciAqZGVmYXVsdF9wYXJlbnQgPSBOVUxMOwogCWludCBuOwpAQCAtMTMwLDEwICsxMjks MTAgQEAgdm9pZCBfX2luaXQgbXZlYnVfY2xrX2dhdGluZ19zZXR1cChzdHJ1Y3QgZGV2aWNlX25v ZGUgKm5wLAogCWlmIChXQVJOX09OKCFiYXNlKSkKIAkJcmV0dXJuOwogCi0JY2xrID0gb2ZfY2xr X2dldChucCwgMCk7CisJY2xrID0gb2ZfY2xrX3Byb3ZpZGVyX2dldChucCwgMCk7CiAJaWYgKCFJ U19FUlIoY2xrKSkgewogCQlkZWZhdWx0X3BhcmVudCA9IF9fY2xrX2dldF9uYW1lKGNsayk7Ci0J CWNsa19wdXQoY2xrKTsKKwkJX19jbGtfcHV0KGNsayk7CiAJfQogCiAJY3RybCA9IGt6YWxsb2Mo c2l6ZW9mKCpjdHJsKSwgR0ZQX0tFUk5FTCk7CkBAIC0xNDgsNyArMTQ3LDcgQEAgdm9pZCBfX2lu aXQgbXZlYnVfY2xrX2dhdGluZ19zZXR1cChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wLAogCQluKys7 CiAKIAljdHJsLT5udW1fZ2F0ZXMgPSBuOwotCWN0cmwtPmdhdGVzID0ga3phbGxvYyhjdHJsLT5u dW1fZ2F0ZXMgKiBzaXplb2Yoc3RydWN0IGNsayAqKSwKKwljdHJsLT5nYXRlcyA9IGt6YWxsb2Mo Y3RybC0+bnVtX2dhdGVzICogc2l6ZW9mKHN0cnVjdCBjbGtfY29yZSAqKSwKIAkJCSAgICAgIEdG UF9LRVJORUwpOwogCWlmIChXQVJOX09OKCFjdHJsLT5nYXRlcykpCiAJCWdvdG8gZ2F0ZXNfb3V0 OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvbXZlYnUva2lya3dvb2QuYyBiL2RyaXZlcnMvY2xr L212ZWJ1L2tpcmt3b29kLmMKaW5kZXggOTk1NTBmMi4uNWQwOTc4YiAxMDA2NDQKLS0tIGEvZHJp dmVycy9jbGsvbXZlYnUva2lya3dvb2QuYworKysgYi9kcml2ZXJzL2Nsay9tdmVidS9raXJrd29v ZC5jCkBAIC0yNDIsNyArMjQyLDcgQEAgc3RydWN0IGNsa19tdXhpbmdfc29jX2Rlc2MgewogCiBz dHJ1Y3QgY2xrX211eGluZ19jdHJsIHsKIAlzcGlubG9ja190ICpsb2NrOwotCXN0cnVjdCBjbGsg KiptdXhlczsKKwlzdHJ1Y3QgY2xrX2NvcmUgKiptdXhlczsKIAlpbnQgbnVtX211eGVzOwogfTsK IApAQCAtMjU4LDcgKzI1OCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrX211eGluZ19zb2Nf ZGVzYyBraXJrd29vZF9tdXhfZGVzY1tdIF9faW5pdGNvbnN0ID0gewogCiAjZGVmaW5lIHRvX2Ns a19tdXgoX2h3KSBjb250YWluZXJfb2YoX2h3LCBzdHJ1Y3QgY2xrX211eCwgaHcpCiAKLXN0YXRp YyBzdHJ1Y3QgY2xrICpjbGtfbXV4aW5nX2dldF9zcmMoCitzdGF0aWMgc3RydWN0IGNsa19jb3Jl ICpjbGtfbXV4aW5nX2dldF9zcmMoCiAJc3RydWN0IG9mX3BoYW5kbGVfYXJncyAqY2xrc3BlYywg dm9pZCAqZGF0YSkKIHsKIAlzdHJ1Y3QgY2xrX211eGluZ19jdHJsICpjdHJsID0gKHN0cnVjdCBj bGtfbXV4aW5nX2N0cmwgKilkYXRhOwpAQCAtMjk5LDcgKzI5OSw3IEBAIHN0YXRpYyB2b2lkIF9f aW5pdCBraXJrd29vZF9jbGtfbXV4aW5nX3NldHVwKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsCiAJ CW4rKzsKIAogCWN0cmwtPm51bV9tdXhlcyA9IG47Ci0JY3RybC0+bXV4ZXMgPSBrY2FsbG9jKGN0 cmwtPm51bV9tdXhlcywgc2l6ZW9mKHN0cnVjdCBjbGsgKiksCisJY3RybC0+bXV4ZXMgPSBrY2Fs bG9jKGN0cmwtPm51bV9tdXhlcywgc2l6ZW9mKHN0cnVjdCBjbGtfY29yZSAqKSwKIAkJCUdGUF9L RVJORUwpOwogCWlmIChXQVJOX09OKCFjdHJsLT5tdXhlcykpCiAJCWdvdG8gbXV4ZXNfb3V0Owpk aWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvbXhzL2Nsay1kaXYuYyBiL2RyaXZlcnMvY2xrL214cy9j bGstZGl2LmMKaW5kZXggOTBlMWRhOS4uNzNjYTFlOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsv bXhzL2Nsay1kaXYuYworKysgYi9kcml2ZXJzL2Nsay9teHMvY2xrLWRpdi5jCkBAIC05LDcgKzks NiBAQAogICogaHR0cDovL3d3dy5nbnUub3JnL2NvcHlsZWZ0L2dwbC5odG1sCiAgKi8KIAotI2lu Y2x1ZGUgPGxpbnV4L2Nsay5oPgogI2luY2x1ZGUgPGxpbnV4L2Nsay1wcm92aWRlci5oPgogI2lu Y2x1ZGUgPGxpbnV4L2Vyci5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KQEAgLTc0LDExICs3 MywxMSBAQCBzdGF0aWMgc3RydWN0IGNsa19vcHMgY2xrX2Rpdl9vcHMgPSB7CiAJLnNldF9yYXRl ID0gY2xrX2Rpdl9zZXRfcmF0ZSwKIH07CiAKLXN0cnVjdCBjbGsgKm14c19jbGtfZGl2KGNvbnN0 IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnBhcmVudF9uYW1lLAorc3RydWN0IGNsa19jb3JlICpt eHNfY2xrX2Rpdihjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpwYXJlbnRfbmFtZSwKIAkJ CXZvaWQgX19pb21lbSAqcmVnLCB1OCBzaGlmdCwgdTggd2lkdGgsIHU4IGJ1c3kpCiB7CiAJc3Ry dWN0IGNsa19kaXYgKmRpdjsKLQlzdHJ1Y3QgY2xrICpjbGs7CisJc3RydWN0IGNsa19jb3JlICpj bGs7CiAJc3RydWN0IGNsa19pbml0X2RhdGEgaW5pdDsKIAogCWRpdiA9IGt6YWxsb2Moc2l6ZW9m KCpkaXYpLCBHRlBfS0VSTkVMKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL214cy9jbGstZnJh Yy5jIGIvZHJpdmVycy9jbGsvbXhzL2Nsay1mcmFjLmMKaW5kZXggZTZhYTZiNS4uNjVjZWRmOCAx MDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvbXhzL2Nsay1mcmFjLmMKKysrIGIvZHJpdmVycy9jbGsv bXhzL2Nsay1mcmFjLmMKQEAgLTksNyArOSw2IEBACiAgKiBodHRwOi8vd3d3LmdudS5vcmcvY29w eWxlZnQvZ3BsLmh0bWwKICAqLwogCi0jaW5jbHVkZSA8bGludXgvY2xrLmg+CiAjaW5jbHVkZSA8 bGludXgvY2xrLXByb3ZpZGVyLmg+CiAjaW5jbHVkZSA8bGludXgvZXJyLmg+CiAjaW5jbHVkZSA8 bGludXgvaW8uaD4KQEAgLTEwOCwxMSArMTA3LDExIEBAIHN0YXRpYyBzdHJ1Y3QgY2xrX29wcyBj bGtfZnJhY19vcHMgPSB7CiAJLnNldF9yYXRlID0gY2xrX2ZyYWNfc2V0X3JhdGUsCiB9OwogCi1z dHJ1Y3QgY2xrICpteHNfY2xrX2ZyYWMoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqcGFy ZW50X25hbWUsCitzdHJ1Y3QgY2xrX2NvcmUgKm14c19jbGtfZnJhYyhjb25zdCBjaGFyICpuYW1l LCBjb25zdCBjaGFyICpwYXJlbnRfbmFtZSwKIAkJCSB2b2lkIF9faW9tZW0gKnJlZywgdTggc2hp ZnQsIHU4IHdpZHRoLCB1OCBidXN5KQogewogCXN0cnVjdCBjbGtfZnJhYyAqZnJhYzsKLQlzdHJ1 Y3QgY2xrICpjbGs7CisJc3RydWN0IGNsa19jb3JlICpjbGs7CiAJc3RydWN0IGNsa19pbml0X2Rh dGEgaW5pdDsKIAogCWZyYWMgPSBremFsbG9jKHNpemVvZigqZnJhYyksIEdGUF9LRVJORUwpOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvbXhzL2Nsay1pbXgyMy5jIGIvZHJpdmVycy9jbGsvbXhz L2Nsay1pbXgyMy5jCmluZGV4IDlmYzkzNTkuLjQzZjJkMzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Y2xrL214cy9jbGstaW14MjMuYworKysgYi9kcml2ZXJzL2Nsay9teHMvY2xrLWlteDIzLmMKQEAg LTksNyArOSw2IEBACiAgKiBodHRwOi8vd3d3LmdudS5vcmcvY29weWxlZnQvZ3BsLmh0bWwKICAq LwogCi0jaW5jbHVkZSA8bGludXgvY2xrLmg+CiAjaW5jbHVkZSA8bGludXgvY2xrL214cy5oPgog I2luY2x1ZGUgPGxpbnV4L2Nsa2Rldi5oPgogI2luY2x1ZGUgPGxpbnV4L2Nsay1wcm92aWRlci5o PgpAQCAtOTQsNyArOTMsNyBAQCBlbnVtIGlteDIzX2NsayB7CiAJY2xrX21heAogfTsKIAotc3Rh dGljIHN0cnVjdCBjbGsgKmNsa3NbY2xrX21heF07CitzdGF0aWMgc3RydWN0IGNsa19jb3JlICpj bGtzW2Nsa19tYXhdOwogc3RhdGljIHN0cnVjdCBjbGtfb25lY2VsbF9kYXRhIGNsa19kYXRhOwog CiBzdGF0aWMgZW51bSBpbXgyM19jbGsgY2xrc19pbml0X29uW10gX19pbml0ZGF0YSA9IHsKQEAg LTE3MSw3ICsxNzAsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgbXgyM19jbG9ja3NfaW5pdChzdHJ1 Y3QgZGV2aWNlX25vZGUgKm5wKQogCW9mX2Nsa19hZGRfcHJvdmlkZXIobnAsIG9mX2Nsa19zcmNf b25lY2VsbF9nZXQsICZjbGtfZGF0YSk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShj bGtzX2luaXRfb24pOyBpKyspCi0JCWNsa19wcmVwYXJlX2VuYWJsZShjbGtzW2Nsa3NfaW5pdF9v bltpXV0pOworCQljbGtfcHJvdmlkZXJfcHJlcGFyZV9lbmFibGUoY2xrc1tjbGtzX2luaXRfb25b aV1dKTsKIAogfQogQ0xLX09GX0RFQ0xBUkUoaW14MjNfY2xrY3RybCwgImZzbCxpbXgyMy1jbGtj dHJsIiwgbXgyM19jbG9ja3NfaW5pdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9teHMvY2xr LWlteDI4LmMgYi9kcml2ZXJzL2Nsay9teHMvY2xrLWlteDI4LmMKaW5kZXggYTZjMzUwMS4uZTZk NzBhYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvbXhzL2Nsay1pbXgyOC5jCisrKyBiL2RyaXZl cnMvY2xrL214cy9jbGstaW14MjguYwpAQCAtOSw3ICs5LDYgQEAKICAqIGh0dHA6Ly93d3cuZ251 Lm9yZy9jb3B5bGVmdC9ncGwuaHRtbAogICovCiAKLSNpbmNsdWRlIDxsaW51eC9jbGsuaD4KICNp bmNsdWRlIDxsaW51eC9jbGsvbXhzLmg+CiAjaW5jbHVkZSA8bGludXgvY2xrZGV2Lmg+CiAjaW5j bHVkZSA8bGludXgvY2xrLXByb3ZpZGVyLmg+CkBAIC0xNDgsNyArMTQ3LDcgQEAgZW51bSBpbXgy OF9jbGsgewogCWNsa19tYXgKIH07CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrICpjbGtzW2Nsa19tYXhd Oworc3RhdGljIHN0cnVjdCBjbGtfY29yZSAqY2xrc1tjbGtfbWF4XTsKIHN0YXRpYyBzdHJ1Y3Qg Y2xrX29uZWNlbGxfZGF0YSBjbGtfZGF0YTsKIAogc3RhdGljIGVudW0gaW14MjhfY2xrIGNsa3Nf aW5pdF9vbltdIF9faW5pdGRhdGEgPSB7CkBAIC0yNTAsNiArMjQ5LDYgQEAgc3RhdGljIHZvaWQg X19pbml0IG14MjhfY2xvY2tzX2luaXQoc3RydWN0IGRldmljZV9ub2RlICpucCkKIAljbGtfcmVn aXN0ZXJfY2xrZGV2KGNsa3NbZW5ldF9vdXRdLCBOVUxMLCAiZW5ldF9vdXQiKTsKIAogCWZvciAo aSA9IDA7IGkgPCBBUlJBWV9TSVpFKGNsa3NfaW5pdF9vbik7IGkrKykKLQkJY2xrX3ByZXBhcmVf ZW5hYmxlKGNsa3NbY2xrc19pbml0X29uW2ldXSk7CisJCWNsa19wcm92aWRlcl9wcmVwYXJlX2Vu YWJsZShjbGtzW2Nsa3NfaW5pdF9vbltpXV0pOwogfQogQ0xLX09GX0RFQ0xBUkUoaW14MjhfY2xr Y3RybCwgImZzbCxpbXgyOC1jbGtjdHJsIiwgbXgyOF9jbG9ja3NfaW5pdCk7CmRpZmYgLS1naXQg YS9kcml2ZXJzL2Nsay9teHMvY2xrLXBsbC5jIGIvZHJpdmVycy9jbGsvbXhzL2Nsay1wbGwuYwpp bmRleCBmYWRhZTQxLi5lMGY5NGFjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay9teHMvY2xrLXBs bC5jCisrKyBiL2RyaXZlcnMvY2xrL214cy9jbGstcGxsLmMKQEAgLTksNyArOSw2IEBACiAgKiBo dHRwOi8vd3d3LmdudS5vcmcvY29weWxlZnQvZ3BsLmh0bWwKICAqLwogCi0jaW5jbHVkZSA8bGlu dXgvY2xrLmg+CiAjaW5jbHVkZSA8bGludXgvY2xrLXByb3ZpZGVyLmg+CiAjaW5jbHVkZSA8bGlu dXgvZGVsYXkuaD4KICNpbmNsdWRlIDxsaW51eC9lcnIuaD4KQEAgLTg2LDExICs4NSwxMSBAQCBz dGF0aWMgY29uc3Qgc3RydWN0IGNsa19vcHMgY2xrX3BsbF9vcHMgPSB7CiAJLnJlY2FsY19yYXRl ID0gY2xrX3BsbF9yZWNhbGNfcmF0ZSwKIH07CiAKLXN0cnVjdCBjbGsgKm14c19jbGtfcGxsKGNv bnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnBhcmVudF9uYW1lLAorc3RydWN0IGNsa19jb3Jl ICpteHNfY2xrX3BsbChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpwYXJlbnRfbmFtZSwK IAkJCXZvaWQgX19pb21lbSAqYmFzZSwgdTggcG93ZXIsIHVuc2lnbmVkIGxvbmcgcmF0ZSkKIHsK IAlzdHJ1Y3QgY2xrX3BsbCAqcGxsOwotCXN0cnVjdCBjbGsgKmNsazsKKwlzdHJ1Y3QgY2xrX2Nv cmUgKmNsazsKIAlzdHJ1Y3QgY2xrX2luaXRfZGF0YSBpbml0OwogCiAJcGxsID0ga3phbGxvYyhz aXplb2YoKnBsbCksIEdGUF9LRVJORUwpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvbXhzL2Ns ay1yZWYuYyBiL2RyaXZlcnMvY2xrL214cy9jbGstcmVmLmMKaW5kZXggNGFkZWVkNi4uYWY3NWMz ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvbXhzL2Nsay1yZWYuYworKysgYi9kcml2ZXJzL2Ns ay9teHMvY2xrLXJlZi5jCkBAIC05LDcgKzksNiBAQAogICogaHR0cDovL3d3dy5nbnUub3JnL2Nv cHlsZWZ0L2dwbC5odG1sCiAgKi8KIAotI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgogI2luY2x1ZGUg PGxpbnV4L2Nsay1wcm92aWRlci5oPgogI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgogI2luY2x1ZGUg PGxpbnV4L2lvLmg+CkBAIC0xMjUsMTEgKzEyNCwxMSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGNs a19vcHMgY2xrX3JlZl9vcHMgPSB7CiAJLnNldF9yYXRlCT0gY2xrX3JlZl9zZXRfcmF0ZSwKIH07 CiAKLXN0cnVjdCBjbGsgKm14c19jbGtfcmVmKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIg KnBhcmVudF9uYW1lLAorc3RydWN0IGNsa19jb3JlICpteHNfY2xrX3JlZihjb25zdCBjaGFyICpu YW1lLCBjb25zdCBjaGFyICpwYXJlbnRfbmFtZSwKIAkJCXZvaWQgX19pb21lbSAqcmVnLCB1OCBp ZHgpCiB7CiAJc3RydWN0IGNsa19yZWYgKnJlZjsKLQlzdHJ1Y3QgY2xrICpjbGs7CisJc3RydWN0 IGNsa19jb3JlICpjbGs7CiAJc3RydWN0IGNsa19pbml0X2RhdGEgaW5pdDsKIAogCXJlZiA9IGt6 YWxsb2Moc2l6ZW9mKCpyZWYpLCBHRlBfS0VSTkVMKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xr L214cy9jbGstc3NwLmMgYi9kcml2ZXJzL2Nsay9teHMvY2xrLXNzcC5jCmluZGV4IGFmN2JkYmYu LjVmOWIwYzMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL214cy9jbGstc3NwLmMKKysrIGIvZHJp dmVycy9jbGsvbXhzL2Nsay1zc3AuYwpAQCAtMTgsNyArMTgsNiBAQAogCiAjaW5jbHVkZSA8bGlu dXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgotI2luY2x1ZGUgPGxpbnV4L2Ns ay5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L2RldmljZS5o PgogI2luY2x1ZGUgPGxpbnV4L2lvLmg+CkBAIC0zMCw3ICsyOSw3IEBAIHZvaWQgbXhzX3NzcF9z ZXRfY2xrX3JhdGUoc3RydWN0IG14c19zc3AgKnNzcCwgdW5zaWduZWQgaW50IHJhdGUpCiAJdTMy IGNsb2NrX2RpdmlkZSwgY2xvY2tfcmF0ZTsKIAl1MzIgdmFsOwogCi0Jc3NwX2NsayA9IGNsa19n ZXRfcmF0ZShzc3AtPmNsayk7CisJc3NwX2NsayA9IGNsa19wcm92aWRlcl9nZXRfcmF0ZShzc3At PmNsayk7CiAKIAlmb3IgKGNsb2NrX2RpdmlkZSA9IDI7IGNsb2NrX2RpdmlkZSA8PSAyNTQ7IGNs b2NrX2RpdmlkZSArPSAyKSB7CiAJCWNsb2NrX3JhdGUgPSBESVZfUk9VTkRfVVAoc3NwX2Nsaywg cmF0ZSAqIGNsb2NrX2RpdmlkZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9teHMvY2xrLmgg Yi9kcml2ZXJzL2Nsay9teHMvY2xrLmgKaW5kZXggZWYxMGFkOS4uMTliOWRjMyAxMDA2NDQKLS0t IGEvZHJpdmVycy9jbGsvbXhzL2Nsay5oCisrKyBiL2RyaXZlcnMvY2xrL214cy9jbGsuaApAQCAt MTIsNyArMTIsNiBAQAogI2lmbmRlZiBfX01YU19DTEtfSAogI2RlZmluZSBfX01YU19DTEtfSAog Ci0jaW5jbHVkZSA8bGludXgvY2xrLmg+CiAjaW5jbHVkZSA8bGludXgvY2xrLXByb3ZpZGVyLmg+ CiAjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KIApAQCAtMjMsMjQgKzIyLDI0IEBAIGV4dGVy biBzcGlubG9ja190IG14c19sb2NrOwogCiBpbnQgbXhzX2Nsa193YWl0KHZvaWQgX19pb21lbSAq cmVnLCB1OCBzaGlmdCk7CiAKLXN0cnVjdCBjbGsgKm14c19jbGtfcGxsKGNvbnN0IGNoYXIgKm5h bWUsIGNvbnN0IGNoYXIgKnBhcmVudF9uYW1lLAorc3RydWN0IGNsa19jb3JlICpteHNfY2xrX3Bs bChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpwYXJlbnRfbmFtZSwKIAkJCXZvaWQgX19p b21lbSAqYmFzZSwgdTggcG93ZXIsIHVuc2lnbmVkIGxvbmcgcmF0ZSk7CiAKLXN0cnVjdCBjbGsg Km14c19jbGtfcmVmKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnBhcmVudF9uYW1lLAor c3RydWN0IGNsa19jb3JlICpteHNfY2xrX3JlZihjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFy ICpwYXJlbnRfbmFtZSwKIAkJCXZvaWQgX19pb21lbSAqcmVnLCB1OCBpZHgpOwogCi1zdHJ1Y3Qg Y2xrICpteHNfY2xrX2Rpdihjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpwYXJlbnRfbmFt ZSwKK3N0cnVjdCBjbGtfY29yZSAqbXhzX2Nsa19kaXYoY29uc3QgY2hhciAqbmFtZSwgY29uc3Qg Y2hhciAqcGFyZW50X25hbWUsCiAJCQl2b2lkIF9faW9tZW0gKnJlZywgdTggc2hpZnQsIHU4IHdp ZHRoLCB1OCBidXN5KTsKIAotc3RydWN0IGNsayAqbXhzX2Nsa19mcmFjKGNvbnN0IGNoYXIgKm5h bWUsIGNvbnN0IGNoYXIgKnBhcmVudF9uYW1lLAorc3RydWN0IGNsa19jb3JlICpteHNfY2xrX2Zy YWMoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqcGFyZW50X25hbWUsCiAJCQkgdm9pZCBf X2lvbWVtICpyZWcsIHU4IHNoaWZ0LCB1OCB3aWR0aCwgdTggYnVzeSk7CiAKLXN0YXRpYyBpbmxp bmUgc3RydWN0IGNsayAqbXhzX2Nsa19maXhlZChjb25zdCBjaGFyICpuYW1lLCBpbnQgcmF0ZSkK K3N0YXRpYyBpbmxpbmUgc3RydWN0IGNsa19jb3JlICpteHNfY2xrX2ZpeGVkKGNvbnN0IGNoYXIg Km5hbWUsIGludCByYXRlKQogewogCXJldHVybiBjbGtfcmVnaXN0ZXJfZml4ZWRfcmF0ZShOVUxM LCBuYW1lLCBOVUxMLCBDTEtfSVNfUk9PVCwgcmF0ZSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgc3Ry dWN0IGNsayAqbXhzX2Nsa19nYXRlKGNvbnN0IGNoYXIgKm5hbWUsCitzdGF0aWMgaW5saW5lIHN0 cnVjdCBjbGtfY29yZSAqbXhzX2Nsa19nYXRlKGNvbnN0IGNoYXIgKm5hbWUsCiAJCQljb25zdCBj aGFyICpwYXJlbnRfbmFtZSwgdm9pZCBfX2lvbWVtICpyZWcsIHU4IHNoaWZ0KQogewogCXJldHVy biBjbGtfcmVnaXN0ZXJfZ2F0ZShOVUxMLCBuYW1lLCBwYXJlbnRfbmFtZSwgQ0xLX1NFVF9SQVRF X1BBUkVOVCwKQEAgLTQ4LDcgKzQ3LDcgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgY2xrICpteHNf Y2xrX2dhdGUoY29uc3QgY2hhciAqbmFtZSwKIAkJCQkgJm14c19sb2NrKTsKIH0KIAotc3RhdGlj IGlubGluZSBzdHJ1Y3QgY2xrICpteHNfY2xrX211eChjb25zdCBjaGFyICpuYW1lLCB2b2lkIF9f aW9tZW0gKnJlZywKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGNsa19jb3JlICpteHNfY2xrX211eChj b25zdCBjaGFyICpuYW1lLCB2b2lkIF9faW9tZW0gKnJlZywKIAkJdTggc2hpZnQsIHU4IHdpZHRo LCBjb25zdCBjaGFyICoqcGFyZW50X25hbWVzLCBpbnQgbnVtX3BhcmVudHMpCiB7CiAJcmV0dXJu IGNsa19yZWdpc3Rlcl9tdXgoTlVMTCwgbmFtZSwgcGFyZW50X25hbWVzLCBudW1fcGFyZW50cywK QEAgLTU2LDcgKzU1LDcgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgY2xrICpteHNfY2xrX211eChj b25zdCBjaGFyICpuYW1lLCB2b2lkIF9faW9tZW0gKnJlZywKIAkJCQlyZWcsIHNoaWZ0LCB3aWR0 aCwgMCwgJm14c19sb2NrKTsKIH0KIAotc3RhdGljIGlubGluZSBzdHJ1Y3QgY2xrICpteHNfY2xr X2ZpeGVkX2ZhY3Rvcihjb25zdCBjaGFyICpuYW1lLAorc3RhdGljIGlubGluZSBzdHJ1Y3QgY2xr X2NvcmUgKm14c19jbGtfZml4ZWRfZmFjdG9yKGNvbnN0IGNoYXIgKm5hbWUsCiAJCWNvbnN0IGNo YXIgKnBhcmVudF9uYW1lLCB1bnNpZ25lZCBpbnQgbXVsdCwgdW5zaWduZWQgaW50IGRpdikKIHsK IAlyZXR1cm4gY2xrX3JlZ2lzdGVyX2ZpeGVkX2ZhY3RvcihOVUxMLCBuYW1lLCBwYXJlbnRfbmFt ZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3Fjb20vY2xrLXJjZy5jIGIvZHJpdmVycy9jbGsv cWNvbS9jbGstcmNnLmMKaW5kZXggYjYzOGM1OC4uNTlmMTE4YyAxMDA2NDQKLS0tIGEvZHJpdmVy cy9jbGsvcWNvbS9jbGstcmNnLmMKKysrIGIvZHJpdmVycy9jbGsvcWNvbS9jbGstcmNnLmMKQEAg LTM3NSw3ICszNzUsNyBAQCBzdHJ1Y3QgZnJlcV90YmwgKmZpbmRfZnJlcShjb25zdCBzdHJ1Y3Qg ZnJlcV90YmwgKmYsIHVuc2lnbmVkIGxvbmcgcmF0ZSkKIAogc3RhdGljIGxvbmcgX2ZyZXFfdGJs X2RldGVybWluZV9yYXRlKHN0cnVjdCBjbGtfaHcgKmh3LAogCQljb25zdCBzdHJ1Y3QgZnJlcV90 YmwgKmYsIHVuc2lnbmVkIGxvbmcgcmF0ZSwKLQkJdW5zaWduZWQgbG9uZyAqcF9yYXRlLCBzdHJ1 Y3QgY2xrICoqcCkKKwkJdW5zaWduZWQgbG9uZyAqcF9yYXRlLCBzdHJ1Y3QgY2xrX2NvcmUgKipw KQogewogCXVuc2lnbmVkIGxvbmcgY2xrX2ZsYWdzOwogCkBAIC00MDIsNyArNDAyLDcgQEAgc3Rh dGljIGxvbmcgX2ZyZXFfdGJsX2RldGVybWluZV9yYXRlKHN0cnVjdCBjbGtfaHcgKmh3LAogfQog CiBzdGF0aWMgbG9uZyBjbGtfcmNnX2RldGVybWluZV9yYXRlKHN0cnVjdCBjbGtfaHcgKmh3LCB1 bnNpZ25lZCBsb25nIHJhdGUsCi0JCXVuc2lnbmVkIGxvbmcgKnBfcmF0ZSwgc3RydWN0IGNsayAq KnApCisJCXVuc2lnbmVkIGxvbmcgKnBfcmF0ZSwgc3RydWN0IGNsa19jb3JlICoqcCkKIHsKIAlz dHJ1Y3QgY2xrX3JjZyAqcmNnID0gdG9fY2xrX3JjZyhodyk7CiAKQEAgLTQxMCw3ICs0MTAsNyBA QCBzdGF0aWMgbG9uZyBjbGtfcmNnX2RldGVybWluZV9yYXRlKHN0cnVjdCBjbGtfaHcgKmh3LCB1 bnNpZ25lZCBsb25nIHJhdGUsCiB9CiAKIHN0YXRpYyBsb25nIGNsa19keW5fcmNnX2RldGVybWlu ZV9yYXRlKHN0cnVjdCBjbGtfaHcgKmh3LCB1bnNpZ25lZCBsb25nIHJhdGUsCi0JCXVuc2lnbmVk IGxvbmcgKnBfcmF0ZSwgc3RydWN0IGNsayAqKnApCisJCXVuc2lnbmVkIGxvbmcgKnBfcmF0ZSwg c3RydWN0IGNsa19jb3JlICoqcCkKIHsKIAlzdHJ1Y3QgY2xrX2R5bl9yY2cgKnJjZyA9IHRvX2Ns a19keW5fcmNnKGh3KTsKIApAQCAtNDE4LDcgKzQxOCw3IEBAIHN0YXRpYyBsb25nIGNsa19keW5f cmNnX2RldGVybWluZV9yYXRlKHN0cnVjdCBjbGtfaHcgKmh3LCB1bnNpZ25lZCBsb25nIHJhdGUs CiB9CiAKIHN0YXRpYyBsb25nIGNsa19yY2dfYnlwYXNzX2RldGVybWluZV9yYXRlKHN0cnVjdCBj bGtfaHcgKmh3LCB1bnNpZ25lZCBsb25nIHJhdGUsCi0JCXVuc2lnbmVkIGxvbmcgKnBfcmF0ZSwg c3RydWN0IGNsayAqKnApCisJCXVuc2lnbmVkIGxvbmcgKnBfcmF0ZSwgc3RydWN0IGNsa19jb3Jl ICoqcCkKIHsKIAlzdHJ1Y3QgY2xrX3JjZyAqcmNnID0gdG9fY2xrX3JjZyhodyk7CiAJY29uc3Qg c3RydWN0IGZyZXFfdGJsICpmID0gcmNnLT5mcmVxX3RibDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Y2xrL3Fjb20vY2xrLXJjZzIuYyBiL2RyaXZlcnMvY2xrL3Fjb20vY2xrLXJjZzIuYwppbmRleCBj ZDE4NWQ1Li42YWFjMWVjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay9xY29tL2Nsay1yY2cyLmMK KysrIGIvZHJpdmVycy9jbGsvcWNvbS9jbGstcmNnMi5jCkBAIC0xODgsNyArMTg4LDcgQEAgc3Ry dWN0IGZyZXFfdGJsICpmaW5kX2ZyZXEoY29uc3Qgc3RydWN0IGZyZXFfdGJsICpmLCB1bnNpZ25l ZCBsb25nIHJhdGUpCiAKIHN0YXRpYyBsb25nIF9mcmVxX3RibF9kZXRlcm1pbmVfcmF0ZShzdHJ1 Y3QgY2xrX2h3ICpodywKIAkJY29uc3Qgc3RydWN0IGZyZXFfdGJsICpmLCB1bnNpZ25lZCBsb25n IHJhdGUsCi0JCXVuc2lnbmVkIGxvbmcgKnBfcmF0ZSwgc3RydWN0IGNsayAqKnApCisJCXVuc2ln bmVkIGxvbmcgKnBfcmF0ZSwgc3RydWN0IGNsa19jb3JlICoqcCkKIHsKIAl1bnNpZ25lZCBsb25n IGNsa19mbGFnczsKIApAQCAtMjE5LDcgKzIxOSw3IEBAIHN0YXRpYyBsb25nIF9mcmVxX3RibF9k ZXRlcm1pbmVfcmF0ZShzdHJ1Y3QgY2xrX2h3ICpodywKIH0KIAogc3RhdGljIGxvbmcgY2xrX3Jj ZzJfZGV0ZXJtaW5lX3JhdGUoc3RydWN0IGNsa19odyAqaHcsIHVuc2lnbmVkIGxvbmcgcmF0ZSwK LQkJdW5zaWduZWQgbG9uZyAqcF9yYXRlLCBzdHJ1Y3QgY2xrICoqcCkKKwkJdW5zaWduZWQgbG9u ZyAqcF9yYXRlLCBzdHJ1Y3QgY2xrX2NvcmUgKipwKQogewogCXN0cnVjdCBjbGtfcmNnMiAqcmNn ID0gdG9fY2xrX3JjZzIoaHcpOwogCkBAIC0zNzIsNyArMzcyLDcgQEAgc3RhdGljIGludCBjbGtf ZWRwX3BpeGVsX3NldF9yYXRlX2FuZF9wYXJlbnQoc3RydWN0IGNsa19odyAqaHcsCiB9CiAKIHN0 YXRpYyBsb25nIGNsa19lZHBfcGl4ZWxfZGV0ZXJtaW5lX3JhdGUoc3RydWN0IGNsa19odyAqaHcs IHVuc2lnbmVkIGxvbmcgcmF0ZSwKLQkJCQkgdW5zaWduZWQgbG9uZyAqcF9yYXRlLCBzdHJ1Y3Qg Y2xrICoqcCkKKwkJCQkgdW5zaWduZWQgbG9uZyAqcF9yYXRlLCBzdHJ1Y3QgY2xrX2NvcmUgKipw KQogewogCXN0cnVjdCBjbGtfcmNnMiAqcmNnID0gdG9fY2xrX3JjZzIoaHcpOwogCWNvbnN0IHN0 cnVjdCBmcmVxX3RibCAqZiA9IHJjZy0+ZnJlcV90Ymw7CkBAIC00MjMsNyArNDIzLDcgQEAgY29u c3Qgc3RydWN0IGNsa19vcHMgY2xrX2VkcF9waXhlbF9vcHMgPSB7CiBFWFBPUlRfU1lNQk9MX0dQ TChjbGtfZWRwX3BpeGVsX29wcyk7CiAKIHN0YXRpYyBsb25nIGNsa19ieXRlX2RldGVybWluZV9y YXRlKHN0cnVjdCBjbGtfaHcgKmh3LCB1bnNpZ25lZCBsb25nIHJhdGUsCi0JCQkgdW5zaWduZWQg bG9uZyAqcF9yYXRlLCBzdHJ1Y3QgY2xrICoqcCkKKwkJCSB1bnNpZ25lZCBsb25nICpwX3JhdGUs IHN0cnVjdCBjbGtfY29yZSAqKnApCiB7CiAJc3RydWN0IGNsa19yY2cyICpyY2cgPSB0b19jbGtf cmNnMihodyk7CiAJY29uc3Qgc3RydWN0IGZyZXFfdGJsICpmID0gcmNnLT5mcmVxX3RibDsKQEAg LTQ4NSwxNCArNDg1LDE0IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZnJhY19lbnRyeSBmcmFjX3Rh YmxlX3BpeGVsW10gPSB7CiB9OwogCiBzdGF0aWMgbG9uZyBjbGtfcGl4ZWxfZGV0ZXJtaW5lX3Jh dGUoc3RydWN0IGNsa19odyAqaHcsIHVuc2lnbmVkIGxvbmcgcmF0ZSwKLQkJCQkgdW5zaWduZWQg bG9uZyAqcF9yYXRlLCBzdHJ1Y3QgY2xrICoqcCkKKwkJCQkgdW5zaWduZWQgbG9uZyAqcF9yYXRl LCBzdHJ1Y3QgY2xrX2NvcmUgKipwKQogewogCXN0cnVjdCBjbGtfcmNnMiAqcmNnID0gdG9fY2xr X3JjZzIoaHcpOwogCXVuc2lnbmVkIGxvbmcgcmVxdWVzdCwgc3JjX3JhdGU7CiAJaW50IGRlbHRh ID0gMTAwMDAwOwogCWNvbnN0IHN0cnVjdCBmcmVxX3RibCAqZiA9IHJjZy0+ZnJlcV90Ymw7CiAJ Y29uc3Qgc3RydWN0IGZyYWNfZW50cnkgKmZyYWMgPSBmcmFjX3RhYmxlX3BpeGVsOwotCXN0cnVj dCBjbGsgKnBhcmVudCA9ICpwID0gY2xrX2dldF9wYXJlbnRfYnlfaW5kZXgoaHctPmNsaywgZi0+ c3JjKTsKKwlzdHJ1Y3QgY2xrX2NvcmUgKnBhcmVudCA9ICpwID0gY2xrX2dldF9wYXJlbnRfYnlf aW5kZXgoaHctPmNsaywgZi0+c3JjKTsKIAogCWZvciAoOyBmcmFjLT5udW07IGZyYWMrKykgewog CQlyZXF1ZXN0ID0gKHJhdGUgKiBmcmFjLT5kZW4pIC8gZnJhYy0+bnVtOwpAQCAtNTE5LDcgKzUx OSw3IEBAIHN0YXRpYyBpbnQgY2xrX3BpeGVsX3NldF9yYXRlKHN0cnVjdCBjbGtfaHcgKmh3LCB1 bnNpZ25lZCBsb25nIHJhdGUsCiAJaW50IGRlbHRhID0gMTAwMDAwOwogCXUzMiBtYXNrID0gQklU KHJjZy0+aGlkX3dpZHRoKSAtIDE7CiAJdTMyIGhpZF9kaXY7Ci0Jc3RydWN0IGNsayAqcGFyZW50 ID0gY2xrX2dldF9wYXJlbnRfYnlfaW5kZXgoaHctPmNsaywgZi5zcmMpOworCXN0cnVjdCBjbGtf Y29yZSAqcGFyZW50ID0gY2xrX2dldF9wYXJlbnRfYnlfaW5kZXgoaHctPmNsaywgZi5zcmMpOwog CiAJZm9yICg7IGZyYWMtPm51bTsgZnJhYysrKSB7CiAJCXJlcXVlc3QgPSAocmF0ZSAqIGZyYWMt PmRlbikgLyBmcmFjLT5udW07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9xY29tL2Nsay1yZWdt YXAuYyBiL2RyaXZlcnMvY2xrL3Fjb20vY2xrLXJlZ21hcC5jCmluZGV4IGE1OGJhMzkuLjJhOTgw NDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL3Fjb20vY2xrLXJlZ21hcC5jCisrKyBiL2RyaXZl cnMvY2xrL3Fjb20vY2xrLXJlZ21hcC5jCkBAIC0xMDEsNyArMTAxLDcgQEAgRVhQT1JUX1NZTUJP TF9HUEwoY2xrX2Rpc2FibGVfcmVnbWFwKTsKICAqIGNsa19yZWdtYXAgc3RydWN0IHZpYSB0aGlz IGZ1bmN0aW9uIHNvIHRoYXQgdGhlIHJlZ21hcCBpcyBpbml0aWFsaXplZAogICogYW5kIHNvIHRo YXQgdGhlIGNsb2NrIGlzIHJlZ2lzdGVyZWQgd2l0aCB0aGUgY29tbW9uIGNsb2NrIGZyYW1ld29y ay4KICAqLwotc3RydWN0IGNsayAqZGV2bV9jbGtfcmVnaXN0ZXJfcmVnbWFwKHN0cnVjdCBkZXZp Y2UgKmRldiwKK3N0cnVjdCBjbGtfY29yZSAqZGV2bV9jbGtfcmVnaXN0ZXJfcmVnbWFwKHN0cnVj dCBkZXZpY2UgKmRldiwKIAkJCQkgICAgIHN0cnVjdCBjbGtfcmVnbWFwICpyY2xrKQogewogCWlm IChkZXYgJiYgZGV2X2dldF9yZWdtYXAoZGV2LCBOVUxMKSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Y2xrL3Fjb20vY2xrLXJlZ21hcC5oIGIvZHJpdmVycy9jbGsvcWNvbS9jbGstcmVnbWFwLmgKaW5k ZXggNDkxYTYzZC4uODkyNThjYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvcWNvbS9jbGstcmVn bWFwLmgKKysrIGIvZHJpdmVycy9jbGsvcWNvbS9jbGstcmVnbWFwLmgKQEAgLTM5LDcgKzM5LDcg QEAgc3RydWN0IGNsa19yZWdtYXAgewogaW50IGNsa19pc19lbmFibGVkX3JlZ21hcChzdHJ1Y3Qg Y2xrX2h3ICpodyk7CiBpbnQgY2xrX2VuYWJsZV9yZWdtYXAoc3RydWN0IGNsa19odyAqaHcpOwog dm9pZCBjbGtfZGlzYWJsZV9yZWdtYXAoc3RydWN0IGNsa19odyAqaHcpOwotc3RydWN0IGNsayAq CitzdHJ1Y3QgY2xrX2NvcmUgKgogZGV2bV9jbGtfcmVnaXN0ZXJfcmVnbWFwKHN0cnVjdCBkZXZp Y2UgKmRldiwgc3RydWN0IGNsa19yZWdtYXAgKnJjbGspOwogCiAjZW5kaWYKZGlmZiAtLWdpdCBh L2RyaXZlcnMvY2xrL3Fjb20vY29tbW9uLmMgYi9kcml2ZXJzL2Nsay9xY29tL2NvbW1vbi5jCmlu ZGV4IGVlYjNlZWEuLmFmZDQwZWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL3Fjb20vY29tbW9u LmMKKysrIGIvZHJpdmVycy9jbGsvcWNvbS9jb21tb24uYwpAQCAtMjQsNyArMjQsNyBAQAogc3Ry dWN0IHFjb21fY2MgewogCXN0cnVjdCBxY29tX3Jlc2V0X2NvbnRyb2xsZXIgcmVzZXQ7CiAJc3Ry dWN0IGNsa19vbmVjZWxsX2RhdGEgZGF0YTsKLQlzdHJ1Y3QgY2xrICpjbGtzW107CisJc3RydWN0 IGNsa19jb3JlICpjbGtzW107CiB9OwogCiBzdHJ1Y3QgcmVnbWFwICoKQEAgLTQ4LDkgKzQ4LDkg QEAgaW50IHFjb21fY2NfcmVhbGx5X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYs CiB7CiAJaW50IGksIHJldDsKIAlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGRldi0+ZGV2OwotCXN0 cnVjdCBjbGsgKmNsazsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmNsazsKIAlzdHJ1Y3QgY2xrX29uZWNl bGxfZGF0YSAqZGF0YTsKLQlzdHJ1Y3QgY2xrICoqY2xrczsKKwlzdHJ1Y3QgY2xrX2NvcmUgKipj bGtzOwogCXN0cnVjdCBxY29tX3Jlc2V0X2NvbnRyb2xsZXIgKnJlc2V0OwogCXN0cnVjdCBxY29t X2NjICpjYzsKIAlzaXplX3QgbnVtX2Nsa3MgPSBkZXNjLT5udW1fY2xrczsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvY2xrL3Fjb20vZ2NjLWFwcTgwODQuYyBiL2RyaXZlcnMvY2xrL3Fjb20vZ2NjLWFw cTgwODQuYwppbmRleCBlZTUyZWIxLi4yN2FmMGNkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay9x Y29tL2djYy1hcHE4MDg0LmMKKysrIGIvZHJpdmVycy9jbGsvcWNvbS9nY2MtYXBxODA4NC5jCkBA IC0zNTYyLDcgKzM1NjIsNyBAQCBNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBnY2NfYXBxODA4NF9t YXRjaF90YWJsZSk7CiAKIHN0YXRpYyBpbnQgZ2NjX2FwcTgwODRfcHJvYmUoc3RydWN0IHBsYXRm b3JtX2RldmljZSAqcGRldikKIHsKLQlzdHJ1Y3QgY2xrICpjbGs7CisJc3RydWN0IGNsa19jb3Jl ICpjbGs7CiAJc3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsKIAogCS8qIFRlbXBvcmFy eSB1bnRpbCBSUE0gY2xvY2tzIHN1cHBvcnRlZCAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsv cWNvbS9nY2MtaXBxODA2eC5jIGIvZHJpdmVycy9jbGsvcWNvbS9nY2MtaXBxODA2eC5jCmluZGV4 IDQwMzJlNTEuLmYzMWYwOTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL3Fjb20vZ2NjLWlwcTgw NnguYworKysgYi9kcml2ZXJzL2Nsay9xY29tL2djYy1pcHE4MDZ4LmMKQEAgLTIzNzYsNyArMjM3 Niw3IEBAIE1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGdjY19pcHE4MDZ4X21hdGNoX3RhYmxlKTsK IAogc3RhdGljIGludCBnY2NfaXBxODA2eF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpw ZGV2KQogewotCXN0cnVjdCBjbGsgKmNsazsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmNsazsKIAlzdHJ1 Y3QgZGV2aWNlICpkZXYgPSAmcGRldi0+ZGV2OwogCiAJLyogVGVtcG9yYXJ5IHVudGlsIFJQTSBj bG9ja3Mgc3VwcG9ydGVkICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9xY29tL2djYy1tc204 NjYwLmMgYi9kcml2ZXJzL2Nsay9xY29tL2djYy1tc204NjYwLmMKaW5kZXggMGM0YjcyNy4uMmQ0 MWZkYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvcWNvbS9nY2MtbXNtODY2MC5jCisrKyBiL2Ry aXZlcnMvY2xrL3Fjb20vZ2NjLW1zbTg2NjAuYwpAQCAtMjcxOCw3ICsyNzE4LDcgQEAgTU9EVUxF X0RFVklDRV9UQUJMRShvZiwgZ2NjX21zbTg2NjBfbWF0Y2hfdGFibGUpOwogCiBzdGF0aWMgaW50 IGdjY19tc204NjYwX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiB7Ci0Jc3Ry dWN0IGNsayAqY2xrOworCXN0cnVjdCBjbGtfY29yZSAqY2xrOwogCXN0cnVjdCBkZXZpY2UgKmRl diA9ICZwZGV2LT5kZXY7CiAKIAkvKiBUZW1wb3JhcnkgdW50aWwgUlBNIGNsb2NrcyBzdXBwb3J0 ZWQgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3Fjb20vZ2NjLW1zbTg5NjAuYyBiL2RyaXZl cnMvY2xrL3Fjb20vZ2NjLW1zbTg5NjAuYwppbmRleCAwMDc1MzRmLi5lZDhmOGY1IDEwMDY0NAot LS0gYS9kcml2ZXJzL2Nsay9xY29tL2djYy1tc204OTYwLmMKKysrIGIvZHJpdmVycy9jbGsvcWNv bS9nY2MtbXNtODk2MC5jCkBAIC0zNDg4LDcgKzM0ODgsNyBAQCBNT0RVTEVfREVWSUNFX1RBQkxF KG9mLCBnY2NfbXNtODk2MF9tYXRjaF90YWJsZSk7CiAKIHN0YXRpYyBpbnQgZ2NjX21zbTg5NjBf cHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIHsKLQlzdHJ1Y3QgY2xrICpjbGs7 CisJc3RydWN0IGNsa19jb3JlICpjbGs7CiAJc3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRl djsKIAljb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkICptYXRjaDsKIApkaWZmIC0tZ2l0IGEvZHJp dmVycy9jbGsvcWNvbS9nY2MtbXNtODk3NC5jIGIvZHJpdmVycy9jbGsvcWNvbS9nY2MtbXNtODk3 NC5jCmluZGV4IDdhZjdjMTguLjgzMjZiMWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL3Fjb20v Z2NjLW1zbTg5NzQuYworKysgYi9kcml2ZXJzL2Nsay9xY29tL2djYy1tc204OTc0LmMKQEAgLTI2 OTksNyArMjY5OSw3IEBAIHN0YXRpYyB2b2lkIG1zbTg5NzRfcHJvX2Nsb2NrX292ZXJyaWRlKHZv aWQpCiAKIHN0YXRpYyBpbnQgZ2NjX21zbTg5NzRfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2Rldmlj ZSAqcGRldikKIHsKLQlzdHJ1Y3QgY2xrICpjbGs7CisJc3RydWN0IGNsa19jb3JlICpjbGs7CiAJ c3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsKIAlib29sIHBybzsKIAljb25zdCBzdHJ1 Y3Qgb2ZfZGV2aWNlX2lkICppZDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3Fjb20vbW1jYy1t c204OTYwLmMgYi9kcml2ZXJzL2Nsay9xY29tL21tY2MtbXNtODk2MC5jCmluZGV4IDJlODBhMjEu LmJiNjBkNjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL3Fjb20vbW1jYy1tc204OTYwLmMKKysr IGIvZHJpdmVycy9jbGsvcWNvbS9tbWNjLW1zbTg5NjAuYwpAQCAtNTA1LDcgKzUwNSw3IEBAIHN0 YXRpYyBpbnQgcGl4X3JkaV9zZXRfcGFyZW50KHN0cnVjdCBjbGtfaHcgKmh3LCB1OCBpbmRleCkK IAlpbnQgcmV0ID0gMDsKIAl1MzIgdmFsOwogCXN0cnVjdCBjbGtfcGl4X3JkaSAqcmRpID0gdG9f Y2xrX3BpeF9yZGkoaHcpOwotCXN0cnVjdCBjbGsgKmNsayA9IGh3LT5jbGs7CisJc3RydWN0IGNs a19jb3JlICpjbGsgPSBody0+Y2xrOwogCWludCBudW1fcGFyZW50cyA9IF9fY2xrX2dldF9udW1f cGFyZW50cyhody0+Y2xrKTsKIAogCS8qCkBAIC01MTcsNyArNTE3LDcgQEAgc3RhdGljIGludCBw aXhfcmRpX3NldF9wYXJlbnQoc3RydWN0IGNsa19odyAqaHcsIHU4IGluZGV4KQogCSAqIG5lZWRz IHRvIGJlIG9uIGF0IHdoYXQgdGltZS4KIAkgKi8KIAlmb3IgKGkgPSAwOyBpIDwgbnVtX3BhcmVu dHM7IGkrKykgewotCQlyZXQgPSBjbGtfcHJlcGFyZV9lbmFibGUoY2xrX2dldF9wYXJlbnRfYnlf aW5kZXgoY2xrLCBpKSk7CisJCXJldCA9IGNsa19wcm92aWRlcl9wcmVwYXJlX2VuYWJsZShjbGtf Z2V0X3BhcmVudF9ieV9pbmRleChjbGssIGkpKTsKIAkJaWYgKHJldCkKIAkJCWdvdG8gZXJyOwog CX0KQEAgLTU0Niw3ICs1NDYsNyBAQCBzdGF0aWMgaW50IHBpeF9yZGlfc2V0X3BhcmVudChzdHJ1 Y3QgY2xrX2h3ICpodywgdTggaW5kZXgpCiAKIGVycjoKIAlmb3IgKGktLTsgaSA+PSAwOyBpLS0p Ci0JCWNsa19kaXNhYmxlX3VucHJlcGFyZShjbGtfZ2V0X3BhcmVudF9ieV9pbmRleChjbGssIGkp KTsKKwkJY2xrX3Byb3ZpZGVyX2Rpc2FibGVfdW5wcmVwYXJlKGNsa19nZXRfcGFyZW50X2J5X2lu ZGV4KGNsaywgaSkpOwogCiAJcmV0dXJuIHJldDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xr L3JvY2tjaGlwL2Nsay1wbGwuYyBiL2RyaXZlcnMvY2xrL3JvY2tjaGlwL2Nsay1wbGwuYwppbmRl eCBmMmExYzdhLi40MTRiZmYyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay9yb2NrY2hpcC9jbGst cGxsLmMKKysrIGIvZHJpdmVycy9jbGsvcm9ja2NoaXAvY2xrLXBsbC5jCkBAIC0xNyw3ICsxNyw2 IEBACiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgogI2luY2x1ZGUgPGxpbnV4L2lvLmg+CiAjaW5j bHVkZSA8bGludXgvZGVsYXkuaD4KLSNpbmNsdWRlIDxsaW51eC9jbGsuaD4KICNpbmNsdWRlIDxs aW51eC9jbGstcHJvdmlkZXIuaD4KICNpbmNsdWRlIDxsaW51eC9yZWdtYXAuaD4KICNpbmNsdWRl ICJjbGsuaCIKQEAgLTI5Nyw3ICsyOTYsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGNsa19vcHMg cm9ja2NoaXBfcmszMDY2X3BsbF9jbGtfb3BzID0gewogICogQ29tbW9uIHJlZ2lzdGVyaW5nIG9m IHBsbCBjbG9ja3MKICAqLwogCi1zdHJ1Y3QgY2xrICpyb2NrY2hpcF9jbGtfcmVnaXN0ZXJfcGxs KGVudW0gcm9ja2NoaXBfcGxsX3R5cGUgcGxsX3R5cGUsCitzdHJ1Y3QgY2xrX2NvcmUgKnJvY2tj aGlwX2Nsa19yZWdpc3Rlcl9wbGwoZW51bSByb2NrY2hpcF9wbGxfdHlwZSBwbGxfdHlwZSwKIAkJ Y29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqKnBhcmVudF9uYW1lcywgdTggbnVtX3BhcmVu dHMsCiAJCXZvaWQgX19pb21lbSAqYmFzZSwgaW50IGNvbl9vZmZzZXQsIGludCBncmZfbG9ja19v ZmZzZXQsCiAJCWludCBsb2NrX3NoaWZ0LCBpbnQgbW9kZV9vZmZzZXQsIGludCBtb2RlX3NoaWZ0 LApAQCAtMzA4LDcgKzMwNyw3IEBAIHN0cnVjdCBjbGsgKnJvY2tjaGlwX2Nsa19yZWdpc3Rlcl9w bGwoZW51bSByb2NrY2hpcF9wbGxfdHlwZSBwbGxfdHlwZSwKIAlzdHJ1Y3QgY2xrX2luaXRfZGF0 YSBpbml0OwogCXN0cnVjdCByb2NrY2hpcF9jbGtfcGxsICpwbGw7CiAJc3RydWN0IGNsa19tdXgg KnBsbF9tdXg7Ci0Jc3RydWN0IGNsayAqcGxsX2NsaywgKm11eF9jbGs7CisJc3RydWN0IGNsa19j b3JlICpwbGxfY2xrLCAqbXV4X2NsazsKIAljaGFyIHBsbF9uYW1lWzIwXTsKIAlpbnQgcmV0Owog CkBAIC0zNzcsNyArMzc2LDcgQEAgc3RydWN0IGNsayAqcm9ja2NoaXBfY2xrX3JlZ2lzdGVyX3Bs bChlbnVtIHJvY2tjaGlwX3BsbF90eXBlIHBsbF90eXBlLAogCQlnb3RvIGVycl9wbGw7CiAJfQog Ci0JcmV0ID0gY2xrX25vdGlmaWVyX3JlZ2lzdGVyKHBsbF9jbGssICZwbGwtPmNsa19uYik7CisJ cmV0ID0gY2xrX3Byb3ZpZGVyX25vdGlmaWVyX3JlZ2lzdGVyKHBsbF9jbGssICZwbGwtPmNsa19u Yik7CiAJaWYgKHJldCkgewogCQlwcl9lcnIoIiVzOiBmYWlsZWQgdG8gcmVnaXN0ZXIgY2xvY2sg bm90aWZpZXIgZm9yICVzIDogJWRcbiIsCiAJCQkJX19mdW5jX18sIG5hbWUsIHJldCk7CkBAIC00 MTcsNyArNDE2LDcgQEAgc3RydWN0IGNsayAqcm9ja2NoaXBfY2xrX3JlZ2lzdGVyX3BsbChlbnVt IHJvY2tjaGlwX3BsbF90eXBlIHBsbF90eXBlLAogCXJldHVybiBtdXhfY2xrOwogCiBlcnJfbXV4 OgotCXJldCA9IGNsa19ub3RpZmllcl91bnJlZ2lzdGVyKHBsbF9jbGssICZwbGwtPmNsa19uYik7 CisJcmV0ID0gY2xrX3Byb3ZpZGVyX25vdGlmaWVyX3VucmVnaXN0ZXIocGxsX2NsaywgJnBsbC0+ Y2xrX25iKTsKIAlpZiAocmV0KSB7CiAJCXByX2VycigiJXM6IGNvdWxkIG5vdCB1bnJlZ2lzdGVy IGNsb2NrIG5vdGlmaWVyIGluIGVycm9yIHBhdGggOiAlZFxuIiwKIAkJICAgICAgIF9fZnVuY19f LCByZXQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvcm9ja2NoaXAvY2xrLXJrMzE4OC5jIGIv ZHJpdmVycy9jbGsvcm9ja2NoaXAvY2xrLXJrMzE4OC5jCmluZGV4IDE4OTJjNjYuLmFlNGNmODIg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL3JvY2tjaGlwL2Nsay1yazMxODguYworKysgYi9kcml2 ZXJzL2Nsay9yb2NrY2hpcC9jbGstcmszMTg4LmMKQEAgLTYwNyw3ICs2MDcsNyBAQCBzdGF0aWMg Y29uc3QgY2hhciAqcmszMTg4X2NyaXRpY2FsX2Nsb2Nrc1tdIF9faW5pdGNvbnN0ID0gewogc3Rh dGljIHZvaWQgX19pbml0IHJrMzE4OF9jb21tb25fY2xrX2luaXQoc3RydWN0IGRldmljZV9ub2Rl ICpucCkKIHsKIAl2b2lkIF9faW9tZW0gKnJlZ19iYXNlOwotCXN0cnVjdCBjbGsgKmNsazsKKwlz dHJ1Y3QgY2xrX2NvcmUgKmNsazsKIAogCXJlZ19iYXNlID0gb2ZfaW9tYXAobnAsIDApOwogCWlm ICghcmVnX2Jhc2UpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3JvY2tjaGlwL2Nsay1yazMy ODguYyBiL2RyaXZlcnMvY2xrL3JvY2tjaGlwL2Nsay1yazMyODguYwppbmRleCA0M2UwYWQwLi43 ZjI5Mjk1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay9yb2NrY2hpcC9jbGstcmszMjg4LmMKKysr IGIvZHJpdmVycy9jbGsvcm9ja2NoaXAvY2xrLXJrMzI4OC5jCkBAIC02ODgsNyArNjg4LDcgQEAg c3RhdGljIGNvbnN0IGNoYXIgKnJrMzI4OF9jcml0aWNhbF9jbG9ja3NbXSBfX2luaXRjb25zdCA9 IHsKIHN0YXRpYyB2b2lkIF9faW5pdCByazMyODhfY2xrX2luaXQoc3RydWN0IGRldmljZV9ub2Rl ICpucCkKIHsKIAl2b2lkIF9faW9tZW0gKnJlZ19iYXNlOwotCXN0cnVjdCBjbGsgKmNsazsKKwlz dHJ1Y3QgY2xrX2NvcmUgKmNsazsKIAogCXJlZ19iYXNlID0gb2ZfaW9tYXAobnAsIDApOwogCWlm ICghcmVnX2Jhc2UpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3JvY2tjaGlwL2Nsay1yb2Nr Y2hpcC5jIGIvZHJpdmVycy9jbGsvcm9ja2NoaXAvY2xrLXJvY2tjaGlwLmMKaW5kZXggNGNmODM4 ZDUuLmZhYThkZmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL3JvY2tjaGlwL2Nsay1yb2NrY2hp cC5jCisrKyBiL2RyaXZlcnMvY2xrL3JvY2tjaGlwL2Nsay1yb2NrY2hpcC5jCkBAIC01NCw3ICs1 NCw3IEBAIHN0YXRpYyB2b2lkIF9faW5pdCByazI5MjhfZ2F0ZV9jbGtfaW5pdChzdHJ1Y3QgZGV2 aWNlX25vZGUgKm5vZGUpCiAJaWYgKCFjbGtfZGF0YSkKIAkJcmV0dXJuOwogCi0JY2xrX2RhdGEt PmNsa3MgPSBremFsbG9jKHF0eSAqIHNpemVvZihzdHJ1Y3QgY2xrICopLCBHRlBfS0VSTkVMKTsK KwljbGtfZGF0YS0+Y2xrcyA9IGt6YWxsb2MocXR5ICogc2l6ZW9mKHN0cnVjdCBjbGtfY29yZSAq KSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFjbGtfZGF0YS0+Y2xrcykgewogCQlrZnJlZShjbGtfZGF0 YSk7CiAJCXJldHVybjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3JvY2tjaGlwL2Nsay5jIGIv ZHJpdmVycy9jbGsvcm9ja2NoaXAvY2xrLmMKaW5kZXggY2FkNTJhYi4uYTQ1MThiYSAxMDA2NDQK LS0tIGEvZHJpdmVycy9jbGsvcm9ja2NoaXAvY2xrLmMKKysrIGIvZHJpdmVycy9jbGsvcm9ja2No aXAvY2xrLmMKQEAgLTIxLDcgKzIxLDYgQEAKICAqLwogCiAjaW5jbHVkZSA8bGludXgvc2xhYi5o PgotI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgogI2luY2x1ZGUgPGxpbnV4L2Nsay1wcm92aWRlci5o PgogI2luY2x1ZGUgPGxpbnV4L21mZC9zeXNjb24uaD4KICNpbmNsdWRlIDxsaW51eC9yZWdtYXAu aD4KQEAgLTM4LDcgKzM3LDcgQEAKICAqCiAgKiBzb21ldGltZXMgd2l0aG91dCBvbmUgb2YgdGhv c2UgY29tcG9uZW50cy4KICAqLwotc3RhdGljIHN0cnVjdCBjbGsgKnJvY2tjaGlwX2Nsa19yZWdp c3Rlcl9icmFuY2goY29uc3QgY2hhciAqbmFtZSwKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgKnJv Y2tjaGlwX2Nsa19yZWdpc3Rlcl9icmFuY2goY29uc3QgY2hhciAqbmFtZSwKIAkJY29uc3QgY2hh ciAqKnBhcmVudF9uYW1lcywgdTggbnVtX3BhcmVudHMsIHZvaWQgX19pb21lbSAqYmFzZSwKIAkJ aW50IG11eGRpdl9vZmZzZXQsIHU4IG11eF9zaGlmdCwgdTggbXV4X3dpZHRoLCB1OCBtdXhfZmxh Z3MsCiAJCXU4IGRpdl9zaGlmdCwgdTggZGl2X3dpZHRoLCB1OCBkaXZfZmxhZ3MsCkBAIC00Niw3 ICs0NSw3IEBAIHN0YXRpYyBzdHJ1Y3QgY2xrICpyb2NrY2hpcF9jbGtfcmVnaXN0ZXJfYnJhbmNo KGNvbnN0IGNoYXIgKm5hbWUsCiAJCXU4IGdhdGVfc2hpZnQsIHU4IGdhdGVfZmxhZ3MsIHVuc2ln bmVkIGxvbmcgZmxhZ3MsCiAJCXNwaW5sb2NrX3QgKmxvY2spCiB7Ci0Jc3RydWN0IGNsayAqY2xr OworCXN0cnVjdCBjbGtfY29yZSAqY2xrOwogCXN0cnVjdCBjbGtfbXV4ICptdXggPSBOVUxMOwog CXN0cnVjdCBjbGtfZ2F0ZSAqZ2F0ZSA9IE5VTEw7CiAJc3RydWN0IGNsa19kaXZpZGVyICpkaXYg PSBOVUxMOwpAQCAtMTA0LDEzICsxMDMsMTMgQEAgc3RhdGljIHN0cnVjdCBjbGsgKnJvY2tjaGlw X2Nsa19yZWdpc3Rlcl9icmFuY2goY29uc3QgY2hhciAqbmFtZSwKIAlyZXR1cm4gY2xrOwogfQog Ci1zdGF0aWMgc3RydWN0IGNsayAqcm9ja2NoaXBfY2xrX3JlZ2lzdGVyX2ZyYWNfYnJhbmNoKGNv bnN0IGNoYXIgKm5hbWUsCitzdGF0aWMgc3RydWN0IGNsa19jb3JlICpyb2NrY2hpcF9jbGtfcmVn aXN0ZXJfZnJhY19icmFuY2goY29uc3QgY2hhciAqbmFtZSwKIAkJY29uc3QgY2hhciAqKnBhcmVu dF9uYW1lcywgdTggbnVtX3BhcmVudHMsIHZvaWQgX19pb21lbSAqYmFzZSwKIAkJaW50IG11eGRp dl9vZmZzZXQsIHU4IGRpdl9mbGFncywKIAkJaW50IGdhdGVfb2Zmc2V0LCB1OCBnYXRlX3NoaWZ0 LCB1OCBnYXRlX2ZsYWdzLAogCQl1bnNpZ25lZCBsb25nIGZsYWdzLCBzcGlubG9ja190ICpsb2Nr KQogewotCXN0cnVjdCBjbGsgKmNsazsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmNsazsKIAlzdHJ1Y3Qg Y2xrX2dhdGUgKmdhdGUgPSBOVUxMOwogCXN0cnVjdCBjbGtfZnJhY3Rpb25hbF9kaXZpZGVyICpk aXYgPSBOVUxMOwogCWNvbnN0IHN0cnVjdCBjbGtfb3BzICpkaXZfb3BzID0gTlVMTCwgKmdhdGVf b3BzID0gTlVMTDsKQEAgLTE1Myw3ICsxNTIsNyBAQCBzdGF0aWMgc3RydWN0IGNsayAqcm9ja2No aXBfY2xrX3JlZ2lzdGVyX2ZyYWNfYnJhbmNoKGNvbnN0IGNoYXIgKm5hbWUsCiB9CiAKIHN0YXRp YyBERUZJTkVfU1BJTkxPQ0soY2xrX2xvY2spOwotc3RhdGljIHN0cnVjdCBjbGsgKipjbGtfdGFi bGU7CitzdGF0aWMgc3RydWN0IGNsa19jb3JlICoqY2xrX3RhYmxlOwogc3RhdGljIHZvaWQgX19p b21lbSAqcmVnX2Jhc2U7CiBzdGF0aWMgc3RydWN0IGNsa19vbmVjZWxsX2RhdGEgY2xrX2RhdGE7 CiBzdGF0aWMgc3RydWN0IGRldmljZV9ub2RlICpjcnVfbm9kZTsKQEAgLTE2Niw3ICsxNjUsNyBA QCB2b2lkIF9faW5pdCByb2NrY2hpcF9jbGtfaW5pdChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wLCB2 b2lkIF9faW9tZW0gKmJhc2UsCiAJY3J1X25vZGUgPSBucDsKIAlncmYgPSBFUlJfUFRSKC1FUFJP QkVfREVGRVIpOwogCi0JY2xrX3RhYmxlID0ga2NhbGxvYyhucl9jbGtzLCBzaXplb2Yoc3RydWN0 IGNsayAqKSwgR0ZQX0tFUk5FTCk7CisJY2xrX3RhYmxlID0ga2NhbGxvYyhucl9jbGtzLCBzaXpl b2Yoc3RydWN0IGNsa19jb3JlICopLCBHRlBfS0VSTkVMKTsKIAlpZiAoIWNsa190YWJsZSkKIAkJ cHJfZXJyKCIlczogY291bGQgbm90IGFsbG9jYXRlIGNsb2NrIGxvb2t1cCB0YWJsZVxuIiwgX19m dW5jX18pOwogCkBAIC0xODIsNyArMTgxLDcgQEAgc3RydWN0IHJlZ21hcCAqcm9ja2NoaXBfY2xr X2dldF9ncmYodm9pZCkKIAlyZXR1cm4gZ3JmOwogfQogCi12b2lkIHJvY2tjaGlwX2Nsa19hZGRf bG9va3VwKHN0cnVjdCBjbGsgKmNsaywgdW5zaWduZWQgaW50IGlkKQordm9pZCByb2NrY2hpcF9j bGtfYWRkX2xvb2t1cChzdHJ1Y3QgY2xrX2NvcmUgKmNsaywgdW5zaWduZWQgaW50IGlkKQogewog CWlmIChjbGtfdGFibGUgJiYgaWQpCiAJCWNsa190YWJsZVtpZF0gPSBjbGs7CkBAIC0xOTEsNyAr MTkwLDcgQEAgdm9pZCByb2NrY2hpcF9jbGtfYWRkX2xvb2t1cChzdHJ1Y3QgY2xrICpjbGssIHVu c2lnbmVkIGludCBpZCkKIHZvaWQgX19pbml0IHJvY2tjaGlwX2Nsa19yZWdpc3Rlcl9wbGxzKHN0 cnVjdCByb2NrY2hpcF9wbGxfY2xvY2sgKmxpc3QsCiAJCQkJdW5zaWduZWQgaW50IG5yX3BsbCwg aW50IGdyZl9sb2NrX29mZnNldCkKIHsKLQlzdHJ1Y3QgY2xrICpjbGs7CisJc3RydWN0IGNsa19j b3JlICpjbGs7CiAJaW50IGlkeDsKIAogCWZvciAoaWR4ID0gMDsgaWR4IDwgbnJfcGxsOyBpZHgr KywgbGlzdCsrKSB7CkBAIC0yMTQsNyArMjEzLDcgQEAgdm9pZCBfX2luaXQgcm9ja2NoaXBfY2xr X3JlZ2lzdGVyX2JyYW5jaGVzKAogCQkJCSAgICAgIHN0cnVjdCByb2NrY2hpcF9jbGtfYnJhbmNo ICpsaXN0LAogCQkJCSAgICAgIHVuc2lnbmVkIGludCBucl9jbGspCiB7Ci0Jc3RydWN0IGNsayAq Y2xrID0gTlVMTDsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmNsayA9IE5VTEw7CiAJdW5zaWduZWQgaW50 IGlkeDsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCkBAIC0zMDQsMTAgKzMwMywxMCBAQCB2b2lk IF9faW5pdCByb2NrY2hpcF9jbGtfcHJvdGVjdF9jcml0aWNhbChjb25zdCBjaGFyICpjbG9ja3Nb XSwgaW50IG5jbG9ja3MpCiAKIAkvKiBQcm90ZWN0IHRoZSBjbG9ja3MgdGhhdCBuZWVkcyB0byBz dGF5IG9uICovCiAJZm9yIChpID0gMDsgaSA8IG5jbG9ja3M7IGkrKykgewotCQlzdHJ1Y3QgY2xr ICpjbGsgPSBfX2Nsa19sb29rdXAoY2xvY2tzW2ldKTsKKwkJc3RydWN0IGNsa19jb3JlICpjbGsg PSBfX2Nsa19sb29rdXAoY2xvY2tzW2ldKTsKIAogCQlpZiAoY2xrKQotCQkJY2xrX3ByZXBhcmVf ZW5hYmxlKGNsayk7CisJCQljbGtfcHJvdmlkZXJfcHJlcGFyZV9lbmFibGUoY2xrKTsKIAl9CiB9 CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3JvY2tjaGlwL2Nsay5oIGIvZHJpdmVycy9jbGsv cm9ja2NoaXAvY2xrLmgKaW5kZXggMzk2NTIwMC4uYWM5MmJmOSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9jbGsvcm9ja2NoaXAvY2xrLmgKKysrIGIvZHJpdmVycy9jbGsvcm9ja2NoaXAvY2xrLmgKQEAg LTI0LDcgKzI0LDYgQEAKICNkZWZpbmUgQ0xLX1JPQ0tDSElQX0NMS19ICiAKICNpbmNsdWRlIDxs aW51eC9pby5oPgotI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgogI2luY2x1ZGUgPGxpbnV4L2Nsay1w cm92aWRlci5oPgogCiAjZGVmaW5lIEhJV09SRF9VUERBVEUodmFsLCBtYXNrLCBzaGlmdCkgXApA QCAtMTEzLDcgKzExMiw3IEBAIHN0cnVjdCByb2NrY2hpcF9wbGxfY2xvY2sgewogCQkucmF0ZV90 YWJsZQk9IF9ydGFibGUsCQkJCVwKIAl9CiAKLXN0cnVjdCBjbGsgKnJvY2tjaGlwX2Nsa19yZWdp c3Rlcl9wbGwoZW51bSByb2NrY2hpcF9wbGxfdHlwZSBwbGxfdHlwZSwKK3N0cnVjdCBjbGtfY29y ZSAqcm9ja2NoaXBfY2xrX3JlZ2lzdGVyX3BsbChlbnVtIHJvY2tjaGlwX3BsbF90eXBlIHBsbF90 eXBlLAogCQljb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICoqcGFyZW50X25hbWVzLCB1OCBu dW1fcGFyZW50cywKIAkJdm9pZCBfX2lvbWVtICpiYXNlLCBpbnQgY29uX29mZnNldCwgaW50IGdy Zl9sb2NrX29mZnNldCwKIAkJaW50IGxvY2tfc2hpZnQsIGludCByZWdfbW9kZSwgaW50IG1vZGVf c2hpZnQsCkBAIC0zMjQsNyArMzIzLDcgQEAgc3RydWN0IHJvY2tjaGlwX2Nsa19icmFuY2ggewog dm9pZCByb2NrY2hpcF9jbGtfaW5pdChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wLCB2b2lkIF9faW9t ZW0gKmJhc2UsCiAJCSAgICAgICB1bnNpZ25lZCBsb25nIG5yX2Nsa3MpOwogc3RydWN0IHJlZ21h cCAqcm9ja2NoaXBfY2xrX2dldF9ncmYodm9pZCk7Ci12b2lkIHJvY2tjaGlwX2Nsa19hZGRfbG9v a3VwKHN0cnVjdCBjbGsgKmNsaywgdW5zaWduZWQgaW50IGlkKTsKK3ZvaWQgcm9ja2NoaXBfY2xr X2FkZF9sb29rdXAoc3RydWN0IGNsa19jb3JlICpjbGssIHVuc2lnbmVkIGludCBpZCk7CiB2b2lk IHJvY2tjaGlwX2Nsa19yZWdpc3Rlcl9icmFuY2hlcyhzdHJ1Y3Qgcm9ja2NoaXBfY2xrX2JyYW5j aCAqY2xrX2xpc3QsCiAJCQkJICAgIHVuc2lnbmVkIGludCBucl9jbGspOwogdm9pZCByb2NrY2hp cF9jbGtfcmVnaXN0ZXJfcGxscyhzdHJ1Y3Qgcm9ja2NoaXBfcGxsX2Nsb2NrICpwbGxfbGlzdCwK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3NhbXN1bmcvY2xrLWV4eW5vcy1hdWRzcy5jIGIvZHJp dmVycy9jbGsvc2Ftc3VuZy9jbGstZXh5bm9zLWF1ZHNzLmMKaW5kZXggMTNlYWUxNGMuLmY1NjM5 YmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL3NhbXN1bmcvY2xrLWV4eW5vcy1hdWRzcy5jCisr KyBiL2RyaXZlcnMvY2xrL3NhbXN1bmcvY2xrLWV4eW5vcy1hdWRzcy5jCkBAIC0yNiw3ICsyNiw3 IEBAIGVudW0gZXh5bm9zX2F1ZHNzX2Nsa190eXBlIHsKIH07CiAKIHN0YXRpYyBERUZJTkVfU1BJ TkxPQ0sobG9jayk7Ci1zdGF0aWMgc3RydWN0IGNsayAqKmNsa190YWJsZTsKK3N0YXRpYyBzdHJ1 Y3QgY2xrX2NvcmUgKipjbGtfdGFibGU7CiBzdGF0aWMgdm9pZCBfX2lvbWVtICpyZWdfYmFzZTsK IHN0YXRpYyBzdHJ1Y3QgY2xrX29uZWNlbGxfZGF0YSBjbGtfZGF0YTsKIApAQCAtODMsNyArODMs NyBAQCBzdGF0aWMgaW50IGV4eW5vc19hdWRzc19jbGtfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2Rl dmljZSAqcGRldikKIAljb25zdCBjaGFyICptb3V0X2F1ZHNzX3BbXSA9IHsiZmluX3BsbCIsICJm b3V0X2VwbGwifTsKIAljb25zdCBjaGFyICptb3V0X2kyc19wW10gPSB7Im1vdXRfYXVkc3MiLCAi Y2RjbGswIiwgInNjbGtfYXVkaW8wIn07CiAJY29uc3QgY2hhciAqc2Nsa19wY21fcCA9ICJzY2xr X3BjbTAiOwotCXN0cnVjdCBjbGsgKnBsbF9yZWYsICpwbGxfaW4sICpjZGNsaywgKnNjbGtfYXVk aW8sICpzY2xrX3BjbV9pbjsKKwlzdHJ1Y3QgY2xrX2NvcmUgKnBsbF9yZWYsICpwbGxfaW4sICpj ZGNsaywgKnNjbGtfYXVkaW8sICpzY2xrX3BjbV9pbjsKIAljb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNl X2lkICptYXRjaDsKIAllbnVtIGV4eW5vc19hdWRzc19jbGtfdHlwZSB2YXJpYW50OwogCkBAIC0x MDAsNyArMTAwLDcgQEAgc3RhdGljIGludCBleHlub3NfYXVkc3NfY2xrX3Byb2JlKHN0cnVjdCBw bGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJfQogCiAJY2xrX3RhYmxlID0gZGV2bV9remFsbG9jKCZw ZGV2LT5kZXYsCi0JCQkJc2l6ZW9mKHN0cnVjdCBjbGsgKikgKiBFWFlOT1NfQVVEU1NfTUFYX0NM S1MsCisJCQkJc2l6ZW9mKHN0cnVjdCBjbGtfY29yZSAqKSAqIEVYWU5PU19BVURTU19NQVhfQ0xL UywKIAkJCQlHRlBfS0VSTkVMKTsKIAlpZiAoIWNsa190YWJsZSkKIAkJcmV0dXJuIC1FTk9NRU07 CkBAIC0xMTEsOCArMTExLDggQEAgc3RhdGljIGludCBleHlub3NfYXVkc3NfY2xrX3Byb2JlKHN0 cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJZWxzZQogCQljbGtfZGF0YS5jbGtfbnVtID0g RVhZTk9TX0FVRFNTX01BWF9DTEtTIC0gMTsKIAotCXBsbF9yZWYgPSBkZXZtX2Nsa19nZXQoJnBk ZXYtPmRldiwgInBsbF9yZWYiKTsKLQlwbGxfaW4gPSBkZXZtX2Nsa19nZXQoJnBkZXYtPmRldiwg InBsbF9pbiIpOworCXBsbF9yZWYgPSBkZXZtX2Nsa19wcm92aWRlcl9nZXQoJnBkZXYtPmRldiwg InBsbF9yZWYiKTsKKwlwbGxfaW4gPSBkZXZtX2Nsa19wcm92aWRlcl9nZXQoJnBkZXYtPmRldiwg InBsbF9pbiIpOwogCWlmICghSVNfRVJSKHBsbF9yZWYpKQogCQltb3V0X2F1ZHNzX3BbMF0gPSBf X2Nsa19nZXRfbmFtZShwbGxfcmVmKTsKIAlpZiAoIUlTX0VSUihwbGxfaW4pKQpAQCAtMTIyLDgg KzEyMiw4IEBAIHN0YXRpYyBpbnQgZXh5bm9zX2F1ZHNzX2Nsa19wcm9iZShzdHJ1Y3QgcGxhdGZv cm1fZGV2aWNlICpwZGV2KQogCQkJCUNMS19TRVRfUkFURV9OT19SRVBBUkVOVCwKIAkJCQlyZWdf YmFzZSArIEFTU19DTEtfU1JDLCAwLCAxLCAwLCAmbG9jayk7CiAKLQljZGNsayA9IGRldm1fY2xr X2dldCgmcGRldi0+ZGV2LCAiY2RjbGsiKTsKLQlzY2xrX2F1ZGlvID0gZGV2bV9jbGtfZ2V0KCZw ZGV2LT5kZXYsICJzY2xrX2F1ZGlvIik7CisJY2RjbGsgPSBkZXZtX2Nsa19wcm92aWRlcl9nZXQo JnBkZXYtPmRldiwgImNkY2xrIik7CisJc2Nsa19hdWRpbyA9IGRldm1fY2xrX3Byb3ZpZGVyX2dl dCgmcGRldi0+ZGV2LCAic2Nsa19hdWRpbyIpOwogCWlmICghSVNfRVJSKGNkY2xrKSkKIAkJbW91 dF9pMnNfcFsxXSA9IF9fY2xrX2dldF9uYW1lKGNkY2xrKTsKIAlpZiAoIUlTX0VSUihzY2xrX2F1 ZGlvKSkKQEAgLTE2MSw3ICsxNjEsNyBAQCBzdGF0aWMgaW50IGV4eW5vc19hdWRzc19jbGtfcHJv YmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAkJCQkgInNjbGtfcGNtIiwgQ0xLX1NF VF9SQVRFX1BBUkVOVCwKIAkJCQlyZWdfYmFzZSArIEFTU19DTEtfR0FURSwgNCwgMCwgJmxvY2sp OwogCi0Jc2Nsa19wY21faW4gPSBkZXZtX2Nsa19nZXQoJnBkZXYtPmRldiwgInNjbGtfcGNtX2lu Iik7CisJc2Nsa19wY21faW4gPSBkZXZtX2Nsa19wcm92aWRlcl9nZXQoJnBkZXYtPmRldiwgInNj bGtfcGNtX2luIik7CiAJaWYgKCFJU19FUlIoc2Nsa19wY21faW4pKQogCQlzY2xrX3BjbV9wID0g X19jbGtfZ2V0X25hbWUoc2Nsa19wY21faW4pOwogCWNsa190YWJsZVtFWFlOT1NfU0NMS19QQ01d ID0gY2xrX3JlZ2lzdGVyX2dhdGUoTlVMTCwgInNjbGtfcGNtIiwKZGlmZiAtLWdpdCBhL2RyaXZl cnMvY2xrL3NhbXN1bmcvY2xrLWV4eW5vcy1jbGtvdXQuYyBiL2RyaXZlcnMvY2xrL3NhbXN1bmcv Y2xrLWV4eW5vcy1jbGtvdXQuYwppbmRleCAzYTdjYjI1Li4wYWQ3ZGVlIDEwMDY0NAotLS0gYS9k cml2ZXJzL2Nsay9zYW1zdW5nL2Nsay1leHlub3MtY2xrb3V0LmMKKysrIGIvZHJpdmVycy9jbGsv c2Ftc3VuZy9jbGstZXh5bm9zLWNsa291dC5jCkBAIC05LDcgKzksNiBAQAogICogQ2xvY2sgZHJp dmVyIGZvciBFeHlub3MgY2xvY2sgb3V0cHV0CiAgKi8KIAotI2luY2x1ZGUgPGxpbnV4L2Nsay5o PgogI2luY2x1ZGUgPGxpbnV4L2Nsa2Rldi5oPgogI2luY2x1ZGUgPGxpbnV4L2Nsay1wcm92aWRl ci5oPgogI2luY2x1ZGUgPGxpbnV4L29mLmg+CkBAIC0zMCw3ICsyOSw3IEBAIHN0cnVjdCBleHlu b3NfY2xrb3V0IHsKIAlzdHJ1Y3QgY2xrX211eCBtdXg7CiAJc3BpbmxvY2tfdCBzbG9jazsKIAlz dHJ1Y3QgY2xrX29uZWNlbGxfZGF0YSBkYXRhOwotCXN0cnVjdCBjbGsgKmNsa190YWJsZVtFWFlO T1NfQ0xLT1VUX05SX0NMS1NdOworCXN0cnVjdCBjbGtfY29yZSAqY2xrX3RhYmxlW0VYWU5PU19D TEtPVVRfTlJfQ0xLU107CiAJdm9pZCBfX2lvbWVtICpyZWc7CiAJdTMyIHBtdV9kZWJ1Z19zYXZl OwogfTsKQEAgLTU3LDcgKzU2LDcgQEAgc3RhdGljIHN0cnVjdCBzeXNjb3JlX29wcyBleHlub3Nf Y2xrb3V0X3N5c2NvcmVfb3BzID0gewogc3RhdGljIHZvaWQgX19pbml0IGV4eW5vc19jbGtvdXRf aW5pdChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUsIHUzMiBtdXhfbWFzaykKIHsKIAljb25zdCBj aGFyICpwYXJlbnRfbmFtZXNbRVhZTk9TX0NMS09VVF9QQVJFTlRTXTsKLQlzdHJ1Y3QgY2xrICpw YXJlbnRzW0VYWU5PU19DTEtPVVRfUEFSRU5UU107CisJc3RydWN0IGNsa19jb3JlICpwYXJlbnRz W0VYWU5PU19DTEtPVVRfUEFSRU5UU107CiAJaW50IHBhcmVudF9jb3VudDsKIAlpbnQgcmV0Owog CWludCBpOwpAQCAtNzMsNyArNzIsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgZXh5bm9zX2Nsa291 dF9pbml0KHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSwgdTMyIG11eF9tYXNrKQogCQljaGFyIG5h bWVbXSA9ICJjbGtvdXRYWCI7CiAKIAkJc25wcmludGYobmFtZSwgc2l6ZW9mKG5hbWUpLCAiY2xr b3V0JWQiLCBpKTsKLQkJcGFyZW50c1tpXSA9IG9mX2Nsa19nZXRfYnlfbmFtZShub2RlLCBuYW1l KTsKKwkJcGFyZW50c1tpXSA9IG9mX2Nsa19wcm92aWRlcl9nZXRfYnlfbmFtZShub2RlLCBuYW1l KTsKIAkJaWYgKElTX0VSUihwYXJlbnRzW2ldKSkgewogCQkJcGFyZW50X25hbWVzW2ldID0gIm5v bmUiOwogCQkJY29udGludWU7CkBAIC0xMjUsNyArMTI0LDcgQEAgZXJyX3VubWFwOgogY2xrc19w dXQ6CiAJZm9yIChpID0gMDsgaSA8IEVYWU5PU19DTEtPVVRfUEFSRU5UUzsgKytpKQogCQlpZiAo IUlTX0VSUihwYXJlbnRzW2ldKSkKLQkJCWNsa19wdXQocGFyZW50c1tpXSk7CisJCQlfX2Nsa19w dXQocGFyZW50c1tpXSk7CiBmcmVlX2Nsa291dDoKIAlrZnJlZShjbGtvdXQpOwogCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2Nsay9zYW1zdW5nL2Nsay1leHlub3MzMjUwLmMgYi9kcml2ZXJzL2Nsay9z YW1zdW5nL2Nsay1leHlub3MzMjUwLmMKaW5kZXggZGM4NWY4ZS4uNTc0MmU3NiAxMDA2NDQKLS0t IGEvZHJpdmVycy9jbGsvc2Ftc3VuZy9jbGstZXh5bm9zMzI1MC5jCisrKyBiL2RyaXZlcnMvY2xr L3NhbXN1bmcvY2xrLWV4eW5vczMyNTAuYwpAQCAtOCw3ICs4LDYgQEAKICAqIENvbW1vbiBDbG9j ayBGcmFtZXdvcmsgc3VwcG9ydCBmb3IgRXh5bm9zMzI1MCBTb0MuCiAgKi8KIAotI2luY2x1ZGUg PGxpbnV4L2Nsay5oPgogI2luY2x1ZGUgPGxpbnV4L2Nsa2Rldi5oPgogI2luY2x1ZGUgPGxpbnV4 L2Nsay1wcm92aWRlci5oPgogI2luY2x1ZGUgPGxpbnV4L29mLmg+CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2Nsay9zYW1zdW5nL2Nsay1leHlub3M0LmMgYi9kcml2ZXJzL2Nsay9zYW1zdW5nL2Nsay1l eHlub3M0LmMKaW5kZXggYWMxNjNkNy4uNWQ3N2RhMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsv c2Ftc3VuZy9jbGstZXh5bm9zNC5jCisrKyBiL2RyaXZlcnMvY2xrL3NhbXN1bmcvY2xrLWV4eW5v czQuYwpAQCAtMTEsNyArMTEsNiBAQAogKi8KIAogI2luY2x1ZGUgPGR0LWJpbmRpbmdzL2Nsb2Nr L2V4eW5vczQuaD4KLSNpbmNsdWRlIDxsaW51eC9jbGsuaD4KICNpbmNsdWRlIDxsaW51eC9jbGtk ZXYuaD4KICNpbmNsdWRlIDxsaW51eC9jbGstcHJvdmlkZXIuaD4KICNpbmNsdWRlIDxsaW51eC9v Zi5oPgpAQCAtMTIzMCwxOSArMTIyOSwxOSBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBleHlub3M0 X2dldF94b20odm9pZCkKIHN0YXRpYyB2b2lkIF9faW5pdCBleHlub3M0X2Nsa19yZWdpc3Rlcl9m aW5wbGwoc3RydWN0IHNhbXN1bmdfY2xrX3Byb3ZpZGVyICpjdHgpCiB7CiAJc3RydWN0IHNhbXN1 bmdfZml4ZWRfcmF0ZV9jbG9jayBmY2xrOwotCXN0cnVjdCBjbGsgKmNsazsKKwlzdHJ1Y3QgY2xr X2NvcmUgKmNsazsKIAl1bnNpZ25lZCBsb25nIGZpbnBsbF9mID0gMjQwMDAwMDA7CiAJY2hhciAq cGFyZW50X25hbWU7CiAJdW5zaWduZWQgaW50IHhvbSA9IGV4eW5vczRfZ2V0X3hvbSgpOwogCiAJ cGFyZW50X25hbWUgPSB4b20gJiAxID8gInh1c2J4dGkiIDogInh4dGkiOwotCWNsayA9IGNsa19n ZXQoTlVMTCwgcGFyZW50X25hbWUpOworCWNsayA9IGNsa19wcm92aWRlcl9nZXQoTlVMTCwgcGFy ZW50X25hbWUpOwogCWlmIChJU19FUlIoY2xrKSkgewogCQlwcl9lcnIoIiVzOiBmYWlsZWQgdG8g bG9va3VwIHBhcmVudCBjbG9jayAlcywgYXNzdW1pbmcgIgogCQkJImZpbl9wbGwgY2xvY2sgZnJl cXVlbmN5IGlzIDI0TUh6XG4iLCBfX2Z1bmNfXywKIAkJCXBhcmVudF9uYW1lKTsKIAl9IGVsc2Ug ewotCQlmaW5wbGxfZiA9IGNsa19nZXRfcmF0ZShjbGspOworCQlmaW5wbGxfZiA9IGNsa19wcm92 aWRlcl9nZXRfcmF0ZShjbGspOwogCX0KIAogCWZjbGsuaWQgPSBDTEtfRklOX1BMTDsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvY2xrL3NhbXN1bmcvY2xrLWV4eW5vczUyNTAuYyBiL2RyaXZlcnMvY2xr L3NhbXN1bmcvY2xrLWV4eW5vczUyNTAuYwppbmRleCA3MGVjM2QyLi42MjNlNjhmIDEwMDY0NAot LS0gYS9kcml2ZXJzL2Nsay9zYW1zdW5nL2Nsay1leHlub3M1MjUwLmMKKysrIGIvZHJpdmVycy9j bGsvc2Ftc3VuZy9jbGstZXh5bm9zNTI1MC5jCkBAIC0xMSw3ICsxMSw2IEBACiAqLwogCiAjaW5j bHVkZSA8ZHQtYmluZGluZ3MvY2xvY2svZXh5bm9zNTI1MC5oPgotI2luY2x1ZGUgPGxpbnV4L2Ns ay5oPgogI2luY2x1ZGUgPGxpbnV4L2Nsa2Rldi5oPgogI2luY2x1ZGUgPGxpbnV4L2Nsay1wcm92 aWRlci5oPgogI2luY2x1ZGUgPGxpbnV4L29mLmg+CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9z YW1zdW5nL2Nsay1leHlub3M1MjYwLmMgYi9kcml2ZXJzL2Nsay9zYW1zdW5nL2Nsay1leHlub3M1 MjYwLmMKaW5kZXggY2UzZGU5Ny4uNWEzZDYyMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvc2Ft c3VuZy9jbGstZXh5bm9zNTI2MC5jCisrKyBiL2RyaXZlcnMvY2xrL3NhbXN1bmcvY2xrLWV4eW5v czUyNjAuYwpAQCAtOSw3ICs5LDYgQEAKICAqIENvbW1vbiBDbG9jayBGcmFtZXdvcmsgc3VwcG9y dCBmb3IgRXh5bm9zNTI2MCBTb0MuCiAgKi8KIAotI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgogI2lu Y2x1ZGUgPGxpbnV4L2Nsa2Rldi5oPgogI2luY2x1ZGUgPGxpbnV4L2Nsay1wcm92aWRlci5oPgog I2luY2x1ZGUgPGxpbnV4L29mLmg+CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9zYW1zdW5nL2Ns ay1leHlub3M1NDEwLmMgYi9kcml2ZXJzL2Nsay9zYW1zdW5nL2Nsay1leHlub3M1NDEwLmMKaW5k ZXggMjMxNDc1Yi4uNTQ2YjMyZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvc2Ftc3VuZy9jbGst ZXh5bm9zNTQxMC5jCisrKyBiL2RyaXZlcnMvY2xrL3NhbXN1bmcvY2xrLWV4eW5vczU0MTAuYwpA QCAtMTEsNyArMTEsNiBAQAogCiAjaW5jbHVkZSA8ZHQtYmluZGluZ3MvY2xvY2svZXh5bm9zNTQx MC5oPgogCi0jaW5jbHVkZSA8bGludXgvY2xrLmg+CiAjaW5jbHVkZSA8bGludXgvY2xrZGV2Lmg+ CiAjaW5jbHVkZSA8bGludXgvY2xrLXByb3ZpZGVyLmg+CiAjaW5jbHVkZSA8bGludXgvb2YuaD4K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3NhbXN1bmcvY2xrLWV4eW5vczU0MjAuYyBiL2RyaXZl cnMvY2xrL3NhbXN1bmcvY2xrLWV4eW5vczU0MjAuYwppbmRleCA4NDhkNjAyLi4wMjI5Y2M5IDEw MDY0NAotLS0gYS9kcml2ZXJzL2Nsay9zYW1zdW5nL2Nsay1leHlub3M1NDIwLmMKKysrIGIvZHJp dmVycy9jbGsvc2Ftc3VuZy9jbGstZXh5bm9zNTQyMC5jCkBAIC0xMSw3ICsxMSw2IEBACiAqLwog CiAjaW5jbHVkZSA8ZHQtYmluZGluZ3MvY2xvY2svZXh5bm9zNTQyMC5oPgotI2luY2x1ZGUgPGxp bnV4L2Nsay5oPgogI2luY2x1ZGUgPGxpbnV4L2Nsa2Rldi5oPgogI2luY2x1ZGUgPGxpbnV4L2Ns ay1wcm92aWRlci5oPgogI2luY2x1ZGUgPGxpbnV4L29mLmg+CmRpZmYgLS1naXQgYS9kcml2ZXJz L2Nsay9zYW1zdW5nL2Nsay1leHlub3M1NDQwLmMgYi9kcml2ZXJzL2Nsay9zYW1zdW5nL2Nsay1l eHlub3M1NDQwLmMKaW5kZXggMDBkMWQwMC4uOGFkZWFhMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9j bGsvc2Ftc3VuZy9jbGstZXh5bm9zNTQ0MC5jCisrKyBiL2RyaXZlcnMvY2xrL3NhbXN1bmcvY2xr LWV4eW5vczU0NDAuYwpAQCAtMTAsNyArMTAsNiBAQAogKi8KIAogI2luY2x1ZGUgPGR0LWJpbmRp bmdzL2Nsb2NrL2V4eW5vczU0NDAuaD4KLSNpbmNsdWRlIDxsaW51eC9jbGsuaD4KICNpbmNsdWRl IDxsaW51eC9jbGtkZXYuaD4KICNpbmNsdWRlIDxsaW51eC9jbGstcHJvdmlkZXIuaD4KICNpbmNs dWRlIDxsaW51eC9vZi5oPgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvc2Ftc3VuZy9jbGstcGxs LmMgYi9kcml2ZXJzL2Nsay9zYW1zdW5nL2Nsay1wbGwuYwppbmRleCBiMDdmYWQyLi5hYWYyMzRh IDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay9zYW1zdW5nL2Nsay1wbGwuYworKysgYi9kcml2ZXJz L2Nsay9zYW1zdW5nL2Nsay1wbGwuYwpAQCAtOTEwLDEyICs5MTAsMTIgQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCBjbGtfb3BzIHNhbXN1bmdfcGxsMjU1MHhfY2xrX29wcyA9IHsKIAkucmVjYWxjX3Jh dGUgPSBzYW1zdW5nX3BsbDI1NTB4X3JlY2FsY19yYXRlLAogfTsKIAotc3RydWN0IGNsayAqIF9f aW5pdCBzYW1zdW5nX2Nsa19yZWdpc3Rlcl9wbGwyNTUweChjb25zdCBjaGFyICpuYW1lLAorc3Ry dWN0IGNsa19jb3JlICogX19pbml0IHNhbXN1bmdfY2xrX3JlZ2lzdGVyX3BsbDI1NTB4KGNvbnN0 IGNoYXIgKm5hbWUsCiAJCQljb25zdCBjaGFyICpwbmFtZSwgY29uc3Qgdm9pZCBfX2lvbWVtICpy ZWdfYmFzZSwKIAkJCWNvbnN0IHVuc2lnbmVkIGxvbmcgb2Zmc2V0KQogewogCXN0cnVjdCBzYW1z dW5nX2Nsa19wbGwyNTUweCAqcGxsOwotCXN0cnVjdCBjbGsgKmNsazsKKwlzdHJ1Y3QgY2xrX2Nv cmUgKmNsazsKIAlzdHJ1Y3QgY2xrX2luaXRfZGF0YSBpbml0OwogCiAJcGxsID0ga3phbGxvYyhz aXplb2YoKnBsbCksIEdGUF9LRVJORUwpOwpAQCAtMTE0OSw3ICsxMTQ5LDcgQEAgc3RhdGljIHZv aWQgX19pbml0IF9zYW1zdW5nX2Nsa19yZWdpc3Rlcl9wbGwoc3RydWN0IHNhbXN1bmdfY2xrX3By b3ZpZGVyICpjdHgsCiAJCQkJdm9pZCBfX2lvbWVtICpiYXNlKQogewogCXN0cnVjdCBzYW1zdW5n X2Nsa19wbGwgKnBsbDsKLQlzdHJ1Y3QgY2xrICpjbGs7CisJc3RydWN0IGNsa19jb3JlICpjbGs7 CiAJc3RydWN0IGNsa19pbml0X2RhdGEgaW5pdDsKIAlpbnQgcmV0LCBsZW47CiAKZGlmZiAtLWdp dCBhL2RyaXZlcnMvY2xrL3NhbXN1bmcvY2xrLXBsbC5oIGIvZHJpdmVycy9jbGsvc2Ftc3VuZy9j bGstcGxsLmgKaW5kZXggYzBlZDRkNC4uODFhZjM0NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsv c2Ftc3VuZy9jbGstcGxsLmgKKysrIGIvZHJpdmVycy9jbGsvc2Ftc3VuZy9jbGstcGxsLmgKQEAg LTk3LDcgKzk3LDcgQEAgc3RydWN0IHNhbXN1bmdfcGxsX3JhdGVfdGFibGUgewogCXVuc2lnbmVk IGludCB2c2VsOwogfTsKIAotZXh0ZXJuIHN0cnVjdCBjbGsgKiBfX2luaXQgc2Ftc3VuZ19jbGtf cmVnaXN0ZXJfcGxsMjU1MHgoY29uc3QgY2hhciAqbmFtZSwKK2V4dGVybiBzdHJ1Y3QgY2xrX2Nv cmUgKiBfX2luaXQgc2Ftc3VuZ19jbGtfcmVnaXN0ZXJfcGxsMjU1MHgoY29uc3QgY2hhciAqbmFt ZSwKIAkJCWNvbnN0IGNoYXIgKnBuYW1lLCBjb25zdCB2b2lkIF9faW9tZW0gKnJlZ19iYXNlLAog CQkJY29uc3QgdW5zaWduZWQgbG9uZyBvZmZzZXQpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Ns ay9zYW1zdW5nL2Nsay1zM2MyNDEwLWRjbGsuYyBiL2RyaXZlcnMvY2xrL3NhbXN1bmcvY2xrLXMz YzI0MTAtZGNsay5jCmluZGV4IDA0NDljYzAuLjA1MzU0YmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Y2xrL3NhbXN1bmcvY2xrLXMzYzI0MTAtZGNsay5jCisrKyBiL2RyaXZlcnMvY2xrL3NhbXN1bmcv Y2xrLXMzYzI0MTAtZGNsay5jCkBAIC04NywxMiArODcsMTIgQEAgY29uc3Qgc3RydWN0IGNsa19v cHMgczNjMjR4eF9jbGtvdXRfb3BzID0gewogCS5kZXRlcm1pbmVfcmF0ZSA9IF9fY2xrX211eF9k ZXRlcm1pbmVfcmF0ZSwKIH07CiAKLXN0cnVjdCBjbGsgKnMzYzI0eHhfcmVnaXN0ZXJfY2xrb3V0 KHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3QgY2hhciAqbmFtZSwKK3N0cnVjdCBjbGtfY29yZSAq czNjMjR4eF9yZWdpc3Rlcl9jbGtvdXQoc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCBjaGFyICpu YW1lLAogCQljb25zdCBjaGFyICoqcGFyZW50X25hbWVzLCB1OCBudW1fcGFyZW50cywKIAkJdTgg c2hpZnQsIHUzMiBtYXNrKQogewogCXN0cnVjdCBzM2MyNHh4X2Nsa291dCAqY2xrb3V0OwotCXN0 cnVjdCBjbGsgKmNsazsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmNsazsKIAlzdHJ1Y3QgY2xrX2luaXRf ZGF0YSBpbml0OwogCiAJLyogYWxsb2NhdGUgdGhlIGNsa291dCAqLwpAQCAtMjM3LDcgKzIzNyw3 IEBAIHN0YXRpYyBpbnQgczNjMjR4eF9kY2xrX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ug KnBkZXYpCiB7CiAJc3RydWN0IHMzYzI0eHhfZGNsayAqczNjMjR4eF9kY2xrOwogCXN0cnVjdCBy ZXNvdXJjZSAqbWVtOwotCXN0cnVjdCBjbGsgKipjbGtfdGFibGU7CisJc3RydWN0IGNsa19jb3Jl ICoqY2xrX3RhYmxlOwogCXN0cnVjdCBzM2MyNHh4X2RjbGtfZHJ2X2RhdGEgKmRjbGtfdmFyaWFu dDsKIAlpbnQgcmV0LCBpOwogCkBAIC0yNTEsNyArMjUxLDcgQEAgc3RhdGljIGludCBzM2MyNHh4 X2RjbGtfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlzcGluX2xvY2tfaW5p dCgmczNjMjR4eF9kY2xrLT5kY2xrX2xvY2spOwogCiAJY2xrX3RhYmxlID0gZGV2bV9remFsbG9j KCZwZGV2LT5kZXYsCi0JCQkJIHNpemVvZihzdHJ1Y3QgY2xrICopICogRENMS19NQVhfQ0xLUywK KwkJCQkgc2l6ZW9mKHN0cnVjdCBjbGtfY29yZSAqKSAqIERDTEtfTUFYX0NMS1MsCiAJCQkJIEdG UF9LRVJORUwpOwogCWlmICghY2xrX3RhYmxlKQogCQlyZXR1cm4gLUVOT01FTTsKQEAgLTMyOSwy MSArMzI5LDIxIEBAIHN0YXRpYyBpbnQgczNjMjR4eF9kY2xrX3Byb2JlKHN0cnVjdCBwbGF0Zm9y bV9kZXZpY2UgKnBkZXYpCiAJczNjMjR4eF9kY2xrLT5kY2xrMV9kaXZfY2hhbmdlX25iLm5vdGlm aWVyX2NhbGwgPQogCQkJCQkJczNjMjR4eF9kY2xrMV9kaXZfbm90aWZ5OwogCi0JcmV0ID0gY2xr X25vdGlmaWVyX3JlZ2lzdGVyKGNsa190YWJsZVtESVZfRENMSzBdLAotCQkJCSAgICAmczNjMjR4 eF9kY2xrLT5kY2xrMF9kaXZfY2hhbmdlX25iKTsKKwlyZXQgPSBjbGtfcHJvdmlkZXJfbm90aWZp ZXJfcmVnaXN0ZXIoY2xrX3RhYmxlW0RJVl9EQ0xLMF0sCisJCQkJCSAgICAgJnMzYzI0eHhfZGNs ay0+ZGNsazBfZGl2X2NoYW5nZV9uYik7CiAJaWYgKHJldCkKIAkJZ290byBlcnJfY2xrX3JlZ2lz dGVyOwogCi0JcmV0ID0gY2xrX25vdGlmaWVyX3JlZ2lzdGVyKGNsa190YWJsZVtESVZfRENMSzFd LAotCQkJCSAgICAmczNjMjR4eF9kY2xrLT5kY2xrMV9kaXZfY2hhbmdlX25iKTsKKwlyZXQgPSBj bGtfcHJvdmlkZXJfbm90aWZpZXJfcmVnaXN0ZXIoY2xrX3RhYmxlW0RJVl9EQ0xLMV0sCisJCQkJ CSAgICAgJnMzYzI0eHhfZGNsay0+ZGNsazFfZGl2X2NoYW5nZV9uYik7CiAJaWYgKHJldCkKIAkJ Z290byBlcnJfZGNsa19ub3RpZnk7CiAKIAlyZXR1cm4gMDsKIAogZXJyX2RjbGtfbm90aWZ5Ogot CWNsa19ub3RpZmllcl91bnJlZ2lzdGVyKGNsa190YWJsZVtESVZfRENMSzBdLAotCQkJCSZzM2My NHh4X2RjbGstPmRjbGswX2Rpdl9jaGFuZ2VfbmIpOworCWNsa19wcm92aWRlcl9ub3RpZmllcl91 bnJlZ2lzdGVyKGNsa190YWJsZVtESVZfRENMSzBdLAorCQkJCQkgJnMzYzI0eHhfZGNsay0+ZGNs azBfZGl2X2NoYW5nZV9uYik7CiBlcnJfY2xrX3JlZ2lzdGVyOgogCWZvciAoaSA9IDA7IGkgPCBE Q0xLX01BWF9DTEtTOyBpKyspCiAJCWlmIChjbGtfdGFibGVbaV0gJiYgIUlTX0VSUihjbGtfdGFi bGVbaV0pKQpAQCAtMzU1LDEzICszNTUsMTMgQEAgZXJyX2Nsa19yZWdpc3RlcjoKIHN0YXRpYyBp bnQgczNjMjR4eF9kY2xrX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogewog CXN0cnVjdCBzM2MyNHh4X2RjbGsgKnMzYzI0eHhfZGNsayA9IHBsYXRmb3JtX2dldF9kcnZkYXRh KHBkZXYpOwotCXN0cnVjdCBjbGsgKipjbGtfdGFibGUgPSBzM2MyNHh4X2RjbGstPmNsa19kYXRh LmNsa3M7CisJc3RydWN0IGNsa19jb3JlICoqY2xrX3RhYmxlID0gczNjMjR4eF9kY2xrLT5jbGtf ZGF0YS5jbGtzOwogCWludCBpOwogCi0JY2xrX25vdGlmaWVyX3VucmVnaXN0ZXIoY2xrX3RhYmxl W0RJVl9EQ0xLMV0sCi0JCQkJJnMzYzI0eHhfZGNsay0+ZGNsazFfZGl2X2NoYW5nZV9uYik7Ci0J Y2xrX25vdGlmaWVyX3VucmVnaXN0ZXIoY2xrX3RhYmxlW0RJVl9EQ0xLMF0sCi0JCQkJJnMzYzI0 eHhfZGNsay0+ZGNsazBfZGl2X2NoYW5nZV9uYik7CisJY2xrX3Byb3ZpZGVyX25vdGlmaWVyX3Vu cmVnaXN0ZXIoY2xrX3RhYmxlW0RJVl9EQ0xLMV0sCisJCQkJCSAmczNjMjR4eF9kY2xrLT5kY2xr MV9kaXZfY2hhbmdlX25iKTsKKwljbGtfcHJvdmlkZXJfbm90aWZpZXJfdW5yZWdpc3RlcihjbGtf dGFibGVbRElWX0RDTEswXSwKKwkJCQkJICZzM2MyNHh4X2RjbGstPmRjbGswX2Rpdl9jaGFuZ2Vf bmIpOwogCiAJZm9yIChpID0gMDsgaSA8IERDTEtfTUFYX0NMS1M7IGkrKykKIAkJY2xrX3VucmVn aXN0ZXIoY2xrX3RhYmxlW2ldKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3NhbXN1bmcvY2xr LXMzYzI0MTAuYyBiL2RyaXZlcnMvY2xrL3NhbXN1bmcvY2xrLXMzYzI0MTAuYwppbmRleCA1ZDJm MDM0Li5hZjE1MTU2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay9zYW1zdW5nL2Nsay1zM2MyNDEw LmMKKysrIGIvZHJpdmVycy9jbGsvc2Ftc3VuZy9jbGstczNjMjQxMC5jCkBAIC04LDcgKzgsNiBA QAogICogQ29tbW9uIENsb2NrIEZyYW1ld29yayBzdXBwb3J0IGZvciBTM0MyNDEwIGFuZCBmb2xs b3dpbmcgU29Dcy4KICAqLwogCi0jaW5jbHVkZSA8bGludXgvY2xrLmg+CiAjaW5jbHVkZSA8bGlu dXgvY2xrZGV2Lmg+CiAjaW5jbHVkZSA8bGludXgvY2xrLXByb3ZpZGVyLmg+CiAjaW5jbHVkZSA8 bGludXgvb2YuaD4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3NhbXN1bmcvY2xrLXMzYzI0MTIu YyBiL2RyaXZlcnMvY2xrL3NhbXN1bmcvY2xrLXMzYzI0MTIuYwppbmRleCAyY2VlZGFmLi5iYjM0 OWZhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay9zYW1zdW5nL2Nsay1zM2MyNDEyLmMKKysrIGIv ZHJpdmVycy9jbGsvc2Ftc3VuZy9jbGstczNjMjQxMi5jCkBAIC04LDcgKzgsNiBAQAogICogQ29t bW9uIENsb2NrIEZyYW1ld29yayBzdXBwb3J0IGZvciBTM0MyNDEyIGFuZCBTM0MyNDEzLgogICov CiAKLSNpbmNsdWRlIDxsaW51eC9jbGsuaD4KICNpbmNsdWRlIDxsaW51eC9jbGtkZXYuaD4KICNp bmNsdWRlIDxsaW51eC9jbGstcHJvdmlkZXIuaD4KICNpbmNsdWRlIDxsaW51eC9vZi5oPgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9jbGsvc2Ftc3VuZy9jbGstczNjMjQ0My5jIGIvZHJpdmVycy9jbGsv c2Ftc3VuZy9jbGstczNjMjQ0My5jCmluZGV4IDBjM2MxODIuLjU4MTk1NTMgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvY2xrL3NhbXN1bmcvY2xrLXMzYzI0NDMuYworKysgYi9kcml2ZXJzL2Nsay9zYW1z dW5nL2Nsay1zM2MyNDQzLmMKQEAgLTgsNyArOCw2IEBACiAgKiBDb21tb24gQ2xvY2sgRnJhbWV3 b3JrIHN1cHBvcnQgZm9yIFMzQzI0NDMgYW5kIGZvbGxvd2luZyBTb0NzLgogICovCiAKLSNpbmNs dWRlIDxsaW51eC9jbGsuaD4KICNpbmNsdWRlIDxsaW51eC9jbGtkZXYuaD4KICNpbmNsdWRlIDxs aW51eC9jbGstcHJvdmlkZXIuaD4KICNpbmNsdWRlIDxsaW51eC9vZi5oPgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9jbGsvc2Ftc3VuZy9jbGstczNjNjR4eC5jIGIvZHJpdmVycy9jbGsvc2Ftc3VuZy9j bGstczNjNjR4eC5jCmluZGV4IDBmNTkwZTUuLjdkYWQ2NzUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Y2xrL3NhbXN1bmcvY2xrLXMzYzY0eHguYworKysgYi9kcml2ZXJzL2Nsay9zYW1zdW5nL2Nsay1z M2M2NHh4LmMKQEAgLTgsNyArOCw2IEBACiAgKiBDb21tb24gQ2xvY2sgRnJhbWV3b3JrIHN1cHBv cnQgZm9yIGFsbCBTM0M2NHh4IFNvQ3MuCiAqLwogCi0jaW5jbHVkZSA8bGludXgvY2xrLmg+CiAj aW5jbHVkZSA8bGludXgvY2xrZGV2Lmg+CiAjaW5jbHVkZSA8bGludXgvY2xrLXByb3ZpZGVyLmg+ CiAjaW5jbHVkZSA8bGludXgvb2YuaD4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3NhbXN1bmcv Y2xrLXM1cHYyMTAtYXVkc3MuYyBiL2RyaXZlcnMvY2xrL3NhbXN1bmcvY2xrLXM1cHYyMTAtYXVk c3MuYwppbmRleCBhODA1M2I0Li5mN2I3N2U1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay9zYW1z dW5nL2Nsay1zNXB2MjEwLWF1ZHNzLmMKKysrIGIvZHJpdmVycy9jbGsvc2Ftc3VuZy9jbGstczVw djIxMC1hdWRzcy5jCkBAIC0yNCw3ICsyNCw3IEBACiAjaW5jbHVkZSA8ZHQtYmluZGluZ3MvY2xv Y2svczVwdjIxMC1hdWRzcy5oPgogCiBzdGF0aWMgREVGSU5FX1NQSU5MT0NLKGxvY2spOwotc3Rh dGljIHN0cnVjdCBjbGsgKipjbGtfdGFibGU7CitzdGF0aWMgc3RydWN0IGNsa19jb3JlICoqY2xr X3RhYmxlOwogc3RhdGljIHZvaWQgX19pb21lbSAqcmVnX2Jhc2U7CiBzdGF0aWMgc3RydWN0IGNs a19vbmVjZWxsX2RhdGEgY2xrX2RhdGE7CiAKQEAgLTcxLDcgKzcxLDcgQEAgc3RhdGljIGludCBz NXB2MjEwX2F1ZHNzX2Nsa19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCWNv bnN0IGNoYXIgKm1vdXRfYXVkc3NfcFsyXTsKIAljb25zdCBjaGFyICptb3V0X2kyc19wWzNdOwog CWNvbnN0IGNoYXIgKmhjbGtfcDsKLQlzdHJ1Y3QgY2xrICpoY2xrLCAqcGxsX3JlZiwgKnBsbF9p biwgKmNkY2xrLCAqc2Nsa19hdWRpbzsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmhjbGssICpwbGxfcmVm LCAqcGxsX2luLCAqY2RjbGssICpzY2xrX2F1ZGlvOwogCiAJcmVzID0gcGxhdGZvcm1fZ2V0X3Jl c291cmNlKHBkZXYsIElPUkVTT1VSQ0VfTUVNLCAwKTsKIAlyZWdfYmFzZSA9IGRldm1faW9yZW1h cF9yZXNvdXJjZSgmcGRldi0+ZGV2LCByZXMpOwpAQCAtODEsNyArODEsNyBAQCBzdGF0aWMgaW50 IHM1cHYyMTBfYXVkc3NfY2xrX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJ fQogCiAJY2xrX3RhYmxlID0gZGV2bV9remFsbG9jKCZwZGV2LT5kZXYsCi0JCQkJc2l6ZW9mKHN0 cnVjdCBjbGsgKikgKiBBVURTU19NQVhfQ0xLUywKKwkJCQlzaXplb2Yoc3RydWN0IGNsa19jb3Jl ICopICogQVVEU1NfTUFYX0NMS1MsCiAJCQkJR0ZQX0tFUk5FTCk7CiAJaWYgKCFjbGtfdGFibGUp CiAJCXJldHVybiAtRU5PTUVNOwpAQCAtODksMjcgKzg5LDI3IEBAIHN0YXRpYyBpbnQgczVwdjIx MF9hdWRzc19jbGtfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAljbGtfZGF0 YS5jbGtzID0gY2xrX3RhYmxlOwogCWNsa19kYXRhLmNsa19udW0gPSBBVURTU19NQVhfQ0xLUzsK IAotCWhjbGsgPSBkZXZtX2Nsa19nZXQoJnBkZXYtPmRldiwgImhjbGsiKTsKKwloY2xrID0gZGV2 bV9jbGtfcHJvdmlkZXJfZ2V0KCZwZGV2LT5kZXYsICJoY2xrIik7CiAJaWYgKElTX0VSUihoY2xr KSkgewogCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJmYWlsZWQgdG8gZ2V0IGhjbGsgY2xvY2tcbiIp OwogCQlyZXR1cm4gUFRSX0VSUihoY2xrKTsKIAl9CiAKLQlwbGxfaW4gPSBkZXZtX2Nsa19nZXQo JnBkZXYtPmRldiwgImZvdXRfZXBsbCIpOworCXBsbF9pbiA9IGRldm1fY2xrX3Byb3ZpZGVyX2dl dCgmcGRldi0+ZGV2LCAiZm91dF9lcGxsIik7CiAJaWYgKElTX0VSUihwbGxfaW4pKSB7CiAJCWRl dl9lcnIoJnBkZXYtPmRldiwgImZhaWxlZCB0byBnZXQgZm91dF9lcGxsIGNsb2NrXG4iKTsKIAkJ cmV0dXJuIFBUUl9FUlIocGxsX2luKTsKIAl9CiAKLQlzY2xrX2F1ZGlvID0gZGV2bV9jbGtfZ2V0 KCZwZGV2LT5kZXYsICJzY2xrX2F1ZGlvMCIpOworCXNjbGtfYXVkaW8gPSBkZXZtX2Nsa19wcm92 aWRlcl9nZXQoJnBkZXYtPmRldiwgInNjbGtfYXVkaW8wIik7CiAJaWYgKElTX0VSUihzY2xrX2F1 ZGlvKSkgewogCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJmYWlsZWQgdG8gZ2V0IHNjbGtfYXVkaW8w IGNsb2NrXG4iKTsKIAkJcmV0dXJuIFBUUl9FUlIoc2Nsa19hdWRpbyk7CiAJfQogCiAJLyogaWlz Y2RjbGswIGlzIGFuIG9wdGlvbmFsIGV4dGVybmFsIEkyUyBjb2RlYyBjbG9jayAqLwotCWNkY2xr ID0gZGV2bV9jbGtfZ2V0KCZwZGV2LT5kZXYsICJpaXNjZGNsazAiKTsKLQlwbGxfcmVmID0gZGV2 bV9jbGtfZ2V0KCZwZGV2LT5kZXYsICJ4eHRpIik7CisJY2RjbGsgPSBkZXZtX2Nsa19wcm92aWRl cl9nZXQoJnBkZXYtPmRldiwgImlpc2NkY2xrMCIpOworCXBsbF9yZWYgPSBkZXZtX2Nsa19wcm92 aWRlcl9nZXQoJnBkZXYtPmRldiwgInh4dGkiKTsKIAogCWlmICghSVNfRVJSKHBsbF9yZWYpKQog CQltb3V0X2F1ZHNzX3BbMF0gPSBfX2Nsa19nZXRfbmFtZShwbGxfcmVmKTsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvY2xrL3NhbXN1bmcvY2xrLXM1cHYyMTAuYyBiL2RyaXZlcnMvY2xrL3NhbXN1bmcv Y2xrLXM1cHYyMTAuYwppbmRleCBkMjcwYTIwLi41MTcwMzJmIDEwMDY0NAotLS0gYS9kcml2ZXJz L2Nsay9zYW1zdW5nL2Nsay1zNXB2MjEwLmMKKysrIGIvZHJpdmVycy9jbGsvc2Ftc3VuZy9jbGst czVwdjIxMC5jCkBAIC0xMSw3ICsxMSw2IEBACiAgKiBDb21tb24gQ2xvY2sgRnJhbWV3b3JrIHN1 cHBvcnQgZm9yIGFsbCBTNVBDMTEwL1M1UFYyMTAgU29Dcy4KICAqLwogCi0jaW5jbHVkZSA8bGlu dXgvY2xrLmg+CiAjaW5jbHVkZSA8bGludXgvY2xrZGV2Lmg+CiAjaW5jbHVkZSA8bGludXgvY2xr LXByb3ZpZGVyLmg+CiAjaW5jbHVkZSA8bGludXgvb2YuaD4KZGlmZiAtLWdpdCBhL2RyaXZlcnMv Y2xrL3NhbXN1bmcvY2xrLmMgYi9kcml2ZXJzL2Nsay9zYW1zdW5nL2Nsay5jCmluZGV4IGRlYWI4 NGQuLjY4MTMzZmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL3NhbXN1bmcvY2xrLmMKKysrIGIv ZHJpdmVycy9jbGsvc2Ftc3VuZy9jbGsuYwpAQCAtNTIsMTQgKzUyLDE0IEBAIHN0cnVjdCBzYW1z dW5nX2Nsa19wcm92aWRlciAqX19pbml0IHNhbXN1bmdfY2xrX2luaXQoc3RydWN0IGRldmljZV9u b2RlICpucCwKIAkJCXZvaWQgX19pb21lbSAqYmFzZSwgdW5zaWduZWQgbG9uZyBucl9jbGtzKQog ewogCXN0cnVjdCBzYW1zdW5nX2Nsa19wcm92aWRlciAqY3R4OwotCXN0cnVjdCBjbGsgKipjbGtf dGFibGU7CisJc3RydWN0IGNsa19jb3JlICoqY2xrX3RhYmxlOwogCWludCBpOwogCiAJY3R4ID0g a3phbGxvYyhzaXplb2Yoc3RydWN0IHNhbXN1bmdfY2xrX3Byb3ZpZGVyKSwgR0ZQX0tFUk5FTCk7 CiAJaWYgKCFjdHgpCiAJCXBhbmljKCJjb3VsZCBub3QgYWxsb2NhdGUgY2xvY2sgcHJvdmlkZXIg Y29udGV4dC5cbiIpOwogCi0JY2xrX3RhYmxlID0ga2NhbGxvYyhucl9jbGtzLCBzaXplb2Yoc3Ry dWN0IGNsayAqKSwgR0ZQX0tFUk5FTCk7CisJY2xrX3RhYmxlID0ga2NhbGxvYyhucl9jbGtzLCBz aXplb2Yoc3RydWN0IGNsa19jb3JlICopLCBHRlBfS0VSTkVMKTsKIAlpZiAoIWNsa190YWJsZSkK IAkJcGFuaWMoImNvdWxkIG5vdCBhbGxvY2F0ZSBjbG9jayBsb29rdXAgdGFibGVcbiIpOwogCkBA IC04NSw3ICs4NSw3IEBAIHZvaWQgX19pbml0IHNhbXN1bmdfY2xrX29mX2FkZF9wcm92aWRlcihz dHJ1Y3QgZGV2aWNlX25vZGUgKm5wLAogfQogCiAvKiBhZGQgYSBjbG9jayBpbnN0YW5jZSB0byB0 aGUgY2xvY2sgbG9va3VwIHRhYmxlIHVzZWQgZm9yIGR0IGJhc2VkIGxvb2t1cCAqLwotdm9pZCBz YW1zdW5nX2Nsa19hZGRfbG9va3VwKHN0cnVjdCBzYW1zdW5nX2Nsa19wcm92aWRlciAqY3R4LCBz dHJ1Y3QgY2xrICpjbGssCit2b2lkIHNhbXN1bmdfY2xrX2FkZF9sb29rdXAoc3RydWN0IHNhbXN1 bmdfY2xrX3Byb3ZpZGVyICpjdHgsIHN0cnVjdCBjbGtfY29yZSAqY2xrLAogCQkJCXVuc2lnbmVk IGludCBpZCkKIHsKIAlpZiAoY3R4LT5jbGtfZGF0YS5jbGtzICYmIGlkKQpAQCAtOTcsNyArOTcs NyBAQCB2b2lkIF9faW5pdCBzYW1zdW5nX2Nsa19yZWdpc3Rlcl9hbGlhcyhzdHJ1Y3Qgc2Ftc3Vu Z19jbGtfcHJvdmlkZXIgKmN0eCwKIAkJCQlzdHJ1Y3Qgc2Ftc3VuZ19jbG9ja19hbGlhcyAqbGlz dCwKIAkJCQl1bnNpZ25lZCBpbnQgbnJfY2xrKQogewotCXN0cnVjdCBjbGsgKmNsazsKKwlzdHJ1 Y3QgY2xrX2NvcmUgKmNsazsKIAl1bnNpZ25lZCBpbnQgaWR4LCByZXQ7CiAKIAlpZiAoIWN0eC0+ Y2xrX2RhdGEuY2xrcykgewpAQCAtMTMwLDcgKzEzMCw3IEBAIHZvaWQgX19pbml0IHNhbXN1bmdf Y2xrX3JlZ2lzdGVyX2FsaWFzKHN0cnVjdCBzYW1zdW5nX2Nsa19wcm92aWRlciAqY3R4LAogdm9p ZCBfX2luaXQgc2Ftc3VuZ19jbGtfcmVnaXN0ZXJfZml4ZWRfcmF0ZShzdHJ1Y3Qgc2Ftc3VuZ19j bGtfcHJvdmlkZXIgKmN0eCwKIAkJc3RydWN0IHNhbXN1bmdfZml4ZWRfcmF0ZV9jbG9jayAqbGlz dCwgdW5zaWduZWQgaW50IG5yX2NsaykKIHsKLQlzdHJ1Y3QgY2xrICpjbGs7CisJc3RydWN0IGNs a19jb3JlICpjbGs7CiAJdW5zaWduZWQgaW50IGlkeCwgcmV0OwogCiAJZm9yIChpZHggPSAwOyBp ZHggPCBucl9jbGs7IGlkeCsrLCBsaXN0KyspIHsKQEAgLTE1OSw3ICsxNTksNyBAQCB2b2lkIF9f aW5pdCBzYW1zdW5nX2Nsa19yZWdpc3Rlcl9maXhlZF9yYXRlKHN0cnVjdCBzYW1zdW5nX2Nsa19w cm92aWRlciAqY3R4LAogdm9pZCBfX2luaXQgc2Ftc3VuZ19jbGtfcmVnaXN0ZXJfZml4ZWRfZmFj dG9yKHN0cnVjdCBzYW1zdW5nX2Nsa19wcm92aWRlciAqY3R4LAogCQlzdHJ1Y3Qgc2Ftc3VuZ19m aXhlZF9mYWN0b3JfY2xvY2sgKmxpc3QsIHVuc2lnbmVkIGludCBucl9jbGspCiB7Ci0Jc3RydWN0 IGNsayAqY2xrOworCXN0cnVjdCBjbGtfY29yZSAqY2xrOwogCXVuc2lnbmVkIGludCBpZHg7CiAK IAlmb3IgKGlkeCA9IDA7IGlkeCA8IG5yX2NsazsgaWR4KyssIGxpc3QrKykgewpAQCAtMTgwLDcg KzE4MCw3IEBAIHZvaWQgX19pbml0IHNhbXN1bmdfY2xrX3JlZ2lzdGVyX211eChzdHJ1Y3Qgc2Ft c3VuZ19jbGtfcHJvdmlkZXIgKmN0eCwKIAkJCQlzdHJ1Y3Qgc2Ftc3VuZ19tdXhfY2xvY2sgKmxp c3QsCiAJCQkJdW5zaWduZWQgaW50IG5yX2NsaykKIHsKLQlzdHJ1Y3QgY2xrICpjbGs7CisJc3Ry dWN0IGNsa19jb3JlICpjbGs7CiAJdW5zaWduZWQgaW50IGlkeCwgcmV0OwogCiAJZm9yIChpZHgg PSAwOyBpZHggPCBucl9jbGs7IGlkeCsrLCBsaXN0KyspIHsKQEAgLTIxMiw3ICsyMTIsNyBAQCB2 b2lkIF9faW5pdCBzYW1zdW5nX2Nsa19yZWdpc3Rlcl9kaXYoc3RydWN0IHNhbXN1bmdfY2xrX3By b3ZpZGVyICpjdHgsCiAJCQkJc3RydWN0IHNhbXN1bmdfZGl2X2Nsb2NrICpsaXN0LAogCQkJCXVu c2lnbmVkIGludCBucl9jbGspCiB7Ci0Jc3RydWN0IGNsayAqY2xrOworCXN0cnVjdCBjbGtfY29y ZSAqY2xrOwogCXVuc2lnbmVkIGludCBpZHgsIHJldDsKIAogCWZvciAoaWR4ID0gMDsgaWR4IDwg bnJfY2xrOyBpZHgrKywgbGlzdCsrKSB7CkBAIC0yNTEsNyArMjUxLDcgQEAgdm9pZCBfX2luaXQg c2Ftc3VuZ19jbGtfcmVnaXN0ZXJfZ2F0ZShzdHJ1Y3Qgc2Ftc3VuZ19jbGtfcHJvdmlkZXIgKmN0 eCwKIAkJCQlzdHJ1Y3Qgc2Ftc3VuZ19nYXRlX2Nsb2NrICpsaXN0LAogCQkJCXVuc2lnbmVkIGlu dCBucl9jbGspCiB7Ci0Jc3RydWN0IGNsayAqY2xrOworCXN0cnVjdCBjbGtfY29yZSAqY2xrOwog CXVuc2lnbmVkIGludCBpZHgsIHJldDsKIAogCWZvciAoaWR4ID0gMDsgaWR4IDwgbnJfY2xrOyBp ZHgrKywgbGlzdCsrKSB7CkBAIC0zMDMsNyArMzAzLDcgQEAgdm9pZCBfX2luaXQgc2Ftc3VuZ19j bGtfb2ZfcmVnaXN0ZXJfZml4ZWRfZXh0KHN0cnVjdCBzYW1zdW5nX2Nsa19wcm92aWRlciAqY3R4 LAogLyogdXRpbGl0eSBmdW5jdGlvbiB0byBnZXQgdGhlIHJhdGUgb2YgYSBzcGVjaWZpZWQgY2xv Y2sgKi8KIHVuc2lnbmVkIGxvbmcgX2dldF9yYXRlKGNvbnN0IGNoYXIgKmNsa19uYW1lKQogewot CXN0cnVjdCBjbGsgKmNsazsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmNsazsKIAogCWNsayA9IF9fY2xr X2xvb2t1cChjbGtfbmFtZSk7CiAJaWYgKCFjbGspIHsKQEAgLTMxMSw1ICszMTEsNSBAQCB1bnNp Z25lZCBsb25nIF9nZXRfcmF0ZShjb25zdCBjaGFyICpjbGtfbmFtZSkKIAkJcmV0dXJuIDA7CiAJ fQogCi0JcmV0dXJuIGNsa19nZXRfcmF0ZShjbGspOworCXJldHVybiBjbGtfcHJvdmlkZXJfZ2V0 X3JhdGUoY2xrKTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3NhbXN1bmcvY2xrLmggYi9k cml2ZXJzL2Nsay9zYW1zdW5nL2Nsay5oCmluZGV4IDY2YWIzNmIuLjU4YjEyMTUgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvY2xrL3NhbXN1bmcvY2xrLmgKKysrIGIvZHJpdmVycy9jbGsvc2Ftc3VuZy9j bGsuaApAQCAtMTMsNyArMTMsNiBAQAogI2lmbmRlZiBfX1NBTVNVTkdfQ0xLX0gKICNkZWZpbmUg X19TQU1TVU5HX0NMS19ICiAKLSNpbmNsdWRlIDxsaW51eC9jbGsuaD4KICNpbmNsdWRlIDxsaW51 eC9jbGtkZXYuaD4KICNpbmNsdWRlIDxsaW51eC9pby5oPgogI2luY2x1ZGUgPGxpbnV4L2Nsay1w cm92aWRlci5oPgpAQCAtMzM2LDcgKzMzNSw3IEBAIGV4dGVybiB2b2lkIF9faW5pdCBzYW1zdW5n X2Nsa19vZl9yZWdpc3Rlcl9maXhlZF9leHQoCiAJCQljb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lk ICpjbGtfbWF0Y2hlcyk7CiAKIGV4dGVybiB2b2lkIHNhbXN1bmdfY2xrX2FkZF9sb29rdXAoc3Ry dWN0IHNhbXN1bmdfY2xrX3Byb3ZpZGVyICpjdHgsCi0JCQlzdHJ1Y3QgY2xrICpjbGssIHVuc2ln bmVkIGludCBpZCk7CisJCQlzdHJ1Y3QgY2xrX2NvcmUgKmNsaywgdW5zaWduZWQgaW50IGlkKTsK IAogZXh0ZXJuIHZvaWQgc2Ftc3VuZ19jbGtfcmVnaXN0ZXJfYWxpYXMoc3RydWN0IHNhbXN1bmdf Y2xrX3Byb3ZpZGVyICpjdHgsCiAJCQlzdHJ1Y3Qgc2Ftc3VuZ19jbG9ja19hbGlhcyAqbGlzdCwK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3NobW9iaWxlL2Nsay1kaXY2LmMgYi9kcml2ZXJzL2Ns ay9zaG1vYmlsZS9jbGstZGl2Ni5jCmluZGV4IGYwNjVmNjkuLmM2NzEyZmIgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvY2xrL3NobW9iaWxlL2Nsay1kaXY2LmMKKysrIGIvZHJpdmVycy9jbGsvc2htb2Jp bGUvY2xrLWRpdjYuYwpAQCAtMTE5LDcgKzExOSw3IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBjcGdf ZGl2Nl9jbG9ja19pbml0KHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApCiAJc3RydWN0IGRpdjZfY2xv Y2sgKmNsb2NrOwogCWNvbnN0IGNoYXIgKnBhcmVudF9uYW1lOwogCWNvbnN0IGNoYXIgKm5hbWU7 Ci0Jc3RydWN0IGNsayAqY2xrOworCXN0cnVjdCBjbGtfY29yZSAqY2xrOwogCWludCByZXQ7CiAK IAljbG9jayA9IGt6YWxsb2Moc2l6ZW9mKCpjbG9jayksIEdGUF9LRVJORUwpOwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9jbGsvc2htb2JpbGUvY2xrLWVtZXYyLmMgYi9kcml2ZXJzL2Nsay9zaG1vYmls ZS9jbGstZW1ldjIuYwppbmRleCA2YzdjOTI5Li4yZTNhNDViIDEwMDY0NAotLS0gYS9kcml2ZXJz L2Nsay9zaG1vYmlsZS9jbGstZW1ldjIuYworKysgYi9kcml2ZXJzL2Nsay9zaG1vYmlsZS9jbGst ZW1ldjIuYwpAQCAtNzEsNyArNzEsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgZW1ldjJfc211X2lu aXQodm9pZCkKIHN0YXRpYyB2b2lkIF9faW5pdCBlbWV2Ml9zbXVfY2xrZGl2X2luaXQoc3RydWN0 IGRldmljZV9ub2RlICpucCkKIHsKIAl1MzIgcmVnWzJdOwotCXN0cnVjdCBjbGsgKmNsazsKKwlz dHJ1Y3QgY2xrX2NvcmUgKmNsazsKIAljb25zdCBjaGFyICpwYXJlbnRfbmFtZSA9IG9mX2Nsa19n ZXRfcGFyZW50X25hbWUobnAsIDApOwogCWlmIChXQVJOX09OKG9mX3Byb3BlcnR5X3JlYWRfdTMy X2FycmF5KG5wLCAicmVnIiwgcmVnLCAyKSkpCiAJCXJldHVybjsKQEAgLTg5LDcgKzg5LDcgQEAg Q0xLX09GX0RFQ0xBUkUoZW1ldjJfc211X2Nsa2RpdiwgInJlbmVzYXMsZW1ldjItc211LWNsa2Rp diIsCiBzdGF0aWMgdm9pZCBfX2luaXQgZW1ldjJfc211X2djbGtfaW5pdChzdHJ1Y3QgZGV2aWNl X25vZGUgKm5wKQogewogCXUzMiByZWdbMl07Ci0Jc3RydWN0IGNsayAqY2xrOworCXN0cnVjdCBj bGtfY29yZSAqY2xrOwogCWNvbnN0IGNoYXIgKnBhcmVudF9uYW1lID0gb2ZfY2xrX2dldF9wYXJl bnRfbmFtZShucCwgMCk7CiAJaWYgKFdBUk5fT04ob2ZfcHJvcGVydHlfcmVhZF91MzJfYXJyYXko bnAsICJyZWciLCByZWcsIDIpKSkKIAkJcmV0dXJuOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsv c2htb2JpbGUvY2xrLW1zdHAuYyBiL2RyaXZlcnMvY2xrL3NobW9iaWxlL2Nsay1tc3RwLmMKaW5k ZXggMmQyZmU3Ny4uMjY1OTY3NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvc2htb2JpbGUvY2xr LW1zdHAuYworKysgYi9kcml2ZXJzL2Nsay9zaG1vYmlsZS9jbGstbXN0cC5jCkBAIC0xMjEsMTMg KzEyMSwxMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGNsa19vcHMgY3BnX21zdHBfY2xvY2tfb3Bz ID0gewogCS5pc19lbmFibGVkID0gY3BnX21zdHBfY2xvY2tfaXNfZW5hYmxlZCwKIH07CiAKLXN0 YXRpYyBzdHJ1Y3QgY2xrICogX19pbml0CitzdGF0aWMgc3RydWN0IGNsa19jb3JlICogX19pbml0 CiBjcGdfbXN0cF9jbG9ja19yZWdpc3Rlcihjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpw YXJlbnRfbmFtZSwKIAkJCXVuc2lnbmVkIGludCBpbmRleCwgc3RydWN0IG1zdHBfY2xvY2tfZ3Jv dXAgKmdyb3VwKQogewogCXN0cnVjdCBjbGtfaW5pdF9kYXRhIGluaXQ7CiAJc3RydWN0IG1zdHBf Y2xvY2sgKmNsb2NrOwotCXN0cnVjdCBjbGsgKmNsazsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmNsazsK IAogCWNsb2NrID0ga3phbGxvYyhzaXplb2YoKmNsb2NrKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFj bG9jaykgewpAQCAtMTU3LDcgKzE1Nyw3IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBjcGdfbXN0cF9j bG9ja3NfaW5pdChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKQogewogCXN0cnVjdCBtc3RwX2Nsb2Nr X2dyb3VwICpncm91cDsKIAljb25zdCBjaGFyICppZHhuYW1lOwotCXN0cnVjdCBjbGsgKipjbGtz OworCXN0cnVjdCBjbGtfY29yZSAqKmNsa3M7CiAJdW5zaWduZWQgaW50IGk7CiAKIAlncm91cCA9 IGt6YWxsb2Moc2l6ZW9mKCpncm91cCksIEdGUF9LRVJORUwpOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9jbGsvc2htb2JpbGUvY2xrLXI4YTc3NDAuYyBiL2RyaXZlcnMvY2xrL3NobW9iaWxlL2Nsay1y OGE3NzQwLmMKaW5kZXggMWUyZWFhZS4uODg4OWU2YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsv c2htb2JpbGUvY2xrLXI4YTc3NDAuYworKysgYi9kcml2ZXJzL2Nsay9zaG1vYmlsZS9jbGstcjhh Nzc0MC5jCkBAIC02MSw3ICs2MSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrX2Rpdl90YWJs ZSBkaXY0X2Rpdl90YWJsZVtdID0gewogCiBzdGF0aWMgdTMyIGNwZ19tb2RlIF9faW5pdGRhdGE7 CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrICogX19pbml0CitzdGF0aWMgc3RydWN0IGNsa19jb3JlICog X19pbml0CiByOGE3NzQwX2NwZ19yZWdpc3Rlcl9jbG9jayhzdHJ1Y3QgZGV2aWNlX25vZGUgKm5w LCBzdHJ1Y3QgcjhhNzc0MF9jcGcgKmNwZywKIAkJCSAgICAgY29uc3QgY2hhciAqbmFtZSkKIHsK QEAgLTE0Nyw3ICsxNDcsNyBAQCByOGE3NzQwX2NwZ19yZWdpc3Rlcl9jbG9jayhzdHJ1Y3QgZGV2 aWNlX25vZGUgKm5wLCBzdHJ1Y3QgcjhhNzc0MF9jcGcgKmNwZywKIHN0YXRpYyB2b2lkIF9faW5p dCByOGE3NzQwX2NwZ19jbG9ja3NfaW5pdChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKQogewogCXN0 cnVjdCByOGE3NzQwX2NwZyAqY3BnOwotCXN0cnVjdCBjbGsgKipjbGtzOworCXN0cnVjdCBjbGtf Y29yZSAqKmNsa3M7CiAJdW5zaWduZWQgaW50IGk7CiAJaW50IG51bV9jbGtzOwogCkBAIC0xODAs NyArMTgwLDcgQEAgc3RhdGljIHZvaWQgX19pbml0IHI4YTc3NDBfY3BnX2Nsb2Nrc19pbml0KHN0 cnVjdCBkZXZpY2Vfbm9kZSAqbnApCiAKIAlmb3IgKGkgPSAwOyBpIDwgbnVtX2Nsa3M7ICsraSkg ewogCQljb25zdCBjaGFyICpuYW1lOwotCQlzdHJ1Y3QgY2xrICpjbGs7CisJCXN0cnVjdCBjbGtf Y29yZSAqY2xrOwogCiAJCW9mX3Byb3BlcnR5X3JlYWRfc3RyaW5nX2luZGV4KG5wLCAiY2xvY2st b3V0cHV0LW5hbWVzIiwgaSwKIAkJCQkJICAgICAgJm5hbWUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9jbGsvc2htb2JpbGUvY2xrLXI4YTc3NzkuYyBiL2RyaXZlcnMvY2xrL3NobW9iaWxlL2Nsay1y OGE3Nzc5LmMKaW5kZXggNjUyZWNhYy4uOTZiNTFiMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsv c2htb2JpbGUvY2xrLXI4YTc3NzkuYworKysgYi9kcml2ZXJzL2Nsay9zaG1vYmlsZS9jbGstcjhh Nzc3OS5jCkBAIC05MCw3ICs5MCw3IEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgY3BnX3Bs bGFfbXVsdFs0XSBfX2luaXRjb25zdCA9IHsgNDIsIDQ4LCA1NiwgNjQgfTsKIAogc3RhdGljIHUz MiBjcGdfbW9kZSBfX2luaXRkYXRhOwogCi1zdGF0aWMgc3RydWN0IGNsayAqIF9faW5pdAorc3Rh dGljIHN0cnVjdCBjbGtfY29yZSAqIF9faW5pdAogcjhhNzc3OV9jcGdfcmVnaXN0ZXJfY2xvY2so c3RydWN0IGRldmljZV9ub2RlICpucCwgc3RydWN0IHI4YTc3NzlfY3BnICpjcGcsCiAJCQkgICBj b25zdCBzdHJ1Y3QgY3BnX2Nsa19jb25maWcgKmNvbmZpZywKIAkJCSAgIHVuc2lnbmVkIGludCBw bGxhX211bHQsIGNvbnN0IGNoYXIgKm5hbWUpCkBAIC0xMjQsNyArMTI0LDcgQEAgc3RhdGljIHZv aWQgX19pbml0IHI4YTc3NzlfY3BnX2Nsb2Nrc19pbml0KHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAp CiB7CiAJY29uc3Qgc3RydWN0IGNwZ19jbGtfY29uZmlnICpjb25maWc7CiAJc3RydWN0IHI4YTc3 NzlfY3BnICpjcGc7Ci0Jc3RydWN0IGNsayAqKmNsa3M7CisJc3RydWN0IGNsa19jb3JlICoqY2xr czsKIAl1bnNpZ25lZCBpbnQgaSwgcGxsYV9tdWx0OwogCWludCBudW1fY2xrczsKIApAQCAtMTUz LDcgKzE1Myw3IEBAIHN0YXRpYyB2b2lkIF9faW5pdCByOGE3Nzc5X2NwZ19jbG9ja3NfaW5pdChz dHJ1Y3QgZGV2aWNlX25vZGUgKm5wKQogCiAJZm9yIChpID0gMDsgaSA8IG51bV9jbGtzOyArK2kp IHsKIAkJY29uc3QgY2hhciAqbmFtZTsKLQkJc3RydWN0IGNsayAqY2xrOworCQlzdHJ1Y3QgY2xr X2NvcmUgKmNsazsKIAogCQlvZl9wcm9wZXJ0eV9yZWFkX3N0cmluZ19pbmRleChucCwgImNsb2Nr LW91dHB1dC1uYW1lcyIsIGksCiAJCQkJCSAgICAgICZuYW1lKTsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvY2xrL3NobW9iaWxlL2Nsay1yY2FyLWdlbjIuYyBiL2RyaXZlcnMvY2xrL3NobW9iaWxlL2Ns ay1yY2FyLWdlbjIuYwppbmRleCBlOTk2NDI1Li40NWEwNzEyIDEwMDY0NAotLS0gYS9kcml2ZXJz L2Nsay9zaG1vYmlsZS9jbGstcmNhci1nZW4yLmMKKysrIGIvZHJpdmVycy9jbGsvc2htb2JpbGUv Y2xrLXJjYXItZ2VuMi5jCkBAIC0xMzMsMTIgKzEzMywxMiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0 IGNsa19vcHMgY3BnX3pfY2xrX29wcyA9IHsKIAkuc2V0X3JhdGUgPSBjcGdfel9jbGtfc2V0X3Jh dGUsCiB9OwogCi1zdGF0aWMgc3RydWN0IGNsayAqIF9faW5pdCBjcGdfel9jbGtfcmVnaXN0ZXIo c3RydWN0IHJjYXJfZ2VuMl9jcGcgKmNwZykKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgKiBfX2lu aXQgY3BnX3pfY2xrX3JlZ2lzdGVyKHN0cnVjdCByY2FyX2dlbjJfY3BnICpjcGcpCiB7CiAJc3Rh dGljIGNvbnN0IGNoYXIgKnBhcmVudF9uYW1lID0gInBsbDAiOwogCXN0cnVjdCBjbGtfaW5pdF9k YXRhIGluaXQ7CiAJc3RydWN0IGNwZ196X2NsayAqemNsazsKLQlzdHJ1Y3QgY2xrICpjbGs7CisJ c3RydWN0IGNsa19jb3JlICpjbGs7CiAKIAl6Y2xrID0ga3phbGxvYyhzaXplb2YoKnpjbGspLCBH RlBfS0VSTkVMKTsKIAlpZiAoIXpjbGspCkBAIC0yMTMsNyArMjEzLDcgQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCBjbGtfZGl2X3RhYmxlIGNwZ19zZDAxX2Rpdl90YWJsZVtdID0gewogCiBzdGF0aWMg dTMyIGNwZ19tb2RlIF9faW5pdGRhdGE7CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrICogX19pbml0Citz dGF0aWMgc3RydWN0IGNsa19jb3JlICogX19pbml0CiByY2FyX2dlbjJfY3BnX3JlZ2lzdGVyX2Ns b2NrKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsIHN0cnVjdCByY2FyX2dlbjJfY3BnICpjcGcsCiAJ CQkgICAgIGNvbnN0IHN0cnVjdCBjcGdfcGxsX2NvbmZpZyAqY29uZmlnLAogCQkJICAgICBjb25z dCBjaGFyICpuYW1lKQpAQCAtMjgwLDcgKzI4MCw3IEBAIHN0YXRpYyB2b2lkIF9faW5pdCByY2Fy X2dlbjJfY3BnX2Nsb2Nrc19pbml0KHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApCiB7CiAJY29uc3Qg c3RydWN0IGNwZ19wbGxfY29uZmlnICpjb25maWc7CiAJc3RydWN0IHJjYXJfZ2VuMl9jcGcgKmNw ZzsKLQlzdHJ1Y3QgY2xrICoqY2xrczsKKwlzdHJ1Y3QgY2xrX2NvcmUgKipjbGtzOwogCXVuc2ln bmVkIGludCBpOwogCWludCBudW1fY2xrczsKIApAQCAtMzEzLDcgKzMxMyw3IEBAIHN0YXRpYyB2 b2lkIF9faW5pdCByY2FyX2dlbjJfY3BnX2Nsb2Nrc19pbml0KHN0cnVjdCBkZXZpY2Vfbm9kZSAq bnApCiAKIAlmb3IgKGkgPSAwOyBpIDwgbnVtX2Nsa3M7ICsraSkgewogCQljb25zdCBjaGFyICpu YW1lOwotCQlzdHJ1Y3QgY2xrICpjbGs7CisJCXN0cnVjdCBjbGtfY29yZSAqY2xrOwogCiAJCW9m X3Byb3BlcnR5X3JlYWRfc3RyaW5nX2luZGV4KG5wLCAiY2xvY2stb3V0cHV0LW5hbWVzIiwgaSwK IAkJCQkJICAgICAgJm5hbWUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvc2htb2JpbGUvY2xr LXJ6LmMgYi9kcml2ZXJzL2Nsay9zaG1vYmlsZS9jbGstcnouYwppbmRleCA3ZTY4ZTg2Li40MTRl MjBlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay9zaG1vYmlsZS9jbGstcnouYworKysgYi9kcml2 ZXJzL2Nsay9zaG1vYmlsZS9jbGstcnouYwpAQCAtMjgsNyArMjgsNyBAQCBzdHJ1Y3QgcnpfY3Bn IHsKICAqIEluaXRpYWxpemF0aW9uCiAgKi8KIAotc3RhdGljIHN0cnVjdCBjbGsgKiBfX2luaXQK K3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgKiBfX2luaXQKIHJ6X2NwZ19yZWdpc3Rlcl9jbG9jayhz dHJ1Y3QgZGV2aWNlX25vZGUgKm5wLCBzdHJ1Y3QgcnpfY3BnICpjcGcsIGNvbnN0IGNoYXIgKm5h bWUpCiB7CiAJdTMyIHZhbDsKQEAgLTY3LDcgKzY3LDcgQEAgcnpfY3BnX3JlZ2lzdGVyX2Nsb2Nr KHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsIHN0cnVjdCByel9jcGcgKmNwZywgY29uc3QgY2hhciAq bmEKIHN0YXRpYyB2b2lkIF9faW5pdCByel9jcGdfY2xvY2tzX2luaXQoc3RydWN0IGRldmljZV9u b2RlICpucCkKIHsKIAlzdHJ1Y3QgcnpfY3BnICpjcGc7Ci0Jc3RydWN0IGNsayAqKmNsa3M7CisJ c3RydWN0IGNsa19jb3JlICoqY2xrczsKIAl1bnNpZ25lZCBpOwogCWludCBudW1fY2xrczsKIApA QCAtODYsNyArODYsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgcnpfY3BnX2Nsb2Nrc19pbml0KHN0 cnVjdCBkZXZpY2Vfbm9kZSAqbnApCiAKIAlmb3IgKGkgPSAwOyBpIDwgbnVtX2Nsa3M7ICsraSkg ewogCQljb25zdCBjaGFyICpuYW1lOwotCQlzdHJ1Y3QgY2xrICpjbGs7CisJCXN0cnVjdCBjbGtf Y29yZSAqY2xrOwogCiAJCW9mX3Byb3BlcnR5X3JlYWRfc3RyaW5nX2luZGV4KG5wLCAiY2xvY2st b3V0cHV0LW5hbWVzIiwgaSwgJm5hbWUpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9zaXJm L2Nsay1hdGxhczYuYyBiL2RyaXZlcnMvY2xrL3NpcmYvY2xrLWF0bGFzNi5jCmluZGV4IGQ2M2I3 NmMuLjNiMDdhMDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL3NpcmYvY2xrLWF0bGFzNi5jCisr KyBiL2RyaXZlcnMvY2xrL3NpcmYvY2xrLWF0bGFzNi5jCkBAIC0xMCw3ICsxMCw2IEBACiAjaW5j bHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvYml0b3BzLmg+CiAjaW5jbHVk ZSA8bGludXgvaW8uaD4KLSNpbmNsdWRlIDxsaW51eC9jbGsuaD4KICNpbmNsdWRlIDxsaW51eC9j bGtkZXYuaD4KICNpbmNsdWRlIDxsaW51eC9jbGstcHJvdmlkZXIuaD4KICNpbmNsdWRlIDxsaW51 eC9vZl9hZGRyZXNzLmg+CkBAIC0xMTMsNyArMTEyLDcgQEAgc3RhdGljIF9faW5pdGRhdGEgc3Ry dWN0IGNsa19odyAqYXRsYXM2X2Nsa19od19hcnJheVttYXhjbGtdID0gewogCSZjbGtfY3BoaWYu aHcsCiB9OwogCi1zdGF0aWMgc3RydWN0IGNsayAqYXRsYXM2X2Nsa3NbbWF4Y2xrXTsKK3N0YXRp YyBzdHJ1Y3QgY2xrX2NvcmUgKmF0bGFzNl9jbGtzW21heGNsa107CiAKIHN0YXRpYyB2b2lkIF9f aW5pdCBhdGxhczZfY2xrX2luaXQoc3RydWN0IGRldmljZV9ub2RlICpucCkKIHsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvY2xrL3NpcmYvY2xrLWNvbW1vbi5jIGIvZHJpdmVycy9jbGsvc2lyZi9jbGst Y29tbW9uLmMKaW5kZXggMzdhZjUxYy4uMDVmNTA0MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsv c2lyZi9jbGstY29tbW9uLmMKKysrIGIvZHJpdmVycy9jbGsvc2lyZi9jbGstY29tbW9uLmMKQEAg LTE2NSw5ICsxNjUsOSBAQCBzdGF0aWMgbG9uZyBjcHVfY2xrX3JvdW5kX3JhdGUoc3RydWN0IGNs a19odyAqaHcsIHVuc2lnbmVkIGxvbmcgcmF0ZSwKIAkgKiBTaVJGIFNvQyBoYXMgbm90IGNwdSBj bG9jayBjb250cm9sLAogCSAqIFNvIGJ5cGFzcyB0byBpdCdzIHBhcmVudCBwbGwuCiAJICovCi0J c3RydWN0IGNsayAqcGFyZW50X2NsayA9IGNsa19nZXRfcGFyZW50KGh3LT5jbGspOwotCXN0cnVj dCBjbGsgKnBsbF9wYXJlbnRfY2xrID0gY2xrX2dldF9wYXJlbnQocGFyZW50X2Nsayk7Ci0JdW5z aWduZWQgbG9uZyBwbGxfcGFyZW50X3JhdGUgPSBjbGtfZ2V0X3JhdGUocGxsX3BhcmVudF9jbGsp OworCXN0cnVjdCBjbGtfY29yZSAqcGFyZW50X2NsayA9IGNsa19wcm92aWRlcl9nZXRfcGFyZW50 KGh3LT5jbGspOworCXN0cnVjdCBjbGtfY29yZSAqcGxsX3BhcmVudF9jbGsgPSBjbGtfcHJvdmlk ZXJfZ2V0X3BhcmVudChwYXJlbnRfY2xrKTsKKwl1bnNpZ25lZCBsb25nIHBsbF9wYXJlbnRfcmF0 ZSA9IGNsa19wcm92aWRlcl9nZXRfcmF0ZShwbGxfcGFyZW50X2Nsayk7CiAJcmV0dXJuIHBsbF9j bGtfcm91bmRfcmF0ZShfX2Nsa19nZXRfaHcocGFyZW50X2NsayksIHJhdGUsICZwbGxfcGFyZW50 X3JhdGUpOwogfQogCkBAIC0xNzgsNyArMTc4LDcgQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcgY3B1 X2Nsa19yZWNhbGNfcmF0ZShzdHJ1Y3QgY2xrX2h3ICpodywKIAkgKiBTaVJGIFNvQyBoYXMgbm90 IGNwdSBjbG9jayBjb250cm9sLAogCSAqIFNvIHJldHVybiB0aGUgcGFyZW50IHBsbCByYXRlLgog CSAqLwotCXN0cnVjdCBjbGsgKnBhcmVudF9jbGsgPSBjbGtfZ2V0X3BhcmVudChody0+Y2xrKTsK KwlzdHJ1Y3QgY2xrX2NvcmUgKnBhcmVudF9jbGsgPSBjbGtfcHJvdmlkZXJfZ2V0X3BhcmVudCho dy0+Y2xrKTsKIAlyZXR1cm4gX19jbGtfZ2V0X3JhdGUocGFyZW50X2Nsayk7CiB9CiAKQEAgLTQw MywzNCArNDAzLDM0IEBAIHN0YXRpYyBpbnQgY3B1X2Nsa19zZXRfcmF0ZShzdHJ1Y3QgY2xrX2h3 ICpodywgdW5zaWduZWQgbG9uZyByYXRlLAogCQl1bnNpZ25lZCBsb25nIHBhcmVudF9yYXRlKQog ewogCWludCByZXQxLCByZXQyOwotCXN0cnVjdCBjbGsgKmN1cl9wYXJlbnQ7CisJc3RydWN0IGNs a19jb3JlICpjdXJfcGFyZW50OwogCi0JaWYgKHJhdGUgPT0gY2xrX2dldF9yYXRlKGNsa19wbGwx Lmh3LmNsaykpIHsKLQkJcmV0MSA9IGNsa19zZXRfcGFyZW50KGh3LT5jbGssIGNsa19wbGwxLmh3 LmNsayk7CisJaWYgKHJhdGUgPT0gY2xrX3Byb3ZpZGVyX2dldF9yYXRlKGNsa19wbGwxLmh3LmNs aykpIHsKKwkJcmV0MSA9IGNsa19wcm92aWRlcl9zZXRfcGFyZW50KGh3LT5jbGssIGNsa19wbGwx Lmh3LmNsayk7CiAJCXJldHVybiByZXQxOwogCX0KIAotCWlmIChyYXRlID09IGNsa19nZXRfcmF0 ZShjbGtfcGxsMi5ody5jbGspKSB7Ci0JCXJldDEgPSBjbGtfc2V0X3BhcmVudChody0+Y2xrLCBj bGtfcGxsMi5ody5jbGspOworCWlmIChyYXRlID09IGNsa19wcm92aWRlcl9nZXRfcmF0ZShjbGtf cGxsMi5ody5jbGspKSB7CisJCXJldDEgPSBjbGtfcHJvdmlkZXJfc2V0X3BhcmVudChody0+Y2xr LCBjbGtfcGxsMi5ody5jbGspOwogCQlyZXR1cm4gcmV0MTsKIAl9CiAKLQlpZiAocmF0ZSA9PSBj bGtfZ2V0X3JhdGUoY2xrX3BsbDMuaHcuY2xrKSkgewotCQlyZXQxID0gY2xrX3NldF9wYXJlbnQo aHctPmNsaywgY2xrX3BsbDMuaHcuY2xrKTsKKwlpZiAocmF0ZSA9PSBjbGtfcHJvdmlkZXJfZ2V0 X3JhdGUoY2xrX3BsbDMuaHcuY2xrKSkgeworCQlyZXQxID0gY2xrX3Byb3ZpZGVyX3NldF9wYXJl bnQoaHctPmNsaywgY2xrX3BsbDMuaHcuY2xrKTsKIAkJcmV0dXJuIHJldDE7CiAJfQogCi0JY3Vy X3BhcmVudCA9IGNsa19nZXRfcGFyZW50KGh3LT5jbGspOworCWN1cl9wYXJlbnQgPSBjbGtfcHJv dmlkZXJfZ2V0X3BhcmVudChody0+Y2xrKTsKIAogCS8qIHN3aXRjaCB0byB0bXAgcGxsIGJlZm9y ZSBzZXR0aW5nIHBhcmVudCBjbG9jaydzIHJhdGUgKi8KIAlpZiAoY3VyX3BhcmVudCA9PSAgY2xr X3BsbDEuaHcuY2xrKSB7Ci0JCXJldDEgPSBjbGtfc2V0X3BhcmVudChody0+Y2xrLCBjbGtfcGxs Mi5ody5jbGspOworCQlyZXQxID0gY2xrX3Byb3ZpZGVyX3NldF9wYXJlbnQoaHctPmNsaywgY2xr X3BsbDIuaHcuY2xrKTsKIAkJQlVHX09OKHJldDEpOwogCX0KIAotCXJldDIgPSBjbGtfc2V0X3Jh dGUoY2xrX3BsbDEuaHcuY2xrLCByYXRlKTsKKwlyZXQyID0gY2xrX3Byb3ZpZGVyX3NldF9yYXRl KGNsa19wbGwxLmh3LmNsaywgcmF0ZSk7CiAKLQlyZXQxID0gY2xrX3NldF9wYXJlbnQoaHctPmNs aywgY2xrX3BsbDEuaHcuY2xrKTsKKwlyZXQxID0gY2xrX3Byb3ZpZGVyX3NldF9wYXJlbnQoaHct PmNsaywgY2xrX3BsbDEuaHcuY2xrKTsKIAogCXJldHVybiByZXQyID8gcmV0MiA6IHJldDE7CiB9 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9zaXJmL2Nsay1wcmltYTIuYyBiL2RyaXZlcnMvY2xr L3NpcmYvY2xrLXByaW1hMi5jCmluZGV4IDY5NjhlMmUuLjg2OWJjOGMgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvY2xrL3NpcmYvY2xrLXByaW1hMi5jCisrKyBiL2RyaXZlcnMvY2xrL3NpcmYvY2xrLXBy aW1hMi5jCkBAIC0xMCw3ICsxMCw2IEBACiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5j bHVkZSA8bGludXgvYml0b3BzLmg+CiAjaW5jbHVkZSA8bGludXgvaW8uaD4KLSNpbmNsdWRlIDxs aW51eC9jbGsuaD4KICNpbmNsdWRlIDxsaW51eC9jbGtkZXYuaD4KICNpbmNsdWRlIDxsaW51eC9j bGstcHJvdmlkZXIuaD4KICNpbmNsdWRlIDxsaW51eC9vZl9hZGRyZXNzLmg+CkBAIC0xMTIsNyAr MTExLDcgQEAgc3RhdGljIF9faW5pdGRhdGEgc3RydWN0IGNsa19odyAqcHJpbWEyX2Nsa19od19h cnJheVttYXhjbGtdID0gewogCSZjbGtfY3BoaWYuaHcsCiB9OwogCi1zdGF0aWMgc3RydWN0IGNs ayAqcHJpbWEyX2Nsa3NbbWF4Y2xrXTsKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgKnByaW1hMl9j bGtzW21heGNsa107CiAKIHN0YXRpYyB2b2lkIF9faW5pdCBwcmltYTJfY2xrX2luaXQoc3RydWN0 IGRldmljZV9ub2RlICpucCkKIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3NvY2ZwZ2EvY2xr LWdhdGUuYyBiL2RyaXZlcnMvY2xrL3NvY2ZwZ2EvY2xrLWdhdGUuYwppbmRleCBkZDNhNzhjLi41 ZDAwZGVlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay9zb2NmcGdhL2Nsay1nYXRlLmMKKysrIGIv ZHJpdmVycy9jbGsvc29jZnBnYS9jbGstZ2F0ZS5jCkBAIC0xNSw3ICsxNSw2IEBACiAgKiBCYXNl ZCBmcm9tIGNsay1oaWdoYmFuay5jCiAgKgogICovCi0jaW5jbHVkZSA8bGludXgvY2xrLmg+CiAj aW5jbHVkZSA8bGludXgvY2xrZGV2Lmg+CiAjaW5jbHVkZSA8bGludXgvY2xrLXByb3ZpZGVyLmg+ CiAjaW5jbHVkZSA8bGludXgvaW8uaD4KQEAgLTE4OCw3ICsxODcsNyBAQCBzdGF0aWMgdm9pZCBf X2luaXQgX19zb2NmcGdhX2dhdGVfaW5pdChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUsCiAJdTMy IGRpdl9yZWdbM107CiAJdTMyIGNsa19waGFzZVsyXTsKIAl1MzIgZml4ZWRfZGl2OwotCXN0cnVj dCBjbGsgKmNsazsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmNsazsKIAlzdHJ1Y3Qgc29jZnBnYV9nYXRl X2NsayAqc29jZnBnYV9jbGs7CiAJY29uc3QgY2hhciAqY2xrX25hbWUgPSBub2RlLT5uYW1lOwog CWNvbnN0IGNoYXIgKnBhcmVudF9uYW1lW1NPQ0ZQR0FfTUFYX1BBUkVOVFNdOwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9jbGsvc29jZnBnYS9jbGstcGVyaXBoLmMgYi9kcml2ZXJzL2Nsay9zb2NmcGdh L2Nsay1wZXJpcGguYwppbmRleCA0NjUzMWMzLi4xYmNiMjc1IDEwMDY0NAotLS0gYS9kcml2ZXJz L2Nsay9zb2NmcGdhL2Nsay1wZXJpcGguYworKysgYi9kcml2ZXJzL2Nsay9zb2NmcGdhL2Nsay1w ZXJpcGguYwpAQCAtMTUsNyArMTUsNiBAQAogICogQmFzZWQgZnJvbSBjbGstaGlnaGJhbmsuYwog ICoKICAqLwotI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgogI2luY2x1ZGUgPGxpbnV4L2Nsa2Rldi5o PgogI2luY2x1ZGUgPGxpbnV4L2Nsay1wcm92aWRlci5oPgogI2luY2x1ZGUgPGxpbnV4L2lvLmg+ CkBAIC01Myw3ICs1Miw3IEBAIHN0YXRpYyBfX2luaXQgdm9pZCBfX3NvY2ZwZ2FfcGVyaXBoX2lu aXQoc3RydWN0IGRldmljZV9ub2RlICpub2RlLAogCWNvbnN0IHN0cnVjdCBjbGtfb3BzICpvcHMp CiB7CiAJdTMyIHJlZzsKLQlzdHJ1Y3QgY2xrICpjbGs7CisJc3RydWN0IGNsa19jb3JlICpjbGs7 CiAJc3RydWN0IHNvY2ZwZ2FfcGVyaXBoX2NsayAqcGVyaXBoX2NsazsKIAljb25zdCBjaGFyICpj bGtfbmFtZSA9IG5vZGUtPm5hbWU7CiAJY29uc3QgY2hhciAqcGFyZW50X25hbWU7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2Nsay9zb2NmcGdhL2Nsay1wbGwuYyBiL2RyaXZlcnMvY2xrL3NvY2ZwZ2Ev Y2xrLXBsbC5jCmluZGV4IGRlNmRhOTUuLmJhNzA3M2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xr L3NvY2ZwZ2EvY2xrLXBsbC5jCisrKyBiL2RyaXZlcnMvY2xrL3NvY2ZwZ2EvY2xrLXBsbC5jCkBA IC0xNSw3ICsxNSw2IEBACiAgKiBCYXNlZCBmcm9tIGNsay1oaWdoYmFuay5jCiAgKgogICovCi0j aW5jbHVkZSA8bGludXgvY2xrLmg+CiAjaW5jbHVkZSA8bGludXgvY2xrZGV2Lmg+CiAjaW5jbHVk ZSA8bGludXgvY2xrLXByb3ZpZGVyLmg+CiAjaW5jbHVkZSA8bGludXgvaW8uaD4KQEAgLTgxLDEx ICs4MCwxMSBAQCBzdGF0aWMgc3RydWN0IGNsa19vcHMgY2xrX3BsbF9vcHMgPSB7CiAJLmdldF9w YXJlbnQgPSBjbGtfcGxsX2dldF9wYXJlbnQsCiB9OwogCi1zdGF0aWMgX19pbml0IHN0cnVjdCBj bGsgKl9fc29jZnBnYV9wbGxfaW5pdChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUsCitzdGF0aWMg X19pbml0IHN0cnVjdCBjbGtfY29yZSAqX19zb2NmcGdhX3BsbF9pbml0KHN0cnVjdCBkZXZpY2Vf bm9kZSAqbm9kZSwKIAljb25zdCBzdHJ1Y3QgY2xrX29wcyAqb3BzKQogewogCXUzMiByZWc7Ci0J c3RydWN0IGNsayAqY2xrOworCXN0cnVjdCBjbGtfY29yZSAqY2xrOwogCXN0cnVjdCBzb2NmcGdh X3BsbCAqcGxsX2NsazsKIAljb25zdCBjaGFyICpjbGtfbmFtZSA9IG5vZGUtPm5hbWU7CiAJY29u c3QgY2hhciAqcGFyZW50X25hbWVbU09DRlBHQV9NQVhfUEFSRU5UU107CmRpZmYgLS1naXQgYS9k cml2ZXJzL2Nsay9zcGVhci9jbGstYXV4LXN5bnRoLmMgYi9kcml2ZXJzL2Nsay9zcGVhci9jbGst YXV4LXN5bnRoLmMKaW5kZXggYmRmYjQ0Mi4uMTgzMzRjMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9j bGsvc3BlYXIvY2xrLWF1eC1zeW50aC5jCisrKyBiL2RyaXZlcnMvY2xrL3NwZWFyL2Nsay1hdXgt c3ludGguYwpAQCAtMTM0LDE0ICsxMzQsMTQgQEAgc3RhdGljIHN0cnVjdCBjbGtfb3BzIGNsa19h dXhfb3BzID0gewogCS5zZXRfcmF0ZSA9IGNsa19hdXhfc2V0X3JhdGUsCiB9OwogCi1zdHJ1Y3Qg Y2xrICpjbGtfcmVnaXN0ZXJfYXV4KGNvbnN0IGNoYXIgKmF1eF9uYW1lLCBjb25zdCBjaGFyICpn YXRlX25hbWUsCitzdHJ1Y3QgY2xrX2NvcmUgKmNsa19yZWdpc3Rlcl9hdXgoY29uc3QgY2hhciAq YXV4X25hbWUsIGNvbnN0IGNoYXIgKmdhdGVfbmFtZSwKIAkJY29uc3QgY2hhciAqcGFyZW50X25h bWUsIHVuc2lnbmVkIGxvbmcgZmxhZ3MsIHZvaWQgX19pb21lbSAqcmVnLAogCQlzdHJ1Y3QgYXV4 X2Nsa19tYXNrcyAqbWFza3MsIHN0cnVjdCBhdXhfcmF0ZV90YmwgKnJ0YmwsCi0JCXU4IHJ0Ymxf Y250LCBzcGlubG9ja190ICpsb2NrLCBzdHJ1Y3QgY2xrICoqZ2F0ZV9jbGspCisJCXU4IHJ0Ymxf Y250LCBzcGlubG9ja190ICpsb2NrLCBzdHJ1Y3QgY2xrX2NvcmUgKipnYXRlX2NsaykKIHsKIAlz dHJ1Y3QgY2xrX2F1eCAqYXV4OwogCXN0cnVjdCBjbGtfaW5pdF9kYXRhIGluaXQ7Ci0Jc3RydWN0 IGNsayAqY2xrOworCXN0cnVjdCBjbGtfY29yZSAqY2xrOwogCiAJaWYgKCFhdXhfbmFtZSB8fCAh cGFyZW50X25hbWUgfHwgIXJlZyB8fCAhcnRibCB8fCAhcnRibF9jbnQpIHsKIAkJcHJfZXJyKCJJ bnZhbGlkIGFyZ3VtZW50cyBwYXNzZWQiKTsKQEAgLTE3Nyw3ICsxNzcsNyBAQCBzdHJ1Y3QgY2xr ICpjbGtfcmVnaXN0ZXJfYXV4KGNvbnN0IGNoYXIgKmF1eF9uYW1lLCBjb25zdCBjaGFyICpnYXRl X25hbWUsCiAJCWdvdG8gZnJlZV9hdXg7CiAKIAlpZiAoZ2F0ZV9uYW1lKSB7Ci0JCXN0cnVjdCBj bGsgKnRnYXRlX2NsazsKKwkJc3RydWN0IGNsa19jb3JlICp0Z2F0ZV9jbGs7CiAKIAkJdGdhdGVf Y2xrID0gY2xrX3JlZ2lzdGVyX2dhdGUoTlVMTCwgZ2F0ZV9uYW1lLCBhdXhfbmFtZSwKIAkJCQlD TEtfU0VUX1JBVEVfUEFSRU5ULCByZWcsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9zcGVhci9j bGstZnJhYy1zeW50aC5jIGIvZHJpdmVycy9jbGsvc3BlYXIvY2xrLWZyYWMtc3ludGguYwppbmRl eCBkZmZkNGNlLi5iY2UyYzBlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay9zcGVhci9jbGstZnJh Yy1zeW50aC5jCisrKyBiL2RyaXZlcnMvY2xrL3NwZWFyL2Nsay1mcmFjLXN5bnRoLmMKQEAgLTEy MiwxMyArMTIyLDEzIEBAIHN0YXRpYyBzdHJ1Y3QgY2xrX29wcyBjbGtfZnJhY19vcHMgPSB7CiAJ LnNldF9yYXRlID0gY2xrX2ZyYWNfc2V0X3JhdGUsCiB9OwogCi1zdHJ1Y3QgY2xrICpjbGtfcmVn aXN0ZXJfZnJhYyhjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpwYXJlbnRfbmFtZSwKK3N0 cnVjdCBjbGtfY29yZSAqY2xrX3JlZ2lzdGVyX2ZyYWMoY29uc3QgY2hhciAqbmFtZSwgY29uc3Qg Y2hhciAqcGFyZW50X25hbWUsCiAJCXVuc2lnbmVkIGxvbmcgZmxhZ3MsIHZvaWQgX19pb21lbSAq cmVnLAogCQlzdHJ1Y3QgZnJhY19yYXRlX3RibCAqcnRibCwgdTggcnRibF9jbnQsIHNwaW5sb2Nr X3QgKmxvY2spCiB7CiAJc3RydWN0IGNsa19pbml0X2RhdGEgaW5pdDsKIAlzdHJ1Y3QgY2xrX2Zy YWMgKmZyYWM7Ci0Jc3RydWN0IGNsayAqY2xrOworCXN0cnVjdCBjbGtfY29yZSAqY2xrOwogCiAJ aWYgKCFuYW1lIHx8ICFwYXJlbnRfbmFtZSB8fCAhcmVnIHx8ICFydGJsIHx8ICFydGJsX2NudCkg ewogCQlwcl9lcnIoIkludmFsaWQgYXJndW1lbnRzIHBhc3NlZCIpOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9jbGsvc3BlYXIvY2xrLWdwdC1zeW50aC5jIGIvZHJpdmVycy9jbGsvc3BlYXIvY2xrLWdw dC1zeW50aC5jCmluZGV4IDFhZmMxOGMuLmY4ZTEzZjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xr L3NwZWFyL2Nsay1ncHQtc3ludGguYworKysgYi9kcml2ZXJzL2Nsay9zcGVhci9jbGstZ3B0LXN5 bnRoLmMKQEAgLTExMSwxMyArMTExLDEzIEBAIHN0YXRpYyBzdHJ1Y3QgY2xrX29wcyBjbGtfZ3B0 X29wcyA9IHsKIAkuc2V0X3JhdGUgPSBjbGtfZ3B0X3NldF9yYXRlLAogfTsKIAotc3RydWN0IGNs ayAqY2xrX3JlZ2lzdGVyX2dwdChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpwYXJlbnRf bmFtZSwgdW5zaWduZWQKK3N0cnVjdCBjbGtfY29yZSAqY2xrX3JlZ2lzdGVyX2dwdChjb25zdCBj aGFyICpuYW1lLCBjb25zdCBjaGFyICpwYXJlbnRfbmFtZSwgdW5zaWduZWQKIAkJbG9uZyBmbGFn cywgdm9pZCBfX2lvbWVtICpyZWcsIHN0cnVjdCBncHRfcmF0ZV90YmwgKnJ0YmwsIHU4CiAJCXJ0 YmxfY250LCBzcGlubG9ja190ICpsb2NrKQogewogCXN0cnVjdCBjbGtfaW5pdF9kYXRhIGluaXQ7 CiAJc3RydWN0IGNsa19ncHQgKmdwdDsKLQlzdHJ1Y3QgY2xrICpjbGs7CisJc3RydWN0IGNsa19j b3JlICpjbGs7CiAKIAlpZiAoIW5hbWUgfHwgIXBhcmVudF9uYW1lIHx8ICFyZWcgfHwgIXJ0Ymwg fHwgIXJ0YmxfY250KSB7CiAJCXByX2VycigiSW52YWxpZCBhcmd1bWVudHMgcGFzc2VkIik7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9zcGVhci9jbGstdmNvLXBsbC5jIGIvZHJpdmVycy9jbGsv c3BlYXIvY2xrLXZjby1wbGwuYwppbmRleCAxYjliNjViLi4yMjZmMmVjIDEwMDY0NAotLS0gYS9k cml2ZXJzL2Nsay9zcGVhci9jbGstdmNvLXBsbC5jCisrKyBiL2RyaXZlcnMvY2xrL3NwZWFyL2Ns ay12Y28tcGxsLmMKQEAgLTI3MiwxNiArMjcyLDE2IEBAIHN0YXRpYyBzdHJ1Y3QgY2xrX29wcyBj bGtfdmNvX29wcyA9IHsKIAkuc2V0X3JhdGUgPSBjbGtfdmNvX3NldF9yYXRlLAogfTsKIAotc3Ry dWN0IGNsayAqY2xrX3JlZ2lzdGVyX3Zjb19wbGwoY29uc3QgY2hhciAqdmNvX25hbWUsIGNvbnN0 IGNoYXIgKnBsbF9uYW1lLAorc3RydWN0IGNsa19jb3JlICpjbGtfcmVnaXN0ZXJfdmNvX3BsbChj b25zdCBjaGFyICp2Y29fbmFtZSwgY29uc3QgY2hhciAqcGxsX25hbWUsCiAJCWNvbnN0IGNoYXIg KnZjb19nYXRlX25hbWUsIGNvbnN0IGNoYXIgKnBhcmVudF9uYW1lLAogCQl1bnNpZ25lZCBsb25n IGZsYWdzLCB2b2lkIF9faW9tZW0gKm1vZGVfcmVnLCB2b2lkIF9faW9tZW0KIAkJKmNmZ19yZWcs IHN0cnVjdCBwbGxfcmF0ZV90YmwgKnJ0YmwsIHU4IHJ0YmxfY250LAotCQlzcGlubG9ja190ICps b2NrLCBzdHJ1Y3QgY2xrICoqcGxsX2NsaywKLQkJc3RydWN0IGNsayAqKnZjb19nYXRlX2NsaykK KwkJc3BpbmxvY2tfdCAqbG9jaywgc3RydWN0IGNsa19jb3JlICoqcGxsX2NsaywKKwkJc3RydWN0 IGNsa19jb3JlICoqdmNvX2dhdGVfY2xrKQogewogCXN0cnVjdCBjbGtfdmNvICp2Y287CiAJc3Ry dWN0IGNsa19wbGwgKnBsbDsKLQlzdHJ1Y3QgY2xrICp2Y29fY2xrLCAqdHBsbF9jbGssICp0dmNv X2dhdGVfY2xrOworCXN0cnVjdCBjbGtfY29yZSAqdmNvX2NsaywgKnRwbGxfY2xrLCAqdHZjb19n YXRlX2NsazsKIAlzdHJ1Y3QgY2xrX2luaXRfZGF0YSB2Y29faW5pdCwgcGxsX2luaXQ7CiAJY29u c3QgY2hhciAqKnZjb19wYXJlbnRfbmFtZTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvc3Bl YXIvY2xrLmggYi9kcml2ZXJzL2Nsay9zcGVhci9jbGsuaAppbmRleCA5MzE3Mzc2Li43NzczMjJl IDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay9zcGVhci9jbGsuaAorKysgYi9kcml2ZXJzL2Nsay9z cGVhci9jbGsuaApAQCAtMTEwLDIyICsxMTAsMjIgQEAgdHlwZWRlZiB1bnNpZ25lZCBsb25nICgq Y2xrX2NhbGNfcmF0ZSkoc3RydWN0IGNsa19odyAqaHcsIHVuc2lnbmVkIGxvbmcgcHJhdGUsCiAJ CWludCBpbmRleCk7CiAKIC8qIGNsayByZWdpc3RlciByb3V0aW5lcyAqLwotc3RydWN0IGNsayAq Y2xrX3JlZ2lzdGVyX2F1eChjb25zdCBjaGFyICphdXhfbmFtZSwgY29uc3QgY2hhciAqZ2F0ZV9u YW1lLAorc3RydWN0IGNsa19jb3JlICpjbGtfcmVnaXN0ZXJfYXV4KGNvbnN0IGNoYXIgKmF1eF9u YW1lLCBjb25zdCBjaGFyICpnYXRlX25hbWUsCiAJCWNvbnN0IGNoYXIgKnBhcmVudF9uYW1lLCB1 bnNpZ25lZCBsb25nIGZsYWdzLCB2b2lkIF9faW9tZW0gKnJlZywKIAkJc3RydWN0IGF1eF9jbGtf bWFza3MgKm1hc2tzLCBzdHJ1Y3QgYXV4X3JhdGVfdGJsICpydGJsLAotCQl1OCBydGJsX2NudCwg c3BpbmxvY2tfdCAqbG9jaywgc3RydWN0IGNsayAqKmdhdGVfY2xrKTsKLXN0cnVjdCBjbGsgKmNs a19yZWdpc3Rlcl9mcmFjKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnBhcmVudF9uYW1l LAorCQl1OCBydGJsX2NudCwgc3BpbmxvY2tfdCAqbG9jaywgc3RydWN0IGNsa19jb3JlICoqZ2F0 ZV9jbGspOworc3RydWN0IGNsa19jb3JlICpjbGtfcmVnaXN0ZXJfZnJhYyhjb25zdCBjaGFyICpu YW1lLCBjb25zdCBjaGFyICpwYXJlbnRfbmFtZSwKIAkJdW5zaWduZWQgbG9uZyBmbGFncywgdm9p ZCBfX2lvbWVtICpyZWcsCiAJCXN0cnVjdCBmcmFjX3JhdGVfdGJsICpydGJsLCB1OCBydGJsX2Nu dCwgc3BpbmxvY2tfdCAqbG9jayk7Ci1zdHJ1Y3QgY2xrICpjbGtfcmVnaXN0ZXJfZ3B0KGNvbnN0 IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnBhcmVudF9uYW1lLCB1bnNpZ25lZAorc3RydWN0IGNs a19jb3JlICpjbGtfcmVnaXN0ZXJfZ3B0KGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnBh cmVudF9uYW1lLCB1bnNpZ25lZAogCQlsb25nIGZsYWdzLCB2b2lkIF9faW9tZW0gKnJlZywgc3Ry dWN0IGdwdF9yYXRlX3RibCAqcnRibCwgdTgKIAkJcnRibF9jbnQsIHNwaW5sb2NrX3QgKmxvY2sp Owotc3RydWN0IGNsayAqY2xrX3JlZ2lzdGVyX3Zjb19wbGwoY29uc3QgY2hhciAqdmNvX25hbWUs IGNvbnN0IGNoYXIgKnBsbF9uYW1lLAorc3RydWN0IGNsa19jb3JlICpjbGtfcmVnaXN0ZXJfdmNv X3BsbChjb25zdCBjaGFyICp2Y29fbmFtZSwgY29uc3QgY2hhciAqcGxsX25hbWUsCiAJCWNvbnN0 IGNoYXIgKnZjb19nYXRlX25hbWUsIGNvbnN0IGNoYXIgKnBhcmVudF9uYW1lLAogCQl1bnNpZ25l ZCBsb25nIGZsYWdzLCB2b2lkIF9faW9tZW0gKm1vZGVfcmVnLCB2b2lkIF9faW9tZW0KIAkJKmNm Z19yZWcsIHN0cnVjdCBwbGxfcmF0ZV90YmwgKnJ0YmwsIHU4IHJ0YmxfY250LAotCQlzcGlubG9j a190ICpsb2NrLCBzdHJ1Y3QgY2xrICoqcGxsX2NsaywKLQkJc3RydWN0IGNsayAqKnZjb19nYXRl X2Nsayk7CisJCXNwaW5sb2NrX3QgKmxvY2ssIHN0cnVjdCBjbGtfY29yZSAqKnBsbF9jbGssCisJ CXN0cnVjdCBjbGtfY29yZSAqKnZjb19nYXRlX2Nsayk7CiAKIGxvbmcgY2xrX3JvdW5kX3JhdGVf aW5kZXgoc3RydWN0IGNsa19odyAqaHcsIHVuc2lnbmVkIGxvbmcgZHJhdGUsCiAJCXVuc2lnbmVk IGxvbmcgcGFyZW50X3JhdGUsIGNsa19jYWxjX3JhdGUgY2FsY19yYXRlLCB1OCBydGJsX2NudCwK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3NwZWFyL3NwZWFyMTMxMF9jbG9jay5jIGIvZHJpdmVy cy9jbGsvc3BlYXIvc3BlYXIxMzEwX2Nsb2NrLmMKaW5kZXggNGRhYTU5Ny4uNTgyMDZlMCAxMDA2 NDQKLS0tIGEvZHJpdmVycy9jbGsvc3BlYXIvc3BlYXIxMzEwX2Nsb2NrLmMKKysrIGIvZHJpdmVy cy9jbGsvc3BlYXIvc3BlYXIxMzEwX2Nsb2NrLmMKQEAgLTExLDcgKzExLDYgQEAKICAqIHdhcnJh bnR5IG9mIGFueSBraW5kLCB3aGV0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KICAqLwogCi0jaW5j bHVkZSA8bGludXgvY2xrLmg+CiAjaW5jbHVkZSA8bGludXgvY2xrZGV2Lmg+CiAjaW5jbHVkZSA8 bGludXgvZXJyLmg+CiAjaW5jbHVkZSA8bGludXgvaW8uaD4KQEAgLTM4NSw3ICszODQsNyBAQCBz dGF0aWMgY29uc3QgY2hhciAqdGRtX3BhcmVudHNbXSA9IHsgInJhc19wbGwzX2NsayIsICJnZW5f c3luMV9jbGsiLCB9OwogCiB2b2lkIF9faW5pdCBzcGVhcjEzMTBfY2xrX2luaXQodm9pZCBfX2lv bWVtICptaXNjX2Jhc2UsIHZvaWQgX19pb21lbSAqcmFzX2Jhc2UpCiB7Ci0Jc3RydWN0IGNsayAq Y2xrLCAqY2xrMTsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmNsaywgKmNsazE7CiAKIAljbGsgPSBjbGtf cmVnaXN0ZXJfZml4ZWRfcmF0ZShOVUxMLCAib3NjXzMya19jbGsiLCBOVUxMLCBDTEtfSVNfUk9P VCwKIAkJCTMyMDAwKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3NwZWFyL3NwZWFyMTM0MF9j bG9jay5jIGIvZHJpdmVycy9jbGsvc3BlYXIvc3BlYXIxMzQwX2Nsb2NrLmMKaW5kZXggNWE1YzY2 NC4uNzA0MzAxYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvc3BlYXIvc3BlYXIxMzQwX2Nsb2Nr LmMKKysrIGIvZHJpdmVycy9jbGsvc3BlYXIvc3BlYXIxMzQwX2Nsb2NrLmMKQEAgLTExLDcgKzEx LDYgQEAKICAqIHdhcnJhbnR5IG9mIGFueSBraW5kLCB3aGV0aGVyIGV4cHJlc3Mgb3IgaW1wbGll ZC4KICAqLwogCi0jaW5jbHVkZSA8bGludXgvY2xrLmg+CiAjaW5jbHVkZSA8bGludXgvY2xrZGV2 Lmg+CiAjaW5jbHVkZSA8bGludXgvZXJyLmg+CiAjaW5jbHVkZSA8bGludXgvaW8uaD4KQEAgLTQ0 Miw3ICs0NDEsNyBAQCBzdGF0aWMgY29uc3QgY2hhciAqZ2VuX3N5bnRoMl8zX3BhcmVudHNbXSA9 IHsgInZjbzFkaXY0X2NsayIsICJ2Y28yZGl2Ml9jbGsiLAogCiB2b2lkIF9faW5pdCBzcGVhcjEz NDBfY2xrX2luaXQodm9pZCBfX2lvbWVtICptaXNjX2Jhc2UpCiB7Ci0Jc3RydWN0IGNsayAqY2xr LCAqY2xrMTsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmNsaywgKmNsazE7CiAKIAljbGsgPSBjbGtfcmVn aXN0ZXJfZml4ZWRfcmF0ZShOVUxMLCAib3NjXzMya19jbGsiLCBOVUxMLCBDTEtfSVNfUk9PVCwK IAkJCTMyMDAwKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3NwZWFyL3NwZWFyM3h4X2Nsb2Nr LmMgYi9kcml2ZXJzL2Nsay9zcGVhci9zcGVhcjN4eF9jbG9jay5jCmluZGV4IGJiNWYzODcuLjQw ZDFiMDggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL3NwZWFyL3NwZWFyM3h4X2Nsb2NrLmMKKysr IGIvZHJpdmVycy9jbGsvc3BlYXIvc3BlYXIzeHhfY2xvY2suYwpAQCAtOSw3ICs5LDYgQEAKICAq IHdhcnJhbnR5IG9mIGFueSBraW5kLCB3aGV0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KICAqLwog Ci0jaW5jbHVkZSA8bGludXgvY2xrLmg+CiAjaW5jbHVkZSA8bGludXgvY2xrZGV2Lmg+CiAjaW5j bHVkZSA8bGludXgvZXJyLmg+CiAjaW5jbHVkZSA8bGludXgvaW8uaD4KQEAgLTE0MCw3ICsxMzks NyBAQCBzdGF0aWMgY29uc3QgY2hhciAqZGRyX3BhcmVudHNbXSA9IHsgImFoYl9jbGsiLCAiYWhi bXVsdDJfY2xrIiwgIm5vbmUiLAogI2lmZGVmIENPTkZJR19NQUNIX1NQRUFSMzAwCiBzdGF0aWMg dm9pZCBfX2luaXQgc3BlYXIzMDBfY2xrX2luaXQodm9pZCkKIHsKLQlzdHJ1Y3QgY2xrICpjbGs7 CisJc3RydWN0IGNsa19jb3JlICpjbGs7CiAKIAljbGsgPSBjbGtfcmVnaXN0ZXJfZml4ZWRfZmFj dG9yKE5VTEwsICJjbGNkX2NsayIsICJyYXNfcGxsM19jbGsiLCAwLAogCQkJMSwgMSk7CkBAIC0x NzAsNyArMTY5LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHNwZWFyMzAwX2Nsa19pbml0KHZvaWQp IHsgfQogI2lmZGVmIENPTkZJR19NQUNIX1NQRUFSMzEwCiBzdGF0aWMgdm9pZCBfX2luaXQgc3Bl YXIzMTBfY2xrX2luaXQodm9pZCkKIHsKLQlzdHJ1Y3QgY2xrICpjbGs7CisJc3RydWN0IGNsa19j b3JlICpjbGs7CiAKIAljbGsgPSBjbGtfcmVnaXN0ZXJfZml4ZWRfZmFjdG9yKE5VTEwsICJlbWlf Y2xrIiwgInJhc19haGJfY2xrIiwgMCwgMSwKIAkJCTEpOwpAQCAtMjQ2LDkgKzI0NSw5IEBAIHN0 YXRpYyBjb25zdCBjaGFyICpzbWlpMF9wYXJlbnRzW10gPSB7ICJzbWlpXzEyNW1fcGFkIiwgInJh c19wbGwyX2NsayIsCiBzdGF0aWMgY29uc3QgY2hhciAqdWFydHhfcGFyZW50c1tdID0geyAicmFz X3N5bjFfZ2NsayIsICJyYXNfYXBiX2NsayIsIH07CiAKIHN0YXRpYyB2b2lkIF9faW5pdCBzcGVh cjMyMF9jbGtfaW5pdCh2b2lkIF9faW9tZW0gKnNvY19jb25maWdfYmFzZSwKLQkJCQkgICAgIHN0 cnVjdCBjbGsgKnJhc19hcGJfY2xrKQorCQkJCSAgICAgc3RydWN0IGNsa19jb3JlICpyYXNfYXBi X2NsaykKIHsKLQlzdHJ1Y3QgY2xrICpjbGs7CisJc3RydWN0IGNsa19jb3JlICpjbGs7CiAKIAlj bGsgPSBjbGtfcmVnaXN0ZXJfZml4ZWRfcmF0ZShOVUxMLCAic21paV8xMjVtX3BhZF9jbGsiLCBO VUxMLAogCQkJQ0xLX0lTX1JPT1QsIDEyNTAwMDAwMCk7CkBAIC0zNDQsNyArMzQzLDcgQEAgc3Rh dGljIHZvaWQgX19pbml0IHNwZWFyMzIwX2Nsa19pbml0KHZvaWQgX19pb21lbSAqc29jX2NvbmZp Z19iYXNlLAogCQkJMCwgJl9sb2NrKTsKIAljbGtfcmVnaXN0ZXJfY2xrZGV2KGNsaywgTlVMTCwg ImEzMDAwMDAwLnNlcmlhbCIpOwogCS8qIEVuZm9yY2UgcmFzX2FwYl9jbGsgKi8KLQljbGtfc2V0 X3BhcmVudChjbGssIHJhc19hcGJfY2xrKTsKKwljbGtfcHJvdmlkZXJfc2V0X3BhcmVudChjbGss IHJhc19hcGJfY2xrKTsKIAogCWNsayA9IGNsa19yZWdpc3Rlcl9tdXgoTlVMTCwgInVhcnQyX2Ns ayIsIHVhcnR4X3BhcmVudHMsCiAJCQlBUlJBWV9TSVpFKHVhcnR4X3BhcmVudHMpLApAQCAtMzUz LDcgKzM1Miw3IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBzcGVhcjMyMF9jbGtfaW5pdCh2b2lkIF9f aW9tZW0gKnNvY19jb25maWdfYmFzZSwKIAkJCVNQRUFSMzIwX1VBUlRYX1BDTEtfTUFTSywgMCwg Jl9sb2NrKTsKIAljbGtfcmVnaXN0ZXJfY2xrZGV2KGNsaywgTlVMTCwgImE0MDAwMDAwLnNlcmlh bCIpOwogCS8qIEVuZm9yY2UgcmFzX2FwYl9jbGsgKi8KLQljbGtfc2V0X3BhcmVudChjbGssIHJh c19hcGJfY2xrKTsKKwljbGtfcHJvdmlkZXJfc2V0X3BhcmVudChjbGssIHJhc19hcGJfY2xrKTsK IAogCWNsayA9IGNsa19yZWdpc3Rlcl9tdXgoTlVMTCwgInVhcnQzX2NsayIsIHVhcnR4X3BhcmVu dHMsCiAJCQlBUlJBWV9TSVpFKHVhcnR4X3BhcmVudHMpLApAQCAtMzg0LDEyICszODMsMTIgQEAg c3RhdGljIHZvaWQgX19pbml0IHNwZWFyMzIwX2Nsa19pbml0KHZvaWQgX19pb21lbSAqc29jX2Nv bmZpZ19iYXNlLAogCWNsa19yZWdpc3Rlcl9jbGtkZXYoY2xrLCBOVUxMLCAiNjAxMDAwMDAuc2Vy aWFsIik7CiB9CiAjZWxzZQotc3RhdGljIGlubGluZSB2b2lkIHNwZWFyMzIwX2Nsa19pbml0KHZv aWQgX19pb21lbSAqc2IsIHN0cnVjdCBjbGsgKnJjKSB7IH0KK3N0YXRpYyBpbmxpbmUgdm9pZCBz cGVhcjMyMF9jbGtfaW5pdCh2b2lkIF9faW9tZW0gKnNiLCBzdHJ1Y3QgY2xrX2NvcmUgKnJjKSB7 IH0KICNlbmRpZgogCiB2b2lkIF9faW5pdCBzcGVhcjN4eF9jbGtfaW5pdCh2b2lkIF9faW9tZW0g Km1pc2NfYmFzZSwgdm9pZCBfX2lvbWVtICpzb2NfY29uZmlnX2Jhc2UpCiB7Ci0Jc3RydWN0IGNs ayAqY2xrLCAqY2xrMSwgKnJhc19hcGJfY2xrOworCXN0cnVjdCBjbGtfY29yZSAqY2xrLCAqY2xr MSwgKnJhc19hcGJfY2xrOwogCiAJY2xrID0gY2xrX3JlZ2lzdGVyX2ZpeGVkX3JhdGUoTlVMTCwg Im9zY18zMmtfY2xrIiwgTlVMTCwgQ0xLX0lTX1JPT1QsCiAJCQkzMjAwMCk7CmRpZmYgLS1naXQg YS9kcml2ZXJzL2Nsay9zcGVhci9zcGVhcjZ4eF9jbG9jay5jIGIvZHJpdmVycy9jbGsvc3BlYXIv c3BlYXI2eHhfY2xvY2suYwppbmRleCA0ZjY0OWM5Li4zNjRhOGQzIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2Nsay9zcGVhci9zcGVhcjZ4eF9jbG9jay5jCisrKyBiL2RyaXZlcnMvY2xrL3NwZWFyL3Nw ZWFyNnh4X2Nsb2NrLmMKQEAgLTksNyArOSw2IEBACiAgKiB3YXJyYW50eSBvZiBhbnkga2luZCwg d2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCiAgKi8KIAotI2luY2x1ZGUgPGxpbnV4L2Nsay5o PgogI2luY2x1ZGUgPGxpbnV4L2Nsa2Rldi5oPgogI2luY2x1ZGUgPGxpbnV4L2lvLmg+CiAjaW5j bHVkZSA8bGludXgvc3BpbmxvY2tfdHlwZXMuaD4KQEAgLTExNiw3ICsxMTUsNyBAQCBzdGF0aWMg c3RydWN0IGdwdF9yYXRlX3RibCBncHRfcnRibFtdID0gewogCiB2b2lkIF9faW5pdCBzcGVhcjZ4 eF9jbGtfaW5pdCh2b2lkIF9faW9tZW0gKm1pc2NfYmFzZSkKIHsKLQlzdHJ1Y3QgY2xrICpjbGss ICpjbGsxOworCXN0cnVjdCBjbGtfY29yZSAqY2xrLCAqY2xrMTsKIAogCWNsayA9IGNsa19yZWdp c3Rlcl9maXhlZF9yYXRlKE5VTEwsICJvc2NfMzJrX2NsayIsIE5VTEwsIENMS19JU19ST09ULAog CQkJMzIwMDApOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvc3QvY2xrLWZsZXhnZW4uYyBiL2Ry aXZlcnMvY2xrL3N0L2Nsay1mbGV4Z2VuLmMKaW5kZXggMjI4MmNlZi4uNjk5ZjdhMSAxMDA2NDQK LS0tIGEvZHJpdmVycy9jbGsvc3QvY2xrLWZsZXhnZW4uYworKysgYi9kcml2ZXJzL2Nsay9zdC9j bGstZmxleGdlbi5jCkBAIC0xNjMsMTIgKzE2MywxMiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGNs a19vcHMgZmxleGdlbl9vcHMgPSB7CiAJLnNldF9yYXRlID0gZmxleGdlbl9zZXRfcmF0ZSwKIH07 CiAKLXN0cnVjdCBjbGsgKmNsa19yZWdpc3Rlcl9mbGV4Z2VuKGNvbnN0IGNoYXIgKm5hbWUsCitz dHJ1Y3QgY2xrX2NvcmUgKmNsa19yZWdpc3Rlcl9mbGV4Z2VuKGNvbnN0IGNoYXIgKm5hbWUsCiAJ CQkJY29uc3QgY2hhciAqKnBhcmVudF9uYW1lcywgdTggbnVtX3BhcmVudHMsCiAJCQkJdm9pZCBf X2lvbWVtICpyZWcsIHNwaW5sb2NrX3QgKmxvY2ssIHUzMiBpZHgsCiAJCQkJdW5zaWduZWQgbG9u ZyBmbGV4Z2VuX2ZsYWdzKSB7CiAJc3RydWN0IGZsZXhnZW4gKmZneGJhcjsKLQlzdHJ1Y3QgY2xr ICpjbGs7CisJc3RydWN0IGNsa19jb3JlICpjbGs7CiAJc3RydWN0IGNsa19pbml0X2RhdGEgaW5p dDsKIAl1MzIgIHhiYXJfc2hpZnQ7CiAJdm9pZCBfX2lvbWVtICp4YmFyX3JlZywgKmZkaXZfcmVn OwpAQCAtMjIzLDggKzIyMyw4IEBAIHN0cnVjdCBjbGsgKmNsa19yZWdpc3Rlcl9mbGV4Z2VuKGNv bnN0IGNoYXIgKm5hbWUsCiAJZWxzZQogCQlwcl9kZWJ1ZygiJXM6IHBhcmVudCAlcyByYXRlICV1 XG4iLAogCQkJX19jbGtfZ2V0X25hbWUoY2xrKSwKLQkJCV9fY2xrX2dldF9uYW1lKGNsa19nZXRf cGFyZW50KGNsaykpLAotCQkJKHVuc2lnbmVkIGludCljbGtfZ2V0X3JhdGUoY2xrKSk7CisJCQlf X2Nsa19nZXRfbmFtZShjbGtfcHJvdmlkZXJfZ2V0X3BhcmVudChjbGspKSwKKwkJCSh1bnNpZ25l ZCBpbnQpY2xrX3Byb3ZpZGVyX2dldF9yYXRlKGNsaykpOwogCXJldHVybiBjbGs7CiB9CiAKQEAg LTI4Myw3ICsyODMsNyBAQCB2b2lkIF9faW5pdCBzdF9vZl9mbGV4Z2VuX3NldHVwKHN0cnVjdCBk ZXZpY2Vfbm9kZSAqbnApCiAJCWdvdG8gZXJyOwogCX0KIAotCWNsa19kYXRhLT5jbGtzID0ga2Nh bGxvYyhjbGtfZGF0YS0+Y2xrX251bSwgc2l6ZW9mKHN0cnVjdCBjbGsgKiksCisJY2xrX2RhdGEt PmNsa3MgPSBrY2FsbG9jKGNsa19kYXRhLT5jbGtfbnVtLCBzaXplb2Yoc3RydWN0IGNsa19jb3Jl ICopLAogCQkJR0ZQX0tFUk5FTCk7CiAJaWYgKCFjbGtfZGF0YS0+Y2xrcykKIAkJZ290byBlcnI7 CkBAIC0yOTMsNyArMjkzLDcgQEAgdm9pZCBfX2luaXQgc3Rfb2ZfZmxleGdlbl9zZXR1cChzdHJ1 Y3QgZGV2aWNlX25vZGUgKm5wKQogCQlnb3RvIGVycjsKIAogCWZvciAoaSA9IDA7IGkgPCBjbGtf ZGF0YS0+Y2xrX251bTsgaSsrKSB7Ci0JCXN0cnVjdCBjbGsgKmNsazsKKwkJc3RydWN0IGNsa19j b3JlICpjbGs7CiAJCWNvbnN0IGNoYXIgKmNsa19uYW1lOwogCiAJCWlmIChvZl9wcm9wZXJ0eV9y ZWFkX3N0cmluZ19pbmRleChucCwgImNsb2NrLW91dHB1dC1uYW1lcyIsCmRpZmYgLS1naXQgYS9k cml2ZXJzL2Nsay9zdC9jbGtnZW4tZnN5bi5jIGIvZHJpdmVycy9jbGsvc3QvY2xrZ2VuLWZzeW4u YwppbmRleCBhZjk0ZWQ4Li5jZWRhMWYyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay9zdC9jbGtn ZW4tZnN5bi5jCisrKyBiL2RyaXZlcnMvY2xrL3N0L2Nsa2dlbi1mc3luLmMKQEAgLTYxNCwxMyAr NjE0LDEzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrX29wcyBzdF9xdWFkZnNfcGxsX2MzMl9v cHMgPSB7CiAJLnNldF9yYXRlCT0gcXVhZGZzX3BsbF9mczY2MGMzMl9zZXRfcmF0ZSwKIH07CiAK LXN0YXRpYyBzdHJ1Y3QgY2xrICogX19pbml0IHN0X2Nsa19yZWdpc3Rlcl9xdWFkZnNfcGxsKAor c3RhdGljIHN0cnVjdCBjbGtfY29yZSAqIF9faW5pdCBzdF9jbGtfcmVnaXN0ZXJfcXVhZGZzX3Bs bCgKIAkJY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqcGFyZW50X25hbWUsCiAJCXN0cnVj dCBjbGtnZW5fcXVhZGZzX2RhdGEgKnF1YWRmcywgdm9pZCBfX2lvbWVtICpyZWcsCiAJCXNwaW5s b2NrX3QgKmxvY2spCiB7CiAJc3RydWN0IHN0X2Nsa19xdWFkZnNfcGxsICpwbGw7Ci0Jc3RydWN0 IGNsayAqY2xrOworCXN0cnVjdCBjbGtfY29yZSAqY2xrOwogCXN0cnVjdCBjbGtfaW5pdF9kYXRh IGluaXQ7CiAKIAkvKgpAQCAtMTAxOCwxMyArMTAxOCwxMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0 IGNsa19vcHMgc3RfcXVhZGZzX29wcyA9IHsKIAkucmVjYWxjX3JhdGUJPSBxdWFkZnNfcmVjYWxj X3JhdGUsCiB9OwogCi1zdGF0aWMgc3RydWN0IGNsayAqIF9faW5pdCBzdF9jbGtfcmVnaXN0ZXJf cXVhZGZzX2ZzeW50aCgKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgKiBfX2luaXQgc3RfY2xrX3Jl Z2lzdGVyX3F1YWRmc19mc3ludGgoCiAJCWNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnBh cmVudF9uYW1lLAogCQlzdHJ1Y3QgY2xrZ2VuX3F1YWRmc19kYXRhICpxdWFkZnMsIHZvaWQgX19p b21lbSAqcmVnLCB1MzIgY2hhbiwKIAkJc3BpbmxvY2tfdCAqbG9jaykKIHsKIAlzdHJ1Y3Qgc3Rf Y2xrX3F1YWRmc19mc3ludGggKmZzOwotCXN0cnVjdCBjbGsgKmNsazsKKwlzdHJ1Y3QgY2xrX2Nv cmUgKmNsazsKIAlzdHJ1Y3QgY2xrX2luaXRfZGF0YSBpbml0OwogCiAJLyoKQEAgLTExMDIsNyAr MTEwMiw3IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBzdF9vZl9jcmVhdGVfcXVhZGZzX2ZzeW50aHMo CiAJCXJldHVybjsKIAogCWNsa19kYXRhLT5jbGtfbnVtID0gUVVBREZTX01BWF9DSEFOOwotCWNs a19kYXRhLT5jbGtzID0ga3phbGxvYyhRVUFERlNfTUFYX0NIQU4gKiBzaXplb2Yoc3RydWN0IGNs ayAqKSwKKwljbGtfZGF0YS0+Y2xrcyA9IGt6YWxsb2MoUVVBREZTX01BWF9DSEFOICogc2l6ZW9m KHN0cnVjdCBjbGtfY29yZSAqKSwKIAkJCQkgR0ZQX0tFUk5FTCk7CiAKIAlpZiAoIWNsa19kYXRh LT5jbGtzKSB7CkBAIC0xMTExLDcgKzExMTEsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgc3Rfb2Zf Y3JlYXRlX3F1YWRmc19mc3ludGhzKAogCX0KIAogCWZvciAoZnNjaGFuID0gMDsgZnNjaGFuIDwg UVVBREZTX01BWF9DSEFOOyBmc2NoYW4rKykgewotCQlzdHJ1Y3QgY2xrICpjbGs7CisJCXN0cnVj dCBjbGtfY29yZSAqY2xrOwogCQljb25zdCBjaGFyICpjbGtfbmFtZTsKIAogCQlpZiAob2ZfcHJv cGVydHlfcmVhZF9zdHJpbmdfaW5kZXgobnAsICJjbG9jay1vdXRwdXQtbmFtZXMiLApAQCAtMTEz Niw4ICsxMTM2LDggQEAgc3RhdGljIHZvaWQgX19pbml0IHN0X29mX2NyZWF0ZV9xdWFkZnNfZnN5 bnRocygKIAkJCWNsa19kYXRhLT5jbGtzW2ZzY2hhbl0gPSBjbGs7CiAJCQlwcl9kZWJ1ZygiJXM6 IHBhcmVudCAlcyByYXRlICV1XG4iLAogCQkJCV9fY2xrX2dldF9uYW1lKGNsayksCi0JCQkJX19j bGtfZ2V0X25hbWUoY2xrX2dldF9wYXJlbnQoY2xrKSksCi0JCQkJKHVuc2lnbmVkIGludCljbGtf Z2V0X3JhdGUoY2xrKSk7CisJCQkJX19jbGtfZ2V0X25hbWUoY2xrX3Byb3ZpZGVyX2dldF9wYXJl bnQoY2xrKSksCisJCQkJKHVuc2lnbmVkIGludCljbGtfcHJvdmlkZXJfZ2V0X3JhdGUoY2xrKSk7 CiAJCX0KIAl9CiAKQEAgLTExNDcsNyArMTE0Nyw3IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBzdF9v Zl9jcmVhdGVfcXVhZGZzX2ZzeW50aHMoCiBzdGF0aWMgdm9pZCBfX2luaXQgc3Rfb2ZfcXVhZGZz X3NldHVwKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApCiB7CiAJY29uc3Qgc3RydWN0IG9mX2Rldmlj ZV9pZCAqbWF0Y2g7Ci0Jc3RydWN0IGNsayAqY2xrOworCXN0cnVjdCBjbGtfY29yZSAqY2xrOwog CWNvbnN0IGNoYXIgKnBsbF9uYW1lLCAqY2xrX3BhcmVudF9uYW1lOwogCXZvaWQgX19pb21lbSAq cmVnOwogCXNwaW5sb2NrX3QgKmxvY2s7CkBAIC0xMTgxLDggKzExODEsOCBAQCBzdGF0aWMgdm9p ZCBfX2luaXQgc3Rfb2ZfcXVhZGZzX3NldHVwKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApCiAJZWxz ZQogCQlwcl9kZWJ1ZygiJXM6IHBhcmVudCAlcyByYXRlICV1XG4iLAogCQkJX19jbGtfZ2V0X25h bWUoY2xrKSwKLQkJCV9fY2xrX2dldF9uYW1lKGNsa19nZXRfcGFyZW50KGNsaykpLAotCQkJKHVu c2lnbmVkIGludCljbGtfZ2V0X3JhdGUoY2xrKSk7CisJCQlfX2Nsa19nZXRfbmFtZShjbGtfcHJv dmlkZXJfZ2V0X3BhcmVudChjbGspKSwKKwkJCSh1bnNpZ25lZCBpbnQpY2xrX3Byb3ZpZGVyX2dl dF9yYXRlKGNsaykpOwogCiAJc3Rfb2ZfY3JlYXRlX3F1YWRmc19mc3ludGhzKG5wLCBwbGxfbmFt ZSwKIAkJCQkgICAgKHN0cnVjdCBjbGtnZW5fcXVhZGZzX2RhdGEgKiltYXRjaC0+ZGF0YSwKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3N0L2Nsa2dlbi1tdXguYyBiL2RyaXZlcnMvY2xrL3N0L2Ns a2dlbi1tdXguYwppbmRleCA3OWRjNDBiLi5kMmE5NTFmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Ns ay9zdC9jbGtnZW4tbXV4LmMKKysrIGIvZHJpdmVycy9jbGsvc3QvY2xrZ2VuLW11eC5jCkBAIC0y MTUsNyArMjE1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtfb3BzIGNsa2dlbmFfZGl2bXV4 X29wcyA9IHsKIC8qKgogICogY2xrX3JlZ2lzdGVyX2dlbmFtdXggLSByZWdpc3RlciBhIGdlbmFt dXggY2xvY2sgd2l0aCB0aGUgY2xvY2sgZnJhbWV3b3JrCiAgKi8KLXN0cnVjdCBjbGsgKmNsa19y ZWdpc3Rlcl9nZW5hbXV4KGNvbnN0IGNoYXIgKm5hbWUsCitzdHJ1Y3QgY2xrX2NvcmUgKmNsa19y ZWdpc3Rlcl9nZW5hbXV4KGNvbnN0IGNoYXIgKm5hbWUsCiAJCQkJY29uc3QgY2hhciAqKnBhcmVu dF9uYW1lcywgdTggbnVtX3BhcmVudHMsCiAJCQkJdm9pZCBfX2lvbWVtICpyZWcsCiAJCQkJY29u c3Qgc3RydWN0IGNsa2dlbmFfZGl2bXV4X2RhdGEgKm11eGRhdGEsCkBAIC0yMjcsNyArMjI3LDcg QEAgc3RydWN0IGNsayAqY2xrX3JlZ2lzdGVyX2dlbmFtdXgoY29uc3QgY2hhciAqbmFtZSwKIAlj b25zdCBpbnQgbXV4X3dpZHRoID0gMjsKIAljb25zdCBpbnQgZGl2aWRlcl93aWR0aCA9IDU7CiAJ c3RydWN0IGNsa2dlbmFfZGl2bXV4ICpnZW5hbXV4OwotCXN0cnVjdCBjbGsgKmNsazsKKwlzdHJ1 Y3QgY2xrX2NvcmUgKmNsazsKIAlzdHJ1Y3QgY2xrX2luaXRfZGF0YSBpbml0OwogCWludCBpOwog CkBAIC0yODAsOCArMjgwLDggQEAgc3RydWN0IGNsayAqY2xrX3JlZ2lzdGVyX2dlbmFtdXgoY29u c3QgY2hhciAqbmFtZSwKIAogCXByX2RlYnVnKCIlczogcGFyZW50ICVzIHJhdGUgJWx1XG4iLAog CQkJX19jbGtfZ2V0X25hbWUoY2xrKSwKLQkJCV9fY2xrX2dldF9uYW1lKGNsa19nZXRfcGFyZW50 KGNsaykpLAotCQkJY2xrX2dldF9yYXRlKGNsaykpOworCQkJX19jbGtfZ2V0X25hbWUoY2xrX3By b3ZpZGVyX2dldF9wYXJlbnQoY2xrKSksCisJCQljbGtfcHJvdmlkZXJfZ2V0X3JhdGUoY2xrKSk7 CiBlcnI6CiAJcmV0dXJuIGNsazsKIH0KQEAgLTQxMywxNCArNDEzLDE0IEBAIHZvaWQgX19pbml0 IHN0X29mX2Nsa2dlbmFfZGl2bXV4X3NldHVwKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApCiAJCWdv dG8gZXJyOwogCiAJY2xrX2RhdGEtPmNsa19udW0gPSBkYXRhLT5udW1fb3V0cHV0czsKLQljbGtf ZGF0YS0+Y2xrcyA9IGt6YWxsb2MoY2xrX2RhdGEtPmNsa19udW0gKiBzaXplb2Yoc3RydWN0IGNs ayAqKSwKKwljbGtfZGF0YS0+Y2xrcyA9IGt6YWxsb2MoY2xrX2RhdGEtPmNsa19udW0gKiBzaXpl b2Yoc3RydWN0IGNsa19jb3JlICopLAogCQkJCSBHRlBfS0VSTkVMKTsKIAogCWlmICghY2xrX2Rh dGEtPmNsa3MpCiAJCWdvdG8gZXJyOwogCiAJZm9yIChpID0gMDsgaSA8IGNsa19kYXRhLT5jbGtf bnVtOyBpKyspIHsKLQkJc3RydWN0IGNsayAqY2xrOworCQlzdHJ1Y3QgY2xrX2NvcmUgKmNsazsK IAkJY29uc3QgY2hhciAqY2xrX25hbWU7CiAKIAkJaWYgKG9mX3Byb3BlcnR5X3JlYWRfc3RyaW5n X2luZGV4KG5wLCAiY2xvY2stb3V0cHV0LW5hbWVzIiwKQEAgLTQ5MCw3ICs0OTAsNyBAQCB2b2lk IF9faW5pdCBzdF9vZl9jbGtnZW5hX3ByZWRpdl9zZXR1cChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5w KQogCWNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgKm1hdGNoOwogCXZvaWQgX19pb21lbSAqcmVn OwogCWNvbnN0IGNoYXIgKnBhcmVudF9uYW1lLCAqY2xrX25hbWU7Ci0Jc3RydWN0IGNsayAqY2xr OworCXN0cnVjdCBjbGtfY29yZSAqY2xrOwogCXN0cnVjdCBjbGtnZW5hX3ByZWRpdl9kYXRhICpk YXRhOwogCiAJbWF0Y2ggPSBvZl9tYXRjaF9ub2RlKGNsa2dlbmFfcHJlZGl2X29mX21hdGNoLCBu cCk7CkBAIC01MjIsOCArNTIyLDggQEAgdm9pZCBfX2luaXQgc3Rfb2ZfY2xrZ2VuYV9wcmVkaXZf c2V0dXAoc3RydWN0IGRldmljZV9ub2RlICpucCkKIAlvZl9jbGtfYWRkX3Byb3ZpZGVyKG5wLCBv Zl9jbGtfc3JjX3NpbXBsZV9nZXQsIGNsayk7CiAJcHJfZGVidWcoIiVzOiBwYXJlbnQgJXMgcmF0 ZSAldVxuIiwKIAkJX19jbGtfZ2V0X25hbWUoY2xrKSwKLQkJX19jbGtfZ2V0X25hbWUoY2xrX2dl dF9wYXJlbnQoY2xrKSksCi0JCSh1bnNpZ25lZCBpbnQpY2xrX2dldF9yYXRlKGNsaykpOworCQlf X2Nsa19nZXRfbmFtZShjbGtfcHJvdmlkZXJfZ2V0X3BhcmVudChjbGspKSwKKwkJKHVuc2lnbmVk IGludCljbGtfcHJvdmlkZXJfZ2V0X3JhdGUoY2xrKSk7CiAKIAlyZXR1cm47CiB9CkBAIC02MjUs NyArNjI1LDcgQEAgc3RhdGljIHN0cnVjdCBvZl9kZXZpY2VfaWQgbXV4X29mX21hdGNoW10gPSB7 CiB2b2lkIF9faW5pdCBzdF9vZl9jbGtnZW5fbXV4X3NldHVwKHN0cnVjdCBkZXZpY2Vfbm9kZSAq bnApCiB7CiAJY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCAqbWF0Y2g7Ci0Jc3RydWN0IGNsayAq Y2xrOworCXN0cnVjdCBjbGtfY29yZSAqY2xrOwogCXZvaWQgX19pb21lbSAqcmVnOwogCWNvbnN0 IGNoYXIgKipwYXJlbnRzOwogCWludCBudW1fcGFyZW50czsKQEAgLTY2Miw4ICs2NjIsOCBAQCB2 b2lkIF9faW5pdCBzdF9vZl9jbGtnZW5fbXV4X3NldHVwKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAp CiAKIAlwcl9kZWJ1ZygiJXM6IHBhcmVudCAlcyByYXRlICV1XG4iLAogCQkJX19jbGtfZ2V0X25h bWUoY2xrKSwKLQkJCV9fY2xrX2dldF9uYW1lKGNsa19nZXRfcGFyZW50KGNsaykpLAotCQkJKHVu c2lnbmVkIGludCljbGtfZ2V0X3JhdGUoY2xrKSk7CisJCQlfX2Nsa19nZXRfbmFtZShjbGtfcHJv dmlkZXJfZ2V0X3BhcmVudChjbGspKSwKKwkJCSh1bnNpZ25lZCBpbnQpY2xrX3Byb3ZpZGVyX2dl dF9yYXRlKGNsaykpOwogCiAJb2ZfY2xrX2FkZF9wcm92aWRlcihucCwgb2ZfY2xrX3NyY19zaW1w bGVfZ2V0LCBjbGspOwogCkBAIC03MjYsMTQgKzcyNiwxNCBAQCB2b2lkIF9faW5pdCBzdF9vZl9j bGtnZW5fdmNjX3NldHVwKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApCiAJCWdvdG8gZXJyOwogCiAJ Y2xrX2RhdGEtPmNsa19udW0gPSBWQ0NfTUFYX0NIQU5ORUxTOwotCWNsa19kYXRhLT5jbGtzID0g a3phbGxvYyhjbGtfZGF0YS0+Y2xrX251bSAqIHNpemVvZihzdHJ1Y3QgY2xrICopLAorCWNsa19k YXRhLT5jbGtzID0ga3phbGxvYyhjbGtfZGF0YS0+Y2xrX251bSAqIHNpemVvZihzdHJ1Y3QgY2xr X2NvcmUgKiksCiAJCQkJIEdGUF9LRVJORUwpOwogCiAJaWYgKCFjbGtfZGF0YS0+Y2xrcykKIAkJ Z290byBlcnI7CiAKIAlmb3IgKGkgPSAwOyBpIDwgY2xrX2RhdGEtPmNsa19udW07IGkrKykgewot CQlzdHJ1Y3QgY2xrICpjbGs7CisJCXN0cnVjdCBjbGtfY29yZSAqY2xrOwogCQljb25zdCBjaGFy ICpjbGtfbmFtZTsKIAkJc3RydWN0IGNsa19nYXRlICpnYXRlOwogCQlzdHJ1Y3QgY2xrX2Rpdmlk ZXIgKmRpdjsKQEAgLTc5Niw4ICs3OTYsOCBAQCB2b2lkIF9faW5pdCBzdF9vZl9jbGtnZW5fdmNj X3NldHVwKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApCiAKIAkJcHJfZGVidWcoIiVzOiBwYXJlbnQg JXMgcmF0ZSAldVxuIiwKIAkJCV9fY2xrX2dldF9uYW1lKGNsayksCi0JCQlfX2Nsa19nZXRfbmFt ZShjbGtfZ2V0X3BhcmVudChjbGspKSwKLQkJCSh1bnNpZ25lZCBpbnQpY2xrX2dldF9yYXRlKGNs aykpOworCQkJX19jbGtfZ2V0X25hbWUoY2xrX3Byb3ZpZGVyX2dldF9wYXJlbnQoY2xrKSksCisJ CQkodW5zaWduZWQgaW50KWNsa19wcm92aWRlcl9nZXRfcmF0ZShjbGspKTsKIAogCQljbGtfZGF0 YS0+Y2xrc1tpXSA9IGNsazsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9zdC9jbGtnZW4t cGxsLmMgYi9kcml2ZXJzL2Nsay9zdC9jbGtnZW4tcGxsLmMKaW5kZXggMjk3NjlkNy4uMzJiYWMw MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvc3QvY2xrZ2VuLXBsbC5jCisrKyBiL2RyaXZlcnMv Y2xrL3N0L2Nsa2dlbi1wbGwuYwpAQCAtMzkwLDEzICszOTAsMTMgQEAgc3RhdGljIGNvbnN0IHN0 cnVjdCBjbGtfb3BzIHN0X3BsbDEyMDBjMzJfb3BzID0gewogCS5yZWNhbGNfcmF0ZQk9IHJlY2Fs Y19zdG1fcGxsMTIwMGMzMiwKIH07CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrICogX19pbml0IGNsa2dl bl9wbGxfcmVnaXN0ZXIoY29uc3QgY2hhciAqcGFyZW50X25hbWUsCitzdGF0aWMgc3RydWN0IGNs a19jb3JlICogX19pbml0IGNsa2dlbl9wbGxfcmVnaXN0ZXIoY29uc3QgY2hhciAqcGFyZW50X25h bWUsCiAJCQkJc3RydWN0IGNsa2dlbl9wbGxfZGF0YQkqcGxsX2RhdGEsCiAJCQkJdm9pZCBfX2lv bWVtICpyZWcsCiAJCQkJY29uc3QgY2hhciAqY2xrX25hbWUpCiB7CiAJc3RydWN0IGNsa2dlbl9w bGwgKnBsbDsKLQlzdHJ1Y3QgY2xrICpjbGs7CisJc3RydWN0IGNsa19jb3JlICpjbGs7CiAJc3Ry dWN0IGNsa19pbml0X2RhdGEgaW5pdDsKIAogCXBsbCA9IGt6YWxsb2Moc2l6ZW9mKCpwbGwpLCBH RlBfS0VSTkVMKTsKQEAgLTQyMiwxNiArNDIyLDE2IEBAIHN0YXRpYyBzdHJ1Y3QgY2xrICogX19p bml0IGNsa2dlbl9wbGxfcmVnaXN0ZXIoY29uc3QgY2hhciAqcGFyZW50X25hbWUsCiAKIAlwcl9k ZWJ1ZygiJXM6IHBhcmVudCAlcyByYXRlICVsdVxuIiwKIAkJCV9fY2xrX2dldF9uYW1lKGNsayks Ci0JCQlfX2Nsa19nZXRfbmFtZShjbGtfZ2V0X3BhcmVudChjbGspKSwKLQkJCWNsa19nZXRfcmF0 ZShjbGspKTsKKwkJCV9fY2xrX2dldF9uYW1lKGNsa19wcm92aWRlcl9nZXRfcGFyZW50KGNsaykp LAorCQkJY2xrX3Byb3ZpZGVyX2dldF9yYXRlKGNsaykpOwogCiAJcmV0dXJuIGNsazsKIH0KIAot c3RhdGljIHN0cnVjdCBjbGsgKiBfX2luaXQgY2xrZ2VuX2M2NV9sc2Rpdl9yZWdpc3Rlcihjb25z dCBjaGFyICpwYXJlbnRfbmFtZSwKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgKiBfX2luaXQgY2xr Z2VuX2M2NV9sc2Rpdl9yZWdpc3Rlcihjb25zdCBjaGFyICpwYXJlbnRfbmFtZSwKIAkJCQkJCSAg ICAgY29uc3QgY2hhciAqY2xrX25hbWUpCiB7Ci0Jc3RydWN0IGNsayAqY2xrOworCXN0cnVjdCBj bGtfY29yZSAqY2xrOwogCiAJY2xrID0gY2xrX3JlZ2lzdGVyX2ZpeGVkX2ZhY3RvcihOVUxMLCBj bGtfbmFtZSwgcGFyZW50X25hbWUsIDAsIDEsIDIpOwogCWlmIChJU19FUlIoY2xrKSkKQEAgLTQz OSw4ICs0MzksOCBAQCBzdGF0aWMgc3RydWN0IGNsayAqIF9faW5pdCBjbGtnZW5fYzY1X2xzZGl2 X3JlZ2lzdGVyKGNvbnN0IGNoYXIgKnBhcmVudF9uYW1lLAogCiAJcHJfZGVidWcoIiVzOiBwYXJl bnQgJXMgcmF0ZSAlbHVcbiIsCiAJCQlfX2Nsa19nZXRfbmFtZShjbGspLAotCQkJX19jbGtfZ2V0 X25hbWUoY2xrX2dldF9wYXJlbnQoY2xrKSksCi0JCQljbGtfZ2V0X3JhdGUoY2xrKSk7CisJCQlf X2Nsa19nZXRfbmFtZShjbGtfcHJvdmlkZXJfZ2V0X3BhcmVudChjbGspKSwKKwkJCWNsa19wcm92 aWRlcl9nZXRfcmF0ZShjbGspKTsKIAlyZXR1cm4gY2xrOwogfQogCkBAIC00ODQsNyArNDg0LDcg QEAgc3RhdGljIHZvaWQgX19pbml0IGNsa2dlbmFfYzY1X3BsbF9zZXR1cChzdHJ1Y3QgZGV2aWNl X25vZGUgKm5wKQogCQlyZXR1cm47CiAKIAljbGtfZGF0YS0+Y2xrX251bSA9IG51bV9wbGxfb3V0 cHV0czsKLQljbGtfZGF0YS0+Y2xrcyA9IGt6YWxsb2MoY2xrX2RhdGEtPmNsa19udW0gKiBzaXpl b2Yoc3RydWN0IGNsayAqKSwKKwljbGtfZGF0YS0+Y2xrcyA9IGt6YWxsb2MoY2xrX2RhdGEtPmNs a19udW0gKiBzaXplb2Yoc3RydWN0IGNsa19jb3JlICopLAogCQkJCSBHRlBfS0VSTkVMKTsKIAog CWlmICghY2xrX2RhdGEtPmNsa3MpCkBAIC01NDMsMTQgKzU0MywxNCBAQCBlcnI6CiBDTEtfT0Zf REVDTEFSRShjbGtnZW5hX2M2NV9wbGxzLAogCSAgICAgICAic3QsY2xrZ2VuYS1wbGxzLWM2NSIs IGNsa2dlbmFfYzY1X3BsbF9zZXR1cCk7CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrICogX19pbml0IGNs a2dlbl9vZGZfcmVnaXN0ZXIoY29uc3QgY2hhciAqcGFyZW50X25hbWUsCitzdGF0aWMgc3RydWN0 IGNsa19jb3JlICogX19pbml0IGNsa2dlbl9vZGZfcmVnaXN0ZXIoY29uc3QgY2hhciAqcGFyZW50 X25hbWUsCiAJCQkJCSAgICAgICB2b2lkICogX19pb21lbSByZWcsCiAJCQkJCSAgICAgICBzdHJ1 Y3QgY2xrZ2VuX3BsbF9kYXRhICpwbGxfZGF0YSwKIAkJCQkJICAgICAgIGludCBvZGYsCiAJCQkJ CSAgICAgICBzcGlubG9ja190ICpvZGZfbG9jaywKIAkJCQkJICAgICAgIGNvbnN0IGNoYXIgKm9k Zl9uYW1lKQogewotCXN0cnVjdCBjbGsgKmNsazsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmNsazsKIAl1 bnNpZ25lZCBsb25nIGZsYWdzOwogCXN0cnVjdCBjbGtfZ2F0ZSAqZ2F0ZTsKIAlzdHJ1Y3QgY2xr X2RpdmlkZXIgKmRpdjsKQEAgLTU4OCw4ICs1ODgsOCBAQCBzdGF0aWMgc3RydWN0IGNsayAqIF9f aW5pdCBjbGtnZW5fb2RmX3JlZ2lzdGVyKGNvbnN0IGNoYXIgKnBhcmVudF9uYW1lLAogCiAJcHJf ZGVidWcoIiVzOiBwYXJlbnQgJXMgcmF0ZSAlbHVcbiIsCiAJCQlfX2Nsa19nZXRfbmFtZShjbGsp LAotCQkJX19jbGtfZ2V0X25hbWUoY2xrX2dldF9wYXJlbnQoY2xrKSksCi0JCQljbGtfZ2V0X3Jh dGUoY2xrKSk7CisJCQlfX2Nsa19nZXRfbmFtZShjbGtfcHJvdmlkZXJfZ2V0X3BhcmVudChjbGsp KSwKKwkJCWNsa19wcm92aWRlcl9nZXRfcmF0ZShjbGspKTsKIAlyZXR1cm4gY2xrOwogfQogCkBA IC02NDAsNyArNjQwLDcgQEAgc3RhdGljIHN0cnVjdCBvZl9kZXZpY2VfaWQgYzMyX3BsbF9vZl9t YXRjaFtdID0gewogc3RhdGljIHZvaWQgX19pbml0IGNsa2dlbl9jMzJfcGxsX3NldHVwKHN0cnVj dCBkZXZpY2Vfbm9kZSAqbnApCiB7CiAJY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCAqbWF0Y2g7 Ci0Jc3RydWN0IGNsayAqY2xrOworCXN0cnVjdCBjbGtfY29yZSAqY2xrOwogCWNvbnN0IGNoYXIg KnBhcmVudF9uYW1lLCAqcGxsX25hbWU7CiAJdm9pZCBfX2lvbWVtICpwbGxfYmFzZTsKIAlpbnQg bnVtX29kZnMsIG9kZjsKQEAgLTY3NiwxNCArNjc2LDE0IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBj bGtnZW5fYzMyX3BsbF9zZXR1cChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKQogCQlyZXR1cm47CiAK IAljbGtfZGF0YS0+Y2xrX251bSA9IG51bV9vZGZzOwotCWNsa19kYXRhLT5jbGtzID0ga3phbGxv YyhjbGtfZGF0YS0+Y2xrX251bSAqIHNpemVvZihzdHJ1Y3QgY2xrICopLAorCWNsa19kYXRhLT5j bGtzID0ga3phbGxvYyhjbGtfZGF0YS0+Y2xrX251bSAqIHNpemVvZihzdHJ1Y3QgY2xrX2NvcmUg KiksCiAJCQkJIEdGUF9LRVJORUwpOwogCiAJaWYgKCFjbGtfZGF0YS0+Y2xrcykKIAkJZ290byBl cnI7CiAKIAlmb3IgKG9kZiA9IDA7IG9kZiA8IG51bV9vZGZzOyBvZGYrKykgewotCQlzdHJ1Y3Qg Y2xrICpjbGs7CisJCXN0cnVjdCBjbGtfY29yZSAqY2xrOwogCQljb25zdCBjaGFyICpjbGtfbmFt ZTsKIAogCQlpZiAob2ZfcHJvcGVydHlfcmVhZF9zdHJpbmdfaW5kZXgobnAsICJjbG9jay1vdXRw dXQtbmFtZXMiLApAQCAtNzIzLDcgKzcyMyw3IEBAIHN0YXRpYyBzdHJ1Y3Qgb2ZfZGV2aWNlX2lk IGMzMl9ncHVfcGxsX29mX21hdGNoW10gPSB7CiBzdGF0aWMgdm9pZCBfX2luaXQgY2xrZ2VuZ3B1 X2MzMl9wbGxfc2V0dXAoc3RydWN0IGRldmljZV9ub2RlICpucCkKIHsKIAljb25zdCBzdHJ1Y3Qg b2ZfZGV2aWNlX2lkICptYXRjaDsKLQlzdHJ1Y3QgY2xrICpjbGs7CisJc3RydWN0IGNsa19jb3Jl ICpjbGs7CiAJY29uc3QgY2hhciAqcGFyZW50X25hbWU7CiAJdm9pZCBfX2lvbWVtICpyZWc7CiAJ Y29uc3QgY2hhciAqY2xrX25hbWU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9zdW54aS9jbGst YTEwLWhvc2MuYyBiL2RyaXZlcnMvY2xrL3N1bnhpL2Nsay1hMTAtaG9zYy5jCmluZGV4IDA0ODFk NWQuLmM1ZTRjNDEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL3N1bnhpL2Nsay1hMTAtaG9zYy5j CisrKyBiL2RyaXZlcnMvY2xrL3N1bnhpL2Nsay1hMTAtaG9zYy5jCkBAIC0yNSw3ICsyNSw3IEBA IHN0YXRpYyBERUZJTkVfU1BJTkxPQ0soaG9zY19sb2NrKTsKIAogc3RhdGljIHZvaWQgX19pbml0 IHN1bjRpX29zY19jbGtfc2V0dXAoc3RydWN0IGRldmljZV9ub2RlICpub2RlKQogewotCXN0cnVj dCBjbGsgKmNsazsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmNsazsKIAlzdHJ1Y3QgY2xrX2ZpeGVkX3Jh dGUgKmZpeGVkOwogCXN0cnVjdCBjbGtfZ2F0ZSAqZ2F0ZTsKIAljb25zdCBjaGFyICpjbGtfbmFt ZSA9IG5vZGUtPm5hbWU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9zdW54aS9jbGstYTIwLWdt YWMuYyBiL2RyaXZlcnMvY2xrL3N1bnhpL2Nsay1hMjAtZ21hYy5jCmluZGV4IDUyOTZmZDYuLjYz YzdkZDUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL3N1bnhpL2Nsay1hMjAtZ21hYy5jCisrKyBi L2RyaXZlcnMvY2xrL3N1bnhpL2Nsay1hMjAtZ21hYy5jCkBAIC01NSw3ICs1NSw3IEBAIHN0YXRp YyBERUZJTkVfU1BJTkxPQ0soZ21hY19sb2NrKTsKIAogc3RhdGljIHZvaWQgX19pbml0IHN1bjdp X2EyMF9nbWFjX2Nsa19zZXR1cChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUpCiB7Ci0Jc3RydWN0 IGNsayAqY2xrOworCXN0cnVjdCBjbGtfY29yZSAqY2xrOwogCXN0cnVjdCBjbGtfbXV4ICptdXg7 CiAJc3RydWN0IGNsa19nYXRlICpnYXRlOwogCWNvbnN0IGNoYXIgKmNsa19uYW1lID0gbm9kZS0+ bmFtZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3N1bnhpL2Nsay1mYWN0b3JzLmMgYi9kcml2 ZXJzL2Nsay9zdW54aS9jbGstZmFjdG9ycy5jCmluZGV4IDIwNTdjOGEuLmJiMmQ0YjIgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvY2xrL3N1bnhpL2Nsay1mYWN0b3JzLmMKKysrIGIvZHJpdmVycy9jbGsv c3VueGkvY2xrLWZhY3RvcnMuYwpAQCAtNzksOSArNzksOSBAQCBzdGF0aWMgbG9uZyBjbGtfZmFj dG9yc19yb3VuZF9yYXRlKHN0cnVjdCBjbGtfaHcgKmh3LCB1bnNpZ25lZCBsb25nIHJhdGUsCiAK IHN0YXRpYyBsb25nIGNsa19mYWN0b3JzX2RldGVybWluZV9yYXRlKHN0cnVjdCBjbGtfaHcgKmh3 LCB1bnNpZ25lZCBsb25nIHJhdGUsCiAJCQkJICAgICAgIHVuc2lnbmVkIGxvbmcgKmJlc3RfcGFy ZW50X3JhdGUsCi0JCQkJICAgICAgIHN0cnVjdCBjbGsgKipiZXN0X3BhcmVudF9wKQorCQkJCSAg ICAgICBzdHJ1Y3QgY2xrX2NvcmUgKipiZXN0X3BhcmVudF9wKQogewotCXN0cnVjdCBjbGsgKmNs ayA9IGh3LT5jbGssICpwYXJlbnQsICpiZXN0X3BhcmVudCA9IE5VTEw7CisJc3RydWN0IGNsa19j b3JlICpjbGsgPSBody0+Y2xrLCAqcGFyZW50LCAqYmVzdF9wYXJlbnQgPSBOVUxMOwogCWludCBp LCBudW1fcGFyZW50czsKIAl1bnNpZ25lZCBsb25nIHBhcmVudF9yYXRlLCBiZXN0ID0gMCwgY2hp bGRfcmF0ZSwgYmVzdF9jaGlsZF9yYXRlID0gMDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsv c3VueGkvY2xrLXN1bjZpLWFwYjAtZ2F0ZXMuYyBiL2RyaXZlcnMvY2xrL3N1bnhpL2Nsay1zdW42 aS1hcGIwLWdhdGVzLmMKaW5kZXggZTEwZDA1Mi4uZjI5YjA2ZSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9jbGsvc3VueGkvY2xrLXN1bjZpLWFwYjAtZ2F0ZXMuYworKysgYi9kcml2ZXJzL2Nsay9zdW54 aS9jbGstc3VuNmktYXBiMC1nYXRlcy5jCkBAIC03NCw3ICs3NCw3IEBAIHN0YXRpYyBpbnQgc3Vu NmlfYTMxX2FwYjBfZ2F0ZXNfY2xrX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYp CiAJLyogV29yc3QtY2FzZSBzaXplIGFwcHJveGltYXRpb24gYW5kIG1lbW9yeSBhbGxvY2F0aW9u ICovCiAJbmdhdGVzID0gZmluZF9sYXN0X2JpdChkYXRhLT5tYXNrLCBTVU42SV9BUEIwX0dBVEVT X01BWF9TSVpFKTsKIAljbGtfZGF0YS0+Y2xrcyA9IGRldm1fa2NhbGxvYygmcGRldi0+ZGV2LCAo bmdhdGVzICsgMSksCi0JCQkJICAgICAgc2l6ZW9mKHN0cnVjdCBjbGsgKiksIEdGUF9LRVJORUwp OworCQkJCSAgICAgIHNpemVvZihzdHJ1Y3QgY2xrX2NvcmUgKiksIEdGUF9LRVJORUwpOwogCWlm ICghY2xrX2RhdGEtPmNsa3MpCiAJCXJldHVybiAtRU5PTUVNOwogCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2Nsay9zdW54aS9jbGstc3VuNmktYXBiMC5jIGIvZHJpdmVycy9jbGsvc3VueGkvY2xrLXN1 bjZpLWFwYjAuYwppbmRleCAxZmEyMzM3Li41ZTQ2NDllIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Ns ay9zdW54aS9jbGstc3VuNmktYXBiMC5jCisrKyBiL2RyaXZlcnMvY2xrL3N1bnhpL2Nsay1zdW42 aS1hcGIwLmMKQEAgLTM1LDcgKzM1LDcgQEAgc3RhdGljIGludCBzdW42aV9hMzFfYXBiMF9jbGtf cHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAljb25zdCBjaGFyICpjbGtfcGFy ZW50OwogCXN0cnVjdCByZXNvdXJjZSAqcjsKIAl2b2lkIF9faW9tZW0gKnJlZzsKLQlzdHJ1Y3Qg Y2xrICpjbGs7CisJc3RydWN0IGNsa19jb3JlICpjbGs7CiAKIAlyID0gcGxhdGZvcm1fZ2V0X3Jl c291cmNlKHBkZXYsIElPUkVTT1VSQ0VfTUVNLCAwKTsKIAlyZWcgPSBkZXZtX2lvcmVtYXBfcmVz b3VyY2UoJnBkZXYtPmRldiwgcik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9zdW54aS9jbGst c3VuNmktYXIxMDAuYyBiL2RyaXZlcnMvY2xrL3N1bnhpL2Nsay1zdW42aS1hcjEwMC5jCmluZGV4 IGVjYThjYTAuLjk4NGQ1ZDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL3N1bnhpL2Nsay1zdW42 aS1hcjEwMC5jCisrKyBiL2RyaXZlcnMvY2xrL3N1bnhpL2Nsay1zdW42aS1hcjEwMC5jCkBAIC00 Niw3ICs0Niw3IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIGFyMTAwX3JlY2FsY19yYXRlKHN0cnVj dCBjbGtfaHcgKmh3LAogCiBzdGF0aWMgbG9uZyBhcjEwMF9kZXRlcm1pbmVfcmF0ZShzdHJ1Y3Qg Y2xrX2h3ICpodywgdW5zaWduZWQgbG9uZyByYXRlLAogCQkJCSB1bnNpZ25lZCBsb25nICpiZXN0 X3BhcmVudF9yYXRlLAotCQkJCSBzdHJ1Y3QgY2xrICoqYmVzdF9wYXJlbnRfY2xrKQorCQkJCSBz dHJ1Y3QgY2xrX2NvcmUgKipiZXN0X3BhcmVudF9jbGspCiB7CiAJaW50IG5wYXJlbnRzID0gX19j bGtfZ2V0X251bV9wYXJlbnRzKGh3LT5jbGspOwogCWxvbmcgYmVzdF9yYXRlID0gLUVJTlZBTDsK QEAgLTU3LDcgKzU3LDcgQEAgc3RhdGljIGxvbmcgYXIxMDBfZGV0ZXJtaW5lX3JhdGUoc3RydWN0 IGNsa19odyAqaHcsIHVuc2lnbmVkIGxvbmcgcmF0ZSwKIAlmb3IgKGkgPSAwOyBpIDwgbnBhcmVu dHM7IGkrKykgewogCQl1bnNpZ25lZCBsb25nIHBhcmVudF9yYXRlOwogCQl1bnNpZ25lZCBsb25n IHRtcF9yYXRlOwotCQlzdHJ1Y3QgY2xrICpwYXJlbnQ7CisJCXN0cnVjdCBjbGtfY29yZSAqcGFy ZW50OwogCQl1bnNpZ25lZCBsb25nIGRpdjsKIAkJaW50IHNoaWZ0OwogCkBAIC0xNzYsNyArMTc2 LDcgQEAgc3RhdGljIGludCBzdW42aV9hMzFfYXIxMDBfY2xrX3Byb2JlKHN0cnVjdCBwbGF0Zm9y bV9kZXZpY2UgKnBkZXYpCiAJc3RydWN0IGNsa19pbml0X2RhdGEgaW5pdDsKIAlzdHJ1Y3QgYXIx MDBfY2xrICphcjEwMDsKIAlzdHJ1Y3QgcmVzb3VyY2UgKnI7Ci0Jc3RydWN0IGNsayAqY2xrOwor CXN0cnVjdCBjbGtfY29yZSAqY2xrOwogCWludCBucGFyZW50czsKIAlpbnQgaTsKIApkaWZmIC0t Z2l0IGEvZHJpdmVycy9jbGsvc3VueGkvY2xrLXN1bjhpLWFwYjAuYyBiL2RyaXZlcnMvY2xrL3N1 bnhpL2Nsay1zdW44aS1hcGIwLmMKaW5kZXggMWY1YmE5Yi4uZmEzMDhmZCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9jbGsvc3VueGkvY2xrLXN1bjhpLWFwYjAuYworKysgYi9kcml2ZXJzL2Nsay9zdW54 aS9jbGstc3VuOGktYXBiMC5jCkBAIC0yNiw3ICsyNiw3IEBAIHN0YXRpYyBpbnQgc3VuOGlfYTIz X2FwYjBfY2xrX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJY29uc3QgY2hh ciAqY2xrX3BhcmVudDsKIAlzdHJ1Y3QgcmVzb3VyY2UgKnI7CiAJdm9pZCBfX2lvbWVtICpyZWc7 Ci0Jc3RydWN0IGNsayAqY2xrOworCXN0cnVjdCBjbGtfY29yZSAqY2xrOwogCiAJciA9IHBsYXRm b3JtX2dldF9yZXNvdXJjZShwZGV2LCBJT1JFU09VUkNFX01FTSwgMCk7CiAJcmVnID0gZGV2bV9p b3JlbWFwX3Jlc291cmNlKCZwZGV2LT5kZXYsIHIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsv c3VueGkvY2xrLXN1bnhpLmMgYi9kcml2ZXJzL2Nsay9zdW54aS9jbGstc3VueGkuYwppbmRleCBi NjU0YjdiLi40NGM0NDcwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay9zdW54aS9jbGstc3VueGku YworKysgYi9kcml2ZXJzL2Nsay9zdW54aS9jbGstc3VueGkuYwpAQCAtNDAzLDcgKzQwMyw3IEBA IHN0YXRpYyB2b2lkIHN1bjdpX2EyMF9nZXRfb3V0X2ZhY3RvcnModTMyICpmcmVxLCB1MzIgcGFy ZW50X3JhdGUsCiAgKiBjbGtfc3VueGlfbW1jX3BoYXNlX2NvbnRyb2woKSAtIGNvbmZpZ3VyZXMg TU1DIGNsb2NrIHBoYXNlIGNvbnRyb2wKICAqLwogCi12b2lkIGNsa19zdW54aV9tbWNfcGhhc2Vf Y29udHJvbChzdHJ1Y3QgY2xrICpjbGssIHU4IHNhbXBsZSwgdTggb3V0cHV0KQordm9pZCBjbGtf c3VueGlfbW1jX3BoYXNlX2NvbnRyb2woc3RydWN0IGNsa19jb3JlICpjbGssIHU4IHNhbXBsZSwg dTggb3V0cHV0KQogewogCSNkZWZpbmUgdG9fY2xrX2NvbXBvc2l0ZShfaHcpIGNvbnRhaW5lcl9v ZihfaHcsIHN0cnVjdCBjbGtfY29tcG9zaXRlLCBodykKIAkjZGVmaW5lIHRvX2Nsa19mYWN0b3Jz KF9odykgY29udGFpbmVyX29mKF9odywgc3RydWN0IGNsa19mYWN0b3JzLCBodykKQEAgLTU4Miwx MCArNTgyLDEwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZmFjdG9yc19kYXRhIHN1bjdpX2EyMF9v dXRfZGF0YSBfX2luaXRjb25zdCA9IHsKIAkuZ2V0dGVyID0gc3VuN2lfYTIwX2dldF9vdXRfZmFj dG9ycywKIH07CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrICogX19pbml0IHN1bnhpX2ZhY3RvcnNfY2xr X3NldHVwKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSwKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUg KiBfX2luaXQgc3VueGlfZmFjdG9yc19jbGtfc2V0dXAoc3RydWN0IGRldmljZV9ub2RlICpub2Rl LAogCQkJCQkJY29uc3Qgc3RydWN0IGZhY3RvcnNfZGF0YSAqZGF0YSkKIHsKLQlzdHJ1Y3QgY2xr ICpjbGs7CisJc3RydWN0IGNsa19jb3JlICpjbGs7CiAJc3RydWN0IGNsa19mYWN0b3JzICpmYWN0 b3JzOwogCXN0cnVjdCBjbGtfZ2F0ZSAqZ2F0ZSA9IE5VTEw7CiAJc3RydWN0IGNsa19tdXggKm11 eCA9IE5VTEw7CkBAIC02OTUsNyArNjk1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdXhfZGF0 YSBzdW40aV9hcGIxX211eF9kYXRhIF9faW5pdGNvbnN0ID0gewogc3RhdGljIHZvaWQgX19pbml0 IHN1bnhpX211eF9jbGtfc2V0dXAoc3RydWN0IGRldmljZV9ub2RlICpub2RlLAogCQkJCSAgICAg ICBzdHJ1Y3QgbXV4X2RhdGEgKmRhdGEpCiB7Ci0Jc3RydWN0IGNsayAqY2xrOworCXN0cnVjdCBj bGtfY29yZSAqY2xrOwogCWNvbnN0IGNoYXIgKmNsa19uYW1lID0gbm9kZS0+bmFtZTsKIAljb25z dCBjaGFyICpwYXJlbnRzW1NVTlhJX01BWF9QQVJFTlRTXTsKIAl2b2lkIF9faW9tZW0gKnJlZzsK QEAgLTc3Nyw3ICs3NzcsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRpdl9kYXRhIHN1bjZpX2Ez MV9hcGIyX2Rpdl9kYXRhIF9faW5pdGNvbnN0ID0gewogc3RhdGljIHZvaWQgX19pbml0IHN1bnhp X2RpdmlkZXJfY2xrX3NldHVwKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSwKIAkJCQkJICAgc3Ry dWN0IGRpdl9kYXRhICpkYXRhKQogewotCXN0cnVjdCBjbGsgKmNsazsKKwlzdHJ1Y3QgY2xrX2Nv cmUgKmNsazsKIAljb25zdCBjaGFyICpjbGtfbmFtZSA9IG5vZGUtPm5hbWU7CiAJY29uc3QgY2hh ciAqY2xrX3BhcmVudDsKIAl2b2lkIF9faW9tZW0gKnJlZzsKQEAgLTk3Niw3ICs5NzYsNyBAQCBz dGF0aWMgdm9pZCBfX2luaXQgc3VueGlfZ2F0ZXNfY2xrX3NldHVwKHN0cnVjdCBkZXZpY2Vfbm9k ZSAqbm9kZSwKIAljbGtfZGF0YSA9IGttYWxsb2Moc2l6ZW9mKHN0cnVjdCBjbGtfb25lY2VsbF9k YXRhKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFjbGtfZGF0YSkKIAkJcmV0dXJuOwotCWNsa19kYXRh LT5jbGtzID0ga3phbGxvYygocXR5KzEpICogc2l6ZW9mKHN0cnVjdCBjbGsgKiksIEdGUF9LRVJO RUwpOworCWNsa19kYXRhLT5jbGtzID0ga3phbGxvYygocXR5KzEpICogc2l6ZW9mKHN0cnVjdCBj bGtfY29yZSAqKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFjbGtfZGF0YS0+Y2xrcykgewogCQlrZnJl ZShjbGtfZGF0YSk7CiAJCXJldHVybjsKQEAgLTEwNzgsNyArMTA3OCw3IEBAIHN0YXRpYyB2b2lk IF9faW5pdCBzdW54aV9kaXZzX2Nsa19zZXR1cChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUsCiAJ c3RydWN0IGNsa19vbmVjZWxsX2RhdGEgKmNsa19kYXRhOwogCWNvbnN0IGNoYXIgKnBhcmVudDsK IAljb25zdCBjaGFyICpjbGtfbmFtZTsKLQlzdHJ1Y3QgY2xrICoqY2xrcywgKnBjbGs7CisJc3Ry dWN0IGNsa19jb3JlICoqY2xrcywgKnBjbGs7CiAJc3RydWN0IGNsa19odyAqZ2F0ZV9odywgKnJh dGVfaHc7CiAJY29uc3Qgc3RydWN0IGNsa19vcHMgKnJhdGVfb3BzOwogCXN0cnVjdCBjbGtfZ2F0 ZSAqZ2F0ZSA9IE5VTEw7CkBAIC0xMjkxLDEwICsxMjkxLDEwIEBAIHN0YXRpYyB2b2lkIF9faW5p dCBzdW54aV9pbml0X2Nsb2Nrcyhjb25zdCBjaGFyICpjbG9ja3NbXSwgaW50IG5jbG9ja3MpCiAK IAkvKiBQcm90ZWN0IHRoZSBjbG9ja3MgdGhhdCBuZWVkcyB0byBzdGF5IG9uICovCiAJZm9yIChp ID0gMDsgaSA8IG5jbG9ja3M7IGkrKykgewotCQlzdHJ1Y3QgY2xrICpjbGsgPSBjbGtfZ2V0KE5V TEwsIGNsb2Nrc1tpXSk7CisJCXN0cnVjdCBjbGtfY29yZSAqY2xrID0gY2xrX3Byb3ZpZGVyX2dl dChOVUxMLCBjbG9ja3NbaV0pOwogCiAJCWlmICghSVNfRVJSKGNsaykpCi0JCQljbGtfcHJlcGFy ZV9lbmFibGUoY2xrKTsKKwkJCWNsa19wcm92aWRlcl9wcmVwYXJlX2VuYWJsZShjbGspOwogCX0K IH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvdGVncmEvY2xrLWF1ZGlvLXN5bmMuYyBiL2Ry aXZlcnMvY2xrL3RlZ3JhL2Nsay1hdWRpby1zeW5jLmMKaW5kZXggYzBmNzg0My4uNTNjMzQ4OCAx MDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvdGVncmEvY2xrLWF1ZGlvLXN5bmMuYworKysgYi9kcml2 ZXJzL2Nsay90ZWdyYS9jbGstYXVkaW8tc3luYy5jCkBAIC01NCwxMiArNTQsMTIgQEAgY29uc3Qg c3RydWN0IGNsa19vcHMgdGVncmFfY2xrX3N5bmNfc291cmNlX29wcyA9IHsKIAkucmVjYWxjX3Jh dGUgPSBjbGtfc3luY19zb3VyY2VfcmVjYWxjX3JhdGUsCiB9OwogCi1zdHJ1Y3QgY2xrICp0ZWdy YV9jbGtfcmVnaXN0ZXJfc3luY19zb3VyY2UoY29uc3QgY2hhciAqbmFtZSwKK3N0cnVjdCBjbGtf Y29yZSAqdGVncmFfY2xrX3JlZ2lzdGVyX3N5bmNfc291cmNlKGNvbnN0IGNoYXIgKm5hbWUsCiAJ CXVuc2lnbmVkIGxvbmcgcmF0ZSwgdW5zaWduZWQgbG9uZyBtYXhfcmF0ZSkKIHsKIAlzdHJ1Y3Qg dGVncmFfY2xrX3N5bmNfc291cmNlICpzeW5jOwogCXN0cnVjdCBjbGtfaW5pdF9kYXRhIGluaXQ7 Ci0Jc3RydWN0IGNsayAqY2xrOworCXN0cnVjdCBjbGtfY29yZSAqY2xrOwogCiAJc3luYyA9IGt6 YWxsb2Moc2l6ZW9mKCpzeW5jKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFzeW5jKSB7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2Nsay90ZWdyYS9jbGstZGl2aWRlci5jIGIvZHJpdmVycy9jbGsvdGVncmEv Y2xrLWRpdmlkZXIuYwppbmRleCAyOTBmOWMxLi5jNjlhNzI4IDEwMDY0NAotLS0gYS9kcml2ZXJz L2Nsay90ZWdyYS9jbGstZGl2aWRlci5jCisrKyBiL2RyaXZlcnMvY2xrL3RlZ3JhL2Nsay1kaXZp ZGVyLmMKQEAgLTE5LDcgKzE5LDYgQEAKICNpbmNsdWRlIDxsaW51eC9lcnIuaD4KICNpbmNsdWRl IDxsaW51eC9zbGFiLmg+CiAjaW5jbHVkZSA8bGludXgvY2xrLXByb3ZpZGVyLmg+Ci0jaW5jbHVk ZSA8bGludXgvY2xrLmg+CiAKICNpbmNsdWRlICJjbGsuaCIKIApAQCAtMTQ3LDEzICsxNDYsMTMg QEAgY29uc3Qgc3RydWN0IGNsa19vcHMgdGVncmFfY2xrX2ZyYWNfZGl2X29wcyA9IHsKIAkucm91 bmRfcmF0ZSA9IGNsa19mcmFjX2Rpdl9yb3VuZF9yYXRlLAogfTsKIAotc3RydWN0IGNsayAqdGVn cmFfY2xrX3JlZ2lzdGVyX2RpdmlkZXIoY29uc3QgY2hhciAqbmFtZSwKK3N0cnVjdCBjbGtfY29y ZSAqdGVncmFfY2xrX3JlZ2lzdGVyX2RpdmlkZXIoY29uc3QgY2hhciAqbmFtZSwKIAkJY29uc3Qg Y2hhciAqcGFyZW50X25hbWUsIHZvaWQgX19pb21lbSAqcmVnLAogCQl1bnNpZ25lZCBsb25nIGZs YWdzLCB1OCBjbGtfZGl2aWRlcl9mbGFncywgdTggc2hpZnQsIHU4IHdpZHRoLAogCQl1OCBmcmFj X3dpZHRoLCBzcGlubG9ja190ICpsb2NrKQogewogCXN0cnVjdCB0ZWdyYV9jbGtfZnJhY19kaXYg KmRpdmlkZXI7Ci0Jc3RydWN0IGNsayAqY2xrOworCXN0cnVjdCBjbGtfY29yZSAqY2xrOwogCXN0 cnVjdCBjbGtfaW5pdF9kYXRhIGluaXQ7CiAKIAlkaXZpZGVyID0ga3phbGxvYyhzaXplb2YoKmRp dmlkZXIpLCBHRlBfS0VSTkVMKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3RlZ3JhL2Nsay1w ZXJpcGgtZ2F0ZS5jIGIvZHJpdmVycy9jbGsvdGVncmEvY2xrLXBlcmlwaC1nYXRlLmMKaW5kZXgg MGFhODgzMC4uZDU5MjAwZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvdGVncmEvY2xrLXBlcmlw aC1nYXRlLmMKKysrIGIvZHJpdmVycy9jbGsvdGVncmEvY2xrLXBlcmlwaC1nYXRlLmMKQEAgLTE0 LDcgKzE0LDYgQEAKICAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0 dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgogICovCiAKLSNpbmNsdWRlIDxsaW51eC9jbGsu aD4KICNpbmNsdWRlIDxsaW51eC9jbGstcHJvdmlkZXIuaD4KICNpbmNsdWRlIDxsaW51eC9zbGFi Lmg+CiAjaW5jbHVkZSA8bGludXgvaW8uaD4KQEAgLTEyOCwxMiArMTI3LDEyIEBAIGNvbnN0IHN0 cnVjdCBjbGtfb3BzIHRlZ3JhX2Nsa19wZXJpcGhfZ2F0ZV9vcHMgPSB7CiAJLmRpc2FibGUgPSBj bGtfcGVyaXBoX2Rpc2FibGUsCiB9OwogCi1zdHJ1Y3QgY2xrICp0ZWdyYV9jbGtfcmVnaXN0ZXJf cGVyaXBoX2dhdGUoY29uc3QgY2hhciAqbmFtZSwKK3N0cnVjdCBjbGtfY29yZSAqdGVncmFfY2xr X3JlZ2lzdGVyX3BlcmlwaF9nYXRlKGNvbnN0IGNoYXIgKm5hbWUsCiAJCWNvbnN0IGNoYXIgKnBh cmVudF9uYW1lLCB1OCBnYXRlX2ZsYWdzLCB2b2lkIF9faW9tZW0gKmNsa19iYXNlLAogCQl1bnNp Z25lZCBsb25nIGZsYWdzLCBpbnQgY2xrX251bSwgaW50ICplbmFibGVfcmVmY250KQogewogCXN0 cnVjdCB0ZWdyYV9jbGtfcGVyaXBoX2dhdGUgKmdhdGU7Ci0Jc3RydWN0IGNsayAqY2xrOworCXN0 cnVjdCBjbGtfY29yZSAqY2xrOwogCXN0cnVjdCBjbGtfaW5pdF9kYXRhIGluaXQ7CiAJc3RydWN0 IHRlZ3JhX2Nsa19wZXJpcGhfcmVncyAqcHJlZ3M7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xr L3RlZ3JhL2Nsay1wZXJpcGguYyBiL2RyaXZlcnMvY2xrL3RlZ3JhL2Nsay1wZXJpcGguYwppbmRl eCA5ZTg5OWMxOC4uMzRhNjBmZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvdGVncmEvY2xrLXBl cmlwaC5jCisrKyBiL2RyaXZlcnMvY2xrL3RlZ3JhL2Nsay1wZXJpcGguYwpAQCAtMTQsNyArMTQs NiBAQAogICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3 dy5nbnUub3JnL2xpY2Vuc2VzLz4uCiAgKi8KIAotI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgogI2lu Y2x1ZGUgPGxpbnV4L2Nsay1wcm92aWRlci5oPgogI2luY2x1ZGUgPGxpbnV4L2V4cG9ydC5oPgog I2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KQEAgLTEzOCwxMyArMTM3LDEzIEBAIHN0YXRpYyBjb25z dCBzdHJ1Y3QgY2xrX29wcyB0ZWdyYV9jbGtfcGVyaXBoX25vX2dhdGVfb3BzID0gewogCS5zZXRf cmF0ZSA9IGNsa19wZXJpcGhfc2V0X3JhdGUsCiB9OwogCi1zdGF0aWMgc3RydWN0IGNsayAqX3Rl Z3JhX2Nsa19yZWdpc3Rlcl9wZXJpcGgoY29uc3QgY2hhciAqbmFtZSwKK3N0YXRpYyBzdHJ1Y3Qg Y2xrX2NvcmUgKl90ZWdyYV9jbGtfcmVnaXN0ZXJfcGVyaXBoKGNvbnN0IGNoYXIgKm5hbWUsCiAJ CQljb25zdCBjaGFyICoqcGFyZW50X25hbWVzLCBpbnQgbnVtX3BhcmVudHMsCiAJCQlzdHJ1Y3Qg dGVncmFfY2xrX3BlcmlwaCAqcGVyaXBoLAogCQkJdm9pZCBfX2lvbWVtICpjbGtfYmFzZSwgdTMy IG9mZnNldCwKIAkJCXVuc2lnbmVkIGxvbmcgZmxhZ3MpCiB7Ci0Jc3RydWN0IGNsayAqY2xrOwor CXN0cnVjdCBjbGtfY29yZSAqY2xrOwogCXN0cnVjdCBjbGtfaW5pdF9kYXRhIGluaXQ7CiAJc3Ry dWN0IHRlZ3JhX2Nsa19wZXJpcGhfcmVncyAqYmFuazsKIAlib29sIGRpdiA9ICEocGVyaXBoLT5n YXRlLmZsYWdzICYgVEVHUkFfUEVSSVBIX05PX0RJVik7CkBAIC0xODYsNyArMTg1LDcgQEAgc3Rh dGljIHN0cnVjdCBjbGsgKl90ZWdyYV9jbGtfcmVnaXN0ZXJfcGVyaXBoKGNvbnN0IGNoYXIgKm5h bWUsCiAJcmV0dXJuIGNsazsKIH0KIAotc3RydWN0IGNsayAqdGVncmFfY2xrX3JlZ2lzdGVyX3Bl cmlwaChjb25zdCBjaGFyICpuYW1lLAorc3RydWN0IGNsa19jb3JlICp0ZWdyYV9jbGtfcmVnaXN0 ZXJfcGVyaXBoKGNvbnN0IGNoYXIgKm5hbWUsCiAJCWNvbnN0IGNoYXIgKipwYXJlbnRfbmFtZXMs IGludCBudW1fcGFyZW50cywKIAkJc3RydWN0IHRlZ3JhX2Nsa19wZXJpcGggKnBlcmlwaCwgdm9p ZCBfX2lvbWVtICpjbGtfYmFzZSwKIAkJdTMyIG9mZnNldCwgdW5zaWduZWQgbG9uZyBmbGFncykK QEAgLTE5NSw3ICsxOTQsNyBAQCBzdHJ1Y3QgY2xrICp0ZWdyYV9jbGtfcmVnaXN0ZXJfcGVyaXBo KGNvbnN0IGNoYXIgKm5hbWUsCiAJCQlwZXJpcGgsIGNsa19iYXNlLCBvZmZzZXQsIGZsYWdzKTsK IH0KIAotc3RydWN0IGNsayAqdGVncmFfY2xrX3JlZ2lzdGVyX3BlcmlwaF9ub2Rpdihjb25zdCBj aGFyICpuYW1lLAorc3RydWN0IGNsa19jb3JlICp0ZWdyYV9jbGtfcmVnaXN0ZXJfcGVyaXBoX25v ZGl2KGNvbnN0IGNoYXIgKm5hbWUsCiAJCWNvbnN0IGNoYXIgKipwYXJlbnRfbmFtZXMsIGludCBu dW1fcGFyZW50cywKIAkJc3RydWN0IHRlZ3JhX2Nsa19wZXJpcGggKnBlcmlwaCwgdm9pZCBfX2lv bWVtICpjbGtfYmFzZSwKIAkJdTMyIG9mZnNldCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3Rl Z3JhL2Nsay1wbGwtb3V0LmMgYi9kcml2ZXJzL2Nsay90ZWdyYS9jbGstcGxsLW91dC5jCmluZGV4 IDM1OTg5ODcuLjNhZGJjMjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL3RlZ3JhL2Nsay1wbGwt b3V0LmMKKysrIGIvZHJpdmVycy9jbGsvdGVncmEvY2xrLXBsbC1vdXQuYwpAQCAtMjAsNyArMjAs NiBAQAogI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgog I2luY2x1ZGUgPGxpbnV4L2Nsay1wcm92aWRlci5oPgotI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgog CiAjaW5jbHVkZSAiY2xrLmgiCiAKQEAgLTg3LDEzICs4NiwxMyBAQCBjb25zdCBzdHJ1Y3QgY2xr X29wcyB0ZWdyYV9jbGtfcGxsX291dF9vcHMgPSB7CiAJLmRpc2FibGUgPSBjbGtfcGxsX291dF9k aXNhYmxlLAogfTsKIAotc3RydWN0IGNsayAqdGVncmFfY2xrX3JlZ2lzdGVyX3BsbF9vdXQoY29u c3QgY2hhciAqbmFtZSwKK3N0cnVjdCBjbGtfY29yZSAqdGVncmFfY2xrX3JlZ2lzdGVyX3BsbF9v dXQoY29uc3QgY2hhciAqbmFtZSwKIAkJY29uc3QgY2hhciAqcGFyZW50X25hbWUsIHZvaWQgX19p b21lbSAqcmVnLCB1OCBlbmJfYml0X2lkeCwKIAkJdTggcnN0X2JpdF9pZHgsIHVuc2lnbmVkIGxv bmcgZmxhZ3MsIHU4IHBsbF9vdXRfZmxhZ3MsCiAJCXNwaW5sb2NrX3QgKmxvY2spCiB7CiAJc3Ry dWN0IHRlZ3JhX2Nsa19wbGxfb3V0ICpwbGxfb3V0OwotCXN0cnVjdCBjbGsgKmNsazsKKwlzdHJ1 Y3QgY2xrX2NvcmUgKmNsazsKIAlzdHJ1Y3QgY2xrX2luaXRfZGF0YSBpbml0OwogCiAJcGxsX291 dCA9IGt6YWxsb2Moc2l6ZW9mKCpwbGxfb3V0KSwgR0ZQX0tFUk5FTCk7CmRpZmYgLS1naXQgYS9k cml2ZXJzL2Nsay90ZWdyYS9jbGstcGxsLmMgYi9kcml2ZXJzL2Nsay90ZWdyYS9jbGstcGxsLmMK aW5kZXggYzdjNmQ4Zi4uYWExOGVhYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvdGVncmEvY2xr LXBsbC5jCisrKyBiL2RyaXZlcnMvY2xrL3RlZ3JhL2Nsay1wbGwuYwpAQCAtMTksNyArMTksNiBA QAogI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CiAjaW5jbHVkZSA8bGludXgvZXJyLmg+CiAjaW5j bHVkZSA8bGludXgvY2xrLXByb3ZpZGVyLmg+Ci0jaW5jbHVkZSA8bGludXgvY2xrLmg+CiAKICNp bmNsdWRlICJjbGsuaCIKIApAQCAtNzI5LDcgKzcyOCw3IEBAIHN0YXRpYyBpbnQgY2xrX3BsbGVf dHJhaW5pbmcoc3RydWN0IHRlZ3JhX2Nsa19wbGwgKnBsbCkKIHN0YXRpYyBpbnQgY2xrX3BsbGVf ZW5hYmxlKHN0cnVjdCBjbGtfaHcgKmh3KQogewogCXN0cnVjdCB0ZWdyYV9jbGtfcGxsICpwbGwg PSB0b19jbGtfcGxsKGh3KTsKLQl1bnNpZ25lZCBsb25nIGlucHV0X3JhdGUgPSBjbGtfZ2V0X3Jh dGUoY2xrX2dldF9wYXJlbnQoaHctPmNsaykpOworCXVuc2lnbmVkIGxvbmcgaW5wdXRfcmF0ZSA9 IGNsa19wcm92aWRlcl9nZXRfcmF0ZShjbGtfcHJvdmlkZXJfZ2V0X3BhcmVudChody0+Y2xrKSk7 CiAJc3RydWN0IHRlZ3JhX2Nsa19wbGxfZnJlcV90YWJsZSBzZWw7CiAJdTMyIHZhbDsKIAlpbnQg ZXJyOwpAQCAtMTAzMyw3ICsxMDMyLDcgQEAgc3RhdGljIGludCBjbGtfcGxsbV9zZXRfcmF0ZShz dHJ1Y3QgY2xrX2h3ICpodywgdW5zaWduZWQgbG9uZyByYXRlLAogCiAJc3RhdGUgPSBjbGtfcGxs X2lzX2VuYWJsZWQoaHcpOwogCWlmIChzdGF0ZSkgewotCQlpZiAocmF0ZSAhPSBjbGtfZ2V0X3Jh dGUoaHctPmNsaykpIHsKKwkJaWYgKHJhdGUgIT0gY2xrX3Byb3ZpZGVyX2dldF9yYXRlKGh3LT5j bGspKSB7CiAJCQlwcl9lcnIoIiVzOiBDYW5ub3QgY2hhbmdlIGFjdGl2ZSBQTExNXG4iLCBfX2Z1 bmNfXyk7CiAJCQlyZXQgPSAtRUlOVkFMOwogCQkJZ290byBvdXQ7CkBAIC0xMjg1LDcgKzEyODQs NyBAQCBzdGF0aWMgaW50IGNsa19wbGxlX3RlZ3JhMTE0X2VuYWJsZShzdHJ1Y3QgY2xrX2h3ICpo dykKIAl1MzIgdmFsOwogCWludCByZXQ7CiAJdW5zaWduZWQgbG9uZyBmbGFncyA9IDA7Ci0JdW5z aWduZWQgbG9uZyBpbnB1dF9yYXRlID0gY2xrX2dldF9yYXRlKGNsa19nZXRfcGFyZW50KGh3LT5j bGspKTsKKwl1bnNpZ25lZCBsb25nIGlucHV0X3JhdGUgPSBjbGtfcHJvdmlkZXJfZ2V0X3JhdGUo Y2xrX3Byb3ZpZGVyX2dldF9wYXJlbnQoaHctPmNsaykpOwogCiAJaWYgKF9nZXRfdGFibGVfcmF0 ZShodywgJnNlbCwgcGxsLT5wYXJhbXMtPmZpeGVkX3JhdGUsIGlucHV0X3JhdGUpKQogCQlyZXR1 cm4gLUVJTlZBTDsKQEAgLTE0MzAsNyArMTQyOSw3IEBAIHN0YXRpYyBzdHJ1Y3QgdGVncmFfY2xr X3BsbCAqX3RlZ3JhX2luaXRfcGxsKHZvaWQgX19pb21lbSAqY2xrX2Jhc2UsCiAJcmV0dXJuIHBs bDsKIH0KIAotc3RhdGljIHN0cnVjdCBjbGsgKl90ZWdyYV9jbGtfcmVnaXN0ZXJfcGxsKHN0cnVj dCB0ZWdyYV9jbGtfcGxsICpwbGwsCitzdGF0aWMgc3RydWN0IGNsa19jb3JlICpfdGVncmFfY2xr X3JlZ2lzdGVyX3BsbChzdHJ1Y3QgdGVncmFfY2xrX3BsbCAqcGxsLAogCQljb25zdCBjaGFyICpu YW1lLCBjb25zdCBjaGFyICpwYXJlbnRfbmFtZSwgdW5zaWduZWQgbG9uZyBmbGFncywKIAkJY29u c3Qgc3RydWN0IGNsa19vcHMgKm9wcykKIHsKQEAgLTE0NDgsMTMgKzE0NDcsMTMgQEAgc3RhdGlj IHN0cnVjdCBjbGsgKl90ZWdyYV9jbGtfcmVnaXN0ZXJfcGxsKHN0cnVjdCB0ZWdyYV9jbGtfcGxs ICpwbGwsCiAJcmV0dXJuIGNsa19yZWdpc3RlcihOVUxMLCAmcGxsLT5odyk7CiB9CiAKLXN0cnVj dCBjbGsgKnRlZ3JhX2Nsa19yZWdpc3Rlcl9wbGwoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hh ciAqcGFyZW50X25hbWUsCitzdHJ1Y3QgY2xrX2NvcmUgKnRlZ3JhX2Nsa19yZWdpc3Rlcl9wbGwo Y29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqcGFyZW50X25hbWUsCiAJCXZvaWQgX19pb21l bSAqY2xrX2Jhc2UsIHZvaWQgX19pb21lbSAqcG1jLAogCQl1bnNpZ25lZCBsb25nIGZsYWdzLCBz dHJ1Y3QgdGVncmFfY2xrX3BsbF9wYXJhbXMgKnBsbF9wYXJhbXMsCiAJCXNwaW5sb2NrX3QgKmxv Y2spCiB7CiAJc3RydWN0IHRlZ3JhX2Nsa19wbGwgKnBsbDsKLQlzdHJ1Y3QgY2xrICpjbGs7CisJ c3RydWN0IGNsa19jb3JlICpjbGs7CiAKIAlwbGxfcGFyYW1zLT5mbGFncyB8PSBURUdSQV9QTExf QllQQVNTOwogCXBsbF9wYXJhbXMtPmZsYWdzIHw9IFRFR1JBX1BMTF9IQVNfTE9DS19FTkFCTEU7 CkBAIC0xNDc5LDEzICsxNDc4LDEzIEBAIHN0YXRpYyBzdHJ1Y3QgZGl2X25tcCBwbGxfZV9ubXAg PSB7CiAJLmRpdnBfd2lkdGggPSBQTExFX0JBU0VfRElWUF9XSURUSCwKIH07CiAKLXN0cnVjdCBj bGsgKnRlZ3JhX2Nsa19yZWdpc3Rlcl9wbGxlKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIg KnBhcmVudF9uYW1lLAorc3RydWN0IGNsa19jb3JlICp0ZWdyYV9jbGtfcmVnaXN0ZXJfcGxsZShj b25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpwYXJlbnRfbmFtZSwKIAkJdm9pZCBfX2lvbWVt ICpjbGtfYmFzZSwgdm9pZCBfX2lvbWVtICpwbWMsCiAJCXVuc2lnbmVkIGxvbmcgZmxhZ3MsIHN0 cnVjdCB0ZWdyYV9jbGtfcGxsX3BhcmFtcyAqcGxsX3BhcmFtcywKIAkJc3BpbmxvY2tfdCAqbG9j aykKIHsKIAlzdHJ1Y3QgdGVncmFfY2xrX3BsbCAqcGxsOwotCXN0cnVjdCBjbGsgKmNsazsKKwlz dHJ1Y3QgY2xrX2NvcmUgKmNsazsKIAogCXBsbF9wYXJhbXMtPmZsYWdzIHw9IFRFR1JBX1BMTF9M T0NLX01JU0MgfCBURUdSQV9QTExfQllQQVNTOwogCXBsbF9wYXJhbXMtPmZsYWdzIHw9IFRFR1JB X1BMTF9IQVNfTE9DS19FTkFCTEU7CkBAIC0xNTUwLDE0ICsxNTQ5LDE0IEBAIHN0YXRpYyBjb25z dCBzdHJ1Y3QgY2xrX29wcyB0ZWdyYV9jbGtfcGxsZV90ZWdyYTExNF9vcHMgPSB7CiB9OwogCiAK LXN0cnVjdCBjbGsgKnRlZ3JhX2Nsa19yZWdpc3Rlcl9wbGx4Yyhjb25zdCBjaGFyICpuYW1lLCBj b25zdCBjaGFyICpwYXJlbnRfbmFtZSwKK3N0cnVjdCBjbGtfY29yZSAqdGVncmFfY2xrX3JlZ2lz dGVyX3BsbHhjKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnBhcmVudF9uYW1lLAogCQkJ ICB2b2lkIF9faW9tZW0gKmNsa19iYXNlLCB2b2lkIF9faW9tZW0gKnBtYywKIAkJCSAgdW5zaWdu ZWQgbG9uZyBmbGFncywKIAkJCSAgc3RydWN0IHRlZ3JhX2Nsa19wbGxfcGFyYW1zICpwbGxfcGFy YW1zLAogCQkJICBzcGlubG9ja190ICpsb2NrKQogewogCXN0cnVjdCB0ZWdyYV9jbGtfcGxsICpw bGw7Ci0Jc3RydWN0IGNsayAqY2xrLCAqcGFyZW50OworCXN0cnVjdCBjbGtfY29yZSAqY2xrLCAq cGFyZW50OwogCXVuc2lnbmVkIGxvbmcgcGFyZW50X3JhdGU7CiAJaW50IGVycjsKIAl1MzIgdmFs LCB2YWxfaWRkcTsKQEAgLTE2MDMsNyArMTYwMiw3IEBAIHN0cnVjdCBjbGsgKnRlZ3JhX2Nsa19y ZWdpc3Rlcl9wbGx4Yyhjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpwYXJlbnRfbmFtZSwK IAlyZXR1cm4gY2xrOwogfQogCi1zdHJ1Y3QgY2xrICp0ZWdyYV9jbGtfcmVnaXN0ZXJfcGxscmUo Y29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqcGFyZW50X25hbWUsCitzdHJ1Y3QgY2xrX2Nv cmUgKnRlZ3JhX2Nsa19yZWdpc3Rlcl9wbGxyZShjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFy ICpwYXJlbnRfbmFtZSwKIAkJCSAgdm9pZCBfX2lvbWVtICpjbGtfYmFzZSwgdm9pZCBfX2lvbWVt ICpwbWMsCiAJCQkgIHVuc2lnbmVkIGxvbmcgZmxhZ3MsCiAJCQkgIHN0cnVjdCB0ZWdyYV9jbGtf cGxsX3BhcmFtcyAqcGxsX3BhcmFtcywKQEAgLTE2MTEsNyArMTYxMCw3IEBAIHN0cnVjdCBjbGsg KnRlZ3JhX2Nsa19yZWdpc3Rlcl9wbGxyZShjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpw YXJlbnRfbmFtZSwKIHsKIAl1MzIgdmFsOwogCXN0cnVjdCB0ZWdyYV9jbGtfcGxsICpwbGw7Ci0J c3RydWN0IGNsayAqY2xrOworCXN0cnVjdCBjbGtfY29yZSAqY2xrOwogCiAJcGxsX3BhcmFtcy0+ ZmxhZ3MgfD0gVEVHUkFfUExMX0hBU19MT0NLX0VOQUJMRSB8IFRFR1JBX1BMTF9MT0NLX01JU0M7 CiAKQEAgLTE2NDksMTQgKzE2NDgsMTQgQEAgc3RydWN0IGNsayAqdGVncmFfY2xrX3JlZ2lzdGVy X3BsbHJlKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnBhcmVudF9uYW1lLAogCXJldHVy biBjbGs7CiB9CiAKLXN0cnVjdCBjbGsgKnRlZ3JhX2Nsa19yZWdpc3Rlcl9wbGxtKGNvbnN0IGNo YXIgKm5hbWUsIGNvbnN0IGNoYXIgKnBhcmVudF9uYW1lLAorc3RydWN0IGNsa19jb3JlICp0ZWdy YV9jbGtfcmVnaXN0ZXJfcGxsbShjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpwYXJlbnRf bmFtZSwKIAkJCSAgdm9pZCBfX2lvbWVtICpjbGtfYmFzZSwgdm9pZCBfX2lvbWVtICpwbWMsCiAJ CQkgIHVuc2lnbmVkIGxvbmcgZmxhZ3MsCiAJCQkgIHN0cnVjdCB0ZWdyYV9jbGtfcGxsX3BhcmFt cyAqcGxsX3BhcmFtcywKIAkJCSAgc3BpbmxvY2tfdCAqbG9jaykKIHsKIAlzdHJ1Y3QgdGVncmFf Y2xrX3BsbCAqcGxsOwotCXN0cnVjdCBjbGsgKmNsaywgKnBhcmVudDsKKwlzdHJ1Y3QgY2xrX2Nv cmUgKmNsaywgKnBhcmVudDsKIAl1bnNpZ25lZCBsb25nIHBhcmVudF9yYXRlOwogCiAJaWYgKCFw bGxfcGFyYW1zLT5wZGl2X3RvaHcpCkBAIC0xNjg4LDEzICsxNjg3LDEzIEBAIHN0cnVjdCBjbGsg KnRlZ3JhX2Nsa19yZWdpc3Rlcl9wbGxtKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnBh cmVudF9uYW1lLAogCXJldHVybiBjbGs7CiB9CiAKLXN0cnVjdCBjbGsgKnRlZ3JhX2Nsa19yZWdp c3Rlcl9wbGxjKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnBhcmVudF9uYW1lLAorc3Ry dWN0IGNsa19jb3JlICp0ZWdyYV9jbGtfcmVnaXN0ZXJfcGxsYyhjb25zdCBjaGFyICpuYW1lLCBj b25zdCBjaGFyICpwYXJlbnRfbmFtZSwKIAkJCSAgdm9pZCBfX2lvbWVtICpjbGtfYmFzZSwgdm9p ZCBfX2lvbWVtICpwbWMsCiAJCQkgIHVuc2lnbmVkIGxvbmcgZmxhZ3MsCiAJCQkgIHN0cnVjdCB0 ZWdyYV9jbGtfcGxsX3BhcmFtcyAqcGxsX3BhcmFtcywKIAkJCSAgc3BpbmxvY2tfdCAqbG9jaykK IHsKLQlzdHJ1Y3QgY2xrICpwYXJlbnQsICpjbGs7CisJc3RydWN0IGNsa19jb3JlICpwYXJlbnQs ICpjbGs7CiAJc3RydWN0IHBkaXZfbWFwICpwX3RvaHcgPSBwbGxfcGFyYW1zLT5wZGl2X3RvaHc7 CiAJc3RydWN0IHRlZ3JhX2Nsa19wbGwgKnBsbDsKIAlzdHJ1Y3QgdGVncmFfY2xrX3BsbF9mcmVx X3RhYmxlIGNmZzsKQEAgLTE3NjIsMTQgKzE3NjEsMTQgQEAgc3RydWN0IGNsayAqdGVncmFfY2xr X3JlZ2lzdGVyX3BsbGMoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqcGFyZW50X25hbWUs CiAJcmV0dXJuIGNsazsKIH0KIAotc3RydWN0IGNsayAqdGVncmFfY2xrX3JlZ2lzdGVyX3BsbGVf dGVncmExMTQoY29uc3QgY2hhciAqbmFtZSwKK3N0cnVjdCBjbGtfY29yZSAqdGVncmFfY2xrX3Jl Z2lzdGVyX3BsbGVfdGVncmExMTQoY29uc3QgY2hhciAqbmFtZSwKIAkJCQljb25zdCBjaGFyICpw YXJlbnRfbmFtZSwKIAkJCQl2b2lkIF9faW9tZW0gKmNsa19iYXNlLCB1bnNpZ25lZCBsb25nIGZs YWdzLAogCQkJCXN0cnVjdCB0ZWdyYV9jbGtfcGxsX3BhcmFtcyAqcGxsX3BhcmFtcywKIAkJCQlz cGlubG9ja190ICpsb2NrKQogewogCXN0cnVjdCB0ZWdyYV9jbGtfcGxsICpwbGw7Ci0Jc3RydWN0 IGNsayAqY2xrOworCXN0cnVjdCBjbGtfY29yZSAqY2xrOwogCXUzMiB2YWwsIHZhbF9hdXg7CiAK IAlwbGxfcGFyYW1zLT5mbGFncyB8PSBURUdSQV9QTExfSEFTX0xPQ0tfRU5BQkxFOwpAQCAtMTgx MiwxMyArMTgxMSwxMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGNsa19vcHMgdGVncmFfY2xrX3Bs bHNzX29wcyA9IHsKIAkuc2V0X3JhdGUgPSBjbGtfcGxseGNfc2V0X3JhdGUsCiB9OwogCi1zdHJ1 Y3QgY2xrICp0ZWdyYV9jbGtfcmVnaXN0ZXJfcGxsc3MoY29uc3QgY2hhciAqbmFtZSwgY29uc3Qg Y2hhciAqcGFyZW50X25hbWUsCitzdHJ1Y3QgY2xrX2NvcmUgKnRlZ3JhX2Nsa19yZWdpc3Rlcl9w bGxzcyhjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpwYXJlbnRfbmFtZSwKIAkJCQl2b2lk IF9faW9tZW0gKmNsa19iYXNlLCB1bnNpZ25lZCBsb25nIGZsYWdzLAogCQkJCXN0cnVjdCB0ZWdy YV9jbGtfcGxsX3BhcmFtcyAqcGxsX3BhcmFtcywKIAkJCQlzcGlubG9ja190ICpsb2NrKQogewog CXN0cnVjdCB0ZWdyYV9jbGtfcGxsICpwbGw7Ci0Jc3RydWN0IGNsayAqY2xrLCAqcGFyZW50Owor CXN0cnVjdCBjbGtfY29yZSAqY2xrLCAqcGFyZW50OwogCXN0cnVjdCB0ZWdyYV9jbGtfcGxsX2Zy ZXFfdGFibGUgY2ZnOwogCXVuc2lnbmVkIGxvbmcgcGFyZW50X3JhdGU7CiAJdTMyIHZhbDsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3RlZ3JhL2Nsay1zdXBlci5jIGIvZHJpdmVycy9jbGsvdGVn cmEvY2xrLXN1cGVyLmMKaW5kZXggMmZkOTI0ZC4uMGQxMTM0NiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9jbGsvdGVncmEvY2xrLXN1cGVyLmMKKysrIGIvZHJpdmVycy9jbGsvdGVncmEvY2xrLXN1cGVy LmMKQEAgLTIwLDcgKzIwLDYgQEAKICNpbmNsdWRlIDxsaW51eC9lcnIuaD4KICNpbmNsdWRlIDxs aW51eC9zbGFiLmg+CiAjaW5jbHVkZSA8bGludXgvY2xrLXByb3ZpZGVyLmg+Ci0jaW5jbHVkZSA8 bGludXgvY2xrLmg+CiAKICNpbmNsdWRlICJjbGsuaCIKIApAQCAtMTI3LDEzICsxMjYsMTMgQEAg Y29uc3Qgc3RydWN0IGNsa19vcHMgdGVncmFfY2xrX3N1cGVyX29wcyA9IHsKIAkuc2V0X3BhcmVu dCA9IGNsa19zdXBlcl9zZXRfcGFyZW50LAogfTsKIAotc3RydWN0IGNsayAqdGVncmFfY2xrX3Jl Z2lzdGVyX3N1cGVyX211eChjb25zdCBjaGFyICpuYW1lLAorc3RydWN0IGNsa19jb3JlICp0ZWdy YV9jbGtfcmVnaXN0ZXJfc3VwZXJfbXV4KGNvbnN0IGNoYXIgKm5hbWUsCiAJCWNvbnN0IGNoYXIg KipwYXJlbnRfbmFtZXMsIHU4IG51bV9wYXJlbnRzLAogCQl1bnNpZ25lZCBsb25nIGZsYWdzLCB2 b2lkIF9faW9tZW0gKnJlZywgdTggY2xrX3N1cGVyX2ZsYWdzLAogCQl1OCB3aWR0aCwgdTggcGxs eF9pbmRleCwgdTggZGl2Ml9pbmRleCwgc3BpbmxvY2tfdCAqbG9jaykKIHsKIAlzdHJ1Y3QgdGVn cmFfY2xrX3N1cGVyX211eCAqc3VwZXI7Ci0Jc3RydWN0IGNsayAqY2xrOworCXN0cnVjdCBjbGtf Y29yZSAqY2xrOwogCXN0cnVjdCBjbGtfaW5pdF9kYXRhIGluaXQ7CiAKIAlzdXBlciA9IGt6YWxs b2Moc2l6ZW9mKCpzdXBlciksIEdGUF9LRVJORUwpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsv dGVncmEvY2xrLXRlZ3JhLWF1ZGlvLmMgYi9kcml2ZXJzL2Nsay90ZWdyYS9jbGstdGVncmEtYXVk aW8uYwppbmRleCA1YzM4YWFiLi4wMzhhMjJlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay90ZWdy YS9jbGstdGVncmEtYXVkaW8uYworKysgYi9kcml2ZXJzL2Nsay90ZWdyYS9jbGstdGVncmEtYXVk aW8uYwpAQCAtMTUsNyArMTUsNiBAQAogICovCiAKICNpbmNsdWRlIDxsaW51eC9pby5oPgotI2lu Y2x1ZGUgPGxpbnV4L2Nsay5oPgogI2luY2x1ZGUgPGxpbnV4L2Nsay1wcm92aWRlci5oPgogI2lu Y2x1ZGUgPGxpbnV4L29mLmg+CiAjaW5jbHVkZSA8bGludXgvb2ZfYWRkcmVzcy5oPgpAQCAtMTI4 LDggKzEyNyw4IEBAIHZvaWQgX19pbml0IHRlZ3JhX2F1ZGlvX2Nsa19pbml0KHZvaWQgX19pb21l bSAqY2xrX2Jhc2UsCiAJCQl2b2lkIF9faW9tZW0gKnBtY19iYXNlLCBzdHJ1Y3QgdGVncmFfY2xr ICp0ZWdyYV9jbGtzLAogCQkJc3RydWN0IHRlZ3JhX2Nsa19wbGxfcGFyYW1zICpwbGxfYV9wYXJh bXMpCiB7Ci0Jc3RydWN0IGNsayAqY2xrOwotCXN0cnVjdCBjbGsgKipkdF9jbGs7CisJc3RydWN0 IGNsa19jb3JlICpjbGs7CisJc3RydWN0IGNsa19jb3JlICoqZHRfY2xrOwogCWludCBpOwogCiAJ LyogUExMQSAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvdGVncmEvY2xrLXRlZ3JhLWZpeGVk LmMgYi9kcml2ZXJzL2Nsay90ZWdyYS9jbGstdGVncmEtZml4ZWQuYwppbmRleCBmM2I3NzM4Li41 ZWU0ODZhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay90ZWdyYS9jbGstdGVncmEtZml4ZWQuYwor KysgYi9kcml2ZXJzL2Nsay90ZWdyYS9jbGstdGVncmEtZml4ZWQuYwpAQCAtMTUsNyArMTUsNiBA QAogICovCiAKICNpbmNsdWRlIDxsaW51eC9pby5oPgotI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgog I2luY2x1ZGUgPGxpbnV4L2Nsay1wcm92aWRlci5oPgogI2luY2x1ZGUgPGxpbnV4L29mLmg+CiAj aW5jbHVkZSA8bGludXgvb2ZfYWRkcmVzcy5oPgpAQCAtMzYsOCArMzUsOCBAQCBpbnQgX19pbml0 IHRlZ3JhX29zY19jbGtfaW5pdCh2b2lkIF9faW9tZW0gKmNsa19iYXNlLAogCQkJCXVuc2lnbmVk IGxvbmcgKm9zY19mcmVxLAogCQkJCXVuc2lnbmVkIGxvbmcgKnBsbF9yZWZfZnJlcSkKIHsKLQlz dHJ1Y3QgY2xrICpjbGs7Ci0Jc3RydWN0IGNsayAqKmR0X2NsazsKKwlzdHJ1Y3QgY2xrX2NvcmUg KmNsazsKKwlzdHJ1Y3QgY2xrX2NvcmUgKipkdF9jbGs7CiAJdTMyIHZhbCwgcGxsX3JlZl9kaXY7 CiAJdW5zaWduZWQgb3NjX2lkeDsKIApAQCAtODEsOCArODAsOCBAQCBpbnQgX19pbml0IHRlZ3Jh X29zY19jbGtfaW5pdCh2b2lkIF9faW9tZW0gKmNsa19iYXNlLAogCiB2b2lkIF9faW5pdCB0ZWdy YV9maXhlZF9jbGtfaW5pdChzdHJ1Y3QgdGVncmFfY2xrICp0ZWdyYV9jbGtzKQogewotCXN0cnVj dCBjbGsgKmNsazsKLQlzdHJ1Y3QgY2xrICoqZHRfY2xrOworCXN0cnVjdCBjbGtfY29yZSAqY2xr OworCXN0cnVjdCBjbGtfY29yZSAqKmR0X2NsazsKIAogCS8qIGNsa18zMmsgKi8KIAlkdF9jbGsg PSB0ZWdyYV9sb29rdXBfZHRfaWQodGVncmFfY2xrX2Nsa18zMmssIHRlZ3JhX2Nsa3MpOwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9jbGsvdGVncmEvY2xrLXRlZ3JhLXBlcmlwaC5jIGIvZHJpdmVycy9j bGsvdGVncmEvY2xrLXRlZ3JhLXBlcmlwaC5jCmluZGV4IDM3ZjMyYzQuLjVlMTdhZDQgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvY2xrL3RlZ3JhL2Nsay10ZWdyYS1wZXJpcGguYworKysgYi9kcml2ZXJz L2Nsay90ZWdyYS9jbGstdGVncmEtcGVyaXBoLmMKQEAgLTE1LDcgKzE1LDYgQEAKICAqLwogCiAj aW5jbHVkZSA8bGludXgvaW8uaD4KLSNpbmNsdWRlIDxsaW51eC9jbGsuaD4KICNpbmNsdWRlIDxs aW51eC9jbGstcHJvdmlkZXIuaD4KICNpbmNsdWRlIDxsaW51eC9jbGtkZXYuaD4KICNpbmNsdWRl IDxsaW51eC9vZi5oPgpAQCAtNTg1LDggKzU4NCw4IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBwZXJp cGhfY2xrX2luaXQodm9pZCBfX2lvbWVtICpjbGtfYmFzZSwKIAkJCQlzdHJ1Y3QgdGVncmFfY2xr ICp0ZWdyYV9jbGtzKQogewogCWludCBpOwotCXN0cnVjdCBjbGsgKmNsazsKLQlzdHJ1Y3QgY2xr ICoqZHRfY2xrOworCXN0cnVjdCBjbGtfY29yZSAqY2xrOworCXN0cnVjdCBjbGtfY29yZSAqKmR0 X2NsazsKIAogCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHBlcmlwaF9jbGtzKTsgaSsrKSB7 CiAJCXN0cnVjdCB0ZWdyYV9jbGtfcGVyaXBoX3JlZ3MgKmJhbms7CkBAIC02MTUsOCArNjE0LDgg QEAgc3RhdGljIHZvaWQgX19pbml0IGdhdGVfY2xrX2luaXQodm9pZCBfX2lvbWVtICpjbGtfYmFz ZSwKIAkJCQlzdHJ1Y3QgdGVncmFfY2xrICp0ZWdyYV9jbGtzKQogewogCWludCBpOwotCXN0cnVj dCBjbGsgKmNsazsKLQlzdHJ1Y3QgY2xrICoqZHRfY2xrOworCXN0cnVjdCBjbGtfY29yZSAqY2xr OworCXN0cnVjdCBjbGtfY29yZSAqKmR0X2NsazsKIAogCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9T SVpFKGdhdGVfY2xrcyk7IGkrKykgewogCQlzdHJ1Y3QgdGVncmFfcGVyaXBoX2luaXRfZGF0YSAq ZGF0YTsKQEAgLTY0MCw4ICs2MzksOCBAQCBzdGF0aWMgdm9pZCBfX2luaXQgaW5pdF9wbGxwKHZv aWQgX19pb21lbSAqY2xrX2Jhc2UsIHZvaWQgX19pb21lbSAqcG1jX2Jhc2UsCiAJCQkJc3RydWN0 IHRlZ3JhX2NsayAqdGVncmFfY2xrcywKIAkJCQlzdHJ1Y3QgdGVncmFfY2xrX3BsbF9wYXJhbXMg KnBsbF9wYXJhbXMpCiB7Ci0Jc3RydWN0IGNsayAqY2xrOwotCXN0cnVjdCBjbGsgKipkdF9jbGs7 CisJc3RydWN0IGNsa19jb3JlICpjbGs7CisJc3RydWN0IGNsa19jb3JlICoqZHRfY2xrOwogCWlu dCBpOwogCiAJZHRfY2xrID0gdGVncmFfbG9va3VwX2R0X2lkKHRlZ3JhX2Nsa19wbGxfcCwgdGVn cmFfY2xrcyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay90ZWdyYS9jbGstdGVncmEtcG1jLmMg Yi9kcml2ZXJzL2Nsay90ZWdyYS9jbGstdGVncmEtcG1jLmMKaW5kZXggMDhiMjFjMS4uZGRkMzlj YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvdGVncmEvY2xrLXRlZ3JhLXBtYy5jCisrKyBiL2Ry aXZlcnMvY2xrL3RlZ3JhL2Nsay10ZWdyYS1wbWMuYwpAQCAtMTUsNyArMTUsNiBAQAogICovCiAK ICNpbmNsdWRlIDxsaW51eC9pby5oPgotI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgogI2luY2x1ZGUg PGxpbnV4L2Nsay1wcm92aWRlci5oPgogI2luY2x1ZGUgPGxpbnV4L2Nsa2Rldi5oPgogI2luY2x1 ZGUgPGxpbnV4L29mLmg+CkBAIC04Miw4ICs4MSw4IEBAIHN0YXRpYyBzdHJ1Y3QgcG1jX2Nsa19p bml0X2RhdGEgcG1jX2Nsa3NbXSA9IHsKIHZvaWQgX19pbml0IHRlZ3JhX3BtY19jbGtfaW5pdCh2 b2lkIF9faW9tZW0gKnBtY19iYXNlLAogCQkJCXN0cnVjdCB0ZWdyYV9jbGsgKnRlZ3JhX2Nsa3Mp CiB7Ci0Jc3RydWN0IGNsayAqY2xrOwotCXN0cnVjdCBjbGsgKipkdF9jbGs7CisJc3RydWN0IGNs a19jb3JlICpjbGs7CisJc3RydWN0IGNsa19jb3JlICoqZHRfY2xrOwogCWludCBpOwogCiAJZm9y IChpID0gMDsgaSA8IEFSUkFZX1NJWkUocG1jX2Nsa3MpOyBpKyspIHsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvY2xrL3RlZ3JhL2Nsay10ZWdyYS1zdXBlci1nZW40LmMgYi9kcml2ZXJzL2Nsay90ZWdy YS9jbGstdGVncmEtc3VwZXItZ2VuNC5jCmluZGV4IGZlYjMyMDEuLjlkMWNkYWEgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvY2xrL3RlZ3JhL2Nsay10ZWdyYS1zdXBlci1nZW40LmMKKysrIGIvZHJpdmVy cy9jbGsvdGVncmEvY2xrLXRlZ3JhLXN1cGVyLWdlbjQuYwpAQCAtMTUsNyArMTUsNiBAQAogICov CiAKICNpbmNsdWRlIDxsaW51eC9pby5oPgotI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgogI2luY2x1 ZGUgPGxpbnV4L2Nsay1wcm92aWRlci5oPgogI2luY2x1ZGUgPGxpbnV4L29mLmg+CiAjaW5jbHVk ZSA8bGludXgvb2ZfYWRkcmVzcy5oPgpAQCAtNTMsOCArNTIsOCBAQCBzdGF0aWMgY29uc3QgY2hh ciAqY2Nsa19scF9wYXJlbnRzW10gPSB7ICJjbGtfbSIsICJwbGxfYyIsICJjbGtfMzJrIiwgInBs bF9tIiwKIHN0YXRpYyB2b2lkIF9faW5pdCB0ZWdyYV9zY2xrX2luaXQodm9pZCBfX2lvbWVtICpj bGtfYmFzZSwKIAkJCQlzdHJ1Y3QgdGVncmFfY2xrICp0ZWdyYV9jbGtzKQogewotCXN0cnVjdCBj bGsgKmNsazsKLQlzdHJ1Y3QgY2xrICoqZHRfY2xrOworCXN0cnVjdCBjbGtfY29yZSAqY2xrOwor CXN0cnVjdCBjbGtfY29yZSAqKmR0X2NsazsKIAogCS8qIFNDTEsgKi8KIAlkdF9jbGsgPSB0ZWdy YV9sb29rdXBfZHRfaWQodGVncmFfY2xrX3NjbGssIHRlZ3JhX2Nsa3MpOwpAQCAtOTksOCArOTgs OCBAQCB2b2lkIF9faW5pdCB0ZWdyYV9zdXBlcl9jbGtfZ2VuNF9pbml0KHZvaWQgX19pb21lbSAq Y2xrX2Jhc2UsCiAJCQkJc3RydWN0IHRlZ3JhX2NsayAqdGVncmFfY2xrcywKIAkJCQlzdHJ1Y3Qg dGVncmFfY2xrX3BsbF9wYXJhbXMgKnBhcmFtcykKIHsKLQlzdHJ1Y3QgY2xrICpjbGs7Ci0Jc3Ry dWN0IGNsayAqKmR0X2NsazsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmNsazsKKwlzdHJ1Y3QgY2xrX2Nv cmUgKipkdF9jbGs7CiAKIAkvKiBDQ0xLRyAqLwogCWR0X2NsayA9IHRlZ3JhX2xvb2t1cF9kdF9p ZCh0ZWdyYV9jbGtfY2Nsa19nLCB0ZWdyYV9jbGtzKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xr L3RlZ3JhL2Nsay10ZWdyYTExNC5jIGIvZHJpdmVycy9jbGsvdGVncmEvY2xrLXRlZ3JhMTE0LmMK aW5kZXggZjc2MGYzMS4uMDBhMjg5NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvdGVncmEvY2xr LXRlZ3JhMTE0LmMKKysrIGIvZHJpdmVycy9jbGsvdGVncmEvY2xrLXRlZ3JhMTE0LmMKQEAgLTE1 LDcgKzE1LDYgQEAKICAqLwogCiAjaW5jbHVkZSA8bGludXgvaW8uaD4KLSNpbmNsdWRlIDxsaW51 eC9jbGsuaD4KICNpbmNsdWRlIDxsaW51eC9jbGstcHJvdmlkZXIuaD4KICNpbmNsdWRlIDxsaW51 eC9jbGtkZXYuaD4KICNpbmNsdWRlIDxsaW51eC9vZi5oPgpAQCAtOTM2LDE0ICs5MzUsMTQgQEAg c3RhdGljIHUzMiBtdXhfcGxsbV9wbGxjMl9jX2MzX3BsbHBfcGxsYV9pZHhbXSA9IHsKIAlbMF0g PSAwLCBbMV0gPSAxLCBbMl0gPSAyLCBbM10gPSAzLCBbNF0gPSA0LCBbNV0gPSA2LAogfTsKIAot c3RhdGljIHN0cnVjdCBjbGsgKipjbGtzOworc3RhdGljIHN0cnVjdCBjbGtfY29yZSAqKmNsa3M7 CiAKIHN0YXRpYyB1bnNpZ25lZCBsb25nIG9zY19mcmVxOwogc3RhdGljIHVuc2lnbmVkIGxvbmcg cGxsX3JlZl9mcmVxOwogCiBzdGF0aWMgaW50IF9faW5pdCB0ZWdyYTExNF9vc2NfY2xrX2luaXQo dm9pZCBfX2lvbWVtICpjbGtfYmFzZSkKIHsKLQlzdHJ1Y3QgY2xrICpjbGs7CisJc3RydWN0IGNs a19jb3JlICpjbGs7CiAJdTMyIHZhbCwgcGxsX3JlZl9kaXY7CiAKIAl2YWwgPSByZWFkbF9yZWxh eGVkKGNsa19iYXNlICsgT1NDX0NUUkwpOwpAQCAtOTczLDcgKzk3Miw3IEBAIHN0YXRpYyBpbnQg X19pbml0IHRlZ3JhMTE0X29zY19jbGtfaW5pdCh2b2lkIF9faW9tZW0gKmNsa19iYXNlKQogCiBz dGF0aWMgdm9pZCBfX2luaXQgdGVncmExMTRfZml4ZWRfY2xrX2luaXQodm9pZCBfX2lvbWVtICpj bGtfYmFzZSkKIHsKLQlzdHJ1Y3QgY2xrICpjbGs7CisJc3RydWN0IGNsa19jb3JlICpjbGs7CiAK IAkvKiBjbGtfMzJrICovCiAJY2xrID0gY2xrX3JlZ2lzdGVyX2ZpeGVkX3JhdGUoTlVMTCwgImNs a18zMmsiLCBOVUxMLCBDTEtfSVNfUk9PVCwKQEAgLTEwNzgsNyArMTA3Nyw3IEBAIHN0YXRpYyB2 b2lkIF9faW5pdCB0ZWdyYTExNF9wbGxfaW5pdCh2b2lkIF9faW9tZW0gKmNsa19iYXNlLAogCQkJ CSAgICAgdm9pZCBfX2lvbWVtICpwbWMpCiB7CiAJdTMyIHZhbDsKLQlzdHJ1Y3QgY2xrICpjbGs7 CisJc3RydWN0IGNsa19jb3JlICpjbGs7CiAKIAkvKiBQTExDICovCiAJY2xrID0gdGVncmFfY2xr X3JlZ2lzdGVyX3BsbHhjKCJwbGxfYyIsICJwbGxfcmVmIiwgY2xrX2Jhc2UsCkBAIC0xMjAwLDcg KzExOTksNyBAQCBzdGF0aWMgc3RydWN0IHRlZ3JhX3BlcmlwaF9pbml0X2RhdGEgdGVncmFfcGVy aXBoX2Nsa19saXN0W10gPSB7CiBzdGF0aWMgX19pbml0IHZvaWQgdGVncmExMTRfcGVyaXBoX2Ns a19pbml0KHZvaWQgX19pb21lbSAqY2xrX2Jhc2UsCiAJCQkJCSAgICB2b2lkIF9faW9tZW0gKnBt Y19iYXNlKQogewotCXN0cnVjdCBjbGsgKmNsazsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmNsazsKIAlz dHJ1Y3QgdGVncmFfcGVyaXBoX2luaXRfZGF0YSAqZGF0YTsKIAlpbnQgaTsKIApkaWZmIC0tZ2l0 IGEvZHJpdmVycy9jbGsvdGVncmEvY2xrLXRlZ3JhMTI0LmMgYi9kcml2ZXJzL2Nsay90ZWdyYS9j bGstdGVncmExMjQuYwppbmRleCA5NTI1YzY4Li5iZjQ4MWM4IDEwMDY0NAotLS0gYS9kcml2ZXJz L2Nsay90ZWdyYS9jbGstdGVncmExMjQuYworKysgYi9kcml2ZXJzL2Nsay90ZWdyYS9jbGstdGVn cmExMjQuYwpAQCAtMTUsNyArMTUsNiBAQAogICovCiAKICNpbmNsdWRlIDxsaW51eC9pby5oPgot I2luY2x1ZGUgPGxpbnV4L2Nsay5oPgogI2luY2x1ZGUgPGxpbnV4L2Nsay1wcm92aWRlci5oPgog I2luY2x1ZGUgPGxpbnV4L2Nsa2Rldi5oPgogI2luY2x1ZGUgPGxpbnV4L29mLmg+CkBAIC0xMDE3 LDcgKzEwMTYsNyBAQCBzdGF0aWMgc3RydWN0IHRlZ3JhX2RldmNsayBkZXZjbGtzW10gX19pbml0 ZGF0YSA9IHsKIAl7IC5kZXZfaWQgPSAidGltZXIiLCAuZHRfaWQgPSBURUdSQTEyNF9DTEtfVElN RVIgfSwKIH07CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrICoqY2xrczsKK3N0YXRpYyBzdHJ1Y3QgY2xr X2NvcmUgKipjbGtzOwogCiBzdGF0aWMgdm9pZCB0ZWdyYTEyNF91dG1pX3BhcmFtX2NvbmZpZ3Vy ZSh2b2lkIF9faW9tZW0gKmNsa19iYXNlKQogewpAQCAtMTEwNCw3ICsxMTAzLDcgQEAgc3RhdGlj IHZvaWQgdGVncmExMjRfdXRtaV9wYXJhbV9jb25maWd1cmUodm9pZCBfX2lvbWVtICpjbGtfYmFz ZSkKIHN0YXRpYyBfX2luaXQgdm9pZCB0ZWdyYTEyNF9wZXJpcGhfY2xrX2luaXQodm9pZCBfX2lv bWVtICpjbGtfYmFzZSwKIAkJCQkJICAgIHZvaWQgX19pb21lbSAqcG1jX2Jhc2UpCiB7Ci0Jc3Ry dWN0IGNsayAqY2xrOworCXN0cnVjdCBjbGtfY29yZSAqY2xrOwogCiAJLyogeHVzYl9zc19kaXYy ICovCiAJY2xrID0gY2xrX3JlZ2lzdGVyX2ZpeGVkX2ZhY3RvcihOVUxMLCAieHVzYl9zc19kaXYy IiwgInh1c2Jfc3Nfc3JjIiwgMCwKQEAgLTExNDgsNyArMTE0Nyw3IEBAIHN0YXRpYyB2b2lkIF9f aW5pdCB0ZWdyYTEyNF9wbGxfaW5pdCh2b2lkIF9faW9tZW0gKmNsa19iYXNlLAogCQkJCSAgICAg dm9pZCBfX2lvbWVtICpwbWMpCiB7CiAJdTMyIHZhbDsKLQlzdHJ1Y3QgY2xrICpjbGs7CisJc3Ry dWN0IGNsa19jb3JlICpjbGs7CiAKIAkvKiBQTExDICovCiAJY2xrID0gdGVncmFfY2xrX3JlZ2lz dGVyX3BsbHhjKCJwbGxfYyIsICJwbGxfcmVmIiwgY2xrX2Jhc2UsCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2Nsay90ZWdyYS9jbGstdGVncmEyMC5jIGIvZHJpdmVycy9jbGsvdGVncmEvY2xrLXRlZ3Jh MjAuYwppbmRleCBkYWNlMmIxLi42ZTdkNWUyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay90ZWdy YS9jbGstdGVncmEyMC5jCisrKyBiL2RyaXZlcnMvY2xrL3RlZ3JhL2Nsay10ZWdyYTIwLmMKQEAg LTE1LDcgKzE1LDYgQEAKICAqLwogCiAjaW5jbHVkZSA8bGludXgvaW8uaD4KLSNpbmNsdWRlIDxs aW51eC9jbGsuaD4KICNpbmNsdWRlIDxsaW51eC9jbGstcHJvdmlkZXIuaD4KICNpbmNsdWRlIDxs aW51eC9jbGtkZXYuaD4KICNpbmNsdWRlIDxsaW51eC9vZi5oPgpAQCAtMTYyLDcgKzE2MSw3IEBA IHN0YXRpYyB2b2lkIF9faW9tZW0gKnBtY19iYXNlOwogCQkJX2Nsa19udW0sIF9nYXRlX2ZsYWdz LAlcCiAJCQlfY2xrX2lkKQogCi1zdGF0aWMgc3RydWN0IGNsayAqKmNsa3M7CitzdGF0aWMgc3Ry dWN0IGNsa19jb3JlICoqY2xrczsKIAogc3RhdGljIHN0cnVjdCB0ZWdyYV9jbGtfcGxsX2ZyZXFf dGFibGUgcGxsX2NfZnJlcV90YWJsZVtdID0gewogCXsgMTIwMDAwMDAsIDYwMDAwMDAwMCwgNjAw LCAxMiwgMCwgOCB9LApAQCAtNjMzLDcgKzYzMiw3IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgdGVn cmEyMF9nZXRfcGxsX3JlZl9kaXYodm9pZCkKIAogc3RhdGljIHZvaWQgdGVncmEyMF9wbGxfaW5p dCh2b2lkKQogewotCXN0cnVjdCBjbGsgKmNsazsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmNsazsKIAog CS8qIFBMTEMgKi8KIAljbGsgPSB0ZWdyYV9jbGtfcmVnaXN0ZXJfcGxsKCJwbGxfYyIsICJwbGxf cmVmIiwgY2xrX2Jhc2UsIE5VTEwsIDAsCkBAIC03MTMsNyArNzEyLDcgQEAgc3RhdGljIGNvbnN0 IGNoYXIgKnNjbGtfcGFyZW50c1tdID0geyAiY2xrX20iLCAicGxsX2Nfb3V0MSIsICJwbGxfcF9v dXQ0IiwKIAogc3RhdGljIHZvaWQgdGVncmEyMF9zdXBlcl9jbGtfaW5pdCh2b2lkKQogewotCXN0 cnVjdCBjbGsgKmNsazsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmNsazsKIAogCS8qIENDTEsgKi8KIAlj bGsgPSB0ZWdyYV9jbGtfcmVnaXN0ZXJfc3VwZXJfbXV4KCJjY2xrIiwgY2Nsa19wYXJlbnRzLApA QCAtNzM4LDcgKzczNyw3IEBAIHN0YXRpYyBjb25zdCBjaGFyICphdWRpb19wYXJlbnRzW10gPSB7 InNwZGlmX2luIiwgImkyczEiLCAiaTJzMiIsICJ1bnVzZWQiLAogCiBzdGF0aWMgdm9pZCBfX2lu aXQgdGVncmEyMF9hdWRpb19jbGtfaW5pdCh2b2lkKQogewotCXN0cnVjdCBjbGsgKmNsazsKKwlz dHJ1Y3QgY2xrX2NvcmUgKmNsazsKIAogCS8qIGF1ZGlvICovCiAJY2xrID0gY2xrX3JlZ2lzdGVy X211eChOVUxMLCAiYXVkaW9fbXV4IiwgYXVkaW9fcGFyZW50cywKQEAgLTgwMCw3ICs3OTksNyBA QCBzdGF0aWMgc3RydWN0IHRlZ3JhX3BlcmlwaF9pbml0X2RhdGEgdGVncmFfcGVyaXBoX25vZGl2 X2Nsa19saXN0W10gPSB7CiBzdGF0aWMgdm9pZCBfX2luaXQgdGVncmEyMF9wZXJpcGhfY2xrX2lu aXQodm9pZCkKIHsKIAlzdHJ1Y3QgdGVncmFfcGVyaXBoX2luaXRfZGF0YSAqZGF0YTsKLQlzdHJ1 Y3QgY2xrICpjbGs7CisJc3RydWN0IGNsa19jb3JlICpjbGs7CiAJaW50IGk7CiAKIAkvKiBhYzk3 ICovCkBAIC04NzEsNyArODcwLDcgQEAgc3RhdGljIHZvaWQgX19pbml0IHRlZ3JhMjBfcGVyaXBo X2Nsa19pbml0KHZvaWQpCiAKIHN0YXRpYyB2b2lkIF9faW5pdCB0ZWdyYTIwX29zY19jbGtfaW5p dCh2b2lkKQogewotCXN0cnVjdCBjbGsgKmNsazsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmNsazsKIAl1 bnNpZ25lZCBsb25nIGlucHV0X2ZyZXE7CiAJdW5zaWduZWQgaW50IHBsbF9yZWZfZGl2OwogCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2Nsay90ZWdyYS9jbGstdGVncmEzMC5jIGIvZHJpdmVycy9jbGsv dGVncmEvY2xrLXRlZ3JhMzAuYwppbmRleCA1YmJhY2QwLi4xZTlmNzMzIDEwMDY0NAotLS0gYS9k cml2ZXJzL2Nsay90ZWdyYS9jbGstdGVncmEzMC5jCisrKyBiL2RyaXZlcnMvY2xrL3RlZ3JhL2Ns ay10ZWdyYTMwLmMKQEAgLTE2LDcgKzE2LDYgQEAKIAogI2luY2x1ZGUgPGxpbnV4L2lvLmg+CiAj aW5jbHVkZSA8bGludXgvZGVsYXkuaD4KLSNpbmNsdWRlIDxsaW51eC9jbGsuaD4KICNpbmNsdWRl IDxsaW51eC9jbGstcHJvdmlkZXIuaD4KICNpbmNsdWRlIDxsaW51eC9jbGtkZXYuaD4KICNpbmNs dWRlIDxsaW51eC9vZi5oPgpAQCAtMjA1LDcgKzIwNCw3IEBAIHN0YXRpYyBERUZJTkVfU1BJTkxP Q0socGxsX2RfbG9jayk7CiAJCQlfY2xrX251bSwgX2dhdGVfZmxhZ3MsCVwKIAkJCV9jbGtfaWQp CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrICoqY2xrczsKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgKipj bGtzOwogCiAvKgogICogU3RydWN0dXJlIGRlZmluaW5nIHRoZSBmaWVsZHMgZm9yIFVTQiBVVE1J IGNsb2NrcyBQYXJhbWV0ZXJzLgpAQCAtOTIxLDcgKzkyMCw3IEBAIHN0YXRpYyBjb25zdCBjaGFy ICpwbGxfZV9wYXJlbnRzW10gPSB7InBsbF9yZWYiLCAicGxsX3AifTsKIAogc3RhdGljIHZvaWQg X19pbml0IHRlZ3JhMzBfcGxsX2luaXQodm9pZCkKIHsKLQlzdHJ1Y3QgY2xrICpjbGs7CisJc3Ry dWN0IGNsa19jb3JlICpjbGs7CiAKIAkvKiBQTExDICovCiAJY2xrID0gdGVncmFfY2xrX3JlZ2lz dGVyX3BsbCgicGxsX2MiLCAicGxsX3JlZiIsIGNsa19iYXNlLCBwbWNfYmFzZSwgMCwKQEAgLTEw MTIsNyArMTAxMSw3IEBAIHN0YXRpYyBjb25zdCBjaGFyICpzY2xrX3BhcmVudHNbXSA9IHsgImNs a19tIiwgInBsbF9jX291dDEiLCAicGxsX3Bfb3V0NCIsCiAKIHN0YXRpYyB2b2lkIF9faW5pdCB0 ZWdyYTMwX3N1cGVyX2Nsa19pbml0KHZvaWQpCiB7Ci0Jc3RydWN0IGNsayAqY2xrOworCXN0cnVj dCBjbGtfY29yZSAqY2xrOwogCiAJLyoKIAkgKiBDbG9jayBpbnB1dCB0byBjY2xrX2cgZGl2aWRl ZCBmcm9tIHBsbF9wIHVzaW5nCkBAIC0xMTM0LDcgKzExMzMsNyBAQCBzdGF0aWMgc3RydWN0IHRl Z3JhX3BlcmlwaF9pbml0X2RhdGEgdGVncmFfcGVyaXBoX25vZGl2X2Nsa19saXN0W10gPSB7CiBz dGF0aWMgdm9pZCBfX2luaXQgdGVncmEzMF9wZXJpcGhfY2xrX2luaXQodm9pZCkKIHsKIAlzdHJ1 Y3QgdGVncmFfcGVyaXBoX2luaXRfZGF0YSAqZGF0YTsKLQlzdHJ1Y3QgY2xrICpjbGs7CisJc3Ry dWN0IGNsa19jb3JlICpjbGs7CiAJaW50IGk7CiAKIAkvKiBkc2lhICovCmRpZmYgLS1naXQgYS9k cml2ZXJzL2Nsay90ZWdyYS9jbGsuYyBiL2RyaXZlcnMvY2xrL3RlZ3JhL2Nsay5jCmluZGV4IGY4 N2M2MDkuLmQ1OTYzZjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL3RlZ3JhL2Nsay5jCisrKyBi L2RyaXZlcnMvY2xrL3RlZ3JhL2Nsay5jCkBAIC0xNCw3ICsxNCw2IEBACiAgKiBhbG9uZyB3aXRo IHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMv Pi4KICAqLwogCi0jaW5jbHVkZSA8bGludXgvY2xrLmg+CiAjaW5jbHVkZSA8bGludXgvY2xrLXBy b3ZpZGVyLmg+CiAjaW5jbHVkZSA8bGludXgvb2YuaD4KICNpbmNsdWRlIDxsaW51eC9jbGsvdGVn cmEuaD4KQEAgLTY5LDcgKzY4LDcgQEAgc3RydWN0IHRlZ3JhX2NwdV9jYXJfb3BzICp0ZWdyYV9j cHVfY2FyX29wcyA9ICZkdW1teV9jYXJfb3BzOwogCiBpbnQgKnBlcmlwaF9jbGtfZW5iX3JlZmNu dDsKIHN0YXRpYyBpbnQgcGVyaXBoX2JhbmtzOwotc3RhdGljIHN0cnVjdCBjbGsgKipjbGtzOwor c3RhdGljIHN0cnVjdCBjbGtfY29yZSAqKmNsa3M7CiBzdGF0aWMgaW50IGNsa19udW07CiBzdGF0 aWMgc3RydWN0IGNsa19vbmVjZWxsX2RhdGEgY2xrX2RhdGE7CiAKQEAgLTE2NSw3ICsxNjQsNyBA QCBzdHJ1Y3QgdGVncmFfY2xrX3BlcmlwaF9yZWdzICpnZXRfcmVnX2JhbmsoaW50IGNsa2lkKQog CX0KIH0KIAotc3RydWN0IGNsayAqKiBfX2luaXQgdGVncmFfY2xrX2luaXQodm9pZCBfX2lvbWVt ICpyZWdzLCBpbnQgbnVtLCBpbnQgYmFua3MpCitzdHJ1Y3QgY2xrX2NvcmUgKiogX19pbml0IHRl Z3JhX2Nsa19pbml0KHZvaWQgX19pb21lbSAqcmVncywgaW50IG51bSwgaW50IGJhbmtzKQogewog CWNsa19iYXNlID0gcmVnczsKIApAQCAtMTc5LDcgKzE3OCw3IEBAIHN0cnVjdCBjbGsgKiogX19p bml0IHRlZ3JhX2Nsa19pbml0KHZvaWQgX19pb21lbSAqcmVncywgaW50IG51bSwgaW50IGJhbmtz KQogCiAJcGVyaXBoX2JhbmtzID0gYmFua3M7CiAKLQljbGtzID0ga3phbGxvYyhudW0gKiBzaXpl b2Yoc3RydWN0IGNsayAqKSwgR0ZQX0tFUk5FTCk7CisJY2xrcyA9IGt6YWxsb2MobnVtICogc2l6 ZW9mKHN0cnVjdCBjbGtfY29yZSAqKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFjbGtzKQogCQlrZnJl ZShwZXJpcGhfY2xrX2VuYl9yZWZjbnQpOwogCkBAIC0xODksOSArMTg4LDkgQEAgc3RydWN0IGNs ayAqKiBfX2luaXQgdGVncmFfY2xrX2luaXQodm9pZCBfX2lvbWVtICpyZWdzLCBpbnQgbnVtLCBp bnQgYmFua3MpCiB9CiAKIHZvaWQgX19pbml0IHRlZ3JhX2luaXRfZHVwX2Nsa3Moc3RydWN0IHRl Z3JhX2Nsa19kdXBsaWNhdGUgKmR1cF9saXN0LAotCQkJCXN0cnVjdCBjbGsgKmNsa3NbXSwgaW50 IGNsa19tYXgpCisJCQkJc3RydWN0IGNsa19jb3JlICpjbGtzW10sIGludCBjbGtfbWF4KQogewot CXN0cnVjdCBjbGsgKmNsazsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmNsazsKIAogCWZvciAoOyBkdXBf bGlzdC0+Y2xrX2lkIDwgY2xrX21heDsgZHVwX2xpc3QrKykgewogCQljbGsgPSBjbGtzW2R1cF9s aXN0LT5jbGtfaWRdOwpAQCAtMjAxLDkgKzIwMCw5IEBAIHZvaWQgX19pbml0IHRlZ3JhX2luaXRf ZHVwX2Nsa3Moc3RydWN0IHRlZ3JhX2Nsa19kdXBsaWNhdGUgKmR1cF9saXN0LAogfQogCiB2b2lk IF9faW5pdCB0ZWdyYV9pbml0X2Zyb21fdGFibGUoc3RydWN0IHRlZ3JhX2Nsa19pbml0X3RhYmxl ICp0YmwsCi0JCQkJICBzdHJ1Y3QgY2xrICpjbGtzW10sIGludCBjbGtfbWF4KQorCQkJCSAgc3Ry dWN0IGNsa19jb3JlICpjbGtzW10sIGludCBjbGtfbWF4KQogewotCXN0cnVjdCBjbGsgKmNsazsK KwlzdHJ1Y3QgY2xrX2NvcmUgKmNsazsKIAogCWZvciAoOyB0YmwtPmNsa19pZCA8IGNsa19tYXg7 IHRibCsrKSB7CiAJCWNsayA9IGNsa3NbdGJsLT5jbGtfaWRdOwpAQCAtMjExLDggKzIxMCw4IEBA IHZvaWQgX19pbml0IHRlZ3JhX2luaXRfZnJvbV90YWJsZShzdHJ1Y3QgdGVncmFfY2xrX2luaXRf dGFibGUgKnRibCwKIAkJCXJldHVybjsKIAogCQlpZiAodGJsLT5wYXJlbnRfaWQgPCBjbGtfbWF4 KSB7Ci0JCQlzdHJ1Y3QgY2xrICpwYXJlbnQgPSBjbGtzW3RibC0+cGFyZW50X2lkXTsKLQkJCWlm IChjbGtfc2V0X3BhcmVudChjbGssIHBhcmVudCkpIHsKKwkJCXN0cnVjdCBjbGtfY29yZSAqcGFy ZW50ID0gY2xrc1t0YmwtPnBhcmVudF9pZF07CisJCQlpZiAoY2xrX3Byb3ZpZGVyX3NldF9wYXJl bnQoY2xrLCBwYXJlbnQpKSB7CiAJCQkJcHJfZXJyKCIlczogRmFpbGVkIHRvIHNldCBwYXJlbnQg JXMgb2YgJXNcbiIsCiAJCQkJICAgICAgIF9fZnVuY19fLCBfX2Nsa19nZXRfbmFtZShwYXJlbnQp LAogCQkJCSAgICAgICBfX2Nsa19nZXRfbmFtZShjbGspKTsKQEAgLTIyMSw3ICsyMjAsNyBAQCB2 b2lkIF9faW5pdCB0ZWdyYV9pbml0X2Zyb21fdGFibGUoc3RydWN0IHRlZ3JhX2Nsa19pbml0X3Rh YmxlICp0YmwsCiAJCX0KIAogCQlpZiAodGJsLT5yYXRlKQotCQkJaWYgKGNsa19zZXRfcmF0ZShj bGssIHRibC0+cmF0ZSkpIHsKKwkJCWlmIChjbGtfcHJvdmlkZXJfc2V0X3JhdGUoY2xrLCB0Ymwt PnJhdGUpKSB7CiAJCQkJcHJfZXJyKCIlczogRmFpbGVkIHRvIHNldCByYXRlICVsdSBvZiAlc1xu IiwKIAkJCQkgICAgICAgX19mdW5jX18sIHRibC0+cmF0ZSwKIAkJCQkgICAgICAgX19jbGtfZ2V0 X25hbWUoY2xrKSk7CkBAIC0yMjksNyArMjI4LDcgQEAgdm9pZCBfX2luaXQgdGVncmFfaW5pdF9m cm9tX3RhYmxlKHN0cnVjdCB0ZWdyYV9jbGtfaW5pdF90YWJsZSAqdGJsLAogCQkJfQogCiAJCWlm ICh0YmwtPnN0YXRlKQotCQkJaWYgKGNsa19wcmVwYXJlX2VuYWJsZShjbGspKSB7CisJCQlpZiAo Y2xrX3Byb3ZpZGVyX3ByZXBhcmVfZW5hYmxlKGNsaykpIHsKIAkJCQlwcl9lcnIoIiVzOiBGYWls ZWQgdG8gZW5hYmxlICVzXG4iLCBfX2Z1bmNfXywKIAkJCQkgICAgICAgX19jbGtfZ2V0X25hbWUo Y2xrKSk7CiAJCQkJV0FSTl9PTigxKTsKQEAgLTI4Niw3ICsyODUsNyBAQCB2b2lkIF9faW5pdCB0 ZWdyYV9yZWdpc3Rlcl9kZXZjbGtzKHN0cnVjdCB0ZWdyYV9kZXZjbGsgKmRldl9jbGtzLCBpbnQg bnVtKQogCX0KIH0KIAotc3RydWN0IGNsayAqKiBfX2luaXQgdGVncmFfbG9va3VwX2R0X2lkKGlu dCBjbGtfaWQsCitzdHJ1Y3QgY2xrX2NvcmUgKiogX19pbml0IHRlZ3JhX2xvb2t1cF9kdF9pZChp bnQgY2xrX2lkLAogCQkJCQlzdHJ1Y3QgdGVncmFfY2xrICp0ZWdyYV9jbGspCiB7CiAJaWYgKHRl Z3JhX2Nsa1tjbGtfaWRdLnByZXNlbnQpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay90ZWdyYS9j bGsuaCBiL2RyaXZlcnMvY2xrL3RlZ3JhL2Nsay5oCmluZGV4IDE2ZWM4ZDYuLjMwOTNhYTQgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL3RlZ3JhL2Nsay5oCisrKyBiL2RyaXZlcnMvY2xrL3RlZ3Jh L2Nsay5oCkBAIC0zOSw3ICszOSw3IEBAIHN0cnVjdCB0ZWdyYV9jbGtfc3luY19zb3VyY2Ugewog ZXh0ZXJuIGNvbnN0IHN0cnVjdCBjbGtfb3BzIHRlZ3JhX2Nsa19zeW5jX3NvdXJjZV9vcHM7CiBl eHRlcm4gaW50ICpwZXJpcGhfY2xrX2VuYl9yZWZjbnQ7CiAKLXN0cnVjdCBjbGsgKnRlZ3JhX2Ns a19yZWdpc3Rlcl9zeW5jX3NvdXJjZShjb25zdCBjaGFyICpuYW1lLAorc3RydWN0IGNsa19jb3Jl ICp0ZWdyYV9jbGtfcmVnaXN0ZXJfc3luY19zb3VyY2UoY29uc3QgY2hhciAqbmFtZSwKIAkJdW5z aWduZWQgbG9uZyBmaXhlZF9yYXRlLCB1bnNpZ25lZCBsb25nIG1heF9yYXRlKTsKIAogLyoqCkBA IC04Miw3ICs4Miw3IEBAIHN0cnVjdCB0ZWdyYV9jbGtfZnJhY19kaXYgewogI2RlZmluZSBURUdS QV9ESVZJREVSX1VBUlQgQklUKDMpCiAKIGV4dGVybiBjb25zdCBzdHJ1Y3QgY2xrX29wcyB0ZWdy YV9jbGtfZnJhY19kaXZfb3BzOwotc3RydWN0IGNsayAqdGVncmFfY2xrX3JlZ2lzdGVyX2Rpdmlk ZXIoY29uc3QgY2hhciAqbmFtZSwKK3N0cnVjdCBjbGtfY29yZSAqdGVncmFfY2xrX3JlZ2lzdGVy X2RpdmlkZXIoY29uc3QgY2hhciAqbmFtZSwKIAkJY29uc3QgY2hhciAqcGFyZW50X25hbWUsIHZv aWQgX19pb21lbSAqcmVnLAogCQl1bnNpZ25lZCBsb25nIGZsYWdzLCB1OCBjbGtfZGl2aWRlcl9m bGFncywgdTggc2hpZnQsIHU4IHdpZHRoLAogCQl1OCBmcmFjX3dpZHRoLCBzcGlubG9ja190ICps b2NrKTsKQEAgLTI1OCw0NyArMjU4LDQ3IEBAIHN0cnVjdCB0ZWdyYV9jbGtfcGxsIHsKIAogZXh0 ZXJuIGNvbnN0IHN0cnVjdCBjbGtfb3BzIHRlZ3JhX2Nsa19wbGxfb3BzOwogZXh0ZXJuIGNvbnN0 IHN0cnVjdCBjbGtfb3BzIHRlZ3JhX2Nsa19wbGxlX29wczsKLXN0cnVjdCBjbGsgKnRlZ3JhX2Ns a19yZWdpc3Rlcl9wbGwoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqcGFyZW50X25hbWUs CitzdHJ1Y3QgY2xrX2NvcmUgKnRlZ3JhX2Nsa19yZWdpc3Rlcl9wbGwoY29uc3QgY2hhciAqbmFt ZSwgY29uc3QgY2hhciAqcGFyZW50X25hbWUsCiAJCXZvaWQgX19pb21lbSAqY2xrX2Jhc2UsIHZv aWQgX19pb21lbSAqcG1jLAogCQl1bnNpZ25lZCBsb25nIGZsYWdzLCBzdHJ1Y3QgdGVncmFfY2xr X3BsbF9wYXJhbXMgKnBsbF9wYXJhbXMsCiAJCXNwaW5sb2NrX3QgKmxvY2spOwogCi1zdHJ1Y3Qg Y2xrICp0ZWdyYV9jbGtfcmVnaXN0ZXJfcGxsZShjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFy ICpwYXJlbnRfbmFtZSwKK3N0cnVjdCBjbGtfY29yZSAqdGVncmFfY2xrX3JlZ2lzdGVyX3BsbGUo Y29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqcGFyZW50X25hbWUsCiAJCXZvaWQgX19pb21l bSAqY2xrX2Jhc2UsIHZvaWQgX19pb21lbSAqcG1jLAogCQl1bnNpZ25lZCBsb25nIGZsYWdzLCBz dHJ1Y3QgdGVncmFfY2xrX3BsbF9wYXJhbXMgKnBsbF9wYXJhbXMsCiAJCXNwaW5sb2NrX3QgKmxv Y2spOwogCi1zdHJ1Y3QgY2xrICp0ZWdyYV9jbGtfcmVnaXN0ZXJfcGxseGMoY29uc3QgY2hhciAq bmFtZSwgY29uc3QgY2hhciAqcGFyZW50X25hbWUsCitzdHJ1Y3QgY2xrX2NvcmUgKnRlZ3JhX2Ns a19yZWdpc3Rlcl9wbGx4Yyhjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpwYXJlbnRfbmFt ZSwKIAkJCSAgICB2b2lkIF9faW9tZW0gKmNsa19iYXNlLCB2b2lkIF9faW9tZW0gKnBtYywKIAkJ CSAgICB1bnNpZ25lZCBsb25nIGZsYWdzLAogCQkJICAgIHN0cnVjdCB0ZWdyYV9jbGtfcGxsX3Bh cmFtcyAqcGxsX3BhcmFtcywKIAkJCSAgICBzcGlubG9ja190ICpsb2NrKTsKIAotc3RydWN0IGNs ayAqdGVncmFfY2xrX3JlZ2lzdGVyX3BsbG0oY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAq cGFyZW50X25hbWUsCitzdHJ1Y3QgY2xrX2NvcmUgKnRlZ3JhX2Nsa19yZWdpc3Rlcl9wbGxtKGNv bnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnBhcmVudF9uYW1lLAogCQkJICAgdm9pZCBfX2lv bWVtICpjbGtfYmFzZSwgdm9pZCBfX2lvbWVtICpwbWMsCiAJCQkgICB1bnNpZ25lZCBsb25nIGZs YWdzLAogCQkJICAgc3RydWN0IHRlZ3JhX2Nsa19wbGxfcGFyYW1zICpwbGxfcGFyYW1zLAogCQkJ ICAgc3BpbmxvY2tfdCAqbG9jayk7CiAKLXN0cnVjdCBjbGsgKnRlZ3JhX2Nsa19yZWdpc3Rlcl9w bGxjKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnBhcmVudF9uYW1lLAorc3RydWN0IGNs a19jb3JlICp0ZWdyYV9jbGtfcmVnaXN0ZXJfcGxsYyhjb25zdCBjaGFyICpuYW1lLCBjb25zdCBj aGFyICpwYXJlbnRfbmFtZSwKIAkJCSAgIHZvaWQgX19pb21lbSAqY2xrX2Jhc2UsIHZvaWQgX19p b21lbSAqcG1jLAogCQkJICAgdW5zaWduZWQgbG9uZyBmbGFncywKIAkJCSAgIHN0cnVjdCB0ZWdy YV9jbGtfcGxsX3BhcmFtcyAqcGxsX3BhcmFtcywKIAkJCSAgIHNwaW5sb2NrX3QgKmxvY2spOwog Ci1zdHJ1Y3QgY2xrICp0ZWdyYV9jbGtfcmVnaXN0ZXJfcGxscmUoY29uc3QgY2hhciAqbmFtZSwg Y29uc3QgY2hhciAqcGFyZW50X25hbWUsCitzdHJ1Y3QgY2xrX2NvcmUgKnRlZ3JhX2Nsa19yZWdp c3Rlcl9wbGxyZShjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpwYXJlbnRfbmFtZSwKIAkJ CSAgIHZvaWQgX19pb21lbSAqY2xrX2Jhc2UsIHZvaWQgX19pb21lbSAqcG1jLAogCQkJICAgdW5z aWduZWQgbG9uZyBmbGFncywKIAkJCSAgIHN0cnVjdCB0ZWdyYV9jbGtfcGxsX3BhcmFtcyAqcGxs X3BhcmFtcywKIAkJCSAgIHNwaW5sb2NrX3QgKmxvY2ssIHVuc2lnbmVkIGxvbmcgcGFyZW50X3Jh dGUpOwogCi1zdHJ1Y3QgY2xrICp0ZWdyYV9jbGtfcmVnaXN0ZXJfcGxsZV90ZWdyYTExNChjb25z dCBjaGFyICpuYW1lLAorc3RydWN0IGNsa19jb3JlICp0ZWdyYV9jbGtfcmVnaXN0ZXJfcGxsZV90 ZWdyYTExNChjb25zdCBjaGFyICpuYW1lLAogCQkJCWNvbnN0IGNoYXIgKnBhcmVudF9uYW1lLAog CQkJCXZvaWQgX19pb21lbSAqY2xrX2Jhc2UsIHVuc2lnbmVkIGxvbmcgZmxhZ3MsCiAJCQkJc3Ry dWN0IHRlZ3JhX2Nsa19wbGxfcGFyYW1zICpwbGxfcGFyYW1zLAogCQkJCXNwaW5sb2NrX3QgKmxv Y2spOwogCi1zdHJ1Y3QgY2xrICp0ZWdyYV9jbGtfcmVnaXN0ZXJfcGxsc3MoY29uc3QgY2hhciAq bmFtZSwgY29uc3QgY2hhciAqcGFyZW50X25hbWUsCitzdHJ1Y3QgY2xrX2NvcmUgKnRlZ3JhX2Ns a19yZWdpc3Rlcl9wbGxzcyhjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpwYXJlbnRfbmFt ZSwKIAkJCSAgIHZvaWQgX19pb21lbSAqY2xrX2Jhc2UsIHVuc2lnbmVkIGxvbmcgZmxhZ3MsCiAJ CQkgICBzdHJ1Y3QgdGVncmFfY2xrX3BsbF9wYXJhbXMgKnBsbF9wYXJhbXMsCiAJCQkgICBzcGlu bG9ja190ICpsb2NrKTsKQEAgLTMyNSw3ICszMjUsNyBAQCBzdHJ1Y3QgdGVncmFfY2xrX3BsbF9v dXQgewogI2RlZmluZSB0b19jbGtfcGxsX291dChfaHcpIGNvbnRhaW5lcl9vZihfaHcsIHN0cnVj dCB0ZWdyYV9jbGtfcGxsX291dCwgaHcpCiAKIGV4dGVybiBjb25zdCBzdHJ1Y3QgY2xrX29wcyB0 ZWdyYV9jbGtfcGxsX291dF9vcHM7Ci1zdHJ1Y3QgY2xrICp0ZWdyYV9jbGtfcmVnaXN0ZXJfcGxs X291dChjb25zdCBjaGFyICpuYW1lLAorc3RydWN0IGNsa19jb3JlICp0ZWdyYV9jbGtfcmVnaXN0 ZXJfcGxsX291dChjb25zdCBjaGFyICpuYW1lLAogCQljb25zdCBjaGFyICpwYXJlbnRfbmFtZSwg dm9pZCBfX2lvbWVtICpyZWcsIHU4IGVuYl9iaXRfaWR4LAogCQl1OCByc3RfYml0X2lkeCwgdW5z aWduZWQgbG9uZyBmbGFncywgdTggcGxsX2Rpdl9mbGFncywKIAkJc3BpbmxvY2tfdCAqbG9jayk7 CkBAIC0zOTQsNyArMzk0LDcgQEAgc3RydWN0IHRlZ3JhX2Nsa19wZXJpcGhfZ2F0ZSB7CiAjZGVm aW5lIFRFR1JBX1BFUklQSF9OT19HQVRFIEJJVCg1KQogCiBleHRlcm4gY29uc3Qgc3RydWN0IGNs a19vcHMgdGVncmFfY2xrX3BlcmlwaF9nYXRlX29wczsKLXN0cnVjdCBjbGsgKnRlZ3JhX2Nsa19y ZWdpc3Rlcl9wZXJpcGhfZ2F0ZShjb25zdCBjaGFyICpuYW1lLAorc3RydWN0IGNsa19jb3JlICp0 ZWdyYV9jbGtfcmVnaXN0ZXJfcGVyaXBoX2dhdGUoY29uc3QgY2hhciAqbmFtZSwKIAkJY29uc3Qg Y2hhciAqcGFyZW50X25hbWUsIHU4IGdhdGVfZmxhZ3MsIHZvaWQgX19pb21lbSAqY2xrX2Jhc2Us CiAJCXVuc2lnbmVkIGxvbmcgZmxhZ3MsIGludCBjbGtfbnVtLCBpbnQgKmVuYWJsZV9yZWZjbnQp OwogCkBAIC00MjcsMTEgKzQyNywxMSBAQCBzdHJ1Y3QgdGVncmFfY2xrX3BlcmlwaCB7CiAjZGVm aW5lIFRFR1JBX0NMS19QRVJJUEhfTUFHSUMgMHgxODIyMTIyMwogCiBleHRlcm4gY29uc3Qgc3Ry dWN0IGNsa19vcHMgdGVncmFfY2xrX3BlcmlwaF9vcHM7Ci1zdHJ1Y3QgY2xrICp0ZWdyYV9jbGtf cmVnaXN0ZXJfcGVyaXBoKGNvbnN0IGNoYXIgKm5hbWUsCitzdHJ1Y3QgY2xrX2NvcmUgKnRlZ3Jh X2Nsa19yZWdpc3Rlcl9wZXJpcGgoY29uc3QgY2hhciAqbmFtZSwKIAkJY29uc3QgY2hhciAqKnBh cmVudF9uYW1lcywgaW50IG51bV9wYXJlbnRzLAogCQlzdHJ1Y3QgdGVncmFfY2xrX3BlcmlwaCAq cGVyaXBoLCB2b2lkIF9faW9tZW0gKmNsa19iYXNlLAogCQl1MzIgb2Zmc2V0LCB1bnNpZ25lZCBs b25nIGZsYWdzKTsKLXN0cnVjdCBjbGsgKnRlZ3JhX2Nsa19yZWdpc3Rlcl9wZXJpcGhfbm9kaXYo Y29uc3QgY2hhciAqbmFtZSwKK3N0cnVjdCBjbGtfY29yZSAqdGVncmFfY2xrX3JlZ2lzdGVyX3Bl cmlwaF9ub2Rpdihjb25zdCBjaGFyICpuYW1lLAogCQljb25zdCBjaGFyICoqcGFyZW50X25hbWVz LCBpbnQgbnVtX3BhcmVudHMsCiAJCXN0cnVjdCB0ZWdyYV9jbGtfcGVyaXBoICpwZXJpcGgsIHZv aWQgX19pb21lbSAqY2xrX2Jhc2UsCiAJCXUzMiBvZmZzZXQpOwpAQCAtNTQwLDcgKzU0MCw3IEBA IHN0cnVjdCB0ZWdyYV9jbGtfc3VwZXJfbXV4IHsKICNkZWZpbmUgVEVHUkFfRElWSURFUl8yIEJJ VCgwKQogCiBleHRlcm4gY29uc3Qgc3RydWN0IGNsa19vcHMgdGVncmFfY2xrX3N1cGVyX29wczsK LXN0cnVjdCBjbGsgKnRlZ3JhX2Nsa19yZWdpc3Rlcl9zdXBlcl9tdXgoY29uc3QgY2hhciAqbmFt ZSwKK3N0cnVjdCBjbGtfY29yZSAqdGVncmFfY2xrX3JlZ2lzdGVyX3N1cGVyX211eChjb25zdCBj aGFyICpuYW1lLAogCQljb25zdCBjaGFyICoqcGFyZW50X25hbWVzLCB1OCBudW1fcGFyZW50cywK IAkJdW5zaWduZWQgbG9uZyBmbGFncywgdm9pZCBfX2lvbWVtICpyZWcsIHU4IGNsa19zdXBlcl9m bGFncywKIAkJdTggd2lkdGgsIHU4IHBsbHhfaW5kZXgsIHU4IGRpdjJfaW5kZXgsIHNwaW5sb2Nr X3QgKmxvY2spOwpAQCAtNTkwLDE1ICs1OTAsMTUgQEAgc3RydWN0IHRlZ3JhX2RldmNsayB7CiB9 OwogCiB2b2lkIHRlZ3JhX2luaXRfZnJvbV90YWJsZShzdHJ1Y3QgdGVncmFfY2xrX2luaXRfdGFi bGUgKnRibCwKLQkJc3RydWN0IGNsayAqY2xrc1tdLCBpbnQgY2xrX21heCk7CisJCXN0cnVjdCBj bGtfY29yZSAqY2xrc1tdLCBpbnQgY2xrX21heCk7CiAKIHZvaWQgdGVncmFfaW5pdF9kdXBfY2xr cyhzdHJ1Y3QgdGVncmFfY2xrX2R1cGxpY2F0ZSAqZHVwX2xpc3QsCi0JCXN0cnVjdCBjbGsgKmNs a3NbXSwgaW50IGNsa19tYXgpOworCQlzdHJ1Y3QgY2xrX2NvcmUgKmNsa3NbXSwgaW50IGNsa19t YXgpOwogCiBzdHJ1Y3QgdGVncmFfY2xrX3BlcmlwaF9yZWdzICpnZXRfcmVnX2JhbmsoaW50IGNs a2lkKTsKLXN0cnVjdCBjbGsgKip0ZWdyYV9jbGtfaW5pdCh2b2lkIF9faW9tZW0gKmNsa19iYXNl LCBpbnQgbnVtLCBpbnQgcGVyaXBoX2JhbmtzKTsKK3N0cnVjdCBjbGtfY29yZSAqKnRlZ3JhX2Ns a19pbml0KHZvaWQgX19pb21lbSAqY2xrX2Jhc2UsIGludCBudW0sIGludCBwZXJpcGhfYmFua3Mp OwogCi1zdHJ1Y3QgY2xrICoqdGVncmFfbG9va3VwX2R0X2lkKGludCBjbGtfaWQsIHN0cnVjdCB0 ZWdyYV9jbGsgKnRlZ3JhX2Nsayk7CitzdHJ1Y3QgY2xrX2NvcmUgKip0ZWdyYV9sb29rdXBfZHRf aWQoaW50IGNsa19pZCwgc3RydWN0IHRlZ3JhX2NsayAqdGVncmFfY2xrKTsKIAogdm9pZCB0ZWdy YV9hZGRfb2ZfcHJvdmlkZXIoc3RydWN0IGRldmljZV9ub2RlICpucCk7CiB2b2lkIHRlZ3JhX3Jl Z2lzdGVyX2RldmNsa3Moc3RydWN0IHRlZ3JhX2RldmNsayAqZGV2X2Nsa3MsIGludCBudW0pOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvdGkvYXBsbC5jIGIvZHJpdmVycy9jbGsvdGkvYXBsbC5j CmluZGV4IDcyZDk3MjcuLmExNjJjMjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL3RpL2FwbGwu YworKysgYi9kcml2ZXJzL2Nsay90aS9hcGxsLmMKQEAgLTEzNSwxMCArMTM1LDEwIEBAIHN0YXRp YyB2b2lkIF9faW5pdCBvbWFwX2Nsa19yZWdpc3Rlcl9hcGxsKHN0cnVjdCBjbGtfaHcgKmh3LAog ewogCXN0cnVjdCBjbGtfaHdfb21hcCAqY2xrX2h3ID0gdG9fY2xrX2h3X29tYXAoaHcpOwogCXN0 cnVjdCBkcGxsX2RhdGEgKmFkID0gY2xrX2h3LT5kcGxsX2RhdGE7Ci0Jc3RydWN0IGNsayAqY2xr OworCXN0cnVjdCBjbGtfY29yZSAqY2xrOwogCi0JYWQtPmNsa19yZWYgPSBvZl9jbGtfZ2V0KG5v ZGUsIDApOwotCWFkLT5jbGtfYnlwYXNzID0gb2ZfY2xrX2dldChub2RlLCAxKTsKKwlhZC0+Y2xr X3JlZiA9IG9mX2Nsa19wcm92aWRlcl9nZXQobm9kZSwgMCk7CisJYWQtPmNsa19ieXBhc3MgPSBv Zl9jbGtfcHJvdmlkZXJfZ2V0KG5vZGUsIDEpOwogCiAJaWYgKElTX0VSUihhZC0+Y2xrX3JlZikg fHwgSVNfRVJSKGFkLT5jbGtfYnlwYXNzKSkgewogCQlwcl9kZWJ1ZygiY2xrLXJlZiBvciBjbGst YnlwYXNzIGZvciAlcyBub3QgcmVhZHksIHJldHJ5XG4iLApAQCAtMzMyLDcgKzMzMiw3IEBAIHN0 YXRpYyB2b2lkIF9faW5pdCBvZl9vbWFwMl9hcGxsX3NldHVwKHN0cnVjdCBkZXZpY2Vfbm9kZSAq bm9kZSkKIAlzdHJ1Y3QgZHBsbF9kYXRhICphZCA9IE5VTEw7CiAJc3RydWN0IGNsa19od19vbWFw ICpjbGtfaHcgPSBOVUxMOwogCXN0cnVjdCBjbGtfaW5pdF9kYXRhICppbml0ID0gTlVMTDsKLQlz dHJ1Y3QgY2xrICpjbGs7CisJc3RydWN0IGNsa19jb3JlICpjbGs7CiAJY29uc3QgY2hhciAqcGFy ZW50X25hbWU7CiAJdTMyIHZhbDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvdGkvY2xrLTJ4 eHguYyBiL2RyaXZlcnMvY2xrL3RpL2Nsay0yeHh4LmMKaW5kZXggYzgwOGFiMy4uYTQ4ZmU2ZiAx MDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvdGkvY2xrLTJ4eHguYworKysgYi9kcml2ZXJzL2Nsay90 aS9jbGstMnh4eC5jCkBAIC0yMzcsMTAgKzIzNywxMCBAQCBzdGF0aWMgaW50IF9faW5pdCBvbWFw Mnh4eF9kdF9jbGtfaW5pdChpbnQgc29jX3R5cGUpCiAJCQkJICAgICBBUlJBWV9TSVpFKGVuYWJs ZV9pbml0X2Nsa3MpKTsKIAogCXByX2luZm8oIkNsb2NraW5nIHJhdGUgKENyeXN0YWwvRFBMTC9N UFUpOiAlbGQuJTAxbGQvJWxkLyVsZCBNSHpcbiIsCi0JCShjbGtfZ2V0X3JhdGUoY2xrX2dldF9z eXMoTlVMTCwgInN5c19jayIpKSAvIDEwMDAwMDApLAotCQkoY2xrX2dldF9yYXRlKGNsa19nZXRf c3lzKE5VTEwsICJzeXNfY2siKSkgLyAxMDAwMDApICUgMTAsCi0JCShjbGtfZ2V0X3JhdGUoY2xr X2dldF9zeXMoTlVMTCwgImRwbGxfY2siKSkgLyAxMDAwMDAwKSwKLQkJKGNsa19nZXRfcmF0ZShj bGtfZ2V0X3N5cyhOVUxMLCAibXB1X2NrIikpIC8gMTAwMDAwMCkpOworCQkoY2xrX3Byb3ZpZGVy X2dldF9yYXRlKGNsa19wcm92aWRlcl9nZXRfc3lzKE5VTEwsICJzeXNfY2siKSkgLyAxMDAwMDAw KSwKKwkJKGNsa19wcm92aWRlcl9nZXRfcmF0ZShjbGtfcHJvdmlkZXJfZ2V0X3N5cyhOVUxMLCAi c3lzX2NrIikpIC8gMTAwMDAwKSAlIDEwLAorCQkoY2xrX3Byb3ZpZGVyX2dldF9yYXRlKGNsa19w cm92aWRlcl9nZXRfc3lzKE5VTEwsICJkcGxsX2NrIikpIC8gMTAwMDAwMCksCisJCShjbGtfcHJv dmlkZXJfZ2V0X3JhdGUoY2xrX3Byb3ZpZGVyX2dldF9zeXMoTlVMTCwgIm1wdV9jayIpKSAvIDEw MDAwMDApKTsKIAogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvdGkvY2xr LTMzeHguYyBiL2RyaXZlcnMvY2xrL3RpL2Nsay0zM3h4LmMKaW5kZXggMDI4YjMzNy4uMDk4OGYx ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvdGkvY2xrLTMzeHguYworKysgYi9kcml2ZXJzL2Ns ay90aS9jbGstMzN4eC5jCkBAIC0xMjEsNyArMTIxLDcgQEAgc3RhdGljIGNvbnN0IGNoYXIgKmVu YWJsZV9pbml0X2Nsa3NbXSA9IHsKIAogaW50IF9faW5pdCBhbTMzeHhfZHRfY2xrX2luaXQodm9p ZCkKIHsKLQlzdHJ1Y3QgY2xrICpjbGsxLCAqY2xrMjsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmNsazEs ICpjbGsyOwogCiAJdGlfZHRfY2xvY2tzX3JlZ2lzdGVyKGFtMzN4eF9jbGtzKTsKIApAQCAtMTM5 LDEyICsxMzksMTIgQEAgaW50IF9faW5pdCBhbTMzeHhfZHRfY2xrX2luaXQodm9pZCkKIAkgKiAg ICBvc2NpbGxhdG9yIGNsb2NrLgogCSAqLwogCi0JY2xrMSA9IGNsa19nZXRfc3lzKE5VTEwsICJz eXNfY2xraW5fY2siKTsKLQljbGsyID0gY2xrX2dldF9zeXMoTlVMTCwgInRpbWVyM19mY2siKTsK LQljbGtfc2V0X3BhcmVudChjbGsyLCBjbGsxKTsKKwljbGsxID0gY2xrX3Byb3ZpZGVyX2dldF9z eXMoTlVMTCwgInN5c19jbGtpbl9jayIpOworCWNsazIgPSBjbGtfcHJvdmlkZXJfZ2V0X3N5cyhO VUxMLCAidGltZXIzX2ZjayIpOworCWNsa19wcm92aWRlcl9zZXRfcGFyZW50KGNsazIsIGNsazEp OwogCi0JY2xrMiA9IGNsa19nZXRfc3lzKE5VTEwsICJ0aW1lcjZfZmNrIik7Ci0JY2xrX3NldF9w YXJlbnQoY2xrMiwgY2xrMSk7CisJY2xrMiA9IGNsa19wcm92aWRlcl9nZXRfc3lzKE5VTEwsICJ0 aW1lcjZfZmNrIik7CisJY2xrX3Byb3ZpZGVyX3NldF9wYXJlbnQoY2xrMiwgY2xrMSk7CiAJLyoK IAkgKiBUaGUgT24tQ2hpcCAzMksgUkMgT3NjIGNsb2NrIGlzIG5vdCBhbiBhY2N1cmF0ZSBjbG9j ay1zb3VyY2UgYXMgcGVyCiAJICogdGhlIGRlc2lnbi9zcGVjLCBzbyBhcyBhIHJlc3VsdCwgZm9y IGV4YW1wbGUsIHRpbWVyIHdoaWNoIHN1cHBvc2VkCkBAIC0xNTIsOSArMTUyLDkgQEAgaW50IF9f aW5pdCBhbTMzeHhfZHRfY2xrX2luaXQodm9pZCkKIAkgKiBub3QgZXhwZWN0ZWQgYnkgYW55IHVz ZS1jYXNlLCBzbyBjaGFuZ2UgV0RUMSBjbG9jayBzb3VyY2UgdG8gUFJDTQogCSAqIDMyS0h6IGNs b2NrLgogCSAqLwotCWNsazEgPSBjbGtfZ2V0X3N5cyhOVUxMLCAid2R0MV9mY2siKTsKLQljbGsy ID0gY2xrX2dldF9zeXMoTlVMTCwgImNsa2RpdjMya19pY2siKTsKLQljbGtfc2V0X3BhcmVudChj bGsxLCBjbGsyKTsKKwljbGsxID0gY2xrX3Byb3ZpZGVyX2dldF9zeXMoTlVMTCwgIndkdDFfZmNr Iik7CisJY2xrMiA9IGNsa19wcm92aWRlcl9nZXRfc3lzKE5VTEwsICJjbGtkaXYzMmtfaWNrIik7 CisJY2xrX3Byb3ZpZGVyX3NldF9wYXJlbnQoY2xrMSwgY2xrMik7CiAKIAlyZXR1cm4gMDsKIH0K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3RpL2Nsay0zeHh4LmMgYi9kcml2ZXJzL2Nsay90aS9j bGstM3h4eC5jCmluZGV4IDBkMTc1MGEuLjU4ZWYyMGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xr L3RpL2Nsay0zeHh4LmMKKysrIGIvZHJpdmVycy9jbGsvdGkvY2xrLTN4eHguYwpAQCAtMzY1LDEw ICszNjUsMTAgQEAgc3RhdGljIGludCBfX2luaXQgb21hcDN4eHhfZHRfY2xrX2luaXQoaW50IHNv Y190eXBlKQogCQkJCSAgICAgQVJSQVlfU0laRShlbmFibGVfaW5pdF9jbGtzKSk7CiAKIAlwcl9p bmZvKCJDbG9ja2luZyByYXRlIChDcnlzdGFsL0NvcmUvTVBVKTogJWxkLiUwMWxkLyVsZC8lbGQg TUh6XG4iLAotCQkoY2xrX2dldF9yYXRlKGNsa19nZXRfc3lzKE5VTEwsICJvc2Nfc3lzX2NrIikp IC8gMTAwMDAwMCksCi0JCShjbGtfZ2V0X3JhdGUoY2xrX2dldF9zeXMoTlVMTCwgIm9zY19zeXNf Y2siKSkgLyAxMDAwMDApICUgMTAsCi0JCShjbGtfZ2V0X3JhdGUoY2xrX2dldF9zeXMoTlVMTCwg ImNvcmVfY2siKSkgLyAxMDAwMDAwKSwKLQkJKGNsa19nZXRfcmF0ZShjbGtfZ2V0X3N5cyhOVUxM LCAiYXJtX2ZjayIpKSAvIDEwMDAwMDApKTsKKwkJKGNsa19wcm92aWRlcl9nZXRfcmF0ZShjbGtf cHJvdmlkZXJfZ2V0X3N5cyhOVUxMLCAib3NjX3N5c19jayIpKSAvIDEwMDAwMDApLAorCQkoY2xr X3Byb3ZpZGVyX2dldF9yYXRlKGNsa19wcm92aWRlcl9nZXRfc3lzKE5VTEwsICJvc2Nfc3lzX2Nr IikpIC8gMTAwMDAwKSAlIDEwLAorCQkoY2xrX3Byb3ZpZGVyX2dldF9yYXRlKGNsa19wcm92aWRl cl9nZXRfc3lzKE5VTEwsICJjb3JlX2NrIikpIC8gMTAwMDAwMCksCisJCShjbGtfcHJvdmlkZXJf Z2V0X3JhdGUoY2xrX3Byb3ZpZGVyX2dldF9zeXMoTlVMTCwgImFybV9mY2siKSkgLyAxMDAwMDAw KSk7CiAKIAlpZiAoc29jX3R5cGUgIT0gT01BUDNfU09DX1RJODFYWCAmJiBzb2NfdHlwZSAhPSBP TUFQM19TT0NfT01BUDM0MzBfRVMxKQogCQlvbWFwM19jbGtfbG9ja19kcGxsNSgpOwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9jbGsvdGkvY2xrLTQzeHguYyBiL2RyaXZlcnMvY2xrL3RpL2Nsay00M3h4 LmMKaW5kZXggMzc5NWZjZS4uMTI3NzQ1MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvdGkvY2xr LTQzeHguYworKysgYi9kcml2ZXJzL2Nsay90aS9jbGstNDN4eC5jCkBAIC0xMTYsNyArMTE2LDcg QEAgc3RhdGljIHN0cnVjdCB0aV9kdF9jbGsgYW00M3h4X2Nsa3NbXSA9IHsKIAogaW50IF9faW5p dCBhbTQzeHhfZHRfY2xrX2luaXQodm9pZCkKIHsKLQlzdHJ1Y3QgY2xrICpjbGsxLCAqY2xrMjsK KwlzdHJ1Y3QgY2xrX2NvcmUgKmNsazEsICpjbGsyOwogCiAJdGlfZHRfY2xvY2tzX3JlZ2lzdGVy KGFtNDN4eF9jbGtzKTsKIApAQCAtMTMyLDkgKzEzMiw5IEBAIGludCBfX2luaXQgYW00M3h4X2R0 X2Nsa19pbml0KHZvaWQpCiAJICogQnkgc2VsZWN0aW5nIGRwbGxfY29yZV9tNV9jayBhcyB0aGUg Y2xvY2tzb3VyY2UgZml4ZXMgdGhpcyBpc3N1ZS4KIAkgKiBJbiBBTTMzNXggZHBsbF9jb3JlX201 X2NrIGlzIHRoZSBkZWZhdWx0IGNsb2Nrc291cmNlLgogCSAqLwotCWNsazEgPSBjbGtfZ2V0X3N5 cyhOVUxMLCAiY3Bzd19jcHRzX3JmdF9jbGsiKTsKLQljbGsyID0gY2xrX2dldF9zeXMoTlVMTCwg ImRwbGxfY29yZV9tNV9jayIpOwotCWNsa19zZXRfcGFyZW50KGNsazEsIGNsazIpOworCWNsazEg PSBjbGtfcHJvdmlkZXJfZ2V0X3N5cyhOVUxMLCAiY3Bzd19jcHRzX3JmdF9jbGsiKTsKKwljbGsy ID0gY2xrX3Byb3ZpZGVyX2dldF9zeXMoTlVMTCwgImRwbGxfY29yZV9tNV9jayIpOworCWNsa19w cm92aWRlcl9zZXRfcGFyZW50KGNsazEsIGNsazIpOwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2Nsay90aS9jbGstNDR4eC5jIGIvZHJpdmVycy9jbGsvdGkvY2xrLTQ0eHgu YwppbmRleCAwMjUxN2E4Li4xYWRjMzk5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay90aS9jbGst NDR4eC5jCisrKyBiL2RyaXZlcnMvY2xrL3RpL2Nsay00NHh4LmMKQEAgLTI4MSw3ICsyODEsNyBA QCBzdGF0aWMgc3RydWN0IHRpX2R0X2NsayBvbWFwNDR4eF9jbGtzW10gPSB7CiBpbnQgX19pbml0 IG9tYXA0eHh4X2R0X2Nsa19pbml0KHZvaWQpCiB7CiAJaW50IHJjOwotCXN0cnVjdCBjbGsgKmFi ZV9kcGxsX3JlZiwgKmFiZV9kcGxsLCAqc3lzXzMya19jaywgKnVzYl9kcGxsOworCXN0cnVjdCBj bGtfY29yZSAqYWJlX2RwbGxfcmVmLCAqYWJlX2RwbGwsICpzeXNfMzJrX2NrLCAqdXNiX2RwbGw7 CiAKIAl0aV9kdF9jbG9ja3NfcmVnaXN0ZXIob21hcDQ0eHhfY2xrcyk7CiAKQEAgLTI5MSw4ICsy OTEsOCBAQCBpbnQgX19pbml0IG9tYXA0eHh4X2R0X2Nsa19pbml0KHZvaWQpCiAJICogTG9jayBV U0IgRFBMTCBvbiBPTUFQNCBkZXZpY2VzIHNvIHRoYXQgdGhlIEwzSU5JVCBwb3dlcgogCSAqIGRv bWFpbiBjYW4gdHJhbnNpdGlvbiB0byByZXRlbnRpb24gc3RhdGUgd2hlbiBub3QgaW4gdXNlLgog CSAqLwotCXVzYl9kcGxsID0gY2xrX2dldF9zeXMoTlVMTCwgImRwbGxfdXNiX2NrIik7Ci0JcmMg PSBjbGtfc2V0X3JhdGUodXNiX2RwbGwsIE9NQVA0X0RQTExfVVNCX0RFRkZSRVEpOworCXVzYl9k cGxsID0gY2xrX3Byb3ZpZGVyX2dldF9zeXMoTlVMTCwgImRwbGxfdXNiX2NrIik7CisJcmMgPSBj bGtfcHJvdmlkZXJfc2V0X3JhdGUodXNiX2RwbGwsIE9NQVA0X0RQTExfVVNCX0RFRkZSRVEpOwog CWlmIChyYykKIAkJcHJfZXJyKCIlczogZmFpbGVkIHRvIGNvbmZpZ3VyZSBVU0IgRFBMTCFcbiIs IF9fZnVuY19fKTsKIApAQCAtMzAyLDEyICszMDIsMTIgQEAgaW50IF9faW5pdCBvbWFwNHh4eF9k dF9jbGtfaW5pdCh2b2lkKQogCSAqIGxvY2tpbmcgdGhlIEFCRSBEUExMIG9uIGJvb3QuCiAJICog TG9jayB0aGUgQUJFIERQTEwgaW4gYW55IGNhc2UgdG8gYXZvaWQgaXNzdWVzIHdpdGggYXVkaW8u CiAJICovCi0JYWJlX2RwbGxfcmVmID0gY2xrX2dldF9zeXMoTlVMTCwgImFiZV9kcGxsX3JlZmNs a19tdXhfY2siKTsKLQlzeXNfMzJrX2NrID0gY2xrX2dldF9zeXMoTlVMTCwgInN5c18zMmtfY2si KTsKLQlyYyA9IGNsa19zZXRfcGFyZW50KGFiZV9kcGxsX3JlZiwgc3lzXzMya19jayk7Ci0JYWJl X2RwbGwgPSBjbGtfZ2V0X3N5cyhOVUxMLCAiZHBsbF9hYmVfY2siKTsKKwlhYmVfZHBsbF9yZWYg PSBjbGtfcHJvdmlkZXJfZ2V0X3N5cyhOVUxMLCAiYWJlX2RwbGxfcmVmY2xrX211eF9jayIpOwor CXN5c18zMmtfY2sgPSBjbGtfcHJvdmlkZXJfZ2V0X3N5cyhOVUxMLCAic3lzXzMya19jayIpOwor CXJjID0gY2xrX3Byb3ZpZGVyX3NldF9wYXJlbnQoYWJlX2RwbGxfcmVmLCBzeXNfMzJrX2NrKTsK KwlhYmVfZHBsbCA9IGNsa19wcm92aWRlcl9nZXRfc3lzKE5VTEwsICJkcGxsX2FiZV9jayIpOwog CWlmICghcmMpCi0JCXJjID0gY2xrX3NldF9yYXRlKGFiZV9kcGxsLCBPTUFQNF9EUExMX0FCRV9E RUZGUkVRKTsKKwkJcmMgPSBjbGtfcHJvdmlkZXJfc2V0X3JhdGUoYWJlX2RwbGwsIE9NQVA0X0RQ TExfQUJFX0RFRkZSRVEpOwogCWlmIChyYykKIAkJcHJfZXJyKCIlczogZmFpbGVkIHRvIGNvbmZp Z3VyZSBBQkUgRFBMTCFcbiIsIF9fZnVuY19fKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsv dGkvY2xrLTU0eHguYyBiL2RyaXZlcnMvY2xrL3RpL2Nsay01NHh4LmMKaW5kZXggNWUxODM5OS4u NWI2MDNiNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvdGkvY2xrLTU0eHguYworKysgYi9kcml2 ZXJzL2Nsay90aS9jbGstNTR4eC5jCkBAIC0yMjUsMzQgKzIyNSwzNSBAQCBzdGF0aWMgc3RydWN0 IHRpX2R0X2NsayBvbWFwNTR4eF9jbGtzW10gPSB7CiBpbnQgX19pbml0IG9tYXA1eHh4X2R0X2Ns a19pbml0KHZvaWQpCiB7CiAJaW50IHJjOwotCXN0cnVjdCBjbGsgKmFiZV9kcGxsX3JlZiwgKmFi ZV9kcGxsLCAqc3lzXzMya19jaywgKnVzYl9kcGxsOworCXN0cnVjdCBjbGtfY29yZSAqYWJlX2Rw bGxfcmVmLCAqYWJlX2RwbGwsICpzeXNfMzJrX2NrLCAqdXNiX2RwbGw7CiAKIAl0aV9kdF9jbG9j a3NfcmVnaXN0ZXIob21hcDU0eHhfY2xrcyk7CiAKIAlvbWFwMl9jbGtfZGlzYWJsZV9hdXRvaWRs ZV9hbGwoKTsKIAotCWFiZV9kcGxsX3JlZiA9IGNsa19nZXRfc3lzKE5VTEwsICJhYmVfZHBsbF9j bGtfbXV4Iik7Ci0Jc3lzXzMya19jayA9IGNsa19nZXRfc3lzKE5VTEwsICJzeXNfMzJrX2NrIik7 Ci0JcmMgPSBjbGtfc2V0X3BhcmVudChhYmVfZHBsbF9yZWYsIHN5c18zMmtfY2spOwotCWFiZV9k cGxsID0gY2xrX2dldF9zeXMoTlVMTCwgImRwbGxfYWJlX2NrIik7CisJYWJlX2RwbGxfcmVmID0g Y2xrX3Byb3ZpZGVyX2dldF9zeXMoTlVMTCwgImFiZV9kcGxsX2Nsa19tdXgiKTsKKwlzeXNfMzJr X2NrID0gY2xrX3Byb3ZpZGVyX2dldF9zeXMoTlVMTCwgInN5c18zMmtfY2siKTsKKwlyYyA9IGNs a19wcm92aWRlcl9zZXRfcGFyZW50KGFiZV9kcGxsX3JlZiwgc3lzXzMya19jayk7CisJYWJlX2Rw bGwgPSBjbGtfcHJvdmlkZXJfZ2V0X3N5cyhOVUxMLCAiZHBsbF9hYmVfY2siKTsKIAlpZiAoIXJj KQotCQlyYyA9IGNsa19zZXRfcmF0ZShhYmVfZHBsbCwgT01BUDVfRFBMTF9BQkVfREVGRlJFUSk7 CisJCXJjID0gY2xrX3Byb3ZpZGVyX3NldF9yYXRlKGFiZV9kcGxsLCBPTUFQNV9EUExMX0FCRV9E RUZGUkVRKTsKIAlpZiAocmMpCiAJCXByX2VycigiJXM6IGZhaWxlZCB0byBjb25maWd1cmUgQUJF IERQTEwhXG4iLCBfX2Z1bmNfXyk7CiAKLQlhYmVfZHBsbCA9IGNsa19nZXRfc3lzKE5VTEwsICJk cGxsX2FiZV9tMngyX2NrIik7CisJYWJlX2RwbGwgPSBjbGtfcHJvdmlkZXJfZ2V0X3N5cyhOVUxM LCAiZHBsbF9hYmVfbTJ4Ml9jayIpOwogCWlmICghcmMpCi0JCXJjID0gY2xrX3NldF9yYXRlKGFi ZV9kcGxsLCBPTUFQNV9EUExMX0FCRV9ERUZGUkVRICogMik7CisJCXJjID0gY2xrX3Byb3ZpZGVy X3NldF9yYXRlKGFiZV9kcGxsLAorCQkJCQkgICBPTUFQNV9EUExMX0FCRV9ERUZGUkVRICogMik7 CiAJaWYgKHJjKQogCQlwcl9lcnIoIiVzOiBmYWlsZWQgdG8gY29uZmlndXJlIEFCRSBtMngyIERQ TEwhXG4iLCBfX2Z1bmNfXyk7CiAKLQl1c2JfZHBsbCA9IGNsa19nZXRfc3lzKE5VTEwsICJkcGxs X3VzYl9jayIpOwotCXJjID0gY2xrX3NldF9yYXRlKHVzYl9kcGxsLCBPTUFQNV9EUExMX1VTQl9E RUZGUkVRKTsKKwl1c2JfZHBsbCA9IGNsa19wcm92aWRlcl9nZXRfc3lzKE5VTEwsICJkcGxsX3Vz Yl9jayIpOworCXJjID0gY2xrX3Byb3ZpZGVyX3NldF9yYXRlKHVzYl9kcGxsLCBPTUFQNV9EUExM X1VTQl9ERUZGUkVRKTsKIAlpZiAocmMpCiAJCXByX2VycigiJXM6IGZhaWxlZCB0byBjb25maWd1 cmUgVVNCIERQTEwhXG4iLCBfX2Z1bmNfXyk7CiAKLQl1c2JfZHBsbCA9IGNsa19nZXRfc3lzKE5V TEwsICJkcGxsX3VzYl9tMl9jayIpOwotCXJjID0gY2xrX3NldF9yYXRlKHVzYl9kcGxsLCBPTUFQ NV9EUExMX1VTQl9ERUZGUkVRLzIpOworCXVzYl9kcGxsID0gY2xrX3Byb3ZpZGVyX2dldF9zeXMo TlVMTCwgImRwbGxfdXNiX20yX2NrIik7CisJcmMgPSBjbGtfcHJvdmlkZXJfc2V0X3JhdGUodXNi X2RwbGwsIE9NQVA1X0RQTExfVVNCX0RFRkZSRVEgLyAyKTsKIAlpZiAocmMpCiAJCXByX2Vycigi JXM6IGZhaWxlZCB0byBzZXQgVVNCX0RQTEwgTTIgT1VUXG4iLCBfX2Z1bmNfXyk7CiAKZGlmZiAt LWdpdCBhL2RyaXZlcnMvY2xrL3RpL2Nsay03eHguYyBiL2RyaXZlcnMvY2xrL3RpL2Nsay03eHgu YwppbmRleCA2MmFjOGY2Li45ZGJhMGJiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay90aS9jbGst N3h4LmMKKysrIGIvZHJpdmVycy9jbGsvdGkvY2xrLTd4eC5jCkBAIC0zMDcsMzkgKzMwNywzOSBA QCBzdGF0aWMgc3RydWN0IHRpX2R0X2NsayBkcmE3eHhfY2xrc1tdID0gewogaW50IF9faW5pdCBk cmE3eHhfZHRfY2xrX2luaXQodm9pZCkKIHsKIAlpbnQgcmM7Ci0Jc3RydWN0IGNsayAqYWJlX2Rw bGxfbXV4LCAqc3lzX2Nsa2luMiwgKmRwbGxfY2s7CisJc3RydWN0IGNsa19jb3JlICphYmVfZHBs bF9tdXgsICpzeXNfY2xraW4yLCAqZHBsbF9jazsKIAogCXRpX2R0X2Nsb2Nrc19yZWdpc3Rlcihk cmE3eHhfY2xrcyk7CiAKIAlvbWFwMl9jbGtfZGlzYWJsZV9hdXRvaWRsZV9hbGwoKTsKIAotCWFi ZV9kcGxsX211eCA9IGNsa19nZXRfc3lzKE5VTEwsICJhYmVfZHBsbF9zeXNfY2xrX211eCIpOwot CXN5c19jbGtpbjIgPSBjbGtfZ2V0X3N5cyhOVUxMLCAic3lzX2Nsa2luMiIpOwotCWRwbGxfY2sg PSBjbGtfZ2V0X3N5cyhOVUxMLCAiZHBsbF9hYmVfY2siKTsKKwlhYmVfZHBsbF9tdXggPSBjbGtf cHJvdmlkZXJfZ2V0X3N5cyhOVUxMLCAiYWJlX2RwbGxfc3lzX2Nsa19tdXgiKTsKKwlzeXNfY2xr aW4yID0gY2xrX3Byb3ZpZGVyX2dldF9zeXMoTlVMTCwgInN5c19jbGtpbjIiKTsKKwlkcGxsX2Nr ID0gY2xrX3Byb3ZpZGVyX2dldF9zeXMoTlVMTCwgImRwbGxfYWJlX2NrIik7CiAKLQlyYyA9IGNs a19zZXRfcGFyZW50KGFiZV9kcGxsX211eCwgc3lzX2Nsa2luMik7CisJcmMgPSBjbGtfcHJvdmlk ZXJfc2V0X3BhcmVudChhYmVfZHBsbF9tdXgsIHN5c19jbGtpbjIpOwogCWlmICghcmMpCi0JCXJj ID0gY2xrX3NldF9yYXRlKGRwbGxfY2ssIERSQTdfRFBMTF9BQkVfREVGRlJFUSk7CisJCXJjID0g Y2xrX3Byb3ZpZGVyX3NldF9yYXRlKGRwbGxfY2ssIERSQTdfRFBMTF9BQkVfREVGRlJFUSk7CiAJ aWYgKHJjKQogCQlwcl9lcnIoIiVzOiBmYWlsZWQgdG8gY29uZmlndXJlIEFCRSBEUExMIVxuIiwg X19mdW5jX18pOwogCi0JZHBsbF9jayA9IGNsa19nZXRfc3lzKE5VTEwsICJkcGxsX2FiZV9tMngy X2NrIik7Ci0JcmMgPSBjbGtfc2V0X3JhdGUoZHBsbF9jaywgRFJBN19EUExMX0FCRV9ERUZGUkVR ICogMik7CisJZHBsbF9jayA9IGNsa19wcm92aWRlcl9nZXRfc3lzKE5VTEwsICJkcGxsX2FiZV9t MngyX2NrIik7CisJcmMgPSBjbGtfcHJvdmlkZXJfc2V0X3JhdGUoZHBsbF9jaywgRFJBN19EUExM X0FCRV9ERUZGUkVRICogMik7CiAJaWYgKHJjKQogCQlwcl9lcnIoIiVzOiBmYWlsZWQgdG8gY29u ZmlndXJlIEFCRSBEUExMIG0yeDIhXG4iLCBfX2Z1bmNfXyk7CiAKLQlkcGxsX2NrID0gY2xrX2dl dF9zeXMoTlVMTCwgImRwbGxfZ21hY19jayIpOwotCXJjID0gY2xrX3NldF9yYXRlKGRwbGxfY2ss IERSQTdfRFBMTF9HTUFDX0RFRkZSRVEpOworCWRwbGxfY2sgPSBjbGtfcHJvdmlkZXJfZ2V0X3N5 cyhOVUxMLCAiZHBsbF9nbWFjX2NrIik7CisJcmMgPSBjbGtfcHJvdmlkZXJfc2V0X3JhdGUoZHBs bF9jaywgRFJBN19EUExMX0dNQUNfREVGRlJFUSk7CiAJaWYgKHJjKQogCQlwcl9lcnIoIiVzOiBm YWlsZWQgdG8gY29uZmlndXJlIEdNQUMgRFBMTCFcbiIsIF9fZnVuY19fKTsKIAotCWRwbGxfY2sg PSBjbGtfZ2V0X3N5cyhOVUxMLCAiZHBsbF91c2JfY2siKTsKLQlyYyA9IGNsa19zZXRfcmF0ZShk cGxsX2NrLCBEUkE3X0RQTExfVVNCX0RFRkZSRVEpOworCWRwbGxfY2sgPSBjbGtfcHJvdmlkZXJf Z2V0X3N5cyhOVUxMLCAiZHBsbF91c2JfY2siKTsKKwlyYyA9IGNsa19wcm92aWRlcl9zZXRfcmF0 ZShkcGxsX2NrLCBEUkE3X0RQTExfVVNCX0RFRkZSRVEpOwogCWlmIChyYykKIAkJcHJfZXJyKCIl czogZmFpbGVkIHRvIGNvbmZpZ3VyZSBVU0IgRFBMTCFcbiIsIF9fZnVuY19fKTsKIAotCWRwbGxf Y2sgPSBjbGtfZ2V0X3N5cyhOVUxMLCAiZHBsbF91c2JfbTJfY2siKTsKLQlyYyA9IGNsa19zZXRf cmF0ZShkcGxsX2NrLCBEUkE3X0RQTExfVVNCX0RFRkZSRVEvMik7CisJZHBsbF9jayA9IGNsa19w cm92aWRlcl9nZXRfc3lzKE5VTEwsICJkcGxsX3VzYl9tMl9jayIpOworCXJjID0gY2xrX3Byb3Zp ZGVyX3NldF9yYXRlKGRwbGxfY2ssIERSQTdfRFBMTF9VU0JfREVGRlJFUSAvIDIpOwogCWlmIChy YykKIAkJcHJfZXJyKCIlczogZmFpbGVkIHRvIHNldCBVU0JfRFBMTCBNMiBPVVRcbiIsIF9fZnVu Y19fKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvdGkvY2xrLWRyYTctYXRsLmMgYi9kcml2 ZXJzL2Nsay90aS9jbGstZHJhNy1hdGwuYwppbmRleCA0YTY1YjQxLi4wMjlhMGQzIDEwMDY0NAot LS0gYS9kcml2ZXJzL2Nsay90aS9jbGstZHJhNy1hdGwuYworKysgYi9kcml2ZXJzL2Nsay90aS9j bGstZHJhNy1hdGwuYwpAQCAtNDAsNyArNDAsNyBAQAogc3RydWN0IGRyYTdfYXRsX2Nsb2NrX2lu Zm87CiAKIHN0cnVjdCBkcmE3X2F0bF9kZXNjIHsKLQlzdHJ1Y3QgY2xrICpjbGs7CisJc3RydWN0 IGNsa19jb3JlICpjbGs7CiAJc3RydWN0IGNsa19odyBodzsKIAlzdHJ1Y3QgZHJhN19hdGxfY2xv Y2tfaW5mbyAqY2luZm87CiAJaW50IGlkOwpAQCAtMTY1LDcgKzE2NSw3IEBAIHN0YXRpYyB2b2lk IF9faW5pdCBvZl9kcmE3X2F0bF9jbG9ja19zZXR1cChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUp CiAJc3RydWN0IGRyYTdfYXRsX2Rlc2MgKmNsa19odyA9IE5VTEw7CiAJc3RydWN0IGNsa19pbml0 X2RhdGEgaW5pdCA9IHsgMCB9OwogCWNvbnN0IGNoYXIgKipwYXJlbnRfbmFtZXMgPSBOVUxMOwot CXN0cnVjdCBjbGsgKmNsazsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmNsazsKIAogCWNsa19odyA9IGt6 YWxsb2Moc2l6ZW9mKCpjbGtfaHcpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIWNsa19odykgewpAQCAt MjMzLDcgKzIzMyw3IEBAIHN0YXRpYyBpbnQgb2ZfZHJhN19hdGxfY2xrX3Byb2JlKHN0cnVjdCBw bGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCWNoYXIgcHJvcFs1XTsKIAkJc3RydWN0IGRyYTdfYXRs X2Rlc2MgKmNkZXNjOwogCQlzdHJ1Y3Qgb2ZfcGhhbmRsZV9hcmdzIGNsa3NwZWM7Ci0JCXN0cnVj dCBjbGsgKmNsazsKKwkJc3RydWN0IGNsa19jb3JlICpjbGs7CiAJCWludCByYzsKIAogCQlyYyA9 IG9mX3BhcnNlX3BoYW5kbGVfd2l0aF9hcmdzKG5vZGUsICJ0aSxwcm92aWRlZC1jbG9ja3MiLApk aWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvdGkvY2xrLmMgYi9kcml2ZXJzL2Nsay90aS9jbGsuYwpp bmRleCBiMWE2ZjcxLi5kODhhNzBkMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvdGkvY2xrLmMK KysrIGIvZHJpdmVycy9jbGsvdGkvY2xrLmMKQEAgLTQxLDcgKzQxLDcgQEAgdm9pZCBfX2luaXQg dGlfZHRfY2xvY2tzX3JlZ2lzdGVyKHN0cnVjdCB0aV9kdF9jbGsgb2Nsa3NbXSkKIHsKIAlzdHJ1 Y3QgdGlfZHRfY2xrICpjOwogCXN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZTsKLQlzdHJ1Y3QgY2xr ICpjbGs7CisJc3RydWN0IGNsa19jb3JlICpjbGs7CiAJc3RydWN0IG9mX3BoYW5kbGVfYXJncyBj bGtzcGVjOwogCiAJZm9yIChjID0gb2Nsa3M7IGMtPm5vZGVfbmFtZSAhPSBOVUxMOyBjKyspIHsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3RpL2Nsb2NrZG9tYWluLmMgYi9kcml2ZXJzL2Nsay90 aS9jbG9ja2RvbWFpbi5jCmluZGV4IGYxZTAwMzguLjZiYzc1ZDggMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvY2xrL3RpL2Nsb2NrZG9tYWluLmMKKysrIGIvZHJpdmVycy9jbGsvdGkvY2xvY2tkb21haW4u YwpAQCAtMjYsNyArMjYsNyBAQAogCiBzdGF0aWMgdm9pZCBfX2luaXQgb2ZfdGlfY2xvY2tkb21h aW5fc2V0dXAoc3RydWN0IGRldmljZV9ub2RlICpub2RlKQogewotCXN0cnVjdCBjbGsgKmNsazsK KwlzdHJ1Y3QgY2xrX2NvcmUgKmNsazsKIAlzdHJ1Y3QgY2xrX2h3ICpjbGtfaHc7CiAJY29uc3Qg Y2hhciAqY2xrZG1fbmFtZSA9IG5vZGUtPm5hbWU7CiAJaW50IGk7CkBAIC0zNSw3ICszNSw3IEBA IHN0YXRpYyB2b2lkIF9faW5pdCBvZl90aV9jbG9ja2RvbWFpbl9zZXR1cChzdHJ1Y3QgZGV2aWNl X25vZGUgKm5vZGUpCiAJbnVtX2Nsa3MgPSBvZl9jb3VudF9waGFuZGxlX3dpdGhfYXJncyhub2Rl LCAiY2xvY2tzIiwgIiNjbG9jay1jZWxscyIpOwogCiAJZm9yIChpID0gMDsgaSA8IG51bV9jbGtz OyBpKyspIHsKLQkJY2xrID0gb2ZfY2xrX2dldChub2RlLCBpKTsKKwkJY2xrID0gb2ZfY2xrX3By b3ZpZGVyX2dldChub2RlLCBpKTsKIAkJaWYgKF9fY2xrX2dldF9mbGFncyhjbGspICYgQ0xLX0lT X0JBU0lDKSB7CiAJCQlwcl93YXJuKCJjYW4ndCBzZXR1cCBjbGtkbSBmb3IgYmFzaWMgY2xrICVz XG4iLAogCQkJCV9fY2xrX2dldF9uYW1lKGNsaykpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsv dGkvY29tcG9zaXRlLmMgYi9kcml2ZXJzL2Nsay90aS9jb21wb3NpdGUuYwppbmRleCAxOWQ4OTgw Li4yY2JlZTM0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay90aS9jb21wb3NpdGUuYworKysgYi9k cml2ZXJzL2Nsay90aS9jb21wb3NpdGUuYwpAQCAtMTE5LDcgKzExOSw3IEBAIHN0YXRpYyBpbmxp bmUgc3RydWN0IGNsa19odyAqX2dldF9odyhzdHJ1Y3QgY2xrX2h3X29tYXBfY29tcCAqY2xrLCBp bnQgaWR4KQogc3RhdGljIHZvaWQgX19pbml0IHRpX2Nsa19yZWdpc3Rlcl9jb21wb3NpdGUoc3Ry dWN0IGNsa19odyAqaHcsCiAJCQkJCSAgICAgc3RydWN0IGRldmljZV9ub2RlICpub2RlKQogewot CXN0cnVjdCBjbGsgKmNsazsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmNsazsKIAlzdHJ1Y3QgY2xrX2h3 X29tYXBfY29tcCAqY2NsayA9IHRvX2Nsa19od19jb21wKGh3KTsKIAlzdHJ1Y3QgY29tcG9uZW50 X2NsayAqY29tcDsKIAlpbnQgbnVtX3BhcmVudHMgPSAwOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9j bGsvdGkvZGl2aWRlci5jIGIvZHJpdmVycy9jbGsvdGkvZGl2aWRlci5jCmluZGV4IGU2YWExMGQu LjFjNDE1MTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL3RpL2RpdmlkZXIuYworKysgYi9kcml2 ZXJzL2Nsay90aS9kaXZpZGVyLmMKQEAgLTI0Niw3ICsyNDYsNyBAQCBjb25zdCBzdHJ1Y3QgY2xr X29wcyB0aV9jbGtfZGl2aWRlcl9vcHMgPSB7CiAJLnNldF9yYXRlID0gdGlfY2xrX2RpdmlkZXJf c2V0X3JhdGUsCiB9OwogCi1zdGF0aWMgc3RydWN0IGNsayAqX3JlZ2lzdGVyX2RpdmlkZXIoc3Ry dWN0IGRldmljZSAqZGV2LCBjb25zdCBjaGFyICpuYW1lLAorc3RhdGljIHN0cnVjdCBjbGtfY29y ZSAqX3JlZ2lzdGVyX2RpdmlkZXIoc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCBjaGFyICpuYW1l LAogCQkJCSAgICAgY29uc3QgY2hhciAqcGFyZW50X25hbWUsCiAJCQkJICAgICB1bnNpZ25lZCBs b25nIGZsYWdzLCB2b2lkIF9faW9tZW0gKnJlZywKIAkJCQkgICAgIHU4IHNoaWZ0LCB1OCB3aWR0 aCwgdTggY2xrX2RpdmlkZXJfZmxhZ3MsCkBAIC0yNTQsNyArMjU0LDcgQEAgc3RhdGljIHN0cnVj dCBjbGsgKl9yZWdpc3Rlcl9kaXZpZGVyKHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3QgY2hhciAq bmFtZSwKIAkJCQkgICAgIHNwaW5sb2NrX3QgKmxvY2spCiB7CiAJc3RydWN0IGNsa19kaXZpZGVy ICpkaXY7Ci0Jc3RydWN0IGNsayAqY2xrOworCXN0cnVjdCBjbGtfY29yZSAqY2xrOwogCXN0cnVj dCBjbGtfaW5pdF9kYXRhIGluaXQ7CiAKIAlpZiAoY2xrX2RpdmlkZXJfZmxhZ3MgJiBDTEtfRElW SURFUl9ISVdPUkRfTUFTSykgewpAQCAtNDM0LDcgKzQzNCw3IEBAIHN0YXRpYyBpbnQgX19pbml0 IHRpX2Nsa19kaXZpZGVyX3BvcHVsYXRlKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSwKICAqLwog c3RhdGljIHZvaWQgX19pbml0IG9mX3RpX2RpdmlkZXJfY2xrX3NldHVwKHN0cnVjdCBkZXZpY2Vf bm9kZSAqbm9kZSkKIHsKLQlzdHJ1Y3QgY2xrICpjbGs7CisJc3RydWN0IGNsa19jb3JlICpjbGs7 CiAJY29uc3QgY2hhciAqcGFyZW50X25hbWU7CiAJdm9pZCBfX2lvbWVtICpyZWc7CiAJdTggY2xr X2RpdmlkZXJfZmxhZ3MgPSAwOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvdGkvZHBsbC5jIGIv ZHJpdmVycy9jbGsvdGkvZHBsbC5jCmluZGV4IDc5NzkxZTEuLmUxZjc0Y2MgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvY2xrL3RpL2RwbGwuYworKysgYi9kcml2ZXJzL2Nsay90aS9kcGxsLmMKQEAgLTEy OCwxMCArMTI4LDEwIEBAIHN0YXRpYyB2b2lkIF9faW5pdCB0aV9jbGtfcmVnaXN0ZXJfZHBsbChz dHJ1Y3QgY2xrX2h3ICpodywKIHsKIAlzdHJ1Y3QgY2xrX2h3X29tYXAgKmNsa19odyA9IHRvX2Ns a19od19vbWFwKGh3KTsKIAlzdHJ1Y3QgZHBsbF9kYXRhICpkZCA9IGNsa19ody0+ZHBsbF9kYXRh OwotCXN0cnVjdCBjbGsgKmNsazsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmNsazsKIAotCWRkLT5jbGtf cmVmID0gb2ZfY2xrX2dldChub2RlLCAwKTsKLQlkZC0+Y2xrX2J5cGFzcyA9IG9mX2Nsa19nZXQo bm9kZSwgMSk7CisJZGQtPmNsa19yZWYgPSBvZl9jbGtfcHJvdmlkZXJfZ2V0KG5vZGUsIDApOwor CWRkLT5jbGtfYnlwYXNzID0gb2ZfY2xrX3Byb3ZpZGVyX2dldChub2RlLCAxKTsKIAogCWlmIChJ U19FUlIoZGQtPmNsa19yZWYpIHx8IElTX0VSUihkZC0+Y2xrX2J5cGFzcykpIHsKIAkJcHJfZGVi dWcoImNsay1yZWYgb3IgY2xrLWJ5cGFzcyBtaXNzaW5nIGZvciAlcywgcmV0cnkgbGF0ZXJcbiIs CkBAIC0xNzUsNyArMTc1LDcgQEAgc3RhdGljIHZvaWQgdGlfY2xrX3JlZ2lzdGVyX2RwbGxfeDIo c3RydWN0IGRldmljZV9ub2RlICpub2RlLAogCQkJCSAgICBjb25zdCBzdHJ1Y3QgY2xrX29wcyAq b3BzLAogCQkJCSAgICBjb25zdCBzdHJ1Y3QgY2xrX2h3X29tYXBfb3BzICpod19vcHMpCiB7Ci0J c3RydWN0IGNsayAqY2xrOworCXN0cnVjdCBjbGtfY29yZSAqY2xrOwogCXN0cnVjdCBjbGtfaW5p dF9kYXRhIGluaXQgPSB7IE5VTEwgfTsKIAlzdHJ1Y3QgY2xrX2h3X29tYXAgKmNsa19odzsKIAlj b25zdCBjaGFyICpuYW1lID0gbm9kZS0+bmFtZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3Rp L2ZpeGVkLWZhY3Rvci5jIGIvZHJpdmVycy9jbGsvdGkvZml4ZWQtZmFjdG9yLmMKaW5kZXggYzJj OGEyOC4uMmFhMjcwMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvdGkvZml4ZWQtZmFjdG9yLmMK KysrIGIvZHJpdmVycy9jbGsvdGkvZml4ZWQtZmFjdG9yLmMKQEAgLTMzLDcgKzMzLDcgQEAKICAq Lwogc3RhdGljIHZvaWQgX19pbml0IG9mX3RpX2ZpeGVkX2ZhY3Rvcl9jbGtfc2V0dXAoc3RydWN0 IGRldmljZV9ub2RlICpub2RlKQogewotCXN0cnVjdCBjbGsgKmNsazsKKwlzdHJ1Y3QgY2xrX2Nv cmUgKmNsazsKIAljb25zdCBjaGFyICpjbGtfbmFtZSA9IG5vZGUtPm5hbWU7CiAJY29uc3QgY2hh ciAqcGFyZW50X25hbWU7CiAJdTMyIGRpdiwgbXVsdDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xr L3RpL2dhdGUuYyBiL2RyaXZlcnMvY2xrL3RpL2dhdGUuYwppbmRleCBiMzI2ZDI3Li5kZDFiODEz IDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay90aS9nYXRlLmMKKysrIGIvZHJpdmVycy9jbGsvdGkv Z2F0ZS5jCkBAIC05NCw3ICs5NCw3IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBfb2ZfdGlfZ2F0ZV9j bGtfc2V0dXAoc3RydWN0IGRldmljZV9ub2RlICpub2RlLAogCQkJCQkgY29uc3Qgc3RydWN0IGNs a19vcHMgKm9wcywKIAkJCQkJIGNvbnN0IHN0cnVjdCBjbGtfaHdfb21hcF9vcHMgKmh3X29wcykK IHsKLQlzdHJ1Y3QgY2xrICpjbGs7CisJc3RydWN0IGNsa19jb3JlICpjbGs7CiAJc3RydWN0IGNs a19pbml0X2RhdGEgaW5pdCA9IHsgTlVMTCB9OwogCXN0cnVjdCBjbGtfaHdfb21hcCAqY2xrX2h3 OwogCWNvbnN0IGNoYXIgKmNsa19uYW1lID0gbm9kZS0+bmFtZTsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvY2xrL3RpL2ludGVyZmFjZS5jIGIvZHJpdmVycy9jbGsvdGkvaW50ZXJmYWNlLmMKaW5kZXgg OWMzZThjNC4uZTJmMmJjMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvdGkvaW50ZXJmYWNlLmMK KysrIGIvZHJpdmVycy9jbGsvdGkvaW50ZXJmYWNlLmMKQEAgLTM0LDcgKzM0LDcgQEAgc3RhdGlj IGNvbnN0IHN0cnVjdCBjbGtfb3BzIHRpX2ludGVyZmFjZV9jbGtfb3BzID0gewogc3RhdGljIHZv aWQgX19pbml0IF9vZl90aV9pbnRlcmZhY2VfY2xrX3NldHVwKHN0cnVjdCBkZXZpY2Vfbm9kZSAq bm9kZSwKIAkJCQkJICAgICAgY29uc3Qgc3RydWN0IGNsa19od19vbWFwX29wcyAqb3BzKQogewot CXN0cnVjdCBjbGsgKmNsazsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmNsazsKIAlzdHJ1Y3QgY2xrX2lu aXRfZGF0YSBpbml0ID0geyBOVUxMIH07CiAJc3RydWN0IGNsa19od19vbWFwICpjbGtfaHc7CiAJ Y29uc3QgY2hhciAqcGFyZW50X25hbWU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay90aS9tdXgu YyBiL2RyaXZlcnMvY2xrL3RpL211eC5jCmluZGV4IGU5ZDY1MGUuLjc0NTYxOTggMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvY2xrL3RpL211eC5jCisrKyBiL2RyaXZlcnMvY2xrL3RpL211eC5jCkBAIC0x MDQsMTQgKzEwNCwxNCBAQCBjb25zdCBzdHJ1Y3QgY2xrX29wcyB0aV9jbGtfbXV4X29wcyA9IHsK IAkuZGV0ZXJtaW5lX3JhdGUgPSBfX2Nsa19tdXhfZGV0ZXJtaW5lX3JhdGUsCiB9OwogCi1zdGF0 aWMgc3RydWN0IGNsayAqX3JlZ2lzdGVyX211eChzdHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0IGNo YXIgKm5hbWUsCitzdGF0aWMgc3RydWN0IGNsa19jb3JlICpfcmVnaXN0ZXJfbXV4KHN0cnVjdCBk ZXZpY2UgKmRldiwgY29uc3QgY2hhciAqbmFtZSwKIAkJCQkgY29uc3QgY2hhciAqKnBhcmVudF9u YW1lcywgdTggbnVtX3BhcmVudHMsCiAJCQkJIHVuc2lnbmVkIGxvbmcgZmxhZ3MsIHZvaWQgX19p b21lbSAqcmVnLAogCQkJCSB1OCBzaGlmdCwgdTMyIG1hc2ssIHU4IGNsa19tdXhfZmxhZ3MsCiAJ CQkJIHUzMiAqdGFibGUsIHNwaW5sb2NrX3QgKmxvY2spCiB7CiAJc3RydWN0IGNsa19tdXggKm11 eDsKLQlzdHJ1Y3QgY2xrICpjbGs7CisJc3RydWN0IGNsa19jb3JlICpjbGs7CiAJc3RydWN0IGNs a19pbml0X2RhdGEgaW5pdDsKIAogCS8qIGFsbG9jYXRlIHRoZSBtdXggKi8KQEAgLTE1Miw3ICsx NTIsNyBAQCBzdGF0aWMgc3RydWN0IGNsayAqX3JlZ2lzdGVyX211eChzdHJ1Y3QgZGV2aWNlICpk ZXYsIGNvbnN0IGNoYXIgKm5hbWUsCiAgKi8KIHN0YXRpYyB2b2lkIG9mX211eF9jbGtfc2V0dXAo c3RydWN0IGRldmljZV9ub2RlICpub2RlKQogewotCXN0cnVjdCBjbGsgKmNsazsKKwlzdHJ1Y3Qg Y2xrX2NvcmUgKmNsazsKIAl2b2lkIF9faW9tZW0gKnJlZzsKIAlpbnQgbnVtX3BhcmVudHM7CiAJ Y29uc3QgY2hhciAqKnBhcmVudF9uYW1lczsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3V4NTAw L2FieDUwMC1jbGsuYyBiL2RyaXZlcnMvY2xrL3V4NTAwL2FieDUwMC1jbGsuYwppbmRleCBlN2Jk NjJjLi5mMjdiZTc4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay91eDUwMC9hYng1MDAtY2xrLmMK KysrIGIvZHJpdmVycy9jbGsvdXg1MDAvYWJ4NTAwLWNsay5jCkBAIC0xMyw3ICsxMyw2IEBACiAj aW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvbWZkL2Fi eDUwMC9hYjg1MDAuaD4KICNpbmNsdWRlIDxsaW51eC9tZmQvYWJ4NTAwL2FiODUwMC1zeXNjdHJs Lmg+Ci0jaW5jbHVkZSA8bGludXgvY2xrLmg+CiAjaW5jbHVkZSA8bGludXgvY2xrZGV2Lmg+CiAj aW5jbHVkZSA8bGludXgvY2xrLXByb3ZpZGVyLmg+CiAjaW5jbHVkZSA8bGludXgvbWZkL2RieDUw MC1wcmNtdS5oPgpAQCAtMjMsNyArMjIsNyBAQAogc3RhdGljIGludCBhYjg1MDBfcmVnX2Nsa3Mo c3RydWN0IGRldmljZSAqZGV2KQogewogCWludCByZXQ7Ci0Jc3RydWN0IGNsayAqY2xrOworCXN0 cnVjdCBjbGtfY29yZSAqY2xrOwogCiAJY29uc3QgY2hhciAqaW50Y2xrX3BhcmVudHNbXSA9IHsi YWI4NTAwX3N5c2NsayIsICJ1bHBjbGsifTsKIAl1MTYgaW50Y2xrX3JlZ19zZWxbXSA9IHswICwg QUI4NTAwX1NZU1VMUENMS0NUUkwxfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3V4NTAwL2Ns ay1wcmNjLmMgYi9kcml2ZXJzL2Nsay91eDUwMC9jbGstcHJjYy5jCmluZGV4IGJkNDc2OWEuLjdl YjA1NWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL3V4NTAwL2Nsay1wcmNjLmMKKysrIGIvZHJp dmVycy9jbGsvdXg1MDAvY2xrLXByY2MuYwpAQCAtOTIsNyArOTIsNyBAQCBzdGF0aWMgc3RydWN0 IGNsa19vcHMgY2xrX3ByY2Nfa2Nsa19vcHMgPSB7CiAJLmlzX2VuYWJsZWQgPSBjbGtfcHJjY19p c19lbmFibGVkLAogfTsKIAotc3RhdGljIHN0cnVjdCBjbGsgKmNsa19yZWdfcHJjYyhjb25zdCBj aGFyICpuYW1lLAorc3RhdGljIHN0cnVjdCBjbGtfY29yZSAqY2xrX3JlZ19wcmNjKGNvbnN0IGNo YXIgKm5hbWUsCiAJCQkJY29uc3QgY2hhciAqcGFyZW50X25hbWUsCiAJCQkJcmVzb3VyY2Vfc2l6 ZV90IHBoeV9iYXNlLAogCQkJCXUzMiBjZ19zZWwsCkBAIC0xMDEsNyArMTAxLDcgQEAgc3RhdGlj IHN0cnVjdCBjbGsgKmNsa19yZWdfcHJjYyhjb25zdCBjaGFyICpuYW1lLAogewogCXN0cnVjdCBj bGtfcHJjYyAqY2xrOwogCXN0cnVjdCBjbGtfaW5pdF9kYXRhIGNsa19wcmNjX2luaXQ7Ci0Jc3Ry dWN0IGNsayAqY2xrX3JlZzsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmNsa19yZWc7CiAKIAlpZiAoIW5h bWUpIHsKIAkJcHJfZXJyKCJjbGtfcHJjYzogJXMgaW52YWxpZCBhcmd1bWVudHMgcGFzc2VkXG4i LCBfX2Z1bmNfXyk7CkBAIC0xNDIsNyArMTQyLDcgQEAgZnJlZV9jbGs6CiAJcmV0dXJuIEVSUl9Q VFIoLUVOT01FTSk7CiB9CiAKLXN0cnVjdCBjbGsgKmNsa19yZWdfcHJjY19wY2xrKGNvbnN0IGNo YXIgKm5hbWUsCitzdHJ1Y3QgY2xrX2NvcmUgKmNsa19yZWdfcHJjY19wY2xrKGNvbnN0IGNoYXIg Km5hbWUsCiAJCQkgICAgICBjb25zdCBjaGFyICpwYXJlbnRfbmFtZSwKIAkJCSAgICAgIHJlc291 cmNlX3NpemVfdCBwaHlfYmFzZSwKIAkJCSAgICAgIHUzMiBjZ19zZWwsCkBAIC0xNTIsNyArMTUy LDcgQEAgc3RydWN0IGNsayAqY2xrX3JlZ19wcmNjX3BjbGsoY29uc3QgY2hhciAqbmFtZSwKIAkJ CSZjbGtfcHJjY19wY2xrX29wcyk7CiB9CiAKLXN0cnVjdCBjbGsgKmNsa19yZWdfcHJjY19rY2xr KGNvbnN0IGNoYXIgKm5hbWUsCitzdHJ1Y3QgY2xrX2NvcmUgKmNsa19yZWdfcHJjY19rY2xrKGNv bnN0IGNoYXIgKm5hbWUsCiAJCQkgICAgICBjb25zdCBjaGFyICpwYXJlbnRfbmFtZSwKIAkJCSAg ICAgIHJlc291cmNlX3NpemVfdCBwaHlfYmFzZSwKIAkJCSAgICAgIHUzMiBjZ19zZWwsCmRpZmYg LS1naXQgYS9kcml2ZXJzL2Nsay91eDUwMC9jbGstcHJjbXUuYyBiL2RyaXZlcnMvY2xrL3V4NTAw L2Nsay1wcmNtdS5jCmluZGV4IGUyZDYzYmMuLmJhYzU0YzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Y2xrL3V4NTAwL2Nsay1wcmNtdS5jCisrKyBiL2RyaXZlcnMvY2xrL3V4NTAwL2Nsay1wcmNtdS5j CkBAIC0yNDMsNyArMjQzLDcgQEAgc3RhdGljIHN0cnVjdCBjbGtfb3BzIGNsa19wcmNtdV9vcHBf dm9sdF9zY2FsYWJsZV9vcHMgPSB7CiAJLnNldF9yYXRlID0gY2xrX3ByY211X3NldF9yYXRlLAog fTsKIAotc3RhdGljIHN0cnVjdCBjbGsgKmNsa19yZWdfcHJjbXUoY29uc3QgY2hhciAqbmFtZSwK K3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgKmNsa19yZWdfcHJjbXUoY29uc3QgY2hhciAqbmFtZSwK IAkJCQkgY29uc3QgY2hhciAqcGFyZW50X25hbWUsCiAJCQkJIHU4IGNnX3NlbCwKIAkJCQkgdW5z aWduZWQgbG9uZyByYXRlLApAQCAtMjUyLDcgKzI1Miw3IEBAIHN0YXRpYyBzdHJ1Y3QgY2xrICpj bGtfcmVnX3ByY211KGNvbnN0IGNoYXIgKm5hbWUsCiB7CiAJc3RydWN0IGNsa19wcmNtdSAqY2xr OwogCXN0cnVjdCBjbGtfaW5pdF9kYXRhIGNsa19wcmNtdV9pbml0OwotCXN0cnVjdCBjbGsgKmNs a19yZWc7CisJc3RydWN0IGNsa19jb3JlICpjbGtfcmVnOwogCiAJaWYgKCFuYW1lKSB7CiAJCXBy X2VycigiY2xrX3ByY211OiAlcyBpbnZhbGlkIGFyZ3VtZW50cyBwYXNzZWRcbiIsIF9fZnVuY19f KTsKQEAgLTI5Miw3ICsyOTIsNyBAQCBmcmVlX2NsazoKIAlyZXR1cm4gRVJSX1BUUigtRU5PTUVN KTsKIH0KIAotc3RydWN0IGNsayAqY2xrX3JlZ19wcmNtdV9zY2FsYWJsZShjb25zdCBjaGFyICpu YW1lLAorc3RydWN0IGNsa19jb3JlICpjbGtfcmVnX3ByY211X3NjYWxhYmxlKGNvbnN0IGNoYXIg Km5hbWUsCiAJCQkJICAgY29uc3QgY2hhciAqcGFyZW50X25hbWUsCiAJCQkJICAgdTggY2dfc2Vs LAogCQkJCSAgIHVuc2lnbmVkIGxvbmcgcmF0ZSwKQEAgLTMwMiw3ICszMDIsNyBAQCBzdHJ1Y3Qg Y2xrICpjbGtfcmVnX3ByY211X3NjYWxhYmxlKGNvbnN0IGNoYXIgKm5hbWUsCiAJCQkmY2xrX3By Y211X3NjYWxhYmxlX29wcyk7CiB9CiAKLXN0cnVjdCBjbGsgKmNsa19yZWdfcHJjbXVfZ2F0ZShj b25zdCBjaGFyICpuYW1lLAorc3RydWN0IGNsa19jb3JlICpjbGtfcmVnX3ByY211X2dhdGUoY29u c3QgY2hhciAqbmFtZSwKIAkJCSAgICAgICBjb25zdCBjaGFyICpwYXJlbnRfbmFtZSwKIAkJCSAg ICAgICB1OCBjZ19zZWwsCiAJCQkgICAgICAgdW5zaWduZWQgbG9uZyBmbGFncykKQEAgLTMxMSw3 ICszMTEsNyBAQCBzdHJ1Y3QgY2xrICpjbGtfcmVnX3ByY211X2dhdGUoY29uc3QgY2hhciAqbmFt ZSwKIAkJCSZjbGtfcHJjbXVfZ2F0ZV9vcHMpOwogfQogCi1zdHJ1Y3QgY2xrICpjbGtfcmVnX3By Y211X3NjYWxhYmxlX3JhdGUoY29uc3QgY2hhciAqbmFtZSwKK3N0cnVjdCBjbGtfY29yZSAqY2xr X3JlZ19wcmNtdV9zY2FsYWJsZV9yYXRlKGNvbnN0IGNoYXIgKm5hbWUsCiAJCQkJCWNvbnN0IGNo YXIgKnBhcmVudF9uYW1lLAogCQkJCQl1OCBjZ19zZWwsCiAJCQkJCXVuc2lnbmVkIGxvbmcgcmF0 ZSwKQEAgLTMyMSw3ICszMjEsNyBAQCBzdHJ1Y3QgY2xrICpjbGtfcmVnX3ByY211X3NjYWxhYmxl X3JhdGUoY29uc3QgY2hhciAqbmFtZSwKIAkJCSZjbGtfcHJjbXVfc2NhbGFibGVfcmF0ZV9vcHMp OwogfQogCi1zdHJ1Y3QgY2xrICpjbGtfcmVnX3ByY211X3JhdGUoY29uc3QgY2hhciAqbmFtZSwK K3N0cnVjdCBjbGtfY29yZSAqY2xrX3JlZ19wcmNtdV9yYXRlKGNvbnN0IGNoYXIgKm5hbWUsCiAJ CQkgICAgICAgY29uc3QgY2hhciAqcGFyZW50X25hbWUsCiAJCQkgICAgICAgdTggY2dfc2VsLAog CQkJICAgICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3MpCkBAIC0zMzAsNyArMzMwLDcgQEAgc3RydWN0 IGNsayAqY2xrX3JlZ19wcmNtdV9yYXRlKGNvbnN0IGNoYXIgKm5hbWUsCiAJCQkmY2xrX3ByY211 X3JhdGVfb3BzKTsKIH0KIAotc3RydWN0IGNsayAqY2xrX3JlZ19wcmNtdV9vcHBfZ2F0ZShjb25z dCBjaGFyICpuYW1lLAorc3RydWN0IGNsa19jb3JlICpjbGtfcmVnX3ByY211X29wcF9nYXRlKGNv bnN0IGNoYXIgKm5hbWUsCiAJCQkJICAgY29uc3QgY2hhciAqcGFyZW50X25hbWUsCiAJCQkJICAg dTggY2dfc2VsLAogCQkJCSAgIHVuc2lnbmVkIGxvbmcgZmxhZ3MpCkBAIC0zMzksNyArMzM5LDcg QEAgc3RydWN0IGNsayAqY2xrX3JlZ19wcmNtdV9vcHBfZ2F0ZShjb25zdCBjaGFyICpuYW1lLAog CQkJJmNsa19wcmNtdV9vcHBfZ2F0ZV9vcHMpOwogfQogCi1zdHJ1Y3QgY2xrICpjbGtfcmVnX3By Y211X29wcF92b2x0X3NjYWxhYmxlKGNvbnN0IGNoYXIgKm5hbWUsCitzdHJ1Y3QgY2xrX2NvcmUg KmNsa19yZWdfcHJjbXVfb3BwX3ZvbHRfc2NhbGFibGUoY29uc3QgY2hhciAqbmFtZSwKIAkJCQkJ ICAgIGNvbnN0IGNoYXIgKnBhcmVudF9uYW1lLAogCQkJCQkgICAgdTggY2dfc2VsLAogCQkJCQkg ICAgdW5zaWduZWQgbG9uZyByYXRlLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvdXg1MDAvY2xr LXN5c2N0cmwuYyBiL2RyaXZlcnMvY2xrL3V4NTAwL2Nsay1zeXNjdHJsLmMKaW5kZXggZTM2NGM5 ZC4uZGM2NjA4YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvdXg1MDAvY2xrLXN5c2N0cmwuYwor KysgYi9kcml2ZXJzL2Nsay91eDUwMC9jbGstc3lzY3RybC5jCkBAIC0xMTQsNyArMTE0LDcgQEAg c3RhdGljIHN0cnVjdCBjbGtfb3BzIGNsa19zeXNjdHJsX3NldF9wYXJlbnRfb3BzID0gewogCS5n ZXRfcGFyZW50ID0gY2xrX3N5c2N0cmxfZ2V0X3BhcmVudCwKIH07CiAKLXN0YXRpYyBzdHJ1Y3Qg Y2xrICpjbGtfcmVnX3N5c2N0cmwoc3RydWN0IGRldmljZSAqZGV2LAorc3RhdGljIHN0cnVjdCBj bGtfY29yZSAqY2xrX3JlZ19zeXNjdHJsKHN0cnVjdCBkZXZpY2UgKmRldiwKIAkJCQljb25zdCBj aGFyICpuYW1lLAogCQkJCWNvbnN0IGNoYXIgKipwYXJlbnRfbmFtZXMsCiAJCQkJdTggbnVtX3Bh cmVudHMsCkBAIC0xMjgsNyArMTI4LDcgQEAgc3RhdGljIHN0cnVjdCBjbGsgKmNsa19yZWdfc3lz Y3RybChzdHJ1Y3QgZGV2aWNlICpkZXYsCiB7CiAJc3RydWN0IGNsa19zeXNjdHJsICpjbGs7CiAJ c3RydWN0IGNsa19pbml0X2RhdGEgY2xrX3N5c2N0cmxfaW5pdDsKLQlzdHJ1Y3QgY2xrICpjbGtf cmVnOworCXN0cnVjdCBjbGtfY29yZSAqY2xrX3JlZzsKIAlpbnQgaTsKIAogCWlmICghZGV2KQpA QCAtMTc2LDcgKzE3Niw3IEBAIHN0YXRpYyBzdHJ1Y3QgY2xrICpjbGtfcmVnX3N5c2N0cmwoc3Ry dWN0IGRldmljZSAqZGV2LAogCXJldHVybiBjbGtfcmVnOwogfQogCi1zdHJ1Y3QgY2xrICpjbGtf cmVnX3N5c2N0cmxfZ2F0ZShzdHJ1Y3QgZGV2aWNlICpkZXYsCitzdHJ1Y3QgY2xrX2NvcmUgKmNs a19yZWdfc3lzY3RybF9nYXRlKHN0cnVjdCBkZXZpY2UgKmRldiwKIAkJCQljb25zdCBjaGFyICpu YW1lLAogCQkJCWNvbnN0IGNoYXIgKnBhcmVudF9uYW1lLAogCQkJCXUxNiByZWdfc2VsLApAQCAt MTkzLDcgKzE5Myw3IEBAIHN0cnVjdCBjbGsgKmNsa19yZWdfc3lzY3RybF9nYXRlKHN0cnVjdCBk ZXZpY2UgKmRldiwKIAkJCWZsYWdzLCAmY2xrX3N5c2N0cmxfZ2F0ZV9vcHMpOwogfQogCi1zdHJ1 Y3QgY2xrICpjbGtfcmVnX3N5c2N0cmxfZ2F0ZV9maXhlZF9yYXRlKHN0cnVjdCBkZXZpY2UgKmRl diwKK3N0cnVjdCBjbGtfY29yZSAqY2xrX3JlZ19zeXNjdHJsX2dhdGVfZml4ZWRfcmF0ZShzdHJ1 Y3QgZGV2aWNlICpkZXYsCiAJCQkJCWNvbnN0IGNoYXIgKm5hbWUsCiAJCQkJCWNvbnN0IGNoYXIg KnBhcmVudF9uYW1lLAogCQkJCQl1MTYgcmVnX3NlbCwKQEAgLTIxMiw3ICsyMTIsNyBAQCBzdHJ1 Y3QgY2xrICpjbGtfcmVnX3N5c2N0cmxfZ2F0ZV9maXhlZF9yYXRlKHN0cnVjdCBkZXZpY2UgKmRl diwKIAkJCSZjbGtfc3lzY3RybF9nYXRlX2ZpeGVkX3JhdGVfb3BzKTsKIH0KIAotc3RydWN0IGNs ayAqY2xrX3JlZ19zeXNjdHJsX3NldF9wYXJlbnQoc3RydWN0IGRldmljZSAqZGV2LAorc3RydWN0 IGNsa19jb3JlICpjbGtfcmVnX3N5c2N0cmxfc2V0X3BhcmVudChzdHJ1Y3QgZGV2aWNlICpkZXYs CiAJCQkJY29uc3QgY2hhciAqbmFtZSwKIAkJCQljb25zdCBjaGFyICoqcGFyZW50X25hbWVzLAog CQkJCXU4IG51bV9wYXJlbnRzLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvdXg1MDAvY2xrLmgg Yi9kcml2ZXJzL2Nsay91eDUwMC9jbGsuaAppbmRleCBhMmJiOTJkLi5hY2I1MGY4IDEwMDY0NAot LS0gYS9kcml2ZXJzL2Nsay91eDUwMC9jbGsuaAorKysgYi9kcml2ZXJzL2Nsay91eDUwMC9jbGsu aApAQCAtMTAsNTYgKzEwLDU1IEBACiAjaWZuZGVmIF9fVVg1MDBfQ0xLX0gKICNkZWZpbmUgX19V WDUwMF9DTEtfSAogCi0jaW5jbHVkZSA8bGludXgvY2xrLmg+CiAjaW5jbHVkZSA8bGludXgvZGV2 aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KIAotc3RydWN0IGNsayAqY2xrX3JlZ19w cmNjX3BjbGsoY29uc3QgY2hhciAqbmFtZSwKK3N0cnVjdCBjbGtfY29yZSAqY2xrX3JlZ19wcmNj X3BjbGsoY29uc3QgY2hhciAqbmFtZSwKIAkJCSAgICAgIGNvbnN0IGNoYXIgKnBhcmVudF9uYW1l LAogCQkJICAgICAgcmVzb3VyY2Vfc2l6ZV90IHBoeV9iYXNlLAogCQkJICAgICAgdTMyIGNnX3Nl bCwKIAkJCSAgICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3MpOwogCi1zdHJ1Y3QgY2xrICpjbGtfcmVn X3ByY2Nfa2Nsayhjb25zdCBjaGFyICpuYW1lLAorc3RydWN0IGNsa19jb3JlICpjbGtfcmVnX3By Y2Nfa2Nsayhjb25zdCBjaGFyICpuYW1lLAogCQkJICAgICAgY29uc3QgY2hhciAqcGFyZW50X25h bWUsCiAJCQkgICAgICByZXNvdXJjZV9zaXplX3QgcGh5X2Jhc2UsCiAJCQkgICAgICB1MzIgY2df c2VsLAogCQkJICAgICAgdW5zaWduZWQgbG9uZyBmbGFncyk7CiAKLXN0cnVjdCBjbGsgKmNsa19y ZWdfcHJjbXVfc2NhbGFibGUoY29uc3QgY2hhciAqbmFtZSwKK3N0cnVjdCBjbGtfY29yZSAqY2xr X3JlZ19wcmNtdV9zY2FsYWJsZShjb25zdCBjaGFyICpuYW1lLAogCQkJCSAgIGNvbnN0IGNoYXIg KnBhcmVudF9uYW1lLAogCQkJCSAgIHU4IGNnX3NlbCwKIAkJCQkgICB1bnNpZ25lZCBsb25nIHJh dGUsCiAJCQkJICAgdW5zaWduZWQgbG9uZyBmbGFncyk7CiAKLXN0cnVjdCBjbGsgKmNsa19yZWdf cHJjbXVfZ2F0ZShjb25zdCBjaGFyICpuYW1lLAorc3RydWN0IGNsa19jb3JlICpjbGtfcmVnX3By Y211X2dhdGUoY29uc3QgY2hhciAqbmFtZSwKIAkJCSAgICAgICBjb25zdCBjaGFyICpwYXJlbnRf bmFtZSwKIAkJCSAgICAgICB1OCBjZ19zZWwsCiAJCQkgICAgICAgdW5zaWduZWQgbG9uZyBmbGFn cyk7CiAKLXN0cnVjdCBjbGsgKmNsa19yZWdfcHJjbXVfc2NhbGFibGVfcmF0ZShjb25zdCBjaGFy ICpuYW1lLAorc3RydWN0IGNsa19jb3JlICpjbGtfcmVnX3ByY211X3NjYWxhYmxlX3JhdGUoY29u c3QgY2hhciAqbmFtZSwKIAkJCQkJY29uc3QgY2hhciAqcGFyZW50X25hbWUsCiAJCQkJCXU4IGNn X3NlbCwKIAkJCQkJdW5zaWduZWQgbG9uZyByYXRlLAogCQkJCQl1bnNpZ25lZCBsb25nIGZsYWdz KTsKIAotc3RydWN0IGNsayAqY2xrX3JlZ19wcmNtdV9yYXRlKGNvbnN0IGNoYXIgKm5hbWUsCitz dHJ1Y3QgY2xrX2NvcmUgKmNsa19yZWdfcHJjbXVfcmF0ZShjb25zdCBjaGFyICpuYW1lLAogCQkJ ICAgICAgIGNvbnN0IGNoYXIgKnBhcmVudF9uYW1lLAogCQkJICAgICAgIHU4IGNnX3NlbCwKIAkJ CSAgICAgICB1bnNpZ25lZCBsb25nIGZsYWdzKTsKIAotc3RydWN0IGNsayAqY2xrX3JlZ19wcmNt dV9vcHBfZ2F0ZShjb25zdCBjaGFyICpuYW1lLAorc3RydWN0IGNsa19jb3JlICpjbGtfcmVnX3By Y211X29wcF9nYXRlKGNvbnN0IGNoYXIgKm5hbWUsCiAJCQkJICAgY29uc3QgY2hhciAqcGFyZW50 X25hbWUsCiAJCQkJICAgdTggY2dfc2VsLAogCQkJCSAgIHVuc2lnbmVkIGxvbmcgZmxhZ3MpOwog Ci1zdHJ1Y3QgY2xrICpjbGtfcmVnX3ByY211X29wcF92b2x0X3NjYWxhYmxlKGNvbnN0IGNoYXIg Km5hbWUsCitzdHJ1Y3QgY2xrX2NvcmUgKmNsa19yZWdfcHJjbXVfb3BwX3ZvbHRfc2NhbGFibGUo Y29uc3QgY2hhciAqbmFtZSwKIAkJCQkJICAgIGNvbnN0IGNoYXIgKnBhcmVudF9uYW1lLAogCQkJ CQkgICAgdTggY2dfc2VsLAogCQkJCQkgICAgdW5zaWduZWQgbG9uZyByYXRlLAogCQkJCQkgICAg dW5zaWduZWQgbG9uZyBmbGFncyk7CiAKLXN0cnVjdCBjbGsgKmNsa19yZWdfc3lzY3RybF9nYXRl KHN0cnVjdCBkZXZpY2UgKmRldiwKK3N0cnVjdCBjbGtfY29yZSAqY2xrX3JlZ19zeXNjdHJsX2dh dGUoc3RydWN0IGRldmljZSAqZGV2LAogCQkJCSBjb25zdCBjaGFyICpuYW1lLAogCQkJCSBjb25z dCBjaGFyICpwYXJlbnRfbmFtZSwKIAkJCQkgdTE2IHJlZ19zZWwsCkBAIC02OCw3ICs2Nyw3IEBA IHN0cnVjdCBjbGsgKmNsa19yZWdfc3lzY3RybF9nYXRlKHN0cnVjdCBkZXZpY2UgKmRldiwKIAkJ CQkgdW5zaWduZWQgbG9uZyBlbmFibGVfZGVsYXlfdXMsCiAJCQkJIHVuc2lnbmVkIGxvbmcgZmxh Z3MpOwogCi1zdHJ1Y3QgY2xrICpjbGtfcmVnX3N5c2N0cmxfZ2F0ZV9maXhlZF9yYXRlKHN0cnVj dCBkZXZpY2UgKmRldiwKK3N0cnVjdCBjbGtfY29yZSAqY2xrX3JlZ19zeXNjdHJsX2dhdGVfZml4 ZWRfcmF0ZShzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJCQkJCSAgICBjb25zdCBjaGFyICpuYW1lLAog CQkJCQkgICAgY29uc3QgY2hhciAqcGFyZW50X25hbWUsCiAJCQkJCSAgICB1MTYgcmVnX3NlbCwK QEAgLTc4LDcgKzc3LDcgQEAgc3RydWN0IGNsayAqY2xrX3JlZ19zeXNjdHJsX2dhdGVfZml4ZWRf cmF0ZShzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJCQkJCSAgICB1bnNpZ25lZCBsb25nIGVuYWJsZV9k ZWxheV91cywKIAkJCQkJICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3MpOwogCi1zdHJ1Y3QgY2xrICpj bGtfcmVnX3N5c2N0cmxfc2V0X3BhcmVudChzdHJ1Y3QgZGV2aWNlICpkZXYsCitzdHJ1Y3QgY2xr X2NvcmUgKmNsa19yZWdfc3lzY3RybF9zZXRfcGFyZW50KHN0cnVjdCBkZXZpY2UgKmRldiwKIAkJ CQkgICAgICAgY29uc3QgY2hhciAqbmFtZSwKIAkJCQkgICAgICAgY29uc3QgY2hhciAqKnBhcmVu dF9uYW1lcywKIAkJCQkgICAgICAgdTggbnVtX3BhcmVudHMsCmRpZmYgLS1naXQgYS9kcml2ZXJz L2Nsay91eDUwMC91ODUwMF9jbGsuYyBiL2RyaXZlcnMvY2xrL3V4NTAwL3U4NTAwX2Nsay5jCmlu ZGV4IDgwMDY5YzMuLjcwODU4OWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL3V4NTAwL3U4NTAw X2Nsay5jCisrKyBiL2RyaXZlcnMvY2xrL3V4NTAwL3U4NTAwX2Nsay5jCkBAIC03LDcgKzcsNiBA QAogICogTGljZW5zZSB0ZXJtczogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgKEdQTCkgdmVy c2lvbiAyCiAgKi8KIAotI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgogI2luY2x1ZGUgPGxpbnV4L2Ns a2Rldi5oPgogI2luY2x1ZGUgPGxpbnV4L2Nsay1wcm92aWRlci5oPgogI2luY2x1ZGUgPGxpbnV4 L21mZC9kYng1MDAtcHJjbXUuaD4KQEAgLTE5LDcgKzE4LDcgQEAgdm9pZCB1ODUwMF9jbGtfaW5p dCh1MzIgY2xrcnN0MV9iYXNlLCB1MzIgY2xrcnN0Ml9iYXNlLCB1MzIgY2xrcnN0M19iYXNlLAog ewogCXN0cnVjdCBwcmNtdV9md192ZXJzaW9uICpmd192ZXJzaW9uOwogCWNvbnN0IGNoYXIgKnNn YWNsa19wYXJlbnQgPSBOVUxMOwotCXN0cnVjdCBjbGsgKmNsazsKKwlzdHJ1Y3QgY2xrX2NvcmUg KmNsazsKIAogCS8qIENsb2NrIHNvdXJjZXMgKi8KIAljbGsgPSBjbGtfcmVnX3ByY211X2dhdGUo InNvYzBfcGxsIiwgTlVMTCwgUFJDTVVfUExMU09DMCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xr L3V4NTAwL3U4NTAwX29mX2Nsay5jIGIvZHJpdmVycy9jbGsvdXg1MDAvdTg1MDBfb2ZfY2xrLmMK aW5kZXggN2I1NWVmOC4uNjFlZmI4NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvdXg1MDAvdTg1 MDBfb2ZfY2xrLmMKKysrIGIvZHJpdmVycy9jbGsvdXg1MDAvdTg1MDBfb2ZfY2xrLmMKQEAgLTgs NyArOCw2IEBACiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L29mLmg+Ci0jaW5jbHVkZSA8bGludXgv Y2xrLmg+CiAjaW5jbHVkZSA8bGludXgvY2xrZGV2Lmg+CiAjaW5jbHVkZSA8bGludXgvY2xrLXBy b3ZpZGVyLmg+CiAjaW5jbHVkZSA8bGludXgvbWZkL2RieDUwMC1wcmNtdS5oPgpAQCAtMTgsOSAr MTcsOSBAQAogI2RlZmluZSBQUkNDX05VTV9QRVJJUEhfQ0xVU1RFUlMgNgogI2RlZmluZSBQUkND X1BFUklQSFNfUEVSX0NMVVNURVIgMzIKIAotc3RhdGljIHN0cnVjdCBjbGsgKnByY211X2Nsa1tQ UkNNVV9OVU1fQ0xLU107Ci1zdGF0aWMgc3RydWN0IGNsayAqcHJjY19wY2xrWyhQUkNDX05VTV9Q RVJJUEhfQ0xVU1RFUlMgKyAxKSAqIFBSQ0NfUEVSSVBIU19QRVJfQ0xVU1RFUl07Ci1zdGF0aWMg c3RydWN0IGNsayAqcHJjY19rY2xrWyhQUkNDX05VTV9QRVJJUEhfQ0xVU1RFUlMgKyAxKSAqIFBS Q0NfUEVSSVBIU19QRVJfQ0xVU1RFUl07CitzdGF0aWMgc3RydWN0IGNsa19jb3JlICpwcmNtdV9j bGtbUFJDTVVfTlVNX0NMS1NdOworc3RhdGljIHN0cnVjdCBjbGtfY29yZSAqcHJjY19wY2xrWyhQ UkNDX05VTV9QRVJJUEhfQ0xVU1RFUlMgKyAxKSAqIFBSQ0NfUEVSSVBIU19QRVJfQ0xVU1RFUl07 CitzdGF0aWMgc3RydWN0IGNsa19jb3JlICpwcmNjX2tjbGtbKFBSQ0NfTlVNX1BFUklQSF9DTFVT VEVSUyArIDEpICogUFJDQ19QRVJJUEhTX1BFUl9DTFVTVEVSXTsKIAogI2RlZmluZSBQUkNDX1NI T1coY2xrLCBiYXNlLCBiaXQpIFwKIAljbGtbKGJhc2UgKiBQUkNDX1BFUklQSFNfUEVSX0NMVVNU RVIpICsgYml0XQpAQCAtMjksMTAgKzI4LDEwIEBAIHN0YXRpYyBzdHJ1Y3QgY2xrICpwcmNjX2tj bGtbKFBSQ0NfTlVNX1BFUklQSF9DTFVTVEVSUyArIDEpICogUFJDQ19QRVJJUEhTX1BFUl9DCiAj ZGVmaW5lIFBSQ0NfS0NMS19TVE9SRShjbGssIGJhc2UsIGJpdCkgICAgICAgIFwKIAlwcmNjX2tj bGtbKGJhc2UgKiBQUkNDX1BFUklQSFNfUEVSX0NMVVNURVIpICsgYml0XSA9IGNsawogCi1zdGF0 aWMgc3RydWN0IGNsayAqdXg1MDBfdHdvY2VsbF9nZXQoc3RydWN0IG9mX3BoYW5kbGVfYXJncyAq Y2xrc3BlYywKK3N0YXRpYyBzdHJ1Y3QgY2xrX2NvcmUgKnV4NTAwX3R3b2NlbGxfZ2V0KHN0cnVj dCBvZl9waGFuZGxlX2FyZ3MgKmNsa3NwZWMsCiAJCQkJICAgICB2b2lkICpkYXRhKQogewotCXN0 cnVjdCBjbGsgKipjbGtfZGF0YSA9IGRhdGE7CisJc3RydWN0IGNsa19jb3JlICoqY2xrX2RhdGEg PSBkYXRhOwogCXVuc2lnbmVkIGludCBiYXNlLCBiaXQ7CiAKIAlpZiAoY2xrc3BlYy0+YXJnc19j b3VudCAhPSAyKQpAQCAtNjEsNyArNjAsNyBAQCB2b2lkIHU4NTAwX29mX2Nsa19pbml0KHUzMiBj bGtyc3QxX2Jhc2UsIHUzMiBjbGtyc3QyX2Jhc2UsIHUzMiBjbGtyc3QzX2Jhc2UsCiAJc3RydWN0 IGRldmljZV9ub2RlICpucCA9IE5VTEw7CiAJc3RydWN0IGRldmljZV9ub2RlICpjaGlsZCA9IE5V TEw7CiAJY29uc3QgY2hhciAqc2dhY2xrX3BhcmVudCA9IE5VTEw7Ci0Jc3RydWN0IGNsayAqY2xr LCAqcnRjX2NsaywgKnR3ZF9jbGs7CisJc3RydWN0IGNsa19jb3JlICpjbGssICpydGNfY2xrLCAq dHdkX2NsazsKIAogCWlmIChvZl9oYXZlX3BvcHVsYXRlZF9kdCgpKQogCQlucCA9IG9mX2ZpbmRf bWF0Y2hpbmdfbm9kZShOVUxMLCB1ODUwMF9jbGtfb2ZfbWF0Y2gpOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9jbGsvdXg1MDAvdTg1NDBfY2xrLmMgYi9kcml2ZXJzL2Nsay91eDUwMC91ODU0MF9jbGsu YwppbmRleCAyMGM4YWRkLi5hNTA4ODQ1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay91eDUwMC91 ODU0MF9jbGsuYworKysgYi9kcml2ZXJzL2Nsay91eDUwMC91ODU0MF9jbGsuYwpAQCAtNyw3ICs3 LDYgQEAKICAqIExpY2Vuc2UgdGVybXM6IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIChHUEwp IHZlcnNpb24gMgogICovCiAKLSNpbmNsdWRlIDxsaW51eC9jbGsuaD4KICNpbmNsdWRlIDxsaW51 eC9jbGtkZXYuaD4KICNpbmNsdWRlIDxsaW51eC9jbGstcHJvdmlkZXIuaD4KICNpbmNsdWRlIDxs aW51eC9tZmQvZGJ4NTAwLXByY211Lmg+CkBAIC0xNyw3ICsxNiw3IEBACiB2b2lkIHU4NTQwX2Ns a19pbml0KHUzMiBjbGtyc3QxX2Jhc2UsIHUzMiBjbGtyc3QyX2Jhc2UsIHUzMiBjbGtyc3QzX2Jh c2UsCiAJCSAgICB1MzIgY2xrcnN0NV9iYXNlLCB1MzIgY2xrcnN0Nl9iYXNlKQogewotCXN0cnVj dCBjbGsgKmNsazsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmNsazsKIAogCS8qIENsb2NrIHNvdXJjZXMu ICovCiAJLyogRml4ZWQgQ2xvY2tHZW4gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3V4NTAw L3U5NTQwX2Nsay5jIGIvZHJpdmVycy9jbGsvdXg1MDAvdTk1NDBfY2xrLmMKaW5kZXggNDQ3OTQ3 OC4uODkwNTVhZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvdXg1MDAvdTk1NDBfY2xrLmMKKysr IGIvZHJpdmVycy9jbGsvdXg1MDAvdTk1NDBfY2xrLmMKQEAgLTcsNyArNyw2IEBACiAgKiBMaWNl bnNlIHRlcm1zOiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSAoR1BMKSB2ZXJzaW9uIDIKICAq LwogCi0jaW5jbHVkZSA8bGludXgvY2xrLmg+CiAjaW5jbHVkZSA8bGludXgvY2xrZGV2Lmg+CiAj aW5jbHVkZSA8bGludXgvY2xrLXByb3ZpZGVyLmg+CiAjaW5jbHVkZSA8bGludXgvbWZkL2RieDUw MC1wcmNtdS5oPgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvdmVyc2F0aWxlL2Nsay1pY3N0LmMg Yi9kcml2ZXJzL2Nsay92ZXJzYXRpbGUvY2xrLWljc3QuYwppbmRleCBiYzk2ZjEwLi5kNTcxOWUw IDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay92ZXJzYXRpbGUvY2xrLWljc3QuYworKysgYi9kcml2 ZXJzL2Nsay92ZXJzYXRpbGUvY2xrLWljc3QuYwpAQCAtMTMsNyArMTMsNiBAQAogICogSUNTVCBj bG9jayBjb2RlIGZyb20gdGhlIEFSTSB0cmVlIHNob3VsZCBwcm9iYWJseSBiZSBtZXJnZWQgaW50 byB0aGlzCiAgKiBmaWxlLgogICovCi0jaW5jbHVkZSA8bGludXgvY2xrLmg+CiAjaW5jbHVkZSA8 bGludXgvY2xrZGV2Lmg+CiAjaW5jbHVkZSA8bGludXgvZXJyLmg+CiAjaW5jbHVkZSA8bGludXgv Y2xrLXByb3ZpZGVyLmg+CkBAIC0xMjEsMTMgKzEyMCwxMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0 IGNsa19vcHMgaWNzdF9vcHMgPSB7CiAJLnNldF9yYXRlID0gaWNzdF9zZXRfcmF0ZSwKIH07CiAK LXN0cnVjdCBjbGsgKmljc3RfY2xrX3JlZ2lzdGVyKHN0cnVjdCBkZXZpY2UgKmRldiwKK3N0cnVj dCBjbGtfY29yZSAqaWNzdF9jbGtfcmVnaXN0ZXIoc3RydWN0IGRldmljZSAqZGV2LAogCQkJY29u c3Qgc3RydWN0IGNsa19pY3N0X2Rlc2MgKmRlc2MsCiAJCQljb25zdCBjaGFyICpuYW1lLAogCQkJ Y29uc3QgY2hhciAqcGFyZW50X25hbWUsCiAJCQl2b2lkIF9faW9tZW0gKmJhc2UpCiB7Ci0Jc3Ry dWN0IGNsayAqY2xrOworCXN0cnVjdCBjbGtfY29yZSAqY2xrOwogCXN0cnVjdCBjbGtfaWNzdCAq aWNzdDsKIAlzdHJ1Y3QgY2xrX2luaXRfZGF0YSBpbml0OwogCXN0cnVjdCBpY3N0X3BhcmFtcyAq cGNsb25lOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvdmVyc2F0aWxlL2Nsay1pY3N0LmggYi9k cml2ZXJzL2Nsay92ZXJzYXRpbGUvY2xrLWljc3QuaAppbmRleCAwNGU2ZjBhLi5lZGU4NjdiIDEw MDY0NAotLS0gYS9kcml2ZXJzL2Nsay92ZXJzYXRpbGUvY2xrLWljc3QuaAorKysgYi9kcml2ZXJz L2Nsay92ZXJzYXRpbGUvY2xrLWljc3QuaApAQCAtMTMsNyArMTMsNyBAQCBzdHJ1Y3QgY2xrX2lj c3RfZGVzYyB7CiAJdTMyIGxvY2tfb2Zmc2V0OwogfTsKIAotc3RydWN0IGNsayAqaWNzdF9jbGtf cmVnaXN0ZXIoc3RydWN0IGRldmljZSAqZGV2LAorc3RydWN0IGNsa19jb3JlICppY3N0X2Nsa19y ZWdpc3RlcihzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJCQkgICAgICBjb25zdCBzdHJ1Y3QgY2xrX2lj c3RfZGVzYyAqZGVzYywKIAkJCSAgICAgIGNvbnN0IGNoYXIgKm5hbWUsCiAJCQkgICAgICBjb25z dCBjaGFyICpwYXJlbnRfbmFtZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3ZlcnNhdGlsZS9j bGstaW1wZDEuYyBiL2RyaXZlcnMvY2xrL3ZlcnNhdGlsZS9jbGstaW1wZDEuYwppbmRleCAxY2Mx MzMwLi40NjY4MGRiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay92ZXJzYXRpbGUvY2xrLWltcGQx LmMKKysrIGIvZHJpdmVycy9jbGsvdmVyc2F0aWxlL2Nsay1pbXBkMS5jCkBAIC03LDcgKzcsNiBA QAogICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCiAgKi8KICNp bmNsdWRlIDxsaW51eC9jbGstcHJvdmlkZXIuaD4KLSNpbmNsdWRlIDxsaW51eC9jbGsuaD4KICNp bmNsdWRlIDxsaW51eC9jbGtkZXYuaD4KICNpbmNsdWRlIDxsaW51eC9lcnIuaD4KICNpbmNsdWRl IDxsaW51eC9pby5oPgpAQCAtMjEsMTggKzIwLDE4IEBACiAKIHN0cnVjdCBpbXBkMV9jbGsgewog CWNoYXIgKnBjbGtuYW1lOwotCXN0cnVjdCBjbGsgKnBjbGs7CisJc3RydWN0IGNsa19jb3JlICpw Y2xrOwogCWNoYXIgKnZjbzFuYW1lOwotCXN0cnVjdCBjbGsgKnZjbzFjbGs7CisJc3RydWN0IGNs a19jb3JlICp2Y28xY2xrOwogCWNoYXIgKnZjbzJuYW1lOwotCXN0cnVjdCBjbGsgKnZjbzJjbGs7 Ci0Jc3RydWN0IGNsayAqbW1jaWNsazsKKwlzdHJ1Y3QgY2xrX2NvcmUgKnZjbzJjbGs7CisJc3Ry dWN0IGNsa19jb3JlICptbWNpY2xrOwogCWNoYXIgKnVhcnRuYW1lOwotCXN0cnVjdCBjbGsgKnVh cnRjbGs7CisJc3RydWN0IGNsa19jb3JlICp1YXJ0Y2xrOwogCWNoYXIgKnNwaW5hbWU7Ci0Jc3Ry dWN0IGNsayAqc3BpY2xrOworCXN0cnVjdCBjbGtfY29yZSAqc3BpY2xrOwogCWNoYXIgKnNjbmFt ZTsKLQlzdHJ1Y3QgY2xrICpzY2NsazsKKwlzdHJ1Y3QgY2xrX2NvcmUgKnNjY2xrOwogCXN0cnVj dCBjbGtfbG9va3VwICpjbGtzWzE1XTsKIH07CiAKQEAgLTg3LDggKzg2LDggQEAgc3RhdGljIGNv bnN0IHN0cnVjdCBjbGtfaWNzdF9kZXNjIGltcGQxX2ljc3QyX2Rlc2MgPSB7CiB2b2lkIGludGVn cmF0b3JfaW1wZDFfY2xrX2luaXQodm9pZCBfX2lvbWVtICpiYXNlLCB1bnNpZ25lZCBpbnQgaWQp CiB7CiAJc3RydWN0IGltcGQxX2NsayAqaW1jOwotCXN0cnVjdCBjbGsgKmNsazsKLQlzdHJ1Y3Qg Y2xrICpwY2xrOworCXN0cnVjdCBjbGtfY29yZSAqY2xrOworCXN0cnVjdCBjbGtfY29yZSAqcGNs azsKIAlpbnQgaTsKIAogCWlmIChpZCA+IDMpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3Zl cnNhdGlsZS9jbGstcmVhbHZpZXcuYyBiL2RyaXZlcnMvY2xrL3ZlcnNhdGlsZS9jbGstcmVhbHZp ZXcuYwppbmRleCBjOGI1MjMxLi41MjRjYmE1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay92ZXJz YXRpbGUvY2xrLXJlYWx2aWV3LmMKKysrIGIvZHJpdmVycy9jbGsvdmVyc2F0aWxlL2Nsay1yZWFs dmlldy5jCkBAIC02LDcgKzYsNiBAQAogICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKICAqIHB1Ymxpc2hlZCBieSB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgogICovCi0jaW5jbHVkZSA8bGludXgvY2xrLmg+CiAj aW5jbHVkZSA8bGludXgvY2xrZGV2Lmg+CiAjaW5jbHVkZSA8bGludXgvZXJyLmg+CiAjaW5jbHVk ZSA8bGludXgvaW8uaD4KQEAgLTUwLDcgKzQ5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtf aWNzdF9kZXNjIF9faW5pdGRhdGEgcmVhbHZpZXdfb3NjNF9kZXNjID0gewogICovCiB2b2lkIF9f aW5pdCByZWFsdmlld19jbGtfaW5pdCh2b2lkIF9faW9tZW0gKnN5c2Jhc2UsIGJvb2wgaXNfcGIx MTc2KQogewotCXN0cnVjdCBjbGsgKmNsazsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmNsazsKIAogCS8q IEFQQiBjbG9jayBkdW1teSAqLwogCWNsayA9IGNsa19yZWdpc3Rlcl9maXhlZF9yYXRlKE5VTEws ICJhcGJfcGNsayIsIE5VTEwsIENMS19JU19ST09ULCAwKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Y2xrL3ZlcnNhdGlsZS9jbGstc3A4MTAuYyBiL2RyaXZlcnMvY2xrL3ZlcnNhdGlsZS9jbGstc3A4 MTAuYwppbmRleCBjNmU4NmE5Li45MjU2ZDI1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay92ZXJz YXRpbGUvY2xrLXNwODEwLmMKKysrIGIvZHJpdmVycy9jbGsvdmVyc2F0aWxlL2Nsay1zcDgxMC5j CkBAIC0yNSw3ICsyNSw3IEBAIHN0cnVjdCBjbGtfc3A4MTA7CiAKIHN0cnVjdCBjbGtfc3A4MTBf dGltZXJjbGtlbiB7CiAJc3RydWN0IGNsa19odyBodzsKLQlzdHJ1Y3QgY2xrICpjbGs7CisJc3Ry dWN0IGNsa19jb3JlICpjbGs7CiAJc3RydWN0IGNsa19zcDgxMCAqc3A4MTA7CiAJaW50IGNoYW5u ZWw7CiB9OwpAQCAtMzYsOCArMzYsOCBAQCBzdHJ1Y3QgY2xrX3NwODEwIHsKIAl2b2lkIF9faW9t ZW0gKmJhc2U7CiAJc3BpbmxvY2tfdCBsb2NrOwogCXN0cnVjdCBjbGtfc3A4MTBfdGltZXJjbGtl biB0aW1lcmNsa2VuWzRdOwotCXN0cnVjdCBjbGsgKnJlZmNsazsKLQlzdHJ1Y3QgY2xrICp0aW1j bGs7CisJc3RydWN0IGNsa19jb3JlICpyZWZjbGs7CisJc3RydWN0IGNsa19jb3JlICp0aW1jbGs7 CiB9OwogCiBzdGF0aWMgdTggY2xrX3NwODEwX3RpbWVyY2xrZW5fZ2V0X3BhcmVudChzdHJ1Y3Qg Y2xrX2h3ICpodykKQEAgLTc5LDI5ICs3OSwzMSBAQCBzdGF0aWMgaW50IGNsa19zcDgxMF90aW1l cmNsa2VuX3ByZXBhcmUoc3RydWN0IGNsa19odyAqaHcpCiB7CiAJc3RydWN0IGNsa19zcDgxMF90 aW1lcmNsa2VuICp0aW1lcmNsa2VuID0gdG9fY2xrX3NwODEwX3RpbWVyY2xrZW4oaHcpOwogCXN0 cnVjdCBjbGtfc3A4MTAgKnNwODEwID0gdGltZXJjbGtlbi0+c3A4MTA7Ci0Jc3RydWN0IGNsayAq b2xkX3BhcmVudCA9IF9fY2xrX2dldF9wYXJlbnQoaHctPmNsayk7Ci0Jc3RydWN0IGNsayAqbmV3 X3BhcmVudDsKKwlzdHJ1Y3QgY2xrX2NvcmUgKm9sZF9wYXJlbnQgPSBfX2Nsa19nZXRfcGFyZW50 KGh3LT5jbGspOworCXN0cnVjdCBjbGtfY29yZSAqbmV3X3BhcmVudDsKIAogCWlmICghc3A4MTAt PnJlZmNsaykKLQkJc3A4MTAtPnJlZmNsayA9IG9mX2Nsa19nZXQoc3A4MTAtPm5vZGUsIHNwODEw LT5yZWZjbGtfaW5kZXgpOworCQlzcDgxMC0+cmVmY2xrID0gb2ZfY2xrX3Byb3ZpZGVyX2dldChz cDgxMC0+bm9kZSwKKwkJCQkJCSAgICBzcDgxMC0+cmVmY2xrX2luZGV4KTsKIAogCWlmICghc3A4 MTAtPnRpbWNsaykKLQkJc3A4MTAtPnRpbWNsayA9IG9mX2Nsa19nZXQoc3A4MTAtPm5vZGUsIHNw ODEwLT50aW1jbGtfaW5kZXgpOworCQlzcDgxMC0+dGltY2xrID0gb2ZfY2xrX3Byb3ZpZGVyX2dl dChzcDgxMC0+bm9kZSwKKwkJCQkJCSAgICBzcDgxMC0+dGltY2xrX2luZGV4KTsKIAogCWlmIChX QVJOX09OKElTX0VSUihzcDgxMC0+cmVmY2xrKSB8fCBJU19FUlIoc3A4MTAtPnRpbWNsaykpKQog CQlyZXR1cm4gLUVOT0VOVDsKIAogCS8qIFNlbGVjdCBmYXN0ZXN0IHBhcmVudCAqLwotCWlmIChj bGtfZ2V0X3JhdGUoc3A4MTAtPnJlZmNsaykgPiBjbGtfZ2V0X3JhdGUoc3A4MTAtPnRpbWNsaykp CisJaWYgKGNsa19wcm92aWRlcl9nZXRfcmF0ZShzcDgxMC0+cmVmY2xrKSA+IGNsa19wcm92aWRl cl9nZXRfcmF0ZShzcDgxMC0+dGltY2xrKSkKIAkJbmV3X3BhcmVudCA9IHNwODEwLT5yZWZjbGs7 CiAJZWxzZQogCQluZXdfcGFyZW50ID0gc3A4MTAtPnRpbWNsazsKIAogCS8qIFN3aXRjaCB0aGUg cGFyZW50IGlmIG5lY2Vzc2FyeSAqLwogCWlmIChvbGRfcGFyZW50ICE9IG5ld19wYXJlbnQpIHsK LQkJY2xrX3ByZXBhcmUobmV3X3BhcmVudCk7Ci0JCWNsa19zZXRfcGFyZW50KGh3LT5jbGssIG5l d19wYXJlbnQpOwotCQljbGtfdW5wcmVwYXJlKG9sZF9wYXJlbnQpOworCQljbGtfcHJvdmlkZXJf cHJlcGFyZShuZXdfcGFyZW50KTsKKwkJY2xrX3Byb3ZpZGVyX3NldF9wYXJlbnQoaHctPmNsaywg bmV3X3BhcmVudCk7CisJCWNsa19wcm92aWRlcl91bnByZXBhcmUob2xkX3BhcmVudCk7CiAJfQog CiAJcmV0dXJuIDA7CkBAIC0xMTIsOCArMTE0LDggQEAgc3RhdGljIHZvaWQgY2xrX3NwODEwX3Rp bWVyY2xrZW5fdW5wcmVwYXJlKHN0cnVjdCBjbGtfaHcgKmh3KQogCXN0cnVjdCBjbGtfc3A4MTBf dGltZXJjbGtlbiAqdGltZXJjbGtlbiA9IHRvX2Nsa19zcDgxMF90aW1lcmNsa2VuKGh3KTsKIAlz dHJ1Y3QgY2xrX3NwODEwICpzcDgxMCA9IHRpbWVyY2xrZW4tPnNwODEwOwogCi0JY2xrX3B1dChz cDgxMC0+dGltY2xrKTsKLQljbGtfcHV0KHNwODEwLT5yZWZjbGspOworCV9fY2xrX3B1dChzcDgx MC0+dGltY2xrKTsKKwlfX2Nsa19wdXQoc3A4MTAtPnJlZmNsayk7CiB9CiAKIHN0YXRpYyBjb25z dCBzdHJ1Y3QgY2xrX29wcyBjbGtfc3A4MTBfdGltZXJjbGtlbl9vcHMgPSB7CkBAIC0xMjMsNyAr MTI1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtfb3BzIGNsa19zcDgxMF90aW1lcmNsa2Vu X29wcyA9IHsKIAkuc2V0X3BhcmVudCA9IGNsa19zcDgxMF90aW1lcmNsa2VuX3NldF9wYXJlbnQs CiB9OwogCi1zdGF0aWMgc3RydWN0IGNsayAqY2xrX3NwODEwX3RpbWVyY2xrZW5fb2ZfZ2V0KHN0 cnVjdCBvZl9waGFuZGxlX2FyZ3MgKmNsa3NwZWMsCitzdGF0aWMgc3RydWN0IGNsa19jb3JlICpj bGtfc3A4MTBfdGltZXJjbGtlbl9vZl9nZXQoc3RydWN0IG9mX3BoYW5kbGVfYXJncyAqY2xrc3Bl YywKIAkJdm9pZCAqZGF0YSkKIHsKIAlzdHJ1Y3QgY2xrX3NwODEwICpzcDgxMCA9IGRhdGE7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2Nsay92ZXJzYXRpbGUvY2xrLXZlcnNhdGlsZS5jIGIvZHJpdmVy cy9jbGsvdmVyc2F0aWxlL2Nsay12ZXJzYXRpbGUuYwppbmRleCBhNzY5ODFlLi4xYmRkNTQyIDEw MDY0NAotLS0gYS9kcml2ZXJzL2Nsay92ZXJzYXRpbGUvY2xrLXZlcnNhdGlsZS5jCisrKyBiL2Ry aXZlcnMvY2xrL3ZlcnNhdGlsZS9jbGstdmVyc2F0aWxlLmMKQEAgLTgsNyArOCw2IEBACiAgKiBw dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KICAqLwogI2luY2x1ZGUg PGxpbnV4L2Nsay1wcm92aWRlci5oPgotI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgogI2luY2x1ZGUg PGxpbnV4L2Nsa2Rldi5oPgogI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgogI2luY2x1ZGUgPGxpbnV4 L29mLmg+CkBAIC02MCw3ICs1OSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrX2ljc3RfZGVz YyB2ZXJzYXRpbGVfYXV4b3NjX2Rlc2MgX19pbml0Y29uc3QgPSB7CiBzdGF0aWMgdm9pZCBfX2lu aXQgY21fb3NjX3NldHVwKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsCiAJCQkJY29uc3Qgc3RydWN0 IGNsa19pY3N0X2Rlc2MgKmRlc2MpCiB7Ci0Jc3RydWN0IGNsayAqY2xrID0gRVJSX1BUUigtRUlO VkFMKTsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmNsayA9IEVSUl9QVFIoLUVJTlZBTCk7CiAJY29uc3Qg Y2hhciAqY2xrX25hbWUgPSBucC0+bmFtZTsKIAljb25zdCBjaGFyICpwYXJlbnRfbmFtZTsKIApk aWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvdmVyc2F0aWxlL2Nsay12ZXhwcmVzcy1vc2MuYyBiL2Ry aXZlcnMvY2xrL3ZlcnNhdGlsZS9jbGstdmV4cHJlc3Mtb3NjLmMKaW5kZXggNTI5YTU5Yy4uYzll MTc1ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvdmVyc2F0aWxlL2Nsay12ZXhwcmVzcy1vc2Mu YworKysgYi9kcml2ZXJzL2Nsay92ZXJzYXRpbGUvY2xrLXZleHByZXNzLW9zYy5jCkBAIC03Myw3 ICs3Myw3IEBAIHN0YXRpYyBpbnQgdmV4cHJlc3Nfb3NjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9k ZXZpY2UgKnBkZXYpCiAJc3RydWN0IGNsa19sb29rdXAgKmNsID0gcGRldi0+ZGV2LnBsYXRmb3Jt X2RhdGE7IC8qIE5vbi1EVCBsb29rdXAgKi8KIAlzdHJ1Y3QgY2xrX2luaXRfZGF0YSBpbml0Owog CXN0cnVjdCB2ZXhwcmVzc19vc2MgKm9zYzsKLQlzdHJ1Y3QgY2xrICpjbGs7CisJc3RydWN0IGNs a19jb3JlICpjbGs7CiAJdTMyIHJhbmdlWzJdOwogCiAJb3NjID0gZGV2bV9remFsbG9jKCZwZGV2 LT5kZXYsIHNpemVvZigqb3NjKSwgR0ZQX0tFUk5FTCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Ns ay92ZXJzYXRpbGUvY2xrLXZleHByZXNzLmMgYi9kcml2ZXJzL2Nsay92ZXJzYXRpbGUvY2xrLXZl eHByZXNzLmMKaW5kZXggMmQ1ZTFiNC4uZTc3ZjNkNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsv dmVyc2F0aWxlL2Nsay12ZXhwcmVzcy5jCisrKyBiL2RyaXZlcnMvY2xrL3ZlcnNhdGlsZS9jbGst dmV4cHJlc3MuYwpAQCAtMTcsNyArMTcsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgogI2lu Y2x1ZGUgPGxpbnV4L3ZleHByZXNzLmg+CiAKLXN0YXRpYyBzdHJ1Y3QgY2xrICp2ZXhwcmVzc19z cDgxMF90aW1lcmNsa2VuWzRdOworc3RhdGljIHN0cnVjdCBjbGtfY29yZSAqdmV4cHJlc3Nfc3A4 MTBfdGltZXJjbGtlbls0XTsKIHN0YXRpYyBERUZJTkVfU1BJTkxPQ0sodmV4cHJlc3Nfc3A4MTBf bG9jayk7CiAKIHN0YXRpYyB2b2lkIF9faW5pdCB2ZXhwcmVzc19zcDgxMF9pbml0KHZvaWQgX19p b21lbSAqYmFzZSkKQEAgLTU0LDcgKzU0LDcgQEAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCB2 ZXhwcmVzc19jbGtfMjRtaHpfcGVyaXBoc1tdIF9faW5pdGNvbnN0ID0gewogCiB2b2lkIF9faW5p dCB2ZXhwcmVzc19jbGtfaW5pdCh2b2lkIF9faW9tZW0gKnNwODEwX2Jhc2UpCiB7Ci0Jc3RydWN0 IGNsayAqY2xrOworCXN0cnVjdCBjbGtfY29yZSAqY2xrOwogCWludCBpOwogCiAJY2xrID0gY2xr X3JlZ2lzdGVyX2ZpeGVkX3JhdGUoTlVMTCwgImR1bW15X2FwYl9wY2xrIiwgTlVMTCwKQEAgLTc3 LDcgKzc3LDcgQEAgdm9pZCBfX2luaXQgdmV4cHJlc3NfY2xrX2luaXQodm9pZCBfX2lvbWVtICpz cDgxMF9iYXNlKQogCXZleHByZXNzX3NwODEwX2luaXQoc3A4MTBfYmFzZSk7CiAKIAlmb3IgKGkg PSAwOyBpIDwgQVJSQVlfU0laRSh2ZXhwcmVzc19zcDgxMF90aW1lcmNsa2VuKTsgaSsrKQotCQlX QVJOX09OKGNsa19zZXRfcGFyZW50KHZleHByZXNzX3NwODEwX3RpbWVyY2xrZW5baV0sIGNsaykp OworCQlXQVJOX09OKGNsa19wcm92aWRlcl9zZXRfcGFyZW50KHZleHByZXNzX3NwODEwX3RpbWVy Y2xrZW5baV0sIGNsaykpOwogCiAJV0FSTl9PTihjbGtfcmVnaXN0ZXJfY2xrZGV2KHZleHByZXNz X3NwODEwX3RpbWVyY2xrZW5bMF0sCiAJCQkJInYybS10aW1lcjAiLCAic3A4MDQiKSk7CmRpZmYg LS1naXQgYS9kcml2ZXJzL2Nsay94ODYvY2xrLWxwdC5jIGIvZHJpdmVycy9jbGsveDg2L2Nsay1s cHQuYwppbmRleCA4MTJmODNmLi5mYmI2ODA3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nsay94ODYv Y2xrLWxwdC5jCisrKyBiL2RyaXZlcnMvY2xrL3g4Ni9jbGstbHB0LmMKQEAgLTEwLDcgKzEwLDYg QEAKICAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgogICovCiAK LSNpbmNsdWRlIDxsaW51eC9jbGsuaD4KICNpbmNsdWRlIDxsaW51eC9jbGtkZXYuaD4KICNpbmNs dWRlIDxsaW51eC9jbGstcHJvdmlkZXIuaD4KICNpbmNsdWRlIDxsaW51eC9lcnIuaD4KQEAgLTIx LDcgKzIwLDcgQEAKIHN0YXRpYyBpbnQgbHB0X2Nsa19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2 aWNlICpwZGV2KQogewogCXN0cnVjdCBscHNzX2Nsa19kYXRhICpkcnZkYXRhOwotCXN0cnVjdCBj bGsgKmNsazsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmNsazsKIAogCWRydmRhdGEgPSBkZXZtX2t6YWxs b2MoJnBkZXYtPmRldiwgc2l6ZW9mKCpkcnZkYXRhKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFkcnZk YXRhKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvenlucS9jbGtjLmMgYi9kcml2ZXJzL2Nsay96 eW5xL2Nsa2MuYwppbmRleCAyNDZjZjEyLi4wZWZkZDlhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Ns ay96eW5xL2Nsa2MuYworKysgYi9kcml2ZXJzL2Nsay96eW5xL2Nsa2MuYwpAQCAtNjcsOCArNjcs OCBAQCBlbnVtIHp5bnFfY2xrIHsKIAlpMmMwX2FwZXIsIGkyYzFfYXBlciwgdWFydDBfYXBlciwg dWFydDFfYXBlciwgZ3Bpb19hcGVyLCBscXNwaV9hcGVyLAogCXNtY19hcGVyLCBzd2R0LCBkYmdf dHJjLCBkYmdfYXBiLCBjbGtfbWF4fTsKIAotc3RhdGljIHN0cnVjdCBjbGsgKnBzX2NsazsKLXN0 YXRpYyBzdHJ1Y3QgY2xrICpjbGtzW2Nsa19tYXhdOworc3RhdGljIHN0cnVjdCBjbGtfY29yZSAq cHNfY2xrOworc3RhdGljIHN0cnVjdCBjbGtfY29yZSAqY2xrc1tjbGtfbWF4XTsKIHN0YXRpYyBz dHJ1Y3QgY2xrX29uZWNlbGxfZGF0YSBjbGtfZGF0YTsKIAogc3RhdGljIERFRklORV9TUElOTE9D Syhhcm1wbGxfbG9jayk7CkBAIC0xMDgsNyArMTA4LDcgQEAgc3RhdGljIHZvaWQgX19pbml0IHp5 bnFfY2xrX3JlZ2lzdGVyX2ZjbGsoZW51bSB6eW5xX2NsayBmY2xrLAogCQljb25zdCBjaGFyICpj bGtfbmFtZSwgdm9pZCBfX2lvbWVtICpmY2xrX2N0cmxfcmVnLAogCQljb25zdCBjaGFyICoqcGFy ZW50cywgaW50IGVuYWJsZSkKIHsKLQlzdHJ1Y3QgY2xrICpjbGs7CisJc3RydWN0IGNsa19jb3Jl ICpjbGs7CiAJdTMyIGVuYWJsZV9yZWc7CiAJY2hhciAqbXV4X25hbWU7CiAJY2hhciAqZGl2MF9u YW1lOwpAQCAtMTU0LDcgKzE1NCw3IEBAIHN0YXRpYyB2b2lkIF9faW5pdCB6eW5xX2Nsa19yZWdp c3Rlcl9mY2xrKGVudW0genlucV9jbGsgZmNsaywKIAkJCTAsIENMS19HQVRFX1NFVF9UT19ESVNB QkxFLCBmY2xrX2dhdGVfbG9jayk7CiAJZW5hYmxlX3JlZyA9IGNsa19yZWFkbChmY2xrX2dhdGVf cmVnKSAmIDE7CiAJaWYgKGVuYWJsZSAmJiAhZW5hYmxlX3JlZykgewotCQlpZiAoY2xrX3ByZXBh cmVfZW5hYmxlKGNsa3NbZmNsa10pKQorCQlpZiAoY2xrX3Byb3ZpZGVyX3ByZXBhcmVfZW5hYmxl KGNsa3NbZmNsa10pKQogCQkJcHJfd2FybigiJXM6IEZDTEsldSBlbmFibGUgZmFpbGVkXG4iLCBf X2Z1bmNfXywKIAkJCQkJZmNsayAtIGZjbGswKTsKIAl9CkBAIC0xODEsNyArMTgxLDcgQEAgc3Rh dGljIHZvaWQgX19pbml0IHp5bnFfY2xrX3JlZ2lzdGVyX3BlcmlwaF9jbGsoZW51bSB6eW5xX2Ns ayBjbGswLAogCQljb25zdCBjaGFyICpjbGtfbmFtZTEsIHZvaWQgX19pb21lbSAqY2xrX2N0cmws CiAJCWNvbnN0IGNoYXIgKipwYXJlbnRzLCB1bnNpZ25lZCBpbnQgdHdvX2dhdGVzKQogewotCXN0 cnVjdCBjbGsgKmNsazsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmNsazsKIAljaGFyICptdXhfbmFtZTsK IAljaGFyICpkaXZfbmFtZTsKIAlzcGlubG9ja190ICpsb2NrOwpAQCAtMjIyLDcgKzIyMiw3IEBA IHN0YXRpYyB2b2lkIF9faW5pdCB6eW5xX2Nsa19zZXR1cChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5w KQogCWludCBpOwogCXUzMiB0bXA7CiAJaW50IHJldDsKLQlzdHJ1Y3QgY2xrICpjbGs7CisJc3Ry dWN0IGNsa19jb3JlICpjbGs7CiAJY2hhciAqY2xrX25hbWU7CiAJdW5zaWduZWQgaW50IGZjbGtf ZW5hYmxlID0gMDsKIAljb25zdCBjaGFyICpjbGtfb3V0cHV0X25hbWVbY2xrX21heF07CkBAIC0z MzMsMTMgKzMzMywxMyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgenlucV9jbGtfc2V0dXAoc3RydWN0 IGRldmljZV9ub2RlICpucCkKIAkJCUNMS19ESVZJREVSX0FMTE9XX1pFUk8sICZkZHJjbGtfbG9j ayk7CiAJY2xrc1tkZHIyeF0gPSBjbGtfcmVnaXN0ZXJfZ2F0ZShOVUxMLCBjbGtfb3V0cHV0X25h bWVbZGRyMnhdLAogCQkJImRkcjJ4X2RpdiIsIDAsIFNMQ1JfRERSX0NMS19DVFJMLCAxLCAwLCAm ZGRyY2xrX2xvY2spOwotCWNsa19wcmVwYXJlX2VuYWJsZShjbGtzW2RkcjJ4XSk7CisJY2xrX3By b3ZpZGVyX3ByZXBhcmVfZW5hYmxlKGNsa3NbZGRyMnhdKTsKIAljbGsgPSBjbGtfcmVnaXN0ZXJf ZGl2aWRlcihOVUxMLCAiZGRyM3hfZGl2IiwgImRkcnBsbCIsIDAsCiAJCQlTTENSX0REUl9DTEtf Q1RSTCwgMjAsIDYsIENMS19ESVZJREVSX09ORV9CQVNFRCB8CiAJCQlDTEtfRElWSURFUl9BTExP V19aRVJPLCAmZGRyY2xrX2xvY2spOwogCWNsa3NbZGRyM3hdID0gY2xrX3JlZ2lzdGVyX2dhdGUo TlVMTCwgY2xrX291dHB1dF9uYW1lW2RkcjN4XSwKIAkJCSJkZHIzeF9kaXYiLCAwLCBTTENSX0RE Ul9DTEtfQ1RSTCwgMCwgMCwgJmRkcmNsa19sb2NrKTsKLQljbGtfcHJlcGFyZV9lbmFibGUoY2xr c1tkZHIzeF0pOworCWNsa19wcm92aWRlcl9wcmVwYXJlX2VuYWJsZShjbGtzW2RkcjN4XSk7CiAK IAljbGsgPSBjbGtfcmVnaXN0ZXJfZGl2aWRlcihOVUxMLCAiZGNpX2RpdjAiLCAiZGRycGxsIiwg MCwKIAkJCVNMQ1JfRENJX0NMS19DVFJMLCA4LCA2LCBDTEtfRElWSURFUl9PTkVfQkFTRUQgfApA QCAtMzUxLDcgKzM1MSw3IEBAIHN0YXRpYyB2b2lkIF9faW5pdCB6eW5xX2Nsa19zZXR1cChzdHJ1 Y3QgZGV2aWNlX25vZGUgKm5wKQogCWNsa3NbZGNpXSA9IGNsa19yZWdpc3Rlcl9nYXRlKE5VTEws IGNsa19vdXRwdXRfbmFtZVtkY2ldLCAiZGNpX2RpdjEiLAogCQkJQ0xLX1NFVF9SQVRFX1BBUkVO VCwgU0xDUl9EQ0lfQ0xLX0NUUkwsIDAsIDAsCiAJCQkmZGNpY2xrX2xvY2spOwotCWNsa19wcmVw YXJlX2VuYWJsZShjbGtzW2RjaV0pOworCWNsa19wcm92aWRlcl9wcmVwYXJlX2VuYWJsZShjbGtz W2RjaV0pOwogCiAJLyogUGVyaXBoZXJhbCBjbG9ja3MgKi8KIAlmb3IgKGkgPSBmY2xrMDsgaSA8 PSBmY2xrMzsgaSsrKSB7CkBAIC01MDUsMTAgKzUwNSwxMCBAQCBzdGF0aWMgdm9pZCBfX2luaXQg enlucV9jbGtfc2V0dXAoc3RydWN0IGRldmljZV9ub2RlICpucCkKIAkvKiBsZWF2ZSBkZWJ1ZyBj bG9ja3MgaW4gdGhlIHN0YXRlIHRoZSBib290bG9hZGVyIHNldCB0aGVtIHVwIHRvICovCiAJdG1w ID0gY2xrX3JlYWRsKFNMQ1JfREJHX0NMS19DVFJMKTsKIAlpZiAodG1wICYgREJHX0NMS19DVFJM X0NMS0FDVF9UUkMpCi0JCWlmIChjbGtfcHJlcGFyZV9lbmFibGUoY2xrc1tkYmdfdHJjXSkpCisJ CWlmIChjbGtfcHJvdmlkZXJfcHJlcGFyZV9lbmFibGUoY2xrc1tkYmdfdHJjXSkpCiAJCQlwcl93 YXJuKCIlczogdHJhY2UgY2xrIGVuYWJsZSBmYWlsZWRcbiIsIF9fZnVuY19fKTsKIAlpZiAodG1w ICYgREJHX0NMS19DVFJMX0NQVV8xWENMS0FDVCkKLQkJaWYgKGNsa19wcmVwYXJlX2VuYWJsZShj bGtzW2RiZ19hcGJdKSkKKwkJaWYgKGNsa19wcm92aWRlcl9wcmVwYXJlX2VuYWJsZShjbGtzW2Ri Z19hcGJdKSkKIAkJCXByX3dhcm4oIiVzOiBkZWJ1ZyBBUEIgY2xrIGVuYWJsZSBmYWlsZWRcbiIs IF9fZnVuY19fKTsKIAogCS8qIE9uZSBnYXRlZCBjbG9jayBmb3IgYWxsIEFQRVIgY2xvY2tzLiAq LwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvenlucS9wbGwuYyBiL2RyaXZlcnMvY2xrL3p5bnEv cGxsLmMKaW5kZXggY2VjOTc1OS4uNTE3NmY2NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvenlu cS9wbGwuYworKysgYi9kcml2ZXJzL2Nsay96eW5xL3BsbC5jCkBAIC0xOTMsMTIgKzE5MywxMiBA QCBzdGF0aWMgY29uc3Qgc3RydWN0IGNsa19vcHMgenlucV9wbGxfb3BzID0gewogICogQGxvY2sJ UmVnaXN0ZXIgbG9jawogICogUmV0dXJucyBoYW5kbGUgdG8gdGhlIHJlZ2lzdGVyZWQgY2xvY2su CiAgKi8KLXN0cnVjdCBjbGsgKmNsa19yZWdpc3Rlcl96eW5xX3BsbChjb25zdCBjaGFyICpuYW1l LCBjb25zdCBjaGFyICpwYXJlbnQsCitzdHJ1Y3QgY2xrX2NvcmUgKmNsa19yZWdpc3Rlcl96eW5x X3BsbChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpwYXJlbnQsCiAJCXZvaWQgX19pb21l bSAqcGxsX2N0cmwsIHZvaWQgX19pb21lbSAqcGxsX3N0YXR1cywgdTggbG9ja19pbmRleCwKIAkJ c3BpbmxvY2tfdCAqbG9jaykKIHsKIAlzdHJ1Y3QgenlucV9wbGwgKnBsbDsKLQlzdHJ1Y3QgY2xr ICpjbGs7CisJc3RydWN0IGNsa19jb3JlICpjbGs7CiAJdTMyIHJlZzsKIAljb25zdCBjaGFyICpw YXJlbnRfYXJyWzFdID0ge3BhcmVudH07CiAJdW5zaWduZWQgbG9uZyBmbGFncyA9IDA7CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2hkbWkvaGRtaV9waHlfODk2MC5jIGIvZHJpdmVy cy9ncHUvZHJtL21zbS9oZG1pL2hkbWlfcGh5Xzg5NjAuYwppbmRleCA5MDJkNzY4Li44ZTk3NzAy IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2hkbWkvaGRtaV9waHlfODk2MC5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vaGRtaS9oZG1pX3BoeV84OTYwLmMKQEAgLTE1LDcgKzE1 LDYgQEAKICAqIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcv bGljZW5zZXMvPi4KICAqLwogCi0jaW5jbHVkZSA8bGludXgvY2xrLmg+CiAjaW5jbHVkZSA8bGlu dXgvY2xrLXByb3ZpZGVyLmg+CiAKICNpbmNsdWRlICJoZG1pLmgiCkBAIC0yNCw3ICsyMyw3IEBA IHN0cnVjdCBoZG1pX3BoeV84OTYwIHsKIAlzdHJ1Y3QgaGRtaV9waHkgYmFzZTsKIAlzdHJ1Y3Qg aGRtaSAqaGRtaTsKIAlzdHJ1Y3QgY2xrX2h3IHBsbF9odzsKLQlzdHJ1Y3QgY2xrICpwbGw7CisJ c3RydWN0IGNsa19jb3JlICpwbGw7CiAJdW5zaWduZWQgbG9uZyBwaXhjbGs7CiB9OwogI2RlZmlu ZSB0b19oZG1pX3BoeV84OTYwKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3QgaGRtaV9waHlfODk2 MCwgYmFzZSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vZXh5bm9zNC1pcy9t ZWRpYS1kZXYuYyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vZXh5bm9zNC1pcy9tZWRpYS1kZXYu YwppbmRleCAyNjIwYzQ4Li4yZmRhZGQ4IDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3BsYXRm b3JtL2V4eW5vczQtaXMvbWVkaWEtZGV2LmMKKysrIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9l eHlub3M0LWlzL21lZGlhLWRldi5jCkBAIC0xMSw3ICsxMSw2IEBACiAgKi8KIAogI2luY2x1ZGUg PGxpbnV4L2J1Zy5oPgotI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgogI2luY2x1ZGUgPGxpbnV4L2Ns ay1wcm92aWRlci5oPgogI2luY2x1ZGUgPGxpbnV4L2Nsa2Rldi5oPgogI2luY2x1ZGUgPGxpbnV4 L2RldmljZS5oPgpAQCAtMjE1LDcgKzIxNCw3IEBAIHN0YXRpYyBpbnQgX19maW1jX3BpcGVsaW5l X29wZW4oc3RydWN0IGV4eW5vc19tZWRpYV9waXBlbGluZSAqZXAsCiAKIAkvKiBEaXNhYmxlIFBY TEFTWU5DIGNsb2NrIGlmIHRoaXMgcGlwZWxpbmUgaW5jbHVkZXMgRklNQy1JUyAqLwogCWlmICgh SVNfRVJSKGZtZC0+d2JjbGtbQ0xLX0lEWF9XQl9CXSkgJiYgcC0+c3ViZGV2c1tJRFhfSVNfSVNQ XSkgewotCQlyZXQgPSBjbGtfcHJlcGFyZV9lbmFibGUoZm1kLT53YmNsa1tDTEtfSURYX1dCX0Jd KTsKKwkJcmV0ID0gY2xrX3Byb3ZpZGVyX3ByZXBhcmVfZW5hYmxlKGZtZC0+d2JjbGtbQ0xLX0lE WF9XQl9CXSk7CiAJCWlmIChyZXQgPCAwKQogCQkJcmV0dXJuIHJldDsKIAl9CkBAIC0yMjUsNyAr MjI0LDcgQEAgc3RhdGljIGludCBfX2ZpbWNfcGlwZWxpbmVfb3BlbihzdHJ1Y3QgZXh5bm9zX21l ZGlhX3BpcGVsaW5lICplcCwKIAkJcmV0dXJuIDA7CiAKIAlpZiAoIUlTX0VSUihmbWQtPndiY2xr W0NMS19JRFhfV0JfQl0pICYmIHAtPnN1YmRldnNbSURYX0lTX0lTUF0pCi0JCWNsa19kaXNhYmxl X3VucHJlcGFyZShmbWQtPndiY2xrW0NMS19JRFhfV0JfQl0pOworCQljbGtfcHJvdmlkZXJfZGlz YWJsZV91bnByZXBhcmUoZm1kLT53YmNsa1tDTEtfSURYX1dCX0JdKTsKIAogCXJldHVybiByZXQ7 CiB9CkBAIC0yNTQsNyArMjUzLDcgQEAgc3RhdGljIGludCBfX2ZpbWNfcGlwZWxpbmVfY2xvc2Uo c3RydWN0IGV4eW5vc19tZWRpYV9waXBlbGluZSAqZXApCiAKIAkvKiBEaXNhYmxlIFBYTEFTWU5D IGNsb2NrIGlmIHRoaXMgcGlwZWxpbmUgaW5jbHVkZXMgRklNQy1JUyAqLwogCWlmICghSVNfRVJS KGZtZC0+d2JjbGtbQ0xLX0lEWF9XQl9CXSkgJiYgcC0+c3ViZGV2c1tJRFhfSVNfSVNQXSkKLQkJ Y2xrX2Rpc2FibGVfdW5wcmVwYXJlKGZtZC0+d2JjbGtbQ0xLX0lEWF9XQl9CXSk7CisJCWNsa19w cm92aWRlcl9kaXNhYmxlX3VucHJlcGFyZShmbWQtPndiY2xrW0NMS19JRFhfV0JfQl0pOwogCiAJ cmV0dXJuIHJldCA9PSAtRU5YSU8gPyAwIDogcmV0OwogfQpAQCAtOTU0LDcgKzk1Myw3IEBAIHN0 YXRpYyB2b2lkIGZpbWNfbWRfcHV0X2Nsb2NrcyhzdHJ1Y3QgZmltY19tZCAqZm1kKQogCXdoaWxl ICgtLWkgPj0gMCkgewogCQlpZiAoSVNfRVJSKGZtZC0+Y2FtY2xrW2ldLmNsb2NrKSkKIAkJCWNv bnRpbnVlOwotCQljbGtfcHV0KGZtZC0+Y2FtY2xrW2ldLmNsb2NrKTsKKwkJX19jbGtfcHV0KGZt ZC0+Y2FtY2xrW2ldLmNsb2NrKTsKIAkJZm1kLT5jYW1jbGtbaV0uY2xvY2sgPSBFUlJfUFRSKC1F SU5WQUwpOwogCX0KIApAQCAtOTYyLDcgKzk2MSw3IEBAIHN0YXRpYyB2b2lkIGZpbWNfbWRfcHV0 X2Nsb2NrcyhzdHJ1Y3QgZmltY19tZCAqZm1kKQogCWZvciAoaSA9IDA7IGkgPCBGSU1DX01BWF9X QkNMS1M7IGkrKykgewogCQlpZiAoSVNfRVJSKGZtZC0+d2JjbGtbaV0pKQogCQkJY29udGludWU7 Ci0JCWNsa19wdXQoZm1kLT53YmNsa1tpXSk7CisJCV9fY2xrX3B1dChmbWQtPndiY2xrW2ldKTsK IAkJZm1kLT53YmNsa1tpXSA9IEVSUl9QVFIoLUVJTlZBTCk7CiAJfQogfQpAQCAtOTcxLDcgKzk3 MCw3IEBAIHN0YXRpYyBpbnQgZmltY19tZF9nZXRfY2xvY2tzKHN0cnVjdCBmaW1jX21kICpmbWQp CiB7CiAJc3RydWN0IGRldmljZSAqZGV2ID0gJmZtZC0+cGRldi0+ZGV2OwogCWNoYXIgY2xrX25h bWVbMzJdOwotCXN0cnVjdCBjbGsgKmNsb2NrOworCXN0cnVjdCBjbGtfY29yZSAqY2xvY2s7CiAJ aW50IGksIHJldCA9IDA7CiAKIAlmb3IgKGkgPSAwOyBpIDwgRklNQ19NQVhfQ0FNQ0xLUzsgaSsr KQpAQCAtOTc5LDcgKzk3OCw3IEBAIHN0YXRpYyBpbnQgZmltY19tZF9nZXRfY2xvY2tzKHN0cnVj dCBmaW1jX21kICpmbWQpCiAKIAlmb3IgKGkgPSAwOyBpIDwgRklNQ19NQVhfQ0FNQ0xLUzsgaSsr KSB7CiAJCXNucHJpbnRmKGNsa19uYW1lLCBzaXplb2YoY2xrX25hbWUpLCAic2Nsa19jYW0ldSIs IGkpOwotCQljbG9jayA9IGNsa19nZXQoZGV2LCBjbGtfbmFtZSk7CisJCWNsb2NrID0gY2xrX3By b3ZpZGVyX2dldChkZXYsIGNsa19uYW1lKTsKIAogCQlpZiAoSVNfRVJSKGNsb2NrKSkgewogCQkJ ZGV2X2VycihkZXYsICJGYWlsZWQgdG8gZ2V0IGNsb2NrOiAlc1xuIiwgY2xrX25hbWUpOwpAQCAt MTAwMSw3ICsxMDAwLDcgQEAgc3RhdGljIGludCBmaW1jX21kX2dldF9jbG9ja3Moc3RydWN0IGZp bWNfbWQgKmZtZCkKIAogCWZvciAoaSA9IENMS19JRFhfV0JfQjsgaSA8IEZJTUNfTUFYX1dCQ0xL UzsgaSsrKSB7CiAJCXNucHJpbnRmKGNsa19uYW1lLCBzaXplb2YoY2xrX25hbWUpLCAicHhsX2Fz eW5jJXUiLCBpKTsKLQkJY2xvY2sgPSBjbGtfZ2V0KGRldiwgY2xrX25hbWUpOworCQljbG9jayA9 IGNsa19wcm92aWRlcl9nZXQoZGV2LCBjbGtfbmFtZSk7CiAJCWlmIChJU19FUlIoY2xvY2spKSB7 CiAJCQl2NGwyX2VycigmZm1kLT52NGwyX2RldiwgIkZhaWxlZCB0byBnZXQgY2xvY2s6ICVzXG4i LAogCQkJCSAgY2xrX25hbWUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9l eHlub3M0LWlzL21lZGlhLWRldi5oIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9leHlub3M0LWlz L21lZGlhLWRldi5oCmluZGV4IDAzMjE0NTQuLmYyNGRhYzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv bWVkaWEvcGxhdGZvcm0vZXh5bm9zNC1pcy9tZWRpYS1kZXYuaAorKysgYi9kcml2ZXJzL21lZGlh L3BsYXRmb3JtL2V4eW5vczQtaXMvbWVkaWEtZGV2LmgKQEAgLTksNyArOSw2IEBACiAjaWZuZGVm IEZJTUNfTURFVklDRV9IXwogI2RlZmluZSBGSU1DX01ERVZJQ0VfSF8KIAotI2luY2x1ZGUgPGxp bnV4L2Nsay5oPgogI2luY2x1ZGUgPGxpbnV4L2Nsay1wcm92aWRlci5oPgogI2luY2x1ZGUgPGxp bnV4L3BsYXRmb3JtX2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CkBAIC03Miw3 ICs3MSw3IEBAIHN0cnVjdCBmaW1jX2NzaXNfaW5mbyB7CiB9OwogCiBzdHJ1Y3QgZmltY19jYW1j bGtfaW5mbyB7Ci0Jc3RydWN0IGNsayAqY2xvY2s7CisJc3RydWN0IGNsa19jb3JlICpjbG9jazsK IAlpbnQgdXNlX2NvdW50OwogCXVuc2lnbmVkIGxvbmcgZnJlcXVlbmN5OwogfTsKQEAgLTEyNCw3 ICsxMjMsNyBAQCBzdHJ1Y3QgZmltY19tZCB7CiAJc3RydWN0IGZpbWNfc2Vuc29yX2luZm8gc2Vu c29yW0ZJTUNfTUFYX1NFTlNPUlNdOwogCWludCBudW1fc2Vuc29yczsKIAlzdHJ1Y3QgZmltY19j YW1jbGtfaW5mbyBjYW1jbGtbRklNQ19NQVhfQ0FNQ0xLU107Ci0Jc3RydWN0IGNsayAqd2JjbGtb RklNQ19NQVhfV0JDTEtTXTsKKwlzdHJ1Y3QgY2xrX2NvcmUgKndiY2xrW0ZJTUNfTUFYX1dCQ0xL U107CiAJc3RydWN0IGZpbWNfbGl0ZSAqZmltY19saXRlW0ZJTUNfTElURV9NQVhfREVWU107CiAJ c3RydWN0IGZpbWNfZGV2ICpmaW1jW0ZJTUNfTUFYX0RFVlNdOwogCXN0cnVjdCBmaW1jX2lzICpm aW1jX2lzOwpAQCAtMTQxLDcgKzE0MCw3IEBAIHN0cnVjdCBmaW1jX21kIHsKIAl9IHBpbmN0bDsK IAogCXN0cnVjdCBjYW1fY2xrX3Byb3ZpZGVyIHsKLQkJc3RydWN0IGNsayAqY2xrc1tGSU1DX01B WF9DQU1DTEtTXTsKKwkJc3RydWN0IGNsa19jb3JlICpjbGtzW0ZJTUNfTUFYX0NBTUNMS1NdOwog CQlzdHJ1Y3QgY2xrX29uZWNlbGxfZGF0YSBjbGtfZGF0YTsKIAkJc3RydWN0IGRldmljZV9ub2Rl ICpvZl9ub2RlOwogCQlzdHJ1Y3QgY2FtX2NsayBjYW1jbGtbRklNQ19NQVhfQ0FNQ0xLU107CmRp ZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL29tYXAzaXNwL2lzcC5oIGIvZHJpdmVy cy9tZWRpYS9wbGF0Zm9ybS9vbWFwM2lzcC9pc3AuaAppbmRleCAyYzMxNGVlLi41ZmNlZGQ2IDEw MDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL29tYXAzaXNwL2lzcC5oCisrKyBiL2Ry aXZlcnMvbWVkaWEvcGxhdGZvcm0vb21hcDNpc3AvaXNwLmgKQEAgLTEzMyw3ICsxMzMsNyBAQCBz dHJ1Y3QgaXNwX3hjbGsgewogCXN0cnVjdCBpc3BfZGV2aWNlICppc3A7CiAJc3RydWN0IGNsa19o dyBodzsKIAlzdHJ1Y3QgY2xrX2xvb2t1cCAqbG9va3VwOwotCXN0cnVjdCBjbGsgKmNsazsKKwlz dHJ1Y3QgY2xrX2NvcmUgKmNsazsKIAllbnVtIGlzcF94Y2xrX2lkIGlkOwogCiAJc3BpbmxvY2tf dCBsb2NrOwkvKiBQcm90ZWN0cyBlbmFibGVkIGFuZCBkaXZpZGVyICovCmRpZmYgLS1naXQgYS9k cml2ZXJzL3J0Yy9ydGMtaHltODU2My5jIGIvZHJpdmVycy9ydGMvcnRjLWh5bTg1NjMuYwppbmRl eCBiOTM2YmI0Li5lYTIxYmQxIDEwMDY0NAotLS0gYS9kcml2ZXJzL3J0Yy9ydGMtaHltODU2My5j CisrKyBiL2RyaXZlcnMvcnRjL3J0Yy1oeW04NTYzLmMKQEAgLTM5OCwxMSArMzk4LDExIEBAIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgY2xrX29wcyBoeW04NTYzX2Nsa291dF9vcHMgPSB7CiAJLnNldF9y YXRlID0gaHltODU2M19jbGtvdXRfc2V0X3JhdGUsCiB9OwogCi1zdGF0aWMgc3RydWN0IGNsayAq aHltODU2M19jbGtvdXRfcmVnaXN0ZXJfY2xrKHN0cnVjdCBoeW04NTYzICpoeW04NTYzKQorc3Rh dGljIHN0cnVjdCBjbGtfY29yZSAqaHltODU2M19jbGtvdXRfcmVnaXN0ZXJfY2xrKHN0cnVjdCBo eW04NTYzICpoeW04NTYzKQogewogCXN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQgPSBoeW04NTYz LT5jbGllbnQ7CiAJc3RydWN0IGRldmljZV9ub2RlICpub2RlID0gY2xpZW50LT5kZXYub2Zfbm9k ZTsKLQlzdHJ1Y3QgY2xrICpjbGs7CisJc3RydWN0IGNsa19jb3JlICpjbGs7CiAJc3RydWN0IGNs a19pbml0X2RhdGEgaW5pdDsKIAlpbnQgcmV0OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9z cGktcHhhMnh4LXBjaS5jIGIvZHJpdmVycy9zcGkvc3BpLXB4YTJ4eC1wY2kuYwppbmRleCA1MzZj ODYzLi5mNTkwZTAwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3NwaS9zcGktcHhhMnh4LXBjaS5jCisr KyBiL2RyaXZlcnMvc3BpL3NwaS1weGEyeHgtcGNpLmMKQEAgLTcsNyArNyw2IEBACiAjaW5jbHVk ZSA8bGludXgvb2ZfZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVk ZSA8bGludXgvc3BpL3B4YTJ4eF9zcGkuaD4KLSNpbmNsdWRlIDxsaW51eC9jbGsuaD4KICNpbmNs dWRlIDxsaW51eC9jbGstcHJvdmlkZXIuaD4KIAogZW51bSB7CmRpZmYgLS1naXQgYS9kcml2ZXJz L3N0YWdpbmcvaW14LWRybS9pbXgtdHZlLmMgYi9kcml2ZXJzL3N0YWdpbmcvaW14LWRybS9pbXgt dHZlLmMKaW5kZXggMzFmZTdjZi4uNGZjYjRkOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zdGFnaW5n L2lteC1kcm0vaW14LXR2ZS5jCisrKyBiL2RyaXZlcnMvc3RhZ2luZy9pbXgtZHJtL2lteC10dmUu YwpAQCAtMTgsNyArMTgsNiBAQAogICogTUEgMDIxMTAtMTMwMSwgVVNBLgogICovCiAKLSNpbmNs dWRlIDxsaW51eC9jbGsuaD4KICNpbmNsdWRlIDxsaW51eC9jbGstcHJvdmlkZXIuaD4KICNpbmNs dWRlIDxsaW51eC9jb21wb25lbnQuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KQEAgLTEy MSwxMCArMTIwLDEwIEBAIHN0cnVjdCBpbXhfdHZlIHsKIAlzdHJ1Y3QgcmVnbWFwICpyZWdtYXA7 CiAJc3RydWN0IHJlZ3VsYXRvciAqZGFjX3JlZzsKIAlzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmRkYzsK LQlzdHJ1Y3QgY2xrICpjbGs7Ci0Jc3RydWN0IGNsayAqZGlfc2VsX2NsazsKKwlzdHJ1Y3QgY2xr X2NvcmUgKmNsazsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmRpX3NlbF9jbGs7CiAJc3RydWN0IGNsa19o dyBjbGtfaHdfZGk7Ci0Jc3RydWN0IGNsayAqZGlfY2xrOworCXN0cnVjdCBjbGtfY29yZSAqZGlf Y2xrOwogCWludCB2c3luY19waW47CiAJaW50IGhzeW5jX3BpbjsKIH07CkBAIC0xNTEsNyArMTUw LDcgQEAgc3RhdGljIHZvaWQgdHZlX2VuYWJsZShzdHJ1Y3QgaW14X3R2ZSAqdHZlKQogCiAJaWYg KCF0dmUtPmVuYWJsZWQpIHsKIAkJdHZlLT5lbmFibGVkID0gdHJ1ZTsKLQkJY2xrX3ByZXBhcmVf ZW5hYmxlKHR2ZS0+Y2xrKTsKKwkJY2xrX3Byb3ZpZGVyX3ByZXBhcmVfZW5hYmxlKHR2ZS0+Y2xr KTsKIAkJcmV0ID0gcmVnbWFwX3VwZGF0ZV9iaXRzKHR2ZS0+cmVnbWFwLCBUVkVfQ09NX0NPTkZf UkVHLAogCQkJCQkgVFZFX0lQVV9DTEtfRU4gfCBUVkVfRU4sCiAJCQkJCSBUVkVfSVBVX0NMS19F TiB8IFRWRV9FTik7CkBAIC0xNzgsNyArMTc3LDcgQEAgc3RhdGljIHZvaWQgdHZlX2Rpc2FibGUo c3RydWN0IGlteF90dmUgKnR2ZSkKIAkJdHZlLT5lbmFibGVkID0gZmFsc2U7CiAJCXJldCA9IHJl Z21hcF91cGRhdGVfYml0cyh0dmUtPnJlZ21hcCwgVFZFX0NPTV9DT05GX1JFRywKIAkJCQkJIFRW RV9JUFVfQ0xLX0VOIHwgVFZFX0VOLCAwKTsKLQkJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKHR2ZS0+ Y2xrKTsKKwkJY2xrX3Byb3ZpZGVyX2Rpc2FibGVfdW5wcmVwYXJlKHR2ZS0+Y2xrKTsKIAl9CiB9 CiAKQEAgLTI1MywxMiArMjUyLDEyIEBAIHN0YXRpYyBpbnQgaW14X3R2ZV9jb25uZWN0b3JfbW9k ZV92YWxpZChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAogCXVuc2lnbmVkIGxvbmcg cmF0ZTsKIAogCS8qIHBpeGVsIGNsb2NrIHdpdGggMnggb3ZlcnNhbXBsaW5nICovCi0JcmF0ZSA9 IGNsa19yb3VuZF9yYXRlKHR2ZS0+Y2xrLCAyMDAwVUwgKiBtb2RlLT5jbG9jaykgLyAyMDAwOwor CXJhdGUgPSBjbGtfcHJvdmlkZXJfcm91bmRfcmF0ZSh0dmUtPmNsaywgMjAwMFVMICogbW9kZS0+ Y2xvY2spIC8gMjAwMDsKIAlpZiAocmF0ZSA9PSBtb2RlLT5jbG9jaykKIAkJcmV0dXJuIE1PREVf T0s7CiAKIAkvKiBwaXhlbCBjbG9jayB3aXRob3V0IG92ZXJzYW1wbGluZyAqLwotCXJhdGUgPSBj bGtfcm91bmRfcmF0ZSh0dmUtPmNsaywgMTAwMFVMICogbW9kZS0+Y2xvY2spIC8gMTAwMDsKKwly YXRlID0gY2xrX3Byb3ZpZGVyX3JvdW5kX3JhdGUodHZlLT5jbGssIDEwMDBVTCAqIG1vZGUtPmNs b2NrKSAvIDEwMDA7CiAJaWYgKHJhdGUgPT0gbW9kZS0+Y2xvY2spCiAJCXJldHVybiBNT0RFX09L OwogCkBAIC0zMjcsMTMgKzMyNiwxMyBAQCBzdGF0aWMgdm9pZCBpbXhfdHZlX2VuY29kZXJfbW9k ZV9zZXQoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAogCSAqIGFuZCBlbmFibGUgNHggb3Zl cnNhbXBsaW5nIGZvciBsb3dlciByZXNvbHV0aW9ucwogCSAqLwogCXJhdGUgPSAyMDAwVUwgKiBt b2RlLT5jbG9jazsKLQljbGtfc2V0X3JhdGUodHZlLT5jbGssIHJhdGUpOwotCXJvdW5kZWRfcmF0 ZSA9IGNsa19nZXRfcmF0ZSh0dmUtPmNsayk7CisJY2xrX3Byb3ZpZGVyX3NldF9yYXRlKHR2ZS0+ Y2xrLCByYXRlKTsKKwlyb3VuZGVkX3JhdGUgPSBjbGtfcHJvdmlkZXJfZ2V0X3JhdGUodHZlLT5j bGspOwogCWlmIChyb3VuZGVkX3JhdGUgPj0gcmF0ZSkKIAkJZGl2ID0gMjsKLQljbGtfc2V0X3Jh dGUodHZlLT5kaV9jbGssIHJvdW5kZWRfcmF0ZSAvIGRpdik7CisJY2xrX3Byb3ZpZGVyX3NldF9y YXRlKHR2ZS0+ZGlfY2xrLCByb3VuZGVkX3JhdGUgLyBkaXYpOwogCi0JcmV0ID0gY2xrX3NldF9w YXJlbnQodHZlLT5kaV9zZWxfY2xrLCB0dmUtPmRpX2Nsayk7CisJcmV0ID0gY2xrX3Byb3ZpZGVy X3NldF9wYXJlbnQodHZlLT5kaV9zZWxfY2xrLCB0dmUtPmRpX2Nsayk7CiAJaWYgKHJldCA8IDAp IHsKIAkJZGV2X2Vycih0dmUtPmRldiwgImZhaWxlZCB0byBzZXQgZGlfc2VsIHBhcmVudCB0byB0 dmVfZGk6ICVkXG4iLAogCQkJcmV0KTsKQEAgLTY0NSw3ICs2NDQsNyBAQCBzdGF0aWMgaW50IGlt eF90dmVfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UgKm1hc3Rlciwgdm9p ZCAqZGF0YSkKIAkJCXJldHVybiByZXQ7CiAJfQogCi0JdHZlLT5jbGsgPSBkZXZtX2Nsa19nZXQo ZGV2LCAidHZlIik7CisJdHZlLT5jbGsgPSBkZXZtX2Nsa19wcm92aWRlcl9nZXQoZGV2LCAidHZl Iik7CiAJaWYgKElTX0VSUih0dmUtPmNsaykpIHsKIAkJZGV2X2VycihkZXYsICJmYWlsZWQgdG8g Z2V0IGhpZ2ggc3BlZWQgdHZlIGNsb2NrOiAlbGRcbiIsCiAJCQlQVFJfRVJSKHR2ZS0+Y2xrKSk7 CkBAIC02NTMsNyArNjUyLDcgQEAgc3RhdGljIGludCBpbXhfdHZlX2JpbmQoc3RydWN0IGRldmlj ZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlICptYXN0ZXIsIHZvaWQgKmRhdGEpCiAJfQogCiAJLyogdGhp cyBpcyB0aGUgSVBVIERJIGNsb2NrIGlucHV0IHNlbGVjdG9yLCBjYW4gYmUgcGFyZW50ZWQgdG8g dHZlX2RpICovCi0JdHZlLT5kaV9zZWxfY2xrID0gZGV2bV9jbGtfZ2V0KGRldiwgImRpX3NlbCIp OworCXR2ZS0+ZGlfc2VsX2NsayA9IGRldm1fY2xrX3Byb3ZpZGVyX2dldChkZXYsICJkaV9zZWwi KTsKIAlpZiAoSVNfRVJSKHR2ZS0+ZGlfc2VsX2NsaykpIHsKIAkJZGV2X2VycihkZXYsICJmYWls ZWQgdG8gZ2V0IGlwdSBkaSBtdXggY2xvY2s6ICVsZFxuIiwKIAkJCVBUUl9FUlIodHZlLT5kaV9z ZWxfY2xrKSk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1nZW5lcmljL2Nsa2Rldi5oIGIvaW5j bHVkZS9hc20tZ2VuZXJpYy9jbGtkZXYuaAppbmRleCA5MGEzMmE2Li40MzIwMjI1IDEwMDY0NAot LS0gYS9pbmNsdWRlL2FzbS1nZW5lcmljL2Nsa2Rldi5oCisrKyBiL2luY2x1ZGUvYXNtLWdlbmVy aWMvY2xrZGV2LmgKQEAgLTE1LDEwICsxNSwxMCBAQAogCiAjaW5jbHVkZSA8bGludXgvc2xhYi5o PgogCi1zdHJ1Y3QgY2xrOworc3RydWN0IGNsa19jb3JlOwogCi1zdGF0aWMgaW5saW5lIGludCBf X2Nsa19nZXQoc3RydWN0IGNsayAqY2xrKSB7IHJldHVybiAxOyB9Ci1zdGF0aWMgaW5saW5lIHZv aWQgX19jbGtfcHV0KHN0cnVjdCBjbGsgKmNsaykgeyB9CitzdGF0aWMgaW5saW5lIGludCBfX2Ns a19nZXQoc3RydWN0IGNsa19jb3JlICpjbGspIHsgcmV0dXJuIDE7IH0KK3N0YXRpYyBpbmxpbmUg dm9pZCBfX2Nsa19wdXQoc3RydWN0IGNsa19jb3JlICpjbGspIHsgfQogCiBzdGF0aWMgaW5saW5l IHN0cnVjdCBjbGtfbG9va3VwX2FsbG9jICpfX2Nsa2Rldl9hbGxvYyhzaXplX3Qgc2l6ZSkKIHsK ZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvY2xrL3RpLmggYi9pbmNsdWRlL2xpbnV4L2Nsay90 aS5oCmluZGV4IGU4ZDhhMzUuLjZiOWU2YjQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvY2xr L3RpLmgKKysrIGIvaW5jbHVkZS9saW51eC9jbGsvdGkuaApAQCAtMjIsOCArMjIsOCBAQAogICog QG11bHRfZGl2MV9yZWc6IHJlZ2lzdGVyIGNvbnRhaW5pbmcgdGhlIERQTEwgTSBhbmQgTiBiaXRm aWVsZHMKICAqIEBtdWx0X21hc2s6IG1hc2sgb2YgdGhlIERQTEwgTSBiaXRmaWVsZCBpbiBAbXVs dF9kaXYxX3JlZwogICogQGRpdjFfbWFzazogbWFzayBvZiB0aGUgRFBMTCBOIGJpdGZpZWxkIGlu IEBtdWx0X2RpdjFfcmVnCi0gKiBAY2xrX2J5cGFzczogc3RydWN0IGNsayBwb2ludGVyIHRvIHRo ZSBjbG9jaydzIGJ5cGFzcyBjbG9jayBpbnB1dAotICogQGNsa19yZWY6IHN0cnVjdCBjbGsgcG9p bnRlciB0byB0aGUgY2xvY2sncyByZWZlcmVuY2UgY2xvY2sgaW5wdXQKKyAqIEBjbGtfYnlwYXNz OiBzdHJ1Y3QgY2xrX2NvcmUgcG9pbnRlciB0byB0aGUgY2xvY2sncyBieXBhc3MgY2xvY2sgaW5w dXQKKyAqIEBjbGtfcmVmOiBzdHJ1Y3QgY2xrX2NvcmUgcG9pbnRlciB0byB0aGUgY2xvY2sncyBy ZWZlcmVuY2UgY2xvY2sgaW5wdXQKICAqIEBjb250cm9sX3JlZzogcmVnaXN0ZXIgY29udGFpbmlu ZyB0aGUgRFBMTCBtb2RlIGJpdGZpZWxkCiAgKiBAZW5hYmxlX21hc2s6IG1hc2sgb2YgdGhlIERQ TEwgbW9kZSBiaXRmaWVsZCBpbiBAY29udHJvbF9yZWcKICAqIEBsYXN0X3JvdW5kZWRfcmF0ZTog Y2FjaGUgb2YgdGhlIGxhc3QgcmF0ZSByZXN1bHQgb2Ygb21hcDJfZHBsbF9yb3VuZF9yYXRlKCkK QEAgLTY4LDggKzY4LDggQEAgc3RydWN0IGRwbGxfZGF0YSB7CiAJdm9pZCBfX2lvbWVtCQkqbXVs dF9kaXYxX3JlZzsKIAl1MzIJCQltdWx0X21hc2s7CiAJdTMyCQkJZGl2MV9tYXNrOwotCXN0cnVj dCBjbGsJCSpjbGtfYnlwYXNzOwotCXN0cnVjdCBjbGsJCSpjbGtfcmVmOworCXN0cnVjdCBjbGtf Y29yZQkJKmNsa19ieXBhc3M7CisJc3RydWN0IGNsa19jb3JlCQkqY2xrX3JlZjsKIAl2b2lkIF9f aW9tZW0JCSpjb250cm9sX3JlZzsKIAl1MzIJCQllbmFibGVfbWFzazsKIAl1bnNpZ25lZCBsb25n CQlsYXN0X3JvdW5kZWRfcmF0ZTsKQEAgLTI1MSw3ICsyNTEsNyBAQCBleHRlcm4gY29uc3Qgc3Ry dWN0IGNsa19vcHMgdGlfY2xrX211eF9vcHM7CiAKICNkZWZpbmUgdG9fY2xrX2h3X29tYXAoX2h3 KSBjb250YWluZXJfb2YoX2h3LCBzdHJ1Y3QgY2xrX2h3X29tYXAsIGh3KQogCi12b2lkIG9tYXAy X2luaXRfY2xrX2h3X29tYXBfY2xvY2tzKHN0cnVjdCBjbGsgKmNsayk7Cit2b2lkIG9tYXAyX2lu aXRfY2xrX2h3X29tYXBfY2xvY2tzKHN0cnVjdCBjbGtfY29yZSAqY2xrKTsKIGludCBvbWFwM19u b25jb3JlX2RwbGxfZW5hYmxlKHN0cnVjdCBjbGtfaHcgKmh3KTsKIHZvaWQgb21hcDNfbm9uY29y ZV9kcGxsX2Rpc2FibGUoc3RydWN0IGNsa19odyAqaHcpOwogaW50IG9tYXAzX25vbmNvcmVfZHBs bF9zZXRfcmF0ZShzdHJ1Y3QgY2xrX2h3ICpodywgdW5zaWduZWQgbG9uZyByYXRlLApkaWZmIC0t Z2l0IGEvaW5jbHVkZS9saW51eC9jbGsvenlucS5oIGIvaW5jbHVkZS9saW51eC9jbGsvenlucS5o CmluZGV4IGE5OTBhNTkuLjZjMzUyOTEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvY2xrL3p5 bnEuaAorKysgYi9pbmNsdWRlL2xpbnV4L2Nsay96eW5xLmgKQEAgLTI1LDcgKzI1LDcgQEAKIAog dm9pZCB6eW5xX2Nsb2NrX2luaXQodm9pZCk7CiAKLXN0cnVjdCBjbGsgKmNsa19yZWdpc3Rlcl96 eW5xX3BsbChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpwYXJlbnQsCitzdHJ1Y3QgY2xr X2NvcmUgKmNsa19yZWdpc3Rlcl96eW5xX3BsbChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFy ICpwYXJlbnQsCiAJCXZvaWQgX19pb21lbSAqcGxsX2N0cmwsIHZvaWQgX19pb21lbSAqcGxsX3N0 YXR1cywgdTggbG9ja19pbmRleCwKIAkJc3BpbmxvY2tfdCAqbG9jayk7CiAjZW5kaWYKZGlmZiAt LWdpdCBhL2luY2x1ZGUvbGludXgvcGxhdGZvcm1fZGF0YS9zaTUzNTEuaCBiL2luY2x1ZGUvbGlu dXgvcGxhdGZvcm1fZGF0YS9zaTUzNTEuaAppbmRleCBhOTQ3YWI4Li40YjM0YzY5IDEwMDY0NAot LS0gYS9pbmNsdWRlL2xpbnV4L3BsYXRmb3JtX2RhdGEvc2k1MzUxLmgKKysrIGIvaW5jbHVkZS9s aW51eC9wbGF0Zm9ybV9kYXRhL3NpNTM1MS5oCkBAIC0xMDcsOCArMTA3LDggQEAgc3RydWN0IHNp NTM1MV9jbGtvdXRfY29uZmlnIHsKICAqIEBjbGtvdXQ6IGFycmF5IG9mIGNsa291dCBjb25maWd1 cmF0aW9uCiAgKi8KIHN0cnVjdCBzaTUzNTFfcGxhdGZvcm1fZGF0YSB7Ci0Jc3RydWN0IGNsayAq Y2xrX3h0YWw7Ci0Jc3RydWN0IGNsayAqY2xrX2Nsa2luOworCXN0cnVjdCBjbGtfY29yZSAqY2xr X3h0YWw7CisJc3RydWN0IGNsa19jb3JlICpjbGtfY2xraW47CiAJZW51bSBzaTUzNTFfcGxsX3Ny YyBwbGxfc3JjWzJdOwogCXN0cnVjdCBzaTUzNTFfY2xrb3V0X2NvbmZpZyBjbGtvdXRbOF07CiB9 OwpkaWZmIC0tZ2l0IGEvc291bmQvc29jL214cy9teHMtc2FpZi5jIGIvc291bmQvc29jL214cy9t eHMtc2FpZi5jCmluZGV4IDIzMWQ3ZTcuLmEyNDM2N2QgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9t eHMvbXhzLXNhaWYuYworKysgYi9zb3VuZC9zb2MvbXhzL214cy1zYWlmLmMKQEAgLTY4MiwxMSAr NjgyLDExIEBAIHN0YXRpYyBpbnQgbXhzX3NhaWZfbWNsa19pbml0KHN0cnVjdCBwbGF0Zm9ybV9k ZXZpY2UgKnBkZXYpCiB7CiAJc3RydWN0IG14c19zYWlmICpzYWlmID0gcGxhdGZvcm1fZ2V0X2Ry dmRhdGEocGRldik7CiAJc3RydWN0IGRldmljZV9ub2RlICpucCA9IHBkZXYtPmRldi5vZl9ub2Rl OwotCXN0cnVjdCBjbGsgKmNsazsKKwlzdHJ1Y3QgY2xrX2NvcmUgKmNsazsKIAlpbnQgcmV0Owog CiAJY2xrID0gY2xrX3JlZ2lzdGVyX2RpdmlkZXIoJnBkZXYtPmRldiwgIm14c19zYWlmX21jbGsi LAotCQkJCSAgIF9fY2xrX2dldF9uYW1lKHNhaWYtPmNsayksIDAsCisJCQkJICAgY2xrX2dldF9u YW1lKHNhaWYtPmNsayksIDAsCiAJCQkJICAgc2FpZi0+YmFzZSArIFNBSUZfQ1RSTCwKIAkJCQkg ICBCUF9TQUlGX0NUUkxfQklUQ0xLX01VTFRfUkFURSwgMywKIAkJCQkgICAwLCBOVUxMKTsKLS0g CjEuOS4zCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpM aW51eHBwYy1kZXYgbWFpbGluZyBsaXN0CkxpbnV4cHBjLWRldkBsaXN0cy5vemxhYnMub3JnCmh0 dHBzOi8vbGlzdHMub3psYWJzLm9yZy9saXN0aW5mby9saW51eHBwYy1kZXY=