From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from shards.monkeyblade.net ([184.105.139.130]:51116 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750854AbdLaEPG (ORCPT ); Sat, 30 Dec 2017 23:15:06 -0500 Received: from localhost (pool-173-77-163-229.nycmny.fios.verizon.net [173.77.163.229]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) (Authenticated sender: davem-davemloft) by shards.monkeyblade.net (Postfix) with ESMTPSA id 4FD411086E1BF for ; Sat, 30 Dec 2017 20:15:04 -0800 (PST) Date: Sat, 30 Dec 2017 23:15:02 -0500 (EST) Message-Id: <20171230.231502.177313784200749151.davem@davemloft.net> To: stable@vger.kernel.org Subject: [PATCHES] Networking From: David Miller Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="--Next_Part(Sat_Dec_30_23_15_02_2017_152)--" Content-Transfer-Encoding: 7bit Sender: stable-owner@vger.kernel.org List-ID: ----Next_Part(Sat_Dec_30_23_15_02_2017_152)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Thought you'd make it into 2018 without some more networking bug fixes? Think again! :-) Please queue up the following networking bug fixes for 4.9.x and 4.14.x -stable, respectively. Thanks! ----Next_Part(Sat_Dec_30_23_15_02_2017_152)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_49.mbox" RnJvbSBhYTlhMGVjNjFjMTkzYTQ0ZTMzZjBlMzkyYThiOTI4ODZiZDgxOTc0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRh dGU6IE1vbiwgMTEgRGVjIDIwMTcgMDc6MTc6MzkgLTA4MDAKU3ViamVjdDogW1BBVENIIDAxLzMz XSBpcHY0OiBpZ21wOiBndWFyZCBhZ2FpbnN0IHNpbGx5IE1UVSB2YWx1ZXMKTUlNRS1WZXJzaW9u OiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJh bnNmZXItRW5jb2Rpbmc6IDhiaXQKClsgVXBzdHJlYW0gY29tbWl0IGI1NDc2MDIyYmJhZGEzNzY0 NjA5MzY4ZjAzMzI5Y2EyODc1MjhkYzggXQoKSVB2NCBzdGFjayByZWFjdHMgdG8gY2hhbmdlcyB0 byBzbWFsbCBNVFUsIGJ5IGRpc2FibGluZyBpdHNlbGYgdW5kZXIKUlROTC4KCkJ1dCB0aGVyZSBp cyBhIHdpbmRvdyB3aGVyZSB0aHJlYWRzIG5vdCB1c2luZyBSVE5MIGNhbiBzZWUgYSB3cm9uZwpk ZXZpY2UgbXR1LiBUaGlzIGNhbiBsZWFkIHRvIHN1cnByaXNlcywgaW4gaWdtcCBjb2RlIHdoZXJl IGl0IGlzCmFzc3VtZWQgdGhlIG10dSBpcyBzdWl0YWJsZS4KCkZpeCB0aGlzIGJ5IHJlYWRpbmcg ZGV2aWNlIG10dSBvbmNlIGFuZCBjaGVja2luZyBJUHY0IG1pbmltYWwgTVRVLgoKVGhpcyBwYXRj aCBhZGRzIG1pc3NpbmcgSVBWNF9NSU5fTVRVIGRlZmluZSwgdG8gbm90IGFidXNlCkVUSF9NSU5f TVRVwqBhbnltb3JlLgoKU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29n bGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogaW5jbHVkZS9uZXQvaXAuaCAgICAgfCAgMiArKwogbmV0L2lwdjQvZGV2aW5ldC5j ICAgfCAgMiArLQogbmV0L2lwdjQvaWdtcC5jICAgICAgfCAyNCArKysrKysrKysrKysrKystLS0t LS0tLS0KIG5ldC9pcHY0L2lwX3R1bm5lbC5jIHwgIDQgKystLQogNCBmaWxlcyBjaGFuZ2VkLCAy MCBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25l dC9pcC5oIGIvaW5jbHVkZS9uZXQvaXAuaAppbmRleCA1MWM2Yjk3Li4wZTNkY2Q1IDEwMDY0NAot LS0gYS9pbmNsdWRlL25ldC9pcC5oCisrKyBiL2luY2x1ZGUvbmV0L2lwLmgKQEAgLTMzLDYgKzMz LDggQEAKICNpbmNsdWRlIDxuZXQvZmxvdy5oPgogI2luY2x1ZGUgPG5ldC9mbG93X2Rpc3NlY3Rv ci5oPgogCisjZGVmaW5lIElQVjRfTUlOX01UVQkJNjgJCQkvKiBSRkMgNzkxICovCisKIHN0cnVj dCBzb2NrOwogCiBzdHJ1Y3QgaW5ldF9za2JfcGFybSB7CmRpZmYgLS1naXQgYS9uZXQvaXB2NC9k ZXZpbmV0LmMgYi9uZXQvaXB2NC9kZXZpbmV0LmMKaW5kZXggMDYyYTY3Yy4uZjA4Zjk4NCAxMDA2 NDQKLS0tIGEvbmV0L2lwdjQvZGV2aW5ldC5jCisrKyBiL25ldC9pcHY0L2RldmluZXQuYwpAQCAt MTM4MCw3ICsxMzgwLDcgQEAgc3RhdGljIHZvaWQgaW5ldGRldl9jaGFuZ2VuYW1lKHN0cnVjdCBu ZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBpbl9kZXZpY2UgKmluX2RldikKIAogc3RhdGljIGJvb2wg aW5ldGRldl92YWxpZF9tdHUodW5zaWduZWQgaW50IG10dSkKIHsKLQlyZXR1cm4gbXR1ID49IDY4 OworCXJldHVybiBtdHUgPj0gSVBWNF9NSU5fTVRVOwogfQogCiBzdGF0aWMgdm9pZCBpbmV0ZGV2 X3NlbmRfZ3JhdHVpdG91c19hcnAoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKZGlmZiAtLWdpdCBh L25ldC9pcHY0L2lnbXAuYyBiL25ldC9pcHY0L2lnbXAuYwppbmRleCAwODU3NWUzLi40OWUwNzA0 IDEwMDY0NAotLS0gYS9uZXQvaXB2NC9pZ21wLmMKKysrIGIvbmV0L2lwdjQvaWdtcC5jCkBAIC00 MDQsMTYgKzQwNCwxNyBAQCBzdGF0aWMgaW50IGdyZWNfc2l6ZShzdHJ1Y3QgaXBfbWNfbGlzdCAq cG1jLCBpbnQgdHlwZSwgaW50IGdkZWwsIGludCBzZGVsKQogfQogCiBzdGF0aWMgc3RydWN0IHNr X2J1ZmYgKmFkZF9ncmhlYWQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGlwX21jX2xpc3Qg KnBtYywKLQlpbnQgdHlwZSwgc3RydWN0IGlnbXB2M19ncmVjICoqcHBncikKKwlpbnQgdHlwZSwg c3RydWN0IGlnbXB2M19ncmVjICoqcHBnciwgdW5zaWduZWQgaW50IG10dSkKIHsKIAlzdHJ1Y3Qg bmV0X2RldmljZSAqZGV2ID0gcG1jLT5pbnRlcmZhY2UtPmRldjsKIAlzdHJ1Y3QgaWdtcHYzX3Jl cG9ydCAqcGloOwogCXN0cnVjdCBpZ21wdjNfZ3JlYyAqcGdyOwogCi0JaWYgKCFza2IpCi0JCXNr YiA9IGlnbXB2M19uZXdwYWNrKGRldiwgZGV2LT5tdHUpOwotCWlmICghc2tiKQotCQlyZXR1cm4g TlVMTDsKKwlpZiAoIXNrYikgeworCQlza2IgPSBpZ21wdjNfbmV3cGFjayhkZXYsIG10dSk7CisJ CWlmICghc2tiKQorCQkJcmV0dXJuIE5VTEw7CisJfQogCXBnciA9IChzdHJ1Y3QgaWdtcHYzX2dy ZWMgKilza2JfcHV0KHNrYiwgc2l6ZW9mKHN0cnVjdCBpZ21wdjNfZ3JlYykpOwogCXBnci0+Z3Jl Y190eXBlID0gdHlwZTsKIAlwZ3ItPmdyZWNfYXV4d29yZHMgPSAwOwpAQCAtNDM2LDEyICs0Mzcs MTcgQEAgc3RhdGljIHN0cnVjdCBza19idWZmICphZGRfZ3JlYyhzdHJ1Y3Qgc2tfYnVmZiAqc2ti LCBzdHJ1Y3QgaXBfbWNfbGlzdCAqcG1jLAogCXN0cnVjdCBpZ21wdjNfZ3JlYyAqcGdyID0gTlVM TDsKIAlzdHJ1Y3QgaXBfc2ZfbGlzdCAqcHNmLCAqcHNmX25leHQsICpwc2ZfcHJldiwgKipwc2Zf bGlzdDsKIAlpbnQgc2NvdW50LCBzdG90YWwsIGZpcnN0LCBpc3F1ZXJ5LCB0cnVuY2F0ZTsKKwl1 bnNpZ25lZCBpbnQgbXR1OwogCiAJaWYgKHBtYy0+bXVsdGlhZGRyID09IElHTVBfQUxMX0hPU1RT KQogCQlyZXR1cm4gc2tiOwogCWlmIChpcHY0X2lzX2xvY2FsX211bHRpY2FzdChwbWMtPm11bHRp YWRkcikgJiYgIW5ldC0+aXB2NC5zeXNjdGxfaWdtcF9sbG1fcmVwb3J0cykKIAkJcmV0dXJuIHNr YjsKIAorCW10dSA9IFJFQURfT05DRShkZXYtPm10dSk7CisJaWYgKG10dSA8IElQVjRfTUlOX01U VSkKKwkJcmV0dXJuIHNrYjsKKwogCWlzcXVlcnkgPSB0eXBlID09IElHTVBWM19NT0RFX0lTX0lO Q0xVREUgfHwKIAkJICB0eXBlID09IElHTVBWM19NT0RFX0lTX0VYQ0xVREU7CiAJdHJ1bmNhdGUg PSB0eXBlID09IElHTVBWM19NT0RFX0lTX0VYQ0xVREUgfHwKQEAgLTQ2Miw3ICs0NjgsNyBAQCBz dGF0aWMgc3RydWN0IHNrX2J1ZmYgKmFkZF9ncmVjKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVj dCBpcF9tY19saXN0ICpwbWMsCiAJCSAgICBBVkFJTEFCTEUoc2tiKSA8IGdyZWNfc2l6ZShwbWMs IHR5cGUsIGdkZWxldGVkLCBzZGVsZXRlZCkpIHsKIAkJCWlmIChza2IpCiAJCQkJaWdtcHYzX3Nl bmRwYWNrKHNrYik7Ci0JCQlza2IgPSBpZ21wdjNfbmV3cGFjayhkZXYsIGRldi0+bXR1KTsKKwkJ CXNrYiA9IGlnbXB2M19uZXdwYWNrKGRldiwgbXR1KTsKIAkJfQogCX0KIAlmaXJzdCA9IDE7CkBA IC00OTgsMTIgKzUwNCwxMiBAQCBzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKmFkZF9ncmVjKHN0cnVj dCBza19idWZmICpza2IsIHN0cnVjdCBpcF9tY19saXN0ICpwbWMsCiAJCQkJcGdyLT5ncmVjX25z cmNzID0gaHRvbnMoc2NvdW50KTsKIAkJCWlmIChza2IpCiAJCQkJaWdtcHYzX3NlbmRwYWNrKHNr Yik7Ci0JCQlza2IgPSBpZ21wdjNfbmV3cGFjayhkZXYsIGRldi0+bXR1KTsKKwkJCXNrYiA9IGln bXB2M19uZXdwYWNrKGRldiwgbXR1KTsKIAkJCWZpcnN0ID0gMTsKIAkJCXNjb3VudCA9IDA7CiAJ CX0KIAkJaWYgKGZpcnN0KSB7Ci0JCQlza2IgPSBhZGRfZ3JoZWFkKHNrYiwgcG1jLCB0eXBlLCAm cGdyKTsKKwkJCXNrYiA9IGFkZF9ncmhlYWQoc2tiLCBwbWMsIHR5cGUsICZwZ3IsIG10dSk7CiAJ CQlmaXJzdCA9IDA7CiAJCX0KIAkJaWYgKCFza2IpCkBAIC01MzgsNyArNTQ0LDcgQEAgc3RhdGlj IHN0cnVjdCBza19idWZmICphZGRfZ3JlYyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgaXBf bWNfbGlzdCAqcG1jLAogCQkJCWlnbXB2M19zZW5kcGFjayhza2IpOwogCQkJCXNrYiA9IE5VTEw7 IC8qIGFkZF9ncmhlYWQgd2lsbCBnZXQgYSBuZXcgb25lICovCiAJCQl9Ci0JCQlza2IgPSBhZGRf Z3JoZWFkKHNrYiwgcG1jLCB0eXBlLCAmcGdyKTsKKwkJCXNrYiA9IGFkZF9ncmhlYWQoc2tiLCBw bWMsIHR5cGUsICZwZ3IsIG10dSk7CiAJCX0KIAl9CiAJaWYgKHBncikKZGlmZiAtLWdpdCBhL25l dC9pcHY0L2lwX3R1bm5lbC5jIGIvbmV0L2lwdjQvaXBfdHVubmVsLmMKaW5kZXggYmQ3ZjE4My4u OTY1MzZhMCAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvaXBfdHVubmVsLmMKKysrIGIvbmV0L2lwdjQv aXBfdHVubmVsLmMKQEAgLTM0Niw4ICszNDYsOCBAQCBzdGF0aWMgaW50IGlwX3R1bm5lbF9iaW5k X2RldihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCWRldi0+bmVlZGVkX2hlYWRyb29tID0gdF9o bGVuICsgaGxlbjsKIAltdHUgLT0gKGRldi0+aGFyZF9oZWFkZXJfbGVuICsgdF9obGVuKTsKIAot CWlmIChtdHUgPCA2OCkKLQkJbXR1ID0gNjg7CisJaWYgKG10dSA8IElQVjRfTUlOX01UVSkKKwkJ bXR1ID0gSVBWNF9NSU5fTVRVOwogCiAJcmV0dXJuIG10dTsKIH0KLS0gCjIuOS41CgoKRnJvbSA3 NzFjZGE5MDczOWU5NDdiZjBkZDFhMjkxMTc1N2Y0ZTk1YzA0MjM5IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IE1v biwgMTEgRGVjIDIwMTcgMDc6MDM6MzggLTA4MDAKU3ViamVjdDogW1BBVENIIDAyLzMzXSBpcHY2 OiBtY2FzdDogYmV0dGVyIGNhdGNoIHNpbGx5IG10dSB2YWx1ZXMKClsgVXBzdHJlYW0gY29tbWl0 IGI5YjMxMmE3YTQ1MWU5YzA5ODkyMTg1NmU3Y2ZiYzIwMTEyMGUxYTcgXQoKc3l6a2FsbGVyIHJl cG9ydGVkIGNyYXNoZXMgaW4gSVB2NiBzdGFjayBbMV0KClhpbiBMb25nIGZvdW5kIHRoYXQgbG8g TVRVIHdhcyBzZXQgdG8gc2lsbHkgdmFsdWVzLgoKSVB2NiBzdGFjayByZWFjdHMgdG8gY2hhbmdl cyB0byBzbWFsbCBNVFUsIGJ5IGRpc2FibGluZyBpdHNlbGYgdW5kZXIKUlROTC4KCkJ1dCB0aGVy ZSBpcyBhIHdpbmRvdyB3aGVyZSB0aHJlYWRzIG5vdCB1c2luZyBSVE5MIGNhbiBzZWUgYSB3cm9u ZwpkZXZpY2UgbXR1LiBUaGlzIGNhbiBsZWFkIHRvIHN1cnByaXNlcywgaW4gbWxkIGNvZGUgd2hl cmUgaXQgaXMgYXNzdW1lZAp0aGUgbXR1IGlzIHN1aXRhYmxlLgoKRml4IHRoaXMgYnkgcmVhZGlu ZyBkZXZpY2UgbXR1IG9uY2UgYW5kIGNoZWNraW5nIElQdjYgbWluaW1hbCBNVFUuCgpbMV0KIHNr YnVmZjogc2tiX292ZXJfcGFuaWM6IHRleHQ6MDAwMDAwMDAxMGI4NmI4ZCBsZW46MTk2IHB1dDoy MAogaGVhZDowMDAwMDAwMDNiNDc3ZTYwIGRhdGE6MDAwMDAwMDAwZTg1NDQxZSB0YWlsOjB4ZDQg ZW5kOjB4YzAgZGV2OmxvCiAtLS0tLS0tLS0tLS1bIGN1dCBoZXJlIF0tLS0tLS0tLS0tLS0KIGtl cm5lbCBCVUcgYXQgbmV0L2NvcmUvc2tidWZmLmM6MTA0IQogaW52YWxpZCBvcGNvZGU6IDAwMDAg WyMxXSBTTVAgS0FTQU4KIER1bXBpbmcgZnRyYWNlIGJ1ZmZlcjoKICAgIChmdHJhY2UgYnVmZmVy IGVtcHR5KQogTW9kdWxlcyBsaW5rZWQgaW46CiBDUFU6IDEgUElEOiAwIENvbW06IHN3YXBwZXIv MSBOb3QgdGFpbnRlZCA0LjE1LjAtcmMyLW1tMSsgIzM5CiBIYXJkd2FyZSBuYW1lOiBHb29nbGUg R29vZ2xlIENvbXB1dGUgRW5naW5lL0dvb2dsZSBDb21wdXRlIEVuZ2luZSwgQklPUwogR29vZ2xl IDAxLzAxLzIwMTEKIFJJUDogMDAxMDpza2JfcGFuaWMrMHgxNWMvMHgxZjAgbmV0L2NvcmUvc2ti dWZmLmM6MTAwCiBSU1A6IDAwMTg6ZmZmZjg4MDFkYjMwNzUwOCBFRkxBR1M6IDAwMDEwMjg2CiBS QVg6IDAwMDAwMDAwMDAwMDAwODIgUkJYOiBmZmZmODgwMWM1MTdlODQwIFJDWDogMDAwMDAwMDAw MDAwMDAwMAogUkRYOiAwMDAwMDAwMDAwMDAwMDgyIFJTSTogMWZmZmYxMDAzYjY2MGU2MSBSREk6 IGZmZmZlZDAwM2I2NjBlOTUKIFJCUDogZmZmZjg4MDFkYjMwNzU3MCBSMDg6IDFmZmZmMTAwM2I2 NjBlMjMgUjA5OiAwMDAwMDAwMDAwMDAwMDAwCiBSMTA6IDAwMDAwMDAwMDAwMDAwMDAgUjExOiAw MDAwMDAwMDAwMDAwMDAwIFIxMjogZmZmZmZmZmY4NWJkNDAyMAogUjEzOiBmZmZmZmZmZjg0NzU0 ZWQyIFIxNDogMDAwMDAwMDAwMDAwMDAxNCBSMTU6IGZmZmY4ODAxYzRlMjY1NDAKIEZTOiAgMDAw MDAwMDAwMDAwMDAwMCgwMDAwKSBHUzpmZmZmODgwMWRiMzAwMDAwKDAwMDApIGtubEdTOjAwMDAw MDAwMDAwMDAwMDAKIENTOiAgMDAxMCBEUzogMDAwMCBFUzogMDAwMCBDUjA6IDAwMDAwMDAwODAw NTAwMzMKIENSMjogMDAwMDAwMDAwMDQ2MzYxMCBDUjM6IDAwMDAwMDAxYzY2OTgwMDAgQ1I0OiAw MDAwMDAwMDAwMTQwNmUwCiBEUjA6IDAwMDAwMDAwMDAwMDAwMDAgRFIxOiAwMDAwMDAwMDAwMDAw MDAwIERSMjogMDAwMDAwMDAwMDAwMDAwMAogRFIzOiAwMDAwMDAwMDAwMDAwMDAwIERSNjogMDAw MDAwMDBmZmZlMGZmMCBEUjc6IDAwMDAwMDAwMDAwMDA0MDAKIENhbGwgVHJhY2U6CiAgPElSUT4K ICBza2Jfb3Zlcl9wYW5pYyBuZXQvY29yZS9za2J1ZmYuYzoxMDkgW2lubGluZV0KICBza2JfcHV0 KzB4MTgxLzB4MWMwIG5ldC9jb3JlL3NrYnVmZi5jOjE2OTQKICBhZGRfZ3JoZWFkLmlzcmEuMjQr MHg0Mi8weDNiMCBuZXQvaXB2Ni9tY2FzdC5jOjE2OTUKICBhZGRfZ3JlYysweGE1NS8weDEwNjAg bmV0L2lwdjYvbWNhc3QuYzoxODE3CiAgbWxkX3NlbmRfY3IgbmV0L2lwdjYvbWNhc3QuYzoxOTAz IFtpbmxpbmVdCiAgbWxkX2lmY190aW1lcl9leHBpcmUrMHg0ZDIvMHg3NzAgbmV0L2lwdjYvbWNh c3QuYzoyNDQ4CiAgY2FsbF90aW1lcl9mbisweDIzYi8weDg0MCBrZXJuZWwvdGltZS90aW1lci5j OjEzMjAKICBleHBpcmVfdGltZXJzIGtlcm5lbC90aW1lL3RpbWVyLmM6MTM1NyBbaW5saW5lXQog IF9fcnVuX3RpbWVycysweDdlMS8weGI2MCBrZXJuZWwvdGltZS90aW1lci5jOjE2NjAKICBydW5f dGltZXJfc29mdGlycSsweDRjLzB4YjAga2VybmVsL3RpbWUvdGltZXIuYzoxNjg2CiAgX19kb19z b2Z0aXJxKzB4MjlkLzB4YmIyIGtlcm5lbC9zb2Z0aXJxLmM6Mjg1CiAgaW52b2tlX3NvZnRpcnEg a2VybmVsL3NvZnRpcnEuYzozNjUgW2lubGluZV0KICBpcnFfZXhpdCsweDFkMy8weDIxMCBrZXJu ZWwvc29mdGlycS5jOjQwNQogIGV4aXRpbmdfaXJxIGFyY2gveDg2L2luY2x1ZGUvYXNtL2FwaWMu aDo1NDAgW2lubGluZV0KICBzbXBfYXBpY190aW1lcl9pbnRlcnJ1cHQrMHgxNmIvMHg3MDAgYXJj aC94ODYva2VybmVsL2FwaWMvYXBpYy5jOjEwNTIKICBhcGljX3RpbWVyX2ludGVycnVwdCsweGE5 LzB4YjAgYXJjaC94ODYvZW50cnkvZW50cnlfNjQuUzo5MjAKClNpZ25lZC1vZmYtYnk6IEVyaWMg RHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KUmVwb3J0ZWQtYnk6IHN5emJvdCA8c3l6a2Fs bGVyQGdvb2dsZWdyb3Vwcy5jb20+ClRlc3RlZC1ieTogWGluIExvbmcgPGx1Y2llbi54aW5AZ21h aWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogbmV0L2lwdjYvbWNhc3QuYyB8IDI1ICsrKysrKysrKysrKysrKy0tLS0tLS0tLS0K IDEgZmlsZSBjaGFuZ2VkLCAxNSBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9uZXQvaXB2Ni9tY2FzdC5jIGIvbmV0L2lwdjYvbWNhc3QuYwppbmRleCAxYmRjNzAz Li5jYThmYWM2IDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9tY2FzdC5jCisrKyBiL25ldC9pcHY2L21j YXN0LmMKQEAgLTE2ODIsMTYgKzE2ODIsMTYgQEAgc3RhdGljIGludCBncmVjX3NpemUoc3RydWN0 IGlmbWNhZGRyNiAqcG1jLCBpbnQgdHlwZSwgaW50IGdkZWwsIGludCBzZGVsKQogfQogCiBzdGF0 aWMgc3RydWN0IHNrX2J1ZmYgKmFkZF9ncmhlYWQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0 IGlmbWNhZGRyNiAqcG1jLAotCWludCB0eXBlLCBzdHJ1Y3QgbWxkMl9ncmVjICoqcHBncikKKwlp bnQgdHlwZSwgc3RydWN0IG1sZDJfZ3JlYyAqKnBwZ3IsIHVuc2lnbmVkIGludCBtdHUpCiB7Ci0J c3RydWN0IG5ldF9kZXZpY2UgKmRldiA9IHBtYy0+aWRldi0+ZGV2OwogCXN0cnVjdCBtbGQyX3Jl cG9ydCAqcG1yOwogCXN0cnVjdCBtbGQyX2dyZWMgKnBncjsKIAotCWlmICghc2tiKQotCQlza2Ig PSBtbGRfbmV3cGFjayhwbWMtPmlkZXYsIGRldi0+bXR1KTsKLQlpZiAoIXNrYikKLQkJcmV0dXJu IE5VTEw7CisJaWYgKCFza2IpIHsKKwkJc2tiID0gbWxkX25ld3BhY2socG1jLT5pZGV2LCBtdHUp OworCQlpZiAoIXNrYikKKwkJCXJldHVybiBOVUxMOworCX0KIAlwZ3IgPSAoc3RydWN0IG1sZDJf Z3JlYyAqKXNrYl9wdXQoc2tiLCBzaXplb2Yoc3RydWN0IG1sZDJfZ3JlYykpOwogCXBnci0+Z3Jl Y190eXBlID0gdHlwZTsKIAlwZ3ItPmdyZWNfYXV4d29yZHMgPSAwOwpAQCAtMTcxNCwxMCArMTcx NCwxNSBAQCBzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKmFkZF9ncmVjKHN0cnVjdCBza19idWZmICpz a2IsIHN0cnVjdCBpZm1jYWRkcjYgKnBtYywKIAlzdHJ1Y3QgbWxkMl9ncmVjICpwZ3IgPSBOVUxM OwogCXN0cnVjdCBpcDZfc2ZfbGlzdCAqcHNmLCAqcHNmX25leHQsICpwc2ZfcHJldiwgKipwc2Zf bGlzdDsKIAlpbnQgc2NvdW50LCBzdG90YWwsIGZpcnN0LCBpc3F1ZXJ5LCB0cnVuY2F0ZTsKKwl1 bnNpZ25lZCBpbnQgbXR1OwogCiAJaWYgKHBtYy0+bWNhX2ZsYWdzICYgTUFGX05PUkVQT1JUKQog CQlyZXR1cm4gc2tiOwogCisJbXR1ID0gUkVBRF9PTkNFKGRldi0+bXR1KTsKKwlpZiAobXR1IDwg SVBWNl9NSU5fTVRVKQorCQlyZXR1cm4gc2tiOworCiAJaXNxdWVyeSA9IHR5cGUgPT0gTUxEMl9N T0RFX0lTX0lOQ0xVREUgfHwKIAkJICB0eXBlID09IE1MRDJfTU9ERV9JU19FWENMVURFOwogCXRy dW5jYXRlID0gdHlwZSA9PSBNTEQyX01PREVfSVNfRVhDTFVERSB8fApAQCAtMTczOCw3ICsxNzQz LDcgQEAgc3RhdGljIHN0cnVjdCBza19idWZmICphZGRfZ3JlYyhzdHJ1Y3Qgc2tfYnVmZiAqc2ti LCBzdHJ1Y3QgaWZtY2FkZHI2ICpwbWMsCiAJCSAgICBBVkFJTEFCTEUoc2tiKSA8IGdyZWNfc2l6 ZShwbWMsIHR5cGUsIGdkZWxldGVkLCBzZGVsZXRlZCkpIHsKIAkJCWlmIChza2IpCiAJCQkJbWxk X3NlbmRwYWNrKHNrYik7Ci0JCQlza2IgPSBtbGRfbmV3cGFjayhpZGV2LCBkZXYtPm10dSk7CisJ CQlza2IgPSBtbGRfbmV3cGFjayhpZGV2LCBtdHUpOwogCQl9CiAJfQogCWZpcnN0ID0gMTsKQEAg LTE3NzQsMTIgKzE3NzksMTIgQEAgc3RhdGljIHN0cnVjdCBza19idWZmICphZGRfZ3JlYyhzdHJ1 Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgaWZtY2FkZHI2ICpwbWMsCiAJCQkJcGdyLT5ncmVjX25z cmNzID0gaHRvbnMoc2NvdW50KTsKIAkJCWlmIChza2IpCiAJCQkJbWxkX3NlbmRwYWNrKHNrYik7 Ci0JCQlza2IgPSBtbGRfbmV3cGFjayhpZGV2LCBkZXYtPm10dSk7CisJCQlza2IgPSBtbGRfbmV3 cGFjayhpZGV2LCBtdHUpOwogCQkJZmlyc3QgPSAxOwogCQkJc2NvdW50ID0gMDsKIAkJfQogCQlp ZiAoZmlyc3QpIHsKLQkJCXNrYiA9IGFkZF9ncmhlYWQoc2tiLCBwbWMsIHR5cGUsICZwZ3IpOwor CQkJc2tiID0gYWRkX2dyaGVhZChza2IsIHBtYywgdHlwZSwgJnBnciwgbXR1KTsKIAkJCWZpcnN0 ID0gMDsKIAkJfQogCQlpZiAoIXNrYikKQEAgLTE4MTQsNyArMTgxOSw3IEBAIHN0YXRpYyBzdHJ1 Y3Qgc2tfYnVmZiAqYWRkX2dyZWMoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGlmbWNhZGRy NiAqcG1jLAogCQkJCW1sZF9zZW5kcGFjayhza2IpOwogCQkJCXNrYiA9IE5VTEw7IC8qIGFkZF9n cmhlYWQgd2lsbCBnZXQgYSBuZXcgb25lICovCiAJCQl9Ci0JCQlza2IgPSBhZGRfZ3JoZWFkKHNr YiwgcG1jLCB0eXBlLCAmcGdyKTsKKwkJCXNrYiA9IGFkZF9ncmhlYWQoc2tiLCBwbWMsIHR5cGUs ICZwZ3IsIG10dSk7CiAJCX0KIAl9CiAJaWYgKHBncikKLS0gCjIuOS41CgoKRnJvbSBiZDk0ODM0 ZmQ5ZThkNWE4Nzc3NTMxODgwYTViNWE3ZWMzZjMwNDQwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBGdWdhbmcgRHVhbiA8ZnVnYW5nLmR1YW5AbnhwLmNvbT4KRGF0ZTogRnJpLCAyMiBE ZWMgMjAxNyAxNzoxMjowOSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDMvMzNdIG5ldDogZmVjOiB1 bm1hcCB0aGUgeG1pdCBidWZmZXIgdGhhdCBhcmUgbm90CiB0cmFuc2ZlcnJlZCBieSBETUEKClsg VXBzdHJlYW0gY29tbWl0IDE3OGU1ZjU3YThkOGY4ZmM1Nzk5YTYyNGI5NmZjMzFlZjlhMjlmZmEg XQoKVGhlIGVuZXQgSVAgb25seSBzdXBwb3J0IDMyIGJpdCwgaXQgd2lsbCB1c2Ugc3dpb3RsYiBi dWZmZXIgdG8gZG8gZG1hCm1hcHBpbmcgd2hlbiB4bWl0IGJ1ZmZlciBETUEgbWVtb3J5IGFkZHJl c3MgaXMgYmlnZ2VyIHRoYW4gNEcgaW4gaS5NWApwbGF0Zm9ybS4gQWZ0ZXIgc3RyZXNzIHN1c3Bl bmQvcmVzdW1lIHRlc3QsIGl0IHdpbGwgcHJpbnQgb3V0OgoKbG9nOgpbMTI4MjYuMzUyODY0XSBm ZWMgNWIwNDAwMDAuZXRoZXJuZXQ6IHN3aW90bGIgYnVmZmVyIGlzIGZ1bGwgKHN6OiAxOTEgYnl0 ZXMpClsxMjgyNi4zNTk2NzZdIERNQTogT3V0IG9mIFNXLUlPTU1VIHNwYWNlIGZvciAxOTEgYnl0 ZXMgYXQgZGV2aWNlIDViMDQwMDAwLmV0aGVybmV0ClsxMjgyNi4zNjcxMTBdIGZlYyA1YjA0MDAw MC5ldGhlcm5ldCBldGgwOiBUeCBETUEgbWVtb3J5IG1hcCBmYWlsZWQKClRoZSBpc3N1ZSBpcyB0 aGF0IHRoZSByZWFkeSB4bWl0IGJ1ZmZlcnMgdGhhdCBhcmUgZG1hIG1hcHBlZCBidXQgRE1BIHN0 aWxsCmRvbid0IGNvcHkgdGhlbSBpbnRvIGZpZm8sIG9uY2UgTUFDIHJlc3RhcnQsIHRoZXNlIERN QSBidWZmZXJzIGFyZSBub3QgdW5tYXBwZWQuClNvIGl0IHNob3VsZCBjaGVjayB0aGUgZG1hIG1h cHBpbmcgYnVmZmVyIGFuZCB1bm1hcCB0aGVtLgoKU2lnbmVkLW9mZi1ieTogRnVnYW5nIER1YW4g PGZ1Z2FuZy5kdWFuQG54cC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZmVj X21haW4uYyB8IDYgKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZlY19tYWluLmMgYi9kcml2 ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZmVjX21haW4uYwppbmRleCA4NDliODcxLi42MGY2 ODY2IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZmVjX21haW4u YworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZmVjX21haW4uYwpAQCAtODEz LDYgKzgxMywxMiBAQCBzdGF0aWMgdm9pZCBmZWNfZW5ldF9iZF9pbml0KHN0cnVjdCBuZXRfZGV2 aWNlICpkZXYpCiAJCWZvciAoaSA9IDA7IGkgPCB0eHEtPmJkLnJpbmdfc2l6ZTsgaSsrKSB7CiAJ CQkvKiBJbml0aWFsaXplIHRoZSBCRCBmb3IgZXZlcnkgZnJhZ21lbnQgaW4gdGhlIHBhZ2UuICov CiAJCQliZHAtPmNiZF9zYyA9IGNwdV90b19mZWMxNigwKTsKKwkJCWlmIChiZHAtPmNiZF9idWZh ZGRyICYmCisJCQkgICAgIUlTX1RTT19IRUFERVIodHhxLCBmZWMzMl90b19jcHUoYmRwLT5jYmRf YnVmYWRkcikpKQorCQkJCWRtYV91bm1hcF9zaW5nbGUoJmZlcC0+cGRldi0+ZGV2LAorCQkJCQkJ IGZlYzMyX3RvX2NwdShiZHAtPmNiZF9idWZhZGRyKSwKKwkJCQkJCSBmZWMxNl90b19jcHUoYmRw LT5jYmRfZGF0bGVuKSwKKwkJCQkJCSBETUFfVE9fREVWSUNFKTsKIAkJCWlmICh0eHEtPnR4X3Nr YnVmZltpXSkgewogCQkJCWRldl9rZnJlZV9za2JfYW55KHR4cS0+dHhfc2tidWZmW2ldKTsKIAkJ CQl0eHEtPnR4X3NrYnVmZltpXSA9IE5VTEw7Ci0tIAoyLjkuNQoKCkZyb20gYmNiZmYxOTJkNmRl MzYwYjhmZjQxZjFjZTdkZjM1ZmNjNDE0MzY2ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogS2V2aW4gQ2VybmVrZWUgPGNlcm5la2VlQGNocm9taXVtLm9yZz4KRGF0ZTogTW9uLCAxMSBE ZWMgMjAxNyAxMToxMzo0NSAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDQvMzNdIG5ldDogaWdtcDog VXNlIGNvcnJlY3Qgc291cmNlIGFkZHJlc3Mgb24gSUdNUHYzIHJlcG9ydHMKClsgVXBzdHJlYW0g Y29tbWl0IGE0NjE4MmIwMDI5MDgzOWZhM2ZhMTU5ZDU0ZmQzMjM3YmQ4NjY5ZjAgXQoKQ2xvc2lu ZyBhIG11bHRpY2FzdCBzb2NrZXQgYWZ0ZXIgdGhlIGZpbmFsIElQdjQgYWRkcmVzcyBpcyBkZWxl dGVkCmZyb20gYW4gaW50ZXJmYWNlIGNhbiBnZW5lcmF0ZSBhIG1lbWJlcnNoaXAgcmVwb3J0IHRo YXQgdXNlcyB0aGUKc291cmNlIElQIGZyb20gYSBkaWZmZXJlbnQgaW50ZXJmYWNlLiAgVGhlIGZv bGxvd2luZyB0ZXN0IHNjcmlwdCwgcnVuCmZyb20gYW4gaXNvbGF0ZWQgbmV0bnMsIHJlcHJvZHVj ZXMgdGhlIGlzc3VlOgoKICAgICMhL2Jpbi9iYXNoCgogICAgaXAgbGluayBhZGQgZHVtbXkwIHR5 cGUgZHVtbXkKICAgIGlwIGxpbmsgYWRkIGR1bW15MSB0eXBlIGR1bW15CiAgICBpcCBsaW5rIHNl dCBkdW1teTAgdXAKICAgIGlwIGxpbmsgc2V0IGR1bW15MSB1cAogICAgaXAgYWRkciBhZGQgMTAu MS4xLjEvMjQgZGV2IGR1bW15MAogICAgaXAgYWRkciBhZGQgMTkyLjE2OC45OS45OS8yNCBkZXYg ZHVtbXkxCgogICAgdGNwZHVtcCAtVSAtaSBkdW1teTAgJgogICAgc29jYXQgRVhFQzoic2xlZXAg MiIgXAogICAgICAgIFVEUDQtREFUQUdSQU06MjM5LjEwMS4xLjY4Ojg4ODksaXAtYWRkLW1lbWJl cnNoaXA9MjM5LjAuMS42ODoxMC4xLjEuMSAmCgogICAgc2xlZXAgMQogICAgaXAgYWRkciBkZWwg MTAuMS4xLjEvMjQgZGV2IGR1bW15MAogICAgc2xlZXAgNQogICAga2lsbCAldGNwZHVtcAoKUkZD IDMzNzYgc3BlY2lmaWVzIHRoYXQgdGhlIHJlcG9ydCBtdXN0IGJlIHNlbnQgd2l0aCBhIHZhbGlk IElQIHNvdXJjZQphZGRyZXNzIGZyb20gdGhlIGRlc3RpbmF0aW9uIHN1Ym5ldCwgb3IgZnJvbSBh ZGRyZXNzIDAuMC4wLjAuICBBZGQgYW4KZXh0cmEgY2hlY2sgdG8gbWFrZSBzdXJlIHRoaXMgaXMg dGhlIGNhc2UuCgpTaWduZWQtb2ZmLWJ5OiBLZXZpbiBDZXJuZWtlZSA8Y2VybmVrZWVAY2hyb21p dW0ub3JnPgpSZXZpZXdlZC1ieTogQW5kcmV3IEx1bm4gPGFuZHJld0BsdW5uLmNoPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lw djQvaWdtcC5jIHwgMjAgKysrKysrKysrKysrKysrKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCAxOSBp bnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaWdtcC5j IGIvbmV0L2lwdjQvaWdtcC5jCmluZGV4IDQ5ZTA3MDQuLjdiZmYwYzYgMTAwNjQ0Ci0tLSBhL25l dC9pcHY0L2lnbXAuYworKysgYi9uZXQvaXB2NC9pZ21wLmMKQEAgLTg5LDYgKzg5LDcgQEAKICNp bmNsdWRlIDxsaW51eC9ydG5ldGxpbmsuaD4KICNpbmNsdWRlIDxsaW51eC90aW1lcy5oPgogI2lu Y2x1ZGUgPGxpbnV4L3BrdF9zY2hlZC5oPgorI2luY2x1ZGUgPGxpbnV4L2J5dGVvcmRlci9nZW5l cmljLmg+CiAKICNpbmNsdWRlIDxuZXQvbmV0X25hbWVzcGFjZS5oPgogI2luY2x1ZGUgPG5ldC9h cnAuaD4KQEAgLTMyMSw2ICszMjIsMjMgQEAgaWdtcF9zY291bnQoc3RydWN0IGlwX21jX2xpc3Qg KnBtYywgaW50IHR5cGUsIGludCBnZGVsZXRlZCwgaW50IHNkZWxldGVkKQogCXJldHVybiBzY291 bnQ7CiB9CiAKKy8qIHNvdXJjZSBhZGRyZXNzIHNlbGVjdGlvbiBwZXIgUkZDIDMzNzYgc2VjdGlv biA0LjIuMTMgKi8KK3N0YXRpYyBfX2JlMzIgaWdtcHYzX2dldF9zcmNhZGRyKHN0cnVjdCBuZXRf ZGV2aWNlICpkZXYsCisJCQkJIGNvbnN0IHN0cnVjdCBmbG93aTQgKmZsNCkKK3sKKwlzdHJ1Y3Qg aW5fZGV2aWNlICppbl9kZXYgPSBfX2luX2Rldl9nZXRfcmN1KGRldik7CisKKwlpZiAoIWluX2Rl dikKKwkJcmV0dXJuIGh0b25sKElOQUREUl9BTlkpOworCisJZm9yX2lmYShpbl9kZXYpIHsKKwkJ aWYgKGluZXRfaWZhX21hdGNoKGZsNC0+c2FkZHIsIGlmYSkpCisJCQlyZXR1cm4gZmw0LT5zYWRk cjsKKwl9IGVuZGZvcl9pZmEoaW5fZGV2KTsKKworCXJldHVybiBodG9ubChJTkFERFJfQU5ZKTsK K30KKwogc3RhdGljIHN0cnVjdCBza19idWZmICppZ21wdjNfbmV3cGFjayhzdHJ1Y3QgbmV0X2Rl dmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgbXR1KQogewogCXN0cnVjdCBza19idWZmICpza2I7CkBA IC0zNjgsNyArMzg2LDcgQEAgc3RhdGljIHN0cnVjdCBza19idWZmICppZ21wdjNfbmV3cGFjayhz dHJ1Y3QgbmV0X2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgbXR1KQogCXBpcC0+ZnJhZ19vZmYg PSBodG9ucyhJUF9ERik7CiAJcGlwLT50dGwgICAgICA9IDE7CiAJcGlwLT5kYWRkciAgICA9IGZs NC5kYWRkcjsKLQlwaXAtPnNhZGRyICAgID0gZmw0LnNhZGRyOworCXBpcC0+c2FkZHIgICAgPSBp Z21wdjNfZ2V0X3NyY2FkZHIoZGV2LCAmZmw0KTsKIAlwaXAtPnByb3RvY29sID0gSVBQUk9UT19J R01QOwogCXBpcC0+dG90X2xlbiAgPSAwOwkvKiBmaWxsZWQgaW4gbGF0ZXIgKi8KIAlpcF9zZWxl Y3RfaWRlbnQobmV0LCBza2IsIE5VTEwpOwotLSAKMi45LjUKCgpGcm9tIDRjZDhlN2FlNjA3NTEz NWIxOWMwOWQ5MTZjN2Y3ZjZjMmU2NTdjYzAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IEtldmluIENlcm5la2VlIDxjZXJuZWtlZUBjaHJvbWl1bS5vcmc+CkRhdGU6IFdlZCwgNiBEZWMg MjAxNyAxMjoxMjoyNyAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDUvMzNdIG5ldGxpbms6IEFkZCBu ZXRucyBjaGVjayBvbiB0YXBzCgpbIFVwc3RyZWFtIGNvbW1pdCA5M2M2NDc2NDNiNDhmMDEzMWYw MmU0NWRhM2JkMzY3ZDgwNDQzMjkxIF0KCkN1cnJlbnRseSwgYSBubG1vbiBsaW5rIGluc2lkZSBh IGNoaWxkIG5hbWVzcGFjZSBjYW4gb2JzZXJ2ZSBzeXN0ZW13aWRlCm5ldGxpbmsgYWN0aXZpdHku ICBGaWx0ZXIgdGhlIHRyYWZmaWMgc28gdGhhdCBubG1vbiBjYW4gb25seSBzbmlmZgpuZXRsaW5r IG1lc3NhZ2VzIGZyb20gaXRzIG93biBuZXRucy4KClRlc3QgY2FzZToKCiAgICB2cG5ucyAtLSBi YXNoIC1jICJpcCBsaW5rIGFkZCBubG1vbjAgdHlwZSBubG1vbjsgXAogICAgICAgICAgICAgICAg ICAgICAgaXAgbGluayBzZXQgbmxtb24wIHVwOyBcCiAgICAgICAgICAgICAgICAgICAgICB0Y3Bk dW1wIC1pIG5sbW9uMCAtcSAtdyAvdG1wL25sbW9uLnBjYXAgLVUiICYKICAgIHN1ZG8gaXAgeGZy bSBzdGF0ZSBhZGQgc3JjIDEwLjEuMS4xIGRzdCAxMC4xLjEuMiBwcm90byBlc3AgXAogICAgICAg IHNwaSAweDEgbW9kZSB0cmFuc3BvcnQgXAogICAgICAgIGF1dGggc2hhMSAweDYxNjI2MzMxMzIz MzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAgXAogICAgICAgIGVuYyBhZXMgMHgwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAogICAgZ3JlcCAtLWJpbmFyeSBhYmMxMjMgL3RtcC9u bG1vbi5wY2FwCgpTaWduZWQtb2ZmLWJ5OiBLZXZpbiBDZXJuZWtlZSA8Y2VybmVrZWVAY2hyb21p dW0ub3JnPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogbmV0L25ldGxpbmsvYWZfbmV0bGluay5jIHwgMyArKysKIDEgZmlsZSBjaGFuZ2Vk LCAzIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9uZXQvbmV0bGluay9hZl9uZXRsaW5rLmMg Yi9uZXQvbmV0bGluay9hZl9uZXRsaW5rLmMKaW5kZXggMWZmNDk3Yi4uZTFjMTIzZCAxMDA2NDQK LS0tIGEvbmV0L25ldGxpbmsvYWZfbmV0bGluay5jCisrKyBiL25ldC9uZXRsaW5rL2FmX25ldGxp bmsuYwpAQCAtMjYxLDYgKzI2MSw5IEBAIHN0YXRpYyBpbnQgX19uZXRsaW5rX2RlbGl2ZXJfdGFw X3NrYihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCXN0cnVjdCBzb2NrICpzayA9IHNrYi0+c2s7CiAJ aW50IHJldCA9IC1FTk9NRU07CiAKKwlpZiAoIW5ldF9lcShkZXZfbmV0KGRldiksIHNvY2tfbmV0 KHNrKSkpCisJCXJldHVybiAwOworCiAJZGV2X2hvbGQoZGV2KTsKIAogCWlmIChpc192bWFsbG9j X2FkZHIoc2tiLT5oZWFkKSkKLS0gCjIuOS41CgoKRnJvbSBhOGFiMzQ1NTczNzE4M2UzZGQyNzRk MGM4NjAxMjFhZjZjNDU2NWYxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTZWJhc3Rp YW4gU2pvaG9sbSA8c3Nqb2hvbG1AbWFjLmNvbT4KRGF0ZTogTW9uLCAxMSBEZWMgMjAxNyAyMTo1 MToxNCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMDYvMzNdIG5ldDogcW1pX3d3YW46IGFkZCBTaWVy cmEgRU03NTY1IDExOTk6OTA5MQpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQv cGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoKWyBV cHN0cmVhbSBjb21taXQgYWNlZWY2MWVlNTY4OThjZmE3YjY5NjBmYjYwYjkzMjZjMzg2MDQ0MSBd CgpTaWVycmEgV2lyZWxlc3MgRU03NTY1IGlzIGFuIFF1YWxjb21tIE1ETTl4NTAgYmFzZWQgTS4y IG1vZGVtLgpUaGUgVVNCIGlkIGlzIGFkZGVkIHRvIHFtaV93d2FuLmMgdG8gYWxsb3cgUU1JIGNv bW11bmljYXRpb24Kd2l0aCB0aGUgRU03NTY1LgoKU2lnbmVkLW9mZi1ieTogU2ViYXN0aWFuIFNq b2hvbG0gPHNzam9ob2xtQG1hYy5jb20+CkFja2VkLWJ5OiBCasO4cm4gTW9yayA8Ympvcm5AbW9y ay5ubz4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIGRyaXZlcnMvbmV0L3VzYi9xbWlfd3dhbi5jIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwg MSBpbnNlcnRpb24oKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC91c2IvcW1pX3d3YW4uYyBi L2RyaXZlcnMvbmV0L3VzYi9xbWlfd3dhbi5jCmluZGV4IDEwNWZiZmIuLmRiNjVkOWEgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvbmV0L3VzYi9xbWlfd3dhbi5jCisrKyBiL2RyaXZlcnMvbmV0L3VzYi9x bWlfd3dhbi5jCkBAIC05MDcsNiArOTA3LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2 aWNlX2lkIHByb2R1Y3RzW10gPSB7CiAJe1FNSV9GSVhFRF9JTlRGKDB4MTE5OSwgMHg5MDc5LCAx MCl9LAkvKiBTaWVycmEgV2lyZWxlc3MgRU03NHh4ICovCiAJe1FNSV9GSVhFRF9JTlRGKDB4MTE5 OSwgMHg5MDdiLCA4KX0sCS8qIFNpZXJyYSBXaXJlbGVzcyBFTTc0eHggKi8KIAl7UU1JX0ZJWEVE X0lOVEYoMHgxMTk5LCAweDkwN2IsIDEwKX0sCS8qIFNpZXJyYSBXaXJlbGVzcyBFTTc0eHggKi8K Kwl7UU1JX0ZJWEVEX0lOVEYoMHgxMTk5LCAweDkwOTEsIDgpfSwJLyogU2llcnJhIFdpcmVsZXNz IEVNNzU2NSAqLwogCXtRTUlfRklYRURfSU5URigweDFiYmIsIDB4MDExZSwgNCl9LAkvKiBUZWxl a29tIFNwZWVkc3RpY2sgTFRFIElJIChBbGNhdGVsIE9uZSBUb3VjaCBMMTAwViBMVEUpICovCiAJ e1FNSV9GSVhFRF9JTlRGKDB4MWJiYiwgMHgwMjAzLCAyKX0sCS8qIEFsY2F0ZWwgTDgwME1BICov CiAJe1FNSV9GSVhFRF9JTlRGKDB4MjM1NywgMHgwMjAxLCA0KX0sCS8qIFRQLUxJTksgSFNVUEEg TW9kZW0gTUExODAgKi8KLS0gCjIuOS41CgoKRnJvbSBlZjU0YzdhMzAzY2MzNTY1YTk4YjA2ZWYz YzA3ZDg0NWNjYmRkOWQ4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTaGFvaHVhIExp IDxzaGxpQGZiLmNvbT4KRGF0ZTogV2VkLCAyMCBEZWMgMjAxNyAxMjoxMDoyMSAtMDgwMApTdWJq ZWN0OiBbUEFUQ0ggMDcvMzNdIG5ldDogcmVldmFsdWxhdGUgYXV0b2Zsb3dsYWJlbCBzZXR0aW5n IGFmdGVyIHN5c2N0bAogc2V0dGluZwoKWyBVcHN0cmVhbSBjb21taXQgNTEzNjc0YjVhMmM5Yzdh Njc1MDE1MDY0MTlkYTVjM2M3N2FjNmYwOCBdCgpzeXNjdGwuaXA2LmF1dG9fZmxvd2xhYmVscyBp cyBkZWZhdWx0IDEuIEluIG91ciBob3N0cywgd2Ugc2V0IGl0IHRvIDIuCklmIHNvY2tvcHQgZG9l c24ndCBzZXQgYXV0b2Zsb3dsYWJlbCwgb3V0Y29tZSBwYWNrZXRzIGZyb20gdGhlIGhvc3RzIGFy ZQpzdXBwb3NlZCB0byBub3QgaW5jbHVkZSBmbG93bGFiZWwuIFRoaXMgaXMgdHJ1ZSBmb3Igbm9y bWFsIHBhY2tldCwgYnV0Cm5vdCBmb3IgcmVzZXQgcGFja2V0LgoKVGhlIHJlYXNvbiBpcyBpcHY2 X3BpbmZvLmF1dG9mbG93bGFiZWwgaXMgc2V0IGluIHNvY2sgY3JlYXRpb24uIExhdGVyIGlmCndl IGNoYW5nZSBzeXNjdGwuaXA2LmF1dG9fZmxvd2xhYmVscywgdGhlIGlwdjZfcGluZm8uYXV0b2Zs b3dsYWJlbCBpc24ndApjaGFuZ2VkLCBzbyB0aGUgc29jayB3aWxsIGtlZXAgdGhlIG9sZCBiZWhh dmlvciBpbiB0ZXJtcyBvZiBhdXRvCmZsb3dsYWJlbC4gUmVzZXQgcGFja2V0IGlzIHN1ZmZlcmlu ZyBmcm9tIHRoaXMgcHJvYmxlbSwgYmVjYXVzZSByZXNldApwYWNrZXQgaXMgc2VudCBmcm9tIGEg c3BlY2lhbCBjb250cm9sIHNvY2tldCwgd2hpY2ggaXMgY3JlYXRlZCBhdCBib290CnRpbWUuIFNp bmNlIHN5c2N0bC5pcHY2LmF1dG9fZmxvd2xhYmVscyBpcyAxIGJ5IGRlZmF1bHQsIHRoZSBjb250 cm9sCnNvY2tldCB3aWxsIGFsd2F5cyBoYXZlIGl0cyBpcHY2X3BpbmZvLmF1dG9mbG93bGFiZWwg c2V0LCBldmVuIGFmdGVyCnVzZXIgc2V0IHN5c2N0bC5pcHY2LmF1dG9fZmxvd2xhYmVscyB0byAx LCBzbyByZXNldCBwYWNrc2V0IHdpbGwgYWx3YXlzCmhhdmUgZmxvd2xhYmVsLiBOb3JtYWwgc29j ayBjcmVhdGVkIGJlZm9yZSBzeXNjdGwgc2V0dGluZyBzdWZmZXJzIGZyb20KdGhlIHNhbWUgaXNz dWUuIFdlIGNhbid0IGV2ZW4gdHVybiBvZmYgYXV0b2Zsb3dsYWJlbCB1bmxlc3Mgd2Uga2lsbCBh bGwKc29ja3MgaW4gdGhlIGhvc3RzLgoKVG8gZml4IHRoaXMsIGlmIElQVjZfQVVUT0ZMT1dMQUJF TCBzb2Nrb3B0IGlzIHVzZWQsIHdlIHVzZSB0aGUKYXV0b2Zsb3dsYWJlbCBzZXR0aW5nIGZyb20g dXNlciwgb3RoZXJ3aXNlIHdlIGFsd2F5cyBjYWxsCmlwNl9kZWZhdWx0X25wX2F1dG9sYWJlbCgp IHdoaWNoIGhhcyB0aGUgbmV3IHNldHRpbmdzIG9mIHN5c2N0bC4KCk5vdGUsIHRoaXMgY2hhbmdl cyBiZWhhdmlvciBhIGxpdHRsZSBiaXQuIEJlZm9yZSBjb21taXQgNDIyNDA5MDFmN2M0CihpcHY2 OiBJbXBsZW1lbnQgZGlmZmVyZW50IGFkbWluIG1vZGVzIGZvciBhdXRvbWF0aWMgZmxvdyBsYWJl bHMpLCB0aGUKYXV0b2Zsb3dsYWJlbCBiZWhhdmlvciBvZiBhIHNvY2sgaXNuJ3Qgc3RpY2t5LCBl ZywgaWYgc3lzY3RsIGNoYW5nZXMsCmV4aXN0aW5nIGNvbm5lY3Rpb24gd2lsbCBjaGFuZ2UgYXV0 b2Zsb3dsYWJlbCBiZWhhdmlvci4gQWZ0ZXIgdGhhdApjb21taXQsIGF1dG9mbG93bGFiZWwgYmVo YXZpb3IgaXMgc3RpY2t5IGluIHRoZSB3aG9sZSBsaWZlIG9mIHRoZSBzb2NrLgpXaXRoIHRoaXMg cGF0Y2gsIHRoZSBiZWhhdmlvciBpc24ndCBzdGlja3kgYWdhaW4uCgpDYzogTWFydGluIEthRmFp IExhdSA8a2FmYWlAZmIuY29tPgpDYzogRXJpYyBEdW1hemV0IDxlcmljLmR1bWF6ZXRAZ21haWwu Y29tPgpDYzogVG9tIEhlcmJlcnQgPHRvbUBxdWFudG9uaXVtLm5ldD4KU2lnbmVkLW9mZi1ieTog U2hhb2h1YSBMaSA8c2hsaUBmYi5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL2xpbnV4L2lwdjYuaCAgICAgfCAgMyAr Ky0KIG5ldC9pcHY2L2FmX2luZXQ2LmMgICAgICB8ICAxIC0KIG5ldC9pcHY2L2lwNl9vdXRwdXQu YyAgICB8IDEyICsrKysrKysrKystLQogbmV0L2lwdjYvaXB2Nl9zb2NrZ2x1ZS5jIHwgIDEgKwog NCBmaWxlcyBjaGFuZ2VkLCAxMyBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2luY2x1ZGUvbGludXgvaXB2Ni5oIGIvaW5jbHVkZS9saW51eC9pcHY2LmgKaW5kZXgg YTA2NDk5Ny4uYjlkZmNhNTUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvaXB2Ni5oCisrKyBi L2luY2x1ZGUvbGludXgvaXB2Ni5oCkBAIC0yNDYsNyArMjQ2LDggQEAgc3RydWN0IGlwdjZfcGlu Zm8gewogCQkJCQkJICogMTAwOiBwcmVmZXIgY2FyZS1vZiBhZGRyZXNzCiAJCQkJCQkgKi8KIAkJ CQlkb250ZnJhZzoxLAotCQkJCWF1dG9mbG93bGFiZWw6MTsKKwkJCQlhdXRvZmxvd2xhYmVsOjEs CisJCQkJYXV0b2Zsb3dsYWJlbF9zZXQ6MTsKIAlfX3U4CQkJbWluX2hvcGNvdW50OwogCV9fdTgJ CQl0Y2xhc3M7CiAJX19iZTMyCQkJcmN2X2Zsb3dpbmZvOwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYv YWZfaW5ldDYuYyBiL25ldC9pcHY2L2FmX2luZXQ2LmMKaW5kZXggODI4NWExYy4uNWNhZDc2ZiAx MDA2NDQKLS0tIGEvbmV0L2lwdjYvYWZfaW5ldDYuYworKysgYi9uZXQvaXB2Ni9hZl9pbmV0Ni5j CkBAIC0yMDksNyArMjA5LDYgQEAgc3RhdGljIGludCBpbmV0Nl9jcmVhdGUoc3RydWN0IG5ldCAq bmV0LCBzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBpbnQgcHJvdG9jb2wsCiAJbnAtPm1jYXN0X2hvcHMJ PSBJUFY2X0RFRkFVTFRfTUNBU1RIT1BTOwogCW5wLT5tY19sb29wCT0gMTsKIAlucC0+cG10dWRp c2MJPSBJUFY2X1BNVFVESVNDX1dBTlQ7Ci0JbnAtPmF1dG9mbG93bGFiZWwgPSBpcDZfZGVmYXVs dF9ucF9hdXRvbGFiZWwoc29ja19uZXQoc2spKTsKIAlzay0+c2tfaXB2Nm9ubHkJPSBuZXQtPmlw djYuc3lzY3RsLmJpbmR2Nm9ubHk7CiAKIAkvKiBJbml0IHRoZSBpcHY0IHBhcnQgb2YgdGhlIHNv Y2tldCBzaW5jZSB3ZSBjYW4gaGF2ZSBzb2NrZXRzCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9pcDZf b3V0cHV0LmMgYi9uZXQvaXB2Ni9pcDZfb3V0cHV0LmMKaW5kZXggNmUwMWM5YS4uNTA2ZWZiYSAx MDA2NDQKLS0tIGEvbmV0L2lwdjYvaXA2X291dHB1dC5jCisrKyBiL25ldC9pcHY2L2lwNl9vdXRw dXQuYwpAQCAtMTU2LDYgKzE1NiwxNCBAQCBpbnQgaXA2X291dHB1dChzdHJ1Y3QgbmV0ICpuZXQs IHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYikKIAkJCSAgICAhKElQNkNCKHNr YiktPmZsYWdzICYgSVA2U0tCX1JFUk9VVEVEKSk7CiB9CiAKK3N0YXRpYyBib29sIGlwNl9hdXRv Zmxvd2xhYmVsKHN0cnVjdCBuZXQgKm5ldCwgY29uc3Qgc3RydWN0IGlwdjZfcGluZm8gKm5wKQor eworCWlmICghbnAtPmF1dG9mbG93bGFiZWxfc2V0KQorCQlyZXR1cm4gaXA2X2RlZmF1bHRfbnBf YXV0b2xhYmVsKG5ldCk7CisJZWxzZQorCQlyZXR1cm4gbnAtPmF1dG9mbG93bGFiZWw7Cit9CisK IC8qCiAgKiB4bWl0IGFuIHNrX2J1ZmYgKHVzZWQgYnkgVENQLCBTQ1RQIGFuZCBEQ0NQKQogICog Tm90ZSA6IHNvY2tldCBsb2NrIGlzIG5vdCBoZWxkIGZvciBTWU5BQ0sgcGFja2V0cywgYnV0IG1p Z2h0IGJlIG1vZGlmaWVkCkBAIC0yMTksNyArMjI3LDcgQEAgaW50IGlwNl94bWl0KGNvbnN0IHN0 cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGZsb3dpNiAqZmw2LAog CQlobGltaXQgPSBpcDZfZHN0X2hvcGxpbWl0KGRzdCk7CiAKIAlpcDZfZmxvd19oZHIoaGRyLCB0 Y2xhc3MsIGlwNl9tYWtlX2Zsb3dsYWJlbChuZXQsIHNrYiwgZmw2LT5mbG93bGFiZWwsCi0JCQkJ CQkgICAgIG5wLT5hdXRvZmxvd2xhYmVsLCBmbDYpKTsKKwkJCQlpcDZfYXV0b2Zsb3dsYWJlbChu ZXQsIG5wKSwgZmw2KSk7CiAKIAloZHItPnBheWxvYWRfbGVuID0gaHRvbnMoc2VnX2xlbik7CiAJ aGRyLT5uZXh0aGRyID0gcHJvdG87CkBAIC0xNjkxLDcgKzE2OTksNyBAQCBzdHJ1Y3Qgc2tfYnVm ZiAqX19pcDZfbWFrZV9za2Ioc3RydWN0IHNvY2sgKnNrLAogCiAJaXA2X2Zsb3dfaGRyKGhkciwg djZfY29yay0+dGNsYXNzLAogCQkgICAgIGlwNl9tYWtlX2Zsb3dsYWJlbChuZXQsIHNrYiwgZmw2 LT5mbG93bGFiZWwsCi0JCQkJCW5wLT5hdXRvZmxvd2xhYmVsLCBmbDYpKTsKKwkJCQkJaXA2X2F1 dG9mbG93bGFiZWwobmV0LCBucCksIGZsNikpOwogCWhkci0+aG9wX2xpbWl0ID0gdjZfY29yay0+ aG9wX2xpbWl0OwogCWhkci0+bmV4dGhkciA9IHByb3RvOwogCWhkci0+c2FkZHIgPSBmbDYtPnNh ZGRyOwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvaXB2Nl9zb2NrZ2x1ZS5jIGIvbmV0L2lwdjYvaXB2 Nl9zb2NrZ2x1ZS5jCmluZGV4IDM4YmVlMTcuLjZlMzg3MWMgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2 L2lwdjZfc29ja2dsdWUuYworKysgYi9uZXQvaXB2Ni9pcHY2X3NvY2tnbHVlLmMKQEAgLTg3NCw2 ICs4NzQsNyBAQCBzdGF0aWMgaW50IGRvX2lwdjZfc2V0c29ja29wdChzdHJ1Y3Qgc29jayAqc2ss IGludCBsZXZlbCwgaW50IG9wdG5hbWUsCiAJCWJyZWFrOwogCWNhc2UgSVBWNl9BVVRPRkxPV0xB QkVMOgogCQlucC0+YXV0b2Zsb3dsYWJlbCA9IHZhbGJvb2w7CisJCW5wLT5hdXRvZmxvd2xhYmVs X3NldCA9IDE7CiAJCXJldHYgPSAwOwogCQlicmVhazsKIAl9Ci0tIAoyLjkuNQoKCkZyb20gNTg0 NDhiNDdkM2E1ZDg5N2I3NzkyMzRiZjE5NThhN2JkZTJhOTI4YiBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogIk1pY2hhZWwgUy4gVHNpcmtpbiIgPG1zdEByZWRoYXQuY29tPgpEYXRlOiBU dWUsIDUgRGVjIDIwMTcgMjE6Mjk6MzcgKzAyMDAKU3ViamVjdDogW1BBVENIIDA4LzMzXSBwdHJf cmluZzogYWRkIGJhcnJpZXJzCgpbIFVwc3RyZWFtIGNvbW1pdCBhOGNlYjVkYmZkZTEwOTJiNDY2 OTM2YmNhMGZmM2JlMTI3ZWNmMzhlIF0KClVzZXJzIG9mIHB0cl9yaW5nIGV4cGVjdCB0aGF0IGl0 J3Mgc2FmZSB0byBnaXZlIHRoZQpkYXRhIHN0cnVjdHVyZSBhIHBvaW50ZXIgYW5kIGhhdmUgaXQg YmUgYXZhaWxhYmxlCnRvIGNvbnN1bWVycywgYnV0IHRoYXQgYWN0dWFsbHkgcmVxdWlyZXMgYW4g c21iX3dtYgpvciBhIHN0cm9uZ2VyIGJhcnJpZXIuCgpJbiBhYnNlbmNlIG9mIHN1Y2ggYmFycmll cnMgYW5kIG9uIGFyY2hpdGVjdHVyZXMgdGhhdCByZW9yZGVyIHdyaXRlcywKY29uc3VtZXIgbWln aHQgcmVhZCBhbiB1bj1pbml0aWFsaXplZCB2YWx1ZSBmcm9tIGFuIHNrYiBwb2ludGVyIHN0b3Jl ZAppbiB0aGUgc2tiIGFycmF5LiAgVGhpcyB3YXMgb2JzZXJ2ZWQgY2F1c2luZyBjcmFzaGVzLgoK VG8gZml4LCBhZGQgbWVtb3J5IGJhcnJpZXJzLiAgVGhlIGJhcnJpZXIgd2UgdXNlIGlzIGEgd21i LCB0aGUKYXNzdW1wdGlvbiBiZWluZyB0aGF0IHByb2R1Y2VycyBkbyBub3QgbmVlZCB0byByZWFk IHRoZSB2YWx1ZSBzbyB3ZSBkbwpub3QgbmVlZCB0byBvcmRlciB0aGVzZSByZWFkcy4KClJlcG9y dGVkLWJ5OiBHZW9yZ2UgQ2hlcmlhbiA8Z2VvcmdlLmNoZXJpYW5AY2F2aXVtLmNvbT4KU3VnZ2Vz dGVkLWJ5OiBKYXNvbiBXYW5nIDxqYXNvd2FuZ0ByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBN aWNoYWVsIFMuIFRzaXJraW4gPG1zdEByZWRoYXQuY29tPgpBY2tlZC1ieTogSmFzb24gV2FuZyA8 amFzb3dhbmdAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZl bUBkYXZlbWxvZnQubmV0PgotLS0KIGluY2x1ZGUvbGludXgvcHRyX3JpbmcuaCB8IDkgKysrKysr KysrCiAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvaW5jbHVk ZS9saW51eC9wdHJfcmluZy5oIGIvaW5jbHVkZS9saW51eC9wdHJfcmluZy5oCmluZGV4IGI4MzUw N2MuLmUzOGY0NzEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvcHRyX3JpbmcuaAorKysgYi9p bmNsdWRlL2xpbnV4L3B0cl9yaW5nLmgKQEAgLTk5LDEyICs5OSwxOCBAQCBzdGF0aWMgaW5saW5l IGJvb2wgcHRyX3JpbmdfZnVsbF9iaChzdHJ1Y3QgcHRyX3JpbmcgKnIpCiAKIC8qIE5vdGU6IGNh bGxlcnMgaW52b2tpbmcgdGhpcyBpbiBhIGxvb3AgbXVzdCB1c2UgYSBjb21waWxlciBiYXJyaWVy LAogICogZm9yIGV4YW1wbGUgY3B1X3JlbGF4KCkuIENhbGxlcnMgbXVzdCBob2xkIHByb2R1Y2Vy X2xvY2suCisgKiBDYWxsZXJzIGFyZSByZXNwb25zaWJsZSBmb3IgbWFraW5nIHN1cmUgcG9pbnRl ciB0aGF0IGlzIGJlaW5nIHF1ZXVlZAorICogcG9pbnRzIHRvIGEgdmFsaWQgZGF0YS4KICAqLwog c3RhdGljIGlubGluZSBpbnQgX19wdHJfcmluZ19wcm9kdWNlKHN0cnVjdCBwdHJfcmluZyAqciwg dm9pZCAqcHRyKQogewogCWlmICh1bmxpa2VseSghci0+c2l6ZSkgfHwgci0+cXVldWVbci0+cHJv ZHVjZXJdKQogCQlyZXR1cm4gLUVOT1NQQzsKIAorCS8qIE1ha2Ugc3VyZSB0aGUgcG9pbnRlciB3 ZSBhcmUgc3RvcmluZyBwb2ludHMgdG8gYSB2YWxpZCBkYXRhLiAqLworCS8qIFBhaXJzIHdpdGgg c21wX3JlYWRfYmFycmllcl9kZXBlbmRzIGluIF9fcHRyX3JpbmdfY29uc3VtZS4gKi8KKwlzbXBf d21iKCk7CisKIAlyLT5xdWV1ZVtyLT5wcm9kdWNlcisrXSA9IHB0cjsKIAlpZiAodW5saWtlbHko ci0+cHJvZHVjZXIgPj0gci0+c2l6ZSkpCiAJCXItPnByb2R1Y2VyID0gMDsKQEAgLTI0NCw2ICsy NTAsOSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgKl9fcHRyX3JpbmdfY29uc3VtZShzdHJ1Y3QgcHRy X3JpbmcgKnIpCiAJaWYgKHB0cikKIAkJX19wdHJfcmluZ19kaXNjYXJkX29uZShyKTsKIAorCS8q IE1ha2Ugc3VyZSBhbnlvbmUgYWNjZXNzaW5nIGRhdGEgdGhyb3VnaCB0aGUgcG9pbnRlciBpcyB1 cCB0byBkYXRlLiAqLworCS8qIFBhaXJzIHdpdGggc21wX3dtYiBpbiBfX3B0cl9yaW5nX3Byb2R1 Y2UuICovCisJc21wX3JlYWRfYmFycmllcl9kZXBlbmRzKCk7CiAJcmV0dXJuIHB0cjsKIH0KIAot LSAKMi45LjUKCgpGcm9tIGUzZDZjYjVjODEyYjlkZDViZjEwNjUxYzgyZTNiMzVhNTIzN2NlNWEg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEF2aW5hc2ggUmVwYWthIDxhdmluYXNoLnJl cGFrYUBvcmFjbGUuY29tPgpEYXRlOiBUaHUsIDIxIERlYyAyMDE3IDIwOjE3OjA0IC0wODAwClN1 YmplY3Q6IFtQQVRDSCAwOS8zM10gUkRTOiBDaGVjayBjbXNnX2xlbiBiZWZvcmUgZGVyZWZlcmVu Y2luZyBDTVNHX0RBVEEKClsgVXBzdHJlYW0gY29tbWl0IDE0ZTEzOGE4NmY2MzQ3YzYxOTlmNjEw NTc2ZDJlMTFjMDNiZWM1ZjAgXQoKUkRTIGN1cnJlbnRseSBkb2Vzbid0IGNoZWNrIGlmIHRoZSBs ZW5ndGggb2YgdGhlIGNvbnRyb2wgbWVzc2FnZSBpcwpsYXJnZSBlbm91Z2ggdG8gaG9sZCB0aGUg cmVxdWlyZWQgZGF0YSwgYmVmb3JlIGRlcmVmZXJlbmNpbmcgdGhlIGNvbnRyb2wKbWVzc2FnZSBk YXRhLiBUaGlzIHJlc3VsdHMgaW4gZm9sbG93aW5nIGNyYXNoOgoKQlVHOiBLQVNBTjogc3RhY2st b3V0LW9mLWJvdW5kcyBpbiByZHNfcmRtYV9ieXRlcyBuZXQvcmRzL3NlbmQuYzoxMDEzCltpbmxp bmVdCkJVRzogS0FTQU46IHN0YWNrLW91dC1vZi1ib3VuZHMgaW4gcmRzX3NlbmRtc2crMHgxZjAy LzB4MWY5MApuZXQvcmRzL3NlbmQuYzoxMDY2ClJlYWQgb2Ygc2l6ZSA4IGF0IGFkZHIgZmZmZjg4 MDFjOTI4ZmI3MCBieSB0YXNrIHN5emthbGxlcjQ1NTAwNi8zMTU3CgpDUFU6IDAgUElEOiAzMTU3 IENvbW06IHN5emthbGxlcjQ1NTAwNiBOb3QgdGFpbnRlZCA0LjE1LjAtcmMzKyAjMTYxCkhhcmR3 YXJlIG5hbWU6IEdvb2dsZSBHb29nbGUgQ29tcHV0ZSBFbmdpbmUvR29vZ2xlIENvbXB1dGUgRW5n aW5lLCBCSU9TCkdvb2dsZSAwMS8wMS8yMDExCkNhbGwgVHJhY2U6CiBfX2R1bXBfc3RhY2sgbGli L2R1bXBfc3RhY2suYzoxNyBbaW5saW5lXQogZHVtcF9zdGFjaysweDE5NC8weDI1NyBsaWIvZHVt cF9zdGFjay5jOjUzCiBwcmludF9hZGRyZXNzX2Rlc2NyaXB0aW9uKzB4NzMvMHgyNTAgbW0va2Fz YW4vcmVwb3J0LmM6MjUyCiBrYXNhbl9yZXBvcnRfZXJyb3IgbW0va2FzYW4vcmVwb3J0LmM6MzUx IFtpbmxpbmVdCiBrYXNhbl9yZXBvcnQrMHgyNWIvMHgzNDAgbW0va2FzYW4vcmVwb3J0LmM6NDA5 CiBfX2FzYW5fcmVwb3J0X2xvYWQ4X25vYWJvcnQrMHgxNC8weDIwIG1tL2thc2FuL3JlcG9ydC5j OjQzMAogcmRzX3JkbWFfYnl0ZXMgbmV0L3Jkcy9zZW5kLmM6MTAxMyBbaW5saW5lXQogcmRzX3Nl bmRtc2crMHgxZjAyLzB4MWY5MCBuZXQvcmRzL3NlbmQuYzoxMDY2CiBzb2NrX3NlbmRtc2dfbm9z ZWMgbmV0L3NvY2tldC5jOjYyOCBbaW5saW5lXQogc29ja19zZW5kbXNnKzB4Y2EvMHgxMTAgbmV0 L3NvY2tldC5jOjYzOAogX19fc3lzX3NlbmRtc2crMHgzMjAvMHg4YjAgbmV0L3NvY2tldC5jOjIw MTgKIF9fc3lzX3NlbmRtbXNnKzB4MWVlLzB4NjIwIG5ldC9zb2NrZXQuYzoyMTA4CiBTWVNDX3Nl bmRtbXNnIG5ldC9zb2NrZXQuYzoyMTM5IFtpbmxpbmVdCiBTeVNfc2VuZG1tc2crMHgzNS8weDYw IG5ldC9zb2NrZXQuYzoyMTM0CiBlbnRyeV9TWVNDQUxMXzY0X2Zhc3RwYXRoKzB4MWYvMHg5NgpS SVA6IDAwMzM6MHg0M2ZlNDkKUlNQOiAwMDJiOjAwMDA3ZmZmYmUyNDRhZDggRUZMQUdTOiAwMDAw MDIxNyBPUklHX1JBWDogMDAwMDAwMDAwMDAwMDEzMwpSQVg6IGZmZmZmZmZmZmZmZmZmZGEgUkJY OiAwMDAwMDAwMDAwNDAwMmM4IFJDWDogMDAwMDAwMDAwMDQzZmU0OQpSRFg6IDAwMDAwMDAwMDAw MDAwMDEgUlNJOiAwMDAwMDAwMDIwMjBjMDAwIFJESTogMDAwMDAwMDAwMDAwMDAwMwpSQlA6IDAw MDAwMDAwMDA2Y2EwMTggUjA4OiAwMDAwMDAwMDAwMDAwMDAwIFIwOTogMDAwMDAwMDAwMDAwMDAw MApSMTA6IDAwMDAwMDAwMDAwMDAwMDAgUjExOiAwMDAwMDAwMDAwMDAwMjE3IFIxMjogMDAwMDAw MDAwMDQwMTdiMApSMTM6IDAwMDAwMDAwMDA0MDE4NDAgUjE0OiAwMDAwMDAwMDAwMDAwMDAwIFIx NTogMDAwMDAwMDAwMDAwMDAwMAoKVG8gZml4IHRoaXMsIHdlIHZlcmlmeSB0aGF0IHRoZSBjbXNn X2xlbiBpcyBsYXJnZSBlbm91Z2ggdG8gaG9sZCB0aGUKZGF0YSB0byBiZSByZWFkLCBiZWZvcmUg cHJvY2VlZGluZyBmdXJ0aGVyLgoKUmVwb3J0ZWQtYnk6IHN5emJvdCA8c3l6a2FsbGVyLWJ1Z3NA Z29vZ2xlZ3JvdXBzLmNvbT4KU2lnbmVkLW9mZi1ieTogQXZpbmFzaCBSZXBha2EgPGF2aW5hc2gu cmVwYWthQG9yYWNsZS5jb20+CkFja2VkLWJ5OiBTYW50b3NoIFNoaWxpbWthciA8c2FudG9zaC5z aGlsaW1rYXJAb3JhY2xlLmNvbT4KUmV2aWV3ZWQtYnk6IFl1dmFsIFNoYWlhIDx5dXZhbC5zaGFp YUBvcmFjbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogbmV0L3Jkcy9zZW5kLmMgfCAzICsrKwogMSBmaWxlIGNoYW5nZWQsIDMg aW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC9yZHMvc2VuZC5jIGIvbmV0L3Jkcy9zZW5k LmMKaW5kZXggYWQyNDdkYy4uZWY1M2QxNjQgMTAwNjQ0Ci0tLSBhL25ldC9yZHMvc2VuZC5jCisr KyBiL25ldC9yZHMvc2VuZC5jCkBAIC0xMDA2LDYgKzEwMDYsOSBAQCBzdGF0aWMgaW50IHJkc19y ZG1hX2J5dGVzKHN0cnVjdCBtc2doZHIgKm1zZywgc2l6ZV90ICpyZG1hX2J5dGVzKQogCQkJY29u dGludWU7CiAKIAkJaWYgKGNtc2ctPmNtc2dfdHlwZSA9PSBSRFNfQ01TR19SRE1BX0FSR1MpIHsK KwkJCWlmIChjbXNnLT5jbXNnX2xlbiA8CisJCQkgICAgQ01TR19MRU4oc2l6ZW9mKHN0cnVjdCBy ZHNfcmRtYV9hcmdzKSkpCisJCQkJcmV0dXJuIC1FSU5WQUw7CiAJCQlhcmdzID0gQ01TR19EQVRB KGNtc2cpOwogCQkJKnJkbWFfYnl0ZXMgKz0gYXJncy0+cmVtb3RlX3ZlYy5ieXRlczsKIAkJfQot LSAKMi45LjUKCgpGcm9tIDM1MzJjNTcyOTM0NmNjOGI1NTU5ZjI3MTZmY2RmNDBkNGFlMjVkMmMg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE5lYWwgQ2FyZHdlbGwgPG5jYXJkd2VsbEBn b29nbGUuY29tPgpEYXRlOiBUaHUsIDcgRGVjIDIwMTcgMTI6NDM6MzAgLTA1MDAKU3ViamVjdDog W1BBVENIIDEwLzMzXSB0Y3BfYmJyOiByZWNvcmQgImZ1bGwgYncgcmVhY2hlZCIgZGVjaXNpb24g aW4gbmV3CiBmdWxsX2J3X3JlYWNoZWQgYml0CgpbIFVwc3RyZWFtIGNvbW1pdCBjNTg5ZTY5YjUw OGQyOWVkOGU2NDRkZmVjZGE0NTNmNzFjMDJlYzI3IF0KClRoaXMgY29tbWl0IHJlY29yZHMgdGhl ICJmdWxsIGJ3IHJlYWNoZWQiIGRlY2lzaW9uIGluIGEgbmV3CmZ1bGxfYndfcmVhY2hlZCBiaXQu IFRoaXMgaXMgYSBwdXJlIHJlZmFjdG9yIHRoYXQgZG9lcyBub3QgY2hhbmdlIHRoZQpjdXJyZW50 IGJlaGF2aW9yLCBidXQgZW5hYmxlcyBzdWJzZXF1ZW50IGZpeGVzIGFuZCBpbXByb3ZlbWVudHMu CgpJbiBwYXJ0aWN1bGFyLCB0aGlzIGVuYWJsZXMgc2ltcGxlIGFuZCBjbGVhbiBmaXhlcyBiZWNh dXNlIHRoZSBmdWxsX2J3CmFuZCBmdWxsX2J3X2NudCBjYW4gYmUgdW5jb25kaXRpb25hbGx5IHpl cm9lZCB3aXRob3V0IHdvcnJ5aW5nIGFib3V0CmZvcmdldHRpbmcgdGhhdCB3ZSBlc3RpbWF0ZWQg d2UgZmlsbGVkIHRoZSBwaXBlIGluIFN0YXJ0dXAuIEFuZCBpdAplbmFibGVzIGZ1dHVyZSBpbXBy b3ZlbWVudHMgYmVjYXVzZSBtdWx0aXBsZSBjb2RlIHBhdGhzIGNhbiBiZSB1c2VkCmZvciBlc3Rp bWF0aW5nIHRoYXQgd2UgZmlsbGVkIHRoZSBwaXBlIGluIFN0YXJ0dXA7IGFueSBuZXcgY29kZSBw YXRocwpvbmx5IG5lZWQgdG8gc2V0IHRoaXMgYml0IHdoZW4gdGhleSB0aGluayB0aGUgcGlwZSBp cyBmdWxsLgoKTm90ZSB0aGF0IHRoaXMgZml4IGludGVudGlvbmFsbHkgcmVkdWNlcyB0aGUgd2lk dGggb2YgdGhlIGZ1bGxfYndfY250CmNvdW50ZXIsIHNpbmNlIHdlIGhhdmUgbmV2ZXIgdXNlZCB0 aGUgbW9zdCBzaWduaWZpY2FudCBiaXQuCgpTaWduZWQtb2ZmLWJ5OiBOZWFsIENhcmR3ZWxsIDxu Y2FyZHdlbGxAZ29vZ2xlLmNvbT4KUmV2aWV3ZWQtYnk6IFl1Y2h1bmcgQ2hlbmcgPHljaGVuZ0Bn b29nbGUuY29tPgpBY2tlZC1ieTogU29oZWlsIEhhc3NhcyBZZWdhbmVoIDxzb2hlaWxAZ29vZ2xl LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIG5ldC9pcHY0L3RjcF9iYnIuYyB8IDcgKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDUg aW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3Bf YmJyLmMgYi9uZXQvaXB2NC90Y3BfYmJyLmMKaW5kZXggY2I4ZGIzNC4uOTdmOWNhYyAxMDA2NDQK LS0tIGEvbmV0L2lwdjQvdGNwX2Jici5jCisrKyBiL25ldC9pcHY0L3RjcF9iYnIuYwpAQCAtODEs NyArODEsOCBAQCBzdHJ1Y3QgYmJyIHsKIAl1MzIJbHRfbGFzdF9sb3N0OwkgICAgIC8qIExUIGlu dHZsIHN0YXJ0OiB0cC0+bG9zdCAqLwogCXUzMglwYWNpbmdfZ2FpbjoxMCwJLyogY3VycmVudCBn YWluIGZvciBzZXR0aW5nIHBhY2luZyByYXRlICovCiAJCWN3bmRfZ2FpbjoxMCwJLyogY3VycmVu dCBnYWluIGZvciBzZXR0aW5nIGN3bmQgKi8KLQkJZnVsbF9id19jbnQ6MywJLyogbnVtYmVyIG9m IHJvdW5kcyB3aXRob3V0IGxhcmdlIGJ3IGdhaW5zICovCisJCWZ1bGxfYndfcmVhY2hlZDoxLCAg IC8qIHJlYWNoZWQgZnVsbCBidyBpbiBTdGFydHVwPyAqLworCQlmdWxsX2J3X2NudDoyLAkvKiBu dW1iZXIgb2Ygcm91bmRzIHdpdGhvdXQgbGFyZ2UgYncgZ2FpbnMgKi8KIAkJY3ljbGVfaWR4OjMs CS8qIGN1cnJlbnQgaW5kZXggaW4gcGFjaW5nX2dhaW4gY3ljbGUgYXJyYXkgKi8KIAkJaGFzX3Nl ZW5fcnR0OjEsIC8qIGhhdmUgd2Ugc2VlbiBhbiBSVFQgc2FtcGxlIHlldD8gKi8KIAkJdW51c2Vk X2I6NTsKQEAgLTE1MSw3ICsxNTIsNyBAQCBzdGF0aWMgYm9vbCBiYnJfZnVsbF9id19yZWFjaGVk KGNvbnN0IHN0cnVjdCBzb2NrICpzaykKIHsKIAljb25zdCBzdHJ1Y3QgYmJyICpiYnIgPSBpbmV0 X2Nza19jYShzayk7CiAKLQlyZXR1cm4gYmJyLT5mdWxsX2J3X2NudCA+PSBiYnJfZnVsbF9id19j bnQ7CisJcmV0dXJuIGJici0+ZnVsbF9id19yZWFjaGVkOwogfQogCiAvKiBSZXR1cm4gdGhlIHdp bmRvd2VkIG1heCByZWNlbnQgYmFuZHdpZHRoIHNhbXBsZSwgaW4gcGt0cy91UyA8PCBCV19TQ0FM RS4gKi8KQEAgLTY4OCw2ICs2ODksNyBAQCBzdGF0aWMgdm9pZCBiYnJfY2hlY2tfZnVsbF9id19y ZWFjaGVkKHN0cnVjdCBzb2NrICpzaywKIAkJcmV0dXJuOwogCX0KIAkrK2Jici0+ZnVsbF9id19j bnQ7CisJYmJyLT5mdWxsX2J3X3JlYWNoZWQgPSBiYnItPmZ1bGxfYndfY250ID49IGJicl9mdWxs X2J3X2NudDsKIH0KIAogLyogSWYgcGlwZSBpcyBwcm9iYWJseSBmdWxsLCBkcmFpbiB0aGUgcXVl dWUgYW5kIHRoZW4gZW50ZXIgc3RlYWR5LXN0YXRlLiAqLwpAQCAtODIxLDYgKzgyMyw3IEBAIHN0 YXRpYyB2b2lkIGJicl9pbml0KHN0cnVjdCBzb2NrICpzaykKIAliYnItPnJlc3RvcmVfY3duZCA9 IDA7CiAJYmJyLT5yb3VuZF9zdGFydCA9IDA7CiAJYmJyLT5pZGxlX3Jlc3RhcnQgPSAwOworCWJi ci0+ZnVsbF9id19yZWFjaGVkID0gMDsKIAliYnItPmZ1bGxfYncgPSAwOwogCWJici0+ZnVsbF9i d19jbnQgPSAwOwogCWJici0+Y3ljbGVfbXN0YW1wLnY2NCA9IDA7Ci0tIAoyLjkuNQoKCkZyb20g NTEwNDk5ZmMxYzhhODMzYmI1NWYyYjcxOTQ1M2NjOTQ4MTgxMzEwMiBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogQ2hyaXN0b3BoIFBhYXNjaCA8Y3BhYXNjaEBhcHBsZS5jb20+CkRhdGU6 IE1vbiwgMTEgRGVjIDIwMTcgMDA6MDU6NDYgLTA4MDAKU3ViamVjdDogW1BBVENIIDExLzMzXSB0 Y3AgbWQ1c2lnOiBVc2Ugc2tiJ3Mgc2FkZHIgd2hlbiByZXBseWluZyB0byBhbgogaW5jb21pbmcg c2VnbWVudAoKWyBVcHN0cmVhbSBjb21taXQgMzA3OTFhYzQxOTI3ZWJkM2U3NTQ4NmY5NTA0YjZk MjI4MDQ2M2JmMCBdCgpUaGUgTUQ1LWtleSB0aGF0IGJlbG9uZ3MgdG8gYSBjb25uZWN0aW9uIGlz IGlkZW50aWZpZWQgYnkgdGhlIHBlZXIncwpJUC1hZGRyZXNzLiBXaGVuIHdlIGFyZSBpbiB0Y3Bf djQoNilfcmVxc2tfc2VuZF9hY2soKSwgd2UgYXJlIHJlcGx5aW5nCnRvIGFuIGluY29taW5nIHNl Z21lbnQgZnJvbSB0Y3BfY2hlY2tfcmVxKCkgdGhhdCBmYWlsZWQgdGhlIHNlcS1udW1iZXIKY2hl Y2tzLgoKVGh1cywgdG8gZmluZCB0aGUgY29ycmVjdCBrZXksIHdlIG5lZWQgdG8gdXNlIHRoZSBz a2IncyBzYWRkciBhbmQgbm90CnRoZSBkYWRkci4KClRoaXMgYnVnIHNlZW1zIHRvIGhhdmUgYmVl biB0aGVyZSBzaW5jZSBxdWl0ZSBhIHdoaWxlLCBidXQgcHJvYmFibHkgZ290CnVubm90aWNlZCBi ZWNhdXNlIHRoZSBjb25zZXF1ZW5jZXMgYXJlIG5vdCBjYXRhc3Ryb3BoaWMuIFdlIHdpbGwgY2Fs bAp0Y3BfdjRfcmVxc2tfc2VuZF9hY2sgb25seSB0byBzZW5kIGEgY2hhbGxlbmdlLUFDSyBiYWNr IHRvIHRoZSBwZWVyLAp0aHVzIHRoZSBjb25uZWN0aW9uIGRvZXNuJ3QgcmVhbGx5IGZhaWwuCgpG aXhlczogOTUwMWY5NzIyOTIyICgidGNwIG1kNXNpZzogTGV0IHRoZSBjYWxsZXIgcGFzcyBhcHBy b3ByaWF0ZSBrZXkgZm9yIHRjcF92ezQsNn1fZG9fY2FsY19tZDVfaGFzaCgpLiIpClNpZ25lZC1v ZmYtYnk6IENocmlzdG9waCBQYWFzY2ggPGNwYWFzY2hAYXBwbGUuY29tPgpSZXZpZXdlZC1ieTog RXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvdGNwX2lwdjQuYyB8 IDIgKy0KIG5ldC9pcHY2L3RjcF9pcHY2LmMgfCAyICstCiAyIGZpbGVzIGNoYW5nZWQsIDIgaW5z ZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3BfaXB2 NC5jIGIvbmV0L2lwdjQvdGNwX2lwdjQuYwppbmRleCBkNTc3ZWMwLi5iMzk2MDczIDEwMDY0NAot LS0gYS9uZXQvaXB2NC90Y3BfaXB2NC5jCisrKyBiL25ldC9pcHY0L3RjcF9pcHY0LmMKQEAgLTgy OCw3ICs4MjgsNyBAQCBzdGF0aWMgdm9pZCB0Y3BfdjRfcmVxc2tfc2VuZF9hY2soY29uc3Qgc3Ry dWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQkJdGNwX3RpbWVfc3RhbXAsCiAJ CQlyZXEtPnRzX3JlY2VudCwKIAkJCTAsCi0JCQl0Y3BfbWQ1X2RvX2xvb2t1cChzaywgKHVuaW9u IHRjcF9tZDVfYWRkciAqKSZpcF9oZHIoc2tiKS0+ZGFkZHIsCisJCQl0Y3BfbWQ1X2RvX2xvb2t1 cChzaywgKHVuaW9uIHRjcF9tZDVfYWRkciAqKSZpcF9oZHIoc2tiKS0+c2FkZHIsCiAJCQkJCSAg QUZfSU5FVCksCiAJCQlpbmV0X3JzayhyZXEpLT5ub19zcmNjaGVjayA/IElQX1JFUExZX0FSR19O T1NSQ0NIRUNLIDogMCwKIAkJCWlwX2hkcihza2IpLT50b3MpOwpkaWZmIC0tZ2l0IGEvbmV0L2lw djYvdGNwX2lwdjYuYyBiL25ldC9pcHY2L3RjcF9pcHY2LmMKaW5kZXggN2FjMjM2NS4uZWI2MjQ1 NCAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvdGNwX2lwdjYuYworKysgYi9uZXQvaXB2Ni90Y3BfaXB2 Ni5jCkBAIC05NjIsNyArOTYyLDcgQEAgc3RhdGljIHZvaWQgdGNwX3Y2X3JlcXNrX3NlbmRfYWNr KGNvbnN0IHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJCXRjcF9yc2so cmVxKS0+cmN2X254dCwKIAkJCXJlcS0+cnNrX3Jjdl93bmQgPj4gaW5ldF9yc2socmVxKS0+cmN2 X3dzY2FsZSwKIAkJCXRjcF90aW1lX3N0YW1wLCByZXEtPnRzX3JlY2VudCwgc2stPnNrX2JvdW5k X2Rldl9pZiwKLQkJCXRjcF92Nl9tZDVfZG9fbG9va3VwKHNrLCAmaXB2Nl9oZHIoc2tiKS0+ZGFk ZHIpLAorCQkJdGNwX3Y2X21kNV9kb19sb29rdXAoc2ssICZpcHY2X2hkcihza2IpLT5zYWRkciks CiAJCQkwLCAwKTsKIH0KIAotLSAKMi45LjUKCgpGcm9tIGRlY2IxZWIxYmQ2ZTQ1MDk5N2YxYmMw MjVlMjY0N2ZjYjY2MjU4NDEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEJyaWFuIEtp bmcgPGJya2luZ0BsaW51eC52bmV0LmlibS5jb20+CkRhdGU6IEZyaSwgMTUgRGVjIDIwMTcgMTU6 MjE6NTAgLTA2MDAKU3ViamVjdDogW1BBVENIIDEyLzMzXSB0ZzM6IEZpeCByeCBoYW5nIG9uIE1U VSBjaGFuZ2Ugd2l0aCA1NzE3LzU3MTkKClsgVXBzdHJlYW0gY29tbWl0IDc0OGEyNDBjNTg5ODI0 ZTkxMjFiZWZiMWNiYTUzNDFjMzE5ODg1YmMgXQoKVGhpcyBmaXhlcyBhIGhhbmcgaXNzdWUgc2Vl biB3aGVuIGNoYW5naW5nIHRoZSBNVFUgc2l6ZSBmcm9tIDE1MDAgTVRVCnRvIDkwMDAgTVRVIG9u IGJvdGggNTcxNyBhbmQgNTcxOSBjaGlwcy4gSW4gZGlzY3Vzc2lvbiB3aXRoIEJyb2FkY29tLAp0 aGV5J3ZlIGluZGljYXRlZCB0aGF0IHRoZXNlIGNoaXBzZXRzIGhhdmUgdGhlIHNhbWUgcGh5IGFz IHRoZSA1Nzc2NgpjaGlwc2V0LCBzbyB0aGUgc2FtZSB3b3JrYXJvdW5kcyBhcHBseS4gVGhpcyBo YXMgYmVlbiB0ZXN0ZWQgYnkgSUJNCm9uIGJvdGggUG93ZXIgOCBhbmQgUG93ZXIgOSBzeXN0ZW1z IGFzIHdlbGwgYXMgYnkgQnJvYWRjb20gb24geDg2CmhhcmR3YXJlIGFuZCBoYXMgYmVlbiBjb25m aXJtZWQgdG8gcmVzb2x2ZSB0aGUgaGFuZyBpc3N1ZS4KClNpZ25lZC1vZmYtYnk6IEJyaWFuIEtp bmcgPGJya2luZ0BsaW51eC52bmV0LmlibS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9h ZGNvbS90ZzMuYyB8IDQgKysrLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMSBk ZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL3Rn My5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vdGczLmMKaW5kZXggZWRhZTJkYy4u YmIyMmQzMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vdGczLmMK KysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vdGczLmMKQEAgLTE0MjI2LDcgKzE0 MjI2LDkgQEAgc3RhdGljIGludCB0ZzNfY2hhbmdlX210dShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2 LCBpbnQgbmV3X210dSkKIAkvKiBSZXNldCBQSFksIG90aGVyd2lzZSB0aGUgcmVhZCBETUEgZW5n aW5lIHdpbGwgYmUgaW4gYSBtb2RlIHRoYXQKIAkgKiBicmVha3MgYWxsIHJlcXVlc3RzIHRvIDI1 NiBieXRlcy4KIAkgKi8KLQlpZiAodGczX2FzaWNfcmV2KHRwKSA9PSBBU0lDX1JFVl81Nzc2NikK KwlpZiAodGczX2FzaWNfcmV2KHRwKSA9PSBBU0lDX1JFVl81Nzc2NiB8fAorCSAgICB0ZzNfYXNp Y19yZXYodHApID09IEFTSUNfUkVWXzU3MTcgfHwKKwkgICAgdGczX2FzaWNfcmV2KHRwKSA9PSBB U0lDX1JFVl81NzE5KQogCQlyZXNldF9waHkgPSB0cnVlOwogCiAJZXJyID0gdGczX3Jlc3RhcnRf aHcodHAsIHJlc2V0X3BoeSk7Ci0tIAoyLjkuNQoKCkZyb20gODA4NWFhMWRmODQ3NmYxZjcxMDgy YWZlNzNjYTg1NzljOTgxYWFiYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTW9oYW1l ZCBHaGFubmFtIDxzaW1vLmdoYW5uYW1AZ21haWwuY29tPgpEYXRlOiBTdW4sIDEwIERlYyAyMDE3 IDAzOjUwOjU4ICswMDAwClN1YmplY3Q6IFtQQVRDSCAxMy8zM10gbmV0OiBpcHY0OiBmaXggZm9y IGEgcmFjZSBjb25kaXRpb24gaW4gcmF3X3NlbmRtc2cKClsgVXBzdHJlYW0gY29tbWl0IDhmNjU5 YTAzYTBiYTkyODliOWFlYjliNDQ3MGU2ZmIyNjNkNmY0ODMgXQoKaW5ldC0+aGRyaW5jbCBpcyBy YWN5LCBhbmQgY291bGQgbGVhZCB0byB1bmluaXRpYWxpemVkIHN0YWNrIHBvaW50ZXIKdXNhZ2Us IHNvIGl0cyB2YWx1ZSBzaG91bGQgYmUgcmVhZCBvbmx5IG9uY2UuCgpGaXhlczogYzAwOGJhNWJk YzlmICgiaXB2NDogQXZvaWQgcmVhZGluZyB1c2VyIGlvdiB0d2ljZSBhZnRlciByYXdfcHJvYmVf cHJvdG9fb3B0IikKU2lnbmVkLW9mZi1ieTogTW9oYW1lZCBHaGFubmFtIDxzaW1vLmdoYW5uYW1A Z21haWwuY29tPgpSZXZpZXdlZC1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29t PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0t LQogbmV0L2lwdjQvcmF3LmMgfCAxNSArKysrKysrKysrLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAx MCBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3Jh dy5jIGIvbmV0L2lwdjQvcmF3LmMKaW5kZXggOTg3OWI3My4uNTlkODc3MCAxMDA2NDQKLS0tIGEv bmV0L2lwdjQvcmF3LmMKKysrIGIvbmV0L2lwdjQvcmF3LmMKQEAgLTUwMiwxMSArNTAyLDE2IEBA IHN0YXRpYyBpbnQgcmF3X3NlbmRtc2coc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgbXNnaGRyICpt c2csIHNpemVfdCBsZW4pCiAJaW50IGVycjsKIAlzdHJ1Y3QgaXBfb3B0aW9uc19kYXRhIG9wdF9j b3B5OwogCXN0cnVjdCByYXdfZnJhZ192ZWMgcmZ2OworCWludCBoZHJpbmNsOwogCiAJZXJyID0g LUVNU0dTSVpFOwogCWlmIChsZW4gPiAweEZGRkYpCiAJCWdvdG8gb3V0OwogCisJLyogaGRyaW5j bCBzaG91bGQgYmUgUkVBRF9PTkNFKGluZXQtPmhkcmluY2wpCisJICogYnV0IFJFQURfT05DRSgp IGRvZXNuJ3Qgd29yayB3aXRoIGJpdCBmaWVsZHMKKwkgKi8KKwloZHJpbmNsID0gaW5ldC0+aGRy aW5jbDsKIAkvKgogCSAqCUNoZWNrIHRoZSBmbGFncy4KIAkgKi8KQEAgLTU4Miw3ICs1ODcsNyBA QCBzdGF0aWMgaW50IHJhd19zZW5kbXNnKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IG1zZ2hkciAq bXNnLCBzaXplX3QgbGVuKQogCQkvKiBMaW51eCBkb2VzIG5vdCBtYW5nbGUgaGVhZGVycyBvbiBy YXcgc29ja2V0cywKIAkJICogc28gdGhhdCBJUCBvcHRpb25zICsgSVBfSERSSU5DTCBpcyBub24t c2Vuc2UuCiAJCSAqLwotCQlpZiAoaW5ldC0+aGRyaW5jbCkKKwkJaWYgKGhkcmluY2wpCiAJCQln b3RvIGRvbmU7CiAJCWlmIChpcGMub3B0LT5vcHQuc3JyKSB7CiAJCQlpZiAoIWRhZGRyKQpAQCAt NjA0LDEyICs2MDksMTIgQEAgc3RhdGljIGludCByYXdfc2VuZG1zZyhzdHJ1Y3Qgc29jayAqc2ss IHN0cnVjdCBtc2doZHIgKm1zZywgc2l6ZV90IGxlbikKIAogCWZsb3dpNF9pbml0X291dHB1dCgm Zmw0LCBpcGMub2lmLCBzay0+c2tfbWFyaywgdG9zLAogCQkJICAgUlRfU0NPUEVfVU5JVkVSU0Us Ci0JCQkgICBpbmV0LT5oZHJpbmNsID8gSVBQUk9UT19SQVcgOiBzay0+c2tfcHJvdG9jb2wsCisJ CQkgICBoZHJpbmNsID8gSVBQUk9UT19SQVcgOiBzay0+c2tfcHJvdG9jb2wsCiAJCQkgICBpbmV0 X3NrX2Zsb3dpX2ZsYWdzKHNrKSB8Ci0JCQkgICAgKGluZXQtPmhkcmluY2wgPyBGTE9XSV9GTEFH X0tOT1dOX05IIDogMCksCisJCQkgICAgKGhkcmluY2wgPyBGTE9XSV9GTEFHX0tOT1dOX05IIDog MCksCiAJCQkgICBkYWRkciwgc2FkZHIsIDAsIDApOwogCi0JaWYgKCFpbmV0LT5oZHJpbmNsKSB7 CisJaWYgKCFoZHJpbmNsKSB7CiAJCXJmdi5tc2cgPSBtc2c7CiAJCXJmdi5obGVuID0gMDsKIApA QCAtNjM0LDcgKzYzOSw3IEBAIHN0YXRpYyBpbnQgcmF3X3NlbmRtc2coc3RydWN0IHNvY2sgKnNr LCBzdHJ1Y3QgbXNnaGRyICptc2csIHNpemVfdCBsZW4pCiAJCWdvdG8gZG9fY29uZmlybTsKIGJh Y2tfZnJvbV9jb25maXJtOgogCi0JaWYgKGluZXQtPmhkcmluY2wpCisJaWYgKGhkcmluY2wpCiAJ CWVyciA9IHJhd19zZW5kX2hkcmluYyhzaywgJmZsNCwgbXNnLCBsZW4sCiAJCQkJICAgICAgJnJ0 LCBtc2ctPm1zZ19mbGFncywgJmlwYy5zb2NrYyk7CiAKLS0gCjIuOS41CgoKRnJvbSBlY2U5OWM0 OWU3MjQxZjkzOTIwMDc4OTRiOWI5YTI4OGM0NWM5YTc2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBUb2JpYXMgSm9yZGFuIDxUb2JpYXMuSm9yZGFuQGVsZWt0cm9iaXQuY29tPgpEYXRl OiBXZWQsIDYgRGVjIDIwMTcgMTU6MjM6MjMgKzAxMDAKU3ViamVjdDogW1BBVENIIDE0LzMzXSBu ZXQ6IG12bWRpbzogZGlzYWJsZS91bnByZXBhcmUgY2xvY2tzIGluIEVQUk9CRV9ERUZFUgogY2Fz ZQoKWyBVcHN0cmVhbSBjb21taXQgNTg5YmYzMmYwOTg1MjA0MWZiZDNiN2NlMWE5ZTcwM2Y5NWMy MzBiYSBdCgphZGQgYXBwcm9wcmlhdGUgY2FsbHMgdG8gY2xrX2Rpc2FibGVfdW5wcmVwYXJlKCkg YnkganVtcGluZyB0byBvdXRfbWRpbwppbiBjYXNlIG9yaW9uX21kaW9fcHJvYmUoKSByZXR1cm5z IC1FUFJPQkVfREVGRVIuCgpGb3VuZCBieSBMaW51eCBEcml2ZXIgVmVyaWZpY2F0aW9uIHByb2pl Y3QgKGxpbnV4dGVzdGluZy5vcmcpLgoKRml4ZXM6IDNkNjA0ZGExZTk1NCAoIm5ldDogbXZtZGlv OiBnZXQgYW5kIGVuYWJsZSBvcHRpb25hbCBjbG9jayIpClNpZ25lZC1vZmYtYnk6IFRvYmlhcyBK b3JkYW4gPFRvYmlhcy5Kb3JkYW5AZWxla3Ryb2JpdC5jb20+ClJldmlld2VkLWJ5OiBBbmRyZXcg THVubiA8YW5kcmV3QGx1bm4uY2g+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212bWRp by5jIHwgMyArKy0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24o LSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212bWRpby5jIGIv ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdm1kaW8uYwppbmRleCBhMGQxYjA4Li43YWVi N2ZlIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212bWRpby5jCisr KyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZtZGlvLmMKQEAgLTIzMiw3ICsyMzIs OCBAQCBzdGF0aWMgaW50IG9yaW9uX21kaW9fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAq cGRldikKIAkJCWRldi0+cmVncyArIE1WTURJT19FUlJfSU5UX01BU0spOwogCiAJfSBlbHNlIGlm IChkZXYtPmVycl9pbnRlcnJ1cHQgPT0gLUVQUk9CRV9ERUZFUikgewotCQlyZXR1cm4gLUVQUk9C RV9ERUZFUjsKKwkJcmV0ID0gLUVQUk9CRV9ERUZFUjsKKwkJZ290byBvdXRfbWRpbzsKIAl9CiAK IAltdXRleF9pbml0KCZkZXYtPmxvY2spOwotLSAKMi45LjUKCgpGcm9tIDdiYWVkMThjMDhmYzFk NWNiMTA2OTY2MDZjMzQxYWVkODEyYWMxMGEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IFRvbmdoYW8gWmhhbmcgPHhpYW5neGlhLm0ueXVlQGdtYWlsLmNvbT4KRGF0ZTogRnJpLCAyMiBE ZWMgMjAxNyAxMDoxNToyMCAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTUvMzNdIHNjdHA6IFJlcGxh Y2UgdXNlIG9mIHNvY2tldHNfYWxsb2NhdGVkIHdpdGggc3BlY2lmaWVkCiBtYWNyby4KClsgVXBz dHJlYW0gY29tbWl0IDhjYjM4YTYwMjQ3OGU5ZjgwNjU3MWY2OTIwYjBhMzI5OGFhYmYwNDIgXQoK VGhlIHBhdGNoKDE4MGQ4Y2Q5NDJjZSkgcmVwbGFjZXMgYWxsIHVzZXMgb2Ygc3RydWN0IHNvY2sg ZmllbGRzJwptZW1vcnlfcHJlc3N1cmUsIG1lbW9yeV9hbGxvY2F0ZWQsIHNvY2tldHNfYWxsb2Nh dGVkLCBhbmQgc3lzY3RsX21lbQp0byBhY2Nlc3NvciBtYWNyb3MuIEJ1dCB0aGUgc29ja2V0c19h bGxvY2F0ZWQgZmllbGQgb2Ygc2N0cCBzb2NrIGlzCm5vdCByZXBsYWNlZCBhdCBhbGwuIFRoZW4g cmVwbGFjZSBpdCBub3cgZm9yIHVuaWZ5aW5nIHRoZSBjb2RlLgoKRml4ZXM6IDE4MGQ4Y2Q5NDJj ZSAoImZvdW5kYXRpb25zIG9mIHBlci1jZ3JvdXAgbWVtb3J5IHByZXNzdXJlIGNvbnRyb2xsaW5n LiIpCkNjOiBHbGF1YmVyIENvc3RhIDxnbG9tbWVyQHBhcmFsbGVscy5jb20+ClNpZ25lZC1vZmYt Ynk6IFRvbmdoYW8gWmhhbmcgPHpoYW5ndG9uZ2hhb0BkaWRpY2h1eGluZy5jb20+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc2N0 cC9zb2NrZXQuYyB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvc2N0cC9zb2NrZXQuYyBiL25ldC9zY3RwL3Nv Y2tldC5jCmluZGV4IGMyYWI4NjQuLjcxODFjZTYgMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL3NvY2tl dC5jCisrKyBiL25ldC9zY3RwL3NvY2tldC5jCkBAIC00MjQ2LDcgKzQyNDYsNyBAQCBzdGF0aWMg aW50IHNjdHBfaW5pdF9zb2NrKHN0cnVjdCBzb2NrICpzaykKIAlTQ1RQX0RCR19PQkpDTlRfSU5D KHNvY2spOwogCiAJbG9jYWxfYmhfZGlzYWJsZSgpOwotCXBlcmNwdV9jb3VudGVyX2luYygmc2N0 cF9zb2NrZXRzX2FsbG9jYXRlZCk7CisJc2tfc29ja2V0c19hbGxvY2F0ZWRfaW5jKHNrKTsKIAlz b2NrX3Byb3RfaW51c2VfYWRkKG5ldCwgc2stPnNrX3Byb3QsIDEpOwogCiAJLyogTm90aGluZyBj YW4gZmFpbCBhZnRlciB0aGlzIGJsb2NrLCBvdGhlcndpc2UKQEAgLTQyOTAsNyArNDI5MCw3IEBA IHN0YXRpYyB2b2lkIHNjdHBfZGVzdHJveV9zb2NrKHN0cnVjdCBzb2NrICpzaykKIAl9CiAJc2N0 cF9lbmRwb2ludF9mcmVlKHNwLT5lcCk7CiAJbG9jYWxfYmhfZGlzYWJsZSgpOwotCXBlcmNwdV9j b3VudGVyX2RlYygmc2N0cF9zb2NrZXRzX2FsbG9jYXRlZCk7CisJc2tfc29ja2V0c19hbGxvY2F0 ZWRfZGVjKHNrKTsKIAlzb2NrX3Byb3RfaW51c2VfYWRkKHNvY2tfbmV0KHNrKSwgc2stPnNrX3By b3QsIC0xKTsKIAlsb2NhbF9iaF9lbmFibGUoKTsKIH0KLS0gCjIuOS41CgoKRnJvbSAzZTY2NjVk YzIxNGRlZDkyYzcwODIyMjMzYTU1NGQxNGM3NGJjMmNkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiAiTmlraXRhIFYuIFNoaXJva292IiA8dGVobmVyZEBmYi5jb20+CkRhdGU6IFdlZCwg NiBEZWMgMjAxNyAxNzoxNTo0MyAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTYvMzNdIGFkZGluZyBt aXNzaW5nIHJjdV9yZWFkX3VubG9jayBpbiBpcHhpcDZfcmN2CgpbIFVwc3RyZWFtIGNvbW1pdCA3 NGM0YjY1NmMzZDkyZWM0YzgyNGVhMWE0YWZkNzI2YjdiNjU2OGM4IF0KCmNvbW1pdCA4ZDc5MjY2 YmM0OGMgKCJpcDZfdHVubmVsOiBhZGQgY29sbGVjdF9tZCBtb2RlIHRvIElQdjYgdHVubmVscyIp CmludHJvZHVjZWQgbmV3IGV4aXQgcG9pbnQgaW4gIGlweGlwNl9yY3YuIGhvd2V2ZXIgcmN1X3Jl YWRfdW5sb2NrIGlzCm1pc3NpbmcgdGhlcmUuIHRoaXMgZGlmZiBpcyBmaXhpbmcgdGhpcwoKdjEt PnYyOgogaW5zdGVhZCBvZiBkb2luZyByY3VfcmVhZF91bmxvY2sgaW4gcGxhY2UsIHdlIGFyZSBn b2luZyB0byAiZHJvcCIKIHNlY3Rpb24gKHRvIHByZXZlbnQgc2tiIGxlYWthZ2UpCgpGaXhlczog OGQ3OTI2NmJjNDhjICgiaXA2X3R1bm5lbDogYWRkIGNvbGxlY3RfbWQgbW9kZSB0byBJUHY2IHR1 bm5lbHMiKQpTaWduZWQtb2ZmLWJ5OiBOaWtpdGEgVi4gU2hpcm9rb3YgPHRlaG5lcmRAZmIuY29t PgpBY2tlZC1ieTogQWxleGVpIFN0YXJvdm9pdG92IDxhc3RAa2VybmVsLm9yZz4KU2lnbmVkLW9m Zi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY2 L2lwNl90dW5uZWwuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBk ZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2lwNl90dW5uZWwuYyBiL25ldC9pcHY2 L2lwNl90dW5uZWwuYwppbmRleCAxMmIyZmQ1Li4xMWQyMmQ2IDEwMDY0NAotLS0gYS9uZXQvaXB2 Ni9pcDZfdHVubmVsLmMKKysrIGIvbmV0L2lwdjYvaXA2X3R1bm5lbC5jCkBAIC05MTEsNyArOTEx LDcgQEAgc3RhdGljIGludCBpcHhpcDZfcmN2KHN0cnVjdCBza19idWZmICpza2IsIHU4IGlwcHJv dG8sCiAJCWlmICh0LT5wYXJtcy5jb2xsZWN0X21kKSB7CiAJCQl0dW5fZHN0ID0gaXB2Nl90dW5f cnhfZHN0KHNrYiwgMCwgMCwgMCk7CiAJCQlpZiAoIXR1bl9kc3QpCi0JCQkJcmV0dXJuIDA7CisJ CQkJZ290byBkcm9wOwogCQl9CiAJCXJldCA9IF9faXA2X3RubF9yY3YodCwgc2tiLCB0cGksIHR1 bl9kc3QsIGRzY3BfZWNuX2RlY2Fwc3VsYXRlLAogCQkJCSAgICBsb2dfZWNuX2Vycm9yKTsKLS0g CjIuOS41CgoKRnJvbSA1YTY2ZWY5MjA2OGVhNGMyZjE4ZWUyNjdlOWM0M2RiMzlhMjJiNzg2IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBJZG8gU2NoaW1tZWwgPGlkb3NjaEBtZWxsYW5v eC5jb20+CkRhdGU6IFdlZCwgMjAgRGVjIDIwMTcgMTk6MzQ6MTkgKzAyMDAKU3ViamVjdDogW1BB VENIIDE3LzMzXSBpcHY0OiBGaXggdXNlLWFmdGVyLWZyZWUgd2hlbiBmbHVzaGluZyBGSUIgdGFi bGVzCgpbIFVwc3RyZWFtIGNvbW1pdCBiNDY4MWMyODI5ZTI0OTQzYWFkZDFhN2JiM2EzMGQ0MWQw YTIwMDUwIF0KClNpbmNlIGNvbW1pdCAwZGRjZjQzZDVkNGEgKCJpcHY0OiBGSUIgTG9jYWwvTUFJ TiB0YWJsZSBjb2xsYXBzZSIpIHRoZQpsb2NhbCB0YWJsZSB1c2VzIHRoZSBzYW1lIHRyaWUgYWxs b2NhdGVkIGZvciB0aGUgbWFpbiB0YWJsZSB3aGVuIGN1c3RvbQpydWxlcyBhcmUgbm90IGluIHVz ZS4KCldoZW4gYSBuZXQgbmFtZXNwYWNlIGlzIGRpc21hbnRsZWQsIHRoZSBtYWluIHRhYmxlIGlz IGZsdXNoZWQgYW5kIGZyZWVkCih2aWEgYW4gUkNVIGNhbGxiYWNrKSBiZWZvcmUgdGhlIGxvY2Fs IHRhYmxlLiBJbiBjYXNlIHRoZSBjYWxsYmFjayBpcwppbnZva2VkIGJlZm9yZSB0aGUgbG9jYWwg dGFibGUgaXMgaXRlcmF0ZWQsIGEgdXNlLWFmdGVyLWZyZWUgY2FuIG9jY3VyLgoKRml4IHRoaXMg YnkgaXRlcmF0aW5nIG92ZXIgdGhlIEZJQiB0YWJsZXMgaW4gcmV2ZXJzZSBvcmRlciwgc28gdGhh dCB0aGUKbWFpbiB0YWJsZSBpcyBhbHdheXMgZnJlZWQgYWZ0ZXIgdGhlIGxvY2FsIHRhYmxlLgoK djM6IFJld29yZGVkIGNvbW1lbnQgYWNjb3JkaW5nIHRvIEFsZXgncyBzdWdnZXN0aW9uLgp2Mjog QWRkIGEgY29tbWVudCB0byBtYWtlIHRoZSBmaXggbW9yZSBleHBsaWNpdCBwZXIgRGF2ZSdzIGFu ZCBBbGV4J3MKZmVlZGJhY2suCgpGaXhlczogMGRkY2Y0M2Q1ZDRhICgiaXB2NDogRklCIExvY2Fs L01BSU4gdGFibGUgY29sbGFwc2UiKQpTaWduZWQtb2ZmLWJ5OiBJZG8gU2NoaW1tZWwgPGlkb3Nj aEBtZWxsYW5veC5jb20+ClJlcG9ydGVkLWJ5OiBGZW5nZ3VhbmcgV3UgPGZlbmdndWFuZy53dUBp bnRlbC5jb20+CkFja2VkLWJ5OiBBbGV4YW5kZXIgRHV5Y2sgPGFsZXhhbmRlci5oLmR1eWNrQGlu dGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQu bmV0PgotLS0KIG5ldC9pcHY0L2ZpYl9mcm9udGVuZC5jIHwgOSArKysrKysrLS0KIDEgZmlsZSBj aGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0 L2lwdjQvZmliX2Zyb250ZW5kLmMgYi9uZXQvaXB2NC9maWJfZnJvbnRlbmQuYwppbmRleCA5Njhk OGUxLi5mZmFlNDcyIDEwMDY0NAotLS0gYS9uZXQvaXB2NC9maWJfZnJvbnRlbmQuYworKysgYi9u ZXQvaXB2NC9maWJfZnJvbnRlbmQuYwpAQCAtMTI1MywxNCArMTI1MywxOSBAQCBzdGF0aWMgaW50 IF9fbmV0X2luaXQgaXBfZmliX25ldF9pbml0KHN0cnVjdCBuZXQgKm5ldCkKIAogc3RhdGljIHZv aWQgaXBfZmliX25ldF9leGl0KHN0cnVjdCBuZXQgKm5ldCkKIHsKLQl1bnNpZ25lZCBpbnQgaTsK KwlpbnQgaTsKIAogCXJ0bmxfbG9jaygpOwogI2lmZGVmIENPTkZJR19JUF9NVUxUSVBMRV9UQUJM RVMKIAlSQ1VfSU5JVF9QT0lOVEVSKG5ldC0+aXB2NC5maWJfbWFpbiwgTlVMTCk7CiAJUkNVX0lO SVRfUE9JTlRFUihuZXQtPmlwdjQuZmliX2RlZmF1bHQsIE5VTEwpOwogI2VuZGlmCi0JZm9yIChp ID0gMDsgaSA8IEZJQl9UQUJMRV9IQVNIU1o7IGkrKykgeworCS8qIERlc3Ryb3kgdGhlIHRhYmxl cyBpbiByZXZlcnNlIG9yZGVyIHRvIGd1YXJhbnRlZSB0aGF0IHRoZQorCSAqIGxvY2FsIHRhYmxl LCBJRCAyNTUsIGlzIGRlc3Ryb3llZCBiZWZvcmUgdGhlIG1haW4gdGFibGUsIElECisJICogMjU0 LiBUaGlzIGlzIG5lY2Vzc2FyeSBhcyB0aGUgbG9jYWwgdGFibGUgbWF5IGNvbnRhaW4KKwkgKiBy ZWZlcmVuY2VzIHRvIGRhdGEgY29udGFpbmVkIGluIHRoZSBtYWluIHRhYmxlLgorCSAqLworCWZv ciAoaSA9IEZJQl9UQUJMRV9IQVNIU1ogLSAxOyBpID49IDA7IGktLSkgewogCQlzdHJ1Y3QgaGxp c3RfaGVhZCAqaGVhZCA9ICZuZXQtPmlwdjQuZmliX3RhYmxlX2hhc2hbaV07CiAJCXN0cnVjdCBo bGlzdF9ub2RlICp0bXA7CiAJCXN0cnVjdCBmaWJfdGFibGUgKnRiOwotLSAKMi45LjUKCgpGcm9t IDU3NGRmNzg4NTM2NTY3ZTNhY2JjNGM2NzVmYmMzMzg5Y2E2MTUwM2QgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IE5pa29sYXkgQWxla3NhbmRyb3YgPG5pa29sYXlAY3VtdWx1c25ldHdv cmtzLmNvbT4KRGF0ZTogTW9uLCAxOCBEZWMgMjAxNyAxNzozNTowOSArMDIwMApTdWJqZWN0OiBb UEFUQ0ggMTgvMzNdIG5ldDogYnJpZGdlOiBmaXggZWFybHkgY2FsbCB0byBicl9zdHBfY2hhbmdl X2JyaWRnZV9pZAogYW5kIHBsdWcgbmV3bGluayBsZWFrcwoKWyBVcHN0cmVhbSBjb21taXQgODRh ZWI0MzdhYjk4YTJiY2UzZDRiMjExMWM3OTcyM2FlZGZjZWIzMyBdCgpUaGUgZWFybHkgY2FsbCB0 byBicl9zdHBfY2hhbmdlX2JyaWRnZV9pZCBpbiBicmlkZ2UncyBuZXdsaW5rIGNhbiBjYXVzZQph IG1lbW9yeSBsZWFrIGlmIGFuIGVycm9yIG9jY3VycyBkdXJpbmcgdGhlIG5ld2xpbmsgYmVjYXVz ZSB0aGUgZmRiCmVudHJpZXMgYXJlIG5vdCBjbGVhbmVkIHVwIGlmIGEgZGlmZmVyZW50IGxsYWRk ciB3YXMgc3BlY2lmaWVkLCBhbHNvCmFub3RoZXIgbWlub3IgaXNzdWUgaXMgdGhhdCBpdCBnZW5l cmF0ZXMgZmRiIG5vdGlmaWNhdGlvbnMgd2l0aAppZmluZGV4ID0gMC4gQW5vdGhlciB1bnJlbGF0 ZWQgbWVtb3J5IGxlYWsgaXMgdGhlIGJyaWRnZSBzeXNmcyBlbnRyaWVzCndoaWNoIGdldCBhZGRl ZCBvbiBORVRERVZfUkVHSVNURVIgZXZlbnQsIGJ1dCBhcmUgbm90IGNsZWFuZWQgdXAgaW4gdGhl Cm5ld2xpbmsgZXJyb3IgcGF0aC4gVG8gcmVtb3ZlIHRoaXMgc3BlY2lhbCBjYXNlIHRoZSBjYWxs IHRvCmJyX3N0cF9jaGFuZ2VfYnJpZGdlX2lkIGlzIGRvbmUgYWZ0ZXIgbmV0ZGV2IHJlZ2lzdGVy IGFuZCB3ZSBjbGVhbnVwIHRoZQpicmlkZ2Ugb24gY2hhbmdlbGluayBlcnJvciB2aWEgYnJfZGV2 X2RlbGV0ZSB0byBwbHVnIGFsbCBsZWFrcy4KClRoaXMgcGF0Y2ggbWFrZXMgbmV0bGluayBicmlk Z2UgZGVzdHJ1Y3Rpb24gb24gbmV3bGluayBlcnJvciB0aGUgc2FtZSBhcwpkZWxsaW5rIGFuZCBp b2N0bCBkZWwgd2hpY2ggaXMgbmVjZXNzYXJ5IHNpbmNlIGF0IHRoYXQgcG9pbnQgd2UgaGF2ZSBh CmZ1bGx5IGluaXRpYWxpemVkIGJyaWRnZSBkZXZpY2UuCgpUbyByZXByb2R1Y2UgdGhlIGlzc3Vl OgokIGlwIGwgYWRkIGJyMCBhZGRyZXNzIDAwOjExOjIyOjMzOjQ0OjU1IHR5cGUgYnJpZGdlIGdy b3VwX2Z3ZF9tYXNrIDEKUlRORVRMSU5LIGFuc3dlcnM6IEludmFsaWQgYXJndW1lbnQKCiQgcm1t b2QgYnJpZGdlClsgMTgyMi4xNDI1MjVdID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClsgMTgyMi4xNDM2 NDBdIEJVRyBicmlkZ2VfZmRiX2NhY2hlIChUYWludGVkOiBHICAgICAgICAgICBPICAgICk6IE9i amVjdHMgcmVtYWluaW5nIGluIGJyaWRnZV9mZGJfY2FjaGUgb24gX19rbWVtX2NhY2hlX3NodXRk b3duKCkKWyAxODIyLjE0NDgyMV0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KClsgMTgyMi4xNDU5OTBd IERpc2FibGluZyBsb2NrIGRlYnVnZ2luZyBkdWUgdG8ga2VybmVsIHRhaW50ClsgMTgyMi4xNDY3 MzJdIElORk86IFNsYWIgMHgwMDAwMDAwMDkyYTg0NGIyIG9iamVjdHM9MzIgdXNlZD0yIGZwPTB4 MDAwMDAwMDBmZWYwMTFiMCBmbGFncz0weDFmZmZmODAwMDAwMDEwMApbIDE4MjIuMTQ3NzAwXSBD UFU6IDIgUElEOiAxMzU4NCBDb21tOiBybW1vZCBUYWludGVkOiBHICAgIEIgICAgICBPICAgICA0 LjE1LjAtcmMyKyAjODcKWyAxODIyLjE0ODU3OF0gSGFyZHdhcmUgbmFtZTogUUVNVSBTdGFuZGFy ZCBQQyAoaTQ0MEZYICsgUElJWCwgMTk5NiksIEJJT1MgMS43LjUtMjAxNDA1MzFfMDgzMDMwLWdh bmRhbGYgMDQvMDEvMjAxNApbIDE4MjIuMTUwMDA4XSBDYWxsIFRyYWNlOgpbIDE4MjIuMTUwNTEw XSAgZHVtcF9zdGFjaysweDc4LzB4YTkKWyAxODIyLjE1MTE1Nl0gIHNsYWJfZXJyKzB4YjEvMHhk MwpbIDE4MjIuMTUxODM0XSAgPyBfX2ttYWxsb2MrMHgxYmIvMHgxY2UKWyAxODIyLjE1MjU0Nl0g IF9fa21lbV9jYWNoZV9zaHV0ZG93bisweDE1MS8weDI4YgpbIDE4MjIuMTUzMzk1XSAgc2h1dGRv d25fY2FjaGUrMHgxMy8weDE0NApbIDE4MjIuMTU0MTI2XSAga21lbV9jYWNoZV9kZXN0cm95KzB4 MWMwLzB4MWZiClsgMTgyMi4xNTQ2NjldICBTeVNfZGVsZXRlX21vZHVsZSsweDE5NC8weDI0NApb IDE4MjIuMTU1MTk5XSAgPyB0cmFjZV9oYXJkaXJxc19vbl90aHVuaysweDFhLzB4MWMKWyAxODIy LjE1NTc3M10gIGVudHJ5X1NZU0NBTExfNjRfZmFzdHBhdGgrMHgyMy8weDlhClsgMTgyMi4xNTYz NDNdIFJJUDogMDAzMzoweDdmOTI5YmQzOGIxNwpbIDE4MjIuMTU2ODU5XSBSU1A6IDAwMmI6MDAw MDdmZmQxNjBlOWE5OCBFRkxBR1M6IDAwMDAwMjAyIE9SSUdfUkFYOiAwMDAwMDAwMDAwMDAwMGIw ClsgMTgyMi4xNTc3MjhdIFJBWDogZmZmZmZmZmZmZmZmZmZkYSBSQlg6IDAwMDA1NTc4MzE2YmEw OTAgUkNYOiAwMDAwN2Y5MjliZDM4YjE3ClsgMTgyMi4xNTg0MjJdIFJEWDogMDAwMDdmOTI5YmQ5 ZWM2MCBSU0k6IDAwMDAwMDAwMDAwMDA4MDAgUkRJOiAwMDAwNTU3ODMxNmJhMGYwClsgMTgyMi4x NTkxMTRdIFJCUDogMDAwMDAwMDAwMDAwMDAwMyBSMDg6IDAwMDA3ZjkyOWJmZjVmMjAgUjA5OiAw MDAwN2ZmZDE2MGU4YTExClsgMTgyMi4xNTk4MDhdIFIxMDogMDAwMDdmZmQxNjBlOTg2MCBSMTE6 IDAwMDAwMDAwMDAwMDAyMDIgUjEyOiAwMDAwN2ZmZDE2MGU4YTgwClsgMTgyMi4xNjA1MTNdIFIx MzogMDAwMDAwMDAwMDAwMDAwMCBSMTQ6IDAwMDAwMDAwMDAwMDAwMDAgUjE1OiAwMDAwNTU3ODMx NmJhMDkwClsgMTgyMi4xNjEyNzhdIElORk86IE9iamVjdCAweDAwMDAwMDAwNzY0NWRlMjkgQG9m ZnNldD0wClsgMTgyMi4xNjE2NjZdIElORk86IE9iamVjdCAweDAwMDAwMDAwZDVkZjJhYjUgQG9m ZnNldD0xMjgKCkZpeGVzOiAzMDMxM2EzZDU3OTQgKCJicmlkZ2U6IEhhbmRsZSBJRkxBX0FERFJF U1MgY29ycmVjdGx5IHdoZW4gY3JlYXRpbmcgYnJpZGdlIGRldmljZSIpCkZpeGVzOiA1YjhkNTQy OWRhYTAgKCJicmlkZ2U6IG5ldGxpbms6IHJlZ2lzdGVyIG5ldGRldmljZSBiZWZvcmUgZXhlY3V0 aW5nIGNoYW5nZWxpbmsiKQpTaWduZWQtb2ZmLWJ5OiBOaWtvbGF5IEFsZWtzYW5kcm92IDxuaWtv bGF5QGN1bXVsdXNuZXR3b3Jrcy5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvYnJpZGdlL2JyX25ldGxpbmsuYyB8IDExICsr KysrKy0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL25ldC9icmlkZ2UvYnJfbmV0bGluay5jIGIvbmV0L2JyaWRnZS9icl9u ZXRsaW5rLmMKaW5kZXggNWQ0MDA2ZS4uNGY4MzEyMiAxMDA2NDQKLS0tIGEvbmV0L2JyaWRnZS9i cl9uZXRsaW5rLmMKKysrIGIvbmV0L2JyaWRnZS9icl9uZXRsaW5rLmMKQEAgLTEwOTIsMTkgKzEw OTIsMjAgQEAgc3RhdGljIGludCBicl9kZXZfbmV3bGluayhzdHJ1Y3QgbmV0ICpzcmNfbmV0LCBz dHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCXN0cnVjdCBuZXRfYnJpZGdlICpiciA9IG5ldGRldl9w cml2KGRldik7CiAJaW50IGVycjsKIAorCWVyciA9IHJlZ2lzdGVyX25ldGRldmljZShkZXYpOwor CWlmIChlcnIpCisJCXJldHVybiBlcnI7CisKIAlpZiAodGJbSUZMQV9BRERSRVNTXSkgewogCQlz cGluX2xvY2tfYmgoJmJyLT5sb2NrKTsKIAkJYnJfc3RwX2NoYW5nZV9icmlkZ2VfaWQoYnIsIG5s YV9kYXRhKHRiW0lGTEFfQUREUkVTU10pKTsKIAkJc3Bpbl91bmxvY2tfYmgoJmJyLT5sb2NrKTsK IAl9CiAKLQllcnIgPSByZWdpc3Rlcl9uZXRkZXZpY2UoZGV2KTsKLQlpZiAoZXJyKQotCQlyZXR1 cm4gZXJyOwotCiAJZXJyID0gYnJfY2hhbmdlbGluayhkZXYsIHRiLCBkYXRhKTsKIAlpZiAoZXJy KQotCQl1bnJlZ2lzdGVyX25ldGRldmljZShkZXYpOworCQlicl9kZXZfZGVsZXRlKGRldiwgTlVM TCk7CisKIAlyZXR1cm4gZXJyOwogfQogCi0tIAoyLjkuNQoKCkZyb20gMWM2ZjdmYjZhMGRjNTBl NDA1MWM2OGU2YjliNTY2MjA2Zjk5MDQ2ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog QW5kcmV3IEx1bm4gPGFuZHJld0BsdW5uLmNoPgpEYXRlOiBTdW4sIDMwIEp1bCAyMDE3IDE5OjM2 OjA1ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxOS8zM10gbmV0OiBmZWM6IEFsbG93IHJlY2VwdGlv biBvZiBmcmFtZXMgYmlnZ2VyIHRoYW4gMTUyMgogYnl0ZXMKClsgVXBzdHJlYW0gY29tbWl0IGZi YmVlZmRkMjEwNDlmY2Y5NDM3YzgwOWRhMzgyOGIyMTA1NzdmMzYgXQoKVGhlIEZFQyBSZWNlaXZl IENvbnRyb2wgUmVnaXN0ZXIgaGFzIGEgMTQgYml0IGZpZWxkIGluZGljYXRpbmcgdGhlCmxvbmdl c3QgZnJhbWUgdGhhdCBtYXkgYmUgcmVjZWl2ZWQuIEl0IGlzIGJlaW5nIHNldCB0byAxNTIyLiBG cmFtZXMKbG9uZ2VyIHRoYW4gdGhpcyBhcmUgZGlzY2FyZGVkLCBidXQgY291bnRlZCBhcyBiZWlu ZyBpbiBlcnJvci4KCldoZW4gdXNpbmcgRFNBLCBmcmFtZXMgZnJvbSB0aGUgc3dpdGNoIGhhcyBh biBhZGRpdGlvbmFsIGhlYWRlciwKZWl0aGVyIDQgb3IgOCBieXRlcyBpZiBhIE1hcnZlbGwgc3dp dGNoIGlzIHVzZWQuIFRodXMgYSBmdWxsIE1UVSBmcmFtZQpvZiAxNTIyIGJ5dGVzIHJlY2VpdmVk IGJ5IHRoZSBzd2l0Y2ggb24gYSBwb3J0IGJlY29tZXMgMTUzMCBieXRlcyB3aGVuCnBhc3NlZCB0 byB0aGUgaG9zdCB2aWEgdGhlIEZFQyBpbnRlcmZhY2UuCgpDaGFuZ2UgdGhlIG1heGltdW0gcmVj ZWl2ZSBzaXplIHRvIDIwNDggLSA2NCwgd2hlcmUgNjQgaXMgdGhlIG1heGltdW0KcnhfYWxpZ25t ZW50IGFwcGxpZWQgb24gdGhlIHJlY2VpdmUgYnVmZmVyIGZvciBBVkIgY2FwYWJsZSBGRUMKY29y ZXMuIFVzZSB0aGlzIHZhbHVlIGFsc28gZm9yIHRoZSBtYXhpbXVtIHJlY2VpdmUgYnVmZmVyIHNp emUuIFRoZQpkcml2ZXIgaXMgYWxyZWFkeSBhbGxvY2F0aW5nIGEgcmVjZWl2ZSBTS0Igb2YgMjA0 OCBieXRlcywgc28gdGhpcwpjaGFuZ2Ugc2hvdWxkIG5vdCBoYXZlIGFueSBzaWduaWZpY2FudCBl ZmZlY3RzLgoKVGVzdGVkIG9uIGlteDUxLCBpbXg2LCB2ZjYxMC4KClNpZ25lZC1vZmYtYnk6IEFu ZHJldyBMdW5uIDxhbmRyZXdAbHVubi5jaD4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVy IDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2Fs ZS9mZWNfbWFpbi5jIHwgOCArKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygr KSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVl c2NhbGUvZmVjX21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9mZWNfbWFp bi5jCmluZGV4IDYwZjY4NjYuLjkxNzA5MTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVy bmV0L2ZyZWVzY2FsZS9mZWNfbWFpbi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVz Y2FsZS9mZWNfbWFpbi5jCkBAIC0xNzIsMTAgKzE3MiwxMiBAQCBNT0RVTEVfUEFSTV9ERVNDKG1h Y2FkZHIsICJGRUMgRXRoZXJuZXQgTUFDIGFkZHJlc3MiKTsKICNlbmRpZiAvKiBDT05GSUdfTTUy NzIgKi8KIAogLyogVGhlIEZFQyBzdG9yZXMgZGVzdC9zcmMvdHlwZS92bGFuLCBkYXRhLCBhbmQg Y2hlY2tzdW0gZm9yIHJlY2VpdmUgcGFja2V0cy4KKyAqCisgKiAyMDQ4IGJ5dGUgc2tidWZzIGFy ZSBhbGxvY2F0ZWQuIEhvd2V2ZXIsIGFsaWdubWVudCByZXF1aXJlbWVudHMKKyAqIHZhcmllcyBi ZXR3ZWVuIEZFQyB2YXJpYW50cy4gV29yc3QgY2FzZSBpcyA2NCwgc28gcm91bmQgZG93biBieSA2 NC4KICAqLwotI2RlZmluZSBQS1RfTUFYQlVGX1NJWkUJCTE1MjIKKyNkZWZpbmUgUEtUX01BWEJV Rl9TSVpFCQkocm91bmRfZG93bigyMDQ4IC0gNjQsIDY0KSkKICNkZWZpbmUgUEtUX01JTkJVRl9T SVpFCQk2NAotI2RlZmluZSBQS1RfTUFYQkxSX1NJWkUJCTE1MzYKIAogLyogRkVDIHJlY2VpdmUg YWNjZWxlcmF0aW9uICovCiAjZGVmaW5lIEZFQ19SQUNDX0lQRElTCQkoMSA8PCAxKQpAQCAtODUz LDcgKzg1NSw3IEBAIHN0YXRpYyB2b2lkIGZlY19lbmV0X2VuYWJsZV9yaW5nKHN0cnVjdCBuZXRf ZGV2aWNlICpuZGV2KQogCWZvciAoaSA9IDA7IGkgPCBmZXAtPm51bV9yeF9xdWV1ZXM7IGkrKykg ewogCQlyeHEgPSBmZXAtPnJ4X3F1ZXVlW2ldOwogCQl3cml0ZWwocnhxLT5iZC5kbWEsIGZlcC0+ aHdwICsgRkVDX1JfREVTX1NUQVJUKGkpKTsKLQkJd3JpdGVsKFBLVF9NQVhCTFJfU0laRSwgZmVw LT5od3AgKyBGRUNfUl9CVUZGX1NJWkUoaSkpOworCQl3cml0ZWwoUEtUX01BWEJVRl9TSVpFLCBm ZXAtPmh3cCArIEZFQ19SX0JVRkZfU0laRShpKSk7CiAKIAkJLyogZW5hYmxlIERNQTEvMiAqLwog CQlpZiAoaSkKLS0gCjIuOS41CgoKRnJvbSBiYjA5YzczMzcxNTc0OWEwNTAwMjZjNDQ4MWEwMDRm OGMyMGMyNjMxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiRXJpYyBXLiBCaWVkZXJt YW4iIDxlYmllZGVybUB4bWlzc2lvbi5jb20+CkRhdGU6IFR1ZSwgMTkgRGVjIDIwMTcgMTE6Mjc6 NTYgLTA2MDAKU3ViamVjdDogW1BBVENIIDIwLzMzXSBuZXQ6IEZpeCBkb3VibGUgZnJlZSBhbmQg bWVtb3J5IGNvcnJ1cHRpb24gaW4KIGdldF9uZXRfbnNfYnlfaWQoKQoKWyBVcHN0cmVhbSBjb21t aXQgMjFiNTk0NDM1MDA1MmQyNTgzZTgyZGQ1OWIxOWE5YmE5NGEwMDdmMCBdCgooSSBjYW4gdHJp dmlhbGx5IHZlcmlmeSB0aGF0IHRoYXQgaWRyX3JlbW92ZSBpbiBjbGVhbnVwX25ldCBoYXBwZW5z CiBhZnRlciB0aGUgbmV0d29yayBuYW1lc3BhY2UgY291bnQgaGFzIGRyb3BwZWQgdG8gemVybyAt LUVXQikKCkZ1bmN0aW9uIGdldF9uZXRfbnNfYnlfaWQoKSBkb2VzIG5vdCBjaGVjayBmb3IgbmV0 Ojpjb3VudAphZnRlciBpdCBoYXMgZm91bmQgYSBwZWVyIGluIG5ldG5zX2lkcyBpZHIuCgpJdCBt YXkgZGVyZWZlcmVuY2UgYSBwZWVyLCBhZnRlciBpdHMgY291bnQgaGFzIGFscmVhZHkgYmVlbgpm aW5hbHkgZGVjcmVtZW50ZWQuIFRoaXMgbGVhZHMgdG8gZG91YmxlIGZyZWUgYW5kIG1lbW9yeQpj b3JydXB0aW9uOgoKcHV0X25ldChwZWVyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcnRubF9sb2NrKCkKYXRvbWljX2RlY19hbmRfdGVzdCgmcGVlci0+Y291bnQpIFtjb3VudD0w XSAgICAgLi4uCl9fcHV0X25ldChwZWVyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGdldF9uZXRfbnNfYnlfaWQobmV0LCBpZCkKICBzcGluX2xvY2soJmNsZWFudXBfbGlzdF9sb2Nr KQogIGxpc3RfYWRkKCZuZXQtPmNsZWFudXBfbGlzdCwgJmNsZWFudXBfbGlzdCkKICBzcGluX3Vu bG9jaygmY2xlYW51cF9saXN0X2xvY2spCnF1ZXVlX3dvcmsoKSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcGVlciA9IGlkcl9maW5kKCZuZXQtPm5ldG5zX2lkcywgaWQpCiAg fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0X25ldChw ZWVyKSBbY291bnQ9MV0KICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAuLi4KICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAodXNlIGFmdGVyIGZpbmFsIHB1dCkKICB2ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAuLi4KICBjbGVhbnVwX25ldCgpICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAuLi4KICAgIHNwaW5fbG9jaygmY2xlYW51cF9saXN0X2xvY2spICAg ICAgICAgICAgICAgICAuLi4KICAgIGxpc3RfcmVwbGFjZV9pbml0KCZjbGVhbnVwX2xpc3QsIC4u KSAgICAgICAgICAuLi4KICAgIHNwaW5fdW5sb2NrKCZjbGVhbnVwX2xpc3RfbG9jaykgICAgICAg ICAgICAgICAuLi4KICAgIC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAuLi4KICAgIC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBwdXRfbmV0KHBlZXIpCiAgICAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBhdG9taWNfZGVjX2FuZF90ZXN0KCZwZWVyLT5jb3VudCkgW2NvdW50PTBdCiAg ICAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwaW5f bG9jaygmY2xlYW51cF9saXN0X2xvY2spCiAgICAuLi4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxpc3RfYWRkKCZuZXQtPmNsZWFudXBfbGlzdCwgJmNsZWFu dXBfbGlzdCkKICAgIC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3Bpbl91bmxvY2soJmNsZWFudXBfbGlzdF9sb2NrKQogICAgLi4uICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVldWVfd29yaygpCiAgICAuLi4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnRubF91bmxvY2soKQogICAg cnRubF9sb2NrKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLgogICAgZm9y X2VhY2hfbmV0KHRtcCkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLgogICAgICBpZCA9 IF9fcGVlcm5ldDJpZCh0bXAsIHBlZXIpICAgICAgICAgICAgICAgIC4uLgogICAgICBzcGluX2xv Y2tfaXJxKCZ0bXAtPm5zaWRfbG9jaykgICAgICAgICAgICAgIC4uLgogICAgICBpZHJfcmVtb3Zl KCZ0bXAtPm5ldG5zX2lkcywgaWQpICAgICAgICAgICAgIC4uLgogICAgICAuLi4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLgogICAgICBuZXRfZHJvcF9ucygpICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLgoJbmV0X2ZyZWUocGVlcikgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLi4uCiAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLi4uCiAgfAogIHYKICBjbGVhbnVwX25ldCgpCiAgICAuLi4KICAgIChT ZWNvbmQgZnJlZSBvZiBwZWVyKQoKQWxzbywgcHV0X25ldCgpIG9uIHRoZSByaWdodCBjcHUgbWF5 IHJlb3JkZXIgd2l0aCBsZWZ0J3MgY3B1Cmxpc3RfcmVwbGFjZV9pbml0KCZjbGVhbnVwX2xpc3Qs IC4uKSwgYW5kIHRoZW4gY2xlYW51cF9saXN0CndpbGwgYmUgY29ycnVwdGVkLgoKU2luY2UgY2xl YW51cF9uZXQoKSBpcyBleGVjdXRlZCBpbiB3b3JrZXIgdGhyZWFkLCB3aGlsZQpwdXRfbmV0KHBl ZXIpIGNhbiBoYXBwZW4gZXZlcnl3aGVyZSwgdGhlcmUgc2hvdWxkIGJlCmVub3VnaCB0aW1lIGZv ciBjb25jdXJyZW50IGdldF9uZXRfbnNfYnlfaWQoKSB0byBwaWNrCnRoZSBwZWVyIHVwLCBhbmQg dGhlIHJhY2UgZG9lcyBub3Qgc2VlbSB0byBiZSB1bmxpa2VseS4KVGhlIHBhdGNoIGZpeGVzIHRo ZSBwcm9ibGVtIGluIHN0YW5kYXJkIHdheS4KCihBbHNvLCB0aGVyZSBpcyBwb3NzaWJsZSBwcm9i bGVtIGluIHBlZXJuZXQyaWRfYWxsb2MoKSwgd2hpY2ggcmVxdWlyZXMKY2hlY2sgZm9yIG5ldDo6 Y291bnQgdW5kZXIgbnNpZF9sb2NrIGFuZCBtYXliZV9nZXRfbmV0KHBlZXIpLCBidXQKaW4gY3Vy cmVudCBzdGFibGUga2VybmVsIGl0J3MgdXNlZCB1bmRlciBydG5sX2xvY2soKSBhbmQgaXQgaGFz IHRvIGJlCnNhZmUuIE9wZW5zd2l0Y2ggYmVndW4gdG8gdXNlIHBlZXJuZXQyaWRfYWxsb2MoKSwg YW5kIHBvc3NpYmx5IGl0IHNob3VsZApiZSBmaXhlZCB0b28uIFdoaWxlIHRoaXMgaXMgbm90IGlu IHN0YWJsZSBrZXJuZWwgeWV0LCBzbyBJJ2xsIHNlbmQKYSBzZXBhcmF0ZSBtZXNzYWdlIHRvIG5l dGRldkAgbGF0ZXIpLgoKQ2M6IE5pY29sYXMgRGljaHRlbCA8bmljb2xhcy5kaWNodGVsQDZ3aW5k LmNvbT4KU2lnbmVkLW9mZi1ieTogS2lyaWxsIFRraGFpIDxrdGtoYWlAdmlydHVvenpvLmNvbT4K Rml4ZXM6IDBjN2FlY2Q0YmRlNCAibmV0bnM6IGFkZCBydG5sIGNtZCB0byBhZGQgYW5kIGdldCBw ZWVyIG5ldG5zIGlkcyIKUmV2aWV3ZWQtYnk6IEFuZHJleSBSeWFiaW5pbiA8YXJ5YWJpbmluQHZp cnR1b3p6by5jb20+ClJldmlld2VkLWJ5OiAiRXJpYyBXLiBCaWVkZXJtYW4iIDxlYmllZGVybUB4 bWlzc2lvbi5jb20+ClNpZ25lZC1vZmYtYnk6IEVyaWMgVy4gQmllZGVybWFuIDxlYmllZGVybUB4 bWlzc2lvbi5jb20+ClJldmlld2VkLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5j b20+CkFja2VkLWJ5OiBOaWNvbGFzIERpY2h0ZWwgPG5pY29sYXMuZGljaHRlbEA2d2luZC5jb20+ ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0t CiBuZXQvY29yZS9uZXRfbmFtZXNwYWNlLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNl cnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvY29yZS9uZXRfbmFtZXNw YWNlLmMgYi9uZXQvY29yZS9uZXRfbmFtZXNwYWNlLmMKaW5kZXggNzAwMWRhOS4uYjdlZmUyZiAx MDA2NDQKLS0tIGEvbmV0L2NvcmUvbmV0X25hbWVzcGFjZS5jCisrKyBiL25ldC9jb3JlL25ldF9u YW1lc3BhY2UuYwpAQCAtMjYzLDcgKzI2Myw3IEBAIHN0cnVjdCBuZXQgKmdldF9uZXRfbnNfYnlf aWQoc3RydWN0IG5ldCAqbmV0LCBpbnQgaWQpCiAJc3Bpbl9sb2NrX2lycXNhdmUoJm5ldC0+bnNp ZF9sb2NrLCBmbGFncyk7CiAJcGVlciA9IGlkcl9maW5kKCZuZXQtPm5ldG5zX2lkcywgaWQpOwog CWlmIChwZWVyKQotCQlnZXRfbmV0KHBlZXIpOworCQlwZWVyID0gbWF5YmVfZ2V0X25ldChwZWVy KTsKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZuZXQtPm5zaWRfbG9jaywgZmxhZ3MpOwogCXJj dV9yZWFkX3VubG9jaygpOwogCi0tIAoyLjkuNQoKCkZyb20gNmY1YzY3YzZkM2UwZmVmZDJjZWIx YzBhOWU5ZjAzMGI3MjRiMmU1MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogR3J5Z29y aWkgU3RyYXNoa28gPGdyeWdvcmlpLnN0cmFzaGtvQHRpLmNvbT4KRGF0ZTogV2VkLCAyMCBEZWMg MjAxNyAxODo0NToxMCAtMDYwMApTdWJqZWN0OiBbUEFUQ0ggMjEvMzNdIG5ldDogcGh5OiBtaWNy ZWw6IGtzejkwMzE6IHJlY29uZmlndXJlIGF1dG9uZWcgYWZ0ZXIKIHBoeSBhdXRvbmVnIHdvcmth cm91bmQKClsgVXBzdHJlYW0gY29tbWl0IGMxYThkMGEzYWNjZjY0YTAxNGQ2MDVlNjgwNmNlMDVk MWMxN2FkZjEgXQoKVW5kZXIgc29tZSBjaXJjdW1zdGFuY2VzIGRyaXZlciB3aWxsIHBlcmZvcm0g UEhZIHJlc2V0IGluCmtzejkwMzFfcmVhZF9zdGF0dXMoKSB0byBmaXggYXV0b25lZyBmYWlsdXJl IGNhc2UgKGlkbGUgZXJyb3IgY291bnQgPQoweEZGKS4gV2hlbiB0aGlzIGhhcHBlbnMga3N6OTAz MSB3aWxsIG5vdCBkZXRlY3QgbGluayBzdGF0dXMgY2hhbmdlIGFueQptb3JlIHdoZW4gY29ubmVj dGluZyB0byBOZXRnZWFyIDFHIHN3aXRjaCAobGluayBjYW4gYmUgcmVjb3ZlcmVkIHNvbWV0aW1l cyBieQpyZXN0YXJ0aW5nIG5ldGRldmljZSAiaWZjb25maWcgZG93biB1cCIpLiBSZXByb2R1Y2Vk IHdpdGggVEkgYW01NzJ4IGJvYXJkCmVxdWlwcGVkIHdpdGgga3N6OTAzMSBQSFkgd2hpbGUgY29u bmVjdGluZyB0byBOZXRnZWFyIDFHIHN3aXRjaC4KCkZpeCB0aGUgaXNzdWUgYnkgcmVjb25maWd1 cmluZyBhdXRvbmVnb3RpYXRpb24gYWZ0ZXIgUEhZIHJlc2V0IGluCmtzejkwMzFfcmVhZF9zdGF0 dXMoKS4KCkZpeGVzOiBkMmZkNzE5YmNiMGUgKCJuZXQvcGh5OiBtaWNyZWw6IEFkZCB3b3JrYXJv dW5kIGZvciBiYWQgYXV0b25lZyIpClNpZ25lZC1vZmYtYnk6IEdyeWdvcmlpIFN0cmFzaGtvIDxn cnlnb3JpaS5zdHJhc2hrb0B0aS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9waHkvbWljcmVsLmMgfCAxICsK IDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0 L3BoeS9taWNyZWwuYyBiL2RyaXZlcnMvbmV0L3BoeS9taWNyZWwuYwppbmRleCBmYmY1OTQ1Li4y MDMyYTZkIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9waHkvbWljcmVsLmMKKysrIGIvZHJpdmVy cy9uZXQvcGh5L21pY3JlbC5jCkBAIC02MjQsNiArNjI0LDcgQEAgc3RhdGljIGludCBrc3o5MDMx X3JlYWRfc3RhdHVzKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpCiAJCXBoeWRldi0+bGluayA9 IDA7CiAJCWlmIChwaHlkZXYtPmRydi0+Y29uZmlnX2ludHIgJiYgcGh5X2ludGVycnVwdF9pc192 YWxpZChwaHlkZXYpKQogCQkJcGh5ZGV2LT5kcnYtPmNvbmZpZ19pbnRyKHBoeWRldik7CisJCXJl dHVybiBnZW5waHlfY29uZmlnX2FuZWcocGh5ZGV2KTsKIAl9CiAKIAlyZXR1cm4gMDsKLS0gCjIu OS41CgoKRnJvbSBiOGRkZmM1ZGU1OTVhMzQ3ODllYmM0ODc4YzI5MDZlNGI4MzQ2NDM4IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBXaWxsZW0gZGUgQnJ1aWpuIDx3aWxsZW1iQGdvb2ds ZS5jb20+CkRhdGU6IFdlZCwgMTMgRGVjIDIwMTcgMTQ6NDE6MDYgLTA1MDAKU3ViamVjdDogW1BB VENIIDIyLzMzXSBzb2NrOiBmcmVlIHNrYiBpbiBza2JfY29tcGxldGVfdHhfdGltZXN0YW1wIG9u IGVycm9yCgpbIFVwc3RyZWFtIGNvbW1pdCAzNWI5OWRmZmMzZjcxMGNhZmNlZWU2YzhjNmFjNmE5 OGViMmNiNGJmIF0KCnNrYl9jb21wbGV0ZV90eF90aW1lc3RhbXAgbXVzdCBpbmdlc3QgdGhlIHNr YiBpdCBpcyBwYXNzZWQuIENhbGwKa2ZyZWVfc2tiIGlmIHRoZSBza2IgY2Fubm90IGJlIGVucXVl dWVkLgoKRml4ZXM6IGIyNDViZTFmNGRiMSAoIm5ldC10aW1lc3RhbXA6IG5vLXBheWxvYWQgb25s eSBzeXNjdGwiKQpGaXhlczogOWFjMjVmYzA2Mzc1ICgibmV0OiBmaXggc29ja2V0IHJlZmNvdW50 aW5nIGluIHNrYl9jb21wbGV0ZV90eF90aW1lc3RhbXAoKSIpClJlcG9ydGVkLWJ5OiBSaWNoYXJk IENvY2hyYW4gPHJpY2hhcmRjb2NocmFuQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogV2lsbGVt IGRlIEJydWlqbiA8d2lsbGVtYkBnb29nbGUuY29tPgpSZXZpZXdlZC1ieTogRXJpYyBEdW1hemV0 IDxlZHVtYXpldEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2NvcmUvc2tidWZmLmMgfCA2ICsrKysrLQogMSBm aWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBh L25ldC9jb3JlL3NrYnVmZi5jIGIvbmV0L2NvcmUvc2tidWZmLmMKaW5kZXggYWVjNTYwNS4uYTY0 NTE1NSAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvc2tidWZmLmMKKysrIGIvbmV0L2NvcmUvc2tidWZm LmMKQEAgLTM4MjMsNyArMzgyMyw3IEBAIHZvaWQgc2tiX2NvbXBsZXRlX3R4X3RpbWVzdGFtcChz dHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCXN0cnVjdCBzb2NrICpzayA9IHNrYi0+c2s7CiAKIAlpZiAo IXNrYl9tYXlfdHhfdGltZXN0YW1wKHNrLCBmYWxzZSkpCi0JCXJldHVybjsKKwkJZ290byBlcnI7 CiAKIAkvKiBUYWtlIGEgcmVmZXJlbmNlIHRvIHByZXZlbnQgc2tiX29ycGhhbigpIGZyb20gZnJl ZWluZyB0aGUgc29ja2V0LAogCSAqIGJ1dCBvbmx5IGlmIHRoZSBzb2NrZXQgcmVmY291bnQgaXMg bm90IHplcm8uCkBAIC0zODMyLDcgKzM4MzIsMTEgQEAgdm9pZCBza2JfY29tcGxldGVfdHhfdGlt ZXN0YW1wKHN0cnVjdCBza19idWZmICpza2IsCiAJCSpza2JfaHd0c3RhbXBzKHNrYikgPSAqaHd0 c3RhbXBzOwogCQlfX3NrYl9jb21wbGV0ZV90eF90aW1lc3RhbXAoc2tiLCBzaywgU0NNX1RTVEFN UF9TTkQpOwogCQlzb2NrX3B1dChzayk7CisJCXJldHVybjsKIAl9CisKK2VycjoKKwlrZnJlZV9z a2Ioc2tiKTsKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKHNrYl9jb21wbGV0ZV90eF90aW1lc3RhbXAp OwogCi0tIAoyLjkuNQoKCkZyb20gMTMwZTZmZWZmYzlhNjlkZTUzZTYwNzIxNDM4Nzk4MWFlNDI0 NzRmNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogWW91c3VrIFNldW5nIDx5c3NldW5n QGdvb2dsZS5jb20+CkRhdGU6IFRodSwgNyBEZWMgMjAxNyAxMzo0MTozNCAtMDgwMApTdWJqZWN0 OiBbUEFUQ0ggMjMvMzNdIHRjcDogaW52YWxpZGF0ZSByYXRlIHNhbXBsZXMgZHVyaW5nIFNBQ0sg cmVuZWdpbmcKClsgVXBzdHJlYW0gY29tbWl0IGQ0NzYxNzU0YjRmYjJlZjhkOWExZTlkMTIxYzRi ZWM4NGUxZmUyOTIgXQoKTWFyayB0Y3Bfc29jayBkdXJpbmcgYSBTQUNLIHJlbmVnaW5nIGV2ZW50 IGFuZCBpbnZhbGlkYXRlIHJhdGUgc2FtcGxlcwp3aGlsZSBtYXJrZWQuIFN1Y2ggcmF0ZSBzYW1w bGVzIG1heSBvdmVyZXN0aW1hdGUgYncgYnkgaW5jbHVkaW5nIHBhY2tldHMKdGhhdCB3ZXJlIFNB Q0tlZCBiZWZvcmUgcmVuZWdpbmcuCgo8IGFjayA2MDAxIHdpbiAxMDAwMCBzYWNrIDcwMDE6Mzgw MDEKPCBhY2sgNzAwMSB3aW4gMCBzYWNrIDgwMDE6MzgwMDEgLy8gUmVuZWcgZGV0ZWN0ZWQKPiBz ZXEgNzAwMTo4MDAxIC8vIFJUTywgU0FDSyBjbGVhcmVkLgo8IGFjayAzODAwMSB3aW4gMTAwMDAK CkluIGFib3ZlIGV4YW1wbGUgdGhlIHJhdGUgc2FtcGxlIHRha2VuIGFmdGVyIHRoZSBsYXN0IGFj ayB3aWxsIGNvdW50CjcwMDEtMzgwMDEgYXMgZGVsaXZlcmVkIHdoaWxlIHRoZSBhY3R1YWwgZGVs aXZlcnkgcmF0ZSBsaWtlbHkgY291bGQKYmUgbXVjaCBsb3dlciBpLmUuIDcwMDEtODAwMS4KClRo aXMgcGF0Y2ggYWRkcyBhIG5ldyBmaWVsZCB0Y3Bfc29jay5zYWNrX3JlbmVnIGFuZCBtYXJrcyBp dCB3aGVuIHdlCmRlY2xhcmUgU0FDSyByZW5lZ2luZyBhbmQgZW50ZXJpbmcgVENQX0NBX0xvc3Ms IGFuZCB1bm1hcmtzIGl0IGFmdGVyCnRoZSBsYXN0IHJhdGUgc2FtcGxlIHdhcyB0YWtlbiBiZWZv cmUgbW92aW5nIGJhY2sgdG8gVENQX0NBX09wZW4uIFRoaXMKcGF0Y2ggYWxzbyBpbnZhbGlkYXRl cyByYXRlIHNhbXBsZXMgdGFrZW4gd2hpbGUgdGNwX3NvY2suaXNfc2Fja19yZW5lZwppcyBzZXQu CgpGaXhlczogYjlmNjQ4MjBmYjIyICgidGNwOiB0cmFjayBkYXRhIGRlbGl2ZXJ5IHJhdGUgZm9y IGEgVENQIGNvbm5lY3Rpb24iKQpTaWduZWQtb2ZmLWJ5OiBZb3VzdWsgU2V1bmcgPHlzc2V1bmdA Z29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogTmVhbCBDYXJkd2VsbCA8bmNhcmR3ZWxsQGdvb2ds ZS5jb20+ClNpZ25lZC1vZmYtYnk6IFl1Y2h1bmcgQ2hlbmcgPHljaGVuZ0Bnb29nbGUuY29tPgpB Y2tlZC1ieTogU29oZWlsIEhhc3NhcyBZZWdhbmVoIDxzb2hlaWxAZ29vZ2xlLmNvbT4KQWNrZWQt Ynk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KQWNrZWQtYnk6IFByaXlhcmFu amFuIEpoYSA8cHJpeWFyamhhQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL2xpbnV4L3RjcC5oICB8ICAz ICsrLQogaW5jbHVkZS9uZXQvdGNwLmggICAgfCAgMiArLQogbmV0L2lwdjQvdGNwLmMgICAgICAg fCAgMSArCiBuZXQvaXB2NC90Y3BfaW5wdXQuYyB8IDEwICsrKysrKysrLS0KIG5ldC9pcHY0L3Rj cF9yYXRlLmMgIHwgMTAgKysrKysrKy0tLQogNSBmaWxlcyBjaGFuZ2VkLCAxOSBpbnNlcnRpb25z KCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvdGNwLmggYi9p bmNsdWRlL2xpbnV4L3RjcC5oCmluZGV4IDY0NzUzMmIuLmY1MGI3MTdjIDEwMDY0NAotLS0gYS9p bmNsdWRlL2xpbnV4L3RjcC5oCisrKyBiL2luY2x1ZGUvbGludXgvdGNwLmgKQEAgLTIxOSw3ICsy MTksOCBAQCBzdHJ1Y3QgdGNwX3NvY2sgewogCX0gcmFjazsKIAl1MTYJYWR2bXNzOwkJLyogQWR2 ZXJ0aXNlZCBNU1MJCQkqLwogCXU4CXJhdGVfYXBwX2xpbWl0ZWQ6MSwgIC8qIHJhdGVfe2RlbGl2 ZXJlZCxpbnRlcnZhbF91c30gbGltaXRlZD8gKi8KLQkJdW51c2VkOjc7CisJCWlzX3NhY2tfcmVu ZWc6MSwgICAgLyogaW4gcmVjb3ZlcnkgZnJvbSBsb3NzIHdpdGggU0FDSyByZW5lZz8gKi8KKwkJ dW51c2VkOjY7CiAJdTgJbm9uYWdsZSAgICAgOiA0LC8qIERpc2FibGUgTmFnbGUgYWxnb3JpdGht PyAgICAgICAgICAgICAqLwogCQl0aGluX2x0byAgICA6IDEsLyogVXNlIGxpbmVhciB0aW1lb3V0 cyBmb3IgdGhpbiBzdHJlYW1zICovCiAJCXRoaW5fZHVwYWNrIDogMSwvKiBGYXN0IHJldHJhbnNt aXQgb24gZmlyc3QgZHVwYWNrICAgICAgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L3RjcC5o IGIvaW5jbHVkZS9uZXQvdGNwLmgKaW5kZXggZmJhNGZjNC4uY2FmMzVlMCAxMDA2NDQKLS0tIGEv aW5jbHVkZS9uZXQvdGNwLmgKKysrIGIvaW5jbHVkZS9uZXQvdGNwLmgKQEAgLTEwMDEsNyArMTAw MSw3IEBAIHZvaWQgdGNwX3JhdGVfc2tiX3NlbnQoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tf YnVmZiAqc2tiKTsKIHZvaWQgdGNwX3JhdGVfc2tiX2RlbGl2ZXJlZChzdHJ1Y3Qgc29jayAqc2ss IHN0cnVjdCBza19idWZmICpza2IsCiAJCQkgICAgc3RydWN0IHJhdGVfc2FtcGxlICpycyk7CiB2 b2lkIHRjcF9yYXRlX2dlbihzdHJ1Y3Qgc29jayAqc2ssIHUzMiBkZWxpdmVyZWQsIHUzMiBsb3N0 LAotCQkgIHN0cnVjdCBza2JfbXN0YW1wICpub3csIHN0cnVjdCByYXRlX3NhbXBsZSAqcnMpOwor CQkgIGJvb2wgaXNfc2Fja19yZW5lZywgc3RydWN0IHNrYl9tc3RhbXAgKm5vdywgc3RydWN0IHJh dGVfc2FtcGxlICpycyk7CiB2b2lkIHRjcF9yYXRlX2NoZWNrX2FwcF9saW1pdGVkKHN0cnVjdCBz b2NrICpzayk7CiAKIC8qIFRoZXNlIGZ1bmN0aW9ucyBkZXRlcm1pbmUgaG93IHRoZSBjdXJyZW50 IGZsb3cgYmVoYXZlcyBpbiByZXNwZWN0IG9mIFNBQ0sKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3Rj cC5jIGIvbmV0L2lwdjQvdGNwLmMKaW5kZXggZGQzM2M3OC4uMDVkMmJkZSAxMDA2NDQKLS0tIGEv bmV0L2lwdjQvdGNwLmMKKysrIGIvbmV0L2lwdjQvdGNwLmMKQEAgLTIyOTcsNiArMjI5Nyw3IEBA IGludCB0Y3BfZGlzY29ubmVjdChzdHJ1Y3Qgc29jayAqc2ssIGludCBmbGFncykKIAl0cC0+c25k X2N3bmRfY250ID0gMDsKIAl0cC0+d2luZG93X2NsYW1wID0gMDsKIAl0Y3Bfc2V0X2NhX3N0YXRl KHNrLCBUQ1BfQ0FfT3Blbik7CisJdHAtPmlzX3NhY2tfcmVuZWcgPSAwOwogCXRjcF9jbGVhcl9y ZXRyYW5zKHRwKTsKIAlpbmV0X2Nza19kZWxhY2tfaW5pdChzayk7CiAJLyogSW5pdGlhbGl6ZSBy Y3ZfbXNzIHRvIFRDUF9NSU5fTVNTIHRvIGF2b2lkIGRpdmlzaW9uIGJ5IDAKZGlmZiAtLWdpdCBh L25ldC9pcHY0L3RjcF9pbnB1dC5jIGIvbmV0L2lwdjQvdGNwX2lucHV0LmMKaW5kZXggMDUyNTVh Mi4uMmYxMDdlNCAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdGNwX2lucHV0LmMKKysrIGIvbmV0L2lw djQvdGNwX2lucHV0LmMKQEAgLTE5NjYsNiArMTk2Niw4IEBAIHZvaWQgdGNwX2VudGVyX2xvc3Mo c3RydWN0IHNvY2sgKnNrKQogCQlORVRfSU5DX1NUQVRTKHNvY2tfbmV0KHNrKSwgTElOVVhfTUlC X1RDUFNBQ0tSRU5FR0lORyk7CiAJCXRwLT5zYWNrZWRfb3V0ID0gMDsKIAkJdHAtPmZhY2tldHNf b3V0ID0gMDsKKwkJLyogTWFyayBTQUNLIHJlbmVnaW5nIHVudGlsIHdlIHJlY292ZXIgZnJvbSB0 aGlzIGxvc3MgZXZlbnQuICovCisJCXRwLT5pc19zYWNrX3JlbmVnID0gMTsKIAl9CiAJdGNwX2Ns ZWFyX2FsbF9yZXRyYW5zX2hpbnRzKHRwKTsKIApAQCAtMjQ2Myw2ICsyNDY1LDcgQEAgc3RhdGlj IGJvb2wgdGNwX3RyeV91bmRvX3JlY292ZXJ5KHN0cnVjdCBzb2NrICpzaykKIAkJcmV0dXJuIHRy dWU7CiAJfQogCXRjcF9zZXRfY2Ffc3RhdGUoc2ssIFRDUF9DQV9PcGVuKTsKKwl0cC0+aXNfc2Fj a19yZW5lZyA9IDA7CiAJcmV0dXJuIGZhbHNlOwogfQogCkBAIC0yNDk0LDggKzI0OTcsMTAgQEAg c3RhdGljIGJvb2wgdGNwX3RyeV91bmRvX2xvc3Moc3RydWN0IHNvY2sgKnNrLCBib29sIGZydG9f dW5kbykKIAkJCU5FVF9JTkNfU1RBVFMoc29ja19uZXQoc2spLAogCQkJCQlMSU5VWF9NSUJfVENQ U1BVUklPVVNSVE9TKTsKIAkJaW5ldF9jc2soc2spLT5pY3NrX3JldHJhbnNtaXRzID0gMDsKLQkJ aWYgKGZydG9fdW5kbyB8fCB0Y3BfaXNfc2Fjayh0cCkpCisJCWlmIChmcnRvX3VuZG8gfHwgdGNw X2lzX3NhY2sodHApKSB7CiAJCQl0Y3Bfc2V0X2NhX3N0YXRlKHNrLCBUQ1BfQ0FfT3Blbik7CisJ CQl0cC0+aXNfc2Fja19yZW5lZyA9IDA7CisJCX0KIAkJcmV0dXJuIHRydWU7CiAJfQogCXJldHVy biBmYWxzZTsKQEAgLTM1ODksNiArMzU5NCw3IEBAIHN0YXRpYyBpbnQgdGNwX2FjayhzdHJ1Y3Qg c29jayAqc2ssIGNvbnN0IHN0cnVjdCBza19idWZmICpza2IsIGludCBmbGFnKQogCXN0cnVjdCB0 Y3Bfc2Fja3RhZ19zdGF0ZSBzYWNrX3N0YXRlOwogCXN0cnVjdCByYXRlX3NhbXBsZSBycyA9IHsg LnByaW9yX2RlbGl2ZXJlZCA9IDAgfTsKIAl1MzIgcHJpb3Jfc25kX3VuYSA9IHRwLT5zbmRfdW5h OworCWJvb2wgaXNfc2Fja19yZW5lZyA9IHRwLT5pc19zYWNrX3JlbmVnOwogCXUzMiBhY2tfc2Vx ID0gVENQX1NLQl9DQihza2IpLT5zZXE7CiAJdTMyIGFjayA9IFRDUF9TS0JfQ0Ioc2tiKS0+YWNr X3NlcTsKIAlib29sIGlzX2R1cGFjayA9IGZhbHNlOwpAQCAtMzcxMSw3ICszNzE3LDcgQEAgc3Rh dGljIGludCB0Y3BfYWNrKHN0cnVjdCBzb2NrICpzaywgY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNr YiwgaW50IGZsYWcpCiAJCXRjcF9zY2hlZHVsZV9sb3NzX3Byb2JlKHNrKTsKIAlkZWxpdmVyZWQg PSB0cC0+ZGVsaXZlcmVkIC0gZGVsaXZlcmVkOwkvKiBmcmVzaGx5IEFDS2VkIG9yIFNBQ0tlZCAq LwogCWxvc3QgPSB0cC0+bG9zdCAtIGxvc3Q7CQkJLyogZnJlc2hseSBtYXJrZWQgbG9zdCAqLwot CXRjcF9yYXRlX2dlbihzaywgZGVsaXZlcmVkLCBsb3N0LCAmbm93LCAmcnMpOworCXRjcF9yYXRl X2dlbihzaywgZGVsaXZlcmVkLCBsb3N0LCBpc19zYWNrX3JlbmVnLCAmbm93LCAmcnMpOwogCXRj cF9jb25nX2NvbnRyb2woc2ssIGFjaywgZGVsaXZlcmVkLCBmbGFnLCAmcnMpOwogCXRjcF94bWl0 X3JlY292ZXJ5KHNrLCByZXhtaXQpOwogCXJldHVybiAxOwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQv dGNwX3JhdGUuYyBiL25ldC9pcHY0L3RjcF9yYXRlLmMKaW5kZXggOWJlMTU4MS4uMTgzMDlmNSAx MDA2NDQKLS0tIGEvbmV0L2lwdjQvdGNwX3JhdGUuYworKysgYi9uZXQvaXB2NC90Y3BfcmF0ZS5j CkBAIC0xMDYsNyArMTA2LDcgQEAgdm9pZCB0Y3BfcmF0ZV9za2JfZGVsaXZlcmVkKHN0cnVjdCBz b2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAogLyogVXBkYXRlIHRoZSBjb25uZWN0aW9u IGRlbGl2ZXJ5IGluZm9ybWF0aW9uIGFuZCBnZW5lcmF0ZSBhIHJhdGUgc2FtcGxlLiAqLwogdm9p ZCB0Y3BfcmF0ZV9nZW4oc3RydWN0IHNvY2sgKnNrLCB1MzIgZGVsaXZlcmVkLCB1MzIgbG9zdCwK LQkJICBzdHJ1Y3Qgc2tiX21zdGFtcCAqbm93LCBzdHJ1Y3QgcmF0ZV9zYW1wbGUgKnJzKQorCQkg IGJvb2wgaXNfc2Fja19yZW5lZywgc3RydWN0IHNrYl9tc3RhbXAgKm5vdywgc3RydWN0IHJhdGVf c2FtcGxlICpycykKIHsKIAlzdHJ1Y3QgdGNwX3NvY2sgKnRwID0gdGNwX3NrKHNrKTsKIAl1MzIg c25kX3VzLCBhY2tfdXM7CkBAIC0xMjQsOCArMTI0LDEyIEBAIHZvaWQgdGNwX3JhdGVfZ2VuKHN0 cnVjdCBzb2NrICpzaywgdTMyIGRlbGl2ZXJlZCwgdTMyIGxvc3QsCiAKIAlycy0+YWNrZWRfc2Fj a2VkID0gZGVsaXZlcmVkOwkvKiBmcmVzaGx5IEFDS2VkIG9yIFNBQ0tlZCAqLwogCXJzLT5sb3Nz ZXMgPSBsb3N0OwkJLyogZnJlc2hseSBtYXJrZWQgbG9zdCAqLwotCS8qIFJldHVybiBhbiBpbnZh bGlkIHNhbXBsZSBpZiBubyB0aW1pbmcgaW5mb3JtYXRpb24gaXMgYXZhaWxhYmxlLiAqLwotCWlm ICghcnMtPnByaW9yX21zdGFtcC52NjQpIHsKKwkvKiBSZXR1cm4gYW4gaW52YWxpZCBzYW1wbGUg aWYgbm8gdGltaW5nIGluZm9ybWF0aW9uIGlzIGF2YWlsYWJsZSBvcgorCSAqIGluIHJlY292ZXJ5 IGZyb20gbG9zcyB3aXRoIFNBQ0sgcmVuZWdpbmcuIFJhdGUgc2FtcGxlcyB0YWtlbiBkdXJpbmcK KwkgKiBhIFNBQ0sgcmVuZWdpbmcgZXZlbnQgbWF5IG92ZXJlc3RpbWF0ZSBidyBieSBpbmNsdWRp bmcgcGFja2V0cyB0aGF0CisJICogd2VyZSBTQUNLZWQgYmVmb3JlIHRoZSByZW5lZy4KKwkgKi8K KwlpZiAoIXJzLT5wcmlvcl9tc3RhbXAudjY0IHx8IGlzX3NhY2tfcmVuZWcpIHsKIAkJcnMtPmRl bGl2ZXJlZCA9IC0xOwogCQlycy0+aW50ZXJ2YWxfdXMgPSAtMTsKIAkJcmV0dXJuOwotLSAKMi45 LjUKCgpGcm9tIDkzOWViZjRiNzNkNTA5N2NmYzMzODZjODY0ZmRiZDA3NjY2NmQ1YmQgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyYW4gQmVuIEVsaXNoYSA8ZXJhbmJlQG1lbGxhbm94 LmNvbT4KRGF0ZTogTW9uLCAxMyBOb3YgMjAxNyAxMDoxMToyNyArMDIwMApTdWJqZWN0OiBbUEFU Q0ggMjQvMzNdIG5ldC9tbHg1OiBGaXggcmF0ZSBsaW1pdCBwYWNrZXQgcGFjaW5nIG5hbWluZyBh bmQKIHN0cnVjdAoKWyBVcHN0cmVhbSBjb21taXQgMzdlOTJhOWQ0ZmUzOGRjM2U3MzA4OTEzNTc1 OTgzYTZhMDg4YzhkNCBdCgpJbiBtbHg1X2lmYywgc3RydWN0IHNpemUgd2FzIG5vdCBjb21wbGV0 ZSwgYW5kIHRodXMgZHJpdmVyIHdhcyBzZW5kaW5nCmdhcmJhZ2UgYWZ0ZXIgdGhlIGxhc3QgZGVm aW5lZCBmaWVsZC4gRml4ZWQgaXQgYnkgYWRkaW5nIHJlc2VydmVkIGZpZWxkCnRvIGNvbXBsZXRl IHRoZSBzdHJ1Y3Qgc2l6ZS4KCkluIGFkZGl0aW9uLCByZW5hbWUgYWxsIHNldF9yYXRlX2xpbWl0 IHRvIHNldF9wcF9yYXRlX2xpbWl0IHRvIGJlCmNvbXBsaWFudCB3aXRoIHRoZSBGaXJtd2FyZSA8 LT4gRHJpdmVyIGRlZmluaXRpb24uCgpGaXhlczogNzQ4NjIxNmIzYTBiICgie25ldCxJQn0vbWx4 NTogbWx4NV9pZmMgdXBkYXRlcyIpCkZpeGVzOiAxNDY2Y2M1YjIzZDEgKCJuZXQvbWx4NTogUmF0 ZSBsaW1pdCB0YWJsZXMgc3VwcG9ydCIpClNpZ25lZC1vZmYtYnk6IEVyYW4gQmVuIEVsaXNoYSA8 ZXJhbmJlQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogU2FlZWQgTWFoYW1lZWQgPHNhZWVk bUBtZWxsYW5veC5jb20+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9j b3JlL2NtZC5jIHwgIDQgKystLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9j b3JlL3JsLmMgIHwgMjIgKysrKysrKysrKystLS0tLS0tLS0tLQogaW5jbHVkZS9saW51eC9tbHg1 L21seDVfaWZjLmggICAgICAgICAgICAgICAgIHwgIDggKysrKystLS0KIDMgZmlsZXMgY2hhbmdl ZCwgMTggaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jIGIvZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jCmluZGV4IGY3ZmFiZWMuLjRjM2YxY2IgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYwor KysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMKQEAgLTM2 Nyw3ICszNjcsNyBAQCBzdGF0aWMgaW50IG1seDVfaW50ZXJuYWxfZXJyX3JldF92YWx1ZShzdHJ1 Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1MTYgb3AsCiAJY2FzZSBNTFg1X0NNRF9PUF9RVUVSWV9W UE9SVF9DT1VOVEVSOgogCWNhc2UgTUxYNV9DTURfT1BfQUxMT0NfUV9DT1VOVEVSOgogCWNhc2Ug TUxYNV9DTURfT1BfUVVFUllfUV9DT1VOVEVSOgotCWNhc2UgTUxYNV9DTURfT1BfU0VUX1JBVEVf TElNSVQ6CisJY2FzZSBNTFg1X0NNRF9PUF9TRVRfUFBfUkFURV9MSU1JVDoKIAljYXNlIE1MWDVf Q01EX09QX1FVRVJZX1JBVEVfTElNSVQ6CiAJY2FzZSBNTFg1X0NNRF9PUF9BTExPQ19QRDoKIAlj YXNlIE1MWDVfQ01EX09QX0FMTE9DX1VBUjoKQEAgLTUwMiw3ICs1MDIsNyBAQCBjb25zdCBjaGFy ICptbHg1X2NvbW1hbmRfc3RyKGludCBjb21tYW5kKQogCU1MWDVfQ09NTUFORF9TVFJfQ0FTRShB TExPQ19RX0NPVU5URVIpOwogCU1MWDVfQ09NTUFORF9TVFJfQ0FTRShERUFMTE9DX1FfQ09VTlRF Uik7CiAJTUxYNV9DT01NQU5EX1NUUl9DQVNFKFFVRVJZX1FfQ09VTlRFUik7Ci0JTUxYNV9DT01N QU5EX1NUUl9DQVNFKFNFVF9SQVRFX0xJTUlUKTsKKwlNTFg1X0NPTU1BTkRfU1RSX0NBU0UoU0VU X1BQX1JBVEVfTElNSVQpOwogCU1MWDVfQ09NTUFORF9TVFJfQ0FTRShRVUVSWV9SQVRFX0xJTUlU KTsKIAlNTFg1X0NPTU1BTkRfU1RSX0NBU0UoQUxMT0NfUEQpOwogCU1MWDVfQ09NTUFORF9TVFJf Q0FTRShERUFMTE9DX1BEKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxh bm94L21seDUvY29yZS9ybC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9j b3JlL3JsLmMKaW5kZXggMTA0OTAyYS4uMmJlOWVjNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3JsLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJu ZXQvbWVsbGFub3gvbWx4NS9jb3JlL3JsLmMKQEAgLTYwLDE2ICs2MCwxNiBAQCBzdGF0aWMgc3Ry dWN0IG1seDVfcmxfZW50cnkgKmZpbmRfcmxfZW50cnkoc3RydWN0IG1seDVfcmxfdGFibGUgKnRh YmxlLAogCXJldHVybiByZXRfZW50cnk7CiB9CiAKLXN0YXRpYyBpbnQgbWx4NV9zZXRfcmF0ZV9s aW1pdF9jbWQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwKK3N0YXRpYyBpbnQgbWx4NV9zZXRf cHBfcmF0ZV9saW1pdF9jbWQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwKIAkJCQkgICB1MzIg cmF0ZSwgdTE2IGluZGV4KQogewotCXUzMiBpbltNTFg1X1NUX1NaX0RXKHNldF9yYXRlX2xpbWl0 X2luKV0gICA9IHswfTsKLQl1MzIgb3V0W01MWDVfU1RfU1pfRFcoc2V0X3JhdGVfbGltaXRfb3V0 KV0gPSB7MH07CisJdTMyIGluW01MWDVfU1RfU1pfRFcoc2V0X3BwX3JhdGVfbGltaXRfaW4pXSAg ID0gezB9OworCXUzMiBvdXRbTUxYNV9TVF9TWl9EVyhzZXRfcHBfcmF0ZV9saW1pdF9vdXQpXSA9 IHswfTsKIAotCU1MWDVfU0VUKHNldF9yYXRlX2xpbWl0X2luLCBpbiwgb3Bjb2RlLAotCQkgTUxY NV9DTURfT1BfU0VUX1JBVEVfTElNSVQpOwotCU1MWDVfU0VUKHNldF9yYXRlX2xpbWl0X2luLCBp biwgcmF0ZV9saW1pdF9pbmRleCwgaW5kZXgpOwotCU1MWDVfU0VUKHNldF9yYXRlX2xpbWl0X2lu LCBpbiwgcmF0ZV9saW1pdCwgcmF0ZSk7CisJTUxYNV9TRVQoc2V0X3BwX3JhdGVfbGltaXRfaW4s IGluLCBvcGNvZGUsCisJCSBNTFg1X0NNRF9PUF9TRVRfUFBfUkFURV9MSU1JVCk7CisJTUxYNV9T RVQoc2V0X3BwX3JhdGVfbGltaXRfaW4sIGluLCByYXRlX2xpbWl0X2luZGV4LCBpbmRleCk7CisJ TUxYNV9TRVQoc2V0X3BwX3JhdGVfbGltaXRfaW4sIGluLCByYXRlX2xpbWl0LCByYXRlKTsKIAly ZXR1cm4gbWx4NV9jbWRfZXhlYyhkZXYsIGluLCBzaXplb2YoaW4pLCBvdXQsIHNpemVvZihvdXQp KTsKIH0KIApAQCAtMTA4LDcgKzEwOCw3IEBAIGludCBtbHg1X3JsX2FkZF9yYXRlKHN0cnVjdCBt bHg1X2NvcmVfZGV2ICpkZXYsIHUzMiByYXRlLCB1MTYgKmluZGV4KQogCQllbnRyeS0+cmVmY291 bnQrKzsKIAl9IGVsc2UgewogCQkvKiBuZXcgcmF0ZSBsaW1pdCAqLwotCQllcnIgPSBtbHg1X3Nl dF9yYXRlX2xpbWl0X2NtZChkZXYsIHJhdGUsIGVudHJ5LT5pbmRleCk7CisJCWVyciA9IG1seDVf c2V0X3BwX3JhdGVfbGltaXRfY21kKGRldiwgcmF0ZSwgZW50cnktPmluZGV4KTsKIAkJaWYgKGVy cikgewogCQkJbWx4NV9jb3JlX2VycihkZXYsICJGYWlsZWQgY29uZmlndXJpbmcgcmF0ZTogJXUg KCVkKVxuIiwKIAkJCQkgICAgICByYXRlLCBlcnIpOwpAQCAtMTQ0LDcgKzE0NCw3IEBAIHZvaWQg bWx4NV9ybF9yZW1vdmVfcmF0ZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1MzIgcmF0ZSkK IAllbnRyeS0+cmVmY291bnQtLTsKIAlpZiAoIWVudHJ5LT5yZWZjb3VudCkgewogCQkvKiBuZWVk IHRvIHJlbW92ZSByYXRlICovCi0JCW1seDVfc2V0X3JhdGVfbGltaXRfY21kKGRldiwgMCwgZW50 cnktPmluZGV4KTsKKwkJbWx4NV9zZXRfcHBfcmF0ZV9saW1pdF9jbWQoZGV2LCAwLCBlbnRyeS0+ aW5kZXgpOwogCQllbnRyeS0+cmF0ZSA9IDA7CiAJfQogCkBAIC0xOTcsOCArMTk3LDggQEAgdm9p ZCBtbHg1X2NsZWFudXBfcmxfdGFibGUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldikKIAkvKiBD bGVhciBhbGwgY29uZmlndXJlZCByYXRlcyAqLwogCWZvciAoaSA9IDA7IGkgPCB0YWJsZS0+bWF4 X3NpemU7IGkrKykKIAkJaWYgKHRhYmxlLT5ybF9lbnRyeVtpXS5yYXRlKQotCQkJbWx4NV9zZXRf cmF0ZV9saW1pdF9jbWQoZGV2LCAwLAotCQkJCQkJdGFibGUtPnJsX2VudHJ5W2ldLmluZGV4KTsK KwkJCW1seDVfc2V0X3BwX3JhdGVfbGltaXRfY21kKGRldiwgMCwKKwkJCQkJCSAgIHRhYmxlLT5y bF9lbnRyeVtpXS5pbmRleCk7CiAKIAlrZnJlZShkZXYtPnByaXYucmxfdGFibGUucmxfZW50cnkp OwogfQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmggYi9pbmNsdWRl L2xpbnV4L21seDUvbWx4NV9pZmMuaAppbmRleCA2MDQ1ZDRkLi4yNWVkMTA1IDEwMDY0NAotLS0g YS9pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaAorKysgYi9pbmNsdWRlL2xpbnV4L21seDUv bWx4NV9pZmMuaApAQCAtMTQzLDcgKzE0Myw3IEBAIGVudW0gewogCU1MWDVfQ01EX09QX0FMTE9D X1FfQ09VTlRFUiAgICAgICAgICAgICAgID0gMHg3NzEsCiAJTUxYNV9DTURfT1BfREVBTExPQ19R X0NPVU5URVIgICAgICAgICAgICAgPSAweDc3MiwKIAlNTFg1X0NNRF9PUF9RVUVSWV9RX0NPVU5U RVIgICAgICAgICAgICAgICA9IDB4NzczLAotCU1MWDVfQ01EX09QX1NFVF9SQVRFX0xJTUlUICAg ICAgICAgICAgICAgID0gMHg3ODAsCisJTUxYNV9DTURfT1BfU0VUX1BQX1JBVEVfTElNSVQgICAg ICAgICAgICAgPSAweDc4MCwKIAlNTFg1X0NNRF9PUF9RVUVSWV9SQVRFX0xJTUlUICAgICAgICAg ICAgICA9IDB4NzgxLAogCU1MWDVfQ01EX09QX0FMTE9DX1BEICAgICAgICAgICAgICAgICAgICAg ID0gMHg4MDAsCiAJTUxYNV9DTURfT1BfREVBTExPQ19QRCAgICAgICAgICAgICAgICAgICAgPSAw eDgwMSwKQEAgLTY2ODksNyArNjY4OSw3IEBAIHN0cnVjdCBtbHg1X2lmY19hZGRfdnhsYW5fdWRw X2Rwb3J0X2luX2JpdHMgewogCXU4ICAgICAgICAgdnhsYW5fdWRwX3BvcnRbMHgxMF07CiB9Owog Ci1zdHJ1Y3QgbWx4NV9pZmNfc2V0X3JhdGVfbGltaXRfb3V0X2JpdHMgeworc3RydWN0IG1seDVf aWZjX3NldF9wcF9yYXRlX2xpbWl0X291dF9iaXRzIHsKIAl1OCAgICAgICAgIHN0YXR1c1sweDhd OwogCXU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfOFsweDE4XTsKIApAQCAtNjY5OCw3ICs2Njk4LDcg QEAgc3RydWN0IG1seDVfaWZjX3NldF9yYXRlX2xpbWl0X291dF9iaXRzIHsKIAl1OCAgICAgICAg IHJlc2VydmVkX2F0XzQwWzB4NDBdOwogfTsKIAotc3RydWN0IG1seDVfaWZjX3NldF9yYXRlX2xp bWl0X2luX2JpdHMgeworc3RydWN0IG1seDVfaWZjX3NldF9wcF9yYXRlX2xpbWl0X2luX2JpdHMg ewogCXU4ICAgICAgICAgb3Bjb2RlWzB4MTBdOwogCXU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfMTBb MHgxMF07CiAKQEAgLTY3MTEsNiArNjcxMSw4IEBAIHN0cnVjdCBtbHg1X2lmY19zZXRfcmF0ZV9s aW1pdF9pbl9iaXRzIHsKIAl1OCAgICAgICAgIHJlc2VydmVkX2F0XzYwWzB4MjBdOwogCiAJdTgg ICAgICAgICByYXRlX2xpbWl0WzB4MjBdOworCisJdTggICAgICAgICByZXNlcnZlZF9hdF9hMFsw eDE2MF07CiB9OwogCiBzdHJ1Y3QgbWx4NV9pZmNfYWNjZXNzX3JlZ2lzdGVyX291dF9iaXRzIHsK LS0gCjIuOS41CgoKRnJvbSA5YTQyMzllNWFlOTA4YjMxYmVhNzMyOTA3ZWNmYWY2MWFiMzdlZTBi IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBHYWwgUHJlc3NtYW4gPGdhbHBAbWVsbGFu b3guY29tPgpEYXRlOiBUdWUsIDIxIE5vdiAyMDE3IDE3OjQ5OjM2ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAyNS8zM10gbmV0L21seDVlOiBGaXggZmVhdHVyZXMgY2hlY2sgb2YgSVB2NiB0cmFmZmlj CgpbIFVwc3RyZWFtIGNvbW1pdCAyOTg5YWQxZWMwMzAyMWVlNmQyMTkzYzM1NDE0ZjFkOTcwYTI0 M2RlIF0KClRoZSBhc3N1bXB0aW9uIHRoYXQgdGhlIG5leHQgaGVhZGVyIGZpZWxkIGNvbnRhaW5z IHRoZSB0cmFuc3BvcnQKcHJvdG9jb2wgaXMgd3JvbmcgZm9yIElQdjYgcGFja2V0cyB3aXRoIGV4 dGVuc2lvbiBoZWFkZXJzLgpJbnN0ZWFkLCB3ZSBzaG91bGQgbG9vayB0aGUgaW5uZXItbW9zdCBu ZXh0IGhlYWRlciBmaWVsZCBpbiB0aGUgYnVmZmVyLgpUaGlzIHdpbGwgZml4IFRTTyBvZmZsb2Fk IGZvciB0dW5uZWxzIG92ZXIgSVB2NiB3aXRoIGV4dGVuc2lvbiBoZWFkZXJzLgoKUGVyZm9ybWFu Y2UgdGVzdGluZzogMTkuMjV4IGltcHJvdmVtZW50LCBjb29sIQpNZWFzdXJpbmcgYmFuZHdpZHRo IG9mIDE2IHRocmVhZHMgVENQIHRyYWZmaWMgb3ZlciBJUHY2IEdSRSB0YXAuCkNQVTogSW50ZWwo UikgWGVvbihSKSBDUFUgRTUtMjY2MCB2MiBAIDIuMjBHSHoKTklDOiBNZWxsYW5veCBUZWNobm9s b2dpZXMgTVQyODgwMCBGYW1pbHkgW0Nvbm5lY3RYLTUgRXhdClRTTzogRW5hYmxlZApCZWZvcmU6 IDQsOTI2LjI0ICBNYnBzCk5vdyAgIDogOTQsODI3LjkxIE1icHMKCkZpeGVzOiBiM2Y2M2MzZDVl MmMgKCJuZXQvbWx4NWU6IEFkZCBuZXRkZXYgc3VwcG9ydCBmb3IgVlhMQU4gdHVubmVsaW5nIikK U2lnbmVkLW9mZi1ieTogR2FsIFByZXNzbWFuIDxnYWxwQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9m Zi1ieTogU2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+Ci0tLQogZHJpdmVycy9u ZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYyB8IDMgKystCiAxIGZpbGUg Y2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYyBiL2RyaXZlcnMv bmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMKaW5kZXggOWQzNzIyOS4u Mzg5ODFkYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9j b3JlL2VuX21haW4uYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2Nv cmUvZW5fbWFpbi5jCkBAIC0zMDM4LDYgKzMwMzgsNyBAQCBzdGF0aWMgbmV0ZGV2X2ZlYXR1cmVz X3QgbWx4NWVfdnhsYW5fZmVhdHVyZXNfY2hlY2soc3RydWN0IG1seDVlX3ByaXYgKnByaXYsCiAJ CQkJCQkgICAgc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJCQkJCSAgICBuZXRkZXZfZmVhdHVyZXNf dCBmZWF0dXJlcykKIHsKKwl1bnNpZ25lZCBpbnQgb2Zmc2V0ID0gMDsKIAlzdHJ1Y3QgdWRwaGRy ICp1ZHBoOwogCXUxNiBwcm90bzsKIAl1MTYgcG9ydCA9IDA7CkBAIC0zMDQ3LDcgKzMwNDgsNyBA QCBzdGF0aWMgbmV0ZGV2X2ZlYXR1cmVzX3QgbWx4NWVfdnhsYW5fZmVhdHVyZXNfY2hlY2soc3Ry dWN0IG1seDVlX3ByaXYgKnByaXYsCiAJCXByb3RvID0gaXBfaGRyKHNrYiktPnByb3RvY29sOwog CQlicmVhazsKIAljYXNlIGh0b25zKEVUSF9QX0lQVjYpOgotCQlwcm90byA9IGlwdjZfaGRyKHNr YiktPm5leHRoZHI7CisJCXByb3RvID0gaXB2Nl9maW5kX2hkcihza2IsICZvZmZzZXQsIC0xLCBO VUxMLCBOVUxMKTsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJZ290byBvdXQ7Ci0tIAoyLjkuNQoK CkZyb20gYzJiZmE2MjViYWJkODllYzM1OWI3YTlkOTgxOTI3MDZkYWU1MjNhOCBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogR2FsIFByZXNzbWFuIDxnYWxwQG1lbGxhbm94LmNvbT4KRGF0 ZTogVGh1LCAyMyBOb3YgMjAxNyAxMzo1MjoyOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMjYvMzNd IG5ldC9tbHg1ZTogRml4IHBvc3NpYmxlIGRlYWRsb2NrIG9mIFZYTEFOIGxvY2sKClsgVXBzdHJl YW0gY29tbWl0IDYzMjM1MTQxMTY0MDRjYzY1MWRmMWI3ZmZmYTEzMTFkZGY4Y2U2NDcgXQoKbWx4 NWVfdnhsYW5fbG9va3VwX3BvcnQgaXMgY2FsbGVkIGJvdGggZnJvbSBtbHg1ZV9hZGRfdnhsYW5f cG9ydCAodXNlcgpjb250ZXh0KSBhbmQgbWx4NWVfZmVhdHVyZXNfY2hlY2sgKHNvZnRpcnEpLCBi dXQgdGhlIGxvY2sgYWNxdWlyZWQgZG9lcwpub3QgZGlzYWJsZSBib3R0b20gaGFsZiBhbmQgbWln aHQgcmVzdWx0IGluIGRlYWRsb2NrLiBGaXggaXQgYnkgc2ltcGx5CnJlcGxhY2luZyBzcGluX2xv Y2soKSB3aXRoIHNwaW5fbG9ja19iaCgpLgpXaGlsZSBhdCBpdCwgcmVwbGFjZSBhbGwgdW5uZWNl c3Nhcnkgc3Bpbl9sb2NrX2lycSgpIHRvIHNwaW5fbG9ja19iaCgpLgoKbG9ja2RlcCdzIFdBUk5J Tkc6IGluY29uc2lzdGVudCBsb2NrIHN0YXRlClsgIDY1NC4wMjgxMzZdIGluY29uc2lzdGVudCB7 U09GVElSUS1PTi1XfSAtPiB7SU4tU09GVElSUS1XfSB1c2FnZS4KWyAgNjU0LjAyODIyOV0gc3dh cHBlci81LzAgW0hDMFswXTpTQzFbOV06SEUxOlNFMF0gdGFrZXM6ClsgIDY1NC4wMjgzMjFdICAo JigmdnhsYW5fZGItPmxvY2spLT5ybG9jayl7Ky4/Ln0sIGF0OiBbPGZmZmZmZmZmYTA2ZTdmMGU+ XSBtbHg1ZV92eGxhbl9sb29rdXBfcG9ydCsweDFlLzB4NTAgW21seDVfY29yZV0KWyAgNjU0LjAy ODUyOF0ge1NPRlRJUlEtT04tV30gc3RhdGUgd2FzIHJlZ2lzdGVyZWQgYXQ6ClsgIDY1NC4wMjg2 MDddICAgX3Jhd19zcGluX2xvY2srMHgzYy8weDcwClsgIDY1NC4wMjg2ODldICAgbWx4NWVfdnhs YW5fbG9va3VwX3BvcnQrMHgxZS8weDUwIFttbHg1X2NvcmVdClsgIDY1NC4wMjg3OTRdICAgbWx4 NWVfdnhsYW5fYWRkX3BvcnQrMHgyZS8weDEyMCBbbWx4NV9jb3JlXQpbICA2NTQuMDI4ODc4XSAg IHByb2Nlc3Nfb25lX3dvcmsrMHgxZTkvMHg2NDAKWyAgNjU0LjAyODk0Ml0gICB3b3JrZXJfdGhy ZWFkKzB4NGEvMHgzZjAKWyAgNjU0LjAyOTAwMl0gICBrdGhyZWFkKzB4MTQxLzB4MTgwClsgIDY1 NC4wMjkwNTZdICAgcmV0X2Zyb21fZm9yaysweDI0LzB4MzAKWyAgNjU0LjAyOTExNF0gaXJxIGV2 ZW50IHN0YW1wOiA1NzkwODgKWyAgNjU0LjAyOTE3NF0gaGFyZGlycXMgbGFzdCAgZW5hYmxlZCBh dCAoNTc5MDg4KTogWzxmZmZmZmZmZjgxOGY0NzVhPl0gaXA2X2ZpbmlzaF9vdXRwdXQyKzB4NDlh LzB4OGMwClsgIDY1NC4wMjkzMDldIGhhcmRpcnFzIGxhc3QgZGlzYWJsZWQgYXQgKDU3OTA4Nyk6 IFs8ZmZmZmZmZmY4MThmNDcwZT5dIGlwNl9maW5pc2hfb3V0cHV0MisweDQ0ZS8weDhjMApbICA2 NTQuMDI5NDQ2XSBzb2Z0aXJxcyBsYXN0ICBlbmFibGVkIGF0ICg1NzkwMzApOiBbPGZmZmZmZmZm ODEwYjNiM2Q+XSBpcnFfZW50ZXIrMHg2ZC8weDgwClsgIDY1NC4wMjk1NjddIHNvZnRpcnFzIGxh c3QgZGlzYWJsZWQgYXQgKDU3OTAzMSk6IFs8ZmZmZmZmZmY4MTBiM2MwNT5dIGlycV9leGl0KzB4 YjUvMHhjMApbICA2NTQuMDI5Njg0XSBvdGhlciBpbmZvIHRoYXQgbWlnaHQgaGVscCB1cyBkZWJ1 ZyB0aGlzOgpbICA2NTQuMDI5NzgxXSAgUG9zc2libGUgdW5zYWZlIGxvY2tpbmcgc2NlbmFyaW86 CgpbICA2NTQuMDI5ODY4XSAgICAgICAgQ1BVMApbICA2NTQuMDI5OTA4XSAgICAgICAgLS0tLQpb ICA2NTQuMDI5OTQ3XSAgIGxvY2soJigmdnhsYW5fZGItPmxvY2spLT5ybG9jayk7ClsgIDY1NC4w MzAwNDVdICAgPEludGVycnVwdD4KWyAgNjU0LjAzMDA5MF0gICAgIGxvY2soJigmdnhsYW5fZGIt PmxvY2spLT5ybG9jayk7ClsgIDY1NC4wMzAxNjJdCiAqKiogREVBRExPQ0sgKioqCgpGaXhlczog YjNmNjNjM2Q1ZTJjICgibmV0L21seDVlOiBBZGQgbmV0ZGV2IHN1cHBvcnQgZm9yIFZYTEFOIHR1 bm5lbGluZyIpClNpZ25lZC1vZmYtYnk6IEdhbCBQcmVzc21hbiA8Z2FscEBtZWxsYW5veC5jb20+ ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0K IGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS92eGxhbi5jIHwgMjAgKysr KysrKysrKy0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCAxMCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9t bHg1L2NvcmUvdnhsYW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29y ZS92eGxhbi5jCmluZGV4IDA3YTliYTYuLmY4MjM4MjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0 L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS92eGxhbi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seDUvY29yZS92eGxhbi5jCkBAIC03MSw5ICs3MSw5IEBAIHN0cnVj dCBtbHg1ZV92eGxhbiAqbWx4NWVfdnhsYW5fbG9va3VwX3BvcnQoc3RydWN0IG1seDVlX3ByaXYg KnByaXYsIHUxNiBwb3J0KQogCXN0cnVjdCBtbHg1ZV92eGxhbl9kYiAqdnhsYW5fZGIgPSAmcHJp di0+dnhsYW47CiAJc3RydWN0IG1seDVlX3Z4bGFuICp2eGxhbjsKIAotCXNwaW5fbG9jaygmdnhs YW5fZGItPmxvY2spOworCXNwaW5fbG9ja19iaCgmdnhsYW5fZGItPmxvY2spOwogCXZ4bGFuID0g cmFkaXhfdHJlZV9sb29rdXAoJnZ4bGFuX2RiLT50cmVlLCBwb3J0KTsKLQlzcGluX3VubG9jaygm dnhsYW5fZGItPmxvY2spOworCXNwaW5fdW5sb2NrX2JoKCZ2eGxhbl9kYi0+bG9jayk7CiAKIAly ZXR1cm4gdnhsYW47CiB9CkBAIC0xMDAsOSArMTAwLDkgQEAgc3RhdGljIHZvaWQgbWx4NWVfdnhs YW5fYWRkX3BvcnQoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCiAJdnhsYW4tPnVkcF9wb3J0 ID0gcG9ydDsKIAotCXNwaW5fbG9ja19pcnEoJnZ4bGFuX2RiLT5sb2NrKTsKKwlzcGluX2xvY2tf YmgoJnZ4bGFuX2RiLT5sb2NrKTsKIAllcnIgPSByYWRpeF90cmVlX2luc2VydCgmdnhsYW5fZGIt PnRyZWUsIHZ4bGFuLT51ZHBfcG9ydCwgdnhsYW4pOwotCXNwaW5fdW5sb2NrX2lycSgmdnhsYW5f ZGItPmxvY2spOworCXNwaW5fdW5sb2NrX2JoKCZ2eGxhbl9kYi0+bG9jayk7CiAJaWYgKGVycikK IAkJZ290byBlcnJfZnJlZTsKIApAQCAtMTIxLDkgKzEyMSw5IEBAIHN0YXRpYyB2b2lkIF9fbWx4 NWVfdnhsYW5fY29yZV9kZWxfcG9ydChzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiwgdTE2IHBvcnQp CiAJc3RydWN0IG1seDVlX3Z4bGFuX2RiICp2eGxhbl9kYiA9ICZwcml2LT52eGxhbjsKIAlzdHJ1 Y3QgbWx4NWVfdnhsYW4gKnZ4bGFuOwogCi0Jc3Bpbl9sb2NrX2lycSgmdnhsYW5fZGItPmxvY2sp OworCXNwaW5fbG9ja19iaCgmdnhsYW5fZGItPmxvY2spOwogCXZ4bGFuID0gcmFkaXhfdHJlZV9k ZWxldGUoJnZ4bGFuX2RiLT50cmVlLCBwb3J0KTsKLQlzcGluX3VubG9ja19pcnEoJnZ4bGFuX2Ri LT5sb2NrKTsKKwlzcGluX3VubG9ja19iaCgmdnhsYW5fZGItPmxvY2spOwogCiAJaWYgKCF2eGxh bikKIAkJcmV0dXJuOwpAQCAtMTcxLDEyICsxNzEsMTIgQEAgdm9pZCBtbHg1ZV92eGxhbl9jbGVh bnVwKHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2KQogCXN0cnVjdCBtbHg1ZV92eGxhbiAqdnhsYW47 CiAJdW5zaWduZWQgaW50IHBvcnQgPSAwOwogCi0Jc3Bpbl9sb2NrX2lycSgmdnhsYW5fZGItPmxv Y2spOworCXNwaW5fbG9ja19iaCgmdnhsYW5fZGItPmxvY2spOwogCXdoaWxlIChyYWRpeF90cmVl X2dhbmdfbG9va3VwKCZ2eGxhbl9kYi0+dHJlZSwgKHZvaWQgKiopJnZ4bGFuLCBwb3J0LCAxKSkg ewogCQlwb3J0ID0gdnhsYW4tPnVkcF9wb3J0OwotCQlzcGluX3VubG9ja19pcnEoJnZ4bGFuX2Ri LT5sb2NrKTsKKwkJc3Bpbl91bmxvY2tfYmgoJnZ4bGFuX2RiLT5sb2NrKTsKIAkJX19tbHg1ZV92 eGxhbl9jb3JlX2RlbF9wb3J0KHByaXYsICh1MTYpcG9ydCk7Ci0JCXNwaW5fbG9ja19pcnEoJnZ4 bGFuX2RiLT5sb2NrKTsKKwkJc3Bpbl9sb2NrX2JoKCZ2eGxhbl9kYi0+bG9jayk7CiAJfQotCXNw aW5fdW5sb2NrX2lycSgmdnhsYW5fZGItPmxvY2spOworCXNwaW5fdW5sb2NrX2JoKCZ2eGxhbl9k Yi0+bG9jayk7CiB9Ci0tIAoyLjkuNQoKCkZyb20gMDg2MTkyNGQ2NjkwMDE5MjE2NDlhNzRiODFk YWRlZTZmZWFhNTJmYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogR2FsIFByZXNzbWFu IDxnYWxwQG1lbGxhbm94LmNvbT4KRGF0ZTogU3VuLCAzIERlYyAyMDE3IDEzOjU4OjUwICswMjAw ClN1YmplY3Q6IFtQQVRDSCAyNy8zM10gbmV0L21seDVlOiBBZGQgcmVmY291bnQgdG8gVlhMQU4g c3RydWN0dXJlCgpbIFVwc3RyZWFtIGNvbW1pdCAyM2Y0Y2MyY2Q5ZWQ5MjU3MDY0NzIyMGFjYTYw ZDAxOTdkOGMxZmE5IF0KCkEgcmVmY291bnQgbWVjaGFuaXNtIG11c3QgYmUgaW1wbGVtZW50ZWQg aW4gb3JkZXIgdG8gcHJldmVudCB1bndhbnRlZApzY2VuYXJpb3Mgc3VjaCBhczoKLSBPcGVuIGFu IElQdjQgVlhMQU4gaW50ZXJmYWNlCi0gT3BlbiBhbiBJUHY2IFZYTEFOIGludGVyZmFjZSAoZGlm ZmVyZW50IHNvY2tldCkKLSBSZW1vdmUgb25lIG9mIHRoZSBpbnRlcmZhY2VzCgpXaXRoIGN1cnJl bnQgaW1wbGVtZW50YXRpb24sIHRoZSBVRFAgcG9ydCB3aWxsIGJlIHJlbW92ZWQgZnJvbSBvdXIg VlhMQU4KZGF0YWJhc2UgYW5kIHR1cm4gb2ZmIHRoZSBvZmZsb2FkcyBmb3IgdGhlIG90aGVyIGlu dGVyZmFjZSwgd2hpY2ggaXMKc3RpbGwgYWN0aXZlLgpUaGUgcmVmZXJlbmNlIGNvdW50IG1lY2hh bmlzbSB3aWxsIG9ubHkgYWxsb3cgVURQIHBvcnQgcmVtb3ZhbHMgb25jZSBhbGwKY29uc3VtZXJz IGFyZSBnb25lLgoKRml4ZXM6IGIzZjYzYzNkNWUyYyAoIm5ldC9tbHg1ZTogQWRkIG5ldGRldiBz dXBwb3J0IGZvciBWWExBTiB0dW5uZWxpbmciKQpTaWduZWQtb2ZmLWJ5OiBHYWwgUHJlc3NtYW4g PGdhbHBAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBTYWVlZCBNYWhhbWVlZCA8c2FlZWRt QG1lbGxhbm94LmNvbT4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2Nv cmUvdnhsYW4uYyB8IDUwICsrKysrKysrKysrKystLS0tLS0tLS0tLS0KIGRyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seDUvY29yZS92eGxhbi5oIHwgIDEgKwogMiBmaWxlcyBjaGFuZ2Vk LCAyOCBpbnNlcnRpb25zKCspLCAyMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJz L25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvdnhsYW4uYyBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seDUvY29yZS92eGxhbi5jCmluZGV4IGY4MjM4MjcuLjI1Zjc4MjMg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS92eGxh bi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS92eGxhbi5j CkBAIC04OCw4ICs4OCwxMSBAQCBzdGF0aWMgdm9pZCBtbHg1ZV92eGxhbl9hZGRfcG9ydChzdHJ1 Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJc3RydWN0IG1seDVlX3Z4bGFuICp2eGxhbjsKIAlpbnQg ZXJyOwogCi0JaWYgKG1seDVlX3Z4bGFuX2xvb2t1cF9wb3J0KHByaXYsIHBvcnQpKQorCXZ4bGFu ID0gbWx4NWVfdnhsYW5fbG9va3VwX3BvcnQocHJpdiwgcG9ydCk7CisJaWYgKHZ4bGFuKSB7CisJ CWF0b21pY19pbmMoJnZ4bGFuLT5yZWZjb3VudCk7CiAJCWdvdG8gZnJlZV93b3JrOworCX0KIAog CWlmIChtbHg1ZV92eGxhbl9jb3JlX2FkZF9wb3J0X2NtZChwcml2LT5tZGV2LCBwb3J0KSkKIAkJ Z290byBmcmVlX3dvcms7CkBAIC05OSw2ICsxMDIsNyBAQCBzdGF0aWMgdm9pZCBtbHg1ZV92eGxh bl9hZGRfcG9ydChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJCWdvdG8gZXJyX2RlbGV0ZV9w b3J0OwogCiAJdnhsYW4tPnVkcF9wb3J0ID0gcG9ydDsKKwlhdG9taWNfc2V0KCZ2eGxhbi0+cmVm Y291bnQsIDEpOwogCiAJc3Bpbl9sb2NrX2JoKCZ2eGxhbl9kYi0+bG9jayk7CiAJZXJyID0gcmFk aXhfdHJlZV9pbnNlcnQoJnZ4bGFuX2RiLT50cmVlLCB2eGxhbi0+dWRwX3BvcnQsIHZ4bGFuKTsK QEAgLTExNiwzMiArMTIwLDMzIEBAIHN0YXRpYyB2b2lkIG1seDVlX3Z4bGFuX2FkZF9wb3J0KHN0 cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAlrZnJlZSh2eGxhbl93b3JrKTsKIH0KIAotc3RhdGlj IHZvaWQgX19tbHg1ZV92eGxhbl9jb3JlX2RlbF9wb3J0KHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2 LCB1MTYgcG9ydCkKK3N0YXRpYyB2b2lkIG1seDVlX3Z4bGFuX2RlbF9wb3J0KHN0cnVjdCB3b3Jr X3N0cnVjdCAqd29yaykKIHsKKwlzdHJ1Y3QgbWx4NWVfdnhsYW5fd29yayAqdnhsYW5fd29yayA9 CisJCWNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgbWx4NWVfdnhsYW5fd29yaywgd29yayk7CisJ c3RydWN0IG1seDVlX3ByaXYgKnByaXYgICAgICAgICA9IHZ4bGFuX3dvcmstPnByaXY7CiAJc3Ry dWN0IG1seDVlX3Z4bGFuX2RiICp2eGxhbl9kYiA9ICZwcml2LT52eGxhbjsKKwl1MTYgcG9ydCA9 IHZ4bGFuX3dvcmstPnBvcnQ7CiAJc3RydWN0IG1seDVlX3Z4bGFuICp2eGxhbjsKKwlib29sIHJl bW92ZSA9IGZhbHNlOwogCiAJc3Bpbl9sb2NrX2JoKCZ2eGxhbl9kYi0+bG9jayk7Ci0JdnhsYW4g PSByYWRpeF90cmVlX2RlbGV0ZSgmdnhsYW5fZGItPnRyZWUsIHBvcnQpOwotCXNwaW5fdW5sb2Nr X2JoKCZ2eGxhbl9kYi0+bG9jayk7Ci0KKwl2eGxhbiA9IHJhZGl4X3RyZWVfbG9va3VwKCZ2eGxh bl9kYi0+dHJlZSwgcG9ydCk7CiAJaWYgKCF2eGxhbikKLQkJcmV0dXJuOwotCi0JbWx4NWVfdnhs YW5fY29yZV9kZWxfcG9ydF9jbWQocHJpdi0+bWRldiwgdnhsYW4tPnVkcF9wb3J0KTsKLQotCWtm cmVlKHZ4bGFuKTsKLX0KKwkJZ290byBvdXRfdW5sb2NrOwogCi1zdGF0aWMgdm9pZCBtbHg1ZV92 eGxhbl9kZWxfcG9ydChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCi17Ci0Jc3RydWN0IG1seDVl X3Z4bGFuX3dvcmsgKnZ4bGFuX3dvcmsgPQotCQljb250YWluZXJfb2Yod29yaywgc3RydWN0IG1s eDVlX3Z4bGFuX3dvcmssIHdvcmspOwotCXN0cnVjdCBtbHg1ZV9wcml2ICpwcml2ID0gdnhsYW5f d29yay0+cHJpdjsKLQl1MTYgcG9ydCA9IHZ4bGFuX3dvcmstPnBvcnQ7CisJaWYgKGF0b21pY19k ZWNfYW5kX3Rlc3QoJnZ4bGFuLT5yZWZjb3VudCkpIHsKKwkJcmFkaXhfdHJlZV9kZWxldGUoJnZ4 bGFuX2RiLT50cmVlLCBwb3J0KTsKKwkJcmVtb3ZlID0gdHJ1ZTsKKwl9CiAKLQlfX21seDVlX3Z4 bGFuX2NvcmVfZGVsX3BvcnQocHJpdiwgcG9ydCk7CitvdXRfdW5sb2NrOgorCXNwaW5fdW5sb2Nr X2JoKCZ2eGxhbl9kYi0+bG9jayk7CiAKKwlpZiAocmVtb3ZlKSB7CisJCW1seDVlX3Z4bGFuX2Nv cmVfZGVsX3BvcnRfY21kKHByaXYtPm1kZXYsIHBvcnQpOworCQlrZnJlZSh2eGxhbik7CisJfQog CWtmcmVlKHZ4bGFuX3dvcmspOwogfQogCkBAIC0xNzEsMTIgKzE3NiwxMSBAQCB2b2lkIG1seDVl X3Z4bGFuX2NsZWFudXAoc3RydWN0IG1seDVlX3ByaXYgKnByaXYpCiAJc3RydWN0IG1seDVlX3Z4 bGFuICp2eGxhbjsKIAl1bnNpZ25lZCBpbnQgcG9ydCA9IDA7CiAKLQlzcGluX2xvY2tfYmgoJnZ4 bGFuX2RiLT5sb2NrKTsKKwkvKiBMb2NrbGVzcyBzaW5jZSB3ZSBhcmUgdGhlIG9ubHkgcmFkaXgt dHJlZSBjb25zdW1lcnMsIHdxIGlzIGRpc2FibGVkICovCiAJd2hpbGUgKHJhZGl4X3RyZWVfZ2Fu Z19sb29rdXAoJnZ4bGFuX2RiLT50cmVlLCAodm9pZCAqKikmdnhsYW4sIHBvcnQsIDEpKSB7CiAJ CXBvcnQgPSB2eGxhbi0+dWRwX3BvcnQ7Ci0JCXNwaW5fdW5sb2NrX2JoKCZ2eGxhbl9kYi0+bG9j ayk7Ci0JCV9fbWx4NWVfdnhsYW5fY29yZV9kZWxfcG9ydChwcml2LCAodTE2KXBvcnQpOwotCQlz cGluX2xvY2tfYmgoJnZ4bGFuX2RiLT5sb2NrKTsKKwkJcmFkaXhfdHJlZV9kZWxldGUoJnZ4bGFu X2RiLT50cmVlLCBwb3J0KTsKKwkJbWx4NWVfdnhsYW5fY29yZV9kZWxfcG9ydF9jbWQocHJpdi0+ bWRldiwgcG9ydCk7CisJCWtmcmVlKHZ4bGFuKTsKIAl9Ci0Jc3Bpbl91bmxvY2tfYmgoJnZ4bGFu X2RiLT5sb2NrKTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94 L21seDUvY29yZS92eGxhbi5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9j b3JlL3Z4bGFuLmgKaW5kZXggNWRlZjEyYy4uNWVmNmFlNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9u ZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3Z4bGFuLmgKKysrIGIvZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3Z4bGFuLmgKQEAgLTM2LDYgKzM2LDcgQEAKICNp bmNsdWRlICJlbi5oIgogCiBzdHJ1Y3QgbWx4NWVfdnhsYW4geworCWF0b21pY190IHJlZmNvdW50 OwogCXUxNiB1ZHBfcG9ydDsKIH07CiAKLS0gCjIuOS41CgoKRnJvbSAzZmJlMjExMTAyZjY2ZDJm ZDM2N2U0M2U1MjRhNmMwMGY1ZDUwMDE3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBH YWwgUHJlc3NtYW4gPGdhbHBAbWVsbGFub3guY29tPgpEYXRlOiBNb24sIDQgRGVjIDIwMTcgMDk6 NTc6NDMgKzAyMDAKU3ViamVjdDogW1BBVENIIDI4LzMzXSBuZXQvbWx4NWU6IFByZXZlbnQgcG9z c2libGUgcmFjZXMgaW4gVlhMQU4gY29udHJvbCBmbG93CgpbIFVwc3RyZWFtIGNvbW1pdCAwYzFj YzhiMjIxNWY1MTIyY2E2MTRiNWFkY2E2MDM0NjAxODc1OGMzIF0KCldoZW4gY2FsbGluZyBhZGQv cmVtb3ZlIFZYTEFOIHBvcnQsIGEgbG9jayBtdXN0IGJlIGhlbGQgaW4gb3JkZXIgdG8KcHJldmVu dCByYWNlIHNjZW5hcmlvcyB3aGVuIG1vcmUgdGhhbiBvbmUgYWRkL3JlbW92ZSBoYXBwZW5zIGF0 IHRoZQpzYW1lIHRpbWUuCkZpeCBieSBob2xkaW5nIG91ciBzdGF0ZV9sb2NrIChtdXRleCkgYXMg ZG9uZSBieSBhbGwgb3RoZXIgcGFydHMgb2YgdGhlCmRyaXZlci4KTm90ZSB0aGF0IHRoZSBzcGlu bG9jayBwcm90ZWN0aW5nIHRoZSByYWRpeC10cmVlIGlzIHN0aWxsIG5lZWRlZCBpbgpvcmRlciB0 byBzeW5jaHJvbml6ZSByYWRpeC10cmVlIGFjY2VzcyBmcm9tIHNvZnRpcnEgY29udGV4dC4KCkZp eGVzOiBiM2Y2M2MzZDVlMmMgKCJuZXQvbWx4NWU6IEFkZCBuZXRkZXYgc3VwcG9ydCBmb3IgVlhM QU4gdHVubmVsaW5nIikKU2lnbmVkLW9mZi1ieTogR2FsIFByZXNzbWFuIDxnYWxwQG1lbGxhbm94 LmNvbT4KU2lnbmVkLW9mZi1ieTogU2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+ Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3Z4bGFuLmMgfCA0 ICsrKysKIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2 ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvdnhsYW4uYyBiL2RyaXZlcnMvbmV0 L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS92eGxhbi5jCmluZGV4IDI1Zjc4MjMuLjJmNzQ5 NTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS92 eGxhbi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS92eGxh bi5jCkBAIC04OCw2ICs4OCw3IEBAIHN0YXRpYyB2b2lkIG1seDVlX3Z4bGFuX2FkZF9wb3J0KHN0 cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAlzdHJ1Y3QgbWx4NWVfdnhsYW4gKnZ4bGFuOwogCWlu dCBlcnI7CiAKKwltdXRleF9sb2NrKCZwcml2LT5zdGF0ZV9sb2NrKTsKIAl2eGxhbiA9IG1seDVl X3Z4bGFuX2xvb2t1cF9wb3J0KHByaXYsIHBvcnQpOwogCWlmICh2eGxhbikgewogCQlhdG9taWNf aW5jKCZ2eGxhbi0+cmVmY291bnQpOwpAQCAtMTE3LDYgKzExOCw3IEBAIHN0YXRpYyB2b2lkIG1s eDVlX3Z4bGFuX2FkZF9wb3J0KHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIGVycl9kZWxldGVf cG9ydDoKIAltbHg1ZV92eGxhbl9jb3JlX2RlbF9wb3J0X2NtZChwcml2LT5tZGV2LCBwb3J0KTsK IGZyZWVfd29yazoKKwltdXRleF91bmxvY2soJnByaXYtPnN0YXRlX2xvY2spOwogCWtmcmVlKHZ4 bGFuX3dvcmspOwogfQogCkBAIC0xMzAsNiArMTMyLDcgQEAgc3RhdGljIHZvaWQgbWx4NWVfdnhs YW5fZGVsX3BvcnQoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCXN0cnVjdCBtbHg1ZV92eGxh biAqdnhsYW47CiAJYm9vbCByZW1vdmUgPSBmYWxzZTsKIAorCW11dGV4X2xvY2soJnByaXYtPnN0 YXRlX2xvY2spOwogCXNwaW5fbG9ja19iaCgmdnhsYW5fZGItPmxvY2spOwogCXZ4bGFuID0gcmFk aXhfdHJlZV9sb29rdXAoJnZ4bGFuX2RiLT50cmVlLCBwb3J0KTsKIAlpZiAoIXZ4bGFuKQpAQCAt MTQ3LDYgKzE1MCw3IEBAIHN0YXRpYyB2b2lkIG1seDVlX3Z4bGFuX2RlbF9wb3J0KHN0cnVjdCB3 b3JrX3N0cnVjdCAqd29yaykKIAkJbWx4NWVfdnhsYW5fY29yZV9kZWxfcG9ydF9jbWQocHJpdi0+ bWRldiwgcG9ydCk7CiAJCWtmcmVlKHZ4bGFuKTsKIAl9CisJbXV0ZXhfdW5sb2NrKCZwcml2LT5z dGF0ZV9sb2NrKTsKIAlrZnJlZSh2eGxhbl93b3JrKTsKIH0KIAotLSAKMi45LjUKCgpGcm9tIGU1 NzNjOGMzMjNhMjY1MzZkZTY0ZGE0ZWQyOTRmMDVmMjkyODNjY2UgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IE1vbmkgU2hvdWEgPG1vbmlzQG1lbGxhbm94LmNvbT4KRGF0ZTogTW9uLCA0 IERlYyAyMDE3IDA4OjU5OjI1ICswMjAwClN1YmplY3Q6IFtQQVRDSCAyOS8zM10gbmV0L21seDU6 IEZpeCBlcnJvciBmbG93IGluIENSRUFURV9RUCBjb21tYW5kCgpbIFVwc3RyZWFtIGNvbW1pdCBk YmZmMjZlNDRkYzNlYzRkZTY1Nzg3MzNiMDU0YTAxMTQ2NTJhNzY0IF0KCkluIGVycm9yIGZsb3cs IHdoZW4gREVTVFJPWV9RUCBjb21tYW5kIHNob3VsZCBiZSBleGVjdXRlZCwgdGhlIHdyb25nCm1h aWxib3ggd2FzIHNldCB3aXRoIGRhdGEsIG5vdCB0aGUgb25lIHRoYXQgaXMgd3JpdHRlbiB0byBo YXJkd2FyZSwKRml4IHRoYXQuCgpGaXhlczogMDlhN2Q5ZWNhMWE2ICd7bmV0LElCfS9tbHg1OiBR UC9YUkNEIGNvbW1hbmRzIHZpYSBtbHg1IGlmYycKU2lnbmVkLW9mZi1ieTogTW9uaSBTaG91YSA8 bW9uaXNAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBTYWVlZCBNYWhhbWVlZCA8c2FlZWRt QG1lbGxhbm94LmNvbT4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2Nv cmUvcXAuYyB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1 L2NvcmUvcXAuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9xcC5j CmluZGV4IGQwYTQwMDUuLjkzNDZmMzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0 L21lbGxhbm94L21seDUvY29yZS9xcC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxh bm94L21seDUvY29yZS9xcC5jCkBAIC0zMDMsOCArMzAzLDggQEAgaW50IG1seDVfY29yZV9jcmVh dGVfcXAoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwKIGVycl9jbWQ6CiAJbWVtc2V0KGRpbiwg MCwgc2l6ZW9mKGRpbikpOwogCW1lbXNldChkb3V0LCAwLCBzaXplb2YoZG91dCkpOwotCU1MWDVf U0VUKGRlc3Ryb3lfcXBfaW4sIGluLCBvcGNvZGUsIE1MWDVfQ01EX09QX0RFU1RST1lfUVApOwot CU1MWDVfU0VUKGRlc3Ryb3lfcXBfaW4sIGluLCBxcG4sIHFwLT5xcG4pOworCU1MWDVfU0VUKGRl c3Ryb3lfcXBfaW4sIGRpbiwgb3Bjb2RlLCBNTFg1X0NNRF9PUF9ERVNUUk9ZX1FQKTsKKwlNTFg1 X1NFVChkZXN0cm95X3FwX2luLCBkaW4sIHFwbiwgcXAtPnFwbik7CiAJbWx4NV9jbWRfZXhlYyhk ZXYsIGRpbiwgc2l6ZW9mKGRpbiksIGRvdXQsIHNpemVvZihkb3V0KSk7CiAJcmV0dXJuIGVycjsK IH0KLS0gCjIuOS41CgoKRnJvbSA3ODE5NTY1MDY2NjRlZTk3NWEyZDliNTFjYzU4MDc3MGVjYWY0 NDRmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKdWxpYW4gV2llZG1hbm4gPGp3aUBs aW51eC52bmV0LmlibS5jb20+CkRhdGU6IFdlZCwgMTMgRGVjIDIwMTcgMTg6NTY6MjkgKzAxMDAK U3ViamVjdDogW1BBVENIIDMwLzMzXSBzMzkwL3FldGg6IGFwcGx5IHRha2VvdmVyIGNoYW5nZXMg d2hlbiBtb2RlIGlzIHRvZ2dsZWQKClsgVXBzdHJlYW0gY29tbWl0IDdmYmQ5NDkzZjBlZWFlOGNl ZjU4MzAwNTA1YTllZjVjOGZjZTYzMTMgXQoKSnVzdCBhcyBmb3IgYW4gZXhwbGljaXQgZW5hYmxl L2Rpc2FibGUsIHRvZ2dsaW5nIHRoZSB0YWtlb3ZlciBtb2RlIGFsc28KcmVxdWlyZXMgdGhhdCB0 aGUgSVAgYWRkcmVzc2VzIGdldCB1cGRhdGVkLiBPdGhlcndpc2UgYWxsIElQcyB0aGF0IHdlcmUK YWRkZWQgdG8gdGhlIHRhYmxlIGJlZm9yZSB0aGUgbW9kZS10b2dnbGUsIGdldCByZWdpc3RlcmVk IHdpdGggdGhlIG9sZApzZXR0aW5ncy4KClNpZ25lZC1vZmYtYnk6IEp1bGlhbiBXaWVkbWFubiA8 andpQGxpbnV4LnZuZXQuaWJtLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxk YXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvczM5MC9uZXQvcWV0aF9jb3JlLmggICAg ICB8ICAyICstCiBkcml2ZXJzL3MzOTAvbmV0L3FldGhfY29yZV9tYWluLmMgfCAgMiArLQogZHJp dmVycy9zMzkwL25ldC9xZXRoX2wzX3N5cy5jICAgIHwgMzUgKysrKysrKysrKysrKysrKystLS0t LS0tLS0tLS0tLS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgMTkgaW5zZXJ0aW9ucygrKSwgMjAgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL25ldC9xZXRoX2NvcmUuaCBiL2Ry aXZlcnMvczM5MC9uZXQvcWV0aF9jb3JlLmgKaW5kZXggZTcyMjM0ZS4uNDhlZWUzYyAxMDA2NDQK LS0tIGEvZHJpdmVycy9zMzkwL25ldC9xZXRoX2NvcmUuaAorKysgYi9kcml2ZXJzL3MzOTAvbmV0 L3FldGhfY29yZS5oCkBAIC01NzYsNyArNTc2LDcgQEAgZW51bSBxZXRoX2NxIHsKIH07CiAKIHN0 cnVjdCBxZXRoX2lwYXRvIHsKLQlpbnQgZW5hYmxlZDsKKwlib29sIGVuYWJsZWQ7CiAJaW50IGlu dmVydDQ7CiAJaW50IGludmVydDY7CiAJc3RydWN0IGxpc3RfaGVhZCBlbnRyaWVzOwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9zMzkwL25ldC9xZXRoX2NvcmVfbWFpbi5jIGIvZHJpdmVycy9zMzkwL25l dC9xZXRoX2NvcmVfbWFpbi5jCmluZGV4IDgzOGVkNjIuLjYwNmI1MDYgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvczM5MC9uZXQvcWV0aF9jb3JlX21haW4uYworKysgYi9kcml2ZXJzL3MzOTAvbmV0L3Fl dGhfY29yZV9tYWluLmMKQEAgLTE0NzUsNyArMTQ3NSw3IEBAIHN0YXRpYyBpbnQgcWV0aF9zZXR1 cF9jYXJkKHN0cnVjdCBxZXRoX2NhcmQgKmNhcmQpCiAJcWV0aF9zZXRfaW50aWFsX29wdGlvbnMo Y2FyZCk7CiAJLyogSVAgYWRkcmVzcyB0YWtlb3ZlciAqLwogCUlOSVRfTElTVF9IRUFEKCZjYXJk LT5pcGF0by5lbnRyaWVzKTsKLQljYXJkLT5pcGF0by5lbmFibGVkID0gMDsKKwljYXJkLT5pcGF0 by5lbmFibGVkID0gZmFsc2U7CiAJY2FyZC0+aXBhdG8uaW52ZXJ0NCA9IDA7CiAJY2FyZC0+aXBh dG8uaW52ZXJ0NiA9IDA7CiAJLyogaW5pdCBRRElPIHN0dWZmICovCmRpZmYgLS1naXQgYS9kcml2 ZXJzL3MzOTAvbmV0L3FldGhfbDNfc3lzLmMgYi9kcml2ZXJzL3MzOTAvbmV0L3FldGhfbDNfc3lz LmMKaW5kZXggY2ZmZTQyZi4uYjU5NWEyYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL25ldC9x ZXRoX2wzX3N5cy5jCisrKyBiL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9sM19zeXMuYwpAQCAtMzc0 LDYgKzM3NCw3IEBAIHN0YXRpYyBzc2l6ZV90IHFldGhfbDNfZGV2X2lwYXRvX2VuYWJsZV9zdG9y ZShzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJc3RydWN0IHFldGhfY2FyZCAqY2FyZCA9IGRldl9nZXRf ZHJ2ZGF0YShkZXYpOwogCXN0cnVjdCBxZXRoX2lwYWRkciAqYWRkcjsKIAlpbnQgaSwgcmMgPSAw OworCWJvb2wgZW5hYmxlOwogCiAJaWYgKCFjYXJkKQogCQlyZXR1cm4gLUVJTlZBTDsKQEAgLTM4 NiwyNSArMzg3LDIzIEBAIHN0YXRpYyBzc2l6ZV90IHFldGhfbDNfZGV2X2lwYXRvX2VuYWJsZV9z dG9yZShzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJfQogCiAJaWYgKHN5c2ZzX3N0cmVxKGJ1ZiwgInRv Z2dsZSIpKSB7Ci0JCWNhcmQtPmlwYXRvLmVuYWJsZWQgPSAoY2FyZC0+aXBhdG8uZW5hYmxlZCk/ IDAgOiAxOwotCX0gZWxzZSBpZiAoc3lzZnNfc3RyZXEoYnVmLCAiMSIpKSB7Ci0JCWNhcmQtPmlw YXRvLmVuYWJsZWQgPSAxOwotCQloYXNoX2Zvcl9lYWNoKGNhcmQtPmlwX2h0YWJsZSwgaSwgYWRk ciwgaG5vZGUpIHsKLQkJCQlpZiAoKGFkZHItPnR5cGUgPT0gUUVUSF9JUF9UWVBFX05PUk1BTCkg JiYKLQkJCQlxZXRoX2wzX2lzX2FkZHJfY292ZXJlZF9ieV9pcGF0byhjYXJkLCBhZGRyKSkKLQkJ CQkJYWRkci0+c2V0X2ZsYWdzIHw9Ci0JCQkJCVFFVEhfSVBBX1NFVElQX1RBS0VPVkVSX0ZMQUc7 Ci0JCQl9Ci0JfSBlbHNlIGlmIChzeXNmc19zdHJlcShidWYsICIwIikpIHsKLQkJY2FyZC0+aXBh dG8uZW5hYmxlZCA9IDA7Ci0JCWhhc2hfZm9yX2VhY2goY2FyZC0+aXBfaHRhYmxlLCBpLCBhZGRy LCBobm9kZSkgewotCQkJaWYgKGFkZHItPnNldF9mbGFncyAmCi0JCQlRRVRIX0lQQV9TRVRJUF9U QUtFT1ZFUl9GTEFHKQotCQkJCWFkZHItPnNldF9mbGFncyAmPQotCQkJCX5RRVRIX0lQQV9TRVRJ UF9UQUtFT1ZFUl9GTEFHOwotCQkJfQotCX0gZWxzZQorCQllbmFibGUgPSAhY2FyZC0+aXBhdG8u ZW5hYmxlZDsKKwl9IGVsc2UgaWYgKGtzdHJ0b2Jvb2woYnVmLCAmZW5hYmxlKSkgewogCQlyYyA9 IC1FSU5WQUw7CisJCWdvdG8gb3V0OworCX0KKworCWlmIChjYXJkLT5pcGF0by5lbmFibGVkID09 IGVuYWJsZSkKKwkJZ290byBvdXQ7CisJY2FyZC0+aXBhdG8uZW5hYmxlZCA9IGVuYWJsZTsKKwor CWhhc2hfZm9yX2VhY2goY2FyZC0+aXBfaHRhYmxlLCBpLCBhZGRyLCBobm9kZSkgeworCQlpZiAo IWVuYWJsZSkKKwkJCWFkZHItPnNldF9mbGFncyAmPSB+UUVUSF9JUEFfU0VUSVBfVEFLRU9WRVJf RkxBRzsKKwkJZWxzZSBpZiAoYWRkci0+dHlwZSA9PSBRRVRIX0lQX1RZUEVfTk9STUFMICYmCisJ CQkgcWV0aF9sM19pc19hZGRyX2NvdmVyZWRfYnlfaXBhdG8oY2FyZCwgYWRkcikpCisJCQlhZGRy LT5zZXRfZmxhZ3MgfD0gUUVUSF9JUEFfU0VUSVBfVEFLRU9WRVJfRkxBRzsKKwl9CiBvdXQ6CiAJ bXV0ZXhfdW5sb2NrKCZjYXJkLT5jb25mX211dGV4KTsKIAlyZXR1cm4gcmMgPyByYyA6IGNvdW50 OwotLSAKMi45LjUKCgpGcm9tIGY5YTMyMTAwZmYyMDQ2NDE0MTMwNDA5MWJmMDJlNGIzZmIzY2Jj NDYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEp1bGlhbiBXaWVkbWFubiA8andpQGxp bnV4LnZuZXQuaWJtLmNvbT4KRGF0ZTogV2VkLCAxMyBEZWMgMjAxNyAxODo1NjozMCArMDEwMApT dWJqZWN0OiBbUEFUQ0ggMzEvMzNdIHMzOTAvcWV0aDogZG9uJ3QgYXBwbHkgdGFrZW92ZXIgY2hh bmdlcyB0byBSWElQCgpbIFVwc3RyZWFtIGNvbW1pdCBiMjJkNzNkNjY4OWZkOTAyYTY2YzA4ZWJl NzFhYjJmM2IzNTFlMjJmIF0KCldoZW4gdGFrZW92ZXIgaXMgc3dpdGNoZWQgb2ZmLCBjdXJyZW50 IGNvZGUgY2xlYXJzIHRoZSAnVEFLRU9WRVInIGZsYWcgb24KYWxsIElQcy4gQnV0IHRoZSBmbGFn IGlzIGFsc28gdXNlZCBmb3IgUlhJUCBhZGRyZXNzZXMsIGFuZCB0aG9zZSBzaG91bGQKbm90IGJl IGFmZmVjdGVkIGJ5IHRoZSB0YWtlb3ZlciBtb2RlLgpGaXggdGhlIGJlaGF2aW91ciBieSBjb25z aXN0ZW5seSBhcHBseWluZyB0YWtvdmVyIGxvZ2ljIHRvIE5PUk1BTAphZGRyZXNzZXMgb25seS4K ClNpZ25lZC1vZmYtYnk6IEp1bGlhbiBXaWVkbWFubiA8andpQGxpbnV4LnZuZXQuaWJtLmNvbT4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IGRyaXZlcnMvczM5MC9uZXQvcWV0aF9sM19tYWluLmMgfCA1ICsrKy0tCiBkcml2ZXJzL3MzOTAv bmV0L3FldGhfbDNfc3lzLmMgIHwgNSArKystLQogMiBmaWxlcyBjaGFuZ2VkLCA2IGluc2VydGlv bnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL25ldC9xZXRo X2wzX21haW4uYyBiL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9sM19tYWluLmMKaW5kZXggZjkxZTcw Yy4uMDQyNDBjYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL25ldC9xZXRoX2wzX21haW4uYwor KysgYi9kcml2ZXJzL3MzOTAvbmV0L3FldGhfbDNfbWFpbi5jCkBAIC0xNzgsNiArMTc4LDggQEAg aW50IHFldGhfbDNfaXNfYWRkcl9jb3ZlcmVkX2J5X2lwYXRvKHN0cnVjdCBxZXRoX2NhcmQgKmNh cmQsCiAKIAlpZiAoIWNhcmQtPmlwYXRvLmVuYWJsZWQpCiAJCXJldHVybiAwOworCWlmIChhZGRy LT50eXBlICE9IFFFVEhfSVBfVFlQRV9OT1JNQUwpCisJCXJldHVybiAwOwogCiAJcWV0aF9sM19j b252ZXJ0X2FkZHJfdG9fYml0cygodTggKikgJmFkZHItPnUsIGFkZHJfYml0cywKIAkJCQkgIChh ZGRyLT5wcm90byA9PSBRRVRIX1BST1RfSVBWNCk/IDQ6MTYpOwpAQCAtMjkzLDggKzI5NSw3IEBA IGludCBxZXRoX2wzX2FkZF9pcChzdHJ1Y3QgcWV0aF9jYXJkICpjYXJkLCBzdHJ1Y3QgcWV0aF9p cGFkZHIgKnRtcF9hZGRyKQogCQltZW1jcHkoYWRkciwgdG1wX2FkZHIsIHNpemVvZihzdHJ1Y3Qg cWV0aF9pcGFkZHIpKTsKIAkJYWRkci0+cmVmX2NvdW50ZXIgPSAxOwogCi0JCWlmIChhZGRyLT50 eXBlID09IFFFVEhfSVBfVFlQRV9OT1JNQUwgICYmCi0JCQkJcWV0aF9sM19pc19hZGRyX2NvdmVy ZWRfYnlfaXBhdG8oY2FyZCwgYWRkcikpIHsKKwkJaWYgKHFldGhfbDNfaXNfYWRkcl9jb3ZlcmVk X2J5X2lwYXRvKGNhcmQsIGFkZHIpKSB7CiAJCQlRRVRIX0NBUkRfVEVYVChjYXJkLCAyLCAidGtv dmFkZHIiKTsKIAkJCWFkZHItPnNldF9mbGFncyB8PSBRRVRIX0lQQV9TRVRJUF9UQUtFT1ZFUl9G TEFHOwogCQl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvbmV0L3FldGhfbDNfc3lzLmMgYi9k cml2ZXJzL3MzOTAvbmV0L3FldGhfbDNfc3lzLmMKaW5kZXggYjU5NWEyYi4uODUyMTQ0MyAxMDA2 NDQKLS0tIGEvZHJpdmVycy9zMzkwL25ldC9xZXRoX2wzX3N5cy5jCisrKyBiL2RyaXZlcnMvczM5 MC9uZXQvcWV0aF9sM19zeXMuYwpAQCAtMzk4LDEwICszOTgsMTEgQEAgc3RhdGljIHNzaXplX3Qg cWV0aF9sM19kZXZfaXBhdG9fZW5hYmxlX3N0b3JlKHN0cnVjdCBkZXZpY2UgKmRldiwKIAljYXJk LT5pcGF0by5lbmFibGVkID0gZW5hYmxlOwogCiAJaGFzaF9mb3JfZWFjaChjYXJkLT5pcF9odGFi bGUsIGksIGFkZHIsIGhub2RlKSB7CisJCWlmIChhZGRyLT50eXBlICE9IFFFVEhfSVBfVFlQRV9O T1JNQUwpCisJCQljb250aW51ZTsKIAkJaWYgKCFlbmFibGUpCiAJCQlhZGRyLT5zZXRfZmxhZ3Mg Jj0gflFFVEhfSVBBX1NFVElQX1RBS0VPVkVSX0ZMQUc7Ci0JCWVsc2UgaWYgKGFkZHItPnR5cGUg PT0gUUVUSF9JUF9UWVBFX05PUk1BTCAmJgotCQkJIHFldGhfbDNfaXNfYWRkcl9jb3ZlcmVkX2J5 X2lwYXRvKGNhcmQsIGFkZHIpKQorCQllbHNlIGlmIChxZXRoX2wzX2lzX2FkZHJfY292ZXJlZF9i eV9pcGF0byhjYXJkLCBhZGRyKSkKIAkJCWFkZHItPnNldF9mbGFncyB8PSBRRVRIX0lQQV9TRVRJ UF9UQUtFT1ZFUl9GTEFHOwogCX0KIG91dDoKLS0gCjIuOS41CgoKRnJvbSA1OTU2ZWRkZWQ3NWZj Y2Q1YWNhNGUwZjMwNTIyOWFlMGI2ZDQ1Yjg5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBKdWxpYW4gV2llZG1hbm4gPGp3aUBsaW51eC52bmV0LmlibS5jb20+CkRhdGU6IFdlZCwgMTMg RGVjIDIwMTcgMTg6NTY6MzEgKzAxMDAKU3ViamVjdDogW1BBVENIIDMyLzMzXSBzMzkwL3FldGg6 IGxvY2sgSVAgdGFibGUgd2hpbGUgYXBwbHlpbmcgdGFrZW92ZXIKIGNoYW5nZXMKClsgVXBzdHJl YW0gY29tbWl0IDhhMDNhMzY5MmIxMDBkODQ3ODVlZTdhODM0ZTkyMTVlMzA0YzllMDAgXQoKTW9k aWZ5aW5nIHRoZSBmbGFncyBvZiBhbiBJUCBhZGRyIG9iamVjdCBuZWVkcyB0byBiZSBwcm90ZWN0 ZWQgYWdhaW5zdAplZy4gY29uY3VycmVudCByZW1vdmFsIG9mIHRoZSBzYW1lIG9iamVjdCBmcm9t IHRoZSBJUCB0YWJsZS4KCkZpeGVzOiA1Zjc4ZTI5Y2VlYmYgKCJxZXRoOiBvcHRpbWl6ZSBJUCBo YW5kbGluZyBpbiByeF9tb2RlIGNhbGxiYWNrIikKU2lnbmVkLW9mZi1ieTogSnVsaWFuIFdpZWRt YW5uIDxqd2lAbGludXgudm5ldC5pYm0uY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxs ZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9zMzkwL25ldC9xZXRoX2wzX3N5 cy5jIHwgMiArKwogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBh L2RyaXZlcnMvczM5MC9uZXQvcWV0aF9sM19zeXMuYyBiL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9s M19zeXMuYwppbmRleCA4NTIxNDQzLi5mOTUxMzVmIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAv bmV0L3FldGhfbDNfc3lzLmMKKysrIGIvZHJpdmVycy9zMzkwL25ldC9xZXRoX2wzX3N5cy5jCkBA IC0zOTcsNiArMzk3LDcgQEAgc3RhdGljIHNzaXplX3QgcWV0aF9sM19kZXZfaXBhdG9fZW5hYmxl X3N0b3JlKHN0cnVjdCBkZXZpY2UgKmRldiwKIAkJZ290byBvdXQ7CiAJY2FyZC0+aXBhdG8uZW5h YmxlZCA9IGVuYWJsZTsKIAorCXNwaW5fbG9ja19iaCgmY2FyZC0+aXBfbG9jayk7CiAJaGFzaF9m b3JfZWFjaChjYXJkLT5pcF9odGFibGUsIGksIGFkZHIsIGhub2RlKSB7CiAJCWlmIChhZGRyLT50 eXBlICE9IFFFVEhfSVBfVFlQRV9OT1JNQUwpCiAJCQljb250aW51ZTsKQEAgLTQwNSw2ICs0MDYs NyBAQCBzdGF0aWMgc3NpemVfdCBxZXRoX2wzX2Rldl9pcGF0b19lbmFibGVfc3RvcmUoc3RydWN0 IGRldmljZSAqZGV2LAogCQllbHNlIGlmIChxZXRoX2wzX2lzX2FkZHJfY292ZXJlZF9ieV9pcGF0 byhjYXJkLCBhZGRyKSkKIAkJCWFkZHItPnNldF9mbGFncyB8PSBRRVRIX0lQQV9TRVRJUF9UQUtF T1ZFUl9GTEFHOwogCX0KKwlzcGluX3VubG9ja19iaCgmY2FyZC0+aXBfbG9jayk7CiBvdXQ6CiAJ bXV0ZXhfdW5sb2NrKCZjYXJkLT5jb25mX211dGV4KTsKIAlyZXR1cm4gcmMgPyByYyA6IGNvdW50 OwotLSAKMi45LjUKCgpGcm9tIGEzMTRhNTU2MTRhOTlhZWMyZjAxOTQ5ODcxZTk1ZThkOTU2ODVj YjQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEp1bGlhbiBXaWVkbWFubiA8andpQGxp bnV4LnZuZXQuaWJtLmNvbT4KRGF0ZTogV2VkLCAxMyBEZWMgMjAxNyAxODo1NjozMiArMDEwMApT dWJqZWN0OiBbUEFUQ0ggMzMvMzNdIHMzOTAvcWV0aDogdXBkYXRlIHRha2VvdmVyIElQcyBhZnRl ciBjb25maWd1cmF0aW9uCiBjaGFuZ2UKClsgVXBzdHJlYW0gY29tbWl0IDAyZjUxMGYzMjY1MDE0 NzAzNDhhNWRmMzQxZTgyMzJjMzQ5N2JiYmIgXQoKQW55IG1vZGlmaWNhdGlvbiB0byB0aGUgdGFr ZW92ZXIgSVAtcmFuZ2VzIHJlcXVpcmVzIHRoYXQgd2UgcmUtZXZhbHVhdGUKd2hpY2ggSVAgYWRk cmVzc2VzIGFyZSB0YWtlb3Zlci1lbGlnaWJsZS4gT3RoZXJ3aXNlIHdlIG1pZ2h0IGRvIHRha2Vv dmVyCmZvciBzb21lIGFkZHJlc3NlcyB3aGVuIHdlIG5vIGxvbmdlciBzaG91bGQsIG9yIHZpY2Ut dmVyc2EuCgpTaWduZWQtb2ZmLWJ5OiBKdWxpYW4gV2llZG1hbm4gPGp3aUBsaW51eC52bmV0Lmli bS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBkcml2ZXJzL3MzOTAvbmV0L3FldGhfY29yZS5oICAgICAgfCAgNCArLS0KIGRyaXZl cnMvczM5MC9uZXQvcWV0aF9jb3JlX21haW4uYyB8ICA0ICstLQogZHJpdmVycy9zMzkwL25ldC9x ZXRoX2wzLmggICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvczM5MC9uZXQvcWV0aF9sM19tYWluLmMg ICB8IDMxICsrKysrKysrKysrKysrKysrLS0KIGRyaXZlcnMvczM5MC9uZXQvcWV0aF9sM19zeXMu YyAgICB8IDYzICsrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQogNSBmaWxl cyBjaGFuZ2VkLCA2NyBpbnNlcnRpb25zKCspLCAzNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9kcml2ZXJzL3MzOTAvbmV0L3FldGhfY29yZS5oIGIvZHJpdmVycy9zMzkwL25ldC9xZXRoX2Nv cmUuaAppbmRleCA0OGVlZTNjLi45YjVmYzUwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvbmV0 L3FldGhfY29yZS5oCisrKyBiL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9jb3JlLmgKQEAgLTU3Nyw4 ICs1NzcsOCBAQCBlbnVtIHFldGhfY3EgewogCiBzdHJ1Y3QgcWV0aF9pcGF0byB7CiAJYm9vbCBl bmFibGVkOwotCWludCBpbnZlcnQ0OwotCWludCBpbnZlcnQ2OworCWJvb2wgaW52ZXJ0NDsKKwli b29sIGludmVydDY7CiAJc3RydWN0IGxpc3RfaGVhZCBlbnRyaWVzOwogfTsKIApkaWZmIC0tZ2l0 IGEvZHJpdmVycy9zMzkwL25ldC9xZXRoX2NvcmVfbWFpbi5jIGIvZHJpdmVycy9zMzkwL25ldC9x ZXRoX2NvcmVfbWFpbi5jCmluZGV4IDYwNmI1MDYuLmRmOGY3NGMgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvczM5MC9uZXQvcWV0aF9jb3JlX21haW4uYworKysgYi9kcml2ZXJzL3MzOTAvbmV0L3FldGhf Y29yZV9tYWluLmMKQEAgLTE0NzYsOCArMTQ3Niw4IEBAIHN0YXRpYyBpbnQgcWV0aF9zZXR1cF9j YXJkKHN0cnVjdCBxZXRoX2NhcmQgKmNhcmQpCiAJLyogSVAgYWRkcmVzcyB0YWtlb3ZlciAqLwog CUlOSVRfTElTVF9IRUFEKCZjYXJkLT5pcGF0by5lbnRyaWVzKTsKIAljYXJkLT5pcGF0by5lbmFi bGVkID0gZmFsc2U7Ci0JY2FyZC0+aXBhdG8uaW52ZXJ0NCA9IDA7Ci0JY2FyZC0+aXBhdG8uaW52 ZXJ0NiA9IDA7CisJY2FyZC0+aXBhdG8uaW52ZXJ0NCA9IGZhbHNlOworCWNhcmQtPmlwYXRvLmlu dmVydDYgPSBmYWxzZTsKIAkvKiBpbml0IFFESU8gc3R1ZmYgKi8KIAlxZXRoX2luaXRfcWRpb19p bmZvKGNhcmQpOwogCUlOSVRfREVMQVlFRF9XT1JLKCZjYXJkLT5idWZmZXJfcmVjbGFpbV93b3Jr LCBxZXRoX2J1ZmZlcl9yZWNsYWltX3dvcmspOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL25l dC9xZXRoX2wzLmggYi9kcml2ZXJzL3MzOTAvbmV0L3FldGhfbDMuaAppbmRleCAyNmY3OTUzLi5l ZWRmOWIwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvbmV0L3FldGhfbDMuaAorKysgYi9kcml2 ZXJzL3MzOTAvbmV0L3FldGhfbDMuaApAQCAtODAsNyArODAsNyBAQCB2b2lkIHFldGhfbDNfZGVs X3ZpcGEoc3RydWN0IHFldGhfY2FyZCAqLCBlbnVtIHFldGhfcHJvdF92ZXJzaW9ucywgY29uc3Qg dTggKik7CiBpbnQgcWV0aF9sM19hZGRfcnhpcChzdHJ1Y3QgcWV0aF9jYXJkICosIGVudW0gcWV0 aF9wcm90X3ZlcnNpb25zLCBjb25zdCB1OCAqKTsKIHZvaWQgcWV0aF9sM19kZWxfcnhpcChzdHJ1 Y3QgcWV0aF9jYXJkICpjYXJkLCBlbnVtIHFldGhfcHJvdF92ZXJzaW9ucywKIAkJCWNvbnN0IHU4 ICopOwotaW50IHFldGhfbDNfaXNfYWRkcl9jb3ZlcmVkX2J5X2lwYXRvKHN0cnVjdCBxZXRoX2Nh cmQgKiwgc3RydWN0IHFldGhfaXBhZGRyICopOwordm9pZCBxZXRoX2wzX3VwZGF0ZV9pcGF0byhz dHJ1Y3QgcWV0aF9jYXJkICpjYXJkKTsKIHN0cnVjdCBxZXRoX2lwYWRkciAqcWV0aF9sM19nZXRf YWRkcl9idWZmZXIoZW51bSBxZXRoX3Byb3RfdmVyc2lvbnMpOwogaW50IHFldGhfbDNfYWRkX2lw KHN0cnVjdCBxZXRoX2NhcmQgKiwgc3RydWN0IHFldGhfaXBhZGRyICopOwogaW50IHFldGhfbDNf ZGVsZXRlX2lwKHN0cnVjdCBxZXRoX2NhcmQgKiwgc3RydWN0IHFldGhfaXBhZGRyICopOwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9zMzkwL25ldC9xZXRoX2wzX21haW4uYyBiL2RyaXZlcnMvczM5MC9u ZXQvcWV0aF9sM19tYWluLmMKaW5kZXggMDQyNDBjYy4uMTQ4N2Y4YSAxMDA2NDQKLS0tIGEvZHJp dmVycy9zMzkwL25ldC9xZXRoX2wzX21haW4uYworKysgYi9kcml2ZXJzL3MzOTAvbmV0L3FldGhf bDNfbWFpbi5jCkBAIC0xNjgsOCArMTY4LDggQEAgc3RhdGljIHZvaWQgcWV0aF9sM19jb252ZXJ0 X2FkZHJfdG9fYml0cyh1OCAqYWRkciwgdTggKmJpdHMsIGludCBsZW4pCiAJfQogfQogCi1pbnQg cWV0aF9sM19pc19hZGRyX2NvdmVyZWRfYnlfaXBhdG8oc3RydWN0IHFldGhfY2FyZCAqY2FyZCwK LQkJCQkJCXN0cnVjdCBxZXRoX2lwYWRkciAqYWRkcikKK3N0YXRpYyBib29sIHFldGhfbDNfaXNf YWRkcl9jb3ZlcmVkX2J5X2lwYXRvKHN0cnVjdCBxZXRoX2NhcmQgKmNhcmQsCisJCQkJCSAgICAg c3RydWN0IHFldGhfaXBhZGRyICphZGRyKQogewogCXN0cnVjdCBxZXRoX2lwYXRvX2VudHJ5ICpp cGF0b2U7CiAJdTggYWRkcl9iaXRzWzEyOF0gPSB7MCwgfTsKQEAgLTYwOCw2ICs2MDgsMjcgQEAg aW50IHFldGhfbDNfc2V0cm91dGluZ192NihzdHJ1Y3QgcWV0aF9jYXJkICpjYXJkKQogLyoKICAq IElQIGFkZHJlc3MgdGFrZW92ZXIgcmVsYXRlZCBmdW5jdGlvbnMKICAqLworCisvKioKKyAqIHFl dGhfbDNfdXBkYXRlX2lwYXRvKCkgLSBVcGRhdGUgJ3Rha2VvdmVyJyBwcm9wZXJ0eSwgZm9yIGFs bCBOT1JNQUwgSVBzLgorICoKKyAqIENhbGxlciBtdXN0IGhvbGQgaXBfbG9jay4KKyAqLwordm9p ZCBxZXRoX2wzX3VwZGF0ZV9pcGF0byhzdHJ1Y3QgcWV0aF9jYXJkICpjYXJkKQoreworCXN0cnVj dCBxZXRoX2lwYWRkciAqYWRkcjsKKwl1bnNpZ25lZCBpbnQgaTsKKworCWhhc2hfZm9yX2VhY2go Y2FyZC0+aXBfaHRhYmxlLCBpLCBhZGRyLCBobm9kZSkgeworCQlpZiAoYWRkci0+dHlwZSAhPSBR RVRIX0lQX1RZUEVfTk9STUFMKQorCQkJY29udGludWU7CisJCWlmIChxZXRoX2wzX2lzX2FkZHJf Y292ZXJlZF9ieV9pcGF0byhjYXJkLCBhZGRyKSkKKwkJCWFkZHItPnNldF9mbGFncyB8PSBRRVRI X0lQQV9TRVRJUF9UQUtFT1ZFUl9GTEFHOworCQllbHNlCisJCQlhZGRyLT5zZXRfZmxhZ3MgJj0g flFFVEhfSVBBX1NFVElQX1RBS0VPVkVSX0ZMQUc7CisJfQorfQorCiBzdGF0aWMgdm9pZCBxZXRo X2wzX2NsZWFyX2lwYXRvX2xpc3Qoc3RydWN0IHFldGhfY2FyZCAqY2FyZCkKIHsKIAlzdHJ1Y3Qg cWV0aF9pcGF0b19lbnRyeSAqaXBhdG9lLCAqdG1wOwpAQCAtNjE5LDYgKzY0MCw3IEBAIHN0YXRp YyB2b2lkIHFldGhfbDNfY2xlYXJfaXBhdG9fbGlzdChzdHJ1Y3QgcWV0aF9jYXJkICpjYXJkKQog CQlrZnJlZShpcGF0b2UpOwogCX0KIAorCXFldGhfbDNfdXBkYXRlX2lwYXRvKGNhcmQpOwogCXNw aW5fdW5sb2NrX2JoKCZjYXJkLT5pcF9sb2NrKTsKIH0KIApAQCAtNjQzLDggKzY2NSwxMCBAQCBp bnQgcWV0aF9sM19hZGRfaXBhdG9fZW50cnkoc3RydWN0IHFldGhfY2FyZCAqY2FyZCwKIAkJfQog CX0KIAotCWlmICghcmMpCisJaWYgKCFyYykgewogCQlsaXN0X2FkZF90YWlsKCZuZXctPmVudHJ5 LCAmY2FyZC0+aXBhdG8uZW50cmllcyk7CisJCXFldGhfbDNfdXBkYXRlX2lwYXRvKGNhcmQpOwor CX0KIAogCXNwaW5fdW5sb2NrX2JoKCZjYXJkLT5pcF9sb2NrKTsKIApAQCAtNjY3LDYgKzY5MSw3 IEBAIHZvaWQgcWV0aF9sM19kZWxfaXBhdG9fZW50cnkoc3RydWN0IHFldGhfY2FyZCAqY2FyZCwK IAkJCSAgICAocHJvdG8gPT0gUUVUSF9QUk9UX0lQVjQpPyA0OjE2KSAmJgogCQkgICAgKGlwYXRv ZS0+bWFza19iaXRzID09IG1hc2tfYml0cykpIHsKIAkJCWxpc3RfZGVsKCZpcGF0b2UtPmVudHJ5 KTsKKwkJCXFldGhfbDNfdXBkYXRlX2lwYXRvKGNhcmQpOwogCQkJa2ZyZWUoaXBhdG9lKTsKIAkJ fQogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9sM19zeXMuYyBiL2RyaXZl cnMvczM5MC9uZXQvcWV0aF9sM19zeXMuYwppbmRleCBmOTUxMzVmLi5kNmJkZmM2IDEwMDY0NAot LS0gYS9kcml2ZXJzL3MzOTAvbmV0L3FldGhfbDNfc3lzLmMKKysrIGIvZHJpdmVycy9zMzkwL25l dC9xZXRoX2wzX3N5cy5jCkBAIC0zNzIsOSArMzcyLDggQEAgc3RhdGljIHNzaXplX3QgcWV0aF9s M19kZXZfaXBhdG9fZW5hYmxlX3N0b3JlKHN0cnVjdCBkZXZpY2UgKmRldiwKIAkJc3RydWN0IGRl dmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNvbnN0IGNoYXIgKmJ1Ziwgc2l6ZV90IGNvdW50KQogewog CXN0cnVjdCBxZXRoX2NhcmQgKmNhcmQgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKLQlzdHJ1Y3Qg cWV0aF9pcGFkZHIgKmFkZHI7Ci0JaW50IGksIHJjID0gMDsKIAlib29sIGVuYWJsZTsKKwlpbnQg cmMgPSAwOwogCiAJaWYgKCFjYXJkKQogCQlyZXR1cm4gLUVJTlZBTDsKQEAgLTM5MywyMCArMzky LDEyIEBAIHN0YXRpYyBzc2l6ZV90IHFldGhfbDNfZGV2X2lwYXRvX2VuYWJsZV9zdG9yZShzdHJ1 Y3QgZGV2aWNlICpkZXYsCiAJCWdvdG8gb3V0OwogCX0KIAotCWlmIChjYXJkLT5pcGF0by5lbmFi bGVkID09IGVuYWJsZSkKLQkJZ290byBvdXQ7Ci0JY2FyZC0+aXBhdG8uZW5hYmxlZCA9IGVuYWJs ZTsKLQotCXNwaW5fbG9ja19iaCgmY2FyZC0+aXBfbG9jayk7Ci0JaGFzaF9mb3JfZWFjaChjYXJk LT5pcF9odGFibGUsIGksIGFkZHIsIGhub2RlKSB7Ci0JCWlmIChhZGRyLT50eXBlICE9IFFFVEhf SVBfVFlQRV9OT1JNQUwpCi0JCQljb250aW51ZTsKLQkJaWYgKCFlbmFibGUpCi0JCQlhZGRyLT5z ZXRfZmxhZ3MgJj0gflFFVEhfSVBBX1NFVElQX1RBS0VPVkVSX0ZMQUc7Ci0JCWVsc2UgaWYgKHFl dGhfbDNfaXNfYWRkcl9jb3ZlcmVkX2J5X2lwYXRvKGNhcmQsIGFkZHIpKQotCQkJYWRkci0+c2V0 X2ZsYWdzIHw9IFFFVEhfSVBBX1NFVElQX1RBS0VPVkVSX0ZMQUc7CisJaWYgKGNhcmQtPmlwYXRv LmVuYWJsZWQgIT0gZW5hYmxlKSB7CisJCWNhcmQtPmlwYXRvLmVuYWJsZWQgPSBlbmFibGU7CisJ CXNwaW5fbG9ja19iaCgmY2FyZC0+aXBfbG9jayk7CisJCXFldGhfbDNfdXBkYXRlX2lwYXRvKGNh cmQpOworCQlzcGluX3VubG9ja19iaCgmY2FyZC0+aXBfbG9jayk7CiAJfQotCXNwaW5fdW5sb2Nr X2JoKCZjYXJkLT5pcF9sb2NrKTsKIG91dDoKIAltdXRleF91bmxvY2soJmNhcmQtPmNvbmZfbXV0 ZXgpOwogCXJldHVybiByYyA/IHJjIDogY291bnQ7CkBAIC00MzIsMjAgKzQyMywyNyBAQCBzdGF0 aWMgc3NpemVfdCBxZXRoX2wzX2Rldl9pcGF0b19pbnZlcnQ0X3N0b3JlKHN0cnVjdCBkZXZpY2Ug KmRldiwKIAkJCQljb25zdCBjaGFyICpidWYsIHNpemVfdCBjb3VudCkKIHsKIAlzdHJ1Y3QgcWV0 aF9jYXJkICpjYXJkID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisJYm9vbCBpbnZlcnQ7CiAJaW50 IHJjID0gMDsKIAogCWlmICghY2FyZCkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKIAltdXRleF9sb2Nr KCZjYXJkLT5jb25mX211dGV4KTsKLQlpZiAoc3lzZnNfc3RyZXEoYnVmLCAidG9nZ2xlIikpCi0J CWNhcmQtPmlwYXRvLmludmVydDQgPSAoY2FyZC0+aXBhdG8uaW52ZXJ0NCk/IDAgOiAxOwotCWVs c2UgaWYgKHN5c2ZzX3N0cmVxKGJ1ZiwgIjEiKSkKLQkJY2FyZC0+aXBhdG8uaW52ZXJ0NCA9IDE7 Ci0JZWxzZSBpZiAoc3lzZnNfc3RyZXEoYnVmLCAiMCIpKQotCQljYXJkLT5pcGF0by5pbnZlcnQ0 ID0gMDsKLQllbHNlCisJaWYgKHN5c2ZzX3N0cmVxKGJ1ZiwgInRvZ2dsZSIpKSB7CisJCWludmVy dCA9ICFjYXJkLT5pcGF0by5pbnZlcnQ0OworCX0gZWxzZSBpZiAoa3N0cnRvYm9vbChidWYsICZp bnZlcnQpKSB7CiAJCXJjID0gLUVJTlZBTDsKKwkJZ290byBvdXQ7CisJfQorCisJaWYgKGNhcmQt PmlwYXRvLmludmVydDQgIT0gaW52ZXJ0KSB7CisJCWNhcmQtPmlwYXRvLmludmVydDQgPSBpbnZl cnQ7CisJCXNwaW5fbG9ja19iaCgmY2FyZC0+aXBfbG9jayk7CisJCXFldGhfbDNfdXBkYXRlX2lw YXRvKGNhcmQpOworCQlzcGluX3VubG9ja19iaCgmY2FyZC0+aXBfbG9jayk7CisJfQorb3V0Ogog CW11dGV4X3VubG9jaygmY2FyZC0+Y29uZl9tdXRleCk7CiAJcmV0dXJuIHJjID8gcmMgOiBjb3Vu dDsKIH0KQEAgLTYxMSwyMCArNjA5LDI3IEBAIHN0YXRpYyBzc2l6ZV90IHFldGhfbDNfZGV2X2lw YXRvX2ludmVydDZfc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LAogCQlzdHJ1Y3QgZGV2aWNlX2F0 dHJpYnV0ZSAqYXR0ciwgY29uc3QgY2hhciAqYnVmLCBzaXplX3QgY291bnQpCiB7CiAJc3RydWN0 IHFldGhfY2FyZCAqY2FyZCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworCWJvb2wgaW52ZXJ0Owog CWludCByYyA9IDA7CiAKIAlpZiAoIWNhcmQpCiAJCXJldHVybiAtRUlOVkFMOwogCiAJbXV0ZXhf bG9jaygmY2FyZC0+Y29uZl9tdXRleCk7Ci0JaWYgKHN5c2ZzX3N0cmVxKGJ1ZiwgInRvZ2dsZSIp KQotCQljYXJkLT5pcGF0by5pbnZlcnQ2ID0gKGNhcmQtPmlwYXRvLmludmVydDYpPyAwIDogMTsK LQllbHNlIGlmIChzeXNmc19zdHJlcShidWYsICIxIikpCi0JCWNhcmQtPmlwYXRvLmludmVydDYg PSAxOwotCWVsc2UgaWYgKHN5c2ZzX3N0cmVxKGJ1ZiwgIjAiKSkKLQkJY2FyZC0+aXBhdG8uaW52 ZXJ0NiA9IDA7Ci0JZWxzZQorCWlmIChzeXNmc19zdHJlcShidWYsICJ0b2dnbGUiKSkgeworCQlp bnZlcnQgPSAhY2FyZC0+aXBhdG8uaW52ZXJ0NjsKKwl9IGVsc2UgaWYgKGtzdHJ0b2Jvb2woYnVm LCAmaW52ZXJ0KSkgewogCQlyYyA9IC1FSU5WQUw7CisJCWdvdG8gb3V0OworCX0KKworCWlmIChj YXJkLT5pcGF0by5pbnZlcnQ2ICE9IGludmVydCkgeworCQljYXJkLT5pcGF0by5pbnZlcnQ2ID0g aW52ZXJ0OworCQlzcGluX2xvY2tfYmgoJmNhcmQtPmlwX2xvY2spOworCQlxZXRoX2wzX3VwZGF0 ZV9pcGF0byhjYXJkKTsKKwkJc3Bpbl91bmxvY2tfYmgoJmNhcmQtPmlwX2xvY2spOworCX0KK291 dDoKIAltdXRleF91bmxvY2soJmNhcmQtPmNvbmZfbXV0ZXgpOwogCXJldHVybiByYyA/IHJjIDog Y291bnQ7CiB9Ci0tIAoyLjkuNQoK ----Next_Part(Sat_Dec_30_23_15_02_2017_152)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_414.mbox" RnJvbSBmYzlhYzlmYzEwZjVhOGZjNjUwNWRhM2M3OWVlNjI4MTZlMTNjNDUzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRh dGU6IE1vbiwgMTEgRGVjIDIwMTcgMDc6MTc6MzkgLTA4MDAKU3ViamVjdDogW1BBVENIIDAxLzU4 XSBpcHY0OiBpZ21wOiBndWFyZCBhZ2FpbnN0IHNpbGx5IE1UVSB2YWx1ZXMKTUlNRS1WZXJzaW9u OiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJh bnNmZXItRW5jb2Rpbmc6IDhiaXQKClsgVXBzdHJlYW0gY29tbWl0IGI1NDc2MDIyYmJhZGEzNzY0 NjA5MzY4ZjAzMzI5Y2EyODc1MjhkYzggXQoKSVB2NCBzdGFjayByZWFjdHMgdG8gY2hhbmdlcyB0 byBzbWFsbCBNVFUsIGJ5IGRpc2FibGluZyBpdHNlbGYgdW5kZXIKUlROTC4KCkJ1dCB0aGVyZSBp cyBhIHdpbmRvdyB3aGVyZSB0aHJlYWRzIG5vdCB1c2luZyBSVE5MIGNhbiBzZWUgYSB3cm9uZwpk ZXZpY2UgbXR1LiBUaGlzIGNhbiBsZWFkIHRvIHN1cnByaXNlcywgaW4gaWdtcCBjb2RlIHdoZXJl IGl0IGlzCmFzc3VtZWQgdGhlIG10dSBpcyBzdWl0YWJsZS4KCkZpeCB0aGlzIGJ5IHJlYWRpbmcg ZGV2aWNlIG10dSBvbmNlIGFuZCBjaGVja2luZyBJUHY0IG1pbmltYWwgTVRVLgoKVGhpcyBwYXRj aCBhZGRzIG1pc3NpbmcgSVBWNF9NSU5fTVRVIGRlZmluZSwgdG8gbm90IGFidXNlCkVUSF9NSU5f TVRVwqBhbnltb3JlLgoKU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29n bGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogaW5jbHVkZS9uZXQvaXAuaCAgICAgfCAgMSArCiBuZXQvaXB2NC9kZXZpbmV0LmMg ICB8ICAyICstCiBuZXQvaXB2NC9pZ21wLmMgICAgICB8IDI0ICsrKysrKysrKysrKysrKy0tLS0t LS0tLQogbmV0L2lwdjQvaXBfdHVubmVsLmMgfCAgNCArKy0tCiA0IGZpbGVzIGNoYW5nZWQsIDE5 IGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0 L2lwLmggYi9pbmNsdWRlL25ldC9pcC5oCmluZGV4IDk4OTZmNDYuLmFmOGFkZGIgMTAwNjQ0Ci0t LSBhL2luY2x1ZGUvbmV0L2lwLmgKKysrIGIvaW5jbHVkZS9uZXQvaXAuaApAQCAtMzQsNiArMzQs NyBAQAogI2luY2x1ZGUgPG5ldC9mbG93X2Rpc3NlY3Rvci5oPgogCiAjZGVmaW5lIElQVjRfTUFY X1BNVFUJCTY1NTM1VQkJLyogUkZDIDI2NzUsIFNlY3Rpb24gNS4xICovCisjZGVmaW5lIElQVjRf TUlOX01UVQkJNjgJCQkvKiBSRkMgNzkxICovCiAKIHN0cnVjdCBzb2NrOwogCmRpZmYgLS1naXQg YS9uZXQvaXB2NC9kZXZpbmV0LmMgYi9uZXQvaXB2NC9kZXZpbmV0LmMKaW5kZXggZDdhZGMwNi4u YmZmYTg4ZSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvZGV2aW5ldC5jCisrKyBiL25ldC9pcHY0L2Rl dmluZXQuYwpAQCAtMTQyMCw3ICsxNDIwLDcgQEAgc3RhdGljIHZvaWQgaW5ldGRldl9jaGFuZ2Vu YW1lKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBpbl9kZXZpY2UgKmluX2RldikKIAog c3RhdGljIGJvb2wgaW5ldGRldl92YWxpZF9tdHUodW5zaWduZWQgaW50IG10dSkKIHsKLQlyZXR1 cm4gbXR1ID49IDY4OworCXJldHVybiBtdHUgPj0gSVBWNF9NSU5fTVRVOwogfQogCiBzdGF0aWMg dm9pZCBpbmV0ZGV2X3NlbmRfZ3JhdHVpdG91c19hcnAoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwK ZGlmZiAtLWdpdCBhL25ldC9pcHY0L2lnbXAuYyBiL25ldC9pcHY0L2lnbXAuYwppbmRleCBhYjE4 M2FmLi44NmYxNzg2IDEwMDY0NAotLS0gYS9uZXQvaXB2NC9pZ21wLmMKKysrIGIvbmV0L2lwdjQv aWdtcC5jCkBAIC00MDQsMTYgKzQwNCwxNyBAQCBzdGF0aWMgaW50IGdyZWNfc2l6ZShzdHJ1Y3Qg aXBfbWNfbGlzdCAqcG1jLCBpbnQgdHlwZSwgaW50IGdkZWwsIGludCBzZGVsKQogfQogCiBzdGF0 aWMgc3RydWN0IHNrX2J1ZmYgKmFkZF9ncmhlYWQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0 IGlwX21jX2xpc3QgKnBtYywKLQlpbnQgdHlwZSwgc3RydWN0IGlnbXB2M19ncmVjICoqcHBncikK KwlpbnQgdHlwZSwgc3RydWN0IGlnbXB2M19ncmVjICoqcHBnciwgdW5zaWduZWQgaW50IG10dSkK IHsKIAlzdHJ1Y3QgbmV0X2RldmljZSAqZGV2ID0gcG1jLT5pbnRlcmZhY2UtPmRldjsKIAlzdHJ1 Y3QgaWdtcHYzX3JlcG9ydCAqcGloOwogCXN0cnVjdCBpZ21wdjNfZ3JlYyAqcGdyOwogCi0JaWYg KCFza2IpCi0JCXNrYiA9IGlnbXB2M19uZXdwYWNrKGRldiwgZGV2LT5tdHUpOwotCWlmICghc2ti KQotCQlyZXR1cm4gTlVMTDsKKwlpZiAoIXNrYikgeworCQlza2IgPSBpZ21wdjNfbmV3cGFjayhk ZXYsIG10dSk7CisJCWlmICghc2tiKQorCQkJcmV0dXJuIE5VTEw7CisJfQogCXBnciA9IHNrYl9w dXQoc2tiLCBzaXplb2Yoc3RydWN0IGlnbXB2M19ncmVjKSk7CiAJcGdyLT5ncmVjX3R5cGUgPSB0 eXBlOwogCXBnci0+Z3JlY19hdXh3b3JkcyA9IDA7CkBAIC00MzYsMTIgKzQzNywxNyBAQCBzdGF0 aWMgc3RydWN0IHNrX2J1ZmYgKmFkZF9ncmVjKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBp cF9tY19saXN0ICpwbWMsCiAJc3RydWN0IGlnbXB2M19ncmVjICpwZ3IgPSBOVUxMOwogCXN0cnVj dCBpcF9zZl9saXN0ICpwc2YsICpwc2ZfbmV4dCwgKnBzZl9wcmV2LCAqKnBzZl9saXN0OwogCWlu dCBzY291bnQsIHN0b3RhbCwgZmlyc3QsIGlzcXVlcnksIHRydW5jYXRlOworCXVuc2lnbmVkIGlu dCBtdHU7CiAKIAlpZiAocG1jLT5tdWx0aWFkZHIgPT0gSUdNUF9BTExfSE9TVFMpCiAJCXJldHVy biBza2I7CiAJaWYgKGlwdjRfaXNfbG9jYWxfbXVsdGljYXN0KHBtYy0+bXVsdGlhZGRyKSAmJiAh bmV0LT5pcHY0LnN5c2N0bF9pZ21wX2xsbV9yZXBvcnRzKQogCQlyZXR1cm4gc2tiOwogCisJbXR1 ID0gUkVBRF9PTkNFKGRldi0+bXR1KTsKKwlpZiAobXR1IDwgSVBWNF9NSU5fTVRVKQorCQlyZXR1 cm4gc2tiOworCiAJaXNxdWVyeSA9IHR5cGUgPT0gSUdNUFYzX01PREVfSVNfSU5DTFVERSB8fAog CQkgIHR5cGUgPT0gSUdNUFYzX01PREVfSVNfRVhDTFVERTsKIAl0cnVuY2F0ZSA9IHR5cGUgPT0g SUdNUFYzX01PREVfSVNfRVhDTFVERSB8fApAQCAtNDYyLDcgKzQ2OCw3IEBAIHN0YXRpYyBzdHJ1 Y3Qgc2tfYnVmZiAqYWRkX2dyZWMoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGlwX21jX2xp c3QgKnBtYywKIAkJICAgIEFWQUlMQUJMRShza2IpIDwgZ3JlY19zaXplKHBtYywgdHlwZSwgZ2Rl bGV0ZWQsIHNkZWxldGVkKSkgewogCQkJaWYgKHNrYikKIAkJCQlpZ21wdjNfc2VuZHBhY2soc2ti KTsKLQkJCXNrYiA9IGlnbXB2M19uZXdwYWNrKGRldiwgZGV2LT5tdHUpOworCQkJc2tiID0gaWdt cHYzX25ld3BhY2soZGV2LCBtdHUpOwogCQl9CiAJfQogCWZpcnN0ID0gMTsKQEAgLTQ5OCwxMiAr NTA0LDEyIEBAIHN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqYWRkX2dyZWMoc3RydWN0IHNrX2J1ZmYg KnNrYiwgc3RydWN0IGlwX21jX2xpc3QgKnBtYywKIAkJCQlwZ3ItPmdyZWNfbnNyY3MgPSBodG9u cyhzY291bnQpOwogCQkJaWYgKHNrYikKIAkJCQlpZ21wdjNfc2VuZHBhY2soc2tiKTsKLQkJCXNr YiA9IGlnbXB2M19uZXdwYWNrKGRldiwgZGV2LT5tdHUpOworCQkJc2tiID0gaWdtcHYzX25ld3Bh Y2soZGV2LCBtdHUpOwogCQkJZmlyc3QgPSAxOwogCQkJc2NvdW50ID0gMDsKIAkJfQogCQlpZiAo Zmlyc3QpIHsKLQkJCXNrYiA9IGFkZF9ncmhlYWQoc2tiLCBwbWMsIHR5cGUsICZwZ3IpOworCQkJ c2tiID0gYWRkX2dyaGVhZChza2IsIHBtYywgdHlwZSwgJnBnciwgbXR1KTsKIAkJCWZpcnN0ID0g MDsKIAkJfQogCQlpZiAoIXNrYikKQEAgLTUzOCw3ICs1NDQsNyBAQCBzdGF0aWMgc3RydWN0IHNr X2J1ZmYgKmFkZF9ncmVjKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBpcF9tY19saXN0ICpw bWMsCiAJCQkJaWdtcHYzX3NlbmRwYWNrKHNrYik7CiAJCQkJc2tiID0gTlVMTDsgLyogYWRkX2dy aGVhZCB3aWxsIGdldCBhIG5ldyBvbmUgKi8KIAkJCX0KLQkJCXNrYiA9IGFkZF9ncmhlYWQoc2ti LCBwbWMsIHR5cGUsICZwZ3IpOworCQkJc2tiID0gYWRkX2dyaGVhZChza2IsIHBtYywgdHlwZSwg JnBnciwgbXR1KTsKIAkJfQogCX0KIAlpZiAocGdyKQpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaXBf dHVubmVsLmMgYi9uZXQvaXB2NC9pcF90dW5uZWwuYwppbmRleCBlOTgwNWFkLi40ZTkwMDgyIDEw MDY0NAotLS0gYS9uZXQvaXB2NC9pcF90dW5uZWwuYworKysgYi9uZXQvaXB2NC9pcF90dW5uZWwu YwpAQCAtMzQ5LDggKzM0OSw4IEBAIHN0YXRpYyBpbnQgaXBfdHVubmVsX2JpbmRfZGV2KHN0cnVj dCBuZXRfZGV2aWNlICpkZXYpCiAJZGV2LT5uZWVkZWRfaGVhZHJvb20gPSB0X2hsZW4gKyBobGVu OwogCW10dSAtPSAoZGV2LT5oYXJkX2hlYWRlcl9sZW4gKyB0X2hsZW4pOwogCi0JaWYgKG10dSA8 IDY4KQotCQltdHUgPSA2ODsKKwlpZiAobXR1IDwgSVBWNF9NSU5fTVRVKQorCQltdHUgPSBJUFY0 X01JTl9NVFU7CiAKIAlyZXR1cm4gbXR1OwogfQotLSAKMi45LjUKCgpGcm9tIGFkN2UzZDY0NWUy MGEwNjI4MTQ1MDQ2NTk3ZGI0Nzk0Y2E5MmYyNjEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogTW9uLCAxMSBEZWMg MjAxNyAwNzowMzozOCAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDIvNThdIGlwdjY6IG1jYXN0OiBi ZXR0ZXIgY2F0Y2ggc2lsbHkgbXR1IHZhbHVlcwoKWyBVcHN0cmVhbSBjb21taXQgYjliMzEyYTdh NDUxZTljMDk4OTIxODU2ZTdjZmJjMjAxMTIwZTFhNyBdCgpzeXprYWxsZXIgcmVwb3J0ZWQgY3Jh c2hlcyBpbiBJUHY2IHN0YWNrIFsxXQoKWGluIExvbmcgZm91bmQgdGhhdCBsbyBNVFUgd2FzIHNl dCB0byBzaWxseSB2YWx1ZXMuCgpJUHY2IHN0YWNrIHJlYWN0cyB0byBjaGFuZ2VzIHRvIHNtYWxs IE1UVSwgYnkgZGlzYWJsaW5nIGl0c2VsZiB1bmRlcgpSVE5MLgoKQnV0IHRoZXJlIGlzIGEgd2lu ZG93IHdoZXJlIHRocmVhZHMgbm90IHVzaW5nIFJUTkwgY2FuIHNlZSBhIHdyb25nCmRldmljZSBt dHUuIFRoaXMgY2FuIGxlYWQgdG8gc3VycHJpc2VzLCBpbiBtbGQgY29kZSB3aGVyZSBpdCBpcyBh c3N1bWVkCnRoZSBtdHUgaXMgc3VpdGFibGUuCgpGaXggdGhpcyBieSByZWFkaW5nIGRldmljZSBt dHUgb25jZSBhbmQgY2hlY2tpbmcgSVB2NiBtaW5pbWFsIE1UVS4KClsxXQogc2tidWZmOiBza2Jf b3Zlcl9wYW5pYzogdGV4dDowMDAwMDAwMDEwYjg2YjhkIGxlbjoxOTYgcHV0OjIwCiBoZWFkOjAw MDAwMDAwM2I0NzdlNjAgZGF0YTowMDAwMDAwMDBlODU0NDFlIHRhaWw6MHhkNCBlbmQ6MHhjMCBk ZXY6bG8KIC0tLS0tLS0tLS0tLVsgY3V0IGhlcmUgXS0tLS0tLS0tLS0tLQoga2VybmVsIEJVRyBh dCBuZXQvY29yZS9za2J1ZmYuYzoxMDQhCiBpbnZhbGlkIG9wY29kZTogMDAwMCBbIzFdIFNNUCBL QVNBTgogRHVtcGluZyBmdHJhY2UgYnVmZmVyOgogICAgKGZ0cmFjZSBidWZmZXIgZW1wdHkpCiBN b2R1bGVzIGxpbmtlZCBpbjoKIENQVTogMSBQSUQ6IDAgQ29tbTogc3dhcHBlci8xIE5vdCB0YWlu dGVkIDQuMTUuMC1yYzItbW0xKyAjMzkKIEhhcmR3YXJlIG5hbWU6IEdvb2dsZSBHb29nbGUgQ29t cHV0ZSBFbmdpbmUvR29vZ2xlIENvbXB1dGUgRW5naW5lLCBCSU9TCiBHb29nbGUgMDEvMDEvMjAx MQogUklQOiAwMDEwOnNrYl9wYW5pYysweDE1Yy8weDFmMCBuZXQvY29yZS9za2J1ZmYuYzoxMDAK IFJTUDogMDAxODpmZmZmODgwMWRiMzA3NTA4IEVGTEFHUzogMDAwMTAyODYKIFJBWDogMDAwMDAw MDAwMDAwMDA4MiBSQlg6IGZmZmY4ODAxYzUxN2U4NDAgUkNYOiAwMDAwMDAwMDAwMDAwMDAwCiBS RFg6IDAwMDAwMDAwMDAwMDAwODIgUlNJOiAxZmZmZjEwMDNiNjYwZTYxIFJESTogZmZmZmVkMDAz YjY2MGU5NQogUkJQOiBmZmZmODgwMWRiMzA3NTcwIFIwODogMWZmZmYxMDAzYjY2MGUyMyBSMDk6 IDAwMDAwMDAwMDAwMDAwMDAKIFIxMDogMDAwMDAwMDAwMDAwMDAwMCBSMTE6IDAwMDAwMDAwMDAw MDAwMDAgUjEyOiBmZmZmZmZmZjg1YmQ0MDIwCiBSMTM6IGZmZmZmZmZmODQ3NTRlZDIgUjE0OiAw MDAwMDAwMDAwMDAwMDE0IFIxNTogZmZmZjg4MDFjNGUyNjU0MAogRlM6ICAwMDAwMDAwMDAwMDAw MDAwKDAwMDApIEdTOmZmZmY4ODAxZGIzMDAwMDAoMDAwMCkga25sR1M6MDAwMDAwMDAwMDAwMDAw MAogQ1M6ICAwMDEwIERTOiAwMDAwIEVTOiAwMDAwIENSMDogMDAwMDAwMDA4MDA1MDAzMwogQ1Iy OiAwMDAwMDAwMDAwNDYzNjEwIENSMzogMDAwMDAwMDFjNjY5ODAwMCBDUjQ6IDAwMDAwMDAwMDAx NDA2ZTAKIERSMDogMDAwMDAwMDAwMDAwMDAwMCBEUjE6IDAwMDAwMDAwMDAwMDAwMDAgRFIyOiAw MDAwMDAwMDAwMDAwMDAwCiBEUjM6IDAwMDAwMDAwMDAwMDAwMDAgRFI2OiAwMDAwMDAwMGZmZmUw ZmYwIERSNzogMDAwMDAwMDAwMDAwMDQwMAogQ2FsbCBUcmFjZToKICA8SVJRPgogIHNrYl9vdmVy X3BhbmljIG5ldC9jb3JlL3NrYnVmZi5jOjEwOSBbaW5saW5lXQogIHNrYl9wdXQrMHgxODEvMHgx YzAgbmV0L2NvcmUvc2tidWZmLmM6MTY5NAogIGFkZF9ncmhlYWQuaXNyYS4yNCsweDQyLzB4M2Iw IG5ldC9pcHY2L21jYXN0LmM6MTY5NQogIGFkZF9ncmVjKzB4YTU1LzB4MTA2MCBuZXQvaXB2Ni9t Y2FzdC5jOjE4MTcKICBtbGRfc2VuZF9jciBuZXQvaXB2Ni9tY2FzdC5jOjE5MDMgW2lubGluZV0K ICBtbGRfaWZjX3RpbWVyX2V4cGlyZSsweDRkMi8weDc3MCBuZXQvaXB2Ni9tY2FzdC5jOjI0NDgK ICBjYWxsX3RpbWVyX2ZuKzB4MjNiLzB4ODQwIGtlcm5lbC90aW1lL3RpbWVyLmM6MTMyMAogIGV4 cGlyZV90aW1lcnMga2VybmVsL3RpbWUvdGltZXIuYzoxMzU3IFtpbmxpbmVdCiAgX19ydW5fdGlt ZXJzKzB4N2UxLzB4YjYwIGtlcm5lbC90aW1lL3RpbWVyLmM6MTY2MAogIHJ1bl90aW1lcl9zb2Z0 aXJxKzB4NGMvMHhiMCBrZXJuZWwvdGltZS90aW1lci5jOjE2ODYKICBfX2RvX3NvZnRpcnErMHgy OWQvMHhiYjIga2VybmVsL3NvZnRpcnEuYzoyODUKICBpbnZva2Vfc29mdGlycSBrZXJuZWwvc29m dGlycS5jOjM2NSBbaW5saW5lXQogIGlycV9leGl0KzB4MWQzLzB4MjEwIGtlcm5lbC9zb2Z0aXJx LmM6NDA1CiAgZXhpdGluZ19pcnEgYXJjaC94ODYvaW5jbHVkZS9hc20vYXBpYy5oOjU0MCBbaW5s aW5lXQogIHNtcF9hcGljX3RpbWVyX2ludGVycnVwdCsweDE2Yi8weDcwMCBhcmNoL3g4Ni9rZXJu ZWwvYXBpYy9hcGljLmM6MTA1MgogIGFwaWNfdGltZXJfaW50ZXJydXB0KzB4YTkvMHhiMCBhcmNo L3g4Ni9lbnRyeS9lbnRyeV82NC5TOjkyMAoKU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxl ZHVtYXpldEBnb29nbGUuY29tPgpSZXBvcnRlZC1ieTogc3l6Ym90IDxzeXprYWxsZXJAZ29vZ2xl Z3JvdXBzLmNvbT4KVGVzdGVkLWJ5OiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+ClNp Z25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBu ZXQvaXB2Ni9tY2FzdC5jIHwgMjUgKysrKysrKysrKysrKysrLS0tLS0tLS0tLQogMSBmaWxlIGNo YW5nZWQsIDE1IGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25l dC9pcHY2L21jYXN0LmMgYi9uZXQvaXB2Ni9tY2FzdC5jCmluZGV4IDEyYjdjMjcuLjlhMzhhMmMg MTAwNjQ0Ci0tLSBhL25ldC9pcHY2L21jYXN0LmMKKysrIGIvbmV0L2lwdjYvbWNhc3QuYwpAQCAt MTY4MiwxNiArMTY4MiwxNiBAQCBzdGF0aWMgaW50IGdyZWNfc2l6ZShzdHJ1Y3QgaWZtY2FkZHI2 ICpwbWMsIGludCB0eXBlLCBpbnQgZ2RlbCwgaW50IHNkZWwpCiB9CiAKIHN0YXRpYyBzdHJ1Y3Qg c2tfYnVmZiAqYWRkX2dyaGVhZChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgaWZtY2FkZHI2 ICpwbWMsCi0JaW50IHR5cGUsIHN0cnVjdCBtbGQyX2dyZWMgKipwcGdyKQorCWludCB0eXBlLCBz dHJ1Y3QgbWxkMl9ncmVjICoqcHBnciwgdW5zaWduZWQgaW50IG10dSkKIHsKLQlzdHJ1Y3QgbmV0 X2RldmljZSAqZGV2ID0gcG1jLT5pZGV2LT5kZXY7CiAJc3RydWN0IG1sZDJfcmVwb3J0ICpwbXI7 CiAJc3RydWN0IG1sZDJfZ3JlYyAqcGdyOwogCi0JaWYgKCFza2IpCi0JCXNrYiA9IG1sZF9uZXdw YWNrKHBtYy0+aWRldiwgZGV2LT5tdHUpOwotCWlmICghc2tiKQotCQlyZXR1cm4gTlVMTDsKKwlp ZiAoIXNrYikgeworCQlza2IgPSBtbGRfbmV3cGFjayhwbWMtPmlkZXYsIG10dSk7CisJCWlmICgh c2tiKQorCQkJcmV0dXJuIE5VTEw7CisJfQogCXBnciA9IHNrYl9wdXQoc2tiLCBzaXplb2Yoc3Ry dWN0IG1sZDJfZ3JlYykpOwogCXBnci0+Z3JlY190eXBlID0gdHlwZTsKIAlwZ3ItPmdyZWNfYXV4 d29yZHMgPSAwOwpAQCAtMTcxNCwxMCArMTcxNCwxNSBAQCBzdGF0aWMgc3RydWN0IHNrX2J1ZmYg KmFkZF9ncmVjKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBpZm1jYWRkcjYgKnBtYywKIAlz dHJ1Y3QgbWxkMl9ncmVjICpwZ3IgPSBOVUxMOwogCXN0cnVjdCBpcDZfc2ZfbGlzdCAqcHNmLCAq cHNmX25leHQsICpwc2ZfcHJldiwgKipwc2ZfbGlzdDsKIAlpbnQgc2NvdW50LCBzdG90YWwsIGZp cnN0LCBpc3F1ZXJ5LCB0cnVuY2F0ZTsKKwl1bnNpZ25lZCBpbnQgbXR1OwogCiAJaWYgKHBtYy0+ bWNhX2ZsYWdzICYgTUFGX05PUkVQT1JUKQogCQlyZXR1cm4gc2tiOwogCisJbXR1ID0gUkVBRF9P TkNFKGRldi0+bXR1KTsKKwlpZiAobXR1IDwgSVBWNl9NSU5fTVRVKQorCQlyZXR1cm4gc2tiOwor CiAJaXNxdWVyeSA9IHR5cGUgPT0gTUxEMl9NT0RFX0lTX0lOQ0xVREUgfHwKIAkJICB0eXBlID09 IE1MRDJfTU9ERV9JU19FWENMVURFOwogCXRydW5jYXRlID0gdHlwZSA9PSBNTEQyX01PREVfSVNf RVhDTFVERSB8fApAQCAtMTczOCw3ICsxNzQzLDcgQEAgc3RhdGljIHN0cnVjdCBza19idWZmICph ZGRfZ3JlYyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgaWZtY2FkZHI2ICpwbWMsCiAJCSAg ICBBVkFJTEFCTEUoc2tiKSA8IGdyZWNfc2l6ZShwbWMsIHR5cGUsIGdkZWxldGVkLCBzZGVsZXRl ZCkpIHsKIAkJCWlmIChza2IpCiAJCQkJbWxkX3NlbmRwYWNrKHNrYik7Ci0JCQlza2IgPSBtbGRf bmV3cGFjayhpZGV2LCBkZXYtPm10dSk7CisJCQlza2IgPSBtbGRfbmV3cGFjayhpZGV2LCBtdHUp OwogCQl9CiAJfQogCWZpcnN0ID0gMTsKQEAgLTE3NzQsMTIgKzE3NzksMTIgQEAgc3RhdGljIHN0 cnVjdCBza19idWZmICphZGRfZ3JlYyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgaWZtY2Fk ZHI2ICpwbWMsCiAJCQkJcGdyLT5ncmVjX25zcmNzID0gaHRvbnMoc2NvdW50KTsKIAkJCWlmIChz a2IpCiAJCQkJbWxkX3NlbmRwYWNrKHNrYik7Ci0JCQlza2IgPSBtbGRfbmV3cGFjayhpZGV2LCBk ZXYtPm10dSk7CisJCQlza2IgPSBtbGRfbmV3cGFjayhpZGV2LCBtdHUpOwogCQkJZmlyc3QgPSAx OwogCQkJc2NvdW50ID0gMDsKIAkJfQogCQlpZiAoZmlyc3QpIHsKLQkJCXNrYiA9IGFkZF9ncmhl YWQoc2tiLCBwbWMsIHR5cGUsICZwZ3IpOworCQkJc2tiID0gYWRkX2dyaGVhZChza2IsIHBtYywg dHlwZSwgJnBnciwgbXR1KTsKIAkJCWZpcnN0ID0gMDsKIAkJfQogCQlpZiAoIXNrYikKQEAgLTE4 MTQsNyArMTgxOSw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqYWRkX2dyZWMoc3RydWN0IHNr X2J1ZmYgKnNrYiwgc3RydWN0IGlmbWNhZGRyNiAqcG1jLAogCQkJCW1sZF9zZW5kcGFjayhza2Ip OwogCQkJCXNrYiA9IE5VTEw7IC8qIGFkZF9ncmhlYWQgd2lsbCBnZXQgYSBuZXcgb25lICovCiAJ CQl9Ci0JCQlza2IgPSBhZGRfZ3JoZWFkKHNrYiwgcG1jLCB0eXBlLCAmcGdyKTsKKwkJCXNrYiA9 IGFkZF9ncmhlYWQoc2tiLCBwbWMsIHR5cGUsICZwZ3IsIG10dSk7CiAJCX0KIAl9CiAJaWYgKHBn cikKLS0gCjIuOS41CgoKRnJvbSBmZGRkNDA2NzNiYjg4NGVhZGY0ZWU1ZDMyYTUwMTg2YjUyYWM4 YTNjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBGdWdhbmcgRHVhbiA8ZnVnYW5nLmR1 YW5AbnhwLmNvbT4KRGF0ZTogRnJpLCAyMiBEZWMgMjAxNyAxNzoxMjowOSArMDgwMApTdWJqZWN0 OiBbUEFUQ0ggMDMvNThdIG5ldDogZmVjOiB1bm1hcCB0aGUgeG1pdCBidWZmZXIgdGhhdCBhcmUg bm90CiB0cmFuc2ZlcnJlZCBieSBETUEKClsgVXBzdHJlYW0gY29tbWl0IDE3OGU1ZjU3YThkOGY4 ZmM1Nzk5YTYyNGI5NmZjMzFlZjlhMjlmZmEgXQoKVGhlIGVuZXQgSVAgb25seSBzdXBwb3J0IDMy IGJpdCwgaXQgd2lsbCB1c2Ugc3dpb3RsYiBidWZmZXIgdG8gZG8gZG1hCm1hcHBpbmcgd2hlbiB4 bWl0IGJ1ZmZlciBETUEgbWVtb3J5IGFkZHJlc3MgaXMgYmlnZ2VyIHRoYW4gNEcgaW4gaS5NWApw bGF0Zm9ybS4gQWZ0ZXIgc3RyZXNzIHN1c3BlbmQvcmVzdW1lIHRlc3QsIGl0IHdpbGwgcHJpbnQg b3V0OgoKbG9nOgpbMTI4MjYuMzUyODY0XSBmZWMgNWIwNDAwMDAuZXRoZXJuZXQ6IHN3aW90bGIg YnVmZmVyIGlzIGZ1bGwgKHN6OiAxOTEgYnl0ZXMpClsxMjgyNi4zNTk2NzZdIERNQTogT3V0IG9m IFNXLUlPTU1VIHNwYWNlIGZvciAxOTEgYnl0ZXMgYXQgZGV2aWNlIDViMDQwMDAwLmV0aGVybmV0 ClsxMjgyNi4zNjcxMTBdIGZlYyA1YjA0MDAwMC5ldGhlcm5ldCBldGgwOiBUeCBETUEgbWVtb3J5 IG1hcCBmYWlsZWQKClRoZSBpc3N1ZSBpcyB0aGF0IHRoZSByZWFkeSB4bWl0IGJ1ZmZlcnMgdGhh dCBhcmUgZG1hIG1hcHBlZCBidXQgRE1BIHN0aWxsCmRvbid0IGNvcHkgdGhlbSBpbnRvIGZpZm8s IG9uY2UgTUFDIHJlc3RhcnQsIHRoZXNlIERNQSBidWZmZXJzIGFyZSBub3QgdW5tYXBwZWQuClNv IGl0IHNob3VsZCBjaGVjayB0aGUgZG1hIG1hcHBpbmcgYnVmZmVyIGFuZCB1bm1hcCB0aGVtLgoK U2lnbmVkLW9mZi1ieTogRnVnYW5nIER1YW4gPGZ1Z2FuZy5kdWFuQG54cC5jb20+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJz L25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZmVjX21haW4uYyB8IDYgKysrKysrCiAxIGZpbGUgY2hh bmdlZCwgNiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQv ZnJlZXNjYWxlL2ZlY19tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZmVj X21haW4uYwppbmRleCAzZGMyZDc3Li5mYWY3Y2RjIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9l dGhlcm5ldC9mcmVlc2NhbGUvZmVjX21haW4uYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9m cmVlc2NhbGUvZmVjX21haW4uYwpAQCAtODE4LDYgKzgxOCwxMiBAQCBzdGF0aWMgdm9pZCBmZWNf ZW5ldF9iZF9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJCWZvciAoaSA9IDA7IGkgPCB0 eHEtPmJkLnJpbmdfc2l6ZTsgaSsrKSB7CiAJCQkvKiBJbml0aWFsaXplIHRoZSBCRCBmb3IgZXZl cnkgZnJhZ21lbnQgaW4gdGhlIHBhZ2UuICovCiAJCQliZHAtPmNiZF9zYyA9IGNwdV90b19mZWMx NigwKTsKKwkJCWlmIChiZHAtPmNiZF9idWZhZGRyICYmCisJCQkgICAgIUlTX1RTT19IRUFERVIo dHhxLCBmZWMzMl90b19jcHUoYmRwLT5jYmRfYnVmYWRkcikpKQorCQkJCWRtYV91bm1hcF9zaW5n bGUoJmZlcC0+cGRldi0+ZGV2LAorCQkJCQkJIGZlYzMyX3RvX2NwdShiZHAtPmNiZF9idWZhZGRy KSwKKwkJCQkJCSBmZWMxNl90b19jcHUoYmRwLT5jYmRfZGF0bGVuKSwKKwkJCQkJCSBETUFfVE9f REVWSUNFKTsKIAkJCWlmICh0eHEtPnR4X3NrYnVmZltpXSkgewogCQkJCWRldl9rZnJlZV9za2Jf YW55KHR4cS0+dHhfc2tidWZmW2ldKTsKIAkJCQl0eHEtPnR4X3NrYnVmZltpXSA9IE5VTEw7Ci0t IAoyLjkuNQoKCkZyb20gMTUzMzg0Nzg3MDg0OTA0YzFmZDFlODkyYjEyMThiNjY4YmQ4OTA4MCBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogS2V2aW4gQ2VybmVrZWUgPGNlcm5la2VlQGNo cm9taXVtLm9yZz4KRGF0ZTogTW9uLCAxMSBEZWMgMjAxNyAxMToxMzo0NSAtMDgwMApTdWJqZWN0 OiBbUEFUQ0ggMDQvNThdIG5ldDogaWdtcDogVXNlIGNvcnJlY3Qgc291cmNlIGFkZHJlc3Mgb24g SUdNUHYzIHJlcG9ydHMKClsgVXBzdHJlYW0gY29tbWl0IGE0NjE4MmIwMDI5MDgzOWZhM2ZhMTU5 ZDU0ZmQzMjM3YmQ4NjY5ZjAgXQoKQ2xvc2luZyBhIG11bHRpY2FzdCBzb2NrZXQgYWZ0ZXIgdGhl IGZpbmFsIElQdjQgYWRkcmVzcyBpcyBkZWxldGVkCmZyb20gYW4gaW50ZXJmYWNlIGNhbiBnZW5l cmF0ZSBhIG1lbWJlcnNoaXAgcmVwb3J0IHRoYXQgdXNlcyB0aGUKc291cmNlIElQIGZyb20gYSBk aWZmZXJlbnQgaW50ZXJmYWNlLiAgVGhlIGZvbGxvd2luZyB0ZXN0IHNjcmlwdCwgcnVuCmZyb20g YW4gaXNvbGF0ZWQgbmV0bnMsIHJlcHJvZHVjZXMgdGhlIGlzc3VlOgoKICAgICMhL2Jpbi9iYXNo CgogICAgaXAgbGluayBhZGQgZHVtbXkwIHR5cGUgZHVtbXkKICAgIGlwIGxpbmsgYWRkIGR1bW15 MSB0eXBlIGR1bW15CiAgICBpcCBsaW5rIHNldCBkdW1teTAgdXAKICAgIGlwIGxpbmsgc2V0IGR1 bW15MSB1cAogICAgaXAgYWRkciBhZGQgMTAuMS4xLjEvMjQgZGV2IGR1bW15MAogICAgaXAgYWRk ciBhZGQgMTkyLjE2OC45OS45OS8yNCBkZXYgZHVtbXkxCgogICAgdGNwZHVtcCAtVSAtaSBkdW1t eTAgJgogICAgc29jYXQgRVhFQzoic2xlZXAgMiIgXAogICAgICAgIFVEUDQtREFUQUdSQU06MjM5 LjEwMS4xLjY4Ojg4ODksaXAtYWRkLW1lbWJlcnNoaXA9MjM5LjAuMS42ODoxMC4xLjEuMSAmCgog ICAgc2xlZXAgMQogICAgaXAgYWRkciBkZWwgMTAuMS4xLjEvMjQgZGV2IGR1bW15MAogICAgc2xl ZXAgNQogICAga2lsbCAldGNwZHVtcAoKUkZDIDMzNzYgc3BlY2lmaWVzIHRoYXQgdGhlIHJlcG9y dCBtdXN0IGJlIHNlbnQgd2l0aCBhIHZhbGlkIElQIHNvdXJjZQphZGRyZXNzIGZyb20gdGhlIGRl c3RpbmF0aW9uIHN1Ym5ldCwgb3IgZnJvbSBhZGRyZXNzIDAuMC4wLjAuICBBZGQgYW4KZXh0cmEg Y2hlY2sgdG8gbWFrZSBzdXJlIHRoaXMgaXMgdGhlIGNhc2UuCgpTaWduZWQtb2ZmLWJ5OiBLZXZp biBDZXJuZWtlZSA8Y2VybmVrZWVAY2hyb21pdW0ub3JnPgpSZXZpZXdlZC1ieTogQW5kcmV3IEx1 bm4gPGFuZHJld0BsdW5uLmNoPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvaWdtcC5jIHwgMjAgKysrKysrKysrKysrKysr KysrKy0KIDEgZmlsZSBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpk aWZmIC0tZ2l0IGEvbmV0L2lwdjQvaWdtcC5jIGIvbmV0L2lwdjQvaWdtcC5jCmluZGV4IDg2ZjE3 ODYuLmM2MjEyNjYgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2lnbXAuYworKysgYi9uZXQvaXB2NC9p Z21wLmMKQEAgLTg5LDYgKzg5LDcgQEAKICNpbmNsdWRlIDxsaW51eC9ydG5ldGxpbmsuaD4KICNp bmNsdWRlIDxsaW51eC90aW1lcy5oPgogI2luY2x1ZGUgPGxpbnV4L3BrdF9zY2hlZC5oPgorI2lu Y2x1ZGUgPGxpbnV4L2J5dGVvcmRlci9nZW5lcmljLmg+CiAKICNpbmNsdWRlIDxuZXQvbmV0X25h bWVzcGFjZS5oPgogI2luY2x1ZGUgPG5ldC9hcnAuaD4KQEAgLTMyMSw2ICszMjIsMjMgQEAgaWdt cF9zY291bnQoc3RydWN0IGlwX21jX2xpc3QgKnBtYywgaW50IHR5cGUsIGludCBnZGVsZXRlZCwg aW50IHNkZWxldGVkKQogCXJldHVybiBzY291bnQ7CiB9CiAKKy8qIHNvdXJjZSBhZGRyZXNzIHNl bGVjdGlvbiBwZXIgUkZDIDMzNzYgc2VjdGlvbiA0LjIuMTMgKi8KK3N0YXRpYyBfX2JlMzIgaWdt cHYzX2dldF9zcmNhZGRyKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCisJCQkJIGNvbnN0IHN0cnVj dCBmbG93aTQgKmZsNCkKK3sKKwlzdHJ1Y3QgaW5fZGV2aWNlICppbl9kZXYgPSBfX2luX2Rldl9n ZXRfcmN1KGRldik7CisKKwlpZiAoIWluX2RldikKKwkJcmV0dXJuIGh0b25sKElOQUREUl9BTlkp OworCisJZm9yX2lmYShpbl9kZXYpIHsKKwkJaWYgKGluZXRfaWZhX21hdGNoKGZsNC0+c2FkZHIs IGlmYSkpCisJCQlyZXR1cm4gZmw0LT5zYWRkcjsKKwl9IGVuZGZvcl9pZmEoaW5fZGV2KTsKKwor CXJldHVybiBodG9ubChJTkFERFJfQU5ZKTsKK30KKwogc3RhdGljIHN0cnVjdCBza19idWZmICpp Z21wdjNfbmV3cGFjayhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgbXR1KQog ewogCXN0cnVjdCBza19idWZmICpza2I7CkBAIC0zNjgsNyArMzg2LDcgQEAgc3RhdGljIHN0cnVj dCBza19idWZmICppZ21wdjNfbmV3cGFjayhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCB1bnNpZ25l ZCBpbnQgbXR1KQogCXBpcC0+ZnJhZ19vZmYgPSBodG9ucyhJUF9ERik7CiAJcGlwLT50dGwgICAg ICA9IDE7CiAJcGlwLT5kYWRkciAgICA9IGZsNC5kYWRkcjsKLQlwaXAtPnNhZGRyICAgID0gZmw0 LnNhZGRyOworCXBpcC0+c2FkZHIgICAgPSBpZ21wdjNfZ2V0X3NyY2FkZHIoZGV2LCAmZmw0KTsK IAlwaXAtPnByb3RvY29sID0gSVBQUk9UT19JR01QOwogCXBpcC0+dG90X2xlbiAgPSAwOwkvKiBm aWxsZWQgaW4gbGF0ZXIgKi8KIAlpcF9zZWxlY3RfaWRlbnQobmV0LCBza2IsIE5VTEwpOwotLSAK Mi45LjUKCgpGcm9tIDMwNGFjODk4YTE5M2FhYjhkZjFhYjc1Y2FiMWM3ODkxNTVlNTI0ZmEgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEtldmluIENlcm5la2VlIDxjZXJuZWtlZUBjaHJv bWl1bS5vcmc+CkRhdGU6IFdlZCwgNiBEZWMgMjAxNyAxMjoxMjoyNyAtMDgwMApTdWJqZWN0OiBb UEFUQ0ggMDUvNThdIG5ldGxpbms6IEFkZCBuZXRucyBjaGVjayBvbiB0YXBzCgpbIFVwc3RyZWFt IGNvbW1pdCA5M2M2NDc2NDNiNDhmMDEzMWYwMmU0NWRhM2JkMzY3ZDgwNDQzMjkxIF0KCkN1cnJl bnRseSwgYSBubG1vbiBsaW5rIGluc2lkZSBhIGNoaWxkIG5hbWVzcGFjZSBjYW4gb2JzZXJ2ZSBz eXN0ZW13aWRlCm5ldGxpbmsgYWN0aXZpdHkuICBGaWx0ZXIgdGhlIHRyYWZmaWMgc28gdGhhdCBu bG1vbiBjYW4gb25seSBzbmlmZgpuZXRsaW5rIG1lc3NhZ2VzIGZyb20gaXRzIG93biBuZXRucy4K ClRlc3QgY2FzZToKCiAgICB2cG5ucyAtLSBiYXNoIC1jICJpcCBsaW5rIGFkZCBubG1vbjAgdHlw ZSBubG1vbjsgXAogICAgICAgICAgICAgICAgICAgICAgaXAgbGluayBzZXQgbmxtb24wIHVwOyBc CiAgICAgICAgICAgICAgICAgICAgICB0Y3BkdW1wIC1pIG5sbW9uMCAtcSAtdyAvdG1wL25sbW9u LnBjYXAgLVUiICYKICAgIHN1ZG8gaXAgeGZybSBzdGF0ZSBhZGQgc3JjIDEwLjEuMS4xIGRzdCAx MC4xLjEuMiBwcm90byBlc3AgXAogICAgICAgIHNwaSAweDEgbW9kZSB0cmFuc3BvcnQgXAogICAg ICAgIGF1dGggc2hhMSAweDYxNjI2MzMxMzIzMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAg XAogICAgICAgIGVuYyBhZXMgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAogICAg Z3JlcCAtLWJpbmFyeSBhYmMxMjMgL3RtcC9ubG1vbi5wY2FwCgpTaWduZWQtb2ZmLWJ5OiBLZXZp biBDZXJuZWtlZSA8Y2VybmVrZWVAY2hyb21pdW0ub3JnPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L25ldGxpbmsvYWZfbmV0bGlu ay5jIHwgMyArKysKIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQg YS9uZXQvbmV0bGluay9hZl9uZXRsaW5rLmMgYi9uZXQvbmV0bGluay9hZl9uZXRsaW5rLmMKaW5k ZXggMTVjOTlkZi4uYWFjOWQ2OGIgMTAwNjQ0Ci0tLSBhL25ldC9uZXRsaW5rL2FmX25ldGxpbmsu YworKysgYi9uZXQvbmV0bGluay9hZl9uZXRsaW5rLmMKQEAgLTI1NCw2ICsyNTQsOSBAQCBzdGF0 aWMgaW50IF9fbmV0bGlua19kZWxpdmVyX3RhcF9za2Ioc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAlz dHJ1Y3Qgc29jayAqc2sgPSBza2ItPnNrOwogCWludCByZXQgPSAtRU5PTUVNOwogCisJaWYgKCFu ZXRfZXEoZGV2X25ldChkZXYpLCBzb2NrX25ldChzaykpKQorCQlyZXR1cm4gMDsKKwogCWRldl9o b2xkKGRldik7CiAKIAlpZiAoaXNfdm1hbGxvY19hZGRyKHNrYi0+aGVhZCkpCi0tIAoyLjkuNQoK CkZyb20gMmZlN2VkMjczMzMxYWFkZWVjYzU4ZDIyMzY3ZWE3ZjA4YjQxMGEzYiBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogU2ViYXN0aWFuIFNqb2hvbG0gPHNzam9ob2xtQG1hYy5jb20+ CkRhdGU6IE1vbiwgMTEgRGVjIDIwMTcgMjE6NTE6MTQgKzAxMDAKU3ViamVjdDogW1BBVENIIDA2 LzU4XSBuZXQ6IHFtaV93d2FuOiBhZGQgU2llcnJhIEVNNzU2NSAxMTk5OjkwOTEKTUlNRS1WZXJz aW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQt VHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClsgVXBzdHJlYW0gY29tbWl0IGFjZWVmNjFlZTU2ODk4 Y2ZhN2I2OTYwZmI2MGI5MzI2YzM4NjA0NDEgXQoKU2llcnJhIFdpcmVsZXNzIEVNNzU2NSBpcyBh biBRdWFsY29tbSBNRE05eDUwIGJhc2VkIE0uMiBtb2RlbS4KVGhlIFVTQiBpZCBpcyBhZGRlZCB0 byBxbWlfd3dhbi5jIHRvIGFsbG93IFFNSSBjb21tdW5pY2F0aW9uCndpdGggdGhlIEVNNzU2NS4K ClNpZ25lZC1vZmYtYnk6IFNlYmFzdGlhbiBTam9ob2xtIDxzc2pvaG9sbUBtYWMuY29tPgpBY2tl ZC1ieTogQmrDuHJuIE1vcmsgPGJqb3JuQG1vcmsubm8+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMu IE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC91c2IvcW1pX3d3 YW4uYyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvdXNiL3FtaV93d2FuLmMgYi9kcml2ZXJzL25ldC91c2IvcW1pX3d3YW4uYwpp bmRleCA4MTM5NGE0Li4yMDkyZmViIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC91c2IvcW1pX3d3 YW4uYworKysgYi9kcml2ZXJzL25ldC91c2IvcW1pX3d3YW4uYwpAQCAtMTIwNCw2ICsxMjA0LDcg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIHByb2R1Y3RzW10gPSB7CiAJe1FN SV9GSVhFRF9JTlRGKDB4MTE5OSwgMHg5MDc5LCAxMCl9LAkvKiBTaWVycmEgV2lyZWxlc3MgRU03 NHh4ICovCiAJe1FNSV9GSVhFRF9JTlRGKDB4MTE5OSwgMHg5MDdiLCA4KX0sCS8qIFNpZXJyYSBX aXJlbGVzcyBFTTc0eHggKi8KIAl7UU1JX0ZJWEVEX0lOVEYoMHgxMTk5LCAweDkwN2IsIDEwKX0s CS8qIFNpZXJyYSBXaXJlbGVzcyBFTTc0eHggKi8KKwl7UU1JX0ZJWEVEX0lOVEYoMHgxMTk5LCAw eDkwOTEsIDgpfSwJLyogU2llcnJhIFdpcmVsZXNzIEVNNzU2NSAqLwogCXtRTUlfRklYRURfSU5U RigweDFiYmIsIDB4MDExZSwgNCl9LAkvKiBUZWxla29tIFNwZWVkc3RpY2sgTFRFIElJIChBbGNh dGVsIE9uZSBUb3VjaCBMMTAwViBMVEUpICovCiAJe1FNSV9GSVhFRF9JTlRGKDB4MWJiYiwgMHgw MjAzLCAyKX0sCS8qIEFsY2F0ZWwgTDgwME1BICovCiAJe1FNSV9GSVhFRF9JTlRGKDB4MjM1Nywg MHgwMjAxLCA0KX0sCS8qIFRQLUxJTksgSFNVUEEgTW9kZW0gTUExODAgKi8KLS0gCjIuOS41CgoK RnJvbSAyN2EyNzA4MWMzODE5NjNhMjFkMmIyMjg2OWJhMTMzMzllMzNhNTI4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaGFvaHVhIExpIDxzaGxpQGZiLmNvbT4KRGF0ZTogV2VkLCAy MCBEZWMgMjAxNyAxMjoxMDoyMSAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDcvNThdIG5ldDogcmVl dmFsdWxhdGUgYXV0b2Zsb3dsYWJlbCBzZXR0aW5nIGFmdGVyIHN5c2N0bAogc2V0dGluZwoKWyBV cHN0cmVhbSBjb21taXQgNTEzNjc0YjVhMmM5YzdhNjc1MDE1MDY0MTlkYTVjM2M3N2FjNmYwOCBd CgpzeXNjdGwuaXA2LmF1dG9fZmxvd2xhYmVscyBpcyBkZWZhdWx0IDEuIEluIG91ciBob3N0cywg d2Ugc2V0IGl0IHRvIDIuCklmIHNvY2tvcHQgZG9lc24ndCBzZXQgYXV0b2Zsb3dsYWJlbCwgb3V0 Y29tZSBwYWNrZXRzIGZyb20gdGhlIGhvc3RzIGFyZQpzdXBwb3NlZCB0byBub3QgaW5jbHVkZSBm bG93bGFiZWwuIFRoaXMgaXMgdHJ1ZSBmb3Igbm9ybWFsIHBhY2tldCwgYnV0Cm5vdCBmb3IgcmVz ZXQgcGFja2V0LgoKVGhlIHJlYXNvbiBpcyBpcHY2X3BpbmZvLmF1dG9mbG93bGFiZWwgaXMgc2V0 IGluIHNvY2sgY3JlYXRpb24uIExhdGVyIGlmCndlIGNoYW5nZSBzeXNjdGwuaXA2LmF1dG9fZmxv d2xhYmVscywgdGhlIGlwdjZfcGluZm8uYXV0b2Zsb3dsYWJlbCBpc24ndApjaGFuZ2VkLCBzbyB0 aGUgc29jayB3aWxsIGtlZXAgdGhlIG9sZCBiZWhhdmlvciBpbiB0ZXJtcyBvZiBhdXRvCmZsb3ds YWJlbC4gUmVzZXQgcGFja2V0IGlzIHN1ZmZlcmluZyBmcm9tIHRoaXMgcHJvYmxlbSwgYmVjYXVz ZSByZXNldApwYWNrZXQgaXMgc2VudCBmcm9tIGEgc3BlY2lhbCBjb250cm9sIHNvY2tldCwgd2hp Y2ggaXMgY3JlYXRlZCBhdCBib290CnRpbWUuIFNpbmNlIHN5c2N0bC5pcHY2LmF1dG9fZmxvd2xh YmVscyBpcyAxIGJ5IGRlZmF1bHQsIHRoZSBjb250cm9sCnNvY2tldCB3aWxsIGFsd2F5cyBoYXZl IGl0cyBpcHY2X3BpbmZvLmF1dG9mbG93bGFiZWwgc2V0LCBldmVuIGFmdGVyCnVzZXIgc2V0IHN5 c2N0bC5pcHY2LmF1dG9fZmxvd2xhYmVscyB0byAxLCBzbyByZXNldCBwYWNrc2V0IHdpbGwgYWx3 YXlzCmhhdmUgZmxvd2xhYmVsLiBOb3JtYWwgc29jayBjcmVhdGVkIGJlZm9yZSBzeXNjdGwgc2V0 dGluZyBzdWZmZXJzIGZyb20KdGhlIHNhbWUgaXNzdWUuIFdlIGNhbid0IGV2ZW4gdHVybiBvZmYg YXV0b2Zsb3dsYWJlbCB1bmxlc3Mgd2Uga2lsbCBhbGwKc29ja3MgaW4gdGhlIGhvc3RzLgoKVG8g Zml4IHRoaXMsIGlmIElQVjZfQVVUT0ZMT1dMQUJFTCBzb2Nrb3B0IGlzIHVzZWQsIHdlIHVzZSB0 aGUKYXV0b2Zsb3dsYWJlbCBzZXR0aW5nIGZyb20gdXNlciwgb3RoZXJ3aXNlIHdlIGFsd2F5cyBj YWxsCmlwNl9kZWZhdWx0X25wX2F1dG9sYWJlbCgpIHdoaWNoIGhhcyB0aGUgbmV3IHNldHRpbmdz IG9mIHN5c2N0bC4KCk5vdGUsIHRoaXMgY2hhbmdlcyBiZWhhdmlvciBhIGxpdHRsZSBiaXQuIEJl Zm9yZSBjb21taXQgNDIyNDA5MDFmN2M0CihpcHY2OiBJbXBsZW1lbnQgZGlmZmVyZW50IGFkbWlu IG1vZGVzIGZvciBhdXRvbWF0aWMgZmxvdyBsYWJlbHMpLCB0aGUKYXV0b2Zsb3dsYWJlbCBiZWhh dmlvciBvZiBhIHNvY2sgaXNuJ3Qgc3RpY2t5LCBlZywgaWYgc3lzY3RsIGNoYW5nZXMsCmV4aXN0 aW5nIGNvbm5lY3Rpb24gd2lsbCBjaGFuZ2UgYXV0b2Zsb3dsYWJlbCBiZWhhdmlvci4gQWZ0ZXIg dGhhdApjb21taXQsIGF1dG9mbG93bGFiZWwgYmVoYXZpb3IgaXMgc3RpY2t5IGluIHRoZSB3aG9s ZSBsaWZlIG9mIHRoZSBzb2NrLgpXaXRoIHRoaXMgcGF0Y2gsIHRoZSBiZWhhdmlvciBpc24ndCBz dGlja3kgYWdhaW4uCgpDYzogTWFydGluIEthRmFpIExhdSA8a2FmYWlAZmIuY29tPgpDYzogRXJp YyBEdW1hemV0IDxlcmljLmR1bWF6ZXRAZ21haWwuY29tPgpDYzogVG9tIEhlcmJlcnQgPHRvbUBx dWFudG9uaXVtLm5ldD4KU2lnbmVkLW9mZi1ieTogU2hhb2h1YSBMaSA8c2hsaUBmYi5jb20+ClNp Z25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBp bmNsdWRlL2xpbnV4L2lwdjYuaCAgICAgfCAgMyArKy0KIG5ldC9pcHY2L2FmX2luZXQ2LmMgICAg ICB8ICAxIC0KIG5ldC9pcHY2L2lwNl9vdXRwdXQuYyAgICB8IDEyICsrKysrKysrKystLQogbmV0 L2lwdjYvaXB2Nl9zb2NrZ2x1ZS5jIHwgIDEgKwogNCBmaWxlcyBjaGFuZ2VkLCAxMyBpbnNlcnRp b25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvaXB2Ni5o IGIvaW5jbHVkZS9saW51eC9pcHY2LmgKaW5kZXggZWEwNGNhMC4uMDY3YTZmYSAxMDA2NDQKLS0t IGEvaW5jbHVkZS9saW51eC9pcHY2LmgKKysrIGIvaW5jbHVkZS9saW51eC9pcHY2LmgKQEAgLTI3 Miw3ICsyNzIsOCBAQCBzdHJ1Y3QgaXB2Nl9waW5mbyB7CiAJCQkJCQkgKiAxMDA6IHByZWZlciBj YXJlLW9mIGFkZHJlc3MKIAkJCQkJCSAqLwogCQkJCWRvbnRmcmFnOjEsCi0JCQkJYXV0b2Zsb3ds YWJlbDoxOworCQkJCWF1dG9mbG93bGFiZWw6MSwKKwkJCQlhdXRvZmxvd2xhYmVsX3NldDoxOwog CV9fdTgJCQltaW5faG9wY291bnQ7CiAJX191OAkJCXRjbGFzczsKIAlfX2JlMzIJCQlyY3ZfZmxv d2luZm87CmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9hZl9pbmV0Ni5jIGIvbmV0L2lwdjYvYWZfaW5l dDYuYwppbmRleCBmZTUyNjJmLi5iY2JkNWYzIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9hZl9pbmV0 Ni5jCisrKyBiL25ldC9pcHY2L2FmX2luZXQ2LmMKQEAgLTIxMCw3ICsyMTAsNiBAQCBzdGF0aWMg aW50IGluZXQ2X2NyZWF0ZShzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBzb2NrZXQgKnNvY2ssIGlu dCBwcm90b2NvbCwKIAlucC0+bWNhc3RfaG9wcwk9IElQVjZfREVGQVVMVF9NQ0FTVEhPUFM7CiAJ bnAtPm1jX2xvb3AJPSAxOwogCW5wLT5wbXR1ZGlzYwk9IElQVjZfUE1UVURJU0NfV0FOVDsKLQlu cC0+YXV0b2Zsb3dsYWJlbCA9IGlwNl9kZWZhdWx0X25wX2F1dG9sYWJlbChuZXQpOwogCW5wLT5y ZXBmbG93CT0gbmV0LT5pcHY2LnN5c2N0bC5mbG93bGFiZWxfcmVmbGVjdDsKIAlzay0+c2tfaXB2 Nm9ubHkJPSBuZXQtPmlwdjYuc3lzY3RsLmJpbmR2Nm9ubHk7CiAKZGlmZiAtLWdpdCBhL25ldC9p cHY2L2lwNl9vdXRwdXQuYyBiL25ldC9pcHY2L2lwNl9vdXRwdXQuYwppbmRleCA1MTEwYTQxLi5m N2RkNTFjIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9pcDZfb3V0cHV0LmMKKysrIGIvbmV0L2lwdjYv aXA2X291dHB1dC5jCkBAIC0xNjYsNiArMTY2LDE0IEBAIGludCBpcDZfb3V0cHV0KHN0cnVjdCBu ZXQgKm5ldCwgc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCQkJICAgICEo SVA2Q0Ioc2tiKS0+ZmxhZ3MgJiBJUDZTS0JfUkVST1VURUQpKTsKIH0KIAorc3RhdGljIGJvb2wg aXA2X2F1dG9mbG93bGFiZWwoc3RydWN0IG5ldCAqbmV0LCBjb25zdCBzdHJ1Y3QgaXB2Nl9waW5m byAqbnApCit7CisJaWYgKCFucC0+YXV0b2Zsb3dsYWJlbF9zZXQpCisJCXJldHVybiBpcDZfZGVm YXVsdF9ucF9hdXRvbGFiZWwobmV0KTsKKwllbHNlCisJCXJldHVybiBucC0+YXV0b2Zsb3dsYWJl bDsKK30KKwogLyoKICAqIHhtaXQgYW4gc2tfYnVmZiAodXNlZCBieSBUQ1AsIFNDVFAgYW5kIERD Q1ApCiAgKiBOb3RlIDogc29ja2V0IGxvY2sgaXMgbm90IGhlbGQgZm9yIFNZTkFDSyBwYWNrZXRz LCBidXQgbWlnaHQgYmUgbW9kaWZpZWQKQEAgLTIzMCw3ICsyMzgsNyBAQCBpbnQgaXA2X3htaXQo Y29uc3Qgc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZmxvd2k2 ICpmbDYsCiAJCWhsaW1pdCA9IGlwNl9kc3RfaG9wbGltaXQoZHN0KTsKIAogCWlwNl9mbG93X2hk cihoZHIsIHRjbGFzcywgaXA2X21ha2VfZmxvd2xhYmVsKG5ldCwgc2tiLCBmbDYtPmZsb3dsYWJl bCwKLQkJCQkJCSAgICAgbnAtPmF1dG9mbG93bGFiZWwsIGZsNikpOworCQkJCWlwNl9hdXRvZmxv d2xhYmVsKG5ldCwgbnApLCBmbDYpKTsKIAogCWhkci0+cGF5bG9hZF9sZW4gPSBodG9ucyhzZWdf bGVuKTsKIAloZHItPm5leHRoZHIgPSBwcm90bzsKQEAgLTE2MjYsNyArMTYzNCw3IEBAIHN0cnVj dCBza19idWZmICpfX2lwNl9tYWtlX3NrYihzdHJ1Y3Qgc29jayAqc2ssCiAKIAlpcDZfZmxvd19o ZHIoaGRyLCB2Nl9jb3JrLT50Y2xhc3MsCiAJCSAgICAgaXA2X21ha2VfZmxvd2xhYmVsKG5ldCwg c2tiLCBmbDYtPmZsb3dsYWJlbCwKLQkJCQkJbnAtPmF1dG9mbG93bGFiZWwsIGZsNikpOworCQkJ CQlpcDZfYXV0b2Zsb3dsYWJlbChuZXQsIG5wKSwgZmw2KSk7CiAJaGRyLT5ob3BfbGltaXQgPSB2 Nl9jb3JrLT5ob3BfbGltaXQ7CiAJaGRyLT5uZXh0aGRyID0gcHJvdG87CiAJaGRyLT5zYWRkciA9 IGZsNi0+c2FkZHI7CmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9pcHY2X3NvY2tnbHVlLmMgYi9uZXQv aXB2Ni9pcHY2X3NvY2tnbHVlLmMKaW5kZXggYTVlNDY2ZC4uOTBkYmZhNyAxMDA2NDQKLS0tIGEv bmV0L2lwdjYvaXB2Nl9zb2NrZ2x1ZS5jCisrKyBiL25ldC9pcHY2L2lwdjZfc29ja2dsdWUuYwpA QCAtODc4LDYgKzg3OCw3IEBAIHN0YXRpYyBpbnQgZG9faXB2Nl9zZXRzb2Nrb3B0KHN0cnVjdCBz b2NrICpzaywgaW50IGxldmVsLCBpbnQgb3B0bmFtZSwKIAkJYnJlYWs7CiAJY2FzZSBJUFY2X0FV VE9GTE9XTEFCRUw6CiAJCW5wLT5hdXRvZmxvd2xhYmVsID0gdmFsYm9vbDsKKwkJbnAtPmF1dG9m bG93bGFiZWxfc2V0ID0gMTsKIAkJcmV0diA9IDA7CiAJCWJyZWFrOwogCWNhc2UgSVBWNl9SRUNW RlJBR1NJWkU6Ci0tIAoyLjkuNQoKCkZyb20gNTA2ZmU0ODFhOTBiNjJjYjIzNjhlMjM2OGJkZTg1 ZTQ0ZDAxYzIxNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogIk1pY2hhZWwgUy4gVHNp cmtpbiIgPG1zdEByZWRoYXQuY29tPgpEYXRlOiBUdWUsIDUgRGVjIDIwMTcgMjE6Mjk6MzcgKzAy MDAKU3ViamVjdDogW1BBVENIIDA4LzU4XSBwdHJfcmluZzogYWRkIGJhcnJpZXJzCgpbIFVwc3Ry ZWFtIGNvbW1pdCBhOGNlYjVkYmZkZTEwOTJiNDY2OTM2YmNhMGZmM2JlMTI3ZWNmMzhlIF0KClVz ZXJzIG9mIHB0cl9yaW5nIGV4cGVjdCB0aGF0IGl0J3Mgc2FmZSB0byBnaXZlIHRoZQpkYXRhIHN0 cnVjdHVyZSBhIHBvaW50ZXIgYW5kIGhhdmUgaXQgYmUgYXZhaWxhYmxlCnRvIGNvbnN1bWVycywg YnV0IHRoYXQgYWN0dWFsbHkgcmVxdWlyZXMgYW4gc21iX3dtYgpvciBhIHN0cm9uZ2VyIGJhcnJp ZXIuCgpJbiBhYnNlbmNlIG9mIHN1Y2ggYmFycmllcnMgYW5kIG9uIGFyY2hpdGVjdHVyZXMgdGhh dCByZW9yZGVyIHdyaXRlcywKY29uc3VtZXIgbWlnaHQgcmVhZCBhbiB1bj1pbml0aWFsaXplZCB2 YWx1ZSBmcm9tIGFuIHNrYiBwb2ludGVyIHN0b3JlZAppbiB0aGUgc2tiIGFycmF5LiAgVGhpcyB3 YXMgb2JzZXJ2ZWQgY2F1c2luZyBjcmFzaGVzLgoKVG8gZml4LCBhZGQgbWVtb3J5IGJhcnJpZXJz LiAgVGhlIGJhcnJpZXIgd2UgdXNlIGlzIGEgd21iLCB0aGUKYXNzdW1wdGlvbiBiZWluZyB0aGF0 IHByb2R1Y2VycyBkbyBub3QgbmVlZCB0byByZWFkIHRoZSB2YWx1ZSBzbyB3ZSBkbwpub3QgbmVl ZCB0byBvcmRlciB0aGVzZSByZWFkcy4KClJlcG9ydGVkLWJ5OiBHZW9yZ2UgQ2hlcmlhbiA8Z2Vv cmdlLmNoZXJpYW5AY2F2aXVtLmNvbT4KU3VnZ2VzdGVkLWJ5OiBKYXNvbiBXYW5nIDxqYXNvd2Fu Z0ByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIFMuIFRzaXJraW4gPG1zdEByZWRo YXQuY29tPgpBY2tlZC1ieTogSmFzb24gV2FuZyA8amFzb3dhbmdAcmVkaGF0LmNvbT4KU2lnbmVk LW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGluY2x1 ZGUvbGludXgvcHRyX3JpbmcuaCB8IDkgKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgOSBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9wdHJfcmluZy5oIGIvaW5jbHVk ZS9saW51eC9wdHJfcmluZy5oCmluZGV4IDM3YjRiYjIuLjY4NjZkZjQgMTAwNjQ0Ci0tLSBhL2lu Y2x1ZGUvbGludXgvcHRyX3JpbmcuaAorKysgYi9pbmNsdWRlL2xpbnV4L3B0cl9yaW5nLmgKQEAg LTEwMSwxMiArMTAxLDE4IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBwdHJfcmluZ19mdWxsX2JoKHN0 cnVjdCBwdHJfcmluZyAqcikKIAogLyogTm90ZTogY2FsbGVycyBpbnZva2luZyB0aGlzIGluIGEg bG9vcCBtdXN0IHVzZSBhIGNvbXBpbGVyIGJhcnJpZXIsCiAgKiBmb3IgZXhhbXBsZSBjcHVfcmVs YXgoKS4gQ2FsbGVycyBtdXN0IGhvbGQgcHJvZHVjZXJfbG9jay4KKyAqIENhbGxlcnMgYXJlIHJl c3BvbnNpYmxlIGZvciBtYWtpbmcgc3VyZSBwb2ludGVyIHRoYXQgaXMgYmVpbmcgcXVldWVkCisg KiBwb2ludHMgdG8gYSB2YWxpZCBkYXRhLgogICovCiBzdGF0aWMgaW5saW5lIGludCBfX3B0cl9y aW5nX3Byb2R1Y2Uoc3RydWN0IHB0cl9yaW5nICpyLCB2b2lkICpwdHIpCiB7CiAJaWYgKHVubGlr ZWx5KCFyLT5zaXplKSB8fCByLT5xdWV1ZVtyLT5wcm9kdWNlcl0pCiAJCXJldHVybiAtRU5PU1BD OwogCisJLyogTWFrZSBzdXJlIHRoZSBwb2ludGVyIHdlIGFyZSBzdG9yaW5nIHBvaW50cyB0byBh IHZhbGlkIGRhdGEuICovCisJLyogUGFpcnMgd2l0aCBzbXBfcmVhZF9iYXJyaWVyX2RlcGVuZHMg aW4gX19wdHJfcmluZ19jb25zdW1lLiAqLworCXNtcF93bWIoKTsKKwogCXItPnF1ZXVlW3ItPnBy b2R1Y2VyKytdID0gcHRyOwogCWlmICh1bmxpa2VseShyLT5wcm9kdWNlciA+PSByLT5zaXplKSkK IAkJci0+cHJvZHVjZXIgPSAwOwpAQCAtMjc1LDYgKzI4MSw5IEBAIHN0YXRpYyBpbmxpbmUgdm9p ZCAqX19wdHJfcmluZ19jb25zdW1lKHN0cnVjdCBwdHJfcmluZyAqcikKIAlpZiAocHRyKQogCQlf X3B0cl9yaW5nX2Rpc2NhcmRfb25lKHIpOwogCisJLyogTWFrZSBzdXJlIGFueW9uZSBhY2Nlc3Np bmcgZGF0YSB0aHJvdWdoIHRoZSBwb2ludGVyIGlzIHVwIHRvIGRhdGUuICovCisJLyogUGFpcnMg d2l0aCBzbXBfd21iIGluIF9fcHRyX3JpbmdfcHJvZHVjZS4gKi8KKwlzbXBfcmVhZF9iYXJyaWVy X2RlcGVuZHMoKTsKIAlyZXR1cm4gcHRyOwogfQogCi0tIAoyLjkuNQoKCkZyb20gZGU5M2UzMjIy OGU4NDdiYjZjNDUwNWM3M2JhYzE5MGRjMTExOTY3NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogQXZpbmFzaCBSZXBha2EgPGF2aW5hc2gucmVwYWthQG9yYWNsZS5jb20+CkRhdGU6IFRo dSwgMjEgRGVjIDIwMTcgMjA6MTc6MDQgLTA4MDAKU3ViamVjdDogW1BBVENIIDA5LzU4XSBSRFM6 IENoZWNrIGNtc2dfbGVuIGJlZm9yZSBkZXJlZmVyZW5jaW5nIENNU0dfREFUQQoKWyBVcHN0cmVh bSBjb21taXQgMTRlMTM4YTg2ZjYzNDdjNjE5OWY2MTA1NzZkMmUxMWMwM2JlYzVmMCBdCgpSRFMg Y3VycmVudGx5IGRvZXNuJ3QgY2hlY2sgaWYgdGhlIGxlbmd0aCBvZiB0aGUgY29udHJvbCBtZXNz YWdlIGlzCmxhcmdlIGVub3VnaCB0byBob2xkIHRoZSByZXF1aXJlZCBkYXRhLCBiZWZvcmUgZGVy ZWZlcmVuY2luZyB0aGUgY29udHJvbAptZXNzYWdlIGRhdGEuIFRoaXMgcmVzdWx0cyBpbiBmb2xs b3dpbmcgY3Jhc2g6CgpCVUc6IEtBU0FOOiBzdGFjay1vdXQtb2YtYm91bmRzIGluIHJkc19yZG1h X2J5dGVzIG5ldC9yZHMvc2VuZC5jOjEwMTMKW2lubGluZV0KQlVHOiBLQVNBTjogc3RhY2stb3V0 LW9mLWJvdW5kcyBpbiByZHNfc2VuZG1zZysweDFmMDIvMHgxZjkwCm5ldC9yZHMvc2VuZC5jOjEw NjYKUmVhZCBvZiBzaXplIDggYXQgYWRkciBmZmZmODgwMWM5MjhmYjcwIGJ5IHRhc2sgc3l6a2Fs bGVyNDU1MDA2LzMxNTcKCkNQVTogMCBQSUQ6IDMxNTcgQ29tbTogc3l6a2FsbGVyNDU1MDA2IE5v dCB0YWludGVkIDQuMTUuMC1yYzMrICMxNjEKSGFyZHdhcmUgbmFtZTogR29vZ2xlIEdvb2dsZSBD b21wdXRlIEVuZ2luZS9Hb29nbGUgQ29tcHV0ZSBFbmdpbmUsIEJJT1MKR29vZ2xlIDAxLzAxLzIw MTEKQ2FsbCBUcmFjZToKIF9fZHVtcF9zdGFjayBsaWIvZHVtcF9zdGFjay5jOjE3IFtpbmxpbmVd CiBkdW1wX3N0YWNrKzB4MTk0LzB4MjU3IGxpYi9kdW1wX3N0YWNrLmM6NTMKIHByaW50X2FkZHJl c3NfZGVzY3JpcHRpb24rMHg3My8weDI1MCBtbS9rYXNhbi9yZXBvcnQuYzoyNTIKIGthc2FuX3Jl cG9ydF9lcnJvciBtbS9rYXNhbi9yZXBvcnQuYzozNTEgW2lubGluZV0KIGthc2FuX3JlcG9ydCsw eDI1Yi8weDM0MCBtbS9rYXNhbi9yZXBvcnQuYzo0MDkKIF9fYXNhbl9yZXBvcnRfbG9hZDhfbm9h Ym9ydCsweDE0LzB4MjAgbW0va2FzYW4vcmVwb3J0LmM6NDMwCiByZHNfcmRtYV9ieXRlcyBuZXQv cmRzL3NlbmQuYzoxMDEzIFtpbmxpbmVdCiByZHNfc2VuZG1zZysweDFmMDIvMHgxZjkwIG5ldC9y ZHMvc2VuZC5jOjEwNjYKIHNvY2tfc2VuZG1zZ19ub3NlYyBuZXQvc29ja2V0LmM6NjI4IFtpbmxp bmVdCiBzb2NrX3NlbmRtc2crMHhjYS8weDExMCBuZXQvc29ja2V0LmM6NjM4CiBfX19zeXNfc2Vu ZG1zZysweDMyMC8weDhiMCBuZXQvc29ja2V0LmM6MjAxOAogX19zeXNfc2VuZG1tc2crMHgxZWUv MHg2MjAgbmV0L3NvY2tldC5jOjIxMDgKIFNZU0Nfc2VuZG1tc2cgbmV0L3NvY2tldC5jOjIxMzkg W2lubGluZV0KIFN5U19zZW5kbW1zZysweDM1LzB4NjAgbmV0L3NvY2tldC5jOjIxMzQKIGVudHJ5 X1NZU0NBTExfNjRfZmFzdHBhdGgrMHgxZi8weDk2ClJJUDogMDAzMzoweDQzZmU0OQpSU1A6IDAw MmI6MDAwMDdmZmZiZTI0NGFkOCBFRkxBR1M6IDAwMDAwMjE3IE9SSUdfUkFYOiAwMDAwMDAwMDAw MDAwMTMzClJBWDogZmZmZmZmZmZmZmZmZmZkYSBSQlg6IDAwMDAwMDAwMDA0MDAyYzggUkNYOiAw MDAwMDAwMDAwNDNmZTQ5ClJEWDogMDAwMDAwMDAwMDAwMDAwMSBSU0k6IDAwMDAwMDAwMjAyMGMw MDAgUkRJOiAwMDAwMDAwMDAwMDAwMDAzClJCUDogMDAwMDAwMDAwMDZjYTAxOCBSMDg6IDAwMDAw MDAwMDAwMDAwMDAgUjA5OiAwMDAwMDAwMDAwMDAwMDAwClIxMDogMDAwMDAwMDAwMDAwMDAwMCBS MTE6IDAwMDAwMDAwMDAwMDAyMTcgUjEyOiAwMDAwMDAwMDAwNDAxN2IwClIxMzogMDAwMDAwMDAw MDQwMTg0MCBSMTQ6IDAwMDAwMDAwMDAwMDAwMDAgUjE1OiAwMDAwMDAwMDAwMDAwMDAwCgpUbyBm aXggdGhpcywgd2UgdmVyaWZ5IHRoYXQgdGhlIGNtc2dfbGVuIGlzIGxhcmdlIGVub3VnaCB0byBo b2xkIHRoZQpkYXRhIHRvIGJlIHJlYWQsIGJlZm9yZSBwcm9jZWVkaW5nIGZ1cnRoZXIuCgpSZXBv cnRlZC1ieTogc3l6Ym90IDxzeXprYWxsZXItYnVnc0Bnb29nbGVncm91cHMuY29tPgpTaWduZWQt b2ZmLWJ5OiBBdmluYXNoIFJlcGFrYSA8YXZpbmFzaC5yZXBha2FAb3JhY2xlLmNvbT4KQWNrZWQt Ynk6IFNhbnRvc2ggU2hpbGlta2FyIDxzYW50b3NoLnNoaWxpbWthckBvcmFjbGUuY29tPgpSZXZp ZXdlZC1ieTogWXV2YWwgU2hhaWEgPHl1dmFsLnNoYWlhQG9yYWNsZS5jb20+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvcmRzL3Nl bmQuYyB8IDMgKysrCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0 IGEvbmV0L3Jkcy9zZW5kLmMgYi9uZXQvcmRzL3NlbmQuYwppbmRleCBiNTJjZGM4Li5mNzI0NjZj IDEwMDY0NAotLS0gYS9uZXQvcmRzL3NlbmQuYworKysgYi9uZXQvcmRzL3NlbmQuYwpAQCAtMTAw OSw2ICsxMDA5LDkgQEAgc3RhdGljIGludCByZHNfcmRtYV9ieXRlcyhzdHJ1Y3QgbXNnaGRyICpt c2csIHNpemVfdCAqcmRtYV9ieXRlcykKIAkJCWNvbnRpbnVlOwogCiAJCWlmIChjbXNnLT5jbXNn X3R5cGUgPT0gUkRTX0NNU0dfUkRNQV9BUkdTKSB7CisJCQlpZiAoY21zZy0+Y21zZ19sZW4gPAor CQkJICAgIENNU0dfTEVOKHNpemVvZihzdHJ1Y3QgcmRzX3JkbWFfYXJncykpKQorCQkJCXJldHVy biAtRUlOVkFMOwogCQkJYXJncyA9IENNU0dfREFUQShjbXNnKTsKIAkJCSpyZG1hX2J5dGVzICs9 IGFyZ3MtPnJlbW90ZV92ZWMuYnl0ZXM7CiAJCX0KLS0gCjIuOS41CgoKRnJvbSA0ZWM4ZDE1MWE1 ZGExMzJjZWEwMjNkOGMwYWY1MjNkZTcyMGUxMTQxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBOZWFsIENhcmR3ZWxsIDxuY2FyZHdlbGxAZ29vZ2xlLmNvbT4KRGF0ZTogVGh1LCA3IERl YyAyMDE3IDEyOjQzOjMwIC0wNTAwClN1YmplY3Q6IFtQQVRDSCAxMC81OF0gdGNwX2JicjogcmVj b3JkICJmdWxsIGJ3IHJlYWNoZWQiIGRlY2lzaW9uIGluIG5ldwogZnVsbF9id19yZWFjaGVkIGJp dAoKWyBVcHN0cmVhbSBjb21taXQgYzU4OWU2OWI1MDhkMjllZDhlNjQ0ZGZlY2RhNDUzZjcxYzAy ZWMyNyBdCgpUaGlzIGNvbW1pdCByZWNvcmRzIHRoZSAiZnVsbCBidyByZWFjaGVkIiBkZWNpc2lv biBpbiBhIG5ldwpmdWxsX2J3X3JlYWNoZWQgYml0LiBUaGlzIGlzIGEgcHVyZSByZWZhY3RvciB0 aGF0IGRvZXMgbm90IGNoYW5nZSB0aGUKY3VycmVudCBiZWhhdmlvciwgYnV0IGVuYWJsZXMgc3Vi c2VxdWVudCBmaXhlcyBhbmQgaW1wcm92ZW1lbnRzLgoKSW4gcGFydGljdWxhciwgdGhpcyBlbmFi bGVzIHNpbXBsZSBhbmQgY2xlYW4gZml4ZXMgYmVjYXVzZSB0aGUgZnVsbF9idwphbmQgZnVsbF9i d19jbnQgY2FuIGJlIHVuY29uZGl0aW9uYWxseSB6ZXJvZWQgd2l0aG91dCB3b3JyeWluZyBhYm91 dApmb3JnZXR0aW5nIHRoYXQgd2UgZXN0aW1hdGVkIHdlIGZpbGxlZCB0aGUgcGlwZSBpbiBTdGFy dHVwLiBBbmQgaXQKZW5hYmxlcyBmdXR1cmUgaW1wcm92ZW1lbnRzIGJlY2F1c2UgbXVsdGlwbGUg Y29kZSBwYXRocyBjYW4gYmUgdXNlZApmb3IgZXN0aW1hdGluZyB0aGF0IHdlIGZpbGxlZCB0aGUg cGlwZSBpbiBTdGFydHVwOyBhbnkgbmV3IGNvZGUgcGF0aHMKb25seSBuZWVkIHRvIHNldCB0aGlz IGJpdCB3aGVuIHRoZXkgdGhpbmsgdGhlIHBpcGUgaXMgZnVsbC4KCk5vdGUgdGhhdCB0aGlzIGZp eCBpbnRlbnRpb25hbGx5IHJlZHVjZXMgdGhlIHdpZHRoIG9mIHRoZSBmdWxsX2J3X2NudApjb3Vu dGVyLCBzaW5jZSB3ZSBoYXZlIG5ldmVyIHVzZWQgdGhlIG1vc3Qgc2lnbmlmaWNhbnQgYml0LgoK U2lnbmVkLW9mZi1ieTogTmVhbCBDYXJkd2VsbCA8bmNhcmR3ZWxsQGdvb2dsZS5jb20+ClJldmll d2VkLWJ5OiBZdWNodW5nIENoZW5nIDx5Y2hlbmdAZ29vZ2xlLmNvbT4KQWNrZWQtYnk6IFNvaGVp bCBIYXNzYXMgWWVnYW5laCA8c29oZWlsQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC90Y3BfYmJyLmMg fCA3ICsrKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwX2Jici5jIGIvbmV0L2lwdjQvdGNwX2Jici5j CmluZGV4IDY5ZWU4NzcuLjMwODljOTUgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3RjcF9iYnIuYwor KysgYi9uZXQvaXB2NC90Y3BfYmJyLmMKQEAgLTExMCw3ICsxMTAsOCBAQCBzdHJ1Y3QgYmJyIHsK IAl1MzIJbHRfbGFzdF9sb3N0OwkgICAgIC8qIExUIGludHZsIHN0YXJ0OiB0cC0+bG9zdCAqLwog CXUzMglwYWNpbmdfZ2FpbjoxMCwJLyogY3VycmVudCBnYWluIGZvciBzZXR0aW5nIHBhY2luZyBy YXRlICovCiAJCWN3bmRfZ2FpbjoxMCwJLyogY3VycmVudCBnYWluIGZvciBzZXR0aW5nIGN3bmQg Ki8KLQkJZnVsbF9id19jbnQ6MywJLyogbnVtYmVyIG9mIHJvdW5kcyB3aXRob3V0IGxhcmdlIGJ3 IGdhaW5zICovCisJCWZ1bGxfYndfcmVhY2hlZDoxLCAgIC8qIHJlYWNoZWQgZnVsbCBidyBpbiBT dGFydHVwPyAqLworCQlmdWxsX2J3X2NudDoyLAkvKiBudW1iZXIgb2Ygcm91bmRzIHdpdGhvdXQg bGFyZ2UgYncgZ2FpbnMgKi8KIAkJY3ljbGVfaWR4OjMsCS8qIGN1cnJlbnQgaW5kZXggaW4gcGFj aW5nX2dhaW4gY3ljbGUgYXJyYXkgKi8KIAkJaGFzX3NlZW5fcnR0OjEsIC8qIGhhdmUgd2Ugc2Vl biBhbiBSVFQgc2FtcGxlIHlldD8gKi8KIAkJdW51c2VkX2I6NTsKQEAgLTE4MCw3ICsxODEsNyBA QCBzdGF0aWMgYm9vbCBiYnJfZnVsbF9id19yZWFjaGVkKGNvbnN0IHN0cnVjdCBzb2NrICpzaykK IHsKIAljb25zdCBzdHJ1Y3QgYmJyICpiYnIgPSBpbmV0X2Nza19jYShzayk7CiAKLQlyZXR1cm4g YmJyLT5mdWxsX2J3X2NudCA+PSBiYnJfZnVsbF9id19jbnQ7CisJcmV0dXJuIGJici0+ZnVsbF9i d19yZWFjaGVkOwogfQogCiAvKiBSZXR1cm4gdGhlIHdpbmRvd2VkIG1heCByZWNlbnQgYmFuZHdp ZHRoIHNhbXBsZSwgaW4gcGt0cy91UyA8PCBCV19TQ0FMRS4gKi8KQEAgLTcxNyw2ICs3MTgsNyBA QCBzdGF0aWMgdm9pZCBiYnJfY2hlY2tfZnVsbF9id19yZWFjaGVkKHN0cnVjdCBzb2NrICpzaywK IAkJcmV0dXJuOwogCX0KIAkrK2Jici0+ZnVsbF9id19jbnQ7CisJYmJyLT5mdWxsX2J3X3JlYWNo ZWQgPSBiYnItPmZ1bGxfYndfY250ID49IGJicl9mdWxsX2J3X2NudDsKIH0KIAogLyogSWYgcGlw ZSBpcyBwcm9iYWJseSBmdWxsLCBkcmFpbiB0aGUgcXVldWUgYW5kIHRoZW4gZW50ZXIgc3RlYWR5 LXN0YXRlLiAqLwpAQCAtODUwLDYgKzg1Miw3IEBAIHN0YXRpYyB2b2lkIGJicl9pbml0KHN0cnVj dCBzb2NrICpzaykKIAliYnItPnJlc3RvcmVfY3duZCA9IDA7CiAJYmJyLT5yb3VuZF9zdGFydCA9 IDA7CiAJYmJyLT5pZGxlX3Jlc3RhcnQgPSAwOworCWJici0+ZnVsbF9id19yZWFjaGVkID0gMDsK IAliYnItPmZ1bGxfYncgPSAwOwogCWJici0+ZnVsbF9id19jbnQgPSAwOwogCWJici0+Y3ljbGVf bXN0YW1wID0gMDsKLS0gCjIuOS41CgoKRnJvbSA5ZGQ2YmY4MzdhZTMyMjRhNDk0N2YwOWZjYjk4 ZjE5NzFjMzg3OTUyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDaHJpc3RvcGggUGFh c2NoIDxjcGFhc2NoQGFwcGxlLmNvbT4KRGF0ZTogTW9uLCAxMSBEZWMgMjAxNyAwMDowNTo0NiAt MDgwMApTdWJqZWN0OiBbUEFUQ0ggMTEvNThdIHRjcCBtZDVzaWc6IFVzZSBza2IncyBzYWRkciB3 aGVuIHJlcGx5aW5nIHRvIGFuCiBpbmNvbWluZyBzZWdtZW50CgpbIFVwc3RyZWFtIGNvbW1pdCAz MDc5MWFjNDE5MjdlYmQzZTc1NDg2Zjk1MDRiNmQyMjgwNDYzYmYwIF0KClRoZSBNRDUta2V5IHRo YXQgYmVsb25ncyB0byBhIGNvbm5lY3Rpb24gaXMgaWRlbnRpZmllZCBieSB0aGUgcGVlcidzCklQ LWFkZHJlc3MuIFdoZW4gd2UgYXJlIGluIHRjcF92NCg2KV9yZXFza19zZW5kX2FjaygpLCB3ZSBh cmUgcmVwbHlpbmcKdG8gYW4gaW5jb21pbmcgc2VnbWVudCBmcm9tIHRjcF9jaGVja19yZXEoKSB0 aGF0IGZhaWxlZCB0aGUgc2VxLW51bWJlcgpjaGVja3MuCgpUaHVzLCB0byBmaW5kIHRoZSBjb3Jy ZWN0IGtleSwgd2UgbmVlZCB0byB1c2UgdGhlIHNrYidzIHNhZGRyIGFuZCBub3QKdGhlIGRhZGRy LgoKVGhpcyBidWcgc2VlbXMgdG8gaGF2ZSBiZWVuIHRoZXJlIHNpbmNlIHF1aXRlIGEgd2hpbGUs IGJ1dCBwcm9iYWJseSBnb3QKdW5ub3RpY2VkIGJlY2F1c2UgdGhlIGNvbnNlcXVlbmNlcyBhcmUg bm90IGNhdGFzdHJvcGhpYy4gV2Ugd2lsbCBjYWxsCnRjcF92NF9yZXFza19zZW5kX2FjayBvbmx5 IHRvIHNlbmQgYSBjaGFsbGVuZ2UtQUNLIGJhY2sgdG8gdGhlIHBlZXIsCnRodXMgdGhlIGNvbm5l Y3Rpb24gZG9lc24ndCByZWFsbHkgZmFpbC4KCkZpeGVzOiA5NTAxZjk3MjI5MjIgKCJ0Y3AgbWQ1 c2lnOiBMZXQgdGhlIGNhbGxlciBwYXNzIGFwcHJvcHJpYXRlIGtleSBmb3IgdGNwX3Z7NCw2fV9k b19jYWxjX21kNV9oYXNoKCkuIikKU2lnbmVkLW9mZi1ieTogQ2hyaXN0b3BoIFBhYXNjaCA8Y3Bh YXNjaEBhcHBsZS5jb20+ClJldmlld2VkLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2ds ZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBuZXQvaXB2NC90Y3BfaXB2NC5jIHwgMiArLQogbmV0L2lwdjYvdGNwX2lwdjYuYyB8 IDIgKy0KIDIgZmlsZXMgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL25ldC9pcHY0L3RjcF9pcHY0LmMgYi9uZXQvaXB2NC90Y3BfaXB2NC5jCmlu ZGV4IDVhNWVkNGYuLmNhYjRiOTMgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3RjcF9pcHY0LmMKKysr IGIvbmV0L2lwdjQvdGNwX2lwdjQuYwpAQCAtODQ0LDcgKzg0NCw3IEBAIHN0YXRpYyB2b2lkIHRj cF92NF9yZXFza19zZW5kX2Fjayhjb25zdCBzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZm ICpza2IsCiAJCQl0Y3BfdGltZV9zdGFtcF9yYXcoKSArIHRjcF9yc2socmVxKS0+dHNfb2ZmLAog CQkJcmVxLT50c19yZWNlbnQsCiAJCQkwLAotCQkJdGNwX21kNV9kb19sb29rdXAoc2ssICh1bmlv biB0Y3BfbWQ1X2FkZHIgKikmaXBfaGRyKHNrYiktPmRhZGRyLAorCQkJdGNwX21kNV9kb19sb29r dXAoc2ssICh1bmlvbiB0Y3BfbWQ1X2FkZHIgKikmaXBfaGRyKHNrYiktPnNhZGRyLAogCQkJCQkg IEFGX0lORVQpLAogCQkJaW5ldF9yc2socmVxKS0+bm9fc3JjY2hlY2sgPyBJUF9SRVBMWV9BUkdf Tk9TUkNDSEVDSyA6IDAsCiAJCQlpcF9oZHIoc2tiKS0+dG9zKTsKZGlmZiAtLWdpdCBhL25ldC9p cHY2L3RjcF9pcHY2LmMgYi9uZXQvaXB2Ni90Y3BfaXB2Ni5jCmluZGV4IDMyZGVkMzAuLjIzN2Nj NjEgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L3RjcF9pcHY2LmMKKysrIGIvbmV0L2lwdjYvdGNwX2lw djYuYwpAQCAtOTg4LDcgKzk4OCw3IEBAIHN0YXRpYyB2b2lkIHRjcF92Nl9yZXFza19zZW5kX2Fj ayhjb25zdCBzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IsCiAJCQlyZXEtPnJz a19yY3Zfd25kID4+IGluZXRfcnNrKHJlcSktPnJjdl93c2NhbGUsCiAJCQl0Y3BfdGltZV9zdGFt cF9yYXcoKSArIHRjcF9yc2socmVxKS0+dHNfb2ZmLAogCQkJcmVxLT50c19yZWNlbnQsIHNrLT5z a19ib3VuZF9kZXZfaWYsCi0JCQl0Y3BfdjZfbWQ1X2RvX2xvb2t1cChzaywgJmlwdjZfaGRyKHNr YiktPmRhZGRyKSwKKwkJCXRjcF92Nl9tZDVfZG9fbG9va3VwKHNrLCAmaXB2Nl9oZHIoc2tiKS0+ c2FkZHIpLAogCQkJMCwgMCk7CiB9CiAKLS0gCjIuOS41CgoKRnJvbSBiNTVjYjQwNWMwYmMyOWUz MDcyZWY2NDM4YjNkZDg1Yzc0NThkZTFjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBC cmlhbiBLaW5nIDxicmtpbmdAbGludXgudm5ldC5pYm0uY29tPgpEYXRlOiBGcmksIDE1IERlYyAy MDE3IDE1OjIxOjUwIC0wNjAwClN1YmplY3Q6IFtQQVRDSCAxMi81OF0gdGczOiBGaXggcnggaGFu ZyBvbiBNVFUgY2hhbmdlIHdpdGggNTcxNy81NzE5CgpbIFVwc3RyZWFtIGNvbW1pdCA3NDhhMjQw YzU4OTgyNGU5MTIxYmVmYjFjYmE1MzQxYzMxOTg4NWJjIF0KClRoaXMgZml4ZXMgYSBoYW5nIGlz c3VlIHNlZW4gd2hlbiBjaGFuZ2luZyB0aGUgTVRVIHNpemUgZnJvbSAxNTAwIE1UVQp0byA5MDAw IE1UVSBvbiBib3RoIDU3MTcgYW5kIDU3MTkgY2hpcHMuIEluIGRpc2N1c3Npb24gd2l0aCBCcm9h ZGNvbSwKdGhleSd2ZSBpbmRpY2F0ZWQgdGhhdCB0aGVzZSBjaGlwc2V0cyBoYXZlIHRoZSBzYW1l IHBoeSBhcyB0aGUgNTc3NjYKY2hpcHNldCwgc28gdGhlIHNhbWUgd29ya2Fyb3VuZHMgYXBwbHku IFRoaXMgaGFzIGJlZW4gdGVzdGVkIGJ5IElCTQpvbiBib3RoIFBvd2VyIDggYW5kIFBvd2VyIDkg c3lzdGVtcyBhcyB3ZWxsIGFzIGJ5IEJyb2FkY29tIG9uIHg4NgpoYXJkd2FyZSBhbmQgaGFzIGJl ZW4gY29uZmlybWVkIHRvIHJlc29sdmUgdGhlIGhhbmcgaXNzdWUuCgpTaWduZWQtb2ZmLWJ5OiBC cmlhbiBLaW5nIDxicmtpbmdAbGludXgudm5ldC5pYm0uY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJu ZXQvYnJvYWRjb20vdGczLmMgfCA0ICsrKy0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMo KyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9h ZGNvbS90ZzMuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL3RnMy5jCmluZGV4IDY1 NmU2YWYuLmFlZjNmY2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29t L3RnMy5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL3RnMy5jCkBAIC0xNDIy Nyw3ICsxNDIyNyw5IEBAIHN0YXRpYyBpbnQgdGczX2NoYW5nZV9tdHUoc3RydWN0IG5ldF9kZXZp Y2UgKmRldiwgaW50IG5ld19tdHUpCiAJLyogUmVzZXQgUEhZLCBvdGhlcndpc2UgdGhlIHJlYWQg RE1BIGVuZ2luZSB3aWxsIGJlIGluIGEgbW9kZSB0aGF0CiAJICogYnJlYWtzIGFsbCByZXF1ZXN0 cyB0byAyNTYgYnl0ZXMuCiAJICovCi0JaWYgKHRnM19hc2ljX3Jldih0cCkgPT0gQVNJQ19SRVZf NTc3NjYpCisJaWYgKHRnM19hc2ljX3Jldih0cCkgPT0gQVNJQ19SRVZfNTc3NjYgfHwKKwkgICAg dGczX2FzaWNfcmV2KHRwKSA9PSBBU0lDX1JFVl81NzE3IHx8CisJICAgIHRnM19hc2ljX3Jldih0 cCkgPT0gQVNJQ19SRVZfNTcxOSkKIAkJcmVzZXRfcGh5ID0gdHJ1ZTsKIAogCWVyciA9IHRnM19y ZXN0YXJ0X2h3KHRwLCByZXNldF9waHkpOwotLSAKMi45LjUKCgpGcm9tIGExMzNiNjZjZTI5NTA5 MDQ4YzI0ODMyMWE1YmFkYjcwYWM1NDIwN2IgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IE5lYWwgQ2FyZHdlbGwgPG5jYXJkd2VsbEBnb29nbGUuY29tPgpEYXRlOiBUaHUsIDcgRGVjIDIw MTcgMTI6NDM6MzEgLTA1MDAKU3ViamVjdDogW1BBVENIIDEzLzU4XSB0Y3BfYmJyOiByZXNldCBm dWxsIHBpcGUgZGV0ZWN0aW9uIG9uIGxvc3MgcmVjb3ZlcnkKIHVuZG8KClsgVXBzdHJlYW0gY29t bWl0IDJmNmM0OThlNGYxNWQyNzg1MmMwNGVkNDZkODA0YTM5MTM3YmEzNjQgXQoKRml4IEJCUiBz byB0aGF0IHVwb24gbm90aWZpY2F0aW9uIG9mIGEgbG9zcyByZWNvdmVyeSB1bmRvIEJCUiByZXNl dHMKdGhlIGZ1bGwgcGlwZSBkZXRlY3Rpb24gKFNUQVJUVVAgZXhpdCkgc3RhdGUgbWFjaGluZS4K ClVuZGVyIGhpZ2ggcmVvcmRlcmluZywgcmVvcmRlcmluZyBldmVudHMgY2FuIGJlIGludGVycHJl dGVkIGFzIGxvc3MuCklmIHRoZSByZW9yZGVyaW5nIGFuZCBzcHVyaW91cyBsb3NzIGVzdGltYXRl cyBhcmUgaGlnaCBlbm91Z2gsIHRoaXMKY291bGQgcHJldmlvdXNseSBjYXVzZSBCQlIgdG8gc3B1 cmlvdXNseSBlc3RpbWF0ZSB0aGF0IHRoZSBwaXBlIGlzCmZ1bGwuCgpTaW5jZSBzcHVyaW91cyBs b3NzIHJlY292ZXJ5IG1lYW5zIHRoYXQgb3VyIG92ZXJhbGwgc2VuZGluZyB3aWxsIGhhdmUKc2xv d2VkIGRvd24gc3B1cmlvdXNseSwgdGhpcyBjb21taXQgZ2l2ZXMgYSBmbG93IG1vcmUgdGltZSB0 byBwcm9iZQpyb2J1c3RseSBmb3IgYmFuZHdpZHRoIGFuZCBkZWNpZGUgdGhlIHBpcGUgaXMgcmVh bGx5IGZ1bGwuCgpTaWduZWQtb2ZmLWJ5OiBOZWFsIENhcmR3ZWxsIDxuY2FyZHdlbGxAZ29vZ2xl LmNvbT4KUmV2aWV3ZWQtYnk6IFl1Y2h1bmcgQ2hlbmcgPHljaGVuZ0Bnb29nbGUuY29tPgpBY2tl ZC1ieTogU29oZWlsIEhhc3NhcyBZZWdhbmVoIDxzb2hlaWxAZ29vZ2xlLmNvbT4KU2lnbmVkLW9m Zi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0 L3RjcF9iYnIuYyB8IDQgKysrKwogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKQoKZGlm ZiAtLWdpdCBhL25ldC9pcHY0L3RjcF9iYnIuYyBiL25ldC9pcHY0L3RjcF9iYnIuYwppbmRleCAz MDg5Yzk1Li5hYjNmZjE0IDEwMDY0NAotLS0gYS9uZXQvaXB2NC90Y3BfYmJyLmMKKysrIGIvbmV0 L2lwdjQvdGNwX2Jici5jCkBAIC04NzQsNiArODc0LDEwIEBAIHN0YXRpYyB1MzIgYmJyX3NuZGJ1 Zl9leHBhbmQoc3RydWN0IHNvY2sgKnNrKQogICovCiBzdGF0aWMgdTMyIGJicl91bmRvX2N3bmQo c3RydWN0IHNvY2sgKnNrKQogeworCXN0cnVjdCBiYnIgKmJiciA9IGluZXRfY3NrX2NhKHNrKTsK KworCWJici0+ZnVsbF9idyA9IDA7ICAgLyogc3B1cmlvdXMgc2xvdy1kb3duOyByZXNldCBmdWxs IHBpcGUgZGV0ZWN0aW9uICovCisJYmJyLT5mdWxsX2J3X2NudCA9IDA7CiAJcmV0dXJuIHRjcF9z ayhzayktPnNuZF9jd25kOwogfQogCi0tIAoyLjkuNQoKCkZyb20gYWFiMTdhYmNlYTZhMDBmMThl MGRjZTk3NjMzNGU4YWQwNDA4YmFjNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTmVh bCBDYXJkd2VsbCA8bmNhcmR3ZWxsQGdvb2dsZS5jb20+CkRhdGU6IFRodSwgNyBEZWMgMjAxNyAx Mjo0MzozMiAtMDUwMApTdWJqZWN0OiBbUEFUQ0ggMTQvNThdIHRjcF9iYnI6IHJlc2V0IGxvbmct dGVybSBiYW5kd2lkdGggc2FtcGxpbmcgb24gbG9zcwogcmVjb3ZlcnkgdW5kbwoKWyBVcHN0cmVh bSBjb21taXQgNjAwNjQ3ZDQ2N2M2ZDA0YjM5NTRiNDFhNmVlMTc5NWI1YWUwMDU1MCBdCgpGaXgg QkJSIHNvIHRoYXQgdXBvbiBub3RpZmljYXRpb24gb2YgYSBsb3NzIHJlY292ZXJ5IHVuZG8gQkJS IHJlc2V0cwpsb25nLXRlcm0gYmFuZHdpZHRoIHNhbXBsaW5nLgoKVW5kZXIgaGlnaCByZW9yZGVy aW5nLCByZW9yZGVyaW5nIGV2ZW50cyBjYW4gYmUgaW50ZXJwcmV0ZWQgYXMgbG9zcy4KSWYgdGhl IHJlb3JkZXJpbmcgYW5kIHNwdXJpb3VzIGxvc3MgZXN0aW1hdGVzIGFyZSBoaWdoIGVub3VnaCwg dGhpcwpjYW4gY2F1c2UgQkJSIHRvIHNwdXJpb3VzbHkgZXN0aW1hdGUgdGhhdCB3ZSBhcmUgc2Vl aW5nIGxvc3MgcmF0ZXMKaGlnaCBlbm91Z2ggdG8gdHJpZ2dlciBsb25nLXRlcm0gYmFuZHdpZHRo IGVzdGltYXRpb24uIFRvIGF2b2lkIHRoYXQKcHJvYmxlbSwgdGhpcyBjb21taXQgcmVzZXRzIGxv bmctdGVybSBiYW5kd2lkdGggc2FtcGxpbmcgb24gbG9zcwpyZWNvdmVyeSB1bmRvIGV2ZW50cy4K ClNpZ25lZC1vZmYtYnk6IE5lYWwgQ2FyZHdlbGwgPG5jYXJkd2VsbEBnb29nbGUuY29tPgpSZXZp ZXdlZC1ieTogWXVjaHVuZyBDaGVuZyA8eWNoZW5nQGdvb2dsZS5jb20+CkFja2VkLWJ5OiBTb2hl aWwgSGFzc2FzIFllZ2FuZWggPHNvaGVpbEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvdGNwX2Jici5j IHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKCmRpZmYgLS1naXQgYS9uZXQv aXB2NC90Y3BfYmJyLmMgYi9uZXQvaXB2NC90Y3BfYmJyLmMKaW5kZXggYWIzZmYxNC4uODMyMmYy NiAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdGNwX2Jici5jCisrKyBiL25ldC9pcHY0L3RjcF9iYnIu YwpAQCAtODc4LDYgKzg3OCw3IEBAIHN0YXRpYyB1MzIgYmJyX3VuZG9fY3duZChzdHJ1Y3Qgc29j ayAqc2spCiAKIAliYnItPmZ1bGxfYncgPSAwOyAgIC8qIHNwdXJpb3VzIHNsb3ctZG93bjsgcmVz ZXQgZnVsbCBwaXBlIGRldGVjdGlvbiAqLwogCWJici0+ZnVsbF9id19jbnQgPSAwOworCWJicl9y ZXNldF9sdF9id19zYW1wbGluZyhzayk7CiAJcmV0dXJuIHRjcF9zayhzayktPnNuZF9jd25kOwog fQogCi0tIAoyLjkuNQoKCkZyb20gYjA2ZjY3OTYwN2I1NTEwZmY4YTc5ZjQwM2JlNGMyMmFmNGJm NjA4OSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSnVsaWFuIFdpZWRtYW5uIDxqd2lA bGludXgudm5ldC5pYm0uY29tPgpEYXRlOiBXZWQsIDEzIERlYyAyMDE3IDE4OjU2OjI5ICswMTAw ClN1YmplY3Q6IFtQQVRDSCAxNS81OF0gczM5MC9xZXRoOiBhcHBseSB0YWtlb3ZlciBjaGFuZ2Vz IHdoZW4gbW9kZSBpcyB0b2dnbGVkCgpbIFVwc3RyZWFtIGNvbW1pdCA3ZmJkOTQ5M2YwZWVhZThj ZWY1ODMwMDUwNWE5ZWY1YzhmY2U2MzEzIF0KCkp1c3QgYXMgZm9yIGFuIGV4cGxpY2l0IGVuYWJs ZS9kaXNhYmxlLCB0b2dnbGluZyB0aGUgdGFrZW92ZXIgbW9kZSBhbHNvCnJlcXVpcmVzIHRoYXQg dGhlIElQIGFkZHJlc3NlcyBnZXQgdXBkYXRlZC4gT3RoZXJ3aXNlIGFsbCBJUHMgdGhhdCB3ZXJl CmFkZGVkIHRvIHRoZSB0YWJsZSBiZWZvcmUgdGhlIG1vZGUtdG9nZ2xlLCBnZXQgcmVnaXN0ZXJl ZCB3aXRoIHRoZSBvbGQKc2V0dGluZ3MuCgpTaWduZWQtb2ZmLWJ5OiBKdWxpYW4gV2llZG1hbm4g PGp3aUBsaW51eC52bmV0LmlibS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL3MzOTAvbmV0L3FldGhfY29yZS5oICAg ICAgfCAgMiArLQogZHJpdmVycy9zMzkwL25ldC9xZXRoX2NvcmVfbWFpbi5jIHwgIDIgKy0KIGRy aXZlcnMvczM5MC9uZXQvcWV0aF9sM19zeXMuYyAgICB8IDM1ICsrKysrKysrKysrKysrKysrLS0t LS0tLS0tLS0tLS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDE5IGluc2VydGlvbnMoKyksIDIwIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9jb3JlLmggYi9k cml2ZXJzL3MzOTAvbmV0L3FldGhfY29yZS5oCmluZGV4IDUzNDBlZmMuLjBhN2JmM2MgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9jb3JlLmgKKysrIGIvZHJpdmVycy9zMzkwL25l dC9xZXRoX2NvcmUuaApAQCAtNTY0LDcgKzU2NCw3IEBAIGVudW0gcWV0aF9jcSB7CiB9OwogCiBz dHJ1Y3QgcWV0aF9pcGF0byB7Ci0JaW50IGVuYWJsZWQ7CisJYm9vbCBlbmFibGVkOwogCWludCBp bnZlcnQ0OwogCWludCBpbnZlcnQ2OwogCXN0cnVjdCBsaXN0X2hlYWQgZW50cmllczsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9jb3JlX21haW4uYyBiL2RyaXZlcnMvczM5MC9u ZXQvcWV0aF9jb3JlX21haW4uYwppbmRleCAzMzBlNWQzLi5iZTk1ZjhjIDEwMDY0NAotLS0gYS9k cml2ZXJzL3MzOTAvbmV0L3FldGhfY29yZV9tYWluLmMKKysrIGIvZHJpdmVycy9zMzkwL25ldC9x ZXRoX2NvcmVfbWFpbi5jCkBAIC0xNDc5LDcgKzE0NzksNyBAQCBzdGF0aWMgaW50IHFldGhfc2V0 dXBfY2FyZChzdHJ1Y3QgcWV0aF9jYXJkICpjYXJkKQogCXFldGhfc2V0X2ludGlhbF9vcHRpb25z KGNhcmQpOwogCS8qIElQIGFkZHJlc3MgdGFrZW92ZXIgKi8KIAlJTklUX0xJU1RfSEVBRCgmY2Fy ZC0+aXBhdG8uZW50cmllcyk7Ci0JY2FyZC0+aXBhdG8uZW5hYmxlZCA9IDA7CisJY2FyZC0+aXBh dG8uZW5hYmxlZCA9IGZhbHNlOwogCWNhcmQtPmlwYXRvLmludmVydDQgPSAwOwogCWNhcmQtPmlw YXRvLmludmVydDYgPSAwOwogCS8qIGluaXQgUURJTyBzdHVmZiAqLwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9zMzkwL25ldC9xZXRoX2wzX3N5cy5jIGIvZHJpdmVycy9zMzkwL25ldC9xZXRoX2wzX3N5 cy5jCmluZGV4IDdhODI5YWQuLjMwYmZlYjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9uZXQv cWV0aF9sM19zeXMuYworKysgYi9kcml2ZXJzL3MzOTAvbmV0L3FldGhfbDNfc3lzLmMKQEAgLTM3 Miw2ICszNzIsNyBAQCBzdGF0aWMgc3NpemVfdCBxZXRoX2wzX2Rldl9pcGF0b19lbmFibGVfc3Rv cmUoc3RydWN0IGRldmljZSAqZGV2LAogCXN0cnVjdCBxZXRoX2NhcmQgKmNhcmQgPSBkZXZfZ2V0 X2RydmRhdGEoZGV2KTsKIAlzdHJ1Y3QgcWV0aF9pcGFkZHIgKmFkZHI7CiAJaW50IGksIHJjID0g MDsKKwlib29sIGVuYWJsZTsKIAogCWlmICghY2FyZCkKIAkJcmV0dXJuIC1FSU5WQUw7CkBAIC0z ODQsMjUgKzM4NSwyMyBAQCBzdGF0aWMgc3NpemVfdCBxZXRoX2wzX2Rldl9pcGF0b19lbmFibGVf c3RvcmUoc3RydWN0IGRldmljZSAqZGV2LAogCX0KIAogCWlmIChzeXNmc19zdHJlcShidWYsICJ0 b2dnbGUiKSkgewotCQljYXJkLT5pcGF0by5lbmFibGVkID0gKGNhcmQtPmlwYXRvLmVuYWJsZWQp PyAwIDogMTsKLQl9IGVsc2UgaWYgKHN5c2ZzX3N0cmVxKGJ1ZiwgIjEiKSkgewotCQljYXJkLT5p cGF0by5lbmFibGVkID0gMTsKLQkJaGFzaF9mb3JfZWFjaChjYXJkLT5pcF9odGFibGUsIGksIGFk ZHIsIGhub2RlKSB7Ci0JCQkJaWYgKChhZGRyLT50eXBlID09IFFFVEhfSVBfVFlQRV9OT1JNQUwp ICYmCi0JCQkJcWV0aF9sM19pc19hZGRyX2NvdmVyZWRfYnlfaXBhdG8oY2FyZCwgYWRkcikpCi0J CQkJCWFkZHItPnNldF9mbGFncyB8PQotCQkJCQlRRVRIX0lQQV9TRVRJUF9UQUtFT1ZFUl9GTEFH OwotCQkJfQotCX0gZWxzZSBpZiAoc3lzZnNfc3RyZXEoYnVmLCAiMCIpKSB7Ci0JCWNhcmQtPmlw YXRvLmVuYWJsZWQgPSAwOwotCQloYXNoX2Zvcl9lYWNoKGNhcmQtPmlwX2h0YWJsZSwgaSwgYWRk ciwgaG5vZGUpIHsKLQkJCWlmIChhZGRyLT5zZXRfZmxhZ3MgJgotCQkJUUVUSF9JUEFfU0VUSVBf VEFLRU9WRVJfRkxBRykKLQkJCQlhZGRyLT5zZXRfZmxhZ3MgJj0KLQkJCQl+UUVUSF9JUEFfU0VU SVBfVEFLRU9WRVJfRkxBRzsKLQkJCX0KLQl9IGVsc2UKKwkJZW5hYmxlID0gIWNhcmQtPmlwYXRv LmVuYWJsZWQ7CisJfSBlbHNlIGlmIChrc3RydG9ib29sKGJ1ZiwgJmVuYWJsZSkpIHsKIAkJcmMg PSAtRUlOVkFMOworCQlnb3RvIG91dDsKKwl9CisKKwlpZiAoY2FyZC0+aXBhdG8uZW5hYmxlZCA9 PSBlbmFibGUpCisJCWdvdG8gb3V0OworCWNhcmQtPmlwYXRvLmVuYWJsZWQgPSBlbmFibGU7CisK KwloYXNoX2Zvcl9lYWNoKGNhcmQtPmlwX2h0YWJsZSwgaSwgYWRkciwgaG5vZGUpIHsKKwkJaWYg KCFlbmFibGUpCisJCQlhZGRyLT5zZXRfZmxhZ3MgJj0gflFFVEhfSVBBX1NFVElQX1RBS0VPVkVS X0ZMQUc7CisJCWVsc2UgaWYgKGFkZHItPnR5cGUgPT0gUUVUSF9JUF9UWVBFX05PUk1BTCAmJgor CQkJIHFldGhfbDNfaXNfYWRkcl9jb3ZlcmVkX2J5X2lwYXRvKGNhcmQsIGFkZHIpKQorCQkJYWRk ci0+c2V0X2ZsYWdzIHw9IFFFVEhfSVBBX1NFVElQX1RBS0VPVkVSX0ZMQUc7CisJfQogb3V0Ogog CW11dGV4X3VubG9jaygmY2FyZC0+Y29uZl9tdXRleCk7CiAJcmV0dXJuIHJjID8gcmMgOiBjb3Vu dDsKLS0gCjIuOS41CgoKRnJvbSAwNWVhZDdjMDYyZjQyNDE2MDIyNTkzMzBhMTJlZGM0YjEzZDhi ZDlhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKdWxpYW4gV2llZG1hbm4gPGp3aUBs aW51eC52bmV0LmlibS5jb20+CkRhdGU6IFdlZCwgMTMgRGVjIDIwMTcgMTg6NTY6MzAgKzAxMDAK U3ViamVjdDogW1BBVENIIDE2LzU4XSBzMzkwL3FldGg6IGRvbid0IGFwcGx5IHRha2VvdmVyIGNo YW5nZXMgdG8gUlhJUAoKWyBVcHN0cmVhbSBjb21taXQgYjIyZDczZDY2ODlmZDkwMmE2NmMwOGVi ZTcxYWIyZjNiMzUxZTIyZiBdCgpXaGVuIHRha2VvdmVyIGlzIHN3aXRjaGVkIG9mZiwgY3VycmVu dCBjb2RlIGNsZWFycyB0aGUgJ1RBS0VPVkVSJyBmbGFnIG9uCmFsbCBJUHMuIEJ1dCB0aGUgZmxh ZyBpcyBhbHNvIHVzZWQgZm9yIFJYSVAgYWRkcmVzc2VzLCBhbmQgdGhvc2Ugc2hvdWxkCm5vdCBi ZSBhZmZlY3RlZCBieSB0aGUgdGFrZW92ZXIgbW9kZS4KRml4IHRoZSBiZWhhdmlvdXIgYnkgY29u c2lzdGVubHkgYXBwbHlpbmcgdGFrb3ZlciBsb2dpYyB0byBOT1JNQUwKYWRkcmVzc2VzIG9ubHku CgpTaWduZWQtb2ZmLWJ5OiBKdWxpYW4gV2llZG1hbm4gPGp3aUBsaW51eC52bmV0LmlibS5jb20+ ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0t CiBkcml2ZXJzL3MzOTAvbmV0L3FldGhfbDNfbWFpbi5jIHwgNSArKystLQogZHJpdmVycy9zMzkw L25ldC9xZXRoX2wzX3N5cy5jICB8IDUgKysrLS0KIDIgZmlsZXMgY2hhbmdlZCwgNiBpbnNlcnRp b25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9uZXQvcWV0 aF9sM19tYWluLmMgYi9kcml2ZXJzL3MzOTAvbmV0L3FldGhfbDNfbWFpbi5jCmluZGV4IDI3MTg1 YWIuLjU2ZDFjNzU2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvbmV0L3FldGhfbDNfbWFpbi5j CisrKyBiL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9sM19tYWluLmMKQEAgLTE3Myw2ICsxNzMsOCBA QCBpbnQgcWV0aF9sM19pc19hZGRyX2NvdmVyZWRfYnlfaXBhdG8oc3RydWN0IHFldGhfY2FyZCAq Y2FyZCwKIAogCWlmICghY2FyZC0+aXBhdG8uZW5hYmxlZCkKIAkJcmV0dXJuIDA7CisJaWYgKGFk ZHItPnR5cGUgIT0gUUVUSF9JUF9UWVBFX05PUk1BTCkKKwkJcmV0dXJuIDA7CiAKIAlxZXRoX2wz X2NvbnZlcnRfYWRkcl90b19iaXRzKCh1OCAqKSAmYWRkci0+dSwgYWRkcl9iaXRzLAogCQkJCSAg KGFkZHItPnByb3RvID09IFFFVEhfUFJPVF9JUFY0KT8gNDoxNik7CkBAIC0yODksOCArMjkxLDcg QEAgaW50IHFldGhfbDNfYWRkX2lwKHN0cnVjdCBxZXRoX2NhcmQgKmNhcmQsIHN0cnVjdCBxZXRo X2lwYWRkciAqdG1wX2FkZHIpCiAJCW1lbWNweShhZGRyLCB0bXBfYWRkciwgc2l6ZW9mKHN0cnVj dCBxZXRoX2lwYWRkcikpOwogCQlhZGRyLT5yZWZfY291bnRlciA9IDE7CiAKLQkJaWYgKGFkZHIt PnR5cGUgPT0gUUVUSF9JUF9UWVBFX05PUk1BTCAgJiYKLQkJCQlxZXRoX2wzX2lzX2FkZHJfY292 ZXJlZF9ieV9pcGF0byhjYXJkLCBhZGRyKSkgeworCQlpZiAocWV0aF9sM19pc19hZGRyX2NvdmVy ZWRfYnlfaXBhdG8oY2FyZCwgYWRkcikpIHsKIAkJCVFFVEhfQ0FSRF9URVhUKGNhcmQsIDIsICJ0 a292YWRkciIpOwogCQkJYWRkci0+c2V0X2ZsYWdzIHw9IFFFVEhfSVBBX1NFVElQX1RBS0VPVkVS X0ZMQUc7CiAJCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9sM19zeXMuYyBi L2RyaXZlcnMvczM5MC9uZXQvcWV0aF9sM19zeXMuYwppbmRleCAzMGJmZWIxLi5hYWRhMDcyIDEw MDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvbmV0L3FldGhfbDNfc3lzLmMKKysrIGIvZHJpdmVycy9z MzkwL25ldC9xZXRoX2wzX3N5cy5jCkBAIC0zOTYsMTAgKzM5NiwxMSBAQCBzdGF0aWMgc3NpemVf dCBxZXRoX2wzX2Rldl9pcGF0b19lbmFibGVfc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LAogCWNh cmQtPmlwYXRvLmVuYWJsZWQgPSBlbmFibGU7CiAKIAloYXNoX2Zvcl9lYWNoKGNhcmQtPmlwX2h0 YWJsZSwgaSwgYWRkciwgaG5vZGUpIHsKKwkJaWYgKGFkZHItPnR5cGUgIT0gUUVUSF9JUF9UWVBF X05PUk1BTCkKKwkJCWNvbnRpbnVlOwogCQlpZiAoIWVuYWJsZSkKIAkJCWFkZHItPnNldF9mbGFn cyAmPSB+UUVUSF9JUEFfU0VUSVBfVEFLRU9WRVJfRkxBRzsKLQkJZWxzZSBpZiAoYWRkci0+dHlw ZSA9PSBRRVRIX0lQX1RZUEVfTk9STUFMICYmCi0JCQkgcWV0aF9sM19pc19hZGRyX2NvdmVyZWRf YnlfaXBhdG8oY2FyZCwgYWRkcikpCisJCWVsc2UgaWYgKHFldGhfbDNfaXNfYWRkcl9jb3ZlcmVk X2J5X2lwYXRvKGNhcmQsIGFkZHIpKQogCQkJYWRkci0+c2V0X2ZsYWdzIHw9IFFFVEhfSVBBX1NF VElQX1RBS0VPVkVSX0ZMQUc7CiAJfQogb3V0OgotLSAKMi45LjUKCgpGcm9tIGY1YWM3YWIxODEw ZmE2ZDYxNGIwNDM5YTQzZmQ2MmVjNmRjNThmNzQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IEp1bGlhbiBXaWVkbWFubiA8andpQGxpbnV4LnZuZXQuaWJtLmNvbT4KRGF0ZTogV2VkLCAx MyBEZWMgMjAxNyAxODo1NjozMSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTcvNThdIHMzOTAvcWV0 aDogbG9jayBJUCB0YWJsZSB3aGlsZSBhcHBseWluZyB0YWtlb3ZlcgogY2hhbmdlcwoKWyBVcHN0 cmVhbSBjb21taXQgOGEwM2EzNjkyYjEwMGQ4NDc4NWVlN2E4MzRlOTIxNWUzMDRjOWUwMCBdCgpN b2RpZnlpbmcgdGhlIGZsYWdzIG9mIGFuIElQIGFkZHIgb2JqZWN0IG5lZWRzIHRvIGJlIHByb3Rl Y3RlZCBhZ2FpbnN0CmVnLiBjb25jdXJyZW50IHJlbW92YWwgb2YgdGhlIHNhbWUgb2JqZWN0IGZy b20gdGhlIElQIHRhYmxlLgoKRml4ZXM6IDVmNzhlMjljZWViZiAoInFldGg6IG9wdGltaXplIElQ IGhhbmRsaW5nIGluIHJ4X21vZGUgY2FsbGJhY2siKQpTaWduZWQtb2ZmLWJ5OiBKdWxpYW4gV2ll ZG1hbm4gPGp3aUBsaW51eC52bmV0LmlibS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL3MzOTAvbmV0L3FldGhfbDNf c3lzLmMgfCAyICsrCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9zMzkwL25ldC9xZXRoX2wzX3N5cy5jIGIvZHJpdmVycy9zMzkwL25ldC9xZXRo X2wzX3N5cy5jCmluZGV4IGFhZGEwNzIuLmEyNjM0ODMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5 MC9uZXQvcWV0aF9sM19zeXMuYworKysgYi9kcml2ZXJzL3MzOTAvbmV0L3FldGhfbDNfc3lzLmMK QEAgLTM5NSw2ICszOTUsNyBAQCBzdGF0aWMgc3NpemVfdCBxZXRoX2wzX2Rldl9pcGF0b19lbmFi bGVfc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LAogCQlnb3RvIG91dDsKIAljYXJkLT5pcGF0by5l bmFibGVkID0gZW5hYmxlOwogCisJc3Bpbl9sb2NrX2JoKCZjYXJkLT5pcF9sb2NrKTsKIAloYXNo X2Zvcl9lYWNoKGNhcmQtPmlwX2h0YWJsZSwgaSwgYWRkciwgaG5vZGUpIHsKIAkJaWYgKGFkZHIt PnR5cGUgIT0gUUVUSF9JUF9UWVBFX05PUk1BTCkKIAkJCWNvbnRpbnVlOwpAQCAtNDAzLDYgKzQw NCw3IEBAIHN0YXRpYyBzc2l6ZV90IHFldGhfbDNfZGV2X2lwYXRvX2VuYWJsZV9zdG9yZShzdHJ1 Y3QgZGV2aWNlICpkZXYsCiAJCWVsc2UgaWYgKHFldGhfbDNfaXNfYWRkcl9jb3ZlcmVkX2J5X2lw YXRvKGNhcmQsIGFkZHIpKQogCQkJYWRkci0+c2V0X2ZsYWdzIHw9IFFFVEhfSVBBX1NFVElQX1RB S0VPVkVSX0ZMQUc7CiAJfQorCXNwaW5fdW5sb2NrX2JoKCZjYXJkLT5pcF9sb2NrKTsKIG91dDoK IAltdXRleF91bmxvY2soJmNhcmQtPmNvbmZfbXV0ZXgpOwogCXJldHVybiByYyA/IHJjIDogY291 bnQ7Ci0tIAoyLjkuNQoKCkZyb20gMjRiYTNlNjhhOWU1ZTViOWU4ODViZjg5ZDU1MDdhMjE3NzAw OGEwYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSnVsaWFuIFdpZWRtYW5uIDxqd2lA bGludXgudm5ldC5pYm0uY29tPgpEYXRlOiBXZWQsIDEzIERlYyAyMDE3IDE4OjU2OjMyICswMTAw ClN1YmplY3Q6IFtQQVRDSCAxOC81OF0gczM5MC9xZXRoOiB1cGRhdGUgdGFrZW92ZXIgSVBzIGFm dGVyIGNvbmZpZ3VyYXRpb24KIGNoYW5nZQoKWyBVcHN0cmVhbSBjb21taXQgMDJmNTEwZjMyNjUw MTQ3MDM0OGE1ZGYzNDFlODIzMmMzNDk3YmJiYiBdCgpBbnkgbW9kaWZpY2F0aW9uIHRvIHRoZSB0 YWtlb3ZlciBJUC1yYW5nZXMgcmVxdWlyZXMgdGhhdCB3ZSByZS1ldmFsdWF0ZQp3aGljaCBJUCBh ZGRyZXNzZXMgYXJlIHRha2VvdmVyLWVsaWdpYmxlLiBPdGhlcndpc2Ugd2UgbWlnaHQgZG8gdGFr ZW92ZXIKZm9yIHNvbWUgYWRkcmVzc2VzIHdoZW4gd2Ugbm8gbG9uZ2VyIHNob3VsZCwgb3Igdmlj ZS12ZXJzYS4KClNpZ25lZC1vZmYtYnk6IEp1bGlhbiBXaWVkbWFubiA8andpQGxpbnV4LnZuZXQu aWJtLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQu bmV0PgotLS0KIGRyaXZlcnMvczM5MC9uZXQvcWV0aF9jb3JlLmggICAgICB8ICA0ICstLQogZHJp dmVycy9zMzkwL25ldC9xZXRoX2NvcmVfbWFpbi5jIHwgIDQgKy0tCiBkcml2ZXJzL3MzOTAvbmV0 L3FldGhfbDMuaCAgICAgICAgfCAgMiArLQogZHJpdmVycy9zMzkwL25ldC9xZXRoX2wzX21haW4u YyAgIHwgMzEgKysrKysrKysrKysrKysrKystLQogZHJpdmVycy9zMzkwL25ldC9xZXRoX2wzX3N5 cy5jICAgIHwgNjMgKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tCiA1IGZp bGVzIGNoYW5nZWQsIDY3IGluc2VydGlvbnMoKyksIDM3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9jb3JlLmggYi9kcml2ZXJzL3MzOTAvbmV0L3FldGhf Y29yZS5oCmluZGV4IDBhN2JmM2MuLjkyZGQ0YWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9u ZXQvcWV0aF9jb3JlLmgKKysrIGIvZHJpdmVycy9zMzkwL25ldC9xZXRoX2NvcmUuaApAQCAtNTY1 LDggKzU2NSw4IEBAIGVudW0gcWV0aF9jcSB7CiAKIHN0cnVjdCBxZXRoX2lwYXRvIHsKIAlib29s IGVuYWJsZWQ7Ci0JaW50IGludmVydDQ7Ci0JaW50IGludmVydDY7CisJYm9vbCBpbnZlcnQ0Owor CWJvb2wgaW52ZXJ0NjsKIAlzdHJ1Y3QgbGlzdF9oZWFkIGVudHJpZXM7CiB9OwogCmRpZmYgLS1n aXQgYS9kcml2ZXJzL3MzOTAvbmV0L3FldGhfY29yZV9tYWluLmMgYi9kcml2ZXJzL3MzOTAvbmV0 L3FldGhfY29yZV9tYWluLmMKaW5kZXggYmU5NWY4Yy4uMjkxZWI4OSAxMDA2NDQKLS0tIGEvZHJp dmVycy9zMzkwL25ldC9xZXRoX2NvcmVfbWFpbi5jCisrKyBiL2RyaXZlcnMvczM5MC9uZXQvcWV0 aF9jb3JlX21haW4uYwpAQCAtMTQ4MCw4ICsxNDgwLDggQEAgc3RhdGljIGludCBxZXRoX3NldHVw X2NhcmQoc3RydWN0IHFldGhfY2FyZCAqY2FyZCkKIAkvKiBJUCBhZGRyZXNzIHRha2VvdmVyICov CiAJSU5JVF9MSVNUX0hFQUQoJmNhcmQtPmlwYXRvLmVudHJpZXMpOwogCWNhcmQtPmlwYXRvLmVu YWJsZWQgPSBmYWxzZTsKLQljYXJkLT5pcGF0by5pbnZlcnQ0ID0gMDsKLQljYXJkLT5pcGF0by5p bnZlcnQ2ID0gMDsKKwljYXJkLT5pcGF0by5pbnZlcnQ0ID0gZmFsc2U7CisJY2FyZC0+aXBhdG8u aW52ZXJ0NiA9IGZhbHNlOwogCS8qIGluaXQgUURJTyBzdHVmZiAqLwogCXFldGhfaW5pdF9xZGlv X2luZm8oY2FyZCk7CiAJSU5JVF9ERUxBWUVEX1dPUksoJmNhcmQtPmJ1ZmZlcl9yZWNsYWltX3dv cmssIHFldGhfYnVmZmVyX3JlY2xhaW1fd29yayk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAv bmV0L3FldGhfbDMuaCBiL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9sMy5oCmluZGV4IDE5NGFlOWIu LmU1ODMzODMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9sMy5oCisrKyBiL2Ry aXZlcnMvczM5MC9uZXQvcWV0aF9sMy5oCkBAIC04Miw3ICs4Miw3IEBAIHZvaWQgcWV0aF9sM19k ZWxfdmlwYShzdHJ1Y3QgcWV0aF9jYXJkICosIGVudW0gcWV0aF9wcm90X3ZlcnNpb25zLCBjb25z dCB1OCAqKTsKIGludCBxZXRoX2wzX2FkZF9yeGlwKHN0cnVjdCBxZXRoX2NhcmQgKiwgZW51bSBx ZXRoX3Byb3RfdmVyc2lvbnMsIGNvbnN0IHU4ICopOwogdm9pZCBxZXRoX2wzX2RlbF9yeGlwKHN0 cnVjdCBxZXRoX2NhcmQgKmNhcmQsIGVudW0gcWV0aF9wcm90X3ZlcnNpb25zLAogCQkJY29uc3Qg dTggKik7Ci1pbnQgcWV0aF9sM19pc19hZGRyX2NvdmVyZWRfYnlfaXBhdG8oc3RydWN0IHFldGhf Y2FyZCAqLCBzdHJ1Y3QgcWV0aF9pcGFkZHIgKik7Cit2b2lkIHFldGhfbDNfdXBkYXRlX2lwYXRv KHN0cnVjdCBxZXRoX2NhcmQgKmNhcmQpOwogc3RydWN0IHFldGhfaXBhZGRyICpxZXRoX2wzX2dl dF9hZGRyX2J1ZmZlcihlbnVtIHFldGhfcHJvdF92ZXJzaW9ucyk7CiBpbnQgcWV0aF9sM19hZGRf aXAoc3RydWN0IHFldGhfY2FyZCAqLCBzdHJ1Y3QgcWV0aF9pcGFkZHIgKik7CiBpbnQgcWV0aF9s M19kZWxldGVfaXAoc3RydWN0IHFldGhfY2FyZCAqLCBzdHJ1Y3QgcWV0aF9pcGFkZHIgKik7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvbmV0L3FldGhfbDNfbWFpbi5jIGIvZHJpdmVycy9zMzkw L25ldC9xZXRoX2wzX21haW4uYwppbmRleCA1NmQxYzc1Ni4uMzZkZWUxNyAxMDA2NDQKLS0tIGEv ZHJpdmVycy9zMzkwL25ldC9xZXRoX2wzX21haW4uYworKysgYi9kcml2ZXJzL3MzOTAvbmV0L3Fl dGhfbDNfbWFpbi5jCkBAIC0xNjMsOCArMTYzLDggQEAgc3RhdGljIHZvaWQgcWV0aF9sM19jb252 ZXJ0X2FkZHJfdG9fYml0cyh1OCAqYWRkciwgdTggKmJpdHMsIGludCBsZW4pCiAJfQogfQogCi1p bnQgcWV0aF9sM19pc19hZGRyX2NvdmVyZWRfYnlfaXBhdG8oc3RydWN0IHFldGhfY2FyZCAqY2Fy ZCwKLQkJCQkJCXN0cnVjdCBxZXRoX2lwYWRkciAqYWRkcikKK3N0YXRpYyBib29sIHFldGhfbDNf aXNfYWRkcl9jb3ZlcmVkX2J5X2lwYXRvKHN0cnVjdCBxZXRoX2NhcmQgKmNhcmQsCisJCQkJCSAg ICAgc3RydWN0IHFldGhfaXBhZGRyICphZGRyKQogewogCXN0cnVjdCBxZXRoX2lwYXRvX2VudHJ5 ICppcGF0b2U7CiAJdTggYWRkcl9iaXRzWzEyOF0gPSB7MCwgfTsKQEAgLTYwNSw2ICs2MDUsMjcg QEAgaW50IHFldGhfbDNfc2V0cm91dGluZ192NihzdHJ1Y3QgcWV0aF9jYXJkICpjYXJkKQogLyoK ICAqIElQIGFkZHJlc3MgdGFrZW92ZXIgcmVsYXRlZCBmdW5jdGlvbnMKICAqLworCisvKioKKyAq IHFldGhfbDNfdXBkYXRlX2lwYXRvKCkgLSBVcGRhdGUgJ3Rha2VvdmVyJyBwcm9wZXJ0eSwgZm9y IGFsbCBOT1JNQUwgSVBzLgorICoKKyAqIENhbGxlciBtdXN0IGhvbGQgaXBfbG9jay4KKyAqLwor dm9pZCBxZXRoX2wzX3VwZGF0ZV9pcGF0byhzdHJ1Y3QgcWV0aF9jYXJkICpjYXJkKQoreworCXN0 cnVjdCBxZXRoX2lwYWRkciAqYWRkcjsKKwl1bnNpZ25lZCBpbnQgaTsKKworCWhhc2hfZm9yX2Vh Y2goY2FyZC0+aXBfaHRhYmxlLCBpLCBhZGRyLCBobm9kZSkgeworCQlpZiAoYWRkci0+dHlwZSAh PSBRRVRIX0lQX1RZUEVfTk9STUFMKQorCQkJY29udGludWU7CisJCWlmIChxZXRoX2wzX2lzX2Fk ZHJfY292ZXJlZF9ieV9pcGF0byhjYXJkLCBhZGRyKSkKKwkJCWFkZHItPnNldF9mbGFncyB8PSBR RVRIX0lQQV9TRVRJUF9UQUtFT1ZFUl9GTEFHOworCQllbHNlCisJCQlhZGRyLT5zZXRfZmxhZ3Mg Jj0gflFFVEhfSVBBX1NFVElQX1RBS0VPVkVSX0ZMQUc7CisJfQorfQorCiBzdGF0aWMgdm9pZCBx ZXRoX2wzX2NsZWFyX2lwYXRvX2xpc3Qoc3RydWN0IHFldGhfY2FyZCAqY2FyZCkKIHsKIAlzdHJ1 Y3QgcWV0aF9pcGF0b19lbnRyeSAqaXBhdG9lLCAqdG1wOwpAQCAtNjE2LDYgKzYzNyw3IEBAIHN0 YXRpYyB2b2lkIHFldGhfbDNfY2xlYXJfaXBhdG9fbGlzdChzdHJ1Y3QgcWV0aF9jYXJkICpjYXJk KQogCQlrZnJlZShpcGF0b2UpOwogCX0KIAorCXFldGhfbDNfdXBkYXRlX2lwYXRvKGNhcmQpOwog CXNwaW5fdW5sb2NrX2JoKCZjYXJkLT5pcF9sb2NrKTsKIH0KIApAQCAtNjQwLDggKzY2MiwxMCBA QCBpbnQgcWV0aF9sM19hZGRfaXBhdG9fZW50cnkoc3RydWN0IHFldGhfY2FyZCAqY2FyZCwKIAkJ fQogCX0KIAotCWlmICghcmMpCisJaWYgKCFyYykgewogCQlsaXN0X2FkZF90YWlsKCZuZXctPmVu dHJ5LCAmY2FyZC0+aXBhdG8uZW50cmllcyk7CisJCXFldGhfbDNfdXBkYXRlX2lwYXRvKGNhcmQp OworCX0KIAogCXNwaW5fdW5sb2NrX2JoKCZjYXJkLT5pcF9sb2NrKTsKIApAQCAtNjY0LDYgKzY4 OCw3IEBAIHZvaWQgcWV0aF9sM19kZWxfaXBhdG9fZW50cnkoc3RydWN0IHFldGhfY2FyZCAqY2Fy ZCwKIAkJCSAgICAocHJvdG8gPT0gUUVUSF9QUk9UX0lQVjQpPyA0OjE2KSAmJgogCQkgICAgKGlw YXRvZS0+bWFza19iaXRzID09IG1hc2tfYml0cykpIHsKIAkJCWxpc3RfZGVsKCZpcGF0b2UtPmVu dHJ5KTsKKwkJCXFldGhfbDNfdXBkYXRlX2lwYXRvKGNhcmQpOwogCQkJa2ZyZWUoaXBhdG9lKTsK IAkJfQogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9sM19zeXMuYyBiL2Ry aXZlcnMvczM5MC9uZXQvcWV0aF9sM19zeXMuYwppbmRleCBhMjYzNDgzLi4xMjk1ZGQ4IDEwMDY0 NAotLS0gYS9kcml2ZXJzL3MzOTAvbmV0L3FldGhfbDNfc3lzLmMKKysrIGIvZHJpdmVycy9zMzkw L25ldC9xZXRoX2wzX3N5cy5jCkBAIC0zNzAsOSArMzcwLDggQEAgc3RhdGljIHNzaXplX3QgcWV0 aF9sM19kZXZfaXBhdG9fZW5hYmxlX3N0b3JlKHN0cnVjdCBkZXZpY2UgKmRldiwKIAkJc3RydWN0 IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNvbnN0IGNoYXIgKmJ1Ziwgc2l6ZV90IGNvdW50KQog ewogCXN0cnVjdCBxZXRoX2NhcmQgKmNhcmQgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKLQlzdHJ1 Y3QgcWV0aF9pcGFkZHIgKmFkZHI7Ci0JaW50IGksIHJjID0gMDsKIAlib29sIGVuYWJsZTsKKwlp bnQgcmMgPSAwOwogCiAJaWYgKCFjYXJkKQogCQlyZXR1cm4gLUVJTlZBTDsKQEAgLTM5MSwyMCAr MzkwLDEyIEBAIHN0YXRpYyBzc2l6ZV90IHFldGhfbDNfZGV2X2lwYXRvX2VuYWJsZV9zdG9yZShz dHJ1Y3QgZGV2aWNlICpkZXYsCiAJCWdvdG8gb3V0OwogCX0KIAotCWlmIChjYXJkLT5pcGF0by5l bmFibGVkID09IGVuYWJsZSkKLQkJZ290byBvdXQ7Ci0JY2FyZC0+aXBhdG8uZW5hYmxlZCA9IGVu YWJsZTsKLQotCXNwaW5fbG9ja19iaCgmY2FyZC0+aXBfbG9jayk7Ci0JaGFzaF9mb3JfZWFjaChj YXJkLT5pcF9odGFibGUsIGksIGFkZHIsIGhub2RlKSB7Ci0JCWlmIChhZGRyLT50eXBlICE9IFFF VEhfSVBfVFlQRV9OT1JNQUwpCi0JCQljb250aW51ZTsKLQkJaWYgKCFlbmFibGUpCi0JCQlhZGRy LT5zZXRfZmxhZ3MgJj0gflFFVEhfSVBBX1NFVElQX1RBS0VPVkVSX0ZMQUc7Ci0JCWVsc2UgaWYg KHFldGhfbDNfaXNfYWRkcl9jb3ZlcmVkX2J5X2lwYXRvKGNhcmQsIGFkZHIpKQotCQkJYWRkci0+ c2V0X2ZsYWdzIHw9IFFFVEhfSVBBX1NFVElQX1RBS0VPVkVSX0ZMQUc7CisJaWYgKGNhcmQtPmlw YXRvLmVuYWJsZWQgIT0gZW5hYmxlKSB7CisJCWNhcmQtPmlwYXRvLmVuYWJsZWQgPSBlbmFibGU7 CisJCXNwaW5fbG9ja19iaCgmY2FyZC0+aXBfbG9jayk7CisJCXFldGhfbDNfdXBkYXRlX2lwYXRv KGNhcmQpOworCQlzcGluX3VubG9ja19iaCgmY2FyZC0+aXBfbG9jayk7CiAJfQotCXNwaW5fdW5s b2NrX2JoKCZjYXJkLT5pcF9sb2NrKTsKIG91dDoKIAltdXRleF91bmxvY2soJmNhcmQtPmNvbmZf bXV0ZXgpOwogCXJldHVybiByYyA/IHJjIDogY291bnQ7CkBAIC00MzAsMjAgKzQyMSwyNyBAQCBz dGF0aWMgc3NpemVfdCBxZXRoX2wzX2Rldl9pcGF0b19pbnZlcnQ0X3N0b3JlKHN0cnVjdCBkZXZp Y2UgKmRldiwKIAkJCQljb25zdCBjaGFyICpidWYsIHNpemVfdCBjb3VudCkKIHsKIAlzdHJ1Y3Qg cWV0aF9jYXJkICpjYXJkID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisJYm9vbCBpbnZlcnQ7CiAJ aW50IHJjID0gMDsKIAogCWlmICghY2FyZCkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKIAltdXRleF9s b2NrKCZjYXJkLT5jb25mX211dGV4KTsKLQlpZiAoc3lzZnNfc3RyZXEoYnVmLCAidG9nZ2xlIikp Ci0JCWNhcmQtPmlwYXRvLmludmVydDQgPSAoY2FyZC0+aXBhdG8uaW52ZXJ0NCk/IDAgOiAxOwot CWVsc2UgaWYgKHN5c2ZzX3N0cmVxKGJ1ZiwgIjEiKSkKLQkJY2FyZC0+aXBhdG8uaW52ZXJ0NCA9 IDE7Ci0JZWxzZSBpZiAoc3lzZnNfc3RyZXEoYnVmLCAiMCIpKQotCQljYXJkLT5pcGF0by5pbnZl cnQ0ID0gMDsKLQllbHNlCisJaWYgKHN5c2ZzX3N0cmVxKGJ1ZiwgInRvZ2dsZSIpKSB7CisJCWlu dmVydCA9ICFjYXJkLT5pcGF0by5pbnZlcnQ0OworCX0gZWxzZSBpZiAoa3N0cnRvYm9vbChidWYs ICZpbnZlcnQpKSB7CiAJCXJjID0gLUVJTlZBTDsKKwkJZ290byBvdXQ7CisJfQorCisJaWYgKGNh cmQtPmlwYXRvLmludmVydDQgIT0gaW52ZXJ0KSB7CisJCWNhcmQtPmlwYXRvLmludmVydDQgPSBp bnZlcnQ7CisJCXNwaW5fbG9ja19iaCgmY2FyZC0+aXBfbG9jayk7CisJCXFldGhfbDNfdXBkYXRl X2lwYXRvKGNhcmQpOworCQlzcGluX3VubG9ja19iaCgmY2FyZC0+aXBfbG9jayk7CisJfQorb3V0 OgogCW11dGV4X3VubG9jaygmY2FyZC0+Y29uZl9tdXRleCk7CiAJcmV0dXJuIHJjID8gcmMgOiBj b3VudDsKIH0KQEAgLTYwOSwyMCArNjA3LDI3IEBAIHN0YXRpYyBzc2l6ZV90IHFldGhfbDNfZGV2 X2lwYXRvX2ludmVydDZfc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LAogCQlzdHJ1Y3QgZGV2aWNl X2F0dHJpYnV0ZSAqYXR0ciwgY29uc3QgY2hhciAqYnVmLCBzaXplX3QgY291bnQpCiB7CiAJc3Ry dWN0IHFldGhfY2FyZCAqY2FyZCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworCWJvb2wgaW52ZXJ0 OwogCWludCByYyA9IDA7CiAKIAlpZiAoIWNhcmQpCiAJCXJldHVybiAtRUlOVkFMOwogCiAJbXV0 ZXhfbG9jaygmY2FyZC0+Y29uZl9tdXRleCk7Ci0JaWYgKHN5c2ZzX3N0cmVxKGJ1ZiwgInRvZ2ds ZSIpKQotCQljYXJkLT5pcGF0by5pbnZlcnQ2ID0gKGNhcmQtPmlwYXRvLmludmVydDYpPyAwIDog MTsKLQllbHNlIGlmIChzeXNmc19zdHJlcShidWYsICIxIikpCi0JCWNhcmQtPmlwYXRvLmludmVy dDYgPSAxOwotCWVsc2UgaWYgKHN5c2ZzX3N0cmVxKGJ1ZiwgIjAiKSkKLQkJY2FyZC0+aXBhdG8u aW52ZXJ0NiA9IDA7Ci0JZWxzZQorCWlmIChzeXNmc19zdHJlcShidWYsICJ0b2dnbGUiKSkgewor CQlpbnZlcnQgPSAhY2FyZC0+aXBhdG8uaW52ZXJ0NjsKKwl9IGVsc2UgaWYgKGtzdHJ0b2Jvb2wo YnVmLCAmaW52ZXJ0KSkgewogCQlyYyA9IC1FSU5WQUw7CisJCWdvdG8gb3V0OworCX0KKworCWlm IChjYXJkLT5pcGF0by5pbnZlcnQ2ICE9IGludmVydCkgeworCQljYXJkLT5pcGF0by5pbnZlcnQ2 ID0gaW52ZXJ0OworCQlzcGluX2xvY2tfYmgoJmNhcmQtPmlwX2xvY2spOworCQlxZXRoX2wzX3Vw ZGF0ZV9pcGF0byhjYXJkKTsKKwkJc3Bpbl91bmxvY2tfYmgoJmNhcmQtPmlwX2xvY2spOworCX0K K291dDoKIAltdXRleF91bmxvY2soJmNhcmQtPmNvbmZfbXV0ZXgpOwogCXJldHVybiByYyA/IHJj IDogY291bnQ7CiB9Ci0tIAoyLjkuNQoKCkZyb20gMGM0YzFiODg3YWE3OTVkM2U4NjQ3YmY5YTI5 NjVmMzczMzRjM2ViNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTW9oYW1lZCBHaGFu bmFtIDxzaW1vLmdoYW5uYW1AZ21haWwuY29tPgpEYXRlOiBTdW4sIDEwIERlYyAyMDE3IDAzOjUw OjU4ICswMDAwClN1YmplY3Q6IFtQQVRDSCAxOS81OF0gbmV0OiBpcHY0OiBmaXggZm9yIGEgcmFj ZSBjb25kaXRpb24gaW4gcmF3X3NlbmRtc2cKClsgVXBzdHJlYW0gY29tbWl0IDhmNjU5YTAzYTBi YTkyODliOWFlYjliNDQ3MGU2ZmIyNjNkNmY0ODMgXQoKaW5ldC0+aGRyaW5jbCBpcyByYWN5LCBh bmQgY291bGQgbGVhZCB0byB1bmluaXRpYWxpemVkIHN0YWNrIHBvaW50ZXIKdXNhZ2UsIHNvIGl0 cyB2YWx1ZSBzaG91bGQgYmUgcmVhZCBvbmx5IG9uY2UuCgpGaXhlczogYzAwOGJhNWJkYzlmICgi aXB2NDogQXZvaWQgcmVhZGluZyB1c2VyIGlvdiB0d2ljZSBhZnRlciByYXdfcHJvYmVfcHJvdG9f b3B0IikKU2lnbmVkLW9mZi1ieTogTW9oYW1lZCBHaGFubmFtIDxzaW1vLmdoYW5uYW1AZ21haWwu Y29tPgpSZXZpZXdlZC1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0 L2lwdjQvcmF3LmMgfCAxNSArKysrKysrKysrLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMCBpbnNl cnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3Jhdy5jIGIv bmV0L2lwdjQvcmF3LmMKaW5kZXggMzNiNzBiZi4uMTI1YzFlYSAxMDA2NDQKLS0tIGEvbmV0L2lw djQvcmF3LmMKKysrIGIvbmV0L2lwdjQvcmF3LmMKQEAgLTUxMywxMSArNTEzLDE2IEBAIHN0YXRp YyBpbnQgcmF3X3NlbmRtc2coc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgbXNnaGRyICptc2csIHNp emVfdCBsZW4pCiAJaW50IGVycjsKIAlzdHJ1Y3QgaXBfb3B0aW9uc19kYXRhIG9wdF9jb3B5Owog CXN0cnVjdCByYXdfZnJhZ192ZWMgcmZ2OworCWludCBoZHJpbmNsOwogCiAJZXJyID0gLUVNU0dT SVpFOwogCWlmIChsZW4gPiAweEZGRkYpCiAJCWdvdG8gb3V0OwogCisJLyogaGRyaW5jbCBzaG91 bGQgYmUgUkVBRF9PTkNFKGluZXQtPmhkcmluY2wpCisJICogYnV0IFJFQURfT05DRSgpIGRvZXNu J3Qgd29yayB3aXRoIGJpdCBmaWVsZHMKKwkgKi8KKwloZHJpbmNsID0gaW5ldC0+aGRyaW5jbDsK IAkvKgogCSAqCUNoZWNrIHRoZSBmbGFncy4KIAkgKi8KQEAgLTU5Myw3ICs1OTgsNyBAQCBzdGF0 aWMgaW50IHJhd19zZW5kbXNnKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IG1zZ2hkciAqbXNnLCBz aXplX3QgbGVuKQogCQkvKiBMaW51eCBkb2VzIG5vdCBtYW5nbGUgaGVhZGVycyBvbiByYXcgc29j a2V0cywKIAkJICogc28gdGhhdCBJUCBvcHRpb25zICsgSVBfSERSSU5DTCBpcyBub24tc2Vuc2Uu CiAJCSAqLwotCQlpZiAoaW5ldC0+aGRyaW5jbCkKKwkJaWYgKGhkcmluY2wpCiAJCQlnb3RvIGRv bmU7CiAJCWlmIChpcGMub3B0LT5vcHQuc3JyKSB7CiAJCQlpZiAoIWRhZGRyKQpAQCAtNjE1LDEy ICs2MjAsMTIgQEAgc3RhdGljIGludCByYXdfc2VuZG1zZyhzdHJ1Y3Qgc29jayAqc2ssIHN0cnVj dCBtc2doZHIgKm1zZywgc2l6ZV90IGxlbikKIAogCWZsb3dpNF9pbml0X291dHB1dCgmZmw0LCBp cGMub2lmLCBzay0+c2tfbWFyaywgdG9zLAogCQkJICAgUlRfU0NPUEVfVU5JVkVSU0UsCi0JCQkg ICBpbmV0LT5oZHJpbmNsID8gSVBQUk9UT19SQVcgOiBzay0+c2tfcHJvdG9jb2wsCisJCQkgICBo ZHJpbmNsID8gSVBQUk9UT19SQVcgOiBzay0+c2tfcHJvdG9jb2wsCiAJCQkgICBpbmV0X3NrX2Zs b3dpX2ZsYWdzKHNrKSB8Ci0JCQkgICAgKGluZXQtPmhkcmluY2wgPyBGTE9XSV9GTEFHX0tOT1dO X05IIDogMCksCisJCQkgICAgKGhkcmluY2wgPyBGTE9XSV9GTEFHX0tOT1dOX05IIDogMCksCiAJ CQkgICBkYWRkciwgc2FkZHIsIDAsIDAsIHNrLT5za191aWQpOwogCi0JaWYgKCFpbmV0LT5oZHJp bmNsKSB7CisJaWYgKCFoZHJpbmNsKSB7CiAJCXJmdi5tc2cgPSBtc2c7CiAJCXJmdi5obGVuID0g MDsKIApAQCAtNjQ1LDcgKzY1MCw3IEBAIHN0YXRpYyBpbnQgcmF3X3NlbmRtc2coc3RydWN0IHNv Y2sgKnNrLCBzdHJ1Y3QgbXNnaGRyICptc2csIHNpemVfdCBsZW4pCiAJCWdvdG8gZG9fY29uZmly bTsKIGJhY2tfZnJvbV9jb25maXJtOgogCi0JaWYgKGluZXQtPmhkcmluY2wpCisJaWYgKGhkcmlu Y2wpCiAJCWVyciA9IHJhd19zZW5kX2hkcmluYyhzaywgJmZsNCwgbXNnLCBsZW4sCiAJCQkJICAg ICAgJnJ0LCBtc2ctPm1zZ19mbGFncywgJmlwYy5zb2NrYyk7CiAKLS0gCjIuOS41CgoKRnJvbSA4 ZDVjNTExNDliN2Q0OTNiZDg3MmNhZmFjNWU4ODdmNTVjYWNiNWJhIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBUb2JpYXMgSm9yZGFuIDxUb2JpYXMuSm9yZGFuQGVsZWt0cm9iaXQuY29t PgpEYXRlOiBXZWQsIDYgRGVjIDIwMTcgMTU6MjM6MjMgKzAxMDAKU3ViamVjdDogW1BBVENIIDIw LzU4XSBuZXQ6IG12bWRpbzogZGlzYWJsZS91bnByZXBhcmUgY2xvY2tzIGluIEVQUk9CRV9ERUZF UgogY2FzZQoKWyBVcHN0cmVhbSBjb21taXQgNTg5YmYzMmYwOTg1MjA0MWZiZDNiN2NlMWE5ZTcw M2Y5NWMyMzBiYSBdCgphZGQgYXBwcm9wcmlhdGUgY2FsbHMgdG8gY2xrX2Rpc2FibGVfdW5wcmVw YXJlKCkgYnkganVtcGluZyB0byBvdXRfbWRpbwppbiBjYXNlIG9yaW9uX21kaW9fcHJvYmUoKSBy ZXR1cm5zIC1FUFJPQkVfREVGRVIuCgpGb3VuZCBieSBMaW51eCBEcml2ZXIgVmVyaWZpY2F0aW9u IHByb2plY3QgKGxpbnV4dGVzdGluZy5vcmcpLgoKRml4ZXM6IDNkNjA0ZGExZTk1NCAoIm5ldDog bXZtZGlvOiBnZXQgYW5kIGVuYWJsZSBvcHRpb25hbCBjbG9jayIpClNpZ25lZC1vZmYtYnk6IFRv YmlhcyBKb3JkYW4gPFRvYmlhcy5Kb3JkYW5AZWxla3Ryb2JpdC5jb20+ClJldmlld2VkLWJ5OiBB bmRyZXcgTHVubiA8YW5kcmV3QGx1bm4uY2g+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxs L212bWRpby5jIHwgMyArKy0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVs ZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212bWRp by5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdm1kaW8uYwppbmRleCBjOTc5ODIx Li4wNDk1NDg3IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212bWRp by5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZtZGlvLmMKQEAgLTM0NCw3 ICszNDQsOCBAQCBzdGF0aWMgaW50IG9yaW9uX21kaW9fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2Rl dmljZSAqcGRldikKIAkJCWRldi0+cmVncyArIE1WTURJT19FUlJfSU5UX01BU0spOwogCiAJfSBl bHNlIGlmIChkZXYtPmVycl9pbnRlcnJ1cHQgPT0gLUVQUk9CRV9ERUZFUikgewotCQlyZXR1cm4g LUVQUk9CRV9ERUZFUjsKKwkJcmV0ID0gLUVQUk9CRV9ERUZFUjsKKwkJZ290byBvdXRfbWRpbzsK IAl9CiAKIAlpZiAocGRldi0+ZGV2Lm9mX25vZGUpCi0tIAoyLjkuNQoKCkZyb20gODc4ZjY2NDAz MjU3MmViYWQwODRmYWI0YzRlZTZiYWExYjdjNTI2ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogVG9uZ2hhbyBaaGFuZyA8eGlhbmd4aWEubS55dWVAZ21haWwuY29tPgpEYXRlOiBGcmks IDIyIERlYyAyMDE3IDEwOjE1OjIwIC0wODAwClN1YmplY3Q6IFtQQVRDSCAyMS81OF0gc2N0cDog UmVwbGFjZSB1c2Ugb2Ygc29ja2V0c19hbGxvY2F0ZWQgd2l0aCBzcGVjaWZpZWQKIG1hY3JvLgoK WyBVcHN0cmVhbSBjb21taXQgOGNiMzhhNjAyNDc4ZTlmODA2NTcxZjY5MjBiMGEzMjk4YWFiZjA0 MiBdCgpUaGUgcGF0Y2goMTgwZDhjZDk0MmNlKSByZXBsYWNlcyBhbGwgdXNlcyBvZiBzdHJ1Y3Qg c29jayBmaWVsZHMnCm1lbW9yeV9wcmVzc3VyZSwgbWVtb3J5X2FsbG9jYXRlZCwgc29ja2V0c19h bGxvY2F0ZWQsIGFuZCBzeXNjdGxfbWVtCnRvIGFjY2Vzc29yIG1hY3Jvcy4gQnV0IHRoZSBzb2Nr ZXRzX2FsbG9jYXRlZCBmaWVsZCBvZiBzY3RwIHNvY2sgaXMKbm90IHJlcGxhY2VkIGF0IGFsbC4g VGhlbiByZXBsYWNlIGl0IG5vdyBmb3IgdW5pZnlpbmcgdGhlIGNvZGUuCgpGaXhlczogMTgwZDhj ZDk0MmNlICgiZm91bmRhdGlvbnMgb2YgcGVyLWNncm91cCBtZW1vcnkgcHJlc3N1cmUgY29udHJv bGxpbmcuIikKQ2M6IEdsYXViZXIgQ29zdGEgPGdsb21tZXJAcGFyYWxsZWxzLmNvbT4KU2lnbmVk LW9mZi1ieTogVG9uZ2hhbyBaaGFuZyA8emhhbmd0b25naGFvQGRpZGljaHV4aW5nLmNvbT4KU2ln bmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5l dC9zY3RwL3NvY2tldC5jIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCsp LCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9zY3RwL3NvY2tldC5jIGIvbmV0L3Nj dHAvc29ja2V0LmMKaW5kZXggZDYxNjNmNy4uMTk3NzIzOCAxMDA2NDQKLS0tIGEvbmV0L3NjdHAv c29ja2V0LmMKKysrIGIvbmV0L3NjdHAvc29ja2V0LmMKQEAgLTQ0MTMsNyArNDQxMyw3IEBAIHN0 YXRpYyBpbnQgc2N0cF9pbml0X3NvY2soc3RydWN0IHNvY2sgKnNrKQogCVNDVFBfREJHX09CSkNO VF9JTkMoc29jayk7CiAKIAlsb2NhbF9iaF9kaXNhYmxlKCk7Ci0JcGVyY3B1X2NvdW50ZXJfaW5j KCZzY3RwX3NvY2tldHNfYWxsb2NhdGVkKTsKKwlza19zb2NrZXRzX2FsbG9jYXRlZF9pbmMoc2sp OwogCXNvY2tfcHJvdF9pbnVzZV9hZGQobmV0LCBzay0+c2tfcHJvdCwgMSk7CiAKIAkvKiBOb3Ro aW5nIGNhbiBmYWlsIGFmdGVyIHRoaXMgYmxvY2ssIG90aGVyd2lzZQpAQCAtNDQ1Nyw3ICs0NDU3 LDcgQEAgc3RhdGljIHZvaWQgc2N0cF9kZXN0cm95X3NvY2soc3RydWN0IHNvY2sgKnNrKQogCX0K IAlzY3RwX2VuZHBvaW50X2ZyZWUoc3AtPmVwKTsKIAlsb2NhbF9iaF9kaXNhYmxlKCk7Ci0JcGVy Y3B1X2NvdW50ZXJfZGVjKCZzY3RwX3NvY2tldHNfYWxsb2NhdGVkKTsKKwlza19zb2NrZXRzX2Fs bG9jYXRlZF9kZWMoc2spOwogCXNvY2tfcHJvdF9pbnVzZV9hZGQoc29ja19uZXQoc2spLCBzay0+ c2tfcHJvdCwgLTEpOwogCWxvY2FsX2JoX2VuYWJsZSgpOwogfQotLSAKMi45LjUKCgpGcm9tIDhi NDkxODQ1YTMxMTA5MjkxODU0MzdkZTM4NTJiZTJkYTExNDJlMzIgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206ICJOaWtpdGEgVi4gU2hpcm9rb3YiIDx0ZWhuZXJkQGZiLmNvbT4KRGF0ZTog V2VkLCA2IERlYyAyMDE3IDE3OjE1OjQzIC0wODAwClN1YmplY3Q6IFtQQVRDSCAyMi81OF0gYWRk aW5nIG1pc3NpbmcgcmN1X3JlYWRfdW5sb2NrIGluIGlweGlwNl9yY3YKClsgVXBzdHJlYW0gY29t bWl0IDc0YzRiNjU2YzNkOTJlYzRjODI0ZWExYTRhZmQ3MjZiN2I2NTY4YzggXQoKY29tbWl0IDhk NzkyNjZiYzQ4YyAoImlwNl90dW5uZWw6IGFkZCBjb2xsZWN0X21kIG1vZGUgdG8gSVB2NiB0dW5u ZWxzIikKaW50cm9kdWNlZCBuZXcgZXhpdCBwb2ludCBpbiAgaXB4aXA2X3Jjdi4gaG93ZXZlciBy Y3VfcmVhZF91bmxvY2sgaXMKbWlzc2luZyB0aGVyZS4gdGhpcyBkaWZmIGlzIGZpeGluZyB0aGlz Cgp2MS0+djI6CiBpbnN0ZWFkIG9mIGRvaW5nIHJjdV9yZWFkX3VubG9jayBpbiBwbGFjZSwgd2Ug YXJlIGdvaW5nIHRvICJkcm9wIgogc2VjdGlvbiAodG8gcHJldmVudCBza2IgbGVha2FnZSkKCkZp eGVzOiA4ZDc5MjY2YmM0OGMgKCJpcDZfdHVubmVsOiBhZGQgY29sbGVjdF9tZCBtb2RlIHRvIElQ djYgdHVubmVscyIpClNpZ25lZC1vZmYtYnk6IE5pa2l0YSBWLiBTaGlyb2tvdiA8dGVobmVyZEBm Yi5jb20+CkFja2VkLWJ5OiBBbGV4ZWkgU3Rhcm92b2l0b3YgPGFzdEBrZXJuZWwub3JnPgpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0 L2lwdjYvaXA2X3R1bm5lbC5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCsp LCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvaXA2X3R1bm5lbC5jIGIvbmV0 L2lwdjYvaXA2X3R1bm5lbC5jCmluZGV4IGExYzI0NDQuLmVmOTU4ZDUgMTAwNjQ0Ci0tLSBhL25l dC9pcHY2L2lwNl90dW5uZWwuYworKysgYi9uZXQvaXB2Ni9pcDZfdHVubmVsLmMKQEAgLTkxMiw3 ICs5MTIsNyBAQCBzdGF0aWMgaW50IGlweGlwNl9yY3Yoc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTgg aXBwcm90bywKIAkJaWYgKHQtPnBhcm1zLmNvbGxlY3RfbWQpIHsKIAkJCXR1bl9kc3QgPSBpcHY2 X3R1bl9yeF9kc3Qoc2tiLCAwLCAwLCAwKTsKIAkJCWlmICghdHVuX2RzdCkKLQkJCQlyZXR1cm4g MDsKKwkJCQlnb3RvIGRyb3A7CiAJCX0KIAkJcmV0ID0gX19pcDZfdG5sX3Jjdih0LCBza2IsIHRw aSwgdHVuX2RzdCwgZHNjcF9lY25fZGVjYXBzdWxhdGUsCiAJCQkJICAgIGxvZ19lY25fZXJyb3Ip OwotLSAKMi45LjUKCgpGcm9tIDUzOGY5NTQ5M2JkNjYyNDA0MjA3MmQyMWY4ODI4Mzc5NmNjZWI5 MjcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFsZXhleSBLb2RhbmV2IDxhbGV4ZXku a29kYW5ldkBvcmFjbGUuY29tPgpEYXRlOiBXZWQsIDIwIERlYyAyMDE3IDE5OjM2OjAzICswMzAw ClN1YmplY3Q6IFtQQVRDSCAyMy81OF0gaXA2X2dyZTogZml4IGRldmljZSBmZWF0dXJlcyBmb3Ig aW9jdGwgc2V0dXAKClsgVXBzdHJlYW0gY29tbWl0IGU1YTkzMzZhZGIzMTdkYjU1ZWIzZmU4MjAw ODU2MDk2ZjNjNzExMDkgXQoKV2hlbiBpcDZncmUgaXMgY3JlYXRlZCB1c2luZyBpb2N0bCwgaXRz IGZlYXR1cmVzLCBzdWNoIGFzCnNjYXR0ZXItZ2F0aGVyLCBHU08gYW5kIHR4LWNoZWNrc3VtbWlu ZyB3aWxsIGJlIHR1cm5lZCBvZmY6CgogICMgaXAgLWYgaW5ldDYgdHVubmVsIGFkZCBncmU2IG1v ZGUgaXA2Z3JlIHJlbW90ZSBmZDAwOjoxCiAgIyBldGh0b29sIC1rIGdyZTYgKHRydW5jYXRlZCBv dXRwdXQpCiAgICB0eC1jaGVja3N1bW1pbmc6IG9mZgogICAgc2NhdHRlci1nYXRoZXI6IG9mZgog ICAgdGNwLXNlZ21lbnRhdGlvbi1vZmZsb2FkOiBvZmYKICAgIGdlbmVyaWMtc2VnbWVudGF0aW9u LW9mZmxvYWQ6IG9mZiBbcmVxdWVzdGVkIG9uXQoKQnV0IHdoZW4gbmV0bGluayBpcyB1c2VkLCB0 aGV5IHdpbGwgYmUgZW5hYmxlZDoKICAjIGlwIGxpbmsgYWRkIGdyZTYgdHlwZSBpcDZncmUgcmVt b3RlIGZkMDA6OjEKICAjIGV0aHRvb2wgLWsgZ3JlNiAodHJ1bmNhdGVkIG91dHB1dCkKICAgIHR4 LWNoZWNrc3VtbWluZzogb24KICAgIHNjYXR0ZXItZ2F0aGVyOiBvbgogICAgdGNwLXNlZ21lbnRh dGlvbi1vZmZsb2FkOiBvbgogICAgZ2VuZXJpYy1zZWdtZW50YXRpb24tb2ZmbG9hZDogb24KClRo aXMgcmVzdWx0cyBpbiBhIGxvc3Mgb2YgcGVyZm9ybWFuY2Ugd2hlbiBncmU2IGlzIGNyZWF0ZWQg dmlhIGlvY3RsLgpUaGUgaXNzdWUgd2FzIGZvdW5kIHdpdGggTFRQL2dyZSB0ZXN0cy4KCkZpeCBp dCBieSBtb3ZpbmcgdGhlIHNldHVwIG9mIGRldmljZSBmZWF0dXJlcyB0byBhIHNlcGFyYXRlIGZ1 bmN0aW9uCmFuZCBpbnZva2UgaXQgd2l0aCBuZG9faW5pdCBjYWxsYmFjayBiZWNhdXNlIGJvdGgg bmV0bGluayBhbmQgaW9jdGwKd2lsbCBldmVudHVhbGx5IGNhbGwgaXQgdmlhIHJlZ2lzdGVyX25l dGRldmljZSgpOgoKICAgcmVnaXN0ZXJfbmV0ZGV2aWNlKCkKICAgICAgIC0gbmRvX2luaXQoKSBj YWxsYmFjayAtPiBpcDZncmVfdHVubmVsX2luaXQoKSBvciBpcDZncmVfdGFwX2luaXQoKQogICAg ICAgICAgIC0gaXA2Z3JlX3R1bm5lbF9pbml0X2NvbW1vbigpCiAgICAgICAgICAgICAgICAtIGlw NmdyZV90bmxfaW5pdF9mZWF0dXJlcygpCgpUaGUgbW92ZWQgY29kZSBhbHNvIGNvbnRhaW5zIHR3 byBtaW5vciBzdHlsZSBmaXhlczoKICAqIHJlbW92ZWQgbmVlZGxlc3MgdGFiIGZyb20gR1JFNl9G RUFUVVJFUyBvbiBORVRJRl9GX0hJR0hETUEgbGluZS4KICAqIGZpeGVkIHRoZSBpc3N1ZSByZXBv cnRlZCBieSBjaGVja3BhdGNoOiAiVW5uZWNlc3NhcnkgcGFyZW50aGVzZXMgYXJvdW5kCiAgICAn bnQtPmVuY2FwLnR5cGUgPT0gVFVOTkVMX0VOQ0FQX05PTkUnIgoKRml4ZXM6IGFjNGViMDA5ZTQ3 NyAoImlwNmdyZTogQWRkIHN1cHBvcnQgZm9yIGJhc2ljIG9mZmxvYWRzIG9mZmxvYWRzIGV4Y2x1 ZGluZyBHU08iKQpTaWduZWQtb2ZmLWJ5OiBBbGV4ZXkgS29kYW5ldiA8YWxleGV5LmtvZGFuZXZA b3JhY2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxv ZnQubmV0PgotLS0KIG5ldC9pcHY2L2lwNl9ncmUuYyB8IDU3ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDMyIGlu c2VydGlvbnMoKyksIDI1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2lwNl9n cmUuYyBiL25ldC9pcHY2L2lwNl9ncmUuYwppbmRleCA1ZDZiZWUwLi43YTJkZjY2IDEwMDY0NAot LS0gYS9uZXQvaXB2Ni9pcDZfZ3JlLmMKKysrIGIvbmV0L2lwdjYvaXA2X2dyZS5jCkBAIC0xMDIw LDYgKzEwMjAsMzYgQEAgc3RhdGljIHZvaWQgaXA2Z3JlX3R1bm5lbF9zZXR1cChzdHJ1Y3QgbmV0 X2RldmljZSAqZGV2KQogCWV0aF9yYW5kb21fYWRkcihkZXYtPnBlcm1fYWRkcik7CiB9CiAKKyNk ZWZpbmUgR1JFNl9GRUFUVVJFUyAoTkVUSUZfRl9TRyB8CQlcCisJCSAgICAgICBORVRJRl9GX0ZS QUdMSVNUIHwJXAorCQkgICAgICAgTkVUSUZfRl9ISUdIRE1BIHwJXAorCQkgICAgICAgTkVUSUZf Rl9IV19DU1VNKQorCitzdGF0aWMgdm9pZCBpcDZncmVfdG5sX2luaXRfZmVhdHVyZXMoc3RydWN0 IG5ldF9kZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3QgaXA2X3RubCAqbnQgPSBuZXRkZXZfcHJpdihk ZXYpOworCisJZGV2LT5mZWF0dXJlcwkJfD0gR1JFNl9GRUFUVVJFUzsKKwlkZXYtPmh3X2ZlYXR1 cmVzCXw9IEdSRTZfRkVBVFVSRVM7CisKKwlpZiAoIShudC0+cGFybXMub19mbGFncyAmIFRVTk5F TF9TRVEpKSB7CisJCS8qIFRDUCBvZmZsb2FkIHdpdGggR1JFIFNFUSBpcyBub3Qgc3VwcG9ydGVk LCBub3IKKwkJICogY2FuIHdlIHN1cHBvcnQgMiBsZXZlbHMgb2Ygb3V0ZXIgaGVhZGVycyByZXF1 aXJpbmcKKwkJICogYW4gdXBkYXRlLgorCQkgKi8KKwkJaWYgKCEobnQtPnBhcm1zLm9fZmxhZ3Mg JiBUVU5ORUxfQ1NVTSkgfHwKKwkJICAgIG50LT5lbmNhcC50eXBlID09IFRVTk5FTF9FTkNBUF9O T05FKSB7CisJCQlkZXYtPmZlYXR1cmVzICAgIHw9IE5FVElGX0ZfR1NPX1NPRlRXQVJFOworCQkJ ZGV2LT5od19mZWF0dXJlcyB8PSBORVRJRl9GX0dTT19TT0ZUV0FSRTsKKwkJfQorCisJCS8qIENh biB1c2UgYSBsb2NrbGVzcyB0cmFuc21pdCwgdW5sZXNzIHdlIGdlbmVyYXRlCisJCSAqIG91dHB1 dCBzZXF1ZW5jZXMKKwkJICovCisJCWRldi0+ZmVhdHVyZXMgfD0gTkVUSUZfRl9MTFRYOworCX0K K30KKwogc3RhdGljIGludCBpcDZncmVfdHVubmVsX2luaXRfY29tbW9uKHN0cnVjdCBuZXRfZGV2 aWNlICpkZXYpCiB7CiAJc3RydWN0IGlwNl90bmwgKnR1bm5lbDsKQEAgLTEwNTQsNiArMTA4NCw4 IEBAIHN0YXRpYyBpbnQgaXA2Z3JlX3R1bm5lbF9pbml0X2NvbW1vbihzdHJ1Y3QgbmV0X2Rldmlj ZSAqZGV2KQogCWlmICghKHR1bm5lbC0+cGFybXMuZmxhZ3MgJiBJUDZfVE5MX0ZfSUdOX0VOQ0FQ X0xJTUlUKSkKIAkJZGV2LT5tdHUgLT0gODsKIAorCWlwNmdyZV90bmxfaW5pdF9mZWF0dXJlcyhk ZXYpOworCiAJcmV0dXJuIDA7CiB9CiAKQEAgLTEzMDIsMTEgKzEzMzQsNiBAQCBzdGF0aWMgY29u c3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIGlwNmdyZV90YXBfbmV0ZGV2X29wcyA9IHsKIAkubmRv X2dldF9pZmxpbmsgPSBpcDZfdG5sX2dldF9pZmxpbmssCiB9OwogCi0jZGVmaW5lIEdSRTZfRkVB VFVSRVMgKE5FVElGX0ZfU0cgfAkJXAotCQkgICAgICAgTkVUSUZfRl9GUkFHTElTVCB8CVwKLQkJ ICAgICAgIE5FVElGX0ZfSElHSERNQSB8CQlcCi0JCSAgICAgICBORVRJRl9GX0hXX0NTVU0pCi0K IHN0YXRpYyB2b2lkIGlwNmdyZV90YXBfc2V0dXAoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIHsK IApAQCAtMTM4NiwyNiArMTQxMyw2IEBAIHN0YXRpYyBpbnQgaXA2Z3JlX25ld2xpbmsoc3RydWN0 IG5ldCAqc3JjX25ldCwgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIAludC0+bmV0ID0gZGV2X25l dChkZXYpOwogCWlwNmdyZV90bmxfbGlua19jb25maWcobnQsICF0YltJRkxBX01UVV0pOwogCi0J ZGV2LT5mZWF0dXJlcwkJfD0gR1JFNl9GRUFUVVJFUzsKLQlkZXYtPmh3X2ZlYXR1cmVzCXw9IEdS RTZfRkVBVFVSRVM7Ci0KLQlpZiAoIShudC0+cGFybXMub19mbGFncyAmIFRVTk5FTF9TRVEpKSB7 Ci0JCS8qIFRDUCBvZmZsb2FkIHdpdGggR1JFIFNFUSBpcyBub3Qgc3VwcG9ydGVkLCBub3IKLQkJ ICogY2FuIHdlIHN1cHBvcnQgMiBsZXZlbHMgb2Ygb3V0ZXIgaGVhZGVycyByZXF1aXJpbmcKLQkJ ICogYW4gdXBkYXRlLgotCQkgKi8KLQkJaWYgKCEobnQtPnBhcm1zLm9fZmxhZ3MgJiBUVU5ORUxf Q1NVTSkgfHwKLQkJICAgIChudC0+ZW5jYXAudHlwZSA9PSBUVU5ORUxfRU5DQVBfTk9ORSkpIHsK LQkJCWRldi0+ZmVhdHVyZXMgICAgfD0gTkVUSUZfRl9HU09fU09GVFdBUkU7Ci0JCQlkZXYtPmh3 X2ZlYXR1cmVzIHw9IE5FVElGX0ZfR1NPX1NPRlRXQVJFOwotCQl9Ci0KLQkJLyogQ2FuIHVzZSBh IGxvY2tsZXNzIHRyYW5zbWl0LCB1bmxlc3Mgd2UgZ2VuZXJhdGUKLQkJICogb3V0cHV0IHNlcXVl bmNlcwotCQkgKi8KLQkJZGV2LT5mZWF0dXJlcyB8PSBORVRJRl9GX0xMVFg7Ci0JfQotCiAJZXJy ID0gcmVnaXN0ZXJfbmV0ZGV2aWNlKGRldik7CiAJaWYgKGVycikKIAkJZ290byBvdXQ7Ci0tIAoy LjkuNQoKCkZyb20gMmQ1ODg5NDY4ZjkwN2VjNGE5MjA1ZGJjYzliMWNjNTZjY2UxNjBkOCBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSWRvIFNjaGltbWVsIDxpZG9zY2hAbWVsbGFub3gu Y29tPgpEYXRlOiBXZWQsIDIwIERlYyAyMDE3IDE5OjM0OjE5ICswMjAwClN1YmplY3Q6IFtQQVRD SCAyNC81OF0gaXB2NDogRml4IHVzZS1hZnRlci1mcmVlIHdoZW4gZmx1c2hpbmcgRklCIHRhYmxl cwoKWyBVcHN0cmVhbSBjb21taXQgYjQ2ODFjMjgyOWUyNDk0M2FhZGQxYTdiYjNhMzBkNDFkMGEy MDA1MCBdCgpTaW5jZSBjb21taXQgMGRkY2Y0M2Q1ZDRhICgiaXB2NDogRklCIExvY2FsL01BSU4g dGFibGUgY29sbGFwc2UiKSB0aGUKbG9jYWwgdGFibGUgdXNlcyB0aGUgc2FtZSB0cmllIGFsbG9j YXRlZCBmb3IgdGhlIG1haW4gdGFibGUgd2hlbiBjdXN0b20KcnVsZXMgYXJlIG5vdCBpbiB1c2Uu CgpXaGVuIGEgbmV0IG5hbWVzcGFjZSBpcyBkaXNtYW50bGVkLCB0aGUgbWFpbiB0YWJsZSBpcyBm bHVzaGVkIGFuZCBmcmVlZAoodmlhIGFuIFJDVSBjYWxsYmFjaykgYmVmb3JlIHRoZSBsb2NhbCB0 YWJsZS4gSW4gY2FzZSB0aGUgY2FsbGJhY2sgaXMKaW52b2tlZCBiZWZvcmUgdGhlIGxvY2FsIHRh YmxlIGlzIGl0ZXJhdGVkLCBhIHVzZS1hZnRlci1mcmVlIGNhbiBvY2N1ci4KCkZpeCB0aGlzIGJ5 IGl0ZXJhdGluZyBvdmVyIHRoZSBGSUIgdGFibGVzIGluIHJldmVyc2Ugb3JkZXIsIHNvIHRoYXQg dGhlCm1haW4gdGFibGUgaXMgYWx3YXlzIGZyZWVkIGFmdGVyIHRoZSBsb2NhbCB0YWJsZS4KCnYz OiBSZXdvcmRlZCBjb21tZW50IGFjY29yZGluZyB0byBBbGV4J3Mgc3VnZ2VzdGlvbi4KdjI6IEFk ZCBhIGNvbW1lbnQgdG8gbWFrZSB0aGUgZml4IG1vcmUgZXhwbGljaXQgcGVyIERhdmUncyBhbmQg QWxleCdzCmZlZWRiYWNrLgoKRml4ZXM6IDBkZGNmNDNkNWQ0YSAoImlwdjQ6IEZJQiBMb2NhbC9N QUlOIHRhYmxlIGNvbGxhcHNlIikKU2lnbmVkLW9mZi1ieTogSWRvIFNjaGltbWVsIDxpZG9zY2hA bWVsbGFub3guY29tPgpSZXBvcnRlZC1ieTogRmVuZ2d1YW5nIFd1IDxmZW5nZ3Vhbmcud3VAaW50 ZWwuY29tPgpBY2tlZC1ieTogQWxleGFuZGVyIER1eWNrIDxhbGV4YW5kZXIuaC5kdXlja0BpbnRl bC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBuZXQvaXB2NC9maWJfZnJvbnRlbmQuYyB8IDkgKysrKysrKy0tCiAxIGZpbGUgY2hh bmdlZCwgNyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9p cHY0L2ZpYl9mcm9udGVuZC5jIGIvbmV0L2lwdjQvZmliX2Zyb250ZW5kLmMKaW5kZXggMzc4MTlh Yi4uZDcyODc0MSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvZmliX2Zyb250ZW5kLmMKKysrIGIvbmV0 L2lwdjQvZmliX2Zyb250ZW5kLmMKQEAgLTEyNzQsMTQgKzEyNzQsMTkgQEAgc3RhdGljIGludCBf X25ldF9pbml0IGlwX2ZpYl9uZXRfaW5pdChzdHJ1Y3QgbmV0ICpuZXQpCiAKIHN0YXRpYyB2b2lk IGlwX2ZpYl9uZXRfZXhpdChzdHJ1Y3QgbmV0ICpuZXQpCiB7Ci0JdW5zaWduZWQgaW50IGk7CisJ aW50IGk7CiAKIAlydG5sX2xvY2soKTsKICNpZmRlZiBDT05GSUdfSVBfTVVMVElQTEVfVEFCTEVT CiAJUkNVX0lOSVRfUE9JTlRFUihuZXQtPmlwdjQuZmliX21haW4sIE5VTEwpOwogCVJDVV9JTklU X1BPSU5URVIobmV0LT5pcHY0LmZpYl9kZWZhdWx0LCBOVUxMKTsKICNlbmRpZgotCWZvciAoaSA9 IDA7IGkgPCBGSUJfVEFCTEVfSEFTSFNaOyBpKyspIHsKKwkvKiBEZXN0cm95IHRoZSB0YWJsZXMg aW4gcmV2ZXJzZSBvcmRlciB0byBndWFyYW50ZWUgdGhhdCB0aGUKKwkgKiBsb2NhbCB0YWJsZSwg SUQgMjU1LCBpcyBkZXN0cm95ZWQgYmVmb3JlIHRoZSBtYWluIHRhYmxlLCBJRAorCSAqIDI1NC4g VGhpcyBpcyBuZWNlc3NhcnkgYXMgdGhlIGxvY2FsIHRhYmxlIG1heSBjb250YWluCisJICogcmVm ZXJlbmNlcyB0byBkYXRhIGNvbnRhaW5lZCBpbiB0aGUgbWFpbiB0YWJsZS4KKwkgKi8KKwlmb3Ig KGkgPSBGSUJfVEFCTEVfSEFTSFNaIC0gMTsgaSA+PSAwOyBpLS0pIHsKIAkJc3RydWN0IGhsaXN0 X2hlYWQgKmhlYWQgPSAmbmV0LT5pcHY0LmZpYl90YWJsZV9oYXNoW2ldOwogCQlzdHJ1Y3QgaGxp c3Rfbm9kZSAqdG1wOwogCQlzdHJ1Y3QgZmliX3RhYmxlICp0YjsKLS0gCjIuOS41CgoKRnJvbSAz M2NkNjY2ODFhNTA4ZmE1YTVlMDZjZjUwNWM3ZTNkZWViMWMxODI2IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBOaWtvbGF5IEFsZWtzYW5kcm92IDxuaWtvbGF5QGN1bXVsdXNuZXR3b3Jr cy5jb20+CkRhdGU6IE1vbiwgMTggRGVjIDIwMTcgMTc6MzU6MDkgKzAyMDAKU3ViamVjdDogW1BB VENIIDI1LzU4XSBuZXQ6IGJyaWRnZTogZml4IGVhcmx5IGNhbGwgdG8gYnJfc3RwX2NoYW5nZV9i cmlkZ2VfaWQKIGFuZCBwbHVnIG5ld2xpbmsgbGVha3MKClsgVXBzdHJlYW0gY29tbWl0IDg0YWVi NDM3YWI5OGEyYmNlM2Q0YjIxMTFjNzk3MjNhZWRmY2ViMzMgXQoKVGhlIGVhcmx5IGNhbGwgdG8g YnJfc3RwX2NoYW5nZV9icmlkZ2VfaWQgaW4gYnJpZGdlJ3MgbmV3bGluayBjYW4gY2F1c2UKYSBt ZW1vcnkgbGVhayBpZiBhbiBlcnJvciBvY2N1cnMgZHVyaW5nIHRoZSBuZXdsaW5rIGJlY2F1c2Ug dGhlIGZkYgplbnRyaWVzIGFyZSBub3QgY2xlYW5lZCB1cCBpZiBhIGRpZmZlcmVudCBsbGFkZHIg d2FzIHNwZWNpZmllZCwgYWxzbwphbm90aGVyIG1pbm9yIGlzc3VlIGlzIHRoYXQgaXQgZ2VuZXJh dGVzIGZkYiBub3RpZmljYXRpb25zIHdpdGgKaWZpbmRleCA9IDAuIEFub3RoZXIgdW5yZWxhdGVk IG1lbW9yeSBsZWFrIGlzIHRoZSBicmlkZ2Ugc3lzZnMgZW50cmllcwp3aGljaCBnZXQgYWRkZWQg b24gTkVUREVWX1JFR0lTVEVSIGV2ZW50LCBidXQgYXJlIG5vdCBjbGVhbmVkIHVwIGluIHRoZQpu ZXdsaW5rIGVycm9yIHBhdGguIFRvIHJlbW92ZSB0aGlzIHNwZWNpYWwgY2FzZSB0aGUgY2FsbCB0 bwpicl9zdHBfY2hhbmdlX2JyaWRnZV9pZCBpcyBkb25lIGFmdGVyIG5ldGRldiByZWdpc3RlciBh bmQgd2UgY2xlYW51cCB0aGUKYnJpZGdlIG9uIGNoYW5nZWxpbmsgZXJyb3IgdmlhIGJyX2Rldl9k ZWxldGUgdG8gcGx1ZyBhbGwgbGVha3MuCgpUaGlzIHBhdGNoIG1ha2VzIG5ldGxpbmsgYnJpZGdl IGRlc3RydWN0aW9uIG9uIG5ld2xpbmsgZXJyb3IgdGhlIHNhbWUgYXMKZGVsbGluayBhbmQgaW9j dGwgZGVsIHdoaWNoIGlzIG5lY2Vzc2FyeSBzaW5jZSBhdCB0aGF0IHBvaW50IHdlIGhhdmUgYQpm dWxseSBpbml0aWFsaXplZCBicmlkZ2UgZGV2aWNlLgoKVG8gcmVwcm9kdWNlIHRoZSBpc3N1ZToK JCBpcCBsIGFkZCBicjAgYWRkcmVzcyAwMDoxMToyMjozMzo0NDo1NSB0eXBlIGJyaWRnZSBncm91 cF9md2RfbWFzayAxClJUTkVUTElOSyBhbnN3ZXJzOiBJbnZhbGlkIGFyZ3VtZW50CgokIHJtbW9k IGJyaWRnZQpbIDE4MjIuMTQyNTI1XSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpbIDE4MjIuMTQzNjQw XSBCVUcgYnJpZGdlX2ZkYl9jYWNoZSAoVGFpbnRlZDogRyAgICAgICAgICAgTyAgICApOiBPYmpl Y3RzIHJlbWFpbmluZyBpbiBicmlkZ2VfZmRiX2NhY2hlIG9uIF9fa21lbV9jYWNoZV9zaHV0ZG93 bigpClsgMTgyMi4xNDQ4MjFdIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpbIDE4MjIuMTQ1OTkwXSBE aXNhYmxpbmcgbG9jayBkZWJ1Z2dpbmcgZHVlIHRvIGtlcm5lbCB0YWludApbIDE4MjIuMTQ2NzMy XSBJTkZPOiBTbGFiIDB4MDAwMDAwMDA5MmE4NDRiMiBvYmplY3RzPTMyIHVzZWQ9MiBmcD0weDAw MDAwMDAwZmVmMDExYjAgZmxhZ3M9MHgxZmZmZjgwMDAwMDAxMDAKWyAxODIyLjE0NzcwMF0gQ1BV OiAyIFBJRDogMTM1ODQgQ29tbTogcm1tb2QgVGFpbnRlZDogRyAgICBCICAgICAgTyAgICAgNC4x NS4wLXJjMisgIzg3ClsgMTgyMi4xNDg1NzhdIEhhcmR3YXJlIG5hbWU6IFFFTVUgU3RhbmRhcmQg UEMgKGk0NDBGWCArIFBJSVgsIDE5OTYpLCBCSU9TIDEuNy41LTIwMTQwNTMxXzA4MzAzMC1nYW5k YWxmIDA0LzAxLzIwMTQKWyAxODIyLjE1MDAwOF0gQ2FsbCBUcmFjZToKWyAxODIyLjE1MDUxMF0g IGR1bXBfc3RhY2srMHg3OC8weGE5ClsgMTgyMi4xNTExNTZdICBzbGFiX2VycisweGIxLzB4ZDMK WyAxODIyLjE1MTgzNF0gID8gX19rbWFsbG9jKzB4MWJiLzB4MWNlClsgMTgyMi4xNTI1NDZdICBf X2ttZW1fY2FjaGVfc2h1dGRvd24rMHgxNTEvMHgyOGIKWyAxODIyLjE1MzM5NV0gIHNodXRkb3du X2NhY2hlKzB4MTMvMHgxNDQKWyAxODIyLjE1NDEyNl0gIGttZW1fY2FjaGVfZGVzdHJveSsweDFj MC8weDFmYgpbIDE4MjIuMTU0NjY5XSAgU3lTX2RlbGV0ZV9tb2R1bGUrMHgxOTQvMHgyNDQKWyAx ODIyLjE1NTE5OV0gID8gdHJhY2VfaGFyZGlycXNfb25fdGh1bmsrMHgxYS8weDFjClsgMTgyMi4x NTU3NzNdICBlbnRyeV9TWVNDQUxMXzY0X2Zhc3RwYXRoKzB4MjMvMHg5YQpbIDE4MjIuMTU2MzQz XSBSSVA6IDAwMzM6MHg3ZjkyOWJkMzhiMTcKWyAxODIyLjE1Njg1OV0gUlNQOiAwMDJiOjAwMDA3 ZmZkMTYwZTlhOTggRUZMQUdTOiAwMDAwMDIwMiBPUklHX1JBWDogMDAwMDAwMDAwMDAwMDBiMApb IDE4MjIuMTU3NzI4XSBSQVg6IGZmZmZmZmZmZmZmZmZmZGEgUkJYOiAwMDAwNTU3ODMxNmJhMDkw IFJDWDogMDAwMDdmOTI5YmQzOGIxNwpbIDE4MjIuMTU4NDIyXSBSRFg6IDAwMDA3ZjkyOWJkOWVj NjAgUlNJOiAwMDAwMDAwMDAwMDAwODAwIFJESTogMDAwMDU1NzgzMTZiYTBmMApbIDE4MjIuMTU5 MTE0XSBSQlA6IDAwMDAwMDAwMDAwMDAwMDMgUjA4OiAwMDAwN2Y5MjliZmY1ZjIwIFIwOTogMDAw MDdmZmQxNjBlOGExMQpbIDE4MjIuMTU5ODA4XSBSMTA6IDAwMDA3ZmZkMTYwZTk4NjAgUjExOiAw MDAwMDAwMDAwMDAwMjAyIFIxMjogMDAwMDdmZmQxNjBlOGE4MApbIDE4MjIuMTYwNTEzXSBSMTM6 IDAwMDAwMDAwMDAwMDAwMDAgUjE0OiAwMDAwMDAwMDAwMDAwMDAwIFIxNTogMDAwMDU1NzgzMTZi YTA5MApbIDE4MjIuMTYxMjc4XSBJTkZPOiBPYmplY3QgMHgwMDAwMDAwMDc2NDVkZTI5IEBvZmZz ZXQ9MApbIDE4MjIuMTYxNjY2XSBJTkZPOiBPYmplY3QgMHgwMDAwMDAwMGQ1ZGYyYWI1IEBvZmZz ZXQ9MTI4CgpGaXhlczogMzAzMTNhM2Q1Nzk0ICgiYnJpZGdlOiBIYW5kbGUgSUZMQV9BRERSRVNT IGNvcnJlY3RseSB3aGVuIGNyZWF0aW5nIGJyaWRnZSBkZXZpY2UiKQpGaXhlczogNWI4ZDU0Mjlk YWEwICgiYnJpZGdlOiBuZXRsaW5rOiByZWdpc3RlciBuZXRkZXZpY2UgYmVmb3JlIGV4ZWN1dGlu ZyBjaGFuZ2VsaW5rIikKU2lnbmVkLW9mZi1ieTogTmlrb2xheSBBbGVrc2FuZHJvdiA8bmlrb2xh eUBjdW11bHVzbmV0d29ya3MuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2JyaWRnZS9icl9uZXRsaW5rLmMgfCAxMSArKysr KystLS0tLQogMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9uZXQvYnJpZGdlL2JyX25ldGxpbmsuYyBiL25ldC9icmlkZ2UvYnJfbmV0 bGluay5jCmluZGV4IGRlMjE1MjcuLjA4MTkwZGIgMTAwNjQ0Ci0tLSBhL25ldC9icmlkZ2UvYnJf bmV0bGluay5jCisrKyBiL25ldC9icmlkZ2UvYnJfbmV0bGluay5jCkBAIC0xMjIzLDE5ICsxMjIz LDIwIEBAIHN0YXRpYyBpbnQgYnJfZGV2X25ld2xpbmsoc3RydWN0IG5ldCAqc3JjX25ldCwgc3Ry dWN0IG5ldF9kZXZpY2UgKmRldiwKIAlzdHJ1Y3QgbmV0X2JyaWRnZSAqYnIgPSBuZXRkZXZfcHJp dihkZXYpOwogCWludCBlcnI7CiAKKwllcnIgPSByZWdpc3Rlcl9uZXRkZXZpY2UoZGV2KTsKKwlp ZiAoZXJyKQorCQlyZXR1cm4gZXJyOworCiAJaWYgKHRiW0lGTEFfQUREUkVTU10pIHsKIAkJc3Bp bl9sb2NrX2JoKCZici0+bG9jayk7CiAJCWJyX3N0cF9jaGFuZ2VfYnJpZGdlX2lkKGJyLCBubGFf ZGF0YSh0YltJRkxBX0FERFJFU1NdKSk7CiAJCXNwaW5fdW5sb2NrX2JoKCZici0+bG9jayk7CiAJ fQogCi0JZXJyID0gcmVnaXN0ZXJfbmV0ZGV2aWNlKGRldik7Ci0JaWYgKGVycikKLQkJcmV0dXJu IGVycjsKLQogCWVyciA9IGJyX2NoYW5nZWxpbmsoZGV2LCB0YiwgZGF0YSwgZXh0YWNrKTsKIAlp ZiAoZXJyKQotCQl1bnJlZ2lzdGVyX25ldGRldmljZShkZXYpOworCQlicl9kZXZfZGVsZXRlKGRl diwgTlVMTCk7CisKIAlyZXR1cm4gZXJyOwogfQogCi0tIAoyLjkuNQoKCkZyb20gN2QzZTQ3MGJm MDIxM2YyMzkwYThiMDIxZmIyOGRjYTA0OTI5MDYzMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogIkVyaWMgVy4gQmllZGVybWFuIiA8ZWJpZWRlcm1AeG1pc3Npb24uY29tPgpEYXRlOiBU dWUsIDE5IERlYyAyMDE3IDExOjI3OjU2IC0wNjAwClN1YmplY3Q6IFtQQVRDSCAyNi81OF0gbmV0 OiBGaXggZG91YmxlIGZyZWUgYW5kIG1lbW9yeSBjb3JydXB0aW9uIGluCiBnZXRfbmV0X25zX2J5 X2lkKCkKClsgVXBzdHJlYW0gY29tbWl0IDIxYjU5NDQzNTAwNTJkMjU4M2U4MmRkNTliMTlhOWJh OTRhMDA3ZjAgXQoKKEkgY2FuIHRyaXZpYWxseSB2ZXJpZnkgdGhhdCB0aGF0IGlkcl9yZW1vdmUg aW4gY2xlYW51cF9uZXQgaGFwcGVucwogYWZ0ZXIgdGhlIG5ldHdvcmsgbmFtZXNwYWNlIGNvdW50 IGhhcyBkcm9wcGVkIHRvIHplcm8gLS1FV0IpCgpGdW5jdGlvbiBnZXRfbmV0X25zX2J5X2lkKCkg ZG9lcyBub3QgY2hlY2sgZm9yIG5ldDo6Y291bnQKYWZ0ZXIgaXQgaGFzIGZvdW5kIGEgcGVlciBp biBuZXRuc19pZHMgaWRyLgoKSXQgbWF5IGRlcmVmZXJlbmNlIGEgcGVlciwgYWZ0ZXIgaXRzIGNv dW50IGhhcyBhbHJlYWR5IGJlZW4KZmluYWx5IGRlY3JlbWVudGVkLiBUaGlzIGxlYWRzIHRvIGRv dWJsZSBmcmVlIGFuZCBtZW1vcnkKY29ycnVwdGlvbjoKCnB1dF9uZXQocGVlcikgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHJ0bmxfbG9jaygpCmF0b21pY19kZWNfYW5kX3Rlc3Qo JnBlZXItPmNvdW50KSBbY291bnQ9MF0gICAgIC4uLgpfX3B1dF9uZXQocGVlcikgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBnZXRfbmV0X25zX2J5X2lkKG5ldCwgaWQpCiAgc3Bpbl9s b2NrKCZjbGVhbnVwX2xpc3RfbG9jaykKICBsaXN0X2FkZCgmbmV0LT5jbGVhbnVwX2xpc3QsICZj bGVhbnVwX2xpc3QpCiAgc3Bpbl91bmxvY2soJmNsZWFudXBfbGlzdF9sb2NrKQpxdWV1ZV93b3Jr KCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlZXIgPSBpZHJfZmluZCgm bmV0LT5uZXRuc19pZHMsIGlkKQogIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGdldF9uZXQocGVlcikgW2NvdW50PTFdCiAgfCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uCiAgfCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVzZSBhZnRlciBmaW5hbCBwdXQpCiAgdiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uCiAgY2xlYW51cF9u ZXQoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uCiAgICBzcGluX2xvY2so JmNsZWFudXBfbGlzdF9sb2NrKSAgICAgICAgICAgICAgICAgLi4uCiAgICBsaXN0X3JlcGxhY2Vf aW5pdCgmY2xlYW51cF9saXN0LCAuLikgICAgICAgICAgLi4uCiAgICBzcGluX3VubG9jaygmY2xl YW51cF9saXN0X2xvY2spICAgICAgICAgICAgICAgLi4uCiAgICAuLi4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uCiAgICAuLi4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcHV0X25ldChwZWVyKQogICAgLi4uICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXRvbWljX2RlY19hbmRfdGVzdCgmcGVl ci0+Y291bnQpIFtjb3VudD0wXQogICAgLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzcGluX2xvY2soJmNsZWFudXBfbGlzdF9sb2NrKQogICAgLi4uICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0X2FkZCgmbmV0 LT5jbGVhbnVwX2xpc3QsICZjbGVhbnVwX2xpc3QpCiAgICAuLi4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwaW5fdW5sb2NrKCZjbGVhbnVwX2xpc3RfbG9j aykKICAgIC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1 ZXVlX3dvcmsoKQogICAgLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHJ0bmxfdW5sb2NrKCkKICAgIHJ0bmxfbG9jaygpICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAuLi4KICAgIGZvcl9lYWNoX25ldCh0bXApIHsgICAgICAgICAgICAgICAgICAg ICAgICAgICAuLi4KICAgICAgaWQgPSBfX3BlZXJuZXQyaWQodG1wLCBwZWVyKSAgICAgICAgICAg ICAgICAuLi4KICAgICAgc3Bpbl9sb2NrX2lycSgmdG1wLT5uc2lkX2xvY2spICAgICAgICAgICAg ICAuLi4KICAgICAgaWRyX3JlbW92ZSgmdG1wLT5uZXRuc19pZHMsIGlkKSAgICAgICAgICAgICAu Li4KICAgICAgLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4K ICAgICAgbmV0X2Ryb3BfbnMoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4KCW5l dF9mcmVlKHBlZXIpICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLgogICAgfSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLgogIHwKICB2CiAgY2xlYW51 cF9uZXQoKQogICAgLi4uCiAgICAoU2Vjb25kIGZyZWUgb2YgcGVlcikKCkFsc28sIHB1dF9uZXQo KSBvbiB0aGUgcmlnaHQgY3B1IG1heSByZW9yZGVyIHdpdGggbGVmdCdzIGNwdQpsaXN0X3JlcGxh Y2VfaW5pdCgmY2xlYW51cF9saXN0LCAuLiksIGFuZCB0aGVuIGNsZWFudXBfbGlzdAp3aWxsIGJl IGNvcnJ1cHRlZC4KClNpbmNlIGNsZWFudXBfbmV0KCkgaXMgZXhlY3V0ZWQgaW4gd29ya2VyIHRo cmVhZCwgd2hpbGUKcHV0X25ldChwZWVyKSBjYW4gaGFwcGVuIGV2ZXJ5d2hlcmUsIHRoZXJlIHNo b3VsZCBiZQplbm91Z2ggdGltZSBmb3IgY29uY3VycmVudCBnZXRfbmV0X25zX2J5X2lkKCkgdG8g cGljawp0aGUgcGVlciB1cCwgYW5kIHRoZSByYWNlIGRvZXMgbm90IHNlZW0gdG8gYmUgdW5saWtl bHkuClRoZSBwYXRjaCBmaXhlcyB0aGUgcHJvYmxlbSBpbiBzdGFuZGFyZCB3YXkuCgooQWxzbywg dGhlcmUgaXMgcG9zc2libGUgcHJvYmxlbSBpbiBwZWVybmV0MmlkX2FsbG9jKCksIHdoaWNoIHJl cXVpcmVzCmNoZWNrIGZvciBuZXQ6OmNvdW50IHVuZGVyIG5zaWRfbG9jayBhbmQgbWF5YmVfZ2V0 X25ldChwZWVyKSwgYnV0CmluIGN1cnJlbnQgc3RhYmxlIGtlcm5lbCBpdCdzIHVzZWQgdW5kZXIg cnRubF9sb2NrKCkgYW5kIGl0IGhhcyB0byBiZQpzYWZlLiBPcGVuc3dpdGNoIGJlZ3VuIHRvIHVz ZSBwZWVybmV0MmlkX2FsbG9jKCksIGFuZCBwb3NzaWJseSBpdCBzaG91bGQKYmUgZml4ZWQgdG9v LiBXaGlsZSB0aGlzIGlzIG5vdCBpbiBzdGFibGUga2VybmVsIHlldCwgc28gSSdsbCBzZW5kCmEg c2VwYXJhdGUgbWVzc2FnZSB0byBuZXRkZXZAIGxhdGVyKS4KCkNjOiBOaWNvbGFzIERpY2h0ZWwg PG5pY29sYXMuZGljaHRlbEA2d2luZC5jb20+ClNpZ25lZC1vZmYtYnk6IEtpcmlsbCBUa2hhaSA8 a3RraGFpQHZpcnR1b3p6by5jb20+CkZpeGVzOiAwYzdhZWNkNGJkZTQgIm5ldG5zOiBhZGQgcnRu bCBjbWQgdG8gYWRkIGFuZCBnZXQgcGVlciBuZXRucyBpZHMiClJldmlld2VkLWJ5OiBBbmRyZXkg UnlhYmluaW4gPGFyeWFiaW5pbkB2aXJ0dW96em8uY29tPgpSZXZpZXdlZC1ieTogIkVyaWMgVy4g QmllZGVybWFuIiA8ZWJpZWRlcm1AeG1pc3Npb24uY29tPgpTaWduZWQtb2ZmLWJ5OiBFcmljIFcu IEJpZWRlcm1hbiA8ZWJpZWRlcm1AeG1pc3Npb24uY29tPgpSZXZpZXdlZC1ieTogRXJpYyBEdW1h emV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpBY2tlZC1ieTogTmljb2xhcyBEaWNodGVsIDxuaWNv bGFzLmRpY2h0ZWxANndpbmQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2NvcmUvbmV0X25hbWVzcGFjZS5jIHwgMiArLQog MSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0 IGEvbmV0L2NvcmUvbmV0X25hbWVzcGFjZS5jIGIvbmV0L2NvcmUvbmV0X25hbWVzcGFjZS5jCmlu ZGV4IDZjZmRjN2MuLjBkZDYzNTkgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL25ldF9uYW1lc3BhY2Uu YworKysgYi9uZXQvY29yZS9uZXRfbmFtZXNwYWNlLmMKQEAgLTI2Niw3ICsyNjYsNyBAQCBzdHJ1 Y3QgbmV0ICpnZXRfbmV0X25zX2J5X2lkKHN0cnVjdCBuZXQgKm5ldCwgaW50IGlkKQogCXNwaW5f bG9ja19iaCgmbmV0LT5uc2lkX2xvY2spOwogCXBlZXIgPSBpZHJfZmluZCgmbmV0LT5uZXRuc19p ZHMsIGlkKTsKIAlpZiAocGVlcikKLQkJZ2V0X25ldChwZWVyKTsKKwkJcGVlciA9IG1heWJlX2dl dF9uZXQocGVlcik7CiAJc3Bpbl91bmxvY2tfYmgoJm5ldC0+bnNpZF9sb2NrKTsKIAlyY3VfcmVh ZF91bmxvY2soKTsKIAotLSAKMi45LjUKCgpGcm9tIDljN2Y0ZjhlNTQ1NWUyMTExNjNhMGFmZGZi NzgwNTY1MTVkNTI4ZGIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEdyeWdvcmlpIFN0 cmFzaGtvIDxncnlnb3JpaS5zdHJhc2hrb0B0aS5jb20+CkRhdGU6IFdlZCwgMjAgRGVjIDIwMTcg MTg6NDU6MTAgLTA2MDAKU3ViamVjdDogW1BBVENIIDI3LzU4XSBuZXQ6IHBoeTogbWljcmVsOiBr c3o5MDMxOiByZWNvbmZpZ3VyZSBhdXRvbmVnIGFmdGVyCiBwaHkgYXV0b25lZyB3b3JrYXJvdW5k CgpbIFVwc3RyZWFtIGNvbW1pdCBjMWE4ZDBhM2FjY2Y2NGEwMTRkNjA1ZTY4MDZjZTA1ZDFjMTdh ZGYxIF0KClVuZGVyIHNvbWUgY2lyY3Vtc3RhbmNlcyBkcml2ZXIgd2lsbCBwZXJmb3JtIFBIWSBy ZXNldCBpbgprc3o5MDMxX3JlYWRfc3RhdHVzKCkgdG8gZml4IGF1dG9uZWcgZmFpbHVyZSBjYXNl IChpZGxlIGVycm9yIGNvdW50ID0KMHhGRikuIFdoZW4gdGhpcyBoYXBwZW5zIGtzejkwMzEgd2ls bCBub3QgZGV0ZWN0IGxpbmsgc3RhdHVzIGNoYW5nZSBhbnkKbW9yZSB3aGVuIGNvbm5lY3Rpbmcg dG8gTmV0Z2VhciAxRyBzd2l0Y2ggKGxpbmsgY2FuIGJlIHJlY292ZXJlZCBzb21ldGltZXMgYnkK cmVzdGFydGluZyBuZXRkZXZpY2UgImlmY29uZmlnIGRvd24gdXAiKS4gUmVwcm9kdWNlZCB3aXRo IFRJIGFtNTcyeCBib2FyZAplcXVpcHBlZCB3aXRoIGtzejkwMzEgUEhZIHdoaWxlIGNvbm5lY3Rp bmcgdG8gTmV0Z2VhciAxRyBzd2l0Y2guCgpGaXggdGhlIGlzc3VlIGJ5IHJlY29uZmlndXJpbmcg YXV0b25lZ290aWF0aW9uIGFmdGVyIFBIWSByZXNldCBpbgprc3o5MDMxX3JlYWRfc3RhdHVzKCku CgpGaXhlczogZDJmZDcxOWJjYjBlICgibmV0L3BoeTogbWljcmVsOiBBZGQgd29ya2Fyb3VuZCBm b3IgYmFkIGF1dG9uZWciKQpTaWduZWQtb2ZmLWJ5OiBHcnlnb3JpaSBTdHJhc2hrbyA8Z3J5Z29y aWkuc3RyYXNoa29AdGkuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvcGh5L21pY3JlbC5jIHwgMSArCiAxIGZp bGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9waHkv bWljcmVsLmMgYi9kcml2ZXJzL25ldC9waHkvbWljcmVsLmMKaW5kZXggZmRiNDNkZC4uNmM0NWZm NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvcGh5L21pY3JlbC5jCisrKyBiL2RyaXZlcnMvbmV0 L3BoeS9taWNyZWwuYwpAQCAtNjIyLDYgKzYyMiw3IEBAIHN0YXRpYyBpbnQga3N6OTAzMV9yZWFk X3N0YXR1cyhzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KQogCQlwaHlkZXYtPmxpbmsgPSAwOwog CQlpZiAocGh5ZGV2LT5kcnYtPmNvbmZpZ19pbnRyICYmIHBoeV9pbnRlcnJ1cHRfaXNfdmFsaWQo cGh5ZGV2KSkKIAkJCXBoeWRldi0+ZHJ2LT5jb25maWdfaW50cihwaHlkZXYpOworCQlyZXR1cm4g Z2VucGh5X2NvbmZpZ19hbmVnKHBoeWRldik7CiAJfQogCiAJcmV0dXJuIDA7Ci0tIAoyLjkuNQoK CkZyb20gNDcxYTAzY2ZmNzYyYzM4MDJmZjdjMmJlMTE3ODFlODg1Yjk4MzViYSBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogV2lsbGVtIGRlIEJydWlqbiA8d2lsbGVtYkBnb29nbGUuY29t PgpEYXRlOiBXZWQsIDEzIERlYyAyMDE3IDE0OjQxOjA2IC0wNTAwClN1YmplY3Q6IFtQQVRDSCAy OC81OF0gc29jazogZnJlZSBza2IgaW4gc2tiX2NvbXBsZXRlX3R4X3RpbWVzdGFtcCBvbiBlcnJv cgoKWyBVcHN0cmVhbSBjb21taXQgMzViOTlkZmZjM2Y3MTBjYWZjZWVlNmM4YzZhYzZhOThlYjJj YjRiZiBdCgpza2JfY29tcGxldGVfdHhfdGltZXN0YW1wIG11c3QgaW5nZXN0IHRoZSBza2IgaXQg aXMgcGFzc2VkLiBDYWxsCmtmcmVlX3NrYiBpZiB0aGUgc2tiIGNhbm5vdCBiZSBlbnF1ZXVlZC4K CkZpeGVzOiBiMjQ1YmUxZjRkYjEgKCJuZXQtdGltZXN0YW1wOiBuby1wYXlsb2FkIG9ubHkgc3lz Y3RsIikKRml4ZXM6IDlhYzI1ZmMwNjM3NSAoIm5ldDogZml4IHNvY2tldCByZWZjb3VudGluZyBp biBza2JfY29tcGxldGVfdHhfdGltZXN0YW1wKCkiKQpSZXBvcnRlZC1ieTogUmljaGFyZCBDb2No cmFuIDxyaWNoYXJkY29jaHJhbkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IFdpbGxlbSBkZSBC cnVpam4gPHdpbGxlbWJAZ29vZ2xlLmNvbT4KUmV2aWV3ZWQtYnk6IEVyaWMgRHVtYXpldCA8ZWR1 bWF6ZXRAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIG5ldC9jb3JlL3NrYnVmZi5jIHwgNiArKysrKy0KIDEgZmlsZSBj aGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQv Y29yZS9za2J1ZmYuYyBiL25ldC9jb3JlL3NrYnVmZi5jCmluZGV4IGUxNDBiYTQuLjYyMzE0M2Q3 IDEwMDY0NAotLS0gYS9uZXQvY29yZS9za2J1ZmYuYworKysgYi9uZXQvY29yZS9za2J1ZmYuYwpA QCAtNDI5Niw3ICs0Mjk2LDcgQEAgdm9pZCBza2JfY29tcGxldGVfdHhfdGltZXN0YW1wKHN0cnVj dCBza19idWZmICpza2IsCiAJc3RydWN0IHNvY2sgKnNrID0gc2tiLT5zazsKIAogCWlmICghc2ti X21heV90eF90aW1lc3RhbXAoc2ssIGZhbHNlKSkKLQkJcmV0dXJuOworCQlnb3RvIGVycjsKIAog CS8qIFRha2UgYSByZWZlcmVuY2UgdG8gcHJldmVudCBza2Jfb3JwaGFuKCkgZnJvbSBmcmVlaW5n IHRoZSBzb2NrZXQsCiAJICogYnV0IG9ubHkgaWYgdGhlIHNvY2tldCByZWZjb3VudCBpcyBub3Qg emVyby4KQEAgLTQzMDUsNyArNDMwNSwxMSBAQCB2b2lkIHNrYl9jb21wbGV0ZV90eF90aW1lc3Rh bXAoc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJKnNrYl9od3RzdGFtcHMoc2tiKSA9ICpod3RzdGFt cHM7CiAJCV9fc2tiX2NvbXBsZXRlX3R4X3RpbWVzdGFtcChza2IsIHNrLCBTQ01fVFNUQU1QX1NO RCwgZmFsc2UpOwogCQlzb2NrX3B1dChzayk7CisJCXJldHVybjsKIAl9CisKK2VycjoKKwlrZnJl ZV9za2Ioc2tiKTsKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKHNrYl9jb21wbGV0ZV90eF90aW1lc3Rh bXApOwogCi0tIAoyLjkuNQoKCkZyb20gZjU0OTA2Y2Q0ODU2YmRjNDYxM2MyZDNmZWEwYjY5YWZm NzM0YTdjMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogWW91c3VrIFNldW5nIDx5c3Nl dW5nQGdvb2dsZS5jb20+CkRhdGU6IFRodSwgNyBEZWMgMjAxNyAxMzo0MTozNCAtMDgwMApTdWJq ZWN0OiBbUEFUQ0ggMjkvNThdIHRjcDogaW52YWxpZGF0ZSByYXRlIHNhbXBsZXMgZHVyaW5nIFNB Q0sgcmVuZWdpbmcKClsgVXBzdHJlYW0gY29tbWl0IGQ0NzYxNzU0YjRmYjJlZjhkOWExZTlkMTIx YzRiZWM4NGUxZmUyOTIgXQoKTWFyayB0Y3Bfc29jayBkdXJpbmcgYSBTQUNLIHJlbmVnaW5nIGV2 ZW50IGFuZCBpbnZhbGlkYXRlIHJhdGUgc2FtcGxlcwp3aGlsZSBtYXJrZWQuIFN1Y2ggcmF0ZSBz YW1wbGVzIG1heSBvdmVyZXN0aW1hdGUgYncgYnkgaW5jbHVkaW5nIHBhY2tldHMKdGhhdCB3ZXJl IFNBQ0tlZCBiZWZvcmUgcmVuZWdpbmcuCgo8IGFjayA2MDAxIHdpbiAxMDAwMCBzYWNrIDcwMDE6 MzgwMDEKPCBhY2sgNzAwMSB3aW4gMCBzYWNrIDgwMDE6MzgwMDEgLy8gUmVuZWcgZGV0ZWN0ZWQK PiBzZXEgNzAwMTo4MDAxIC8vIFJUTywgU0FDSyBjbGVhcmVkLgo8IGFjayAzODAwMSB3aW4gMTAw MDAKCkluIGFib3ZlIGV4YW1wbGUgdGhlIHJhdGUgc2FtcGxlIHRha2VuIGFmdGVyIHRoZSBsYXN0 IGFjayB3aWxsIGNvdW50CjcwMDEtMzgwMDEgYXMgZGVsaXZlcmVkIHdoaWxlIHRoZSBhY3R1YWwg ZGVsaXZlcnkgcmF0ZSBsaWtlbHkgY291bGQKYmUgbXVjaCBsb3dlciBpLmUuIDcwMDEtODAwMS4K ClRoaXMgcGF0Y2ggYWRkcyBhIG5ldyBmaWVsZCB0Y3Bfc29jay5zYWNrX3JlbmVnIGFuZCBtYXJr cyBpdCB3aGVuIHdlCmRlY2xhcmUgU0FDSyByZW5lZ2luZyBhbmQgZW50ZXJpbmcgVENQX0NBX0xv c3MsIGFuZCB1bm1hcmtzIGl0IGFmdGVyCnRoZSBsYXN0IHJhdGUgc2FtcGxlIHdhcyB0YWtlbiBi ZWZvcmUgbW92aW5nIGJhY2sgdG8gVENQX0NBX09wZW4uIFRoaXMKcGF0Y2ggYWxzbyBpbnZhbGlk YXRlcyByYXRlIHNhbXBsZXMgdGFrZW4gd2hpbGUgdGNwX3NvY2suaXNfc2Fja19yZW5lZwppcyBz ZXQuCgpGaXhlczogYjlmNjQ4MjBmYjIyICgidGNwOiB0cmFjayBkYXRhIGRlbGl2ZXJ5IHJhdGUg Zm9yIGEgVENQIGNvbm5lY3Rpb24iKQpTaWduZWQtb2ZmLWJ5OiBZb3VzdWsgU2V1bmcgPHlzc2V1 bmdAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogTmVhbCBDYXJkd2VsbCA8bmNhcmR3ZWxsQGdv b2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IFl1Y2h1bmcgQ2hlbmcgPHljaGVuZ0Bnb29nbGUuY29t PgpBY2tlZC1ieTogU29oZWlsIEhhc3NhcyBZZWdhbmVoIDxzb2hlaWxAZ29vZ2xlLmNvbT4KQWNr ZWQtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KQWNrZWQtYnk6IFByaXlh cmFuamFuIEpoYSA8cHJpeWFyamhhQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMu IE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL2xpbnV4L3RjcC5oICB8 ICAzICsrLQogaW5jbHVkZS9uZXQvdGNwLmggICAgfCAgMiArLQogbmV0L2lwdjQvdGNwLmMgICAg ICAgfCAgMSArCiBuZXQvaXB2NC90Y3BfaW5wdXQuYyB8IDEwICsrKysrKysrLS0KIG5ldC9pcHY0 L3RjcF9yYXRlLmMgIHwgMTAgKysrKysrKy0tLQogNSBmaWxlcyBjaGFuZ2VkLCAxOSBpbnNlcnRp b25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvdGNwLmgg Yi9pbmNsdWRlL2xpbnV4L3RjcC5oCmluZGV4IDRhYTQwZWYuLmU4NDE4ZmMgMTAwNjQ0Ci0tLSBh L2luY2x1ZGUvbGludXgvdGNwLmgKKysrIGIvaW5jbHVkZS9saW51eC90Y3AuaApAQCAtMjE0LDcg KzIxNCw4IEBAIHN0cnVjdCB0Y3Bfc29jayB7CiAJdTgJY2hyb25vX3R5cGU6MiwJLyogY3VycmVu dCBjaHJvbm9ncmFwaCB0eXBlICovCiAJCXJhdGVfYXBwX2xpbWl0ZWQ6MSwgIC8qIHJhdGVfe2Rl bGl2ZXJlZCxpbnRlcnZhbF91c30gbGltaXRlZD8gKi8KIAkJZmFzdG9wZW5fY29ubmVjdDoxLCAv KiBGQVNUT1BFTl9DT05ORUNUIHNvY2tvcHQgKi8KLQkJdW51c2VkOjQ7CisJCWlzX3NhY2tfcmVu ZWc6MSwgICAgLyogaW4gcmVjb3ZlcnkgZnJvbSBsb3NzIHdpdGggU0FDSyByZW5lZz8gKi8KKwkJ dW51c2VkOjM7CiAJdTgJbm9uYWdsZSAgICAgOiA0LC8qIERpc2FibGUgTmFnbGUgYWxnb3JpdGht PyAgICAgICAgICAgICAqLwogCQl0aGluX2x0byAgICA6IDEsLyogVXNlIGxpbmVhciB0aW1lb3V0 cyBmb3IgdGhpbiBzdHJlYW1zICovCiAJCXVudXNlZDEJICAgIDogMSwKZGlmZiAtLWdpdCBhL2lu Y2x1ZGUvbmV0L3RjcC5oIGIvaW5jbHVkZS9uZXQvdGNwLmgKaW5kZXggNmNlZDY5OS4uMGExMzU3 NDEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L3RjcC5oCisrKyBiL2luY2x1ZGUvbmV0L3RjcC5o CkBAIC0xMDg1LDcgKzEwODUsNyBAQCB2b2lkIHRjcF9yYXRlX3NrYl9zZW50KHN0cnVjdCBzb2Nr ICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYik7CiB2b2lkIHRjcF9yYXRlX3NrYl9kZWxpdmVyZWQo c3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQkJICAgIHN0cnVjdCByYXRl X3NhbXBsZSAqcnMpOwogdm9pZCB0Y3BfcmF0ZV9nZW4oc3RydWN0IHNvY2sgKnNrLCB1MzIgZGVs aXZlcmVkLCB1MzIgbG9zdCwKLQkJICBzdHJ1Y3QgcmF0ZV9zYW1wbGUgKnJzKTsKKwkJICBib29s IGlzX3NhY2tfcmVuZWcsIHN0cnVjdCByYXRlX3NhbXBsZSAqcnMpOwogdm9pZCB0Y3BfcmF0ZV9j aGVja19hcHBfbGltaXRlZChzdHJ1Y3Qgc29jayAqc2spOwogCiAvKiBUaGVzZSBmdW5jdGlvbnMg ZGV0ZXJtaW5lIGhvdyB0aGUgY3VycmVudCBmbG93IGJlaGF2ZXMgaW4gcmVzcGVjdCBvZiBTQUNL CmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3AuYyBiL25ldC9pcHY0L3RjcC5jCmluZGV4IDUwOTE0 MDIuLmEwYzcyYjAgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3RjcC5jCisrKyBiL25ldC9pcHY0L3Rj cC5jCkBAIC0yMzU2LDYgKzIzNTYsNyBAQCBpbnQgdGNwX2Rpc2Nvbm5lY3Qoc3RydWN0IHNvY2sg KnNrLCBpbnQgZmxhZ3MpCiAJdHAtPnNuZF9jd25kX2NudCA9IDA7CiAJdHAtPndpbmRvd19jbGFt cCA9IDA7CiAJdGNwX3NldF9jYV9zdGF0ZShzaywgVENQX0NBX09wZW4pOworCXRwLT5pc19zYWNr X3JlbmVnID0gMDsKIAl0Y3BfY2xlYXJfcmV0cmFucyh0cCk7CiAJaW5ldF9jc2tfZGVsYWNrX2lu aXQoc2spOwogCS8qIEluaXRpYWxpemUgcmN2X21zcyB0byBUQ1BfTUlOX01TUyB0byBhdm9pZCBk aXZpc2lvbiBieSAwCmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3BfaW5wdXQuYyBiL25ldC9pcHY0 L3RjcF9pbnB1dC5jCmluZGV4IGM1NDQ3YjkuLmE5NjVhMzggMTAwNjQ0Ci0tLSBhL25ldC9pcHY0 L3RjcF9pbnB1dC5jCisrKyBiL25ldC9pcHY0L3RjcF9pbnB1dC5jCkBAIC0xOTc1LDYgKzE5NzUs OCBAQCB2b2lkIHRjcF9lbnRlcl9sb3NzKHN0cnVjdCBzb2NrICpzaykKIAkJTkVUX0lOQ19TVEFU Uyhzb2NrX25ldChzayksIExJTlVYX01JQl9UQ1BTQUNLUkVORUdJTkcpOwogCQl0cC0+c2Fja2Vk X291dCA9IDA7CiAJCXRwLT5mYWNrZXRzX291dCA9IDA7CisJCS8qIE1hcmsgU0FDSyByZW5lZ2lu ZyB1bnRpbCB3ZSByZWNvdmVyIGZyb20gdGhpcyBsb3NzIGV2ZW50LiAqLworCQl0cC0+aXNfc2Fj a19yZW5lZyA9IDE7CiAJfQogCXRjcF9jbGVhcl9hbGxfcmV0cmFuc19oaW50cyh0cCk7CiAKQEAg LTI0MjgsNiArMjQzMCw3IEBAIHN0YXRpYyBib29sIHRjcF90cnlfdW5kb19yZWNvdmVyeShzdHJ1 Y3Qgc29jayAqc2spCiAJCXJldHVybiB0cnVlOwogCX0KIAl0Y3Bfc2V0X2NhX3N0YXRlKHNrLCBU Q1BfQ0FfT3Blbik7CisJdHAtPmlzX3NhY2tfcmVuZWcgPSAwOwogCXJldHVybiBmYWxzZTsKIH0K IApAQCAtMjQ1OSw4ICsyNDYyLDEwIEBAIHN0YXRpYyBib29sIHRjcF90cnlfdW5kb19sb3NzKHN0 cnVjdCBzb2NrICpzaywgYm9vbCBmcnRvX3VuZG8pCiAJCQlORVRfSU5DX1NUQVRTKHNvY2tfbmV0 KHNrKSwKIAkJCQkJTElOVVhfTUlCX1RDUFNQVVJJT1VTUlRPUyk7CiAJCWluZXRfY3NrKHNrKS0+ aWNza19yZXRyYW5zbWl0cyA9IDA7Ci0JCWlmIChmcnRvX3VuZG8gfHwgdGNwX2lzX3NhY2sodHAp KQorCQlpZiAoZnJ0b191bmRvIHx8IHRjcF9pc19zYWNrKHRwKSkgewogCQkJdGNwX3NldF9jYV9z dGF0ZShzaywgVENQX0NBX09wZW4pOworCQkJdHAtPmlzX3NhY2tfcmVuZWcgPSAwOworCQl9CiAJ CXJldHVybiB0cnVlOwogCX0KIAlyZXR1cm4gZmFsc2U7CkBAIC0zNTUxLDYgKzM1NTYsNyBAQCBz dGF0aWMgaW50IHRjcF9hY2soc3RydWN0IHNvY2sgKnNrLCBjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAq c2tiLCBpbnQgZmxhZykKIAlzdHJ1Y3QgdGNwX3NhY2t0YWdfc3RhdGUgc2Fja19zdGF0ZTsKIAlz dHJ1Y3QgcmF0ZV9zYW1wbGUgcnMgPSB7IC5wcmlvcl9kZWxpdmVyZWQgPSAwIH07CiAJdTMyIHBy aW9yX3NuZF91bmEgPSB0cC0+c25kX3VuYTsKKwlib29sIGlzX3NhY2tfcmVuZWcgPSB0cC0+aXNf c2Fja19yZW5lZzsKIAl1MzIgYWNrX3NlcSA9IFRDUF9TS0JfQ0Ioc2tiKS0+c2VxOwogCXUzMiBh Y2sgPSBUQ1BfU0tCX0NCKHNrYiktPmFja19zZXE7CiAJYm9vbCBpc19kdXBhY2sgPSBmYWxzZTsK QEAgLTM2NjYsNyArMzY3Miw3IEBAIHN0YXRpYyBpbnQgdGNwX2FjayhzdHJ1Y3Qgc29jayAqc2ss IGNvbnN0IHN0cnVjdCBza19idWZmICpza2IsIGludCBmbGFnKQogCiAJZGVsaXZlcmVkID0gdHAt PmRlbGl2ZXJlZCAtIGRlbGl2ZXJlZDsJLyogZnJlc2hseSBBQ0tlZCBvciBTQUNLZWQgKi8KIAls b3N0ID0gdHAtPmxvc3QgLSBsb3N0OwkJCS8qIGZyZXNobHkgbWFya2VkIGxvc3QgKi8KLQl0Y3Bf cmF0ZV9nZW4oc2ssIGRlbGl2ZXJlZCwgbG9zdCwgc2Fja19zdGF0ZS5yYXRlKTsKKwl0Y3BfcmF0 ZV9nZW4oc2ssIGRlbGl2ZXJlZCwgbG9zdCwgaXNfc2Fja19yZW5lZywgc2Fja19zdGF0ZS5yYXRl KTsKIAl0Y3BfY29uZ19jb250cm9sKHNrLCBhY2ssIGRlbGl2ZXJlZCwgZmxhZywgc2Fja19zdGF0 ZS5yYXRlKTsKIAl0Y3BfeG1pdF9yZWNvdmVyeShzaywgcmV4bWl0KTsKIAlyZXR1cm4gMTsKZGlm ZiAtLWdpdCBhL25ldC9pcHY0L3RjcF9yYXRlLmMgYi9uZXQvaXB2NC90Y3BfcmF0ZS5jCmluZGV4 IDMzMzBhMzcuLmM2MTI0MGUgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3RjcF9yYXRlLmMKKysrIGIv bmV0L2lwdjQvdGNwX3JhdGUuYwpAQCAtMTA2LDcgKzEwNiw3IEBAIHZvaWQgdGNwX3JhdGVfc2ti X2RlbGl2ZXJlZChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IsCiAKIC8qIFVw ZGF0ZSB0aGUgY29ubmVjdGlvbiBkZWxpdmVyeSBpbmZvcm1hdGlvbiBhbmQgZ2VuZXJhdGUgYSBy YXRlIHNhbXBsZS4gKi8KIHZvaWQgdGNwX3JhdGVfZ2VuKHN0cnVjdCBzb2NrICpzaywgdTMyIGRl bGl2ZXJlZCwgdTMyIGxvc3QsCi0JCSAgc3RydWN0IHJhdGVfc2FtcGxlICpycykKKwkJICBib29s IGlzX3NhY2tfcmVuZWcsIHN0cnVjdCByYXRlX3NhbXBsZSAqcnMpCiB7CiAJc3RydWN0IHRjcF9z b2NrICp0cCA9IHRjcF9zayhzayk7CiAJdTMyIHNuZF91cywgYWNrX3VzOwpAQCAtMTI0LDggKzEy NCwxMiBAQCB2b2lkIHRjcF9yYXRlX2dlbihzdHJ1Y3Qgc29jayAqc2ssIHUzMiBkZWxpdmVyZWQs IHUzMiBsb3N0LAogCiAJcnMtPmFja2VkX3NhY2tlZCA9IGRlbGl2ZXJlZDsJLyogZnJlc2hseSBB Q0tlZCBvciBTQUNLZWQgKi8KIAlycy0+bG9zc2VzID0gbG9zdDsJCS8qIGZyZXNobHkgbWFya2Vk IGxvc3QgKi8KLQkvKiBSZXR1cm4gYW4gaW52YWxpZCBzYW1wbGUgaWYgbm8gdGltaW5nIGluZm9y bWF0aW9uIGlzIGF2YWlsYWJsZS4gKi8KLQlpZiAoIXJzLT5wcmlvcl9tc3RhbXApIHsKKwkvKiBS ZXR1cm4gYW4gaW52YWxpZCBzYW1wbGUgaWYgbm8gdGltaW5nIGluZm9ybWF0aW9uIGlzIGF2YWls YWJsZSBvcgorCSAqIGluIHJlY292ZXJ5IGZyb20gbG9zcyB3aXRoIFNBQ0sgcmVuZWdpbmcuIFJh dGUgc2FtcGxlcyB0YWtlbiBkdXJpbmcKKwkgKiBhIFNBQ0sgcmVuZWdpbmcgZXZlbnQgbWF5IG92 ZXJlc3RpbWF0ZSBidyBieSBpbmNsdWRpbmcgcGFja2V0cyB0aGF0CisJICogd2VyZSBTQUNLZWQg YmVmb3JlIHRoZSByZW5lZy4KKwkgKi8KKwlpZiAoIXJzLT5wcmlvcl9tc3RhbXAgfHwgaXNfc2Fj a19yZW5lZykgewogCQlycy0+ZGVsaXZlcmVkID0gLTE7CiAJCXJzLT5pbnRlcnZhbF91cyA9IC0x OwogCQlyZXR1cm47Ci0tIAoyLjkuNQoKCkZyb20gMWRkMDdmOTU0YzY5MTY4MDEzZGZmNzRmOWEz ZTBiODkxMGMwZmJkOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJhbiBCZW4gRWxp c2hhIDxlcmFuYmVAbWVsbGFub3guY29tPgpEYXRlOiBNb24sIDEzIE5vdiAyMDE3IDEwOjExOjI3 ICswMjAwClN1YmplY3Q6IFtQQVRDSCAzMC81OF0gbmV0L21seDU6IEZpeCByYXRlIGxpbWl0IHBh Y2tldCBwYWNpbmcgbmFtaW5nIGFuZAogc3RydWN0CgpbIFVwc3RyZWFtIGNvbW1pdCAzN2U5MmE5 ZDRmZTM4ZGMzZTczMDg5MTM1NzU5ODNhNmEwODhjOGQ0IF0KCkluIG1seDVfaWZjLCBzdHJ1Y3Qg c2l6ZSB3YXMgbm90IGNvbXBsZXRlLCBhbmQgdGh1cyBkcml2ZXIgd2FzIHNlbmRpbmcKZ2FyYmFn ZSBhZnRlciB0aGUgbGFzdCBkZWZpbmVkIGZpZWxkLiBGaXhlZCBpdCBieSBhZGRpbmcgcmVzZXJ2 ZWQgZmllbGQKdG8gY29tcGxldGUgdGhlIHN0cnVjdCBzaXplLgoKSW4gYWRkaXRpb24sIHJlbmFt ZSBhbGwgc2V0X3JhdGVfbGltaXQgdG8gc2V0X3BwX3JhdGVfbGltaXQgdG8gYmUKY29tcGxpYW50 IHdpdGggdGhlIEZpcm13YXJlIDwtPiBEcml2ZXIgZGVmaW5pdGlvbi4KCkZpeGVzOiA3NDg2MjE2 YjNhMGIgKCJ7bmV0LElCfS9tbHg1OiBtbHg1X2lmYyB1cGRhdGVzIikKRml4ZXM6IDE0NjZjYzVi MjNkMSAoIm5ldC9tbHg1OiBSYXRlIGxpbWl0IHRhYmxlcyBzdXBwb3J0IikKU2lnbmVkLW9mZi1i eTogRXJhbiBCZW4gRWxpc2hhIDxlcmFuYmVAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBT YWVlZCBNYWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94LmNvbT4KLS0tCiBkcml2ZXJzL25ldC9ldGhl cm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMgfCAgNCArKy0tCiBkcml2ZXJzL25ldC9ldGhl cm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvcmwuYyAgfCAyMiArKysrKysrKysrKy0tLS0tLS0tLS0t CiBpbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaCAgICAgICAgICAgICAgICAgfCAgOCArKysr Ky0tLQogMyBmaWxlcyBjaGFuZ2VkLCAxOCBpbnNlcnRpb25zKCspLCAxNiBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21k LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMKaW5kZXgg MWZmZmRlYi4uZTlhMWZiYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFu b3gvbWx4NS9jb3JlL2NtZC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21s eDUvY29yZS9jbWQuYwpAQCAtMzYyLDcgKzM2Miw3IEBAIHN0YXRpYyBpbnQgbWx4NV9pbnRlcm5h bF9lcnJfcmV0X3ZhbHVlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHUxNiBvcCwKIAljYXNl IE1MWDVfQ01EX09QX1FVRVJZX1ZQT1JUX0NPVU5URVI6CiAJY2FzZSBNTFg1X0NNRF9PUF9BTExP Q19RX0NPVU5URVI6CiAJY2FzZSBNTFg1X0NNRF9PUF9RVUVSWV9RX0NPVU5URVI6Ci0JY2FzZSBN TFg1X0NNRF9PUF9TRVRfUkFURV9MSU1JVDoKKwljYXNlIE1MWDVfQ01EX09QX1NFVF9QUF9SQVRF X0xJTUlUOgogCWNhc2UgTUxYNV9DTURfT1BfUVVFUllfUkFURV9MSU1JVDoKIAljYXNlIE1MWDVf Q01EX09QX0NSRUFURV9TQ0hFRFVMSU5HX0VMRU1FTlQ6CiAJY2FzZSBNTFg1X0NNRF9PUF9RVUVS WV9TQ0hFRFVMSU5HX0VMRU1FTlQ6CkBAIC01MDUsNyArNTA1LDcgQEAgY29uc3QgY2hhciAqbWx4 NV9jb21tYW5kX3N0cihpbnQgY29tbWFuZCkKIAlNTFg1X0NPTU1BTkRfU1RSX0NBU0UoQUxMT0Nf UV9DT1VOVEVSKTsKIAlNTFg1X0NPTU1BTkRfU1RSX0NBU0UoREVBTExPQ19RX0NPVU5URVIpOwog CU1MWDVfQ09NTUFORF9TVFJfQ0FTRShRVUVSWV9RX0NPVU5URVIpOwotCU1MWDVfQ09NTUFORF9T VFJfQ0FTRShTRVRfUkFURV9MSU1JVCk7CisJTUxYNV9DT01NQU5EX1NUUl9DQVNFKFNFVF9QUF9S QVRFX0xJTUlUKTsKIAlNTFg1X0NPTU1BTkRfU1RSX0NBU0UoUVVFUllfUkFURV9MSU1JVCk7CiAJ TUxYNV9DT01NQU5EX1NUUl9DQVNFKENSRUFURV9TQ0hFRFVMSU5HX0VMRU1FTlQpOwogCU1MWDVf Q09NTUFORF9TVFJfQ0FTRShERVNUUk9ZX1NDSEVEVUxJTkdfRUxFTUVOVCk7CmRpZmYgLS1naXQg YS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvcmwuYyBiL2RyaXZlcnMv bmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9ybC5jCmluZGV4IGU2NTFlNGMuLmQzYzMz ZTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9y bC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9ybC5jCkBA IC0xMjUsMTYgKzEyNSwxNiBAQCBzdGF0aWMgc3RydWN0IG1seDVfcmxfZW50cnkgKmZpbmRfcmxf ZW50cnkoc3RydWN0IG1seDVfcmxfdGFibGUgKnRhYmxlLAogCXJldHVybiByZXRfZW50cnk7CiB9 CiAKLXN0YXRpYyBpbnQgbWx4NV9zZXRfcmF0ZV9saW1pdF9jbWQoc3RydWN0IG1seDVfY29yZV9k ZXYgKmRldiwKK3N0YXRpYyBpbnQgbWx4NV9zZXRfcHBfcmF0ZV9saW1pdF9jbWQoc3RydWN0IG1s eDVfY29yZV9kZXYgKmRldiwKIAkJCQkgICB1MzIgcmF0ZSwgdTE2IGluZGV4KQogewotCXUzMiBp bltNTFg1X1NUX1NaX0RXKHNldF9yYXRlX2xpbWl0X2luKV0gICA9IHswfTsKLQl1MzIgb3V0W01M WDVfU1RfU1pfRFcoc2V0X3JhdGVfbGltaXRfb3V0KV0gPSB7MH07CisJdTMyIGluW01MWDVfU1Rf U1pfRFcoc2V0X3BwX3JhdGVfbGltaXRfaW4pXSAgID0gezB9OworCXUzMiBvdXRbTUxYNV9TVF9T Wl9EVyhzZXRfcHBfcmF0ZV9saW1pdF9vdXQpXSA9IHswfTsKIAotCU1MWDVfU0VUKHNldF9yYXRl X2xpbWl0X2luLCBpbiwgb3Bjb2RlLAotCQkgTUxYNV9DTURfT1BfU0VUX1JBVEVfTElNSVQpOwot CU1MWDVfU0VUKHNldF9yYXRlX2xpbWl0X2luLCBpbiwgcmF0ZV9saW1pdF9pbmRleCwgaW5kZXgp OwotCU1MWDVfU0VUKHNldF9yYXRlX2xpbWl0X2luLCBpbiwgcmF0ZV9saW1pdCwgcmF0ZSk7CisJ TUxYNV9TRVQoc2V0X3BwX3JhdGVfbGltaXRfaW4sIGluLCBvcGNvZGUsCisJCSBNTFg1X0NNRF9P UF9TRVRfUFBfUkFURV9MSU1JVCk7CisJTUxYNV9TRVQoc2V0X3BwX3JhdGVfbGltaXRfaW4sIGlu LCByYXRlX2xpbWl0X2luZGV4LCBpbmRleCk7CisJTUxYNV9TRVQoc2V0X3BwX3JhdGVfbGltaXRf aW4sIGluLCByYXRlX2xpbWl0LCByYXRlKTsKIAlyZXR1cm4gbWx4NV9jbWRfZXhlYyhkZXYsIGlu LCBzaXplb2YoaW4pLCBvdXQsIHNpemVvZihvdXQpKTsKIH0KIApAQCAtMTczLDcgKzE3Myw3IEBA IGludCBtbHg1X3JsX2FkZF9yYXRlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHUzMiByYXRl LCB1MTYgKmluZGV4KQogCQllbnRyeS0+cmVmY291bnQrKzsKIAl9IGVsc2UgewogCQkvKiBuZXcg cmF0ZSBsaW1pdCAqLwotCQllcnIgPSBtbHg1X3NldF9yYXRlX2xpbWl0X2NtZChkZXYsIHJhdGUs IGVudHJ5LT5pbmRleCk7CisJCWVyciA9IG1seDVfc2V0X3BwX3JhdGVfbGltaXRfY21kKGRldiwg cmF0ZSwgZW50cnktPmluZGV4KTsKIAkJaWYgKGVycikgewogCQkJbWx4NV9jb3JlX2VycihkZXYs ICJGYWlsZWQgY29uZmlndXJpbmcgcmF0ZTogJXUgKCVkKVxuIiwKIAkJCQkgICAgICByYXRlLCBl cnIpOwpAQCAtMjA5LDcgKzIwOSw3IEBAIHZvaWQgbWx4NV9ybF9yZW1vdmVfcmF0ZShzdHJ1Y3Qg bWx4NV9jb3JlX2RldiAqZGV2LCB1MzIgcmF0ZSkKIAllbnRyeS0+cmVmY291bnQtLTsKIAlpZiAo IWVudHJ5LT5yZWZjb3VudCkgewogCQkvKiBuZWVkIHRvIHJlbW92ZSByYXRlICovCi0JCW1seDVf c2V0X3JhdGVfbGltaXRfY21kKGRldiwgMCwgZW50cnktPmluZGV4KTsKKwkJbWx4NV9zZXRfcHBf cmF0ZV9saW1pdF9jbWQoZGV2LCAwLCBlbnRyeS0+aW5kZXgpOwogCQllbnRyeS0+cmF0ZSA9IDA7 CiAJfQogCkBAIC0yNjIsOCArMjYyLDggQEAgdm9pZCBtbHg1X2NsZWFudXBfcmxfdGFibGUoc3Ry dWN0IG1seDVfY29yZV9kZXYgKmRldikKIAkvKiBDbGVhciBhbGwgY29uZmlndXJlZCByYXRlcyAq LwogCWZvciAoaSA9IDA7IGkgPCB0YWJsZS0+bWF4X3NpemU7IGkrKykKIAkJaWYgKHRhYmxlLT5y bF9lbnRyeVtpXS5yYXRlKQotCQkJbWx4NV9zZXRfcmF0ZV9saW1pdF9jbWQoZGV2LCAwLAotCQkJ CQkJdGFibGUtPnJsX2VudHJ5W2ldLmluZGV4KTsKKwkJCW1seDVfc2V0X3BwX3JhdGVfbGltaXRf Y21kKGRldiwgMCwKKwkJCQkJCSAgIHRhYmxlLT5ybF9lbnRyeVtpXS5pbmRleCk7CiAKIAlrZnJl ZShkZXYtPnByaXYucmxfdGFibGUucmxfZW50cnkpOwogfQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9s aW51eC9tbHg1L21seDVfaWZjLmggYi9pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaAppbmRl eCA2OTc3MjM0Li5jODA5MWYwNiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9tbHg1L21seDVf aWZjLmgKKysrIGIvaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmgKQEAgLTE0Nyw3ICsxNDcs NyBAQCBlbnVtIHsKIAlNTFg1X0NNRF9PUF9BTExPQ19RX0NPVU5URVIgICAgICAgICAgICAgICA9 IDB4NzcxLAogCU1MWDVfQ01EX09QX0RFQUxMT0NfUV9DT1VOVEVSICAgICAgICAgICAgID0gMHg3 NzIsCiAJTUxYNV9DTURfT1BfUVVFUllfUV9DT1VOVEVSICAgICAgICAgICAgICAgPSAweDc3MywK LQlNTFg1X0NNRF9PUF9TRVRfUkFURV9MSU1JVCAgICAgICAgICAgICAgICA9IDB4NzgwLAorCU1M WDVfQ01EX09QX1NFVF9QUF9SQVRFX0xJTUlUICAgICAgICAgICAgID0gMHg3ODAsCiAJTUxYNV9D TURfT1BfUVVFUllfUkFURV9MSU1JVCAgICAgICAgICAgICAgPSAweDc4MSwKIAlNTFg1X0NNRF9P UF9DUkVBVEVfU0NIRURVTElOR19FTEVNRU5UICAgICAgPSAweDc4MiwKIAlNTFg1X0NNRF9PUF9E RVNUUk9ZX1NDSEVEVUxJTkdfRUxFTUVOVCAgICAgPSAweDc4MywKQEAgLTcyMzMsNyArNzIzMyw3 IEBAIHN0cnVjdCBtbHg1X2lmY19hZGRfdnhsYW5fdWRwX2Rwb3J0X2luX2JpdHMgewogCXU4ICAg ICAgICAgdnhsYW5fdWRwX3BvcnRbMHgxMF07CiB9OwogCi1zdHJ1Y3QgbWx4NV9pZmNfc2V0X3Jh dGVfbGltaXRfb3V0X2JpdHMgeworc3RydWN0IG1seDVfaWZjX3NldF9wcF9yYXRlX2xpbWl0X291 dF9iaXRzIHsKIAl1OCAgICAgICAgIHN0YXR1c1sweDhdOwogCXU4ICAgICAgICAgcmVzZXJ2ZWRf YXRfOFsweDE4XTsKIApAQCAtNzI0Miw3ICs3MjQyLDcgQEAgc3RydWN0IG1seDVfaWZjX3NldF9y YXRlX2xpbWl0X291dF9iaXRzIHsKIAl1OCAgICAgICAgIHJlc2VydmVkX2F0XzQwWzB4NDBdOwog fTsKIAotc3RydWN0IG1seDVfaWZjX3NldF9yYXRlX2xpbWl0X2luX2JpdHMgeworc3RydWN0IG1s eDVfaWZjX3NldF9wcF9yYXRlX2xpbWl0X2luX2JpdHMgewogCXU4ICAgICAgICAgb3Bjb2RlWzB4 MTBdOwogCXU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfMTBbMHgxMF07CiAKQEAgLTcyNTUsNiArNzI1 NSw4IEBAIHN0cnVjdCBtbHg1X2lmY19zZXRfcmF0ZV9saW1pdF9pbl9iaXRzIHsKIAl1OCAgICAg ICAgIHJlc2VydmVkX2F0XzYwWzB4MjBdOwogCiAJdTggICAgICAgICByYXRlX2xpbWl0WzB4MjBd OworCisJdTggICAgICAgICByZXNlcnZlZF9hdF9hMFsweDE2MF07CiB9OwogCiBzdHJ1Y3QgbWx4 NV9pZmNfYWNjZXNzX3JlZ2lzdGVyX291dF9iaXRzIHsKLS0gCjIuOS41CgoKRnJvbSA1NDcxMmM0 NTBmYWRkNmQ0YmU3N2VlZmJiNjQwYzYyODU0YmNhNGE5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBHYWwgUHJlc3NtYW4gPGdhbHBAbWVsbGFub3guY29tPgpEYXRlOiBUaHUsIDIzIE5v diAyMDE3IDEzOjUyOjI4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAzMS81OF0gbmV0L21seDVlOiBG aXggcG9zc2libGUgZGVhZGxvY2sgb2YgVlhMQU4gbG9jawoKWyBVcHN0cmVhbSBjb21taXQgNjMy MzUxNDExNjQwNGNjNjUxZGYxYjdmZmZhMTMxMWRkZjhjZTY0NyBdCgptbHg1ZV92eGxhbl9sb29r dXBfcG9ydCBpcyBjYWxsZWQgYm90aCBmcm9tIG1seDVlX2FkZF92eGxhbl9wb3J0ICh1c2VyCmNv bnRleHQpIGFuZCBtbHg1ZV9mZWF0dXJlc19jaGVjayAoc29mdGlycSksIGJ1dCB0aGUgbG9jayBh Y3F1aXJlZCBkb2VzCm5vdCBkaXNhYmxlIGJvdHRvbSBoYWxmIGFuZCBtaWdodCByZXN1bHQgaW4g ZGVhZGxvY2suIEZpeCBpdCBieSBzaW1wbHkKcmVwbGFjaW5nIHNwaW5fbG9jaygpIHdpdGggc3Bp bl9sb2NrX2JoKCkuCldoaWxlIGF0IGl0LCByZXBsYWNlIGFsbCB1bm5lY2Vzc2FyeSBzcGluX2xv Y2tfaXJxKCkgdG8gc3Bpbl9sb2NrX2JoKCkuCgpsb2NrZGVwJ3MgV0FSTklORzogaW5jb25zaXN0 ZW50IGxvY2sgc3RhdGUKWyAgNjU0LjAyODEzNl0gaW5jb25zaXN0ZW50IHtTT0ZUSVJRLU9OLVd9 IC0+IHtJTi1TT0ZUSVJRLVd9IHVzYWdlLgpbICA2NTQuMDI4MjI5XSBzd2FwcGVyLzUvMCBbSEMw WzBdOlNDMVs5XTpIRTE6U0UwXSB0YWtlczoKWyAgNjU0LjAyODMyMV0gICgmKCZ2eGxhbl9kYi0+ bG9jayktPnJsb2NrKXsrLj8ufSwgYXQ6IFs8ZmZmZmZmZmZhMDZlN2YwZT5dIG1seDVlX3Z4bGFu X2xvb2t1cF9wb3J0KzB4MWUvMHg1MCBbbWx4NV9jb3JlXQpbICA2NTQuMDI4NTI4XSB7U09GVElS US1PTi1XfSBzdGF0ZSB3YXMgcmVnaXN0ZXJlZCBhdDoKWyAgNjU0LjAyODYwN10gICBfcmF3X3Nw aW5fbG9jaysweDNjLzB4NzAKWyAgNjU0LjAyODY4OV0gICBtbHg1ZV92eGxhbl9sb29rdXBfcG9y dCsweDFlLzB4NTAgW21seDVfY29yZV0KWyAgNjU0LjAyODc5NF0gICBtbHg1ZV92eGxhbl9hZGRf cG9ydCsweDJlLzB4MTIwIFttbHg1X2NvcmVdClsgIDY1NC4wMjg4NzhdICAgcHJvY2Vzc19vbmVf d29yaysweDFlOS8weDY0MApbICA2NTQuMDI4OTQyXSAgIHdvcmtlcl90aHJlYWQrMHg0YS8weDNm MApbICA2NTQuMDI5MDAyXSAgIGt0aHJlYWQrMHgxNDEvMHgxODAKWyAgNjU0LjAyOTA1Nl0gICBy ZXRfZnJvbV9mb3JrKzB4MjQvMHgzMApbICA2NTQuMDI5MTE0XSBpcnEgZXZlbnQgc3RhbXA6IDU3 OTA4OApbICA2NTQuMDI5MTc0XSBoYXJkaXJxcyBsYXN0ICBlbmFibGVkIGF0ICg1NzkwODgpOiBb PGZmZmZmZmZmODE4ZjQ3NWE+XSBpcDZfZmluaXNoX291dHB1dDIrMHg0OWEvMHg4YzAKWyAgNjU0 LjAyOTMwOV0gaGFyZGlycXMgbGFzdCBkaXNhYmxlZCBhdCAoNTc5MDg3KTogWzxmZmZmZmZmZjgx OGY0NzBlPl0gaXA2X2ZpbmlzaF9vdXRwdXQyKzB4NDRlLzB4OGMwClsgIDY1NC4wMjk0NDZdIHNv ZnRpcnFzIGxhc3QgIGVuYWJsZWQgYXQgKDU3OTAzMCk6IFs8ZmZmZmZmZmY4MTBiM2IzZD5dIGly cV9lbnRlcisweDZkLzB4ODAKWyAgNjU0LjAyOTU2N10gc29mdGlycXMgbGFzdCBkaXNhYmxlZCBh dCAoNTc5MDMxKTogWzxmZmZmZmZmZjgxMGIzYzA1Pl0gaXJxX2V4aXQrMHhiNS8weGMwClsgIDY1 NC4wMjk2ODRdIG90aGVyIGluZm8gdGhhdCBtaWdodCBoZWxwIHVzIGRlYnVnIHRoaXM6ClsgIDY1 NC4wMjk3ODFdICBQb3NzaWJsZSB1bnNhZmUgbG9ja2luZyBzY2VuYXJpbzoKClsgIDY1NC4wMjk4 NjhdICAgICAgICBDUFUwClsgIDY1NC4wMjk5MDhdICAgICAgICAtLS0tClsgIDY1NC4wMjk5NDdd ICAgbG9jaygmKCZ2eGxhbl9kYi0+bG9jayktPnJsb2NrKTsKWyAgNjU0LjAzMDA0NV0gICA8SW50 ZXJydXB0PgpbICA2NTQuMDMwMDkwXSAgICAgbG9jaygmKCZ2eGxhbl9kYi0+bG9jayktPnJsb2Nr KTsKWyAgNjU0LjAzMDE2Ml0KICoqKiBERUFETE9DSyAqKioKCkZpeGVzOiBiM2Y2M2MzZDVlMmMg KCJuZXQvbWx4NWU6IEFkZCBuZXRkZXYgc3VwcG9ydCBmb3IgVlhMQU4gdHVubmVsaW5nIikKU2ln bmVkLW9mZi1ieTogR2FsIFByZXNzbWFuIDxnYWxwQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1i eTogU2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+Ci0tLQogZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3Z4bGFuLmMgfCAyMCArKysrKysrKysrLS0tLS0t LS0tLQogMSBmaWxlIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS92eGxh bi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3Z4bGFuLmMKaW5k ZXggMDdhOWJhNi4uZjgyMzgyNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVs bGFub3gvbWx4NS9jb3JlL3Z4bGFuLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFu b3gvbWx4NS9jb3JlL3Z4bGFuLmMKQEAgLTcxLDkgKzcxLDkgQEAgc3RydWN0IG1seDVlX3Z4bGFu ICptbHg1ZV92eGxhbl9sb29rdXBfcG9ydChzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiwgdTE2IHBv cnQpCiAJc3RydWN0IG1seDVlX3Z4bGFuX2RiICp2eGxhbl9kYiA9ICZwcml2LT52eGxhbjsKIAlz dHJ1Y3QgbWx4NWVfdnhsYW4gKnZ4bGFuOwogCi0Jc3Bpbl9sb2NrKCZ2eGxhbl9kYi0+bG9jayk7 CisJc3Bpbl9sb2NrX2JoKCZ2eGxhbl9kYi0+bG9jayk7CiAJdnhsYW4gPSByYWRpeF90cmVlX2xv b2t1cCgmdnhsYW5fZGItPnRyZWUsIHBvcnQpOwotCXNwaW5fdW5sb2NrKCZ2eGxhbl9kYi0+bG9j ayk7CisJc3Bpbl91bmxvY2tfYmgoJnZ4bGFuX2RiLT5sb2NrKTsKIAogCXJldHVybiB2eGxhbjsK IH0KQEAgLTEwMCw5ICsxMDAsOSBAQCBzdGF0aWMgdm9pZCBtbHg1ZV92eGxhbl9hZGRfcG9ydChz dHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAKIAl2eGxhbi0+dWRwX3BvcnQgPSBwb3J0OwogCi0J c3Bpbl9sb2NrX2lycSgmdnhsYW5fZGItPmxvY2spOworCXNwaW5fbG9ja19iaCgmdnhsYW5fZGIt PmxvY2spOwogCWVyciA9IHJhZGl4X3RyZWVfaW5zZXJ0KCZ2eGxhbl9kYi0+dHJlZSwgdnhsYW4t PnVkcF9wb3J0LCB2eGxhbik7Ci0Jc3Bpbl91bmxvY2tfaXJxKCZ2eGxhbl9kYi0+bG9jayk7CisJ c3Bpbl91bmxvY2tfYmgoJnZ4bGFuX2RiLT5sb2NrKTsKIAlpZiAoZXJyKQogCQlnb3RvIGVycl9m cmVlOwogCkBAIC0xMjEsOSArMTIxLDkgQEAgc3RhdGljIHZvaWQgX19tbHg1ZV92eGxhbl9jb3Jl X2RlbF9wb3J0KHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2LCB1MTYgcG9ydCkKIAlzdHJ1Y3QgbWx4 NWVfdnhsYW5fZGIgKnZ4bGFuX2RiID0gJnByaXYtPnZ4bGFuOwogCXN0cnVjdCBtbHg1ZV92eGxh biAqdnhsYW47CiAKLQlzcGluX2xvY2tfaXJxKCZ2eGxhbl9kYi0+bG9jayk7CisJc3Bpbl9sb2Nr X2JoKCZ2eGxhbl9kYi0+bG9jayk7CiAJdnhsYW4gPSByYWRpeF90cmVlX2RlbGV0ZSgmdnhsYW5f ZGItPnRyZWUsIHBvcnQpOwotCXNwaW5fdW5sb2NrX2lycSgmdnhsYW5fZGItPmxvY2spOworCXNw aW5fdW5sb2NrX2JoKCZ2eGxhbl9kYi0+bG9jayk7CiAKIAlpZiAoIXZ4bGFuKQogCQlyZXR1cm47 CkBAIC0xNzEsMTIgKzE3MSwxMiBAQCB2b2lkIG1seDVlX3Z4bGFuX2NsZWFudXAoc3RydWN0IG1s eDVlX3ByaXYgKnByaXYpCiAJc3RydWN0IG1seDVlX3Z4bGFuICp2eGxhbjsKIAl1bnNpZ25lZCBp bnQgcG9ydCA9IDA7CiAKLQlzcGluX2xvY2tfaXJxKCZ2eGxhbl9kYi0+bG9jayk7CisJc3Bpbl9s b2NrX2JoKCZ2eGxhbl9kYi0+bG9jayk7CiAJd2hpbGUgKHJhZGl4X3RyZWVfZ2FuZ19sb29rdXAo JnZ4bGFuX2RiLT50cmVlLCAodm9pZCAqKikmdnhsYW4sIHBvcnQsIDEpKSB7CiAJCXBvcnQgPSB2 eGxhbi0+dWRwX3BvcnQ7Ci0JCXNwaW5fdW5sb2NrX2lycSgmdnhsYW5fZGItPmxvY2spOworCQlz cGluX3VubG9ja19iaCgmdnhsYW5fZGItPmxvY2spOwogCQlfX21seDVlX3Z4bGFuX2NvcmVfZGVs X3BvcnQocHJpdiwgKHUxNilwb3J0KTsKLQkJc3Bpbl9sb2NrX2lycSgmdnhsYW5fZGItPmxvY2sp OworCQlzcGluX2xvY2tfYmgoJnZ4bGFuX2RiLT5sb2NrKTsKIAl9Ci0Jc3Bpbl91bmxvY2tfaXJx KCZ2eGxhbl9kYi0+bG9jayk7CisJc3Bpbl91bmxvY2tfYmgoJnZ4bGFuX2RiLT5sb2NrKTsKIH0K LS0gCjIuOS41CgoKRnJvbSAwZDJmYWY5MWZjMWY1Y2VhM2ZjM2UwNGJhYTE0ZWQxMzk5MzgxMmUx IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBHYWwgUHJlc3NtYW4gPGdhbHBAbWVsbGFu b3guY29tPgpEYXRlOiBUdWUsIDIxIE5vdiAyMDE3IDE3OjQ5OjM2ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAzMi81OF0gbmV0L21seDVlOiBGaXggZmVhdHVyZXMgY2hlY2sgb2YgSVB2NiB0cmFmZmlj CgpbIFVwc3RyZWFtIGNvbW1pdCAyOTg5YWQxZWMwMzAyMWVlNmQyMTkzYzM1NDE0ZjFkOTcwYTI0 M2RlIF0KClRoZSBhc3N1bXB0aW9uIHRoYXQgdGhlIG5leHQgaGVhZGVyIGZpZWxkIGNvbnRhaW5z IHRoZSB0cmFuc3BvcnQKcHJvdG9jb2wgaXMgd3JvbmcgZm9yIElQdjYgcGFja2V0cyB3aXRoIGV4 dGVuc2lvbiBoZWFkZXJzLgpJbnN0ZWFkLCB3ZSBzaG91bGQgbG9vayB0aGUgaW5uZXItbW9zdCBu ZXh0IGhlYWRlciBmaWVsZCBpbiB0aGUgYnVmZmVyLgpUaGlzIHdpbGwgZml4IFRTTyBvZmZsb2Fk IGZvciB0dW5uZWxzIG92ZXIgSVB2NiB3aXRoIGV4dGVuc2lvbiBoZWFkZXJzLgoKUGVyZm9ybWFu Y2UgdGVzdGluZzogMTkuMjV4IGltcHJvdmVtZW50LCBjb29sIQpNZWFzdXJpbmcgYmFuZHdpZHRo IG9mIDE2IHRocmVhZHMgVENQIHRyYWZmaWMgb3ZlciBJUHY2IEdSRSB0YXAuCkNQVTogSW50ZWwo UikgWGVvbihSKSBDUFUgRTUtMjY2MCB2MiBAIDIuMjBHSHoKTklDOiBNZWxsYW5veCBUZWNobm9s b2dpZXMgTVQyODgwMCBGYW1pbHkgW0Nvbm5lY3RYLTUgRXhdClRTTzogRW5hYmxlZApCZWZvcmU6 IDQsOTI2LjI0ICBNYnBzCk5vdyAgIDogOTQsODI3LjkxIE1icHMKCkZpeGVzOiBiM2Y2M2MzZDVl MmMgKCJuZXQvbWx4NWU6IEFkZCBuZXRkZXYgc3VwcG9ydCBmb3IgVlhMQU4gdHVubmVsaW5nIikK U2lnbmVkLW9mZi1ieTogR2FsIFByZXNzbWFuIDxnYWxwQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9m Zi1ieTogU2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+Ci0tLQogZHJpdmVycy9u ZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYyB8IDMgKystCiAxIGZpbGUg Y2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYyBiL2RyaXZlcnMv bmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMKaW5kZXggY2MxMWJiYi4u NTE3NzI3ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9j b3JlL2VuX21haW4uYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2Nv cmUvZW5fbWFpbi5jCkBAIC0zNTU0LDYgKzM1NTQsNyBAQCBzdGF0aWMgbmV0ZGV2X2ZlYXR1cmVz X3QgbWx4NWVfdHVubmVsX2ZlYXR1cmVzX2NoZWNrKHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2LAog CQkJCQkJICAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQkJCQkJICAgICBuZXRkZXZfZmVhdHVy ZXNfdCBmZWF0dXJlcykKIHsKKwl1bnNpZ25lZCBpbnQgb2Zmc2V0ID0gMDsKIAlzdHJ1Y3QgdWRw aGRyICp1ZHBoOwogCXU4IHByb3RvOwogCXUxNiBwb3J0OwpAQCAtMzU2Myw3ICszNTY0LDcgQEAg c3RhdGljIG5ldGRldl9mZWF0dXJlc190IG1seDVlX3R1bm5lbF9mZWF0dXJlc19jaGVjayhzdHJ1 Y3QgbWx4NWVfcHJpdiAqcHJpdiwKIAkJcHJvdG8gPSBpcF9oZHIoc2tiKS0+cHJvdG9jb2w7CiAJ CWJyZWFrOwogCWNhc2UgaHRvbnMoRVRIX1BfSVBWNik6Ci0JCXByb3RvID0gaXB2Nl9oZHIoc2ti KS0+bmV4dGhkcjsKKwkJcHJvdG8gPSBpcHY2X2ZpbmRfaGRyKHNrYiwgJm9mZnNldCwgLTEsIE5V TEwsIE5VTEwpOwogCQlicmVhazsKIAlkZWZhdWx0OgogCQlnb3RvIG91dDsKLS0gCjIuOS41CgoK RnJvbSAyY2ViNDQxYWE1NDg1NjlhYzkyODc5YjRkZDliOWM2OTdkNDc5ZDVkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBHYWwgUHJlc3NtYW4gPGdhbHBAbWVsbGFub3guY29tPgpEYXRl OiBTdW4sIDMgRGVjIDIwMTcgMTM6NTg6NTAgKzAyMDAKU3ViamVjdDogW1BBVENIIDMzLzU4XSBu ZXQvbWx4NWU6IEFkZCByZWZjb3VudCB0byBWWExBTiBzdHJ1Y3R1cmUKClsgVXBzdHJlYW0gY29t bWl0IDIzZjRjYzJjZDllZDkyNTcwNjQ3MjIwYWNhNjBkMDE5N2Q4YzFmYTkgXQoKQSByZWZjb3Vu dCBtZWNoYW5pc20gbXVzdCBiZSBpbXBsZW1lbnRlZCBpbiBvcmRlciB0byBwcmV2ZW50IHVud2Fu dGVkCnNjZW5hcmlvcyBzdWNoIGFzOgotIE9wZW4gYW4gSVB2NCBWWExBTiBpbnRlcmZhY2UKLSBP cGVuIGFuIElQdjYgVlhMQU4gaW50ZXJmYWNlIChkaWZmZXJlbnQgc29ja2V0KQotIFJlbW92ZSBv bmUgb2YgdGhlIGludGVyZmFjZXMKCldpdGggY3VycmVudCBpbXBsZW1lbnRhdGlvbiwgdGhlIFVE UCBwb3J0IHdpbGwgYmUgcmVtb3ZlZCBmcm9tIG91ciBWWExBTgpkYXRhYmFzZSBhbmQgdHVybiBv ZmYgdGhlIG9mZmxvYWRzIGZvciB0aGUgb3RoZXIgaW50ZXJmYWNlLCB3aGljaCBpcwpzdGlsbCBh Y3RpdmUuClRoZSByZWZlcmVuY2UgY291bnQgbWVjaGFuaXNtIHdpbGwgb25seSBhbGxvdyBVRFAg cG9ydCByZW1vdmFscyBvbmNlIGFsbApjb25zdW1lcnMgYXJlIGdvbmUuCgpGaXhlczogYjNmNjNj M2Q1ZTJjICgibmV0L21seDVlOiBBZGQgbmV0ZGV2IHN1cHBvcnQgZm9yIFZYTEFOIHR1bm5lbGlu ZyIpClNpZ25lZC1vZmYtYnk6IEdhbCBQcmVzc21hbiA8Z2FscEBtZWxsYW5veC5jb20+ClNpZ25l ZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0KIGRyaXZl cnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS92eGxhbi5jIHwgNTAgKysrKysrKysr KysrKy0tLS0tLS0tLS0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3Jl L3Z4bGFuLmggfCAgMSArCiAyIGZpbGVzIGNoYW5nZWQsIDI4IGluc2VydGlvbnMoKyksIDIzIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21s eDUvY29yZS92eGxhbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3Jl L3Z4bGFuLmMKaW5kZXggZjgyMzgyNy4uMjVmNzgyMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3Z4bGFuLmMKKysrIGIvZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3Z4bGFuLmMKQEAgLTg4LDggKzg4LDExIEBAIHN0YXRp YyB2b2lkIG1seDVlX3Z4bGFuX2FkZF9wb3J0KHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAlz dHJ1Y3QgbWx4NWVfdnhsYW4gKnZ4bGFuOwogCWludCBlcnI7CiAKLQlpZiAobWx4NWVfdnhsYW5f bG9va3VwX3BvcnQocHJpdiwgcG9ydCkpCisJdnhsYW4gPSBtbHg1ZV92eGxhbl9sb29rdXBfcG9y dChwcml2LCBwb3J0KTsKKwlpZiAodnhsYW4pIHsKKwkJYXRvbWljX2luYygmdnhsYW4tPnJlZmNv dW50KTsKIAkJZ290byBmcmVlX3dvcms7CisJfQogCiAJaWYgKG1seDVlX3Z4bGFuX2NvcmVfYWRk X3BvcnRfY21kKHByaXYtPm1kZXYsIHBvcnQpKQogCQlnb3RvIGZyZWVfd29yazsKQEAgLTk5LDYg KzEwMiw3IEBAIHN0YXRpYyB2b2lkIG1seDVlX3Z4bGFuX2FkZF9wb3J0KHN0cnVjdCB3b3JrX3N0 cnVjdCAqd29yaykKIAkJZ290byBlcnJfZGVsZXRlX3BvcnQ7CiAKIAl2eGxhbi0+dWRwX3BvcnQg PSBwb3J0OworCWF0b21pY19zZXQoJnZ4bGFuLT5yZWZjb3VudCwgMSk7CiAKIAlzcGluX2xvY2tf YmgoJnZ4bGFuX2RiLT5sb2NrKTsKIAllcnIgPSByYWRpeF90cmVlX2luc2VydCgmdnhsYW5fZGIt PnRyZWUsIHZ4bGFuLT51ZHBfcG9ydCwgdnhsYW4pOwpAQCAtMTE2LDMyICsxMjAsMzMgQEAgc3Rh dGljIHZvaWQgbWx4NWVfdnhsYW5fYWRkX3BvcnQoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQog CWtmcmVlKHZ4bGFuX3dvcmspOwogfQogCi1zdGF0aWMgdm9pZCBfX21seDVlX3Z4bGFuX2NvcmVf ZGVsX3BvcnQoc3RydWN0IG1seDVlX3ByaXYgKnByaXYsIHUxNiBwb3J0KQorc3RhdGljIHZvaWQg bWx4NWVfdnhsYW5fZGVsX3BvcnQoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogeworCXN0cnVj dCBtbHg1ZV92eGxhbl93b3JrICp2eGxhbl93b3JrID0KKwkJY29udGFpbmVyX29mKHdvcmssIHN0 cnVjdCBtbHg1ZV92eGxhbl93b3JrLCB3b3JrKTsKKwlzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiAg ICAgICAgID0gdnhsYW5fd29yay0+cHJpdjsKIAlzdHJ1Y3QgbWx4NWVfdnhsYW5fZGIgKnZ4bGFu X2RiID0gJnByaXYtPnZ4bGFuOworCXUxNiBwb3J0ID0gdnhsYW5fd29yay0+cG9ydDsKIAlzdHJ1 Y3QgbWx4NWVfdnhsYW4gKnZ4bGFuOworCWJvb2wgcmVtb3ZlID0gZmFsc2U7CiAKIAlzcGluX2xv Y2tfYmgoJnZ4bGFuX2RiLT5sb2NrKTsKLQl2eGxhbiA9IHJhZGl4X3RyZWVfZGVsZXRlKCZ2eGxh bl9kYi0+dHJlZSwgcG9ydCk7Ci0Jc3Bpbl91bmxvY2tfYmgoJnZ4bGFuX2RiLT5sb2NrKTsKLQor CXZ4bGFuID0gcmFkaXhfdHJlZV9sb29rdXAoJnZ4bGFuX2RiLT50cmVlLCBwb3J0KTsKIAlpZiAo IXZ4bGFuKQotCQlyZXR1cm47Ci0KLQltbHg1ZV92eGxhbl9jb3JlX2RlbF9wb3J0X2NtZChwcml2 LT5tZGV2LCB2eGxhbi0+dWRwX3BvcnQpOwotCi0Ja2ZyZWUodnhsYW4pOwotfQorCQlnb3RvIG91 dF91bmxvY2s7CiAKLXN0YXRpYyB2b2lkIG1seDVlX3Z4bGFuX2RlbF9wb3J0KHN0cnVjdCB3b3Jr X3N0cnVjdCAqd29yaykKLXsKLQlzdHJ1Y3QgbWx4NWVfdnhsYW5fd29yayAqdnhsYW5fd29yayA9 Ci0JCWNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgbWx4NWVfdnhsYW5fd29yaywgd29yayk7Ci0J c3RydWN0IG1seDVlX3ByaXYgKnByaXYgPSB2eGxhbl93b3JrLT5wcml2OwotCXUxNiBwb3J0ID0g dnhsYW5fd29yay0+cG9ydDsKKwlpZiAoYXRvbWljX2RlY19hbmRfdGVzdCgmdnhsYW4tPnJlZmNv dW50KSkgeworCQlyYWRpeF90cmVlX2RlbGV0ZSgmdnhsYW5fZGItPnRyZWUsIHBvcnQpOworCQly ZW1vdmUgPSB0cnVlOworCX0KIAotCV9fbWx4NWVfdnhsYW5fY29yZV9kZWxfcG9ydChwcml2LCBw b3J0KTsKK291dF91bmxvY2s6CisJc3Bpbl91bmxvY2tfYmgoJnZ4bGFuX2RiLT5sb2NrKTsKIAor CWlmIChyZW1vdmUpIHsKKwkJbWx4NWVfdnhsYW5fY29yZV9kZWxfcG9ydF9jbWQocHJpdi0+bWRl diwgcG9ydCk7CisJCWtmcmVlKHZ4bGFuKTsKKwl9CiAJa2ZyZWUodnhsYW5fd29yayk7CiB9CiAK QEAgLTE3MSwxMiArMTc2LDExIEBAIHZvaWQgbWx4NWVfdnhsYW5fY2xlYW51cChzdHJ1Y3QgbWx4 NWVfcHJpdiAqcHJpdikKIAlzdHJ1Y3QgbWx4NWVfdnhsYW4gKnZ4bGFuOwogCXVuc2lnbmVkIGlu dCBwb3J0ID0gMDsKIAotCXNwaW5fbG9ja19iaCgmdnhsYW5fZGItPmxvY2spOworCS8qIExvY2ts ZXNzIHNpbmNlIHdlIGFyZSB0aGUgb25seSByYWRpeC10cmVlIGNvbnN1bWVycywgd3EgaXMgZGlz YWJsZWQgKi8KIAl3aGlsZSAocmFkaXhfdHJlZV9nYW5nX2xvb2t1cCgmdnhsYW5fZGItPnRyZWUs ICh2b2lkICoqKSZ2eGxhbiwgcG9ydCwgMSkpIHsKIAkJcG9ydCA9IHZ4bGFuLT51ZHBfcG9ydDsK LQkJc3Bpbl91bmxvY2tfYmgoJnZ4bGFuX2RiLT5sb2NrKTsKLQkJX19tbHg1ZV92eGxhbl9jb3Jl X2RlbF9wb3J0KHByaXYsICh1MTYpcG9ydCk7Ci0JCXNwaW5fbG9ja19iaCgmdnhsYW5fZGItPmxv Y2spOworCQlyYWRpeF90cmVlX2RlbGV0ZSgmdnhsYW5fZGItPnRyZWUsIHBvcnQpOworCQltbHg1 ZV92eGxhbl9jb3JlX2RlbF9wb3J0X2NtZChwcml2LT5tZGV2LCBwb3J0KTsKKwkJa2ZyZWUodnhs YW4pOwogCX0KLQlzcGluX3VubG9ja19iaCgmdnhsYW5fZGItPmxvY2spOwogfQpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3Z4bGFuLmggYi9kcml2 ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvdnhsYW4uaAppbmRleCA1ZGVmMTJj Li41ZWY2YWU3IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1 L2NvcmUvdnhsYW4uaAorKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2Nv cmUvdnhsYW4uaApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgImVuLmgiCiAKIHN0cnVjdCBt bHg1ZV92eGxhbiB7CisJYXRvbWljX3QgcmVmY291bnQ7CiAJdTE2IHVkcF9wb3J0OwogfTsKIAot LSAKMi45LjUKCgpGcm9tIDQ3NmQyNDk1OTk3NTAzOWIwY2ZiZTgxNDRlMTU3NjQ0Y2YyMGUwNjkg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEdhbCBQcmVzc21hbiA8Z2FscEBtZWxsYW5v eC5jb20+CkRhdGU6IE1vbiwgNCBEZWMgMjAxNyAwOTo1Nzo0MyArMDIwMApTdWJqZWN0OiBbUEFU Q0ggMzQvNThdIG5ldC9tbHg1ZTogUHJldmVudCBwb3NzaWJsZSByYWNlcyBpbiBWWExBTiBjb250 cm9sIGZsb3cKClsgVXBzdHJlYW0gY29tbWl0IDBjMWNjOGIyMjE1ZjUxMjJjYTYxNGI1YWRjYTYw MzQ2MDE4NzU4YzMgXQoKV2hlbiBjYWxsaW5nIGFkZC9yZW1vdmUgVlhMQU4gcG9ydCwgYSBsb2Nr IG11c3QgYmUgaGVsZCBpbiBvcmRlciB0bwpwcmV2ZW50IHJhY2Ugc2NlbmFyaW9zIHdoZW4gbW9y ZSB0aGFuIG9uZSBhZGQvcmVtb3ZlIGhhcHBlbnMgYXQgdGhlCnNhbWUgdGltZS4KRml4IGJ5IGhv bGRpbmcgb3VyIHN0YXRlX2xvY2sgKG11dGV4KSBhcyBkb25lIGJ5IGFsbCBvdGhlciBwYXJ0cyBv ZiB0aGUKZHJpdmVyLgpOb3RlIHRoYXQgdGhlIHNwaW5sb2NrIHByb3RlY3RpbmcgdGhlIHJhZGl4 LXRyZWUgaXMgc3RpbGwgbmVlZGVkIGluCm9yZGVyIHRvIHN5bmNocm9uaXplIHJhZGl4LXRyZWUg YWNjZXNzIGZyb20gc29mdGlycSBjb250ZXh0LgoKRml4ZXM6IGIzZjYzYzNkNWUyYyAoIm5ldC9t bHg1ZTogQWRkIG5ldGRldiBzdXBwb3J0IGZvciBWWExBTiB0dW5uZWxpbmciKQpTaWduZWQtb2Zm LWJ5OiBHYWwgUHJlc3NtYW4gPGdhbHBAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBTYWVl ZCBNYWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94LmNvbT4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5l dC9tZWxsYW5veC9tbHg1L2NvcmUvdnhsYW4uYyB8IDQgKysrKwogMSBmaWxlIGNoYW5nZWQsIDQg aW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94 L21seDUvY29yZS92eGxhbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9j b3JlL3Z4bGFuLmMKaW5kZXggMjVmNzgyMy4uMmY3NDk1MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9u ZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3Z4bGFuLmMKKysrIGIvZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3Z4bGFuLmMKQEAgLTg4LDYgKzg4LDcgQEAgc3Rh dGljIHZvaWQgbWx4NWVfdnhsYW5fYWRkX3BvcnQoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQog CXN0cnVjdCBtbHg1ZV92eGxhbiAqdnhsYW47CiAJaW50IGVycjsKIAorCW11dGV4X2xvY2soJnBy aXYtPnN0YXRlX2xvY2spOwogCXZ4bGFuID0gbWx4NWVfdnhsYW5fbG9va3VwX3BvcnQocHJpdiwg cG9ydCk7CiAJaWYgKHZ4bGFuKSB7CiAJCWF0b21pY19pbmMoJnZ4bGFuLT5yZWZjb3VudCk7CkBA IC0xMTcsNiArMTE4LDcgQEAgc3RhdGljIHZvaWQgbWx4NWVfdnhsYW5fYWRkX3BvcnQoc3RydWN0 IHdvcmtfc3RydWN0ICp3b3JrKQogZXJyX2RlbGV0ZV9wb3J0OgogCW1seDVlX3Z4bGFuX2NvcmVf ZGVsX3BvcnRfY21kKHByaXYtPm1kZXYsIHBvcnQpOwogZnJlZV93b3JrOgorCW11dGV4X3VubG9j aygmcHJpdi0+c3RhdGVfbG9jayk7CiAJa2ZyZWUodnhsYW5fd29yayk7CiB9CiAKQEAgLTEzMCw2 ICsxMzIsNyBAQCBzdGF0aWMgdm9pZCBtbHg1ZV92eGxhbl9kZWxfcG9ydChzdHJ1Y3Qgd29ya19z dHJ1Y3QgKndvcmspCiAJc3RydWN0IG1seDVlX3Z4bGFuICp2eGxhbjsKIAlib29sIHJlbW92ZSA9 IGZhbHNlOwogCisJbXV0ZXhfbG9jaygmcHJpdi0+c3RhdGVfbG9jayk7CiAJc3Bpbl9sb2NrX2Jo KCZ2eGxhbl9kYi0+bG9jayk7CiAJdnhsYW4gPSByYWRpeF90cmVlX2xvb2t1cCgmdnhsYW5fZGIt PnRyZWUsIHBvcnQpOwogCWlmICghdnhsYW4pCkBAIC0xNDcsNiArMTUwLDcgQEAgc3RhdGljIHZv aWQgbWx4NWVfdnhsYW5fZGVsX3BvcnQoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCQltbHg1 ZV92eGxhbl9jb3JlX2RlbF9wb3J0X2NtZChwcml2LT5tZGV2LCBwb3J0KTsKIAkJa2ZyZWUodnhs YW4pOwogCX0KKwltdXRleF91bmxvY2soJnByaXYtPnN0YXRlX2xvY2spOwogCWtmcmVlKHZ4bGFu X3dvcmspOwogfQogCi0tIAoyLjkuNQoKCkZyb20gMzRmMTBlYzJiOTM2NWMzMDk3ZWQ3NTM1ZjQx NDYwOGVhZmFjY2FlNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTW9uaSBTaG91YSA8 bW9uaXNAbWVsbGFub3guY29tPgpEYXRlOiBNb24sIDQgRGVjIDIwMTcgMDg6NTk6MjUgKzAyMDAK U3ViamVjdDogW1BBVENIIDM1LzU4XSBuZXQvbWx4NTogRml4IGVycm9yIGZsb3cgaW4gQ1JFQVRF X1FQIGNvbW1hbmQKClsgVXBzdHJlYW0gY29tbWl0IGRiZmYyNmU0NGRjM2VjNGRlNjU3ODczM2Iw NTRhMDExNDY1MmE3NjQgXQoKSW4gZXJyb3IgZmxvdywgd2hlbiBERVNUUk9ZX1FQIGNvbW1hbmQg c2hvdWxkIGJlIGV4ZWN1dGVkLCB0aGUgd3JvbmcKbWFpbGJveCB3YXMgc2V0IHdpdGggZGF0YSwg bm90IHRoZSBvbmUgdGhhdCBpcyB3cml0dGVuIHRvIGhhcmR3YXJlLApGaXggdGhhdC4KCkZpeGVz OiAwOWE3ZDllY2ExYTYgJ3tuZXQsSUJ9L21seDU6IFFQL1hSQ0QgY29tbWFuZHMgdmlhIG1seDUg aWZjJwpTaWduZWQtb2ZmLWJ5OiBNb25pIFNob3VhIDxtb25pc0BtZWxsYW5veC5jb20+ClNpZ25l ZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0KIGRyaXZl cnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9xcC5jIHwgNCArKy0tCiAxIGZpbGUg Y2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9xcC5jIGIvZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3FwLmMKaW5kZXggZGI5ZTY2NS4uODg5MTMwZSAx MDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3FwLmMK KysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3FwLmMKQEAgLTIx Myw4ICsyMTMsOCBAQCBpbnQgbWx4NV9jb3JlX2NyZWF0ZV9xcChzdHJ1Y3QgbWx4NV9jb3JlX2Rl diAqZGV2LAogZXJyX2NtZDoKIAltZW1zZXQoZGluLCAwLCBzaXplb2YoZGluKSk7CiAJbWVtc2V0 KGRvdXQsIDAsIHNpemVvZihkb3V0KSk7Ci0JTUxYNV9TRVQoZGVzdHJveV9xcF9pbiwgaW4sIG9w Y29kZSwgTUxYNV9DTURfT1BfREVTVFJPWV9RUCk7Ci0JTUxYNV9TRVQoZGVzdHJveV9xcF9pbiwg aW4sIHFwbiwgcXAtPnFwbik7CisJTUxYNV9TRVQoZGVzdHJveV9xcF9pbiwgZGluLCBvcGNvZGUs IE1MWDVfQ01EX09QX0RFU1RST1lfUVApOworCU1MWDVfU0VUKGRlc3Ryb3lfcXBfaW4sIGRpbiwg cXBuLCBxcC0+cXBuKTsKIAltbHg1X2NtZF9leGVjKGRldiwgZGluLCBzaXplb2YoZGluKSwgZG91 dCwgc2l6ZW9mKGRvdXQpKTsKIAlyZXR1cm4gZXJyOwogfQotLSAKMi45LjUKCgpGcm9tIDYxNjU0 NmYyN2IyMWU4M2Q1ODBmMGJhNGMxNDYzMmJhYzM1NjZjZDYgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IEVyaWMgR2FydmVyIDxlQGVyaWcubWU+CkRhdGU6IFdlZCwgMjAgRGVjIDIwMTcg MTU6MDk6MjIgLTA1MDAKU3ViamVjdDogW1BBVENIIDM2LzU4XSBvcGVudnN3aXRjaDogRml4IHBv cF92bGFuIGFjdGlvbiBmb3IgZG91YmxlIHRhZ2dlZAogZnJhbWVzCgpbIFVwc3RyZWFtIGNvbW1p dCBjNDhlNzQ3MzZmY2NmMjVmYjMyYmIwMTU0MjYzNTllMWMyMDE2ZTNiIF0KCnNrYl92bGFuX3Bv cCgpIGV4cGVjdHMgc2tiLT5wcm90b2NvbCB0byBiZSBhIHZhbGlkIFRQSUQgZm9yIGRvdWJsZQp0 YWdnZWQgZnJhbWVzLiBTbyBzZXQgc2tiLT5wcm90b2NvbCB0byB0aGUgVFBJRCBhbmQgbGV0IHNr Yl92bGFuX3BvcCgpCnNoaWZ0IHRoZSB0cnVlIGV0aGVydHlwZSBpbnRvIHBvc2l0aW9uIGZvciB1 cy4KCkZpeGVzOiA1MTA4YmJhZGRjMzcgKCJvcGVudnN3aXRjaDogYWRkIHByb2Nlc3Npbmcgb2Yg TDMgcGFja2V0cyIpClNpZ25lZC1vZmYtYnk6IEVyaWMgR2FydmVyIDxlQGVyaWcubWU+ClJldmll d2VkLWJ5OiBKaXJpIEJlbmMgPGpiZW5jQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvb3BlbnZzd2l0Y2gvZmxv dy5jIHwgMTUgKysrKysrKysrKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygr KSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jIGIv bmV0L29wZW52c3dpdGNoL2Zsb3cuYwppbmRleCBjZmI2NTJhLi5kYmUxMDc5IDEwMDY0NAotLS0g YS9uZXQvb3BlbnZzd2l0Y2gvZmxvdy5jCisrKyBiL25ldC9vcGVudnN3aXRjaC9mbG93LmMKQEAg LTUzMiw2ICs1MzIsNyBAQCBzdGF0aWMgaW50IGtleV9leHRyYWN0KHN0cnVjdCBza19idWZmICpz a2IsIHN0cnVjdCBzd19mbG93X2tleSAqa2V5KQogCQkJcmV0dXJuIC1FSU5WQUw7CiAKIAkJc2ti X3Jlc2V0X25ldHdvcmtfaGVhZGVyKHNrYik7CisJCWtleS0+ZXRoLnR5cGUgPSBza2ItPnByb3Rv Y29sOwogCX0gZWxzZSB7CiAJCWV0aCA9IGV0aF9oZHIoc2tiKTsKIAkJZXRoZXJfYWRkcl9jb3B5 KGtleS0+ZXRoLnNyYywgZXRoLT5oX3NvdXJjZSk7CkBAIC01NDUsMTUgKzU0NiwyMyBAQCBzdGF0 aWMgaW50IGtleV9leHRyYWN0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBzd19mbG93X2tl eSAqa2V5KQogCQlpZiAodW5saWtlbHkocGFyc2Vfdmxhbihza2IsIGtleSkpKQogCQkJcmV0dXJu IC1FTk9NRU07CiAKLQkJc2tiLT5wcm90b2NvbCA9IHBhcnNlX2V0aGVydHlwZShza2IpOwotCQlp ZiAodW5saWtlbHkoc2tiLT5wcm90b2NvbCA9PSBodG9ucygwKSkpCisJCWtleS0+ZXRoLnR5cGUg PSBwYXJzZV9ldGhlcnR5cGUoc2tiKTsKKwkJaWYgKHVubGlrZWx5KGtleS0+ZXRoLnR5cGUgPT0g aHRvbnMoMCkpKQogCQkJcmV0dXJuIC1FTk9NRU07CiAKKwkJLyogTXVsdGlwbGUgdGFnZ2VkIHBh Y2tldHMgbmVlZCB0byByZXRhaW4gVFBJRCB0byBzYXRpc2Z5CisJCSAqIHNrYl92bGFuX3BvcCgp LCB3aGljaCB3aWxsIGxhdGVyIHNoaWZ0IHRoZSBldGhlcnR5cGUgaW50bworCQkgKiBza2ItPnBy b3RvY29sLgorCQkgKi8KKwkJaWYgKGtleS0+ZXRoLmN2bGFuLnRjaSAmIGh0b25zKFZMQU5fVEFH X1BSRVNFTlQpKQorCQkJc2tiLT5wcm90b2NvbCA9IGtleS0+ZXRoLmN2bGFuLnRwaWQ7CisJCWVs c2UKKwkJCXNrYi0+cHJvdG9jb2wgPSBrZXktPmV0aC50eXBlOworCiAJCXNrYl9yZXNldF9uZXR3 b3JrX2hlYWRlcihza2IpOwogCQlfX3NrYl9wdXNoKHNrYiwgc2tiLT5kYXRhIC0gc2tiX21hY19o ZWFkZXIoc2tiKSk7CiAJfQogCXNrYl9yZXNldF9tYWNfbGVuKHNrYik7Ci0Ja2V5LT5ldGgudHlw ZSA9IHNrYi0+cHJvdG9jb2w7CiAKIAkvKiBOZXR3b3JrIGxheWVyLiAqLwogCWlmIChrZXktPmV0 aC50eXBlID09IGh0b25zKEVUSF9QX0lQKSkgewotLSAKMi45LjUKCgpGcm9tIDRlNzY0ZjQ0ZTI1 MWY1ZmJkNWMzZDg5NTZkZmU4YWI0NTk5ZTVlNGEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IEJlcnQgS2Vud2FyZCA8YmtlbndhcmRAc29sYXJmbGFyZS5jb20+CkRhdGU6IFRodSwgNyBE ZWMgMjAxNyAxNzoxODo1OCArMDAwMApTdWJqZWN0OiBbUEFUQ0ggMzcvNThdIHNmYzogcGFzcyB2 YWxpZCBwb2ludGVycyBmcm9tIGVmeF9lbnF1ZXVlX3Vud2luZAoKWyBVcHN0cmVhbSBjb21taXQg ZDRhN2E4ODkzZDRjZGJjODlkNzlhYzRhYTcwNGJmOGQ0YjY3YjM2OCBdCgpUaGUgYnl0ZXNfY29t cGwgYW5kIHBrdHNfY29tcGwgcG9pbnRlcnMgcGFzc2VkIHRvIGVmeF9kZXF1ZXVlX2J1ZmZlcnMK Y2Fubm90IGJlIE5VTEwuIEFkZCBhIHBhcmFub2lkIHdhcm5pbmcgdG8gY2hlY2sgdGhpcyBjb25k aXRpb24gYW5kIGZpeAp0aGUgb25lIGNhc2Ugd2hlcmUgdGhleSB3ZXJlIE5VTEwuCgplZnhfZW5x dWV1ZV91bndpbmQoKSBpcyBjYWxsZWQgdmVyeSByYXJlbHksIGR1cmluZyBlcnJvciBoYW5kbGlu Zy4KV2l0aG91dCB0aGlzIGZpeCBpdCB3b3VsZCBmYWlsIHdpdGggYSBOVUxMIHBvaW50ZXIgZGVy ZWZlcmVuY2UgaW4KZWZ4X2RlcXVldWVfYnVmZmVyLCB3aXRoIGVmeF9lbnF1ZXVlX3NrYiBpbiB0 aGUgY2FsbCBzdGFjay4KCkZpeGVzOiBlOTExN2U1MDk5ZWEgKCJzZmM6IEZpcm13YXJlLUFzc2lz dGVkIFRTTyB2ZXJzaW9uIDIiKQpSZXBvcnRlZC1ieTogSmFyb2QgV2lsc29uIDxqYXJvZEByZWRo YXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBCZXJ0IEtlbndhcmQgPGJrZW53YXJkQHNvbGFyZmxhcmUu Y29tPgpUZXN0ZWQtYnk6IEphcm9kIFdpbHNvbiA8amFyb2RAcmVkaGF0LmNvbT4KQWNrZWQtYnk6 IEphcm9kIFdpbHNvbiA8amFyb2RAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4g TWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L3Nm Yy90eC5jIHwgNSArKysrLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMSBkZWxl dGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy90eC5jIGIvZHJp dmVycy9uZXQvZXRoZXJuZXQvc2ZjL3R4LmMKaW5kZXggMzJiZjFmZS4uOWI4NWNiZCAxMDA2NDQK LS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL3R4LmMKKysrIGIvZHJpdmVycy9uZXQvZXRo ZXJuZXQvc2ZjL3R4LmMKQEAgLTc3LDYgKzc3LDcgQEAgc3RhdGljIHZvaWQgZWZ4X2RlcXVldWVf YnVmZmVyKHN0cnVjdCBlZnhfdHhfcXVldWUgKnR4X3F1ZXVlLAogCX0KIAogCWlmIChidWZmZXIt PmZsYWdzICYgRUZYX1RYX0JVRl9TS0IpIHsKKwkJRUZYX1dBUk5fT05fUEFSQU5PSUQoIXBrdHNf Y29tcGwgfHwgIWJ5dGVzX2NvbXBsKTsKIAkJKCpwa3RzX2NvbXBsKSsrOwogCQkoKmJ5dGVzX2Nv bXBsKSArPSBidWZmZXItPnNrYi0+bGVuOwogCQlkZXZfY29uc3VtZV9za2JfYW55KChzdHJ1Y3Qg c2tfYnVmZiAqKWJ1ZmZlci0+c2tiKTsKQEAgLTQyNiwxMiArNDI3LDE0IEBAIHN0YXRpYyBpbnQg ZWZ4X3R4X21hcF9kYXRhKHN0cnVjdCBlZnhfdHhfcXVldWUgKnR4X3F1ZXVlLCBzdHJ1Y3Qgc2tf YnVmZiAqc2tiLAogc3RhdGljIHZvaWQgZWZ4X2VucXVldWVfdW53aW5kKHN0cnVjdCBlZnhfdHhf cXVldWUgKnR4X3F1ZXVlKQogewogCXN0cnVjdCBlZnhfdHhfYnVmZmVyICpidWZmZXI7CisJdW5z aWduZWQgaW50IGJ5dGVzX2NvbXBsID0gMDsKKwl1bnNpZ25lZCBpbnQgcGt0c19jb21wbCA9IDA7 CiAKIAkvKiBXb3JrIGJhY2t3YXJkcyB1bnRpbCB3ZSBoaXQgdGhlIG9yaWdpbmFsIGluc2VydCBw b2ludGVyIHZhbHVlICovCiAJd2hpbGUgKHR4X3F1ZXVlLT5pbnNlcnRfY291bnQgIT0gdHhfcXVl dWUtPndyaXRlX2NvdW50KSB7CiAJCS0tdHhfcXVldWUtPmluc2VydF9jb3VudDsKIAkJYnVmZmVy ID0gX19lZnhfdHhfcXVldWVfZ2V0X2luc2VydF9idWZmZXIodHhfcXVldWUpOwotCQllZnhfZGVx dWV1ZV9idWZmZXIodHhfcXVldWUsIGJ1ZmZlciwgTlVMTCwgTlVMTCk7CisJCWVmeF9kZXF1ZXVl X2J1ZmZlcih0eF9xdWV1ZSwgYnVmZmVyLCAmcGt0c19jb21wbCwgJmJ5dGVzX2NvbXBsKTsKIAl9 CiB9CiAKLS0gCjIuOS41CgoKRnJvbSAzY2ZhZTdlZTVhZTc3MDhhMzFhMGEyZjZhODkzYjIyZjNh OTUxNDkzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBGbG9yaWFuIEZhaW5lbGxpIDxm LmZhaW5lbGxpQGdtYWlsLmNvbT4KRGF0ZTogVHVlLCAyMSBOb3YgMjAxNyAxNzozNzo0NiAtMDgw MApTdWJqZWN0OiBbUEFUQ0ggMzgvNThdIG5ldDogZHNhOiBiY21fc2YyOiBDbGVhciBJRERRX0dM T0JBTF9QV1IgYml0IGZvciBQSFkKClsgVXBzdHJlYW0gY29tbWl0IDRiNTJkMDEwMTEzZTExMDA2 YTM4OWYyYTgzMTUxNjdlZGU5ZTBiMTAgXQoKVGhlIFBIWSBvbiBCQ003Mjc4IGhhcyBhbiBhZGRp dGlvbmFsIGJpdCB0aGF0IG5lZWRzIHRvIGJlIGNsZWFyZWQ6CklERFFfR0xPQkFMX1BXUiwgd2l0 aG91dCBkb2luZyB0aGlzLCB0aGUgUEhZIHJlbWFpbnMgc3R1Y2sgaW4gcmVzZXQgb3V0Cm9mIHN1 c3BlbmQvcmVzdW1lIGN5Y2xlcy4KCkZpeGVzOiAwZmU5OTMzODA0ZWIgKCJuZXQ6IGRzYTogYmNt X3NmMjogQWRkIHN1cHBvcnQgZm9yIEJDTTcyNzggaW50ZWdyYXRlZCBzd2l0Y2giKQpTaWduZWQt b2ZmLWJ5OiBGbG9yaWFuIEZhaW5lbGxpIDxmLmZhaW5lbGxpQGdtYWlsLmNvbT4KU2lnbmVkLW9m Zi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMv bmV0L2RzYS9iY21fc2YyLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyks IDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvYmNtX3NmMi5jIGIv ZHJpdmVycy9uZXQvZHNhL2JjbV9zZjIuYwppbmRleCBkN2I1M2Q1Li43MmQ2ZmZiIDEwMDY0NAot LS0gYS9kcml2ZXJzL25ldC9kc2EvYmNtX3NmMi5jCisrKyBiL2RyaXZlcnMvbmV0L2RzYS9iY21f c2YyLmMKQEAgLTE2Nyw3ICsxNjcsNyBAQCBzdGF0aWMgdm9pZCBiY21fc2YyX2dwaHlfZW5hYmxl X3NldChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGJvb2wgZW5hYmxlKQogCXJlZyA9IHJlZ19yZWFk bChwcml2LCBSRUdfU1BIWV9DTlRSTCk7CiAJaWYgKGVuYWJsZSkgewogCQlyZWcgfD0gUEhZX1JF U0VUOwotCQlyZWcgJj0gfihFWFRfUFdSX0RPV04gfCBJRERRX0JJQVMgfCBDSzI1X0RJUyk7CisJ CXJlZyAmPSB+KEVYVF9QV1JfRE9XTiB8IElERFFfQklBUyB8IElERFFfR0xPQkFMX1BXUiB8IENL MjVfRElTKTsKIAkJcmVnX3dyaXRlbChwcml2LCByZWcsIFJFR19TUEhZX0NOVFJMKTsKIAkJdWRl bGF5KDIxKTsKIAkJcmVnID0gcmVnX3JlYWRsKHByaXYsIFJFR19TUEhZX0NOVFJMKTsKLS0gCjIu OS41CgoKRnJvbSA5ZjY5NmM4YzZkMTA3NTI4ZmIwZDIzMTRjZmQ0YjFlNWIzNDg4NzQxIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKdWxpYW4gV2llZG1hbm4gPGp3aUBsaW51eC52bmV0 LmlibS5jb20+CkRhdGU6IFdlZCwgMjAgRGVjIDIwMTcgMTg6MDc6MTggKzAxMDAKU3ViamVjdDog W1BBVENIIDM5LzU4XSBzMzkwL3FldGg6IGZpeCBlcnJvciBoYW5kbGluZyBpbiBjaGVja3N1bSBj bWQgY2FsbGJhY2sKClsgVXBzdHJlYW0gY29tbWl0IGFkM2NiZjYxMzMyOTE0NzExZTVmNTA2OTcy YjFkYzlhZjhkNjIxNDYgXQoKTWFrZSBzdXJlIHRvIGNoZWNrIGJvdGggcmV0dXJuIGNvZGUgZmll bGRzIGJlZm9yZSBwcm9jZXNzaW5nIHRoZQpyZXNwb25zZS4gT3RoZXJ3aXNlIHdlIHJpc2sgb3Bl cmF0aW5nIG9uIGludmFsaWQgZGF0YS4KCkZpeGVzOiBjOTQ3NTM2OWJkMmIgKCJzMzkwL3FldGg6 IHJld29yayBSWC9UWCBjaGVja3N1bSBvZmZsb2FkIikKU2lnbmVkLW9mZi1ieTogSnVsaWFuIFdp ZWRtYW5uIDxqd2lAbGludXgudm5ldC5pYm0uY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBN aWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9zMzkwL25ldC9xZXRoX2Nv cmVfbWFpbi5jIHwgOSArKysrKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyks IDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvbmV0L3FldGhfY29yZV9t YWluLmMgYi9kcml2ZXJzL3MzOTAvbmV0L3FldGhfY29yZV9tYWluLmMKaW5kZXggMjkxZWI4OS4u N2M3YTI0NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL25ldC9xZXRoX2NvcmVfbWFpbi5jCisr KyBiL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9jb3JlX21haW4uYwpAQCAtNTQ0NSw2ICs1NDQ1LDEz IEBAIGludCBxZXRoX3BvbGwoc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLCBpbnQgYnVkZ2V0KQog fQogRVhQT1JUX1NZTUJPTF9HUEwocWV0aF9wb2xsKTsKIAorc3RhdGljIGludCBxZXRoX3NldGFz c3Bhcm1zX2luc3BlY3RfcmMoc3RydWN0IHFldGhfaXBhX2NtZCAqY21kKQoreworCWlmICghY21k LT5oZHIucmV0dXJuX2NvZGUpCisJCWNtZC0+aGRyLnJldHVybl9jb2RlID0gY21kLT5kYXRhLnNl dGFzc3Bhcm1zLmhkci5yZXR1cm5fY29kZTsKKwlyZXR1cm4gY21kLT5oZHIucmV0dXJuX2NvZGU7 Cit9CisKIGludCBxZXRoX3NldGFzc3Bhcm1zX2NiKHN0cnVjdCBxZXRoX2NhcmQgKmNhcmQsCiAJ CQlzdHJ1Y3QgcWV0aF9yZXBseSAqcmVwbHksIHVuc2lnbmVkIGxvbmcgZGF0YSkKIHsKQEAgLTYz MDQsNyArNjMxMSw3IEBAIHN0YXRpYyBpbnQgcWV0aF9pcGFfY2hlY2tzdW1fcnVuX2NtZF9jYihz dHJ1Y3QgcWV0aF9jYXJkICpjYXJkLAogCQkJCShzdHJ1Y3QgcWV0aF9jaGVja3N1bV9jbWQgKily ZXBseS0+cGFyYW07CiAKIAlRRVRIX0NBUkRfVEVYVChjYXJkLCA0LCAiY2hrZG9jY2IiKTsKLQlp ZiAoY21kLT5oZHIucmV0dXJuX2NvZGUpCisJaWYgKHFldGhfc2V0YXNzcGFybXNfaW5zcGVjdF9y YyhjbWQpKQogCQlyZXR1cm4gMDsKIAogCW1lbXNldChjaGtzdW1fY2IsIDAsIHNpemVvZigqY2hr c3VtX2NiKSk7Ci0tIAoyLjkuNQoKCkZyb20gNWNhZWM4NWM1MTc4ZGQwZjA3NjIxY2ZjZmMxYTFl M2U1OWYyMzYwOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogWGluIExvbmcgPGx1Y2ll bi54aW5AZ21haWwuY29tPgpEYXRlOiBTdW4sIDEwIERlYyAyMDE3IDE1OjQwOjUxICswODAwClN1 YmplY3Q6IFtQQVRDSCA0MC81OF0gc2N0cDogbWFrZSBzdXJlIHN0cmVhbSBudW1zIGNhbiBtYXRj aCBvcHRsZW4gaW4KIHNjdHBfc2V0c29ja29wdF9yZXNldF9zdHJlYW1zCgpbIFVwc3RyZWFtIGNv bW1pdCAyMzQyYjhkOTViY2FlNTk0NmUxYjliOGQ1ODY0NWYzNzUwMGVmMmU3IF0KCk5vdyBpbiBz Y3RwX3NldHNvY2tvcHRfcmVzZXRfc3RyZWFtcywgaXQgb25seSBkb2VzIHRoZSBjaGVjawpvcHRs ZW4gPCBzaXplb2YoKnBhcmFtcykgZm9yIG9wdGxlbi4gQnV0IGl0J3Mgbm90IGVub3VnaCwgYXMK cGFyYW1zLT5zcnNfbnVtYmVyX3N0cmVhbXMgc2hvdWxkIGFsc28gbWF0Y2ggb3B0bGVuLgoKSWYg dGhlIHN0cmVhbXMgaW4gcGFyYW1zLT5zcnNfc3RyZWFtX2xpc3QgYXJlIGxlc3MgdGhhbiBzdHJl YW0KbnVtcyBpbiBwYXJhbXMtPnNyc19udW1iZXJfc3RyZWFtcywgbGF0ZXIgd2hlbiBkZXJlZmVy ZW5jaW5nCnRoZSBzdHJlYW0gbGlzdCwgaXQgY291bGQgY2F1c2UgYSBzbGFiLW91dC1vZi1ib3Vu ZHMgY3Jhc2gsIGFzCnJlcG9ydGVkIGJ5IHN5emJvdC4KClRoaXMgcGF0Y2ggaXMgdG8gZml4IGl0 IGJ5IGFsc28gY2hlY2tpbmcgdGhlIHN0cmVhbSBudW1iZXJzIGluCnNjdHBfc2V0c29ja29wdF9y ZXNldF9zdHJlYW1zIHRvIG1ha2Ugc3VyZSBhdCBsZWFzdCBpdCdzIG5vdApncmVhdGVyIHRoYW4g dGhlIHN0cmVhbXMgaW4gdGhlIGxpc3QuCgpGaXhlczogN2Y5ZDY4YWM5NDRlICgic2N0cDogaW1w bGVtZW50IHNlbmRlci1zaWRlIHByb2NlZHVyZXMgZm9yIFNTTiBSZXNldCBSZXF1ZXN0IFBhcmFt ZXRlciIpClJlcG9ydGVkLWJ5OiBEbWl0cnkgVnl1a292IDxkdnl1a292QGdvb2dsZS5jb20+ClNp Z25lZC1vZmYtYnk6IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNvbT4KQWNrZWQtYnk6IE1h cmNlbG8gUmljYXJkbyBMZWl0bmVyIDxtYXJjZWxvLmxlaXRuZXJAZ21haWwuY29tPgpBY2tlZC1i eTogTmVpbCBIb3JtYW4gPG5ob3JtYW5AdHV4ZHJpdmVyLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2 aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9zY3RwL3NvY2tldC5j IHwgNiArKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24o LSkKCmRpZmYgLS1naXQgYS9uZXQvc2N0cC9zb2NrZXQuYyBiL25ldC9zY3RwL3NvY2tldC5jCmlu ZGV4IDE5NzcyMzguLmRmODA2YjggMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL3NvY2tldC5jCisrKyBi L25ldC9zY3RwL3NvY2tldC5jCkBAIC0zODc0LDEzICszODc0LDE3IEBAIHN0YXRpYyBpbnQgc2N0 cF9zZXRzb2Nrb3B0X3Jlc2V0X3N0cmVhbXMoc3RydWN0IHNvY2sgKnNrLAogCXN0cnVjdCBzY3Rw X2Fzc29jaWF0aW9uICphc29jOwogCWludCByZXR2YWwgPSAtRUlOVkFMOwogCi0JaWYgKG9wdGxl biA8IHNpemVvZihzdHJ1Y3Qgc2N0cF9yZXNldF9zdHJlYW1zKSkKKwlpZiAob3B0bGVuIDwgc2l6 ZW9mKCpwYXJhbXMpKQogCQlyZXR1cm4gLUVJTlZBTDsKIAogCXBhcmFtcyA9IG1lbWR1cF91c2Vy KG9wdHZhbCwgb3B0bGVuKTsKIAlpZiAoSVNfRVJSKHBhcmFtcykpCiAJCXJldHVybiBQVFJfRVJS KHBhcmFtcyk7CiAKKwlpZiAocGFyYW1zLT5zcnNfbnVtYmVyX3N0cmVhbXMgKiBzaXplb2YoX191 MTYpID4KKwkgICAgb3B0bGVuIC0gc2l6ZW9mKCpwYXJhbXMpKQorCQlnb3RvIG91dDsKKwogCWFz b2MgPSBzY3RwX2lkMmFzc29jKHNrLCBwYXJhbXMtPnNyc19hc3NvY19pZCk7CiAJaWYgKCFhc29j KQogCQlnb3RvIG91dDsKLS0gCjIuOS41CgoKRnJvbSBjYjljZDU5YWE4MjhjMjE5YjFmNDM0MjJk OWMxMzUwM2JjYWQ0N2NiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXJ0aGFzYXJh dGh5IEJodXZhcmFnYW4gPHBhcnRoYXNhcmF0aHkuYmh1dmFyYWdhbkBnbWFpbC5jb20+CkRhdGU6 IFRodSwgMjggRGVjIDIwMTcgMTI6MDM6MDYgKzAxMDAKU3ViamVjdDogW1BBVENIIDQxLzU4XSB0 aXBjOiBmaXggaGFuZ2luZyBwb2xsKCkgZm9yIHN0cmVhbSBzb2NrZXRzCgpbIFVwc3RyZWFtIGNv bW1pdCA1MTdkN2M3OWJkYjM5ODY0ZTYxNzk2MDUwNGJkYzFhYTU2MGM3NWM2IF0KCkluIGNvbW1p dCA0MmI1MzFkZTE3ZDJmNiAoInRpcGM6IEZpeCBtaXNzaW5nIGNvbm5lY3Rpb24gcmVxdWVzdApo YW5kbGluZyIpLCB3ZSByZXBsYWNlZCB1bmNvbmRpdGlvbmFsIHdha2V1cCgpIHdpdGggY29uZHRp b25hbAp3YWtldXAgZm9yIGNsaWVudHMgd2l0aCBmbGFncyBQT0xMSU4gfCBQT0xMUkROT1JNIHwg UE9MTFJEQkFORC4KClRoaXMgYnJlYWtzIHRoZSBhcHBsaWNhdGlvbnMgd2hpY2ggZG8gYSBjb25u ZWN0IGZvbGxvd2VkIGJ5IHBvbGwKd2l0aCBQT0xMT1VUIGZsYWcuIFRoZXNlIGFwcGxpY2F0aW9u cyBhcmUgbm90IHdva2VuIHdoZW4gdGhlCmNvbm5lY3Rpb24gaXMgRVNUQUJMSVNIRUQgYW5kIGhl bmNlIHNsZWVwIGZvcmV2ZXIuCgpJbiB0aGlzIGNvbW1pdCwgd2UgZml4IGl0IGJ5IGluY2x1ZGlu ZyB0aGUgUE9MTE9VVCBldmVudCBmb3IKc29ja2V0cyBpbiBUSVBDX0NPTk5FQ1RJTkcgc3RhdGUu CgpGaXhlczogNDJiNTMxZGUxN2QyZjYgKCJ0aXBjOiBGaXggbWlzc2luZyBjb25uZWN0aW9uIHJl cXVlc3QgaGFuZGxpbmciKQpBY2tlZC1ieTogSm9uIE1hbG95IDxqb24ubWFsb3lAZXJpY3Nzb24u Y29tPgpTaWduZWQtb2ZmLWJ5OiBQYXJ0aGFzYXJhdGh5IEJodXZhcmFnYW4gPHBhcnRoYXNhcmF0 aHkuYmh1dmFyYWdhbkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvdGlwYy9zb2NrZXQuYyB8IDIgKy0KIDEgZmls ZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25l dC90aXBjL3NvY2tldC5jIGIvbmV0L3RpcGMvc29ja2V0LmMKaW5kZXggZDUwZWRkNi4uOThhNDRl YyAxMDA2NDQKLS0tIGEvbmV0L3RpcGMvc29ja2V0LmMKKysrIGIvbmV0L3RpcGMvc29ja2V0LmMK QEAgLTcwOSwxMSArNzA5LDExIEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgdGlwY19wb2xsKHN0cnVj dCBmaWxlICpmaWxlLCBzdHJ1Y3Qgc29ja2V0ICpzb2NrLAogCiAJc3dpdGNoIChzay0+c2tfc3Rh dGUpIHsKIAljYXNlIFRJUENfRVNUQUJMSVNIRUQ6CisJY2FzZSBUSVBDX0NPTk5FQ1RJTkc6CiAJ CWlmICghdHNrLT5jb25nX2xpbmtfY250ICYmICF0c2tfY29ubl9jb25nKHRzaykpCiAJCQltYXNr IHw9IFBPTExPVVQ7CiAJCS8qIGZhbGwgdGhydScgKi8KIAljYXNlIFRJUENfTElTVEVOOgotCWNh c2UgVElQQ19DT05ORUNUSU5HOgogCQlpZiAoIXNrYl9xdWV1ZV9lbXB0eSgmc2stPnNrX3JlY2Vp dmVfcXVldWUpKQogCQkJbWFzayB8PSAoUE9MTElOIHwgUE9MTFJETk9STSk7CiAJCWJyZWFrOwot LSAKMi45LjUKCgpGcm9tIDAwOGY4YWRjOGMwMzU5NDUzNzg2ODY5OTc3NThjYTQ5NGYyNTEwZDcg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFl1dmFsIE1pbnR6IDx5dXZhbG1AbWVsbGFu b3guY29tPgpEYXRlOiBGcmksIDE1IERlYyAyMDE3IDA4OjQ0OjIxICswMTAwClN1YmplY3Q6IFtQ QVRDSCA0Mi81OF0gbWx4c3c6IHNwZWN0cnVtOiBEaXNhYmxlIE1BQyBsZWFybmluZyBmb3Igb3Zz IHBvcnQKClsgVXBzdHJlYW0gY29tbWl0IGZjY2ZmMDg2MjgzODkwOGQyMWVhZjk1NmQ1N2UwOWM2 YzE4OWY3YzUgXQoKTGVhcm5pbmcgaXMgY3VycmVudGx5IGVuYWJsZWQgZm9yIHBvcnRzIHdoaWNo IGFyZSBPVlMgc2xhdmVzIC0KZXZlbiB0aG91Z2ggT1ZTIGRvZXNuJ3QgbmVlZCB0aGlzIGluZGlj YXRpb24uClNpbmNlIHdlJ3JlIG5vdCBhc3NvY2lhdGluZyBhIGZpZCB3aXRoIHRoZSBwb3J0LCBI VyB3b3VsZCBjb250aW51b3VzbHkKbm90aWZ5IGRyaXZlciBvZiBsZWFybmVkIFsmIGFnZWRdIE1B Q3Mgd2hpY2ggd291bGQgYmUgbG9nZ2VkIGFzIGVycm9ycy4KCkZpeGVzOiAyYjk0ZTU4ZGY1OGMg KCJtbHhzdzogc3BlY3RydW06IEFsbG93IHBvcnRzIHRvIHdvcmsgdW5kZXIgT1ZTIG1hc3RlciIp ClNpZ25lZC1vZmYtYnk6IFl1dmFsIE1pbnR6IDx5dXZhbG1AbWVsbGFub3guY29tPgpSZXZpZXdl ZC1ieTogSWRvIFNjaGltbWVsIDxpZG9zY2hAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBK aXJpIFBpcmtvIDxqaXJpQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxh bm94L21seHN3L3NwZWN0cnVtLmMgfCAxOCArKysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFu Z2VkLCAxOCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQv bWVsbGFub3gvbWx4c3cvc3BlY3RydW0uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94 L21seHN3L3NwZWN0cnVtLmMKaW5kZXggZGIzODg4MC4uM2VhZDc0MyAxMDA2NDQKLS0tIGEvZHJp dmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW0uYworKysgYi9kcml2ZXJz L25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bS5jCkBAIC00MTY0LDYgKzQxNjQs NyBAQCBzdGF0aWMgaW50IG1seHN3X3NwX3BvcnRfc3RwX3NldChzdHJ1Y3QgbWx4c3dfc3BfcG9y dCAqbWx4c3dfc3BfcG9ydCwKIAogc3RhdGljIGludCBtbHhzd19zcF9wb3J0X292c19qb2luKHN0 cnVjdCBtbHhzd19zcF9wb3J0ICptbHhzd19zcF9wb3J0KQogeworCXUxNiB2aWQgPSAxOwogCWlu dCBlcnI7CiAKIAllcnIgPSBtbHhzd19zcF9wb3J0X3ZwX21vZGVfc2V0KG1seHN3X3NwX3BvcnQs IHRydWUpOwpAQCAtNDE3Niw4ICs0MTc3LDE5IEBAIHN0YXRpYyBpbnQgbWx4c3dfc3BfcG9ydF9v dnNfam9pbihzdHJ1Y3QgbWx4c3dfc3BfcG9ydCAqbWx4c3dfc3BfcG9ydCkKIAkJCQkgICAgIHRy dWUsIGZhbHNlKTsKIAlpZiAoZXJyKQogCQlnb3RvIGVycl9wb3J0X3ZsYW5fc2V0OworCisJZm9y ICg7IHZpZCA8PSBWTEFOX05fVklEIC0gMTsgdmlkKyspIHsKKwkJZXJyID0gbWx4c3dfc3BfcG9y dF92aWRfbGVhcm5pbmdfc2V0KG1seHN3X3NwX3BvcnQsCisJCQkJCQkgICAgIHZpZCwgZmFsc2Up OworCQlpZiAoZXJyKQorCQkJZ290byBlcnJfdmlkX2xlYXJuaW5nX3NldDsKKwl9CisKIAlyZXR1 cm4gMDsKIAorZXJyX3ZpZF9sZWFybmluZ19zZXQ6CisJZm9yICh2aWQtLTsgdmlkID49IDE7IHZp ZC0tKQorCQltbHhzd19zcF9wb3J0X3ZpZF9sZWFybmluZ19zZXQobWx4c3dfc3BfcG9ydCwgdmlk LCB0cnVlKTsKIGVycl9wb3J0X3ZsYW5fc2V0OgogCW1seHN3X3NwX3BvcnRfc3RwX3NldChtbHhz d19zcF9wb3J0LCBmYWxzZSk7CiBlcnJfcG9ydF9zdHBfc2V0OgpAQCAtNDE4Nyw2ICs0MTk5LDEy IEBAIHN0YXRpYyBpbnQgbWx4c3dfc3BfcG9ydF9vdnNfam9pbihzdHJ1Y3QgbWx4c3dfc3BfcG9y dCAqbWx4c3dfc3BfcG9ydCkKIAogc3RhdGljIHZvaWQgbWx4c3dfc3BfcG9ydF9vdnNfbGVhdmUo c3RydWN0IG1seHN3X3NwX3BvcnQgKm1seHN3X3NwX3BvcnQpCiB7CisJdTE2IHZpZDsKKworCWZv ciAodmlkID0gVkxBTl9OX1ZJRCAtIDE7IHZpZCA+PSAxOyB2aWQtLSkKKwkJbWx4c3dfc3BfcG9y dF92aWRfbGVhcm5pbmdfc2V0KG1seHN3X3NwX3BvcnQsCisJCQkJCSAgICAgICB2aWQsIHRydWUp OworCiAJbWx4c3dfc3BfcG9ydF92bGFuX3NldChtbHhzd19zcF9wb3J0LCAyLCBWTEFOX05fVklE IC0gMSwKIAkJCSAgICAgICBmYWxzZSwgZmFsc2UpOwogCW1seHN3X3NwX3BvcnRfc3RwX3NldCht bHhzd19zcF9wb3J0LCBmYWxzZSk7Ci0tIAoyLjkuNQoKCkZyb20gMzk5Y2QwMjU1YThkYWIxMDhm ZTZiM2ZiZGUyODY3YjU0MjY5ODU3MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogV2Vp IFdhbmcgPHdlaXdhbkBnb29nbGUuY29tPgpEYXRlOiBUdWUsIDEyIERlYyAyMDE3IDE2OjI4OjU4 IC0wODAwClN1YmplY3Q6IFtQQVRDSCA0My81OF0gdGNwOiBmaXggcG90ZW50aWFsIHVuZGVyZXN0 aW1hdGlvbiBvbiByY3ZfcnR0CgpbIFVwc3RyZWFtIGNvbW1pdCA5ZWUxMWJkMDNjYjFhNWMzY2Ez M2MyYmI3MGU3ZWQzMjVmNjg4OTBmIF0KCldoZW4gbXMgdGltZXN0YW1wIGlzIHVzZWQsIGN1cnJl bnQgbG9naWMgdXNlcyAxdXMgaW4KdGNwX3Jjdl9ydHRfdXBkYXRlKCkgd2hlbiB0aGUgcmVhbCBy Y3ZfcnR0IGlzIHdpdGhpbiAxIC0gOTk5dXMuClRoaXMgY291bGQgY2F1c2UgcmN2X3J0dCB1bmRl cmVzdGltYXRpb24uCkZpeCBpdCBieSBhbHdheXMgdXNpbmcgYSBtaW4gdmFsdWUgb2YgMW1zIGlm IG1zIHRpbWVzdGFtcCBpcyB1c2VkLgoKRml4ZXM6IDY0NWY0YzZmMmViZCAoInRjcDogc3dpdGNo IHJjdl9ydHRfZXN0IGFuZCByY3ZxX3NwYWNlIHRvIGhpZ2ggcmVzb2x1dGlvbiB0aW1lc3RhbXBz IikKU2lnbmVkLW9mZi1ieTogV2VpIFdhbmcgPHdlaXdhbkBnb29nbGUuY29tPgpTaWduZWQtb2Zm LWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkFja2VkLWJ5OiBOZWFsIENh cmR3ZWxsIDxuY2FyZHdlbGxAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L3RjcF9pbnB1dC5jIHwgMTAg KysrKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3BfaW5wdXQuYyBiL25ldC9pcHY0L3RjcF9pbnB1 dC5jCmluZGV4IGE5NjVhMzguLmZmNDhhYzYgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3RjcF9pbnB1 dC5jCisrKyBiL25ldC9pcHY0L3RjcF9pbnB1dC5jCkBAIC01MjEsOSArNTIxLDYgQEAgc3RhdGlj IHZvaWQgdGNwX3Jjdl9ydHRfdXBkYXRlKHN0cnVjdCB0Y3Bfc29jayAqdHAsIHUzMiBzYW1wbGUs IGludCB3aW5fZGVwKQogCXUzMiBuZXdfc2FtcGxlID0gdHAtPnJjdl9ydHRfZXN0LnJ0dF91czsK IAlsb25nIG0gPSBzYW1wbGU7CiAKLQlpZiAobSA9PSAwKQotCQltID0gMTsKLQogCWlmIChuZXdf c2FtcGxlICE9IDApIHsKIAkJLyogSWYgd2Ugc2FtcGxlIGluIGxhcmdlciBzYW1wbGVzIGluIHRo ZSBub24tdGltZXN0YW1wCiAJCSAqIGNhc2UsIHdlIGNvdWxkIGdyb3NzbHkgb3ZlcmVzdGltYXRl IHRoZSBSVFQgZXNwZWNpYWxseQpAQCAtNTYwLDYgKzU1Nyw4IEBAIHN0YXRpYyBpbmxpbmUgdm9p ZCB0Y3BfcmN2X3J0dF9tZWFzdXJlKHN0cnVjdCB0Y3Bfc29jayAqdHApCiAJaWYgKGJlZm9yZSh0 cC0+cmN2X254dCwgdHAtPnJjdl9ydHRfZXN0LnNlcSkpCiAJCXJldHVybjsKIAlkZWx0YV91cyA9 IHRjcF9zdGFtcF91c19kZWx0YSh0cC0+dGNwX21zdGFtcCwgdHAtPnJjdl9ydHRfZXN0LnRpbWUp OworCWlmICghZGVsdGFfdXMpCisJCWRlbHRhX3VzID0gMTsKIAl0Y3BfcmN2X3J0dF91cGRhdGUo dHAsIGRlbHRhX3VzLCAxKTsKIAogbmV3X21lYXN1cmU6CkBAIC01NzYsOCArNTc1LDExIEBAIHN0 YXRpYyBpbmxpbmUgdm9pZCB0Y3BfcmN2X3J0dF9tZWFzdXJlX3RzKHN0cnVjdCBzb2NrICpzaywK IAkgICAgKFRDUF9TS0JfQ0Ioc2tiKS0+ZW5kX3NlcSAtCiAJICAgICBUQ1BfU0tCX0NCKHNrYikt PnNlcSA+PSBpbmV0X2NzayhzayktPmljc2tfYWNrLnJjdl9tc3MpKSB7CiAJCXUzMiBkZWx0YSA9 IHRjcF90aW1lX3N0YW1wKHRwKSAtIHRwLT5yeF9vcHQucmN2X3RzZWNyOwotCQl1MzIgZGVsdGFf dXMgPSBkZWx0YSAqIChVU0VDX1BFUl9TRUMgLyBUQ1BfVFNfSFopOworCQl1MzIgZGVsdGFfdXM7 CiAKKwkJaWYgKCFkZWx0YSkKKwkJCWRlbHRhID0gMTsKKwkJZGVsdGFfdXMgPSBkZWx0YSAqIChV U0VDX1BFUl9TRUMgLyBUQ1BfVFNfSFopOwogCQl0Y3BfcmN2X3J0dF91cGRhdGUodHAsIGRlbHRh X3VzLCAwKTsKIAl9CiB9Ci0tIAoyLjkuNQoKCkZyb20gNzU3MzMwNmE2ZTY0MGE3YmIwNWZiNTMx MmM1MDY4MjA5Y2U2MDRjZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogWmhhbyBRaWFu ZyA8cWlhbmcuemhhb0BueHAuY29tPgpEYXRlOiBNb24sIDE4IERlYyAyMDE3IDEwOjI2OjQzICsw ODAwClN1YmplY3Q6IFtQQVRDSCA0NC81OF0gbmV0OiBwaHk6IG1hcnZlbGw6IExpbWl0IDg4bTEx MDEgYXV0b25lZyBlcnJhdGEgdG8KIDg4RTExNDUgYXMgd2VsbC4KClsgVXBzdHJlYW0gY29tbWl0 IGM1MDU4NzNlYWVjZTJiNGFlZmQwN2QzMzlkYzdlMTQwMGUwMjM1YWMgXQoKODhFMTE0NSBhbHNv IG5lZWQgdGhpcyBhdXRvbmVnIGVycmF0YS4KCkZpeGVzOiBmMjg5OTc4ODM1M2MgKCJuZXQ6IHBo eTogbWFydmVsbDogTGltaXQgZXJyYXRhIHRvIDg4bTExMDEiKQpTaWduZWQtb2ZmLWJ5OiBaaGFv IFFpYW5nIDxxaWFuZy56aGFvQG54cC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9waHkvbWFydmVsbC5jIHwg MiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvcGh5L21hcnZlbGwuYyBiL2RyaXZlcnMvbmV0L3BoeS9tYXJ2 ZWxsLmMKaW5kZXggNGQwMmIyNy4uYTNmNDU2YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvcGh5 L21hcnZlbGwuYworKysgYi9kcml2ZXJzL25ldC9waHkvbWFydmVsbC5jCkBAIC0yMDY5LDcgKzIw NjksNyBAQCBzdGF0aWMgc3RydWN0IHBoeV9kcml2ZXIgbWFydmVsbF9kcml2ZXJzW10gPSB7CiAJ CS5mbGFncyA9IFBIWV9IQVNfSU5URVJSVVBULAogCQkucHJvYmUgPSBtYXJ2ZWxsX3Byb2JlLAog CQkuY29uZmlnX2luaXQgPSAmbTg4ZTExNDVfY29uZmlnX2luaXQsCi0JCS5jb25maWdfYW5lZyA9 ICZtYXJ2ZWxsX2NvbmZpZ19hbmVnLAorCQkuY29uZmlnX2FuZWcgPSAmbTg4ZTExMDFfY29uZmln X2FuZWcsCiAJCS5yZWFkX3N0YXR1cyA9ICZnZW5waHlfcmVhZF9zdGF0dXMsCiAJCS5hY2tfaW50 ZXJydXB0ID0gJm1hcnZlbGxfYWNrX2ludGVycnVwdCwKIAkJLmNvbmZpZ19pbnRyID0gJm1hcnZl bGxfY29uZmlnX2ludHIsCi0tIAoyLjkuNQoKCkZyb20gZmNkMGI1YmM4MGZhNzMxZTcxNjA1MDNk ODdkNjc4Y2U3MmNkZWVlZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSWRvIFNjaGlt bWVsIDxpZG9zY2hAbWVsbGFub3guY29tPgpEYXRlOiBXZWQsIDIwIERlYyAyMDE3IDEyOjI4OjI1 ICswMjAwClN1YmplY3Q6IFtQQVRDSCA0NS81OF0gaXB2NjogSG9ub3Igc3BlY2lmaWVkIHBhcmFt ZXRlcnMgaW4gZmlibWF0Y2ggbG9va3VwCgpbIFVwc3RyZWFtIGNvbW1pdCA1OGFjZmQ3MTRlNmIw MmU4NjE3NDQ4YjQzMWMyYjY0YTJmMWYwNzkyIF0KCkN1cnJlbnRseSwgcGFyYW1ldGVycyBzdWNo IGFzIG9pZiBhbmQgc291cmNlIGFkZHJlc3MgYXJlIG5vdCB0YWtlbiBpbnRvCmFjY291bnQgZHVy aW5nIGZpYm1hdGNoIGxvb2t1cC4gRXhhbXBsZSAoSVB2NCBmb3IgcmVmZXJlbmNlKSBiZWZvcmUK cGF0Y2g6CgokIGlwIC00IHJvdXRlIHNob3cKMTkyLjAuMi4wLzI0IGRldiBkdW1teTAgcHJvdG8g a2VybmVsIHNjb3BlIGxpbmsgc3JjIDE5Mi4wLjIuMQoxOTguNTEuMTAwLjAvMjQgZGV2IGR1bW15 MSBwcm90byBrZXJuZWwgc2NvcGUgbGluayBzcmMgMTk4LjUxLjEwMC4xCgokIGlwIC02IHJvdXRl IHNob3cKMjAwMTpkYjg6MTo6LzY0IGRldiBkdW1teTAgcHJvdG8ga2VybmVsIG1ldHJpYyAyNTYg cHJlZiBtZWRpdW0KMjAwMTpkYjg6Mjo6LzY0IGRldiBkdW1teTEgcHJvdG8ga2VybmVsIG1ldHJp YyAyNTYgcHJlZiBtZWRpdW0KZmU4MDo6LzY0IGRldiBkdW1teTAgcHJvdG8ga2VybmVsIG1ldHJp YyAyNTYgcHJlZiBtZWRpdW0KZmU4MDo6LzY0IGRldiBkdW1teTEgcHJvdG8ga2VybmVsIG1ldHJp YyAyNTYgcHJlZiBtZWRpdW0KCiQgaXAgLTQgcm91dGUgZ2V0IGZpYm1hdGNoIDE5Mi4wLjIuMiBv aWYgZHVtbXkwCjE5Mi4wLjIuMC8yNCBkZXYgZHVtbXkwIHByb3RvIGtlcm5lbCBzY29wZSBsaW5r IHNyYyAxOTIuMC4yLjEKJCBpcCAtNCByb3V0ZSBnZXQgZmlibWF0Y2ggMTkyLjAuMi4yIG9pZiBk dW1teTEKUlRORVRMSU5LIGFuc3dlcnM6IE5vIHJvdXRlIHRvIGhvc3QKCiQgaXAgLTYgcm91dGUg Z2V0IGZpYm1hdGNoIDIwMDE6ZGI4OjE6OjIgb2lmIGR1bW15MAoyMDAxOmRiODoxOjovNjQgZGV2 IGR1bW15MCBwcm90byBrZXJuZWwgbWV0cmljIDI1NiBwcmVmIG1lZGl1bQokIGlwIC02IHJvdXRl IGdldCBmaWJtYXRjaCAyMDAxOmRiODoxOjoyIG9pZiBkdW1teTEKMjAwMTpkYjg6MTo6LzY0IGRl diBkdW1teTAgcHJvdG8ga2VybmVsIG1ldHJpYyAyNTYgcHJlZiBtZWRpdW0KCkFmdGVyOgoKJCBp cCAtNiByb3V0ZSBnZXQgZmlibWF0Y2ggMjAwMTpkYjg6MTo6MiBvaWYgZHVtbXkwCjIwMDE6ZGI4 OjE6Oi82NCBkZXYgZHVtbXkwIHByb3RvIGtlcm5lbCBtZXRyaWMgMjU2IHByZWYgbWVkaXVtCiQg aXAgLTYgcm91dGUgZ2V0IGZpYm1hdGNoIDIwMDE6ZGI4OjE6OjIgb2lmIGR1bW15MQpSVE5FVExJ TksgYW5zd2VyczogTmV0d29yayBpcyB1bnJlYWNoYWJsZQoKVGhlIHByb2JsZW0gc3RlbXMgZnJv bSB0aGUgZmFjdCB0aGF0IHRoZSBuZWNlc3Nhcnkgcm91dGUgbG9va3VwIGZsYWdzCmFyZSBub3Qg c2V0IGJhc2VkIG9uIHRoZXNlIHBhcmFtZXRlcnMuCgpJbnN0ZWFkIG9mIGR1cGxpY2F0aW5nIHRo ZSBzYW1lIGxvZ2ljIGZvciBmaWJtYXRjaCwgd2UgY2FuIHNpbXBseQpyZXNvbHZlIHRoZSBvcmln aW5hbCByb3V0ZSBmcm9tIGl0cyBjb3B5IGFuZCBkdW1wIGl0IGluc3RlYWQuCgpGaXhlczogMThj M2E2MWM0MjY0ICgibmV0OiBpcHY2OiBSVE1fR0VUUk9VVEU6IHJldHVybiBtYXRjaGVkIGZpYiBy ZXN1bHQgd2hlbiByZXF1ZXN0ZWQiKQpTaWduZWQtb2ZmLWJ5OiBJZG8gU2NoaW1tZWwgPGlkb3Nj aEBtZWxsYW5veC5jb20+CkFja2VkLWJ5OiBEYXZpZCBBaGVybiA8ZHNhaGVybkBnbWFpbC5jb20+ ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0t CiBuZXQvaXB2Ni9yb3V0ZS5jIHwgMTkgKysrKysrKysrKystLS0tLS0tLQogMSBmaWxlIGNoYW5n ZWQsIDExIGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lw djYvcm91dGUuYyBiL25ldC9pcHY2L3JvdXRlLmMKaW5kZXggNTk4ZWZhOC4uY2E4ZDMyNiAxMDA2 NDQKLS0tIGEvbmV0L2lwdjYvcm91dGUuYworKysgYi9uZXQvaXB2Ni9yb3V0ZS5jCkBAIC0zNzAw LDE5ICszNzAwLDEzIEBAIHN0YXRpYyBpbnQgaW5ldDZfcnRtX2dldHJvdXRlKHN0cnVjdCBza19i dWZmICppbl9za2IsIHN0cnVjdCBubG1zZ2hkciAqbmxoLAogCQlpZiAoIWlwdjZfYWRkcl9hbnko JmZsNi5zYWRkcikpCiAJCQlmbGFncyB8PSBSVDZfTE9PS1VQX0ZfSEFTX1NBRERSOwogCi0JCWlm ICghZmlibWF0Y2gpCi0JCQlkc3QgPSBpcDZfcm91dGVfaW5wdXRfbG9va3VwKG5ldCwgZGV2LCAm Zmw2LCBmbGFncyk7Ci0JCWVsc2UKLQkJCWRzdCA9IGlwNl9yb3V0ZV9sb29rdXAobmV0LCAmZmw2 LCAwKTsKKwkJZHN0ID0gaXA2X3JvdXRlX2lucHV0X2xvb2t1cChuZXQsIGRldiwgJmZsNiwgZmxh Z3MpOwogCiAJCXJjdV9yZWFkX3VubG9jaygpOwogCX0gZWxzZSB7CiAJCWZsNi5mbG93aTZfb2lm ID0gb2lmOwogCi0JCWlmICghZmlibWF0Y2gpCi0JCQlkc3QgPSBpcDZfcm91dGVfb3V0cHV0KG5l dCwgTlVMTCwgJmZsNik7Ci0JCWVsc2UKLQkJCWRzdCA9IGlwNl9yb3V0ZV9sb29rdXAobmV0LCAm Zmw2LCAwKTsKKwkJZHN0ID0gaXA2X3JvdXRlX291dHB1dChuZXQsIE5VTEwsICZmbDYpOwogCX0K IAogCkBAIC0zNzI5LDYgKzM3MjMsMTUgQEAgc3RhdGljIGludCBpbmV0Nl9ydG1fZ2V0cm91dGUo c3RydWN0IHNrX2J1ZmYgKmluX3NrYiwgc3RydWN0IG5sbXNnaGRyICpubGgsCiAJCWdvdG8gZXJy b3V0OwogCX0KIAorCWlmIChmaWJtYXRjaCAmJiBydC0+ZHN0LmZyb20pIHsKKwkJc3RydWN0IHJ0 Nl9pbmZvICpvcnQgPSBjb250YWluZXJfb2YocnQtPmRzdC5mcm9tLAorCQkJCQkJICAgIHN0cnVj dCBydDZfaW5mbywgZHN0KTsKKworCQlkc3RfaG9sZCgmb3J0LT5kc3QpOworCQlpcDZfcnRfcHV0 KHJ0KTsKKwkJcnQgPSBvcnQ7CisJfQorCiAJc2tiID0gYWxsb2Nfc2tiKE5MTVNHX0dPT0RTSVpF LCBHRlBfS0VSTkVMKTsKIAlpZiAoIXNrYikgewogCQlpcDZfcnRfcHV0KHJ0KTsKLS0gCjIuOS41 CgoKRnJvbSBhNTEzMjY1YTg4NDlkZDg5ZjYyOGMyZTBjYTI1ZmQ3ZDAyNWJlYjRkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ CkRhdGU6IFR1ZSwgMTIgRGVjIDIwMTcgMTg6MjI6NTIgLTA4MDAKU3ViamVjdDogW1BBVENIIDQ2 LzU4XSB0Y3A6IHJlZnJlc2ggdGNwX21zdGFtcCBmcm9tIHRpbWVycyBjYWxsYmFja3MKClsgVXBz dHJlYW0gY29tbWl0IDQ2ODhlYjdjZjNhZTJjMjcyMWQxZGFjZmY1YzEzODRjYmE0N2QxNzYgXQoK T25seSB0aGUgcmV0cmFuc21pdCB0aW1lciBjdXJyZW50bHkgcmVmcmVzaGVzIHRjcF9tc3RhbXAK CldlIHNob3VsZCBkbyB0aGUgc2FtZSBmb3IgZGVsYXllZCBhY2tzIGFuZCBrZWVwYWxpdmVzLgoK RXZlbiBpZiBSRkMgNzMyMyBkb2VzIG5vdCByZXF1ZXN0IGl0LCB0aGlzIGlzIGNvbnNpc3RlbnQg dG8gd2hhdCBsaW51eApkaWQgaW4gdGhlIHBhc3QsIHdoZW4gVFMgdmFsdWVzIHdlcmUgYmFzZWQg b24gamlmZmllcy4KCkZpeGVzOiAzODVlMjA3MDZmYWMgKCJ0Y3A6IHVzZSB0cC0+dGNwX21zdGFt cCBpbiBvdXRwdXQgcGF0aCIpClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRA Z29vZ2xlLmNvbT4KQ2M6IFNvaGVpbCBIYXNzYXMgWWVnYW5laCA8c29oZWlsQGdvb2dsZS5jb20+ CkNjOiBNaWtlIE1hbG9uZXkgPG1hbG9uZXlAZ29vZ2xlLmNvbT4KQ2M6IE5lYWwgQ2FyZHdlbGwg PG5jYXJkd2VsbEBnb29nbGUuY29tPgpBY2tlZC1ieTogTmVhbCBDYXJkd2VsbCA8bmNhcmR3ZWxs QGdvb2dsZS5jb20+CkFja2VkLWJ5OiBTb2hlaWwgSGFzc2FzIFllZ2FuZWggPHNvaGVpbEBnb29n bGUuY29tPgpBY2tlZC1ieTogIE1pa2UgTWFsb25leSA8bWFsb25leUBnb29nbGUuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0 L2lwdjQvdGNwX3RpbWVyLmMgfCAyICsrCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCsp CgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwX3RpbWVyLmMgYi9uZXQvaXB2NC90Y3BfdGltZXIu YwppbmRleCA2NTVkZDhkLi5lOWFmMTg3IDEwMDY0NAotLS0gYS9uZXQvaXB2NC90Y3BfdGltZXIu YworKysgYi9uZXQvaXB2NC90Y3BfdGltZXIuYwpAQCAtMjY0LDYgKzI2NCw3IEBAIHZvaWQgdGNw X2RlbGFja190aW1lcl9oYW5kbGVyKHN0cnVjdCBzb2NrICpzaykKIAkJCWljc2stPmljc2tfYWNr LnBpbmdwb25nID0gMDsKIAkJCWljc2stPmljc2tfYWNrLmF0byAgICAgID0gVENQX0FUT19NSU47 CiAJCX0KKwkJdGNwX21zdGFtcF9yZWZyZXNoKHRjcF9zayhzaykpOwogCQl0Y3Bfc2VuZF9hY2so c2spOwogCQlfX05FVF9JTkNfU1RBVFMoc29ja19uZXQoc2spLCBMSU5VWF9NSUJfREVMQVlFREFD S1MpOwogCX0KQEAgLTYyNyw2ICs2MjgsNyBAQCBzdGF0aWMgdm9pZCB0Y3Bfa2VlcGFsaXZlX3Rp bWVyICh1bnNpZ25lZCBsb25nIGRhdGEpCiAJCWdvdG8gb3V0OwogCX0KIAorCXRjcF9tc3RhbXBf cmVmcmVzaCh0cCk7CiAJaWYgKHNrLT5za19zdGF0ZSA9PSBUQ1BfRklOX1dBSVQyICYmIHNvY2tf ZmxhZyhzaywgU09DS19ERUFEKSkgewogCQlpZiAodHAtPmxpbmdlcjIgPj0gMCkgewogCQkJY29u c3QgaW50IHRtbyA9IHRjcF9maW5fdGltZShzaykgLSBUQ1BfVElNRVdBSVRfTEVOOwotLSAKMi45 LjUKCgpGcm9tIDQxYzc3NzMzYzhmMGRjZDRjNzNhMGE1OWUxNzU1ODM2Y2VkODE0MWQgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IEthbWFsIEhlaWIgPGthbWFsaEBtZWxsYW5veC5jb20+ CkRhdGU6IFN1biwgMjkgT2N0IDIwMTcgMDQ6MDM6MzcgKzAyMDAKU3ViamVjdDogW1BBVENIIDQ3 LzU4XSBuZXQvbWx4NTogRlBHQSwgcmV0dXJuIC1FSU5WQUwgaWYgc2l6ZSBpcyB6ZXJvCgpbIFVw c3RyZWFtIGNvbW1pdCBiYWUxMTVhMmJiNDc5MTQyNjA1NzI2ZTZhYTEzMGY0M2Y1MGU4MDFhIF0K CkN1cnJlbnRseSwgaWYgYSBzaXplIG9mIHplcm8gaXMgcGFzc2VkIHRvCm1seDVfZnBnYV9tZW1f e3JlYWR8d3JpdGV9X2kyYygpCnRoZSAiZXJyIiByZXR1cm4gdmFsdWUgd2lsbCBub3QgYmUgaW5p dGlhbGl6ZWQsIHdoaWNoIHRyaWdnZXJzIGdjYwp3YXJuaW5nczoKClsuLl0vbWx4NS9jb3JlL2Zw Z2Evc2RrLmM6ODcgbWx4NV9mcGdhX21lbV9yZWFkX2kyYygpIGVycm9yOgp1bmluaXRpYWxpemVk IHN5bWJvbCAnZXJyJy4KWy4uXS9tbHg1L2NvcmUvZnBnYS9zZGsuYzoxMTUgbWx4NV9mcGdhX21l bV93cml0ZV9pMmMoKSBlcnJvcjoKdW5pbml0aWFsaXplZCBzeW1ib2wgJ2VycicuCgpmaXggdGhh dC4KCkZpeGVzOiBhOTk1NmQzNWQxOTkgKCduZXQvbWx4NTogRlBHQSwgQWRkIFNCVSBpbmZyYXN0 cnVjdHVyZScpClNpZ25lZC1vZmYtYnk6IEthbWFsIEhlaWIgPGthbWFsaEBtZWxsYW5veC5jb20+ ClJldmlld2VkLWJ5OiBZZXZnZW55IEtsaXRleW5payA8a2xpdGV5bkBtZWxsYW5veC5jb20+ClNp Z25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0KIGRy aXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mcGdhL3Nkay5jIHwgNiArKysr KysKIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJz L25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnBnYS9zZGsuYyBiL2RyaXZlcnMvbmV0 L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mcGdhL3Nkay5jCmluZGV4IDNjMTFkNmUuLjE0 OTYyOTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29y ZS9mcGdhL3Nkay5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29y ZS9mcGdhL3Nkay5jCkBAIC02Niw2ICs2Niw5IEBAIHN0YXRpYyBpbnQgbWx4NV9mcGdhX21lbV9y ZWFkX2kyYyhzdHJ1Y3QgbWx4NV9mcGdhX2RldmljZSAqZmRldiwgc2l6ZV90IHNpemUsCiAJdTgg YWN0dWFsX3NpemU7CiAJaW50IGVycjsKIAorCWlmICghc2l6ZSkKKwkJcmV0dXJuIC1FSU5WQUw7 CisKIAlpZiAoIWZkZXYtPm1kZXYpCiAJCXJldHVybiAtRU5PVENPTk47CiAKQEAgLTk1LDYgKzk4 LDkgQEAgc3RhdGljIGludCBtbHg1X2ZwZ2FfbWVtX3dyaXRlX2kyYyhzdHJ1Y3QgbWx4NV9mcGdh X2RldmljZSAqZmRldiwgc2l6ZV90IHNpemUsCiAJdTggYWN0dWFsX3NpemU7CiAJaW50IGVycjsK IAorCWlmICghc2l6ZSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKIAlpZiAoIWZkZXYtPm1kZXYpCiAJ CXJldHVybiAtRU5PVENPTk47CiAKLS0gCjIuOS41CgoKRnJvbSAxYTJkNGJhN2MwNDUxNTQ2M2Qx ZTg4ZTljMWYyMjA0ODg3NGQxMTU0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4 ZXkgS29kYW5ldiA8YWxleGV5LmtvZGFuZXZAb3JhY2xlLmNvbT4KRGF0ZTogVGh1LCAxNCBEZWMg MjAxNyAyMDoyMDowMCArMDMwMApTdWJqZWN0OiBbUEFUQ0ggNDgvNThdIHZ4bGFuOiByZXN0b3Jl IGRldi0+bXR1IHNldHRpbmcgYmFzZWQgb24gbG93ZXIgZGV2aWNlCgpbIFVwc3RyZWFtIGNvbW1p dCBmODcwYzFmZjY1YTZkMWYzYTA4M2YyNzcyODA4MDJlZTA5YTViNDRkIF0KClN0ZWZhbm8gQnJp dmlvIHNheXM6CiAgICBDb21taXQgYTk4NTM0M2JhOTA2ICgidnhsYW46IHJlZmFjdG9yIHZlcmlm aWNhdGlvbiBhbmQKICAgIGFwcGxpY2F0aW9uIG9mIGNvbmZpZ3VyYXRpb24iKSBpbnRyb2R1Y2Vk IGEgY2hhbmdlIGluIHRoZQogICAgYmVoYXZpb3VyIG9mIGluaXRpYWwgTVRVIHNldHRpbmc6IGVh cmxpZXIsIHRoZSBNVFUgZm9yIGEgbGluawogICAgY3JlYXRlZCBvbiB0b3Agb2YgYSBnaXZlbiBs b3dlciBkZXZpY2UsIHdpdGhvdXQgYW4gaW5pdGlhbCBNVFUKICAgIHNwZWNpZmljYXRpb24sIHdh cyBzZXQgdG8gdGhlIE1UVSBvZiB0aGUgbG93ZXIgZGV2aWNlIG1pbnVzCiAgICBoZWFkcm9vbSBh cyBhIHJlc3VsdCBvZiB0aGlzIHBhdGggaW4gdnhsYW5fZGV2X2NvbmZpZ3VyZSgpOgoKCWlmICgh Y29uZi0+bXR1KQoJCWRldi0+bXR1ID0gbG93ZXJkZXYtPm10dSAtCgkJCSAgICh1c2VfaXB2NiA/ IFZYTEFONl9IRUFEUk9PTSA6IFZYTEFOX0hFQURST09NKTsKCiAgICB3aGljaCBpcyBub3cgZ29u ZS4gTm93LCB0aGUgaW5pdGlhbCBNVFUsIGluIGFic2VuY2Ugb2YgYQogICAgY29uZmlndXJlZCB2 YWx1ZSwgaXMgc2ltcGx5IHNldCBieSBldGhlcl9zZXR1cCgpIHRvIEVUSF9EQVRBX0xFTgogICAg KDE1MDAgYnl0ZXMpLgoKICAgIFRoaXMgYnJlYWtzIHVzZXJzcGFjZSBleHBlY3RhdGlvbnMgaW4g Y2FzZSB0aGUgTVRVIG9mCiAgICB0aGUgbG93ZXIgZGV2aWNlIGlzIGhpZ2hlciB0aGFuIDE1MDAg Ynl0ZXMgbWludXMgaGVhZHJvb20uCgpUaGlzIHBhdGNoIHJlc3RvcmVzIHRoZSBwcmV2aW91cyBi ZWhhdmlvdXIgb24gbmV3bGluayBvcGVyYXRpb24uIFNpbmNlCm1heF9tdHUgY2FuIGJlIG5lZ2F0 aXZlIGFuZCB3ZSB1cGRhdGUgZGV2LT5tdHUgZGlyZWN0bHksIGFsc28gY2hlY2sgaXQKZm9yIHZh bGlkIG1pbmltdW0uCgpSZXBvcnRlZC1ieTogSnVuaGFuIFlhbiA8anV5YW5AcmVkaGF0LmNvbT4K Rml4ZXM6IGE5ODUzNDNiYTkwNiAoInZ4bGFuOiByZWZhY3RvciB2ZXJpZmljYXRpb24gYW5kIGFw cGxpY2F0aW9uIG9mIGNvbmZpZ3VyYXRpb24iKQpTaWduZWQtb2ZmLWJ5OiBBbGV4ZXkgS29kYW5l diA8YWxleGV5LmtvZGFuZXZAb3JhY2xlLmNvbT4KQWNrZWQtYnk6IFN0ZWZhbm8gQnJpdmlvIDxz YnJpdmlvQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IFN0ZWZhbm8gQnJpdmlvIDxzYnJpdmlv QHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC92eGxhbi5jIHwgNSArKysrKwogMSBmaWxlIGNoYW5n ZWQsIDUgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3Z4bGFuLmMgYi9k cml2ZXJzL25ldC92eGxhbi5jCmluZGV4IGEyZjRlNTIuLjllOTIwMmIgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvbmV0L3Z4bGFuLmMKKysrIGIvZHJpdmVycy9uZXQvdnhsYW4uYwpAQCAtMzEwNSw2ICsz MTA1LDExIEBAIHN0YXRpYyB2b2lkIHZ4bGFuX2NvbmZpZ19hcHBseShzdHJ1Y3QgbmV0X2Rldmlj ZSAqZGV2LAogCiAJCW1heF9tdHUgPSBsb3dlcmRldi0+bXR1IC0gKHVzZV9pcHY2ID8gVlhMQU42 X0hFQURST09NIDoKIAkJCQkJICAgVlhMQU5fSEVBRFJPT00pOworCQlpZiAobWF4X210dSA8IEVU SF9NSU5fTVRVKQorCQkJbWF4X210dSA9IEVUSF9NSU5fTVRVOworCisJCWlmICghY2hhbmdlbGlu ayAmJiAhY29uZi0+bXR1KQorCQkJZGV2LT5tdHUgPSBtYXhfbXR1OwogCX0KIAogCWlmIChkZXYt Pm10dSA+IG1heF9tdHUpCi0tIAoyLjkuNQoKCkZyb20gZTNmYzhhYjQwM2E3MWYxNjZiMTc3M2Vi M2EzNGY2OGQyZTczMzBhZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSmlyaSBQaXJr byA8amlyaUBtZWxsYW5veC5jb20+CkRhdGU6IEZyaSwgMTUgRGVjIDIwMTcgMTI6NDA6MTMgKzAx MDAKU3ViamVjdDogW1BBVENIIDQ5LzU4XSBuZXQ6IHNjaGVkOiBmaXggc3RhdGljIGtleSBpbWJh bGFuY2UgaW4gY2FzZSBvZgogaW5ncmVzcy9jbHNhY3RfaW5pdCBlcnJvcgoKWyBVcHN0cmVhbSBj b21taXQgYjU5ZTY5NzlhODYzODRlNjhiMGFiNmZmZWFiMTFmMDAzNGZiYTgyZCBdCgpNb3ZlIHN0 YXRpYyBrZXkgaW5jcmVtZW50cyB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBpbml0IGZ1bmN0aW9u CnNvIHRoZXkgcGFpciAxOjEgd2l0aCBkZWNyZW1lbnRzIGluIGluZ3Jlc3MvY2xzYWN0X2Rlc3Ry b3ksCndoaWNoIGlzIGNhbGxlZCBpbiBjYXNlIGluZ3Jlc3MvY2xzYWN0X2luaXQgZmFpbHMuCgpG aXhlczogNjUyOWVhYmEzM2YwICgibmV0OiBzY2hlZDogaW50cm9kdWNlIHRjZiBibG9jayBpbmZy YWN0cnVjdHVyZSIpClNpZ25lZC1vZmYtYnk6IEppcmkgUGlya28gPGppcmlAbWVsbGFub3guY29t PgpBY2tlZC1ieTogQ29uZyBXYW5nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc2No ZWQvc2NoX2luZ3Jlc3MuYyB8IDkgKysrKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRp b25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfaW5ncmVz cy5jIGIvbmV0L3NjaGVkL3NjaF9pbmdyZXNzLmMKaW5kZXggNDRkZTRlZS4uYTA4YTMyZiAxMDA2 NDQKLS0tIGEvbmV0L3NjaGVkL3NjaF9pbmdyZXNzLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9pbmdy ZXNzLmMKQEAgLTU5LDExICs1OSwxMiBAQCBzdGF0aWMgaW50IGluZ3Jlc3NfaW5pdChzdHJ1Y3Qg UWRpc2MgKnNjaCwgc3RydWN0IG5sYXR0ciAqb3B0KQogCXN0cnVjdCBuZXRfZGV2aWNlICpkZXYg PSBxZGlzY19kZXYoc2NoKTsKIAlpbnQgZXJyOwogCisJbmV0X2luY19pbmdyZXNzX3F1ZXVlKCk7 CisKIAllcnIgPSB0Y2ZfYmxvY2tfZ2V0KCZxLT5ibG9jaywgJmRldi0+aW5ncmVzc19jbF9saXN0 KTsKIAlpZiAoZXJyKQogCQlyZXR1cm4gZXJyOwogCi0JbmV0X2luY19pbmdyZXNzX3F1ZXVlKCk7 CiAJc2NoLT5mbGFncyB8PSBUQ1FfRl9DUFVTVEFUUzsKIAogCXJldHVybiAwOwpAQCAtMTUzLDYg KzE1NCw5IEBAIHN0YXRpYyBpbnQgY2xzYWN0X2luaXQoc3RydWN0IFFkaXNjICpzY2gsIHN0cnVj dCBubGF0dHIgKm9wdCkKIAlzdHJ1Y3QgbmV0X2RldmljZSAqZGV2ID0gcWRpc2NfZGV2KHNjaCk7 CiAJaW50IGVycjsKIAorCW5ldF9pbmNfaW5ncmVzc19xdWV1ZSgpOworCW5ldF9pbmNfZWdyZXNz X3F1ZXVlKCk7CisKIAllcnIgPSB0Y2ZfYmxvY2tfZ2V0KCZxLT5pbmdyZXNzX2Jsb2NrLCAmZGV2 LT5pbmdyZXNzX2NsX2xpc3QpOwogCWlmIChlcnIpCiAJCXJldHVybiBlcnI7CkBAIC0xNjEsOSAr MTY1LDYgQEAgc3RhdGljIGludCBjbHNhY3RfaW5pdChzdHJ1Y3QgUWRpc2MgKnNjaCwgc3RydWN0 IG5sYXR0ciAqb3B0KQogCWlmIChlcnIpCiAJCXJldHVybiBlcnI7CiAKLQluZXRfaW5jX2luZ3Jl c3NfcXVldWUoKTsKLQluZXRfaW5jX2VncmVzc19xdWV1ZSgpOwotCiAJc2NoLT5mbGFncyB8PSBU Q1FfRl9DUFVTVEFUUzsKIAogCXJldHVybiAwOwotLSAKMi45LjUKCgpGcm9tIDBlMmE1Njk3Nzcz YTM2MDEwZjkwODZmYmFmNzVkMmM0MDY0YTFlNmEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IENhbHZpbiBPd2VucyA8Y2Fsdmlub3dlbnNAZmIuY29tPgpEYXRlOiBGcmksIDggRGVjIDIw MTcgMDk6MDU6MjYgLTA4MDAKU3ViamVjdDogW1BBVENIIDUwLzU4XSBibnh0X2VuOiBGaXggc291 cmNlcyBvZiBzcHVyaW91cyBuZXRwb2xsIHdhcm5pbmdzCgpbIFVwc3RyZWFtIGNvbW1pdCAyZWRi ZGIzMTU5ZDZmNmJkM2E5YjZlN2Y3ODlmMmI4Nzk2OTlhNTE5IF0KCkFmdGVyIGFwcGx5aW5nIDIy NzBiYzVkYTM0OTc5NDUgKCJibnh0X2VuOiBGaXggbmV0cG9sbCBoYW5kbGluZyIpIGFuZAo5MDM2 NDllNzE4ZjgwZGEyICgiYm54dF9lbjogSW1wcm92ZSAtRU5PTUVNIGxvZ2ljIGluIE5BUEkgcG9s bCBsb29wLiIpLAp3ZSBzdGlsbCBzZWUgdGhlIGZvbGxvd2luZyBXQVJOIGZpcmU6CgogIC0tLS0t LS0tLS0tLVsgY3V0IGhlcmUgXS0tLS0tLS0tLS0tLQogIFdBUk5JTkc6IENQVTogMCBQSUQ6IDE4 NzUxNzAgYXQgbmV0L2NvcmUvbmV0cG9sbC5jOjE2NSBuZXRwb2xsX3BvbGxfZGV2KzB4MTVhLzB4 MTYwCiAgYm54dF9wb2xsKzB4MC8weGQwIGV4Y2VlZGVkIGJ1ZGdldCBpbiBwb2xsCiAgPHNuaXA+ CiAgQ2FsbCBUcmFjZToKICAgWzxmZmZmZmZmZjgxNGJlNWNkPl0gZHVtcF9zdGFjaysweDRkLzB4 NzAKICAgWzxmZmZmZmZmZjgxMDdlMDEzPl0gX193YXJuKzB4ZDMvMHhmMAogICBbPGZmZmZmZmZm ODEwN2UwN2Y+XSB3YXJuX3Nsb3dwYXRoX2ZtdCsweDRmLzB4NjAKICAgWzxmZmZmZmZmZjgxNzk1 MTlhPl0gbmV0cG9sbF9wb2xsX2RldisweDE1YS8weDE2MAogICBbPGZmZmZmZmZmODE3OTVmMzg+ XSBuZXRwb2xsX3NlbmRfc2tiX29uX2RldisweDE2OC8weDI1MAogICBbPGZmZmZmZmZmODE3OTYy ZmM+XSBuZXRwb2xsX3NlbmRfdWRwKzB4MmRjLzB4NDQwCiAgIFs8ZmZmZmZmZmY4MTVmYTliZT5d IHdyaXRlX2V4dF9tc2crMHgyMGUvMHgyNTAKICAgWzxmZmZmZmZmZjgxMGM4MTI1Pl0gY2FsbF9j b25zb2xlX2RyaXZlcnMuY29uc3Rwcm9wLjIzKzB4YTUvMHgxMTAKICAgWzxmZmZmZmZmZjgxMGM5 NTQ5Pl0gY29uc29sZV91bmxvY2srMHgzMzkvMHg1YjAKICAgWzxmZmZmZmZmZjgxMGM5YTg4Pl0g dnByaW50a19lbWl0KzB4MmM4LzB4NDUwCiAgIFs8ZmZmZmZmZmY4MTBjOWQ1Zj5dIHZwcmludGtf ZGVmYXVsdCsweDFmLzB4MzAKICAgWzxmZmZmZmZmZjgxMTczZGY1Pl0gcHJpbnRrKzB4NDgvMHg1 MAogICBbPGZmZmZmZmZmYTAxOTc3MTM+XSBlZGFjX3Jhd19tY19oYW5kbGVfZXJyb3IrMHg1NjMv MHg1YzAgW2VkYWNfY29yZV0KICAgWzxmZmZmZmZmZmEwMTk3YjliPl0gZWRhY19tY19oYW5kbGVf ZXJyb3IrMHg0MmIvMHg2ZTAgW2VkYWNfY29yZV0KICAgWzxmZmZmZmZmZmEwMWMzYTYwPl0gc2Jy aWRnZV9tY2Vfb3V0cHV0X2Vycm9yKzB4NDEwLzB4MTBkMCBbc2JfZWRhY10KICAgWzxmZmZmZmZm ZmEwMWM0N2NjPl0gc2JyaWRnZV9jaGVja19lcnJvcisweGFjLzB4MTMwIFtzYl9lZGFjXQogICBb PGZmZmZmZmZmYTAxOTdmM2M+XSBlZGFjX21jX3dvcmtxX2Z1bmN0aW9uKzB4M2MvMHg5MCBbZWRh Y19jb3JlXQogICBbPGZmZmZmZmZmODEwOTVmOGI+XSBwcm9jZXNzX29uZV93b3JrKzB4MTliLzB4 NDgwCiAgIFs8ZmZmZmZmZmY4MTA5NjdjYT5dIHdvcmtlcl90aHJlYWQrMHg2YS8weDUyMAogICBb PGZmZmZmZmZmODEwOWM3YzQ+XSBrdGhyZWFkKzB4ZTQvMHgxMDAKICAgWzxmZmZmZmZmZjgxODg0 YzUyPl0gcmV0X2Zyb21fZm9yaysweDIyLzB4NDAKClRoaXMgaGFwcGVucyBiZWNhdXNlIHdlIGlu Y3JlbWVudCByeF9wa3RzIG9uIC1FTk9NRU0gYW5kIC1FSU8sIHJlc3VsdGluZwppbiByeF9wa3Rz ID4gMC4gRml4IHRoaXMgYnkgb25seSBidW1waW5nIHJ4X3BrdHMgaWYgd2Ugd2VyZSBhY3R1YWxs eQpnaXZlbiBhIG5vbi16ZXJvIGJ1ZGdldC4KClNpZ25lZC1vZmYtYnk6IENhbHZpbiBPd2VucyA8 Y2Fsdmlub3dlbnNAZmIuY29tPgpBY2tlZC1ieTogTWljaGFlbCBDaGFuIDxtaWNoYWVsLmNoYW5A YnJvYWRjb20uY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0LmMg fCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0LmMg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHQuYwppbmRleCBkYzVkZTI3 Li5hYTc2NGM1IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0 L2JueHQuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHQuYwpA QCAtMTg3NSw3ICsxODc1LDcgQEAgc3RhdGljIGludCBibnh0X3BvbGxfd29yayhzdHJ1Y3QgYm54 dCAqYnAsIHN0cnVjdCBibnh0X25hcGkgKmJuYXBpLCBpbnQgYnVkZ2V0KQogCQkJICogaGVyZSBm b3JldmVyIGlmIHdlIGNvbnNpc3RlbnRseSBjYW5ub3QgYWxsb2NhdGUKIAkJCSAqIGJ1ZmZlcnMu CiAJCQkgKi8KLQkJCWVsc2UgaWYgKHJjID09IC1FTk9NRU0pCisJCQllbHNlIGlmIChyYyA9PSAt RU5PTUVNICYmIGJ1ZGdldCkKIAkJCQlyeF9wa3RzKys7CiAJCQllbHNlIGlmIChyYyA9PSAtRUJV U1kpCS8qIHBhcnRpYWwgY29tcGxldGlvbiAqLwogCQkJCWJyZWFrOwpAQCAtMTk2MSw3ICsxOTYx LDcgQEAgc3RhdGljIGludCBibnh0X3BvbGxfbml0cm9hMChzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5h cGksIGludCBidWRnZXQpCiAJCQkJY3B1X3RvX2xlMzIoUlhfQ01QTF9FUlJPUlNfQ1JDX0VSUk9S KTsKIAogCQkJcmMgPSBibnh0X3J4X3BrdChicCwgYm5hcGksICZyYXdfY29ucywgJmV2ZW50KTsK LQkJCWlmIChsaWtlbHkocmMgPT0gLUVJTykpCisJCQlpZiAobGlrZWx5KHJjID09IC1FSU8pICYm IGJ1ZGdldCkKIAkJCQlyeF9wa3RzKys7CiAJCQllbHNlIGlmIChyYyA9PSAtRUJVU1kpCS8qIHBh cnRpYWwgY29tcGxldGlvbiAqLwogCQkJCWJyZWFrOwotLSAKMi45LjUKCgpGcm9tIGVhNWJjODJl ODIwMTRlM2E2MDY2MzZkZjZmNTIwNGY4YTQzODU3ODEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IFJ1c3NlbGwgS2luZyA8cm1rK2tlcm5lbEBhcm1saW51eC5vcmcudWs+CkRhdGU6IFdl ZCwgMjAgRGVjIDIwMTcgMjM6MjE6MjggKzAwMDAKU3ViamVjdDogW1BBVENIIDUxLzU4XSBwaHls aW5rOiBlbnN1cmUgdGhlIFBIWSBpbnRlcmZhY2UgbW9kZSBpcyBhcHByb3ByaWF0ZWx5CiBzZXQK ClsgVXBzdHJlYW0gY29tbWl0IDE4MjA4OGFhM2M2YzdmN2MyMGEyYzFkY2M5ZGVkNGEzZmM2MzFm MzggXQoKV2hlbiBzZXR0aW5nIHRoZSBldGh0b29sIHNldHRpbmdzLCBlbnN1cmUgdGhhdCB0aGUg dmFsaWRhdGVkIFBIWQppbnRlcmZhY2UgbW9kZSBpcyBwcm9wYWdhdGVkIHRvIHRoZSBjdXJyZW50 IGxpbmsgc2V0dGluZ3MsIHNvIHRoYXQKMjUwMEJhc2VYIGNhbiBiZSBzZWxlY3RlZC4KCkZpeGVz OiA5NTI1YWU4Mzk1OWIgKCJwaHlsaW5rOiBhZGQgcGh5bGluayBpbmZyYXN0cnVjdHVyZSIpClNp Z25lZC1vZmYtYnk6IFJ1c3NlbGwgS2luZyA8cm1rK2tlcm5lbEBhcm1saW51eC5vcmcudWs+ClJl dmlld2VkLWJ5OiBGbG9yaWFuIEZhaW5lbGxpIDxmLmZhaW5lbGxpQGdtYWlsLmNvbT4KU2lnbmVk LW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZl cnMvbmV0L3BoeS9waHlsaW5rLmMgfCAxICsKIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigr KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMgYi9kcml2ZXJzL25ldC9w aHkvcGh5bGluay5jCmluZGV4IGJjYjQ3NTUuLjM4ZDgxMTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv bmV0L3BoeS9waHlsaW5rLmMKKysrIGIvZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYwpAQCAtOTQ4 LDYgKzk0OCw3IEBAIGludCBwaHlsaW5rX2V0aHRvb2xfa3NldHRpbmdzX3NldChzdHJ1Y3QgcGh5 bGluayAqcGwsCiAJbXV0ZXhfbG9jaygmcGwtPnN0YXRlX211dGV4KTsKIAkvKiBDb25maWd1cmUg dGhlIE1BQyB0byBtYXRjaCB0aGUgbmV3IHNldHRpbmdzICovCiAJbGlua21vZGVfY29weShwbC0+ bGlua19jb25maWcuYWR2ZXJ0aXNpbmcsIG91cl9rc2V0LmxpbmtfbW9kZXMuYWR2ZXJ0aXNpbmcp OworCXBsLT5saW5rX2NvbmZpZy5pbnRlcmZhY2UgPSBjb25maWcuaW50ZXJmYWNlOwogCXBsLT5s aW5rX2NvbmZpZy5zcGVlZCA9IG91cl9rc2V0LmJhc2Uuc3BlZWQ7CiAJcGwtPmxpbmtfY29uZmln LmR1cGxleCA9IG91cl9rc2V0LmJhc2UuZHVwbGV4OwogCXBsLT5saW5rX2NvbmZpZy5hbl9lbmFi bGVkID0gb3VyX2tzZXQuYmFzZS5hdXRvbmVnICE9IEFVVE9ORUdfRElTQUJMRTsKLS0gCjIuOS41 CgoKRnJvbSBkODc5ZjE1YmRjZjU3MTk5MThhYjRjZmRjNDBiYzEyZTAwYmY1N2M4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBSdXNzZWxsIEtpbmcgPHJtaytrZXJuZWxAYXJtbGludXgu b3JnLnVrPgpEYXRlOiBXZWQsIDIwIERlYyAyMDE3IDIzOjIxOjM0ICswMDAwClN1YmplY3Q6IFtQ QVRDSCA1Mi81OF0gcGh5bGluazogZW5zdXJlIEFOIGlzIGVuYWJsZWQKClsgVXBzdHJlYW0gY29t bWl0IDc0ZWUwZThjMWJmOTkyNWM1OWNjOGYxYzY1YzI5YWRmNmU0Y2Y2MDMgXQoKRW5zdXJlIHRo YXQgd2UgbWFyayBBTiBhcyBlbmFibGVkIGF0IGJvb3QgdGltZSwgcmF0aGVyIHRoYW4gbGVhdmlu ZwppdCBkaXNhYmxlZC4gIFRoaXMgaXMgbm90aWNhYmxlIGlmIHlvdXIgU0ZQIG1vZHVsZSBpcyBm aWJlciwgYW5kCml0IHN1cHBvcnRzIGZhc3RlciBzcGVlZHMgdGhhbiAxRyB3aXRoIDIuNUcgc3Vw cG9ydCBpbiBwbGFjZS4KCkZpeGVzOiA5NTI1YWU4Mzk1OWIgKCJwaHlsaW5rOiBhZGQgcGh5bGlu ayBpbmZyYXN0cnVjdHVyZSIpClNpZ25lZC1vZmYtYnk6IFJ1c3NlbGwgS2luZyA8cm1rK2tlcm5l bEBhcm1saW51eC5vcmcudWs+ClJldmlld2VkLWJ5OiBGbG9yaWFuIEZhaW5lbGxpIDxmLmZhaW5l bGxpQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZl bWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMgfCAxICsKIDEgZmlsZSBj aGFuZ2VkLCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BoeS9waHls aW5rLmMgYi9kcml2ZXJzL25ldC9waHkvcGh5bGluay5jCmluZGV4IDM4ZDgxMTcuLjRiMzc3Yjkg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMKKysrIGIvZHJpdmVycy9uZXQv cGh5L3BoeWxpbmsuYwpAQCAtNTI1LDYgKzUyNSw3IEBAIHN0cnVjdCBwaHlsaW5rICpwaHlsaW5r X2NyZWF0ZShzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgc3RydWN0IGRldmljZV9ub2RlICpucCwK IAlwbC0+bGlua19jb25maWcucGF1c2UgPSBNTE9fUEFVU0VfQU47CiAJcGwtPmxpbmtfY29uZmln LnNwZWVkID0gU1BFRURfVU5LTk9XTjsKIAlwbC0+bGlua19jb25maWcuZHVwbGV4ID0gRFVQTEVY X1VOS05PV047CisJcGwtPmxpbmtfY29uZmlnLmFuX2VuYWJsZWQgPSB0cnVlOwogCXBsLT5vcHMg PSBvcHM7CiAJX19zZXRfYml0KFBIWUxJTktfRElTQUJMRV9TVE9QUEVELCAmcGwtPnBoeWxpbmtf ZGlzYWJsZV9zdGF0ZSk7CiAKLS0gCjIuOS41CgoKRnJvbSA0NjljMDZjYmMyNTNmYTdhOGVmNTFh ZjNmODBmZjg3ZTFmZTA3MjA0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsIFN1 dHRlciA8cGhpbEBud2wuY2M+CkRhdGU6IFR1ZSwgMTkgRGVjIDIwMTcgMTU6MTc6MTMgKzAxMDAK U3ViamVjdDogW1BBVENIIDUzLzU4XSBpcHY0OiBmaWI6IEZpeCBtZXRyaWNzIG1hdGNoIHdoZW4g ZGVsZXRpbmcgYSByb3V0ZQoKWyBVcHN0cmVhbSBjb21taXQgZDAzYTQ1NTcyZWZhMDY4ZmE2NGRi MjExZDZkNDUyMjI2NjBlNzZjNSBdCgpUaGUgcmVjZW50bHkgYWRkZWQgZmliX21ldHJpY3NfbWF0 Y2goKSBjYXVzZXMgYSByZWdyZXNzaW9uIGZvciByb3V0ZXMKd2l0aCBib3RoIFJUQVhfRkVBVFVS RVMgYW5kIFJUQVhfQ0NfQUxHTyBpZiB0aGUgbGF0dGVyIGhhcwpUQ1BfQ09OR19ORUVEU19FQ04g ZmxhZyBzZXQ6Cgp8ICMgaXAgbGluayBhZGQgZDAgdHlwZSBkdW1teQp8ICMgaXAgbGluayBzZXQg ZDAgdXAKfCAjIGlwIHJvdXRlIGFkZCAxNzIuMjkuMjkuMC8yNCBkZXYgZDAgZmVhdHVyZXMgZWNu IGNvbmdjdGwgZGN0Y3AKfCAjIGlwIHJvdXRlIGRlbCAxNzIuMjkuMjkuMC8yNCBkZXYgZDAgZmVh dHVyZXMgZWNuIGNvbmdjdGwgZGN0Y3AKfCBSVE5FVExJTksgYW5zd2VyczogTm8gc3VjaCBwcm9j ZXNzCgpEdXJpbmcgcm91dGUgaW5zZXJ0aW9uLCBmaWJfY29udmVydF9tZXRyaWNzKCkgZGV0ZWN0 cyB0aGF0IHRoZSBnaXZlbiBDQwphbGdvIHJlcXVpcmVzIEVDTiBhbmQgaGVuY2Ugc2V0cyBEU1Rf RkVBVFVSRV9FQ05fQ0EgYml0IGluClJUQVhfRkVBVFVSRVMuCgpEdXJpbmcgcm91dGUgZGVsZXRp b24gdGhvdWdoLCBmaWJfbWV0cmljc19tYXRjaCgpIGNvbXBhcmVzIHN0b3JlZApSVEFYX0ZFQVRV UkVTIHZhbHVlIHdpdGggdGhhdCBmcm9tIHVzZXJzcGFjZSAod2hpY2ggb2J2aW91c2x5IGhhcyBu bwprbm93bGVkZ2UgYWJvdXQgRFNUX0ZFQVRVUkVfRUNOX0NBKSBhbmQgZmFpbHMuCgpGaXhlczog NWY5YWUzZDllN2U0YSAoImlwdjQ6IGRvIG1ldHJpY3MgbWF0Y2ggd2hlbiBsb29raW5nIHVwIGFu ZCBkZWxldGluZyBhIHJvdXRlIikKU2lnbmVkLW9mZi1ieTogUGhpbCBTdXR0ZXIgPHBoaWxAbnds LmNjPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogbmV0L2lwdjQvZmliX3NlbWFudGljcy5jIHwgOCArKysrKystLQogMSBmaWxlIGNoYW5n ZWQsIDYgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2 NC9maWJfc2VtYW50aWNzLmMgYi9uZXQvaXB2NC9maWJfc2VtYW50aWNzLmMKaW5kZXggMDFlZDIy MS4uYWZmMzc1MSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvZmliX3NlbWFudGljcy5jCisrKyBiL25l dC9pcHY0L2ZpYl9zZW1hbnRpY3MuYwpAQCAtNzA2LDcgKzcwNiw3IEBAIGJvb2wgZmliX21ldHJp Y3NfbWF0Y2goc3RydWN0IGZpYl9jb25maWcgKmNmZywgc3RydWN0IGZpYl9pbmZvICpmaSkKIAog CW5sYV9mb3JfZWFjaF9hdHRyKG5sYSwgY2ZnLT5mY19teCwgY2ZnLT5mY19teF9sZW4sIHJlbWFp bmluZykgewogCQlpbnQgdHlwZSA9IG5sYV90eXBlKG5sYSk7Ci0JCXUzMiB2YWw7CisJCXUzMiBm aV92YWwsIHZhbDsKIAogCQlpZiAoIXR5cGUpCiAJCQljb250aW51ZTsKQEAgLTcyMyw3ICs3MjMs MTEgQEAgYm9vbCBmaWJfbWV0cmljc19tYXRjaChzdHJ1Y3QgZmliX2NvbmZpZyAqY2ZnLCBzdHJ1 Y3QgZmliX2luZm8gKmZpKQogCQkJdmFsID0gbmxhX2dldF91MzIobmxhKTsKIAkJfQogCi0JCWlm IChmaS0+ZmliX21ldHJpY3MtPm1ldHJpY3NbdHlwZSAtIDFdICE9IHZhbCkKKwkJZmlfdmFsID0g ZmktPmZpYl9tZXRyaWNzLT5tZXRyaWNzW3R5cGUgLSAxXTsKKwkJaWYgKHR5cGUgPT0gUlRBWF9G RUFUVVJFUykKKwkJCWZpX3ZhbCAmPSB+RFNUX0ZFQVRVUkVfRUNOX0NBOworCisJCWlmIChmaV92 YWwgIT0gdmFsKQogCQkJcmV0dXJuIGZhbHNlOwogCX0KIAotLSAKMi45LjUKCgpGcm9tIGMzNDUy MzBlZjhjZmI4OGI5NjU3N2NlYTY2MWM3OTcyNDhlODdjODcgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IE5pY29sYXMgRGljaHRlbCA8bmljb2xhcy5kaWNodGVsQDZ3aW5kLmNvbT4KRGF0 ZTogVHVlLCAxNCBOb3YgMjAxNyAxNDoyMTozMiArMDEwMApTdWJqZWN0OiBbUEFUQ0ggNTQvNThd IGlwdjY6IHNldCBhbGwuYWNjZXB0X2RhZCB0byAwIGJ5IGRlZmF1bHQKClsgVXBzdHJlYW0gY29t bWl0IDA5NDAwOTUzMTYxMjI0NmQ5ZTEzZjllMGMzYWUyMjA1ZDdmNjNhMGEgXQoKV2l0aCBjb21t aXRzIDM1ZTAxNWUxZjU3NyBhbmQgYTJkM2YzZTMzODUzLCB0aGUgZ2xvYmFsICdhY2NlcHRfZGFk JyBmbGFnCmlzIGFsc28gdGFrZW4gaW50byBhY2NvdW50IChkZWZhdWx0IHZhbHVlIGlzIDEpLiBJ ZiBlaXRoZXIgZ2xvYmFsIG9yCnBlci1pbnRlcmZhY2UgZmxhZyBpcyBub24temVybywgREFEIHdp bGwgYmUgZW5hYmxlZCBvbiBhIGdpdmVuIGludGVyZmFjZS4KClRoaXMgaXMgbm90IGJhY2t3YXJk IGNvbXBhdGlibGU6IGJlZm9yZSB0aG9zZSBwYXRjaGVzLCB0aGUgdXNlciBjb3VsZApkaXNhYmxl IERBRCBqdXN0IGJ5IHNldHRpbmcgdGhlIHBlci1pbnRlcmZhY2UgZmxhZyB0byAwLiBOb3csIHRo ZQp1c2VyIGluc3RlYWQgbmVlZHMgdG8gc2V0IGJvdGggZmxhZ3MgdG8gMCB0byBhY3R1YWxseSBk aXNhYmxlIERBRC4KClJlc3RvcmUgdGhlIHByZXZpb3VzIGJlaGF2aW91ciBieSBzZXR0aW5nIHRo ZSBkZWZhdWx0IGZvciB0aGUgZ2xvYmFsCidhY2NlcHRfZGFkJyBmbGFnIHRvIDAuIFRoaXMgd2F5 LCBEQUQgaXMgc3RpbGwgZW5hYmxlZCBieSBkZWZhdWx0LAphcyBwZXItaW50ZXJmYWNlIGZsYWdz IGFyZSBzZXQgdG8gMSBvbiBkZXZpY2UgY3JlYXRpb24sIGJ1dCBzZXR0aW5nCnRoZW0gdG8gMCBp cyBlbm91Z2ggdG8gZGlzYWJsZSBEQUQgb24gYSBnaXZlbiBpbnRlcmZhY2UuCgotIEJlZm9yZSAz NWUwMTVlMWY1N2E3IGFuZCBhMmQzZjNlMzM4NTM6CiAgICAgICAgICBnbG9iYWwgICAgcGVyLWlu dGVyZmFjZSAgICBEQUQgZW5hYmxlZApbZGVmYXVsdF0gICAxICAgICAgICAgICAgIDEgICAgICAg ICAgICAgIHllcwogICAgICAgICAgICBYICAgICAgICAgICAgIDAgICAgICAgICAgICAgIG5vCiAg ICAgICAgICAgIFggICAgICAgICAgICAgMSAgICAgICAgICAgICAgeWVzCgotIEFmdGVyIDM1ZTAx NWUxZjU3NyBhbmQgYTJkM2YzZTMzODUzOgogICAgICAgICAgZ2xvYmFsICAgIHBlci1pbnRlcmZh Y2UgICAgREFEIGVuYWJsZWQKW2RlZmF1bHRdICAgMSAgICAgICAgICAgICAxICAgICAgICAgICAg ICB5ZXMKICAgICAgICAgICAgMCAgICAgICAgICAgICAwICAgICAgICAgICAgICBubwogICAgICAg ICAgICAwICAgICAgICAgICAgIDEgICAgICAgICAgICAgIHllcwogICAgICAgICAgICAxICAgICAg ICAgICAgIDAgICAgICAgICAgICAgIHllcwoKLSBBZnRlciB0aGlzIGZpeDoKICAgICAgICAgIGds b2JhbCAgICBwZXItaW50ZXJmYWNlICAgIERBRCBlbmFibGVkCiAgICAgICAgICAgIDEgICAgICAg ICAgICAgMSAgICAgICAgICAgICAgeWVzCiAgICAgICAgICAgIDAgICAgICAgICAgICAgMCAgICAg ICAgICAgICAgbm8KW2RlZmF1bHRdICAgMCAgICAgICAgICAgICAxICAgICAgICAgICAgICB5ZXMK ICAgICAgICAgICAgMSAgICAgICAgICAgICAwICAgICAgICAgICAgICB5ZXMKCkZpeGVzOiAzNWUw MTVlMWY1NzcgKCJpcHY2OiBmaXggbmV0LmlwdjYuY29uZi5hbGwgaW50ZXJmYWNlIERBRCBoYW5k bGVycyIpCkZpeGVzOiBhMmQzZjNlMzM4NTMgKCJpcHY2OiBmaXggbmV0LmlwdjYuY29uZi5hbGwu YWNjZXB0X2RhZCBiZWhhdmlvdXIgZm9yIHJlYWwiKQpDQzogU3RlZmFubyBCcml2aW8gPHNicml2 aW9AcmVkaGF0LmNvbT4KQ0M6IE1hdHRlbyBDcm9jZSA8bWNyb2NlQHJlZGhhdC5jb20+CkNDOiBF cmlrIEtsaW5lIDxla0Bnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBOaWNvbGFzIERpY2h0ZWwg PG5pY29sYXMuZGljaHRlbEA2d2luZC5jb20+CkFja2VkLWJ5OiBTdGVmYW5vIEJyaXZpbyA8c2Jy aXZpb0ByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjYvYWRkcmNvbmYuYyB8IDIgKy0KIDEgZmlsZSBjaGFu Z2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2 L2FkZHJjb25mLmMgYi9uZXQvaXB2Ni9hZGRyY29uZi5jCmluZGV4IDJlYzM5NDAuLmM1MzE4ZjUg MTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2FkZHJjb25mLmMKKysrIGIvbmV0L2lwdjYvYWRkcmNvbmYu YwpAQCAtMjMxLDcgKzIzMSw3IEBAIHN0YXRpYyBzdHJ1Y3QgaXB2Nl9kZXZjb25mIGlwdjZfZGV2 Y29uZiBfX3JlYWRfbW9zdGx5ID0gewogCS5wcm94eV9uZHAJCT0gMCwKIAkuYWNjZXB0X3NvdXJj ZV9yb3V0ZQk9IDAsCS8qIHdlIGRvIG5vdCBhY2NlcHQgUkgwIGJ5IGRlZmF1bHQuICovCiAJLmRp c2FibGVfaXB2NgkJPSAwLAotCS5hY2NlcHRfZGFkCQk9IDEsCisJLmFjY2VwdF9kYWQJCT0gMCwK IAkuc3VwcHJlc3NfZnJhZ19uZGlzYwk9IDEsCiAJLmFjY2VwdF9yYV9tdHUJCT0gMSwKIAkuc3Rh YmxlX3NlY3JldAkJPSB7Ci0tIAoyLjkuNQoKCkZyb20gY2E0MGJhYWI3YmZkZTEzNjE0ZDc0OTdj YTI5YTQxMTYxMWRlYjNjNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogU2FlZWQgTWFo YW1lZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+CkRhdGU6IEZyaSwgMTAgTm92IDIwMTcgMTU6NTk6 NTIgKzA5MDAKU3ViamVjdDogW1BBVENIIDU1LzU4XSBSZXZlcnQgIm1seDU6IG1vdmUgYWZmaW5p dHkgaGludHMgYXNzaWdubWVudHMgdG8KIGdlbmVyaWMgY29kZSIKClsgVXBzdHJlYW0gY29tbWl0 IDIzMTI0M2M4Mjc5MzQyODQ2NzUyNDIyN2FlMDJjYTQ1MWU2YTk4ZTcgXQoKQmVmb3JlIHRoZSBv ZmZlbmRpbmcgY29tbWl0LCBtbHg1IGNvcmUgZGlkIHRoZSBJUlEgYWZmaW5pdHkgaXRzZWxmLAph bmQgaXQgc2VlbXMgdGhhdCB0aGUgbmV3IGdlbmVyaWMgY29kZSBoYXZlIHNvbWUgZHJhd2JhY2tz IGFuZCBvbmUKb2YgdGhlbSBpcyB0aGUgbGFjayBmb3IgdXNlciBhYmlsaXR5IHRvIG1vZGlmeSBp cnEgYWZmaW5pdHkgYWZ0ZXIKdGhlIGluaXRpYWwgYWZmaW5pdHkgdmFsdWVzIGdvdCBhc3NpZ25l ZC4KClRoZSBpc3N1ZSBpcyBzdGlsbCBiZWluZyBkaXNjdXNzZWQgYW5kIGEgc29sdXRpb24gaW4g dGhlIG5ldyBnZW5lcmljIGNvZGUKaXMgcmVxdWlyZWQsIHVudGlsIHRoZW4gd2UgbmVlZCB0byBy ZXZlcnQgdGhpcyBwYXRjaC4KClRoaXMgZml4ZXMgdGhlIGZvbGxvd2luZyBpc3N1ZToKZWNobyA8 bmV3IGFmZmluaXR5PiA+IC9wcm9jL2lycS88eD4vc21wX2FmZmluaXR5CmZhaWxzIHdpdGggIC1F SU8KClRoaXMgcmV2ZXJ0cyBjb21taXQgYTQzNTM5M2FjYWZiZjBlY2ZmNGRlYjNlM2NiNTU0YjM0 ZjBkMDY2NC4KTm90ZToga2VwdCBtbHg1X2dldF92ZWN0b3JfYWZmaW5pdHkgaW4gaW5jbHVkZS9s aW51eC9tbHg1L2RyaXZlci5oIHNpbmNlCml0IGlzIHVzZWQgaW4gbWx4NV9pYiBkcml2ZXIuCgpG aXhlczogYTQzNTM5M2FjYWZiICgibWx4NTogbW92ZSBhZmZpbml0eSBoaW50cyBhc3NpZ25tZW50 cyB0byBnZW5lcmljIGNvZGUiKQpDYzogU2FnaSBHcmltYmVyZyA8c2FnaUBncmltYmVyZy5tZT4K Q2M6IFRob21hcyBHbGVpeG5lciA8dGdseEBsaW51dHJvbml4LmRlPgpDYzogSmVzIFNvcmVuc2Vu IDxqc29yZW5zZW5AZmIuY29tPgpSZXBvcnRlZC1ieTogSmVzIFNvcmVuc2VuIDxqc29yZW5zZW5A ZmIuY29tPgpTaWduZWQtb2ZmLWJ5OiBTYWVlZCBNYWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94LmNv bT4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4uaCAgICAg IHwgIDEgKwogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4u YyB8IDQ1ICsrKysrKystLS0tLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1 L2NvcmUvbWFpbi5jICAgIHwgNzUgKysrKysrKysrKysrKysrKysrKysrLS0KIGluY2x1ZGUvbGlu dXgvbWx4NS9kcml2ZXIuaCAgICAgICAgICAgICAgICAgICAgICAgfCAgMSArCiA0IGZpbGVzIGNo YW5nZWQsIDkzIGluc2VydGlvbnMoKyksIDI5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5oIGIvZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmgKaW5kZXggMTNiNWVmOS4uNWZhMDcxNiAx MDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmgK KysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmgKQEAgLTU5 MCw2ICs1OTAsNyBAQCBzdHJ1Y3QgbWx4NWVfY2hhbm5lbCB7CiAJc3RydWN0IG1seDVfY29yZV9k ZXYgICAgICAqbWRldjsKIAlzdHJ1Y3QgbWx4NWVfdHN0YW1wICAgICAgICp0c3RhbXA7CiAJaW50 ICAgICAgICAgICAgICAgICAgICAgICAgaXg7CisJaW50ICAgICAgICAgICAgICAgICAgICAgICAg Y3B1OwogfTsKIAogc3RydWN0IG1seDVlX2NoYW5uZWxzIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv bmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMgYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jCmluZGV4IDUxNzcyN2YuLjNjZGI5 MzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9l bl9tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vu X21haW4uYwpAQCAtNzEsMTEgKzcxLDYgQEAgc3RydWN0IG1seDVlX2NoYW5uZWxfcGFyYW0gewog CXN0cnVjdCBtbHg1ZV9jcV9wYXJhbSAgICAgIGljb3NxX2NxOwogfTsKIAotc3RhdGljIGludCBt bHg1ZV9nZXRfbm9kZShzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiwgaW50IGl4KQotewotCXJldHVy biBwY2lfaXJxX2dldF9ub2RlKHByaXYtPm1kZXYtPnBkZXYsIE1MWDVfRVFfVkVDX0NPTVBfQkFT RSArIGl4KTsKLX0KLQogc3RhdGljIGJvb2wgbWx4NWVfY2hlY2tfZnJhZ21lbnRlZF9zdHJpZGlu Z19ycV9jYXAoc3RydWN0IG1seDVfY29yZV9kZXYgKm1kZXYpCiB7CiAJcmV0dXJuIE1MWDVfQ0FQ X0dFTihtZGV2LCBzdHJpZGluZ19ycSkgJiYKQEAgLTQ1MiwxNyArNDQ3LDE2IEBAIHN0YXRpYyBp bnQgbWx4NWVfcnFfYWxsb2NfbXB3cWVfaW5mbyhzdHJ1Y3QgbWx4NWVfcnEgKnJxLAogCWludCB3 cV9zeiA9IG1seDVfd3FfbGxfZ2V0X3NpemUoJnJxLT53cSk7CiAJaW50IG10dF9zeiA9IG1seDVl X2dldF93cWVfbXR0X3N6KCk7CiAJaW50IG10dF9hbGxvYyA9IG10dF9zeiArIE1MWDVfVU1SX0FM SUdOIC0gMTsKLQlpbnQgbm9kZSA9IG1seDVlX2dldF9ub2RlKGMtPnByaXYsIGMtPml4KTsKIAlp bnQgaTsKIAogCXJxLT5tcHdxZS5pbmZvID0ga3phbGxvY19ub2RlKHdxX3N6ICogc2l6ZW9mKCpy cS0+bXB3cWUuaW5mbyksCi0JCQkJCUdGUF9LRVJORUwsIG5vZGUpOworCQkJCSAgICAgIEdGUF9L RVJORUwsIGNwdV90b19ub2RlKGMtPmNwdSkpOwogCWlmICghcnEtPm1wd3FlLmluZm8pCiAJCWdv dG8gZXJyX291dDsKIAogCS8qIFdlIGFsbG9jYXRlIG1vcmUgdGhhbiBtdHRfc3ogYXMgd2Ugd2ls bCBhbGlnbiB0aGUgcG9pbnRlciAqLwotCXJxLT5tcHdxZS5tdHRfbm9fYWxpZ24gPSBremFsbG9j X25vZGUobXR0X2FsbG9jICogd3Ffc3osCi0JCQkJCUdGUF9LRVJORUwsIG5vZGUpOworCXJxLT5t cHdxZS5tdHRfbm9fYWxpZ24gPSBremFsbG9jX25vZGUobXR0X2FsbG9jICogd3Ffc3osIEdGUF9L RVJORUwsCisJCQkJCWNwdV90b19ub2RlKGMtPmNwdSkpOwogCWlmICh1bmxpa2VseSghcnEtPm1w d3FlLm10dF9ub19hbGlnbikpCiAJCWdvdG8gZXJyX2ZyZWVfd3FlX2luZm87CiAKQEAgLTU3MCw3 ICs1NjQsNyBAQCBzdGF0aWMgaW50IG1seDVlX2FsbG9jX3JxKHN0cnVjdCBtbHg1ZV9jaGFubmVs ICpjLAogCWludCBlcnI7CiAJaW50IGk7CiAKLQlycXAtPndxLmRiX251bWFfbm9kZSA9IG1seDVl X2dldF9ub2RlKGMtPnByaXYsIGMtPml4KTsKKwlycXAtPndxLmRiX251bWFfbm9kZSA9IGNwdV90 b19ub2RlKGMtPmNwdSk7CiAKIAllcnIgPSBtbHg1X3dxX2xsX2NyZWF0ZShtZGV2LCAmcnFwLT53 cSwgcnFjX3dxLCAmcnEtPndxLAogCQkJCSZycS0+d3FfY3RybCk7CkBAIC02MzYsOCArNjMwLDcg QEAgc3RhdGljIGludCBtbHg1ZV9hbGxvY19ycShzdHJ1Y3QgbWx4NWVfY2hhbm5lbCAqYywKIAlk ZWZhdWx0OiAvKiBNTFg1X1dRX1RZUEVfTElOS0VEX0xJU1QgKi8KIAkJcnEtPndxZS5mcmFnX2lu Zm8gPQogCQkJa3phbGxvY19ub2RlKHdxX3N6ICogc2l6ZW9mKCpycS0+d3FlLmZyYWdfaW5mbyks Ci0JCQkJICAgICBHRlBfS0VSTkVMLAotCQkJCSAgICAgbWx4NWVfZ2V0X25vZGUoYy0+cHJpdiwg Yy0+aXgpKTsKKwkJCQkgICAgIEdGUF9LRVJORUwsIGNwdV90b19ub2RlKGMtPmNwdSkpOwogCQlp ZiAoIXJxLT53cWUuZnJhZ19pbmZvKSB7CiAJCQllcnIgPSAtRU5PTUVNOwogCQkJZ290byBlcnJf cnFfd3FfZGVzdHJveTsKQEAgLTEwMDcsMTMgKzEwMDAsMTMgQEAgc3RhdGljIGludCBtbHg1ZV9h bGxvY194ZHBzcShzdHJ1Y3QgbWx4NWVfY2hhbm5lbCAqYywKIAlzcS0+dWFyX21hcCAgID0gbWRl di0+bWx4NWVfcmVzLmJmcmVnLm1hcDsKIAlzcS0+bWluX2lubGluZV9tb2RlID0gcGFyYW1zLT50 eF9taW5faW5saW5lX21vZGU7CiAKLQlwYXJhbS0+d3EuZGJfbnVtYV9ub2RlID0gbWx4NWVfZ2V0 X25vZGUoYy0+cHJpdiwgYy0+aXgpOworCXBhcmFtLT53cS5kYl9udW1hX25vZGUgPSBjcHVfdG9f bm9kZShjLT5jcHUpOwogCWVyciA9IG1seDVfd3FfY3ljX2NyZWF0ZShtZGV2LCAmcGFyYW0tPndx LCBzcWNfd3EsICZzcS0+d3EsICZzcS0+d3FfY3RybCk7CiAJaWYgKGVycikKIAkJcmV0dXJuIGVy cjsKIAlzcS0+d3EuZGIgPSAmc3EtPndxLmRiW01MWDVfU05EX0RCUl07CiAKLQllcnIgPSBtbHg1 ZV9hbGxvY194ZHBzcV9kYihzcSwgbWx4NWVfZ2V0X25vZGUoYy0+cHJpdiwgYy0+aXgpKTsKKwll cnIgPSBtbHg1ZV9hbGxvY194ZHBzcV9kYihzcSwgY3B1X3RvX25vZGUoYy0+Y3B1KSk7CiAJaWYg KGVycikKIAkJZ290byBlcnJfc3Ffd3FfZGVzdHJveTsKIApAQCAtMTA2MCwxMyArMTA1MywxMyBA QCBzdGF0aWMgaW50IG1seDVlX2FsbG9jX2ljb3NxKHN0cnVjdCBtbHg1ZV9jaGFubmVsICpjLAog CXNxLT5jaGFubmVsICAgPSBjOwogCXNxLT51YXJfbWFwICAgPSBtZGV2LT5tbHg1ZV9yZXMuYmZy ZWcubWFwOwogCi0JcGFyYW0tPndxLmRiX251bWFfbm9kZSA9IG1seDVlX2dldF9ub2RlKGMtPnBy aXYsIGMtPml4KTsKKwlwYXJhbS0+d3EuZGJfbnVtYV9ub2RlID0gY3B1X3RvX25vZGUoYy0+Y3B1 KTsKIAllcnIgPSBtbHg1X3dxX2N5Y19jcmVhdGUobWRldiwgJnBhcmFtLT53cSwgc3FjX3dxLCAm c3EtPndxLCAmc3EtPndxX2N0cmwpOwogCWlmIChlcnIpCiAJCXJldHVybiBlcnI7CiAJc3EtPndx LmRiID0gJnNxLT53cS5kYltNTFg1X1NORF9EQlJdOwogCi0JZXJyID0gbWx4NWVfYWxsb2NfaWNv c3FfZGIoc3EsIG1seDVlX2dldF9ub2RlKGMtPnByaXYsIGMtPml4KSk7CisJZXJyID0gbWx4NWVf YWxsb2NfaWNvc3FfZGIoc3EsIGNwdV90b19ub2RlKGMtPmNwdSkpOwogCWlmIChlcnIpCiAJCWdv dG8gZXJyX3NxX3dxX2Rlc3Ryb3k7CiAKQEAgLTExMzIsMTMgKzExMjUsMTMgQEAgc3RhdGljIGlu dCBtbHg1ZV9hbGxvY190eHFzcShzdHJ1Y3QgbWx4NWVfY2hhbm5lbCAqYywKIAlpZiAoTUxYNV9J UFNFQ19ERVYoYy0+cHJpdi0+bWRldikpCiAJCXNldF9iaXQoTUxYNUVfU1FfU1RBVEVfSVBTRUMs ICZzcS0+c3RhdGUpOwogCi0JcGFyYW0tPndxLmRiX251bWFfbm9kZSA9IG1seDVlX2dldF9ub2Rl KGMtPnByaXYsIGMtPml4KTsKKwlwYXJhbS0+d3EuZGJfbnVtYV9ub2RlID0gY3B1X3RvX25vZGUo Yy0+Y3B1KTsKIAllcnIgPSBtbHg1X3dxX2N5Y19jcmVhdGUobWRldiwgJnBhcmFtLT53cSwgc3Fj X3dxLCAmc3EtPndxLCAmc3EtPndxX2N0cmwpOwogCWlmIChlcnIpCiAJCXJldHVybiBlcnI7CiAJ c3EtPndxLmRiICAgID0gJnNxLT53cS5kYltNTFg1X1NORF9EQlJdOwogCi0JZXJyID0gbWx4NWVf YWxsb2NfdHhxc3FfZGIoc3EsIG1seDVlX2dldF9ub2RlKGMtPnByaXYsIGMtPml4KSk7CisJZXJy ID0gbWx4NWVfYWxsb2NfdHhxc3FfZGIoc3EsIGNwdV90b19ub2RlKGMtPmNwdSkpOwogCWlmIChl cnIpCiAJCWdvdG8gZXJyX3NxX3dxX2Rlc3Ryb3k7CiAKQEAgLTE1MTAsOCArMTUwMyw4IEBAIHN0 YXRpYyBpbnQgbWx4NWVfYWxsb2NfY3Eoc3RydWN0IG1seDVlX2NoYW5uZWwgKmMsCiAJc3RydWN0 IG1seDVfY29yZV9kZXYgKm1kZXYgPSBjLT5wcml2LT5tZGV2OwogCWludCBlcnI7CiAKLQlwYXJh bS0+d3EuYnVmX251bWFfbm9kZSA9IG1seDVlX2dldF9ub2RlKGMtPnByaXYsIGMtPml4KTsKLQlw YXJhbS0+d3EuZGJfbnVtYV9ub2RlICA9IG1seDVlX2dldF9ub2RlKGMtPnByaXYsIGMtPml4KTsK KwlwYXJhbS0+d3EuYnVmX251bWFfbm9kZSA9IGNwdV90b19ub2RlKGMtPmNwdSk7CisJcGFyYW0t PndxLmRiX251bWFfbm9kZSAgPSBjcHVfdG9fbm9kZShjLT5jcHUpOwogCXBhcmFtLT5lcV9peCAg ID0gYy0+aXg7CiAKIAllcnIgPSBtbHg1ZV9hbGxvY19jcV9jb21tb24obWRldiwgcGFyYW0sIGNx KTsKQEAgLTE2MTAsNiArMTYwMywxMSBAQCBzdGF0aWMgdm9pZCBtbHg1ZV9jbG9zZV9jcShzdHJ1 Y3QgbWx4NWVfY3EgKmNxKQogCW1seDVlX2ZyZWVfY3EoY3EpOwogfQogCitzdGF0aWMgaW50IG1s eDVlX2dldF9jcHUoc3RydWN0IG1seDVlX3ByaXYgKnByaXYsIGludCBpeCkKK3sKKwlyZXR1cm4g Y3B1bWFza19maXJzdChwcml2LT5tZGV2LT5wcml2LmlycV9pbmZvW2l4XS5tYXNrKTsKK30KKwog c3RhdGljIGludCBtbHg1ZV9vcGVuX3R4X2NxcyhzdHJ1Y3QgbWx4NWVfY2hhbm5lbCAqYywKIAkJ CSAgICAgc3RydWN0IG1seDVlX3BhcmFtcyAqcGFyYW1zLAogCQkJICAgICBzdHJ1Y3QgbWx4NWVf Y2hhbm5lbF9wYXJhbSAqY3BhcmFtKQpAQCAtMTc1OCwxMiArMTc1NiwxMyBAQCBzdGF0aWMgaW50 IG1seDVlX29wZW5fY2hhbm5lbChzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiwgaW50IGl4LAogewog CXN0cnVjdCBtbHg1ZV9jcV9tb2RlciBpY29jcV9tb2RlciA9IHswLCAwfTsKIAlzdHJ1Y3QgbmV0 X2RldmljZSAqbmV0ZGV2ID0gcHJpdi0+bmV0ZGV2OworCWludCBjcHUgPSBtbHg1ZV9nZXRfY3B1 KHByaXYsIGl4KTsKIAlzdHJ1Y3QgbWx4NWVfY2hhbm5lbCAqYzsKIAl1bnNpZ25lZCBpbnQgaXJx OwogCWludCBlcnI7CiAJaW50IGVxbjsKIAotCWMgPSBremFsbG9jX25vZGUoc2l6ZW9mKCpjKSwg R0ZQX0tFUk5FTCwgbWx4NWVfZ2V0X25vZGUocHJpdiwgaXgpKTsKKwljID0ga3phbGxvY19ub2Rl KHNpemVvZigqYyksIEdGUF9LRVJORUwsIGNwdV90b19ub2RlKGNwdSkpOwogCWlmICghYykKIAkJ cmV0dXJuIC1FTk9NRU07CiAKQEAgLTE3NzEsNiArMTc3MCw3IEBAIHN0YXRpYyBpbnQgbWx4NWVf b3Blbl9jaGFubmVsKHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2LCBpbnQgaXgsCiAJYy0+bWRldiAg ICAgPSBwcml2LT5tZGV2OwogCWMtPnRzdGFtcCAgID0gJnByaXYtPnRzdGFtcDsKIAljLT5peCAg ICAgICA9IGl4OworCWMtPmNwdSAgICAgID0gY3B1OwogCWMtPnBkZXYgICAgID0gJnByaXYtPm1k ZXYtPnBkZXYtPmRldjsKIAljLT5uZXRkZXYgICA9IHByaXYtPm5ldGRldjsKIAljLT5ta2V5X2Jl ICA9IGNwdV90b19iZTMyKHByaXYtPm1kZXYtPm1seDVlX3Jlcy5ta2V5LmtleSk7CkBAIC0xODU5 LDggKzE4NTksNyBAQCBzdGF0aWMgdm9pZCBtbHg1ZV9hY3RpdmF0ZV9jaGFubmVsKHN0cnVjdCBt bHg1ZV9jaGFubmVsICpjKQogCWZvciAodGMgPSAwOyB0YyA8IGMtPm51bV90YzsgdGMrKykKIAkJ bWx4NWVfYWN0aXZhdGVfdHhxc3EoJmMtPnNxW3RjXSk7CiAJbWx4NWVfYWN0aXZhdGVfcnEoJmMt PnJxKTsKLQluZXRpZl9zZXRfeHBzX3F1ZXVlKGMtPm5ldGRldiwKLQkJbWx4NV9nZXRfdmVjdG9y X2FmZmluaXR5KGMtPnByaXYtPm1kZXYsIGMtPml4KSwgYy0+aXgpOworCW5ldGlmX3NldF94cHNf cXVldWUoYy0+bmV0ZGV2LCBnZXRfY3B1X21hc2soYy0+Y3B1KSwgYy0+aXgpOwogfQogCiBzdGF0 aWMgdm9pZCBtbHg1ZV9kZWFjdGl2YXRlX2NoYW5uZWwoc3RydWN0IG1seDVlX2NoYW5uZWwgKmMp CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbWFp bi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL21haW4uYwppbmRl eCAwNjU2MmM5Li44YmZjMzdlIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxs YW5veC9tbHg1L2NvcmUvbWFpbi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94 L21seDUvY29yZS9tYWluLmMKQEAgLTMxNiw5ICszMTYsNiBAQCBzdGF0aWMgaW50IG1seDVfYWxs b2NfaXJxX3ZlY3RvcnMoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldikKIHsKIAlzdHJ1Y3QgbWx4 NV9wcml2ICpwcml2ID0gJmRldi0+cHJpdjsKIAlzdHJ1Y3QgbWx4NV9lcV90YWJsZSAqdGFibGUg PSAmcHJpdi0+ZXFfdGFibGU7Ci0Jc3RydWN0IGlycV9hZmZpbml0eSBpcnFkZXNjID0gewotCQku cHJlX3ZlY3RvcnMgPSBNTFg1X0VRX1ZFQ19DT01QX0JBU0UsCi0JfTsKIAlpbnQgbnVtX2VxcyA9 IDEgPDwgTUxYNV9DQVBfR0VOKGRldiwgbG9nX21heF9lcSk7CiAJaW50IG52ZWM7CiAKQEAgLTMz MiwxMCArMzI5LDkgQEAgc3RhdGljIGludCBtbHg1X2FsbG9jX2lycV92ZWN0b3JzKHN0cnVjdCBt bHg1X2NvcmVfZGV2ICpkZXYpCiAJaWYgKCFwcml2LT5pcnFfaW5mbykKIAkJZ290byBlcnJfZnJl ZV9tc2l4OwogCi0JbnZlYyA9IHBjaV9hbGxvY19pcnFfdmVjdG9yc19hZmZpbml0eShkZXYtPnBk ZXYsCisJbnZlYyA9IHBjaV9hbGxvY19pcnFfdmVjdG9ycyhkZXYtPnBkZXYsCiAJCQlNTFg1X0VR X1ZFQ19DT01QX0JBU0UgKyAxLCBudmVjLAotCQkJUENJX0lSUV9NU0lYIHwgUENJX0lSUV9BRkZJ TklUWSwKLQkJCSZpcnFkZXNjKTsKKwkJCVBDSV9JUlFfTVNJWCk7CiAJaWYgKG52ZWMgPCAwKQog CQlyZXR1cm4gbnZlYzsKIApAQCAtNjIxLDYgKzYxNyw2MyBAQCB1NjQgbWx4NV9yZWFkX2ludGVy bmFsX3RpbWVyKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpCiAJcmV0dXJuICh1NjQpdGltZXJf bCB8ICh1NjQpdGltZXJfaDEgPDwgMzI7CiB9CiAKK3N0YXRpYyBpbnQgbWx4NV9pcnFfc2V0X2Fm ZmluaXR5X2hpbnQoc3RydWN0IG1seDVfY29yZV9kZXYgKm1kZXYsIGludCBpKQoreworCXN0cnVj dCBtbHg1X3ByaXYgKnByaXYgID0gJm1kZXYtPnByaXY7CisJaW50IGlycSA9IHBjaV9pcnFfdmVj dG9yKG1kZXYtPnBkZXYsIE1MWDVfRVFfVkVDX0NPTVBfQkFTRSArIGkpOworCisJaWYgKCF6YWxs b2NfY3B1bWFza192YXIoJnByaXYtPmlycV9pbmZvW2ldLm1hc2ssIEdGUF9LRVJORUwpKSB7CisJ CW1seDVfY29yZV93YXJuKG1kZXYsICJ6YWxsb2NfY3B1bWFza192YXIgZmFpbGVkIik7CisJCXJl dHVybiAtRU5PTUVNOworCX0KKworCWNwdW1hc2tfc2V0X2NwdShjcHVtYXNrX2xvY2FsX3NwcmVh ZChpLCBwcml2LT5udW1hX25vZGUpLAorCQkJcHJpdi0+aXJxX2luZm9baV0ubWFzayk7CisKKwlp ZiAoSVNfRU5BQkxFRChDT05GSUdfU01QKSAmJgorCSAgICBpcnFfc2V0X2FmZmluaXR5X2hpbnQo aXJxLCBwcml2LT5pcnFfaW5mb1tpXS5tYXNrKSkKKwkJbWx4NV9jb3JlX3dhcm4obWRldiwgImly cV9zZXRfYWZmaW5pdHlfaGludCBmYWlsZWQsIGlycSAweCUuNHgiLCBpcnEpOworCisJcmV0dXJu IDA7Cit9CisKK3N0YXRpYyB2b2lkIG1seDVfaXJxX2NsZWFyX2FmZmluaXR5X2hpbnQoc3RydWN0 IG1seDVfY29yZV9kZXYgKm1kZXYsIGludCBpKQoreworCXN0cnVjdCBtbHg1X3ByaXYgKnByaXYg ID0gJm1kZXYtPnByaXY7CisJaW50IGlycSA9IHBjaV9pcnFfdmVjdG9yKG1kZXYtPnBkZXYsIE1M WDVfRVFfVkVDX0NPTVBfQkFTRSArIGkpOworCisJaXJxX3NldF9hZmZpbml0eV9oaW50KGlycSwg TlVMTCk7CisJZnJlZV9jcHVtYXNrX3Zhcihwcml2LT5pcnFfaW5mb1tpXS5tYXNrKTsKK30KKwor c3RhdGljIGludCBtbHg1X2lycV9zZXRfYWZmaW5pdHlfaGludHMoc3RydWN0IG1seDVfY29yZV9k ZXYgKm1kZXYpCit7CisJaW50IGVycjsKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCBtZGV2 LT5wcml2LmVxX3RhYmxlLm51bV9jb21wX3ZlY3RvcnM7IGkrKykgeworCQllcnIgPSBtbHg1X2ly cV9zZXRfYWZmaW5pdHlfaGludChtZGV2LCBpKTsKKwkJaWYgKGVycikKKwkJCWdvdG8gZXJyX291 dDsKKwl9CisKKwlyZXR1cm4gMDsKKworZXJyX291dDoKKwlmb3IgKGktLTsgaSA+PSAwOyBpLS0p CisJCW1seDVfaXJxX2NsZWFyX2FmZmluaXR5X2hpbnQobWRldiwgaSk7CisKKwlyZXR1cm4gZXJy OworfQorCitzdGF0aWMgdm9pZCBtbHg1X2lycV9jbGVhcl9hZmZpbml0eV9oaW50cyhzdHJ1Y3Qg bWx4NV9jb3JlX2RldiAqbWRldikKK3sKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCBtZGV2 LT5wcml2LmVxX3RhYmxlLm51bV9jb21wX3ZlY3RvcnM7IGkrKykKKwkJbWx4NV9pcnFfY2xlYXJf YWZmaW5pdHlfaGludChtZGV2LCBpKTsKK30KKwogaW50IG1seDVfdmVjdG9yMmVxbihzdHJ1Y3Qg bWx4NV9jb3JlX2RldiAqZGV2LCBpbnQgdmVjdG9yLCBpbnQgKmVxbiwKIAkJICAgIHVuc2lnbmVk IGludCAqaXJxbikKIHsKQEAgLTEwOTMsNiArMTE0NiwxMiBAQCBzdGF0aWMgaW50IG1seDVfbG9h ZF9vbmUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfcHJpdiAqcHJpdiwK IAkJZ290byBlcnJfc3RvcF9lcXM7CiAJfQogCisJZXJyID0gbWx4NV9pcnFfc2V0X2FmZmluaXR5 X2hpbnRzKGRldik7CisJaWYgKGVycikgeworCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJGYWlsZWQg dG8gYWxsb2MgYWZmaW5pdHkgaGludCBjcHVtYXNrXG4iKTsKKwkJZ290byBlcnJfYWZmaW5pdHlf aGludHM7CisJfQorCiAJZXJyID0gbWx4NV9pbml0X2ZzKGRldik7CiAJaWYgKGVycikgewogCQlk ZXZfZXJyKCZwZGV2LT5kZXYsICJGYWlsZWQgdG8gaW5pdCBmbG93IHN0ZWVyaW5nXG4iKTsKQEAg LTExNTAsNiArMTIwOSw5IEBAIHN0YXRpYyBpbnQgbWx4NV9sb2FkX29uZShzdHJ1Y3QgbWx4NV9j b3JlX2RldiAqZGV2LCBzdHJ1Y3QgbWx4NV9wcml2ICpwcml2LAogCW1seDVfY2xlYW51cF9mcyhk ZXYpOwogCiBlcnJfZnM6CisJbWx4NV9pcnFfY2xlYXJfYWZmaW5pdHlfaGludHMoZGV2KTsKKwor ZXJyX2FmZmluaXR5X2hpbnRzOgogCWZyZWVfY29tcF9lcXMoZGV2KTsKIAogZXJyX3N0b3BfZXFz OgpAQCAtMTIxOCw2ICsxMjgwLDcgQEAgc3RhdGljIGludCBtbHg1X3VubG9hZF9vbmUoc3RydWN0 IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfcHJpdiAqcHJpdiwKIAogCW1seDVfc3Jp b3ZfZGV0YWNoKGRldik7CiAJbWx4NV9jbGVhbnVwX2ZzKGRldik7CisJbWx4NV9pcnFfY2xlYXJf YWZmaW5pdHlfaGludHMoZGV2KTsKIAlmcmVlX2NvbXBfZXFzKGRldik7CiAJbWx4NV9zdG9wX2Vx cyhkZXYpOwogCW1seDVfcHV0X3VhcnNfcGFnZShkZXYsIHByaXYtPnVhcik7CmRpZmYgLS1naXQg YS9pbmNsdWRlL2xpbnV4L21seDUvZHJpdmVyLmggYi9pbmNsdWRlL2xpbnV4L21seDUvZHJpdmVy LmgKaW5kZXggNDAxYzg5Ny4uOGIzZDAxMCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9tbHg1 L2RyaXZlci5oCisrKyBiL2luY2x1ZGUvbGludXgvbWx4NS9kcml2ZXIuaApAQCAtNTQ2LDYgKzU0 Niw3IEBAIHN0cnVjdCBtbHg1X2NvcmVfc3Jpb3YgewogfTsKIAogc3RydWN0IG1seDVfaXJxX2lu Zm8geworCWNwdW1hc2tfdmFyX3QgbWFzazsKIAljaGFyIG5hbWVbTUxYNV9NQVhfSVJRX05BTUVd OwogfTsKIAotLSAKMi45LjUKCgpGcm9tIGQ2NDhjYTU3ZGQwNjYzNzA0MjQwODQwOTA5Yjk4ZDli Y2Q1NTEwZGIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFdpbGxlbSBkZSBCcnVpam4g PHdpbGxlbWJAZ29vZ2xlLmNvbT4KRGF0ZTogV2VkLCAyMCBEZWMgMjAxNyAxNzozNzo0OSAtMDUw MApTdWJqZWN0OiBbUEFUQ0ggNTYvNThdIHNrYnVmZjogb3JwaGFuIGZyYWdzIGJlZm9yZSB6ZXJv Y29weSBjbG9uZQoKWyBVcHN0cmVhbSBjb21taXQgMjY4Yjc5MDY3OTQyMmE4OWU5YWIwNjg1ZDlm MjkxZWRhZTc4MGM5OCBdCgpDYWxsIHNrYl96ZXJvY29weV9jbG9uZSBhZnRlciBza2Jfb3JwaGFu X2ZyYWdzLCB0byBhdm9pZCBkdXBsaWNhdGUKY2FsbHMgdG8gc2tiX3Vhcmcoc2tiKS0+Y2FsbGJh Y2sgZm9yIHRoZSBzYW1lIGRhdGEuCgpza2JfemVyb2NvcHlfY2xvbmUgYXNzb2NpYXRlcyBza2Jf c2hpbmZvKHNrYiktPnVhcmcgZnJvbSBmcmFnX3NrYgp3aXRoIGVhY2ggc2VnbWVudC4gVGhpcyBp cyBvbmx5IHNhZmUgZm9yIHVhcmdzIHRoYXQgZG8gcmVmY291bnRpbmcsCndoaWNoIGlzIHRob3Nl IHRoYXQgcGFzcyBza2Jfb3JwaGFuX2ZyYWdzIHdpdGhvdXQgZHJvcHBpbmcgdGhlaXIKc2hhcmVk IGZyYWdzLiBGb3Igb3RoZXJzLCBza2Jfb3JwaGFuX2ZyYWdzIGRyb3BzIHRoZSB1c2VyIGZyYWdz IGFuZApzZXRzIHRoZSB1YXJnIHRvIE5VTEwsIGFmdGVyIHdoaWNoIHNvY2tfemVyb2NvcHlfY2xv bmUgaGFzIG5vIGVmZmVjdC4KClFlbXUgaGFuZ3Mgd2VyZSByZXBvcnRlZCBkdWUgdG8gZHVwbGlj YXRlIHZob3N0X25ldF96ZXJvY29weV9jYWxsYmFjawpjYWxscyBmb3IgdGhlIHNhbWUgZGF0YSBj YXVzaW5nIHRoZSB2aG9zdF9uZXRfdWJ1Zl9yZWZfPnJlZmNvdW50IHRvCmRyb3AgYmVsb3cgemVy by4KCkxpbms6IGh0dHA6Ly9sa21sLmtlcm5lbC5vcmcvci88Q0FGPXlELUxXeUNENFkwYUo5TzBl X0NITFIrM0pPZUtpY1JSVEVWQ1B4Z3c0WE9jcUdRQG1haWwuZ21haWwuY29tPgpGaXhlczogMWY4 Yjk3N2FiMzJkICgic29jazogZW5hYmxlIE1TR19aRVJPQ09QWSIpClJlcG9ydGVkLWJ5OiBBbmRy ZWFzIEhhcnRtYW5uIDxhbmRpaGFydG1hbm5AMDEwMTlmcmVlbmV0LmRlPgpSZXBvcnRlZC1ieTog RGF2aWQgSGlsbCA8ZGhpbGxAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogV2lsbGVtIGRlIEJy dWlqbiA8d2lsbGVtYkBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIg PGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2NvcmUvc2tidWZmLmMgfCA0ICsrLS0KIDEg ZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvbmV0L2NvcmUvc2tidWZmLmMgYi9uZXQvY29yZS9za2J1ZmYuYwppbmRleCA2MjMxNDNkNy4u M2MyZTFkYiAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvc2tidWZmLmMKKysrIGIvbmV0L2NvcmUvc2ti dWZmLmMKQEAgLTM2NTcsOCArMzY1Nyw2IEBAIHN0cnVjdCBza19idWZmICpza2Jfc2VnbWVudChz dHJ1Y3Qgc2tfYnVmZiAqaGVhZF9za2IsCiAKIAkJc2tiX3NoaW5mbyhuc2tiKS0+dHhfZmxhZ3Mg fD0gc2tiX3NoaW5mbyhoZWFkX3NrYiktPnR4X2ZsYWdzICYKIAkJCQkJICAgICAgU0tCVFhfU0hB UkVEX0ZSQUc7Ci0JCWlmIChza2JfemVyb2NvcHlfY2xvbmUobnNrYiwgaGVhZF9za2IsIEdGUF9B VE9NSUMpKQotCQkJZ290byBlcnI7CiAKIAkJd2hpbGUgKHBvcyA8IG9mZnNldCArIGxlbikgewog CQkJaWYgKGkgPj0gbmZyYWdzKSB7CkBAIC0zNjg0LDYgKzM2ODIsOCBAQCBzdHJ1Y3Qgc2tfYnVm ZiAqc2tiX3NlZ21lbnQoc3RydWN0IHNrX2J1ZmYgKmhlYWRfc2tiLAogCiAJCQlpZiAodW5saWtl bHkoc2tiX29ycGhhbl9mcmFncyhmcmFnX3NrYiwgR0ZQX0FUT01JQykpKQogCQkJCWdvdG8gZXJy OworCQkJaWYgKHNrYl96ZXJvY29weV9jbG9uZShuc2tiLCBmcmFnX3NrYiwgR0ZQX0FUT01JQykp CisJCQkJZ290byBlcnI7CiAKIAkJCSpuc2tiX2ZyYWcgPSAqZnJhZzsKIAkJCV9fc2tiX2ZyYWdf cmVmKG5za2JfZnJhZyk7Ci0tIAoyLjkuNQoKCkZyb20gM2Y4NjY0YTM0NmFhOTE4ZDgwZjA3ZTQ5 YTQ5ODczZDExODA5ZDZkMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogV2lsbGVtIGRl IEJydWlqbiA8d2lsbGVtYkBnb29nbGUuY29tPgpEYXRlOiBXZWQsIDIwIERlYyAyMDE3IDE3OjM3 OjUwIC0wNTAwClN1YmplY3Q6IFtQQVRDSCA1Ny81OF0gc2tidWZmOiBza2JfY29weV91YnVmcyBt dXN0IHJlbGVhc2UgdWFyZyBldmVuIHdpdGhvdXQKIHVzZXIgZnJhZ3MKClsgVXBzdHJlYW0gY29t bWl0IGI5MGRkZDU2ODc5MmJjYjAwNTRlYWYwZjYxNzg1YzhmODBjM2JkMWMgXQoKc2tiX2NvcHlf dWJ1ZnMgY3JlYXRlcyBhIHByaXZhdGUgY29weSBvZiBmcmFnc1tdIHRvIHJlbGVhc2UgaXRzIGhv bGQKb24gdXNlciBmcmFncywgdGhlbiBjYWxscyB1YXJnLT5jYWxsYmFjayB0byBub3RpZnkgdGhl IG93bmVyLgoKQ2FsbCB1YXJnLT5jYWxsYmFjayBldmVuIHdoZW4gbm8gZnJhZ3MgZXhpc3QuIFRo aXMgZWRnZSBjYXNlIGNhbgpoYXBwZW4gd2hlbiB6ZXJvY29weV9zZ19mcm9tX2l0ZXIgZmluZHMg ZW5vdWdoIHJvb20gaW4gc2tiX2hlYWRsZW4KdG8gY29weSBhbGwgdGhlIGRhdGEuCgpGaXhlczog M2VjZTc4MjY5M2M0ICgic29jazogc2tiX2NvcHlfdWJ1ZnMgc3VwcG9ydCBmb3IgY29tcG91bmQg cGFnZXMiKQpTaWduZWQtb2ZmLWJ5OiBXaWxsZW0gZGUgQnJ1aWpuIDx3aWxsZW1iQGdvb2dsZS5j b20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBuZXQvY29yZS9za2J1ZmYuYyB8IDMgKystCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRp b25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvc2tidWZmLmMgYi9u ZXQvY29yZS9za2J1ZmYuYwppbmRleCAzYzJlMWRiLi40YTEwZTk2IDEwMDY0NAotLS0gYS9uZXQv Y29yZS9za2J1ZmYuYworKysgYi9uZXQvY29yZS9za2J1ZmYuYwpAQCAtMTE4Miw3ICsxMTgyLDcg QEAgaW50IHNrYl9jb3B5X3VidWZzKHN0cnVjdCBza19idWZmICpza2IsIGdmcF90IGdmcF9tYXNr KQogCXUzMiBkX29mZjsKIAogCWlmICghbnVtX2ZyYWdzKQotCQlyZXR1cm4gMDsKKwkJZ290byBy ZWxlYXNlOwogCiAJaWYgKHNrYl9zaGFyZWQoc2tiKSB8fCBza2JfdW5jbG9uZShza2IsIGdmcF9t YXNrKSkKIAkJcmV0dXJuIC1FSU5WQUw7CkBAIC0xMjQyLDYgKzEyNDIsNyBAQCBpbnQgc2tiX2Nv cHlfdWJ1ZnMoc3RydWN0IHNrX2J1ZmYgKnNrYiwgZ2ZwX3QgZ2ZwX21hc2spCiAJX19za2JfZmls bF9wYWdlX2Rlc2Moc2tiLCBuZXdfZnJhZ3MgLSAxLCBoZWFkLCAwLCBkX29mZik7CiAJc2tiX3No aW5mbyhza2IpLT5ucl9mcmFncyA9IG5ld19mcmFnczsKIAorcmVsZWFzZToKIAlza2JfemNvcHlf Y2xlYXIoc2tiLCBmYWxzZSk7CiAJcmV0dXJuIDA7CiB9Ci0tIAoyLjkuNQoKCkZyb20gMDI1Mjc0 NmI1M2MyZDk1ZDQyZmU0NTg5ZmExNWMwZTViNDdmMjM1ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogV2lsbGVtIGRlIEJydWlqbiA8d2lsbGVtYkBnb29nbGUuY29tPgpEYXRlOiBUaHUs IDI4IERlYyAyMDE3IDEyOjM4OjEzIC0wNTAwClN1YmplY3Q6IFtQQVRDSCA1OC81OF0gc2tidWZm OiBpbiBza2JfY29weV91YnVmcyB1bmNsb25lIGJlZm9yZSByZWxlYXNpbmcKIHplcm9jb3B5Cgpz a2JfY29weV91YnVmcyBtdXN0IHVuY2xvbmUgYmVmb3JlIGl0IGlzIHNhZmUgdG8gbW9kaWZ5IGl0 cwpza2Jfc2hhcmVkX2luZm8gd2l0aCBza2JfemNvcHlfY2xlYXIuCgpDb21taXQgYjkwZGRkNTY4 NzkyICgic2tidWZmOiBza2JfY29weV91YnVmcyBtdXN0IHJlbGVhc2UgdWFyZyBldmVuCndpdGhv dXQgdXNlciBmcmFncyIpIGVuc3VyZXMgdGhhdCBhbGwgc2ticyByZWxlYXNlIHRoZWlyIHplcm9j b3B5CnN0YXRlLCBldmVuIHRob3NlIHdpdGhvdXQgZnJhZ3MuCgpCdXQgSSBmb3Jnb3QgYW4gZWRn ZSBjYXNlIHdoZXJlIHN1Y2ggYW4gc2tiIGFycml2ZXMgdGhhdCBpcyBjbG9uZWQuCgpUaGUgc3Rh Y2sgZG9lcyBub3QgYnVpbGQgc3VjaCBwYWNrZXRzLiBWaG9zdC90dW4gc2ticyBoYXZlIHRoZWly CmZyYWdzIG9ycGhhbmVkIGJlZm9yZSBjbG9uaW5nLiBUQ1Agc2ticyBvbmx5IGF0dGFjaCB6ZXJv Y29weSBzdGF0ZQp3aGVuIGEgZnJhZyBpcyBhZGRlZC4KCkJ1dCBpZiBUQ1AgcGFja2V0cyBjYW4g YmUgdHJpbW1lZCBvciBsaW5lYXJpemVkLCB0aGlzIG1pZ2h0IG9jY3VyLgpUcmFjaW5nIHRoZSBj b2RlIEkgZm91bmQgbm8gaW5zdGFuY2Ugc28gZmFyIChlLmcuLCBza2JfbGluZWFyaXplCmVuZHMg dXAgY2FsbGluZyBza2JfemNvcHlfY2xlYXIgaWYgIXNrYi0+ZGF0YV9sZW4pLgoKU3RpbGwsIGl0 IGlzIG5vbi1vYnZpb3VzIHRoYXQgbm8gcGF0aCBleGlzdHMuIEFuZCBpdCBpcyBmcmFnaWxlIHRv CnJlbHkgb24gdGhpcy4KCkZpeGVzOiBiOTBkZGQ1Njg3OTIgKCJza2J1ZmY6IHNrYl9jb3B5X3Vi dWZzIG11c3QgcmVsZWFzZSB1YXJnIGV2ZW4gd2l0aG91dCB1c2VyIGZyYWdzIikKU2lnbmVkLW9m Zi1ieTogV2lsbGVtIGRlIEJydWlqbiA8d2lsbGVtYkBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2NvcmUvc2ti dWZmLmMgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvY29yZS9za2J1ZmYuYyBiL25ldC9jb3JlL3NrYnVm Zi5jCmluZGV4IDRhMTBlOTYuLjE1ZmE1YmEgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL3NrYnVmZi5j CisrKyBiL25ldC9jb3JlL3NrYnVmZi5jCkBAIC0xMTgxLDEyICsxMTgxLDEyIEBAIGludCBza2Jf Y29weV91YnVmcyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBnZnBfdCBnZnBfbWFzaykKIAlpbnQgaSwg bmV3X2ZyYWdzOwogCXUzMiBkX29mZjsKIAotCWlmICghbnVtX2ZyYWdzKQotCQlnb3RvIHJlbGVh c2U7Ci0KIAlpZiAoc2tiX3NoYXJlZChza2IpIHx8IHNrYl91bmNsb25lKHNrYiwgZ2ZwX21hc2sp KQogCQlyZXR1cm4gLUVJTlZBTDsKIAorCWlmICghbnVtX2ZyYWdzKQorCQlnb3RvIHJlbGVhc2U7 CisKIAluZXdfZnJhZ3MgPSAoX19za2JfcGFnZWxlbihza2IpICsgUEFHRV9TSVpFIC0gMSkgPj4g UEFHRV9TSElGVDsKIAlmb3IgKGkgPSAwOyBpIDwgbmV3X2ZyYWdzOyBpKyspIHsKIAkJcGFnZSA9 IGFsbG9jX3BhZ2UoZ2ZwX21hc2spOwotLSAKMi45LjUKCg== ----Next_Part(Sat_Dec_30_23_15_02_2017_152)----